pax_global_header00006660000000000000000000000064147541277240014527gustar00rootroot0000000000000052 comment=0a913ba36f6ce7a58fc950ca885cd9fb4c87f016 pan-0.162/000077500000000000000000000000001475412772400123155ustar00rootroot00000000000000pan-0.162/.clang-format000066400000000000000000000140451475412772400146740ustar00rootroot00000000000000--- Language: Cpp AccessModifierOffset: 2 # Ideally this would put ) on own line if and only if it had split the # parameters onto the next line. BlockAlign doesn't really work visually # IMO AlignAfterOpenBracket: Align AlignArrayOfStructures: None AlignConsecutiveAssignments: Enabled: false AcrossEmptyLines: false AcrossComments: false AlignCompound: false PadOperators: true AlignConsecutiveBitFields: Enabled: false AcrossEmptyLines: false AcrossComments: false AlignCompound: false PadOperators: false AlignConsecutiveDeclarations: Enabled: false AcrossEmptyLines: false AcrossComments: false AlignCompound: false PadOperators: false AlignConsecutiveMacros: Enabled: false AcrossEmptyLines: false AcrossComments: false AlignCompound: false PadOperators: false AlignEscapedNewlines: Right AlignOperands: Align AlignTrailingComments: true AllowAllArgumentsOnNextLine: true AllowAllParametersOfDeclarationOnNextLine: true AllowShortEnumsOnASingleLine: true AllowShortBlocksOnASingleLine: Never AllowShortCaseLabelsOnASingleLine: false AllowShortFunctionsOnASingleLine: None AllowShortLambdasOnASingleLine: None AllowShortIfStatementsOnASingleLine: Never AllowShortLoopsOnASingleLine: false AlwaysBreakAfterDefinitionReturnType: None AlwaysBreakAfterReturnType: None AlwaysBreakBeforeMultilineStrings: false AlwaysBreakTemplateDeclarations: MultiLine AttributeMacros: - __capability BinPackArguments: false BinPackParameters: false BraceWrapping: AfterCaseLabel: true AfterClass: true AfterControlStatement: Always AfterEnum: true AfterFunction: true AfterNamespace: false AfterObjCDeclaration: false AfterStruct: true AfterUnion: true AfterExternBlock: true BeforeElse: true BeforeLambdaBody: true BeforeWhile: false IndentBraces: false SplitEmptyFunction: true SplitEmptyRecord: true SplitEmptyNamespace: true BreakBeforeBinaryOperators: NonAssignment BreakBeforeConceptDeclarations: Always BreakBeforeBraces: Custom BreakBeforeInheritanceComma: false BreakInheritanceList: AfterColon BreakBeforeTernaryOperators: false BreakConstructorInitializersBeforeComma: false BreakConstructorInitializers: AfterColon BreakAfterJavaFieldAnnotations: false BreakStringLiterals: true ColumnLimit: 80 CommentPragmas: '^ IWYU pragma:' QualifierAlignment: Right CompactNamespaces: false ConstructorInitializerIndentWidth: 2 ContinuationIndentWidth: 2 Cpp11BracedListStyle: true DeriveLineEnding: true DerivePointerAlignment: false DisableFormat: false EmptyLineAfterAccessModifier: Never EmptyLineBeforeAccessModifier: LogicalBlock ExperimentalAutoDetectBinPacking: false PackConstructorInitializers: Never BasedOnStyle: '' ConstructorInitializerAllOnOneLineOrOnePerLine: false AllowAllConstructorInitializersOnNextLine: false FixNamespaceComments: true ForEachMacros: - foreach - foreach_const - Q_FOREACH - BOOST_FOREACH IfMacros: - KJ_IF_MAYBE IncludeBlocks: Preserve IncludeCategories: - Regex: '^"(llvm|llvm-c|clang|clang-c)/' Priority: 2 SortPriority: 0 CaseSensitive: false - Regex: '^(<|"(gtest|gmock|isl|json)/)' Priority: 3 SortPriority: 0 CaseSensitive: false - Regex: '.*' Priority: 1 SortPriority: 0 CaseSensitive: false IncludeIsMainRegex: '(Test)?$' IncludeIsMainSourceRegex: '' IndentAccessModifiers: true IndentCaseLabels: true IndentCaseBlocks: false IndentGotoLabels: true IndentPPDirectives: None IndentExternBlock: AfterExternBlock IndentRequiresClause: true IndentWidth: 2 IndentWrappedFunctionNames: false InsertBraces: true InsertTrailingCommas: None JavaScriptQuotes: Leave JavaScriptWrapImports: true KeepEmptyLinesAtTheStartOfBlocks: true LambdaBodyIndentation: Signature MacroBlockBegin: '' MacroBlockEnd: '' MaxEmptyLinesToKeep: 1 NamespaceIndentation: None ObjCBinPackProtocolList: Auto ObjCBlockIndentWidth: 2 ObjCBreakBeforeNestedBlockParam: true ObjCSpaceAfterProperty: false ObjCSpaceBeforeProtocolList: true PenaltyBreakAssignment: 2 PenaltyBreakBeforeFirstCallParameter: 19 PenaltyBreakComment: 300 PenaltyBreakFirstLessLess: 120 PenaltyBreakOpenParenthesis: 0 PenaltyBreakString: 1000 PenaltyBreakTemplateDeclaration: 10 PenaltyExcessCharacter: 1000000 PenaltyReturnTypeOnItsOwnLine: 10000 PenaltyIndentedWhitespace: 0 PointerAlignment: Right PPIndentWidth: -1 ReferenceAlignment: Pointer ReflowComments: true RemoveBracesLLVM: false RequiresClausePosition: OwnLine SeparateDefinitionBlocks: Always ShortNamespaceLines: 1 SortIncludes: CaseSensitive SortJavaStaticImport: Before SortUsingDeclarations: true SpaceAfterCStyleCast: false SpaceAfterLogicalNot: true SpaceAfterTemplateKeyword: true SpaceBeforeAssignmentOperators: true SpaceBeforeCaseColon: false SpaceBeforeCpp11BracedList: false SpaceBeforeCtorInitializerColon: true SpaceBeforeInheritanceColon: true SpaceBeforeParens: ControlStatements SpaceBeforeParensOptions: AfterControlStatements: true AfterForeachMacros: false AfterFunctionDefinitionName: false AfterFunctionDeclarationName: false AfterIfMacros: true AfterOverloadedOperator: false AfterRequiresInClause: false AfterRequiresInExpression: false BeforeNonEmptyParentheses: false SpaceAroundPointerQualifiers: Default SpaceBeforeRangeBasedForLoopColon: true SpaceInEmptyBlock: false SpaceInEmptyParentheses: false SpacesBeforeTrailingComments: 1 SpacesInAngles: Never SpacesInConditionalStatement: false SpacesInContainerLiterals: true SpacesInCStyleCastParentheses: false SpacesInLineCommentPrefix: Minimum: 1 Maximum: -1 SpacesInParentheses: false SpacesInSquareBrackets: false SpaceBeforeSquareBrackets: false BitFieldColonSpacing: Both Standard: Latest StatementAttributeLikeMacros: - Q_EMIT StatementMacros: - Q_UNUSED - QT_REQUIRE_VERSION - check - check_eq TabWidth: 8 UseCRLF: false UseTab: Never WhitespaceSensitiveMacros: - STRINGIZE - PP_STRINGIZE - BOOST_PP_STRINGIZE - NS_SWIFT_NAME - CF_SWIFT_NAME ... pan-0.162/.gitattributes000066400000000000000000000000321475412772400152030ustar00rootroot00000000000000configure.ac export-subst pan-0.162/.gitignore000066400000000000000000000012401475412772400143020ustar00rootroot00000000000000*~ ABOUT-NLS *.a *.bak *.exe *.o build/ ChangeLog .deps help/*/*.mo help/*/*.stamp help/*/index.docbook !help/C/index.docbook install-sh missing mkinstalldirs org.gnome.pan.desktop org.gnome.pan.metainfo.xml pan-git.version pan/icons/pan-pixbufs.h pan/icons/pan-pixbufs-internal.h pan.iss po/boldquot.sed po/en@boldquot.header po/en@quot.header po/*.gmo po/insert-header.sin po/Makevars.template po/pan.pot po/POTFILES po/quot.sed po/remove-potcdate.sed po/remove-potcdate.sin po/Rules-quot po/stamp-po README.windows stamp-h1 Thumbs.db .waf*/ waf*/ cppcheck-*.log.txt *.gcov *.gcda *.gcno *-test.log *-test.trs test-suite.log test-driver std-build/ compile_commands.json pan-0.162/.gitlab-ci.yml000066400000000000000000000024051475412772400147520ustar00rootroot00000000000000stages: - build variables: DEBIAN_FRONTEND: noninteractive cmake-ubuntu: image: ubuntu:rolling stage: build variables: BUILD_DIR: cmake-build except: - tags before_script: - apt-get update - apt-get install -q -y --no-install-recommends build-essential cmake gettext gcc itstool libglib2.0-dev-bin libdbus-1-dev libgcr-3-dev libgmime-3.0-dev libgnutls28-dev libgtk-3-dev libnotify-dev libsecret-1-dev libgspell-1-dev script: - mkdir $BUILD_DIR - >- cmake -DENABLE_MANUAL=1 -DWANT_DBUS=1 -DWANT_GKR=1 -DWANT_NOTIFY=1 -B $BUILD_DIR - cmake --build $BUILD_DIR cmake-ubuntu-bare-bones: image: ubuntu:rolling stage: build variables: BUILD_DIR: cmake-build except: - tags before_script: - apt-get update - apt-get install -q -y --no-install-recommends build-essential cmake gettext gcc libglib2.0-dev-bin libgmime-3.0-dev libgtk-3-dev libsecret-1-dev script: - mkdir $BUILD_DIR - >- cmake -D WANT_GNUTLS=off -D WANT_GSPELL=off -B $BUILD_DIR - cmake --build $BUILD_DIR pan-0.162/AUTHORS000066400000000000000000000010431475412772400133630ustar00rootroot00000000000000Please see the README.org file for information on how to report bugs. PAN AUTHOR Charles Kerr CONTRIBUTORS Heinrich Müller Kenneth Haley Petr Kovar Calin Culianu ORIGINAL PAN DEVELOPMENT Charles Kerr Christophe Lambin Matt Eagleson For a complete list of contributors, see the NEWS file. pan-0.162/CMakeLists.txt000066400000000000000000000234511475412772400150620ustar00rootroot00000000000000cmake_minimum_required(VERSION 3.25) if(CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR) message(FATAL_ERROR "Do not build in-source. Please remove CMakeCache.txt and the CMakeFiles/ directory. Then build out-of-source.") endif() file(STRINGS "NEWS" news LIMIT_COUNT 1) string(REGEX MATCH "[0-9.]+" pan_version ${news}) string(REGEX MATCH "\"[a-zA-Z ]+\"" quoted_pan_title ${news}) # remove quotes string(REGEX REPLACE "\"" "" VERSION_TITLE ${quoted_pan_title}) message(STATUS "Building Pan version ${pan_version} (${VERSION_TITLE})") # https://cmake.org/cmake/help/latest/command/project.html project(Pan VERSION ${pan_version} DESCRIPTION "Pan usenet reader" HOMEPAGE_URL "https://gitlab.gnome.org/GNOME/pan" ) # #cmakedefine completely refuses to recognise CMAKE_PROJECT_VERSION_xxxx or # PROJECT_VERSION_xxxx set(VERSION_MAJOR ${PROJECT_VERSION_MAJOR}) set(VERSION_MINOR ${PROJECT_VERSION_MINOR}) set(VERSION_PATCH ${PROJECT_VERSION_PATCH}) set(VERSION_TWEAK ${PROJECT_VERSION_TWEAK}) set(PAN_DBUS_SERVICE_NAME "org.gnome.pan") set(PAN_DBUS_SERVICE_PATH "/news/pan/NZB") # Standard CMake modules include(CTest) # https://cmake.org/cmake/help/latest/module/CheckIncludeFile.html include(CheckIncludeFile) # This will define the default values for installation directories (all platforms even if named GNU) # https://cmake.org/cmake/help/latest/module/GNUInstallDirs.html include(GNUInstallDirs) set(PACKAGE "pan") set(PACKAGE_BUGREPORT "https://gitlab.gnome.org/GNOME/pan/issues") # see https://gitlab.gnome.org/GNOME/pan/-/issues/175 set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) # see https://cmake.org/cmake/help/latest/module/FindThreads.html find_package(Threads REQUIRED) # backward compat. There's a lot of ifdef #HAVE_CONFIG_H, #include config.h # Don't know why... # https://cmake.org/cmake/help/latest/command/add_compile_definitions.html add_compile_definitions(HAVE_CONFIG_H) # Silence deprecation warnings for things deprecated before 2.26, # and generally set the target behaviour to be like GLib 2.26. # In principle this should match $GLIB_REQUIRED, but 2.26 is the oldest # version for which the macros exist (and has been unsupported since # around 2011 in any case). add_compile_definitions(GLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_26) # Highest version number from which new features are allowed to be used, # even within a GLIB_CHECK_VERSION check. GLib will produce compile-time # warnings when features of a newer GLib version are used. add_compile_definitions("GLIB_VERSION_MAX_ALLOWED=G_ENCODE_VERSION(2,36)") include_directories("${CMAKE_SOURCE_DIR}") # this is where config.h is generated include_directories(${CMAKE_BINARY_DIR}) # https://cmake.org/cmake/help/latest/command/add_executable.html add_executable(pan pan/gui/pan.cc pan/gui/gui.cc) # remove this so pan binary lands in build dir. But this requires # first to rename pan/ dir to src/ set_target_properties(pan PROPERTIES RUNTIME_OUTPUT_DIRECTORY "pan/gui") target_compile_options(pan PRIVATE "${CXX_STD}" "-Wreorder" "-Wzero-as-null-pointer-constant") # Don't embed GIT_REV for a reproducible build. This is mostly done in # Linux distribution build where git rev is not the same as upstream if (NOT DEFINED ENV{SOURCE_DATE_EPOCH}) # Get the latest abbreviated commit hash of the working branch # see https://jonathanhamberg.com/post/cmake-embedding-git-hash/ # drawback: commited changed are not taken into account until "cmake ." is run execute_process( COMMAND git log -1 --format=%h WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR} OUTPUT_VARIABLE GIT_REV OUTPUT_STRIP_TRAILING_WHITESPACE ) message(STATUS "Git rev: ${GIT_REV}") endif () CHECK_INCLUDE_FILE(errno.h HAVE_ERRNO_H) CHECK_INCLUDE_FILE(fcntl.h HAVE_FCNTL_H) CHECK_INCLUDE_FILE(inttypes.h HAVE_INTTYPES_H) CHECK_INCLUDE_FILE(unistd.h HAVE_UNISTD_H) # https://cmake.org/cmake/help/latest/module/CheckSymbolExists.html include(CheckSymbolExists) check_symbol_exists(close "unistd.h" HAVE_CLOSE) check_symbol_exists(localtime_r "time.h" HAVE_LOCALTIME_R) set(GETTEXT_PACKAGE pan) find_package(PkgConfig REQUIRED) function(my_target_system_lib target scope libname) # https://cmake.org/cmake/help/latest/command/include_directories.html target_include_directories(${target} ${scope} ${${libname}_INCLUDE_DIRS}) target_compile_options(${target} ${scope} ${${libname}_CFLAGS}) target_link_directories(${target} ${scope} ${${libname}_LIBRARY_DIRS}) target_link_libraries(${target} ${scope} ${${libname}_LIBRARIES}) endfunction() # see https://github.com/shlomif/gtk3-cmake-examples/blob/master/CMakeLists.txt # Use the package PkgConfig to detect GTK+ headers/library files pkg_check_modules(GTK3 REQUIRED IMPORTED_TARGET gtk+-3.0>=3.16.0) # https://cmake.org/cmake/help/latest/command/find_package.html # https://cmake.org/cmake/help/latest/module/FindIconv.html find_package(Iconv) set(HAVE_ICONV ${Iconv_FOUND}) # https://cmake.org/cmake/help/latest/module/FindZLIB.html find_package(ZLIB 1.2.0 REQUIRED) set(HAVE_ZLIB ${ZLIB_FOUND}) # D-Bus support # https://cmake.org/cmake/help/latest/command/option.html option(WANT_DBUS "enable D-Bus support (default: no)") if(WANT_DBUS) set(HAVE_DBUS TRUE) endif() # https://cmake.org/cmake/help/latest/module/FindPkgConfig.html#command:pkg_check_modules pkg_check_modules(GMIME REQUIRED IMPORTED_TARGET gmime-3.0) pkg_check_modules(GLIB REQUIRED IMPORTED_TARGET glib-2.0>=2.26.0) # Check for GMime cryptography support option(WANT_GMIME_CRYPTO "enable GMime cryptography support (default: no)") if(WANT_GMIME_CRYPTO) set(HAVE_GMIME_CRYPTO TRUE) endif() # GtkSpell support option(WANT_GSPELL "enable Gspell support (default: on)" ON) if(WANT_GSPELL) pkg_check_modules(GSPELL REQUIRED IMPORTED_TARGET gspell-1) set(HAVE_GSPELL true) endif() option(WANT_WEBKIT "enable WebKitGTK support (experimental, default: off)") if(WANT_WEBKIT) pkg_check_modules(WEBKITGTK REQUIRED IMPORTED_TARGET webkitgtk-3.0>=1.8.1) set(HAVE_WEBKIT true) endif() option(WANT_GNUTLS "enable GnuTLS support (default: on)" ON) if(WANT_GNUTLS) pkg_check_modules(GNUTLS REQUIRED IMPORTED_TARGET gnutls>=3.0.0) set(HAVE_GNUTLS true) endif() option(WANT_NOTIFY "enable libnotify support (default: off)") if(WANT_NOTIFY) pkg_check_modules(LIBNOTIFY REQUIRED IMPORTED_TARGET libnotify>=0.4.1) set(HAVE_LIBNOTIFY true) endif() option(WANT_GKR "enable GNOME Keyring or libsecret support (default: off)") if(WANT_GKR) pkg_check_modules(LIBSECRET REQUIRED IMPORTED_TARGET libsecret-1>=0.16) pkg_check_modules(GCR3 REQUIRED IMPORTED_TARGET gcr-3>=3.20) set(HAVE_GKR TRUE) endif() option(ENABLE_MANUAL "built in user manual (default: off)") if (ENABLE_MANUAL) set(HAVE_MANUAL 1) endif() # Check to see if strftime supports the use of %l and %k # https://cmake.org/cmake/help/latest/command/try_run.html # this requires cmake 3.25 try_run(HAVE_LKSTRFTIME COMPILED_LKSTRFTIME_TEST SOURCE_FROM_CONTENT test-strftime.c " #include #include #include int main(int argc, char **argv) { char buf[10]; time_t rawtime = time(0); struct tm *timeinfo = localtime (&rawtime); strftime(buf, 10, \"%l %k\", timeinfo); exit (strstr(buf, \"l\") || strstr(buf, \"k\") || !strcmp(buf,\" \") || !strlen(buf)); } ") if(NOT COMPILED_LKSTRFTIME_TEST) message(WARNING "failed to compile test-strftime.c") endif() # Don't embed uname -sr in PLATFORM_INFO for a reproducible build. if (NOT DEFINED ENV{SOURCE_DATE_EPOCH}) set(PLATFORM_INFO ${CMAKE_HOST_SYSTEM}) message(STATUS "platform: ${PLATFORM_INFO}") endif () # https://cmake.org/cmake/help/latest/manual/cmake-variables.7.html if(APPLE) set(G_OS_DARWIN TRUE) # TODO: set LOCALEDIR elseif(WIN32) # https://cmake.org/cmake/help/latest/command/target_compile_options.html #add_compile_options(mms-bitfields) add_compile_definitions(WIN32_LEAN_AND_MEAN) target_link_libraries(pan shell32 ws2_32 pthread) set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -mwindows") # TODO: set LOCALEDIR else() set(LOCALEDIR "/usr/share/locale") endif() # https://cmake.org/cmake/help/latest/command/add_subdirectory.html add_subdirectory(uulib) add_subdirectory(pan) add_subdirectory(po) add_subdirectory(help) # https://cmake.org/cmake/help/latest/command/configure_file.html configure_file(${CMAKE_SOURCE_DIR}/config-cmake.h.in ${CMAKE_BINARY_DIR}/config.h) target_compile_definitions(pan PRIVATE "PANLOCALEDIR=\"${LOCALEDIR}\"") # https://cmake.org/cmake/help/latest/command/target_link_libraries.html target_link_libraries(pan pan-cc-gui pan-c-gui data-impl tasks data usenet-utils generalutils uulib ${CMAKE_THREAD_LIBS_INIT} PkgConfig::GTK3 PkgConfig::GMIME ) if(WIN32) target_link_libraries(pan ws2_32) endif() # Installation # https://cmake.org/cmake/help/book/mastering-cmake/chapter/Install.html # https://cmake.org/cmake/help/latest/command/install.html install(TARGETS pan DESTINATION ${CMAKE_INSTALL_BINDIR}) set(meta "org.gnome.pan.metainfo.xml") configure_file("${CMAKE_CURRENT_SOURCE_DIR}/${meta}.in" "${CMAKE_CURRENT_BINARY_DIR}/${meta}") install( FILES "${CMAKE_CURRENT_BINARY_DIR}/${meta}" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/metainfo" ) set(desktop "org.gnome.pan.desktop") configure_file("${CMAKE_CURRENT_SOURCE_DIR}/${desktop}.in" "${CMAKE_CURRENT_BINARY_DIR}/${desktop}") install( FILES "${CMAKE_CURRENT_BINARY_DIR}/${desktop}" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/applications" ) set(dbus-file "org.gnome.pan.service") configure_file("${CMAKE_CURRENT_SOURCE_DIR}/${dbus-file}.in" "${CMAKE_CURRENT_BINARY_DIR}/${dbus-file}") install( FILES "${CMAKE_CURRENT_BINARY_DIR}/${dbus-file}" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/dbus-1/services" ) # install pan man page file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/man1") file(COPY_FILE "${CMAKE_CURRENT_SOURCE_DIR}/pan.1" "${CMAKE_CURRENT_BINARY_DIR}/man1/pan.1") install(DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/man1" TYPE MAN) pan-0.162/COPYING000066400000000000000000000355641475412772400133650ustar00rootroot00000000000000 GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Lesser General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS pan-0.162/COPYING-DOCS000066400000000000000000000433331475412772400141040ustar00rootroot00000000000000 GNU Free Documentation License Version 1.1, March 2000 Copyright (C) 2000 Free Software Foundation, Inc. 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. 0. PREAMBLE The purpose of this License is to make a manual, textbook, or other written document "free" in the sense of freedom: to assure everyone the effective freedom to copy and redistribute it, with or without modifying it, either commercially or noncommercially. Secondarily, this License preserves for the author and publisher a way to get credit for their work, while not being considered responsible for modifications made by others. This License is a kind of "copyleft", which means that derivative works of the document must themselves be free in the same sense. It complements the GNU General Public License, which is a copyleft license designed for free software. We have designed this License in order to use it for manuals for free software, because free software needs free documentation: a free program should come with manuals providing the same freedoms that the software does. But this License is not limited to software manuals; it can be used for any textual work, regardless of subject matter or whether it is published as a printed book. We recommend this License principally for works whose purpose is instruction or reference. 1. APPLICABILITY AND DEFINITIONS This License applies to any manual or other work that contains a notice placed by the copyright holder saying it can be distributed under the terms of this License. The "Document", below, refers to any such manual or work. Any member of the public is a licensee, and is addressed as "you". A "Modified Version" of the Document means any work containing the Document or a portion of it, either copied verbatim, or with modifications and/or translated into another language. A "Secondary Section" is a named appendix or a front-matter section of the Document that deals exclusively with the relationship of the publishers or authors of the Document to the Document's overall subject (or to related matters) and contains nothing that could fall directly within that overall subject. (For example, if the Document is in part a textbook of mathematics, a Secondary Section may not explain any mathematics.) The relationship could be a matter of historical connection with the subject or with related matters, or of legal, commercial, philosophical, ethical or political position regarding them. The "Invariant Sections" are certain Secondary Sections whose titles are designated, as being those of Invariant Sections, in the notice that says that the Document is released under this License. The "Cover Texts" are certain short passages of text that are listed, as Front-Cover Texts or Back-Cover Texts, in the notice that says that the Document is released under this License. A "Transparent" copy of the Document means a machine-readable copy, represented in a format whose specification is available to the general public, whose contents can be viewed and edited directly and straightforwardly with generic text editors or (for images composed of pixels) generic paint programs or (for drawings) some widely available drawing editor, and that is suitable for input to text formatters or for automatic translation to a variety of formats suitable for input to text formatters. A copy made in an otherwise Transparent file format whose markup has been designed to thwart or discourage subsequent modification by readers is not Transparent. A copy that is not "Transparent" is called "Opaque". Examples of suitable formats for Transparent copies include plain ASCII without markup, Texinfo input format, LaTeX input format, SGML or XML using a publicly available DTD, and standard-conforming simple HTML designed for human modification. Opaque formats include PostScript, PDF, proprietary formats that can be read and edited only by proprietary word processors, SGML or XML for which the DTD and/or processing tools are not generally available, and the machine-generated HTML produced by some word processors for output purposes only. The "Title Page" means, for a printed book, the title page itself, plus such following pages as are needed to hold, legibly, the material this License requires to appear in the title page. For works in formats which do not have any title page as such, "Title Page" means the text near the most prominent appearance of the work's title, preceding the beginning of the body of the text. 2. VERBATIM COPYING You may copy and distribute the Document in any medium, either commercially or noncommercially, provided that this License, the copyright notices, and the license notice saying this License applies to the Document are reproduced in all copies, and that you add no other conditions whatsoever to those of this License. You may not use technical measures to obstruct or control the reading or further copying of the copies you make or distribute. However, you may accept compensation in exchange for copies. If you distribute a large enough number of copies you must also follow the conditions in section 3. You may also lend copies, under the same conditions stated above, and you may publicly display copies. 3. COPYING IN QUANTITY If you publish printed copies of the Document numbering more than 100, and the Document's license notice requires Cover Texts, you must enclose the copies in covers that carry, clearly and legibly, all these Cover Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on the back cover. Both covers must also clearly and legibly identify you as the publisher of these copies. The front cover must present the full title with all words of the title equally prominent and visible. You may add other material on the covers in addition. Copying with changes limited to the covers, as long as they preserve the title of the Document and satisfy these conditions, can be treated as verbatim copying in other respects. If the required texts for either cover are too voluminous to fit legibly, you should put the first ones listed (as many as fit reasonably) on the actual cover, and continue the rest onto adjacent pages. If you publish or distribute Opaque copies of the Document numbering more than 100, you must either include a machine-readable Transparent copy along with each Opaque copy, or state in or with each Opaque copy a publicly-accessible computer-network location containing a complete Transparent copy of the Document, free of added material, which the general network-using public has access to download anonymously at no charge using public-standard network protocols. If you use the latter option, you must take reasonably prudent steps, when you begin distribution of Opaque copies in quantity, to ensure that this Transparent copy will remain thus accessible at the stated location until at least one year after the last time you distribute an Opaque copy (directly or through your agents or retailers) of that edition to the public. It is requested, but not required, that you contact the authors of the Document well before redistributing any large number of copies, to give them a chance to provide you with an updated version of the Document. 4. MODIFICATIONS You may copy and distribute a Modified Version of the Document under the conditions of sections 2 and 3 above, provided that you release the Modified Version under precisely this License, with the Modified Version filling the role of the Document, thus licensing distribution and modification of the Modified Version to whoever possesses a copy of it. In addition, you must do these things in the Modified Version: A. Use in the Title Page (and on the covers, if any) a title distinct from that of the Document, and from those of previous versions (which should, if there were any, be listed in the History section of the Document). You may use the same title as a previous version if the original publisher of that version gives permission. B. List on the Title Page, as authors, one or more persons or entities responsible for authorship of the modifications in the Modified Version, together with at least five of the principal authors of the Document (all of its principal authors, if it has less than five). C. State on the Title page the name of the publisher of the Modified Version, as the publisher. D. Preserve all the copyright notices of the Document. E. Add an appropriate copyright notice for your modifications adjacent to the other copyright notices. F. Include, immediately after the copyright notices, a license notice giving the public permission to use the Modified Version under the terms of this License, in the form shown in the Addendum below. G. Preserve in that license notice the full lists of Invariant Sections and required Cover Texts given in the Document's license notice. H. Include an unaltered copy of this License. I. Preserve the section entitled "History", and its title, and add to it an item stating at least the title, year, new authors, and publisher of the Modified Version as given on the Title Page. If there is no section entitled "History" in the Document, create one stating the title, year, authors, and publisher of the Document as given on its Title Page, then add an item describing the Modified Version as stated in the previous sentence. J. Preserve the network location, if any, given in the Document for public access to a Transparent copy of the Document, and likewise the network locations given in the Document for previous versions it was based on. These may be placed in the "History" section. You may omit a network location for a work that was published at least four years before the Document itself, or if the original publisher of the version it refers to gives permission. K. In any section entitled "Acknowledgements" or "Dedications", preserve the section's title, and preserve in the section all the substance and tone of each of the contributor acknowledgements and/or dedications given therein. L. Preserve all the Invariant Sections of the Document, unaltered in their text and in their titles. Section numbers or the equivalent are not considered part of the section titles. M. Delete any section entitled "Endorsements". Such a section may not be included in the Modified Version. N. Do not retitle any existing section as "Endorsements" or to conflict in title with any Invariant Section. If the Modified Version includes new front-matter sections or appendices that qualify as Secondary Sections and contain no material copied from the Document, you may at your option designate some or all of these sections as invariant. To do this, add their titles to the list of Invariant Sections in the Modified Version's license notice. These titles must be distinct from any other section titles. You may add a section entitled "Endorsements", provided it contains nothing but endorsements of your Modified Version by various parties--for example, statements of peer review or that the text has been approved by an organization as the authoritative definition of a standard. You may add a passage of up to five words as a Front-Cover Text, and a passage of up to 25 words as a Back-Cover Text, to the end of the list of Cover Texts in the Modified Version. Only one passage of Front-Cover Text and one of Back-Cover Text may be added by (or through arrangements made by) any one entity. If the Document already includes a cover text for the same cover, previously added by you or by arrangement made by the same entity you are acting on behalf of, you may not add another; but you may replace the old one, on explicit permission from the previous publisher that added the old one. The author(s) and publisher(s) of the Document do not by this License give permission to use their names for publicity for or to assert or imply endorsement of any Modified Version. 5. COMBINING DOCUMENTS You may combine the Document with other documents released under this License, under the terms defined in section 4 above for modified versions, provided that you include in the combination all of the Invariant Sections of all of the original documents, unmodified, and list them all as Invariant Sections of your combined work in its license notice. The combined work need only contain one copy of this License, and multiple identical Invariant Sections may be replaced with a single copy. If there are multiple Invariant Sections with the same name but different contents, make the title of each such section unique by adding at the end of it, in parentheses, the name of the original author or publisher of that section if known, or else a unique number. Make the same adjustment to the section titles in the list of Invariant Sections in the license notice of the combined work. In the combination, you must combine any sections entitled "History" in the various original documents, forming one section entitled "History"; likewise combine any sections entitled "Acknowledgements", and any sections entitled "Dedications". You must delete all sections entitled "Endorsements." 6. COLLECTIONS OF DOCUMENTS You may make a collection consisting of the Document and other documents released under this License, and replace the individual copies of this License in the various documents with a single copy that is included in the collection, provided that you follow the rules of this License for verbatim copying of each of the documents in all other respects. You may extract a single document from such a collection, and distribute it individually under this License, provided you insert a copy of this License into the extracted document, and follow this License in all other respects regarding verbatim copying of that document. 7. AGGREGATION WITH INDEPENDENT WORKS A compilation of the Document or its derivatives with other separate and independent documents or works, in or on a volume of a storage or distribution medium, does not as a whole count as a Modified Version of the Document, provided no compilation copyright is claimed for the compilation. Such a compilation is called an "aggregate", and this License does not apply to the other self-contained works thus compiled with the Document, on account of their being thus compiled, if they are not themselves derivative works of the Document. If the Cover Text requirement of section 3 is applicable to these copies of the Document, then if the Document is less than one quarter of the entire aggregate, the Document's Cover Texts may be placed on covers that surround only the Document within the aggregate. Otherwise they must appear on covers around the whole aggregate. 8. TRANSLATION Translation is considered a kind of modification, so you may distribute translations of the Document under the terms of section 4. Replacing Invariant Sections with translations requires special permission from their copyright holders, but you may include translations of some or all Invariant Sections in addition to the original versions of these Invariant Sections. You may include a translation of this License provided that you also include the original English version of this License. In case of a disagreement between the translation and the original English version of this License, the original English version will prevail. 9. TERMINATION You may not copy, modify, sublicense, or distribute the Document except as expressly provided for under this License. Any other attempt to copy, modify, sublicense or distribute the Document is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 10. FUTURE REVISIONS OF THIS LICENSE The Free Software Foundation may publish new, revised versions of the GNU Free Documentation License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. See http://www.gnu.org/copyleft/. Each version of the License is given a distinguishing version number. If the Document specifies that a particular numbered version of this License "or any later version" applies to it, you have the option of following the terms and conditions either of that specified version or of any later version that has been published (not as a draft) by the Free Software Foundation. If the Document does not specify a version number of this License, you may choose any version ever published (not as a draft) by the Free Software Foundation. ADDENDUM: How to use this License for your documents To use this License in a document you have written, include a copy of the License in the document and put the following copyright and license notices just after the title page: Copyright (c) YEAR YOUR NAME. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with the Invariant Sections being LIST THEIR TITLES, with the Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST. A copy of the license is included in the section entitled "GNU Free Documentation License". If you have no Invariant Sections, write "with no Invariant Sections" instead of saying which ones are invariant. If you have no Front-Cover Texts, write "no Front-Cover Texts" instead of "Front-Cover Texts being LIST"; likewise for Back-Cover Texts. If your document contains nontrivial examples of program code, we recommend releasing these examples in parallel under your choice of free software license, such as the GNU General Public License, to permit their use in free software. pan-0.162/NEWS000066400000000000000000002265771475412772400130370ustar00rootroot000000000000000.162 "Pokrosvk" (Покровськ) 2025-02-15 * The main changes of this release are: - cmake: switch to c++17 - fix metainfo: fixed URLs and screenshot (Balló György) - bug fix: Show multipart binary article information - mime-utils: fix assertion 'G_IS_OBJECT (object)' failure - Make pan build again on windows (Thomas Tanner) - Fixed incorrect whitespaces in manual Face wrapping. (FoxMcCloud45) * Contributors to this release: Dominique Dumont, Thomas Tanner, FoxMcCloud45, Balló György * Updated translations: sr (Мирослав Николић) zh_CN (Boyuan Yang) 0.161 "Chasiv Yar" (Часів Яр) 2024-10-20 * The main changes of this release are: - fix(cmake): make build reproducible (Debian #1078153) (Chris Lamb) - fix(header-pane): nail down action and state column widths (Dominique Dumont) - fix(task-xover): fix crash in case of ERR_NETWORK (Dominique Dumont) - refactor(post-ui): replace gtkspell with gspell (Dominique Dumont) - docs(README.org): fix git clean instructions (Dominique Dumont) * Contributors to this release: Dominique Dumont, Chris Lamb * Updated translations: cs (Daniel Rusek) da (Alan Mortensen) pl (Piotr Drąg) pt_BR (Juliano de Souza Camargo) 0.160 "Toresk" (Торецьк) 2024-08-10 * The main changes of this release are: - fix color management that was broken with v0.159 - body-pane: remove icon from "Copy URL" menu - load_icon: print error message when icon is not found - delete newsrc file when deleting a news server - setup StartupWMClass in desktop.in file (#191) * Contributors to this release: Dominique Dumont * Updated translations: ka (Ekaterine Papava) tr (Sabri Ünal) 0.159 "Vovchansk" (Вовчанськ) 2024-06-05 * The main changes of this release are: - remove autotools. Pan can only be built with cmake - remove support for obsolete Status Icon - pref-ui.cc: fix crash when editing twice the same shortcut - pref-ui.cc: fix behavior and warnings in edit shortcut widget - README.org: add instructions to clean up autotools files * Contributors to this release: Dominique Dumont, chenrui, Anders Jonsson * Updated translations: de (Jürgen Benvenuti) hu (Balázs Úr) sl (Martin) sv (Anders Jonsson) uk (Yuri Chornoivan) 0.158 "Avdiivka" (Авдіївка) 2024-04-13 * The main changes of this release are: * README.org: * add doc for cmake build options * fix cmake install de-install doc * fix ctest instructions * cmake: set WANT_GMIME_CRYPTO option to default off * cmake: install help and man files * cmake: install translations files as pan.mo * Contributors to this release: Dominique Dumont Many thanks to Atri Bhattacharya for the help on cmake 0.157 "Mariinka" (Марїнка) - 2024-04-01 * The main changes of this release are: - add cmake to build Pan. See README.org for instructions on how to use cmake to build Pan. - Building Pan with autotools is now deprecated. The plan is to remove build with autotools in next release. - install png icon files. This is required to fix some Gtk warnings. - always display one part article (Dominique Dumont) - enable compilation with GnuTLS by default (Dominique Dumont) - Fixed GPG segfault, hopefully (Emil Tomczyk) - Added support for Gemini URLs in text (Emil Tomczyk) - Add Interlingue translation (Olga Smirnova) * Contributors to this release: Dominique Dumont, Emil Tomczyk, Thomas Tanner * Updated translations: da (Alan Mortensen) de (Jürgen Benvenuti) hu (Balázs Úr) ie (Olga Smirnova) sl (Martin) sv (Anders Jonsson) tr (Sabri Ünal) uk (Yuri Chornoivan) 0.155 "Kherson" (Херсон) - 2023-11-01 * The main changes of this release are: - libiconv link to fix build on MacOS (Ken Cunningham) - Use password storage by default when it is enabled (Emil Tomczyk) - Enable back GPG initialization (Emil Tomczyk) - Fix crash in on_socket_created() when password storage is enabled (John Paul Adrian Glaubitz) - score rules: makes : and :: behave as specified in slrn manual. (Thomas Tanner) * Contributors to this release: Dominique Dumont, Thomas Tanner, Emil Tomczyk, Ken Cunningham, John Paul Adrian Glaubitz, Daniel Mustieles * Updated translations: da (Alan Mortensen) de (Jürgen Benvenuti) es (Daniel Mustieles) eu (Asier Sarasua Garmendia) hu (Balázs Úr) ka (Ekaterine Papava) pl (Piotr Drąg) sl (Martin) sv (Anders Jonsson) tr (Sabri Ünal) uk (Yuri Chornoivan) zh_CN (Boyuan Yang) 0.154 "Izium" (Ізюм) - 2023-01-05 This release fixes a regression from v0.153 where pan can segfault when reading groups. See issue #156 for details. Some other cleanup related to gtk2 were done. Contributors to this release: Dominique Dumont, Thomas Tanner 0.153 "Mariupol" (Маріу́поль) - 2022-11-13 I botched previous release. This release is identical to 0.152 except that Pan is modified to correctly identify itself as version 0.153. 0.152 "Mariupol" (Маріу́поль) - 2022-11-12 The main points of this release are: - Gtk2 was removed from Pan. Only Gtk3 is working. - Links to old pan.rebelbase.com are replaced with links to pan gitlab page. - Pan can be compiled with clang Many thanks to Thomas Tanner for the code cleanup work done on this release. Contributors to this release: Thomas Tanner, Dominique Dumont Updated translations: da (Alan Mortensen) de (Jürgen Benvenuti) hu (Balázs Úr) pl (Piotr Drąg) pt_BR (Enrico Nicoletto) sl (Martin) sr (Мирослав Николић) sv (Luna Jernberg) tr (Emin Tufan Çetin) uk (Yuri Chornoivan) 0.151 "Butcha" (Буча) - 2022-06-25 This release is dedicated to all people suffering from Russian war in Ukraine. Until this war is over, Pan release are named after Ukrainian towns ravaged by this war. The main points of this release are: - Gtk2 minimal version is now 2.24.0. Note that this release is probably the last one with Gtk2 support. - addition of a helper script to build Pan on Windows (Thomas) - fix Gtk3 icon scaling on Windows (Thomas, fixes #144) - fix header handling errors (Thomas, fixes #61 and #66) - Add a menu entry to allow editing the Score file in text editor (Thomas, fixes #11) Many thanks to Thomas Tanner for the work done on this release. Contributors to this release: Thomas Tanner, Dominique Dumont, Miguel Ángel Nieto, Daniel Mustieles, Andre Klapper, Anders Jonsson Updated translations: da (Alan Mortensen) eu (Asier Sarasua Garmendia) hu (Balázs Úr) pl (Piotr Drąg) sr (Мирослав Николић) sv (Anders Jonsson) uk (Yuri Chornoivan) 0.150 "Moucherotte" The main points of this release are: - Dropped support for GMime2. Only Gmime3 is supported - Gtk3 is now default build, Gtk2 is deprecated 15fcc65 set maximum number of serveur connections to 20 (Dominique Dumont) 62e3c58 remove support for GMime2 (Dominique Dumont) ba7a42b Enable make distcheck for both GTK builds (Petr Kovar) db473c4 run distcheck with gtk3 (Dominique Dumont) 1b96a80 fix YAML syntax in .gitlab-ci.yml (Dominique Dumont) 9bb4d18 fix make distcheck for gtk2 (Dominique Dumont) 0ff10e7 Gtk3 is now default build, Gtk2 is deprecated (Dominique Dumont) 431f56f Nuke $GIT_REMOTE if not obtained by git config (Petr Kovar) 7847651 Fix pkg check msgs in configure.ac and print more library versions (Petr Kovar) ccd1197 fix (string-view): compilation with clang on Mac (Dominique Dumont) 2478eb6 fix missing articles with dangling reference (Dominique Dumont) ce3600c fix typo in README.org (Dominique Dumont) * Contributors to this release: Dominique Dumont, Petr Kovar * Updated translations: cs (Petr Kovar) es (Miguel Ángel Nieto) sv (Luna Jernberg) 0.149 "Bellevue" The main points of this release are: - Fix freeze when loading group with non-ascii characters in subject - Avoid mojibake in Subject and Headers - Fix x-face folding (FoxMcCloud45) - Add Base64-encoded Face header. (FoxMcCloud45) Detailed changes: fa5f1f6 Removed #include duplicates. (FoxMcCloud45) 425cc58 Merge commit '4dbec01e' into 'master' (FoxMcCloud45) 4dbec01 try to figure out what's going on in the CI (Dominique Dumont) 04f2bf5 Updated source code to latest upstream commit. (FoxMcCloud45) e5a7442 Add to org.gnome.pan.metainfo.xml.in (Petr Kovar) 1f2b4d5 Update org.gnome.pan.metainfo.xml.in per AppStream 0.15 (Petr Kovar) 5308fa0 Re-add myself to DOAP (Petr Kovar) 80cc2da Actually build with enchant-2 for GTK 3 (Petr Kovar) d20d27d Run make dist to avoid missing out on renamed files in EXTRA_DIST (Petr Kovar) 97ff896 Update man page (Petr Kovar) fd35c45 Rename pan.appdata.xml to be consistent (Petr Kovar) 63e13c7 More small edits (Petr Kovar) 81349f2 Rename desktop file and theme icons (Petr Kovar) 43a6bb6 Some edits (Petr Kovar) e7cff2a Fix make dist (Petr Kovar) f0b9949 remove dead code (Dominique Dumont) 84ecae8 Fix typo in actions.cc (Ryan Schmidt) 7357c50 header-pane.cc: avoid mojibake in Subject (Dominique Dumont) 3843f30 header-pane.cc: remove unused variable (Dominique Dumont) bf18447 header-pane.cc: avoid mojibake in headers (Dominique Dumont) ffd48ba Fix warning in mime-utils.cc (Dominique Dumont) ee1e15b improve pan usage message (Dominique Dumont) c7c217e fix stuck pan when loading gmane.linux.gentoo.server (Dominique Dumont) a04993b Compile fix: gtk_handle_box_new() to gtk_box_new() (FoxMcCloud45) 682888d Supposed fix for posting icons. (FoxMcCloud45) 3fc114e Applied Face/X-Face patches to GMIME3 code. (FoxMcCloud45) a91de9d Another forgotten conflict fix... (FoxMcCloud45) 493de9d Fic forgotten conflict. (FoxMcCloud45) 0f36c31 Fix merge conflict. (FoxMcCloud45) a5c8e42 Added experimental support for sending Face header. (FoxMcCloud45) 5f5b07c Merge xface-fix with compile-fix (FoxMcCloud45) ad830b0 Header fix for Arch Linux compilation. (FoxMcCloud45) 552d383 X-Face: manual folding for length >72. (FoxMcCloud45) 3b35d8b Fix two compile errors when build with GMime3 (Detlef Graef) af7c6df Additional fixes for issue #128 when Pan is build with some options (Detlef Graef) e7f5802 Merge branch 'fix-mess-from-glib-update' of https://gitlab.gnome.org/Rhialto/pan (Detlef Graef) 8cf0cff Merge https://gitlab.gnome.org/GNOME/pan (Detlef Graef) 39ba1ad Take out of extern "C" (Olaf Seibert) 0d77554 Remove empty line from file posting.xml (Detlef Graef) 495bfb2 Fix for GMime3 build (Posting error). Issues #103 and #114 (Detlef Graef) * Contributors to this release: FoxMcCloud45, Petr Kovar, Dominique Dumont, Detlef Graef, Ryan Schmidt, Olaf Seibert * Updated translations: cs (Petr Kovar) es (Miguel Ángel Nieto) pl (Piotr Drąg) pt_BR (Enrico Nicoletto) sv (Anders Jonsson) uk (Yuri Chornoivan) 0.148 "Chamechaude" The main points of this release are: - gmime3 is used by default and gmime2 is deprecated - release tag format is changed. This release is tagged v0.148 - some UI bugs are fixed - README was converted from ASCII to org-mode format Detailed changes: c77fd22 set release name (Dominique Dumont) 3e7fb82 fix preferences window size (close #99) (Dominique Dumont) 79677ce remove register storage class from cc code (Dominique Dumont) ea76dba CI: remove --with-gmime30 obsolete option (Dominique Dumont) e42d3ff README.org: prefer gmime3 over deprecated gmime2 (Dominique Dumont) 6abf0cf configure.ac: use gmime3 by default, gmime2 is deprecated (Dominique Dumont) c85950d post-ui: remove space inserted before x-face (gmime3) (Dominique Dumont) a8fda6d README.org: fix links at end of page (Dominique Dumont) 9a7bb19 README.org: convert more links (Dominique Dumont) 099ccf0 README.org: convert links (Dominique Dumont) 896cfc5 Convert README to README.org (Dominique Dumont) d92dc16 fix (post-ui): rm handle_box to fix missing widgets (Dominique Dumont) 6260911 fix other non-utf8 char in comments (Dominique Dumont) e88d74a converted ISO-8859 comments to UTF-8 (Dominique Dumont) 25f130c Merge branch 'back-to-ascii-msgids' (Dominique Dumont) d5f41ee bump release number (Dominique Dumont) b7e7826 fix (appdata): change appstream id (Dominique Dumont) d2990c7 fix: can compile gtk3 without gtk2 libs (Dominique Dumont) e2f001c Use only ascii for translatable messages. (Dominique Dumont) 86acf0a Revert "One more Unicode apostrophe" (Dominique Dumont) * Contributors to this release: Dominique Dumont * Updated translations: pl (Piotr Drąg) pt_BR (Enrico Nicoletto) sv (Anders Jonsson) uk (Yuri Chornoivan) 0.147 "Sweet Solitude" This release contains mostly bug fixes so pan can be compiled on major Linux distributions. In the next releases, we'll try to get rid of gmime2 code. Please reach out to pan-devel [at] nongnu.org if this may cause issues. * Detailed changes: 4840346 Fix for GMime3 bug in: message_add_signed_part() (Detlef Graef) 50ea85a Try an autodetection strategy: (Olaf Seibert) 0c1b7bd Fix compiler warning (Olaf Seibert) d0cbb97 Work around corrupt/inconsistent file names. (Olaf Seibert) 637745c Replace totally unnecessary UTF-8 colons by real ones. (Olaf Seibert) e6aaea8 Remove empty line from file posting.xml (Detlef Graef) 65a71e1 Fix for GMime3 build (Posting error). Issues #103 and #114 (Detlef Graef) 0ebef22 build: Target a specific GLib API version (Simon McVittie) 6afcdb8 fix (configure.ac): update GETTEXT version (Dominique Dumont) 3d6f401 fix (gitlab ci): use libenchant-2-dev (Dominique Dumont) b2e36e6 fix (gitlab ci): set DEBIAN_FRONTEND noninteractive (Dominique Dumont) 3e2cc1b Adjust packages to install in CI. (Olaf Seibert) 7e10591 Move more header inclusions outside extern "C" (Simon McVittie) 52b299e Take out of extern "C" (Olaf Seibert) 77d1c18 add me to doap files and remove Charles and Petr (Dominique Dumont) ade0e36 Add Swedish help translation (Anders Jonsson) 0049344 Replace cgit with gitlab URL in mknews (Andre Klapper) 8b972b1 Updated Spanish translation (Daniel Mustieles) 83c9561 Updated Spanish translation (Daniel Mustieles) ceadf9e Post-release bump (Petr Kovar) * Contributors to this release: Olaf Seibert, Dominique Dumont, Detlef Graef, Simon McVittie, Daniel Mustieles, Petr Kovar, Andre Klapper, Anders Jonsson * Updated translations: ca (Jordi Mas) eu (Asier Sarasua Garmendia) hu (Balázs Úr) id (Andika Triwidada) pl (Piotr Drąg) pt_BR (Rafael Fontenelle) sv (Anders Jonsson) tr (Sabri Ünal) uk (Yuri Chornoivan) 0.146 "Hic habitat felicitas" 26eea78 Update .gitlab-ci.yml with GTK 3 (Petr Kovar) 7f59091 Use an int instead of a char (Jonathan Briggs) 476b5a6 Fix for issue #77. Segfault when build with gmime-3 (Detlef Graef) e5be4d4 Fix to build Pan with options --with-gmime30 and --with-gmime-crypto (Detlef Graef) edad96d Update bug URLs (Sebastiaan Lokhorst) e65ba15 Replace Bugzilla by Gitlab URL in DOAP file (Andre Klapper) ba6322f Add .gitlab-ci.yml (Petr Kovar) b9a4154 Fix ypart begin for bpf ranges (Federico Cuello) 1de4962 Update URLs to GitLab (Petr Kovar) ad60bca Module was renamed to pan (Andrea Veri) * Contributors to this release: Petr Kovar, Detlef Graef, Sebastiaan Lokhorst, Jonathan Briggs, Federico Cuello, Daniel Mustieles, Andre Klapper, Andrea Veri * Updated translations: bs (Sebastiaan Lokhorst) cs (Sebastiaan Lokhorst) da (Sebastiaan Lokhorst) de (Sebastiaan Lokhorst) el (Sebastiaan Lokhorst) es (Daniel Mustieles, Sebastiaan Lokhorst) fi (Sebastiaan Lokhorst) fr (Sebastiaan Lokhorst) hu (Sebastiaan Lokhorst) pl (Sebastiaan Lokhorst) pt (Sebastiaan Lokhorst) pt_BR (Rafael Fontenelle) ro (Sebastiaan Lokhorst) sl (Sebastiaan Lokhorst) sr (Sebastiaan Lokhorst) sr@latin (Sebastiaan Lokhorst) sv (Josef Andersson) tr (Sebastiaan Lokhorst) 0.145 "Duplicitous mercenary valetism" 7ec8ca1 Do not use front() on empty vector (Jonathan Briggs) 29aad7e Bug 793228 nzb file with empty segment lists crash pan (paul@flinders.org) 27190a5 Bug 793277 Use after free in main() (paul@flinders.org) * Contributors to this release: paul@flinders.org, Petr Kovar, Jonathan Briggs * Updated translations: da (Joe Hansen) de (Mario Blättermann) es (Daniel Mustieles) hu (Balázs Úr) pt_BR (Rafael Fontenelle) sr (Мирослав Николић) sr@latin (Мирослав Николић) 0.144 "Time is the enemy" 28ab3ba Validate pan.appdata.xml.in and tweak cleanfiles (Petr Kovar) 83e8a01 Remove outdated FSF address (Petr Kovar) d73c52c Update README (Petr Kovar) aa59d3f Add man page (Petr Kovar) f55b7fb Upgrade pan.appdata.xml.in (Petr Kovar) f6061b3 Require GMime 3.0 to be explicitly enabled, don't fallback to it (Petr Kovar, #791435) 7c9f34b Patch for GMime 3.0. Porting to GMime 3.0 still not completed. (Detlef Graef, #786438) 0600d83 Can't open nzb files from desktop (Sebastiaan Lokhorst, #789988) 75ae784 Follow Icon Theme Specification (Petr Kovar) * Contributors to this release: Petr Kovar, Sebastiaan Lokhorst, Detlef Graef * Updated translations: cs (Petr Kovar) nb (Petr Kovar) pl (Piotr Drąg) pt_BR (Rafael Fontenelle) 0.143 "Quaint little villages here and there" bb0c906 INSTALL file is no longer used (Petr Kovar) 25e2b0a Use xdg-open instead of deprecated gnome-open (Petr Kovar) 02834e6 Update German translation (Mario Blättermann) 12b6b46 Fix nits wrt GMime 3.0 (Petr Kovar) 90c1604 First patch to enable GMime 3.0 lib. Porting to GMime 3.0 not yet completed. (Detlef Graef) b376c88 One more Unicode apostrophe (Piotr Drąg) 8022375 Edit strings (Petr Kovar) 42bea90 Added autohiding attachments panel (Marek Černocký) ea46a27 Fixed groups/body panels resizing in GTK 3 (Marek Černocký) e9a1173 Attempt to fix display of threads with unread articles. (Jason Lynch) 44d7766 Use Unicode in translatable strings (Piotr Drąg) 75a9fd3 Updated Czech translation (Marek Cernocky) 05f02ad Fixed showing combobox options unlocalized (Marek Cernocky) ba08fd2 Update Spanish translation (Daniel Mustieles) 3e70a04 Update German translation (Mario Blättermann) b432931 Enable all TLS versions supported by GnuTLS (Detlef Graef) * Contributors to this release: Petr Kovar, Piotr Drąg, Mario Blättermann, Marek Černocký, Marek Cernocky, Detlef Graef, Jason Lynch, Daniel Mustieles * Updated translations: cs (Petr Kovar, Marek Cernocky) da (Ask Hjorth Larsen) de (Mario Blättermann) es (Daniel Mustieles) hu (Balázs Úr) pl (Piotr Drąg) sr (Мирослав Николић) sr@latin (Мирослав Николић) sv (Anders Jonsson, Sebastian Rasmussen, Josef Andersson) 0.142 "He slipped to Sam a double gin" 8b56f1b Update docs for password storage change (Petr Kovar) b8c8c8e Fix some ISO C++ 11 warnings (Detlef Graef) 1758891 Change use-gnome-keyring to use-password-storage (Petr Kovar) 8f5e9f0 Build libsecret & gcr with gtk3 only, gnome-keyring with gtk2 (Petr Kovar) 1cf6b97 Remove dependency on deprecated libgnome-keyring. New libraries used: libsecret and gcr (GTK+ 3 only). (Detlef Graef) d1206be Rewrite autogen.sh to drop dependency on gnome-common (Detlef Graef) faa4de3 Nuke intltool (Petr Kovar) 24f5aeb Forgot to update HELP_LINGUAS (Petr Kovar) 7b53a67 Update and add Czech translation (Petr Kovar) 1c4598a Fix the strftime test for mingw64 (Steve Davies) 5790571 Update docs and include COPYING-DOCS (Petr Kovar) bcb5d0f Re-add help menu item for manual (Petr Kovar) df05588 Add new documentation infrastructure (Petr Kovar) 564929f Updated Spanish translation (Daniel Mustieles) 921488a Updated Spanish translation (Daniel Mustieles) 776286e Updated Spanish translation (Daniel Mustieles) f3ff30e Fixed typos in a string (Daniel Mustieles) 53d0103 Updated Spanish translation (Daniel Mustieles) 117793f [l10n] Updated German doc translation (Mario Blättermann) 68c2a7d Updated Spanish translation (Daniel Mustieles) f4cede7 Improve help (Heinrich Müller) a477483 Final fixes to the help system (Petr Kovar) 14f1a6e Tweak the help support (Petr Kovar) 707d801 Add gnome-doc-utils basic support (Petr Kovar) 7c79aa0 Add Pan manual (Douglas Bollinger) ee7e4ad Fix size of preference window too large (Detlef Graef, #697983) a76d293 Fix Header Pane menu not shown when built without option --with-gnutls (Detlef Graef, #777711) 4c4dcf6 Mention crypto in configure output (Petr Kovar) 6072d9a Post-release bump (Petr Kovar) * Contributors to this release: Petr Kovar, Daniel Mustieles, Detlef Graef, Steve Davies, Mario Blättermann, Heinrich Müller, Douglas Bollinger * Updated translations: ca (Jordi Mas) cs (Petr Kovar) da (Joe Hansen) de (Mario Blättermann) es (Daniel Mustieles) pl (Piotr Drąg) pt_BR (Rafael Fontenelle, Enrico Nicoletto) sv (Anders Jonsson) 0.141 "Tarzan's Death" 194f2dc Treat a 500 response to MODE READER as OK (Per Hedeland) 3de214e Fix a memory leak found by valgrind (Olaf Seibert) e5ea76f Fix a memory leak found by valgrind (Olaf Seibert) 3ed2498 Fix a memory leak found by valgrind (Olaf Seibert) 1bdde46 Fix a memory leak found by valgrind (Olaf Seibert) c166cc8 Fix a memory leak found by valgrind (Olaf Seibert) 22e01f8 Fix a memory leak found by valgrind (Olaf Seibert) 88e3401 clang static analyzer (Viktoras) 9ad1e02 Cannot start after removing last news server (freepro) 4207a74 Do not overwrite silently draft file (Detlef Graef, #704227) d1faec5 Get rid of deprecated g_atexit() calls (Detlef Graef) fefda68 Closing Pan without server config (Detlef Graef, #729329) 73d0abd Deprecated g_type_init() with glib2 > 2.36 (Detlef Graef) * Contributors to this release: Olaf Seibert, Detlef Graef, Petr Kovar, Viktoras, Per Hedeland, freepro * Updated translations: ar (Piotr Drąg) az (Piotr Drąg) cs (Petr Kovar) de (Mario Blättermann) en_CA (Piotr Drąg) en_GB (Piotr Drąg) es (Daniel Mustieles, Piotr Drąg) fr (Piotr Drąg) hu (Balázs Meskó) it (Piotr Drąg) ms (Piotr Drąg) nb (Piotr Drąg) pl (Piotr Drąg) pt (Piotr Drąg) pt_BR (Enrico Nicoletto) ro (Jobava) sl (Piotr Drąg) sr (Мирослав Николић) sr@latin (Мирослав Николић, Piotr Drąg) sv (Josef Andersson) 0.140 "Chocolate Salty Balls" dfd5c32 Fix a memory leak found by valgrind (Olaf Seibert) 9ca587f Avoid clearing a timer event source id which is by now invalid (Olaf Seibert) 4c08134 Fix a memory leak found by valgrind (Olaf Seibert) 7f2678d Fix a memory leak found by valgrind (Olaf Seibert) 3c07a42 Fix a memory leak found by valgrind (Olaf Seibert) d702d1b Fix a memory leak found by valgrind (Olaf Seibert) 83cd963 Fix a memory leak found by valgrind (Olaf Seibert) 833ccc6 Fix a memory leak found by valgrind (Olaf Seibert) 35ecd62 Fix typo in header guard (Olaf Seibert) bbf5f29 Conditional jump or move depends on uninitialised value(s) (Olaf Seibert) 08d678e Conditional jump or move depends on uninitialised value(s) (Olaf Seibert) cb9c937 Conditional jump or move depends on uninitialised value(s) (Olaf Seibert) 44ffc85 Fix build with libc++ (Petr Kovar) d62efbf Do not distribute outdated pan.iss (Petr Kovar) c3679d1 Move ChangeLog -> NEWS & update docs (Petr Kovar) f9e0a50 Replace RulesInfo.deque with deque (Olaf Seibert) 4323223 Fix missing recursion (this is a pre-existing bug) (Olaf Seibert) 0b399ec Changed a deque into a deque (Olaf Seibert) 2024f05 Deleted object is touched again (Olaf Seibert) 9b31c87 Remove leftover code (Petr Kovar) 80566c8 Do not include https:// in GIT_REMOTE (Petr Kovar) f55cebc Rules Enabled preference flag wasn't loaded (Andrew Nile) b74bcc9 Prevent EOF char from stopping binary upload in Win (Andrew Nile) 73863fc Missing break (Andrew Nile) 81ec291 Update license.h (Petr Kovar) 5186a2a Do not include protocol & user name in GIT_REMOTE (Petr Kovar) 4228421 Fix accel key 'R' (used twice) (Detlef Graef) 9471b22 fix: close posting window (Detlef Graef) 46f97aa Unneeded detour via C-type strings (Olaf Seibert) 6b1b345 Fix saving of SSL certificate (Detlef Graef) 055fe95 Fix Edit SSL Certificates crash (walt) a52b404 Fix localedir (Petr Kovar) 94d5b7c Update FSF address (Petr Kovar) 3663720 Fix crash at PanTreeStore::get_iter() (Detlef Graef) 2ce62c7 Update desktop file (Petr Kovar) 0806805 Add appdata support for Pan (Petr Kovar) 34e1bb5 file::get_pan_home() : fix for g++-5 non-CoW std::string semantics (Alexandre Rostovtsev) c186c9f Rename configure.in -> configure.ac (Petr Kovar) af87825 When "Show Matching Articles' Threads", messages with dangling References not shown (Lionel Elie Mamane) 81929d0 Fixes in encode-cache.cc, task-upload.h, uuencode.c (Andrew Nile) 2ae6aff Applied refresh patch for body-pane (Heinrich Müller) 8bd7184 Fixes in pan/gui/prefs-ui.cc (Andrew Nile) 0a57a01 Various UI fixes (Heinrich Müller) 7ca9c6c Updated FSF's address (Daniel Mustieles) 4820c84 Remove outdated pan.spec.in (Petr Kovar) 6daf184 Fix XZVER, append \r\n (Heinrich Müller) b1af29b Fix for ISO C++ and struct deque (Heinrich Müller) 6200d57 Fix XFEATURE for XOVER task (Heinrich Müller) 8325c88 Fix XFEATURE for groups task (Heinrich Müller) 29edfc3 Added aSYNC behavior; disabled treeview on search (Heinrich Müller) b00f96e Added support for GtkSpell 3 (Yclept Nemo) 099bd57 next-unread-group etc. broken (Heinrich Müller, #690789) 42b9292 Improve verbose output in non-GUI mode (Heinrich Müller) c251367 Segmentation fault when using external editor to compose newsgroup postings (Heinrich Müller) db8adcf Let the user deactivate task pane pop-ups from task pane (Heinrich Müller) f509257 Posting - Error 441 is not a successful post (Heinrich Müller, #693786) f6c7a64 Use zlib CRC32 for compression.cc; fix non-GUI header XOVER (Heinrich Müller) cb7b50a Use zlib CRC32 (Heinrich Müller) 5133e23 Improve speed of uudecode (Heinrich Müller) 5eef4fc Fix IP lockout on ISP IP change; fix SIGSEGV in socket impl (Heinrich Müller) 4922045 Fixes for XFEATURE; patch for 'match only read' (Heinrich Müller, Cal Peake) acb4362 Avoid NPE on early init of server edit dialog; fix XFEATURE (Heinrich Müller) 2d053c4 Let the user choose compression type with combobox; hint which server supports which compression scheme (Heinrich Müller) 88fe336 Activate action 'get-new-headers-when-entering-group' only for non-virtual groups (Heinrich Müller) 9e301fb Fix for line-wrapped x-face header (Heinrich Müller) 3f81af1 Properly escape < and > chars in subject (Heinrich Müller) d454a36 Fix for group enter (Heinrich Müller) e2ca6d2 Fix NPE (Heinrich Müller) 4f681cd Added support for Diablo and XFEATURE (Heinrich Müller) 00fe4a3 Added XZVER functionality (Heinrich Müller) 6a8de8b Patch for user agent in the GUI (Miroslav Sabljic) dcc2556 Refactoring; added virtual folders for sent and drafts (Heinrich Müller) f7ba647 Make filename.pem become related to the current $PAN_HOME dir (Heinrich Müller, #680295) a823ae8 Patch for NetBSD & iconv (Heinrich Müller) 4ad8971 Fix segfault in task-pane.cc:148 (Heinrich Müller) c860200 Disconnect only if set in prefs (Heinrich Müller) 9cd77f9 Added HTML parser (Heinrich Müller) 6a2a9df HTML preview (Heinrich Müller) 52ccea5 Fix for systray behavior (Heinrich Müller) 884e4c1 Removed dbg output (Heinrich Müller) 9faef90 Improved gtkstyle handling for progressview (Heinrich Müller) 29120fa Change show sig icon (Heinrich Müller) 8b934ce Adapt to any screen size in prefs-ui, show scrollbars if needed (Heinrich Müller) cf68577 "Complete" the Colors tab; pan 0.136 fails to build on 64-bit OS X (Heinrich Müller, #681037, #673813) 07e4614 Fix NPE in action_combo (Steve Davies) 4162e82 Shortcuts tab is always drawn first (Heinrich Müller, #681036) 1dba05f Update desktop file (Heinrich Müller, #680468) a3bbefc Add an option to turn-off 'tool-tips' on the Task Manager panel (Heinrich Müller, #680298) b5aeade Added save option for inline yEnc images (Heinrich Müller) 87c6bda Fixed singletons, moved color init to pan.cc (Heinrich Müller) 56d4463 Add Background and foreground text color selection; GTK+ 3 compiler cleanup; cleanups in various files (Heinrich Müller, #651306) f21f939 Fixed behavior of mark_read in taskarticle according to action-implied post-action or simple GUI interaction (Heinrich Müller) 03d24a9 Fix for http://lists.nongnu.org/archive/html/pan-users/2012-07/msg00033.html (Heinrich Müller) 014d082 Fixed a memory leak with new regex (Heinrich Müller) 29da552 Filtering within task list (Heinrich Müller, #679274) 55733b8 Fixed memory leak in shortcut dialog (Heinrich Müller) c249f58 Fix for display of shortcut literals (Heinrich Müller) 395f288 Added info about gkr to README (Heinrich Müller) * Contributors to this release: Heinrich Müller, Petr Kovar, Olaf Seibert, Detlef Graef, Andrew Nile, walt, Daniel Mustieles, Alexandre Rostovtsev, Steve Davies, Miroslav Sabljic, Cal Peake, Yclept Nemo, Lionel Elie Mamane * Updated translations: bs (Samir Ribic) ca (Jordi Mas, Gil Forcada) cs (Petr Kovar, Marek Černocký) de (Mario Blättermann, Heinrich Müller, Christian Kirbach) el (Maria Mavridou, Dimitris Spingos) es (Daniel Mustieles) fi (Lasse Liehu) fr (Bruno Brouard) hu (Balázs Úr) ja (Jiro Matsuzawa) pt (Pedro Albuquerque, Duarte Loreto) pt_BR (Rafael Ferreira, Rafael Fontenelle, Júnior Pires) sl (Matej Urbančič, Martin Srebotnjak) sr (Мирослав Николић) sr@latin (Мирослав Николић) sv (Anders Jonsson) tr (Necdet Yücel, Muhammet Kara) 0.139 "Sexual Chocolate" * std::logic_error thrown ("basic_string::_S_construct null not valid") (Heinrich Müller, #678445) * added error popup for posting to a disabled server (max connections 0) (Heinrich Müller) * Patches to SSL socket handling (Steve Davies) * clear last-visited (group/article) on middle-click (Heinrich Müller) * Updated translations: Spanish (Daniel Mustieles), Slovenian (Martin Srebotnjak, Andrej Žnidaršič, Matej Urbančič). 0.138 "Der Geraet" * Hotkey for showing/hiding signatures in the article body. (Heinrich Müller, #350496) * Keep position on selected item on re-order. (Heinrich Müller, #443702) * Remember last read post. (Heinrich Müller, #448416) * Open url in browser. (Heinrich Müller, #464335) * Signature printed double when line needs to be wrapped. (Heinrich Müller, #533178) * Tasks marked "Stopped" should also remain stopped when pan restarted. (Heinrich Müller, #543319) * "Save at" options other then %g and %G. (Heinrich Müller, #550007) * Filter Cross-posters. (Heinrich Müller, #587585) * 136 using secure ssl and get continuous popups for certs but no connection. (Heinrich Müller, #673927) * PO message very difficult to translate. (Heinrich Müller, #675953) * Pan crashes while fetching new headers. (Heinrich Müller, #677741) * Updated translations: Spanish (Daniel Mustieles), French (Bruno Brouard), Czech (Petr Kovar), Slovenian (Martin Srebotnjak, Andrej Žnidaršič, Matej Urbančič). 0.137 "The Mattel and Mars Bar Quick Energy Chocobot Hour" * Bugfix release for errors regarding segfaults etc. with thread handling. * Colorize group names. (Heinrich Müller) * Fix three-horizontal-pane layout between sessions. (Heinrich Müller) * Stop tasks when there is no space left on device. (Heinrich Müller) * Honour default attachments folder setting if group folder is not set. (Heinrich Müller) * Updated translations: Spanish (Daniel Mustieles), Slovenian (Matej Urbančič, Martin Srebotnjak). 0.136 "Far too busy being delicious..." * Support for uploading attachments (with NZB creation) to Usenet. (Heinrich Müller) * Selectable Content-Transfer-Encoding. (Heinrich Müller) * Selectable GtkSpell default language. (Heinrich Müller) * Support for encrypting and signing articles with a public/private PGP key. (Heinrich Müller) * Connections can now be encrypted with TLS 1.0. (Heinrich Müller) * Various bugfixes/enhancements from Bugzilla. * Auto-Cache/-Download/-Delete/-Mark read based on scores. (Heinrich Müller) * D-Bus support for automatic batch addition of new files to the Download Queue. (Heinrich Müller) * Status Icon support. (Heinrich Müller) * GNOME Keyring support for safely storing server passwords. (Heinrich Müller) * Updated translations and help: Spanish (Daniel Mustieles, Nicolás Satragno), Slovenian (Andrej Žnidaršič, Matej Urbančič, Martin Srebotnjak), German (Christian Kirbach, Mario Blättermann), Czech (Marek Černocký, Petr Kovar), Esperanto (Kristjan SCHMIDT), Danish (Joe Hansen), Japanese (OKANO Takayoshi), Russian (Yuri Myasoedov), French (Bruno Brouard), Brazilian Portuguese (Gabriel Speckhahn). 0.135 "Tomorrow I'll Wake Up and Scald Myself with Tea" * Improve URI detection in the body pane. (K. Haley) * Make highlighting of URIs in the body pane optional. (K. Haley) * Add a newsrc autosave timer. (K. Haley) * Fix mailto URI encoding. (K. Haley, #648375) * Create a NZB file from the list of articles. (Heinrich Müller) * Optional compatibility with GTK+ 3. (K. Haley) * Fix the text-massager-test failure. (K. Haley, #642746) * Support format=flowed in text-massager. (K. Haley) * Guess deliberate line breaks. (K. Haley) * Saving articles from the NZB file no longer causes articles to be queued multiple times. (K. Haley) * Separate line length check for each quote level. Should only be for quoted levels. (K. Haley) * Add the wrap selected option to the post editor. (K. Haley) * Slightly improve Pan.ico. (Petr Kovar, #499214) * Updated translations: Spanish (Jorge Gonzalez, Daniel Mustieles), Swedish (Daniel Nylander), German (Mario Blättermann), Danish (Joe Hansen), Czech (Petr Kovar) 0.134 "Wait for Me" * Fix compilation with GCC 4.4. (Charles Kerr, #573722) * WARNING: setting an adjustment with non-zero page size is deprecated. (Charles Kerr, #579753) * No window icon when running in NZB-mode. (Charles Kerr, #574419) * Remove deprecated glib/gdk/gtk calls to prepare for GNOME 3. (Charles Kerr, #596648) * Use GRegex instead of PCRE. (Charles Kerr, #596653) * Tooltips missing from two 'Post Article' toolbar buttons. (Charles Kerr, #548860) * Infinite loop with server that doesn't support LIST NEWSGROUPS. (Charles Kerr, #545220) * 'Add port to server dialog' -- apply commits 862da67, af30418 from lostcoder. (K. Haley, Charles Kerr, #527313) * Support 64 bit article numbers. (Charles Kerr, #549655) * Don't queue xover for 0 connections. (Charles Kerr, #596682) * Make wrapping honor changes in compose-wrap pref. (Charles Kerr, #596680) * Change nzb task saving delay & add pref. (Charles Kerr, #596683) * Port to GMime 2.4. (K. Haley, #541676) * Spawn editor asynchronously. (K. Haley, #465763) * Change allocation buffer for article tree. (K. Haley) * Save some more memory by re-ordering a few variables. (K. Haley) * Don't save files as executable. (K. Haley) * Fix handling of multibyte spaces in text-massager. (K. Haley) * Re-write multipart handling for viewing. (K. Haley) * Change default mime-type for incoming attachments. (K. Haley, #135734) * Add some additional mime types. (K. Haley) * Add memchunk.h to Makefile.am. (K. Haley) * GTK+ 2.16 required. (K. Haley) * Fix bug in multipart article mids. (K. Haley) * Add console support for windows. (K. Haley) * Update filter-info and scorefile-test to support non-overview headers. (K. Haley) * Skip non-overview test if not cached. (K. Haley) * Make ArticleCache::get_message const. (K. Haley) * Allow scoring article on all headers. (K. Haley) * Promote rescore_articles to data interface. (K. Haley) * Update score when article is cached. (K. Haley) * Add regex support to search. (Jack Cuyler, K. Haley, #351196) * Additional info for about & User-Agent. (K. Haley, #424083) * Add support for compiling with gmime-2.5. (K. Haley) * Allow subject line use in save path. (K. Haley, #403797) * Improve regexes used for squashing subject line. (K. Haley) * Reduce memory allocation for multiparts. (K. Haley) * Allow newsrc paths relative to PAN_HOME. (K. Haley) * Save tasks on exit. (K. Haley, #609355) * Always show full revision info in UA hdr. (K. Haley) * Remember size of post window. (K. Haley) * Add tests for subject line. (K. Haley) * Make separator user configurable. (K. Haley) * Replace deprecated gdk_pixmap_create_from_data. (K. Haley) * Add support for Face header. (K. Haley) * Fix crash possibly due to change in cairo. (K. Haley) * Change from GdkPixmap to GdkPixbuf. (K. Haley) * Remove deprecated function through gtk 2.18. (K. Haley) * Compatibility with -std=c++0x. (K. Haley) * Fix crash in gio_func on OSX. (K. Haley) * Updated translations: Arabic (Djihed Afifi), Brazilian Portuguese (Flamarion Jorge), Spanish (Jorge Gonzalez), Portuguese (Duarte Loreto), French (Claude Paroz, Bruno Brouard), Catalan (Joan Duran), German (Mario Blättermann, Andreas Kuhlen), Basque (Inaki Larranaga Murgoitio), Swedish (Daniel Nylander), Czech (Petr Kovar), Slovenian (Andrej Žnidaršič), Danish (Joe Hansen), Simplified Chinese (Aron Xu) 0.133 "House of Butterflies" 535413 fix heap overflow in pan when parsing .nzb files (Pavel Polischouk) 467446 image viewer truncates image (Aaron Von Gauss) 540798 handle NNTP server '203 Streaming OK' responses (Mark Beach) 524620 compile fails on glib 2.16: g_assert moved to gtestutils.h (Duncan) 527852 use po/LINGUAS (Gilles Dartiguelongue) 482140 get last N days' headers fails when no headers in N days (Anonymous) 514167 'post' window doesn't fit on 800x480 display (Alexey Zakhlestin) 541704 pan uses deprecated `hash_set' class (Charles) 527853 unit test 'scorefile-test' fails on sparc (Ferris McCormick) 0.132 "Waxed in Black" 441859 in 0.131, 'read next unread' didn't always work (Artur Jachacy) 456730 text before signature delimiter is doubled (Alexander Skwar) 444184 0.131 fails to build on RH4/CentOS4 (Steven Ellis) 438021 can't post one message to multiple groups at one time (Keith) 355041 Two-segment group name abbreviations (Benjamin Esham) 447680 handle nzb files whose parts are in the wrong order (Benjamin Charron) 349490 better info for the tool-tip of the Tasks button (Douglas Bollinger) 456519 Dependency on gmime version should be 2.1.9, not 2.1.0 (Gregory Lee) 0.131 "Ghosts: First Variation" 441442 bad yEnc decoding / occasional crash (Charles + valgrind) 440853 fix 0.130 crash while fetching some headers (Sci Fi) 440470 fix 0.130 bug that made deleting articles very slow (Walt) 440194 fix 0.127 memory leak (Charles + valgrind) 426377 workaround for GMime bug that won't show multipart images (Mike) 440545 saving a group's headers could be faster (Charles + sysprof) 440990 more speedups in saving headers (Charles + sysprof) 441034 StringView::ltrim() speedups (Charles + sysprof) 0.130 "Hyperbolicsyllabicsesquedalymistic" 417627 crash after throwing an instance of 'std::length_error' (Serge) 438604 froze replying to posts with just "Re: " in the subject (Artur Jachacy) 437686 0.129 didn't build on irix with MIPSpro C++ compiler. (Avi Bercovich) 419199 fix 0.128 regression. (Frank Tabor) 433316 task window coordinates set to -32000 on Windows (Argoyne) 436101 make nzb suffix filter case-insensitive (Darren Albers) 348445 tweak menu text to reflect multiple group selections (Darren ALbers) 361388 add ability to queue nzb's when viewing them (Adrian Yee) 0.129 "Benson & Hedges Moscow Gold" 436064 RFE: add 'copy url' to context menu 436101 RFE: add nzb filter to 'import nzb' dialog (Frederic Crozat) 428578 Crash when trying to post a supersede (Stephane Gregoire) 434502 changing pane in tabbed mode (Lanif) 432387 0.128 crash / memory corruption (Jeremy, Pav Lucistnik) 432289 sometimes queued tasks never decode (Calin) 419199 wrap should not be mandatory (Bill Baker) 348445 can't select multiple groups (Artur Jachacy) 090594 add option to always spawn editor when composign (Gauze) 0.128 "SR/CL: Leitmotiv: Toynbee Idea" 431247 "Add a Scoring Rule" crashes if no article is selected (Christophe) 432023 0.127 crashes when loading corrupted groups (Charles) 432024 Speed improvements when saving and loading groups (Charles) 431552 0.127 no longer stops downloading when disk is full (Alan Olsen) 430958 Get N Headers fails if group has small # of headers (Anon) 429449 Pan 0.126, 0.127 won't compile w/gtk 2.6.x (Jeff Berman) 429485 Articles marked read showing back up (Frank Tabor) 407301 All new articles are shown, regardless of score (Per Hedeland) 0.127 "Eckythump" 428151 Compilation error in e-util.cc under fink (SciFi) 424381 Pango warnings from attachments with accented chars (SciFi) 427230 Sigfiles with CR/LFs not handled properly (Artur Jachacy) 393589 X-Face not shown properly (Ivan Rajkovic) 425993 Crash when downloading new headers in 0.126 (Drew Yavor) 427212 Crash when hitting 'read more' when no group loaded (Duncan) 424240 Downloading headers from the command line (Eric Lauriault) 424248 In --nogui mode, exit when the last task finishes. (Eric Lauriault) 427165 Task pane's ETA wrong on new xover tasks (Charles) 426375 Task pane's ETA wrong when selecting > 4GB of queued files (Mike) 0.126 "Demon Sweat" 420618 Decode in a worker thread for faster GUI/network (Calin Culanu) 423376 Status Bar's "tasks" and "log" buttons toggle the windows (Walt) 411446 Use `Message-ID', not `Message-Id', when posting (Charles) 411447 Header pane loses selection when deleting articles (Jeff Berman) 411657 Post window's cursor appears in the wrong place (Frank Tabor) 411659 post window's "save draft" file dialog gets confused (Charles) 411959 profile's `Reply-To' header used wrong in 0.125 (Mimi Doucet) 423684 Latest glib issues "memory warnings" on startup (SciFi) 0.125 "Potzrebie" 408767 connection-limit change not recognized until restart (Chuck) 408778 0.124 bug: signature "command" executed twice (Jack Cuyler) 408866 0.124 bug: error with the signature delimiter (Mimi Doucet) 408990 0.124 bug: no more line break at 80 characters (longint) 371868 add common headers to `more headers' in post window (Frederic Crozat) 0.124 "Goblin Worlds" 370195 0.123 mime decoding errors (Walt) 404833 marking a group as read doesn't stick between sessions (Frank Tabor) 406284 array bounds read in StringView::strchr (Bruno Barberi Gnecco) 403762 pasted text isn't wrapped automatically (Artur Jachacy) 121178 built-in editor wraps text improperly when composing (Carl Hudkins) 405765 some multiparts aren't grouped properly (Konrad Karl) 360376 go to next unread-group should be circular (Frederic Crozat) 406248 make it easier to find previously-read context (Jack Spaar) 346915 post window's profile list should show email addresses (Artur Jachacy) 405637 give the save button focus in the save dialog (Chris Petersen) 0.123 "El Nuevo Barretto" 404515 0.122 build problems in `po' (Pteer) 404309 0.122 build problems for uint64_t (Geoff) 404837 newsgroups disappear in 0.121 and 0.122 (Kevin Brammer) 404183 null pointer in printf (Laurent Bigonville) 371838 header pane not updated for scores on bytes or lines (Mike) 370195 uulib/fptools.c assert issue - crash (Samuli Karkkainen) 404979 in 0.122, `cache' behaves like `read' (Michael Bernstein) 395318 show `wait' cursor when filtering (Kreao Kunjas) 404347 indicate offline status more clearly (Samuli Karkkainen) 0.122 "Not Even Wrong" 354779 pan no longer attempts to reconnect (Jason Auvenshine) 403513 crash in FC6 when viewing one specific message (Yannick Palanque) 401012 freed memory read in socket-impl-gio (Charles) 402121 rare memory corruption when parsing dates in scorefile (Charles) 403066 getting new groups, conditional jump on uninitialised value (Charles) 401087 servers.xml's file permissions are too lax (Robert Marshall) 399776 group pane not syncronized when group changes (Bruce Bowler) 307028 editor error: cursor positioning on indented lines (Richard Rasker) 401449 sort-by-author doesn't work properly (Charles Hill, Jason Mack) 400814 unable to mark some groups as read (Christophe) 402704 queue size too small in task-pane.cc (Shana) 389817 article not shown if another DL in progress (Samuli Karkkainen) 403076 focus is incorrect when returning to header pane (Walt) 402743 add keyboard shortcuts in task window (Ulrich Binder) 402200 support large article cache sizes (Craig Ruff) 400800 use libsexy for the toolbar's icon entry fields (Charles) 399616 log message error in 0.121 (Charles) 400012 nntp 501 error messages could be more helpful (Pavel) 400256 spurious error message after deleting server (Pavel) 400329 spurious error opening newsrc file when adding new servers (Pavel) 400026 spurious error messages when decoding articles w/o attachments (Pavel) 358062 spurious error message on nntp 411 response (Pavel) 361603 translatability problems for message strings (Flammie Pirinen) 400670 fold together some of the redundant translation strings (Charles) 0.121 "Dortmunder" 390784 crash when dragging over URL (Paul Williamson) 394139 fix small memory leaks 398074 free memory read on socket error 396523 fix minor compiler warnings 395475 make the save dialog simpler and more consistent with other Gnome apps 393912 'cache article' downloads articles in random order (Per Hedeland) 395069 faster thread filtering 397409 remove unneeded temporary objects from Quark::to_view() 390735 prompt for path if none specified when adding a nzb via command-line. 380429 References: header gets lost when superseding an article. 380902 Setting 'work offline' doesn't go offline if busy downloading 350999 Switching header threading collapses threads, loses selection 353556 make underline and bold conversion more sensible 353453 position of a zoomed image should depend on where user clicked on image 357631 watched threads filtering not persistent 376759 request for task pane to show number and size of selected tasks 372013 use pan's error log, not g_message(), in connection worker threads 358925 download speeds aren't calculated accurately/correctly 355805 add "mark group read before xover" to prefs dialog 397348 new feature: preferences option to clear the article cache on exit 350372 list missing parts of an incomplete multipart 350442 configurable newsrc location 392133 ability to enable/disable automatic scrolling to picture attachments 397347 posting error message could be more helpful 389887 the nntp 411 error message could be more helpful 388717 connection error messages could be more helpful (Guilhem Bonnefille) 393352 no icon in the `post new article' window (Darren Albers) 393357 no icon in the `about' window (Darren Albers) 0.120 "Plate of Shrimp" 356329 'Save Attachments' only saves one of multiple attachments (Walt) 378973 CVS Compile problem uulib/fptools.c (Rinaldi J. Montessi) 378823 Lockup when replying to articles with Message-ID containing %i (Duncan) 375953 Missing files from POTFILES.in (Daniel Nylander) 375405 Corrupted uudecode output with Pan 0.119 (Shantanu Goel) 373520 Crash when creating a new score, if no article is selected. (Carl Roth) 373523 Thread scoring is too slow (Carl Roth) 378710 Some NZB files can't be imported (Martin Meinhold) 381976 Crash when importing nzb file and previous path doesn't exist 387940 "pan --version" doesn't work (Wouter Bolsterlee) 391471 Task Pane doesn't have a Window icon (Darren Albers) 0.119 "Karma Hunters" 373193 'get headers' menu adds xover task to bottom of queue (Bigfoot) 372616 Cancel / Supercedes is unable to recognize my articles (Frederic Crozat) 372241 pan crashes on some malformed charset messages. (Artur Jachacy) 371720 references: field breaks threads in thunderbird (Frederic Crozat) 371453 priority for post isn't high enough (Frederic Crozat) 370930 speed up header pane filtering (Vincent Dupaquis) 370195 uulib/fptools.c crash (António Godinho) 363166 IPv6: no IPv4 fallback (Pav Lucistnik) 355805 add option to mark group read before getting new headers (Brad Hudson) 0.118 "Gustaf Von Musterhausen" 358061 try to make multiple connections at once. (Duncan) 360375 non-ascii subject is mangled (F. Crozat) 361448 make statusbar use less vertical space (Michael Monreal) 362436 retrieving group list runs forever (Guilhèm Bonnefille, Søren Boll Overgaard) 364357 repeated server error messages (J. D. McKim) 365990 pan doesn't encode sender when sending (Christophe) 363268 mixed-charset messages get garbled (Michael Rasmussen) 366542 crash with "ignore thread" when no thread selected 366663 sort history is not maintained when "flipping" a column (Chris Petersen) 366665 author with @ in "real name" gets chopped up (Chris Petersen) 367578 crash when subscribing to an allready subscribed group. (Axion) 369008 make crc32 checking 50% faster (Charles) 0.117 "We'll fly and we'll fall and we'll burn" 361941 Slow download / Download corrupted in 0.116, fix included (Stéphane BERTHELOT) 355047 article download becomes saving after restart (K Haley, Duncan) 360406 pop up a message when post is refused by server (Frederic Crozat) 361121 pan icon love (Michael Monreal) 361445 Headers pane always has a scrollbar (Michael Monreal) 361885 Cannot background compose window (Ken Bloom) 354831 Pan silently removes characters when sending articles (Artur Jachacy) 0.116 "Blanton's" 360375 non-ascii subject is mangled 357735 crash when updating headers (David Kelly) 358061 better use of server connections. (Adam Huffman) 359197 speed up downloads from news server. (Avi Drissman, Christophe GISQUET) 358654 pan-0.115 fails to compile - error in article.{c,h} (Jack Cuyler) 358710 Tasks has an empty tooltip when idle (Adrian Yee) 358717 Order of files added to queue (Adrian Yee) 358211 Get New Headers expands selected collapsed thread (Douglas Bollinger) 359171 download files with same name -> mangled suffixes (Jerry Segers, Jr.) 361144 xover tasks should be inserted at the top of the queue (David) 360373 missing utf8 conversion in error messages (Frederic Crozat) 360725 changing the default color of positive scores (Anthony DeRobertis) 0.115 "Tip Jar" 358077 cut memory use in half for large binaries groups (Charles) 358204 20% of group loading time is spent in unnecessary trim() (Charles) 357863 marking an article unread does not update grouplist. (Christophe) 349012 header pane's mouse drag-select works in gtk+ 2.10. (Douglas Bollinger) 358305 make tasks window clearer (Pavel) 0.114 "You'll Have to Go Sideways" 356805 fix 0.112 - 0.113 lockups. (George Sherwood, Robert Marshall) 356834 crash: Cannot allocate memory during pthread_create (Axion) 356023 can't read an article with [XX/XX] in the subject (Artur Jachacy) 357236 save another 3MB from startup overhead. (Charles) 356798 save another 2MB from startup overhead. (Charles) 357073 uninitialized memory errors in body pane. (valgrind) 357698 new followups mangled quoted non-UTF-8 text. (Artur Jachacy, Christophe) 356835 display utf-7 text correctly. (Artur Jachacy) 345838 pan commandline not closing after ctrl-c. (Axion) 357230 simleys (emoticons) break links (Flammie Pirinen) 356827 delete attachment when deleting article (Kevin Brammer) 0.113 "0.113 is one of Nakata's favorites" 356070 News servers not merging properly. (Alen Williams, Adam Huffman) 356206 crash when deleting messages (David Kelly) 349044 save settings periodically to safeguard against data loss. (Glyn Parker) 354405 fix 0.112 Windows 2000 regression. (K Haley) 356626 Edit/Select Article Body doesn't work. (Lionel Elie Mamane) 356325 save a little memory. (Charles) 350530 save-attachments dialog's group prefs radiobutton (Jeff Berman, Walt) 355335 updated french translation. (Frederic Bezies, Christophe Gisquet) 0.112 "Elijah Craig" 348188 0.111 breaks `disable threading' (Artur Jachacy) 354560 0.111 crashes OS X on `get new headers' (Dave Chand) 353957 0.110 expands threads when reading root article (Christophe Lambin) 349710 moved 'disable smooth scrolling' to Prefs dialog. (Christian Lohmaier) 351104 0.107 unable to save article text (Christophe Lambin) 353624 crash when deleting active tasks. (Douglas Bollinger) 347632 down news server locks up Pan (John Mellor, Jason Auvenshine) 353486 server connection(s) screw up after awhile (Simon Morgan, K Haley) 354317 "add and rescore" doesn't remove 'plonked' posts (Jack Cuyler) 354140 "get new" + "show matching..." broken. (Christophe Lambin, Adam Warner) 354200 pan crashes when view doesn't get applied (Douglas Bollinger) 354231 new French translation (Frederic Bezies) 353158 File save stopping before complete (Steve, Ronald) 352043 Can't undo a watch or ignore rule. (Frederic Bezies) 0.111 "Tweedy" 352337 scroll bar at the end of headers list. (Dave Chand) 353334 reduce xover memory usage (csv4me) 353407 Queue goes out of order after restart (Damian) 353222 Supersede features is busted. No text quoted. (Frederic Bezies) 353191 Pan 0.110 opens only 1 connection to server (Stéphane BERTHELOT) 353386 Group update order is "wrong" (Bruce Bowler) 353083 Reading articles should always be on top of the queue (Thomas Fricke) 353604 build failure on FreeBSD. (Olaf 'Rhialto' Seibert) 353622 crash on deleting posts during xover (Christohpe GISQUET) 353972 Pan adds another Re: in some replies (Artur Jachacy) 353635 URLs not preceded by http:// cause problems (Bill Baker) 353630 URL containing https:// does not highlight, is not clickable (Bill Baker) 353577 0.110: crash on entering next news group (Anonymous) 0.110 "Beable Beable" 352116 Crash when images are left-clicked (Kim, Phil Richards, walt) 352155 "Show matching articles Threads" not applied on startup (Benjamin Esham) 352179 Alt + g shortcut double booked (Kim) 345626 'queued' triangle in header pane is inconsistent (Jeff Berman) 353018 Some phrases are italicised incorrectly; "/usr/bin/pan" (Benjamin Esham) 352798 '%g' option didn't work in the group-prefs save path. (Kevin Brammer) 352170 Huge speedups when processing large task queues. (Samuli Kärkkäinen) 351258 Updated French translation. (Frederic Bezies) 351701 Can't back out of Posting Profile creation (Samuli Kärkkäinen) 353042 Prefs dialog refers to "OS/X" rather than "OS X" (Benjamin Esham) 352232 link with gthread to make gmime happy (Philippe Morey) 352092 can't compile Pan in a separate directory from the source. (K Haley) 0.109 "Beable" 351573 GNKSA: allow users to send mail from Pan (Charles) 351577 GNKSA: allow users to cancel and supersede their own articles. (Charles) 351804 0.108 crash sometimes when reading or following-up. (Sam Morris) 351574 GNKSA: show interesting Newsgroups, Followup-To, and Reply-To headers. 351576 GNKSA: honor followup-to, reply-to headers correctly. (Charles) 351245 "browse" button in save dialog sets wrong directory sometimes. (Charles) 351301 0.108 didn't build on gtk+ < 2.6. (Jeff Berman) 351289 0.108 didn't build on Windows. (Artur Jachacy) 351228 0.108's "default windows browser" didn't work. (Darren Albers) 351735 fix gcc 3.2.x build error. (Christian Lohmaier) 351312 Oscillating size-to-fit. (Per Hedeland) 351244 save-ui.cc wasn't marked for translation. (Frederic Bezies) 351520 fix rpmlint warnings. (Roger Pao) 351316 Text error in View|Layout menu. (Duncan) 351888 Missing header in posts: content-transfer-encoding. (Frederic Bezies) 351258 Updated French translation. (Frederic Bezies) 351238 Organize global menus and context menus similarly (Samuli Kärkkäinen) 351365 GNKSA followup to subject "RE:" gives a subject "Re: RE" (Charles) 351024 Improve the Windows version w/icons, metadata (Christophe Gisquet) 351033 make header text selectable in the body pane. (Danny Milo) 350501 handle sigterm gracefully. (Soren Boll Overgaard) 0.108 "Mama's little Joyboy loves lobster, lobster" 348925 Let users specify which web browser to use for links. (Dave Chand) 350796 Fixed crash on reading articles. (Jeremy Messenger) 351120 Fixed display of multipart yEnc images. (Per Hedeland) 350514 UTF-8-dirty bodies weren't quoted in replies in 0.107. (Artur Jachacy) 350501 handle sigquit, sigint gracefully. (Joshua Kwan, Soren Boll Overgaard) 350511 Name in the attribution line is garbled somtimes. (Artur Jachacy) 349009 "Show matching articles' Threads" option not saved (Douglas Bollinger) 350971 area to the right of a URL link is clickable. (Artur Jachacy) 349710 Add preferences setting to turn off smooth scrolling. (Duncan) 350609 Updated French translation. (Frederic Bezies and Christophe Gisquet) 350598 Can't put compose window behind the reader window. (Ken Bloom) 350803 configure script portability changes. (Christophe Gisquet) 350984 more configure script portability changes. (Christophe Gisquet) 350541 use freedesktop.org's desktop file location standard. (Frederic Bezies) 350956 use freedesktop.org's desktop categories standard. (Jeremy Messenger) 350531 fix grammar errors in "Save Articles" window. (Jeff Berman) 0.107 "Umi De No Jisatsu" 349784 When server returns a 482, make it clear to the user. (Volker Wysk) 350309 Ellipsize text in the header pane. (Baris Cicek) 350063 New French translation. (Frederic Bezies) 349797 Make behavior for 'read more' a preference option (Shining Chaos) 349751 Tasks window can't be put behind main window (Daniel Hobe) 350040 Add --with-gnome and --with-gtkspell to configure script. (Sven Wegener) 349752 Multiple task and log windows could be opened. (Daniel Hobe) 349753 0.106: a warning dialog (#349312) appears if posting succeeds. (Duncan) 349721 Changing subject or newsgroups in followups didn't work. (Duncan) 350371 Headers shown in 'show all headers' were included in follow-ups. (gbzzl) 349850 No way to make servers go online after an error occurs. (Sam Guidice) 346579 Couldn't show some articles with mislabeled encodings (Artur Jachacy) 350485 Poor handling of noise in multipart uu messages. (Per Hedeland) 349734 followup quoting error (odd character in "From:" header issue?) (Duncan) 349700 Fixed bug when queueing multiparts that had missing parts. (K. Haley) 350026 Mark the group preferences dialog for translation. (Frederic Bezies) 0.106 "Dum Maro Dum" 348458 'space' goes to the next article, not unread article. (Artur Jachacy) 349022 couldn't mark a collapsed thread as read. (Artur Jachacy) 349312 warn if closing Post window w/o saving or posting text. (Sandy Weicks) 348881 crashed when the group's sort order got corrupted. (XioNox) 349597 crashed when the queue is very large. (Alen Williams) 349053 crashed when the scorefile had headers that Pan didn't recognize. (Lin) 349498 multipart corruption in datafiles. (K Haley) 345626 Some states were wrong in the header pane. (Jeff Berman, Ken Geis) 349016 Ignored Articles were shown when matching by thread. (Douglas Bollinger) 349145 "pan --nzb" didn't exit when 'close' was pressed. (K Haley) 349495 header pane sorting didn't stick when changing groups. (Christophe) 349550 if 'mark all read when leaving group' is set, mark on exit too. (Damian) 0.105 "Churchill's Chevy Nova" 348667 new profile setting for which server to post with. (David Shochat) 348660 from 0.14: remap keyboard accelerators with ~/.pan2/accels.txt (Duncan) 348704 from 0.14: "add similar articles to selection" (Charles) 342034 from 0.14: shift-G go to next group; g to next unread. (Jim Henderson) 342032 from 0.14: accels for get-new and get-new-in-subscribed. (Jim Henderson) 348437 revived 0.14 feature: per-group save paths. (Darren Albers) 348707 disable "group properties" button if no group selected. (Kevin Gottsman) 348178 remember user settings in the 'download headers' dialog. (Dave Chand) 348676 add groupname to 'download headers' dialog. (Jeff Berman) 348441 posting profiles: let users browse for their sig file. (Artur Jachacy) 348669 posting profiles: double-clicking a profile to edit it. (Duncan) 348802 filtering by 'fetched/cached' didn't work. (Ufuk YILDIRIM) 337319 news servers couldn't be deleted. (Soren Boll Overgaard) 348447 fixed 0.104 overflow & crash. (Artur Jachacy) 348451 fixed 0.104 `next article' fail if no article selection. (Artur Jachacy) 348472 fixed 0.104 build error w/gtk 2.4. (Kevin Gottsman) 0.104 "YES, OK! I *AM* COMMUNIST SPICE!!!" * added option to toggle the 0.103 'size to fit' feature. (Brad Sims, #347268) * when the disk is full, show a warning dialog and go offline. (Phil Wlazlo, #347654) * lower memory overhead (again!) in the group and header panes. * the 'save' dialog's default action is now 'save', not 'cancel'. (Kelly Martin) * by default, store the scorefile in ~/.pan2 rather than ~/News. (Sam Morris, #347713) * 0.14 feature: periodic keepalive messages to idle connections. (Christophe, #342492) * 0.14 feature: header pane shows hidden/unread child counts. (Douglas Bollinger, #347036) * revived 0.14 feature: "delete group's articles" (Steve Welch, #346986) * revived 0.14 feature: header pane 'wraparound' (Artur Jachacy, #347758) * revived 0.14 feature: toggled header pane threading on/off (Artur Jachacy, #348188) * fixed crash when reordering tasks via the task pane. (Alen Williams, #347272) * fixed 0.103 memory leak when reading articles. (Valgrind) * fixed 0.102 code that significantly slowed down group loading. (Charles, #347275) * fixed 0.100 build error with gcc 3.2.3. (Christian Lohmaier) * fixed ETA bug in the task pane. (Richard Gilbert, #347007) * don't "jump" in the header pane when getting new articles. (S. Mazzola, #347862) 0.103 "Eldarfaroth" * scale-to-fit of oversized images a la firefox. (Darren Albers, #346165) * revived 0.14 feature: the old "save as..." dialog. * pop up the 'download headers' dialog when entering an empty group. * when loading a group, give keyboard focus to the header pane. (Jeff Berman, #342975) * remember the body pane's expander state between sessions. (Jeff Berman, #342976) * 'save' tasks now show their target direectory in the task manager. (Carl Soderstrom, #106763) * Follow Gnome HiG by having a View->Toolbar checkbox to toggle the toolbar. (Charles, #110953) * "show matching articles' threads" didn't work. (Douglas Bollinger, #346408) * Pan was confused about some headers' encodings and showed them badly. (Artur Jachacy #346426) * non-ascii characters were sometimes not handled gracefully. (Søren Boll Overgaard, #337317) * bracketed urls were parsed incorrectly. (Artur Jachacy, #346543) * header pane wasn't properly repositioned after deleting articles. (Jeff Berman, #342985) * fixed minor 0.101 bug in highlighting bold/italic/underline text. (Charles, #346718) * fixed selection 'jumping' when changing filters. (Duncan) * the new scoring rule dialog didn't behave nicely. (Søren Boll Overgaard, #338727) * fixed NetBSD build errors. (Olaf Seibert. #346993) * fixed group description warnings on Windows. (K Haley, #346604) 0.102 "From the years of neon through iodine" * let users set charsets when posting articles. (Frederic Bezies, #345330) * added ETA, bytes remaining to task window. (F. Ingelrest, #346339) * remember size of task and event windows. (Jeff Berman, #345628) * improved header pane sorting for a.b.m.divx. (Mike Corbett, #346069) * data files were being opened in the wrong mode under Windows. (K Haley, #345941) * fixed 0.101 bug that broke handling of URLs clicked on in the body pane. (Bigfoot, #345867) * fixed crash when downloading articles with invalid `bytes' fields. (Alen Williams, #343257) * fixed utf8 string corruption and crash when sorting by subject. (Artur Jachacy, #345784) * "edit preferences" jumped to the group pane when in tabbed mode. (Martin Zuziak, #342517) 0.101 "A pulse of dying power in a clenching plastic fist" * added to add text file, plaintext, and script/command signatures. (ERACC, #345555) * extra headers for outgoing posts can now be added per-posting profile. (Mike Dee) * added `edit posting profiles' to the main edit menu. (Mike Dee) * added toggle to enable/disable spellchecking in the posting window. (Frank Olieu) * sort the event window's list s.t. the latest events are visible. (Jeff Berman, #345630) * better handling of *bold*, /italic/, and _underlined_ text. (Kelsey Bjarnason, #345705) * "rot13 selected text" didn't work. (Artur Jachacy, #342149) * multipart yEnc pictures are now displayed properly. (and was *that* a fun bug.) * multiple attachments in a single article weren't always displayed. (Walt, #345450) * custom fonts in the group pane weren't applied on startup. (Stijn Declercq) * fixed off-by-one error in scoring articles by Lines or Bytes. * more Win2K support goodness from Christophe Guisquet and Mike Houwers. * close the 'about' dialog gracefully in gtk >= 2.9. (Yanko Kaneti, #345292) * about a dozen minor memory leaks fixed. (Valgrind) 0.100 "Hey, I like this. Early nothing!" * added `download last N days' in the 'get headers' dialog. * show per-server bandwidth and idle/active connection counts in the status tooltip. (Duncan) * merged the two toolbars so that the group pane's toolbar is harder to obscure. (Chris) * the save-attachments "save" button draws focus now. (Kevin Gottsman, #345026) * fixed bug that didn't mark saved articles as read. (Keith Richie) * fixed 0.99 typo that removed "Get New Headers in Subscribed Groups" from the toolbar. (Chris) * some nntp servers don't allow `group' command before `mode reader'. (Keith Trudell, #343814) * fixed crash on corrupt group data files. (Stephan Walter, #344211) * fixed crash on corrupt xover lines. (Thomas Meyer, #343624) * fixed 0.99 gi18n.h build errors. (John Aldrich) * fixed 0.99 refresh error in the group pane. (Chris) * expired headers are no longer marked as unread. (K. Haley, patch. #343163) * new headers downloaded didn't honor the "expand threads" prefs setting. (Jack Cuyler, #67282) * applied Windows 2K patch by Christophe GISQUET. (#311663) 0.99 "Fat man, you shoot a great game of pool." * added Message-Id filtering in the header pane. (Derrick Everett, #342442) * remember window maximized state between sessions. (Chris Maaskant) * added preferences option to expand all threads when entering a group. (Motor) * Pan's first Bulgarian translation, courtesy of Yavor Doganov! * When reading a group for the first time, a "download headers" pops up. (Walt) * Added a group pane toolbar button for the "download headers" button. * Users of gtk < 2.6 now have an `about' dialog. (Kevin Gottsman, #342484) * statusbar tooltip bar to show active/idle connection counts. (Jeff Berman, #342984) * many i18n fixes by Yanko Kaneti. (#340999) * fixed tooltip error for the cached messages filter button. (Walt) * the group pane's scrollbar was broken to gtk 2.6 users. (dhj, #342647) * highlight email addresses, and handle their being clicked, correctly. (Chris, #342893) * fixed incorrect coloring of low-scoring articles. (Chris) * the header pane no longer `jumps' when deleting articles. (Jeff Berman, #342985) 0.98 "The plain old chaos of undifferentiated weirdness." * added optional `bytes' column to the header pane. (Steven David Ruiz) * remember the user-specified sort order between sessions. (Coran Fisher) * ignore "Re: " when sorting headers by subject. (Charles) * filtering in large groups is now /very/ fast. (Charles) * deleting a lot of articles in a group is now /very/ fast too. (Charles) * small speedups elsewhere. (Charles) * fixed crash-on-shutdown bug. (Jim Henderson, Artur Jachacy) * fixed broken tree expander buttons in the group & header panes. (Walt, doktorseven, Duncan) * fixed 0.97 bug that sorted child articles backwards. (Artur Jachacy) 0.97 Atoz and Tanda Usability * remember pane geometry, and header pane column widths, between sessions. * allow rearrange and hide/show header pane columns. (Bill Pier, Duncan, Les Newell) * lots of speed improvements: startup, shutdown, and group/header panes. (Charles) * fix wiki-style-boldfacing in quoted text. (Christophe) * set a window manager `role' for each different Pan window. (Duncan) * fixed crash-on-startup bug. (#340966, Alen Williams) * don't corrupt data files when writing them and the disk is full. (#339977, Adam Huffman) * fixed a crash when sorting article by subject. (Walt, Artur Jachacy) * fixed crash when disabling a toolbar filter that was enabled at startup. (Charles) * non-root nodes in the header pane should be sorted by age. (#108757, Artur Jachacy) * fixed bug that kept some articles from being decoded. (Jarek Sobieszek, Sam) * fixed the `losing subscribed groups' bug. (Christophe) 0.96: "Afghanistan Banana Stand." Usability * another round of speed and memory optimizations. (Charles) * cleanups in the `posting preferences' dialog. (Christophe) * use the right monospace font in the post-article dialog. (Christophe) * added a config-file option to increase the disk cache. (Duncan, K. Haley) * fixed crash on very, very long References: header. (Flammie Pirinen) * don't crash on SIGPIPE. (Sam Guidice) * fixed Windows crash when reading some mime messages. (Artur Jachacy) * fixed 0.95 memory errors. (Valgrind) * fixed 0.95 pan_tree_store_iter_children() assertion failure. (Sami Haahtinen) * fixed issue with regular expression metachars in watch/ignore thread. (Christophe) * fixed 0.95 error that broke header pane navigation. (Sami Haahtinen, Walt) * fixed bug that sorted unsubscribed chunks of newsgroups incorrectly in the group pane. * fixed 0.95 compile error when building with gtk 2.4. (Kevin Gottsman) * fixed 0.95 compile error when building on Windows. (Artur Jachacy, K. Haley) 0.95: "I feel clean now. My whole body's just a-quivering with cleanness!" * set priorities for multiserver - primary or backup server. (Lyle, Chris Maaskant) * faster loading and filtering in the group and header panes. * faster decoding than 0.93 and 0.94. (Ulrich "boo") * fit more rows into the group and header panes. (Per Hedeland) * put color hints in `score' column if there's a high-scoring article hidden in the tree. * fixed another tail recursion crash in large newsgroups. (Sinan Karasu) * fixed an idle socket crash. (Dave Chand) * watch/ignore thread works again. (Chris Maaskant) * try to decode as much of an incomplete multipart as possible. (Ulrich "boo") * when possible, fetch articles via `ARTICLE nnn' instead of `ARTICLE ', because some servers have problems with the latter form. (Duncan) * `delete article' now deletes subthreads of non-expanded articles like the old Pan did. (Sam) * expand "other groups" if it has groups matching a search criteria. (Matt McAdoo) * scoring by "Newsgroups:" header works now. (Tehrasha Darkon) * some multiparts were broken because uulib couldn't suss out the part order. (Ulrich "boo") * fixed minor build error on FreeBSD. (Per Hedeland) * fixed iterator invalidation crash. (Dave Chand) 0.94: Ready! Fire! Aim! * return of the preferences dialog, part 2: colors. (Jim Henderson, Duncan) * use gnome-hig-correct name ("Quit"), shortcut (control-Q) for exiting Pan. (Henri Naccache) * removed dupliate toolbar buttons. * 'mark-article-unread' and 'download-selected-articles' are back. (Duncan) * when starting up Pan with a tabbed layout, make the group pane visible. (Robert Marshall) * fixed stack corruption when a group had more than about 40,000 root articles. (Sinan Karasu) * fixed nzb assertion "`parts.size() > index' failed." (Rich "budman"; pdxsam) * fixed nzb bug that gave some files too many parts. (Ulrich "Boo") * some multipart mime messages were not displayed properly. (Sam Morris) * fixed a couple of OS/X shutdown crashes. (Dave Chand) * fixed keyboard shortcut between 'mark-article-read' and 'use-monospace-font' (Duncan) * fixed resize error in tabbed layout mode. (Robert Marshall, Eric Ortega) * handle groups with ':' in their name in newsgroup.dsc and newsgroup.ynm. (Motor) * fixed X-Face error in Windows. (Artur Jachacy) * some preferences, like window layout, weren't loaded properly. (Matt Braymiller) * URLs containing commas didn't link correctly. (Henri Naccache) * fixed a handful of small memory leaks. (Dave Chand, valgrind) 0.93: "It's Like Living Inside a Bouncy Castle!" * return of the preferences dialog, part 1: mouse, pane layout, fonts, header downloads. * in the header pane, keep child nodes sorted by date. * `delete article' was in the wrong place in the menus. (Sam) * `read-selected-article' now expands the article's subtree in the header pane. * groupname abbreviation off by default. (Motor) * `mark read' is back. (Christian Lohmaier) * when shortening names in the group pane, shorten discussion groups like "alt.something.d" to "a.something.d", not "a.s.d". (Duncan) * fixed crash when adding some news servers' group lists. (Søren Boll Overgaard) * fixed threading error. (Christophe) * fixed crash when loading groups with munged References: headers. (Christophe, others) * fixed crash when reading articles with oddly-munged From: headers. (Christophe) * fixed crash when reading articles with non-ascii Subject: headers. (Christophe) * running configure no longer requires perl's XML::Parser. (K Haley) 0.92: "I hope the demons pluck your eyes out and use them for marbles!" * added score-by-crosspost-count to the Add Score dialog. (Alexander Content) * horziontal scrollbar in gruop pane when not all text can be displayed. (Christophe) * reintroduced "get new headers for subscribed groups" from 0.14.x (Christian Lohmaier, others) * reintroduced more of 0.14.x's toolbar buttons. * pan remembers its window dimensions, pane sizes, and toggle settings again now. * fixed newsrc underflow/overflow corruption. (Christophe) * fixed "Can't determine this article's charset" error. (Artur Jachacy) * posts were incorrectly formatted. (Christophe, Artur) * on windows, dates in the header pane looked wrong. (Kevin Gottsman) * fixed crashes when the Score file was filtering by Xref header. (Rinaldi J Montessi) * fixed underflow error that said empty groups had millions of unread articles. (K Haley) * fixed off-by-one that kept 'get new headers' from getting the latest article. (Christophe) * incorrectly gave "Error - message appears to have no new content" when non-Latin/Latin 1 characters were used. (Artur Jachacy) * removed ANNOUNCE.html from pan.spec.in (Adam Huffman) * in url.cc the glib.h include needs to be moved above the #ifdef, otherwise G_OS_WIN32 is not defined. (K Haley) * replaced `uint' to `unsigned int'. (K Haley) 0.91: "I'm lost. I'm drunk. I'm impure. What a life!" * added automatic authentication. (Jim Henderson) * in tabbed mode, jump to the right tab when loading a group or article. (Robert Marshall) * "Single-click selects, rather than loads,..." (Steven Adeff) * fixed crash when downloading header with false positive multipart subject (henri naccache) * fixed missing References header in followups (Jim Henderson) * article deletion didn't work. (Darren Albers) * fixed rpm spec file errors. (Adam) * fixed 64-bit build errors. (Jon v/d Kamp, Steven Adeff) * fixed OS/X build errors. (Dave Chand) pan-0.162/README.dev.org000066400000000000000000000013061475412772400145400ustar00rootroot00000000000000* Information for developers ** How to create a release - Run =./mknews = and cut'n'paste the information you want in [[file:NEWS][NEWS]] file - update [[file:NEWS][NEWS]] file to feature the new version number and code name. Pan release number and title are extracted from this file, so please make sure that the first line of the file is: #+begin_example "" <whatever> #+end_example - commit the changes - create a signed tag on master - push the modifications and tag - click on release button on gitlab - send a mail to all pan mailing lists. ** Useful links - [[https://developer.gnome.org/documentation/index.html][GNOME Developer Documentation]] ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������pan-0.162/README.mingw������������������������������������������������������������������������������0000664�0000000�0000000�00000012255�14754127724�0014322�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������The environment =============== installed mingw 5.0.2 with C++ and mingw-make from http://www.mingw.org/download.shtml installed msys 1.0.11-2004.04.03-1 from http://www.mingw.org/download.shtml installed msysDTK-1.0.1 (autoconf, automake, libtool...) from http://www.mingw.org/download.shtml .profile ======== Here is the .profile I use in my msys home directory: echo "loading .profile" export CFLAGS="$CFLAGS -ggdb3 -mms-bitfields" export CXXFLAGS="$CXXFLAGS -ggdb3 -mms-bitfields" export CPPFLAGS="$CPPFLAGS -I/c/mingw/include" export PATH="$PATH:/c/mingw/bin" export GTK_HOME="/opt/gtk" export CPPFLAGS="$CPPFLAGS -I$GTK_HOME/include" export PATH="$GTK_HOME/bin:$GTK_HOME/lib:$PATH" export PKG_CONFIG_PATH="$GTK_HOME/lib/pkgconfig:$PKG_CONFIG_PATH" export ACLOCAL_FLAGS="$ACLOCAL_FLAGS -I $GTK_HOME/share/aclocal" export PCRE_HOME="/opt/pcre" export CPPFLAGS="$CPPFLAGS -I$PCRE_HOME/include" export PATH="$PATH:$PCRE_HOME/bin" export PKG_CONFIG_PATH="$PCRE_HOME/lib/pkgconfig:$PKG_CONFIG_PATH" export GMIME_HOME="/opt/gmime" export CPPFLAGS="$CPPFLAGS -I$GMIME_HOME/include" export PATH="$GMIME_HOME/bin:$GMIME_HOME/lib:$PATH" export PKG_CONFIG_PATH="$GMIME_HOME/lib/pkgconfig:$PKG_CONFIG_PATH" PCRE ==== Like XNews and slrn, Pan uses the perl-compatable regex library. * Install PCRE from http://gnuwin32.sourceforge.net/downlinks/pcre.php to c:\msys\1.0\opt\pcre. You don't need any of the installer's start menu stuff for Pan. GTK === I used wget and unzip to grab the zipped windows gtk binaries from gtk.org. If you get them some other way then you won't need wget/unzip: * Install unzip from http://gnuwin32.sourceforge.net/downlinks/unzip.php to c:\msys\1.0 You don't need any of the installer's start menu stuff for Pan. * Install wget from http://gnuwin32.sourceforge.net/downlinks/wget.php to c:\msys\1.0 You don't need any of the installer's start menu stuff for Pan. * Go visit http://gimp-win.sourceforge.net/stable.html to find out what the latest supported gtk runtime environment is. (Example: right now it's 2.8) That is the version of GTK that we will grab in the next step. * Copy gtk a set of the latest gtk windows zipfiles to c:\msys\1.0\opt\gtk . Here are the files I got, though you should get newer versions if available. ftp://ftp.gtk.org/pub/gtk/v2.8/win32/atk-1.10.3.zip ftp://ftp.gtk.org/pub/gtk/v2.8/win32/atk-dev-1.10.3.zip ftp://ftp.gtk.org/pub/gtk/v2.8/win32/cairo-1.0.2.zip ftp://ftp.gtk.org/pub/gtk/v2.8/win32/cairo-dev-1.0.2.zip ftp://ftp.gtk.org/pub/gtk/v2.8/win32/glib-2.8.6.zip ftp://ftp.gtk.org/pub/gtk/v2.8/win32/glib-dev-2.8.6.zip ftp://ftp.gtk.org/pub/gtk/v2.8/win32/gtk+-2.8.13.zip ftp://ftp.gtk.org/pub/gtk/v2.8/win32/gtk+-dev-2.8.13.zip ftp://ftp.gtk.org/pub/gtk/v2.8/win32/pango-1.10.3.zip ftp://ftp.gtk.org/pub/gtk/v2.8/win32/pango-dev-1.10.3.zip ftp://ftp.gtk.org/pub/gtk/v2.8/win32/dependencies/gettext-0.14.5.zip ftp://ftp.gtk.org/pub/gtk/v2.8/win32/dependencies/gettext-dev-0.14.5.zip ftp://ftp.gtk.org/pub/gtk/v2.8/win32/dependencies/libiconv-1.9.1.bin.woe32.zip ftp://ftp.gtk.org/pub/gtk/v2.8/win32/dependencies/libpng-1.2.8-bin.zip ftp://ftp.gtk.org/pub/gtk/v2.8/win32/dependencies/pkg-config-0.20.zip ftp://ftp.gtk.org/pub/gtk/v2.8/win32/dependencies/zlib123-dll.zip * % cd /opt/gtk % for foo in *zip; do unzip "$foo"; done % mv zlib1.dll bin/ GMIME ===== Get a GMime tarball into /opt/gmime and prepare to build it. % mkdir -p /opt/gmime/src % cd /opt/gmime/src % wget http://spruce.sourceforge.net/gmime/sources/v2.1/gmime-2.1.19.tar.gz (or newer, if available) % tar xfz gmime*gz % cd gmime*/ GMime requires regular expressions. Since we're already using pcre, we can adapt GMime to use that: * in tests/Makefile.am, add /opt/pcre/lib/libpcreposix.dll.a /opt/pcre/lib/libpcre.dll to the LDADDS line. * in gmime-2.0.pc.in, add /opt/pcre/lib/libpcreposix.a /opt/pcre/lib/libpcre.a to the LIBS line. * in gmime/gmime-parser.c: - #include <regex.h> + #include <pcre.h> // pick up PCRE_DATA_SCOPE macro used by pcreposix.h + #include <pcreposix.h> GMime won't build under Windows without the following changes: * in Makefile.am, remove the line "SUBDIRS += dests docs" * in gmime/Makefile.am, remove the line with "gmime-gpg-context.c" * in gmime/gmime-stream.h, add #include <stdio.h> before #include <glib.h> * in gmime/gmime-stream-fs.c, replace "return fsync" with "return 0" Build and install GMime. % ./configure --prefix=/opt/gmime \ --with-libiconv-prefix=/opt/gtk \ --disable-shared --enable-static (how to fix the LIBICONV warning during configure?) % make % make install PAN === Pan itself is pretty painless. % tar xfj pan-win.tar.bz2 % cd pan % CXXFLAGS="-O -Wall -ggdb3" ./configure % make You now have a working Pan binary in pan/gui/. Notice that when you run it, it looks like a theme-less gtk. If you now install the gimp gtk runtime, and copy the pcre dlls from /opt/pcre/bin/*dll to the pan executable's directory, you can fire up a gtk-wimp'ified version of Pan from outside of msys. ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������pan-0.162/README.mingw64_msys2����������������������������������������������������������������������0000664�0000000�0000000�00000004237�14754127724�0015632�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Instructions for msys2/mingw64 See https://www.mingw-w64.org/ https://www.msys2.org/ Install msys2 as per instructions. You will also need to install $ pacman -S mingw-w64-x86_64-pcre mingw-w64-x86_64-gmime gspell To run wininstall, you will also need mingw-w64-x86_64-python-pip Also for the sake of your own sanity, add 'export MSYS=winsymlinks:native' to your .bash_profile $ pacman -S mingw-w64-x86_64-gtkspell3 You also need some dictionaries to spell check against! $ pacman -S mingw-w64-x86_64-hunspell-en and this (possibly optional, but...) $ pacman -S mingw-w64-x86_64-iso-codes Then you can create an msys2 x64 window and build with cmake as per README.org instructions. NOTE: enchant is somewhat broken under mingw64 and cannot find the appropriate libraries as it appears to expect to find at least 'lib/enchant-2' in the the same directory as the executable. You might want to create a soft link or copy. If you run wininstall, it copies the appropriate directories to the same place as the executable, and works fine. Go figure. Haven't tried these yet (these are the automake switches so not quite cmake): 1. --with-dbus 2. libnotify: autogen with --enable-libnotify $ pacman -S mingw-w64-x86_64-libnotify 3. --with-yelp-tools --enable-manual for user manual (can build but have no idea how to install) $ pacman -S yelp-tools 4. --enable-gkr for gnome keyring (gtk2 and 3 different for this, not sure if this is necessary) 5. --with-gnutls 5. --with-webkit and `make`. If you want a windows theme in gtk3, run ``` mkdir ./etc/gtk-3.0 cat > ./etc/gtk-3.0/settings.ini [Settings] gtk-theme-name=win32 <ctrl-d> If you want other themes, you can install them in share/themes in the target directory. To add: - [[https://developer.gnome.org/libsecret/][libsecret]] 0.16 or higher and [[https://developer.gnome.org/gcr/][gcr]] 3.20 or higher for password storage ([[https://wiki.gnome.org/Projects/GnomeKeyring][GNOME Keyring]] 3.2.0 or higher when using GTK 2) - [[http://www.freedesktop.org/wiki/Software/dbus][D-Bus]] to support running multiple Pan instances - [[http://www.gnu.org/software/gnutls/][GnuTLS]] 3.0.0 or higher for encrypted connections (TLS 1.x) �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������pan-0.162/README.org��������������������������������������������������������������������������������0000664�0000000�0000000�00000023146�14754127724�0013771�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������* Content :TOC: - [[#pan---a-gnome-newsreader][Pan - A GNOME Newsreader]] - [[#the-sales-pitch][The sales pitch]] - [[#using-pan][Using Pan]] - [[#release-notes][Release Notes]] - [[#requirements][Requirements]] - [[#installation][Installation]] - [[#cleanup-autotools-remnants][Cleanup autotools remnants]] - [[#standard-build][Standard build]] - [[#installation-1][Installation]] - [[#build-options][Build options]] - [[#debug-build][Debug build]] - [[#cc-language-server-support][CC++ language server support]] - [[#upgrading][Upgrading]] - [[#how-to-report-bugs][How to report bugs]] - [[#help-wanted][Help Wanted]] - [[#contact][Contact]] - [[#mailing-lists][Mailing lists]] - [[#newsgroups][Newsgroups]] - [[#links][Links]] * Pan - A GNOME Newsreader This is Pan, a powerful and user-friendly Usenet newsreader for GTK. The latest information and versions of Pan can always be found at [[https://gitlab.gnome.org/GNOME/pan][Pan website]]. ** The sales pitch Pan is good for Reading News. - Pan is the only Unix newsreader to score 100% on the Good Net-Keeping Seal of Approval newsreader evaluations. - Pan has keyboard bindings for mouse-free newsreading. - Basic newsreader features, such as reading and writing news, threading articles, and replying via email, are supported. - Articles can be sorted by author, date, subject, or the number of unread children in the thread. - Multiple connections are supported, so articles can be read while binaries are downloading. - Articles can be filtered by regular expression matching, read/unread state, binary/text, etc. - Works well as an offline reader. - Articles can be queued until you want to go online, and can be re-edited at any point before they're posted. - A flexible rules system allows you to delete, hide, download, or notify you of, etc. articles that match a subject, or are posted by a particular user, and so on. - The same system can be used to define automatic actions on behalf of the user: auto-download, auto-cache, auto-delete etc. - Groups can be filtered by regular expression matching subscribed/new/all, etc. Pan is good at Binaries. - Attached images can be shown inline. - Pan can download and thread articles as quickly as bandwidth allows. - uuencode, MIME, and yEnc attachments are all supported. - A task manager lets you reorder, cancel, and resubmit download tasks. - Multiple connections are supported, so many binaries can be downloaded simultaneously. - Multipart articles are automatically grouped together. - Non-binary, incomplete multipart, and saved messages can be filtered out of the article list. - Files can be attached to a Usenet article and are automatically encrypted with yEnc, threaded and referenced by Pan. - Articles can be encrypted or signed with a public or private PGP key for enhanced privacy and security. - Connections can be encrypted with the TLS protocol. ** Using Pan See [[file:docs/manual.org][Pan user manual]] ** Release Notes - You are advised to back up your $PAN_HOME directory (by default, =$HOME/.pan2=) before upgrading Pan. - If you have previously been using a localhost server with stunnel and you now want to connect directly to a news server using the actual server address, do not create a new configuration entry for the server. Pan treats a new entry as a new server and does not preserve existing data on your subscribed groups, even though you are connecting to the very same server as before. Always edit the existing server configuration to preserve your subscriptions. - Directories to search for SSL certificates can be defined with environment variables 'SSL_CERT_DIR' or 'SSL_DIR'. - To use password storage provided by GNOME Keyring or libsecret, build Pan with support for that feature, and then enable it in Edit -> Preferences -> Miscellaneous -> 'Save passwords in password storage'. ** Requirements Pan requires these libraries: - [[http://developer.gnome.org/glib/][GLib]] 2.17.6 or higher (optionally GLib 2.26.0 or higher to support multiple Pan instances) - [[http://www.gtk.org/][GTK]] 3.16.0 or higher - [[http://spruce.sourceforge.net/gmime/][GMime]] 3.0.0 or higher (optionally with PGP cryptography support) The following libraries add extra features but are optional: - [[https://gitlab.gnome.org/GNOME/gspell][GSpell 1.x]] for spellchecker support - [[http://www.galago-project.org/news/index.php][libnotify]] 0.4.1 or higher for notifications - [[https://developer.gnome.org/libsecret/][libsecret]] 0.16 or higher and [[https://developer.gnome.org/gcr/][gcr]] 3.20 or higher for password storage - [[http://www.freedesktop.org/wiki/Software/dbus][D-Bus]] to support running multiple Pan instances - [[http://www.gnu.org/software/gnutls/][GnuTLS]] 3.0.0 or higher for encrypted connections (TLS 1.x) - [[http://itstool.org/][ITS Tool]] for built-in user manual The following libraries are experimental and not suitable for any use other than testing. Use at your own risk: - [[https://webkitgtk.org/][WebKitGTK]] 1.8.1 or higher for embedded HTML On Debian and derivatives, required dependencies can added with: #+BEGIN_SRC shell :results verbatim sudo apt-get build-dep pan #+END_SRC * Installation ** Cleanup autotools remnants Some people has issues when using cmake to build Pan after using autotools. Unfortunately, autotools leaves a lot of files that may break build with cmake, so here are the instructions to clean all autotools remnants. This procedure is to be run once if you used to build pan with autotools in your repository. First, check the list the files to be deleted: #+BEGIN_SRC shell :results verbatim git clean -dxn #+END_SRC Then, delete all extra files: #+BEGIN_SRC shell :results verbatim git clean -dxf #+END_SRC Alternatively, you can clone Pan in another directory. ** Standard build Run the following command to setup Pan build with the default options: #+BEGIN_SRC shell :results verbatim mkdir -p std-build cmake -B std-build #+END_SRC To setup options, you can run: #+BEGIN_SRC shell :results verbatim cmake-gui -B std-build #+END_SRC Then build pan: #+BEGIN_SRC shell :results verbatim cmake --build std-build -j 8 #+END_SRC Optionally, run tests (even if they are few of them): #+BEGIN_SRC shell :results verbatim ctest --test-dir std-build #+END_SRC ** Installation To install pan: #+BEGIN_SRC shell :results verbatim cmake --install std-build #+END_SRC Uninstall pan (see [[https://stackoverflow.com/questions/41471620/cmake-support-make-uninstall#44649542][Stack Overflow link]] for details): #+BEGIN_SRC shell :results verbatim xargs rm < std-build/install_manifest.txt #+END_SRC ** Build options Pan can be build with several options: | option | usage | default | |---------------+-------------------------------------------+---------| | ENABLE_MANUAL | built in user manual | off | | WANT_DBUS | enable D-Bus support | off | | WANT_GKR | enable GNOME Keyring or libsecret support | off | | WANT_GMIME | enable GMime cryptography support | off | | WANT_GNUTLS | enable GnuTLS support | on | | WANT_GTKSPELL | enable GtkSpell support | on | | WANT_NOTIFY | enable libnotify support | off | These options can be listed with the following command: #+BEGIN_SRC shell :results verbatim :eval no cmake -B std-build -LH #+END_SRC ** Debug build You can also create a debug build: #+BEGIN_SRC shell :results verbatim mkdir -p debug-build cmake -DCMAKE_BUILD_TYPE=Debug -B debug-build cmake --build debug-build -j 8 #+END_SRC ** CC++ language server support To get language server support (e.g. [[https://github.com/MaskRay/ccls][ccls]]), run: #+BEGIN_SRC shell :results verbatim mkdir -p debug-build cmake -H. -B debug-build -DCMAKE_BUILD_TYPE=Debug -DCMAKE_EXPORT_COMPILE_COMMANDS=YES ln -s debug-build/compile_commands.json . #+END_SRC #+RESULTS: : -- platform: Linux-6.6.13-amd64 : -- Configuring done (0.2s) : -- Generating done (0.1s) : -- Build files have been written to: /home/domi/private/debian-dev/pan-stuff/pan-upstream/debug-build * Upgrading Upgrading typically requires that you do the exact same procedure as when installing Pan. * How to report bugs For details on how to report bugs, see [[http://pan.rebelbase.com/bugs/][Pan bug report page]]. * Help Wanted Several areas are in need of work: - Pan still contains a lot of GTK2 code which triggers a lot of warnings. I'd welcome patches there. - The [[https://gitlab.gnome.org/GNOME/pan/-/wikis/home][Wiki page]] on Gitlab is empty. Help is welcome there. * Contact ** Mailing lists To get in touch with Pan contributors and community members, subscribe to one of the Pan mailing lists. - [[http://lists.nongnu.org/mailman/listinfo/pan-announce][pan-announce]] :: This is a low-traffic list for announcements of new Pan releases. - [[http://lists.nongnu.org/mailman/listinfo/pan-users][pan-users]] :: This is a high-traffic list for feature requests, user questions, bug reports, and most everything else. - [[http://lists.nongnu.org/mailman/listinfo/pan-devel][pan-devel]] :: A developers' forum to discuss hacking on Pan's source code. New developers are welcome. And a big thank-you goes to Savannah for hosting these lists. ** Newsgroups Pan mailing lists can also be accessed through the Gmane email to news gateway: - gmane.comp.gnome.apps.pan.announce - gmane.comp.gnome.apps.pan.user - gmane.comp.gnome.apps.pan.devel * Links - [[http://www.gtk.org/][GTK]] - [[http://www.gnome.org/][GNOME]] - [[http://www.gnu.org/][GNU]] ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������pan-0.162/README.windows.in�������������������������������������������������������������������������0000664�0000000�0000000�00000001073�14754127724�0015274�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ http://pan.rebelbase.com/download/releases/@VERSION@/ has a full list of changes since the previous release. On Windows, Pan requires GTK @GTK_REQUIRED@ or higher, which can be found at <http://gtk-win.sourceforge.net/>. Found a bug? Have a suggestion? Send feedback to the pan-users@nongnu.org mailing list. Information on building Pan on Windows can be found at <https://gitlab.gnome.org/GNOME/pan/raw/master/README.mingw>. See the following page for more information on Pan builds for Windows: <http://pan.rebelbase.com/download/>. ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������pan-0.162/config-cmake.h.in�������������������������������������������������������������������������0000664�0000000�0000000�00000010334�14754127724�0015417�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* cmake input file */ /* Define to 1 if translation of program messages to the user's native language is requested. */ #define ENABLE_NLS 1 /* Gettext Package */ #cmakedefine GETTEXT_PACKAGE "@GETTEXT_PACKAGE@" /* Darwin */ #cmakedefine G_OS_DARWIN 1 // TODO is this useful with Mac ? /* Define to 1 if you have the Mac OS X function CFLocaleCopyPreferredLanguages in the CoreFoundation framework. */ /* #undef HAVE_CFLOCALECOPYPREFERREDLANGUAGES */ // TODO is this useful with Mac ? /* Define to 1 if you have the Mac OS X function CFPreferencesCopyAppValue in the CoreFoundation framework. */ /* #undef HAVE_CFPREFERENCESCOPYAPPVALUE */ /* Define to 1 if you have the `close' function. */ #cmakedefine HAVE_CLOSE @HAVE_CLOSE@ /* D-Bus support for multiple Pan instances */ #cmakedefine HAVE_DBUS 1 /* Define if the GNU dcgettext() function is already present or preinstalled. */ #define HAVE_DCGETTEXT @GETTEXT_FOUND@ /* Define to 1 if you have the <errno.h> header file. */ #cmakedefine HAVE_ERRNO_H 1 /* Define to 1 if you have the <fcntl.h> header file. */ #cmakedefine HAVE_FCNTL_H 1 /* Define if the GNU gettext() function is already present or preinstalled. */ #define HAVE_GETTEXT 1 /* GNOME Keyring or libsecret support for password storage */ #cmakedefine HAVE_GKR 1 /* cryptography (PGP) support with GMime */ #cmakedefine HAVE_GMIME_CRYPTO 1 /* GnuTLS support */ #cmakedefine HAVE_GNUTLS 1 /* Gspell support for spellchecking */ #cmakedefine HAVE_GSPELL 1 /* Define if you have the iconv() function and it works. */ #cmakedefine HAVE_ICONV 1 /* Define to 1 if you have the <inttypes.h> header file. */ #cmakedefine HAVE_INTTYPES_H 1 /* libnotify support for popup notifications */ #cmakedefine HAVE_LIBNOTIFY 1 /* strftime supports use of l and k */ #cmakedefine01 HAVE_LKSTRFTIME /* Define to 1 if you have the `localtime_r' function. */ #cmakedefine HAVE_LOCALTIME_R 1 /* user manual for Pan */ #cmakedefine01 HAVE_MANUAL /* Define to 1 if you have the <stdint.h> header file. */ // #define HAVE_STDINT_H 1 /* Define to 1 if you have the <stdio.h> header file. */ // #define HAVE_STDIO_H 1 /* Define to 1 if you have the <stdlib.h> header file. */ // #define HAVE_STDLIB_H 1 /* Define to 1 if you have the <strings.h> header file. */ // #define HAVE_STRINGS_H 1 /* Define to 1 if you have the <string.h> header file. */ // #define HAVE_STRING_H 1 /* Define to 1 if you have the <sys/stat.h> header file. */ // #define HAVE_SYS_STAT_H 1 /* Define to 1 if you have the <sys/types.h> header file. */ // #define HAVE_SYS_TYPES_H 1 /* Define to 1 if you have the <unistd.h> header file. */ #cmakedefine HAVE_UNISTD_H 1 /* experimental webkit support (3.0) for embedded HTML */ #cmakedefine HAVE_WEBKIT 1 /* Zlib for xzver support */ #cmakedefine HAVE_ZLIB 1 /* Define as const if the declaration of iconv() needs const. */ // #define ICONV_CONST /* Name of package */ #cmakedefine PACKAGE "@PACKAGE@" #cmakedefine PAN_DBUS_SERVICE_NAME "@PAN_DBUS_SERVICE_NAME@" #cmakedefine PAN_DBUS_SERVICE_PATH "@PAN_DBUS_SERVICE_PATH@" /* Define to the address where bug reports for this package should be sent. */ #define PACKAGE_BUGREPORT "@PACKAGE_BUGREPORT@" /* Define to the full name of this package. */ #define PACKAGE_NAME "@PROJECT_NAME@" /* Define to the full name and version of this package. */ #define PACKAGE_STRING "@PROJECT_NAME@ @PROJECT_VERSION@" /* Define to the one symbol short name of this package. */ #define PACKAGE_TARNAME "@PACKAGE@" /* Define to the home page for this package. */ #define PACKAGE_URL "@PROJECT_HOMEPAGE_URL@" /* Define to the version of this package. */ #define PACKAGE_VERSION "@PROJECT_VERSION@" /* uname cpu-vendor-platformbuild */ #cmakedefine PLATFORM_INFO "@PLATFORM_INFO@" /* Version number of package */ #define PAN_VERSION "@PROJECT_VERSION@" /* Version numbers so that windows build can find them. DO NOT REMOVE */ #cmakedefine VERSION_MAJOR @VERSION_MAJOR@ #cmakedefine VERSION_MINOR @VERSION_MINOR@ #cmakedefine VERSION_PATCH @VERSION_PATCH@ #cmakedefine VERSION_TWEAK @VERSION_TWEAK@ /* Release Name */ #define VERSION_TITLE "@VERSION_TITLE@" #cmakedefine GIT_REV "@GIT_REV@" /* DATAROOTDIR comes from GNUInstallDirs package */ #define PAN_SYSTEM_ICON_PATH "@CMAKE_INSTALL_FULL_DATAROOTDIR@/pan/icons" ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������pan-0.162/docs/�������������������������������������������������������������������������������������0000775�0000000�0000000�00000000000�14754127724�0013245�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������pan-0.162/docs/mainwindow.png�����������������������������������������������������������������������0000664�0000000�0000000�00000701463�14754127724�0016142�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������PNG  ��� IHDR�������p:��� pHYs����+�� �IDATxgxV�#;;;d2 ({MZJҖieuPN8~L $v-}[:Jtt$ Ыk߁a埾CN |oNq͛>xo޺UVN%cZ_O\1�ZE?Ƿ]"BtL }>[z�tYJƏs~9njgrRҨ1ض]"X9y �ܶ… [9sfe4�O>'nnn�pMۛ��8˹ƞ=W둝_8;GAilɴoqNϚ%"MpҾ={j3E.?Ι#H&o˯3惜ܶI*2tQ#h+WΛY'~wINhڤiB5a6mh[Oh4R#+G,%�{$IFFdjݺݻwϝ;gXry~�i 4ڧAZ5&P6M6?'NԦu={?~m\ѣߺuk�|%K6mX|98a"�M=zl77SvoPuI&1:::**ʺu9n]:UMJ_�īVZ 9_U(%>[dEJc<a_/zXޙ7!C.^pEWפIn<E?p3>ν{>jw}3{MeY?XX"‚"Q_JQQ;\bƌ&M_�~>�p̙ 6]dIݺvоÇ:`|ͬDbŢŋ^=, �~-ZX[FSXXcj)?p`Ϳm?v{Y{ٶ}dž/ܶc皟ٱsǑ#G'Ni攔ӧ<|hyٳ~drШ!iX <Ƿշw.;=I#}6reK_{'Oض}n]`{]|y6oْ:m lNOOuiסsjr{vj?we$dSrb\]ւzټ2wR֯̚1}}0z-[�!o~4zZyZ2慆իhִfZII1m۶k4|>>֏bټu˱6mXb\bW_{yyَsa/?p9?U|/zRgۛ9997r,n�{ɺ-w߾+_ (fY;~Ik"Ç~s۪+y<sgSSSk֬l6wiwoߖѥKנ`BHY{RKdff7do[(�`4{|ٲ`[]RúꂏL.>%DZq񚂂 ڽ6/cS_g CsGl`G?:uj[wQ-* !5-EQI?;ufڌ/�kbbbFoLV<M#@9R2aGU/�`ة ̺=F5Zb-ba!LFG_0?##d4޻u;wy\G__V믿JԖUlaU xR?F 8S>fV-&q'Oȱ  N2}g<SRBNN~~Ҳe'OBnݾuڵbQ#5,UDZN:lܴ)5-cb*U~~b8VY,;6ג @ ST͚5ۻw+"##r^ݻ7EQV F 5kSR JOH t~WT,?~"%)-^8bkūMAA�PTTx'fvMϭY9RZFWXh6BJt@Z5kׯ ix<o«ն ڼfƍDBAP`#_?_u^-AҥS`@@~"lru@:uJ]z;w*Q[hyV� )5xy233>Ad !:n+DMҨaì̌cǎRe;pɍm4i8+3rssg$6[24zb#co9nz+,4NQeeFDDBFݿJ***~W3gm688:#�1vgBDZ͚6&dZMڥFٲekFfd2 yj5yȡUCH&9ݼ|^է=(2 x}ĉsnW6R�JBKIeDBlb۶m,رPk .dYx/>;W+qBTY L&czz:8  m|e ^`4v%vW].o_kN:?:vӮmÇݸyX|]q>>>c0X%|l23Rٽ"զ'nݺqlnnNnnNVֱ$V]Jť/\piFV=jdeYa,@Q~5L4MmN*n߾m.^̙3gZGuj^z`0 ׮ ^=00tz RRf3DZ,˦qKQ\.cr˓4mDzY`Y? \Fo֬&=oިP~VxĨyyzy!rsBB``Y;44t&h֭Zp}-n%Tg5ΐCr#B!B%Kkծ}[wh8UB!B!�(J.s;j^<KB!B!B/<=dsbjB!BUZ.ߺs%V!B!z]4]SjB!B!lOocB!BفIl25.�@c+j!B!Dyk7K7B 6E]v lB?!<,t3@ ֯\{1+!80?gRBʕ]U;*y&<H$FQT ZmX6mjXH$JIIuNo#oހ>=�qͭ;{fe Uwz\fx~Z<h8럹y)*!P)B|%ޏ n2cʚ.'&i?_d2blVTNNNl6 \ww7w7W!!95mIc'O[:?_o>DJJFF^N-Hl@Yqlv^!^}ujըS} />Rb:j|g)]\߿-JD"ѭ[(2YYYrd2�0</zhRjG!l,f %-=;'wVz;a2giFfֆ-_r �#$8ƭ;}zvuU*222o� sv^:o'D)a}מukߏoYsұfHN`uk(돞8ao ׻G/'X>5-Uj>ޣnX]OwRի[Nxzkk#EޥKn9ysnZ{&9/Z^ZwQ*\.>1:eXh#:'~c|B3'䇙gfpq5"G6J,蘟oLNI+jQj�mVHfh2%&,Zvͨ1 cY?|?sЈqЯ<k‘C >֢]#֫]h48ONn^Qvw#Reu[=Tuj՘ �1s[w*ZX)~X:{Z5UOre2S@'0EիWf'''XLox?u΄gBb�a�@]vc uI kM7+ f[TT_N8ṫB:+:}=c-Y! _#2~tmIcGvҟ6ox;m?%*ދp*�h;O�&=vĐ3g[#U%o>?%?qࣉcf~?D ӫ[տlT�Ы[w\ظ@ GH$6j+|1GN_$&~7wd0zq'Laa:E}5{.1>-+_65Wh9qrS^¥"p^g|4}"~;}rƨ  VhJ.ڲV),ҚQ98n!} Z2CWmؔՠn%$^~�>4^"OrV^߹[wV!^ kG--Κ~ eMϐ+ƭ;q52\!T̜�0fYHaad,u z=&(gd>�F{Ɍ,maCGbÉy~OHRmH$ �ma&mg۴8nOkR/]=qfΜٹgFuT9'OMHL Nܼܼ \2ԶUKɼzܼ䔴-ooTL\tazt݇LNI~vRJ*�ӷ;w9wAs_޽KGDlkSR:pqYru|bRZzνy cSS\E8Ҧe󲾅/>b6[f]daY�hV+cZhjQؠ�uk/^:95-'7oպM yEBDB!EQEզg:zegǶs9�!A5":&.>-=cƭY剆B襰u?=<%q-CouϦN|r8Nx<xo.(HfOOOo\5!гuϷk75 ЯwHpQ&,/ua�$gW'1)6*O/(>A̺t۟E"[B۬qnV8N$ U  puUn]ME).oTH>xܗ�JTj=`uA񉎍-,|TgdRe<s(Hdqg`0&V.uE:vͨac'֕gBb<aC`T٦ի[}}u s%&^ ߷˲ ! Iɒgn$!^%FbW鹞\QP{k>  TՅ%bb2ymd8EQB0$8Nt<^zBR3h2ز8釯?¥)~j=֯\lPlqyPUbWTX(51W^iܶu˱#>J'Ξ{OM?QGSwLNDG\6-ص%>OL7j%f(8nҴ/tEeU6WY+dCNnۺe~}3oss `(%Z!]\TxREvtϚyp@k=txֳl/!F1zH((3(B!`XRU9o 9}ݑ"R3|m#bA֪sqkf^*%&U19y'<z}Dofj4oFWlj~rR*\2P(흞YꔋWazug[uRRb}LӴ{E?uWhCc'}clpv\0L?j Bų1vt5oXP\7n/}#̟kh4<| BHfffVV6ɄcE| B SB"ëog.gtY'N pwvT)+;["�.ڕgc'OϧN p޽sG_Mxg�bwh۴l^VHhUٰ~z8fDFX,'O@QW-+q5 �GN ;ap[Ou\B&ݴQO=E�윰�?_…VG6ox{I$R'IjZ�d|~feb'&.AL|\zw zC!Rܸug;6>]wDOwϘ#5{xyzHR1}Y@pG~JtzfVbB!�ZzðG TP]cFgFa(YFz:ۮ=oHVNN Y7MJIx>z\g<S1_h4 UY_m^8~^y}WE �I)7oߝ' y|bҗͱ^NQT:؜>{viO:C?cQC-_CFߋY=ww7fV{?zρ#%mρai0GOq\6o2H(d7�p~Ǝ*fY/q 9tяߚL9w?r̎Bųe/n 3K9Dz!\.(hdf E?F!^?/T{xu>+}X@Eϟ!ri!!q4( (LB(\\JEfeW=1EQ!xA!+Ǫ*!P >q,UD,=콜ܼz*4dSRY޹o59J!z+F!8sH>pL+G}9OB8nJr)i3+BB!B!l~$B!B!J!B!rf!B!0F!B!=۰e!B!¾kB!BQ]#B!B!B!rf!B!0F!B!5B!B!(̮B!B!GavB!B9kA=9]ooS儭.'RǕR/=k}y %B!#Eƍkf:)) >в-VcCHu[:W쭔-#|CT"Δq~ѶyZw=/*ŭ{3hS'6*ߒޤi7x꒣I ptXVDz1C-E!Bijk.&lĦ_2��EQ4E7o�>{FG<Uh) @-ԩ!BB]hN]"6? ky\¡ݾ `$R^cIErXSΥהU%L7vDy$m_O#=<x^.^6 Ub41LgwxG!BU}#)bi*u8(wχԱ}Vr4~P�S9c}mǾcz82'Y4c9Vߣgߏvq ^ڻmD?Ciu-r%wOj3p]�`ȬO�� �IDATOVw[;}G{w}}ުV,RX_[<~\u3ֶz7}9ke~oZJ/7{λzt{ ^{uu�yjwvxm{ }$îaiڳ;:~<Y_lJFNɍךs/h; nەY+/٥oKx=(ӕ?s~e}!Bf\ʶϧ_С?S*`ٗ&z؁ӢY|*%o>"EuTDknsm�0<pTݤkb=O/6ma)p�'B|:!�oJ5 )'drrΟ٩OYݑ\Ϧwzo_?^�lsQ,ص mߵ3Ǐ]֋w{U9'l9x=+?y['stŐ]"vo߿F>k^ӭ̍Kuƴ v?u`o>.cۮ?D,7wyJոd ZVƖ-WE]B!7eLN:tԡSry'|tϝ߯d9thm^=[Lާ$;%|Ł]4\U]9K[ҳР_k:Ɯ{cXЛ.˃KWIæQ|{*Bf]H;uԡSn_x%|c{c. �M"E*Q4SF "vr!]x}s Zx:\'ۨw;7ZPg鱝g\TY.݃|]'elL-Z9jqfGWj%QީC_Z?(os>B!Bcu}_60z [@9\ӝU#z��Ģxu]jKWO/\rpc* &]_8!&⟖&M;.8chQrRaHmuDvUeQs�,%?1p�l^a,Z)+γ|Ƴ��MH̊'sqz8F5T@+ݸ~BZ ? Eӭ]sg�XZXΛ5V{xKm�/tؚ[;�Xtݧʕ[lI�``O�Px)22C B!f_vM.—qqu5i^*;e.rsJN!%�CS�� tm<ȉ䢬z'>,cIMM0s.o>ǵז'"UQ8W ڣA#eG}?'Q(%\g-quw5_*CTݘ. ��(eMSpV?Ѩ guΣE!rm?m=y;klGuwέA֬5fO�<r̜!Vr.{ۮTFTΖ_n .r+ቦo!BWSU]wMvkӊ:3M:vOa80-Z޶b!oJ$ FK70~T֭ѱsTe,foں�h]l Y# : =O?ZyNq}Jm.ЮG?Vn$`ξ~%OUr*9mYE3~%\u8d˹f E;4|Q=�0r 9g2yڳkFV]{5ػv`.c#atUSi1em\%տ,eRʅˮL~|˘]#BWsс[>An7[1katEE?k:lԂ׾ m;o۳rnް}ۻU}Ȳ>@wa5SS1XRqݦ4��Dk7:5vVWɔU˂׬8mLˆda(�ʯ?/,-+C#e\ewʈ{?~ŹZ6-eWh.1T ӻ5_Mm E.o}:}S뙒5z7;/}r#yƴ]g[DZMZeУ-'yS2٧˥]rK+"!BK<>>{BdDK z]9ϟG᷌B!^3ؕ^w�eB!!B!r G!B!}!B!0F!B!5B!B!(̮B!B!GavB!B9 kB!BQ]#B!B!B!rfr՗]q /lGB0F!B!5B!B!(ˮ!DVU"=Gˮ4E%wwBAQˮzu`:!z}`vm?BHrrd&svæW!DiZQ5 B!SF~ݺr ^aEuFZ^؀&A!^]O EQ!/" kBuٵEzˮzq] u B!~!Zi㸗] u B!!B!rf!B!}"֐w!~Z�@Ӵ"a@f hfNC:X˒[T`@\%/:!>d08#:EQ |aiV\Cz8]e޽vPÖ9ׁZ,{NǛNrTg{*&Ʉ"&B/ElI&pN� u*Mu]r.@YW-[BYmF!i"KSl8B\1_/`<xs'[~î{T !^=ff KQ"sAEQ8,*L2)9y&MX(+J=˱yMJ; k޻/33۫Gn#G D/T˖\|3&xpa-7r1g&~ߩ8`!:re>27a۩\6U 1EiaYWp�B0Ʀ䚌Fc?H$\0~F l؀;UQ�W{+\BQ9IY 11f=6KNI4M(k+Wvx^!R pe! �,1=70U hX(&)n&ٓ@h^`:U\8nhHpl\+:|x|=nfE94&';W? �r5| fsyI%(])?R.aB No;Wmv}5yRVT a9‘\ 5r"꩘@A [h6l󹹹;wtiNU`cTu �0 5} uZoa9)ՎYgaͥE"pQ(NNbD"ax`4:I$ ^sBvrp `a �(;&^H( UZ5 Enn֒ 'ʒRekֺ*?XfV?Xk֮?nLUJUGƄg*7KYh.I'W*T²|{Zz~QpD"=E X`Hr7+(1ßhwC, Q(r_!gQZ$zJ\S1Y<ΙrƳSu5k)gN]�"$UA%+-(d ` `J̲TnߵM3y<̷)1?V76>NSIO˨[F[][XH=.bg˱W2 ?7�( :4"H&q` R "??ߪNwݷho;棩KQx¸`E�0bPbA� Tӳ#݋̏?~rRl >?X,wr̵#$|HwEt;2yY^5XT#q.avW^MJK,#n]ǿMc>w)999:3/86^JB=W60UЀ bRΫY\ZX7rcW;fY*ڊcz!˥2\PhjjՈMدo#dggS>BJH/9p(@1-r ! ϋ򊏉YV`P@VV6E8uNdҠc%1114jpX,UJtb?nhdYv %E� �xOʪ7�p#6CT wfȧz=7l怎Kz$<K K*YBzɉLZU0S].SϮO\7 sr. ĭi 9+])3P/|�N6Q@ �IAvzUab�)5$5`HU'c1_fX0٤-n~d $B٧2qߵvBX (NWe)z Pmራ+G8gApt8( ˲xU looĚ5^_%'3:WO>:++,k', fv[iFJ9=}|['!#@iy E&/8I*ڒ~;:sݤ#5XFs?aBH\AJ_MC?lY+DhgBU@C/Ii� 9au"\,teVE'ҳa"�wTjFW'4b-72 f 4VJ̼MVvSOwW\`L�HL2d FMe�tbRR`@@V-+%z!O <EgwyD1m۶wQ(N"gv]{qkˣ.M{z~k!"2f�  +pl6_t͍aNP*זRG�`0Lf nyf޵+mMZ-_WUQzV&0  Lmp<~ו� ts.RpP&fRgoH@ħ=}NV'*@/CM +8 2κ7ב֧eOAL̦d_@v] pS:oĩ"|(XT-K In'dGf�صcqi kқY2؀{䑖,fja}*PGV?Yc4ݑ;!Y u9&&~ =)陹F•�869K<NY1o7TsK1 &.Xbbή̹.ϵemmԾ(R#TI=#d(h=gsǾv `9Tf6[*hzT](#0�@,P`N`aYc)�XBP$0a|p)�8B4qNNN7oݪU&T-IF?n옐࠸+V8A+,lF �6#єUkLh؁5EanVS@Evwc?upsJťļ}�H,7<P t(;6!CSPW!K]!4ӥH*WhaAص }vY{ԵUct7Ke2h٪ԏCր /H- M@Q@H`1>H#<9(ӻ9]p"H$��9mڃ:u2:,b?T I[p'-8m16a 8KjǽHpq,!|RR)]]W"-|,͛7[kzU]\wMw/͔%4]6pKrRqH$f9&{qzQ`,٧@S�@RLKK{nTd$SCb/֮YnSTzv<pi.^0QU>&=mԈ&NHt xN>/VSh �Po� g{]ڹ2QzIAupduëiM@үuPu.V]ή scKq]$\ccB�o(�3O=-gLMhd/E|}4~ͮ>˰Wy1 Hq$/@ @* 5v~/7"Jlq\�@QTZZX";(jtzTdu ?_o1Ȇ9I|5Ņc9}Jk5(,lT*y<>g}N N,@jTDp40�=Bg]X;[:`&9nꦬG ;'p;K8@ YWBv '(J B ! b$44ΚM,M?v\xIϝӴIJ/=qcl+ZU)Ef?1G.!܍~$%[BAV`qĜ|%= gg�; .U}>P(0هEd\nYbX]گIbnU�*܋iÝܞNw4>h; �u!G>p `h*S !u w2B}xP@"UsN|o LJNs0ӂP P %;tVԫb6si|lq4qj4" rM8 =.*|~탂Bbe)so]!k'� @B8;w�&iw5IX3E\}] TZMpRcRԔR|;7:$Ij6[s8B�h4+OQOh;Ky�w#F|*LQ{A:e٠�i-Yp‡̛/X#<+ o3նw H-VWd�ա( UB$W72`CTfyEJ;Dx)˨Ut;6=1G+1#x/(Zemn-QJ6z~yg~~rdͰy)S]I %uMGc V&U&%'R/{yIb� YYǮݕHx9&"0R)/[er$暵Yjs˖ 2t#1n R gDH<}dtU ǎX_$u[rkbp9!ͮ)]|o):{�0@(0B//NG CB*Pa|=73#3%2AAI*h89%"R U 2h!x"MS*ǧNWXN:AzۼW<8~x̛ʀz1lмX,.kg)` ;� D[P+fZ+B pwCP$ꯨ[ͩTZ|buG)n�P3RdM (󫋆MK\t.NApXk[Eץgt`0oDy�|Bo0 x �kzjʸl7 �� �IDATIY5Z,�6i&B"R)7ge7vu$歛7F#�Pe�F3đ�5%O�7ET*u 2=xz_)#*;k>_Ƿb\RZSwWg ֚T]@ѩv?77wbP7Bⓣi )/SS:47X |gQV($uJࠠD$--Ru*KF7j EVF "W):gC=[?[}5<92^zGQttdم>CJ9j9<+Lј3Ԥf[Gbnu'mhLfr&'?ԭqϔ?y^L�՜Wgx38qN,ACr;gB]!EQFdx:tU>99f޻/u E ͚5-j#uvv$U@ZkY_߻F[6mb_PMYzO0+8!^�SJ$IxHju~3OH$Pl95@JZE�(z8^fgua0u֡iZ"ܹ{h4LfnP)37P\nSJ H{nNN0ǫ%H]JP( kSo[4뀖_ff2M|˫B=DEW򏺆{ ʍ �nnM%bF ggr[䚓#::h}nl @6U] {O8ܞ{#rÖiL֬^f;u;} \ ø>W{~PUQ %WGFF9>ZPۿ2CRicBUM"8Nͭ >^vBgC8B!B!d5B!B!(̮G?&8iJu B!=[WF{oJu B!~q Ż{Tv  6 !�k) Px^vuPU8ʵBPPW6 l@BׇOzQUEӴX,pwW*Ul@^؀ B̮T* !dl@B!^82!B!rf!B!(۫/DFDĪ B!BQwB!B9 kB!BQ3ի/!B!WOjۦ B;qAGrjA6W[~wʪտsڕWqd8B!B!(̮B!B!GavB!B9 kB!BQڴC{n.c|Jym6q!B!^K]s (^Gg͕%>FK0B!B|" %V�PP%U�4G!B!r‡.\X֧.^Y4ED]˔-wt󆴪!u{οh�0=>oDJN?9љ79N|ZPvqH%_;VsfC\%"g?ox8\1p[iBNkTlYo7w M3-Ϛ@!B! zNv{'N|?|I:eE 8j[˝}z| ITB�'E_vݷ:'[:+U\q_3iwqQ<}�g<8;,RTPTD; ݁R!t7\>/hG@yogv7*\֘+kn.Ӭxy`Msͫכ JT‹͎uf8N5/bP7AAAPED;|'V^.^|ű# ̃}6U^SۏWl\c>i^Q? d �*0#9W.?Ev+HCCCCQ+08dZq7*䦢^<RA5+60BOļ(kwTNUiJqVCAAA[;?Z�Ⳙ>�(SNOP=)%���^^2��/yy07H^8ax]ȏ  %z^QBFL#�TzhUbLeԿg7 3\\uƫ((N2Swt~ S A[nfn`lh �x��Ao_w=FwagfuD-(8^j]p�� _tׯ庤ƕPA! S>Fl6'?Ҫ ;փ!7?^p;rɄN}A  WS+Ѿz4A�`sGxU٭ kk`ol:~ڼu'_et>7mq6\uNpԩSƟY^UOט_h_ZݽWXwǎ\f'vh �@(ZڊD�7Q}8x\�%eĄ|BpiϨ1aN٩z<:/ 5^GV}Hf6)KiբLi.ΦX5Uw}>S% ^{z]w^gpr竰*h >ǟtAK?= `j~{UЍl"o{NB^s?1Qmo砖ye۞7%}nuׅ W]�zV}ޯ{xcGO;jrXn%8qX!<#Sa ev\d,{Ơ#(*O> +* xˣ\d!/iqʮ fMW 0OZ 5k`U5!wS*zz\7w7v^zN^eyK7/QQuuQX3Jh<j wO=xe.��B%lc5nsu^h3+jx+φ4]Ċns7z4ۏT{j5r-8*/H|Q棧͍4m BfzL03k`uXofY^��Vi{W3˧q3%uNF)`a7w=7~r_Pp*[ cǚYyC=(Y`q u|u':��`%Ϯ;mD6 0;Ü:�}EChwl=ǹXw>P@ViǞ2d/46e}d?]� �8 1&A":�N7(Vz쒋ϽZˁ3uFˠ<㷞[a*Wzf Wrsʮ5>b-BN̗^riһO-4PrOg|TS9B<5c}^|& ?[P&.wnڙ==oG|eQq˦xqc\{?0��qc#t8ddjr^|#Ӥ-68IS}jjCWΟˠ7: �,M|s H͖Cʸs>b{a?Ղ~*/Q4DkݬIL��C''p~d^;$ׯ]o7LI ǩD}`�P9[.>|y_ms�C`Y;5X2Sn`+Bo}[ͱ;?Z:Z}��2X|uRQ ()nUәeɁ-(o}48Vtx}_O@]9 vȑm6'ٵI[qSam]I WY\�ag_~ͭ1h[ɢc<~ʮ1ui>kGGCI97ʹL`Zms &WrPL5'Tg'ThIr `�K HRt HSᅢ 蟂e<Lѳ'N ֎Fbd�Ƙb(ϒ4Az9O~k蒓W/@f3�?0Sk2zٜ3EfkP1~�M@�Zvkr:?dW^)u%szDBTP]p'7V&#$oX[Xؾiu_ :v@nrNX4R\-7n63;[?Z AoAx<\jBٻhSգmhAP5 e-aпyY_mXYGUV\F&AПFqbYɮiv�uU_PhvmֶB"+g54bM_n1 ҆5IFNQ*e&m&<z̹< _:T-7ɛP�?Ώ#gn]|~IeKg %*VR\ZB(�xMWpYT~G洁}‚̟س:0}GUڭV,QMS֗]C'r/yC"ӂA�t+*Zz !�� o{Cm悰?*qj@; WDۣ ��WZe夀Ssڡ d2cAJ!N/oGb -sSY&È$ͩV&dJ:moc\'t~�_sky k6mဖEZYУϮ>:䱝Z,BwvoV=+̩}GGwXvMY{> ²_G2X/U(k( RR_ci��2Gh0X�x]ˇ7ҸI_yQJR㳪p�c'(zܴj@R*ӱ/y"a9MOJat�85H@T~v osi8`}QB 80g ��DAg4ŤmbNG0*&�A9-EANS"Fpb[LD�U ZU%xl`?Ķgա#T+׭WV,-]SC?cۻ D{Q-aڙ/ĩi1W qvu[J1Y ͱ7`w/viKh[Deܒr2wN -w3MVaa2%p65SB$SZZ1Dx~tFʳoNJ6ЎCӏXd-5ty$�zCfӨqWB}?>zCelϏxi+1I\Tי%3%% K 3Yqq5~�;i۽8SNJv{xľgE:ButsY5`x;nLC58lEo[!,"RSCstLӞ)AHPÇ ԢcbH:lN^&! )kүW-w^>�P?U޹uo11p8V]/@AaeQhh.?b=CxmAA +WR*LOq>vg!9bwEAAп2ż.A FAAAA FAAAz0?]0F]_LAiǣ%TviױޖV}8/�;퍕ExxEUM=#"mnf>'G뷰AAAA[Ex߲).M I˓o?Kb~%%,wgވ_pଭuȠ<oGi!LY_#́ʹQ! -2ߺ+   Xt͈ zS vSRyM��VzXY2@gF4��\D Ͽ:+Cb{4|sZV 2Bs}jwu\ͩ�|oZy243759-p+x+<foė>*�qζ (@]zRT5AAAA}AEqI12CbKX <D]ӳ&oN;?Ww=>XXz׃1L*+qqh9qL^HDM��Jwd�"7�T\JuOdΐB��ظĪڿV/AAAPco" \;vgx۬ܵgTU^fS!ġ[NtCU=C(��L^QE .MR<5&xÃ;a"fMjKl<?\]k1xY*&RzZYh. *9d�$sl s`2ϊU@[!_޺wV&7 ɧ#Ml~ⱯWZ]&ʻ#7PM<f0iflc943@Zi5^bOJely*E?I#빺铛#HH< C AQ$ᗞ�AA,VǧY~o ~ӣelmj}� 7^Y8 tFQ� ��ڍ8F2Up<tg˵2SR1ʤsZ}M8F7^CAAAXt]ؿfDI!B?uMYjqc�%FJ1!H$"�յ{sJG*&�d��{N9ItW檶/ezT $MlWUT&c  ~Ery-H@6LTrtzNn/0:-)ѝ4Nр S'Jгerĸݘ?2EX ,I�xMW]a87m6�� .{| x %.[8:qFZr�o   z_%z/W%+L*]z*jD(L.z{fb9us歧ܹJS9T��Lv]9lHmM:BB\S*+0�@}ivfiD2�|qr"p.u/#+9C#{:AAAP)e]P`o"SqGH@" Hȗm3Nh9:&liϔ OSwq!Ev3<d߀i�jAAuG=R5:26D& MA"` )~Kmv~cPzL~-gϯz0'fCZKTUt}RAA=P2؀w( !BytAEGD�3jxUrOWk�x\9KJϑ|Y$Ҏ=uh/Fа}t!f9p 7/aYf)ܢwK bm$C&) ?X~͊2dƛj?7t}g޼WwVts x_ύ 97k!kU<aO�U~͊AE\qi$ֱM0v^UJg[\gwtvc/6ێP2_}/u8`A^2023Wf{ ,#���;FH ky #t茲Iq�0.�/x�� �IDATsXc0aQ �UIIts,�/9pd|We$k]/|hՙ҉_%Ue]}aӭ /^g WyΏ}___0t/EEav(Gҿ_r9-v 48s.#6_ *^^{%W.IDއ *Um$1a!�@Odܾ{b"0FUvԵy']!bkWc'3gzZZ]M‹+E̾]XSb)7 p��+K#%yory.Ww |ƯUjqiqC8�/ {>>}n\+<�1�At AP/ c'/, "7k׋NUsx0y1Wym̬',eĄJ#�`()..=yƔStUd$EĕMWKcfs*0+/x%> u[t �e !ы}iJ$3CGwNFJ&Ko]2[7VOԒ(r=soS! Wg^{']GF XYAm JO/rh4,vw̼f{"Z8S*ȡSk@'m)^|ܐz 0zAEDʨcUfa��<QAq΃g~c{?݈Q�@.nS.zv7gWFq&fS h\/k+e%GǬܱp�P~)Cy˃PM<sԕBB:3sX�`o$ˍm[ʓBs-1?:5f(tćRϪrkh`h87>j E%qF8l]Cκ.>GEENNه{bSxɳUK${^p5Lwݓ_Z^|z J9k?ukHVa^q'NsN'���VԼ¼H{h��J8 ?%7j3 W>c%f݋/(+zbr[|xE[.X*SjAq괡��,W 9]fV_}D k;=;}ZM<eӂi�&C+ђIߘJ J?1{ĨE~îz" ۶i!:uywLH~HCtmꦅR9WhqDK_rYoP fh /};\dpvc8Mpc?s6bStnMa��^畤qi]P@g!ǔk"`&ǧJ j P9< 3~~m05Ey5C=A0jL `ʳow³�;YϾN0P! G >x'v؊3T[biE6t,I.&$k] APy "_rꋄ2@:P~Je['ːAd(߀dUIC$@?N:' �49c5D)\o q-D"TE�4b:si.�0R8(HF 7Z ܖ%2 *!ڶiEED@YI9�+f f @ ]zV'RAP?DeAc6rfl ] vh��, ` VׂU*kV/Szre{^^Zo=f:D7 &xO]d{p7;b]>nOt 0)J ȝybx!udb6GNNZ~u|dt6Iu;�>w݃IP+>9I?Y;,(��|5U`̮y"uФgKvn4�"�xZ(VΆ۞ ;&�@D:}{r?kVA^HYWZV$!4%5Qq)q%V_8S3vDUQnC 1V^v>-snfM%�^~#j =&Va^!l�%JF$�q K$*$" K^ƊJ0h/=vS09<x]#5c۵Ԍavޙc�`dql�[0;c-*̔lv,*ش&//4lNOΒWwQҫX%+)Z2A.Yf%x PYn3k Z\^^QSW|sy#?*d"bS]f6 S9Tg;7cX(]*ݼA6?SϠUfOwڨկ<A`{_o{Y��P>~槣Q;b(n <3yE|?."(v=OApl#1BplB@ F%Ii Z⦮JmvV؀QfQAӉGEZ_&G:oOM+=b·JLRw􌌌̜0ml<BgO@Ȉ+: rs?Vu$*=D)bVƓqcԉ/.!/9.....ka}ө B)jV-]žk�!�d&..jKs<82%Ko)hʑ.M:9M �꿣(cMJ/iO7zF.wsZ>IqioWOL];OfO';z^G'INOaO!(?u[an':Ow��`r߾KmW+s&l,Y}_j İoժZ 8 q(Ps骒Tce+JR+P`LA A}їS;သkyG;/ ʧ&&6fR�()ª!uyOd^(.,&<lDZOlM�"[ZJl]1{SKʬ+l=S'^cL򗙻L^2\ A`(3 n_zV2h@�b4 W8mnD:۵xd ]-WB#Rp<M T1Q45S9pwu��4­lK19}񄗗 Z_VJl\ %:?S�Ņ۞p+~?E--�l'pX~{JY{Ḧ6/j��yG;"=>^n&>YJ�VHC#Aru.c54�4GSx}]gGZvr/>*?sدHYq^3&ZiJꩋ �"@O]HSql^h/DxR\d Mp"��ʢnE~poGmX#rBELhQ-/V]S5ũF=0S޽9u'+^|S%�{GF-6Dx5l/t߻1xi в??B$oh.nA1s\{dAA&zUK�APW|j0gnvWdׂi�9b�6Bel_w*ny_�ؐ,4YmجEULzܑA}ѱ3Ĵ�̔ nL=wR0uanfcZFkuoJpW|G=1/_K,iU>nAؖ=!͉e?7772\rb9;R:;͝-IOoz/3U ˏIؓCZ Oӓn:k S(-ʹ^lbB;}j*3o%霅UHi F#7P�JKPȀ Q ԥxJ�ײEDjjh4|1c͙ �+"cb`Æ"?0?6P_̸g>HY1ƣ"oD3$C*}2da8+4|0=$H ^;Cݹ/_#e[.6泣  cZf}zVXX˥!֗($N:_7uAo~bןpKirUH=8ΛsV? eee�rNBr/qLt{5~iÑO,iy!A[ҙx^[nYexg]ϷVAg3%_T"v'|'�@_6v)Y >FRQQr�/TzWhdtBvfNS*={W��z(Aw '^,IN)+'9VR=�Os-Y6snZV 2Bs}NX~YzrTn.~1aWKi}˕dgy2*)iR%Te,O'A'7SS3 >y;{4V~> Ck eeaݣӅz:nmL`< kzOUzsCAU@JA5ߣDY2dt<ŬGH (uvu/ZC8?rhf?:3d16E"&:n>WWu.=7faV4"6n.*8 /U y$>!! AAAE/"2��(;jό<DJ<pEQcU?AS~e1wSh f珏&�+q@6LH֧}gk7״CK(~S⡒C @B?Ǧ0vAAAP?[Ʈ��X�� E2Zcp)>"1QD"Qz)t:iڂ\uƫ(h3+ɥҍog|=t75ǖ'M"`ٝ   zQt] Jw@B%fzDۯ#n^#}6Oȓ~iQ?4GȍNjnQakx#϶X ��p:o   -Si?6"(0$XIbB> Z{4%`qq"�VW8̪Q;k-w߆ar 9JG*&�dזX痏>7&Wix& �*pBo   *|\^  ե=]^k,5Zff9TXQI .~ytڀs�} 1BURAG( vi5Zg�^bވy=4 ܊*f%TdI`1d��`%g* =]gAAAӋ/ի-uxy@m.YIgP.Wӑ"N+H+JiYXn4- a[ϭH]}9o=vA.b~R<gnFԠrg?gB4t>υ%x/#+9C#^4   ~\vA%LqA"$ !_"ۏ_VK@9:&liϔ/ OSwq!E1 kuW< Ao>G$ڼyJG{}?8AAX,V>R5:26D& M"` )~Kmv7Ao8,">c Z) Ke'|n !9+V ",(ċ8`~:TIUwdFyh 9<u_N'l,Ĝ7 ~3%Jn+vuHo>f.:9?[ :u!$![30"�~^".H=(肔zB !J >h˕3M45^#ay0j;|'V^i]~͊2dgf7ĔVvr=܊Tv.6%?S^'*�<ck$S7sd lUWy"(҄m˵j>^~͊AE\qi$ųi1%Ĕ lV{:.S!kUB1^b'.`ő-Ptg5m1#:suQ>^aB[..?(-W0 aQ<9 paX\- ,�(zn{xRx�B5^rkMz?/Uk d+S@z}zTcH$ 6Ə^п6p̶ҭe+I^*(`Z\̫kPe+%GbM!+`O cTeG]ܞ|2]Lcn}دzɸ}%22,5r߂xf_.ztu8�|ؒ7klk!~q�񅼼\�\{s#ύ0k�r�>v6+7pެ]/�/$8lW��0֪'_n8!ߙ)2hKC /Xc~nf=EUsiڪO|(UXJmYhlf֓M2bTQdb�<EWEFR\D\tŽ$óɋQtwkכ`()..=yaWrp3u,!$ 4zwztE:#vlBS_f@}JNwj塣q'#EQ~a%SCKLU*,>q q36eV^~J"|<XuX|f_;˱MUOW_DF/ݵSv[ϩ;[>Zݕf*"A 5N8J[4UHӲ;f[ re|W%t9tTymy?V_DnE&r̼f{"=JYPn wVڏNF Š<{Y/! Nmx־ W`غ׻M;'̴K U,F Tu% =F�X{q[&r|v)<Qa`@GI| *+ǹVs㳪RQg#/ ,+h: |tǨ(}aRvu `OoEWqg&)v7V#J?62#ki$n}gnW5J=l?\_* =f`~EpVUe[9 g|ܤI-S_qfeF<&Oc1vJLy=Iī18cU fʉLf53OmȈYJG6׮䌏4I<CW>ˮ񺴫g)ûN-ҢJjZlyPT^YhBtzZ*vS9Sy/Qa5߽u;R.Ϧxo[9b l)Ϧ̌?<JXmϥtzUN|JmakUŜ̱uUwL61AILqР- ߱n!0Z0g}t4qړܱ=7T{z˳jW߾$-%qw< ZwSJHRE[oMoD)ܟ0̷[Z'nFٷ+**vwVc^m 篎}dY?NL8:/M4gɡoꠥ2+q=sP]No ‰k �� �IDATE;du~xHr%,y+aR!x1w~*u0 hd3y; X}b1CAe-vZ$KlJ Q�bv cقRkZd&<~t N0#HW\" P$��ȪHp!,?~VuNN��$cw @5w yF+m,C1%sԢ|K14�܊m i)y.lp1ކm-[8y'sG%R5F2ZRAxUg0d&X $-&9g|o q-D"T;˱UUpuL9:$x�XO9U~ǺJl7 PumpT#4|E;ִ::�tӲ]헝-[eMÿpWD„GE;OIo+ky58PuHQ*UWdGw38`־HM׵9�|1dgﰠ��Z>\Tu6ѿ[U1 "�rnl0U,O e�D;ԛtcG;AufNZ 6XyE\2"M>^iYBA}8Ϗk'L<I5oFˣԚJ KeN娤d&qfJ܎b�a?PWpXx[QDK%Ee-u^v>-snfMe#%N$�N-"+ɷ ~"k$ѱ<%2T`N0KFU/g[mUbS-܌a`Y7tg:/@sI6DCU;֠:�vZ˳O3dcQƦm5<~{uK{? dQ{W|{zE̎D|X~;vM+q򊚺?1QI7ղs󁘄ʱ w/{qq w32,6wZm/��[_STli"ݨ~ \D0Pz9FGlcخ)��xu]C[ �_TeZBJ2ARZiD6;Ll$NC|e$KwO|7TM�4Sk Ƙ'cD_#6+| lZ' cdDC!̢\'I9STݶ׺ _t|LZtE$ |ȷOftUclʃ ɮC6) rsJ[NB4w+,ShgAP>r4�n�NwZ˳)V%i,oZ觠f+Gj\'/a2/o:AEE"ti OvbGׁ_~*Mh־ x٣lT$%%%M)?W^ٷ듮̙d_!|5 =,[|j'q~  p.8]Ujc@?ceUIt )[ u# A}їS;သkyG=�\ʞ_lncoxL4muCbhj̧r89FDɓ#g�6 m XvlXJ9�F/*,&<惖7_<OxMҵ7Ml̨-ѵ,GC+Y�`u_J-9*.-� Wr6YIGԚ<%'n%rSnvߔ 0+ҿUkvU#*4{SDN?9F5|&�'o4.h]a<Dj[G̅C[Jl\ %:?S�Ņ۞+,.FQuG fO^}N9̀jߞF&V_r}q5$Mh־Cndd~0-w,Z=1b{y�hujPOl([K OU]B@<#MI=uQD �P詋iJ>#Mzt7*\mÄԗ=運nKEń^7Ck�� ,VL^DHJ W6'��(sìemFp�-xʍՆ]TŤI`qNYo0%dm# wMJerLYˍ{GF-6Dx5ӥ'ڰF伅� [^NҭJFXyޜSTEF/̻v%X?]쾾ʧEhW5IwSh nd}NrEu߻1xi 2m9U)YolO獧t$!np9O7mZq.5_$!hKy/$�L }z0rc^xX֋r0R}ŝŨN=êZKGl .9K w&UL{gybbEpNMh־_ ᦶ&OBy$$-';7<MO-Li <�*zE!"b mo\pf_<0EWJ]BTn (d.3EW�(@뷣EDjjh4|1cϭ_Cf[7MUء rfG?[gjgM1oO\`~tmޓ9ejʠ[%/@MPG 6g+ HP3yM[X { >z>l)],VuCO*� kr*Uk iN~cO>/[6eO!B$&~f l\c'x)V(]U;~0�IpwMصǏt (ZJX8CPCԤ;pХ=]ѢTTtg0&(K.F𗻯_#?|X7E`nj)9%EɑWxbG��R{wquoHSx'm,�wғrs) ^ ��XMeL=a) OXH p ( d<M�`šGEx)tlKkx=^}q�~^!Uu|kϻz&Eo)9e�l 8He^>j��:F ֝:  R&{ z{/V7U-QVV ]];͝ʨ+W;rgĺ(��к*B[kG?5{+/0rlИ,45|*5IܒSΫכ?̨tl;wfY׼E]^;0ۚn},dʛ,^"9W@zY;Y!WB2m %n:O͉z~sW.cFpmU 砊+CVvAl. kO<r߳}a_c2dGɵ)H:D #%W$m<o`|P*,mط' *SU~kO7/x*8tɃkVl>ap7ɈD}7ҿ1p€Q$f$A!-օ!Ey D=c[q<OZq>Q!?3s@AAADl F$& e9Mo̶UlRl8Po(/�d5ӑ(N^mbD7^ETD)�^=)%�YE|9.,Kww J J(**]k\ݝ-6a ()"ݽqμvPa9L<<̙��Lf+f?od+5Iꚦћ -dA^Sz>I: +\S+-a�`L5ݴf@<LV�LB r^(TfBǾP @ Ъ FGmeVWU7u I 1)��0"#V*䒁nEGq9i>�_]`-?qMMk\CGTvl\E~ޡ}4@"H/CZm:A @ g[[Y۳{%�}{v =9h1ivr;_C95_2r(Ë w3s߆!,:z55'n>nE^Wez R4j<+Lu%Kьu)"eU(ї��5<!WN“xSU]zsAG鉋bG4r (I,t3 +)4,:tBYk׈oǔY9\^fh4-uծ G@ D-UJ4[9DCw 7r۳EaU3RRz) !L+ ߋFOx׵ j4$<ɖ ]i1I\Lq8Wޥ :[J,a"+(bʓ<MjLWzlGq, ҄W^rbQѽRRdF?KwݸѺG%Sؚ@2wg'^.Q3jƢ~G=>0lVTtP3.J'R9艂uҊ#ONMLPnn)%-paeť%C#,L w@ NL PU <KWC\CZ�0)ۉԒVMhXUx?Fi22*icUfe]8vr,jK[222e?[{8iJf+aѼ+vU/z~_@,M�tҮ .4Lߎs+Syɉi% m!S +7}*%/WiăSqВN0+?&Lmo` D]LHH맨G22]LF}ђ"@ :*s'ŅFzo0v}BR//9Y\6Sn6,<Ԕ=:&ƵKH Qvro-/ɱ3n6@P{*���`@A~ B<@ $y/.]vEݫH�G ly`C\I:1( Z]YA#30(W565612626611Uxk*5WןqA 6ZEnMvk{MSxQ(M,@AXZUW@A[1ظK�qLq['4nWqL@ Z1#h'u]#A}HJ{9'(+(55}BJrJZ^~eb/} :d`3r˪H}Y~~r#$?JyHYn=^7-d9 0 '$ F.=2l_>̇4PwהaJHYxQw7r7EIF>/h0VAv,!4k&b&+_5=@tbu/_6ۋr~u!N%mF}svZة7Np0TWT&v=U_+1 F(xOh!#.Fg:OD4ZAfNY�Dtzs7(�zΞ4Is �P 1WRkN}ȩVB5#30�p q88N8Ahsb\~I~Rō>xIs'{0!=>'FT7(M�@-Rϯ.V޳nPu u15\>ue$&Ϋ,x8Or!�L:8u#] +,c?j��Nʵ)l|, >]ͧ"nMND Kk(}sٙaR]VHr)nEV9ޣD3,}c㔂;5�=ZCe+gF]Cw{ǡA/+v|UOP2@xb愚ź=!@�c2L�ν;|9&�L&e|7 向OS^^) o�TyyEVVvbIϋKv:VŔQ32V�!&*+k]ssp X=PSUYAeT�;k*J+;̹ 2FG^ZZAfܦ<��E^vzT{=EiKMD 9Vzss9[NMk<J!mJ-j0 h|{LyUMk 7�*7v %&̝<�1{."ߨr4044D ~Fv/Uv34Y";wײ5q$�` T}�˭k7z%׼+vΏ*=QPZr2vSSM\zڒ6bN ��ܰebV pzjKhZO9o.F,9=%7?zeAG‹=)sp�hMڞւefx;g6+=U~̅/EUJBRqu�!ۼ$%UL;YEndCGrnz^S'y 4}ה,T~Ew@r0Hefe%$$}Rctzit-&~i|s9ٵ3_53u$��pysOHˎX%si 6ٶW5ySTRrp&N&?WzE/iݜ4bK LNj=7eҼJ7签p\An+?ԇ6[ xӌn6neNpPBTF7KOQE9mU"!� 6Ɣ L Se%eEW(*Y\܉7T"^t��@&_p79+jڐ[1{oLKO9G�»?M[A57KdI>;e_'iӚwŇ &; �� .LaRrSn۸ڳԀȼZ sWO)�1ӻE~T q؍.$NjO)*xBQ7)}>8tgOp02988B˺!=t{M#ii��^IK/zX5yNe>{f8|twFQ=rydcNso%esffNY%<hgx},�`pey ~_ܢȘ7,)Iۿo'G[6: ңGw:6HЬ-x|mʞ=Ǭ3IodR��@7rb�]g@._:}>L(R:=d5=nc(aZ׭z\#f?w cӋUߋ( 2ج%*kWTR%e&vCw-\ xNYն��TEEs8%YrQ>zm O_Tdl�� �IDATpkm#ovC Kn� [{ CMeW9\�@\oH;njrv.F7f3^b@`W|3| gBk�7|zM Jd ��Ɇ%Δss5yDj@d^DSK!:MR{{+zہ&)fM g е)ϛM$<wsCBf~ʬ|0e0|EY-6޻(H2zo�&STIa1PTQlWTR�ŅEkc,md.'&R73Pl ��6 6*''~9p؄/ �h@[տk r>}cҧ̂'}LJ#v[IuLL8Îࠧk;YWYe~<0bk.0Y|;h̓g ͣ|Bdjh*&Z�`'2P]wꕻsͳ2J*J}*W6;SJ�\E��d1k*҇UՒR,rJ.hԽ�� uDnS��v\( UI %]gyJ\?t/r!B*Q].Ȋꊢ;(Zjn)Ã"*boݭ8}緂K><)֛)<EW�EJI)5dٺ!L 0`‹bЂ겤 "9̼U8.  B (Oe14S7Hf� *6=H ~z/1HmzU0h趣zw@r`(88$?Ռa33W\cCI%U%f1i韾2'�j[##î-4翠d-Ư?"%]#^/WPag~.UJa( Qʭ`lS~<Pb9Ù(w"Kg43s܄u2Wu1j*<.cJ2V1gB@";7 ljË'<3h�@V}}{itH&jj)Jz K{xΣ#홺Cܵ$ftSAprLA+Ơ7-TL��ZNsl 5~;k89ܹN߹F)]AIլъUft4#Uّ TeJ! Wߋcw]I r=$6=ë}snV]Żxcյ2�:]� DԦ< P%cy��*uXr �Yƌx3NV:^lZa�Klԃ^P5}Wzu]ZR$C vT7f?*:TEEEEe�eu`[P6֤o:8]Eur_޺&7?]o&A=:Ұ{ �URSbޖ֟+9rI_V{Q !]1a8iݫO4m2tߌԾ-斂^n\+pi�]^[ rUľDd)ngQ�oy(�= op3۾JH9wC'̴5|zLܲ1r e{<}'8egߐyYo]"\I^iRжF۲YDGA`l{3UE4��8lLTo&|Dp| Lbyc4<<\ŠK٬~^K@&/SPXXVQriu[םoMpejp/,}{nBч']Ȅ L_:z0#iiy]gޖA�XC'jnOKϩM@ln,mz \>fXm՚#؈o��Ss{n+�b)N7t{*/ Rj[ؿz~uR~>\6# �= -XJvƟ?)wLSb)vx>楹zq@ :KnP�/|4Jh"VLy ^セbSDin|3 sfDmy ttxHq��a6t5(7u' G#?@͊yYbq85ל|b#ue􇟗.wYOyqq匇+Oz72SƍNjSO<M�1WϏ)WCJB}Kh1hcm,"{c p\�ìL$@V}dŁI V �w>#GGĸu8>NW͹%`QةC4&/$`jC,bT7x(2&j}o?_nX?*>|I;><?U ;#( c繹ieeU5$IB�.0 iJÈ @ /3dzu +H~cǝ7q<_4tחˆY6L7<䷥SZ!q<A^1A'ԆtG *]oe/-*,MFC_U�04q�0y5Kz]^vSYmhWTTTX,VnnnYY2ǥUTT$%%FG 1d~O\kgdV(L;y",< 9ċ7Ք3L/X !{p [7Jn?s zeĎ!u>5xi wVKKϥ!C?5A_^R3?B֒a%uz/):si j,0\ӤT)w.3B!_hJ`pk':@/GYZFB #*htkcTBOOJ�dq1! :dl/5F&x5XZ2oQwq, nw>W@IkY)Lx:dqC|sNA<-hkE}yiądpeq2UdÇ! ��eE\K&e3zzb��L kU@ :4?R Kz׸8);*`a;w$a +uj>Ii19V�_SOEm]E&<^ĉKi=>]0=o6A {_\5hcp1qybV|a5C`TA\8�[WZZcyûw@ h#w,|@^FI- p}$ix@OO|2H2}< 04=@xhy/Yl MvCRFq5ͮXy/���5M5q @ @ ~R:̻ Y7zCcI\FN �`L?k1LyգJ<d_Q\QɰGaRZtIMǹ�U_{�t@ Ѯte01!d/Z5օ^[-h4 /,O AyJ G7 4LLUD_��8YYΖ>qq.z4,j&F-4 e<���slR�,|]-Z<b@ Fqgä*.V2ѐh:]zrxHl 8P@0Y}=>?O.f$xC6IO0ɋki:<f-r9(^)C{p2^i|iB-N0eĕLLbɿV חŞ|D3�v_^MLER))V|sSI.t@ @ ~*eU,u`JjpYĨj-WVK X{dvemgm^ZUpYsde Bkw-)Es}!yW^YXh9E${۲҃.;r9f5qۥ-!Ve!��1{Scr} ،/)/ED)^㶺#@ D(.9y^\hTc7 4*b`sUvj/S 03+:&ƵKHs|Gx:O*b77jUwиmv'&( c$H-l@ @Ԑ${q+"^^5GX`dX*MǍA!OЋSb);X68` /jUI7͞G7NȈJS6c&v;Cqt"-+�?N(R;^mi+ui ohf_ƟNK8Bǟcm`.E1[nиu\1�5\j`c~v wHد9sh !U{ K㿨Lp67ׂʺ:NELݶj~sbtE 6ۋ߉ѢBڨTJLc \xnn&Li}^�[_G9 0K*ی\yCuEjwA9)ˍMS_3Qk^,zK;]MڪA:F02a޴UB%-e5M3q!]6~;;,F2,Ii.nK&E=o@N^7-kqCJnˉ!mW[l[Uq|{wMǚu]EY4Xp1Cnʝ<D1W~S (b�0iNIxΞ4�EQoJs9PHغk8槲Ղ]kF!;1 gҶoeg*ZƘT!#~գEAck SINduaEec_=r)nEV9ޣDڿCO_3@R?WV+(ɵ mU_&Xc=_/M_􋵚<ѤQ#WQr\92~:=кS18#mzRTQN'>Q" ȃJIkXΜgF]'|V/_x}Pēy牝B." 7GmѨk ~`ir�!d2>d0;| a~�0y ȻF ?XkYW8J�0q*r Ns>r@UNj(͒ww)8՚M^Rv;oX7 (=Q�dV6: :66=��'GYoѳڷ0 )= -2n$/+0'bs�|qM Dgј=ovoh W-Z3DK4n3w2vSSMlHdnȶzʚCp�JgyNsh*p|w0 Rڀ[ X=PSUYAeƱ6~UtiBUZKOd-/-j1blJVuVe_zm x%EOk{wjLMH��-3c =\mM OhtQs\O%Y"4+57&X{댝' 1~S'[V}Bb 8voK'vL%/-i=X)K\LV$|˩ RT+,���Xv>=N1!Z]qv?}),a=ϟItyV|So@233R? J?vMs*' !ر,v5TQ1v]|n0YUGVa`49 16ܔ_HQ#hԓ֕{RRB_G7r)O>kJ|FynzvZEXxDqI)ON`pk'MKYfFr?%Svf?MFi&&cSώӐ{\FMm WQTS])PrtfN}T VGq ??BdK6%#g:JREUg,R͆}o§X}v_cm0n>B^Yz̻lPۚbrbugus3 k T}Ek @_Gs2aQ1ZN3TEgox˅$ő {x-KO_j^^ y=y!rz(ٙD6+5w?@5wK*2jHmmBRF?{SCAv %j7~SE_/iY+@aj'?UWUmrDsނȴ=R}|&!䄯bֽ ª3>NVz*Rk7*XB\h$ !5O+TH~ՅJ,=A_.]ϐ6dg\fH>WJRq;-ziUaԄ*Jt+|syÄ^]|xWU0;#TM~E[󼶓Ypmfݡo qߟ44yH@Ofv4 ]jbi]ZB].o~jӚظT3Мv l9 Vl/wT|FH.4M?p}@O_ > E>| 8pW2n AD'Aar7 �zGqSζ]GØF$e��xCy~#J/ �f}5ՆN&^{s1&5x݊~EQ0)}{aB1U&7gK}+fwM:Y^K&Yֺ,hL$TEEA%YV/ma3\cͿuyaxLDkjd`S.~i=ѠzwTآ [{ CMe4I6a)e tT|R/8}(ץW9L_9XOpWy)<\\{sK$�T &S&w -)r`&y)佽@^=R}u."XoE*b�cNY1IP B[/X)Oq c�T`[u[ ]JsYBtCmh u1I3A&iU #J·E8A ,l懘lyxrň·t l q:SnjKM.zȴc.]޻(H2zo�q'b]gS|&\;vD o\C[Vz 9R9w.om`)&k {oƪhs<�h �0 pa*'7 6 �a'`_kISVU4(FLE`�Xyw۹PZA騐:Sek~Ӽ@f344RL -œf(tavכ;G  ŵk{f\UCUH'ݺ,hL$$YSY]'bvu|MdEMuEQF㋝T Dfg#68NUA 'ΟMt6DhΕ7_yCkYEtc5Ϩ-"6a)�,[9]/^skN/:}!׎b�a3u}S=8.qBDCB hQ ɀAV >t[%CqTjʰ0om}0e$q7mQS' T`[u so.sc #\XF3�� �IDAT1 �EQax$i.|K9 U~'*tOԵv5:o0;/5\vYӿr\\!y=wWr7zy&ӺZPRRZY]ta@4 c8{ro-UW7T~nCCN͸Fs#��Ose̺~S #s?<Z4UlzAjd^'c `�@u @t �;#>OL;-js_y4m�\P7(VRW%�qRuQEM _$^Pk%B,pyEyvNv?URX,\ Ϣ:143s܄ZF]LFARRUbK~A*sP8'_p! ޡ`b,Ew*ru/)DM3*oH %$wj[##î-4ZMK +ܼ:/Y2)!ɸyv1,pQX}i/yT9x=Sw; r[P9_rpE%9Ld&X"g8هo\},?n8�(-ʼ8lҚΤ0"%iԄ+JtDsor-cfspo0;4z˼{f=}ks��M]]Z#wro}b>\/wM){x2}ww;_U`c+(5qy5LG;YJ5#~{"!HCUUUU mqEצx_Ɓ8f*;$3쑐4])Sփ4@ :LVIOy[I1u͑LF# 'ʹ{u郦 W��8oUC ܼ3Xk t u #W�/6|\`lm@ְ)afA3:T/9\�R^HJh =>l.It8q9$xcյ2�:](H!`㧹0[lU<#̬" +lc ck\[W"mjE i~KsN �Xwt_qѮ2k4ukf� %0z9sm=F*Ow{m1UmP<U(uk_^56m֜eooX(2쥑v;TS[UhE]z3Ï3`hd)ngQ�oy(�=wuA?q!�Teݧ#zЄ>{=;`Cܨ̧΄-o9׏՜2UGŔϜ|Œa6|Qġm9<�oZoUQQQQY&[c9bC0 ?}OD_g*ի=B"*:LD��b4@#�E{3ۯtr?�yםN"I ?_**P\u|2c:tnr&uH*ڼ+U2ȆFXF]q+&wAB0Q3(1M0s: rj><sc�dΞ:#tu;ʨWQ!)*w|߱BW}kn~]-};-RaY|?'.T`)٭+tի 3Ru{mlm_5պsVNoiSn ɖ%Q”bC'jnOKϩMѨF6~\T-ȏ) q96HQVc1oMVo6S&J??bZi,6B n2 � ̆=&.RtǕ+l$;ⱩR]9 3˳k"XoPds?b59 ~JĔ,:ᓄB`YrǑk f<z,cH_//%-#[=wv d .\sQߩ=77|?DC\!d9JލTL&{a9ճiLn 5vb+/tMIY{L k彴H/l9bc0qkXb/88.Aaj&jRt +>@L$YI_ @T#LMߣcb\tD&�a+(pۑ'>Lo(ԡWe:ZP+G}5Q{;bms94s&g=l1`e~VS|�{S 4l۹"XDT-ɱ]$GXxi&כ[ufxQ,fl>?Ѣ @M @XȄ-"dhQ!;I-$U?TAea 9ǍEPȓvKXF*_6$NwMu茾{?mR;G\8t|xX^Ag|<! !FW�� i�2r\ib鑾g˻YG1I 7m}jpgϟߵ’BiY4/]! vrKQ/S%qP|3{̳Cc.RA}CKёCCzIJț Y{}I\|| Q$Gys̳qחIH( ^pi(3-&CRlj�]b-=㽓5%U-zDPA Rn.XѴU ?> L )5!KW6ȫ%Q9>ր34&CXN uiZ><:)ge k, ="?scMle,%ݞC^M&ELWy= z}V5n,�rŕ12"^DMP�dqa1μ.11111a�o!nW�{r؝"4>D���/vѴHǦ ?g\!7]s@rP9!Ҕrޒ7ԩ?y?g000ha;a%O`p~vuR#6]U$b` :GMS1:!\Y )P0BHfec4~L cktMކ8�.B}}e0\b%3i1&wsmga�c8wQw y1 6d�y5ƐP4ӷ:☋ /%5+fmXUO0IjYuUjDN�}qi i:NtVO ^/H= :xى*3T7R=)M^(Kn~˅=��>k|c)!'l!lIAKnMQe !$3qyPfC^;B @q7a5m!$?$л¸˅~@�f6 ` 8CA!EBݜ,c#T\n_>` :OAn cZ4%---Pif"HK @~X !J6H.|R!Upe21zL&[)*?5a&9¯a|g9%1Bst<O�̀" KiEY y: riCØvf@cy7YhUymp=~~C��0qAPBHlr-R7q1uz8+1 fGr/%h4/ @ mZRsIL¦o/�Z>/;bgC�\޶wW: p�oGyq&=·֭u(LPfCXћ -dA^H2ILn4��L&<LV�LB r6XWL�^8|Nj~J2}ْ7!�ILaH_9 }ZjMY\H,>q YtKHk(Իb#Fyya-/u~!)]fWy<\Lc5ٯ"V)pYi��5M5qo#@ @tf�aŢ5p�c$1��:&drLk.ckeͣ՟ !�c:qfmE!F@P+8:Q y|) ʴTbb;}:vt#EX,Lyםm9t%# Cn!Bfs Fgh�a϶n3S4��Mǹ WO :`���ʮO& �9lx@ @ ~,Sautht5�,MZcĄhX[c;<:&ejE@vVb|3Q,O||VT. 0)]=eV)��^aJz1bGՑO#*EObͤ Mh^ /Ma } ku\͙ԇsBW�WI֖�Fa�) +kdOt{߱*;iX6,@鹅ťY8,+_?'gU @x$?Ǿ }VCWk\cd}bRR_bB@ )⬺77 /RRtF:>1#t^Ҿ6mgu#./Gל+ZͬE.0^SfL]7<9~n+jXI&tө1ݺ;3z8YXOaibs<1^tGMqoCS6?AFJ~<<guPݸѺ/iGz-y\�LV_OrBbKt ۢ?,"<z+ Rb''��ȴScUu{8be5+(rTfh4J~ �^Ԏ1`kd8p?$isSI.i@ h? \ncպQ=/Feh:w >oFuHy4m �u�Y]zhd۽wmٟ"]yp`zgbpm]kI)[�22e?[{8i�7}*%/WiăSۦ:5xJɥ,a/HkoÐjcw;BL>:wcߗv7Wd&hvDee ;gت9i@V 0mJpXm d JZY/ !�PuޅYph|>>9^bfFR Np} ��ٯ?Mp~ju{QiB; @ AqwɹBR?Q㗜,vz',<Ԕ=:&Ƶ5yOϘ|١q?NӕC}soyIw0?j2t8tGpsVuN. fGodbB89Khe^<lm%q@ DCuދ}]:uA<;�K<Mn$&_'`Ϝy3GA5j#"GmXLفŶL,#ky6ȵAL2y%/P~ȵ=)A5=jUI7?4,rj @|u 8<#h+p)�7):vƭj7)�R+cm㤎Sq5eeqQߐBK,NiEJد9sh !kXEe†Ѳ/]͋ZE k61YT|1n?a:aX(.,8!c2Ww=1߂> c7ZJ?;s#mW7ۉEnO��eϖ0_T ܻk0%,<�`I|˞"ӇD{@&lvޛ֠wٚ n?x&ިۧAt{Td+^�%<,7>zMl&Z%<$0 pƐR6rbu|]}NMDQ?;. owqGR 6+("*+%bDh4&F{/XVRP{?%`?`yM};eƝmy[k0L.7#Ht椫[/!zO(6 2gM=; @Q"b*SK4#h?؃WY%"(鵭=8kȡ\ܚ;T|零kTeхf*8 +%" D"N3@E[ /1~!#u?o`7ke;.yrl RƷs`WTjGIX=&|vY�G͚5e@첒dy̿'-8E&t]#U}e@  ;G?/MƜ:eGrg<^PQMAOf$HK")௟EJK.ʒ>QUqR<5>3r{1a.qFu$%)I ?: ;?^}7?u <mQyw}?M�ߞ_<<2-H`T߅L̍CӴ $&esO}t'8|(ed>hF@'P``0 0 JAZ]}-E6&_DWK(is߹9` T~BGj<t̵ş]jзq]|tzխM\L �ďy0qc1�Y ̒�`ȭc; 5 F oלsǼHW:t^zp@`>pz;(٧gkmu5Cyc0G+=m=K$7Y Lq@m4vZ1,`of{` WQ14|F;I޾N#�>{dѡ*|@���n6fb'U/LcC]Sܖ{xmP`ICQV p8|C?PGTW:8~w[i 4L'>:>ZOӴpYr9Q\&PiU%6wߚٛAܦ]IU/]pv{E Ғ*b(zC"}wf&|C^L0iS9 )ʼkzWH ّH5Z"T߹Ҋ[i#Wi�`p\_Eѐa gT4#5o> :I.3gRLrI$`I?ڐ{&=*\ 9;#jw!7?g‚Ġ \<~;}n_$&<uJηcNeѽ<oՕ"�mfܶSx{k[yJXDܹ_D$?:lwƕp @EP-ׁ �n*{3> -h1̿m#i?ubgcJT;җ}/LI?l3F9n!bΕ=p\m΁Go33Vj^)?DȸRTVGlZkkj$uopdYأhaֲN.Ҁ[PBU0d9&�?3pH A(id\O_ߵ0%}Z{k<CJ۟?-tr?#2'^5X3J4i|)*0> vvW> )�� �IDAT/ўB#mͰ0ɳ$��{m {qE*.,?7LWSk8rxZiWYQI cN*-雘V9};WR� ~; TY5$}@ыSN7>ݬn>��΄$|=ٮ]##ajByD 7R) ̊?�f(ߞ1kqǎ.y&$.q)÷}l`8 /R)}~V۰n+_H< ;'KELxm&wb@aQ|u@̱F8ԉ}o7؀ktGޥ@?5Zmd2yFv:8�eHG}6,3mKJAȸ':/\?J8CG$,YΏ͵lצuTե nvټ~0*ݦ}Or:=&y?v,؅ C0�M[Y[EwFGϭXiV&;\OsBg}Z m{yML*WeQJINl7s#Ul73ͩ1$�~I;0E˅}Ch뷩9ٱWM6>;s_FqY%-P2}̮nDr5uwPe%Mr!B7X1¿m� u-K{B '$\7ؒ�``Elw@5X#"-Xcݻ70) [u{<GZVLa/`]/[a=FL}ѓ Hrrƭqc:ԃ'o?pzy(q5yн='KI[zzy9bQ聃9~ӭtut=_ћS}adbHWU^hlV:zl8 nu9b[Dy'2+#mlRm&YS*ɻs%ϼphB͇1�Kо0BunFW).?f-,mTڧUCg]^<ۯo3eU~ZE*<#UICKQirpG5fn>Uubzç <s2RB%_88ˊhZ7ۢ`it6-ۯ+bm/dZ+U9۞3䩞:RV":[YVQ4]^V7(.b?nqB{•@4aíxN֧ډ=0p+&_ͧT�yhk �.oIIIIIIrrW� ƭ=m܅F.P(\0kj23~{gW�}9u?YL=�dU.̴L\GֻbgX ~ӧO_nxSIvFn:dZr:'7ZzZaU B6}|~}ՔXc}QjJu:P\kT;@Um8W]JK˫|udy^XQփtiI)ш@4NIcg.^:w[k>�M[e} *w{GG7Tӱgj0n#JyDA ?},`vݦʺi )#Ο 9w:e(cRJ$W[&ӫ5N{5"![x煲Iizsj$*+MVllM)nk IMH\y 6w'M |hm ˒&A3poP95 K 5�m8|\1 @Ud]HPQ�6Y)@|VHt%a7|u_dJD8`* w~}ޞdۚy.IGDw﯋)V��ďl]o'sG tk&fh0i#Wx)' r-Y+ qmZ{!iQ˄BAZ #N^eo1v\9q_x;5zӱ}JSk_O0JKKKEUį^hWDS`9xl%Q %v5Жi��dYK߾eRH9NP6IPnFa;[}AL辱l �wX5RO)L;6Jt MSfY yq`O[rb1 o{k>~ϙ;Ng{ fwRr`02 S�TT,nȐЕ73C_D4I^?0c;<DJ!0agdc �8N:= 24y��hܹYk Z}yVLPYA u O w޳e|ֺXfv^WϤnr朸MieHLVm�;}t5Kl\݅o>8yBޘ搩#+N.�txh2h+ 51_McCzѩ[/^q�X}\ʹ5 .{=ȥU]T,i t�J~^~=)Z| d72 ;5QnejτvU}o]mYI�@};ݱѭjy4IhP*8Wr%u5gķn|%IH2ߍͣ.')4H#W"Nй~a:ʚw%~1n2n߱Yk' ..}pj,xpJ4 c�@ޱ∶uX*M8<8naGmn?E'pHj@#7x6i 9Sq59Y f| s4T#_ P��Cڴϥy4B _\$ �`b ݺv$?9dݞ,I4AܪHW: Lޔq|8[De.Epa=g -@ &TN8{5.O Iּӄ" wG_՞8Z X[Ny@@/ ISxz2ՅED عU(>8Dbݽ.m9Ӽn-*ot_ؾw}@M!n!@ hcw]\8#򋊊( Ϯ͗]o]v.M""f ub)pKM4mL]wE?A DsRk ~׎es|OiJewNa#ivw:^v٫R$هht�/bQxfvOao%9̻Z{ro|>|UN#&P ]&r:zr݁wn%0q$\k=OeR^v&w09ZiY,< �ş]jзq]|tt<@�z[XXX}Q-$0qcL + G TD5aE;AFG;ZW)QFZcҴuK%Z;w3iqm:q,Ӎ,kj9ZI/2u"n7)Gk)MQ~X] Ѣ3>l5Q{TkZ,/V=99 дuJ%5~<$h; ZZw)?jB_ wd?ODsg@ yAN`PndL øcGw}N 0Ps'ڄ_sz>rj}ߝ"Z4ϽYуc�߬S;eɿJa!`YVC:1=}^cvlsUON,k!-MK+]:4'OSBo(B @ DhfZߠZ�"Hiannnnn=#-+qV}ZaCX?X:nAo^|~~dݺ}+)BjgAG>Z2bA�EQR�]}bNݺ-JB46nUm6XB @ Dh#0B@oIIu>'؏΅VڃknaEN]�aV9jB7k'xA]jGT= *dG^r y1炗oubP v�(A�jzBJ@ @ ((\ l!iqm8|\1 @Ud]H{;纏C6(A:_(`h8i"Jwl~�`B]mBhV :?iv$'M".qj�0h)�vGZN@|Ҧ%D @ LԥO7O_hnZ-λs&Vf-hsY1 ǽ{=9�@ � :F;2FKunl �UZK*/G^7'NCZy;|NNzy5e�S{Fjgaus7'f@ @  ((,9vkS~0<ԝ%GK[DfצH~.ͣ)w{$Ashyݕҷ'HV<@ 2$YgUaQ W@W lխS<{zryc@ݖv2)ktv_Hߍͩs[ҍ,  5,]-Q5hi Jw7jhWhb%w:ݲ|ZUFk{2壮0l}Y12Z`/1~BPDc$`0ئRB1�.j_ox|�6~Ms+"@޵j<v<~ZȀ5=͢ .&BͱDňhйG=5lI.>Ujn@ed{v6>;�*9Q0EHZ( oO%+P~bWC.9XCKgoC5ņ.qg?ȅg4*IJjZ</_1:0joΩx#)<ꩆ@*b/:s9ZW%G=GW vv1Wqgg*$E%l;#F#I:W`yܖBeť=uY G sd ذ5']OVD$ {ZEgM=3m¬ yl�{W-t/_d^u+:9(?-o,Yͭ�L遁odskw]PE o>AG ᨋo]v$2Pg S F}Ы3#؜yِVS[bKktz5U%&g4[%UM.~yYS Kn9i$~g7M �ƨ`ƍh?pHwE>3r{1aԮNI(JR~tv),o]7'Ov[T^ielqv ߞ_<< ]2 \`DvYI<ߓ̢?\ q~wa-E�!1\. |8G�\.;$&[~  ]#n&.n&�Wo~øu�,X+zxmP`IվK7ss>*' s{+9yx*(bW+m⣻|GeX5@O[eioLճXt}`ώDJar0 @O~k)ԥW7 tZ}:ld%h9Z+?\OyG)3Z{;j #ΠdF(/ҺQkZ=lĢ3lmf* uGuȓL^ae<d � >/fѵ67>@S Y m-pNOfmZ[]Mo;P"$k *H):TAKTfd4?XV7\}|VZ IOu4-\\N!UO]x愝+_;"J45AeX5cmۤQK||zXhq9vFZ3�H^R_Sݺr-/U+k^]M ��a8A0dB9L!?ML �g9UKoH;3s!/ Kô)ΜeuSGj$sO-Z=Wl[Gf� :#- &t^WG}6t$y:P҄3*_b~$8"&g`oooOI1%[8֓|CphXAaN`@ p~QBxy7')Zb~PQ| ioŢ"ZǶBIhZG;K4vk/ހTpɓj\M*ׇFi=[HӒmg]~WAK 1egQ5YIѢoUouzoO '@ N~)"ZAyk)MZθ#iiqR cf7U|ci.#DQ9O*3uJ,|0C-)aPdZZwʵJi(*ֹvJK/N=9[yTJ8<Y8Y{x)QJcѲt4:_,.I!dMaEH)*jMDNc|v=TҊf.z2E()[|E$UVO;H}_*Yp{YAPUʵIc$pYXR_1YNoVtEcƜ)k?itJJ4Me~u ]M uX6|Sl,hcDEgakn|_/+?:. I#f\ϗ;3>zV#9UzY[ j4Mُ?p_B( giX7g;3i3ѯFԞM;8WL?Ȣko ~#ވC?ȢsC? N`ZF !n &9H$# �Nޱnh >hfY+<0k=vtw7$w\<M9@]c`eHG}6,3mKJT$'9 |}HXku;&T c+-�YvnM#Οph+u  Sx+DU=/o\ì>. ¥J!Cq Ts(x1C3M6WlqDEƗ]y4o p^%-=<㢍L&RVV*@)*+(rRT4ܔ&sBg}Z m{yML*WV%>ձѮ3S'j)J( l̒T^v5<�9{wc6�bn R^*eLq~st @_:vj171a6B"9 L!?[eA_ݼp0;s_FqY%-yK_[G(Pjw^>fZ^UZ KKA㖕4Hyu邛]6 ev?h_� u-K{B '$\7ؒ�`` m\gm`_A7nK 8<ܸPS�� �IDAT<^qojX6fM0 P�"e Oѩ[#EIh%DŽONrMHiannnnn=#-+].A֭L0[UdVFؤZ/V+uQadbH ¥CqTsMexu;ŽuQ`|*/;ʴځ 9;dvF6ۤU-WiUT9TjYN*4Mi+nt|AB-MY< (JQupQ聃9~ӭtut=A( B($Id/^ÈROydJp2q] a=lDwx+24(X_oX_̕_L-9V/SW<-,,*(~sɷ=g\Sޫ<z<neYEtyY:/ywqU]XDtPD}h`3&lډ=\;FSnŷ6� 6{gW�}9u?ݹK``�rںŽ%MtwP7B_h_oqNɫPCz't t~LLJJJJJzҞ��L0nGo.6rBRSr,OM.5hI3#Ӓ1m=FN8CY^_qAq"k(L^_.eΰMΥש|kԮTa^= պS&'\J R6o&rjھGy+D檍*q?ZpE̗|G_JWXMe7lpr9QA*SF?st˔Qxډ2y:UkBX\ UYÍ6/oӆ/Vgepm[=ͧWk4V}8yluGOMVllͩԗ1mUܣTā+]cuMH\y 6w'M |hm ˒&A3poP95 K  &So{{-\<n޿ 16Y!]am)%_xtـ$7PƩˆ02 S�TUHϺD۱>!<WLP/_�TjTp|mhMV(PMة=rb ;l 4vb~><+18L1%m<Ql PN8Ѽ4j4n(YTs:>wdҙj-(2>nP=[dJ.OdlZh;j\'^/@Z2òDTjbT#˩?M^`.yU;6Jt MSfY yq`OT>2yɤf&2Z9L10ǢƫDSmF*bdJQEEi^LET}'em]s.ua:(ZM�N,[>/^:~U㻻ߟ3ywϟQ<̲hdч7>=!+/ng*Jv+ fTiiiiYl@LswqE\FM]?_TF;'[L01pagAjۻߘC`jÏ5"sٔVv:uxi�ƺ Ls*GSulm|/6S{FjgauszShސzѩ[/^G#lgXkvqDv]:PרY/hܹYk Z}yVLPYA u O w޳e@'/LL[Ӱ\ZՅXV@Γ Ftxh2h+ o4/Z #\΍K{ 'e͌Uݞjmq>sF;tѹ4<6>,?(krL@)7rO'dOn.UBunl tqn?IAƏvo>8yB!0!SGV]xhMMo{]5N66gS i՜ߺUPQ3EUTefE),پE`dܾcNX\R;\|t;N7Y~i0#FOtځÃvv){S~~^~=)Z| Mqջ% yL\MS__Ab 0P!4Pm~eˠٵi#="2ҵ ~ϥG1饘V{;xAf8�Taˆ˼Q9y4_VieվߗF tWK>D A|aw{$A#>17eV)%ВuC4 J  xwZٟxCuA|bH%W&IռGzoExk X6cm9_ܼ *A?X:x2`iYYRo/69QJ;�qEW]W҄ǻ̸"9,ePp|Z#_u6(?N[EU\dD}hcw]\8#TcLih|/FV,Z=~`⚿+v>+'{.#VXQȦ')99sŝr.gFNUccNъv>܇'rFV\JTm&>Aj'.";}&3u\|ZA~X"RwLmUYze�X5 O$K,C 9KW atn|퐵w(�*ΆNBkysMO@|4TfЯ㺘h V:4G.@ >o߾zv۪> 0,--;es+"hdz,ܱmk+<"b%;m}Be޾!f߅G��8V>kg:i Dlݐ1 5?Qqu2Cm #DY6ժufov=~ĴZ1nAKW �W% t΍SRNmj&kW_u"RvXߺkWaZ퓣G $lW]55*ziUadD&D3{խUͭ�c hɺ!T%y055[e҈ إ?v-^]Hhh^7,1vjHXShqrR::gwpmؿ}re 4'G[ݸ *A~ENv.Ǟ B2'=PxZIooI!_'Hh¨-S0  J?S+"3Оbr߳{Oӣ/847D'6dy7-i۟]{trڌ@ @ _ 9ص}i5��` a%f~}1tmm"Mż$bjObX̡1 �:tscRUULSst�Z}\bI1:q0MG)S'?ձo0*9G 5 @ BվU{[k S SF|QQz2>:XfFJ-B3-5W4 qx{-p>ށkhjW763ʈ~Mv/FDY<HMD{S �a?z_OKR*sR,p'a'V}N-3?7#@ ?w;vk�ۻuLÉ(xO=}ǚEK0~�1 hQEEXm]+zbz΀x��yyVu`'V[WwGy0~[{ 7O}x7Z1l2%ѕiəIFPТ#xogP۬AeI׆ c睚lܽ ʱo"̈́'L| 8ԛE7@ D IYE%W`^4\ݺvݵcOV7-9>ȣmRRL  1�-q*X%y(L4sˁEGu;85~z)Qqޱ;^=JSĊgtyqGazxD6菞?gb]'=0jvbP׻OLkOx)FyJO7XԧO㺶:ȵFPtcM 3_{a%%6EqIa3@ h!%]ԔjP^GyV2ͭWˢi߻VWWvPØ1 ׯvZFfuzw'#݅J?rMX;{Xfgum{Ot1%�J`cWC^Qm.CGzXO u&BҸx#ݻN_MQ*^1ddx_vmǍ"%{v<ՕW2\`kM@4NĶ:$ ܎!hEd"@ ⫆IS ҇$}7-M1I`F^Ak ّfצH~.ͣQ G|cѰeCe]Aoj-_>Yh԰a%eee"Zba55RYd#Jb<t�@ =qqg} ) t `[:(sX5˜]#jP2t%xؓp#c#--KW_aXiyE^^x or*;Ql1E`[!mccj_Ϋ-͑(.G ?#j֮ Gä2ϫ`{= s )לJ `ϳEg'q[yWa4effX,ƥh**EbT$Hd{~y/]1UslQѬW$ �cTWgEٲg<|5X1I@ `.4u-`kNӢ2vA˙(*I'' 0�i|!:_RTK_<?1{3_mL-X&ޕ|%Φ-Qy<W FxZ8zS[j7yPt*wDLCU'vThiҺ2`N<)'.Ak^߂ >}%pGp}L ˿}XavO89hl4/ TದwqBxIQu$5 SZRY@ }}ʆEEQl�ySL�{=VE&r(<Z 8A0A8S8S4AQI4]v5813F\O1Ü,ҍK�9_`S& �zKNRrbR0�xp+1} ތMKV{'*Z*W�'6V\ײi40tӢ5GoQY4XB+8):d@t 4ڗWu(9vD̒aת_wAϜ( \\ S<ֶgſQұSecB.dC73c<#. XRöa }hդˆ1ϩtFX;oQy)H}M[Fr!I˻ZQB_!4M�Bb\6扣4`�4FS}&q쐘=h&\_ȻF :bKtu44B4MѸ4Ul ב ˟2(�@'�`lfWE+�fipr:q1BhE+|1Y ucX[gե`qʆS&^n*hH�i �h i��ߞ멃sh:.|E8l>S�ZBދ- &ÙEӍ0Y:p qR$ x-ְc=Wg/>w-Z cctBZ SR g;jRAREP 3 G^sa/$dnߏDrYUKE >8 ԣ$ΜoJ+V :J=U 8X�`JϦS_azz<Nɭ<I�Ƙ^cB l&q cv6#ePk;z1Y(18cRѕ"Sd#6FJ)R ƟA&rWAZzpy,O+!B*4"NK`.3+K&1†ln U7(@y|ѭ<R.:3]IJ刯W��9Ā LVoVTLuJ<:9 ��|R<SۊE, pq6P&:g �D~*IDBCk|OIR� �`�<K.¡^ cZ[�M'$%'}6>!11%-H^cp09k:(3+#Dx7=JhK`HAʿ]1&Q05۞ۛIŔ._y.\D~t#wK*.u,ŀ҂j(߻7]%C%G7�ۅXZ>VeIjX/.\yV<e޺Bi8QsitℬvruU"I-YcBV'LQ^@@cv6" +L �� KS@Q%KO j'5k_#9TB?EkorUЕ5>M.c 3B <o.e.]T6?JX-՞QICUH d-.XY:^_b"2fXnԝXyYT05F'5iWg)7_]:>kR!YRIqf>1ظ( ٝD*k)(&յ6uѝ8qeˡVDB0IU*!E<F+� /GtTʾ }5HI 03!<��LH͗Yȯ_%ha?|jllhaf^V30"//?"*چ]hhƛZ {�ɕD�@'Tܶn){>&"R19ҏiJ/Es(�J yHTLVd i\ 3_z8țbi$L[$ʑ%"G1{K/s(� 6ӱXE" @X Ve$$`UJ GhIM0g{nE߯Qdb9ñ<w#_ thx=c4hlo�X4i$�Pa+"kV�N);UDە1;r/<U2%%)d9 P*~\fBM@HOBsQ?ԝtYgŠmȶ/)VX-7#]Ӊ[aY;@M},ʯXƕրF={[K]M?J̰c[%Z:%.GnkkXR8ȉ306 KiSS_Մ&� 0u-78~O 4XKu-rǔ~1+yIg2Y,RD"X,I$j{-e9es_z״!H<R bQCGVÅ:狪iR=9q-1WUL\dV FYmqUʬ[\Ćl\cQT~9 DmB+f+&4h!9S$ cFT��ZDҢj sw GsH x{ʟj6t GlC[{Q⟫E�p6.$}IH0Vier:nE]Yzz}'() ()]RݤI[:?C(դ򍥈YOG[6tw Ry5EZ�@ķӌ'K&Wɥi4((ߙaKgA3�� �IDAT^3I� &'wc⢐mtPH|SuG9#owQby g ѪHY4h>˭U4PܥzmC|~_ntb&Ap+ak'i0[ݬ-_yWa8NTf88a85zgF]k�(.# 侈-=yK 6fP4t Y JM0Mp6)�\*ʒ % Iɹ%4ViHqcXS>JC5ЍS%S �z]e:܍_HBĈ14Kt A3q+DV$1{V4005 pbP'7^Iese@%9A AIF>89P"`�dg\ \Ie_Ҕte5Q_-([I[U+}F&J5M~h$nj37W3Q*M?Ns`K$2(hdf ݰU��B*؆iu)ɭTWSS-I-~IH1P^f<+[%>~t|]ksF"Tf1 F �+`W|hm hC@�e4>woP4MA F(d^ ]xj*{<:th8(Gދ6D X{Tk,؂5F +*bEQ"EDz=(Wv@;8E|8vwyv34�H"դ1�`4 NJ]��Py�C8$=/ @u]3ǰ DwJ #��05A�@iU�O( jB ~$s�Piceh -H�* ���@6‚Ea}rVM7)dH� ?/am'Y&V 4D CjR*G&1CS"B3jOD7 = �fܵBt// *SVbޑa_wج&-Ev)$`AX鎬ݭ0>ޖ>QG`3tQ�U-J(�(Ȟ~"dZ6iNf $U S>ڐ..!QMdgϸ_2~Ub%7PDdN1m%] c :STDK0duB@�h@dV78&J@h*[̢h4 P8!<*f�-yrZZW)ؤg7VⓊ7VD=ך#R|&Sc5 !WoU�peC>It>9$.Iiip�H<Ej4_N@Lڤ.J KJE^ŕ\*3QcCH?K' vṊ<ZB^r,8ABɃ:M6IB* *�fV귭�A )4V]y8zh I,Gkªew# @`trH{(-W*BkW;7SI<8J1dnpˋw{R7&JsTZ4i-TDr^3HHng~hpx4iQ nW �кk0D<IY% L%;1e*TTQCȴʵoEr"o>Yߴ$@ W歰rѭ"Bְش4(1Q @HčXI/ʶW\D E10A֎ԥ ��zʶP8j =akcS;*:z@׶aI_53JL$ H@JApUѢKi* uks-S-!5o~O[ +WL n+fI1@G sh4x:5`(Z&dpMn krZvwc?m9T�|yR%;%RtWT<K4ϥt 0ՂiXReA%%>P {kGt!^I!bRT䟠Nh;O:0ymǀ+n܏gy3=3^W�SbaJmEM@ Vel–A˛]^P>@ @IפUh3H u^8P ռqu{ @㐯ߕNZ@ @Z6[}.IKhQLF_%~O!@ Ʈ eCڑjD*/ԝ#!<Fh Ú@ ݂㭳L;7ŵ5fUWֺdEy C @ ;ƮiVwdO�6N`9 @ @ !I 1 CWۄ7Yhw-<@#Ↄ }- /MDE γ{ EOySwdjO] Ճ@ |,vw`)Jpa.zm׷E FZYCˬ<uݐk{B''MWW+趶 D'O,.]ge|>`m/@ -)/(6#T#RHD!uƚ5X[-bcnmhC I$!αco?|{ijⅅ*#Gd9e^Y5"o/O=@ ׹o|Hp@mJM~tqz'=N�G!I�/_9Sx~$#CLw8;pY1}&-XgϾƲ!Pɋ]L_-ka~A _2x=]wM~%v^_ ʢC1 i;ڴ|~`enVUb%?+_9wO@Xf`]wZo]C oDi):h!F$)=[iSrwv`E`F(c<fuD9KQ{LGLظkNO(fC7%-EՉ cK̠S}J*-d,.\X:\{;Z]IکY ^dI+WWfw<Ȣ9VL F7#8׿i+^lh;b+0 (Jcr-,?PIgai  X=h)>UEj[/.Q, ]^:ZKcۣ)5R/.c ˭;è-*:v&7NvGTZP{@�مffz] 0^;1U>]C ڻF,�H:+~F1E-Yt>~XcHE8kJT=?!f𹏟j z2v{37d$<:'[j8[7Vptf 52-5G[CSkAd=m$aѻ#ޣgM׽,#29;uʾDٳZ C Tx$*,=d._sI��Y+qϮFzMxҁo[)d_X=J4- w}~R$(zFYZ}Aqy,@'N>>uɩX�X̧qyB�H?T>]C �G0 �P=| h4v>6p墀Zo ܰ{jk[uUgRY1&Ie{�xMN\UUMcB2$�� u_rU 9*[qQ\rl^Zlܳ"��d zr?:׿fClb4\X0asU׽i5 N/|PU7eJ⼣Cպnx�8|=Xu'nfUR}X<;lwo3MeUk JK^@ /Hs#.ӴM><?w{BvDf=S%P}?m_uRз1羆 Q ]mM" qYLve'rn@W[SuA`ś[Yt+05z2+w$5%s!ù#6hJoP`@jFgLqQJO(˻na̔]|mDhc)2q��7*UdU@"-80y᪡J5MnG�h,ծKoʕ ьm9ܽ C6\ &vNqe#}ܽݼܽGxĥud`-n!լߥiu֪˾ �Ca2eeB(+UUL vѫg&Iڰ9_x圧TC'`uQp{K7,t%Fu]c^cCw%|Hd;Y*&íqe^3 P<a6B?52n5+ ÃL9{~zGv]9cw@^nJޓrJq#2ܕnƱ)^&?n?4g"��*Rmג볔>H~ݷ8<wȂzA R|<dG_h"voͪgwDzأ$O'2Ʉ]2F(*/s�"+ni[Nl'Kkf*>E=Sd,ZCFM5+A@/ਃpÍY~Q7 ;pf /zyaߖ]r<zv:FɈvzrk@Uk |{.3LS=g^uZ2�Hqg>)m--Ò7"'{L�R~iQ%a%P3w1Rt:|c@;*x(:tToԱ=J \ӎSw{aKp!`) œ{U_i{xA� Q @! Ūgrs)޾^]( 3zAKɔ;<qa \~dyFAy]|%i*w@6޿Mhӷ0.ytߐb1QNt]~ (Yc걀0�p0'ܩTQDviɓI5k2,Ǐ)NI©P!W~-hul8Ԧo?OqI:s6Ⱥtꑵ$<-@{JH+7p3-!űvѝnנl͵H 'O0s|s$ fU6Se#5Nɪ H�=vV۵י5 Kסu`NYF*ua" 4/zGseK$\ sf.(V\gN?ak(ef]Z^Ev$oRWWSaivw@--8u4ȹxn[׻q��sów)EyWkO6B@@B PVQZ*/kf(de[;6ͫ � unYeO=O84 _f@C6 Җ'rA 6�|R vv}՗ᕕ0(E+.22*z.^)Z=4gg#6 ��+ j.R:zQph=6c4jM{f3 4kVFaf^u]]hը`P'Wn  <O*K@g[WwKd&WoNGwtd)G,0P Rn5'B#OU >L+YN<V}JaB";iOϙa �I3:4uelˬGra@ /;z4�N,%:e%� K_޲w|s6GOa.d .}'͜5ed7Є-`־EQ=ܒ!﬘} "z4QV=Wu{jcיiȵ4|gG_EaLiy#ϼiX+��La'MyѹL@Tͪ*۴RÖ?91Pf! =s}6z}/P0iRlLCz$@pIʆ[ɋZ$}T! P&g`Wijr8|}նmI$˖h_ \k���m;O_pjn|.c-Oy8u W+L@�ƚ"kOz,<4 :$~, @bnuwJt[&JNk0yCED%|ʨ ;:gTA߽`mK/Ϋ2S&=j¤"!FٲK@㔆>ǘb; �� 3~<n  (Jƍ(/5m7B<3Zqԋ厽X�9<^ȮY*rCn8qiD~UޚQD- V΋W&sEnY!a2U[:CKU;,?>=��Hʋq#=jZYkk9l=jϯO~֣Ίq7.x[^2Uǧ$ꅙYM��K4fko{7O!�o,~hL;aGv0 {oB I?&~83i_�Q511s�c=[( , b%&6+Mq���8u!#xo%�9o"I4aLv7G Ȋԋ{N7:##&</iV"Vz$eݸ㞱B(ճnL*9R BS_I@dkg<cu`۔ZA=-;`^LY<0dTpv/\N�IDʯC\f3sA5> J;~�¸0a\%�(zt+Ys.G^0y[ǍZu 5<~Z6fQ؋�:=Vxs&"[f;re[H�_wZ ||@<嗿�V7a '>{uaw|\~=Ι| 9"*2?ΰl倫aLGwaOcB +8�D+7c3JE$G[3ypc^fɪ7LCͤ<.fR1 �Qv{ױ͞۹k �^NZ(h� (zdcۗ/!v P1x55.]tԔܡ\-t�� 6X\Y8rpKMUUI9_r3VbVG-=; ܰ #mյt;trp8.b 30ݠVvP&d|i<v%3QQSr wp7GV�`ܔߥ %te'lQVpP*M tIɞRNFWS0ٻ_eױG&sUz5jحl]Y:hB�{}"t�d[3QAu1J!yfui8Nn2 1wC,M~|΋U$gEyPmFutdQe u%D <s]xu Nl%%%2Li00EQ'bTj6?T�Y/^ZViSDG�� �IDATsKXYs^q9Qst5 j1UzzPWJ�zû)c�S6-YM|6R9 WU^\\R~D>9 ͳV=ku/Ƕ[ѫT 5p="o/O=>SO@(x/~˸Ð̔o_\&o6%;Kiolo˹4c#ˍԊOEʙ$�胈Cf(i (}{v@�b˞6<%P.s(d3cDPSSkv@y6 ۩TKT[OŠ?Ousɴ#ʐ’{|e  F|*@ !r¶:!2TB*ƽ<c'10S?Z6UM)#�()2g >a-fX*#LLͬF-uQZ$+ݖNuUՍUV;cE&'N5Jv WU zPX'AD{3q X6HEB��@̭/ i@ je[ki�6^`sp!fDRRϐ1+UxR֪0TP=tF2"NpO/x* 'Jh Biݏ䏺Q;=B C @ f5JC8 #KH! Qn\QBT- &wge,lKNq^| 2!*U$ 32Eq(@ @ vD '$Lv9 0$de3eOC!$ծ1ˆb \DweJ0P=bG ),z@@v6Iⲿ= 87@ 4ͼk\ Ȥ@��x4rafóZMX|Gq?u.dב=42>& L}i2vB#I~a н@ @ $~!ˇXÉi3)VmI/.SbL2^'��6Q~ő@<`1*2?| Wn'un9IE:@�#AaE &Y(" wA @ vDH\,bw2&i*z}[݉\$q#V?e˴ �<]%�P[yXW7r1(Wfx/8[ue'ɼWJC@JR4~Si9O\Sq[@ @ _ b3rK8y?"$IAh!^gY~s[Qvmi֪Up׷Ub&<{h@ 6q}-I;D}DH@on9w1vi$Q=v@>>,gm@kuYز[{eEu5Dg5\П$׎7ڗLXksT3k !mIi~`enVUb%?+_9wO@Xf`]wZo4 &;{n]wl(dS*E*<`\Ru./lRQA*cϝ4wf3a9=_!*.CKH@f]8R??~WہߝgeK*}.Irʀ ݔ<}r"�*{YQc{Tt%9YW4_ ͫ05x:\ Fp:UsjN= m_̨~eA19cKܸ0EN=3smWۢ # "/tw4Pc)sF./�Y -*:v&_(QiCcK�AL�fz9+kv!� bKP{ĜJ_@ZMd=m${(%hO[ PK'<ΘBA%L?yJBv,9)hy|!CGu)g/ھ?!�CW61*D}Ug-jp]:}iTȩB RT=?!f𹏄'>"5Ǯ@>^5eSy'%?olw#Yk+B^s4Yʨ~_6MW2ŒcRPT~f[m7c #h^ B\:e_".SH1tU[S IYtΓoC#'+/KKg\R@ ㆐"AY5zW =Cqy,@'N>>uɩX�X̧qyc Ot@ Qd5dWh,ծKoE^pPC%Trš&_wɂhR @X9T �H_][9B]zi��fU]yjz&��2xZfgnH&l7|**UOPIa['06F/RzXɘ#@Uç}_rk9$�xMN\UUMcB2$�P$cMD:t]|dWw#nsgmmcqUFL>.+L>h&GMjns;eoS9{tUJ"- Coixx8 EEV<?nb�Q8s]+ (K[?<KO]˔RRt)Vxf~ -uU)\\,i}ܕblo Ky4o G �S6 }|87cftM鲧# 53(~UB)J4mӅkZ26P~9S+0 *Ҟ{hww&Bp$Ny$` ьm9ܽ C 1̴t2K/='.K'S3mq;!MLȨg꿻Hs^X׋z?}*^.eUkRp Ar$I oNӱ\TT& C?u®T0Ooƭ*R;u][UWbÖ",GDeGi;SUTC/%$))M~ HH_yk$IwFUQb~Lu$I~ԲQHJBs~'*j _bɛr&$Ѱq>I@7w>JHH:/e{,YE}G>R$nG_O",3.9Vj08s 'RDYzݬ*IIKqF4ù6YvU\c"} yH=x2Nj-<ޠ˪ eThsOʲY\XEqdW^H cϭuKol Z`^CSwpx[K#Kgwv\}#;a-wRJَ^I$o{ZXrHRD O7D>RqJ] u^O&v?o8+hØ.=fQIs ^++:DU= zol| ~y|K>'H>H~O>% D7W{/ ]C /J?۵\ " e+Uج2C;00 3�Bɻ Rjݣ0m le^/I -K7$pt*Pn8nKҙq8�D֥S}&9(UU(wx �:*dQB|yGS1]k Jnkz, B d'c3؁ P5Yޚ.ݓѝnנl͵P��f kǽ/.I4o#%;L]m5 uwLNfu u!oO<jPfiԂneYpy囯j&9¼BA)4wl&7\:i^w,Q]L5/!2ʟ qbjͅ#fi\~3 .-"eg͖>Zj*,ͮY(cbeXy ]ur[Ѿ?{!E9WϿmz7\ԈBf+1X]f1[uܧ�h�XfUO8`Oun�4|л@ KdT vѫgφw;+fm_ffUW9=*W|=ܳ1bfʸa[Mv&Pm=m0 �zQp:ۘC,8Oj, )n9NG #OhQU7m <;#G]Jr2QJI<7;oY{oQS$ctVeYDx^vPaD_[48TTcP8[7 }:; JKj3R:}!:Dϰiil{xY% O]Fi s (+T24~#O1`w?vq8sk`Tn2URܼȋO@A.{ӿLmyp dP(?NIhd; ]JދN+%啥I+S ׯǥ2uPd_]M~?%9%.ˠKdln.pq3/4D c*4F]|nH`íd$NֻIp+`�_k5,]k�+{F[n}]cl<B5U4[{D8e:/rgn<{,<h}ݣMWIskDNfQo䓔 v^p_{BSF <:g}T ~Lutyۣߧ}/, (+Xb:Œ]b^*9;0kY6Wfz<0+p/mݓG<=PQMW];zBKf߷β [ɔJq@Ґyَ^kSFE<70. (fEk"~~_KgSmDr//,n8C皀/C7__yZ;\J&y;f<f)ʃFNM<('6HPLg2[fTZ[kֳ4zQO\ boSoN+E(Dm2EDuMtTm ˽mU�b>|qA/}2J<>iЊ¹W/,Ҍ桱;8^2kփ)pX&O{K]?8?aM8Чt��Dcɴ^WQڨy| N �^fɪ7L#ݍ@yZhJK> HUm4@N_|%=#dyb.K NdĄ'�4jUºN~Ӄwp2\ d#wm7_A 8�DeΛw-k+vƬOz+I ʺq=co/f}/GȲׇ6*j2ӓf݋k/$@Rmj �t1WJ?#e8f;re[H�_w:={N&Eڪn^*}r4 R s:2(獏Qi FPeT+*Zy&V=qK*+_Ե4aLv7G Ȋԋ{NSXhNwU=;4ޜȶ2/Rco}{wt�7GcS[x/?پdb9c уB+/>y9$Pn@Td<<a٢82XF<�E1&634pBD!�e-d&$ buۂ^<iLAyWАЛQK$�Dy]"4{2WO! 8&�4@��'k^1lj5Dq��QRѭCMG5ttԕ Ύr?D3EM?新&&) O@4F,_id%OCWl9kg'&MY2.]O.3~Qbܰ #mյt;trp۸{N>Uo]5u G (C`͢I{[jrM9@ W2V>��`O_Q}^%*kAxCZjzoR;, <9`S}W˔x/^&3lgՉm8wˆadN/)>ԅ���tIɞRNFWp̊pynd�qbQXQ9�D{~_9Ԗfk8O_1N 9QKCi✉C~0FeEbo}ǷXEqV퐇 _w8A &ȓ+.tWLHЉɹk=ׅ7(zJJJLe^!/ azGuѷc:cU*]6*sc3M) OOrQ5*R8<W3.GUkoKW= `(9 4jԕ�wS�B��ؗ$I!mmlFEGڦQ#uaSΩQۑ[涌)jC Mh@ kzE^=zp7FƦ{uz\+ J"}o>9@<~SOe\T )d36 L4 TZpBjҭfj`rar8۸-s`i_-8=wwح\|m*@J=}wm)[k#L*iSɁێ2L#Yr<rn!7>T!&m)))QABMMk=v5t`ێ1Wܸqg{f6[NIȎ%L&8Z]/_- R <ztgMUC}+ @ V7ѐ/y[f%H u^jb9al[ǯ6ȹrxw ]mMmsJүno㪫j}2C#l&O}ɱ={jf.s&7Aw&t5䪪t{sWWKmUo?⟦bE7i.|(Bݝwst25O*�ubS]mma}[B }S\WYgW|>(?5�M4Oyגv5;FF_%6Q9OR#|.*Wp@-9Eao] Jg_oD,yqgK"V.]yTCfL)*x1G>xGVL,O/aiIgxAe챺:yҁ&'|@ @ 5ikBYEx6LdUuhg&dfr%N_ 8]:V`hY'qo3<^V+#r؞┤).: 06̉>wj'UQ1ĺ}Z'M*&VwG8[=̀0˯"/YB @ H{]*lVUyeIVWp&K_޲w|s6Hw1El8rѨś7,z)QIhF2]GvW [{ۯx.oOҝ9�� �IDAT�еk1s5Q  Hu ծRb <;#GJ'u@ @ uh3fko{7O!�o,#rCn8qiD~;x=鱲 ̟G/t�ۺ'ZΞzclK:di3f<B?Ig>_mQ7EQ& kG�x<Vߢpg@ u(mIWi|:<1m635+rl1YↃ }=u�||�y|U';. _5X-.@ӴnW �@c0zq̕F7#330.xW � >SQi)/$ I/ߠR�2M;>?ݺz̙Ç25K)ھ@ |s XO5c̺J}s݉\tctPd2)(�@s7RrD̚ӵVֿ.%@]"7lЧb2Kq55' {s.y?OP[!0ٻF:,@Kla0��@4F,_4Kǝۿ- $nKn%PֵTW+u8 &'A.NN+Vmm&DO-X]"| Z_@ H[R\!_PlFn'G$  C"05c;km$I DbMը]T1򹄆ݯگoյy'޾} BLS/,T92[7-el6+Ti}M!@ _o׹o1|Hp@mJM~t˹Y'=N#9v?H� |̙H<7/.%b4sG ށm7$N벰'nQOT.ӯ5i(3^W]k6#Ʌ_Io/H[5Fk9w ‹6o <OPpQіYU �4ֻ%?M�UbbvIjke w ;9FCt@!`QZ$#CplѦM+Y2NJsJ75/TB;9z#V]KoAe3Q&l&l5'Df]8R??~ڗoMI|ї8Eco=;I<blOs ֡c9gRW3\zf!K_YR[c7xq`rm*Nt KUǶG0y}?/ 6~1>##APh[8Y~.D>WvYx}&B^\X@y۴ !' 2J+j[`5sVLY^ �[k'WzS!Z]R�ER A$ii[w 4)B.?m)40@(dHGC^cHA;n CGu)gL@w+JpT=?!f.gVU&ǫ,yj2;nD0\ͽxeZkF澴Tf~R$(zFY��t`;c 0<R}?c dqK1A2"|SKĩv,͕gWV#xщP@BJx,$I xb1Y� xrS:~*�|'<,k=@�FCg#I=2sM?GkX]޸ѕ*tNnClb4\gmmcq4M:L=I.@}𜠬G+LM,GJ�"- t5]Jd��*z<u5=Qd��e~w{W]UˬsM$6PuݛV Y|ރgAQ$[zܰ{jk[uV v}_M&�Yw7y8sUU5oɐ̠yu]^ݍͥa}/nUf6ϧK( /`Qӱ(`[lOTgy|$_GPTUJ&&N1"t}޽L,%U`I2\UgRY1%m֧])QKcV@(r{l�"-80y᪡J5Mn*۽|87cftMgq# 53(~]nL6]ȓyC8}wa,uvra2hBWvBf)1̴t2K/='.K'S3m1lk5@!^R02YQ!IKATU1گn͑Yvq0A(fToԱ6,'u)F_KΊ\-yأ؜+Ҭ˛FK['{h ~zi7_OK< (r')yjgn6��›~_qt3 @![o);0Ez ='w=}>��;PR,.Jd_=~I ?Մ;hbڻ3>c eKJ2רMѢ&ԣ aiIE!3C~9Ax<UΊ7d1%Ywu\!;6Yn~A wӴI]O'8qIgdVUK^| vRfpBdݽhdUEc=]yE_x*j^ξD8,ڎN0t-3& B ^i)�HRt:|F;*ǿJlϼ ONd/ǝ=Ts؈n?MI]&JE>< uiѾMؖ Ht!ӭ?9[|wi:�U��{~m g V�v v xٳ\?={oW{( hu\_?۵\K"Fwfa&p`kUouG<:L0d',#ªIg<H�<&ł(*b "br={׳PTT"(*қH-@H~Cz3*B3Z=MIpx%!(zG0U=ͪ΅%U�);}0 ԧxۦ]�Ͽq鹡ts@UEHMRG/0V01AB/[e$;n\="hN v.S$9+GT|'}M◳ݘ?v+;:dro$Z.8^C`f3x`Qg|1 ~繪bfM Wɧ\KH i|Dˊˀ'7)VNjҌ<7UfK" w<xtzsvUID4?"aU)Ts=\�IHJ,Ijle_HA57,aP$'ʑM6}1emQ%IV2B'l濾1hv B@B�fGNDN=*Q<_ή! TLL?V``m@�+0P AxT*b} aDõ Q;fW\P,Ҭq>/<g^umQàVqZIiDg 5PeነqG9ݴ_ okc9xNzUE-xZZZZZŹj! JT-yLUU++, p]+dyLsLEM(C9KlXRDHe(KJT[tCTnm젳@vؒ9zLCvOBQo`#oU\z@z^h#$:*ǐ#J  L\]JfC1/`k0owۢ_DoLI춢  bGr~Ou2îyFDk@%iV}%^uzI)Z.?Yc3~;闵/J++Xi̴{L%n)rJLI ΕC?=xuhۑ.~ٰ@9~:Bii`O#H�3-5sA�T yau&MBB"�]:wo!ad_=%%%%U45᭒m{Q:Sۆ#ז-B_|�ZuFz̴Oםܒ^W2rw)kˌ䠩\U @Qά+W'T`|o5c*1feggggg+)1<`ǔTٹK[u9LwVBp Zr<_YO<d,Jgʳ Z Ux6vY`~A _Nuةkw'D >UԃۡM:/Z;,PP}AUmlu3o\}]'%<}m+*:+NQw;9wW 5u>_% BDtpMt#A~L5h*.{, HƦEII͆kM;w(Paz^봀I[iYQ(x_2!+��.P%HE&BhI#d]<2DW_I,-)8lz �$"%%նMZsW^eSuRRV"7bM㷷Ad~}I/, oH&L*cfUMܑɎ0Sxmmm-a2hFJ)-64'B/6r~R[{YhܸJ�$�c::"�u Wr mkWOW|y� 17t5-7 Иhǚ,=yF@|8RňI2|}'g ��YQEQ/iy<f73}|B.�윻]l6 /K! |yͳTkBklӯ;5SUIЎM(xЃvRX}!Y,p}ʖUe9"$cNyTD]fI`�N!>߇\Ds6�I46+1�h$jLstwxh v"IQ*ʋ=[8XSx]ӣS =!"0-=Ͳg��+Z2^ֽFpJbϮ:o>)"^A~l��0 6V4d aL$ 4d 6V +~[�'pv t� 0۷olmmm7(". FF%e){$ͺl:U$dv ٺnVeoSy&uB r׬3}9K$1kwYjyeIH͚'r*9PEiENj"M0Ve(2;Ğ)@ry ۢaF+O�`z .ikIS{H &���$;F!KZtw�vٶ7Z ŏy[7Ś+Ǭf>C_d.a6]ArCHUUڱkLt>A;) N>dc&Fײ5(ef~]bs%3-FD7t=nLDs/<|�aϒ+q";y)iyakYo$ �j;똼̂NcZm,vx[] 36ylPY$sE��C4M ~VqX e~(}o`myWv 3{Mr0ʆR +ZdŁ*K,~n  9c#occb9|QxYLy{rύ-?DOՆ@'MfƟCOzeË&a?/ 9; .NM"/i 7˽!=B  ڴOeum] m߾U-o }\ qcxēou-ɾ3e>ʆ_|nz[ȿ�Ebc}N|d=}[@)JaՈ#A#?TUUq\71[.tt[Uί{NUN�ySFZ45&K=ΜY  +Q ${-*!o|uqTRZow/ ]7n]AnY@&_9p2UcJ3t\LC :F3pǍ13k3i:wc67}SK˨ }wq4MN7?Lmm )o͡F- R[KL�^QnJ jc$]g B#⻜ʪwND8@ASk/6%f(1i10#>B>2W g % ++"-mؠ1׸}ԭ~$A)s?1jbIUqnu pT{ .xªKs+Gr@mђ!de\Ox< ӏ�@ |%NBRe+3"IjjۍPC�EWڼB诨f ’*f>M\E0[! K<xZ'M NH%{e@Q;֒DwZ<i4?ڰ4+ &DKVx͗lFvt\`|=@ @ oAm@%iV}ˤcKJu>7LTkJq8F b+BU>Zʝ;`ٰ 'PIDoւD�x)M׾�@v85�dB;wrMka�qCDwl' W[Ȏl)%ɪ&�(@ m5ԠQR%1�~L՟Qu~\zRgf_Y3M֕Ɯ7eJEm�_1,yO}`5- j EI6^^Rrrz|Ĥ_-_♫Sd w)9|L"(1Х»!@ T5 K0dhCUY臣^=^!HqsRD�%_X)-64'|s"+9�6N��Ȋ*j.O[g4/P[$0-=Ͳg��+QY&͈}WI� 0WOW|y� 1@@~F3FHm kn;!?|ۚB @~OGt2~Wb z[޻՘w6g2 :qMOy��NAܣ(Uxژ;o_BFV1p$ջ+^k̫<a6_SV;\ayPX_-C.r6Tc錙8V>��k̝Dx7  %)/3og3_św�pyJ~�2222oŚ@ :ܢjxA $ Ɛr7N{[$.A87r8FFMOU vlt�� �IDAT? 4n\Eu b �&HJJH<}D A :\|CQBAmt\A\ Z/&� qߪ/4'SN'鞞 V@ objkkrzZzZty9Vmq 7c"7&(*fC_ٷk%iXsxΜ_.0g' ߳V| WGC6Rcl+B+.Ol#v4h$�noRz _: �H?߅OX45@ A),,NI1-=saAy~~yffǤҦ=?R*Q@L부N!3x5:ʷO>ڕ_f4uh$"φ17r+K: /8z?5ĉ*۵Dջk'eJR2*}/[ŏl~cWֹY+$MF HԽ v+ϏrOݻãԍgeD (JRгZr} CFŻ-eݙtiluǛS˝dRfi}s(C$UZ۞祄0A ґcL�b�L[P1`ڼ<x|cR_M}hTF%.&!ۚ@ �$F"a("(baXS|5^h-BKmU\tM*l1=~Ňo"g�(}CLL@~8^Y+&{"$mϕ5.<@$~彴4b[XFymMʷg.w-4t9DA2㜚ܘ^ՙ$2eWPD."?H~[̪ [L>r�1ၸڂ'- hr @?}Ub1*F .t奋SR^%~,}|pżUߕ&;!#)_PXSSC8kjj Sd$%Dny"BJ[x<*tc|̬?nH b]RBZL.44Q 󟯳w;xaqԔ v2|���"ߵ&SVFy�7:sndƔfX/a<9v΁vGݘ˟6R<*׿ ^QnJ jcqdUݜke~�h4]u[X.ou̻~+O6@C^ZZ;vٶNN1q=+ .; {=G<Uv{򷱫 {r}F>w"Tz_tiDީ_+J; Do__x)'~;Ty^Tqi>'5\ )Wc+ _#`KԤ;kh 34M51 1iD~-GHa�s~TЖtM>]3~'wm2]EFzxNgaY ˟57Dh)CY|K2^\X"./ބQsD.bIs%'#5�o|uqTRZo ��tS3iiN<{z%ELGMGo=>p5@ 1 e4W=m@YiYY5}m:(w"oFGΜlDW==o/;1[v|[x+:?ƘW&+; ^fD\]3Y@2��e,^Rr}޹<ޑg/,Ȋ8Զzhzz:��ۗ*y".,*׿ի'<\nxS\wa7SK~+^J/៫^lU9yGlc %7)ߢY!i啟'C^Rmqf9q[C\5H|rx}?*>w_+#B  �G̚oԬ)NloUZ)wi⺗޹ۙ9Nޮ'hLa+-hlj6^5v +w}͂Qw϶#@@C׳D?(C}xY47w�n-byřz{neիcF۔xueuy&SN='X؆mV�%f(1i^E@5LH$O B{}py�CH+{ʡ � kr},i!6@JUѐB EobiR;l 1z]߾4mo! &NQAC[cơc2Rbic-f*G&Tu_0 ۍPC�EWڼjV5Ym�y$8#f ’*f>JPXSmӮ\M߸k9I"Z$@&x͗lFvtP!GxɁ-2YOA7y|4w]+$9+GT|'}M◳ݘ?v+;:dro$Z.8^C`f3x`Qg|1 ~繪bfM Wɧ\KH i|Dˊˀr+rz'5 @iFQxcR3%;<:ڹl_$jc"ưB9uVm.�e_HA57,aP$'ʑMނȃEef䖔'Z)^x{{woq�൵uXKҨn1D \�H�쨛_Ûzۉȩ'^6;b�G4KӼz55@ <"?()5]BJjڧ R2 y7CT<\}_k4ɜ%A,Y;"jlj DYI!0z0!ᛍ㶏ױsEq;WKQXxr, 3]ӿ% Z[KKKKK`8U-dAQA%re<k,ϐi)|?g ֝ Bi ExIQzn"֭t_ȗÎ;[2G`(I( |D\KH m|DGrDIktTILb(šlx[2⫒草0鼔VADHΏV)N5p9Ohq."m *!hgw/k_VVV.;i=VK_t�"Ĕ�Ba\9Ӄ]_r>/<g^u��PIUziY^R&|o=W'�b$Gl7yZo>!m1RoOsfok@h EQCQEy<V&ik%%%))))P襩 olS3y=zO`?Y7~iَШ7QL[_tue \eʚm2#9hjeA( 3ۙx%21j$UT&bL%&uجOy%>옒";si.7JH9#ty>X/ߝt̓iAƢt< QUYwkc'TFYz'}||||||BO:SUI=(8Ѥ)𢵓TV7u\3VϿxӞswPcYSyU &H D7A4~c!$>tCN{- 泮&>leG N(J-~Kʾn% TIj!ȵeo-l~F265(JJj8<cbЍ-1U @K $2D?!JGdiIc֎�z4nE4vYt?~h Zl$tCN|aOH7|@2fȦtUY35e2Ќw SZ\)mdi"Ox %_ /l+˥.\Ѣq�Htt^uD"Hr1!!;!8f&f&W� bRmYm o:k[nf15=Yv{F1DžprǥeP@ΒU\򟖷hc1 .w?*ι&n@0<{M&ͼ?YS>U$z ĉ"O=h'Œm ݧl \U__[!}ak/@2;V;ĞG@e$ (p[<1꤫¿}(Iz[E==xl�Oc\!�YKCtc-q,Y)s.QHMfYz��^a'_1En݋ϭn$�$V4OSjLv܅kkkkYul�D1Gwpm'mܜ뷞! $`!E� d a�E!cRH\c=kCY^0R0R#SUS]TZ,_1FeZȨ88qž$`YV\\cӎ]{tUPnu/g3U=$1fΡ1 YXZ q?>IU`IYSN g(MxQĶ %_f؞3u(^o8t#[4hE@#Z1�Lo9 {5rOc]n/Ccd|3dU|INWC!9nZ犻|Zr_ jj94EQH~A _/KmDn,+k:[UEτISB 0O֍1fht-[} b_VoaU,f=Y8IQ_2bMCDm=Q7ɏ},;o+,ӑF҄tAN^Qcsd͒&...&&wn (� ڤlgp$J6X!Ec~Յ5![Jm*/ՄF�P~gYiLnOy {zO7@PYBdŁ\˟8�Ceq%0p^ ��H\; popn׫ fkS|>(,IbZ3Ǽ=~i `#4nMEEEYeլG�u ISҒzZ#b؏ _7ld΂kK1roxHO_/6rSYg;!?<^!}3@xַEPTG>?1<()87}9sV0]Œn?XoIaRȿ EEEVTTT]]w EQiiiEEEII o{c鑯8―?b+C W0EI>ўz$h$Zq1! .#{ 욗vln9mVWn׈T1��B/֤ IIIMɩ`3gk\ȨRr}me Z~8*?u;͹S^Vc'c"7&��42f[6_x+>P[IAAt;UYo|g(=YIUЖ^n�=5%ݲLnS=<c6C&cj: qֺrta /6�Cg)h/ qo͡,9RjH:9AhƵmdm5*xƂuBB ȿ Ҁ_~H ]w}NieeeUy{'v{"@ K5—^]s34jHzg/,Ȋ8Զ-Dٽ5TEqw.e7<).;lp{ci-x$]r]z'=?f٢ ^fD\]3 ��gLXRUys[]Eew>M H,(٬|{?"Ĝs^Q >ox�� J\/7ێ$@ UzummDnDFev|wiV=p.,Hid<yȬ嶊dЌVOSx^MmdX5 6%3mkĐv\nۍPC�EWڼ��ȃuҔ@A_'[]5JU �qI.Va`hэcrC|/� n\x9Òҝ+ @ қQX-iU/)Ex3\8nh}9_w M3[*(+e%܂Bvfkm-----]\Vw*(|fDK>XZ v>iiDoND�x)( �@Vk7`ٰ*4V:Vx)b1֭+ @ қY0Ԡ()i~L7|5steFr.˂:n|,/+DL9SI76+;;;;;S^Iii-h'/2&:*2pi]ck e4Q% bw>]0dZQmJٳtyt㰙h@ @ Ho~ۃQc/ YN$۸9)"�/, s"+9�6axKᅍ`{^dijO`r5�0!&R7_8ŕF&$W+4`Zze�xSW`YQEQ/iy<f��7mc]=s"8.@ @~z?Tcٜ,5m_<孆�8q¢WUm^c^q$ I'"|hKb7IG=*L}+3TQ�Vk6ӟ[T$Ll@Vȧhc5a? Y 9T~iC.r6Tc錙8V>� 1~aVNLDi_1q˨/ZB @ @gTݼC�@QPIrůI$.A87r8FFMOU~r B wKxē & bv^c,qgYc/meK|Dmr<Ěv"Hd]&J옳2D|mĿ5= |<^=R /=?ngd�{{Ӣ7n x#+ymSkB]2-x��Qwl8Jx_FymwCtT1*Cvت.JC̦T ?ߵ3lHހ.!.w">5fWUZ*3dDds$ʊ:<Epl[hFC77MnǏר}5YlFUwPp''z((sOQNOa(" хNEyoNրPtY\A%vvnd w .|'_kwF5d2Z4nŝW8Yx'av">M?o<ǿ1v,B͛ 9M9wZAw6l{TUĆN)ta\Jx99<@'ve+\Ux 3ܮSkWvnz*]h"=zwqALI Y\FW2}NG�� �IDAT{֫ҿ DyB19m̐-S &=tPy~T oݻãԍgeD (JRгZr}x恡R#~t />\M*!l6~.�(< t�qmD��d\5ʐ!IVyiݐҚI[ѢWֹY+$MF H7,g}WÁ٧Y6*@d Id@%I Qgf*^pEU9/t) YX/\[J; *,v"Yy6I@P"l+U)M^/KK[{# �7k> sF�S>XNT0vX~%� i?VS~FZߌHxѓ _s?|V:{T۵_f&٤žX);y9䗛x+87 K<?xUศǬy|o51tzgͯ2W8- AZjȊјZƮ h,x  $ϛvT{1Tr<\Ud\.Vu/L[e|U+uO\TI�oyT|_18=TNR6G߶$6tg9":W@&&.f1a'-E%]Hmi%% l:,;.!U<Ni�v/]Dz�Qbﯴ\|8%hqu1;Ïo</À.-6h$8aFiyi}lL=r'j2d951罐3J'5Q1<FbVMNb9( o:r/# t�^ڱ+-x򻘯ے&1#p:L~E2kk_lT={ߧ7S]#l�6,S]%Sk��]C ;U0|~߆p?>;\Zi}K&66%׋ ^1ױ]L^4ոw筯ټ 8 ZgySC X1%~S]I5sd�˟fb�1�Pev%/3,,g:f`/4(>* j@TV4Ml]D}]= �I^]E{Wa:z�&"yz���5VUddBW09J,6#ۡ#04Ō|v�z~;sPp{YgnLF�5{hCJIN+Ͽ*3hHμpƨy-oLNɫ_R s2W{^@5OS+n )'O;Hso&& ._LRѣ眚6ca"oaQ)%-XC~~LYe3- LǮiɍ1κQz^6ja`uZgvB ͹S^VcjΉ SSR+- 1vPx)'~;Ty^Tqi>'*oHtCV^`S\&YCN8i_%z "v{Z%% d5T7Utiۦ}|ۋ^&۱M!?]3~'wm2EFzxNga-kc,Ϛ_~lec6g fHul_Mon 9sB3lH�Px3b#sa GijC⭖.JOݸ@b�@J[x| b:R@i? �$(I(I>HHP R�{+I)I�gL\ظQUMG_ΣMoiu�Uj؁1[@HN>rL: 0aN> ΗJV�YYYFH8/ 4=mlKyQDRu{ᙧ+쨓YvYS1yךM/L7qh|LaK+nx*�jYok l'-,nZlS|{&"CoZ'Sÿ+.@G e+~qw $#>rUQtN.һ պvq9U < >* cz˞^z} ٟV:M?DL_�5? b[A}qSsd<YLw}-�~ōy /w⨓+ =o~y󇱬Ǎc2uڈFI:=E>L.5a 3LP*)I%,A2w.tv" ݹwJΎM(vMq7'ؙ~s7'zFk_wnmhNkWtMuܲk2FBEG%m ο/olKL/@GÇǘ@<0T~S+ki[mT8&Zcl)wmT|ӛ{/xІ#}w&SgN =k*Kog8+$y̩ _6Nuǧ[3OG}oZ89JZ{<åF,쒱xCլwoׅM)_sw=Ho A_sqxSJ.! g^ͣpyp-C Iݮi MDR˾T�(vCQsfzb'.fmN5+-.N<m+/N"/غ([9ar5㾳5xi^>Hґ6 U";~NF߰GYЏ PYiTX\LYMs [W$-wvV>Wh ]9CRAOwȜQ| ӛ8e�znR;amX;{joWJ Q,r��PE$�3#I9|JAjœפ +i��Զ7HyG>%Gn>䡉 ,!�@ 'bo;S�x)sUA͚.{Cf-U$fz“Jnuh%ƪQ�ƴ]4 &(+֘qhX#UGWIT4_8T4QsJo7BQ M_MjjZ/+.*JGܤ[i;Q�J3Tݎ×Y.0}dWIc-f*G&Tu<XQξ`r]~e p8"%3r .v.Z,y )f53k(CVVFJ?&]bk4%:y'#-_^^[?&or*UAcDNBREWDFets1l8wCg§~t@!9-4ݡ* n_8Un"($x8@ D;%9[\<�n!�:7Z"6z㓙DXctϺktflv#P(W2( * �� GHN;kQ%-wK8uvkp0%#CyLh\ ٍB{;a��2r2f?B o/G5݅;t'Np?޾q;,ՉtOb]D/W-o:m5\.�_d��ʬR֣}{V h ���Lv S�Q~cKB1 E= E!|HtfˬUPV J*ZZZZZŹF5aV(P:f"$|q:6s(QàVqڗt!Q9QR52qu /i&N?Ј v-jbW%~ybj >5Ht^n+ "f{$xv_3JӬI}-*HNY:2<W,iQ E[<?M~YU_vL빷D;uhȊJ+рD�w\s>/<g^Kd-.QIUߺH^Ǫ _:aW<S#h"Z@1e\umk]@�4M@��g++'nݺum!Y/&o}[R8^DU,G4uM1_չC PH$!^TCdLh@uȕ/7s~eqlTJW0""S9>it Aҷ0o\^oU],ɂ�8z[K"g)X5 ۂ?^F(jZQoœqpuGzw;[6MA+ R&$h�D'9C/۫M{Y#bHii+`D}Խ}=wWS-d;"D/@T^y @uةkw'D.meR Ĥ)4Ǵv>d۴鈬ۦ/3pYT1uFz̴S TV7u?<C]X,8Ei/ޅ]1jT>DLyv~ck.>BT:엔뢧jCywP-XX;!7/*0w_]/wkQI[iYQ P%Z%em)vw3_CkZn!ʪн&>SE$%%5#1VDf�Mw~O炄f�!� �  7S+ =?N;@s˞?8| l&~1n.V ^Z$K-,Fl 1--%2M5g:Cs@du(^tq.Q'#UݹuAQxyJ|PKKKKKa_BёE3R?LR_YTn͝fTKOW p<zXz#s5=1LBp\��deHZzZGz@to;h,TMg.ZW04l{ pvzǕ:Z&<? ߥ,,\ rDQgvͼV /}ۤucqL4Ð:3s!ںcORL@_gx' $gMv~yͣrAwԼk5n5wdם`xa# X)^.u%z\�/LI巩�2hFJDaܸJ�$�c:pJ+,MI�|{9}2'zXŒm ݧl \U__[!}a,d<vvԉ= 9 >|9I@(p[<1꤫!dɛ#Y8Ve}̬"z"|aOH>;m�7silDnOG-6u:e\O�(` "X؉݀-" (HI7󂐸CG|?нݙٽ< p&̰|c$"+ XtY|#:n"bDZS&v(*&<zW�DRz8{MҾv(>׎(5555uW1F  0 Ylˏbx?F6d]t8Aux_.* @f bdܳ+(8Ή})uiN^~v\Ҝ#H�Jw= >zr|:=y-.uKuj2sֆ Q^w`t㋧΅)�a|t)0E RlV6=*`oȲ>T��2/� >/o7K5[.z{h7ڋΟ[:L~ [zMJmƂȰ1i2f;>>9N f[�~Pwe0.ّB8?d˰v=+.;z`N>u".39obWr 3u2sN t.klJ^CeYɜFn[G*ًOF 8 &5aḅ^>~6xnXmrĦ-/576tqL&g=7E]!{1=&%"GTń</*EsˮF + ~Ŭo/�`BV<PޝADQ&G-qAQI龞fO;$erD O:-5i\al[;>G,^KWDyCx}/7|>t?Ǧ^՗M 82+Ӆ%[,dT~mIRȪ6@y?QZq JHeù$$91e]/d;b((xVp,+u:zfjZuqN=M\bˮvҽ˛$I�P4fU6ZŤ #:wXgwޟwkƯ<?9ү~sҙ}]Yn{K'+fqwn.DyR<sea>~a+_9'%wrNX|e󕧞<|U%+/zs/ -KJ~E$AM4f/_ZYjYQ0jKPPVd&3n{HӶ}w0Ǿ7d)CzdP3ES"I&Y4B.ϧF}a(8YA\]c0իBk_\?^dTO7Z Y+bs5=T=j} Iy7A0gnpX=V[<lp:͑(o}Ly,~_UZR{^.7ٔ" )^)9: 2|88Қǜ]JeHAG-6'G&+}p^tcr Dn;qLTݢSa{  =]Fk=ÉLDzf�̝C=|dIWHr[~m2Ys#QٵT ׍sn9sM#.w#{M!DAg8  ]z{}co g Ge\^th{8,A$1�`dpxZ=qHʇˬ'=\x?̡BQágb AAAt:.宭'7#Rp޼#dف"f6U=jXUgNB>cAAAwZtr7ַd]m=o ͌Ƅu&J*V{29U$P4ތ\yſwNAAAk5UKG(59&޾QVQh;"&)meVvvvvv_J|t(� :=CUcVtAAAAzZ~4!ڦiN�#<7�`b*H I=qnN+iU �Mbz @%eV�"ꃴD tذAAAG|׸牠YD>q*:{]�ZARDSe(iF<CM [텗/+VTQT\:6.HEmrLwxaӆUlAAA;8ŧJ o�pאYhJ5)] ~I0A#N.dIDbzޗo6"! {liz`})3ryAS\.e|5�� �IDATۍ1 0+:e˃_3k+ q aBRƞ-h-Zˆ lvS,䦀{~rdG ׅ-<Pu&Ǐ&DVRa)sPtp'o} dunV}9ٹE-yW!ĵ7j�(zUnN1OJH�4y6ѧrѸ߆-6v?&}<oUߋ|C $QOB@TAI<ȁ "߃O J D5 u<K`�)GHӧ ~cЛW_SJ{"weZtQ3Qrs֘٢~b|a�G&u;C7cy̢zݔ}mF§a`L}s8urWWe"?ss]O/qwĄ^)A~ӣ0aF ϣh:oe, Rr FQ|_iֽk+y-MQ\O|⪆cW\L>q>˃y?b1ncE-} '.Q Qp|�7(9? l5Dye8m\BvU/: Kh.tB�ɠ,Sian6a6fv0,IF@5 ?6.3XW_ڸ0Q+WX?QLQ>DEOJ~񹷵��Ma![Âq kد("��=SpsI\yccRR'/RsgH֩ub!Kǚhɉpsk,�(4Q_^WLqŗ3='?=F)g5jeD>3v"ye^, ��uv]p8d7ǥz}qޱj)69Y~k4)K3%7c£w=z//Βoۚ鯃>i+0rRאöܾroQ^H�.\/U~?USɰgdCsM?aώ<&%+؏O~?Qpe^{62#ce Uo+AЪOa!<phpeRYv1 &9#MUʾؿAVLtEqmuN\Sn�88Қǜ]nub�j)CYMu~[N|^LGEHTpSঀQh�Pt Ol i$�9pXn329,>_"gޞ3>^% P]M]*&'Xrg'5P28Ac�ݦւ:T/"'D6uoNY{;~x ޳�{E9\sӊ7rpq1e,*/kAoeT0(Z{`O渰g[/X5Z<w㝇;,{"!Bhȼ|gR`Ai�� )+Z6*�ĬVG=حAz 8I32j; Py i*_&0w UYIqqs�D]oڪ h,O!K90qZ>%O 3 "sk ]$!1 : c,۠%'v:vy9jBJn2 Mdiky(o40#8+(OG8^`7 ��ZRU6AЊDu~T<9sM܍cGmW `&8s>v]<}t- ;XIWXlnHf7=l.!&88[p{t_2Fݾ`f>GM$Qtק}H� o^N6\g/lj9x/V12#LbY|yF:s?tW$*B\B|f;p8l)!')E;_LJN|2iByEe_(AQ_'&wߐg�MIn\t̙|Fi"8`54t:(5$I\r12[֤ !IzƮ3ܗթ6/CVV#14K %ŃcW%QIҺOsԙ $I0$I z Wa},?3 ø WF5$NvQBbBn7g)R0ǵ䵺TJhCk L*wВ( 1M)ʋii縐Z캩gA|Cw~9=p9Y8~}͍$\NŬ1Ʃ뢊fW{ř:h]Rr�qܶM*Rk;f H~)FH$I'd5O'IlLT@O~=_-(ew+KEU-$iWijh|CIw)] 㶼C|d4FΑWq $U/K/s63*;F1y.qG^W2;-<j"iWi \od ~@5$=u!2j>'l@_42L,2Hrm-ϔ$YwwwLP3I?78@fCO[veCo[Z..3a|5Yo$*-6.6=pK]K=`7ha<Hl(jw<V5sUdݮ"I񮇄K~-Ww _R./05ٜXO{?gM/ l^m|^B>B6zxxڮ# &&ӰyR-6]JPq:5̀�65e#R_< @Q06ɦ܏}&3%%%HFIqIv)3+G;1 ӺM �Y,}n"IRG)#HF pQfOf2xedwtog+@9uFE 7cVϴ7sj- AlV+t]Ndʰ{oX[vDFi;ƕԿ>nWxAKEJVBQW?:z}:u*<whqϮfnOvkϟI� )*Eg@_u;x2)2 Ϝ O->}$M7E՟~of>LFЧ8̝֗xF (q;hL履;ϐv\�Uy0SnrˏArV6WWa ;:7#*IZrd ia;:f7>yF{ρ 8]adfAUm<6DTPP[dO}kmk \ƭ6qC&J?REUBZ<@v|�@qp宭6ϒd?bO=4KF$SA[6e=q:H/),S[ة75 /ؽȈŏRwt0I$_I�� ð֟HN�`$I`CW/2hIcԚהܗcn{QoZD4DqYv&O/^6u+U�� V6l9rѰ祱{Qk^"6<_wI3+؆.EYv],fzNcyi@]=iú5:{7vq}' 466;{s Kd̸d8w <|,2F�;MM�S`|6>:U:0~8!Yr~۶$B+Ji6*lW/#Ft !Wh"S4ތ޻}p5/ыn?D+n;؁fz\3g;`g>˲a*jNP(yH6a}<~Kt9� pȶ>Rn9 Ȅ's!o[ÊiC|F`7#D?X9b1~O s(jߕku͍d2 GF~8$$[R)@\3Rm ŠOZ39��nobp^޹cMBY ^!&$1Q;X�HH8g̵Qc>;ȿ]#SZƧD%$e)4W UJqơ%G!kDG7>PC4m:疬"fjցҴB&hg:/WQ[ 7ig&H`i1qd2je+;ߪ(Jb@6gV0V:.]u$Qr?44΋BYOj$B~lh\qy'k+1(/pKU QQL��Օ$;-0Nw'81ø݀ZѾ?yӸ+:m_(=yurHiG3{8NŲDٗҖo9&iWvZ5vI5c_EnY8Dtٝuɒ~F�HH4喴^rŤ%)I[ks+;?u~B+Z:x˷^G$<tԴccT%%%%e_]qSPpi\D]C\?Oۜkt _0MwCܱ:;O{SgǥTH6vt ,jV4{FM['T^i1K<T`+7|,�##b0|ͤ?75s(F�:pK! LX 9+\sM[KlGNџ\pptzʃ7'|x[AKL%?Xi 5JB8Yyʭf^, qVP2vڜƗ(ޓX_n#YV&$Egg j0z KW|Ow]uSza =>LT][`3P)0aeeACzDdT&RƈV#< wؐ@ccܨA͠**n[6UBJܴߝJ+5@T8- ?lL(*&<zW�D&2+h�TAZ"ƮK r ~щ*f:=eF%K– kkLLјaY$4GlPad}6�#[WJls�EA"f$V"<3|n@>>�ڛy?&|6SWj :},:4z5`vG./@pN?nb'ad.>{�Wo6ϵ. DMMMMm]#�;8dlȺp]U4;'(A78'#ԥ9y9 q/KsЗ"(]_[ A~/ �pY!wɕ%Vr6gi��0^e+nUj\tx8Q {wO5ri q5�[(jLY}CYC< ��`C'o2�'ºZms0m{լ* 8̗\R RH¢ #PXp˩-|\OKo7[OKI-q xmv<F]꣋g<zׯ۾j���JLX#\yҴ!px:\_5t׀~\'}B3m,,4;f?;`9CdEǎ�(j}g' < � ;b3ItV"CE��&s}jÒV  }�$Na �v\ X˲ֳ$E?[Fʌ@|L9=wZp?l d&:=bu#Ƕ[NIw+$Io.o>$ c�@`z;[o֗OF +d5y=q70vyA9|T0u{73]5Tv%ñ6ْ]x9E^0 AJm rW_$IDټ˗VZ_| )'G有�3{S?ܝ.WkiKGȟ.2*CMIJ{ Nbh`Kg)CzdP3ES~]Dar<㶇d7i>z;c_25A! 8g9pvY_IիW= dȨle"(6IPnރLYv1M{yiؿ7Cz&>~mwKq]jd<lp:͑(F)$ë0%}W/>ZFzkFN' x9SL0kSO؏}Oֽ- ?/~!G+}p^4]u[C9?|>!)tkwDɆ 8q550F#mn嗜T4�0'(Ib$=Gd۾<h@O|HYQQQQQQA?F#�#?b0?MyD- ;XIWXlnHf 0ߑTe%EU̽/�40BUTPXJb�sk 싟4}Kd}. ӟu,Bk�پo2DYl<B(Fz-g GeND\^WjL|R&�,u.O ~S\WT׃#2R;ϿM3/' #-i呹c7ݘ<z0rh !T'17Sqa5O>$,N3jI..M��M]ٖ\XVQupYw#+    Qv]SSڃ宭^%.?,B;�c 7W=*#Rp޼#dف"f6U=jX^s0(?5`MQ>Svyl3a]94{xU 㔳[c1yٌgtP0nh2;ϮfnOvkϟi7C39ȲΫ9e �"P̩rSG{AAA_k5P[Nu<|_W /I#rO>IƄu&J*V{29U-鰫+_k6NDQTCFV5?n9(MB*)&R 742;F$QZ\)':g,.)#�P4ތ\yŨc8   _עkzQjjEsXL}WֹY}t q.(bb;^feggggg$G%0É~ݜERF1/5֭)niXfHhQn {<io*�¢-DEiy?1A]g|H\{Պ'AAA?ڮN1N<Y@#m:f 0sr:՗Gb�@ў8E7~ϕ*�Q_&1zȒ3C=:V,EcodՓДyC)YӾT ~M}ma*/_K�UkGҀxmT:��YAa44hV!AAAN {ʙOS٬eq�$E?[F�`w?`ّ6|b�� �IDATR4^LX=RmFQ=pIL|n fFfY‹ �l||u K[)L/gp+_@gFRگ:k@?A.Q�v}ߋf#Z.3~׸�(f-; _XяvAA/<zC$I ZK_|ieaޫCgEFEvAA_Cz  C/#   Ϣ"I�.   7kAAAY(F=`c4hҰoZ #wʅ   a~wuxCL9:Yw,&U U ?;Yx!lYbh+OqW2'/L7QGAAkA#/qe^[rʷðNϳ\z%"zK>3G<<XH\au%.3kȸ0MQſ4$g1AxZB\Fƃ :mIy኶^R?:w d`0xiKҮBl6?7  ]#= gΙWo܉Qo\9@|uT��-a› No`>jge�F{ˡ˛{Mw651w^| sK2QYcm͌XO^zm}N5!L O#Jq4u6д5. y[i!{}fjGm-' NIOҀG¸i gPgOx4鍓?ϛ%-M?ʰՁ  B5 QDq $�UWA8w+$w}n\DDU8F&ﲓo�._Nr 8]q�q+8n8ٙu?17/ =VОluܙDo,o>|>�7?u˲c %^z-VZG+s3ѳȊ'[#KO8nɵD7�� B1 ZCS~8LZx8e.rrfiin5s;ֹiٚCnĮ9c--+jrO/rk?v̝]jokeie;kGTˣK}=^0 ^z^  +Ap1^9JcxxLnCO"Ad'9:C{gw7.&P',d!7-+22A{:LjN^wgI>)P�0p[w 2ykMػdL/<P{Ho6qu^sԙzo/#g^ɳ|)"*<S(zZݴ8N k̏\L+~z~vu/�#査[;T3&e`|8zs/V~|~e&v_`߉wÃ>ejA>[]{vۇ)tӃChc^<UAA:?__V5"+obdw'h M@XMa&Od=<lבW=xǘGM~FҊŭdBgq8?$*+u9 A��ytq+Zi ur1>_߲QIM}c|SF:ƭf'2yMc0NykKz^N/xȉVmq6LO}�TMr؝jPBͤlDvtDDϡ󩎚j% 6Յ1`40T+.#Y~5s8\ld�ꦧw1lyzȢ;h4AA^}g֊&AM{.3)ΛD~~!2[jN -]zݹQ[8�Ȗ llh�&(I`szJjQ!g ʣ(x Y+|hןń$ە" :&$*L(֧ O@lz9sҦǦ>ռ]�W؅AK̛;@70)QQV&&ѺS;6#TĜjBeIUWKH ୩]уC��@v33T{0Z  ȟO�0Oz؝TZSӼſc?zEOv3#V"@#UuΆR&^75$4}|إdڍ.q+*IdSII Bn)!lxXE�2/B`�Mq:YZ%n7{ܲcFVW~݌QQU,-.2zR�fs("q+4Vh;#ONS�SDeaUWRt-. (@+-ikiËwV|*(6gն'RYSQ8]4)ih(WwBA߄?� ߼7/'.yԜV|CxHjo/,$ Q?@IR\\Vg7�>&UXGkxL_c C|I_A_DA<zk"j$+l67$문 /̷PR-%nLϹAGVLX_TdO� S`VC҂G-ϐ'dLekًK TE$ԭ7ED1 U/4{v8 |GRW1{lHn(s .--&9L $T40zyY)n\fcy}H3i ]Y>mњM}]FMJg�Ugp6r'J�Nm1{:Ƈs,/d.}r6 (RrRoJqH Ki@s^�s}^$$mvjz]K�T�Dj:�E@^[Ihj"c^߂+˽|Y)0NWU*j+SN 8T͕J@6|~z:v}K^Z<Y5'Iъ FtAA?AV}3g ѧuF\^Wj7xu_jA,u.O ~S\WT׃og'o7 3/' #-i呹c7ݘ<zuzʡ&RYZ\ʎE%muPsOrq症]xemɅeYQԽN)^UI7$m]Sk[gfˌjT?$�@74͞a5O>$,^a<ڶchHpf4 6{NW .3vR-ƏOSV%l8cd!7/8m.7acEܹ CH�}g:X6MZ!�q }}D|Bj܂j,{66:]}<AaRQK'8O)laߺ[?Wqg8꫍c99M|�+ljpqX#gΨ%Ȳ'Nf݀y}+aoZu0[kc ;m2u^6nӦZwMc˲N>ycRqVM]�=c#c*}'\M MlxoAA?f8lzً^Yټ˗V׌8ozb�Hsl@vCŧGkF|N'i2-=xIc�̝Ct~@H959nzˍ7=GӖs9��Sy/b.&}-�T^B:4=YjCI^~q928�V|,tٝ:d1]k=l(�xQ(zsm w%}P6� Oة3iom鴤mN`٨oӶ-N+ʺz{z89-ux-۷B~Ȩh�8`@/:|51 MrrYMDv;;;|{eAAຕ/?Mr7ԶIvl /I#rO>IƄu&J*V{29鵭/+hӪM8m_]�FQYeJ \$$[?R)@@ťr-q2.)#ٱ!f:ՔM-&r_4luۮK6ν`7d0 8}*.*ᐑk]�@ˤfzz8Ȫs>.6F LFNw+Gd]Y3w @QPS:Ҕ" s#N1/z  D5St*t~wZ:E@}Wys[ы.M I57NIq[,z&1�h? [cg7gAh-!1./\LN9dH \XT1 �q"&oIљxKn\FT[8me_J fLR߹ M+ZHY/ܘѶdeE}G;;<촾0gk0j6)[L[5I /NmM-eM  2x_jm=ߝ)Ɖ# hdCֵML$0�Fڙyn>7MS'ܵrHQ �(V� $Wt J-:`aWKDȪ')?b S&3aCZ#F(===dk{ϧvKˬPEi0qqNYK�2J\QU4ѻz� Bg-=󒶘CtƜ;6{J+5@T8-ioUODF\6/o_ߴ}!D?|y'dl   y/x+.y".ͻbeq�$EGv.w֗lP4^Zo?PWftVEݗ]᪳_ްJADH`iھT>GTDcSqm"69j JJL4;}0gǗlPu[kXpmvSIAcGcL,Z[n܋pŬbzwmZޞkrD O:-5i jECAAo~ wjQ[ /ʻQ?eT3AAVcf\tͼ=8!oo AAA俩0b?(691N< .^*a   A?k.   _5V"sdA럡_TSo FV~1S4ƻS7<L:?@ 0mQ!v VM0g/^|[|q+s�pYiOqn}G䞛9SAJ h뵸A+6=Xn|aݵl=M;K>n *ZWf~SE[lȻ݇s&?vq�Qұ5Rd4v1boc \1 ר*Y'ȪwUŠ NZ`| !m~ Ԙ l ГOﻼҀm)#YZ/h;O^x񡤞Եb\늬ˉzZdRN HtFLV\ ڮybb׏_%7n-qk=dȜsXz@T$_?iaݏ��'ln&<6~{X!C,/8 Jq4u6іp{ʹ?K{ ꊅq+6)DZqqq3ƍ)w5<|fkɿ@PgOHxw)"[W|Kg.YWV0r\MR٣ӗ\4>xț_]M?ʐuhͤGS!SwFDF\lwdͩw_ϻW7r?(jCNW'lJGSTGA^GD;1]-=FAVwzի_lN H))W&]A5ϯS*y7m4>?ܳ:!?X'uZ_yko,k뫏ݽD,ocQn*In;PY\WC׻i\ʾ_^E{9XI@>9mp[K13wF~_Lae>z۪b��#g`bc͇ߛBo7({q}p[I u &q*{ FYKkpA^]qainaڻaؚZ9SD@aUvj*z-VZG+s3ѳҘ^S3\ϓR w[#0]/~�>>qHQ6CiD3%a=jhQvN#%+kpHx."\F:ĆaV8ckI5F3vΰ?7I֩T�SQmohKݍ?j> 'G;,]H��Yp㚇ٱ[#KO8nɵD C{qgR <tIb6o=,i-EM\h0KUo.��khf9 �P`MU]f՗3JPZSօuhm'l,WwWOٶu~n#-͇,;PB�t{s+]GY[Zض<i,yqj(&c}nw|ДkXKsa arz|aZf\FU,)^[/&70IAPt vBk"3wT6l_,Wɂ敔ZLvžsN]g#%Q}n #\fo+tNXb…řU$2ykMڵ a"f# J{C�hJQn`!Nܸ4xߎ ;>["oiPZ#+agiF {o^.n\f JdˣxvzEpFո>Yrjލl")MI9(z<͗"ƒ=p2"yN CWk"i�> B(- RHSl(b~X v bÆ`$�Ry݇3ٝyfv;;rj!n#e!D=\f[T!W_x1gCJ?߹ʨ0{4` Klw#(HQqݲuJҹQQ]E?Ldԭ:O$uE=>&(ߢ} ޕz<F\yӀB8}XzAY{óXwv`rii}fvJ<ajx-qzCʓ!I|_D JjYPoEG,jt,%wtOͅp!Yo-<|䱭#dJ_+΁%JНQY-�� �IDATo$.|<inC:F!+#w]~x-zz ܹ;dƣwʛ.Ft3GNpr1Zك L+n<}݉iU?4N�� Jw߿cZqTt}Ya d1I/a0&TqQV_CQ Q{ \W )Hbd$jZ0 [Wڨ[uվu<q)bj#-!E K汑DzOzcP0A̳ %ϰeHi-b+/p)ѮO?%+o0suCe)F&H@ր"a)cVjeٍB:X_$\FE5gCh2Zܵb>o{ڜVOpk$@/BDa̭jn:!ԐrjcH)<MX)lmL=Oq`(egx޳_r޽ȋ;I>\6 $)#6.!%*+Ib}>c8l/WѓNgIjy-MyD¹}[6OVv0UeqAaQWb+I$&b2s͈ëf~(DCnBȺu-rqEsKq $;z0_TO/I~<`> pg\Om}ATLOx'b=ȊJ]C1ho4l EuFLrHWw8i* .R_rYH3v-1*UXN]YQHf5^QbZC\Z<ӕ:y3H Hd̆q�Gf�1c!ko(꓏הqN1Q1QY I87w0>.*#DiX-kngxHْBdur䉐q$*Ic1\.)*h*& ^^X9 PVUl5]TPTYm"Kbvmy S!ҍS0oK)`HQdu J4u#lq)`aaO:|�B@d$ D}5x7m }t9 #75t,.r!#'iV_糳J@FCOxb2R!Kj s#Eޚ-b$QYI9Z|J# N0Ti!'i58/(/)Wh LF^OF71Yd̠I6!d)5 TZi!Vm%y%SO"h^c Ϭ{ky@Sq@0P^O~|JKt;\RjoY.?w*Wƾ}h?VL|joQ/k)ʖH)&ēȭ׫hhȈzPg TqɦpYyYuiElU)RMaR#.-*W~(+)Shڋ19i<ˮ<@K;>2t71׮\ ]C:8��rWΆG=ĺ;to4k@iO p DԵzRd|_ߔV:>Q4(+g k_~7ӗnu'm/+B oOWq }fƸg-֠0_HG )Ny$tn<orwoe.aS'txexFn(+ rybI ;eO۸Urwص!2wLݳ-Bdի7D(=<B˹o!p ǟMhges3&_ב8e%f0C\Ҿ1Stt`b>˘V E HI03H$!2NƫבQ]!eayó+w޻ώW Yi֕~ q'Bdٓ'K;|n`95'8!ַC1A#gWLw4DQuRVx]k3אSVYΦ"hS Yl3E5Rynx&^`89S4W/#3YEM?605]VRN"9 !DcRط]$ę$岳̌歌*qW:sdWKև&䰿�Н#Ù˜ueEJ&#(zc6OjK?Ĥ+Rk k&Ö<}H{PN\ةW._:o㶏  {yKyg΅@VYI(@]ʤVS(j^8 DOҴ*w@Ww'GWũ3*[w4[4NЈO<a$߅GuH@Z??j'wuDyx|kw{I*r[{XH D<[+K?_!b9t7xG{I"Vi3{Ѧ(:3W]B\FEYvCY6q$nBɳ7EQbb"벢<ͫ4bBYJUM% Y}呂 Znro\{߀}wn}w%w\&$%Oɕd۷=TzOHG wێh<õͫ�{[WĞ*h(pU[W?i[K`\èM{_""jsAPAQx{4>zt_sc GNXF.kg㊙I|V�s_}YDdכn8\)<w(:@쪜/Uo?F!,E1o@wљ#C'8bƄ4;GH�?]M'4᪋tY.szw+ 0^]X?9:#ɽląs$ȭ֖V)jlwNk8(fh<[}wd/O[2rֆ=3ndzu_}�>_\\h2ZgoSm~.v+yI.UA$ߧ$T 9;\:r?g/O+G2׏)=in0qOh? yCn.u~A_!,ޭk+#9ID I;<ǷO۟YZ"Tn<c% c'>] EST- 4ܶ5OR|7-8޵EƵ{+ouhriL1xÕSlIvf]HUnS?koÄ6o>әwߘp&n]:M;/,ĕ=6Xos[ظa!"pu[+ѓC,pve.aljp/%L" ڳwŻg6xRZ6rʅ9U yO U<521)[ G̪0 X*#ĻI\Z0? W0]ۤjMа e,U M?F9Dՙiyi`Z!ik']t|dG̸J_N��޽{G"DDMmWNъԝv&QSoN"RvؚEOtsB) ;)"r !D^R`;~z5Ubbu*TXq&Ek.2o8C6ۍ 0RiOjνVuiTĊ7ٰȷP؀Ǵ}3dRA"E/2e&>SBE|BVE-!f8f˱]5P\pw\F2EvU=.{T# WL[`evX3xqT&~ �QrwBi#vunk _svS+OPBkg/ߋ_bp }gPi$oܼ96:۸~|ď>7(3�߯F?*2h[N|[3R!D]?}WφN9*QFAnBu?}MÑ؉{Hɉ[omj_ ϾYf,wAB oˣ2˳oP z?8uȅYu'�ֻKfJ-)zK|}+4rbX&BYG>8 0ˣn-5<:7Li뼒Ҵ9(!ևÇ'_K.)ˌN3-$YxQ��O!+o8lkɖ\fl(9;q}SuaQ=97pkW/ܻqnsjݤ넆̷JH{7ꚶ_w�욨nҫ+[W=!칏l+NCe5ʂ"0W'RDVRUֹJۏysr@c-EIO'_?JKh*.kr<9'񇛚0ѵFc&Z/�D<AA SeL-c"C ]0$6hAUvvOQ<XR4V4uB3̃+e$; �� &J;g Q cdPD̹vr?}.ЅEY n pty5#[w�~L" H_Y1."JmͲVDͬ.+V_Yҙ8G(W|VΊjZuӫ$5ux s~q1Kj-RRi"U]ɢR) Z?|x KJ7P( xwf˖e$OdvpřZTmhR\0V!$ -֊='$IQxGQu<3�� UXLc@=QwQ\ꎊ'97;jqc� USS$I t0UP'^bOCJWu 牞f\ܑJ8B9E9zEW'HN YK SBTAQTR,"B5Yr*;z_ˏШ>fyfFFKS/8&i)UEq>g)uMѳ3r0yw-5��������~\ UGۻ5*I֥]t MCtrk9t{?/k;ׄeLBFOw_L`#D潏\/YtUMsRt&[ۻ><D 96V?\g-�1 ({u[JM)c"D1ӗa$B!hPt^"+ 8]:`�������j :q2rk O# "czO+~zAbO(z |kxhˈK3gܲSo M+R`0:>'qg.M&#b!WVneT7216cH%EuDM%e{p`hi !LM␫ҠC;[8�������%~<2W 8VSøL @3x#������ Mdw��������W<^��DF1{޳p*Mp \#+^Aۺ\�����/7D5 Xz_0R}>q- +EGv:1ޫ<?su?r\>|7;[{BN<?yܠ̆6kV\bkcˋV7d4G0!Vy|W|rĆ w閑VN ϊ O1kw|y a?Q{>4۰z[VY|yusfN5 ����,Ȯ�|aO^vx(뵭^ eS\Y;3kB{_fX)!D>n각v֎c⦅݀"8hƩ'#6qy. >T|߁"Qyɻk"KHb6kϕbn*hcv2.|ړ6z`Xp<!2/Lmљ{"/p[T)B̬(v&@Wɒͳ>~7**¾2A,mVDZ>8;ǀz5kEgP ǏcӔ1Xg����i]�:0=L' Dm@Q2>IYԛ veS@]c<̰wN5QeG?4 TRPS%5EvM4ʪ%# v$4$Ks~&@}>s0'G3d3r Frq2`g}- M}0Wyc=b]ԔU^} ;xRsO,0u�wDeb'r,y#GxI`>;ZAV4mDJI&;!hSogg_|k7Xv{qqnxkɡ)|zg-EdiQ)]^A\�[/7<+©ĞIzsx.ϻW����d�΢jhSQSI"{l~X8@ c~~T'k5 $,&\j&1*eǍϒL5lku57\ک7Re |Ȑ)R1<Zޤ6Rl(K:p Sٲ%^"B,7t|sZZ}$VdIwwـB.b޻#BgqE0̴,i ,WJKNg#pYK' ϰ!3=0nCԹH|ݳ|ߑC %y_5 A\ЁNt}Ψrrû7-z)X/}>w����.��: p!ar!YL+?(l,Y\@gêgNY6z04b!!:pSE{ݐ(~޼CVM3x.Z$錁SWzjsM"I4f>uZF;W1'5$BlPt_<Vg@!kjnb4:]wG7E/>$Խy5|=;(*Cam9n=3HjugJIe{W_BȝU/;Y9y- ����# �tV),(+b Q i9eDKGUX$h}4߽*<`tu&d<>8se͉.m lQe$& G$$+7z;8+4o>g~y~vۊ9O-5kctˡNA믽-rF"vsHɑ'BneT $p(ih`tZCm}Sz]i+ͭf6Smz !z9Z#ծͅn=#й dB<G؋ٽ::{B}M_v'8{٫�����?F�:!ɾyP(KO+&0Q1L{ sB`5s=PWɆI GGkjR8"kҟ{X=-f9~B8!9;(-w۵?-upo)t9mG_w,n):&h,rjTL!F-цӞrxȑ-c[0uMJNSԴUV["+ OKtC RСk: RfqQ,m$ɢ u|_!,F:Wpًq/^<=S_EdՓa=VN�� �IDAT ����]�" nm=yI+.SI 'r$p'/D$p$b'n k*..h}N=ةW._:o/"^EJ)aK>߹[APQ>!!DT$IYVeav~E j?[ }"YSS[S[@ T26)E"D>?s2ԋdW`LOWGOVYI(@]ʤ䎞 0B"ِsly%k7.={ӧOm]ĶpŁRC$*?_>ŲEEHؾnB>=3%~.fUt=ރz$ 2ޗ9ZhU����z+gۣb]\rU\Iw3G 歖F+_l(BHTa4wl :K<YAw[RImC1 UF^xp&S@JDGHQgT|cMUL1j8N\<5qw%Ŕlۉ)k΁k$\sߨ5_JE@gwϴ7p8BƧӭ>;NTLH�|;W0=W 30NHd\_Ł I4(Sq!1iiμ% w]zwмab~ڈa1^<}0ˑz$ۺ,K8wJ&&,k;z{HO܃5O^ȰM҉����uoH$|*>ީ?]73=Ɗ3$\[f'۵7j͇uq9b!P_=Gsd_(~ BĤՈ 3?u;kXS������.߳M+*7f!a]<+&ճSk;3@Q"D"�~xS8j �����HrjW.=fLkvRً r !οu'YqF֛or֒]D8q̧ki0 &/B^;^צ,VS!fKYˊJk892njç2tƆ浘ȋXa(/#8? %Gv1QP6pe©َRꎋ3j�8mF������W-f%LUe ŹN|eVI3{}B !Ȣ*)|B%<(Mֹ绯i#v޹y7Rr[|-`ٗ;ˌ%.?HuR|yTfyy *<9i4><_#>gQarC6];2!=اg'|.=h֑'%-G!ֻKfJ-)zK|}+4rbX&"��������nՌVi~(&"J.j54W=as5r~;a{*}tWDHa񥈬y Bd_:winsr@۫-E.N0~W>_ib񇛚0ר~ v$簑D^"?A j=y B*9zqz [G`^ww������u[vk_`[S]+"&1IL~Dį,wLģZʫZ}+gEf5M婂:j<'YHB!%eJ*R M_PDLV=eKH2Ja'2|9a 7ޣP)'m( "o�Yv������}ݖ]S u%0}ۆ#<sѬzKt;R G"(G(6+e!04Fdy)jgr(*)GeH GR9ENbΫǬ:ȈPsi*e};tP �������Mtc\ux[rd]M0I'NÙ-n%pm皰,Bb5Ilڼq%"Nj|W]VO%QCν;Ə3NQq,*(37"ՙo;;5�������J=ڋN9r%iS'*!fn½Ș⦱Ɗ߾^9i°0=2 Y!ofV|w:`0t|NZ3\ZIMFσC2]Fu#6ncG*usE�Tw+������!%~C$A LWN50�ϊZ<w_MDlb�����t?�RP~NԾ{0(͎n\CdY aɦ-3a{2<q�����ok�_iAvt%L?YV[HiNw1 C7A-2"pSwy%%;<X!zM*�����/ms�epE׵];8Qՠ=ASV&������OMMMKwG�68a3#C4qU,%þ z{t0MBzN2'*]tD7بK D4-GM ������t\WG[WGGWG#�tkV okSYGSwڈ; Ivcu7y1:0nQU),9顛;aS( ~REV`6�����׃�?aO~]Yxwmo.!ͭ~k+ZdusN?'gVs"73ӘGMCJ^v]%������ 'o˄3S4]dJ^zǰE TR :̌[LJGWbޓy}-NYp4*+�����5�O0!9>}th]=Yn}`%gnOkPzCloq3:Ɔ����9Ȯ�]QWTɱ>fMAAmNoh3ZH@yxZm (;; ����� �t!;Qґ#}eF譤I6&eϨm5ա/<zF؃B5=o& OT\�����@5嚾SWvuqRX `UUwf(&dcE^m@&[/n$%`N**=Ɯ,hsq<2_c"ŷ7w0`8.K0~r ɪJCY?}�����$" TQQ|*>ީ?]73=Ɗ3$\[f'۵OnE՚3rYqF@rorBI̺Kّj?^c������Q {$IDiy/oʝ> W]3rx}K+TLg� #�����wkj9⊉ka-vU"cdj(;)BqOzT􂷜uok(/lF& !Ĺl9*g-Ie!̧ki0 &/B^;^צ,VS!fKYˊJk89soCy1Y^}Cɂ#CE7i)y Bdޥ u?02�Oh!q������Z=J@s W5%?g.B,~ r+Trͣ܄`~ݏϻB$ ϾYf,wAB oˣ2˳oP IYo>9w=_ uy;uést;x܈������WeDUUpSNҫ+ZUGOtH>{#!"G|Pٟ/<3w 9ՉŹM֫sדSֈP;jKv &׏0}ι,`575a k{LMS߳&u>>y, 5_�����@k\D^WZVDLuwL<ȸt&lX- bf?_g`0 M)4Vu voGd%FBs e+HpNR) :uމHV&^h#nI��������nˮ:e|J@ g 牞~ ;8qENQ{|Zzzzzz¢XƔø&cVO U <<SEQI>+C5Yr=)| Z8DSJM7UHc+YKr~G��������E޵Vq{F2ɺ˛$y)`NΝ1y \۹&,e,x7zbR!6}2SEK_5 >^dw{ׇՒ!jǙ ,uTEah?!D<:|-r"19thӏ}�������;SwIo,#*g8Bp/2&iⷯzN80,̷v4~Vț 5;д⻋,9u|NZ3\ZIMFσC23 q:;3O˞,=0]Crxw&;n:<!k<g&�������%~yuU|Sn � ;������5��������_5�������� ��������~d��������ς��������Y]��������? k��������gỞ!Dd-H��������.��������]Z28b uw$�������� W K^wG`\W}�������PLܯ?cǙ z. -źޘͻkEP}}>66?Btw���Elvw���)8X_ԗ%ݕP\Tܰkzzum9;Uun��������<%))&C⊉ka-vU"cd*f'Z;I'8$K/xi.xP;ֱʆodB7GX%),XqRO`0 CM^">.!vν�os5iqq5sMYB̖Rps.M輗iɦlb.u?id2Wr}_ S.,tҒPqZgˑ}1Y^}Cfc"fF V⣻ǙJ+yKpiW*3B:iIJ 4x\O#$ϪynVm?ps9V3=BY׶nRP/Bdwޙ {7Ӂڷ1 iÞEr n=� $g+xYSzHqn,㪆~bXg̅6BEOU񳡱SxJyQsw_r_v޹y7Rr[4$`ٗ;ˌ%.?HuR|yTfyy *<9SGXX^|\UWGm/up @`/>+Կt0-JJ砌vW{gBay΋ݽn<_tײu<ʟ|-,3r:qp̴v[U{?^ozO/uAIv>]J^ j3L6_'`YA^f}'JNYcan>t4"-Ȏ$L�{Y%?wbX+uT.Ο^.??!35’SjUݙ*4ZI7y9+)Ii/~w��DVrUCǯ\aQۘ(`\uD>"r~;B>s׸+ "l_Ky"Y]OVBNmWe۝j[m)Nx:dQZ"FSqY|9gV3pS0ר~,-XAZ7W#.>vdz@wPR+tDdb)SKN|ڡ4D4bN-Z''~^S)p>3<]6-nYNvl%A.a^^ۋԶmVp쌖clC[SpE׵:wųI}<wK/0gt/}񚑳"^}B5fވuC\D<̌(jжvДv9��� /OM-VVqQz]umSzGT׊>Mt;&Id\:g6qs꟯Vg0 AM5IX>H!v~nLS}t%N-JAeeV3hUoިjt16b EO<D[nj(/RRi*WTR֞o $"h\SYRXs*x3(*7GLSռʡk{:\�|/mMZl6e/;;#[@C[3=ht9}W_A8aHZ2ټKSSw 3QvciO1õsmTRZF|;i &`sUhaXɿ^RKAFr澨+1T:2t6~'>n64ޙ"sYi ]TߌKDmw}gۣlեij֓&Tv4G< rĊ_[�Fyw^c3_-=ɸ8=x60ahTī.23 /z\5K ǰ>g~sx0MTNr~F^j'3Ӽcs3Y/k@(jBEw I#D<6,][��Еp)ugW:wO &=/v.qH%!مE)(qoYzJZᙜ*(J YEM'5Yr=*%.pwp{ߩvnEg>~NLGq0I#?O=IM4d*drn*eJyǏ8I|[XmufAn LF^]#ZTqVEM9:yom/CC. ZUS:="%m !Tt_qInܚ2>8o^,4| JFW)HS⢀O»K<fږvX|pqywƉ7tE $rau$IudY1f9`īO%^ͷo'ŗG K~(ζSu ܘ< r;X}".hXȋwwH_ `T 8kbG̏p@ø%#WDU+g| GP_U[[[[[[cI} Y|o?h/oޖk̹ΉU~:B[%6G0u$;us dg ܎T;ًb ' Yd%CXnDBj֊YaK桓/"c7xezAr?|Тqc6<?��m#[$.o:d!N:9wΟQk²\&zb!ׁU$�� �IDATx;/&U"j}n7¹5(b&|UKlnZ5ۼ3Zm8vgZG9ە X<JQ:`4I#bSʘQeteuްoB>_r;?VZQ7 k@d廃KtxW?S =ԟv/Ț{&qQ5rڷ@rxj2$emi_3$yLz9+3TQThߞ=t.yv5{?Q i4)"̌1з7>-LbFN7L9$TL߶rJc'őj~WTQU»O5cإOlP̓>I!\,}&ŭ N_(r^}ծeO?۶'}FhB 7<$,dm?:B{}%E%HRZi<*)*!B۷,XфXDNڮ?s;9S5%F/1Kƛv(.T�*6vVZ%u]#GRXO B]!4Tc$w<��Еo(\uʑ.IeD,x:<QG1sE$6%h>a녞5%RЖf y~VKCӊ.N9k<sijv'5K?ʔt,mG`"v2ޗnMCQ]?#"a򒲊={Os8m_-'&c#~̠?.{?滁!WmYIAk~0[u~2=N}˽vyå L֖S+~ya _S޽+1ܸO_4i> ť'\*BO .j=YC;Nފ]jFQ7hwEt.g<߇,{�=1A \SSU|\z'UX]\GWc|R"U6֑Q![s@1,VKAfQ}Th'Ydʩ/3!{W{D8'$"r"# MOyݎ x=b蔥Gj:^ FBHHHF0!!AT_WO=0V=(Ul=8@QTD!\\B %=~���]; (lᲩͧ[.{M|Ú+*:.;hYfKy|-}!B.TB!"*L7[ &>0m8Chz=!;1 : k:kZ+# !Nt٩ [Wƻ]BiAUͣ[ŭ_}_�?ͨ<PDP󳨺5 *&Iޛ/`` g[3lK?뭈!:W ZMЮ:"Y5z'\t֕4F~yi´څ̵|6~]M<oC밐'ξwUsi/m?"r.̝al+߽yw먽Mpi9iTVZF DAg\Ig !zw(V^XPT<{^SQ<Y,VP!қ$}?$(hv!1A6<mgwv`V�99`">5�Y"Ƚ ;vH 5%a[]_;Lm-r0@$f̅{m z�!mJO-8C DMz-q�XCvhLK';IH_DZWO]=E4"ID̔,ءX{U0��BM��%u܌L\YVVF6E&<g)]Taf$GA�j%~VOӆ=x}@_'kd18Sd1r7z"· آzFzMKG xz"Мӿx9 /zG\o k7.I~S��MR>BW|IIW櫾@QX�q䂓碊fγV?P*6yu؍EE5]`|16paϊ &5z>@ l]>إw{ZQwU>̙E0J@(ͫ26ѷWSaC>f<{ofG_]Fn Zs@B'ʹFG nn7V{Լw1{W YMK$ݍkCRӕ| @#ܶNN g^zȻN]z̄)W !<Õu(FA=n.5=)'ݹBBNn FIM@Лxz\wG|6f;c8k yqq֜|65{b) E>:eid'\9ª;�w^$- %"QޗEXv~ϻ."7fuw>@ _nm|'%(%r$]]Fd HIݝyJpJ�IY_WJd �u?1qd��mȎb! MNXsHTn`%"цb0;Lvx.%drRW7;α= b5ӽaL-&E?J� 9 srn;UYi.9MO?ITWiL}U[x! ]Z%ikL1y~.ca듭"\d7.i}Sեt:Ns>V.A4?Ï, gef?+K16vmgQ:1F=n#@~߸; wvx9h8MݲfX}]&ҧoVCJ~Е|C]M*㴯V!"HXU `l6nld9:1q0U |/c�N?ɝ7 ??1&G%nƺ$?[C=ix8~=vɍü㜂k.M\N:2M~PT(@ Dܬal6@z;?ƙ{BBkL]iX1rp6?? RGoOW yiM|Zc^$ش@ H' @ @;mahz.Oo-[" 5ߒ<z܏EjV 6X^jO+@ 7 p@ p.@ g!wב@ @ {k"=vt,M)'+jcZOp9߹\w{$ Sf;@gݞw5jADjGZoWt~Ԯ],y@ Bӭk֫>zZ fGw~`Eo~nq(*c0}ozCGXKo !'˙J Gcﳫ]B/ϟ=ٺf]_l AR xR)0ԝ 9hi|SK{Z!+H*.~'8Ju2ud ]?@ sk4먷=IKbP= }M]a~Q5m-Wu*JS4F���NON9;S[593D[V*k7Hs%ܓFB~52|�@͙r:Kχm O긟�:SEj$22>oCeũҚL2vۊ!vS T3ܯ{x r3_F]p%p%/p + tգMHUl~+>X&j7bv+qeh0ݦ؝V P >^cl{^�z0T&.?-QZ|Eg?B=ֺf M[EJПPι[(Vpw*V⩨Q3�h=lUm(<>Y '#a6 X Ldg\oa>$Aq�.OM9))yMw YmB9{{_ϷbjWQNFJAg+x*<5XG^B\JLns\%FqVyQX6ZcKڛȭ:CYcn GnQ+$0R#7:@�XGnɨ><he��fXg>- IW,n[. ,n^uEJ8w/Dyf }o%l C �4n<pՓGUd /[1f:)aQsy9xz_ u!�rma��XTOzrwTNhȰ7qܘLr9zmwq:0Q� 4tJ]/o.;p!cj@ |]FFF܋Zο1n\e5[3OEkyGIy0 c;NߖLp7 Z0VyLaWMdTlQQ󩁉aWe_k,Q[^c ɪgVY[sxe3T<Bj:jXC >%pUbﳗ3RZW]DQb'씳9(. /osB+a⼻-!σb>OS[0쪠qҶ97X;.M%31 k}BKt9xc蓥%|KJv7w)KOsYّM`ۿv?'?x.=9Z.Ώ5 ]~oғ5Ŷp *Ǯw,]m}%)CGq6ߚhG rwD34pOb,n[ ]Fy]e~<.=9s0 -<:\tA~7aXM8I?SV]pA py@ I]7K|HH:~&iLur: �څ'fA3C_խ +:.iUԍhxHANvTKʾb'2.$Y-cPs6#":hWMq{L|U+1YMOIw3]Tv>bŮfƺ D&VOJ^<�Zp[Ga妦dJAAܬl�ڄ)$>jcc}�il85NGρ$oiM\cNn]_S#DoIc“w?xt柮[CS|�U��h⠩ hAvojȩču> J�@PT P(b#*07?50T��r_]M1�� IIӑ&L`_珰%M8tw�j@ g5IBf564I%;BSzb"~1aizd>X[KKKKKwāl*m&ӭ!9%YmN�-+o+.ӊUViAD CȆ+oFn:=-g㩄S1!9btw?.[29Ć+jC90T4n>2ч:k eqY/N/sR*jq;|.U N~w_0Wݮ:чخ.o� N)쳚d2s6 aa�t ڻpoRs[±��݃�yw~7o;߄e\� @zk]edp·&_5I;voz9i$5�dEEڰyyyyyy**6q[^ځn ?SYEMM0ZQUL(33§Vퟰ<G%\KqQU'2D_/e\vu1k:ny0C?DhRӞ~.JLu3 �ad_6JTy*JF=o_@䵵o܏iw�LXvSxr躟?U\475c��tVb7Vt10q} YCO[ !`sN16paϊ 8k!%;Ccy+|O>]]<^@ p鹾k^.ab͹Wwg{*#�ॳ6,<i7m -3{� xx?kS �4-!UF\{ɆsznZ5cp;؅Iq5L�D ˣ-1oDL&y:-< XosjIZz7�UON]JtESDFQ>M &7gϹ":GY2O)W{|$%=]Ǐ�42m Lmk^$- %"Qі8~d;]HM(I #iQ[lB<3^|GB'ʹFG 2>vagj=,DysmkLКspX`](�NZ|<uxq��@10tQTZVyxO[z@ B:>I>Xn!/hWy$��$،mcmfMs}(:heh̦c奤{*Ag2‹Дc&sk /ӊ]pxc%~> ȉ$j.]zV ܦy~ش:k#o6{6W_Qm �Lmj9]u7� 2[,d k.i� Vgg ~|7 nV"br42pZd7x�g& "F^[BB\6|!1?]Ɩ&F'[ hQbrMzJ B rRW7;α Ӈ.WӈJG.xW٨Om%خȻTi_ ϼ₇~/���&Kne95F7oo|'U$3306]]ȈsubaN=�eQI;W|�9p>ۨ4Is9Dz4E8nP@ ./51;Y/'h'5LMk@ .uSJ6jw*% 84 ĆKi% @zغ1lcOk@ @ k@ aoC p!@ ^`5aN?Gy5W "f#?Ҕrb8ゕ:o ;s` {YHMޞ!5b.g*Q&x5Ʒ:eM}7?8ZZUA O/ zCGXK&sT꜈. c@\2zvA{8&ϺWƞh=hOAU[9g`g\H{:m4֓I'aE)!4i9|ꫧg&`@84=:i]aq/׈]6qc̗vcAa`G]i)qdw@քcy�� �IDAT}f~k-!IG)al89�i͍K )�� /ѱyammh/xydt SO><ƊKڍ%bu`NC Ol]C Xy 4IU[t1#NPSicc�X[ɸ-瞅U1Xw>)-+N<dR��Îs6L飨lAYۻ%3t]7@Fq?�ޜ-+NTԵ|$%w{à5FKg8#{Yi}"5ta'VtZl|?t9\wn^~h0ݦ؝V P _OrQn[1D. >t Arѿ? \s N?��+%8kdtN .xW>N\7vճ 4 E8"ќvzt*M^qމן ~,YrV6#MoW.{H # 涱dF$91YMcs+6I" -0ז%\ɋD)HHԢE(;P e6Z_$AOaغ@~+K*F3mVϷyG)Hܤ~"ǩ>q# XSűVxi8cVOZWL|pmq?傼c ,n^uEJ8}L2ާŞ$#dr4MJ2 �� Q(Ͽی yahѱ#?'<]ҭH~k8_&]߸�Bd؉[b8K x|nLA`K&%mxي1HN m0 ksIciE�(ݪ!X|?*чb?O~ XAA3]_+ ��Q߽}x>ku/ĝrmar֟2J#m+]U_=vago& 2m)-orh7i-Ej:NA(jjϾ^ @ AOYZjܪi= ^Vuѩ꘹u,ߧmokg퐴Q X'7`�O7ɸۈ៏G˓ !ΛzXO߳ť&cJRI+#}',*{j3Xލ# c�4^ւ dWUV9nHUUYI~iv]W,!]߸� 5xcAzUEzve޹k;|b3ܮ,;@wݰcslkQ�3FXhjmXX4A}w(>6!݉Vm ' <WvqԿDsKNM5ٔ Ш<mu 6C~T]ƛ‚"L@܉>"6~| mDOy:*HФԬ<$ ԝ \Д|.9 BA P}SCNQ?= +75&{PK,Inr6�Vn?@}͇t7w[1y}ɭkjĝ)ilސ{>YCWS? 47;L>IZ�QQ+FϖYڎYttn# aA i$誽��T � J "Z[ظz _Zb�`ߍJ3n/�a|Fg~֟"}u5��$%MG0��Vpbp#eЧ]mlo 8aIʪd��@h4q-WXqēֈY~wW^)[6.3$dG@\GOɇԪc'Xԥ$PCGG86@ZhQo{>֗Įz. h(}6o͹zBD( �d!"EĆ+bca* �vw~xᧆ7P]Rǃ QFQs&|*Nꮖ=.eNJe[]m<N *#)Ȃ욪 'h%0ac_]u{˗8)$?+ʁ~r r*E?]m@Ri+bOX'>.!%GPs)-}c0OZ"xx H;#ڤ%q!iغcݑ}oYZ|Vyi%GF}^'BV]nwV/s4 t#z@ @JI{6m.w34nu*IBB;nuh^ [)yܧ>V⩨Q3�h=lUm( c%l23&b8&`%l2qoYj�<m4夤5m<v-d !A Rr:K.gwXZ(fm-}9l\}omt5('#3xo.@~$d =mN'Cw "m3SjڳZb6޻q_e Jg�DĐ/?"· ΒM^@Q46Xd-=ur'qU4s?RQd֖|PR>dfRɜo%,t0Y"K\? TqqqZ^ҥooB/|?d2Idf%o~zO3#_rRrrrrrrҕ/;߁?D|*Ĥ +o_7#9 FVeyxDž}t'8b+nZԍ=m4t$8}M]i]=wQ 2#h$A+@ @ !A2gjJljI03Hy~J`!][LBEO$$-G&G#-.Nݲ&˾BrQq#Xj]tAmmgJ4Y)r9<~%oԶ Qp{q5mWyYpi}giҪ܇G9~uaDysmkLКspwk@du_キSrs3#2HBt 3a0Z|(*-n��\w!!'7҆?&Mwjor-5qoGy:!u!O R"BUh}ْ>:V_ߥ ;Κ7/ߣ1oRU:{_> blh֞9.g|xD$,trLkhy˷pՓd5-ut7*SSs }kN>~=S猔" bjdddddd2ց42[!)Jf>~Tqn[`j u_CB\|SZ?d14s>j*߿Inͻ) >~#YG_4HDDߺ_UNYz@ BǚxFqϫ"cISf;f].vᬙE̐snu+Ȋg$Gq[ X݌ogg웻i-v(#B?&I U}ߺ9g+(ZUSAh2g=!i> nF5kZ|<?D JG.xW٨Om 6dGTl&'XiV7Pdeg!Ge&Kne95�H ?`eѰV{Fѹg?yG)#e;;M &Y ^/2M4aGFhg;nWá#[rvㄭFF0(�D̗LٔPq7g/~OO"?#*~[^.1I?Gc#YϿᒠidL,tc>z 4/.B7i~jz Gw_; +LAD6@ 9J~ṔkoT`� ΰ˱y]ֲSD'>Q � �Ts~b:z}ɝ6@aͮdld9:1q0n-Ji{�@Z /gr0 ;΂:L5yc64h>| Kd>2og m_Y G}Uz@C|b#닀֘%S;s.j1Eǧu桸<Ֆ~o̺@O2Vr(;w-B~ �prI&O<L&ƮЂx$ y9?:Negρw_ (\6@0`c35@E�vz_#<wѥ}.g8-FHxcW{e��XiV'HBNd5J6X_^sm=7W&?irլ/@ _RGoOW@ pDA GD0ܫ;3=]�PFYnr79x{ܷ5p �leMaO(�Ҵ̚N6Z3ա35 =J=& ?ع/Fk BdH`�0<}؅Iq5L�D ˣ-lB!9@~^=Vϳxev@ ^DϽҐ4|9;B^Rί}I��fI҃O1YӤܪp6ql24tfRRrZνDTE񾯝2‹Дc&sk &; ~ٳj#g8o$'x9R G䧅Qc8i}@z==6t7}5@~I|o_~@ @ {kn|A6aN?;7.Gn�+ tyecGw,±]tl}=?I>h@Fڑgtoį_u @z $8UJ`u9=&zސ fGw~foDX~~)z5Dqqz{>}؎\WHKEO:eTd~I*.~']zZ>@ w :9kT?/mYq#I/*X+[ޯ��u*JS4F{Vy 4IU[;*cl>w9a݁vz;H+{uDv;ݶb]@f}* L%ӿ ՖJks22"9�L0UI. %ܓFB:KX&}.B`h^!t Emyqhw_2{qs2PV1;L9C׍6duOf�/p_~Ug$OT`j{NFv!?|v֘%cZq/x?(i=gt>FYw>|'ωSǫWX^ T?@ O l]C XGnɨ><he��fXg>- ^ڸ3n[F5JV7(Woxb�`WN;P=!UݍRgy,,qFoZ$zL5O yk|r6Z.<yC6cƯ3ڌa5W�4n<pՓGۅ/� 4t]M���(4Yݶ_ c\{nx8<ibo|EVbPȔ9ؙ -d ^ޠOx[.9jp4]]+Xjݼꊔ Sq/_U/r8I>w5hIIj?]®(�'^2#:[\O !q|Ex NYSg1��N|_@~n233߽{"AC <y !~4n0 -INa1vJ0BUR.{S4UO[8I~bW;~aV[2d{@淁Sh2|NV |'{Qz[a Q>jn7?!Լ3OYz…/OUĿvTۍah_b축}|qe-?GKrĮ|Zxt8UZaZObb6ғUOKۚV8{}jݞw_$a7:7pD1xT߶|n=O|&҇/bӋJab f(XnOeً/rj p||Hj\G6qBg~r|y@y3,=\80bP1{և@ Q`5&?H.F&!iW0�Lg,mu::}3{YC2 C) Budb���ču䷐I!x{X _IҘ8}pVXx FD#|{cNn]_S#)NwzCr&��4ijhd$IYU ��&ڝϏ]!kp7Q˓JiaOn^ǝOxa33D3GYƚђs g"Z2RŬl0\{xWCWS? 47;%</<Y(q?<os=<x#r#�[/Cs)-}c0Oq^z%ozqzRYVW>s!a^U{Mj0NJPr �L&st%STtԌ;N}ui^$V0}*]8& "$RZsC|>"~8'WHSNo|)~`{Gyirrgb>q ,)/;+EQ(N |R\vRAHyw'^^:5.JLu3 �ad_~GTy*JF=<Wpq=+.DLikz"kip:Xr]Iu yӧzHODiEag^C9ҹ] $2c1MD䵵o%4-*oE47#kVVF6EƵf ��^|+aO<En/߈'kd1Z��d1rWLo@dm3:mC}om#x�xƋ\4l:8>]"x;sQ11K|{򿭇� z[ =G>@ uzRV]o.{О@IIOW2"&�sSY yW\BH㖮ܘ݇'pq1K)^{;%77#>j�u\zZ!\<VIE.>|,U:N}Iz�yK_0eh'vOYMK$ݍd��~d;]HM(I>]?XMmS\=r"oNΝi�->ae~Y64kϜu >}plk`"A'߈Gdg.(ȼpBvocz#(|XS'OF"�xƫr-5qoGy:!?A|(CDmFQiYup|ۋg1!z@z=ٺf]_l AR x"FSwX4PRr{_HW *3]�� �IDATVgg ~|7 5"!/G-IV{[=w 84ӎ 2[,d k.i�@<\QW73ڪdl1eUufVz��v*iO,|xm1{DN&=\%�~.ca듭[d?3Q1Pv+vGj{ÞZL:;KD`rRW7;QL0{ .8a~Q>]h8FwgDaҡKyY9m-si#F"v%;@3gteZRw=t? ENSF;7.opM<d%72SW՜\_ǫ_ OFFG sޒѬ0F1kZw%_Pնi`t4_tH0�`L4i`19b(qA J5?CIO?<4lbj -RWC ?l!=سw34nu*IBB;nu2mq{OE@fmKDgX+a1d$ 1+a-~u4$R3�?i)'%%in!MȀ5gyVq\r9Xii(��0J]se|-9j~wi0=>Ö] :/.FWr2R :^+MO|6��+ Ҟy c%l2ZurRR*/c ?R?ƙ2MkHwS*e.X1r@ k]+rZ$ 3SwL|1$��օ*ӽP=d>//I:dp{,'P4ce ~%:h{k-d,W,EA==E=ݮ~}DNۗr)+j*^_Fm;c`&޸-f* G6m /Q$1F˫ۼ )JNVoiҪ܇G9+;~SEse�z{*lͬ'vaH>i>7h~xHܲ 27;x]@ /zﺾQ\BU5wCҘ21t�v O g/ft[_1@Vt\< !<NZ4f M}۱ՒogI IV' T1~ ":hWMq{L|U~I}('͍(tyfo>Řяa:!qF͒-}�Iw.��pTBӬ}݌j@״4U!DqǙ>s;>V#2xު@`k15pglEKk rKZOQ$9|pk 5Ic;@ +IByƆ& d~Di1W.&2̞GhIaiKtGȦ[C�1]M.?rf9�W<rN+ZTYEΕdfwD65REt|}ʍc]\܈|[=yHǗ~?R5'�W8ʛѿ'CO9[{,]1$+|#(* ͕NVd \@ Aqi ֵAYF]6^Dgi aC/g8͞FH717/////CQEe&3nAxjciZ)RXP640ZQUL( QD=uāA4-WǷދ}o?'ESk)-i6f|qqU8DsgSOX^�VN -<Y^&-/F:ۃ@ @ ]5&z J8'5^qa验�2t(9x{ܷ5p �leMaO(�ҴNF8cQk߰:t|^AGۄ;hzͰGVշU:ODd}WWG7B檈J�k̹zbX%؅Iq5L�D ˣ-lűG98!e39oĭqƔ. 'kHo)Ts%qYmqLk{vsV3h@Fk[v{}ǎX]C}[`t!}Np~7qvѱ t��zrk?g0[K*{?5/ �,Izp76cXoYӤܪpӶ1#heh̦c奤{qf3(}_;hre$5)/vMs6[訕QS�dc15Fwlݫ s/YڍAq첇;+(Ip<0yRǟU$Ԭsm� .ҁ. 2jE_ A~ a-].sCUU:=5Z,RO ih4i9|ꫧg_s9Sb5(a魎:.'3rS$Bc{X**7i3 Ņ-Go>C? F Гڐ㫣ae5uk UdW ؕ^sEgh**b!!&��"?z/Yx<Qf2Y?4JYz % /1? ��X �k^{~oC ǂV 2HWw}mM~ }^b50NNw?@ZscJ]@Rs!bNiRġm2^OVA��8Df;#GT\N[ꏓ�,YB ȯu5ԧm8UZsIu�_N7KnrsFh:'593D[V*k7H �2vۊ!vS T3~XY3!k>^FBD|ARץ}(B9R(CѢ"Q} 2�ȭ,TT7:c5VIͿ*+.ĭd� /c�?ND/>|p~onKf\]?4"&iln7ϐ3sEvzۖ" -0זd6:<'E qin#>KȮz0T&b(WzK' Bm7%[`MY; U @gZ=ڤ4>|愯uSSizN~-|N*X+[ޯ�^>G�[O}uWDC}qL+t:&7zCdG;JZ0Felx|ݿD0@ u B4n<pՓGw~2lWԺy)A>=hžq&ba��hV@rJh3aXs\5 w1!#O1 -:6\ 8jkT6ɡrߤTP@nQ+$0R#7:ҮA(jj/cWN;P=!UݍRg4;."ǩ>q3!ypXw+QЉ_~w|OOXcva]<x\O.~VD$K5ok2*g=8;rW4LtbjMBd؉[b8K x|nLA`K�rmam V[~2gmA#|r>u`_33x Q3;vz ?Y%П.:2%)lvf qa&Gu8rA^KC8_y @ _غ5+;kBH^6:lq ˰MGj)CUï5%ňΠ5մLɚڤYoSuo2 0mmrݝO7y><PKk!i7~{IX՝wDbc ċHcxP�>Ex$n#@'z~wOd]\04Qc*8yFVTQʊ(KNM5ٔ@ԇJ:SN*` n1b9Ijh na`.c0~^UAQ��>6!݉Vꃧ3FXhjmXX4+_|rOr^`d���W}%ii>)o,YO* 4&fZH۴cug^*:ˤs ѾOw.wL| @  %f$eIiM H}ɭkj$yi46Qo}_銶$yKkNril85NG6v~I ߧCvjjU,R}(Uӡ5rk$Y7+Jdq~z}K>P{!V �z_.㋧ zb~~bgr96.HOLpu)Q 2>( +}u5��$%MG/T*� BR;,km�ݥ-,(]}A;XPbQ%B%i$F"XX" @e"]zݝ9 JٙeVsewdΙeT[S+n~ˠ!>_ ɍG6\oP@!**ֲ|EƳ<`z8.x%]m obُW\ w7Ab\RmG~!695fkP55L}N2 L_dFjtne_>���8ٻþ#�;ORQͯ'TT[yVVwRX쥟wah)1^6ٸ&ߋxmfkEc?gS ICB\.<';Z+\TYsT}|Juth.qŗoX<e՞ƗZ++>I~n!͠~n-{Ns 0 m-ڬ_"Ρ؎Qn^[odK(\,_,L"Bcpptxm7h˼GV+}soV=GpfjB '^*l'/$S$egѿWY��`e8�BBC/DBd~;Pslyphԉw^/rDR6!qiNVVN܋E -+kgWɞtu1oeY89&ގ)mEE I$IVz=LTռ_B#^z/% TBmZ䟩^[/]<)|Ku/_Uw]e7x{hE kTUavvnQq3jL0ߦL̲^1}+6O:nU D7w^<o>1qC0Of$%K˔$6\HE뒟rͭM W[��ck�>*}}%hk~М4m*BH2*DG U!ţ a7 ̄o+e5b!wf!inkG7!guz%!s.ң I]K1K?;e~Pqtͺp(;7#~AQ\'1J{:F?S2/]< )<37⬤ 2xҺ=&´,q^ًl|ՉYO!$ uenexW^}k+7U}yPp<+R/=jOJm5Yc:^ɪƽWݹqCz:z%ǥ烿98m߄G0ZqoU󮿳2WYG:�Gf�|<ԇᑴ~p-[GBjz8M}a u<mVƻn ]6A_z Z6%Co>Bn=,!'|r {:mhp$Ynbb?HV-f:,ܹ8"ɤ|!TRIIF޾ެzf4XgWf4K"q6Y*'\y�#D88۰QZ9}`a܂*ߧWޓy4]Z?}6=F, t^D<WrBe .!(/Ǽntw}{K0&(Ŀ0ԺϼsǨ3Wl<+V/3zIyu[gyf:^ɢYu[YةO/:÷r'.sНÜ3'VwDu2WlG<�DžHNNSU\Zf/J_}7lW�xWQ!r5�*9>l gӓz ޣtNC'>^jiۏ�>.y9����.C9''���>_BĮu:l"Hle1wy?ve��}Qs>" ����ӑkqٕv|M#W_7U~zy=wH;ҩN sSv,#ZbY74 r> ��qL(r7���:[N9jFi8`"S TbڪaocNi+C=iZ/ў }|aQ,sc;SaA�����c(y>,czUB<ʈA^Mr#֍mmlo$,ͭaqQ ns0ݗJM)fz]9~WĮu]3Yjjh[z.<ZGW$vsy[wQ[yGx9ſӘ^H#<Nz]4u-#IxصήT[SӰex9Q[[ꨫi>ic"f[,}�> ڙA UhբW6ikj꘹OxBۨ3(eNB2!mG7͇SF������#akI4GSS'GG$!N*#lQ8GfĂnĬ:48RjBg۱nA22Sηl*\trR TN!%~ޕ6ӂ zg;WJ_#gϜR_~ק#K_M9eí9l9co P-Œ6'.)ΈڻӸyx':ŕ=9d.O.8ZR*i3dllcCuR$<F(<mߔPU/JKtMqb]~iިqfeN)Qu]=%gytYV],].ADR늪~o5zݻ�����@sUjj n u ~eyU6^>.*R61ܡ";e+ @ VM׏>YJmF|)"ikĵ3w~;F%7ZYO&<sц1ʈ S/)56++IH`ѰSx,]qz[sIG\nUII.>kJ"5yG]|:A \54ӹ2Պ(j=%[AFB''N0%V R%TZ#u8N�����s9G]_SY0U\q٣c7\y\q^X8Փkѫ?K8qtAqٵN<QPY26[+U*0}y>A,0]i@fd%1l9�� �IDATm]ڹݍۍ#sUMZ?ƍO U>ռ#"Iע|ڳ2ժ( S-{JFGs[d@YJٍо/l{Zv����@ayNyIIhOV8Ok׍[|ySĽ1/qj)BtmIA^Q{Tnv.Gd-o{F_{!3]Pxg!Dtq4ѩTIs ׂ_:oji׾~ݤiMp0*nhdPEC#Pz -BmKjY=%ddqlGBE6Q&<&WMV%P^wEW5U-.L?@ױaYjoUkF2x <<R~W _g誦gx })������Jͮ9#57"7ڀ~"./;hUGM ]t9iq`1F(tgkϿjrmGdn•o;V9a^rjl0%kEe$BTunblr Fz'DOǶYSKIwu?޿hIôބs`7R+)$)x^6knmVsi5Bz}2#U,<O5/nʬ~|w6Wׂ_7 Լ_UT +-extU 40ۑiqkaq*[a5c\1K@UEW^v]1iu$pIdgOvJY?qյ&`Lm1|_1PEVXv!8J}hY.o������k�E-q;Z 5c{ ?QVs=FhOI8'ڕ褆ʃV?ZkwCfo[ Q{)QyQw5cv/['kKG b4"!37JyUؑO 7 1iYw1jXߘup3hAce[W(<O(zSsj 3ڭW#Yܢ_U7JVŭH]խ&#&a [GOzne6mz7k>sl,ǬYY|6́u<lQ9/^432w4uEۇs<�����謈d1EQťeBՇqqÆxuh` IZσso;>kA؋Fy $"$W;*<iC"_Fw+WBH[~s/6_j酕b #IKW o{4&3C4)WYB>>04j;.BG}ov U ٞc3۳oQ,����@kN}p Q]^kM^k덬r m3mUZ7(HIw`~ޅ ݧhw������؂5�%FK#t,,/W[6[Tv\|ec*"E)ugJDMUM 2- U55TS-o<Vslyphԉw߾#.)}������캣zozZ|V;j#\#s%"VL!ʠij_ Zu46=#"4'MJ[GJ#l1BUC߄<nrZ6Kܼj,XCO2*DG Mh6\0d3_xt!F"S%����� ]q! ;_蠭#ԇᑴ~p-[G / t323/f1W`s\gdljh> ,s^b_LL&Yl\tycxmf�����]]�גyW3 �������������̮�������wk��������]|�X������8w ��������|v-]uZE<bC~m+ 5NxEN]-/eSTAO~c|�������]3ϮUkmUhrT~zy=wH^gL XzpjЎ}5X|]aS,ƶV:v33/K R��������p'%$&k&SΜ}TBIO>֥/ؘԿVL hǷ^7XjrXU&_e)ApUT,5k�������8.N.={S<1QL o~П!ktvMFP_GkIX\{A[-m|S*#TjOq5r(h$vsBWSCs:%k]ۺ; ɼ-}, ƬB_v2kYM“Įuv]~`ަښ-C̉RG]MoM[1KbMq}2D0hg2TEC6ìuZþ<;hoi&>=mbERG5Cuhw �������@;鰕ᒔi]"Zңg?nvjm3borsbjXp)5J7)g[6o.tKQ_*?M]G?J|iAi~ ם+Lڳg b,˴)l<?'~3gM!eQ%Q{{8'/ykHެ)K^\KC/G&ws%en6G68T,E“$4l/(}u8e.3!'?L>!>u]#{]#!uv/OݭC5������aJM]aM/,g^lbB e*[4ZiJ~j~ȒU7oh35L8-I[#51B]-䓇bz.0Xq<a{*%FfBw% z9r[?g*s�g L ?ttJJtYYPU  {(p*vq|umiOkR5Rm8€eS֤�������Eͮ9I$Vh0\@];mD}/On3՟%GnP~(dQ֬弍y[m sssssa;RU%eq<}|'6;je%m]ڹݍ׍#sUMZ?n*UWbdҐ.u!]C6chdA&�������.:lvͳwKJ?GK|gmq9o ޝ%N7%Bn-)kXLfrtL>g5ʺGB\=C=mqYw:qBDgoN KN48?~"Hf?Ek]*u5m,T_낢ʷ*GGO67T:.-)1cYئNG8ںJ~j�������hwtb@=["sĸ&_DFOą%BwmJ;Hm.'-0ƈ.lW 3ۿ̭Cm =' "w>(S6\TF"DU&&`wRKtl{5yxw켞[p4LMx<I~vs*BҌ'饨icfE17V#׷~=.3Rڏ`kj_#ҠnjkbO:$AHf[������1Q%.:z~G~=4|]1p7IFM6&[,=?%kWW+ZBg(k=wgi$rjl+2,lF6: #DEmoEװ{ٱl-i3Z+Fшި*%UaG>-4He=zŨicvw~cvϠ! &іyX\Vz=g\4.Z&6Z?uu̺5hxX������ 1E W ա}4$kG>92^CLgivt("B^ut ������:67h{jSD'`pejCɽ<4::(�������d�$no/d�������)]w4^MO;:j]~������� B��������w �mvt���>�$Ivt��A��������xG2�бg[<!y xlyFs轷WN<mzw`OTY1KK1#8֪Ch1n?~i~y��mł'+R}_K4z;ھs_m'"^o9m@BSHޏN㶓)['ό/��|�|,l,?s(d<[be8>}o^���]𱰱R&UTNϳ,mL_0@g?jLdnB5z/qHnZ> ²H$nC.cׯŅخ'F՞s T|,jYy|'^"}vG;ТYǗcx+ 3lwj>6h޺ݼTmL(ylMJ{aC+׷Np7Sv{ۅ 75۾bRVzXT:֞s=,rˑ _~._cuo7z'ݞnnM@8ky Y- mEGVZO%Dq9^zjZF=|}%EgG}N 5晎wD^TiPo~?4WO;UJ*<8a2$ b ��} Įu:,,f@> /jgX[RU0ffĊ_\kriv.<a{ɣ3wvǾʏF/|٦jxu}JtPrzc}]B*$}Ob(QZbe4Lvh^;q&>b D=zi' xC_oAխ7zz_Lp:,Ye19ck"fq&>\8wMGl4…o/6h;<d.)"<xIA)'V%YpwO8ѕ5O&Ny?-8'\|2ȓW}8`|LO0|S+vT#-2mOS.$<K4|G1miC^~?k7eөV (ž/qB? Me1I^a��`&<yr^LqI׮GWq櫑:|5A^S,޾UvjY?]s)c2L Ƹ*ır[1L\uzAZѣ| `"씿k^g3 mtSG.c*7dF" Ƹ*;I_S㒰_ެ}[DFRs w\c5hb5M4w$kf^rCFj-7[?Rp*1&_$iU:^x_c.1T=dhb+?>Q /U8+W'mh- Ǎ'd֮FIc_#wb,\r0ۖW|Wcopّ=67e{iLuǁFr?c2c[ Ƹ2bvw9*äM<loc㙮_ZMuI1Wr$���q+ɔ3g_)"'+Eaҕui=o.26f\_u -ãfi-'+=Np),+WR@f<~Z@ hv 7i{Aw.B|!%W1:7^+C"|`oeH\^ܫϸ_m:Q.\Qn(ԔnѰw0Hc]L嫪 B**ʨV2!Vf!r.yJĦPZ[w^f<4vܡB2COWUUT?>/R3IG;ij8Ǖ8e`'\S+3YIystzY4y<qPeRb~~M a<ӡo/]m/iSO%2*,Bi_rdva/F/l~6��Iͮa Krm7||5]WF\nnlokcC}}+%ao7E+w_+ qa˷ȼ-}, ƬBZ_v2kteaZژgDzff|/2㵙%!茆$}@E hMaKwVԹʛ箩s`Iw`~ޅ ݧbxa['BpOY[Ѯw]PV<5&NFV~|5EB\.>~$6o4u%I]$tK U5fgَ[i%qu>wE+ x%QSm@lF;mmцI޶/��� :lv-IyfUZңg?[|hیXZ'G6\nMl;ҍ? AFfo[E6Leڔ]6zϙ3ܲ(hsB⌨Gӕ в~qKKO_VVzjV~wd=B)V<{깿|&k#y?[ubft]  '[U[+˶mrrD,Xplx):B)tb_:s tQJ.E 镯{1Mg%ee훌(IKIX]T Wqf"n,?^Fki$TPMId~NӦ-Kg:tew6'Bcfy`2xf{]/8K_v\� ͏bJM]'hB]_Yμ[@@f#;Tdg˹_LdC1=mcz_̰=B\#k[Tf µ1|&lzN6"$pe3]zsA7f!TD53SH0d3_xt!FКʠij_ Zu46=#"4'M,-1?\#s%"Vܖ.GKN~!z|5x![GJ#l1BUC߄<n]Ky)Fuv'1o8Tqtͺp(;7#~ĥ֟y!cU# E^L1/\yCH!Nu'7[6thKl+;NBi#s >eN+&EW3�]uI^j��|l:,G]_B\UY.`l٣kݣoߟŊ"@̭հ2v_>>Asv,�:;Co>Bn=,!'|r {:mhtl`=B}տ$ItR"p 92hg\tycxmxL۫ >#i0 [·( zYϔ/p|񇘞|C^u':\L@/׆3ܕ9\?G0&(Ŀ �� �IDAT0ԺϼsǨ C9:8~ˑ )?p:�'fSC1bG3'VwDue5fZ?}6=F, ajz8M-Kg:4w)] :Z N&mJxfy]/84>Y���O>SU^Ye/J_}7lWVLeryʟQ;\ʼn٦^p~jBF-dܵyT=~13kMGe3bF7)[{]q3mSyIaU1A2DFE#ɕ?^C6< !G/5+: 2aǍ]n|͐dV��h_1/vϖ18 Xqa~AN?jzE!EOO FcDB}+[\)w\.*#scK0B;%bx:uȚZ 5-��:'$(c'yittH�CՔgN0��AtE!1Q%.:z~G~#4|]1p7IFM6&[,=?%kWp˷/fTkm>x0BT^]t ڜl|��;eZ<F鈟sl}Xw:;2uha/la} ��2�`e8���p��P $)+ �����t0_ca ��xΎBꚎ�������� R�&˽CJg϶xCZ}_G:8\/׵gh:E{.b. Buc?nB[kZVTu.A��I��_m'^OZNSTyD.~} v}?6s_MTU~e I\:N݃TjOqnD��>< S��Ц8>}Z9UetO+.F,PQb#L)2^aa//`��@<KN%'?KIH��.;VO]M˨瘯/BdU}~n,jYy|'97Lp.PُZ}.S,g{vhy!bC7-aaYKq5{=Z'B\qPaw4ެD.R25"l*AuԞs Tx\eWD.0wEW5U-/SVږiwݟZuap_n]Z[WWj|2Kvt -rޮ@.?+p L(i̚Q5Y^r7/hH_uMM?2`"EL#\nDG쎇Ӡ~Li<iJdVzS5-Gs-a<M9K���q,,-;:�@#>uB³MCyBKG<|$j研W]B!2u8G-ץ[ cfF|Gŵ&f ۳EBH]ݱ _)!X俣x|y9ߩq%  ^v58f1xSeUDRwdO̽Rɴ4ˡ0&^;q&>bȊEQB5W],.xtxYznyhԋb|2&~xdsci)t!{ _Wc9?"G@f+I:|p|Y߿m?!$qO)(>sy{I!vS:?;*fEH-ZE|.>|ɫW>d>f*qI���O'.>!aܝ{1%]�kף]4Xk{5-$L*?>Q \js jE)]J^g3 m<Tjk1Ƙ gHcqş3TlO#i Bk7l_uia7:>#M\c5hbu{4??sD| 5TnHMߣeӮܮyѲ#5zlg˗jg$)u=%LQkKBiqqyaٍ[8#U g_cޡNR[ɗ{)}g(Wm/xɌݞnAO$ʈݍ\_JFd֮FI_#wWR8%���]�xT&%fg94vܡB2COWUUTbۋ{7M"3'%4P  8ڟ(ͧg.Ǡ!>_ UWVcDH$mg!Մ=yS%6=UlxrՆdOg; 54L*3ּ+UUURQQQUU!eT[Sc<mخw#D<t<Xda[)#GSK@TWV6+¡\<{kdoxt)᧒HT4ߋ6 R,MɌB��05�0^7yuB7%'ށ^y6vr@:XyٍHw Tߞ%x"W \n<^+76j;2oEhRUSN@Ƙ1mո9Aw ^{-_Uo4".j@/:~%8Fpoe?BvٞqX~;u*& x ISIؗn��/UPё��ڛ}{ME \g.#V!.Ji|[!%='ϖFq!jRZnb%E i$Yr5$Ԧҥ2 q\,жBXX^>RBROrvU<jj#t[).)[.xO'$$$$$1 9URV&jj8[r)؏-vE!Df$%Kc$6\9o t۳="?hv. &m-[BV(P4knmm.N���8aΝ<w6&zf� ^ًl|ՉYO!$N8V7od&q÷[ÐNJ|хfBk`9zgvQFFR̅_Vo/ L2+}<]Ky)Fuvd>aNt>Zr"ы[~hۅB\#s%"V^ UGc3⎯!BsҴϊ1E(rԝ\,/OBd~&n8Խcml|B7. ( B_^Pmօ×Dٹy4s_oK cBߜ}oBO#_hg}<D!Bg2ar,w/[\z>h=V5[h.N���8ii꺴Ş7t�nlcIJ ncB ݌L̋>wz"AB]�Os[BWB?`c(7ޡe9pG!+16ߞ3ML'_*-;i:gz 6䍞rڅB_z Z1=FD<WrBe  >#i0 [·/92EC[yᏋ~21qf5γY┩k{5CqR'auN&ͦcD_0q+"(#?l_ˤĜ#t WYBiyO}'&|U=sbe.~GTo@Зq��B()LR[~^(0.nvʹۦ^p/\_܈ #eY5%p&[*pM�ȨhA?w3{JO2[^gz$>Ф æ wI@F.K |S$ي��`T6O|Xj͈NωYubipd �vn=4rR*T<8y'yUEǶ+>KCN�FTMi;8~�G1yD6e/F wXv)#Gyϙ;:C,|MvudᱟQt*jLNEcaۡ���t<LQ/ ;:p٣c7\y\q^X8.�+�ڮW1]r|���#Fc#6zݸO_8ͣw yC����w�mq01Fc..lWBM6Q%~$q��������` SENCqN+IE! 5c{ ?< �)Q/ )J[~o5z]ׇB[1|CiN4W1KK1C ��>P S¸Îˮ4zꐟDywV;qB,AK7g Tx'SmU·R<"x]]s_N>XYXi~q۱v%FOa&{!KBǩxCw���lS ��vCxYg3J F >C>���:1{dGG�h_hseBckrEdU U -/n]׳\3:{EW5U =+OK,՞mHت:|~WK$M_ZtUS2rVVzXT:֞s=,IWj^㊑ݴ}eկ׿k1XjZe燦^Ozk1a jy&NVBU Ų+"qpڼ̬1 B['8~,4ȌzS5-Gs-a~c_ve9jO9AWhgCW���ؓ 𑎎�о58f1K n33?bE/54;`DXv!8J}hY.bHQB5W],.xtxASGW^v]1iud"%Eǒ=9(eUתߒ<:snwo—mF?(p+_k=iCW/MLu~v~:Qu3m+5L>@c c2rֲd$sl>4orI8mx'\|2ȓW}8`|,U{2*J"GUyh_yhx��@!nˣ{1%]�kף]4^SE><Ngn.59O(M9s}6$`*zk.1КpHZL]sE2(p LcLf8cܐ}6$*X5U9SOe4DȪ6?dnO 'qeFs.UmOu=/&2?Rp*1&_.-uy_8neC?kk:5.wmA"Gc&f;>䍮>cCݒq~x< YySdȥJ��Mq\�KiIOU | !%)33nWDfT)XG'ؕOg; 5'4L*38Kc*4(s9tUUEec݀B+1"_f6v {XK]tN?%T*"{h/p̔B% +qZmc\S+3Ytp<ykV ��b8eee �`<FgR$;*!'ށ^y6vr ;/m9!U5f7YO_Bj&z *P:܏qCA4U!.[:'*M~x%QS*bƼ/уc'qۖ0Od}-Iۿi o6NyXk+���|Mwnё�� %F,UoǔШ5#V+Z[?ca!xDT+ |sK7_⩪x \g.#V!.Jaڂ" WIVzn\cfy`__YK^Xj/t'߸m-%i"iluOS&\mu^XBUM T`"s^WRV&jjZFYW���ñut$�kdnDdUԊ)Z8G척.=Hˊbam'o%fzB؍3"a*E*}}%hk~М4m𛳹t+3s4o#T%:McoDWoҰ=g^Q]/圀} !tFOK.&V/Bƒ~zД?.= M(V/eB ?N.'V!2?roh8f]8|IW\f++���(D�aBmuC!1OdwWDzM8!B]�Os[BW)6į>$CV'n :B= Z3|u慧ߞ3ML'_*oKz=u6$ZZycIVa;NW[W=sbe.~GTo@(X/e=M@'% ܯ:ϐC*vfᔐ9/qگ^&&Nìy*7.p:�'fSC,іӉW���A'1(N, >6īC�ȨhA?UQVr|ξ'jҎ@erq#{@==1|;HV�@[+]uw+^/Tw霕MSk4Wtw? p5���|\:YM 2.5pSvTktP�v<D"Sw{;Y :G ��>28K _1mU1]i 8[��pmWݫ]QΎcF���tp_ue /m ܈uc{[- K؄P>LV7gʑ|umW^J) ;(5oKb:ங,t55-=H>̋ٻ&5�w@M]"`++@]]E]ޞʮ+ -bP)t# Pw['{[fȝsGEIIisx^0���`�@+}\�Gפ^cN1d \Z$9ы~UP\%}WVXe׮\r-<?z%s'iAR"*+oS4y{GͣRLBSZ�� �IDAT1ŋHGfM=8[M+d6-P^nqAA<fɀH��������>髚Q͕ije\X\lϿ)!LpJ1"+顧-Wl+at>Fd :..g0{V/Ƌ \a81Mx:oҏ7EUGG2͂L ˝LVc3̔)$꒨ ����ԳG^n0y_" s"(5I^VR.*(7=PU-+,`J-<@b*M_PȈ NiijjjjܟIgWO�~L B;w66@#6=4?R}aT~_�����]G̥>fӄ݈pw^쒢2BB,EEU>2TI!T6\Q]ggbg:fE>kU=.ϖwd��zqVeyof( ����ky9Af{]yEUZ\!ehm,GA܊_B# ^2pwpݤ2i?L9RN->Z !1M^cWhӏO4w{B?pƿ[ۄo(!.icx3Wfi/;n<!|<b^dޛIg(]5 !';l2ΐ׵!IaClw J0 ;S;T#(Neՙ Y1K(w`|[igO!Ҙ?&3$U,ܻz}BR^n!;Iܬ{)*r) ђKk {<+|oP?7XKV.c;pæ3Ha3":F_XaBfEY=Ƹ4Sfqț%ۋOT.+|_rO`\֡WP�����tD] o߈I+t7$~`^[v@!叏Um5* uͯ=RC^͚Wc.n͐Zv_6D6\2x=y))9apMdrkxˤ#8EGARn./Ig"N+ŧ\R6`:!Wa+G<}<Ќ͓ݮAlqΊ[/95q.g !t`'QW_MN 3kῂV:KV-8喷8cwˋb%]}>w.|1"`Q~]GVO!N%~Y1e=qNs9WekS^pd,9X9GGNP-#k^hrm߯` u*QݐlG1B����`Ipr ,!oӄ50�@GEF L̆EIzNR+9v>^p^󽃩!<YDZ[~K}%l-~ddo)4tO3%b=\c<:ymƍ*?ϋi;%n$2EG/ik_]-(?4`qx֟#il4+,hL/ۗ&!TqnrS'#A{+3Va27Ae^_[}]qs"| e"诟tޠar զW|#LeL6_ī~b|����]ݻ�t7JjՒ-IyQo 0 HrTs+-a̤IBMMU5tt k7E3_g8l4}c'"}t4K''3e|T31%իs>YNe`̈́yk̩BRLF!Gյz'*vu}LvA!b]퉆�����_aӱ/v8?ag"b6M]dΛl.^:o5鈠qh2mcm./B!Ә03U I r{pqNZo#Z,Xŧ '*B$:,'44"::y`zU ����`t C¨Fqܣ͐hSU~1'$Xzx:0NhhL,t䤽E!HĴ4:!8M5u(3ҳ F@`t^< ^d5uɘU_14T[U~AgID<mW:q=?ۗ\ W|aJ]G䇞<|9i�ZXoT!|����N�k�~yˇd윻l\fޛ総z'2.xc䜜?We!䫻wYդlOi>"j9jY\W^r)˨[G9*bIkg_Z8őGx#La8Yyn\EʼnW^|1%'߂kFOwmNg${0awOb?_Ch҄$ӕ끠OT.+81]4#����i`t l6xqfz}G{z G9 &8_DߵJ¸Q $MTl6}XN!=1'NG,?ӽ7 !D1[g_SCt&5)<JwѸYTM;!$crߘO:⪌!$M<p$˝_`ԲkۯMJУ$S1 nx\us hCt\rz ?D`~EHa8i\Rg �����:w՚r~c؉>#ҼsC{Bqs 7 &\qcIf.x5;X3����] ~+�yUOΟ,5xop({ t=n]eaĚv7mB�����]F�oYz 2}F﫝|x(N! c },!zw:����W3n3f���d:�~0������3ù92iĎ2V鸞��������|?yt]}a EQF��������@7uCVrQ;Ժ<X�������@W5!e6"^8naĦuTtWd 6ForЕ0X˪{yfp]^×_EBt?)Cu~S׶Uv|\vWV�������oE7I̝b@I$9ы~UP\%}Wzq/;JZ.~EQ'i8aBd}7I39!w`z[SC濳al{ZX��������箅;+0D=ʸ*?#N}<d ͤf\at85*"I{!#H}α8s!̞ՏBKa4F&]\贍1<][L@��������~$=+!9xǎW8*JcoD!}ܲ2zk$U34q6*sBLK^˭//Mz��������c6MXl{ģ'qbCWR6"°Hr rsιe)0ǹ:L싐is\TImK N h ��������B=qtIZ6;.B )Ckc9 V< F@1rrzۅ,d_8ִc4+{Cގ3^kcMĔ{+M_MnUwA�������|zUxFLZ!-ͭmruQ%lzӹ>Yh {Cb>*u繣6&&m~}xM7��������Ĥg8sАiB�"cBÆvw ������|z޽k��������[k��������`t ��������t�������5��������Q����wtw��#k��������`t ��=N[݁!g2aNU|l8DV]߁i%A}u8/wJ~7S WܷGF0nG%vq ��?]bP4 뾧S~LthH?dH2NS)AhMwS }KEôe2ZC !92tW6Xl:xZWxsZɬ N>�G]c!.:؀6FSԅ@ARq9)srq㎀aʵo\Iyǵ陏s6ʹQ;Nu]j{,wgh'o~f{ԧwsOZsB#u_�w͎2y͗v^Ɗ})[԰]٠y~FBU%e8]Zc?٬2KN{٩uc Ym㙄s"cKb8MӾg5Z#!jiu' N{{yo&h4vBoTWtZxڙiF!Tyd钊:S's aћ$O4 I *)xgm|/٘7&jw۞zcd-UUIyf(&CQu/Y I~}`$D߾!o(!.icۦ䛎K#X)[x*!P{7X6ҼΜ9'/N f$a*ס3c6\ Dx|qwP11]B1 [l̤3u{AXܟ|>D툟_Q)0${.l ���u.ªAoQÞ6ܙUvxM^kf(?.#'ni u7^$3xG|wʼn[C=G/fjk^7=7/)郹m?1QbNCo'Sz_~0~MVUU֪8+8d[k9Pi(Es9WeiUt~p[:1q-oqSnEojQl1_$ja nᜬ%G+8'8yON e+uc06?1K@@He 솟Z ۗul ˭I/"5?iqWnsyъ;'YrEosseBa,T$e5]�*z'O^1\ aWCZ[&#nx܀KN qYAPxEfxӗϣ <yϟvyOЯs\O ||cT?S���t!+tݨejj 5Up;w ǮR8;}anwkm++BO߭ ^cQZLCT^W1d`4ΖIKZe%&W#.;R^iX8!8;QqМ:6;N 0VcV(8ô짡i2tjw+'^~Uʌm[25Y^pqC}zP(t36al5_Y&zhan1Z]|`u׵[o61|6;jG߸U|ЮN2ցG'�}{$#'= z_Bܢ3*f4Jcle0rݶ1g#:J<r3GZkh9mXlW{?lN9|i_.67GmS߽'6 ���Ɓ-!e6"^8naĦuTtWd}o8S5E9)Aνi~.DmClߍ2AZ RrvKf~9Ge{fXII${=%)IY-{Ky݆d"~V^O̡#V;,}wol.B蝮6Z*JJjN$hl|"ϓs /fb(&id^U![Xi]roe2Ba 8ʼnǴ iN:OxFsR^TdB]J ;RURX,~e3,2|f¼5ODfdyH̓[^$]DEͷ=N!DthTT_W[#od"hPB$%jk R( j{:u\<6ݩ7Pڭˆ濝Mudoqz]=#]u"+-a̤IBMMU2uyN[gb;N 6.Az��� n]z;Őpgq?*(.>_dO\#}EyNvo7d;{ƶN>z0k%qފn\*(v/4uѝv/;2ƲvےSp֊1IKI?ݦx-.H<Ǭ#2 I+B~ͷ1 k/ Ƭ0)սyw3Lm-D^88?ag"tyNs8Ab3XnT=zډ7~Sϖ I[*/"h :&%$j~Z ߩ}/jVkj AC`HfURxQo0PN|?$ *W4V!}S]-'i^>mj֬ )촡Ԟ5?DSi$]w|dsIuy@a"ɍR(/���ݑGճw4Wa1zqU~G\$U]{AH+GL Uc2BmbRp8 q cM2Ȕ2vTDUwrȏ[: 0Aiv-ٶ:oҏ�ƥl_14:QVʇVususkJ +qFEԄ EN:!8-nK):^}vTLCi5u(鼊H<=wk׾J.ۅ+Fbu5u+s'qwQ_G9IOb0iCKv/<&g*.)8^,1W\70hk•UBnk=#䤽;#-$ >L٬6gXbd(G';=A`OJ!բzMvZjD VuVe7=捆��SP=!m rޗjqEߧdW"3JIO{yvpWp)yiŔU?]%#.yӖ`ݡ\.BHLAA&2LYd2ra엕2ma}o45555uFϤaP mNg${0zקOֳh`6UZPs7ZJNѰy(Q:̱K+^}-9''-.yHkg_Z8őGFw]^rxȝ Cvq9}gkDzޫ~. 9#x ymߑi)w.Fer v!L߄^K/,*So: 7Q,-sqyo>ЎyiarcwRKZnZ#Qϒ{Q1c80�� �IDATgD]l7oԅUk.ozF!ߖK)_FT>Q#>BoD|g LRՑ|uN> -)Br|`!/eCMW RkNzz[��g=zAM?2Iܣ6|ɘMrAVz،&@!org,)ƅBl>q>[xH$ //ЧfdEE 9_~X/Ӟb[SH oyI;Cwf~if,T1 {+1MyxǏ8ZVE"J1s520iMpz{yC1[g_SCt&5^Cvƚk-w I>bF1Bц!a)<JwѸYTY!N[|.̽Cm&{g s ql/xMj5f7"? ꟧%,:({^ў^%OO K5ã Ma;Fz-~_r㻽DgrsΟL]NbOޛ/Tl6}XN!=1@N>V}tmƍZ$!O"Oԯ0O{XM c4y ~�� Ph؅а!+*y%Ùc~ztx~U8s>Ib.F#u|?e%<(oq[BvbPYÓF ù1L{?rc$u!S[ri̾މ,^Qf: z6$eHZoKqSW:d6MZp=r8;mӅ*8Ω)Hy򲜋Q&ʃ'K)L .++̔s~| ;��fwUxFLZ!-ͭmrui* rh$һx?wMML7hʫcAMlѸllb3tINao2}𳞢}iʐYKIi[ &oOC½}u!~UՔ .bwW�z��}B. s!oӄ50�@GEF ,x0v|DY㟖;5B\)|�=O`��Bg%���݈9N/����7F�����F=m�f��������k�yӖ_E"~V cQ-H~!YQm*oMmfJYuITNj;_vխ@nёA{ڕ:t<d;m%嶱"]y��@5�?IX3+>ʺ恵yUcҦF;?"h =ܜCc+t cvu;X؏0w<~L)|>m0;+΋;9~t)ׅeO{u ��Ss�8Eml{NRq9mЛi /nQIW<q.Q߈�U��Y5�?y?MYIFLKVORvw_ō3Ҡ2kB{{yo&h4vBnևMg0 g0EY=Ƹ4SfqțO#%ĥU9m +`f˙O;3M}!Gmom 8I  ';l2ΐ׵W_%TȺ1 L J,j7XKV.c;p"=vJ>-YqƠ?~J_{?kpEQֽd5d/{'IaClw J0 ;S* KZ"0Lpr?5D!Ѭ~W{G8uL W_O={w=􆨥}E$D<5gMM,M\VL@=/9pOFSYjo.TWr x~ʬ4r!vAH1L0gHXwPɦ'AWE>o :FCx\��]5�ɪ>XMe!B;[!T#By^L{rNa#' ſ+Nܢ=7drkxˤ#8Ex/>u'76J4& p3(lWxy']Sni u7^$3DŽr|َq2-5NJ (#2ÿxM^kf(?.#THrJ(Ï]٬$}݀yAY-|Ɇ7ସuSCp"~Vtߙu8'k`Q 8?:xf|i3V6=~;!0jrb\Y }+E1S[SyIIm:)eeEwӪԃf)!٨r:FZq^y5+{F+ 8E/ [ặtb[r>|ϫ:o"<��ߩ6#<,iy죸JnGE�oQ&MfHO9W#<G \μ8^2CA{z?*论_ۉ>p͎lA)8wH9^m-<>Fz?HHg8zHv'$+&HZ3nO_&JNd3UݪqǫP ޛ!pC# ؝eLf$x.E+?-S^Q񆻿jJ:( ا '.e[~v✫%r hǺf+oMfo0Rr>xѩDi6n >r ̻V8y{dE!~##?8 u%Fr>;}씳8;Ē%3,=qR.CLFg_6N!;I+lǫ#VZ6C_5V}[]D;eAԚkUZΫ;~ � qr㞉^={�@%f$U\f:9Pb礼7[$7JUIaqS{+Bc0Qmu-NK}4`VǞeF}uyLOf<ILLLLL'^lCe&L˜jj?g#[X,Z.bbf>Xna3aޚ'"s/fb(Ż'id^%C:FiFQQ}]=KP%*U^Qt4!Dfbqeܸ>EHx'LڊV}gԿJLZZ~ӌ9M'U.H}&  K $`b%ylS!oҖiDjюGNnF6[!x?E>owB<��'¨zS^Ʋ3/ub*TSi9W* H)>}Bk;+Y9tGՁq:h~;CDðfS.E}|&M !2!G)QD Șܼ2պMS'Y#׆Ng - ٟoqESbж،G'+{v⍠1xڋvRak C8 ܟ8_QtK0k^~"j7w~6fII=ΛόgjkLFn<93.{발Ԋ  7Lr_L݋v' GvxBVhP��{AB&趵6/UI<DՉIߝ~xmEI]5p$~%,8K7n^%8i !(Z&q]60Q(ﳝbT*VWSr*jy8c}t(y9yTo!hQqK,=< hdg^vL۾8Mf >H*&⡀*E&|<q)y Mm%Q{D$2g>ayۧ i6B7i&YHDXYk+|aUQ>W/iƪ,xR$>TS:"?IyMF14`ߡ%i|݊~<5u(3ҳ֥mo��+BuŨ YF(SSG卽k[-h"#QubRD8yYo 4z]54qt]PRCp+^''%={]VINJJ)60 pvEx4t%Oגsr\{3"yˇd윻l\fޛ総z'|EI31x-=7Q\;)<Ը~-&Pr[j>ڴ8A#|B5[SW[W8O>/;%?!P)r7|םI8)atD^]oD|g iG^"ďBx-R^ڽ%|"&ZD@ֳh`6UZPsO/8G9 Y!w߫^<8۪?ӵ퇩&?mL~e&M/ֆz}KnCSwk|Mh#&0sֈW7v].o.=o ��W$2{SΟO@aHY#]s #6ﯫ$c"$Uaq{4e9gŧ_.rwh():m8non!'%%a=o!Ď2\ub}䤤T̜*hwON_ 4] qY>Oo8S5E9)A&^%O𴵰]} Z6y,-rp,޴1s520iMpd$S1 nx\us hCkdEg#{3;3-@"M{k*B{en:5Dg]Zcç=}ՍklE?"b:XѵY7jߺ"ljIPˮngo6rwz+AEpiG_d3th&BE?E!0>M/5`HO F+ l/QGQ,g9W$6ԟ3㑨hf,T1 {+1M慓Yܵh /lof5]>.m]]5&L_Sp9xfEw C{q$2 9vy+b��{5y<n[3wx8r-ԿXXk:A+~F#1qxmT妞+qvF(/W#=r/b"k8|F[Jjz^TIpNEw"Db) r1N,F#u>rI_K8:!-JBf8��`8o2-n c%xrCwvݸl/��t  |z4 Q5F2(fAuP!Drd,p^IȊvKfLJE[I=hb] Y7"d`[')ћHz߹U_!F彠o#J=r���t=n]eaĚv7V=9󢪚%\�� p\?$YEi,Y>,"ii]2r9S>AZ;y&)*(}Z.[_̛N/& Z/AI90mȶsJ".ߟq^}6G���|[8L7k9YM^P?< X9?- >:MGb��otclrnan"Gk&xȊ* g <)r}d^)Bmnz_VqAwRt~Wx,Ee̦o95}Si.VP���7Q##}vw���ڄ4afݞt5lוw\XRrĭx|!B)+Ypo Os7{+4!nmaj e_$E6[/m߽Q3y4Ğ8U؀)Ƿ.2Rk)ug ByFz.jSv�����|qtw\��U]UxFLZ!-ͭmruQ%!0 7>YOQuԾ4N( ʐYKIi[2/". _{l/5\d[(St'﨧 :ڟޤI .Rwf)ZE1HIFAwyv*Gj[v��������aa¹\\M]АiB7e6&ׯDx#q"cBÆI&Y*ysPy(QYm>_6(/stL }{dgwWi O9&_ӱ렜;YE|OGvV<ms=E?ޠ'i];oNH=tW;ܦ��ogKO0iqn [ne?^oZ;MwX!viX=uu=:o%D:'ߞVOw#���U��qǮ_Dܲ z3tdz-%^A}�]w 姝aZ8FT?k`-YqÉU'~%+N4xG!T?ٺx߃We!+$L:Ch˯{Nj7k^ʆ.jZt_ aﰡbb^ULc) g'xq:Yo4hG,˅;1Ū$ #.jX?mmg64 s^.dp57VWIg?#%ĥU9m xi+e [%r/߁i%/>IlAB:Q=z"cKb8䍠!}`$DWgCQ!TeS!339"Ҙ?&3$U,ܻz}Mu\ڷua5Z{ QK7¢3alMXA} 8Tt���'XcԘ�ρ2?jb&5v3EijU/PY7fIcy\|zU/k y掕tS߽{\Ÿ|D4s5\vk 7<nYq%8EO187x+/Wl)&r07pNpq{(xe'>IQ*쟸fcvB`uй?+0#|}`hn+tG[Ó^&Elm;<=wo< h끨3aA|wʼn[C=G~ɪ>(r!N ,x?6 ?1}YP:FqKCI$9p8F/^uoĀ).}ϯ}1S[f%%}0'?ixϟ|ɗo!lGj;���B] ;(Q8�w;*vT4 7USD1~u+KO:]\~v✫xͷ&Y7)zq H9sU]um 6;^ 98v8zPjB`(_8wH9^"�� �IDATzh˙\+Bf(h["tG׍!-w<SuѭZq?EY=2.~#/պR>4Ib8zHvg;l$nkdo]39,!%",)A<c$mvpjd_ĦLK@Oۋp <fAk{8ʼk58Ϋ, ~7kmv\8]v/MRkjߚkUW`XڗaﰑrgXd^}qŶy/|V1wNK3���fI::::::=�t51i ,0o9xYvG5C)m!I#cꜬb.B4h4N0Y9)/*2 aaInb }t4K''3C/8;\+L'g*Bts2_sL x롉mY˸q#.:3^lCe&L˜jjqPuZ8JtBV@#msQ?!n/[B!jk;yN+YMGB$)i&֘>Q{um?ӎkIŠo'7#א׾4}c_%?35!>S ϨBurAO>WE g���!D0giaʲ#�t9Ab3XnT=zډ7߀B~aa8B8Nq4 v!)p8\ޘ#QDqv1+qї?T߽|<tB{Q:D1drW EBu1OuG6 0PNHi<\oQ  ۋ`,`$RxWCvqF1ϯڃMOYaRҫ{3cf&%ZgJDq*B:?��Ã):^}vTLZ0y--KTchj+(Z&qbg!lx"No8 8%t&8K7n^%8i (>Z<"kmqr^HĴ4KO'C98MI({`Ӏ ~^r|ͭ)/ X |A]\!).hyۮBTDDp{ԯ!nN?%#53ҳBrLZ+_QC\g :~uya Z#JTtg���0G~~{%)0ԥ!hCݦ]w:>;'̆#\܆щa]:_k99iqv+/^ywŔ;~ =A#Η NȪ(FD·ںz[ݴΎ_.~!؎::T6_) RQrsTHJ:g!T?i4M|Hιey~B &7vǡ)ŻS3u4l}|AH\;)<<϶ a=jO!"b⃸P'Îi�&0sֈW7v].oˠEz ̆3J `nc( >zlWW 8NEHG`���k�~ vƚk-w piG_d3tht8?z~P#k 9\7Sŧ*c%c*a n.T!am聜ܘtͦI0'B tKxw\"vLi>FSõX6K\'sS&!tw-Rk0n'_dEg#{3;3[h]]qJ/56_<btrML6ϰu!~BTD=Dq{뇢~:)<JwѸYTYCΝPfak"[Oc/Qϟ"+W8NEIG`��(АOFc{~/f?n[}A'YOٮ=4$trJ̯p=ǩ8㢱tyv �ѱ},FyLYNJÁ{��P߻˾j"K!ݿxdW��ߞ{O_Ck媞?yyQUMYjQ.W��w#f順n *bv˜&N��7G_twǀx|ůsdZ|t\��{ڈ(_{9AA`,5e{9oU{؈SFKEIIisx^WԕgJ+\x]u8b{μT^fל<1PKAJRNneĎ2AWF`m, s8TMQNFJA{Тs_@[i|]5%y%!m[,ϊ;´p�~l̑w ?5T$m g*�Suk) 6ˮ]ZfIy~J? "Nne$c֑ B[z{K*=o\YGfM=8[M+e^v<<]V;H*|_Q}dZ˚%^8/鳿EwR5���uw�@O/V W;e1I^7S)Bd~g>H�&!;HtX9l('"vY~VF(*THO6~�$n6<;n2]qdw<\ ze`Ȟˆ.e:u8 fuǏIO}-I6BDmO=] $ DWQ/[%H\X 3u\YblT ~!�������~t͐n5@|(*˯h=hw0@blJ*F׊Jk0tq !bj.jF_tg}P|b8QtsH+k>vn8{�^Av;#?mnvh+-϶ h+/ gkuaaL/A���Lt-*hͧK3gfeeeee-*1#Lm~^iDYi9"ǤYN'1)S L}QHij}G.|l%1Lar�|𼈀"Jz}G iԹOV닏s &i2sHWvu9߶^Zg孳r'JO/`v7A}��T])Lq\\u|}rbGAR ^v_Ľ)%r׍=E6:0:ɆZKI+ Đճ2kjy/JX0ً /轅>y}a^ivr]Q�4%W8JhcQ���G]soE'7^fگ^.{xtݜx`IP}#te%$d4@ >^ '_b-Ա`6 j(C)996N"b.k͵071*/ǷT[yfP"TY'YqaW8xV~jlik_*3BV( eugzV-x,RW4!G\@ć'ʿnͣè9[,mIGgהTz8)LJ܍آJ6sRKxaSV> $v6LLvۛqa.NJ  `0 Ä̠ f,1b+91eը+@OBDg1;5RoDq KEw(B"i6錛Dn+~!"* =|y7>'/*"um;h|'=[M34 E8;_SCgv؞��G8_xdw;Sq�E##΍:ND12fR2bO4=KY !eo,/=hN[Nǽlٷ+ u`]Tr.xi(=W#_.2Rv$}Q FN>IK;3;HK)8dx *9. KNJǬ[Uy~8OJ:Y#}<7FFgكZ .A]'6.+ܔ6bC7fi)=qOv *eT-u]O^i>׋R}8WzENa}nVQo7S4y9Vd홬ԗx֔%/C72,zn_uȣ i]z;Wk5S#$c7~W*JWɂ'_EuV($Nv(P��Z\TC DTm;V{0MOHDcjǿѲj}~ж \EЕJHͣM54E6|XbֶYkX v%SE0!UEoUBP.u[]omC*˨Bv/km-Ku.gՐ"֮<PfXK˧ڔ%&d4?ޣF(޿^J #ܕruf"=CnC?C:srk:mI<zѯl=͢De1Nk~`T>Ϸl=kZ_>Z;oCքCCI?7tW>Vf˶ͳlC?c'Z y#! &_BtVG��d~5/?jQǎ@{iZ[O͸qco3-uJvgaaMfՊ5#5!ҲqC(34L|Ūʆ2P_Z=̴Laͼm…BOw7N T n34RL/$|NoWUՙ!DǪ+ D! 7Wٻ%fD۞ HXfaD5Nڮ7h=cEP9޾wKZPRSe{=;<P2[>}5[hhOdUF &]5EqC���?l)fRvqiiiܤh3:$� 6o?dN!s/-1!֜A0m2ߚ?߇`B&wDmw~`6'po|?BxȤś܄\*&g(Zy~,݆KF]*w%\ŭOә۱v yC ~\ُ74Ys}V+S7GWH i~Ἃ/`'e׵)GZQ2_FdM'L2yBtV&-*Nv��g󃍮�0)KkE8١"jVCX2~xf`qS0M] :/7>{ CxFJjݗwr_ԯ_U]CGN!){65'S(/ 0YMMw/ST*@zpkW@pш˷n_#ޗB.N'ADgmWӹC] Q}6=ińEDPMu Bxa^ˣm/~{oEӮ\_8c{b-u cg&BT480b{wC]dl} d'y��]ڼx,O06o$ef&dž\ᤏ(ב7*"tܻA*Ć#ϛeW]zr{ƳUC<e0iGMiux.ӷs~/l\v0EAXcen:nac<(' +l5l]C.]EC % ,kZrgmWwVdm7pu'Vͫ/^Tb{/~M5kKɴC98v̭ϪgO_?5pi9o_;i<,c3'o|08V7_uV&):Noq��wF�<X润@+Ħ~& 2/̶74lZña1٭2c1DZz!$dbzK:6crr]J{te^f?Q^.emsFٙY, |򢯅BHt@@nu N 6K̃ X}݆R g~"ڳ]Lc:'dDْNqכa`͓۳hƲߓI1 rH\m5I0c_Njj&ゴG:61I엚m3˧ZO !3c(k90on!KC9ʟC7W5DSK:O.IhhՎ $PIF��|8<540Y|N]�DDE#KwFe`<yb Z[�#Ìɬq ��?����^MYaV{ba' ��������x>gui}/���w�tZEw?-jr�@G[vUWG���|c:3n?�z9OǿߔttD�����t𚌋G 4w#-�������Յ~PU =_!nf%���������>pt`KX w co./%l۝9 'h*)( 6^va YqIEAKNRw!q>Fғ."nՊ{jIh9?Vr q|L#C}uDWp7&2RrZvs}XڢdLy!"?KCso{Q�������@5MyԱlDP7n~w#$7j YvsI)مy {yOޟ#/vyμ3ơ;Тpnҁο**+<Jr !?- M{PݽA*[?dF_<W&Gsr/Ztءp�������\B-vTBU/Fr\8{*M֋ {CxʥW ֏)RSW{ W0}8q8ɆBg8*:eOs++5pWLH8n>6F+_{Y�������=kt@|(*˯h=hw0@blJ*F׊Jk0tq !bj.jF_tg}PlbxWIKf[-XyK������;ѽ !ECsir y%yW4ԦHCe弖=&r:Ɇdžqgq_#8)WS|L__V8ѣ�������^SN-s}㸸߻#QŎFL N)U翈{SJ D7{ 0<Pm?N'q):ɆZKI+ Đճ2kjy/i*fȯd^yee������9y ᷢGƴ_\0y9V!FJHh8=_92[}nݳٽT{O1Zcm^AQ RrJ=zMX\�� �IDATs<m KEhYԿf,{>Ўr4 My;m˺��������i1c ~?hSDy-}l.}wSC+DDE#:������~|uԦD'iAN1w��������Sˏ:oB\v9<vl�������]Q��������]��������`t ��������t��������]��]��t p��������(]�: QpY6r .l0iEJmŝ]ڷiN:4TAA̋оwݭr ۙ@Xw/ -o8��@00Qq]kBd}Z_||pmgWǞ<SOO8ȩ8\Ǟa4צk5k\ ~#fs"Rg_Ee+ƉS#Y|_$M{iܧ�Gf{Ӂ}K߱0)=$EDM(h@5aSC+IH]׿%hl~+1���ޣkn->߸O5_;O]뇬O;6!!vk {GwuLjS{rn! !DSz&ɝ:0#8q M{IB'K~7f-%1/p)є\^(AwNQ[NJRB>{;F<<V7q;U..,Jyͻa$hQK��]t&2;y w#wV9[gLh7Ii֐ѤML5tV_iJkێ3KQ Ն n{S4N0LXqc}|X-d37m<CNu?wlyadq.}aڼI.jhySZvMcq 9fT}gz;޽)ʯg~~:&n>3BV( eugzV6ăM0 nrp#JƚTߞRF3kCY+Kk߻JNL)iBDg1;5Ro" 8 ctͥ*"0q58~\6l(>5JJocBU$_SZDXRnOc:YFkUCdli-iT1-4Nr|iB%g8ɋHv]-~ğ `Fu{͋8[Zg8vy,RW4!Z4r)z :yar%90nRX88eXDس&G.SoBg_ oW/��t.=xTU)߰b.nV굳ز[;Wk̡[h7CD>L'u'vظ ir M|dbzlFG~aKKy~Gt)Ewt[iwv) ܙJ͔h!ɚ|NQ]t8Q{S׍^N}m5*7ePdy돟`<biս\C% '?YINj]]qmN 9r Չ>z!&]z/}a 8V '6P q2LGʭC+GY!T3zQ/^E-:7-$V*)J:9XERidG!<W&N 2nͷ} ؚ&%d4ir3B2zRBTQox?]ׂ ݔly[C09<ƭXٗ-`ǟ>u4vE5y勺]�ϥ G ʰH' 0VMRʦn&3ƹq>V+)'!&8|ZB|GX*)*h;- "č1 u֑_i:/ hj.4Ӛ}mpUy) 9-9mvč1Xvt$2J-Cϋ ӒPw|}55te¦)h.p:KL^PiZ>|ͷqQy:m=Ǵ꭮al?ae'_yوSmq>h}khx" h!^x!d`Dr+ *jZ'>DR2R Ҥd#!Ŭmk' S4u]3ױ$Aj'6r؉VB^Aau vL'3i fjRf |ɭiWhʣjXڣ,Hd5BR!Tq宔5g.;nֲ \R|ޗZukkDBAJ9m'h?&'=|ٶy}'$U"~E5hXJUPSLrѦVm"}>.My̒" ҷ*!(#aĊ+G',Bx6 ھu3ivZv ~|x<;_S6/��t<tX6"(/=n4FZQIn汉m~M:7}WEe~^)Cdtaz^a^!'�mahߚ~{R~va^^kޓ \51ciIf-.s_u`ԏ9fOy]c^I+-py+-ff^EZmOx$jQx$VE䔕>ؤvyۖxvPHuIwCbd mFN_hDf7=j3B&!)UWVUiڮ _̔E*l㹍᫗ ZИ@ -q(;4k8N'^'=RCqT&4j[RL0 !%,0jkjU3bE:BalnO)dq Y޽^PE(qW7&BćO 7UfiW4YsK6{k崝2[>}ɧQ@I״\q3BSk$<gZXTi,SnS[]/xfZdB0V\彿t$ 0{v7_Hx?>wNnWm_��6 QQabSVMRQCB5E0;~lNz{!ur1Sda>dQEn'!D޳@NRsDl~LDw7Y/.$UtVr W77VjI°l`I%{RfL2a-'@hOxd3 ~#aj֯qd,PmB'P~=0I3oU`<#>fO991oUTbYP>-/}{(S<A&#/JKJ++)E2r2j>}qD[hO\Q cDQ7n <?Xsai_q Y U^yJ[V qjgM~Ŀ]5l#O6o?dN!s/-1!֜%H?Űֶx<'PmNMOc6d؊laZw?q|xy|`n] п��G Yy#8MAYPTZQIax<!<錏>Vֶ}v%p?z-x޻؍vڃv s+ D_r5ba/Z3>\�2Ixxa^!KUcf]_Bm_xd"jc [EMC~!,5>"6ɛ8OYp*Gy"ӆǓ14M_<-YXf+X,wuٲztAC?O={H%W+l6a""@(^n|BRWԺ1XMUM+7oˆs9{SݣO[~E9dyn%n*Npш˷n_#ޗB) GW9l -?:z|IBH԰za̎=JIYZk&?+T()MMN4u5妿H_ͫ4r9B4;.ӣռ%+<O"= oG㳠ZǾ��t7t-*Uw~n>M`ǞF\tK㧱c0(VFgfeeeee-*1#0)S L}QH7*1Y/`Ծm!JF#x_FZCm_xj^bJw%=-B%yAw+JJL/+}Y#ّ/>')4nN;JY^]Sˡ">l KHL =^Dl1GDԕM~Ωի[_b^Sf(=I-f^zxtE`℩B&fZ7BxaS u)hw7PUʉ G7 ކ_Pha= $>Ϊ-CV6(dqsa skϲ+sՙsk~ЎUi?߮bO_?5pi9o_;/_yݕz;Y& .71`PSjϳ^Gnpd<F]K3Snoxjs#rxyQO]Wܽ~#IЮ7< O{kq^��t5rjo{:DT>l VUq K% dWŤVNXFL N)U翈{SJ {VA!ge(_stOd~">=?L1kc0zoCHZ%q2_f!)y9Zz"5t?{U}9/<w}]i}jս5ZaC%ԇ" NUR[ss巪kW17]\ (^FzN+,Zc0%L7eK:QL5dvWF}WU7VkG~þi KV^)"dn9ks磏S|n^<Ƽո)!s0uIn[!t"9 |hqW#[Ա;xhch_0/Nqכa`͓۳hƲߓk%oKnc,4g_9$y( (duJ}}/: dmAFV'ZoҮorIB=|&8ᦺ, (璹enkʡ[ b ;Y qLlYQSd_f>գv%d=2`h/3sOQ/GN|SSGX;~n}m9Qa*IҞϷ< >I?R8Y ��i<-)-E9z8-HՑKnMy gƚIJ({~祚/ԫ 'ns.Q`^o+>,{.Zi9͋6n9HIJRVQIxkHy{J+m Ǜ[u\U-̖3'4V1pK.+>LCȺ)[׻+W#yW{;'єQ=jf-A<TJ7h+@PQQF]N7<C_hܮP NW@o:۸���\.5],>~�Gq>CNYZ�t\DT4Bt:<൥ ՜:͚-^MYaVIӞ_ |x~X֖0s��Bn ;~n׆s6Yn ����[0�.E[vUWG@\tӢ/���~ 0�ՖW%]����- ��-'��������`t �\@[q#I&*0htyuj+�:Vq_v'UwQpY65ɥ6V¦1 Ø_Un@2::]}���P5�?k]9p!"-_|}cNfoA}/y`+ƉS#;G$: [)28U4u=3 ��c�7+!]$Gm9)\Mq{�[_>QZʯ\)zMgM���m׮Y)[m7A1 Ä]ϟd_s7!.̖7J=5?ԆxiaMgfGŬX>HYR\fnۆyDql1>w.1KqKTDUaXѵW'h-8j,-v8 GxFJ7[EqaC Pm`7kei{[ɉ);<&Rm7]#Sm^dBIGgהTz8:i]#VX*/SD?N<Dxns7c6ݿB%g8ɋHv]q-Gx3yNw6錛D=Vi[ius|Kەyo}bSxZk)+ x헼=> ȷ^-M,&WS�� Y <#8AԄMBU\ڍ^{Spvh'QXcqS}qnҥG&l^%!D,xԉ'\9ʹ?8V '6P ̈o9%VVIQ""J?`={2j}ѫ«BEӉ{'9?4[ڤ&<^Nbbmohыb7~*2$n"FDY&I7,\1D#s4N<#D7I'Ĝ$N/߿O?oö ij_0L$fD &.q?4ZcsEڞ7U8_vI.skB|+b?Ww&\u!���O?V{_k?&BH=peWҗrcZVǐ}ASW6GY;!WvuƄFF>ܑj֤#$BYf<H1@a7̼ZM*ϡUǰ<,rMKDz97Cy-Kg.;e-!uk0Y<8B?΁Q=!:1[{o}9Y0fXKd|͑t Gx:qD=:B Ty<d, xjIS7pq024Jh۞{lWtǐ햦<fT} /~[%eGm=mڏ|>#׎NP5^���pZp8#I;^{_.m֖u�8nWi0 0&3jEQ~!!! .49}ŖUFCB-+ gfpu{_ueiw>fQwh@Eq&OXUUQYߟYX,aaXLT[SLRE|rmƍ M}iaCI@~ fhV^#k�� �IDAT!8޾wK>WgE@rġ偎BtUmu&B$$űjVe }L Cgʛ ,\Xio;'oyn>{j 5Lnup*H~[z0Vp��@u&2;y6x�] ϸ !D6Ť>>I oo\ Ú=`"Nk}ǭN4v'.`D`a A6o?dN!s/-1!֜Z-_*q 5 ;/Jjy@њ|eWߐ�CڞlMˣHٗtzÛ)3vծ<Toh87q--Bf"?.415���At.=xTU mu-tir'CX2B&S:?G":ї[#(6#EJjSS2( %0^n|BRWTIL~WdI*"{fm%a^4<Z"U[CKCk<n2&s/N>AD {>\[xs!&,"jk _b2/ddԗ}A&Z/ܲ] i)׽yFQx:z+ǟvv3���.`%,VE;ɐ1Zq|w_M9 1-6J &Bs8\$-6BBGHxZ弝h}- uQĤ˵- lX;JGUIAVAiQP~\:rR2z^;x&[Z]FBBVz[Mdޠ%'y Ig}=mkdf_[;DU^FJBNnοJY^]S!3//~#)3396r/{ّ/>')4naRΓsϯ-,%mWJ:w@S{sn.<oeTCyݕz;Y& .71` IJ+sՙsk~ ܖ0a[-0s'h͑A` N]u>6-~G Y<YxH&jbq*F?y,c3'oTa˂2 ~זҲ=7oWAP(̔[7M|PWO?//#৮�� G4SI6&؛>X?}!R~va^^kޓ8:NCX H9PM3n42_heSq¼X"nM*ߘ9 " v'~̍?h$Q]ʒJbUDNYYMj'mCb;;?m)25 AOsдq \51ciIf?嬄nSX|#QBos؅_fq_q6WXDnnr4sZ`jKE9&B0Xl%dbrc[&{ɯ`dk&ގ.w?2xJOٱgrO)n1Њ)dd)1-: dmAFV'Zo"0)Q3t f@=еd7Tאe/SCIC7 ErRS3=ґ٬,{|UüLzO8UH )xyƻdPmͧ=7kWAKnGW eqZx1˧ ǟv2;QbNܵ��@ _>b,>~�K�w]zsbnc=0P1;,ccW@[o!ovuBҟcWK5]?g;:y{Ҏ*6)p/#n6e$oiYMODx ucJ)YCn?"yO̫8ޝ&| !č]m<𿕙7f(|677L-򷶍BekqN}~^}RStXas2z:/!;1fu#h׻?c Ӝ ;s'"*!(_z];7ad�^G/`qxj8��u>!E%O#Gx޻؍vڃv s++ Vx[t%j.D.''ЖaeBO'rS_`9QtsH+k>vn8B*y ?kH8MIEE X*odI/yE,4%OקHQ? n 1?KFl4LEW~|8-T<p˂/<[4xXW�����@t߻nDzty%yW4v�öek( Et NcV^(^7z9 Qmȅ/ ;i-ev}d&#'SWJ E !+SuJ*9<BCw%jJtLmrHȜ<Ef!n1)S =|㾨GqR_D'.Z6eZ �����@w])L'h>)8BqoJ l_rcOp{_xwב_5;c'V̺b4THx^LjW0tu||p[x>UM~]_u}o3 T>g$k!(w\jq:r}!|%ĤrbY5<e P7%2/1d@w@�sO~i���@ukל[V#{C7X[7BwfA5Q2BOJ޹OIBtCa"oZxOf~Yj!v?3ob.k̞ka&)%"g3cM ~kLk8g\Sdڹcndu YjnKLs g%_!h8|kה#}Aq^A).r9,阃1�����vf[>]DWj������v`w6-&:@L v⍹-< �������p �^~y˹MTcs �������wM$߮�������~zp��������(]��������k��������`t ��������t�������5��������Q0��������:{]skN q|']턢_Bc1@ ��������.]d\\f'v>R@ t mwbQ��������~nt]zrUV6 7vqC!.BðlsQ��������@tk[beX ikkHIi-dlUsowx!6J &BsEG:Hꯌ4a (([Պ{jIh9?V2BLvڊZsϼCՅMS\|S Q/{2y|Ӥã ^7xⲋ{ι]E^��������] G4SA:)^ KK2/tTm.OnF-a8\z?)w?0/a5SFx Fi$2C0=0/G Z&؛>X?}N| y;!UAIaFk].%0Eu2b{S'zd"!S7'ĠN�������.խht\͍_7m }1‰ \U.8o^\HػDmO=] $g3u\YblT@! W0}8q5!+UX kqd\:Vpi&^ZBSpVvăK5ѿ]'������ڣ{\h ͐n󚦠@|(*˯h=hw08S[Oϙ;QtsH+k>vn8Dt!E%ن :pu-0 c9!^e Qj!!+ɬ__l,Ogbͦz[M�������ԭGaRN?LO qӮEμ|4C^I=`{|fVVVVVܢ!5F\tK㧱c|r}: 42i4kXGQƇwéj3-OӺ}곐 /W �irt 02 h+������FxʩS|!{VA!ge(򚝗={wD~"*_~}h>)8BqoJO9ŅF2 +}vbUk!xsETGH'&z[BtI3m_~:뗩0 WV"F>7p&st9VF:ep!"R������L]soE' Dme %ԣ8ǃ4P̴_\0y9V!FJHh8=_98TeM@fֶ&T8FIٳAG`:U\/"”F6m$B:D= 0ν_GSrYx4]�����#r8g8uMD�!n Kj}m�F99_;}ۋR DϤfٶK^Tv_klσӣTwY?zWT$]:os<hfׯ_{u}쓾G) z;d7Cz܅j~{s'žGSJ5m=yw|:������o5@/prl ZNĴeHݧ!ĉstA0EÞ~>uUUTUE^W&qǬ*8x)UJNN7bMjӼEW=sS\o\>j7{M5�����>躛&+N}t{@bM̽W\K:;#bֶYkX \(veeΥ4ڻ<oS`䐢CLU1tLUR[D)L#MtR+ ҭ\XĠA9sE1Yz=1}&mSmHܪBݝ:ַK-4:nw'bʄ>x ��63Áv3��������؊t ����.9�ںO3Ov ���@p?����3���������[5|fxNn2����hVw5#SO����%83�����[���������[���������[���������[���������[)[������Z6+ͦƲߕ}_޽]���� 4i4Z !W5i{;M׆o6{*dUk ߦ3mk����mJ1s`jByb`!JYݭKu/w{P#SUwϞ̨#GKҏ^m-6Csn`~VCG/D-NCs>x^}тzGvC5ecKc7}oh۴1}<"o/ֵ|����gMqy+)<U OU`jlGkҵ➤%Bf:qq[Ӯv׾߷o⣔>U?[2%m =a׬+\D7/I!)?=nhJҞ̻_8ՊrJOc5J7Gudgee]n+3??4/.e����B/бKpŁ;v /SH3}/( 22']C{IMZl5/;~1-{܊ϯ֪,jsG&vѠߘČzgGKn~jhcɥ6K$3m3GM OR6.o fh˲P( Y$CQFy26:驩/Dek Ǐxf]f����퍡hnRm~c`.ڋ^K1TT6ъ{.yn;7 ӳ9g-Ko]JvϘyI'!1U9ʖfY!03V֮AY0g884=L!t_x߼Uy%[t-r5G—=wːƂ] `@:kCB\cږ4U1:ٞzK6i)Yvw:~рN/ߴ����dI3+BưsMU-;¯Tϳz|$LW+4ή.,F+FK[:F1O4fΔ^g ( vCYp>-?zw+f#[o,8"I{OҁC7=CP>y;J¡SD*JnlI>]n&ipgf����Zk`mA1f;Z$Wgmupk5?_r*$NQe.\j gT>xlhBs+/| <M(ҏ8Yƾ%IyaYFIa,`Aϡ}$! S>SrNK^|RMd.Pv_uc2~=*5yPyoX8q&NNy^/M5'^Qfr3qv����Ў,mֺ(!(!| vv"]+B )טQ}!*84XqX^K%FӰ'eq6M2G6BȞ!ޞ=g-{\n<8.=[ŗ_\0ǕO q=Jaw堫~iW#Q(||t*o[.䖲6wcN_mW<ll݉澑޳���vC̹dCE(!9uf;Zwvώ/.M?ٲు}oISersӉoܱeCHIwƤ1];Hf,pURZfт#1lW]2֨s!@YT8* |=/jB(TBUF66O?dl$t"`nM](ӸuFwO/[57Ҵ-=;����hd/!(!6fʢ$mABnw5r,O;ƩS)Cs9dL¨9_Yzyf\cJjI^nViЈ{~h+ߝ:q?p]ak\;0d׎[5k9v k<k*I_RgX.\s/^crШ%+aR9ౡI&um\{xc߻;y>8"6˾pnӓfN[#d���@Dͦ+ +x{!73秲>qNnn;+HW{}O?zYԵȩӣ^��IDAT}rrswɴE&����5{זq 5+|T ����v ����@+#]����`+5�����"]����`ڙ?ju:b^ڵ�hcJJ=Rc%pgXI�DĤk4(Muz}IqƝa%"??;3aJ߿i-b%"n[Lt ����Hװ8z'S{ں�hXI�{yj͕˗u:iNnڦ>?gYi]�k)ʻ|}}t:V�w@[LwwKK]橧F`�����KGb< E�����mn钒bNv}$�����XB֒/_X����IENDB`�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������pan-0.162/docs/manual.org���������������������������������������������������������������������������0000664�0000000�0000000�00000122633�14754127724�0015242�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# this file is written with org-mode. See https://orgmode.org/org.html # there are org-mode extension to popular editor like vscode. # internal links are broken due to gitlab bug # see https://gitlab.com/gitlab-org/gitlab/-/issues/251204 * Contents :TOC: - [[#getting-started][Getting Started]] - [[#to-start-pan][To Start Pan]] - [[#when-you-start-pan][When You Start Pan]] - [[#usenet-in-a-nutshell][Usenet in a Nutshell]] - [[#description][Description]] - [[#organization][Organization]] - [[#article-headers][Article Headers]] - [[#binary-data][Binary Data]] - [[#basic-usage][Basic Usage]] - [[#set-up-a-news-server][Set Up a News Server]] - [[#selecting-a-news-group][Selecting a News Group]] - [[#reading-articles][Reading Articles]] - [[#posting-articles][Posting Articles]] - [[#replying-to-articles][Replying to Articles]] - [[#downloading-binaries][Downloading Binaries]] - [[#groups][Groups]] - [[#group-views][Group Views]] - [[#group-actions][Group Actions]] - [[#the-newsrc-file][The Newsrc File]] - [[#headers][Headers]] - [[#header-view][Header View]] - [[#header-movement][Header Movement]] - [[#header-selection][Header Selection]] - [[#header-action][Header Action]] - [[#body][Body]] - [[#digital-images][Digital Images]] - [[#body-views][Body Views]] - [[#posting][Posting]] - [[#actions][Actions]] - [[#posting-profiles-dialog][Posting Profiles Dialog]] - [[#post-article-dialog][Post Article Dialog]] - [[#tasks][Tasks]] - [[#cancel-last-task][Cancel Last Task]] - [[#task-manager][Task Manager]] - [[#nzb-files][NZB Files]] - [[#scoring][Scoring]] - [[#scoring-actions][Scoring Actions]] - [[#adding-scoring-rules][Adding Scoring Rules]] - [[#editing-or-deleting-scoring-rules][Editing or Deleting Scoring Rules]] - [[#advanced-scoring][Advanced Scoring]] - [[#customization][Customization]] - [[#behavior][Behavior]] - [[#gui-composition][GUI Composition]] - [[#external-applications][External Applications]] - [[#article-cache-size][Article Cache Size]] - [[#news-servers][News Servers]] * Getting Started :PROPERTIES: :CUSTOM_ID: getting-started :CLASS: title :END: This section provides information on how to start Pan, and describes the Pan user interface. ** To Start Pan :PROPERTIES: :CUSTOM_ID: to-start-pan :CLASS: title :END: How to start Pan depends on your desktop environment. - The GNOME Desktop Environment :: Press the Super key to enter the Activities Overview, type pan, and then press Enter. - Command line :: To start Pan from a command line, type the following command, then press Enter: #+begin_src contents pan #+end_src ** When You Start Pan :PROPERTIES: :CUSTOM_ID: when-you-start-pan :CLASS: title :END: When you start Pan, the following window is displayed: [[./mainwindow.png]] The main Pan window contains the following elements: - Menubar :: The menubar contains all the commands that you need to run Pan. - Toolbar :: The toolbar contains a subset of the commands that you can access from the menubar. It also contains two textboxes that allow you to limit the number of groups and/or the number of articles displayed. - Group Pane :: The Group Pane displays a list of all the newsgroups available on the server. This list is split into two groups: Subscribed Groups are a user-selected list of favorite groups, Other Groups are the rest of the available groups from the server. - Header Pane :: The Header Pane displays a list of all the individual article headers available in the selected group. The Header Pane is highly customizable via sorting, threading and scoring. - Body Pane :: The Body Pane displays the text of the selected article header. - Status Bar :: The Status Bar displays information about current Pan activity: - Current number of connections to the server - Number of uncompleted tasks in the Task Manager - Completed percentage of current tasks - Error status of the event log When you right-click in the Pan window, the application displays a popup menu. The popup menu contains the most common commands for whichever pane you clicked. Like other applications, actions in Pan can be performed in several ways: with the menu, with the toolbar or with shortcut keys. The shortcut key for most menu items is shown in the menu itself, following the menu command. * Usenet in a Nutshell :PROPERTIES: :CUSTOM_ID: usenet-in-a-nutshell :CLASS: title :END: Knowledge about how Usenet works will make using Pan easier. ** Description :PROPERTIES: :CUSTOM_ID: description :CLASS: title :END: Usenet is a distributed discussion system. Using a special program called a newsreader, a user accesses a news server to read and post email-like messages called articles. These articles are then exchanged back and forth with other news servers throughout the world. In this way, articles propagate from one news server to another throughout the entire Usenet system. ** Organization :PROPERTIES: :CUSTOM_ID: organization :CLASS: title :END: Articles are organized into categories called groups. In discussion groups, most articles are responses to another article. The set of articles which can be traced to one single non-reply article is called a thread. When articles are organized into threads, it is much easier to follow a single discussion. ** Article Headers :PROPERTIES: :CUSTOM_ID: article-headers :CLASS: title :END: Articles are routed around Usenet based on the information contained in the article header, which is the first part of an article that contains information like the subject, author, date and routing information. To save time and bandwidth, most newsreaders first download just the article headers to sort and thread them. The user selects an article of interest from the list of headers and then downloads the article body to read. ** Binary Data :PROPERTIES: :CUSTOM_ID: binary-data :CLASS: title :END: Usenet was originally created to distribute text content encoded in 7-bit ASCII. With additional encoding programs, multiple posts per chunk and other various tricks, it became possible to send binary data through Usenet. Groups that allow for binary content or binaries are called binary groups. * Basic Usage :PROPERTIES: :CUSTOM_ID: basic-usage :CLASS: title :END: This section is an overview on how to perform basic Usenet actions with Pan. ** Set Up a News Server :PROPERTIES: :CUSTOM_ID: set-up-a-news-server :CLASS: title :END: When you start Pan for the first time, the Add a Server dialog is displayed. At this point, you must enter the connection information for the server you wish to access. After you enter this information, Pan will contact the server and download a list of all the groups the server carries and save it to disk. Refer to [[#news-servers][News Servers]] for more detailed information. ** Selecting a News Group :PROPERTIES: :CUSTOM_ID: selecting-a-news-group :CLASS: title :END: The Group Pane contains a list of all the news groups available on the server. Scroll through the list and enter a group by clicking on its name. If this is the first time you have entered this group, you will be prompted on how many article headers you wish to retrieve from the server. You can choose to retrieve all article headers available for that group or limit the retrieval by either quantity of articles or number of days. After making a selection from this dialog, Pan will download the article headers for the selected group and save them locally on the computer. 📃 Depending on the news server, certain groups might be "dead" and have no headers available for download. After article header retrieval, the group name in the Group Pane will turn bold, which means there are unread articles in that particular group. Also the number of unread articles in the group will be displayed in parenthesis following the group name. It's not unusual for a server to have tens of thousands of groups, but usually a user is only interested in a few. To better keep track of the interesting groups, select the group name by middle-clicking on it and choose Groups ▸ Subscribe. Scroll the group window to the top if necessary and you will see that the selected newsgroup is listed directly under the Subscribed Groups section. ** Reading Articles :PROPERTIES: :CUSTOM_ID: reading-articles :CLASS: title :END: After entering a group, the header pane will be filled with article headers. The header pane can be sorted by clicking on the topmost row of a column, where the column name is located. Clicking again will reverse the sort. The column that is used for sorting will have a downward arrow after the column name and the entire column will darken. Pan defaults to showing collapsed threads. Only the first article of the thread is shown with a number in parenthesis indicating how many posts are hidden. Clicking on the right-facing arrow before the header text will expand the thread, showing the hidden articles in the thread. Reading the first article of the thread will also expand the thread. The keyboard shortcut for expanding threads is /Shift + →/. /Shift + ←/ will collapse the thread. Clicking on a header will download the article from the server, store it in the article cache and display it in the article pane. The article is then marked as read. Read articles are distinguished in the header pane by using a normal (not bold) font and by showing an open envelope icon in the state column. You can scroll the message in the Article Pane by using the scrollbar or by pressing /Space/. Whenever the bottom of the retrieved article is already displayed, pressing /Space/ will download the next article. ** Posting Articles :PROPERTIES: :CUSTOM_ID: posting-articles :CLASS: title :END: To post an article in a group and start a new thread, select the group you wish to post to in the Group Pane and then choose *Post ▸ Post to Newsgroup*. If this is the first time you have posted an article to a newsgroup, the Posting Profile dialog will appear and you will be required to fill in some information. Next, the Post Article dialog will appear. Type in a subject and then enter the body of the message at the bottom. When done, choose *File ▸ Send Article* to send the article to the news server and out to the rest of Usenet. Refer to [[#posting-profiles-dialog][Posting Profiles Dialog]] and [[#post-article-dialog][Post Article Dialog]] for more detailed information. ** Replying to Articles :PROPERTIES: :CUSTOM_ID: replying-to-articles :CLASS: title :END: If you want to post a reply to a specific article and have your followup appear in that article's thread, highlight that article in the Header Pane with the middle mouse button and use *Post ▸ Followup* to Newsgroup. The highlighted article's text will appear as quoted text (each line is preceded by a ">") in the editor window. Type in your response and then choose *File ▸ Send Article* to send the article to the news server. If you want to send a reply to a specific article via email, highlight that article in the Header Pane with the middle mouse button and choose *Post ▸ Reply to Author in Mail* . The highlighted article's text will appear as quoted text (each line is preceded by a ">") in the editor window. Type in your response and then choose *File ▸ Send Article* and the text will be sent to the default external email application. Double-check the =To:= field and then send the email as you normally would with that application. ** Downloading Binaries :PROPERTIES: :CUSTOM_ID: downloading-binaries :CLASS: title :END: A binary file in Usenet is usually composed of many smaller articles. Pan automatically organizes all these articles under one special article header. If all the data that comprises the binary header made it through the Usenet network successfully, a green, full puzzle-piece is displayed in the first column. To save the data, select the special header in the header window and use *Articles ▸ Save Articles* to download and save the binary data to disk. If the binary posts are corrupted by missing or incorrect data, a red, incomplete puzzle-piece is displayed in the first column. The file may be saved, but it will probably be corrupt in some way. 📃 Supporting binary newsgroups takes a large amount of bandwidth. Unless you are using a premium news server provider, it is not unusual for many binary files to be missing or corrupt. * Groups :PROPERTIES: :CUSTOM_ID: groups :CLASS: title :END: Working with groups in Pan. ** Group Views :PROPERTIES: :CUSTOM_ID: group-views :CLASS: title :END: The total number of groups on a news server can be quite extensive. An easy way to find a specific group is to use the Group text box in the toolbar. Only groups that match the characters typed in the box will be displayed in the Group Pane. If you wish to return the Group Pane to its original state, simply delete the characters in the box by clicking the X icon to the right of the box. The group names presented in the Group Pane can be shortened by choosing *View ▸ Group Pane ▸ Abbreviate Names* in Group Pane . This only alters the way the names are presented in this pane. ** Group Actions :PROPERTIES: :CUSTOM_ID: group-actions :CLASS: title :END: While a news group is selected, you can perform the following actions: - Groups ▸ Mark Group Read :: Mark all articles in a group read. A typical way to read news is to read all the interesting threads and when done mark the group read. The next time you start the news reader, choose Groups ▸ Get New Headers in Selected Group . With View ▸ Header Pane ▸ Match only Unread Articles , the only headers you will see will be the new headers you just downloaded. - Groups ▸ Get New Headers in Subscribed Groups :: Grab new headers for all the groups in the Subscribed Groups section. - Groups ▸ Edit Group Preferences :: Opens the Group Preferences dialog. Within this dialog you can customize certain Pan features per group: - Character encoding - Location in the file hierarchy where attachments are saved - The posting profile. - Groups ▸ Subscribe :: Add a favorite group to the Subscribed Groups section of the Group Pane. Unsubscribe is the opposite of this command. - Groups ▸ Refresh Group List :: Resync the local group list that Pan uses with the current listing on the news server. - Groups ▸ Delete Group's Articles :: Delete all the articles for the selected group from the article index. ** The Newsrc File :PROPERTIES: :CUSTOM_ID: the-newsrc-file :CLASS: title :END: The group list, subscribe/unsubscribe status of each group and the articles marked read in each group are stored in the newsrc file at =$HOME/.pan2/newsrc-1=. The newsrc file format is standard among many Unix newsreaders and can be used to import and export this information between these applications. * Headers :PROPERTIES: :CUSTOM_ID: headers :CLASS: title :END: Users will spend most of their time in Pan interacting with the article headers in the Header Pane. Pan has many features to optimize header viewing and article retrieval. ** Header View :PROPERTIES: :CUSTOM_ID: header-view :CLASS: title :END: Since the total number of all the available article headers in a group might be enormous, Pan has several options to limit the number of visible headers to a more manageable number. In the toolbar, the Subject or Author text box is a filter than can be used to limit the visible headers. Usually this is used to search for a specific article or a group of articles. Click on the magnifying glass icon to choose which header field to base the filter. Only the article headers that match the characters typed into the text box will be displayed. Click the X to erase and reset. - Choose Edit ▸ Preferences ▸ Headers :: To hide or change the display order of the Header Pane columns. - Choose View ▸ Header Pane ▸ Thread Headers :: To enable or disable header threading in the Header Pane. *** Replies of Matched Articles :PROPERTIES: :CUSTOM_ID: replies-of-matched-articles :CLASS: title :END: The user can pick one of the next three options to control how Pan will display replies of matched articles. - In View ▸ Header Pane :: - Show Matching Articles :: Show only articles that match the article view options.. - Show Matching Articles' Threads :: Not only show articles that match the article view options, but also show all the articles in the entire thread of the matched article. This option will force read headers to be visible regardless of the view options. - Show Matching Articles Subthreads :: Not only show articles that match the article view options, but also show articles that are replies of any matched article. *** Article View Matches :PROPERTIES: :CUSTOM_ID: article-view-matches :CLASS: title :END: These options control which article headers are displayed in the Header Pane. - In View ▸ Header Pane :: - Match Only Unread Articles :: Only display articles that haven't been marked read. - Match Only Cached Articles :: Only display articles that are available in the local article cache in the computer's hard drive. - Match Only Complete Articles :: Only binary articles that are complete (full, green puzzle piece in the state column) will be displayed. This also hides text articles. - Match Only My Articles :: Only articles that the user has posted will be displayed. - Match Scores of xxxx :: These options deal with scoring where you choose to display an article based on its score. Refer to [[#scoring][Scoring]] for more information. ** Header Movement :PROPERTIES: :CUSTOM_ID: header-movement :CLASS: title :END: Movement around the Header Pane can be controlled by several methods, allowing the user to easily jump around complicated discussion threads with minimal input. Pan was designed for mouse-less article viewing, so most people use the keyboard shortcuts associated with these menu actions. The keyboard shortcut for most menu actions is displayed after the menu command. - Go ▸ Read More :: Scroll the article in the Article Pane. If the article is already scrolled to the bottom, grab the next article. You can customize the function of this key by changing Preferences ▸ Articles ▸ Space selects next article rather than next unread . - Go ▸ Read Back :: Scroll the article up in the Article Pane. If it's already scrolled to the top, grab the previous article displayed in the Thread Pane. - Go ▸ Next Unread Group :: Skip down to the next subscribed group in the Group Pane with unread articles and read the first article. - Go ▸ Next Group :: Skip down to the next subscribed group in the Group Pane and read the first article. - Go ▸ Next Unread Article :: Read the next unread article in the Thread Pane. - Go ▸ Next Article :: Read the next article, regardless of its read/unread state. - Go ▸ Next Watched Article :: Read the next watched article. A watched article is an article with a score of at least 9999. Refer to [[#scoring][Scoring]] for more information. - Go ▸ Previous Article :: Read the previous article in the Thread Pane. This doesn't scroll the Article Pane like Go ▸ Read Back . - Go ▸ Parent Article :: Read the article for which the currently selected article is a reply. - Go ▸ Next Unread Thread :: Skip to the next unread thread and read the first article. - Go ▸ Next Thread :: Skip to the next thread and read the first article in that thread. - Go ▸ Previous Thread :: Skip back to the last thread and read the last article in that thread. ** Header Selection :PROPERTIES: :CUSTOM_ID: header-selection :CLASS: title :END: In order to perform an action on an article header, you must select it first. Use the middle mouse button to select an article. Drag the selection field with the mouse to select multiple articles. Hold down the Ctrl key while clicking articles with the middle mouse button to add individual articles to the selection. Pan also offers a number of other ways to efficiently select articles. - Edit ▸ Select All Articles :: Select all articles in the Header Pane. - Edit ▸ Add Subthreads to Selection :: Add all articles that are a reply to the selected article to the selection. - Edit ▸ Add Threads to Selection :: Add the entire thread of the selected article to the selection. - Edit ▸ Add Similar Articles to Selection :: With one article selected, add others articles with the same author and from the current thread to the selection. - Edit ▸ Deselect All Articles :: Cancel the current selection. - Edit ▸ Select Article Body :: Select the entire article body. You must retrieve the article first. ** Header Action :PROPERTIES: :CUSTOM_ID: header-action :CLASS: title :END: Whenever Pan downloads an article body, the data is saved to disk in the article cache. The article cache is a fixed-size buffer and when the cache has been filled, the older articles are erased to make room for newer ones. These are the actions you can perform on an article selected in the Header Pane. - Articles ▸ Save Article :: Save the highlighted article to disk. When you select this option, the Save Articles dialog will open. From here, you can choose: - Save Text :: Save the text of the displayed article. - Save Attachments :: Save the binary attachments of the selected article to disk. - Path :: Where in the file hierarchy to save the binary attachment or text. - Priority :: Where to add the file in the Task Manager queue. - Articles ▸ Read Article :: Download the body of the selected article in the Header Pane and display it in the Article Pane. - Articles ▸ Cache Article :: Download the body of the selected article in the Header Pane but do NOT display it in the Article Pane. - Articles ▸ Mark Article as Read :: Change the state of the article to read. - Articles ▸ Mark Article as Unread :: Change the state of the article to unread. - Articles ▸ Delete Article :: Delete the selected article in the current group from the article index. * Body :PROPERTIES: :CUSTOM_ID: body :CLASS: title :END: The Body Pane displays the text of a selected article header. ** Digital Images :PROPERTIES: :CUSTOM_ID: digital-images :CLASS: title :END: Some groups specialize in digital images where each binary post is a separate image. Pan can automatically decode and display these images. To display the image, select and view the article header as you normally would for text and the image will be displayed in the Body Pane. ** Body Views :PROPERTIES: :CUSTOM_ID: body-views :CLASS: title :END: The way information is presented in the Body Pane can be customized in several ways. - In View ▸ Body Pane :: - Wrap Article Body :: Will force the text to flow into paragraphs instead of running off the edge of the text window. This is useful to fix badly formatted articles. - Show All Headers in Body Pane :: The headers displayed in the Header Pane are only a small subset of the all the article headers. This commands will display the complete list of article headers in the Body Pane before the article text. - Rot 13 Selected Text :: A simple cipher used to hide story spoilers, joke punchlines, etc. Select a block of encrypted text and use this option to decode it to clear text. - Use Monospace Font :: Sometimes Usenet authors will create simple ASCII artwork or diagrams. By default, Pan uses proportional fonts for all text which renders ASCII artwork unreadable. By choosing this option, the text of the Body Pane will be displayed using the Monospace Font. You can configure the monospace font in *Edit ▸ Preferences ▸ Font* . - Show Smilies as Graphics :: Change ASCII emoticons like :) into graphical versions. - Show *Bold*, _Underlined_ and /Italiced/ :: Over the years, Usenet authors have devised several strategies to overcome the limited typographic ability of ASCII. Enabling this option will format the article text following these typographic hints. - Size Pictures to Fit :: Size digital images so they will display in the Body Pane without scrolling. Click on the image to view it in its original size. * Posting :PROPERTIES: :CUSTOM_ID: posting :CLASS: title :END: How to post articles in Pan. ** Actions :PROPERTIES: :CUSTOM_ID: actions :CLASS: title :END: - Post ▸ Post to Newsgroup :: Post an article to the selected newsgroup. - Post ▸ Followup to Newsgroup :: Post a reply to the selected article and continue the thread. - Post ▸ Reply to Author in Mail :: Post a reply to the selected article via email. While highlighting in the Header Pane the article header of a post that you posted to the news server, you can perform these two actions: - Post ▸ Supersede Article :: This allows you to supersede an earlier article with another newer post. - Post ▸ Cancel Article :: This allows you to cancel a earlier article. Most public news servers disable the supersede and cancel commands for security reasons. Make sure you are comfortable with your article before you post it to the news server, because in most cases it will be impossible to take back or alter what you have said. ** Posting Profiles Dialog :PROPERTIES: :CUSTOM_ID: posting-profiles-dialog :CLASS: title :END: Posting Profiles allow the user to configure different Usenet personas that may be customized for particular groups. The Posting Profiles dialog displays a list of currently configured Posting Profiles. From here you can Remove or Edit a profile by clicking on the profile's name and press the appropriate button. Clicking add will start a new profile. *** Mandatory Information :PROPERTIES: :CUSTOM_ID: mandatory-information :CLASS: title :END: Each profile contains the following information: - Profile Name :: The name of this profile. - Full Name :: The author name that will be used in the article's header. - Email Address :: The email address that will be used in the article's header. - Post Articles via :: If multiple news servers are configured, choose which server will receive the article. *** Signatures :PROPERTIES: :CUSTOM_ID: signatures :CLASS: title :END: A signature is a block of text that is appended to the end of every outgoing article. Generally it is contact information, a personal motto or a witty saying. Click Use a Signature to activate signature support. - Text :: Type in the text you wish to use as a signature. - Text File :: Enter the location of the file in the disk hierarchy. The Browse button can assist in this. - Command :: Type in the command you wish to run and the output of that command will be captured and used as the signature text. Example: =fortune -s= - PGP Signature :: Choose this if you want to sign or encrypt your message with PGP. The given email address has to match the PGP email address for this method to work. PGP support is an optional feature and may not be available in your Pan build. *** Optional Information :PROPERTIES: :CUSTOM_ID: optional-information :CLASS: title :END: - Attribution :: When you reply to a post, the text in the attribution box precedes the quoted text. The %d flag is replaced the by the date of the selected post while the %n flag is replaced with the author of the selected post. - Extra Headers :: This is a advanced option to add extra headers to the article. ** Post Article Dialog :PROPERTIES: :CUSTOM_ID: post-article-dialog :CLASS: title :END: Whenever you post an article you use the Post Article Dialog. *** Composition :PROPERTIES: :CUSTOM_ID: composition :CLASS: title :END: The Post Article Dialog is composed of the following parts: - Menubar :: The menubar contains all the commands that you need to post an article. - Toolbar :: The toolbar contains a subset of the commands that you can access from the menubar. - From :: Select which Posting Profile to use. - Subject :: Type in the subject of your post. If this post is a reply, this line is already filled-in. - Newsgroups :: A comma separated list of all the groups that will receive this article. - Mail To :: Enter an email address to send the article. - More Headers :: An advanced option to manually add more headers. - Text Area :: Where you enter the text of the article. *** File Commands :PROPERTIES: :CUSTOM_ID: file-commands :CLASS: title :END: These file commands are available from within the Post Article dialog. - File ▸ Send Article :: When you are done entering the article, use this command to send the article to the news server. - File ▸ Save Draft :: Save your current work on the article to disk. - File ▸ Open Draft :: Load a previous draft and continue editing. *** Editing Commands :PROPERTIES: :CUSTOM_ID: editing-commands :CLASS: title :END: This option is available from within the Post Article Dialog. - Edit ▸ Manage Posting Profiles :: See Posting Profiles. - Edit ▸ Run Editor :: Starts an external editor. Type in your post in the external editor as you normally would and save your work. The external editor will close and the text that was entered into that editor will be located in the text area. - Edit ▸ Set Editor :: Choose which external editor to use. - Edit ▸ Manage Editor List :: Setup another external editor. - Edit ▸ Cut, Copy and Paste :: The standard GUI text functions. - Edit ▸ Wrap Now :: Force the text flow into paragraphs instead of running off the edge of the text area. - Edit ▸ Wrap Text :: Set this option to have text automatically wrap when entered. - Edit ▸ Check Spelling :: Set this option and possible spelling errors in the text area will marked with a red wavy line. - Edit ▸ ROT 13 :: ROT13 is a simple cipher to hide story spoilers, joke punchlines, etc. Select the text to cipher and use this command. * Tasks :PROPERTIES: :CUSTOM_ID: tasks :CLASS: title :END: Certain tasks performed by Pan, like downloading binary posts or grabbing new headers for a group, can take a long time. These tasks are queued and performed in the background while Pan is processing other tasks like grabbing an article. ** Cancel Last Task :PROPERTIES: :CUSTOM_ID: cancel-last-task :CLASS: title :END: You can quickly cancel the last task added to the task queue by selecting: *File ▸ Cancel Last Task* . ** Task Manager :PROPERTIES: :CUSTOM_ID: task-manager :CLASS: title :END: Background tasks can be manipulated by using the Task Manager. The Task Manager can be accessed with *File ▸ Task Manger* or by left-clicking in the task area of the Status Bar at the bottom of the Pan screen. The Task Manger window is composed of the following parts: - Toolbar :: The toolbar contains all the commands you need to manipulate the tasks in the Task Manger Window. - Informational Area :: The Informational Area displays the number of queued tasks, the amount of data that needs to downloaded to complete the queued tasks, the current download rate and the estimated time needed to complete the queued tasks. - Task List :: A list of queued tasks. Each row is a separate task. In order to manipulate a task, click on it and the row will be highlighted. Then click on one of the buttons in the toolbar. If Pan is shutdown whiles tasks are still waiting in the task manager, the task list is saved to disk and resumed when Pan is restarted. This, however, is not true for upload tasks in the current version. ** NZB Files :PROPERTIES: :CUSTOM_ID: nzb-files :CLASS: title :END: Pan saves its task list in =$HOME/.pan2/tasks.nzb= file. You can import other task lists into Pan by choosing *File ▸ Import NZB Files* . * Scoring :PROPERTIES: :CUSTOM_ID: scoring :CLASS: title :END: Scoring allows the user to give an article a rating based on user-defined scoring rules. This rating can then be used by Pan to perform score-based actions. When a group's article headers are first downloaded from the news server, all the articles have a score of 0. Then the list of scoring rules in the score file are applied to each article. The score file rules might give an article from John Smith a high score, while articles with a subject line containing the phrase "For Sale" a negative score. ** Scoring Actions :PROPERTIES: :CUSTOM_ID: scoring-actions :CLASS: title :END: Pan can perform two actions based on an article's score: - View an article by using *View ▸ Header Pane ▸ Match Scores of xxxx* . The default is to hide articles (by not matching) with a score of -9999. and view all other scores. - Change the background and text color of the score column in the Header Pane. This is defined in *Edit ▸ Preferences ▸ Colors*. ** Adding Scoring Rules :PROPERTIES: :CUSTOM_ID: adding-scoring-rules :CLASS: title :END: There are several ways to add rules to the score file. Select an article in the Header Pane and then select *Articles ▸ Watch Thread* . This rule sets the score of any post located in the thread of the selected article to 9999. The opposite of the above rule is *Articles ▸ Ignore Thread*. This rule sets the score of any post located in the thread of the selected article to -9999. Both of these scoring rules only work in the selected group and expire in one month. Selecting an article and selecting *Articles ▸ Ignore Author* will open the New Scoring Rule dialog. The default of this scoring rule is to score all the posts of the author of the selected article -9999 for the next month in the selected group. By clicking on various fields and selecting different options in the New Scoring Rule dialog, you can customize the rule further. For instance, instead of having the rule expire in one month, you can have the rule last forever. Also note that you can make the rule add to the score of an article, making it a watch rule. So the name "Ignore Author" can be somewhat of a misnomer. When finished, click Add and Rescore to close the dialog box. Selecting an article and selecting *Articles ▸ Add a Scoring Rule* is very similar to the Ignore Author section described above as it opens the same New Scoring Rule dialog, just with different defaults. Construct a rule in the same fashion as described above. ** Editing or Deleting Scoring Rules :PROPERTIES: :CUSTOM_ID: editing-or-deleting-scoring-rules :CLASS: title :END: Selecting an article that is currently being scored and choosing *Articles ▸ Edit Article's Watch/Ignore/Score* will open the Article's Scores dialog box. From this dialog you can manipulate the scoring rule for the currently selected article. Each rule will have its own row describing the scoring action (plus or minus points), locations and line number of this rule in the score file and the texts of the rule. Select the rule and click Add button to alter the rule or Remove button to delete the rule from the score file. Click Close and Rescore when finished. ** Advanced Scoring :PROPERTIES: :CUSTOM_ID: advanced-scoring :CLASS: title :END: The scoring file is located at =$HOME/.pan2/Scoring=. Advanced users might want to edit this file directly with a text editor to create advanced scoring rules that are difficult or impossible to construct from the New Scoring Rule dialog. The format of the scoring rules is similar to the application slrn, but be aware that not all slrn scoring functions will work in Pan. The slrn scoring functions are described in the document [[http://www.slrn.org/docs/score.html][slrn - Scoring]]. * Customization :PROPERTIES: :CUSTOM_ID: customization :CLASS: title :END: This section describes how certain features or actions in Pan can be customized. ** Behavior :PROPERTIES: :CUSTOM_ID: behavior :CLASS: title :END: Many of the default actions of Pan, such as mouse clicks, actions when entering or leaving a group and the action of /Space/ can be altered. - In Edit ▸ Preferences ▸ Behavior :: - Mouse :: The two boxes of the mouse section change the default action of the left mouse button. If unselected, you would have to double click on a group or article to activate it. - Groups :: The selections in the group section control what commands Pan will automatically run when manipulating groups. - The first box, when activated, will automatically get new headers for all subscribed groups whenever Pan is started. This is the equivalent of using *Groups ▸ Get New Headers* in *Subscribed Groups* from the menubar. - The next box, when activated, will automatically get new headers when entering a group. This is the equivalent of using *Groups ▸ Get New Headers* in *Selected Group* from the menubar. - The next box, when activated, will mark the entire group read when leaving a group. This is the equivalent of using *Groups ▸ Mark Group Read* from the menubar. - The last box in the Groups section, when activated, will expand all threads in the Header Pane when entering a group. - Articles :: - The first option, when activated, makes Space select the next article rather than the next unread article. This is handy if you are viewing a thread with read and unread articles mixed together. - The next option activates smooth scrolling in the Article Pane. ** GUI Composition :PROPERTIES: :CUSTOM_ID: gui-composition :CLASS: title :END: The layout and view of the Group, Header and Body Panes in Pan can be customized in several ways. - Pane Layout :: In *Edit ▸ Preferences ▸ Layout* the orientation of the Groups, Header and Body Panes can be manipulated. - Tabbed Layout :: Instead of having all three panes share the Pan main window at one time, another view, called Tabbed Layout, can be activated by choosing *View ▸ Layout ▸ Tabbed Layout*. Now, only one of the three Panes will be displayed at a time. Each Pane is brought to the front of other Panes by clicking on its tab located directly under the tool bar or by pressing "1", "2" or "3" for the Group, Header or Body Pane respectively. - Show/Hide Panes :: You can hide a specific Pane by choosing from *View ▸ Layout* and using the selection box to show/hide each of the Panes. - Fonts :: Choose *Edit ▸ Preferences ▸ Fonts* to select a font. Pan can use the monospace font in the article Pane, if activated. - Colors :: Choose *Edit ▸ Preferences ▸ Colors* to customize the colors used in Pan. The first section allows you to customize the colors used by scoring in the Header Pane. See [[#scoring][Scoring]] for more information on how to use this feature. The second section allows you to customize the colors used in the Body Pane. ** External Applications :PROPERTIES: :CUSTOM_ID: external-applications :CLASS: title :END: In this section you set up external applications that Pan can use. - In Edit ▸ Preferences ▸ Applications: :: - Web Browser :: Click the Web Button to choose which external application to launch when clicking on an HTML link. - Mail Reader :: Choose which external application to launch when clicking on an email address or when sending a post via email. To set up an external text editor, choose *Post ▸ Post to Newsgroup* . From the *Post Article* dialog menubar, choose *Edit ▸ Set Editor* ** Article Cache Size :PROPERTIES: :CUSTOM_ID: article-cache-size :CLASS: title :END: The article cache is a fixed-size disk buffer where Pan stores articles when they are downloaded from a news server. If the user downloads a large amount of binary attachments, the default cache size might be inadequate. The article cache size can be changed in *Edit ▸ Preferences ▸ Behavior ▸ Article Cache* ** News Servers :PROPERTIES: :CUSTOM_ID: news-servers :CLASS: title :END: Pan must connect to a special computer called a news server. The news server is the gateway used to access Usenet. Choose *Edit ▸ Edit News Servers* and the Servers dialog will appear. Click on a server name and you can edit or remove it via the buttons. Click the Add button to add another server. When you add or edit an existing server, the Edit a Server's Settings dialog will appear. In the location section: - Address :: The internet address of the server. - Port :: The port of the server. Port 119 is the standard port number for unsecured NNTP connections, port 563 is for TLS/SSL connections. The next section is the login information for the server. If you server requires a username and password, enter them here. If the server allows anonymous login or does not require authentication, just let these fields blank. - Username :: Enter the login name if required. - Password :: Enter the password if required. The next section allows you to enter certain Pan settings that are server specific. - Connection Limit :: Pan can open multiple connections to a server so the user can perform simultaneous actions like download a binary attachment will reading articles in a text group. In order to follow the [[https://gnksa.org/][GNKSA]] rules, the maximum number of connections Pan can have open with a server is 4. - Expire Old Articles :: From this toggle box, you can pick a time when Pan will expire old articles and remove them from its article index. - Server Rank :: When you have more than 1 server configured, Pan uses server rank to decide from which server to download the article. Only after all primary servers have been tried for the article will Pan use the fallback servers. The reason for this feature is that a user might have access to a free server and also have access to a byte-limited premium server. Server ranking allows Pan to use the fallback server as little as possible. - TLS (SSL) Options :: If security and privacy are of concern, choose secured connections if the server supports it. TLS (SSL) support is an optional feature and may not be available in your Pan build. - Always trust this server's certificate :: If you want to trust the server regardless of the authenticity of its certificate, you can enable this option. Use with caution! �����������������������������������������������������������������������������������������������������pan-0.162/help/�������������������������������������������������������������������������������������0000775�0000000�0000000�00000000000�14754127724�0013245�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������pan-0.162/help/C/�����������������������������������������������������������������������������������0000775�0000000�0000000�00000000000�14754127724�0013427�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������pan-0.162/help/C/figures/���������������������������������������������������������������������������0000775�0000000�0000000�00000000000�14754127724�0015073�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������pan-0.162/help/C/figures/pan_window.png�������������������������������������������������������������0000664�0000000�0000000�00000353127�14754127724�0017761�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������PNG  ��� IHDR�������4��� pHYs��:��duh���tIME O�� �IDATxwTE sO3̐AP# 9nzMkX$%D@2 3g'v7U}4AO?Vխ[SUN� Kӳ o A r-S}`So{=2H,q/f@, Aa]cXR$*!�9d4juc3,>'> AB C#yjܪOrج2DyxfQOw�Tx<i63:&Kr<O8L-CBp ^xYU$BLĔU""cax$4b8Xa� "R+6Yͪ'SfTbׇ*end�$R1vQ{�^DD9�x^HP&k$0=5_t$pk1˲ EMf+w<?Y=!Qn6ixL|yATwS9AF^,ydYW6XwM*LL@e@Qc!, $蛧A�U*p} / u=vz';܁x^���B! n7Y/J6|5ECX\O%>DBϦ\YѬ>[K"xOcBDum&wE=fAn.#D\f` IjӿѡQ]\v'F=hKVb 9-$M$kt#z :T9!J ڛl |ۀt K3Oi:/1c*9D(bS.YK7YlMcujP-a??],pÏɉx5Qf݈ӊ6&hre^6Ă#ނDM]5*ZG oLvZUg1RT�m=.giYsΖib:?Jfsux Vf5v{,'mfIzDԤT]jrR} 1BK}uX �I$#A8@!&~ DkNu<B� �!Z%Vbq__kKk{w/%U r1�ID("H!\XQL qxc~G6$egޛ`J)v?>'j[aJjE %Hm8['ѱ{l]xOP $XC]jSo]ٜIJ F(ܾo=cO4L!he#O#H4|j͉-()@o Q%Z1Jw9:-̝3Gܸu{XrkQ?c׬rPMotvP-pWNզ(L3'Fk>f7|vH4HoxІnL>r[E.~t ]񝺊_�D OW v˪&Qqlx7m)ٽM[w#(!7?nBŷx㽟  r)trF[c/ER$F҄(!8zMl>R>#'<*iX$R޶/� h/l*$ A�0:T\^<(827%՗vII]GKcZ,͂'jUwPq\�S+o0*a]uB~}qvjnuZZKR@2[]8 (qE =vP$yN<UDK%bu�؉4֨ 6zta%-}ZצY9&7{U9c->߯��[Gpk~ˢqDf@qx6KPv؝K hfO6My ww-~G�IilpJHM)f[Q!"(T0]GtG҃Z澻ns]M!ZJՖ; x^d?1A@</ !Ƃ1`A</06T++\76ڻm k !G%MRZJ;>X9QR05 ĵ -m8L)8N0%UoM �DD4>~ &H�hu?_p2NSgaokܱ �(KHh< &;5&W2&31r}Y/?,UOLsSoj8fOW-MM70Jx[//8$p hΤl_rJokx�@@ �=0R(=bS? NĈZtB{1J"#H0-m뭋;0b�%UTsb3 ҕ�{Zhcj*YŽw>*! 09:&[o.ġ77<^՜Y6M\yS0|g=2@/RL/h[ Nb5۱׏2{vWg.+%=S"� -w>'Jӣ3#m# �TʘH( A@.S*d~73܃kq5ǿ$q:NշSoIec砳644RcD! n;5:IkM MjsEX3ړGGZm%=`9zJ0x1rS [Xyϋ,|sDjݱMj<SE*ġn'4v4z_6AV{_i꭫4 ~:&^c2['Jm^c_imoTՇMNB]S#4:*O6x N[k-35#]bFeɚnlj)ln5 8 m=t/KbU Tm"y 5^PGT4tR[¹6Dh(ae]2zt8mbC~G砷օ޾{*9C͛ Zk]}Ґh^ԙcs"e} {Zf/m{c~M3ޚNPq!%,&]Ă`8X^0FA+)S|c�B7ŒH@HTq2 Bk 0@ D"xg% �!V`sG)$*@<f܄L X"D[GTRޏY` $J�!a 'h f@0!V�-~AIaEHz yi1OύK„D @12 9 XX>B$�\uRJwI,f1���b `Y!`z瀖4g/PA ^@)@\rx;~H̉T<E8M2C/K8HIjckZbbc,, W_aId6) Fps>R$yDdLv PXVIT.A _p^.AȆܖKOl f-զ|P $ɋf  (=n�!$H ?#aӧ^NBHL$H װj'I$`=H Au#{f <.c񖔜 3vP?u15oT M3̆1 EEFRi䏾Ty(��SW{S|ʫJ %ycGG(.n׆FM,jd[[r6Krh0|g9xKN;ү*Oԩ/Yex QJ!:<y ΐ 3 ܫkje2i^nn!D*耗doMHx[\ � x+N RVx<:{֌*?ȴS�[6TU )/2d~~`Wgxbck 2S6ock+{kMa8-zk%*1%96R:iQSo{àTm>L$VVTr"1}r\R565$W,1*;-؊˪DJC^vDtq?kkݸm_ޒb,4TWXJzMKaKeu."cn7+'۠w6նӲĮ{?gzϞJKowe}[lrZbt{|YeTK^=pqc/#ϛ;Gy֊Z.<'3)*c^v | g >p}.{}T�X_tǧǛMՇxWQQU[WOӴL.rg7@s[ᱚOWغa]Ί.kg/ζ-_~ϝyY"":1{] ֯o5;.DEՆЈ[m/mik-'wo:tx[[;xO0ƿx[NmYe8D LN뙿W EbX"P$Hs{olޖ8`]y8;qK� q٣8Oi,_ߵ]6$iDrD�5TTVUTVY,5}<^i ,v{7:]0 A\1g pll2e2\.=d<t񷶵;h3m �QkL>B/�+Ȉ_h6oKok�[V �e#^*arñ"ӾiIdA}'ë$$�ٶ?y=co퀈0P2�X:7TܺǞ]%G/u]Nf ߹i ͬ2J+33S6/L+/+m_|4{r!cE S \[dD^��݅~`A �>x'3Z(jQzdҜ%D:~o$&.{|YӬAsVz"£"#rs2Hr�@HekDLmnNM٦У%Ő8P P=,7`N4`9FF3o*ib~0@Vfŋ?u$g@"&Z%x΢6FM+'革sgw6Մ=~Of9_}_ܻdҸQ_+x:Z;cӧKx\ Kj秌Ko$GЩH"rw[»zZ+1U=[{}"Щy|w_5uvi2\Ϗ,&_kqL(;# c,\V]�J6t3Fז!Lr7?1z~)\�.vrjQM?[2 !㑔".5>oH�OKYA`Ā;Z̓է18*HKuu rBHΜ^h5�86:* c3*/J#xz;iJM)bSw߁8t$9)!wc;6u)qzt2eq 5rvb R9zʌ㻷}UYs 'Pf̄+ Jϧn.l0Gk6eO=!7RW[zhˎN^hB14Eǧھɩ|hܸذlI^sKo<2<%oʸI+SMYfA0Tq11ݻJJNLLI|fFJ�>Zi>etVbTHG+ݲ,B],C�e՛L?&+[Vۜ>iAvJۿQ.qR�INLLKIƪG֨14O2ACA\%v'J_׊oycn޲l�@yfnݶ*p}]w\V>\W,"<rp5_8*7a9ŗ�nR^o54wS\zjXyKgef|t^_s*i'(]=H ? "0*w uFD=H W b4ͦ߂l=H Tys9b $HkYc*$EgTK L A\˺1~qg;x, Aq@8nCea^V`Z%* XOs|cZ A~q|>\.iook %I{֖,By픭OPb$\J%x<jV9Xϳ-M Y92<myr~iZՎ[6,)JA@�Ԑ7njXxY- +A]n+pH%px*}>X,tcקPHA=^V2>_8R2 quܺ!;Br9NA"N&X;v,;P[aIaN'qjJ,7q�Zf䲇1-H %9b7cŲJH.#<;.Vw{W 1i`m܇o-JGX%<Q憩9S~u]cEbU+ߴH JkWe{#m81s_}x|g3O?-C7kv7~7~1}/OxѢn'Gy~3 ¿x3wDZHᚦE> vǮ{M=}Hc|GXUwߩo&b#H±LRb;N=:L@<̚9=7'k$4[d8^{S}[0vwwȘhjRQx}C.++ cawI'aF7<AtOoHO6V['Z2H8ʖ43c-ttvLI gWu$AMD́݇yn%@r</%ӿ�n |>o 7֚:6NIc-9Q-|l FBccclllBlF+**F]l1FY$IvL^/5%R_iӦO6v͟L[֡/Tz_\R.l6ȃdgq~VXb%󃃃555G?$D?t koL4<nbS7,ZkPXlZN?{sL~܏8.|K]}&7'{&jvW.-!~Y}C#q0OMIX~wgg$e 5~Bx<e'+L(> ar`lyZ.kX}=&WWOg_Vp h['c}>_sK+�֞hYOK?z\.IdbeL}YSkXj@Ѽwzʷtg<:8r?t.7ںQ3DI I*DNec%RyJr⥞IfniT.Lqե9B#unw:vׯUTT8i?[1셲23|o͚5&L0L)II F:eҿgSN,fV3t,J9eRO?uΟODEEEWgBhGoU+׬Y3yފ,|F~K:~]_0r$)K禍6''Ƈ 1D&.�� �IDAT?Uۡ{GX=zTySO>6Tc -KEIq M<&"bbDGGfFJ'@RZBBH=-%!ۭ"R(7wwb LN!ק6FŅ]VTM_ ڦR(Aj6U;orw] F内G䤩S&Dֶ{W'Ebpk%5̱C) S8�+'w"5+ tW?d9Lp5 Gw>ì,sƠR/`Y&JI΂D .h@P9\z{cR5r Ԕ0L__�65 5h]]]q1mnӇFE̝Vob8,, �uu>.4.:B,""1Fop! Ql6, u G'jcPL,ɮrZr766U*磣sfOW%&&FFl11_BCC3GjmmJ%qC4Swj42pڰm OydE\||xX'J>=vx؋Wr|wnܼ6222=-+E#$ ޞha6m7zLoP>pσѭ~ꔉ2 ;ж/\.#{ۿwc9du3J�\U]P(T*Ԧ'u5cbŔ0 �0 #R3%;;t'C,SieAa��#c 2uFb\u)EBZBTUS,IݝOF=ӫhXC7� ZIP/aMEqlDEBҽ_/,JQtk[#G O\QIBĀBK8pzKC2<`r sl�#"/pLyN/, �}p9p{"<x})bCtڲ_RIcT!,KY/#"L-]# � PjB4>ÊdFCskWT73 x_%H$�ˋ>ㄤ, IrH1CRW!d4srr�ZB ֎.^)h zEU]kT΋܌,}HBCZ-òPcdDph9U FGE!<<L"F^?pǚZ[y- c3ioDZZJLy$㶶晅ͦ3[lL̥$9gV:``XigΘ˯zZqwC)wAvܵľ8|b%8zbC$y^MW8v~W߀5$dF#0:/�JGfz[n_{'~qZhTnnEeJ+~bE&� eHD{5 L/]^OH,p.�N!%II )E?  H2dD$*ULyx|ۻ`4Xhoo# TC>d5jnuiRrLHIzo9Z4m˓Z7�!6 S2]ldPBw+rboM7�~|9 ]4+y70Uf#+Seq~!C]Nl"6$O1r5{kc ibݙ묐H$*b?*b@!\g@WQY!�$J89,7 B" JgU I$�3`%jc-8XK �DZДB"yF,+2$ �PKߟfg% `_)55qonnRнd?PVg{K͟;쓶*db t7BuU0B,4]](fNm//4qpYHg$[[.D"ѝw,WhM- j/~jæVǦ W(f*޼yARrFi:purJژ1cl6[sF~?-͵&JDBuN XmhQS[k P]8T#KDB|LqI^XA$\j%D"z`cYYL^ˤС&Y,m߱2&RϘ#ڪL].FѶj z}}yy955+411/ nko/p_ݲ^KH�; :*9';35-�5GEC@ ްxIQQ0J455v5~X\&! p{枾CTl;炙3#{sœłdjpkoo|XFJBVUWc LKm kDdEAh$TMMZ 3-*URzL5R| k, IH5!#QUu 63-�'~UD>$bf GwܘNH7F;["vW+4,TU/BnG6+ i6V ܇2"dB"?1̷1cF7TU58V12Rv!@ZE�JD4P&'' ۭlH$%zh»gL+yfpp033h4JSN/1!~qϏm6FTʥ˘I&S2!�\Xmb� s@Q$)ɲ2304M}mS$$$��%QL@B0edd OIDH&"9x>';`d2 ~ӽa?]ETW[m}MiICTeT5*rSTBhzm�u 7p&Y!99Y.,R(Ê)M$D_nFᴶ6`ܘ|F(�p(:FT(z睥oĞ>rޢ7^6Du:nR@|>+JgOH I$,! 1FEQě 1A�)$)ܼ|),-+ !H3;|eHT" OTauF^h:0gdc|njWz4G!m2V[WWY-m ц~`OkZRM[Ju7ICtEBoP$eF6`C1Q`lQ{pڔ)'hi#zr1b6_B\,8u")c29v]+###r/n(-9-#-}ٱck  il_q-Î},{VtEϹ["ITmڜnF~ոs tߘy@/A'qJ%t$)2.[?d#� vw^ިPﯭkJ3?$%g/qFᴬ̌QN)5-"ISwɲjз~KS.d֚FDggGCc#ɓ)R/w?O>c%A<GGK%"NO�` lpȲHg1Ƃp{kX͝N13P. z6ă Ir;}?`3G_ ƽ@V\9<>q+"([87ネ撶S,3#($#=oԈg$0چX=ðS5 ;b~?9#<^p]l6-mAp@(IbIZNuY͔)L5̟k;? WCG~MWXƵs2.+~6eW{n.IcYm>Yh>�8]ȈhA࿩ 45 3(NWu)@<i/RnO* clo?bC_j}"=8`Ґ>55eK�k [J11vLJL8DKeܟ=Zt0bԸs)J0~>Eї`S C ?~uhMO쓈N [p#tL^OD|ㆲS4`� @7|G"+Tz:$iX#IbXӎ'*ڻ{-Z-JNL"ry4u }=A57<E]urX_]^ꮝu:|V8.N'yuOJq*A 08K1)~v` 9曍wivm9rF %N'&%+UjUpNL *LKU'FW[>iJVkTR]�jdk$jojnb)Q)?Ӣ RODž A e;Ai "h4?Bj AA mnSGs8Bt!F�833[ Nrƒtؾ A\+(jD2qgQ$b 3G*w+W`]U7荑>` #IctجV{zVn d92&Z ?b�FVUd րa>_WW6$40]oI U` �Lݝ)qa$ $yrKzCp͎ d$PvL Bƈehܯӛ:e9w<Dp W ò`9h-XJ$�<aa.mֿǎ%K֮]{Y FFF@LLLSSӰ23{mqnkovJBւO@pG W  &Ge-̅svs+v ,Ѯ{-[v&̆ucWZ-�eeez>>>~Ϟ=&LzsǾ=qy Xﭮ<e>SFXjiok3F'e&@KmyKwD\jNZ<�4Uh:}h:~<cIe90'Jt*:$&xTG/O>/H oF'fd&G^{QI?ӳrc®F Z,Z^.+n״)J6665Q%HUahJu8zy+*Ht=L8[ny /^tsCc}ya8/n۶�/_�;NX~kKqKmwU1̧ omdNsK֭[=.f7 $m~>s>ԑΒ<\ZW/}U99)&[ln*x8?�pKkkk^e-Zn\6l^zqV:eĬ̬4Z?ة?{?9=<nϹ"4D:qPA"4V?wWK/p]DiJ5fedefdDFF\\<Z~_z}{ɘ>]ƿ{�� ('ϙ揖F_=,?�,J[|ܶ/oyČ [WΖ֖ZsWWgUщۖP)~kγ6sKi�^u3hT7-ě}*p}�$�pV/!)DO ˗_~{ZOAc+Ə?I}-bBظyKoDEFWVV>a™Y'OE<#eΝ7ey҈P5%b6 dX6mܱ'ֆv/ X2đ{g[r]g6^2,6?=~֝&7%wT]Q'ۿwjǎ'&GDoܼER^^!WDU9UV3z[k6l%5į\AkWC+\y�# ^R®Bxg233oze:Vד?ㆷF%g.TD 8M89߉&|rX4P={߽W<u{e9^t +�@DlEf'I?[iiT(9Yڿ3N" �LHP3ѥL�g/j|^&: >d] /]|=}š}_޿Ǐ �QXu뫵=>F_YY?p`V%>{mʪ}mO={-65k nX`l'OAR?zͿGJPԧk͸e\Fh`mIy[YemE qݺY5.YeGU)*iY|fQ{{ 9&Op-K`@h:m\6:ݰ?d!tu߳W_ڷ݇):-�JohrRW~Ӓ^o~#O KoscJvV~ZnXﯾwz=�hG}�yo|FWR/gv҂[r^Dw^}%.s}ݣVf{϶nOL}"""V:boz]1ޱo�i{>>{Noc;=MMsn2jI0e ,.<~f~G_,Hkc UN�V_RtEK? ,Gh\fߴrR<W{$GHBTjCԪ$'Q3#xuX`<G;-oUu|(�c칢;#3F&)Zȁ%!vb̩�07;a7O*c!$<2憡L>sg~GF�"�x�jAx}\I 'EN6m� /�?�֩ 6߶jmÅu5Y~??| ,.n/8dl\9uѲV;U?W8]˯bu^ywln �vnR;8H"hCaA^ht1HĴ:R._]#ES&uSG6PX1P}jͷE>5w.]y*v*䒋 \9!}WNyފ:�E%'.~5`gul%*!>o4⒒:txfNeDSc4ry^}7=ybB$ӅuvL&ضvJ{ď`y,nF`1=;%jA+y<sƌ^tBBEw=�Pbe4bb}<5v4�xG9Rb0A�+ikdI aaKtm}H7n\% "<%-OJ<w;7eJ`ca@3NKd`a"(5 m$2EZi1S9Ot^$+$DDd�$&9x0�d܄^^?- 0BhM# H@a<|j0f1c�@rI'5ϲmM'AbT>!7zF|=i WrǜO~OR@5/Xjj{c1<ZU;wjE\Ơ\mmmyyG{RX1c1X}ޮAa(:> c1kU<|rnAฑVY4W'˴5U�X"*}g�� �IDATs(B ?r\v{gw{1@1R=͕@hc>ݾO{}gcCZ[]SK;GLdZ{k7s';?xɗqGZ-7o|?cJPsϪm>~7AD͉ �Pzx_S}:6՝:{G\vT1Ю�anwvWבsFز&1u#j[SYu>RaֺEyWܴP*!ܼP40b.ؚi9CLW;, $ ss,8 y%5g|ޛqw=w(>ulI7_ܳqy/?t&Mk/-y뽭56e~1ƕ~\NdYssS]^[q�|xszAo z=42>[?`ڝwh1+ުҺ~y^Se3}#;v�@UeP|[+?C3~0,a[w}p˥7ڔ;Tzv;q�?{WuO6ٸQVhіbBqJb,@B=!7~4})m3;w挝9so4. CE~kkg\xT(J IkkkO`uWg\gL.=d4JRV)|SRJ1g+#C gd0aq휕F�@9i520d;!�)š^w%dof`ho<}TzqyyY( 9H`h0r!4^ tLmgΝ�8hm$E[jW27/xzue�XL&Uj*]f3IM+8!KO`bq+͛7ŋg̙#H/S\~ͳgϾSw8p`ʕV>xLabb?u?<;;[K坫#FP;:*cO۷・O8qիW8-:tПuj _{~ow돜&P _FdUwH;ܽoܗjP^C{^ߠ|]�@GGGZZG%<c3z4 iFS}m nܪu[ݣ+\Ԃl �8~xXXؐ 6%M1e�VXt_f.YJ,?YrM[mTJy+qP w2u:uwx44*kwQ??wCҏJrrrrӟB(OD-t9zhϜ93u73Ν[f؈3FV󔋧?{Hnbk.& >_.2r#œr7~eVH߮jU5u�֮]J5v~Zo\a{S|}D<x!k߾}U-^ݭqN:u%*:g�@q2ﰁAnV|^M\C;lp=*>E‹j[7PQ<}pE=pkW>}P�xBVGFF^|&Z_HxjTk;bv4(IMLXUVZ¤mi=R3(uP|sA}��2%YڵF;wƈg`>zP%<_,sR/\8c Lc4Sd}b2UĈ#11cY-9|tʼn{CM n]i G\]<$$fFԾ{n\.߿lٲOTjUn 0Rk&,@S \|9#YPb&HjFjkini@1 Q[[[UTL&S(D+ \ͼv>% j0@@ PTR0XhRS  %J0 E4-0TՉ`Pإ Fknim]LMAQOC~ƳrX,vۚx5 Uſ?ڠaBpƍRɉo mV.4UUU SN}W8Rdūܹsaz6v%ioGOz:bhĒD.,vʊ#FjeeիǍs}}rDڟ.ٿ2l p8ܮw8'=<<x<֫bɟ6 SɥÜv_MVl5~&f}|͹^y9>}zK,0,((ƍFWy)>ASsNcǎI~ٻ:bܜҊ̤"Cn%Ltz ,=_uuݚ'73ncF&qn>J�1mѱg$y ]߯b%u=Ɏ szO[?oPZ þŴYk߿f߹/-*}eW|P(;wn[[[ffۅB(mWg[Qֆw*2/ljujRdj7[!-wu_M M0ѽb MLM4M04~ SϻZb=&\ӷV+hZ{Sk .Fdq__�07lwAи9axzyp8?z!H80w\ =y䳤Dnx̊Sf[ɫ8;�.:>b�tR;dGH[X,Jp8, Ù{ˊH*s�0:ܫ!d#Ȓ J^j3˩r::vxv8}cTn!&D1PI�\z>fda0i��3tNπS_#׾O)qwxX?4(WmCoOkv\,-kJE3bipw j7,_y#Mڵ;JG0xjCSk+kV;;9;0jp_[K7��|\l=,KK{RD P(ThK:|p< ?NHpq$U�]]]8ӌ۲eKhh;>Çky�7ϻS}l-(@aiog7h$HD﵏sd쁡y/^Zrw:|* �W&�PV`�0 ?:) Oj L h[^0stscJnb\OP �p4`\,MKI7�<mFqBzJ7){XdNdf3w?k,7k� T=q1cH|B38z$��6?te ^?zҮYXq85;� ҂P% <C)TFWe30 hi:x@ < Xo N>%d{EiAScN?~T,m��ZR*AA4jFbo:gެή;dm[n]TT;]zgϟ|6|a5=vsrKb 7oc9Q^>sPـvܩuxݑ+ *b�wppشiSO�NMqsJaICid3JvV 3LzÏLcMw}:>~}nzd<!q=ރ"ٷ6 Im<sZ`5lDŽڕjҢTVе+7y;/%}��p84m˖-x<#)yy3W㭖J s��sss??7Z0|K/-hQBD}UҺ+FYddQt$5VL]h@JzS�ASF z3lmUUǠQ:A humLޜ2 1ndq%eyT ۹=q6\SY3<==wտR|~Mz?IO^عpH*؏ ~{Sm#\.fǣX, 嚚>kEQT%ѹY6vvF\H|'3|s:l7/xMp`(|ӏ@$\<n *mM|C]�;:U$~c{!HDXW5d*JjT2HL"ST:b8SCI$:S�@4JXԳvp&!T#P0T%J $2JJtXL[ H$:SB#aKsB" )#8XPu')$ 0j =<E{E3T&KQHRL>db\gsTM&T*"Rh +LE",J+)t*R$10 N#jH$t2t*wRYWTTIN((Զ-},;g/Ef .o4FJ+m JkIVP aT?~jffMkW[WVR솚 ,mH$rSC-J47#[C)iGvjڄMyq.nN|BP^vЖnx"=ވTЌBx~{0,(Dukʵi6FpçǶԕ6+ ztxpeY1� 2 ZI|'dpuޭ `6V٩-X iFv9y_R L7Tt@*R(7\"ZE9F6JJ! mP  3%vU^ h�jjJs*\^<`Uyi47&hlYDBgҩ(J%W9) 6!a%mPS4 W9yiIva(xf4N`55Ź�T"Hv~�*+ʪ*Jl:[ rjK�0,Mm"҂L7յ<��Nc3 ,0 kmk-yU@"v֖8"J&;w=zhÆ +{޽{?x<ɓߏ[녅?~z-SͧBrJJ;פٸE4'{\ТSܿ?P&B~~~CC' ZdL C\�Ġ}(ajPT� hFK]Ro@Ư0_^/$W@0pt@Q-Q"(DdQT}sQ+h4��Fax<_+3BSH4RC4.G ),CcS3skEE4��AF]e�#(�Pjm Xt<Gcc�ȥub=G+JJ 3Pػ;XfIdj0Ӡ J ܹy1'Fg:8oѼWD3gΌ3_1uʄζ?YXX[Z>jhii9rg„ |Oeee/^۷=f&__ҥKgFP�qy{{kZj ttq0ڱYkӈܰ|߬~&OOwD2(^>ԸVg׷2|;*ͬk5KBA+KdR ._D*A82)XzcQ~>#YRC.NjI˫t<!ւ'D"AyM Ɠ͢߹%+k%bJ*/- H TkKQNsA^>()ʥR uBABJⅣJY^ZQk+KR1 /or ZV)28iKMy+3QC % *ަLթV8< v^r; 3@!n'''%%HDA4\.w֬Y7ozyܶc7xU U[P6=Z28{ޘ7yxyw-u =gx_Ln%;谵<x62oZw4�Pcne@1}H/g?[9֓srNo獫A "-Wyi Y0rgc.IvTm`dgp16ij@:YՁJJL2۽==%-Oq0 �@Պ'v_Nrs~];f(3tbބv{6d۷oWTTرc…ׯ_ߺuk{.= ~3ϰۛz,a��??9s,_ӎ;PxјӦ�8p-]L69wHn/5b߷Lj=`_̷sqsly0\mz7\Õ\I}*H-5\WSYWS �z}-;PkDY��#'AΖΖ\Zy�cƺ"={푸{"�V{P+��CRQ^zk˷׭P@ǽU*�� 7�pW;JwyI)<CՒ䝛yns#��{Kfl}*kk?dXoz;=ѺϔEbZZZl"8c׭2a;K~yc^o0bĨğw}?m[Ͼu3<<G�N>1پeع9qr+0v/|QGݸinmLo=~Wcm9`gj]sm�?33ٳg\q[FMes}5o@ LW}1/hИqcgO0Da�@{kw]ʩ#=_TvuuI$R�@ssJ:|P;Ĝ:4rҜMS?ILccE 6eժU"ðw ^} >+xnP W,մ?7ɔxՊ4 �V N�tM}p8ASpVOr޸uWU*UEUo97(w+@jT c� xDa?0Txvuu ޛ<-_\OOd* ɨZ 0 �d$R 0T�PQL!5pvٳa a3ylȌe@-PO͜sϕKqPvVSP2 0D�֠*(<z$NkY0KHD֠2G(o<u"7?g[0ڈAY؅.?ٞ0� ��TjF52fk}*N "mB"$8"ITET��5J|`JC}+_f٨VsY@BU2]5!H$jV "_po`Ǐmm��@m`N>z)Ev�QjTu6'0�81 nZ5mFYiɓg==<4'!맣&�ͷ �_K%"D1Os@&Ϝ9w%�0 �g ˿‡m#S=QT�+R!M �� �IDAT0B�1.- A삒mwn}>/ݰ|2llbi⸄'}Q(d^IaBCH.nSG[`5Wm|C3+>z/a˵gfk2y~qY@f':|1`gr򓟥q}DvB&q8=[1_;t �II1 a^tβ-S^  W7f6.T*_-ZoVyS�T* )%naDyZ75.++ĉ۸qcgIJB=!Z*<:U6>7q8iܸqAۦZAx<̌Ԍ,IX(t=S []KT(L6,/Q)<o@7iןD?hr{ 30T9|kg|nnnF7'_B5yi!_Y=Ew(SG;׼}>j`}~@ޱ�t;NB^tqPl̘1mg⻃?Q:*tY:|l9&j?)޴�&RÑNct-UVWWD?s8޻;S% 9(ȡ e֬Y999˗//((+J$?=R%7ns:蠃L(~I&DPxƍorϻuj N+Xɓ' Fcr3Kg.˒8B#+sf|5اO�@GyUlidSmi;{긛W9 w]@bN:Ӗ˚;wNj.]_ M-1t'/CGw5:k/4iҜ9s ŰaubbbzǾ8h7TҖ~M8� '3|ݮ-(H:RrUUČi5;� VaV\\cc{OF͊_0~}x7j 5Mcce2 P/Լ}U ?ght-:<}T.;��Ξ=;22222خrŀF �F߈AYCPx~swg�`kt0z}V# ]J"HP>|�0fR,�A6���"!1a @דRR͚5kڵysO.>f̙m۶w~ؔ?>bĈ?[W~RSS>} �̴iۿ�Յ={F@P(ވq˼ѣ###y1Eg>IQ]_my/R3ވMdP oxG|ms߸SÁL~i_h7'. Ϭb(STqGt~"1_/ $"<4"DRT/_<{7^"hwO~HիW;88hS.((زeKx iNFZs"8<XZS<̺o_uyYKC-PaQ"TG 2/S4DVc:t(??BDGGRҲz`Rq P}||ݿw&0]2RSX`HΝ;zռsP?7WSASѣl`:Z_[0 PJB%j̦٘4wڹ!f?4܀RWS0 hoL7gw=si4ڐ!Cz*UVaҩhذa/^pqq166qƨQ,#e kf* 3 +il>>^wDD"~͚5��QG qnr5-o8stBX ]M�ҜV=9V)truh–tc۰�Oq&ID2i4;Pci^Aק]==<8CllsPPCxx1ŵszc€HG5�똘-{_`3CPÆr8}:L&C;M&Ooe²21  }Q;[yuL>Ѩh4lc vJ2++kQi/yMUUn!4ʚH$zyyN0a555Æ ʞՇFxb6cS´\oN"=Ń~_|I[k[E;?:&jݬaj)E8t õM0NM "71,ظACG jc�466F3p^/ZSZWx4clllL3a74(Y{MYYɓ+r 5TV܅T/Sd<iqp9݂r3acb"""`3xkO'ևzpΟEs&A#6gAP7NmX4PTT4}tlGuŋ(gϛ?y}Y|_*Zx>9.vA*ByE(9m…_}iyz7. pw7&Ι+) i?n hlji`}y`gD|囇X\Xn^8v.8ߣjrX`U215 ZET`feeAz7Ym;X,�@X۸F6444|#-Iw*SG繱Ew+rLM em`h)VO  q㖭 �t5U>|)C+*K��6c#ks2&׵cמ%^t3{ٳ,//wuumTPsg/7.OZK%&!x<ud, M:j8iZ C#\K~Sc*�@!f&4KJ[>3 ZLA�wn4^K^6��c28Yמih|iMS gmb!;!*Ј=86/iGCkxYxzH*Ƈ}%b�ưeIc:Ӕ얼 �cqsIg%afff!33SN=u;=BՕ{ �)ãIuCb$oF%�� l�zŧ$1̽ٹ&&&eee?~7؟lcP[�+3Wp+VdggGGGMaJ@YGc^fg9Ǐ/JP5�UyeX�ꕛ> g!{1ӻ`Sq\erm${4���"`�cf c&hE)WU;xh�Vtt*ÐAxʕjc.Y?kn8�Y@0Sٰ)}ᦺN���8X|M}rYt[n.NQ햙ݴq1>].;(�;aDCx/=\B%U({40!X=۠!�=6: vќE WV"r/dY߮Rʇ\peH$ճ䔼Sxzz  CX.yk@SU;{z566[ hu29'3lŶo߾CGUe%7Hݽ(DStXUV^tmD<B }k� o|(1`mwɑ/CΚ120ϓzEĄy>zG&$9[qQ hd29,, 0.vaUwH>b0 CՙٹݫXc@OG,W~W)VQQQ!CE IiFV\MkY};ިÃF7|༤js QQQcdy&W@8"(KKK�>&p[oW[{|-s˼7vޝs…8_ 7nDc<A?LKK L~$T*Uះ3fhO?xǦF ut:RRRJKKy<\^^k* kz~ pqqçG0 �VlNDwh#��\*P��FP`UgG;_ BQ CaWg tߎtA~/>[_ښZ|�?~ٲe/]okiT\�8xr 6ڵ+YlY]RP~UCt :W+D8Mfff=;BMse/FYr �S{Cp�v f~a96<d+z{c?/_B߾}?j)..9rnN⢨|;;u4(9t2pg+w^��J[c<j�@#W4�,bcOTig` R+$ɁbIEyɡC9yN].?zHT~r{O*^Zl9bNJY%?~-8nܸݛʿgϞm۶}Ν۷oӧ;XyE4tQվ/KOhh >r u"Ɩ0~]_z}S[CCʧlO7d� :qˆ $:'"zfY2eБcu]EQ'''QdJR)VZ~WVV1b<]PP;;z(Noآ+X,`Y/j6lZ)?;vS͌OZUSRZ4秽ߋ:ۙLzK|.uq;/$f/#=~9{3mݣR8`Fy H[nCQFұ}C �$''޹#*47$(i8}7D 8&&f֔%;ulZKȁ/'Lw̽ 2?j"+AlBznC�EqѪ~֔#~,kbZ-jik :ZWw.ׯd23gjSK:Iq?~8<<|>ڵqnݿx&>Dďla遍_KHNNaIIIj U\<v? l_U>K˚h㐾΁Ejt`/<&:uJҠglV_WǤx3$:qY9l�ݓdW]$WMrOa;e|x@0o1tĉ6I쩣˖,40`Pg2(cGOs۵u#\#S!C' Gnn��@Kdmm: xX6yO|z暛m6yzzbM$.]z̙۷yAZ`�x LvnaޑAA#9wM aQ dc&}ѯopuu5 '\q k(;_?]7Ynˁt9+..5jTppѸq'|ƙ;w~tuωeI W7=Zl?iebCo߻+##c+[CFs߬Zy>O2_LWU%L? R~k'6fddrD[ᶕ rI=}];voXsK\&W?mkk�[+/^8W|n9�R)HDdS]}#?:j=&&f'O,++k޴uEw/ڻ̴~y%{\i9lH#ZܐϛEl᳍<g},Xb&sBצgpgۺ~+*w -v.%wBȉ):+"1#u"�VnZ]_D\Iq `t~V"䖍޻CFK" 9'O}p] 4cƌ9))iΝj5 ^I_D 6R!g5ϙmcc`uR{KC �{槝_Մ(:��\6HdJ^v.={Č&P&Uh2�`5vN뒪5(0f\yG=065b{4{ A#Qi Mx-8 :!s4/%uimkWkZL&ѣQ!kZ)o*ɱг?{03(6x2 EmB\$:bAb 6 pD* �)gRTnTjӨ�� r^I%b~wN{Y}Y;ͤJ@1eKz�$>fv5;wX܌\ f| �@ A43 �Uwv4\*E!tZ3$Ɩs8eK^S <^"3 *I 772'SzFf��C϶@viAj3%"�`m5N@"?w60 *(*˽… 1 {vF&Ypf0<q숡#<yPUէ={;w'-Kvے<nh"Rr%bIJa3 PLQ��vvY<wE?�8pNld͕~SK2,{'vQkL%= �aT(�}x:YΟ7ƅ kNߒaU4iʷm?|x'tWwZuhLX~.N�q7-_KsB6194&G ;ވgke:eX%+5Y; 4Q[x6c=GٌwJt߼x8YNvMBg02 aF$RCj Â8ou8y⋔7R1eȆ7J*Dʥ ⍫H$rG$h4 I<F"T \qx*Q2"LF"H!E54*uَv/px C@!)F!jT&D"d2 0TF TR!W(U8<NT*JE_jB]yF*�TTf:; HPHD\AHIAD d\J&F*�"DN(jRIe2 =QR@ aH,SR.U45|J!+8ըLfoIDR.W(Ux"J jT 0 jV)er9#iAd2T(( r2��&+ "HrrRh|ϴrVDJ"D (JNi1M~GviAA"(IUjL8Zot@&d } )Dr4{78<sWًܼ2ֻ86zD,'$2kD"HD zN8<W* AtFO9Z7 k9 =YhwVE6g Qh$ 04`ko$S�@PID2רڂ$;G<m-e@͠6@PoHBv~b]ϳۓfS4J/(ןܓ ]\\R():99ԱvGNwGU>?lD 1hߕڈDK&M#߉.˧<]=?xUW_s.I`K�jkk[\\eKΦs/Kq �d>{ȉS= d<x0�� �IDATyڤ$L~fc_л{.4ʉB/?Z̛=cW'4.pJsRS"PƋg.uY_ 7C. l<#X)6@NYJ* gƃ:c\0g)cq*44tƍ#6ODِ87KP]Y;;%11qȐ!O8 *Qܩ}z+vuOx|J1G&qGGϣ.#G3wtk,>ltcjySro#w^:zHV{K߾ƿ'( KOY6L_OO$^ViG�alc9\诚$zС?��.�op{h(  `}&]TgD� X u32f � U��f̝vҵ'eK6b ?'èWqqSN C`rU(bbn�H,n�[aW lD\NIuZ�73W3B~@asdܧ@E5ğw.mffN&Sl~XNGӨy07_¶CR[ ~]nN#ItB\:c�tmr5go˪j!(&ihR?ÌMnTs6E -+ZG񿁫Ob�ĐJ°9�FQv �a4�@eL JU*cɠS#lRTxDE/sO)RF޹s=+$$Jͯ�\vt# ��Y%0 9-$^&N|( & (T30pss۵k�8��& b9Y Yl3[;=,]F8>vəiW;n 5B�>|^����]yKKOb",ґ%+d2E(ʾR`.iU9ge rJ#P,*6G+v'D"-np$ ?kf|~ŐrHngn@FzN%rKi"Ax:*c3t_hqx؜MԚ.em4N /- idca$\E0 $1IpObO#NLJbvmĠMYDL$Pbdơ0S5r&@"H8Xl2.h0&e \cʦq0;dC<9y:Bݭ&9T24OdQJP5PV.C!،M@_10ZP m(BH]beD#"@2FǛdXS;u]<U_Bj$��d͡$ ��' :R "]l? !S;T]mmm ''Gccc/W&GG'2l``α vrr`Uѣ2idgN'h/wg' N}]S0WG+gO/an!tJijjjdd�uԈ('kdDbݛ#D{GKSSc̒Cont kPM$}tW;TKktDt$9"7;;(nCH !J@QA"UTH!@ 7=f{cޯ߽<3;is;y{d2OO&G aݰt(b{k+R-CV %!gpx")t!n[ba5UZ~M%�0,ҝ'ӊdDd8T7+o34t8$CDtD!y0&b10(^t̀z0P�0+uBLj争}JCm5̕ S~,`s;5M (D 4=0܋01ZezG˃ժ81e\B\z)bp&Im q,4P�JEtTEX/FIn0wdE@W *ņ`&pfwBDPaI/iSGێB'V/¤l<iÀ`Jgil7۩cl #=YJ D*%+k1b= bZˆOVH(i0 cS,*Fn0L$KY|*כɧє Y/qeP\(���0#~J$a;9u]6b/ޱ(88q@2b: ѧYI N |:77{8{ְDy E A�:::\ݤn5U y+Ef;d:No#`)Ԁǰ$9kP̾l"D MB1ҝ)e2 #lQe곏}Y3��Jk_7T 'qDŌ8=4<5?h:32lCZi 1kRdVk+);Q:\9*J$ȘE@Kڋj~Ba(Th)ͅC.](d(�� b;3aRoO*il3(7 Zm1]´t"GLv"9Nsu\)sV̍CPCQE0Pt2�8*fIYg2]]#J71 %(l$)4lj` wUT>,' zQJUfN%͈s*nWE<yvG] _S[𷨠�EE3,5�E~S't-U6hn55lbL_(:"SĔ5Q\�Zu<H7S4=i4AzypjAH GRtcYjzI0 "$>PI&r㩵 GTi,*aV%C( Z{Xb&aV&JFEFk*)2OG$@@$*`IaX  8\$7ʞ5Q& (��0^P~5Ug,6A ì(TibnJ!ZC�&kYUZ ThaEzs,(J05`f!*|&IގLwNu{ZhwT/hCfƎB�m׶yzO-C{? ;s#5<?ZHa<װ9>Y *.Y#FO��5L (Ț/zf^]|{^grAhD\_4& -L;6Y5T . Xy䶴@59ƹh&6$u iY72SgʭejƠ6]W,jEAJʚ1gu*Tp5W( Ff[1C1irN[Rr"~QK0ZPyڨuDQ*wbmmb41aNFe�W8d#u)4]15&R[T608D̆E-f2uL' OFvq;1.U*Q- =RL֖v �ʛJXfnac,擡 my?ioW?[ǧ*[:#��OרdfN%=o^;xӚ᜿ҷF!? _l6F#r;,5Z&?s%иLMNݺkv fNa_X,/!=~CtwKpppw{IJJ􌊊/ .\?sq/uVsdeeyxx8,s$&&S_|8I9Uhy 5a<zAQ5k|]plZd0č䄞Co._rtb~nZ:o��2,55uٲe6mr\p ?W-�`_8p K,ټys^^^EEd=Zϛc+q2 Ʊ3 ܻ[-͍V+4vK--ڐs~WNzw6?hlkvg&?Ox„e>ʜ3gNWn:u+==uZŰ+* u.?I0gn6f{痚zȑ;C= HOqZ<>]�H$jya?5iPe�e.Zxx3Y=4~>>$bC& _-=q䠪Ɲlo p-OIO/9FύEקDdЈnr_/ٕ0^;osVo ,vr:Ȩܾę� w߳�L>j@gw}4{iiiUUj:S#]p73߻w/00yɡRy+΋ܸScQq��rh4^<q�yl*bQ��zb"�XmF�q#NQ[Ȥ|Oo ���Óa`0Zz-Ht%FfL4YfzNEPlr�Fa3-( :�Zh4"):ܭ EQ:ϡ d �դ8~0L8��UZm06l؀a_�} QlmmY3f~|#e*;vLSfddWXgga7o|Q=ٳg�䬬TTd-XIeKaƃ�`jUQ˫^d=Wz6Oh4Du^b6EDDH=Hr[We �}+ j/]n%p<<s1r4�ٳӧOgX��:N"ƍw7 -ʋfINJ=qb\%Sޓ7b���x_jM I2s۶$18$cFٻa Fp$:!&tGW AsssR(b{Kvk,K^^^G~jm5}{4"|{m[61S)#:{͚>2ڻIc;yd܂շ(q, g3p}TиN>/$#W, 2 >d4.]+oխjN{ay}#̘=W,�N<YUV@&&MZ[}#5w3gVc}{v.O~!SvfϚ|5Ge3>pAm5~b\/ 鼹k9W_~eSՅM$тy8ݻ G3j۶PZ2} wڵ 2xpS][㾽{U6"E͚)S[ȑ#ׯ_X`~ʍs70ҹsgQ{v5Ш87-%%o]|9hpFGȧ3MPeժ rb=aOzzZτ .t4@tA%`6YY O(NBL0�Sʽz}"|׆K.kmszqpN(U-lZ5MxLٿ2n47fdU/x];T5W6Wx(Ժgݟ.NUg%ݹQyQFU' ôZڵk-;97:TK|._dhoX>O6`vEi WVX\\%RUvqj6UuϲHo:⽱}7OPwny1>65U;r<<<֭[%֔~7͟??a+e˖ `?\ZpNߺuKY*+iiFEE]zn>STI,=SL>)e5s^իW]Z|gлT-a!aI)'7,v}u_X⺷~yuz>_R\lذaG^{={l\#FDNm۶mĉY}B|ߝMIVTU_q0''\ fΜv̫''QQ_5fD~wF׵6џ_n-|i]Kϗ+-Ϧ"(:m槹5ꦢ%+&]Eu['s?3JkiGvm(hIoQ럦/_w(%q30ldm9~9i4V-\L&7{نԪU܇*y[>+|]'<H<_,[jI T_o25H(*vmoݍ(ug>�Nkc bjUkwq�?_ ZK0�{`{M^y.KUTl݉G1*/jyNΞ82� oZMǥkuֺf卓h H �ˤ iX_]sc�كlDLށT2Тv9,ڇ�&bR]D$Cs aNcw;o0�`--uP ] ��uX[OdCNzzSν6T��1U'd]EMw7"7�Â80<D�˱&4ˍ3].ȁ%%-x%r% g-N _��,e5j*W�.$< ף#$k}:{յ$@{nʃ?Ö~駧3r^avWۺ6oҨ,'A`ڴitw~L%K^סRihܮӮE壦0& A'�C`ۍ[%?3bʸU5Yq w6e;pJʿM޶ϾՋd1׹W퀈T/7 �n}ܺxpJ9uoi,AϋvHN-**:̱w7�Dlz3kS� DLWzF0 �hw : #u|c0٣4y+ڰ~ _-{Mv}׏;_*{˪RfoRqC vC<'%ٳ'asM{{qsseP^zqUO#c�~^D(6* �e 'B͍'[h4^B]%"J-7[Lx&"4VJܲ2___}EqrvfY- uZV}QB@Q1nP7!<Y"I{p%7umR7&T[[)OaZMg*hilי$lEmonU@xDJã HTSS# i4@gD֖f*rmmCR _f֦-17n޸hiT-vUI 4i f6_gZjT*tA ෵4z:$P*E"3L6V@$!�0D.oxð\.w4\. Z;LN)U-<V%xdެS5ItŢ25l},dbz9h$N׽2>;@?��0չ�X$qus�RP,?x�� �E.n~cU<Qlwv�l3[i$uwEҡĻ]Ә_f�L&? գãӧD׮/e=ROO- ǁ�Dp&x"[G={�8Kݻsr9�#%��XB&�� �IDATz~M,< Xwu��S-$5#7nب@H$Dzqşܟ<ypy,@U_w^O�=R\rGگ_~R0nܸqԇGWg͹)1d*>N; ~{衇^/^d]xm#�ͻvdsuh n%pw{�PRPX2Q>RÇP(j~ cA`{j:T?IImn㺇xs@f~YP1A^x<i}AT{?`ƍ}Q~A#ݒoߴzhz2CS^dn泐l{��=f̘.{Y!}ポQ@�W�sssݏs cvctwa'FȵCKΞyTٯ_=!˖ sj___oogo RyL;tb~R^^ =wWfdoA4Db2}IFG3<6WeU �ȱ#_Y bne"`Crd\_T@ph@Pr+ C20d2BYB&X71x\o9FF�EAnݪjN VYxbm`׉zi~GӧOwvv&/]֭[)ʧ~fyyyО>}f_m۶---555�@LϛY^zuɒ% $?N87Twe;^rAMTTzݿν̸qUE7R�f3� 9Eřw#k7~?±qAJQT;۠U�=@ ���7_��뚚lJsuuIYI}Hc �C�p�~`0M4oL, (>8rZnr7n/2*>^�ж+z*-5j*բP(/ xJaDlRAdBxX$8Y[߬")"-FM'3B!C_VZ%vHa8xz^n801*e h *(+0( 0$ɸLFofrx\]&9rHB:COcrllUA0I$ PWWaPF+Ŷ6'rv&PZ) jF�Bp˖-*j֭ X5*Fg"ӘfݽV*""]]]m\`H$ ¸uJkYte…7oG�&}B“b!f(42Qg$?q… $fߩ昡Z[L6Q6N&cy\vБ#G:ybJSZu[,��*EjI4nt<n6<&͌�Xg(#G 2"/a{9?Ɂ|||D"QKZ^D{?ɁA>>>n:r4/w^VV`_?gfj0UUaIuKP 6l4X,X,&HbJtTJӽB!plՍaHoM tc0`0^YuL]DVvۯ+^x_ZV+W ذnݲ%tE3.(?~/˧9sfر]g~݉Vo.$.Dį^(tϖF@Kk瓳~>CfDy1[1JmKyPpȜ9s%ɃF,^8/$crnM!y1ߡq<6O&=U I$!,͸CĄRrw%"u3fͯlQ7UG_=k&3C*2OluꮾCuDN'];kge5u'~K"׬ݿ}YPxyy8JC7Mj.XtD"y)UFZgwI҉A//aqz\CyF=},a'O|͡T"p`$h2nԯ?Pggg'$$MJDkfٚ'EMXxպDpvjPD4J��N6-O+cbbw=PW}#1?w㔘c!kOϮP6U:fk.LGw8o[ZN �=diT &L, \wuPi E܅!=C~sJ$�p-.wׯg9 4҆y|ll,�1qvt|w?Щ8|B}B_q#EbW&/:xP'/cg�w2s*}"˟>q?Nx7~~R �07Nv8nCy>� 6a칟]?n5&0FH{tUG.$5lvppP(8p`rܧ )GϯZ<!nnnҹ>Y<o"::abs~: �`¹R*?~x# C;B֖ &Y,fW[NL|@ ; �7oKg}&YmU[I5i�}.Zz?9]Y_ػwoB1rȮ䝻L ^eeqځ��TŽWn>%f3w]Cˆ!~! ӧOii)�Zr=s"tZQ{1̙;w2֦|{ɹK?, 3bEgOl:\lق"t*iX T5Ο?KDo/�+6NӔf�|dNS3ճFaaaMuLPPV EUUb~{Ѷ&҄Bӧ;~u}$d@v]I23؋a6�@qubn,d677kKXTI,j cXIv"A!U!ƌ@s$ #GEx4V8.7&;R Lڸ{=&OJkj0L\g@VÂ$-uUy: OAd�]@DoMp!wF p�`DdB0/iqbQij]sE 5Fm#vaE 9"̭YVA 6e>z_wd|Ei,;�`�8@0�?,^Ufnn'\Xsl0�PTd4-~a.1cŦhʶSVԾ`Wi0�AxcߝDҞROw"ez˧eBkKKii驩+CB 낗@^^q{GmʽCtAC IwZ4J JJJ􉎎HMS* u0& b۵OKf/Y$TSJd8 cƏ ^>w+<Y߾}x ?ʲ+Wn$! ~`iL&СCu1bAɷo>e;yJD}݈71yM ubxȀ> 56<lUsm='*[goSaa￯V ðajkk%osRҽfu`Xd qqqAAAB<ҳrjMDD#Ro_Dp+)@H[tJɲE42ք'&>e;{{{HrSn=(:r^z6DbX6m̸b/Btׅ}c655h}[\~4m}7"<0e'MsSE^"�W^ xH#+ h>u:]xxB Q,K(EFFJk.T4Etopi24o%~e^fjLWZYYY\\J/޷bpc~gX`حaZ=^ ^GfΜءeBю;MHDgϞ_~=77w\Gt:nN׬Ys_;#%ӦM,kҤI=R;xQjϯdW|h=ËENܿ{;=-Mӡ0k�@&=x`ٲe6mrܻCM_�YO& [~W_}URRR]]JN$>bxsfϰtn8{E��ZMgΫn& brqzzClK.]CO{sI^^z+:Ͻ7'P ͨtgܙZa4d=z?$aĨ Ϝ�wiv�KQb'_4�@��V`xVV5t@:z9C/1Юj/S6n)HxR||-[6m$p#}x"��q.zҸaOҕ?r mrŭ̒F˫ M(nڂe^__2U W555uuui򲲲Q(gϞcǎײz"*fB6C�ǣÎaxt$)�Z�B��(XAS�xcEE._;CcS s�8@$bo6"dhǍ�8i`hن)$lVK[2:Xd n\ߣ&e˖5J\!omڹsǾ}_ Iܦ]??c*J 3yxK+5k̝;Po߾FmܸOMٳgZY^Hh7o 1bDZZZbbÇ{sܼyݻx<> /Br'Mz~(Z^r2 t apN/.۶K.EGGsGyL: 0|pA�lh%&>!apIIiz;B~0eI0<pp~vg%dwwO^9yYY 6$ac\IS"'ٙ$*s;v_GL&S:b#2ͫV񑑑�;|nt$&&^~ͦ=u< E]7$ojj 'Ol">6ʼnGzdrCx ;}g7Mq&[(|VuQ橋7>~olll,ۻw/Ja'd޻~=9S6㉅ywn^!}?&yvb=}L} .Ydt^jz=6$]Cf|> n^Yo;#5W9ut:}|BK{ n-}bg[!\?w/;<nS$ea\i;v0D"q0Ip,HлhѢ+Wt#G[ .:} ʉ;~|< AK޽fr0Im- GR1e`JE�.^�:Z082k0O?[%;9_Mq bxgXlK7o�hZe 0O<P=m:KZ2zؑ�z)n73e5k1Gxa۵Gu[sUYnS}5+Fav>3-)΅ʋ2߭78>9`j׮]koݼQ굫%6^v9s455='䔓b RXY>v䠣rΟ?]hoP(kQ--*e!qɏJ?>Of d*i۷pY\lIuٳgUf%]Y?u{pdqc{WW^u̕)Q(v}]9|qTI_la iʉFo;wdd"Ykmqb~ß(9CJ.�޳50"qc~0>TV=Е'[l {q_Ϟ={<r(rˇp8Q(Ԛ 777:"n=_ ]Kdm-Ǐ߽{7a1b,.-e'9K7.]0e֜Vcǎŋ_ٳg-\t% EI1$m۶m{ZUü9_ZL~ڮ+NQkކ6=ak[ۛ-\cCCC;tK*[>3ۏFPZ)}Ǔ7nܸVAcj*EICe>$/Iok[ߐ̌>} fV{ֵ(h4ڂ ~cǎ]_em۪:�PءhܳO,u&km_=��Y~^K3 �ɠѼ"%WOߴzUX]de؆v^Ne"Pp p3$J87 *\2o綖â|hZ:8fZP*wa$Hdb6gW`XΝlG^ p=N"o;'WBѨ]\ TjkݝN<k�v��P `�bXfe;! c0h,ڵVO۟ J6["=Ey1O3 w.Wiol6SJRFqoFzA�*s٨xz1}\#/8ί#9șkyυO�pmͻ8":�K\=\a9iՔ~8={247�`\7{MGwe1UMz]fVH3cX-NNNV`Ѣ|0!!6B@xdi>Ql 11~>y0-kI/'Lo2 >X7`lW$a~F>z#4+YeqIIgSV,4dD;%��}>}dO^8y)JJ|£S�4˛oN-}�F|7;#Ǿ#ξCB]Ǝ_C�~tpLPDpXbݮB��3#'7;7/:C̈́s9y^S83$�lsn1h Ǎq[A2 KVV:* mGɱ6`Obq8{G9@ g# aW,];0WVԈ}B\֖z�۩~^eå<Yvl4w5i-vn~p?P]]][[]ͭy$---<<N!䰥bfSmy*[z}If BI.+ࠀ/Y0l( $@b)""Bl).-'"}rs<<<(YX[YY9G[[ FGG�L:uQQyx38. (v0!u**, x<IqwwoyVU*xIL%/SSS ECCC޽>}J$k+*eMd7((PhtGg>ʋe-Z#2}͵eum,A#3u -("dW?nsD oC,YBmMWh^QVV֯_FCC@ p8�(J| ApBL&;j-R  {_|ش¡~>5O+U\YQ\ c -e5 D&#"Hr?~Gݔߒ{{{/XeFj}||_2G??ſoSzI��� �IDATTT"Z|[~5ĺ֭[=cΝ/Y; ��??RӧO[ZZ0a³{:kwHNN=ߞBՠQddd!ꠄ��Jo>B[o9EFF :�P[*oqrBCCjN)i86X<NɃ#.0y}Uf^OH$AJ)}꒜x=v#,n Éb0'6eע4 �hk) qδu'WN9,FF|+E' 07>ͨxE!%%U!A8 )). .z@q0j,ijH$R\\yuC=v=9>�@$ۧFF�.l&B-;��?�MOO?{`jʇ5];2جStCBg0\$eed܏;��ځe&%S"*ZoAs펽�Cd"~m0yJyCjn5^=Sց<օrQZs);'(~߉;+w o{*kQ=A&=^d=TB<wv^A N1 Sp5 ~{İw `�y};z½\][ ٘l�1��Lq8d999ƍ}IIV4V>ˈ 7H( UXʉdKUj wek:Yՠr&N奄7ٌ+r$omp7nr8�@Qo4A~^\/3j1UU"V2t×?lkwE?^]]m2gv{PPG}Ju<�0idKwƌ+VhT*Bؼyshh+J<677l*z9J駟tGGق l�]ep ^jZ? B�xDh:Τ4*׋TN= "Ωv2wELjFFǩ37]Lg�8\��CBY2$I?b}dAnw}M�˗/'Q7*ժq 36}ڂ4��pctxqnvj,*a@L/U,<�0.!&rƒVyG(Po ^.d$NbGŎ^B˒A:Ӡ] ��p <yKzѣG̜;* ڵ{رB*Jn: #Ae˖u#q÷Eixq7�m6Eav@6 @8�AjE1�xZ8 (pD�"v͎"�Eݎ>**BL>}џ| G6;`vEx# ��x6;9vV+!(`PvՎ`0 x�nC0E/!`j`ǣv/{(00 pxxb+Wv/͊cJ , LFA"=R6;8رc.]:~xThb xA "7{;vIF;իQ{�)S��nܸ05U߯g2GD~}X~`_}H$p3'دR37/�9cܱ?$};9^q>~>|bW>�d_4÷;jhȐ!�x>X۽ۧ�8. ^M\ ~s*K2k껇w(r�H$A2e'DsV,>M>/<s,8F+}x\/?Sr距.#eeQ/mST2x�J /VxXJ5c ;F&bsb}< h `l}}OI$ٴq㖵_vwх-8 9c.ۯUfK^tpFQi03n;>4\~ Y ?YoTuʥ5Fz󪯾Zv-ǫy󦿿�ɜE :]cv8uM�`߾}?ޤZ@0Կ`?ӧ˛+rm-בMK˔F-;f,q yq{ieE?peR^HcnGb~ebgQڴi˳r ]Kذqc8޽~;Q{/ (KƘ5v.Ėذ"9qHL|"{>x}kgfg͛rwwÇ/QjN~meY\T*vھ}K~{(^P1qɞf䯾qe^xݻ}=֬Z^b6Ul9rE뿜61ƭv\+>Z^帲 C'TX_mR نZw7$8n`q7rWJֻ?�tgNNN#m;xrshu6g�֮\g[AɳUUk]7�mZ uM,y-:ˡk?ڡliwT E <`ƍz#G}&Mf>?|�>_! oϡQQQwvvŒIBP__,>t]ʙ�ٺ$&`# \swZEIأ\qԜO^}Xڎ1_~W~: T^i'�ʵȸ_Ǧ׬S[N۳=r!Bl.b<dR*-z>xAם{^<xTN3xf{ٹԟ>wʯ(4ڜ+x×뷞^Qmy`{|2�lM=�ǎ^9ضv‰l�@gi}Cl[1f+[|F{z{xxoo襤$�H{uQғsNzz<ޢ6TVU翼 <L|b!N8l?Q\Sec6 \sE[-}~KAc Mpc{ /I!|Z!YP d&L+5..-ũe.9d*K3 +�x2IU<Hټ5GdRPva*9�6u(:w^VּK<Ƣ"*YB@kj" f� �0)x\)(dbM:�Z(A[ q �T[4\J$IݾΜ?g$ S )͹U" j$P6̷vI�GQD<@�0L1\}⛙<6@LE@MNi͵�"F6�xM'-xHB}='N6<qF+T=)q`mT4�* JL?TuÛ/7Cz"LAAAт !T]�s=sDG#^lm2J;w5 G cǎ/Ax;2 MY^{9}cBE*#4#l{fa,|*;{G$#yukE%k|]޾Cd u=L{`  P(a>0;hPכG/)W]Ljg:\ݽ{w\ @'N^Ԕf{X%?|i`jb|[ A W.q}M8{{{�r�utt{S^}y}C#c CCCuN0ŤW{Frv6JR�(N޴i+`޽R<.7oR)(.9i q&ݭ['O/m_Ϝ1:'5�%l6H$NZ JÆ S?8Ǝ:t@?`$� ؐ?Bh|hBCCOկ_'ܹlٲojϘ?~@Ss3k֬=]++Iq1tҫW47@_gĉs܏MI̾KMyлR0 ۺuhn 4[Ջ'nw_Y � **Jm;tsK1'\2r`TTT'1f4e[] tKX�ظsFt܄+W+݃z& yEf^:`Y[쾶ˉ8-̯M^W)lx 56.̃ٓPMРA 1OO�(;� $'s᧋�=xEo%�@EE�GOmC!.X3-K@d2Y Ze{Z`FL}e�xoa)y՛D 2M{"V(ou sllߑ[7X ,rKgVJVu({[[[EEE{OԔ)2毶V$}ޮ)^q}|rµiYҎn5WT*1 ~tJµ'/֦T-�� T@ĜoXNn,k,zۚ�mKġYMiǩ�$PYt>_,&jH~݆k6?{R$v2� =<6= (^ND2w7n|31s|+>TΟ?ٲe̯iۮT*ZZZrss?l$:tu)֬YSUU�ׯ?|g5)yYyEe�q9�<1Tu5nB.ȕ L!niSN.Bm{7wx4�%6mn, EQU㉯:Y,U-Z<4un^GG�OzF[#l a7 "3z]/#RiO-kg9C&ښB RdH(?^E =zT*4w-/S*d.f78ʕ+|>joܡ9\p 2?XjgWs& q yfv 'gr r[~}YYف/^|-6ͯ_�׻wkLr�NaXXIkM:&TV߽hS6l$[nJqKn~=QR\Fa݀] 2_ܼ6u>$zi,0'MATطe} qz"-e[;[߿yɒ%� &\̫lIkpp .\V[[^6ƽ':N 2r+}1莎E 6`�`7fX8EyAJ1rhл{mZMKII7+I42QZ,4s>M2&lhS}�%ʾBt6e->-g/u=bF }vfZ^ jktttH)zcǍbW4HG O⋪;B|TT[^SY5Rqkkk@( R\.IDI$B+Ύֶ6LaT"lmmRR.kkm*LR :[draBPTb%"akkkHaB.mkk$VXaR 2 0B!W(E"nۻ?}d=j|;ޤ}ߥC- UW)w0 شiXu'ܸ޼rŒӡH$b*e#'/0 cgfu ]}0^d M/3Ғ!.ͬ{ˊC]_yaXfJjIiıCx?q_3'ۅ#~CǽLr?d&4( WZ1 :/c˕7s<z͛lYg׏{llzyy%$$(R ^9y{Qr:S˫*槇ŧQ?>HHH00}=!S_8߽~gu aر/+L3|rAHԓ9v- ueM^~a޽{'LPWzk\ʛo#n=~$gGYωb==dLW_mڴ)7JЁRx;v8guE\t] Ֆ-[\1iڬZx[[/y5{TC[Wo8tI*zAayuk&o}IQֈ' Â[|3w.|/LI-G'm-OZߓI~5Ko_=m-\ClD6k$ �H$��}"B$Q&p�5P-:g?JH*}Od}oHdmһ !Vw(`vS(�ژYot:MM/^<[$Jr%o_�ͨ?sD͛*̭lꥍG lJ)|s[3wIN�:7yd2)D"x:N"5z` y[u>�q455}?K}l-3fWܽtJ-E�flF3F*T܊>vNO_4SQu',_<~UPqR҄c'p| 66Kے3*'4!dm�0Ӓo奔@ hii_V?ؐ׿ 9�0�*o *\:ՅpDEV!A{#ЌBQe2=67өd/- �\]]4L>/ˋ�&`2 'q[QPGtsv B t{>7[\ 0VV>I&ɕW[s [ g/�p2$/RU?Ó(4�goe>ElmmnX$ݽ{לo#jsssjZa?ڽ…sA.cB]3e&~Z]ämڴmĈٹ<=V3׼ 1PЏ4z3+ʜҢ´ Q32b2d(V2߿;@cMao`o[W4 <H½ԥ;�;5p>I. dv#Rp*J&!Οt\ڋ/+þ^}JE C�pߛ8kZh/ڪ ,*�'R,jviESS� tݒrP`�pL Q_pqjN]@8 oGDTqEً#caJeN:(?/Iwuv݂]EP@~%7ٺ{K햚?ޠ~ �(\TrY*y9}Y{2TKP en+�!.Tjb셇hȐ0gG@$әڠcnmiV*d4WNZ,}״6[Dww.X/""B>5Sj3qs6bTM-,,p(|Cbt֕ɨݏ92}X_ >mT%ߨK4ͮilb133plOOU:1bvrr [�� �IDATJ�:::<4W8>5/ݟ2|k`__&<=좲Zs'#S�ʒ.9է.egggmmf y<W mlkiiihrMLL<%>QU͙K]mWQ^nv.~M%]rOmrGCU?wB#=?wvCCsss''';�Wk~C}QS۳LGGG===O)#PxдXT!144Te{_^VV1nhDcs--9N"ڴ lMEUQԡ.kDW69tlvD" [ VIa!AeA t:ի252quի_~ɓ'/_|MMۈL˶?Tob--߮CQQh]=}400PS:?^A10}SjI)J8?)[v!dX\TT)ANaE{C~$(}zAQ@@ ?͖; @rrq�@p l_(Gjҗ[۰Z|>_(b6'Oն2GAQ+T( �.]Zd JjiHvVy9d.mCS #ꢊZPZPXc8- z&BL&R:HUiQCK �bA{AakmiZY^Eb3;.T[TVͷrզ5TUԵZX04Z RܯHƁBPR�dBr}<ɪĨ�^ m?9x] Ӏ$gkuTƅS8j<y8#lXPiUX)n)}cC>6ig.oypnVvoNێ7v֯,2C~ss/Zq_en_gnZg>أ{:7}姃l#惬_޷M,h!X=o^OqAN܃b.^o*/l++#Gg;}Fs{Rsia~n˗s�f|gwlItΩ N+"X �NNNo޼1&ݭ:ة؆>6Snj<aҒRTdjr Nl)*ʮ?If ZqjT˖zF ͛�S/a[c �X4oŖ-[QG3<q"�MK=11155U,Q,000<<7&d2Yldy'-YYYIII˗/'a2^&#V^_+JDo.U*H""�*R.WT*BA$RP* x<WW�ccgϞ-Xs[}zbbH$?~Fq tv^a:tzs" X蔫� 33᳃vJÌ:�rE ,y} �}3lۼ#("yZ(�GՂYc)9�PcS�3 nҧW�AQ^[N'7lvxfc."�:䬂溺l�`=Q\ޅ�ŵůMEnv|ߦuvvƎ7v;M勽`P```DDDdddddT*={lMMؗ]tW;"##vfgi]]ڏ=Z �NG-Rp=OO?h\)W^|{ohJJJJJJaaZ۷oߣ=4Z>)ܧ}1̱}^>|>_[[{lݶN<}z^^^fff{:s:�L'j;܈"0v62Y{6/@ss3GG$&&N>n}\UD&͹/ �_͞y^xںk:奎c 9o0 �f|TTIcl۲m>ގ׶obhϗ6+++6 HT**؈{2eJd cUU2|eOc-4?�444Dmp^GFsT֭[׮]ֶuV)eBLڹd9sL0}�]QQԲk޳湹:}WѦ0<ԙ-Hvرfq=:T_ k\Nm9@Wuά%t cqͲ-kuW|n_mw7ׯmذaӦMcvCI[8)hoMf3fTG铃 @T_4zHD6n\ Tx:z˭V;ڰ~dokǿl6˗탃oXҦđ{ytmϞ=CB=I[`A;V\R)$UP0jw;D6f0n@(JRëh4搰A=Zlٮ]$$%g_s]P>zhͫW>d{[PODQ/&~qc-,*7[S?jqw/vYX8�}�CC~zz{{l;`BV}9V �` _'rϯ"3tP� /dOm+0{6FE|5] FV8W3Ϡ!AC{6)zzeez%<C^]ɓ?-[t7Ee' G|Ks̳ߤSM{Q-hKwz|#'F vaȴ+ښvܿ4'](R-Vm|ܾ=[jA(C*VlذL&\"rqʠn�Ll۸}Ф�p۽ceߐQaB6j\*^e:}[X>ѣG6m+#w9)JKK˰i_[AAsE%@l#?{nϑENf9ÁüE=wE)IN1y<ެY]& _xyY敤͌=C5{ٚoЈG" 8E#V#Il<`p< ]rJ5_fcmћH2}3[G[GGǠ]v@&Vd=K/Gȍ|ٲu)Jmꍛ&])DpJ 1Xasc7o[QƷo\\] uJʓ^=s_OuL)6wav-Nө8ڷAP߰ DN# Tх42 09t{of�! Sa�"sp:#}&�&{�ki$A�Ôfϱ~஍}"Z�"A\=++:mvi&T ESRw8�{e1 ~_m ECd---BĤBKKfZXXt{yK, Ekkha*!� �-6BccJo(NQIt:E@ˆ(CA,mlʋ2ltS0E$ǜ xb0w sʕ/^r뉷")+c4Y, )pޞH$X,�hjp=PT---�Z픇IS^dt0s F�&h[aV5WXv joNVu"6 �FURR2{lJ d2%N1L&D>QV_tJБ..=*/Q֎lfz�ؽ; =6�p8_}pL˗/[Ej#]t NDb2F<b,yD"xTLZZ:|<BW,Z*"O@"wNS(Wnܸ�6lؐ��#F(//<#L&p8u/\r^n?C(Ғ[(KG;Bwe�0mˆO*.R-!@P]}~ؠHGsjkkiɡg4hU?47oz[gggMA1n8M&h {]$I^ ٳmmm�d25D z^qj|�P^^SSS6(N P\Ą%Ğ,m4u>ǣ%Y3ҰGOv!_}%hJ#G<o7Ĉ/=zhJJڵk>|8v#{ e*-͌Iꇣ?D|={kРA#:2c2YC֑P|~PPP@�1_èP.w%?Or7ׁC"*);,}M� 77wذaOKw)JuСCO5bĈͱG_=}AvnAryG�uT*Jp8?80\gkР7bB"QM3{=>e2jq6e09Չa�]>ֈ4NN)h@[c3Q)pK )JgϞmnn.v"t=ü>^Y޶g e_u 51+,, =tPxx8 ogkmi9z(�0؆#Ǎ1֊SϜ9SOOF2fxS~:Yv῝;){sk$m*^ӜA893={ӳSߘO7VԵury?oωC;DgȐco]BXcNjIyVbVh:lۺې)InbbҟL&ˤҧO&% \)G=e}l\}wd~}Ž)$m~A�SV4zqYccc- u[Ll]M5mR~LG,/t@0={R\f (7lP__?k,㗏մ9y;ۘ<y'T7 MFzUsCgggf=qho>ee%Ż7_Q .899}7�d21Юk۵j^*i -F?DMUE5mV.^zaCU}B,x'ɷ]]<h?%uqݵkWUU >&M|#o˯l<wBkkرc߹.y<f,cGO_'',`ggggyY) {Z\/-*n uxJ'k&�2dJ1qEM@|vsؔO#uQ!o\2LjoڅС eٲe�-ʫTe ٳx<AGp:yۿ�'R)dHzΝ޸ޝS>x匯>8FaZ&IӶv>(aWB35Ϟıd|>3VDq:G:t,Ilc몺,lϛbH/y Ws!EaD"V[[;#7}`胇=Z%Dm\6Xcgmcpy<ttN#w,ErM Iuuuzz:�<z}ᯧm*_%�ptaθ ŗ·MF?ݻפ2ݹu3LYc_fuӁAv>{ƽǖ.],)HL$B}F+"N=== s3OWq n899TQGlQ:<ި {-\8kvxB!ÔJT*BVJ͝`ٳJ�mmm��ɎGy Is[506YXh@PEw٩^^V=CO%HtcZQ^ngo_WSKD(3ןU툻2nз,$ꃷx{FEJ$ƍB?TYr-۷g̘�hRCWܿ,lkFE2N7.1ջs)x8K$-,, FlAcyRr^\�>ΎȔˈ鄕5FH$K?Hd=dť{՜6ԙfP #SmR40%<Ԋobxքa *ʂj@߄kr (q'?s5^9ws_�qi2s��kq8[[[Rӡ/Sxz_05PhP3v yqRi]}\R*U*%d2I{ksGMpgE޽{^(uKK9jÿ0a9>>/f!B q32%��d2ōGopE4StΝ;w(".#`Gx41W(+7GψڸhP. 'YtlC� "��uۚ ]kI=QUTM9iW~<�dΝ;PŷF8�)\Gddd8޼r?�8VA[pRZ#D�n��̸Ls."xP ǴOa©":-m41j. 'dfQ�HVc(ۂ7:fr"H$0 d/- svtD2  vkKR!:3n͆$2UFAaIAQIAQI}C_D888FX4C6M tLF` {n^YGbسTO-\nDKY,~6f3r|<\-K2SJZ\emjicm[PK&0<'doooddD'r^6HXaH$7bdaX.6|km&%=====݀m@cL[0'/I)YZ񍼽 4Euuu5E3�x<2��ǻ>N4m>> -u3!bc\h"VaßE155p<-Nc/oo(p8>vt& ˬJ"A{ [_ruq{};[$2xƷGƷ +ѷ)ACeRJK{o0LYZEg} ՚$D"Qqq+ 4hx5kߎPŮD_?q1t֭߉5K ,LWX,�<OR�@T :;TC~PU$MJo`�Rt۶mk֬15"IS(JD]B%Y:JqHQK(+ (F :0J&AWbkil1.DKƖ.@`` a-RGq9:lSD<aOuPLX/U-B QAHho167KrtZ$RP%Ķ6mmmL&r9&䠫K$lTJXD$5 7r�O+ 0��>WWO]~R|GkS{]u8֒7o~qu6¬Q1l}nH>7:$**,31֓Y:҉6/!=\\Z5YV5g`q�� �IDAT;(L@jISbPdC|�М4-]:h͟pF6$ [nݲe '2RنTyYu'};a&M^UY5Éotf}f^]2鋿9ocC}=? y&CyIذ_L8zL?CX:VA/nݺk׮|M뺎f\?@T@wBq8Mנ_)X܇:]~Ivۣ�0{8-NZ)jSQ}� f 鋖.[t1 Q.[-q/om_܏w~<.G??}˲ >Wo]xw4vl�xٷRVAl\CYhQҭĦ꼧w^n mWFhѢ 5.Fx$#} n?*r^E=cD祟^^T�̟?vBCz/_򷙶dj#tw;ϋ;�@�P*JE]]BAg~(dPWڢSCG@PhQQ=}2dLQ+ Bv �p�GP�Sh<Ƈ�NzŽl9@z~XE/!erE!6DRSib6G�3eJl"D �^{�i71Ql!+P/7̵͢I9%(�x"<l�@% O�h�*`$(8y,%9ށGBçxccU++ TN u{ckk[===&9i5Q۷İqOrmm\}hijӴ{!3{O�(..y6C6nbDgSfcCK �Kӥ0i:B111 =rۊ#h ư7nfL&EQKKK�p8x<}Sr`�@FF�p\2>cvL$ᣬ] LjWn_ic'ϴCa]M ?0mQa'�~.Q#txnTN</f~G{w��@P8EP(T*\&0LhZ߬ჁCQMߕdƦf. k͛k&׮]vZ2.H /]X[Qw'Sw}iӦq3_{+r&� ˋm 8T ,rHCo I[ UyQB.dK/n*yy!;ƌ M u6NWP*?5TGa25wUQ,/ĚVGǎ<cR0LUX\dcR)1RRh腚R] 5"u3A`*<38|1q rjO&g@T"ghՅaZ1LT)4{⎩LjD>rJTaOB.I%xSaJ�(d  JT*5}%J%HBPȥTL"V(4Yݻw?ԓ'8RT*9шgJkV RB.E%P!ȢN2*k2W_L*�kK3\P)5l?)<%g}KܬJE;*D,~L# G{~J/ t/2Uw\$=KWqBPbbbNY==`0}AG+?D IR_tc؀49/C{cUxZssss gN_BsgO&Oea@=wHi1m*FvxQuSpʼunj,ًbE OgT5߻yͽ`24SņK7= ҙSe=IcFǞ~[9yv|hTP*7~չ(o�AfLK+h6oW�>ԣ�V:mYn>VMCaߌp}OWmRWWZ|[O}Ӈ:NȺP˜3}+Y_u qR%k׮{q>QYIv :ujNV*钅)OId)͟yE Ox@ C2 x?6js0X�W9SJ�!6y{Xk mprO]�Fx[\flS*D"ɞoʳruį~\qɩ/_mZN**}-ЖC@Iζ-[|N}/w4EFg 4}2q+#uUTqIwF WXaGTdUy;,j;y[z5Wt钏O^a?^S>^Kin뷀n|9eEo/j tRtkCX^ֵ�iigr U{{kHhhicchafn`0lD(20uhKs[g"0 ТX,O"LMM9p8..ˍobRCGMx<sG[+ `ڪohbbdnfp�H_,LJ1B<8L+<cJBQH"N&QTO\^T\?, "׃RTg:;;~EBT K ^z!kL==_b[��� 39ȷvw; '|�00ccc��@C =VV=m*ө۷"co/D&l>qT@fnn6:mNKKE 74?9'xe:>4lЯJϸwLyKPsި^g\CuJQ S]_s7+ AHd_>vvAݖXG{UUUf|'Y_ᤝyo,$<*;kΟ=4=ČA#u6՜?wEVq7oYL& ݺ6=ڷO@N ԯ,f)=}٫t]s.|3{(Kט}gj}] DT.qIkogS8q{/0 lz5&$}`g7&#73oft5ᄍvj=\ Nr\4RokݱӗvXfxxO+>}{TZZZz�o4T4w 86Νljkh(y^̢Kcs]M;M9]N_PN GO^`.̌̂J[̔ ="<bʼx:CR*Jsedu?75=>c ?}LSߤvj|phb[nnBIO۱sw%jv}͌J3Bv̭¢!HHZ7֕;ZSSm}B0 z֠ώ r6õٔvaQiY%�>so��JM٦h9ro�ly٫�}m`;!8(0&:2yBѨR6-=S�!8u3jnLƭ>BuQܹʩ�8Yt Nњ]Qr+jڭ+O>9*9~)km6^qVݳ%A9d5MՑ\QY=Zr%?tWOvJpchl/s軋ל]x*�{huqK׷X7WB{xiorՖ^84[qxؘBU'o)b۲#Cw=v/PcGCV9wj֩TjK 6l6V]:p%#݈~ᡏܦ*rӺuB`6(_i+aNu{aeƘas /]�5o ڱXas OXhm44[ΠpM�P,y>Ɨ,�� bq8uEE%jGuB ,]<cƑ g;ˎ.{l`ș4wz2=l0臆ۆŶB0%�@(ޮ4SdIe�I: @qY~�(}2̤MũϦ\15#2x'dhϿRTdâ 1&uٍ:{dH6 �`QN9 `byAGF1`P&sy}Z:nnӦ7rT_bO[GTs]d4�b\l{g/ljD"GQ6ﶕ[UjY%p˞Rf)eysܳo[9h".@6�;Vǜ<|CjC>{/>wMt46]%9 |vn� M> ..`LFHa/#loܼZ߄ UN~ jdȣ˫G zaQ�*bP%Ùc(IiA_ %Xjo�)' _ Ddf[َ�+ $p7A;�3#��TTY<˞t-@[8 mZ~;M"GF3N蔆ȸ NGcuC�D.б,!`f5XoB6,VKRdolmґ;{:P@%bjX*<׃bYN A~")-?} J`a jg;-<v7Bg;F'qqyd08{3`be!bMcI$=�U78&rPo,9E == pr ܝ$N^<;.>G+pVHGBcCEc?p8�WN0am6&͊%42a  JsssE¾>&ɑZJK!9{a@8ŠUjD~a\{ޞ`sEN\؄P8Eʉ5''xxg'Go͕G :\yc w77 KD.cfӨTǞJnlњ EQ+WK7{/y�`2f3Cd4Q$3Lf`0f`￟(F}?#d2XF@Q@ c20,ᰀFE[1әk'j胷Ǖo_\E8uܸY񖎦]{]V}dA.x&˗/4dž>�EKr`w>[nZOOqfyFoڴ%~nSEEמ9~˖j^M"x2Q3g4F#Sٍ'$$WV#Q>c)Qc[t*Nmٲ:)N8_l/`#/X5_[&6708(�̝;wV@\o`pHQکⲺۡA|/V[E�D,HztGw>v𞵧O>~g�*B񮺙�>a#[xz}W6Aʻ}Q~E72mف1\X@qW"m5W,V*Ka4[Ҫ!玝 l~  !Ju)ENV%SiC�>`1pD gE j*&&5a�q|Ǡ�6$<  XEQ2bRNkGqdah5 u!.,uwtw�@IYZ�^_Y\|ʪۅEt˖AwwDl[ZZVS<1%TTV KճJeMcD2VkP_j'&]3 .,*Mf~tK'@iNqEzz 6*Hh4'Y B�jdd$$PTrZy( 4Oz7/x}GVph,D"�2LrՒw|%ˍJj\2P( �l6[t}Izݒ zeF7󐟿xwflFQ@ၾ.N7){oH055=4-]]CRH'&fK;yg헟^�= y۞}~'N �7.(0>]&>yz:xB&*u- �RthnWϴ�*vv)7ndV5ҡλq% `iz{ă3�/ȯVk۾lZ?5=-NLN3=8"շ1 i�L&r|ngטr�tUwWאTHҡ^#^#�p3`xxk&wU]?}i)/J/Tk}- rB6qh�3z3:&}3%r�(۟SZuoO�.L1{Qr�c$}Cң箶tZk6`î~I``b��Xf �'mw?{L_ߟ}}v�Xtݻ`Æ ��"J>K-b�k.�`%,JX>#a!�{6;$8�4o[ܵsyϾvU7;?y#!$){j闟;}쀧fqfwCE$uH9c|ՔW-kQʜXZDSl+J�}}"b„cϡ#9aL@Gqa6"煭qN8q1).o)M?44,yQYLQҎ[\-r cB<ƾ`OC#HCm� y۟?-N'1D݇o<{%]ᱳ}kwNh)jD% ^31h&)䄒WOY޾YB&!!D=[f;J&S,@&J!U2I5�Sݒwc::,,yha,T{f qXc6ntjXؖ]Oh�pJ=h6rStL1yhqSeaeɄW`Esd+{_[q'O�`NxÛIw_yi/?۩�#|5L*?f^+�GcwK�z~w=/el(`qK{/8D j%!s/Yȱ�2S;v=n%0dm,R}zs/?R �V&?u+M2tgǤreKynnMkE[h ؾm;fwYfƸp*,-^&Ƙ0*av|`�3٥#RI_>9g3KdQds=sߺ8 �0n0sx� 8?XǯXL'T6 _PA{ФuR�� �IDATJFoyZY]{za-�ĉ)ѵڹi%?c[`WۏMi2vaP}W,M3RK][ҋ;%c'bўqH;x; ��bEQ@oHĸqznXۙ䵵 ]CBL2t�@GX_;7>**<}}6_ a,Q2nhhTQOh,n`p1q]Rot� ]Dx;nL1k4NŞ|RZ߈ۯO%?]SK)�I- 2, gj/~G$ с^[{'4,�PjREpJHwNC=,g]s+ j�O=aou/Z fK`޴Hݘ@�ڰ`:F68TGEޕNRpZX�D%'Fk+GQ٫l{l<kFUO EGGn.u_gW蘍 +(pB5"x\?_mO'fed9>cAs$##|ǻ':rNm}!ۦJG#bBCBxt߯n'Ht~U"wWMkd23A,H$-ZjUI{/F_+raQ7S.Ulݲ "<=DB͌O //\( uf2l;;K-\[ʕKWxeD,rnؐDtYҨD6wBf0 #z5_RZĿ^jˤ "w8Xr9=\xwmnFfjrjCNPi>/ىEtJ>Ed>!!~Ҥ oo/GmڕzZȆl>w!0nAini]8/Ƶ!&!*"T9}xRgߨl kM;1YyKNLc2_xNTtHH &`L*ڞY8Xb}'WҰֶvaBCٵ<x'Β66ֻ{67^w ^{uUw†f[w[R�z*|ƍDgO}~Hv2_CD-$$ ֙oת}W0Gvl˲I�Rq 5mVnT/^O?|ztinzgl\F~݁MJZh N{?ܸqsc;H5{wwOYE嶭[Ɗߪr/]Z;T /r;v'P3wj`ol lZKm۶dfee|p6]9y䮣)B*gm:rF{ht/  UՁ 7{>+ZW~j=n|xJ52XSӱ|MRS^QI<JuQ4نk[w&ӂ5;:'|};W;RIi9�FDgOWlg4\|:{v _}|\|;r*8ҖM: ,7w|%|#Mh[q%5ϰk߸5(m#3[R3(w_sdqs?ǷH?j2|&˞L'&܂]XzvbOEyxau>[+w.?שQ C$'wȱC9z06^Xdd�(MWK]|Ql<BC]YS<4ϛyeWcsKi>4l۹FM~Ւ'K$8^ر#��n(n4d'̬&.50f;gk ?!Hk7o2N;22, `A񼹁;d6'Ɗ? �8jDq6?Z|sѦmd̹Sn4m/?|R9YTP˻)ciieQs }Ua)3-urq9o.� r\;fn敮.#5ڪU}E(r]QId+V<x;WWw gZCC[k|8hu/{ɨ?8�kK*+ %McQ[wŲ՟+*w+6ZT\pyRl 3)수f�/,JZ�!ȝ[QRYYQ"@'7t3yp3 I�^Ls`փx,#ac3^m6|mڰ)>.6*2b/NXR/>v2C͖U_/cxݖJӪKr@NaՓ/*oôX5>Цx>ǎ5i.Xy/6Зqф�rm񎧞t|^QݪSd:&�DâM$6֘liajYsBcR\i�J;$`6jx/hoRI&bt@[|D:p͛Ҫϝm(&:'~}d @%vN̍\ޡj'< L3: D21 ,V(q ͚DP?vD7mc:�pssc0O<Zҋ؇nܸ94~Mbx@FboD_Vݸq#LNN([3vx5EQ_rqEmrܤE�,qzZ;xIߟE)0\|AaF$iI!vE)$&?{0[Hg7r=َNNN;z0"Viem}R�PhM<;:͖&CZjR×$FQsoc E;J%xDW;47G2wRk)�HE C|d=?-}mOd[Ɏby<h|?i{0iQtq{TC&hҫXѱںZ- z&uE*dzAX� b<YN#5:ogVme(ru,J �#HT}�GM#4 $x<� 29μ~N/KNL?⒲Ҳkykv+`sm--QQQ^6 ٷ(J\dN>(cf >;?2}1ql<bж%6\FkϤ斗98 <l?*-!.�kowޭz}iV}?Q+S"w`rr;,,ۍq~O.-,Z}> ly%SsMo`-Q}Ҳκ|\AQ046e\})5nt<KPD\m8#4gK+m{}W {$/1UGIgΜ-*s u]/c/_H%`�Ͷ ɶt V>-6jzNa[HtQ.>s!clՖA^>9\\z'tUIY7n'&5 f�;LKdb2& �`08A@Q`a  fh$ϲ"Ef� FْEd2f aQ`4b;Z`_62xd4ZZl[f`` bP@x<�j6ʳZg4PC�h4( I;{.�zE!A<}J/`@p8< 8,ο@faq️EKlh4PpaFCkZT+2Ai+p8EɄv%Hlާ fVmN}!Ua 0+0t1 a߉M?r,͸4,m;6 H9 ?hĊk+VXFVZkFtRHi׳gC4}}ዽ2ͬ9׀%ƒ_N^X+HK):sgeddXu/M7?8T+2:::!> ??44/S"Q*'=qE5?^zv+׃zR![[[ W_}hѢ*D///rnS.B%F~~"R]s{Dp`3N>hi"@zL~D_g}iJzN\H"`nf^/(VI1,H+f;1/\ѨT eBϜ)({;Պy,͉gC^^!]p,G.Rj6汙97:joW60YRS.Υ UEu]"7" �(j/M)QǺZP[> `Y|GW�X,49V\&Hn* ʞ̼Rä,\ҮTWVkEBG1]Z vuu!�P^QNJoUlyrّ_XX3T@{rz:NRҲ96PTT޺w$,<GDF]IAErac/^0X[t1 9)CnηoT/RN$*J^y=VE#ѕA<@j+S64\q^;v|G&t#JeUuNHv]dWꎡIO%Q3_uTqAB/\1tsu0� ;;9f^uL{;WWWf [7K]}|)8 �܌PF35zy`ifs#UJ=(Tq)݁q[ G`(1 <]VM+)#"/Qscn.N)="�*fVAaI߸֤J%296b̸]stSpE9۝\\)_Iẽ\|/~ṧo5�X,.,,|{_6KzWWݻwtt7m2-�>X^S{7g&'oqϟPo;&4o#rj;.ٳw?iϞKzZCk׾g={Ɔy?Rh6hO~iƭuuu} E{+n t4yϋ/Uwg~3\j}p&}Kտ|s>$TwVO-?g|v).�x;'?Tx^7o.m ;}Ѓ͍۩xC219rDggN oԏ$͏r7 ?;|>2>,kή.k^x,ĠBfɩNOI%F0_|9Z:ҳ&X|tZ7.GPMR4Q\QZ36*,w;˟=|G,Rӿx [4̤ .r=ĪwդB9s|9mx7IN xZҭ[N.ɕF g0f]~avJĝ5 C)^fbgp\4�JO|?QdkRٔEʱ!KLcNiim\NTV[SW?ZbYmJ/[({Z 륦an\4O/46ɺ$9EpR 0hM5򩱮ZXfohh;<;O7g#fcmk^QT\ڪa&'s;/{pEx||묺+g_04:q;S\k2|IѾ"/O6 #%/33j󛔸䥮 ʪ)JBbbţ:O{li)I˖6HNO=u�nT6Ib rqcF!&4A*w7k /�WWׄ?pV@&L`ABTօsUs}/!G%&d]nԌӓ#̫/yPDTlL5NϋM3Nk-/*gOkEɸ8kklM[_xuX;Kou}y\mL| JT/q6g\q I J?V>PsrtQxK؞sH$�TKs*ɬ JjΔzW}|ʼ]78[H&04/rpkAP�eA__][+g'g>f͸̨b;>w89:9 l )GMBGPbE 4h)d⢸иFK ~EBg$X撴3go eFO_:HW�bxn*p vWJΰXL0GJ*1;eQLV%=d<akȭq:Uϝ:}5�Dz9D6T{ƺ[� rRjLwj;|T22{z](*ų/ VtZ{j||SS%Z;yPL0� _%tt_Ĵ]  p\ʐ|URNj+V-ꭸy)Yc /7_QPd|�%z: x|<C&g%}NNNlZ5O\0{ԞEKJ(&?*k),lS&(#Sǎ,i�q6,歆.ݨg+ZspZ*Pfxsӧ/I;I!>Av\ߤryRTi f�rN˹rG*uF (A Xћgz=L!nAb5u ҁ;~Rl d#3r+0!a>x,ݎ�A ;5}:V��A�`��f<~KHzoW/|\V'zj 1]pǷmpۭL _?Ǻ ۆX�`?eD./nWV]Wu;6A�`Y{~u[QeED2ݏ,jyNuEoGol-޸5!'73�l{ttteAh銚B,76 O)L �� nH5ڴ4�8u e讦Z"~zyT"λ`ky<h�٤ ؙ{p[NUiG0bj^UmhNn�`tZ_f(|ZC0הA9̓s }Jk}'Ņf�oTmݧ#sV-K!J1�\[j|duk-Mwk;WY?=@fzo�@)KK4 r҂g_u2[kZB9 *J "��J {_{VIuiA+ -E!qanMM, 4SD6JL%ؤB!/*.(,./,y|?m[Eu &@).-�Eť~@?WE*76֖ 8{+2R˪㒒`*x�`IOpd\g1;q?ISwXSgkk FquEɘd7isꨫoUNXŅd'O\NNZxU jhS8,K�� �IDAT S.gqN8'χ.\ijV8LIw{}SRDeTi ΍U-ݵK+?dG!頠~UO{k]C%icӓS7MͪOH ̿y[<0wRI˗. H"g͝`x{y ^Ap9!"~gw[-D Tw4~ᒹs#}=8aɘvwqv b98TM|m<;zxQF=v(в8& ;6اE);w1e7x{Z\]<fSKׂ˝,&!b1y\.Lg܉vڥ1d2 xfPT64BO]U:;L$N8c2\. :د[El;:`0<.a2|>d2==$>ܓ+򅉁1-]aq8ՅbX&hCh -ry|>�D\�Іaq|^.=m14$Mbggb2RxfՄD/:YZH2Ʀ W$t $ϰhXHssl,m`2nn캚9Sx޺ő "29-/m,&:GY䶮o'QЭ^̠YL&#U]m#.KC0LN.xB2nXf=N#c}ܱDWg>ʦ6| :7әͶHԏt�D(`zL t(n<3L;{Jpp2.rwsv8ٺ;=\;;{m\}EB+iXbP&Q`cccfS(=Ld2E<S̅E^lXiv&C6Wݻw'?zcO?Z9oKx>>3N'L|I!?󬈨_}ItToo['Okq䗯7ǃ.7^.~r}nkCSSS׬@/-^(|jh0~^pDV&nk0`0X7ǃ.M x̃p +?qkG�o`?לwχEiDxK_OF$> p +?5+VX+VXMܓB׳X,WW,K�ٷ(ZOAQtvs+V~ U]]]====?Miiixx8H^l罽z:`;TVQ\ELVS#Zxy2�<xP"lٲ{%: md*ihˢ?Em޼˵SN@sRcd32u^lDmUI354D7Tmc#8(;VIg_?H]T/ppU79]D*jooxOd; \UCGΔ 7ke=\.7 H$^pqYSvm09Ch&zݼ͞ ~l_><LdGZ ~bwȤ|RW2SU(aQzW3RӀ驧DGEG�'�HhҪO'r#ALJ57![},^t>b6dD5*y?Uπ`8k+V~ w\zsC;7-t&bGxxx8ͅwnZ [iiaqqKwۑorʕ1`/ 扱1,b΁!<fX"Zb cxoh"; tOI͈U(666>N7oiIAygpL 5%ǏF{ !8 ƅrKˆPf_  ux~~l;{H)gX=UO'1 DŖt{S6D2oV bq8&oNLVX?U[bŊU[bŊ߳rGQ<࿂lO,BcoŊrIIIWϺuo?;knn޻w^?AֱbŊU[?GO>?NNN6؈D"H[bwŃP-/Pi7=�ׯk?"PZTP_Ti~fw5koHMM{O>!6=$H=;!{:FR๧wl4l\=׬ҞxY.�t ɁɴfW? X%Dlkk4&?rN΄t9rD>28'E=1@KyeQ`uӓsi4zzL&Yjni¸:=%689͆'{=n\>99Vrڎ%r%~|QRTTd2lvvvzxxr0ָoV$҉i\1HKMtRj} ȧ<i*q n{z5uբbq/\ͤSݩLJxYOOLJɄ\%rwp^=A, N=+͛w'_{ۙ"0-ߴnq>v*BHN^ǢxܙrĒK:1cO-Z_MD+JNU)%cD(GCXL$�|d9!}ac_I:(:(j=BJ2LAcpD6240,%Dn@=6:TXX}QjJٚv傷o` KFfaj|`hG8τF9rt)3iSR. NMȔ4:hЏ  KF\]hF<l2+PV75t ɧ8R(jʩ4 0"RIed(G1F5!J!תּrAь :لZ>&DfZ)zv޽ZdOXgFhTe8t:NRLȤ23@ьK%##bT)$"Lkb=QzW<51TB&2uFiGTU*n98"Dj%ƉAkm8~j��3 z=K ~jxRög$ J Y,8_TMO6?϶T2^<L8z EQN'W2� u��ho,Ys�pGUE.Mp$*Ђ D2 �hMQͯLbF222 /z --䙵!_~-ٹsP/QI8{7t<!˹VDȄ>9G$~R/?z)xᏱ T/e/Nff/m]aSv8p$HQ"ʉub@Hܾus%n!Dըq3}17 {ŗZ_ ,O6t9 ;@iMwƅT[`s%V-T*ٸ~ ftؙd6t⠸7ys.ڏ.r-<U_^ȸ_xKO7]<8avOH$---K,N)̿v~hL~U2N´;sBcSP~a[6mXz%OuDR__|M6#'^pd'~᧞9>!oxxE8�477竗+// I{~ˏyxhg^*<_aAg!ADxoa}U[|&dkف/N򽯾̢Y6c%CC}2v|�Μ9сCPа Eѹ1Uov}CSޓd�@/ 1WV60x?HϨP(>eɱ׎~wgf=ݸ ,XRhqB RQhqw[ XݳI6;3?6)_~&w=\wsnYEi8 wޅ^Z[[_ߠۇ[?JO\vTÛW�`IIL5+__^[VKY*F�(=eO^ɓǏ"H 0:;;jC,Z<r0�pp]r76V]KW*imzt�w&N\|Y,՝|G1~i.ZbŢeon+v*.454?}RV<"vVâW 2<* kmzU�0"<h<^B~rѼi_mo4=ކ7.Maq w\Z4yxWKn=)hn<{;$$dر(F ;e$/{ , LPw/ic9.d"I.]Emx!!!SLLoK zʕ|*FOa ,?ﵥ+ךjԭǒֺR%iESL&i 1qm憦Ʋ#3p5+ m9M O3oV h"XaɌ�FGf�={6_yF@R?t'h4>pNoٲ�b_^}1S "IE`xb"QT�ðO>� bY e˗I,d�e ÂRcfn4a(b�A'l; IN~a ?+C,RL�Hتi;ֽs ]d}eohpIim[Z%mz4�BCB ȁ�`cO}HX NZiB׿Bi1Ē EvўjpDv<9ѓs޽{-!Մr\ bN<l"k;On"C;=f b}G1it:E~;m3_>!F$pRV~/f3aʴ+ў-5l_7;x_nrʥP�6 :i[Je"�:HeV;ҙz>ݟt04>*lśkk@aӍk#̜ ᣤ{~w/=$b>FZgQ[|y{mX(Z@PB`aŸ[J��@1B  R (AQw+3,S,PԢP,{ &aEOKb& :/o::H$�H$ ChZ/qRx' �@Zc!GDy:]DsNTH4<q5"QVEDDٙ8v|sѓqsXOF(F98("4k4aD"ߖN:|Qmwg̞8x(w͔,Yݭs^cQ�hooru}pvlEpm!4{K/=}QQsXD$j,|sRTVVa2zzfHHSGS2o(ӯ>Gu ){(TfUpDlh 򷴝;;=x|T/Q{GUj#L:�{{{dǻ->w ܤR/H$1|Ƒ#Gjplb?{%ߘD^s]#),wPˇvgUuʉWgLcGh3#Cjܭ& 5/޸iHW Bঢ'~$Sl|ΚfgYv֭[CRy0b椄YdSoTzu G[ox.q#V*Dyڦg6-^Vb԰~a{Μ9/pzkؠ!WQ$ĞZ<ujܭkgqC:{M'<$ 086<<U$IR,{iݿi2A!$�s_/C­ VjyyD"O4�p}IO� sssc a0:P;{ϥa\__Z\j.n2_ehˁ9TԵ]/n9p:yh rr~ѭ^PP`2�˽˫KJJ~W\dgg߸qǸwuueddI  ]0_R/Ǎɏ>sJ%`B'{no{g;jU:lo|ߤoXzJoۓ3muW;sd]9<۞-@b^voF\sj YgtT"#ˆeY ۷oٲe �UuQFLl46E@pmےW]YKA@ڌPhv|Aّγ*/&N W[QqšAbduia$YUܩ r=egAAIZKOP #66S*U7t}\ol^S\P3Day:Ʒ %`B  Lv)$<O5=}ZGa-Mu�tK$zgKCQyoo{@7} EY3DRu7Kf3"iiָ8+fW2vPp &ŖuJ�\Uj4ȷ*sHQyFL-4(\c>qAa,E6 �UJ`HvD[(2ulCpVgC!ޥ1:41'/?abFo&�X1}w�$3ײ>^=J'מ5nlwwt l"ȟ?>*~Av]ԥ\s$~-4Fp{.HUљ./0iP ñe*qyRlnv͂V"|D/exCϜ1&&9_l;cDHq`gԘaO]:s߾W:ZY7^_ҩ+}\.<ˬkYw\OkT=M=r!WZֆM&Iv*w.t;'ήjzUMiW(?¼)- 8A\H/6|tmm͛7-4ɻ)n*�?~fdzxǯݻwos]-b{NI.Ƚ �K׼W\|3Ѓ'//ϑwڵkWg.wJJ]z5=GR[*mڵkWy=2vwu}ƶs:.r ʝR,yXkoQ)f:{dK!1:2Tݝ-F[�iXuE#-m7<:JS_n&ƨFIΫכUa.6{�_W[lwEG2yܘcBT.6ۖ)UG{ccL4*qy[~Ayc5jI0&(mU13uvںJ>If>n?,hj ; dSdeW=xTd|Mѩ0I}Ce25�kʀ|�4.5�j?yXC&Phn$_?>#7^Z ~t_e Zv+=>@T$,#�lll<==GsO 6y__D6 ?vbƵsg�Kr<uq?s+%M߷@y[w<'N2uo a+|ybEm32{Ţ9DG<%�xmIiڞZ/%�8}q_ʽQS\AR8vG}뭷,nF�� �IDAT"!Tg?-c: r3~$�&8+=AaC+ǵiGOdR1EfY٪OuWVz{0Q~r+3e�l/?n9pj gMTw]�>L6 c$ajL-A! Ү qa6.qPcOonCYAB.cA Id˦:,.O`RQ&IE ˊ]e"HkeG[<I�E=Si� #fǦ8� &H�p3T � HMgǡ:phL 2=aϧ3Y +}oI JºGЌ/� Nf# :RIK{'wiF3�8rib6C:de"lMi4 #ݻOb#!0�+Jw9=zΊIB%bU+dmML2ti6eӎc�}S}]zD!@E�nٽ�N~#QnL(o�uU5WfZe� q{y~4sPAvvvGG'JK@imk i篷kbh*/*1cƗ_~}D篙5υ'k6E XV]GciF.aS |Oټ^, #FmN#2ԷUܮTnVi�+ޣIzPܩ21T�ǑC&9cho Ene7T6itOxuɛەj]mjP2/pE|G_}h2.O/Gl;�\fNIT J1]Py%c>7<zz�Id/|:sێfIԖ)j(6wj�f_کAd0t(sGLmPhJMu95!<p@MM<Y{G1;|/֎{{{ }cɱ|CSڱIƧ^<Xڜ|u?~5III-+Mi4Bi_ܸz1)) K.M8l6{zzLz&칳o'%%sƎZ[rYCPTV4hȤ46gA$;w.))Ç>>> |!6pIO g;}mJRcЬI60;wn԰3ɉ󖈠#F̙plli9'/p9eLe|cG7w :Um8A"�M8Na(8(`2$�Z8NP0 N`Ff'JA1Q)"&=,kS( "H� tl~VpV$Mf I E-%#N�Ba O$3;<B@$C8T L J �A�$:CM&�@JAuN (Y 4q@Q (b4-T jiRPNP1y̸ )aلLD9y-V e/sAL_kHu2|zB>N?`VW�vr]LGq[y?Րpܡi iV|.ݏV?m<WXu] Tm.dߊ6glVnW0cm9>}\G{s\�'Ml0 *)� %CV- so2],ZoR'LP<hL$2;2jq,Qw11B@kUqlsboiʜ�@mmhOkV m:QuG~}DQ1*.|ݢZ-IQ%,oL3y[#n˿0@o<W7H~pG՛7o ?p_)zOA41#jcSuv>xNVɬVz0mLS!<Z{gfV[q w:}݄AQtzIJř EԝxvHuρ>�8OQxs˕*1zq.I?2jOJk\yچY;4M7F{N,^!8+=h0 $�AVb0k݄AC|g�@j7NvI}ivsqyvÛKM}k1n0L&Ӷmy׮]�f#ju5Q=8^~X,yg@ F&QTfϗM{SN<OoϪ� HMv: yT3 ),Fm2HhSbm""]'!ffR ZQvfiøA6+W}h|&Ǡ7!Ž*prDb$iP*3�V^Nɤ\=,'}k[iWFt5�PWWw TgY\|UeD羾֓O=~A6yÇ׮^2h'ϲgQn]n`N"!=x.dk{v~Ġ]3`Hen:q7o �fȁ2Ӭٳ 8eC&gVUUY(ͺ{-ww<yRRG_SJ7k 5w=",:RбǺ~-A/X0GW*qn3u &s¤ҺC߽G|esoߥ̞E'Rظ6K`4K]_>qq~qͪ^aAmn^ў[t#?ؙz,y6pKPX&358 A004)kEtVCHZM%%䳕;vƥnT-2٥)N2T1D*ݩCZ�Z++\볌a]% xX;qb^ ?Aܭ] 75Оd�HHH�0g.Z1A$?}pfnRweȑ7o++ 䞻$ "J/]1r(FWxy_u7:fu'}tzl1@<LݴnI*;qg|kT$�}Ξ;/о^{)|מs---:w]_pG'dh�xT>mHwjʓWRFL?E5\.+ ٌkEfE})!!aƍ 8!'T O455mڰ:#\VM>T7c\ bq¬3(-2� OhLԀ>36}KC`:k\A?EVS\iTA\` ja+d9;Mvã~R&'J}bs6]$th�:E@)t*gD@RCWY G0W$9�08po4,&$lAƺU +{cVʕ+:�/8>+z&ŬWZq~^n\x4]^!n%9jqg/n>Q071 #=\&Oj4*wCl�EA�"k" A1-y�0,EZiÕ39зoWWWB+gi=ڴ 8I$0xgZ 9֔%VU/--ݸqc /-.ܷgs*:]E� ߙ�08؍9z;8?clWP  Ȩ� �~Ż⻯Yr9ރ|%Amb=hu1C&wWs\[ivP�O1D%;o8�\l>#b �nrO0 Q~lP lqW4f)P~%U4l-Eؠw+<_{__0�1~uKnJ*{�7 flvZ4y觻?vsz ?򥲩'OOi#g5@?p@lh[܂nSL^1-Mid3$[nXl8µ1i?g7|HOGzDu-ML\o{_L?`(Z]4AP(Q)RTt:0Zۻh,BygBmstVR VQ,2u$IRMJc6.[[[�촵t$I2 Bac#joSqRCr-owmllL]ks8L*A|>EQ7jnST:nT*L&m$`k׾18vQ'iil{;Y*KE�kN:g/d]$II �n0\B` b-ȶ +|O O�\.��@`k'6bO�XF9�0G0{tDžX=E �d4Z`{<6Q\ӻb^'t^>~.nO=4Oh`<<y upIY/lVXa5BaʕN + + q +l:::Si惼sjuyy(:Š=33֚f�|G�KJJ~'N\dgg>}"�R۷ddlvqcV#w& P=<@ڵ)NikRm۶YfƴKۄb{ B04N]La\lGGqvrx loiV...�A1: BeQ45KZ�с5&ut46Qt*B9tui4fB1  $Y- uj)H{kLeptqKNNrƍq: \\zoOf3BsqqS1댴 +vԹk:BR;R$IFFFq?|US*$eq u16Occ'OXWøU|Issi+t4ڬ+|+:US]_]5y!�Y偫C8H-E۝4,E}gp]dzH#ɿ}i3lIyժﶽkjͺ>tm:thwcmVtfY@U:D��Кw˳ٮ\#cn-0$͹A~+| GJ(XW&=M-qa>/ :#Š[fdNѡ0b�>44tΜ9 v{ҁ-[<o|>}f͚N|)V) q�P omb808g7V-_ΧrѢE7[_;eެWnՐ[ì:o,^#GwR+W�0gkKbZNNoZŋ%)m(:~=sӇ׽v'SKtJcSI[khB߾}ǎdt,?Oh#0(:Tu:ZaG?ļ4BE@m"�L&m灾^}uBIh]&KVOGT:P6vX:�(b؆ %y%M EP�@0 Ie,(kPT]-� E�3> RyCq!�49k|k ��r "$gK,kj*@qIa/fڍQ)ޚ?߁tBikVy�P�`y\ޙ8-/G=WR^^SLիW ֯] U\z?cq|ӦMf֭qíS{W}=Kdcc3)6@SSZ<.nt Ht|Z+STb l.bHԷs[>$$� �Xlooo2jjj^JI ySG@HHsuu BQt}Q ϏJ之o=jY X*@ssF �,Z]2͙$G]̻oT*iʿӧ ȹ}`_nAEh�lRubeR,<:Z6t\e� ~߼y"'''slwܩT*lٓo߾:�?%{6$Is666=z__/BՎ;vڵ?M~ 777&r#qͩ}7_“j/pBiis7n��s/l=#sXI싏ޱ]|aEӚ~[KPf̏ tر#''Gӭ_>,, �_Zu9-wy(،;3::zӦMӧO_zO裏Ycv֭[ӯ #xaN駟Z2.رcҥkW.[4"�LCT2">u*k 4ofKwJ/_vZKsxF~爞d`YgCISuyX`^VG^7n{キcǎEs^=v`UzYlmӾW<sg9 MSEn~ošڸ<*!rѫ6|YM[S~[10/vEK(Ǝn͝ Qv6F_|ߵ܀LW4_<qXCG:a.9-߂ ;wƒYyε;wK8g^Ġ}yƍ'MzS"PÂl�(qLfd\gQ޶0-5ci$a8ؙmhpėF%=ةI~!6le06ly�7n,,,\n]zz: -2M񯎎}D"'-a׎:P$|ͫ/OS ^p�ce5=,XS<[ \{aKptO롩7n܊+,�RF}IܨI T)_]ܿ~}ҤIC IHHxe`W2n7,&_z:iBB֭[{2֒$Ye\λ^Ź_R<f:ҙ3;7[13\;{�N_LYn}b_q%%%5>x9<xʕ9z�amW 'MMHHx,s>׮p>r`6kt̟5%%lT#o )+sN4e`Úu/2%H9̚(6)5=)[Ԑʵxβ[p֭5kVy\{~c{YBz�Lf#4nYreɋߜ1/�<vfbIQg95.IkBB† � p]@gvYA*Y{igxpl?�'gTӻx!ׯ|~Wm`ܸqf0`��x&Lzo[Y.kT CR^QV^W[[3Jr,w׿A I4qD3<2>-内`$B]x׬7-cQ*�Vfvu)[RumgߞqCwrDYc'70?ibdA�09|Kb־ؕ*[g~C$34~7 Enl(q3-: �Gc:@w)}0iVb?j�O?7>,ćMTepu`s<sf}GkߟwU<}J]$�xس4dQGZ"e <AМz)%,"'f^;uهfMĹ3n݊aZK5<11/>?�� �IDATQ٢MQ1$�LC% �+MP]OFNqsuzɽ[2Ȼ;͜nȀAWNsߕ071IH\툣c LpGO$,YEXbe>Ƚz,zN͞'z~Z׉S 'Y9z%$ \ $!әDL6�<|!+ L݃n;Wkwո;N˾v�Nޚ0h$^"E^EQ_ՆP��֯_S{!'�h~'Rr"F97}ٿNݟA~8rh4 �"X||&<Ƀz:&u6 f+O0b?.o<:$na)?^-[>I,,2FѠ՚ koz4er:C§OԪ`ЛM&R�TX:z=*JR`񬱊vѠi5�pqO7 ˏ^7 Z�FDy}omIôjN5 VxQS&W;boNLv?P �R/!q2[hZnҐ3{~G'8^SSRCẋR{[0m ]?$O8,e7N ͹uO?KBU 7&A[onpa�Q1˻$*)XwuZbr9ˣ�) a6*Tj5qh4ZR+T  s%X,AܬmlE&^Tјlek*Atc5y,Ъr NR fR`q R.ht èT*B!IB!2f# ]G?v_z4 5hT*A$YxjTJ``(qQ�7drbqZ-6 (U޺%�`0hHҨJkszJShL /ظEX:HZc`*`"|AƣArx|&VlZ!י*qHW(()qQPFxJJU*&gitIBFiort*2FQt>׳7Y�JЛj&+<~Y 4|X �$+2E$DQ{ZRp8,&n6dJƠrJk GVV# \q0Іo5 NĤZZ?*8.~m۶xjJ:{%K,c>|8uִ_.$#ia`b"qO ��P Vo z3|fzs�(F�B e`='�,er|ht3?nQjGGg_t C:Kgs{x<v7KmN��Ktz}}cWf-w:|�,.�ƭ欲eQ�Eޖ{,}P8 �L !{7+rxFH>w_ �.� �06mOqK,R3\qt`730 ]$g?6n?xmjY].s8{.X?~|ĉ,'Ko D{D"  ߓԬ7=xyHmj[GA$m}?7[2*mWMDDDx%0juƌӪ4o{x5Ք޹#%-?2k555Ç4V޹fZv`6;~\ oGGGg>yT[QHǐKZ(@oͫh ;~h_gaا,m dR1� ' #h57 C i*ܱ㻜6RiO=]aQEy9=uJ'rN{.J/\+Oo|Wh>up1+rU*!k IMK}~@#i7/ WwHrul-ޱ}GiŖtuvf#E~ӧ{vW{؁FgRӧ9ԛe9$577OXTTiY𦦦J{-ή?[.\ 9yz}uuD"/eyzJV(`ō+^25~#!!>!(i_Βqn?_R V-mЌ9rvvvY<ݩk9�)JacQfOO! )s3qaj2vɺr|^QPCF[=zSݻwq.2�y9wFΘ=﫝jjjpoytw-[s'>ĦGZJfZٳ'}#j k%N7nܐ!CO.H=3qΤ_4J |gθ!eZF67.ih{.6̯}g۷.Q1s O8:ϽHII{Rs/i `9=REEE_׭)|OIfT矿d<^Umooޯ|TOB<x𠥥sz7+i_1f|rJ ^R+�#62G }oGs':5yٛ;\ζ~oo/8ZCvn�h_�E?24q1Q^<,ilB\\?1Q-GEF$W4+0N=LP*tP*Y!;xLO-k?}N _=Mu, ;ɓ .dҩ"< 4M8펢l2Q)a3\!z3hEj+I: 8n og�tWZe%3 t'V /,,ܺuNrtp5jr ]못06aDKw6NHTҬ2z,B@?@l\cgc{E;)ו4RZS"U �Gvnq1S.7̉#GXȚ~Kmiʽ]>?ĝݼC,t4U_OMs 3 6C��:l?ƒmz,u떧=t)k믿Kq]ٔ<Z=8!sBLrTLǙ:-d\RΝ;.\hqߺ,Sinƅd Ulˣ2"楳 q u}?(20#q||F yzN9͏n^*kQ {ih>y {m 7>b"]IH\Ҥ<z,Ü~C#=ݺW)‚+pkԙ9|MV~;1 uȽZ,޸u7<!i֧\< 涶6F啗h)Sob8NjOuW<d@ �+lzrU8n]U (jP_Wjȕ{m}_h`]ȮٳUUU~}}\p)7O:QZo;yZ�v{p "3P@3z|yiRܹs 'O8Z[UAB{90b2kbOp|X;!繊Nk UڸL9WYzHl;PADٚ,ߢ6f4 u maQA^$IDGGoݺ_}co;qp\L~F{svSw�[OTIr�|}}DIK ~�ȫ߳.Ez1Qv~!^#pD y1+++�VvTsڡo,g{i׉Ǚ%ѱ>\kilkiOh2yo?V-K\K n2~o#{@qf~IQ}rӮ6[ڬ)N1G;j<KXa}a>z99c j*JZrhƜ}ly'Ѣ0x^Bmmm`]#:=tR@m;yxw_p >1g 2Ν;E7O߯VLV0pý{vI¢UNVo xp(??Lvp#ꃧ.F=}`{'"o�@ee sf )oyDf>yZ~:R,F:Ymm1%%EV5n77oV~zv[O_ixݽX{uщ+wDGؽO3Z~>w:0~(�w&�0`�Ǜ:Qsl^s+5ðe˖Uqp"#qg`DQIEВNv˖-�E,Y�QQQ$IXc:.`U& �-[fooogg@R*)o'`f. �fʊ:<08,PpHHH1oQ|&͞3gP\bDGQ7Vl_oo$^XZthʕU lŤ<,Jf bP) ϩiGSf//)-c ujBOVA]p#?,,If~ԡ t_4>n#G[V|>ߒ034Vz6Eu wuj3.kge.Qk콧Y<)c)b1EMb`aw'&$ss{sZ1L&:A$} �N߬|wCR�=:$(0Cigݣ07 \]<=ږ")g) k2N1@z<QV&/&2BoPG 3B)J:jspNjmV%np�2:�:"�@$FhC8OHR3rײ%Fumiu8,ؕd,/~9gE{[)_xyzb]*"m9}>=pkT@ldU%CBB66EBm�p!zAnR�Q)$##?|!@*mawU J&_ڋ\_|ET*z[$Z|rUBU qX;z'hD.Kp:3]ksTlCfn{}[`ruVڶw�uVA ILW,m$s㲺/iԍ5UPpK7w5N!vL �R�X@'u�6$~m&s|*� �f���S|yשs*Pâ>DOlNgs�}ۿ"Eã;Wձbs8x|ߐ|<NVFkfiLǾ` SN¢z�*ܪj9�GN6 b_%VU  ߪ=7J9G<^TRX\PUJ�G~ us,3N�m߶L4hs ("u u7vǨo|TiS/&zDhk*.)yL1� %'/S݆<ܑt*Lw Jbfriv>es0Uu�|u ٳgҤIdBqm_Z`D�+%?^̥ " @Q*ۻmG�{x :]C]2 �B wnWq�=!Pz"%)Je6�tγo^=s+j t8EgH2f,&�IНv55UakhON"Ȑ'O'hkdrQWYa*U@Uݻ q!ͺFl:phΉRM"h$�(% ]GYWpB&f<w<oڊg-kNP@(f^:~NjLN�"1 9w񓕮:qOl)( &D{EQJܕG=qiИI 1& 4ˋE_{|VB rb1BdQq9oF0Ri% „,(Kw`^AqǕO<u'XH$Q=w^7"PTUh'OC2Ϥ^PpΗRgfۙ&4-2GMbl݅t2੔H$PȦS/^/$Ү~%U"(J+ûyֈ7^ H"ǣh O͔w ^W[ sA`K%JJׅ `EʈSB#=%D' <687X+wh@&î HHpPVƙV+(472$:::sѪx#?@ײL /˙TjpXB�w):q)geRA~^ ?=T_jCQ̗A_|iRU{&L>25MMM\11}ŸaӁնz:CCE` 7_z=lZCCˌ9Kݘoy˙ u:xY>tBſ0_/%Jq/ بhp$Fil|$'^{.Wdqy"!쉱_{'jY!H"Dx q~KŬ5H".Ff J'''w<^RRrAMZ633� +lٲ(??ϷLNN.++KMM=yxʾ/.)3~vf3CQm~d󫫫oݺޢ-[LMMM~VsEiqeM�aYU ' �D oݺU]]bE$''WUU67OuZN+W8lvsݺuNo>fGeYr???îjF&hku:ݮ FS fQ;(�jtzӉ:Ѡj&lj�NMVE՚,V� Zl4h:fbbfNENu:VIZmmO#OOOt6-ji/ӷo_d^VDj8ObŊ?,�X- ^3ttZ`:l4LllNN_Lv!r:m𠃴dk:G{ ىH$ F#iu!FAAY/߱u׭Z۳gѣGU*nbҵוW58ۿ{)Gkj@fF1[�`2 z`�0umm�HtB5gM��لj2EQ̱fu1Ԯ̎]>1;w$%%}b4Y;DNLCV1hV+V%G=<5V4ǏY�uuu7oܼys{{TU4']Lv~}\B fϞ+CEWǸ1m) r磪̢&{T+"54;?W�ʻqƌ-/rGE25̍' v).+<7}}j _SSF* Ge -Zf͚VIĝf=�� �IDAT{ .h4׆ޝQقnd]4s_ 1n~Sܺ !Y^2�233V֪́a/{LDYh믿�˗/<x͛7<FR_#_$'D)~gڴepެ[ B=V͟ݻu)sV`qkkY0vI'1_l;$"7�_FѶ{w떞۷%=\sSC+RI�ߘ_q؀%o{PѦ7onܸq%e嫾Zk =W`#ɶD?YW BmNHJ(L�ݬ7b]iY3GNkI}ݶmfU(}ڄAAA֦^u,1bxhh�8pF]q̝;�owChKpOâ<rФћ7o^pbqBB�hJ/^/L497/~&tqگ#U_.e0>lذiӦUk&ԟk%ٚOY;\ �M*?pXUҒsfLy#(8xRVxI{pU}�P(s.wUd;qCG.]8..611qܹ�Ҁ#ʋUP9�(d2B:d\$,Z4 _[rxg,Y8(0`ԥkW�@.\8IKW|nk)�,Z4dЮq,uoB9>w!]Eh/mޗΤ~/[=.\XP\[1Jegq2L R)<}�'M\|h=ouboc^.~G}[ 6fT*q0�DF_|aζK{{U nO>p,?\xO&<ʌۆJ> Cѓ&-Y\@7;m]]Lsཏ,l5hlunvzXؼknnLAC3ȍb/^b=<-^`C哉$a1cƲ+%~["Ŧmׯ򐋴Vȅ؉V@.[l"glD"-oU˼<?Ybiwh40ү\x̲}LWO^ќ>_Z~dbo/Ę`OwS`1/U(V>w�srX*EwvK(m|.wXPmn)s-y*["%7qSmܷ""`r8Rm~gpxi䆆fIoԨ(`o3B7Gc{B'� qF8{J$DƥI@�l"Nm62Fi*�T "G%!6 .HDʧ` VA6/>mr"' `^PIqa<={^[6/*ԇ�@YjVH ؜(Gۓ0iƽBD 77bBpu?D2+gE�M->XE)puRFeҵZѫh�8KB�L?|WzuzA$* x*ow^U3ZF#�mN� VoP,$ZUy/LhlљMALѨ7>Eo5*"p FET]YZtZC775eL=y}֏xAs' Iȕuj}kajVa")Z^2Z,F\B.n�؈o$@)؄nMTJ!1 |uLUO]OH0N#d"୐%tcĈ`|qy; ;cX"|.\��oVT]:g;uIPDuPh󕍍 HfNvAre...Dq<B�`085YYYVbݖf_?}o;``>$ uHPr1wM\ HxO-MR%]]]е L&KC~zmuu5WciyWD,8Lhx>e׎7K&`5g,YtRl6KP`R(!TL۲[@naq ! �"#lw* wq�-}y_777}JD"3rTy6j,ޘp܎ H}{\.栄I5ՉO>| d2,-&C8"%6whXl &)Y4oVŊsgii9sz}CpfӸ1VMÏ_źzL1n`V-Yni[z�22GU+Q"4]{I<? B44nͶ'NdթۙWmV 0v�!P|}{R}GO? g2rEK YSSr[ QWN:s b,zJb�DX L7'>ypϩ7@xNx'w=b@wQ l/*N"^7<yV<~X,S{۝*_V)g=wΜ9k֬Fy_wxg|kix̉ O455c74{q�؊9F敼AoN-;P}frc%<:޽;>Z6^u"4?>sǢV+**~͛7Uf<y34|Ӑ}ݾ}̴6lhPT~TDߥ+E;~ߊٸl7~ܹxN7$UOx8P"<e׷%<6_�vl6ǂb vst:[=L)'ypO]Śzի̙3gΜesEQi8gq7O*d͘.sw.V^w#H,͛ ;;wrL?Z tVcc#h4:-O֭[NNݺg滕yʸ C}}FR F 1yӧM&}xu{UBH={gY}kׁc}tBٽ{wMMիԾ^=Fv7rA+..>wGr `Y䗆>O̥Ԥ׽C'ov/W4M|s&�.^x-3J|ߠwzu*6F&Mt-Ljy"[挷�L^0nھϰ=cʕ+wܹd<<`M:^}g2<@QQݻW\YU%)SEdcTn3\}wnnhh9s EUy-ҔvhKe/!׆f>|ƽrd^C_,*q ?Mf =OL&ӎ; ,YҪnڴęʙ} +b[Tw�NgZ˷DOg$AK:EM:EȢ�իW/>6AlzǬX4J >8̕~hijX;ٳ(6MҾ] ѽWwwŒ.7^�E٧ irʵ YYYf;v MMM aZ}7;J$H[^ۂ\3<Mdˠ֎FAi6[NeL9_Jh4۾ 1}ظ›zpJkm~c}}^^ސ!C>p 4y\GSکǜN祊?YCZTk֬ȤS%Jl*�Zm` Cek؂y,FS>Y֔s^YNAI7 sAȈR./ā?wrf^{ +??tޟvX&�t>k戽{\< 樃{bGbccgϞ �*lH4i{Pccc+kђ2N`g&&&\�Z))>/zo�/1a܏_ 5joys@\ذ3 ҆n\X4+ŋ))._t'ޢF&gBY=rDHQcшY>}VZDFoێf%MK;<pD̲ErhʿWP<CegSÕYzy8�5NB6ܝ˖]OSḪz}O6k-=~&v#E<m'n�&:9)'0�v횘bcO>cǎ2d[ofԀܝ4fԗ{Pp=�*++7lؐxb@s]޽DpŴv9s洴Τ$G# ި"pۮC,yđO$-M֡Cd>J9E&��Sw[ktd03n/98!� <3P."pl� Qlu>lIoP1&SqrOyZQ|�:yI]4H:O v/=kAn ̑ vgr$d@<>ɔ*F5F�2t/2d V=H$Zi>ZJDQf4^�݅*6(n4-MSy ~9Bf ]QֹcZ:nlt6g$\&G쩭$*]wҵK.N{' Gw%gs̏?5&MFk<Fg0/�HzVݽqd'sY\�h_0C"4J:Eg0J +:fs-- dPH R�]Pn۳A!텣lCG @SY%*X&a5 Lw1]k<q:YT�JЅST�$,Ώכ<u{5cdb`ub:?sϸU9hû7nJ�77>C Y)G`v:k,>~gܗL;TY\XXeO݆$fu4%~>W)Yoڛo -Zm8\2~ύ 񺟕ͦMW.] D*a c7D*p?i-7ʕT]/^)>#Sc29.>~ NP'Ў[u&_@{h/ׯl[p[N@@5Z=gQ(>Qf>T.ty+enOnv+Ĉމsk6lfsm!|2u8b4H8p�W7Hـns5VE'Lj}VHd߅`WלJIm3(՛EBNӏ`߿ Ƿ\7nfcQ'r^嚕 ?1jhA�ue;;ҪVDԔ=!waIO-,,6?%cu,7m:v(�n߾~^?Ӊ)#iǩ˹v .qr7<G\'\7>�VX1k,3gΜ >t=K`:|FO]4U-jadV>{&j��ew!Ey胵gtϳ:11.FUoJ])ng2Y;~mp4 h4...zER BmJKdn4A H$WY ` KMGRi2bm -je٭,D"a5F5E s*3lY*biz=Dh�hS}d$t l6l6>ohU7h Nv8Qoud22jy<^KSC .m)^5M:M*a-t :z �[ -OO/l,]*.moЪTT["VSm]=BI -A@HR 0�zMsU,S0h}]I rW磏P\o7ktT, �uUu wF (677캺:J$HrWʆے�T֙h 64X3Vs?~8j3GD26֮QIxfc}f"w [;]WSi9LDz9eW_ҮNJ%PMrB6|ąkZ-K"tAQW.Q}i̫xq1'O r~tb?jkEN^$u Her.�IB٦ώܘ7^-6 :@�p�B|ttGxz4/vw%-#&ΠP( d[,%?/۬\^@ ��3< ב=-;�PT,C{!f:v<�d MQ/M&6�xBO ~{Ϟ'D+bDj3TY�E~Ra09/΃U Cvx6|-a.S/?wd: 7]6ArP@8.\D2r?G F...t:1tS,=D(ͽ2Ϟ=sH?*+ru0\Q&|3<d{TT(;GIҰ�¢ "("Bj*+]#:GHZ'(*"ȫHP(2W@w&=Gf2%S'K&HRAb1[Y"lF -J^x*ytزf}QJΡ~]$uwwoOջ[<J;X9s}}9$ �///��g-Ж[1|�"""��}[ˈ`@젠 �nqppppp㎃3:s:}'}jYW7)))w1OSb`$ܿY/=o8�[ly zjiZ񄃃7-zb_~%CnȐ!{{{c`#/_>~soimm-eyn<vWZ[T-yZ +p׮4 ܺfwZ;2|ȔŋoXƗ'bTY]"6b.p]!oUP$at[SάyJ� $ԙuCv^ )xEw.^8wEu7RM>f5J{(LCO:"ph=[R)DVꐸ?nkTK6G)}y9lk_dA<q Pږ;;Gyyxx$&&[v� Rֺ; uڜ}s(9նXWЬd0t.y٠9^z"v7�;yJ@G~`;v8?fkweܽ襴YZ3?fHlllBBBFF?[n NII'1W V p1 o߸eZg,XD-161..Vբ=vdsc=b <ݜՠ M-;?aY&yϞ&JڭN�T*dJ޳ɂDDlҌ��NIDAT6;t:vXm!ʜGP�mȠG7463)$1FelL"بp8Db;v�LvK/O9JkQIvskyX$ @p�,V@Q�4 ͉�|F{sC TXxED {}Ny^/qVJnde̫p8t:B{ϟ�UUU^J 78NlB\%?/rŲF.Kp~SB;Bhey8bE�,Jhz}ztϾi֓I$.M|+@|92ݭ`bލl6rdrݽѽ �^7j٬w-\.`pԴF'H$r\.\r2;؏ӵxQ!۷+&&`P] E`ܟ5*$ͣҙFL 80`bqppp0 z,ٟaтqppv8888q77n>Y+vY+9pԠncԘfZ}SN? ߸566<Mጌ �.<Y/}ʕ/s^v~ yPժkSSMQCo6mV@IK=c"G"+4vwݺuzz7X,˗bRZ6.CSSgb\:g7ZmݺܸA* ��PGj[St9~XG|\~N:6դgP ^pp0�4T7;Gi2mnVd:haU7WΡG�ݻwͪ栨xkz#Tj{O�8{*YoЛI.1!^/Jzt�Ъ:jK Ukh(ϫj;CrQeNgX�6|3{Q\�庻ѣ@jvgpGeG)垞 С$scY�nl'K@lunI|%s>^v%<?Bjo7<+dw5KMlkiV9_M-$4';++D*42+V T|j'/Ѝw޽[TT~f9s5S칤=uuCuT.$]c7ϝ;}ӏ6mޡe2o,g2%e4PyvLy<O{O]Fs\Dw�@MP�^CS)6 :˘foNBbir`xpvO92L`�~}Ey)��p�@uRӯ>}3<;E\}%ΘwLNֺJHT>>yHL.Kկ q8 w;w޹s端ϥj+A6j $9 �Lk1�)"LUWm祘?y#un_L y�Q]]}Gοvv%trny5-puG8tP A�)tbkQK��A6Q[x6z΍KU�@A�2wˋ r nf+q)G�O>k֬EI+OZ&pUO_;z�T�---'N�� @BBڮf'Oꫯ�`:%�i/FNi}��@[1GS|%,$dԓ)46g\p+ýd)igc:zqЃam|7,.&@<<ĭ^@ $<ӧN{Ed1JAT*I$P(r![ok} md\ ?:.,-r*"  z!CC`Nѡ,WEwh\7 =,'@ɿu, dt:tf777,R�f6h4;T*  ӓf+J\]pB^esXLw>Q*d2Y(J$8\^Z[Lv u>MB|X 1uF@ hׯbON>T]=O;pK ,9PB`< S--OAThl,q'~ωߡEQ@EQliiG0nIH/Kv+t8a.ggy\/iqppppfGqqqtVJJJ?[V??՚ݳgϗ F466]#ዃg ,xbVt�ѝ� ׋L&^i bӷ]z888/hy.-\Fo=s!6NKKs:V dI=ƾ8Rlj5$'',^xzw}x~63BU/*/y+-]UM6d\�n]DⰉzfqDl1lny_G)�p8~1"$ ?%sD}z$q8~1iכ~lҙ{0(a1>>>}[0Bק kcbEBՂnjy!] 2 .;ko0Gbbbe�H:`p,i^[gW~6Kg͚pTqbI{obݼN C|N 28{Cǫo^y*0疗�d:wucS[`PTTUYȟ}ϗztjr '7? lAbby ZL;m o0(Lsxԣwo~d�@$5{7o5Flć5οu>ٸ[-fQg~LM�̕v+LXd seQ Q$*XLF@&?MS)Bh˻"] 8�R\M]Bص>&dv"纰6 bfwyʡIcA."fZ0&#Hh5Z.tHfR&_#9hI]=M奅T*H@Nu8Z鴘M7cY6j4pռ{@ZU]Up<L]bsцk*LAPz ̈༜B@;nJ\K888�-ضwmksuE1B}i%F2BdU6ǂy0,P_C$qmH.|E[[ԏ8kM ?pnqGQ'_(/m#IdTM 'Js�|Hjjj ǑHs %??d2 hQQ/" GH@��"Hq"!�(JM H$J 7}pm�9+ ߥw\ "A[?T5?7;EGzy9q8ѳw˛6HC-`ܫU!baVcnNnc^(s{߫hԅ ds떓. Ďt:^*Ք钼ݻ&F�18a|&llnPٕof˼tW(ihfT"yLaQqiYdDD%;KKc18Imە ?' z򲌶&3C_4j~^y#B=s۞d۵־Sنl/[eGRs#UY+s/oۛ$,$1;ԫJ|�J.ԩroPk/%_*pP\\ruu/(5ڼ~ >p0bƺwU7�F:77+:5z2=>ppp^:"PVѨ:K>ٸUD xe�Z~c찾|J PK7K*mАA҇KG2ѷܽ5[)sO�  ]P+]_}ν>e;S3-3QSۓesvDtO*KG$K/,._U[s>(NJIg5:5srso^KF"@gPZRmPl3w0ͥ7G<ڶB& *a%NMBߺv;=Ɨ{Z55MD$qrOB't$gn0{wyB".κ//7禮^*r.-$I�A_u?o.1DlraQg4>ppp^<KPݕ$oK5jkUZR*V vL/.x8">*Z>S+�p7N.\:"x@q76rbo{l$v3Uj�9{{w<}YRK�,]̭/ ߖkH*hS3`7Sv;Nk@ uӆ >ppp^_ˍ~'F} UאȊ̘{ }sX!~p=|`Q�R\{gmƔ) Gi㇮߯ a1r/Y|u\}I7E�hޔ\{ؘi*L ؾ]\C{o߶cıK�PY;4f[+6% NF@ }:߆Ҧ~# EȨ]evǶ-$uU^u{ɽ2.7kBWq# y+ɽÆ3 1Dz;P$Ewr ^$UU=z /{rFStt$:jYU~A7NaTȧhDOx{]3%.?KN q;Pi[_bQn5^!H# y/,Ijjjx<< $ Fmm_N'Jg0qg�쐢%/8[k{ ܌(I pſ9-qw:pM>+.\\ /I8ap<|�۷n88888� J7Ak4����IENDB`�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������pan-0.162/help/C/index.docbook����������������������������������������������������������������������0000664�0000000�0000000�00000232622�14754127724�0016107�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [ <!ENTITY legal SYSTEM "legal.xml"> <!ENTITY appversion "1.0"> <!ENTITY manrevision "0.1"> <!ENTITY date "December 2006"> <!ENTITY app "<application>Pan</application>"> <!ENTITY appname "Pan"> <!-- Information about the entities The legal.xml file contains legal information, there is no need to edit the file. Use the appversion entity to specify the version of the application. Use the manrevision entity to specify the revision number of this manual. Use the date entity to specify the release date of this manual. Use the app entity to specify the name of the application. --> ]> <!-- This is a GNOME documentation template, designed by the GNOME Documentation Project Team. Please use it for writing GNOME documentation, making obvious changes. In particular, all the words written in UPPERCASE (with the exception of GNOME) should be replaced. As for "legalnotice", please leave the reference unchanged. Remember that this is a guide, rather than a perfect model to follow slavishly. Make your manual logical and readable. And don't forget to remove these comments in your final documentation! ;-) --> <!-- (Do not remove this comment block.) Maintained by the GNOME Documentation Project http://developer.gnome.org/projects/gdp Template version: 2.0 beta Template last modified Apr 11, 2002 --> <!-- =============Document Header ============================= --> <article id="index" lang="en"> <!-- please do not change the id; for translations, change lang to --> <!-- appropriate code --> <articleinfo> <abstract role="description"> <para>Pan is a powerful and user-friendly USENET newsreader for GTK+.</para> </abstract> <title><application>Pan</application> Manual 2006 Douglas Bollinger 2011 Heinrich Müller 2011 Petr Kovar &legal; Douglas Bollinger V 0.3 April 2017 Petr Kovar V 0.2 January 2011 Heinrich Müller Petr Kovar V 0.1 December 2006 Douglas Bollinger Feedback To report a bug or make a suggestion regarding the Pan application or this manual, follow the directions in the Pan Contact Page. Pan pan Introduction The &app; application enables you to read and post articles and binaries on Usenet. Getting Started This section provides information on how to start &app;, and describes the &app; user interface. To Start <application>Pan</application> How to start &app; depends on your desktop environment. The GNOME Desktop Environment Press the Super key to enter the Activities Overview, type pan, and then press Enter. Command line To start &app; from a command line, type the following command, then press Enter: pan When You Start <application>Pan</application> When you start &app;, the following window is displayed:
<application>Pan</application> Main Window This is the &app; main window
The main &app; window contains the following elements: Menubar The menubar contains all the commands that you need to run &app;. Toolbar The toolbar contains a subset of the commands that you can access from the menubar. It also contains two textboxes that allow you to limit the number of groups and/or the number of articles displayed. Group Pane The Group Pane displays a list of all the newsgroups available on the server. This list is split into two groups: Subscribed Groups are a user-selected list of favorite groups, Other Groups are the rest of the available groups from the server. Header Pane The Header Pane displays a list of all the individual article headers available in the selected group. The Header Pane is highly customizable via sorting, threading and scoring. Body Pane The Body Pane displays the text of the selected article header. Status Bar The Status Bar displays information about current &app; activity: Current number of connections to the server Number of uncompleted tasks in the Task Manager Completed percentage of current tasks Error status of the event log When you right-click in the &app; window, the application displays a popup menu. The popup menu contains the most common commands for whichever pane you clicked. Like other applications, actions in &app; can be performed in several ways: with the menu, with the toolbar or with shortcut keys. The shortcut key for most menu items is shown in the menu itself, following the menu command.
Usenet in a Nutshell Knowledge about how Usenet works will make using Pan easier. Description Usenet is a distributed discussion system. Using a special program called a newsreader, a user accesses a news server to read and post email-like messages called articles. These articles are then exchanged back and forth with other news servers throughout the world. In this way, articles propagate from one news server to another throughout the entire Usenet system. Organization Articles are organized into categories called groups. In discussion groups, most articles are responses to another article. The set of articles which can be traced to one single non-reply article is called a thread. When articles are organized into threads, it is much easier to follow a single discussion. Article Headers Articles are routed around Usenet based on the information contained in the article header, which is the first part of an article that contains information like the subject, author, date and routing information. To save time and bandwidth, most newsreaders first download just the article headers to sort and thread them. The user selects an article of interest from the list of headers and then downloads the article body to read. Binary Data Usenet was originally created to distribute text content encoded in 7-bit ASCII. With additional encoding programs, multiple posts per chunk and other various tricks, it became possible to send binary data through Usenet. Groups that allow for binary content or binaries are called binary groups. Basic Usage This section is an overview on how to perform basic Usenet actions with &app;. Set Up a News Server When you start &app; for the first time, the Add a Server dialog is displayed. At this point, you must enter the connection information for the server you wish to access. After you enter this information, &app; will contact the server and download a list of all the groups the server carries and save it to disk. Refer to for more detailed information. Selecting a News Group The Group Pane contains a list of all the news groups available on the server. Scroll through the list and enter a group by clicking on its name. If this is the first time you have entered this group, you will be prompted on how many article headers you wish to retrieve from the server. You can choose to retrieve all article headers available for that group or limit the retrieval by either quantity of articles or number of days. After making a selection from this dialog, &app; will download the article headers for the selected group and save them locally on the computer. Depending on the news server, certain groups might be "dead" and have no headers available for download. After article header retrieval, the group name in the Group Pane will turn bold, which means there are unread articles in that particular group. Also the number of unread articles in the group will be displayed in parenthesis following the group name. It's not unusual for a server to have tens of thousands of groups, but usually a user is only interested in a few. To better keep track of the interesting groups, select the group name by middle-clicking on it and choose Groups Subscribe . Scroll the group window to the top if necessary and you will see that the selected newsgroup is listed directly under the Subscribed Groups section. Reading Articles After entering a group, the header pane will be filled with article headers. The header pane can be sorted by clicking on the topmost row of a column, where the column name is located. Clicking again will reverse the sort. The column that is used for sorting will have a downward arrow after the column name and the entire column will darken. &app; defaults to showing collapsed threads. Only the first article of the thread is shown with a number in parenthesis indicating how many posts are hidden. Clicking on the right-facing arrow before the header text will expand the thread, showing the hidden articles in the thread. Reading the first article of the thread will also expand the thread. The keyboard shortcut for expanding threads is Shift. Shift will collapse the thread. Clicking on a header will download the article from the server, store it in the article cache and display it in the article pane. The article is then marked as read. Read articles are distinguished in the header pane by using a normal (not bold) font and by showing an open envelope icon in the state column. You can scroll the message in the Article Pane by using the scrollbar or by pressing Space. Whenever the bottom of the retrieved article is already displayed, pressing Space will download the next article. Posting Articles To post an article in a group and start a new thread, select the group you wish to post to in the Group Pane and then choose Post Post to a Newsgroup . If this is the first time you have posted an article to a newsgroup, the Posting Profile dialog will appear and you will be required to fill in some information. Next, the Post Article dialog will appear. Type in a subject and then enter the body of the message at the bottom. When done, choose File Send Article to send the article to the news server and out to the rest of Usenet. Refer to and for more detailed information: Replying to Articles If you want to post a reply to a specific article and have your followup appear in that article's thread, highlight that article in the Header Pane with the middle mouse button and use Post Followup to Newsgroup . The highlighted article's text will appear as quoted text (each line is preceded by a ">") in the editor window. Type in your response and then choose File Send Article to send the article to the news server. If you want to send a reply to a specific article via email, highlight that article in the Header Pane with the middle mouse button and choose Post Reply to Author in Mail . The highlighted article's text will appear as quoted text (each line is preceded by a ">") in the editor window. Type in your response and then choose File Send Article and the text will be sent to the default external email application. Double-check the To: field and then send the email as you normally would with that application. Downloading Binaries A binary file in Usenet is usually composed of many smaller articles. &app; automatically organizes all these articles under one special article header. If all the data that comprises the binary header made it through the Usenet network successfully, a green, full puzzle-piece is displayed in the first column. To save the data, select the special header in the header window and use Articles Save Articles to download and save the binary data to disk. If the binary posts are corrupted by missing or incorrect data, a red, incomplete puzzle-piece is displayed in the first column. The file may be saved, but it will probably be corrupt in some way. Supporting binary newsgroups takes a large amount of bandwidth. Unless you are using a premium news server provider, it is not unusual for many binary files to be missing or corrupt. Groups Working with groups in &app;. Group Views The total number of groups on a news server can be quite extensive. An easy way to find a specific group is to use the Group text box in the toolbar. Only groups that match the characters typed in the box will be displayed in the Group Pane. If you wish to return the Group Pane to its original state, simply delete the characters in the box by clicking the X icon to the right of the box. The group names presented in the Group Pane can be shortened by choosing View Group Pane Abbreviate Names in Group Pane . This only alters the way the names are presented in this pane. Group Actions While a news group is selected, you can perform the following actions: Groups Mark Group Read Mark all articles in a group read. A typical way to read news is to read all the interesting threads and when done mark the group read. The next time you start the news reader, choose Groups Get New Headers in Selected Group . With View Header Pane Match only Unread Articles , the only headers you will see will be the new headers you just downloaded. Groups Get New Headers in Subscribed Groups Grab new headers for all the groups in the Subscribed Groups section. Groups Edit Group Preferences Opens the Group Preferences dialog. Within this dialog you can customize certain &app; features per group: Character encoding Location in the file hierarchy where attachments are saved The posting profile. Groups Subscribe Add a favorite group to the Subscribed Groups section of the Group Pane. Unsubscribe is the opposite of this command. Groups Refresh Group List Resync the local group list that &app; uses with the current listing on the news server. Groups Delete Group's Articles Delete all the articles for the selected group from the article index. The Newsrc File The group list, subscribe/unsubscribe status of each group and the articles marked read in each group are stored in the newsrc file at $HOME/.pan2/newsrc-1. The newsrc file format is standard among many Unix newsreaders and can be used to import and export this information between these applications. Headers Users will spend most of their time in &app; interacting with the article headers in the Header Pane. &app; has many features to optimize header viewing and article retrieval. Header View Since the total number of all the available article headers in a group might be enormous, &app; has several options to limit the number of visible headers to a more manageable number. In the toolbar, the Subject or Author text box is a filter than can be used to limit the visible headers. Usually this is used to search for a specific article or a group of articles. Click on the magnifying glass icon to choose which header field to base the filter. Only the article headers that match the characters typed into the text box will be displayed. Click the X to erase and reset. Choose Edit Preferences Headers To hide or change the display order of the Header Pane columns. Choose View Header Pane Thread Headers To enable or disable header threading in the Header Pane. Replies of Matched Articles The user can pick one of the next three options to control how &app; will display replies of matched articles. In View Header Pane Show Matching Articles Show only articles that match the article view options.. Show Matching Articles' Threads Not only show articles that match the article view options, but also show all the articles in the entire thread of the matched article. This option will force read headers to be visible regardless of the view options. Show Matching Articles Subthreads Not only show articles that match the article view options, but also show articles that are replies of any matched article. Article View Matches These options control which article headers are displayed in the Header Pane. In View Header Pane Match Only Unread Articles Only display articles that haven't been marked read. Match Only Cached Articles Only display articles that are available in the local article cache in the computer's hard drive. Match Only Complete Articles Only binary articles that are complete (full, green puzzle piece in the state column) will be displayed. This also hides text articles. Match Only My Articles Only articles that the user has posted will be displayed. Match Scores of xxxx These options deal with scoring where you choose to display an article based on its score. Refer to for more information. Header Movement Movement around the Header Pane can be controlled by several methods, allowing the user to easily jump around complicated discussion threads with minimal input. &app; was designed for mouse-less article viewing, so most people use the keyboard shortcuts associated with these menu actions. The keyboard shortcut for most menu actions is displayed after the menu command. Go Read More Scroll the article in the Article Pane. If the article is already scrolled to the bottom, grab the next article. You can customize the function of this key by changing Preferences Articles Space selects next article rather than next unread . Go Read Back Scroll the article up in the Article Pane. If it's already scrolled to the top, grab the previous article displayed in the Thread Pane. Go Next Unread Group Skip down to the next subscribed group in the Group Pane with unread articles and read the first article. Go Next Group Skip down to the next subscribed group in the Group Pane and read the first article. Go Next Unread Article Read the next unread article in the Thread Pane. Go Next Article Read the next article, regardless of its read/unread state. Go Next Watched Article Read the next watched article. A watched article is an article with a score of at least 9999. Refer to for more information. Go Previous Article Read the previous article in the Thread Pane. This doesn't scroll the Article Pane like Go Read Back . Go Parent Article Read the article for which the currently selected article is a reply. Go Next Unread Thread Skip to the next unread thread and read the first article. Go Next Thread Skip to the next thread and read the first article in that thread. Go Previous Thread Skip back to the last thread and read the last article in that thread. Header Selection In order to perform an action on an article header, you must select it first. Use the middle mouse button to select an article. Drag the selection field with the mouse to select multiple articles. Hold down the Ctrl key while clicking articles with the middle mouse button to add individual articles to the selection. &app; also offers a number of other ways to efficiently select articles. Edit Select All Articles Select all articles in the Header Pane. Edit Add Subthreads to Selection Add all articles that are a reply to the selected article to the selection. Edit Add Threads to Selection Add the entire thread of the selected article to the selection. Edit Add Similar Articles to Selection With one article selected, add others articles with the same author and from the current thread to the selection. Edit Deselect All Articles Cancel the current selection. Edit Select Article Body Select the entire article body. You must retrieve the article first. Header Action Whenever &app; downloads an article body, the data is saved to disk in the article cache. The article cache is a fixed-size buffer and when the cache has been filled, the older articles are erased to make room for newer ones. These are the actions you can perform on an article selected in the Header Pane. Articles Save Article Save the highlighted article to disk. When you select this option, the Save Articles dialog will open. From here, you can choose to: Save Text Save the text of the displayed article. Save Attachments Save the binary attachments of the selected article to disk. Path Where in the file hierarchy to save the binary attachment or text. Priority Where to add the file in the Task Manager queue. Articles Read Article Download the body of the selected article in the Header Pane and display it in the Article Pane. Articles Cache Article Download the body of the selected article in the Header Pane but do NOT display it in the Article Pane. Articles Mark Article as Read Change the state of the article to read. Articles Mark Article as Unread Change the state of the article to unread. Articles Delete Article Delete the selected article in the current group from the article index. Body The Body Pane displays the text of a selected article header. Digital Images Some groups specialize in digital images where each binary post is a separate image. &app; can automatically decode and display these images. To display the image, select and view the article header as you normally would for text and the image will be displayed in the Body Pane. Body Views The way information is presented in the Body Pane can be customized in several ways. In View Body Pane Wrap Article Body Will force the text to flow into paragraphs instead of running off the edge of the text window. This is useful to fix badly formatted articles. Show All Headers in Body Pane The headers displayed in the Header Pane are only a small subset of the all the article headers. This commands will display the complete list of article headers in the Body Pane before the article text. Rot 13 Selected Text A simple cipher used to hide story spoilers, joke punchlines, etc. Select a block of encrypted text and use this option to decode it to clear text. Use Monospace Font Sometimes Usenet authors will create simple ASCII artwork or diagrams. By default, &app; uses proportional fonts for all text which renders ASCII artwork unreadable. By choosing this option, the text of the Body Pane will be displayed using the Monospace Font. You can configure the monospace font in Edit Preferences Font . Show Smilies as Graphics Change ASCII emoticons like :) into graphical versions. Show *Bold*, _Underlined_ and /Italiced/ Over the years, Usenet authors have devised several strategies to overcome the limited typographic ability of ASCII. Enabling this option will format the article text following these typographic hints. Size Pictures to Fit Size digital images so they will display in the Body Pane without scrolling. Click on the image to view it in its original size. Posting How to post articles in &app;. Actions Post Post to Newsgroup Post an article to the selected newsgroup. Post Followup to Newsgroup Post a reply to the selected article and continue the thread. Post Reply to Author in Mail Post a reply to the selected article via email. While highlighting in the Header Pane the article header of a post that you posted to the news server, you can perform these two actions: Post Supersede Article This allows you to supersede an earlier article with another newer post. Post Cancel Article This allows you to cancel a earlier article. Most public news servers disable the supersede and cancel commands for security reasons. Make sure you are comfortable with your article before you post it to the news server, because in most cases it will be impossible to take back or alter what you have said. Posting Profiles Dialog Posting Profiles allow the user to configure different Usenet personas that may be customized for particular groups. The Posting Profiles dialog displays a list of currently configured Posting Profiles. From here you can Remove or Edit a profile by clicking on the profile's name and press the appropriate button. Clicking add will start a new profile. Mandatory Information Each profile contains the following information: Profile Name The name of this profile. Full Name The author name that will be used in the article's header. Email Address The email address that will be used in the article's header. Post Articles via If multiple news servers are configured, choose which server will receive the article. Signatures A signature is a block of text that is appended to the end of every outgoing article. Generally it is contact information, a personal motto or a witty saying. Click Use a Signature to activate signature support. Text Type in the text you wish to use as a signature. Text File Enter the location of the file in the disk hierarchy. The Browse button can assist in this. Command Type in the command you wish to run and the output of that command will be captured and used as the signature text. Example: fortune -s PGP Signature Choose this if you want to sign or encrypt your message with PGP. The given email address has to match the PGP email address for this method to work. PGP support is an optional feature and may not be available in your &app; build. Optional Information Attribution When you reply to a post, the text in the attribution box precedes the quoted text. The %d flag is replaced the by the date of the selected post while the %n flag is replaced with the author of the selected post. Extra Headers This is a advanced option to add extra headers to the article. Post Article Dialog Whenever you post an article you use the Post Article Dialog. Composition The Post Article Dialog is composed of the following parts: Menubar The menubar contains all the commands that you need to post an article. Toolbar The toolbar contains a subset of the commands that you can access from the menubar. From Select which Posting Profile to use. Subject Type in the subject of your post. If this post is a reply, this line is already filled-in. Newsgroups A comma separated list of all the groups that will receive this article. Mail To Enter an email address to send the article. More Headers An advanced option to manually add more headers. Text Area Where you enter the text of the article. File Commands These file commands are available from within the Post Article dialog. File Send Article When you are done entering the article, use this command to send the article to the news server. File Save Draft Save your current work on the article to disk. File Open Draft Load a previous draft and continue editing. Editing Commands This option is available from within the Post Article Dialog. Edit Manage Posting Profiles See Posting Profiles. Edit Run Editor Starts an external editor. Type in your post in the external editor as you normally would and save your work. The external editor will close and the text that was entered into that editor will be located in the text area. Edit Set Editor Choose which external editor to use. Edit Manage Editor List Setup another external editor. Edit Cut, Copy and Paste The standard GUI text functions. Edit Wrap Now Force the text flow into paragraphs instead of running off the edge of the text area. Edit Wrap Text Set this option to have text automatically wrap when entered. Edit Check Spelling Set this option and possible spelling errors in the text area will marked with a red wavy line. Edit ROT 13 ROT13 is a simple cipher to hide story spoilers, joke punchlines, etc. Select the text to cipher and use this command. Tasks Certain tasks performed by &app;, like downloading binary posts or grabbing new headers for a group, can take a long time. These tasks are queued and performed in the background while &app; is processing other tasks like grabbing an article. Cancel Last Task You can quickly cancel the last task added to the task queue by selecting: File Cancel Last Task . Task Manager Background tasks can be manipulated by using the Task Manager. The Task Manager can be accessed with File Task Manger or by left-clicking in the task area of the Status Bar at the bottom of the &app; screen. The Task Manger window is composed of the following parts: Toolbar The toolbar contains all the commands you need to manipulate the tasks in the Task Manger Window. Informational Area The Informational Area displays the number of queued tasks, the amount of data that needs to downloaded to complete the queued tasks, the current download rate and the estimated time needed to complete the queued tasks. Task List A list of queued tasks. Each row is a separate task. In order to manipulate a task, click on it and the row will be highlighted. Then click on one of the buttons in the toolbar. If &app; is shutdown whiles tasks are still waiting in the task manager, the task list is saved to disk and resumed when &app; is restarted. This, however, is not true for upload tasks in the current version. NZB Files &app; saves its task list in $HOME/.pan2/tasks.nzb file. You can import other task lists into &app; by choosing File Import NZB Files . Scoring Scoring allows the user to give an article a rating based on user-defined scoring rules. This rating can then be used by &app; to perform score-based actions. When a group's article headers are first downloaded from the news server, all the articles have a score of 0. Then the list of scoring rules in the score file are applied to each article. The score file rules might give an article from John Smith a high score, while articles with a subject line containing the phrase "For Sale" a negative score. Scoring Actions &app; can perform two actions based on an article's score: View an article by using View Header Pane Match Scores of xxxx . The default is to hide articles (by not matching) with a score of -9999. and view all other scores. Change the background and text color of the score column in the Header Pane. This is defined in Edit Preferences Colors . Adding Scoring Rules There are several ways to add rules to the score file. Select an article in the Header Pane and then select Articles Watch Thread . This rule sets the score of any post located in the thread of the selected article to 9999. The opposite of the above rule is Articles Ignore Thread . This rule sets the score of any post located in the thread of the selected article to -9999. Both of these scoring rules only work in the selected group and expire in one month. Selecting an article and selecting Articles Ignore Author will open the New Scoring Rule dialog. The default of this scoring rule is to score all the posts of the author of the selected article -9999 for the next month in the selected group. By clicking on various fields and selecting different options in the New Scoring Rule dialog, you can customize the rule further. For instance, instead of having the rule expire in one month, you can have the rule last forever. Also note that you can make the rule add to the score of an article, making it a watch rule. So the name "Ignore Author" can be somewhat of a misnomer. When finished, click Add and Rescore to close the dialog box. Selecting an article and selecting Articles Add a Scoring Rule is very similar to the Ignore Author section described above as it opens the same New Scoring Rule dialog, just with different defaults. Construct a rule in the same fashion as described above. Editing or Deleting Scoring Rules Selecting an article that is currently being scored and choosing Articles Edit Article's Watch/Ignore/Score will open the Article's Scores dialog box. From this dialog you can manipulate the scoring rule for the currently selected article. Each rule will have its own row describing the scoring action (plus or minus points), locations and line number of this rule in the score file and the texts of the rule. Select the rule and click Add button to alter the rule or Remove button to delete the rule from the score file. Click Close and Rescore when finished. Advanced Scoring The scoring file is located at $HOME/.pan2/Score. Advanced users might want to edit this file directly with a text editor to create advanced scoring rules that are difficult or impossible to construct from the New Scoring Rule dialog. This is probably easiest via the Edit Edit Score File menu as that will automatically rescore articles when you exit the edit window. The format of the scoring rules is similar to the application slrn, but be aware that not all slrn scoring functions will work in &app;. The slrn scoring functions are described in the document slrn - Scoring. Customization This section describes how certain features or actions in &app; can be customized. Behavior Many of the default actions of &app;, such as mouse clicks, actions when entering or leaving a group and the action of Space can be altered. In Edit Preferences Behavior Mouse The two boxes of the mouse section change the default action of the left mouse button. If unselected, you would have to double click on a group or article to activate it. Groups The selections in the group section control what commands &app; will automatically run when manipulating groups. The first box, when activated, will automatically get new headers for all subscribed groups whenever Pan is started. This is the equivalent of using Groups Get New Headers in Subscribed Groups from the menubar. The next box, when activated, will automatically get new headers when entering a group. This is the equivalent of using Groups Get New Headers in Selected Group from the menubar. The next box, when activated, will mark the entire group read when leaving a group. This is the equivalent of using Groups Mark Group Read from the menubar. The last box in the Groups section, when activated, will expand all threads in the Header Pane when entering a group. Articles The first option, when activated, makes Space select the next article rather than the next unread article. This is handy if you are viewing a thread with read and unread articles mixed together. The next option activates smooth scrolling in the Article Pane. GUI Composition The layout and view of the Group, Header and Body Panes in &app; can be customized in several ways. Pane Layout In Edit Preferences Layout the orientation of the Groups, Header and Body Panes can be manipulated. Tabbed Layout Instead of having all three panes share the &app; main window at one time, another view, called Tabbed Layout, can be activated by choosing View Layout Tabbed Layout . Now, only one of the three Panes will be displayed at a time. Each Pane is brought to the front of other Panes by clicking on its tab located directly under the tool bar or by pressing "1", "2" or "3" for the Group, Header or Body Pane respectively. Show/Hide Panes You can hide a specific Pane by choosing from View Layout and using the selection box to show/hide each of the Panes. Fonts Choose Edit Preferences Fonts to select a font. &app; can use the monospace font in the article Pane, if activated. Colors Choose Edit Preferences Colors to customize the colors used in &app;. The first section allows you to customize the colors used by scoring in the Header Pane. See for more information on how to use this feature. The second section allows you to customize the colors used in the Body Pane. External Applications In this section you set up external applications that &app; can use. In Edit Preferences Applications : Web Browser Click the Web Button to choose which external application to launch when clicking on an HTML link. Mail Reader Choose which external application to launch when clicking on an email address or when sending a post via email. To set up an external text editor, choose Post Post to Newsgroup . From the Post Article dialog menubar, choose Edit Set Editor Article Cache Size The article cache is a fixed-size disk buffer where &app; stores articles when they are downloaded from a news server. If the user downloads a large amount of binary attachments, the default cache size might be inadequate. The article cache size can be changed in Edit Preferences Behavior Article Cache News Servers &app; must connect to a special computer called a news server. The news server is the gateway used to access Usenet. Choose Edit Edit News Servers and the Servers dialog will appear. Click on a server name and you can edit or remove it via the buttons. Click the Add button to add another server. When you add or edit an existing server, the Edit a Server's Settings dialog will appear. In the location section: Address The internet address of the server. Port The port of the server. Port 119 is the standard port number for unsecured NNTP connections, port 563 is for TLS/SSL connections. The next section is the login information for the server. If you server requires a username and password, enter them here. If the server allows anonymous login or does not require authentication, just let these fields blank. Username Enter the login name if required. Password Enter the password if required. &app; can store saved passwords in a password storage service provided by GNOME Keyring or libsecret. To enable this feature, use Edit PreferencesMiscellaneousSave passwords in password storage. Password storage support is an optional feature and may not be available in your &app; build. The next section allows you to enter certain &app; settings that are server specific. Connection Limit &app; can open multiple connections to a server so the user can perform simultaneous actions like download a binary attachment will reading articles in a text group. In order to follow the GNKSA rules, the maximum number of connections &app; can have open with a server is 4. Expire Old Articles From this toggle box, you can pick a time when &app; will expire old articles and remove them from its article index. Server Rank When you have more than 1 server configured, &app; uses server rank to decide from which server to download the article. Only after all primary servers have been tried for the article will &app; use the fallback servers. The reason for this feature is that a user might have access to a free server and also have access to a byte-limited premium server. Server ranking allows &app; to use the fallback server as little as possible. TLS (SSL) Options If security and privacy are of concern, choose secured connections if the server supports it. TLS (SSL) support is an optional feature and may not be available in your &app; build. Always trust this server's certificate If you want to trust the server regardless of the authenticity of its certificate, you can enable this option. Use with caution! pan-0.162/help/C/legal.xml000066400000000000000000000071271475412772400152440ustar00rootroot00000000000000 Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License (GFDL), Version 1.1 or any later version published by the Free Software Foundation with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. You can find a copy of the GFDL at this link or in the file COPYING-DOCS distributed with this manual. This manual is part of a collection of GNOME manuals distributed under the GFDL. If you want to distribute this manual separately from the collection, you can do so by adding a copy of the license to the manual, as described in section 6 of the license. Many of the names used by companies to distinguish their products and services are claimed as trademarks. Where those names appear in any GNOME documentation, and the members of the GNOME Documentation Project are made aware of those trademarks, then the names are in capital letters or initial capital letters. DOCUMENT AND MODIFIED VERSIONS OF THE DOCUMENT ARE PROVIDED UNDER THE TERMS OF THE GNU FREE DOCUMENTATION LICENSE WITH THE FURTHER UNDERSTANDING THAT: DOCUMENT IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE DOCUMENT OR MODIFIED VERSION OF THE DOCUMENT IS FREE OF DEFECTS MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY, ACCURACY, AND PERFORMANCE OF THE DOCUMENT OR MODIFIED VERSION OF THE DOCUMENT IS WITH YOU. SHOULD ANY DOCUMENT OR MODIFIED VERSION PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL WRITER, AUTHOR OR ANY CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY DOCUMENT OR MODIFIED VERSION OF THE DOCUMENT IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER; AND UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER IN TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL THE AUTHOR, INITIAL WRITER, ANY CONTRIBUTOR, OR ANY DISTRIBUTOR OF THE DOCUMENT OR MODIFIED VERSION OF THE DOCUMENT, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER DAMAGES OR LOSSES ARISING OUT OF OR RELATING TO USE OF THE DOCUMENT AND MODIFIED VERSIONS OF THE DOCUMENT, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. pan-0.162/help/CMakeLists.txt000066400000000000000000000033021475412772400160030ustar00rootroot00000000000000# need to build docbook # see https://build.opensuse.org/package/live_build_log/openSUSE:Factory/pan/standard/x86_64 if (ENABLE_MANUAL) # https://cmake.org/cmake/help/latest/command/find_program.html find_program(has_itstool NAMES itstool REQUIRED) file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/C/figures") set(png_path "figures/pan_window.png") file(COPY_FILE "${CMAKE_CURRENT_SOURCE_DIR}/C/${png_path}" "${CMAKE_CURRENT_BINARY_DIR}/C/${png_path}") file(COPY_FILE "${CMAKE_CURRENT_SOURCE_DIR}/C/index.docbook" "${CMAKE_CURRENT_BINARY_DIR}/C/index.docbook") set(lang_list cs de es sv) foreach(lang IN LISTS lang_list) file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/${lang}/figures") add_custom_target( "${lang}-docbook" ALL BYPRODUCTS "${lang}/${lang}.mo" DEPENDS "${lang}/${lang}.po" WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/${lang}" COMMAND msgfmt -o "${lang}.mo" "${CMAKE_CURRENT_SOURCE_DIR}/${lang}/${lang}.po" COMMAND itstool -m "${lang}.mo" "${CMAKE_CURRENT_SOURCE_DIR}/C/index.docbook" ) file(CREATE_LINK "../../../C/pan/${png_path}" "${CMAKE_CURRENT_BINARY_DIR}/${lang}/${png_path}" SYMBOLIC) endforeach() foreach(lang IN LISTS lang_list ITEMS C) # https://cmake.org/cmake/help/latest/command/install.html#files install( FILES "${CMAKE_CURRENT_BINARY_DIR}/${lang}/index.docbook" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/help/${lang}/pan/" ) install( FILES "${CMAKE_CURRENT_BINARY_DIR}/${lang}/${png_path}" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/help/${lang}/pan/figures" ) endforeach() install(FILES "C/legal.xml" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/help/C/pan/") endif() pan-0.162/help/cs/000077500000000000000000000000001475412772400136525ustar00rootroot00000000000000pan-0.162/help/cs/cs.po000066400000000000000000004344371475412772400146360ustar00rootroot00000000000000# Translation of Pan Manual to Czech. # Copyright (C) 2017 the author(s) of Pan. # This file is distributed under the same license as the pan package. # Petr Kovar , 2017. # Marek Černocký , 2017. # msgid "" msgstr "" "Project-Id-Version: pan\n" "POT-Creation-Date: 2017-07-23 18:29+0000\n" "PO-Revision-Date: 2017-09-12 17:26+0200\n" "Last-Translator: Marek Černocký \n" "Language-Team: čeština \n" "Language: cs\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" "X-Generator: Gtranslator 2.91.7\n" #. Put one translator per line, in the form NAME , YEAR1, YEAR2 msgctxt "_" msgid "translator-credits" msgstr "" "Petr Kovář \n" "Marek Černocký " #. (itstool) path: abstract/para #: C/index.docbook:41 msgid "Pan is a powerful and user-friendly USENET newsreader for GTK+." msgstr "" "Pan je výkonný a uživatelsky přívětivý diskusní klient sítě USENET psaný pro " "GTK+." #. (itstool) path: articleinfo/title #: C/index.docbook:44 msgid "Pan Manual" msgstr "Příručka k aplikaci Pan" #. (itstool) path: articleinfo/copyright #: C/index.docbook:46 msgid "2006 Douglas Bollinger" msgstr "2006 Douglas Bollinger" #. (itstool) path: articleinfo/copyright #: C/index.docbook:51 msgid "2011 Heinrich Müller" msgstr "2011 Heinrich Müller" #. (itstool) path: articleinfo/copyright #: C/index.docbook:56 msgid "2011 Petr Kovar" msgstr "2011 Petr Kovar" #. (itstool) path: legalnotice/para #: C/index.docbook:2 msgid "" "Permission is granted to copy, distribute and/or modify this document under " "the terms of the GNU Free Documentation License (GFDL), Version 1.1 or any " "later version published by the Free Software Foundation with no Invariant " "Sections, no Front-Cover Texts, and no Back-Cover Texts. You can find a copy " "of the GFDL at this link or in " "the file COPYING-DOCS distributed with this manual." msgstr "" "Je povoleno kopírovat, šířit a/nebo upravovat tento dokument za podmínek GNU " "Free Documentation License (GFDL) ve verzi 1.1 nebo v jakékoli další verzi " "vydané nadací Free Software Foundation; bez neměnných oddílů, bez textů " "předních desek a bez textů zadních desek. Kopii licence GFDL naleznete pod " "tímto odkazem nebo v souboru " "COPYING-DOCS dodávaném s touto příručkou." #. (itstool) path: legalnotice/para #: C/index.docbook:12 msgid "" "This manual is part of a collection of GNOME manuals distributed under the " "GFDL. If you want to distribute this manual separately from the collection, " "you can do so by adding a copy of the license to the manual, as described in " "section 6 of the license." msgstr "" "Tato příručka je součástí sbírky příruček GNOME šířených za podmínek licence " "GNU FDL. Pokud chcete tento dokument šířit odděleně od sbírky, musíte " "přiložit kopii licence dle popisu v oddílu 6 dané licence." #. (itstool) path: legalnotice/para #: C/index.docbook:19 msgid "" "Many of the names used by companies to distinguish their products and " "services are claimed as trademarks. Where those names appear in any GNOME " "documentation, and the members of the GNOME Documentation Project are made " "aware of those trademarks, then the names are in capital letters or initial " "capital letters." msgstr "" "Mnoho užívaných názvů určených k zviditelnění produktů nebo služeb jsou " "ochranné známky. Na místech, kde jsou tato jména v dokumentaci užita a " "členové Dokumentačního projektu GNOME jsou si vědomi skutečnosti, že se " "jedná o ochrannou známku, je takové jméno psáno velkými písmeny celé nebo s " "velkým písmenem na začátku." #. (itstool) path: listitem/para #: C/index.docbook:35 msgid "" "DOCUMENT IS PROVIDED ON AN \"AS IS\" BASIS, WITHOUT WARRANTY OF ANY KIND, " "EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT " "THE DOCUMENT OR MODIFIED VERSION OF THE DOCUMENT IS FREE OF DEFECTS " "MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE " "RISK AS TO THE QUALITY, ACCURACY, AND PERFORMANCE OF THE DOCUMENT OR " "MODIFIED VERSION OF THE DOCUMENT IS WITH YOU. SHOULD ANY DOCUMENT OR " "MODIFIED VERSION PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL " "WRITER, AUTHOR OR ANY CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY " "SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN " "ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY DOCUMENT OR MODIFIED VERSION " "OF THE DOCUMENT IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER; AND" msgstr "" "DOKUMENT JE POSKYTOVÁN V PODOBĚ „JAK JE“, BEZ ZÁRUKY JAKÉHOKOLIV DRUHU, " "NEPOSKYTUJÍ SE ANI ODVOZENÉ ZÁRUKY, ZÁRUKY, ŽE DOKUMENT, NEBO JEHO UPRAVENÁ " "VERZE, JE BEZCHYBNÝ, NEBO ZÁRUKY PRODEJNOSTI, VHODNOSTI PRO URČITÝ ÚČEL, " "NEBO NEPORUŠENOSTI. RIZIKO NEKVALITY, NEPŘESNOSTI A ŠPATNÉHO PROVEDENÍ " "DOKUMENTU, NEBO JEHO UPRAVENÉ VERZE, NESETE VY. POKUD JE TENTO DOKUMENT NEBO " "JEHO UPRAVENÁ VERZE VADNÁ V JAKÉMKOLIV SMYSLU, VY (NIKOLIV PŮVODCE, AUTOR " "NEBO JAKÝKOLIV PŘISPĚVATEL) PŘEBÍRÁTE ODPOVĚDNOST ZA JAKÉKOLIV NÁKLADY NA " "NUTNÉ ÚPRAVY, OPRAVY ČI SLUŽBY. TOTO PROHLÁŠENÍ O ZÁRUCE PŘEDSTAVUJE " "ZÁKLADNÍ SOUČÁST TÉTO LICENCE. BEZ TOHOTO PROHLÁŠENÍ NENÍ PODLE TÉTO DOHODY " "POVOLENO UŽÍVÁNÍ ANI ÚPRAVY TOHOTO DOKUMENTU; DÁLE" #. (itstool) path: listitem/para #: C/index.docbook:55 msgid "" "UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER IN TORT (INCLUDING " "NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL THE AUTHOR, INITIAL WRITER, ANY " "CONTRIBUTOR, OR ANY DISTRIBUTOR OF THE DOCUMENT OR MODIFIED VERSION OF THE " "DOCUMENT, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON " "FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF " "ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, " "WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER DAMAGES " "OR LOSSES ARISING OUT OF OR RELATING TO USE OF THE DOCUMENT AND MODIFIED " "VERSIONS OF THE DOCUMENT, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE " "POSSIBILITY OF SUCH DAMAGES." msgstr "" "ZA ŽÁDNÝCH OKOLNOSTÍ A ŽÁDNÝCH PRÁVNÍCH PŘEDPOKLADŮ, AŤ SE JEDNÁ O PŘEČIN " "(VČETNĚ NEDBALOSTNÍCH), SMLOUVU NEBO JINÉ, NENÍ AUTOR, PŮVODNÍ PISATEL, " "KTERÝKOLIV PŘISPĚVATEL NEBO KTERÝKOLIV DISTRIBUTOR TOHOTO DOKUMENTU NEBO " "UPRAVENÉ VERZE DOKUMENTU NEBO KTERÝKOLIV DODAVATEL NĚKTERÉ Z TĚCHTO STRAN " "ODPOVĚDNÝ NĚJAKÉ OSOBĚ ZA PŘÍMÉ, NEPŘÍMÉ, SPECIÁLNÍ, NAHODILÉ NEBO NÁSLEDNÉ " "ŠKODY JAKÉHOKOLIV CHARAKTERU, VČETNĚ, ALE NEJEN, ZA POŠKOZENÍ ZE ZTRÁTY " "DOBRÉHO JMÉNA, PŘERUŠENÍ PRÁCE, PORUCHY NEBO NESPRÁVNÉ FUNKCE POČÍTAČE NEBO " "JINÉHO A VŠECH DALŠÍCH ŠKOD NEBO ZTRÁT VYVSTÁVAJÍCÍCH Z NEBO VZTAHUJÍCÍCH SE " "K POUŽÍVÁNÍ TOHOTO DOKUMENTU NEBO UPRAVENÝCH VERZÍ DOKUMENTU, I KDYŽ BY " "TAKOVÁTO STRANA BYLA INFORMOVANÁ O MOŽNOSTI TAKOVÉHOTO POŠKOZENÍ." #. (itstool) path: legalnotice/para #: C/index.docbook:28 msgid "" "DOCUMENT AND MODIFIED VERSIONS OF THE DOCUMENT ARE PROVIDED UNDER THE TERMS " "OF THE GNU FREE DOCUMENTATION LICENSE WITH THE FURTHER UNDERSTANDING THAT: " "<_:orderedlist-1/>" msgstr "" "DOKUMENT A JEHO UPRAVENÉ VERZE JSOU ŠÍŘENY V SOULADU SE ZNĚNÍM LICENCE GNU " "FREE DOCUMENTATION LICENSE S NÁSLEDUJÍCÍM USTANOVENÍM: <_:orderedlist-1/>" #. (itstool) path: authorgroup/author #: C/index.docbook:83 msgid "" "Douglas Bollinger " msgstr "" "Douglas Bollinger " #. (itstool) path: revdescription/para #: C/index.docbook:124 C/index.docbook:132 msgid "Petr Kovar" msgstr "Petr Kovář" #. (itstool) path: revhistory/revision #: C/index.docbook:120 msgid "" "V 0.3 April 2017 <_:revdescription-1/>" msgstr "" "V 0.3 duben 2017 <_:revdescription-1/>" #. (itstool) path: revdescription/para #: C/index.docbook:131 msgid "Heinrich Müller" msgstr "Heinrich Müller" #. (itstool) path: revhistory/revision #: C/index.docbook:127 msgid "" "V 0.2 January 2011 <_:revdescription-1/>" msgstr "" "V 0.2 leden 2011 <_:revdescription-1/>" #. (itstool) path: revdescription/para #: C/index.docbook:139 msgid "Douglas Bollinger" msgstr "Douglas Bollinger" #. (itstool) path: revhistory/revision #: C/index.docbook:135 msgid "" "V 0.1 December 2006 <_:revdescription-1/>" msgstr "" "V 0.1 prosinec 2006 <_:revdescription-1/>" #. (itstool) path: legalnotice/title #: C/index.docbook:150 msgid "Feedback" msgstr "Ohlasy" #. (itstool) path: legalnotice/para #: C/index.docbook:151 msgid "" "To report a bug or make a suggestion regarding the Pan application or this manual, follow the directions in the Pan Contact Page." msgstr "" "Pokud chcete oznámit chybu nebo navrhnout vylepšení vztahující se k aplikaci " "Pan nebo této příručce, postupujte dle instrukcí " "na kontaktní stránce " "aplikace Pan." #. (itstool) path: article/indexterm #: C/index.docbook:160 msgid "Pan" msgstr "Pan" #. (itstool) path: article/indexterm #: C/index.docbook:163 msgid "pan" msgstr "pan" #. (itstool) path: sect1/title #: C/index.docbook:172 msgid "Introduction" msgstr "Úvod" #. (itstool) path: sect1/para #: C/index.docbook:173 msgid "" "The Pan application enables you to read and post " "articles and binaries on Usenet." msgstr "" "Aplikace Pan umožňuje číst a vystavovat textové " "příspěvky i binární data v síti Usenet." #. (itstool) path: sect1/title #: C/index.docbook:179 msgid "Getting Started" msgstr "Začínáme" #. (itstool) path: sect1/para #: C/index.docbook:180 msgid "" "This section provides information on how to start Pan, and describes the Pan user " "interface." msgstr "" "Tato kapitola poskytuje informace o tom, jak Pan " "spustit, a popisuje jeho uživatelské rozhraní." #. (itstool) path: sect2/title #: C/index.docbook:183 msgid "To Start Pan" msgstr "Když chcete spustit Pan" #. (itstool) path: sect2/para #: C/index.docbook:184 msgid "" "How to start Pan depends on your desktop " "environment." msgstr "" "Způsoby, jakými se dá Pan spustit, závisí na " "uživatelském prostředí." #. (itstool) path: varlistentry/term #: C/index.docbook:188 msgid "The GNOME Desktop Environment" msgstr "Uživatelské prostředí GNOME" #. (itstool) path: listitem/para #: C/index.docbook:190 msgid "" "Press the Super key to enter the Activities Overview, type " "pan, and then press Enter." msgstr "" "Zmáčkněte klávesu Super, abyste se dostali do přehledu " "činností, napište pan a zmáčkněte klávesu " "Enter." #. (itstool) path: varlistentry/term #: C/index.docbook:196 msgid "Command line" msgstr "Příkazový řádek" #. (itstool) path: listitem/para #: C/index.docbook:198 msgid "" "To start Pan from a command line, type the " "following command, then press Enter:" msgstr "" "Když chcete spustit Pan z příkazové řádky, " "napište následující příkaz a zmáčkněte Enter." #. (itstool) path: listitem/screen #: C/index.docbook:200 #, no-wrap msgid "pan" msgstr "pan" #. (itstool) path: sect2/title #: C/index.docbook:209 msgid "When You Start Pan" msgstr "Když jste spustili Pan" #. (itstool) path: sect2/para #: C/index.docbook:210 msgid "" "When you start Pan, the following window is " "displayed:" msgstr "" "Po spuštění aplikace Pan se zobrazí následující " "okno:" #. (itstool) path: figure/title #: C/index.docbook:214 msgid "Pan Main Window" msgstr "Hlavní okno aplikace Pan" #. (itstool) path: imageobject/imagedata #. This is a reference to an external file such as an image or video. When #. the file changes, the md5 hash will change to let you know you need to #. update your localized copy. The msgstr is not used at all. Set it to #. whatever you like once you have updated your copy of the file. #: C/index.docbook:217 msgctxt "_" msgid "" "external ref='figures/pan_window.png' md5='c9415a98935ef2e2568797388206877c'" msgstr "" "external ref='figures/pan_window.png' md5='c9415a98935ef2e2568797388206877c'" #. (itstool) path: screenshot/mediaobject #: C/index.docbook:216 msgid "" " " " This is the Pan main window " msgstr "" " Jedná se o hlavní okno aplikace " "Pan" #. (itstool) path: sect2/para #: C/index.docbook:236 msgid "" "The main Pan window contains the following " "elements:" msgstr "" "Hlavní okno aplikace Pan obsahuje následující " "prvky:" #. (itstool) path: varlistentry/term #: C/index.docbook:240 msgid "Menubar" msgstr "Nabídková lišta" #. (itstool) path: listitem/para #: C/index.docbook:242 msgid "" "The menubar contains all the commands that you need to run Pan." msgstr "" "Nabídková lišta obsahuje všechny příkazy, které potřebujete v aplikaci " "Pan spouštět." #. (itstool) path: varlistentry/term #: C/index.docbook:247 msgid "Toolbar" msgstr "Nástrojová lišta" #. (itstool) path: listitem/para #: C/index.docbook:249 msgid "" "The toolbar contains a subset of the commands that you can access from the " "menubar. It also contains two textboxes that allow you to limit the number " "of groups and/or the number of articles displayed." msgstr "" "Nástrojová lišta obsahuje podmnožinu příkazů z těch, které jsou v nabídkové " "liště. Obsahuje také dvě textová pole, do kterých můžete zadat omezení pro " "počet zobrazených skupin a příspěvků." #. (itstool) path: varlistentry/term #: C/index.docbook:255 msgid "Group Pane" msgstr "Panel skupin" #. (itstool) path: listitem/para #: C/index.docbook:257 msgid "" "The Group Pane displays a list of all the newsgroups available on the " "server. This list is split into two groups: Subscribed Groups are a user-" "selected list of favorite groups, Other Groups are the rest of the available " "groups from the server." msgstr "" "Panel se skupinami vypisuje všechny diskuzní skupiny dostupné na serveru. " "Seznam je rozdělen na dvě části: Odebírané skupiny tvoří seznam skupin, " "které si uživatel vybral jako oblíbené. Ostatní skupiny pak tvoří zbytek " "skupin dostupných na serveru." #. (itstool) path: varlistentry/term #: C/index.docbook:264 msgid "Header Pane" msgstr "Panel záhlaví" #. (itstool) path: listitem/para #: C/index.docbook:266 msgid "" "The Header Pane displays a list of all the individual article headers " "available in the selected group. The Header Pane is highly customizable via " "sorting, threading and scoring." msgstr "" "Panel se záhlavími zobrazuje seznam záhlaví všech jednotlivých příspěvků " "dostupných ve vybrané skupině. Panel se dá značně přizpůsobit pomocí řazení, " "zobrazení vláken a hodnocení." #. (itstool) path: varlistentry/term #: C/index.docbook:272 msgid "Body Pane" msgstr "Panel těla" #. (itstool) path: listitem/para #: C/index.docbook:274 msgid "The Body Pane displays the text of the selected article header." msgstr "Panel těla zobrazuje text od vybrané hlavičky příspěvku." #. (itstool) path: varlistentry/term #: C/index.docbook:279 msgid "Status Bar" msgstr "Stavová lišta" #. (itstool) path: listitem/para #: C/index.docbook:281 msgid "" "The Status Bar displays information about current Pan activity:" msgstr "" "Stavová lišta zobrazuje informace a aktuální činnosti aplikace " "Pan:" #. (itstool) path: listitem/para #: C/index.docbook:284 msgid "Current number of connections to the server" msgstr "Aktuální počet připojení k serveru" #. (itstool) path: listitem/para #: C/index.docbook:285 msgid "Number of uncompleted tasks in the Task Manager" msgstr "Počet nedokončených úloh ve správci úloh" #. (itstool) path: listitem/para #: C/index.docbook:286 msgid "Completed percentage of current tasks" msgstr "Procentuální vyjádření dokončené části aktuálních úloh" #. (itstool) path: listitem/para #: C/index.docbook:287 msgid "Error status of the event log" msgstr "Chybové stav ze záznamu událostí" #. (itstool) path: sect2/para #: C/index.docbook:292 msgid "" "When you right-click in the Pan window, the " "application displays a popup menu. The popup menu contains the most common " "commands for whichever pane you clicked." msgstr "" "Když v okně aplikace Pan kliknete prvým " "tlačítkem, zobrazí se vám kontextová nabídka. Ta obsahuje nejpoužívanější " "příkazy pro panel, na který jste zrovna klikli." #. (itstool) path: sect2/para #: C/index.docbook:294 msgid "" "Like other applications, actions in Pan can be " "performed in several ways: with the menu, with the toolbar or with shortcut " "keys. The shortcut key for most menu items is shown in the menu itself, " "following the menu command." msgstr "" "Stejně, jako v jiných aplikacích, i v aplikaci Pan můžete provádět činnosti různým způsobem: přes nabídku, přes " "nástrojovou lištu nebo pomocí klávesových zkratek. Klávesové zkratky jsou " "pro většinu položek zobrazené přímo v nabídce, vedle příkazů." #. (itstool) path: sect1/title #: C/index.docbook:304 msgid "Usenet in a Nutshell" msgstr "Usenet v kostce" #. (itstool) path: sect1/para #: C/index.docbook:305 msgid "Knowledge about how Usenet works will make using Pan easier." msgstr "" "Znalost o tom, jak Usenet funguje, vám usnadní používání aplikace " "Pan." #. (itstool) path: sect2/title #: C/index.docbook:307 msgid "Description" msgstr "Popis" #. (itstool) path: sect2/para #: C/index.docbook:308 msgid "" "Usenet is a distributed discussion system. Using a special program called a " "newsreader, a user accesses a news server to read and post email-like " "messages called articles. These articles are then exchanged back and forth " "with other news servers throughout the world. In this way, articles " "propagate from one news server to another throughout the entire Usenet " "system." msgstr "" "Usenet je distribuovaný komunikační systém. Pomocí speciálního programu " "nazývaného čtečka příspěvků (newsreader) se uživatel připojí k diskuznímu " "serveru, na kterém může číst a vystavovat zprávy nazývané příspěvky " "(articles) podobným způsobem, jako při e-mailové komunikaci. Tyto příspěvky " "jsou vyměňovány tam a zpátky s ostatními diskuzními servery po celém světě a " "rozšíří se tak do celého systému Usenet." #. (itstool) path: sect2/title #: C/index.docbook:314 msgid "Organization" msgstr "Organizace" #. (itstool) path: sect2/para #: C/index.docbook:315 msgid "" "Articles are organized into categories called groups. In discussion groups, " "most articles are responses to another article. The set of articles which " "can be traced to one single non-reply article is called a thread. When " "articles are organized into threads, it is much easier to follow a single " "discussion." msgstr "" "Příspěvky jsou uspořádané do kategorií nazývaných skupiny. V diskuzních " "skupinách bývá většina příspěvků odpovědí na jiný příspěvek. Sada příspěvků, " "které lze vysledovat do jednoho původního příspěvku, který není odpovědí, se " "nazývá vlákno. Když jsou příspěvky uspořádané do vláken, je mnohem " "jednodušší sledovat ucelenou diskuzi." #. (itstool) path: sect2/title #: C/index.docbook:320 msgid "Article Headers" msgstr "Záhlaví příspěvků" #. (itstool) path: sect2/para #: C/index.docbook:321 msgid "" "Articles are routed around Usenet based on the information contained in the " "article header, which is the first part of an article that contains " "information like the subject, author, date and routing information. To save " "time and bandwidth, most newsreaders first download just the article headers " "to sort and thread them. The user selects an article of interest from the " "list of headers and then downloads the article body to read." msgstr "" "Příspěvky jsou v síti Usenet směrované na základě informací v jejich " "záhlavích. Záhlaví jsou první částí příspěvků a obsahují informace, jako je " "předmět, autor, datum a směrovací údaje. Aby se šetřil čas a šířka pásma, " "většina čteček nejprve stáhne jen záhlaví příspěvku, aby je mohla seřadit a " "sloučit do vláken. Teprve, až si uživatel vybere ze seznamu příspěvek, který " "ho zajímá, tak se stáhne tělo článku a může si jej přečíst." #. (itstool) path: sect2/title #: C/index.docbook:328 msgid "Binary Data" msgstr "Binární data" #. (itstool) path: sect2/para #: C/index.docbook:329 msgid "" "Usenet was originally created to distribute text content encoded in 7-bit " "ASCII. With additional encoding programs, multiple posts per chunk and other " "various tricks, it became possible to send binary data through Usenet. " "Groups that allow for binary content or binaries are called binary groups." msgstr "" "Usenet byl původně vytvořen za účelem šíření textového obsahu v 7bitovém " "ASCII. S dodatečnými kódovacími programy, více zřetězenými příspěvky a " "dalšími triky je dnes možné posílat v síti Usenet i binární data. Skupiny, " "které umožňují binární obsah nebo binární data, se nazývají binární skupiny." #. (itstool) path: sect1/title #: C/index.docbook:338 msgid "Basic Usage" msgstr "Základy používání" #. (itstool) path: sect1/para #: C/index.docbook:339 msgid "" "This section is an overview on how to perform basic Usenet actions with " "Pan." msgstr "" "Tento oddíl je přehledem o tom, jak provádět základní činnosti v síti Usenet " "s pomocí aplikace Pan." #. (itstool) path: sect2/title #: C/index.docbook:344 msgid "Set Up a News Server" msgstr "Nastavení diskuzního serveru" #. (itstool) path: sect2/para #: C/index.docbook:345 msgid "" "When you start Pan for the first time, the " "Add a Server dialog is displayed." msgstr "" "Když spustíte Pan poprvé, zobrazí se dialogové " "okno Přidání nového serveru." #. (itstool) path: sect2/para #: C/index.docbook:347 msgid "" "At this point, you must enter the connection information for the server you " "wish to access. After you enter this information, Pan will contact the server and download a list of all the groups " "the server carries and save it to disk." msgstr "" "V tuto chvíli musíte zadat připojovací údaje pro server, který si přejete " "používat. Po jejich zadání Pan server kontaktuje " "a stáhne si z něj seznam všech skupin, o které se server stará, a uloží si " "je na disk." #. (itstool) path: sect2/para #: C/index.docbook:351 msgid "" "Refer to for more detailed " "information." msgstr "Další podrobné informace viz ." #. (itstool) path: sect2/title #: C/index.docbook:357 msgid "Selecting a News Group" msgstr "Výběr diskuzní skupiny" #. (itstool) path: sect2/para #: C/index.docbook:358 msgid "" "The Group Pane contains a list of all the news groups available on the " "server. Scroll through the list and enter a group by clicking on its name." msgstr "" "Panel se skupinami obsahuje seznam všech diskuzních skupin dostupných na " "serveru. Seznam si můžete procházet a kliknutím na název si skupinu vybrat." #. (itstool) path: sect2/para #: C/index.docbook:361 msgid "" "If this is the first time you have entered this group, you will be prompted " "on how many article headers you wish to retrieve from the server. You can " "choose to retrieve all article headers available for that group or limit the " "retrieval by either quantity of articles or number of days." msgstr "" "Když do skupiny vstoupíte poprvé, jste dotázáni, kolik záhlaví článků si " "přejete ze serveru stahovat. Můžete si zvolit, jestli stahovat všechna " "dostupná záhlaví článků pro danou skupinu, nebo jejich množství omezit, buď " "množstvím nebo počtem dní." #. (itstool) path: sect2/para #: C/index.docbook:365 msgid "" "After making a selection from this dialog, Pan " "will download the article headers for the selected group and save them " "locally on the computer." msgstr "" "Až si jednu z možností v dialogovém okně vyberete, Pan stáhne záhlaví článků pro vybranou skupinu a uloží je do vašeho " "počítače." #. (itstool) path: note/para #: C/index.docbook:368 msgid "" "Depending on the news server, certain groups might be \"dead\" and have no " "headers available for download." msgstr "" "V závislosti na konkrétním diskuzním serveru mohou být některé skupiny " "„mrtvé“ a nemají žádná záhlaví dostupná ke stažení." #. (itstool) path: sect2/para #: C/index.docbook:371 msgid "" "After article header retrieval, the group name in the Group Pane will turn " "bold, which means there are unread articles in that particular group. Also " "the number of unread articles in the group will be displayed in parenthesis " "following the group name." msgstr "" "Jakmile se stáhnou záhlaví příspěvků, název skupiny v panelu skupin bude " "tučný, čímž se dává najevo, že v dané skupině jsou nepřečtené příspěvky. " "Počet těchto nepřečtených příspěvků je uvedený v závorkách hned za názvem " "skupiny." #. (itstool) path: sect2/para #: C/index.docbook:375 msgid "" "It's not unusual for a server to have tens of thousands of groups, but " "usually a user is only interested in a few. To better keep track of the " "interesting groups, select the group name by middle-clicking on it and " "choose Groups Subscribe . Scroll the group window to the top if necessary " "and you will see that the selected newsgroup is listed directly under the " "Subscribed Groups section." msgstr "" "Není nic neobvyklého, že má server desítky tisíc skupin, ale uživatele z " "toho obvykle zajímá jen pár. Abyste měli lepší přehled o skupinách, které " "vás zajímají, vyberte název skupiny prostředním tlačítkem myši a zvolte " "Skupiny Odebírat. V případě potřeby posuňte obsah panelu nahoru, abyste viděli " "část Odebírané skupiny, ve které by teď vybraná " "skupina měla být vypsána." #. (itstool) path: sect2/title #: C/index.docbook:387 msgid "Reading Articles" msgstr "Čtení příspěvků" #. (itstool) path: sect2/para #: C/index.docbook:388 msgid "" "After entering a group, the header pane will be filled with article headers. " "The header pane can be sorted by clicking on the topmost row of a column, " "where the column name is located. Clicking again will reverse the sort. The " "column that is used for sorting will have a downward arrow after the column " "name and the entire column will darken." msgstr "" "Když vstoupíte do skupin, vyplní se panel záhlaví záhlavími příspěvků z této " "skupiny. Můžete si je seřadit kliknutím na úplně horní řádek ve sloupci, ve " "kterém je uvedený název sloupce. Když na název kliknete znovu, seřadí se v " "opačném pořadí. Sloupec, který je použitý pro řazení má vedle názvu " "zobrazenou šipku a celý sloupec je tmavší." #. (itstool) path: sect2/para #: C/index.docbook:392 msgid "" "Pan defaults to showing collapsed threads. Only " "the first article of the thread is shown with a number in parenthesis " "indicating how many posts are hidden. Clicking on the right-facing arrow " "before the header text will expand the thread, showing the hidden articles " "in the thread. Reading the first article of the thread will also expand the " "thread. The keyboard shortcut for expanding threads is " "Shift. " "Shift will collapse " "the thread." msgstr "" "Pan ve výchozím stavu zobrazuje vlákna sbalená. " "Zobrazené je tak jen záhlaví prvního příspěvku spolu s číslem v závorkách, " "které říká, kolik příspěvků je skryto. Kliknutím na šipku ukazující doprava " "před textem záhlaví se vlákno rozbalí a skryté příspěvky zobrazí. Rozbalení " "způsobí i čtení prvního příspěvku vlákna. Klávesová zkratka pro rozbalení " "vlákna je Shitf . " "Shift naopak vlákno " "sbalí." #. (itstool) path: sect2/para #: C/index.docbook:398 msgid "" "Clicking on a header will download the article from the server, store it in " "the article cache and display it in the article pane. The article is then " "marked as read. Read articles are distinguished in the header pane by using " "a normal (not bold) font and by showing an open envelope icon in the state " "column." msgstr "" "Kliknutím na záhlaví se stáhne příspěvek ze serveru, uloží se do mezipaměti " "příspěvků a zobrazí v panelu těla příspěvku. Po té se označí jako přečtený. " "Přečtené příspěvky jsou v panelu se záhlavími odlišené normálním fontem " "(zatímco nepřečtené jsou tučným) a ikonou otevřené obálky ve sloupci stav." #. (itstool) path: sect2/para #: C/index.docbook:401 msgid "" "You can scroll the message in the Article Pane by using the scrollbar or by " "pressing Space. Whenever the bottom of the retrieved " "article is already displayed, pressing Space will download " "the next article." msgstr "" "Obsah příspěvku si v panelu příspěvků můžete posouvat pomocí posuvníků nebo " "mačkáním mezerníku. Když dojdete až na konec příspěvku a " "zmáčknete mezerník, načte se další příspěvek." #. (itstool) path: sect2/title #: C/index.docbook:407 msgid "Posting Articles" msgstr "Vystavování příspěvků" #. (itstool) path: sect2/para #: C/index.docbook:408 msgid "" "To post an article in a group and start a new thread, select the group you " "wish to post to in the Group Pane and then choose " "Post Post to a Newsgroup . If this is the first time you have posted an article to a " "newsgroup, the Posting Profile dialog will appear and " "you will be required to fill in some information. Next, the Post " "Article dialog will appear. Type in a subject and then enter the " "body of the message at the bottom. When done, choose " "File Send Article to send the article to the news server and out to the rest of " "Usenet." msgstr "" "Když chcete vystavit příspěvek ve skupině a začít s ním nové vlákno, vyberte " "v panelu skupin skupinu, do které jej chcete vystavit, a zvolte " "Vystavit Vystavit v diskuzní " "skupině. Pokud je to poprvé, co vystavujete " "příspěvek do diskuzní skupiny, objeví se dialogové okno Profil, ve kterém budete muset vyplnit některé údaje. Po té se objeví " "dialogové okno Vystavení příspěvku. Vyplňte předmět a " "ve spodní části zadejte tělo zprávy. Po dokončení zvolte " "Soubor Odeslat příspěvek a příspěvek se odešle na diskuzní server a z něj " "do celé sítě Usenet." #. (itstool) path: sect2/para #: C/index.docbook:424 msgid "" "Refer to and for more detailed information:" msgstr "" "Více podrobných informací najdete v " "a ." #. (itstool) path: sect2/title #: C/index.docbook:429 msgid "Replying to Articles" msgstr "Odpovídání na příspěvky" #. (itstool) path: sect2/para #: C/index.docbook:430 msgid "" "If you want to post a reply to a specific article and have your followup " "appear in that article's thread, highlight that article in the Header Pane " "with the middle mouse button and use Post " "Followup to Newsgroup . The " "highlighted article's text will appear as quoted text (each line is preceded " "by a \">\") in the editor window. Type in your response and then choose " " File Send Article " " to send the article to the news server." msgstr "" "Když chcete odpovědět na příspěvek a chcete, aby se vaše odpověď objevila " "jako další příspěvek ve vlákně, vyberte příspěvek prostředním tlačítkem myši " "v panelu se záhlavími a použijte Vystavit " "Odpovědět v diskuzní skupině. Text " "vybraného příspěvku se objeví jako citovaný (jednotlivým řádkům předchází " "znak „>“) v okně editoru. Napište svoji odpověď a zvolte " "Soubor Odeslat příspěvek, aby se příspěvek odeslal na diskuzní server." #. (itstool) path: sect2/para #: C/index.docbook:443 msgid "" "If you want to send a reply to a specific article via email, highlight that " "article in the Header Pane with the middle mouse button and choose " " Post Reply to Author in Mail . The highlighted article's text will appear as " "quoted text (each line is preceded by a \">\") in the editor window. Type " "in your response and then choose File " "Send Article and the text will be " "sent to the default external email application. Double-check the To: field " "and then send the email as you normally would with that application." msgstr "" "Když chcete odeslat odpověď na některý z příspěvků e-mailem, vyberte pomocí " "prostředního tlačítka myši dotyčný příspěvek v panelu se záhlavími a zvolte " "Vystavit Odpovědět autorovi e-" "mailem. Text vybraného příspěvku se objeví jako " "citovaný text (jednotlivým řádkům předchází „>“) v okně editoru. Napište " "svoji odpověď a zvolte Soubor " "Odeslat příspěvek a text se odešle " "do externí e-mailové aplikace. Pořádně si zkontrolujte pole „Komu:“ a zprávu " "odešlete, jak jste ve své poštovní aplikaci normálně zvyklí." #. (itstool) path: sect2/title #: C/index.docbook:460 msgid "Downloading Binaries" msgstr "Stahování binárních dat" #. (itstool) path: sect2/para #: C/index.docbook:461 msgid "" "A binary file in Usenet is usually composed of many smaller articles. " "Pan automatically organizes all these articles " "under one special article header. If all the data that comprises the binary " "header made it through the Usenet network successfully, a green, full puzzle-" "piece is displayed in the first column. To save the data, select the special " "header in the header window and use Articles " "Save Articles to download and save " "the binary data to disk." msgstr "" "Binární soubory jsou v síti Usenet obvykle poskládané z více drobných " "příspěvků. Pan automaticky pospojuje všechny tyto " "příspěvky do jednoho speciálního záhlaví příspěvku. Pokud všechny příspěvky, " "které jej tvoří, sítí Usenet úspěšně doputovaly, zobrazí se v prvním sloupci " "ikona v podobě celého zeleného dílku puzzle. Když chcete data uložit, " "vyberte zmíněné speciální záhlaví v panelu záhlaví a použijte " "Příspěvky Uložit příspěvky ke stažení a uložení binárních dat na disk." #. (itstool) path: sect2/para #: C/index.docbook:471 msgid "" "If the binary posts are corrupted by missing or incorrect data, a red, " "incomplete puzzle-piece is displayed in the first column. The file may be " "saved, but it will probably be corrupt in some way." msgstr "" "Pokud je binární příspěvek narušený vlivem chybějících nebo nesprávných dat, " "zobrazí se v prvním sloupci červený neúplný dílek puzzle. Soubor sice půjde " "uložit, ale nejspíše bude poškozený." #. (itstool) path: note/para #: C/index.docbook:473 msgid "" "Supporting binary newsgroups takes a large amount of bandwidth. Unless you " "are using a premium news server provider, it is not unusual for many binary " "files to be missing or corrupt." msgstr "" "Podpora binárních diskuzních skupin vyžaduje větší šířku pásmo pro přenos " "dat. Pokud nepoužíváte poskytovatele prémiového diskuzního serveru, není " "neobvyklé, že mnoho binárních souborů chybí nebo je poškozených." #. (itstool) path: sect1/title #: C/index.docbook:480 msgid "Groups" msgstr "Skupiny" #. (itstool) path: sect1/para #: C/index.docbook:481 msgid "Working with groups in Pan." msgstr "Práce se skupinami v aplikaci Pan." #. (itstool) path: sect2/title #: C/index.docbook:486 msgid "Group Views" msgstr "Zobrazení skupin" #. (itstool) path: sect2/para #: C/index.docbook:488 msgid "" "The total number of groups on a news server can be quite extensive. An easy " "way to find a specific group is to use the Group text " "box in the toolbar. Only groups that match the characters typed in the box " "will be displayed in the Group Pane. If you wish to return the Group Pane to " "its original state, simply delete the characters in the box by clicking the " "X icon to the right of the box." msgstr "" "Celkový počet skupin na diskuzním serveru může dosahovat velkého množství. " "Nejjednodušším způsobem, jak najít konkrétní skupinu, je použít textové pole " "Skupina na nástrojové liště. V panelu skupin se pak " "zobrazí jen ty skupiny, které vyhovují zadanému textu v tomto poli. Když " "chcete vrátit panel skupin do původního stavu, stačí smazat filtrující text " "pomocí ikony na pravém konci pole." #. (itstool) path: sect2/para #: C/index.docbook:493 msgid "" "The group names presented in the Group Pane can be shortened by choosing " " View Group Pane " "Abbreviate Names in Group Pane . " "This only alters the way the names are presented in this pane." msgstr "" "Názvy skupin předkládané v panelu skupin se dají zkracovat pomocí " "Zobrazit Panel skupin Zkracovat názvy diskuzních skupin. Mění se tím jen způsob zobrazení v tomto panelu." #. (itstool) path: sect2/title #: C/index.docbook:504 msgid "Group Actions" msgstr "Činnosti se skupinami" #. (itstool) path: sect2/para #: C/index.docbook:506 msgid "While a news group is selected, you can perform the following actions:" msgstr "" "Když je vybraná diskuzní skupina, můžete provádět následující činnosti:" #. (itstool) path: varlistentry/term #: C/index.docbook:510 msgid "" " Groups Mark Group Read " msgstr "" "Skupiny Označit vybrané skupiny " "jako přečtené" #. (itstool) path: listitem/para #: C/index.docbook:517 msgid "Mark all articles in a group read." msgstr "Označit všechny příspěvky ve skupině jako přečtené." #. (itstool) path: listitem/para #: C/index.docbook:518 msgid "" "A typical way to read news is to read all the interesting threads and when " "done mark the group read. The next time you start the news reader, choose " " Groups Get New Headers in " "Selected Group . With View Header Pane Match only Unread " "Articles , the only headers you will see will be " "the new headers you just downloaded." msgstr "" "Typickým způsobem, jak si přečíst diskuzi, je přečíst si všechna vlákna, " "které vás zajímají, a pak označit skupinu za přečtenou. Při příštím spuštění " "čtečky zvolte Skupiny Stáhnout " "nová záhlaví ve vybraných skupinách. Spolu se " "zapnutou volbou Zobrazit Panel " "záhlaví Vyhovují pouze nepřečtené příspěvky uvidíte jen nová záhlaví, která se právě stáhla." #. (itstool) path: varlistentry/term #: C/index.docbook:534 msgid "" " Groups Get New Headers in " "Subscribed Groups " msgstr "" "Skupiny Stáhnout nová záhlaví v " "odebíraných skupinách" #. (itstool) path: listitem/para #: C/index.docbook:541 msgid "Grab new headers for all the groups in the Subscribed Groups section." msgstr "Stáhnout nová záhlaví pro všechny skupiny v části Odebírané skupiny." #. (itstool) path: varlistentry/term #: C/index.docbook:545 msgid "" " Groups Edit Group Preferences " msgstr "" "Skupiny Upravit nastavení vybrané " "skupiny" #. (itstool) path: listitem/para #: C/index.docbook:555 msgid "Character encoding" msgstr "Kódování znaků" #. (itstool) path: listitem/para #: C/index.docbook:556 msgid "Location in the file hierarchy where attachments are saved" msgstr "Umístění v hierarchii souborů, kam se ukládají přílohy" #. (itstool) path: listitem/para #: C/index.docbook:558 msgid "The posting profile." msgstr "Profil" #. (itstool) path: listitem/para #: C/index.docbook:552 msgid "" "Opens the Group Preferences dialog. Within this dialog you can customize " "certain Pan features per group: <_:itemizedlist-1/" ">" msgstr "" "Otevře dialogové okno předvoleb skupiny. V něm si můžete přizpůsobit některé " "vlastnosti aplikace Pan lišící se skupinu od " "skupiny: <_:itemizedlist-1/>" #. (itstool) path: varlistentry/term #: C/index.docbook:564 msgid "" " Groups Subscribe " msgstr "" "Skupiny Odebírat" #. (itstool) path: listitem/para #: C/index.docbook:571 msgid "" "Add a favorite group to the Subscribed Groups section of the Group Pane. " "Unsubscribe is the opposite of this command." msgstr "" "Přidat oblíbenou skupinu do části Odebírané skupiny v " "panelu skupin. Zrušit odebírání je přesně opačný příkaz." #. (itstool) path: varlistentry/term #: C/index.docbook:576 msgid "" " Groups Refresh Group List " msgstr "" "Skupiny Obnovit seznam skupin" #. (itstool) path: listitem/para #: C/index.docbook:583 msgid "" "Resync the local group list that Pan uses with " "the current listing on the news server." msgstr "" "Znovu synchronizovat místní seznam skupin, který Pan používá k aktuálním výpisům z diskuzního serveru." #. (itstool) path: varlistentry/term #: C/index.docbook:588 msgid "" " Groups Delete Group's Articles " msgstr "" "Skupiny Smazat příspěvky z " "vybraných skupin" #. (itstool) path: listitem/para #: C/index.docbook:595 msgid "Delete all the articles for the selected group from the article index." msgstr "Smazat ze seznamu příspěvků všechny příspěvky pro vybranou skupinu." #. (itstool) path: sect2/title #: C/index.docbook:602 msgid "The Newsrc File" msgstr "Soubor newsrc" #. (itstool) path: sect2/para #: C/index.docbook:603 msgid "" "The group list, subscribe/unsubscribe status of each group and the articles " "marked read in each group are stored in the newsrc file at $HOME/." "pan2/newsrc-1." msgstr "" "Seznam skupin, stav odebírání pro jednotlivé skupiny a příspěvky označené " "jako přečtené v jednotlivých skupinách se uchovávají v souboru newsrc v " "$HOME/.pan2/newsrc-1.." #. (itstool) path: sect2/para #: C/index.docbook:605 msgid "" "The newsrc file format is standard among many Unix newsreaders and can be " "used to import and export this information between these applications." msgstr "" "Formát souboru newsrc je standardní jako u většiny čteček příspěvků pro Unix " "a dá se tak použít k importu/exportu informací napříč mezi těmito aplikacemi." #. (itstool) path: sect1/title #: C/index.docbook:612 msgid "Headers" msgstr "Záhlaví" #. (itstool) path: sect1/para #: C/index.docbook:613 msgid "" "Users will spend most of their time in Pan " "interacting with the article headers in the Header Pane. Pan has many features to optimize header viewing and article " "retrieval." msgstr "" "Uživatelé tráví většinu svého času v aplikaci Pan " "interakcí se záhlavími příspěvků v panelu záhlaví. Pan má řadu funkcí, které vylepšují zobrazení záhlaví a získávání " "příspěvků." #. (itstool) path: sect2/title #: C/index.docbook:618 msgid "Header View" msgstr "Zobrazení záhlaví" #. (itstool) path: sect2/para #: C/index.docbook:620 msgid "" "Since the total number of all the available article headers in a group might " "be enormous, Pan has several options to limit the " "number of visible headers to a more manageable number." msgstr "" "Protože množství všech dostupných záhlaví zpráv ve skupině může být " "obrovské, má Pan několik možností, jak omezit " "počet viditelných záhlaví na použitelný počet." #. (itstool) path: sect2/para #: C/index.docbook:623 msgid "" "In the toolbar, the Subject or Author text box is a " "filter than can be used to limit the visible headers. Usually this is used " "to search for a specific article or a group of articles. Click on the " "magnifying glass icon to choose which header field to base the filter. Only " "the article headers that match the characters typed into the text box will " "be displayed. Click the X to erase and reset." msgstr "" "Na nástrojové liště je textové pole Předmět či autor " "fungující jako filtr, které můžete použít k omezení viditelných záhlaví. " "Obvykle se používá k vyhledání jednoho nebo více konkrétních příspěvků. " "Kliknutím na ikonu lupy si můžete vybrat, na základě kterých údajů záhlaví " "se má filtrovat. Zobrazí se jen záhlaví příspěvků, která odpovídají textu " "napsanému do filtrovacího pole. Kliknutím na se filtr " "zruší." #. (itstool) path: varlistentry/term #: C/index.docbook:630 msgid "" "Choose Edit Preferences Headers " msgstr "" "Zvolte Upravit Upravit předvolby Záhlaví" #. (itstool) path: listitem/para #: C/index.docbook:638 msgid "To hide or change the display order of the Header Pane columns." msgstr "" "Slouží ke skrytí nebo změně pořadí v zobrazení sloupců v panelu se záhlavími." #. (itstool) path: varlistentry/term #: C/index.docbook:642 msgid "" "Choose View Header Pane Thread Headers " msgstr "" "Zvolte Zobrazit Panel záhlaví Třídit záhlaví do vláken" #. (itstool) path: listitem/para #: C/index.docbook:650 msgid "To enable or disable header threading in the Header Pane." msgstr "" "Slouží k povolení nebo zakázání členění záhlaví do vláken v panelu s vlákny." #. (itstool) path: sect3/title #: C/index.docbook:658 msgid "Replies of Matched Articles" msgstr "Odpovědi na vyhovující příspěvky" #. (itstool) path: sect3/para #: C/index.docbook:660 msgid "" "The user can pick one of the next three options to control how " "Pan will display replies of matched articles." msgstr "" "Uživatel si může zvolit jednu z následujících tří voleb, aby určil, jak má " "Pan zobrazovat odpovědi na vyhovující příspěvky." #. (itstool) path: varlistentry/term #: C/index.docbook:664 C/index.docbook:701 msgid "" "In View Header Pane " "" msgstr "" "V Zobrazit Panel záhlaví" #. (itstool) path: listitem/para #: C/index.docbook:673 msgid "Show Matching Articles" msgstr "Zobrazovat vyhovující výsledky" #. (itstool) path: listitem/para #: C/index.docbook:674 msgid "Show only articles that match the article view options.." msgstr "Zobrazit jen příspěvky, které vyhovují volbám pro zobrazení příspěvků…" #. (itstool) path: listitem/para #: C/index.docbook:677 msgid "Show Matching Articles' Threads" msgstr "Zobrazovat vlákna vyhovujících příspěvků" #. (itstool) path: listitem/para #: C/index.docbook:678 msgid "" "Not only show articles that match the article view options, but also show " "all the articles in the entire thread of the matched article. This option " "will force read headers to be visible regardless of the view options." msgstr "" "Zobrazit nejen příspěvky, které vyhovují volbám pro zobrazení příspěvků, ale " "také všechny příspěvky, které jsou ve stejném vlákně, jako vyhovující " "příspěvky. Tato volba vynutí viditelnost čtených záhlaví, bez ohledu na " "volby zobrazení." #. (itstool) path: listitem/para #: C/index.docbook:683 msgid "Show Matching Articles Subthreads" msgstr "" "Zobrazovat podřazená vlákna vyhovujících příspěvků" #. (itstool) path: listitem/para #: C/index.docbook:684 msgid "" "Not only show articles that match the article view options, but also show " "articles that are replies of any matched article." msgstr "" "Zobrazit nejen příspěvky, které vyhovují volbám pro zobrazení příspěvků, ale " "také všechny příspěvky, které jsou odpověďmi na vyhovující příspěvky." #. (itstool) path: sect3/title #: C/index.docbook:696 msgid "Article View Matches" msgstr "Příspěvky vyhovující zobrazení" #. (itstool) path: sect3/para #: C/index.docbook:698 msgid "" "These options control which article headers are displayed in the Header Pane." msgstr "" "Tyto volby řídí, záhlaví kterých článků se mají zobrazovat v panelu záhlaví." #. (itstool) path: listitem/para #: C/index.docbook:710 msgid "Match Only Unread Articles" msgstr "Vyhovují pouze nepřečtené příspěvky" #. (itstool) path: listitem/para #: C/index.docbook:711 msgid "Only display articles that haven't been marked read." msgstr "Zobrazí se jen příspěvky, které nejsou označené jako přečtené." #. (itstool) path: listitem/para #: C/index.docbook:714 msgid "Match Only Cached Articles" msgstr "Vyhovují pouze příspěvky v mezipaměti" #. (itstool) path: listitem/para #: C/index.docbook:715 msgid "" "Only display articles that are available in the local article cache in the " "computer's hard drive." msgstr "" "Zobrazí se jen příspěvky, které jsou dostupné v místní mezipaměti příspěvků " "na pevném disku." #. (itstool) path: listitem/para #: C/index.docbook:719 msgid "Match Only Complete Articles" msgstr "Vyhovují pouze kompletní příspěvky" #. (itstool) path: listitem/para #: C/index.docbook:720 msgid "" "Only binary articles that are complete (full, green puzzle piece in the " "state column) will be displayed. This also hides text articles." msgstr "" "Budou zobrazeny jen binární příspěvky, které jsou úplné (ikona úplného " "zeleného dílku puzzle ve sloupci se stavem). Navíc skryje textové příspěvky." #. (itstool) path: listitem/para #: C/index.docbook:724 msgid "Match Only My Articles" msgstr "Vyhovují pouze mé příspěvky" #. (itstool) path: listitem/para #: C/index.docbook:725 msgid "Only articles that the user has posted will be displayed." msgstr "Zobrazí se jen příspěvky, které vystavil uživatel." #. (itstool) path: listitem/para #: C/index.docbook:728 msgid "Match Scores of xxxx" msgstr "Vyhovují příspěvky s hodnocením xxxx" #. (itstool) path: listitem/para #: C/index.docbook:729 msgid "" "These options deal with scoring where you choose to display an article based " "on its score. Refer to for more information." msgstr "" "Tyto volby pracují s hodnocením způsobem, kdy si volíte zobrazení příspěvků " "na základě jejich hodnocení. Více informací viz ." #. (itstool) path: sect2/title #: C/index.docbook:740 msgid "Header Movement" msgstr "Pohyb v záhlavích" #. (itstool) path: sect2/para #: C/index.docbook:741 msgid "" "Movement around the Header Pane can be controlled by several methods, " "allowing the user to easily jump around complicated discussion threads with " "minimal input. Pan was designed for mouse-less " "article viewing, so most people use the keyboard shortcuts associated with " "these menu actions. The keyboard shortcut for most menu actions is displayed " "after the menu command." msgstr "" "Pohyb v panelu se záhlavími se dá provádět několika způsoby a uživateli tak " "poskytuje jednoduché přecházení i v komplikovaných diskuzních vláknech s " "minimálním úsilím. Pan je navržený pro čtení " "příspěvků bez potřeby myši, takže většina lidí používá klávesové zkratky " "přidružené činnostem uvedeným v nabídkách. Klávesové zkratky jsou uvedené za " "jednotlivými příkazy v nabídkách." #. (itstool) path: varlistentry/term #: C/index.docbook:747 msgid "" " Go Read More " msgstr "" "Přejít Pokračovat ve čtení" #. (itstool) path: listitem/para #: C/index.docbook:754 msgid "" "Scroll the article in the Article Pane. If the article is already scrolled " "to the bottom, grab the next article. You can customize the function of this " "key by changing Preferences " "Articles Space selects next article " "rather than next unread ." msgstr "" "Posune obsah příspěvku v panelu s tělem příspěvku. Pokud je příspěvek na " "konci, stáhne se následující příspěvek. Funkčnost si můžete přizpůsobit " "změnou nastavení Upravit Upravit " "předvolby Chování " "Mezerníkem vybírat další a nikoliv další nepřečtený příspěvek." #. (itstool) path: varlistentry/term #: C/index.docbook:765 msgid "" " Go Read Back " msgstr "" "Přejít Vrátit se ve čtení" #. (itstool) path: listitem/para #: C/index.docbook:772 msgid "" "Scroll the article up in the Article Pane. If it's already scrolled to the " "top, grab the previous article displayed in the Thread Pane." msgstr "" "Posunout se v příspěvku v panelu s příspěvky nahoru. Pokud jste již úplně " "nahoře, stáhnout předchozí příspěvek zobrazený v panelu se záhlavími." #. (itstool) path: varlistentry/term #: C/index.docbook:777 msgid "" " Go Next Unread Group " msgstr "" "Přejít Následující nepřečtená " "skupina" #. (itstool) path: listitem/para #: C/index.docbook:784 msgid "" "Skip down to the next subscribed group in the Group Pane with unread " "articles and read the first article." msgstr "" "Přejít dolů na následující odebíranou skupinu s nepřečtenými příspěvky v " "panelu skupin a číst si první příspěvek." #. (itstool) path: varlistentry/term #: C/index.docbook:789 msgid "" " Go Next Group " msgstr "" "Přejít Následující skupina" #. (itstool) path: listitem/para #: C/index.docbook:796 msgid "" "Skip down to the next subscribed group in the Group Pane and read the first " "article." msgstr "" "Přejít dolů na následující odebíranou skupinu v panelu skupin a číst si " "první příspěvek." #. (itstool) path: varlistentry/term #: C/index.docbook:800 msgid "" " Go Next Unread Article " msgstr "" "Přejít Následující nepřečtený " "příspěvek" #. (itstool) path: listitem/para #: C/index.docbook:807 msgid "Read the next unread article in the Thread Pane." msgstr "Číst si následující nepřečtený příspěvek v panelu s vlákny." #. (itstool) path: varlistentry/term #: C/index.docbook:811 msgid "" " Go Next Article " msgstr "" "Přejít Následující příspěvek" #. (itstool) path: listitem/para #: C/index.docbook:818 msgid "Read the next article, regardless of its read/unread state." msgstr "" "Číst si následující příspěvek, bez ohledu na to, jestli je, či není přečtený." #. (itstool) path: varlistentry/term #: C/index.docbook:822 msgid "" " Go Next Watched Article " msgstr "" "Přejít Následující sledovaný " "příspěvek" #. (itstool) path: listitem/para #: C/index.docbook:829 msgid "" "Read the next watched article. A watched article is an article with a score " "of at least 9999. Refer to for more " "information." msgstr "" "Číst si následující sledovaný příspěvek. Sledovaný příspěvek je příspěvek s " "hodnocením nejméně 9999. Více informací viz ." #. (itstool) path: varlistentry/term #: C/index.docbook:834 msgid "" " Go Previous Article " "" msgstr "" "Přejít Předcházející příspěvek" #. (itstool) path: listitem/para #: C/index.docbook:841 msgid "" "Read the previous article in the Thread Pane. This doesn't scroll the " "Article Pane like Go Read Back ." msgstr "" "Číst si předchozí příspěvek v panelu vláken. Neposouvá se ale v panelu s " "články, jako u příkazu Přejít " "Vrátit se ve čtení. " #. (itstool) path: varlistentry/term #: C/index.docbook:850 msgid "" " Go Parent Article " msgstr "" "Přejít Nadřazený příspěvek" #. (itstool) path: listitem/para #: C/index.docbook:857 msgid "Read the article for which the currently selected article is a reply." msgstr "Číst si příspěvek, na který je právě vybraný příspěvek odpovědí." #. (itstool) path: varlistentry/term #: C/index.docbook:861 msgid "" " Go Next Unread Thread " msgstr "" "Přejít Následující nepřečtené " "vlákno" #. (itstool) path: listitem/para #: C/index.docbook:868 msgid "Skip to the next unread thread and read the first article." msgstr "Přejít na následující nepřečtené vlákno a číst v něm první příspěvek." #. (itstool) path: varlistentry/term #: C/index.docbook:872 msgid "" " Go Next Thread " msgstr "" "Přejít Následující vlákno" #. (itstool) path: listitem/para #: C/index.docbook:879 msgid "Skip to the next thread and read the first article in that thread." msgstr "Přejít na následující vlákno a číst si v něm první příspěvek." #. (itstool) path: varlistentry/term #: C/index.docbook:883 msgid "" " Go Previous Thread " "" msgstr "" "Přejít Předcházející vlákno" #. (itstool) path: listitem/para #: C/index.docbook:890 msgid "Skip back to the last thread and read the last article in that thread." msgstr "Vrátit se zpět na poslední vlákno a číst si v něm poslední příspěvek." #. (itstool) path: sect2/title #: C/index.docbook:898 msgid "Header Selection" msgstr "Výběr záhlaví" #. (itstool) path: sect2/para #: C/index.docbook:900 msgid "" "In order to perform an action on an article header, you must select it " "first. Use the middle mouse button to select an article. Drag the selection " "field with the mouse to select multiple articles. Hold down the " "Ctrl key while clicking articles with the middle mouse " "button to add individual articles to the selection." msgstr "" "Abyste mohli provádět činnosti se záhlavími příspěvků, musíte nejprve nějaké " "záhlaví vybrat. K výběru použijte prostřední tlačítko myši. Když chcete " "vybrat více příspěvků, tak tlačítko držte a myší táhněte přes příspěvky. " "Když chcete do výběru přidávat jednotlivé příspěvky, držte při klikání " "prostředním tlačítkem myši na příspěvky současně zmáčknutou klávesu " "Ctrl." #. (itstool) path: sect2/para #: C/index.docbook:904 msgid "" "Pan also offers a number of other ways to " "efficiently select articles." msgstr "" "Pan nabízí i řadu dalších způsobů, jak se " "efektivně vybírat příspěvky." #. (itstool) path: varlistentry/term #: C/index.docbook:908 msgid "" " Edit Select All Articles " msgstr "" "Upravit Vybrat všechny příspěvky" #. (itstool) path: listitem/para #: C/index.docbook:915 msgid "Select all articles in the Header Pane." msgstr "Vybrat všechny příspěvky v panelu se záhlavími." #. (itstool) path: varlistentry/term #: C/index.docbook:919 msgid "" " Edit Add Subthreads to " "Selection " msgstr "" "Upravit Přidat do výběru " "podřazená vlákna" #. (itstool) path: listitem/para #: C/index.docbook:926 msgid "" "Add all articles that are a reply to the selected article to the selection." msgstr "" "Přidat do výběru všechny příspěvky, které jsou odpovědí na vybraný příspěvek." #. (itstool) path: varlistentry/term #: C/index.docbook:930 msgid "" " Edit Add Threads to Selection " msgstr "" " Upravit Přidat do výběru vlákna " #. (itstool) path: listitem/para #: C/index.docbook:937 msgid "Add the entire thread of the selected article to the selection." msgstr "Přidat do výběru celé vlákno, do kterého patří vybraný příspěvek." #. (itstool) path: varlistentry/term #: C/index.docbook:941 msgid "" " Edit Add Similar Articles to " "Selection " msgstr "" "Upravit Přidat do výběru podobné " "příspěvky" #. (itstool) path: listitem/para #: C/index.docbook:948 msgid "" "With one article selected, add others articles with the same author and from " "the current thread to the selection." msgstr "" "Když je nějaký příspěvek vybraný, přidat ostatní příspěvky od stejného " "autory ve stejném vlákně, jako je vybraný příspěvek." #. (itstool) path: varlistentry/term #: C/index.docbook:953 msgid "" " Edit Deselect All Articles " msgstr "" "Upravit Zrušit výběr všech " "příspěvků" #. (itstool) path: listitem/para #: C/index.docbook:960 msgid "Cancel the current selection." msgstr "Zrušit aktuální výběr, aby nebylo vybráno nic." #. (itstool) path: varlistentry/term #: C/index.docbook:964 msgid "" " Edit Select Article Body " msgstr "" "Upravit Vybrat tělo příspěvku" #. (itstool) path: listitem/para #: C/index.docbook:971 msgid "Select the entire article body. You must retrieve the article first." msgstr "Vybrat celé tělo příspěvku. Nejdříve ale musíte mít příspěvek stažený." #. (itstool) path: sect2/title #: C/index.docbook:979 msgid "Header Action" msgstr "Činnosti se záhlavími" #. (itstool) path: sect2/para #: C/index.docbook:980 msgid "" "Whenever Pan downloads an article body, the data " "is saved to disk in the article cache. The article cache is a fixed-size " "buffer and when the cache has been filled, the older articles are erased to " "make room for newer ones." msgstr "" "Kdykoliv Pan stahuje tělo příspěvku, ukládá si " "data na disk do mezipaměti příspěvků. Jedná se vyrovnávací paměť pevné " "velikosti a když je zaplněná, jsou starší příspěvky zahozeny, aby se " "uvolnilo místo pro novější." #. (itstool) path: sect2/para #: C/index.docbook:984 msgid "" "These are the actions you can perform on an article selected in the Header " "Pane." msgstr "" "Zde jsou činnosti, které můžete provádět s příspěvky vybranými v panelu " "záhlaví." #. (itstool) path: varlistentry/term #: C/index.docbook:987 msgid "" " Articles Save Article " msgstr "" "Příspěvky Uložit příspěvky " #. (itstool) path: listitem/para #: C/index.docbook:994 msgid "" "Save the highlighted article to disk. When you select this option, the Save " "Articles dialog will open. From here, you can choose to:" msgstr "" "Uložit vybraný příspěvek na disk. Když vyberete tento příkaz, otevře se " "dialogové okno pro ukládání příspěvků. V něm můžete navolit:" #. (itstool) path: listitem/para #: C/index.docbook:997 msgid "Save Text" msgstr "Uložit text" #. (itstool) path: listitem/para #: C/index.docbook:998 msgid "Save the text of the displayed article." msgstr "Uložit text zobrazeného příspěvku." #. (itstool) path: listitem/para #: C/index.docbook:1000 msgid "Save Attachments" msgstr "Uložit přílohy" #. (itstool) path: listitem/para #: C/index.docbook:1001 msgid "Save the binary attachments of the selected article to disk." msgstr "Uložit binární přílohu vybraného příspěvku na disk." #. (itstool) path: listitem/para #: C/index.docbook:1003 msgid "Path" msgstr "Cesta" #. (itstool) path: listitem/para #: C/index.docbook:1004 msgid "Where in the file hierarchy to save the binary attachment or text." msgstr "Kam v hierarchii souborů uložit binární přílohu nebo text." #. (itstool) path: listitem/para #: C/index.docbook:1006 msgid "Priority" msgstr "Priorita" #. (itstool) path: listitem/para #: C/index.docbook:1007 msgid "Where to add the file in the Task Manager queue." msgstr "Na kterou pozici ve frontě úloh soubor přidat." #. (itstool) path: varlistentry/term #: C/index.docbook:1013 msgid "" " Articles Read Article " msgstr "" " Příspěvky Přečíst příspěvek " #. (itstool) path: listitem/para #: C/index.docbook:1020 msgid "" "Download the body of the selected article in the Header Pane and display it " "in the Article Pane." msgstr "" "Stáhnout tělo příspěvku vybraného v panelu se záhlavími a zobrazit jej v " "panelu příspěvku." #. (itstool) path: varlistentry/term #: C/index.docbook:1025 msgid "" " Articles Cache Article " msgstr "" "Příspěvky Uložit příspěvek do " "mezipaměti" #. (itstool) path: listitem/para #: C/index.docbook:1032 msgid "" "Download the body of the selected article in the Header Pane but do NOT " "display it in the Article Pane." msgstr "" "Stáhnout tělo příspěvku vybraného v panelu se záhlavími, ale NEZOBRAZÍT jej " "v panelu s příspěvky." #. (itstool) path: varlistentry/term #: C/index.docbook:1037 msgid "" " Articles Mark Article as Read " msgstr "" "Příspěvky Označit příspěvek jako " "přečtený" #. (itstool) path: listitem/para #: C/index.docbook:1044 msgid "Change the state of the article to read." msgstr "Změnit stav příspěvku na „přečtený“." #. (itstool) path: varlistentry/term #: C/index.docbook:1048 msgid "" " Articles Mark Article as Unread " msgstr "" "Příspěvky Označit příspěvek jako " "nepřečtený" #. (itstool) path: listitem/para #: C/index.docbook:1055 msgid "Change the state of the article to unread." msgstr "Změnit stav příspěvku na „nepřečtený“." #. (itstool) path: varlistentry/term #: C/index.docbook:1059 msgid "" " Articles Delete Article " msgstr "" "Příspěvky Smazat příspěvek" #. (itstool) path: listitem/para #: C/index.docbook:1066 msgid "" "Delete the selected article in the current group from the article index." msgstr "Smazat vybraný příspěvek v aktuální skupině ze seznamu příspěvků." #. (itstool) path: sect1/title #: C/index.docbook:1074 msgid "Body" msgstr "Tělo" #. (itstool) path: sect1/para #: C/index.docbook:1075 msgid "The Body Pane displays the text of a selected article header." msgstr "Panel těla zobrazuje text příspěvku vybraného v panelu se záhlavími." #. (itstool) path: sect2/title #: C/index.docbook:1078 msgid "Digital Images" msgstr "Digitální obrázky" #. (itstool) path: sect2/para #: C/index.docbook:1079 msgid "" "Some groups specialize in digital images where each binary post is a " "separate image. Pan can automatically decode and " "display these images. To display the image, select and view the article " "header as you normally would for text and the image will be displayed in the " "Body Pane." msgstr "" "Některé skupiny se specializují na digitální obrázky, kdy každý binární " "příspěvek je samostatný obrázek. Pan umí tyto " "obrázky automaticky dekódovat a zobrazit. Kdy si chcete obrázek zobrazit, " "vyberte a zobrazte si záhlaví článku jako obvykle pro text a obrázek se vám " "ukáže v panelu těla příspěvku." #. (itstool) path: sect2/title #: C/index.docbook:1086 msgid "Body Views" msgstr "Zobrazení těla" #. (itstool) path: sect2/para #: C/index.docbook:1087 msgid "" "The way information is presented in the Body Pane can be customized in " "several ways." msgstr "" "Způsob, jaký se informace prezentují v panelu těla, se dá různě přizpůsobit." #. (itstool) path: varlistentry/term #: C/index.docbook:1090 msgid "" "In View Body Pane " msgstr "" "V Zobrazit Panel těla příspěvku" #. (itstool) path: listitem/para #: C/index.docbook:1099 msgid "Wrap Article Body" msgstr "Zalamovat tělo příspěvku" #. (itstool) path: listitem/para #: C/index.docbook:1100 msgid "" "Will force the text to flow into paragraphs instead of running off the edge " "of the text window. This is useful to fix badly formatted articles." msgstr "" "Přinutit text zformátovat se do odstavců, místo aby utíkal za hranici " "textové oblasti. To se hodí pro opravu špatně zformátovaných příspěvků." #. (itstool) path: listitem/para #: C/index.docbook:1104 msgid "Show All Headers in Body Pane" msgstr "" "Zobrazovat v panelu těla příspěvku všechna záhlaví" #. (itstool) path: listitem/para #: C/index.docbook:1105 msgid "" "The headers displayed in the Header Pane are only a small subset of the all " "the article headers. This commands will display the complete list of article " "headers in the Body Pane before the article text." msgstr "" "Záhlaví zobrazená v panelu záhlaví jsou jen malou podmnožinou všech záhlaví " "příspěvků. Tyto příkazy zobrazují úplný seznam všech záhlaví příspěvků v " "panelu s tělem příspěvku před vlastním textem příspěvku." #. (itstool) path: listitem/para #: C/index.docbook:1110 msgid "Rot 13 Selected Text" msgstr "Šifrovat vybraný text pomocí ROT13" #. (itstool) path: listitem/para #: C/index.docbook:1111 msgid "" "A simple cipher used to hide story spoilers, joke punchlines, etc. Select a " "block of encrypted text and use this option to decode it to clear text." msgstr "" "ROT13 je jednoduchá šifra pro skrytí rozuzlení příběhu, pointy vtipu apod. " "Vyberte zašifrovaný blok a použijte tento příkaz k jeho dekódování do " "normálního textu." #. (itstool) path: listitem/para #: C/index.docbook:1115 msgid "Use Monospace Font" msgstr "Používat neproporcionální písmo" #. (itstool) path: listitem/para #: C/index.docbook:1116 msgid "" "Sometimes Usenet authors will create simple ASCII artwork or diagrams. By " "default, Pan uses proportional fonts for all text " "which renders ASCII artwork unreadable. By choosing this option, the text of " "the Body Pane will be displayed using the Monospace Font." msgstr "" "Občas autoři příspěvků vytvoří jednoduché schéma nebo grafiku ze znaků ASCII " "(tzv. ASCII art). Standardně používá Pan pro " "všechen text proporcionální font, což takováto díla rozbije. Pomocí této " "volby si můžete nechat text v panelu příspěvku zobrazit neproporcionálním " "fontem." #. (itstool) path: listitem/para #: C/index.docbook:1120 msgid "" "You can configure the monospace font in Edit " "Preferences Font ." msgstr "" "Neproporcionální písmo si můžete nastavit v Upravit Upravit předvolby Písmo." #. (itstool) path: listitem/para #: C/index.docbook:1129 msgid "Show Smilies as Graphics" msgstr "Zobrazovat emotikony jako grafiku" #. (itstool) path: listitem/para #: C/index.docbook:1130 msgid "Change ASCII emoticons like :) into graphical versions." msgstr "Měnit emotikony tvořené znaky ASCII, jako je :-), na grafické obrázky." #. (itstool) path: listitem/para #: C/index.docbook:1133 msgid "Show *Bold*, _Underlined_ and /Italiced/" msgstr "Zobrazovat *tučný*, _podtržený text_ a /kurzívu/" #. (itstool) path: listitem/para #: C/index.docbook:1134 msgid "" "Over the years, Usenet authors have devised several strategies to overcome " "the limited typographic ability of ASCII. Enabling this option will format " "the article text following these typographic hints." msgstr "" "V průběhu let autoři sítě Usenet vymysleli několik strategií, jak překonat " "typografická omezení ASCII. Zapnutím této volby se bude text příspěvků " "formátovat následujícími typografickými značkami." #. (itstool) path: listitem/para #: C/index.docbook:1139 msgid "Size Pictures to Fit" msgstr "Zobrazovat obrázky tak, aby se vešly do okna" #. (itstool) path: listitem/para #: C/index.docbook:1140 msgid "" "Size digital images so they will display in the Body Pane without scrolling. " "Click on the image to view it in its original size." msgstr "" "Uzpůsobovat velikost digitálních obrázků tak, aby se zobrazily v panelu s " "tělem zprávy bez potřeby posouvání. Kliknutím na obrázek si jej můžete " "zobrazit v původní velikosti." #. (itstool) path: sect1/title #: C/index.docbook:1152 msgid "Posting" msgstr "Vystavování" #. (itstool) path: sect1/para #: C/index.docbook:1153 msgid "How to post articles in Pan." msgstr "Jak vystavit příspěvky pomocí aplikace Pan." #. (itstool) path: sect2/title #: C/index.docbook:1158 msgid "Actions" msgstr "Činnosti" #. (itstool) path: varlistentry/term #: C/index.docbook:1161 msgid "" " Post Post to Newsgroup " msgstr "" "Vystavit Vystavit v diskuzní " "skupině" #. (itstool) path: listitem/para #: C/index.docbook:1168 msgid "Post an article to the selected newsgroup." msgstr "Vystaví příspěvek do vybrané diskuzní skupiny." #. (itstool) path: varlistentry/term #: C/index.docbook:1172 msgid "" " Post Followup to Newsgroup " msgstr "" "Vystavit Odpovědět v diskuzní " "skupině" #. (itstool) path: listitem/para #: C/index.docbook:1179 msgid "Post a reply to the selected article and continue the thread." msgstr "Vystaví odpověď na vybraný příspěvek a pokračuje ve vlákně." #. (itstool) path: varlistentry/term #: C/index.docbook:1183 msgid "" " Post Reply to Author in Mail " msgstr "" "Vystavit Odpovědět autorovi e-" "mailem" #. (itstool) path: listitem/para #: C/index.docbook:1190 msgid "Post a reply to the selected article via email." msgstr "Pošle odpověď na vybraný příspěvek přes e-mail." #. (itstool) path: sect2/para #: C/index.docbook:1195 msgid "" "While highlighting in the Header Pane the article header of a post that you " "posted to the news server, you can perform these two actions:" msgstr "" "Když v panelu záhlaví vyberte záhlaví příspěvků, které jste na diskuzní " "server vystavili vy sami, můžete s nimi provádět tyto dvě věci:" #. (itstool) path: varlistentry/term #: C/index.docbook:1199 msgid "" " Post Supersede Article " msgstr "" "Vystavit Nahradit příspěvek" #. (itstool) path: listitem/para #: C/index.docbook:1206 msgid "" "This allows you to supersede an earlier article with another newer post." msgstr "Umožňuje vám nahradit dřívější příspěvky jinými novějšími." #. (itstool) path: varlistentry/term #: C/index.docbook:1210 msgid "" " Post Cancel Article " "" msgstr "" "Vystavit Zrušit příspěvek " #. (itstool) path: listitem/para #: C/index.docbook:1217 msgid "This allows you to cancel a earlier article." msgstr "Umožňuje vám zrušit dřívější příspěvky." #. (itstool) path: note/para #: C/index.docbook:1221 msgid "" "Most public news servers disable the supersede and cancel commands for " "security reasons. Make sure you are comfortable with your article before you " "post it to the news server, because in most cases it will be impossible to " "take back or alter what you have said." msgstr "" "Většina veřejných diskuzních serverů příkazy pro nahrazení a zrušení " "příspěvků z bezpečnostních důvodů blokuje. Než svůj příspěvek vystavíte, " "raději si zkontrolujte, že je v pořádku a že jej opravdu chcete zveřejnit, " "protože ve většině případů již neleze ani změnit, ani vzít zpět, co jste v " "něm řekli." #. (itstool) path: sect2/title #: C/index.docbook:1228 msgid "Posting Profiles Dialog" msgstr "Dialogové okno profilů pro vystavování" #. (itstool) path: sect2/para #: C/index.docbook:1229 msgid "" "Posting Profiles allow the user to configure different Usenet personas that " "may be customized for particular groups." msgstr "" "Profily pro vystavování umožňují uživateli nastavit různé personifikace sítě " "Usenet, které si můžete uzpůsobit pro konkrétní skupiny." #. (itstool) path: sect2/para #: C/index.docbook:1231 msgid "" "The Posting Profiles dialog displays a list of " "currently configured Posting Profiles. From here you can Remove or Edit a " "profile by clicking on the profile's name and press the appropriate button. " "Clicking add will start a new profile." msgstr "" "Dialogové okno Profily zobrazuje seznam aktuálně " "nastavených profilů. V něm můžete vybráním profilu a následným zmáčknutím " "tlačítka profil odstranit nebo upravit. Tlačítkem Přidat můžete vytvořit nový profil." #. (itstool) path: sect3/title #: C/index.docbook:1236 msgid "Mandatory Information" msgstr "Povinné údaje" #. (itstool) path: sect3/para #: C/index.docbook:1237 msgid "Each profile contains the following information:" msgstr "Každý profil obsahuje následující informace:" #. (itstool) path: listitem/para #: C/index.docbook:1240 msgid "Profile Name" msgstr "Název profilu" #. (itstool) path: listitem/para #: C/index.docbook:1241 msgid "The name of this profile." msgstr "Název dotyčného profilu." #. (itstool) path: listitem/para #: C/index.docbook:1244 msgid "Full Name" msgstr "Celé jméno" #. (itstool) path: listitem/para #: C/index.docbook:1245 msgid "The author name that will be used in the article's header." msgstr "Jméno autora, které bude použité v záhlaví příspěvku." #. (itstool) path: listitem/para #: C/index.docbook:1248 msgid "Email Address" msgstr "E-mailová adresa" #. (itstool) path: listitem/para #: C/index.docbook:1249 msgid "The email address that will be used in the article's header." msgstr "E-mailová adresa, která bude použitá v záhlaví příspěvku." #. (itstool) path: listitem/para #: C/index.docbook:1252 msgid "Post Articles via" msgstr "Odesílat příspěvky přes" #. (itstool) path: listitem/para #: C/index.docbook:1253 msgid "" "If multiple news servers are configured, choose which server will receive " "the article." msgstr "" "V případě, že je nastavených více diskuzních serverů, vybírá, který z nich " "bude přijímat příspěvky." #. (itstool) path: sect3/title #: C/index.docbook:1259 msgid "Signatures" msgstr "Podpisy" #. (itstool) path: sect3/para #: C/index.docbook:1260 msgid "" "A signature is a block of text that is appended to the end of every outgoing " "article. Generally it is contact information, a personal motto or a witty " "saying." msgstr "" "Podpis je kus textu, který se připojí na konec odchozího příspěvku. Běžně to " "bývají kontaktní informace, osobní moto nebo vtipný citát." #. (itstool) path: sect3/para #: C/index.docbook:1262 msgid "" "Click Use a Signature to activate signature support." msgstr "" "Podporu podepisování zapněte kliknutím na Používat podpis." #. (itstool) path: listitem/para #: C/index.docbook:1265 msgid "Text" msgstr "Text" #. (itstool) path: listitem/para #: C/index.docbook:1266 msgid "Type in the text you wish to use as a signature." msgstr "Zde napište text, který se přejete používat jako podpis." #. (itstool) path: listitem/para #: C/index.docbook:1269 msgid "Text File" msgstr "Textový soubor" #. (itstool) path: listitem/para #: C/index.docbook:1270 msgid "" "Enter the location of the file in the disk hierarchy. The Browse button can " "assist in this." msgstr "" "Zadejte, kde se na disku nachází soubor s podpisem. Můžete použít tlačítko " "procházet, které vám zjednoduší jeho vyhledání." #. (itstool) path: listitem/para #: C/index.docbook:1273 msgid "Command" msgstr "Příkaz" #. (itstool) path: listitem/para #: C/index.docbook:1274 msgid "" "Type in the command you wish to run and the output of that command will be " "captured and used as the signature text." msgstr "" "Zadejte příkaz, jehož výstup získaný jeho spuštěním si přejete odchytávat a " "používat jako text podpisu." #. (itstool) path: listitem/para #: C/index.docbook:1276 msgid "Example: fortune -s" msgstr "Příklad: fortune -s" #. (itstool) path: listitem/para #: C/index.docbook:1279 msgid "PGP Signature" msgstr "Podpis PGP" #. (itstool) path: listitem/para #: C/index.docbook:1280 msgid "" "Choose this if you want to sign or encrypt your message with PGP. The given " "email address has to match the PGP email address for this method to work." msgstr "" "Tuto možnost zvolte, když chcete zprávu podepisovat nebo šifrovat pomocí " "PGP. Aby to fungovalo, musí zadaná e-mailová adresa odpovídat e-mailové " "adrese v klíči PGP." #. (itstool) path: note/para #: C/index.docbook:1283 msgid "" "PGP support is an optional feature and may not be available in your " "Pan build." msgstr "" "Podpora PGP je volitelná a nemusí být ve vašem sestavení aplikace " "Pan dostupná." #. (itstool) path: sect3/title #: C/index.docbook:1290 msgid "Optional Information" msgstr "Volitelné informace" #. (itstool) path: listitem/para #: C/index.docbook:1293 msgid "Attribution" msgstr "Nadepsání citace" #. (itstool) path: listitem/para #: C/index.docbook:1294 msgid "" "When you reply to a post, the text in the attribution box precedes the " "quoted text. The %d flag is replaced the by the date of the selected post " "while the %n flag is replaced with the author of the selected post." msgstr "" "Když odpovídáte na příspěvek, text z pole Nadepsání citace se umístí před citovaný text. Proměnná %d se při tom nahradí datem " "příspěvku a %n jménem autora příspěvku." #. (itstool) path: listitem/para #: C/index.docbook:1299 msgid "Extra Headers" msgstr "Další záhlaví" #. (itstool) path: listitem/para #: C/index.docbook:1300 msgid "This is a advanced option to add extra headers to the article." msgstr "Jedná se o pokročilou volbu, která přidá do článků další záhlaví." #. (itstool) path: sect2/title #: C/index.docbook:1308 msgid "Post Article Dialog" msgstr "Dialogové okno vystavení příspěvku" #. (itstool) path: sect2/para #: C/index.docbook:1309 msgid "" "Whenever you post an article you use the Post Article Dialog." msgstr "" "Když vystavujete příspěvek, používáte dialogové okno Vystavení " "příspěvku." #. (itstool) path: sect3/title #: C/index.docbook:1312 msgid "Composition" msgstr "Části uživatelského rozhraní" #. (itstool) path: sect3/para #: C/index.docbook:1313 msgid "" "The Post Article Dialog is composed of the following " "parts:" msgstr "" "Dialogové okno Vystavení příspěvku se skládá z " "následujících částí:" #. (itstool) path: varlistentry/term #: C/index.docbook:1316 msgid "Menubar" msgstr "Nabídková lišta" #. (itstool) path: listitem/para #: C/index.docbook:1318 msgid "The menubar contains all the commands that you need to post an article." msgstr "" "Nabídková lišta obsahuje všechny příkazy, které potřebujete k vystavení " "příspěvku." #. (itstool) path: varlistentry/term #: C/index.docbook:1323 C/index.docbook:1558 msgid "Toolbar" msgstr "Nástrojová lišta" #. (itstool) path: listitem/para #: C/index.docbook:1325 msgid "" "The toolbar contains a subset of the commands that you can access from the " "menubar." msgstr "Obsahuje podmnožinu příkazů, které jsou dostupné z nabídkové lišty." #. (itstool) path: varlistentry/term #: C/index.docbook:1330 msgid "From" msgstr "Odesilatel" #. (itstool) path: listitem/para #: C/index.docbook:1332 msgid "Select which Posting Profile to use." msgstr "Vybírá, který profil se má použít." #. (itstool) path: varlistentry/term #: C/index.docbook:1337 msgid "Subject" msgstr "Předmět" #. (itstool) path: listitem/para #: C/index.docbook:1339 msgid "" "Type in the subject of your post. If this post is a reply, this line is " "already filled-in." msgstr "" "Zde napište předmět svého příspěvku. Pokud je příspěvek odpovědí, bude tento " "řádek již vyplněný." #. (itstool) path: varlistentry/term #: C/index.docbook:1345 msgid "Newsgroups" msgstr "Diskuzní skupiny" #. (itstool) path: listitem/para #: C/index.docbook:1347 msgid "" "A comma separated list of all the groups that will receive this article." msgstr "" "Čárkami oddělený seznam všech skupin, do kterých bude příspěvek doručen." #. (itstool) path: varlistentry/term #: C/index.docbook:1352 msgid "Mail To" msgstr "Zaslat na e-mail" #. (itstool) path: listitem/para #: C/index.docbook:1354 msgid "Enter an email address to send the article." msgstr "Zde zadejte e-mailovou adresu, na kterou se má příspěvek poslat." #. (itstool) path: varlistentry/term #: C/index.docbook:1359 msgid "More Headers" msgstr "Další záhlaví" #. (itstool) path: listitem/para #: C/index.docbook:1361 msgid "An advanced option to manually add more headers." msgstr "Pokročilá volba umožňující ručně zadat další záhlaví." #. (itstool) path: varlistentry/term #: C/index.docbook:1366 msgid "Text Area" msgstr "Textová oblast" #. (itstool) path: listitem/para #: C/index.docbook:1368 msgid "Where you enter the text of the article." msgstr "Zde se píše vlastní text příspěvku." #. (itstool) path: sect3/title #: C/index.docbook:1375 msgid "File Commands" msgstr "Příkazy pro práci se souborem" #. (itstool) path: sect3/para #: C/index.docbook:1376 msgid "" "These file commands are available from within the Post Article " "dialog." msgstr "" "Tyto příkazy jsou dostupné v nabídce Soubor v dialogovém " "okně Vystavení příspěvku." #. (itstool) path: varlistentry/term #: C/index.docbook:1379 msgid "" " File Send Article " msgstr "" "Soubor Odeslat příspěvek" #. (itstool) path: listitem/para #: C/index.docbook:1386 msgid "" "When you are done entering the article, use this command to send the article " "to the news server." msgstr "" "Když dokončíte zadávání příspěvku, použijte tento příkaz k odeslání " "příspěvku na diskuzní server." #. (itstool) path: varlistentry/term #: C/index.docbook:1391 msgid "" " File Save Draft " msgstr "" "Soubor Uložit koncept" #. (itstool) path: listitem/para #: C/index.docbook:1398 msgid "Save your current work on the article to disk." msgstr "Uložit svoji aktuální práci na příspěvku na disk." #. (itstool) path: varlistentry/term #: C/index.docbook:1402 msgid "" " File Open Draft " msgstr "" "Soubor Otevřít koncept" #. (itstool) path: listitem/para #: C/index.docbook:1409 msgid "Load a previous draft and continue editing." msgstr "Načíst dřívější koncept a pokračovat v jeho psaní." #. (itstool) path: sect3/title #: C/index.docbook:1416 msgid "Editing Commands" msgstr "Editační příkazy" #. (itstool) path: sect3/para #: C/index.docbook:1417 msgid "" "This option is available from within the Post Article Dialog." msgstr "" "Tyto volby jsou k dispozici v nabídce Upravit v " "dialogovém okně Vystavení příspěvku." #. (itstool) path: varlistentry/term #: C/index.docbook:1420 msgid "" " Edit Manage Posting Profiles " msgstr "" "Upravit Spravovat profily" #. (itstool) path: listitem/para #: C/index.docbook:1427 msgid "See Posting Profiles." msgstr "Viz profily." #. (itstool) path: varlistentry/term #: C/index.docbook:1431 msgid "" " Edit Run Editor " msgstr "" "Upravit Spustit editor" #. (itstool) path: listitem/para #: C/index.docbook:1438 msgid "" "Starts an external editor. Type in your post in the external editor as you " "normally would and save your work. The external editor will close and the " "text that was entered into that editor will be located in the text area." msgstr "" "Spustí externí editor. Napište příspěvek v externím editoru tak, jak jste " "normálně zvyklí psát, a uložte jej. Externí editor se zavře a napsaný text " "se objeví v textové oblasti." #. (itstool) path: varlistentry/term #: C/index.docbook:1444 msgid "" " Edit Set Editor " msgstr "" "Upravit Nastavit editor" #. (itstool) path: listitem/para #: C/index.docbook:1451 msgid "Choose which external editor to use." msgstr "Zvolit, který externí editor se má používat." #. (itstool) path: varlistentry/term #: C/index.docbook:1455 msgid "" " Edit Manage Editor List " msgstr "" "Upravit Správa seznamu editorů" #. (itstool) path: listitem/para #: C/index.docbook:1462 msgid "Setup another external editor." msgstr "Nastavit další externí editor." #. (itstool) path: varlistentry/term #: C/index.docbook:1466 msgid "" " Edit Cut, Copy and Paste " msgstr "" "Upravit Vyjmout, Kopírovat a " "Vložit" #. (itstool) path: listitem/para #: C/index.docbook:1473 msgid "The standard GUI text functions." msgstr "Standardní funkce pro práci se schránkou." #. (itstool) path: varlistentry/term #: C/index.docbook:1477 msgid "" " Edit Wrap Now " msgstr "" "Upravit Zalomit nyní" #. (itstool) path: listitem/para #: C/index.docbook:1484 msgid "" "Force the text flow into paragraphs instead of running off the edge of the " "text area." msgstr "" "Přinutit text zformátovat se do odstavců, místo aby utíkal za hranici " "textové oblasti." #. (itstool) path: varlistentry/term #: C/index.docbook:1489 msgid "" " Edit Wrap Text " msgstr "" "Upravit Zalamovat text" #. (itstool) path: listitem/para #: C/index.docbook:1496 msgid "Set this option to have text automatically wrap when entered." msgstr "" "Tuto volbu zapněte, když chcete aby se text během psaní automaticky " "zalamoval." #. (itstool) path: varlistentry/term #: C/index.docbook:1500 msgid "" " Edit Check Spelling " "" msgstr "" "Upravit Kontrolovat pravopis" #. (itstool) path: listitem/para #: C/index.docbook:1507 msgid "" "Set this option and possible spelling errors in the text area will marked " "with a red wavy line." msgstr "" "Zapnout kontrolu pravopisu. Pravopisně chybná slova pak budou v textu " "označená podtržením červenou vlnovkou." #. (itstool) path: varlistentry/term #: C/index.docbook:1511 msgid "" " Edit ROT 13 " msgstr "" "Upravit ROT 13" #. (itstool) path: listitem/para #: C/index.docbook:1518 msgid "" "ROT13 is a simple cipher to hide story spoilers, joke punchlines, etc. " "Select the text to cipher and use this command." msgstr "" "ROT13 je jednoduchá šifra pro skrytí rozuzlení příběhu, pointy vtipu apod. " "Vyberte text, který chcete zašifrovat, a použijte tento příkaz." #. (itstool) path: sect1/title #: C/index.docbook:1530 msgid "Tasks" msgstr "Úlohy" #. (itstool) path: sect1/para #: C/index.docbook:1531 msgid "" "Certain tasks performed by Pan, like downloading " "binary posts or grabbing new headers for a group, can take a long time. " "These tasks are queued and performed in the background while " "Pan is processing other tasks like grabbing an " "article." msgstr "" "Některé úlohy, které Pan provádí, jako třeba " "stahování binárních příspěvků nebo stahování nových hlaviček pro skupinu, " "mohou trval déle. Takovéto úlohy se řadí do fronty a provádějí na pozadí, " "zatímco Pan zpracovává jiné úlohy, jako je " "stahování příspěvku." #. (itstool) path: sect2/title #: C/index.docbook:1537 msgid "Cancel Last Task" msgstr "Zrušení poslední úlohy" #. (itstool) path: sect2/para #: C/index.docbook:1538 msgid "" "You can quickly cancel the last task added to the task queue by selecting: " " File Cancel Last Task ." msgstr "" "Poslední úlohu přidanou do fronty můžete rychle zrušit pomocí " "Soubor Zrušit poslední úlohu." #. (itstool) path: sect2/title #: C/index.docbook:1548 msgid "Task Manager" msgstr "Správce úloh" #. (itstool) path: sect2/para #: C/index.docbook:1549 msgid "" "Background tasks can be manipulated by using the Task Manager. The Task " "Manager can be accessed with File " "Task Manger or by left-clicking in " "the task area of the Status Bar at the bottom of the Pan screen." msgstr "" "S úlohami na pozadí se dá manipulovat pomocí správce úloh. K němu se " "dostanete pomocí Soubor Správce " "úloh nebo kliknutím levým tlačítkem na oblast " "úloh na stavové liště v dolní části hlavního okna Pan." #. (itstool) path: sect2/para #: C/index.docbook:1555 msgid "The Task Manger window is composed of the following parts:" msgstr "Okno správce úloh se skládá z následujících částí:" #. (itstool) path: listitem/para #: C/index.docbook:1560 msgid "" "The toolbar contains all the commands you need to manipulate the tasks in " "the Task Manger Window." msgstr "" "Nástrojová lišta obsahuje všechny příkazy, které potřebujete pro manipulaci " "s úlohami ve správci úloh." #. (itstool) path: varlistentry/term #: C/index.docbook:1565 msgid "Informational Area" msgstr "Informační oblast" #. (itstool) path: listitem/para #: C/index.docbook:1567 msgid "" "The Informational Area displays the number of queued tasks, the amount of " "data that needs to downloaded to complete the queued tasks, the current " "download rate and the estimated time needed to complete the queued tasks." msgstr "" "V informační oblasti se zobrazuje počet úloh ve frontě, množství dat, které " "je potřeba stáhnout, aby se dokončily úlohy ve frontě, aktuální rychlost " "stahování a odhadovaný čas potřebný k dokončení úloh ve frontě." #. (itstool) path: varlistentry/term #: C/index.docbook:1573 msgid "Task List" msgstr "Seznam úloh" #. (itstool) path: listitem/para #: C/index.docbook:1575 msgid "A list of queued tasks. Each row is a separate task." msgstr "Seznam úloh ve frontě. Každý řádek je samostatná úloha." #. (itstool) path: sect2/para #: C/index.docbook:1579 msgid "" "In order to manipulate a task, click on it and the row will be highlighted. " "Then click on one of the buttons in the toolbar." msgstr "" "Abyste mohli s úlohou manipulovat, klikněte na řádek a ten se zvýrazní. Pak " "použijte tlačítka na nástrojové liště." #. (itstool) path: tip/para #: C/index.docbook:1581 msgid "" "If Pan is shutdown whiles tasks are still waiting " "in the task manager, the task list is saved to disk and resumed when " "Pan is restarted. This, however, is not true for " "upload tasks in the current version." msgstr "" "Když se má Pan ukončit a některé úlohy stále " "čekají na dokončení, uloží se tyto úlohy na disk a při příštím spuštění " "aplikace Pan se obnoví. V aktuální verzi to ale " "neplatí pro úlohy provádějící nahrávání příspěvků." #. (itstool) path: sect2/title #: C/index.docbook:1587 msgid "NZB Files" msgstr "Soubory NZB" #. (itstool) path: sect2/para #: C/index.docbook:1588 msgid "" "Pan saves its task list in $HOME/.pan2/" "tasks.nzb file. You can import other task lists into " "Pan by choosing File Import NZB Files ." msgstr "" "Pan ukládá všechny své úlohy v souboru " "$HOME/.pan2/tasks.nzb. Další úlohy můžete naimportovat pomocí " " Soubor Importovat soubory NZB." #. (itstool) path: sect1/title #: C/index.docbook:1600 msgid "Scoring" msgstr "Hodnocení" #. (itstool) path: sect1/para #: C/index.docbook:1601 msgid "" "Scoring allows the user to give an article a rating based on user-defined " "scoring rules. This rating can then be used by Pan to perform score-based actions." msgstr "" "Hodnocení umožňuje uživatelům hodnotit příspěvky na základě uživatelem " "definovatelných pravidel. Hodnocení pak může Pan " "používat k provádění různých činností." #. (itstool) path: sect1/para #: C/index.docbook:1604 msgid "" "When a group's article headers are first downloaded from the news server, " "all the articles have a score of 0. Then the list of scoring rules in the " "score file are applied to each article. The score file rules might give an " "article from John Smith a high score, while articles with a subject line " "containing the phrase \"For Sale\" a negative score." msgstr "" "Když jsou ze serveru poprvé stažená záhlaví příspěvků pro některou skupinu, " "dostanou všechny příspěvky hodnocení 0. Pak jsou na každý jednotlivý " "příspěvek použita hodnotící pravidla ze souboru s pravidly. Pravidlo může " "například příspěvkům od Jiřího Procházky přidělit vyšší hodnocení, zatímco " "příspěvku s předmětem „Výhodná nabídka“ negativní hodnocení." #. (itstool) path: sect2/title #: C/index.docbook:1612 msgid "Scoring Actions" msgstr "Činnosti hodnocení" #. (itstool) path: listitem/para #: C/index.docbook:1615 msgid "" "View an article by using View " "Header Pane Match Scores of xxxx . The default is to hide articles (by not " "matching) with a score of -9999. and view all other scores." msgstr "" "Zobrazení příspěvků pomocí Zobrazit " "Panel záhlaví Vyhovují příspěvky s " "hodnocením xxxx. Výchozí je skrytí příspěvků s " "hodnocením menším než -9999 a zobrazení všech ostatních." #. (itstool) path: listitem/para #: C/index.docbook:1624 msgid "" "Change the background and text color of the score column in the Header Pane. " "This is defined in Edit " "Preferences Colors ." msgstr "" "Změna barvy pozadí a textu ve sloupci s hodnocením v panelu záhlaví. Barvy " "se definují pomocí Upravit " "Upravit předvolby Barvy." #. (itstool) path: sect2/para #: C/index.docbook:1613 msgid "" "Pan can perform two actions based on an article's " "score: <_:itemizedlist-1/>" msgstr "" "Pan umí provádět dvě činnosti, které jsou " "založené na hodnocení příspěvku: <_:itemizedlist-1/>" #. (itstool) path: sect2/title #: C/index.docbook:1638 msgid "Adding Scoring Rules" msgstr "Přidávání nových pravidel hodnocení" #. (itstool) path: sect2/para #: C/index.docbook:1640 msgid "" "There are several ways to add rules to the score file. Select an article in " "the Header Pane and then select Articles " "Watch Thread . This rule sets the " "score of any post located in the thread of the selected article to 9999." msgstr "" "Je několik způsobů, jak přidat pravidla do souboru pro hodnocení. Vyberte " "příspěvek v panelu záhlaví a pak vyberte Příspěvky Sledovat vlákno. Toto " "pravidlo nastaví hodnocení libovolného příspěvku ve vlákně patřícím k " "vybranému příspěvku na 9999." #. (itstool) path: sect2/para #: C/index.docbook:1649 msgid "" "The opposite of the above rule is Articles " "Ignore Thread . This rule sets the " "score of any post located in the thread of the selected article to -9999." msgstr "" "Opačným pravidlem k výše popsanému pravidlu je " "Příspěvky Ignorovat vlákno. Toto pravidlo nastaví hodnocení libovolného " "příspěvku ve vlákně patřícím k vybranému příspěvku na -9999." #. (itstool) path: sect2/para #: C/index.docbook:1657 msgid "" "Both of these scoring rules only work in the selected group and expire in " "one month." msgstr "" "Obě tato pravidla hodnocení fungují jen ve vybrané skupině a po měsíci " "vyprší jejich platnost." #. (itstool) path: sect2/para #: C/index.docbook:1659 msgid "" "Selecting an article and selecting Articles " "Ignore Author will open the " "New Scoring Rule dialog." msgstr "" "Výběrem příspěvku a následně Příspěvky " "Ignorovat autora se otevře dialogové " "okno Nové pravidlo." #. (itstool) path: sect2/para #: C/index.docbook:1666 msgid "" "The default of this scoring rule is to score all the posts of the author of " "the selected article -9999 for the next month in the selected group. By " "clicking on various fields and selecting different options in the " "New Scoring Rule dialog, you can customize the rule " "further. For instance, instead of having the rule expire in one month, you " "can have the rule last forever. Also note that you can make the rule add to " "the score of an article, making it a watch rule. So the name \"Ignore Author" "\" can be somewhat of a misnomer." msgstr "" "Výchozí podoba tohoto hodnotícího pravidla je ohodnotit všechny příspěvky " "autora vybraného příspěvku -9999 po následující měsíc ve vybrané skupině. " "Klikáním na různá pole a výběrem různých voleb v dialogovém okně " "Nové pravidlo si můžete pravidlo značně předělat. " "Například, místo toho, aby platnost pravidla po měsíci vypršela, můžete jej " "nechat platné napořád. Všimněte si také, že můžete pravidlo přimět, aby " "příspěvku přidávalo hodnocení, což z něj dělá sledovací pravidlo. Název " "„Ignorovat autora“ tak může být poněkud zavádějící." #. (itstool) path: sect2/para #: C/index.docbook:1672 msgid "" "When finished, click Add and Rescore to close the " "dialog box." msgstr "" "Po dokončení zmáčkněte Přidat a znovu ohodnotit a " "dialogové okno se zavře." #. (itstool) path: sect2/para #: C/index.docbook:1674 msgid "" "Selecting an article and selecting Articles " "Add a Scoring Rule is very similar to " "the Ignore Author section described above as it opens the same " "New Scoring Rule dialog, just with different " "defaults. Construct a rule in the same fashion as described above." msgstr "" "Výběrem příspěvku a následně Příspěvky " "Přidat nové pravidlo se otevře to " "stejné dialogové okno Nové pravidlo jako pro " "„Ignorovat autora“ a práce s ním je také stejná, jen se liší výchozími " "hodnotami. Pravidlo se sestavuje stejným způsobem, jak bylo popsáno výše." #. (itstool) path: sect2/title #: C/index.docbook:1686 msgid "Editing or Deleting Scoring Rules" msgstr "Změny nebo mazání pravidel hodnocení" #. (itstool) path: sect2/para #: C/index.docbook:1688 msgid "" "Selecting an article that is currently being scored and choosing " " Articles Edit Article's Watch/" "Ignore/Score will open the Article's " "Scores dialog box. From this dialog you can manipulate the " "scoring rule for the currently selected article. Each rule will have its own " "row describing the scoring action (plus or minus points), locations and line " "number of this rule in the score file and the texts of the rule. Select the " "rule and click Add button to alter the rule or " "Remove button to delete the rule from the score file. " "Click Close and Rescore when finished." msgstr "" "Vybráním příspěvku, který je aktuálně hodnocený, a volbou " "Příspěvky Upravit sledování/" "ignorování/hodnocení příspěvku otevřete dialogové " "okno Hodnocení příspěvků. V něm můžete upravovat " "pravidla pro právě vybraný příspěvek. Každé pravidlo má svůj vlastní řádek " "popisující hodnocení jeho činnosti (kladné nebo záporné body), umístění a " "číslo řádku v souboru s hodnotícími pravidly a texty pravidla. Když chcete " "pravidlo změnit, vyberte jej a zmáčkněte tlačítko Přidat, když odstranit, použijte tlačítko Odstranit. Po dokončení změn zmáčkněte tlačítko Zavřít a znovu " "ohodnotit." #. (itstool) path: sect2/title #: C/index.docbook:1703 msgid "Advanced Scoring" msgstr "Pokročilá hodnocení" #. (itstool) path: sect2/para #: C/index.docbook:1705 msgid "" "The scoring file is located at $HOME/.pan2/Scoring. " "Advanced users might want to edit this file directly with a text editor to " "create advanced scoring rules that are difficult or impossible to construct " "from the New Scoring Rule dialog. The format of the " "scoring rules is similar to the application slrn, " "but be aware that not all slrn scoring functions " "will work in Pan." msgstr "" "Soubor s hodnocením se nachází v $HOME/.pan2/Scoring. " "Pokročilí uživatelé si jej mohou chtít upravovat ručně v textovém editoru, " "aby si vytvořili pokročilá pravidla hodnocení, která je příliš složité, nebo " "až nemožné, sestavit v dialogovém okně Nové pravidlo. " "Formát pravidel hodnocení je podobný, jako v aplikaci slrn, ale mějte na paměti, že ne všechny hodnotící funkce " "slrn v aplikaci Pan " "fungují." #. (itstool) path: sect2/para #: C/index.docbook:1710 msgid "" "The slrn scoring functions are described in the document slrn - Scoring." msgstr "" "Hodnotící funkce slrn jsou popsané v dokumentu slrn - Scoring." #. (itstool) path: sect1/title #: C/index.docbook:1717 msgid "Customization" msgstr "Přizpůsobení" #. (itstool) path: sect1/para #: C/index.docbook:1718 msgid "" "This section describes how certain features or actions in Pan can be customized." msgstr "" "Tato část popisuje, jak si můžete v aplikaci Pan " "přizpůsobit jednotlivé funkce a činnosti." #. (itstool) path: sect2/title #: C/index.docbook:1722 msgid "Behavior" msgstr "Chování" #. (itstool) path: sect2/para #: C/index.docbook:1723 msgid "" "Many of the default actions of Pan, such as mouse " "clicks, actions when entering or leaving a group and the action of " "Space can be altered." msgstr "" "V aplikaci Pan si můžete měnit chování spousty " "výchozích činností, jako je činnost při kliknutí myší, činnost při vstupu do " "nebo opuštění skupiny nebo činnost mezerníku." #. (itstool) path: varlistentry/term #: C/index.docbook:1727 msgid "" "In Edit Preferences " "Behavior " msgstr "" "V Upravit Předvolby " "Chování" #. (itstool) path: listitem/para #: C/index.docbook:1737 msgid "Mouse" msgstr "Myš" #. (itstool) path: listitem/para #: C/index.docbook:1738 msgid "" "The two boxes of the mouse section change the default action of the left " "mouse button. If unselected, you would have to double click on a group or " "article to activate it." msgstr "" "Dvě políčka v této části mění výchozí činnost levého tlačítka myši. Když " "nejsou zaškrtnutá, musíte pro aktivaci skupiny nebo článku používat dvojité " "kliknutí." #. (itstool) path: listitem/para #: C/index.docbook:1742 msgid "Groups" msgstr "Skupiny" #. (itstool) path: listitem/para #: C/index.docbook:1743 msgid "" "The selections in the group section control what commands Pan will automatically run when manipulating groups." msgstr "" "Volby v části Skupiny řídí, které příkazy " "Pan bude automaticky spouštět při manipulaci se " "skupinami." #. (itstool) path: listitem/para #: C/index.docbook:1747 msgid "" "The first box, when activated, will automatically get new headers for all " "subscribed groups whenever Pan is started. This is the equivalent of using " " Groups Get New Headers in " "Subscribed Groups from the menubar." msgstr "" "Když je zaškrtnuté první políčko, budou se automaticky získávat nová záhlaví " "pro všechny odebírané skupiny při spuštění aplikace Pan. Udělá to to stejné, jako když v nabídce použijete " "Skupiny Stáhnout nová záhlaví v " "odebíraných skupinách." #. (itstool) path: listitem/para #: C/index.docbook:1757 msgid "" "The next box, when activated, will automatically get new headers when " "entering a group. This is the equivalent of using " "Groups Get New Headers in Selected Group from the menubar." msgstr "" "Když je zaškrtnuté následující políčko, budou se automaticky získávat nová " "záhlaví při vstupu do skupiny. Udělá to to stejné, jako když v nabídce " "použijete Skupiny Stáhnout nová " "záhlaví ve vybraných skupinách ." #. (itstool) path: listitem/para #: C/index.docbook:1767 msgid "" "The next box, when activated, will mark the entire group read when leaving a " "group. This is the equivalent of using Groups Mark Group Read from the " "menubar." msgstr "" "Když je zaškrtnuté další políčko, bude se celá skupina označovat jako " "přečtená při opuštění skupiny. Udělá to to stejné, jako když v nabídce " "použijete Skupiny Označit " "vybrané skupiny jako přečtené." #. (itstool) path: listitem/para #: C/index.docbook:1777 msgid "" "The last box in the Groups section, when activated, will expand all threads " "in the Header Pane when entering a group." msgstr "" "Když je zaškrtnuté poslední políčko v části Skupiny, " "budou se rozbalovat všechna vlákna v panelu záhlaví při vstupu do skupiny." #. (itstool) path: listitem/para #: C/index.docbook:1783 msgid "Articles" msgstr "Příspěvky" #. (itstool) path: listitem/para #: C/index.docbook:1784 msgid "" "The first option, when activated, makes Space select the " "next article rather than the next unread article. This is handy if you are " "viewing a thread with read and unread articles mixed together." msgstr "" "Když je zapnutá první volba, vybírá mezerník následující " "příspěvek, místo následujícího nepřečteného příspěvku. To se hodí, když si " "prohlížíte vlákno s pomíchanými přečtenými a nepřečtenými příspěvky." #. (itstool) path: listitem/para #: C/index.docbook:1787 msgid "The next option activates smooth scrolling in the Article Pane." msgstr "Následující volba aktivuje hladké posouvání v panelu s příspěvkem." #. (itstool) path: sect2/title #: C/index.docbook:1796 msgid "GUI Composition" msgstr "Části grafického rozhraní" #. (itstool) path: sect2/para #: C/index.docbook:1797 msgid "" "The layout and view of the Group, Header and Body Panes in Pan can be customized in several ways." msgstr "" "Rozvržení a zobrazení panelů se skupinami, záhlavími a tělem zprávy se dá v " "aplikaci Pan přizpůsobit vlastním potřebám " "několika způsoby." #. (itstool) path: varlistentry/term #: C/index.docbook:1801 msgid "Pane Layout" msgstr "Rozvržení panelů" #. (itstool) path: listitem/para #: C/index.docbook:1803 msgid "" "In Edit Preferences " "Layout the orientation of the " "Groups, Header and Body Panes can be manipulated." msgstr "" "V Upravit Upravit předvolby Rozvržení panelů můžete " "měnit otočení panelů se skupinami, záhlavími a tělem zprávy." #. (itstool) path: varlistentry/term #: C/index.docbook:1813 msgid "Tabbed Layout" msgstr "Rozvržení s kartami" #. (itstool) path: listitem/para #: C/index.docbook:1815 msgid "" "Instead of having all three panes share the Pan " "main window at one time, another view, called Tabbed Layout, can be " "activated by choosing View " "Layout Tabbed Layout . Now, only one of the three Panes will be displayed at a time. " "Each Pane is brought to the front of other Panes by clicking on its tab " "located directly under the tool bar or by pressing \"1\", \"2\" or \"3\" for " "the Group, Header or Body Pane respectively." msgstr "" "Místo, abyste měli tři panely, které se naráz dělí o hlavní okno aplikace, " "můžete použít zobrazení nazvané Rozvržení s kartami, které můžete aktivovat " "pomocí Zobrazit Rozvržení Rozvržení s kartami. Pak " "bude v jednu chvíli zobrazený jen jeden panel. Potřebný panel dostanete do " "popředí kliknutím na ouško jeho karty, které najdete pod nástrojovou lištou, " "nebo zmáčknutím „1“, „2“ nebo „3“ pro panel skupin, záhlaví nebo těla " "příspěvku." #. (itstool) path: varlistentry/term #: C/index.docbook:1828 msgid "Show/Hide Panes" msgstr "Zobrazovat/skrýt panely" #. (itstool) path: listitem/para #: C/index.docbook:1830 msgid "" "You can hide a specific Pane by choosing from View Layout and using the " "selection box to show/hide each of the Panes." msgstr "" "Konkrétní panel můžete skrýt pomocí voleb Zobrazit Rozvržení panelů a " "příslušného zaškrtávacího políčka pro zobrazení/skrytí jednotlivých panelů." #. (itstool) path: varlistentry/term #: C/index.docbook:1839 msgid "Fonts" msgstr "Písma" #. (itstool) path: listitem/para #: C/index.docbook:1841 msgid "" "Choose Edit Preferences Fonts to select a font." msgstr "" "Pro výběr fontů zvolte Upravit " "Upravit předvolby Písma." #. (itstool) path: listitem/para #: C/index.docbook:1848 msgid "" "Pan can use the monospace font in the article " "Pane, if activated." msgstr "" "Pan umí používat v panelu s tělem příspěvku " "neproporcionální písmo (s pevnou šířkou), stačí si to zde zapnout." #. (itstool) path: varlistentry/term #: C/index.docbook:1852 msgid "Colors" msgstr "Barvy" #. (itstool) path: listitem/para #: C/index.docbook:1854 msgid "" "Choose Edit Preferences Colors to customize the " "colors used in Pan." msgstr "" "Pokud si chcete podle svého zvolit barvy, které Pan používá, jděte do Upravit " "Upravit předvolby Barvy." #. (itstool) path: listitem/para #: C/index.docbook:1861 msgid "" "The first section allows you to customize the colors used by scoring in the " "Header Pane. See for more information on how " "to use this feature." msgstr "" "V první části si můžete přizpůsobit barvy používané k hodnocení v panelu se " "záhlavími. Více se o této funkci hodnocení dočtete v ." #. (itstool) path: listitem/para #: C/index.docbook:1863 msgid "" "The second section allows you to customize the colors used in the Body Pane." msgstr "" "V druhé části si můžete přizpůsobit barvy používané v panelu s tělem " "příspěvku." #. (itstool) path: sect2/title #: C/index.docbook:1870 msgid "External Applications" msgstr "Externí aplikace" #. (itstool) path: sect2/para #: C/index.docbook:1871 msgid "" "In this section you set up external applications that Pan can use." msgstr "" "V této části můžete nastavit externí aplikace, které má Pan používat." #. (itstool) path: varlistentry/term #: C/index.docbook:1874 msgid "" "In Edit Preferences " "Applications :" msgstr "" "V Upravit Předvolby " "Aplikace:" #. (itstool) path: listitem/para #: C/index.docbook:1884 msgid "Web Browser" msgstr "Webový prohlížeč" #. (itstool) path: listitem/para #: C/index.docbook:1885 msgid "" "Click the Web Button to choose which external application to launch when " "clicking on an HTML link." msgstr "" "Kliknutím na tlačítko můžete vybrat externí aplikaci, která se má spustit " "při kliknutí na odkaz HTML." #. (itstool) path: listitem/para #: C/index.docbook:1889 msgid "Mail Reader" msgstr "E-mailový klient" #. (itstool) path: listitem/para #: C/index.docbook:1890 msgid "" "Choose which external application to launch when clicking on an email " "address or when sending a post via email." msgstr "" "Zvolit, která externí aplikace se má spustit při kliknutí na e-mailovou " "adresu nebo při posílání příspěvku e-mailem." #. (itstool) path: sect2/para #: C/index.docbook:1897 msgid "" "To set up an external text editor, choose Post Post to Newsgroup . From the " "Post Article dialog menubar, choose Edit " "Set Editor " msgstr "" "Když chcete nastavit externí editor, zvolte Vystavit Vystavit v diskuzní skupině. " "V nabídkové liště dialogového okna, které se objeví zvolte " "Upravit Nastavit editor." #. (itstool) path: sect2/title #: C/index.docbook:1912 msgid "Article Cache Size" msgstr "Velikost mezipaměti příspěvků" #. (itstool) path: sect2/para #: C/index.docbook:1913 msgid "" "The article cache is a fixed-size disk buffer where Pan stores articles when they are downloaded from a news server. If " "the user downloads a large amount of binary attachments, the default cache " "size might be inadequate." msgstr "" "Mezipaměť příspěvků je vyrovnávací paměť pevné velikosti, do které " "Pan ukládá příspěvky stažené z diskuzního " "serveru. Když uživatel stáhuje velké množství binárních příloh, může být " "výchozí velikost mezipaměti nedostatečná." #. (itstool) path: sect2/para #: C/index.docbook:1916 msgid "" "The article cache size can be changed in Edit Preferences Behavior Article Cache " msgstr "" "Velikost mezipaměti příspěvků můžete změnit v Upravit Upravit předvolby Chování Velikost mezipaměti příspěvků (v MiB)." #. (itstool) path: sect2/title #: C/index.docbook:1929 msgid "News Servers" msgstr "Diskuzní servery" #. (itstool) path: sect2/para #: C/index.docbook:1930 msgid "" "Pan must connect to a special computer called a " "news server. The news server is the gateway used to access Usenet." msgstr "" "Pan se potřebuje připojit ke speciálnímu počítači " "nazývanému diskuzní server. Ten je branou do sítě Usenet." #. (itstool) path: sect2/para #: C/index.docbook:1932 msgid "" "Choose Edit Edit News Servers and the Servers dialog will " "appear. Click on a server name and you can edit or remove it via the " "buttons. Click the Add button to add another server." msgstr "" "Zvolte Upravit Upravit servery " "diskuzních skupin a objeví se dialogové okno " "Servery. Po kliknutí na název serveru jej můžete " "pomocí tlačítek upravit nebo odstranit. Kliknutím na tlačítko " "Přidat můžete přidat další server." #. (itstool) path: sect2/para #: C/index.docbook:1940 msgid "" "When you add or edit an existing server, the Edit a Server's " "Settings dialog will appear." msgstr "" "Když přidáváte nový nebo upravujete stávající server, objeví se dialogové " "okno Úprava nastavení serveru." #. (itstool) path: sect2/para #: C/index.docbook:1942 msgid "In the location section:" msgstr "V části Umístění:" #. (itstool) path: listitem/para #: C/index.docbook:1946 msgid "Address" msgstr "Adresa" #. (itstool) path: listitem/para #: C/index.docbook:1947 msgid "The internet address of the server." msgstr "Internetová adresa serveru." #. (itstool) path: listitem/para #: C/index.docbook:1950 msgid "Port" msgstr "Port" #. (itstool) path: listitem/para #: C/index.docbook:1951 msgid "" "The port of the server. Port 119 is the standard port number for unsecured " "NNTP connections, port 563 is for TLS/SSL connections." msgstr "" "Port serveru. Port 119 je standardním číslem portu pro nezabezpečené " "připojení NNTP, port 563 pak pro připojení TLS/SSL." #. (itstool) path: sect2/para #: C/index.docbook:1954 msgid "" "The next section is the login information for the server. If you server " "requires a username and password, enter them here. If the server allows " "anonymous login or does not require authentication, just let these fields " "blank." msgstr "" "V následující části jsou přihlašovací údaje k serveru. V případě, že server " "vyžaduje uživatelské jméno a heslo, zadejte je zde. Pokud umožňuje anonymní " "přihlášení nebo ověřené vůbec nepožaduje, ponechte tato pole prázdná." #. (itstool) path: listitem/para #: C/index.docbook:1959 msgid "Username" msgstr "Přihlašovací jméno" #. (itstool) path: listitem/para #: C/index.docbook:1960 msgid "Enter the login name if required." msgstr "Pokud je požadováno přihlašovací jméno, zadejte jej zde." #. (itstool) path: listitem/para #: C/index.docbook:1963 msgid "Password" msgstr "Heslo" #. (itstool) path: listitem/para #: C/index.docbook:1964 msgid "Enter the password if required." msgstr "Pokud je požadováno heslo, zadejte jej zde." #. (itstool) path: note/para #: C/index.docbook:1966 msgid "" "Pan can store saved passwords in a password " "storage service provided by GNOME Keyring or " "libsecret. To enable this feature, use " "Edit PreferencesMiscellaneousSave passwords " "in password storage. Password storage support is an " "optional feature and may not be available in your Pan build." msgstr "" "Pan umí uchovávat hesla v službě úložiště hesel " "poskytované Klíčenkou GNOME nebo knihovou " "libsecret. Pro zapnutí této funkcionality použijte " "Upravit Předvolby " "Různé Ukládat hesla v úložišti hesel. Úložiště hesel je volitelná funkčnost a nemusí být " "ve vašem sestavení aplikace Pan dostupná." #. (itstool) path: sect2/para #: C/index.docbook:1974 msgid "" "The next section allows you to enter certain Pan " "settings that are server specific." msgstr "" "V následující části můžete zadat nastavení Pan, " "která se liší server od serveru." #. (itstool) path: listitem/para #: C/index.docbook:1977 msgid "Connection Limit" msgstr "Maximum spojení" #. (itstool) path: listitem/para #: C/index.docbook:1978 msgid "" "Pan can open multiple connections to a server so " "the user can perform simultaneous actions like download a binary attachment " "will reading articles in a text group." msgstr "" "Pan umí otevřít více přípojení na server, díky " "čemuž uživatel může provádět více činností naráz, jako třeba stahovat " "binární přílohu a přitom si číst příspěvky ve skupině." #. (itstool) path: listitem/para #: C/index.docbook:1980 msgid "" "In order to follow the GNKSA rules, the maximum number of connections Pan can have open with a server is 4." msgstr "" "Kvůli dodržení pravidel GNKSA, může Pan naráz otevřít " "maximálně 4 připojení." #. (itstool) path: listitem/para #: C/index.docbook:1984 msgid "Expire Old Articles" msgstr "Staré příspěvky vyprší" #. (itstool) path: listitem/para #: C/index.docbook:1985 msgid "" "From this toggle box, you can pick a time when Pan will expire old articles and remove them from its article index." msgstr "" "Po zapnutí tohoto přepínače můžete nastavit čas, po kterém bude " "Pan staré příspěvky považovat za prošlé a " "odstraní je ze seznamu příspěvků." #. (itstool) path: listitem/para #: C/index.docbook:1989 msgid "Server Rank" msgstr "Pořadí serveru" #. (itstool) path: listitem/para #: C/index.docbook:1990 msgid "" "When you have more than 1 server configured, Pan " "uses server rank to decide from which server to download the article. Only " "after all primary servers have been tried for the article will " "Pan use the fallback servers." msgstr "" "Pokud máte nastavený více než jeden server, používá Pan pořadí serverů k rozhodnutí, ze kterého serveru stahovat " "příspěvky. Teprve když selžou všechny pokusy získat příspěvky z hlavních " "serverů, použije Pan záložní servery." #. (itstool) path: listitem/para #: C/index.docbook:1993 msgid "" "The reason for this feature is that a user might have access to a free " "server and also have access to a byte-limited premium server. Server ranking " "allows Pan to use the fallback server as little " "as possible." msgstr "" "Důvodem pro tuto funkcionalitu je, že uživatel může mít přístup na servery " "bez omezení a také přístup na prémiové servery s omezeními. Nastavení pořadí " "serverů zajišťuje, že Pan bude používat záložní " "servery, co nejméně to půjde." #. (itstool) path: listitem/para #: C/index.docbook:1998 msgid "TLS (SSL) Options" msgstr "Nastavení TLS (SSL)" #. (itstool) path: listitem/para #: C/index.docbook:1999 msgid "" "If security and privacy are of concern, choose secured connections if the " "server supports it." msgstr "" "Jestli jsou pro vás důležité soukromí a bezpečnost, zvolte zabezpečené " "připojení (pokud jej server podporuje)." #. (itstool) path: note/para #: C/index.docbook:2001 msgid "" "TLS (SSL) support is an optional feature and may not be available in your " "Pan build." msgstr "" "Podpora TLS (SSL) je volitelná funkcionalita a ve vašem sestavení aplikace " "Pan nemusí být k dispozici." #. (itstool) path: listitem/para #: C/index.docbook:2005 msgid "Always trust this server's certificate" msgstr "Vždy důvěřovat certifikátu tohoto serveru" #. (itstool) path: listitem/para #: C/index.docbook:2006 msgid "" "If you want to trust the server regardless of the authenticity of its " "certificate, you can enable this option. Use with caution!" msgstr "" "Když chcete serveru důvěřovat bez ohledu na pravost jeho certifikátu, můžete " "zapnout tuto volbu. Používejte s rozvahou!" pan-0.162/help/de/000077500000000000000000000000001475412772400136355ustar00rootroot00000000000000pan-0.162/help/de/de.po000066400000000000000000002736701475412772400146040ustar00rootroot00000000000000# German translation of the Pan documentation. # Mario Blättermann , 2011, 2017. # msgid "" msgstr "" "Project-Id-Version: pan manual\n" "POT-Creation-Date: 2017-07-29 12:43+0000\n" "PO-Revision-Date: 2017-10-16 23:13+0200\n" "Last-Translator: Mario Blättermann \n" "Language-Team: German \n" "Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 2.0.3\n" #. Put one translator per line, in the form NAME , YEAR1, YEAR2 msgctxt "_" msgid "translator-credits" msgstr "Mario Blättermann , 2011, 2017" #. (itstool) path: abstract/para #: C/index.docbook:41 msgid "Pan is a powerful and user-friendly USENET newsreader for GTK+." msgstr "Pan ist ein mächtiger und benutzerfreundlicher Newsreader für GTK+." #. (itstool) path: articleinfo/title #: C/index.docbook:44 msgid "Pan Manual" msgstr "Pan-Handbuch" #. (itstool) path: articleinfo/copyright #: C/index.docbook:46 msgid "2006 Douglas Bollinger" msgstr "2006 Douglas Bollinger" #. (itstool) path: articleinfo/copyright #: C/index.docbook:51 msgid "2011 Heinrich Müller" msgstr "2011 Heinrich Müller" #. (itstool) path: articleinfo/copyright #: C/index.docbook:56 msgid "2011 Petr Kovar" msgstr "2011 Petr Kovar" #. (itstool) path: legalnotice/para #: C/index.docbook:2 msgid "" "Permission is granted to copy, distribute and/or modify this document under " "the terms of the GNU Free Documentation License (GFDL), Version 1.1 or any " "later version published by the Free Software Foundation with no Invariant " "Sections, no Front-Cover Texts, and no Back-Cover Texts. You can find a copy " "of the GFDL at this link or in " "the file COPYING-DOCS distributed with this manual." msgstr "" "Das vorliegende Dokument kann gemäß den Bedingungen der GNU Free " "Documentation License (GFDL), Version 1.1 oder jeder späteren, von der Free " "Software Foundation veröffentlichten Version ohne unveränderbare Abschnitte " "sowie ohne Texte auf dem vorderen und hinteren Buchdeckel kopiert, verteilt " "und/oder modifiziert werden. Eine Kopie der GFDL finden Sie unter diesem " "Link oder in der mit diesem " "Handbuch gelieferten Datei COPYING-DOCS." #. (itstool) path: legalnotice/para #: C/index.docbook:12 msgid "" "This manual is part of a collection of GNOME manuals distributed under the " "GFDL. If you want to distribute this manual separately from the collection, " "you can do so by adding a copy of the license to the manual, as described in " "section 6 of the license." msgstr "" "Dieses Handbuch ist Teil einer Sammlung von GNOME-Handbüchern, die unter der " "GFDL veröffentlicht werden. Wenn Sie dieses Handbuch getrennt von der " "Sammlung weiterverbreiten möchten, können Sie das tun, indem Sie eine Kopie " "der Lizenz zum Handbuch hinzufügen, wie es in Abschnitt 6 der Lizenz " "beschrieben ist." #. (itstool) path: legalnotice/para #: C/index.docbook:19 msgid "" "Many of the names used by companies to distinguish their products and " "services are claimed as trademarks. Where those names appear in any GNOME " "documentation, and the members of the GNOME Documentation Project are made " "aware of those trademarks, then the names are in capital letters or initial " "capital letters." msgstr "" "Viele der Namen, die von Unternehmen verwendet werden, um ihre Produkte und " "Dienstleistungen von anderen zu unterscheiden, sind eingetragene " "Warenzeichen. An den Stellen, an denen diese Namen in einer GNOME-" "Dokumentation erscheinen, werden die Namen in Großbuchstaben oder mit einem " "großen Anfangsbuchstaben geschrieben, wenn das GNOME-Dokumentationsprojekt " "auf diese Warenzeichen hingewiesen wird." #. (itstool) path: listitem/para #: C/index.docbook:35 msgid "" "DOCUMENT IS PROVIDED ON AN \"AS IS\" BASIS, WITHOUT WARRANTY OF ANY KIND, " "EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT " "THE DOCUMENT OR MODIFIED VERSION OF THE DOCUMENT IS FREE OF DEFECTS " "MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE " "RISK AS TO THE QUALITY, ACCURACY, AND PERFORMANCE OF THE DOCUMENT OR " "MODIFIED VERSION OF THE DOCUMENT IS WITH YOU. SHOULD ANY DOCUMENT OR " "MODIFIED VERSION PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL " "WRITER, AUTHOR OR ANY CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY " "SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN " "ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY DOCUMENT OR MODIFIED VERSION " "OF THE DOCUMENT IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER; AND" msgstr "" "DIESES DOKUMENT WIRD »WIE VORLIEGEND« GELIEFERT, OHNE GARANTIEN IRGENDEINER " "ART, SOWOHL AUSDRÜCKLICH GENANNTE ALS AUCH ANGEDEUTETE. DIES BEZIEHT SICH " "AUCH OHNE EINSCHRÄNKUNG AUF GARANTIEN, DASS DIESES DOKUMENT ODER VERÄNDERTE " "FASSUNGEN DIESES DOKUMENTS FREI VON HANDELSDEFEKTEN, FÜR EINEN BESTIMMTEN " "ZWECK GEEIGNET IST ODER DASS ES KEINE RECHTE DRITTER VERLETZT. DAS VOLLE " "RISIKO WAS QUALITÄT, GENAUIGKEIT UND LEISTUNG DES DOKUMENTS ODER VERÄNDERTE " "FASSUNGEN DES DOKUMENTS LIEGT BEI IHNEN. SOLLTE EIN DOKUMENT ODER EINE " "VERÄNDERTE FASSUNG DAVON FEHLER IRGENDEINER ART BEINHALTEN, TRAGEN SIE " "(NICHT DER URSPRUNGSAUTOR, DER AUTOR ODER EIN MITWIRKENDER) DIE KOSTEN FÜR " "NOTWENDIGE DIENSTLEISTUNGEN, REPARATUREN ODER FEHLERKORREKTUREN. DIESER " "HAFTUNGSAUSSCHLUSS IST EIN ESSENZIELLER TEIL DIESER LIZENZ. DIE VERWENDUNG " "EINES DOKUMENTS ODER EINER VERÄNDERTEN VERSION DES DOKUMENTS IST NICHT " "GESTATTET AUßER UNTER BEACHTUNG DIESES HAFTUNGSAUSSCHLUSSES UND" #. (itstool) path: listitem/para #: C/index.docbook:55 msgid "" "UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER IN TORT (INCLUDING " "NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL THE AUTHOR, INITIAL WRITER, ANY " "CONTRIBUTOR, OR ANY DISTRIBUTOR OF THE DOCUMENT OR MODIFIED VERSION OF THE " "DOCUMENT, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON " "FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF " "ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, " "WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER DAMAGES " "OR LOSSES ARISING OUT OF OR RELATING TO USE OF THE DOCUMENT AND MODIFIED " "VERSIONS OF THE DOCUMENT, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE " "POSSIBILITY OF SUCH DAMAGES." msgstr "" "UNTER KEINEN UMSTÄNDEN UND AUF BASIS KEINER RECHTSGRUNDLAGE, EGAL OB DURCH " "UNERLAUBTEN HANDLUNGEN (EINSCHLIEßLICH FAHRLÄSSIGKEIT), VERTRAG ODER " "ANDERWEITIG KANN DER AUTOR, URSPRUNGSAUTOR, EIN MITWIRKENDER ODER EIN " "VERTRIEBSPARTNER DIESES DOKUMENTS ODER EINER VERÄNDERTEN FASSUNG DES " "DOKUMENTS ODER EIN ZULIEFERER EINER DIESER PARTEIEN, HAFTBAR GEMACHT WERDEN " "FÜR DIREKTE, INDIREKTE, SPEZIELLE, VERSEHENTLICHE ODER FOLGESCHÄDEN " "JEGLICHER ART, EINSCHLIEßLICH UND OHNE EINSCHRÄNKUNGEN SCHÄDEN DURCH VERLUST " "VON KULANZ, ARBEITSAUSFALL, COMPUTERVERSAGEN ODER COMPUTERFEHLFUNKTIONEN " "ODER ALLE ANDEREN SCHÄDEN ODER VERLUSTE, DIE SICH AUS ODER IN VERBINDUNG MIT " "DER VERWENDUNG DES DOKUMENTS UND VERÄNDERTER FASSUNGEN DES DOKUMENTS " "ERGEBEN, AUCH WENN DIE OBEN GENANNTEN PARTEIEN ÜBER DIE MÖGLICHKEIT SOLCHER " "SCHÄDEN INFORMIERT WAREN." #. (itstool) path: legalnotice/para #: C/index.docbook:28 msgid "" "DOCUMENT AND MODIFIED VERSIONS OF THE DOCUMENT ARE PROVIDED UNDER THE TERMS " "OF THE GNU FREE DOCUMENTATION LICENSE WITH THE FURTHER UNDERSTANDING THAT: " "<_:orderedlist-1/>" msgstr "" "DAS DOKUMENT UND VERÄNDERTE FASSUNGEN DES DOKUMENTS WERDEN UNTER DEN " "BEDINGUNGEN DER GNU FREE DOCUMENTATION LICENSE ZUR VERFÜGUNG GESTELLT MIT " "DEM WEITERGEHENDEN VERSTÄNDNIS, DASS: <_:orderedlist-1/>" #. (itstool) path: authorgroup/author #: C/index.docbook:83 msgid "" "Douglas Bollinger " msgstr "" "Douglas Bollinger " #. (itstool) path: revdescription/para #: C/index.docbook:124 C/index.docbook:132 msgid "Petr Kovar" msgstr "Petr Kovar" #. (itstool) path: revhistory/revision #: C/index.docbook:120 msgid "" "V 0.3 April 2017 <_:revdescription-1/>" msgstr "" "V 0.3 April 2017 <_:revdescription-1/>" #. (itstool) path: revdescription/para #: C/index.docbook:131 msgid "Heinrich Müller" msgstr "Heinrich Müller" #. (itstool) path: revhistory/revision #: C/index.docbook:127 msgid "" "V 0.2 January 2011 <_:revdescription-1/>" msgstr "" "V 0.2 Januar 2011 <_:revdescription-1/>" #. (itstool) path: revdescription/para #: C/index.docbook:139 msgid "Douglas Bollinger" msgstr "Douglas Bollinger" #. (itstool) path: revhistory/revision #: C/index.docbook:135 msgid "" "V 0.1 December 2006 <_:revdescription-1/>" msgstr "" "V 0.1 Dezember 2006 <_:revdescription-1/>" #. (itstool) path: legalnotice/title #: C/index.docbook:150 msgid "Feedback" msgstr "Rückmeldungen" #. (itstool) path: legalnotice/para #: C/index.docbook:151 msgid "" "To report a bug or make a suggestion regarding the Pan application or this manual, follow the directions in the Pan Contact Page." msgstr "" "Um Fehler zu melden oder einen Vorschlag zur Anwendung Pan oder zu diesem Handbuch zu machen, folgen Sie den Anweisungen " "auf der Pan-Kontaktseite." #. (itstool) path: article/indexterm #: C/index.docbook:160 msgid "Pan" msgstr "Pan" #. (itstool) path: article/indexterm #: C/index.docbook:163 msgid "pan" msgstr "pan" #. (itstool) path: sect1/title #: C/index.docbook:172 msgid "Introduction" msgstr "Einführung" #. (itstool) path: sect1/para #: C/index.docbook:173 msgid "" "The Pan application enables you to read and post " "articles and binaries on Usenet." msgstr "" "Mit der Anwendung Pan können Sie Artikel im " "Usenet lesen und veröffentlichen sowie Binärdateien übertragen." #. (itstool) path: sect1/title #: C/index.docbook:179 msgid "Getting Started" msgstr "Erste Schritte" #. (itstool) path: sect1/para #: C/index.docbook:180 msgid "" "This section provides information on how to start Pan, and describes the Pan user " "interface." msgstr "" "In diesem Abschnitt erhalten Sie Informationen, wie Sie Pan starten können, sowie eine Beschreibung der Benutzeroberfläche " "von Pan." #. (itstool) path: sect2/title #: C/index.docbook:183 msgid "To Start Pan" msgstr "Pan starten" #. (itstool) path: sect2/para #: C/index.docbook:184 msgid "" "How to start Pan depends on your desktop " "environment." msgstr "" "Start von Pan, abhängig von Ihrer Arbeitsumgebung." #. (itstool) path: varlistentry/term #: C/index.docbook:188 msgid "The GNOME Desktop Environment" msgstr "Die GNOME-Arbeitsumgebung" #. (itstool) path: listitem/para #: C/index.docbook:190 msgid "" "Press the Super key to enter the Activities Overview, type " "pan, and then press Enter." msgstr "" "Drücken Sie die Super-Taste, um die Aktivitäten-Übersicht " "zu öffnen, geben Sie pan ein und drücken Sie die " "Eingabetaste." #. (itstool) path: varlistentry/term #: C/index.docbook:196 msgid "Command line" msgstr "Befehlszeile" #. (itstool) path: listitem/para #: C/index.docbook:198 msgid "" "To start Pan from a command line, type the " "following command, then press Enter:" msgstr "" "Zum Starten von Pan über die Befehlszeile geben " "Sie folgenden Befehl ein und bestätigen ihn mit der Eingabetaste:" #. (itstool) path: listitem/screen #: C/index.docbook:200 #, no-wrap msgid "pan" msgstr "pan" #. (itstool) path: sect2/title #: C/index.docbook:209 msgid "When You Start Pan" msgstr "Beim Start von Pan" #. (itstool) path: sect2/para #: C/index.docbook:210 msgid "" "When you start Pan, the following window is " "displayed:" msgstr "" "Wenn Sie Pan starten, wird folgendes Fenster " "angezeigt." #. (itstool) path: figure/title #: C/index.docbook:214 msgid "Pan Main Window" msgstr "Pan-Hauptfenster" #. (itstool) path: imageobject/imagedata #. This is a reference to an external file such as an image or video. When #. the file changes, the md5 hash will change to let you know you need to #. update your localized copy. The msgstr is not used at all. Set it to #. whatever you like once you have updated your copy of the file. #: C/index.docbook:217 msgctxt "_" msgid "" "external ref='figures/pan_window.png' md5='c9415a98935ef2e2568797388206877c'" msgstr "" #. (itstool) path: screenshot/mediaobject #: C/index.docbook:216 msgid "" " " " This is the Pan main window " msgstr "" " " " Das Hauptfenster von Pan " #. (itstool) path: sect2/para #: C/index.docbook:236 msgid "" "The main Pan window contains the following " "elements:" msgstr "" "Das Hauptfenster von Pan enthält die folgenden " "Elemente:" #. (itstool) path: varlistentry/term #: C/index.docbook:240 msgid "Menubar" msgstr "Menüleiste" #. (itstool) path: listitem/para #: C/index.docbook:242 msgid "" "The menubar contains all the commands that you need to run Pan." msgstr "" "Die Menüleiste enthält alle Befehle, die Sie zur Ausführung von " "Pan benötigen." #. (itstool) path: varlistentry/term #: C/index.docbook:247 msgid "Toolbar" msgstr "Werkzeugleiste" #. (itstool) path: listitem/para #: C/index.docbook:249 msgid "" "The toolbar contains a subset of the commands that you can access from the " "menubar. It also contains two textboxes that allow you to limit the number " "of groups and/or the number of articles displayed." msgstr "" #. (itstool) path: varlistentry/term #: C/index.docbook:255 msgid "Group Pane" msgstr "Gruppen-Teilfenster" #. (itstool) path: listitem/para #: C/index.docbook:257 msgid "" "The Group Pane displays a list of all the newsgroups available on the " "server. This list is split into two groups: Subscribed Groups are a user-" "selected list of favorite groups, Other Groups are the rest of the available " "groups from the server." msgstr "" "Das Gruppen-Teilfenster zeigt eine Liste aller auf dem Server verfügbaren " "Diskussionsgruppen an. Die Liste ist in zwei Gruppen unterteilt: Abonnierte " "Gruppen sind eine durch den Benutzer ausgewählte Liste der bevorzugten " "Gruppen, andere Gruppen sind die weiteren auf dem Server verfügbaren Gruppen." #. (itstool) path: varlistentry/term #: C/index.docbook:264 msgid "Header Pane" msgstr "Kopfzeilen-Teilfenster" #. (itstool) path: listitem/para #: C/index.docbook:266 msgid "" "The Header Pane displays a list of all the individual article headers " "available in the selected group. The Header Pane is highly customizable via " "sorting, threading and scoring." msgstr "" "Das Kopfzeilen-Teilfenster zeigt eine Liste aller in der ausgewählten Gruppe " "verfügbaren Artikelkopfzeilen an. Das Kopfzeilen-Teilfenster ist vielfältig " "bezüglich Sortierung, Diskussionsfäden und Bewertung anpassbar." #. (itstool) path: varlistentry/term #: C/index.docbook:272 msgid "Body Pane" msgstr "Text-Teilfenster" #. (itstool) path: listitem/para #: C/index.docbook:274 msgid "The Body Pane displays the text of the selected article header." msgstr "" "Das Text-Teilfenster zeigt den zur ausgewählten Artikelkopfzeile zugehörigen " "Text an." #. (itstool) path: varlistentry/term #: C/index.docbook:279 msgid "Status Bar" msgstr "Statusleiste" #. (itstool) path: listitem/para #: C/index.docbook:281 msgid "" "The Status Bar displays information about current Pan activity:" msgstr "" "Die Statuszeile zeigt Informationen zur aktuellen Aktvität in " "Pan an:" #. (itstool) path: listitem/para #: C/index.docbook:284 msgid "Current number of connections to the server" msgstr "Aktuelle Anzahl der Verbindungen zum Server" #. (itstool) path: listitem/para #: C/index.docbook:285 msgid "Number of uncompleted tasks in the Task Manager" msgstr "" "Anzahl der noch nicht abgeschlossenen Aufgaben in der Aufgabenverwaltung" #. (itstool) path: listitem/para #: C/index.docbook:286 msgid "Completed percentage of current tasks" msgstr "Prozentsatz der Fertigstellung aktueller Aufgaben" #. (itstool) path: listitem/para #: C/index.docbook:287 msgid "Error status of the event log" msgstr "Fehlerstatus des Ereignisprotokolls" #. (itstool) path: sect2/para #: C/index.docbook:292 msgid "" "When you right-click in the Pan window, the " "application displays a popup menu. The popup menu contains the most common " "commands for whichever pane you clicked." msgstr "" "Wenn Sie mit der rechten Maustaste in das Pan-" "Fenster klicken, zeigt die Anwendung ein Kontextmenü an. Dieses Kontextmenü " "enthält die am häufigsten verwendeten Befehle für das angeklickte " "Teilfenster." #. (itstool) path: sect2/para #: C/index.docbook:294 msgid "" "Like other applications, actions in Pan can be " "performed in several ways: with the menu, with the toolbar or with shortcut " "keys. The shortcut key for most menu items is shown in the menu itself, " "following the menu command." msgstr "" "Wie in anderen Anwendungen auch können Aktionen in Pan auf verschiedene Arten ausgeführt werden: über das Menü, über " "die Werkzeugleiste oder durch Schnellzugriffe mittels Tastenkombinationen. " "Die Tastenkombinationen für die meisten Menüeinträge sind im Menü selbst " "neben dem jeweiligen Befehl sichtbar." #. (itstool) path: sect1/title #: C/index.docbook:304 msgid "Usenet in a Nutshell" msgstr "Das Usent kurz und bündig" #. (itstool) path: sect1/para #: C/index.docbook:305 msgid "Knowledge about how Usenet works will make using Pan easier." msgstr "" "Wissen über die Funktionsweise des Usenet erleichtert die Benutzung von Pan." #. (itstool) path: sect2/title #: C/index.docbook:307 msgid "Description" msgstr "Beschreibung" #. (itstool) path: sect2/para #: C/index.docbook:308 msgid "" "Usenet is a distributed discussion system. Using a special program called a " "newsreader, a user accesses a news server to read and post email-like " "messages called articles. These articles are then exchanged back and forth " "with other news servers throughout the world. In this way, articles " "propagate from one news server to another throughout the entire Usenet " "system." msgstr "" #. (itstool) path: sect2/title #: C/index.docbook:314 msgid "Organization" msgstr "Organisation" #. (itstool) path: sect2/para #: C/index.docbook:315 msgid "" "Articles are organized into categories called groups. In discussion groups, " "most articles are responses to another article. The set of articles which " "can be traced to one single non-reply article is called a thread. When " "articles are organized into threads, it is much easier to follow a single " "discussion." msgstr "" #. (itstool) path: sect2/title #: C/index.docbook:320 msgid "Article Headers" msgstr "Artikelkopfzeilen" #. (itstool) path: sect2/para #: C/index.docbook:321 msgid "" "Articles are routed around Usenet based on the information contained in the " "article header, which is the first part of an article that contains " "information like the subject, author, date and routing information. To save " "time and bandwidth, most newsreaders first download just the article headers " "to sort and thread them. The user selects an article of interest from the " "list of headers and then downloads the article body to read." msgstr "" #. (itstool) path: sect2/title #: C/index.docbook:328 msgid "Binary Data" msgstr "Binärdaten" #. (itstool) path: sect2/para #: C/index.docbook:329 msgid "" "Usenet was originally created to distribute text content encoded in 7-bit " "ASCII. With additional encoding programs, multiple posts per chunk and other " "various tricks, it became possible to send binary data through Usenet. " "Groups that allow for binary content or binaries are called binary groups." msgstr "" #. (itstool) path: sect1/title #: C/index.docbook:338 msgid "Basic Usage" msgstr "Grundlagen der Bedienung" #. (itstool) path: sect1/para #: C/index.docbook:339 msgid "" "This section is an overview on how to perform basic Usenet actions with " "Pan." msgstr "" #. (itstool) path: sect2/title #: C/index.docbook:344 msgid "Set Up a News Server" msgstr "Einen News-Server einrichten" #. (itstool) path: sect2/para #: C/index.docbook:345 msgid "" "When you start Pan for the first time, the " "Add a Server dialog is displayed." msgstr "" "Wenn Sie Pan zum ersten Mal starten, wird der " "Dialog Einen Server hinzufügen angezeigt." #. (itstool) path: sect2/para #: C/index.docbook:347 msgid "" "At this point, you must enter the connection information for the server you " "wish to access. After you enter this information, Pan will contact the server and download a list of all the groups " "the server carries and save it to disk." msgstr "" #. (itstool) path: sect2/para #: C/index.docbook:351 msgid "" "Refer to for more detailed " "information." msgstr "" #. (itstool) path: sect2/title #: C/index.docbook:357 msgid "Selecting a News Group" msgstr "Auswahl einer Newsgruppe" #. (itstool) path: sect2/para #: C/index.docbook:358 msgid "" "The Group Pane contains a list of all the news groups available on the " "server. Scroll through the list and enter a group by clicking on its name." msgstr "" #. (itstool) path: sect2/para #: C/index.docbook:361 msgid "" "If this is the first time you have entered this group, you will be prompted " "on how many article headers you wish to retrieve from the server. You can " "choose to retrieve all article headers available for that group or limit the " "retrieval by either quantity of articles or number of days." msgstr "" #. (itstool) path: sect2/para #: C/index.docbook:365 msgid "" "After making a selection from this dialog, Pan " "will download the article headers for the selected group and save them " "locally on the computer." msgstr "" #. (itstool) path: note/para #: C/index.docbook:368 msgid "" "Depending on the news server, certain groups might be \"dead\" and have no " "headers available for download." msgstr "" #. (itstool) path: sect2/para #: C/index.docbook:371 msgid "" "After article header retrieval, the group name in the Group Pane will turn " "bold, which means there are unread articles in that particular group. Also " "the number of unread articles in the group will be displayed in parenthesis " "following the group name." msgstr "" #. (itstool) path: sect2/para #: C/index.docbook:375 msgid "" "It's not unusual for a server to have tens of thousands of groups, but " "usually a user is only interested in a few. To better keep track of the " "interesting groups, select the group name by middle-clicking on it and " "choose Groups Subscribe . Scroll the group window to the top if necessary " "and you will see that the selected newsgroup is listed directly under the " "Subscribed Groups section." msgstr "" #. (itstool) path: sect2/title #: C/index.docbook:387 msgid "Reading Articles" msgstr "Artikel lesen" #. (itstool) path: sect2/para #: C/index.docbook:388 msgid "" "After entering a group, the header pane will be filled with article headers. " "The header pane can be sorted by clicking on the topmost row of a column, " "where the column name is located. Clicking again will reverse the sort. The " "column that is used for sorting will have a downward arrow after the column " "name and the entire column will darken." msgstr "" #. (itstool) path: sect2/para #: C/index.docbook:392 msgid "" "Pan defaults to showing collapsed threads. Only " "the first article of the thread is shown with a number in parenthesis " "indicating how many posts are hidden. Clicking on the right-facing arrow " "before the header text will expand the thread, showing the hidden articles " "in the thread. Reading the first article of the thread will also expand the " "thread. The keyboard shortcut for expanding threads is " "Shift. " "Shift will collapse " "the thread." msgstr "" #. (itstool) path: sect2/para #: C/index.docbook:398 msgid "" "Clicking on a header will download the article from the server, store it in " "the article cache and display it in the article pane. The article is then " "marked as read. Read articles are distinguished in the header pane by using " "a normal (not bold) font and by showing an open envelope icon in the state " "column." msgstr "" #. (itstool) path: sect2/para #: C/index.docbook:401 msgid "" "You can scroll the message in the Article Pane by using the scrollbar or by " "pressing Space. Whenever the bottom of the retrieved " "article is already displayed, pressing Space will download " "the next article." msgstr "" #. (itstool) path: sect2/title #: C/index.docbook:407 msgid "Posting Articles" msgstr "Artikel veröffentlichen" #. (itstool) path: sect2/para #: C/index.docbook:408 msgid "" "To post an article in a group and start a new thread, select the group you " "wish to post to in the Group Pane and then choose " "Post Post to a Newsgroup . If this is the first time you have posted an article to a " "newsgroup, the Posting Profile dialog will appear and " "you will be required to fill in some information. Next, the Post " "Article dialog will appear. Type in a subject and then enter the " "body of the message at the bottom. When done, choose " "File Send Article to send the article to the news server and out to the rest of " "Usenet." msgstr "" #. (itstool) path: sect2/para #: C/index.docbook:424 msgid "" "Refer to and for more detailed information:" msgstr "" #. (itstool) path: sect2/title #: C/index.docbook:429 msgid "Replying to Articles" msgstr "Auf Artikel antworten" #. (itstool) path: sect2/para #: C/index.docbook:430 msgid "" "If you want to post a reply to a specific article and have your followup " "appear in that article's thread, highlight that article in the Header Pane " "with the middle mouse button and use Post " "Followup to Newsgroup . The " "highlighted article's text will appear as quoted text (each line is preceded " "by a \">\") in the editor window. Type in your response and then choose " " File Send Article " " to send the article to the news server." msgstr "" #. (itstool) path: sect2/para #: C/index.docbook:443 msgid "" "If you want to send a reply to a specific article via email, highlight that " "article in the Header Pane with the middle mouse button and choose " " Post Reply to Author in Mail . The highlighted article's text will appear as " "quoted text (each line is preceded by a \">\") in the editor window. Type " "in your response and then choose File " "Send Article and the text will be " "sent to the default external email application. Double-check the To: field " "and then send the email as you normally would with that application." msgstr "" #. (itstool) path: sect2/title #: C/index.docbook:460 msgid "Downloading Binaries" msgstr "Binärdateien herunterladen" #. (itstool) path: sect2/para #: C/index.docbook:461 msgid "" "A binary file in Usenet is usually composed of many smaller articles. " "Pan automatically organizes all these articles " "under one special article header. If all the data that comprises the binary " "header made it through the Usenet network successfully, a green, full puzzle-" "piece is displayed in the first column. To save the data, select the special " "header in the header window and use Articles " "Save Articles to download and save " "the binary data to disk." msgstr "" #. (itstool) path: sect2/para #: C/index.docbook:471 msgid "" "If the binary posts are corrupted by missing or incorrect data, a red, " "incomplete puzzle-piece is displayed in the first column. The file may be " "saved, but it will probably be corrupt in some way." msgstr "" #. (itstool) path: note/para #: C/index.docbook:473 msgid "" "Supporting binary newsgroups takes a large amount of bandwidth. Unless you " "are using a premium news server provider, it is not unusual for many binary " "files to be missing or corrupt." msgstr "" #. (itstool) path: sect1/title #: C/index.docbook:480 msgid "Groups" msgstr "Gruppen" #. (itstool) path: sect1/para #: C/index.docbook:481 msgid "Working with groups in Pan." msgstr "Arbeiten mit Gruppen in Pan." #. (itstool) path: sect2/title #: C/index.docbook:486 msgid "Group Views" msgstr "Gruppenansichten" #. (itstool) path: sect2/para #: C/index.docbook:488 msgid "" "The total number of groups on a news server can be quite extensive. An easy " "way to find a specific group is to use the Group text " "box in the toolbar. Only groups that match the characters typed in the box " "will be displayed in the Group Pane. If you wish to return the Group Pane to " "its original state, simply delete the characters in the box by clicking the " "X icon to the right of the box." msgstr "" #. (itstool) path: sect2/para #: C/index.docbook:493 msgid "" "The group names presented in the Group Pane can be shortened by choosing " " View Group Pane " "Abbreviate Names in Group Pane . " "This only alters the way the names are presented in this pane." msgstr "" #. (itstool) path: sect2/title #: C/index.docbook:504 msgid "Group Actions" msgstr "Gruppenaktionen" #. (itstool) path: sect2/para #: C/index.docbook:506 msgid "While a news group is selected, you can perform the following actions:" msgstr "" "Wenn eine Newsgruppe ausgewählt ist, können Sie die folgenden Aktionen " "ausführen:" #. (itstool) path: varlistentry/term #: C/index.docbook:510 msgid "" " Groups Mark Group Read " msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:517 msgid "Mark all articles in a group read." msgstr "Alle Artikel der Gruppe als gelesen markieren." #. (itstool) path: listitem/para #: C/index.docbook:518 msgid "" "A typical way to read news is to read all the interesting threads and when " "done mark the group read. The next time you start the news reader, choose " " Groups Get New Headers in " "Selected Group . With View Header Pane Match only Unread " "Articles , the only headers you will see will be " "the new headers you just downloaded." msgstr "" #. (itstool) path: varlistentry/term #: C/index.docbook:534 msgid "" " Groups Get New Headers in " "Subscribed Groups " msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:541 msgid "Grab new headers for all the groups in the Subscribed Groups section." msgstr "" #. (itstool) path: varlistentry/term #: C/index.docbook:545 msgid "" " Groups Edit Group Preferences " msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:555 msgid "Character encoding" msgstr "Zeichenkodierung" #. (itstool) path: listitem/para #: C/index.docbook:556 msgid "Location in the file hierarchy where attachments are saved" msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:558 msgid "The posting profile." msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:552 msgid "" "Opens the Group Preferences dialog. Within this dialog you can customize " "certain Pan features per group: <_:itemizedlist-1/" ">" msgstr "" #. (itstool) path: varlistentry/term #: C/index.docbook:564 msgid "" " Groups Subscribe " msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:571 msgid "" "Add a favorite group to the Subscribed Groups section of the Group Pane. " "Unsubscribe is the opposite of this command." msgstr "" #. (itstool) path: varlistentry/term #: C/index.docbook:576 msgid "" " Groups Refresh Group List " msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:583 msgid "" "Resync the local group list that Pan uses with " "the current listing on the news server." msgstr "" #. (itstool) path: varlistentry/term #: C/index.docbook:588 msgid "" " Groups Delete Group's Articles " msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:595 msgid "Delete all the articles for the selected group from the article index." msgstr "" #. (itstool) path: sect2/title #: C/index.docbook:602 msgid "The Newsrc File" msgstr "Die newsrc-Datei" #. (itstool) path: sect2/para #: C/index.docbook:603 msgid "" "The group list, subscribe/unsubscribe status of each group and the articles " "marked read in each group are stored in the newsrc file at $HOME/." "pan2/newsrc-1." msgstr "" #. (itstool) path: sect2/para #: C/index.docbook:605 msgid "" "The newsrc file format is standard among many Unix newsreaders and can be " "used to import and export this information between these applications." msgstr "" #. (itstool) path: sect1/title #: C/index.docbook:612 msgid "Headers" msgstr "Kopfzeilen" #. (itstool) path: sect1/para #: C/index.docbook:613 msgid "" "Users will spend most of their time in Pan " "interacting with the article headers in the Header Pane. Pan has many features to optimize header viewing and article " "retrieval." msgstr "" #. (itstool) path: sect2/title #: C/index.docbook:618 msgid "Header View" msgstr "" #. (itstool) path: sect2/para #: C/index.docbook:620 msgid "" "Since the total number of all the available article headers in a group might " "be enormous, Pan has several options to limit the " "number of visible headers to a more manageable number." msgstr "" #. (itstool) path: sect2/para #: C/index.docbook:623 msgid "" "In the toolbar, the Subject or Author text box is a " "filter than can be used to limit the visible headers. Usually this is used " "to search for a specific article or a group of articles. Click on the " "magnifying glass icon to choose which header field to base the filter. Only " "the article headers that match the characters typed into the text box will " "be displayed. Click the X to erase and reset." msgstr "" #. (itstool) path: varlistentry/term #: C/index.docbook:630 msgid "" "Choose Edit Preferences Headers " msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:638 msgid "To hide or change the display order of the Header Pane columns." msgstr "" #. (itstool) path: varlistentry/term #: C/index.docbook:642 msgid "" "Choose View Header Pane Thread Headers " msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:650 msgid "To enable or disable header threading in the Header Pane." msgstr "" #. (itstool) path: sect3/title #: C/index.docbook:658 msgid "Replies of Matched Articles" msgstr "" #. (itstool) path: sect3/para #: C/index.docbook:660 msgid "" "The user can pick one of the next three options to control how " "Pan will display replies of matched articles." msgstr "" #. (itstool) path: varlistentry/term #: C/index.docbook:664 C/index.docbook:701 msgid "" "In View Header Pane " "" msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:673 msgid "Show Matching Articles" msgstr "Zutreffende Artikel anzeigen" #. (itstool) path: listitem/para #: C/index.docbook:674 msgid "Show only articles that match the article view options.." msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:677 msgid "Show Matching Articles' Threads" msgstr "Stränge zutreffender Artikel anzeigen" #. (itstool) path: listitem/para #: C/index.docbook:678 msgid "" "Not only show articles that match the article view options, but also show " "all the articles in the entire thread of the matched article. This option " "will force read headers to be visible regardless of the view options." msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:683 msgid "Show Matching Articles Subthreads" msgstr "Unterstränge zutreffender Artikel anzeigen" #. (itstool) path: listitem/para #: C/index.docbook:684 msgid "" "Not only show articles that match the article view options, but also show " "articles that are replies of any matched article." msgstr "" #. (itstool) path: sect3/title #: C/index.docbook:696 msgid "Article View Matches" msgstr "N" #. (itstool) path: sect3/para #: C/index.docbook:698 msgid "" "These options control which article headers are displayed in the Header Pane." msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:710 msgid "Match Only Unread Articles" msgstr "Nur neue Artikel treffen" #. (itstool) path: listitem/para #: C/index.docbook:711 msgid "Only display articles that haven't been marked read." msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:714 msgid "Match Only Cached Articles" msgstr "Nur zwischengespeicherte Artikel treffen" #. (itstool) path: listitem/para #: C/index.docbook:715 msgid "" "Only display articles that are available in the local article cache in the " "computer's hard drive." msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:719 msgid "Match Only Complete Articles" msgstr "Nur vollständige Artikel treffen" #. (itstool) path: listitem/para #: C/index.docbook:720 msgid "" "Only binary articles that are complete (full, green puzzle piece in the " "state column) will be displayed. This also hides text articles." msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:724 msgid "Match Only My Articles" msgstr "Nur eigene Artikel treffen" #. (itstool) path: listitem/para #: C/index.docbook:725 msgid "Only articles that the user has posted will be displayed." msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:728 msgid "Match Scores of xxxx" msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:729 msgid "" "These options deal with scoring where you choose to display an article based " "on its score. Refer to for more information." msgstr "" #. (itstool) path: sect2/title #: C/index.docbook:740 msgid "Header Movement" msgstr "" #. (itstool) path: sect2/para #: C/index.docbook:741 msgid "" "Movement around the Header Pane can be controlled by several methods, " "allowing the user to easily jump around complicated discussion threads with " "minimal input. Pan was designed for mouse-less " "article viewing, so most people use the keyboard shortcuts associated with " "these menu actions. The keyboard shortcut for most menu actions is displayed " "after the menu command." msgstr "" #. (itstool) path: varlistentry/term #: C/index.docbook:747 msgid "" " Go Read More " msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:754 msgid "" "Scroll the article in the Article Pane. If the article is already scrolled " "to the bottom, grab the next article. You can customize the function of this " "key by changing Preferences " "Articles Space selects next article " "rather than next unread ." msgstr "" #. (itstool) path: varlistentry/term #: C/index.docbook:765 msgid "" " Go Read Back " msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:772 msgid "" "Scroll the article up in the Article Pane. If it's already scrolled to the " "top, grab the previous article displayed in the Thread Pane." msgstr "" #. (itstool) path: varlistentry/term #: C/index.docbook:777 msgid "" " Go Next Unread Group " msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:784 msgid "" "Skip down to the next subscribed group in the Group Pane with unread " "articles and read the first article." msgstr "" #. (itstool) path: varlistentry/term #: C/index.docbook:789 msgid "" " Go Next Group " msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:796 msgid "" "Skip down to the next subscribed group in the Group Pane and read the first " "article." msgstr "" #. (itstool) path: varlistentry/term #: C/index.docbook:800 msgid "" " Go Next Unread Article " msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:807 msgid "Read the next unread article in the Thread Pane." msgstr "" #. (itstool) path: varlistentry/term #: C/index.docbook:811 msgid "" " Go Next Article " msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:818 msgid "Read the next article, regardless of its read/unread state." msgstr "" #. (itstool) path: varlistentry/term #: C/index.docbook:822 msgid "" " Go Next Watched Article " msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:829 msgid "" "Read the next watched article. A watched article is an article with a score " "of at least 9999. Refer to for more " "information." msgstr "" #. (itstool) path: varlistentry/term #: C/index.docbook:834 msgid "" " Go Previous Article " "" msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:841 msgid "" "Read the previous article in the Thread Pane. This doesn't scroll the " "Article Pane like Go Read Back ." msgstr "" #. (itstool) path: varlistentry/term #: C/index.docbook:850 msgid "" " Go Parent Article " msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:857 msgid "Read the article for which the currently selected article is a reply." msgstr "" #. (itstool) path: varlistentry/term #: C/index.docbook:861 msgid "" " Go Next Unread Thread " msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:868 msgid "Skip to the next unread thread and read the first article." msgstr "" #. (itstool) path: varlistentry/term #: C/index.docbook:872 msgid "" " Go Next Thread " msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:879 msgid "Skip to the next thread and read the first article in that thread." msgstr "" #. (itstool) path: varlistentry/term #: C/index.docbook:883 msgid "" " Go Previous Thread " "" msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:890 msgid "Skip back to the last thread and read the last article in that thread." msgstr "" #. (itstool) path: sect2/title #: C/index.docbook:898 msgid "Header Selection" msgstr "" #. (itstool) path: sect2/para #: C/index.docbook:900 msgid "" "In order to perform an action on an article header, you must select it " "first. Use the middle mouse button to select an article. Drag the selection " "field with the mouse to select multiple articles. Hold down the " "Ctrl key while clicking articles with the middle mouse " "button to add individual articles to the selection." msgstr "" #. (itstool) path: sect2/para #: C/index.docbook:904 msgid "" "Pan also offers a number of other ways to " "efficiently select articles." msgstr "" #. (itstool) path: varlistentry/term #: C/index.docbook:908 msgid "" " Edit Select All Articles " msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:915 msgid "Select all articles in the Header Pane." msgstr "" #. (itstool) path: varlistentry/term #: C/index.docbook:919 msgid "" " Edit Add Subthreads to " "Selection " msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:926 msgid "" "Add all articles that are a reply to the selected article to the selection." msgstr "" #. (itstool) path: varlistentry/term #: C/index.docbook:930 msgid "" " Edit Add Threads to Selection " msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:937 msgid "Add the entire thread of the selected article to the selection." msgstr "" #. (itstool) path: varlistentry/term #: C/index.docbook:941 msgid "" " Edit Add Similar Articles to " "Selection " msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:948 msgid "" "With one article selected, add others articles with the same author and from " "the current thread to the selection." msgstr "" #. (itstool) path: varlistentry/term #: C/index.docbook:953 msgid "" " Edit Deselect All Articles " msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:960 msgid "Cancel the current selection." msgstr "" #. (itstool) path: varlistentry/term #: C/index.docbook:964 msgid "" " Edit Select Article Body " msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:971 msgid "Select the entire article body. You must retrieve the article first." msgstr "" #. (itstool) path: sect2/title #: C/index.docbook:979 msgid "Header Action" msgstr "" #. (itstool) path: sect2/para #: C/index.docbook:980 msgid "" "Whenever Pan downloads an article body, the data " "is saved to disk in the article cache. The article cache is a fixed-size " "buffer and when the cache has been filled, the older articles are erased to " "make room for newer ones." msgstr "" #. (itstool) path: sect2/para #: C/index.docbook:984 msgid "" "These are the actions you can perform on an article selected in the Header " "Pane." msgstr "" #. (itstool) path: varlistentry/term #: C/index.docbook:987 msgid "" " Articles Save Article " msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:994 msgid "" "Save the highlighted article to disk. When you select this option, the Save " "Articles dialog will open. From here, you can choose to:" msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:997 msgid "Save Text" msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:998 msgid "Save the text of the displayed article." msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1000 msgid "Save Attachments" msgstr "Artikelanlagen speichern" #. (itstool) path: listitem/para #: C/index.docbook:1001 msgid "Save the binary attachments of the selected article to disk." msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1003 msgid "Path" msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1004 msgid "Where in the file hierarchy to save the binary attachment or text." msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1006 msgid "Priority" msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1007 msgid "Where to add the file in the Task Manager queue." msgstr "" #. (itstool) path: varlistentry/term #: C/index.docbook:1013 msgid "" " Articles Read Article " msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1020 msgid "" "Download the body of the selected article in the Header Pane and display it " "in the Article Pane." msgstr "" #. (itstool) path: varlistentry/term #: C/index.docbook:1025 msgid "" " Articles Cache Article " msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1032 msgid "" "Download the body of the selected article in the Header Pane but do NOT " "display it in the Article Pane." msgstr "" #. (itstool) path: varlistentry/term #: C/index.docbook:1037 msgid "" " Articles Mark Article as Read " msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1044 msgid "Change the state of the article to read." msgstr "" #. (itstool) path: varlistentry/term #: C/index.docbook:1048 msgid "" " Articles Mark Article as Unread " msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1055 msgid "Change the state of the article to unread." msgstr "" #. (itstool) path: varlistentry/term #: C/index.docbook:1059 msgid "" " Articles Delete Article " msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1066 msgid "" "Delete the selected article in the current group from the article index." msgstr "" #. (itstool) path: sect1/title #: C/index.docbook:1074 msgid "Body" msgstr "" #. (itstool) path: sect1/para #: C/index.docbook:1075 msgid "The Body Pane displays the text of a selected article header." msgstr "" #. (itstool) path: sect2/title #: C/index.docbook:1078 msgid "Digital Images" msgstr "" #. (itstool) path: sect2/para #: C/index.docbook:1079 msgid "" "Some groups specialize in digital images where each binary post is a " "separate image. Pan can automatically decode and " "display these images. To display the image, select and view the article " "header as you normally would for text and the image will be displayed in the " "Body Pane." msgstr "" #. (itstool) path: sect2/title #: C/index.docbook:1086 msgid "Body Views" msgstr "" #. (itstool) path: sect2/para #: C/index.docbook:1087 msgid "" "The way information is presented in the Body Pane can be customized in " "several ways." msgstr "" #. (itstool) path: varlistentry/term #: C/index.docbook:1090 msgid "" "In View Body Pane " msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1099 msgid "Wrap Article Body" msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1100 msgid "" "Will force the text to flow into paragraphs instead of running off the edge " "of the text window. This is useful to fix badly formatted articles." msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1104 msgid "Show All Headers in Body Pane" msgstr "Alle Kopfzeilen im Nachrichteninhalt anzeigen" #. (itstool) path: listitem/para #: C/index.docbook:1105 msgid "" "The headers displayed in the Header Pane are only a small subset of the all " "the article headers. This commands will display the complete list of article " "headers in the Body Pane before the article text." msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1110 msgid "Rot 13 Selected Text" msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1111 msgid "" "A simple cipher used to hide story spoilers, joke punchlines, etc. Select a " "block of encrypted text and use this option to decode it to clear text." msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1115 msgid "Use Monospace Font" msgstr "Dicktengleiche Schrift verwenden" #. (itstool) path: listitem/para #: C/index.docbook:1116 msgid "" "Sometimes Usenet authors will create simple ASCII artwork or diagrams. By " "default, Pan uses proportional fonts for all text " "which renders ASCII artwork unreadable. By choosing this option, the text of " "the Body Pane will be displayed using the Monospace Font." msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1120 msgid "" "You can configure the monospace font in Edit " "Preferences Font ." msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1129 msgid "Show Smilies as Graphics" msgstr "Smilies als Grafiken anzeigen" #. (itstool) path: listitem/para #: C/index.docbook:1130 msgid "Change ASCII emoticons like :) into graphical versions." msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1133 msgid "Show *Bold*, _Underlined_ and /Italiced/" msgstr "*Fett*, __Unterstrichen__, und /Kursiv/ anzeigen" #. (itstool) path: listitem/para #: C/index.docbook:1134 msgid "" "Over the years, Usenet authors have devised several strategies to overcome " "the limited typographic ability of ASCII. Enabling this option will format " "the article text following these typographic hints." msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1139 msgid "Size Pictures to Fit" msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1140 msgid "" "Size digital images so they will display in the Body Pane without scrolling. " "Click on the image to view it in its original size." msgstr "" #. (itstool) path: sect1/title #: C/index.docbook:1152 msgid "Posting" msgstr "" #. (itstool) path: sect1/para #: C/index.docbook:1153 msgid "How to post articles in Pan." msgstr "Veröffentlichen von Artikeln in Pan." #. (itstool) path: sect2/title #: C/index.docbook:1158 msgid "Actions" msgstr "Aktionen" #. (itstool) path: varlistentry/term #: C/index.docbook:1161 msgid "" " Post Post to Newsgroup " msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1168 msgid "Post an article to the selected newsgroup." msgstr "" #. (itstool) path: varlistentry/term #: C/index.docbook:1172 msgid "" " Post Followup to Newsgroup " msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1179 msgid "Post a reply to the selected article and continue the thread." msgstr "" #. (itstool) path: varlistentry/term #: C/index.docbook:1183 msgid "" " Post Reply to Author in Mail " msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1190 msgid "Post a reply to the selected article via email." msgstr "" #. (itstool) path: sect2/para #: C/index.docbook:1195 msgid "" "While highlighting in the Header Pane the article header of a post that you " "posted to the news server, you can perform these two actions:" msgstr "" #. (itstool) path: varlistentry/term #: C/index.docbook:1199 msgid "" " Post Supersede Article " msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1206 msgid "" "This allows you to supersede an earlier article with another newer post." msgstr "" #. (itstool) path: varlistentry/term #: C/index.docbook:1210 msgid "" " Post Cancel Article " "" msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1217 msgid "This allows you to cancel a earlier article." msgstr "" #. (itstool) path: note/para #: C/index.docbook:1221 msgid "" "Most public news servers disable the supersede and cancel commands for " "security reasons. Make sure you are comfortable with your article before you " "post it to the news server, because in most cases it will be impossible to " "take back or alter what you have said." msgstr "" #. (itstool) path: sect2/title #: C/index.docbook:1228 msgid "Posting Profiles Dialog" msgstr "" #. (itstool) path: sect2/para #: C/index.docbook:1229 msgid "" "Posting Profiles allow the user to configure different Usenet personas that " "may be customized for particular groups." msgstr "" #. (itstool) path: sect2/para #: C/index.docbook:1231 msgid "" "The Posting Profiles dialog displays a list of " "currently configured Posting Profiles. From here you can Remove or Edit a " "profile by clicking on the profile's name and press the appropriate button. " "Clicking add will start a new profile." msgstr "" #. (itstool) path: sect3/title #: C/index.docbook:1236 msgid "Mandatory Information" msgstr "" #. (itstool) path: sect3/para #: C/index.docbook:1237 msgid "Each profile contains the following information:" msgstr "Jedes Profil enthält die folgenden Informationen:" #. (itstool) path: listitem/para #: C/index.docbook:1240 msgid "Profile Name" msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1241 msgid "The name of this profile." msgstr "Der Name dieses Profils." #. (itstool) path: listitem/para #: C/index.docbook:1244 msgid "Full Name" msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1245 msgid "The author name that will be used in the article's header." msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1248 msgid "Email Address" msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1249 msgid "The email address that will be used in the article's header." msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1252 msgid "Post Articles via" msgstr "Artikel posten über" #. (itstool) path: listitem/para #: C/index.docbook:1253 msgid "" "If multiple news servers are configured, choose which server will receive " "the article." msgstr "" #. (itstool) path: sect3/title #: C/index.docbook:1259 msgid "Signatures" msgstr "Signaturen" #. (itstool) path: sect3/para #: C/index.docbook:1260 msgid "" "A signature is a block of text that is appended to the end of every outgoing " "article. Generally it is contact information, a personal motto or a witty " "saying." msgstr "" #. (itstool) path: sect3/para #: C/index.docbook:1262 msgid "" "Click Use a Signature to activate signature support." msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1265 msgid "Text" msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1266 msgid "Type in the text you wish to use as a signature." msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1269 msgid "Text File" msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1270 msgid "" "Enter the location of the file in the disk hierarchy. The Browse button can " "assist in this." msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1273 msgid "Command" msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1274 msgid "" "Type in the command you wish to run and the output of that command will be " "captured and used as the signature text." msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1276 msgid "Example: fortune -s" msgstr "Beispiel: fortune -s" #. (itstool) path: listitem/para #: C/index.docbook:1279 msgid "PGP Signature" msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1280 msgid "" "Choose this if you want to sign or encrypt your message with PGP. The given " "email address has to match the PGP email address for this method to work." msgstr "" #. (itstool) path: note/para #: C/index.docbook:1283 msgid "" "PGP support is an optional feature and may not be available in your " "Pan build." msgstr "" #. (itstool) path: sect3/title #: C/index.docbook:1290 msgid "Optional Information" msgstr "Zusätzliche Informationen" #. (itstool) path: listitem/para #: C/index.docbook:1293 msgid "Attribution" msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1294 msgid "" "When you reply to a post, the text in the attribution box precedes the " "quoted text. The %d flag is replaced the by the date of the selected post " "while the %n flag is replaced with the author of the selected post." msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1299 msgid "Extra Headers" msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1300 msgid "This is a advanced option to add extra headers to the article." msgstr "" #. (itstool) path: sect2/title #: C/index.docbook:1308 msgid "Post Article Dialog" msgstr "" #. (itstool) path: sect2/para #: C/index.docbook:1309 msgid "" "Whenever you post an article you use the Post Article Dialog." msgstr "" #. (itstool) path: sect3/title #: C/index.docbook:1312 msgid "Composition" msgstr "" #. (itstool) path: sect3/para #: C/index.docbook:1313 msgid "" "The Post Article Dialog is composed of the following " "parts:" msgstr "" #. (itstool) path: varlistentry/term #: C/index.docbook:1316 msgid "Menubar" msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1318 msgid "The menubar contains all the commands that you need to post an article." msgstr "" #. (itstool) path: varlistentry/term #: C/index.docbook:1323 C/index.docbook:1558 msgid "Toolbar" msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1325 msgid "" "The toolbar contains a subset of the commands that you can access from the " "menubar." msgstr "" "Die Werkzeugleiste enthält eine Auswahl der Befehle, die Sie über die " "Menüleiste erreichen." #. (itstool) path: varlistentry/term #: C/index.docbook:1330 msgid "From" msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1332 msgid "Select which Posting Profile to use." msgstr "" #. (itstool) path: varlistentry/term #: C/index.docbook:1337 msgid "Subject" msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1339 msgid "" "Type in the subject of your post. If this post is a reply, this line is " "already filled-in." msgstr "" #. (itstool) path: varlistentry/term #: C/index.docbook:1345 msgid "Newsgroups" msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1347 msgid "" "A comma separated list of all the groups that will receive this article." msgstr "" #. (itstool) path: varlistentry/term #: C/index.docbook:1352 msgid "Mail To" msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1354 msgid "Enter an email address to send the article." msgstr "" #. (itstool) path: varlistentry/term #: C/index.docbook:1359 msgid "More Headers" msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1361 msgid "An advanced option to manually add more headers." msgstr "" #. (itstool) path: varlistentry/term #: C/index.docbook:1366 msgid "Text Area" msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1368 msgid "Where you enter the text of the article." msgstr "" #. (itstool) path: sect3/title #: C/index.docbook:1375 msgid "File Commands" msgstr "Dateibefehle" #. (itstool) path: sect3/para #: C/index.docbook:1376 msgid "" "These file commands are available from within the Post Article " "dialog." msgstr "" #. (itstool) path: varlistentry/term #: C/index.docbook:1379 msgid "" " File Send Article " msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1386 msgid "" "When you are done entering the article, use this command to send the article " "to the news server." msgstr "" #. (itstool) path: varlistentry/term #: C/index.docbook:1391 msgid "" " File Save Draft " msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1398 msgid "Save your current work on the article to disk." msgstr "" #. (itstool) path: varlistentry/term #: C/index.docbook:1402 msgid "" " File Open Draft " msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1409 msgid "Load a previous draft and continue editing." msgstr "" #. (itstool) path: sect3/title #: C/index.docbook:1416 msgid "Editing Commands" msgstr "Bearbeitungsbefehle" #. (itstool) path: sect3/para #: C/index.docbook:1417 msgid "" "This option is available from within the Post Article Dialog." msgstr "" #. (itstool) path: varlistentry/term #: C/index.docbook:1420 msgid "" " Edit Manage Posting Profiles " msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1427 msgid "See Posting Profiles." msgstr "" #. (itstool) path: varlistentry/term #: C/index.docbook:1431 msgid "" " Edit Run Editor " msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1438 msgid "" "Starts an external editor. Type in your post in the external editor as you " "normally would and save your work. The external editor will close and the " "text that was entered into that editor will be located in the text area." msgstr "" #. (itstool) path: varlistentry/term #: C/index.docbook:1444 msgid "" " Edit Set Editor " msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1451 msgid "Choose which external editor to use." msgstr "" #. (itstool) path: varlistentry/term #: C/index.docbook:1455 msgid "" " Edit Manage Editor List " msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1462 msgid "Setup another external editor." msgstr "" #. (itstool) path: varlistentry/term #: C/index.docbook:1466 msgid "" " Edit Cut, Copy and Paste " msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1473 msgid "The standard GUI text functions." msgstr "" #. (itstool) path: varlistentry/term #: C/index.docbook:1477 msgid "" " Edit Wrap Now " msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1484 msgid "" "Force the text flow into paragraphs instead of running off the edge of the " "text area." msgstr "" #. (itstool) path: varlistentry/term #: C/index.docbook:1489 msgid "" " Edit Wrap Text " msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1496 msgid "Set this option to have text automatically wrap when entered." msgstr "" #. (itstool) path: varlistentry/term #: C/index.docbook:1500 msgid "" " Edit Check Spelling " "" msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1507 msgid "" "Set this option and possible spelling errors in the text area will marked " "with a red wavy line." msgstr "" #. (itstool) path: varlistentry/term #: C/index.docbook:1511 msgid "" " Edit ROT 13 " msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1518 msgid "" "ROT13 is a simple cipher to hide story spoilers, joke punchlines, etc. " "Select the text to cipher and use this command." msgstr "" #. (itstool) path: sect1/title #: C/index.docbook:1530 msgid "Tasks" msgstr "Aufgaben" #. (itstool) path: sect1/para #: C/index.docbook:1531 msgid "" "Certain tasks performed by Pan, like downloading " "binary posts or grabbing new headers for a group, can take a long time. " "These tasks are queued and performed in the background while " "Pan is processing other tasks like grabbing an " "article." msgstr "" #. (itstool) path: sect2/title #: C/index.docbook:1537 msgid "Cancel Last Task" msgstr "Letzte Aufgabe widerrufen" #. (itstool) path: sect2/para #: C/index.docbook:1538 msgid "" "You can quickly cancel the last task added to the task queue by selecting: " " File Cancel Last Task ." msgstr "" #. (itstool) path: sect2/title #: C/index.docbook:1548 msgid "Task Manager" msgstr "Aufgabenverwaltung" #. (itstool) path: sect2/para #: C/index.docbook:1549 msgid "" "Background tasks can be manipulated by using the Task Manager. The Task " "Manager can be accessed with File " "Task Manger or by left-clicking in " "the task area of the Status Bar at the bottom of the Pan screen." msgstr "" #. (itstool) path: sect2/para #: C/index.docbook:1555 msgid "The Task Manger window is composed of the following parts:" msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1560 msgid "" "The toolbar contains all the commands you need to manipulate the tasks in " "the Task Manger Window." msgstr "" #. (itstool) path: varlistentry/term #: C/index.docbook:1565 msgid "Informational Area" msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1567 msgid "" "The Informational Area displays the number of queued tasks, the amount of " "data that needs to downloaded to complete the queued tasks, the current " "download rate and the estimated time needed to complete the queued tasks." msgstr "" #. (itstool) path: varlistentry/term #: C/index.docbook:1573 msgid "Task List" msgstr "Aufgabenliste" #. (itstool) path: listitem/para #: C/index.docbook:1575 msgid "A list of queued tasks. Each row is a separate task." msgstr "" #. (itstool) path: sect2/para #: C/index.docbook:1579 msgid "" "In order to manipulate a task, click on it and the row will be highlighted. " "Then click on one of the buttons in the toolbar." msgstr "" #. (itstool) path: tip/para #: C/index.docbook:1581 msgid "" "If Pan is shutdown whiles tasks are still waiting " "in the task manager, the task list is saved to disk and resumed when " "Pan is restarted. This, however, is not true for " "upload tasks in the current version." msgstr "" #. (itstool) path: sect2/title #: C/index.docbook:1587 msgid "NZB Files" msgstr "NZB-Dateien" #. (itstool) path: sect2/para #: C/index.docbook:1588 msgid "" "Pan saves its task list in $HOME/.pan2/" "tasks.nzb file. You can import other task lists into " "Pan by choosing File Import NZB Files ." msgstr "" #. (itstool) path: sect1/title #: C/index.docbook:1600 msgid "Scoring" msgstr "Wertung" #. (itstool) path: sect1/para #: C/index.docbook:1601 msgid "" "Scoring allows the user to give an article a rating based on user-defined " "scoring rules. This rating can then be used by Pan to perform score-based actions." msgstr "" #. (itstool) path: sect1/para #: C/index.docbook:1604 msgid "" "When a group's article headers are first downloaded from the news server, " "all the articles have a score of 0. Then the list of scoring rules in the " "score file are applied to each article. The score file rules might give an " "article from John Smith a high score, while articles with a subject line " "containing the phrase \"For Sale\" a negative score." msgstr "" #. (itstool) path: sect2/title #: C/index.docbook:1612 msgid "Scoring Actions" msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1615 msgid "" "View an article by using View " "Header Pane Match Scores of xxxx . The default is to hide articles (by not " "matching) with a score of -9999. and view all other scores." msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1624 msgid "" "Change the background and text color of the score column in the Header Pane. " "This is defined in Edit " "Preferences Colors ." msgstr "" #. (itstool) path: sect2/para #: C/index.docbook:1613 msgid "" "Pan can perform two actions based on an article's " "score: <_:itemizedlist-1/>" msgstr "" #. (itstool) path: sect2/title #: C/index.docbook:1638 msgid "Adding Scoring Rules" msgstr "" #. (itstool) path: sect2/para #: C/index.docbook:1640 msgid "" "There are several ways to add rules to the score file. Select an article in " "the Header Pane and then select Articles " "Watch Thread . This rule sets the " "score of any post located in the thread of the selected article to 9999." msgstr "" #. (itstool) path: sect2/para #: C/index.docbook:1649 msgid "" "The opposite of the above rule is Articles " "Ignore Thread . This rule sets the " "score of any post located in the thread of the selected article to -9999." msgstr "" #. (itstool) path: sect2/para #: C/index.docbook:1657 msgid "" "Both of these scoring rules only work in the selected group and expire in " "one month." msgstr "" #. (itstool) path: sect2/para #: C/index.docbook:1659 msgid "" "Selecting an article and selecting Articles " "Ignore Author will open the " "New Scoring Rule dialog." msgstr "" #. (itstool) path: sect2/para #: C/index.docbook:1666 msgid "" "The default of this scoring rule is to score all the posts of the author of " "the selected article -9999 for the next month in the selected group. By " "clicking on various fields and selecting different options in the " "New Scoring Rule dialog, you can customize the rule " "further. For instance, instead of having the rule expire in one month, you " "can have the rule last forever. Also note that you can make the rule add to " "the score of an article, making it a watch rule. So the name \"Ignore Author" "\" can be somewhat of a misnomer." msgstr "" #. (itstool) path: sect2/para #: C/index.docbook:1672 msgid "" "When finished, click Add and Rescore to close the " "dialog box." msgstr "" #. (itstool) path: sect2/para #: C/index.docbook:1674 msgid "" "Selecting an article and selecting Articles " "Add a Scoring Rule is very similar to " "the Ignore Author section described above as it opens the same " "New Scoring Rule dialog, just with different " "defaults. Construct a rule in the same fashion as described above." msgstr "" #. (itstool) path: sect2/title #: C/index.docbook:1686 msgid "Editing or Deleting Scoring Rules" msgstr "" #. (itstool) path: sect2/para #: C/index.docbook:1688 msgid "" "Selecting an article that is currently being scored and choosing " " Articles Edit Article's Watch/" "Ignore/Score will open the Article's " "Scores dialog box. From this dialog you can manipulate the " "scoring rule for the currently selected article. Each rule will have its own " "row describing the scoring action (plus or minus points), locations and line " "number of this rule in the score file and the texts of the rule. Select the " "rule and click Add button to alter the rule or " "Remove button to delete the rule from the score file. " "Click Close and Rescore when finished." msgstr "" #. (itstool) path: sect2/title #: C/index.docbook:1703 msgid "Advanced Scoring" msgstr "" #. (itstool) path: sect2/para #: C/index.docbook:1705 msgid "" "The scoring file is located at $HOME/.pan2/Scoring. " "Advanced users might want to edit this file directly with a text editor to " "create advanced scoring rules that are difficult or impossible to construct " "from the New Scoring Rule dialog. The format of the " "scoring rules is similar to the application slrn, " "but be aware that not all slrn scoring functions " "will work in Pan." msgstr "" #. (itstool) path: sect2/para #: C/index.docbook:1710 msgid "" "The slrn scoring functions are described in the document slrn - Scoring." msgstr "" #. (itstool) path: sect1/title #: C/index.docbook:1717 msgid "Customization" msgstr "Anpassen" #. (itstool) path: sect1/para #: C/index.docbook:1718 msgid "" "This section describes how certain features or actions in Pan can be customized." msgstr "" #. (itstool) path: sect2/title #: C/index.docbook:1722 msgid "Behavior" msgstr "Verhalten" #. (itstool) path: sect2/para #: C/index.docbook:1723 msgid "" "Many of the default actions of Pan, such as mouse " "clicks, actions when entering or leaving a group and the action of " "Space can be altered." msgstr "" #. (itstool) path: varlistentry/term #: C/index.docbook:1727 msgid "" "In Edit Preferences " "Behavior " msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1737 msgid "Mouse" msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1738 msgid "" "The two boxes of the mouse section change the default action of the left " "mouse button. If unselected, you would have to double click on a group or " "article to activate it." msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1742 msgid "Groups" msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1743 msgid "" "The selections in the group section control what commands Pan will automatically run when manipulating groups." msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1747 msgid "" "The first box, when activated, will automatically get new headers for all " "subscribed groups whenever Pan is started. This is the equivalent of using " " Groups Get New Headers in " "Subscribed Groups from the menubar." msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1757 msgid "" "The next box, when activated, will automatically get new headers when " "entering a group. This is the equivalent of using " "Groups Get New Headers in Selected Group from the menubar." msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1767 msgid "" "The next box, when activated, will mark the entire group read when leaving a " "group. This is the equivalent of using Groups Mark Group Read from the " "menubar." msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1777 msgid "" "The last box in the Groups section, when activated, will expand all threads " "in the Header Pane when entering a group." msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1783 msgid "Articles" msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1784 msgid "" "The first option, when activated, makes Space select the " "next article rather than the next unread article. This is handy if you are " "viewing a thread with read and unread articles mixed together." msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1787 msgid "The next option activates smooth scrolling in the Article Pane." msgstr "" #. (itstool) path: sect2/title #: C/index.docbook:1796 msgid "GUI Composition" msgstr "" #. (itstool) path: sect2/para #: C/index.docbook:1797 msgid "" "The layout and view of the Group, Header and Body Panes in Pan can be customized in several ways." msgstr "" #. (itstool) path: varlistentry/term #: C/index.docbook:1801 msgid "Pane Layout" msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1803 msgid "" "In Edit Preferences " "Layout the orientation of the " "Groups, Header and Body Panes can be manipulated." msgstr "" #. (itstool) path: varlistentry/term #: C/index.docbook:1813 msgid "Tabbed Layout" msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1815 msgid "" "Instead of having all three panes share the Pan " "main window at one time, another view, called Tabbed Layout, can be " "activated by choosing View " "Layout Tabbed Layout . Now, only one of the three Panes will be displayed at a time. " "Each Pane is brought to the front of other Panes by clicking on its tab " "located directly under the tool bar or by pressing \"1\", \"2\" or \"3\" for " "the Group, Header or Body Pane respectively." msgstr "" #. (itstool) path: varlistentry/term #: C/index.docbook:1828 msgid "Show/Hide Panes" msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1830 msgid "" "You can hide a specific Pane by choosing from View Layout and using the " "selection box to show/hide each of the Panes." msgstr "" #. (itstool) path: varlistentry/term #: C/index.docbook:1839 msgid "Fonts" msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1841 msgid "" "Choose Edit Preferences Fonts to select a font." msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1848 msgid "" "Pan can use the monospace font in the article " "Pane, if activated." msgstr "" #. (itstool) path: varlistentry/term #: C/index.docbook:1852 msgid "Colors" msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1854 msgid "" "Choose Edit Preferences Colors to customize the " "colors used in Pan." msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1861 msgid "" "The first section allows you to customize the colors used by scoring in the " "Header Pane. See for more information on how " "to use this feature." msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1863 msgid "" "The second section allows you to customize the colors used in the Body Pane." msgstr "" #. (itstool) path: sect2/title #: C/index.docbook:1870 msgid "External Applications" msgstr "Externe Anwendungen" #. (itstool) path: sect2/para #: C/index.docbook:1871 msgid "" "In this section you set up external applications that Pan can use." msgstr "" #. (itstool) path: varlistentry/term #: C/index.docbook:1874 msgid "" "In Edit Preferences " "Applications :" msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1884 msgid "Web Browser" msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1885 msgid "" "Click the Web Button to choose which external application to launch when " "clicking on an HTML link." msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1889 msgid "Mail Reader" msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1890 msgid "" "Choose which external application to launch when clicking on an email " "address or when sending a post via email." msgstr "" #. (itstool) path: sect2/para #: C/index.docbook:1897 msgid "" "To set up an external text editor, choose Post Post to Newsgroup . From the " "Post Article dialog menubar, choose Edit " "Set Editor " msgstr "" #. (itstool) path: sect2/title #: C/index.docbook:1912 msgid "Article Cache Size" msgstr "Größe des Artikel-Zwischenspeichers" #. (itstool) path: sect2/para #: C/index.docbook:1913 msgid "" "The article cache is a fixed-size disk buffer where Pan stores articles when they are downloaded from a news server. If " "the user downloads a large amount of binary attachments, the default cache " "size might be inadequate." msgstr "" #. (itstool) path: sect2/para #: C/index.docbook:1916 msgid "" "The article cache size can be changed in Edit Preferences Behavior Article Cache " msgstr "" #. (itstool) path: sect2/title #: C/index.docbook:1929 msgid "News Servers" msgstr "News-Server" #. (itstool) path: sect2/para #: C/index.docbook:1930 msgid "" "Pan must connect to a special computer called a " "news server. The news server is the gateway used to access Usenet." msgstr "" #. (itstool) path: sect2/para #: C/index.docbook:1932 msgid "" "Choose Edit Edit News Servers and the Servers dialog will " "appear. Click on a server name and you can edit or remove it via the " "buttons. Click the Add button to add another server." msgstr "" #. (itstool) path: sect2/para #: C/index.docbook:1940 msgid "" "When you add or edit an existing server, the Edit a Server's " "Settings dialog will appear." msgstr "" #. (itstool) path: sect2/para #: C/index.docbook:1942 msgid "In the location section:" msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1946 msgid "Address" msgstr "Adresse" #. (itstool) path: listitem/para #: C/index.docbook:1947 msgid "The internet address of the server." msgstr "Die Internetadresse des Servers." #. (itstool) path: listitem/para #: C/index.docbook:1950 msgid "Port" msgstr "Port" #. (itstool) path: listitem/para #: C/index.docbook:1951 msgid "" "The port of the server. Port 119 is the standard port number for unsecured " "NNTP connections, port 563 is for TLS/SSL connections." msgstr "" #. (itstool) path: sect2/para #: C/index.docbook:1954 msgid "" "The next section is the login information for the server. If you server " "requires a username and password, enter them here. If the server allows " "anonymous login or does not require authentication, just let these fields " "blank." msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1959 msgid "Username" msgstr "Benutzername" #. (itstool) path: listitem/para #: C/index.docbook:1960 msgid "Enter the login name if required." msgstr "Geben Sie den Benutzernamen ein, sobald Sie danach gefragt werden." #. (itstool) path: listitem/para #: C/index.docbook:1963 msgid "Password" msgstr "Passwort" #. (itstool) path: listitem/para #: C/index.docbook:1964 msgid "Enter the password if required." msgstr "Geben Sie das Passwort ein, sobald Sie danach gefragt werden." #. (itstool) path: note/para #: C/index.docbook:1966 msgid "" "Pan can store saved passwords in a password " "storage service provided by GNOME Keyring or " "libsecret. To enable this feature, use " "Edit PreferencesMiscellaneousSave passwords " "in password storage. Password storage support is an " "optional feature and may not be available in your Pan build." msgstr "" #. (itstool) path: sect2/para #: C/index.docbook:1974 msgid "" "The next section allows you to enter certain Pan " "settings that are server specific." msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1977 msgid "Connection Limit" msgstr "Verbindungslimit" #. (itstool) path: listitem/para #: C/index.docbook:1978 msgid "" "Pan can open multiple connections to a server so " "the user can perform simultaneous actions like download a binary attachment " "will reading articles in a text group." msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1980 msgid "" "In order to follow the GNKSA rules, the maximum number of connections Pan can have open with a server is 4." msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1984 msgid "Expire Old Articles" msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1985 msgid "" "From this toggle box, you can pick a time when Pan will expire old articles and remove them from its article index." msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1989 msgid "Server Rank" msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1990 msgid "" "When you have more than 1 server configured, Pan " "uses server rank to decide from which server to download the article. Only " "after all primary servers have been tried for the article will " "Pan use the fallback servers." msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1993 msgid "" "The reason for this feature is that a user might have access to a free " "server and also have access to a byte-limited premium server. Server ranking " "allows Pan to use the fallback server as little " "as possible." msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1998 msgid "TLS (SSL) Options" msgstr "TLS-(SSL-)Optionen" #. (itstool) path: listitem/para #: C/index.docbook:1999 msgid "" "If security and privacy are of concern, choose secured connections if the " "server supports it." msgstr "" #. (itstool) path: note/para #: C/index.docbook:2001 msgid "" "TLS (SSL) support is an optional feature and may not be available in your " "Pan build." msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:2005 msgid "Always trust this server's certificate" msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:2006 msgid "" "If you want to trust the server regardless of the authenticity of its " "certificate, you can enable this option. Use with caution!" msgstr "" pan-0.162/help/es/000077500000000000000000000000001475412772400136545ustar00rootroot00000000000000pan-0.162/help/es/es.po000066400000000000000000004055421475412772400146350ustar00rootroot00000000000000# Spanish translation for pan2. # Copyright (C) 2012 pan2's COPYRIGHT HOLDER # This file is distributed under the same license as the pan2 package. # Daniel Mustieles , 2012-2019. # Daniel Mustieles García , 2022. # msgid "" msgstr "" "Project-Id-Version: pan2 master\n" "POT-Creation-Date: 2022-07-09 10:13+0000\n" "PO-Revision-Date: 2022-06-06 10:14+0200\n" "Last-Translator: Miguel Ángel Nieto \n" "Language-Team: Spanish - Spain \n" "Language: es_ES\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Poedit 3.0.1\n" #. Put one translator per line, in the form NAME , YEAR1, YEAR2 msgctxt "_" msgid "translator-credits" msgstr "" "Daniel Mustieles , 2012 - 2019\n" "Miguel Ángel Nieto , 2022" #. (itstool) path: abstract/para #: C/index.docbook:41 msgid "Pan is a powerful and user-friendly USENET newsreader for GTK+." msgstr "Pan es un lector de noticias de Usenet potente y amigable para GTK+." #. (itstool) path: articleinfo/title #: C/index.docbook:44 msgid "Pan Manual" msgstr "Manual de Pan" #. (itstool) path: articleinfo/copyright #: C/index.docbook:46 msgid "2006 Douglas Bollinger" msgstr "2006 Douglas Bollinger" #. (itstool) path: articleinfo/copyright #: C/index.docbook:51 msgid "2011 Heinrich Müller" msgstr "2011 Heinrich Müller" #. (itstool) path: articleinfo/copyright #: C/index.docbook:56 msgid "2011 Petr Kovar" msgstr "2011 Petr Kovar" #. (itstool) path: authorgroup/author #: C/index.docbook:83 msgid "" "Douglas Bollinger " msgstr "" "Douglas Bollinger " #. (itstool) path: revdescription/para #: C/index.docbook:124 C/index.docbook:132 msgid "Petr Kovar" msgstr "Petr Kovar" #. (itstool) path: revhistory/revision #: C/index.docbook:120 msgid "" "V 0.3 April 2017 <_:revdescription-1/>" msgstr "" "v0.3 Abril de 2017 <_:revdescription-1/>" #. (itstool) path: revdescription/para #: C/index.docbook:131 msgid "Heinrich Müller" msgstr "Heinrich Müller" #. (itstool) path: revhistory/revision #: C/index.docbook:127 msgid "" "V 0.2 January 2011 <_:revdescription-1/>" msgstr "" "v0.2 Enero de 2011 <_:revdescription-1/>" #. (itstool) path: revdescription/para #: C/index.docbook:139 msgid "Douglas Bollinger" msgstr "Douglas Bollinger" #. (itstool) path: revhistory/revision #: C/index.docbook:135 msgid "" "V 0.1 December 2006 <_:revdescription-1/>" msgstr "" "v0.1 Diciembre de 2006 <_:" "revdescription-1/>" #. (itstool) path: legalnotice/title #: C/index.docbook:150 msgid "Feedback" msgstr "Comentarios" #. (itstool) path: legalnotice/para #: C/index.docbook:151 msgid "" "To report a bug or make a suggestion regarding the Pan application or this manual, follow the directions in the Pan Contact Page." msgstr "" "Para informar de un error o hacer una sugerencia sobre la aplicación " "Pan o este manual, siga las indicaciones que " "aparecen en la página de " "contacto de Pan." #. (itstool) path: article/indexterm #: C/index.docbook:160 msgid "Pan" msgstr "Pan" #. (itstool) path: article/indexterm #: C/index.docbook:163 msgid "pan" msgstr "pan" #. (itstool) path: sect1/title #: C/index.docbook:172 msgid "Introduction" msgstr "Introducción" #. (itstool) path: sect1/para #: C/index.docbook:173 msgid "" "The Pan application enables you to read and post " "articles and binaries on Usenet." msgstr "" "La aplicación Pan le permite leer y enviar " "artículos y binarios a Usenet." #. (itstool) path: sect1/title #: C/index.docbook:179 msgid "Getting Started" msgstr "Cómo empezar" #. (itstool) path: sect1/para #: C/index.docbook:180 msgid "" "This section provides information on how to start Pan, and describes the Pan user " "interface." msgstr "" "En este apartado se ofrece información acerca de cómo iniciar " "Pan y se describe la interfaz de usuario de " "Pan." #. (itstool) path: sect2/title #: C/index.docbook:183 msgid "To Start Pan" msgstr "Para iniciar Pan" #. (itstool) path: sect2/para #: C/index.docbook:184 msgid "" "How to start Pan depends on your desktop " "environment." msgstr "" "La manera de iniciar Pan depende de su entorno de " "escritorio." #. (itstool) path: varlistentry/term #: C/index.docbook:188 msgid "The GNOME Desktop Environment" msgstr "El entorno de escritorio GNOME" #. (itstool) path: listitem/para #: C/index.docbook:190 msgid "" "Press the Super key to enter the Activities Overview, type " "pan, and then press Enter." msgstr "" "Pulse la teclaSúper para abrir la vista de Actividades, " "escriba pan, y pulse Intro." #. (itstool) path: varlistentry/term #: C/index.docbook:196 msgid "Command line" msgstr "Linea de comandos" #. (itstool) path: listitem/para #: C/index.docbook:198 msgid "" "To start Pan from a command line, type the " "following command, then press Enter:" msgstr "" "Para iniciar Pan desde la línea de comandos, " "escriba el siguiente comando y a continuación pulse Intro:" #. (itstool) path: listitem/screen #: C/index.docbook:200 #, no-wrap msgid "pan" msgstr "pan" #. (itstool) path: sect2/title #: C/index.docbook:209 msgid "When You Start Pan" msgstr "Al iniciar Pan" #. (itstool) path: sect2/para #: C/index.docbook:210 msgid "" "When you start Pan, the following window is " "displayed:" msgstr "" "Al iniciar Pan, se muestra la siguiente ventana:" #. (itstool) path: figure/title #: C/index.docbook:214 msgid "Pan Main Window" msgstr "Ventana principal de Pan" #. (itstool) path: imageobject/imagedata #. This is a reference to an external file such as an image or video. When #. the file changes, the md5 hash will change to let you know you need to #. update your localized copy. The msgstr is not used at all. Set it to #. whatever you like once you have updated your copy of the file. #: C/index.docbook:217 msgctxt "_" msgid "" "external ref='figures/pan_window.png' md5='c9415a98935ef2e2568797388206877c'" msgstr "" "external ref='figures/pan_window.png' md5='c9415a98935ef2e2568797388206877c'" #. (itstool) path: screenshot/mediaobject #: C/index.docbook:216 msgid "" " " " This is the Pan main window " msgstr "" " " " Esta es la ventana principal de " "Pan " #. (itstool) path: sect2/para #: C/index.docbook:236 msgid "" "The main Pan window contains the following " "elements:" msgstr "" "La ventana principal de Pan contiene los " "siguientes elementos:" #. (itstool) path: varlistentry/term #: C/index.docbook:240 msgid "Menubar" msgstr "Barra de menú" #. (itstool) path: listitem/para #: C/index.docbook:242 msgid "" "The menubar contains all the commands that you need to run Pan." msgstr "" "La barra de menú contiene todos los comandos que necesita para ejecutar " "Pan." #. (itstool) path: varlistentry/term #: C/index.docbook:247 msgid "Toolbar" msgstr "Barra de herramientas" #. (itstool) path: listitem/para #: C/index.docbook:249 msgid "" "The toolbar contains a subset of the commands that you can access from the " "menubar. It also contains two textboxes that allow you to limit the number " "of groups and/or the number of articles displayed." msgstr "" "La barra de herramientas contiene un subconjunto de los comandos a los que " "puede acceder desde la barra de menú. También contiene dos cajas de texto " "que le permiten limitar el número de grupos y/o el número de artículos " "mostrados." #. (itstool) path: varlistentry/term #: C/index.docbook:255 msgid "Group Pane" msgstr "Panel de grupo" #. (itstool) path: listitem/para #: C/index.docbook:257 msgid "" "The Group Pane displays a list of all the newsgroups available on the " "server. This list is split into two groups: Subscribed Groups are a user-" "selected list of favorite groups, Other Groups are the rest of the available " "groups from the server." msgstr "" "El panel de grupo muestra una lista de todos los grupos de noticias " "disponibles en el servidor. Esta lista se divide en dos grupos: los grupos " "suscritos son una lista de grupos favoritos seleccionados por el usuario, " "otros grupos son el resto de los grupos disponibles del servidor." #. (itstool) path: varlistentry/term #: C/index.docbook:264 msgid "Header Pane" msgstr "Panel de cabecera" #. (itstool) path: listitem/para #: C/index.docbook:266 msgid "" "The Header Pane displays a list of all the individual article headers " "available in the selected group. The Header Pane is highly customizable via " "sorting, threading and scoring." msgstr "" "El panel de cabecera muestra una lista de todas las cabeceras de artículos " "individuales disponibles en el grupo seleccionado. El panel de cabeceras es " "muy personalizable a través de la clasificación, hilos y puntuación." #. (itstool) path: varlistentry/term #: C/index.docbook:272 msgid "Body Pane" msgstr "Panel del cuerpo" #. (itstool) path: listitem/para #: C/index.docbook:274 msgid "The Body Pane displays the text of the selected article header." msgstr "" "El panel del cuerpo muestra el texto de la cabecera del artículo " "seleccionado." #. (itstool) path: varlistentry/term #: C/index.docbook:279 msgid "Status Bar" msgstr "Barra de estado" #. (itstool) path: listitem/para #: C/index.docbook:281 msgid "" "The Status Bar displays information about current Pan activity:" msgstr "" "La barra de estado muestra información sobre la actividad actual de " "Pan:" #. (itstool) path: listitem/para #: C/index.docbook:284 msgid "Current number of connections to the server" msgstr "Número de conexiones actuales al servidor" #. (itstool) path: listitem/para #: C/index.docbook:285 msgid "Number of uncompleted tasks in the Task Manager" msgstr "Número de tareas sin completar en el Gestor de tareas" #. (itstool) path: listitem/para #: C/index.docbook:286 msgid "Completed percentage of current tasks" msgstr "Porcentaje completado de las tareas actuales" #. (itstool) path: listitem/para #: C/index.docbook:287 msgid "Error status of the event log" msgstr "" #. (itstool) path: sect2/para #: C/index.docbook:292 msgid "" "When you right-click in the Pan window, the " "application displays a popup menu. The popup menu contains the most common " "commands for whichever pane you clicked." msgstr "" #. (itstool) path: sect2/para #: C/index.docbook:294 msgid "" "Like other applications, actions in Pan can be " "performed in several ways: with the menu, with the toolbar or with shortcut " "keys. The shortcut key for most menu items is shown in the menu itself, " "following the menu command." msgstr "" #. (itstool) path: sect1/title #: C/index.docbook:304 msgid "Usenet in a Nutshell" msgstr "Usenet en pocas palabras" #. (itstool) path: sect1/para #: C/index.docbook:305 msgid "Knowledge about how Usenet works will make using Pan easier." msgstr "" "El conocimiento sobre el funcionamiento de Usenet hará el uso de Pan más " "fácil." #. (itstool) path: sect2/title #: C/index.docbook:307 msgid "Description" msgstr "Descripción" #. (itstool) path: sect2/para #: C/index.docbook:308 msgid "" "Usenet is a distributed discussion system. Using a special program called a " "newsreader, a user accesses a news server to read and post email-like " "messages called articles. These articles are then exchanged back and forth " "with other news servers throughout the world. In this way, articles " "propagate from one news server to another throughout the entire Usenet " "system." msgstr "" "Usenet es un sistema de debate distribuido. Usando un programa especial " "llamado lector de noticias un usuario accede a un servidor de noticias para " "leer y publicar mensajes similares a correos electrónicos llamados " "artículos. Estos artículos luego se intercambian con otros servidores de " "noticias en todo el mundo. De esta forma los artículos se propagan de un " "servidor de noticias a otro a través de todo el sistema de Usenet." #. (itstool) path: sect2/title #: C/index.docbook:314 msgid "Organization" msgstr "Organización" #. (itstool) path: sect2/para #: C/index.docbook:315 msgid "" "Articles are organized into categories called groups. In discussion groups, " "most articles are responses to another article. The set of articles which " "can be traced to one single non-reply article is called a thread. When " "articles are organized into threads, it is much easier to follow a single " "discussion." msgstr "" "Los artículos se organizan en categorías denominadas grupos. En los grupos " "de discusión, la mayoría de los artículos son respuestas a otro artículo. El " "conjunto de artículos que se pueden rastrear hasta un solo artículo sin " "respuesta se denomina hilo. Cuando los artículos están organizados en hilos, " "es mucho más fácil seguir una sola discusión." #. (itstool) path: sect2/title #: C/index.docbook:320 msgid "Article Headers" msgstr "Cabeceras de artículos" #. (itstool) path: sect2/para #: C/index.docbook:321 msgid "" "Articles are routed around Usenet based on the information contained in the " "article header, which is the first part of an article that contains " "information like the subject, author, date and routing information. To save " "time and bandwidth, most newsreaders first download just the article headers " "to sort and thread them. The user selects an article of interest from the " "list of headers and then downloads the article body to read." msgstr "" "Los artículos se enrutan por Usenet en función de la información contenida " "en la cabecera del artículo, que es la primera parte de un artículo que " "contiene información como el asunto, el autor, la fecha y la información de " "enrutamiento. Para ahorrar tiempo y ancho de banda la mayoría de los " "lectores de noticias primero descargan solo los encabezados de los artículos " "para ordenarlos y agruparlos el hilos. El usuario selecciona un artículo de " "interés de la lista de cabeceras y luego descarga el cuerpo del artículo " "para leerlo." #. (itstool) path: sect2/title #: C/index.docbook:328 msgid "Binary Data" msgstr "Datos binarios" #. (itstool) path: sect2/para #: C/index.docbook:329 msgid "" "Usenet was originally created to distribute text content encoded in 7-bit " "ASCII. With additional encoding programs, multiple posts per chunk and other " "various tricks, it became possible to send binary data through Usenet. " "Groups that allow for binary content or binaries are called binary groups." msgstr "" "Usenet se creó originalmente para distribuir contenido de texto codificado " "en ASCII de 7 bits. Con programas de codificación adicionales, múltiples " "publicaciones por fragmento y otros trucos fue posible enviar datos binarios " "a través de Usenet. Los grupos que permiten contenido binario o binarios se " "denominan grupos binarios." #. (itstool) path: sect1/title #: C/index.docbook:338 msgid "Basic Usage" msgstr "Uso básico" #. (itstool) path: sect1/para #: C/index.docbook:339 msgid "" "This section is an overview on how to perform basic Usenet actions with " "Pan." msgstr "" "Esta sección muestra una visión general de cómo realizar ciertas acciones " "básicas con Pan." #. (itstool) path: sect2/title #: C/index.docbook:344 msgid "Set Up a News Server" msgstr "Configurar un servidor de noticias" #. (itstool) path: sect2/para #: C/index.docbook:345 msgid "" "When you start Pan for the first time, the " "Add a Server dialog is displayed." msgstr "" "Cuando inicia Pan por primera vez, se muestra el " "diálogo para Añadir un servidor." #. (itstool) path: sect2/para #: C/index.docbook:347 msgid "" "At this point, you must enter the connection information for the server you " "wish to access. After you enter this information, Pan will contact the server and download a list of all the groups " "the server carries and save it to disk." msgstr "" "En este punto debe introducir la información de conexión para el servidor al " "que desea acceder. Después de esta información, Pan contactará el servidor y descargará una lista con todos los " "grupos que dispone y los guardará en el disco." #. (itstool) path: sect2/para #: C/index.docbook:351 msgid "" "Refer to for more detailed " "information." msgstr "" "Consulte la para obtener información " "más detallada." #. (itstool) path: sect2/title #: C/index.docbook:357 msgid "Selecting a News Group" msgstr "Seleccionar un grupo de noticias" #. (itstool) path: sect2/para #: C/index.docbook:358 msgid "" "The Group Pane contains a list of all the news groups available on the " "server. Scroll through the list and enter a group by clicking on its name." msgstr "" "El panel de grupo contiene una lista de todos los grupos de noticias " "disponibles en el servidor. Desplácese por la lista y entre en un grupo " "pulsando en su nombre." #. (itstool) path: sect2/para #: C/index.docbook:361 msgid "" "If this is the first time you have entered this group, you will be prompted " "on how many article headers you wish to retrieve from the server. You can " "choose to retrieve all article headers available for that group or limit the " "retrieval by either quantity of articles or number of days." msgstr "" "Si es la primera vez que ingresa a este grupo se le preguntará cuántas " "cabeceras de artículos desea recuperar del servidor. Puede optar por " "recuperar todas las cabeceras de artículos disponibles para ese grupo o " "limitar la recuperación por cantidad de artículos o número de días." #. (itstool) path: sect2/para #: C/index.docbook:365 msgid "" "After making a selection from this dialog, Pan " "will download the article headers for the selected group and save them " "locally on the computer." msgstr "" "Después de hacer una selección desde este cuadro de diálogo " "Pan descargará las cabeceras de los artículos " "para el grupo seleccionado y los guardará localmente en el equipo." #. (itstool) path: note/para #: C/index.docbook:368 msgid "" "Depending on the news server, certain groups might be \"dead\" and have no " "headers available for download." msgstr "" "Dependiendo del servidor de noticias, algunos grupos podrían estar «muertos» " "y no tener cabeceras disponibles para descargar." #. (itstool) path: sect2/para #: C/index.docbook:371 msgid "" "After article header retrieval, the group name in the Group Pane will turn " "bold, which means there are unread articles in that particular group. Also " "the number of unread articles in the group will be displayed in parenthesis " "following the group name." msgstr "" "Después de la recuperación de la cabecera del artículo el nombre del grupo " "en el panel de grupo se pondrá en negrita, lo que significa que hay " "artículos sin leer en ese grupo en particular. Además, el número de " "artículos no leídos en el grupo se mostrará entre paréntesis después del " "nombre del grupo." #. (itstool) path: sect2/para #: C/index.docbook:375 msgid "" "It's not unusual for a server to have tens of thousands of groups, but " "usually a user is only interested in a few. To better keep track of the " "interesting groups, select the group name by middle-clicking on it and " "choose Groups Subscribe . Scroll the group window to the top if necessary " "and you will see that the selected newsgroup is listed directly under the " "Subscribed Groups section." msgstr "" "No es raro que un servidor tenga decenas de miles de grupos pero normalmente " "un usuario solo está interesado en unos pocos. Para realizar un mejor " "seguimiento de los grupos interesantes seleccione el nombre del grupo " "haciendo clic en él con el botón central y elija " "Grupos Suscribirse . Desplácese por la ventana del grupo hacia la parte superior si " "es necesario y verá que el grupo de noticias seleccionado aparece " "directamente en la sección Grupos suscritos." #. (itstool) path: sect2/title #: C/index.docbook:387 msgid "Reading Articles" msgstr "Leer artículos" #. (itstool) path: sect2/para #: C/index.docbook:388 msgid "" "After entering a group, the header pane will be filled with article headers. " "The header pane can be sorted by clicking on the topmost row of a column, " "where the column name is located. Clicking again will reverse the sort. The " "column that is used for sorting will have a downward arrow after the column " "name and the entire column will darken." msgstr "" "Después de ingresar a un grupo el panel de cabeceras se llenará con " "cabeceras de artículos. El panel de cabeceras se puede ordenar haciendo clic " "en la fila superior de una columna donde se encuentra el nombre de la " "columna. Al hacer clic de nuevo se invertirá el orden. La columna que se usa " "para ordenar tendrá una flecha hacia abajo después del nombre de la columna " "y toda la columna se oscurecerá." #. (itstool) path: sect2/para #: C/index.docbook:392 msgid "" "Pan defaults to showing collapsed threads. Only " "the first article of the thread is shown with a number in parenthesis " "indicating how many posts are hidden. Clicking on the right-facing arrow " "before the header text will expand the thread, showing the hidden articles " "in the thread. Reading the first article of the thread will also expand the " "thread. The keyboard shortcut for expanding threads is " "Shift. " "Shift will collapse " "the thread." msgstr "" #. (itstool) path: sect2/para #: C/index.docbook:398 msgid "" "Clicking on a header will download the article from the server, store it in " "the article cache and display it in the article pane. The article is then " "marked as read. Read articles are distinguished in the header pane by using " "a normal (not bold) font and by showing an open envelope icon in the state " "column." msgstr "" "Al pulsar en una cabecera descargará el artículo del servidor, lo guardará " "en la caché de artículos y lo mostrará en el panel de artículos. El artículo " "es entonces marcado como leído. Los artículos leídos son distinguidos en el " "panel de cabeceras usando una fuente normal (no negrita) y mostrando un " "icono de un sobre abierto en la columna de estado." #. (itstool) path: sect2/para #: C/index.docbook:401 msgid "" "You can scroll the message in the Article Pane by using the scrollbar or by " "pressing Space. Whenever the bottom of the retrieved " "article is already displayed, pressing Space will download " "the next article." msgstr "" #. (itstool) path: sect2/title #: C/index.docbook:407 msgid "Posting Articles" msgstr "Enviar artículos" #. (itstool) path: sect2/para #: C/index.docbook:408 msgid "" "To post an article in a group and start a new thread, select the group you " "wish to post to in the Group Pane and then choose " "Post Post to a Newsgroup . If this is the first time you have posted an article to a " "newsgroup, the Posting Profile dialog will appear and " "you will be required to fill in some information. Next, the Post " "Article dialog will appear. Type in a subject and then enter the " "body of the message at the bottom. When done, choose " "File Send Article to send the article to the news server and out to the rest of " "Usenet." msgstr "" #. (itstool) path: sect2/para #: C/index.docbook:424 msgid "" "Refer to and for more detailed information:" msgstr "" "Consulte la y la para obtener información más detallada:" #. (itstool) path: sect2/title #: C/index.docbook:429 msgid "Replying to Articles" msgstr "Responder a artículos" #. (itstool) path: sect2/para #: C/index.docbook:430 msgid "" "If you want to post a reply to a specific article and have your followup " "appear in that article's thread, highlight that article in the Header Pane " "with the middle mouse button and use Post " "Followup to Newsgroup . The " "highlighted article's text will appear as quoted text (each line is preceded " "by a \">\") in the editor window. Type in your response and then choose " " File Send Article " " to send the article to the news server." msgstr "" #. (itstool) path: sect2/para #: C/index.docbook:443 msgid "" "If you want to send a reply to a specific article via email, highlight that " "article in the Header Pane with the middle mouse button and choose " " Post Reply to Author in Mail . The highlighted article's text will appear as " "quoted text (each line is preceded by a \">\") in the editor window. Type " "in your response and then choose File " "Send Article and the text will be " "sent to the default external email application. Double-check the To: field " "and then send the email as you normally would with that application." msgstr "" #. (itstool) path: sect2/title #: C/index.docbook:460 msgid "Downloading Binaries" msgstr "Descargar binarios" #. (itstool) path: sect2/para #: C/index.docbook:461 msgid "" "A binary file in Usenet is usually composed of many smaller articles. " "Pan automatically organizes all these articles " "under one special article header. If all the data that comprises the binary " "header made it through the Usenet network successfully, a green, full puzzle-" "piece is displayed in the first column. To save the data, select the special " "header in the header window and use Articles " "Save Articles to download and save " "the binary data to disk." msgstr "" "Un archivo binario en Usenet generalmente se compone de muchos artículos más " "pequeños. Pan organiza automáticamente todos " "estos artículos bajo una cabecera de artículo especial. Si todos los datos " "que componen el encabezado binario se transfirieron por la red de Usenet con " "éxito, se mostrará una pieza de rompecabezas verde y completa en la primera " "columna. Para guardar los datos seleccione la cabecera especial en la " "ventana de cabecera y use Artículos " "Guardar artículos para descargar y " "guardar los datos binarios en el disco." #. (itstool) path: sect2/para #: C/index.docbook:471 msgid "" "If the binary posts are corrupted by missing or incorrect data, a red, " "incomplete puzzle-piece is displayed in the first column. The file may be " "saved, but it will probably be corrupt in some way." msgstr "" "Si los artículos binarios están corruptos por datos perdidos o incorrectos, " "una pieza de puzzle roja se mostrará en la primera columna. El fichero se " "puede guardar pero probablemente esté corrupto de alguna forma." #. (itstool) path: note/para #: C/index.docbook:473 msgid "" "Supporting binary newsgroups takes a large amount of bandwidth. Unless you " "are using a premium news server provider, it is not unusual for many binary " "files to be missing or corrupt." msgstr "" "Dar soporte a grupos de noticias binarios necesita mucho ancho de banda. A " "no ser que esté usando un proveedor de servidor de noticias de primera " "calidad no es inusual que los ficheros binarios no estén disponibles o estén " "corruptos." #. (itstool) path: sect1/title #: C/index.docbook:480 msgid "Groups" msgstr "Grupos" #. (itstool) path: sect1/para #: C/index.docbook:481 msgid "Working with groups in Pan." msgstr "Trabajar con grupos en Pan." #. (itstool) path: sect2/title #: C/index.docbook:486 msgid "Group Views" msgstr "Vistas de grupo" #. (itstool) path: sect2/para #: C/index.docbook:488 msgid "" "The total number of groups on a news server can be quite extensive. An easy " "way to find a specific group is to use the Group text " "box in the toolbar. Only groups that match the characters typed in the box " "will be displayed in the Group Pane. If you wish to return the Group Pane to " "its original state, simply delete the characters in the box by clicking the " "X icon to the right of the box." msgstr "" "El número total de grupos en un servidor de noticias puede ser bastante " "extenso. Una manera fácil de encontrar un grupo específico es usar el cuadro " "de texto Grupo en la barra de herramientas. Solo los " "grupos que coincidan con los caracteres escritos en el cuadro se mostrarán " "en el panel de grupos. Si desea devolver el panel de grupo a su estado " "original simplemente elimine los caracteres del cuadro o pulsando en el " "icono X a la derecha del cuadro." #. (itstool) path: sect2/para #: C/index.docbook:493 msgid "" "The group names presented in the Group Pane can be shortened by choosing " " View Group Pane " "Abbreviate Names in Group Pane . " "This only alters the way the names are presented in this pane." msgstr "" #. (itstool) path: sect2/title #: C/index.docbook:504 msgid "Group Actions" msgstr "Acciones de grupo" #. (itstool) path: sect2/para #: C/index.docbook:506 msgid "While a news group is selected, you can perform the following actions:" msgstr "" "Mientras un grupo de noticias está seleccionado, puede realizar las " "siguientes acciones:" #. (itstool) path: varlistentry/term #: C/index.docbook:510 msgid "" " Groups Mark Group Read " msgstr "" " Grupos Marcar grupo como leído " #. (itstool) path: listitem/para #: C/index.docbook:517 msgid "Mark all articles in a group read." msgstr "Marcar todos los mensajes en un grupo como leídos." #. (itstool) path: listitem/para #: C/index.docbook:518 msgid "" "A typical way to read news is to read all the interesting threads and when " "done mark the group read. The next time you start the news reader, choose " " Groups Get New Headers in " "Selected Group . With View Header Pane Match only Unread " "Articles , the only headers you will see will be " "the new headers you just downloaded." msgstr "" #. (itstool) path: varlistentry/term #: C/index.docbook:534 msgid "" " Groups Get New Headers in " "Subscribed Groups " msgstr "" " Grupos Obtener cabeceras nuevas " "de los grupos suscritos " #. (itstool) path: listitem/para #: C/index.docbook:541 msgid "Grab new headers for all the groups in the Subscribed Groups section." msgstr "" "Descargar nuevas cabeceras de todos los grupos de la sección grupos " "suscritos." #. (itstool) path: varlistentry/term #: C/index.docbook:545 msgid "" " Groups Edit Group Preferences " msgstr "" " Grupos Editar preferencias del " "grupo " #. (itstool) path: listitem/para #: C/index.docbook:555 msgid "Character encoding" msgstr "Codificación de caracteres" #. (itstool) path: listitem/para #: C/index.docbook:556 msgid "Location in the file hierarchy where attachments are saved" msgstr "Ubicación en la jerarquía de ficheros donde los adjuntos se guardan" #. (itstool) path: listitem/para #: C/index.docbook:558 msgid "The posting profile." msgstr "El perfil de publicación." #. (itstool) path: listitem/para #: C/index.docbook:552 msgid "" "Opens the Group Preferences dialog. Within this dialog you can customize " "certain Pan features per group: <_:itemizedlist-1/" ">" msgstr "" "Abre el diálogo de grupo de preferencias. En este dialogo puede cambiar " "ciertas características de Pan por grupo: <_:" "itemizedlist-1/>" #. (itstool) path: varlistentry/term #: C/index.docbook:564 msgid "" " Groups Subscribe " msgstr "" " Grupos Suscribirse " "" #. (itstool) path: listitem/para #: C/index.docbook:571 msgid "" "Add a favorite group to the Subscribed Groups section of the Group Pane. " "Unsubscribe is the opposite of this command." msgstr "" "Agrega un grupo favorito a la sección de grupos suscritos en el panel de " "grupo. Darse de baja es lo contrario a este comando." #. (itstool) path: varlistentry/term #: C/index.docbook:576 msgid "" " Groups Refresh Group List " msgstr "" " Grupos Actualizar lista de " "grupos " #. (itstool) path: listitem/para #: C/index.docbook:583 msgid "" "Resync the local group list that Pan uses with " "the current listing on the news server." msgstr "" "Volver a sincronizar la lista local de grupos que Pan usa con lista actual en el servidor de noticias." #. (itstool) path: varlistentry/term #: C/index.docbook:588 msgid "" " Groups Delete Group's Articles " msgstr "" " Grupos Eliminar artículos del " "grupo " #. (itstool) path: listitem/para #: C/index.docbook:595 msgid "Delete all the articles for the selected group from the article index." msgstr "" "Borrar todos los artículos del grupo seleccionado desde el índice de " "articulo." #. (itstool) path: sect2/title #: C/index.docbook:602 msgid "The Newsrc File" msgstr "El archivo Newsrc" #. (itstool) path: sect2/para #: C/index.docbook:603 msgid "" "The group list, subscribe/unsubscribe status of each group and the articles " "marked read in each group are stored in the newsrc file at $HOME/." "pan2/newsrc-1." msgstr "" #. (itstool) path: sect2/para #: C/index.docbook:605 msgid "" "The newsrc file format is standard among many Unix newsreaders and can be " "used to import and export this information between these applications." msgstr "" "El formato de archivo newsrc es estándar entre muchos lectores de noticias " "de Unix y se puede utilizar para importar y exportar esta información entre " "estas aplicaciones." #. (itstool) path: sect1/title #: C/index.docbook:612 msgid "Headers" msgstr "Cabeceras" #. (itstool) path: sect1/para #: C/index.docbook:613 msgid "" "Users will spend most of their time in Pan " "interacting with the article headers in the Header Pane. Pan has many features to optimize header viewing and article " "retrieval." msgstr "" #. (itstool) path: sect2/title #: C/index.docbook:618 msgid "Header View" msgstr "Vista de cabecera" #. (itstool) path: sect2/para #: C/index.docbook:620 msgid "" "Since the total number of all the available article headers in a group might " "be enormous, Pan has several options to limit the " "number of visible headers to a more manageable number." msgstr "" #. (itstool) path: sect2/para #: C/index.docbook:623 msgid "" "In the toolbar, the Subject or Author text box is a " "filter than can be used to limit the visible headers. Usually this is used " "to search for a specific article or a group of articles. Click on the " "magnifying glass icon to choose which header field to base the filter. Only " "the article headers that match the characters typed into the text box will " "be displayed. Click the X to erase and reset." msgstr "" #. (itstool) path: varlistentry/term #: C/index.docbook:630 msgid "" "Choose Edit Preferences Headers " msgstr "" "Elija Editar Preferencias Cabeceras" #. (itstool) path: listitem/para #: C/index.docbook:638 msgid "To hide or change the display order of the Header Pane columns." msgstr "" "Para ocultar o cambiar el orden de visualización de las columnas del panel " "de cabeceras." #. (itstool) path: varlistentry/term #: C/index.docbook:642 msgid "" "Choose View Header Pane Thread Headers " msgstr "" "Elija Ver Panel de cabeceras Cabeceras del la conversación " #. (itstool) path: listitem/para #: C/index.docbook:650 msgid "To enable or disable header threading in the Header Pane." msgstr "" "Para habilitar o deshabilitar los hilos de cabeceras en el panel de " "cabeceras." #. (itstool) path: sect3/title #: C/index.docbook:658 msgid "Replies of Matched Articles" msgstr "Respuestas de artículos con coincidencias" #. (itstool) path: sect3/para #: C/index.docbook:660 msgid "" "The user can pick one of the next three options to control how " "Pan will display replies of matched articles." msgstr "" "El usuario puede elegir una de las siguientes tres opciones para controlar " "como Pan mostrará las respuestas de los artículos " "coincidentes." #. (itstool) path: varlistentry/term #: C/index.docbook:664 C/index.docbook:701 msgid "" "In View Header Pane " "" msgstr "" "En Vista Panel de cabeceras " #. (itstool) path: listitem/para #: C/index.docbook:673 msgid "Show Matching Articles" msgstr "Mostrar los artículos que coinciden" #. (itstool) path: listitem/para #: C/index.docbook:674 msgid "Show only articles that match the article view options.." msgstr "" "Mostrar solamente artículos que coinciden con las opciones de vista de " "artículo.." #. (itstool) path: listitem/para #: C/index.docbook:677 msgid "Show Matching Articles' Threads" msgstr "" "Mostrar las conversaciones de los artículos coincidentes" #. (itstool) path: listitem/para #: C/index.docbook:678 msgid "" "Not only show articles that match the article view options, but also show " "all the articles in the entire thread of the matched article. This option " "will force read headers to be visible regardless of the view options." msgstr "" "No mostrar solo los artículos que coinciden con las opciones de " "visualización del artículo, mostrar también todos los artículos en el hilo " "completo del artículo coincidente. Esta opción obligará a que las cabeceras " "de lectura sean visibles independientemente de las opciones de visualización." #. (itstool) path: listitem/para #: C/index.docbook:683 msgid "Show Matching Articles Subthreads" msgstr "" "Mostrar conversaciones de los artículos coincidentes" #. (itstool) path: listitem/para #: C/index.docbook:684 msgid "" "Not only show articles that match the article view options, but also show " "articles that are replies of any matched article." msgstr "" "No mostrar solo artículos que coinciden con las opciones de vista de " "artículos, mostrar también artículos que son respuestas de cualquier " "artículo coincidente." #. (itstool) path: sect3/title #: C/index.docbook:696 msgid "Article View Matches" msgstr "" #. (itstool) path: sect3/para #: C/index.docbook:698 msgid "" "These options control which article headers are displayed in the Header Pane." msgstr "" "Estas opciones controlan que cabeceras de artículo se muestran en el panel " "de cabeceras." #. (itstool) path: listitem/para #: C/index.docbook:710 msgid "Match Only Unread Articles" msgstr "Coincidir sólo con los artículos no leídos" #. (itstool) path: listitem/para #: C/index.docbook:711 msgid "Only display articles that haven't been marked read." msgstr "Solo mostrar artículos que no se hayan marcado como leídos." #. (itstool) path: listitem/para #: C/index.docbook:714 msgid "Match Only Cached Articles" msgstr "Coincidir sólo con los artículos almacenados" #. (itstool) path: listitem/para #: C/index.docbook:715 msgid "" "Only display articles that are available in the local article cache in the " "computer's hard drive." msgstr "" "Solo mostrar artículos que están disponibles en la caché local de artículos " "en el disco duro del equipo." #. (itstool) path: listitem/para #: C/index.docbook:719 msgid "Match Only Complete Articles" msgstr "Coincidir sólo con los artículos completos" #. (itstool) path: listitem/para #: C/index.docbook:720 msgid "" "Only binary articles that are complete (full, green puzzle piece in the " "state column) will be displayed. This also hides text articles." msgstr "" "Solo se mostrarán los artículos binarios que estén completos (pieza de " "rompecabezas verde completa en la columna de estado). Esto también oculta " "los artículos de texto." #. (itstool) path: listitem/para #: C/index.docbook:724 msgid "Match Only My Articles" msgstr "Coincidir sólo con mis artículos" #. (itstool) path: listitem/para #: C/index.docbook:725 msgid "Only articles that the user has posted will be displayed." msgstr "Solo se mostrarán los artículos que el usuario ha publicado." #. (itstool) path: listitem/para #: C/index.docbook:728 msgid "Match Scores of xxxx" msgstr "Coincidir con una puntuación de xxxx" #. (itstool) path: listitem/para #: C/index.docbook:729 msgid "" "These options deal with scoring where you choose to display an article based " "on its score. Refer to for more information." msgstr "" "Estas opciones se ocupan de la puntuación en la que elige mostrar un " "artículo en función de su puntuación. Consulte para obtener más información." #. (itstool) path: sect2/title #: C/index.docbook:740 msgid "Header Movement" msgstr "" #. (itstool) path: sect2/para #: C/index.docbook:741 msgid "" "Movement around the Header Pane can be controlled by several methods, " "allowing the user to easily jump around complicated discussion threads with " "minimal input. Pan was designed for mouse-less " "article viewing, so most people use the keyboard shortcuts associated with " "these menu actions. The keyboard shortcut for most menu actions is displayed " "after the menu command." msgstr "" "El movimiento alrededor del panel de cabeceras se puede controlar mediante " "varios métodos, lo que permite al usuario saltar fácilmente entre hilos de " "discusión complicados con facilidad. Pan se " "diseñó para poder ver artículos sin usar el ratón por lo que la mayoría de " "las personas usan los atajos de teclado asociados con estas acciones de " "menú. El método abreviado de teclado para la mayoría de las acciones de menú " "se muestra después del comando de menú." #. (itstool) path: varlistentry/term #: C/index.docbook:747 msgid "" " Go Read More " msgstr "" " Go Leer más " #. (itstool) path: listitem/para #: C/index.docbook:754 msgid "" "Scroll the article in the Article Pane. If the article is already scrolled " "to the bottom, grab the next article. You can customize the function of this " "key by changing Preferences " "Articles Space selects next article " "rather than next unread ." msgstr "" #. (itstool) path: varlistentry/term #: C/index.docbook:765 msgid "" " Go Read Back " msgstr "" " Ir Leer atrás " #. (itstool) path: listitem/para #: C/index.docbook:772 msgid "" "Scroll the article up in the Article Pane. If it's already scrolled to the " "top, grab the previous article displayed in the Thread Pane." msgstr "" #. (itstool) path: varlistentry/term #: C/index.docbook:777 msgid "" " Go Next Unread Group " msgstr "" " Ir Siguiente grupo no leído " #. (itstool) path: listitem/para #: C/index.docbook:784 msgid "" "Skip down to the next subscribed group in the Group Pane with unread " "articles and read the first article." msgstr "" #. (itstool) path: varlistentry/term #: C/index.docbook:789 msgid "" " Go Next Group " msgstr "" " Ir Siguiente grupo " "" #. (itstool) path: listitem/para #: C/index.docbook:796 msgid "" "Skip down to the next subscribed group in the Group Pane and read the first " "article." msgstr "" #. (itstool) path: varlistentry/term #: C/index.docbook:800 msgid "" " Go Next Unread Article " msgstr "" " Ir Siguiente artículo no leído " #. (itstool) path: listitem/para #: C/index.docbook:807 msgid "Read the next unread article in the Thread Pane." msgstr "Leer el siguiente artículo desde el panel de conversaciones." #. (itstool) path: varlistentry/term #: C/index.docbook:811 msgid "" " Go Next Article " msgstr "" " Ir Siguiente artículo " #. (itstool) path: listitem/para #: C/index.docbook:818 msgid "Read the next article, regardless of its read/unread state." msgstr "" "Leer el siguiente artículo, independientemente de su estado leído o no leído." #. (itstool) path: varlistentry/term #: C/index.docbook:822 msgid "" " Go Next Watched Article " msgstr "" " Ir Siguiente artículo vigilado " #. (itstool) path: listitem/para #: C/index.docbook:829 msgid "" "Read the next watched article. A watched article is an article with a score " "of at least 9999. Refer to for more " "information." msgstr "" "Leer el siguiente artículo visto. Un artículo visto es un artículo con una " "puntuación de al menos 9999. Referirse a " "para más información." #. (itstool) path: varlistentry/term #: C/index.docbook:834 msgid "" " Go Previous Article " "" msgstr "" " Ir Artículo anterior " #. (itstool) path: listitem/para #: C/index.docbook:841 msgid "" "Read the previous article in the Thread Pane. This doesn't scroll the " "Article Pane like Go Read Back ." msgstr "" #. (itstool) path: varlistentry/term #: C/index.docbook:850 msgid "" " Go Parent Article " msgstr "" " Ir Artículo padre " #. (itstool) path: listitem/para #: C/index.docbook:857 msgid "Read the article for which the currently selected article is a reply." msgstr "" "Leer el artículo para el cual el artículo actualmente seleccionado es una " "respuesta." #. (itstool) path: varlistentry/term #: C/index.docbook:861 msgid "" " Go Next Unread Thread " msgstr "" " Ir Siguiente conversación no " "leída " #. (itstool) path: listitem/para #: C/index.docbook:868 msgid "Skip to the next unread thread and read the first article." msgstr "Saltar al siguiente hilo sin leer y leer el primer artículo." #. (itstool) path: varlistentry/term #: C/index.docbook:872 msgid "" " Go Next Thread " msgstr "" " Ir Siguiente conversación " #. (itstool) path: listitem/para #: C/index.docbook:879 msgid "Skip to the next thread and read the first article in that thread." msgstr "Saltar al siguiente hilo y leer el primer artículo en el hilo." #. (itstool) path: varlistentry/term #: C/index.docbook:883 msgid "" " Go Previous Thread " "" msgstr "" " Ir Conversación anterior " #. (itstool) path: listitem/para #: C/index.docbook:890 msgid "Skip back to the last thread and read the last article in that thread." msgstr "Saltar hacía atrás al último hilo y leer el último artículo del hilo." #. (itstool) path: sect2/title #: C/index.docbook:898 msgid "Header Selection" msgstr "" #. (itstool) path: sect2/para #: C/index.docbook:900 msgid "" "In order to perform an action on an article header, you must select it " "first. Use the middle mouse button to select an article. Drag the selection " "field with the mouse to select multiple articles. Hold down the " "Ctrl key while clicking articles with the middle mouse " "button to add individual articles to the selection." msgstr "" "Para realizar una acción en la cabecera de un artículo primero debe " "seleccionarlo. Utilice el botón central del ratón para seleccionar un " "artículo. Arrastre el campo de selección con el ratón para seleccionar " "varios artículos. Mantenga presionada la tecla Ctrl " "mientras pulsa en los artículos con el botón central del ratón para agregar " "artículos individuales a la selección." #. (itstool) path: sect2/para #: C/index.docbook:904 msgid "" "Pan also offers a number of other ways to " "efficiently select articles." msgstr "" "Pan también ofrece otras formas de seleccionar " "artículos de manera eficiente." #. (itstool) path: varlistentry/term #: C/index.docbook:908 msgid "" " Edit Select All Articles " msgstr "" " Editar Seleccionar todos los " "artículos " #. (itstool) path: listitem/para #: C/index.docbook:915 msgid "Select all articles in the Header Pane." msgstr "Seleccionar todos los artículos en el panel de cabeceras." #. (itstool) path: varlistentry/term #: C/index.docbook:919 msgid "" " Edit Add Subthreads to " "Selection " msgstr "" " Editar Añadir subconversaciones " "a la selección " #. (itstool) path: listitem/para #: C/index.docbook:926 msgid "" "Add all articles that are a reply to the selected article to the selection." msgstr "" #. (itstool) path: varlistentry/term #: C/index.docbook:930 msgid "" " Edit Add Threads to Selection " msgstr "" " Editar Añadir conversaciones a " "la selección " #. (itstool) path: listitem/para #: C/index.docbook:937 msgid "Add the entire thread of the selected article to the selection." msgstr "Agregar el hilo completo del articulo seleccionado a la selección." #. (itstool) path: varlistentry/term #: C/index.docbook:941 msgid "" " Edit Add Similar Articles to " "Selection " msgstr "" " Editar Añadir artículos " "similares a la selección " #. (itstool) path: listitem/para #: C/index.docbook:948 msgid "" "With one article selected, add others articles with the same author and from " "the current thread to the selection." msgstr "" "Con un artículo seleccionado añada otros artículos del mismo autor y desde " "el hilo actual a la selección." #. (itstool) path: varlistentry/term #: C/index.docbook:953 msgid "" " Edit Deselect All Articles " msgstr "" " Editar Deseleccionar todos los " "artículos " #. (itstool) path: listitem/para #: C/index.docbook:960 msgid "Cancel the current selection." msgstr "Cancelar la selección actual." #. (itstool) path: varlistentry/term #: C/index.docbook:964 msgid "" " Edit Select Article Body " msgstr "" " Editar Seleccionar el cuerpo del " "artículo " #. (itstool) path: listitem/para #: C/index.docbook:971 msgid "Select the entire article body. You must retrieve the article first." msgstr "" "Seleccionar el cuerpo completo del artículo. Primero debe descargar el " "artículo." #. (itstool) path: sect2/title #: C/index.docbook:979 msgid "Header Action" msgstr "Acción de cabecera" #. (itstool) path: sect2/para #: C/index.docbook:980 msgid "" "Whenever Pan downloads an article body, the data " "is saved to disk in the article cache. The article cache is a fixed-size " "buffer and when the cache has been filled, the older articles are erased to " "make room for newer ones." msgstr "" "Cuando Pan descargar el cuerpo de un artículo los " "datos se guardan en la caché de artículos en el disco. La caché de artículos " "es un búfer de tamaño fijo y cuando la caché se ha llenado los artículos " "antiguos se eliminan para hacer espacio para los nuevos." #. (itstool) path: sect2/para #: C/index.docbook:984 msgid "" "These are the actions you can perform on an article selected in the Header " "Pane." msgstr "" "Estas son las acciones que puede realizar en un artículo seleccionado en el " "panel de cabecera." #. (itstool) path: varlistentry/term #: C/index.docbook:987 msgid "" " Articles Save Article " msgstr "" " Artículos Guardar artículo " #. (itstool) path: listitem/para #: C/index.docbook:994 msgid "" "Save the highlighted article to disk. When you select this option, the Save " "Articles dialog will open. From here, you can choose to:" msgstr "" "Guardar en el disco disco el artículo resaltado. Cuando selecciona esta " "opción, el diálogo Guardar artículos se abrirá. Desde aquí usted puede " "elegir:" #. (itstool) path: listitem/para #: C/index.docbook:997 msgid "Save Text" msgstr "Guardar texto" #. (itstool) path: listitem/para #: C/index.docbook:998 msgid "Save the text of the displayed article." msgstr "Guardar el texto del artículo mostrado." #. (itstool) path: listitem/para #: C/index.docbook:1000 msgid "Save Attachments" msgstr "Guardar adjuntos" #. (itstool) path: listitem/para #: C/index.docbook:1001 msgid "Save the binary attachments of the selected article to disk." msgstr "Guardar en el disco el adjunto binario del artículo seleccionado." #. (itstool) path: listitem/para #: C/index.docbook:1003 msgid "Path" msgstr "Ruta" #. (itstool) path: listitem/para #: C/index.docbook:1004 msgid "Where in the file hierarchy to save the binary attachment or text." msgstr "" "Donde, en la jerarquía de ficheros, guardar el adjunto binario o el texto." #. (itstool) path: listitem/para #: C/index.docbook:1006 msgid "Priority" msgstr "Prioridad" #. (itstool) path: listitem/para #: C/index.docbook:1007 msgid "Where to add the file in the Task Manager queue." msgstr "Dónde añadir el fichero en la cola del gestor de tareas." #. (itstool) path: varlistentry/term #: C/index.docbook:1013 msgid "" " Articles Read Article " msgstr "" " Artículos Leer artículo " #. (itstool) path: listitem/para #: C/index.docbook:1020 msgid "" "Download the body of the selected article in the Header Pane and display it " "in the Article Pane." msgstr "" "Descargar el cuerpo del artículo seleccionado en el panel de cabecera y " "mostrarlo en el panel de artículo." #. (itstool) path: varlistentry/term #: C/index.docbook:1025 msgid "" " Articles Cache Article " msgstr "" " Artículos Guardar artículo en " "caché " #. (itstool) path: listitem/para #: C/index.docbook:1032 msgid "" "Download the body of the selected article in the Header Pane but do NOT " "display it in the Article Pane." msgstr "" "Descargar el cuerpo del artículo seleccionado en el panel de cabeceras pero " "no mostrarlo en el panel de artículo." #. (itstool) path: varlistentry/term #: C/index.docbook:1037 msgid "" " Articles Mark Article as Read " msgstr "" " Artículos Marcar artículo como " "leído " #. (itstool) path: listitem/para #: C/index.docbook:1044 msgid "Change the state of the article to read." msgstr "Cambiar el estado de un artículo a «leído»." #. (itstool) path: varlistentry/term #: C/index.docbook:1048 msgid "" " Articles Mark Article as Unread " msgstr "" " Artículos Marcar artículo como " "no leído " #. (itstool) path: listitem/para #: C/index.docbook:1055 msgid "Change the state of the article to unread." msgstr "Cambiar el estado de un artículo a «no leído»." #. (itstool) path: varlistentry/term #: C/index.docbook:1059 msgid "" " Articles Delete Article " msgstr "" " Artículos Eliminar artículo " #. (itstool) path: listitem/para #: C/index.docbook:1066 msgid "" "Delete the selected article in the current group from the article index." msgstr "" "Borrar del índice de artículo el artículo seleccionado en el grupo actual." #. (itstool) path: sect1/title #: C/index.docbook:1074 msgid "Body" msgstr "Cuerpo" #. (itstool) path: sect1/para #: C/index.docbook:1075 msgid "The Body Pane displays the text of a selected article header." msgstr "" "El panel de cuerpo muestra el texto de la cabecera de artículo seleccionada." #. (itstool) path: sect2/title #: C/index.docbook:1078 msgid "Digital Images" msgstr "Imágenes digitales" #. (itstool) path: sect2/para #: C/index.docbook:1079 msgid "" "Some groups specialize in digital images where each binary post is a " "separate image. Pan can automatically decode and " "display these images. To display the image, select and view the article " "header as you normally would for text and the image will be displayed in the " "Body Pane." msgstr "" "Algunos grupos se especializan en imágenes digitales donde cada publicación " "binaria es una imagen separada. Pan puede " "automáticamente decodificar y mostrar estas imágenes. Para mostrar la " "imagen, seleccione y vea la cabecera de artículo como haría normalmente para " "texto y la imagen se mostrará en el panel de cuerpo." #. (itstool) path: sect2/title #: C/index.docbook:1086 msgid "Body Views" msgstr "Vistas de cuerpo" #. (itstool) path: sect2/para #: C/index.docbook:1087 msgid "" "The way information is presented in the Body Pane can be customized in " "several ways." msgstr "" "La forma en la que la información se presenta en el Panel del cuerpo se " "puede personalizar de diferentes maneras." #. (itstool) path: varlistentry/term #: C/index.docbook:1090 msgid "" "In View Body Pane " msgstr "" "En Ver Panel del cuerpo " #. (itstool) path: listitem/para #: C/index.docbook:1099 msgid "Wrap Article Body" msgstr "Ajustar el cuerpo del artículo" #. (itstool) path: listitem/para #: C/index.docbook:1100 msgid "" "Will force the text to flow into paragraphs instead of running off the edge " "of the text window. This is useful to fix badly formatted articles." msgstr "" "Forzará el texto en párrafos en lugar de salirse del borde de la ventana de " "texto. Esto es útil para arreglar artículos mal formateados." #. (itstool) path: listitem/para #: C/index.docbook:1104 msgid "Show All Headers in Body Pane" msgstr "" "Mostrar todas las cabeceras en el panel del cuerpo" #. (itstool) path: listitem/para #: C/index.docbook:1105 msgid "" "The headers displayed in the Header Pane are only a small subset of the all " "the article headers. This commands will display the complete list of article " "headers in the Body Pane before the article text." msgstr "" "Las cabeceras que se muestran en el panel de cabeceras son solo un pequeño " "subconjunto de todos las cabeceras de artículos. Estos comandos mostrarán la " "lista completa de cabeceras de artículos en el panel del cuerpo antes del " "texto del artículo." #. (itstool) path: listitem/para #: C/index.docbook:1110 msgid "Rot 13 Selected Text" msgstr "Cifrar el texto seleccionado con Rot 13" #. (itstool) path: listitem/para #: C/index.docbook:1111 msgid "" "A simple cipher used to hide story spoilers, joke punchlines, etc. Select a " "block of encrypted text and use this option to decode it to clear text." msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1115 msgid "Use Monospace Font" msgstr "Usar tipografía monoespaciada" #. (itstool) path: listitem/para #: C/index.docbook:1116 msgid "" "Sometimes Usenet authors will create simple ASCII artwork or diagrams. By " "default, Pan uses proportional fonts for all text " "which renders ASCII artwork unreadable. By choosing this option, the text of " "the Body Pane will be displayed using the Monospace Font." msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1120 msgid "" "You can configure the monospace font in Edit " "Preferences Font ." msgstr "" "Puede configurar la tipografía monoespaciada en " "Editar Preferencias " "Tipografía ." #. (itstool) path: listitem/para #: C/index.docbook:1129 msgid "Show Smilies as Graphics" msgstr "Mostrar emojis como gráficos" #. (itstool) path: listitem/para #: C/index.docbook:1130 msgid "Change ASCII emoticons like :) into graphical versions." msgstr "Cambiar emojis ASCII como :) a sus versiones gráficas." #. (itstool) path: listitem/para #: C/index.docbook:1133 msgid "Show *Bold*, _Underlined_ and /Italiced/" msgstr "Mostrar *Negrita*, _Subrayado_, y /Cursiva/" #. (itstool) path: listitem/para #: C/index.docbook:1134 msgid "" "Over the years, Usenet authors have devised several strategies to overcome " "the limited typographic ability of ASCII. Enabling this option will format " "the article text following these typographic hints." msgstr "" "A lo largo de los años los autores de Usenet han ideado varias estrategias " "para superar limitacionón tipográfica de ASCII. Activar esta opción " "formateará el texto del artículo siguiendo estas sugerencias tipográficas." #. (itstool) path: listitem/para #: C/index.docbook:1139 msgid "Size Pictures to Fit" msgstr "Redimensionar imágenes para que quepan" #. (itstool) path: listitem/para #: C/index.docbook:1140 msgid "" "Size digital images so they will display in the Body Pane without scrolling. " "Click on the image to view it in its original size." msgstr "" "Ajusta el tamaño de las imágenes digitales para que se muestren en el panel " "del cuerpo sin necesidad de desplazar el contenido. Pulse en la imagen para " "verla en su tamaño original." #. (itstool) path: sect1/title #: C/index.docbook:1152 msgid "Posting" msgstr "Publicar" #. (itstool) path: sect1/para #: C/index.docbook:1153 msgid "How to post articles in Pan." msgstr "Como publicar artículos en Pan." #. (itstool) path: sect2/title #: C/index.docbook:1158 msgid "Actions" msgstr "Acciones" #. (itstool) path: varlistentry/term #: C/index.docbook:1161 msgid "" " Post Post to Newsgroup " msgstr "" " Publicar Publicar al grupo de " "noticias " #. (itstool) path: listitem/para #: C/index.docbook:1168 msgid "Post an article to the selected newsgroup." msgstr "Publicar un artículo en el grupo de noticias seleccionado." #. (itstool) path: varlistentry/term #: C/index.docbook:1172 msgid "" " Post Followup to Newsgroup " msgstr "" " Publicar eenviar al grupo de " "noticias " #. (itstool) path: listitem/para #: C/index.docbook:1179 msgid "Post a reply to the selected article and continue the thread." msgstr "Publicar una respuesta al artículo seleccionado y continuar el thread." #. (itstool) path: varlistentry/term #: C/index.docbook:1183 msgid "" " Post Reply to Author in Mail " msgstr "" " Publicar Responder al autor por " "correo " #. (itstool) path: listitem/para #: C/index.docbook:1190 msgid "Post a reply to the selected article via email." msgstr "Publicar una respuesta por correo-e al artículo seleccionado." #. (itstool) path: sect2/para #: C/index.docbook:1195 msgid "" "While highlighting in the Header Pane the article header of a post that you " "posted to the news server, you can perform these two actions:" msgstr "" "Puede realizar estas dos acciones mientras resalta en el panel de cabecera " "la cabecera del artículo que publicó en el servidor de noticias:" #. (itstool) path: varlistentry/term #: C/index.docbook:1199 msgid "" " Post Supersede Article " msgstr "" " Publicar Sustituir artículo " #. (itstool) path: listitem/para #: C/index.docbook:1206 msgid "" "This allows you to supersede an earlier article with another newer post." msgstr "" "Esto le permite reemplazar un artículo anterior con otra publicación más " "reciente." #. (itstool) path: varlistentry/term #: C/index.docbook:1210 msgid "" " Post Cancel Article " "" msgstr "" " Publicar Cancelar artículo " #. (itstool) path: listitem/para #: C/index.docbook:1217 msgid "This allows you to cancel a earlier article." msgstr "Esto le permite cancelar un artículo anterior." #. (itstool) path: note/para #: C/index.docbook:1221 msgid "" "Most public news servers disable the supersede and cancel commands for " "security reasons. Make sure you are comfortable with your article before you " "post it to the news server, because in most cases it will be impossible to " "take back or alter what you have said." msgstr "" "La mayoría de los servidores de noticias públicos desactivan los comandos de " "sustitución y cancelación por motivos de seguridad. Asegúrese de sentirse " "cómodo con su artículo antes de publicarlo en el servidor de noticias porque " "en la mayoría de los casos será imposible retractarse o modificar lo que ha " "dicho." #. (itstool) path: sect2/title #: C/index.docbook:1228 msgid "Posting Profiles Dialog" msgstr "Diálogo de perfiles de publicación" #. (itstool) path: sect2/para #: C/index.docbook:1229 msgid "" "Posting Profiles allow the user to configure different Usenet personas that " "may be customized for particular groups." msgstr "" "Los perfiles de publicación permiten al usuario configurar diferentes " "identidades de Usenet que se pueden personalizar para grupos particulares." #. (itstool) path: sect2/para #: C/index.docbook:1231 msgid "" "The Posting Profiles dialog displays a list of " "currently configured Posting Profiles. From here you can Remove or Edit a " "profile by clicking on the profile's name and press the appropriate button. " "Clicking add will start a new profile." msgstr "" #. (itstool) path: sect3/title #: C/index.docbook:1236 msgid "Mandatory Information" msgstr "Información obligatoria" #. (itstool) path: sect3/para #: C/index.docbook:1237 msgid "Each profile contains the following information:" msgstr "Cada perfil contiene la siguiente información:" #. (itstool) path: listitem/para #: C/index.docbook:1240 msgid "Profile Name" msgstr "Nombre del perfil" #. (itstool) path: listitem/para #: C/index.docbook:1241 msgid "The name of this profile." msgstr "El nombre de este perfil." #. (itstool) path: listitem/para #: C/index.docbook:1244 msgid "Full Name" msgstr "Nombre completo" #. (itstool) path: listitem/para #: C/index.docbook:1245 msgid "The author name that will be used in the article's header." msgstr "El nombre de autor que se usará en las cabeceras del artículo." #. (itstool) path: listitem/para #: C/index.docbook:1248 msgid "Email Address" msgstr "Dirección de correo-e" #. (itstool) path: listitem/para #: C/index.docbook:1249 msgid "The email address that will be used in the article's header." msgstr "" "La dirección de correo electrónico que se usará en las cabeceras del " "artículo." #. (itstool) path: listitem/para #: C/index.docbook:1252 msgid "Post Articles via" msgstr "Publicar artículos mediante" #. (itstool) path: listitem/para #: C/index.docbook:1253 msgid "" "If multiple news servers are configured, choose which server will receive " "the article." msgstr "" "Si hay múltiples servidores de noticias configurados, elija que servidor " "recibirá el artículo." #. (itstool) path: sect3/title #: C/index.docbook:1259 msgid "Signatures" msgstr "Firmas" #. (itstool) path: sect3/para #: C/index.docbook:1260 msgid "" "A signature is a block of text that is appended to the end of every outgoing " "article. Generally it is contact information, a personal motto or a witty " "saying." msgstr "" "Una firma es un bloque de texto que se adjunta al final de cada artículo " "enviado. Generalmente es información de contacto, un lema personal o un " "dicho ingenioso." #. (itstool) path: sect3/para #: C/index.docbook:1262 msgid "" "Click Use a Signature to activate signature support." msgstr "" "Pulse Usar firma para activar el soporte de firmas." #. (itstool) path: listitem/para #: C/index.docbook:1265 msgid "Text" msgstr "Texto" #. (itstool) path: listitem/para #: C/index.docbook:1266 msgid "Type in the text you wish to use as a signature." msgstr "Escriba el texto que quiere usar como firma." #. (itstool) path: listitem/para #: C/index.docbook:1269 msgid "Text File" msgstr "Archivo de texto" #. (itstool) path: listitem/para #: C/index.docbook:1270 msgid "" "Enter the location of the file in the disk hierarchy. The Browse button can " "assist in this." msgstr "" "Introduzca la localización del fichero en la jerarquía del disco. El botón " "navegar puede ayudarle." #. (itstool) path: listitem/para #: C/index.docbook:1273 msgid "Command" msgstr "Comando" #. (itstool) path: listitem/para #: C/index.docbook:1274 msgid "" "Type in the command you wish to run and the output of that command will be " "captured and used as the signature text." msgstr "" "Escriba el comando que desea ejecutar y la salida de ese comando se " "capturará y utilizará como texto de firma." #. (itstool) path: listitem/para #: C/index.docbook:1276 msgid "Example: fortune -s" msgstr "Ejemplo: fortune -s" #. (itstool) path: listitem/para #: C/index.docbook:1279 msgid "PGP Signature" msgstr "Firma PGP" #. (itstool) path: listitem/para #: C/index.docbook:1280 msgid "" "Choose this if you want to sign or encrypt your message with PGP. The given " "email address has to match the PGP email address for this method to work." msgstr "" #. (itstool) path: note/para #: C/index.docbook:1283 msgid "" "PGP support is an optional feature and may not be available in your " "Pan build." msgstr "" "El soporte de PGP es opcional y puede no estar disponible en su versión de " "Pan." #. (itstool) path: sect3/title #: C/index.docbook:1290 msgid "Optional Information" msgstr "Información opcional" #. (itstool) path: listitem/para #: C/index.docbook:1293 msgid "Attribution" msgstr "Atribución" #. (itstool) path: listitem/para #: C/index.docbook:1294 msgid "" "When you reply to a post, the text in the attribution box precedes the " "quoted text. The %d flag is replaced the by the date of the selected post " "while the %n flag is replaced with the author of the selected post." msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1299 msgid "Extra Headers" msgstr "Cabeceras adicionales" #. (itstool) path: listitem/para #: C/index.docbook:1300 msgid "This is a advanced option to add extra headers to the article." msgstr "Esta es una opción avanzada para añadir cabeceras extras al artículo." #. (itstool) path: sect2/title #: C/index.docbook:1308 msgid "Post Article Dialog" msgstr "Diálogo de publicar artículo" #. (itstool) path: sect2/para #: C/index.docbook:1309 msgid "" "Whenever you post an article you use the Post Article Dialog." msgstr "" "Cuando publica un artículo usa el Diálogo de publicación de " "artículo." #. (itstool) path: sect3/title #: C/index.docbook:1312 msgid "Composition" msgstr "Composición" #. (itstool) path: sect3/para #: C/index.docbook:1313 msgid "" "The Post Article Dialog is composed of the following " "parts:" msgstr "" "El diálogo de publicar artículo se compone de las " "siguientes partes:" #. (itstool) path: varlistentry/term #: C/index.docbook:1316 msgid "Menubar" msgstr "Barra de menú" #. (itstool) path: listitem/para #: C/index.docbook:1318 msgid "The menubar contains all the commands that you need to post an article." msgstr "" "La barra de menú contiene todos los comandos que necesita para publicar un " "artículo." #. (itstool) path: varlistentry/term #: C/index.docbook:1323 C/index.docbook:1558 msgid "Toolbar" msgstr "Barra de herramientas" #. (itstool) path: listitem/para #: C/index.docbook:1325 msgid "" "The toolbar contains a subset of the commands that you can access from the " "menubar." msgstr "" "La barra de herramientas contiene un subconjunto de los comandos a los que " "puede acceder desde la barra de menú." #. (itstool) path: varlistentry/term #: C/index.docbook:1330 msgid "From" msgstr "De" #. (itstool) path: listitem/para #: C/index.docbook:1332 msgid "Select which Posting Profile to use." msgstr "Seleccionar que perfil de publicación usar." #. (itstool) path: varlistentry/term #: C/index.docbook:1337 msgid "Subject" msgstr "Asunto" #. (itstool) path: listitem/para #: C/index.docbook:1339 msgid "" "Type in the subject of your post. If this post is a reply, this line is " "already filled-in." msgstr "" "Escriba en el asunto de de su publicación. Si la publicación es una " "respuesta, esta línea ya estará rellenada." #. (itstool) path: varlistentry/term #: C/index.docbook:1345 msgid "Newsgroups" msgstr "Grupos de noticias" #. (itstool) path: listitem/para #: C/index.docbook:1347 msgid "" "A comma separated list of all the groups that will receive this article." msgstr "" "Una lista con los grupos separados por comas que recibirán este artículo." #. (itstool) path: varlistentry/term #: C/index.docbook:1352 msgid "Mail To" msgstr "Enviar correo a" #. (itstool) path: listitem/para #: C/index.docbook:1354 msgid "Enter an email address to send the article." msgstr "Introduzca una dirección de correo-e a la que enviar el artículo." #. (itstool) path: varlistentry/term #: C/index.docbook:1359 msgid "More Headers" msgstr "Más cabeceras" #. (itstool) path: listitem/para #: C/index.docbook:1361 msgid "An advanced option to manually add more headers." msgstr "Una opción avanzada para añadir más cabeceras manualmente." #. (itstool) path: varlistentry/term #: C/index.docbook:1366 msgid "Text Area" msgstr "Área de texto" #. (itstool) path: listitem/para #: C/index.docbook:1368 msgid "Where you enter the text of the article." msgstr "Donde introduce el texto del artículo." #. (itstool) path: sect3/title #: C/index.docbook:1375 msgid "File Commands" msgstr "Comandos de archivo" #. (itstool) path: sect3/para #: C/index.docbook:1376 msgid "" "These file commands are available from within the Post Article " "dialog." msgstr "" "Estos comandos de fichero están disponibles en el diálogo de " "publicación de artículo." #. (itstool) path: varlistentry/term #: C/index.docbook:1379 msgid "" " File Send Article " msgstr "" " Archivo Enviar artículo " #. (itstool) path: listitem/para #: C/index.docbook:1386 msgid "" "When you are done entering the article, use this command to send the article " "to the news server." msgstr "" "Cuando haya terminado de redactar el artículo use este comando para enviar " "el artículo al servidor de noticias." #. (itstool) path: varlistentry/term #: C/index.docbook:1391 msgid "" " File Save Draft " msgstr "" " Archivo Guardar borrador " #. (itstool) path: listitem/para #: C/index.docbook:1398 msgid "Save your current work on the article to disk." msgstr "Guardar en disco su trabajo actual en el artículo." #. (itstool) path: varlistentry/term #: C/index.docbook:1402 msgid "" " File Open Draft " msgstr "" " Archivo Abrir borrador " #. (itstool) path: listitem/para #: C/index.docbook:1409 msgid "Load a previous draft and continue editing." msgstr "Cargar un borrador anterior y seguir editando." #. (itstool) path: sect3/title #: C/index.docbook:1416 msgid "Editing Commands" msgstr "Editar comandos" #. (itstool) path: sect3/para #: C/index.docbook:1417 msgid "" "This option is available from within the Post Article Dialog." msgstr "" "Esta opción está disponible dentro del diálogo de publicación de " "artículo." #. (itstool) path: varlistentry/term #: C/index.docbook:1420 msgid "" " Edit Manage Posting Profiles " msgstr "" " Editar Gestionar perfiles de " "publicación " #. (itstool) path: listitem/para #: C/index.docbook:1427 msgid "See Posting Profiles." msgstr "Ver perfiles de publicación." #. (itstool) path: varlistentry/term #: C/index.docbook:1431 msgid "" " Edit Run Editor " msgstr "" " Editar Ejecutar editor " #. (itstool) path: listitem/para #: C/index.docbook:1438 msgid "" "Starts an external editor. Type in your post in the external editor as you " "normally would and save your work. The external editor will close and the " "text that was entered into that editor will be located in the text area." msgstr "" "Inicia un editor externo. Escriba su artículo en el editor externo como lo " "haría normalmente y guarde su trabajo. El editor externo se cerrará y el " "texto que se redactó en ese editor se ubicará en el área de texto." #. (itstool) path: varlistentry/term #: C/index.docbook:1444 msgid "" " Edit Set Editor " msgstr "" " Editar Establecer editor " #. (itstool) path: listitem/para #: C/index.docbook:1451 msgid "Choose which external editor to use." msgstr "Elegir el editor externo que usar." #. (itstool) path: varlistentry/term #: C/index.docbook:1455 msgid "" " Edit Manage Editor List " msgstr "" " Editar Gestionar lista de " "editores " #. (itstool) path: listitem/para #: C/index.docbook:1462 msgid "Setup another external editor." msgstr "Configurar otro editor externo." #. (itstool) path: varlistentry/term #: C/index.docbook:1466 msgid "" " Edit Cut, Copy and Paste " msgstr "" " Editar Cortar, copiar y pegar " #. (itstool) path: listitem/para #: C/index.docbook:1473 msgid "The standard GUI text functions." msgstr "Las funciones estándar de IGU de texto." #. (itstool) path: varlistentry/term #: C/index.docbook:1477 msgid "" " Edit Wrap Now " msgstr "" " Editar Ajustar ahora " #. (itstool) path: listitem/para #: C/index.docbook:1484 msgid "" "Force the text flow into paragraphs instead of running off the edge of the " "text area." msgstr "" "Forzar el flujo de texto en párrafos en lugar de salirse del borde del área " "de texto." #. (itstool) path: varlistentry/term #: C/index.docbook:1489 msgid "" " Edit Wrap Text " msgstr "" " Editar Ajustar texto " #. (itstool) path: listitem/para #: C/index.docbook:1496 msgid "Set this option to have text automatically wrap when entered." msgstr "" "Active esta opción para que el texto se ajuste automáticamente cuando se " "escriba." #. (itstool) path: varlistentry/term #: C/index.docbook:1500 msgid "" " Edit Check Spelling " "" msgstr "" " Editar Comprobar ortografía " #. (itstool) path: listitem/para #: C/index.docbook:1507 msgid "" "Set this option and possible spelling errors in the text area will marked " "with a red wavy line." msgstr "" "Establezca esta opción y los posibles errores ortográficos en el área de " "texto se marcarán con una línea roja ondulada." #. (itstool) path: varlistentry/term #: C/index.docbook:1511 msgid "" " Edit ROT 13 " msgstr "" " Editar ROT 13 " #. (itstool) path: listitem/para #: C/index.docbook:1518 msgid "" "ROT13 is a simple cipher to hide story spoilers, joke punchlines, etc. " "Select the text to cipher and use this command." msgstr "" "ROT13 es un cifrado simple para ocultar espóiler de historias, chistes, etc. " "Seleccione el texto que cifrar y use este comando." #. (itstool) path: sect1/title #: C/index.docbook:1530 msgid "Tasks" msgstr "Tareas" #. (itstool) path: sect1/para #: C/index.docbook:1531 msgid "" "Certain tasks performed by Pan, like downloading " "binary posts or grabbing new headers for a group, can take a long time. " "These tasks are queued and performed in the background while " "Pan is processing other tasks like grabbing an " "article." msgstr "" #. (itstool) path: sect2/title #: C/index.docbook:1537 msgid "Cancel Last Task" msgstr "Cancelar la última tarea" #. (itstool) path: sect2/para #: C/index.docbook:1538 msgid "" "You can quickly cancel the last task added to the task queue by selecting: " " File Cancel Last Task ." msgstr "" #. (itstool) path: sect2/title #: C/index.docbook:1548 msgid "Task Manager" msgstr "Gestor de tareas" #. (itstool) path: sect2/para #: C/index.docbook:1549 msgid "" "Background tasks can be manipulated by using the Task Manager. The Task " "Manager can be accessed with File " "Task Manger or by left-clicking in " "the task area of the Status Bar at the bottom of the Pan screen." msgstr "" #. (itstool) path: sect2/para #: C/index.docbook:1555 msgid "The Task Manger window is composed of the following parts:" msgstr "La ventana del gesto de tareas se compone de las siguientes partes:" #. (itstool) path: listitem/para #: C/index.docbook:1560 msgid "" "The toolbar contains all the commands you need to manipulate the tasks in " "the Task Manger Window." msgstr "" "La barra de herramientas contiene todos los comandos que necesita para " "manipular las tareas en la ventana del Gestor de tareas." #. (itstool) path: varlistentry/term #: C/index.docbook:1565 msgid "Informational Area" msgstr "Área de información" #. (itstool) path: listitem/para #: C/index.docbook:1567 msgid "" "The Informational Area displays the number of queued tasks, the amount of " "data that needs to downloaded to complete the queued tasks, the current " "download rate and the estimated time needed to complete the queued tasks." msgstr "" "El área informativa muestra la cantidad de tareas en cola, la cantidad de " "datos que se deben descargar para completar las tareas en cola, la tasa de " "descarga actual y el tiempo estimado necesario para completar las tareas en " "cola." #. (itstool) path: varlistentry/term #: C/index.docbook:1573 msgid "Task List" msgstr "Lista de tareas" #. (itstool) path: listitem/para #: C/index.docbook:1575 msgid "A list of queued tasks. Each row is a separate task." msgstr "Una lista de tareas en cola. Cada línea es una tarea independiente." #. (itstool) path: sect2/para #: C/index.docbook:1579 msgid "" "In order to manipulate a task, click on it and the row will be highlighted. " "Then click on one of the buttons in the toolbar." msgstr "" "Para manipular una tarea pulse en ella y la fila se resaltará. A " "continuación haga pulse en de los botones de la barra de herramientas." #. (itstool) path: tip/para #: C/index.docbook:1581 msgid "" "If Pan is shutdown whiles tasks are still waiting " "in the task manager, the task list is saved to disk and resumed when " "Pan is restarted. This, however, is not true for " "upload tasks in the current version." msgstr "" "Si Pan se apaga mientras las tareas aún están " "esperando en el administrador de tareas, la lista de tareas se guardará en " "el disco y se reanudará cuando se reinicie Pan. " "Sin embargo, esto no aplica para las tareas de subida en la versión actual." #. (itstool) path: sect2/title #: C/index.docbook:1587 msgid "NZB Files" msgstr "Archivos NZB" #. (itstool) path: sect2/para #: C/index.docbook:1588 msgid "" "Pan saves its task list in $HOME/.pan2/" "tasks.nzb file. You can import other task lists into " "Pan by choosing File Import NZB Files ." msgstr "" #. (itstool) path: sect1/title #: C/index.docbook:1600 msgid "Scoring" msgstr "Puntuación" #. (itstool) path: sect1/para #: C/index.docbook:1601 msgid "" "Scoring allows the user to give an article a rating based on user-defined " "scoring rules. This rating can then be used by Pan to perform score-based actions." msgstr "" #. (itstool) path: sect1/para #: C/index.docbook:1604 msgid "" "When a group's article headers are first downloaded from the news server, " "all the articles have a score of 0. Then the list of scoring rules in the " "score file are applied to each article. The score file rules might give an " "article from John Smith a high score, while articles with a subject line " "containing the phrase \"For Sale\" a negative score." msgstr "" "Cuando las cabeceras de artículos de un grupo se descargan por primera vez " "del servidor de noticias todos los artículos tienen una puntuación de 0. " "Entonces la lista de reglas de puntuación se aplica a cada artículo. Las " "reglas de puntuación pueden otorgar a un artículo de John Smith una " "puntuación alta mientras que los artículos con una línea de asunto que " "contiene la frase \"En venta\" pueden obtener una puntuación negativa." #. (itstool) path: sect2/title #: C/index.docbook:1612 msgid "Scoring Actions" msgstr "Acciones de puntuación" #. (itstool) path: listitem/para #: C/index.docbook:1615 msgid "" "View an article by using View " "Header Pane Match Scores of xxxx . The default is to hide articles (by not " "matching) with a score of -9999. and view all other scores." msgstr "" "Vea un artículo usando Ver Panel " "de la cabecera Coincidir con puntuación xxxx . El comportamiento por defecto es ocultar los " "artículos (no aplicando coincidencias) con una puntuación de -9999. y ver " "todas las demás puntuaciones." #. (itstool) path: listitem/para #: C/index.docbook:1624 msgid "" "Change the background and text color of the score column in the Header Pane. " "This is defined in Edit " "Preferences Colors ." msgstr "" #. (itstool) path: sect2/para #: C/index.docbook:1613 msgid "" "Pan can perform two actions based on an article's " "score: <_:itemizedlist-1/>" msgstr "" "Pan puede realizar dos acciones basándose en la " "puntuación de un artículo: <_:itemizedlist-1/>" #. (itstool) path: sect2/title #: C/index.docbook:1638 msgid "Adding Scoring Rules" msgstr "Añadir reglas de puntuación" #. (itstool) path: sect2/para #: C/index.docbook:1640 msgid "" "There are several ways to add rules to the score file. Select an article in " "the Header Pane and then select Articles " "Watch Thread . This rule sets the " "score of any post located in the thread of the selected article to 9999." msgstr "" #. (itstool) path: sect2/para #: C/index.docbook:1649 msgid "" "The opposite of the above rule is Articles " "Ignore Thread . This rule sets the " "score of any post located in the thread of the selected article to -9999." msgstr "" #. (itstool) path: sect2/para #: C/index.docbook:1657 msgid "" "Both of these scoring rules only work in the selected group and expire in " "one month." msgstr "" "Ambas reglas de puntuación solo funcionan en el grupo seleccionado y caducan " "en un mes." #. (itstool) path: sect2/para #: C/index.docbook:1659 msgid "" "Selecting an article and selecting Articles " "Ignore Author will open the " "New Scoring Rule dialog." msgstr "" #. (itstool) path: sect2/para #: C/index.docbook:1666 msgid "" "The default of this scoring rule is to score all the posts of the author of " "the selected article -9999 for the next month in the selected group. By " "clicking on various fields and selecting different options in the " "New Scoring Rule dialog, you can customize the rule " "further. For instance, instead of having the rule expire in one month, you " "can have the rule last forever. Also note that you can make the rule add to " "the score of an article, making it a watch rule. So the name \"Ignore Author" "\" can be somewhat of a misnomer." msgstr "" #. (itstool) path: sect2/para #: C/index.docbook:1672 msgid "" "When finished, click Add and Rescore to close the " "dialog box." msgstr "" "Cuando haya terminado pulse en Agregar y volver a puntuar para cerrar el cuadro de diálogo." #. (itstool) path: sect2/para #: C/index.docbook:1674 msgid "" "Selecting an article and selecting Articles " "Add a Scoring Rule is very similar to " "the Ignore Author section described above as it opens the same " "New Scoring Rule dialog, just with different " "defaults. Construct a rule in the same fashion as described above." msgstr "" #. (itstool) path: sect2/title #: C/index.docbook:1686 msgid "Editing or Deleting Scoring Rules" msgstr "Editar o eliminar reglas de puntuación" #. (itstool) path: sect2/para #: C/index.docbook:1688 msgid "" "Selecting an article that is currently being scored and choosing " " Articles Edit Article's Watch/" "Ignore/Score will open the Article's " "Scores dialog box. From this dialog you can manipulate the " "scoring rule for the currently selected article. Each rule will have its own " "row describing the scoring action (plus or minus points), locations and line " "number of this rule in the score file and the texts of the rule. Select the " "rule and click Add button to alter the rule or " "Remove button to delete the rule from the score file. " "Click Close and Rescore when finished." msgstr "" #. (itstool) path: sect2/title #: C/index.docbook:1703 msgid "Advanced Scoring" msgstr "Puntuación avanzada" #. (itstool) path: sect2/para #: C/index.docbook:1705 msgid "" "The scoring file is located at $HOME/.pan2/Score. " "Advanced users might want to edit this file directly with a text editor to " "create advanced scoring rules that are difficult or impossible to construct " "from the New Scoring Rule dialog." msgstr "" #. (itstool) path: sect2/para #: C/index.docbook:1710 msgid "" "This is probably easiest via the Edit " "Edit Score File menu as that will " "automatically rescore articles when you exit the edit window." msgstr "" #. (itstool) path: sect2/para #: C/index.docbook:1717 msgid "" "The format of the scoring rules is similar to the application " "slrn, but be aware that not all " "slrn scoring functions will work in " "Pan." msgstr "" #. (itstool) path: sect2/para #: C/index.docbook:1720 msgid "" "The slrn scoring functions are described in the document slrn - Scoring." msgstr "" #. (itstool) path: sect1/title #: C/index.docbook:1727 msgid "Customization" msgstr "Personalizar" #. (itstool) path: sect1/para #: C/index.docbook:1728 msgid "" "This section describes how certain features or actions in Pan can be customized." msgstr "" "Esta sección describe cómo se pueden personalizar ciertas acciones en " "Pan." #. (itstool) path: sect2/title #: C/index.docbook:1732 msgid "Behavior" msgstr "Comportamiento" #. (itstool) path: sect2/para #: C/index.docbook:1733 msgid "" "Many of the default actions of Pan, such as mouse " "clicks, actions when entering or leaving a group and the action of " "Space can be altered." msgstr "" #. (itstool) path: varlistentry/term #: C/index.docbook:1737 msgid "" "In Edit Preferences " "Behavior " msgstr "" "In EditarPreferenciasComportamiento" #. (itstool) path: listitem/para #: C/index.docbook:1747 msgid "Mouse" msgstr "Ratón" #. (itstool) path: listitem/para #: C/index.docbook:1748 msgid "" "The two boxes of the mouse section change the default action of the left " "mouse button. If unselected, you would have to double click on a group or " "article to activate it." msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1752 msgid "Groups" msgstr "Grupos" #. (itstool) path: listitem/para #: C/index.docbook:1753 msgid "" "The selections in the group section control what commands Pan will automatically run when manipulating groups." msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1757 msgid "" "The first box, when activated, will automatically get new headers for all " "subscribed groups whenever Pan is started. This is the equivalent of using " " Groups Get New Headers in " "Subscribed Groups from the menubar." msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1767 msgid "" "The next box, when activated, will automatically get new headers when " "entering a group. This is the equivalent of using " "Groups Get New Headers in Selected Group from the menubar." msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1777 msgid "" "The next box, when activated, will mark the entire group read when leaving a " "group. This is the equivalent of using Groups Mark Group Read from the " "menubar." msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1787 msgid "" "The last box in the Groups section, when activated, will expand all threads " "in the Header Pane when entering a group." msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1793 msgid "Articles" msgstr "Artículos" #. (itstool) path: listitem/para #: C/index.docbook:1794 msgid "" "The first option, when activated, makes Space select the " "next article rather than the next unread article. This is handy if you are " "viewing a thread with read and unread articles mixed together." msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1797 msgid "The next option activates smooth scrolling in the Article Pane." msgstr "" "La siguiente opción activa el desplazamiento suave en el panel de artículo." #. (itstool) path: sect2/title #: C/index.docbook:1806 msgid "GUI Composition" msgstr "Composición de la IGU" #. (itstool) path: sect2/para #: C/index.docbook:1807 msgid "" "The layout and view of the Group, Header and Body Panes in Pan can be customized in several ways." msgstr "" "La distribución y la vista de los paneles de grupo, cabecera y cuerpo en " "Pan se pueden personalizar de varias maneras." #. (itstool) path: varlistentry/term #: C/index.docbook:1811 msgid "Pane Layout" msgstr "Distribución de los paneles" #. (itstool) path: listitem/para #: C/index.docbook:1813 msgid "" "In Edit Preferences " "Layout the orientation of the " "Groups, Header and Body Panes can be manipulated." msgstr "" "En Editar Preferencias Disposición la " "orientación de los grupos, paneles de cabeceras y cuerpo pueden manipularse." #. (itstool) path: varlistentry/term #: C/index.docbook:1823 msgid "Tabbed Layout" msgstr "Distribución en pestañas" #. (itstool) path: listitem/para #: C/index.docbook:1825 msgid "" "Instead of having all three panes share the Pan " "main window at one time, another view, called Tabbed Layout, can be " "activated by choosing View " "Layout Tabbed Layout . Now, only one of the three Panes will be displayed at a time. " "Each Pane is brought to the front of other Panes by clicking on its tab " "located directly under the tool bar or by pressing \"1\", \"2\" or \"3\" for " "the Group, Header or Body Pane respectively." msgstr "" #. (itstool) path: varlistentry/term #: C/index.docbook:1838 msgid "Show/Hide Panes" msgstr "Mostrar/ocultar paneles" #. (itstool) path: listitem/para #: C/index.docbook:1840 msgid "" "You can hide a specific Pane by choosing from View Layout and using the " "selection box to show/hide each of the Panes." msgstr "" #. (itstool) path: varlistentry/term #: C/index.docbook:1849 msgid "Fonts" msgstr "Tipografías" #. (itstool) path: listitem/para #: C/index.docbook:1851 msgid "" "Choose Edit Preferences Fonts to select a font." msgstr "" "Seleccione EditarPreferencias Tipografías para " "seleccionar una tipografía." #. (itstool) path: listitem/para #: C/index.docbook:1858 msgid "" "Pan can use the monospace font in the article " "Pane, if activated." msgstr "" "Si está activado Pan puede usar la fuente " "monoespaciada en el panel del artículo." #. (itstool) path: varlistentry/term #: C/index.docbook:1862 msgid "Colors" msgstr "Colores" #. (itstool) path: listitem/para #: C/index.docbook:1864 msgid "" "Choose Edit Preferences Colors to customize the " "colors used in Pan." msgstr "" "Elija Editar Preferencias Colores para " "personalizar los colores usados en Pan." #. (itstool) path: listitem/para #: C/index.docbook:1871 msgid "" "The first section allows you to customize the colors used by scoring in the " "Header Pane. See for more information on how " "to use this feature." msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1873 msgid "" "The second section allows you to customize the colors used in the Body Pane." msgstr "" "La segunda sección le permite cambiar los colores usados en el panel de " "cuerpo." #. (itstool) path: sect2/title #: C/index.docbook:1880 msgid "External Applications" msgstr "Aplicaciones externas" #. (itstool) path: sect2/para #: C/index.docbook:1881 msgid "" "In this section you set up external applications that Pan can use." msgstr "" "En esta sección puede configurar las aplicaciones externas que puede usar " "Pan." #. (itstool) path: varlistentry/term #: C/index.docbook:1884 msgid "" "In Edit Preferences " "Applications :" msgstr "" "En EditarPreferenciasAplicaciones:" #. (itstool) path: listitem/para #: C/index.docbook:1894 msgid "Web Browser" msgstr "Navegador web" #. (itstool) path: listitem/para #: C/index.docbook:1895 msgid "" "Click the Web Button to choose which external application to launch when " "clicking on an HTML link." msgstr "" "Pulse en el botón web para elegir qué aplicación externa iniciar al pulsar " "en un enlace HTML." #. (itstool) path: listitem/para #: C/index.docbook:1899 msgid "Mail Reader" msgstr "Lector de correo" #. (itstool) path: listitem/para #: C/index.docbook:1900 msgid "" "Choose which external application to launch when clicking on an email " "address or when sending a post via email." msgstr "" #. (itstool) path: sect2/para #: C/index.docbook:1907 msgid "" "To set up an external text editor, choose Post Post to Newsgroup . From the " "Post Article dialog menubar, choose Edit " "Set Editor " msgstr "" #. (itstool) path: sect2/title #: C/index.docbook:1922 msgid "Article Cache Size" msgstr "Tamaño de la caché de artículos" #. (itstool) path: sect2/para #: C/index.docbook:1923 msgid "" "The article cache is a fixed-size disk buffer where Pan stores articles when they are downloaded from a news server. If " "the user downloads a large amount of binary attachments, the default cache " "size might be inadequate." msgstr "" #. (itstool) path: sect2/para #: C/index.docbook:1926 msgid "" "The article cache size can be changed in Edit Preferences Behavior Article Cache " msgstr "" "El tamaño de la caché de artículos se puede cambiar en " "Editar Preferencias " "Comportamiento Caché de artículos " #. (itstool) path: sect2/title #: C/index.docbook:1939 msgid "News Servers" msgstr "Servidores de noticias" #. (itstool) path: sect2/para #: C/index.docbook:1940 msgid "" "Pan must connect to a special computer called a " "news server. The news server is the gateway used to access Usenet." msgstr "" "Pan debe conectarse a un servidor especial " "llamado servidor de noticias. El servidor de noticias es la pasarela " "utilizada para acceder a Usenet." #. (itstool) path: sect2/para #: C/index.docbook:1942 msgid "" "Choose Edit Edit News Servers and the Servers dialog will " "appear. Click on a server name and you can edit or remove it via the " "buttons. Click the Add button to add another server." msgstr "" #. (itstool) path: sect2/para #: C/index.docbook:1950 msgid "" "When you add or edit an existing server, the Edit a Server's " "Settings dialog will appear." msgstr "" "Cuando agrega o edita un servidor existente el diálogo Editar la " "configuración del servidor aparecerá." #. (itstool) path: sect2/para #: C/index.docbook:1952 msgid "In the location section:" msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1956 msgid "Address" msgstr "Dirección" #. (itstool) path: listitem/para #: C/index.docbook:1957 msgid "The internet address of the server." msgstr "La dirección de internet de este servidor." #. (itstool) path: listitem/para #: C/index.docbook:1960 msgid "Port" msgstr "Puerto" #. (itstool) path: listitem/para #: C/index.docbook:1961 msgid "" "The port of the server. Port 119 is the standard port number for unsecured " "NNTP connections, port 563 is for TLS/SSL connections." msgstr "" "El puerto del servidor. El estándar para conexiones NNTP no seguras es el " "119, y el 563 es para conexiones TLS/SSL." #. (itstool) path: sect2/para #: C/index.docbook:1964 msgid "" "The next section is the login information for the server. If you server " "requires a username and password, enter them here. If the server allows " "anonymous login or does not require authentication, just let these fields " "blank." msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1969 msgid "Username" msgstr "Nombre de usuario" #. (itstool) path: listitem/para #: C/index.docbook:1970 msgid "Enter the login name if required." msgstr "Introduzca el nombre de inicio de sesión si es necesario." #. (itstool) path: listitem/para #: C/index.docbook:1973 msgid "Password" msgstr "Contraseña" #. (itstool) path: listitem/para #: C/index.docbook:1974 msgid "Enter the password if required." msgstr "Introduzca la contraseña si es necesario." #. (itstool) path: note/para #: C/index.docbook:1976 msgid "" "Pan can store saved passwords in a password " "storage service provided by GNOME Keyring or " "libsecret. To enable this feature, use " "Edit PreferencesMiscellaneousSave passwords " "in password storage. Password storage support is an " "optional feature and may not be available in your Pan build." msgstr "" "Pan puede almacenar las contraseñas guardadas en " "un servicio de almacenamiento de contraseñas proporcionado por " "GNOME Keyring o libsecret. " "Para activar esta característica use Editar " "PreferenciasMisceláneaGuardar contraseñas en el almacenamiento de " "contraseñas. El soporte para almacenamiento de " "contraseñas es una característica opcional y puede no estar disponible en su " "versión de Pan." #. (itstool) path: sect2/para #: C/index.docbook:1984 msgid "" "The next section allows you to enter certain Pan " "settings that are server specific." msgstr "" "La próxima sección le permite añadir ciertas configuraciones de " "Pan que son específicas del servidor." #. (itstool) path: listitem/para #: C/index.docbook:1987 msgid "Connection Limit" msgstr "Límite de conexiones" #. (itstool) path: listitem/para #: C/index.docbook:1988 msgid "" "Pan can open multiple connections to a server so " "the user can perform simultaneous actions like download a binary attachment " "will reading articles in a text group." msgstr "" "Pan puede abrir múltiples conexiones a un " "servidor para que el usuario pueda realizar acciones simultáneas como " "descargar un archivo adjunto binario y leer artículos en un grupo de texto." #. (itstool) path: listitem/para #: C/index.docbook:1990 msgid "" "In order to follow the GNKSA rules, the maximum number of connections Pan can have open with a server is 4." msgstr "" "Para seguir las reglas de GNKSA, la cantidad máxima de conexiones que Pan puede tener abiertas con un servidor es cuatro." #. (itstool) path: listitem/para #: C/index.docbook:1994 msgid "Expire Old Articles" msgstr "Caducar los artículos antiguos" #. (itstool) path: listitem/para #: C/index.docbook:1995 msgid "" "From this toggle box, you can pick a time when Pan will expire old articles and remove them from its article index." msgstr "" #. (itstool) path: listitem/para #: C/index.docbook:1999 msgid "Server Rank" msgstr "Puntuación del servidor" #. (itstool) path: listitem/para #: C/index.docbook:2000 msgid "" "When you have more than 1 server configured, Pan " "uses server rank to decide from which server to download the article. Only " "after all primary servers have been tried for the article will " "Pan use the fallback servers." msgstr "" "Cuando tiene más de un servidor configurado Pan " "usa el rango del servidor para decidir desde qué servidor descargar el " "artículo. Solo después de que se hayan probado todos los servidores " "primarios para el artículo Pan usará los " "servidores alternativos." #. (itstool) path: listitem/para #: C/index.docbook:2003 msgid "" "The reason for this feature is that a user might have access to a free " "server and also have access to a byte-limited premium server. Server ranking " "allows Pan to use the fallback server as little " "as possible." msgstr "" "El motivo de esta característica es que un usuario puede tener acceso a un " "servidor gratuito y también a un servidor de primera calidad de bytes " "limitados. La clasificación del servidor permite que Pan use el servidor de respaldo lo menos posible." #. (itstool) path: listitem/para #: C/index.docbook:2008 msgid "TLS (SSL) Options" msgstr "Opciones de TLS (SSL)" #. (itstool) path: listitem/para #: C/index.docbook:2009 msgid "" "If security and privacy are of concern, choose secured connections if the " "server supports it." msgstr "" "Si la seguridad o privacidad son motivos de preocupación, seleccione " "conexiones seguras si el servidor lo soporta." #. (itstool) path: note/para #: C/index.docbook:2011 msgid "" "TLS (SSL) support is an optional feature and may not be available in your " "Pan build." msgstr "" "El soporte de TLS (SSL) es una característica opcional y puede que no esté " "disponible en su compilación de Pan." #. (itstool) path: listitem/para #: C/index.docbook:2015 msgid "Always trust this server's certificate" msgstr "" "Confiar siempre en el certificado de este servidor" #. (itstool) path: listitem/para #: C/index.docbook:2016 msgid "" "If you want to trust the server regardless of the authenticity of its " "certificate, you can enable this option. Use with caution!" msgstr "" "Debe activar esta poción si quiere confiar en el servidor independientemente " "de la autenticidad del certificado. ¡Úselo con precaución!" #~ msgid "" #~ "Permission is granted to copy, distribute and/or modify this document " #~ "under the terms of the GNU Free Documentation License (GFDL), Version 1.1 " #~ "or any later version published by the Free Software Foundation with no " #~ "Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. You " #~ "can find a copy of the GFDL at this link or in the file COPYING-DOCS distributed with this manual." #~ msgstr "" #~ "Se concede autorización para copiar, distribuir o modificar este " #~ "documento según los términos de la GFDL (GNU Free Documentation Licence), " #~ "Versión 1.1, o cualquier otra versión posterior publicada por Free " #~ "Software Foundation sin secciones invariables, textos de portada ni " #~ "textos de contraportada. Podrá encontrar una copia de la GFDL en este " #~ "enlace o en el archivo " #~ "COPYING-DOCS distribuido con este manual." #~ msgid "" #~ "This manual is part of a collection of GNOME manuals distributed under " #~ "the GFDL. If you want to distribute this manual separately from the " #~ "collection, you can do so by adding a copy of the license to the manual, " #~ "as described in section 6 of the license." #~ msgstr "" #~ "Este manual es parte de la colección de manuales GNOME distribuidos bajo " #~ "el GFDL. Si quiere distribuir este manual separadamente de la colección, " #~ "puede hacerlo añadiendo una copia de la licencia al manual, como está " #~ "descrito en la sección 6 de la licencia." #~ msgid "" #~ "Many of the names used by companies to distinguish their products and " #~ "services are claimed as trademarks. Where those names appear in any GNOME " #~ "documentation, and the members of the GNOME Documentation Project are " #~ "made aware of those trademarks, then the names are in capital letters or " #~ "initial capital letters." #~ msgstr "" #~ "Muchos de los nombres usados por compañías para distinguir sus productos " #~ "y servicios son mencionados como marcas comerciales. Donde esos nombres " #~ "aparezcan en cualquier documentación de GNOME, y los miembros del " #~ "Proyecto de Documentación de GNOME están al corriente de esas marcas " #~ "comerciales, entonces los nombres se pondrán en mayúsculas o con la " #~ "inicial en mayúsculas." #~ msgid "" #~ "DOCUMENT IS PROVIDED ON AN \"AS IS\" BASIS, WITHOUT WARRANTY OF ANY KIND, " #~ "EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES " #~ "THAT THE DOCUMENT OR MODIFIED VERSION OF THE DOCUMENT IS FREE OF DEFECTS " #~ "MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE " #~ "RISK AS TO THE QUALITY, ACCURACY, AND PERFORMANCE OF THE DOCUMENT OR " #~ "MODIFIED VERSION OF THE DOCUMENT IS WITH YOU. SHOULD ANY DOCUMENT OR " #~ "MODIFIED VERSION PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL " #~ "WRITER, AUTHOR OR ANY CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY " #~ "SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES " #~ "AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY DOCUMENT OR MODIFIED " #~ "VERSION OF THE DOCUMENT IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS " #~ "DISCLAIMER; AND" #~ msgstr "" #~ "EL DOCUMENTO SE ENTREGA \"TAL CUAL\", SIN GARANTÍA DE NINGÚN TIPO, NI " #~ "EXPLÍCITA NI IMPLÍCITA INCLUYENDO, SIN LIMITACIÓN, GARANTÍA DE QUE EL " #~ "DOCUMENTO O VERSIÓN MODIFICADA DE ÉSTE CAREZCA DE DEFECTOS EN EL MOMENTO " #~ "DE SU VENTA, SEA ADECUADO A UN FIN CONCRETO O INCLUMPLA ALGUNA NORMATIVA. " #~ "TODO EL RIESGO RELATIVO A LA CALIDAD, PRECISIÓN Y UTILIDAD DEL DOCUMENTO " #~ "O SU VERSIÓN MODIFICADA RECAE EN USTED. SI CUALQUIER DOCUMENTO O VERSIÓN " #~ "MODIFICADA DE AQUÉL RESULTARA DEFECTUOSO EN CUALQUIER ASPECTO, USTED (Y " #~ "NO EL REDACTOR INICIAL, AUTOR O AUTOR DE APORTACIONES) ASUMIRÁ LOS COSTES " #~ "DE TODA REPARACIÓN, MANTENIMIENTO O CORRECCIÓN NECESARIOS. ESTA EXENCIÓN " #~ "DE RESPONSABILIDAD SOBRE LA GARANTÍA ES UNA PARTE ESENCIAL DE ESTA " #~ "LICENCIA. NO SE AUTORIZA EL USO DE NINGÚN DOCUMENTO NI VERSIÓN MODIFICADA " #~ "DE ÉSTE POR EL PRESENTE, SALVO DENTRO DEL CUMPLIMIENTO DE LA EXENCIÓN DE " #~ "RESPONSABILIDAD;Y" #~ msgid "" #~ "UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER IN TORT " #~ "(INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL THE AUTHOR, INITIAL " #~ "WRITER, ANY CONTRIBUTOR, OR ANY DISTRIBUTOR OF THE DOCUMENT OR MODIFIED " #~ "VERSION OF THE DOCUMENT, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE " #~ "LIABLE TO ANY PERSON FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR " #~ "CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, " #~ "DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR " #~ "MALFUNCTION, OR ANY AND ALL OTHER DAMAGES OR LOSSES ARISING OUT OF OR " #~ "RELATING TO USE OF THE DOCUMENT AND MODIFIED VERSIONS OF THE DOCUMENT, " #~ "EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH " #~ "DAMAGES." #~ msgstr "" #~ "BAJO NINGUNA CIRCUNSTANCIA NI BAJO NINGUNA TEORÍA LEGAL, SEA POR ERROR " #~ "(INCLUYENDO NEGLIGENCIA), CONTRATO O DE ALGÚN OTRO MODO, EL AUTOR, EL " #~ "ESCRITOR INICIAL, CUALQUIER CONTRIBUIDOR, O CUALQUIER DISTRIBUIDOR DEL " #~ "DOCUMENTO O VERSIÓN MODIFICADA DEL DOCUMENTO, O CUALQUIER PROPORCIONADOR " #~ "DE CUALQUIERA DE ESAS PARTES, SERÁ RESPONSABLE ANTE NINGUNA PERSONA POR " #~ "NINGÚN DAÑO DIRECTO, INDIRECTO, ESPECIAL, INCIDENTAL O DERIVADO DE NINGÚN " #~ "TIPO, INCLUYENDO, SIN LIMITACIÓN DAÑOS POR PÉRDIDA DE MERCANCÍAS, PARO " #~ "TÉCNICO, FALLO INFORMÁTICO O MAL FUNCIONAMIENTO O CUALQUIER OTRO POSIBLE " #~ "DAÑO O PÉRDIDAS DERIVADAS O RELACIONADAS CON EL USO DEL DOCUMENTO O SUS " #~ "VERSIONES MODIFICADAS, AUNQUE DICHA PARTE HAYA SIDO INFORMADA DE LA " #~ "POSIBILIDAD DE QUE SE PRODUJESEN DICHOS DAÑOS." #~ msgid "" #~ "DOCUMENT AND MODIFIED VERSIONS OF THE DOCUMENT ARE PROVIDED UNDER THE " #~ "TERMS OF THE GNU FREE DOCUMENTATION LICENSE WITH THE FURTHER " #~ "UNDERSTANDING THAT: <_:orderedlist-1/>" #~ msgstr "" #~ "EL DOCUMENTO Y LAS VERSIONES MODIFICADAS DEL MISMO SE PROPORCIONAN CON " #~ "SUJECIÓN A LOS TÉRMINOS DE LA GFDL, QUEDANDO BIEN ENTENDIDO, ADEMÁS, QUE: " #~ "<_:orderedlist-1/>" #~ msgid "2006" #~ msgstr "2006" #~ msgid "2011" #~ msgstr "2011" #~ msgid "Pan Documentation Project" #~ msgstr "Proyecto de Documentación de Pan" #~ msgid "Douglas" #~ msgstr "Douglas" #~ msgid "Bollinger" #~ msgstr "Bollinger" #~ msgid "pan@rebelbase.com" #~ msgstr "pan@rebelbase.com" #~ msgid "V 0.1" #~ msgstr "V 0.1" #~ msgid "December 2006" #~ msgstr "Diciembre de 2006" #~ msgid "Douglas Bollinger pan@rebelbase.com" #~ msgstr "Douglas Bollinger pan@rebelbase.com" #~ msgid "GNOME Documentation Project" #~ msgstr "Proyecto de Documentación GNOME" #~ msgid "This manual describes Pan version 1.0." #~ msgstr "Este manual describe la versión 1.0 de Pan." #~ msgid "Pan" #~ msgstr "Pan" #~ msgid "pan" #~ msgstr "pan" #~ msgid "Applications menu" #~ msgstr "Menú Aplicaciones" #~ msgid "This is the main window" #~ msgstr "Esta es la ventana principal de " #~ msgid "Menubar." #~ msgstr "Barra de menú." #~ msgid "Toolbar." #~ msgstr "Barra de herramientas." #~ msgid "Group Pane." #~ msgstr "Panel de grupo" #~ msgid "Header Pane." #~ msgstr "Panel de la cabecera." #~ msgid "Body Pane." #~ msgstr "Panel del cuerpo." #~ msgid "Statusbar." #~ msgstr "Barra de estado." #~ msgid "Mark Group Read" #~ msgstr "Marcar grupo como leído" #~ msgid "Get New Headers in Subscribed Groups" #~ msgstr "Obtener cabeceras nuevas de los grupos suscritos" #~ msgid "Edit Group Preferences" #~ msgstr "Editar preferencias del grupo" #~ msgid "Subscribe" #~ msgstr "Suscribirse" #~ msgid "Refresh Group List" #~ msgstr "Actualizar la lista de grupos" #~ msgid "Go" #~ msgstr "Ir" #~ msgid "Read More" #~ msgstr "Leer más" #~ msgid "Read Back" #~ msgstr "Leer atrás" #~ msgid "Next Unread Group" #~ msgstr "Siguiente grupo no leído" #~ msgid "Next Group" #~ msgstr "Siguiente grupo" #~ msgid "Next Unread Article" #~ msgstr "Siguiente artículo no leído" #~ msgid "Next Article" #~ msgstr "Siguiente artículo" #~ msgid "Next Watched Article" #~ msgstr "Siguiente artículo vigilado" #~ msgid "Previous Article" #~ msgstr "Artículo anterior" #~ msgid "Parent Article" #~ msgstr "Artículo padre" #~ msgid "Next Unread Thread" #~ msgstr "Siguiente conversación no leída" #~ msgid "Next Thread" #~ msgstr "Siguiente conversación" #~ msgid "Previous Thread" #~ msgstr "Conversación anterior" #~ msgid "Edit" #~ msgstr "Editar" #~ msgid "Select All Articles" #~ msgstr "Seleccionar todos los artículos" #~ msgid "Add Subthreads to Selection" #~ msgstr "Añadir cconversaciones a la selección" #~ msgid "Add Threads to Selection" #~ msgstr "Añadir conversaciones a la selección" #~ msgid "Add Similar Articles to Selection" #~ msgstr "Añadir artículos similares a la selección" #~ msgid "Deselect All Articles" #~ msgstr "Deseleccionar todos los artículos" #~ msgid "Select Article Body" #~ msgstr "Seleccionar el cuerpo del artículo" #~ msgid "Articles" #~ msgstr "Artículos" #~ msgid "Save Article" #~ msgstr "Guardar artículo" #~ msgid "Save Text" #~ msgstr "guardar texto" #~ msgid "Path" #~ msgstr "Ruta" #~ msgid "Priority" #~ msgstr "Prioridad" #~ msgid "Read Article" #~ msgstr "Leer artículo" #~ msgid "Cache Article" #~ msgstr "Almacenar artículo" #~ msgid "Mark Article as Read" #~ msgstr "Marcar artículo como leído" #~ msgid "Mark Article as Unread" #~ msgstr "Marcar artículo como no leído" #~ msgid "Delete Article" #~ msgstr "Eliminar artículo" #~ msgid "Post" #~ msgstr "Publicar" #~ msgid "Post to Newsgroup" #~ msgstr "Publicar al grupo de noticias" #~ msgid "Followup to Newsgroup" #~ msgstr "Reenviar al grupo de noticias" #~ msgid "Reply to Author in Mail" #~ msgstr "Responder al autor por correo" #~ msgid "Profile Name" #~ msgstr "Nombre del perfil" #~ msgid "Full Name" #~ msgstr "Nombre completo" #~ msgid "Email Address" #~ msgstr "Dirección de correo electrónico" #~ msgid "Text" #~ msgstr "Texto" #~ msgid "Text File" #~ msgstr "Archivo de texto" #~ msgid "Command" #~ msgstr "Comando" #~ msgid "PGP-Signature" #~ msgstr "Firma PGP" #~ msgid "Attribution" #~ msgstr "Atribución" #~ msgid "Extra Headers" #~ msgstr "Cabeceras adicionales" #~ msgid "From" #~ msgstr "De" #~ msgid "Subject" #~ msgstr "Asunto" #~ msgid "Newsgroups" #~ msgstr "Grupos de noticias" #~ msgid "More Headers" #~ msgstr "Más cabeceras" #~ msgid "Text Area" #~ msgstr "Área te texto" #~ msgid "File" #~ msgstr "Archivo" #~ msgid "Send Article" #~ msgstr "Enviar artículo" #~ msgid "Save Draft" #~ msgstr "Guardar borrador" #~ msgid "Open Draft" #~ msgstr "Abrir borrador" #~ msgid "Run Editor" #~ msgstr "Ejecutar editor" #~ msgid "Set Editor" #~ msgstr "Establecer editor" #~ msgid "Cut, Copy and Paste" #~ msgstr "Cortar, copiar y pegar" #~ msgid "Wrap Now" #~ msgstr "Ajustar ahora" #~ msgid "Wrap Text" #~ msgstr "Ajustar texto" #~ msgid "Check Spelling" #~ msgstr "Comprobar ortografía" #~ msgid "ROT 13" #~ msgstr "ROT 13" #~ msgid "Task List." #~ msgstr "Lista de tareas." #~ msgid "Mouse" #~ msgstr "Ratón" #~ msgid "Pane Layout" #~ msgstr "Distribución de los paneles" #~ msgid "Tabbed Layout" #~ msgstr "Disposición con pestañas" #~ msgid "Show/Hide Panes" #~ msgstr "Mostrar / Ocultar paneles" #~ msgid "Fonts" #~ msgstr "Tipografías" #~ msgid "Colors" #~ msgstr "Colores" #~ msgid "Web Browser" #~ msgstr "Navegador web" #~ msgid "Mail Reader" #~ msgstr "Lector de correo-e" #~ msgid "Address" #~ msgstr "Dirección" #~ msgid "Port" #~ msgstr "Puerto" #~ msgid "Username" #~ msgstr "Nombre de usuario" #~ msgid "Password" #~ msgstr "Contraseña" #~ msgid "Server Rank" #~ msgstr "Rango de servidores" #~ msgid "Always trust" #~ msgstr "Confiar siempre" pan-0.162/help/sv/000077500000000000000000000000001475412772400136755ustar00rootroot00000000000000pan-0.162/help/sv/sv.po000066400000000000000000004270131475412772400146740ustar00rootroot00000000000000# Swedish translation for pan. # Copyright © 2021-2024 pan's COPYRIGHT HOLDER # This file is distributed under the same license as the pan package. # Anders Jonsson , 2021, 2022, 2024. # msgid "" msgstr "" "Project-Id-Version: pan master\n" "POT-Creation-Date: 2024-04-14 16:01+0000\n" "PO-Revision-Date: 2024-04-15 00:27+0200\n" "Last-Translator: Anders Jonsson \n" "Language-Team: Swedish \n" "Language: sv\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Poedit 3.4.2\n" #. (itstool) path: para/ulink #: C/legal.xml:9 msgid "link" msgstr "länk" #. (itstool) path: legalnotice/para #: C/legal.xml:2 msgid "" "Permission is granted to copy, distribute and/or modify this document under " "the terms of the GNU Free Documentation License (GFDL), Version 1.1 or any " "later version published by the Free Software Foundation with no Invariant " "Sections, no Front-Cover Texts, and no Back-Cover Texts. You can find a copy " "of the GFDL at this <_:ulink-1/> or in the file COPYING-DOCS distributed " "with this manual." msgstr "" "Tillstånd att kopiera, distribuera och/eller modifiera detta dokument ges " "under villkoren i GNU Free Documentation License (GFDL), version 1.1 eller " "senare, utgivet av Free Software Foundation utan standardavsnitt och " "omslagstexter. En kopia av GFDL finns att hämta på denna <_:ulink-1/> eller " "i filen COPYING-DOCS som medföljer denna handbok." #. (itstool) path: legalnotice/para #: C/legal.xml:12 msgid "" "This manual is part of a collection of GNOME manuals distributed under the " "GFDL. If you want to distribute this manual separately from the collection, " "you can do so by adding a copy of the license to the manual, as described in " "section 6 of the license." msgstr "" "Denna handbok utgör en av flera GNOME-handböcker som distribueras under " "villkoren i GFDL. Om du vill distribuera denna handbok separat från övriga " "handböcker kan du göra detta genom att lägga till en kopia av licensavtalet " "i handboken enligt instruktionerna i avsnitt 6 i licensavtalet." #. (itstool) path: legalnotice/para #: C/legal.xml:19 msgid "" "Many of the names used by companies to distinguish their products and " "services are claimed as trademarks. Where those names appear in any GNOME " "documentation, and the members of the GNOME Documentation Project are made " "aware of those trademarks, then the names are in capital letters or initial " "capital letters." msgstr "" "Många av de namn som används av företagen för att särskilja sina produkter " "och tjänster är registrerade varumärken. I de fall dessa namn förekommer i " "GNOME-dokumentation - och medlemmarna i GNOME:s dokumentationsprojekt är " "medvetna om dessa varumärken - är de skrivna med versaler eller med " "inledande versal." #. (itstool) path: listitem/para #: C/legal.xml:35 msgid "" "DOCUMENT IS PROVIDED ON AN \"AS IS\" BASIS, WITHOUT WARRANTY OF ANY KIND, " "EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT " "THE DOCUMENT OR MODIFIED VERSION OF THE DOCUMENT IS FREE OF DEFECTS " "MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE " "RISK AS TO THE QUALITY, ACCURACY, AND PERFORMANCE OF THE DOCUMENT OR " "MODIFIED VERSION OF THE DOCUMENT IS WITH YOU. SHOULD ANY DOCUMENT OR " "MODIFIED VERSION PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL " "WRITER, AUTHOR OR ANY CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY " "SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN " "ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY DOCUMENT OR MODIFIED VERSION " "OF THE DOCUMENT IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER; AND" msgstr "" "DOKUMENTET TILLHANDAHÅLLS I \"BEFINTLIGT SKICK\" UTAN NÅGRA SOM HELST " "GARANTIER, VARE SIG UTTRYCKLIGA ELLER UNDERFÖRSTÅDDA, INKLUSIVE, MEN INTE " "BEGRÄNSAT TILL, GARANTIER ATT DOKUMENTET ELLER EN MODIFIERAD VERSION AV " "DOKUMENTET INTE INNEHÅLLER NÅGRA FELAKTIGHETER, ÄR LÄMPLIGT FÖR ETT VISST " "ÄNDAMÅL ELLER INTE STRIDER MOT LAG. HELA RISKEN VAD GÄLLER KVALITET, " "EXAKTHET OCH UTFÖRANDE AV DOKUMENTET OCH MODIFIERADE VERSIONER AV DOKUMENTET " "LIGGER HELT OCH HÅLLET PÅ ANVÄNDAREN. OM ETT DOKUMENT ELLER EN MODIFIERAD " "VERSION AV ETT DOKUMENT SKULLE VISA SIG INNEHÅLLA FELAKTIGHETER I NÅGOT " "HÄNSEENDE ÄR DET DU (INTE DEN URSPRUNGLIGA SKRIBENTEN, FÖRFATTAREN ELLER " "NÅGON ANNAN MEDARBETARE) SOM FÅR STÅ FÖR ALLA EVENTUELLA KOSTNADER FÖR " "SERVICE, REPARATIONER ELLER KORRIGERINGAR. DENNA GARANTIFRISKRIVNING UTGÖR " "EN VÄSENTLIG DEL AV DETTA LICENSAVTAL. DETTA INNEBÄR ATT ALL ANVÄNDNING AV " "ETT DOKUMENT ELLER EN MODIFIERAD VERSION AV ETT DOKUMENT BEVILJAS ENDAST " "UNDER DENNA ANSVARSFRISKRIVNING;" #. (itstool) path: listitem/para #: C/legal.xml:55 msgid "" "UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER IN TORT (INCLUDING " "NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL THE AUTHOR, INITIAL WRITER, ANY " "CONTRIBUTOR, OR ANY DISTRIBUTOR OF THE DOCUMENT OR MODIFIED VERSION OF THE " "DOCUMENT, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON " "FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF " "ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, " "WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER DAMAGES " "OR LOSSES ARISING OUT OF OR RELATING TO USE OF THE DOCUMENT AND MODIFIED " "VERSIONS OF THE DOCUMENT, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE " "POSSIBILITY OF SUCH DAMAGES." msgstr "" "UNDER INGA OMSTÄNDIGHETER ELLER INOM RAMEN FÖR NÅGON LAGSTIFTNING, OAVSETT " "OM DET GÄLLER KRÄNKNING (INKLUSIVE VÅRDSLÖSHET), KONTRAKT ELLER DYLIKT, SKA " "FÖRFATTAREN, DEN URSPRUNGLIGA SKRIBENTEN ELLER ANNAN MEDARBETARE ELLER " "ÅTERFÖRSÄLJARE AV DOKUMENTET ELLER AV EN MODIFIERAD VERSION AV DOKUMENTET " "ELLER NÅGON LEVERANTÖR TILL NÅGON AV NÄMNDA PARTER STÄLLAS ANSVARIG GENTEMOT " "NÅGON FÖR NÅGRA DIREKTA, INDIREKTA, SÄRSKILDA ELLER OFÖRUTSEDDA SKADOR ELLER " "FÖLJDSKADOR AV NÅGOT SLAG, INKLUSIVE, MEN INTE BEGRÄNSAT TILL, SKADOR " "BETRÄFFANDE FÖRLORAD GOODWILL, HINDER I ARBETET, DATORHAVERI ELLER NÅGRA " "ANDRA TÄNKBARA SKADOR ELLER FÖRLUSTER SOM KAN UPPKOMMA PÅ GRUND AV ELLER " "RELATERAT TILL ANVÄNDNINGEN AV DOKUMENTET ELLER MODIFIERADE VERSIONER AV " "DOKUMENTET, ÄVEN OM PART SKA HA BLIVIT INFORMERAD OM MÖJLIGHETEN TILL SÅDANA " "SKADOR." #. (itstool) path: legalnotice/para #: C/legal.xml:28 msgid "" "DOCUMENT AND MODIFIED VERSIONS OF THE DOCUMENT ARE PROVIDED UNDER THE TERMS " "OF THE GNU FREE DOCUMENTATION LICENSE WITH THE FURTHER UNDERSTANDING THAT: " "<_:orderedlist-1/>" msgstr "" "DOKUMENTET OCH MODIFIERADE VERSIONER AV DOKUMENTET TILLHANDAHÅLLS UNDER " "VILLKOREN I GNU FREE DOCUMENTATION LICENSE ENDAST UNDER FÖLJANDE " "FÖRUTSÄTTNINGAR: <_:orderedlist-1/>" #. Put one translator per line, in the form NAME , YEAR1, YEAR2 msgctxt "_" msgid "translator-credits" msgstr "Anders Jonsson , 2021" #. (itstool) path: abstract/para #: C/index.docbook:41 msgid "Pan is a powerful and user-friendly USENET newsreader for GTK+." msgstr "Pan är en kraftfull och användarvänlig USENET-nyhetsläsare för GTK+." #. (itstool) path: articleinfo/title #: C/index.docbook:44 msgid "Pan Manual" msgstr "Handbok för Pan" #. (itstool) path: articleinfo/copyright #: C/index.docbook:46 msgid "2006 Douglas Bollinger" msgstr "2006 Douglas Bollinger" #. (itstool) path: articleinfo/copyright #: C/index.docbook:51 msgid "2011 Heinrich Müller" msgstr "2011 Heinrich Müller" #. (itstool) path: articleinfo/copyright #: C/index.docbook:56 msgid "2011 Petr Kovar" msgstr "2011 Petr Kovar" #. (itstool) path: authorgroup/author #: C/index.docbook:83 msgid "" "Douglas Bollinger " msgstr "" "Douglas Bollinger " #. (itstool) path: revdescription/para #: C/index.docbook:124 C/index.docbook:132 msgid "Petr Kovar" msgstr "Petr Kovar" #. (itstool) path: revhistory/revision #: C/index.docbook:120 msgid "" "V 0.3 April 2017 <_:revdescription-1/>" msgstr "" "v0.3 April 2017 <_:revdescription-1/>" #. (itstool) path: revdescription/para #: C/index.docbook:131 msgid "Heinrich Müller" msgstr "Heinrich Müller" #. (itstool) path: revhistory/revision #: C/index.docbook:127 msgid "" "V 0.2 January 2011 <_:revdescription-1/>" msgstr "" "v0.2 Januari 2011 <_:revdescription-1/>" #. (itstool) path: revdescription/para #: C/index.docbook:139 msgid "Douglas Bollinger" msgstr "Douglas Bollinger" #. (itstool) path: revhistory/revision #: C/index.docbook:135 msgid "" "V 0.1 December 2006 <_:revdescription-1/>" msgstr "" "v0.1 December 2006 <_:revdescription-1/>" #. (itstool) path: legalnotice/title #: C/index.docbook:150 msgid "Feedback" msgstr "Återkoppling" #. (itstool) path: legalnotice/para #: C/index.docbook:151 msgid "" "To report a bug or make a suggestion regarding the Pan application or this manual, follow the directions in the Pan Contact Page." msgstr "" "För att rapportera ett fel eller komma med ett förslag för programmet " "Pan eller denna handbok, följ instruktionerna på " "kontaktsidan för Pan." #. (itstool) path: article/indexterm #: C/index.docbook:160 msgid "Pan" msgstr "Pan" #. (itstool) path: article/indexterm #: C/index.docbook:163 msgid "pan" msgstr "pan" #. (itstool) path: sect1/title #: C/index.docbook:172 msgid "Introduction" msgstr "Introduktion" #. (itstool) path: sect1/para #: C/index.docbook:173 msgid "" "The Pan application enables you to read and post " "articles and binaries on Usenet." msgstr "" "Programmet Pan låter dig läsa och posta artiklar " "och binärer på Usenet." #. (itstool) path: sect1/title #: C/index.docbook:179 msgid "Getting Started" msgstr "Komma igång" #. (itstool) path: sect1/para #: C/index.docbook:180 msgid "" "This section provides information on how to start Pan, and describes the Pan user " "interface." msgstr "" "Detta avsnitt ger information om hur Pan startas " "och beskriver användargränssnittet för Pan." #. (itstool) path: sect2/title #: C/index.docbook:183 msgid "To Start Pan" msgstr "För att starta Pan" #. (itstool) path: sect2/para #: C/index.docbook:184 msgid "" "How to start Pan depends on your desktop " "environment." msgstr "" "Hur du startar Pan beror på din skrivbordsmiljö." #. (itstool) path: varlistentry/term #: C/index.docbook:188 msgid "The GNOME Desktop Environment" msgstr "Skrivbordsmiljön GNOME" #. (itstool) path: listitem/para #: C/index.docbook:190 msgid "" "Press the Super key to enter the Activities Overview, type " "pan, and then press Enter." msgstr "" "Tryck på tangenten Super för att gå in i översiktsvyn " "Aktiviteter, skriv pan, och tryck sedan " "Retur." #. (itstool) path: varlistentry/term #: C/index.docbook:196 msgid "Command line" msgstr "Kommandoraden" #. (itstool) path: listitem/para #: C/index.docbook:198 msgid "" "To start Pan from a command line, type the " "following command, then press Enter:" msgstr "" "För att starta Pan från en kommandorad, ange " "följande kommando, tryck sedan på Retur:" #. (itstool) path: listitem/screen #: C/index.docbook:200 #, no-wrap msgid "pan" msgstr "pan" #. (itstool) path: sect2/title #: C/index.docbook:209 msgid "When You Start Pan" msgstr "När du startar Pan" #. (itstool) path: sect2/para #: C/index.docbook:210 msgid "" "When you start Pan, the following window is " "displayed:" msgstr "När du startar Pan visas följande fönster:" #. (itstool) path: figure/title #: C/index.docbook:214 msgid "Pan Main Window" msgstr "Huvudfönster för Pan" #. (itstool) path: imageobject/imagedata #. This is a reference to an external file such as an image or video. When #. the file changes, the md5 hash will change to let you know you need to #. update your localized copy. The msgstr is not used at all. Set it to #. whatever you like once you have updated your copy of the file. #: C/index.docbook:217 msgctxt "_" msgid "" "external ref='figures/pan_window.png' md5='c9415a98935ef2e2568797388206877c'" msgstr "" "external ref='figures/pan_window.png' md5='c9415a98935ef2e2568797388206877c'" #. (itstool) path: screenshot/mediaobject #: C/index.docbook:216 msgid "" " " " This is the Pan main window " msgstr "" " " " Detta är huvudfönstret för " "Pan " #. (itstool) path: sect2/para #: C/index.docbook:236 msgid "" "The main Pan window contains the following " "elements:" msgstr "" "Huvudfönstret för Pan innehåller följande element:" #. (itstool) path: varlistentry/term #: C/index.docbook:240 msgid "Menubar" msgstr "Menyrad" #. (itstool) path: listitem/para #: C/index.docbook:242 msgid "" "The menubar contains all the commands that you need to run Pan." msgstr "" "Menyraden innehåller alla kommandon som du behöver för att köra " "Pan." #. (itstool) path: varlistentry/term #: C/index.docbook:247 msgid "Toolbar" msgstr "Verktygsfält" #. (itstool) path: listitem/para #: C/index.docbook:249 msgid "" "The toolbar contains a subset of the commands that you can access from the " "menubar. It also contains two textboxes that allow you to limit the number " "of groups and/or the number of articles displayed." msgstr "" "Verktygsfältet innehåller en delmängd av kommandona som du kan komma åt från " "menyraden. Det innehåller också två textrutor som låter dig begränsa antalet " "grupper och/eller artiklar som visas." #. (itstool) path: varlistentry/term #: C/index.docbook:255 msgid "Group Pane" msgstr "Gruppanel" #. (itstool) path: listitem/para #: C/index.docbook:257 msgid "" "The Group Pane displays a list of all the newsgroups available on the " "server. This list is split into two groups: Subscribed Groups are a user-" "selected list of favorite groups, Other Groups are the rest of the available " "groups from the server." msgstr "" "Gruppanelen visar en lista över alla diskussionsgrupper som finns " "tillgängliga på servern. Denna lista är delad i två grupper: ”Prenumererade " "grupper” är en användarvald lista över favoritgrupper, ”Övriga grupper” är " "resten av serverns tillgängliga grupper." #. (itstool) path: varlistentry/term #: C/index.docbook:264 msgid "Header Pane" msgstr "Rubrikpanel" #. (itstool) path: listitem/para #: C/index.docbook:266 msgid "" "The Header Pane displays a list of all the individual article headers " "available in the selected group. The Header Pane is highly customizable via " "sorting, threading and scoring." msgstr "" "Rubrikpanelen visar en lista över alla enskilda artikelrubriker som finns " "tillgängliga i den markerade gruppen. Rubrikpanelen är mycket anpassningsbar " "genom sortering, trådning och poängsättning." #. (itstool) path: varlistentry/term #: C/index.docbook:272 msgid "Body Pane" msgstr "Artikelpanel" #. (itstool) path: listitem/para #: C/index.docbook:274 msgid "The Body Pane displays the text of the selected article header." msgstr "Artikelpanelen visar texten för den markerade artikelrubriken." #. (itstool) path: varlistentry/term #: C/index.docbook:279 msgid "Status Bar" msgstr "Statusrad" #. (itstool) path: listitem/para #: C/index.docbook:281 msgid "" "The Status Bar displays information about current Pan activity:" msgstr "" "Statusraden visar information om aktuell Pan-" "aktivitet:" #. (itstool) path: listitem/para #: C/index.docbook:284 msgid "Current number of connections to the server" msgstr "Aktuellt antal anslutningar till servern" #. (itstool) path: listitem/para #: C/index.docbook:285 msgid "Number of uncompleted tasks in the Task Manager" msgstr "Antal ej slutförda uppgifter i uppgiftshanteraren" #. (itstool) path: listitem/para #: C/index.docbook:286 msgid "Completed percentage of current tasks" msgstr "Procentsats slutförda för aktuella uppgifter" #. (itstool) path: listitem/para #: C/index.docbook:287 msgid "Error status of the event log" msgstr "Felstatus för händelseloggen" #. (itstool) path: sect2/para #: C/index.docbook:292 msgid "" "When you right-click in the Pan window, the " "application displays a popup menu. The popup menu contains the most common " "commands for whichever pane you clicked." msgstr "" "När du högerklickar i Pan-fönstret visar " "programmet en poppuppmeny. Poppuppmenyn innehåller de vanligaste kommandona " "för den panel du klickade på." #. (itstool) path: sect2/para #: C/index.docbook:294 msgid "" "Like other applications, actions in Pan can be " "performed in several ways: with the menu, with the toolbar or with shortcut " "keys. The shortcut key for most menu items is shown in the menu itself, " "following the menu command." msgstr "" "Som i andra program kan åtgärder i Pan utföras på " "flera sätt: med menyn, med verktygsfältet eller med kortkommandon. " "Kortkommandot för de flesta menyobjekt visas i menyn själv, efter " "menykommandot." #. (itstool) path: sect1/title #: C/index.docbook:304 msgid "Usenet in a Nutshell" msgstr "Usenet i ett nötskal" #. (itstool) path: sect1/para #: C/index.docbook:305 msgid "Knowledge about how Usenet works will make using Pan easier." msgstr "Kunskap om hur Usenet fungerar kommer göra användning av Pan lättare." #. (itstool) path: sect2/title #: C/index.docbook:307 msgid "Description" msgstr "Beskrivning" #. (itstool) path: sect2/para #: C/index.docbook:308 msgid "" "Usenet is a distributed discussion system. Using a special program called a " "newsreader, a user accesses a news server to read and post email-like " "messages called articles. These articles are then exchanged back and forth " "with other news servers throughout the world. In this way, articles " "propagate from one news server to another throughout the entire Usenet " "system." msgstr "" "Usenet är ett distribuerat diskussionssystem. Med ett speciellt program som " "kallas en diskussionsgruppsläsare kommer en användare åt en " "diskussionsgruppsserver för att läsa och posta e-postliknande meddelanden " "som kallas artiklar. Dessa artiklar skickas sedan fram och tillbaka med " "andra diskussionsgruppsservrar över hela världen. På detta sätt sprids " "artiklar från en diskussionsgruppsserver till en annan genom hela Usenet-" "systemet." #. (itstool) path: sect2/title #: C/index.docbook:314 msgid "Organization" msgstr "Organisation" #. (itstool) path: sect2/para #: C/index.docbook:315 msgid "" "Articles are organized into categories called groups. In discussion groups, " "most articles are responses to another article. The set of articles which " "can be traced to one single non-reply article is called a thread. When " "articles are organized into threads, it is much easier to follow a single " "discussion." msgstr "" "Artiklar organiseras i kategorier som kallas grupper. I diskussionsgrupper " "är de flesta artiklarna svar på en annan artikel. Uppsättningen artiklar som " "kan spåras till en enda artikel som själv inte är ett svar kallas för en " "tråd. Då artiklar organiseras i trådar så är det mycket enklare att följa en " "enskild diskussion." #. (itstool) path: sect2/title #: C/index.docbook:320 msgid "Article Headers" msgstr "Artikelrubriker" #. (itstool) path: sect2/para #: C/index.docbook:321 msgid "" "Articles are routed around Usenet based on the information contained in the " "article header, which is the first part of an article that contains " "information like the subject, author, date and routing information. To save " "time and bandwidth, most newsreaders first download just the article headers " "to sort and thread them. The user selects an article of interest from the " "list of headers and then downloads the article body to read." msgstr "" "Artiklar dirigeras runt Usenet baserat på informationen som finns i " "artikelrubriken, vilket är den första delen av en artikel och innehåller " "information så som ämne, författare, datum och dirigeringsinformation. För " "att spara tid och bandbredd hämtar de flesta diskussionsgruppsläsare bara " "artikelrubrikerna för att sortera och tråda dem. Användaren väljer en " "intressant artikel från rubriklistan och hämtar sedan artikeltexten för " "läsning." #. (itstool) path: sect2/title #: C/index.docbook:328 msgid "Binary Data" msgstr "Binärdata" #. (itstool) path: sect2/para #: C/index.docbook:329 msgid "" "Usenet was originally created to distribute text content encoded in 7-bit " "ASCII. With additional encoding programs, multiple posts per chunk and other " "various tricks, it became possible to send binary data through Usenet. " "Groups that allow for binary content or binaries are called binary groups." msgstr "" "Usenet skapades ursprungligen för att distribuera textinnehåll som kodats i " "7-bitars ASCII. Med ytterligare kodningsprogram, flera poster per datastycke " "och diverse andra trick, så blev det möjligt att sända binära data genom " "Usenet. Grupper som tillåter binärt innehåll eller binärer kallas binära " "grupper." #. (itstool) path: sect1/title #: C/index.docbook:338 msgid "Basic Usage" msgstr "Grundläggande användning" #. (itstool) path: sect1/para #: C/index.docbook:339 msgid "" "This section is an overview on how to perform basic Usenet actions with " "Pan." msgstr "" "Detta avsnitt är en översikt över hur grundläggande Usenet-åtgärder kan " "utföras med Pan." #. (itstool) path: sect2/title #: C/index.docbook:344 msgid "Set Up a News Server" msgstr "Konfigurera en diskussionsgruppsserver" #. (itstool) path: sect2/para #: C/index.docbook:345 msgid "" "When you start Pan for the first time, the " "Add a Server dialog is displayed." msgstr "" "När du startar Pan för första gången visas " "dialogrutan Lägg till en server." #. (itstool) path: sect2/para #: C/index.docbook:347 msgid "" "At this point, you must enter the connection information for the server you " "wish to access. After you enter this information, Pan will contact the server and download a list of all the groups " "the server carries and save it to disk." msgstr "" "Vid denna punkt behöver du ange anslutningsinformationen för servern du vill " "komma åt. Efter att du matar in denna information kommer Pan kontakta servern och hämta en lista över alla grupper som " "servern innehåller och spara den till disk." #. (itstool) path: sect2/para #: C/index.docbook:351 msgid "" "Refer to for more detailed " "information." msgstr "" "Se för mer detaljerad information." #. (itstool) path: sect2/title #: C/index.docbook:357 msgid "Selecting a News Group" msgstr "Välja en diskussionsgrupp" #. (itstool) path: sect2/para #: C/index.docbook:358 msgid "" "The Group Pane contains a list of all the news groups available on the " "server. Scroll through the list and enter a group by clicking on its name." msgstr "" "Gruppanelen innehåller en lista över alla diskussionsgrupper som finns " "tillgängliga på servern. Rulla genom listan och ange en grupp genom att " "klicka på dess namn." #. (itstool) path: sect2/para #: C/index.docbook:361 msgid "" "If this is the first time you have entered this group, you will be prompted " "on how many article headers you wish to retrieve from the server. You can " "choose to retrieve all article headers available for that group or limit the " "retrieval by either quantity of articles or number of days." msgstr "" "Om detta är den första gången du gått in i denna grupp så kommer du att " "tillfrågas hur många artikelrubriker som du vill hämta från servern. Du kan " "välja att hämta alla artikelrubriker som är tillgängliga för den gruppen " "eller begränsa hämtningen antingen efter antal artiklar eller efter antal " "dagar." #. (itstool) path: sect2/para #: C/index.docbook:365 msgid "" "After making a selection from this dialog, Pan " "will download the article headers for the selected group and save them " "locally on the computer." msgstr "" "Efter att ett val görs från denna dialogruta kommer Pan att hämta artikelrubrikerna för den markerade gruppen och spara " "dem lokalt på datorn." #. (itstool) path: note/para #: C/index.docbook:368 msgid "" "Depending on the news server, certain groups might be \"dead\" and have no " "headers available for download." msgstr "" "Beroende på diskussionsgruppsservern kan vissa grupper vara ”döda” och inte " "ha några rubriker för hämtning." #. (itstool) path: sect2/para #: C/index.docbook:371 msgid "" "After article header retrieval, the group name in the Group Pane will turn " "bold, which means there are unread articles in that particular group. Also " "the number of unread articles in the group will be displayed in parenthesis " "following the group name." msgstr "" "Efter hämtning av artikelrubrik kommer gruppnamnet i gruppanelen att skrivas " "i fetstil, vilket betyder att det finns olästa artiklar i den specifika " "gruppen. Antalet olästa artiklar i gruppen kommer också visas i parentes " "efter gruppnamnet." #. (itstool) path: sect2/para #: C/index.docbook:375 msgid "" "It's not unusual for a server to have tens of thousands of groups, but " "usually a user is only interested in a few. To better keep track of the " "interesting groups, select the group name by middle-clicking on it and " "choose Groups Subscribe . Scroll the group window to the top if necessary " "and you will see that the selected newsgroup is listed directly under the " "Subscribed Groups section." msgstr "" "Det är inte ovanligt för en server att ha tiotusentals grupper, men vanligen " "är en användare bara intresserad av några få av dem. För att hålla reda på " "de intressanta grupperna kan du välja gruppnamnet genom att mittenklicka på " "det och välja Grupper " "Prenumerera . Rulla gruppfönstret " "högst upp om nödvändigt så kommer du se att den markerade diskussionsgruppen " "listas direkt under delen Prenumererade grupper." #. (itstool) path: sect2/title #: C/index.docbook:387 msgid "Reading Articles" msgstr "Läsa artiklar" #. (itstool) path: sect2/para #: C/index.docbook:388 msgid "" "After entering a group, the header pane will be filled with article headers. " "The header pane can be sorted by clicking on the topmost row of a column, " "where the column name is located. Clicking again will reverse the sort. The " "column that is used for sorting will have a downward arrow after the column " "name and the entire column will darken." msgstr "" "Efter att ha gått in i en grupp kommer rubrikpanelen vara fylld med " "artikelrubriker. Rubrikpanelen kan sorteras genom att klicka på den översta " "raden i en kolumn, där kolumnnamnet finns. Att klicka igen kommer vända på " "sorteringen. Kolumnen som används för sortering kommer ha en nedåtpil efter " "kolumnnamnet och hela kolumnen kommer att bli mörkare." #. (itstool) path: sect2/para #: C/index.docbook:392 msgid "" "Pan defaults to showing collapsed threads. Only " "the first article of the thread is shown with a number in parenthesis " "indicating how many posts are hidden. Clicking on the right-facing arrow " "before the header text will expand the thread, showing the hidden articles " "in the thread. Reading the first article of the thread will also expand the " "thread. The keyboard shortcut for expanding threads is " "Shift. " "Shift will collapse " "the thread." msgstr "" "Pan visar som standard ihopfällda trådar. Endast " "den första artikeln i tråden visas med ett antal inom parenteser som visar " "hur många poster som döljs. Att klicka på högerpilen före rubriktexten " "kommer expandera tråden och visa de dolda artiklarna i tråden. Att läsa den " "första artikeln i tråden kommer också expandera tråden. Tangentbordsgenvägen " "för att expandera trådar är Skift. Skift kommer fälla ihop tråden." #. (itstool) path: sect2/para #: C/index.docbook:398 msgid "" "Clicking on a header will download the article from the server, store it in " "the article cache and display it in the article pane. The article is then " "marked as read. Read articles are distinguished in the header pane by using " "a normal (not bold) font and by showing an open envelope icon in the state " "column." msgstr "" "Att klicka på en rubrik kommer hämta artikeln från servern, lagra den i " "artikelcachen och visa den i artikelpanelen. Artikeln markeras sedan som " "läst. Lästa artiklar utmärker sig i rubrikpanelen genom att använda ett " "vanligt (ej fett) typsnitt och genom att visa ett öppet kuvert i " "tillståndskolumnen." #. (itstool) path: sect2/para #: C/index.docbook:401 msgid "" "You can scroll the message in the Article Pane by using the scrollbar or by " "pressing Space. Whenever the bottom of the retrieved " "article is already displayed, pressing Space will download " "the next article." msgstr "" "Du kan rulla meddelandet i artikelpanelen genom att använda rullningslisten " "eller genom att trycka på Blanksteg. Närhelst slutet på den " "hämtade artikeln redan visas kommer att trycka på Blanksteg " "hämta nästa artikel." #. (itstool) path: sect2/title #: C/index.docbook:407 msgid "Posting Articles" msgstr "Posta artiklar" #. (itstool) path: sect2/para #: C/index.docbook:408 msgid "" "To post an article in a group and start a new thread, select the group you " "wish to post to in the Group Pane and then choose " "Post Post to a Newsgroup . If this is the first time you have posted an article to a " "newsgroup, the Posting Profile dialog will appear and " "you will be required to fill in some information. Next, the Post " "Article dialog will appear. Type in a subject and then enter the " "body of the message at the bottom. When done, choose " "File Send Article to send the article to the news server and out to the rest of " "Usenet." msgstr "" "För att posta en artikel i en grupp och starta en ny tråd, välj gruppen du " "vill posta till i gruppanelen och välj sedan Posta Posta till en diskussionsgrupp . Om detta är den första gången du har postat en artikel till en " "diskussionsgrupp kommer dialogrutan Postandeprofil " "visas och du kommer behöva fylla i lite information. Sedan kommer " "dialogrutan Posta artikel att visas. Skriv in ett " "ämne och sedan meddelandetexten längst ner. När du är klar, välj " " Arkiv Skicka artikel för att skicka artikeln till " "diskussionsgruppsservern och till resten av Usenet." #. (itstool) path: sect2/para #: C/index.docbook:424 msgid "" "Refer to and for more detailed information:" msgstr "" "Se och för mer detaljerad information:" #. (itstool) path: sect2/title #: C/index.docbook:429 msgid "Replying to Articles" msgstr "Svara på artiklar" #. (itstool) path: sect2/para #: C/index.docbook:430 msgid "" "If you want to post a reply to a specific article and have your followup " "appear in that article's thread, highlight that article in the Header Pane " "with the middle mouse button and use Post " "Followup to Newsgroup . The " "highlighted article's text will appear as quoted text (each line is preceded " "by a \">\") in the editor window. Type in your response and then choose " " File Send Article " " to send the article to the news server." msgstr "" "Om du vill posta ett svar till en specifik artikel och att din uppföljning " "ska hamna i den artikelns tråd, markera den artikeln i rubrikpanelen med " "mittenmusknappen och använd Posta " "Uppföljning till diskussionsgrupp . " "Den markerade artikelns text kommer visas som citerad text (varje rad " "föregås av \">\") i redigeringsfönstret. Skriv in ditt svar och välj " "sedan Arkiv Skicka artikel för att skicka artikeln till " "diskussionsgruppsservern." #. (itstool) path: sect2/para #: C/index.docbook:443 msgid "" "If you want to send a reply to a specific article via email, highlight that " "article in the Header Pane with the middle mouse button and choose " " Post Reply to Author in Mail . The highlighted article's text will appear as " "quoted text (each line is preceded by a \">\") in the editor window. Type " "in your response and then choose File " "Send Article and the text will be " "sent to the default external email application. Double-check the To: field " "and then send the email as you normally would with that application." msgstr "" "Om du vill skicka ett svar till en specifik artikel via e-post, markera den " "artikeln i rubrikpanelen med mittenmusknappen och välj " "Posta Svara till författare via e-post . Den markerade artikelns text kommer visas som " "citerad text (varje rad föregås av \">\") i redigeringsfönstret. Skriv in " "ditt svar och välj sedan Arkiv " "Skicka artikel så kommer texten att " "skickas till det externa standardprogrammet för e-post. Kontrollera fältet " "Till: och skicka sedan e-postmeddelandet på samma sätt som du vanligen " "skulle göra med det programmet." #. (itstool) path: sect2/title #: C/index.docbook:460 msgid "Downloading Binaries" msgstr "Hämta binärer" #. (itstool) path: sect2/para #: C/index.docbook:461 msgid "" "A binary file in Usenet is usually composed of many smaller articles. " "Pan automatically organizes all these articles " "under one special article header. If all the data that comprises the binary " "header made it through the Usenet network successfully, a green, full puzzle-" "piece is displayed in the first column. To save the data, select the special " "header in the header window and use Articles " "Save Articles to download and save " "the binary data to disk." msgstr "" "En binär fil i Usenet består vanligen av många mindre artiklar. " "Pan organiserar automatiskt alla dessa artiklar " "under en speciell artikelrubrik. Om alla data som utgör den binära rubriken " "tog sig genom Usenet-nätverket så visas en hel, grön pusselbit i den första " "kolumnen. För att spara dessa data, välj den speciella rubriken i " "rubrikfönstret och använd Artiklar " "Spara artiklar för att hämta och " "spara dessa binära data till disk." #. (itstool) path: sect2/para #: C/index.docbook:471 msgid "" "If the binary posts are corrupted by missing or incorrect data, a red, " "incomplete puzzle-piece is displayed in the first column. The file may be " "saved, but it will probably be corrupt in some way." msgstr "" "Om de binära posterna är skadade av saknade eller felaktiga data kommer en " "röd, ofullständig pusselbit visas i den första kolumnen. Filen kan sparas " "men kommer troligen vara skadad på något sätt." #. (itstool) path: note/para #: C/index.docbook:473 msgid "" "Supporting binary newsgroups takes a large amount of bandwidth. Unless you " "are using a premium news server provider, it is not unusual for many binary " "files to be missing or corrupt." msgstr "" "Stöd för binära diskussionsgrupper kräver mycket bandbredd. Om du inte " "använder en premiumleverantör för diskussionsgruppsservrar är det inte " "ovanligt att många binära filer saknas eller är skadade." #. (itstool) path: sect1/title #: C/index.docbook:480 msgid "Groups" msgstr "Grupper" #. (itstool) path: sect1/para #: C/index.docbook:481 msgid "Working with groups in Pan." msgstr "Arbeta med grupper i Pan." #. (itstool) path: sect2/title #: C/index.docbook:486 msgid "Group Views" msgstr "Gruppvyer" #. (itstool) path: sect2/para #: C/index.docbook:488 msgid "" "The total number of groups on a news server can be quite extensive. An easy " "way to find a specific group is to use the Group text " "box in the toolbar. Only groups that match the characters typed in the box " "will be displayed in the Group Pane. If you wish to return the Group Pane to " "its original state, simply delete the characters in the box by clicking the " "X icon to the right of the box." msgstr "" "Det totala antalet grupper på en diskussionsgruppsserver kan vara ganska " "stort. Ett lätt sätt att hitta en specifik grupp är att använda textrutan " "Grupp i verktygsfältet. Endast grupper som matchar " "tecknen som skrivs in i rutan kommer visas i gruppanelen. Om du vill " "återföra gruppanelen till sitt ursprungliga tillstånd kan du helt enkelt ta " "bort tecknen i rutan genom att klicka på X-ikonen till höger om rutan." #. (itstool) path: sect2/para #: C/index.docbook:493 msgid "" "The group names presented in the Group Pane can be shortened by choosing " " View Group Pane " "Abbreviate Names in Group Pane . " "This only alters the way the names are presented in this pane." msgstr "" "Gruppnamnen som visas i gruppanelen kan förkortas genom att välja " " Visa Gruppanel " "Förkorta namn i gruppanel . Detta " "ändrar bara sättet som namnen visas i denna panel." #. (itstool) path: sect2/title #: C/index.docbook:504 msgid "Group Actions" msgstr "Gruppåtgärder" #. (itstool) path: sect2/para #: C/index.docbook:506 msgid "While a news group is selected, you can perform the following actions:" msgstr "När en diskussionsgrupp är markerad kan du utföra följande åtgärder:" #. (itstool) path: varlistentry/term #: C/index.docbook:510 msgid "" " Groups Mark Group Read " msgstr "" " Grupper Markera gruppen som " "läst " #. (itstool) path: listitem/para #: C/index.docbook:517 msgid "Mark all articles in a group read." msgstr "Markera alla artiklar i en grupp som lästa." # TODO: headers in selected *group* #. (itstool) path: listitem/para #: C/index.docbook:518 msgid "" "A typical way to read news is to read all the interesting threads and when " "done mark the group read. The next time you start the news reader, choose " " Groups Get New Headers in " "Selected Group . With View Header Pane Match only Unread " "Articles , the only headers you will see will be " "the new headers you just downloaded." msgstr "" "Ett typiskt sätt att läsa nyheter är att läsa alla intressanta trådar och " "markera gruppen som läst då du är klar. Nästa gång du startar " "diskussionsgruppsläsaren kan du välja Grupper Hämta nya rubriker i markerade grupper . Med Visa " "Rubrikpanel Matcha endast olästa " "artiklar kommer de enda rubrikerna du ser att " "vara de nya rubrikerna som du just hämtat." #. (itstool) path: varlistentry/term #: C/index.docbook:534 msgid "" " Groups Get New Headers in " "Subscribed Groups " msgstr "" " Grupper Hämta nya rubriker i " "prenumererade grupper " #. (itstool) path: listitem/para #: C/index.docbook:541 msgid "Grab new headers for all the groups in the Subscribed Groups section." msgstr "Hämta nya rubriker för alla grupper i delen ”Prenumererade grupper”." #. (itstool) path: varlistentry/term #: C/index.docbook:545 msgid "" " Groups Edit Group Preferences " msgstr "" " Grupper Redigera " "gruppinställningar " #. (itstool) path: listitem/para #: C/index.docbook:555 msgid "Character encoding" msgstr "Teckenkodning" #. (itstool) path: listitem/para #: C/index.docbook:556 msgid "Location in the file hierarchy where attachments are saved" msgstr "Plats i filhierarkin där bilagor sparas" #. (itstool) path: listitem/para #: C/index.docbook:558 msgid "The posting profile." msgstr "Postandeprofilen." #. (itstool) path: listitem/para #: C/index.docbook:552 msgid "" "Opens the Group Preferences dialog. Within this dialog you can customize " "certain Pan features per group: <_:itemizedlist-1/" ">" msgstr "" "Öppnar dialogrutan Gruppinställningar. I denna dialogruta kan du anpassa " "vissa Pan-funktioner per grupp: <_:itemizedlist-1/" ">" #. (itstool) path: varlistentry/term #: C/index.docbook:564 msgid "" " Groups Subscribe " msgstr "" " Grupper Prenumerera " "" #. (itstool) path: listitem/para #: C/index.docbook:571 msgid "" "Add a favorite group to the Subscribed Groups section of the Group Pane. " "Unsubscribe is the opposite of this command." msgstr "" "Lägg till en favoritgrupp till delen ”Prenumererade grupper” i gruppanelen. " "Säg upp prenumeration är motsatsen till detta kommando." #. (itstool) path: varlistentry/term #: C/index.docbook:576 msgid "" " Groups Refresh Group List " msgstr "" " Grupper Uppdatera grupplista " #. (itstool) path: listitem/para #: C/index.docbook:583 msgid "" "Resync the local group list that Pan uses with " "the current listing on the news server." msgstr "" "Synkronisera på nytt den lokala grupplistan som Pan använder med den aktuella listningen på " "diskussionsgruppsservern." #. (itstool) path: varlistentry/term #: C/index.docbook:588 msgid "" " Groups Delete Group's Articles " msgstr "" " Grupper Ta bort gruppens " "artiklar " #. (itstool) path: listitem/para #: C/index.docbook:595 msgid "Delete all the articles for the selected group from the article index." msgstr "Ta bort alla artiklar för den markerade gruppen från artikelindexet." #. (itstool) path: sect2/title #: C/index.docbook:602 msgid "The Newsrc File" msgstr "Newsrc-filen" #. (itstool) path: sect2/para #: C/index.docbook:603 msgid "" "The group list, subscribe/unsubscribe status of each group and the articles " "marked read in each group are stored in the newsrc file at $HOME/." "pan2/newsrc-1." msgstr "" "Grupplistan, prenumerationsstatus för varje grupp och artiklarna som " "markerats som lästa i varje grupp lagras i newsrc-filen på $HOME/." "pan2/newsrc-1." #. (itstool) path: sect2/para #: C/index.docbook:605 msgid "" "The newsrc file format is standard among many Unix newsreaders and can be " "used to import and export this information between these applications." msgstr "" "Filformatet newsrc är standard mellan många Unix-diskussionsgruppsläsare och " "kan användas för att importera och exportera denna information mellan dessa " "program." #. (itstool) path: sect1/title #: C/index.docbook:612 msgid "Headers" msgstr "Rubriker" #. (itstool) path: sect1/para #: C/index.docbook:613 msgid "" "Users will spend most of their time in Pan " "interacting with the article headers in the Header Pane. Pan has many features to optimize header viewing and article " "retrieval." msgstr "" "Användare kommer spendera sin mesta tid i Pan med " "att interagera med artikelrubrikerna i rubrikpanelen. Pan har många funktioner för att optimera rubrikvisning och " "artikelhämtning." #. (itstool) path: sect2/title #: C/index.docbook:618 msgid "Header View" msgstr "Rubrikvy" #. (itstool) path: sect2/para #: C/index.docbook:620 msgid "" "Since the total number of all the available article headers in a group might " "be enormous, Pan has several options to limit the " "number of visible headers to a more manageable number." msgstr "" "Eftersom det totala antalet av alla tillgängliga artikelrubriker i en grupp " "kan vara enormt har Pan flera alternativ för att " "begränsa antalet synliga rubriker till ett mer hanterbart antal." # TODO: filter than -> filter that #. (itstool) path: sect2/para #: C/index.docbook:623 msgid "" "In the toolbar, the Subject or Author text box is a " "filter than can be used to limit the visible headers. Usually this is used " "to search for a specific article or a group of articles. Click on the " "magnifying glass icon to choose which header field to base the filter. Only " "the article headers that match the characters typed into the text box will " "be displayed. Click the X to erase and reset." msgstr "" "I verktygsfältet är textrutan Ämne eller författare " "ett filter som kan användas för att begränsa de synliga rubrikerna. Detta " "används vanligen för att söka en specifik artikel eller en grupp artiklar. " "Klicka på förstoringsglasikonen för att välja vilket rubrikfält som filtret " "ska baseras på. Endast artikelrubrikerna som matchar tecknen som skrivits in " "i textrutan kommer att visas. Klicka på X:et för att radera och nollställa." #. (itstool) path: varlistentry/term #: C/index.docbook:630 msgid "" "Choose Edit Preferences Headers " msgstr "" "Välj Redigera Inställningar Rubriker " #. (itstool) path: listitem/para #: C/index.docbook:638 msgid "To hide or change the display order of the Header Pane columns." msgstr "" "För att dölja eller ändra visningsordningen för kolumnerna i rubrikpanelen." #. (itstool) path: varlistentry/term #: C/index.docbook:642 msgid "" "Choose View Header Pane Thread Headers " msgstr "" "Välj Visa Rubrikpanel Tråda rubriker " #. (itstool) path: listitem/para #: C/index.docbook:650 msgid "To enable or disable header threading in the Header Pane." msgstr "För att aktivera eller inaktivera rubriktrådning i rubrikpanelen." #. (itstool) path: sect3/title #: C/index.docbook:658 msgid "Replies of Matched Articles" msgstr "Svar på matchade artiklar" #. (itstool) path: sect3/para #: C/index.docbook:660 msgid "" "The user can pick one of the next three options to control how " "Pan will display replies of matched articles." msgstr "" "Användaren kan välja ett av följande tre alternativ för att styra hur " "Pan kommer visa svar på matchade artiklar." #. (itstool) path: varlistentry/term #: C/index.docbook:664 C/index.docbook:701 msgid "" "In View Header Pane " "" msgstr "" "I Visa Rubrikpanel " "" #. (itstool) path: listitem/para #: C/index.docbook:673 msgid "Show Matching Articles" msgstr "Visa matchande artiklar" # TODO: Doubled period #. (itstool) path: listitem/para #: C/index.docbook:674 msgid "Show only articles that match the article view options.." msgstr "Visa endast artiklar som matchar visningsalternativen för artiklar." #. (itstool) path: listitem/para #: C/index.docbook:677 msgid "Show Matching Articles' Threads" msgstr "Visa matchande artiklars trådar" #. (itstool) path: listitem/para #: C/index.docbook:678 msgid "" "Not only show articles that match the article view options, but also show " "all the articles in the entire thread of the matched article. This option " "will force read headers to be visible regardless of the view options." msgstr "" "Visa inte endast artiklar som matchar visningsalternativen för artiklar, " "utan visa även alla artiklar i hela tråden för den matchade artikeln. Detta " "alternativ kommer tvinga rubriker att vara synliga oavsett " "visningsalternativen." #. (itstool) path: listitem/para #: C/index.docbook:683 msgid "Show Matching Articles Subthreads" msgstr "Visa matchande artiklars undertrådar" #. (itstool) path: listitem/para #: C/index.docbook:684 msgid "" "Not only show articles that match the article view options, but also show " "articles that are replies of any matched article." msgstr "" "Visa inte endast artiklar som matchar visningsalternativen för artiklar, " "utan visa även alla artiklar som är svar till någon matchad artikel." #. (itstool) path: sect3/title #: C/index.docbook:696 msgid "Article View Matches" msgstr "Artikelvisningsmatchningar" #. (itstool) path: sect3/para #: C/index.docbook:698 msgid "" "These options control which article headers are displayed in the Header Pane." msgstr "Dessa alternativ styr vilka artikelrubriker som visas i rubrikpanelen." #. (itstool) path: listitem/para #: C/index.docbook:710 msgid "Match Only Unread Articles" msgstr "Matcha endast olästa artiklar" #. (itstool) path: listitem/para #: C/index.docbook:711 msgid "Only display articles that haven't been marked read." msgstr "Visa endast artiklar som inte har markerats som lästa." #. (itstool) path: listitem/para #: C/index.docbook:714 msgid "Match Only Cached Articles" msgstr "Matcha endast cachade artiklar" #. (itstool) path: listitem/para #: C/index.docbook:715 msgid "" "Only display articles that are available in the local article cache in the " "computer's hard drive." msgstr "" "Visa endast artiklar som finns tillgängliga i den lokala artikelcachen i " "datorns hårddisk." #. (itstool) path: listitem/para #: C/index.docbook:719 msgid "Match Only Complete Articles" msgstr "Matcha endast fullständiga artiklar" #. (itstool) path: listitem/para #: C/index.docbook:720 msgid "" "Only binary articles that are complete (full, green puzzle piece in the " "state column) will be displayed. This also hides text articles." msgstr "" "Endast binära artiklar som är fullständiga (hel, grön pusselbit i " "tillståndskolumnen) kommer att visas. Detta döljer även textartiklar." #. (itstool) path: listitem/para #: C/index.docbook:724 msgid "Match Only My Articles" msgstr "Matcha endast mina artiklar" #. (itstool) path: listitem/para #: C/index.docbook:725 msgid "Only articles that the user has posted will be displayed." msgstr "Endast artiklar som användaren har postat kommer att visas." #. (itstool) path: listitem/para #: C/index.docbook:728 msgid "Match Scores of xxxx" msgstr "Matcha poäng som är xxxx" #. (itstool) path: listitem/para #: C/index.docbook:729 msgid "" "These options deal with scoring where you choose to display an article based " "on its score. Refer to for more information." msgstr "" "Dessa alternativ behandlar poängsättning där du väljer att visa en artikel " "beroende på dess poäng. Se för mer " "information." #. (itstool) path: sect2/title #: C/index.docbook:740 msgid "Header Movement" msgstr "Rubrikförflyttning" #. (itstool) path: sect2/para #: C/index.docbook:741 msgid "" "Movement around the Header Pane can be controlled by several methods, " "allowing the user to easily jump around complicated discussion threads with " "minimal input. Pan was designed for mouse-less " "article viewing, so most people use the keyboard shortcuts associated with " "these menu actions. The keyboard shortcut for most menu actions is displayed " "after the menu command." msgstr "" "Förflyttning i rubrikpanelen kan styras med flera metoder, vilket låter " "användaren lätt hoppa runt i komplicerade diskussionstrådar med minimal " "inmatning. Pan designades för muslös " "artikelvisning, så de flesta använder tangentbordsgenvägarna som är " "associerade med dessa menyåtgärder. Tangentbordsgenvägen för de flesta " "menyåtgärder visas efter menykommandot." #. (itstool) path: varlistentry/term #: C/index.docbook:747 msgid "" " Go Read More " msgstr "" " Läs mer " #. (itstool) path: listitem/para #: C/index.docbook:754 msgid "" "Scroll the article in the Article Pane. If the article is already scrolled " "to the bottom, grab the next article. You can customize the function of this " "key by changing Preferences " "Articles Space selects next article " "rather than next unread ." msgstr "" "Rulla artikeln i artikelpanelen. Om artikeln redan rullats längst ner så " "hämtas nästa artikel. Du kan anpassa funktionen för denna nyckel genom att " "ändra Inställningar Artiklar Blanksteg väljer nästa artikel istället för nästa " "olästa ." #. (itstool) path: varlistentry/term #: C/index.docbook:765 msgid "" " Go Read Back " msgstr "" " Läs tillbaka " #. (itstool) path: listitem/para #: C/index.docbook:772 msgid "" "Scroll the article up in the Article Pane. If it's already scrolled to the " "top, grab the previous article displayed in the Thread Pane." msgstr "" "Rulla artikeln uppåt i artikelpanelen. Om artikeln redan rullats längst upp " "så hämtas föregående artikel som visas i trådpanelen." #. (itstool) path: varlistentry/term #: C/index.docbook:777 msgid "" " Go Next Unread Group " msgstr "" " Nästa olästa grupp " #. (itstool) path: listitem/para #: C/index.docbook:784 msgid "" "Skip down to the next subscribed group in the Group Pane with unread " "articles and read the first article." msgstr "" "Hoppa ner till nästa prenumererade grupp med olästa artiklar i gruppanelen " "och läs den första artikeln." #. (itstool) path: varlistentry/term #: C/index.docbook:789 msgid "" " Go Next Group " msgstr "" " Nästa grupp " #. (itstool) path: listitem/para #: C/index.docbook:796 msgid "" "Skip down to the next subscribed group in the Group Pane and read the first " "article." msgstr "" "Hoppa ner till nästa prenumererade grupp i gruppanelen och läs den första " "artikeln." #. (itstool) path: varlistentry/term #: C/index.docbook:800 msgid "" " Go Next Unread Article " msgstr "" " Nästa olästa artikel " #. (itstool) path: listitem/para #: C/index.docbook:807 msgid "Read the next unread article in the Thread Pane." msgstr "Läs nästa olästa artikel i trådpanelen." #. (itstool) path: varlistentry/term #: C/index.docbook:811 msgid "" " Go Next Article " msgstr "" " Nästa artikel " #. (itstool) path: listitem/para #: C/index.docbook:818 msgid "Read the next article, regardless of its read/unread state." msgstr "Läs nästa artikel, oavsett om den är läst/oläst." #. (itstool) path: varlistentry/term #: C/index.docbook:822 msgid "" " Go Next Watched Article " msgstr "" " Nästa bevakade artikel " #. (itstool) path: listitem/para #: C/index.docbook:829 msgid "" "Read the next watched article. A watched article is an article with a score " "of at least 9999. Refer to for more " "information." msgstr "" "Läs nästa bevakade artikel. En bevakad artikel är en artikel med en poäng på " "minst 9999. Se för mer information." #. (itstool) path: varlistentry/term #: C/index.docbook:834 msgid "" " Go Previous Article " "" msgstr "" " Föregående artikel " #. (itstool) path: listitem/para #: C/index.docbook:841 msgid "" "Read the previous article in the Thread Pane. This doesn't scroll the " "Article Pane like Go Read Back ." msgstr "" "Läs föregående artikel i trådpanelen. Detta rullar inte artikelpanelen som " " Läs tillbaka ." #. (itstool) path: varlistentry/term #: C/index.docbook:850 msgid "" " Go Parent Article " msgstr "" " Överordnad artikel " #. (itstool) path: listitem/para #: C/index.docbook:857 msgid "Read the article for which the currently selected article is a reply." msgstr "Läs artikeln för vilken den aktuellt valda artikeln är ett svar." #. (itstool) path: varlistentry/term #: C/index.docbook:861 msgid "" " Go Next Unread Thread " msgstr "" " Nästa olästa tråd " #. (itstool) path: listitem/para #: C/index.docbook:868 msgid "Skip to the next unread thread and read the first article." msgstr "Hoppa till nästa olästa tråd och läs den första artikeln." #. (itstool) path: varlistentry/term #: C/index.docbook:872 msgid "" " Go Next Thread " msgstr "" " Nästa tråd " #. (itstool) path: listitem/para #: C/index.docbook:879 msgid "Skip to the next thread and read the first article in that thread." msgstr "Hoppa till nästa tråd och läs den första artikeln i den tråden." #. (itstool) path: varlistentry/term #: C/index.docbook:883 msgid "" " Go Previous Thread " "" msgstr "" " Föregående tråd " "" #. (itstool) path: listitem/para #: C/index.docbook:890 msgid "Skip back to the last thread and read the last article in that thread." msgstr "" "Hoppa tillbaka till den föregående tråden och läs den sista artikeln i den " "tråden." #. (itstool) path: sect2/title #: C/index.docbook:898 msgid "Header Selection" msgstr "Rubrikmarkering" #. (itstool) path: sect2/para #: C/index.docbook:900 msgid "" "In order to perform an action on an article header, you must select it " "first. Use the middle mouse button to select an article. Drag the selection " "field with the mouse to select multiple articles. Hold down the " "Ctrl key while clicking articles with the middle mouse " "button to add individual articles to the selection." msgstr "" "För att utföra en åtgärd på en artikelrubrik behöver du först markera den. " "Använd mittenmusknappen för att markera en artikel. Dra markeringsfältet med " "musen för att markera flera artiklar. Håll nere Ctrl då du " "klickar på artiklar med mittenmusknappen för att lägga till individuella " "artiklar till markeringen." #. (itstool) path: sect2/para #: C/index.docbook:904 msgid "" "Pan also offers a number of other ways to " "efficiently select articles." msgstr "" "Pan erbjuder också ett antal andra sätt att " "effektivt markera artiklar." #. (itstool) path: varlistentry/term #: C/index.docbook:908 msgid "" " Edit Select All Articles " msgstr "" " Redigera Markera alla artiklar " #. (itstool) path: listitem/para #: C/index.docbook:915 msgid "Select all articles in the Header Pane." msgstr "Markera alla artiklar i rubrikpanelen." #. (itstool) path: varlistentry/term #: C/index.docbook:919 msgid "" " Edit Add Subthreads to " "Selection " msgstr "" " Redigera Lägg till undertrådar " "till markeringen " #. (itstool) path: listitem/para #: C/index.docbook:926 msgid "" "Add all articles that are a reply to the selected article to the selection." msgstr "" "Lägg till alla artiklar som är ett svar till den markerade artikeln till " "markeringen." #. (itstool) path: varlistentry/term #: C/index.docbook:930 msgid "" " Edit Add Threads to Selection " msgstr "" " Redigera Lägg till trådar till " "markeringen " #. (itstool) path: listitem/para #: C/index.docbook:937 msgid "Add the entire thread of the selected article to the selection." msgstr "Lägg till hela tråden för den markerade artikeln till markeringen." #. (itstool) path: varlistentry/term #: C/index.docbook:941 msgid "" " Edit Add Similar Articles to " "Selection " msgstr "" " Redigera Lägg till liknande " "artiklar till markeringen " #. (itstool) path: listitem/para #: C/index.docbook:948 msgid "" "With one article selected, add others articles with the same author and from " "the current thread to the selection." msgstr "" "Med en artikel markerad, lägg till andra artiklar med samma författare och " "från den aktuella tråden till markeringen." #. (itstool) path: varlistentry/term #: C/index.docbook:953 msgid "" " Edit Deselect All Articles " msgstr "" " Redigera Avmarkera alla " "artiklar " #. (itstool) path: listitem/para #: C/index.docbook:960 msgid "Cancel the current selection." msgstr "Avbryt aktuell markering." #. (itstool) path: varlistentry/term #: C/index.docbook:964 msgid "" " Edit Select Article Body " msgstr "" " Redigera Markera artikeltext " #. (itstool) path: listitem/para #: C/index.docbook:971 msgid "Select the entire article body. You must retrieve the article first." msgstr "Markera hela artikeltexten. Du måste hämta artikeln först." #. (itstool) path: sect2/title #: C/index.docbook:979 msgid "Header Action" msgstr "Rubrikåtgärd" #. (itstool) path: sect2/para #: C/index.docbook:980 msgid "" "Whenever Pan downloads an article body, the data " "is saved to disk in the article cache. The article cache is a fixed-size " "buffer and when the cache has been filled, the older articles are erased to " "make room for newer ones." msgstr "" "Närhelst Pan hämtar en artikeltext sparas dessa " "data till disk i artikelcachen. Artikelcachen är en buffert med fast " "storlek, och då cachen har fyllts kommer äldre artiklar att raderas för att " "göra plats för nyare artiklar." #. (itstool) path: sect2/para #: C/index.docbook:984 msgid "" "These are the actions you can perform on an article selected in the Header " "Pane." msgstr "" "Detta är de åtgärder du kan utföra på en artikel som är markerad i " "rubrikpanelen." #. (itstool) path: varlistentry/term #: C/index.docbook:987 msgid "" " Articles Save Article " msgstr "" " Artiklar Spara artikel " #. (itstool) path: listitem/para #: C/index.docbook:994 msgid "" "Save the highlighted article to disk. When you select this option, the Save " "Articles dialog will open. From here, you can choose to:" msgstr "" "Spara den markerade artikeln till disk. Då du väljer detta alternativ kommer " "dialogrutan Spara artiklar visas. Härifrån kan du välja att:" #. (itstool) path: listitem/para #: C/index.docbook:997 msgid "Save Text" msgstr "Spara text" #. (itstool) path: listitem/para #: C/index.docbook:998 msgid "Save the text of the displayed article." msgstr "Spara texten för den visade artikeln." #. (itstool) path: listitem/para #: C/index.docbook:1000 msgid "Save Attachments" msgstr "Spara bilagor" #. (itstool) path: listitem/para #: C/index.docbook:1001 msgid "Save the binary attachments of the selected article to disk." msgstr "Spara de binära bilagorna för den markerade artikeln till disk." #. (itstool) path: listitem/para #: C/index.docbook:1003 msgid "Path" msgstr "Sökväg" #. (itstool) path: listitem/para #: C/index.docbook:1004 msgid "Where in the file hierarchy to save the binary attachment or text." msgstr "Var i filhierarkin som den binära bilagan eller texten ska sparas." #. (itstool) path: listitem/para #: C/index.docbook:1006 msgid "Priority" msgstr "Prioritet" #. (itstool) path: listitem/para #: C/index.docbook:1007 msgid "Where to add the file in the Task Manager queue." msgstr "Var filen ska läggas till i uppgiftshanterarkön." #. (itstool) path: varlistentry/term #: C/index.docbook:1013 msgid "" " Articles Read Article " msgstr "" " Artiklar Läs artikel " #. (itstool) path: listitem/para #: C/index.docbook:1020 msgid "" "Download the body of the selected article in the Header Pane and display it " "in the Article Pane." msgstr "" "Hämta texten för den markerade artikeln i rubrikpanelen och visa den i " "artikelpanelen." #. (itstool) path: varlistentry/term #: C/index.docbook:1025 msgid "" " Articles Cache Article " msgstr "" " Artiklar Cacha artikel " #. (itstool) path: listitem/para #: C/index.docbook:1032 msgid "" "Download the body of the selected article in the Header Pane but do NOT " "display it in the Article Pane." msgstr "" "Hämta texten för den markerade artikeln i rubrikpanelen men visa den INTE i " "artikelpanelen." #. (itstool) path: varlistentry/term #: C/index.docbook:1037 msgid "" " Articles Mark Article as Read " msgstr "" " Artiklar Markera artikel som " "läst " #. (itstool) path: listitem/para #: C/index.docbook:1044 msgid "Change the state of the article to read." msgstr "Ändra tillståndet för artikeln till läst." #. (itstool) path: varlistentry/term #: C/index.docbook:1048 msgid "" " Articles Mark Article as Unread " msgstr "" " Artiklar Markera artikel som " "oläst " #. (itstool) path: listitem/para #: C/index.docbook:1055 msgid "Change the state of the article to unread." msgstr "Ändra tillståndet för artikeln till oläst." #. (itstool) path: varlistentry/term #: C/index.docbook:1059 msgid "" " Articles Delete Article " msgstr "" " Artiklar Ta bort artikel " #. (itstool) path: listitem/para #: C/index.docbook:1066 msgid "" "Delete the selected article in the current group from the article index." msgstr "" "Ta bort den markerade artikeln i den aktuella gruppen från artikelindexet." #. (itstool) path: sect1/title #: C/index.docbook:1074 msgid "Body" msgstr "Artikeltext" #. (itstool) path: sect1/para #: C/index.docbook:1075 msgid "The Body Pane displays the text of a selected article header." msgstr "Artikelpanelen visar texten för en markerad artikelrubrik." #. (itstool) path: sect2/title #: C/index.docbook:1078 msgid "Digital Images" msgstr "Digitala bilder" #. (itstool) path: sect2/para #: C/index.docbook:1079 msgid "" "Some groups specialize in digital images where each binary post is a " "separate image. Pan can automatically decode and " "display these images. To display the image, select and view the article " "header as you normally would for text and the image will be displayed in the " "Body Pane." msgstr "" "Några grupper specialiserar sig på digitala bilder där varje binär post är " "en separat bild. Pan kan automatiskt avkoda och " "visa dessa bilder. För att visa bilden, markera och visa artikelrubriken så " "som du vanligen skulle göra för text, så kommer bilden visas i " "artikelpanelen." #. (itstool) path: sect2/title #: C/index.docbook:1086 msgid "Body Views" msgstr "Artikelvyer" #. (itstool) path: sect2/para #: C/index.docbook:1087 msgid "" "The way information is presented in the Body Pane can be customized in " "several ways." msgstr "" "Sättet som information presenteras i artikelpanelen kan anpassas på flera " "sätt." #. (itstool) path: varlistentry/term #: C/index.docbook:1090 msgid "" "In View Body Pane " msgstr "" "I Visa Artikelpanel " "" #. (itstool) path: listitem/para #: C/index.docbook:1099 msgid "Wrap Article Body" msgstr "Radbryt artikeltexten" #. (itstool) path: listitem/para #: C/index.docbook:1100 msgid "" "Will force the text to flow into paragraphs instead of running off the edge " "of the text window. This is useful to fix badly formatted articles." msgstr "" "Kommer tvinga texten att flöda till stycken istället för att fortsätta över " "textfönstrets kant. Detta är användbart för att fixa dåligt formaterade " "artiklar." #. (itstool) path: listitem/para #: C/index.docbook:1104 msgid "Show All Headers in Body Pane" msgstr "Visa alla rubriker i artikelpanelen" # TODO: This commands -> This command #. (itstool) path: listitem/para #: C/index.docbook:1105 msgid "" "The headers displayed in the Header Pane are only a small subset of the all " "the article headers. This commands will display the complete list of article " "headers in the Body Pane before the article text." msgstr "" "Rubrikerna som visas i rubrikpanelen är bara en liten delmängd av alla " "artikelrubrikerna. Detta kommando kommer visa den fullständiga listan över " "artikelrubriker i artikelpanelen före artikeltexten." #. (itstool) path: listitem/para #: C/index.docbook:1110 msgid "Rot 13 Selected Text" msgstr "Rotera markerad text 13 tecken" #. (itstool) path: listitem/para #: C/index.docbook:1111 msgid "" "A simple cipher used to hide story spoilers, joke punchlines, etc. Select a " "block of encrypted text and use this option to decode it to clear text." msgstr "" "Ett enkelt chiffer för att dölja spoilrar, poängen på vitsar och så vidare. " "Markera ett block med krypterad text och använd detta alternativ för att " "avkoda det till vanlig text." #. (itstool) path: listitem/para #: C/index.docbook:1115 msgid "Use Monospace Font" msgstr "Använd typsnitt med fast breddsteg" #. (itstool) path: listitem/para #: C/index.docbook:1116 msgid "" "Sometimes Usenet authors will create simple ASCII artwork or diagrams. By " "default, Pan uses proportional fonts for all text " "which renders ASCII artwork unreadable. By choosing this option, the text of " "the Body Pane will be displayed using the Monospace Font." msgstr "" "Ibland skapar Usenet-författare enkla ASCII-konstverk eller diagram. Som " "standard använder Pan proportionella typsnitt för " "all text vilket gör ASCII-konstverk oläsliga. Genom att välja detta " "alternativ kommer texten i artikelpanelen att visas med typsnittet med fast " "breddsteg." #. (itstool) path: listitem/para #: C/index.docbook:1120 msgid "" "You can configure the monospace font in Edit " "Preferences Font ." msgstr "" "Du kan konfigurera typsnittet med fast breddsteg i " "Redigera Inställningar " "Typsnitt ." #. (itstool) path: listitem/para #: C/index.docbook:1129 msgid "Show Smilies as Graphics" msgstr "Visa smilisar som grafik" #. (itstool) path: listitem/para #: C/index.docbook:1130 msgid "Change ASCII emoticons like :) into graphical versions." msgstr "Ändra ASCII-humörsymboler som :) till grafiska versioner." # TODO: Double underline in GUI #. (itstool) path: listitem/para #: C/index.docbook:1133 msgid "Show *Bold*, _Underlined_ and /Italiced/" msgstr "Visa *Fet*, _Understruken_, och /Kursiv/" #. (itstool) path: listitem/para #: C/index.docbook:1134 msgid "" "Over the years, Usenet authors have devised several strategies to overcome " "the limited typographic ability of ASCII. Enabling this option will format " "the article text following these typographic hints." msgstr "" "Över åren har Usenet-författare utvecklat flera strategier för att överkomma " "den begränsade typografiska förmågan hos ASCII. Att aktivera detta " "alternativ kommer formatera artikeltexten enligt dessa typografiska vinkar." #. (itstool) path: listitem/para #: C/index.docbook:1139 msgid "Size Pictures to Fit" msgstr "Anpassa bildstorlek" #. (itstool) path: listitem/para #: C/index.docbook:1140 msgid "" "Size digital images so they will display in the Body Pane without scrolling. " "Click on the image to view it in its original size." msgstr "" "Ändra storlek på digitala bilder så att de kan visas i artikelpanelen utan " "rullning. Klicka på bilden för att visa den i dess originalstorlek." #. (itstool) path: sect1/title #: C/index.docbook:1152 msgid "Posting" msgstr "Postande" #. (itstool) path: sect1/para #: C/index.docbook:1153 msgid "How to post articles in Pan." msgstr "Hur du postar artiklar i Pan." #. (itstool) path: sect2/title #: C/index.docbook:1158 msgid "Actions" msgstr "Åtgärder" #. (itstool) path: varlistentry/term #: C/index.docbook:1161 msgid "" " Post Post to Newsgroup " msgstr "" " Posta Posta till " "diskussionsgrupp " #. (itstool) path: listitem/para #: C/index.docbook:1168 msgid "Post an article to the selected newsgroup." msgstr "Posta en artikel till den markerade diskussionsgruppen." #. (itstool) path: varlistentry/term #: C/index.docbook:1172 msgid "" " Post Followup to Newsgroup " msgstr "" " Posta Uppföljning till " "diskussionsgrupp " #. (itstool) path: listitem/para #: C/index.docbook:1179 msgid "Post a reply to the selected article and continue the thread." msgstr "Posta ett svar till den markerade artikeln och fortsätt tråden." #. (itstool) path: varlistentry/term #: C/index.docbook:1183 msgid "" " Post Reply to Author in Mail " msgstr "" " Posta Svara till författare via " "e-post " #. (itstool) path: listitem/para #: C/index.docbook:1190 msgid "Post a reply to the selected article via email." msgstr "Posta ett svar till den markerade artikeln via e-post." #. (itstool) path: sect2/para #: C/index.docbook:1195 msgid "" "While highlighting in the Header Pane the article header of a post that you " "posted to the news server, you can perform these two actions:" msgstr "" "När du i rubrikpanelen markerar artikelrubriken för en post som du postat " "till diskussionsgruppsservern kan du utföra dessa två åtgärder:" #. (itstool) path: varlistentry/term #: C/index.docbook:1199 msgid "" " Post Supersede Article " msgstr "" " Posta Ersätt artikel " #. (itstool) path: listitem/para #: C/index.docbook:1206 msgid "" "This allows you to supersede an earlier article with another newer post." msgstr "Detta låter dig ersätta en tidigare artikel med en annan, nyare post." #. (itstool) path: varlistentry/term #: C/index.docbook:1210 msgid "" " Post Cancel Article " "" msgstr "" " Posta Avbryt artikel " #. (itstool) path: listitem/para #: C/index.docbook:1217 msgid "This allows you to cancel a earlier article." msgstr "Detta låter dig avbryta en tidigare artikel." #. (itstool) path: note/para #: C/index.docbook:1221 msgid "" "Most public news servers disable the supersede and cancel commands for " "security reasons. Make sure you are comfortable with your article before you " "post it to the news server, because in most cases it will be impossible to " "take back or alter what you have said." msgstr "" "De flesta offentliga diskussionsgruppsservrar inaktiverar kommandona ersätt " "och avbryt av säkerhetsskäl. Säkerställ att du känner dig bekväm med din " "artikel innan du postar den till diskussionsgruppsservern, för i de flesta " "fall kommer det vara omöjligt att ta tillbaka eller ändra på vad du har sagt." #. (itstool) path: sect2/title #: C/index.docbook:1228 msgid "Posting Profiles Dialog" msgstr "Dialogrutan Postandeprofiler" #. (itstool) path: sect2/para #: C/index.docbook:1229 msgid "" "Posting Profiles allow the user to configure different Usenet personas that " "may be customized for particular groups." msgstr "" "Postandeprofiler låter användaren konfigurera olika Usenet-roller som kan " "anpassas för specifika grupper." #. (itstool) path: sect2/para #: C/index.docbook:1231 msgid "" "The Posting Profiles dialog displays a list of " "currently configured Posting Profiles. From here you can Remove or Edit a " "profile by clicking on the profile's name and press the appropriate button. " "Clicking add will start a new profile." msgstr "" "Dialogrutan Postandeprofiler visar en lista över för " "närvarande konfigurerade postandeprofiler. Härifrån kan du ta bort eller " "redigera en profil genom att klicka på profilens namn och trycka på lämplig " "knapp. Att klicka på lägg till kommer starta en ny profil." #. (itstool) path: sect3/title #: C/index.docbook:1236 msgid "Mandatory Information" msgstr "Obligatorisk information" #. (itstool) path: sect3/para #: C/index.docbook:1237 msgid "Each profile contains the following information:" msgstr "Varje profil innehåller följande information:" #. (itstool) path: listitem/para #: C/index.docbook:1240 msgid "Profile Name" msgstr "Profilnamn" #. (itstool) path: listitem/para #: C/index.docbook:1241 msgid "The name of this profile." msgstr "Namnet på denna profil." #. (itstool) path: listitem/para #: C/index.docbook:1244 msgid "Full Name" msgstr "Fullständigt namn" #. (itstool) path: listitem/para #: C/index.docbook:1245 msgid "The author name that will be used in the article's header." msgstr "Författarnamnet som kommer användas i artikelns rubrik." #. (itstool) path: listitem/para #: C/index.docbook:1248 msgid "Email Address" msgstr "E-postadress" #. (itstool) path: listitem/para #: C/index.docbook:1249 msgid "The email address that will be used in the article's header." msgstr "E-postadressen som kommer användas i artikelns rubrik." #. (itstool) path: listitem/para #: C/index.docbook:1252 msgid "Post Articles via" msgstr "Posta artiklar via" #. (itstool) path: listitem/para #: C/index.docbook:1253 msgid "" "If multiple news servers are configured, choose which server will receive " "the article." msgstr "" "Om flera diskussionsgruppsservrar är konfigurerade, välj vilken server som " "kommer ta emot artikeln." #. (itstool) path: sect3/title #: C/index.docbook:1259 msgid "Signatures" msgstr "Signaturer" #. (itstool) path: sect3/para #: C/index.docbook:1260 msgid "" "A signature is a block of text that is appended to the end of every outgoing " "article. Generally it is contact information, a personal motto or a witty " "saying." msgstr "" "En signatur är ett textblock som läggs till i slutet på varje utgående " "artikel. Allmänt är det kontaktinformation, ett personligt motto eller ett " "fyndigt ordspråk." #. (itstool) path: sect3/para #: C/index.docbook:1262 msgid "" "Click Use a Signature to activate signature support." msgstr "" "Klicka på Använd en signatur för att aktivera stöd för " "signaturer." #. (itstool) path: listitem/para #: C/index.docbook:1265 msgid "Text" msgstr "Text" #. (itstool) path: listitem/para #: C/index.docbook:1266 msgid "Type in the text you wish to use as a signature." msgstr "Skriv in texten som du vill använda som signatur." #. (itstool) path: listitem/para #: C/index.docbook:1269 msgid "Text File" msgstr "Textfil" #. (itstool) path: listitem/para #: C/index.docbook:1270 msgid "" "Enter the location of the file in the disk hierarchy. The Browse button can " "assist in this." msgstr "" "Ange platsen för filen i diskhierarkin. Knappen Bläddra kan hjälpa till med " "detta." #. (itstool) path: listitem/para #: C/index.docbook:1273 msgid "Command" msgstr "Kommando" #. (itstool) path: listitem/para #: C/index.docbook:1274 msgid "" "Type in the command you wish to run and the output of that command will be " "captured and used as the signature text." msgstr "" "Skriv in kommandot som du vill köra så kommer utdata för det kommandot att " "fångas och användas som signaturtexten." #. (itstool) path: listitem/para #: C/index.docbook:1276 msgid "Example: fortune -s" msgstr "Exempel: fortune -s" #. (itstool) path: listitem/para #: C/index.docbook:1279 msgid "PGP Signature" msgstr "PGP-signatur" #. (itstool) path: listitem/para #: C/index.docbook:1280 msgid "" "Choose this if you want to sign or encrypt your message with PGP. The given " "email address has to match the PGP email address for this method to work." msgstr "" "Välj detta om du vill signera eller kryptera ditt meddelande med PGP. Den " "angivna e-postadressen måste matcha PGP-e-postadressen för att denna metod " "ska fungera." #. (itstool) path: note/para #: C/index.docbook:1283 msgid "" "PGP support is an optional feature and may not be available in your " "Pan build." msgstr "" "PGP-stöd är valfri funktionalitet och finns kanske inte tillgängligt i ditt " "bygge av Pan." #. (itstool) path: sect3/title #: C/index.docbook:1290 msgid "Optional Information" msgstr "Valfri information" #. (itstool) path: listitem/para #: C/index.docbook:1293 msgid "Attribution" msgstr "Tillskrivning" # TODO: replaced by the date #. (itstool) path: listitem/para #: C/index.docbook:1294 msgid "" "When you reply to a post, the text in the attribution box precedes the " "quoted text. The %d flag is replaced the by the date of the selected post " "while the %n flag is replaced with the author of the selected post." msgstr "" "När du svarar på en post föregår texten i tillskrivningsrutan den citerade " "texten. Flaggan %d ersätts med datumet för den markerade posten medan " "flaggan %n ersätts med författaren för den markerade posten." #. (itstool) path: listitem/para #: C/index.docbook:1299 msgid "Extra Headers" msgstr "Extra rubriker" #. (itstool) path: listitem/para #: C/index.docbook:1300 msgid "This is a advanced option to add extra headers to the article." msgstr "" "Detta är ett avancerat alternativ för att lägga till extra rubriker till " "artikeln." #. (itstool) path: sect2/title #: C/index.docbook:1308 msgid "Post Article Dialog" msgstr "Dialogrutan Posta artikel" #. (itstool) path: sect2/para #: C/index.docbook:1309 msgid "" "Whenever you post an article you use the Post Article Dialog." msgstr "" "Närhelst du postar en artikel använder du dialogrutan Posta " "artikel." #. (itstool) path: sect3/title #: C/index.docbook:1312 msgid "Composition" msgstr "Beståndsdelar" #. (itstool) path: sect3/para #: C/index.docbook:1313 msgid "" "The Post Article Dialog is composed of the following " "parts:" msgstr "" "Dialogrutan Posta artikel består av följande delar:" #. (itstool) path: varlistentry/term #: C/index.docbook:1316 msgid "Menubar" msgstr "Menyrad" #. (itstool) path: listitem/para #: C/index.docbook:1318 msgid "The menubar contains all the commands that you need to post an article." msgstr "" "Menyraden innehåller alla kommandon som du behöver för att posta en artikel." #. (itstool) path: varlistentry/term #: C/index.docbook:1323 C/index.docbook:1558 msgid "Toolbar" msgstr "Verktygsfält" #. (itstool) path: listitem/para #: C/index.docbook:1325 msgid "" "The toolbar contains a subset of the commands that you can access from the " "menubar." msgstr "" "Verktygsfältet innehåller en delmängd av kommandona du kan komma åt från " "menyraden." #. (itstool) path: varlistentry/term #: C/index.docbook:1330 msgid "From" msgstr "Från" #. (itstool) path: listitem/para #: C/index.docbook:1332 msgid "Select which Posting Profile to use." msgstr "Välj vilken postandeprofil som ska användas." #. (itstool) path: varlistentry/term #: C/index.docbook:1337 msgid "Subject" msgstr "Ämne" #. (itstool) path: listitem/para #: C/index.docbook:1339 msgid "" "Type in the subject of your post. If this post is a reply, this line is " "already filled-in." msgstr "" "Skriv in ämnet för din post. Om denna post är ett svar så är denna rad redan " "ifylld." #. (itstool) path: varlistentry/term #: C/index.docbook:1345 msgid "Newsgroups" msgstr "Diskussionsgrupper" #. (itstool) path: listitem/para #: C/index.docbook:1347 msgid "" "A comma separated list of all the groups that will receive this article." msgstr "" "En kommaseparerad lista över alla grupperna som kommer att ta emot denna " "artikel." #. (itstool) path: varlistentry/term #: C/index.docbook:1352 msgid "Mail To" msgstr "E-post till" #. (itstool) path: listitem/para #: C/index.docbook:1354 msgid "Enter an email address to send the article." msgstr "Ange en e-postadress att skicka artikeln till." #. (itstool) path: varlistentry/term #: C/index.docbook:1359 msgid "More Headers" msgstr "Fler rubriker" #. (itstool) path: listitem/para #: C/index.docbook:1361 msgid "An advanced option to manually add more headers." msgstr "Ett avancerat alternativ för att manuellt lägga till fler rubriker." #. (itstool) path: varlistentry/term #: C/index.docbook:1366 msgid "Text Area" msgstr "Textområde" #. (itstool) path: listitem/para #: C/index.docbook:1368 msgid "Where you enter the text of the article." msgstr "Där du matar in artikelns text." #. (itstool) path: sect3/title #: C/index.docbook:1375 msgid "File Commands" msgstr "Arkivkommandon" #. (itstool) path: sect3/para #: C/index.docbook:1376 msgid "" "These file commands are available from within the Post Article " "dialog." msgstr "" "Dessa arkivkommandon är tillgängliga inifrån dialogrutan Posta " "artikel." #. (itstool) path: varlistentry/term #: C/index.docbook:1379 msgid "" " File Send Article " msgstr "" " Arkiv Skicka artikel " #. (itstool) path: listitem/para #: C/index.docbook:1386 msgid "" "When you are done entering the article, use this command to send the article " "to the news server." msgstr "" "När du är klar med att mata in artikeln använder du detta kommando för att " "skicka artikeln till diskussionsgruppsservern." #. (itstool) path: varlistentry/term #: C/index.docbook:1391 msgid "" " File Save Draft " msgstr "" " Arkiv Spara utkast " "" #. (itstool) path: listitem/para #: C/index.docbook:1398 msgid "Save your current work on the article to disk." msgstr "Spara ditt aktuella arbete med artikeln på disk." #. (itstool) path: varlistentry/term #: C/index.docbook:1402 msgid "" " File Open Draft " msgstr "" " Arkiv Öppna utkast " "" #. (itstool) path: listitem/para #: C/index.docbook:1409 msgid "Load a previous draft and continue editing." msgstr "Läs in ett föregående utkast och fortsätt redigera." #. (itstool) path: sect3/title #: C/index.docbook:1416 msgid "Editing Commands" msgstr "Redigeringskommandon" #. (itstool) path: sect3/para #: C/index.docbook:1417 msgid "" "This option is available from within the Post Article Dialog." msgstr "" "Detta alternativ är tillgängligt inifrån dialogrutan Posta " "artikel." # TODO: Manage -> Edit #. (itstool) path: varlistentry/term #: C/index.docbook:1420 msgid "" " Edit Manage Posting Profiles " msgstr "" " Redigera Redigera " "postandeprofiler " #. (itstool) path: listitem/para #: C/index.docbook:1427 msgid "See Posting Profiles." msgstr "Se Postandeprofiler." #. (itstool) path: varlistentry/term #: C/index.docbook:1431 msgid "" " Edit Run Editor " msgstr "" " Redigera Kör redigerare " #. (itstool) path: listitem/para #: C/index.docbook:1438 msgid "" "Starts an external editor. Type in your post in the external editor as you " "normally would and save your work. The external editor will close and the " "text that was entered into that editor will be located in the text area." msgstr "" "Startar en extern redigerare. Skriv in din post i den externa redigeraren " "som du vanligen skulle göra och spara ditt arbete. Den externa redigeraren " "kommer att stängas och texten som matades in i den redigeraren kommer att " "placeras i textområdet." #. (itstool) path: varlistentry/term #: C/index.docbook:1444 msgid "" " Edit Set Editor " msgstr "" " Redigera Ställ in redigerare " #. (itstool) path: listitem/para #: C/index.docbook:1451 msgid "Choose which external editor to use." msgstr "Välj vilken extern redigerare som ska användas." #. (itstool) path: varlistentry/term #: C/index.docbook:1455 msgid "" " Edit Manage Editor List " msgstr "" " Redigera Hantera lista över " "redigerare " #. (itstool) path: listitem/para #: C/index.docbook:1462 msgid "Setup another external editor." msgstr "Konfigurera ännu en extern redigerare." #. (itstool) path: varlistentry/term #: C/index.docbook:1466 msgid "" " Edit Cut, Copy and Paste " msgstr "" " Redigera Klipp ut, kopiera och " "klistra in " #. (itstool) path: listitem/para #: C/index.docbook:1473 msgid "The standard GUI text functions." msgstr "Det grafiska användargränssnittets standardtextfunktioner." #. (itstool) path: varlistentry/term #: C/index.docbook:1477 msgid "" " Edit Wrap Now " msgstr "" " Redigera Radbryt nu " "" #. (itstool) path: listitem/para #: C/index.docbook:1484 msgid "" "Force the text flow into paragraphs instead of running off the edge of the " "text area." msgstr "" "Tvinga textflödet till stycken istället för att försvinna över kanten på " "textområdet." #. (itstool) path: varlistentry/term #: C/index.docbook:1489 msgid "" " Edit Wrap Text " msgstr "" " Redigera Radbryt text " #. (itstool) path: listitem/para #: C/index.docbook:1496 msgid "Set this option to have text automatically wrap when entered." msgstr "" "Ställ in detta alternativ för att text automatiskt ska radbrytas då den " "matas in." #. (itstool) path: varlistentry/term #: C/index.docbook:1500 msgid "" " Edit Check Spelling " "" msgstr "" " redigera Kontrollera stavning " #. (itstool) path: listitem/para #: C/index.docbook:1507 msgid "" "Set this option and possible spelling errors in the text area will marked " "with a red wavy line." msgstr "" "Ställ in detta alternativ så kommer möjliga stavfel i textområdet markeras " "med en röd vågig linje." #. (itstool) path: varlistentry/term #: C/index.docbook:1511 msgid "" " Edit ROT 13 " msgstr "" " Redigera Rotera 13 tecken " #. (itstool) path: listitem/para #: C/index.docbook:1518 msgid "" "ROT13 is a simple cipher to hide story spoilers, joke punchlines, etc. " "Select the text to cipher and use this command." msgstr "" "ROT13 är ett enkelt chiffer för att dölja spoilrar, poängen på vitsar och så " "vidare. Markera texten som ska chiffreras och använd detta kommando." #. (itstool) path: sect1/title #: C/index.docbook:1530 msgid "Tasks" msgstr "Uppgifter" #. (itstool) path: sect1/para #: C/index.docbook:1531 msgid "" "Certain tasks performed by Pan, like downloading " "binary posts or grabbing new headers for a group, can take a long time. " "These tasks are queued and performed in the background while " "Pan is processing other tasks like grabbing an " "article." msgstr "" "Vissa uppgifter som utförs av Pan, som att hämta " "binära poster eller nya rubriker för en grupp, kan ta lång tid. Dessa " "uppgifter köas och utförs i bakgrunden under tiden Pan bearbetar andra uppgifter som att hämta en artikel." #. (itstool) path: sect2/title #: C/index.docbook:1537 msgid "Cancel Last Task" msgstr "Avbryt senaste uppgift" #. (itstool) path: sect2/para #: C/index.docbook:1538 msgid "" "You can quickly cancel the last task added to the task queue by selecting: " " File Cancel Last Task ." msgstr "" "Du kan snabbt avbryta den senaste uppgiften som lades till i uppgiftskön " "genom att välja: Arkiv Avbryt " "senaste uppgift ." #. (itstool) path: sect2/title #: C/index.docbook:1548 msgid "Task Manager" msgstr "Uppgiftshanterare" # TODO: Manger -> Manager #. (itstool) path: sect2/para #: C/index.docbook:1549 msgid "" "Background tasks can be manipulated by using the Task Manager. The Task " "Manager can be accessed with File " "Task Manger or by left-clicking in " "the task area of the Status Bar at the bottom of the Pan screen." msgstr "" "Bakgrundsuppgifter kan manipuleras genom att använda uppgiftshanteraren. " "Uppgiftshanteraren kan kommas åt med Arkiv " "Uppgiftshanterare eller genom att " "vänsterklicka i statusradens uppgiftsområde längst ner i Pan-skärmen." # TODO: manger -> manager #. (itstool) path: sect2/para #: C/index.docbook:1555 msgid "The Task Manger window is composed of the following parts:" msgstr "Uppgiftshanterarfönstret består av följande delar:" # TODO: manger -> manager #. (itstool) path: listitem/para #: C/index.docbook:1560 msgid "" "The toolbar contains all the commands you need to manipulate the tasks in " "the Task Manger Window." msgstr "" "Verktygsfältet innehåller alla kommandon som du behöver för att manipulera " "uppgifterna i uppgiftshanterarfönstret." #. (itstool) path: varlistentry/term #: C/index.docbook:1565 msgid "Informational Area" msgstr "Informationsområde" #. (itstool) path: listitem/para #: C/index.docbook:1567 msgid "" "The Informational Area displays the number of queued tasks, the amount of " "data that needs to downloaded to complete the queued tasks, the current " "download rate and the estimated time needed to complete the queued tasks." msgstr "" "Informationsområdet visar antalet köade uppgifter, mängden data som behöver " "hämtas för att slutföra de köade uppgifterna, den aktuella " "hämtningshastigheten och den beräknade tiden som behövs för att slutföra de " "köade uppgifterna." #. (itstool) path: varlistentry/term #: C/index.docbook:1573 msgid "Task List" msgstr "Uppgiftslista" #. (itstool) path: listitem/para #: C/index.docbook:1575 msgid "A list of queued tasks. Each row is a separate task." msgstr "En lista över köade uppgifter. Varje rad är en separat uppgift." #. (itstool) path: sect2/para #: C/index.docbook:1579 msgid "" "In order to manipulate a task, click on it and the row will be highlighted. " "Then click on one of the buttons in the toolbar." msgstr "" "För att manipulera en uppgift, klicka på den så kommer raden att markeras. " "Klicka sedan på en av knapparna i verktygsfältet." # TODO: whiles -> while #. (itstool) path: tip/para #: C/index.docbook:1581 msgid "" "If Pan is shutdown whiles tasks are still waiting " "in the task manager, the task list is saved to disk and resumed when " "Pan is restarted. This, however, is not true for " "upload tasks in the current version." msgstr "" "Om Pan stängs ner medan uppgifter fortfarande " "väntar i uppgiftshanteraren så sparas uppgiftslistan till disk och " "återupptas när Pan startas om. Detta är dock inte " "sant för sändningsuppgifter i den nuvarande versionen." #. (itstool) path: sect2/title #: C/index.docbook:1587 msgid "NZB Files" msgstr "NZB-filer" #. (itstool) path: sect2/para #: C/index.docbook:1588 msgid "" "Pan saves its task list in $HOME/.pan2/" "tasks.nzb file. You can import other task lists into " "Pan by choosing File Import NZB Files ." msgstr "" "Pan sparar sin uppgiftslista i filen " "$HOME/.pan2/tasks.nzb. Du kan importera andra " "uppgiftslistor till Pan genom att välja " " Arkiv Importera NZB-filer ." #. (itstool) path: sect1/title #: C/index.docbook:1600 msgid "Scoring" msgstr "Poäng" #. (itstool) path: sect1/para #: C/index.docbook:1601 msgid "" "Scoring allows the user to give an article a rating based on user-defined " "scoring rules. This rating can then be used by Pan to perform score-based actions." msgstr "" "Poängsättning låter användaren ge en artikel en rankning baserad på " "användardefinierade poängregler. Denna rankning kan sedan användas av " "Pan för att utföra poängbaserade åtgärder." #. (itstool) path: sect1/para #: C/index.docbook:1604 msgid "" "When a group's article headers are first downloaded from the news server, " "all the articles have a score of 0. Then the list of scoring rules in the " "score file are applied to each article. The score file rules might give an " "article from John Smith a high score, while articles with a subject line " "containing the phrase \"For Sale\" a negative score." msgstr "" "När en grupps artikelrubriker först hämtas från diskussionsgruppsservern " "kommer alla artiklar ha poängen 0. Sedan tillämpas listan över poängregler " "på varje artikel. Poängfilsreglerna skulle kunna ge en artikel från John " "Smith höga poäng, medan artiklar med en ämnesrad som innehåller frasen ”Till " "salu” skulle kunna få negativa poäng." #. (itstool) path: sect2/title #: C/index.docbook:1612 msgid "Scoring Actions" msgstr "Poängåtgärder" #. (itstool) path: listitem/para #: C/index.docbook:1615 msgid "" "View an article by using View " "Header Pane Match Scores of xxxx . The default is to hide articles (by not " "matching) with a score of -9999. and view all other scores." msgstr "" "Visa en artikel genom att använda Visa " "Rubrikpanel Matcha poäng som är xxxx . Standard är att dölja artiklar (genom att inte " "matcha) med en poäng på -9999 och visa alla andra poäng." #. (itstool) path: listitem/para #: C/index.docbook:1624 msgid "" "Change the background and text color of the score column in the Header Pane. " "This is defined in Edit " "Preferences Colors ." msgstr "" "Ändra bakgrunds- och textfärgen för poängkolumnen i rubrikpanelen. Dessa " "definieras i Redigera " "Inställningar Färger ." #. (itstool) path: sect2/para #: C/index.docbook:1613 msgid "" "Pan can perform two actions based on an article's " "score: <_:itemizedlist-1/>" msgstr "" "Pan kan utföra två åtgärder beroende på en " "artikels poäng: <_:itemizedlist-1/>" #. (itstool) path: sect2/title #: C/index.docbook:1638 msgid "Adding Scoring Rules" msgstr "Lägga till poängregler" #. (itstool) path: sect2/para #: C/index.docbook:1640 msgid "" "There are several ways to add rules to the score file. Select an article in " "the Header Pane and then select Articles " "Watch Thread . This rule sets the " "score of any post located in the thread of the selected article to 9999." msgstr "" "Det finns flera sätt att lägga till regler till poängfilen. Markera en " "artikel i rubrikpanelen och välj sedan Artiklar Bevaka tråd . Denna regel " "ställer in poängen för alla poster i tråden för den markerade artikeln till " "9999." #. (itstool) path: sect2/para #: C/index.docbook:1649 msgid "" "The opposite of the above rule is Articles " "Ignore Thread . This rule sets the " "score of any post located in the thread of the selected article to -9999." msgstr "" "Motsatsen till regeln ovan är Artiklar " "Ignorera tråd . Denna regel ställer in " "poängen för alla poster i tråden för den markerade artikeln till -9999." #. (itstool) path: sect2/para #: C/index.docbook:1657 msgid "" "Both of these scoring rules only work in the selected group and expire in " "one month." msgstr "" "Båda dessa poängregler fungerar endast i den markerade gruppen och slutar " "gälla efter en månad." #. (itstool) path: sect2/para #: C/index.docbook:1659 msgid "" "Selecting an article and selecting Articles " "Ignore Author will open the " "New Scoring Rule dialog." msgstr "" "Att markera en artikel och välja Artiklar " "Ignorera författare kommer öppna " "dialogrutan Ny poängregel." #. (itstool) path: sect2/para #: C/index.docbook:1666 msgid "" "The default of this scoring rule is to score all the posts of the author of " "the selected article -9999 for the next month in the selected group. By " "clicking on various fields and selecting different options in the " "New Scoring Rule dialog, you can customize the rule " "further. For instance, instead of having the rule expire in one month, you " "can have the rule last forever. Also note that you can make the rule add to " "the score of an article, making it a watch rule. So the name \"Ignore " "Author\" can be somewhat of a misnomer." msgstr "" "Standard för denna poängregel är att poängsätta alla poster av författaren " "till den markerade artikeln till -9999 för den närmaste månaden i den " "markerade gruppen. Genom att klicka på olika fält och välja olika alternativ " "i dialogrutan Ny poängregel kan du vidare anpassa " "regeln. Du kan exempelvis istället för att den nya regeln ska upphöra efter " "en månad få regeln att vara för alltid. Observera också att du kan få regeln " "att addera till poängen för en artikel, vilket gör det till en " "bevakningsregel. Så namnet ”Ignorera författare” kan vara något missvisande." #. (itstool) path: sect2/para #: C/index.docbook:1672 msgid "" "When finished, click Add and Rescore to close the " "dialog box." msgstr "" "När du är klar klickar du på Lägg till och poängsätt på nytt för att stänga dialogrutan." #. (itstool) path: sect2/para #: C/index.docbook:1674 msgid "" "Selecting an article and selecting Articles " "Add a Scoring Rule is very similar to " "the Ignore Author section described above as it opens the same " "New Scoring Rule dialog, just with different " "defaults. Construct a rule in the same fashion as described above." msgstr "" "Att markera en artikel och välja Artiklar " "Lägg till en poängregel är väldigt " "likt delen Ignorera författare som beskrivits ovan då det öppnar samma " "dialogruta Ny poängregel, bara med andra " "standardvärden. Konstruera en regel på samma sätt som beskrivits ovan." #. (itstool) path: sect2/title #: C/index.docbook:1686 msgid "Editing or Deleting Scoring Rules" msgstr "Redigera eller ta bort poängregler" #. (itstool) path: sect2/para #: C/index.docbook:1688 msgid "" "Selecting an article that is currently being scored and choosing " " Articles Edit Article's Watch/" "Ignore/Score will open the Article's " "Scores dialog box. From this dialog you can manipulate the " "scoring rule for the currently selected article. Each rule will have its own " "row describing the scoring action (plus or minus points), locations and line " "number of this rule in the score file and the texts of the rule. Select the " "rule and click Add button to alter the rule or " "Remove button to delete the rule from the score file. " "Click Close and Rescore when finished." msgstr "" "Att markera en artikel som har poängsatts och välja " "Artiklar Redigera bevakning/ignorera/poäng " "för artikeln kommer öppna dialogrutan " "Artikelns poäng. Från denna dialogruta kan du " "manipulera poängregeln för den för närvarande markerade artikeln. Varje " "regel kommer ha en egen rad som beskriver poängåtgärden (plus- eller " "minuspoäng), platser och radnummer för denna regel i poängfilen och regelns " "texter. Välj regeln och klicka på knappen Lägg till " "för att ändra regeln eller knappen Ta bort för att ta " "bort regeln från poängfilen. Klicka på Stäng och poängsätt på " "nytt när du är klar." #. (itstool) path: sect2/title #: C/index.docbook:1703 msgid "Advanced Scoring" msgstr "Avancerad poängsättning" #. (itstool) path: sect2/para #: C/index.docbook:1705 msgid "" "The scoring file is located at $HOME/.pan2/Score. " "Advanced users might want to edit this file directly with a text editor to " "create advanced scoring rules that are difficult or impossible to construct " "from the New Scoring Rule dialog." msgstr "" "Poängfilen finns på $HOME/.pan2/Score. Avancerade " "användare kan vilja redigera denna fil direkt med en textredigerare för att " "skapa avancerade poängregler som är svåra eller omöjliga att konstruera från " "dialogrutan Ny poängregel." #. (itstool) path: sect2/para #: C/index.docbook:1710 msgid "" "This is probably easiest via the Edit " "Edit Score File menu as that will " "automatically rescore articles when you exit the edit window." msgstr "" "Detta är troligen enklast genom menyn Redigera Redigera poängfil då det " "automatiskt kommer ge artiklar nya poäng när du stänger redigeringsfönstret." #. (itstool) path: sect2/para #: C/index.docbook:1717 msgid "" "The format of the scoring rules is similar to the application " "slrn, but be aware that not all " "slrn scoring functions will work in " "Pan." msgstr "" "Formatet för poängreglerna är liknande för programmet slrn, men var medveten om att inte alla poängfunktioner för " "slrn kommer fungera i Pan." #. (itstool) path: sect2/para #: C/index.docbook:1720 msgid "" "The slrn scoring functions are described in the document slrn - Scoring." msgstr "" "Poängfunktionerna för slrn beskrivs i dokumentet slrn - Scoring." #. (itstool) path: sect1/title #: C/index.docbook:1727 msgid "Customization" msgstr "Anpassning" #. (itstool) path: sect1/para #: C/index.docbook:1728 msgid "" "This section describes how certain features or actions in Pan can be customized." msgstr "" "Detta avsnitt beskriver hur vissa funktioner eller åtgärder i " "Pan kan anpassas." #. (itstool) path: sect2/title #: C/index.docbook:1732 msgid "Behavior" msgstr "Beteende" #. (itstool) path: sect2/para #: C/index.docbook:1733 msgid "" "Many of the default actions of Pan, such as mouse " "clicks, actions when entering or leaving a group and the action of " "Space can be altered." msgstr "" "Många av standardåtgärderna för Pan, så som " "musklick, åtgärder då en grupp gås in i eller lämnas, och åtgärden för " "Blanksteg kan ändras." #. (itstool) path: varlistentry/term #: C/index.docbook:1737 msgid "" "In Edit Preferences " "Behavior " msgstr "" "Välj Redigera Inställningar Beteende " #. (itstool) path: listitem/para #: C/index.docbook:1747 msgid "Mouse" msgstr "Mus" #. (itstool) path: listitem/para #: C/index.docbook:1748 msgid "" "The two boxes of the mouse section change the default action of the left " "mouse button. If unselected, you would have to double click on a group or " "article to activate it." msgstr "" "The två rutorna i musdelen ändrar standardåtgärden för vänster musknapp. Om " "ej valda skulle du behöva dubbelklicka på en grupp eller artikel för att " "aktivera den." #. (itstool) path: listitem/para #: C/index.docbook:1752 msgid "Groups" msgstr "Grupper" #. (itstool) path: listitem/para #: C/index.docbook:1753 msgid "" "The selections in the group section control what commands Pan will automatically run when manipulating groups." msgstr "" "Valen i gruppdelen styr vilka kommandon som Pan " "kommer köra automatiskt då grupper manipuleras." #. (itstool) path: listitem/para #: C/index.docbook:1757 msgid "" "The first box, when activated, will automatically get new headers for all " "subscribed groups whenever Pan is started. This is the equivalent of using " " Groups Get New Headers in " "Subscribed Groups from the menubar." msgstr "" "Den första rutan kommer när aktiverad automatiskt hämta nya rubriker för " "alla prenumererade grupper närhelst Pan startas. Detta motsvarar att använda " " Grupper Hämta nya rubriker i " "prenumererade grupper från menyraden." # TODO: selected group*s* ? #. (itstool) path: listitem/para #: C/index.docbook:1767 msgid "" "The next box, when activated, will automatically get new headers when " "entering a group. This is the equivalent of using " "Groups Get New Headers in Selected Group from the menubar." msgstr "" "Nästa ruta kommer när aktiverad automatiskt hämta nya rubriker när en grupp " "gås in i. Detta motsvarar att använda Grupper Hämta nya rubriker i markerade grupper från menyraden." #. (itstool) path: listitem/para #: C/index.docbook:1777 msgid "" "The next box, when activated, will mark the entire group read when leaving a " "group. This is the equivalent of using Groups Mark Group Read from the " "menubar." msgstr "" "Nästa ruta kommer när aktiverad automatiskt markera hela gruppen som läst då " "en grupp lämnas. Detta motsvarar att använda Grupper Markera grupp som läst " "från menyraden." #. (itstool) path: listitem/para #: C/index.docbook:1787 msgid "" "The last box in the Groups section, when activated, will expand all threads " "in the Header Pane when entering a group." msgstr "" "Den sista rutan i gruppdelen kommer när aktiverad expandera alla trådar i " "rubrikpanelen då en grupp gås in i." #. (itstool) path: listitem/para #: C/index.docbook:1793 msgid "Articles" msgstr "Artiklar" #. (itstool) path: listitem/para #: C/index.docbook:1794 msgid "" "The first option, when activated, makes Space select the " "next article rather than the next unread article. This is handy if you are " "viewing a thread with read and unread articles mixed together." msgstr "" "Det första alternativet får när det är aktiverat Blanksteg " "att markera nästa artikel snarare än nästa olästa artikel. Detta är " "praktiskt om du tittar på en tråd där lästa och olästa artiklar uppträder " "blandat." #. (itstool) path: listitem/para #: C/index.docbook:1797 msgid "The next option activates smooth scrolling in the Article Pane." msgstr "Nästa alternativ aktiverar mjuk rullning i artikelpanelen." #. (itstool) path: sect2/title #: C/index.docbook:1806 msgid "GUI Composition" msgstr "Det grafiska användargränssnittets sammansättning" #. (itstool) path: sect2/para #: C/index.docbook:1807 msgid "" "The layout and view of the Group, Header and Body Panes in Pan can be customized in several ways." msgstr "" "Layouten och visningen av grupp-, rubrik- och textpanelerna i " "Pan kan anpassas på flera sätt." #. (itstool) path: varlistentry/term #: C/index.docbook:1811 msgid "Pane Layout" msgstr "Panellayout" #. (itstool) path: listitem/para #: C/index.docbook:1813 msgid "" "In Edit Preferences " "Layout the orientation of the " "Groups, Header and Body Panes can be manipulated." msgstr "" "I Redigera Inställningar Layout kan " "orienteringen för grupper, rubriker och artikelpaneler manipuleras." #. (itstool) path: varlistentry/term #: C/index.docbook:1823 msgid "Tabbed Layout" msgstr "Fliklayout" #. (itstool) path: listitem/para #: C/index.docbook:1825 msgid "" "Instead of having all three panes share the Pan " "main window at one time, another view, called Tabbed Layout, can be " "activated by choosing View " "Layout Tabbed Layout . Now, only one of the three Panes will be displayed at a time. " "Each Pane is brought to the front of other Panes by clicking on its tab " "located directly under the tool bar or by pressing \"1\", \"2\" or \"3\" for " "the Group, Header or Body Pane respectively." msgstr "" "Istället för att alla tre paneler delar Pan-" "huvudfönstret samtidigt kan en ny vy, kallad fliklayout, aktiveras genom att " "välja Visa Layout " "Fliklayout . Nu kommer endast en av " "de tre panelerna visas samtidigt. Varje panel förs framför de andra " "panelerna genom att klicka på dess flik som finns direkt under " "verktygsfältet eller genom att klicka ”1”, ”2” eller ”3” för grupp-, rubrik- " "respektive artikelpanelen." #. (itstool) path: varlistentry/term #: C/index.docbook:1838 msgid "Show/Hide Panes" msgstr "Visa/dölj paneler" #. (itstool) path: listitem/para #: C/index.docbook:1840 msgid "" "You can hide a specific Pane by choosing from View Layout and using the " "selection box to show/hide each of the Panes." msgstr "" "Du kan dölja en specifik panel genom att välja från " "Visa Layout och " "använda kryssrutan för att visa/dölja var och en av panelerna." #. (itstool) path: varlistentry/term #: C/index.docbook:1849 msgid "Fonts" msgstr "Typsnitt" #. (itstool) path: listitem/para #: C/index.docbook:1851 msgid "" "Choose Edit Preferences Fonts to select a font." msgstr "" "Välj Redigera Inställningar Typsnitt för att välja " "ett typsnitt." #. (itstool) path: listitem/para #: C/index.docbook:1858 msgid "" "Pan can use the monospace font in the article " "Pane, if activated." msgstr "" "Pan kan använda typsnittet med fast breddsteg i " "artikelpanelen om det aktiveras." #. (itstool) path: varlistentry/term #: C/index.docbook:1862 msgid "Colors" msgstr "Färger" #. (itstool) path: listitem/para #: C/index.docbook:1864 msgid "" "Choose Edit Preferences Colors to customize the " "colors used in Pan." msgstr "" "Välj Redigera Inställningar Färger för att anpassa " "färgerna som används i Pan." #. (itstool) path: listitem/para #: C/index.docbook:1871 msgid "" "The first section allows you to customize the colors used by scoring in the " "Header Pane. See for more information on how " "to use this feature." msgstr "" "Den första delen låter dig anpassa färgerna som används av poängsättning i " "rubrikpanelen. Se för mer information om hur " "du kan använda denna funktion." #. (itstool) path: listitem/para #: C/index.docbook:1873 msgid "" "The second section allows you to customize the colors used in the Body Pane." msgstr "" "Den andra delen låter dig anpassa färgerna som används i artikelpanelen." #. (itstool) path: sect2/title #: C/index.docbook:1880 msgid "External Applications" msgstr "Externa program" #. (itstool) path: sect2/para #: C/index.docbook:1881 msgid "" "In this section you set up external applications that Pan can use." msgstr "" "I detta avsnitt konfigurerar du externa program som Pan kan använda." #. (itstool) path: varlistentry/term #: C/index.docbook:1884 msgid "" "In Edit Preferences " "Applications :" msgstr "" "I Redigera Inställningar Program :" #. (itstool) path: listitem/para #: C/index.docbook:1894 msgid "Web Browser" msgstr "Webbläsare" #. (itstool) path: listitem/para #: C/index.docbook:1895 msgid "" "Click the Web Button to choose which external application to launch when " "clicking on an HTML link." msgstr "" "Klicka på webbknappen för att välja vilket externt program som ska startas " "då en HTML-länk klickas på." #. (itstool) path: listitem/para #: C/index.docbook:1899 msgid "Mail Reader" msgstr "E-postläsare" #. (itstool) path: listitem/para #: C/index.docbook:1900 msgid "" "Choose which external application to launch when clicking on an email " "address or when sending a post via email." msgstr "" "Välj vilket externt program som ska startas vid klick på en e-postadress " "eller vid sändning av en post via e-post." #. (itstool) path: sect2/para #: C/index.docbook:1907 msgid "" "To set up an external text editor, choose Post Post to Newsgroup . From the " "Post Article dialog menubar, choose Edit " "Set Editor " msgstr "" "För att konfigurera en extern textredigerare, välj " "Posta Posta till diskussionsgrupp . Välj från dialogmenyraden Posta artikel " " Redigera Ställ in redigerare " #. (itstool) path: sect2/title #: C/index.docbook:1922 msgid "Article Cache Size" msgstr "Storlek på artikelcache" #. (itstool) path: sect2/para #: C/index.docbook:1923 msgid "" "The article cache is a fixed-size disk buffer where Pan stores articles when they are downloaded from a news server. If " "the user downloads a large amount of binary attachments, the default cache " "size might be inadequate." msgstr "" "Artikelcachen är en diskbuffert med fast storlek där Pan lagrar artiklar när de hämtas från en diskussionsgruppsserver. " "Om användaren hämtar en stor mängd binära bilagor kan standardcachestorleken " "vara för liten." #. (itstool) path: sect2/para #: C/index.docbook:1926 msgid "" "The article cache size can be changed in Edit Preferences Behavior Article Cache " msgstr "" "Storleken på artikelcache kan ändras i Redigera Inställningar Beteende Artikelcache " #. (itstool) path: sect2/title #: C/index.docbook:1939 msgid "News Servers" msgstr "Diskussionsgruppsservrar" #. (itstool) path: sect2/para #: C/index.docbook:1940 msgid "" "Pan must connect to a special computer called a " "news server. The news server is the gateway used to access Usenet." msgstr "" "Pan måste ansluta till en speciell dator som " "kallas en diskussionsgruppsserver. Diskussionsgruppsservern är den gateway " "som används för att komma åt Usenet." #. (itstool) path: sect2/para #: C/index.docbook:1942 msgid "" "Choose Edit Edit News Servers and the Servers dialog will " "appear. Click on a server name and you can edit or remove it via the " "buttons. Click the Add button to add another server." msgstr "" "Välj Redigera Redigera " "diskussionsgruppsservrar så kommer dialogrutan " "Servrar att visas. Klicka på ett servernamn så kan du " "redigera eller ta bort den via knapparna. Klicka på knappen Lägg " "till för att lägga till ännu en server." #. (itstool) path: sect2/para #: C/index.docbook:1950 msgid "" "When you add or edit an existing server, the Edit a Server's " "Settings dialog will appear." msgstr "" "När du lägger till eller redigerar en befintlig server kommer dialogrutan " "Redigera inställningarna för en server att visas." #. (itstool) path: sect2/para #: C/index.docbook:1952 msgid "In the location section:" msgstr "I platsdelen:" #. (itstool) path: listitem/para #: C/index.docbook:1956 msgid "Address" msgstr "Adress" #. (itstool) path: listitem/para #: C/index.docbook:1957 msgid "The internet address of the server." msgstr "Serverns internetadress." #. (itstool) path: listitem/para #: C/index.docbook:1960 msgid "Port" msgstr "Port" #. (itstool) path: listitem/para #: C/index.docbook:1961 msgid "" "The port of the server. Port 119 is the standard port number for unsecured " "NNTP connections, port 563 is for TLS/SSL connections." msgstr "" "Serverns port. Port 119 är standardportnummer för osäkra NNTP-anslutningar, " "port 563 är för TLS/SSL-anslutningar." # TODO: If you server -> If your server #. (itstool) path: sect2/para #: C/index.docbook:1964 msgid "" "The next section is the login information for the server. If you server " "requires a username and password, enter them here. If the server allows " "anonymous login or does not require authentication, just let these fields " "blank." msgstr "" "Nästa del är inloggningsinformation för servern. Om din server kräver ett " "användarnamn och lösenord matar du in dem här. Om servern tillåter anonym " "inloggning eller inte kräver autentisering kan du lämna dessa fält tomma." #. (itstool) path: listitem/para #: C/index.docbook:1969 msgid "Username" msgstr "Användarnamn" #. (itstool) path: listitem/para #: C/index.docbook:1970 msgid "Enter the login name if required." msgstr "Ange inloggningsnamnet om det krävs." #. (itstool) path: listitem/para #: C/index.docbook:1973 msgid "Password" msgstr "Lösenord" #. (itstool) path: listitem/para #: C/index.docbook:1974 msgid "Enter the password if required." msgstr "Ange lösenordet om det krävs." #. (itstool) path: note/para #: C/index.docbook:1976 msgid "" "Pan can store saved passwords in a password " "storage service provided by GNOME Keyring or " "libsecret. To enable this feature, use " "Edit PreferencesMiscellaneousSave passwords " "in password storage. Password storage support is an " "optional feature and may not be available in your Pan build." msgstr "" "Pan kan lagra sparade lösenord i en " "lösenordslagringstjänst som tillhandahålls av GNOME-nyckelring eller libsecret. För att aktivera denna " "funktion, använd Redigera " "InställningarÖvrigtSpara lösenord i lösenordsförvaring. Stöd för lösenordslagring är valfri funktionalitet och finns " "kanske inte tillgängligt i ditt bygge av Pan." #. (itstool) path: sect2/para #: C/index.docbook:1984 msgid "" "The next section allows you to enter certain Pan " "settings that are server specific." msgstr "" "Nästa del låter dig ange vissa Pan-inställningar " "som är serverspecifika." #. (itstool) path: listitem/para #: C/index.docbook:1987 msgid "Connection Limit" msgstr "Anslutningsbegränsning" # TODO: will -> while #. (itstool) path: listitem/para #: C/index.docbook:1988 msgid "" "Pan can open multiple connections to a server so " "the user can perform simultaneous actions like download a binary attachment " "will reading articles in a text group." msgstr "" "Pan kan öppna flera anslutningar mot en server så " "att användaren kan utföra samtidiga åtgärder som att hämta en binär bilaga " "och samtidigt läsa artiklar i en textgrupp." #. (itstool) path: listitem/para #: C/index.docbook:1990 msgid "" "In order to follow the GNKSA rules, the maximum number of connections Pan can have open with a server is 4." msgstr "" "För att följa GNKSA-" "reglerna kan Pan maximalt ha 4 anslutningar öppna " "mot en server." #. (itstool) path: listitem/para #: C/index.docbook:1994 msgid "Expire Old Articles" msgstr "Ta bort gamla artiklar" #. (itstool) path: listitem/para #: C/index.docbook:1995 msgid "" "From this toggle box, you can pick a time when Pan will expire old articles and remove them from its article index." msgstr "" "Från denna valruta kan du välja en tid efter vilken Pan kommer att slänga gamla artiklar och ta bort dem från sitt " "artikelindex." #. (itstool) path: listitem/para #: C/index.docbook:1999 msgid "Server Rank" msgstr "Serverrankning" #. (itstool) path: listitem/para #: C/index.docbook:2000 msgid "" "When you have more than 1 server configured, Pan " "uses server rank to decide from which server to download the article. Only " "after all primary servers have been tried for the article will " "Pan use the fallback servers." msgstr "" "När du har mer än en server konfigurerad använder Pan serverrankning för att avgöra från vilken server som artikeln " "ska hämtas. Endast efter att alla primära servrar har försökts för att hitta " "artikeln kommer Pan att använda reservservrarna." #. (itstool) path: listitem/para #: C/index.docbook:2003 msgid "" "The reason for this feature is that a user might have access to a free " "server and also have access to a byte-limited premium server. Server ranking " "allows Pan to use the fallback server as little " "as possible." msgstr "" "Orsaken för denna funktion är att en användare kan ha åtkomst till en gratis " "server och även ha åtkomst till en premiumserver med bytebegränsning på " "överföring. Serverrankning låter Pan använda " "reservservern så lite som möjligt." # TODO: options is 'settings' in GUI. #. (itstool) path: listitem/para #: C/index.docbook:2008 msgid "TLS (SSL) Options" msgstr "TLS (SSL)-inställningar" #. (itstool) path: listitem/para #: C/index.docbook:2009 msgid "" "If security and privacy are of concern, choose secured connections if the " "server supports it." msgstr "" "Välj säkra anslutningar om servern stöder detta ifall säkerhet och sekretess " "är av vikt för dig." #. (itstool) path: note/para #: C/index.docbook:2011 msgid "" "TLS (SSL) support is an optional feature and may not be available in your " "Pan build." msgstr "" "TLS (SSL)-stöd är valfri funktionalitet och finns kanske inte tillgängligt i " "ditt bygge av Pan." #. (itstool) path: listitem/para #: C/index.docbook:2015 msgid "Always trust this server's certificate" msgstr "Lita alltid på denna servers certifikat" #. (itstool) path: listitem/para #: C/index.docbook:2016 msgid "" "If you want to trust the server regardless of the authenticity of its " "certificate, you can enable this option. Use with caution!" msgstr "" "Om du vill lita på servern oavsett riktigheten i dess certifikat kan du " "aktivera detta alternativ. Använd med varsamhet!" pan-0.162/mknews000077500000000000000000000015051475412772400135500ustar00rootroot00000000000000#!/bin/bash # Based on shaunm's simple NEWS entry generator: # https://gitlab.gnome.org/GNOME/gnome-user-docs/raw/master/mknews if [ "$#" != "1" ]; then echo "Usage: mknews PREVTAG" 1>&2 exit 1 fi commits=`git log ${1}.. --pretty="format: %h %s (%an)" -- . ":!po"` echo "$commits" echo '* Contributors to this release:' contrib=`git log ${1}.. --pretty=format:%an, -- . ":!po" | sort | uniq -c | sort -rn | sed -e 's/^ *[0-9]\+ \+//'` echo ' '$contrib'' | grep -v '()$' | sed -e 's/,$//' spc=' ' echo '* Updated translations:' find . -name '*.po' -exec basename {} .po \; | sort -u | while read lc; do contrib=`git log ${1}.. --pretty=format:%an, po/${lc}.po | sort | uniq -c | sort -rn | sed -e 's/^ *[0-9]\+ \+//'` echo " $lc${spc:0:((10-${#lc}))}("$contrib")" done | grep -v '()$' | sed -e 's/,)$/)/' pan-0.162/org.gnome.pan.desktop.in000066400000000000000000000010251475412772400167630ustar00rootroot00000000000000[Desktop Entry] Name=Pan GenericName=Newsreader Comment=Read and post Usenet articles # Translators: Search terms to find this application. Do NOT translate or localise the semicolons! The list MUST also end with a semicolon! Keywords=usenet;news;newsreader;newsgroup;article;yenc;nzb; Exec=pan %U MimeType=application/x-nzb; # Translators: Do NOT translate or transliterate this text (this is an icon file name)! Icon=org.gnome.pan Terminal=false Type=Application Categories=GTK;Network;News; StartupNotify=false StartupWMClass=pan pan-0.162/org.gnome.pan.metainfo.xml.in000066400000000000000000000033711475412772400177210ustar00rootroot00000000000000 org.gnome.pan CC0-1.0 Pan Newsreader Read and post Usenet articles

Pan is a Usenet newsreader that is good at both text and binaries. It supports offline reading, scoring and killfiles, yEnc, NZB, PGP handling, multiple servers, and secure connections.

It is also the only Unix newsreader to get a perfect score on the Good Net-Keeping Seal of Approval evaluations.

org.gnome.pan.desktop pan https://gitlab.gnome.org/GNOME/pan/raw/HEAD/docs/mainwindow.png https://gitlab.gnome.org/GNOME/pan pan-users@nongnu.org GPL-2.0 Pan https://gitlab.gnome.org/GNOME/pan/issues https://gitlab.gnome.org/GNOME/pan/-/blob/master/docs/manual.org https://l10n.gnome.org/module/pan/ https://gitlab.gnome.org/GNOME/pan pan mild intense intense
pan-0.162/org.gnome.pan.service.in000066400000000000000000000001221475412772400167470ustar00rootroot00000000000000[D-BUS Service] Name=@PAN_DBUS_SERVICE_NAME@ Exec=@CMAKE_INSTALL_FULL_BINDIR@/pan pan-0.162/pan.1000066400000000000000000000030301475412772400131510ustar00rootroot00000000000000.TH PAN 1 .SH NAME Pan \- read and post Usenet articles .SH SYNOPSIS .B pan [\fIOPTIONS...\fR] [\fBheaders\fR:\fIGROUP-NAME\fR | \fBnews\fR:\fIMESSAGE-ID\fR] .SH DESCRIPTION \fBPan\fR is a Usenet newsreader that is good at both text and binaries. It supports offline reading, scoring and killfiles, yEnc, NZB, PGP handling, multiple servers, and secure connections. .SH USAGE \fBpan\fR is a program that can be run headless in non-GUI mode, allowing for batch processing of NZB files, downloading headers, and more. .SH OPTIONS .SS "General Options" .TP .B \-h, \-\-help Print usage information and exit. .TP .B \-v, \-\-version Print release version and exit. .TP .B \-\-verbose Be verbose (in non-GUI mode). .TP .B \-\-debug Run in debug mode. Use --debug twice for verbose debug. .TP .B \-\-debug-ssl Run in TLS (aka SSL) debug mode. .SS "URL Options" .TP .BR headers:\fIGROUP-NAME\fR Download new headers for the \fIGROUP-NAME\fR newsgroup. .TP .B news:\fIMESSAGE-ID\fR When specified together with \fB\-\-no-gui\fR, dump the \fIMESSAGE-ID\fR article to standard output. .SS "NZB Batch Options" .TP .B \-\-nzb \fIFILE-1 FILE-2 ...\fR Process NZB files in non-GUI mode. .TP .B \-o, \-\-output=\fIPATH\fR Path to save attachments listed in the NZB file(s). .TP .B \-\-no-gui Only show console output, not the download queue. .SH ENVIRONMENT .TP .B PAN_HOME User data directory to use. Defaults to \fI$HOME/.pan2\fR. .TP .B SSL_CERT_DIR, SSL_DIR Directories to search for SSL certificates. .SH BUGS To report a bug, visit: \fIhttp://pan.rebelbase.com/bugs/\fRpan-0.162/pan.doap000066400000000000000000000025141475412772400137420ustar00rootroot00000000000000 Pan Read and post Usenet articles Pan is a Usenet newsreader that is good at both text and binaries. It supports offline reading, scoring and killfiles, yEnc, NZB, PGP handling, multiple servers, and secure connections. C++ Dominique Dumont ddumont Petr Kovar pmkovar pan-0.162/pan.iss.in000066400000000000000000000232121475412772400142200ustar00rootroot00000000000000; -- pan.iss -- [Setup] AppName=@PACKAGE_NAME@ AppVerName=@PACKAGE_STRING@ AppPublisher=Charles Kerr AppPublisherURL=http://pan.rebelbase.com/ AppCopyright=Copyright (C) 2003 Charles Kerr AppSupportURL=http://pan.rebelbase.com/ AppUpdatesURL=http://pan.rebelbase.com/download/ OutputBaseFilename=@PACKAGE_NAME@-@PACKAGE_VERSION@-setup OutputDir=c:\ LicenseFile=c:\msys\1.0\home\shk\pan\COPYING InfoBeforeFile=c:\msys\1.0\\home\shk\pan\README.windows DefaultDirName={pf}\Pan DefaultGroupName=Pan Compression=bzip/9 AllowNoIcons=yes ; what a bunch of nervous default settings... DisableStartupPrompt=yes DisableDirPage=yes AlwaysRestart=no [Tasks] Name: "desktopicon"; Description: "Create a &desktop icon"; GroupDescription: "Additional icons:"; Flags: unchecked Name: "quicklaunchicon"; Description: "Create a &Quick Launch icon"; GroupDescription: "Additional icons:"; Flags: unchecked [Types] Name: "type_english"; Description: "English-Language Only"; Name: "type_i18n"; Description: "All Languages" [Components] Name: "component_app"; Description: "Application Files"; Types: type_english type_i18n; Flags: fixed Name: "component_i18n"; Description: "Language Translations"; Types: type_i18n [Run] ;Filename: "{app}\Pan.exe"; Description: "Launch Pan"; Flags: waituntilidle postinstall [Registry] ; This adds the GTK+ libraries to Pan.exe's path Root: HKLM; Subkey: "Software\Microsoft\Windows\CurrentVersion\App Paths\Pan.exe"; Flags: uninsdeletekeyifempty Root: HKLM; Subkey: "Software\Microsoft\Windows\CurrentVersion\App Paths\Pan.exe"; ValueType: string; ValueData: "{app}\Pan.exe"; Flags: uninsdeletevalue Root: HKLM; Subkey: "Software\Microsoft\Windows\CurrentVersion\App Paths\Pan.exe"; ValueType: string; ValueName: "Path"; ValueData: "{app};{code:GetGtkPath}\lib;{code:GetGtkPath}\bin"; Flags: uninsdeletevalue [Files] Source: "c:\msys\1.0\home\shk\pan\pan\Pan.exe"; DestDir: "{app}"; Components: component_app; Flags: ignoreversion Source: "c:\msys\1.0\home\shk\pan\pan\icons\Pan.ico"; DestDir: "{app}"; Components: component_app; Flags: ignoreversion Source: "c:\msys\1.0\home\shk\pan\Changelog"; DestDir: "{app}"; Components: component_app; Flags: ignoreversion Source: "c:\msys\1.0\home\shk\pan\COPYING"; DestDir: "{app}"; Components: component_app; Flags: ignoreversion Source: "c:\msys\1.0\home\shk\pan\CREDITS"; DestDir: "{app}"; Components: component_app; Flags: ignoreversion Source: "c:\msys\1.0\home\shk\pan\README.windows"; DestDir: "{app}"; DestName: "README.txt"; Components: component_app; Flags: ignoreversion Source: "c:\msys\1.0\opt\pcre\bin\pcre.dll"; DestDir: "{sys}"; Components: component_app; Flags: onlyifdoesntexist Source: "c:\msys\1.0\home\shk\pan\po\ca.mo"; DestDir: "{reg:HKLM\SOFTWARE\GTK\2.0,Path|{app}}\share\locale\ca\LC_MESSAGES\"; DestName: "pan.mo"; Components: component_i18n; Flags: ignoreversion Source: "c:\msys\1.0\home\shk\pan\po\cs.mo"; DestDir: "{reg:HKLM\SOFTWARE\GTK\2.0,Path|{app}}\share\locale\cs\LC_MESSAGES\"; DestName: "pan.mo"; Components: component_i18n; Flags: ignoreversion Source: "c:\msys\1.0\home\shk\pan\po\da.mo"; DestDir: "{reg:HKLM\SOFTWARE\GTK\2.0,Path|{app}}\share\locale\da\LC_MESSAGES\"; DestName: "pan.mo"; Components: component_i18n; Flags: ignoreversion Source: "c:\msys\1.0\home\shk\pan\po\de.mo"; DestDir: "{reg:HKLM\SOFTWARE\GTK\2.0,Path|{app}}\share\locale\de\LC_MESSAGES\"; DestName: "pan.mo"; Components: component_i18n; Flags: ignoreversion Source: "c:\msys\1.0\home\shk\pan\po\el.mo"; DestDir: "{reg:HKLM\SOFTWARE\GTK\2.0,Path|{app}}\share\locale\el\LC_MESSAGES\"; DestName: "pan.mo"; Components: component_i18n; Flags: ignoreversion Source: "c:\msys\1.0\home\shk\pan\po\en_GB.mo"; DestDir: "{reg:HKLM\SOFTWARE\GTK\2.0,Path|{app}}\share\locale\en_GB\LC_MESSAGES\"; DestName: "pan.mo"; Components: component_i18n; Flags: ignoreversion Source: "c:\msys\1.0\home\shk\pan\po\es.mo"; DestDir: "{reg:HKLM\SOFTWARE\GTK\2.0,Path|{app}}\share\locale\es\LC_MESSAGES\"; DestName: "pan.mo"; Components: component_i18n; Flags: ignoreversion Source: "c:\msys\1.0\home\shk\pan\po\et.mo"; DestDir: "{reg:HKLM\SOFTWARE\GTK\2.0,Path|{app}}\share\locale\et\LC_MESSAGES\"; DestName: "pan.mo"; Components: component_i18n; Flags: ignoreversion Source: "c:\msys\1.0\home\shk\pan\po\fi.mo"; DestDir: "{reg:HKLM\SOFTWARE\GTK\2.0,Path|{app}}\share\locale\fi\LC_MESSAGES\"; DestName: "pan.mo"; Components: component_i18n; Flags: ignoreversion Source: "c:\msys\1.0\home\shk\pan\po\fr.mo"; DestDir: "{reg:HKLM\SOFTWARE\GTK\2.0,Path|{app}}\share\locale\fr\LC_MESSAGES\"; DestName: "pan.mo"; Components: component_i18n; Flags: ignoreversion Source: "c:\msys\1.0\home\shk\pan\po\ga.mo"; DestDir: "{reg:HKLM\SOFTWARE\GTK\2.0,Path|{app}}\share\locale\ga\LC_MESSAGES\"; DestName: "pan.mo"; Components: component_i18n; Flags: ignoreversion Source: "c:\msys\1.0\home\shk\pan\po\gl.mo"; DestDir: "{reg:HKLM\SOFTWARE\GTK\2.0,Path|{app}}\share\locale\gl\LC_MESSAGES\"; DestName: "pan.mo"; Components: component_i18n; Flags: ignoreversion Source: "c:\msys\1.0\home\shk\pan\po\hu.mo"; DestDir: "{reg:HKLM\SOFTWARE\GTK\2.0,Path|{app}}\share\locale\hu\LC_MESSAGES\"; DestName: "pan.mo"; Components: component_i18n; Flags: ignoreversion Source: "c:\msys\1.0\home\shk\pan\po\it.mo"; DestDir: "{reg:HKLM\SOFTWARE\GTK\2.0,Path|{app}}\share\locale\it\LC_MESSAGES\"; DestName: "pan.mo"; Components: component_i18n; Flags: ignoreversion Source: "c:\msys\1.0\home\shk\pan\po\ja.mo"; DestDir: "{reg:HKLM\SOFTWARE\GTK\2.0,Path|{app}}\share\locale\ja\LC_MESSAGES\"; DestName: "pan.mo"; Components: component_i18n; Flags: ignoreversion Source: "c:\msys\1.0\home\shk\pan\po\ko.mo"; DestDir: "{reg:HKLM\SOFTWARE\GTK\2.0,Path|{app}}\share\locale\ko\LC_MESSAGES\"; DestName: "pan.mo"; Components: component_i18n; Flags: ignoreversion Source: "c:\msys\1.0\home\shk\pan\po\lt.mo"; DestDir: "{reg:HKLM\SOFTWARE\GTK\2.0,Path|{app}}\share\locale\lt\LC_MESSAGES\"; DestName: "pan.mo"; Components: component_i18n; Flags: ignoreversion Source: "c:\msys\1.0\home\shk\pan\po\nl.mo"; DestDir: "{reg:HKLM\SOFTWARE\GTK\2.0,Path|{app}}\share\locale\nl\LC_MESSAGES\"; DestName: "pan.mo"; Components: component_i18n; Flags: ignoreversion Source: "c:\msys\1.0\home\shk\pan\po\no.mo"; DestDir: "{reg:HKLM\SOFTWARE\GTK\2.0,Path|{app}}\share\locale\no\LC_MESSAGES\"; DestName: "pan.mo"; Components: component_i18n; Flags: ignoreversion Source: "c:\msys\1.0\home\shk\pan\po\pl.mo"; DestDir: "{reg:HKLM\SOFTWARE\GTK\2.0,Path|{app}}\share\locale\pl\LC_MESSAGES\"; DestName: "pan.mo"; Components: component_i18n; Flags: ignoreversion Source: "c:\msys\1.0\home\shk\pan\po\pt.mo"; DestDir: "{reg:HKLM\SOFTWARE\GTK\2.0,Path|{app}}\share\locale\pt\LC_MESSAGES\"; DestName: "pan.mo"; Components: component_i18n; Flags: ignoreversion Source: "c:\msys\1.0\home\shk\pan\po\pt_BR.mo"; DestDir: "{reg:HKLM\SOFTWARE\GTK\2.0,Path|{app}}\share\locale\pt_BR\LC_MESSAGES\"; DestName: "pan.mo"; Components: component_i18n; Flags: ignoreversion Source: "c:\msys\1.0\home\shk\pan\po\ru.mo"; DestDir: "{reg:HKLM\SOFTWARE\GTK\2.0,Path|{app}}\share\locale\ru\LC_MESSAGES\"; DestName: "pan.mo"; Components: component_i18n; Flags: ignoreversion Source: "c:\msys\1.0\home\shk\pan\po\sk.mo"; DestDir: "{reg:HKLM\SOFTWARE\GTK\2.0,Path|{app}}\share\locale\sk\LC_MESSAGES\"; DestName: "pan.mo"; Components: component_i18n; Flags: ignoreversion Source: "c:\msys\1.0\home\shk\pan\po\sl.mo"; DestDir: "{reg:HKLM\SOFTWARE\GTK\2.0,Path|{app}}\share\locale\sl\LC_MESSAGES\"; DestName: "pan.mo"; Components: component_i18n; Flags: ignoreversion Source: "c:\msys\1.0\home\shk\pan\po\sr.mo"; DestDir: "{reg:HKLM\SOFTWARE\GTK\2.0,Path|{app}}\share\locale\sr\LC_MESSAGES\"; DestName: "pan.mo"; Components: component_i18n; Flags: ignoreversion Source: "c:\msys\1.0\home\shk\pan\po\sv.mo"; DestDir: "{reg:HKLM\SOFTWARE\GTK\2.0,Path|{app}}\share\locale\sv\LC_MESSAGES\"; DestName: "pan.mo"; Components: component_i18n; Flags: ignoreversion Source: "c:\msys\1.0\home\shk\pan\po\tr.mo"; DestDir: "{reg:HKLM\SOFTWARE\GTK\2.0,Path|{app}}\share\locale\tr\LC_MESSAGES\"; DestName: "pan.mo"; Components: component_i18n; Flags: ignoreversion Source: "c:\msys\1.0\home\shk\pan\po\uk.mo"; DestDir: "{reg:HKLM\SOFTWARE\GTK\2.0,Path|{app}}\share\locale\uk\LC_MESSAGES\"; DestName: "pan.mo"; Components: component_i18n; Flags: ignoreversion Source: "c:\msys\1.0\home\shk\pan\po\vi.mo"; DestDir: "{reg:HKLM\SOFTWARE\GTK\2.0,Path|{app}}\share\locale\vi\LC_MESSAGES\"; DestName: "pan.mo"; Components: component_i18n; Flags: ignoreversion Source: "c:\msys\1.0\home\shk\pan\po\zh_CN.mo"; DestDir: "{reg:HKLM\SOFTWARE\GTK\2.0,Path|{app}}\share\locale\zh_CN\LC_MESSAGES\"; DestName: "pan.mo"; Components: component_i18n; Flags: ignoreversion [Icons] Name: "{group}\pan"; Filename: "{app}\Pan.exe"; WorkingDir: "{app}"; IconFilename: "{app}\pan\icons\Pan.ico" Name: "{group}\Uninstall Pan"; Filename: "{uninstallexe}" Name: "{userdesktop}\Pan"; Filename: "{app}\Pan.exe"; WorkingDir: "{app}"; IconFilename: "{app}\pan\icons\Pan.ico"; Tasks: desktopicon Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\Pan"; Filename: "{app}\Pan.exe"; WorkingDir: "{app}"; Tasks: quicklaunchicon [UninstallDelete] Type: filesandordirs; Name: "{app}\.pan" Type: dirifempty; Name: "{app}" [Code] var Exists: Boolean; GtkPath: String; function GetGtkInstalled (): Boolean; begin Exists := RegQueryStringValue (HKLM, 'Software\GTK\2.0', 'Path', GtkPath); if not Exists then begin Exists := RegQueryStringValue (HKCU, 'Software\GTK\2.0', 'Path', GtkPath); end; Result := Exists end; function GetGtkPath (S: String): String; begin Result := GtkPath; end; function InitializeSetup(): Boolean; begin Result := GetGtkInstalled (); if not Result then begin MsgBox ('Pan requires the GTK+ 2.2 Runtime Environment from http://www.dropline.net/gtk/.', mbError, MB_OK); end; end; pan-0.162/pan/000077500000000000000000000000001475412772400130735ustar00rootroot00000000000000pan-0.162/pan/CMakeLists.txt000066400000000000000000000002301475412772400156260ustar00rootroot00000000000000# order of add_subdirectory is important foreach(subdir data data-impl general icons tasks usenet-utils gui) add_subdirectory(${subdir}) endforeach() pan-0.162/pan/data-impl/000077500000000000000000000000001475412772400147435ustar00rootroot00000000000000pan-0.162/pan/data-impl/CMakeLists.txt000066400000000000000000000013011475412772400174760ustar00rootroot00000000000000add_library(data-impl article-filter.cc rules-filter.cc data-io.cc data-impl.cc groups.cc headers.cc profiles.cc server.cc my-tree.cc task-archive.cc xover.cc ) # Sanity checking # https://cmake.org/cmake/help/latest/command/add_compile_options.html target_compile_options(data-impl PRIVATE "${CXX_STD}" "-Wreorder" "-Wzero-as-null-pointer-constant") target_link_libraries(data-impl PUBLIC PkgConfig::GTK3) target_link_libraries(data-impl PUBLIC PkgConfig::GMIME) if(WANT_GNUTLS) target_link_libraries(data-impl PUBLIC PkgConfig::GNUTLS) endif() if(WANT_GKR) target_link_libraries(data-impl PUBLIC PkgConfig::LIBSECRET) target_link_libraries(data-impl PUBLIC PkgConfig::GCR3) endif() pan-0.162/pan/data-impl/article-filter.cc000066400000000000000000000233451475412772400201670ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #include #include #include #include #include #include // #include #include #include "article-filter.h" using namespace pan; StringView const ArticleFilter ::get_header(Article const &a, Quark const &header_name) const { static StringView const empty; if (header_name == subject) { return a.subject.to_view(); } if (header_name == from) { return a.author.to_view(); } if (header_name == message_Id) { return a.message_id.to_view(); } if (header_name == message_ID) { return a.message_id.to_view(); } std::cerr << LINE_ID << ' ' << PACKAGE_STRING << " is misparsing \"" << header_name << "\".\n" << "Please file a bug report to " "https://gitlab.gnome.org/GNOME/pan/issues\n"; return empty; } bool ArticleFilter ::test_article(Data const &data, FilterInfo const &criteria, Quark const &group, Article const &article) const { ArticleCache const &cache(data.get_cache()); bool pass(false); switch (criteria._type) { case FilterInfo::AGGREGATE_AND: pass = true; foreach_const (FilterInfo::aggregatesp_t, criteria._aggregates, it) { // assume test passes if test needs body but article not cached if (! (*it)->_needs_body || cache.contains(article.message_id)) { if (! test_article(data, **it, group, article)) { pass = false; break; } } } break; case FilterInfo::AGGREGATE_OR: if (criteria._aggregates.empty()) { pass = true; } else { pass = false; foreach_const (FilterInfo::aggregatesp_t, criteria._aggregates, it) { // assume test fails if test needs body but article not cached if (! (*it)->_needs_body || cache.contains(article.message_id)) { if (test_article(data, **it, group, article)) { pass = true; break; } } } } break; case FilterInfo::IS_BINARY: pass = article.get_part_state() == Article::COMPLETE; break; case FilterInfo::IS_POSTED_BY_ME: pass = data.has_from_header(article.author.to_view()); break; case FilterInfo::IS_READ: pass = data.is_read(&article); break; case FilterInfo::IS_UNREAD: pass = ! data.is_read(&article); break; case FilterInfo::BYTE_COUNT_GE: pass = article.is_byte_count_ge((unsigned long)criteria._ge); break; case FilterInfo::CROSSPOST_COUNT_GE: { quarks_t groups; foreach_const (Xref, article.xref, xit) { groups.insert(xit->group); } pass = (int)groups.size() >= criteria._ge; break; } case FilterInfo::DAYS_OLD_GE: pass = (time(NULL) - article.time_posted) > (criteria._ge * 86400); break; case FilterInfo::LINE_COUNT_GE: pass = article.is_line_count_ge((unsigned int)criteria._ge); break; case FilterInfo::TEXT: if (criteria._header == xref) { if (criteria._text._impl_type == TextMatch::CONTAINS) // user is filtering by groupname? { foreach_const (Xref, article.xref, xit) { if ((pass = criteria._text.test(xit->group.to_view()))) { break; } } } else if (criteria._text._impl_text.find("(.*:){") != std::string::npos) // user is filtering by # of crossposts { char const *search = "(.*:){"; //} std::string::size_type pos = criteria._text._impl_text.find(search) + strlen(search); int const ge = atoi(criteria._text._impl_text.c_str() + pos); FilterInfo tmp; tmp.set_type_crosspost_count_ge(ge); pass = test_article(data, tmp, group, article); } else if (criteria._text._impl_text.find(".*:.*") != std::string::npos) // user is filtering by # of crossposts? { StringView const v(criteria._text._impl_text); int const ge = std::count(v.begin(), v.end(), ':'); FilterInfo tmp; tmp.set_type_crosspost_count_ge(ge); pass = test_article(data, tmp, group, article); } else // oh fine, then, user is doing some other damn thing with the xref // header. build one for them. { std::string s; foreach_const (Xref, article.xref, xit) { if (s.empty()) { int unused; data.get_server_addr(xit->server, s, unused); s += ' '; } s += xit->group; s += ':'; char buf[32]; g_snprintf(buf, sizeof(buf), "%" G_GUINT64_FORMAT, static_cast(xit->number)); s += buf; s += ' '; } if (! s.empty()) { s.resize(s.size() - 1); } pass = criteria._text.test(s); } } else if (criteria._header == newsgroups) { quarks_t unique_groups; foreach_const (Xref, article.xref, xit) { unique_groups.insert(xit->group); } std::string s; foreach_const (quarks_t, unique_groups, git) { s += git->c_str(); s += ','; } if (! s.empty()) { s.resize(s.size() - 1); } pass = criteria._text.test(s); } else if (criteria._header == references) { std::string s; data.get_article_references(group, &article, s); pass = criteria._text.test(s); } else if (! criteria._needs_body) { pass = criteria._text.test(get_header(article, criteria._header)); } else { if (cache.contains(article.message_id)) { ArticleCache::mid_sequence_t mid(1, article.message_id); #ifdef HAVE_GMIME_CRYPTO GPGDecErr err; GMimeMessage *msg = cache.get_message(mid, err); #else GMimeMessage *msg = cache.get_message(mid); #endif const char *hdr = g_mime_object_get_header(GMIME_OBJECT(msg), criteria._header); pass = criteria._text.test(hdr); g_object_unref(msg); } else { pass = false; } } break; case FilterInfo::SCORE_GE: pass = article.score >= criteria._ge; break; case FilterInfo::IS_CACHED: pass = data.get_cache().contains(article.message_id); break; case FilterInfo::TYPE_ERR: assert(0 && "invalid type!"); pass = false; break; } if (criteria._negate) { pass = ! pass; } return pass; } void ArticleFilter ::test_articles(Data const &data, FilterInfo const &criteria, Quark const &group, articles_t const &in, articles_t &setme_pass, articles_t &setme_fail) const { foreach_const (articles_t, in, it) { Article const *a(*it); if (test_article(data, criteria, group, *a)) { setme_pass.push_back(a); } else { setme_fail.push_back(a); } } } int ArticleFilter ::score_article(Data const &data, sections_t const §ions, Quark const &group, Article const &article) const { int score(0); foreach_const (sections_t, sections, sit) { Scorefile::Section const *section(*sit); foreach_const (Scorefile::items_t, section->items, it) { if (it->expired) { continue; } if (! test_article(data, it->test, group, article)) { continue; } if (it->value_assign_flag) { return it->value; } score += it->value; } } return score; } void ArticleFilter ::get_article_scores(Data const &data, sections_t const §ions, Quark const &group, Article const &article, Scorefile::items_t &setme) const { foreach_const (sections_t, sections, sit) { Scorefile::Section const *section(*sit); foreach_const (Scorefile::items_t, section->items, it) { if (it->expired) { continue; } if (! test_article(data, it->test, group, article)) { continue; } setme.push_back(*it); if (it->value_assign_flag) { return; } } } } pan-0.162/pan/data-impl/article-filter.h000066400000000000000000000055411475412772400200270ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #ifndef __ArticleFilter_h__ #define __ArticleFilter_h__ #include #include #include #include #include #include namespace pan { /** * This private class should only be used by data-impl classes. * * It's used for implementing article filters as described by * FilterInfo in the 'backend interfaces' module. * * @ingroup data_impl */ class ArticleFilter { private: Quark const subject; Quark const from; Quark const xref; Quark const references; Quark const newsgroups; Quark const message_Id; Quark const message_ID; StringView const get_header(Article const &a, Quark const &header_name) const; public: ArticleFilter() : subject("Subject"), from("From"), xref("Xref"), references("References"), newsgroups("Newsgroups"), message_Id("Message-Id"), message_ID("Message-ID") { } typedef std::vector
articles_t; void test_articles(Data const &data, FilterInfo const &criteria, Quark const &group, articles_t const &in, articles_t &setme_pass, articles_t &setme_fail) const; bool test_article(Data const &data, FilterInfo const &criteria, Quark const &group, Article const &article) const; typedef std::vector sections_t; int score_article(Data const &data, sections_t const &score, Quark const &group, Article const &article) const; void get_article_scores(Data const &data, sections_t const &score, Quark const &group, Article const &article, Scorefile::items_t &setme) const; }; } // namespace pan #endif pan-0.162/pan/data-impl/data-impl.cc000066400000000000000000000105231475412772400171230ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ /************** *************** **************/ #include #include #include // for g_build_filename #include #include #include #include #include #include "data-impl.h" #ifdef HAVE_GKR #define GCR_API_SUBJECT_TO_CHANGE #include #include #undef GCR_API_SUBJECT_TO_CHANGE #endif using namespace pan; /** *** **/ namespace { std::string get_cache_path () { char * pch (g_build_filename (file::get_pan_home().c_str(), "article-cache", nullptr)); file :: ensure_dir_exists (pch); std::string path (pch); g_free (pch); return path; } std::string get_encode_cache_path () { char * pch (g_build_filename (file::get_pan_home().c_str(), "encode-cache", nullptr)); file :: ensure_dir_exists (pch); std::string path (pch); g_free (pch); return path; } } DataImpl ::DataImpl(StringView const &cache_ext, Prefs &prefs, bool unit_test, int cache_megs, DataIO *io) : ProfilesImpl(*io), _cache(get_cache_path(), cache_ext, cache_megs), _encode_cache(get_encode_cache_path(), cache_megs), _certstore(*this), _queue(nullptr), _unit_test(unit_test), _data_io(io), _prefs(prefs), _descriptions_loaded(false), _cached_xover_entry(nullptr), _rules_filter(prefs.get_flag("rules-autocache-mark-read", false), prefs.get_flag("rules-auto-dl-mark-read", false), prefs.get_flag("rules-autocache-mark-read", false)), newsrc_autosave_id(0), newsrc_autosave_timeout(0) { rebuild_backend (); } void DataImpl :: rebuild_backend () { if (_unit_test) { debug ("data-impl not loading anything because we're in unit test mode"); } else { TimeElapsed timer; const std::string score_filename (_data_io->get_scorefile_name()); if (file :: file_exists (score_filename.c_str())) _scorefile.parse_file (score_filename); load_server_properties (*_data_io); load_newsrc_files (*_data_io); load_group_xovers (*_data_io); load_group_permissions (*_data_io); _descriptions.clear (); _descriptions_loaded = false; //load_group_descriptions (*_data_io); Log::add_info_va (_("Loaded data backend in %.1f seconds"), timer.get_seconds_elapsed()); } } DataImpl :: ~DataImpl () { save_state (); } void DataImpl :: save_state () { if (!_unit_test) { debug ("data-impl dtor saving xov, newsrc..."); save_group_xovers (*_data_io); save_newsrc_files (*_data_io); } } std::string DataImpl :: get_scorefile_name() const { return _data_io->get_scorefile_name(); } #ifdef HAVE_GKR gboolean DataImpl :: password_encrypt (const PasswordData& pw) { GError *error_c = nullptr; return ( secret_password_store_sync ( SECRET_SCHEMA_COMPAT_NETWORK, SECRET_COLLECTION_DEFAULT, _("Pan Newsreader's server passwords"), pw.pw, nullptr, &error_c, "user", pw.user.str, "server", pw.server.c_str(), nullptr) ); } gchar* DataImpl :: password_decrypt (PasswordData& pw) const { GError *error_c = nullptr; gchar* pwd = nullptr; pwd = secret_password_lookup_sync ( SECRET_SCHEMA_COMPAT_NETWORK, nullptr, &error_c, "user", pw.user.str, "server", pw.server.c_str(), nullptr); if (pwd) { pw.pw = gcr_secure_memory_strdup(pwd); secret_password_free(pwd); } else { pw.pw = const_cast(""); } return pwd; } #endif pan-0.162/pan/data-impl/data-impl.h000066400000000000000000000610151475412772400167670ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #ifndef __DataImpl_h__ #define __DataImpl_h__ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #ifdef HAVE_GNUTLS #include #include #endif namespace pan { typedef std::vector articles_t; typedef Data::PasswordData PasswordData; /** * File-based implementation of the `Data' backend interface. * * Most of the files are stored in $PAN_HOME, which defaults to * $HOME/.pan2 if the PAN_HOME environmental variable isn't set. * * @ingroup data_impl */ class DataImpl final : public Data, public TaskArchive, public ProfilesImpl { /** *** SERVERS **/ public: /* The ProfilesImpl will own and destruct the DataIO object */ DataImpl(StringView const &cache_ext, Prefs &prefs, bool unit_test = false, int cache_megs = 10, DataIO *source = new DataIO()); virtual ~DataImpl(); void save_state() override final; public: ArticleCache &get_cache() override { return _cache; } ArticleCache const &get_cache() const override { return _cache; } EncodeCache &get_encode_cache() override { return _encode_cache; } EncodeCache const &get_encode_cache() const override { return _encode_cache; } CertStore &get_certstore() override { return _certstore; } CertStore const &get_certstore() const override { return _certstore; } virtual Prefs &get_prefs() { return _prefs; } virtual Prefs const &get_prefs() const { return _prefs; } virtual Queue *get_queue() { return _queue; } virtual Queue const *get_queue() const { return _queue; } void set_queue(Queue *q) override { _queue = q; } private: ArticleCache _cache; EncodeCache _encode_cache; CertStore _certstore; Queue *_queue; public: #ifdef HAVE_GKR gboolean password_encrypt(PasswordData const &) override; gchar *password_decrypt(PasswordData &) const override; #endif private: void rebuild_backend(); bool const _unit_test; DataIO *_data_io; Prefs &_prefs; /** *** SERVERS **/ private: // implementation void load_server_properties(DataIO const &); void save_server_properties(DataIO &, Prefs &); void load_db_schema(char const *file); typedef Loki::AssocVector servers_t; servers_t _servers; public: Server const *find_server(Quark const &server) const override; Server *find_server(Quark const &server) override; bool find_server_by_host_name(std::string const &server, Quark &setme) const override; public: // mutators void delete_server(Quark const &server) override; Quark add_new_server() override; void set_server_auth(Quark const &server, StringView const &username, gchar *&password, bool use_gkr) override; void set_server_trust(Quark const &servername, int setme) override; void set_server_addr(Quark const &server, StringView const &host, int const port) override; void set_server_limits(Quark const &server, int max_connections) override; void set_server_rank(Quark const &server, int rank) override; void set_server_ssl_support(Quark const &server, int ssl) override; void set_server_cert(Quark const &server, StringView const &cert) override; void set_server_article_expiration_age(Quark const &server, int days) override; void set_server_compression_type(Quark const &server, int const setme) override; void save_server_info(Quark const &server) override; public: // accessors quarks_t get_servers() const override; bool get_server_auth(Quark const &server, std::string &setme_username, gchar *&setme_password, bool use_gkr) override; void get_server_auth(Server *server, std::string &setme_username, gchar *&setme_password, bool use_gkr); bool get_server_trust(Quark const &servername, int &) const override; bool get_server_compression_type(Quark const &servername, CompressionType &) const override; bool get_server_addr(Quark const &server, std::string &setme_host, int &setme_port) const override; std::string get_server_address(Quark const &servername) const override; bool get_server_ssl_support(Quark const &server) const override; std::string get_server_cert(Quark const &server) const override; int get_server_rank(Quark const &server) const override; int get_server_limits(Quark const &server) const override; int get_server_article_expiration_age(Quark const &server) const override; /** *** GROUPS **/ private: // implementation typedef std::map descriptions_t; mutable descriptions_t _descriptions; // groupname -> description mutable bool _descriptions_loaded; typedef sorted_vector unique_sorted_quarks_t; typedef sorted_vector groups_t; groups_t _moderated; // groups which are moderated groups_t _nopost; // groups which do not allow posting typedef sorted_vector alpha_groups_t; alpha_groups_t _subscribed; // subscribed groups, sorted alphabetically alpha_groups_t _unsubscribed; // non-subscribed groups, sorted alphabetically /** * Represents a newsgroup that's been read. * * Since most groups are never read, the `read' fields are separated * out into this structure, so that it can be instantiated on demand. * Since most news servers have tens of thousands of newsgroups, * this represents a big memory savings. * * This private class should only be used by code in the data-impl module. */ struct ReadGroup { /** * Per-server for a newsgroup that's been read. * * This private class should only be used by code in the data-impl * module. */ struct Server { Numbers _read; Article_Number _xover_high; Server() : _xover_high(0) { } }; typedef Loki::AssocVector servers_t; servers_t _servers; Article_Count _article_count; Article_Count _unread_count; ReadGroup() : _article_count(0), _unread_count(0) { } Server &operator[](Quark const &s) { return _servers[s]; } static void decrement_safe(Article_Count &lhs, Article_Count dec) { lhs = lhs > dec ? lhs - dec : static_cast(0); } void decrement_unread(Article_Count dec) { decrement_safe(_unread_count, dec); } void decrement_count(Article_Count dec) { decrement_safe(_article_count, dec); } Server *find_server(Quark const &s) { servers_t::iterator it(_servers.find(s)); return it == _servers.end() ? nullptr : &it->second; } Server const *find_server(Quark const &s) const { servers_t::const_iterator it(_servers.find(s)); return it == _servers.end() ? nullptr : &it->second; } }; typedef Loki::AssocVector read_groups_t; read_groups_t _read_groups; ReadGroup *find_read_group(Quark const &g) { read_groups_t::iterator it(_read_groups.find(g)); return it == _read_groups.end() ? nullptr : &it->second; } ReadGroup const *find_read_group(Quark const &g) const { read_groups_t::const_iterator it(_read_groups.find(g)); return it == _read_groups.end() ? nullptr : &it->second; } ReadGroup::Server *find_read_group_server(Quark const &g, Quark const &s) { ReadGroup *read_group = find_read_group(g); return read_group ? read_group->find_server(s) : nullptr; } ReadGroup::Server const *find_read_group_server(Quark const &g, Quark const &s) const { ReadGroup const *read_group = find_read_group(g); return read_group ? read_group->find_server(s) : nullptr; } void ensure_descriptions_are_loaded() const; void load_group_descriptions(DataIO const &) const; void save_group_descriptions(DataIO &) const; void load_group_xovers(DataIO const &); void save_group_xovers(DataIO &) const; void load_group_permissions(DataIO const &); void save_group_permissions(DataIO &) const; std::string get_newsrc_filename(Quark const &server) const; void load_newsrc(Quark const &server, LineReader *, alpha_groups_t &, alpha_groups_t &); void load_newsrc_files(DataIO const &); void save_newsrc_files(DataIO &) const; public: // mutators void add_groups(Quark const &server, NewGroup const *new_groups, size_t group_count) override; void mark_group_read(Quark const &group) override; void set_group_subscribed(Quark const &group, bool sub) override; public: // accessors std::string const &get_group_description(Quark const &group) const override; void get_subscribed_groups(std::vector &) const override; void get_other_groups(std::vector &) const override; virtual void get_group_counts(Quark const &group, Article_Count &setme_unread, Article_Count &setme_total) const override; char get_group_permission(Quark const &group) const override; void group_get_servers(Quark const &group, quarks_t &) const override; void server_get_groups(Quark const &server, quarks_t &) const override; /** *** HEADERS **/ private: // implementation /** 'article' MUST have been allocated by * GroupHeaders::alloc_new_article()!! */ void load_article(Quark const &g, Article *article, StringView const &references); /** the contents of `part' are given up wholesale to our local GroupHeaders. As a side-effect, the value of `part' after this call is undefined. This is an ugly interface, but it's fast and only called by one client. */ void load_part(Quark const &g, Quark const &mid, int number, StringView const &part_mid, unsigned long lines, unsigned long bytes); void load_headers(DataIO const &, Quark const &group); void save_headers(DataIO &, Quark const &group) const; bool save_headers(DataIO &, Quark const &group, std::vector
const &, unsigned long &, unsigned long &) const; /** * ArticleNode is a Tree node used for threading Article objects. * * GroupHeaders owns these, and also contains a lookup table from * Message-ID to ArticleNode for finding a starting point in the tree. * * Note that _article can be NULL here; we instantiate nodes from * Articles' References: header so that we can get the threading model * right even during an xover where we get children in before the * parent. This way we never need to rethread; new articles just * fill in the missing pieces as they come in. * * @see GroupHeaders */ struct ArticleNode { Quark _mid; Article *_article; ArticleNode *_parent; typedef std::list children_t; children_t _children; ArticleNode() : _article(nullptr), _parent(nullptr) { } }; typedef std::map nodes_t; typedef std::vector nodes_v; typedef std::vector const_nodes_v; struct NodeWeakOrdering { typedef std::pair nodes_t_element; bool operator()(nodes_t_element const &a, Quark const &b) const { return a.first < b; } bool operator()(Quark const &a, nodes_t_element const &b) const { return a < b.first; } }; /*** ** ***/ void fire_article_flag_changed(articles_t &a, Quark const &group) override; struct GroupHeaders { int _ref; bool _dirty; nodes_t _nodes; MemChunk
_art_chunk; MemChunk _node_chunk; GroupHeaders(); ~GroupHeaders(); Article &alloc_new_article() { static const Article blank_article; _art_chunk.push_back(blank_article); return _art_chunk.back(); } ArticleNode *find_node(Quark const &mid); ArticleNode const *find_node(Quark const &mid) const; Quark const &find_parent_message_id(Quark const &mid) const; Article *find_article(Quark const &mid); Article const *find_article(Quark const &mid) const; void remove_articles(quarks_t const &mids); void build_references_header(Article const *article, std::string &setme) const; void reserve(Article_Count); }; static void find_nodes(quarks_t const &mids, nodes_t &nodes, nodes_v &setme); static void find_nodes(quarks_t const &mids, nodes_t const &nodes, const_nodes_v &setme); void get_article_references(Quark const &group, Article const *, std::string &setme) const override; /** * For a given ArticleNode, returns the first ancestor whose mid is in * mid_pool. * FIXME: these should be member functions of ArticleNode */ static ArticleNode *find_closest_ancestor( ArticleNode *node, unique_sorted_quarks_t const &mid_pool); static ArticleNode const *find_closest_ancestor( ArticleNode const *node, unique_sorted_quarks_t const &mid_pool); static ArticleNode *find_ancestor(ArticleNode *node, Quark const &ancestor_mid); typedef Loki::AssocVector group_to_headers_t; group_to_headers_t _group_to_headers; GroupHeaders *get_group_headers(Quark const &group); GroupHeaders const *get_group_headers(Quark const &group) const; void free_group_headers_memory(Quark const &group); bool is_read(Xref const &) const; void ref_group(Quark const &group); void unref_group(Quark const &group); private: class MyTree final : public Data::ArticleTree { friend class DataImpl; public: // life cycle MyTree(DataImpl &data_impl, Quark const &group, Quark const &save_path, // for auto-download const Data::ShowType show_type, FilterInfo const *filter_info = nullptr, RulesInfo const *rules = nullptr); virtual ~MyTree(); public: // from ArticleTree void get_children(Quark const &mid, articles_t &setme) const override; Article const *get_parent(Quark const &mid) const override; Article const *get_article(Quark const &mid) const override; size_t size() const override; void set_filter(const ShowType show_type = SHOW_ARTICLES, FilterInfo const *criteria = nullptr) final override; void set_rules(const ShowType show_type = SHOW_ARTICLES, RulesInfo const *rules = nullptr) final override; public: void articles_changed(quarks_t const &mids, bool do_refilter); void add_articles(quarks_t const &mids); void remove_articles(quarks_t const &mids); private: // implementation fields const Quark _group; DataImpl &_data; const Quark _save_path; // for auto-download nodes_t _nodes; MemChunk _node_chunk; FilterInfo _filter; RulesInfo _rules; Data::ShowType _show_type; struct NodeMidCompare; struct TwoNodes; private: typedef std::set unique_nodes_t; void accumulate_descendants(unique_nodes_t &, ArticleNode const *) const; void add_articles(const_nodes_v const &); void apply_filter(const_nodes_v const &); void apply_rules(const_nodes_v &candidates); private: void cache_articles(std::set
s); void download_articles(std::set
s); }; std::set _trees; void on_articles_removed(quarks_t const &mids) const; void on_articles_added(Quark const &group, quarks_t const &mids); void on_articles_changed(Quark const &group, quarks_t const &mids, bool do_refilter); void remove_articles_from_tree(MyTree *, quarks_t const &mids) const; void add_articles_to_tree(MyTree *, quarks_t const &mids); public: // Data interface void delete_articles(unique_articles_t const &) override; ArticleTree *group_get_articles( Quark const &group, Quark const &save_path, const ShowType show_type = SHOW_ARTICLES, FilterInfo const *criteria = nullptr, RulesInfo const *rules = nullptr) const override; void group_clear_articles(Quark const &group) override; bool is_read(Article const *) const override; void mark_read(Article const &article, bool mark_read) override; void mark_read(Article const **articles, unsigned long article_count, bool mark_read = true) override; void get_article_scores(Quark const &newsgroup, Article const &article, Scorefile::items_t &setme) const override; void add_score(StringView const §ion_wildmat, int score_value, bool score_assign_flag, int lifespan_days, bool all_items_must_be_true, Scorefile::AddItem const *items, size_t item_count, bool do_rescore) override; void comment_out_scorefile_line(StringView const &filename, size_t begin_line, size_t end_line, bool do_rescore) override; void rescore_articles(Quark const &group, const quarks_t mids) override; void rescore_group_articles(Quark const &group) override; void rescore() override; std::string get_scorefile_name() const override; private: Scorefile _scorefile; /** *** XOVER **/ private: // implementation /** * This is a workarea used when we processing an XOVER command. */ struct XOverEntry { time_t _last_flush_time; /** These are the articles which have been recently added. The patch is periodically flushed to on_articles_added() from xover_line() and xref_unref(). */ quarks_t _added_batch; /** Same as _added_batch, but for changed articles. */ quarks_t _changed_batch; typedef std::multimap subject_to_mid_t; /** This is for multipart detection. Pan folds multipart posts into a single Article holding all the parts. This lookup helps decide, when we get a new multipart post, which Article to fold it into. We strip out the unique part info from the Subject header (such as the "15" in [15/42]) and use it as a key in this lookup table that gives the Message-ID of the Article owning this post. */ subject_to_mid_t _subject_lookup; /** We must refcount because multiple server connections can be assigned to the same XOVER task. */ int refcount; XOverEntry() : _last_flush_time(0), refcount(0) { } }; typedef Loki::AssocVector xovers_t; xovers_t _xovers; XOverEntry *_cached_xover_entry; Quark _cached_xover_group; /** * Destroy the workarea. * Don't call this directly -- xover_unref() do its job. */ void xover_clear_workarea(Quark const &group); /** * Finds the XOverEntry workarea for the specified group. * This must be called inside an xover_ref() / xover_unref() block, * as the workarea is instantiated when the group's xover refcount * increases to one and destroyed when it goes down to zero. */ XOverEntry &xover_get_workarea(Quark const &group); public: // Data interface void xover_ref(Quark const &group) override; Article const *xover_add(Quark const &server, Quark const &group, StringView const &subject, StringView const &author, const time_t date, StringView const &message_id, StringView const &references, unsigned long const byte_count, unsigned long const line_count, StringView const &xref, bool const is_virtual = false) override; /** useful for xover unit testing */ virtual void xover_flush(Quark const &group); virtual void xover_unref(Quark const &group) override; virtual Article_Number get_xover_high(Quark const &group, Quark const &server) const override; virtual void set_xover_high(Quark const &group, Quark const &server, const Article_Number high) override; virtual void set_xover_low(Quark const &group, Quark const &server, const Article_Number low) override; /** *** TaskArchive **/ public: void save_tasks(std::vector const &saveme) override; void load_tasks(std::vector &setme) override; public: const ArticleFilter _article_filter; RulesFilter _rules_filter; private: mutable guint newsrc_autosave_id; guint newsrc_autosave_timeout; public: void set_newsrc_autosave_timeout(guint seconds) { newsrc_autosave_timeout = seconds; } void save_newsrc_files() { // Called from rc_as_cb(...). // The newsrc_autosave_id is now (soon) invalid since the timeout will be // cancelled when our caller returns FALSE. So forget about it already. newsrc_autosave_id = 0; save_newsrc_files(*_data_io); } }; } // namespace pan #endif pan-0.162/pan/data-impl/data-io.cc000066400000000000000000000212041475412772400165670ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #include "data-io.h" #include #include #include #include #include #include #include #include extern "C" { #include // for chmod #include // for chmod #include } #include #include #include #include #include #include namespace pan { namespace { std::string get_pan_home_file (const char * fname) { const std::string home (file::get_pan_home()); char * filename (g_build_filename (home.c_str(), fname, nullptr)); std::string retval (filename); g_free (filename); return retval; } std::string get_tasks_filename () { return get_pan_home_file ("tasks.nzb"); } std::string get_group_descriptions_filename () { return get_pan_home_file ("newsgroups.dsc"); } std::string get_group_permissions_filename () { return get_pan_home_file ("newsgroups.ynm"); } std::string get_group_xovers_filename () { return get_pan_home_file ("newsgroups.xov"); } bool is_reserved_char(char c) { #ifdef G_OS_WIN32 //Windows filing systems aren't case sensitive. But there are groups out //there with upper case names... I can't help thinking some system should //validate group names for sanity but apparently no such thing. //You could get rid of this if you ensured people ran //Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux //fsutil.exe file SetCaseSensitiveInfo enable //which for now I think is unlikely. if ('A' <= c && c <= 'Z') { return true; } #endif switch (c) { case '%': //Reserve % as we use it to escape things. case '/': #ifdef G_OS_WIN32 case '<': case '>': case ':': case '"': case '\\': case '|': case '?': case '*': #endif return true; default: return false; } } char to_hex_char(char c) { return c < 10 ? c + '0' : c + 'A' - 10; } std::string get_group_headers_filename (const Quark& group) { const std::string home (file::get_pan_home()); //A note. We do a lot of work encoding the names here, because //1) Windows is case-insensitive, and there are groups whose names differ // only in case (uk.legaL, uk.Legal, uk.legal) //2) There are certain names you can't use on windows and there is a group // called con.politics //3) There are groups with '/' in the group name... std::string encoded_group; for (auto c : group.to_string()) { if (is_reserved_char(c)) { encoded_group += "%"; encoded_group += to_hex_char((c >> 4) & 0xf); encoded_group += to_hex_char(c & 0xf); } else { encoded_group += c; } } #ifdef G_OS_WIN32 static std::regex reserved("^(CON|PRN|AUX|NUL|COM[0-9]|LPT[0-9])\\.", std::regex::extended | std::regex::icase); encoded_group = std::regex_replace(encoded_group, reserved, "$1%2E"); //Sigh - and finally we can't deal with a trailing '.' either encoded_group = std::regex_replace(encoded_group, std::regex("\\.$", std::regex::extended), "%2E"); #endif char * filename (g_build_filename (home.c_str(), "groups", encoded_group.c_str(), nullptr)); char * dirname (g_path_get_dirname (filename)); file :: ensure_dir_exists (dirname); std::string retval (filename); g_free (dirname); g_free (filename); return retval; } std::string get_download_stats_filename () { return get_pan_home_file ("downloads.stats"); } } std::string DataIO :: get_scorefile_name () const { std::string s; const char * env_str (g_getenv ("SCOREFILE")); if (env_str && *env_str) s = env_str; if (s.empty()) { char * path (g_build_filename (g_get_home_dir(), "News", "Score", nullptr)); if (file :: file_exists (path)) s = path; g_free (path); } if (s.empty()) s = get_pan_home_file ("Score"); return s; } std::string DataIO :: get_posting_name () const { return get_pan_home_file ("posting.xml"); } std::string DataIO :: get_server_filename () const { return get_pan_home_file ("servers.xml"); } /**** ***** ****/ void DataIO :: clear_group_headers (const Quark& group) { const std::string filename (get_group_headers_filename (group)); std::remove (filename.c_str()); } /**** ***** ****/ LineReader* DataIO :: read_tasks () const { const std::string filename (get_tasks_filename ()); return file::file_exists(filename.c_str()) ? read_file(filename) : nullptr; } LineReader* DataIO :: read_group_descriptions () const { return read_file (get_group_descriptions_filename ()); } LineReader* DataIO :: read_group_permissions () const { return read_file (get_group_permissions_filename ()); } LineReader* DataIO :: read_download_stats () const { return read_file (get_download_stats_filename ()); } LineReader* DataIO :: read_group_xovers () const { return read_file (get_group_xovers_filename ()); } LineReader* DataIO :: read_group_headers (const Quark& group) const { const std::string filename (get_group_headers_filename (group)); return file::file_exists(filename.c_str()) ? read_file(filename) : nullptr; } LineReader* DataIO :: read_file (const StringView& filename) const { return new FileLineReader (filename); } /**** ***** ****/ namespace { std::map ostream_to_filename; std::ostream* get_ostream (const std::string filename) { const std::string tmp (filename + ".tmp"); std::ofstream * o (new std::ofstream ( tmp.c_str(), std::ios_base::out|std::ios_base::binary)); if (!o->good()) Log::add_err_va (_("Unable to save \"%s\" %s"), filename.c_str(), ""); ostream_to_filename[o] = filename; return o; } void finalize_ostream (std::ofstream * o) { g_assert (ostream_to_filename.count(o)); const std::string filename (ostream_to_filename[o]); ostream_to_filename.erase (o); o->flush (); const bool ok = !o->fail(); const int my_errno = errno; delete o; const std::string tmpfile (filename + ".tmp"); if (ok) { #if defined(G_OS_WIN32) ::remove (filename.c_str()); #endif int ret = 0; if ((ret = rename (tmpfile.c_str(), filename.c_str()))) { std::cerr << LINE_ID << " ERROR renaming from [" << tmpfile << "] to [" << filename << "]: " << g_strerror(errno) <<" : "<(out)); } } pan-0.162/pan/data-impl/data-io.h000066400000000000000000000045401475412772400164350ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #ifndef __DataIO_h__ #define __DataIO_h__ #include #include #include #include namespace pan { /** * Specifies the datafiles used by DataImpl. * It's abstracted out so that unit tests can substitute in its own data. * This private class should only be used by code in the data-impl module. * * @ingroup data_impl */ struct DataIO { DataIO() {} virtual ~DataIO() {} virtual std::string get_scorefile_name () const; virtual std::string get_posting_name () const; virtual std::string get_server_filename () const; virtual void clear_group_headers (const Quark& group); virtual LineReader* read_tasks () const; virtual LineReader* read_group_xovers () const; virtual LineReader* read_group_headers (const Quark& group) const; virtual LineReader* read_group_descriptions () const; virtual LineReader* read_group_permissions () const; virtual LineReader* read_download_stats () const; virtual std::ostream* write_tasks (); virtual std::ostream* write_server_properties (); virtual std::ostream* write_group_xovers (); virtual std::ostream* write_group_descriptions (); virtual std::ostream* write_group_permissions (); virtual std::ostream* write_download_stats (); virtual std::ostream* write_group_headers (const Quark& group); virtual void write_done (std::ostream*); virtual LineReader* read_file (const StringView& filename) const; virtual std::ostream* write_file (const StringView& filename); }; } #endif pan-0.162/pan/data-impl/groups.cc000066400000000000000000000455611475412772400166040ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ /************** *************** **************/ #include #include #include #include #include #include #include #include extern "C" { #include } #include #include #include #include #include #include #include #include "data-impl.h" using namespace pan; /** *** **/ namespace { bool parse_newsrc_line(StringView const &line, StringView &setme_group_name, bool &setme_subscribed, StringView &setme_number_ranges) { bool ok(false); // since most groups will be unread, it's faster to test the end of the line // before calling strpbrk char const *delimiter( (! line.empty() && (line.back() == '!' || line.back() == ':')) ? &line.back() : line.strpbrk("!:")); if (delimiter) { StringView myline(line); setme_subscribed = *delimiter == ':'; myline.substr(NULL, delimiter, setme_group_name); setme_group_name.trim(); myline.substr(delimiter + 1, NULL, setme_number_ranges); setme_number_ranges.trim(); ok = ! setme_group_name.empty(); } return ok; } } // detect std::lib #include #ifdef _LIBCPP_VERSION // using libc++ #include #else // using libstdc++ #include #endif void DataImpl ::load_newsrc(Quark const &server, LineReader *in, alpha_groups_t &sub, alpha_groups_t &unsub) { Server * s = find_server (server); if (!s) { Log::add_err_va (_("Skipping newsrc file for server \"%s\""), server.c_str()); return; } std::vector& groups (s->groups.get_container()); AlphabeticalQuarkOrdering o; StringView line, name, numbers; bool needs_sort (false); Quark prev; std::vector tmp_sub, tmp_unsub; tmp_sub.reserve (1000); tmp_unsub.reserve (120000); // giganews has ~100k; anyone have more? while (!in->fail() && in->getline (line)) { bool subscribed; if (parse_newsrc_line (line, name, subscribed, numbers)) { Quark const &group(name); needs_sort |= (!prev.empty() && !o(prev,group)); groups.push_back (group); if (subscribed) tmp_sub.push_back (group); else tmp_unsub.push_back (group); if (!numbers.empty()) _read_groups[group][server]._read.mark_str (numbers); prev = group; } } // sub += tmp_sub if (needs_sort) std::sort (tmp_sub.begin(), tmp_sub.end(), AlphabeticalQuarkOrdering()); if (sub.empty()) sub.get_container().swap (tmp_sub); else { std::vector tmp; tmp.reserve (sub.size() + tmp_sub.size()); std::set_union (sub.begin(), sub.end(), tmp_sub.begin(), tmp_sub.end(), std::inserter (tmp, tmp.begin()), o); sub.get_container().swap (tmp); } // unsub += tmp_unsub if (needs_sort) std::sort (tmp_unsub.begin(), tmp_unsub.end(), AlphabeticalQuarkOrdering()); if (unsub.empty()) unsub.get_container().swap (tmp_unsub); else { std::vector tmp; tmp.reserve (unsub.size() + tmp_unsub.size()); std::set_union (unsub.begin(), unsub.end(), tmp_unsub.begin(), tmp_unsub.end(), std::inserter (tmp, tmp.begin()), o); unsub.get_container().swap (tmp); } } void DataImpl ::load_newsrc_files(DataIO const &data_io) { alpha_groups_t& s(_subscribed); alpha_groups_t& u(_unsubscribed); s.clear (); u.clear (); foreach_const (servers_t, _servers, sit) { const Quark key (sit->first); const std::string filename = file::absolute_fn("", sit->second.newsrc_filename); debug("reading " << sit->second.host << " groups from " << filename); if (file::file_exists (filename.c_str())) { LineReader * in (data_io.read_file (filename)); load_newsrc (key, in, s, u); delete in; } } // remove duplicates s.erase (std::unique(s.begin(), s.end()), s.end()); u.erase (std::unique(u.begin(), u.end()), u.end()); // unsub -= sub AlphabeticalQuarkOrdering o; std::vector tmp; tmp.reserve (u.size()); std::set_difference (u.begin(), u.end(), s.begin(), s.end(), inserter (tmp, tmp.begin()), o); u.get_container().swap (tmp); // shrink-to-fit alpha_groups_t (s).swap(s); alpha_groups_t (u).swap(u); fire_grouplist_rebuilt (); } void DataImpl :: save_newsrc_files (DataIO& data_io) const { if (newsrc_autosave_id) { g_source_remove( newsrc_autosave_id ); newsrc_autosave_id = 0; } if (_unit_test) return; // overly-complex optimization: both sit->second.groups and _subscribed // are both ordered by AlphabeticalQuarkOrdering. // Where N==sit->second.groups.size() and M==_subscribed.size(), // "bool subscribed = _subscribed.count (group)" is N*log(M), // but a sorted set comparison is M+N comparisons. AlphabeticalQuarkOrdering o; // save all the servers' newsrc files foreach_const (servers_t, _servers, sit) { const Quark& server (sit->first); // write this server's newsrc const std::string filename = file::absolute_fn("", sit->second.newsrc_filename); std::ostream& out (*data_io.write_file (filename)); std::string newsrc_string; alpha_groups_t::const_iterator sub_it (_subscribed.begin()); const alpha_groups_t::const_iterator sub_end(_subscribed.end()); foreach_const (Server::groups_t, sit->second.groups, git) // for the groups in this server... { const Quark& group (*git); //const bool subscribed (_subscribed.count (group)); while (sub_it!=sub_end && o (*sub_it, group)) ++sub_it; // see comment for 'o' above const bool subscribed (sub_it!=sub_end && *sub_it==group); out << group; out.put (subscribed ? ':' : '!'); // if the group's been read, save its read number ranges... const ReadGroup::Server * rgs (find_read_group_server (group, server)); if (rgs != nullptr) { newsrc_string.clear (); rgs->_read.to_string (newsrc_string); if (!newsrc_string.empty()) { out.put (' '); out << newsrc_string; } } out.put ('\n'); } data_io.write_done (&out); } } /*** **** ***/ void DataImpl :: load_group_permissions (const DataIO& data_io) { std::vector m, n; LineReader * in (data_io.read_group_permissions ()); StringView s, line; while (in && !in->fail() && in->getline(line)) { if (line.len && *line.str=='#') continue; else if (!line.pop_last_token (s, ':') || !s.len || (*s.str!='y' && *s.str!='n' && *s.str!='m')) { std::cerr << LINE_ID << " Group permissions: Can't parse line `" << line << std::endl; continue; } const Quark group (line); const char ch = *s.str; if (ch == 'm') m.push_back (group); else if (ch == 'n') n.push_back (group); } std::sort (m.begin(), m.end()); m.erase (std::unique(m.begin(), m.end()), m.end()); _moderated.get_container().swap (m); std::sort (n.begin(), n.end()); n.erase (std::unique(n.begin(), n.end()), n.end()); _nopost.get_container().swap (n); delete in; } void DataImpl :: save_group_permissions (DataIO& data_io) const { if (_unit_test) return; std::ostream& out (*data_io.write_group_permissions ()); typedef std::map tmp_t; tmp_t tmp; foreach_const (groups_t, _moderated, it) tmp[*it] = 'm'; foreach_const (groups_t, _nopost, it) tmp[*it] = 'n'; out << "# Permissions: y means posting ok; n means posting not okay; m means moderated.\n" << "# Since almost all groups allow posting, Pan assumes that as the default.\n" << "# Only moderated or no-posting groups are listed here.\n"; foreach_const (tmp_t, tmp, it) { out << it->first; out.put (':'); out << it->second; out.put ('\n'); } data_io.write_done (&out); } /*** **** ***/ void DataImpl :: ensure_descriptions_are_loaded () const { if (!_descriptions_loaded) { _descriptions_loaded = true; load_group_descriptions (*_data_io); } } void DataImpl :: load_group_descriptions (const DataIO& data_io) const { _descriptions.clear (); LineReader * in (data_io.read_group_descriptions ()); StringView s, group; while (in && !in->fail() && in->getline(group)) if (group.pop_last_token (s, ':')) _descriptions[group].assign (s.str, s.len); delete in; } void DataImpl :: load_group_xovers (const DataIO& data_io) { LineReader * in (data_io.read_group_xovers ()); if (in && !in->fail()) { StringView line; StringView groupname, total, unread; StringView xover, servername, low; // walk through the groups line-by-line... while (in->getline (line)) { // skip comments and blank lines line.trim(); if (line.empty() || *line.str=='#') continue; if (line.pop_token(groupname) && line.pop_token(total) && line.pop_token(unread)) { ReadGroup& g (_read_groups[groupname]); g._article_count = Article_Count(total); g._unread_count = Article_Count(unread); while (line.pop_token (xover)) if (xover.pop_token(servername,':')) g[servername]._xover_high = Article_Number(xover); } } } delete in; } void DataImpl :: save_group_descriptions (DataIO& data_io) const { if (_unit_test) return; assert (_descriptions_loaded); typedef std::map tmp_t; tmp_t tmp; foreach_const (descriptions_t, _descriptions, it) tmp[it->first] = it->second; std::ostream& out (*data_io.write_group_descriptions ()); foreach_const (tmp_t, tmp, it) { out << it->first; out.put (':'); out << it->second; out.put ('\n'); } data_io.write_done (&out); } namespace { typedef std::map < pan::Quark, std::string > quark_to_symbol_t; struct QuarkToSymbol { const quark_to_symbol_t& _map; virtual ~QuarkToSymbol () {} QuarkToSymbol (const quark_to_symbol_t& map): _map(map) { } virtual std::string operator() (const Quark& quark) const { quark_to_symbol_t::const_iterator it (_map.find (quark)); return it!=_map.end() ? it->second : quark.to_string(); } }; } void DataImpl :: save_group_xovers (DataIO& data_io) const { if (_unit_test) return; std::ostream& out (*data_io.write_group_xovers ()); // find the set of groups that have had an xover typedef std::set xgroups_t; xgroups_t xgroups; foreach_const (read_groups_t, _read_groups, git) { const ReadGroup& group (git->second); bool is_xgroup (static_cast(group._article_count) != 0 || static_cast(group._unread_count) != 0); if (!is_xgroup) foreach_const (ReadGroup::servers_t, group._servers, sit) if ((is_xgroup = (static_cast(sit->second._xover_high)!=0))) break; if (is_xgroup) xgroups.insert (git->first); } out << "# groupname totalArticleCount unreadArticleCount [server:latestXoverHigh]*\n"; // foreach xgroup foreach_const (xgroups_t, xgroups, it) { const Quark groupname (*it); const ReadGroup& g (*find_read_group (groupname)); out << groupname; out.put (' '); out << g._article_count; out.put (' '); out << g._unread_count; foreach_const (ReadGroup::servers_t, g._servers, i) { if (static_cast(i->second._xover_high) != 0) { out.put (' '); out << i->first; out.put (':'); out << i->second._xover_high; } } out.put ('\n'); } data_io.write_done (&out); } /**** ***** ****/ Article_Number DataImpl :: get_xover_high (const Quark & groupname, const Quark & servername) const { Article_Number high (0ul); const ReadGroup::Server * rgs (find_read_group_server (groupname, servername)); if (rgs) high = rgs->_xover_high; return high; } void DataImpl :: set_xover_high (const Quark & group, const Quark & server, const Article_Number high) { //std::cerr << LINE_ID << "setting " << get_server_address(server) << ':' << group << " xover high to " << high << std::endl; ReadGroup::Server& rgs (_read_groups[group][server]); rgs._xover_high = high; } void DataImpl :: add_groups (const Quark & server, const NewGroup * newgroups, size_t count) { ensure_descriptions_are_loaded (); Server * s (find_server (server)); assert (s != nullptr); { AlphabeticalQuarkOrdering o; Server::groups_t groups; std::vector tmp; // make a groups_t from the added groups, // and merge it with the server's list of groups groups.get_container().reserve (count); for (const NewGroup *it=newgroups, *end=newgroups+count; it!=end; ++it) groups.get_container().push_back (it->group); groups.sort (); std::set_union (s->groups.begin(), s->groups.end(), groups.begin(), groups.end(), std::back_inserter (tmp), o); tmp.erase (std::unique(tmp.begin(), tmp.end()), tmp.end()); s->groups.get_container().swap (tmp); // make a groups_t of groups we didn't already have, // and merge it with _unsubscribed (i.e., groups we haven't seen before become unsubscribed) groups.clear (); for (const NewGroup *it=newgroups, *end=newgroups+count; it!=end; ++it) if (!_subscribed.count (it->group)) groups.get_container().push_back (it->group); groups.sort (); tmp.clear (); std::set_union (groups.begin(), groups.end(), _unsubscribed.begin(), _unsubscribed.end(), std::back_inserter (tmp), o); tmp.erase (std::unique(tmp.begin(), tmp.end()), tmp.end()); _unsubscribed.get_container().swap (tmp); } { // build lists of the groups that should and should not be in _moderated and _nopost.t // this is pretty cumbersome, but since these lists almost never change it's still // a worthwhile tradeoff to get the speed/memory wins of a sorted_vector groups_t mod, notmod, post, nopost, tmp; for (const NewGroup *it=newgroups, *end=newgroups+count; it!=end; ++it) { if (it->permission == 'm') mod.get_container().push_back (it->group); if (it->permission != 'm') notmod.get_container().push_back (it->group); if (it->permission == 'n') nopost.get_container().push_back (it->group); if (it->permission != 'n') post.get_container().push_back (it->group); } mod.sort (); notmod.sort (); post.sort (); nopost.sort (); // _moderated -= notmod tmp.clear (); std::set_difference (_moderated.begin(), _moderated.end(), notmod.begin(), notmod.end(), inserter (tmp, tmp.begin())); _moderated.swap (tmp); // _moderated += mod tmp.clear (); std::set_union (_moderated.begin(), _moderated.end(), mod.begin(), mod.end(), inserter (tmp, tmp.begin())); _moderated.swap (tmp); // _nopost -= post tmp.clear (); std::set_difference (_nopost.begin(), _nopost.end(), post.begin(), post.end(), inserter (tmp, tmp.begin())); _nopost.swap (tmp); // _nopost += nopost tmp.clear (); std::set_union (_nopost.begin(), _nopost.end(), nopost.begin(), nopost.end(), inserter (tmp, tmp.begin())); _nopost.swap (tmp); } // keep any descriptions worth keeping that we don't already have... for (const NewGroup *it=newgroups, *end=newgroups+count; it!=end; ++it) { const NewGroup& ng (*it); if (!ng.description.empty() && ng.description!="?") _descriptions[ng.group] = ng.description; } save_group_descriptions (*_data_io); save_group_permissions (*_data_io); fire_grouplist_rebuilt (); } void DataImpl :: mark_group_read (const Quark& groupname) { ReadGroup * rg (find_read_group (groupname)); if (rg != nullptr) { foreach (ReadGroup::servers_t, rg->_servers, it) { //std::cerr << LINE_ID << " marking read range [0..." << it->second._xover_high << "] in " << get_server_address(it->first) << ']' << std::endl; it->second._read.mark_range (static_cast(0), it->second._xover_high, true); } rg->_unread_count = static_cast(0); save_group_xovers (*_data_io); fire_group_read (groupname); } } void DataImpl :: set_group_subscribed (const Quark& group, bool subscribed) { if (subscribed) { _unsubscribed.erase (group); _subscribed.insert (group); } else { _subscribed.erase (group); _unsubscribed.insert (group); } fire_group_subscribe (group, subscribed); } const std::string& DataImpl :: get_group_description (const Quark& group) const { ensure_descriptions_are_loaded (); static const std::string nil; descriptions_t::const_iterator it (_descriptions.find (group)); return it == _descriptions.end() ? nil : it->second; } void DataImpl :: get_group_counts (const Quark & groupname, Article_Count & unread_count, Article_Count & article_count) const { const ReadGroup * g (find_read_group (groupname)); if (!g) unread_count = article_count = static_cast(0ul); else { unread_count = g->_unread_count; article_count = g->_article_count; } } char DataImpl :: get_group_permission (const Quark & group) const { if (_moderated.count (group)) return 'm'; else if (_nopost.count (group)) return 'n'; else return 'y'; } void DataImpl :: group_get_servers (const Quark& groupname, quarks_t& addme) const { foreach_const (servers_t, _servers, it) if (it->second.groups.count (groupname)) addme.insert (it->first); } void DataImpl :: server_get_groups (const Quark& servername, quarks_t& addme) const { const Server * server (find_server (servername)); if (server) addme.insert (server->groups.begin(), server->groups.end()); } void DataImpl :: get_subscribed_groups (std::vector& setme) const { setme.assign (_subscribed.begin(), _subscribed.end()); } void DataImpl :: get_other_groups (std::vector& setme) const { setme.assign (_unsubscribed.begin(), _unsubscribed.end()); } pan-0.162/pan/data-impl/headers-test.cc000066400000000000000000000232061475412772400176450ustar00rootroot00000000000000#include #include #include #include #include #include #include #include #include "data-impl.h" using namespace pan; int main () { Data::ArticleTree * tree; Data::ArticleTree::articles_t children; const Article * a; DataImpl data (true); const Quark server ("w00tnewz"); const Quark server2 ("l33tnews"); const Quark group ("alt.religion.buddhism"); data.xover_ref (group); // TEST: can we add an article? data.xover_add (server, group, "Subject", "Author", 0, "", "", 40, 100, ""); tree = data.group_get_articles (group,Quark("")); check (tree->size() == 1ul) a = tree->get_article (""); check (a != 0); check (a->subject == "Subject") check (a->message_id == "") check (tree->get_parent(a->message_id) == 0) delete tree; // TEST: can we add a child? data.xover_add (server, group, "Re: Subject", "Author", 0, "", "", 40, 100, ""); tree = data.group_get_articles (group,Quark("")); check (tree->size() == 2ul) a = tree->get_article (""); check (a != 0) check (a->subject == "Re: Subject") check (a->author == "Author") check (a->message_id == "") a = tree->get_parent (a->message_id); check (a != 0) check (a->message_id == "") check (a->subject == "Subject") check (a->author == "Author") check (tree->get_parent (a->message_id) == 0) tree->get_children ("", children); check (children.size() == 1u) check (children[0]->message_id == "") delete tree; data.xover_unref (group); /**** ***** ***** XOVER + filtered tree ***** ****/ a = 0; data.group_clear_articles (group); data.xover_ref (group); // match articles whose subject has the letter 'a' TextMatch::Description description; description.type = TextMatch::CONTAINS; description.text = "a"; FilterInfo filter_info; filter_info.set_type_text ("Subject", description); // show articles whose subject has the letter 'a' tree = data.group_get_articles (group,Quark("")); tree->set_filter (Data::SHOW_ARTICLES, &filter_info); check (tree->size() == 0ul); // TEST: add an article that passes the test and it appears data.xover_add (server, group, "a subject", "Author", 0, "", "", 40, 100, ""); data.xover_flush (group); check (tree->size() == 1ul) a = tree->get_article (""); check (a != 0); check (a->message_id == "") // TEST: add an article that doesn't pass the test and doesn't appear data.xover_add (server, group, "subject two", "Author", 0, "", "", 40, 100, ""); check (tree->size() == 1ul) check (tree->get_article ("") != 0); check (tree->get_article ("") == 0); data.xover_unref (group); #if 0 //Quark q; //Article a1, a2, a3; quark_v children; //check (data.article_get_children (group, a1.message_id, children)) //check (children.size() == 1u) //check (children.front() == a2.message_id) //check (data.group_get_article_count(group) == 2ul) // add an article that needs a parent that we'll get in a moment with xover... a3.subject = "Re: I hope I find my mommy!"; a3.message_id = ""; a3.references = ""; data.add_article (group, a3); data.xover_ref (group); // TEST: does xover add articles and thread them right to existing parents? data.xover_add (server, group, "10033 Re: it is all a dream. \"Bob Barker\" Wed, 27 Apr 2005 16:53:02 GMT 1000 100 Xref: news.netfront.net alt.zen:175094 alt.religion.buddhism:10033 talk.religion.buddhism:170169"); //check (data.group_get_article_count(group) == 4ul) check (data.group_find_article (group, "", tmp)) check (tmp.subject == "Re: it is all a dream.") check (tmp.get_line_count() == 100) check (tmp.get_byte_count() == 1000) //check (data.article_get_parent (group, tmp.message_id, q)) //check (q == a2.message_id) check (tmp.parts.size() == 1u) part = tmp.get_part (0); check (part != 0) check (part->xref.find (server, group, ul)) check (ul == 10033) // TEST: does xover add articles and thread them right to existing grandparents when their parents can't be found? data.xover_add (server, group, "10034 Re: it is all a dream again. \"Bob Barker\" Wed, 27 Apr 2005 16:53:02 GMT 999 90 Xref: news.netfront.net alt.zen:175095 alt.religion.buddhism:10034 talk.religion.buddhism:170168"); //check (data.group_get_article_count(group) == 5ul) check (data.group_find_article (group, "", tmp)) check (tmp.subject == "Re: it is all a dream again.") check (tmp.get_line_count() == 90) check (tmp.get_byte_count() == 999) //check (data.article_get_parent (group, tmp.message_id, q)) //check (q == a1.message_id) Article floating_child (tmp); // TEST: and when the parent shows up, does the child get reparented right? data.xover_add (server, group, "10035 Re: it is all a dream again. \"Bob Barker\" Wed, 27 Apr 2005 16:53:02 GMT 2487 31 Xref: news.netfront.net alt.zen:175096 alt.religion.buddhism:10035 talk.religion.buddhism:170169"); //check (data.group_get_article_count(group) == 6ul) check (data.group_find_article (group, "", tmp)) check (tmp.subject == "Re: it is all a dream again.") //check (data.article_get_parent (group, floating_child.message_id, q)) //check (q == "") // TEST: when an xover parent of an existing article comes in, does the existing article get reparented? //check (!data.article_get_parent (group, a3.message_id, q)) data.xover_add (server, group, "10032 I am your mommy. \"Mommy\" Wed, 27 Apr 2005 16:53:02 GMT 2487 31 Xref: news.netfront.net alt.zen:15094 alt.religion.buddhism:1003 talk.religion.buddhism:10169"); //check (data.group_get_article_count(group) == 7ul) //check (data.article_get_parent (group, a3.message_id, q)) //check (q == "") // TEST: single-part attachment data.xover_add (server, group, "10033 Some Attachment (1/1) \"Bob Barker\" Wed, 27 Apr 2005 16:53:02 GMT 5000 800 Xref: news.netfront.net alt.zen:175094"); check (data.group_find_article (group, "", tmp)); check (tmp.subject == "Some Attachment (1/1)") check (tmp.get_line_count() == 800) check (tmp.get_byte_count() == 5000) check (tmp.part_state == tmp.COMPLETE); // TEST: two-part attachment data.xover_add (server, group, "10034 Some Big Attachment (1/2) \"Bob Barker\" Wed, 27 Apr 2005 16:53:02 GMT 5000 800 Xref: news.netfront.net alt.religion.buddhism:10034 alt.zen:175094"); check (data.group_find_article (group, "", tmp)); check (tmp.subject == "Some Big Attachment (1/2)") check (tmp.get_line_count() == 800) check (tmp.get_byte_count() == 5000) check (tmp.part_state == tmp.INCOMPLETE); part = tmp.get_part (1); check (part != 0) check (part->xref.find (server, group, ul)) check (ul == 10034) data.xover_add (server, group, "10035 Some Big Attachment (2/2) \"Bob Barker\" Wed, 27 Apr 2005 16:53:02 GMT 999 99 Xref: w00tnewz.com alt.religion.buddhism:10035 alt.zen:10035"); check (data.group_find_article (group, "", tmp)); check (tmp.subject == "Some Big Attachment (1/2)") check (tmp.get_line_count() == 899) check (tmp.get_byte_count() == 5999) check (tmp.part_state == tmp.COMPLETE); part = tmp.get_part (2); check (part != 0) check (part->xref.find (server, group, ul)) check (ul == 10035) // TEST: multiserver data.xover_add (server2, group, "6666 Some Big Attachment (2/2) \"Bob Barker\" Wed, 27 Apr 2005 16:53:02 GMT 5000 800 Xref: l33tnewz.com alt.religion.buddhism:6666 alt.zen:6666"); ArticleTree * tree = data.group_get_articles (group, FilterInfo()); const Article * a = tree->get_article (""); check (a != 0); check (a->subject == "Some Big Attachment (1/2)") check (a->part_state == tmp.COMPLETE) part = a->get_part (2); check (part != 0); check (part->xref.targets.size() == 4) check (part->xref.find (server, group, ul)) check (ul == 10035) check (part->xref.find (server2, group, ul)) check (ul == 6666) #if 0 TimeElapsed xover_timer; std::ifstream in ("header-impl-test.dat"); std::string line; int lines = 0; while (std::getline (in, line)) { data.xover_add (server, group, line); ++lines; } Log::get().add_va (Log::INFO, "XOver added %lu headers in %.2f seconds", lines, xover_timer.get_seconds_elapsed()); data.unref_group (group); #endif data.xover_unref (group); data.unref_group (group); data.save (); //std::cerr << "headers file: [" << std::endl << data_source->_group_headers[group] << std::endl; #if 0 ScriptedDataSource * source_2 = new ScriptedDataSource (*data_source); DataImpl data2 (source_2); check (data2 == data); #endif #endif return 0; } pan-0.162/pan/data-impl/headers.cc000066400000000000000000001153201475412772400166670ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #include #include #include #include #include #include #include #include #include extern "C" { #include // for chmod #include // for chmod } #include "article-filter.h" #include "data-impl.h" #include #include #include #include #include #include #include #include using namespace pan; DataImpl ::GroupHeaders ::GroupHeaders() : _ref(0), _dirty(false) { } DataImpl ::GroupHeaders ::~GroupHeaders() { } DataImpl ::ArticleNode *DataImpl ::GroupHeaders ::find_node(Quark const &mid) { ArticleNode *node(nullptr); nodes_t::iterator it(_nodes.find(mid)); if (it != _nodes.end()) { node = it->second; } return node; } DataImpl ::ArticleNode const *DataImpl ::GroupHeaders ::find_node( Quark const &mid) const { ArticleNode const *node(nullptr); nodes_t::const_iterator it(_nodes.find(mid)); if (it != _nodes.end()) { node = it->second; } return node; } Quark const &DataImpl ::GroupHeaders ::find_parent_message_id( Quark const &mid) const { ArticleNode const *node(find_node(mid)); if (node && node->_parent) { return node->_parent->_mid; } static const Quark empty_quark; return empty_quark; } Article const *DataImpl ::GroupHeaders ::find_article( Quark const &message_id) const { Article *a(nullptr); ArticleNode const *node(find_node(message_id)); if (node) { a = node->_article; } return a; } Article *DataImpl ::GroupHeaders ::find_article(Quark const &message_id) { Article *a(nullptr); ArticleNode const *node(find_node(message_id)); if (node) { a = node->_article; } return a; } void DataImpl ::GroupHeaders ::remove_articles(quarks_t const &mids) { nodes_v nodes; find_nodes(mids, _nodes, nodes); foreach (nodes_v, nodes, it) { (*it)->_article = nullptr; } _dirty = true; } DataImpl ::GroupHeaders const *DataImpl ::get_group_headers( Quark const &group) const { group_to_headers_t::const_iterator it(_group_to_headers.find(group)); return it == _group_to_headers.end() ? nullptr : it->second; } DataImpl ::GroupHeaders *DataImpl ::get_group_headers(Quark const &group) { group_to_headers_t::iterator it(_group_to_headers.find(group)); return it == _group_to_headers.end() ? nullptr : it->second; } void DataImpl ::GroupHeaders ::build_references_header(Article const *article, std::string &setme) const { setme.clear(); Quark const &message_id(article->message_id); ArticleNode const *node(find_node(message_id)); while (node && node->_parent) { node = node->_parent; StringView const &ancestor_mid = node->_mid.to_view(); setme.insert(0, ancestor_mid.str, ancestor_mid.len); if (node->_parent) { setme.insert(0, 1, ' '); } } } void DataImpl::GroupHeaders::reserve(Article_Count articles) { _art_chunk.reserve(static_cast(articles)); // A note - the number of nodes is very rarely the same as the number of // articles, but it is generally not far out, so at worse you'll end up with // two allocations _node_chunk.reserve(static_cast(articles)); } void DataImpl ::get_article_references(Quark const &group, Article const *article, std::string &setme) const { GroupHeaders const *h(get_group_headers(group)); if (! h) { setme.clear(); } else { h->build_references_header(article, setme); } } void DataImpl ::free_group_headers_memory(Quark const &group) { group_to_headers_t::iterator it(_group_to_headers.find(group)); if (it != _group_to_headers.end()) { delete it->second; _group_to_headers.erase(it); } } void DataImpl ::ref_group(Quark const &group) { GroupHeaders *h(get_group_headers(group)); if (! h) { h = _group_to_headers[group] = new GroupHeaders(); load_headers(*_data_io, group); } ++h->_ref; // std::cerr << LINE_ID << " group " << group << " refcount up to " << // h->_ref << std::endl; } void DataImpl ::unref_group(Quark const &group) { GroupHeaders *h(get_group_headers(group)); pan_return_if_fail(h != nullptr); --h->_ref; // std::cerr << LINE_ID << " group " << group << " refcount down to " << // h->_ref << std::endl; if (h->_ref == 0) { // if (h->_dirty ) save_headers(*_data_io, group); h->_dirty = false; free_group_headers_memory(group); } } void DataImpl ::fire_article_flag_changed(articles_t &a, Quark const &group) { GroupHeaders *h(get_group_headers(group)); h->_dirty = true; Data::fire_article_flag_changed(a, group); } void DataImpl ::find_nodes(quarks_t const &mids, nodes_t &nodes, nodes_v &setme) { NodeWeakOrdering o; nodes_t tmp; std::set_intersection(nodes.begin(), nodes.end(), mids.begin(), mids.end(), std::inserter(tmp, tmp.begin()), o); setme.reserve(tmp.size()); foreach_const (nodes_t, tmp, it) { setme.push_back(it->second); } } void DataImpl ::find_nodes(quarks_t const &mids, nodes_t const &nodes, const_nodes_v &setme) { NodeWeakOrdering o; nodes_t tmp; std::set_intersection(nodes.begin(), nodes.end(), mids.begin(), mids.end(), std::inserter(tmp, tmp.begin()), o); setme.reserve(tmp.size()); foreach_const (nodes_t, tmp, it) { setme.push_back(it->second); } } /******* ******** *******/ // 'article' must have been instantiated by // GroupHeaders::alloc_new_article()!! void DataImpl ::load_article(Quark const &group, Article *article, StringView const &references) { #if 0 std::cerr << LINE_ID << " adding article " << " subject [" << article->subject << ']' << " mid [" << article->message_id << ']' << " references [" << references << ']' << std::endl; #endif GroupHeaders *h(get_group_headers(group)); pan_return_if_fail(h != nullptr); // populate the current node Quark const &mid(article->message_id); ArticleNode *node(h->_nodes[mid]); if (! node) { static const ArticleNode blank_node; h->_node_chunk.push_back(blank_node); node = h->_nodes[mid] = &h->_node_chunk.back(); node->_mid = mid; } // !!INFO!! : this is bypassed for now, as it causes an abort on local cache // corruptions // assert (!node->_article); node->_article = article; ArticleNode *article_node = node; // build nodes for each of the references StringView tok, refs(references); // std::cerr << LINE_ID << " references [" << refs << ']' << std::endl; while (refs.pop_last_token(tok, ' ')) { tok.trim(); if (tok.empty()) { break; } ArticleNode *old_parent_node(node->_parent); const Quark old_parent_mid(old_parent_node ? old_parent_node->_mid : Quark()); const Quark new_parent_mid(tok); // std::cerr << LINE_ID << " now we're working on " << new_parent_mid << // std::endl; if (new_parent_mid == old_parent_mid) { // std::cerr << LINE_ID << " our tree agrees with the References header // here..." << std::endl; node = node->_parent; continue; } if (! old_parent_node) { // std::cerr << LINE_ID << " haven't mapped " << new_parent_mid << " // before..." << std::endl; ArticleNode *new_parent_node(h->_nodes[new_parent_mid]); bool const found(new_parent_node != nullptr); if (! found) { // std::cerr << LINE_ID << " didn't find it; adding new node for " << // new_parent_mid << std::endl; static const ArticleNode blank_node; h->_node_chunk.push_back(blank_node); new_parent_node = h->_nodes[new_parent_mid] = &h->_node_chunk.back(); new_parent_node->_mid = new_parent_mid; } node->_parent = new_parent_node; if (find_ancestor(new_parent_node, new_parent_mid)) { node->_parent = nullptr; // std::cerr << LINE_ID << " someone's been munging References headers // to cause trouble!" << std::endl; break; } new_parent_node->_children.push_front(node); node = new_parent_node; continue; } ArticleNode *tmp; if ((tmp = find_ancestor(node, new_parent_mid))) { // std::cerr << LINE_ID << " this References header has a hole... jumping // to " << tmp->_mid << std::endl; node = tmp; continue; } char const *cpch; if ((cpch = refs.strstr(old_parent_mid.to_view()))) { // std::cerr << LINE_ID << " this References header fills a hole of ours // ... " << new_parent_mid << std::endl; // unlink from old parent old_parent_node->_children.remove(node); node->_parent = nullptr; // link to new parent ArticleNode *new_parent_node(h->_nodes[new_parent_mid]); bool const found(new_parent_node != nullptr); if (! found) { // std::cerr << LINE_ID << " didn't find it; adding new node for " << // new_parent_mid << std::endl; static const ArticleNode blank_node; h->_node_chunk.push_back(blank_node); new_parent_node = h->_nodes[new_parent_mid] = &h->_node_chunk.back(); new_parent_node->_mid = new_parent_mid; } node->_parent = new_parent_node; if (find_ancestor(new_parent_node, new_parent_mid) != nullptr) { node->_parent = nullptr; // std::cerr << LINE_ID << " someone's been munging References headers // to cause trouble!" << std::endl; break; } new_parent_node->_children.push_front(node); node = new_parent_node; continue; } } // recursion? assert(find_ancestor(article_node, article->message_id) == nullptr); } #if 0 std::string DataImpl :: get_references (const Quark& group, const Article& a) const { std::string s; GroupHeaders * h (get_group_headers (group)); pan_return_if_fail (h!=0); const Quark& mid (a.message_id); ArticleNode * node (h->_nodes[mid]); node = node->parent; while (node) { if (!s.empty()) s.insert (0, 1, ' '); const StringView v (node->_mid.to_view()); s.insert (0, v.str, v.len); node = node->parent; } // std::cerr << "article " << a.message_id << " references " << s << std::endl; return s; } #endif void DataImpl ::load_part(Quark const &group, Quark const &mid, int number, StringView const &part_mid, unsigned long lines, unsigned long bytes) { GroupHeaders *h = get_group_headers(group); Article *a(h->find_article(mid)); pan_return_if_fail(a != nullptr); if (a->add_part(number, part_mid, bytes)) { a->lines += lines; } } namespace { unsigned long long view_to_ull(StringView const &view) { unsigned long long val(0ull); if (! view.empty()) { errno = 0; val = strtoull(view.str, nullptr, 10); if (errno) { val = 0ull; } } return val; } } // namespace // load headers from internal file in ~/.pan2/groups void DataImpl ::load_headers(DataIO const &data_io, Quark const &group) { TimeElapsed timer; GroupHeaders *h(get_group_headers(group)); assert(h != nullptr); Article_Count article_count(0); Article_Count unread_count(0); StringView line; bool success(false); quarks_t servers; ArticleFilter::sections_t score_sections; _scorefile.get_matching_sections(StringView(group), score_sections); char const *groupname(group.c_str()); LineReader *in(data_io.read_group_headers(group)); if (in && ! in->fail()) { do { // skip past the comments at the top in->getline(line); line.trim(); } while (! line.empty() && *line.str == '#'); int const version(atoi(line.str)); if (version == 1 || version == 2 || version == 3) { // build the symbolic server / group lookup table in->getline(line); int symbol_qty(atoi(line.str)); Quark xref_lookup[CHAR_MAX]; for (int i = 0; i < symbol_qty; ++i) { StringView key; in->getline(line); line.trim(); if (line.pop_token(key, '\t') && key.len == 1) { xref_lookup[(int)*key.str] = line; } } // build the author lookup table in->getline(line); symbol_qty = atoi(line.str); Quark author_lookup[CHAR_MAX]; for (int i = 0; i < symbol_qty; ++i) { StringView key; in->getline(line); line.trim(); if (line.pop_token(key, '\t') && key.len == 1) { author_lookup[(int)*key.str] = line; } } Xref::targets_t targets; std::vector &targets_v(targets.get_container()); // each article in this group... unsigned int expire_count(0); in->getline(line); Article_Count const article_qty{line}; h->reserve(article_qty); const time_t now(time(nullptr)); PartBatch part_batch; for (;;) { // look for the beginning of an Article record. // it'll be a message-id line with no leading whitespace. StringView s; if (! in->getline(s)) // end of file { break; } Article &a(h->alloc_new_article()); // flag line a.flag = false; if (version == 3) { a.flag = atoi(s.str) == 1 ? true : false; in->getline(s); } if (s.empty() || *s.str != '<') // not a message-id... { continue; } // message id s.ltrim(); a.message_id = s; // subject line in->getline(s); s.ltrim(); a.subject = s; // author line in->getline(s); s.ltrim(); a.author = s.len == 1 ? author_lookup[(int)*s.str] : Quark(s); // optional references line std::string references; in->getline(s); s.ltrim(); if (! s.empty() && *s.str == '<') { references = s; in->getline(s); s.ltrim(); } // date-posted line a.time_posted = view_to_ull(s); int const days_old((now - a.time_posted) / (24 * 60 * 60)); // xref line in->getline(s); s.ltrim(); const size_t max_targets(std::count(s.begin(), s.end(), ' ') + 1); targets_v.resize(max_targets); Xref::Target *target_it(&targets_v.front()); StringView tok, server_tok, group_tok; while (s.pop_token(tok)) { if (tok.pop_token(server_tok, ':') && tok.pop_token(group_tok, ':')) { target_it->server = server_tok; target_it->group = group_tok.len == 1 ? xref_lookup[(int)*group_tok.str] : Quark(group_tok); target_it->number = Article_Number(tok); Server const *server(find_server(target_it->server)); if (server && ((! server->article_expiration_age) || (days_old <= server->article_expiration_age))) { ++target_it; } } } targets_v.resize(target_it - &targets_v.front()); targets.sort(); bool expired(targets.empty()); a.xref.swap(targets); // is_binary [total_part_count found_part_count] int total_part_count(1); int found_part_count(1); in->getline(s); s.ltrim(); s.pop_token(tok); a.is_binary = ! tok.empty() && tok.str[0] == 't'; if (a.is_binary) { s.ltrim(); s.pop_token(tok); total_part_count = atoi(tok.str); s.ltrim(); s.pop_token(tok); found_part_count = atoi(tok.str); } s.ltrim(); if (s.pop_token(tok)) { a.lines = atoi(tok.str); // this field was added in 0.115 } // found parts... part_batch.init(a.message_id, total_part_count); // std::cerr<<"article "<getline(s)); if (gotline && ! expired) { StringView tok; s.ltrim(); s.pop_token(tok); int const number(atoi(tok.str)); if (number > total_part_count) { // corrupted entry expired = true; break; } StringView part_mid; unsigned long part_bytes(0); s.ltrim(); s.pop_token(part_mid); if (part_mid.len == 1 && *part_mid.str == '"') { part_mid = a.message_id.to_view(); } s.pop_token(tok); part_bytes = view_to_ull(tok); part_batch.add_part(number, part_mid, part_bytes); if (s.pop_token(tok)) { a.lines += atoi(tok.str); // this field was removed in 0.115 } } } if (! expired) { a.set_parts(part_batch); } // add the article to the group if it hasn't all expired if (expired) { ++expire_count; } else { load_article(group, &a, references); a.score = _article_filter.score_article( *this, score_sections, group, a); // score _after_ threading, so References: works ++article_count; if (! is_read(&a)) { ++unread_count; } } } if (expire_count) { Log::add_info_va(_("Expired %lu old articles from \"%s\""), expire_count, group.c_str()); } success = ! in->fail(); } else { Log::add_urgent_va(_("Unsupported data version for %s headers: %d.\nAre " "you running an old version of Pan by accident?"), groupname, version); } } delete in; // update the group's article count... ReadGroup &g(_read_groups[group]); g._unread_count = unread_count; g._article_count = article_count; fire_group_counts(group, unread_count, article_count); if (success) { double const seconds = timer.get_seconds_elapsed(); Log::add_info_va( _("Loaded %llu articles for \"%s\" in %.1f seconds (%.0f per second)"), static_cast(article_count), group.c_str(), seconds, static_cast(article_count) / (fabs(seconds) < 0.001 ? 0.001 : seconds)); } } namespace { char const *lookup_symbols("abcdefghijklmnopqrstuvwxyz" "ABCDEFGHIJKLMNOPQRSTUVWXYZ" "1234567890!@#$%^&*()"); struct QuarkToSymbol { char buf[2]; QuarkToSymbol() { buf[1] = '\0'; } typedef Loki::AssocVector quark_to_symbol_t; quark_to_symbol_t _map; char const *operator()(Quark const &quark) { quark_to_symbol_t::const_iterator it(_map.find(quark)); if (it == _map.end()) { return quark.c_str(); } buf[0] = it->second; return buf; } void write(std::ostream &out, StringView const &comment) const { Quark quarks[UCHAR_MAX]; foreach_const (quark_to_symbol_t, _map, it) { quarks[(int)it->second] = it->first; } const size_t len(_map.size()); out << len; if (! comment.empty()) { out << "\t # " << comment << '\n'; } for (size_t i(0); i != len; ++i) { char const ch(lookup_symbols[i]); out << '\t' << ch << '\t' << quarks[(int)ch] << '\n'; } } }; typedef Loki::AssocVector frequency_t; void build_qts(frequency_t &freq, QuarkToSymbol &setme) { setme._map.clear(); typedef std::multimap counts_t; counts_t counts; foreach_const (frequency_t, freq, it) { counts.insert(std::pair(it->second, it->first)); } counts_t::const_reverse_iterator it = counts.rbegin(), end = counts.rend(); for (char const *pch = lookup_symbols; *pch && it != end; ++pch, ++it) { setme._map[it->second] = *pch; } freq.clear(); } } // namespace bool DataImpl ::save_headers(DataIO &data_io, Quark const &group, std::vector
const &articles, unsigned long &part_count, unsigned long &article_count) const { char const endl('\n'); GroupHeaders const *h(get_group_headers(group)); assert(h != nullptr); part_count = 0; article_count = 0; bool success; if (_unit_test) { Log::add_info_va("Not saving %s's headers because we're in unit test mode", group.c_str()); success = true; } else { std::ostream &out(*data_io.write_group_headers(group)); out << "#\n" "# This file has three sections.\n" "#\n" "# A. A shorthand table for the most frequent groups in the xrefs.\n" "# The first line tells the number of elements to follow,\n" "# then one line per entry with a one-character shorthand and " "full name.\n" "#\n" "# B. A shorthand table for the most freqent author names.\n" "# This is formatted just like the other shorthand table.\n" "# (sorted by post count, so it's also a most-frequent-posters " "list...)\n" "#\n" "# C. The group's headers section.\n" "# The first line tells the number of articles to follow,\n" "# then articles which each have the following lines:\n" "# 1. message-id\n" "# 2. subject\n" "# 3. author\n" "# 4. references. This line is omitted if the Article has an " "empty References header.\n" "# 5. time-posted. This is a time_t (see " "http://en.wikipedia.org/wiki/Unix_time)\n" "# 6. xref line, server1:group1:number1 server2:group2:number2 " "...\n" "# 7. has-attachments [parts-total-count parts-found-count] " "line-count\n" "# If has-attachments isn't 't' (for true), fields 2 and 3 " "are omitted.\n" "# If fields 2 and 3 are equal, the article is `complete'.\n" "# 8. One line per parts-found-count: part-index message-id " "byte-count\n" "#\n" "#\n"; // lines moved from line 8 to line 7 in 0.115, causing version 2 // flag added, version 3 (12/2011, imhotep) out << "3\t # file format version number\n"; // xref lookup section frequency_t frequency; foreach_const (std::vector
, articles, ait) { foreach_const (Xref, (*ait)->xref, xit) { ++frequency[xit->group]; } } QuarkToSymbol xref_qts; build_qts(frequency, xref_qts); xref_qts.write(out, "xref shorthand count"); // author lookup section frequency.clear(); foreach_const (std::vector
, articles, ait) { ++frequency[(*ait)->author]; } QuarkToSymbol author_qts; build_qts(frequency, author_qts); author_qts.write(out, "author shorthand count"); // header section out << articles.size() << endl; std::string references; foreach_const (std::vector
, articles, ait) { ++article_count; Article const *a(*ait); Quark const &message_id(a->message_id); h->build_references_header(a, references); // flag, message-id, subject, author out << a->flag << "\n" << message_id << "\n\t" << a->subject << "\n\t" << author_qts(a->author) << "\n\t"; // references line *IF* the article has a References header if (! references.empty()) { out << references << "\n\t"; } // date out << a->time_posted << "\n\t"; // xref foreach_const (Xref, a->xref, xit) { out << xref_qts(xit->server); out.put(':'); out << xref_qts(xit->group); out.put(':'); out << xit->number; out.put(' '); } out << "\n\t"; // is_binary [total_part_count found_part_count] out.put(a->is_binary ? 't' : 'f'); if (a->is_binary) { out.put(' '); out << a->get_total_part_count(); out.put(' '); out << a->get_found_part_count(); } out.put(' '); out << a->lines; out.put('\n'); // one line per foundPartCount (part-index message-id bytes lines) for (Article::part_iterator pit(a->pbegin()), end(a->pend()); pit != end; ++pit) { out.put('\t'); out << pit.number(); out.put(' '); out << pit.mid(); out.put(' '); out << pit.bytes(); out.put('\n'); ++part_count; } } success = ! out.fail(); data_io.write_done(&out); save_group_xovers (data_io); } return success; } void DataImpl ::save_headers(DataIO &data_io, Quark const &group) const { if (_unit_test) { return; } pan_return_if_fail(! group.empty()); TimeElapsed timer; // get a list of the articles GroupHeaders const *h(get_group_headers(group)); std::vector
articles; foreach_const (nodes_t, h->_nodes, it) { if (it->second->_article) { articles.push_back(it->second->_article); } } unsigned long part_count(0ul); unsigned long article_count(0ul); bool const success( save_headers(data_io, group, articles, part_count, article_count)); double const time_elapsed(timer.get_seconds_elapsed()); if (success) { Log::add_info_va(_("Saved %lu parts, %lu articles in \"%s\" in %.1f " "seconds (%.0f articles/sec)"), part_count, article_count, group.c_str(), time_elapsed, article_count / (fabs(time_elapsed) < 0.001 ? 0.001 : time_elapsed)); } } /******* ******** *******/ namespace { /* autosave newsrc files */ gboolean nrc_as_cb(gpointer ptr) { DataImpl *data = static_cast(ptr); data->save_newsrc_files(); return FALSE; } } // namespace void DataImpl ::mark_read(Article const &a, bool read) { Article const *aptr(&a); mark_read(&aptr, 1, read); } void DataImpl ::mark_read(Article const **articles, unsigned long article_count, bool read) { typedef std::map group_to_changed_mids_t; group_to_changed_mids_t group_to_changed_mids; // set them to `read'... for (Article const **it(articles), **end(articles + article_count); it != end; ++it) { Article const *article(*it); foreach_const (Xref, article->xref, xit) { bool const old_state(_read_groups[xit->group][xit->server]._read.mark_one( xit->number, read)); if (! old_state != ! read) { group_to_changed_mids[xit->group].insert(article->message_id); } } } // update the affected groups' unread counts... foreach_const (group_to_changed_mids_t, group_to_changed_mids, it) { Quark const &group(it->first); ReadGroup &g(_read_groups[group]); const Article_Count n{it->second.size()}; if (read) { g.decrement_unread(n); } else { g._unread_count += n; } fire_group_counts(group, g._unread_count, g._article_count); on_articles_changed(group, it->second, false); } if (! newsrc_autosave_id && newsrc_autosave_timeout) { newsrc_autosave_id = g_timeout_add_seconds(newsrc_autosave_timeout * 60, nrc_as_cb, this); } } bool DataImpl ::is_read(Article const *a) const { // if it's read on any server, the whole thing is read. if (a != nullptr) { foreach_const (Xref, a->xref, xit) { ReadGroup::Server const *rgs( find_read_group_server(xit->group, xit->server)); if (rgs && rgs->_read.is_marked(xit->number)) { return true; } } } return false; } void DataImpl ::get_article_scores(Quark const &group, Article const &article, Scorefile::items_t &setme) const { ArticleFilter ::sections_t sections; _scorefile.get_matching_sections(StringView(group), sections); _article_filter.get_article_scores(*this, sections, group, article, setme); } void DataImpl ::rescore_articles(Quark const &group, const quarks_t mids) { GroupHeaders *gh(get_group_headers(group)); if (! gh) // group isn't loaded { return; } ArticleFilter::sections_t sections; _scorefile.get_matching_sections(group.to_view(), sections); nodes_v nodes; find_nodes(mids, gh->_nodes, nodes); foreach (nodes_v, nodes, it) { if ((*it)->_article) { Article &a(*(*it)->_article); a.score = _article_filter.score_article(*this, sections, group, a); } } } void DataImpl ::rescore_group_articles(Quark const &group) { GroupHeaders *gh(get_group_headers(group)); if (! gh) // group isn't loaded { return; } ArticleFilter::sections_t sections; _scorefile.get_matching_sections(group.to_view(), sections); foreach (nodes_t, gh->_nodes, it) { if (it->second->_article) { Article &a(*(it->second->_article)); a.score = _article_filter.score_article(*this, sections, group, a); } } } void DataImpl ::rescore() { // std::cerr << LINE_ID << " rescoring... " << std::endl; const std::string filename(_data_io->get_scorefile_name()); // reload the scorefile... _scorefile.clear(); _scorefile.parse_file(filename); // enumerate the groups that need rescoring... quarks_t groups; foreach (std::set, _trees, it) { groups.insert((*it)->_group); } // "on_articles_changed" rescores the articles... foreach_const (quarks_t, groups, git) { quarks_t mids; Quark const &group(*git); GroupHeaders const *h(get_group_headers(group)); foreach_const (nodes_t, h->_nodes, nit) { // only insert mids for nodes with articles if (nit->second->_article) { mids.insert(mids.end(), nit->first); } } if (! mids.empty()) { on_articles_changed(group, mids, true); } } } void DataImpl ::add_score(StringView const §ion_wildmat, int score_value, bool score_assign_flag, int lifespan_days, bool all_items_must_be_true, Scorefile::AddItem const *items, size_t item_count, bool do_rescore) { const std::string filename(_data_io->get_scorefile_name()); if (item_count && items) { // append to the file... const std::string str(_scorefile.build_score_string(section_wildmat, score_value, score_assign_flag, lifespan_days, all_items_must_be_true, items, item_count)); std::ofstream o(filename.c_str(), std::ofstream::app | std::ofstream::out); o << '\n' << str << '\n'; o.close(); chmod(filename.c_str(), 0600); } if (do_rescore) { rescore(); } } void DataImpl ::comment_out_scorefile_line(StringView const &filename, size_t begin_line, size_t end_line, bool do_rescore) { std::string buf; // read the file in... std::string line; std::ifstream in(filename.to_string().c_str()); size_t line_number(0); while (std::getline(in, line)) { ++line_number; if (begin_line <= line_number && line_number <= end_line) { buf += '#'; } buf += line; buf += '\n'; } in.close(); // ..and back out again const std::string f(filename.str, filename.len); std::ofstream o(f.c_str(), std::ofstream::trunc | std::ofstream::out); o << buf; o.close(); chmod(f.c_str(), 0600); // rescore if (do_rescore) { rescore(); } } /*************************************************************************** **************************************************************************** ***************************************************************************/ namespace { /** used by delete_articles */ struct PerGroup { quarks_t mids; Article_Count unread; Article_Count count; PerGroup() : unread(0), count(0) { } }; } // namespace void DataImpl ::group_clear_articles(Quark const &group) { // if they're in memory, remove them from there too... GroupHeaders *headers(get_group_headers(group)); if (headers) { unique_articles_t all; foreach (nodes_t, headers->_nodes, it) { if (it->second->_article) { all.insert(it->second->_article); } } delete_articles(all); } // reset GroupHeaders' memory... // headers->_nodes.clear (); // headers->_node_chunk.clear (); // headers->_art_chunk.clear (); // remove 'em from disk too. _data_io->clear_group_headers(group); // fire a 'count changed' event. ReadGroup &g(_read_groups[group]); g._article_count = static_cast(0); g._unread_count = static_cast(0); fire_group_counts(group, g._unread_count, g._article_count); } void DataImpl ::delete_articles(unique_articles_t const &articles) { quarks_t all_mids; // info we need to batch these deletions per group... typedef std::map per_groups_t; per_groups_t per_groups; // populate the per_groups map foreach_const (unique_articles_t, articles, it) { Article const *article(*it); quarks_t groups; foreach_const (Xref, article->xref, xit) { groups.insert(xit->group); } bool const was_read(is_read(article)); foreach_const (quarks_t, groups, git) { PerGroup &per(per_groups[*git]); ++per.count; if (! was_read) { ++per.unread; } per.mids.insert(article->message_id); all_mids.insert(article->message_id); } } // process each group foreach (per_groups_t, per_groups, it) { // update the group's read/unread count... Quark const &group(it->first); ReadGroup &g(_read_groups[group]); g.decrement_unread(it->second.unread); g.decrement_count(it->second.count); fire_group_counts(group, g._unread_count, g._article_count); // remove the articles from our lookup table... GroupHeaders *h(get_group_headers(group)); if (h) { h->remove_articles(it->second.mids); } } on_articles_removed(all_mids); } void DataImpl ::on_articles_removed(quarks_t const &mids) const { foreach (std::set, _trees, it) { (*it)->remove_articles(mids); } } void DataImpl ::on_articles_changed(Quark const &group, quarks_t const &mids, bool do_refilter) { rescore_articles(group, mids); // notify the trees that the articles have changed... foreach (std::set, _trees, it) { (*it)->articles_changed(mids, do_refilter); } } void DataImpl ::on_articles_added(Quark const &group, quarks_t const &mids) { if (! mids.empty()) { Log::add_info_va( _("Added %lu articles to %s."), mids.size(), group.c_str()); rescore_articles(group, mids); foreach (std::set, _trees, it) { debug("This tree has a group " << (*it)->_group); if ((*it)->_group == group) { debug("trying to add the articles to tree " << *it); (*it)->add_articles(mids); } } ReadGroup &g(_read_groups[group]); g._article_count += mids.size(); g._unread_count += mids.size(); fire_group_counts(group, g._unread_count, g._article_count); } } DataImpl::ArticleNode *DataImpl ::find_ancestor(ArticleNode *node, Quark const &ancestor_mid) { ArticleNode *parent_node(node->_parent); while (parent_node && (parent_node->_mid != ancestor_mid)) { parent_node = parent_node->_parent; } return parent_node; } DataImpl::ArticleNode *DataImpl ::find_closest_ancestor( ArticleNode *node, unique_sorted_quarks_t const &mid_pool) { ArticleNode *parent_node(node->_parent); while (parent_node && ! mid_pool.count(parent_node->_mid)) { parent_node = parent_node->_parent; } return parent_node; } DataImpl::ArticleNode const *DataImpl ::find_closest_ancestor( ArticleNode const *node, unique_sorted_quarks_t const &mid_pool) { ArticleNode const *parent_node(node->_parent); while (parent_node && ! mid_pool.count(parent_node->_mid)) { parent_node = parent_node->_parent; } return parent_node; } Data::ArticleTree *DataImpl ::group_get_articles(Quark const &group, Quark const &save_path, const ShowType show_type, FilterInfo const *filter, RulesInfo const *rules) const { // cast const away for group_ref()... consider _groups mutable return new MyTree( *const_cast(this), group, save_path, show_type, filter, rules); } pan-0.162/pan/data-impl/memchunk.h000066400000000000000000000052231475412772400167250ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #ifndef __MemChunk_h__ #define __MemChunk_h__ #include namespace pan { template class MemChunk { public: void push_back(T const &src) { if (chunks_ == nullptr || chunks_->count_ == chunks_->elements_) { grow(nelem); } T *thead = head_; new (thead) T(src); back_ = thead; head_ += 1; chunks_->count_ += 1; } T &back() { return *back_; } T *alloc() { push_back(T()); return back_; } MemChunk() : chunks_(nullptr), back_(nullptr), head_(nullptr), allocated_(0) { } ~MemChunk() { while (chunks_ != nullptr) { T *t = chunks_->data(); for (int i = 0; i < chunks_->count_; i += 1) { t[i].~T(); } Chunk *p = chunks_; chunks_ = chunks_->next_; ::operator delete(p); } } template MemChunk(MemChunk &) = delete; MemChunk *operator=(MemChunk const &) = delete; /** Ensures there's enough space for the specified number of elements */ void reserve(std::size_t elements) { if (elements > allocated_) { grow(elements - allocated_); } } private: struct Chunk { Chunk *next_; std::size_t elements_; std::size_t count_; T *data() { return reinterpret_cast(this + 1); } }; void grow(std::size_t elements) { Chunk *c = static_cast( ::operator new(sizeof(Chunk) + elements * sizeof(T)) ); c->next_ = chunks_; c->elements_ = elements; c->count_ = 0; chunks_ = c; head_ = c->data(); allocated_ += elements; }; enum { nelem = 16 * 1024 }; Chunk *chunks_; T *back_; T *head_; std::size_t allocated_; }; } // namespace pan #endif pan-0.162/pan/data-impl/my-tree.cc000066400000000000000000000474321475412772400166460ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #include #include #include #include #include #include #include #include #include "article-filter.h" #include "data-impl.h" #include "memchunk.h" using namespace pan; /**** ***** ArticleTree functions ****/ void DataImpl :: MyTree :: get_children (const Quark& mid, articles_t & setme) const { if (mid.empty()) // get the roots { foreach_const (nodes_t, _nodes, it) if (it->second->_article && !it->second->_parent) setme.push_back (it->second->_article); } else // get children of a particular article { nodes_t::const_iterator parent_it (_nodes.find (mid)); if (parent_it != _nodes.end()) { ArticleNode::children_t& kids (parent_it->second->_children); setme.reserve (kids.size()); foreach_const (ArticleNode::children_t, kids, it) setme.push_back ((*it)->_article); } } } const Article* DataImpl :: MyTree :: get_parent (const Quark& mid) const { const Article * parent (nullptr); const ArticleNode * parent_node (nullptr); nodes_t::const_iterator child_it (_nodes.find (mid)); if (child_it != _nodes.end()) parent_node = child_it->second->_parent; if (parent_node) parent = parent_node->_article; return parent; } const Article* DataImpl :: MyTree :: get_article (const Quark& mid) const { nodes_t::const_iterator it (_nodes.find (mid)); return it==_nodes.end() ? nullptr : it->second->_article; } size_t DataImpl :: MyTree :: size () const { return _nodes.size(); } void DataImpl :: MyTree :: set_rules (const Data::ShowType show_type, const RulesInfo * rules ) { if (rules) { // std::cerr<<"set rules "<_nodes.size()); foreach_const (nodes_t, h->_nodes, it) { const ArticleNode * node (it->second); if (node->_article) candidates.push_back ((ArticleNode*)node); } apply_rules(candidates); } void DataImpl :: MyTree :: set_filter (const Data::ShowType show_type, const FilterInfo * criteria) { // set the filter... if (criteria) _filter = *criteria; else _filter.clear (); _show_type = show_type; // refilter all the articles in the group... const GroupHeaders * h (_data.get_group_headers (_group)); g_assert (h != nullptr); const_nodes_v candidates; candidates.reserve (h->_nodes.size()); foreach_const (nodes_t, h->_nodes, it) { const ArticleNode * node (it->second); if (node->_article) candidates.push_back (node); } apply_filter (candidates); } /**** ***** Life Cycle ****/ DataImpl :: MyTree :: MyTree (DataImpl & data_impl, const Quark & group, const Quark & save_path, const Data::ShowType show_type, const FilterInfo * filter, const RulesInfo * rules): _group (group), _data (data_impl), _save_path(save_path) { _data.ref_group (_group); _data._trees.insert (this); set_filter (show_type, filter); set_rules (show_type, rules); } DataImpl :: MyTree :: ~MyTree () { _nodes.clear (); _data._trees.erase (this); _data.unref_group (_group); } /**** ***** ****/ struct DataImpl :: MyTree :: NodeMidCompare { typedef std::pair nodes_v_pair; bool operator () (const ArticleNode* a, const nodes_v_pair& b) const { return a->_mid < b.first; } bool operator () (const nodes_v_pair& a, const ArticleNode* b) const { return a.first < b->_mid; } bool operator () (const ArticleNode* a, const ArticleNode* b) const { return a->_mid < b->_mid; } bool operator () (const Quark& a, const ArticleNode* b) const { return a < b->_mid; } bool operator () (const ArticleNode* a, const Quark& b) const { return a->_mid < b; } }; void DataImpl :: MyTree :: apply_rules (const_nodes_v& candidates) { // std::cerr<<"apply rules mytree\n"; NodeMidCompare compare; const_nodes_v pass; pass.reserve (candidates.size()); // apply the rules to the whole tree foreach (const_nodes_v, candidates, it) { if (!(*it)->_article) continue; if (!_data._rules_filter.test_article (_data, _rules, _group, *(*it)->_article)) pass.push_back (*it); } // maybe include threads or subthreads... if (_show_type == Data::SHOW_THREADS) { const_nodes_v passcopy=pass; foreach (const_nodes_v, passcopy, it) { const ArticleNode *n (*it); while ((n = n->_parent)) pass.push_back(n); } std::sort (pass.begin(), pass.end(), compare); pass.erase (std::unique (pass.begin(), pass.end()), pass.end()); //std::cerr << LINE_ID << " reduces to " << pass.size() << " threads\n"; } if (_show_type == Data::SHOW_THREADS || _show_type == Data::SHOW_SUBTHREADS) { unique_nodes_t d; foreach (const_nodes_v, pass, it) accumulate_descendants (d, *it); //std::cerr << LINE_ID << " expands into " << d.size() << " articles\n"; const_nodes_v fail2; pass.clear (); foreach (unique_nodes_t, d, it) { Article * a ((*it)->_article); if (!_data._rules_filter.test_article (_data, _rules, _group, *a)) pass.push_back (*it); } } cache_articles(_data._rules_filter._cached); download_articles(_data._rules_filter._downloaded); _data._rules_filter.finalize(_data); quarks_t mids; foreach_const (const_nodes_v, pass, it) mids.insert (mids.end(), (*it)->_mid); remove_articles (mids); } void DataImpl :: MyTree :: cache_articles (std::set s) { Queue* queue (_data.get_queue()); Prefs& prefs (_data.get_prefs()); const bool action (prefs.get_flag("rules-autocache-mark-read", false)); Queue::tasks_t tasks; ArticleCache& cache(_data.get_cache()); foreach_const (std::set, s, it) if (!_data.is_read(*it)) tasks.push_back (new TaskArticle (_data, _data, **it, cache, _data, action ? TaskArticle::ACTION_TRUE : TaskArticle::ACTION_FALSE)); if (!tasks.empty()) queue->add_tasks (tasks, Queue::BOTTOM); } void DataImpl :: MyTree :: download_articles (std::set s) { Queue* queue (_data.get_queue()); Queue::tasks_t tasks; ArticleCache& cache(_data.get_cache()); Prefs& prefs (_data.get_prefs()); const bool action (prefs.get_flag("rules-auto-dl-mark-read", false)); const bool always (prefs.get_flag("mark-downloaded-articles-read", false)); foreach_const (std::set, s, it) if (!_data.is_read(*it)) tasks.push_back (new TaskArticle (_data, _data, **it, cache, _data, always ? TaskArticle::ALWAYS_MARK : action ? TaskArticle::ACTION_TRUE : TaskArticle::ACTION_FALSE, nullptr, TaskArticle::DECODE, _save_path)); if (!tasks.empty()) queue->add_tasks (tasks, Queue::BOTTOM); } // candidates holds GroupHeader's ArticleNodes pointers // candidates are sorted by Mid (see NodeMidCompare) void DataImpl :: MyTree :: apply_filter (const const_nodes_v& candidates) { NodeMidCompare compare; const_nodes_v pass; const_nodes_v fail; pass.reserve (candidates.size()); fail.reserve (candidates.size()); // apply the filter to the whole tree if (_filter.empty()) pass = candidates; else foreach_const (const_nodes_v, candidates, it) { if (!(*it)->_article) continue; else if (_data._article_filter.test_article (_data, _filter, _group, *(*it)->_article)) pass.push_back (*it); else fail.push_back (*it); } //std::cerr << LINE_ID << " " << pass.size() << " of " // << (pass.size() + fail.size()) << " articles pass\n"; // maybe include threads or subthreads... if (_show_type == Data::SHOW_THREADS) { const_nodes_v passcopy=pass; foreach (const_nodes_v, passcopy, it) { const ArticleNode *n (*it); while ((n = n->_parent)) pass.push_back(n); } std::sort (pass.begin(), pass.end(), compare); pass.erase (std::unique (pass.begin(), pass.end()), pass.end()); //std::cerr << LINE_ID << " reduces to " << pass.size() << " threads\n"; } if (_show_type == Data::SHOW_THREADS || _show_type == Data::SHOW_SUBTHREADS) { unique_nodes_t d; foreach_const (const_nodes_v, pass, it) accumulate_descendants (d, *it); //std::cerr << LINE_ID << " expands into " << d.size() << " articles\n"; const_nodes_v fail2; pass.clear (); foreach_const (unique_nodes_t, d, it) { const Article * a ((*it)->_article); if (a->score > -9999 || _data._article_filter.test_article (_data, _filter, _group, *a)) pass.push_back (*it); // pass is now sorted by mid because d was too else fail2.push_back (*it); // fail2 is sorted by mid because d was too } // fail cleanup: add fail2 and remove duplicates. // both are sorted by mid, so set_union will do the job const_nodes_v tmp; tmp.reserve (fail.size() + fail2.size()); std::set_union (fail.begin(), fail.end(), fail2.begin(), fail2.end(), inserter (tmp, tmp.begin()), compare); fail.swap (tmp); // fail cleanup: remove newly-passing articles tmp.clear (); std::set_difference (fail.begin(), fail.end(), pass.begin(), pass.end(), inserter (tmp, tmp.begin()), compare); fail.swap (tmp); //std::cerr << LINE_ID << ' ' << pass.size() << " of " // << (pass.size() + fail.size()) // << " make it past the show-thread block\n"; } // passing articles not in the tree should be added... add_articles (pass); // failing articles in the tree should be removed... quarks_t mids; foreach_const (const_nodes_v, fail, it) mids.insert (mids.end(), (*it)->_mid); remove_articles (mids); } void DataImpl :: MyTree :: remove_articles (const quarks_t& mids) { ArticleTree::Diffs diffs; std::set parents; // zero out any corresponding nodes in the tree... nodes_v nodes; _data.find_nodes (mids, _nodes, nodes); foreach_const (nodes_v, nodes, it) { ArticleNode * node (*it); const Quark& mid (node->_mid); if (node->_article) { node->_article = nullptr; diffs.removed.insert (diffs.removed.end(), mid); } if (node->_parent) parents.insert (node->_parent); } foreach (std::set, parents, it) { ArticleNode *parent (*it); ArticleNode::children_t kids; foreach (ArticleNode::children_t, parent->_children, kit) if (!mids.count ((*kit)->_mid)) kids.push_back (*kit); parent->_children.swap (kids); } // reparent any children who need it... foreach_const (nodes_t, _nodes, it) { ArticleNode * n (it->second); // if it's an article with a removed parent, reparent to ancestor if (n->_article && n->_parent && !n->_parent->_article) { // start filling out a diff entry Diffs::Reparent r; r.message_id = n->_mid; r.old_parent = n->_parent->_mid; // look for a suitable parent ArticleNode * newparent (n->_parent); while (newparent && !newparent->_article) newparent = newparent->_parent; // reparent the node if (newparent) { newparent->_children.push_front (n); r.new_parent = newparent->_mid; } n->_parent = newparent; diffs.reparented.insert (diffs.reparented.end(), std::pair(r.message_id, r)); } } fire_diffs (diffs); foreach_const (quarks_t, diffs.removed, it) _nodes.erase (*it); } void DataImpl :: MyTree :: accumulate_descendants (unique_nodes_t& descendants, const ArticleNode* node) const { // if this node has an article and wasn't already in `descendants', // then add it and its children. if (node->_article && descendants.insert(node).second || !node->_article) foreach_const (ArticleNode::children_t, node->_children, it) accumulate_descendants (descendants, *it); } void DataImpl :: MyTree :: articles_changed (const quarks_t& mids, bool do_refilter) { // std::cerr<<"articles changed\n"; const_nodes_v nodes; _data.find_nodes (mids, _data.get_group_headers(_group)->_nodes, nodes); apply_rules (nodes); if (do_refilter) apply_filter (nodes); // fire an update event for any of those mids in our tree... nodes_v my_nodes; _data.find_nodes (mids, _nodes, my_nodes); if (!my_nodes.empty()) { ArticleTree::Diffs diffs; foreach_const (nodes_v, my_nodes, it) diffs.changed.insert (diffs.changed.end(), (*it)->_mid); fire_diffs (diffs); } } void DataImpl :: MyTree :: add_articles (const quarks_t& mids) { // std::cerr<<"add articles\n"; const_nodes_v nodes; _data.find_nodes (mids, _data.get_group_headers(_group)->_nodes, nodes); apply_rules (nodes); apply_filter (nodes); } struct DataImpl :: MyTree :: TwoNodes { const ArticleNode * node; ArticleNode * tree_node; TwoNodes (const ArticleNode *n, ArticleNode *t): node(n), tree_node(t) {} }; void DataImpl :: MyTree :: add_articles (const const_nodes_v& nodes_in) { // std::cerr<<"add articles nodes\n"; NodeMidCompare compare; /// /// 1. add the new articles /// // sort the nodes by Message-ID // so that we can use `nodes' for set operations const_nodes_v nodes (nodes_in); std::sort (nodes.begin(), nodes.end(), compare); // nodes -= this->_nodes; // (don't try to add articles we've already got.) if (1) { const_nodes_v tmp; tmp.reserve (nodes.size()); std::set_difference (nodes.begin(), nodes.end(), _nodes.begin(), _nodes.end(), inserter (tmp, tmp.begin()), compare); nodes.swap (tmp); //std::cerr << LINE_ID << ' ' << nodes.size() << " unique nodes\n"; } // build new MyTree nodes for each of the articles being added nodes_v tree_nodes; tree_nodes.reserve (nodes.size()); foreach_const (const_nodes_v, nodes, it) { const Article * a ((*it)->_article); ArticleNode * node (_node_chunk.alloc()); node->_mid = a->message_id; node->_article = const_cast(a); //std::cerr << LINE_ID << " added " << node->_mid << " to the tree\n"; std::pair result ( _nodes.insert (std::pair(node->_mid, node))); g_assert (result.second); // freshly added; not a duplicate tree_nodes.push_back (node); } /// /// 2. find parents for the new articles /// ArticleTree::Diffs diffs; for (size_t i(0), n(nodes.size()); i!=n; ++i) { const ArticleNode * node (nodes[i]); ArticleNode * tree_node (tree_nodes[i]); g_assert (node->_mid == tree_node->_mid); Diffs::Added added; added.message_id = tree_node->_mid; // find the first ancestor that's present in our tree ArticleNode * parent (nullptr); const nodes_t::const_iterator nend (_nodes.end()); for (const ArticleNode *it(node->_parent); it && !parent; it=it->_parent) { nodes_t::iterator nit (_nodes.find (it->_mid)); if (nit != nend) parent = nit->second; } // if we found a parent, use it. if (parent) { tree_node->_parent = parent; parent->_children.push_back (tree_node); added.parent = parent->_mid; } diffs.added.insert (diffs.added.end(), std::pair(added.message_id, added)); //std::cerr << LINE_ID << " child " << added.message_id // << " has parent " << added.parent << std::endl; } /// /// 3. possibly reparent other articles /// // get a list of all articles that are descendants of the new articles const_nodes_v descendants; if (1) { unique_nodes_t tmp; foreach (const_nodes_v, nodes, it) accumulate_descendants (tmp, *it); descendants.assign (tmp.begin(), tmp.end()); } // descendants = descendants - nodes; // (we parented `nodes' in step 2.) if (1) { const_nodes_v tmp; std::set_difference (descendants.begin(), descendants.end(), nodes.begin(), nodes.end(), inserter (tmp, tmp.begin())); descendants.swap (tmp); } // map the 'canonical' nodes to MyTree nodes... typedef std::vector twonodes_v; twonodes_v descend; descend.reserve (descendants.size()); if (1) { nodes_t::iterator nit(_nodes.begin()), nend(_nodes.end()); const_nodes_v::const_iterator dit(descendants.begin()), dend(descendants.end()); while (nit!=nend && dit!=dend) { if (nit->second->_mid < (*dit)->_mid) ++nit; else if ((*dit)->_mid < nit->second->_mid) ++dit; else { g_assert (nit->second->_mid == (*dit)->_mid); descend.push_back (TwoNodes (*dit, nit->second)); ++nit; ++dit; } } } // now walk though the descendants and possibly reparent them. foreach_const (twonodes_v, descend, it) { ArticleNode * tree_node (it->tree_node); const ArticleNode * node (it->node); g_assert (node->_mid == tree_node->_mid); //std::cerr << LINE_ID << " looking for a new parent for " // << tree_node->_mid << std::endl; ArticleNode * new_parent (nullptr); node = node->_parent; while (node && !new_parent) { //std::cerr << LINE_ID << " maybe " << node->_mid // << " can be its new parent..." << std::endl; nodes_t::iterator nit (_nodes.find (node->_mid)); if (nit != _nodes.end()) new_parent = nit->second; else { node = node->_parent; //std::cerr << LINE_ID << " but no, that's not in the tree.\n"; } } //std::cerr << LINE_ID << " " << tree_node->_mid << "'s best parent is " // << new_parent << std::endl; if (new_parent == tree_node->_parent) continue; ArticleNode * old_parent (tree_node->_parent); ArticleTree::Diffs::Reparent reparent; if (old_parent) { reparent.old_parent = old_parent->_mid; old_parent->_children.remove (tree_node); } new_parent->_children.push_back (tree_node); tree_node->_parent = new_parent; reparent.message_id = tree_node->_mid; reparent.new_parent = new_parent->_mid; diffs.reparented.insert (diffs.reparented.end(), std::pair(reparent.message_id, reparent)); //std::cerr << LINE_ID << " REPARENTED: " << reparent.message_id // << " has a new parent " << reparent.new_parent << std::endl; } // std::cerr << LINE_ID << ' ' << _nodes.size() << " articles in the tree\n"; if (!diffs.reparented.empty() || !diffs.added.empty()) fire_diffs (diffs); } pan-0.162/pan/data-impl/profiles.cc000066400000000000000000000246151475412772400171050ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #include #include #include #include #include extern "C" { #include // for chmod #include // for chmod } #include "data-io.h" #include "profiles.h" #include #include #include #include #include #include #include using namespace pan; /// /// XML Parsing /// namespace { typedef std::map profiles_t; struct MyContext { bool is_active; std::string profile_name; std::string text; std::string header_name; profiles_t &profiles; std::string &active_profile; MyContext(profiles_t &p, std::string &ap) : is_active(false), profiles(p), active_profile(ap) { } }; // called for open tags void start_element(GMarkupParseContext *context UNUSED, gchar const *element_name_str, gchar const **attribute_names, gchar const **attribute_vals, gpointer user_data, GError **error UNUSED) { MyContext &mc(*static_cast(user_data)); std::string const element_name(element_name_str); if (element_name == "profile") { mc.is_active = false; for (char const **k(attribute_names), **v(attribute_vals); *k && ! mc.is_active; ++k, ++v) { mc.is_active = ! strcmp(*k, "active"); } } if (element_name == "profile") { for (char const **k(attribute_names), **v(attribute_vals); *k; ++k, ++v) { if (! strcmp(*k, "name")) { mc.profile_name = *v; } } if (! mc.profile_name.empty()) { mc.profiles[mc.profile_name].clear(); } } if ((element_name == "signature-file") && ! mc.profile_name.empty()) { Profile &p(mc.profiles[mc.profile_name]); for (char const **k(attribute_names), **v(attribute_vals); *k; ++k, ++v) { if (! strcmp(*k, "active")) { p.use_sigfile = ! strcmp(*v, "true"); } else if (! strcmp(*k, "type")) { if (! strcmp(*v, "file")) { p.sig_type = p.FILE; } else if (! strcmp(*v, "command")) { p.sig_type = p.COMMAND; } else { p.sig_type = p.TEXT; } } } } if ((element_name == "gpg-signature") && ! mc.profile_name.empty()) { Profile &p(mc.profiles[mc.profile_name]); for (char const **k(attribute_names), **v(attribute_vals); *k; ++k, ++v) { if (! strcmp(*k, "active")) { p.use_sigfile = ! strcmp(*v, "true"); } p.sig_type = p.GPGSIG; p.use_gpgsig = true; } } } // Called for close tags void end_element(GMarkupParseContext *context UNUSED, gchar const *element_name_str, gpointer user_data, GError **error UNUSED) { MyContext &mc(*static_cast(user_data)); std::string const element_name(element_name_str); StringView t(mc.text); t.trim(); if (! mc.profile_name.empty()) { Profile &p(mc.profiles[mc.profile_name]); if (element_name == "signature-file") { p.signature_file.assign(t.str, t.len); } else if (element_name == "gpg-signature") { p.gpg_sig_uid.assign(t.str, t.len); } else if (element_name == "attribution") { p.attribution.assign(t.str, t.len); } else if (element_name == "fqdn") { p.fqdn.assign(t.str, t.len); } else if (element_name == "face") { p.face.assign(t.str, t.len); } else if (element_name == "xface") { p.xface.assign(t.str, t.len); } else if (element_name == "username") { p.username.assign(t.str, t.len); } else if (element_name == "address") { p.address.assign(t.str, t.len); } else if (element_name == "server") { p.posting_server = t; } else if (element_name == "profile" && mc.is_active) { mc.active_profile.assign(t.str, t.len); } else if (element_name == "name") { mc.header_name.assign(t.str, t.len); } else if ((element_name == "value") && ! mc.header_name.empty()) { p.headers[mc.header_name].assign(t.str, t.len); } } } void text(GMarkupParseContext *context UNUSED, gchar const *text, gsize text_len, gpointer user_data, GError **error UNUSED) { static_cast(user_data)->text.assign(text, text_len); } } // namespace void ProfilesImpl ::clear() { profiles.clear(); active_profile.clear(); } void ProfilesImpl ::load(StringView const &filename) { std::string txt; if (file ::get_text_file_contents(filename, txt)) { MyContext mc(profiles, active_profile); GMarkupParser p; p.start_element = start_element; p.end_element = end_element; p.text = text; p.passthrough = nullptr; p.error = nullptr; GError *gerr(nullptr); GMarkupParseContext *c( g_markup_parse_context_new(&p, (GMarkupParseFlags)0, &mc, nullptr)); g_markup_parse_context_parse(c, txt.c_str(), txt.size(), &gerr); if (gerr) { Log::add_err_va(_("Error reading file \"%s\": %s"), filename.to_string().c_str(), gerr->message); g_clear_error(&gerr); } g_markup_parse_context_free(c); } } namespace { int const indent_char_len(2); std::string indent(int depth) { return std::string(depth * indent_char_len, ' '); } std::string escaped(std::string const &s) { char *pch = g_markup_escape_text(s.c_str(), s.size()); std::string const ret(pch); g_free(pch); return ret; } } // namespace void ProfilesImpl ::serialize(std::ostream &out) const { int depth(0); // xml header... out << "\n"; out << indent(depth++) << "\n"; // profiles... out << indent(depth++) << "\n"; foreach_const (profiles_t, profiles, it) { out << indent(depth++) << "first) << "\">\n"; out << indent(depth) << "" << escaped(it->second.username) << "\n"; out << indent(depth) << "
" << escaped(it->second.address) << "
\n"; out << indent(depth) << "" << escaped(it->second.posting_server.to_view()) << "\n"; out << indent(depth) << "" << escaped(it->second.face) << "\n"; out << indent(depth) << "" << escaped(it->second.xface) << "\n"; if (! it->second.signature_file.empty() && it->second.sig_type != Profile::GPGSIG) { char const *type; switch (it->second.sig_type) { case Profile::FILE: type = "file"; break; case Profile::COMMAND: type = "command"; break; default: type = "text"; break; } out << indent(depth) << "second.use_sigfile ? "true" : "false") << '"' << " type=\"" << type << '"' << ">" << escaped(it->second.signature_file) << "\n"; } if (it->second.use_gpgsig && ! it->second.gpg_sig_uid.empty()) { out << indent(depth) << "second.use_sigfile ? "true" : "false") << '"' << ">" << escaped(it->second.gpg_sig_uid) << "\n"; } if (! it->second.attribution.empty()) { out << indent(depth) << "" << escaped(it->second.attribution) << "\n"; } if (! it->second.fqdn.empty()) { out << indent(depth) << "" << escaped(it->second.fqdn) << "\n"; } if (! it->second.headers.empty()) { out << indent(depth++) << "\n"; foreach_const (Profile::headers_t, it->second.headers, hit) { out << indent(depth) << "
" << escaped(hit->first) << "" << escaped(hit->second) << "
\n"; } out << indent(--depth) << "
\n"; } out << indent(--depth) << "
\n"; } out << indent(--depth) << "
\n"; out << indent(--depth) << "
\n"; } /*** **** ***/ ProfilesImpl ::ProfilesImpl(DataIO &data_io) : _data_io(data_io) { // load from file... load (_data_io.get_posting_name()); } bool ProfilesImpl :: has_profiles () const { return !profiles.empty(); } bool ProfilesImpl :: has_from_header (const StringView& from) const { foreach_const (profiles_t, profiles, it) if (from.strstr (it->second.address)) return true; return false; } std::set ProfilesImpl :: get_profile_names () const { std::set names; foreach_const (profiles_t, profiles, it) names.insert (it->first); return names; } bool ProfilesImpl :: get_profile (const std::string& key, Profile& setme) const { profiles_t::const_iterator it (profiles.find (key)); const bool found (it != profiles.end()); if (found) setme = it->second; return found; } void ProfilesImpl :: delete_profile (const std::string& profile_name) { profiles.erase (profile_name); save (); } void ProfilesImpl :: add_profile (const std::string& profile_name, const Profile& profile) { profiles[profile_name] = profile; save (); } void ProfilesImpl :: save () const { const std::string f (_data_io.get_posting_name()); std::ofstream out (f.c_str()); serialize (out); out.close (); chmod (f.c_str(), 0600); } ProfilesImpl :: ~ProfilesImpl () { save (); delete &_data_io; // we own the DataIO } pan-0.162/pan/data-impl/profiles.h000066400000000000000000000037561475412772400167520ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #ifndef __Profiles_h__ #define __Profiles_h__ #include #include #include #include #include #include namespace pan { class DataIO; /** * This private class should only be used by classes in the same module. * * It's an implementation of the Profiles class. */ class ProfilesImpl : public virtual Profiles { public: ProfilesImpl(DataIO &io); virtual ~ProfilesImpl(); public: std::set get_profile_names() const override; bool has_profiles() const override; bool has_from_header(StringView const &from) const override; bool get_profile(const std::string &profile_name, Profile &setme) const override; public: void delete_profile(const std::string &profile_name) override; void add_profile(const std::string &profile_name, const Profile &profile) override; private: void clear(); void load(const StringView &filename); void serialize(std::ostream &) const; void save() const; private: typedef std::map profiles_t; profiles_t profiles; std::string active_profile; DataIO &_data_io; }; } // namespace pan #endif pan-0.162/pan/data-impl/rules-filter.cc000066400000000000000000000065731475412772400177020ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #include "rules-filter.h" #include #include #include #include #include #include #include using namespace pan; void RulesFilter ::finalize(Data &data) { data.delete_articles(_delete); _delete.clear(); std::vector
const tmp(_mark_read.begin(), _mark_read.end()); if (! tmp.empty()) { data.mark_read((Article const **)&tmp.front(), tmp.size()); } _mark_read.clear(); std::vector
const tmp2(_cached.begin(), _cached.end()); _cached.clear(); std::vector
const tmp3(_downloaded.begin(), _downloaded.end()); _downloaded.clear(); } bool RulesFilter ::test_article(Data &data, RulesInfo &rules, Quark const &group, Article &article) { bool pass(article.score >= rules._lb && article.score <= rules._hb); if (rules._hb >= 9999 && article.score >= rules._hb) { pass = true; } if (rules._lb <= -9999 && article.score <= rules._lb) { pass = true; } switch (rules._type) { case RulesInfo::AGGREGATE__AND: pass = true; foreach (RulesInfo::aggregatesp_t, rules._aggregates, it) { test_article(data, **it, group, article); } break; case RulesInfo::AGGREGATE__OR: if (rules._aggregates.empty()) { pass = true; } else { pass = false; foreach (RulesInfo::aggregatesp_t, rules._aggregates, it) { if (test_article(data, **it, group, article)) { pass = true; break; } } } break; case RulesInfo::MARK_READ: if (pass) { _mark_read.insert(&article); } break; case RulesInfo::AUTOCACHE: if (pass) { _cached.insert(&article); if (_auto_cache_mark_read) { _mark_read.insert(&article); } } break; case RulesInfo::AUTODOWNLOAD: if (pass) { _downloaded.insert(&article); if (_auto_dl_mark_read) { _mark_read.insert(&article); } } break; case RulesInfo::DELETE_ARTICLE: if (pass) { _delete.insert(&article); if (_auto_delete_mark_read) { _mark_read.insert(&article); } } break; default: // debug("error : unknown rules type "< * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #ifndef __RulesFilter_h__ #define __RulesFilter_h__ #include #include #include #include #include #include #include namespace pan { /** * @ingroup data_impl */ class RulesFilter { public: RulesFilter(bool cache, bool dl, bool del) : _auto_cache_mark_read(cache), _auto_dl_mark_read(dl), _auto_delete_mark_read(del) { } bool test_article(Data &data, RulesInfo &rules, Quark const &group, Article &article); private: std::set
_mark_read; std::set
_delete; bool _auto_cache_mark_read, _auto_dl_mark_read, _auto_delete_mark_read; public: std::set
_cached; std::set
_downloaded; void finalize(Data &data); }; } // namespace pan #endif pan-0.162/pan/data-impl/server.cc000066400000000000000000000344031475412772400165640ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #include #include #include #include #include #include #include #include #include // for GMarkup #include #include #include #include #include #include #include "data-impl.h" #ifdef HAVE_GKR #define USE_LIBSECRET_DEFAULT true #else #define USE_LIBSECRET_DEFAULT false #endif using namespace pan; /** *** **/ void DataImpl ::delete_server(Quark const &server_in) { const Quark server (server_in); if (_servers.count (server)) { const std::string newsrc_filename (file::absolute_fn("",_servers[server].newsrc_filename)); _servers.erase (server); save_server_properties (*_data_io, _prefs); std::remove (newsrc_filename.c_str()); rebuild_backend (); } } Quark DataImpl :: add_new_server () { // find a server ID that's not in use Quark new_server; for (unsigned long i(1); ; ++i) { char buf[64]; snprintf (buf, sizeof(buf), "%lu", i); new_server = buf; if (!_servers.count (new_server)) break; } // add it to the _servers map and give it a default filename std::ostringstream o; o << "newsrc-" << new_server; _servers[new_server].newsrc_filename = o.str (); return new_server; } quarks_t DataImpl ::get_servers () const { quarks_t servers; foreach_const (servers_t, _servers, it) servers.insert (it->first); return servers; } Data ::Server *DataImpl ::find_server(Quark const &server) { Server * retval (nullptr); servers_t::iterator it (_servers.find (server)); if (it != _servers.end()) retval = &it->second; return retval; } Data ::Server const *DataImpl ::find_server(Quark const &server) const { Server const *retval(nullptr); servers_t::const_iterator it (_servers.find (server)); if (it != _servers.end()) retval = &it->second; return retval; } bool DataImpl ::find_server_by_host_name(std::string const &server, Quark &setme) const { foreach_const(servers_t, _servers, it) if (it->second.host == server) { setme = it->first; return true; } return false; } void DataImpl ::set_server_article_expiration_age(Quark const &server, int days) { Server * s (find_server (server)); assert (s); s->article_expiration_age = std::max (0, days); } void DataImpl ::set_server_auth(Quark const &server, StringView const &username, gchar *&password, bool use_gkr) { Server * s (find_server (server)); assert (s); s->username = username; #ifdef HAVE_GKR if (use_gkr) { PasswordData pw; pw.server = s->host; pw.user = username; pw.pw = password; password_encrypt(pw); } else { s->password = password; } #else s->password = password; #endif } void DataImpl ::set_server_trust(Quark const &server, int const setme) { Server * s (find_server (server)); assert (s); s->trust = setme; } void DataImpl ::set_server_compression_type(Quark const &server, int const setme) { Server * s (find_server (server)); assert (s); s->compression_type = setme; } void DataImpl ::set_server_addr(Quark const &server, StringView const &host, int port) { Server * s (find_server (server)); assert (s); s->host = host; s->port = port; } void DataImpl ::set_server_limits(Quark const &server, int max_connections) { Server * s (find_server (server)); assert (s); s->max_connections = max_connections; } void DataImpl ::set_server_rank(Quark const &server, int rank) { Server * s (find_server (server)); assert (s); s->rank = rank; } void DataImpl ::set_server_ssl_support(Quark const &server, int ssl) { Server * s (find_server (server)); assert (s); s->ssl_support = ssl; } void DataImpl ::set_server_cert(Quark const &server, StringView const &cert) { Server * s (find_server (server)); assert (s); s->cert = cert; } void DataImpl ::save_server_info(Quark const &server) { Server * s (find_server (server)); assert (s); save_server_properties (*_data_io, _prefs); } bool DataImpl ::get_server_auth(Quark const &server, std::string &setme_username, gchar *&setme_password, bool use_gkr) { Server * s (find_server (server)); bool found (s); if (found) { setme_username = s->username; #ifdef HAVE_GKR if (!use_gkr) { setme_password = g_strdup(s->password.c_str()); } else if (s->gkr_pw) { setme_password = s->gkr_pw; } else if (s->username.empty()) { // no username, no need for password setme_password = (gchar*)""; } else { PasswordData pw; pw.server = s->host; pw.user = s->username; if (password_decrypt(pw) == NULL) { Log::add_urgent_va (_("Received no password from libsecret for server %s."), s->host.c_str()); } else { setme_password = pw.pw; s->gkr_pw = pw.pw; } } #else setme_password = g_strdup(s->password.c_str()); #endif } return found; } bool DataImpl ::get_server_trust(Quark const &server, int &setme) const { Server const *s(find_server(server)); bool const found(s); if (found) { setme = s->trust; } return found; } namespace { CompressionType get_compression_type(int val) { CompressionType ret = HEADER_COMPRESS_NONE; switch (val) { case 1: ret = HEADER_COMPRESS_XZVER; break; case 2: ret = HEADER_COMPRESS_XFEATURE; break; case 3: ret = HEADER_COMPRESS_DIABLO; break; } return ret; } } bool DataImpl ::get_server_compression_type(Quark const &server, CompressionType &setme) const { Server const *s(find_server(server)); bool const found(s); if (found) setme = get_compression_type(s->compression_type); return found; } bool DataImpl ::get_server_addr(Quark const &server, std::string &setme_host, int &setme_port) const { Server const *s(find_server(server)); bool const found(s); if (found) { setme_host = s->host; setme_port = s->port; } return found; } std::string DataImpl ::get_server_address(Quark const &server) const { std::string str; Server const *s(find_server(server)); if (s) { std::ostringstream x(s->host,std::ios_base::ate); x << ":" << s->port; str = x.str(); } return str; } bool DataImpl ::get_server_ssl_support(Quark const &server) const { bool retval (false); Server const *s(find_server(server)); if (s) retval = (s->ssl_support != 0); return retval; } std::string DataImpl ::get_server_cert(Quark const &server) const { std::string str; Server const *s(find_server(server)); if (s) str = s->cert; return str; } int DataImpl ::get_server_limits(Quark const &server) const { int retval (2); Server const *s(find_server(server)); if (s) retval = s->max_connections; return retval; } int DataImpl ::get_server_rank(Quark const &server) const { int retval (1); Server const *s(find_server(server)); if (s) retval = s->rank; return retval; } int DataImpl ::get_server_article_expiration_age(Quark const &server) const { int retval (31); Server const *s(find_server(server)); if (s) retval = s->article_expiration_age; return retval; } /*** **** ***/ namespace { typedef std::map keyvals_t; typedef std::map key_to_keyvals_t; struct ServerParseContext { std::string key; std::string text; key_to_keyvals_t data; }; void start_element(GMarkupParseContext *context UNUSED, gchar const *element_name, gchar const **attribute_names, gchar const **attribute_vals, gpointer user_data, GError **error UNUSED) { ServerParseContext& mc (*static_cast(user_data)); if (!strcmp (element_name, "server")) for (char const **k(attribute_names), **v(attribute_vals); *k; ++k, ++v) { if (!strcmp (*k,"id")) mc.key = *v; } } void end_element(GMarkupParseContext *context UNUSED, gchar const *element_name, gpointer user_data, GError **error UNUSED) { ServerParseContext& mc (*static_cast(user_data)); if (!mc.key.empty()) mc.data[mc.key][element_name] = mc.text; } void text(GMarkupParseContext *context UNUSED, gchar const *text, gsize text_len, gpointer user_data, GError **error UNUSED) { static_cast(user_data)->text.assign (text, text_len); } int to_int(std::string const &s, int default_value = 0) { return s.empty() ? default_value : atoi(s.c_str()); } } void DataImpl ::load_server_properties(DataIO const &source) { const std::string filename(source.get_server_filename()); std::string txt; file ::get_text_file_contents(filename, txt); ServerParseContext spc; GMarkupParser p; p.start_element = start_element; p.end_element = end_element; p.text = text; p.passthrough = nullptr; p.error = nullptr; GMarkupParseContext *c = g_markup_parse_context_new(&p, (GMarkupParseFlags)0, &spc, nullptr); GError *gerr(nullptr); if (! txt.empty()) g_markup_parse_context_parse(c, txt.c_str(), txt.size(), &gerr); if (gerr) { Log::add_err_va( _("Error reading file \"%s\": %s"), filename.c_str(), gerr->message); g_clear_error(&gerr); } g_markup_parse_context_free(c); // populate the servers from the info we loaded... _servers.clear(); foreach_const (key_to_keyvals_t, spc.data, it) { Server &s(_servers[it->first]); keyvals_t kv(it->second); s.host = kv["host"]; s.username = kv["username"]; #ifdef HAVE_GKR if (! _prefs.get_flag("use-password-storage", USE_LIBSECRET_DEFAULT)) s.password = kv["password"]; #else s.password = kv["password"]; #endif s.port = to_int(kv["port"], STD_NNTP_PORT); s.max_connections = to_int(kv["connection-limit"], 2); s.article_expiration_age = to_int(kv["expire-articles-n-days-old"], 31); s.rank = to_int(kv["rank"], 1); int ssl(to_int(kv["use-ssl"], 0)); s.ssl_support = ssl; s.cert = kv["cert"]; int trust(to_int(kv["trust"], 0)); s.trust = trust; s.compression_type = to_int(kv["compression-type"], 0); // NONE s.newsrc_filename = kv["newsrc"]; if (s.newsrc_filename.empty()) { // set a default filename std::ostringstream o; o << "newsrc-" << it->first; s.newsrc_filename = o.str(); } } } namespace { int const indent_char_len(2); std::string indent(int depth) { return std::string(depth * indent_char_len, ' '); } std::string escaped(std::string const &s) { char * pch = g_markup_escape_text (s.c_str(), s.size()); const std::string ret (pch); g_free (pch); return ret; } } void DataImpl :: save_server_properties (DataIO& data_io, Prefs& prefs) { int depth (0); std::ostream * out = data_io.write_server_properties (); *out << "\n"; // sort the servers by id typedef std::set alpha_quarks_t; alpha_quarks_t servers; foreach_const (servers_t, _servers, it) servers.insert (it->first); // write the servers to the ostream *out << indent(depth++) << "\n"; foreach_const (alpha_quarks_t, servers, it) { const Server* s (find_server (*it)); std::string user; gchar* pass(NULL); get_server_auth(*it, user, pass, prefs.get_flag("use-password-storage", USE_LIBSECRET_DEFAULT)); *out << indent(depth++) << "to_string()) << "\">\n"; *out << indent(depth) << "" << escaped(s->host) << "\n" << indent(depth) << "" << s->port << "\n" << indent(depth) << "" << escaped(user) << "\n"; #ifdef HAVE_GKR if (prefs.get_flag("use-password-storage", USE_LIBSECRET_DEFAULT)) *out << indent(depth) << "" << "HANDLED_BY_PASSWORD_STORAGE" << "\n"; else *out << indent(depth) << "" << escaped(pass) << "\n"; #else *out << indent(depth) << "" << escaped(pass) << "\n"; #endif *out << indent(depth) << "" << s->article_expiration_age << "\n" << indent(depth) << "" << s->max_connections << "\n" << indent(depth) << "" << s->newsrc_filename << "\n" << indent(depth) << "" << s->rank << "\n" << indent(depth) << "" << s->ssl_support << "\n" << indent(depth) << "" << s->trust << "\n" << indent(depth) << "" << s->compression_type << "\n" << indent(depth) << "" << s->cert << "\n"; *out << indent(--depth) << "\n"; } *out << indent(--depth) << "\n"; data_io.write_done (out); } pan-0.162/pan/data-impl/speed-test-load-group.cc000066400000000000000000000006351475412772400214020ustar00rootroot00000000000000#include #include #include "data-impl.h" using namespace pan; int main (int argc, char *argv[]) { if (argc < 2) fprintf (stderr, "Usage: %s groupname\n", argv[0]); else { const Quark group (argv[1]); for (int i=0; i<8; ++i) { DataImpl data; Data::ArticleTree * tree (data.group_get_articles (group,Quark(""))); delete tree; } } return 0; } pan-0.162/pan/data-impl/task-archive.cc000066400000000000000000000034031475412772400176330ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #include #include #include #include #include #include "data-impl.h" #include "data-io.h" void DataImpl :: save_tasks (const std::vector& tasks) { std::ostream * out (_data_io->write_tasks ()); NZB :: nzb_to_xml (*out, tasks); _data_io->write_done (out); } void DataImpl :: load_tasks (std::vector& setme) { typedef std::deque lines_t; lines_t lines; StringView line; size_t total_len (0); LineReader * in (_data_io->read_tasks ()); while (in && in->getline (line)) { total_len += line.len; lines.push_back (line.to_string()); } delete in; std::string full; full.reserve (total_len+1); foreach_const (lines_t, lines, it) full += *it; char * dir (g_get_current_dir ()); // hmm, maybe we could add a tag to nzb for this? NZB :: tasks_from_nzb_string (StringView(full), dir, get_cache(), get_encode_cache(), *this, *this, *this, setme); g_free (dir); } pan-0.162/pan/data-impl/xover.cc000066400000000000000000000232661475412772400164260ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include "data-impl.h" using namespace pan; namespace { bool parse_multipart_subject (const StringView & subj, int & part, int & parts, std::string & no_part) { const char * numerator = nullptr; const char * denominator = nullptr; const char * s (subj.begin()); const char * pch (subj.end()); while (pch != s) { // find the ']' of [n/N] --pch; if ((pch[1]!=')' && pch[1]!=']') || !isdigit(*pch)) continue; // find the '/' of [n/N] while (s!=pch && isdigit(*pch)) --pch; if (s==pch || (*pch!='/' && *pch!='|')) continue; // N -> parts denominator = pch+1; --pch; // find the '[' of [n/N] while (s!=pch && isdigit(*pch)) --pch; if (s==pch || (*pch!='(' && *pch!='[')) { denominator = nullptr; continue; } // N -> part numerator = pch+1; char * numerator_end (nullptr); part = (int) strtol (numerator, &numerator_end, 10); parts = atoi (denominator); if (part > parts) { // false positive... numerator = denominator = nullptr; part = parts = 0; continue; } no_part.assign (subj.str, numerator-subj.str); no_part.append (numerator_end, (subj.str+subj.len)-numerator_end); return true; } return false; } void find_parts (const StringView & subj, const Quark & group, int line_count, int & part, int & parts, std::string & norm) { if (!parse_multipart_subject (subj, part, parts, norm)) { part = parts = 0; norm.assign (subj.str, subj.len); } /* if not a multipart yet, AND if it's a big message, AND it's either in one of the pictures/fan/sex groups or it has commonly-used image names in the subject, it's probably a single-part binary */ if (!parts && line_count>400) { const StringView gname (group.c_str()); if (((gname.strstr("binaries") || gname.strstr("fan") || gname.strstr("mag") || gname.strstr("sex"))) || ((subj.strstr(".jpg") || subj.strstr(".JPG") || subj.strstr(".jpeg") || subj.strstr(".JPEG") || subj.strstr(".gif") || subj.strstr(".GIF") || subj.strstr(".png") || subj.strstr(".PNG")))) part = parts = 1; } /* but if it's starting the subject with "Re:" and doesn't have many lines, it's probably a followup to a part, rather than an actual part. */ if (Article::has_reply_leader(subj) && line_count<100) part = parts = 0; /* Subjects containing (0/N) aren't part of an N-part binary; they're text description articles that accompany the binary. */ if (part == 0) parts = 0; } } void DataImpl :: xover_clear_workarea (const Quark& group) { debug ("Clearing the XOVER workearea for " << group); _xovers.erase (group); if (group == _cached_xover_group) { _cached_xover_group.clear (); _cached_xover_entry = nullptr; } } DataImpl :: XOverEntry& DataImpl :: xover_get_workarea (const Quark& group) { XOverEntry * entry (nullptr); if (group == _cached_xover_group) entry = _cached_xover_entry; else { _cached_xover_group = group; _cached_xover_entry = entry = &_xovers[group]; } return *entry; } void DataImpl :: xover_ref (const Quark& group) { // sanity clause pan_return_if_fail (!group.empty()); // ref the articles ref_group (group); // ref the xover XOverEntry& workarea (xover_get_workarea (group)); ++workarea.refcount; // populate the normalized lookup for multipart detection... GroupHeaders * h (get_group_headers (group)); foreach_const (nodes_t, h->_nodes, it) { const Quark& mid (it->first); const Article * a (it->second->_article); if (a != nullptr) workarea._subject_lookup.insert (std::pair(a->subject,mid)); } } void DataImpl :: xover_flush (const Quark& group) { XOverEntry& workarea (xover_get_workarea (group)); on_articles_added (group, workarea._added_batch); workarea._added_batch.clear(); on_articles_changed (group, workarea._changed_batch, true); workarea._changed_batch.clear(); workarea._last_flush_time = time(nullptr); } void DataImpl :: xover_unref (const Quark& group) { XOverEntry& workarea (xover_get_workarea (group)); if (!--workarea.refcount) { xover_flush (group); xover_clear_workarea (group); } unref_group (group); } void DataImpl :: set_xover_low (const Quark & group, const Quark & server, const Article_Number low) { ReadGroup::Server * rgs (find_read_group_server (group, server)); if (rgs != nullptr) rgs->_read.mark_range (static_cast(0), low, true); } const Article* DataImpl :: xover_add (const Quark & server, const Quark & group, const StringView & subject, const StringView & author, const time_t time_posted, const StringView & message_id, const StringView & references_in, const unsigned long byte_count, const unsigned long line_count, const StringView & xref, const bool is_virtual) { if (is_virtual) ref_group(group); GroupHeaders * h (get_group_headers (group)); if (!h && !is_virtual) { Log::add_err_va (_("Error reading from %s: unknown group \"%s\""), get_server_address(server).c_str(), group.c_str()); return nullptr; } // std::cerr<<"xover add : "<_dirty = true; int part_index, part_count; std::string multipart_subject; find_parts (subject, group, line_count, part_index, part_count, multipart_subject); const Quark multipart_subject_quark (multipart_subject); Quark art_mid; if (part_count > 1) { // walk through the articles we've already got for the group // to see if there's already an Article allocated to this // multipart. If there is, we use it here instead of adding a new one typedef XOverEntry::subject_to_mid_t::const_iterator cit; const std::pair range (workarea._subject_lookup.equal_range (multipart_subject_quark)); for (cit it(range.first), end(range.second); it!=end && art_mid.empty(); ++it) { const Quark& candidate_mid (it->second); const Article* candidate (h->find_article (candidate_mid)); if (candidate && (candidate->author == author) && ((int)candidate->get_total_part_count() == part_count)) art_mid = candidate_mid; } } if (art_mid.empty()) { art_mid = message_id; if (part_count > 1) workarea._subject_lookup.insert(std::pair(multipart_subject_quark, art_mid)); // if we don't already have this article... if (!h->find_article (art_mid)) { //std::cerr << LINE_ID << " We didn't have this article yet, so creating an instance..." << std::endl; Article& a (h->alloc_new_article()); a.author = author; a.subject = multipart_subject_quark; a.message_id = art_mid; a.is_binary = part_count >= 1; a.set_part_count (a.is_binary ? part_count : 1); a.time_posted = time_posted; a.xref.insert (server, xref); load_article (group, &a, references); new_article = &a; workarea._added_batch.insert (art_mid); } } /** *** Add the article's part info **/ { const int number (part_count<2 ? 1 : part_index); load_part (group, art_mid, number, message_id, line_count, byte_count); } if (!workarea._added_batch.count(art_mid)) workarea._changed_batch.insert(art_mid); // maybe flush the batched changes if ((time(nullptr) - workarea._last_flush_time) >= 10) xover_flush (group); if (is_virtual) unref_group(group); return new_article; } pan-0.162/pan/data/000077500000000000000000000000001475412772400140045ustar00rootroot00000000000000pan-0.162/pan/data/CMakeLists.txt000066400000000000000000000011561475412772400165470ustar00rootroot00000000000000set(SOURCES article.cc article-cache.cc encode-cache.cc cert-store.cc data.cc parts.cc xref.cc ) add_library(data ${SOURCES}) # Sanity checking # https://cmake.org/cmake/help/latest/command/add_compile_options.html target_compile_options(data PRIVATE "${CXX_STD}" "-Wreorder" "-Wzero-as-null-pointer-constant" ) target_link_libraries(data PUBLIC PkgConfig::GTK3) target_link_libraries(data PUBLIC PkgConfig::GMIME) if(WANT_GNUTLS) target_link_libraries(data PUBLIC PkgConfig::GNUTLS) endif() # this test is broken # add_executable(article-test article-test.cc) # add_test(NAME article COMMAND article-test) pan-0.162/pan/data/article-cache.cc000066400000000000000000000303511475412772400170010ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #include extern "C" { #include #include #include #include #include } #include #include #include #include "article-cache.h" #include "article.h" #include #include #include #include #include #include #include using namespace pan; /** * Message-IDs are transformed via message_id_to_filename() * to play nicely with some filesystems, so to extract the Message-ID * from a filename we need to reverse the transform. * * @return string length, or 0 on failure */ int ArticleCache ::filename_to_message_id(char *buf, int len, char const *basename) { char const *in; char *out; char *pch; char tmp_basename[PATH_MAX]; // sanity clause pan_return_val_if_fail(basename && *basename, 0); pan_return_val_if_fail(buf != NULL, 0); pan_return_val_if_fail(len > 0, 0); // remove the trailing ".msg" or similar g_strlcpy(tmp_basename, basename, sizeof(tmp_basename)); // if ((pch = g_strrstr (tmp_basename, msg_extension.c_str()))) // *pch = '\0'; if ((pch = g_strrstr(tmp_basename, "."))) { *pch = '\0'; } g_strstrip(tmp_basename); // transform out = buf; *out++ = '<'; for (in = tmp_basename; *in; ++in) { if (in[0] != '%' || ! g_ascii_isxdigit(in[1]) || ! g_ascii_isxdigit(in[2])) { *out++ = *in; } else { char buf[3]; buf[0] = *++in; buf[1] = *++in; buf[2] = '\0'; *out++ = (char)strtoul(buf, NULL, 16); } } *out++ = '>'; *out = '\0'; return out - buf; } /** * Some characters in message-ids don't work well in filenames, * so we transform them to a safer name. */ char *ArticleCache ::message_id_to_filename(char *buf, int len, StringView const &mid) const { // sanity clause pan_return_val_if_fail(! mid.empty(), nullptr); pan_return_val_if_fail(buf != nullptr, NULL); pan_return_val_if_fail(len > 0, NULL); // some characters in message-ids are illegal on older Windows boxes, // so we transform those illegal characters using URL encoding char *out = buf; for (char const *in = mid.begin(), *end = mid.end(); in != end; ++in) { switch (*in) { case '%': /* this is the escape character */ case '"': case '*': case '/': case ':': case '?': case '|': case '\\': /* these are illegal on vfat, fat32 */ g_snprintf(out, len - (out - buf), "%%%02x", (int)*in); out += 3; break; case '<': case '>': /* these are illegal too, but rather than encoding them, follow the convention of omitting them */ break; default: *out++ = *in; break; } } // add the filename extension g_snprintf(out, len - (out - buf), ".%s", msg_extension.c_str()); return buf; } ArticleCache ::ArticleCache(StringView const &path, StringView const &extension, size_t max_megs) : msg_extension(extension), _path(path.str, path.len), _max_megs(max_megs), _current_bytes(0ul) { GError *err = NULL; GDir *dir = g_dir_open(_path.c_str(), 0, &err); if (err != NULL) { Log::add_err_va( _("Error opening directory: \"%s\": %s"), _path.c_str(), err->message); g_clear_error(&err); } else { char filename[PATH_MAX]; char const *fname; while ((fname = g_dir_read_name(dir))) { struct stat stat_p; g_snprintf(filename, sizeof(filename), "%s%c%s", _path.c_str(), G_DIR_SEPARATOR, fname); if (! stat(filename, &stat_p)) { char str[2048]; int const len(filename_to_message_id(str, sizeof(str), fname)); if (len != 0) { MsgInfo info; info._message_id = StringView(str, len); info._size = stat_p.st_size; info._date = stat_p.st_mtime; _current_bytes += info._size; _mid_to_info.insert( mid_to_info_t::value_type(info._message_id, info)); } } } g_dir_close(dir); debug("loaded " << _mid_to_info.size() << " articles into cache from " << _path); } } ArticleCache ::~ArticleCache() { } /***** ****** *****/ void ArticleCache ::fire_added(Quark const &mid) { for (listeners_t::iterator it(_listeners.begin()), end(_listeners.end()); it!=end; ) (*it++)->on_cache_added (mid); } void ArticleCache :: fire_removed (const quarks_t& mids) { for (listeners_t::iterator it(_listeners.begin()), end(_listeners.end()); it!=end; ) (*it++)->on_cache_removed (mids); } /***** ****** *****/ bool ArticleCache :: contains (const Quark& mid) const { return _mid_to_info.find (mid) != _mid_to_info.end(); } char* ArticleCache :: get_filename (char * buf, int buflen, const Quark& mid) const { char basename[PATH_MAX]; *buf = '\0'; message_id_to_filename (basename, sizeof(basename), mid.to_view()); g_snprintf (buf, buflen, "%s%c%s", _path.c_str(), G_DIR_SEPARATOR, basename); return buf && *buf ? buf : nullptr; }; ArticleCache :: CacheResponse ArticleCache :: add (const Quark& message_id, const StringView& article, const bool virtual_file) { debug ("adding " << message_id << ", which is " << article.len << " bytes long"); CacheResponse res; res.type = CACHE_IO_ERR; pan_return_val_if_fail (!message_id.empty(), res); pan_return_val_if_fail (!article.empty(), res); FILE * fp = nullptr; char filename[PATH_MAX]; if (get_filename (filename, sizeof(filename), message_id)) fp = fopen (filename, "wb+"); if (!fp) { Log::add_err_va (_("Unable to save \"%s\" %s"), filename, file::pan_strerror(errno)); res.type = CACHE_IO_ERR; } else { const size_t bytes_written (fwrite (article.str, sizeof(char), article.len, fp)); if (bytes_written < article.len) { Log::add_err_va (_("Unable to save \"%s\" %s"), filename, file::pan_strerror(errno)); if (errno == ENOSPC || errno == ENOMEM) { res.type = CACHE_DISK_FULL; } } else { MsgInfo info; info._message_id = message_id; info._size = article.len; info._date = time(nullptr); _mid_to_info.insert (mid_to_info_t::value_type (info._message_id, info)); fire_added (message_id); _current_bytes += info._size; if (virtual_file) ++_locks[message_id]; resize (); res.type = CACHE_OK; } fclose (fp); } return res; } /*** **** ***/ void ArticleCache :: reserve (const mid_sequence_t& mids) { foreach_const (mid_sequence_t, mids, it) ++_locks[*it]; } void ArticleCache :: release (const mid_sequence_t& mids) { foreach_const (mid_sequence_t, mids, it) if (!--_locks[*it]) _locks.erase (*it); } /*** **** ***/ void ArticleCache :: resize () { // let's shrink it to 80% of the maximum size const double buffer_zone (0.8); guint64 max_bytes (_max_megs * 1024 * 1024); max_bytes = (guint64) ((double)max_bytes * buffer_zone); resize (max_bytes); } void ArticleCache :: clear () { resize (0); } void ArticleCache :: resize (guint64 max_bytes) { quarks_t removed; if (_current_bytes > max_bytes) { // sort from oldest to youngest typedef std::set sorted_info_t; sorted_info_t si; for (mid_to_info_t::const_iterator it=_mid_to_info.begin(), end=_mid_to_info.end(); it!=end; ++it) si.insert (it->second); // start blowing away files for (sorted_info_t::const_iterator it=si.begin(), end=si.end(); _current_bytes>max_bytes && it!=end; ++it) { const Quark& mid (it->_message_id); if (_locks.find(mid) == _locks.end()) { char buf[PATH_MAX]; get_filename (buf, sizeof(buf), mid); unlink (buf); _current_bytes -= it->_size; removed.insert (mid); debug ("removing [" << mid << "] as we resize the queue"); _mid_to_info.erase (mid); } } } debug ("cache expired " << removed.size() << " articles, " "has " << _mid_to_info.size() << " active " "and " << _locks.size() << " locked."); if (!removed.empty()) fire_removed (removed); } /**** ***** ***** Getting Messages ***** ****/ /*private*/ GMimeStream* ArticleCache :: get_message_file_stream (const Quark& mid) const { GMimeStream * retval = NULL; /* open the file */ char filename[PATH_MAX]; if (get_filename (filename, sizeof(filename), mid)) { errno = 0; FILE * fp = fopen (filename, "rb"); if (!fp) Log::add_err_va (_("Error opening file \"%s\" %s"), filename, file::pan_strerror(errno)); else { GMimeStream * file_stream = g_mime_stream_file_new (fp); retval = g_mime_stream_buffer_new (file_stream, GMIME_STREAM_BUFFER_BLOCK_READ); g_object_unref (file_stream); } } debug ("file stream for " << mid << ": " << retval); return retval; } /*private*/ GMimeStream* ArticleCache :: get_message_mem_stream (const Quark& mid) const { debug ("mem stream got quark " << mid); GMimeStream * retval (nullptr); char filename[PATH_MAX]; if (get_filename (filename, sizeof(filename), mid)) { debug ("mem stream loading filename " << filename); gsize len (0); char * buf (nullptr); GError * err (nullptr); if (g_file_get_contents (filename, &buf, &len, &err)) { debug ("got the contents, calling mem_new_with_buffer"); retval = g_mime_stream_mem_new_with_buffer (buf, len); g_free (buf); } else { Log::add_err_va (_("Error reading file \"%s\": %s"), filename, err->message); g_clear_error (&err); } } debug ("mem stream for " << mid << ": " << retval); return retval; } #ifdef HAVE_GMIME_CRYPTO GMimeMessage* ArticleCache :: get_message (const mid_sequence_t& mids, GPGDecErr& err) const #else GMimeMessage* ArticleCache :: get_message (const mid_sequence_t& mids) const #endif { debug ("trying to get a message with " << mids.size() << " parts"); GMimeMessage * retval = NULL; // load the streams typedef std::vector streams_t; streams_t streams; //const bool in_memory (mids.size() <= 2u); const bool in_memory (true); // workaround for bug #439841 foreach_const (mid_sequence_t, mids, it) { const Quark mid (*it); GMimeStream * stream (nullptr); if (this->contains (*it)) stream = in_memory ? get_message_mem_stream (mid) : get_message_file_stream (mid); if (stream) streams.push_back (stream); } // build the message if (!streams.empty()) #ifdef HAVE_GMIME_CRYPTO retval = mime :: construct_message (&streams.front(), streams.size(), err); #else retval = mime :: construct_message (&streams.front(), streams.size()); #endif // cleanup foreach (streams_t, streams, it) g_object_unref (*it); return retval; } ArticleCache :: strings_t ArticleCache :: get_filenames (const mid_sequence_t& mids) { strings_t ret; char filename[PATH_MAX]; foreach_const (mid_sequence_t, mids, it) if (get_filename (filename, sizeof(filename), *it)) { ret.push_back (filename); } return ret; } pan-0.162/pan/data/article-cache.h000066400000000000000000000111141475412772400166370ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #ifndef _ArticleCache_h_ #define _ArticleCache_h_ #include #include // for guint64 #include #include #include #include #include extern "C" { typedef struct _GMimeMessage GMimeMessage; typedef struct _GMimeStream GMimeStream; } namespace pan { class Article; class StringView; /** * A disk cache for article bodies. * * This allows a cache to be set to a certain maximum size, where * the oldest articles will be aged out when the cache is full. * * It also has a lock/unlock mechanism to allow the cache to grow * past its limit briefly to allow large multipart articles' pieces * to all be held at once (for decoding). * * FIXME: This should probably be an interface class implemented in * data-impl in the same way profiles was. * * @ingroup data */ class ArticleCache { public: enum CacheResponse_types { CACHE_IO_ERR, CACHE_DISK_FULL, CACHE_OK }; struct CacheResponse { CacheResponse_types type; std::string err; // perhaps use gerror here?? }; ArticleCache(StringView const &path, StringView const &extension, size_t max_megs = 10); ~ArticleCache(); typedef std::vector mid_sequence_t; bool contains(Quark const &message_id) const; CacheResponse add(const Quark &message_id, const StringView &article, const bool virtual_file = false); void reserve(const mid_sequence_t &mids); void release(const mid_sequence_t &mids); void resize(); void clear(); #ifdef HAVE_GMIME_CRYPTO GMimeMessage* get_message (const mid_sequence_t&, GPGDecErr&) const; #else GMimeMessage* get_message (const mid_sequence_t&) const; #endif typedef std::vector strings_t; strings_t get_filenames (const mid_sequence_t&); public: /** Interface class for objects that listen to an ArticleCache's events. */ struct Listener { virtual ~Listener () {} virtual void on_cache_added (const Quark& mid) = 0; virtual void on_cache_removed (const quarks_t& mid) = 0; }; void add_listener (Listener * l) { _listeners.insert(l); } void remove_listener (Listener * l) { _listeners.erase(l); } public: void set_max_megs (size_t value) { _max_megs = value; } void set_msg_extension (const std::string& s) { msg_extension = s; } const std::string& get_msg_extension () const { return msg_extension; } private: std::map _locks; std::string msg_extension; struct MsgInfo { Quark _message_id; size_t _size; time_t _date; MsgInfo(): _size(0), _date(0) {} }; typedef std::map mid_to_info_t; mid_to_info_t _mid_to_info; struct MsgInfoCompare { bool operator()(const MsgInfo& a, const MsgInfo& b) const { if (a._date != b._date) return a._date < b._date; return a._message_id < b._message_id; } }; std::string _path; size_t _max_megs; // changeable via prefs guint64 _current_bytes; typedef std::set listeners_t; listeners_t _listeners; void fire_added (const Quark& mid); void fire_removed (const quarks_t& mid); void resize (guint64 max_bytes); char* get_filename (char* buf, int buflen, const Quark& mid) const; GMimeStream* get_message_file_stream (const Quark& mid) const; GMimeStream* get_message_mem_stream (const Quark& mid) const; int filename_to_message_id (char * buf, int len, const char * basename); char* message_id_to_filename (char * buf, int len, const StringView& mid) const; }; } // namespace pan #endif // __ArticleCache_h__ pan-0.162/pan/data/article-test.cc000066400000000000000000000022021475412772400167070ustar00rootroot00000000000000#include #include #include #include #include "article.h" using namespace pan; #define test_message_id(s) \ in = s; \ a.add_part (++i, in, 1); \ check (a.get_part_info (i, out, bytes)) \ check (bytes == 1) \ check (out == in) int main (void) { Parts::number_t i = 0; Parts::bytes_t bytes; Quark key = ""; std::string in, out; Article a; a.message_id = key; a.set_part_count (2); test_message_id (key.to_string()); // two equal strings test_message_id (""); // extra in the middle... test_message_id (""); // missing in the middle... test_message_id ("zzz"); // crazy test: extra at front test_message_id ("zzz"); // crazy test: extra at end test_message_id ("zzzzzz"); // crazy test: extra at both ends test_message_id ("abcd@efghijkl.com>"); // crazy test: less at front test_message_id (" * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #include #include #include #include #include #include #include #include "article.h" using namespace pan; Article :: PartState Article :: get_part_state () const { PartState part_state (SINGLE); // not a multipart if (!is_binary) part_state = SINGLE; // someone's posted a followup to a multipart else if (!is_line_count_ge(250) && has_reply_leader(subject.to_view())) part_state = SINGLE; else { const Parts::number_t total = parts.get_total_part_count (); const Parts::number_t found = parts.get_found_part_count (); if (!found) // someone's posted a "000/124" info message part_state = SINGLE; else // a multipart.. part_state = total==found ? COMPLETE : INCOMPLETE; } return part_state; } unsigned int Article :: get_crosspost_count () const { quarks_t groups; foreach_const (Xref, xref, xit) groups.insert (xit->group); return (int) groups.size (); } bool Article :: has_reply_leader (const StringView& s) { return !s.empty() && s.len>4 \ && (s.str[0]=='R' || s.str[0]=='r') && (s.str[1]=='E' || s.str[1]=='e') && s.str[2]==':' && s.str[3]==' '; } unsigned long Article :: get_byte_count () const { unsigned long bytes = 0; for (part_iterator it(pbegin()), end(pend()); it!=end; ++it) bytes += it.bytes(); return bytes; } bool Article :: is_byte_count_ge (unsigned long test) const { unsigned long bytes = 0; for (part_iterator it(pbegin()), end(pend()); it!=end; ++it) if (((bytes += it.bytes())) >= test) return true; return false; } Article :: mid_sequence_t Article :: get_part_mids () const { mid_sequence_t mids; for (part_iterator it(pbegin()), end(pend()); it!=end; ++it) { mids.push_back (it.mid()); } return mids; } //const Quark& //Article :: get_attachment () const //{ // for (part_iterator it(pbegin()), end(pend()); it!=end; ++it) // if (it.mid() == search) //} void Article :: clear () { message_id.clear (); author.clear (); subject.clear (); time_posted = 0; xref.clear (); score = 0; parts.clear (); is_binary = false; } pan-0.162/pan/data/article.h000066400000000000000000000067261475412772400156130ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #ifndef __Article_h__ #define __Article_h__ #include #include #include #include #include #include namespace pan { /** * A Usenet article, either single-part or multipart. * * To lessen the memory footprint of large binaries groups, * Pan folds multipart posts into a single Article object. * Only minimal information for any one part is kept * (message-id, line count, byte count), and the Article object * holds the rest. * * This is a lossy approach: less-important unique fields, * such as the part's xref and time-posted, are not needed * and so we don't keep them. * * @ingroup data */ class Article { public: void set_parts (const PartBatch& b) { parts.set_parts(b); } bool add_part (Parts::number_t num, const StringView& mid, Parts::bytes_t bytes) { return parts.add_part(num,mid,bytes,message_id); } void set_part_count (Parts::number_t num) { parts.set_part_count(num); } Parts::number_t get_total_part_count () const { return parts.get_total_part_count(); } Parts::number_t get_found_part_count () const { return parts.get_found_part_count(); } bool get_part_info (Parts::number_t num, std::string & mid, Parts::bytes_t & bytes) const { return parts.get_part_info(num,mid,bytes,message_id); } typedef Parts::const_iterator part_iterator; part_iterator pbegin() const { return parts.begin(message_id); } part_iterator pend() const { return parts.end(message_id); } typedef std::vector mid_sequence_t; mid_sequence_t get_part_mids () const; enum PartState { SINGLE, INCOMPLETE, COMPLETE }; PartState get_part_state () const; public: Quark message_id; Quark author; Quark subject; time_t time_posted; unsigned int lines; int score; bool is_binary; bool flag; static bool has_reply_leader (const StringView&); public: unsigned int get_crosspost_count () const; unsigned long get_line_count () const { return lines; } bool is_line_count_ge (size_t test) const { return lines >= test; } unsigned long get_byte_count () const; bool is_byte_count_ge (unsigned long test) const; Xref xref; public: Article (): time_posted(0), lines(0), score(0), is_binary(false), flag(false) {} void clear (); /* Functions to bookmark an article */ void toggle_flag() { flag = !flag; } bool get_flag() const { return flag; } void set_flag(bool setme) { flag = setme; } private: Parts parts; }; } #endif pan-0.162/pan/data/cert-store.cc000066400000000000000000000222721475412772400164070ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This file * Copyright (C) 2011 Heinrich Müller * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #include extern "C" { #include } #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "cert-store.h" using namespace pan; #ifdef HAVE_GNUTLS namespace pan { struct SaveCBStruct { CertStore& cs; const Quark server; Data& data; SaveCBStruct(CertStore& store, const Quark& s, Data& d) : cs(store), server(s), data(d) { } }; gboolean save_server_props_cb(gpointer gp) { SaveCBStruct* data(static_cast(gp)); data->data.save_server_info(data->server); delete data; return false; } int verify_callback(gnutls_session_t session) { mydata_t* mydata = (mydata_t*) gnutls_session_get_ptr(session); unsigned int status; const gnutls_datum_t *cert_list; unsigned int cert_list_size; int ret; gnutls_x509_crt_t cert; bool fail(false); bool fatal(false); ret = gnutls_certificate_verify_peers2(session, &status); if (ret < 0) return GNUTLS_E_CERTIFICATE_ERROR; if (status & GNUTLS_CERT_INVALID) { if (!mydata->always_trust) { g_warning("The certificate is not trusted.\n"); fail = true; } } if (status & GNUTLS_CERT_SIGNER_NOT_FOUND) { if (!mydata->always_trust) { g_warning("The certificate does not have a known issuer.\n"); fail = true; } } if (status & GNUTLS_CERT_REVOKED) { if (!mydata->always_trust) { g_warning("The certificate has been revoked.\n"); fail = true; } } if (status & GNUTLS_CERT_EXPIRED) { if (!mydata->always_trust) { g_warning("The certificate has expired\n"); fail = true; } } if (status & GNUTLS_CERT_NOT_ACTIVATED) { if (!mydata->always_trust) { g_warning("The certificate is not yet activated\n"); fail = true; } } /* Up to here the process is the same for X.509 certificates and * OpenPGP keys. From now on X.509 certificates are assumed. This can * be easily extended to work with openpgp keys as well. */ if (gnutls_certificate_type_get(session) != GNUTLS_CRT_X509) { g_warning("The certificate is not a X509 certificate!\n"); fail = true; fatal = true; } if (gnutls_x509_crt_init(&cert) < 0) { g_warning("Error in initialization\n"); fail = true; goto _fatal; } cert_list = gnutls_certificate_get_peers(session, &cert_list_size); if (cert_list == NULL) { g_warning("No certificate found!\n"); fail = true; goto _fatal; } /* TODO verify whole chain perhaps? */ if (gnutls_x509_crt_import(cert, &cert_list[0], GNUTLS_X509_FMT_DER) < 0) { g_warning("Error parsing certificate!\n"); fail = true; goto _fatal; } if (!gnutls_x509_crt_check_hostname(cert, mydata->hostname_full.c_str())) { if (!mydata->always_trust) { g_warning( "The certificate's owner does not match hostname '%s' !\n", mydata->hostname_full.c_str()); fail = true; } } /* auto-add new cert if we always trust this server and the cert isn't already stored in the store */ /* fail is only set if we don't always trust this server and a critical condition occurred, e.g. hostname mismatch */ if (mydata->always_trust && ret < 0) mydata->cs->add(cert, mydata->host); else if (fail) goto _fail; /* notify gnutls to continue handshake normally */ return 0; _fatal: gnutls_x509_crt_deinit(cert); return GNUTLS_E_CERTIFICATE_ERROR; _fail: mydata->cs->verify_failed(cert, mydata->host.c_str(), status); return GNUTLS_E_CERTIFICATE_ERROR; } bool CertStore::import_from_file(const Quark& server, const char* fn) { size_t filelen; Data::Server* s(_data.find_server(server)); if (!s) return false; if (s->cert.empty()) return false; const char* filename( fn ? fn : file::absolute_fn("ssl_certs", s->cert).c_str()); if (!filename) return false; FILE * fp = fopen(filename, "rb"); if (!fp) return false; fseek(fp, 0, SEEK_END); filelen = ftell(fp); fseek(fp, 0, SEEK_SET); char * buf = new char[filelen]; size_t dummy(fread(buf, sizeof(char), filelen, fp)); // silence compiler fclose(fp); gnutls_datum_t in; in.data = (unsigned char*) buf; in.size = filelen; gnutls_x509_crt_t cert; gnutls_x509_crt_init(&cert); gnutls_x509_crt_import(cert, &in, GNUTLS_X509_FMT_PEM); delete[] buf; int ret = gnutls_certificate_set_x509_trust(_creds, &cert, 1); if (ret < 0) { s->cert.clear(); gnutls_x509_crt_deinit(cert); return false; } _cert_to_server[server] = cert; return true; } int CertStore::get_all_certs_from_disk() { int cnt(0); quarks_t servers(_data.get_servers()); int ret(0); GError* err(NULL); foreach_const(quarks_t, servers, it) { if (import_from_file(*it)) { ++cnt; } else { Data::Server* s(_data.find_server(*it)); s->cert.clear(); } } // get certs from ssl certs directory char * ssldir(nullptr); ssldir = getenv("SSL_CERT_DIR"); if (!ssldir) ssldir = getenv("SSL_DIR"); if (!ssldir) return cnt; GDir * dir = g_dir_open(ssldir, 0, &err); if (err != NULL) { Log::add_err_va( _("Error opening SSL certificate directory: \"%s\": %s"), ssldir, err->message); g_error_free(err); } else { char filename[PATH_MAX]; const char * fname; while ((fname = g_dir_read_name(dir))) { struct stat stat_p; g_snprintf(filename, sizeof(filename), "%s%c%s", ssldir, G_DIR_SEPARATOR, fname); if (!stat(filename, &stat_p)) { if (!S_ISREG(stat_p.st_mode)) continue; ret = gnutls_certificate_set_x509_trust_file(_creds, filename, GNUTLS_X509_FMT_PEM); if (ret > 0) cnt += ret; } } g_dir_close(dir); } return cnt; } void CertStore::init() { int r(0); r = get_all_certs_from_disk(); if (r != 0) Log::add_info_va( _("Successfully added %d SSL PEM certificate(s) to Certificate Store."), r); } void CertStore::remove_hard(const Quark& server) { std::string fn = _data.get_server_cert(server); unlink(fn.c_str()); } void CertStore::remove(const Quark& server) { _cert_to_server.erase(server); remove_hard(server); } CertStore::CertStore(Data& data) : _data(data) { _path = file::absolute_fn("ssl_certs", ""); if (!file::ensure_dir_exists(_path)) { std::cerr <<_("Error initializing Certificate Store. Check that the permissions for the folders " "~/.pan2 and ~/.pan2/ssl_certs are set correctly. Fatal, exiting."); file::print_file_info(std::cerr, _path.c_str()); exit(EXIT_FAILURE); } gnutls_certificate_allocate_credentials(&_creds); gnutls_certificate_set_verify_function(_creds, verify_callback); } CertStore::~CertStore() { gnutls_certificate_free_credentials(_creds); foreach (certs_m, _cert_to_server, it)if (it->second) gnutls_x509_crt_deinit(it->second); } bool CertStore::add(gnutls_x509_crt_t cert, const Quark& server) { if (!cert || server.empty()) return false; std::string addr, cert_file_name, cert_file_name_wp; int port; _data.get_server_addr(server, addr, port); _cert_to_server[server] = cert; std::stringstream buffer; buffer << addr << ".pem"; cert_file_name = buffer.str(); cert_file_name_wp = file::absolute_fn("ssl_certs", cert_file_name); FILE * fp = fopen(cert_file_name_wp.c_str(), "wb"); if (!fp) return false; _data.set_server_cert(server, cert_file_name.c_str()); SaveCBStruct* cbstruct = new SaveCBStruct(*this, server, _data); g_idle_add(save_server_props_cb, cbstruct); int rc1 = 99; int rc2 = 99; size_t outsize = 0; /* make up for dumbness of this function */ rc1 = gnutls_x509_crt_export(cert, GNUTLS_X509_FMT_PEM, NULL, &outsize); char* out = new char[outsize]; rc2 = gnutls_x509_crt_export(cert, GNUTLS_X509_FMT_PEM, out, &outsize); if (rc2 != 0) { Log::add_err_va (_("Could not export certificate for server: %s"), addr.c_str()); } else { fputs((const char*) out, fp); } debug_SSL_verbatim("\n==========================================="); debug_SSL_verbatim(out); debug_SSL_verbatim("\n==========================================="); delete[] out; fclose(fp); chmod(cert_file_name_wp.c_str(), 0600); gnutls_certificate_set_x509_trust(_creds, &cert, 1); // for now, only 1 is saved valid_cert_added(cert, server.c_str()); debug("adding server cert "< * * This file * Copyright (C) 2011 Heinrich Müller * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #ifndef __CertStore_h__ #define __CertStore_h__ #ifdef HAVE_GNUTLS #include #include #endif #include #include #include #include #include #include #include #include #include namespace pan { class Data; class CertStore { #ifdef HAVE_GNUTLS public: CertStore (Data& data) ; virtual ~CertStore () ; private: typedef std::set certs_t; certs_t _blacklist; typedef std::map certs_m; typedef std::pair certs_p; std::string _path; certs_m _cert_to_server; Data& _data; gnutls_certificate_credentials_t _creds; public: int get_all_certs_from_disk(); bool import_from_file (const Quark& server, const char* fn = nullptr); bool in_blacklist (const Quark& s) { return _blacklist.count(s); } void blacklist (const Quark& s) { _blacklist.insert(s); } void whitelist (const Quark& s) { _blacklist.erase(s); } gnutls_x509_crt_t get_cert_to_server (const Quark& s) { if (_cert_to_server.count(s) > 0) return _cert_to_server[s]; return nullptr; } private: void remove_hard(const Quark& server); public: bool add (gnutls_x509_crt_t, const Quark&) ; void remove (const Quark&); bool exist (const Quark& q) { return (_cert_to_server.count(q) > 0); } gnutls_certificate_credentials_t get_creds() { return _creds; } struct Listener { virtual ~Listener() {} /* functions that other listeners listen on */ virtual void on_verify_cert_failed (gnutls_x509_crt_t cert UNUSED, std::string server UNUSED, int nr UNUSED) = 0; virtual void on_valid_cert_added (gnutls_x509_crt_t cert UNUSED, std::string server UNUSED) = 0; }; typedef std::set listeners_t; listeners_t _listeners; void add_listener (Listener * l) { _listeners.insert(l); } void remove_listener (Listener * l) { _listeners.erase(l); } /* notify functions for listener list */ void verify_failed (gnutls_x509_crt_t c, std::string server, int nr) { for (listeners_t::iterator it(_listeners.begin()), end(_listeners.end()); it!=end; ++it) (*it)->on_verify_cert_failed (c, server, nr); } void valid_cert_added (gnutls_x509_crt_t c, std::string server) { for (listeners_t::iterator it(_listeners.begin()), end(_listeners.end()); it!=end; ++it) (*it)->on_valid_cert_added (c, server); } public: void init(); }; struct mydata_t { gnutls_session_t session; Quark host; Quark hostname_full; CertStore* cs; int always_trust; }; #else public: CertStore (Data&) {}; virtual ~CertStore () {}; void add_listener (void * l) {} void remove_listener (void * l) {} bool in_blacklist (const Quark& s) { return false; } struct Listener { virtual ~Listener() {} }; }; #endif // HAVE_GNUTLS } #endif pan-0.162/pan/data/data.cc000066400000000000000000000043521475412772400152300ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #include #include "data.h" using namespace pan; /**** ***** ****/ void Data :: add_listener (Listener * l) { _listeners.insert (l); } void Data :: remove_listener (Listener * l) { _listeners.erase (l); } /*** **** ***/ void Data :: fire_grouplist_rebuilt () { for (listeners_t::iterator it(_listeners.begin()), end(_listeners.end()); it!=end; ) (*it++)->on_grouplist_rebuilt (); } void Data :: fire_group_counts (const Quark& group, Article_Count unread, Article_Count total) { for (listeners_t::iterator it(_listeners.begin()), end(_listeners.end()); it!=end; ) { (*it++)->on_group_counts (group, unread, total); } } void Data :: fire_group_read (const Quark& group) { for (listeners_t::iterator it(_listeners.begin()), end(_listeners.end()); it!=end; ) (*it++)->on_group_read (group); } void Data :: fire_group_subscribe (const Quark& group, bool sub) { for (listeners_t::iterator it(_listeners.begin()), end(_listeners.end()); it!=end; ) (*it++)->on_group_subscribe (group, sub); } void Data :: fire_article_flag_changed (articles_t& a, const Quark& group) { for (listeners_t::iterator it(_listeners.begin()), end(_listeners.end()); it!=end; ) (*it++)->on_article_flag_changed (a, group); } void Data :: fire_group_entered (const Quark& group, Article_Count unread, Article_Count total) { for (listeners_t::iterator it(_listeners.begin()), end(_listeners.end()); it!=end; ) (*it++)->on_group_entered (group, unread, total); } pan-0.162/pan/data/data.h000066400000000000000000000553701475412772400151000ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #ifndef __Data_h__ #define __Data_h__ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #ifdef HAVE_GKR #endif namespace pan { class FilterInfo; class RulesInfo; class Queue; class CertStore; /** * Data Interface class for seeing the mapping between groups and servers. * @ingroup data */ struct GroupServer { virtual ~GroupServer () {} virtual void group_get_servers (const Quark& group, quarks_t&) const=0; virtual void server_get_groups (const Quark& server, quarks_t&) const=0; }; struct ArticleReferences { virtual ~ArticleReferences () {} virtual void get_article_references (const Quark& group, const Article*, std::string& setme) const = 0; }; /** * Data Interface class for querying and setting an articles' Read state. * * Judging what's 'read' can be problematic if we're sharing a * newsrc file with other newsreaders: if we have server A and B, * and the user reads an article on server A with a different client, * then A and B's newsrc will disagree on whether the article is read. * Since the user _has_ read the article (on A with the other client), * Pan considers the article read even though B doesn't know about it. * * Also, a read article should change back to unread if it changes * from an incomplete multipart to a complete multipart as new * parts are added to it. * * @ingroup data */ struct ArticleRead { virtual ~ArticleRead () {} virtual bool is_read (const Article* a) const=0; virtual void mark_read (const Article&, bool read=true)=0; virtual void mark_read (const Article** articles, unsigned long article_count, bool read=true)=0; }; /** * Data Interface class for a posting profile: email address, signature file, extra headers, etc. * * @ingroup data */ struct Profile { std::string username; std::string address; bool use_sigfile; bool use_gpgsig; enum { TEXT, FILE, COMMAND, GPGSIG }; int sig_type; std::string gpg_sig_uid; std::string signature_file; std::string attribution; std::string fqdn; std::string face; std::string xface; Quark posting_server; void get_from_header (std::string& s) const { s = "\"" + username + "\" <" + address + ">"; } typedef std::map headers_t; headers_t headers; const std::string& get_header(const char * key) const { static const std::string nil; headers_t::const_iterator it (headers.find(key)); return it==headers.end() ? nil : it->second; } Profile(): use_sigfile(false), use_gpgsig(false), sig_type(TEXT) {} void clear() { username.clear(); address.clear(); use_sigfile = false; use_gpgsig = false; sig_type = TEXT; signature_file.clear(); attribution.clear(); } }; /** * Data Interface class for managing posting profiles. * @see Profile * * @ingroup data */ class Profiles { public: virtual ~Profiles () {} public: virtual std::set get_profile_names () const = 0; virtual bool has_profiles () const = 0; virtual bool has_from_header (const StringView& from) const = 0; virtual bool get_profile (const std::string& profile_name, Profile& setme) const = 0; public: virtual void delete_profile (const std::string& profile_name) = 0; virtual void add_profile (const std::string& profile_name, const Profile& profile) = 0; protected: Profiles () {} }; /** * The main interface class for Pan's data backend. * * It's intended to decouple the higher tasks/gui code from the backend so * that we can swap in a database backend or otherwise tinker with the * implementation structures without having ripple effects into the rest * of Pan. * * @ingroup data * FIXME: doesn't address manual deletion of servers, groups * FIXME: doesn't address folders * FIXME: renaming a server is so onerous I'm inclined to not implement it. */ class Data: public virtual ServerInfo, public virtual GroupServer, public virtual ArticleRead, public virtual Profiles, public virtual ArticleReferences { public: struct PasswordData { Quark server; StringView user; gchar* pw; }; public: struct Server { std::string username; std::string password; std::string host; std::string newsrc_filename; std::string cert; int port; int article_expiration_age; int max_connections; int rank; int ssl_support; int trust; int compression_type; typedef sorted_vector groups_t; groups_t groups; gchar* gkr_pw; Server(): port(STD_NNTP_PORT), article_expiration_age(31), max_connections(2), rank(1), ssl_support(0), trust(0), compression_type(0) /* NONE */, gkr_pw(NULL) {} }; protected: Data () {} virtual ~Data () {} public: virtual void save_state () = 0; public: virtual ArticleCache& get_cache () = 0; virtual const ArticleCache& get_cache () const = 0; virtual EncodeCache& get_encode_cache () = 0; virtual const EncodeCache& get_encode_cache () const = 0; virtual CertStore& get_certstore () = 0; virtual const CertStore& get_certstore () const = 0; public: #ifdef HAVE_GKR virtual gboolean password_encrypt (const PasswordData&) = 0; virtual gchar* password_decrypt (PasswordData&) const = 0; #endif /** Gets a quark to the provided hostname */ bool find_server_by_host_name (const std::string& server, Quark& setme) const override = 0; virtual const Server* find_server (const Quark& server) const = 0; virtual Server* find_server (const Quark& server) = 0; virtual quarks_t get_servers () const = 0; virtual void delete_server (const Quark& server) = 0; virtual Quark add_new_server () = 0; void set_server_auth (const Quark & server, const StringView & username, gchar *&password, bool use_gkr) override = 0; void set_server_trust (const Quark & servername, const int setme) override = 0; void set_server_addr (const Quark & server, const StringView & address, const int port) override = 0; void set_server_limits (const Quark & server, int max_connections) override = 0; bool get_server_addr (const Quark & server, std::string & setme_address, int & setme_port) const override = 0; bool get_server_auth (const Quark & server, std::string & setme_username, gchar *& setme_password, bool use_gkr) override = 0; bool get_server_trust (const Quark & servername, int&) const override = 0; bool get_server_compression_type (const Quark & servername, CompressionType&) const override = 0; std::string get_server_cert (const Quark & server) const override = 0; int get_server_limits (const Quark & server) const override = 0; /***************************************************************** *** *** OBSERVERS **/ public: typedef std::vector articles_t; /** * Interface class for objects that listen to a Data's events. * @ingroup data */ struct Listener { Listener () {} virtual ~Listener () {} virtual void on_grouplist_rebuilt () {} virtual void on_group_read (const Quark& group UNUSED) {} virtual void on_group_subscribe (const Quark & group UNUSED, bool sub UNUSED) {} virtual void on_group_counts (const Quark& group UNUSED, Article_Count unread UNUSED, Article_Count total UNUSED) {} virtual void on_group_entered (const Quark& group UNUSED, Article_Count unread UNUSED, Article_Count total UNUSED) {} /* listener for article flag, don't call too often */ virtual void on_article_flag_changed (articles_t& a UNUSED, const Quark& group UNUSED) {} }; void add_listener (Listener * l); void remove_listener (Listener * l); protected: void fire_grouplist_rebuilt (); void fire_group_read (const Quark&); void fire_group_counts (const Quark&, Article_Count unread, Article_Count total); void fire_group_subscribe (const Quark&, bool); private: typedef std::set listeners_t; listeners_t _listeners; public: virtual void fire_article_flag_changed (articles_t& a, const Quark& group); virtual void fire_group_entered (const Quark& group, Article_Count unread, Article_Count total); /***************************************************************** *** *** GROUPS **/ public: // mutators /** Struct to be passed to add_groups() when adding new newsgroups. */ struct NewGroup { /** from LIST */ Quark group; /** from LIST NEWSGROUPS*/ std::string description; /** y, n, or m for posting, no posting, moderated */ char permission; NewGroup(): permission('?') {} }; /** * To be called after an NNTP GROUPLIST task. * This will call listeners' on_grouplist_rebuilt(). */ virtual void add_groups (const Quark & servername, const NewGroup * new_groups, size_t new_group_count) = 0; /** * This will call listeners' on_group_counts(). */ virtual void mark_group_read (const Quark & group)=0; virtual void set_group_subscribed (const Quark & group, bool sub)=0; public: // accessors virtual const std::string& get_group_description (const Quark&group) const=0; /** * Get an alphabetically-sorted list of subscribed newsgroups. */ virtual void get_subscribed_groups (std::vector&) const = 0; /** * Get an alphabetically-sorted list of non-subscribed newsgroups. */ virtual void get_other_groups (std::vector&) const = 0; /** * Get the number of articles and unread articles that we * currently have headers on-hand in the specified group. * from previous xover sessions. */ virtual void get_group_counts (const Quark & group, Article_Count & setme_unread, Article_Count & setme_total) const=0; virtual char get_group_permission (const Quark & group) const=0; //virtual void group_get_servers (const Quark& group, quarks_t&) const=0; /***************************************************************** *** *** HEADERS **/ public: enum ShowType { SHOW_ARTICLES, SHOW_THREADS, SHOW_SUBTHREADS }; /** * A snapshot of Group's header info. * Trees should be deleted by the client when no longer needed. * * Article pointers retrieved from this struct are invalidated * by deleting the Tree. */ class ArticleTree { public: virtual ~ArticleTree () { }; /************************************************************* *** *** EVENT NOTIFICATION **/ public: /** * When new articles come in from a server, or old articles * are aged off, or when the user deletes articles, these * changes are reflected in the Tree. * * In the case of new articles, the Tree's existing filter * is applied to them and new articles that survive the filter * are threaded into the tree. * * In the case of deleted articles, their children are * reparented to the youngest surviving ancestor and then the * Article objects are deleted. * * A Diffs object summarizes these changes to make it easier * for clients to synchronize their Views to the changes. * * @see Listener * @see addListener() * @see removeListener() * @ingroup data */ struct Diffs { /** * A pair of quarks giving the message-id of the new article and its parent. * If the new article has is a root node, parent will be empty(). * @ingroup data */ struct Added { Quark message_id; Quark parent; }; typedef std::map added_t; added_t added; /** * A tuple of quarks giving the message-id of the article that was * reparented, the message-id of its old parent, and the message-id * of its new parent. * * If the reparented article is new, old_parent may be empty(). * If the reparented article has become a root node, new_parent will be empty(). * * @ingroup data */ struct Reparent { Quark message_id; Quark old_parent; Quark new_parent; }; typedef std::map reparented_t; reparented_t reparented; quarks_t removed; quarks_t changed; }; /** * Interface class for objects that listen to an ArticleTree's events. * @ingroup data * @see ArticleTree */ struct Listener { virtual ~Listener () {} virtual void on_tree_change (const Diffs&) = 0; }; private: typedef std::set listeners_t; listeners_t _listeners; public: virtual void add_listener (Listener * l) { _listeners.insert(l); } virtual void remove_listener (Listener * l) { _listeners.erase(l); } protected: /** the quirky way of incrementing 'it' is to prevent it from being invalidated if on_tree_change() calls remove_listener() */ void fire_diffs (const Diffs& d) const { if (!d.added.empty() || !d.removed.empty() || !d.reparented.empty() || !d.changed.empty()) { listeners_t::iterator it, e; for (it=_listeners.begin(), e=_listeners.end(); it!=e; ) (*it++)->on_tree_change (d); } } /************************************************************* *** *** ACCESSORS **/ public: typedef std::vector articles_t; /** * if message_id is empty, the root nodes are returned. */ virtual void get_children (const Quark & mid, articles_t & setme) const = 0; virtual size_t size () const = 0; virtual const Article* get_parent (const Quark& mid) const=0; virtual const Article* get_article (const Quark& mid) const=0; virtual void set_filter (const ShowType show_type = SHOW_ARTICLES, const FilterInfo * filter_or_null_to_reset = nullptr) = 0; virtual void set_rules (const ShowType show_type = SHOW_ARTICLES, const RulesInfo * filter_or_null_to_reset = nullptr) = 0; }; /** * Get a collection of headers that match the specified filter. */ virtual ArticleTree* group_get_articles (const Quark & group, const Quark & save_path, // for auto-download const ShowType show_type = SHOW_ARTICLES, const FilterInfo * criteria = nullptr, const RulesInfo * rules = nullptr) const=0; virtual void group_clear_articles (const Quark& group) = 0; typedef std::set unique_articles_t; virtual void delete_articles (const unique_articles_t&) = 0; virtual void get_article_scores (const Quark& group, const Article&, Scorefile::items_t& setme) const = 0; virtual void add_score (const StringView & section_wildmat, int score_value, bool score_assign_flag, int lifespan_days, bool all_items_must_be_true, const Scorefile::AddItem * items, size_t item_count, bool do_rescore) = 0; virtual void comment_out_scorefile_line (const StringView & filename, size_t begin_line, size_t end_line, bool do_rescore) = 0; virtual void rescore_articles (const Quark& group, const quarks_t mids) = 0; virtual void rescore_group_articles (const Quark& group) = 0; virtual void rescore () = 0; /* Get the scorefile name. * * This is a little bit unclean but it allows people to find and edit * the scorefile until such point as a proper editor is written for * it */ virtual std::string get_scorefile_name() const = 0; /***************************************************************** *** *** HEADERS - XOVER **/ public: /** * The first call to xover_ref() for a group can indicate to Data * to set up internal scaffolding it needs for the xover_add() * calls that are about to come flooding in. * * This is ref/unref rather than begin/end so that multiple * connections can be used during an xref session. * * @see get_last_xover_time() * @see xover_unref () */ virtual void xover_ref (const Quark& group) = 0; /** * A new header to add to a group. * This must be called inside an xover_ref() / xover_unref() block. * * If a new article was created -- as opposed to a new part * being added to an existing article -- then a pointer to the * new article is returned. * * FIXME: this return value is kind of odd, and is just there * to suit task-xover's needs. */ virtual const Article* xover_add (const Quark & server, const Quark & group, const StringView & subject, const StringView & author, const time_t time, const StringView & message_id, const StringView & references, const unsigned long byte_count, const unsigned long line_count, const StringView & xref, const bool is_virtual=false) = 0; /** * The last call to xover_unref() for a group can indicate to Data * that it's safe to tear down any internal scaffolding set up in * xover_ref(). */ virtual void xover_unref (const Quark & group) = 0; /** * Returns the high number of the most recent XOVER command * run on the specified {server,group}, or 0 if it's never * been run there. */ virtual Article_Number get_xover_high (const Quark & group, const Quark & server) const = 0; /** * After an XOVER command has been run, its range should be set * here so that get_xover_high() will work properly. * * @see get_xover_high() */ virtual void set_xover_high (const Quark & group, const Quark & server, const Article_Number high) = 0; /** * Used to fold the Newsrc ranges together: * articles below the low group number can all be * pruned from the newsrc string. */ virtual void set_xover_low (const Quark & group, const Quark & server, const Article_Number low) = 0; /** Sets the queue interface */ virtual void set_queue (Queue* q) = 0; }; } #endif pan-0.162/pan/data/decode-test-cache/000077500000000000000000000000001475412772400172455ustar00rootroot00000000000000pan-0.162/pan/data/decode-test-cache/apostrophe.msg000066400000000000000000000003531475412772400221420ustar00rootroot00000000000000From: charles@rebelbase.com Newsgroups: alt.test Subject: Apostrophe Organization: Lazars Android Works Lines: 687 Message-ID: Date: Wed, 02 May 2001 04:17:10 GMT begin 644 ap'str'ph'.txt 28FQA:"P@8FQA:"P@8FQA:"X* ` end pan-0.162/pan/data/decode-test-cache/collision.msg000066400000000000000000000010571475412772400217530ustar00rootroot00000000000000From: charles@rebelbase.com Newsgroups: alt.test Subject: Collision - three attachments, one filename Organization: Lazars Android Works Lines: 687 Message-ID: Date: Wed, 02 May 2001 04:17:10 GMT begin 644 collision M5&AI Date: Wed, 02 May 2001 04:17:10 GMT begin 644 micro.txt "M0H end pan-0.162/pan/data/decode-test-cache/noisy_1_2.msg000066400000000000000000001175541475412772400215740ustar00rootroot00000000000000Path: not-for-mail From: charles@rebelbase.com Newsgroups: alt.test Subject: Decoding Test 4 - security_guard.mp3 (1/2) Organization: Lazars Android Works User-Agent: SkankPost 19.2.39 - We Post Binaries, ayuh Lines: 3002 Message-ID: Date: Wed, 02 May 2001 04:01:42 GMT Xref: e420r-sjo4.usenetserver.com alt.test:889335 BEGIN -- Cut Here -- cut here begin 644 chessboard.gif M_]C_X 02D9)1@ ! 0$!+ $L #_VP!# 4#! 0$ P4$! 0%!04&!PP(!P<' M!P\+"PD,$0\2$A$/$1$3%AP7$Q0:%1$1&"$8&AT='Q\?$Q)!P>'Q[_ MVP!# 04%!0<&!PX(" X>%!$4'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX> M'AX>'AX>'AX>'AX>'AX>'AX>'AX>'A[_P 1" $= 7<# 2( A$! Q$!_\0 M'P 04! 0$! 0$ $" P0%!@<("0H+_\0 M1 @$# P($ P4% M! 0 %] 0(# 01!1(A,4$&$U%A!R)Q%#*!D:$((T*QP152T? D,V)R@@D* M%A<8&1HE)B7J#A(6&AXB)BI*3E)66EYB9FJ*CI*6FIZBIJK*SM+6VM[BYNL+#Q,7& MQ\C)RM+3U-76U]C9VN'BX^3EYN?HZ>KQ\O/T]?;W^/GZ_\0 'P$ P$! 0$! M 0$! 0 $" P0%!@<("0H+_\0 M1$ @$"! 0#! <%! 0 0)W $" M Q$$!2$Q!A)!40=A<1,B,H$(%$*1H;'!"2,S4O 58G+1"A8D-.$E\1<8&1HF M)R@I*C4V-S@Y.D-$149'2$E*4U155E=865IC9&5F9VAI:G-T=79W>'EZ@H.$ MA8:'B(F*DI.4E9:7F)F:HJ.DI::GJ*FJLK.TM;:WN+FZPL/$Q<;'R,G*TM/4 MU=;7V-G:XN/DY>;GZ.GJ\O/T]?;W^/GZ_]H # ,! (1 Q$ /P#[(HHHJ0"B MBB@ HHHH **** "BBB@ HHHH **I:]J=IHNBWNKW\GEVEE ]Q,V,X1%+']!6 M3;VWB#5L7%W>OI%NW*6]N%:7'^TQ! ^F#]132&EYLGI6/H&I_V_IQU"U9 MX+5II(X2,%G".4WG(( )4D#TQGK@/\/ZNNJ+>P/'Y-[I]Q]FO(@%V9BS,4/0DDDE2,DDG)I"2MN6WM;]%! M@U)F;.3Y\*L"/3Y=I%0^'M875&OK:2 V][I]Q]GNH=VX!MJNK*>ZLCJP/'7! M ((IDUIK\TQ']M6D%N?^>-@?-'T9I&7_ ,_33XHI+F\>(R^3%C*IG&YB2 3P,] M<'T-2P2ZBY!ELX(E(Z?:"S#_ ,=Q^M9?B&V^RZO::W!/#:S!&MII)1\C1G+* M'.1@!AP>VX^IK(A^(VB2R&W@U7P]=W88CR;?6(R2.Q&X+4RG&.[*C3*N= M@MQM=(YU\IW)"\Y#'&< _3/IT-3UQMOJE]KOC"#2S;QV]K80I?W+Q3B3<7W+ M#&2!CG#NWOBB33TE^RV-M;1S$J/WEP[.X(!(X10@SCDEQR,?, MUJ3*#3-VBFH@48!/XDFJ6L7@TRREU&9_]'@7?,"/NH.I'N!SCO00E=Z!J&KV M5E.+>1Y)+@KN$$$32R;3G#%5!(&01DX'%11:IA?RE_0OG\ZKWL MEQ;ZC=:C9VS7!01PW$6-K.@!8,A/!(WGCH>>S#GG!..]7*Y#6] M;\-Z]ITEM97TMW*H\RVN=/B:3R91]UEE V!L_P!Y@#T/!-=+I$EW)I5I)?K& MEVT"-.L9RHD*C+ ^@ZG_ ,)7:[?WJ0V6H+*Y6+R0[>7*2 2NQI&R M1QMGSZGJ;126%LI MDN)8T*M#&.2Y&3D #TKSR[^/?@BTGGM9KZWDNH)O)=+:8S*3SR'5<$ M<'WXZ57MO']C\2FL- TJ\T]HK^[\K4;&.7S9EM%1GASC6 MIRERIJYNL/4MS-:'JNNZ;9ZWHE[I%_$)K.^MWMYTSC?3KN0W$UJDFT-($$4I[]8Q$,@$C#>M.I4C3@W)AA:,J\_9Q5VSWY/ MB?X4>!)@=9*.-RLFB7D@(^JQ$52F^)^GWJ7::!8S7+VUNUQ-+>$6J0QKU9D< MB7_QP ],BOSITJV:'5)HKI)H06'$<"OSDXSNP*W_ 'H_B+4?%UCI,$]W:P7 M=ZMA(4EPA65O*( !P1B5^G]XUA+$)2MS*VGX]CNI9;.2OR-[_*W?LON/T$^# MD$TG@U/$5Z9'U#Q%)_:MTSKL/[Q5$2[ M:AHWA_7?[,TVSE\E%@M4#LZ\/N9U)/SAAQ@8QUK[.@BC@MT@A0)'&H1%4<* M, "O@/X@M')X[\20RI&V=8O%(90>?/?\JPS+%/#032O=V.[AK+(9EB)PD[65 MUI=;BZ5\?_BMI?V.<:_)- =JOA0=N>V1Q7Q9;P6D6&\F)?0[1D+_#>G?#"WL;W5 M(8+MKRX8Q,&!Y)4DX3["Y;C/ P3^E?##^!I;<-.EVI$X8PL5PR8."1CKSD=J^ROC]XAT MZX^#'B1=.O(IYY;=8%C4_/\ /(J9V]>Y[5\N:=J%W?00))&\;(A5$8 8!8L? MU8GFN//L56H5(^RENMOF;\'8*AB*-3ZQ'9WOJNFOZ;GU)^S!H']A?"6P:21Y M;B^=YY)'))*@[(P,D_+L1<#IR<5SGQA^,.G:+K4WARPTJYNM4L1^]G6;R/*/ M!.Q@"6X(SQCUJ#P-\9_#^@>$M'\-W<31ZCI]I#;S+/)Y?F$1KEH\C+@\]/H< M'BO,?B_H-WXV\5W_ (N\,:9AS7IX MBM4AA$Z3ULCYW"4*5;,)>V5HMNVOW'9:-^T/>&T9;FW42*"=\T\(/#NH7&I7VIR7EM;O<0645IB.=T4LJ@1EBV6 X8C)'2OERQ>\ MTZ%E+.LC',J20;U!"LOW2IYPS>F/7(&*>O:Y/IECIUQ;[+F"*0J8Y8_DAD0' M /NN>/"M/\ B+XLUB^CFN/B'J*2FWDD M81CRHXIC@1(W(3:SE,R!0G[L"7 .W M@*R[N&R.F,D]UM;7M_E^AEAZ5&=*,^1=O/\ KS/I+PUX]\0ZIJ]IX7U:Y87,-N[7 M2+M3:\98'+="!LSG@YZ=17OVG:=%'I\"!I5D\I07#D'..M?'WP_%I'X1M]-D MTZ$ZGI\J2I= @M'N1XVC+ Y&X@''<;B1QFO>[KQ_K&B:/HGG+83_ &S9 )-Q M=BQ^56)!4'/?CC%*AG6&P]1TZM1N3M;?L<>89?7JPA[."CO\ST,7AWFK72N\5K$9&5!\S8Z 9XR3QS M3&E?1&A1FLJ.RU"ZC5[^_D@8C+06A"JOMO(W$]L@KG'04)X>TD2&22W>X4,#D[2-[6+]-N-/NANMKF-HIAG&48$$4K! M8R=$NM8\06J:D^_2+"8;[:$*#<21G[KR9!"9&#M )'ITT/;99]7T/5;1;J[&H MZ5>3B#?(@6>VD;.S)7"NA.%Z!@2#E@3C;U.SM]1TVYL+I!)!B^(K@)K%X; VO[ZS,$3"V,X'REW?YR,G )1,9R1WKZ4T&^75-#L M-3082[MHYU'H'4-_6KA.%17BR:M&=)*3/SWUSP=):Z]>PQW.PVDS1.FSY6,3 M,H]N@QS7L?[&_A^WT[XDZG=J69QI4@7_./Q-;OPO\73>"/%_P#:/D_:%N+&6T>/RC\K;U<'.0#C81C( M^]P3CGY+"5\1#'J%1^ZF_P G8_2,PHX.>2NK25IR2Z]=+GV37A'[94,:^$M! MU!N&BU,P;O0/$Q/ZQBD?X^PV.GOJ6K6L5K:1 M)(R ]\ >9G=[ ,3Z5P'Q^ M^+OAKXG?"S[#X4O52]M=0AGE$\RP!D"2;@F\JS<$]0/RKZ7$J&(HR@GN?G^7 MUIX3%0K1^RSRBW,IYK9\$ZQIVC_$#0;J_8.(-369XU92V M%.>Y &".Y&*X?0;V>VF9!)87,[6QE@0R).&.$;:ZHV?NAE(X(W'H1QH:)XQT MN.WO;>Z\*65B8XG2.Y!=_(N65XTQN.\+\Q8HS-S'D8YKYC#Y;4C5C-:I/^OZ M1^B9GQ1"="5&*^);^O\ P#[9L?C#X+G^:XOTM(@,M*\T3JG^\$=F4>Y&/>OB MCQC?0W?Q<\0QQ7,;6]SKMQY4T9WJ0TS888Z@Y'3\*] \,:7 R+>7=X]X\8WK MYB;8X&"D$QIG X)^8Y;D\\UR?C;2;"YUXSZ9:$JK@K<0-MV/@,1M )^\QZ# MXKW,9)5:=FK^A\EDE3ZKB.>+L_P_4Y%;IY7,XK8L_#>FZ%JVC'4]/U)DOGE0PS0D,Q$ M;)^[RHR09 V>VVL;0?#^B^+O$OV+69XXC, #=O)(T\:(%P%+2;#Z<@X' [5P M472H?O)W2M=Z:Z'K9CB*V,3IP:;OO?37_+L9>H>,=6UC68Y]($MKI=EG8@_V MB 99"/ND\?[H[]2>WCG6?P_!=+K%M+;:O;20,J7(>6UE:!F=6 5\J621!G XP$9\8R3C/;%;?B[4?"YCT74-$ MGM&DF@,5P(X(XY7FR^_=M4,R[60!SG+*V3P!79*.&KI58QU6SZ]SR:4L10@Z M+GH]U=VU.N^%D/BC1+NZ\-:]87"_8CFVNHRTD;QDCY2XR./EP#@X;&.*TO%( MU/4/&\]E9QWMLL<:I(5W;/+";M^X#[I#'G..:BTC4+F6ZTP:FLJW[P17=Q=E M2N(AM&S ^8X4*#T^YWSPNN^+M-C2ZDT@L(X(PDZR*S!RJ2$D;CP/EW=L8(QS MD^-/-?:5%#DT;>NZT=KV/2AE%2E359OIZ>>Y2L=.T>>=+^]FAF-K""T4SQF) M0'*_.7'/.X;003CK7,2I9RW>K)+8:7/&VLR32/+\EI%$K8?W",2 %'S8P%!) M KN]<\(WVH:+%I)D%CN%LLLLZK($6)FD;"J1AC(W7!X Z=_"O&YUVSU_6-'E MNY+:UGO7G$$@<13Y(Q(G&,-A3VZ#TKLHX5SYI)V;?GLOZ9SU\==QC?FLM-M+ M_P!)'O?Q%\'^"_#NE>&;K1+>ZMH-5N5M[VXMIF7*%00OD\*"6;.=HZ$8Y '+ MV5M;G0K_ ,1^(XHIKJ[>0>?=R/&8C&N\!&#C'SA5[D; .Y!\\LM9G@\B^+64 M,]N%PGSM$75@P8J[GG*@\8'M757GP8UCQ7K']NZAXAT^UM[E(-WF;Y)ON(K. MXPJ("VYCACM!]JRR_"57%T:E5RM?5WN]=/Z\B\3-8%*:CS7Z72M>^]NQ2\5> M(9+"^O=!N'MG#71EED+,KS'*X.\GY@0BD9S5S5OBA83^,K"=UO[FRM52-;-I M8MH"G_GH!TZ=B?RKN_&?@K4K[5[47>BZ7K\*/@2QJ(II$[9F7J^%K"SUZRAT_P9J-I>RW**9+R<>7:\C+/'MPW!RISCIPW2BGE]/GY9P; M7>ZM?OJ[K[CIJYK)T+QDD^UG>W79-?BC[2^##1#P+9QD+%=MFXNH,$&%I29 MO))P%8*#WV_A7:UX;X$UB\F6._M#)!=1-Y4L7L?$XAN51S[LN4445L8!11 M10 4444 %%%% !1110 4444 %%%% !1110 5G>)]/35?#NH:;(JLMS;21$'I MRI%:-(V,4#3L[G$:5\0=,331)JT=U!)$2DDD=N\L>1D9)4':>#PV.>F>MI'Y+ A3_N!?QZUY=3&U()VC MMIZGT&$RJCB9I\UDSZ0\>?'A-?\ #>K:=IJ1V&^T?R]T#R^><8";GV;>2,C8 MW!ZU]$SQG5?#C1PS-"UU:_)(IY4LO!_6O@]-?\02SQ:?/J.J7 +&W2WN+IFC MBD!&,QL2%*GU''I73:3\5_%=K=C3!KMR+!;@P1"*7R0R $*QQC9T!PA48)R, M@5G@LQ]M)PFCJS;)5A*2E"2T;Z[Z)[V1Y!XJTK6]%UV_\.7UC<+JL%R8BDF" MV\GNQX8$'.[N"#4#P6^G^2);>;699<$E+UTMT.<$$+\[?FGMDIKEO^$;UZ'3;/5=.TV>\L M+L$+(Q+ND@?;M'EAF8;2KOAI^T#KL.D:1X7FTN/3V6R6*V M:X0S2(JD1Q[FW)V Y*GJO+9./#/$/@SQ5K6E1.?#MS87*3HD<=S$;7>K*^^0 MF3:JJ"J#)QG=ZYKJM:\-'0+W11?SQW-ZUH9YH[=B4483:N_C<., ME54,X ^4.<"1E*@,/D'.,U#X[\4Z]XBT32)7UC4Q9W,8F$9A575DRNUG9"DP MR[$,!GGY@I&*HLD>F11SFWM823B3RH%"RL3@)Y8P'!Y!)#'IDG(KEY)W_P"$ M#U&PU*W,^'-'O;"VO=0G^TO S$/-++O4%0HZ#'EOPH YZ/X=U";9<"0@2/;D [%D16RN=^&&"R@\HRZH-%\0VNGZW>:9I]Q<.Z62F\MHY3=&.!-\R M/][;N#GK@8/J*\7M?'M[KDZ#4[:YN((Q#'\Q1X[<;U&[=L#+SR.>O?4= "!P.,UPXJ&/J.*Z^32T^_7S._"QR MV,KJ?N^:;_32_0^A)_['\&Z%#J%A+8W1BM-PBMRK",X&& ;)PG!Y]1Z<2Z6^:(2NTO*,CEU?:#L'S?)V^8\UY.?'VB722_9?#VH# M4GM&M55IP8I0R[22!AEP,G&3GCIBO1?"'Q(\#>$_!>FZ?KVMM)JMO$WVFWLK M9Y75VD=\!L+'_%_>XKERG!XN$)0Q,FWY[_J:XW$8.A.-6C:2^Y=?3^MSF?BM MJ#Q'3;O1[=&%E,G Q@#*_TKT+7_ (DCQI,)_".FWZVVDN)[LWOVYE)\4ZQHBNPDE@=&!C !&W!4@XS_>/'?K7K3H581Y8VO;? M6^_X'/0QN'G/VLDU&^VEMNUM?ZW,*;6-0@\)W5I&+0PVTBW161$D:20.$7?O M!!0>:?EQW&>U3:9;>(=?N[74[CP'!9:6J[)K^RT>2"-=R[5;(.S[Q'W1GT&3 MBNWOO$_ASPXJ76B27\NGS7*6USJ\D3C'S*54,68DKY6[;D$!>G->VQ:?/%H] MS<:K9/JD,-N9)HA,NZ10-V48\,0/F R,XP#ZE.]"FXSC:_\ D^(VCZO/%:2>7);JRXS&ZJ"!QGYE[TU=)\;F3?XB$KV+SQGRXXU87 M4W)2/$7WBWS*-W RWH:]KLM)\.W4_F:3J.HQ).HVI;;FFC#'(4M QP>.0OM7+8."H.0/F)Q7F8>2K2<>S7 M7U.HTK39(K@^5X6U#5-1LRCAI[-[BU2,')8AV1E 56Y*$#(R5X->B?LW^.;? MQ9OM;B18]9M/WS0,<>?$#GS%^G&Y1TZC@\>8>*/C%_;\^KZ;X9\&S(VH$BWC M,IF$.X$&00*N"X#,%&=JG!P6 -8W@?X5_&!=3L]:\/\ AW4=)NK6598+J\9; M381WQ*06!'! !!!(/6HPM-RI7J0Y'VOG-R7FK:GU-H'@.73/%37D M=ZTFE2*Y,,<@B9&;. 5VX8 D?,'!XP5(J]X>\)7K6UX=9NC^\F(CB^4XC&WY M\Y8JQ /"D#YNA(#-M)KQ/Q!^TYXYOBRZ1INC:.I&5<0M<2C\9"4/_?%D[98KS1/*CU*%/+VM_J[J,$GRI<#(&22K@$H22 M 065M+PYK0EA^T6AD@DBD,,\$Z@202#!:*0#//(/!P00RD@@G\]?$/Q.^(&O MJ\>J^+]7FA?[T$=P88CG_IG'M7]*M?![XFZS\.?$7VVUW76FW#!=0L&?"SJ/ MX@?X9!DX;\#D$BO15&26^IY/,?IUI6HPW\)9,+(F!)'G)7T/N#V/?\Q5VO(/ M GB[3O$6D67B/P[J'G6LP/ER8P4;^**1>Q'&5^A!Z&O4-&U.'4H"5'ES)CS8 MB-_$6L6&K7%I#NMX88XY(C$RYF5LAB2RMC!&,#![YYP.$U;Q&?D&I77R MW#^6L 3]'" M<_6O)O%-O/,WOAV*^TT+>VIVRF,@E+NU=59PVSW&Q@S;9/E1W&(E!ZDC%<5>M[", MY6=UJO\ (^@RU.O3C#I>S//] O+JVUX-J"PWDTTF^61)H9F+2$$L,/@MN&<@ M\9.:C^)=C%:Z7/#9BZD6*&)9C/L!,C8=BJKG "X'WF/!)/.!+X434W6>6RLM M,:>ZLRY>[>%/**2#.UI64 _GD=L9K5T9M'O]5T.&5#+W77O\ (]'$RE6PT7)O1/I;R^>AQGP.F6W\9&1) M72Z,!2!5D*^82PW(5Y$@*Y&Q@0<]#C%>S>$M76UU;6_#&O^ M$H\1:29=&NM3NM5LBZ2"-Y)))8"%(7ON (M6E_!!JMS=_\(T=4\R.*X$:N2JJ'(DR O0\C/&,?4%U M]J4-_P".-.;46D O[1'*RN22TGR;2,<+YH*[NGS+P X1B M-N02NY<[L$KSC)KIHO!NHVMQ;'Q/<2I-K4.\/;R.D\**5D,A$B#() 4,,C)' M)Z5X^%P,,/BN;G3;Z)M_\!)'OYIC(XG#7C3E&UU[WY+S]#VFTTVYDMGM_P#1 M[ZW( 2.\C 91GIO4'<-N1DKGW->0?$G3;S3-8UV-[*1-*N+SSI!;3&6W21D5 MU#*.%/SD E5W8..AI?BC\3/'WA[6OL6E:C#:V%Q"LMM=)91F:92,,6=@<.&W M E-HX! (%5?!7_"4:YX=O?%#>*+#4I[UF@U&QU:_$)NA"5(#M,RJZJCC!5\ MKTVX->W6H.I#FOVZV/FHNMO>,@E1B5.\ME@6W,8@K[MO+9/>NH\ M+PW>D7ENUOX2\+Z3J4"_NR=?M3*N&8[@))PZ<_W3T^M.S"=7#\ MCIVZ/>V^R/3?!?P)\%PV-V]]J>MWSJ%++O2WC8 DG*@,W& <;JO>,_ OB:T% MBKQZ)J=K;)L6:2$)YJ*1MVS(#G@ #(/&!D#BMW]F/Q9;>,?!X>XF!UK3-L%\ MI;YI!_RSF]]P&#_M*3QD5M>+/A=)=:^^JZ%-90PS3F2:WV+#(H8@N Q4AP3S MM.W\>\8NG4>W]7_ .&.3+*U.%5VJN5!!VL3W0C&3@Y.:Z. MSTFULYW%C;X=I2Y,:8P22> .@'85.5344^2DX+SW?Z_B5FF(=9J4ZCFW^'IJ M?G3X-\37?AJZN##&MQ:7:+'CZ MA#XK3Q%/*5;[ MJZQM!DYPKH5P2"!@#;BJGQL^#5W-\4)8/AW#9ZE%?H] MW+I]M=Q!].8, X<%ALC)8%2<#G;_ \S>&_V7O&U[$K:UJ>B:4A/S*)7N9A^ M$?R'_ONO2Q6!H8E\TM'W3LSBPN8XC#4W3@_=?0X;XI_$'3_%.G66E:-HSV-G M;2F:2:X=7GF;!"\J % !.<O?LG_ !6,CQ?#[Q'=ARZD:1-*V=V3 MDVK$]Z@=-X9_97\&VFU];U?6-7<#E4*6L9/NH#M^3"O3?#WPG^'O MAPQ2Z1X.TA)HF#+-/#]ID!'0AIBQ!^F*OV=&%)4ELCGG7G4J.I)ZL;):^$_! M.H3:Q-JUOX;:YBV.EY>Q)"?]U)$(Q'_:\OB"1',ACLK/= MEMI"X)6./ [8)QSCK7@/[4'PL?P/XB_MS28)3X?U.4F,DEOLLW),+'KM(!9, M]1D*?.DND@+RFVFA)W$11,Y4;.Z$'Y<$< MX^:.2,8]S5[0KW4-(UBUU72[N6SO;242P3QG#1L.017HDJ#_ )YMV_NG*GL3Z8)5 Y(KEDM=3>+YD87B_P +Z;XD\/W>CZQ: MI=Z?=+LEA)P?9E/4,#R&'0BO@OXT?#;5OAKXI-C=,]UIMR"VG7VS F0=5/HZ MY 9?H1P0:_0G5=0LM.LC=:C=VUE;#K+L^&KWP[ MXB\0Q:K',,JFEQ-<20R ';)'(!Y889_OX/8_UR!=K@M$U*"[@BU'3Y67#,GS(5>)PMV$6J:3=:?-D)<1&,D=1D=?PZUXU<&:.:*X<*MP(;"RT.YTM-1EAF,EF)D M5R4^;.%.5=@V "!NVGTIW[5^EW0DFX M<]YJ\6^#UOI=]JVHV&HQZDLKV336MQI[(9X'C(8LL;,HD^3>2H8-QD=,'*=) M5HOF9U8&K*G44X_<5KEUAU-M/N+:Z\]9-C(P;(8]L=>M>DZ?H2^%_!TWBMKN MV@FC3?:VSRY::7G8-AC7."%*5\9>+[B#Q5I MVDZEJAMU.GS2Z?"2B1EF:,+MP>&+;B"WR'FO=M=T;2+W1%NMQ&01Z M$U^@.B76E:_X=M[VV7SM+U2T$B*6P3%(N=I([CH?0@^E>C6A[KL>)2J*$DV? M.E_H]O::J7MO%FK72_?DFA1Y&!.X3G"_=7T//)/)YYKQ8+%1G M;D275Z?=W/:KXG"RIVC)M^?]6/#_ (C_ JGU_X77 @@_P")QIZ->6:*OS.0 MH\R+_@2+P.[*H[FOFWP_XOU'1GEC@P]G,$,EN6*#I3FJD'9G->!/ MC5%X=\.7VBOX>O-4%YRT,^HJ;=GSD$IY6X@'^$, >^:XSQOXI\3>/KFQ6[A@ M*VN8;'3K&# 3=RQ5!DDD@9))Z # ^NO"WP!^&&D!'_ + DU2=3GS-2NFE_ M-%VH?Q6O3=$T/3-&M/L^D:=9:9$1@QV4"0*?P0 5S4\-AL/4=2$?>?K_ )Z& MM;'5:L>6H[H^.OV>?!'Q;\/>.K#Q#8^$K^"P8^1?)?.EIYUN^-X E*DD<,I M/S*IKU/QQ^TIH7AS6+O0[;PSK=S?6=PT$ZWK1VJ1NIP3\OF%A^ R*]]:V0#/ M>OF3]L[X;F>U3XB:5!F:W"6^K*@Y9.%CF/TX0^VST-=*G&3M>"V,TA'UF++^2BO-O$7C[QQXHE*:[XJUB_21N87NF\HD^ MD8(4?@*YITV*N'1]PS\O;V/I4NG)OOH5\^.#YQ^\?.U?NQM M>!O%.H>"/&-CXAT21O.M2"\#7Z&> -?TOQ=X7LO$FC3 M![*\CWJ&8;XV'#1L/[RMD'Z9'!!K\U[F,H['!VGH<=:]E_94^*7_ A/BD^' M]8N?+\/:M*H=W;"VEQT67V4\*WM@_P .*BK#F6@'W2BKC)YJ0*@4D_-QTK(U M;6M-T2T^T:UJ-EI<&.);RX2%#]"Y /X5YUX@_:%^&6DK(L.MS:Q,G!CTVU:3 MG_??8A_!C7,HMZ6''70[[QCXZ^*_VM;ABT7AK MP?"F"0)M2N3)G_MG'MQ_WV:X'3?CIJ6M^/-(U#XBZ5HVN:':LZ&S.EPD6XDP M&DCRI)8;5.&)!QCC.1O3C*.X-H\P\/:#K6O7'V71=(O]3FSS':6SS,/J%!KU M'PS^SI\4=6VO/I-IHT+_ ,>HW2J1_P 3TETB2W?39HE MDMC; +"T;#*LH&!@BMB*W7&11*M8N,5N?.GPB_9[OO!'B2T\1S>-KC[;!D-# M8V@6*5#]Z-VA&_@@BOMIX!M]J\]^-?PUTKXC>$9-'OMEO>1%I=/O=N3;R^_ MQ[$'NI&"".""#6.Z'<0.<5T&#.T^#7Q M'U?X;>*DU6P)N+&;;'?V1;"7$>?T=>JMV/J"0?T$\$>)=&\6>&[/7M#NUNK" MZ3/V5K_ .)OASQ"LNB^$]:U?PS?L!?1 MK"4A]!+'(^(Q(H_VL,.#V(BI"^H+0^X]XQUQ3&88ZY%>&_$O]H[PKX,UB]T( M:/KE_JMG(8Y8G@%M&"/]MR6P1@@A""""#7C'BK]JKQUJ)DCT'3=)T.$CY7\L MW4P_X$_R?^."L53;Z%\]M#Z[UFRNK>]DUO0XO,NRH%Y9[@JWT:CCD\+,HX5S M@$?*YVX*7O#VM6>IV%MJ^DW:RP2 ^5( >"#AD8=000593R".Q%?FYXJ\?^-? M%6Y?$'BC5;^(G/DR7#"$?2,80?@*Z_\ 9_\ B_J'PUUG[+=&:\\.7D@-Y: _ M-$QP/.BST< 5(#J!N3/(_^M[U8KSOP[K- MKJFG6>LZ'J,5S:7$8DM;J([D=3U!'&02,%>"".Q%=QI=^E[$?E\N9,"2,G)7 MT.>X/8_UR XS4AM6V+E%%%42%%%% !1110 4444 %%%% !7'_%&SWZ7;:J,? MZ!-F7/\ SQ<;'_ 9#_\ *["H-0M8;VQGL[A \,\;1NI[@C!H%)75CY\\8>' MH-=T35?#5X%6*^@>VWL.(V/W'_X"P5O^ U\%W4-YI6J2V\HDM;VSF*. =KQR M(<$9[$$5^B\UI*D:):LEHHCBM=,TX)%&OILA M4*/J1GGK7U[X9^$GP_T-E:Q\(Z:\@_Y:7B&[8^_[TL ?H!7=P6JQPI"/EB3A M8EX11Z #@#Z5')134^576VAURQE24>5R;7J?%7A[]GSXC:J0]W9V&BPD_>OK MH%A_P"/>X/U KU75-0\6_ 3X3Z?:0C3?$\/VZ2,3RI+&EEO4.L>T,"ZLRRL# ME<'/'(KZ$^R@#IS]*YWQ[X9M?%GA'5/#-T4C34(#&DC#B.0$-&Y_W7"GZ CO M5RJ',ZCOL?'GB'X\?$[5]ZIKXTN%ND>G0+ 5^D@!D_\ 'J\]U+5-1U6[:[U: M_N]0G;.9;F=I')]RQ)IFJ65UINI7.G7T+P7=K,T,\3=4=20P/T(-5OI6B2Z& MP"O1/V?/'?\ P@7Q$M;R[E*Z1? 6FH]PL3$8DQZHP#?0,.]>=BCBF,_42RQ@ M*7!]U.0?IZBKJ*NTD$Y/7-?/G[,'Q.T_5/AF++Q'JUG8WF@%;5I[RX2%)8,' MRCN<@%E *$=<*I[UT7B3]H7X9:%NC&O2ZM,N$(D_NS:G<%\_P#;./;C_OLUY=XF^//Q3UW$/V;?B=JTT4M[8V&B0E@=U]= MC_*+Z]. 6BL(%@7W&Y]Y(_X"M>G>&O@C\,_#^U[/P;I]Q*#GS;X& MZ8GUQ(64?@HKU)$7' %*R>U<;JR?4[))=CXF_;)^%TNBZR/'ND1.VFW[B._C M7D6LYZ,/1'P>.@8$ Z>2+=CG^+^E?I]XGT33M=T:]T?5K5;K3[V)H;B M%N R'W['H0>Q (Y%?GA\7? ]]\.O%]]X=O298ES-97.W N8#D*_UX(([,I%= M5*=U9F3BHNZ.";KFDHQC'!Z5;T?2M3UB]6RTG3;S4+EA\L-K TKG_@*@FMSG M/H;]D#XM_P!BW\7@#Q%=!=,NY3_9EQ*W%M.Q_P!42>B.3QZ,?1B1]EP2\8)P M0>]? 7A+]G3XIZV$EFT>#1(6Z2:G<"-O^_:[I!^*BOH#XD^,_B7\(/AIHS7= MGI7BB9%^RW>LNTH$;](Q)&,%B5X\S<-Q4Y )!;"<4WH:P;2U/H)IUQUK&\3> M(M"T&V\_7=9T[2XNH:\N4AW?3<1N_"O@OQ3\=_BCX@WQS^*;C3X6Z1::HM>/ M3)_@[\0;C3 M8K#Q&T>NPSI;_P!J16$AMU@+X83%@K,JY+ H&(Y'0\=3X2_95\&0+#<:WK^I M:XS .HMMEM X/(/&]F![$.,BOCQ6.+9B?X2?N'L?EZ$8T::6@DTWJ?1'A#X5^ O#01M%\):5:S+]VX:'SIA M_P!M)"SC\#7826G=V+GU-3V[Y[=ZL KC!Y%)[*/_ $68D*MR@R?(D/Y[6/W2>>"L^&/V8/'M]&EUXBO-)\-6N1N^TW FF&?1(\C/L6!K9M+&+N3-Q OS-;.<#SHQZ\#>,26UW$=R2(>>O=3W'4'T(KP3P3^S'\/[%5FUIM=\0R#'^M'V* _P# M 0_YO7K5OH%OX#L8I_"VFM#HJ "[TBWRXQ_SV@Y/[T?Q)G]X!Q\X&[GDXR=X M[EJZ/4--OX[R-L#9-'@2QDY*D]/J#V/?\Q5>VUFWO-1NK&P1[A[-O+N)!Q%' M)@'9N[M@@D#.,C.*YW3]2@N(K74-/NHYHY8P]O/&=R.C\RY7EK8, M/1),G]0*=!XXJ:HKB%)5^;AEY5QU4^HK30FZ9+167 MX7U>'6])%Y"ZN%FFMW9/NL\4C1L1[$J2/8BM2AJPFK.P4444A!1110 4444 M<#XSL5AUYV50%OH?.'O+'A6_$H5_[X-<+XQ*V%OI_B7!']C77F7/O:2CRKC/ MLJE9O^V KUGQS;&31#>1H7FL'%R@ R6"_?4?5"P_&N(U"WMI!/97"BXLKA&C M=>JR1.N"/H5)%9NZEOF[Q)^U191[H_#7A6>X M/\,^I7 C'XQ1Y_\ 0Z\Q\2?'_P")NL;DAUB'1X6_@TVW6)A])#F3_P >IQI, MM4V]SKOVL/AUJ9\>6/B'0-)O+W^WHRLL-K TC?:8@H9@%!/S*4;W;?7)^&?V M?/B=K6UYM(@T:%O^6FHW"QD?6-=T@_[YK/\ @_\ $C5/#OQ5T_Q%KFK7U];S MDVFHR7,[2LT$F 22Q).T[7 ]4%??%FBEB,HP!QD'(/N/:M6^5&C;BCYK\+_L MH6"[)/$GBNZN3_%!IUN(A^$DFX_^."O5O"_P+^&N@;'MO"UK=SK_ ,MM1)NF M)]2K_(/P45ZA'&H ./TJ;8,=.<<5A*I)O30ER;.!^)/@6R\7_#Z_\(ND-M%* MF;,H@5+:=>8W"C@#/!Q_"6%?GAJ=C=Z7J5UIM_ ]O=VLK0SQ./F1U)#*?H17 MZD31J1CUKY _;8\ ?8-9M?'^GP;;>_86NI!1]VX ^20_[Z#!]T)/+5I3EK8J M,M3YNI*6DK8L.AS7W)^Q[\2CXO\ !H\-ZI<;];T*-4!8_-<6GW4?W*<(?^ ' MJ37R1X0^&?C[Q8J2:!X3U2\@?I<&$QP?]_7PGZU[_P# []GWXA^$O&&E^*[S MQ!I6CO;29EMHBUS)+$>'B<+M3##(R'..".0*B=K69<79W/K=9T'?M39+H!&8 M#Y5&22> /4U\:?&']H/XJ:%XIU+PLFG:1X>GL9C$SQ0FXD=>JN'ERI5E(8$( M."*\+\5>-_%WBIRWB+Q)JFIC.1'<7+-&OT3.T?@!6$<.NIJ>+].,R\&"TM;6"]4G6 MCY4_A/I"0 MW$6B'6V95>.YU&Z,ZN",@A5VQL",$?*>*]9T?1]/TNT^QZ98VMA:CI!:PK%' M_P!\J *^:?V+?BJ-0L%^'.N7)^V6B%](E=LF6$#+0?5.67_9R/X17U1;L&4? M,![FL:G,F6K,:+5%&0.W2LWQ%H6G:WH]YI&JVD=U87D1BN('Z.AZCV/<$<@@ M$]9IR3*3/S7^.'PXU#X9^-9M(G,D^G3YFTV[*\3PYQ M@^CJ>&'K@]"*X(X&2,U^D7QJ^'VE?$7P7<:#>LL-PF9K"ZQDVTX'#>ZG[K#N M#Z@8^ Y/A_XU'BN]\+P^&M4N]7LIO)GM[:V:4J?7*@C:000W0@@UV1E=$2C9 MG,Y^8CL:B7>C$],7"#WCME?;]'*U[9 MX#_9@\ 0Q+$_$ MET/^$BL8OW$TC_O ;NS5Z/XP^,7PZ\*%H]8\6Z-H9MELCM*C##*TAR[9'!!-?' M?Q9^#VJ> ?B-;1:%#-.67 A/B'6;:P9L]"+?>9"#[E:\6\6?$CX]^*;*>?2M0 MMHK,!C)!X8N;>61% R23%(\X '4^,/#VI>'/$NH:5K43K?VDNV?#;U9F M^8,'_B!5D8-U^;I6:R&WCBG5Y+>7 FAVG!^\5+ YRI&W]*TC!(EQ/H_]E;XX MRF:+P#XVO7=Y)2-,U"X",?1.JWD0\26JS3K&L<0$: M.V/WC-(.A[D)Q]#CO7Y_Q7EGXETBYL=739K-K ]Q8:@L>&G5%+-#-C[^5!*R M?>!&"2",?3W[-^J:OXL\(VNK>,5:[6)4M8;MT)9A;2EXI">2TBL6&XK>)=)E>&_EU-WM%#E'NDD2$" JX&/DQ)\P8?,@*DD8]@\6:[JU MG:V]YIUH][JL7D&XTZUG\WRE!W2$%5._DA-Q 4]> #6#XH\,VWC.+3]8\/:Y M>:3Y\;78TN]A:&*9Y.1*B'!SE5)(W*Q4 , !6T))?$.%K'4^&_VEXE-O9:KH M5_=7;*S%(X'CE954MN4%3&R[5+;RZ#'.!71-\6;_ .(%U>>"_!OAVZMM0D'V M>[O[RYC,-EN!+'-N[[G"@_*&7!P"0:\:T_P9XVM);Z/7=%MH[8Q-'9RV\T"1 M/))'Y',?F90A"Q"J#EL 5[_^SGX1MO"G@^9I9;:6^FG=[AHN=A;#')ZDDG.> MX"XXJU-J5Q?C:S":U;W.W$=_";1R.TJ!GC/XCS!^53)71%2-T?''[:'AMTOM'\7P* M?*N5-C>$=/-0;HF/NR97Z1"OG.OOCXO^%3XO^'>LZ"D/F7;PF:S&.1<1?,F/ M=L%/HYKX(Z<55.5]":)_VL-/A#1>%_"ES=-SMGU*X$2@_P#7*/)/_?8KRCQ3^T'\4M>WQIKX MT>!L_NM+B$!'_;3F3_QZLE3?4SY&S[PUS6M*T:T^UZQJ-GIMOU\V\N$A4_0N M0#7AOQD^-/P@U+PGJWAFYU.YUU;ZW:$KIUJ6$;]44R.WU)Y-5ZM4TBU$^MOAC^S1X%U+0M,U[4O$>J:[;W MUO'5((->Y^#OA;X"\,!&T+PEI5M*GW9WA\Z8?]M)" MS#\#7@7[$'Q"+I<_#K4Y^8P]WI1<]5ZS0CZ?ZP#_ *Z5]:6A!3 K*K*46#O< M5;;<0SG:>\"[>15@?=I3TKFYFV:(^:/VT/AB?$'A=?&^DV^[5-%B(O% M1?FGM.I/N8R2W^Z6_NBOBHGM7ZP7*(Z,KJC(P(96&58'L1W%?GE^TO\ #5OA MS\0I8;&-AH6I!KG36ZA%S\\)/JA./]TJ>]=E*=T)H\L% K2T#0-;U^\^QZ%H M]_JEP?\ EG:6[2L/P4'%>O\ @[]E[XFZWMEU.#3_ _ >)-7U/7)1]Z*/%I" M?8A2SG\'%:_QK\!_#WPM\(KO1].T8:*;ZXA2%M..+B:123AW8DR+M+C:Y(RZ MXP2#64G&6A<8OH=_XP^+?P[\)[UUOQ;ID,RG!MX9/M$V?0QQ[F'X@5XUXR_: M\T"WWP^%/#-]J3\A9[Z5;>//J$7*?AG#:1KX;T72;.X&(+ MJ.VCOG:0#YE>>525D'HH0>FX#--O%RZ;)<3W=I>V?F!'CN]*MKB(D@G: M=\9 .!GC'2G&G'Y M4#G9C)^A!4'ZBG42Y&B4K25S[&^%7C;P_P",-%N)] 66"*RN#!);R1"-H\\J MVT$C:PR0>^&!Y!KNHGV0B3Y3EL#W_"O!?A'\*O&7@;Q7JMUHNO\ A[4M(G#V MPBFEEC:39)\DC!$8*ZD2)U(Y;%>S3R:S8V$,NK:;#&NT^;):3M,L>.26#(C! M?0A3TYQ6$H_RFJ;%U6YFM"=0L0&N%&9(1$9')"K MOQL8]R 20O/<9X#Q'):>)_!%EJ6I7PM_#&BQI#I48VK)J,BE8Q=2NZMY49*D MHJ ,5.2RYP+IIIZE)=#Q;XLSS_$GQ%97MM:6EEXB@M%M]2@$T<4%R%YAN(FD M8??5@NPG(V*.>WGYT;4+F[&G6FGW;102%9]JF4P,65&+X^0#(&#\H(V\]Z]F MU*#1KS67M'6WG6(I9S37 )'1I9!*GKH<+XA\,R^&!%= M/J.F:D4MP;AK"?S889W# 0F4';(X4;B$+ ]3S7T+\#+76_A]?6)2:R;0KFW MM[C58;F9EEMY_*'S;-OR%) 2=V 5<=P-NYX!^&%IX=^#NE2ZEI]K?7]Q<6EQ M=3+&KM!;S30B18W;H?++98$'#'!P!7LV@!-.ED73K61[59&2:*!&+VSG+-MP M,D$D':23EB>'KG4+;^U!$HD^U"TCW.2%0%]S<^60D!< _>\T#&37HFOV'AJY7-W M!%:7 42;L>3)QT;[O!YP#M[U\V_H?$NE:W%%;S+.(%D@UK[\ERD<@9K:4 MLJNRF,JZN57F+;RH6LX1CL5RW.$T>#7;/1[#Q>MY/%J?B-[B_FV7:VX4M*57 M]X67$;KO Y)1XUQ][!Z7PGJ^K:/#/''X]M&6XED:?3KZV-U:S2.02V9MJ!CN M.2,#CH$]NE:7HOA]=/N=/M5L+75+NTBF"A?,((N3A]SN"33[B*6)>"6<"()$,[@Z]-H?FRN@N;"9I+25"=\CQ@3%;?;C:1M"'@!:^@/!-Z!IDUS" M'LTM+LP6Q0C;,J1H"H X9%+. /7>1@C-?/\ H!L]0^+^@>"M)O[F]T^43R^( M8IMWDBS5=\>Y'C38V%!W@MM+J0YKZ(\$:-!_;FJ:'JLUU>7%E'%<6GUK0L83;V<,#. M7,<:KN(QG QFM&M+CE%I*Y-1114$!1110 5E^*K%]0T.XAB'[],30(0Z M_F0!]#6I0: /+;E4E,%[:L5CN8UFC/0KD9_ C-?&7Q9^#OBB?XRZUIGA+0Y+ MNUN=NI0[&2..&*=F^4LQ"J!(LB#)_@K[DO[/[/F*X_P 61#2]>T'Q,WRQ),=*OV[>1L5JC74H]C]U/R8UZQX5_9M^'6D[)+ZSO]X) -P)7I5A(P/8"I=63V)=5O8P?#OAK1] M?(T/2;#2HSP5LK= M8=P_VMH!;\"/^$)^*=]' M:P>7I6IYOK$*/E57)WQC_L7BV6DZ=>:A=/]V&V@:5 MS]%4$U8R;POK>H>&_$6GZ_I4WDWUA<)/"W;]?#_AO]G?XCZE;K>:M:6/AJR)'[[5K M@(WT\M TF?8J*^@/AGX'\;?#WP#:SC1B]QH^Q_$O[5_AXW::=X-\,ZMKU[-(( MH#,1;H[L<*%4;W;)/3"FN!^,OQ/U?43#I6NP>']3U.QE,LEFFGI+8V M6E[I\Q@NK6U\J*U&[+1LD2IM *C&,=5;MBO54N]6M6$D4\%_#@?N94$Z]:^/OV1O%L6@^.KC3+RY2'3M9M_+>60[(TFCW/$Q8\#(,B8XR7%? M74TZ)'OWA0",Y'\.,YK*HFI%^AU6G7,%[:)V'AO4K")K@66IA)8 "0RR $$COAHU'U:NB^'M]/MO#+=BZ$I$Y88VHS, M^%&/10H_ 4WXL7"OX-?$689R\8*X ;S0&B8?-T5B>#G'!KZNU3Q.VCZU>O/IUINAA7?>W*S( M3 ,,%%Q"X9?]65 *E206+8! 7Q-XD\-7QL_"=_I]]#:W%ZOVVWNM2?4D\F/# M2?).'DC9MR*K)@_/G/'/;"-E-%I]A,%GAFNV=&GQ M@G9$@:1E!R-X4+QU[5Z!\+_#_AJU^,"? MA!X/\)70U&WT^[N((XS!>&:Y:61U8J5D.2%&UE_A ZDG@5G*3U3->6$4=OI> ME6,FBV]YH5S;3W);?<75D^%W&3=(/+R64#+?+U&3GFM2_L;J>SU+4M.U<$H- MT+*N]A@ L=X/UQQD>]4;SPKX9UV&/4;!KNUN,GR[C3]0EMYAS@@[6&.<\8*^ MQKD/B)X9UO3O#%W./&FKP1S1A)[V-UM[R-0WRN9$5!*B[CN^4-M)(;(.'+"VGM+F[FO&LYI96\W[-"L,;3RH-WRL4E?!.1]_BN7 M3Q?JO@^\A\(ZO9:?)H^BVSVK>8[8OHE)","/XR!L*\!6!!(W@CB=*T^YG^+F MH0V*3Z7:^'M-E3-[B66%+J MYAFC\\*V#M+((YR*W@K.R+BVY=C>\*ZCHMNJWT]K/H%K(\D:2P M&9X77)980[.^T\#L#COCFNP^'5MX46K8/7]TL)YZ@BG"QTGQ M;R8'U"&,O&J\; S+D$'L3Z]2.?%/V7OB_>ZX;WP%K "C-@J,%=I920PR*Y?XA6^G2-INU[JULGOH+.\"VK,"LI1?+WL5Q_ M'E^>,GOBK_BW5]7OO%.GZ)!;?9!>1^?)=R72?+$H)V M5G;:EI5]._VAIV:6*/S2C2"%F($2F0.2N4;MEOO4^7Q!$=6/AV6VE,5K%_I. MG2RFY$9X(:RDWOY+J!N W,&!97)X6M^2$U+0GF35OM]G>7SHZDQ M31W#RJRD21KMRX4@G(7H<'!(%=!806-AY&OW.H:@T3V<<*LLFT1P*)=I/ECQ_>RPZ%F[8K"<7'5 MD3I\L+V/2K.YT^:U^TVUU"RR\[S* YQG/(Y_7BBY6%T^2V$J E9$883;W/ M/'^37*Q^%UM+ G]VAY$8/.%/<> MG_UJVQ7"^'OM=I+]HMURVU8S&6.V1%Z+D]&'.&_ \8QVEI<1W,"S1$[3V(P5 M/<$=B/2M5+F5PB:AH5\2MO>P/;2,/O(&4CXZUQ[2-+%%<.H65UVS*.BR*2KC\&!K&JG>Z,:JMJ8O@/5KG6O"UK=:B M%74XB]IJ*#^"ZA8QS?@74L/9A70*PZFN(ANH/#GQ#U*WGEBM]/UZV_M*.21P MB+=0!(;@9/ W1&W?_@#FL'Q=\=?AGX;,D=QXG@U"X3/[C3%-TQ]@Z_N\_5Q3 MM?5$6=[H]6+KQ3&D+' &3Z#K7R7XM_:SN&#Q>%/"D:#H+C4YRQ_[]1D8_P"^ MS7!S_$#XH>/+::]U[QO/H6@9VR-;_P"C1N#GY%2(!I2<$8.X\'KM;%JF^I:@ MS[(\7>-?"'AA7_X27Q%I6G8'S07$RF5AZ>4,NWX+7RSX._9\TWX@W^H^(O#? MC"TM_",FH3QV.RVDDN516X1T?8%(!&"221@XYQ7G4;^!X;Z.*R\-ZEK4A?F; M4;XQ"3URD0SZ<[P?:O1OA_\ %U? OF67A[PAI^F6ES*KW4,=S<7$;L 1O5)9 M,JV#@D28.!P<5<866AI&FTM#VKP;^S7\,=$V2W>GWFO7"\[]0N#LS[1Q[5Q[ M-NKU[2-(TG0-+:#3K&RTFQC71/ M%@2Q;]P&1V) /U! ([;@0Q[.[CBO;&XLYB1%<1-%)@\[6&#C\#6,W).S)E=: M,X#X8:I;^,-.3Q=))YSWLSF"%ONV**Y58E'9AMRS=2Q8CC KJ[EGCG251DJ< M\\BO%OV8;>Z\(GQ!X*UZ]7[3I5RTDN\X$ &07Y_@90D@;H0_L:Z&[^,GAF34 M?LFC6MWJN "+@12"%QO"Y01I)*PSW\L X)!(YI2A)R]U&C@^AP7[9UO%] M$O3!;O;IJ,DY K]57$1?&?1M#D\!>"-4TRYN7O)]/ MF)6X=680QMD(2.I4EU!& P0G:"3GVC]HC6X==\"3:6(XK:]NIX9[ [W3#*^U M@R31Q2+E'D&?+*<\L,BO$/B+.G_"L]$@ALQ,=-C:WDO&CVM&9GED\ECG&06D M*@IV4S0W-I.D\,BG!1T8,"/H17Z":/X M9\"WVOW7BW[#:W>L7%G!((EEC>.#YFB^*_" M_A1--A\3F_N-),:P6.JPQK*EH%7'V><1YD#A<#<=RMMZ!LDYU4VM-Q15TSV+ M0A"V@R+?C^SHCB,12SKYL9[6QL ?F$" M[8MI8#;'$#M5V#-]TJ,@$@U1TCQMX1?P9-=1?$/PQ/>[C)$&U&.':I.?+(,@ MY X!('N*S/&GBN+7U73_ P8KZQA>-Y+QB1;H.IJZ#H6E_98[^WA5'8+'YGF3R#<0I\MM<9XD\>Z=XJ MUI/!>CW&JV&LATN[>:^L#:1R&-QE%$^TOE225*@%00#D\?+EYXM\?PWV6)P2&41QE57!!& .*]G_9^U_QEKEOJ]KJNK:EK1LQ;S6: M7-YY\T;;I ?*$CXD) (V95L#Y2.0=XT4M36,?>NCJ=6'BO59M7&JZ/8Q:B1" MBR1%VMIH"=BNL/\ KDVA) J.,R2$]:U_%M[#:>*-%U<:;9VEEH]S/;7@:.> M+,-R(]MQ)NC&"LB("%M76ZTG08_%>I7]Z?(1([.Q\H*6R9&"PK/A3 MAL8P<<]ZJ5--76YJYSBN5GIG@B6YWW,[/;%&)8&&X5PZ XRK$+E0>"<8'VF5WM]^]?LZ/&$D)8X!.>1D;B!@5W/AG2/+:[O+RVDS@+'=65VQD?U M+8;D\+TZ^G%YD6FO2-J9TV*%Y+]TW&"#.GW&WYB2(9P-PZ#W=LWA^2>-[RYTIU<1D8N[HW+_ !1XCT^R\,Z1F+5Y;;=J M6K7$>R*V50%:58SAI6)(*JHV9(!88Q51:WL:Z8%B#PV#GBO/O!>CPM=7]O 9K!Y]!L(TLU+-B3("R&0L.3)YKR/O'1AZ5\ MP-'+H?B.ZL);ZYD^PW3VYPH.!#F,#:S9Q\O8UT49J3MV)6LBUXB+:9KL/V&3 M$11S(IG5,9!W?*WR'(QQR&P!WKJOBCJ&G:3^SU96M@3%J&O7GGW, C!.]WES MM_NH%5E4#LW/:LWX>^!?%?CO7YM0L]+6^L(Y/+DGFN$BC1SDA<$YQELD*#@8 M]17TIX+T2ST@^8+*QENX"L$-S';*K':BJSJ2"R[BISR,A5R*TJS5RJCML?*G MPV\%>)O#?A34O&5WIU_IUW.RV%A'/"T3E948M* P!(RBJ.QRXKW#X8^+]?\ M"_PU\323:7,HMKU'L+2XMWB,$*]$\:66KZAID\%E+8 M17\JK&AFMS/'(AD1Y(GC&?,#(I4+C(+ C!JMXLMKR#3[/0=+TZ6'2YK<&2?[ M4MM';(AXC$+()#D*%QM& 3SQSDI!9?$QMII]3U>!57RP^ZVM MW*LI&S+ N!]Y067TN)[6--$DLHX-*F@)9"J&;M4AN;621K:*) HD&R0Q8QRRH65&0 ML5"@. MUJJ;=KQ)7+*I9G1P&^N=>UO4+?5SHEWOD\QM/O8X)YBY^4R1RDVUR1NQO#AV MZ;F(+5DKIWBNPOAJ"^)U-M)O(MVTN339KWY"9&$,1$;\*275LRDN T]M;-IYMO*C(<*=H2-F. JABI'S@DYQ1SQYDFM6=JPR<7)35E]_W'K7 M@2/2SIR:WX9:PN/M\)DM]26T7,H(X+=6X8?,I;JN#TKSK^R]2\-:K;FY=+>\ ML6,T3_,0V#GY1QP<'*Y[]""*\J_9S^*[?#_Q -)UUY)/#=Y(!<*/F-I(<#ST M'X ,H^\ #U45]YP:;I.LZ;;2R"WOK25!)!(A#HZLO#*>A!&.>XKGJ4WU,<)C MG0D^9?,;S&[_*N%'3)NWFM^#_#UTVFVY^TZD!D MZ?IT+7%P/K'$"5'^T^![T"X\<:N ME86/A:S/_+2\(NKS'M%&?*0^YDD]UIQ MC))\SW,L3B%6LHQ44NW4CTB6Y\/:O%X=UN9[BWNFVZ5J4ARTQ )^SS-_SV ' M#'_6*"?O!L]1MD@F,\ W.<;X\X$@_HP X/?H>Q&)8>"M*2^@U'59KWQ!J,#B M2*YU.7S?*<& M_M,^%3XO^$.K6\46^_TX?VC: #)+1 [U'UC+\=R%KX&K]2;Z$P73H5#!3D9Z M$?UK\ZOC;X2_X0GXFZSH44;+9K-YUD6'6WD&^/GO@':?=34TI="(/H<[X4TI MM=\4:3HB2>6=0O8;4/C[OF.%S^&:]4^.6C3Z5XOALO*\C2HHXS80#A8X2 %4 M?WFPH#-U)7Z8\GT#4I]%U[3]8MN)FVNA]"#WKM_#'P9\0>(K0:]>WEEX?]EW7(--BO;+6K"^+IN5+BS>V#9Z8D5Y,9_P!I<=.E M/F5KFM[*[-']F6".UT74M3&/M+M!&@7N5WL<_@0/QKZ#%V%/#<5Y#X+\)I\. MO#FGKK;K;ZA>S;IHI)46.W4(?FD8?+D!=HYYW$U7\4?'/X=>'U>.;7O[4N5_ MY8:7']H.?^NF1%^3FL))S;:.>7O2=C*^.OA^_G^*L.LZ,\\,FHZ*(KB2(LH< MHSQE'*D$JRO$",\@>H%>=Z%XT\7>'-*^SV+SZ4P0*5LF18MB>4RR&,KEMY<$ MN7+-DY-;&D_%0?%#QY8QZ0]OX6N=(AEDL9[^['^D[]H978;!&,#/!)ZD'(%- MUS1+(^)],&JZ]#8-<6;I+Y-Q;ZA;., Q#8/)S]X^A%=#IO@G^V[2*^?4K#5)3!( MBR0H]C:QH\"1/YC+O?)"#[N.7)'8BU)?Z!X:\2Z$VH>,-S7$<]G)%;67^C$D MQLHW&0L@0K@$J22[[L;CB9WV1$I+8W?!GPD\"^&K9)-$\,:='=*,BXG3[1/N M]0\F2I_W"=I!'"LP" $E@R$+N7:3AH_G!)SA>_ M*FV]2J4.=\MR_P#\*]^$>IQ?;/\ A"M&F+_-O_L _ VH^-;Z>_DT07DTFZX^TZE>6[328Y8>7%M5CC<>&Y/? M/-&X^%=]HNCGQ1\/[^TU*WCA>XN-.^V)?I<1(0S*DBK$Y92N0"BNI!VONX.L M(]*M_%MWJ_VF[T;5$NFN;Q7OX"TCNYR8MZAEY&>=PQCJ,5W/@35$G\5ZKJU[ M<2+_ *('O);DY01+U8;<6Q@[,]:TYG&)I[*SNG8XSX5:G)K5O]LDC\0+ M:6\S-:I:W#M+=,8RLJQ/OB(1-T6]=[$E$]Z[_7?&'@^V^SZ7KLU] &^9;2[O MQ]K^8_,TB6\YW1J,?Z\ +@G<>E?%'Q=\7W'C'6_M<-LMAH%KO@T73TXCM;<, M.@_O-U9NI;/H!6E\%/ 'B_6/%^AZM9>'KAM,BOX9#I]5?#:R:3PG9O+:?VX^G11V#6L4F/(N(E$?F1,/OJXR MV.AWYKV;PS(AT,DI-8[*^$? ^M^&/B+=ZEIUVKZ'JS M>9/8R,5:V8$'*@_(P7)0CY6PP.. *N?%/XEW^E7":9I&A74MPR$22WHP,GKZ5\L-^T!'X4BU#2_"VAQZGJ=Q=,)M1N[AFA?:2L81%PS@#G<6&2 MS''2M:.\\0Z1\-O%OBK6M*6[FN((Y6UC4';STE!5;5+<< ;9)-_IM4CGMX+\ M+-*TW6_B)HFE:LSIIL]R%NV1@"L6"6()Z8 KIITDEW%*5TD?1WA?6=;MM UK MQC+;7EU::AK#2#[5$8(E9L'S%G57\L$#:4==H93\PZ5R'CV/2_$6NVFJ2:+X MATYI<2ZB^G-#J64,859%12NWA$R20#GIG.>]G\1>-_ >J0VNNZK#::;J.QR1 M!FQN)PW[S:P*M;R%L-)$07#JVSAL#+;XC:#<:J7U?2;N=II!#@8%>I>&(##=&U#LYC089NKDXRWXD$U\]?$3Q5HG@V_A\ M36EC<6@\I6L]'OK^X:6YG\U0\SP''DD1^9\[C!8C:IVDU]&_#>]TKQ;X=T_Q M-H$R3V\\):&0\$?WHW Z,K#!'J.X(KDK4[$S=]CG_'&AZO->!+>"=DVBYGDW MC&(LD; Q"Y^ZNP MYZGC'K[ZS!:IY.K65S:Y&-_DF6)O^!*#@?[P%4X-:\.IY_>0S 9DMIE'RRI MGH1GGU&0>IKX'\;?#3Q7X2\87^DMIDD]SIY$LBPQ,R&(GY)$S]Z-NV.1@@@$ M&OTNMDE8M>72>1\IVQLPR@[EB.,\=NGK7B7[0.EZ!\3-'%GX/N+W4/%NGEOL M%[HZ%XHB3AX9K@%8E1NZE]P/(!Y!Z*3Z')='QQ+\0_&.IW]G"PMKR]A"16[S MV$=S@( [ 5SFO:SJVMW*_:_GGDP'V)AIVZ@MC[QYZ_2OK+P M1^S!XANK=#\0?&\T=N5P^GZ/\I*G&5:9E'' R I!]:]T\ ?"[P1X( _X1?PW M:VEP!@W3*9;AOK*^6 ]@0/:JE4BMA\S:M<^(?AU^SG\3O&!CGDTD:!8L ?M. MJDPDC_9BP9#_ -\@'UKZ]^&'PA?PKX2M_#>L>-=K!!Z)U_.I$C13D#GU/)I]%:)) %%%% !1110 4444 %17<$5U:RVTR M!XI4*.I[J1@C\JDQSFEH X01S&P1)B3K%#A6_P"!+M;\:^:/VY/" M!N="TCQK;19>Q?[!>$#GRG):(GV5]X_[:"OJ[5;81:\RX BU"'(/_3:,?S9# M_P"0ZY;QSX7MO%_@S5_#%WM6/4K5X Q&1&_6-_\ @+A6_"LG[LKF+T=S\Q>] M?6/[!FM>?I7B?PK>()+82PWD(<90,X9)!WQG;'^5=E\$_@3\,6\*:9KEUH,N MJZD\>V[35)_,6"YC8QS1^6NU,+(CCY@W %>US:-9V.C)!I\$6FV]LZR(EK$L M:18ZD*H '!/:KJ25G%E\RV92O+6VFE%Q)96TSP[8X6DBR4'.%!## ]@,(_$-U9Q8T_2]$@B0A9;L&ZNFSU&R*18T!XZS?4 M"L$FE9LI4VS*^)FGVVIZVEAJR37-C>.]M,CC:JH8)08XUZ[L%V+GDG']T5\& M>-_#UUX4\6ZGX=OCNFL9S&' P)%ZHX]F4AA[$5]R:A9G5M2M99KB^N[I&>2. M.!T1A\C!Y#Y8WYVG: 7<#)QBOG_]I#P__:'BW3.-]S>::OV6Y(8.[1LP,4F2 M=Y 9,,,$ @'(&:UHZ:"LD[(X#X):.?$&LZCI5O#NOQ:_:K-E0LY>-@&0*OS$ M,COG:"PVA@#MP>TM-,\0)XITRSO=+UU;::4Q6TPD9[4AR$4JVUEV_>!^?.,C MC%>0^'M3NO#FO)=JLBR0L4E17*..>=K#[K @$-V(!YQBOI3X/_$WQ+XWN-4L M]4EAU:TTS36O!<36ZI>RF(CRXG93\X+,3DYY'J:Z&[*Z.B,H*#ONCN_&$'AS MP9X7MM,U'6IK>RM8E66&) IW%=V6D=@LLSYW;0K, :9Y=6D6-K@ML#$ .>,QD=1CYJ]" I!#'(;.[&2:ZCPU\'?!.EW5D+FUTX:IGS8'OKMKJY=D M ^=0Q(R,#E0,8'I4>TC%6,>;ET2,;X/ZWXE\.>&(K+Q/::S?::BH;"YM](O9 M)8HBHQ&Z"-E**.C+(QP<8/;TO0=8\/ZOY&H:5=6NH:9MP>5;P"*.0A5Z;G9C^;$FLCQ M?!#?>'KC36A:=+G;$R(?G*EANVXZ,!D@CIBOFSQE^UGI>DN]CI_A>]O=6@'E M79GF6"!)P,.%QO9U#9'\.169\$?C#XK^)WC#4]*\43621?8S//$\3+XOL$LK::=KB:W@-M?W- MOE8XO,B\M22#$P+-P,Y^;C/IFO>"]#B\/:MHHOYK,:E8I9SK;#9Y1F81;5+$ MC>P=E QDY)QQ7C=AI/A>ZO(+7Q&WC"REM9Y1##$89?+#R%]@(0LW)/(!)/.< M&M?XYSV'@SX)W\&BV^L::;BYM'LI]1E,<[7"SI*ICB."NU8G8L54?= R8"JGC^!5KHO&E\MUJ4&E M"\2WEMX3=[FP2LC+(D17/RY'[Q@&(&5'3%9'P*\=P?$3P+9ZW'MBO$_T?4;= M#Q%.H&<#LK##CV;'\)K>\<^%[B]N9;VR=4NVM4\GS59H7V(MKK&G7$5^DNQXQ;/(A/(S'A=^>N5 )4= M?4ZC7-AK$RI:78BECVF0>>UNXQGAE*AL?-Z]J\9T_P =3Q:A]@\0:9*+VV2- M/,NK=H),!0"&EMS()@#G:PAPP&< U3QWX?; ;3-1U"5% C6T6!8RYZ %X M(I44GGCFM%&ZYCIEA:B>E[&)^U;;Q^-/#R^&/"T\5YJ4:O?R0VZ8618M MI905&'=B_')Y4C +9KXZ\#Z_+X8\7:=KZ6L=V+.;=);R'"S1D;7C)[;E++GM MG-?=/P]T[6-6\7KK&J:2=*ECM/*AM@I4)&TF[<02S;B47)9MV1@A=N!X;^V5 M\)7\)ZN/&FBVJKH^J3$WJQIQ;738Y/8(^"P]&W#NHJHSN^4Y9JS-+1?$.B^- M(-0NM0N+JYCG9I%N;%-LF"6)$\14\J9!E"VPYRI-9%SI7AS5_$AN]+T"V5@T M@9%L-D,DA^[\K,5Q].V<#I7D>EOK>A^%_/BCA-G>(90RY$L?)7.>,'C(;D@= M",FLNX\2>(KW3FTZ[U74+JW=AE);N5PQZ#Y2V.Y[=ZTFN9IG?#&Q4+3@F['3 M_&S7[/4-3M]'TVVT:"VL%VS/IEO!''/-SEMT2JK;5(7//.[DY)KM?V1?BY+\ M.O% T;6)F;PQJ\H6?//V28\+,!Z= WM@_P .#S/P]^ 7Q-\:&*:TT!],L),8 MO-3)MX\>H4C>P]U4BOI;X7?LH^%O#T]OJGBK6;W7+R'YA!;9M;=6_ ^8V/7< MOTI2FF]3SI/F=SWK7O&7AG0Y([>^U2)KR9=T-E;J9[F8=BD,89V'(Y QS64- M6\;:T<:+X?M_#]HW_+WK3;YOJMM$W_H>A=78?WJZRW@B@MTA@BC@AC7:B(H55 Z < 5* Y^ZH3W/)I1 A.7RY_V MCG].E*S>XRON0D^6C3'_ &?N_GTJ2.*9E_>LJ _P1_X__6%60,452BD%R*&" END -- Cut Here -- cut here ShiteNewsServer - We Post our Ads at the end of your messages! Whoo We are Grate! Yes indeed! pan-0.162/pan/data/decode-test-cache/noisy_2_2.msg000066400000000000000000000157141475412772400215700ustar00rootroot00000000000000Path: e3500-chi1.usenetserver.com!e420r-sjo4.usenetserver.com!news-out.usenetserver.com!e420r-atl1.usenetserver.com.POSTED!not-for-mail From: charles@rebelbase.com Newsgroups: alt.test Subject: Decoding Test 4 - security_guard.mp3 (2/2) Organization: Lazars Android Works User-Agent: newspost v1.13 http://www.ccs.neu.edu/home/jfaulkne/newspost/ Lines: 1210 Message-ID: X-Complaints-To: abuse@usenetserver.com X-Abuse-Info: Please be sure to forward a copy of ALL headers X-Abuse-Info: Otherwise we will be unable to process your complaint properly. NNTP-Posting-Date: Wed, 02 May 2001 00:02:09 EDT Date: Wed, 02 May 2001 04:02:09 GMT Xref: e420r-sjo4.usenetserver.com alt.test:889336 BEGIN -- Cut Here -- cut here M*+)1 ">K=2?J>IJ6BBF(**** "BBC/.* "BBB@ HHHH **** "BBB@#-\20O M)IK3PQE[BT87$('4LO51_O+N7_@59L@B:59H6W0S*)$8="#R/YUTAZ5SMO%Y M,5Q8XQ]CE(C'_3)OF3'L.5_X!6=1.UT9U$*9&Z/$+% M=3N->U.Z^S&>Z-Y+I>V(\Q10I%Y: GHC,S2'IEGYX RI/"WC>\L[B\BN=!T M2UAXDN?$%I'J6GS16PE$$ ML*".[^4\<0PQ2#/ PQ(/2OF'Q)XCU[7I_MGBC7[K4)AEU6XE-RZ#^Z,_NX^? M[JXS73"":NT=4$I:V/KOP_XJ^%W@RP-I;^)["]U$(!=SP,]Y+-+U!=D#;47! MPO !.< XSY]\0[WPC\0["UT_2KR,ZN]T1I-U-;NJ)/\ *2-Q ^0Y16ZXW XX MX\6\&ZMX,@O$;5K6ZOF1E98E4R[@/3/R\9Z*.H-=W\4?B'H\NCV&E6V@-IUG M:VEQ%!'$KP,K3M%() "BCAH\Y7/.WIWZ?80?O7U)E;F/'_C/X7N]"UFWO9A; M-'?6\1WKH_V4]1^P>-M452#+<:8R1Q;N92DL"Y?B";NUO[FXTW3;"\8WES'"K--.6("*"1\Y D9F/W< M]/F KW?X._!_X;Z!>175GH9O+Z-24O+Z&&*[_1#<<2V=J\#,N3 M%-&CL3CC=)NW9ZYSN]NE69WC+?*,'"[ 'M6,5T#="$HLK@&1'?Y5=VZ#:9" M!V(7('!KU*XLY-0LH[6Z %NNTLLI#M*5((WXXQD:_$[1-/OO"]]I!O M9(+;5()M]Q W[VXD9#&'R#]Q XX]K/PZ^VS^.](33KRXM+W[2OV>:"39(K]BI[L>@' MLK5=+N_#OB2_T+6(C#<6\CVUP.P(/##U7(5@>XQZU';17,%_&8RT4Z$, MI5N?9@1^A%;HJ+V9]3V.O:WX7U";5-(UU+Y[V?[1Y3W$\23;L?.8DF"Y8 ?= M5?3M7@?Q8\:^(O'7B>2]UW4OM:Q.T=ND:^7!&,_P+D]<#)))/&2:]#USQ!IQ M^'%Q!<-K-IK#VH>.&[U+"S[L .JB% V[);&22/XCW\256%UY48.X9&,9!]0> MWKS^-**DOB.O$^QNO8II>9Z'^S9\2#\-OB/%)>2L-!U+;;ZFAY$:Y^67ZHQ) M_P!TL.]?H]'%;7=FBOLEB=2593D%6&.#W!!_&OR-N,01C.,C-?<_[#7Q2 M_P"$E\*OX"UBYW:KHL8-DSM\T]IT ]S&2%_W2OH:F<>J.*YZ]>> K1CY$NG6 M>KZ<(Q%!;7,GD_9D&<*A5"2 #@9(P*33O!L6G7UI>:-HMEIMS;RL6E*QR.\9 M(Q&)F#.JXR" N3D,/$"6-C&BQBTTY \[JI M^7?(PV(V N0JN,@_-7M?P_\ A+\/O [B;P[X6LH+I3Q=S9GN ?:1\E?HN!7H M4CKNP-S'^ZM-5)F](A[;@5+';QJ M0Q&YA_$W)_\ K?A4U$86!LB6)C]]^/1>!3U55Z "G45=B0I -A MD,#P0?8BN/\ A#/-8:->^#;R0O=>&+LV"%CEI+0@/:/[YA95)_O1M77B<7-K M!>8V-(IWK_=<<,OX$$5\Y?MG_P#"4^&])M/&_@_6]0TH76W2]8-G*8VD0%W@ M8L.1@M*N0?XE%8QWY6816MCN_P!HRVL=3TZQL'U"WM=1(E^S R#S8R4QOV=6 M0JTB,,8*N1UQ7QQ?>"M:T6XG^W:197]XC93[3JL20!6.49$$BR2 C!!.!U!4 MXKG/AUKMQ8>/[/6;RXFG.Y_M)]4N[^UE=I88WRL2R8VYW?>((X(W+GC(XJ MH/[0LP9+O1[Z$+CY;A1'D<_WB...U:%G?VMWE]4DN)(8<;+6"Y6).O5I7!S@ M\%0H)YPPK:,5T-9:'H.N:RN@_!==;TRP5(=-U;3YY+= J"*-X_+ECQZ,5;\6 M)[&O8_AAJ4<\=M=6\JS6\L:R1/GAT9U=C_ M .@.2/HZBN6M"]V<\XW5SZNLK>WU32YK2X+'<2"1P5(/!'N.*?I>FZC9HZR: MI/='&XK3CU,HI^TVDL;#^Z58']4P(;+'A>._;K7YYV/P2\::SXUU+1/".GR^(-(M[EXX-8MW5;.9!R MK"8_(3@C*J20J*O('/KWJK-[@,&?X5_$T[9G[Q)_2GT4T@$50!@ >U+113 ** M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H-% M% & T7DZC>V98[9<74 ],\2 ?\"PW_ ZYCXE>%K?QIX!UKPO<;1_:%JT<3/T MCE&&C?\ !PI_"NQ\0J(4M]2''V27,G'6)OE?/L 0W_ !56ZB\N9D_A[5E--. MYSU%9W/RNTMGT#Q; -4M7!L;S9>6[$@X5MLB''MN%?0D$NDWWA&W U/5M&O8 MH);2]O[*%Y8;E5"^5(<2+M8U6Z\N0;0V %/W^IQCD?3IU0?,C MLH.+TD=[IFB_#Y?+G2U\2^,+N5_F:0O;1D\]T5=O7O(>E;\_AS2_*+Z=X*\/ MZ5,R$037&N2WN MU02F/KOQ0T?3D:#P[#>:AD>"HO#FH>(7U/4K.^VP6T$6R&VB*[G>3!QYK-CK\V-V[&%%&6VAGM94E@E0/'(ARKJ1D,#W!\%2,&O OV>6^,-E\+=+\/:EX8L],N+ M(-%!?ZS='*VX_P!6#;Q_.S*"5PS1\*O->B?\(&^K?-XT\2ZGX@!ZV<;?8K'Z M>3$07'M*[UST<9$*'W+R>ZUU&CZ9IFCV,=AH^G6NGV MD8^2"VA6*-?HJ@"KIX!+L *.9=$,XVU^'FA27,=[XCFO?%5[&46QYCD^PX%"4GN.P MS>%;#')[*HR:4)*P^55C'J>34RHJC"@ >PIU-0[@0K;ID%\R'_:/].E2@8I: M*L HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** M "BBB@ HHHH **** "BBB@!D\4@E3E?Q*EO\ O@5,E=$3C='B7[7G M@S_A+?A!>W5M#OU#0V.HV^%^9D48F7Z;,M]8Q7P9H9QJ]KPOS2A3N&1SQ_6O MU3EB0I)%-&DB,"K(_(93P0?8YQ7S)X=_9'TF/Q/)[G^SENWDL[2PBVR M"+>3&'E?.&VXR IYZ&E3FH[F=.2CN?(5W$WVZ6)5Y\TJ !U.>E>F_#[X _$[ MQEY/4*1O8>ZJ:^YO"'PP\"^"K@R^'O#5G;W><9<^@Z5*L M*]7)<^_3\JE Z52IEI$01B,$[1Z"GK&H.<<^IYIU%6DD,****8!1110 F*6 MBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *** M* "BBB@ HHHH **** "BBB@ JGJ]JUU9,D1 G0B2$GLZG*_AD8/L35RB@&KF M/- UP([B.,KYBABIZJ?0TU;54YGD5?;K5U+'9*[+I5M6;!FE9_9?E'^- M6J*M12-+#(XTC7:BA1["GT44QA1110 4444 %%%% !1110 4444 %%%% !11 I10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110!__]E% end END -- Cut Here -- cut here ShiteNewsServer - We Post our Ads at the end of your messages! Whoo We are Grate! Yes indeed! pan-0.162/pan/data/decode-test-cache/penguin_1_2.msg000066400000000000000000000474041475412772400220740ustar00rootroot00000000000000From: charles@rebelbase.com Newsgroups: alt.test Subject: Penguin Organization: Lazars Android Works Lines: 687 Message-ID: Date: Wed, 02 May 2001 04:17:10 GMT begin 644 sit3-shine.7.gif M1TE&.#EA1P%H`><```("!*R$"41$1.O$#(-2!,FC"RHB!(YJ![F#"="D#:1M M!;23!@("CS8DD.3DY'YB#-FS#65#!\3$Q$DP!O'3$:1W"F-%@<^4!Y-K4(A? M!\>*"'13!Q04$QT5B.RT"Z1X1K-Y!T$R!]*H49IW"XA@2;J#,-^E";:,"*2D MI#(B/-&;">:S/^W,#D@P1O350[6TLULZ!91L"0("T'1)!.N\"ZEX*H.#A!X6 M7+265)=A!3@F!95K,?;5#0("3DHZ#$8RA&I+!@\*RM>L"6A4,*I^"A\5T5M" M;\"%!Z-Q/Y!D--B<"+BC>.O-*!0-!)!@!^6L"<&+"J5R"BD6#;5^+_6]#)24E+V=!)%E1`P,#%!04/3T]-ZT7/+:+*UX"FY:%)9R M"_'4*H)X9/*V#+9^"C(EO[Z]O"@*\#'1T=%Q<7**) M7&1D9/+2C*J4;&I2G%8^9!(,M.SL[%8\DIUW3&Y-9CP\/"8:A(V-C+BMEK>; M7"09<2PL+*RLK'92-$`MGK6,-3TKL:Z<:,S,S-W=W&QL:ZN.1Y!L;(IL).B] M7M^L0GY;6LBB3/;BM,:VA&M*0O[^_"P>5#LH1YR9&`^!7A.!"(:U'Q;"L&<3IIJ3"P<;`("L:R.6)*"7)Y^1!$, MZ6I,A/;:%)=R+C$C!;"ECX]:!/;:2GU:1*=^,.*Z9`("<-JJ+!L3X::;AYMF M!54[!O7-,4I*3(IF!)Y^!()R/"H>M%X^+'1.(N&T"GU3!1\6!-:N6%965)A^ M-*..8:V$.O3NWJ)Z9$LTI(]D6\*2)Y9V;+^UI%Y*!(I^9)%F"I)R;(IF7)QR M2#DF(/;&+`H&!)UJ![R41YQM+<.:#L"LD%Y61*MR!/($.*'$FRI,F3*%.J7,FRIISI]&C2$<27>TJ]>@7=[L:^1E$*!5JP`-"B2@$:Q]4ZT*W4JW;LNO>/&ZJ\JA;U]W M>8'&LDNX<,?`B!,K#FJXL>.(3MV)G?JSRR0!L#CD=3S-K2(UF(CT"2Y M`-Y@UHSXL>O7!X.Z:P1(RPL)FQ*=VLW[RZDOFRB]B1Q(U8M-OGDK7_[[5"() M6E9!`ZP8MO770;VT2?2%$U!8@`#^;>L"R\'N+RCZ2GT#"YH7+P+>N-M&J4WR M[D/?>`;4EY+R+X"@EM=U!#H&5!=:..`;(-0%EB4 M/+`P0"O2M!(`%'7H:$("4`!A(HMF9FH46!/,0(NGT<,6;;]91QYL7'('&$36P0M50'`B`5EJ#[$-5 M@T!I*NU-!XY%B1K88EN.(,WDT*T"1$"10!TF"&&""DI<<86N]K3;[A'P"BML M`/YT`DFV:KR`K002:-(&O]FB(!]177B!E@VK<`+-/F-&.^W#*1'ESB02))*( M`PZTH8D$^':<[0LO0"*RR/IV7$Z^^/;;!L;),>?R*6H,MUAE`$!L,T>55?73 M))1P]_)Y&7/L\=#9^KL)QC[[UO+/3"^WR6DS,W;SU`PY-8AN36?]Q=9+9^WU MURYK^^]S-UVWY!ISS&]NOVW3 M%'GP#4RFZD@)-;$7I,L&".Y>5[X[Y,MMS[OWW=/]\M*1MV'^)JNPF$[5/MM`/2#T.07U1OU@<3`(^/Q-UCA1%;XTL&\^ MV0T'L2J""RO#`)3-$0)#!B M"GM6\<+4:(&'+"PB"+?X&\8=38AP8^$)`XC"WPF1C+^!15?T4\7`//$C3H$* M+`0PB$?$SG^:4"$(P?B;1'@Q:6(,XP''9T!"EG%WB1``4[KPNH8][XTXJXPP M(I"!:$1C`R$86T_091PDY/SXQ5"6$)2&/&7W%"D[]SE+B3_92U@F MT8A&"."6]I,:)#U\`!9P"2M!2!>D:*D``+:0`R\"X`QLJH`$5!D`%E6JII0&X(!+0@``Y M;#0/>3B#!\[`TYWR5*`_[:A!ATI48@IU`'`8P#4ND(&2;K)UJL!>`ELV53VF M$F[_\AR_1'!3#_#(JT\PP9OL<00$@$`,]5``-OC0A+:VM0ON`$QI!!IB8:\;#:@'+%34QCKVL8/U*!7@0`,30$&9 M7Y',-MH0S3$&LH=&I"@`=R,YSGGN%OYP4YQX]%4YF<`$OWK^D[IT=8':VM:V MZ.I56.?TV%(-EJ=/4('J;F33C?J4L;U-KG*+V=&5LN`/2H`"'M"V#:D:$IM6 M-6`"+Z8Q;#6"`^@0PXWXNMKC,C:H.^V1>M?;(YT>EZ?(7:Y1X4L#@=9A'-.Z MD2_?)*?("E6^`';L,"MT)UC5`0I1,`,6GUG1!B="%>OSB3NDT`+!Y".MUAM4F>]P4OO'UL(J'*M0A_4&I)K`#`IS0!PDTN(>"_.%N MV@`(&7:EKAO(P*V@<(4=]3>R*TZR41F+T]>FZPKV0,-UV*2!=NVJO/`EJ%"1 M[%LE-W;+S.UI6,6JA&")H1E^F,'^!-K8A7W,<1"KT,*U)&"^XKV`$H=[Q"-L M,`@!.*LJ3E5,$X0Q@0A@HQGBA0*Z5OO3%'LYR\(49HC)?`4YV$,#:!##U-8$ M@D[3DZ;P@D*;W-"NVJHK7;QZTVM7O5J`XM0#.3TOI+OL:(,&54Z1NH`&S%J/ M=^2`&-B8002J(`74&9LH4I@`#&9`@!PHH--'<`-Y@2E0WZ(XQ?X5**Q=^UIU MJ]00!044(].YS/4&B"U/W>E:G*E MNK8:@%>GT_IK8A#@4W>8!0PFH(-L_&0G401`$_C`ARK,@A;-?G<]ZCTL*%19 M5_R&$Z_^8EOF"[@AX`@P*P@V_@XG`('<69E`%6`0@3O,X.8WIX7.#XYQG.,\ MX0JOP@08S@[8Z(`/,H?!+.Y`BW.OVUOP?L>[FR'U=CO!#P@?-LRWSO6N>_WK M8`^[V,=.]K*;_>QH3[O:U\[VMJN]*&Z/.TF.O9F'RSWN=.\*7]PG`"\$8BW; M:(O\E'AWL>==+U&A9=_?TY;XF6XRSUI*XH1T6*,S&_HD66;1L^$HP?N2U:YX:D"! M#4S?D[ZX$?6`"\H^4(`U!S2BE*#`T)Z,&PQ`,&>`$3N`M"O"*L`B+WM)N]78) M2]`QOM!&*CL%)4-$W[L`)"O(?0*0)1-.,H.,O*W,[)%1" M:@`+`;@9FB&,6-$4T(!_`A0YFJ,)XBB.Y],V#%91+W"-3:B-=]$5FV4QIB1` M-S:/2J,)H5=Y[%@2>M$%G%`X<[8RE.,VY-,<7(,Y&'.0TX0T$_4;2O,X$W4Y M%G,[")DY7E1GFS..;7`TB8"`'`",9)./&1$8L#,)MO%[N8$U.A91+;2+@T15 M%]4;P\/^.)L#,$(3.LD8,](CAW/T%IJ4&"`)&;+1"('@8Q+F!93#/4,42J*E MDN>HDL+C1\6CB[^Q(M(#+:KQ73[YDPDA&[`P")=8&?`'6M7TDD@YCY]U5$&8.7&EZ`E2D(DF!Q2Q#$`8U`@FB)8UKS!0JI2A2E7=J4DKNS-(.` M%_K!,,6,1[UQPEZ M^9E)N9L$24K0:9:Z:9O9\S,2<(V6`0NG\T#!Z3"3)P9',"'!-%0:<@+"(&&S M0PF3V92Y`T2E-%K9)$IHV9P*Y)#I\WRP'SBB4K_04IMHY1C^9JXF6-,N0*_E`>+52I8(DX#D`!`X'`S M(TL2Q@$5(`150@%30@&01`0(<`3V4%Q6N&II^"N^LFJNEE/_%6"3-0!UD$R+ M)``HP)K8Y#UHA%VY29C7)$")$)42H`UO@E/H-69*@&GO,`'9$%?S*6'ND`WH M<`3_E($3V%Y`8B$U<$%B0`=NL&C^',5E2^9E1-51*J4H?Z`"%:"C32%+L(`" M`\FBUG2IMGDW6:55HU!W%9R)Q<&JB8G4CJEB+I<%5*E'A@%**AY-L"9Z.FBNJDT?F1:_`(/`8``TI98 M?)I>`#5F3`I;4-IJGWIMRI6K9Q!<=#`U1[I?U*:KNZI<+:8G2;54%5!L1#$) ME*J>\(J@'R0\#J`&0PD8'#`!&2!>M@JM=$(JY%JN`490--`EX%`@,-@N&U5M MUQ:PS"6P!85D=X(G?R`$2H``&Z`&8@2F9$F>6J,%O@D433`!M&!ASII8<^*P M$&NNPB3^4$WV6G(`&V+02R86)Y%V7BNK9(.E(4]P#>:B`FX``C'@!VLV"8]@ M78=DHH&D-)N@"HV0G4S!`7QP<2V(!HCE:MJ:LT455)-&9I9V!)KF(O.D`0'G M)OR&K=,:8K"&4VK::$&%LRJ[8L"%:TH`M`A0#\U`#+0P;.QJ><>6#FLSR%4ZS%;61F[F:J[F>QKG*NW)I];U7-P/5 MT+PE@71#][\`3'%\`#%'-P'^.P%X4`4*O,#_2W'\^\`0',$2/,$47,$6?,$8 MG,$:O,$_,$@',(B/,(D7,(F#!'&=L(P9[O"J<(VP\)9Z<($`L-`L1=B M\3ZU%#]_ID2#(<.-0<,QP@'O`PV>@1:<,`AQ.0GJ1'@^3!=`/!2SU'=F<<2! M`!]NH<-QT<)-'#U/W#\W['B>-Q5CLQ?:N<7YT\50''I0ZQ5FC!-H_,1M7!.9 M!6AS&JD`(%=4X1>U-S-Q/!-IG,;^;W`9L..1)<5)4C$F;>9WL%#'=M?'+[$4 M;^`%@-!ZO*<*-L`)U@A]:RR'C6`6FO@(6E`X*-![`0,-83L$!V\`)-F`<=":;TBB10?,"*"![7K#)0['*K`R6`(JL M&Y-^1:0*@>:NFL":_J<%F;$7^S`(X4E:JJ!&ZXC,)A%Q/8%^ON$`EP@+>^:5 M;Y!'O*$%`-!`Q1<[[A`(]=$RU'<@M*%GQ=Q_O-$&\Q>,X+P20;%96_-\E>&8 MG-!$C]!"JK!YL@05GM=FCY!^I+5_>=Q`[\./5-70,1S0$?,3L*`&"I*..0D` MG/`-*.#^`WT0#0%P`B=@!R?0"C`=`-)P`'T0`K"@"LCQ!0;=%*J@'`[P",9, MGQY=0T#1"!7C&R?X$U)`"^*%!C$@!BIP#78R@1CBLPLP`@>P`0<@*D)R#2=@ M#I`*%/OP`DZC!4--U$5M$D+!`:H@`0J2"$LPLPC0@',")'@M@2]V@TS0UZOB M`OFP*F60#WP"!UGB(1XX#I$`"7"M.1S-QVM]$D,A!7M%@7BB M*'N2)$R2#TZ2#T*(*%("A%("!\_P##20!W4@!GR0UHT\10; MH":Z[4]&1H,]=2<3>X.";=Q@"(1#2(1_T`H'$`"ABRYIV%=0T`>RK=;6#4>5 M,0&S$`$0D@!_I5,HMB6=[2H4``P#?MI#>H,W.@)"AJ3^-'*Q56ED)29#D7J,& MBDGKR]0%M[Z54+$>]RB'4<6+W9,QO^Z,_'(^N_@X%:4)3ZOLQ]SL7+$4LR$! M9U1:U_YZ&;GMQW13A$(U'Q1!AF0Z=GNO.$=>1?9<82,U(Y`W*[O MP<,)<75XR!P9R;+I[-Y@`GIC#WDWAVF[3B20D1.0#W]$!8DY M7M0X$JG^1AW)PB:,%U3Q!J&\>ZX>C=(HD!95D-/DRWESE%G4D*1D/F6NK%HU M[-EB/*_^!=4(QR"\&5,!#;N'+:_>\&"#.0$?G01Y.13)\V4.>RECD[\Q"`W# M2-L`'PP#[K.=P4S!HS\Q.!BOD5'/L703-](9IBH$CCQ/D[KH&XFD>9,.G_/= M$QML0XW`/_JS#6R#\Z;T\1!O.:#EE^'8.=NQ-8$01^WQSU^!P1/.1$/A!?4^ MG95ZH`X/F'0#E.IF999FV!: M1+Q(]*@Q2W-T2Z^CF&]`Z;(MP4*Q#Q;>UJ__]FP_\'"/J>O^>6-M`'I]X7FP M@,6G[Q/Z\;2+J96!W].5(0`!^OR6J3U0[UG7E5WS"OLOTP;P'I3%O/WLZ/X- MPQXVEILJ:DWE7Z($;Y9*HP9ZX04``>V-.P`%#1Y$:/#?0H8-'3Z$&%'B1(H5 M+5[$F-$B0H)=O`A("*#+JE.GOI1$:3+E2I8G5[J$Z6"3`Y%7+@QRDU*ZP+8YX7NY9![/7_^!NT4+H=)G#8;Y,#)@5K'75F390P4;63: MK"$GREK7W;9)@3DG#!U0<@X6.2" M99(WNB"(@S?VF7*2)JGL(DNX8.2RRW\`"*$"!"YXXHPLSCR3!A,.R`8A#KQ` M836VZM/^+A&9:)),2!VQRW'/GCS,\Q04Z'IPG]-8%.DO0%;!ZE`O'V40"C?J M>*),,]'$%,TG`I@B/@X$T&(3`7N4+K\??222NPS7(B44$TSPP(,\9)4U#Q.@ M>*`?1!-2;Q(58=E'2H4@)38X-([0X`HE3)@UCS,NS313*K)0(@K+"GJP-$T` M)'%..ZOKML\^BVQL!27*S((**N#@H=UV*1@@AC9W+<@=TJCD@`."LJG`!!HH M@../8@?&2P-D[9%CV4KSR`+::!].EX8$B)""HUX!46-I/$PXX!6!B`"A;@8%=@@@?^!@$-.I"]0`5E MY;CBB@O<<`,*I]V0XP(EID8Y98,"#_Z@(?`S`D<3BY\?#5H#J9=E-N4\ MFJTT\H5G?1;NK"]O>&4X!A`"B@W@25;8=6;NRSTZ5R+$D8+UU$12F7&X/ MZ#;A`@W0$$.!#(316S=WI)A%@3&5H/2):Z[QH'*X\T#C<"_12!;V6"T_\VK, MK\<:VIL'X#J&)BY3SXNQ`T5LU?)-+RF1-EIG__4K(H]U]DKK4&)I#1!```TT M0!"C_R@4`*`"_E>!"O2O?VA`P!'^[*""H.[FIG.(`?GP4@,:(`"`Q>6 M/.MASX.8,Q,-U,4"%G`-#<(8#VE0P*W2T>E\JB*7`];'/M:-0@-(J]KL=(BR MJ2GM`A>PAP8T$$0A%M$-&F":&WZXN$HESX,,LQ4%*[@@+"!`6:^J5!:<]4$N M=C%=VTO`!3;0.[B\P48O[-;&8)@V[MAIANR#1P+M0;4FQD]^*'L5\::V1SY2 MK0Y5+W!:9$& ML12""A+^::PA7M&!E9-D,J_7,IP)X0H'^!Y30M<&5(D(0^0+TFR^L`E-E&,0 M'&C"!-`!@B/\4&&!E&#F0J@\=E:NDA*L)"25"2UZ/H$.P\Q+"8:8L%<])&J0/EZ<*5%@DT0F\;[4J9>2($F?H(23/N58R#*F+)WZ4JAFC@9_F*D0 ME(``;)B!-M?T:=E&]`44B*`\<(W`7:.F"!"#$_C@A9Q.QGQG<8`6>L,B=PAC%AO(P#LP M>($_5@J9B(VD\O)`-R4D30Y'$`-@K8JL9.6PE^F,&VJ[:+W!54H()J"?'1!0 M#R?0`@;9^%X78.'0_:0UC2H!V28DH(I&D7%7V9C`+&AQ5`0HKGB6.NQ6>=LP MJ>:QAT$TG&RG0LXB7D"ELD1F.G794MWR4G[T4\$%$``"!11W%CJ(YLP$C*!L M\*$*0/!#,T"``"A(K7C3RVOE'F=(9ZV6M5>0@\'XD0/U?D8,03M"`H]`VQ\J M2X]N>U6*;[DPQQF2G=4S;&(;-KO^/.;W"/QM!C%H,0,83&!>`P9R7;`+@QDD MN!X(5)Q234O>04:5O!:FG=MZN+00*\`/'7:1$YS0C'=T&8#UJ`<(P@R"H%UU MQ$84HCWLL40^IAB/D9NP8;L*57HV#')NN\(1]Z>`9N2`&`38<8\Y&61"&T4* M!IX%`8C1C#`?*\E_A%7LY@MC=LXM"MT,<. MB11T,`$8W$'1I&ZT'-W+.%S:,L4]]*'!>-UK)P#!T]^FR"PB<(<[S(`6M,`& MJ(E!#"?^B#H'I58UF?6'0`8_[8C:/L+^P$QJ/Q.``,&^PRR&/0$`#ZNJ?.`# ML^]`BW5#>\SZ=X(<9@-OC>9E`%6`PBV!CP]]^(`;* MUZWE7__ZS_Z>P;]G$/!9P*#'"/_X/Q`>ZT`,`\=@._@]\9I M<0=GY-SIPDEX%41N\X!77>!7MSD,B,T'';#CZ1#9.<]G0>Y@^YP`?C`Y-G9, M"R!$(`+.F$`_OCYWNM?=[G?'>][UOG>^]]WO?P=\X`4_>,(7WO"'1WSB%;]X MQC?>\8^'?.0E/WG*5][RE\=\YC6_>]:^'?>QE/WO:U][VM\=][G4O^%WM7O?(+HCO6P]\I@B?],0?C_$[C_S? MZ$WYEF>^--UA780\/_+11Y&4CC,)?$')*+&P_N*QG_WC-$(`7H`&-`30I"=1 M'_SA-_SX0[+0*2UI&X/@!"<&$0AHL)\#7S,X^`L\^2._1O""05B4]QB$;9`+ M)WD#?4D0`?P[`D01"#%`!`2$_`N$CVB$*WE```P^">0["IP_*?$5+PB$_=L& M#FR22>"^#Z0^$=0[$@R)+*D_N5B_*PF6?,D7+5D*&;P[&LR^*=F'(NQ!$*P+ M(*P[(9P_AH+``5/"KV-"`HQ"IYO^0BJL0H^[0OG+0G#;POD#OB[T--#)DC+D M0>\#OGPY#EAH!$,1,#'$,J-8*#3$EC=8$@&8A/\;#^HS"K\X0`&0&02!PP[; M%>-8OX$HQ'V`AD#@A`SDA&W8!]]PAS<0``$X$$091-EB"M+8!D"P`1O@!"^X M1#L4`#D M!#5@'370`D"`AFO)%SF,#VA`P%5PQ5>4Q1>@A!=H'4U0`U4XQL"P%R0LOET\ MJ:+8!T_4`A001DW0!-9Y`55XA%4`Q([@0X.8!`1\!%68QA=0`V&L1DUH`VM\ M`11X!$[^0$2%XL8?]$9\THI!L`%50`%J;(.9<`"9D*YTW(9W/(A&`(1'H`0) MV(3]`)2Q2,=5&(03Z;V"3*2$V(U'4`,+P8G'<``OJ(LWL(&49,D7&$?Z()(V M0('DF!F2+$G!L`'2.84V"(1@>8-&0(%/2@E-$$F#T!L!0`%-:"Z42`1`L(Q" M*`FA',@MX(%+9)&NK*!80`AH:(-/>H'3\,55^`Y.@`D4T!<>A)`\ M#(Q`>(&]5`,0A(55`,70J2R32(J1!,R?28A`L$D",8BK8,3^-W@#-;`)2N!! M[?,5%<'#MXS+1)@0-R$-`0B$2>@"&W`.+=A*@@Q-T3P(+X#*+Z`12:3$8P0` M3D@?0*"^!\F21J`$E72`I4R(9!P$I#R%1!@4T!S.@4$(`9"`_5#+[.1-`!B$ MCN$$<,H&8>`#/`@!/I@"83```\@&=]B'0"C/[L3.H@"$FD@$50C$WPA/XCQ- M2J")3?#+A!@$2`@&(K@`(3B>N7$LY+D&N1&"!2"#(5`%L2P.H#P%!UB%X&R1 M`R66A.`$^M@F6&A0=^"#&#@"*$``.S"!P:&!6*G0!#@!(B""$;`#"&@L>2@% M>F"*?7BH])&`8`%/%'V4A-B'.''^">`L"'$2@P0*`#%0@0S%T:_ZJFN``"$0 M`GD(@%9(`+`2J,6R@PT8M(*8A!?X"O4QS29U4BX)"?+$DU/X!D&(@@7+()29 M'@\0J*]JF4+5AP%@`B9XAC*@@&>X))91%QIP+#L8@6Z`RE)I`Y=\PSI]TCNM MS$3`@0MBL*2BT%CYI1P-'+"Z&1*B@#(H@S!XU3`HAGQP@7S(!V!H%YZ)U"<0 MJPOPASG@AFD(`1/E2D[M$A1AA0.H``0Z`B4ZI^D95.YA)A:@@%:%55LMAF*H MU3#`57?)58!A%SB@`AJPE3H@`CP@UA,UUA<)"6'P@SY=L"&2&I1!'E.5*54E M(2:HUC+^<`$7R-9LM55@$-B!'5AO%5@><(%G:(<\4`%;^+&_7%<[/0AWF``% M^+"K^J'2"B1['2A\S==6S0="^-=9/5AWP56"?1>7@0`(T(=GR`(3J(`IH,AN MC%AVQ9:*;;01LP>5JE=[G:E590$F<-61S0<>.-B"-=JD;1>7:841((,*(*U* M@0);*-#DJUF;%0E:B(*+)1K"VMCD$2BP(B%6Y==^]==N3=JC]586*(`1D(9F M79RIJ8,Z.($^"#`ZO=KR8$H@V%K\<=9G/=5HG58*8`*S+5JU;1>TY0$62(`1 MD-$UFS;ZX2,W,(>[Q=N\#0ZP$88)<(8,.`$5P")9&M2!`EK^:G75,NC6D^4! M@*%6G$D`,H@!Z&&S/FHMI2&#-@6;*:G:SL#<\T@(X`&X`U`!(0#;2B*Z`MJNW#0%B%5>`$%RW6WB6.)'F# M/M@`6U`[6S@!"AV[S' M%_@F%-D'A/Q$"`8$6%!7"]X+DV3^#B`>A@/@LJT5@PH@@A/8@@4X@070XA-P M&GL#(C43XRL0XR`*L?RYA"7`1W,X35[9!TXXXB,&A*&T+B8&#?-M M!'L,8C40!'1X-RZK@,]=60AP+,EUKZ3)-#$N(H-!`"P`@30&XC4VQW.4`"`& M!!_D"'MY8#O>P$BL8#W&"R>&A6#\8S4H!T%XAQQ`AV:@JW)RKUD.8T<>L7R3 M-Z'Q!S6^QW(HATJ6@#80YDT09B`V#>IS!UA(0?T+!%C8W0`DY:DP23M$Y4KV MXT*(@0QHMW=HM'G3GQL3,U13@*`I`1R8!R#^93^6`'W4#XZ4RG,4JDVDX"2, M9JGH0UC^(,=USF1T#N)"V($.;C=W$VAW@V4D\(9(^&4@]N-R;(./D0UN"H29 MY0Q]J6>H.$4.@`8)@$@VKN2.+@<4Z(9>T(-%6`0]T(->Z`0<&(:$YF-!)G&V(1!2%?0<8>*UHCTT`*3Z!B9.,>.=F.A%NI])FJ8%N:'G.G;"`1. MGIEDU&F+(`CKXH#FD(Z.X2:C_F&BYNJ.1NJ&;F?4D8[V##*HCNJ(8*@'?,*" M:(1+E8POD`FM!N:N[FA];,B'C$JQ+HQ5:%!Z6:BF..L8L1?5_+_-<`?*XLZ6 M6!VZ[NIUOFMWOJR9?H2U!K+`7@A>$0D*`83$_H^QL$;&!F+^Q\;KD]#K.8%. MB3;0LV8*F!29M9$A-I;K+86Y(ATR$;6C+#"=)!%&/A$0!613& MAAQQCG3P__YIB/SMF?CMY@KNF4[^<=R#9@8/HF\$Q$ MD'R9A%>,Q6GL\1AO9S[9*2)7:@E2%_\2=O\TR.\VK$$RTHT!3Q`B\`%BQ?8B5D M$2F1#QY?YYF`[$#ID`K7&$#Q;X\A9C:GH1]FG8;^I$V(8X-0KCMT$CJ\7`F4 MD6#AA&!D9R07$%#7DQ<:%_Y0^C"Q,#PAI4-5< M!3EG(372$R5G(_@.;]3>`'K4H\> M5"A%K'-=#/CXD`L`?!`X7:/]/I]0LJP/$9%2P7>;I`2]L<$B?$&&4C_*YHR8 M1XV,UXHD30L7^A.0KZ;^#@H2=VCX/_@TRA'Y1@T+/+\Q=Q/UH_E]D("U1R-ZA_JIUQ$0 MF:C:&!3UJ!(5Z4`'W`Q(%V6K53Y>$0!H("/C<'JR0?B-"73^-FKMCA?\G^*3 MN5!\U23LP@:;`_Q/@/^])(&%LN>5-\!*T`^0QE#JKAC\J%>5#A$EG/C.>J'( M+MB&%8'YUD<(9>YK>^EIAK>MX]*-W-['R# M5(4P)/?1DHL*!!@P@1)FS(4."F+@`F4JQH<:(7+_O<7>QH\1_(D")' MDBQI\B3*E"I7LFSIDF5%CET$!))HD4,C!PUW#GS(T^=!!T()$N79\Z#1HDF1 M*MVY<.G`21ZG0O/R9BI6`"^WI&#FJ--?T)-^"61@TT. MO@!MJ]9NTJ=LG0X$E/5B1IM_+X8M;/@PXI<=9S8:RZGNVLAX3\&52Y>I7KQU M,T/&//F@JL$5H342++IBXM2J5X/MZ`[6-M,3.<#2Q-2A49\,@;[=)#=1YZ60 M@RN\Z_;V<8,O.(KN`LWLZ8^LIU.O+G)J%UC09`/HP@EJYN1[!2;R/?=R4<[( MBZL-G_OSVC;O`]%-R# MX"47G`,2WH`'"\O3?>;2GBMM=# MB>QSF@#^C>%'F(<]^DC27V_``LB(JYAH''S"K0CB_.^)F+:1*DXU^P"*#A MAEWZN=^7;TS2""=5`C#)"W4^2:=Y+4XFXXR=;8;@07CZYP4'`FHYT9^=5H>5 M.QSL,Z@`@`QB42,2)-CDFNTQ5=YO!>D5X9Q*T0KEB7`J),!@`L"BZ:9:>3IL M:E_NH]TV@-@@(`>#:'(KI%#"RB*DT;(GY80P/LAK5F]LQV>?Q(I;F&BA:K?* MC;,Y"R&N<38U+9/7VHDDI4G"Z("E8PE`9K"HC?OO5Z=U`2;^--M0]`8G;=3K MJG`&P9J(HS3:NZB\[HZGR7T>U;QL-.DI@8,L5*[]2&65??3/278&HW""?07`4LVI6C9(T84"CQ M1!:=>][Y&4\$($5,'$!#R9&/1OVN>0W"O'3@L4^=4")5`\#!)/SVBY,7@'!B MGX"6"T^2&`C(8<(U<7^^?.@!"%/^D:C;H)#ZK(-'!MFTNXGW.L,O\O8-(:"( M+SXRH"`#ABW"X*Y[O]G!0K+8_`X__S]T:"!''4^BF8+7L/&(3 M[)J84!@T,=U`K7LO^L8*3."!+%`!#A:T(!5`)X\0]`MZDWC?V$+5!7?0;W@( M.((4&-*`!BRDTP0I; M^$5*_H\*UU`!.KC3!0YPP`LOB!<#I04Q:+TQ4CU$T9R0H&"9#P4C%?AH!R"`J@M>0%W2LJHRU:VE()5I@R;`$$G.R4UN2C6!$HX@ACNP MLY;9<,(%D/>'&00,4\)=,T<:MP?VS MJUV_Z-3G4O+!G9ON'X2``#X,9F!BFJR:NDN<&Y+2)]_8Q'DYJPTE;%&"H1NM M4H5Z`3<<`;X@D.\[,H"-"#AC`A/`@X_[0`LG*$`,1M;G$=S0XN66=;=.[APP M#0P6+"``H?E;[P2;ZSD)/W7"%(YN%O:882CTH3DY$T"B+.LN4VK/3IE-\69% M<(7A5PVCD,,Q6;C> M.T/R`C/^UK,&H+#G&O.9GUC4@`;<8&L5J&"A^INDI@<<.GE$NBM$2+"Q)?ED M"E/[L!6DP!_LD(&.G44`:N"HFDOIE,R:M]6W<(.2-X=E69-6J"P^JJWM<0%Y MVT/8Z+;UL!>ZX,,Z]`P>N$8"FKT5(J!0"5?FGPNKK?"G[I&/C7UL=-RQCT>4 M6KR7U2I>RE-NSJH!'O^T!R05/6O2XGFH0X6W$BY`;!4,5=^*?FY-O8A2.PB\ M)?OLZX*3O?"=1[>"U%7""72`'XEKX8`C#AQ(<[/JC4N@XP55,C)E?5P8D_RO MR`QJ4*VN7`;K_(7(;J$2]%!SE=RN7=F[ED?T$9NL>)'1`8:R["#KA4YO+Y`RS!?]0!S>4.2O[H(2L MOGL]\'870:17PR#@#!\X0?6IUWHI3]>YW[2QG]=USDG500T\'G_)6XLU%.4Q MH/]0'@MX6@(<@1\PSAL`@JHXC9S^E"#W?($:[(E--,$$$"`"V)K!,9GV82`- MRDT>F$#-89$6A=RQT:#:.=7E31<$7$`%\($`K((6J(%&V9U'I=K%>1.-4`(L M7(04S((3[)>P&1N#,9H/^N#^Y$$=")P./A(R>=&T76`7_H])71XLJ0`"9``* MK)$#V4LV'5U/M,$JT-)$N(,PY!<6JA>#+6`:[IRCY<$3A&&D\5X6^92T*6"F M#>+:D=,?O-(`0(`2:$`&G`,W)4TVPLCT9-59C29D3)0*<'51` M'\2A1X67'2:))FS':61#%=""'R@`"&C.E>76*HICIGTAR;U;"0C<+#K29ZT? M/V+:VO7/-4SB.=7!!2!`%`"!*RB,]YA@)_8?'J8+?@C#+-"C`O!>L5D:VH5C M%TK8%R+3N]E#7@ED,?77YGSC02Z>04K8ORTD!)B`"K@!$:`#6PF`JGS>*=5A M0R0")93,IC2!#O3!#-0C[\6@I>UC-3:7@QDB2BJ!'*CDX[5DWT5C38$?2>+B pan-0.162/pan/data/decode-test-cache/penguin_2_2.msg000066400000000000000000000036411475412772400220700ustar00rootroot00000000000000From: charles@rebelbase.com Newsgroups: alt.test Subject: Penguin Organization: Lazars Android Works Lines: 687 Message-ID: Date: Wed, 02 May 2001 04:17:10 GMT M78W6-3R!$)A``CRD`OA!!$C!R)R),)Y24%`")W",?8E&-O#^P2S,0`8XHP84 MVX+=7DQ*Y?X$5DIJ``B47SW\FA;]U>0YF7-])2'*Y("15DJIP$-60#.HY6K9 M$H%X@0U0@@08T&4\1?X1A*Q4AB:@@`T$`BQPP`BY%$6X@Q3@Y9#5@T&EXGH! M'P-*I6.NGS^B%21=P56>%C^47TC,(K`)&W$MU?Y\W_<9I""RWP7:E9T)01U8 M)@*`P#L0PPS`@!2T4]=0DZ!\T-BXIGD*$FQF!5(Z0P1@0S,4CTOF'`8*IA=) M)56BE7`"&QI$@7&6!'SQ6>_Y%6"Q4$,A7',^)U1"8EF)%IX)U7N!@`(X`2W, MP@1`7'I>J$?<)0PLY3L@F7]9VF[^?F%A)=<_LMA#BH$?]"=*Z)-6WIM/$5?4 MQ=YR=9$%:IF-9A]D=IF=`><%&&8];"F4&SF0D\A8LYJ0&((`8*$`.^`$VW,$L5`%V':F12L$$;"@!Y$`]Z%.` M(I-A12GSX*CKB6A@`:>)VL.>U4.*>NE+*`"G*D`]?&JB#EIP%1.`)B>]V=I1 MH:F:5JER66!O,I-):E_CE1:-H0&$-L.>!BD,`*J@"NIL5D$$T`(Q>&HQ'9J` M$BB";I_^8S;8G0'GG-F#I>X9"#B!IAZ&$^1`#C1#,[S#.WAJHH;JGVDIGXTK M@"HFO@V77\$HAI#A`#`0E M`33#IP;7H:$K8"D3NS88E;+07P6GI8[KGS5#M5I'!CC!M6JKIWIKP1:LJ/X9 M,9W0":&;O`T56JUIF]YBW#1LRDJ!#A3J#!`` M,32#IS:I3\6HHHU6"]E9LP;GO.DG",RK`F!#Q?:(-1```?@!,5PKMF*KMFYM MIWKJD>F3K_64F::I8!7>8-5:CVHI&LQK,]@K`=`"ON[JOHK^!G\`0"S8[51D M@PX`;`3,`#%D:]`6JW*JZ9I:J=*Z;(W9ZKQ*:#5$[;!$`!#0`BU@`]56+3'X M`=9F*[=RJAB`;)CVTT$)FYG.6;SMVFDU+;:Z[0S,;+Y6`1]@E^7L+<_Z+."& M:M@&&[[E+KZAVY[QDXW)EP(T0P8`@>.>317`P"S"*3%=K^+.:^I6[NK>@9_JZ^LRQ_#PP00$;,\2P\]R*KBRJ.^2J^_ZV9]Q M*J[R:004KQ7UP_$F[_)2K=5FKK9R*[=N;=:BK]O>Z\Q^K[Y.`#LL$CN0[_'N M[]\";:>"ZI]1KZ@FJGS-*[?F@!/:^(&0VJ^!E6\$]*WD4BXV8(,?5&X!5R[5 MKNX!S\*NNNX"ZQ0?.#`,**_E8NL[`&VW=JT/!Z\37*[,?C`(UUSYYN\L1(#W M*J\+=^\2(_"03H`.1%H-VW#R3JX?9/'?9FV]7FT'8T.01@`,]T,1JRCYEB\, M("\,IW$,1_$$U+#N[>T95T'`)K$2>R_KCO`L_&D_\$$9%S$?[*T."++]5K$A M'_(?)[(B+S(C-[(C/S(D1[(D3S(E5[(E7S(F9[(F;S(G=[(G?S(HA[(HCS(I 0E[(IGS(JI[(JK[)A!`0`.P`` ` end la la la pan-0.162/pan/data/decode-test-cache/two_mime_attachments.msg000066400000000000000000001415411475412772400241760ustar00rootroot00000000000000Path: not-for-mail Message-ID: From: Charles Kerr Subject: mime attachment test Newsgroups: alt.test Lines: 642 Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="nextPart1216749.O5x7CTdV2I" Date: Wed, 2 May 2001 14:17:22 -0500 Xref: e420r-sjo4.usenetserver.com alt.test:889584 --nextPart1216749.O5x7CTdV2I Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8Bit Content-Disposition: inline These are from Poag's Propaganda series, volume 1 --nextPart1216749.O5x7CTdV2I Content-Type: image/jpeg; name="Down-We-Go-1.JPG" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="Down-We-Go-1.JPG" /9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0a HBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIy MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAIAAgADASIA AhEBAxEB/8QAGwAAAwEBAQEBAAAAAAAAAAAAAwQFAgEABgf/xAAoEAACAgICAwEAAQUBAQEAAAAA AQIDESEEMRIiQTIjEzNRYYFCcZH/xAAZAQADAQEBAAAAAAAAAAAAAAACAwQBAAX/xAAiEQADAAMB AQACAwEBAAAAAAAAAQIDESExEiJBBBMyUUL/2gAMAwEAAhEDEQA/APw7j1dDsa9HuPVpDiq0TVZ6 +LGkhKcMC84FGyvQrOBs0bcCirybjDAaMdhI15Nqhaw7AqOjjGv6ZyVQKaN/o0IzTZ2iOGHnDBmu Ow2uA/HSlxY7RZohok8TstcdZSIcpdijgxGOEcxsKo6MyWGT7GStUd+ALumMLSF7+jk+lLfCXyFt krkx0yvcuydyI5yV46IMv/CbUsTZRpzoShD3KfHr0htvgnHi/YRLKFr1plD+n6i19WUxM10PImkQ r17jPGg3g5dV7jvEq6Hu9SS40/oapg8INOHqGqr0anD1JXe2V1HCJyk0mIVP+Vlblw0yTGOLWVY3 tEdpqitx2tD9S2hDir1WSlTjKEZCzFoerjpG5LR6ro3NaJH6VOVo7UtB3pGao6CyjoU30yVoR5D0 yDzvpd5HTIfN6ZXh9E5p2iI03cUuNHoTjDNjKfHhoryPhHOIP4eovdXooQh69AbYaZNNaY6Y0Q7Y tMxGGhy+Ht0DjDRbN8OePovKOAfjsalDJnwNdGPGD8cIxj3Qx46MKPugExDjVFHifCvT0iTxo4wV qWS5D0cPgaS0KXIbb0LWrQuQ7W0KeODM46D+Ogc0M/ZDePTEbI4ASHLIiliwOlgNaQvLcsDvHiKR WZlDjx6Nt8BxTtj9KG4sBTEZjEjouWM89owo5YRo7CIHh3x04oArYaHVBArYaZyrobh6IPLr0yDy 4bPpuXDshcqGZF+Gjzs+NsocevS0OKtYBceOhxR0JuulkaSFLK+xKyHZTsjoRtjthRQu2Kxj7DEI A4r2GYRDqjcfTnhhGZR1sZSBzjnQKof88EbImIrYzZU/8Hq6G/g5VwS46McRbLnGWiXx6Wirx1jB Jm6VY5aQ7FaB2RDQ2jFiJma5ewedC177GWtCtx0+nd0JWIRvgULEKWLKKYFXOl0nRh/IVOPDQko4 n/0p8ZaQ3J4Ki/lhlDQvdXplBR9QF0NE69Ct/SIV1XuOcWvo5dD3GuNHSH14IhfkN1w10dsh6sPX HR61ZiSPeyr9EPlx0yTGP8rLXMXZKgv5GWYnwlyT0boz0P1awKURHoRxgC2MhaH6XlB2soXp0hjJ JQ/64HqXQWf5B14PWT1gT6zZexHlfSDzX2XOR0yDzvpbgQGVNISqWZlTjx0iXR+ivx1pD8rFYxuE dA7Y9jEVoHYtMlT6OUPZIvjsFGOVgb5EQNaLI6jqM/0dA5Vjj6AT+jEhW3sXcdGVH2QU5j2QDFP0 d40dIoQE+OtIej0TWyyVw05aBWSTOzeBZyzNLJkox0guNApIJ8Ms1C602K2RE7UPW/RSxbGyxOVc F4R9ijx4ilcdlCiPR1sDCOVLCGoIDUhiKJaZ6E8RySNwiecc4DQiA2cvTqjoDbHQ1jQC7pgp9CfS Py12QuRHNn/S/wAr6RLVm1F2F8IcpR460OpaFKOkOxWhNejMM7A2R0IXxwU5rQhessPGOvGtCS1I YrF2sSCwY6ibfyMo7HDQNSPSf+AEPnImjVmMHq8ZFrbHg7VNtjNcB10sUJD1SWdEvjZK9C0iXIyz HpIYgtHpo0l/g5JaE0wXW3oC1oUvjsefQtYsmQ+h80TrE1kVmULYaErY46KZYjI1oTf6KPFekTW/ ZjvGlpDa6jz/AP0VI9GLYvB2uSwj1r0KXpZrUku5ewzxukLW7mxrj4UUNrwVC/IoV9GbfyzMJ6M2 y9WSv0ovhL5j7J1azYx7ly0xXjxzPJVj/wAk9Lo7THCQ7COheuPQ1FCrY2Z4Hr6CJ4aBVvHZvtk9 C6ehmM8I9nKAxewqegdD8PRfkR9WQecuy/yJLxZA5e2yrCFmXBSiOypx1jAhREpUx6GZGTStdHI9 Ixb0ajpGbXlEy9KopNE+9ZYCOhi59i5bHgm/TspaAykdsehfy2N2JrjN5PRfsjDkei/ZC2KfWVOP 0h6L0T+O9Idi9Et+lk1pHLBTfmNWPCFY7k2dJNkbb4HXRmR2OT04mmKui9jFLOxuaF5oYmBkrZyp dFChdClUdD1MegKYWEcrWhitZBVrI3CKSJrordGfHaDRgYz7B44aEtsxMy0LXrCHGtCfIembD6E6 I/LfZGnu4rct9kpbtPQx8RBlrpS4+8D0OhHj/B6DF16X/wAZLR6a0IXIesloRuCgdYlJexqKOS7N xQ5kdSmzSyjjZv4Ds6BXoHzoBaztL2gVsjVMtobrhyrpZ4j2ivS9Ii8Z9FamWiLItsrit+D0TTWj FYR9C6XB0R0E4gZRDvpg5ICUNvHwTtjoRuj2UrUT712UwQ5OEyyPswnGm1pmbP0zlLxJj2tokSTo qVz0anPMReEtHJzxkUvStdWha2WJhqLtCts8tmuPLoZXgMrpVhLKM2P1MVy0csloma6HYjyPoHjP 2CciWmB479imf8ik02VadtD8IZSEKHjBSq2ieynXAcoOLMKWGNTisCzWJA+i6n6DQeVk35YBw0dn LAGumQvli/IlpkXlS2VeRLTIvKlmRTiRuWwlHwo1dE7j/CjX0bkBXgwnoxNnfgKyWmJS6bjYncwK NXyzoGmVz4a/TFrFw1jyDgg/0JyIzhnY6mgqiZUfdA7J+7HuP0h+C0I0LGB6HRPfpVjW/TFq0Crj sLb0cqho5eBOFs14npLKCJaMyQLJ8k6FbEKWdjtonZ2HIhhqFkfpiJUIo1IXbG40NVrAfpA60FfR NT6UMwv0GTwuwUdyCpGM2WactCfIemMy0mKXvTCldCrhH5b7Jkf2UeZ0yfH9ovjwgyNNlCj4PR6E eP0h2PQqizBWken0J3fRub0J3dGwOq9sSk/YJFgpv2NQex7XBNNB86BTejWQc3oFE1UKXaydpezF zO0PY79CHT2V+M+ivxt4I3G7Ra43SJL9PS/jvhRr6CPozSshZJYE0XwxeQORubAyYtDaewVrEL32 OWS0I3vQ+CS5RNt1Jg4TxMJd2xXLjYUo861qilCejlk9AIWa7OWWaB10cnwFZLbNUTFpz2epnsb8 8A+9Ms12aSO2T0KV2aNSnoQ56Mq9oByJaZjjv2MXz7Ocd+w1LhLNfmWaXooUS0S6Xrsbrn4k9I9C XtD0paAdyM/1M/TsGBrQSQePRya0disnp9ADHK0TeS8ZI3Jl7lfl/SDyJfyr/wCleFHm5q0x/jvS KFbJfHekUa5dGZENl7Qy3oWuegrloXulpi4XQpehK17M50ctfscTKf0Y2Zkeh2ckdr6CXgunsMlo 9GPujsdo1HHmAxah7G6Y6GI6QKiOUNf0m0Tv0sUaQtb0Eq/KB2xcQtK0a/Ad9CpaMzQVIHNC2xOR ilq0JzXsOXayJWP2GQS0M06SKFGydS1ooUywBY7GP19BPgCEgikTNFOuHY/sOn/kBF7C+RjRk9PT 67EeQ0kxqyRO5M+w4npl+EvmT7EovM0G5UsyFYP+RHoRPDz6/wBFPjvSHIvQjQ8DaloTSLcL4emx Sx9h7JClsuzYRtPorY/Y7FgrJex2EinXBNUMeWgc5He0ecNAoVvYjabozk1bA7TEa/APnpU428Fn j9Ij8XWCzx+iLJ6X4fxRQrbSNym8dg6+uzs3oVTKZzIHNgJyNylkE0AhjybBTyxS1ZTHJIVuWhks XTJdy9mJz1IeuXsxK5YZVB52R/kbjLRmc9GYs5MZoN1wBOWz1U8SMSe2cg/cPXCb72ylXM3KWhau SwbnLQpro13wBdPZrjy9he2XsEofsG1wVL/Is0y0huL0hGl6Q5Dolo9CKCp7CwYEJWxbHKhyG0cs eEcgZsehS9G/W0TeW9M+f5D/AJV/9LvLemQbt3Iuwo8z+R6NUyxgfqmT6lpDVcsG2jJvSHPPQC2e j3lhdgLZ6Fyuh/YvOWZnU9A28zCpaHMH7BTkarkZnE7GLO/Qv7exiMtGoPMwKN1v3B2Oi+lbjSWF kcU1gm1dB3JpdiGulu00avabO0is5tzQ1SbS4JXof4Dm9MICs6E/sRYlfIQnL2HLl2JTfsUQie2N UvofqkTqWPVMCwsdaHoSDKWUKwYXy0T0il3wPGW2b8tCkJtsYXRnyNxptGZy0T+TLTHbOibyXpjI XReVPRKveZMBD+4Gt7bAwf8AIWrw82npj9L6GlLQlU8DCloXS6W4uI1OWhK2XYec9CdsgpkOxeb2 agDluQeuI58RO2GggjWj0IhGtCt9DhIStjk1VB5WjdnYahJsPfA0lsYog0VOO8AKK00NQhh6Jrab Kong1CWjUnlHIR0aa0KrQHz0C1sy0EYOTFoolJIHIWu6GZPQpdLsOQcjSROt/TEr0PT3Jit0SqPT y67QvHo5Lo0kcl0OCfgpLswniQWXYJr2QxEm9MZrno3KegdaCNaAehj3oVm/YNR+wco+wWlYka/D MfpVo6HoLQjR0h+tdEdno4+hEtBIrDORWQ8K0+xTKpg3HoHa9DUYJIFdFeLBXox6SInMemQ7N3F3 mxymQ5Qf9UuxLh5ufrGaugyYOqGg6jo5gKTDnoDOTYWaByRy0BT0DgsyGFHQOuOxlR0DTMhb9Fpx OxibmjUYnbGKQbjg1WvY04nq17mbMa0x+laCuJinpBmsoTvpdDXyKuP8iHaY66FlHNiHqo6R1vhm j0kL2vCHZw9RG9NZAnojIhC+XZPnL3G75dk+cvYriSTI0N0zeihVPRLpbbKNQORHR3wcjPo35g4R 0aa/0IaRWsb0Gpex+MfUm1PEtlCE14gUinHxA7oYTwSuVrJXumsdkjlyTbQeMy+ol2oVX9wcsWci 3j7lc+Hn5I6ORWjrlg1HoxNAoekCnMXmwk0wEmNlA0zGdjVKFPo5R0jr8EMcjHR1rRuEdHpR0TJj IE7Uao7TOXBaV0N/QyfSrxtpD9ccsn8ZdFWmPWSO3pno41wJGOjk1hBlHQOxaAbF0tMXkBkwk2LW SOlG9MzkLWPISU8vAKQ1LRNkbFZrYtahqfbF7ehskrFPrMzOyeJMw2UIF1taQFrLOOJv6ea0EJcf s3WbfQODCPoB+hStoDjYWmPucjENVH3Nb4MSSHaY4Q9WK0rSG4LBLTKcb0MQQeOQMA8BLZZFbCxy +jFsG0Fi8GZzWAU+h14RuXBpMjODdr0fQcrDTJignZ/0sx1w8/J/oxXDCWgvjoP/AE14g5LGUZvY fzwWsWwMg032AkGiXIuhKkMY0BrD/AKNkDJbCRiYf6DQ6ODTMyjoxXH3DtaOVx/kMfhjfRuqOgzj o5VHSCNE7fR8eC6X8hQpjoSiv5ChStGWx2NnZR0IcmOmUpx0IclaYMPoGWSJyIk+UPcqchdk+SxM vh8POyyFpjgpUR6E6Y5wUKY4SF3Q3AkhmETbgzUEFwsCNnpzO0Lxib8pR+m4o5YtHb6c1oBZY39E rNtsYsfwXkNkVT2LWR7FvH3G7ELf+x0smtDMfycksnIPR19AoLH1C81sBOI1YhaeR0sy5ANYG+Oh ZrLHKFjB2R8ENaKFa9T0o6NQXoawmSJ9G4lsn3wZ2h4eBi+OgNcfcdvgSX5FTjfCtR0iTxljBVoe kR5S7H4OfAVnQVdAbOhaOT2xK7QjZJoduEbB2M61oC5bMyejkuzEnoc0SX4Dk8sBa9G3L2YK16CS 6R0xOb9zjejljxIx5FCQCZ3OzWNGY9hUjmwtOjMVsJ8PKIRR0A2Zpzwwohal7nMG6l7gtmpFCiOh uK0L0dIbiiWn0ohM7HKYeGQaQWtgUx23IbrsBa9MO+tCtr0wZ9HTW0TuTY1kThZ7oY5b0xGP6RZH hNbX10f/AKmVoHN6ORejE5GHVkSXAFklsCnmRq2SyDhLY1eEV3tjdYRvQGEjcpaFv0KaMuXsHreh Ty9xmuRz4HNbD4O1r3MKSwehL3YPp3WyjV0EkL1PQZy0T0ulcrSMR/uFGn8k2EkrB+qWgLCxvoef RP5K2x6T0JcjGGZHodknkLsnTj7FPkfSfZ+i6HwitB+P8KVSJtJRqeheQLHOhuARsFFoJlYEMrWR paNQWjli0dhLRyx5TMW9mNtiFvYGXQzYs5FrFgokU976L2MWz7hrGL5/kHJE+StBq3lG2wFbwgjl o7XTcdaO5ygVkNHnPDOuSaDQ5vYuo+w5THoXW5DlK6BtiWhyC9Tq+HoLSOSZOvQsXGDu6BQXsjt0 9GKpZaG/oYv9FjjRzgoVw8don8WXRTraaJcnpbiQVSWAdjwjaX0HYtMH9BUtdE7OmJWj84vAjats OGJq9ikgM5YDz0KW5SKZWxFAZS9mDnPKMyfsZkN+SK0LW9nEdsMp6GLwVD6bj2MRQtB7GYsyimQi R1I58NxWRTNc7OYN1L3PY0drWJmfo1SUaR2uORKl4wUacYJ7KscpI1/TeDPTDOSwBnJNi0NaTCRn rYC5po7nCAXS0cp6KqGlwncvOxJfpDXJnvDFX2iqfCC6f10ZT9QVkjqloDbIJLoVVwXtkdqRh+0g 8Fga+IROmw0Udl0ejo9J6Ffsomdgd+QaEmgK/QVGtGrH/wACeZ2ufuCZ6r9g6NS0yrVLKDfBanpD Pwnr0qlbMQXuUKloRh/cH6ugLHY4RuecCd3THbF6k+94BhHZZSQhe+yfZ+hy+QhOWyzGiBtNjVBQ qeiZTLooVSBtD51obi9GvLQKOzeMCGg9cC1s7N6MQ6PTejNdNkFJZQtauxti1u8jpNpJon36yJeX 8g9euye1/IUx1Hn5F0aXRiTaCxWjM0CvQvnTA+RzyMyWGcTeRujdhoPaHqdk+HZQo6Qq0aujsFoz aEr6MXLRMn0zwQvkcplsxyHgzQ9lH6OVfkXOLLpFWjeCLxX0WePtIiynqYK2ORWgdsdB4rRm1aF7 4NudiE164ELlsqTjonchbCxvpFkWhCwUtWhywUt6LIYh0ISXszMmbl+mDl0UIQ1sBY+wSYSxAV2G kIa0w8OxiLFa3sYiwWHFaCphYvQAJGQDHKkw2TtSbkDi8sLU15AtDUPV6GoTajgUg+hmPSEUUSGc mzyM/DsewBiRqT0K3SGbFlPAjfLQUoG1pE/kyzIWcsNBL5+4vKWylTw83ItvYx5aA2SO+WgM5bNl CKf6Ow3LI1CIvShyC0ZQzFGzWNGJ6QR9ArOgUWfKSAx2wy0Ch2wyGNBS1o4zlX7Oy6OVN+YGhbXS pR0hnGsidMtDSlonpFUTw9H+4UKXpE1P3Q/VLQux+MNZ0TeT9KMn6k/kdMGAcy4SeQ2T7G/Iocjs Qmi7GuHm1jDUN5KVPwmUdlOjpA5B2NDkAuMmK1oKkSso0ditA5rYaK0Dn2YjWloGBsWgzB2DEA/C beuxCS9yjyPohJZmVR4SXO2Mx6MzPRej0mCgZewXjkG47GlHQKyIaoNzw5BbHqFpCMNySKNC6AyP hi4hytaMWrKDwWImLFolT6Zr9kjkx7BUZyhrkx7A1LZSn+JNVNUVOInotcdPRG4j6LfGkkkRZmy/ BkY/BPBixPAaElgzbjBOqZV/YxSS0TeUuyrNLxJvLwkxmN9E5K2iXaJWvCY5bLIjdsugipireZMy 0dX6Zp7H7EKmLzjkB4bHJRyCcPYJUdTBwjsPFHoQWQyrBdGLpjB5aNYwexlGbO25ZnyaZuqb8uwb O1fsL9FE5CnTIcgxCkcgS2VxWxhbCJAo9BExT2M20esWidyHplCx6J3JfYzGwLycJdzzJis3hjNv 6YrZt6LZIbezfloHKWWcecGE35IL5J7ljlI5AUp3gcgtCLKMT0ax9BWYSYRgbXoFD6ycMQwwq0Bg wmdBNgLIelLBmuXuYnIxXP3NS4d/Zp9K1L0hlSEaZ6GPPQikVrKtBFLFiHqZ6RJc8TQ9RZ/sC54b OUelLQje+w7noUvkBC6ZeTohesyFLYYQxbLMwdizEskVVA6X7FOh9Eup4kUaZdGZEFjooQegyYtB hlJYJKGOw0XoHLs2now+wEE6bRiQKfQdrQGwZLEumI3rTEJLEkULydJ+5TD4T3ejSesnk8yQNS0d huWQiaMg1HoFatBE9ArXoxelf9i0YrfsUuMstEmuXuWOL0gcvgM1spQjlGbI6C1LRqyOiLemG1wi cuPYtUsMf5kdMRitlcPaI6/0UOPLor8ab0RqFhoq8fQnJKLcHCrCTwcsk8Gap6wFlhon1oqbFpSe CfyXplO1LBNvi2mHGtgX4SbNti1kdMdsXi2J3S7Kpezz62xKS9mbjHJxLM2GhEc2DM9MOAGUNjni CnAxMNpIFCOxmMdA4R9hqMdAVQAtOAPA3OIBx2Eq4BYGSM14UgkloHBe4S8Bn0oUjdYnV0N1iqPT xcQwng0mYTNJi9FGzk5aEOT0x2wR5HTDlE2ZIm2LLYtJYY3JC1qKoZFsx8MY9juWkci8sdvhz6NU PGByL0JVDMXoRaH49aCSYva9BJTFrJZBmTrSZqDCeWEYqhlZCTSSC+emLSF7JMFCf8hqyXYss+eR qngq66VqbNDKnon0NvA7BZRNa0EqZ6Vm0N0WaQjOAxStA0lobGx5z0LXT12ak3gUun2BMnZK4AnL 2M+fw49mZD0Jm98YSuOZD1UP8E6qeJIqUSTSMyFGIPDQVPQPK0dT2TNFTQzF6PLbMxejcNsXoJSa cRe2OBtR0Btjo6X0XccJPIfZOnL+RFPlR7JNqamWY/Dzs3DzeDdL+nJLRqtYDfgv40MprAG56Nt6 F7X2BK6F3QOp/wAha4j6IVLf9Qu8NdGZlwZieyxT0bs6M09GrOiBrpd8bRJ5j0xOpZkOctdi1Edl cckivH+Q3VHaKXHiJ1QKXHrE5KKcU6G646NSyEqho7OO0TfRYkAksoUvhplBx0K3x0aqFZVwgclY kxCZR5i9hCcS3G+Hn+C8VmTGIRBRXsxmuPQymDPWe8AVkcDijoXtj2LVbZtdAwayMRehWL2MReQq QvR2SyDlAYUWcnHQO9AuRCaBwXuMWrCF4/sdL2jF6O1dDNb2silbGIvYDLsd6Q9DEkbVf+ANWUOQ /wBoVT0VQtgJw10T+THsszSwTuTFM2K6dkjhHmsCtpRtgIXrGSqenn5cYq+jtSyzLegtCG+IVK6H igiej0Y6MyWAN7Grhvxyhe1eLDKzQvdPLClAXYaqxJHrLMoWUsGts1o6WDm8mI9m5aBp+wxPgNej 3HWcFCEdCXHWkUa1okyPpREbRicdBKY6R2S0dpwkL3woiTcloRvQ/NaEr1vB0i888Fl0YmGcQE9D URa0Di8SRR488ImKXsPUS0da4PxVopRllo3kBCWUET//AEQ0Xy9oYjLQapiqzgNTIVSGJjiWgVq0 wkZaMWC16daWiZyI5TJN6SkW+RH1ZH5C9ivEzy807YJ/A0I6Br2aGILQbYMPZiWhe3oasQpb0FJ1 r5B0L+Uv8OPR8/S8Wl7hS6F596Aw72Wqo6O2LR6mXqjtr0eft7PSmuEnlQzkFxq9jHJl2C40lgp2 /kktv6KNMFgoceHQhS9D/HmlolybKcaKMI6M2LeDtdmj05JsnWytbQNrCE+R0x2TFLl2xiF31EPl x2yfNaKnKXZMm+y6PDzsi0wMI5kN1R0L1v2YxFhU2JlhcaAXRytB09ALX2AvQmJpYmMVxyBb9xmp jG+C5b2GjHRycdG4vRybwhY1oRuj2Kxj7jt30Vj+2Pl8FP0PCOg9cdg6xuuGQarQ6A9SG4RYtBYG YSJ6ZZDa8Oz6EL1llGb0I2bkzoYx22IWx0TuRHsrWrRO5C7K8bFWuEucQtCMz7CUrDKafCRro1Fa M2I3Ho5PoSn05Ccnh4AyfsFt7AP9FMsClsJFBlHRitZGFHQFsNTwVsiAgv5B22ArGOLDk9oU09lH jrSKMFon8ddFGtE9stxeGmjNfeAjWgaWJC0x3gST0J2bkNS6F2ss6RWTdAnEXujocktC1y0Ml9Jb lk6TcZjlE9ISt/YeiQ6ltCIbT0Va5h4Sy0JVy0NVvZNSL8dUNLoJUtmIYwGp7FMqUtjEP9np9G4x 0ZsWEK/Yxw0hC9/CTyFsqcj6Sb5YZTjR52eWgFL2OwEaNso1x0ht8YqOGZx0I3rBRktCHI6ZuNhZ GtCtb/kLfDl0Qq/7ha4nSNzLgvD1lymfqasnoBTLRuabRA56elK2idyp9g+NPo7zMpMBxZdFCX4i XCdFiqWh6iW+yZVIdolsnuSvHKRVrejspPyBVy0ak9on0VNLQXOhe3aYZdAbDtE7RK5S7JF2pMs8 n6ReTpsrxHnZ+AoPYxCQnCWxmDG0iWa6NJgbfptPRmzaAXo1iMniYzVMXsWJG4DWtoCfR1S0cnLQ KMj0pa2L+Rr8BWvsXh+2bslnIGqXuOU8EMoVIcq0K07Q3WhFsbIdBIvAOOTu0JKJegsnoUm9sM5a ATZsoNV0BZ0T+R9H7Hon3vspg7Ja0TZ/vAepAJ/3BiropfhMMR0Zn0dicsFfszQnd2BxsLcChlso l8B/YelDkY6yAqiNwjoVbHzPBe2OhPGLShctCEtWI6GKrjKHHXRRrWidx30UqhGQpxm8aBuOGH+A Z7AlD1H/AEzN6Ao3LZxRGLgTlGZLQtctDji8Cl/TOl9JcqSJd69jVT0Zv/R2BUvCNJNjlc+h2jLf ZNi8DvGtxJZF1PCrHWivVV5IZqpBcaSaQ9VjJJZdFHFFxM2RbWg7idcPURvpS9aIfLi45yReQ9s+ h50V4s+c5Twy3D08z+SuHeMilXhIQoiPQWjr6SQj0+mIcj6UJrQjetHQZlWkIQ/ulji6SJK1YVOM +hmTqFYH0r1PoO36ilctGp24iSa6erL/ABFOb0xOj5g3y708i/Hsy0UqfxEb1RXpKNC2TaHpFLj9 kuQtxlGtaRpraOV9I7LtEu+j20EXQG3QZdALno4XT4TOV9InKfZa5T0yFy32V4Tyv5DFYywxqqeR BNjFMsMpqSSChHLR1rRmuWgjJ3wfvglatnYm7VsxEYnwCX0ImebysHPh5bZw5gbI6ARWLB2cdCuP dsOa4Jpj/HekP1k6iXRRpZPkDjozGOjk1gJDaOTQhelcyKyYKQxOIvJYQ5A0vkWteETr5aY7c+yb yJdlGNCaoUk/5Bip6E3LMsjVPwopcAl7G4nJrR2PRyfQn9jUhO0zVHLNW7ZqpZY3xAfPRuqHQ0oA 6UMpLBPTKpXBS6PZPsj/ACL/AOlW1aJ1v7DhirlDXHWkUKxDj7wUK1oCyjEkE8tA5bCqOjLjlC1w o0BUW3oJGBpQCqOjWzOC9kdCPIXZTsjpk/kLs2H0my9I3IXserO8hexqmJYuIi1quBoxyMUweTMI aGaovIt0PlbHeNY4aZRpu2TILKDVTcZk9JMql6K6mngI2vERhbnAd2epO10p+toS524s+Z5S20fQ 82xYZBvWZMrxcIf5HgamOMDsFoVpY5DGAaZNjfDkloR5Gkx+xpIm8qXZ0dYvL0Qcv5CnxZZwSG/d FHiS6KLXBGPjLNfRi2WjNcsoxbLTJUunoS2kTeXLsxxH0c5cuzPEl0U6/Emdv7LnHfRT472SaJ6K NEtkWRF2KmyvW9Gm/YXrnhHZWeyJfl7KtsaT0Au+nlZoBdNtGqWLexHlzSTIHLntljlZeSJyltl2 GTz80NgK3kPDTTFq1gYix9Ii05Ha3oNnQtXLQXy0TtDFXDFu2YicsnszGxGpPQP1ph8GowMRmjfn ox7Gy2zljwhJy9xm15Qk/wBsbEmuR7jvZRplklUMp0C8kj8M9KFbwGx5L/YCvaDZwiWkWuNIBZEV sQ5YxK6QcbZNfRDk/SVyH2U75dkrkPstxIkvYolsdp+Ci7GqmOvwGK0NxejNjwci8IxZISl0qnwX m8yC1di8nmQxSMrwW+soUjKFqdjXjomoomXoXtfZOu/RRuWibf2MxoXapjXGfRTqekSeNJFSlgZB uJNIaSPNHovR5iNlH1w4kbRhBEzGwF1g7FonclaZSseibyXpjMYOZJIj8jcjVBm5bNUFn6POmm6H q0N1RYtV12OUrBPeyqZpeB4xx8PY9gqWUYa9xSY5Nr0LDRuU34g08I5OWjBqyaFeTLslzj5Nsf5E uxJsdPhFmt0ztLHYy0TqZbHIy0baFxSN2S0TeS+x2yWidyZBY10DJQlKXuh/iyJsnmaH+Mx9rgjG /wAitXLR62WmYrawZtlom109D64TeXLszxZYZjlyyzPHeClL8SZP8y5RPQ/RYk0SKZNJDldmya42 ehjZbhb6nnb7IRhboLVLymnkn/rKfoejJ4MTllG014gpS7MaNQjyd5I/JW2WOQ+yVyCjEyXMhSEd GsYNVrRpx0NbI6naN1vRtvQCOQnlgByJeNpArJGFPZ23ZhIJIR+w8JhovQvAKmY0UwzVj0KN+zGm vJAJQ9mFIVUGoe0UqH0TKcqRS46/yLyD8TKNT6DY0CqWhjHqR0WrqFrOhO5D1iFLY6DgRckvkEnk LZY5EeyVcvZluNkOXgp0w9UkkCkj0W0Oa2Jn3Y4p6B2TBqejE5ZMU9KPrR7OZDNC2hWHY7Sto2zY 6UKUM49RekPnRJXpfHgC6OUybcsMo3yaTJd0m2x2NCcrC8eWyrQ9IjUPDKvHloDKjIrg/F6PN/7M Rej0mTaD2aTNqQv5G0zmgfvR2yWifyHkcsYlcxkCcuTaJfI7PUvDOch7eQdMvYrS4Sw0qKlT6H6e +yZVLofok8iLR6MUijHoy4+x6Dyjv/snYd60d8cbA2PCG8ZiJ8jSZkvbJ6YhyJCsmEuk/IBJlcrh PVd6Dqk0ORnoWhDYXDRtaZny0asnon37Y3IVtWwoWjnO0KNbQ/x10LOGx7jR6Ct8AmNMbgngzb0H hHQO2OmTp9KdcI3JXsdoQTkR9j1ESnfBC/0OVrCGq+0ArQxCPQlsshjUE2sDFSakYphoahD2J6rR TLNptrRmWcMZjWsGbIJIB0M2Tb3pku8q8iOMkq/tjcbJstAq+jbRmpZSCtYQ3fRczszCOzlkcHVP DwaltGmORSbOQ2dtRmKC1wjrH0NFBMGYbQZR0LbOSMJ6BPcmGmsC+3JhpjHKfQ9Ucsp8ddCFEc4K nHh0Iy0OgcqWg+NGaq9DKr0Rui2XwVlHQpdEozhoUujroKaCc7RH5C7JdsNss8iJOtgWY6PPyx0m ThsyojU6wLg0VTQn5BtA5PCDSWgFmUHsGuGqtsfpEaR2oXbDw0h+ph29C1bCylpk79LFYK5ZRNu0 x62TwydfJj8YnJSNUv3KtD0iPQ/YqUS0gcovHWx+MtGZTOR2jviTpFS8OJs2snYVhlAxtGf17ASe hG99lGyJP5C0zY9J8kNEnkPsBU/YLyewFT9i5LhI3plOlt4H6M5EKOkUaVsmtlWOx6voIv0Yr6CR XsTMq3tB10J8laY4uhfkLMQJemKpaIt0cyYrYmkUJw2xe2vRbFCnKZ6MdhFDR2KXkGjHIDZROH/o pZAVnDZUlWKW17DigLjQn4fR3jR6BOIxxkbb4KaHow9QN0NMZjjAK5aJpb2HrhHujmZ6mIWyOZs7 THZTvhO10ZqjoZrjlg6oZG64bQiqKJexqmGhmuGzFUfUYqWGS1RROw0YYQOyGhiK0cnDQDZRE7JP Irzkk8irsv316ZL5FeyjEzMuNaJ1deEEcdB4V6Ozrwh2+k+tE+xYZ5PKN3RBxGrw5PZiaPRhg1JG kjd8BcHYRGVHRiEQqTwJpinje+AbELJe45YtCqXuwp8BcNDvHiVeP8JfHKvHWcE+Udih7KFS6Gox 0ApXQ1FaJGXqNIXsj2JXR7KdscoQvjphQZVaRIvjsRtgVLY5yJWxRZBLUuibOH+gUoDs45AzgOTE vHoTnEWsjkenEWnHY6WJeNv0HVBpDdegcIh4IyjVh14HrYVvQKKNPoU0E5aA2vRO5DHrX2T7tjoR Pap+naHmRW40dIlcdeyLHHWkZlG4JHoLRvxPVx0F8WSNlyjhyMcBPE9BBUkLew1jYvZHRO5MdMqW IQ5EG86G4zMmPhB5MNsUgsTKXIh2JOHsXQ+HmZI0x7jPpFOlLKJNHwpUSawT5UdMtFOtYQaEfYXq noYreSOtlU7CtaFb+mMtsWu/wZPo1y9Cco5FrI6HnEBbFYHzsD+rnAMVtjMIgYL2Go9B2ynZiUdC tkNjzjlApVrItVomyUT5QaCccLOBmqOJDPraJl6OQ6B3dMLDUQdr0LT6Ob4Tpx9mapjsI4ptmqo7 GuuE7fRmqI3XEFVEahEmqh2MZqjpB61sHUlhDFcdk7ZXAeCydlE1XE046MbKo4IXw0S74dlm9aJf IXZRiF5qFYR0esjoLBaOWLQ7fSZ+EzkRFYj167EUtsfD4KT6ekbgs4Ms3Wa1wdL2MQQXBmtaCYEM YkBsiLKPuxycdMWUV5hSDSQzRHaKvGXRPojtFWiPQjKPxSihRHSGkhen4M/CUpvwFN6J3IY/dLCJ l7yFj9JKQpYJ2obsFLCqWLb0LSQGYaQGWhqYt9F5i8lmQzMB3IdIGjcI5QRRwzVcdBVDezGxiORT fSOyTXwYjFJIxYsg7NcrQhchC5MqWx0T7kNiiDLw5QvZFrixykSKF7It8VaQvKw/4+2x6uOgyrbR yuOgqWCTZ68zwxGvDNuOOjj/ANGopyZjYSWgbg5ALq1jooqCURTkYwzZfQLXCDyq/Zk2UcTK3I22 TLn7l2N8PMzI3X8H6eifW9ofpfRlgwUKuhup4Eq2N1SI7KEGk8C89yCzl6izlsCUPh74ckL2hmwE 9lEcCc6MRfsNQehZL2DwAom+tsLnQKS2FM6yCgnC0BktAl+hmaQBr3DQi5SCxejFj0bSZizo5AOt IAkar0zmkjtb9jWJY/V8Go6wJ1MchsnodDGa3obo2K1Q0h7jw6EXouxraGYx0dktBoR0ZnHCATHy xC9aZL5H0rchaZJ5H0pxMRlYGG0emso9X0bktDW+in4Tr49iDWJMqXxJ01ibHw+CfAclo3Wjj6CV oPfAproxWtBQcFoI2IplSpA7OgVcPKYSx6A1WYswxkeAUVuNUtFCqCWBDjW6KNMvLBPlKMLG61oK ZrWgviSMbbFb3omXPMiretMmWL2NxsS2KzQrYh6cdC1kSmWLvQhNC88j04ClscDpojqhOb7MR/QS yPYOvTKE+Aq+j9EdBpV5QvTPCwxhWL/It+j0zMW1o8z2fY8zAqrgtd0T7kUbFkRuiMggyLbOULDR b4nwj0x2i1xVpA5Sv+NKRTq6C4B1rQTpET9PTSWjDWzcMIw1g8kjTNrYWdiwIcibecB5oUu1kKQL paJnI+ku7U0VeQ+yTfnzLMbPKz5EFrfQ7S+hGvY7To2xcWP19Ibh0J1Mbg9Ikssnq2an0Bwws3ow gUMhdByTByQx45BTWg1Q2q4C/wDQWLF/L2YWLN0Rwg2TPbOZ0cT9gdB09BPHJhwwwsejM+gdsRdN nljAC435aBSeWHKFuWCZ6D2aaMwWxgHyxyl5KNPwnVdlCl9E+RFOOChSk4j9EOhGnoo0voivZdjk bhHRmyOEEi9GLHoxBpMm8n6R+T9LPIJHIXZVjehGXgGuOjcujNfR2XQTfQJnaFL+mTbf2Ur+ibav YfDE5eGWtBakDk9BaQ98F41tjUEekjUFo1NaFN9LPjmxKyWBWMvf/oxyNZEFP3Y6FwV9d6WOLN62 WuLLKR89xbMNFviz6E5S3Cy1U9IOsCdMsoY8tETGWCvxhk6SzJjl8uxNPs6VoTZiUBayKQ1JitrG zsTaE7O2KWIbsYpbLBRJLaFLYoHGJubzI7FD1wSuM8kaUmvp5G4RTRuyiXtGo5YXx0YivEKugaD0 AnHQjeihZ0IXmwS5Fo9Stos8XpEartFnivoHKPwUU68YCPGAVe0bbI36WrI9GW9nMnGziZuhbb2c m9Ctu0Myeha16DlBOdom8j6Sb3iX/SveuyTyFssxHm54N0voerSwI1LQ9V0jrExI3UxuDyhGDwNQ loRSL8daQScjkWCnNGoPIOuDpYb4CmbbBWS0YgLrYj5YkGjMUlL2NxmP0Sxk0NOZ6EssCmbjLD0C zayNjkXhGZSyCUzjlkWpBR5vBxrLPNnUGhiOeJmC9jTeEZg/ZmnaHK46G6tMVqkkhmEllCqHxwpU PSKND6JVD0UKZdEdoqxsoRejM3ozGWjk2L8HLQnyH2SOS85KfIk9krkPOR+NkuUxWsoJKOjNWEkF eMBt9FKuCNy7JfI0yre9PZI5L7wUYuiMrMZ0HpYn5DNMuhzngEPpRrejcugNb0Ek9CGulqvglyem Sm8WMp8l6ZJm8WMoxEOXJ+Q/x54aLnEs62fO0SwyrxbcNAZY2V4Mh9JTPQypZRLot12NqzRC40U5 K0cvn2LRlo9yJ6YCE9HKeCaybYaT0LW9BHIXtn2GkJuxWx4ErpdjN0iddPbKsaJqsznLCRlsWjII pDnIH1sO2cjNpg1Mz5LIKR05Pl6HIzyFUlgThMNGRjRTN7NWPQjchyT0KXdmyheRbPUraLHFWkSK u0WOL0gMozCihDo0z0Oj0iX9lfzroOTMqRyTMZCSA+umpPQvY9BW9AJvTCQbrgnf9JXI/RUu+kvk dlOMgzVs3StIdrWhOhD9a0bbFSFiEUsIzFGmtCRy2DnL2CwYtPUw1bCa4HNjDYGx6Nt6A2SwAkdb 5smeeZBYyFHqQSMilyQS3saUzUJbF1MJCWwHJSktDkXk69A4zwa8vIU0A9nPLZpMxjZtGhqzr6Mw 7OtnodmGO+jEGOVRFalseqjoTdDFbYzW8Idpl0JwhpDdKJ3opx3oehLR6bMwejNj0LocsgpyH2Su RPsociRJ5EtsdiRPls3VLoK5aFadoZxoY9bBmuCt28k6+OSncsZJl7xkfjAyPgH+n6moLxegcbdY DRfkPZPLexquWgkpaM1QyjUqngQ2tlCvgjyJYTJM5ZsZW5MMJoluHuyjFolpboLRlsqURaEuPFLB RqWdHWyzCihx5PC2OxehKlYwNJ6I6KL8A3yBx6N3I9GOgV4Ao2zEha2WBua0I3BytgZY4KXTymTL 54Y7bLBPu3IqxrR5ttycjIMgMItBopjGbL2dbMZZpoylswP52Fg2hiLAwCpAtjY4alLQpcxmS0KX I2dB3XAtT2ixxX0RKntFjivSF5EM/jsqwejsugdb0ak9Ej9LqfANjB5+mpsFkJEdPujTegM2bbAy YaQ3XBa4mcjsp29E3k9j8ZJllBKFpD9a0I8foo0rJmQyEg0YmnHRuMdHXHQjY7XBCyPsahoLKGZH PDA3fDFJ5y0LXT09hprQldnZspCrfBOX6NJnHH2NKJRoGcZ7OAkJ7MYOJNM7QXzodjLKNxkKRlgI pinJlLY35I5kCmbTF/IChmzUHtgnLR6uW2c5Bc9H6mPUyy0ibXLDHaZbQi5HyipXjA1ShGuWh2h5 JKWh6kaxoFY3gMvyAueADUhDkPTJF72UuTPvZIvntlWKWIyJh+O0kN51onUTykPQeUFc6ZkLgC5k vk9MrXR0SuSsZG4mddLQgnsd46yJxXsyhxoj7rSERXR+mGkHlFeJmpYRueWiN9ZWo+iZy46ZKcfd lq+tvJP/AKOJlWN6Qqo0zlMN9FGmOPgGqCQ5XjRlsqwoYqj0MLSMVrQR9EzZRU7AWbYSC0DluQet aMfh0IFZHRP5EeypYhDkR7DhnZI4Rr47YjLPmVL4diDh7lkeHm5cO2dhHKNqJqENBHEFsXOP5YvJ YMY2GsQENdHfGwsA0VoBELFsxoJYzcloTvGmxa55OldAvE9cOV6wVuK9IlVraKvG6QGQ7Dx6Kdb0 dkzFZuUdE2j0UuAJsG3s1ZoHnYeiW57s6wUwmdApM1GpsWu+kzkPf/Snb9JvIW/+j8ZNl2G4/wAK lC0ibxl0VqF0LyG4p2MRjo046NwWjTWibfStQJuPszziG8cyZ1w0Hsz4ErIiN6KlsdE3kR7HQxOT GxXw9macMBEsSOyxgemcxc59PTewflsYugMLlHU9gkzaYLBYWMgqkATNZwA0YqCyZyEvYE5YPVtt mfJze2UK5DnHllk2uY7RLYm5DksVvKQ7Q8YJ9EtD9PSIbHyxxS0BveVk2CteEK10bolcrtkm97ZV 5ZH5D7LsPhNkYTjvooV9bJnGfRRg/U7J6KTPWyWGS+S85KFvRN5D7NxoVk4JdSZR408JEqUsTHeL LOB1TtCsPWW63lG5YwApegk5aJtaZ6sLSBW4wT5NebD3W4zsRdqcnsoxrhPl9G4S2PUQTSJUJ7WC lxrlhGWijCx+McbNdoHGfkEzomZa/BeX9zA1BaF8ZsGYLSMYGOX9GbFoTvhooSg2hG9OKNhjci4S r9ZEcJyY5yXjIrWsyLZ8IL9Cxjo9JaCRWkcn0CwKWxWwBnYWx7AN7GSK+gsWFTyLxeQ0QmNmtmwV qTCMFKRyNp8PVrEkipxvhLhuaKnG6QrKK1+yhDo020jMDUuibZVFcF7HlgWGmBYxAUzmdA5M1Jg5 MLQAG16J9/6HrGT7n7odAq3sc4y6KtHwl8X4VKfgrIOxIdgtGpdGYPRt7iTMr1wDFbYRx0cgth1E xvoufeiNsNMm8iPZathom8qHeh+OgskcJ9n6YKTeAs08sE4jpZ539gGSyYxsJJYZj6MTFPJtmoo1 g8tHVg7YSo9E2tmUa6O2ammdcUehpmXZhbMRnls0Bro1XuRR4yJ1T+FPjLSEZGPhD9Wilx3pE+pD lDZDk6PQ98F7fofOgFu0JG/ol8vaZE5Lwy1y/pE5PbLcBDlZ3jS6KlbzEkcf4Uq5YQWRdFSwtmPE l8p94HrJ6J3IemdjkzJPCZY/5B3iSxgRs/Y7xl0U14T46+aLFM9BJzWBaro1Y3gm0tnpzmWhPlT0 yX/Wam9jvKbwyQ5P+oVY1wjyZfyKtVyeChx5kWqRS48+jMiKcORFqqSa7D50I0z0NKWiKl0vnItH YbmOVrLEqtzHoLoChuJ7CtLxJ/KSSY5OTiibyrdM7H6Fk8JHKkvJi1SN8mW2DqZcuI86qX0NxejF j0dT0YnlgGVXNIUtewKWWGtWAcFsavBGumoxwGSBZwwsWjmw5vRxi9ksMYkxWztBSwayBqn7Iq8d 9Eil+yK1D0heU2HsoQ6NS6MQejTZJ+x29AZgWFn/AKB4/wBDJZn9iByX+QM9DDjkBZhBJi7v/gpa 8CFkv5EO3POSfN/yIohE1NspcV9FWkj8Z9Fah9CchXgv9MfrWQklhZAweOgjllE7PSl8O1rYwllA KxhPQqxdLoKxaJnKSwyna9EvlbyNxsDJk0iZY8s546M5zMJ8KktHm40mLWx+gPozcKN7GyuG1KTD Z1k9nJhdGom6B1sJE18OJaNAHKdApg6+2En0Dh2Gnwx+jlLy0VuP8JFP6RX43RPlH4+lGt6GqZYY pDoNS/YjpFKnQ+noHZLR1PQG2WEJ10JvhO5b7I3I3kqcqfZG5E+y3CmQZjdD6H47RM40uinX+Qsi 0xUIzYtCHIeFso2dE/lLTCx+hX4Sbp4mOcWfQhyNTGeLLoqqfxJ4n8i1TPQSc9C1UtG5vRI56Va4 I8uWmSG/5WU+XLTJiXu2V4lwmyR0bqekP8diNSyPUR2BY/FOirx/g4lhCnHWhz4RX6ehK4apXsPw joToWx6PQmvSjEtIFdqJJ5X0r3dMj8vSYeIPLrRF5D2z1Rjkv2N0vRY/DyLf5DUVo5NYRuPQO3rI C9KJS0J3fQMTd0uwMHoelwRbWwjejSkClLRyEsm/IsO2L2PYbOhez9I5C74Ho3JFajokcf8ARVpe heRD8PR6DPSkDjI7J6J2h1LRxyM+Rxsw3jZuhNGpS0L2M25ZBWMOUckJ3vCYg9zHeQ+xFv3K8a4L vg7xpYwWOP0ReMm2WOO9CMyHY+lCD0bb0Cg8I05aJC6LaWhioY+C1LD+WhbHzrQG7omch9lC+WiV yZ4yMxoi/kNEmuXsxhPQlVLLGU9FrR5+NmbXoSlLEhm2QlY9jIQV0w8ZBYisJbDxkdSA+9DCZ5sx FnWxeg02ZmwcHs9ORiuQa8Aquj9G5FfjPokcYq8ftCMhXhKcOjcHiQOvoLH9EbK9bDqeEL3z0EfQ nyG1kxTti6T0IcmfZIvlse5U2skm6zbL8UEVsY40tlWqWkROLLLK1L0jMsg40MSehHkbTHZPQjyH pgR6HkXCNyNT/wCjHG+AOS8y/wChuM+itv8AEkh/kVKejc36g6ujdnRO/S1LhN5T7EIvMx/krTEY R9ymPBF72P0R6KFEfYRo6RQoXshGRjo2UqVoYawgVK0MNaIqfSyU9GuPkeitCVI3GeEKrew5bSB3 ZwyNzHjJXunlMi82fYzF6KzZGReQ8yCcdi90v5Bjj7wXP/JBvbHY6QK56YZLQve9MVPo109E66fY KEtHr37YBRbSK1PBG3sNKWT1cgTZ6MsM3Rjob8tALH7GlLQOS9kCkDT3wZ4zyyrTnCJvFiVqY6Qn IVYZaQRHnI1JaAy0KXRtHWzMmY8tnWzhNMw3gFOWjcgMhiBd6FrnoSUczY3a+wFazJlEeC9/TG+P Fpoq09CNEclCuOEIyMrxLQwpYR1z0DyYctiPkq3wdqk8B/PQnXMI567FOenfT0culp7JPKl2O3T0 yVyrNMdjkjzUybTMaUtE6iY1GTaLanpFifDs3li9gWWQE9jI0Fb4ZUsMPGYpvIaHR1oR9PY0pmnI XWTrbwLaHf2cOzkZqkDm2j1Ly0brgCe2V+MVuP0iRxd4LHH6RLlPRxeFCt6Nx/QKHRvy2SNFH1t6 QZvQnf0xny0LXLRsroxy9EblrsjXrDyXOUtsk8mPZfiZ52aP2B409lmiWUiHRqRWolo3KBhr9Meb 0Jch6Yw5aE+RLTEyujrS0S+S/b/objvoXv3MPx1jBU1+JHM7oq07SDSWgNPQaX5JXxlK/EnclCkF 7DvJ6YjW/fBTD4C2tj9MR6ntCtC0h2uO0T2xyKFD0hhv1F6VhBpaRI/Sib0uh6WMfBWljOdC36Ol poW5DaTIfNn2W+Q9EHnPTH4V0kzkeyWbB7jdImzf8o/x30WWuHnS/wAiguhbkPTD59RTkPQqF0pT 2T7Fltg10FsBo9CVwTW9mWYWpBWDxsxmNBonJfpHYsy/2hP7BXWUeJHorVR0iZxF0V6Vomys9HEu HZR0LWIdlHQpchUm5Z4LtYMSlg33kHYMRF+zDsBynkzN4YOTGKTKkxasmaIPJyyQfjrIW2kKnf0O 0RxjQ/XHQvREchHCJrovx1r0zKIGX6Q1KIFxzLZiYx0ejpHpTaNqGgViwjVph74L3WaJHKs72Oci Tjkj8q3bKccEH8iuH//Z --nextPart1216749.O5x7CTdV2I Content-Type: image/jpeg; name="The-Only-Answer-1.JPG" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="The-Only-Answer-1.JPG" /9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0a HBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIy MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAIAAgADASIA AhEBAxEB/8QAGwAAAwEBAQEBAAAAAAAAAAAAAwQFAgEGAAf/xAA2EAACAgEDAwMDAwMDBAMBAQAB AgADEQQSITFBUQUTYSIycRSBkSNCoRVSsSQzYsE0cvDRkv/EABcBAQEBAQAAAAAAAAAAAAAAAAEA AgP/xAAbEQEBAQADAQEAAAAAAAAAAAAAARECITESQf/aAAwDAQACEQMRAD8A8H7mJ97gMVZ4P3OZ 21g6cGc2wCXQ6MGimgJ8XA7xfU37PpEQfUMO5halOy4KCcyTffucmCs1LHqYq1hJmbThn3c950Nm KhoZDBGUh1EXQ8QytxECZ4gy2DPmeAezBklGtgtfPWL6lgU3DqJhLt1fXmDd8qRHUWbUfMwdU4GA 5A/MVsYqxEHuJOJjWjBsLHuTD10OeSQJypRUv/l5m/cOYgavT+WEaq0ydzmK12R6g5jAIdKuw4EB +nyY+5C1he5mqqs8zWIkNNx0mG05lpaBjpMPQPEsWo9VH1jMe9rb2nWr2HIjCMtidfqHaUiBAxOl sTTjEXdop1rIC8h6yPHMy7xW/UqikA8mZtTun1PsXBu3Qy0moDKGByDPKNbNJrbafsfA8HpCXDj1 RvHmCu1aVIWZsATzbeq6gj7gP2i1mpssOXct+Y/Qw9qdWdRcXb8AeBOVA2HCjMnb8ypon2VZHUzO 6TKaNyOn+YQaKz/bn8TA1BEKusI7zXQffo3zjYf4jC6Zal6Dd3nya/I6z46gN3j0mSSDOqVJ5VT+ RMFwTOrjMkaSmqzqgH44m/8ATUb7XYfnmdoAlOlRgRkCM/o9p5Uhoq/ptqH6kInrlVZnUCpaiGxk 9I/MWvJro28TX6Rh2ltVVjhRkw40LsOVA/MPla8w+nbHSLWUP4nrLNCVGSuR8RR9OngQvFa82DYv DLkQqaY2DIBltdJUz4IEaGnRRhVAl8nUOvRPnoY/RpCOolBa1HaGXaBGQaBXpgAMiGFKiE3gQT3A TQfFQO8yVPaBa3J6z5bGHQwLTq0XsRo8j7hyJpqlcSxIzAiZDRvUVbe0Rc4MEVY4gi0K8A3WZLSv gxhNQqDJMQsJC8RdbDnkw0n7bPcYmL2dDOo2ROPzJE7OsEYdlLPgdTG6/S8jLvg+BAp6mGUyiPR1 I+mw5+RFLtLZp3w4/BjlGvlfE2LYuZkviSMmyAd4I2QbWZhqwRbyjZh1vDjrzEC0yGIMNIuqX6tw 7wWnGb1hTZvXBmdOmLxL9Rs8zgBhNnM2tcQ+rEoaeLpXGKxiMAjW5tI8Rum0ARCypi25RmdSwr14 mtT1fpyVum5hmNXaOmxemD5E83ofUW07YPKHqJ6CrV13IGQ5E3LKzUrW6GyrLKNy/EkO5Q5BwZ6q 23IMi67SV25K/S3xCwypba9gPqAMVt157CD1VdlLEMOPIiLkkzna1ILbqnfvFmYnvCJRZYeFOPJj dfp6/wB5Jh2U1mxBlpZfQUlftwZI1NDUWbT07GFiDBycQ6acsAcxdTgylpjvQcSiBGnwescqGExN e3kTYTCxAbHEwbMd5p4tY0kMLj5hku+ZP3GbR5asVEth0fMm12QzagVJnuekdSzRZjqcCPVa2leC 2fxPKpqnsPLGO02TU5DHph6ggH0Ln8wFlrWsWY5k6uyHFnEdGLWhrC1b8ctGsxDQahWp2E/Usa9y bgFzE9TpQ4LJw3jzGA+Z8WkEC0sjEMCDB/qrE6NLltaWjDqDFToNOT/2/wDMzjWpR1t3++DOquP9 7GWP0VC9Kx+8yyKvRQPwIYkVtXav97D95wepWKcMdw+Y3q9OtoJHBkW9HpOGH7zN2FYTUBwGU8GN 1OGnn9LqQp2McZ6GVKbcERlWLdagiExiLae4EYjRIIm4yV1S5XMjXDDS3f8AaZH1A5maYTsizdYy /OYBhMkCw7UJMSDcwmpu3ttU8CCQczLUNI3E6zcTKAmddTEPtN9WqSWU5MlaOs+/ux0lascxgput Ric1OnW+koRz2M3UOBNXOKkLMZoPL21lGKnqDFX4lG/+pYzeTErVnOtQoxxBFoZxF2mS+3ToOYKa WSGWP6SoMN/cRFOZW9PXNTfmairQSGrrzNbeYapZpl1a8DpOkYjIT6YvaMZimQ+DDKyuMOAYkWwY SuyGoxZpcLvqyR3Wc02rs0zhlPHceYxQ8FrKArCxRgN1EUsV6ldRUHQ9eo8Ra5usm6W9tPaDn6D1 Eo2fUuR0Md0J13PURJq1BztEo2pF2r56QpLBYVVmxXNhIIJl4kz1RR7IPfMsMvHMh+pXCywVryF/ 5hTE0DmV9HVioHzEKKTZaqjvL1dQVQo7QkVZVJ8ycRlUnz18dJrAm2rwYlYJUtTrEba4UwmZ0GbK HM4FOZki1tBX2brMdhCD6QSe0UJLOT5lUZqfmU9N9ckIeY/p7tkYKpo2DiHWziT1sycxhHLEATWg 0LmRgykgiOUeqgkLdwf90SGmYrksBA2aV/7XUx2p6JLwwBBGPiFFmZ5at9Xpj9OSvjqI/p/VxwLU IPkTU5DF0czezMSo1+nsxttXPg8R9HBE0AmTEUtWUGwRFbl4hVEq6I2gMCGGR8x/UDrJtzYmKYn6 jSFcvVyP9s+0mtKn27Dx2J7RkPzFtVpRaDZWMP3HmZaV6NUUPWVKNULOMzyOk1JI9tz9Q6fMp6bU FLBNSixftPEl6jvHjZvqB+JPvPMaCT2VqCSwk7U6rflU4E+ZTAsuJitAzaDnE4ROqcGBWdHQmwMR kxhqK2/tk3Taw1jB5EdGurxmamMulEp5HWfLq1U/bmK23+63HScQcy1Ki69sYVAPzA2s9py5yZiv pDYyIonYkTtSU7RgRG3vM1J1iTC6N7eeg8xoKHtVfJjzIBwBxDDqT/p6/wC4zv8ApzAZVsyoK+YQ KEQsegGTLFqGiYPMt6av2tOoPU8mI6Sr3tRkjIB3GV0qLt0jIqwqZMbqpPWMUaQ8EiNewQOk3Izp NhtWI3HrKdtRwYhdSZVJzHmarbmbak5ny1EHpME7p25ELq3ArVe/WBpGIC+3facHgcTSdxmO6S7K +25/BitFVlvKqceYc6aysZI/eURl6oE0/E+q1JQhX5EcwrqGXkGIJe1PhXGjWJkpiSSvUrDXVsU4 Zv8AiQTWcy1rf6mpb44iZpBaYrUb9O02AbCPgSkqTtNQSpRjtDqk1IGVSfMnEMqzr4RSx6RBCyvM TsqHxDajUNYSF4EUIYnmZpYaiYNW3rNlWHcwNis3UmBAvsz9K9IuBDMmJnEyXyw6PiA6T4NJHVtx KmjIVN56npIlILuPEpi3AwOk1BVE3k95k2Z7xIWZhFYx0GQ58zYsz9wBHyIBYZBFCrVS/wDbtPkQ irqNMN1NhK+B/wDyYVcQ9bkRA2n9WBwt4wf9wjbWBlyCCDI+rqBU2IMH+4RanXPQcHlPEtWKOoxz JF7qSQGE7rtcbRhOBIVzsDkMczNpkUS2DCI8mU6ssdjnnzHK2hpZ1unx/Xr4Ofqx/wAwunt9ysN3 HURlMOpBGQeIjWh0+rNZ+1un/qSeh0du+nHiCvHMBonKsRG7lzzNMozJF7FjbntOJp2uPgeZkp/t M5woJnf0lviVzWta4UQJHMsOp/sWrztnwJEoqJ16FsXkc+ZYiKmHRosRtYjxCV7mYBQSfEkeR4X3 MQK6PU7d2z/MXsdkJVgQR2MQPbcMGT7rpm28iLkNb0hacdNxVww6iU6r1uQMD+RIdqunUHE+pvep 8qYaXoknNXkaRsd+JnTOLUVh0MY1G39PtPVugmmSvpaf1ipH3Cen0ui6EiSvStLvuDY+leTPUUgA TXGC1lNOFEzZWAI0TxF7cmbZI3KIjYolC5TiI2iZrRYoIE2VKeASZq+9EUqDkmKKwJmbS3bezAhR tELpNITiywcdh5jek0akB7BnwDGnTiWDWFcKABxCB8jB6RZuDPg8UX1Se3bx0PImK9S9J+k5Hgxj UqbasjqvIk5mhSoD1Gsj6lYH45grfUQQRWpz5MTStrOnTzCrphn6n/iW1AYLEnqTC06VncEjAjlV dSdBk/MYDCWLWVrwABCCubXBhkURAS1SfrXLNsHQSztypEkX1FbCDKqJprM57cd2TntzOEka4N65 SNBxmAer4liSrK4s64lSyuKWVzJJNMDkwzpgzCL9Y/MCcqGxABChpzb0mgsQIpMMmYJRiGSIMpGa 1i1Zjlc1EKF4nCMQgGROMsQGxyhHkSHYcMfiW7PoQsewkN+WJ+YUwJzkRG4dY+y5ityTBic2Qcjr Kumfeit5k2xeY/6cM1Y8GENVKegg9cmBXaOqnENUMCD1ViPQ6g5I5mwPSQLAR0PMqqodJG07bqa2 +MSvp2ygjBSK6NFOXbJ8QjYAwBgTheYJzJMMMzGzMJ1m1XMkGtc2yhELHsIYmupcsf2iOpvNvA4W SIWDLEyn6XpwENpHJPES2biAO8v6aoJSijxCRUVRxFdfo11NJ4w46GUEr4nXq4m8DwN6sjsrDBBw ZrSHhviP+s6fZrGIHB5iGkXFjL5E5frTbNk8xe2j+9B+RG2rOZpEkgNLdZV9jYlLTh77BkksYFNK hbIyPiVNKi1jCiMiqvo0WmsIv7mU6jkSXpsnEp1EKJ1jFMBeMmBudVEzdqQiEkgAdzPO6/1RrCUr JC+e5lbikN6z1KqrIB3N4Eg6r1N7MjOB4EWvu8mJMWsOFnO8mpBm1Zz1hKNdsYHAP5iftKPubP4h EWsf2iZaeg0/rCNgOMfIlBNSlq5VgRPLrWrD6fpM3p9U+ntwScdCJqcmcejYgmZ2xVLwe8arcNNB sLJ2spNT7gPpaV0XMzfQLaih7/4lYkml/wCjx5mWuwYMFqLWqfiCt4JmdJhdRz1jCaiSQxzDI58y 1LNd4jKXcSRWxjKOZrRimt3zOuK7xhuvmTw5hFsMdTVmiYcoQwi5UqcMCI2txEIbFcYdQfzBaQyR MPtPWNW0Kea2wfBiNm5DhhiVQVlWc4illJx0jnuYORCVvXZwZkoVlcAFw4/Mq62oJZkdDESmXEzh N7OBOhYbbgCZMQx0mg3MyZ8OskarOY9TziIVShRwMnpNRGlHE0VAGWOB8xZtYqnCDPzF7dRZb1Jx 4iGdZfv+hftHfzJ7LGmExsmaQNnEBbXkSiK+IKyriWJDtr5jnpiZDj5nbquek1pCaHJx1mSa1Nnt 17V+4ya2R3jdhNj7jAWpxFQ9oW3aUfBxKemfHEk+mtmt18HMfQ7TGCvsTMJic2xTEBqNctA2qQX/ AOIHW60VApWfr8+JJy1j8ZLGFpkUPfLnJOTGqtPbcAQuB5MzodIKgHs+pvHiVEaUgCq0O3kkExka g1DBHIhEOYPUVZG4TQFT1AjogjC61XHK4MlKMHBjNNZduBLUR9Uq92zdiRzUa7Q4HSeq1WkY17sS LbWMniZsMrPsh1DDoZkU4jWkUFGXxDGsSxFEqMeorweZlU5h1wsZEbpYLDm8KpJPAiKuYnqdS1z+ zVkjPbvHQ1rNY+pbaudvYeZN1aPSm5+M9pYp066dNzc2HqfEletMTUCPMKYiXWkmbU4qGIo5zGql JoBInNpgk5mkPM4V5m0XmSN1TOpTo478GEqHE7qP+w0Q7pbyagM8rxKFOowZCot9uz4PBlFG54jK qv0XAiM7gRIlFpGI8l/HWblZLeq0Bk91eq9fxJSWe4u1vuH+ZX1lo9h8+JA3FXBEzTBiOYSvtODD jIh6k5gh6lMaSs46TlNUerRQOSJuIuKjCCow/wDTXq0y2oqXoCZBj258VxMPrP8AaogG1lngfxJC uxEXewMMMMiDs1jdwDFm1Sk8giGl9ahHK8jxFjYQeuDD+5nkHMDYFs68HzMoGy4uMEzNQ32qJmyt 1PkQunXZ9TDntInGMGTMlsz7Mg+xOgT4Ta9ZIekQ91hRAg79ZikciZuObz8TSaQZmyJxBClQBzJF yJ8BzNETqiSaC8TDpmGAzGU04C5fv2jiRbq+YIJKmr02BuTpECJmxBFYN1yIZjNaev3b1WCB9OOL bF8jP/7+ZRxEQnsepsvQHMoDkRionAGTwJP1es4KVdO7T67UPcdiggdh5jWm0K1gPYNz/wCBH1JK en23nc30L89THadJXQPpHPkyiUmTVLFoCiFFiL9zARTW2moBE4J7xAbickkw3E9BXfWTgMI0pBE8 ypKnIMco1z1cE5EZViy9CscgRqitah8yUvqVZxG6tWlg4bmMoPO4IIPSed1oCahwPMrPeFUkmQNV d7lzMOkuVUG0jf1SPiNk8yfpD9bH4jW6EIoM0DBKYPUX+2u0fcf8ST7U6nA9tDyepEPo6PYXe/3n /EX0mnxi2zr1Uf8AuMtZJN2WZiGrqF1TA/mMFsz7ZkSTybVn3CvfOJSasIiqOwi9aZ1wBGPrj9y8 mYhpArzNIsIV5nAJIeuZ1X/YP5mkmrV3UsPiKSzGaNQVwrciL45mgsCtUMGGRGVMnaAnOJUVJqMp +ttLHb/aIiRmW7dGtnJ6xZvTeeG/xKypMXcp4MZqZ/JjA9Mfd94m/wBDbWM4yPiGFuktgcx6vdiK 0r2xH614moGSDBOI0U4gbFiCrGYJhGExiBBsGRE7Fj7LxFbFhURLMh4MKlosHzM2LAcq2R1mSbJI mS86pFibh17wb8GKEDzYbMVDcwitJGQYRTzFg0IryChSekHbxeZip+k+1TAMrdyIodW4my+e8TS3 iFD5jqFzNL1ma0axgBKNOmFf1Ny0Q+oo2rvfr2E7ZZiEduIhdZyZJprQevSAda2HiBa3mY93JhpA v+h8GH9NG7VfhTFNY/1qfIjHpL/9Vjyph+oT1Ws131XAfEMhBUEdDG/UNP72lYAcjkSXprwibH7d DHyo7pND7R32cv2HiObIYLO7I4ACk4UhyIDU2e1Q7dwOJJE1rCzUtjovEClbOcKMzSqXfA6mPqq1 JtX9zMekp+ksA7QbU2r/AG5/EbZ5j3I4in1DqCJpbGXoSI0Hz1nGprs5xg/EMQDaixhgsTAs8M+l den1D4i7IwOCJI3peEJ8xgNmL0KVqGYUuEXc3QRQrWipNx69hAadDfaXflR1+Yq9jX2gDucASigF dYUdBL1DPZAlszDPmcXkxQ6cmMKmRBUrHETiIeVuU0eoNns8etGeR0n3rOm2agWAcOP8xbT6kbfa sOMdDMNOMvM5iGZf3mNsk+Xgwq4IxB4mlOJAlbWUsInUWPPUt6+GHeAFbVthhgyOj6IbbRLqVcSF XwQRLej1KOoR+GHeagovt8TJrjgUEcTLJNYCorhq05mwk+tsTT1lm69h5kiF6BNUwXpD19IoGNlh c9SY5SjNjAghQuYOxY2KiFyRAWDmKJOkEUjTiDK8wRdk4i1qcR8rAWJCwpdiRdklG2uKunMyQa29 tvg9YSxQRkdJhlmPdasY6iSZIwZ0GcFyMeciECgjI5EE4W4nVs5g34gw3Mko1WcweqvzYFHaCrs2 gk9hmKe4Xct3JlqUK7MxpGzFq9HZ7YfvjOIStsRS7o1CVBu5jBaKaO0NQB3EKz8TbLlr8Sfc8Yte JWtmFIDtMbp1usGZlMarLICO036ZZt1lfycT7hgVPeLVk6fUqfBBEi9rt3VyJrNC62lqlLKx6DtL mmYPUPxOOnM3ZrLQnCYH3PmdL/MU0xk71SzFAXy0cZpM9VY+2n5hfFC+kHLP44hbGgdGf6b+czTz JYZpnOZ8ROAcwQiwq5mFEIIpoGfEAjkZmZzMk+IAiOot3NjsI7YcVsfiSXfmFJ3QpuY2HoOBG2MH Qvt0KvfGTN4zEMYJh6knEryY5TVGRCU14AjiV8TNVccROJqQJPqml97SEgfUvInk768EmfoN1QKE HoRPIepaQ02sAPpzxM8oZUhb7Kzwxx4j2nuF/B4aIumDCUAq4I7TEaUjXMlSI4qbkBx2mHrmsZAU 4hsLYu1v2MEwwZn3VTqRJOlTW2IVHgG1Cv3nytmCUqtXbWMK/Hgw49SsxyqmTUDGHSmxuima1Gj6 haT9IUQRL2vliWMLTobXPI2j5lKjTV0DPVvJjlBfTaBjhrPpHiVqa66xhVEAHhUaagpl0DJjElah drEGVFfiA1FQtGe8qEdpiMW0Mp4EXZWHUGZafQbLNZxOE5kiti9Yt7JdsAR8oXYKOpjC0LUnz3hh R7tE4HEnWVsp5BnorCIrYqsDuAhYtQik+UtUcjp3EYtK7yF6CBcjEyW7MMm4dDF+8x75ryO0JUwt 6CRdtO2hvniZ0Kb9SuRwvJm9UuKR+Z304fVYfAEv0LdTQeoox/UQcdwJypo0rcTQKUak1NkdO4j/ AL4dNyniT9VTtBdOncRejUlHwT9JluJRd8wDHM+LZn0kGwgmEYIgHx5ggS2IK8goH7g/4nbDgwRb KlfIgXqvSNT7mlrOe2JRZsmeU9E1O3dWT8ieiW3IE6S9M0stk2HzJSeoVf8AkP2hh6hT/wCX8Q0q G6TfVbBtRO+czj+pjbhEOfJk22x7XLuckwtUhvQ9HjLJmB0CEIx8xvaO5lEB7c57UYD1A4LjMKgr fowMcRQJidjpo4gXpIliLEzOYRqzMbCIIPUNjTufiSajvvRfJj+vsCUbM8tE9BWXv39l7wpVwYVF gV5jVQjAPXXG60gqhGqxNAapY0i8QNY6RleJoVmwfTJGt06W53D95Zs6SZqOplVHmddoRWC6xOpe RL2oUMrKe4kRBtcjwZzsbXtPXupT8TltWFJhNAwfTqO44hrkyhHxNMvNaq5txCnAk9mYnkyjqqyH IMnuuDOdajquRGqbsEZiXSbRsGRej0zgoDH63kDQ6jDbWPBlet5uVmqKPxNGyKC3An3uZmtBkOcw 9bxNTDoZRHQ3EyzwStxMu8Q675gW2t2mHeD3Q0sX17eREy+I+zZQgyTc+HIhVDelcG7mGutHmRl1 BrsBBh7NSHXcIacEtuEl6vW9UQ89yIPW6plUgHkyUbCT1mbTIa9yYezMX3mdBJmdLj8mPen1EozG KrWWOJboo9uhV+OZSKk9auKV/MBobAlxU/3CO69f+nOO0iliGyOojQ9FW3MZQ8RDSv7lSN5EfrHE 1A0eklaur2rcj7WlnZFtVT7lR45HIlYiVGowAr/zD+/WB1iW3E4YEe3UlhheIjZY2c5MKYFxCmOC /dw0+7wDribpfcdp/aGobTWnT6oMOx/xPSVXhlBByDPNWLja37RzSaw1Da2Sv/E1LgrKITGa9K79 BNUV7nAlkVBVAAjIEr/T37sBPh6fzksDKTJM7THECQtNfHAEn3ahnbqcRrW2/wBg/eTieYVCoSe8 YQ4A5iYsxCrcIFQrvsr6Nx4hhrEbh1x8iTRdPjbmOhQa6g/3gRS/V1Vg7PqMWdxFrDmWoC93us3N yTKWnpFNIXv1Jk3O1w3g5jw11eB9LZmYadQRmshepA/Mk/rXbhFCz4FmOWYma0PQ1WI3AYH943WZ 5hMg5BIlDS62ypgHO9f8xlGPQoYdW4idFq2oGQ5EYUzYbduJO1PUx1jxEdR3lVE608yVqK9t5bsZ Us6wL0+6hGOe0xWn2gtNTfB6yucOm4dJFpQpwRzKGntwdh6GMFJ67SbyWUc95FtqIJBE9RaOsja6 oB92OszYYkMmJzBEZZYfT6dXXJmca0nUxU5zLmlu9yvPcdZPu0W0b07dRN6Nylo8HgxnQqqXhEbM Bg5jFKEzYM1jMYVZyqo4jIr+IyMh44gnMaas46QDoYoq0HDMswVmSxngyRqGy5la07ayfiRbjliY UwtaYRM+2MwZXfYFjTptAA7TJT76g/WI2aUryvMrskE6BVJMMSQqHMOlWZsJlsxuqsAdISFnT0f1 Fz5lhgAIrpq82j4jdvebgI6kBq2U9xPPuMORPQXfSrE9AJESo3agKB9x5maosaBCNPXnxKlSReir aAB0EfrTiagrQTiZNeYwqzpWaDz2oq9u5hiLsJT9QTF2fIiDCYpLkTDLmMbJ328wJB0ggpVwR5lF 6oA1cywjPXmkn4zAoJT9n+jgj+2JInOIhT0302Ay3syARI9a4IlrSMGTaeomozQmrg2rwP2lBkgL FwpmsTzl4y5MTsOJQ1XDmStQ/Wc61A2t5nwuizvzMB+ZnSoe98znv/MUD5nxYy1GjefMwbs94qWm dxlqNb8wlYLkAREMY9orQLRn8SiUqNIDy5x8CUadPUP7QfzFa26Rut5uMmRp6m6oJx9Au3dX1Hab rbMcrIC5PQTWBN0ljUXg/wBpOCJfA4kOtPe1AVR1aXcADEYKG8Sv6GOOwiGqfCMfAzKpG1Oo/wCo 2g8Ax+hdxBkB23WFvmW/T7w+1T1xMytU7dpVeouoww5k4vtIPiWmYJUSemJ56x+T+Y0RRLixAwk3 X9QISi8jiB1R3NC3okWWUNNX/RGBFNuZV0SbqBCJhaz4iV9Ps38DAPIltaYh6imLkH/jGxGEXcAf Mf09XIi1K4RPwI/RxNQHaahgcRgVDHSYpMYBE0yA9YiliYj7kRK09ZVQk45gWOIW1sZiN2oSvq37 CZrTmpcCoyM5yTDajVG04HCxYmYtL6ohbgTHGZSM7hEcTJB8wQ9lla5+rJiVthsPgQhSc2HxIs1p GUWZqpdzwplLTaLkFz+wlIq7pKNqFj1MI9RPaPrUMYAg9QoqqJxyek3jKB6gcL7S9T1n3pmjwDaw 68LDnTm64L3Y9ZXWhUUKowAMCZkOl0qxDqMTWzE4ZoNhp8Xgd3M+3SQWsp95Mj7hJLoynBGJcAzP mpSwfUoMLChBZvbKdvpwIzXwfESepkJVhgiGIAiZrq32qPmEYQ2lTkv/ABBGNmZO9va5HzKyjmKa inbeT2PMbEqjQ4GVOfzOgNS2DGkMDrDhQZsPv1mBzFr9aNpAillkSttmbTjGptzkyTcxZsDkmNXO WOAMmcSj2xvf7z/iYpLDSAc2HnwJx9KuMoTnxDscmfLIkVzNYzOH/uN+Y7RQGXc38QiJFZkrKv6a s9sT7/T1boxH7SxalBTCISpBEpf6Yezj+IC3RtUfqliPaXUC1BkjcO0frM86AVPEPUL7Wwu9vxNS jHpU1NVf3OPwJ8+ta/FdYOD27mTtN6da2DY4UeByZZ01FdC/QOe7HrNTQb0dA06bmwbCOfiMNbF9 +B1mC80yK75kz1OzZpXx1PEcLRbVVe9SQe3MKXnkXJjtDGtgw7RfbtcjxDLMQqNusL07e8nvCDmZ ZY1B1n6v3m7UPWZQfUPzHDVuWSIqsqemEc1nr1EQKFG5hqnKMGU4IlEuCvEj6o+9rDt5AO0Q1muu sTZkAdyJjSVbrN5HA/5mqDY4IjNTYipPMLW0Up1WYnLvUEq4HJk+/VezXgH6jJjXE8ky0YqXeq2H pgCIW+o3N/dF1Wy44UfvCfoh/e5/AhtJW7VWP1cmKks57kysujpB+3P5MMlCr9qgQwpFeitcZI2j 5m7dC1SFs5xLIrmL6s0OPiWDXn8TddRsbAnSuI1pANjHvM4XF01aDkZPzNbVHRR/EI04FzNJ1BHa U6QFacx2oAYjAPXXFvUVwFHxHVcARXX/AF1ZHaNSZSVTUKzdMyowHaRXODCU65qsK3Kf8TMpxTIg mWER1sQMp4M+YRBYiZAMMVnAvMk6i5jCV5nK0zHaq4yIEVcRH1DTg1bwORLQq4iutr/6az8SsGvL usYqXbUPnmceuGQZrGO0y01UOY17KWqAw/BgK1OY0kQIHi+tf+jnwZg2Y7xbV2/0G5lUSttnBQpX Lnr2ijPlgPmNs3GJgsMtafaoEUtbMO5MXYZkQcZhEXAzOrXzCOu2lz8GCTK132fkysqYAA7RDSV7 rl4+ZVCyiriJmMJXO11wuMTQcVYlruXA8CPgxbV0lvrHI7yqJ6XSi+7aftHJlqqhawFRQB4EmUM9 T7lj9escda1MoqfrrhhxFa9arHBUgw7NxNB89mIL3INmyZwSQwbM5fZ7Wnd/AnyCKa+zeRUvQcmV SaMk5PeHrQkdIbTaM2t0+kdTK1VCIMBRMyHUtayB0nTUT2ltaUYYKidNNa5womsGoS0ENyIwTgR2 2sc8cxNxzIsMi2Dng+ZgaZx9pBE7nBnRaRBCV6XvY3HgRksqrtXAAifvGdFmYgxnMJu2Vlj2EDWc zuqbFGPJkidljWMWY5MLptP7x3N9oixMp6c406whdOEXCjAgi/M25yIA9YgVTkxhMRQHEKr4kjYA xAaq1K6W3EciJav1EVfQn3dzJd2qa1iWbJlasddhkzWnvCPg9DE2tzN1KxYE8CYaVcgwi4iQth0s zNaDqRlDgREXKgyTO/rgPtWIP75hmyCD0k99bYemBF7NTaR9xlqx9q8I5wYpunXYk5JzNafTve/A wo6mZKn6eSNPz0JjZMAoCKFXgDoJxrMTQELTqkRY2zS2iSUqSMx2vEkV2/Mfpt46xgURjEU12PYI /wB3EItwxyYjff79nH2jpGpOtp4nNPWd5HxHWTImtPV9ZOO0zhAFeJoHELauIqzYMkUYmT9Zfn6A fzNajVlshBgeYtXp3uOei+Zm0h0Vmy0HsOTHSmYWugVrtWGWrMsRFqzB+18SqdPx0mP0/PSWIgtP PSd1FP8A0r8dpQWj4mm0++tlx1EsSJoav6p47SitcBpUxeoA6yn7eDKRBVpNtXD11wpq4mgn7TmF rQntDGrmFqr5kg19Prs/twfiBs0bVMQRLdFYxD2adbEwwji15hV2WqT0zKDDI46Gd1Pp7AnZgiKB 7tOdpUlfBh4hfaOekIlMzXq6jjeCsaS6jH/cEkBf/RqyB9R4ESp0xscDuTGtVattg2/aOkJpWVbQ TJG0oWtAqjgTvt4hpwjiaDA4nzdIO9jXWSOsRXU2KeDx4MNJtxI2rcracHvKFmrZlwFwZLvBJJMK owuq5w4/eEJBGQeIk/E7p7fqKHoekzpNB+YRG5ixPMLWZI9UZzWPitRmYrbEX11uWCg9BGoJnlLT 2ZoWRS2TiVKforC5hEZzmZK8zqHM0xRVyzATQCPEBqNQKKix/acv1qLwg3HzJV72XNlz+BC0hNaz sWJ5M3VS9x44HkzdGkaw5PCiPbQihVGAJnCWFSV9Bk+TMs0MymDKGQYDcw1b8wJWdHEkLc53/E3W 2YNx7icdRMI+DFK2n0L3ruztEZ/0hP7nY/id9N1K2UhM/UsoggzUkCZ/pmnTnaW/+xnzIEGFAA8C UHHESujiKO+IFrJqwxZjM0tGyfK/MCc5m1gjVbkR2q3A6ycMAZJwIC7VlxsThe58x1Kluu9w+2h+ nufMb0lLWKCeBJPp9PuNub7R/mXqmwAOkZ2KKdNxxzPlr9tDnqZsPgQVlmZoFrzyYhZ1jlhzFbFm SmpoTnNv/wDkRgIBwBxGXWD28wwspXGq6phFjdSiIY9n4nPY+I8qDxCCoHtHAnDT/Ezegpodj2HE qmoAZPSRNfd71mxPsX/JleiS0dO68HxzKGzmd01Ht17iPqaEIhInEWGCcQYOIQOMRTJSaRcGcZ5k NJH6WAxGdwIktLdsL+o46x0CWkcxVmHQ8zFup+Yq+oGYWkdqKX7bT5EXt07V8j6l8ifDUfMMt8ES ziaWwgxl6arf/E+RAtpHH2kNJG6NbgBX5EaGorIyGkg1uv3DEyXKjrLUe1WoVvpB4ioYGKvbMi35 hpO8GCak2OFHecS3Mc0oBdm8CILXaapE27QfmQ3Hsarb2Bl/VtzPP6/jUA+RM0w0TzC1xRL0ZQSc GdOrxwg/cwJ97xSvPXsJOewsxJPJmcs555JjdGkAG+3geJehzTUHIsfp2EZfUJUMsf2i2o1YUba/ 5k8s9j9yY7iUj6g7cJ9ImkWy855PyYpUFr5bkxpdVJDjRA/e4/aaGlpXtn8wQ1Oe80Lcx6QuABgA CZKZnwfM2pBkg/az2nDR8RtFBhhWMSxJL0GBNREttRkdIFtN8SxamIpBn11OPrA/Mofpsdp16P6T ZHaWIhprmptVwfzPSVWB0DDoZ5rZgy16fZu04B/t4lxVOs3ETu6Q7NxFbTNUEresXYcxiw8wB6zJ DJVRliBAtr604QbjPtYhKcZ/aT6ky3MyTZusvb6jgeBD00l3VQOTOUVZxK/pul3Wlj2EZNBmikVo FHaNpwJsVYnduJsMljiCOTClcz7bFAMsBYI24i1kEGy8wZHMaZIBl5gnymHRotzCITJKNTZEcr5k 6k9JQqPE1BSPqGoLMaUPA+4+YrptMHbcw4E+P1Ox8maFjVj6YEZ1xF3OIC7UWZ+4z6u73aznqIJ0 2YM6tmYBjzOK0ka3ZnYJTmFyqjlgP3knGfEBZfiaubjiIXPjPMqnbNR8wBvJPWAsfmC38zOk8t0O l0mLZD1vzLUqV25jVbZkyps4lGogLknAmoB3ANZLeJIufk4jOp1e8bEP0j/Mn2NC0wN35mA5zONy ZtaWK7jwJlC1vzKWnfbSWJ+6R1O5wg7xt78AKOgGBGVN32b2kjX82r+I/nMT1SbrQfiVMJgQ9VbO cATq1qOTCe7tGF4gjdSVUDcxyYO/UNb8L4ECCznHJMMKgoy5yfEgW9svyeF8zDstYwvEPdZxgRCw kmRfG45nVvOesAZ8AZnSeS7PeMJZEEBjSTQOpZDLZEg2J33CI6FJLcRqq4HiRVuMYqv5jqWlIMIK wYhRfKFVgImoHfZgtRViho4GBg9QN1LARSAyYM3pr/09nP2nrO28EiLPMFZFq2LlGBEBYZFZ3Q5V iPwZz/Ub06kMPkS1YffrBY5mKNUNTxjBhsST4VhxgxF9N7N+MYBlOoczmvQBa3xznErEHRXwOJf9 OpC0E46mRKOSJ6LTHbpl/mPEVsgQZmmbmZzNBzE7tmlGYTZxJE7BwYq4j9icRVk5hU2yiAcRhm4i 1hlSAZ1W5mWPM+XrBG62xGLNSKdOzE8kYEUXgZk/Uao22kZ+legjuI4lgxOWWgCTzqMDrAW6n5md WGLrgTF11ZqbI/iJW6j5ixtaxsLyZnWsWD6lSfuBBmT6lUPtBY/xJLae8+P5h9NockG1/wBlltWH P11tnCnHwJxncD6sj8x2ipK1wigT7VoH07Z6gZEcBSjUsSUJyMTFr5Ji+mJNjH4m3MEE55mCZsiD aRdVuYxUYso5jVeFXcegkjtbrWu5jxONqXuO0Zx2AiSs99oAGSTwJb0elWlcnl/MZ2GKdCzDdacD xE7wvukJ0HEp6y7209tfvb/AgdLpMj3HHHYRxF6dLgb3H4EFrLRWuwdZR1VgprLHr2EjEFm91+p6 D/3CpxD7akn7j/idUkmCOWaHrUKNx6CCGGEXc3SJ2272JEzbebW8KOgnUpJ5bgSIXLHA5MItR6sc fE2zLWMKMQDWkmSMixaxhRiYawtAAkwnCruY4Ek42TFbWVep58CatuZ+E4EAUzBMG0dl/mdFxB+0 T4p8TSUtY2AIExQ4s7YMZHExVSKlwP5hMRDhbE5vnxUmcCHMU6DDVtzMLXCohkDdLmPVXYEnoDDq SJqJTW/5nxv+YhvM4bcDJOBHRjerVT9Y79ZPY8zd+rDfSDxFxZkzNpfOuYu9eY2DmfbRkZgm/TdG yK1jDGekcKcx1FX2Ux0xAuMTeAJBgzOv/wDiA+GE2DM6th+isz4kiuntwRPQ6e0Np1we08nSxl/0 0saznpDjVVDOZtVyZlVzDos2BEUCaInV6ThMQC6xd1GYzY0XYwLzh9UvXwfzBN6u+eawf3ibmCPJ nLWsUk9TDMA1ZH4MqVDOJ5ypfrUkcAy+uspRAcknwBNSqmwvEka5FrvIX9xD2+oWOMIAg/zJ9r5J JOT8ytUCsswIlbd8zd9uIhZZmYtMdstPmc0txF4HmAZsw+hpL2mw/av/ADAqRsJMa0wyRFFUlpS0 lRyJqA9TX9Mxqxt01h/8THaq8KOIt6iuNG/zgf5m2UTS1/Q7ftOsvMboqxph8kzLVczOEmy8QRWO PXB+3zAhInM+vbkIO3WMqoVSx6ARapDdcB3YySn6Zptqe6Ry3T8SqSKai7dAP5maKgihQOBxM63l q6h0+4zcZC02nbU3Gx+nUyhYFRCTwqiG09IpoVcc4yZP9SsJZaE6nrHyJOuJ1Npdv+2vb/1FrcsY 9YoRQi9BFymTM0lkryYLUW5Ptr9o6/MY1L+1XtX7m/xF9PTuO5ug/wAzJapq2je4/An1jkwr8wRT MgA2SZwVkmMiruekDZcF+mvk+ZFxitQ56+IBi1rZPTsJ0KWOTyYdK4IAVzpSNLUW4UZMMulCfU/J 8RxEa9MX5bhYdVVBhRiFc8zAGZJzE0BNrWTCimQBCibWsGb9ojtNBSIp8tQhkpEwrAHkiE99F7iK aFeJlnROrCAt1DNwDxFHJPeGo1Zq1X7RmKW3u/UwZzOE8Q1OF+Z0WYgXbEZo0LXKHZsAyLSWjzCi 0TQ9OrA4saZfRMo+h8/Bj2FPRaoNVsJ5E3ZZI1ZspfJ4jJ1IIyTzGVGfc5ifqGpyopU98mBu1wQY XloojGxyzHJMLVhzTqSRPUaKnZQoxyeZ5/RJusUeTPV1JgAeJrjBW1SEHE70EwzgTbImcCDd5k2Q LvJOu8XeyZssgGeZ1pAFDOM4mDVtPIlUEDgcCYsqRznOJjCRrqLEBRkx2uhF+/6j4HSfDag2oP3m l4HMcQjV1FMbQPxJmppYZ2MD+Y67mI6mwV1l2PEKkfUFlYhooWyYS+xrbCx7zNdTOwVRkmc2naaW vcIvXufEsJStVYRegndLpfYqx1Y8kw23JmpA7TXlpY0tOAOIlpq+RLOnTAE3IKIq4En+qn+mlY6s cmVgska5d/qG3xgTVEfV0bdOi/EE1UpOmABAskMSa9cF7fMoPXBe3zDCn6v6KQvdjN+lVbry5HCi D15/rhR/aI/6SmKGf/cYfqVahAOPc9S29sgRiuL0Hd6m3wx/xNhXcgAyEre7qbbT26fvK95/ov8A /UyRpuaXPfd/6lVArBkwarzDOOZmBSdW27Ut8cRlFxUoHiJag4vf/wCxjVWor9obmAIEwW9mZiyy unjq3gQdur3fTVwPMGlRY+ZBix7LTzwPAnFpJjiUQy0/EsJJKTnpH6dCWAZ+BHNLos/W44EZsXjE 1INIlEqXCDETtaO3CJWLzKoues0MKNzToTvFrXLPgdB0mSL+odvt4HxO7nPVjBoIUSDB3H+4wZRz 3MoaV6lsG8DEsIiFRtAxGTVry2xh3mxkT1BpVhyoP7QNmjof7ql/YYl8rXni5mfdx2la706jsGX8 GIW6DH22fyJYi5sUwTMO002kuHQqf3mq9Fa5+pgo/mBBRDdaqLzky2q7UCjoBiD02lSkfSMnuTGx XmMgpc5mdxjDVQTpiKAZjFrRlT5jNmF+4gRHUalApCHcTM0kGJ3nPmM6fqIBULHMdorxCFa9Kry+ 4jgT0NbYxJHpteynPmUw2BOsYozWRd7eZyx+IpZZG0Gfd+YNrMxY2zJthpFZoFjMmzMyXginuCcN pJwIrvJhqVzyZnSZQYGTOls9IFrOcCEr5MU0K8/iR9cGvt2qCR0UeZdt+nTMfIxFdFQrO9hGSvAh Ykuv0kYBtJz4Ebo0VVRyq4PmPunM+VBLFoBr4mNmDHSnEEU5jiE0w5ligcSTSMGVNOeIwU2Fkb1G v2tYHHRhn95bXpF9ZpxqKSp4YcqfBmqAFcW1Bh3g2EnpqLNHaa3HHcRxb0tGUbMzpcIzM7e83nmL azUrTSVB+s8YkkfUP7modh0J4l7Rp7ekrX4zPPqN1qr5M9Mo2qB4GIcTREOIrUdnqh+W/wCYwDgx O5vb16uPgxCs/wBSsvkYkvRgkWp4IMpnrEKl9v1Jk7Pn/wDsamLEwYIjEfuqxEbRiCQNcNmqceeY upyY/wCp1E7bB24MSpXJmL60ZprzKFVXHSCor4HEfqSMgcWqOabShmyw4nEUZjNdyoMGagGZQFwO AItYJt9SnmBfUVxRe1MxV6uekcbUJ4zF7Ltw+kYgid+EXHeI7cmPWqWOTBe3M0hqs3thVrhPb4li LYxD6fWvp2wfqTxONXFbBtzLxPSafVVXplG57juIRiMTyS3tW4ZWII7iVdL6srgJdw3+7sYzkMUL RxEbV5jbWBhweIu/MUTZeZutDCbcmHqqyYYXaq40tfENTp8xxNNx0mpAmtWMSPr9XsY10jLDq3iX dc4rU11jLnv4kGzTEkkiZqiPZ7lhy7k/mcWvEoPpviCNJExjWh1oBG6AGsUCLYKwmmY++v5ino6r BWoUdBC/qB5ko2kd5w3nzN6zik94x1i1l3zEzf8AMC9xMNOGmu+Zn3vmItaZz3DDUf8AenPciQtn RYfMtTtVZYxsr7dcJp6PiavXLY8SkRNVJaN0jEytfMYrSMTOqONOB5Mzov8AsN/9p3WjCqP3mNC3 0uvg5l+oRxOKZt4LODFDjkThTJnFbMKuDIOVpgx2ngwCCMViMRtTxOOZxek+bpEENZRXqFww57MO okS6m/StuBJX/csv2iJWzNhiX/qF23G+LWXFzljkx+3S02HO3B/8eJlNLQhzt3H5mcpD9Poay9bG BCrz+ZdBzEUsAGBwIeuzMYKPmI644vrPcjEYuvWlAT3kzUan37VIGAJVR6GlhZp62H+2La3Nb1Xr 1U4//f5n3plu6k1k8jkfiG1Ce5U6eRx+Zr8Q7gOgYcgjIk3UJzGfT9QLdP7Z+5OP27Tl6ZziSSmr DgqwyDPtP6dXvz2jPtfVG6a4Yi11C17Qom0XAjV9BdQwGcQIXHaScPEC5MORmCdZIA5PeZ2kw2yb VJIuKjO+zGwgmigkk9qZg18x9kGIFlEsRcJNhZrifAyIbrxEtQvePuYrcMqcQqRrSVaDDmG1K8mJ bsHBmGlLT6+yngNlf9pjyeo1uPqBU/zJCVF1BUw6UWZjLQqLrKc9T/Ee0+r0/H1/4kirSE9WAj1O ibIwwmpoXKdZQBxub8CGbUvaMINg/wAyfp9JaMdP5lbT6UKAXP7CbjJT9IX6AkzLelluuBLOVVcK MQbMJYtQL/SyqkjmS7qNpwRPWWMJ571EhbmHzM2GVHsSLFzWcjqIza45iNrczDUEb1G0dlP7QT+p 2+FmErFtgUsBmNn0yoryWJ85h2iyeptnDqMfEaW5bVyhyJO1ejOnbg5UwCO1bZUkGGpY5n2DF6NY rYFgwfIjyKHGVII+IoHBnQDD+3NCrMQs6fYQQCDiLap/bGe5PE56e+S4z2n2oQ36j21/tXJ//fxN Bqhhaue46xytJL0dnt3YPToZcqUHmMVTtYn1/tEa7PYvDduhlnWVZaR9QmMwph1yCMjpAMYrTqva +iw/T2PiMkg8g5EtTatiZtvepdwGRMzvUYPSSao9VoYgOdplSi5LACjAj4nk9dpjQ+9fsP8AiDp1 L1HKsR+DD6xY96hyITbkTy2m9a1CjDMHHyJRX1h7EwFAPmbnKDD91cnXLBtqbgdwc5mf1qt9No2n /cOkLUE8C5xGbACMg5HxFnWFIYtIMapt+YiwIM3UxDQR/Vr7lAYdjExX8SjTiypkPcQFde4RxO6W xqbAw7SobFtTch/bxEEpIM+sVkGVJBjAB+o/SeoMeinr+8p+4HHWed1bMXJPWF0WuPFTnkdD5hKc XAozD1gCJV3Axqt5qA2sIEU/2iCU5EJuxNB8a0I+0RXUUqASBGC8W1VwWswqInAabUxM3ZYmbFvz Mk5uE+LCKe98zJukjLvF3cQT3QD2/MNI5smfcihtnwthqNF5uir3W56CJhyxxK+nX26B5MYkf1PR bVLp26zz9gwZ7HVYKMD0xPJXqN7Y6ZmeUME0dn9sooZGqbZYDKyHIBEIqdqaUNO3SS62xH6G5m4F iiztHEsIkypo2jTcZNG2DL5g904WknHfAkD1TcLS3Yyy5ieoRbFwwyJm9mPMWucxZuTLd+hrYnGR E39OcH6SDMWNSp23M2HuUYV2H7xg6d0+5SJ97cCSs3ucsxP5gCMSg6CLvWfHELEXXrGqLnqOVbEX IxOqcSS1RrQwAdefIj1T1PjDAfmefqePVPmalFh/02wbmyeojenO+y6zsWAEj6dyvQy1oUP6XPli YwUpdX7eqJHRuZU0V5AAPMDqKN9W4D6k5/afafoJqA9dh8SZqauvEog8cwVyBhKp566vBIga9RZp zj7l8GVL6evEn2VYMxSZp1VVvGdreDGQMyK1eJ1Lbqz9LsPiOrFiykW1Mh7ieedDXYynsZRGu1GM ZH8RV1LuWPUwvZjFbEEYljS6S91DcKPmS6lxYuemZ6TOFGOmIyKuLpDj6rB+0DfpBjh+fmENxHeA stJiCbNdpj5Xx2m11lb8MNpnHuzkHpFXrVuUOPiCOkK4ypBHxMYCnk4k8lkOMkGDfcx5Yn94aV5d QtVeARuPAjWkGVnntNncMmej0CMy5Amp2KbSsZGRxHtTpa7NLlRyBkGLdOs7+pZaymeJtl5zW18m SGJR8jggz0OsUNmSl0httyR9K8mc7GoeotJAMo02fMmKpUxit8RiWEtGOs6bh5k0XYHWca8zWg+1 /wAyXr9XztBnTaT3k/Vq7NlQTM2qPhdNi75iIFgONjfxNgWf7G/iZJ33Zw2RUFu6n+J3cfmOoVnJ gWYz4tmcMEzuM6DObT2BhK6XdhxJGNHXvsBPQSoX4i1KCpMd4vrNaKlKqctNeIP1LVhENan6j/iQ XOYax2sfk5Jnf04Ay558TF7JPvHKNSFUK3aYKVjjEUtOx8Q8K1Vqa2Iww/eUaHHBnlFs5lDS6t6y MNx4jKMeupbiNo087R6k2B9Ija+ouRxgTpKzizmcJkpPULA3JyI8todAw6GOpp4tYIZmgbGgitgg DxDuYBjCl3gjBAIimo04ALp07iM5nN0EkOZSrRDQv0g5HiJaun2zuX7TD6G0PVsP3L/xAs36Cu3l Rtb4ku7TvQ+HH4PmeiAzOPQtilWXIMrFrzi8Rqp8GH1Hpjp9VX1L47iKoCDgjBh4VT9DfTZtC7h2 Il7T0+1p0Q9QOZlDzGFIxOkjFaqUZ56GBt0/sWZUfQenxDoYyoWyso3SIIAzhM3bS1LHuOxgScwL D1hh0id2mz2ju7ENUEsGO8sTz9mnxBDTljgCeit0teekWahFPEPk6lforAMgZgzWVOCMSx9sU1hQ 4x1hYiO0StprBbpVGeV4MkFsQmn1Rosz/aeDKVH7ODAOciGsIPIPEXJ5lUVu4zFTaQY7cuQZMuBD TNMM7han/kOkwpzA1OQ06rYdh8yR/Tj6gJ6zRYrqVR4nkaGwwM9RpbN1SsO4m+Ip65Q6ZH3SXbaV JB4j5fiI6lVs68HzNUFLLAwjNdC/p1wOozJ1oao89PMoaC8W0bD1Tj9pmEF6sdoMjEoOmYs9cQXy ZzJm2Sc2QLIBMIqzS1wy1cRAQXHaamz7a9XExvrzw0k6D+J3CnqoP7T4c8idAknDVWeqL/E+9mv/ AGL/ABNATUkEa0HRR/EyQB0hWPECxkS2rt9uonPMiWMWJJPMo+ovnagP5idVPuWAdu8xTH1NWxd7 dT0g7W5jlwwIhbBAs2TFNQf6g/EaxFtQP6n7QpCBjNLRYCOaess6jyYRKOlrstICgmVq9BYV5YAz ejoCIABwJQVcCdZGbUWxWpsKN1lDRXZpI8GY9SrzWHHUcRTSXbHKk8GXlSo1kA7zjPAM0U6zQRbm ZZpnqZlN5nMToGZsLJBOgsQqw4MmIW0up/BwfkSztimu0+QLAOehlYTleHUMOQeYwqZk/wBNsyDS x5HKyooxGBn2/iL36Gq/qNrf7hHczmRFALbg9Y0lsn94WtzIKKvDpZiII8MrxSiGV1wRkGAt0WRm s/tB12YMbrtj6Ei1WQkMMQIuNTggy/ZVXcpDAcyPrdA9QLJ9SD+RCwyt++LU3D94tZZzERe1L5HT uIVrA67lORM6RC2QRJdrHec9cxwPzEdb9Ngbs0KgmaCZpxngWfmZKrpL99RQnlen4hD1kvS3e3cp PToZWC5MYqwy5En6ivvLIqyOkW1Gn4PEbAjKMNMhv6rfmMvXtYxEN9ZPzMNKtf0qreZb9O1A2+2T +J5uu76QPEe092GBBmpRXqC+RFL3xmCrvZ1HM5e2ZtkFmDgq3QxVLn0mo4PT/ImmYhpy2v3q8j7x 0+ZkrNGpr1CAoee47iadczzdbshyCQRGV1t4GPcJ/MfoYqlINmROpyfAiK6p3P1GPaYVMMsRn5Mt LPuWvxUkImh1d/LvtEo01p2x+0drCeR/M1INSq/Rk4LszGGPp9ajhJYVVI4wZh1Ecg1IOn2jhYM1 47Sm6iBZBDER2ThWNmseIFklhKtFr7BUpJjjrJGvz72Jmko2bHLHqY5pqNtZcjk9IGir3LAv8ymy 4XA6QkSbevWIWJzKty5ijV5MKSK1ZMX1NOLf2liunnpBazTcq2O0MWpC1cyhoac6hPzMinB6Sj6b VnVJx05lIqt0VYEZKYE3UmBNWDCzqyn6hQ9bIe4nn3Yo5B4IM9BecZkjV0C07lOG/wCZmmMLruMO Mzja1PBiT12qeVMwVf8A2n+JnTh8apHODxDqM8iR+QeciO6K/DbGPB6SlWKSrCrXMoI1Ws0A/bnH o31suOscCTXtxGvN7GqsDLwyniWqLFupDjr3EX1mn2WE44MBRadNYTjKnqIeFQaBZsQu5bFDIcgw DjmIAqtS9dy9e48QyjmSVLVOHQ4Mq6a5dQvHDDqJmUmEMKGgwJqaAoeHqswcRINzC1vJKiPkTr8i L1vxC7siaCVr/T1sy1Y2v47GQiz6awgg/Kmeqt5k3W6Rb1PGG7GYsMqYHWwbkP5EBqwXoPleYK6u 3TWHqrCY/WAgiwYPmZaIGyGp23IV/uid5AckdCZiu012BlPImdJsq1b7WH4lvQWe7WFP3LEatmqq GR1/xN6cWaa4A9R0PmMFeiqqyJ9dp8qeIXRWLegxwR1EadOJ0ZeV19Xtoxx8SEww09T6vVwPE83c mGM58o1GVfEd0rF3AEm5lTQLsTcephDVylgqgTdgyIpVZ0jSnInRku1eTOopEcFYYTQoEsRNtJXa d32t5EyfTn/tZSP4lIU4mwuJYNSxoLfC/wAwyaCzyo/eO4nQwHeWLQq9C3d1jKaJx0ZTOCzHeFW7 E0mHV6epI/Bnade6uEdsg8cxbWa9WGxTnHUxXT7rbA54Ve/mGpdayYNgibXTgszHUc3AwbwYafFp IN5I9QwdQB4Equ0h6iz3L3Y+ZmqGtCn3N+0cK8RDR3islW6GUlKuuVIMoSdixZl5jtwxE3PMqm61 E1qqx7GfBn1JhdT/APGP7SSTt5lL0pPrZ8cAYiIUswAljRV+1UB3PMIqqVnictPEyh4n1h4mwn6j vEXEfuEUdZmksROYhisyRBBPQlq4YfgiT3rai3ae3QyrBaqr3aSR9y8iVhM6O33aQe44MerOJ5/Q aj2rgCfpbgy6rRgp1DCjBiiPCB5oNaioW1kdxI1teCRLHuRLVoCdw6GFUTA71NlGImv17r96Bvwc TriLsJkuGfKxRwynBE0wxBNBLGm1i3Ltbh4djPOiwqwIPIlai/3Kxk5M1Khy3M3W/MXLZM2h5EUp 1twIbdxFK24hS3EQ+doBjmA1OuSolRlj8RQ+pHP/AG/8wtWD6vTLqK//ACHQzzmp07IxDDBlz/UR jhD/ADOYp1mQy4aZuUx5SysgwIWenu9HrbozCKN6Kw+18/kTPzWtK+lsRYaz0PIl8acXV4/uHIMn 6T022rUKzLwD1l2qojtNcYzSujsaqwdiDzLjMCgbsRJGpq9u4OBw3X8x+pt2mQ/tNQUn6lX7lO4d p5nU18meusG9WU9xied1NXJGORM8jERlwZR0z5qGO0A9PJ4mEL0tleniY8aVkfEZrux3kuvWIfvB WMJdW32uJqUK1eoxGV1K4khSe01uMdGK/wCpWZbVrJW8+ZkuY6sUW1Ux+oiO4xe7WCv6U5b/AIhq xUfWpUMsefEVs9QsuO1eB4Em1LbqbOpPkntK+moSgcct3Yy21NUaVm+q08f7Y5nC4AwPAnF5mwuZ oMjJhFUzQrhAmJJ8BgTDmEPAi9jyTLtJ92j3uWrPJ7GNM06vWBTjTbX9yEfMLTaa3B7d5VQKVwRk GStSgqvZR07QzEbu8xJhzG2O6pT8RZhzGpuqE1Jxpj+ZiufaxsUKPJkgNGM38+I+2pWk4kquwo+4 Tpcu+TCVL2m1ddvAOG8RhjxPPISpyDgiWqLveoDHr0M1KA7ok55jd56xC0wpcZoNng2eDLwQ++aV osHhFbmCI6lDRqTj7W5Er6HUC6kAn6l6xTV1e9RkfcvIiOmvamwMpl5S9KGxNbzF6NQl65BAbuId VmwIrGZv/wC0czu5UGWMXtt3njpIFLIBhGWXMEyzJDeAeFZoBzAsExjTX7GwekVM2okldSGGRzDo MSTVa9fQxpdcwHKiMoVVbEX1es9tCin6j/iT39QsPC4ECm+1+5J6mOrGgGsbABJhP0luM4H4jVKC tcDr3MYRcwxJJrZDhhgzVeUcMOoMp6qkGrdjmJBJYlVUFtasO4nBp8npN+nnfp9p6qY8lfM3gAq0 vxGP02B0jtFI8Rr9PlekcGvN+oU40+7/AGsDOaPnSkeDKfqFH/T2jH9pk307mqwfiGdlhxhpM11O LN4HDf8AMr3JFLDjIPSFUQ2rBgXpz2lZ6qt2domSyqOFAmMOojU/Ez7LE8Ayw1ogzfiWHS2lovDZ BKj5lEgYi4vz3mhbmUQhAmH2opZuAJoHJieqcvZt7CQDu1LPlU4Wc0+ja47m4Tz5h9Jpfdsyw+kS oKsDgSkOg1VLWoVVwIwimdCYhFE1gbRcxhVmEEOoiHQs+PAnc4EG74EUHY2InY83dZELLZm0jF+e s2j8xD3DmGreGpTR+JM9QfGp/aMq8Q9TVty2gEjGDGqGNNcLKthPImyvMiLaQcg4hRrbl/v/AJmd OLCDEU1doewKDwsUOttcY3YHxOKcmWgUTajmZWbEkKOkb0N2yw1k8N0/MUHScLFSCDgiKU7z1k+4 xoWi6sMP3i1ojUTcwLNzDWCLNwZktq0KrRUHmGRpI5W0Q1enNT+4o+g/4jSNGVwwwQCJJMosIIwS DKFepsxjeZoaCl2yMr+IdPT0GPrOIyUBqxY5JzCgR6nR0r1BJ+Yz+loI+zH4msGpDCAeU9To9oLV nPxJNjYODCmFrarU6r/EUZyOstPyIpbUr9VEzhThZCq8HbWEfCmfIpMCZDz7JM3VpbH7YHkx2rSI nLcmOMlKtO1hyeF8x1KwgwoxDBPAmgkcTlY5jlacQSJibsvWhfLdhNBzWMAgTueYjOPcXYsx5Mzu gTOmvNNm7t3l7TWLcoZZ5oGN6fUPUMKYyivXacSileVnmfTtcy2qHPB4npqrBtE3Kyna6oYPHWea 9OJS6ytuCBzPVa05Uzx3qHuaLWG5B9DHOfnuIcjFC3BiVyDmCXXpcPpOG7gzLXmZ0g2pFH4jT2Zi tjZmaS7wDHmGeBYcwLqmHrEAojFckbqTMVtqAub8x2o8RVjmwmIN+nKMsvePGuSqnNbhlMfXXqV+ tTmMqEKTSrAnXU+G/iFpurtOFPPiIHQQo4E4qzZEUwzRaxuIdhxFbYIpc3WI2NzHLRE3XmZpCDcw yNgwW3mEUQRtG4m2w6lSMgxB9bVVxuy3gTtHqFdjhW+nPmOrG29OoYk4I/BnP9Npx1bP5jq88wip mOJL/wBLbOUs/kTL6WyjG4ceZaVJ9dT7lTKZYtRQeJodZkjaceJ1ZlGB0mWnFM71kmFsao5XpOtr FPDLj8TjLAWJkSTTX0vnDfzAsAeQcxa1IsWZDkE5hpw9ibUxWrVAna/B8xtBmSHSNV8xdBGqljAY rEZUcQdSRpU4mw1XkCF3cTAGJ8TiKfO/ElaygWEsvDf8x214m7EmFUZK8cyfqLS3019PMLZbZcMH hfAhKNIXOSMLM+klVpGsOe3kx6rTpX0GT5Ma9oAYA4nNnMsWsgQirOqkKqzScCTYUDrOjiJ6rUYO xZIS7VBPpTk+Yg1hY5JmC2ZgmZtQm6aBgQYVYIZTDIcGLgzW/EUoVXbccz0Hp3qQtrFbN9a/5nkQ 7dp8uqatgQSCO81Lgx7a64MJH1arYrIwyp6iJ0eshwFtOG89jN2XgjOY26Mec12nbS3cElT0MHXr rE4b6h89Y76rcjV7NwLZ6SP3nO9NxVTUV29Dg+DOOsnLGK7XUY6j5lqbZczPt+YX3ARnEBaWfjoP Ek0DWP7hCIyE8OIqKD4nxqIklL3Aq8HMV3c5g692QOYz7BxkAyD5TmEEHWjE4wY/VpeAX4jETYT5 HatwynBEotp6sdDENRV7TcdDLEuae0W1K47iGkr0u7IasnpyJTDTUDLCL2LGWME4zFJmpK1IXboJ Gu9QYk+2gx8yl6wfpSsd+TJHtTnWoz+rvPgftMtbdZ1c/txDCn4mxTAlNh8ToQxw0/E4KSTwJYtM 6LWFMJbyvY+JYqKuoKkH8SEtDDkqf4h6y1Z+kkTUrK8qzRSTK9Zev9278wx17lSNoBjoxO1C7bnH zAdDD2ksxY9YEjmZLQaEWCUQo6ST4wTwjHEC5ki7oXOAItZp3H9plRBtTPczDHMMOopQ5juiu5Fb /sYw+lW3kDDQA07K2CMGWFXrqjdVXSTtNfZUAGG4ShXr1HWszUZPV1xlU4iVWvrJAxiUEYOuR0m4 GCvEC/SMOcRawyRayLMOYw/MxtzAv//Z --nextPart1216749.O5x7CTdV2I-- pan-0.162/pan/data/decode-test-cache/two_uu_attachments.msg000066400000000000000000000011671475412772400236770ustar00rootroot00000000000000Path: e3500-chi1.usenetserver.com!e420r-sjo4.usenetserver.com!cyclone2.usenetserver.com!news-out.usenetserver.com!newsfeed2.earthlink.net!newsfeed1.earthlink.net!newsfeed.earthlink.net!logbridge.uoregon.edu!leto.backbone.ou.edu!news.ou.edu!not-for-mail Message-ID: From: Charles Kerr Subject: uu attachment test Newsgroups: alt.test Date: Wed, 2 May 2001 14:17:22 -0500 Two uu attachments in this post: foo_01.txt and foo_02.txt begin 644 foo_01.txt D5&AI2!O9B!M97-S86=E(")F;V\@,2(* ` end begin 644 foo_02.txt D5&AI2!O9B!M97-S86=E(")F;V\@,B(* ` end pan-0.162/pan/data/decode-test-cache/xuuencode.msg000066400000000000000000000641421475412772400217630ustar00rootroot00000000000000Path: not-for-mail Message-ID: From: Charles Kerr Subject: x-uuencode mime header decode test Newsgroups: alt.test Lines: 642 Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="nextPart1216749.O5x7CTdV2I" Date: Wed, 2 May 2112 14:17:22 -0500 Xref: e420r-sjo4.usenetserver.com alt.test:889584 --nextPart1216749.O5x7CTdV2I Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8Bit Content-Disposition: inline Found on alt.binaries.pictures.wallpaper --nextPart1216749.O5x7CTdV2I Content-Type: image/jpeg; name="firstspacetrip1024.jpg" Content-Transfer-Encoding: x-uuencode Content-Disposition: attachment; filename="firstspacetrip1024.jpg" begin 644 firstspacetrip1024.jpg M_]C_X 02D9)1@ ! 0$ 2 !( #__@ 70W)E871E9"!W:71H(%1H92!'24U0 M_]L 0P O(",I(QTO*28I-3(O.$=V3$=!04>09VU5=JN6L["HEJ6BO-3_Y;S( M_\NBI>O_[O_______[;B_____________]L 0P$R-35'/D>*3$R*_\*EPO__ M____________________________________________________________ M_____\ $0@# 0 P$B (1 0,1 ?_$ !H 0$! 0$! 0 ! M @,$!0;_Q U$ $! (! @8! P(& @(# 0$ 0(1(3%! Q)187&!D2(RH1.Q M!$+!T>'P4O$48B-R@C.2_\0 %P$! 0$! $" __$ !H1 M 0$! 0$! 0 1 1(A,5'_V@ , P$ A$#$0 _ /$"-LJ( ( M(* @ ( BH @(H" @ H B@( @ M M [@-,@ H( ( "*@ ( @@ ( * M BB *@ @ M [@-( @ ( BH " ((*@ M "* @ HBH"@ @ " M #N TB*@ BH B@ M( ""H @ @ "* @*" "@ (*@ " M #N MTR "H ""H " (H" ( ( BH * (H" M ( M .X#3( *(H" @J (J @J ((* @ M "* @ H ""H @ M ]"*-LH @ @H*@ "*@ (*@ M (* @ " " (H" (H*@J ( M /0*C;( M""@( @ @ H B@( B@(*@ "* @ " ""@( BH M *(H""@(* @ " M #TBHVR(H""H ""H ""@( BB*@J @J "H B@(*@ M " " @J "@ (H @H" ( M /4*.K"(TB""H*(H@@J ( MH""H B@(*@ (*(J"H B@(*@ "* @ " B@(*@ (* @ M H ""@(* @ " M #V:&D=6&1K2 B-(""H@@H"(H*@H@B* @J (H""H ""@( B@ ( M* @ (* @ """@(*@ "* @H" "@ (* @J M H( @ * " #WZ33>DTZN;.D: MT:!G2-:!64:T:!D5 04!D4005!4% 1%$$%0$% 05 04! $4 !!0$ !!0 M$ 004!!4 10$% 0 4 !!0$% 04! M $ 'T])ITTECLY.>DTZ:30K&DTWI- MQHTUI-(,FFM)H&=#6DT*R-:0&1K2 B-(@@J @H*@ (*((BZ 05 04! $41 M0$% 0 $% 0 ! 10$% 0 !% 04! !0 M !% 04!!0$% 04!!4 !]FXI8[7%FXNCDY:9T[ M7%FX@Y:33K<6=*,:33>DL!C2:;TFA6-&FM&@81O2:09TFFM&A64:T:!E&M(" M"@,Z%$&1= (*@J"B"(T@(* @ (* @J(H ""@( ""@(*@ " ""@( M ""@(*@ J "@ (* @H" M"@(* @H""@/T5Q9N+M8FFJYQPN*7%WN+-Q6HX7%FXN]Q9N*T<;BEQ=KBS<0< M=)IUN*7%1RTFG2XI8#GI-.FDT#GHTWI-"L:33>DT#*::T:08T::TFA61K2:! MD:TF@1&D!!4T@@H*B* @J((* @ (* @J"@"""@( B@(*@ " B@(* M@ (H @H""@( * M _4II1$33.FPI'.XI<731I:D<;BS<7>QGRK68XW%FXN]Q9N+52.%Q9N+ MT7%FXK1PN+-CO<6;B#C8FG6XI<5'+26.EQ2P'/26.FDT#GI-.FDT*YZ--V)H M&-)IO2:09TFF])H5D71H&1=&@9%$&1= (*@J"B"(H""H ""@( BH* @H" M @H" ( (* @J @H""@(*@ M /U("* )I0$TFF@2,>5FXNNDTM2.-Q2XNUB>5:S'" MXLW%WN*7%JI'GN+-Q>BXLW%:.%Q9N+O<6;B#CI+'6XI<5'+3.G6XI8#EI-.E MB:!ST:;L30K&DTWI- SI--:- QHTUHTBLHUI- FD:0$1HT@R*"LB@(C2((* M@ "* @J"@"""@( B@(* @ " ""@(* @J @H""@(*@ M /U&U8W\&T*V,[NO8WL*T,[7850V"@ M !H 326- D8\J7%T32U(Y7%FX.VD\JUF.%Q9N+T7%FXK4CSW%FXO1<&;BU1 MY[BEQ=[BS<0DT#&C36 MC2#&AK2:%9&M(#.AI 1&M)I!!05D401&D!!4 !!0$ 11% 04! 04!!0$ M 0 04!!0$ 10$% 04!!4 M!^DW_P!ILW[3ZJ<>M^Q&MF_^UG^5Z]J(UOY/MG?O/[+OV%:^C;.__LN[W@+M M=L[GQ\@-[&/I9?=%K0F_LV"@"@ )I-- D8\J7%T32U(Y7%FX.^F?*M2.%Q M9N+T7%FXK68\]Q9N+T7!FXM4>>XI<7>XLW$HX6)8[7%FXJ.5B6.MQ9N(.>DT MZ6)80<])ITTFA7/1IO2:!C2:;TFD5E&])H&4TUHT#(II!D70"(T@J"B#(H"" MH B@(* @"*@H""@( ""@(* @J ( (*@ H" M @H""@(* @H""@("@_0[7;.S<5EK@3?V;%7?N)L^Q%W?5=^VOADV#6_ MSGM6=FXBM?7X7?O^6?M>?D&MFV385L9E-HM:&=KL*H@"AL% M31I01FXLW%T-+4CC<6;@[Z2XK4CSW!FXO1<4N*UF/-<6;B]-P8N+5'GN*7%W MN#-P*.%B6.UQ9N*CE8FG6XLW$'*PTZ:2P'/2:=-,Z%8T::TF@9TFF])I%9TC M6C0,Z336@&132#(N@5$:0$%$&10$%0!% 04! $410$% 0 $% 05 !4 M 0 $4!!0$% 0 'Z Z<;6^'E/VW<2[QZ\ M?PJ'7T$]S?M07CT$W\Z-\ URA^3D0(B@HAS[ NS:?6@&C?NB WM=L;-D&]KM MC9M(M;VK&UV#6_S%P>FXLW'V6I'FN#-Q>FX,W#V:J/-<4N+O<&;@4<+$T[7%FX MJ.5B:=;BS<0=7YAO'OX>-^. /K2?:_I[3/'XY3[M4 ]Y:N_6S8)M=H"*;B +_ -X/ MP)^ :EG>7ZIQ>E_*'U 7F3>J?:<=MSX.O?8*)_=9KO;%%V;-;Z67^$NYUFD& MMFV=FP;V2L["#>S;.S8-FV=K*@ULVR;%:5DV%:VK&UV1:T(;0JII=@,V)<6Q M:1RN/LS<';26+6>7"X,W!Z+BS<5J1YK@S<7IN#-P]EJ/-<4N+T7!BX+1PN*7 M%VN+-Q4DTBLHUH!G2::T: M!D4T@R+H%1&D!!1!D4!!0$ !!0$% 0!%$4!!0$% 0 $% 04!!0$ M 0 05 ?;^EW>[.UE5E=FTEY[7YA?C'Z@*;^TX]-7UF5..? M]P:W3S>K)^0:W/@W[LG/R#>S<]6=^Y+[T&M\&T\R[%!-Q=^XAR&S<]P-@?'\ M M-Z[H*+^%_']F01O7RFD-@J[9VNP78@#6UVPNT5I=UC:[]P:VK.S[16MFTY M^3?L(ULVSLV*WLVSLV0K8SM=HM5-&U!G27%L*1SN+%P=M&EK/+SW!FX/1<4N M+52/-<&+B]5P9N"U'EN*7%Z+@S<%H\]Q33O<6;BHXV,Z=KBS<0C0,:33>DTBLZ1K1H&=)IK1H&132#(N@$%05!1!$:0$%T @ M (* @J"@""* (* @J (H""@(*@ " #[&[ZGRZW_#9 M]LL;]:8R\'Q,?\F_BK64W[;^S:7PVRNO?^ 7:_;,GKEKZV:],I?X!KF^ MAO75GHN[**IK?>)*3(0Z*2^QP$#:<"BKMD$:VK(#6QG:[!5VSLGS :W5VR;1 M6]FV%^ :VNV-KO0-&V=KL&MKMC:[0:VNV%V1:WL8VNTBUI-&S8&F?*V%(YW% MFX.NC2UGEPN#%P>FXLW%JI'FN#-Q>FX,W!:D>:XLW%Z;@Q<%H\]Q2XN]Q9N* MCC<4TZW%+B#EIG3K<4L!STFG326"N>DTZ:30,)IO2:16=(WI- SHTNC0,Z&M M(@B-:30(*:%9%T @H@R* @H" (H""@(*@H @(H""@(* @J @H M""@(*@ /OS_ !7'ZO#RGPW/\1X5_P VOF/'W[%RB1*^A+,IO&RSV3+#'/\ M=C+]/!AXE\.^;"SWX>G#_%XVZSFO>5[,#F=>$_#UY>!X>7/EU?6<.67^%L_;GOYBU(XVR=YMV\/P)G/-<[9?2: M9_H^/A=XZW[5Z/!OBW'_ /+)]=4W3,<[_A?_ !SOW&;_ (?Q)T\M_AZA*L>+ M+#/']V%U[U>]S\3P,/$N[Q?6+4CR_D^W3+_#9S]N4OSPYY2X\9XV*A]J MQ++T4&OL_+*[!=FXAOW!H9X]5_[U!=^IME07?K5W-=&=^YL&MST-Z[IN=P%$ MW[@-=>@SU78+V[B<'R#47EGGU)054\WJNX$.38?81=F_A"547:[^V?E8BM$K M/,-@W]&V>AN@WLVSLV#>UVP;1:WM6-KLA6DT;-HII+BT!'.XLW%V32U(X7!F MX/1<6;BU68\UP9N#TW!FX+4CS7%FXO3<&;@M'GN+-Q=[@S<5'&Q-.MQ2X@Y6 M)8Z7%- YZ33II-"N>C3>DT#&AK1I!C1IK2:%9--:30,Z&M("(T:09%!41I 0 M4T@@J @H""H B@(* @H*@" ""@(* @ /LX^#;SGE,KPYCCC,<G3Z2)7T;-]4F.,Z23Z>+'QO%Q_S<>EY=_"_Q,RNL M]2WI9TJ1:[@"@ )CECE^VR_%!0 &,O#PLOZ9/?3:".=\'#+]V[?7I7++_ M ]G[,OK*/0E*1Y>K%QQO7&+ M4CF?2Y8R=)6?M1>-_P#*\(FJ#1W38(NS:=>"7THK0SL!K[-Z3?\ V$NN]!=K MM-FP7>E^F=@-;/K^6=KM!J7_ +5_[U8VN_L&M^RRQC<^#8-]1F93X66Z]8*U MS$W.YN^AN?\ L%38"+L0^ :V;9V;!O9OW9V;!O:[8W[KL&]FV-KM"M[5C9LB MULTSM=HM-)<6M@1SN*7'V=4TM2.-P8N#T>5+BU68\UP8N#U7%FX+4CS7%FXO M1<&;@M'GN*7%WN#-Q6CA<4T[7%FX@Y:33K<4L!RTFG2Q-"L:33>DT#&C3>DT M@QHTUHT*RC6C0,Z336@&="B"(TF@04%1% 0401&D!!0$% 0 $% 04!!410 M $% 05 ?5U-[UKYB6<\2?AK7OKA+,M;]$1/O7P3VO)WULO6SKI4=?#\7 MQ,+KSR[_ /*O5AXDLF\L=WTNW@WQ:GSI(M?3'S_#\6^'=X].\[5WP_Q>-NLL M;C[[VD6N^>&.CGW^T\UG +T[#/FOJ MU.>=R@O(SPH*OY9+[0&M\_!M#<]>?<%HGX-2Q>/9C[-T&]'LSM=W0+M=H@-[ M-L;7:HUM=L[-HK>S;._2@-[7;&UV@WM=N>UV1:V,[7:+327%=J$8N+-Q]G5- M+4CC<&;@[W%+BM9CS7!FX/3X,W%:.-Q M2QUN*7$'+2:=+BGE!STFG32:%<])ITTF@8TFF])H&4TWI-(K.C36DT#.AK2: M!G1IK2 @H@R+H!!05$4!!1!!4!!0$% 0 !% 04!!0$ 17U)J<<=/0Y[3[E M-R3K]59Q[_"(F[>L_@Y[[7?:=?A/-QQ9KTT!);_Y>\VWAXN6%DWO'?,L<_TW MK/Y..>OYV#UY9>!GCJ^6?/%CS^+CAA9Y,YGOUU6<9C;^K*R[[3<:N$PG'B8Y MSTZ4'7#_ !5DU?#XG_C73#_$X975WC??3R=.LU/=.TWY;"%?2ZCYTWCQ+PZ:U^V[^.#SY3OH#5MZ?R:OI4MW=T MF6E&O-9UQJRR](S,_9=[_P"$%Z>L^%W+ZIN7CN;[=15^TY_]IN;XJ;LZP1J[ MWJ\+SUOY3"RW5RG/:Q;AJ\75].P+/X+\[A9=)K2*LY-_'VS>OGP?AB+M!O>O@WRS*NQ5Y]=F M_6'YX01=P97E1K9MG:@UM=L*@UM=L+L&MKMC:[!O:[8V;!TV;8VNTBUL9VNT M6FDL7:@Q<6;C[.J:6I'&X,W#V=])<5K,>>X,W!Z+C[,W%JI'FN*7%Z+A[,W! M://<6;B]%P9N*T<+BECM<6;B#EI-.MQ30.6DTZ6)816-)IO2:!C1IO2:!C0U MHT@QH:T:%91K1H&32Z- SH4!!32#(N@5!0$10$%$$%0!% 04!!4 !].[WW2 MY2=-?%FEDWS?_:29>K*F]]B>7TW_ *'_ /S+>]XT],_PN/;Q,OX!YIY==YQT M2:LU=_->K_XV&,WGXEU^$S\'P,=;\2RWIR#S3*;_ $Z].JRY=N)]NN?@23>/ MBX6>]3_X^>K<+AG/:B.4MZ_VC7GNO7?;6DLN/&4REGLMP\22<92>N@3CWAO7 M3^*F]]/_ $2S?7GN"\=[=]F\/\3EX=LM\T]+7/XY=?"\:8:QRQPN-XMDY^P= M,/\ %2Y:SQ\LO?;O6<<<)SACC-]Y#Y12LVK6;14K-I6:(E2TJ51*S5J"(BHJ M";!1=IM#:HHFUEG>;^P WJ\6G7_FJ+]G,YWKXJ:OHLQM]OE!9G>_*^?V2X93 MT2XY3K*>#KA99Q9C?1N2ZYUSZO-N7NW/$XDN/VFXN:ZZF-_;(NY9QUK4NT@JLV^J[WTY%4G MLF]GT@W,EWN]8QOT-_(K?_>HFUE_"!HZ M(N_P '%10%3D$4V=@%V;9-^ZHW MLVSLV#>UVQM=HKFXLW%JI'FN+-Q>FX>S%P6CA<6;B[W!FXJ./E33K<4N(.5B M:=/*E@.>DTZ:30.>DTZ:30K&DTWI- SI--Z30,IIO2:16="Z- R-)H$-+H!G M0H@@J:!!05!0$10$%$$% ?0U-_)-]I+\)Q[:]MKOGK_>,ANZWKF]M:7'6-W= MPW-R6?ZIYIJR;^P:RRWS<[==K6;9VZ>J>:[[;]:N^]W[Z G7BQ+KVE]3M-;G MT<]/XT!S9UV[8>/XGA28W64[.,YG6SVDVN6-F[)?G8.GB^+CXNOT7#+UKE;; M.NRW4YWI-S7',_N"V6]9S[K,9ZR:3K?KLG;MW)COB<4'6>/?\TE^.%GC3++7EKE,;OU7"Y8S]/EL[P'6L7*:WO7R MU;ZRQGK[HJ>:=DJS'CG"_.V*L\3*<;X]+RGF MWU0&L<\L>F5C<\;.=Y?F.00=9XOFLFNG/:[(-R8ZZIY?2RL[7=5&I*<_\ IGS>I\ USU$V M*-;OJ;9-H-^;34RQ[L3*^J[EZ\)N+6_Q]&^[F;(5U\WNLM]'':S*^J'FV1:WOE=N?F:EB0K6UVQN+!6H?RSM=B+L39%%7;*\B+M=L@-[-L[- M@WM=L;-HKIM=N>UV#ILVQM=I%K8SLVD6KI-+M08\J7%T32U(Y7%FX>SMI/*M M9CA<6;@]%Q9N,:J1Y[BS<7HN#-Q6CSW%+B[W!FXJCA8FG:XLW$5RTFG6XI<0 MEOY_V+=S<_CDMQDZ?RMZR9 M2;G3=VMQL[9;!GG6]S1-:XMT3ZB676^LO=4-;G7?SCT75]).G9-96:W.;TVL MQL]^W0$MOIU3=XG2_*ZLW_V+-WG\=P27+KK*^RXX9YVS#&_GHG.[/+^*3+.6 MW'*X^LV#I?\ #>+9SG/C;-\+Q<-_HW/6'_B,L;^O]6/M>CM_6\.],MHKR MVZO..<^6IO6[=_;T^:6;EECSY>'9;9JSVZZ!///S_">;=G2R>J?JU=<)UDON MJ.GGU/U;^=,W+??B==W'>OEGS93I:7/+S;WR!<]_\ -VS;OM"Y;YLF_9&D%OEU MWE_AD $-JBB *( HBSF@WCA,IN9;]>.B_P!/TRC,QG%GB8QVU.^4GVSNKF.7 MDL]+]LWCKP]'23C&XWO>R>26;F_LZ(X#IEJ8\:GK^EC'+5WJ5JHU_3S[3?VS M99UEC7GFOVD\372:^$]&9\M8YW"WRR+LR"C.U:%7: *("-;69:]XQLV#IO&^U/TWY6O-',2%= M-^_"SYU8\T:E%40W/@&N.U$W\&P7:[0$:V;9V;!O:[ M8VNT5O:[<]KL&]KMC:[2+6QG9M%JZ2Q=J#'E2QT32U(Y7&,W!VTGE6LQPN+- MQ>BQFXM5(\]Q9N+T7!FXK1PN+-Q=[BS<1''2:=KBS<55RTFG7RLW$'/2:=+$ ML!ST:;TFB*QI-.FDT#&DTWI- SI--Z30,C2:16=&FM)H$% 9% >V>7_>:6;U MQ==OE);;N2^VH;[3S?AR:7WQLF_=+[=>^H;]-[[<+-^7K]1-Y=9+OWXTG;FQ1>DZ7GV6Y9;WY;Z4 MG?K;?4W.EO7B\[$3G++6I[SHLRUN_*W4O3=]-Z9M[XV2=>(UQO?%^50ZS>M_T)EC?6>[/GRW+;OY;G]/+*;G-[)JM3Q9SAEX7_C=^U[,_JPO3\S<2+7>^)KK=RL7''/\ ;Q?775F>-QSA MC]<']7TQA-*Q99=7K!7]WZ?>0W='$:S\OF_3;?MD#9L11K8@"[7?JB".L\3C5Y7 M'/"?Y>O7ARV2I%=K_3MXW%XQXRDRGK'$^%@Z6SM/RC,J[5%VUY[TWMG6^G)J MWI*@WQ9QU]&4Z=6O+?;\@BIR ILX]XMGV!M960&YE5\WPP;(5TVNW.5=I%K8 MSYEVD*UL9VNP:-_3.U!=KMDV#>S;.S8-[7;&U0;VNW/:[%K>UVQM=I%K8SM= MHM-)8NU!CRI<732:6I'*XI<772>5:S'"XLW%Z+BS<8M2.%Q9N+T7%FXM4>>X MI<7>XLW$1QN+-CM<4N*JXZ33K<4\H.=B:=-)I1STFG32:08TFF])H5C1IO2: M!C1IK1H&=)IK1H'IN]_MW?7?)OKJ?BKE-=9;[:7S9=I^:XML=.+;]:)9KFZ] M[>C5SLG,GJOGWVXO7X!GRS7?A?Y^RW&:YTGF]L;\@3G5YWKIU6V[O7V]F=W> MMSCM.#]W%F[UXJA=6\XW[X,MFO>%OZK.-^ZS_NUY_-SCEOX0<[C,9Q;)[3J MSJWG'?RZVUFU1G4ZWK\EI:R!:FRI1"WVAYKTWPB*+,\2> MG>61YEF5Q_;;$W%I[5#=O6BHLL[[U[/1X7].X:DY[O,WX6$SRN]ZDWQ4U<>B M;FM6_$)O?OVCIOLORS?U8SVV-8ZDLWOZ+KMJ_)2,Q;+WB^7G_ &3>NW'K"I$5994L M6D-KM#7L(U*LR8-BNFS;&UVD*WLVS*LI"M";)45=KME0:V;9 ;VNV)5V#6UV MQM=HK>UVQM=A6]FV=FTBUL9VNT6FDTNU!CRIIO1I:DQFXK4CA<6;B]%Q9N/LM'"XL^5WN+-Q5'&XIIVN+-Q445RTFG326 M*,:33=AI!STFG32:(KO,I-27?UW+9)WUUW8WX?@>)XD\VYA+WZUVG^$\/7ZK ME;\Z<6WEU-]]^Y,;>)C>.9(]5_P>&_W9:].'3P_#P\+'RX37K>X/!_3\;?Z? M#R^+$UXLO/A9WZ?238/!CX?B93]&&4]98GDSMUY,I>W#WVLV@\>6&>/7P[9\ M[8XWK5]..SU^)XEPZ8VV^[SY7+/*VX\T&===9;]C&Y93_+/8[\?SPUJVWS7& MQ42Y9==SYTGFRWVZITYG7K-;-W6K9?L&][OMZI4DMNI+N=MKOUF^>]!++K?9 M/+QZ+YIOKKGT)G>VK;[@NL=Z\L^]LW&7ICK_ /I=RXZDW?:\INSC=DH)?#W^ MUC+'*=9737"\_P#HHX=>DJ^3+_QKOYK;K?7LLLEDRQL^UH\H]&4\/Q).MOK. MKC_2SWQ-^Y1@:OAYSKA5_I9_^*U&!UQ\#*S]6Y[2;6^%C,=[SM^(4<1TN&6. M6\/,S<[E/U7?T"^'C,K9=[[:=+X,O3<<.V^S4SRG^;[ LU;-[^$+;>;U%$40 M%$4#8 "RV66=8@#OCXTO[MXY>L=);KKN>W.WD=?"\:^'-6;G;V9W%S7:S>/$ MO7IZM:_CUC&.99]LJS;QT^DO*VR_'?LEFNUUV5#^GCGQ+9I MC+P\I?W2_;7%^%F5YYI1Q)=='6X[YRDM]C^E++9E9QPU4CGMN83RRW+KV,5K/P]S>/.7]V,L>=X\Z_,9QSL[[ -%N[;ZBH *"H MH(J *;0!K9M 1K:RWU84'29Y>M/->_+GM=G@Z3.=]_+>-E]JXFTBUVN,M]*U M)J2=W*>)>EY:\^-]DW-7(NI[$GI>#<]?P35ZUVQM=A6]JQLVD6MHFUVBTTFF@(QI+&]&EJ1RN*7%UTFEK,<;BS<7? M3-QBU(XW%FXN]Q9N/LM'&XL^5VN*7%4<;BFG6XI<5'+2:=+BFA7K_P 'E,O" ML]*[6LY>'A;+<9N=YPG]/&9;UN^]VXNC:;+6;06LVEK-H+:S:6LVHJ9R935< M;X>4_9EOVKK:S:J.<_J3+F63UW'//*[YR_AVM9WKIQ]*.KE-7\' M37?3-MOP(UGGR]?X!N]^)?6EFND<[GE;O=^E_J9;W=7CNL'2\3ISTY, M9<;Q/N1F>+.^)?%EXYUZ1!TN=EU^9M)E>>;]Z-R<\?'%>5J9Y3_ M #4@[Y;N^9S/Y<+O=F77NO\ 5S]?X9MW;=2?"XC7]3+I=93TL910 ! %$ 5 M=LBBJRH*( WAEY,M]N[M/%Q_RV2=]]WF5-PKT>;'++G+"2]]IXGAY76NWOU< M9+E?+)NWLZXWRXZ\2>7+I/=)%*3*ZUUBHHUCCC<-^;GO%\F-G%OTE(PFW7R3I?-6;A9TU?[K2,*@HHB@*@" MB*"KMD@-;5G:JC?'KJ_:_.F/ZF^-::WWUMC: MWBG'K$[\[77QQZH'7@Z^J:LN^?A?P"JHU]:/E.ON;*18 MLUW9WW64&M#,ONH*;32@NUVR TNV=F_<&EVSODV#7GW!D>J8X3'7EEW[,7##? M&'YO"4]VYWP.?DHYBY89 M8_NQL0 68Y6;F-OQ'3'PK;/-9)_(.9O7=VR_P]_R9S)RMRFY>*#OQEAJ:N+E MEA<;TXWQKEC=O-M66SI; .9>-RQ;EEE/U6V>[._6K+9=P%Q\3+']M^G3^M,I M^N7S>L4EQEE[GDFK_\ DQ\WHOA^)Y<= M>SI;YMW4]G*^+)/])5GB3*\7GLBK;E;>87;C>_AG/P[O]&,OQ6-^6ZSQNY[ZJH[V3*27'CLSY,=7F\.V^ M-XR?JGJYYRR]=^G9*L9PFI=\]XWYM<]_[,RSB[Y]-':[U?X!JWWJ;F][OR3I MQ)$MLYWN@98S*[WIC+&X]8Z676],SB6R5?2L="@ HHBP%E7: C34SLFNS$63?2@[8V93I M[+Y>^XY67&[G*XYS>KPSN-9KIKTO!KC<_,8ENKJWGI=DLE]_=F+6M[G7\+L_ M39SQ[DQDD\N6Q3KQW@:W\F_Q_81->RS?J;EZ'%]K[K2&PUP:$._-7?)+VIQK MK_H"_9+M-'T#1ME=\ OR(L_E4%0!=KMG8#6UVR;!O8SM=@UM=L;7:*V;9W_V M&P;E7;&S:1:Z;&-KLBUI-&U032:: C&DTWHTM2.5J6I:S:RTMJ6LVI:!:EJ6 MLVJB[9M2U-@6LVEJ6JA:E3: J"; 0114*4$H(J @"B* #6&YE+)+KL M#OX6&6./.6M\Z;FIQ-[GK7*^)C;Q?RUG-=;;+[LJM[\Q9+KC>OS&9<=]9=]E M\WDFM<:YYX U+VOX:QO^7S3YTF.6\=6WX)ESK&3/3JF6=EL\WPDNIQO5[=U1?/9TF5OO M>B[N7^6SX[,96>7I==W"Y9:UYK9.A!Z?+EJ6:OTSXN-SQM\L\T[QRQ\;*35U ME\M?UMXZN,XZ:6#./BW'#R7&7&]96>.V_M!440!4 %$ 4V@H[X^+N:NI?CBM MW+"3]4Y^>CRJS%KU8\ZRF?'Q_#-U;ORS5[1GP_)9^GC+7,=.++-3VT@DU)CE+O+F7I4QSRPOZ;K:PKT_JG%D]K(DN5_=9E.\J92 MW+O[U.)[^J#5R[W[);VO/O6>+TQG'NOFG76X#6[J[DOO+T3?/.OG:;Y]?X-[ MXMDLY!99UN_DW?+=3HD^=_;4DU+=2_@$Z0LGEW^J?$+)OC>N_";DWQ^08RPO M6?[,S*SIT]'7IT[,YR;WEO7>Q:D:WYIYIOGA99)T_#E^W5EF6-ZNTLUO'IK? M0W%-8V29SFL9>'S^GKWC4UOTWR6R\6;T@Y7WX'76IKK/;LEP\TXFK[-5(YQ2 MXY8]9QZIM4;QQEZW2W"=JN-FI9S>^UWOLE(Q99UBS*=^/>-3GCO^#+P^O:]R MD3>-O75]5N^EF_>,98W'K/N+CYY)9-Q1=6=*U+,N,NOHGFU['%U=WZJ6JOEU M.,M->EFM^B3L?>XBKYI[[7^Z;YY)T[(-=.L3M_N6\>_JGUL&OJ'W^6>5YZ@O M&^>GR;D-\I-6;W[J-37;5G\FI>9?RGOP<7VHBSW_ -C?O]G.O7X.D!1/X-^H M++SU7K\I/R;^@7^0WP;^ @;5%I%V)\@BJSM=@T,[4&MKOT8VNT&E8VNQ6MK* MSLV#G00!J96=+8M\3+*:NK[ZZ,*#?] M7.W>YOX9F5EW+=]4 :RRRSUYKO3( *@"@WX4ERLN/FX!@=;X4LW+Y;Z5/Z M&=Z:OQ2CF-_T?%_\*W?\/E+JV="CB+EC<;K*:0 '7#PO-C,KEJ7V!GP\7'FVS>OY7*=?<';6.^>?FDG2 M]F,,\_OH3B29;GVEWKI M)Z);-;MY] =-W?EWC>>[,LDLNO9C?:V;]&LNF[+P!=V>OPLYM^/AC&XW4EY7 M5WO5OL!Y,@'6\<>AUMWJ4DU.\]]=$MN4Z_/ ++S+N\FIKF?DW/3V+>=;OQL"23G'C MV6]?3UB7Y_*]=R=0)>W^BS*3KO7NG.M)>.-70+KF:FO;M5[_ /C?RQN;G:>B MZW9.%1J\7KRS)K*5=\Z[F^-?JX!KI%D[SGV8UQUU?>+>O;Z%67?LO%NKQ?6) M+QJ]-\;AJ]>+]H-V74F7U?1G6MS=VDMG3<6OPHLO*S?HSOFKQOF=$#BF^.FCXL+QU_,4-_]TU-L_D%^.J?PD]+K[75]?R"[]UWKJSV_V.GN*V,[ZKL!=1#Z$778YB M;]54-KM/HUZ"*)R TNV)5V#>S;.UVBJNV=J#QVI:S:EJ-+:S:EJ6B+:SLV@+ MM$V"FTV;3:AL1!%V(* @(J *" *( H@"B * (H B@ ""H HB@ MWX>$SEYZ7IZN^&&.-\LPW;/5R_P^5F5Q\VMQUN]:WOV357+CM9[I+-ZELI9Q MU_,//))K7P@U+SYLI;QUM:RLXYN_3;E,KWGY[+NS7EWJ>XKI)+CTFO7;EEAC M;?T1;;99O>^M2WOOGY$628<^63CM$RSXMMI;QSQ[LYVWP\O0#SRX_N_AK&^: M_IU9ZO.N.5QRW%A7HUCYM7+^$W)=QR_J7?$GX7^ME?W:O\)!N:WNS>M]$SF\ M=]+.RSQ,;CO>M=JSXGERPEG.KZK@Q+<;N7EURSF4EWC/6;<18CO-YQ;- M;RLLGHX=]SJN[>MM2*[3.?YOH0=-3+BR7?K%UQ-37S= MMY2>7BS?7W8U)K\[J#CECJ[[>Q/$RG?<]W:[W)+*GDQWOI9Z+49EQ\6ZREF7 M:RNNO_MSVKGGACYN/T7V:X\LEW:BK+Z\TWN<7DGEWSE9K[A>NY<;-=+ .?+O M5U\K^KIM+Z272VWCOJ=YU!FW4UC>3G5LN^&K9;^K^$ELW9JZ%2\3G&?*;WVY M[\MR[WK7 M^3&W'O?L">:3I_"[EZZAN]=%RYX LYZ':;^1;+TUM M.N^BH3)9EV3YA\<"-2ZG7@G3BL]_]EEO;^!6OX.D9WWURN_3^$&I?2JS]GR# M0S/659?855WZH J'UM>H@=O5-:(J*K._906+ME=@\-K-I:FV6C:;$!=HAL4V ME-HJ+M$ $!4 !1 !1% !%0 !1 % $%0!O"X;_7+\ MRMSQL;=V:Y]'$(KOEXN/K;\,SQ9TN/?LY"0=OZL_^T]"^-K.V26>[BI!VGB8 M6\RS:SQ/#O%W..M< @Z7Q9TF.XF6?FW/+)*P*BH "H HB@NK]>J.V$QWY_#N M4YZ;;RQQRXRQDM[Q*/,MW+JRQO'6&?ZYSV]'7.2_NDW5HX;QUTLK7A^)Y+SO M7K.R_P!'=_3E/;9/!NMV\=] [S+TDOKSU668V^G;=Z,8W6/22?"S+&_*;FM6;O;7R7+'WQM[=J63 MIGM+J<;R DG;>TWJ4NKKG[/?? +)=39O M2^?]W MI)TLN4R]-GZIOO?3J#4G&LI-=JF4YWC?KU)QQEN3TVMN[+J2SM;K8).;-=?Y MB:OW_=J\ZUQ?:\EFYUWH&;-WGA<9OK.?E/NW22[YE[@UEQ++"6GJ M;]0:Z]UE\O=CGY678+JV?IZ+^[_E)UW>ORMU>H)99>9QV)==.YTG&7^IQEQW MGX4)9JS<^UF_3J6:_P!#S2?NG/P"SS6:AEUYD)C+-RV?Z',XU;[ DWVY]#=O M_))ON;O2B'P=R;U[&_M0W%]T!%W=GS M[@OYJ[26'V@T=69>>+%EW=\ OV;WU_*2_:]107Y3OZE2&UW$UZ7ZIM4?/V@F MV6U3:;3:BH((NT045! 5 ! 40!1 %$ 4 %$ 4 M0!1 % $4 11!4 410 =O"PX\ULU9TVZ6?JMW+WX9PSN7A[O:Z^5_;S_# M*M2ZG.K[5JSRY;QFM,3G]W4MMFN=<@35RO\ /$YDN_9F] 77.[?]$U MC+Q9KTV=?GW6[UZ7W@I+ZWZ6ZZ\;]V+J=JUO=]/H19Q./Q&9NZO37>+UWOG7 M,FEXZZU/7?<$W=[F^>=[+E;WE+)UE_!9J=/X!J:WTUILW?/'\@Z>6WI8S=;LYZ]V>9.._\ *V6SGZOH M"7KV_P!S=G>[6W>^A9OF/\ <$F6^O;LNNY9OF:W$F^^ MI\@:[;BZG32>7+5G?X7KU WQQLQMUTW-)>LUQOL7KT^@7CM;%EO1)[)KCI]* M-^:93]6OE,IKFLZEGHLMUR"\SF;T;W+>(6;YEGT:R[R_()PO?6BS5U?JQ-[U M=_D1?F&O2F[OHFYVXT"[W%YJ;G/8Z6*+/9?B5GW7&=P MM[RNV.4MW+/SU><2*]']22ZMU\%U+U\LG>W>WG0@]&6)ANWF?,2YXSB<]XY!!Z?-,OU2SGK+V3&RS7IZ>CACE<;N+:<7V(5Z- MS_"<>FEEG3^(!9J3NE_3= M7<]>5USN7HSQWY!KOS.:N^^5^I$[[LU3?KUM QUOA=^NTG'7K.S,O?5G(-]= MVZ!J719.G7VJ_IF_5 M)S9)OY!<_GE?TV:U)9RUEAKI9^&;?+CN?V!)>>M]D].EBY66V3F>B2W M'K= ;WVGKU+K5Y74G$Y.9>DU\@3ISR2V6[W+\I>(<\3_ -@N]W=WSU:DWVY] M8S/+KF67VI/+W!?+>LYJS*[UE.#&\\9UQ3ISUG?V M-S>K_P"@6?+73JSN:O.]&[J;G_ I];63GIT3?.M_DDUSL0OSS%J=.IQL"WG= MUN=VIE>L^YZLV<4WJ\\^ZC?FEFLII;C.LK&]<9;U.ZSB[_T02W4UQ=+OGW7? M;*2SV9^/X4:DE[\IK7=%WVNK/7N(FO2<59:MQU-RL\]^@-;['?K^&=KO7-V" MRK+RSO2S?V#5O'H3O8F[Z\&^^P6R>A\$]K_)Q=<@^9M 500 $ 5 M 5 %$ 4 !4 %0!0 ! M%$ :ELNY=6.N'BXW]TD<%(/3O4F'/OKE+UXY]Z"WUW\+J<Z9 M6[FN;TX9N5FYS\ W_EU?_223EW MZ@MRWUIJ4[;!K=F6KE296=^JX\RVZGREXML[]@/-+UD]M1/_K9PUKT MG'I4\MEDX@).G7\PNN9>%_=Z2EEYYZ S_P!TU+JZUPF]\[B=>07YJV\2VIN= M>+9W.N^X+\_V6=-?W9Z?NV7C_B@W;Q_&M&.K&.EZSYLZ+>-=0:L],ZU[ M3UC6.5E\MU3&ZOMOH"<=^OLOFE]_==RSB3CLFI>9KD5>=]_LYZ:X.-FX!SYMSLUN:XX]>-I=^O\)KTXH-?- MGREQDO&N>=4E]ILWKV]J!N??I$Z?/==^Y9VLZJB7J3?8X[TNYQ5%WKM4Z_\ M>I_)W!>=\]5B=HEU.0:Z]M5J;Z7LY\6M;0?, 500 ! 4 $! M1 %$ 40!1 %! 4 %$ 40!1% !0 ! M!4 :7'+RY>UXK(#U;QLWC^IGB2R]>O1PEN-W+I?-=[WKX2+6[XO;7'J?U.++ MCMS%B-W.^DX]B>)?2,!!N9V=I6L,]YZMLE<@@],XZ9<)EO>Y'+'.X]>8[8W' M*<7IU9BF^->O8YG$Z=RWBJ=.-^T);>G6=P6\Z]^*F M^VILWS;?[%WWY MGI^.YWZZ]R:LWT[Z2S?'\ O$Z1;K6M,]9=+);\P1>=2]] M$NO?CI27C72_"35M]-BKQ.G3U67CI]L_/7U7B<_@#K+>=V>JRV3FINSG719O M+C7T"RW>KR63?FFF9Z7CWO99OM= UC>GJO77$OLS+NSGCU7G&SC[ XW)QM;S M)>E[I_,[&5GQ\@U-63CE/:U=V=>(<\\BL])QO2S\Z]37-EA=SO\ 8'2-S+?& M4Y]F??CZ2R2>GR#5QDO'X3IU_A+=_1-=A%X^?DZW71FS?^GLF[+?--SUD4:L MO'/U4NYT_%A++O6K/6=FM[DEN_D1F<_[5>B6;[?)O77>O512<$N^EWH_D1\Y M &@ $!1 %0 %0!1 %$ 410 M 40!1% !1 % $ %0!1 %$4 %$4!9=7/B98V<[GI4BNWS37%]$QOG_5/M?773W0/;GHG>:OY-;XX)S[@LRYDIE/ M3>]I+\+OIQOL"3WG,)[=.G"V]+[O)SOG%9SOGE.LXXT! MKF;_ (JSBZ]BWWY^$O27M>P%LFI_);VW^3''M+]+-=/14)Q-_P#*S5XX3CUU M\I)KTU>^T5;Z]N[4NYTF]]8S;K?*;LD] ;XG/:\J7CV+K?R#4RU[KN=KT]>J37K=?":[RRP&NQO"I=;_ M -FNO3J=>Q?@"[OK*O6<=8SSQ_:K+YM\9?6);E.N.YWTUU-^O6 DSF M7$XON:O:+E)?W3?N8\35Y]*4C-G,MU/>%M_S<^[6IJ\;E-<_IOU5J1\P$55$ M $ !0 !1 %$ 4 M !4 40!0 40!0 !% $ %10%0!1%!K'*X9;CMCE,\;I+U_W5&N=6\VKN6:QX9W;=RWX M,>+;;)OB;127G6N5Z\]_99-ZNXG3#+QJ:^4W.OOZ$ZZ^E19O MI/HG?5VF\92>D^P:G-UKGX2:WT2ZXN_M;ENR7CW Z3A>O;H3:^GU37MSOL*LYY_F&])UC6Y>ML^4#BWW^"[Z]/:IE.-ZG'9J666< MZ]8"';HU<.LEFYTE2<\ SQ/AKKSUTEG9FS>M=?6 W+;S*:O'//HYS/*=>9_+ M>.>.7S[K"KZENNR_/5/C7TBOF MZ7TBH@=0 "=0!;QU2]( !H !0 0 M % !4 410 %0!1 %$ M4 !4 4 0 5 % 5 %$4!Z?#\298S&Y:L]7F#1Z;>=:X^"2].WHSAXGG MQU?W?W)KI98RI9++RNI-=X8Y:RXMY3F7I :GI+R37FYWSUB;FZYYVS+]4_(. MV\;OG\+,N-37MN,8:N[)=3MZ+99SKY WE-R_@MG79+GYI))9;W3Q,[O&N5\^4\.<2;O MZ?@FLL;N>7*?B@36DWKO=?#6.7EN6I+,9S?6LX97++66.K>EG<#GK++[+N6< M_P!R98R6]9%SGZ[>W543?&K+Z[67?%G_ "S,O+X>[C;SJK+,\;9QKK/0&MXZ MZ\>_;[-:^^\2<\&[KB\(K722STZKYI9/-KGNS,N\XX[%M\W-U?4&K-67?^J3 MX3'TW]+O[!+CYO:]JYY8V?NGVZW<]_\ 5)K[B7=FM\;WH@[7&6S#CS67\EOEGZIN8S64O=QY\URWSZDMU9;;+ M=V7ND5ZL=:QLZ922?+,M\\QWTF[\N>,RXN.5N,_RWK&IAU_7=WV0=NF.66M7 M6Y&?#\.9>7?;^4REDFLM7U[,8XVV99Y6ZXX["MYY3+Q-X8W++WZ1F^:9ZF>\ M[QJ=(93*_NSOT>6TC>>LL M,J9>;'.W'"67I=LS&]\]Z['EOEUNL=M; 4YLFW/''65DRRF^>*U.-3>O<'_]G[ end --nextPart1216749.O5x7CTdV2I-- pan-0.162/pan/data/decode-test-cache/yenc.msg000066400000000000000000000053531475412772400207210ustar00rootroot00000000000000Path: spln!lex!extra.newsguy.com!lotsanews.com!news-out.cwix.com!newsfeed.cwix.com!feed2.news.rcn.net!rcn!netnews.com!xfer02.netnews.com!novia!novia!sequencer.newscene.com!not-for-mail From: onakra@hotmail.com (Onakra) Newsgroups: alt.binaries.sounds.anime Subject: Jungle ha itsumo Hale nochi Guu - OST (VBR) - [02/29] - yEnc - Jungle ha itsumo Hale nochi Guu - OST.txt (1/1) Date: 23 Feb 2002 15:45:14 -0600 Lines: 20 Sender: onakra@hotmail.com Message-ID: X-Newsposter: YENC-POWER-POST Build 3 (Modified POWER-POST www.CosmicWolf.com) X-No-Archive: yes Xref: spln alt.binaries.sounds.anime:717852 =ybegin part=1 line=128 size=2022 name=Jungle ha itsumo Hale nochi Guu - OST.txt =ypart begin=1 end=2022 y̬=Jynso~oox74QtkxqvJJJrkvoJJqQJy|stsxkvJ}kxnyJ~y|kuu74 Q~JJJJrVJJJqQJyJ}74mJdJmymW][^_c74pdJm74|JdJ\ ZJtJ\ZZ[74~JdJ[dZ^d\^JR\`JS747474Z[XJvyoJtJ]d_`74JJJJvyoJ~y|yzsukkxk74JJJJvJ~74Z\XJ J\d^^74JJJJ74JJJJt74Z]XJJ\d[]74JJJJrkvoJJ~oowk74JJJJrQJ74Z^XJynJ]d[Z74JJJJ qJJ~oowk74JJJJqQJ74Z_XJJ[dZ[74JJJJ74JJJJ}74Z`XJyJ`d[]74JJJJtkxqvJJW 74JJJJpJJJ74ZaXJJ[d[]74JJJJ74JJJJmJ74ZbXJٳجkJ[dZb74JJJJJJlklkk7 4JJJJyJJJJJ74ZcXJ~̬J^d]b74JJJJ}k}zox}J74JJJJkJJJ74[ZXJάլάիk ڬJ[d^]74JJJJVJ74JJJJmVJ74[[XJJ[dZc74JJJJJJ74JJJJ}J JJJi74[\XJmJZd_[74JJJJlkk}~os74JJJJl74[]XJJ[dZ]74JJJJ74JJJJ|74[^XJЬڬЬ KJ[d]]74JJJJJK74JJJJ|VJJK74[_XJJ򭁭yJ^d[_74JJJJJJtkxqv74JJJJw J74[`XJ J\d\_74JJJJQQJQQ74JJJJQ|QJQ}Q74[aXJlJ[dZZ74JJJJwk|ssJJ74JJ JJwQJ74[bXJҬ J[d[_74JJJJ74JJJJqJ74[cXJ߬֬򭁭yJYJxoJ]d\Z74JJJJ JJtkxqvJYJtkuuJJyy|74JJJJwJJYJtJJJi74\ZXJ{J[d_a74JJJJqoow74JJJJq74\[XJ J]d^`74JJJJJJW74JJJJkJJJ74\\XJmxJ\d[]74JJJJrksJuvk}74JJJJrW 74\]XJ~mJ[d]_74JJJJ}kl~ks~yv74JJJJ}74\^XJomJZd_`74JJJJ}yv~y|osx74JJJJ}74\_XJ ڬJ]d^_74JJJJJ74JJJJmJ74\`XJҬJ_d\\74JJJJ74JJJJoJi =yend size=2022 part=1 pcrc32=B660D578 pan-0.162/pan/data/decode-test-cache/yenc_1_2.msg000066400000000000000000000273121475412772400213610ustar00rootroot00000000000000From: develop@winews.net Newsgroups: yenc Date: 27 Oct 2001 15:25:09 +0200 Subject: yEnc-Prefix: joystick.jpg (1/2) 18 yEnc kByte - yEnc test (2) Message-ID: Path: liebchen.winews.net!not-for-mail Lines: 251 X-Newsreader: MyNews =ybegin part=1 line=128 size=19338 name=joystick.jpg =ypart begin=1 end=11250 ))=J*:tpsp*+++*r*r**)*m*52242154347657;F<;99;LCD>FSNUTRNQQW\jaWZgZQQbvcgmorsrU`yxp~jqro)*m+677;9;K<\2Ml?|N]34@ABCDOPQRST^_`abcdmnopqrst}~=@ =M  !"#$)*I+*-+++++++++******+,-=n/012345)*;*,+,=n=n-=n1/=n=n*+,*+,-;=n/K[0l3M]|?4@N^ OABCDPQ RST_`abcdmnopqrst}~=@ =M !"#$)*6-+*,;-;*i *10yzT|\qxgT$ % ŗشP+Gڧ)*6z iP f[@7ɴҩ&]}P OBDI-Hl=nM{=M58~ f~r[MqC&&)*T ܜI GE˹q*H=M?53ҁGLhGh˚()*49'i yI\g* F`ю iϱ|)*{Y'Å$+I)*71)*_KA9"=MIh mb}LƜ0riP홝3'wR6mԕzrr(Smq=JYA LH!(vB%#'ȩtMf1/M}gc^i8&ch"&1!J{5C8VjGz+zI=Md"Qx=@a&L0[')* 3Aw=}YҚqC-Pn-=J8rn*)*iЩ7 $nm()*{ɚqXo)*%~=n=Jw@=I?=JY7&)*1(y x3]y(Tܧ àeV )*(in7ԃ-=MH,p(ElBLl ޫMfr)*(yy"nd+i'#>C 1&֣?œSE i#)*&=I@)*\i)*=n"MnMGInB(q#俽oVx*eM}[A^8`QVr%IބɄ=I6Q͜i$X=M @[H(nד&n~|'+SZ}۴aqO*>d*1d}j0̴9-^*=M/W>*|HSy^*tə=M>-twٓ@ܣ}=@[ib$=MωU % Vp )*?fIb2ţfz:\1h@D'TGTJ@ZxBݿ?uv#+801J$}cC(4 }DܩfSzސ|/QlFJHfp?XqG=n+6 =@%aC \2MwQwU8_(l&)*)*m"ƍiǚHHhthliϕ9Ö8/=nl]FetwGSڤzZ=nJ{D[ R*B,3/YBмz8q^6R̪:l{=n]d|"B{=} s>\CM"骟`aS{&fZBg"њ=}}Lә*b-*/b}w_(=M 69L=} Q=I'47ħw!=M" &^+k 0;8Π>=nF{ƴ{=@>+q=@ez[9t+jKb>R++c񔆴*G S0s>p¨7C=n8\%|c񛱇]۞u{K -)*KiX Gbd1E=Mî8")*"%BZJ낡]W(M"1šw-MBmQ6j$1)*+0޿()*|Tu _'sV 䨵Ԇ,%$-{ Gx!z-v;FcL*s2jQNȮ=M=Iؠ(U/HImKz1=@،=@5rFG)*ݶg_cJ# )*!֧S>=I񟗗O18rVc1ƏSGf՜ueD|XvOa=I&!5*FFѯvm{|aMigء{f!՝B~\r;s[C h%WyLiǥx[c¨^wPEՂp@\V=}=nDN5ԃr-f=@ٓ_шOE:I픳M _ 81{֕ucCdEq2BH}%,9JxMeph#GA=@=Ie{V%MA8a}wT+=J P^_d?odr\ phߡx*G=}ʷe8aLe:'WO#8Wa=MxN`=n:0i=JכHV2MU٥3&NusMI Kp&=@>& qeJM1%=Ma9(+_FP,eg1,}S|+}566`ʍ-fj6,7Y>*H8e-F>;G+Eӊf -* ۽=MFtn8%1h`L{!$~ zUqC=@4i^oɯm{i[#-h GU=MDSwZ+[oU{{=n{SG=nY'S6k}^-j3y0¤x|[=@H9--Ӗk J3?YVqJ ?i=@aT M{zyul=@gida֞k`)*֦ƛ%ܩ(_"mN|,kzTgI:q^aNs?^xjMCd}\~oEAr|6;ijc dﯸˍKL+F2$j^;bXtgp091׀=@ϙkW ԗvfƒ4ގWҍ5Gb d֓=}2Etc=@>HOFք -H(l Gf^2*+y9XK_E@Kͫr\۸TP ^Gqsႅo L^wFx*ccfD=@&kp􃐶 lpbUd8^; XvXd=n; ^ul\dU mp/r(uY=}62&iqk[-o] 6\Zi14N=nlNYiheM d"jw􁲚2נ&Ǥ9=J&sq UX=M;bPUph"I4=M^T|Dc9B)*gU{LpFyo5φE\=}&ւXY(1v\Sv-Xis/CE%Bw'09˙SX~2e =MzOXKjivQ=Io]td}reob,+Ć4zH*f}:##@fgZpN2` ?56'c =JN?^Xd/-}vr\k&d Ā ]b>Fq?ϯ=IJĝ>@_**b(H"hZBcNÌPxYO2W<`L,a&!S,׵fu˝N:Vq|چe[1x(t1*̑x7(Z3c&+TJ=n -}'Q|muܔliKv4rPH+=MLPᲪytm,2fR-i%g=MCGs'=MYH=M79_o:#gaH߄w=@MZcz?YZ=};lk (=nn;V<+N1+}=@Ε4L1dOJi=@>rr/=@$ b'slJME8ypO̯=n=M=@Bˀ7bֳ <EJG k>=MR-n =}G=JH\fߝPzC+H qSۛZMLֲrq  tۨ{Fn%h?ΘXg8_TsG7)*cm pEpc؄Ø=@BKCj]q=}s=MsEj G$pyJκd<\#*v6' |u^Q gal奵2CN :Sgta{a v=@},=JJzr֩e<*gT*<4c~y8jx6$԰i =I5=I[=n9l+_=MA+gMq Ȓ#h_=MIG'T=M /p wD=JR-zd4mBS$^~̹(">xޯኞoS2b$6}f#;)*9ͻuo^j沺>:L_0 R@j0R)*b' xZR/Z=@J7ɨB%)*4k/B:p1/b:yk36!rysPoClJ~͡*=n9du6p1?G GxY\)*=M&T[Jfo!4ĞJ&ѩP(ߕH-^P Da\eU)*7[OܥbFt#pM=M4dSLm6[] =Iuc3!"fk"@1ӊT#dj F oHQ#zj:$w#Mc #"C2 ixbaX]()*H'UOr`i%tK6 ܢA)*(=MΞ)*]SECC=MH=@7Ci=}"|=M˜,)*t[{ E3ɨ~uG왬rv=MZxe Uf&3 s&|,Xd|gb-W^ذn=Mc=IN=JxwpwK#W Hj\5\Tu:[Q>E6=IN0,`ע<^-+ۀ[01"y%Dq:BpIp YD=I\=@K|oY+XcF,6BX p9 w {焿[QCѽD]?GM>6*epQ!Jg6rVX yuݶ=M-{^)*4z*:hdmrCQXA$iab+(Pl*&w;tN}M =MI{"TTG{ΐm\0a׹#RP=IrKy}0:h& oS-ﴳ=MY01I(_=Iᜯɲ(B)*=@$S䕭 rC" ]Jh=}-&tSyhφ ]<:bQ*~_GsbHp5:r=J 1k Lg9Uu"ߛэ]۪R>)*tAe/H\d`)* Ӟ=@WsKG%_ô Th&+#<m!pzszâ6 C_}k@5˾ZKk1lh#=M洃*N-i0R+9?ZF0]wJ#:݆ih*,ҁ3Vw($:im|=Mg4 yˮe|H&>{ A9-Y)*=@`V=n$f|yc:FYH4@kbvpfŢ$wos}KC&&CU@Fp0yk=@ =IE|[PoC%υ=}&o IGZ\pQ#gq?61f:)*&I=Msۻ0Y1+vGhˡ?r \=J[JC VGt9P;LXQkI~B{=IF\Zh|nqwQQF޼cK%hH}2I~kH`*oA_o6ҵZe4MTs 3r YN XJ|(L5H Ys5K ع$dOZ:R+l\esu o=I<(X@\{!qkkf;YU_eа-3u,` IZ!L^ޜ=Iiqk"bCH=Mᢘ*3=MDc-Зˏؖ=MU!aU4žgqIBMs=@d}Fd6d87,u,|JGpA; MU@D_}-=M(O%(IiX=M=n=IRg=JIBDcK=n88RT^ަ`*1ڇ+ =IU3߳F|ԼWUZ *09>Zk]*w3{*k*f o?2>>=M(ߝN*yƪ"|OwBp'a=I2xAV=}GA[m%C bz㖺2e}s鈯^q;',,ՠ|_ܓHHⶻB)*sX3eHwy=n=Iu=Im@8pc-H)*8Xգ^ ;NAJCYWøC008F apHOjMFAcgI6u}RnPPv2M6ZkQL˹ Sx=@惖̢uNw =JcKo_aꏚZD}ןWl,0 *]3H|{NཅNEx`>[6${ևh2S)*Xt HX'fF+vZ0gi)*,ӢC)*(Kyv Y/uןEЭ'wU=@G@r$?I_QcdbɆ7vxcЩQM >)*͈,$pnHJ}6=@s#'d%59 |EWO핀}ŭ)*/s"X)*=I7&m>ҍ9Iثԓhy(g~؞eI=@L*e}# Y&Kdf#˶F Path: liebchen.winews.net!not-for-mail Lines: 181 X-Newsreader: MyNews =ybegin part=2 line=128 size=19338 name=joystick.jpg =ypart begin=11251 end=19338 c&~ehbõvi=J\/" !hw U Xߊ9-'#ȍ}{=nd$}vxaj!RTN8eH*dE'7 CK"_ȓX%ty&U(! >@_H rM͐exw]nfCc3-?A9j!&20T/bf޻ʀVSM8\/9JtČWVHLts%Ueg|qM#zMPMC,d=@IBF@+=MF҈ jhODyҚwZGȓMI{TR%QJ F5hPXq)*oDoS wta'UQ}3foхsS$fml!XhȋI_StKh T Gȥ!ԮsJWw{6UI컿zqz@n蕑RG7^ƫ{mϗQb`s$G˔| mVGq=J/=J=M+stx_fDevs$#J%;r%wJNeioaUC4г=n2~T9}XS0 *#`mV:#~2rpyuihA {Js|=n,0ucy 3yfγ_9<21"̦*G9& QC=M=@伶}az%Y-O<s)*SHeb(sLG[Cζ #| $D#{#)*=MwףBW=nL=@_)*N[&w_VsJcҝndv=IxYNi=J=@ܟ\O%T-BMPqf% q<wy&9l#4%y ? \qOZgӠ^lxi$O{4#()*[f; 7Z)*ik> ŤږbSqk&XyM]Ԣ )*K#f)*-S4x1Q]e;?[{*avylyc-gDԶ[S7;Fk)*+[_P#鼩~;q'zTĴ Yiyu%^Bd~g:Bq}9u޻=}oMqTI#Gړl=}1TT#XH/wJ,1xT[tXFϛ2Wfm*Ӡ=JϚIPx*BУ A51|A> \/A?8GzS~-"zˍ4 {Vnni(ow/)*џiԐ_)*T=M<7Hi'=nI坔4X|͋nB=@㷪y V|7-Kk~ZA>hqi*q5Zr~4߯Mɔ)*?̤ÅhB"Na=}9$u=JpbF͟=@\'߅=nMIy$8a N1ē]쿙OДpV=Ms~TCJ8(˶|HG]xɆ0ڟƓķ0aW=}m3H"5{qSWC=MGsGxeDEδظZ{m&uس SJIخ ST$2u-ԣaz/a-=Mߒp9/wU`=n[Qf_9>D\,y@1Gr=MɄ)*3n ^Q_fV䕌Od*=J=Jᛇ @ dboqJV;]Z9HMsomdg(uzGbY^VO7Yỷ֤wO` ;>=Jrp=M8Nm66Y[=}4 j@ob6] b3&LsEL^̸qh8H{=@J%GͬBf"xhBO#Bqaɔr zmYNjێ;K7sxgt#W襓B=JW$Gڭoɦ' DtDA@~=Jbc1=Iė_!݅YfJ%zw7| =nVวMp(pλkKqtxK^uT,Bx_%XZ][%VNظJIatqzo2=@`Ef} >b^2/Y1} Jgj,0r-˘]… ^X*H#hYQtܹ%)*,%ONQMgq90%@Œ(bU3w^=}t88B>G^1^xY[t90* g1}e9|fu &v2~ԸW>"kH=Iޢ3ޠES=@q&ݷCU[Y֏`'rjyyw)*D=J^P)*8# զL]T! 0/~/=JRGsx91GA=M1I^/y9]oX0THxj!Dža:O`AJ-׍3PΊx-9tC[hrfr

2=MgkUf` @cLUr7Xl2ъ w`uusG&feƻ"x^=nE_k\=@6ZaK7M9iYik 2M=J@=I~̑HԖ:AG3`Ύse0UgO=@6UKEj1fx[}^EQ]@gb]<:; NjQ-aRT[׳N:eOÐXZ{R+y=@b=@q=nJQVPցNA*{$'S2!4Q|=M5%uPZ- ]줎A2༓pH=}$U=nJ 5\yGnMM: |[BϘ w=}퀄dZT Y*-QFcd`o/{i䚅cyjkB8kC=nNPv łpǓ=@A8b)*֓nD5؆Cp4k_ב27%ݓiC9B;s7f,$[ t7mkƧ /~&a͝C!? Qn\c ֠[xߐl=@ :>uH?|Lm@2Wv2z[|2ow7!B׌F*F9UJ,qB[Ɗi૟pZy XSP]L*ʤ4*Yt[Lk<=M֒(/M~*]Hu22$qL}6Q:=MiZ8e ,_ޚp=I؂kP%pD r(=Iͱ =ID~E=JKO%yȩ4wJ=n5Abz-R*v8b_ј{nq͗PW^bgUo[/L=nrThJjFF9SQ \rF -1Q-F-|}MT1=n]:#0qm#p-9y/!oQ/SOXZjr^xRIg h=}em]C$+UciJ*FX *TW=n}*~bҹ-'*g9?E6yg(坴*b1-H=}A?`nۏE_RTxq֌#m,5B9@"P inVwܑD=If=J z#H'wkšS*%)*Dm28dmJÈvSH1ߑ{Ngv͎qy)*A=@NWT;Z[xq U 4}' }sH|"/;}ey}o;_eqBOM@1f=I{ǎ?,Z2=nHqgomAqNM1'L`5@f8ssѷIwϽKEM# l2=J%Y| 1^F0ѠPi(TŸWpxя(Ӄf{'u'U]{֜d-P\!|1VMEsDљLC!܎m>NfGM'Yj Q )*~u%O⼣RXfeX1-~s!86YwWw>UT9Yk@ eBQ_x9:i""t9'Rƫ=@*D?Y $$zOGy$2(0ʨjX=I=I$z%%&qy&vJI)*Up>8/_EĝtB˗8wA-kp+)*9ջ}҄=I )*DX0R!=}:ˣbG'ޱpy}Ф_ }k۫[X=JRxY<ʞq\;éP͢-&=@U X6qϤ)* bvܛ(2$$[5c^  (?-"=Mm=M)* 4Rc=JI6=J!|vfA cDG 0RB"5w)*)*4i7ۍܛ$> X=JzDHd,_5[l9{D(l̵7eIºmj)*4w4=IB@=I5(>J6,S=M(#վ{'-y(P$bi"x/ 0%$(k~ć(>8)*=n)* 1SX"WF0jج00Ы w2<)*ܴF09&KFQ(jI!|)*A $ +=I̸!-*"M(i!z9 ܝ'9'=M$YX c=JY7;2(q=JY6k@JCu])*Qʖ3'ї%\Q&L+=JH (?oF0Y&LhI)* H%d "nh-Щ=J\{q^z]WgO^2ԁM1gUp{) =yend size=8088 part=2 pcrc32=aca76043 pan-0.162/pan/data/encode-cache.cc000066400000000000000000000136231475412772400166160ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #include #include #include extern "C" { #include #include #include #include #include } #include #include #include #include #include #include #include #include #include #include #include "article.h" #include "encode-cache.h" using namespace pan; /***** ****** *****/ EncodeCache :: EncodeCache (const StringView& path, size_t max_megs): _path (path.str, path.len), _max_megs (max_megs), _current_bytes (0ul) { GError * err = NULL; GDir * dir = g_dir_open (_path.c_str(), 0, &err); if (err != NULL) { Log::add_err_va (_("Error opening directory: \"%s\": %s"), _path.c_str(), err->message); g_clear_error (&err); } else { char filename[PATH_MAX]; const char * fname; while ((fname = g_dir_read_name (dir))) { g_snprintf (filename, sizeof(filename), "%s%c%s", _path.c_str(), G_DIR_SEPARATOR, fname); unlink(filename); } g_dir_close (dir); } } EncodeCache :: ~EncodeCache () {} /***** ****** *****/ void EncodeCache :: fire_added (const Quark& mid) { for (listeners_t::iterator it(_listeners.begin()), end(_listeners.end()); it!=end; ) (*it++)->on_cache_added (mid); } void EncodeCache :: fire_removed (const quarks_t& mids) { for (listeners_t::iterator it(_listeners.begin()), end(_listeners.end()); it!=end; ) (*it++)->on_cache_removed (mids); } /***** ****** *****/ bool EncodeCache :: contains (const Quark& mid) const { return _mid_to_info.find (mid) != _mid_to_info.end(); } void EncodeCache :: get_filename (char* buf, const Quark& mid) const { char* base = g_path_get_basename(mid.c_str()); g_snprintf (buf, PATH_MAX, "%s%c%s", _path.c_str(), G_DIR_SEPARATOR, base); g_free(base); } FILE* EncodeCache :: get_fp_from_mid(const Quark& mid) { char buf[PATH_MAX]; get_filename(buf, mid); return fopen(buf,"wb+"); } void EncodeCache :: add (const Quark& message_id) { MsgInfo info; info._message_id = message_id; info._size = 0; info._date = time(nullptr); _mid_to_info.insert (mid_to_info_t::value_type (info._message_id, info)); } /*** **** ***/ void EncodeCache :: finalize (std::string message_id) { struct stat sb; char out_path[4096]; get_filename(out_path, Quark(message_id)); stat (out_path, &sb); _mid_to_info[message_id]._size = sb.st_size; fire_added (message_id); _current_bytes += sb.st_size; //resize(); } void EncodeCache :: reserve (const mid_sequence_t& mids) { foreach_const (mid_sequence_t, mids, it) ++_locks[*it]; } void EncodeCache :: release (const mid_sequence_t& mids) { foreach_const (mid_sequence_t, mids, it) if (!--_locks[*it]) _locks.erase (*it); } /*** **** ***/ void EncodeCache :: resize () { // let's shrink it to 80% of the maximum size const double buffer_zone (0.8); guint64 max_bytes (_max_megs * 1024 * 1024); max_bytes = (guint64) ((double)max_bytes * buffer_zone); resize (max_bytes); } void EncodeCache :: clear () { resize (0); } void EncodeCache :: get_data(std::string& data, const Quark& where) { char buf[4096]; get_filename(buf, where); #ifdef G_OS_WIN32 // Prevent Windows EOF character from stopping the stream std::ifstream in(buf, std::ios::binary); #else std::ifstream in(buf, std::ios::in); #endif std::stringstream out; while (in.getline(buf,sizeof(buf))) out << buf << "\n"; in.close(); data = out.str(); } bool EncodeCache :: update_file (std::string& data, const Quark& where) { FILE * fp = get_fp_from_mid(where); if (!fp) return false; const char * out (data.c_str()); fwrite(out, strlen(out), sizeof(char), fp); fclose(fp); return true; } void EncodeCache :: resize (guint64 max_bytes) { quarks_t removed; if (_current_bytes > max_bytes) { // sort from oldest to youngest typedef std::set sorted_info_t; sorted_info_t si; for (mid_to_info_t::const_iterator it=_mid_to_info.begin(), end=_mid_to_info.end(); it!=end; ++it) si.insert (it->second); // start blowing away files for (sorted_info_t::const_iterator it=si.begin(), end=si.end(); _current_bytes>max_bytes && it!=end; ++it) { const Quark& mid (it->_message_id); if (_locks.find(mid) == _locks.end()) { char buf[PATH_MAX]; get_filename (buf, mid); unlink (buf); _current_bytes -= it->_size; removed.insert (mid); _mid_to_info.erase (mid); } } } debug("cache expired " << removed.size() << " articles, " "has " << _mid_to_info.size() << " active " "and " << _locks.size() << " locked.\n"); if (!removed.empty()) fire_removed (removed); } EncodeCache :: strings_t EncodeCache :: get_filenames (const mid_sequence_t& mids) { strings_t ret; char filename[PATH_MAX]; foreach_const (mid_sequence_t, mids, it) { get_filename (filename, *it); ret.push_back (filename); } return ret; } pan-0.162/pan/data/encode-cache.h000066400000000000000000000067011475412772400164570ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #ifndef _EncodeCache_h_ #define _EncodeCache_h_ #include #include #include // for guint64 #include #include namespace pan { class Article; class StringView; /** * A disk cache for binary attachments to be yenc-encoded * * It has a lock/unlock mechanism to allow the cache to grow * past its limit briefly to allow large multipart articles' pieces * to all be held at once (for encoding). * * FIXME: This should probably be an interface class implemented in * data-impl in the same way profiles was. * * @ingroup data */ class EncodeCache { public: EncodeCache (const StringView& path, size_t max_megs=10); ~EncodeCache (); FILE* get_fp_from_mid(const Quark& mid); void get_filename (char* buf, const Quark& mid) const; bool update_file (std::string& data, const Quark& where); typedef std::vector mid_sequence_t; bool contains (const Quark& message_id) const; void add (const Quark& message_id); void finalize (std::string message_id); void get_data(std::string& data, const Quark& where); void reserve (const mid_sequence_t& mids); void release (const mid_sequence_t& mids); void resize (); void clear (); typedef std::vector strings_t; strings_t get_filenames (const mid_sequence_t&); public: /** Interface class for objects that listen to an EncodeCache's events. */ struct Listener { virtual ~Listener () {} virtual void on_cache_added (const Quark& mid) = 0; virtual void on_cache_removed (const quarks_t& mid) = 0; }; void add_listener (Listener * l) { _listeners.insert(l); } void remove_listener (Listener * l) { _listeners.erase(l); } private: std::map _locks; struct MsgInfo { Quark _message_id; size_t _size; time_t _date; FILE * _fp; MsgInfo(): _size(0), _date(0), _fp(nullptr) {} }; typedef std::map mid_to_info_t; mid_to_info_t _mid_to_info; struct MsgInfoCompare { bool operator()(const MsgInfo& a, const MsgInfo& b) const { if (a._date != b._date) return a._date < b._date; return a._message_id < b._message_id; } }; std::string _path; const size_t _max_megs; guint64 _current_bytes; typedef std::set listeners_t; listeners_t _listeners; void fire_added (const Quark& mid); void fire_removed (const quarks_t& mid); void resize (guint64 max_bytes); }; } #endif // __EncodeCache_h__ pan-0.162/pan/data/parts.cc000066400000000000000000000217311475412772400154500ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2007 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #include "parts.h" #include #ifdef DEBUG #include #include #endif #include #include #undef DEBUG namespace pan { /*** **** ***/ /* Message-IDs in multipart articles are usually nearly identical, like this: ** ** ** ** ** ** ** ** ** In large newsgroups, _many_ megs can be saved by stripping out common text. ** We assign Article::Part's Message-ID by passing in its real Message-ID and ** a reference key (which currently is always the owner Article's message_id). ** The identical chars at the beginning (b) and end (e) of the two are counted. ** b and e have an upper bound of UCHAR_MAX (255). ** Article::Part::folded_message_id's first byte holds 'b', the second holds 'e', ** and the remainder is a zero-terminated string with the unique middle characters. */ namespace { /** * pack_message_id is broken into two steps so that * the client code can ensure the buffer is big enough * before we write the mid to it. */ struct Packer { int size() const { return midlen+3; } // three for for b, e, and '\0' uint8_t b, e; const char * mid; size_t midlen; Packer(): b(0), e(0), mid(nullptr), midlen(0) {} void pack (char* buf) const { *buf++ = b; *buf++ = e; memcpy (buf, mid, midlen); buf[midlen] = '\0'; } }; void pack_message_id (Packer & setme, const StringView & mid, const Quark & key_mid) { uint8_t b=0, e=0; const char *k, *m; const StringView& key (key_mid.to_view()); const int shorter = (int) std::min (key.len, mid.len); const int bmax = std::min (shorter, (int)UCHAR_MAX); k = &key.front(); m = &mid.front(); for (; b!=bmax; ++b) if (*k++ != *m++) break; const int emax = std::min (shorter-b, (int)UCHAR_MAX); k = &key.back(); m = &mid.back(); for (; e!=emax; ++e) if (*k-- != *m--) break; setme.b = b; setme.e = e; setme.mid = mid.str + b; setme.midlen = mid.len - e - b; } size_t unpack_message_id (std::string & setme, const StringView & mid, const Quark & key_mid) { if (mid.len < 2) { setme.clear (); return 0; } const StringView& key (key_mid.to_view()); const uint8_t b (mid.str[0]); const uint8_t e (mid.str[1]); const size_t m (mid.len - 2); const size_t n = b + e + m; setme.resize (n); char * pch = &setme[0]; memcpy (pch, key.str, b); pch += b; memcpy (pch, mid.str+2, m); pch += m; memcpy (pch, key.str+key.len-e, e); return n; } } /*** **** ***/ Parts :: Parts (): n_parts_total (0), part_mid_buf_len (0), parts (0), part_mid_buf (nullptr) { } void Parts :: clear () { part_v tmp; parts.swap(tmp); delete [] part_mid_buf; part_mid_buf = nullptr; part_mid_buf_len = 0; n_parts_total = 0; } Parts :: Parts (const Parts& that): n_parts_total (0), part_mid_buf_len (0), parts (0), part_mid_buf (nullptr) { *this = that; } Parts& Parts :: operator= (const Parts& that) { if (this != &that) { clear (); n_parts_total = that.n_parts_total; part_mid_buf_len = that.part_mid_buf_len; parts.reserve( n_parts_total ); parts = that.parts; assert( parts.capacity() == n_parts_total ); part_mid_buf = new char [part_mid_buf_len]; memcpy (part_mid_buf, that.part_mid_buf, part_mid_buf_len); } return *this; } /*** **** ***/ void Parts :: unpack_message_id (std::string & setme, const Part * part, const Quark & reference_mid) const { StringView v; v.str = part_mid_buf + part->mid_offset; v.len = 2 + strlen (v.str+2); ::pan::unpack_message_id (setme, v, reference_mid); } bool Parts :: get_part_info (number_t part_number, std::string & setme_message_id, bytes_t & setme_byte_count, const Quark & reference_mid) const { Part findme; findme.number = part_number; part_v::const_iterator p = std::lower_bound (parts.begin(), parts.end(), findme); if ((p == parts.end()) || (p->number != part_number)) return false; unpack_message_id (setme_message_id, &(*p), reference_mid); setme_byte_count = p->bytes; return true; } /*** **** ***/ void Parts :: set_parts (const PartBatch& p) { clear (); unsigned int n_parts_found = p.n_parts_found; n_parts_total = p.n_parts_total; part_mid_buf_len = p.packed_mids_len; parts.reserve(n_parts_total); char * pch = part_mid_buf = new char [part_mid_buf_len]; Part part; PartBatch::parts_t::const_iterator in = p.parts.begin(); for (size_t i=0; inumber; part.bytes = in->bytes; part.mid_offset = pch - part_mid_buf; parts.push_back(part); memcpy (pch, in->packed_mid, in->len_used); pch += in->len_used; } assert (pch == part_mid_buf + part_mid_buf_len); } bool Parts :: add_part (number_t num, const StringView & mid, bytes_t bytes, const Quark & reference_mid) { Part findme; findme.number = num; part_v::iterator p = std::lower_bound (parts.begin(), parts.end(), findme); if (p!=parts.end() && p->number == num) // we have it already return false; findme.bytes = bytes; findme.mid_offset = part_mid_buf_len; parts.insert(p, findme); Packer packer; pack_message_id (packer, mid, reference_mid); const size_t midlen = packer.size (); char * mbuf = new char [part_mid_buf_len + midlen]; memcpy (mbuf, part_mid_buf, part_mid_buf_len); packer.pack (mbuf + part_mid_buf_len); delete [] part_mid_buf; part_mid_buf = mbuf; part_mid_buf_len += midlen; #ifdef DEBUG std::string test_mid; bytes_t test_bytes; assert (get_part_info (num, test_mid, test_bytes, reference_mid)); assert (test_bytes == bytes); assert (mid == test_mid); #endif return true; // yes, we added it } /**** ***** ****/ PartBatch::PartBatch() : n_parts_found(0), n_parts_total(0), packed_mids_len(0) { } PartBatch::PartBatch(Quark const &mid, number_t parts_total) : reference_mid(mid), n_parts_found(0), n_parts_total(parts_total), packed_mids_len(0) { parts.reserve(n_parts_total); } void PartBatch :: init (const Quark & mid, number_t parts_total) { reference_mid = mid; packed_mids_len = 0; n_parts_total = parts_total; n_parts_found = 0; // they haven't been added yet parts.clear(); parts.reserve(n_parts_total); } void PartBatch :: add_part (number_t number, const StringView & mid, bytes_t bytes) { Packer packer; pack_message_id (packer, mid, reference_mid); Part p(number,bytes,packer.size()); packer.pack (p.packed_mid); packed_mids_len += p.len_used; #ifdef DEBUG // check our work std::string tmp; ::unpack_message_id (tmp, StringView(p.packed_mid,p.len_used-1), reference_mid); assert (mid == tmp); #endif if (n_parts_total < ++n_parts_found) n_parts_total = n_parts_found; parts.push_back(p); } PartBatch :: Part& PartBatch :: Part :: operator= (const PartBatch :: Part& that) { if (this != &that) { number = that.number; bytes = that.bytes; len_used = that.len_used; delete [] packed_mid; packed_mid = new char [len_used]; memcpy (packed_mid, that.packed_mid, len_used); } return *this; } PartBatch :: Part :: Part (const PartBatch::Part& that): number (that.number), bytes (that.bytes), len_used (that.len_used), packed_mid (new char [len_used]) { memcpy (packed_mid, that.packed_mid, len_used); } PartBatch :: Part :: Part (number_t n, bytes_t b, size_t l): number(n), bytes(b), len_used(l), packed_mid(new char [len_used]) { } void PartBatch :: sort () { std::sort (parts.begin (), parts.end ()); } } pan-0.162/pan/data/parts.h000066400000000000000000000125221475412772400153100ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2007 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #ifndef __Parts_h__ #define __Parts_h__ #include #include #include #include #include #include namespace pan { class PartBatch; /** * Represents a collection of a multipart post's parts. * * Parts are by far the biggest memory hog in large groups, * so their layout has been tweaked to squeeze out extra bytes. * This makes the code fairly inelegant, so the low-level bits * have been encapsulated in this class. * * @see Article * @see PartBatch * @ingroup data */ class Parts { public: typedef uint16_t number_t; typedef uint32_t mid_offset_t; typedef uint32_t bytes_t; private: struct Part { mid_offset_t mid_offset; number_t number; bytes_t bytes; bool operator< (const Part& that) const { return number < that.number; } }; number_t n_parts_total; bytes_t part_mid_buf_len; typedef std::vector part_v; part_v parts; char * part_mid_buf; void unpack_message_id (std::string & setme, const Part * p, const Quark & reference_mid) const; public: class const_iterator { const Quark& reference_mid; const Parts& parts; mutable std::string midbuf; int n; const Part& get_part() const { return parts.parts[n]; } public: const_iterator (const Quark& q, const Parts& p, int pos=0): reference_mid(q), parts(p), n(pos) {} bool operator== (const const_iterator& that) const { return (n==that.n) && (&parts==&that.parts); } bool operator!= (const const_iterator& that) const { return !(*this == that); } const_iterator& operator++() { ++n; return *this; } const_iterator operator++(int) { const_iterator tmp=*this; ++*this; return tmp; } bytes_t bytes() const { return get_part().bytes; } number_t number() const { return get_part().number; } const std::string& mid() const { parts.unpack_message_id (midbuf, &(get_part()), reference_mid); return midbuf; } }; const_iterator begin(const Quark& q) const { return const_iterator(q,*this,0); } const_iterator end(const Quark& q) const { return const_iterator(q, *this, parts.size()); } public: Parts (); ~Parts () { clear(); } Parts (const Parts& that); Parts& operator= (const Parts&); public: void set_part_count (number_t num) { n_parts_total = num; parts.reserve(num); } number_t get_total_part_count () const { return n_parts_total; } number_t get_found_part_count () const { return parts.size(); } void clear (); bool add_part (number_t num, const StringView& mid, bytes_t bytes, const Quark& reference_mid); void set_parts (const PartBatch& parts); public: bool get_part_info (number_t num, std::string & mid, bytes_t & bytes, const Quark & reference_mid) const; }; /** * Batches together parts of a multipart post for * efficient adding to a Parts object. * * @see Parts * @ingroup data */ class PartBatch { public: typedef Parts::number_t number_t; typedef Parts::bytes_t bytes_t; private: friend class Parts; struct Part { number_t number; bytes_t bytes; size_t len_used; char * packed_mid; Part(): number(0), bytes(0), len_used(0), packed_mid(nullptr) {} Part(number_t n, bytes_t b, size_t l); ~Part() { delete [] packed_mid; } Part (const Part&); Part& operator= (const Part&); bool operator< (const Part& that) const { return number < that.number; } }; Quark reference_mid; number_t n_parts_found; number_t n_parts_total; typedef std::vector parts_t; parts_t parts; size_t packed_mids_len; public: PartBatch(); explicit PartBatch(Quark const &mid, number_t n_parts = 0); void init (const Quark& mid, number_t n_parts=0); void add_part (number_t num, const StringView& mid, bytes_t bytes); void sort (); }; } #endif pan-0.162/pan/data/server-info.h000066400000000000000000000077721475412772400164310ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #ifndef __Server_Info_h__ #define __Server_Info_h__ #include #include #include #include namespace pan { struct ServerRank { virtual ~ServerRank () {} virtual int get_server_rank (const Quark& server) const=0; }; /** * Data Interface class for querying/setting news server data. * @ingroup data */ class ServerInfo: public ServerRank { public: virtual ~ServerInfo () {} public: // mutators virtual void set_server_auth (const Quark & servername, const StringView & username, gchar *&password, bool use_gkr) = 0; virtual void set_server_trust (const Quark & servername, const int setme) = 0; virtual void set_server_compression_type (const Quark & servername, const int setme) = 0; virtual void set_server_addr (const Quark & servername, const StringView & address, const int port) = 0; virtual void set_server_limits (const Quark & server, int max_connections)= 0; virtual void set_server_article_expiration_age (const Quark & server, int days) = 0; virtual void set_server_rank (const Quark& server, int rank) = 0; virtual void set_server_ssl_support (const Quark& server, int ssl) = 0; virtual void set_server_cert (const Quark & server, const StringView & cert) = 0; virtual void save_server_info (const Quark& server) = 0; public: // accessors virtual bool get_server_auth (const Quark & servername, std::string & setme_username, gchar *&setme_password, bool use_gkr) = 0; virtual bool get_server_trust (const Quark & servername, int&) const = 0; virtual bool get_server_compression_type (const Quark & servername, CompressionType&) const = 0; virtual bool get_server_addr (const Quark & servername, std::string & setme_address, int & setme_port) const = 0; // only used for debug and loging output virtual std::string get_server_address (const Quark& servername) const = 0; virtual bool get_server_ssl_support (const Quark & server) const = 0; virtual std::string get_server_cert (const Quark & server) const = 0; /** If set_server_limits() has never been called, 2 is returned. */ virtual int get_server_limits (const Quark & server) const = 0; virtual int get_server_article_expiration_age (const Quark & server) const = 0; virtual bool find_server_by_host_name (const std::string& server, Quark& setme) const = 0; }; } #endif pan-0.162/pan/data/xref-test.cc000066400000000000000000000055331475412772400162420ustar00rootroot00000000000000#include #include #include #include #include #include #include #include "xref.h" #include "article.h" using namespace pan; int main (void) { const Quark s1 ("server1"); const Quark s2 ("server2"); const Quark s3 ("server3"); const Quark s4 ("server4"); const Quark g1 ("group1"); const Quark g2 ("group2"); const Quark g3 ("group3"); /** *** Add **/ Xref s; s.insert (s1, g1, 100ul); check (s.size() == 1) s.insert (s2, g1, 200ul); check (s.size() == 2) s.insert (s3, g1, 300ul); check (s.size() == 3) s.insert (s1, g1, 300); // should fail -- already have server+group check (s.size() == 3) s.insert (s1, g2, 300); check (s.size() == 4) /** *** Find Number **/ #if 0 uint64_t number; check (s.find (s1, g1, number)) check (number == 100) check (s.find (s2, g1, number)) check (number == 200) check (s.find (s3, g1, number)) check (number == 300) check (s.find (s1, g2, number)) check (number == 300) check (!s.find (s1, g3, number)) check (!s.find (s2, g3, number)) check (!s.find (s4, g1, number)) #endif /** *** Remove Server **/ s.remove_server (s1); check (s.size() == 2) for (Xref::targets_t::const_iterator it=s.begin(), end=s.end(); it!=end; ++it) check (it->server != s1) /** *** Clear **/ s.clear (); check (s.empty()) /** *** Xref: header **/ StringView v ("news.netfront.net alt.zen:175094 alt.religion.buddhism:10033 talk.religion.buddhism:170169"); s.insert ("netfront", v); check (s.size() == 3) v = "news.froody.org alt.zen:666 alt.religion.buddhism:999 talk.religion.buddhism:333"; s.insert ("froody", v); check (s.size() == 6) quarks_t servers; s.get_servers (servers); check (servers.size()==2) check (servers.count("froody")) check (servers.count("netfront")) check (s.has_server ("froody")) check (s.has_server ("netfront")) check (!s.has_server ("foo")) //for (Xref::const_iterator it(s.begin()), end(s.end()); it!=end; ++it) std::cerr << "server [" << it->server << "], group [" << it->group << "], number [" << it->number << "]" << std::endl; s.remove_server ("froody"); check (s.size() == 3); check (!s.has_server ("froody")); check (s.has_server ("netfront")); s.remove_targets_less_than ("netfront", "alt.zen", 100000ul); check (s.size() == 3); s.remove_targets_less_than ("netfront", "alt.zen", 200000ul); check (s.size() == 2); Quark group; uint64_t number (0ul); check (s.find ("netfront", group, number)) check (number!=175094) check (number==10033 || number==107169) check (number==10033 ? group=="alt.religion.buddhism" : group=="talk.religion.buddhism") Xref x; x.insert (s); x.insert (s); check (x.size() == 2) return 0; } pan-0.162/pan/data/xref.cc000066400000000000000000000075211475412772400152640ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #include #include #include #include #include #include #include "xref.h" using namespace pan; void Xref :: insert (const Quark & server, const StringView & line) { pan_return_if_fail (!server.empty()); // trim & cleanup; remove leading "Xref: " if present StringView xref (line); xref.trim (); if (xref.len>6 && !memcmp(xref.str,"Xref: ",6)) { xref = xref.substr (xref.str+6, NULL); xref.trim (); } // walk through the xrefs, of format "group1:number group2:number" targets.reserve (targets.size() + std::count(xref.begin(), xref.end(), ':')); StringView s; while (xref.pop_token (s)) { if (s.strchr (':') != nullptr) { StringView group_name; if (s.pop_token(group_name, ':')) { Target t; t.server = server; t.group = group_name; t.number = Article_Number(s); targets.get_container().push_back (t); } } } targets.sort (); } void Xref :: remove_server (const Quark& server) { std::vector t; t.reserve (targets.size()); foreach_const (targets_t, targets, it) if (it->server != server) t.push_back (*it); targets.get_container().swap (t); } void Xref :: remove_targets_less_than (const Quark & server, const Quark & group, Article_Number n) { std::vector t; t.reserve (targets.size()); foreach_const (targets_t, targets, it) if (it->server!=server || it->group!=group || it->number>=n) t.push_back (*it); targets.get_container().swap (t); } namespace { // targets are equal if their servers are equal. // this works because servers are the primary key in Target::operator< (const Target) struct TargetServerStrictWeakOrdering { bool operator()(const Xref::Target& a, const Xref::Target& b) const { return a.server < b.server; } }; } bool Xref :: has_server (const Quark & server) const { Target tmp; tmp.server = server; return std::binary_search (targets.begin(), targets.end(), tmp, TargetServerStrictWeakOrdering()); } bool Xref :: find (const Quark & server, Quark & setme_group, Article_Number & setme_number) const { Target tmp; tmp.server = server; const_iterator it (std::lower_bound (targets.begin(), targets.end(), tmp, TargetServerStrictWeakOrdering())); const bool found (it != targets.end()); if (found) { setme_group = it->group; setme_number = it->number; } return found; } Article_Number Xref :: find_number (const Quark & server, const Quark & group) const { Target tmp; tmp.server = server; tmp.group = group; const_iterator it (targets.lower_bound (tmp)); return it!=targets.end() && it->server==server && it->group==group ? it->number : static_cast(0ull); } void Xref :: get_servers (quarks_t & addme) const { foreach_const (targets_t, targets, it) addme.insert (it->server); } pan-0.162/pan/data/xref.h000066400000000000000000000071761475412772400151340ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #ifndef __Xref_h__ #define __Xref_h__ #include #include #include #include #include namespace pan { /** * A set of identifiers for an article. * * By using this as a cross-reference to all the occurences of an article, * we can mark every instance of a crosspost as read when it's read in one * group, or we can look for an article across different servers. * * There can only be one entry per [server + group] in a set. * Adding a second entry with the same [server + group] will fail. * * @ingroup data */ class Xref { public: /** Tuple of [server,group,number] describing an article's location. */ struct Target { Quark server; Quark group; Article_Number number; Target (): number(0ul) { } bool operator== (const Target& t) const { return t.server==server && t.group==group && t.number==number; } bool operator< (const Target& t) const { if (server != t.server) return server < t.server; if (group != t.group) return group < t.group; return false; } Target (const Quark& sq, const Quark& gq, Article_Number n): server (sq), group (gq), number (n) { } }; public: typedef sorted_vector targets_t; typedef targets_t::const_iterator const_iterator; const_iterator begin() const { return targets.begin(); } const_iterator end() const { return targets.end(); } public: unsigned long size () const { return targets.size(); } bool empty () const { return targets.empty(); } Article_Number find_number (const Quark& server, const Quark& group) const; bool find (const Quark& server, Quark& setme_group, Article_Number& setme_number) const; bool has_server (const Quark& server) const; void get_servers (quarks_t& addme) const; public: void clear () { targets.clear(); } void remove_server (const Quark& server); void remove_targets_less_than (const Quark& s, const Quark& g, Article_Number less_than_this); public: template void insert (ForwardIterator a, ForwardIterator b) { targets.insert (a, b); } void insert (const Target& target) { targets.insert (target); } void insert (const Quark& s, const Quark& g, Article_Number n) {targets.insert (Target(s,g,n));} void insert (const Xref& xref) { insert (xref.begin(), xref.end()); } template void assign (ForwardIterator a, ForwardIterator b) { targets.clear (); targets.insert (a, b); } void insert (const Quark& s, const StringView& header); void swap (targets_t& t) { targets.swap (t); } private: targets_t targets; }; } #endif pan-0.162/pan/general/000077500000000000000000000000001475412772400145105ustar00rootroot00000000000000pan-0.162/pan/general/CMakeLists.txt000066400000000000000000000012201475412772400172430ustar00rootroot00000000000000add_library(generalutils article_number.cc debug.cc e-util.cc file-util.cc log.cc line-reader.cc progress.cc quark.cc string-view.cc text-match.cc utf8-utils.cc worker-pool.cc compression.cc ) # Sanity checking # https://cmake.org/cmake/help/latest/command/add_compile_options.html target_compile_options(generalutils PRIVATE "${CXX_STD}" "-Wreorder" "-Wzero-as-null-pointer-constant") # see https://cmake.org/cmake/help/latest/module/FindZLIB.html if(ZLIB_FOUND) my_target_system_lib(generalutils PUBLIC ZLIB) endif() target_link_libraries(generalutils PUBLIC PkgConfig::GMIME) target_link_libraries(generalutils PUBLIC PkgConfig::GTK3) pan-0.162/pan/general/article_number.cc000066400000000000000000000015511475412772400200140ustar00rootroot00000000000000#include "article_number.h" #include #include #include namespace pan { Article_Count::Article_Count(StringView const &str) { if (str.empty()) { val_ = 0; } else { char *end; val_ = g_ascii_strtoull(str.str, &end, 10); //Error checking? //*end != 0 //val = max and errno set to E_RANGE } } std::ostream &operator<<(std::ostream &os, Article_Count a) { return os << static_cast(a); } Article_Number::Article_Number(StringView const &str) { if (str.empty()) { val_ = 0; } else { char *end; val_ = g_ascii_strtoull(str.str, &end, 10); //Error checking? //*end != 0 //val = max and errno set to E_RANGE } } std::ostream &operator<<(std::ostream &os, Article_Number a) { return os << static_cast(a); } } pan-0.162/pan/general/article_number.h000066400000000000000000000111451475412772400176560ustar00rootroot00000000000000#ifndef article_number_h #define article_number_h #include #include namespace pan { struct StringView; /** This is a count of articles. It isn't the same thing as an article number, * even if the underlying type is the same. */ class Article_Count { public: typedef uint64_t type; Article_Count() : val_(0) {} explicit Article_Count(type x) : val_(x) {} explicit Article_Count(StringView const &); Article_Count(Article_Count const &rhs) = default; explicit operator type () const { return val_; } Article_Count &operator=(Article_Count const &val) { val_ = val.val_; return *this; } Article_Count operator+(type n) const { Article_Count res; res.val_ = val_ + n; return res; } Article_Count operator-(type n) const { Article_Count res; res.val_ = val_ - n; return res; } Article_Count & operator-=(Article_Count const &rhs) { val_ -= rhs.val_; return *this; } Article_Count & operator+=(Article_Count const &rhs) { val_ += rhs.val_; return *this; } Article_Count & operator+=(type const &rhs) { val_ += rhs; return *this; } Article_Count & operator++() { val_ += 1; return *this; } Article_Count operator-(Article_Count const &rhs) const { Article_Count res(val_); return res - rhs.val_; } private: type val_; }; inline bool operator==(Article_Count const &lhs, Article_Count const &rhs) { return static_cast(lhs) == static_cast(rhs); } inline bool operator!=(Article_Count const &lhs, Article_Count const &rhs) { return static_cast(lhs) != static_cast(rhs); } inline bool operator>=(Article_Count const &lhs, Article_Count const &rhs) { return static_cast(lhs) >= static_cast(rhs); } inline bool operator<=(Article_Count const &lhs, Article_Count const &rhs) { return static_cast(lhs) <= static_cast(rhs); } inline bool operator<(Article_Count const &lhs, Article_Count const &rhs) { return static_cast(lhs) < static_cast(rhs); } inline bool operator>(Article_Count const &lhs, Article_Count const &rhs) { return static_cast(lhs) > static_cast(rhs); } std::ostream &operator<<(std::ostream &os, Article_Count a); /** An article number needs a specific size. * Some groups can have way over 4 billion articles. */ class Article_Number { public: typedef uint64_t type; Article_Number() : val_(0) {} explicit Article_Number(type x) : val_(x) {} explicit Article_Number(StringView const &); Article_Number(Article_Number const &rhs) = default; explicit operator type () const { return val_; } Article_Number &operator=(Article_Number const &val) { val_ = val.val_; return *this; } Article_Number operator+(type n) const { Article_Number res; res.val_ = val_ + n; return res; } Article_Number operator-(type n) const { Article_Number res; res.val_ = val_ - n; return res; } Article_Count operator-(Article_Number const &rhs) const { Article_Count res(val_); return res - rhs.val_; } Article_Number &operator+=(type n) { val_ += n; return *this; } private: type val_; }; inline bool operator==(Article_Number const &lhs, Article_Number const &rhs) { return static_cast(lhs) == static_cast(rhs); } inline bool operator!=(Article_Number const &lhs, Article_Number const &rhs) { return static_cast(lhs) != static_cast(rhs); } inline bool operator<(Article_Number const &lhs, Article_Number const &rhs) { return static_cast(lhs) < static_cast(rhs); } inline bool operator<=(Article_Number const &lhs, Article_Number const &rhs) { return static_cast(lhs) <= static_cast(rhs); } inline bool operator>(Article_Number const &lhs, Article_Number const &rhs) { return static_cast(lhs) > static_cast(rhs); } inline bool operator>=(Article_Number const &lhs, Article_Number const &rhs) { return static_cast(lhs) >= static_cast(rhs); } std::ostream &operator<<(std::ostream &os, Article_Number a); } #endif pan-0.162/pan/general/compression.cc000066400000000000000000000116471475412772400173710ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ extern "C" { #include #include #include } #include #include #include "compression.h" #include #include using namespace pan; namespace { #define MEMCHUNK 4096 #define LINELEN_MIN 2048 #define LINELEN_MAX 32768 } bool compression::ydecode(std::stringstream* in, std::stringstream* out) { int gotbeg = 0, len, outlen = 0; char buf2[512]; char buf1[512], c, *p, *p2 = buf2; unsigned int crc1 = 0; crc32_t crc = crc32(0L, Z_NULL, 0); while (!in->getline(buf1, sizeof(buf1)).bad()) { if (gotbeg == 0 && strncmp(buf1, "=ybegin ", 8) == 0) { gotbeg = 1; } else if (gotbeg == 1 && strncmp(buf1, "=yend ", 6) == 0) { p = strstr(buf1, "crc32="); if (p) sscanf(p + 6, "%x", &crc1); break; } else if (gotbeg == 1) { len = strlen(buf1); /* strip the CR LF */ if (len > 2 && buf1[len - 1]) { buf1[len - 1] = '\0'; len--; } p = buf1; while (*p) { c = *p++; if (c == '=') { c = *p++; if (c == 0) break; /* can't have escape char as last char in line */ c = (unsigned char) (c - 64); } c = (unsigned char) (c - 42); *p2++ = c; /* flush when buffer full */ if (++outlen >= sizeof(buf2)) { crc = crc32(crc, (unsigned char*)buf2, outlen); out->write(buf2, outlen); p2 = buf2; outlen = 0; } } } } /* flush remaining data */ if (outlen) { crc = crc32(crc, (unsigned char*)buf2, outlen); out->write(buf2, outlen); } return (crc == crc1); } bool compression::inflate_zlib(std::stringstream *source, std::stringstream *dest, const CompressionType& compression) { int ret = Z_DATA_ERROR; size_t have; z_stream strm; char in[MEMCHUNK]; char out[MEMCHUNK]; /* allocate inflate state */ strm.zalloc = Z_NULL; strm.zfree = Z_NULL; strm.opaque = Z_NULL; strm.avail_in = 0; strm.next_in = Z_NULL; if (compression == HEADER_COMPRESS_XZVER) ret = inflateInit2(&strm, -MAX_WBITS); /* use -MAX_WBITS to indicate gzip style */ if (compression == HEADER_COMPRESS_XFEATURE || compression == HEADER_COMPRESS_DIABLO) ret = inflateInit(&strm); if (ret != Z_OK) return ret; /* decompress until deflate stream ends or end of file */ do { strm.avail_in = source->readsome(in, MEMCHUNK); if (strm.avail_in < 0) strm.avail_in = 0; if (source->fail()) { (void) inflateEnd(&strm); return Z_ERRNO; } if (strm.avail_in == 0) break; strm.next_in = (unsigned char*) in; /* run inflate() on input until output buffer not full */ do { strm.avail_out = MEMCHUNK; strm.next_out = (unsigned char*) out; ret = inflate(&strm, Z_NO_FLUSH); assert(ret != Z_STREAM_ERROR); /* state not clobbered */ switch (ret) { case Z_NEED_DICT: ret = Z_DATA_ERROR; /* and fall through */ case Z_DATA_ERROR: case Z_MEM_ERROR: (void) inflateEnd(&strm); return ret; } have = MEMCHUNK - strm.avail_out; dest->write(out, have); } while (strm.avail_out == 0); /* done when inflate() says it's done */ } while (ret != Z_STREAM_END); /* clean up and return */ (void) inflateEnd(&strm); return ret == Z_STREAM_END ? true : false; } void compression::inflate_gzip (std::stringstream* stream, std::stringstream* out) { std::string line; std::istringstream in_str(stream->str()); while (std::getline(in_str, line, '\r')) { StringView str(line.c_str()); if (str.str[str.len - 1] == '.') { str.rtruncate(1); if (str.len != 0) *out<clear(); } pan-0.162/pan/general/compression.h000066400000000000000000000030011475412772400172140ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #ifndef __Compression_h__ #define __Compression_h__ #include #include #include #include namespace pan { enum CompressionType { HEADER_COMPRESS_NONE = 0, HEADER_COMPRESS_XZVER = 1, HEADER_COMPRESS_XFEATURE = 2, HEADER_COMPRESS_DIABLO = 3 }; const static char* COMPRESS_GZIP = "[COMPRESS=GZIP]"; const static char* ENABLE_COMPRESS_GZIP = "XFEATURE COMPRESS GZIP\r\n"; namespace compression { bool inflate_zlib(std::stringstream *source, std::stringstream *dest, const CompressionType& compression); bool ydecode(std::stringstream* in, std::stringstream* out); void inflate_gzip (std::stringstream*, std::stringstream*); } } #endif pan-0.162/pan/general/debug.cc000066400000000000000000000003161475412772400161050ustar00rootroot00000000000000#include #include "debug.h" namespace pan { bool _debug_flag = false; bool _debug_verbose_flag = false; bool _verbose_flag = false; std::ofstream _dbg_file; bool _dbg_ssl = false; } pan-0.162/pan/general/debug.h000066400000000000000000000033611475412772400157520ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #ifndef __Debug_h__ #define __Debug_h__ #include #include namespace pan { extern bool _debug_flag; extern bool _debug_verbose_flag; extern bool _verbose_flag; extern bool _dbg_ssl; extern std::ofstream _dbg_file; } #define LINE_ID '(' << __FILE__ << ':' << __LINE__ << ':' << __func__ << ')' #define debug(A) \ do { \ if (_debug_flag) \ std::cerr<< LINE_ID << ' ' << A << '\n'; \ } while (0) #define debug_v(A) \ do { \ if (_debug_verbose_flag) \ std::cerr << LINE_ID << ' ' << A << '\n'; \ } while (0) #define verbose(A) \ do { \ if (_verbose_flag) \ std::cerr << A << '\n'; \ } while (0) #define debug_SSL(A) \ do { \ if (_dbg_ssl) \ std::cerr << A << '\n'; \ } while (0) #define debug_SSL_verbatim(A) \ do { \ if (_dbg_ssl) \ std::cerr << A << '\n'; \ } while (0) #ifndef UNUSED #ifdef __GNUC__ #define UNUSED __attribute__((unused)) #else #define UNUSED #endif #endif #endif pan-0.162/pan/general/e-util.cc000066400000000000000000000151531475412772400162230ustar00rootroot00000000000000/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* * e-util.c * Copyright 2000, 2001, Ximian, Inc. * * Authors: * Chris Lahey * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License, version 2, as published by the Free Software Foundation. * * This library is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, see . */ #include "e-util.h" #include #include #include #include #include extern "C" { #include } #include #include #include "debug.h" namespace pan { namespace { static char * e_strdup_strip(const char *string) { int i; int length = 0; int initial = 0; for ( i = 0; string[i]; i++ ) { if (initial == i && isspace((unsigned char) string[i])) { initial ++; } if (!isspace((unsigned char) string[i])) { length = i - initial + 1; } } return g_strndup(string + initial, length); } static size_t e_strftime(char *s, size_t max, const char *fmt, const struct tm *tm) { #ifdef HAVE_LKSTRFTIME return strftime(s, max, fmt, tm); #else char *c, *ffmt, *ff; size_t ret; ffmt = g_strdup(fmt); ff = ffmt; while ((c = strstr(ff, "%l")) != NULL) { c[1] = 'I'; ff = c; } ff = ffmt; while ((c = strstr(ff, "%k")) != NULL) { c[1] = 'H'; ff = c; } ret = strftime(s, max, ffmt, tm); g_free(ffmt); return ret; #endif } } /** * Function to do a last minute fixup of the AM/PM stuff if the locale * and gettext haven't done it right. Most English speaking countries * except the USA use the 24 hour clock (UK, Australia etc). However * since they are English nobody bothers to write a language * translation (gettext) file. So the locale turns off the AM/PM, but * gettext does not turn on the 24 hour clock. Leaving a mess. * * This routine checks if AM/PM are defined in the locale, if not it * forces the use of the 24 hour clock. * * The function itself is a front end on strftime and takes exactly * the same arguments. * * TODO: Actually remove the '%p' from the fixed up string so that * there isn't a stray space. **/ size_t EvolutionDateMaker :: e_strftime_fix_am_pm (char *s, size_t max, const char *fmt, const struct tm *tm) const { size_t ret; if (am_pm_are_defined_in_locale || (!strstr(fmt,"%p") && !strstr(fmt,"%P"))) { // either no AM/PM involved, // or it is involved and we can handle it ret = e_strftime (s, max, fmt, tm); } else // no am/pm defined... change to a 24 hour clock { char * ffmt = g_strdup (fmt); for (char * sp=ffmt; (sp=strstr(sp, "%l")); ++sp) sp[1]='H'; // maybe this should be 'k' but I've never seen a 24 clock actually use that format for (char * sp=ffmt; (sp=strstr(sp, "%I")); sp++) sp[1]='H'; ret = e_strftime(s, max, ffmt, tm); g_free (ffmt); } return ret; } size_t EvolutionDateMaker :: e_utf8_strftime_fix_am_pm (char *s, size_t max, const char *locale_fmt, const struct tm *tm) const { size_t ret = e_strftime_fix_am_pm(s, max, locale_fmt, tm); if (!ret) return 0; gsize sz; char * buf = g_locale_to_utf8(s, ret, NULL, &sz, NULL); if (!buf) return 0; if (sz >= max) { char *tmp = buf + max - 1; tmp = g_utf8_find_prev_char (buf, tmp); sz = tmp ? tmp-buf : 0; } memcpy (s, buf, sz); s[sz] = '\0'; g_free(buf); return sz; } #if !defined(HAVE_LOCALTIME_R) #define localtime_r(a,b) *(b) = *localtime(a) #endif EvolutionDateMaker :: EvolutionDateMaker (time_t now) : locale_recent(g_locale_from_utf8 (_("%l:%M %p"), -1, NULL, NULL, NULL)), locale_today(g_locale_from_utf8 (_("Today %l:%M %p"), -1, NULL, NULL, NULL)), locale_this_week(g_locale_from_utf8 (_("%a %l:%M %p"), -1, NULL, NULL, NULL)), locale_this_year(g_locale_from_utf8 (_("%b %d %l:%M %p"), -1, NULL, NULL, NULL)), locale_old(g_locale_from_utf8 (_("%b %d %Y"), -1, NULL, NULL, NULL)), now_time(now) { // set the current time localtime_r (&now_time, &now_tm); time_t tmp_time = now_time; const size_t secs_in_day = 60 * 60 * 24; for (int i=0;i<7; i++) { tmp_time -= secs_in_day; localtime_r (&tmp_time, &last_seven_days[i]); } // test to see if am/pm symbols are defined in this locale char buf[10]; *buf = '\0'; e_strftime (buf, sizeof(buf), "%p", &now_tm); am_pm_are_defined_in_locale = *buf != '\0'; } EvolutionDateMaker :: ~EvolutionDateMaker () { g_free (locale_old); g_free (locale_this_year); g_free (locale_this_week); g_free (locale_today); g_free (locale_recent); } char* EvolutionDateMaker :: get_date_string (time_t then_time) const { if (!then_time) return g_strdup (_("?")); struct tm then_tm; char buf[100]; char *temp; bool done = false; localtime_r (&then_time, &then_tm); // less than eight hours ago... if (now_time - then_time < 60 * 60 * 8 && now_time > then_time) { e_utf8_strftime_fix_am_pm (buf, sizeof(buf), locale_recent, &then_tm); done = true; } // today... if (!done) { if (then_tm.tm_mday == now_tm.tm_mday && then_tm.tm_mon == now_tm.tm_mon && then_tm.tm_year == now_tm.tm_year) { e_utf8_strftime_fix_am_pm (buf, sizeof(buf), locale_today, &then_tm); done = true; } } // this week... if (!done) { for (int i=0; i<6; ++i) { const struct tm& week_tm (last_seven_days[i]); if (then_tm.tm_mday == week_tm.tm_mday && then_tm.tm_mon == week_tm.tm_mon && then_tm.tm_year == week_tm.tm_year) { e_utf8_strftime_fix_am_pm (buf, sizeof(buf), locale_this_week, &then_tm); done = true; break; } } } if (!done) { // this year... if (then_tm.tm_year == now_tm.tm_year) e_utf8_strftime_fix_am_pm (buf, sizeof(buf), locale_this_year, &then_tm); else // older than this year... e_utf8_strftime_fix_am_pm (buf, sizeof(buf), locale_old, &then_tm); temp = buf; while ((temp = strstr (temp, " "))) memmove (temp, temp + 1, strlen (temp)); } return e_strdup_strip (buf); } } pan-0.162/pan/general/e-util.h000066400000000000000000000032221475412772400160570ustar00rootroot00000000000000/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* * e-util.h * Copyright 2000, 2001, Ximian, Inc. * * Authors: * Chris Lahey * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License, version 2, as published by the Free Software Foundation. * * This library is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, see . */ #ifndef _E_UTIL_H_ #define _E_UTIL_H_ #include #include namespace pan { class EvolutionDateMaker { private: char * locale_recent; char * locale_today; char * locale_this_week; char * locale_this_year; char * locale_old; bool am_pm_are_defined_in_locale; private: size_t e_strftime_fix_am_pm (char *s, size_t max, const char *fmt, const struct tm *tm) const; size_t e_utf8_strftime_fix_am_pm (char *s, size_t max, const char *locale_fmt, const struct tm *tm) const; private: time_t now_time; struct tm now_tm; struct tm last_seven_days[7]; // [0=yesterday ... 6=one week ago] public: EvolutionDateMaker (time_t n=time(nullptr)); ~EvolutionDateMaker (); char* get_date_string (time_t date) const; }; } #endif /* _E_UTIL_H_ */ pan-0.162/pan/general/file-util.cc000066400000000000000000000175511475412772400167220ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #include #include #include #include #include extern "C" { #include #include #include #ifndef G_OS_WIN32 #include #endif } #include #include "debug.h" #include "log.h" #include "messages.h" #include "file-util.h" #include "e-util.h" #include "utf8-utils.h" #include using namespace pan; #define is_nonempty_string(a) ((a) && (*a)) #define NL std::endl std::ostream& file :: print_file_info (std::ostream& os, const char* file) { EvolutionDateMaker dm; struct stat sb; int ret = stat(file,&sb); os << "File information for file "<pw_gid == sb.st_gid)) return EX_SUCCESS; return EX_BIT; #else return EX_SUCCESS; #endif } } bool file :: ensure_dir_exists (const StringView& dirname_sv) { assert (!dirname_sv.empty()); pan_return_val_if_fail (!dirname_sv.empty(), true); bool retval (true); const std::string dirname (dirname_sv.to_string()); EX_ERRORS cmd (check_executable_bit(dirname.c_str())); if (cmd == EX_BIT) goto _set_bit; if (!g_file_test (dirname.c_str(), G_FILE_TEST_IS_DIR)) retval = !g_mkdir_with_parents (dirname.c_str(), 0740); // changed from 755 if (!retval) { // check for executable bit Log::add_err_va("Error creating directory '%s' : %s", dirname.c_str(), cmd == EX_NOFILE ? "error accessing file." : "executable bit not set."); // set it manually _set_bit: if (cmd == EX_BIT) if (chmod(dirname.c_str(), 0740)) { Log::add_urgent_va("Error setting executable bit for directory '%s' : " "Please check your permissions.", dirname.c_str()); } } return retval; } bool file :: file_exists (const char * filename) { return filename && *filename && g_file_test (filename, G_FILE_TEST_EXISTS); } /** *** Attempt to make a filename safe for use. *** This is done by replacing illegal characters with '_'. *** This function assumes the input is UTF8 since gmime uses UTF8 interface. *** return value must be g_free'd. **/ std::string file :: sanitize (const StringView& fname) { std::string ret; // sanity checks pan_return_val_if_fail (!fname.empty(), ret); ret = content_to_utf8(fname); // strip illegal characters # ifdef G_OS_WIN32 static const char* illegal_chars = "/\\:?*\"\'<>|"; # else static const char* illegal_chars = "/\\"; # endif for (const char *pch(illegal_chars); *pch; ++pch) std::replace (ret.begin(), ret.end(), *pch, '_'); return ret; } char* file :: normalize_inplace (char * filename) { char *in, *out; pan_return_val_if_fail (filename && *filename, filename); for (in=out=filename; *in; ) if (in[0]==G_DIR_SEPARATOR && in[1]==G_DIR_SEPARATOR) ++in; else *out++ = *in++; *out = '\0'; return filename; } /** *** Makes a unique filename given an optional path and a starting file name. *** The filename is sanitized before looking for uniqueness. **/ char* file :: get_unique_fname ( const gchar *path, const gchar *fname) { // sanity checks pan_return_val_if_fail (is_nonempty_string (fname), nullptr); // sanitize filename std::string tmp = sanitize (fname); GString * filename = g_string_new_len (tmp.c_str(), tmp.size()); // add the directory & look for uniqueness const char * front = filename->str; const char * lastdot = strrchr (front, '.'); char * lead; char * tail; if (lastdot == nullptr) { lead = g_strdup (front); tail = g_strdup (""); } else { lead = g_strndup (front, lastdot-front); tail = g_strdup (lastdot); } for (int i=1;; ++i) { char * unique; if (i==1 && is_nonempty_string(path)) { unique = g_strdup_printf ("%s%c%s%s", path, G_DIR_SEPARATOR, lead, tail); } else if (i==1) { unique = g_strdup_printf ("%s%s", lead, tail); } else if (is_nonempty_string(path)) { unique = g_strdup_printf ("%s%c%s_copy_%d%s", path, G_DIR_SEPARATOR, lead, i, tail); } else { unique = g_strdup_printf ("%s_copy_%d%s", lead, i, tail); } if (!file_exists (unique)) { g_string_assign (filename, unique); g_free (unique); break; } g_free (unique); } /* cleanup */ g_free (lead); g_free (tail); return normalize_inplace (g_string_free (filename, FALSE)); } /*** **** ***/ bool file :: get_text_file_contents (const StringView & filename, std::string & setme, const char * fallback_charset_1, const char * fallback_charset_2) { // read in the file... char * body (nullptr); gsize body_len (0); GError * err (nullptr); const std::string fname (filename.str, filename.len); g_file_get_contents (fname.c_str(), &body, &body_len, &err); if (err) { Log::add_err_va (_("Error reading file \"%s\": %s"), err->message, g_strerror(errno)); g_clear_error (&err); return false; } // CRLF => LF body_len = std::remove (body, body+body_len, '\r') - body; // utf8 setme = content_to_utf8 (StringView (body, body_len), fallback_charset_1, fallback_charset_2); g_free (body); return true; } pan-0.162/pan/general/file-util.h000066400000000000000000000065151475412772400165620ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #ifndef _FileUtil_h_ #define _FileUtil_h_ #include extern "C" { #include #include } #include #include namespace pan { /** * Collection of file utilities. * * @ingroup general */ namespace file { /** Stats a file and prints out some useful info. Umask etc.... */ std::ostream& print_file_info (std::ostream&, const char*); /** just like strerror but never returns NULL */ const char * pan_strerror (int error_number); /** * Returns the home pan directory, which falls back to $HOME/.pan2 * if the PAN_HOME environmental variable isn't set. */ const std::string & get_pan_home (); /** * Returns an absolute filename of a file */ std::string absolute_fn(const std::string &dir, const std::string &base); /** * If the specified directory doesn't exist, Pan tries to create it. * @param path * @return true if the directory already existed or was created; false otherwise */ bool ensure_dir_exists (const StringView& path); /** * Makes a unique filename given an optional path and a starting file name. * The filename is sanitized before looking for uniqueness. */ gchar* get_unique_fname( const gchar *path, const gchar *fname); /** * Attempt to make a filename safe for use. *

    *
  1. Replacing illegal characters with '_'. *
  2. Ensure the resulting string is UTF8-safe *
  3. This function assumes the input is UTF8 since gmime uses UTF8 interface. *
  4. Return value must be g_free'd. *
*/ std::string sanitize (const StringView& filename); /** * Check to see if the specifiled file exists. * @return true if the file exists, false otherwise * @param filename the file to check */ bool file_exists (const char * filename); /** * Removes extra '/' characters from the specified filename * @param filename * @return the filename pointer. */ char* normalize_inplace (char * filename); /** * Given the location of a text file, read it in and massage it * to the point where it should be usable -- convert CR/LF to LF, * and ensure that it's UTF8-clean. */ bool get_text_file_contents (const StringView & filename, std::string & setme, const char * fallback_charset_1=nullptr, const char * fallback_charset_2=nullptr); }; } #endif // _FileUtil_h_ pan-0.162/pan/general/line-reader.cc000066400000000000000000000032411475412772400172060ustar00rootroot00000000000000#include #include #include #include #include #include "file-util.h" #include "line-reader.h" #include "log.h" #define INITIAL_BUF_SIZE 4096 using namespace pan; FileLineReader :: FileLineReader (const StringView& filename): _buf ((char*) calloc (INITIAL_BUF_SIZE, 1)), _bufend (_buf + INITIAL_BUF_SIZE), _end (_buf), _pos (_buf), _alloc_size (INITIAL_BUF_SIZE), _fp (fopen (filename.to_string().c_str(), "rb")) { } FileLineReader :: ~FileLineReader () { if (_fp) fclose (_fp); free (_buf); } bool FileLineReader :: getline (StringView& setme) { const char * eoln ((const char*) memchr ((const void*)_pos, '\n', _end-_pos)); if (eoln != nullptr) // found an end of line... easy case. { setme.assign (_pos, eoln-_pos); _pos = eoln + 1; return true; } else // no eoln -- try to read more. { const size_t remainder (_end - _pos); if (remainder != _alloc_size) { // still have room left at the end... memmove (_buf, _pos, remainder); _pos = _buf; _end = _buf + remainder; } else { // this line is bigger than our buffer - resize char * oldbuf = _buf; _alloc_size *= 2u; _buf = (char*) calloc (_alloc_size, 1); memmove (_buf, _pos, remainder); _pos = _buf; _end = _buf + remainder; _bufend = _buf + _alloc_size; free (oldbuf); } const int readval (_fp!=nullptr ? fread ((char*)_end, 1, _bufend-_end, _fp) : 0); _end += readval; if (readval > 0) // new content to try return getline (setme); else { setme.assign (_pos, _end-_pos); _pos = _end; return !setme.empty(); } } } pan-0.162/pan/general/line-reader.h000066400000000000000000000040251475412772400170510ustar00rootroot00000000000000#ifndef _Line_Reader_h_ #define _Line_Reader_h_ #include #include #include #include #include namespace pan { /** * Interface for objects that read data line-by-line. * * These hold live data when running Pan and test data * when we're running unit tests. * * Maybe this should be replaced with good ol' std::getline(istream). * * @ingroup general */ class LineReader { public: virtual ~LineReader () {} virtual bool getline (StringView& setme) = 0; virtual bool fail () const = 0; }; /** * A LineReader that reads from a local file. * @ingroup general */ class FileLineReader final: public LineReader { public: FileLineReader (const StringView& filename); virtual ~FileLineReader (); bool getline (StringView& setme) override; bool fail () const override { return !_fp || ferror(_fp); } FileLineReader(FileLineReader const &) = delete; FileLineReader operator=(FileLineReader const &) = delete; private: char * _buf; const char * _bufend; const char * _end; const char * _pos; size_t _alloc_size; FILE * _fp; }; /** * Used for feeding mock data to objects in unit tests. * * @ingroup general */ class ScriptedLineReader final: public LineReader { public: ScriptedLineReader () {} ScriptedLineReader (const StringView& in) { _buf.assign (in.str, in.len); } virtual ~ScriptedLineReader () {} bool fail () const override { return false; } bool getline (StringView& setme) override { if (_buf.empty()) return false; std::string::size_type pos = _buf.find ('\n'); if (pos != std::string::npos) { _line.assign (_buf, 0, pos); _buf.erase (0, pos+1); } else { _line.clear (); _line.swap (_buf); } setme = _line; return true; } std::string _line; std::string _buf; }; } #endif pan-0.162/pan/general/locking.h000066400000000000000000000033541475412772400163140ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2007 Charles Kerr * * This file * Copyright (C) 2007 Calin Culianu * * This file is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #ifndef _Mutex_h_ #define _Mutex_h_ #include namespace pan { /*** * A C++ wrapper for GMutex. * * @author Calin Culianu * @ingroup general * (changed for glib >= 3.32) */ class Mutex { private: GMutex mutex; GMutex * m; public: /** Create a new mutex */ Mutex() { #if !GLIB_CHECK_VERSION(2,32,0) m = g_mutex_new(); #else m = &mutex; g_mutex_init(m); #endif } /** Destroy the mutex */ virtual ~Mutex() { #if !GLIB_CHECK_VERSION(2,32,0) g_mutex_free(m); #else g_mutex_clear(m); #endif } /** Block until a lock is acquired */ void lock() { g_mutex_lock(m); } /** Unlock the mutex - may wake another thread waiting on it */ void unlock() { g_mutex_unlock(m); } }; } #endif pan-0.162/pan/general/log.cc000066400000000000000000000053101475412772400155770ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #include #include #include #include // vsnprintf #include "log.h" using namespace pan; /*** ***/ void Log :: clear () { _entries.clear (); fire_cleared (); } /*** ***/ void Log :: fire_entry_added (const Entry& e) { for (listeners_t::const_iterator i(_listeners.begin()), end(_listeners.end()); i!=end; ) (*i++)->on_log_entry_added (e); } void Log :: fire_cleared () { for (listeners_t::const_iterator i(_listeners.begin()), end(_listeners.end()); i!=end; ) (*i++)->on_log_cleared (); } /*** ***/ void Log :: add_entry(Entry& e, std::deque& list) { _entries.resize (_entries.size() + 1); Entry& a (_entries.back()); a.date = time(NULL); a.severity = e.severity; a.message = e.message; foreach (std::deque, list, it) { Entry* new_entry = new Entry(*it); a.messages.push_back(new_entry); } fire_entry_added (a); } void Log :: add (Severity severity, const char * msg) { _entries.resize (_entries.size() + 1); Entry& e (_entries.back()); e.date = time(NULL); e.severity = severity; e.message = msg; fire_entry_added (e); } void Log :: add_va (Severity severity, const char * fmt, ...) { if (fmt != NULL) { va_list args; va_start (args, fmt); char buf[4096]; vsnprintf (buf, sizeof(buf), fmt, args); va_end (args); add (severity, buf); } } void Log :: add_info_va (const char * fmt, ...) { va_list args; va_start (args, fmt); char buf[4096]; vsnprintf (buf, sizeof(buf), fmt, args); va_end (args); add_info (buf); } void Log :: add_err_va (const char * fmt, ...) { va_list args; va_start (args, fmt); char buf[4096]; vsnprintf (buf, sizeof(buf), fmt, args); va_end (args); add_err (buf); } void Log :: add_urgent_va (const char * fmt, ...) { va_list args; va_start (args, fmt); char buf[4096]; vsnprintf (buf, sizeof(buf), fmt, args); va_end (args); add_urgent (buf); } pan-0.162/pan/general/log.h000066400000000000000000000064441475412772400154520ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #ifndef __Log_h__ #define __Log_h__ #include #include #include #include #include #include namespace pan { /** * Logs information and error messages that that the user should see. */ class Log : public PanSingleton< Log > { public: enum Severity { PAN_SEVERITY_INFO = 1, PAN_SEVERITY_ERROR = 2, PAN_SEVERITY_URGENT = (1<<10) }; /** * A log message specifying the message's text, severity, and time. * @see Log * @ingroup general */ struct Entry { time_t date; Severity severity; std::deque messages; std::string message; bool is_child; Entry() : date(0), severity(PAN_SEVERITY_INFO), is_child(false) { } virtual ~Entry () { foreach (std::deque, messages, it) delete *it; } }; void add_entry(Entry& e, std::deque& list); /** Interface class for objects that listen to a Log's events */ struct Listener { Listener () {} virtual ~Listener () {} virtual void on_log_entry_added (const Entry& e) = 0; virtual void on_log_cleared () = 0; }; typedef std::deque entries_t; typedef std::deque entries_p; public: void add (Severity, const char *); void add_va (Severity, const char *, ...); const entries_t& get_entries () const { return _entries; } void clear (); void add_listener (Listener* l) { _listeners.insert(l); } void remove_listener (Listener* l) { _listeners.erase(l); } private: typedef std::set listeners_t; listeners_t _listeners; void fire_entry_added (const Entry& e); void fire_cleared (); entries_t _entries; public: // convenience functions static void add_info (const char * s) { Log::get().add (Log::PAN_SEVERITY_INFO, s); } static void add_info_va (const char *, ...); static void add_err (const char * s) { Log::get().add (Log::PAN_SEVERITY_ERROR, s); } static void add_err_va (const char *, ...); static void add_urgent (const char * s) { Log::get().add ((Severity)(PAN_SEVERITY_ERROR|PAN_SEVERITY_URGENT), s); } static void add_urgent_va (const char *, ...); static void entry_added (const Entry& e) { Log::get().fire_entry_added(e); } static void add_entry_list(Entry& e, std::deque& list) { Log::get().add_entry (e, list); } }; } #endif /* __Log_H__ */ pan-0.162/pan/general/macros.h000066400000000000000000000035711475412772400161530ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #ifndef __Pan_Macros_h__ #define __Pan_Macros_h__ #define STD_SSL_PORT 563 #define STD_NNTP_PORT 119 /** *** foreach **/ #define foreach(Type,var,itname) \ for (Type::iterator itname(var.begin()), \ itname##end(var.end()); itname!=itname##end; \ ++itname) #define foreach_const(Type,var,itname) \ for (Type::const_iterator itname(var.begin()), \ itname##end(var.end()); itname!=itname##end; \ ++itname) #define foreach_r(Type,var,itname) \ for (Type::reverse_iterator itname(var.rbegin()), \ itname##end(var.rend()); itname!=itname##end; \ ++itname) #define foreach_const_r(Type,var,itname) \ for (Type::const_reverse_iterator itname(var.rbegin()), \ itname##end(var.rend()); itname!=itname##end; \ ++itname) /** *** UNUSED **/ #ifndef UNUSED #ifdef __GNUC__ #define UNUSED __attribute__((unused)) #else #define UNUSED #endif #endif /** *** g_assert **/ #include #endif pan-0.162/pan/general/map-vector.h000066400000000000000000000267741475412772400167560ustar00rootroot00000000000000//////////////////////////////////////////////////////////////////////////////// // The Loki Library // Copyright (c) 2001 by Andrei Alexandrescu // This code accompanies the book: // Alexandrescu, Andrei. "Modern C++ Design: Generic Programming and Design // Patterns Applied". Copyright (c) 2001. Addison-Wesley. // Permission to use, copy, modify, distribute and sell this software for any // purpose is hereby granted without fee, provided that the above copyright // notice appear in all copies and that both that copyright notice and this // permission notice appear in supporting documentation. // The author or Addison-Wesley Longman make no representations about the // suitability of this software for any purpose. It is provided "as is" // without express or implied warranty. //////////////////////////////////////////////////////////////////////////////// #ifndef LOKI_ASSOCVECTOR_INC_ #define LOKI_ASSOCVECTOR_INC_ // $Header$ #include #include #include #include namespace Loki { //////////////////////////////////////////////////////////////////////////////// // class template AssocVectorCompare // Used by AssocVector //////////////////////////////////////////////////////////////////////////////// namespace Private { template class AssocVectorCompare : public C { typedef std::pair Data; typedef typename C::first_argument_type first_argument_type; public: AssocVectorCompare() {} AssocVectorCompare(const C& src) : C(src) {} bool operator()(const first_argument_type& lhs, const first_argument_type& rhs) const { return C::operator()(lhs, rhs); } bool operator()(const Data& lhs, const Data& rhs) const { return operator()(lhs.first, rhs.first); } bool operator()(const Data& lhs, const first_argument_type& rhs) const { return operator()(lhs.first, rhs); } bool operator()(const first_argument_type& lhs, const Data& rhs) const { return operator()(lhs, rhs.first); } }; } //////////////////////////////////////////////////////////////////////////////// // class template AssocVector // An associative vector built as a syntactic drop-in replacement for std::map // BEWARE: AssocVector doesn't respect all map's guarantees, the most important // being: // * iterators are invalidated by insert and erase operations // * the complexity of insert/erase is O(N) not O(log N) // * value_type is std::pair not std::pair // * iterators are random //////////////////////////////////////////////////////////////////////////////// template < class K, class V, class C = std::less, class A = std::allocator< std::pair > > class AssocVector : private std::vector< std::pair, A > , private Private::AssocVectorCompare { typedef std::vector, A> Base; typedef Private::AssocVectorCompare MyCompare; public: typedef K key_type; typedef V mapped_type; typedef typename Base::value_type value_type; typedef C key_compare; typedef A allocator_type; typedef typename A::reference reference; typedef typename A::const_reference const_reference; typedef typename Base::iterator iterator; typedef typename Base::const_iterator const_iterator; typedef typename Base::size_type size_type; typedef typename Base::difference_type difference_type; typedef typename A::pointer pointer; typedef typename A::const_pointer const_pointer; typedef typename Base::reverse_iterator reverse_iterator; typedef typename Base::const_reverse_iterator const_reverse_iterator; class value_compare : private key_compare { friend class AssocVector; protected: value_compare(key_compare pred) : key_compare(pred) {} public: bool operator()(const value_type& lhs, const value_type& rhs) const { return key_compare::operator()(lhs.first, rhs.first); } }; // 23.3.1.1 construct/copy/destroy explicit AssocVector(const key_compare& comp = key_compare(), const A& alloc = A()) : Base(alloc), MyCompare(comp) {} template AssocVector(InputIterator first, InputIterator last, const key_compare& comp = key_compare(), const A& alloc = A()) : Base(first, last, alloc), MyCompare(comp) { MyCompare& me = *this; std::sort(begin(), end(), me); } AssocVector(AssocVector const &) = default; AssocVector& operator=(const AssocVector& rhs) { AssocVector(rhs).swap(*this); return *this; } template void assign (InputIterator first, InputIterator last) { Base::assign (first, last); MyCompare& me = *this; std::sort(begin(), end(), me); } // iterators: // The following are here because MWCW gets 'using' wrong iterator begin() { return Base::begin(); } const_iterator begin() const { return Base::begin(); } iterator end() { return Base::end(); } const_iterator end() const { return Base::end(); } reverse_iterator rbegin() { return Base::rbegin(); } const_reverse_iterator rbegin() const { return Base::rbegin(); } reverse_iterator rend() { return Base::rend(); } const_reverse_iterator rend() const { return Base::rend(); } // capacity: bool empty() const { return Base::empty(); } size_type size() const { return Base::size(); } size_type max_size() { return Base::max_size(); } // 23.3.1.2 element access: mapped_type& operator[](const key_type& key) { return insert(value_type(key, mapped_type())).first->second; } // modifiers: std::pair insert(const value_type& val) { bool found(true); iterator i(lower_bound(val.first)); if (i == end() || this->operator()(val.first, i->first)) { i = Base::insert(i, val); found = false; } return std::make_pair(i, !found); } //Section [23.1.2], Table 69 //http://developer.apple.com/documentation/DeveloperTools/gcc-3.3/libstdc++/23_containers/howto.html#4 iterator insert(iterator pos, const value_type& val) { if( (pos == begin() || this->operator()(*(pos-1),val)) && (pos == end() || this->operator()(val, *pos)) ) { return Base::insert(pos, val); } return insert(val).first; } template void insert(InputIterator first, InputIterator last) { for (; first != last; ++first) insert(*first); } void erase(iterator pos) { Base::erase(pos); } size_type erase(const key_type& k) { iterator i(find(k)); if (i == end()) return 0; erase(i); return 1; } void erase(iterator first, iterator last) { Base::erase(first, last); } void swap(AssocVector& other) { Base::swap(other); MyCompare& me = *this; MyCompare& rhs = other; std::swap(me, rhs); } void clear() { Base::clear(); } // observers: key_compare key_comp() const { return *this; } value_compare value_comp() const { const key_compare& comp = *this; return value_compare(comp); } // 23.3.1.3 map operations: iterator find(const key_type& k) { iterator i(lower_bound(k)); if (i != end() && this->operator()(k, i->first)) { i = end(); } return i; } const_iterator find(const key_type& k) const { const_iterator i(lower_bound(k)); if (i != end() && this->operator()(k, i->first)) { i = end(); } return i; } size_type count(const key_type& k) const { return find(k) != end(); } iterator lower_bound(const key_type& k) { MyCompare& me = *this; return std::lower_bound(begin(), end(), k, me); } const_iterator lower_bound(const key_type& k) const { const MyCompare& me = *this; return std::lower_bound(begin(), end(), k, me); } iterator upper_bound(const key_type& k) { MyCompare& me = *this; return std::upper_bound(begin(), end(), k, me); } const_iterator upper_bound(const key_type& k) const { const MyCompare& me = *this; return std::upper_bound(begin(), end(), k, me); } std::pair equal_range(const key_type& k) { MyCompare& me = *this; return std::equal_range(begin(), end(), k, me); } std::pair equal_range( const key_type& k) const { const MyCompare& me = *this; return std::equal_range(begin(), end(), k, me); } friend bool operator==(const AssocVector& lhs, const AssocVector& rhs) { const Base& me = lhs; return me == rhs; } bool operator<(const AssocVector& rhs) const { const Base& me = *this; const Base& yo = rhs; return me < yo; } friend bool operator!=(const AssocVector& lhs, const AssocVector& rhs) { return !(lhs == rhs); } friend bool operator>(const AssocVector& lhs, const AssocVector& rhs) { return rhs < lhs; } friend bool operator>=(const AssocVector& lhs, const AssocVector& rhs) { return !(lhs < rhs); } friend bool operator<=(const AssocVector& lhs, const AssocVector& rhs) { return !(rhs < lhs); } }; // specialized algorithms: template void swap(AssocVector& lhs, AssocVector& rhs) { lhs.swap(rhs); } } // namespace Loki //////////////////////////////////////////////////////////////////////////////// // Change log: // May 20, 2001: change operator= - credit due to Cristoph Koegl // June 11, 2001: remove paren in equal_range - credit due to Cristoph Koegl // June 20, 2001: ported by Nick Thurn to gcc 2.95.3. Kudos, Nick!!! // January 22, 2002: fixed operator= - credit due to Tom Hyer // June 25, 2002: fixed template insert() - credit due to Robert Minsk // June 27, 2002: fixed member swap() - credit due to David Brookman // February 2, 2003: fixed dependent names - credit due to Rani Sharoni //////////////////////////////////////////////////////////////////////////////// #endif // ASSOCVECTOR_INC_ // $Log$ // Revision 1.1.1.1 2006/10/02 20:45:55 csk // Pan, a Usenet Newsreader // // Revision 1.5 2006/01/16 19:05:09 rich_sposato // Added cvs keywords. // pan-0.162/pan/general/messages.h000066400000000000000000000024621475412772400164740ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #ifndef __Messages_h__ #define __Messages_h__ #include #define pan_return_if_fail(expr) \ do { \ if (!(expr)) { \ std::cerr << "(" << __FILE__ << ':' << __LINE__ << " " << __func__ << "): assertion \"" << #expr << "\" failed.\n"; \ return; \ } \ } while (0) #define pan_return_val_if_fail(expr, val) \ do { \ if (!(expr)) { \ std::cerr << "(" << __FILE__ << ':' << __LINE__ << " " << __func__ << "): assertion \"" << #expr << "\" failed.\n"; \ return val; \ } \ } while (0) #endif pan-0.162/pan/general/progress-test.cc000066400000000000000000000037141475412772400176450ustar00rootroot00000000000000#include #include #include "progress.h" #include "string-view.h" #include "test.h" using namespace pan; class MyListener : public Progress::Listener { public: std::string status; std::string error; int percentage; int finished; void on_progress_step (Progress&, int p) override { percentage = p; } void on_progress_status (Progress&, const StringView& s) override { status = s.to_string (); } void on_progress_error (Progress&, const StringView& s) override { error = s.to_string (); } void on_progress_finished (Progress&, int s) override { finished = s; } }; int main (void) { const std::string description ("this is the description"); Progress p (description); MyListener myl; p.add_listener (&myl); check (p.describe() == description) check (p.get_progress_of_100() == 0) std::string s = "Hello World"; p.set_status (s); check (myl.status == s) s = "This is an error message"; p.set_error (s); check (myl.error == s) p.init_steps (100); check (p.get_progress_of_100() == 0) check (myl.percentage == 0) p.increment_step (); check (p.get_progress_of_100() == 1) check (myl.percentage == 1) p.increment_step (); check (p.get_progress_of_100() == 2) check (myl.percentage == 2) p.increment_step (); check (p.get_progress_of_100() == 3) check (myl.percentage == 3) p.set_step (50); check (p.get_progress_of_100() == 50) check (myl.percentage == 50) p.init_steps (200); check (p.get_progress_of_100() == 0) check (myl.percentage == 0) p.set_step (50); check (p.get_progress_of_100() == 25) check (myl.percentage == 25) p.set_finished (2); check (myl.finished == 2) p.remove_listener (&myl); p.init_steps (100); check (p.get_progress_of_100() == 0) check (myl.percentage == 25) // unchanged -- no listener // all clear return 0; } pan-0.162/pan/general/progress.cc000066400000000000000000000071151475412772400166670ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #include #include #include // vsnprintf #include "progress.h" #include "string-view.h" using namespace pan; /*** **** ***/ void Progress :: fire_percentage (int p) { for (listeners_cit it(_listeners.begin()), end(_listeners.end()); it!=end; ) (*it++)->on_progress_step (*this, p); } void Progress :: fire_pulse () { for (listeners_cit it(_listeners.begin()), end(_listeners.end()); it!=end; ) (*it++)->on_progress_pulse (*this); } void Progress :: fire_error (const StringView& msg) { for (listeners_cit it(_listeners.begin()), end(_listeners.end()); it!=end; ) (*it++)->on_progress_error (*this, msg); } void Progress :: fire_finished (int status) { for (listeners_cit it(_listeners.begin()), end(_listeners.end()); it!=end; ) (*it++)->on_progress_finished (*this, status); } void Progress :: fire_status (const StringView& msg) { for (listeners_cit it(_listeners.begin()), end(_listeners.end()); it!=end; ) (*it++)->on_progress_status (*this, msg); } void Progress :: add_listener (Listener * l) { if (!l) return; _listeners.insert (l); } void Progress :: remove_listener (Listener * l) { if (!l) return; _listeners.erase (l); } /*** **** ***/ void Progress :: pulse () { fire_pulse (); } void Progress :: set_status (const StringView& status) { _status_text = status.to_string(); fire_status (status); } void Progress :: set_status_va (const char * fmt, ...) { va_list args; va_start (args, fmt); char buf[4096]; vsnprintf (buf, sizeof(buf), fmt, args); va_end (args); set_status (buf); } void Progress :: set_error (const StringView& error) { _errors.push_back (error.to_string()); fire_error (error); } void Progress :: init_steps (int steps) { _step = 0; _steps = steps; fire_percentage (0); } void Progress :: add_steps (int steps) { const int old_of_100 (get_progress_of_100()); _steps += steps; const int new_of_100 (get_progress_of_100()); if (old_of_100 != new_of_100) fire_percentage (new_of_100); } void Progress :: set_step (int step) { const int old_of_100 (get_progress_of_100()); _step = step; const int new_of_100 (get_progress_of_100()); if (old_of_100 != new_of_100) fire_percentage (new_of_100); } void Progress :: increment_step (int increment) { set_step (_step+increment); } int Progress :: get_progress_of_100 () const { int p = (int)(!_steps ? 0 : (_step*100ul)/_steps); if (p < 0) p = 0; if (p > 100) p = 100; return p; } void Progress :: set_finished (int status) { _done = status; fire_finished (status); } std::string Progress :: describe () const { return _description; } Progress :: Progress (const StringView& description): _description (description.to_string()), _status_text (), _steps (0), _step (0), _done (0), _active (false) { } Progress :: ~Progress () { } pan-0.162/pan/general/progress.h000066400000000000000000000064361475412772400165360ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #ifndef __Progress_h__ #define __Progress_h__ #include #include #include #include #include extern "C" { #include } namespace pan { class StringView; /** * Base class describing an object that goes through steps to some completion. * * It provides methods for telling interested parties how many steps are left, * what the Progress object is doing, and whether or not it completed successfully. * * @ingroup general */ class Progress { public: /** * Interface class for those wanting to listen to changes in Progress objects. */ struct Listener { Listener () {} virtual ~Listener () {} virtual void on_progress_pulse (Progress&) { } virtual void on_progress_step (Progress&, int percentage UNUSED) { } virtual void on_progress_status (Progress&, const StringView&) { } virtual void on_progress_error (Progress&, const StringView&) { } virtual void on_progress_finished (Progress&, int status UNUSED) { } }; private: typedef std::set listeners_t; typedef Progress::listeners_t::const_iterator listeners_cit; listeners_t _listeners; void fire_pulse (); void fire_percentage (int p); void fire_status (const StringView& msg); void fire_error (const StringView& msg); void fire_finished (int status); protected: std::string _description; // used for default describe() std::string _status_text; // the last status text emitted std::vector _errors; // the emitted error strings uint64_t _steps; // number of steps total uint64_t _step; // number of steps completed so far int _done; // value of set_finished() bool _active; public: void pulse (); void set_status (const StringView& status); void set_status_va (const char * fmt, ...); void set_error (const StringView& error); void init_steps (int steps); void add_steps (int steps); void increment_step (int increment=1); int get_progress_of_100 () const; void set_step (int step); void set_finished (int status); virtual std::string describe () const; std::string get_status () const { return _status_text; } void add_listener (Listener*); void remove_listener (Listener*); public: Progress (const StringView& description = StringView()); virtual ~Progress (); }; } #endif pan-0.162/pan/general/quark-test.cc000066400000000000000000000016301475412772400171170ustar00rootroot00000000000000#include #include #include #include "quark.h" #include "test.h" using namespace pan; int main (void) { { Quark o ("foo"); { Quark a (o); Quark b (o); check (a == b) check (a == a) check (a == "foo") check (Quark::size() == 1) Quark c ("bar"); check (a != c) check (b != c) check (Quark::size() == 2) a = c; check (Quark::size() == 2) check (a != b) check (a == c) c = "mum"; check (Quark::size() == 3) o = c; std::map mymap; mymap[o] = o; check (mymap[c] == o.to_string()) check (o.to_string() == mymap[c]) check (c.to_string() == o.to_string()) check (Quark::size() == 3) c = "gronk"; check (Quark::size() == 4) } check (Quark::size() == 1) check (o == "mum"); } check (Quark::size() == 0) return 0; } pan-0.162/pan/general/quark.cc000066400000000000000000000026051475412772400161450ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #include "quark.h" #include #include #include #include "string-view.h" namespace pan { Quark::lookup_t Quark::_lookup; /*** **** ***/ void Quark :: dump (std::ostream& o) { if (size()) { o << "Existing Quarks: " << size() << ':' << "\n"; for (lookup_t::const_iterator it(_lookup.begin()), e(_lookup.end()); it!=e; ++it) { o << " [" << it->to_view() << "] (refcount " << it->refcount << ')' << "\n"; } o << "\n"; } } std::ostream& operator<< (std::ostream& os, const Quark& s) { const StringView& v (s.to_view()); os.write (v.str, v.len); return os; } } pan-0.162/pan/general/quark.h000066400000000000000000000176771475412772400160260ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #ifndef _Quark_h_ #define _Quark_h_ #include #include #include #include #include #include #include #include #include #include #ifndef UINT32_MAX #define UINT32_MAX (4294967295U) #endif namespace pan { /** * A two-way association between a string and integral type identifier. * * Quarks make good keys because comparision operations can be done * on the integral type instead of with costly strcmps. * * In X11 and Gtk+ implementations, the string+integral mapping is * permanent. However pan::Quark frees its copy of the mapped string when * the last corresponding pan::Quark is destroyed. This way Quarks can be * used even on large, transient sets of data (such as Message-IDs) without * leaking the keys. * * There is, obviously, a tradeoff involved: hashing strings can be * expensive, and the refcounted hashtable of strings has its own * memory overhead. So while strings that are likely to be duplicated * or used as keys -- message-ids, author names, and group names * spring to mind -- they're less appropriate for temporary, unique data. * * @ingroup general */ class Quark { private: struct Impl { uint32_t refcount; uint32_t len; char * str; Impl (): refcount(0), len(0), str(nullptr) {} Impl (const StringView& v): refcount(0), len(v.len), str(const_cast(v.str)) {} StringView to_view () const { return StringView(str,len); } //wtf? bool operator() (const Impl& a, const Impl& b) const { return StringView(str,len) == StringView(b.str,b.len); } bool operator== (const Impl& b) const { return StringView(str,len) == StringView(b.str,b.len); } bool operator< (const Impl& b) const { return StringView(str,len) < StringView(b.str,b.len); } }; struct StringViewHash { static uint16_t get16bits( const char * in ) { return (static_cast(in[0])<<8) | in[1]; } /** * Paul Hsieh's "SuperFastHash" algorithm, from * http://www.azillionmonkeys.com/qed/hash.html */ size_t operator()(const Impl& s) const { const char * data (s.str); int len (s.len); if (len <= 0 || data == NULL) return 0; uint32_t hash = len; int rem = len & 3; len >>= 2; /* Main loop */ for (;len > 0; len--) { hash += get16bits (data); uint32_t tmp = (static_cast(get16bits(data + 2)) << 11) ^ hash; hash = (hash << 16) ^ tmp; data += 2*sizeof (uint16_t); hash += hash >> 11; } /* Handle end cases */ switch (rem) { case 3: hash += get16bits (data); hash ^= hash << 16; hash ^= static_cast(data[sizeof (uint16_t)]) << 18; hash += hash >> 11; break; case 2: hash += get16bits (data); hash ^= hash << 11; hash += hash >> 17; break; case 1: hash += *data; hash ^= hash << 10; hash += hash >> 1; } /* Force "avalanching" of final 127 bits */ hash ^= hash << 3; hash += hash >> 5; hash ^= hash << 4; hash += hash >> 17; hash ^= hash << 25; hash += hash >> 6; return hash; } }; typedef std::unordered_set lookup_t; static lookup_t _lookup; static Impl* init (const StringView& s) { std::pair result (_lookup.insert (Impl(s))); Impl * impl = const_cast(&*result.first); if (result.second) { // new item -- populate the entry with a new string impl->str = new char [s.len + 1]; memcpy (impl->str, s.str, s.len); impl->str[s.len] = '\0'; impl->len = s.len; } assert (impl->refcount!=UINT32_MAX); ++impl->refcount; return impl; } void unref () { if (impl!=nullptr) { assert (impl->refcount); if (!--impl->refcount) { const Impl tmp (*impl); _lookup.erase (tmp); impl = nullptr; delete [] (char*)tmp.str; } } } private: Impl * impl; public: Quark (): impl(nullptr) {} Quark (const std::string & s): impl (init (StringView (s))) { } Quark (const char * s): impl (init (StringView (s))) { } Quark (const StringView & p): impl (init (p)) { } Quark (const Quark& q) { if (q.impl != nullptr) ++q.impl->refcount; impl = q.impl; } Quark& operator= (const Quark& q) { if (q.impl != nullptr) ++q.impl->refcount; unref (); impl = q.impl; return *this; } ~Quark () { clear(); } void clear () { unref(); impl=nullptr; } bool empty() const { return impl == nullptr; } bool operator== (const char * that) const { const char * pch = c_str (); if (!pch && !that) return true; if (!pch || !that) return false; return !strcmp(c_str(), that); } bool operator!= (const char * that) const { return !(*this == that); } bool operator== (const StringView& that) const { return impl ? !that.strcmp(impl->str,impl->len) : that.empty(); } bool operator!= (const StringView& that) const { return impl ? that.strcmp(impl->str,impl->len) : !that.empty(); } bool operator== (const Quark& q) const { return impl == q.impl; } bool operator!= (const Quark& q) const { return impl != q.impl; } bool operator< (const Quark& q) const { return impl < q.impl; } bool operator! () const { return empty(); } const StringView to_view () const { return impl ? impl->to_view() : StringView(); } const char* c_str () const { return impl ? impl->str : NULL; } std::string to_string () const { return std::string (impl ? impl->str : ""); } operator const char* () const { return c_str(); } /** Number of unique strings being mapped. Included for debugging and regression tests... */ static unsigned long size () { return _lookup.size(); } static void dump (std::ostream&); }; std::ostream& operator<< (std::ostream& os, const Quark& s); typedef std::set quarks_t; typedef std::vector quarks_v; /** * StrictWeakOrdering which sorts Quarks alphabetically. * This should be used sparingly, as it defeats Quark's main speed advantage. */ struct AlphabeticalQuarkOrdering { bool operator() (const Quark& a, const Quark& b) const { if (a.empty() && b.empty()) return false; if (a.empty()) return true; if (b.empty()) return false; return ::strcmp (a.c_str(), b.c_str()) < 0; } bool operator() (const Quark* a, const Quark* b) const { return (*this) (*a, *b); } }; } #endif pan-0.162/pan/general/singleton-template.h000066400000000000000000000022301475412772400204710ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #ifndef _PAN_SINGLETON_H_ #define _PAN_SINGLETON_H_ template class PanSingleton { public: static T_DERIVED& get() { static T_DERIVED oInstance ; return oInstance ; } protected: PanSingleton(){} private: PanSingleton( const PanSingleton& ) ; PanSingleton& operator=( const PanSingleton& ) {return *this;} } ; #endif pan-0.162/pan/general/sorted-vector.h000066400000000000000000000263041475412772400174660ustar00rootroot00000000000000/* STL-conforming "sorted vector" container * * (C) 2002 Martin Holzherr (holzherr@infobrain.com). All rights reserved. * * Permission is granted to use, distribute and modify this code provided that: * · this copyright notice appears, * · * The author welcomes any suggestions on the code or reportings of actual * use of the code. Please send your comments to holzherr@infobrain.com. * * The author makes NO WARRANTY or representation, either express or implied, * with respect to this code, its quality, accuracy, merchantability, or * fitness for a particular purpose. This software is provided "AS IS", and * you, its user, assume the entire risk as to its quality and accuracy. * * Created: November 19th, 2002 * Last modified: November 27th, 2002 (changed namespace from std to codeproject; uses template member functions for MSCVER>=1300) */ #ifndef SORTED_VECTOR_ #define SORTED_VECTOR_ #include #include #include #include namespace pan { /** * std::set implemented as a sorted vector. * * This can give a significant memory improvement over std::set, * which is implemented as a tree. The tradeoff is that insertion * and removal is slow, so this is best used on sets whose contents * rarely change. * * This class was written by Martin Holzherr and is in the public domain. */ template, class A = std::allocator > class sorted_vector { public: typedef sorted_vector Myt_; typedef std::vector Cont; typedef typename Cont::allocator_type allocator_type; typedef typename Cont::size_type size_type; typedef typename Cont::difference_type difference_type; typedef typename Cont::reference reference; typedef typename Cont::const_reference const_reference; typedef typename Cont::value_type value_type; typedef K key_type; typedef typename Cont::iterator iterator; typedef typename Cont::const_iterator const_iterator; typedef Pr key_compare; typedef Pr value_compare; typedef typename Cont::const_reverse_iterator const_reverse_iterator; typedef typename Cont::reverse_iterator reverse_iterator; typedef std::pair Pairii_; typedef std::pair Paircc_; typedef std::pair Pairib_; explicit sorted_vector(const Pr& pred = Pr(),const A& al = A()) :key_compare_(pred),vec_(al){} template sorted_vector(It first, It beyond, const Pr& pred = Pr(),const A& al = A()) :key_compare_(pred),vec_(first,beyond,al) {stable_sort();} sorted_vector(const Myt_& x) : key_compare_(x.key_compare_), vec_(x.vec_) {} ~sorted_vector() {} Myt_& operator=(const Myt_& x) {vec_.operator=(x.vec_); key_compare_= x.key_compare_; return *this;} Myt_& operator=(const Cont& x){vec_.operator=(x); sort();return *this;} void reserve(size_type n) {vec_.reserve(n);} iterator begin() {return vec_.begin(); } const_iterator begin() const {return vec_.begin(); } iterator end() {return vec_.end();} const_iterator end() const {return vec_.end();} reverse_iterator rbegin() {return vec_.rbegin();} const_reverse_iterator rbegin() const {return vec_.rbegin();} reverse_iterator rend() {return vec_.rend();} const_reverse_iterator rend() const {return vec_.rend();} size_type size() const {return vec_.size();} size_type max_size() const {return vec_.max_size();} bool empty() const {return vec_.empty();} A get_allocator() const {return vec_.get_allocator();} const_reference at(size_type p) const {return vec_.at(p);} reference at(size_type p) {return vec_.at(p);} const_reference operator[](size_type p) const {return vec_.operator[](p);} reference operator[](size_type p) {return vec_.operator[](p);} reference front() {return vec_.front();} const_reference front() const {return vec_.front();} reference back() {return vec_.back();} const_reference back() const {return vec_.back();} void pop_back() {vec_.pop_back();} void assign(const_iterator first, const_iterator beyond) {vec_.assign(first,beyond);} void assign(size_type n, const K& x = K()) {vec_.assign(n,x);} /*insert members*/ Pairib_ insert(const value_type& x) { if(bNoDuplicates){ iterator p= lower_bound(x); if(p==end()||key_compare_(x,*p)){ return Pairib_(InsertImpl_(p,x),true); }else{ return Pairib_(p,false); } }else{ iterator p= upper_bound(x); return Pairib_(InsertImpl_(p,x),true); } } iterator insert(iterator it, const value_type& x)//it is the hint { if(it!=end() ){ if(bNoDuplicates){ if(key_compare_(*it,x)){ if((it+1)==end()||KeyCompare_Gt_(*(it+1),x)){//use hint return InsertImpl_(it+1,x); }else if(KeyCompare_Geq_(*(it+1),x)){ return end(); } } }else{ if( KeyCompare_Leq_(*it,x) &&((it+1)==end()||KeyCompare_Geq_(*(it+1),x))){ return InsertImpl_(it+1,x); } } } return insert(x).first; } template void insert(It first, It beyond) { size_type n= std::distance(first,beyond); reserve(size()+n); for( ;first!=beyond;++first){ insert(*first); } } iterator erase(iterator p) {return vec_.erase(p);} iterator erase(iterator first, iterator beyond) {return vec_.erase(first,beyond);} size_type erase(const K& key) { Pairii_ begEnd= equal_range(key); size_type n= std::distance(begEnd.first,begEnd.second); erase(begEnd.first,begEnd.second); return n; } void clear() {return vec_.clear();} bool Eq_(const Myt_& x) const {return (size() == x.size() && std::equal(begin(), end(), x.begin())); } bool Lt_(const Myt_& x) const {return (std::lexicographical_compare(begin(), end(), x.begin(), x.end()));} void swap(Myt_& x) {vec_.swap(x.vec_);std::swap(key_compare_,x.key_compare_);} friend void swap(Myt_& x, Myt_& Y_) {x.swap(Y_); } key_compare key_comp() const {return key_compare_; } value_compare value_comp() const {return (key_comp()); } template iterator find (const KeyType& k) { iterator p(lower_bound(k)), e(end()); return (p==e||key_compare_(k,*p))?e:p; } template const_iterator find (const KeyType& k) const { const_iterator p(lower_bound(k)), e(end()); return (p==e||key_compare_(k,*p))?e:p; } size_type count(const K& k) const {Paircc_ Ans_ = equal_range(k); size_type n = std::distance(Ans_.first, Ans_.second); return (n); } template iterator lower_bound (const KeyType& k) { return std::lower_bound(begin(), end(), k, key_compare_); } template const_iterator lower_bound (const KeyType& k) const { return std::lower_bound(begin(), end(), k, key_compare_); } template iterator upper_bound (const KeyType& k) { return std::upper_bound(begin(), end(), k, key_compare_); } template const_iterator upper_bound (const KeyType& k) const { return std::upper_bound(begin(), end(), k, key_compare_); } template Pairii_ equal_range (const KeyType& k) { return std::equal_range(begin(), end(), k, key_compare_); } template Paircc_ equal_range (const KeyType& k) const { return std::equal_range(begin(), end(), k, key_compare_); } /*functions for use with direct std::vector-access*/ Cont& get_container() {return vec_;} void sort()//restore sorted order after low level access { std::sort(vec_.begin(),vec_.end(),key_compare_); if( bNoDuplicates ){ vec_.erase(Unique_(),vec_.end()); } } void stable_sort()//restore sorted order after low level access { std::stable_sort(vec_.begin(),vec_.end(),key_compare_); if( bNoDuplicates ){ erase(Unique_(),end()); } } protected: iterator Unique_() { iterator front_= vec_.begin(),out_= vec_.end(),end_=vec_.end(); bool bCopy_= false; for(iterator prev_; (prev_=front_)!=end_ && ++front_!=end_; ){ if( key_compare_(*prev_,*front_)){ if(bCopy_){ *out_= *front_; out_++; } }else{ if(!bCopy_){out_=front_;bCopy_=true;} } } return out_; } iterator InsertImpl_(iterator p,const value_type& x) {return vec_.insert(p,x);} bool KeyCompare_Leq_(const K& ty0,const K& ty1) {return !key_compare_(ty1,ty0);} bool KeyCompare_Geq_(const K& ty0,const K& ty1) {return !key_compare_(ty0,ty1);} bool KeyCompare_Gt_(const K& ty0,const K& ty1) {return key_compare_(ty1,ty0);} key_compare key_compare_; Cont vec_; }; template inline bool operator==(const sorted_vector& x, const sorted_vector& Y_) {return x.Eq_(Y_); } template inline bool operator!=(const sorted_vector& x, const sorted_vector& Y_) {return !(x == Y_); } template inline bool operator<(const sorted_vector& x, const sorted_vector& Y_) {return x.Lt_(Y_);} template inline bool operator>(const sorted_vector& x, const sorted_vector& Y_) {return Y_ < x; } template inline bool operator<=(const sorted_vector& x, const sorted_vector& Y_) {return !(Y_ < x); } template inline bool operator>=(const sorted_vector& x, const sorted_vector& Y_) {return (!(x < Y_)); } } #endif pan-0.162/pan/general/string-view-test.cc000066400000000000000000000060521475412772400202550ustar00rootroot00000000000000#include #include #include #include #include "string-view.h" #include "test.h" using namespace pan; int main (void) { const char * cpch; StringView a, b; // set str cpch = "Hello World!"; a.assign (cpch); check (a.str == cpch) check (a.len == strlen(cpch)) // set str + len a.assign (cpch, 4); check (a.str == cpch) check (a.len == 4) /** *** strstr **/ a = "Grand Canyon Sunset.jpg (1/2)"; check (a.strstr("Grand") == a.str) check (a.strstr("Canyon") == a.str+6) check (a.strstr("anyon Sun") == a.str+7) check (a.strstr("anyon sun") == NULL) a.assign ("Looking for overruns", 5); check (a.strstr("Looking") == NULL) check (a.strstr("for overruns") == NULL) check (a.strstr("Look") == a.str) check (a.strstr("ook") == a.str+1) /** *** pop_token **/ a = "Grand Canyon Sunset.jpg (1/2)"; check (a.pop_token (b, ' ')) check (b == "Grand") check (a == "Canyon Sunset.jpg (1/2)") check (a.pop_token (b, ' ')) check (b == "Canyon") check (a == "Sunset.jpg (1/2)") check (a.pop_token (b, ' ')) check (b == "Sunset.jpg") check (a == "(1/2)") check (a.pop_token (b, ' ')) check (b == "(1/2)") check (a.empty()) check (!a.pop_token (b, ' ')) /** *** pop_last_token **/ a = "<1109881740.966093.167850@l41g2000cwc.googlegroups.com> <38psfvF5oka9bU3@individual.net> <38q14bF5trum0U1@individual.net> <38tobgF5ra6jaU1@individual.net>"; check (a.pop_last_token (b)) check (b == "<38tobgF5ra6jaU1@individual.net>") check (a.pop_last_token (b)) check (b == "") check (a.pop_last_token (b)) check (b == "<38q14bF5trum0U1@individual.net>") check (a.pop_last_token (b)) check (b == "") check (a.pop_last_token (b)) check (b == "<38psfvF5oka9bU3@individual.net>") check (a.pop_last_token (b)) check (b == "<1109881740.966093.167850@l41g2000cwc.googlegroups.com>") check (!a.pop_last_token (b)) a = "asfd"; check (a.pop_last_token(b)); check (a.empty()) check (b == "asfd"); a.clear (); check (a.empty()) check (!a.pop_last_token(b)); /** *** Trim **/ a = " Hello World!! "; a.trim (); check (a == "Hello World!!") a = " (*#()#*&#* Hello #$ *#($(# ?? "; a.trim (); check (a == "(*#()#*&#* Hello #$ *#($(# ??") a = " "; a.trim (); check (a.empty()); a = "no-spaces"; a.trim (); check (a == "no-spaces"); a = "middle space"; a.trim (); check (a == "middle space"); /** *** Clear **/ a.clear (); check (!a.str) check (!a.len) check (a.empty()) /** *** strchr **/ std::string s ("abcdefghijklmnopqrstuvwxyz"); a.assign (s.c_str(), s.size()); char * p = a.strchr ('a'); check (p) check (*p == 'a') check (a.strchr ('e', 4)) check (!a.strchr ('e', 5)) p = a.strchr ('e'); check (p) check (*p == 'e') a.assign (s.c_str(), 4); check (!a.strchr ('e')) check (!a.strchr ('e', 2)) return 0; } pan-0.162/pan/general/string-view.cc000066400000000000000000000126371475412772400173060ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #include #include #include #include #include #include #include #include "debug.h" #include "messages.h" #include "string-view.h" using namespace pan; /*** **** Length-bounded string utilities ***/ int StringView :: strcmp (const char * str_a, size_t str_a_len, const char * str_b, size_t str_b_len) { int retval (memcmp (str_a, str_b, std::min(str_a_len,str_b_len))); if (!retval) retval = str_a_len - str_b_len; return retval; } char* StringView :: strrchr (const char * haystack, size_t haystack_len, char needle) { const char * pch (nullptr); pan_return_val_if_fail (haystack!=NULL || haystack_len==0, NULL); if (haystack_len) { pch = haystack + haystack_len - 1; for (; pch!=haystack; --pch) if (*pch == needle) break; if (*pch != needle) pch = NULL; } return (char*) pch; } int StringView :: strncpy (char * target, size_t target_size, const char * source_str, size_t source_len) { /* sanity clause */ pan_return_val_if_fail (target!=NULL || target_size==0, 0); pan_return_val_if_fail (source_str!=NULL || source_len==0, 0); const int len (std::min (target_size-1, source_len)); memcpy (target, source_str, len); target[len] = '\0'; return len; } char* StringView :: strstr (const char * haystack, size_t haystack_len, const char * needle, size_t needle_len) { if (!haystack) return NULL; assert (needle != NULL); if (needle_len == 0) return (char*) haystack; if (haystack_len < needle_len) return NULL; const char * s = haystack; const char * end = s + haystack_len; while ((s = strchr (s, end-s, *needle))) { if (((end-s) >= (int)needle_len) && !memcmp(s,needle,needle_len)) return (char*) s; ++s; } return nullptr; } char* StringView :: strpbrk (const char * haystack, size_t haystack_len, const char * needles) { if (!haystack || !needles) return nullptr; for ( ; haystack_len && *haystack; ++haystack, --haystack_len ) for (const char *p=needles; *p; ++p) if (*haystack == *p) return (char *) haystack; return nullptr; } /**** ***** ****/ void StringView :: ltrim () { // strip leading whitespace if (!empty()) { const char *p(str), *end(p+len); while (p < end) { if (!g_unichar_isspace (g_utf8_get_char (p))) break; p = g_utf8_next_char (p); } eat_chars (p-str); } } void StringView :: rtrim () { // strip trailing whitespace if (!empty()) { const char *pch, *prev (str + len); while ((pch = g_utf8_find_prev_char (str, prev))) if (g_unichar_isspace (g_utf8_get_char (pch))) prev = pch; else break; len = prev - str; } } void StringView :: trim () { ltrim (); rtrim (); } bool StringView :: pop_token (StringView& token, char delimiter) { const bool got_token (len != 0); const char * pch = strchr (delimiter); if (pch) { token.str = str; token.len = pch - str; len -= token.len+1; str += token.len+1; } else { token.str = str; token.len = len; str = nullptr; len = 0; } return got_token; } bool StringView :: pop_last_token (StringView& token, char delimiter) { bool got_token (len != 0); const char * pch = strrchr (delimiter); if (pch) { token.str = pch + 1; token.len = str + len - token.str; len = pch - str; } else { token.str = str; token.len = len; str = nullptr; len = 0; } return got_token; } void StringView :: substr (const char * begin, const char * end, StringView& setme) const { if (!begin) begin = str; if (!end) end = str + len; setme.str = begin; setme.len = end-begin; } StringView StringView :: substr (const char * begin, const char * end) const { if (!begin) begin = str; if (!end) end = str + len; return StringView (begin, end-begin); } void StringView :: eat_chars (size_t n) { n = std::min (n, len); len -= n; str = len ? str+n : nullptr; } void StringView :: truncate (size_t l) { if (l<=len) len = l; } void StringView :: rtruncate (size_t l) { if (l<=len) { str += (len - l); len = l; } } std::ostream& pan::operator<< (std::ostream& os, const pan::StringView& s) { os.write (s.str, s.len); return os; } pan-0.162/pan/general/string-view.h000066400000000000000000000140101475412772400171330ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #ifndef __StringView_h__ #define __StringView_h__ #include #include #include #include namespace pan { /** * A shallow copy a C string, plus utilities to let us * substring, tokenize, walk, search, or otherwise * manipulate it without having to modify the original or * allocate new strings. * * @ingroup general */ struct StringView { public: static int strcmp (const char * str_a, size_t str_a_len, const char * str_b, size_t str_b_len); static char* strchr (const char * haystack, size_t haystack_len, char needle) { return (char*) memchr (haystack, needle, haystack_len); } static char* strrchr (const char * haystack, size_t haystack_len, char needle); static int strncpy (char * target, size_t target_size, const char * source_str, size_t source_len); static char* strstr (const char * haystack, size_t haystack_len, const char * needle, size_t needle_len); static char* strpbrk (const char * haystack, size_t haystack_len, const char * needles); public: const char * str; size_t len; typedef const char* const_iterator; const_iterator begin() const { return str; } const_iterator end() const { return str+len; } const char& front() const { return str[0]; } const char& back() const { return str[len-1]; } public: StringView (): str(nullptr), len(0) {} StringView (const std::string& s) { assign(s); } StringView (const char * s) { assign(s); } StringView (const char * s, size_t l) { assign(s,l); } StringView (const char * s, const char * e) { assign(s,e-s); } StringView (const StringView& p): str(p.str), len(p.len) {} StringView& operator=(StringView const &) = default; ~StringView () { str = (char*)0xDEADBEEF; len = (size_t)~0; } public: bool empty () const { return !len || !str || !*str; } std::string to_string () const {return empty() ? std::string() : std::string(str,str+len); } operator std::string () const { return to_string(); } StringView substr (const char * start, const char * end) const; void substr (const char * start, const char * end, StringView& setme) const; void eat_chars (size_t); void truncate (size_t); void rtruncate (size_t); bool operator== (const StringView& p) const { return !strcmp(p); } bool operator!= (const StringView& p) const { return !(*this == p); } bool operator< (const StringView& p) const { return strcmp(p)<0; } bool operator== (const char *s) const { return !strcmp(str,len,s,strlen(s)); } bool operator!= (const char *s) const { return strcmp(str,len,s,strlen(s)); } int strcmp (const StringView& p) const { return strcmp (str, len, p.str, p.len); } int strncasecmp (const char * p, unsigned int l) const { if (len >= l) return g_ascii_strncasecmp (str, p, l); else { int i = g_ascii_strncasecmp (str, p, len); if (i) return i; return -1; // shorter, so less than p } } int strcmp (const char * s, size_t l) const { return strcmp (str, len, s, l); } char* strchr (char needle, size_t p=0) const { return p #include int test = 0; #define check(A) \ { \ ++test; \ if (A) \ { \ std::cout << "PASS test #" << test << " (" << __FILE__ << ", " \ << __LINE__ << ")\n"; \ } \ else \ { \ std::cout << "FAIL test #" << test << " (" << __FILE__ << ", " \ << __LINE__ << ") \"" << #A << "\"\n"; \ return test; \ } \ } #define check_op(A, OP, B) \ { \ ++test; \ if ((A) OP (B)) \ { \ std::cout << "PASS test #" << test << " (" << __FILE__ << ", " \ << __LINE__ << ")\n"; \ } \ else \ { \ std::cout << "FAIL test #" << test << " (" << __FILE__ << ", " \ << __LINE__ << ") \"" << (A) << ' ' << #OP << ' ' << (B) \ << "\"\n"; \ return test; \ } \ } #define check_eq(A, B) check_op(A, ==, B) pan-0.162/pan/general/text-match-test.cc000066400000000000000000000100541475412772400200520ustar00rootroot00000000000000#include #include #include #include "text-match.h" #include "test.h" using namespace pan; int main (void) { TextMatch m; m.set ("fillyjonk", m.CONTAINS, false); check (m.test ("Can we find fillyjonk when it's by itself?")) check (m.test ("Can we find fillyJonk when its case is wrong?")) check (m.test ("Can we find FiLlYJonK when its case is more wrong?")) check (m.test ("Can we find FILLYJONK when it's in all uppercase?")) check (m.test ("Can we findfillyjonkwhen it's inside a string?")) check (m.test ("Can we findFillyJonKwhen it's inside a string and its case is wrong?")) check (m.test ("WTF is a fillyjonk?")) check (!m.test ("WTF is a illyjonk?")) check (!m.test ("WTF is a fillyonk?")) check (!m.test ("WTF is a asf?")) check (!m.test ("WTF is a fillyjon?")) m.set ("fillyjonk", m.CONTAINS, true); check (m.test ("Can we find fillyjonk when it's by itself?")) check (!m.test ("Can we find fillyJonk when its case is wrong?")) check (!m.test ("Can we find FiLlYJonK when its case is more wrong?")) check (!m.test ("Can we find FILLYJONK when it's in all uppercase?")) check (m.test ("Can we findfillyjonkwhen it's inside a string?")) check (!m.test ("Can we findFillyJonKwhen it's inside a string and its case is wrong?")) check (m.test ("WTF is a fillyjonk?")) check (!m.test ("WTF is a illyjonk?")) check (!m.test ("WTF is a fillyonk?")) check (!m.test ("WTF is a asf?")) check (!m.test ("WTF is a fillyjon?")) check (!m.test ("WTF is a Fillyjonk?")) m.set ("fillyjonk", m.BEGINS_WITH, false); check (m.test ("fillyjonk at the front")) check (m.test ("Fillyjonk at the front, in Caps")) check (!m.test ("at the end comes the fillyjonk")) check (!m.test ("the fillyjonk comes before the mymble")) m.set ("^fillyjonk", m.REGEX, false); check (m.test ("fillyjonk at the front")) check (m.test ("Fillyjonk at the front, in Caps")) check (!m.test ("at the end comes the fillyjonk")) check (!m.test ("the fillyjonk comes before the mymble")) m.set ("fillyjonk", m.ENDS_WITH, false); check (!m.test ("fillyjonk at the front")) check (m.test ("at the end comes the fillyjonk")) check (m.test ("at the end, in caps, comes the Fillyjonk")) check (!m.test ("the fillyjonk comes before the mymble")) m.set ("fillyjonk$", m.REGEX, false); check (!m.test ("fillyjonk at the front")) check (m.test ("at the end comes the fillyjonk")) check (m.test ("at the end, in caps, comes the Fillyjonk")) check (!m.test ("the fillyjonk comes before the mymble")) m.set ("fillyjonk", m.IS, false); check (!m.test ("fillyjonk at the front")) check (!m.test ("at the end comes the fillyjonk")) check (!m.test ("at the end, in caps, comes the Fillyjonk")) check (!m.test ("the fillyjonk comes before the mymble")) check (!m.test (" fillyjonk ")) check (!m.test ("fillyjonk ")) check ( m.test ("fillyjonk")) check (!m.test ("illyjonk")) check (!m.test ("fillyjonk ")) m.set ("^fillyjonk$", m.REGEX, false); check (!m.test ("fillyjonk at the front")) check (!m.test ("at the end comes the fillyjonk")) check (!m.test ("at the end, in caps, comes the Fillyjonk")) check (!m.test ("the fillyjonk comes before the mymble")) check (!m.test (" fillyjonk ")) check (!m.test ("fillyjonk ")) check ( m.test ("fillyjonk")) check (!m.test ("illyjonk")) check (!m.test ("fillyjonk ")) m.set ("(filly|jonk)", m.REGEX, false); check (!m.test ("illyonking")) check ( m.test ("filly at the front")) check ( m.test ("Filly at the front, in caps")) check ( m.test ("at the end, filly")) check ( m.test ("in the middle fillyjonk without caps")) check ( m.test ("in the middle Fillyjonk with caps")) m.set ("\\bfillyjonk\\b", m.REGEX, false); check (!m.test ("fillyyonking at the front")) check ( m.test ("fillyjonk at the front")) check ( m.test ("at the end, fillyjonk")) check ( m.test ("in the middle fillyjonk without caps")) check ( m.test ("in the middle Fillyjonk with caps")) return 0; } pan-0.162/pan/general/text-match.cc000066400000000000000000000303411475412772400170760ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #include extern "C" { #include } #include #include #include "debug.h" #include "log.h" #include "text-match.h" using namespace pan; /***** ****** ****** Regex Munging ****** *****/ #define is_metacharacter(A) (_metacharacters[(guchar)(A)]) #if 0 static char _metacharacters[UCHAR_MAX]; #define PRINT_TABLE(A) \ printf ("static char " #A "[UCHAR_MAX] = {"); \ for (i=0; i1) && in[-1]=='$' && in[-2]!='\\') --out; *out = '\0'; return retval; } std::string quote_regexp (const StringView& in) { std::string s; for (const char *pch=in.begin(), *end=in.end(); pch!=end; ++pch) { if (is_metacharacter (*pch)) s += '\\'; s += *pch; } return s; } /** * Try to downgrade the more-expensive regexes to a cheaper type. */ TextMatch::Type get_real_match_type (const StringView& key, TextMatch::Type type) { bool starts_with (false); bool ends_with (false); if (key.empty()) return type; // if it's not a regex, keep it if (type != TextMatch::REGEX) return type; // must it be a regex? for (const char * front=key.begin(), *pch=front, *end=key.end(); pch!=end; ++pch) if (*pch=='\\' && is_metacharacter(pch[1])) ++pch; else if (*pch=='^' && pch==front) starts_with = true; else if (*pch=='$' && pch+1==end) ends_with = true; else if (is_metacharacter(*pch)) return TextMatch::REGEX; if (starts_with && ends_with) return TextMatch::IS; if (starts_with) return TextMatch::BEGINS_WITH; if (ends_with) return TextMatch::ENDS_WITH; return TextMatch::CONTAINS; } } /***** ****** ****** Regex Testing ****** *****/ /** * Private internal TextMatch class for regular expression testing. * @see TextMatch * @ingroup general */ class pan::TextMatch::PcreInfo { public: GRegex * re; public: PcreInfo (): re(nullptr) { } ~PcreInfo () { if (re) g_regex_unref (re); } public: bool set (const std::string& pattern, bool case_sensitive) { GRegexCompileFlags options; if (case_sensitive) options = (GRegexCompileFlags)0; else options = (GRegexCompileFlags)G_REGEX_CASELESS; GError * err = nullptr; re = g_regex_new (pattern.c_str(), options, (GRegexMatchFlags)0, &err); if (err) { Log::add_err_va (_("Can't use regular expression \"%s\": %s"), pattern.c_str(), err->message); g_error_free (err); return false; } return true; } }; int TextMatch :: my_regexec (const StringView& text) const { if (_pcre_state == NEED_COMPILE) { _pcre_info = new PcreInfo (); if (_pcre_info->set (_impl_text, state.case_sensitive)) _pcre_state = COMPILED; else _pcre_state = ERR; } return _pcre_state != COMPILED ? -1 : g_regex_match_full (_pcre_info->re, text.str, text.len, 0, G_REGEX_MATCH_NOTEMPTY, NULL, NULL); } /***** ****** ****** Substring Testing ****** *****/ /** * Boyer-Moore-Horspool-Sunday search algorithm. * case-sensitive and insensitive versions. */ namespace { int bmhs_isearch (const StringView& text_in, const StringView& pat_in, const char * skip) { const guchar * text = (const guchar*) text_in.str; const size_t text_len = text_in.len; const guchar * pat = (const guchar*) pat_in.str; const size_t pat_len = pat_in.len; const guchar first_uc = toupper(*pat); const guchar first_lc = tolower(*pat); const guchar * t = text; const guchar * text_end = text + text_len - pat_len + 1; const guchar * pat_end = pat + pat_len; const guchar * p; const guchar * q; for (;;) { // scan loop that searches for the first character of the pattern while (t= text_end) break; // first character matches, so execute match loop in fwd direction p = pat; q = t; while (++p < pat_end && *p == tolower(*++q)) ; if (p == pat_end) return t - text; t += skip[t[pat_len]]; } return -1; } /** * Boyer-Moore-Horspool-Sunday search algorithm. * Returns position of match, or -1 if no match. */ static int bmhs_search (const StringView& text_in, const StringView& pat_in, const char * skip) { const guchar * text = (const guchar*) text_in.str; const size_t text_len = text_in.len; const guchar * pat = (const guchar*) pat_in.str; const size_t pat_len = pat_in.len; const guchar first = *pat; const guchar * t = text; const guchar * text_end = text + text_len - pat_len + 1; const guchar * pat_end = pat + pat_len; const guchar * p; const guchar * q; for (;;) { // scan loop that searches for the first character of the pattern while (t= text_end) break; // first character matches, so execute match loop in fwd direction p = pat; q = t; while (++p < pat_end && *p == *++q) ; if (p == pat_end) return t - text; t += skip[t[pat_len]]; } return -1; } }; /***** ****** ****** ****** *****/ bool TextMatch :: test (const StringView& text_in) const { bool retval (false); StringView text (text_in); if (!text.empty()) { const StringView pat (_impl_text); switch (_impl_type) { case REGEX: //std::cerr << LINE_ID << " regex..." << std::endl; retval = my_regexec (text) > 0; break; case ENDS_WITH: //std::cerr << LINE_ID << " ends with..." << std::endl; if (text.len < pat.len) retval = false; text.rtruncate (pat.len); // fall through to "is" case IS: //std::cerr << LINE_ID << " is..." << std::endl; if (state.case_sensitive) retval = text.len==pat.len && !StringView::strcmp (text.str, text.len, pat.str, pat.len); else retval = text.len==pat.len && !g_ascii_strncasecmp (text.str, pat.str, pat.len); break; case BEGINS_WITH: //std::cerr << LINE_ID << " begins with..." << std::endl; if (state.case_sensitive) retval = text.len>=pat.len && !strncmp (text.str, pat.str, pat.len); else retval = text.len>=pat.len && !g_ascii_strncasecmp (text.str, pat.str, pat.len); break; case CONTAINS: //std::cerr << LINE_ID << " contains..." << std::endl; if (state.case_sensitive) retval = text.len>=pat.len && bmhs_search (text, pat, _skip) != -1; else retval = text.len>=pat.len && bmhs_isearch (text, pat, _skip) != -1; break; } } return state.negate ? !retval : retval; } /***** ****** ****** ****** *****/ TextMatch :: TextMatch (): _impl_text (), _skip (new char [UCHAR_MAX+1]), _pcre_info (nullptr), _pcre_state (NEED_COMPILE) { } TextMatch :: ~TextMatch () { clear (); delete [] _skip; } void TextMatch :: clear () { state.text.clear (); _impl_text.clear (); if (_pcre_state == COMPILED) { delete _pcre_info; _pcre_info = nullptr; _pcre_state = NEED_COMPILE; } } void TextMatch :: set (const StringView & text, Type type, bool case_sensitive, bool negate) { clear (); state.text.clear (); state.text.insert (0, text.str, text.len); state.type = type; state.negate = negate; state.case_sensitive = case_sensitive; _impl_type = get_real_match_type (text, type); if (state.type == _impl_type) _impl_text = state.text; else { char * tmp = regexp_unescape (state.text.c_str()); _impl_text = tmp; g_free (tmp); } if (!state.case_sensitive) { char * pch = g_utf8_strdown (_impl_text.c_str(), -1); _impl_text = pch; g_free (pch); } //std::cerr << LINE_ID << " state.type " << state.type << " _impl_type " << _impl_type << " text " << state.text << " _impl_text " << _impl_text << std::endl; // Boyer-Moore-Horspool-Sunday const char * pat (_impl_text.c_str()); const unsigned int len (_impl_text.size()); for (int i=0; i<=UCHAR_MAX; ++i) _skip[i] = len + 1; for (unsigned int i=0; i * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #ifndef _TextMatch_h_ #define _TextMatch_h_ #include #include namespace pan { /** * Encapsulates regular expression and efficient case-insensitive text matching. * * @ingroup general */ class TextMatch { public: enum Type { CONTAINS, IS, BEGINS_WITH, ENDS_WITH, REGEX }; /** * Specifies how a TextMatch object should compare its text. */ struct Description { Type type; bool case_sensitive; bool negate; std::string text; void clear () { type = IS; case_sensitive = negate = false; text.clear (); } Description() { clear(); } }; public: TextMatch (); TextMatch (const TextMatch& that); TextMatch& operator= (const TextMatch& that); ~TextMatch (); void clear (); void set (const StringView& text, Type type, bool case_sensitive, bool negate=false); void set (const Description& d) { set (d.text, d.type, d.case_sensitive, d.negate); } bool test (const StringView& text) const; static std::string create_regex (const StringView&, Type); static bool validate_regex (const char * regex); const Description& get_state () const { return state; } private: /** This is the state passed into set()... */ Description state; public: /** The real state we use. This is the same as state._type unless state._type is REGEX and we can do it faster with another type (i.e. "^hello" can be done with strncmp() instead of a regex invocation */ Type _impl_type; /** This real string we use. See _impl_type for description. */ std::string _impl_text; char * _skip; private: class PcreInfo; mutable PcreInfo * _pcre_info; enum PcreState { NEED_COMPILE, COMPILED, ERR }; mutable PcreState _pcre_state; public: int my_regexec (const StringView&) const; }; } #endif pan-0.162/pan/general/time-elapsed.h000066400000000000000000000016301475412772400172320ustar00rootroot00000000000000#ifndef __Time_Elapsed_h__ #define __Time_Elapsed_h__ #include // for GTimeVal, g_get_current_time and GUSEC_PER_SEC namespace pan { /** * Simple object used for logging how long a piece of code takes to execute. * * Instantiate it before calling the code to be timed, then call * get_seconds_elapsed() after the code returns. * * @ingroup general */ struct TimeElapsed { GTimeVal start; TimeElapsed() { g_get_current_time (&start); } double get_seconds_elapsed () const { GTimeVal finish; g_get_current_time (&finish); double diff = finish.tv_sec - start.tv_sec; diff += (finish.tv_usec - start.tv_usec)/(double)G_USEC_PER_SEC; return diff; } double get_usecs_elapsed () const { GTimeVal finish; g_get_current_time (&finish); double diff = finish.tv_usec - start.tv_usec; return diff; } }; } #endif pan-0.162/pan/general/utf8-utils.cc000066400000000000000000000142731475412772400170520ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #include #include #include #include #include #include #include #include #include #include #include "utf8-utils.h" using namespace pan; namespace { struct LocaleStruct { const char *locale, *charset; } locales[] = { {"en_US", "ISO-8859-1"}, {"pt_BR", "ISO-8859-1"}, {"ca_ES", "ISO-8859-15"}, {"zh_CN.GB2312", "gb2312"}, {"zh_TW.Big5", "big5"}, {"cs_CZ", "ISO-8859-2"}, {"da_DK", "ISO-8859-1"}, {"de_DE", "ISO-8859-15"}, {"nl_NL", "ISO-8859-15"}, {"et_EE", "ISO-8859-15"}, {"fi_FI", "ISO-8859-15"}, {"fr_FR", "ISO-8859-15"}, {"el_GR", "ISO-8859-7"}, {"hu_HU", "ISO-8859-2"}, {"it_IT", "ISO-8859-15"}, {"ja_JP", "ISO-2022-jp"}, {"ko_KR", "euc-kr"}, {"lv_LV", "ISO-8859-13"}, {"lt_LT", "ISO-8859-13"}, {"no_NO", "ISO-8859-1"}, {"pl_PL", "ISO-8859-2"}, {"pt_PT", "ISO-8859-15"}, {"ro_RO", "ISO-8859-2"}, {"ru_RU", "KOI8-R"}, {"ru_SU", "ISO-8859-5"}, {"sk_SK", "ISO-8859-2"}, {"es_ES", "ISO-8859-15"}, {"sv_SE", "ISO-8859-1"}, {"tr_TR", "ISO-8859-9"}, {"uk_UK", "KOI8-U"} }; /* find_locale_index_by_locale: * finds the longest fit so the one who has en_GB will get en_US if en_GB * is not defined. * This function is lifted from Balsa. */ gint get_closest_locale (void) { const char * locale = setlocale (LC_CTYPE, NULL); guint i, j, maxfit = 0, maxpos = 0; g_return_val_if_fail (locale != NULL, -1); if (!locale || strcmp(locale, "C") == 0) return 0; for (i = 0; i < G_N_ELEMENTS(locales); i++) { for (j=0; locale[j] && locales[i].locale[j] == locale[j]; j++) ; if (j > maxfit) { maxfit = j; maxpos = i; } } return maxpos; } const char * PAN_DEFAULT_CHARSET = "ISO-8859-1"; const char * get_charset_from_locale (void) { gint loc_idx = get_closest_locale (); return loc_idx != -1 ? locales[loc_idx].charset : PAN_DEFAULT_CHARSET; } } std::string pan :: clean_utf8 (const StringView& in_arg) { StringView in (in_arg); std::string out; const char *end; while (!g_utf8_validate (in.str, in.len, &end)) { const gssize good_len (end - in.str); out.append (in.str, good_len); in.eat_chars (good_len + 1); out += '?'; } out.append (in.str, in.len); g_assert (g_utf8_validate (out.c_str(), out.size(), NULL)); return out; } std::string pan :: header_to_utf8 (const StringView & header, const char * fallback_charset1, const char * fallback_charset2) { std::string s = content_to_utf8 (header, fallback_charset1, fallback_charset2); if (header.strstr ("=?")) { char * decoded (g_mime_utils_header_decode_text (NULL, s.c_str())); s = clean_utf8 (decoded); g_free (decoded); } return s; } std::string pan :: mime_part_to_utf8 (GMimePart * part, const char * fallback_charset) { std::string ret; g_return_val_if_fail (GMIME_IS_PART(part), ret); const char * charset = g_mime_object_get_content_type_parameter (GMIME_OBJECT (part), "charset"); GMimeDataWrapper * content = g_mime_part_get_content (part); GMimeStream *stream = g_mime_stream_mem_new (); g_mime_data_wrapper_write_to_stream (content, stream); GByteArray *buf = ((GMimeStreamMem *) stream)->buffer; ret = content_to_utf8 (StringView ((const char *) buf->data, buf->len), charset, fallback_charset); g_object_unref (stream); return ret; } std::string pan :: content_to_utf8 (const StringView & content, const char * fallback_charset1, const char * fallback_charset2) { std::string ret; const StringView c1 (fallback_charset1); const StringView c2 (fallback_charset2); if (!content.empty()) { // is it's already valid utf8? // only use this if there isn't a fallback charset, // since some other charsets (like utf-7) are also utf-8 clean... if (c1.empty() && c2.empty() && g_utf8_validate (content.str, content.len, NULL)) ret.assign (content.str, content.len); // iterate through the charsets and try to convert to utf8. if (ret.empty()) { // build a list of charsets to try size_t n = 0; const char* encodings[4]; if (!c1.empty()) encodings[n++] = c1.str; if (!c2.empty()) encodings[n++] = c2.str; encodings[n++] = "CURRENT"; // try these when the user-supplied fallbacks fail... encodings[n++] = "ISO-8859-15"; // try each charset in turn for (size_t i=0; i!=n; ++i) { char * tmp = g_convert (content.str, content.len, "UTF-8", encodings[i], nullptr, nullptr, NULL); if (tmp) { ret = tmp; g_free (tmp); break; } } } // if we couldn't figure it out, strip out all the non-utf8 and hope for the best. if (ret.empty()) ret.assign (content.str, content.len); if (!g_utf8_validate (ret.c_str(), ret.size(), NULL)) { ret = clean_utf8 (ret); Log::add_err (_("Couldn't determine article encoding. Non-UTF8 characters were removed.")); } } return ret; } pan-0.162/pan/general/utf8-utils.h000066400000000000000000000030641475412772400167100ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #ifndef _pan_utf8_utils_h_ #define _pan_utf8_utils_h_ #include #include #include namespace pan { std::string header_to_utf8 (const StringView & in, const char * fallback_charset_1=nullptr, const char * fallback_charset_2=nullptr); std::string mime_part_to_utf8 (GMimePart * part, const char * fallback_charset=nullptr); std::string content_to_utf8 (const StringView & in, const char * fallback_charset_1=nullptr, const char * fallback_charset_2=nullptr); std::string clean_utf8 (const StringView & in); } #endif pan-0.162/pan/general/worker-pool.cc000066400000000000000000000047561475412772400173130ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2007 Charles Kerr * * This file * Copyright (C) 2007 Calin Culianu * * This file is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #include #include // for g_idle_add #include #include #include #include "worker-pool.h" using namespace pan; WorkerPool::WorkerPool(int n, bool exclusive) { assert((!exclusive || n>0) && "can't have unlimited exclusive threads!"); tpool = g_thread_pool_new(Worker::worker_thread_func, this, n, exclusive, nullptr); } void WorkerPool::cancel_all_silently() { foreach (WorkerSet, my_workers, it)(*it)->cancel_silently (); } WorkerPool::~WorkerPool() { foreach (WorkerSet, my_workers, it){ (*it)->pool = nullptr; (*it)->cancel (); } // blocks until *all* workers, both running and queued, have run. g_thread_pool_free (tpool, false, true); } /*** **** ***/ void WorkerPool::push_work(Worker *w, Worker::Listener *l, bool delete_worker) { w->cancelled = false; w->silent = false; w->pool = this; w->listener = l; w->delete_worker = delete_worker; my_workers.insert(w); g_thread_pool_push(tpool, w, nullptr); // jump to worker_thread_func } void WorkerPool::Worker::worker_thread_func(gpointer g, gpointer unused UNUSED) { static_cast(g)->do_work(); g_idle_add(main_thread_cleanup_cb, g); // jump to main_thread_cleanup_cb } gboolean WorkerPool::Worker::main_thread_cleanup_cb(gpointer g) { static_cast(g)->main_thread_cleanup(); return false; // tell main loop that we're done } void WorkerPool::Worker::main_thread_cleanup() { if (listener && !silent) listener->on_worker_done(was_cancelled()); if (pool) pool->my_workers.erase(this); if (delete_worker) delete this; } pan-0.162/pan/general/worker-pool.h000066400000000000000000000070501475412772400171430ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2007 Charles Kerr * * This file * Copyright (C) 2007 Calin Culianu * * This file is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #ifndef _Worker_Pool_H_ #define _Worker_Pool_H_ #include #include namespace pan { /** * A C++ wrapper for GThreadPool. * * @author Calin Culianu * @see Queue * @ingroup general */ class WorkerPool { public: /** * Creates a pool of worker threads. * @param num_threads -1 means no limit * @param exclusive if true, don't share threads with other pools */ WorkerPool (int num_threads=-1, bool exclusive=false); /** * Calls each of this pool's workers' cancel_silently(). * Use this if its worker's listeners are being deleted. */ void cancel_all_silently (); ~WorkerPool (); public: class Worker { public: Worker(): pool(nullptr), listener(nullptr), cancelled(false), silent(false), delete_worker(false) {} virtual ~Worker() {} /** Sets the flag used in was_cancelled() */ virtual void cancel() { cancelled = true; } /** Like cancel(), but also tells this worker to not call its Listener's on_worker_done(). Use this if the listener is deleted. */ void cancel_silently() { cancel(); silent=true; } /** Subclasses' do_work() methods should call this periodically and stop working if it's true. */ virtual bool was_cancelled() const { return cancelled; } struct Listener { virtual ~Listener() {} virtual void on_worker_done (bool was_cancelled)=0; }; protected: virtual void do_work () = 0; private: friend class WorkerPool; WorkerPool * pool; Listener * listener; volatile bool cancelled, silent; bool delete_worker; static void worker_thread_func (gpointer worker, gpointer unused); static gboolean main_thread_cleanup_cb (gpointer worker); void main_thread_cleanup (); }; /** * Enqueues a worker so its do_work() is called in a worker thread. * After that, the following will be done in the main thread: * 1. if a listener was provided, its on_work_done() method is called. * 2. if delete_worker was true, the worker will be deleted. */ void push_work (Worker*, Worker::Listener*, bool del_worker_when_done); private: GThreadPool * tpool; typedef std::set WorkerSet; WorkerSet my_workers; WorkerPool& operator= (WorkerPool&); // not implemented WorkerPool (const WorkerPool&); // not implemented }; } #endif pan-0.162/pan/gui/000077500000000000000000000000001475412772400136575ustar00rootroot00000000000000pan-0.162/pan/gui/CMakeLists.txt000066400000000000000000000035471475412772400164300ustar00rootroot00000000000000set(SRC_CC_FILES actions.cc body-pane.cc dl-headers-ui.cc editor-spawner.cc group-pane.cc group-prefs-dialog.cc group-prefs.cc header-pane.cc hig.cc load-icon.cc log-ui.cc pan-file-entry.cc pan-tree.cc post-ui.cc prefs-file.cc prefs-ui.cc prefs.cc profiles-dialog.cc progress-view.cc render-bytes.cc save-attach-ui.cc save-ui.cc score-add-ui.cc score-view-ui.cc server-ui.cc task-pane.cc url.cc ) set(SRC_C_FILES e-action-combo-box.c e-charset-combo-box.c e-charset-dialog.c e-charset.c e-cte-dialog.c xface.c ) # https://cmake.org/cmake/help/latest/command/add_library.html add_library(pan-cc-gui STATIC ${SRC_CC_FILES}) add_library(pan-c-gui STATIC ${SRC_C_FILES}) foreach (my_target "pan-cc-gui" "pan-c-gui") target_link_libraries(${my_target} PRIVATE tasks) target_link_libraries(${my_target} PUBLIC PkgConfig::GTK3) target_link_libraries(${my_target} PUBLIC PkgConfig::GMIME) if(WANT_GSPELL) my_target_system_lib(${my_target} PUBLIC GSPELL) endif() if(WANT_WEBKIT) target_link_libraries(${my_target} PUBLIC PkgConfig::WEBKITGTK) endif() if(WANT_GNUTLS) target_link_libraries(${my_target} PUBLIC PkgConfig::GNUTLS) endif() if(WANT_NOTIFY) target_link_libraries(${my_target} PUBLIC PkgConfig::LIBNOTIFY) endif() if(Iconv_FOUND) my_target_system_lib(${my_target} PUBLIC Iconv) endif() if(WANT_GKR) target_link_libraries(${my_target} PUBLIC PkgConfig::LIBSECRET) target_link_libraries(${my_target} PUBLIC PkgConfig::GCR3) endif() if(WANT_WEBKIT) target_link_libraries(${my_target} PUBLIC PkgConfig::WEBKITGTK) endif() endforeach() # Sanity checking # https://cmake.org/cmake/help/latest/command/add_compile_options.html target_compile_options(pan-cc-gui PRIVATE "-Wreorder" "${CXX_STD}" "-Wzero-as-null-pointer-constant") if(WIN32) target_sources(pan PRIVATE panrc.rc) endif() pan-0.162/pan/gui/action-manager.h000066400000000000000000000013021475412772400167110ustar00rootroot00000000000000#ifndef ACTION_MANAGER_H #define ACTION_MANAGER_H /** * Interface for objects that encapsulate GTK action groups. * @ingroup GUI */ struct ActionManager { ActionManager () {} virtual ~ActionManager () {} virtual bool is_action_active (const char * action) const = 0; virtual void activate_action (const char * action) const = 0; virtual void toggle_action (const char * action, bool) const = 0; virtual void sensitize_action (const char * action, bool) const = 0; virtual void hide_action (const char * key, bool b) const = 0; virtual GtkWidget* get_action_widget (const char * key) const = 0; virtual void disable_accelerators_when_focused (GtkWidget * entry) const = 0; }; #endif pan-0.162/pan/gui/actions-extern.h000066400000000000000000000021021475412772400167660ustar00rootroot00000000000000 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #ifndef ACTION_EXTERN_H #define ACTION_EXTERN_H #include namespace pan { // extern GtkActionEntry entries[]; // extern GtkActionEntry toggle_entries[]; // extern int ACTION_ENTRIES; // extern int TOGGLE_ACTION_ENTRIES; extern std::map action_trans; } #endif pan-0.162/pan/gui/actions.cc000066400000000000000000001132021475412772400156250ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #include #include #include #include #include #include #include #include #include "actions.h" #include "pad.h" #include "gui.h" #include "pan/gui/load-icon.h" namespace pan { std::map action_trans; } using pan::PanUI; namespace pan { PanUI * pan_ui (nullptr); Prefs * prefs (nullptr); struct BuiltinIconInfo { const char * raw; const char * name; }; const BuiltinIconInfo my_builtin_icons [] = { { "icon_article_read.png", "ICON_ARTICLE_READ" }, { "icon_article_unread.png", "ICON_ARTICLE_UNREAD" }, { "icon_compose_followup.png", "ICON_COMPOSE_FOLLOWUP" }, { "icon_compose_post.png", "ICON_COMPOSE_POST" }, { "icon_disk.png", "ICON_DISK" }, { "icon_filter_only_attachments.png", "ICON_ONLY_ATTACHMENTS" }, { "icon_filter_only_cached.png", "ICON_ONLY_CACHED" }, { "icon_filter_only_me.png", "ICON_ONLY_ME" }, { "icon_filter_only_read.png", "ICON_ONLY_READ" }, { "icon_filter_only_unread.png", "ICON_ONLY_UNREAD" }, { "icon_filter_only_watched.png", "ICON_ONLY_WATCHED" }, { "icon_get_dialog.png", "ICON_GET_DIALOG" }, { "icon_get_selected.png", "ICON_GET_SELECTED" }, { "icon_get_subscribed.png", "ICON_GET_SUBSCRIBED" }, { "icon_read_group.png", "ICON_READ_GROUP" }, { "icon_read_more.png", "ICON_READ_MORE" }, { "icon_read_less.png", "ICON_READ_LESS" }, { "icon_read_unread_article.png", "ICON_READ_UNREAD_ARTICLE" }, { "icon_read_unread_thread.png", "ICON_READ_UNREAD_THREAD" }, { "icon_score.png", "ICON_SCORE" }, { "icon_search_pulldown.png", "ICON_SEARCH_PULLDOWN" }, { "icon_red_flag.png", "ICON_FLAGGED"}, { "icon_get_flagged.png", "ICON_GET_FLAGGED" }, { "icon_expand_thread.png", "ICON_EXPAND_THREAD" }, { "icon_collapse_thread.png", "ICON_COLLAPSE_THREAD" }, { "icon_show_signature.png", "ICON_SHOW_SIGNATURE" } }; void register_my_builtin_icons () { GtkIconFactory * factory = gtk_icon_factory_new (); gtk_icon_factory_add_default (factory); for (int i(0), qty(G_N_ELEMENTS(my_builtin_icons)); ido_prompt_for_charset(); } void do_read_selected_group (GtkAction*) { pan_ui->do_read_selected_group(); } void do_mark_selected_groups_read (GtkAction*) { pan_ui->do_mark_selected_groups_read(); } void do_clear_selected_groups (GtkAction*) { pan_ui->do_clear_selected_groups(); } void do_xover_selected_groups (GtkAction*) { pan_ui->do_xover_selected_groups(); } void do_xover_subscribed_groups (GtkAction*) { pan_ui->do_xover_subscribed_groups(); } void do_download_headers (GtkAction*) { pan_ui->do_download_headers(); } void do_refresh_groups (GtkAction*) { pan_ui->do_refresh_groups(); } void do_subscribe_selected_groups (GtkAction*) { pan_ui->do_subscribe_selected_groups(); } void do_unsubscribe_selected_groups (GtkAction*) { pan_ui->do_unsubscribe_selected_groups(); } void do_save_articles (GtkAction*) { pan_ui->do_save_articles(); } void do_save_articles_from_nzb (GtkAction*) { pan_ui->do_save_articles_from_nzb(); } void do_save_articles_to_nzb (GtkAction*) { pan_ui->do_save_articles_to_nzb(); } void do_print (GtkAction*) { pan_ui->do_print(); } void do_import_tasks (GtkAction*) { pan_ui->do_import_tasks(); } void do_cancel_latest_task (GtkAction*) { pan_ui->do_cancel_latest_task(); } void do_show_task_window (GtkAction*) { pan_ui->do_show_task_window(); } void do_show_log_window (GtkAction*) { pan_ui->do_show_log_window(); } void do_quit (GtkAction*) { pan_ui->do_quit(); } void do_clear_header_pane (GtkAction*) { pan_ui->do_clear_header_pane(); } void do_clear_body_pane (GtkAction*) { pan_ui->do_clear_body_pane(); } void do_select_all_articles (GtkAction*) { pan_ui->do_select_all_articles(); } void do_unselect_all_articles (GtkAction*) { pan_ui->do_unselect_all_articles(); } void do_add_subthreads_to_selection (GtkAction*) { pan_ui->do_add_subthreads_to_selection(); } void do_add_threads_to_selection (GtkAction*) { pan_ui->do_add_threads_to_selection(); } void do_add_similar_to_selection (GtkAction*) { pan_ui->do_add_similar_to_selection(); } void do_select_article_body (GtkAction*) { pan_ui->do_select_article_body(); } void do_show_preferences_dialog (GtkAction*) { pan_ui->do_show_preferences_dialog(); } void do_show_group_preferences_dialog(GtkAction*) { pan_ui->do_show_group_preferences_dialog(); } void do_show_profiles_dialog (GtkAction*) { pan_ui->do_show_profiles_dialog(); } void do_jump_to_group_tab (GtkAction*) { pan_ui->do_jump_to_group_tab(); } void do_jump_to_header_tab (GtkAction*) { pan_ui->do_jump_to_header_tab(); } void do_jump_to_body_tab (GtkAction*) { pan_ui->do_jump_to_body_tab(); } void do_rot13_selected_text (GtkAction*) { pan_ui->do_rot13_selected_text(); } void do_download_selected_article (GtkAction*) { pan_ui->do_download_selected_article(); } void do_read_selected_article (GtkAction*) { pan_ui->do_read_selected_article(); } void do_show_selected_article_info (GtkAction*) { pan_ui->do_show_selected_article_info(); } void do_read_more (GtkAction*) { pan_ui->do_read_more(); } void do_read_less (GtkAction*) { pan_ui->do_read_less(); } void do_read_next_unread_group (GtkAction*) { pan_ui->do_read_next_unread_group(); } void do_read_next_group (GtkAction*) { pan_ui->do_read_next_group(); } void do_read_next_unread_article (GtkAction*) { pan_ui->do_read_next_unread_article(); } void do_read_next_article (GtkAction*) { pan_ui->do_read_next_article(); } void do_read_next_watched_article (GtkAction*) { pan_ui->do_read_next_watched_article(); } void do_read_next_unread_thread (GtkAction*) { pan_ui->do_read_next_unread_thread(); } void do_read_next_thread (GtkAction*) { pan_ui->do_read_next_thread(); } void do_read_previous_article (GtkAction*) { pan_ui->do_read_previous_article(); } void do_read_previous_thread (GtkAction*) { pan_ui->do_read_previous_thread(); } void do_read_parent_article (GtkAction*) { pan_ui->do_read_parent_article(); } void do_show_servers_dialog (GtkAction*) { pan_ui->do_show_servers_dialog(); } void do_show_sec_dialog (GtkAction*) { pan_ui->do_show_sec_dialog(); } void do_collapse_thread (GtkAction*) { pan_ui->do_collapse_thread(); } void do_expand_thread (GtkAction*) { pan_ui->do_expand_thread(); } void do_plonk (GtkAction*) { pan_ui->do_plonk(); } void do_ignore (GtkAction*) { pan_ui->do_ignore(); } void do_watch (GtkAction*) { pan_ui->do_watch(); } void do_flag (GtkAction*) { pan_ui->do_flag(); } void do_flag_off (GtkAction*) { pan_ui->do_flag_off(); } void do_next_flag (GtkAction*) { pan_ui->do_next_flag(); } void do_last_flag (GtkAction*) { pan_ui->do_last_flag(); } void do_invert_selection (GtkAction*) { pan_ui->do_invert_selection(); } void do_mark_all_flagged (GtkAction*) { pan_ui->do_mark_all_flagged(); } void do_show_score_dialog (GtkAction*) { pan_ui->do_show_score_dialog(); } void do_show_new_score_dialog (GtkAction*) { pan_ui->do_show_new_score_dialog(); } void do_cancel_article (GtkAction*) { pan_ui->do_cancel_article(); } void do_supersede_article (GtkAction*) { pan_ui->do_supersede_article(); } void do_delete_article (GtkAction*) { pan_ui->do_delete_article(); } void do_clear_article_cache (GtkAction*) { pan_ui->do_clear_article_cache(); } void do_mark_article_read (GtkAction*) { pan_ui->do_mark_article_read(); } void do_mark_article_unread (GtkAction*) { pan_ui->do_mark_article_unread(); } void do_mark_thread_read (GtkAction*) { pan_ui->do_mark_thread_read(); } void do_mark_thread_unread (GtkAction*) { pan_ui->do_mark_thread_unread(); } void do_post (GtkAction*) { pan_ui->do_post(); } void do_followup_to (GtkAction*) { pan_ui->do_followup_to(); } void do_reply_to (GtkAction*) { pan_ui->do_reply_to(); } #ifdef HAVE_MANUAL void do_pan_manual (GtkAction*) { pan_ui->do_pan_manual(); } #endif void do_pan_web (GtkAction*) { pan_ui->do_pan_web(); } void do_bug_report (GtkAction*) { pan_ui->do_bug_report(); } void do_about_pan (GtkAction*) { pan_ui->do_about_pan(); } void do_edit_scores(GtkAction * a) { pan_ui->do_edit_scores(a); } void do_work_online (GtkToggleAction * a) { pan_ui->do_work_online (gtk_toggle_action_get_active(a)); } void do_layout (GtkToggleAction * a) { pan_ui->do_layout (gtk_toggle_action_get_active(a)); } void do_show_group_pane (GtkToggleAction * a) { pan_ui->do_show_group_pane (gtk_toggle_action_get_active(a)); } void do_show_header_pane (GtkToggleAction * a) { pan_ui->do_show_header_pane (gtk_toggle_action_get_active(a)); } void do_show_body_pane (GtkToggleAction * a) { pan_ui->do_show_body_pane (gtk_toggle_action_get_active(a)); } void do_show_toolbar (GtkToggleAction * a) { pan_ui->do_show_toolbar (gtk_toggle_action_get_active(a)); } void do_shorten_group_names (GtkToggleAction * a) { pan_ui->do_shorten_group_names (gtk_toggle_action_get_active(a)); } guint get_action_activate_signal_id () { static guint sig_id = 0; if (!sig_id) sig_id = g_signal_lookup ("activate", GTK_TYPE_ACTION); return sig_id; } void toggle_action_set_active (const char * action_name, bool is_active) { GtkAction * a = gtk_action_group_get_action (_group, action_name); const guint sig_id (get_action_activate_signal_id ()); const gulong tag (g_signal_handler_find (a, G_SIGNAL_MATCH_ID, sig_id, 0, NULL, NULL, NULL)); g_signal_handler_block (a, tag); gtk_toggle_action_set_active (GTK_TOGGLE_ACTION(a), is_active); g_signal_handler_unblock (a, tag); }; /** *** Boy these `match only' buttons are more trouble to sync than they're worth. :) **/ const int SCORE_STATE_MASK (MATCH_IGNORED | MATCH_LOW_SCORING | MATCH_NORMAL_SCORING | MATCH_MEDIUM_SCORING | MATCH_HIGH_SCORING | MATCH_WATCHED); int prev_score_state; int match_on_score_state (MATCH_LOW_SCORING | MATCH_NORMAL_SCORING | MATCH_MEDIUM_SCORING | MATCH_HIGH_SCORING | MATCH_WATCHED); void sync_score_state_actions () { toggle_action_set_active ("match-only-watched-articles", match_on_score_state == MATCH_WATCHED); toggle_action_set_active ("match-watched-articles", match_on_score_state & MATCH_WATCHED); toggle_action_set_active ("match-high-scoring-articles", match_on_score_state & MATCH_HIGH_SCORING); toggle_action_set_active ("match-medium-scoring-articles", match_on_score_state & MATCH_MEDIUM_SCORING); toggle_action_set_active ("match-normal-scoring-articles", match_on_score_state & MATCH_NORMAL_SCORING); toggle_action_set_active ("match-low-scoring-articles", match_on_score_state & MATCH_LOW_SCORING); toggle_action_set_active ("match-ignored-articles", match_on_score_state & MATCH_IGNORED); } void set_new_match_on_score_state (int new_state) { prev_score_state = match_on_score_state; match_on_score_state = new_state; sync_score_state_actions (); pan_ui->do_match_on_score_state (new_state); } void set_score_state_bit_from_toggle (GtkToggleAction * a, int bit) { int new_state (match_on_score_state); if (gtk_toggle_action_get_active (a)) new_state |= bit; else new_state &= (SCORE_STATE_MASK & ~bit); if (!new_state) new_state = SCORE_STATE_MASK; set_new_match_on_score_state (new_state); } void do_toggle_rules (GtkToggleAction * a) { prefs->_rules_enabled = gtk_toggle_action_get_active (a); pan_ui->do_enable_toggle_rules(prefs->_rules_enabled); } void do_toggle_expand_thread (GtkToggleAction * a) { const bool active (gtk_toggle_action_get_active (a)); if (active) do_expand_thread(NULL); else do_collapse_thread(NULL); } void do_match_only_watched_articles (GtkToggleAction * a) { set_new_match_on_score_state (gtk_toggle_action_get_active(a) ? MATCH_WATCHED : prev_score_state); } void do_match_watched_articles (GtkToggleAction * a) { set_score_state_bit_from_toggle (a, MATCH_WATCHED); } void do_match_high_scoring_articles (GtkToggleAction * a) { set_score_state_bit_from_toggle (a, MATCH_HIGH_SCORING); } void do_match_medium_scoring_articles (GtkToggleAction * a) { set_score_state_bit_from_toggle (a, MATCH_MEDIUM_SCORING); } void do_match_normal_scoring_articles (GtkToggleAction * a) { set_score_state_bit_from_toggle (a, MATCH_NORMAL_SCORING); } void do_match_low_scoring_articles (GtkToggleAction * a) { set_score_state_bit_from_toggle (a, MATCH_LOW_SCORING); } void do_match_ignored_articles (GtkToggleAction * a) { set_score_state_bit_from_toggle (a, MATCH_IGNORED); } /** *** **/ void do_match_only_cached_articles (GtkToggleAction * a) { pan_ui->do_match_only_cached_articles (gtk_toggle_action_get_active(a)); } void do_match_only_binary_articles (GtkToggleAction * a) { pan_ui->do_match_only_binary_articles (gtk_toggle_action_get_active(a)); } void do_match_only_my_articles (GtkToggleAction * a) { pan_ui->do_match_only_my_articles (gtk_toggle_action_get_active(a)); } void do_match_only_unread_articles (GtkToggleAction * a) { const bool active (gtk_toggle_action_get_active(a)); toggle_action_set_active("match-only-unread-articles", active); if (active) toggle_action_set_active("match-only-read-articles", false); pan_ui->do_match_only_unread_articles(true); } void do_match_only_read_articles (GtkToggleAction * a) { const bool active (gtk_toggle_action_get_active(a)); toggle_action_set_active("match-only-read-articles", active); if (active) toggle_action_set_active("match-only-unread-articles", false); pan_ui->do_match_only_read_articles(true); } GtkActionEntry entries[] = { { "file-menu", NULL, N_("_File"), NULL, NULL, NULL }, { "edit-menu", NULL, N_("_Edit"), NULL, NULL, NULL }, { "view-layout-menu", NULL, N_("_Layout"), NULL, NULL, NULL }, { "view-group-pane-menu", NULL, N_("_Group Pane"), NULL, NULL, NULL }, { "view-header-pane-menu", NULL, N_("_Header Pane"), NULL, NULL, NULL }, { "view-body-pane-menu", NULL, N_("_Body Pane"), NULL, NULL, NULL }, { "view-menu", NULL, N_("_View"), NULL, NULL, NULL }, { "filter-menu", NULL, N_("Filte_r"), NULL, NULL, NULL }, { "go-menu", NULL, N_("_Go"), NULL, NULL, NULL }, { "actions-menu", NULL, N_("_Actions"), NULL, NULL, NULL }, { "article-actions-menu", NULL, N_("_Articles"), NULL, NULL, NULL }, { "group-actions-menu", NULL, N_("G_roups"), NULL, NULL, NULL }, { "posting-actions-menu", NULL, N_("_Post"), NULL, NULL, NULL }, { "post-menu", NULL, N_("_Post"), NULL, NULL, NULL }, { "help-menu", NULL, N_("_Help"), NULL, NULL, NULL }, { "read-selected-group", "ICON_READ_MORE", N_("_Read Group"), NULL, N_("Read Group"), G_CALLBACK(do_read_selected_group) }, { "mark-groups-read", "edit-clear", N_("_Mark Selected Groups Read"), "M", N_("Mark Selected Groups Read"), G_CALLBACK(do_mark_selected_groups_read) }, { "delete-groups-articles", "edit-delete", N_("_Delete Selected Groups' Articles"), "Delete", N_("Delete Selected Groups' Articles"), G_CALLBACK(do_clear_selected_groups) }, { "get-new-headers-in-selected-groups", "ICON_GET_SELECTED", N_("Get New _Headers in Selected Groups"), "A", N_("Get New Headers in Selected Groups"), G_CALLBACK(do_xover_selected_groups) }, { "get-new-headers-in-subscribed-groups", "ICON_GET_SUBSCRIBED", N_("Get New _Headers in Subscribed Groups"), "A", N_("Get New Headers in Subscribed Groups"), G_CALLBACK(do_xover_subscribed_groups) }, { "update-stats-in-selected-groups", "ICON_GET_SUBSCRIBED", N_("Get New _Headers in Subscribed Groups"), "A", N_("Get New Headers in Subscribed Groups"), G_CALLBACK(do_xover_subscribed_groups) }, { "download-headers", "ICON_GET_DIALOG", N_("Get _Headers..."), "", N_("Get Headers..."), G_CALLBACK(do_download_headers) }, { "refresh-group-list", NULL, N_("Refresh Group List"), "", N_("Refresh Group List"), G_CALLBACK(do_refresh_groups) }, { "subscribe", NULL, N_("_Subscribe"), NULL, N_("Subscribe"), G_CALLBACK(do_subscribe_selected_groups) }, { "unsubscribe", NULL, N_("_Unsubscribe"), NULL, N_("Unsubscribe"), G_CALLBACK(do_unsubscribe_selected_groups) }, { "save-articles", "document-save", N_("_Save Articles..."), "S", N_("Save Articles..."), G_CALLBACK(do_save_articles) }, { "save-articles-from-nzb", "document-save", N_("Save Articles from Selected _NZB..."), "S", N_("Save Articles from Selected NZB"), G_CALLBACK(do_save_articles_from_nzb) }, { "save-articles-to-nzb", "document-save", N_("Save Articles to an NZB _File..."), "F", N_("Save Articles to an NZB File"), G_CALLBACK(do_save_articles_to_nzb) }, { "print", "document-print", N_("Print"), "P", N_("Print"), G_CALLBACK(do_print) }, { "import-tasks", "document-open", N_("_Import NZB Files..."), "O", NULL, G_CALLBACK(do_import_tasks) }, { "cancel-last-task", "_Cancel", N_("_Cancel Last Task"), "Delete", NULL, G_CALLBACK(do_cancel_latest_task) }, { "show-task-window", NULL, N_("_Task Manager"), NULL, NULL, G_CALLBACK(do_show_task_window) }, { "show-log-dialog", "dialog-information", N_("_Event Log"), NULL, NULL, G_CALLBACK(do_show_log_window) }, { "quit", NULL, N_("_Quit"), "Q", NULL, G_CALLBACK(do_quit) }, { "select-all-articles", NULL, N_("Select _All Articles"), "D", NULL, G_CALLBACK(do_select_all_articles) }, { "unselect-all-articles", NULL, N_("_Deselect All Articles"), "D", NULL, G_CALLBACK(do_unselect_all_articles) }, { "add-subthreads-to-selection", NULL, N_("Add Su_bthreads to Selection"), "D", NULL, G_CALLBACK(do_add_subthreads_to_selection) }, { "add-threads-to-selection", NULL, N_("Add _Threads to Selection"), "D", NULL, G_CALLBACK(do_add_threads_to_selection) }, { "add-similar-articles-to-selection", NULL, N_("Add _Similar Articles to Selection"), "S", NULL, G_CALLBACK(do_add_similar_to_selection) }, { "select-article-body", NULL, N_("Select Article _Body"), NULL, NULL, G_CALLBACK(do_select_article_body) }, { "show-preferences-dialog", "preferences-system", N_("Edit _Preferences"), NULL, NULL, G_CALLBACK(do_show_preferences_dialog) }, { "show-group-preferences-dialog", "preferences-system", N_("Edit Selected _Group's Preferences"), NULL, NULL, G_CALLBACK(do_show_group_preferences_dialog) }, { "launch-scores-editor", "preferences-system", N_("Edit S_core File"), NULL, NULL, G_CALLBACK(do_edit_scores) }, { "show-profiles-dialog", "accessories-text-editor", N_("Edit P_osting Profiles"), NULL, NULL, G_CALLBACK(do_show_profiles_dialog) }, { "show-servers-dialog", "network-workgroup", N_("Edit _News Servers"), NULL, NULL, G_CALLBACK(do_show_servers_dialog) }, { "jump-to-group-tab", "go-jump", N_("Jump to _Group Tab"), "1", NULL, G_CALLBACK(do_jump_to_group_tab) }, { "jump-to-header-tab", "go-jump", N_("Jump to _Header Tab"), "2", NULL, G_CALLBACK(do_jump_to_header_tab) }, { "jump-to-body-tab", "go-jump", N_("Jump to _Body Tab"), "3", NULL, G_CALLBACK(do_jump_to_body_tab) }, { "rot13-selected-text", NULL, N_("_Rot13 Selected Text"), "R", NULL, G_CALLBACK(do_rot13_selected_text) }, { "clear-header-pane", NULL, N_("Clear _Header Pane"), NULL, NULL, G_CALLBACK(do_clear_header_pane) }, { "clear-body-pane", NULL, N_("Clear _Body Pane"), NULL, NULL, G_CALLBACK(do_clear_body_pane) }, { "download-selected-article", "ICON_DISK", N_("Cache Article"), NULL, NULL, G_CALLBACK(do_download_selected_article) }, { "read-selected-article", "ICON_READ_MORE", N_("Read Article"), NULL, NULL, G_CALLBACK(do_read_selected_article) }, { "show-selected-article-info", NULL, N_("Show Article Information"), NULL, NULL, G_CALLBACK(do_show_selected_article_info) }, { "read-more", "ICON_READ_MORE", N_("Read _More"), "space", N_("Read More"), G_CALLBACK(do_read_more) }, { "read-less", "ICON_READ_LESS", N_("Read _Back"), "BackSpace", N_("Read Back"), G_CALLBACK(do_read_less) }, { "read-next-unread-group", "ICON_READ_UNREAD_GROUP", N_("Next _Unread Group"), "G", NULL, G_CALLBACK(do_read_next_unread_group) }, { "read-next-group", "ICON_READ_GROUP", N_("Next _Group"), "G", NULL, G_CALLBACK(do_read_next_group) }, { "read-next-unread-article", "ICON_READ_UNREAD_ARTICLE", N_("Next _Unread Article"), "N", N_("Next Unread Article"), G_CALLBACK(do_read_next_unread_article) }, { "read-next-article", NULL, N_("Next _Article"), "N", N_("Next Article"), G_CALLBACK(do_read_next_article) }, { "read-next-watched-article", NULL, N_("Next _Watched Article"), "N", NULL, G_CALLBACK(do_read_next_watched_article) }, { "read-next-unread-thread", "ICON_READ_UNREAD_THREAD", N_("Next Unread _Thread"), "T", N_("Next Unread Thread"), G_CALLBACK(do_read_next_unread_thread) }, { "read-next-thread", NULL, N_("Next Threa_d"), "T", NULL, G_CALLBACK(do_read_next_thread) }, { "read-previous-article", NULL, N_("Pre_vious Article"), "V", NULL, G_CALLBACK(do_read_previous_article) }, { "read-previous-thread", NULL, N_("Previous _Thread"), "V", NULL, G_CALLBACK(do_read_previous_thread) }, { "read-parent-article", NULL, N_("_Parent Article"), "U", NULL, G_CALLBACK(do_read_parent_article) }, { "plonk", NULL, N_("Ignore _Author"), NULL, NULL, G_CALLBACK(do_plonk) }, { "watch-thread", NULL, N_("_Watch Thread"), NULL, NULL, G_CALLBACK(do_watch) }, { "ignore-thread", NULL, N_("_Ignore Thread"), NULL, NULL, G_CALLBACK(do_ignore) }, { "flag-thread", "ICON_FLAGGED", N_("_Toggle Flag On/Off for Thread"), "X", N_("_Toggle Flag On/Off for Thread"), G_CALLBACK(do_flag) }, { "unflag-thread", NULL, N_("_Turn Flag Off for Thread"), "X", N_("_Turn Flag Off for Thread"), G_CALLBACK(do_flag_off) }, { "select-all-flagged", NULL, N_("_Select All Flagged Threads"), "X", N_("_Select All Flagged Threads"), G_CALLBACK(do_mark_all_flagged) }, { "next-flagged", NULL, N_("_Go to Next Flagged Thread"), "plus", N_("_Go to Next Flagged Thread"), G_CALLBACK(do_next_flag) }, { "last-flagged", NULL, N_("_Go to Last Flagged Thread"), "minus", N_("_Go to Last Flagged Thread"), G_CALLBACK(do_last_flag) }, { "invert-selection", NULL, N_("_Invert Selection"), "I", N_("_Invert Selection"), G_CALLBACK(do_invert_selection) }, { "view-article-score", "ICON_SCORE", N_("Edit Article's Watch/Ignore/Score..."), "C", NULL, G_CALLBACK(do_show_score_dialog) }, { "add-article-score", "ICON_SCORE", N_("Add a _Scoring Rule..."), "S", NULL, G_CALLBACK(do_show_new_score_dialog) }, { "cancel-article", NULL, N_("Cance_l Article..."), NULL, NULL, G_CALLBACK(do_cancel_article) }, { "supersede-article", NULL, N_("_Supersede Article..."), NULL, NULL, G_CALLBACK(do_supersede_article) }, { "delete-article", "edit-delete", N_("_Delete Article"), "Delete", NULL, G_CALLBACK(do_delete_article) }, { "clear-article-cache", NULL, N_("Clear Article Cache"), NULL, NULL, G_CALLBACK(do_clear_article_cache) }, { "mark-article-read", "ICON_ARTICLE_READ", N_("_Mark Article as Read"), "M", NULL, G_CALLBACK(do_mark_article_read) }, { "mark-article-unread", "ICON_ARTICLE_UNREAD", N_("Mark Article as _Unread"), "M", NULL, G_CALLBACK(do_mark_article_unread) }, ///TODO create icons for the next two actions { "mark-thread-read", "ICON_ARTICLE_READ", N_("_Mark Thread as Read"), "T", NULL, G_CALLBACK(do_mark_thread_read) }, { "mark-thread-unread", "ICON_ARTICLE_UNREAD", N_("Mark Thread as _Unread"), "T", NULL, G_CALLBACK(do_mark_thread_unread) }, { "post", "ICON_COMPOSE_POST", N_("_Post to Newsgroup"), "P", N_("Post to Newsgroup"), G_CALLBACK(do_post) }, { "followup-to", "ICON_COMPOSE_FOLLOWUP", N_("_Followup to Newsgroup"), "F", N_("Followup to Newsgroup"), G_CALLBACK(do_followup_to) }, { "reply-to", NULL, N_("_Reply to Author in Mail"), "R", NULL, G_CALLBACK(do_reply_to) }, #ifdef HAVE_MANUAL { "pan-manual", NULL, N_("_Contents"), "F1", NULL, G_CALLBACK(do_pan_manual) }, #endif { "pan-web-page", NULL, N_("_Pan Home Page"), NULL, NULL, G_CALLBACK(do_pan_web) }, { "bug-report", NULL, N_("Give _Feedback or Report a Bug..."), NULL, NULL, G_CALLBACK(do_bug_report) }, { "about-pan", "help-about", N_("_About"), NULL, NULL, G_CALLBACK(do_about_pan) }, { "show-sec-dialog", "dialog-password", N_("Edit _SSL Certificates"), NULL, NULL, G_CALLBACK(do_show_sec_dialog) } }; void prefs_toggle_callback_impl (GtkToggleAction * action) { const char * name (gtk_action_get_name (GTK_ACTION(action))); prefs->set_flag (name, gtk_toggle_action_get_active (action)); } const guint n_entries (G_N_ELEMENTS (entries)); GtkToggleActionEntry toggle_entries[] = { { "thread-headers", NULL, N_("_Thread Headers"), NULL, NULL, G_CALLBACK(prefs_toggle_callback_impl), true }, { "wrap-article-body","format-justify-fill", N_("Wrap Article Body" ), "W", NULL, G_CALLBACK(prefs_toggle_callback_impl), false }, { "show-article-sig", "ICON_SHOW_SIGNATURE", N_("Show Article Signature"),"I", NULL, G_CALLBACK(prefs_toggle_callback_impl), false }, { "mute-quoted-text", NULL, N_("Mute _Quoted Text"), "Q", NULL, G_CALLBACK(prefs_toggle_callback_impl), true }, { "show-all-headers", NULL, N_("Show All _Headers in Body Pane"), "H", NULL, G_CALLBACK(prefs_toggle_callback_impl), false }, { "show-smilies-as-graphics", NULL, N_("Show _Smilies as Graphics"), NULL, NULL, G_CALLBACK(prefs_toggle_callback_impl), true }, { "show-text-markup", NULL, N_("Show *Bold*, __Underlined__, and /Italic/"), NULL, NULL, G_CALLBACK(prefs_toggle_callback_impl), true }, { "size-pictures-to-fit", NULL, N_("Size Pictures to _Fit"), NULL, NULL, G_CALLBACK(prefs_toggle_callback_impl), true }, { "monospace-font-enabled", NULL, N_("Use _Monospace Font"), "C", NULL, G_CALLBACK(prefs_toggle_callback_impl), false }, { "focus-on-image", NULL, N_("Set Focus to Images"), NULL, NULL, G_CALLBACK(prefs_toggle_callback_impl), true }, { "highlight-urls", NULL, N_("Highlight _URLs"), NULL, NULL, G_CALLBACK(prefs_toggle_callback_impl), true }, { "work-online", "ICON_ONLINE", N_("_Work Online"), "L", NULL, G_CALLBACK(do_work_online), true }, { "tabbed-layout", "go-jump", N_("_Tabbed Layout"), "Z", NULL, G_CALLBACK(do_layout), false }, { "show-group-pane", NULL, N_("Show Group _Pane"), "1", NULL, G_CALLBACK(do_show_group_pane), true }, { "show-header-pane", NULL, N_("Show Hea_der Pane"), "2", NULL, G_CALLBACK(do_show_header_pane), true }, { "show-body-pane", NULL, N_("Show Bod_y Pane"), "3", NULL, G_CALLBACK(do_show_body_pane), true }, { "show-toolbar", NULL, N_("Show _Toolbar"), NULL, NULL, G_CALLBACK(do_show_toolbar), true }, { "shorten-group-names", "zoom-out", N_("Abbreviate Group Names"), "B", NULL, G_CALLBACK(do_shorten_group_names), false }, { "match-only-read-articles", "ICON_ONLY_READ", N_("Match Only _Read Articles"), NULL, N_("Match Only Read Articles"), G_CALLBACK(do_match_only_read_articles), false }, { "match-only-unread-articles", "ICON_ONLY_UNREAD", N_("Match Only _Unread Articles"), NULL, N_("Match Only Unread Articles"), G_CALLBACK(do_match_only_unread_articles), false }, { "match-only-cached-articles", "ICON_ONLY_CACHED", N_("Match Only _Cached Articles"), NULL, N_("Match Only Cached Articles"), G_CALLBACK(do_match_only_cached_articles), false }, { "match-only-binary-articles", "ICON_ONLY_ATTACHMENTS", N_("Match Only _Complete Articles"), NULL, N_("Match Only Complete Articles"), G_CALLBACK(do_match_only_binary_articles), false }, { "match-only-my-articles", "ICON_ONLY_ME", N_("Match Only _My Articles"), NULL, N_("Match Only My Articles"), G_CALLBACK(do_match_only_my_articles), false }, { "match-only-watched-articles", "ICON_ONLY_WATCHED", N_("Match Only _Watched Articles"), NULL, N_("Match Only Watched Articles"), G_CALLBACK(do_match_only_watched_articles), false }, { "match-watched-articles", NULL, N_("Match Scores of 9999 (_Watched)"), NULL, NULL, G_CALLBACK(do_match_watched_articles), true }, { "match-high-scoring-articles", NULL, N_("Match Scores of 5000...9998 (_High)"), NULL, NULL, G_CALLBACK(do_match_high_scoring_articles), true }, { "match-medium-scoring-articles", NULL, N_("Match Scores of 1...4999 (Me_dium)"), NULL, NULL, G_CALLBACK(do_match_medium_scoring_articles), true }, { "match-normal-scoring-articles", NULL, N_("Match Scores of 0 (_Normal)"), NULL, NULL, G_CALLBACK(do_match_normal_scoring_articles), true }, { "match-low-scoring-articles", NULL, N_("Match Scores of -9998...-1 (_Low)"), NULL, NULL, G_CALLBACK(do_match_low_scoring_articles), true }, { "match-ignored-articles", NULL, N_("Match Scores of -9999 (_Ignored)"), NULL, NULL, G_CALLBACK(do_match_ignored_articles), false }, { "enable-rules", NULL, N_("Enable/Disable All _Rules"), "R", NULL, G_CALLBACK(do_toggle_rules), true } //{"toggle-expand-thread", NULL, N_("Toggle expansion of selected thread"), NULL, NULL, G_CALLBACK(do_toggle_expand_thread), true } }; const guint n_toggle_entries (G_N_ELEMENTS(toggle_entries)); enum { SHOW_ARTICLES, SHOW_THREADS, SHOW_SUBTHREADS, SHOW_N }; static const char * show_strings[SHOW_N] = { "articles", "threads", "subthreads" }; void show_matches_cb (GtkAction*, GtkRadioAction *current) { const int mode (gtk_radio_action_get_current_value (current)); g_assert (0<=mode && modeset_string ("header-pane-show-matching", show_strings[mode]); pan_ui->do_show_matches (Data::ShowType(mode)); } GtkRadioActionEntry match_toggle_entries[] = { { "show-matching-articles", NULL, N_("Show Matching _Articles"), NULL, NULL, Data::SHOW_ARTICLES }, { "show-matching-threads", NULL, N_("Show Matching Articles' _Threads"), NULL, NULL, Data::SHOW_THREADS }, { "show-matching-subthreads", NULL, N_("Show Matching Articles' _Subthreads"), NULL, NULL, Data::SHOW_SUBTHREADS } }; std::map real_toggle_callbacks; /** Intercepts the toggle callbacks to update our prefs object, then routes the event on to the proper callback */ void prefs_toggle_callback (GtkToggleAction * a) { prefs_toggle_callback_impl (a); typedef void (*GtkToggleActionCallback)(GtkToggleAction*); const char * name (gtk_action_get_name (GTK_ACTION(a))); ((GtkToggleActionCallback)(real_toggle_callbacks[name])) (a); } void ensure_tooltip (GtkActionEntry * e) { if (!e->tooltip && e->label) e->tooltip = g_strdup (e->label); } } void pan :: add_actions (PanUI * ui, GtkUIManager * ui_manager, Prefs * p, Data* data) { GtkActionGroup * action_group = _group = gtk_action_group_new ("Actions"); gtk_action_group_set_translation_domain (action_group, NULL); for (size_t i=0;i(it)); it->is_active = prefs->get_flag (it->name, it->is_active); if (it->callback != G_CALLBACK(prefs_toggle_callback_impl)) { real_toggle_callbacks[it->name] = it->callback; it->callback = G_CALLBACK(prefs_toggle_callback); } } const std::string show_str (p->get_string ("header-pane-show-matching", "articles")); int show_mode (SHOW_ARTICLES); for (int i=0; i * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #ifndef _actions_h_ #define _actions_h_ #include #include #include #include #include namespace pan { void add_actions (PanUI*, GtkUIManager*, Prefs*, Data*); } #endif /* __PAN_H__ */ pan-0.162/pan/gui/body-pane.cc000066400000000000000000002134641475412772400160560ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #include "body-pane.h" #include "pad.h" #include "pan/gui/load-icon.h" #include "save-attach-ui.h" #include "tango-colors.h" #include "url.h" #include "xface.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #ifdef HAVE_WEBKIT #include #endif #define FIRST_PICTURE "first-picture" #define FACE_SIZE 48 namespace pan { /*** **** ***/ namespace { GtkWindow *get_window(GtkWidget *w) { return GTK_WINDOW(gtk_widget_get_toplevel(w)); } enum Icons { ICON_SIG_OK, ICON_SIG_FAIL, NUM_ICONS }; struct Icon { char const *pixbuf_file; GdkPixbuf *pixbuf; } icons[NUM_ICONS] = {{"icon_sig_ok.png", nullptr}, {"icon_sig_fail.png", nullptr}}; } // namespace /*** **** ***/ /** *** Pixbuf Cache **/ namespace { class PixbufCache { private: typedef std::pair pixbuf_pair_t; // original, scaled typedef std::map pixbufs_t; pixbufs_t _pixbufs; public: PixbufCache() { } ~PixbufCache() { clear(); } public: void clear() { foreach (pixbufs_t, _pixbufs, it) { g_object_unref(it->second.first); g_object_unref(it->second.second); } _pixbufs.clear(); } public: bool get_pixbuf_at_offset(int offset, GdkPixbuf *&original, GdkPixbuf *&scaled) { if (! _pixbufs.count(offset)) { return false; } pixbuf_pair_t &p(_pixbufs[offset]); original = p.first; scaled = p.second; return true; } void set_pixbuf_at_offset(int offset, GdkPixbuf *original, GdkPixbuf *scaled) { bool const had_old(_pixbufs.count(offset)); pixbuf_pair_t &p(_pixbufs[offset]), old(p); g_object_ref(p.first = original); g_object_ref(p.second = scaled); if (had_old) { g_object_unref(old.first); g_object_unref(old.second); } } }; void delete_pixbuf_cache(gpointer pc) { delete static_cast(pc); } PixbufCache &get_pixbuf_cache(gpointer gp) { static char const *PIXBUF_CACHE("pixbuf-cache"); GObject *o(G_OBJECT(gp)); PixbufCache *pc((PixbufCache *)g_object_get_data(o, PIXBUF_CACHE)); if (! pc) { pc = new PixbufCache(); g_object_set_data_full(o, PIXBUF_CACHE, pc, delete_pixbuf_cache); } return *pc; } bool get_pixbuf_at_offset(gpointer o, int offset, GdkPixbuf *&original, GdkPixbuf *&scaled) { return get_pixbuf_cache(o).get_pixbuf_at_offset(offset, original, scaled); } void set_pixbuf_at_offset(gpointer o, int offset, GdkPixbuf *original, GdkPixbuf *scaled) { get_pixbuf_cache(o).set_pixbuf_at_offset(offset, original, scaled); } void clear_pixbuf_cache(gpointer o) { get_pixbuf_cache(o).clear(); } } // namespace /** *** "fullsize" flag **/ namespace { #define FULLSIZE "fullsize" void set_fullsize_flag(gpointer o, bool b) { g_object_set_data(G_OBJECT(o), FULLSIZE, GINT_TO_POINTER(b)); } bool get_fullsize_flag(gpointer o) { return g_object_get_data(G_OBJECT(o), FULLSIZE) != nullptr; } bool toggle_fullsize_flag(gpointer o) { bool const b(! get_fullsize_flag(o)); set_fullsize_flag(o, b); return b; } } // namespace /** *** Cursors **/ namespace { enum { CURSOR_IBEAM, CURSOR_HREF, CURSOR_ZOOM_IN, CURSOR_ZOOM_OUT, CURSOR_QTY }; GdkCursor **cursors(nullptr); GdkCursor *cursor_current(nullptr); void free_cursors(void) { delete[] cursors; } void create_cursors() { cursors = new GdkCursor *[CURSOR_QTY]; } void init_cursors(GtkWidget *w) { GdkDisplay *display(gtk_widget_get_display(w)); int width, height; GtkIconSize const size(GTK_ICON_SIZE_LARGE_TOOLBAR); GdkPixbuf *pixbuf = gtk_widget_render_icon_pixbuf(w, GTK_STOCK_ZOOM_IN, size); g_object_get(G_OBJECT(pixbuf), "width", &width, "height", &height, nullptr); cursors[CURSOR_ZOOM_IN] = gdk_cursor_new_from_pixbuf(display, pixbuf, width / 2, height / 2); g_object_unref(G_OBJECT(pixbuf)); pixbuf = gtk_widget_render_icon_pixbuf(w, GTK_STOCK_ZOOM_OUT, size); g_object_get(G_OBJECT(pixbuf), "width", &width, "height", &height, nullptr); cursors[CURSOR_ZOOM_OUT] = gdk_cursor_new_from_pixbuf(display, pixbuf, width / 2, height / 2); g_object_unref(G_OBJECT(pixbuf)); cursors[CURSOR_IBEAM] = gdk_cursor_new(GDK_XTERM); cursors[CURSOR_HREF] = gdk_cursor_new(GDK_HAND2); } void set_cursor(GdkWindow *window, GtkWidget *w, int mode) { init_cursors(w); GdkCursor *cursor_new = cursors[mode]; if (cursor_new != cursor_current) { gdk_window_set_cursor(window, cursor_current = cursor_new); g_object_unref(cursor_current); } } void set_cursor_from_iter(GdkWindow *window, GtkWidget *w, GtkTextIter *it) { GtkTextView *text_view(GTK_TEXT_VIEW(w)); GtkTextBuffer *buf(gtk_text_view_get_buffer(text_view)); GtkTextTagTable *tags(gtk_text_buffer_get_tag_table(buf)); GtkTextTag *pix_tag(gtk_text_tag_table_lookup(tags, "pixbuf")); GtkTextTag *url_tag(gtk_text_tag_table_lookup(tags, "url")); bool const in_url(gtk_text_iter_has_tag(it, url_tag)); bool const in_pix(gtk_text_iter_has_tag(it, pix_tag)); bool const fullsize(get_fullsize_flag(buf)); int mode; if (in_pix && fullsize) { mode = CURSOR_ZOOM_OUT; } else if (in_pix) { mode = CURSOR_ZOOM_IN; } else if (in_url) { mode = CURSOR_HREF; } else { mode = CURSOR_IBEAM; } set_cursor(window, w, mode); } } // namespace namespace { GtkTextTag *get_named_tag_from_view(GtkWidget *w, char const *key) { GtkTextView *text_view(GTK_TEXT_VIEW(w)); GtkTextBuffer *buf = gtk_text_view_get_buffer(text_view); GtkTextTagTable *tags = gtk_text_buffer_get_tag_table(buf); return gtk_text_tag_table_lookup(tags, key); } void get_iter_from_event_coords(GtkWidget *w, int x, int y, GtkTextIter *setme) { GtkTextView *text_view(GTK_TEXT_VIEW(w)); gtk_text_view_window_to_buffer_coords( text_view, GTK_TEXT_WINDOW_WIDGET, x, y, &x, &y); gtk_text_view_get_iter_at_location(text_view, setme, x, y); } std::string get_url_from_iter(GtkWidget *w, GtkTextIter *iter) { std::string ret; GtkTextTag *url_tag(get_named_tag_from_view(w, "url")); if (gtk_text_iter_has_tag(iter, url_tag)) { GtkTextIter begin(*iter), end(*iter); if (! gtk_text_iter_begins_tag(&begin, url_tag)) { gtk_text_iter_backward_to_tag_toggle(&begin, nullptr); } gtk_text_iter_forward_to_tag_toggle(&end, nullptr); char *pch = gtk_text_iter_get_text(&begin, &end); if (pch) { ret = pch; g_free(pch); } } return ret; } gboolean motion_notify_event(GtkWidget *w, GdkEventMotion *event, gpointer hover_url) { if (event->window != nullptr) { int x, y; if (event->is_hint) { gdk_window_get_device_position( event->window, event->device, &x, &y, nullptr); } else { x = (int)event->x; y = (int)event->y; } GtkTextIter iter; get_iter_from_event_coords(w, x, y, &iter); set_cursor_from_iter(event->window, w, &iter); *static_cast(hover_url) = get_url_from_iter(w, &iter); } return false; } /* returns a GdkPixbuf of the scaled image. unref it when no longer needed. */ GdkPixbuf *size_to_fit(GdkPixbuf *pixbuf, GtkAllocation const *size) { int const nw(size ? size->width : 0); int const nh(size ? size->height : 0); GdkPixbuf *out(nullptr); if (nw >= 100 && nh >= 100) { int const ow(gdk_pixbuf_get_width(pixbuf)); int const oh(gdk_pixbuf_get_height(pixbuf)); double scale_factor(std::min(nw / (double)ow, nh / (double)oh)); scale_factor = std::min(scale_factor, 1.0); int const scaled_width((int)std::floor(ow * scale_factor + 0.5)); int const scaled_height((int)std::floor(oh * scale_factor + 0.5)); out = gdk_pixbuf_scale_simple( pixbuf, scaled_width, scaled_height, GDK_INTERP_BILINEAR); } if (! out) { g_object_ref(pixbuf); out = pixbuf; } return out; } void resize_picture_at_iter(GtkTextBuffer *buf, GtkTextIter *iter, bool fullsize, GtkAllocation const *size, GtkTextTag *apply_tag) { int const begin_offset(gtk_text_iter_get_offset(iter)); GdkPixbuf *original(nullptr); GdkPixbuf *old_scaled(nullptr); if (! get_pixbuf_at_offset(buf, begin_offset, original, old_scaled)) { return; } GdkPixbuf *new_scaled(size_to_fit(original, (fullsize ? nullptr : size))); int const old_w(gdk_pixbuf_get_width(old_scaled)); int const new_w(gdk_pixbuf_get_width(new_scaled)); int const old_h(gdk_pixbuf_get_height(old_scaled)); int const new_h(gdk_pixbuf_get_height(new_scaled)); if (old_w != new_w || old_h != new_h) { // remove the old.. GtkTextIter old_end(*iter); gtk_text_iter_forward_to_tag_toggle(&old_end, apply_tag); gtk_text_buffer_delete(buf, iter, &old_end); // insert the new.. gtk_text_buffer_insert_pixbuf(buf, iter, new_scaled); gtk_text_buffer_insert(buf, iter, "\n", -1); set_pixbuf_at_offset(buf, begin_offset, original, new_scaled); // and apply the tag. GtkTextIter begin(*iter); gtk_text_iter_set_offset(&begin, begin_offset); gtk_text_buffer_apply_tag(buf, apply_tag, &begin, iter); } g_object_unref(new_scaled); } } // namespace gboolean BodyPane ::mouse_button_pressed_cb(GtkWidget *w, GdkEventButton *e, gpointer p) { return static_cast(p)->mouse_button_pressed(w, e); } gboolean BodyPane ::mouse_button_pressed(GtkWidget *w, GdkEventButton *event) { g_return_val_if_fail(GTK_IS_TEXT_VIEW(w), false); if (event->button == 1 || event->button == 2) { std::string const &url(_hover_url); if (! url.empty()) { /* this is a crude way of making sure that double-click * doesn't open two or three browser windows. */ static time_t last_url_time(0); time_t const this_url_time(time(nullptr)); if (this_url_time != last_url_time) { last_url_time = this_url_time; URL ::open(_prefs, url.c_str()); } } else { // maybe we're zooming in/out on a pic... GtkTextIter iter; GtkTextTag *pix_tag(get_named_tag_from_view(w, "pixbuf")); get_iter_from_event_coords(w, (int)event->x, (int)event->y, &iter); if (gtk_text_iter_has_tag(&iter, pix_tag)) { if (! gtk_text_iter_starts_tag(&iter, pix_tag)) { gtk_text_iter_backward_to_tag_toggle(&iter, pix_tag); } g_assert(gtk_text_iter_starts_tag(&iter, pix_tag)); // percent_x,percent_y reflect where the user clicked in the picture GdkRectangle rec; gtk_text_view_get_iter_location(GTK_TEXT_VIEW(w), &iter, &rec); int buf_x, buf_y; gtk_text_view_window_to_buffer_coords(GTK_TEXT_VIEW(w), GTK_TEXT_WINDOW_WIDGET, (gint)event->x, (gint)event->y, &buf_x, &buf_y); double const percent_x = (buf_x - rec.x) / (double)rec.width; double const percent_y = (buf_y - rec.y) / (double)rec.height; // resize the picture and refresh `iter' int const offset(gtk_text_iter_get_offset(&iter)); GtkTextBuffer *buf(gtk_text_view_get_buffer(GTK_TEXT_VIEW(w))); bool const fullsize(toggle_fullsize_flag(buf)); GtkAllocation aloc; gtk_widget_get_allocation(w, &aloc); // std::cerr<<"457 alloc "<window, w, &iter); // x2,y2 are to position percent_x,percent_y in the middle of the // window. GtkTextMark *mark = gtk_text_buffer_create_mark(buf, nullptr, &iter, true); double const x2 = CLAMP((percent_x + (percent_x - 0.5)), 0.0, 1.0); double const y2 = CLAMP((percent_y + (percent_y - 0.5)), 0.0, 1.0); gtk_text_view_scroll_to_mark(GTK_TEXT_VIEW(w), mark, 0.0, true, x2, y2); gtk_text_buffer_delete_mark(buf, mark); } } } return false; } /*** **** INIT ***/ namespace { GtkTextTag *get_or_create_tag(GtkTextTagTable *table, char const *key) { g_assert(table); g_assert(key && *key); GtkTextTag *tag(gtk_text_tag_table_lookup(table, key)); if (! tag) { tag = gtk_text_tag_new(key); gtk_text_tag_table_add(table, tag); g_object_unref(tag); // table refs it } return tag; } void set_text_buffer_tags(GtkTextBuffer *buffer, Prefs const &p) { PanColors const &colors(PanColors::get()); std::string const fg(p.get_color_str("text-color-fg", colors.def_fg)); std::string const bg(p.get_color_str("text-color-bg", colors.def_bg)); GtkTextTagTable *table = gtk_text_buffer_get_tag_table(buffer); get_or_create_tag(table, "pixbuf"); get_or_create_tag(table, "quote_0"); g_object_set(get_or_create_tag(table, "text"), "foreground", fg.c_str(), "background", bg.c_str(), nullptr); g_object_set( get_or_create_tag(table, "bold"), "weight", PANGO_WEIGHT_BOLD, nullptr); g_object_set( get_or_create_tag(table, "italic"), "style", PANGO_STYLE_ITALIC, nullptr); g_object_set(get_or_create_tag(table, "underline"), "underline", PANGO_UNDERLINE_SINGLE, nullptr); g_object_set( get_or_create_tag(table, "url"), "underline", PANGO_UNDERLINE_SINGLE, "foreground", p.get_color_str("body-pane-color-url", TANGO_SKY_BLUE_DARK).c_str(), "background", p.get_color_str("body-pane-color-url-bg", bg).c_str(), nullptr); g_object_set( get_or_create_tag(table, "quote_1"), "foreground", p.get_color_str("body-pane-color-quote-1", TANGO_CHAMELEON_DARK).c_str(), "background", p.get_color_str("body-pane-color-quote-1-bg", bg).c_str(), nullptr); g_object_set( get_or_create_tag(table, "quote_2"), "foreground", p.get_color_str("body-pane-color-quote-2", TANGO_ORANGE_DARK).c_str(), "background", p.get_color_str("body-pane-color-quote-2-bg", bg).c_str(), nullptr); g_object_set( get_or_create_tag(table, "quote_3"), "foreground", p.get_color_str("body-pane-color-quote-3", TANGO_PLUM_DARK).c_str(), "background", p.get_color_str("body-pane-color-quote-3-bg", bg).c_str(), nullptr); g_object_set( get_or_create_tag(table, "signature"), "foreground", p.get_color_str("body-pane-color-signature", TANGO_SKY_BLUE_LIGHT).c_str(), "background", p.get_color_str("body-pane-color-signature-bg", bg).c_str(), nullptr); } } // namespace /*** **** ***/ namespace { // handle up, down, pgup, pgdown to scroll gboolean text_key_pressed(GtkWidget *w, GdkEventKey *event, gpointer scroll) { gboolean handled(false); g_return_val_if_fail(GTK_IS_TEXT_VIEW(w), false); bool const up = event->keyval == GDK_KEY_Up || event->keyval == GDK_KEY_KP_Up; bool const down = event->keyval == GDK_KEY_Down || event->keyval == GDK_KEY_KP_Down; if (up || down) { handled = true; gtk_text_view_place_cursor_onscreen(GTK_TEXT_VIEW(w)); GtkAdjustment *adj = gtk_scrolled_window_get_vadjustment(GTK_SCROLLED_WINDOW(scroll)); gdouble val = gtk_adjustment_get_value(adj); if (up) { val -= gtk_adjustment_get_step_increment(adj); } else { val += gtk_adjustment_get_step_increment(adj); } val = MAX(val, gtk_adjustment_get_lower(adj)); val = MIN( val, gtk_adjustment_get_upper(adj) - gtk_adjustment_get_page_size(adj)); gtk_adjustment_set_value(adj, val); } return handled; } } // namespace /**** ***** ***** SETTING THE TEXT FROM AN ARTICLE ***** ****/ namespace { bool text_get_show_all_headers() { return false; } /** * Returns the quote tag ("quote_0", "quote_1", etc) appropriate for the line. * The right tag is calculated by adding up the number of quote characters * at the beginning of the line. * * @param utf8_line the line whose quote status we're checking * @param utf8_byte_len the byte length of utf8_line * @return a const string for the line's quote tag. Never nullptr. */ char const *get_quote_tag(TextMassager const *text_massager, char const *utf8_line, int utf8_byte_len) { char const *str = utf8_line; char const *retval = "quote_0"; if (0 < utf8_byte_len && str && *str) { char const *line_end = utf8_line + utf8_byte_len; int depth = 0; // walk past leading spaces while (str != line_end && g_unichar_isspace(g_utf8_get_char(str))) { str = g_utf8_next_char(str); } // count the number of spaces or quote characters for (;;) { if (str == line_end) { break; } else if (text_massager->is_quote_character(g_utf8_get_char(str))) { ++depth; } else if (! g_unichar_isspace(g_utf8_get_char(str))) { break; } str = g_utf8_next_char(str); } if (depth != 0) { switch (depth % 3) { case 1: retval = "quote_1"; break; case 2: retval = "quote_2"; break; case 0: retval = "quote_3"; break; } } } return retval; } typedef std::map pixbufs_t; // don't use this directly -- use get_emoticons() pixbufs_t emoticon_pixbufs; void free_emoticons() { foreach_const (pixbufs_t, emoticon_pixbufs, it) { g_object_unref(it->second); } } pixbufs_t &get_emoticons() { return emoticon_pixbufs; } void create_emoticons() { emoticon_pixbufs[":)"] = load_icon("icon_mozilla_smile.png"); emoticon_pixbufs[":-)"] = load_icon("icon_mozilla_smile.png"); emoticon_pixbufs[";)"] = load_icon("icon_mozilla_wink.png"); emoticon_pixbufs[":("] = load_icon("icon_mozilla_frown.png"); emoticon_pixbufs[":P"] = load_icon("icon_mozilla_tongueout.png"); emoticon_pixbufs[":O"] = load_icon("icon_mozilla_surprised.png"); } enum TagMode { ADD, REPLACE }; void set_section_tag(GtkTextBuffer *buffer, GtkTextIter *start, StringView const &body, StringView const &area, char const *tag, TagMode mode) { // if no alnums, chances are area is a false positive int alnums(0); for (char const *pch(area.begin()), *end(area.end()); pch != end; ++pch) { if (::isalnum(*pch)) { ++alnums; } } if (! alnums) { return; } GtkTextIter mark_start = *start; gtk_text_iter_forward_chars(&mark_start, g_utf8_strlen(body.str, area.str - body.str)); GtkTextIter mark_end = mark_start; gtk_text_iter_forward_chars(&mark_end, g_utf8_strlen(area.str, area.len)); if (mode == REPLACE) { gtk_text_buffer_remove_all_tags(buffer, &mark_start, &mark_end); } gtk_text_buffer_apply_tag_by_name(buffer, tag, &mark_start, &mark_end); } void show_signature(GtkTextBuffer *buffer, GtkTextMark *mark, std::string &body, bool show) { GtkTextTagTable *tags(gtk_text_buffer_get_tag_table(buffer)); if (tags) { GtkTextTag *sig_tag(gtk_text_tag_table_lookup(tags, "signature")); if (sig_tag) { g_object_set(sig_tag, "invisible", ! show, nullptr); } } } void replace_emoticon_text_with_pixbuf(GtkTextBuffer *buffer, GtkTextMark *mark, std::string &body, std::string const &text, GdkPixbuf *pixbuf) { g_assert(! text.empty()); g_assert(pixbuf != nullptr); GtkTextTagTable *tags(gtk_text_buffer_get_tag_table(buffer)); GtkTextTag *url_tag(gtk_text_tag_table_lookup(tags, "url")); size_t const n(text.size()); std::string::size_type pos(0); while (((pos = body.find(text, pos))) != body.npos) { GtkTextIter begin; gtk_text_buffer_get_iter_at_mark(buffer, &begin, mark); gtk_text_iter_forward_chars(&begin, g_utf8_strlen(&body[0], pos)); if (gtk_text_iter_has_tag(&begin, url_tag)) { pos += n; } else { GtkTextIter end(begin); gtk_text_iter_forward_chars(&end, n); gtk_text_buffer_delete(buffer, &begin, &end); body.erase(pos, text.size()); gtk_text_buffer_insert_pixbuf(buffer, &end, pixbuf); body.insert(pos, 1, '?'); // make body.size() match the textbuf's size } } } /** * Appends the specified body into the text buffer. * This function takes care of muting quotes and marking * quoted and URL areas in the GtkTextBuffer. */ void append_text_buffer_nolock(TextMassager const *text_massager, GtkTextBuffer *buffer, StringView const &body_in, bool mute_quotes, bool show_smilies, bool show_sig, bool do_markup, bool do_urls) { g_return_if_fail(buffer != nullptr); g_return_if_fail(GTK_IS_TEXT_BUFFER(buffer)); // mute the quoted text, if desired std::string body; if (mute_quotes) { body = text_massager->mute_quotes(body_in); } else { body.assign(body_in.str, body_in.len); } // insert the text GtkTextIter end; gtk_text_buffer_get_end_iter(buffer, &end); GtkTextMark *mark = gtk_text_buffer_create_mark(buffer, "blah", &end, true); gtk_text_buffer_insert(buffer, &end, body.c_str(), -1); GtkTextIter start; gtk_text_buffer_get_iter_at_mark(buffer, &start, mark); StringView v(body), line; GtkTextIter mark_start(start); // colorize text gtk_text_buffer_apply_tag_by_name(buffer, "text", &mark_start, &end); // find where the signature begins... char const *sig_point(nullptr); int offset(0); if (GNKSA::find_signature_delimiter(v, offset) != GNKSA::SIG_NONE) { sig_point = v.str + offset; } // colorize the quoted text GtkTextIter mark_end; std::string last_quote_tag; bool is_sig(false); char const *last_quote_begin(v.str); while (v.pop_token(line, '\n')) { if (line.empty()) { continue; } if (line.str == sig_point) { is_sig = true; } std::string const quote_tag = is_sig ? "signature" : get_quote_tag(text_massager, line.str, line.len); // if we've changed tags, colorize the previous block if (! last_quote_tag.empty() && quote_tag != last_quote_tag) { mark_end = mark_start; gtk_text_iter_forward_chars( &mark_end, g_utf8_strlen(last_quote_begin, line.str - 1 - last_quote_begin)); gtk_text_buffer_apply_tag_by_name( buffer, last_quote_tag.c_str(), &mark_start, &mark_end); mark_start = mark_end; gtk_text_iter_forward_chars(&mark_start, 1); last_quote_begin = line.str; } last_quote_tag = quote_tag; } // apply the final tag, if there is one */ if (! last_quote_tag.empty()) { gtk_text_buffer_get_end_iter(buffer, &mark_end); gtk_text_buffer_apply_tag_by_name( buffer, last_quote_tag.c_str(), &mark_start, &mark_end); } // apply markup StringView const v_all(body); if (do_markup) { bool is_patch = false; std::set already_processed; StringView v(body), line; while (v.pop_token(line, '\n')) { // if we detect that this message contains a patch, // turn off markup for the rest of the article. if (! is_patch) { is_patch = (line.strstr("--- ") == line.str) || (line.strstr("@@ ") == line.str); } if (is_patch) { continue; } for (;;) { // find the first markup character. // if we've already used it, // or if it was preceeded by something not a space or punctuation, // then keep looking. char const *b(line.strpbrk("_*/")); if (! b) { break; } if (already_processed.count(b) || (b != &line.front() && ! isspace(b[-1]) && ! ispunct(b[-1]))) { line.eat_chars(b + 1 - line.str); continue; } // find the ending corresponding markup character. // if it was followed by something not a space or punctuation, keep // looking. char const *e = b; while ((e = line.strchr(*b, 1 + (e - line.str)))) { if (e == &line.back() || isspace(e[1]) || ispunct(e[1]) || strchr("_*/", e[1])) { break; } } if (e) { already_processed.insert(e); char const *type(nullptr); switch (*b) { case '*': type = "bold"; break; case '_': type = "underline"; break; case '/': type = "italic"; break; } set_section_tag( buffer, &start, v_all, StringView(b, e + 1), type, ADD); } line.eat_chars(b + 1 - line.str); } } } // colorize urls if (do_urls) { StringView area; StringView march(v_all); while ((url_find(march, area))) { // Do no highlight URL in signature when not showing signature if (area.str > sig_point && ! show_sig) { break; } set_section_tag(buffer, &start, v_all, area, "url", REPLACE); march = march.substr(area.str + area.len, nullptr); } } // do this last, since it alters the text instead of just marking it up if (show_smilies) { pixbufs_t &emoticons(get_emoticons()); foreach_const (pixbufs_t, emoticons, it) { replace_emoticon_text_with_pixbuf( buffer, mark, body, it->first, it->second); } } show_signature(buffer, mark, body, show_sig); gtk_text_buffer_delete_mark(buffer, mark); } /** * Generates a GtkPixmap object from a given GMimePart that contains an image. * Used for displaying attached pictures inline. */ GdkPixbuf *get_pixbuf_from_gmime_part(GMimePart *part) { GdkPixbufLoader *l(gdk_pixbuf_loader_new()); GError *err(nullptr); // populate the loader GMimeDataWrapper *wrapper(g_mime_part_get_content(part)); if (wrapper) { GMimeStream *mem_stream(g_mime_stream_mem_new()); g_mime_data_wrapper_write_to_stream(wrapper, mem_stream); GByteArray *buffer(GMIME_STREAM_MEM(mem_stream)->buffer); gsize bytesLeft = buffer->len; guchar *data = buffer->data; // ticket #467446 - workaround gdkpixbuf <= 2.12.x's // jpg loader bug (#494667) by feeding the loader in // smaller chunks while (bytesLeft > 0) { gsize const n = MIN(4096, bytesLeft); gdk_pixbuf_loader_write(l, data, n, &err); if (err) { Log::add_err(err->message); g_clear_error(&err); break; } bytesLeft -= n; data += n; } g_object_unref(mem_stream); } // flush the loader gdk_pixbuf_loader_close(l, &err); if (err) { Log::add_err(err->message); g_clear_error(&err); } // create the pixbuf GdkPixbuf *pixbuf(nullptr); if (! err) { pixbuf = gdk_pixbuf_loader_get_pixbuf(l); } else { Log::add_err(err->message); g_clear_error(&err); } // cleanup if (pixbuf) { g_object_ref(G_OBJECT(pixbuf)); } g_object_unref(G_OBJECT(l)); return pixbuf; } } // namespace void BodyPane ::append_part(GMimeObject *parent, GMimeObject *obj, GtkAllocation *widget_size) { bool is_done(false); // we only need leaf parts.. if (! GMIME_IS_PART(obj)) { return; } GMimePart *part = GMIME_PART(obj); GMimeContentType *type = g_mime_object_get_content_type(GMIME_OBJECT(part)); // decide whether or not this part is a picture bool is_image(g_mime_content_type_is_type(type, "image", "*")); if (! is_image && g_mime_content_type_is_type(type, "application", "octet-stream")) { char const *type, *subtype; mime::guess_part_type_from_filename( g_mime_part_get_filename(part), &type, &subtype); is_image = type && ! strcmp(type, "image"); } // if it's a picture, draw it if (is_image) { GdkPixbuf *original(get_pixbuf_from_gmime_part(part)); bool const fullsize(! _prefs.get_flag("size-pictures-to-fit", true)); GdkPixbuf *scaled(size_to_fit(original, fullsize ? nullptr : widget_size)); if (scaled != nullptr) { GtkTextIter iter; // if this is the first thing in the buffer, precede it with a linefeed. gtk_text_buffer_get_end_iter(_buffer, &iter); if (gtk_text_buffer_get_char_count(_buffer) > 0) { gtk_text_buffer_insert(_buffer, &iter, "\n", -1); } // rembember the location of the first picture. if (gtk_text_buffer_get_mark(_buffer, FIRST_PICTURE) == nullptr) { gtk_text_buffer_create_mark(_buffer, FIRST_PICTURE, &iter, true); } gtk_text_buffer_create_mark(_buffer, FIRST_PICTURE, &iter, true); // add the picture int const begin_offset(gtk_text_iter_get_offset(&iter)); gtk_text_buffer_insert_pixbuf(_buffer, &iter, scaled); gtk_text_buffer_insert(_buffer, &iter, "\n", -1); GtkTextIter iter_begin(iter); gtk_text_iter_set_offset(&iter_begin, begin_offset); // hook onto the tag a reference to the original picture // so that we can resize it later if user resizes the text pane. set_pixbuf_at_offset(_buffer, begin_offset, original, scaled); set_fullsize_flag(_buffer, fullsize); GtkTextTagTable *tags(gtk_text_buffer_get_tag_table(_buffer)); GtkTextTag *tag(gtk_text_tag_table_lookup(tags, "pixbuf")); gtk_text_buffer_apply_tag(_buffer, tag, &iter_begin, &iter); g_object_unref(scaled); g_object_unref(original); is_done = true; } } // or, if it's text, display it else if (g_mime_content_type_is_type(type, "text", "*")) { char const *fallback_charset(_charset.c_str()); char const *p_flowed( g_mime_object_get_content_type_parameter(obj, "format")); bool const flowed(g_strcmp0(p_flowed, "flowed") == 0); std::string str = mime_part_to_utf8(part, fallback_charset); if (! str.empty() && _prefs.get_flag("wrap-article-body", false)) { str = _tm.fill(str, flowed); } bool const do_mute(_prefs.get_flag("mute-quoted-text", false)); bool const do_smilies(_prefs.get_flag("show-smilies-as-graphics", true)); bool const do_markup(_prefs.get_flag("show-text-markup", true)); bool const do_urls(_prefs.get_flag("highlight-urls", true)); bool const do_sig(_prefs.get_flag("show-article-sig", true)); append_text_buffer_nolock( &_tm, _buffer, str, do_mute, do_smilies, do_sig, do_markup, do_urls); is_done = true; } // picture or otherwise, add to list of attachments if (is_image || ! is_done) { char const *filename = g_mime_part_get_filename(part); char *pch = (filename && *filename) ? g_strdup_printf("%s", filename) : g_strdup_printf(_("Unnamed File")); add_attachment_to_toolbar(pch); _attach_names.insert(pch); } } void BodyPane ::foreach_part_cb(GMimeObject *parent, GMimeObject *o, gpointer self) { BodyPane *pane = static_cast(self); GtkWidget *w(pane->_text); GtkAllocation aloc; gtk_widget_get_allocation(w, &aloc); pane->append_part(parent, o, &aloc); } /*** **** HEADERS ***/ namespace { void add_bold_header_value(std::string &s, GMimeMessage *message, char const *key, char const *fallback_charset) { char const *val( message ? g_mime_object_get_header((GMimeObject *)message, key) : ""); std::string const utf8_val(header_to_utf8(val, fallback_charset)); char *e(nullptr); if (strcmp(key, "From")) { e = g_markup_printf_escaped("%s", utf8_val.c_str()); } else { StringView const v = GNKSA ::get_short_author_name(utf8_val); e = g_markup_printf_escaped("%s", v.to_string().c_str()); } s += e; g_free(e); } size_t add_header_line(std::string &s, char const *key_i18n, char const *key, char const *val, char const *fallback_charset) { char *e; e = g_markup_printf_escaped("%s: ", key_i18n); s += e; g_free(e); std::string const utf8_val(header_to_utf8(val, fallback_charset)); e = g_markup_printf_escaped("%s\n", utf8_val.c_str()); s += e; size_t const retval(g_utf8_strlen(key, -1) + g_utf8_strlen(utf8_val.c_str(), -1) + 2); g_free(e); return retval; } size_t add_header_line(std::string &s, GMimeMessage *msg, char const *key_i18n, char const *key, char const *fallback_charset) { char const *val(msg ? g_mime_object_get_header((GMimeObject *)msg, key) : ""); return add_header_line(s, key_i18n, key, val, fallback_charset); } } // namespace void BodyPane ::set_text_from_message(GMimeMessage *message) { char const *fallback_charset(_charset.empty() ? nullptr : _charset.c_str()); // mandatory headers... std::string s; size_t w(0), l(0); l = add_header_line(s, message, _("Subject"), "Subject", fallback_charset); w = std::max(w, l); l = add_header_line(s, message, _("From"), "From", fallback_charset); w = std::max(w, l); l = add_header_line(s, message, _("Date"), "Date", fallback_charset); w = std::max(w, l); // conditional headers... if (message) { StringView const newsgroups( g_mime_object_get_header((GMimeObject *)message, "Newsgroups")); if (newsgroups.strchr(',')) { l = add_header_line( s, message, _("Newsgroups"), "Newsgroups", fallback_charset); w = std::max(w, l); } StringView const user_agent( g_mime_object_get_header((GMimeObject *)message, "User-Agent")); if (! user_agent.empty()) { l = add_header_line( s, message, _("User-Agent"), "User-Agent", fallback_charset); w = std::max(w, l); } StringView const x_newsreader( g_mime_object_get_header((GMimeObject *)message, "X-Newsreader")); if (! x_newsreader.empty()) { l = add_header_line( s, message, _("User-Agent"), "X-Newsreader", fallback_charset); w = std::max(w, l); } StringView const x_mailer( g_mime_object_get_header((GMimeObject *)message, "X-Mailer")); if (! x_mailer.empty()) { l = add_header_line( s, message, _("User-Agent"), "X-Mailer", fallback_charset); w = std::max(w, l); } StringView const followup_to( g_mime_object_get_header((GMimeObject *)message, "Followup-To")); if (! followup_to.empty() && (followup_to != newsgroups)) { l = add_header_line( s, message, _("Followup-To"), "Followup-To", fallback_charset); w = std::max(w, l); } StringView const reply_to( g_mime_object_get_header((GMimeObject *)message, "Reply-To")); if (! reply_to.empty()) { StringView const from( g_mime_object_get_header((GMimeObject *)message, "From")); StringView f_addr, f_name, rt_addr, rt_name; GNKSA ::do_check_from(from, f_addr, f_name, false); GNKSA ::do_check_from(reply_to, rt_addr, rt_name, false); if (f_addr != rt_addr) { l = add_header_line( s, message, _("Reply-To"), "Reply-To", fallback_charset); w = std::max(w, l); } } } s.resize(std::max((size_t)0, s.size() - 1)); // remove trailing linefeed gtk_label_set_markup(GTK_LABEL(_headers), s.c_str()); // set the x-face... gtk_image_clear(GTK_IMAGE(_xface)); char const *pch = message ? g_mime_object_get_header((GMimeObject *)message, "X-Face") : nullptr; if (pch && gtk_widget_get_window(_xface)) { gtk_widget_set_size_request(_xface, FACE_SIZE, FACE_SIZE); GdkPixbuf *pixbuf = nullptr; pixbuf = pan_gdk_pixbuf_create_from_x_face(pch); gtk_image_set_from_pixbuf(GTK_IMAGE(_xface), pixbuf); g_object_unref(pixbuf); } else { gtk_widget_set_size_request(_xface, 0, FACE_SIZE); } // set the face gtk_image_clear(GTK_IMAGE(_face)); pch = message ? g_mime_object_get_header((GMimeObject *)message, "Face") : nullptr; if (pch && gtk_widget_get_window(_face)) { gtk_widget_set_size_request(_face, FACE_SIZE, FACE_SIZE); GMimeEncoding dec; g_mime_encoding_init_decode(&dec, GMIME_CONTENT_ENCODING_BASE64); guchar *buf = new guchar[strlen(pch)]; int len = g_mime_encoding_step(&dec, pch, strlen(pch), (char *)buf); GdkPixbufLoader *pl = gdk_pixbuf_loader_new_with_type("png", nullptr); gdk_pixbuf_loader_write(pl, buf, len, nullptr); gdk_pixbuf_loader_close(pl, nullptr); GdkPixbuf *pixbuf = gdk_pixbuf_loader_get_pixbuf(pl); gtk_image_set_from_pixbuf(GTK_IMAGE(_face), pixbuf); g_object_unref(pl); delete[] buf; } else { gtk_widget_set_size_request(_face, 0, FACE_SIZE); } // set the terse headers... s.clear(); add_bold_header_value(s, message, "Subject", fallback_charset); s += _(" from "); add_bold_header_value(s, message, "From", fallback_charset); s += _(" at "); add_bold_header_value(s, message, "Date", fallback_charset); gtk_label_set_markup(GTK_LABEL(_terse), s.c_str()); // clear the text buffer... GtkTextIter start, end; gtk_text_buffer_get_bounds(_buffer, &start, &end); gtk_text_buffer_delete(_buffer, &start, &end); if (gtk_text_buffer_get_mark(_buffer, FIRST_PICTURE) != nullptr) { gtk_text_buffer_delete_mark_by_name(_buffer, FIRST_PICTURE); } clear_pixbuf_cache(_buffer); // maybe add the headers bool const do_show_headers(_prefs.get_flag("show-all-headers", false)); if (message && do_show_headers) { char *headers(g_mime_object_get_headers((GMimeObject *)message, nullptr)); GtkTextIter end; gtk_text_buffer_get_end_iter(_buffer, &end); StringView line, v(headers); while (v.pop_token(line, '\n')) { std::string const h(header_to_utf8(line, fallback_charset)); gtk_text_buffer_insert(_buffer, &end, h.c_str(), h.size()); gtk_text_buffer_insert(_buffer, &end, "\n", 1); } gtk_text_buffer_insert(_buffer, &end, "\n", 1); g_free(headers); } clear_attachments(); // FIXME: need to set a mark here so that when user hits follow-up, // the all-headers don't get included in the followup // set the text buffer... if (message) { g_mime_message_foreach(message, foreach_part_cb, this); } // set the html view GtkTextBuffer *buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(_text)); GtkTextIter _start, _end; gtk_text_buffer_get_bounds(buffer, &_start, &_end); #ifdef HAVE_WEBKIT char *buf(gtk_text_buffer_get_text(buffer, &_start, &_end, false)); if (buf) { set_html_text(buf); } #endif // if there was a picture, scroll to it. // otherwise scroll to the top of the body. GtkTextMark *mark = gtk_text_buffer_get_mark(_buffer, FIRST_PICTURE); if (mark && _prefs.get_flag("focus-on-image", true)) { gtk_text_view_scroll_to_mark( GTK_TEXT_VIEW(_text), mark, 0.0, true, 0.0, 0.0); } else { GtkTextIter iter; gtk_text_buffer_get_start_iter(_buffer, &iter); gtk_text_view_scroll_to_iter( GTK_TEXT_VIEW(_text), &iter, 0.0, true, 0.0, 0.0); } } void BodyPane ::refresh() { set_text_from_message(_message); } #ifdef HAVE_GMIME_CRYPTO gboolean BodyPane ::on_verbose_tooltip_cb(GtkWidget *widget, gint x, gint y, gboolean keyboard_tip, GtkTooltip *tooltip, gpointer data) { BodyPane *pane = static_cast(data); if (! pane) { return false; } gtk_tooltip_set_icon_from_stock( tooltip, GTK_STOCK_DIALOG_INFO, GTK_ICON_SIZE_DIALOG); GPGDecErr &err = pane->_gpgerr; GPGSignersInfo &info = err.signers; if (err.no_sigs) { return false; } if (info.signers.empty()) { return false; } EvolutionDateMaker ed; char buf[2048]; std::pair name_and_email = get_email_address(info.signers[0].name); g_snprintf(buf, sizeof(buf), _("This is a PGP-Signed message.\n\n" "Signer: %s ('%s')\n" "Valid until: %s\n" "Created on: %s"), name_and_email.first.c_str(), name_and_email.second.c_str(), (info.signers[0].never_expires ? _("always") : ed.get_date_string(info.signers[0].expires)), ed.get_date_string(info.signers[0].created)); gtk_tooltip_set_markup(tooltip, buf); return true; } #endif void BodyPane ::set_article(const Article &a) { _article = a; if (_message) { g_object_unref(_message); } #ifdef HAVE_GMIME_CRYPTO _gpgerr.clear(); _message = _cache.get_message(_article.get_part_mids(), _gpgerr); #else _message = _cache.get_message(_article.get_part_mids()); #endif refresh(); set_cleared(false); _data.mark_read(_article); } void BodyPane ::clear() { if (_message) { g_object_unref(_message); } _message = nullptr; set_cleared(true); refresh(); } void BodyPane ::select_all() { GtkTextIter start, end; gtk_text_buffer_get_bounds(_buffer, &start, &end); gtk_text_buffer_select_range(_buffer, &start, &end); } void BodyPane ::rot13_selected_text() { GtkTextIter start, end; if (gtk_text_buffer_get_selection_bounds(_buffer, &start, &end)) { // replace the range with a rot13'ed copy. gchar *pch = gtk_text_buffer_get_text(_buffer, &start, &end, false); size_t const len = strlen(pch); TextMassager ::rot13_inplace(pch); gtk_text_buffer_delete(_buffer, &start, &end); gtk_text_buffer_insert(_buffer, &end, pch, len); g_free(pch); // resync selection. // since gtk_text_buffer_insert() invalided start, we rebuild it first. start = end; gtk_text_iter_backward_chars(&start, len); gtk_text_buffer_select_range(_buffer, &start, &end); } } /*** **** ***/ gboolean BodyPane ::expander_activated_idle(gpointer self_gpointer) { BodyPane *self(static_cast(self_gpointer)); GtkExpander *ex(GTK_EXPANDER(self->_expander)); bool const expanded = gtk_expander_get_expanded(ex); gtk_expander_set_label_widget(ex, expanded ? self->_verbose : self->_terse); self->_prefs.set_flag("body-pane-headers-expanded", expanded); return false; } void BodyPane ::expander_activated_cb(GtkExpander *, gpointer self_gpointer) { g_idle_add(expander_activated_idle, self_gpointer); } void BodyPane ::verbose_clicked_cb(GtkWidget *w, GdkEvent *event, gpointer self_gpointer) { BodyPane *self(static_cast(self_gpointer)); GtkExpander *ex(GTK_EXPANDER(self->_expander)); gtk_expander_set_expanded(ex, ! gtk_expander_get_expanded(ex)); g_idle_add(expander_activated_idle, self_gpointer); } void BodyPane ::refresh_scroll_visible_state() { GtkScrolledWindow *w(GTK_SCROLLED_WINDOW(_scroll)); GtkAdjustment *adj = gtk_scrolled_window_get_hadjustment(w); _hscroll_visible = gtk_adjustment_get_page_size(adj) < gtk_adjustment_get_upper(adj); adj = gtk_scrolled_window_get_vadjustment(w); _vscroll_visible = gtk_adjustment_get_page_size(adj) < gtk_adjustment_get_upper(adj); } // show*_cb exists to ensure that _hscroll_visible and _vscroll_visible // are initialized properly when the body pane becomes shown onscreen. gboolean BodyPane ::show_idle_cb(gpointer pane) { static_cast(pane)->refresh_scroll_visible_state(); return false; } void BodyPane ::show_cb(GtkWidget *w G_GNUC_UNUSED, gpointer pane) { g_idle_add(show_idle_cb, pane); } namespace { guint text_size_allocated_idle_tag(0); } gboolean BodyPane ::text_size_allocated_idle_cb(gpointer pane) { static_cast(pane)->text_size_allocated_idle(); text_size_allocated_idle_tag = 0; return false; } void BodyPane ::text_size_allocated_idle() { // prevent oscillation bool const old_h(_hscroll_visible); bool const old_v(_vscroll_visible); refresh_scroll_visible_state(); if ((old_h != _hscroll_visible) || (old_v != _vscroll_visible)) { return; } // get the resize flag... GtkTextBuffer *buf(gtk_text_view_get_buffer(GTK_TEXT_VIEW(_text))); bool const fullsize(get_fullsize_flag(buf)); // get the start point... GtkTextIter iter; gtk_text_buffer_get_start_iter(buf, &iter); // walk through the buffer looking for pictures to resize GtkTextTag *tag(get_named_tag_from_view(_text, "pixbuf")); GtkAllocation aloc; for (;;) { if (gtk_text_iter_begins_tag(&iter, tag)) { gtk_widget_get_allocation(_text, &aloc); // std::cerr<<"1449 alloc "<(pane)->copy_url(); } void BodyPane ::copy_url() { gtk_clipboard_set_text(gtk_clipboard_get(GDK_SELECTION_CLIPBOARD), _hover_url.c_str(), _hover_url.size()); } void BodyPane ::populate_popup_cb(GtkTextView *v, GtkMenu *m, gpointer pane) { static_cast(pane)->populate_popup(v, m); } void BodyPane ::populate_popup(GtkTextView *v G_GNUC_UNUSED, GtkMenu *m) { // menu separator comes first. GtkWidget *mi = gtk_menu_item_new(); gtk_widget_show(mi); gtk_menu_shell_prepend(GTK_MENU_SHELL(m), mi); // then, on top of it, the suggestions menu. bool const copy_url_enabled = ! _hover_url.empty(); mi = gtk_menu_item_new_with_mnemonic(_("Copy _URL")); g_signal_connect(mi, "activate", G_CALLBACK(copy_url_cb), this); gtk_widget_set_sensitive(mi, copy_url_enabled); gtk_widget_show_all(mi); gtk_menu_shell_prepend(GTK_MENU_SHELL(m), mi); } namespace { // This function can be triggered: // - read a post with an attachment // - in message body, bottom left, right click on the icon below "Attachments" static gboolean attachment_clicked_cb(GtkWidget *w, GdkEvent *event, gpointer p) { BodyPane *bp = static_cast(p); gchar const *fn = (char *)g_object_get_data(G_OBJECT(w), "filename"); if (! fn) { return TRUE; } bp->_current_attachment = fn; if (event->type == GDK_BUTTON_PRESS && event->button.button == 3) { gtk_menu_popup_at_pointer(GTK_MENU(bp->_menu), event); } return TRUE; } } // namespace void BodyPane ::menu_clicked(MenuSelection const &ms) { std::vector
copies; copies.push_back(_article); GroupPrefs _group_prefs; SaveAttachmentsDialog *dialog = new SaveAttachmentsDialog( _prefs, _group_prefs, _data, _data, _cache, _data, _queue, get_window(_root), _header_pane->get_group(), copies, ms == MENU_SAVE_ALL ? TaskArticle::SAVE_ALL : TaskArticle::SAVE_AS, _current_attachment); gtk_widget_show(dialog->root()); } void BodyPane ::menu_clicked_as_cb(GtkWidget *w, gpointer ptr) { BodyPane *p = static_cast(ptr); if (! p) { return; } p->menu_clicked(MENU_SAVE_AS); } void BodyPane ::menu_clicked_all_cb(GtkWidget *w, gpointer ptr) { BodyPane *p = static_cast(ptr); if (! p) { return; } p->menu_clicked(MENU_SAVE_ALL); } GtkWidget *BodyPane ::new_attachment(char const *filename) { if (! filename) { return nullptr; } GtkWidget *w = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); GtkWidget *attachment = gtk_label_new(filename); GtkWidget *image = gtk_image_new_from_stock(GTK_STOCK_FILE, GTK_ICON_SIZE_MENU); gtk_label_set_selectable(GTK_LABEL(attachment), true); GtkWidget *event_box = gtk_event_box_new(); gtk_container_add(GTK_CONTAINER(event_box), image); g_object_set_data(G_OBJECT(event_box), "filename", (gpointer)filename); gtk_box_pack_start(GTK_BOX(w), event_box, false, false, 0); gtk_box_pack_start(GTK_BOX(w), attachment, false, false, 0); g_signal_connect( event_box, "button_press_event", G_CALLBACK(attachment_clicked_cb), this); return w; } void BodyPane ::clear_attachments() { _cur_col = 0; _cur_row = 0; _attachments = 0; _current_attachment = nullptr; { gtk_widget_set_no_show_all(_att_box, TRUE); gtk_widget_hide(_att_box); gtk_container_remove(GTK_CONTAINER(_att_box), _att_toolbar); _att_toolbar = nullptr; (void)create_attachments_toolbar(_att_box); } } /// FIXME : shows only half the icon on gtk2+, gtk3+ works fine. hm.... void BodyPane ::add_attachment_to_toolbar(char const *fn) { if (! fn) { return; } GtkWidget *w = new_attachment(fn); // gtk_widget_set_size_request(w, -1, 32); ++_attachments; if (_attachments % 4 == 0 && _attachments != 0) { gtk_grid_insert_row(GTK_GRID(_att_toolbar), ++_cur_row); _cur_col = 0; } gtk_grid_attach(GTK_GRID(_att_toolbar), w, _cur_col++, _cur_row, 1, 1); gtk_widget_set_no_show_all(_att_box, FALSE); gtk_widget_show_all(_att_box); } #ifdef HAVE_WEBKIT void BodyPane ::set_html_text(const char *text) { webkit_web_view_load_string( WEBKIT_WEB_VIEW(_web_view), text, nullptr, nullptr, ""); } #endif GtkWidget *BodyPane ::create_attachments_toolbar(GtkWidget *box) { _cur_col = 0; _cur_row = 0; GtkWidget *w; w = _att_toolbar = gtk_grid_new(); gtk_grid_insert_row(GTK_GRID(w), 0); gtk_grid_set_column_spacing(GTK_GRID(w), 3); gtk_grid_set_row_spacing(GTK_GRID(w), 4); gtk_container_add(GTK_CONTAINER(box), w); return box; } /*** **** ***/ BodyPane ::BodyPane(Data &data, ArticleCache &cache, Prefs &prefs, GroupPrefs &gp, Queue &q, HeaderPane *hp) : _prefs(prefs), _group_prefs(gp), _queue(q), _header_pane(hp), _data(data), _cache(cache), #ifdef HAVE_WEBKIT _web_view(webkit_web_view_new()), #endif _hscroll_visible(false), _vscroll_visible(false), _message(nullptr), #ifdef HAVE_GMIME_CRYPTO // _gpgerr(GPG_DECODE), #endif _attachments(0), _cleared(true), _current_attachment(nullptr) { GtkWidget *w, *l, *hbox; for (guint i = 0; i < NUM_ICONS; ++i) { icons[i].pixbuf = load_icon(icons[i].pixbuf_file); } create_cursors(); create_emoticons(); // menu for popup menu for attachments _menu = gtk_menu_new(); l = gtk_menu_item_new_with_label(_("Save Attachment As...")); g_signal_connect(l, "activate", G_CALLBACK(menu_clicked_as_cb), this); gtk_menu_shell_append(GTK_MENU_SHELL(_menu), l); l = gtk_menu_item_new_with_label(_("Save All Attachments")); _selection = MENU_SAVE_ALL; g_signal_connect(l, "activate", G_CALLBACK(menu_clicked_all_cb), this); gtk_menu_shell_append(GTK_MENU_SHELL(_menu), l); gtk_widget_show_all(_menu); GtkWidget *vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); // about this expander... getting the ellipsis to work is a strange process. // once you turn ellipsize on, the expander tries to make its label as narrow // as it can and just have the three "..."s. So gtk_label_set_width_chars // is used to force labels to want to be the right size... but then they // never ellipsize. But, if we start with gtk_widget_set_size_request() to // tell the expander that it _wants_ to be very small, then it will still take // extra space given to it by its parent without asking for enough size to // fit the entire label. w = _expander = gtk_expander_new(nullptr); gtk_widget_set_size_request(w, 50, -1); g_signal_connect(w, "activate", G_CALLBACK(expander_activated_cb), this); gtk_box_pack_start(GTK_BOX(vbox), w, false, false, 0); gtk_box_pack_start(GTK_BOX(vbox), gtk_separator_new(GTK_ORIENTATION_HORIZONTAL), false, false, 0); _terse = gtk_label_new("Expander"); g_object_ref_sink(G_OBJECT(_terse)); gtk_label_set_xalign(GTK_LABEL(_terse), 0.0f); gtk_label_set_yalign(GTK_LABEL(_terse), 0.5f); gtk_label_set_use_markup(GTK_LABEL(_terse), true); gtk_label_set_selectable(GTK_LABEL(_terse), true); gtk_label_set_ellipsize(GTK_LABEL(_terse), PANGO_ELLIPSIZE_MIDDLE); gtk_widget_show(_terse); g_signal_connect( _terse, "button-press-event", G_CALLBACK(verbose_clicked_cb), this); hbox = _verbose = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); g_object_ref_sink(G_OBJECT(_verbose)); w = _headers = gtk_label_new("Headers"); gtk_label_set_selectable(GTK_LABEL(_headers), TRUE); gtk_label_set_xalign(GTK_LABEL(_headers), 0.0f); gtk_label_set_yalign(GTK_LABEL(_headers), 0.5f); gtk_label_set_ellipsize(GTK_LABEL(w), PANGO_ELLIPSIZE_MIDDLE); gtk_label_set_use_markup(GTK_LABEL(w), true); gtk_box_pack_start(GTK_BOX(hbox), w, true, true, PAD_SMALL); w = _xface = gtk_image_new(); gtk_widget_set_size_request(w, 0, FACE_SIZE); gtk_box_pack_start(GTK_BOX(hbox), w, false, false, PAD_SMALL); w = _face = gtk_image_new(); gtk_widget_set_size_request(w, 0, FACE_SIZE); gtk_box_pack_start(GTK_BOX(hbox), w, false, false, PAD_SMALL); gtk_widget_show_all(_verbose); g_signal_connect( _verbose, "button-press-event", G_CALLBACK(verbose_clicked_cb), this); #ifdef HAVE_GMIME_CRYPTO gtk_widget_set_has_tooltip(_verbose, true); g_signal_connect( _verbose, "query-tooltip", G_CALLBACK(on_verbose_tooltip_cb), this); #endif // setup _text = gtk_text_view_new(); refresh_fonts(); gtk_widget_add_events(_text, GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK); gtk_container_set_border_width(GTK_CONTAINER(_text), PAD_SMALL); gtk_text_view_set_editable(GTK_TEXT_VIEW(_text), false); gtk_text_view_set_cursor_visible(GTK_TEXT_VIEW(_text), false); _scroll = gtk_scrolled_window_new(nullptr, nullptr); gtk_scrolled_window_set_policy( GTK_SCROLLED_WINDOW(_scroll), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_container_add(GTK_CONTAINER(_scroll), _text); gtk_widget_show_all(vbox); gtk_box_pack_start(GTK_BOX(vbox), _scroll, true, true, 0); // add a toolbar for attachments _att_box = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); GtkWidget *att_label = gtk_label_new(_("Attachments:")); gtk_misc_set_padding(GTK_MISC(att_label), PAD_SMALL, 0); gtk_label_set_xalign(GTK_LABEL(att_label), 0.0f); gtk_label_set_yalign(GTK_LABEL(att_label), 0.0f); gtk_box_pack_start(GTK_BOX(_att_box), gtk_separator_new(GTK_ORIENTATION_HORIZONTAL), false, false, 0); gtk_box_pack_start(GTK_BOX(_att_box), att_label, false, false, 0); gtk_box_pack_start( GTK_BOX(vbox), create_attachments_toolbar(_att_box), false, false, 0); gtk_box_pack_start(GTK_BOX(vbox), gtk_separator_new(GTK_ORIENTATION_HORIZONTAL), false, false, 0); // set up the buffer tags _buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(_text)); set_text_buffer_tags(_buffer, _prefs); set_text_from_message(nullptr); bool const expanded(_prefs.get_flag("body-pane-headers-expanded", true)); gtk_expander_set_expanded(GTK_EXPANDER(_expander), expanded); expander_activated_idle(this); #ifdef HAVE_WEBKIT w = gtk_notebook_new(); GtkNotebook *n(GTK_NOTEBOOK(w)); gtk_notebook_append_page(n, vbox, gtk_label_new(_("Text View"))); // add scroll to html GtkWidget *scroll = gtk_scrolled_window_new(nullptr, nullptr); gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(scroll), GTK_SHADOW_IN); gtk_scrolled_window_set_policy( GTK_SCROLLED_WINDOW(scroll), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_container_add(GTK_CONTAINER(scroll), _web_view); gtk_notebook_append_page(n, scroll, gtk_label_new(_("HTML View"))); #else w = vbox; #endif _root = w; _prefs.add_listener(this); // listen for user interaction g_signal_connect( _text, "motion_notify_event", G_CALLBACK(motion_notify_event), &_hover_url); g_signal_connect( _text, "button_press_event", G_CALLBACK(mouse_button_pressed_cb), this); g_signal_connect( _text, "key_press_event", G_CALLBACK(text_key_pressed), _scroll); g_signal_connect( _text, "size_allocate", G_CALLBACK(text_size_allocated), this); g_signal_connect( _text, "populate_popup", G_CALLBACK(populate_popup_cb), this); g_signal_connect(_root, "show", G_CALLBACK(show_cb), this); gtk_widget_show_all(_root); } BodyPane ::~BodyPane() { _prefs.remove_listener(this); g_object_unref(_verbose); g_object_unref(_terse); if (_message) { g_object_unref(_message); } for (int i = 0; i < NUM_ICONS; ++i) { g_object_unref(icons[i].pixbuf); } foreach (std::set, _attach_names, it) { g_free(*it); } // store last opened message in prefs _prefs.set_string("last-opened-msg", get_cleared() ? "" : get_message_id().to_view()); free_emoticons(); free_cursors(); } namespace { int const smooth_scrolling_speed(10); void sylpheed_textview_smooth_scroll_do(GtkAdjustment *vadj, gfloat old_value, gfloat new_value, int step) { bool const down(old_value < new_value); int const change_value = (int)(down ? new_value - old_value : old_value - new_value); for (int i = step; i <= change_value; i += step) { gtk_adjustment_set_value(vadj, old_value + (down ? i : -i)); } gtk_adjustment_set_value(vadj, new_value); } } // namespace bool BodyPane ::read_more_or_less(bool more) { GtkWidget *parent = gtk_widget_get_parent(_text); GtkAdjustment *v = gtk_scrolled_window_get_vadjustment(GTK_SCROLLED_WINDOW(parent)); // figure out how far we scroll double const v_value = gtk_adjustment_get_value(v); double const v_upper = gtk_adjustment_get_upper(v); double const v_lower = gtk_adjustment_get_lower(v); double const v_page_size = gtk_adjustment_get_page_size(v); int const arbitrary_font_height_pixels_hack(18); float const inc(v_page_size - arbitrary_font_height_pixels_hack); gfloat const val( CLAMP(v_value + (more ? inc : -inc), v_lower, MAX(v_upper, v_page_size) - MIN(v_upper, v_page_size))); // if we can scroll, do so. bool handled(false); if (v_upper >= v_page_size && val != v_value) { if (_prefs.get_flag("smooth-scrolling", true)) { sylpheed_textview_smooth_scroll_do( v, v_value, val, smooth_scrolling_speed); } else { gtk_adjustment_set_value(v, val); } handled = true; } return handled; } namespace { // (1) strip redundant leading Re: and RE: // (2) ensure the remaining Re: has a lowercase e std::string normalize_subject_re(StringView const &v_in) { StringView v(v_in), prev(v_in); while (! v.empty()) { v.ltrim(); StringView tmp(v); if (tmp.strstr("Re:") == tmp.str) { tmp.eat_chars(3); } else if (v.strstr("RE:") == tmp.str) { tmp.eat_chars(3); } else { break; } prev = v; v = tmp; } std::string ret(prev.str, prev.len); if (! ret.find("RE:")) // force lowercase 'e' { ret.replace(0, 3, "Re:"); } return ret; } std::string get_header(GMimeMessage *msg, char const *key, char const *fallback_charset_1, char const *fallback_charset_2) { StringView const v(g_mime_object_get_header((GMimeObject *)msg, key)); std::string s; if (! v.empty()) { s = header_to_utf8(v, fallback_charset_1, fallback_charset_2); } return s; } struct ForeachPartData { std::string fallback_charset; std::string body; }; void get_utf8_body_foreach_part(GMimeObject * /*parent*/, GMimeObject *o, gpointer user_data) { GMimePart *part; GMimeContentType *type = g_mime_object_get_content_type(o); bool const is_text(g_mime_content_type_is_type(type, "text", "*")); if (is_text) { part = GMIME_PART(o); ForeachPartData *data(static_cast(user_data)); data->body += mime_part_to_utf8(part, data->fallback_charset.c_str()); } } std::string get_utf8_body(GMimeMessage *source, char const *fallback_charset) { ForeachPartData tmp; if (fallback_charset) { tmp.fallback_charset = fallback_charset; } if (source) { g_mime_message_foreach(source, get_utf8_body_foreach_part, &tmp); } return tmp.body; } } // namespace GMimeMessage *BodyPane ::create_followup_or_reply(bool is_reply) { GMimeMessage *msg(nullptr); if (_message) { msg = g_mime_message_new(false); GMimeObject *msg_obj = (GMimeObject *)msg; GMimeObject *_message_obj = (GMimeObject *)_message; // fallback character encodings char const *group_charset(_charset.c_str()); GMimeContentType *type( g_mime_object_get_content_type(GMIME_OBJECT(_message))); char const *message_charset( type ? g_mime_content_type_get_parameter(type, "charset") : nullptr); /// /// HEADERS /// // To:, Newsgroups: std::string const from( get_header(_message, "From", message_charset, group_charset)); std::string const newsgroups( get_header(_message, "Newsgroups", message_charset, group_charset)); std::string const fup_to( get_header(_message, "Followup-To", message_charset, group_charset)); std::string const reply_to( get_header(_message, "Reply-To", message_charset, group_charset)); if (is_reply || fup_to == "poster") { std::string const &to(reply_to.empty() ? from : reply_to); pan_g_mime_message_add_recipients_from_string( msg, GMIME_ADDRESS_TYPE_TO, to.c_str()); } else { std::string const &groups(fup_to.empty() ? newsgroups : fup_to); g_mime_object_append_header( (GMimeObject *)msg, "Newsgroups", groups.c_str(), nullptr); } // Subject: StringView v = g_mime_object_get_header(_message_obj, "Subject"); std::string h = header_to_utf8(v, message_charset, group_charset); std::string val(normalize_subject_re(h)); if (val.find("Re:") != 0) // add "Re: " if we don't have one { val.insert(0, "Re: "); } g_mime_message_set_subject(msg, val.c_str(), nullptr); // attribution lines char const *cpch = g_mime_object_get_header(_message_obj, "From"); h = header_to_utf8(cpch, message_charset, group_charset); g_mime_object_append_header( msg_obj, "X-Draft-Attribution-Author", h.c_str(), nullptr); cpch = g_mime_message_get_message_id(_message); h = header_to_utf8(cpch, message_charset, group_charset); g_mime_object_append_header( msg_obj, "X-Draft-Attribution-Id", h.c_str(), nullptr); char const *header_t = "Date"; char const *tmp_s = g_mime_object_get_header(_message_obj, header_t); char const *tmp = tmp_s; // FIXME: convert time to string h = header_to_utf8(tmp, message_charset, group_charset); g_mime_object_append_header( msg_obj, "X-Draft-Attribution-Date", h.c_str(), nullptr); // references char const *header = "References"; v = g_mime_object_get_header(_message_obj, header); val.assign(v.str, v.len); if (! val.empty()) { val += ' '; } val += "<"; val += g_mime_message_get_message_id(_message); val += ">"; val = GNKSA ::trim_references(val); g_mime_object_append_header(msg_obj, header, val.c_str(), nullptr); /// /// BODY /// GtkTextIter start, end; if (gtk_text_buffer_get_selection_bounds(_buffer, &start, &end)) { // go with the user-selected region w/o modifications. // since it's in the text pane it's already utf-8... h = gtk_text_buffer_get_text(_buffer, &start, &end, false); } else { // get the body; remove the sig h = get_utf8_body(_message, group_charset); StringView v(h); int sig_index(0); if (GNKSA::find_signature_delimiter(h, sig_index) != GNKSA::SIG_NONE) { v.len = sig_index; } v.trim(); h = std::string(v.str, v.len); } // quote the body std::string s; for (char const *c(h.c_str()); c && *c; ++c) { if (c == h.c_str() || c[-1] == '\n') { s += (*c == '>' ? ">" : "> "); } s += *c; } // set the clone's content object with our modified body GMimeStream *stream = g_mime_stream_mem_new(); g_mime_stream_write_string(stream, s.c_str()); GMimeDataWrapper *wrapper = g_mime_data_wrapper_new_with_stream(stream, GMIME_CONTENT_ENCODING_8BIT); GMimePart *part = g_mime_part_new(); GMimeContentType *new_type = g_mime_content_type_parse(nullptr, "text/plain; charset=UTF-8"); g_mime_object_set_content_type((GMimeObject *)part, new_type); g_mime_part_set_content(part, wrapper); g_mime_part_set_content_encoding(part, GMIME_CONTENT_ENCODING_8BIT); g_mime_message_set_mime_part(msg, GMIME_OBJECT(part)); g_object_unref(new_type); g_object_unref(wrapper); g_object_unref(part); g_object_unref(stream); // std::cerr << LINE_ID << " here is the modified clone\n [" << // g_mime_object_to_string((GMimeObject *)msg) << ']' << std::endl; } return msg; } /*** **** ***/ void BodyPane ::refresh_fonts() { bool const body_pane_font_enabled = _prefs.get_flag("body-pane-font-enabled", false); bool const monospace_font_enabled = _prefs.get_flag("monospace-font-enabled", false); if (! body_pane_font_enabled && ! monospace_font_enabled) { gtk_widget_override_font(_text, nullptr); } else { std::string const str( monospace_font_enabled ? _prefs.get_string("monospace-font", "Monospace 10") : _prefs.get_string("body-pane-font", "Sans 10")); PangoFontDescription *pfd(pango_font_description_from_string(str.c_str())); gtk_widget_override_font(_text, pfd); pango_font_description_free(pfd); } } void BodyPane ::on_prefs_flag_changed(StringView const &key, bool value G_GNUC_UNUSED) { if ((key == "body-pane-font-enabled") || (key == "monospace-font-enabled")) { refresh_fonts(); } if ((key == "wrap-article-body") || (key == "mute-quoted-text") || (key == "mute-signature") || (key == "show-smilies-as-graphics") || (key == "show-all-headers") || (key == "size-pictures-to-fit") || (key == "show-text-markup") || (key == "highlight-urls") || (key == "show-article-sig")) { refresh(); } } void BodyPane ::on_prefs_string_changed(StringView const &key, StringView const &value G_GNUC_UNUSED) { if ((key == "body-pane-font") || (key == "monospace-font")) { refresh_fonts(); } } void BodyPane ::on_prefs_color_changed(StringView const &key, GdkRGBA const &color G_GNUC_UNUSED) { if ((key == "text-color-fg") || (key == "text-color-bg") || (key == "body-pane-color-url") || (key == "body-pane-color-url-bg") || (key == "body-pane-color-quote-1") || (key == "body-pane-color-quote-2") || (key == "body-pane-color-quote-3") || (key == "body-pane-color-quote-1-bg") || (key == "body-pane-color-quote-2-bg") || (key == "body-pane-color-quote-3-bg") || (key == "body-pane-color-signature") || (key == "body-pane-color-signature-bg")) { refresh_colors(); } } void BodyPane ::refresh_colors() { set_text_buffer_tags(_buffer, _prefs); set_text_from_message(_message); } void BodyPane ::set_character_encoding(char const *charset) { if (charset && *charset) { _charset = charset; } else { _charset.clear(); } refresh(); } } // namespace pan pan-0.162/pan/gui/body-pane.h000066400000000000000000000136751475412772400157220ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #ifndef _BodyPane_h_ #define _BodyPane_h_ #include "group-prefs.h" #include "prefs.h" #include #include #include #include #include #include #include #include #include #include #include namespace pan { /** * Body Pane in the main window of Pan's GUI. * @ingroup GUI */ class BodyPane : private Prefs::Listener { private: Prefs &_prefs; GroupPrefs &_group_prefs; Queue &_queue; HeaderPane *_header_pane; Data &_data; ArticleCache &_cache; static gboolean on_verbose_tooltip_cb(GtkWidget *widget, gint x, gint y, gboolean keyboard_tip, GtkTooltip *tooltip, gpointer data); public: BodyPane( Data &, ArticleCache &, Prefs &, GroupPrefs &, Queue &, HeaderPane *); ~BodyPane(); GtkWidget *root() { return _root; } GtkWidget *get_default_focus_widget() { return _text; } private: void on_prefs_flag_changed(StringView const &key, bool value) override; void on_prefs_int_changed(StringView const &key G_GNUC_UNUSED, int value G_GNUC_UNUSED) override { } void on_prefs_string_changed(StringView const &key, StringView const &value) override; void on_prefs_color_changed(StringView const &key, GdkRGBA const &color) override; public: void set_article(Article const &); void clear(); bool read_more() { return read_more_or_less(true); } bool read_less() { return read_more_or_less(false); } void rot13_selected_text(); void select_all(); GMimeMessage *create_followup_or_reply(bool is_reply); public: Quark get_message_id() const { return _article.message_id; } GMimeMessage *get_message() { if (_message) { g_object_ref(_message); } return _message; } public: enum MenuSelection { MENU_SAVE_AS, MENU_SAVE_ALL }; public: void set_character_encoding(char const *character_encoding); public: void set_text_from_message(GMimeMessage *); private: void refresh(); void refresh_fonts(); void refresh_colors(); bool read_more_or_less(bool more); char *body_to_utf8(GMimePart *); void append_part(GMimeObject *, GMimeObject *, GtkAllocation *); static gboolean expander_activated_idle(gpointer self); static void expander_activated_cb(GtkExpander *, gpointer self); static void verbose_clicked_cb(GtkWidget *, GdkEvent *event, gpointer self_gpointer); static void foreach_part_cb(GMimeObject *, GMimeObject *, gpointer self); static void text_size_allocated(GtkWidget *, GtkAllocation *, gpointer); static gboolean text_size_allocated_idle_cb(gpointer p); void text_size_allocated_idle(); void refresh_scroll_visible_state(); static gboolean show_idle_cb(gpointer p); static void show_cb(GtkWidget *, gpointer); static void populate_popup_cb(GtkTextView *, GtkMenu *, gpointer); void populate_popup(GtkTextView *, GtkMenu *); static void copy_url_cb(GtkMenuItem *, gpointer); void copy_url(); GtkWidget *create_attachments_toolbar(GtkWidget *); private: #ifdef HAVE_WEBKIT void set_html_text(const char *text); GtkWidget *_web_view; #endif private: void add_attachment_to_toolbar(char const *fn); void clear_attachments(); GtkWidget *new_attachment(char const *filename); static gboolean mouse_button_pressed_cb(GtkWidget *, GdkEventButton *, gpointer); gboolean mouse_button_pressed(GtkWidget *, GdkEventButton *); void menu_clicked(MenuSelection const &ms); static void menu_clicked_as_cb(GtkWidget *w, gpointer p); static void menu_clicked_all_cb(GtkWidget *w, gpointer p); private: std::string _hover_url; GtkWidget *_expander; GtkWidget *_terse; GtkWidget *_verbose; GtkWidget *_headers; GtkWidget *_xface; GtkWidget *_face; GtkTextBuffer *_buffer; GtkWidget *_root; GtkWidget *_text; GtkWidget *_scroll; GtkWidget *_att_toolbar; GtkWidget *_att_box; bool _hscroll_visible; bool _vscroll_visible; Article _article; GMimeMessage *_message; TextMassager _tm; std::string _charset; #ifdef HAVE_GMIME_CRYPTO GPGDecErr _gpgerr; #endif int _attachments; int _cur_col, _cur_row; std::set _attach_names; MenuSelection _selection; bool _cleared; public: void set_cleared(bool val) { _cleared = val; } bool get_cleared() { return _cleared; } public: char const *_current_attachment; public: GtkWidget *_menu; }; } // namespace pan #endif pan-0.162/pan/gui/dl-headers-ui.cc000066400000000000000000000151551475412772400166200ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #include "dl-headers-ui.h" #include #include #include #include #include #include #include #include #include "pad.h" namespace pan { namespace { struct State { Data& data; Prefs& prefs; Queue& queue; quarks_t groups; GtkWidget * dialog; GtkWidget * all_headers_rb; GtkWidget * new_headers_rb; GtkWidget * n_headers_rb; GtkWidget * n_headers_spinbutton; GtkWidget * n_days_rb; GtkWidget * n_days_spinbutton; State (Data& d, Prefs& p, Queue& q): data(d), prefs(p), queue(q), dialog(nullptr), all_headers_rb(nullptr), new_headers_rb(nullptr), n_headers_rb(nullptr), n_headers_spinbutton(nullptr), n_days_rb(nullptr), n_days_spinbutton(nullptr) {} }; void delete_state (gpointer state_gpointer) { delete static_cast(state_gpointer); } void response_cb (GtkDialog * dialog, int response, gpointer user_data) { State * state (static_cast(user_data)); const int n_headers (gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(state->n_headers_spinbutton))); const int n_days (gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(state->n_days_spinbutton))); state->prefs.set_int ("get-latest-n-headers", n_headers); state->prefs.set_int ("get-latest-n-days-headers", n_days); if (response == GTK_RESPONSE_ACCEPT) { const bool mark_read (state->prefs.get_flag ("mark-group-read-before-xover", false)); foreach_const (quarks_t, state->groups, it) { Task * task; if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(state->all_headers_rb))) task = new TaskXOver (state->data, *it, TaskXOver::ALL); else if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(state->new_headers_rb))) task = new TaskXOver (state->data, *it, TaskXOver::NEW); else if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(state->n_headers_rb))) task = new TaskXOver (state->data, *it, TaskXOver::SAMPLE, n_headers); else // n days task = new TaskXOver (state->data, *it, TaskXOver::DAYS, n_days); if (mark_read) state->data.mark_group_read (*it); state->queue.add_task (task, Queue::TOP); } } gtk_widget_destroy (GTK_WIDGET(dialog)); } int spin_tickled_cb (GtkWidget *, GdkEventFocus *, gpointer user_data) { // if a user clicked in the spinbutton window, // select the spinbutton radiobutton for them. gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(user_data), true); return false; } } void headers_dialog (Data& data, Prefs& prefs, Queue& queue, const quarks_t& groups, GtkWindow * parent) { if (!groups.empty()) { std::string title (_("Pan")); title += ": "; if (groups.size() == 1) title += groups.begin()->c_str(); else { char buf[64]; g_snprintf (buf, sizeof(buf), ngettext("%d Group","%d Groups", (int)groups.size()), (int)groups.size()); title += buf; } State * state = new State (data, prefs, queue); state->groups = groups; state->dialog = gtk_dialog_new_with_buttons ( title.c_str(), parent, GTK_DIALOG_DESTROY_WITH_PARENT, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_EXECUTE, GTK_RESPONSE_ACCEPT, nullptr); gtk_dialog_set_default_response (GTK_DIALOG(state->dialog), GTK_RESPONSE_ACCEPT); GtkWidget * t = gtk_table_new (4, 2, FALSE); // rows, cols, homogenous gtk_container_set_border_width (GTK_CONTAINER(t), PAD_BIG); gtk_table_set_row_spacings (GTK_TABLE(t), PAD); gtk_table_set_col_spacings (GTK_TABLE(t), PAD); const int n_headers (prefs.get_int ("get-latest-n-headers", 300)); const int n_days (prefs.get_int ("get-latest-n-days-headers", 7)); GtkWidget *w, *x; GtkAdjustment * adj; int row = 0; state->n_days_rb = w = gtk_radio_button_new_with_mnemonic (nullptr, _("Get the last N _days' headers: ")); gtk_button_set_alignment (GTK_BUTTON(w), 0.5, 0.0); gtk_table_attach_defaults (GTK_TABLE(t), w, 0, 1, row, row+1); adj = GTK_ADJUSTMENT(gtk_adjustment_new (n_days, 1, INT_MAX, 1, 1, 0)); state->n_days_spinbutton = x = gtk_spin_button_new (adj, 1, 0); g_signal_connect (x, "focus_in_event", G_CALLBACK(spin_tickled_cb), state->n_days_rb); gtk_table_attach_defaults (GTK_TABLE(t), x, 1, 2, row, row+1); ++row; state->new_headers_rb = w = gtk_radio_button_new_with_mnemonic_from_widget (GTK_RADIO_BUTTON(w), _("Get _new headers")); gtk_button_set_alignment (GTK_BUTTON(w), 0.5, 0.0); gtk_table_attach_defaults (GTK_TABLE(t), w, 0, 1, row, row+1); ++row; state->all_headers_rb = w = gtk_radio_button_new_with_mnemonic_from_widget (GTK_RADIO_BUTTON(w), _("Get _all headers")); gtk_button_set_alignment (GTK_BUTTON(w), 0.5, 0.0); gtk_table_attach_defaults (GTK_TABLE(t), w, 0, 1, row, row+1); ++row; state->n_headers_rb = w = gtk_radio_button_new_with_mnemonic_from_widget (GTK_RADIO_BUTTON(w), _("Get the _latest N headers: ")); gtk_button_set_alignment (GTK_BUTTON(w), 0.5, 0.0); gtk_table_attach_defaults (GTK_TABLE(t), w, 0, 1, row, row+1); adj = GTK_ADJUSTMENT(gtk_adjustment_new (n_headers, 0, INT_MAX, 50, 50, 0)); state->n_headers_spinbutton = x = gtk_spin_button_new (adj, 1, 0); g_signal_connect (x, "focus_in_event", G_CALLBACK(spin_tickled_cb), state->n_headers_rb); gtk_table_attach_defaults (GTK_TABLE(t), x, 1, 2, row, row+1); gtk_container_add ( GTK_CONTAINER( gtk_dialog_get_content_area( GTK_DIALOG(state->dialog))), t); g_signal_connect (state->dialog, "response", G_CALLBACK(response_cb), state); g_object_set_data_full (G_OBJECT(state->dialog), "state", state, delete_state); gtk_widget_show_all (state->dialog); } } } pan-0.162/pan/gui/dl-headers-ui.h000066400000000000000000000020761475412772400164600ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #ifndef DOWNLOAD_HEADERS_UI_H #define DOWNLOAD_HEADERS_UI_H #include #include #include #include "prefs.h" namespace pan { struct Data; struct Queue; void headers_dialog (Data&, Prefs&, Queue&, const quarks_t& groups, GtkWindow* parent); } #endif pan-0.162/pan/gui/e-action-combo-box.c000066400000000000000000000365211475412772400174140ustar00rootroot00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* e-action-combo-box.c * * Copyright (C) 2008 Novell, Inc. * * This program is free software; you can redistribute it and/or * modify it under the terms of version 2 of the GNU Lesser General Public * License as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this program; if not, see . */ #include "e-action-combo-box.h" #include #define E_ACTION_COMBO_BOX_GET_PRIVATE(obj) \ (G_TYPE_INSTANCE_GET_PRIVATE \ ((obj), E_TYPE_ACTION_COMBO_BOX, EActionComboBoxPrivate)) enum { COLUMN_ACTION, COLUMN_SORT }; enum { PROP_0, PROP_ACTION }; struct _EActionComboBoxPrivate { GtkRadioAction *action; GtkActionGroup *action_group; GHashTable *index; guint changed_handler_id; /* action::changed */ guint group_sensitive_handler_id; /* action-group::sensitive */ guint group_visible_handler_id; /* action-group::visible */ gboolean group_has_icons : 1; }; static gpointer parent_class; static void action_combo_box_action_changed_cb (GtkRadioAction *action G_GNUC_UNUSED, GtkRadioAction *current, EActionComboBox *combo_box) { GtkTreeRowReference *reference; GtkTreeModel *model; GtkTreePath *path; GtkTreeIter iter; gboolean valid; reference = g_hash_table_lookup ( combo_box->priv->index, GINT_TO_POINTER ( gtk_radio_action_get_current_value (current))); g_return_if_fail (reference != NULL); model = gtk_tree_row_reference_get_model (reference); path = gtk_tree_row_reference_get_path (reference); valid = gtk_tree_model_get_iter (model, &iter, path); gtk_tree_path_free (path); g_return_if_fail (valid); gtk_combo_box_set_active_iter (GTK_COMBO_BOX (combo_box), &iter); } static void action_combo_box_action_group_notify_cb (GtkActionGroup *action_group, GParamSpec *pspec G_GNUC_UNUSED, EActionComboBox *combo_box) { g_object_set ( combo_box, "sensitive", gtk_action_group_get_sensitive (action_group), "visible", gtk_action_group_get_visible (action_group), NULL); } static void action_combo_box_render_pixbuf (GtkCellLayout *layout G_GNUC_UNUSED, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, EActionComboBox *combo_box) { GtkRadioAction *action; gchar *icon_name; gchar *stock_id; gboolean sensitive; gboolean visible; gint width; gtk_tree_model_get (model, iter, COLUMN_ACTION, &action, -1); /* Do any of the actions have an icon? */ if (!combo_box->priv->group_has_icons) return; /* A NULL action means the row is a separator. */ if (action == NULL) return; g_object_get ( G_OBJECT (action), "icon-name", &icon_name, "sensitive", &sensitive, "stock-id", &stock_id, "visible", &visible, NULL); /* Keep the pixbuf renderer a fixed size for proper alignment. */ gtk_icon_size_lookup (GTK_ICON_SIZE_MENU, &width, NULL); /* We can't set both "icon-name" and "stock-id" because setting * one unsets the other. So pick the one that has a non-NULL * value. If both are non-NULL, "stock-id" wins. */ if (stock_id != NULL) g_object_set ( G_OBJECT (renderer), "sensitive", sensitive, "stock-id", stock_id, "stock-size", GTK_ICON_SIZE_MENU, "visible", visible, "width", width, NULL); else g_object_set ( G_OBJECT (renderer), "icon-name", icon_name, "sensitive", sensitive, "stock-size", GTK_ICON_SIZE_MENU, "visible", visible, "width", width, NULL); g_free (icon_name); g_free (stock_id); } static void action_combo_box_render_text (GtkCellLayout *layout G_GNUC_UNUSED, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, EActionComboBox *combo_box) { GtkRadioAction *action; gchar **strv; gchar *label; gboolean sensitive; gboolean visible; gint xpad; gtk_tree_model_get (model, iter, COLUMN_ACTION, &action, -1); /* A NULL action means the row is a separator. */ if (action == NULL) return; g_object_get ( G_OBJECT (action), "label", &label, "sensitive", &sensitive, "visible", &visible, NULL); /* Strip out underscores. */ strv = g_strsplit (label, "_", -1); g_free (label); label = g_strjoinv (NULL, strv); g_strfreev (strv); xpad = combo_box->priv->group_has_icons ? 3 : 0; g_object_set ( G_OBJECT (renderer), "sensitive", sensitive, "text", label, "visible", visible, "xpad", xpad, NULL); g_free (label); } static gboolean action_combo_box_is_row_separator (GtkTreeModel *model, GtkTreeIter *iter) { GtkAction *action; gboolean separator; /* NULL actions are rendered as separators. */ gtk_tree_model_get (model, iter, COLUMN_ACTION, &action, -1); separator = (action == NULL); if (action != NULL) g_object_unref (action); return separator; } static void action_combo_box_update_model (EActionComboBox *combo_box) { GtkListStore *list_store; GSList *list; g_hash_table_remove_all (combo_box->priv->index); if (combo_box->priv->action == NULL) { gtk_combo_box_set_model (GTK_COMBO_BOX (combo_box), NULL); return; } /* We store values in the sort column as floats so that we can * insert separators in between consecutive integer values and * still maintain the proper ordering. */ list_store = gtk_list_store_new ( 2, GTK_TYPE_RADIO_ACTION, G_TYPE_FLOAT); list = gtk_radio_action_get_group (combo_box->priv->action); combo_box->priv->group_has_icons = FALSE; while (list != NULL) { GtkTreeRowReference *reference; GtkRadioAction *action = list->data; GtkTreePath *path; GtkTreeIter iter; gchar *icon_name; gchar *stock_id; gint value; g_object_get ( action, "icon-name", &icon_name, "stock-id", &stock_id, NULL); combo_box->priv->group_has_icons |= (icon_name != NULL || stock_id != NULL); g_free (icon_name); g_free (stock_id); gtk_list_store_append (list_store, &iter); g_object_get (G_OBJECT (action), "value", &value, NULL); gtk_list_store_set ( list_store, &iter, COLUMN_ACTION, list->data, COLUMN_SORT, (gfloat) value, -1); path = gtk_tree_model_get_path ( GTK_TREE_MODEL (list_store), &iter); reference = gtk_tree_row_reference_new ( GTK_TREE_MODEL (list_store), path); g_hash_table_insert ( combo_box->priv->index, GINT_TO_POINTER (value), reference); gtk_tree_path_free (path); list = g_slist_next (list); } gtk_tree_sortable_set_sort_column_id ( GTK_TREE_SORTABLE (list_store), COLUMN_SORT, GTK_SORT_ASCENDING); gtk_combo_box_set_model ( GTK_COMBO_BOX (combo_box), GTK_TREE_MODEL (list_store)); action_combo_box_action_changed_cb ( combo_box->priv->action, combo_box->priv->action, combo_box); } static void action_combo_box_set_property (GObject *object, guint property_id, const GValue *value, GParamSpec *pspec) { switch (property_id) { case PROP_ACTION: e_action_combo_box_set_action ( E_ACTION_COMBO_BOX (object), g_value_get_object (value)); return; } G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); } static void action_combo_box_get_property (GObject *object, guint property_id, GValue *value, GParamSpec *pspec) { switch (property_id) { case PROP_ACTION: g_value_set_object ( value, e_action_combo_box_get_action ( E_ACTION_COMBO_BOX (object))); return; } G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); } static void action_combo_box_dispose (GObject *object) { EActionComboBoxPrivate *priv = E_ACTION_COMBO_BOX_GET_PRIVATE (object); if (priv->action != NULL) { g_object_unref (priv->action); priv->action = NULL; } if (priv->action_group != NULL) { g_object_unref (priv->action_group); priv->action_group = NULL; } g_hash_table_remove_all (priv->index); /* Chain up to parent's dispose() method. */ G_OBJECT_CLASS (parent_class)->dispose (object); } static void action_combo_box_finalize (GObject *object) { EActionComboBoxPrivate *priv = E_ACTION_COMBO_BOX_GET_PRIVATE (object); g_hash_table_destroy (priv->index); /* Chain up to parent's finalize() method. */ G_OBJECT_CLASS (parent_class)->finalize (object); } static void action_combo_box_changed (GtkComboBox *combo_box) { GtkRadioAction *action; GtkTreeModel *model; GtkTreeIter iter; gint value; /* This method is virtual, so no need to chain up. */ if (!gtk_combo_box_get_active_iter (combo_box, &iter)) return; model = gtk_combo_box_get_model (combo_box); gtk_tree_model_get (model, &iter, COLUMN_ACTION, &action, -1); g_object_get (G_OBJECT (action), "value", &value, NULL); gtk_radio_action_set_current_value (action, value); } static void action_combo_box_class_init (EActionComboBoxClass *class) { GObjectClass *object_class; GtkComboBoxClass *combo_box_class; parent_class = g_type_class_peek_parent (class); g_type_class_add_private (class, sizeof (EActionComboBoxPrivate)); object_class = G_OBJECT_CLASS (class); object_class->set_property = action_combo_box_set_property; object_class->get_property = action_combo_box_get_property; object_class->dispose = action_combo_box_dispose; object_class->finalize = action_combo_box_finalize; combo_box_class = GTK_COMBO_BOX_CLASS (class); combo_box_class->changed = action_combo_box_changed; g_object_class_install_property ( object_class, PROP_ACTION, g_param_spec_object ( "action", _("Action"), _("A GtkRadioAction"), GTK_TYPE_RADIO_ACTION, G_PARAM_READWRITE)); } static void action_combo_box_init (EActionComboBox *combo_box) { GtkCellRenderer *renderer; combo_box->priv = E_ACTION_COMBO_BOX_GET_PRIVATE (combo_box); renderer = gtk_cell_renderer_pixbuf_new (); gtk_cell_layout_pack_start ( GTK_CELL_LAYOUT (combo_box), renderer, FALSE); gtk_cell_layout_set_cell_data_func ( GTK_CELL_LAYOUT (combo_box), renderer, (GtkCellLayoutDataFunc) action_combo_box_render_pixbuf, combo_box, NULL); renderer = gtk_cell_renderer_text_new (); gtk_cell_layout_pack_start ( GTK_CELL_LAYOUT (combo_box), renderer, TRUE); gtk_cell_layout_set_cell_data_func ( GTK_CELL_LAYOUT (combo_box), renderer, (GtkCellLayoutDataFunc) action_combo_box_render_text, combo_box, NULL); gtk_combo_box_set_row_separator_func ( GTK_COMBO_BOX (combo_box), (GtkTreeViewRowSeparatorFunc) action_combo_box_is_row_separator, NULL, NULL); combo_box->priv->index = g_hash_table_new_full ( g_direct_hash, g_direct_equal, (GDestroyNotify) NULL, (GDestroyNotify) gtk_tree_row_reference_free); } GType e_action_combo_box_get_type (void) { static GType type = 0; if (G_UNLIKELY (type == 0)) { static const GTypeInfo type_info = { sizeof (EActionComboBoxClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) action_combo_box_class_init, (GClassFinalizeFunc) NULL, NULL, /* class_data */ sizeof (EActionComboBox), 0, /* n_preallocs */ (GInstanceInitFunc) action_combo_box_init, NULL /* value_table */ }; type = g_type_register_static ( GTK_TYPE_COMBO_BOX, "EActionComboBox", &type_info, 0); } return type; } GtkWidget * e_action_combo_box_new (void) { return e_action_combo_box_new_with_action (NULL); } GtkWidget * e_action_combo_box_new_with_action (GtkRadioAction *action) { return g_object_new (E_TYPE_ACTION_COMBO_BOX, "action", action, NULL); } GtkRadioAction * e_action_combo_box_get_action (EActionComboBox *combo_box) { g_return_val_if_fail (E_ACTION_IS_COMBO_BOX (combo_box), NULL); return combo_box->priv->action; } void e_action_combo_box_set_action (EActionComboBox *combo_box, GtkRadioAction *action) { g_return_if_fail (E_ACTION_IS_COMBO_BOX (combo_box)); if (action != NULL) g_return_if_fail (GTK_IS_RADIO_ACTION (action)); if (combo_box->priv->action != NULL) { g_signal_handler_disconnect ( combo_box->priv->action, combo_box->priv->changed_handler_id); g_object_unref (combo_box->priv->action); } if (combo_box->priv->action_group != NULL) { g_signal_handler_disconnect ( combo_box->priv->action_group, combo_box->priv->group_sensitive_handler_id); g_signal_handler_disconnect ( combo_box->priv->action_group, combo_box->priv->group_visible_handler_id); g_object_unref (combo_box->priv->action_group); combo_box->priv->action_group = NULL; } if (action != NULL) g_object_get ( g_object_ref (action), "action-group", &combo_box->priv->action_group, NULL); combo_box->priv->action = action; action_combo_box_update_model (combo_box); if (combo_box->priv->action != NULL) combo_box->priv->changed_handler_id = g_signal_connect ( combo_box->priv->action, "changed", G_CALLBACK (action_combo_box_action_changed_cb), combo_box); if (combo_box->priv->action_group != NULL) { g_object_ref (combo_box->priv->action_group); combo_box->priv->group_sensitive_handler_id = g_signal_connect ( combo_box->priv->action_group, "notify::sensitive", G_CALLBACK ( action_combo_box_action_group_notify_cb), combo_box); combo_box->priv->group_visible_handler_id = g_signal_connect ( combo_box->priv->action_group, "notify::visible", G_CALLBACK ( action_combo_box_action_group_notify_cb), combo_box); } } gint e_action_combo_box_get_current_value (EActionComboBox *combo_box) { g_return_val_if_fail (E_ACTION_IS_COMBO_BOX (combo_box), 0); g_return_val_if_fail (combo_box->priv->action != NULL, 0); return gtk_radio_action_get_current_value (combo_box->priv->action); } void e_action_combo_box_set_current_value (EActionComboBox *combo_box, gint current_value) { g_return_if_fail (E_ACTION_IS_COMBO_BOX (combo_box)); g_return_if_fail (combo_box->priv->action != NULL); gtk_radio_action_set_current_value ( combo_box->priv->action, current_value); } void e_action_combo_box_add_separator_before (EActionComboBox *combo_box, gint action_value) { GtkTreeModel *model; GtkTreeIter iter; g_return_if_fail (E_ACTION_IS_COMBO_BOX (combo_box)); /* NULL actions are rendered as separators. */ model = gtk_combo_box_get_model (GTK_COMBO_BOX (combo_box)); gtk_list_store_append (GTK_LIST_STORE (model), &iter); gtk_list_store_set ( GTK_LIST_STORE (model), &iter, COLUMN_ACTION, NULL, COLUMN_SORT, (gfloat) action_value - 0.5, -1); } void e_action_combo_box_add_separator_after (EActionComboBox *combo_box, gint action_value) { GtkTreeModel *model; GtkTreeIter iter; g_return_if_fail (E_ACTION_IS_COMBO_BOX (combo_box)); /* NULL actions are rendered as separators. */ model = gtk_combo_box_get_model (GTK_COMBO_BOX (combo_box)); gtk_list_store_append (GTK_LIST_STORE (model), &iter); gtk_list_store_set ( GTK_LIST_STORE (model), &iter, COLUMN_ACTION, NULL, COLUMN_SORT, (gfloat) action_value + 0.5, -1); } pan-0.162/pan/gui/e-action-combo-box.h000066400000000000000000000056641475412772400174250ustar00rootroot00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* e-action-combo-box.h * * Copyright (C) 2008 Novell, Inc. * * This program is free software; you can redistribute it and/or * modify it under the terms of version 2 of the GNU Lesser General Public * License as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this program; if not, see . */ #ifndef E_ACTION_COMBO_BOX_H #define E_ACTION_COMBO_BOX_H /* This is a GtkComboBox that is driven by a group of GtkRadioActions. * Just plug in a GtkRadioAction and the widget will handle the rest. * (Based on GtkhtmlComboBox.) */ #include #include /* Standard GObject macros */ #define E_TYPE_ACTION_COMBO_BOX \ (e_action_combo_box_get_type ()) #define E_ACTION_COMBO_BOX(obj) \ (G_TYPE_CHECK_INSTANCE_CAST \ ((obj), E_TYPE_ACTION_COMBO_BOX, EActionComboBox)) #define E_ACTION_COMBO_BOX_CLASS(cls) \ (G_TYPE_CHECK_CLASS_CAST \ ((cls), E_TYPE_ACTION_COMBO_BOX, EActionComboBoxClass)) #define E_ACTION_IS_COMBO_BOX(obj) \ (G_TYPE_CHECK_INSTANCE_TYPE \ ((obj), E_TYPE_ACTION_COMBO_BOX)) #define E_ACTION_IS_COMBO_BOX_CLASS(cls) \ (G_TYPE_CHECK_CLASS_TYPE \ ((cls), E_TYPE_ACTION_COMBO_BOX)) #define E_ACTION_COMBO_BOX_GET_CLASS(obj) \ (G_TYPE_INSTANCE_GET_CLASS \ ((obj), E_TYPE_ACTION_COMBO_BOX, EActionComboBoxClass)) G_BEGIN_DECLS typedef struct _EActionComboBox EActionComboBox; typedef struct _EActionComboBoxClass EActionComboBoxClass; typedef struct _EActionComboBoxPrivate EActionComboBoxPrivate; struct _EActionComboBox { GtkComboBox parent; EActionComboBoxPrivate *priv; // quick fix for error : "specified instance size for type `EActionComboBox' is // smaller than the parent type's `GtkComboBox' instance size" double pad, pad2, pad3; }; struct _EActionComboBoxClass { GtkComboBoxClass parent_class; }; GType e_action_combo_box_get_type (void); GtkWidget * e_action_combo_box_new (void); GtkWidget * e_action_combo_box_new_with_action (GtkRadioAction *action); GtkRadioAction *e_action_combo_box_get_action (EActionComboBox *combo_box); void e_action_combo_box_set_action (EActionComboBox *combo_box, GtkRadioAction *action); gint e_action_combo_box_get_current_value (EActionComboBox *combo_box); void e_action_combo_box_set_current_value (EActionComboBox *combo_box, gint current_value); void e_action_combo_box_add_separator_before (EActionComboBox *combo_box, gint action_value); void e_action_combo_box_add_separator_after (EActionComboBox *combo_box, gint action_value); G_END_DECLS #endif /* E_ACTION_COMBO_BOX_H */ pan-0.162/pan/gui/e-charset-combo-box.c000066400000000000000000000305461475412772400175710ustar00rootroot00000000000000/* * e-charset-combo-box.c * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with the program; if not, see * * * Copyright (C) 1999-2008 Novell, Inc. (www.novell.com) * */ #include "e-charset-combo-box.h" #include #include "e-charset.h" #include #include #define E_CHARSET_COMBO_BOX_GET_PRIVATE(obj) \ (G_TYPE_INSTANCE_GET_PRIVATE \ ((obj), E_TYPE_CHARSET_COMBO_BOX, ECharsetComboBoxPrivate)) #define DEFAULT_CHARSET "UTF-8" #define OTHER_VALUE G_MAXINT struct _ECharsetComboBoxPrivate { GtkActionGroup *action_group; GtkRadioAction *other_action; GHashTable *charset_index; /* Used when the user clicks Cancel in the character set * dialog. Reverts to the previous combo box setting. */ gint previous_index; /* When setting the character set programmatically, this * prevents the custom character set dialog from running. */ guint block_dialog : 1; }; enum { PROP_0, PROP_CHARSET }; static gpointer parent_class; static void charset_combo_box_entry_changed_cb (GtkEntry *entry, GtkDialog *dialog) { const gchar *text; gboolean sensitive; text = gtk_entry_get_text (entry); sensitive = (text != NULL && *text != '\0'); gtk_dialog_set_response_sensitive (dialog, GTK_RESPONSE_OK, sensitive); } // Dialog used in Preferences -> Miscellaneous -> Font button -> Other... static void charset_combo_box_run_dialog (ECharsetComboBox *combo_box) { GtkDialog *dialog; GtkEntry *entry; GtkWidget *container; GtkWidget *widget; GObject *object; gpointer parent; const gchar *charset; /* FIXME Using a dialog for this is lame. Selecting "Other..." * should unlock an entry directly in the Preferences tab. * Unfortunately space in Preferences is at a premium right * now, but we should revisit this when the space issue is * finally resolved. */ parent = gtk_widget_get_toplevel (GTK_WIDGET (combo_box)); parent = gtk_widget_is_toplevel (parent) ? parent : NULL; object = G_OBJECT (combo_box->priv->other_action); charset = g_object_get_data (object, "charset"); widget = gtk_dialog_new_with_buttons ( _("Character Encoding"), parent, GTK_DIALOG_DESTROY_WITH_PARENT, _("Cancel"), GTK_RESPONSE_CANCEL, _("OK"), GTK_RESPONSE_OK, NULL); /* Load the broken border width defaults so we can override them. */ gtk_widget_ensure_style (widget); dialog = GTK_DIALOG (widget); //gtk_dialog_set_has_separator (dialog, FALSE); gtk_dialog_set_default_response (dialog, GTK_RESPONSE_OK); gtk_container_set_border_width (GTK_CONTAINER (dialog), 12); widget = gtk_dialog_get_action_area (dialog); gtk_container_set_border_width (GTK_CONTAINER (widget), 0); widget = gtk_dialog_get_content_area (dialog); gtk_box_set_spacing (GTK_BOX (widget), 12); gtk_container_set_border_width (GTK_CONTAINER (widget), 0); container = widget; widget = gtk_label_new (_("Enter the character set to use")); gtk_label_set_line_wrap (GTK_LABEL (widget), TRUE); gtk_label_set_xalign (GTK_LABEL (widget), 0.0); gtk_label_set_yalign (GTK_LABEL (widget), 0.5); gtk_box_pack_start (GTK_BOX (container), widget, FALSE, FALSE, 0); gtk_widget_show (widget); widget = gtk_alignment_new (0.0, 0.0, 1.0, 1.0); gtk_alignment_set_padding (GTK_ALIGNMENT (widget), 0, 0, 12, 0); gtk_box_pack_start (GTK_BOX (container), widget, FALSE, FALSE, 0); gtk_widget_show (widget); container = widget; widget = gtk_entry_new (); entry = GTK_ENTRY (widget); gtk_entry_set_activates_default (entry, TRUE); gtk_container_add (GTK_CONTAINER (container), widget); gtk_widget_show (widget); g_signal_connect ( entry, "changed", G_CALLBACK (charset_combo_box_entry_changed_cb), dialog); /* Set the default text -after- connecting the signal handler. * This will initialize the "OK" button to the proper state. */ gtk_entry_set_text (entry, charset); if (gtk_dialog_run (dialog) != GTK_RESPONSE_OK) { gint active; /* Revert to the previously selected character set. */ combo_box->priv->block_dialog = TRUE; active = combo_box->priv->previous_index; gtk_combo_box_set_active (GTK_COMBO_BOX (combo_box), active); combo_box->priv->block_dialog = FALSE; goto exit; } charset = gtk_entry_get_text (entry); g_return_if_fail (charset != NULL && charset[0] != '\0'); g_object_set_data_full ( object, "charset", g_strdup (charset), (GDestroyNotify) g_free); exit: gtk_widget_destroy (GTK_WIDGET (dialog)); } static void charset_combo_box_notify_charset_cb (ECharsetComboBox *combo_box) { GtkToggleAction *action; action = GTK_TOGGLE_ACTION (combo_box->priv->other_action); if (!gtk_toggle_action_get_active (action)) return; if (combo_box->priv->block_dialog) return; /* "Other" action was selected by user. */ charset_combo_box_run_dialog (combo_box); } static void charset_combo_box_set_property (GObject *object, guint property_id, const GValue *value, GParamSpec *pspec) { switch (property_id) { case PROP_CHARSET: e_charset_combo_box_set_charset ( E_CHARSET_COMBO_BOX (object), g_value_get_string (value)); return; } G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); } static void charset_combo_box_get_property (GObject *object, guint property_id, GValue *value, GParamSpec *pspec) { switch (property_id) { case PROP_CHARSET: g_value_set_string ( value, e_charset_combo_box_get_charset ( E_CHARSET_COMBO_BOX (object))); return; } G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); } static void charset_combo_box_dispose (GObject *object) { ECharsetComboBoxPrivate *priv; priv = E_CHARSET_COMBO_BOX_GET_PRIVATE (object); if (priv->action_group != NULL) { g_object_unref (priv->action_group); priv->action_group = NULL; } if (priv->other_action != NULL) { g_object_unref (priv->other_action); priv->other_action = NULL; } g_hash_table_remove_all (priv->charset_index); /* Chain up to parent's dispose() method. */ G_OBJECT_CLASS (parent_class)->dispose (object); } static void charset_combo_box_finalize (GObject *object) { ECharsetComboBoxPrivate *priv; priv = E_CHARSET_COMBO_BOX_GET_PRIVATE (object); g_hash_table_destroy (priv->charset_index); /* Chain up to parent's finalize() method. */ G_OBJECT_CLASS (parent_class)->finalize (object); } static void charset_combo_box_changed (GtkComboBox *combo_box) { ECharsetComboBoxPrivate *priv; priv = E_CHARSET_COMBO_BOX_GET_PRIVATE (combo_box); /* Chain up to parent's changed() method. */ GTK_COMBO_BOX_CLASS (parent_class)->changed (combo_box); /* Notify -before- updating previous index. */ g_object_notify (G_OBJECT (combo_box), "charset"); priv->previous_index = gtk_combo_box_get_active (combo_box); } static void charset_combo_box_class_init (ECharsetComboBoxClass *class) { GObjectClass *object_class; GtkComboBoxClass *combo_box_class; parent_class = g_type_class_peek_parent (class); g_type_class_add_private (class, sizeof (ECharsetComboBoxPrivate)); object_class = G_OBJECT_CLASS (class); object_class->set_property = charset_combo_box_set_property; object_class->get_property = charset_combo_box_get_property; object_class->dispose = charset_combo_box_dispose; object_class->finalize = charset_combo_box_finalize; combo_box_class = GTK_COMBO_BOX_CLASS (class); combo_box_class->changed = charset_combo_box_changed; g_object_class_install_property ( object_class, PROP_CHARSET, g_param_spec_string ( "charset", "Charset", "The selected character set", "UTF-8", G_PARAM_READWRITE | G_PARAM_CONSTRUCT)); } static void charset_combo_box_init (ECharsetComboBox *combo_box) { GtkActionGroup *action_group; GtkRadioAction *radio_action; GHashTable *charset_index; GSList *group, *iter; action_group = gtk_action_group_new ("charset-combo-box-internal"); charset_index = g_hash_table_new_full ( g_str_hash, g_str_equal, (GDestroyNotify) g_free, (GDestroyNotify) g_object_unref); combo_box->priv = E_CHARSET_COMBO_BOX_GET_PRIVATE (combo_box); combo_box->priv->action_group = action_group; combo_box->priv->charset_index = charset_index; group = e_charset_add_radio_actions ( action_group, "charset-", NULL, NULL, NULL); /* Populate the character set index. */ for (iter = group; iter != NULL; iter = iter->next) { GObject *object = iter->data; const gchar *charset; charset = g_object_get_data (object, "charset"); g_return_if_fail (charset != NULL); g_hash_table_insert ( charset_index, g_strdup (charset), g_object_ref (object)); } /* Note the "other" action is not included in the index. */ radio_action = gtk_radio_action_new ( "charset-other", _("Other..."), NULL, NULL, OTHER_VALUE); g_object_set_data (G_OBJECT (radio_action), "charset", (gpointer) ""); gtk_radio_action_set_group (radio_action, group); group = gtk_radio_action_get_group (radio_action); e_action_combo_box_set_action ( E_ACTION_COMBO_BOX (combo_box), radio_action); e_action_combo_box_add_separator_after ( E_ACTION_COMBO_BOX (combo_box), g_slist_length (group)); g_signal_connect ( combo_box, "notify::charset", G_CALLBACK (charset_combo_box_notify_charset_cb), NULL); combo_box->priv->other_action = radio_action; } GType e_charset_combo_box_get_type (void) { static GType type = 0; if (G_UNLIKELY (type == 0)) { static const GTypeInfo type_info = { sizeof (ECharsetComboBoxClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) charset_combo_box_class_init, (GClassFinalizeFunc) NULL, NULL, /* class_data */ sizeof (ECharsetComboBox), 0, /* n_preallocs */ (GInstanceInitFunc) charset_combo_box_init, NULL /* value_table */ }; type = g_type_register_static ( E_TYPE_ACTION_COMBO_BOX, "ECharsetComboBox", &type_info, 0); } return type; } GtkWidget * e_charset_combo_box_new (void) { return g_object_new (E_TYPE_CHARSET_COMBO_BOX, NULL); } /** * e_radio_action_get_current_action: * @radio_action: a #GtkRadioAction * * Returns the currently active member of the group to which @radio_action * belongs. * * Returns: the currently active group member **/ static GtkRadioAction * e_radio_action_get_current_action (GtkRadioAction *radio_action) { GSList *group; gint current_value; g_return_val_if_fail (GTK_IS_RADIO_ACTION (radio_action), NULL); group = gtk_radio_action_get_group (radio_action); current_value = gtk_radio_action_get_current_value (radio_action); while (group != NULL) { gint value; radio_action = GTK_RADIO_ACTION (group->data); g_object_get (radio_action, "value", &value, NULL); if (value == current_value) return radio_action; group = g_slist_next (group); } return NULL; } const gchar * e_charset_combo_box_get_charset (ECharsetComboBox *combo_box) { GtkRadioAction *radio_action; g_return_val_if_fail (E_IS_CHARSET_COMBO_BOX (combo_box), NULL); radio_action = combo_box->priv->other_action; radio_action = e_radio_action_get_current_action (radio_action); return g_object_get_data (G_OBJECT (radio_action), "charset"); } void e_charset_combo_box_set_charset (ECharsetComboBox *combo_box, const gchar *charset) { GHashTable *charset_index; GtkRadioAction *radio_action; g_return_if_fail (E_IS_CHARSET_COMBO_BOX (combo_box)); if (charset == NULL || *charset == '\0') charset = "UTF-8"; charset_index = combo_box->priv->charset_index; radio_action = g_hash_table_lookup (charset_index, charset); if (radio_action == NULL) { radio_action = combo_box->priv->other_action; g_object_set_data_full ( G_OBJECT (radio_action), "charset", g_strdup (charset), (GDestroyNotify) g_free); } combo_box->priv->block_dialog = TRUE; gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (radio_action), TRUE); combo_box->priv->block_dialog = FALSE; } pan-0.162/pan/gui/e-charset-combo-box.h000066400000000000000000000042461475412772400175740ustar00rootroot00000000000000/* * e-charset-combo-box.h * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with the program; if not, see * * * Copyright (C) 1999-2008 Novell, Inc. (www.novell.com) * */ #ifndef E_CHARSET_COMBO_BOX_H #define E_CHARSET_COMBO_BOX_H #include "e-action-combo-box.h" /* Standard GObject macros */ #define E_TYPE_CHARSET_COMBO_BOX \ (e_charset_combo_box_get_type ()) #define E_CHARSET_COMBO_BOX(obj) \ (G_TYPE_CHECK_INSTANCE_CAST \ ((obj), E_TYPE_CHARSET_COMBO_BOX, ECharsetComboBox)) #define E_CHARSET_COMBO_BOX_CLASS(cls) \ (G_TYPE_CHECK_CLASS_CAST \ ((cls), E_TYPE_CHARSET_COMBO_BOX, ECharsetComboBoxClass)) #define E_IS_CHARSET_COMBO_BOX(obj) \ (G_TYPE_CHECK_INSTANCE_TYPE \ ((obj), E_TYPE_CHARSET_COMBO_BOX)) #define E_IS_CHARSET_COMBO_BOX_CLASS(cls) \ (G_TYPE_CHECK_CLASS_TYPE \ ((cls), E_TYPE_CHARSET_COMBO_BOX)) #define E_CHARSET_COMBO_BOX_GET_CLASS(obj) \ (G_TYPE_INSTANCE_GET_CLASS \ ((obj), E_TYPE_CHARSET_COMBO_BOX, ECharsetComboBoxClass)) G_BEGIN_DECLS typedef struct _ECharsetComboBox ECharsetComboBox; typedef struct _ECharsetComboBoxClass ECharsetComboBoxClass; typedef struct _ECharsetComboBoxPrivate ECharsetComboBoxPrivate; struct _ECharsetComboBox { EActionComboBox parent; ECharsetComboBoxPrivate *priv; }; struct _ECharsetComboBoxClass { EActionComboBoxClass parent_class; }; GType e_charset_combo_box_get_type (void); GtkWidget * e_charset_combo_box_new (void); const gchar * e_charset_combo_box_get_charset (ECharsetComboBox *combo_box); void e_charset_combo_box_set_charset (ECharsetComboBox *combo_box, const gchar *charset); G_END_DECLS #endif /* E_CHARSET_COMBO_BOX_H */ pan-0.162/pan/gui/e-charset-dialog.c000066400000000000000000000065401475412772400171400ustar00rootroot00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 4; tab-width: 4 -*- */ /* * Copyright (C) 2001 Ximian, Inc. * * This program is free software; you can redistribute it and/or * modify it under the terms of version 2 of the GNU General Public * License as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public * License along with this program; if not, see . * */ #include "e-charset-combo-box.h" #include #include "e-charset-dialog.h" #include #include /** * e_charset_dialog: * @title: title for the dialog box * @prompt: prompt string for the dialog box * @default_charset: as for e_charset_picker_new() * @parent: a parent window for the dialog box, or %NULL * * This creates a new dialog box with the given @title and @prompt and * a character set picker menu. It then runs the dialog and returns * the selected character set, or %NULL if the user clicked "Cancel". * * Return value: the selected character set (which must be freed with * g_free()), or %NULL. **/ char * e_charset_dialog (const char *title, const char *prompt, const char *default_charset, GtkWindow *parent) { // Dialog used in Preferences -> Miscellaneous -> Font button GtkDialog *dialog; GtkWidget *label, *picker, *vbox, *hbox; char *charset = NULL; dialog = GTK_DIALOG (gtk_dialog_new_with_buttons (title, parent, GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, _("Cancel"), GTK_RESPONSE_CANCEL, _("OK"), GTK_RESPONSE_OK, NULL)); //gtk_dialog_set_has_separator (dialog, FALSE); gtk_dialog_set_default_response (dialog, GTK_RESPONSE_OK); vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6); gtk_container_set_border_width (GTK_CONTAINER (vbox), 12); gtk_box_pack_start (GTK_BOX (gtk_dialog_get_content_area(dialog)), vbox, FALSE, FALSE, 0); gtk_widget_show (vbox); label = gtk_label_new (prompt); gtk_label_set_line_wrap (GTK_LABEL (label), TRUE); gtk_label_set_xalign (GTK_LABEL (label), 0.0); gtk_label_set_yalign (GTK_LABEL (label), 0.5); gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0); gtk_widget_show (label); hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 12); gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0); gtk_widget_show (hbox); label = gtk_label_new (""); gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0); gtk_widget_show (label); picker = e_charset_combo_box_new (); e_charset_combo_box_set_charset (E_CHARSET_COMBO_BOX(picker), default_charset); gtk_box_pack_start (GTK_BOX (hbox), picker, TRUE, TRUE, 0); gtk_widget_show (picker); gtk_container_set_border_width (GTK_CONTAINER (gtk_dialog_get_content_area(dialog)), 0); gtk_container_set_border_width (GTK_CONTAINER (gtk_dialog_get_action_area(dialog)), 12); gtk_widget_show_all (GTK_WIDGET (dialog)); g_object_ref (dialog); if (gtk_dialog_run (dialog) == GTK_RESPONSE_OK) charset = g_strdup (e_charset_combo_box_get_charset (E_CHARSET_COMBO_BOX(picker))); gtk_widget_destroy (GTK_WIDGET (dialog)); g_object_unref (dialog); return charset; } pan-0.162/pan/gui/e-charset-dialog.h000066400000000000000000000003431475412772400171400ustar00rootroot00000000000000#ifndef E_CHARSET_DIALOG_H #define E_CHARSET_DIALOG_H G_BEGIN_DECLS char* e_charset_dialog (const char *title, const char *prompt, const char *default_charset, GtkWindow *parent); G_END_DECLS #endif pan-0.162/pan/gui/e-charset.c000066400000000000000000000166201475412772400157030ustar00rootroot00000000000000/* * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with the program; if not, see * * * Authors: * * Copyright (C) 1999-2008 Novell, Inc. (www.novell.com) * */ #ifdef HAVE_CONFIG_H #include #endif #include "e-charset.h" #include #include typedef enum { E_CHARSET_UNKNOWN, E_CHARSET_ARABIC, E_CHARSET_BALTIC, E_CHARSET_CENTRAL_EUROPEAN, E_CHARSET_CHINESE, E_CHARSET_CYRILLIC, E_CHARSET_GREEK, E_CHARSET_HEBREW, E_CHARSET_JAPANESE, E_CHARSET_KOREAN, E_CHARSET_THAI, E_CHARSET_TURKISH, E_CHARSET_UNICODE, E_CHARSET_WESTERN_EUROPEAN, E_CHARSET_WESTERN_EUROPEAN_NEW } ECharsetClass; static const gchar *classnames[] = { N_("Unknown"), N_("Arabic"), N_("Baltic"), N_("Central European"), N_("Chinese"), N_("Cyrillic"), N_("Greek"), N_("Hebrew"), N_("Japanese"), N_("Korean"), N_("Thai"), N_("Turkish"), N_("Unicode"), N_("Western European"), N_("Western European, New"), }; typedef struct { const gchar *name; ECharsetClass class; const gchar *subclass; } ECharset; /* This list is based on what other mailers/browsers support. There's * not a lot of point in using, say, ISO-8859-3, if anything that can * read that can read UTF8 too. */ /* To Translators: Character set "Logical Hebrew" */ static ECharset charsets[] = { { "ISO-8859-6", E_CHARSET_ARABIC, NULL }, { "ISO-8859-13", E_CHARSET_BALTIC, NULL }, { "ISO-8859-4", E_CHARSET_BALTIC, NULL }, { "ISO-8859-2", E_CHARSET_CENTRAL_EUROPEAN, NULL }, { "Big5", E_CHARSET_CHINESE, N_("Traditional") }, { "BIG5HKSCS", E_CHARSET_CHINESE, N_("Traditional") }, { "EUC-TW", E_CHARSET_CHINESE, N_("Traditional") }, { "GB18030", E_CHARSET_CHINESE, N_("Simplified") }, { "GB2312", E_CHARSET_CHINESE, N_("Simplified") }, { "HZ", E_CHARSET_CHINESE, N_("Simplified") }, { "ISO-2022-CN", E_CHARSET_CHINESE, N_("Simplified") }, { "KOI8-R", E_CHARSET_CYRILLIC, NULL }, { "Windows-1251", E_CHARSET_CYRILLIC, NULL }, { "KOI8-U", E_CHARSET_CYRILLIC, N_("Ukrainian") }, { "ISO-8859-5", E_CHARSET_CYRILLIC, NULL }, { "ISO-8859-7", E_CHARSET_GREEK, NULL }, { "ISO-8859-8", E_CHARSET_HEBREW, N_("Visual") }, { "ISO-2022-JP", E_CHARSET_JAPANESE, NULL }, { "EUC-JP", E_CHARSET_JAPANESE, NULL }, { "Shift_JIS", E_CHARSET_JAPANESE, NULL }, { "EUC-KR", E_CHARSET_KOREAN, NULL }, { "TIS-620", E_CHARSET_THAI, NULL }, { "ISO-8859-9", E_CHARSET_TURKISH, NULL }, { "UTF-8", E_CHARSET_UNICODE, NULL }, { "UTF-7", E_CHARSET_UNICODE, NULL }, { "ISO-8859-1", E_CHARSET_WESTERN_EUROPEAN, NULL }, { "ISO-8859-15", E_CHARSET_WESTERN_EUROPEAN_NEW, NULL }, }; /** * e_charset_add_radio_actions: * @action_group: a #GtkActionGroup * @action_prefix: a prefix for action names, or %NULL * @default_charset: the default character set, or %NULL to use the * locale character set * @callback: a callback function for actions in the group, or %NULL * @user_data: user data to be passed to @callback, or %NULL * * Adds a set of #GtkRadioActions for available character sets to * @action_group. The @default_charset (or locale character set if * @default_charset is %NULL) will be added first, and selected by * default (except that ISO-8859-1 will always be used instead of * US-ASCII). Any other character sets of the same language class as * the default will be added next, followed by the remaining character * sets. * * Returns: the radio action group **/ GSList * e_charset_add_radio_actions (GtkActionGroup *action_group, const gchar *action_prefix, const gchar *default_charset, GCallback callback, gpointer user_data) { GtkRadioAction *action = NULL; GSList *group = NULL; const gchar *locale_charset; gint def, ii; g_return_val_if_fail (GTK_IS_ACTION_GROUP (action_group), NULL); if (action_prefix == NULL) action_prefix = ""; g_get_charset (&locale_charset); if (!g_ascii_strcasecmp (locale_charset, "US-ASCII")) locale_charset = "ISO-8859-1"; if (default_charset == NULL) default_charset = locale_charset; for (def = 0; def < (gint)G_N_ELEMENTS (charsets); def++) if (!g_ascii_strcasecmp (charsets[def].name, default_charset)) break; for (ii = 0; ii < (gint)G_N_ELEMENTS (charsets); ii++) { const gchar *charset_name; gchar *action_name; gchar *escaped_name; gchar *charset_label; gchar **str_array; charset_name = charsets[ii].name; action_name = g_strconcat (action_prefix, charset_name, NULL); /* Escape underlines in the character set name so * they're not treated as GtkLabel mnemonics. */ str_array = g_strsplit (charset_name, "_", -1); escaped_name = g_strjoinv ("__", str_array); g_strfreev (str_array); if (charsets[ii].subclass != NULL) charset_label = g_strdup_printf ( "%s, %s (%s)", gettext (classnames[charsets[ii].class]), gettext (charsets[ii].subclass), escaped_name); else if (charsets[ii].class != E_CHARSET_UNKNOWN) charset_label = g_strdup_printf ( "%s (%s)", gettext (classnames[charsets[ii].class]), escaped_name); else charset_label = g_strdup (escaped_name); /* XXX Add a tooltip! */ action = gtk_radio_action_new ( action_name, charset_label, NULL, NULL, ii); /* Character set name is static so no need to free it. */ g_object_set_data ( G_OBJECT (action), "charset", (gpointer) charset_name); gtk_radio_action_set_group (action, group); group = gtk_radio_action_get_group (action); if (callback != NULL) g_signal_connect ( action, "changed", callback, user_data); gtk_action_group_add_action ( action_group, GTK_ACTION (action)); g_object_unref (action); g_free (action_name); g_free (escaped_name); g_free (charset_label); } if (def == G_N_ELEMENTS (charsets)) { const gchar *charset_name; gchar *action_name; gchar *charset_label; gchar **str_array; charset_name = default_charset; action_name = g_strconcat (action_prefix, charset_name, NULL); /* Escape underlines in the character set name so * they're not treated as GtkLabel mnemonics. */ str_array = g_strsplit (charset_name, "_", -1); charset_label = g_strjoinv ("__", str_array); g_strfreev (str_array); /* XXX Add a tooltip! */ action = gtk_radio_action_new ( action_name, charset_label, NULL, NULL, def); /* Character set name is static so no need to free it. */ g_object_set_data ( G_OBJECT (action), "charset", (gpointer) charset_name); gtk_radio_action_set_group (action, group); group = gtk_radio_action_get_group (action); if (callback != NULL) g_signal_connect ( action, "changed", callback, user_data); gtk_action_group_add_action ( action_group, GTK_ACTION (action)); g_object_unref (action); g_free (action_name); g_free (charset_label); } /* Any of the actions in the action group will do. */ if (action != NULL) gtk_radio_action_set_current_value (action, def); return group; } pan-0.162/pan/gui/e-charset.h000066400000000000000000000020521475412772400157020ustar00rootroot00000000000000/* * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with the program; if not, see * * * Copyright (C) 1999-2008 Novell, Inc. (www.novell.com) * */ #ifndef E_CHARSET_H #define E_CHARSET_H #include #include G_BEGIN_DECLS GSList * e_charset_add_radio_actions (GtkActionGroup *action_group, const gchar *action_prefix, const gchar *default_charset, GCallback callback, gpointer user_data); G_END_DECLS #endif /* E_CHARSET_H */ pan-0.162/pan/gui/e-cte-dialog.c000066400000000000000000000117541475412772400162650ustar00rootroot00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* * Copyright (C) 2001 Ximian, Inc. * * This program is free software; you can redistribute it and/or * modify it under the terms of version 2 of the GNU General Public * License as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public * License along with this program; if not, see . * */ #include "e-cte-dialog.h" /** * e_cte_dialog: * @title: title for the dialog box * @prompt: prompt string for the dialog box * @now: active cte * @parent: a parent window for the dialog box, or %NULL * * This creates a new dialog box with the given @title and @prompt and * a cte set picker menu. It then runs the dialog and returns * the selected content-transfer-encoding, or GMIME_CONTENT_ENCODING_8BIT if the user cancels/aborts. * * Return value: the selected content transfer encoding, or GMIME_CONTENT_ENCODING_8BIT. **/ GMimeContentEncoding e_cte_dialog (const char *title, const char *prompt, GMimeContentEncoding now, GtkWindow *parent) { GtkDialog *dialog; GtkWidget *label, *picker, *vbox, *hbox; GMimeContentEncoding ret = GMIME_CONTENT_ENCODING_8BIT; dialog = GTK_DIALOG (gtk_dialog_new_with_buttons (title, parent, GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OK, GTK_RESPONSE_OK, NULL)); //gtk_dialog_set_has_separator (dialog, FALSE); gtk_dialog_set_default_response (dialog, GTK_RESPONSE_OK); vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6); gtk_container_set_border_width (GTK_CONTAINER (vbox), 12); gtk_box_pack_start (GTK_BOX (gtk_dialog_get_content_area(dialog)), vbox, FALSE, FALSE, 0); gtk_widget_show (vbox); label = gtk_label_new (prompt); gtk_label_set_line_wrap (GTK_LABEL (label), TRUE); gtk_label_set_xalign (GTK_LABEL (label), 0.0); gtk_label_set_yalign (GTK_LABEL (label), 0.5); gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0); gtk_widget_show (label); hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 12); gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0); gtk_widget_show (hbox); label = gtk_label_new (""); gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0); gtk_widget_show (label); GtkTreeIter iter; GtkListStore * store; GtkCellRenderer * renderer; store = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_INT); gtk_list_store_append (store, &iter); gtk_list_store_set (store, &iter, 0, _("Default Encoding"), 1, GMIME_CONTENT_ENCODING_DEFAULT, -1); gtk_list_store_append (store, &iter); gtk_list_store_set (store, &iter, 0, _("7-Bit Encoding"), 1, GMIME_CONTENT_ENCODING_7BIT, -1); gtk_list_store_append (store, &iter); gtk_list_store_set (store, &iter, 0, _("8-Bit Encoding"), 1, GMIME_CONTENT_ENCODING_8BIT, -1); gtk_list_store_append (store, &iter); gtk_list_store_set (store, &iter, 0, _("Base64 Encoding"), 1, GMIME_CONTENT_ENCODING_BASE64, -1); gtk_list_store_append (store, &iter); gtk_list_store_set (store, &iter, 0, _("Quoted-Printable Encoding"), 1, GMIME_CONTENT_ENCODING_QUOTEDPRINTABLE, -1); int active = 0; switch (now) { case GMIME_CONTENT_ENCODING_DEFAULT: active = 0; break; case GMIME_CONTENT_ENCODING_7BIT: active = 1; break; case GMIME_CONTENT_ENCODING_8BIT: active = 2; break; case GMIME_CONTENT_ENCODING_BASE64: active = 3; break; case GMIME_CONTENT_ENCODING_QUOTEDPRINTABLE: active = 4; break; } picker = gtk_combo_box_new_with_model (GTK_TREE_MODEL(store)); gtk_combo_box_set_active (GTK_COMBO_BOX(picker), active); renderer = gtk_cell_renderer_text_new (); gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (picker), renderer, TRUE); gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (picker), renderer, "text", 0, NULL); gtk_box_pack_start (GTK_BOX (hbox), picker, TRUE, TRUE, 0); gtk_container_set_border_width (GTK_CONTAINER (gtk_dialog_get_content_area(dialog)), 0); gtk_container_set_border_width (GTK_CONTAINER (gtk_dialog_get_action_area(dialog)), 12); gtk_widget_show_all (GTK_WIDGET (dialog)); gtk_widget_show_all (GTK_WIDGET (hbox)); g_object_ref (dialog); if (gtk_dialog_run (dialog) == GTK_RESPONSE_OK) { GtkTreeModel *model; GtkTreeIter iter; GMimeContentEncoding value; if (gtk_combo_box_get_active_iter (GTK_COMBO_BOX(picker), &iter)) { model = gtk_combo_box_get_model (GTK_COMBO_BOX(picker)); gtk_tree_model_get (model, &iter, 1, &value, -1); ret = value; } } gtk_widget_destroy (GTK_WIDGET (dialog)); g_object_unref (dialog); return ret; } pan-0.162/pan/gui/e-cte-dialog.h000066400000000000000000000004731475412772400162660ustar00rootroot00000000000000#ifndef E_CTE_DIALOG_H #define E_CTE_DIALOG_H #include #include #include #include #include G_BEGIN_DECLS GMimeContentEncoding e_cte_dialog (const char *title, const char *prompt, GMimeContentEncoding now, GtkWindow *parent); G_END_DECLS #endif pan-0.162/pan/gui/editor-spawner.cc000066400000000000000000000065201475412772400171340ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #include "editor-spawner.h" #include #include #include //For get_default_editors #include // for _ #include namespace pan { namespace { struct se_data { char *fname; EditorSpawner::Callback callback; }; void child_watch_callback(GPid pid, int status, void * data) { se_data * d{static_cast(data)}; g_spawn_close_pid(pid); d->callback(status, d->fname); delete d; } } EditorSpawner::EditorSpawner( char * fname, Callback callback, Prefs const & prefs) { // Get the configured editor std::set editors; URL :: get_default_editors(editors); std::string const editor{prefs.get_string("editor", *editors.begin())}; //Create the command line int argc{0}; char ** argv{nullptr}; GError * err{nullptr}; g_shell_parse_argv(editor.c_str(), &argc, &argv, &err); if (err != nullptr) { Log::add_err_va( _("Error parsing \"external editor\" command line: %s (Command was: %s)"), err->message, editor.c_str()); g_clear_error (&err); throw EditorSpawnerError(); } // put temp file's name into the substitution bool filename_added{false}; for (int i = 0; i < argc; i += 1) { char * token{argv[i]}; char * sub{strstr (token, "%t")}; if (sub) { GString * gstr{g_string_new (nullptr)}; g_string_append_len(gstr, token, sub - token); g_string_append(gstr, fname); g_string_append(gstr, sub + 2); g_free(token); argv[i] = g_string_free(gstr, false); filename_added = true; } } // no substitution field -- add the filename at the end if (not filename_added) { char ** v{g_new(char*, argc + 2)}; for (int i = 0; i < argc; i += 1) { v[i] = argv[i]; } v[argc] = g_strdup(fname); argc += 1; v[argc] = nullptr; g_free(argv); argv = v; } // spawn off the external editor GPid pid; g_spawn_async(nullptr, argv, nullptr, (GSpawnFlags)(G_SPAWN_SEARCH_PATH | G_SPAWN_DO_NOT_REAP_CHILD), nullptr, nullptr, &pid, &err); g_strfreev(argv); if (err != nullptr) { Log::add_err_va(_("Error starting external editor: %s"), err->message); g_clear_error(&err); throw EditorSpawnerError(); } se_data *data = new se_data; data->fname = fname; data->callback = callback; _child_id = g_child_watch_add(pid, child_watch_callback, data); } EditorSpawner::~EditorSpawner() { g_source_remove(_child_id); } EditorSpawnerError::EditorSpawnerError() : runtime_error("Error spawning editor - see log") { } } pan-0.162/pan/gui/editor-spawner.h000066400000000000000000000032461475412772400170000ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #ifndef __EditorSpawner_h__ #define __EditorSpawner_h__ #include #include namespace pan { class Prefs; class EditorSpawner { public: typedef std::function Callback; /** Spawns an editor for the named file. * * The callback is actioned when the editor window is closed, and it * should take care of popping the correct window back to the front if * required. * * If there's an error, an exception is thrown and an error message is * logged. */ EditorSpawner(char *fname, Callback callback, Prefs const & prefs); /** Destructor does some cleanup */ ~EditorSpawner(); private: unsigned int _child_id; }; class EditorSpawnerError : public std::runtime_error { public: EditorSpawnerError(); }; } #endif pan-0.162/pan/gui/group-pane.cc000066400000000000000000001005561475412772400162520ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #include #include #include #include #include #include #include //#include #include #include #include #include #include #include #include "group-pane.h" #include "pad.h" #include "tango-colors.h" using namespace pan; namespace { enum ModelColumns { COL_UNREAD, COL_QTY }; struct MyRow: public PanTreeStore::Row { public: Quark groupname; Article_Count unread; public: void get_value (int column, GValue* setme) override { switch (column) { // //FIXME Really? // case COL_UNREAD: set_value_ulong (setme, static_cast(unread)); break; } } }; Quark * virtual_title_quark (nullptr); Quark * sub_title_quark (nullptr); Quark * other_title_quark (nullptr); bool is_group(Quark const &name) { return !name.empty() && name!=*sub_title_quark && name!=*other_title_quark && name!=*virtual_title_quark; } std::string get_short_name(StringView const &in) { StringView myline, long_token_one, long_token_two; // pop off the last two tokens myline = in; myline.pop_last_token (long_token_two, '.'); if (!myline.empty()) myline.pop_last_token (long_token_one, '.'); // build a new string where each token is shortened except for the long_tokens std::string out; myline = in; StringView tok; while (myline.pop_token (tok, '.')) { out.insert (out.end(), tok.begin(), ((tok==long_token_one || tok==long_token_two) ? tok.end() : tok.begin()+1)); out += '.'; } if (!out.empty()) out.erase (out.size()-1); return out; } void find_matching_groups(TextMatch const *match, std::vector const &sorted_groups, std::vector &matching_groups) { typedef std::vector quark_v; if (!match) matching_groups = sorted_groups; else { matching_groups.reserve (sorted_groups.size()); foreach_const (quark_v, sorted_groups, it) { Quark const &groupname(*it); if (!match || match->test (groupname.c_str())) matching_groups.push_back (groupname); } } } } Quark GroupPane :: get_first_selection () const { Quark group; const quarks_v groups (get_full_selection ()); if (!groups.empty()) group = groups.front(); return group; } quarks_v GroupPane :: get_full_selection () const { quarks_v groups; // get a list of paths GtkTreeModel * model (nullptr); GtkTreeSelection * selection (gtk_tree_view_get_selection (GTK_TREE_VIEW(_tree_view))); GList * list (gtk_tree_selection_get_selected_rows (selection, &model)); for (GList *l(list); l; l=l->next) { GtkTreePath * path (static_cast(l->data)); GtkTreeIter iter; if (gtk_tree_model_get_iter (model, &iter, path)) groups.push_back (dynamic_cast(_tree_store->get_row (&iter))->groupname); } // cleanup g_list_foreach (list, (GFunc)gtk_tree_path_free, nullptr); g_list_free (list); return groups; } void GroupPane :: do_popup_menu (GtkWidget*, GdkEventButton *event, gpointer pane_g) { GroupPane * self (static_cast(pane_g)); GtkWidget * menu (self->_action_manager.get_action_widget ("/group-pane-popup")); gtk_menu_popup_at_pointer (GTK_MENU(menu),(GdkEvent*) event); } namespace { gboolean on_row_activated_idle (gpointer pane_g) { static_cast(pane_g)->_action_manager.activate_action ("read-selected-group"); return false; } } void GroupPane :: on_row_activated (GtkTreeView * , GtkTreePath * , GtkTreeViewColumn * , gpointer pane_g) { // user may have activated by selecting the row... wait for the GtkTreeSelection to catch up g_idle_add (on_row_activated_idle, pane_g); } namespace { bool row_collapsed_or_expanded (false); void row_collapsed_or_expanded_cb (GtkTreeView*, GtkTreeIter*, GtkTreePath*, gpointer) { row_collapsed_or_expanded = true; } struct Blah { GtkTreeView * view; GtkTreePath * path; GtkTreeViewColumn * col; }; gboolean maybe_activate_on_idle_idle (gpointer blah_gpointer) { Blah * blah = (Blah*) blah_gpointer; if (!row_collapsed_or_expanded) gtk_tree_view_row_activated (blah->view, blah->path, blah->col); gtk_tree_path_free (blah->path); g_free (blah); return false; } /** * There doesn't seem to be any way to see if a mouse click in a tree view * happened on the expander or elsewhere in a row, so when deciding whether or * not to activate a row on single click, let's wait and see if a row expands or * collapses. */ void maybe_activate_on_idle (GtkTreeView *view, GtkTreePath *path, GtkTreeViewColumn *col) { row_collapsed_or_expanded = false; Blah * blah = (Blah*) g_new (Blah, 1); blah->view = view; blah->path = path; blah->col = col; g_idle_add (maybe_activate_on_idle_idle, blah); } } gboolean GroupPane :: on_button_pressed (GtkWidget *treeview, GdkEventButton *event, gpointer userdata) { GroupPane * pane (static_cast(userdata)); // single click with the right mouse button? if (event->type == GDK_BUTTON_PRESS && event->button == 3) { GtkTreeSelection * selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview)); GtkTreePath * path; if (gtk_tree_view_get_path_at_pos (GTK_TREE_VIEW(treeview), (gint)event->x, (gint)event->y, &path, nullptr, nullptr, nullptr)) { if (!gtk_tree_selection_path_is_selected (selection, path)) { gtk_tree_selection_unselect_all (selection); gtk_tree_selection_select_path (selection, path); } gtk_tree_path_free (path); } do_popup_menu (treeview, event, userdata); return true; } else if (pane->_prefs.get_flag("single-click-activates-group",true) && (event->type == GDK_BUTTON_RELEASE) && (event->button == 1) && (event->send_event == false) && (event->window == gtk_tree_view_get_bin_window (GTK_TREE_VIEW(treeview))) && !(event->state & (GDK_SHIFT_MASK|GDK_CONTROL_MASK|GDK_MOD1_MASK)) && (pane->get_full_selection().size() == 1u)) { GtkTreePath * path; GtkTreeViewColumn * col; gint cell_x(0), cell_y(0); if (gtk_tree_view_get_path_at_pos(GTK_TREE_VIEW(treeview), (gint) event->x, (gint) event->y, &path, &col, &cell_x, &cell_y)) maybe_activate_on_idle (GTK_TREE_VIEW(treeview), path, col); } else if ((event->type == GDK_BUTTON_RELEASE) && (event->button == 2) && (event->send_event == false) && (event->window == gtk_tree_view_get_bin_window (GTK_TREE_VIEW(treeview)))) { pane->_action_manager.activate_action ("clear-header-pane"); pane->_action_manager.activate_action ("clear-body-pane"); } return false; } gboolean GroupPane :: on_popup_menu (GtkWidget *treeview, gpointer userdata) { do_popup_menu (treeview, nullptr, userdata); return true; } namespace { typedef std::vector tree_iters_t; struct MyRowLessThan { bool operator()(MyRow const *a, MyRow const *b) const { return a->groupname < b->groupname; } }; typedef sorted_vector rows_t; rows_t _group_rows; MyRow *find_row(Quark const &groupname) { MyRow tmp; tmp.groupname = groupname; rows_t::iterator it = _group_rows.find (&tmp); return it==_group_rows.end() ? nullptr : *it; } void delete_rows (gpointer data, GObject*) { delete [] static_cast(data); } // give PanTreeStore a noop row dispose functor // since we allocate our rows in a block. struct NoopRowDispose: public PanTreeStore::RowDispose { virtual ~NoopRowDispose () { } virtual void row_dispose (PanTreeStore*, PanTreeStore::Row*) { } }; NoopRowDispose noop_row_dispose; namespace { //Local folders static char const *folders_groupnames[] = {_("Sent"), _("Drafts")}; } PanTreeStore *build_model(Data const &data, TextMatch const *match, tree_iters_t &expandme, rows_t &setme_rows) { // build the model... PanTreeStore * store = PanTreeStore :: new_tree (COL_QTY, G_TYPE_ULONG); // unread store->set_row_dispose (&noop_row_dispose); // find the groups that we'll be adding. std::vector groups, local_folders, sub, unsub; data.get_other_groups (groups); find_matching_groups (match, groups, unsub); groups.clear (); data.get_subscribed_groups (groups); find_matching_groups (match, groups, sub); std::vector& group_rows (setme_rows.get_container()); group_rows.clear (); group_rows.reserve (sub.size() + unsub.size()); MyRow * headers = new MyRow[3]; headers[0].groupname = *virtual_title_quark; headers[1].groupname = *sub_title_quark; headers[2].groupname = *other_title_quark; g_object_weak_ref (G_OBJECT(store), delete_rows, headers); // // local folders // MyRow * row = &headers[0]; store->append (nullptr, row); { const size_t n (G_N_ELEMENTS(folders_groupnames)); std::vector appendme; appendme.reserve (n); MyRow *rows(new MyRow [n]), *r(rows); g_object_weak_ref (G_OBJECT(store), delete_rows, rows); Article_Count unused; for (size_t i(0); i!=n; ++i, ++r) { r->groupname = folders_groupnames[i]; data.get_group_counts (r->groupname, r->unread, unused); appendme.push_back (r); group_rows.push_back (r); } store->append (row, appendme); expandme.push_back (store->get_iter (row)); } // // subscribed // row = &headers[1]; store->append (nullptr, row); if (!sub.empty()) { const size_t n (sub.size()); std::vector appendme; appendme.reserve (n); MyRow *rows(new MyRow [n]), *r(rows); g_object_weak_ref (G_OBJECT(store), delete_rows, rows); Article_Count unused; for (size_t i(0); i!=n; ++i, ++r) { r->groupname = sub[i]; data.get_group_counts (r->groupname, r->unread, unused); appendme.push_back (r); group_rows.push_back (r); } store->append (row, appendme); expandme.push_back (store->get_iter (row)); } // // unsubscribed // row = &headers[2]; store->append (nullptr, row); if (!unsub.empty()) { const size_t n (unsub.size()); std::vector appendme; appendme.reserve (n); MyRow *rows(new MyRow[n]), *r(rows); g_object_weak_ref (G_OBJECT(store), delete_rows, rows); Article_Count unused; for (size_t i(0); i!=n; ++i, ++r) { r->groupname = unsub[i]; data.get_group_counts (r->groupname, r->unread, unused); appendme.push_back (r); group_rows.push_back (r); } store->append (row, appendme); // only expand the unsub expander if user specified search criteria, // or if there's no criteria and no subscribed groups (first-time usrs). // otherwise it's a flood of thousands of groups. // they can click the expander themselves to get that, bool const user_did_search(match != nullptr); if (!unsub.empty() && (user_did_search || sub.empty())) expandme.push_back (store->get_iter (row)); } //Use a stable sort to ensure that if there are newsgroups called Sent //or Drafts on the server (yes, it does happen!) and you have the local //version selected on exit, it reselects the local one on restart. //With normal sort, a random one of the two is picked, which is seriously //disconcerting. setme_rows.stable_sort (); return store; } } /*** **** Data listener ***/ void GroupPane ::on_group_subscribe(Quark const &groupname, bool sub) { GtkTreeModel * model (GTK_TREE_MODEL (_tree_store)); // find out where it should be moved to int pos (0); GtkTreeIter section_iter, group_iter; if (gtk_tree_model_iter_nth_child (model, §ion_iter, nullptr, (sub?1:2))) { if (gtk_tree_model_iter_children (model, &group_iter, §ion_iter)) do { MyRow * row (dynamic_cast(_tree_store->get_row (&group_iter))); if (groupname.to_string() < row->groupname.c_str()) break; ++pos; } while (gtk_tree_model_iter_next (model, &group_iter)); } // move the row _tree_store->reparent (_tree_store->get_row(§ion_iter), find_row(groupname), pos); // make sure it's visible... if (sub) { GtkTreePath * path = gtk_tree_model_get_path (model, §ion_iter); gtk_tree_view_expand_row (GTK_TREE_VIEW(_tree_view), path, false); gtk_tree_path_free (path); } } void GroupPane :: refresh_dirty_groups () { foreach_const (quarks_t, _dirty_groups, it) { MyRow * row (find_row (*it)); if (row) { Article_Count unused; _data.get_group_counts (row->groupname, row->unread, unused); _tree_store->row_changed (row); } } _dirty_groups_idle_tag = 0; _dirty_groups.clear (); } gboolean GroupPane :: dirty_groups_idle (gpointer user_data) { static_cast(user_data)->refresh_dirty_groups (); return false; } void GroupPane ::on_group_read(Quark const &groupname) { _dirty_groups.insert (groupname); if (!_dirty_groups_idle_tag) _dirty_groups_idle_tag = g_timeout_add (333, dirty_groups_idle, this); } void GroupPane ::on_group_counts(Quark const &groupname, Article_Count, Article_Count) { on_group_read (groupname); } /*** **** Newsgroup Filtering ***/ namespace { void expand_iterators(tree_iters_t const &iters, GtkTreeModel *model, GtkTreeView *view) { foreach_const (tree_iters_t, iters, it) { GtkTreePath *path = gtk_tree_model_get_path(model, const_cast(&*it)); gtk_tree_view_expand_row(view, path, true); gtk_tree_path_free(path); } } char const *mode_strings[] = {N_("Group"), N_("Group (regex)")}; enum { _GROUP, _GROUP_REGEX }; } void GroupPane ::set_filter(std::string const &search_text, int mode) { GtkTreeView * view = GTK_TREE_VIEW(_tree_view); // get the current selection const quarks_v selected_groups (get_full_selection ()); // pmatch will point to a local TextMatch matching on the filter-phrase, // or be a nullptr pointer if the filter-phrase is empty TextMatch match; TextMatch * pmatch (nullptr); if (!search_text.empty()) { if (mode == _GROUP) match.set (search_text, TextMatch::CONTAINS, false); else if (mode == _GROUP_REGEX) match.set (search_text, TextMatch::REGEX, false); pmatch = &match; } // build and use the new store tree_iters_t iters; PanTreeStore * store = build_model (_data, pmatch, iters, _group_rows); _tree_store = store; gtk_tree_view_set_model(view, GTK_TREE_MODEL(store)); g_object_unref (G_OBJECT(store)); // expand whatever paths need to be expanded expand_iterators (iters, GTK_TREE_MODEL(store), GTK_TREE_VIEW(_tree_view)); // restore the selection GtkTreeSelection * selection (gtk_tree_view_get_selection (view)); foreach_const (quarks_v, selected_groups, it) { MyRow * row (find_row (*it)); if (row) { GtkTreeIter iter = store->get_iter (row); gtk_tree_selection_select_iter (selection, &iter); } } } namespace { guint entry_changed_tag (0u); guint activate_soon_tag (0u); std::string search_text; int mode; void set_search_entry(GtkWidget *entry, char const *s) { g_signal_handler_block (entry, entry_changed_tag); gtk_entry_set_text (GTK_ENTRY(entry), s); g_signal_handler_unblock (entry, entry_changed_tag); } gboolean search_entry_focus_in_cb (GtkWidget * w, GdkEventFocus * , gpointer ) { set_search_entry (w, search_text.c_str()); return false; } void search_activate (GroupPane * pane) { pane->set_filter (search_text, mode); } void remove_activate_soon_tag () { if (activate_soon_tag != 0) { g_source_remove (activate_soon_tag); activate_soon_tag = 0; } } void search_entry_activated (GtkEntry*, gpointer pane_gpointer) { search_activate (static_cast(pane_gpointer)); remove_activate_soon_tag (); } void entry_icon_released (GtkEntry*, GtkEntryIconPosition icon_pos, GdkEventButton* event, gpointer menu) { if (icon_pos == GTK_ENTRY_ICON_PRIMARY) gtk_menu_popup_at_pointer (GTK_MENU(menu), (GdkEvent*) event); } void clear_button_clicked_cb (GtkEntry * e, GtkEntryIconPosition icon_pos, GdkEventButton *, gpointer pane_gpointer) { if (icon_pos == GTK_ENTRY_ICON_SECONDARY) { set_search_entry (GTK_WIDGET(e), ""); search_text.clear (); search_entry_activated (nullptr, pane_gpointer); } } gboolean activated_timeout_cb (gpointer pane_gpointer) { search_activate (static_cast(pane_gpointer)); remove_activate_soon_tag (); return false; // remove the source } void bump_activate_soon_tag (GroupPane * pane) { remove_activate_soon_tag (); activate_soon_tag = g_timeout_add (1000, activated_timeout_cb, pane); } void search_entry_changed_by_user (GtkEditable * e, gpointer pane_gpointer) { search_text = gtk_entry_get_text (GTK_ENTRY(e)); bump_activate_soon_tag (static_cast(pane_gpointer)); } // when the search mode is changed via the menu, // update our state variable and bump the activate timeout. void search_menu_toggled_cb (GtkCheckMenuItem * menu_item, gpointer entry_g) { if (gtk_check_menu_item_get_active (menu_item)) { mode = GPOINTER_TO_INT (g_object_get_data (G_OBJECT(menu_item), "MODE")); GroupPane * h = (GroupPane*) g_object_get_data ( G_OBJECT(entry_g), "group-pane"); bump_activate_soon_tag (h); } } } void GroupPane :: on_grouplist_rebuilt () { search_activate (this); } namespace { bool shorten; std::string def_fg, def_bg; void render_group_name (GtkTreeViewColumn * , GtkCellRenderer * renderer, GtkTreeModel * model, GtkTreeIter * iter, gpointer gp) { GroupPane* pane (static_cast(gp)); PanTreeStore * tree (PAN_TREE_STORE(model)); MyRow * row (dynamic_cast(tree->get_row (iter))); Article_Count const &unread(row->unread); //const unsigned long& total (row->total); Quark const &name(row->groupname); bool const is_g(is_group(name)); bool const do_shorten(shorten && is_g); std::string group_name (do_shorten ? get_short_name(StringView(name)) : name.to_string()); if (is_g && static_cast(unread) != 0) { char buf[64]; g_snprintf (buf, sizeof(buf), " (%llu)", static_cast(unread)); group_name += buf; } std::string fg_col(pane->get_group_prefs().get_group_color_str(name)); if (fg_col.empty()) { fg_col = pane->get_prefs().get_color_str_wo_fallback("group-pane-color-fg"); if (fg_col.empty()) fg_col = def_fg; } std::string bg_col (pane->get_prefs().get_color_str_wo_fallback("group-pane-color-bg")); if (bg_col.empty()) bg_col = def_bg; g_object_set (renderer, "text", group_name.c_str(), "weight", (!is_g || static_cast(unread) != 0 ? PANGO_WEIGHT_BOLD : PANGO_WEIGHT_NORMAL), "foreground", fg_col.empty() ? nullptr : fg_col.c_str(), "background", bg_col.empty() ? nullptr : bg_col.c_str(), nullptr); } } void GroupPane :: set_name_collapse (bool b) { shorten = b; gtk_widget_queue_draw (_tree_view); } /*** **** ***/ /** * Walk circularly through the subscribed groups, * looking for the next one after our current * selection, possibly only ones with unread messages. */ GtkTreePath* GroupPane :: find_next_subscribed_group (bool unread_only) { GtkTreeView * view (GTK_TREE_VIEW(_tree_view)); GtkTreeModel * model (gtk_tree_view_get_model (view)); // find how many subscribed groups the tree's got GtkTreeIter sub_iter, virtual_iter; gtk_tree_model_iter_nth_child (model, &sub_iter, nullptr, 1); // 'sub' node int n_groups = gtk_tree_model_iter_n_children (model, &sub_iter); if (n_groups < 1) return nullptr; // find the index of the current selection // (or -1 if no subscribed groups are selected) int start_pos = -1; GtkTreeIter sel_iter; const Quark group = get_first_selection (); if (!group.empty()) { MyRow const *row = find_row(group); sel_iter = PAN_TREE_STORE(model)->get_iter (row); GtkTreePath * path = gtk_tree_model_get_path (model, &sel_iter); gint depth = gtk_tree_path_get_depth (path); gint* indices = gtk_tree_path_get_indices (path); if (depth==2 && indices[0]==1) // a subscribed group is selected start_pos = indices[1]; gtk_tree_path_free (path); } // loop through the `sub' node's children looking for // groups that match our criteria. int n = start_pos; for (;;) { if (++n == n_groups) { if (start_pos == -1) return nullptr; n = 0; } if (n == start_pos) return nullptr; GtkTreeIter group_iter; gtk_tree_model_iter_nth_child (model, &group_iter, &sub_iter, n); MyRow const *row(dynamic_cast(_tree_store->get_row(&group_iter))); bool const is_virtual(is_virtual_group(row->groupname)); if (!is_virtual && (static_cast(row->unread) != 0 || !unread_only)) return gtk_tree_model_get_path (model, &group_iter); } } void GroupPane ::read_group(StringView const &groupname) { GtkTreeView * view (GTK_TREE_VIEW (_tree_view)); PanTreeStore * tree (PAN_TREE_STORE(gtk_tree_view_get_model(view))); GtkTreeIter iter; MyRow const *row = find_row(groupname); if(!row) { return; } iter = tree->get_iter (row); GtkTreePath *path = gtk_tree_model_get_path(gtk_tree_view_get_model(view), &iter); read_group (path); gtk_tree_path_free (path); } void GroupPane :: read_group (GtkTreePath * path) { g_assert (path); GtkTreeView * view (GTK_TREE_VIEW (_tree_view)); GtkTreeSelection * sel (gtk_tree_view_get_selection (view)); gtk_tree_view_expand_row (view, path, true); gtk_tree_view_expand_to_path (view, path); gtk_tree_view_set_cursor (view, path, nullptr, false); gtk_tree_view_scroll_to_cell (view, path, nullptr, true, 0.5f, 0.0f); gtk_tree_selection_unselect_all (sel); gtk_tree_selection_select_path (sel, path); _action_manager.activate_action ("read-selected-group"); } void GroupPane :: read_next_group_impl (bool unread_only) { GtkTreePath * path = find_next_subscribed_group (unread_only); if (path) { read_group (path); gtk_tree_path_free (path); } } void GroupPane :: read_next_unread_group () { read_next_group_impl (true); } void GroupPane :: read_next_group () { read_next_group_impl (false); } /*** **** ***/ namespace { gboolean select_func (GtkTreeSelection * , GtkTreeModel * model, GtkTreePath * path, gboolean , gpointer ) { GtkTreeIter iter; PanTreeStore * store (PAN_TREE_STORE(model)); bool const row_can_be_selected = gtk_tree_model_get_iter(model, &iter, path) && is_group(dynamic_cast(store->get_row(&iter))->groupname); return row_can_be_selected; } } GtkWidget* GroupPane :: create_filter_entry () { GtkWidget * entry = gtk_entry_new (); g_object_set_data (G_OBJECT(entry), "group-pane", this); gtk_entry_set_icon_from_icon_name( GTK_ENTRY( entry ), GTK_ENTRY_ICON_SECONDARY, "edit-clear" ); gtk_entry_set_icon_from_icon_name( GTK_ENTRY( entry ), GTK_ENTRY_ICON_PRIMARY, "edit-find" ); // gtk_widget_set_size_request (entry, 133, -1); _action_manager.disable_accelerators_when_focused (entry); g_signal_connect (entry, "focus-in-event", G_CALLBACK(search_entry_focus_in_cb), nullptr); g_signal_connect (entry, "activate", G_CALLBACK(search_entry_activated), this); g_signal_connect (entry, "icon-release", G_CALLBACK(clear_button_clicked_cb), this); entry_changed_tag = g_signal_connect (entry, "changed", G_CALLBACK(search_entry_changed_by_user), this); GtkWidget * menu = gtk_menu_new (); bool regex = _prefs.get_flag ("use-regex", false); if ( regex == true ) mode = 1; else mode = 0; GSList * l = nullptr; for (int i=0, qty=G_N_ELEMENTS(mode_strings); i(pane_gpointer)); Quark group (self->get_first_selection()); bool const have_group = is_group(group); static char const *actions_that_require_a_group[] = { "show-group-preferences-dialog", "subscribe", "unsubscribe", "read-selected-group", "mark-groups-read", "delete-groups-articles", "get-new-headers-in-selected-groups", "download-headers"}; static char const *actions_in_nonvirtual_group[] = { "show-group-preferences-dialog", "subscribe", "unsubscribe", "get-new-headers-in-selected-groups", "download-headers", "refresh-group-list", "get-new-headers-in-subscribed-groups", "post"}; for (int i=0, n=G_N_ELEMENTS(actions_that_require_a_group); i_action_manager.sensitize_action (actions_that_require_a_group[i], have_group); // disable some functions for virtual mailbox folder for (int i=0, n=G_N_ELEMENTS(actions_in_nonvirtual_group); i_action_manager.hide_action (actions_in_nonvirtual_group[i], is_virtual_group(group)); } GroupPane :: GroupPane (ActionManager& action_manager, Data& data, Prefs& prefs, GroupPrefs& group_prefs): _prefs (prefs), _group_prefs(group_prefs), _data (data), _tree_view (nullptr), _action_manager (action_manager), _dirty_groups_idle_tag (0) { PanColors const &colors(PanColors::get()); def_bg = colors.def_bg; def_fg = colors.def_fg; shorten = prefs.get_flag ("shorten-group-names", false); virtual_title_quark = new Quark (_("Local Folders")); sub_title_quark = new Quark (_("Subscribed Groups")); other_title_quark = new Quark (_("Other Groups")); // build this first because _tree_view is needed for a callback... tree_iters_t iters; _tree_store = build_model (_data, nullptr, iters, _group_rows); _tree_view = gtk_tree_view_new_with_model (GTK_TREE_MODEL(_tree_store)); g_object_unref (G_OBJECT(_tree_store)); // will die with the view gtk_tree_view_set_enable_search (GTK_TREE_VIEW(_tree_view), false); gtk_tree_view_set_headers_visible (GTK_TREE_VIEW(_tree_view), false); gtk_tree_view_set_fixed_height_mode (GTK_TREE_VIEW(_tree_view), true); gtk_tree_view_set_rubber_banding (GTK_TREE_VIEW(_tree_view), true); expand_iterators (iters, GTK_TREE_MODEL(_tree_store), GTK_TREE_VIEW(_tree_view)); GtkTreeSelection * selection (gtk_tree_view_get_selection (GTK_TREE_VIEW(_tree_view))); gtk_tree_selection_set_mode (selection, GTK_SELECTION_MULTIPLE); gtk_tree_selection_set_select_function (selection, select_func, nullptr, nullptr); g_signal_connect (selection, "changed", G_CALLBACK(on_selection_changed), this); on_selection_changed (selection, this); g_signal_connect (_tree_view, "row_collapsed", G_CALLBACK(row_collapsed_or_expanded_cb), nullptr); g_signal_connect (_tree_view, "row_expanded", G_CALLBACK(row_collapsed_or_expanded_cb), nullptr); g_signal_connect (_tree_view, "button-press-event", G_CALLBACK(on_button_pressed), this); g_signal_connect (_tree_view, "button-release-event", G_CALLBACK(on_button_pressed), this); g_signal_connect (_tree_view, "popup-menu", G_CALLBACK(on_popup_menu), this); g_signal_connect (_tree_view, "row-activated", G_CALLBACK(on_row_activated), this); GtkWidget * scroll = gtk_scrolled_window_new (nullptr, nullptr); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW(scroll), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW(scroll), GTK_SHADOW_IN); gtk_container_add (GTK_CONTAINER(scroll), _tree_view); int const xpad(prefs.get_int("tree-view-row-margins", 1)); GtkCellRenderer *text_renderer = GTK_CELL_RENDERER(g_object_new( GTK_TYPE_CELL_RENDERER_TEXT, "ypad", 0, "xpad", xpad, nullptr)); GtkTreeViewColumn *col = gtk_tree_view_column_new(); gtk_tree_view_column_set_sizing(col, GTK_TREE_VIEW_COLUMN_FIXED); gtk_tree_view_column_set_fixed_width(col, 200); gtk_tree_view_column_set_resizable(col, true); gtk_tree_view_column_set_title(col, _("Name")); gtk_tree_view_append_column(GTK_TREE_VIEW(_tree_view), col); gtk_tree_view_set_expander_column(GTK_TREE_VIEW(_tree_view), col); gtk_tree_view_column_pack_start(col, text_renderer, true); gtk_tree_view_column_set_cell_data_func( col, text_renderer, render_group_name, this, nullptr); _root = scroll; _data.add_listener (this); _prefs.add_listener (this); refresh_font (); } GroupPane :: ~GroupPane () { delete virtual_title_quark; delete sub_title_quark; delete other_title_quark; _prefs.remove_listener (this); _data.remove_listener (this); } /*** **** ***/ void GroupPane :: refresh_font () { // TODO: cleanup calls to gtk_widget_override_font. This requires // changing font with CSS. This impact how to set preferences->Font // item if (!_prefs.get_flag ("group-pane-font-enabled", false)) gtk_widget_override_font (_tree_view, nullptr); else { const std::string str (_prefs.get_string ("group-pane-font", "Sans 10")); PangoFontDescription * pfd (pango_font_description_from_string (str.c_str())); gtk_widget_override_font (_tree_view, pfd); pango_font_description_free (pfd); } } void GroupPane ::on_prefs_flag_changed(StringView const &key, bool) { if (key == "group-pane-font-enabled") refresh_font (); } void GroupPane ::on_prefs_string_changed(StringView const &key, StringView const &) { if (key == "group-pane-font") refresh_font (); } void GroupPane ::on_prefs_color_changed(StringView const &key, GdkRGBA const &) { if (key == "group-color") refresh_dirty_groups (); refresh_font (); } pan-0.162/pan/gui/group-pane.h000066400000000000000000000072561475412772400161170ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #ifndef _GroupPane_h_ #define _GroupPane_h_ #include #include #include #include #include #include #include #include namespace pan { /** * Group Pane in the main window of Pan's GUI. * @ingroup GUI */ class GroupPane: private Data::Listener, private Prefs::Listener { protected: // Data::Listener virtual void on_grouplist_rebuilt () override; virtual void on_group_read (const Quark& group) override; virtual void on_group_subscribe (const Quark& group, bool sub) override; virtual void on_group_counts (const Quark& group, Article_Count unread, Article_Count total) override; public: GroupPane (ActionManager&, Data&, Prefs&, GroupPrefs&); ~GroupPane (); GtkWidget* root () { return _root; } GtkWidget* get_default_focus_widget() { return _tree_view; } GtkWidget* create_filter_entry (); void set_name_collapse (bool); Quark get_first_selection () const; quarks_v get_full_selection () const; void read_next_unread_group (); void read_next_group (); private: Prefs& _prefs; GroupPrefs& _group_prefs; Data& _data; bool _collapsed; GtkWidget * _root; GtkWidget * _tree_view; PanTreeStore * _tree_store; public: GroupPrefs& get_group_prefs() { return _group_prefs; } Prefs& get_prefs() { return _prefs; } private: GtkTreePath* find_next_subscribed_group (bool unread_only); void read_group (GtkTreePath*); void read_next_group_impl (bool unread_only); public: void read_group (const StringView&); static bool is_virtual_group (const Quark& group); private: static void do_popup_menu (GtkWidget*, GdkEventButton*, gpointer); static gboolean on_button_pressed (GtkWidget*, GdkEventButton*, gpointer); static gboolean on_popup_menu (GtkWidget*, gpointer); static void on_row_activated (GtkTreeView*, GtkTreePath*, GtkTreeViewColumn*, gpointer); static void on_selection_changed (GtkTreeSelection*, gpointer); void refresh_font (); public: // pretend these are private void set_filter (const std::string& text, int mode); const ActionManager& _action_manager; private: void on_prefs_flag_changed (const StringView& key, bool value) override; void on_prefs_int_changed (const StringView&, int) override { } void on_prefs_string_changed (const StringView& key, const StringView& value) override; void on_prefs_color_changed (const StringView&, const GdkRGBA&) override; private: quarks_t _dirty_groups; guint _dirty_groups_idle_tag; static gboolean dirty_groups_idle (gpointer); void refresh_dirty_groups (); }; } #endif pan-0.162/pan/gui/group-prefs-dialog.cc000066400000000000000000000227671475412772400177120ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #include "group-prefs-dialog.h" #include #include #include #include #include #ifdef HAVE_GTKSPELL #include #endif #include #include #include #include "e-charset-combo-box.h" #include "hig.h" #include "pad.h" #include "pan-file-entry.h" #include "pan-colors.h" #include namespace pan { namespace { struct Langs { GList* langs; }; static void dict_describe_cb(const char * const lang_tag, const char * const provider_name, const char * const provider_desc, const char * const provider_file, void * user_data) { Langs *langs = (Langs *)user_data; langs->langs = g_list_insert_sorted(langs->langs, g_strdup(lang_tag), (GCompareFunc) strcmp); } #ifdef HAVE_GTKSPELL static EnchantBroker *broker = nullptr; static GList *langs = nullptr; static GtkTextView* view = nullptr; Langs l; #endif void init_spell() { #ifdef HAVE_GTKSPELL view = GTK_TEXT_VIEW(gtk_text_view_new()); broker = enchant_broker_init(); l.langs = langs; enchant_broker_list_dicts(broker, dict_describe_cb, &l); #endif } void deinit_spell() { #ifdef HAVE_GTKSPELL if (view) g_object_ref_sink(view); if (broker) enchant_broker_free(broker); #endif } void delete_dialog (gpointer castme) { delete static_cast(castme); } } void GroupPrefsDialog :: save_from_gui () { // charset... const char * tmp = e_charset_combo_box_get_charset (E_CHARSET_COMBO_BOX(_charset)); foreach_const (quarks_v, _groups, it) _group_prefs.set_string (*it, "character-encoding", tmp); // posting profile... std::string profile; if (gtk_widget_get_sensitive (_profile)) { char * pch (gtk_combo_box_text_get_active_text (GTK_COMBO_BOX_TEXT(_profile))); foreach_const (quarks_v, _groups, it) _group_prefs.set_string (*it, "posting-profile", pch); g_free (pch); } // save path... const char * pch (file_entry_get (_save_path)); foreach_const (quarks_v, _groups, it) _group_prefs.set_string (*it, "default-group-save-path", pch); // spellchecker language #ifdef HAVE_GTKSPELL GtkTreeIter iter; if (!gtk_combo_box_get_active_iter (GTK_COMBO_BOX(_spellchecker_language), &iter)) return; gchar* name(nullptr); GtkTreeModel* model = gtk_combo_box_get_model (GTK_COMBO_BOX(_spellchecker_language)); gtk_tree_model_get (model, &iter, 0, &name, -1); if (name) { foreach_const (quarks_v, _groups, it) _group_prefs.set_string (*it, "spellcheck-language", name); g_free(name); } #endif _group_prefs.save () ; } void GroupPrefsDialog :: response_cb (GtkDialog * dialog, int , gpointer user_data) { static_cast(user_data)->save_from_gui (); gtk_widget_destroy (GTK_WIDGET(dialog)); } namespace { GtkWidget* create_profiles_combo_box (const Data & data, const quarks_v & groups, const GroupPrefs & group_prefs) { GtkWidget * w = gtk_combo_box_text_new (); GtkComboBoxText * combo (GTK_COMBO_BOX_TEXT (w)); typedef std::set unique_strings_t; const unique_strings_t profiles (data.get_profile_names ()); if (profiles.empty()) { gtk_combo_box_text_append_text (combo, _("No Profiles defined in Edit|Posting Profiles.")); gtk_combo_box_set_active (GTK_COMBO_BOX(combo), 0); gtk_widget_set_sensitive (w, false); } else { const std::string s (group_prefs.get_string (groups[0], "posting-profile", "")); int i(0), sel_index (0); foreach_const (unique_strings_t, profiles, it) { if (*it == s) sel_index = i; ++i; gtk_combo_box_text_append_text (combo, it->c_str()); } gtk_combo_box_set_active (GTK_COMBO_BOX(combo), sel_index); } return w; } GtkWidget* create_spellcheck_combo_box ( const Quark & group, const GroupPrefs & group_prefs) { GtkWidget * w(nullptr); #ifdef HAVE_GTKSPELL init_spell(); deinit_spell(); GtkTreeModel *model; GtkListStore * store = gtk_list_store_new (1, G_TYPE_STRING); GtkTreeIter iter, storeit; bool valid(false); std::string lang = group_prefs.get_string(group, "spellcheck-language",""); while (l.langs) { gchar* data = (gchar*)l.langs->data; if (data) { gtk_list_store_append (store, &iter); gtk_list_store_set (store, &iter, 0, data, -1); if (g_strcmp0 ((const char*)l.langs->data,lang.c_str())==0) { storeit = iter; valid=true; } } l.langs = l.langs->next; } model = GTK_TREE_MODEL(store); w = gtk_combo_box_new_with_model (model); g_object_unref(store); GtkCellRenderer * renderer (gtk_cell_renderer_text_new ()); gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (w), renderer, TRUE); gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (w), renderer, "text", 0, nullptr); if (valid) gtk_combo_box_set_active_iter (GTK_COMBO_BOX(w), &storeit); if (l.langs) g_list_free(l.langs); #endif return w; } void color_set_cb (GtkColorButton* b, gpointer p) { GroupPrefsDialog* dialog = static_cast(p); GdkRGBA val; gtk_color_chooser_get_rgba ((GtkColorChooser*)b, &val); { foreach_const (quarks_v, dialog->get_groups(), it) dialog->get_prefs().set_group_color(*it, val); } } GtkWidget* new_color_button (const Quark& group, Prefs& prefs, GroupPrefs& gprefs, GroupPrefsDialog* dialog, GtkWidget* w) { const PanColors& colors (PanColors::get()); const std::string& def_fg (colors.def_fg); const std::string& fg (prefs.get_color_str("group-pane-color-fg", def_fg)); const GdkRGBA& val (gprefs.get_group_color (group, fg)); GtkWidget * b = gtk_color_button_new_with_rgba(&val); g_signal_connect (b, "color-set", G_CALLBACK(color_set_cb), dialog); return b; } } GroupPrefsDialog :: GroupPrefsDialog (Data & data, const quarks_v & groups, Prefs & prefs, GroupPrefs & group_prefs, GtkWindow * parent_window): _groups (groups), _prefs(prefs), _group_prefs (group_prefs) { GtkWidget * dialog = gtk_dialog_new_with_buttons (_("Pan: Group Preferences"), parent_window, GTK_DIALOG_DESTROY_WITH_PARENT, GTK_STOCK_CLOSE, GTK_RESPONSE_CLOSE, nullptr); gtk_window_set_role (GTK_WINDOW(dialog), "pan-group-dialog"); g_signal_connect (dialog, "response", G_CALLBACK(response_cb), this); g_signal_connect_swapped (dialog, "destroy", G_CALLBACK(delete_dialog), this); int row (0); GtkWidget *t, *w, *l; t = HIG :: workarea_create (); char buf[512]; if (groups.size() != 1) g_snprintf (buf, sizeof(buf), _("Properties for Groups")); else g_snprintf (buf, sizeof(buf), _("Properties for %s"), groups[0].c_str()); HIG::workarea_add_section_title (t, &row, buf); HIG :: workarea_add_section_spacer (t, row, 4); w = _charset = e_charset_combo_box_new( ); e_charset_combo_box_set_charset( E_CHARSET_COMBO_BOX(w), _group_prefs.get_string (groups[0], "character-encoding", "UTF-8").c_str() ); HIG :: workarea_add_row (t, &row, _("Character _encoding:"), w); w = _save_path = file_entry_new (_("Directory for Saving Attachments")); char * pch = g_build_filename (g_get_home_dir(), "News", nullptr); std::string dir (_prefs.get_string ("default-save-attachments-path", pch)); if (groups.size() == 1) dir = _group_prefs.get_string (groups[0], "default-group-save-path", dir); g_free (pch); file_entry_set (w, dir.c_str()); HIG :: workarea_add_row (t, &row, _("Directory for _saving attachments:"), w); w = _profile = create_profiles_combo_box (data, groups, group_prefs); l = HIG :: workarea_add_row (t, &row, _("Posting _profile:"), w); gtk_widget_set_sensitive (l, gtk_widget_get_sensitive(w)); #ifdef HAVE_GTKSPELL w = _spellchecker_language = create_spellcheck_combo_box ( groups[0], group_prefs); HIG :: workarea_add_row (t, &row, _("Spellchecker _language:"), w); #endif w = _group_color = new_color_button (groups[0], _prefs, _group_prefs, this, dialog); HIG :: workarea_add_row(t, &row, _("Group color:"), w); gtk_box_pack_start ( GTK_BOX( gtk_dialog_get_content_area( GTK_DIALOG( dialog))), t, true, true, 0); _root = dialog; gtk_widget_show_all (t); } } //namespace pan pan-0.162/pan/gui/group-prefs-dialog.h000066400000000000000000000037521475412772400175450ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #ifndef __GroupPrefsDialog_h__ #define __GroupPrefsDialog_h__ #include #include #include #include #include "group-prefs.h" #include "prefs.h" namespace pan { class GroupPrefsDialog { public: GroupPrefsDialog (Data & data, const quarks_v & groups, Prefs & prefs, GroupPrefs & group_prefs, GtkWindow * parent_window); ~GroupPrefsDialog () {} GtkWidget * root() { return _root; } private: const quarks_v _groups; Prefs & _prefs; GroupPrefs & _group_prefs; GtkWidget * _root; GtkWidget * _charset; GtkWidget * _profile; GtkWidget * _spellchecker_language; GtkWidget * _group_color; GtkWidget * _save_path; GdkRGBA _color; private: static void response_cb (GtkDialog*, int, gpointer); void save_from_gui (); public: GtkWidget* get_color_button() { return _group_color; } const quarks_v& get_groups() { return _groups; } GroupPrefs& get_prefs() { return _group_prefs; } }; } #endif pan-0.162/pan/gui/group-prefs.cc000066400000000000000000000133031475412772400164370ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ extern "C" { #include #include // chmod #include // chmod } #include #include #include #include #include #include "group-prefs.h" using namespace pan; bool GroupPrefs ::get_flag (const Quark & group, const StringView & key, bool fallback) const { bool ret (fallback); if (_prefs.count (group)) ret = _prefs[group].get_flag (key, fallback); return ret; } void GroupPrefs :: set_flag (const Quark & group, const StringView & key, bool fallback) { _prefs[group].set_flag (key, fallback); } int GroupPrefs :: get_int (const Quark & group, const StringView & key, int fallback) const { int ret (fallback); if (_prefs.count (group)) ret = _prefs[group].get_int (key, fallback); return ret; } void GroupPrefs :: set_int (const Quark & group, const StringView & key, int fallback) { _prefs[group].set_int (key, fallback); } std::string GroupPrefs :: get_string (const Quark & group, const StringView & key, const StringView & fallback) const { std::string ret (fallback); if (_prefs.count (group)) ret = _prefs[group].get_string (key, fallback); return ret; } void GroupPrefs :: set_string (const Quark & group, const StringView & key, const StringView & fallback) { _prefs[group].set_string (key, fallback); } /*** **** ***/ GroupPrefs :: GroupPrefs () { } GroupPrefs :: GroupPrefs (const StringView& filename): _filename (filename.to_string()) { if (!_filename.empty()) set_from_file (_filename); } GroupPrefs :: ~GroupPrefs () { if (!_filename.empty()) save (); } void GroupPrefs :: save () const { std::ofstream out (_filename.c_str()); out << "\n"; foreach_const (group_prefs_t, _prefs, it) { out << "first << "\">\n"; std::string s; it->second.to_string (2, s); out << s; out << "\n"; } out.close (); chmod (_filename.c_str(), 0600); } namespace { Quark group; } // called for open tags void GroupPrefs :: start_element (GMarkupParseContext *context, const gchar *element_name, const gchar **attribute_names, const gchar **attribute_vals, gpointer group_prefs_gpointer, GError **error) { const std::string s (element_name); GroupPrefs& group_prefs (*static_cast(group_prefs_gpointer)); if (s == "group") { const char * name(nullptr); for (const char **k(attribute_names), **v(attribute_vals); *k; ++k, ++v) if (!strcmp (*k,"name")) name = *v; if (name && *name) group = name; } else if (!group.empty()) { Prefs :: start_element (context, element_name, attribute_names, attribute_vals, &group_prefs._prefs[group], error); } } namespace { void end_element (GMarkupParseContext *, const gchar *element_name, gpointer , GError **) { if (!strcmp (element_name, "group")) group.clear (); } } void GroupPrefs :: from_string (const StringView& xml) { GMarkupParser p; p.start_element = start_element; p.end_element = end_element; p.text = nullptr; p.passthrough = nullptr; p.error = nullptr; GMarkupParseContext* c ( g_markup_parse_context_new (&p, (GMarkupParseFlags)0, this, nullptr)); GError * gerr (nullptr); if (g_markup_parse_context_parse (c, xml.str, xml.len, &gerr)) { // FIXME } g_markup_parse_context_free (c); } void GroupPrefs :: set_from_file (const StringView& filename) { std::string s; if (file :: get_text_file_contents (filename, s)) from_string (s); } std::string GroupPrefs :: get_group_color_str (const Quark& group) const { if (!_prefs[group].get_colors().count("group-color")) return ""; const GdkRGBA& col (_prefs[group].get_colors()["group-color"]); return gdk_rgba_to_string (&col); } GdkRGBA GroupPrefs :: get_group_color (const Quark& group, const StringView& fallback_str) const { GdkRGBA fallback; gdk_rgba_parse (&fallback, fallback_str.to_string().c_str()); return _prefs[group].get_color("group-color", fallback); } void GroupPrefs :: set_group_color (const Quark& group, const GdkRGBA& color) { _prefs[group].set_color("group-color", color); } pan-0.162/pan/gui/group-prefs.h000066400000000000000000000060161475412772400163040ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #include #include #include "prefs.h" #ifndef _GroupPrefs_h_ #define _GroupPrefs_h_ namespace pan { class GroupPrefs { public: bool get_flag (const Quark & group, const StringView & key, bool fallback) const; void set_flag (const Quark & group, const StringView & key, bool fallback); int get_int (const Quark & group, const StringView & key, int fallback) const; void set_int (const Quark & group, const StringView & key, int fallback); std::string get_string (const Quark & group, const StringView & key, const StringView & fallback) const; void set_string (const Quark & group, const StringView & key, const StringView & fallback); void set_group_color (const Quark& group, const GdkRGBA& color); std::string get_group_color_str (const Quark& group) const; GdkRGBA get_group_color (const Quark& group, const StringView& fallback_str) const; protected: static void start_element (GMarkupParseContext *context, const gchar *element_name, const gchar **attribute_names, const gchar **attribute_vals, gpointer group_prefs_gpointer, GError **error); public: GroupPrefs (); GroupPrefs (const StringView& filename); virtual ~GroupPrefs (); void save () const; private: typedef std::map group_prefs_t; mutable group_prefs_t _prefs; private: void from_string (const StringView&); void set_from_file (const StringView& filename); std::string _filename; }; } #endif pan-0.162/pan/gui/gui.cc000066400000000000000000002232731475412772400147630ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #include "pan/gui/load-icon.h" #include #include #include #include #include extern "C" { #include // for chmod #include // for chmod #include } #include #include #include #include #include #include #include #include #include #include #include #include #include #include "actions.h" #include "body-pane.h" #include "dl-headers-ui.h" #include "editor-spawner.h" #include "e-charset-dialog.h" #include "group-pane.h" #include "group-prefs-dialog.h" #include "header-pane.h" #include "hig.h" #include "license.h" #include "log-ui.h" #include "gui.h" #include "pad.h" #include "pan.ui.h" #include "prefs-ui.h" #include "progress-view.h" #include "profiles-dialog.h" #include "post-ui.h" #include "render-bytes.h" #include "save-ui.h" #include "score-add-ui.h" #include "score-view-ui.h" #include "server-ui.h" #include "task-pane.h" #include "url.h" #include #include #include "profiles-dialog.h" #include namespace { std::string get_accel_filename () { char * tmp = g_build_filename (file::get_pan_home().c_str(), "accels.txt", nullptr); std::string ret (tmp); g_free (tmp); return ret; } } namespace pan { void pan_box_pack_start_defaults (GtkBox * box, GtkWidget * child) { gtk_box_pack_start( box, child, TRUE, TRUE, 0 ); } void remove_from_parent (GtkWidget * w) { GtkWidget *parent = gtk_widget_get_parent(w); if (parent != nullptr) gtk_container_remove (GTK_CONTAINER(parent), w); } } using namespace pan; namespace { const int VIEW_QTY = 3; GtkWindow* get_window (GtkWidget* w) { return GTK_WINDOW (gtk_widget_get_toplevel (w)); } void parent_set_cb (GtkWidget * widget, GtkWidget *, gpointer ui_manager_g) { GtkWidget * toplevel = gtk_widget_get_toplevel (widget); if (GTK_IS_WINDOW (toplevel)) { GtkUIManager * ui_manager = static_cast(ui_manager_g); gtk_window_add_accel_group (GTK_WINDOW(toplevel), gtk_ui_manager_get_accel_group (ui_manager)); } } void set_visible (GtkWidget * w, bool visible) { if (!visible) gtk_widget_hide (w); else if (GTK_IS_WINDOW(w)) gtk_window_present (GTK_WINDOW(w)); else gtk_widget_show (w); } void toggle_visible (GtkWidget * w) { set_visible (w, !gtk_widget_get_visible(w)); } } void GUI :: add_widget (GtkUIManager *, GtkWidget * widget, gpointer gui_g) { const char * name (gtk_widget_get_name (widget)); GUI * self (static_cast(gui_g)); if (name && strstr(name,"main-window-")==name) { if (!GTK_IS_TOOLBAR (widget)) { gtk_box_pack_start (GTK_BOX(self->_menu_vbox), widget, FALSE, FALSE, 0); gtk_widget_show (widget); } else { gtk_toolbar_set_style (GTK_TOOLBAR(widget), GTK_TOOLBAR_ICONS); gtk_toolbar_set_icon_size (GTK_TOOLBAR(widget), GTK_ICON_SIZE_SMALL_TOOLBAR); gtk_box_pack_start (GTK_BOX(self->_menu_vbox), widget, FALSE, FALSE, 0); set_visible (widget, self->is_action_active("show-toolbar")); self->_toolbar = widget; } } } void GUI :: show_event_log_cb (GtkWidget *, gpointer gui_gpointer) { static_cast(gui_gpointer)->activate_action ("show-log-dialog"); } void GUI :: show_task_window_cb (GtkWidget *, gpointer gui_gpointer) { static_cast(gui_gpointer)->activate_action ("show-task-window"); } void GUI :: show_download_meter_prefs_cb (GtkWidget *, gpointer gui_gpointer) { static_cast(gui_gpointer)->activate_action ("show-dl-meter-prefs"); } void GUI :: root_realized_cb (GtkWidget*, gpointer self_gpointer) { GUI* gui (static_cast(self_gpointer)); StringView last_group = gui->_prefs.get_string("last-visited-group", ""); if (!last_group.empty()) { gui->_group_pane->read_group(last_group.str); } // TODO if article is not cached, load with a taskarticle action! StringView last_msg = gui->_prefs.get_string("last-opened-msg", ""); if (!last_msg.empty()) { mid_sequence_t files; files.push_back(last_msg); GMimeMessage* msg; #ifdef HAVE_GMIME_CRYPTO GPGDecErr err; msg = gui->_cache.get_message(files,err); #else msg = gui->_cache.get_message(files); #endif gui->_body_pane->set_text_from_message(msg); if (msg) g_object_unref(msg); } } GUI :: GUI (Data& data, Queue& queue, Prefs& prefs, GroupPrefs& group_prefs): _data (data), _queue (queue), _cache (data.get_cache()), _encode_cache (data.get_encode_cache()), _prefs (prefs), _group_prefs (group_prefs), _certstore(data.get_certstore()), _root (gtk_box_new (GTK_ORIENTATION_VERTICAL, 0)), _menu_vbox (gtk_box_new (GTK_ORIENTATION_VERTICAL, 0)), _group_pane (nullptr), _header_pane (nullptr), _body_pane (nullptr), _ui_manager (gtk_ui_manager_new ()), _info_image (gtk_image_new_from_stock (GTK_STOCK_DIALOG_INFO, GTK_ICON_SIZE_MENU)), _error_image (gtk_image_new_from_stock (GTK_STOCK_DIALOG_ERROR, GTK_ICON_SIZE_MENU)), _connection_size_eventbox (nullptr), _connection_size_label (nullptr), _queue_size_label (nullptr), _queue_size_button (nullptr), _taskbar (nullptr) { char * filename = g_build_filename (file::get_pan_home().c_str(), "pan.ui", nullptr); if (!gtk_ui_manager_add_ui_from_file (_ui_manager, filename, nullptr)) gtk_ui_manager_add_ui_from_string (_ui_manager, fallback_ui_file, -1, nullptr); g_free (filename); g_signal_connect (_ui_manager, "add_widget", G_CALLBACK (add_widget), this); add_actions (this, _ui_manager, &prefs, &data); g_signal_connect (_root, "parent-set", G_CALLBACK(parent_set_cb), _ui_manager); gtk_box_pack_start (GTK_BOX(_root), _menu_vbox, FALSE, FALSE, 0); gtk_widget_show (_menu_vbox); _group_pane = new GroupPane (*this, data, _prefs, _group_prefs); _header_pane = new HeaderPane (*this, data, _queue, _cache, _prefs, _group_prefs, *this, *this); _body_pane = new BodyPane (data, _cache, _prefs, _group_prefs, _queue, _header_pane); std::string path = "/ui/main-window-toolbar"; GtkWidget * toolbar = gtk_ui_manager_get_widget (_ui_manager, path.c_str()); path += "/group-pane-filter"; GtkWidget * w = gtk_ui_manager_get_widget (_ui_manager, path.c_str()); int index = gtk_toolbar_get_item_index (GTK_TOOLBAR(toolbar), GTK_TOOL_ITEM(w)); GtkToolItem * item = gtk_tool_item_new (); gtk_container_add (GTK_CONTAINER(item), _group_pane->create_filter_entry()); gtk_widget_show_all (GTK_WIDGET(item)); gtk_toolbar_insert (GTK_TOOLBAR(toolbar), item, index+1); path = "/ui/main-window-toolbar/header-pane-filter"; w = gtk_ui_manager_get_widget (_ui_manager, path.c_str()); index = gtk_toolbar_get_item_index (GTK_TOOLBAR(toolbar), GTK_TOOL_ITEM(w)); item = gtk_tool_item_new (); gtk_container_add (GTK_CONTAINER(item), _header_pane->create_filter_entry()); gtk_widget_show_all (GTK_WIDGET(item)); gtk_toolbar_insert (GTK_TOOLBAR(toolbar), item, index+1); // guint merge_id = gtk_ui_manager_new_merge_id (_ui_manager); // gtk_ui_manager_add_ui (_ui_manager, merge_id, path, "group-pane-filter", nullptr, GTK_UI_MANAGER_TOOLITEM, true); // GtkWidget * item = gtk_ui_manager_get_widget (_ui_manager, path); // gtk_container_add (GTK_CONTAINER(item), _group_pane->create_filter_entry()); // workarea _workarea_bin = gtk_event_box_new (); do_layout (is_action_active ("tabbed-layout")); gtk_box_pack_start (GTK_BOX(_root), _workarea_bin, TRUE, TRUE, 0); gtk_widget_show (_workarea_bin); /** *** Status Bar **/ w = gtk_event_box_new (); gtk_widget_set_size_request (w, -1, PAD_SMALL); gtk_box_pack_start (GTK_BOX(_root), w, false, false, 0); gtk_widget_show (w); GtkWidget * status_bar (gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0)); // connection status w = _connection_size_label = gtk_label_new (nullptr); gtk_misc_set_padding (GTK_MISC(w), PAD, 0); _connection_size_eventbox = gtk_event_box_new (); gtk_container_add (GTK_CONTAINER(_connection_size_eventbox), w); w = _connection_size_eventbox; GtkWidget * frame = gtk_frame_new (nullptr); gtk_container_set_border_width (GTK_CONTAINER(frame), 0); gtk_frame_set_shadow_type (GTK_FRAME(frame), GTK_SHADOW_IN); gtk_container_add (GTK_CONTAINER(frame), w); gtk_box_pack_start (GTK_BOX(status_bar), frame, FALSE, FALSE, 0); // drag and drop for message-ids // gtk_drag_dest_set(_workarea_bin,GTK_DEST_DEFAULT_ALL,target_list,3,GDK_ACTION_COPY); // gtk_drag_dest_add_text_targets(_workarea_bin); // gtk_drag_dest_add_uri_targets(_workarea_bin); // queue w = _queue_size_label = gtk_label_new (nullptr); gtk_misc_set_padding (GTK_MISC(w), PAD, 0); w = _queue_size_button = gtk_button_new(); gtk_widget_set_tooltip_text (w, _("Open the Task Manager")); gtk_button_set_relief (GTK_BUTTON(w), GTK_RELIEF_NONE); g_signal_connect (w, "clicked", G_CALLBACK(show_task_window_cb), this); gtk_container_add (GTK_CONTAINER(w), _queue_size_label); frame = gtk_frame_new (nullptr); gtk_container_set_border_width (GTK_CONTAINER(frame), 0); gtk_frame_set_shadow_type (GTK_FRAME(frame), GTK_SHADOW_IN); gtk_container_add (GTK_CONTAINER(frame), w); gtk_box_pack_start (GTK_BOX(status_bar), frame, FALSE, FALSE, 0); // status item views _taskbar = gtk_table_new (1, VIEW_QTY, TRUE); for (int i=0; iroot(), i, i+1, 0, 1, (GtkAttachOptions)~0, (GtkAttachOptions)~0, 0, 0); _views.push_back (v); } gtk_box_pack_start (GTK_BOX(status_bar), _taskbar, true, true, 0); gtk_widget_show_all (status_bar); // status w = _event_log_button = gtk_button_new (); gtk_widget_set_tooltip_text (w, _("Open the Event Log")); gtk_button_set_relief (GTK_BUTTON(w), GTK_RELIEF_NONE); gtk_box_pack_start (GTK_BOX(status_bar), w, false, false, 0); gtk_container_add (GTK_CONTAINER(w), _info_image); g_signal_connect (w, "clicked", G_CALLBACK(show_event_log_cb), this); gtk_box_pack_start (GTK_BOX(_root), status_bar, false, false, 0); gtk_widget_show_all (status_bar); gtk_widget_show (_root); upkeep_tag = g_timeout_add (3000, upkeep_timer_cb, this); g_object_ref_sink (G_OBJECT(_info_image)); g_object_ref_sink (G_OBJECT(_error_image)); g_object_ref (_group_pane->root()); g_object_ref (_header_pane->root()); g_object_ref (_body_pane->root()); do_work_online (is_action_active ("work-online")); // update the connections label upkeep_timer_cb (this); // update the queue label int active(0), total(0); _queue.get_task_counts (active, total); set_queue_size_label (active, total); if (_prefs.get_flag ("get-new-headers-on-startup", false)) activate_action ("get-new-headers-in-subscribed-groups"); _queue.add_listener (this); _prefs.add_listener (this); _certstore.add_listener(this); Log::get().add_listener (this); _data.add_listener (this); gtk_accel_map_load (get_accel_filename().c_str()); { // make sure taskbar views have the right tasks in them -- // when Pan first starts, the active tasks are already running Queue::task_states_t task_states; queue.get_all_task_states(task_states); foreach(Queue::tasks_t, task_states.tasks, it) { Queue::TaskState s = task_states.get_state(*it); if (s == Queue::RUNNING || s == Queue::DECODING || s == Queue::ENCODING) on_queue_task_active_changed (queue, *(*it), true); } } #ifdef HAVE_GMIME_CRYPTO init_gpg(); #endif g_signal_connect (_root, "realize", G_CALLBACK(root_realized_cb), this); } namespace { GtkWidget * hpane (nullptr); GtkWidget * vpane (nullptr); GtkWidget * sep_vpane (nullptr); } GUI :: ~GUI () { const std::string accel_filename (get_accel_filename()); gtk_accel_map_save (accel_filename.c_str()); chmod (accel_filename.c_str(), 0600); int res(0); if (hpane) { res = gtk_paned_get_position(GTK_PANED(hpane)); if (res > 0) _prefs.set_int ("main-window-hpane-position", res); } if (vpane) { res = gtk_paned_get_position(GTK_PANED(vpane)); if (res > 0) _prefs.set_int ("main-window-vpane-position", res); } if (sep_vpane) { res = gtk_paned_get_position(GTK_PANED(sep_vpane)); if (res > 0) _prefs.set_int ("sep-vpane-position", res); } const bool maximized = gtk_widget_get_window(_root) && (gdk_window_get_state( gtk_widget_get_window(_root)) & GDK_WINDOW_STATE_MAXIMIZED); _prefs.set_flag ("main-window-is-maximized", maximized); g_source_remove (upkeep_tag); std::set unref; unref.insert (_body_pane->root()); unref.insert (_header_pane->root()); unref.insert (_group_pane->root()); unref.insert (_error_image); unref.insert (_info_image); delete _header_pane; delete _group_pane; delete _body_pane; for (size_t i(0), size(_views.size()); i!=size; ++i) delete _views[i]; foreach (std::set, unref, it) g_object_unref (*it); g_object_unref (G_OBJECT(_ui_manager)); #ifdef HAVE_GMIME_CRYPTO deinit_gpg(); #endif if (iconv_inited) iconv_close(conv); _certstore.remove_listener(this); _data.remove_listener(this); _prefs.remove_listener (this); _queue.remove_listener (this); Log::get().remove_listener (this); } /*** **** ***/ void GUI :: watch_cursor_on () { GdkCursor * cursor = gdk_cursor_new (GDK_WATCH); gdk_window_set_cursor ( gtk_widget_get_window(_root), cursor); g_object_unref (cursor); } void GUI :: watch_cursor_off () { gdk_window_set_cursor ( gtk_widget_get_window(_root), nullptr); } /*** **** ***/ namespace { typedef std::map < std::string, GtkAction* > key_to_action_t; key_to_action_t key_to_action; void ensure_action_map_loaded (GtkUIManager * uim) { if (!key_to_action.empty()) return; for (GList * l=gtk_ui_manager_get_action_groups(uim); l!=nullptr; l=l->next) { GtkActionGroup * action_group = GTK_ACTION_GROUP(l->data); GList * actions = gtk_action_group_list_actions (action_group); for (GList * ait(actions); ait; ait=ait->next) { GtkAction * action = GTK_ACTION(ait->data); const std::string name (gtk_action_get_name (action)); key_to_action[name] = action; } g_list_free (actions); } } GtkAction * get_action (const char * name) { key_to_action_t::iterator it = key_to_action.find (name); if (it == key_to_action.end()) { std::cerr << LINE_ID << " can't find action " << name << std::endl; abort (); } return it->second; } } bool GUI :: is_action_active (const char *key) const { ensure_action_map_loaded (_ui_manager); return gtk_toggle_action_get_active (GTK_TOGGLE_ACTION(get_action(key))); } void GUI :: activate_action (const char * key) const { ensure_action_map_loaded (_ui_manager); gtk_action_activate (get_action(key)); } void GUI :: sensitize_action (const char * key, bool b) const { ensure_action_map_loaded (_ui_manager); g_object_set (get_action(key), "sensitive", gboolean(b), nullptr); //gtk_action_set_sensitive (get_action(key), b); } void GUI :: hide_action (const char * key, bool b) const { ensure_action_map_loaded (_ui_manager); g_object_set (get_action(key), "visible", gboolean(!b), nullptr); //gtk_action_set_sensitive (get_action(key), b); } void GUI :: toggle_action (const char * key, bool b) const { ensure_action_map_loaded (_ui_manager); gtk_toggle_action_set_active (GTK_TOGGLE_ACTION(get_action(key)), b); } GtkWidget* GUI :: get_action_widget (const char * key) const { return gtk_ui_manager_get_widget (_ui_manager, key); } namespace { gboolean focus_in_cb (GtkWidget * w, GdkEventFocus * , gpointer accel_group_g) { GtkAccelGroup * accel_group = static_cast(accel_group_g); gtk_window_remove_accel_group (get_window(w), accel_group); return false; } gboolean focus_out_cb (GtkWidget * w, GdkEventFocus * , gpointer accel_group_g) { GtkAccelGroup * accel_group = static_cast(accel_group_g); gtk_window_add_accel_group (get_window(w), accel_group); return false; } } void GUI :: disable_accelerators_when_focused (GtkWidget * w) const { GtkAccelGroup * accel_group = gtk_ui_manager_get_accel_group (_ui_manager); g_signal_connect (w, "focus-in-event", G_CALLBACK(focus_in_cb), accel_group); g_signal_connect (w, "focus-out-event", G_CALLBACK(focus_out_cb), accel_group); } /*** **** PanUI ***/ namespace { static std::string prev_path, prev_file; } std::string GUI :: prompt_user_for_save_path (GtkWindow * parent, const Prefs& prefs) { if (prev_path.empty()) prev_path = prefs.get_string ("default-save-attachments-path", g_get_home_dir ()); if (!file :: file_exists (prev_path.c_str())) prev_path = g_get_home_dir (); GtkWidget * w = gtk_file_chooser_dialog_new (_("Save NZB's Files"), parent, GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_SAVE, GTK_RESPONSE_ACCEPT, nullptr); gtk_dialog_set_default_response (GTK_DIALOG(w), GTK_RESPONSE_ACCEPT); gtk_file_chooser_select_filename (GTK_FILE_CHOOSER(w), prev_path.c_str()); const int response (gtk_dialog_run (GTK_DIALOG(w))); std::string path; if (response == GTK_RESPONSE_ACCEPT) { char * tmp = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (w)); prev_path = path = tmp; g_free (tmp); } gtk_widget_destroy(w); return path; } std::string GUI :: prompt_user_for_filename (GtkWindow * parent, const Prefs& prefs) { if (prev_path.empty()) prev_path = prefs.get_string ("default-save-attachments-path", g_get_home_dir ()); if (!file :: file_exists (prev_path.c_str())) prev_path = g_get_home_dir (); prev_file = std::string(_("Untitled.nzb")); GtkWidget * w = gtk_file_chooser_dialog_new (_("Save NZB File as..."), parent, GTK_FILE_CHOOSER_ACTION_SAVE, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_SAVE, GTK_RESPONSE_ACCEPT, nullptr); gtk_file_chooser_set_do_overwrite_confirmation (GTK_FILE_CHOOSER (w), TRUE); gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (w), prev_path.c_str()); gtk_file_chooser_set_current_name (GTK_FILE_CHOOSER (w), prev_file.c_str()); std::string file; const int response (gtk_dialog_run (GTK_DIALOG(w))); if (response == GTK_RESPONSE_ACCEPT) { char *tmp; tmp = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (w)); file=tmp; g_free (tmp); } gtk_widget_destroy (w); return file; } void GUI :: do_save_articles () { std::string path; const std::vector articles (_header_pane->get_full_selection_v ()); std::vector
copies; copies.reserve (articles.size()); foreach_const (std::vector, articles, it) copies.push_back (**it); if (!copies.empty()) { SaveDialog * dialog = new SaveDialog (_prefs, _group_prefs, _data, _data, _cache, _data, _queue, get_window(_root), _header_pane->get_group(), copies); gtk_widget_show (dialog->root()); } } void GUI :: do_read_or_save_articles () { const guint rows(_header_pane->get_full_selection_rows_num()); if (rows != 1) do_save_articles(); else do_read_selected_article(); } void GUI :: do_save_articles_to_nzb () { std::string path; const std::vector articles (_header_pane->get_full_selection_v ()); std::vector
copies; copies.reserve (articles.size()); foreach_const (std::vector, articles, it) copies.push_back (**it); const bool always (_prefs.get_flag("mark-downloaded-articles-read", false)); const std::string file (GUI :: prompt_user_for_filename (get_window(_root), _prefs)); if (!file.empty()) { Queue::tasks_t tasks; std::string emptystring; foreach_const (std::vector
, copies, it) tasks.push_back (new TaskArticle (_data, _data, *it, _cache, _data, always ? TaskArticle::ALWAYS_MARK : TaskArticle::NEVER_MARK, nullptr, TaskArticle::RAW,emptystring)); // write them to a file std::ofstream tmp(file.c_str()); if (tmp.good()) { NZB :: nzb_to_xml_file (tmp, tasks); tmp.close(); } // cleanup the virtual queue foreach(Queue::tasks_t, tasks, it) delete *it; } } namespace { struct SaveArticlesFromNZB: public Progress::Listener { Data& _data; Queue& _queue; GtkWidget * _root; Prefs& _prefs; ArticleCache& _cache; EncodeCache & _encode_cache; const Article _article; const std::string _path; SaveArticlesFromNZB (Data& d, Queue& q, GtkWidget *r, Prefs& p, ArticleCache& c, EncodeCache& ec, const Article& a, const std::string& path): _data(d), _queue(q), _root(r), _prefs(p), _cache(c), _encode_cache(ec), _article(a), _path(path) {} static void foreach_part_cb (GMimeObject */*parent*/, GMimeObject *o, gpointer self) { static_cast(self)->foreach_part (o); } void foreach_part (GMimeObject *o) { if (GMIME_IS_PART(o)) { GMimePart * part (GMIME_PART (o)); GMimeDataWrapper * wrapper (g_mime_part_get_content (part)); GMimeStream * mem_stream (g_mime_stream_mem_new ()); g_mime_data_wrapper_write_to_stream (wrapper, mem_stream); const GByteArray * buffer (GMIME_STREAM_MEM(mem_stream)->buffer); const StringView nzb ((const char*)buffer->data, buffer->len); Queue::tasks_t tasks; NZB :: tasks_from_nzb_string (nzb, _path, _cache, _encode_cache, _data, _data, _data, tasks); if (!tasks.empty()) _queue.add_tasks (tasks, Queue::BOTTOM); g_object_unref (mem_stream); } } virtual ~SaveArticlesFromNZB() {} void on_progress_finished (Progress&, int status) override { if (status == OK) { #ifdef HAVE_GMIME_CRYPTO GPGDecErr err; GMimeMessage * message = _cache.get_message (_article.get_part_mids(), err); #else GMimeMessage * message = _cache.get_message (_article.get_part_mids()); #endif g_mime_message_foreach (message, foreach_part_cb, this); g_object_unref (message); } delete this; } }; } void GUI :: do_save_articles_from_nzb () { const bool always (_prefs.get_flag("mark-downloaded-articles-read", false)); const Article* article (_header_pane->get_first_selected_article ()); if (article) { const std::string path (GUI :: prompt_user_for_save_path (get_window(_root), _prefs)); if (!path.empty()) { SaveArticlesFromNZB * listener = new SaveArticlesFromNZB (_data, _queue, _root, _prefs, _cache, _encode_cache, *article, path); Task * t = new TaskArticle (_data, _data, *article, _cache, _data, always ? TaskArticle::ALWAYS_MARK : TaskArticle::NEVER_MARK, listener); _queue.add_task (t, Queue::TOP); } } } void GUI :: do_print () { std::cerr << "FIXME " << LINE_ID << std::endl; } void GUI :: do_cancel_latest_task () { _queue.remove_latest_task (); } void GUI :: do_import_tasks () { // get a list of files to import GtkWidget * dialog = gtk_file_chooser_dialog_new ( _("Import NZB Files"), get_window(_root), GTK_FILE_CHOOSER_ACTION_OPEN, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT, nullptr); GtkFileFilter * filter = gtk_file_filter_new (); gtk_file_filter_add_pattern (filter, "*.[Nn][Zz][Bb]"); gtk_file_filter_set_name (filter, _("NZB Files")); gtk_file_chooser_add_filter (GTK_FILE_CHOOSER(dialog), filter); filter = gtk_file_filter_new (); gtk_file_filter_add_pattern (filter, "*"); gtk_file_filter_set_name (filter, _("All Files")); gtk_file_chooser_add_filter (GTK_FILE_CHOOSER(dialog), filter); gtk_file_chooser_set_select_multiple (GTK_FILE_CHOOSER(dialog), true); typedef std::vector strings_t; strings_t filenames; if (gtk_dialog_run (GTK_DIALOG(dialog)) == GTK_RESPONSE_ACCEPT) { GSList * tmp = gtk_file_chooser_get_filenames (GTK_FILE_CHOOSER(dialog)); for (GSList * l(tmp); l!=nullptr; l=l->next) { filenames.push_back ((char*) l->data); g_free (l->data); } g_slist_free (tmp); } gtk_widget_destroy (dialog); // if we're importing files, build the tasks... Queue::tasks_t tasks; if (!filenames.empty()) { const std::string path (prompt_user_for_save_path (get_window(_root), _prefs)); if (!path.empty()) foreach_const (strings_t, filenames, it) NZB :: tasks_from_nzb_file (*it, path, _cache, _encode_cache, _data, _data, _data, tasks); } if (!tasks.empty()) _queue.add_tasks (tasks, Queue::BOTTOM); } void GUI :: do_import_tasks_from_nzb_stream (const char* stream) { // if we're importing files, build the tasks... Queue::tasks_t tasks; const std::string path (prompt_user_for_save_path (get_window(_root), _prefs)); if (!path.empty()) NZB :: tasks_from_nzb_string(stream, path, _cache, _encode_cache, _data, _data, _data, tasks); if (!tasks.empty()) _queue.add_tasks (tasks, Queue::BOTTOM); } namespace { void task_pane_destroyed_cb (GtkWidget *, gpointer p) { TaskPane ** task_pane (static_cast(p)); *task_pane = nullptr; } } void GUI :: do_show_task_window () { static TaskPane * task_pane (nullptr); if (!task_pane) { task_pane = new TaskPane (_queue, _prefs); g_signal_connect (task_pane->root(), "destroy", G_CALLBACK(task_pane_destroyed_cb), &task_pane); } toggle_visible (task_pane->root()); } namespace { void set_bin_child (GtkWidget * w, GtkWidget * new_child) { GtkWidget * child (gtk_bin_get_child (GTK_BIN(w))); if (child != new_child) { gtk_container_remove (GTK_CONTAINER(w), child); gtk_container_add (GTK_CONTAINER(w), new_child); gtk_widget_show (new_child); } } } void GUI :: on_log_entry_added (const Log::Entry& e) { if (e.severity & Log::PAN_SEVERITY_ERROR) set_bin_child (_event_log_button, _error_image); if (_queue.is_online() && (e.severity & Log::PAN_SEVERITY_URGENT)) { GtkWidget * w = gtk_message_dialog_new (get_window(_root), GtkDialogFlags(GTK_DIALOG_MODAL|GTK_DIALOG_DESTROY_WITH_PARENT), GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, "%s", e.message.c_str()); g_signal_connect_swapped (w, "response", G_CALLBACK (gtk_widget_destroy), w); gtk_widget_show_all (w); } } void GUI :: do_show_log_window () { set_bin_child (_event_log_button, _info_image); static GtkWidget * w (nullptr); if (!w) { w = log_dialog_new (_prefs, get_window (_root)); g_signal_connect (w, "destroy", G_CALLBACK(gtk_widget_destroyed), &w); } toggle_visible (w); } void GUI :: do_select_all_articles () { _header_pane->select_all (); } void GUI :: do_unselect_all_articles () { _header_pane->unselect_all (); } void GUI :: do_add_threads_to_selection () { _header_pane->select_threads (); } void GUI :: do_add_similar_to_selection () { _header_pane->select_similar (); } void GUI :: do_add_subthreads_to_selection () { _header_pane->select_subthreads (); } void GUI :: do_select_article_body () { _body_pane->select_all (); } void GUI :: do_show_preferences_dialog () { PrefsDialog * dialog = new PrefsDialog (_prefs, get_window(_root)); g_signal_connect (dialog->root(), "destroy", G_CALLBACK(prefs_dialog_destroyed_cb), this); gtk_widget_set_size_request(dialog->root(), 800, 600); gtk_widget_show (dialog->root()); } void GUI :: do_show_group_preferences_dialog () { quarks_v groups(_group_pane->get_full_selection()); if (!groups.empty()) { GroupPrefsDialog * dialog = new GroupPrefsDialog (_data, groups, _prefs, _group_prefs, get_window(_root)); gtk_widget_show (dialog->root()); } } void GUI :: do_show_profiles_dialog () { ProfilesDialog d (_data, _data, get_window(_root)); gtk_dialog_run (GTK_DIALOG(d.root())); gtk_widget_destroy (d.root()); } void GUI :: do_jump_to_group_tab () { toggle_action ("tabbed-layout", true); GtkNotebook * n (GTK_NOTEBOOK (gtk_bin_get_child( GTK_BIN (_workarea_bin)))); gtk_notebook_set_current_page (n, 0); } void GUI :: do_jump_to_header_tab () { toggle_action ("tabbed-layout", true); GtkNotebook * n (GTK_NOTEBOOK (gtk_bin_get_child( GTK_BIN (_workarea_bin)))); gtk_notebook_set_current_page (n, 1); } void GUI :: do_jump_to_body_tab () { toggle_action ("tabbed-layout", true); GtkNotebook * n (GTK_NOTEBOOK (gtk_bin_get_child( GTK_BIN (_workarea_bin)))); gtk_notebook_set_current_page (n, 2); } void GUI :: do_rot13_selected_text () { _body_pane->rot13_selected_text (); } void GUI :: on_progress_finished (Progress & p, int status) { TaskArticle * ta = dynamic_cast(&p); if (status==OK && ta) { _body_pane->set_article (ta->get_article()); // maybe update the tab if (is_action_active ("tabbed-layout")) activate_action ("jump-to-body-tab"); } } void GUI :: do_read_selected_article () { const Article* article (_header_pane->get_first_selected_article ()); if (article) { const bool expand (_prefs.get_flag("expand-selected-articles",false)); const bool always (_prefs.get_flag("mark-downloaded-articles-read", false)); if (expand) _header_pane->expand_selected (); Task * t = new TaskArticle (_data, _data, *article, _cache, _data, always ? TaskArticle::ALWAYS_MARK : TaskArticle::NEVER_MARK, this); _queue.add_task (t, Queue::TOP); } } void GUI :: do_download_selected_article () { typedef std::vector article_vector_t; const article_vector_t articles (_header_pane->get_full_selection_v ()); const bool always (_prefs.get_flag("mark-downloaded-articles-read", false)); Queue::tasks_t tasks; foreach_const (article_vector_t, articles, it) tasks.push_back (new TaskArticle (_data, _data, **it, _cache, _data, always ? TaskArticle::ALWAYS_MARK : TaskArticle::NEVER_MARK)); if (!tasks.empty()) _queue.add_tasks (tasks, Queue::TOP); } void GUI :: do_clear_header_pane () { gtk_window_set_title (get_window(_root), _("Pan")); _header_pane->clear (); } void GUI :: do_clear_body_pane () { _body_pane->clear (); } void GUI :: do_read_more () { if (!_body_pane->read_more ()) { activate_action (_prefs.get_flag ("space-selects-next-article", true) ? "read-next-article" : "read-next-unread-article"); } } void GUI :: do_read_less () { if (!_body_pane->read_less ()) activate_action ("read-previous-article"); } void GUI :: do_read_next_unread_group () { _group_pane->read_next_unread_group (); } void GUI :: do_read_next_group () { _group_pane->read_next_group (); } void GUI :: do_read_next_unread_article () { _header_pane->read_next_unread_article (); } void GUI :: do_read_next_article () { _header_pane->read_next_article (); } void GUI :: do_read_next_watched_article () { std::cerr << "FIXME " << LINE_ID << std::endl; } void GUI :: do_read_next_unread_thread () { std::cerr << "FIXME " << LINE_ID << std::endl; _header_pane->read_next_unread_thread (); } void GUI :: do_read_next_thread () { _header_pane->read_next_thread (); } void GUI :: do_read_previous_article () { _header_pane->read_previous_article (); } void GUI :: do_read_previous_thread () { _header_pane->read_previous_thread (); } void GUI :: do_read_parent_article () { _header_pane->read_parent_article (); } void GUI :: server_list_dialog_destroyed_cb (GtkWidget * w, gpointer self) { static_cast(self)->server_list_dialog_destroyed (w); } void GUI :: sec_dialog_destroyed_cb (GtkWidget * w, gpointer self) { static_cast(self)->sec_dialog_destroyed (w); } // this queues up a grouplist task for any servers that // were added while the server list dialog was up. void GUI :: server_list_dialog_destroyed (GtkWidget *) { quarks_t all_servers (_data.get_servers()); foreach_const (quarks_t, all_servers, it) { quarks_t tmp; _data.server_get_groups (*it, tmp); if (tmp.empty() && _data.get_server_limits(*it)) _queue.add_task (new TaskGroups (_data, *it)); } } void GUI :: sec_dialog_destroyed (GtkWidget * w) { // NOTE : unused for now } void GUI :: prefs_dialog_destroyed_cb (GtkWidget * w, gpointer self) { static_cast(self)->prefs_dialog_destroyed (w); } void GUI :: prefs_dialog_destroyed (GtkWidget *) { const Quark& group (_header_pane->get_group()); if (!group.empty() && _prefs._rules_changed) { _prefs._rules_changed = !_prefs._rules_changed; _header_pane->rules(_prefs._rules_enabled); } _cache.set_max_megs(_prefs.get_int("cache-size-megs",10)); } void GUI :: do_show_servers_dialog () { GtkWidget * w = server_list_dialog_new (_data, _queue, _prefs, get_window(_root)); gtk_widget_show_all (w); g_signal_connect (w, "destroy", G_CALLBACK(server_list_dialog_destroyed_cb), this); } void GUI :: do_show_sec_dialog () { #ifdef HAVE_GNUTLS GtkWidget * w = sec_dialog_new (_data, _queue, _prefs, get_window(_root)); g_signal_connect (w, "destroy", G_CALLBACK(sec_dialog_destroyed_cb), this); gtk_widget_show_all (w); #endif } void GUI :: do_collapse_thread () { _header_pane->collapse_selected(); } void GUI :: do_expand_thread () { _header_pane->expand_selected(); } void GUI :: do_show_score_dialog () { const Quark& group (_header_pane->get_group()); const Article * article (nullptr); if (!group.empty()) article = _header_pane->get_first_selected_article (); if (article) { GtkWindow * window (get_window (_root)); ScoreView * view = new ScoreView (_data, window, group, *article); gtk_widget_show (view->root()); } } void GUI :: set_selected_thread_score (int score) { const Article* article (_header_pane->get_first_selected_article ()); // If no article is selected if (!article) return; Quark group (_header_pane->get_group()); std::string references; _data.get_article_references (group, article, references); StringView v(references), tok; v.pop_token (tok); if (tok.empty()) tok = article->message_id.c_str(); // if this is the article or a descendant... Scorefile::AddItem items[2]; items[0].on = true; items[0].negate = false; items[0].key = "Message-ID"; items[0].value = TextMatch::create_regex (tok, TextMatch::IS); items[1].on = true; items[1].negate = false; items[1].key = "References"; items[1].value = TextMatch::create_regex (tok, TextMatch::CONTAINS); _data.add_score (StringView(group), score, true, 31, false, items, 2, true); } void GUI :: do_watch () { set_selected_thread_score (9999); } void GUI :: do_ignore () { set_selected_thread_score (-9999); } void GUI :: do_flag () { std::vector v(_header_pane->get_full_selection_v()); if (v.empty()) return; foreach (std::vector,v,it) { Article* a((Article*)*it); a->set_flag(!a->get_flag()); } const Quark& g(_header_pane->get_group()); _data.fire_article_flag_changed(v, g); } void GUI :: do_flag_off () { std::vector v(_header_pane->get_full_selection_v()); if (v.empty()) return; foreach (std::vector,v,it) { Article* a((Article*)*it); a->set_flag(false); } const Quark& g(_header_pane->get_group()); _data.fire_article_flag_changed(v, g); } void GUI :: do_mark_all_flagged() { _header_pane->mark_all_flagged(); } void GUI :: step_bookmarks(int step) { _header_pane->move_to_next_bookmark(step); } void GUI :: do_next_flag () { step_bookmarks(1); } void GUI :: do_last_flag () { step_bookmarks(-1); } void GUI :: do_invert_selection () { _header_pane->invert_selection(); } void GUI :: do_plonk () { score_add (ScoreAddDialog::PLONK); } void GUI :: do_show_new_score_dialog () { score_add (ScoreAddDialog::ADD); } void GUI :: score_add (int mode) { Quark group (_header_pane->get_group()); if (group.empty()) group = _group_pane->get_first_selection(); Article a; const Article* article (_header_pane->get_first_selected_article ()); if (article != nullptr) a = *article; ScoreAddDialog * d = new ScoreAddDialog (_data, _root, group, a, (ScoreAddDialog::Mode)mode); gtk_widget_show (d->root()); } void GUI :: do_supersede_article () { GMimeMessage * message (_body_pane->get_message ()); if (!message) return; // did this user post the message? InternetAddressList * Lsender (g_mime_message_get_sender (message)); char * sender = internet_address_list_to_string(Lsender, nullptr, TRUE); const bool user_posted_this (_data.has_from_header (sender)); if (!user_posted_this) { GtkWidget * w = gtk_message_dialog_new ( get_window(_root), GtkDialogFlags(GTK_DIALOG_MODAL|GTK_DIALOG_DESTROY_WITH_PARENT), GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, nullptr); HIG :: message_dialog_set_text (GTK_MESSAGE_DIALOG(w), _("Unable to supersede article."), _("The article doesn't match any of your posting profiles.")); g_signal_connect_swapped (w, "response", G_CALLBACK (gtk_widget_destroy), w); gtk_widget_show (w); g_object_unref (message); return; } // copy the body and preserve the essential headers... // if we copy the entire message, then we get all the // headers tacked on by the news server. const char * cpch; char * old_mid (g_strdup_printf ("<%s>", g_mime_message_get_message_id(message))); GMimeMessage * new_message (g_mime_message_new (false)); GMimeObject * new_message_obj = (GMimeObject*)new_message; g_mime_object_set_header (new_message_obj, "Supersedes", old_mid, nullptr); const char * addr = internet_address_list_to_string (g_mime_message_get_sender (message), nullptr, TRUE); g_mime_message_add_mailbox (new_message, GMIME_ADDRESS_TYPE_SENDER, nullptr, addr); g_mime_message_set_subject (new_message, g_mime_message_get_subject (message), nullptr); g_mime_object_set_header (new_message_obj, "Newsgroups", g_mime_object_get_header ((GMimeObject *)message, "Newsgroups"), nullptr); g_mime_object_set_header (new_message_obj, "References", g_mime_object_get_header ((GMimeObject *)message, "References"), nullptr); const char * r_addr = internet_address_list_to_string(g_mime_message_get_reply_to (message), nullptr, TRUE); if ((cpch = r_addr)) g_mime_message_add_mailbox (new_message, GMIME_ADDRESS_TYPE_REPLY_TO, nullptr, cpch); if ((cpch = g_mime_object_get_header ((GMimeObject *)message, "Followup-To"))) g_mime_object_set_header (new_message_obj, "Followup-To", cpch, nullptr); gboolean unused (false); char * body (pan_g_mime_message_get_body (message, &unused)); GMimeStream * stream = g_mime_stream_mem_new_with_buffer (body, strlen(body)); g_free (body); GMimeDataWrapper * content_object = g_mime_data_wrapper_new_with_stream (stream, GMIME_CONTENT_ENCODING_DEFAULT); GMimePart * part = g_mime_part_new (); g_mime_part_set_content(part, content_object); g_mime_message_set_mime_part (new_message, GMIME_OBJECT(part)); g_object_unref (part); g_object_unref (content_object); g_object_unref (stream); PostUI * post = PostUI :: create_window (nullptr, _data, _queue, _data, _data, new_message, _prefs, _group_prefs, _encode_cache); if (post) { gtk_widget_show_all (post->root()); GtkWidget * w = gtk_message_dialog_new ( GTK_WINDOW(post->root()), GtkDialogFlags(GTK_DIALOG_MODAL|GTK_DIALOG_DESTROY_WITH_PARENT), GTK_MESSAGE_INFO, GTK_BUTTONS_CLOSE, nullptr); HIG :: message_dialog_set_text (GTK_MESSAGE_DIALOG(w), _("Revise and send this article to replace the old one."), _("Be patient! It will take time for your changes to take effect.")); g_signal_connect_swapped (w, "response", G_CALLBACK (gtk_widget_destroy), w); gtk_widget_show (w); } g_object_unref (message); g_free (old_mid); } void GUI :: do_cancel_article () { GMimeMessage * message (_body_pane->get_message ()); if (!message) return; // did this user post the message? const char * sender = internet_address_list_to_string(g_mime_message_get_sender (message), nullptr, TRUE); const bool user_posted_this (_data.has_from_header (sender)); if (!user_posted_this) { GtkWidget * w = gtk_message_dialog_new ( get_window(_root), GtkDialogFlags(GTK_DIALOG_MODAL|GTK_DIALOG_DESTROY_WITH_PARENT), GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, nullptr); HIG :: message_dialog_set_text (GTK_MESSAGE_DIALOG(w), _("Unable to cancel article."), _("The article doesn't match any of your posting profiles.")); g_signal_connect_swapped (w, "response", G_CALLBACK (gtk_widget_destroy), w); gtk_widget_show (w); g_object_unref (message); return; } // okay then... GMimeMessage * cancel = g_mime_message_new (false); char * cancel_message = g_strdup_printf ("cancel <%s>", g_mime_message_get_message_id(message)); const char * sk_addr = internet_address_list_to_string(g_mime_message_get_sender (message), nullptr, TRUE); g_mime_message_add_mailbox (cancel, GMIME_ADDRESS_TYPE_SENDER, nullptr, sk_addr); g_mime_message_set_subject (cancel, "Cancel", nullptr); g_mime_object_set_header ((GMimeObject *)cancel, "Newsgroups", g_mime_object_get_header ((GMimeObject *)message, "Newsgroups"), nullptr); g_mime_object_set_header ((GMimeObject *)cancel, "Control", cancel_message, nullptr); const char * body ("Ignore\r\nArticle canceled by author using " PACKAGE_STRING "\r\n"); GMimeStream * stream = g_mime_stream_mem_new_with_buffer (body, strlen(body)); GMimeDataWrapper * content_object = g_mime_data_wrapper_new_with_stream (stream, GMIME_CONTENT_ENCODING_DEFAULT); GMimePart * part = g_mime_part_new (); g_mime_part_set_content (part, content_object); g_mime_message_set_mime_part (cancel, GMIME_OBJECT(part)); g_object_unref (part); g_object_unref (content_object); g_object_unref (stream); g_free (cancel_message); PostUI * post = PostUI :: create_window (nullptr, _data, _queue, _data, _data, cancel, _prefs, _group_prefs, _encode_cache); if (post) { gtk_widget_show_all (post->root()); GtkWidget * w = gtk_message_dialog_new ( GTK_WINDOW(post->root()), GtkDialogFlags(GTK_DIALOG_MODAL|GTK_DIALOG_DESTROY_WITH_PARENT), GTK_MESSAGE_INFO, GTK_BUTTONS_CLOSE, nullptr); HIG :: message_dialog_set_text (GTK_MESSAGE_DIALOG(w), _("Send this article to ask your server to cancel your other one."), _("Be patient! It will take time for your changes to take effect.")); g_signal_connect_swapped (w, "response", G_CALLBACK (gtk_widget_destroy), w); gtk_widget_show (w); } g_object_unref (message); } bool GUI::deletion_confirmation_dialog() const { bool ret(false); GtkWidget * d = gtk_message_dialog_new ( get_window(_root), GtkDialogFlags(GTK_DIALOG_MODAL|GTK_DIALOG_DESTROY_WITH_PARENT), GTK_MESSAGE_WARNING, GTK_BUTTONS_NONE, nullptr); HIG :: message_dialog_set_text (GTK_MESSAGE_DIALOG(d), _("You have marked some articles for deletion."), _("Are you sure you want to delete them?")); gtk_dialog_add_buttons (GTK_DIALOG(d), GTK_STOCK_CANCEL, GTK_RESPONSE_NO, GTK_STOCK_APPLY, GTK_RESPONSE_YES, nullptr); gtk_dialog_set_default_response (GTK_DIALOG(d), GTK_RESPONSE_NO); ret = gtk_dialog_run (GTK_DIALOG(d)) == GTK_RESPONSE_YES; gtk_widget_destroy(d); return ret; } #ifdef HAVE_GNUTLS bool GUI :: confirm_accept_new_cert_dialog(GtkWindow * parent, gnutls_x509_crt_t cert, const Quark& server) { char buf[4096*256]; std::string host; int port; _data.get_server_addr(server,host,port); pretty_print_x509(buf,sizeof(buf), host, cert, true); GtkWidget * d = gtk_message_dialog_new ( parent, GtkDialogFlags(GTK_DIALOG_MODAL|GTK_DIALOG_DESTROY_WITH_PARENT), GTK_MESSAGE_WARNING, GTK_BUTTONS_NONE, nullptr); HIG :: message_dialog_set_text (GTK_MESSAGE_DIALOG(d), buf, _("Do you want to accept it permanently? (You can change this later.)")); gtk_dialog_add_buttons (GTK_DIALOG(d), GTK_STOCK_CANCEL, GTK_RESPONSE_NO, GTK_STOCK_APPLY, GTK_RESPONSE_YES, nullptr); gtk_dialog_set_default_response (GTK_DIALOG(d), GTK_RESPONSE_NO); gint ret_code = gtk_dialog_run (GTK_DIALOG(d)); if (ret_code == GTK_RESPONSE_YES) { debug_SSL("set server trust to enabled"); _data.set_server_trust (server, 1); _data.save_server_info(server); } gtk_widget_destroy(d); return ret_code == GTK_RESPONSE_YES; } #endif void GUI :: do_delete_article () { bool confirm (_prefs.get_flag("show-deletion-confirm-dialog", true)); bool do_delete(false); if (confirm) { if (deletion_confirmation_dialog()) do_delete = true; } else do_delete = true; if (do_delete) { const std::set articles (_header_pane->get_nested_selection(false)); _data.delete_articles (articles); const Quark mid (_body_pane->get_message_id()); foreach_const (std::set, articles, it) if ((*it)->message_id == mid) _body_pane->clear (); } } void GUI :: do_clear_article_cache () { _cache.clear (); _encode_cache.clear(); } void GUI :: do_mark_article_read () { const std::set article_set (_header_pane->get_nested_selection (false)); const std::vector tmp (article_set.begin(), article_set.end()); _data.mark_read ((const Article**)&tmp.front(), tmp.size()); } void GUI :: do_mark_article_unread () { const std::set article_set (_header_pane->get_nested_selection (false)); const std::vector tmp (article_set.begin(), article_set.end()); _data.mark_read ((const Article**)&tmp.front(), tmp.size(), false); } void GUI :: do_mark_thread_read () { const std::set article_set (_header_pane->get_nested_selection (true)); const std::vector tmp (article_set.begin(), article_set.end()); _data.mark_read ((const Article**)&tmp.front(), tmp.size()); } void GUI :: do_mark_thread_unread () { const std::set article_set (_header_pane->get_nested_selection (true)); const std::vector tmp (article_set.begin(), article_set.end()); _data.mark_read ((const Article**)&tmp.front(), tmp.size(), false); } void GUI :: do_post () { GMimeMessage * message = g_mime_message_new (false); // add newsgroup... std::string newsgroups; const quarks_v groups (_group_pane->get_full_selection ()); foreach_const (quarks_v, groups, it) { newsgroups += *it; newsgroups += ','; } if (!newsgroups.empty()) newsgroups.resize (newsgroups.size()-1); // erase trailing comma if (newsgroups.empty()) { const Quark group (_header_pane->get_group()); if (!group.empty()) newsgroups = group; } if (!newsgroups.empty()) g_mime_object_append_header ((GMimeObject *) message, "Newsgroups", newsgroups.c_str(), nullptr); // content type GMimePart * part = g_mime_part_new (); GMimeContentType *type = g_mime_content_type_parse (nullptr, "text/plain; charset=UTF-8"); g_mime_object_set_content_type ((GMimeObject *) part, type); g_object_unref (type); g_mime_part_set_content_encoding (part, GMIME_CONTENT_ENCODING_8BIT); g_mime_message_set_mime_part (message, GMIME_OBJECT(part)); g_object_unref (part); PostUI * post = PostUI :: create_window (nullptr, _data, _queue, _data, _data, message, _prefs, _group_prefs, _encode_cache); if (post) gtk_widget_show_all (post->root()); g_object_unref (message); } void GUI :: do_followup_to () { GMimeMessage * message = _body_pane->create_followup_or_reply (false); if (message) { PostUI * post = PostUI :: create_window(nullptr, _data, _queue, _data, _data, message, _prefs, _group_prefs, _encode_cache); if (post) gtk_widget_show_all (post->root()); g_object_unref (message); } } void GUI :: do_reply_to () { GMimeMessage * message = _body_pane->create_followup_or_reply (true); if (message) { PostUI * post = PostUI :: create_window (nullptr, _data, _queue, _data, _data, message, _prefs, _group_prefs, _encode_cache); if (post) gtk_widget_show_all (post->root()); g_object_unref (message); } } #ifdef HAVE_MANUAL void GUI :: do_pan_manual () { GError * error (nullptr); gtk_show_uri_on_window (nullptr, "help:pan", gtk_get_current_event_time (), &error); if (error) { GtkWidget * w = gtk_message_dialog_new (get_window(_root), GtkDialogFlags(GTK_DIALOG_MODAL|GTK_DIALOG_DESTROY_WITH_PARENT), GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, _("Unable to open help file.")); g_signal_connect_swapped (w, "response", G_CALLBACK (gtk_widget_destroy), w); gtk_widget_show_all (w); } } #endif void GUI :: do_pan_web () { URL :: open (_prefs, "https://gitlab.gnome.org/GNOME/pan/-/blob/master/README.org"); } void GUI :: do_bug_report () { URL :: open (_prefs, "https://gitlab.gnome.org/GNOME/pan/issues"); } void GUI :: do_about_pan () { const gchar * authors [] = { "Charles Kerr - Pan Author", "Heinrich M\u00fcller - Developer", "Kenneth Haley - Developer", "Petr Kovar - Contributor", "Calin Culianu - Threaded Decoding", "Christophe Lambin - Original Developer", "Matt Eagleson - Original Developer", nullptr }; GdkPixbuf * logo = load_icon("icon_pan_about_logo.png"); GtkAboutDialog * w (GTK_ABOUT_DIALOG (gtk_about_dialog_new ())); gtk_about_dialog_set_program_name (w, _("Pan")); gtk_about_dialog_set_version (w, PACKAGE_VERSION); #ifdef PLATFORM_INFO #ifdef GIT_REV gtk_about_dialog_set_comments (w, VERSION_TITLE " (" GIT_REV "; " PLATFORM_INFO ")"); #else gtk_about_dialog_set_comments (w, VERSION_TITLE " (" PLATFORM_INFO ")"); #endif // GIT_REV #else gtk_about_dialog_set_comments (w, VERSION_TITLE); #endif // PLATFORM_INFO gtk_about_dialog_set_copyright (w, _("Copyright \u00A9 2002-2021 Charles Kerr and others")); // \u00A9 is unicode for (c) gtk_about_dialog_set_website (w, "https://gitlab.gnome.org/GNOME/pan/-/blob/master/README.org"); gtk_about_dialog_set_logo (w, logo); gtk_about_dialog_set_license (w, LICENSE); gtk_about_dialog_set_authors (w, authors); gtk_about_dialog_set_translator_credits (w, _("translator-credits")); g_signal_connect (G_OBJECT (w), "response", G_CALLBACK (gtk_widget_destroy), nullptr); gtk_widget_show_all (GTK_WIDGET(w)); g_object_unref (logo); } void GUI :: do_work_online (bool b) { _queue.set_online (b); refresh_connection_label (); } namespace { enum { HORIZONTAL, VERTICAL }; void hpane_destroy_cb (GtkWidget *, gpointer) { std::cerr << LINE_ID << std::endl; } void vpane_destroy_cb (GtkWidget *, gpointer) { std::cerr << LINE_ID << std::endl; } GtkWidget* pack_widgets (Prefs& prefs, GtkWidget * w1, GtkWidget * w2, int orient, gint uglyhack_idx) { GtkWidget * w; if (w1!=nullptr && w2!=nullptr) { int pos(0); if (uglyhack_idx==0) { pos = prefs.get_int ("main-window-vpane-position", 300); } else if (uglyhack_idx==1) { pos = prefs.get_int ("main-window-hpane-position", 266); } else if (uglyhack_idx==2) { pos = prefs.get_int ("sep-vpane-position", 266); } if (orient == VERTICAL) { if (uglyhack_idx==0) { w = vpane = gtk_paned_new (GTK_ORIENTATION_VERTICAL); } else if (uglyhack_idx==2) { w = sep_vpane = gtk_paned_new (GTK_ORIENTATION_VERTICAL); } gtk_widget_set_size_request (w1, -1, 50); gtk_widget_set_size_request (w2, -1, 50); } else { w = hpane = gtk_paned_new(GTK_ORIENTATION_HORIZONTAL); gtk_widget_set_size_request (w1, 50, -1); gtk_widget_set_size_request (w2, 50, -1); } gtk_paned_pack1 (GTK_PANED(w), w1, false, true); gtk_paned_pack2 (GTK_PANED(w), w2, true, false); gtk_paned_set_position (GTK_PANED(w), pos); } else if (w1!=nullptr) w = w1; else if (w2!=nullptr) w = w2; else w = nullptr; return w; } gboolean grab_focus_idle (gpointer w) { gtk_widget_grab_focus (GTK_WIDGET(w)); return false; } } void GUI :: notebook_page_switched_cb (GtkNotebook *, void *, gint page_num, gpointer user_data) { GUI * gui = static_cast(user_data); GtkWidget * w; switch (page_num) { case 0: w = gui->_group_pane->get_default_focus_widget(); break; case 1: w = gui->_header_pane->get_default_focus_widget(); break; case 2: w = gui->_body_pane->get_default_focus_widget(); break; default: g_assert (0 && "invalid page reached!"); break; } g_idle_add (grab_focus_idle, w); } //TODO void GUI :: do_layout (bool tabbed) { if (hpane) { _prefs.set_int ("main-window-hpane-position", gtk_paned_get_position(GTK_PANED(hpane))); hpane = nullptr; } if (vpane) { _prefs.set_int ("main-window-vpane-position", gtk_paned_get_position(GTK_PANED(vpane))); vpane = nullptr; } gtk_widget_hide (_workarea_bin); GtkWidget * group_w (_group_pane->root()); GtkWidget * header_w (_header_pane->root()); GtkWidget * search_w; GtkWidget * body_w (_body_pane->root()); remove_from_parent (group_w); remove_from_parent (header_w); remove_from_parent (body_w); // remove workarea's current child GList * children = gtk_container_get_children (GTK_CONTAINER(_workarea_bin)); if (children) { gtk_container_remove (GTK_CONTAINER(_workarea_bin), GTK_WIDGET(children->data)); g_list_free (children); } GtkWidget * w (nullptr); if (tabbed) { w = gtk_notebook_new (); GtkNotebook * n (GTK_NOTEBOOK (w)); gtk_notebook_append_page (n, group_w, gtk_label_new_with_mnemonic (_("_1. Group Pane"))); gtk_notebook_append_page (n, header_w, gtk_label_new_with_mnemonic (_("_2. Header Pane"))); gtk_notebook_append_page (n, body_w, gtk_label_new_with_mnemonic (_("_3. Body Pane"))); g_signal_connect (n, "switch-page", G_CALLBACK(notebook_page_switched_cb), this); } else { GtkWidget *p[3]; const std::string layout (_prefs.get_string ("pane-layout", "stacked-right")); const std::string orient (_prefs.get_string ("pane-orient", "groups,headers,body")); StringView tok, v(orient); v.pop_token(tok,','); if (*tok.str=='g') p[0]=group_w; else if (*tok.str=='h') p[0]=header_w; else p[0]=body_w; v.pop_token(tok,','); if (*tok.str=='g') p[1]=group_w; else if (*tok.str=='h') p[1]=header_w; else p[1]=body_w; v.pop_token(tok,','); if (*tok.str=='g') p[2]=group_w; else if (*tok.str=='h') p[2]=header_w; else p[2]=body_w; if (layout == "stacked-top") { w = pack_widgets (_prefs, p[0], p[1], HORIZONTAL, 1); w = pack_widgets (_prefs, w, p[2], VERTICAL, 0); } else if (layout == "stacked-bottom") { w = pack_widgets (_prefs, p[1], p[2], HORIZONTAL, 1); w = pack_widgets (_prefs, p[0], w, VERTICAL, 0); } else if (layout == "stacked-left") { w = pack_widgets (_prefs, p[0], p[1], VERTICAL, 0); w = pack_widgets (_prefs, w, p[2], HORIZONTAL, 1); } else if (layout == "stacked-vertical") { w = pack_widgets (_prefs, p[0], p[1], VERTICAL, 0); w = pack_widgets (_prefs, w, p[2], VERTICAL, 2); } else { // stacked right w = pack_widgets (_prefs, p[1], p[2], VERTICAL, 0); w = pack_widgets (_prefs, p[0], w, HORIZONTAL, 1); } } gtk_container_add (GTK_CONTAINER(_workarea_bin), w); gtk_widget_show_all (_workarea_bin); set_visible (group_w, is_action_active("show-group-pane")); set_visible (header_w, is_action_active("show-header-pane")); set_visible (body_w, is_action_active("show-body-pane")); if (tabbed) gtk_notebook_set_current_page (GTK_NOTEBOOK( gtk_bin_get_child( GTK_BIN(_workarea_bin))), 0); } void GUI :: do_show_group_pane (bool b) { set_visible (_group_pane->root(), b); } void GUI :: do_show_header_pane (bool b) { set_visible (_header_pane->root(), b); } void GUI :: do_show_body_pane (bool b) { set_visible (_body_pane->root(), b); } void GUI :: do_show_toolbar (bool b) { set_visible (_toolbar, b); } void GUI :: do_shorten_group_names (bool b) { _group_pane->set_name_collapse (b); } void GUI :: do_match_only_read_articles (bool) { _header_pane->refilter (); } void GUI :: do_match_only_unread_articles (bool) { _header_pane->refilter (); } void GUI :: do_match_only_cached_articles (bool) { _header_pane->refilter (); } void GUI :: do_match_only_binary_articles (bool) { _header_pane->refilter (); } void GUI :: do_match_only_my_articles (bool) { _header_pane->refilter (); } void GUI :: do_match_on_score_state (int) { _header_pane->refilter (); } void GUI :: do_enable_toggle_rules (bool enable) { _header_pane -> rules (enable); } void GUI :: do_show_matches (const Data::ShowType show_type) { _header_pane->set_show_type (show_type); } namespace { std::string bytes_to_size(unsigned long val) { int i(0); double d(val); while (d >= 1024.0) { d /= 1024.0; ++i; } std::stringstream out; out << d; std::string ret(out.str()); switch (i) { case 0: ret += _(" Bytes"); break; case 1: ret += _(" KB"); break; case 2: ret += _(" MB"); break; case 3: ret += _(" GB"); break; case 4: ret += _(" TB"); break; default: ret += _(" Bytes"); break; } return ret; } } void GUI :: do_show_selected_article_info () { const Article* a = _header_pane->get_first_selected_article (); if (a != nullptr) { // date EvolutionDateMaker date_maker; char * date = date_maker.get_date_string (a->time_posted); // article parts typedef Parts::number_t number_t; std::set missing_parts; const number_t n_parts = a->get_total_part_count (); for (number_t i=1; i<=n_parts; ++i) missing_parts.insert (i); for (Article::part_iterator it(a->pbegin()), e(a->pend()); it!=e; ++it) missing_parts.erase (it.number()); char msg[512]; *msg = '\0'; std::ostringstream s; if (missing_parts.empty()) g_snprintf (msg, sizeof(msg), ngettext("This article is complete with %d part.","This article has all %d parts.",(int)n_parts), (int)n_parts); else g_snprintf (msg, sizeof(msg), ngettext("This article is missing %d part.","This article is missing %d of its %d parts:",(int)n_parts), (int)missing_parts.size(), (int)n_parts); foreach_const (std::set, missing_parts, it) s << ' ' << *it; const char* author = iconv_inited ? __g_mime_iconv_strdup(conv, a->author.c_str()) : a->author.c_str(); const char* subject = iconv_inited ? __g_mime_iconv_strdup(conv, a->subject.c_str()) : a->subject.c_str(); GtkWidget * w = gtk_message_dialog_new_with_markup ( get_window(_root), GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_INFO, GTK_BUTTONS_CLOSE, "%s: %s\n" "%s: %s\n" "%s: %s\n" "%s: %s\n" "%s: %lu\n" "%s: %s (%lu %s)\n" "\n" "%s" "%s", _("Subject"), subject, _("From"), author, _("Date"), date, _("Message-ID"), a->message_id.c_str(), _("Lines"), a->get_line_count(), _("Size"), bytes_to_size(a->get_byte_count()).c_str(), a->get_byte_count(),_("Bytes"), msg, s.str().c_str()); g_signal_connect_swapped (w, "response", G_CALLBACK (gtk_widget_destroy), w); gtk_widget_show_all (w); // cleanup g_free (date); if (iconv_inited) { g_free ((char*)author); g_free ((char*)subject); } } } void GUI :: do_quit () { gtk_main_quit (); } void GUI :: do_read_selected_group () { const Quark group (_group_pane->get_first_selection ()); // update the titlebar std::string s (_("Pan")); if (!group.empty()) { s += ": "; s += group.c_str(); } gtk_window_set_title (get_window(_root), s.c_str()); // set the charset encoding based upon that group's / global default if (!group.empty()) { std::string local (_group_prefs.get_string (group, "character-encoding", "UTF-8")); set_charset (local); // update iconv handler const char * from = g_mime_charset_iconv_name(local.c_str()); char buf[256]; g_snprintf(buf, sizeof(buf), "%s//IGNORE", _prefs.get_string("default-charset", "UTF-8").str); const char * to = g_mime_charset_iconv_name(buf); { if (iconv_inited) iconv_close(conv); conv = iconv_open (to, from); if (conv == (iconv_t)-1) { Log::add_err(_("Error loading iconv library. Encoding certain character sets will not work in GUI.")); } else iconv_inited = true; } } // update the header pane watch_cursor_on (); const Quark old_group(_header_pane->get_group()); const bool changed (old_group != group); if (changed) { _header_pane->set_group (group); _header_pane->set_focus (); } watch_cursor_off (); // periodically save our state _data.save_state (); _prefs.save (); _group_prefs.save (); // maybe update the tab if (is_action_active ("tabbed-layout")) activate_action ("jump-to-header-tab"); // update the body pane activate_action ("clear-body-pane"); // if it's the first time in this group, pop up a download-headers dialog. // otherwise if get-new-headers is turned on, queue an xover-new task. Article_Count unread(0), total(0); if (changed && !group.empty()){ _data.get_group_counts (group, unread, total); const bool virtual_group (GroupPane::is_virtual_group(group)); if (!virtual_group) { if (static_cast(total) == 0) activate_action ("download-headers"); else if (_prefs.get_flag("get-new-headers-when-entering-group", true)) { if (_prefs.get_flag ("mark-group-read-before-xover", false)) _data.mark_group_read (group); _queue.add_task (new TaskXOver (_data, group, TaskXOver::NEW), Queue::TOP); } } } // fire group_entered for status icon if (changed) { _data.get_group_counts (group, unread, total); _data.fire_group_entered (group, unread, total); } } void GUI :: do_mark_selected_groups_read () { const quarks_v group_names (_group_pane->get_full_selection ()); foreach_const (quarks_v, group_names, it) _data.mark_group_read (*it); } void GUI :: do_clear_selected_groups () { bool confirm (_prefs.get_flag("show-deletion-confirm-dialog", true)); bool do_delete(false); if (confirm) { if (deletion_confirmation_dialog()) do_delete = true; } else do_delete = true; if (do_delete) { const quarks_v groups (_group_pane->get_full_selection ()); foreach_const (quarks_v, groups, it) _data.group_clear_articles (*it); } } void GUI :: do_xover_selected_groups () { const quarks_v groups (_group_pane->get_full_selection ()); const bool mark_read (_prefs.get_flag ("mark-group-read-before-xover", false)); foreach_const (quarks_v, groups, it) { if (mark_read) _data.mark_group_read (*it); _queue.add_task (new TaskXOver (_data, *it, TaskXOver::NEW), Queue::TOP); } } void GUI :: do_xover_subscribed_groups () { typedef std::vector quarks_v; quarks_v groups; _data.get_subscribed_groups (groups); const bool mark_read (_prefs.get_flag ("mark-group-read-before-xover", false)); foreach_const_r (quarks_v, groups, it) { if (mark_read) _data.mark_group_read (*it); _queue.add_task (new TaskXOver (_data, *it, TaskXOver::NEW), Queue::TOP); } } void GUI :: do_download_headers () { const quarks_v groups_v (_group_pane->get_full_selection ()); const quarks_t groups (groups_v.begin(), groups_v.end()); headers_dialog (_data, _prefs, _queue, groups, get_window(_root)); } void GUI :: do_refresh_groups () { Queue::tasks_t tasks; const quarks_t servers (_data.get_servers ()); foreach_const_r (quarks_t, servers, it) if (_data.get_server_limits(*it)) tasks.push_back (new TaskGroups (_data, *it)); if (!tasks.empty()) _queue.add_tasks (tasks); } void GUI :: do_subscribe_selected_groups () { const quarks_v group_names (_group_pane->get_full_selection ()); foreach_const (quarks_v, group_names, it) _data.set_group_subscribed (*it, true); } void GUI :: do_unsubscribe_selected_groups () { const quarks_v groups (_group_pane->get_full_selection ()); foreach_const (quarks_v, groups, it) _data.set_group_subscribed (*it, false); } void GUI :: do_prompt_for_charset () { if (_charset.empty()) _charset = "UTF-8"; char * tmp = e_charset_dialog (_("Character Encoding"), _("Body Pane Encoding"), _charset.c_str(), get_window(root())); set_charset (tmp); free (tmp); } void GUI :: set_charset (const StringView& s) { _charset.assign (s.str, s.len); _body_pane->set_character_encoding (_charset.c_str()); } /*** **** ***/ void GUI :: refresh_connection_label () { char str[128]; char tip[4096]; const double KiBps = _queue.get_speed_KiBps (); int active, idle, connecting; _queue.get_connection_counts (active, idle, connecting); // decide what to say if (!_queue.is_online()) { g_snprintf (str, sizeof(str), _("Offline")); int num(active+idle); if (active || idle) g_snprintf (tip, sizeof(tip), ngettext("Closing %d connection","Closing %d connections", num), num); else g_snprintf (tip, sizeof(tip), _("No Connections")); } else if (!active && !idle && connecting) { g_snprintf (str, sizeof(str), _("Connecting")); g_snprintf (tip, sizeof(tip), "%s", str); } else if (active || idle) { typedef std::vector counts_t; counts_t counts; _queue.get_full_connection_counts (counts); int port; std::string s, addr; foreach_const (counts_t, counts, it) { _data.get_server_addr (it->server_id, addr, port); char buf[1024]; g_snprintf (buf, sizeof(buf), _("%s: %d idle, %d active @ %.1f KiBps"), addr.c_str(), it->idle, it->active, it->KiBps); s += buf; s += '\n'; } if (!s.empty()) s.resize (s.size()-1); // get rid of trailing linefeed g_snprintf (str, sizeof(str), "%d @ %.1f KiB/s", active, KiBps); g_snprintf (tip, sizeof(tip), "%s", s.c_str()); } else { g_snprintf (str, sizeof(str), _("No Connections")); g_snprintf (tip, sizeof(tip), "%s", str); } gtk_label_set_text (GTK_LABEL(_connection_size_label), str); gtk_widget_set_tooltip_text (_connection_size_eventbox, tip); } namespace { void timeval_diff (GTimeVal * start, GTimeVal * end, GTimeVal * diff) { diff->tv_sec = end->tv_sec - start->tv_sec; if (end->tv_usec < start->tv_usec) diff->tv_usec = 1000000ul + end->tv_usec - start->tv_usec, --diff->tv_sec; else diff->tv_usec = end->tv_usec - start->tv_usec; } } int GUI :: upkeep_timer_cb (gpointer gui_g) { static_cast(gui_g)->upkeep (); return true; } void GUI :: upkeep () { refresh_connection_label (); } void GUI :: set_queue_size_label (unsigned int running, unsigned int size) { char str[256]; char tip[256]; // build the button label if (!size) g_snprintf (str, sizeof(str), _("No Tasks")); else g_snprintf (str, sizeof(str), "%s: %u/%u", _("Tasks"), running, size); // build the tooltip // FIX : build fix for 64bit osx which doesn't seem to have guint64t nor gulong :( #ifdef G_OS_DARWIN unsigned long queued, unused, stopped; uint64_t KiB_remain; #else gulong queued, unused, stopped; guint64 KiB_remain; #endif double KiBps; int hr, min, sec; _queue.get_stats (queued, unused, stopped, KiB_remain, KiBps, hr, min, sec); g_snprintf (tip, sizeof(tip), _("%lu tasks, %s, %.1f KiBps, ETA %d:%02d:%02d"), (running+queued), render_bytes(KiB_remain), KiBps, hr, min, sec); // update the gui gtk_label_set_text (GTK_LABEL(_queue_size_label), str); gtk_widget_set_tooltip_text (_queue_size_button, tip); } void GUI :: on_queue_task_active_changed (Queue&, Task& t, bool is_active) { // update our set of active tasks std::list::iterator it (std::find (_active_tasks.begin(), _active_tasks.end(), &t)); if (is_active && it==_active_tasks.end()) _active_tasks.push_back (&t); else if (!is_active && it!=_active_tasks.end()) _active_tasks.erase (it); // update all the views int i (0); it = _active_tasks.begin(); for (; it!=_active_tasks.end() && iset_progress (*it); for (; iset_progress (nullptr); } void GUI :: on_queue_connection_count_changed (Queue&, int) { //connection_size = count; refresh_connection_label (); } void GUI :: on_queue_size_changed (Queue&, int active, int total) { set_queue_size_label (active, total); } void GUI :: on_queue_online_changed (Queue&, bool is_online) { toggle_action ("work-online", is_online); } void GUI :: on_queue_error (Queue&, const StringView& message) { if (_queue.is_online()) { std::string s; if (!message.empty()) { s.assign (message.str, message.len); s += "\n \n"; } s += _("Pan is now offline. Please see \"File|Event Log\" and correct the problem, then use \"File|Work Online\" to continue."); Log::add_urgent_va ("%s", s.c_str()); toggle_action ("work-online", false); } } void GUI :: on_prefs_flag_changed (const StringView& key, bool val) { if (key == "show-taskpane-popups") { _prefs.save(); } } void GUI :: on_prefs_string_changed (const StringView& key, const StringView& value) { if (key == "pane-layout" || key == "pane-orient") GUI :: do_layout (_prefs.get_flag ("tabbed-layout", false)); if (key == "default-save-attachments-path") prev_path.assign (value.str, value.len); if (key == "cache-file-extension") { _prefs.save(); StringView tmp(value); // default to "eml" if value is empty to conform to article-cache if (tmp.empty()) tmp ="eml"; _data.get_cache().set_msg_extension(tmp); } } namespace { class Destroyer { public: Destroyer(char *f) : _fname(f) { } ~Destroyer() { g_free(_fname); } void retain() { _fname = nullptr; } private: char *_fname; }; } void GUI :: do_edit_scores (GtkAction *act) { //Protect against bouncy keypresses if (not gtk_action_get_sensitive(act)) { return; } char *filename{g_strdup(_data.get_scorefile_name().c_str())}; Destroyer d{filename}; if (not file::file_exists(filename)) { FILE *f = fopen(filename, "a+"); if (f == nullptr) { Log::add_err_va("Error creating file '%s'", filename); return; } fclose(f); } try { using namespace std::placeholders; _spawner.reset( new EditorSpawner(filename, std::bind(&GUI::edit_scores_cleanup, this, _1, _2, act), _prefs)); d.retain(); gtk_action_set_sensitive(act, false); } catch (EditorSpawnerError const &) { //There should be a big red exclamation on the status line } } void GUI :: edit_scores_cleanup(int status, char *filename, GtkAction *act) { g_free(filename); _data.rescore(); gtk_action_set_sensitive(act, true); _spawner.reset(); gtk_window_present(get_window(_root)); } #ifdef HAVE_GNUTLS void GUI :: do_show_cert_failed_dialog(VerifyData* data) { debug("do show cert failed dialog"); VerifyData& d(*data); bool delete_cert = false; if (GUI::confirm_accept_new_cert_dialog(get_window(_root),d.cert,d.server)) { if (!_certstore.add(d.cert, d.server)) { Log::add_urgent_va("Error adding certificate of server '%s' to Certificate Store",d.server.c_str()); delete_cert = true; } } if (delete_cert) d.deinit_cert(); delete data; } gboolean GUI :: show_cert_failed_cb(gpointer gp) { debug("show_cert_failed_cb"); VerifyData* d(static_cast(gp)); d->gui->do_show_cert_failed_dialog(d); return false; } void GUI :: on_verify_cert_failed(gnutls_x509_crt_t cert, std::string server, int nr) { debug("on verify failed GUI ("<cert = cert; data->server = server; data->nr = nr; data->gui = this; g_idle_add(show_cert_failed_cb, data); } void GUI :: on_valid_cert_added (gnutls_x509_crt_t cert, std::string server) { /* whitelist to make avaible for nntp-pool */ _certstore.whitelist(server); debug_SSL("whitelist ("< * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #ifndef _Pan_h_ #define _Pan_h_ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include namespace pan { class EditorSpawner; class GroupPane; class HeaderPane; class BodyPane; class ProgressView; /** * The main GUI object for Pan's GTK frontend * @ingroup GUI */ struct GUI final: public virtual PanUI, public ActionManager, public WaitUI, private Log::Listener, private Progress::Listener, private Queue::Listener, private Prefs::Listener, private CertStore::Listener, private Data::Listener { public: typedef std::vector mid_sequence_t; GUI (Data& data, Queue&, Prefs&, GroupPrefs&); virtual ~GUI (); GUI(GUI const &) = delete; GUI &operator=(GUI const &) = delete; GtkWidget* root () { return _root; } typedef std::vector strings_t; struct VerifyData { #ifdef HAVE_GNUTLS gnutls_x509_crt_t cert; #endif std::string server; std::string cert_name; int nr; GUI* gui; #ifdef HAVE_GNUTLS void deinit_cert() { gnutls_x509_crt_deinit(cert); } #endif }; public: // ActionManager bool is_action_active (const char * action_name) const override; void activate_action (const char * action_name) const override; void toggle_action (const char * action_name, bool) const override; void sensitize_action (const char * action_name, bool) const override; void hide_action (const char * key, bool b) const override; GtkWidget* get_action_widget (const char * key) const override; void disable_accelerators_when_focused (GtkWidget * entry) const override; public: // Prefs::Listener void on_prefs_flag_changed (const StringView& key, bool value) override; void on_prefs_int_changed (const StringView&, int) override { } void on_prefs_string_changed (const StringView& key, const StringView& value) override; void on_prefs_color_changed (const StringView&, const GdkRGBA&) override { } public: // PanUI void do_prompt_for_charset () override; void do_save_articles () override; void do_save_articles_from_nzb () override; void do_save_articles_to_nzb () override; void do_print () override; void do_quit () override; void do_import_tasks () override; void do_import_tasks_from_nzb_stream (const char*) override; void do_cancel_latest_task () override; void do_show_task_window () override; void do_show_log_window () override; void do_select_all_articles () override; void do_unselect_all_articles () override; void do_add_similar_to_selection () override; void do_add_threads_to_selection () override; void do_add_subthreads_to_selection () override; void do_select_article_body () override; void do_show_preferences_dialog () override; void do_show_group_preferences_dialog () override; void do_show_profiles_dialog () override; void do_jump_to_group_tab () override; void do_jump_to_header_tab () override; void do_jump_to_body_tab () override; void do_rot13_selected_text () override; void do_download_selected_article () override; void do_clear_header_pane () override; void do_clear_body_pane () override; void do_read_selected_article () override; void do_read_more () override; void do_read_less () override; void do_read_next_unread_group () override; void do_read_next_group () override; void do_read_next_unread_article () override; void do_read_next_article () override; void do_read_next_watched_article () override; void do_read_next_unread_thread () override; void do_read_next_thread () override; void do_read_previous_article () override; void do_read_previous_thread () override; void do_read_parent_article () override; void do_show_servers_dialog () override; void do_show_sec_dialog () override; void do_collapse_thread () override; void do_expand_thread () override; void do_show_selected_article_info () override; void do_plonk () override; void do_watch () override; void do_ignore () override; void do_flag () override; void do_flag_off () override; void do_next_flag () override; void do_last_flag () override; void do_mark_all_flagged () override; void do_invert_selection () override; void do_show_score_dialog () override; void do_show_new_score_dialog () override; void do_cancel_article () override; void do_supersede_article () override; void do_delete_article () override; void do_clear_article_cache () override; void do_mark_article_read () override; void do_mark_article_unread () override; void do_mark_thread_read () override; void do_mark_thread_unread () override; void do_post () override; void do_followup_to () override; void do_reply_to () override; #ifdef HAVE_MANUAL void do_pan_manual () override; #endif void do_pan_web () override; void do_bug_report () override; void do_about_pan () override; void do_work_online (bool) override final; void do_layout (bool) override final; void do_show_toolbar (bool) override; void do_show_group_pane (bool) override; void do_show_header_pane (bool) override; void do_show_body_pane (bool) override; void do_shorten_group_names (bool) override; void do_match_only_cached_articles (bool) override; void do_match_only_binary_articles (bool) override; void do_match_only_my_articles (bool) override; void do_match_only_unread_articles (bool) override; void do_match_only_read_articles (bool) override; void do_enable_toggle_rules (bool enable) override; void do_match_on_score_state (int) override; void do_show_matches (const Data::ShowType) override; void do_read_selected_group () override; void do_mark_selected_groups_read () override; void do_clear_selected_groups () override; void do_xover_selected_groups () override; void do_xover_subscribed_groups () override; void do_download_headers () override; void do_refresh_groups () override; void do_subscribe_selected_groups () override; void do_unsubscribe_selected_groups () override; void do_edit_scores(GtkAction *) override; #ifdef HAVE_GNUTLS void do_show_cert_failed_dialog(VerifyData* data); bool confirm_accept_new_cert_dialog(GtkWindow*, gnutls_x509_crt_t, const Quark&); #endif void step_bookmarks(int step); void do_read_or_save_articles (); public: static std::string prompt_user_for_save_path (GtkWindow * parent, const Prefs& prefs); static std::string prompt_user_for_filename (GtkWindow * parent, const Prefs& prefs); private: // Queue::Listener friend class Queue; void on_queue_task_active_changed (Queue&, Task&, bool active) override final; void on_queue_tasks_added (Queue&, int index UNUSED, int count UNUSED) override { } void on_queue_task_removed (Queue&, Task&, int pos UNUSED) override { } void on_queue_task_moved (Queue&, Task&, int new_pos UNUSED, int old_pos UNUSED) override { } void on_queue_connection_count_changed (Queue&, int count) override; void on_queue_size_changed (Queue&, int active, int total) override; void on_queue_online_changed (Queue&, bool online) override; void on_queue_error (Queue&, const StringView& message) override; #ifdef HAVE_GNUTLS private: // CertStore::Listener void on_verify_cert_failed(gnutls_x509_crt_t, std::string, int) override; void on_valid_cert_added (gnutls_x509_crt_t, std::string) override; #endif private: // Log::Listener void on_log_entry_added (const Log::Entry& e) override; void on_log_cleared () override {} private: // Progress::Listener void on_progress_finished (Progress&, int status) override; public: // WaitUI void watch_cursor_on () override; void watch_cursor_off () override; private: void set_selected_thread_score (int score); bool deletion_confirmation_dialog() const; private: Data& _data; Queue& _queue; ArticleCache& _cache; EncodeCache& _encode_cache; Prefs& _prefs; GroupPrefs& _group_prefs; CertStore& _certstore; private: GtkWidget * _root; GtkWidget * _menu_vbox; GtkWidget * _workarea_bin; GtkWidget * _toolbar; GroupPane * _group_pane; HeaderPane * _header_pane; BodyPane * _body_pane; GtkUIManager * _ui_manager; GtkWidget * _info_image; GtkWidget * _error_image; GtkWidget * _connection_size_eventbox; GtkWidget * _connection_size_label; GtkWidget * _queue_size_label; GtkWidget * _queue_size_button; GtkWidget * _event_log_button; GtkWidget * _taskbar; std::vector _views; ProgressView* _meter_view; std::list _active_tasks; std::string _charset; GtkWidget* _meter_button; void set_charset (const StringView& v); void upkeep (); guint upkeep_tag; static int upkeep_timer_cb (gpointer gui_g); void set_queue_size_label (unsigned int running, unsigned int size); void refresh_connection_label (); static void show_event_log_cb (GtkWidget*, gpointer); static void show_task_window_cb (GtkWidget*, gpointer); static void show_download_meter_prefs_cb (GtkWidget*, gpointer); void score_add (int); static void notebook_page_switched_cb (GtkNotebook*, void *, gint, gpointer); static void root_realized_cb (GtkWidget*, gpointer self_gpointer); public: BodyPane* body_pane() { return _body_pane; } GtkWidget* meter_button () { return _meter_button; } private: static void add_widget (GtkUIManager*, GtkWidget*, gpointer); static void server_list_dialog_destroyed_cb (GtkWidget*, gpointer); void server_list_dialog_destroyed (GtkWidget*); static void sec_dialog_destroyed_cb (GtkWidget*, gpointer); void sec_dialog_destroyed (GtkWidget*); static void prefs_dialog_destroyed_cb (GtkWidget * w, gpointer self); void prefs_dialog_destroyed (GtkWidget* w); int score_int_from_string(std::string val, const char* rules[]); void edit_scores_cleanup(int, char *, GtkAction *); std::unique_ptr _spawner; #ifdef HAVE_GNUTLS static gboolean show_cert_failed_cb(gpointer gp); #endif public: GtkUIManager* get_ui_manager() { return _ui_manager; } }; } #endif /* __PAN_H__ */ pan-0.162/pan/gui/header-pane.cc000066400000000000000000002421111475412772400163400ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "header-pane.h" #include "pan/gui/load-icon.h" #include "render-bytes.h" #include "tango-colors.h" using namespace pan; /**** ***** ****/ namespace { enum { COL_DATE_STR, COL_STATE, COL_ACTION, COL_SCORE, COL_LINES, COL_BYTES, COL_DATE, COL_ARTICLE_POINTER, COL_SUBJECT, COL_SHORT_AUTHOR, N_COLUMNS }; } namespace { // default color theme's Colors PanColors const &colors(PanColors::get()); } Article const *HeaderPane ::get_article(GtkTreeModel *model, GtkTreeIter *iter) { Article const *a = dynamic_cast(PAN_TREE_STORE(model)->get_row(iter))->article; g_assert (a != nullptr); return a; } /**** ***** ****/ namespace { typedef std::set
articles_t; enum { ICON_READ, ICON_UNREAD, ICON_COMPLETE, ICON_COMPLETE_READ, ICON_INCOMPLETE, ICON_INCOMPLETE_READ, ICON_CACHED, ICON_QUEUED, ICON_ERROR, ICON_EMPTY, ICON_FLAGGED, ICON_GET_FLAGGED, ICON_QTY }; struct Icon { char const *icon_file; GdkPixbuf * pixbuf; } _icons[ICON_QTY] = { { "icon_article_read.png", nullptr }, { "icon_article_unread.png", nullptr }, { "icon_binary_complete.png", nullptr }, { "icon_binary_complete_read.png", nullptr }, { "icon_binary_incomplete.png", nullptr }, { "icon_binary_incomplete_read.png", nullptr }, { "icon_disk.png", nullptr }, { "icon_bluecheck.png", nullptr }, { "icon_x.png", nullptr }, { "icon_empty.png", nullptr }, { "icon_red_flag.png", nullptr }, { "icon_get_flagged.png", nullptr } }; int get_article_state(Data const &data, Article const *a) { int retval; bool const read(data.is_read(a)); int const part_state(a->get_part_state()); if (part_state==Article::COMPLETE && read) retval = ICON_COMPLETE_READ; else if (part_state==Article::COMPLETE) retval = ICON_COMPLETE; else if (part_state==Article::INCOMPLETE && read) retval = ICON_INCOMPLETE_READ; else if (part_state==Article::INCOMPLETE) retval = ICON_INCOMPLETE; else if (read) retval = ICON_READ; else retval = ICON_UNREAD; return retval; } int get_article_action(Article const *article, ArticleCache const &cache, Queue const &queue, Quark const &message_id) { int offset (ICON_EMPTY); if (queue.contains (message_id)) offset = ICON_QUEUED; else if (cache.contains (message_id)) offset = ICON_CACHED; if (article) if (article->flag) offset = ICON_FLAGGED; return offset; } }; void HeaderPane :: render_action (GtkTreeViewColumn * , GtkCellRenderer * renderer, GtkTreeModel * model, GtkTreeIter * iter, gpointer ) { int index (0); gtk_tree_model_get (model, iter, COL_ACTION, &index, -1); g_object_set (renderer, "pixbuf", _icons[index].pixbuf, nullptr); } void HeaderPane :: render_state (GtkTreeViewColumn * , GtkCellRenderer * renderer, GtkTreeModel * model, GtkTreeIter * iter, gpointer ) { int index (0); gtk_tree_model_get (model, iter, COL_STATE, &index, -1); g_object_set (renderer, "pixbuf", _icons[index].pixbuf, nullptr); } int HeaderPane :: find_highest_followup_score (GtkTreeModel * model, GtkTreeIter * parent) const { int score (-9999); GtkTreeIter child; if (gtk_tree_model_iter_children (model, &child, parent)) do { Article const *a(get_article(model, &child)); score = std::max(score, a->score); score = std::max(score, find_highest_followup_score(model, &child)); } while (gtk_tree_model_iter_next (model, &child)); return score; } void HeaderPane :: render_score (GtkTreeViewColumn * , GtkCellRenderer * renderer, GtkTreeModel * model, GtkTreeIter * iter, gpointer user_data) { int score (0); gtk_tree_model_get (model, iter, COL_SCORE, &score, -1); char buf[16]; if (score) g_snprintf(buf, sizeof(buf), "%d", score); else *buf = '\0'; HeaderPane * self (static_cast(user_data)); GtkTreeView * view (GTK_TREE_VIEW (self->_tree_view)); GtkTreePath * path (gtk_tree_model_get_path (model, iter)); bool const expanded(gtk_tree_view_row_expanded(view, path)); gtk_tree_path_free (path); if (!expanded) score = std::max (score, self->find_highest_followup_score (model, iter)); Prefs const &prefs(self->_prefs); std::string bg, fg; if (score >= 9999) { fg = prefs.get_color_str ("score-color-watched-fg", colors.def_fg); bg = prefs.get_color_str ("score-color-watched-bg", TANGO_CHAMELEON_LIGHT); } else if (score >= 5000) { fg = prefs.get_color_str ("score-color-high-fg", colors.def_fg); bg = prefs.get_color_str ("score-color-high-bg", TANGO_BUTTER_LIGHT); } else if (score >= 1) { fg = prefs.get_color_str ("score-color-medium-fg", colors.def_fg); bg = prefs.get_color_str ("score-color-medium-bg", TANGO_SKY_BLUE_LIGHT); } else if (score <= -9999) { fg = prefs.get_color_str ("score-color-ignored-fg", TANGO_ALUMINUM_4); bg = prefs.get_color_str ("score-color-ignored-bg", colors.def_bg); } else if (score <= -1) { fg = prefs.get_color_str ("score-color-low-fg", TANGO_ALUMINUM_2); bg = prefs.get_color_str ("score-color-low-bg", colors.def_bg); } else if (score == 0) { fg = self->_fg; bg = self->_bg; } g_object_set (renderer, "text", buf, "background", (bg.empty() ? nullptr : bg.c_str()), "foreground", (fg.empty() ? nullptr : fg.c_str()), nullptr); } void HeaderPane :: render_author (GtkTreeViewColumn * , GtkCellRenderer * renderer, GtkTreeModel * model, GtkTreeIter * iter, gpointer user_data) { HeaderPane const *self(static_cast(user_data)); Article const *a(self->get_article(model, iter)); g_object_set (renderer, "text", a->author.c_str() , "background", self->_bg.c_str(), "foreground", self->_fg.c_str(), nullptr); } void HeaderPane :: render_lines (GtkTreeViewColumn * , GtkCellRenderer * renderer, GtkTreeModel * model, GtkTreeIter * iter, gpointer user_data) { HeaderPane const *self(static_cast(user_data)); unsigned long lines(0ul); std::stringstream str; gtk_tree_model_get (model, iter, COL_LINES, &lines, -1); str << lines; g_object_set (renderer, "text", str.str().c_str(), "background", self->_bg.c_str(), "foreground", self->_fg.c_str(), nullptr); } void HeaderPane :: render_bytes (GtkTreeViewColumn * , GtkCellRenderer * renderer, GtkTreeModel * model, GtkTreeIter * iter, gpointer userdata) { HeaderPane const *self(static_cast(userdata)); unsigned long bytes (0); gtk_tree_model_get (model, iter, COL_BYTES, &bytes, -1); g_object_set (renderer, "text", pan::render_bytes(bytes), "background", self->_bg.c_str(), "foreground", self->_fg.c_str(), nullptr); } void HeaderPane :: render_date (GtkTreeViewColumn * , GtkCellRenderer * renderer, GtkTreeModel * model, GtkTreeIter * iter, gpointer userdata) { HeaderPane const *self(static_cast(userdata)); gchar* date (nullptr); gtk_tree_model_get (model, iter, COL_DATE_STR, &date, -1); g_object_set (renderer, "text", date, "background", self->_bg.c_str(), "foreground", self->_fg.c_str(), nullptr); g_free (date); } struct HeaderPane::CountUnread: public PanTreeStore::WalkFunctor { const Row * top_row; unsigned long unread_children; CountUnread (const Row* top): top_row(top), unread_children(0) {} virtual ~CountUnread () {} virtual bool operator()(PanTreeStore*, PanTreeStore::Row* r, GtkTreeIter*, GtkTreePath* ) { const Row * row (dynamic_cast(r)); if (row!=top_row && !row->is_read) ++unread_children; return true; } }; void HeaderPane :: render_subject (GtkTreeViewColumn * , GtkCellRenderer * renderer, GtkTreeModel * model, GtkTreeIter * iter, gpointer user_data) { const HeaderPane * self (static_cast(user_data)); const Prefs & p(self->_prefs); const Row * row (dynamic_cast(self->_tree_store->get_row (iter))); CountUnread counter (row); self->_tree_store->prefix_walk (counter, iter); const bool bold (!row->is_read); const Article * a (self->get_article (model, iter)); std::string res = a->subject.c_str(); char buf[512]; bool unread (false); if (counter.unread_children) { // find out if the row is expanded or not GtkTreeView * view (GTK_TREE_VIEW (self->_tree_view)); GtkTreePath * path (gtk_tree_model_get_path (model, iter)); const bool expanded (gtk_tree_view_row_expanded (view, path)); gtk_tree_path_free (path); if (!expanded) { unread = row->is_read; snprintf (buf, sizeof(buf), "%s (%lu)", res.c_str(), counter.unread_children); res = buf; } } std::string def_bg, def_fg; def_fg = p.get_color_str_wo_fallback("color-read-fg"); def_bg = p.get_color_str_wo_fallback("color-read-bg"); g_object_set (renderer, "text", res.c_str(), "weight", (bold ? PANGO_WEIGHT_BOLD : PANGO_WEIGHT_NORMAL), "foreground", unread ? (def_fg.empty() ? self->_fg.c_str() : def_fg.c_str()) : self->_fg.c_str(), "background", unread ? (def_bg.empty() ? self->_bg.c_str() : def_bg.c_str()) : self->_bg.c_str(), nullptr); } HeaderPane::Row* HeaderPane :: get_row (const Quark& message_id) { mid_to_row_t::iterator it (_mid_to_row.find (message_id)); return it==_mid_to_row.end() ? nullptr : *it; } HeaderPane::Row* HeaderPane :: create_row (const EvolutionDateMaker & e, const Article * a) { const int action (get_article_action (a, _cache, _queue, a->message_id)); const int state (get_article_state (_data, a)); char * date_str (e.get_date_string (a->time_posted)); Row * row = new Row (_data, a, date_str, action, state); std::pair result (_mid_to_row.insert (row)); g_assert (result.second); return row; } void HeaderPane :: add_children_to_model (PanTreeStore * store, PanTreeStore::Row * parent_row, const Quark & parent_mid, const Data::ArticleTree * atree, const EvolutionDateMaker & date_maker, const bool do_thread) { // see if this parent has any children... article_v children; atree->get_children (parent_mid, children); if (children.empty()) return; // add all these children... PanTreeStore::rows_t rows; rows.reserve (children.size()); foreach_const (article_v, children, it) rows.push_back (create_row (date_maker, *it)); store->append (do_thread ? parent_row : nullptr, rows); // recurse for (size_t i=0, n=children.size(); imessage_id, atree, date_maker, do_thread); } int HeaderPane :: column_compare_func (GtkTreeModel * model, GtkTreeIter * iter_a, GtkTreeIter * iter_b, gpointer ) { int ret (0); const PanTreeStore * store (reinterpret_cast(model)); const Row& row_a (*static_cast(store->get_row (iter_a))); const Row& row_b (*static_cast(store->get_row (iter_b))); int sortcol; GtkSortType order; store->get_sort_column_id (sortcol, order); const bool is_root (store->is_root (iter_a)); if (!is_root) sortcol = COL_DATE; switch (sortcol) { case COL_STATE: ret = row_a.state - row_b.state; break; case COL_ACTION: //const int a_action (store->get_cell_int (iter_a, COL_ACTION)); //const int b_action (store->get_cell_int (iter_b, COL_ACTION)); //ret = a_action - b_action; break; case COL_SUBJECT: ret = strcmp (row_a.get_collated_subject (), row_b.get_collated_subject ()); break; case COL_SCORE: ret = row_a.article->score - row_b.article->score; break; case COL_BYTES: { const unsigned long a_bytes (row_a.article->get_byte_count()); const unsigned long b_bytes (row_b.article->get_byte_count()); if (a_bytes < b_bytes) ret = -1; else if (a_bytes > b_bytes) ret = 1; else ret = 0; break; } case COL_LINES: { const unsigned long a_lines (row_a.article->get_line_count()); const unsigned long b_lines (row_b.article->get_line_count()); if (a_lines < b_lines) ret = -1; else if (a_lines > b_lines) ret = 1; else ret = 0; break; } case COL_SHORT_AUTHOR: ret = strcmp (row_a.get_collated_author (), row_b.get_collated_author ()); break; default: { // COL_DATE const time_t a_time (row_a.article->time_posted); const time_t b_time (row_b.article->time_posted); if (a_time < b_time) ret = -1; else if (a_time > b_time) ret = 1; else ret = 0; break; } } // we _always_ want the lower levels to be sorted by date if (!is_root && order==GTK_SORT_DESCENDING) ret = -ret; return ret; } void HeaderPane :: sort_column_changed_cb (GtkTreeSortable *sortable, gpointer user_data) { HeaderPane * self(static_cast(user_data)); const articles_set old_selection (self->get_full_selection ()); if (!old_selection.empty()) self->select_message_id ((*(old_selection.begin()))->message_id); } PanTreeStore* HeaderPane :: build_model (const Quark & group, Data::ArticleTree * atree, const TextMatch * ) { PanTreeStore * store = PanTreeStore :: new_tree ( N_COLUMNS, G_TYPE_STRING, // date string G_TYPE_INT, // state G_TYPE_INT, // action G_TYPE_INT, // score G_TYPE_ULONG, // lines G_TYPE_ULONG, // bytes G_TYPE_ULONG, // date G_TYPE_POINTER, // article pointer G_TYPE_STRING, // subject G_TYPE_STRING); // short author GtkTreeSortable * sort = GTK_TREE_SORTABLE(store); for (int i=0; imessage_id); } _mid_to_row.clear (); _tree_store = build_model (_group, _atree, nullptr); const bool sort_ascending = _group_prefs.get_flag (_group, "header-pane-sort-ascending", false); int sort_column = _group_prefs.get_int (_group, "header-pane-sort-column", COL_DATE); if (sort_column<0 || sort_column>=N_COLUMNS) // safeguard against odd settings sort_column = COL_DATE; gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE(_tree_store), sort_column, sort_ascending ? GTK_SORT_ASCENDING : GTK_SORT_DESCENDING); GtkTreeModel * model (GTK_TREE_MODEL (_tree_store)); GtkTreeView * view (GTK_TREE_VIEW (_tree_view)); gtk_tree_view_set_model (view, model); g_object_unref (G_OBJECT(_tree_store)); // store is deleted w/view // add signal here to avoid loop g_signal_connect (GTK_TREE_SORTABLE(_tree_store), "sort-column-changed", G_CALLBACK(sort_column_changed_cb), this); if (_prefs.get_flag ("expand-threads-when-entering-group", false)) gtk_tree_view_expand_all (view); if (!selectme.empty()) select_message_id (*selectme.begin()); } bool HeaderPane :: set_group (const Quark& new_group) { set_cleared(new_group.empty()); const Quark old_group (_group); bool change (old_group != new_group); if (change) { if (!_group.empty() && _prefs.get_flag ("mark-group-read-when-leaving-group", false)) _data.mark_group_read (_group); if (_atree) _atree->remove_listener (this); if (_tree_store) { save_sort_order (get_group(), _group_prefs, _tree_store); _mid_to_row.clear (); _tree_store = nullptr; gtk_tree_view_set_model (GTK_TREE_VIEW(_tree_view), nullptr); } _group = new_group; delete _atree; _atree = nullptr; char * pch = g_build_filename (g_get_home_dir(), "News", nullptr); Quark path(_group_prefs.get_string (_group, "default-group-save-path", pch)); g_free(pch); if (!_group.empty()) { _atree = _data.group_get_articles (new_group, path, _show_type, &_filter,&_rules); _atree->add_listener (this); rebuild (); if (gtk_widget_get_realized(_tree_view)) gtk_tree_view_scroll_to_point (GTK_TREE_VIEW(_tree_view), 0, 0); } } return change; } /**** ***** ****/ void HeaderPane :: rebuild_article_state (const Quark& message_id) { Row * row (get_row (message_id)); const Article * article (row->article); const int is_read (_data.is_read (article)); const int state (get_article_state (_data, article)); const bool changed ((state!=row->state) || (is_read!=row->is_read)); row->state = state; row->is_read = is_read; if (changed) _tree_store->row_changed (row); } void HeaderPane :: rebuild_all_article_states () { foreach (mid_to_row_t, _mid_to_row, it) rebuild_article_state ((*it)->article->message_id); } void HeaderPane :: on_group_read (const Quark& group) { if (group == _group) { rebuild_all_article_states (); gtk_widget_queue_draw (_tree_view); } } /**** ***** ****/ namespace { struct ArticleIsNotInSet: public ArticleTester { const quarks_t& mids; ArticleIsNotInSet (const quarks_t& m): mids(m) {} virtual ~ArticleIsNotInSet () {} virtual bool operator()(const Article& a) const override { return !mids.count(a.message_id); } }; struct RememberMessageId: public RowActionFunctor { quarks_t& mids; RememberMessageId (quarks_t& m): mids(m) {} virtual ~RememberMessageId() {} void operator() (GtkTreeModel*, GtkTreeIter*, const Article& article) override { mids.insert (article.message_id); } }; } void HeaderPane :: collapse_selected() { { // get a list of paths GtkTreeModel * model (nullptr); GtkTreeView * view (GTK_TREE_VIEW (_tree_view)); GtkTreeSelection * selection (gtk_tree_view_get_selection (view)); GList * list (gtk_tree_selection_get_selected_rows (selection, &model)); if (list) { GtkTreePath * path (static_cast(list->data)); gtk_tree_view_collapse_row (view, path); // gtk_tree_view_expand_to_path (view, path); } g_list_foreach (list, (GFunc)gtk_tree_path_free, nullptr); g_list_free (list); } } void HeaderPane :: select_message_id (const Quark& mid, bool do_scroll) { HeaderPane::Row * row = get_row (mid); GtkTreePath * path (_tree_store->get_path(row)); GtkTreeView * view (GTK_TREE_VIEW(_tree_view)); const bool expand (_prefs.get_flag("expand-selected-articles",false)); if (expand) gtk_tree_view_expand_to_path (view, path); GtkTreeSelection * sel (gtk_tree_view_get_selection (view)); gtk_tree_selection_select_path (sel, path); if (do_scroll) { gtk_tree_view_set_cursor (view, path, nullptr, false); gtk_tree_view_scroll_to_cell (view, path, nullptr, true, 0.5f, 0.0f); } gtk_tree_path_free (path); } void HeaderPane :: on_tree_change (const Data::ArticleTree::Diffs& diffs) { debug (diffs.added.size() << " article added; " << diffs.reparented.size() << " reparented; " << diffs.removed.size() << " removed"); // we might need to change the selection after the update. const article_v old_selection (get_full_selection_v ()); quarks_t new_selection; foreach_const (article_v, old_selection, it) if (!diffs.removed.count ((*it)->message_id)) new_selection.insert ((*it)->message_id); // if the old selection survived, // is it visible on the screen? bool selection_was_visible (true); if (!new_selection.empty()) { GtkTreeView *view (GTK_TREE_VIEW(_tree_view)); Row * row (get_row (*new_selection.begin())); GtkTreePath *a(nullptr), *b(nullptr), *p (_tree_store->get_path (row)); gtk_tree_view_get_visible_range (view, &a, &b); selection_was_visible = (gtk_tree_path_compare(a,p)<=0 && gtk_tree_path_compare(p,b)<=0); gtk_tree_path_free (a); gtk_tree_path_free (b); gtk_tree_path_free (p); } // if none of the current selection survived, // we need to select something to replace the // current selection. if (!old_selection.empty() && new_selection.empty()) { ArticleIsNotInSet tester (diffs.removed); RememberMessageId actor (new_selection); action_next_if (tester, actor); } // added... const bool do_thread (_prefs.get_flag ("thread-headers", true)); if (!diffs.added.empty()) { const EvolutionDateMaker date_maker; PanTreeStore::parent_to_children_t tmp; foreach_const (Data::ArticleTree::Diffs::added_t, diffs.added, it) create_row (date_maker, _atree->get_article(it->first)); foreach_const (Data::ArticleTree::Diffs::added_t, diffs.added, it) { Row * parent (do_thread ? get_row (it->second.parent) : nullptr); Row * child (get_row (it->first)); tmp[parent].push_back (child); } g_object_ref(G_OBJECT (_tree_store)); gtk_tree_view_set_model(GTK_TREE_VIEW(_tree_view), nullptr); _tree_store->insert_sorted (tmp); gtk_tree_view_set_model(GTK_TREE_VIEW(_tree_view), GTK_TREE_MODEL (_tree_store)); g_object_unref(G_OBJECT(_tree_store)); } // reparent... if (do_thread && !diffs.reparented.empty()) { PanTreeStore::parent_to_children_t tmp; foreach_const (Data::ArticleTree::Diffs::reparented_t, diffs.reparented, it) { Row * parent (get_row (it->second.new_parent)); Row * child (get_row (it->second.message_id)); tmp[parent].push_back (child); } _tree_store->reparent (tmp); } // removed... if (!diffs.removed.empty()) { RowLessThan o; std::vector keep; PanTreeStore::rows_t kill; std::set_difference (_mid_to_row.begin(), _mid_to_row.end(), diffs.removed.begin(), diffs.removed.end(), inserter (keep, keep.begin()), o); std::set_difference (_mid_to_row.begin(), _mid_to_row.end(), keep.begin(), keep.end(), inserter (kill, kill.begin()), o); g_assert (keep.size() + kill.size() == _mid_to_row.size()); g_object_ref(G_OBJECT (_tree_store)); gtk_tree_view_set_model(GTK_TREE_VIEW(_tree_view), nullptr); _tree_store->remove (kill); gtk_tree_view_set_model(GTK_TREE_VIEW(_tree_view), GTK_TREE_MODEL (_tree_store)); g_object_unref(G_OBJECT(_tree_store)); _mid_to_row.get_container().swap (keep); } // changed... foreach_const (quarks_t, diffs.changed, it) rebuild_article_state (*it); if (!diffs.added.empty() && _prefs.get_flag ("expand-threads-when-entering-group", false)) gtk_tree_view_expand_all (GTK_TREE_VIEW(_tree_view)); // update our selection if necessary. // if the new selection has just been added or reparented, // and it was visible on the screen before, // then scroll to ensure it's still visible. if (!new_selection.empty()) { const bool do_scroll = selection_was_visible && (!diffs.added.empty() || !diffs.reparented.empty() || !diffs.removed.empty()); select_message_id (*new_selection.begin(), do_scroll); } } /**** ***** SELECTION ****/ const Article* HeaderPane :: get_first_selected_article () const { const Article * a (nullptr); const std::set articles (get_full_selection ()); if (!articles.empty()) a = *articles.begin (); return a; } Article* HeaderPane :: get_first_selected_article () { Article * a (nullptr); std::set articles (get_full_selection ()); if (!articles.empty()) a = (Article*)*articles.begin (); return a; } const guint HeaderPane :: get_full_selection_rows_num() const { return (gtk_tree_selection_count_selected_rows(gtk_tree_view_get_selection(GTK_TREE_VIEW(_tree_view)))); } void HeaderPane :: get_full_selection_v_foreach (GtkTreeModel * model, GtkTreePath * , GtkTreeIter * iter, gpointer data) { static_cast(data)->push_back (get_article (model, iter)); } std::vector HeaderPane :: get_full_selection_v () const { std::vector articles; GtkTreeView * view (GTK_TREE_VIEW (_tree_view)); gtk_tree_selection_selected_foreach (gtk_tree_view_get_selection (view), get_full_selection_v_foreach, &articles); return articles; } std::set HeaderPane :: get_full_selection () const { std::set articles; const std::vector articles_v (get_full_selection_v()); foreach_const (std::vector, articles_v, it) articles.insert (*it); return articles; } void HeaderPane :: mark_all_flagged () { GtkTreeIter iter; GtkTreeModel * model(gtk_tree_view_get_model(GTK_TREE_VIEW(_tree_view))); GtkTreeSelection * sel (gtk_tree_view_get_selection (GTK_TREE_VIEW(_tree_view))); gtk_tree_selection_unselect_all(sel); gtk_tree_model_get_iter_first (model, &iter); walk_and_collect_flagged(model, &iter, sel); } void HeaderPane :: invert_selection () { GtkTreeIter iter; GtkTreeModel * model(gtk_tree_view_get_model(GTK_TREE_VIEW(_tree_view))); GtkTreeSelection * sel (gtk_tree_view_get_selection (GTK_TREE_VIEW(_tree_view))); gtk_tree_model_get_iter_first (model, &iter); walk_and_invert_selection (model, &iter, sel); } void HeaderPane :: walk_and_invert_selection (GtkTreeModel * model, GtkTreeIter * cur, GtkTreeSelection * ref) const { for (;;) { const bool selected(gtk_tree_selection_iter_is_selected (ref, cur)); if (selected) gtk_tree_selection_unselect_iter(ref,cur); else gtk_tree_selection_select_iter(ref,cur); GtkTreeIter child; if (gtk_tree_model_iter_children (model, &child, cur)) walk_and_invert_selection (model, &child, ref); if (!gtk_tree_model_iter_next (model, cur)) break; } } void HeaderPane :: walk_and_collect_flagged (GtkTreeModel * model, GtkTreeIter * cur, GtkTreeSelection * setme) const { for (;;) { const Article * a(get_article (model, cur)); if (a->get_flag()) gtk_tree_selection_select_iter(setme,cur); GtkTreeIter child; if (gtk_tree_model_iter_children (model, &child, cur)) walk_and_collect_flagged (model, &child, setme); if (!gtk_tree_model_iter_next (model, cur)) break; } } void HeaderPane :: walk_and_collect (GtkTreeModel * model, GtkTreeIter * cur, articles_set & setme) const { for (;;) { setme.insert (get_article (model, cur)); GtkTreeIter child; if (gtk_tree_model_iter_children (model, &child, cur)) walk_and_collect (model, &child, setme); if (!gtk_tree_model_iter_next (model, cur)) break; } } namespace { struct NestedData { const HeaderPane * pane; articles_t articles; bool mark_all; /* for mark_article_(un)read and mark_thread_(un)read */ }; } void HeaderPane :: get_nested_foreach (GtkTreeModel * model, GtkTreePath * path, GtkTreeIter * iter, gpointer data) const { NestedData& ndata (*static_cast(data)); articles_set& articles (ndata.articles); articles.insert (get_article (model, iter)); const bool expanded (gtk_tree_view_row_expanded (GTK_TREE_VIEW(_tree_view), path)); GtkTreeIter child; if ((!expanded || ndata.mark_all) && gtk_tree_model_iter_children(model,&child,iter)) walk_and_collect (model, &child, articles); } void HeaderPane :: get_nested_foreach_static (GtkTreeModel* model, GtkTreePath* path, GtkTreeIter* iter, gpointer data) { NestedData& ndata (*static_cast(data)); ndata.pane->get_nested_foreach (model, path, iter, &ndata); } articles_set HeaderPane :: get_nested_selection (bool do_mark_all) const { NestedData data; data.pane = this; data.mark_all = do_mark_all; GtkTreeSelection * selection (gtk_tree_view_get_selection (GTK_TREE_VIEW(_tree_view))); gtk_tree_selection_selected_foreach (selection, get_nested_foreach_static, &data); return data.articles; } /**** ***** POPUP MENU ****/ void HeaderPane :: do_popup_menu (GtkWidget*, GdkEventButton *event, gpointer pane_g) { HeaderPane * self (static_cast(pane_g)); GtkWidget * menu (self->_action_manager.get_action_widget ("/header-pane-popup")); gtk_menu_popup (GTK_MENU(menu), nullptr, nullptr, nullptr, nullptr, (event ? event->button : 0), (event ? event->time : 0)); } namespace { gboolean on_popup_menu (GtkWidget * treeview, gpointer userdata) { HeaderPane::do_popup_menu (treeview, nullptr, userdata); return true; } } namespace { bool row_collapsed_or_expanded (false); void row_collapsed_cb (GtkTreeView *, GtkTreeIter *, GtkTreePath *, gpointer ) { row_collapsed_or_expanded = true; } void row_expanded_cb (GtkTreeView *view, GtkTreeIter *, GtkTreePath *path, gpointer ) { row_collapsed_or_expanded = true; gtk_tree_view_expand_row (view, path, true); } struct Blah { GtkTreeView * view; GtkTreePath * path; GtkTreeViewColumn * col; }; gboolean maybe_activate_on_idle_idle (gpointer blah_gpointer) { Blah * blah = (Blah*) blah_gpointer; if (!row_collapsed_or_expanded) gtk_tree_view_row_activated (blah->view, blah->path, blah->col); gtk_tree_path_free (blah->path); g_free (blah); return false; } /** * There doesn't seem to be any way to see if a mouse click in a tree view * happened on the expander or elsewhere in a row, so when deciding whether or * not to activate a row on single click, let's wait and see if a row expands or * collapses. */ void maybe_activate_on_idle (GtkTreeView *view, GtkTreePath *path, GtkTreeViewColumn *col) { row_collapsed_or_expanded = false; Blah * blah = (Blah*) g_new (Blah, 1); blah->view = view; blah->path = path; blah->col = col; g_idle_add (maybe_activate_on_idle_idle, blah); } } namespace { static gboolean return_pressed_download_all (gpointer data) { HeaderPane * self (static_cast(data)); // TODO move this into headerpane self->_gui.do_read_or_save_articles(); return false; } static gboolean left_pressed (gpointer data) { HeaderPane * self (static_cast(data)); // TODO move this into headerpane self->_gui.do_collapse_thread (); return false; } static gboolean right_pressed (gpointer data) { HeaderPane * self (static_cast(data)); // TODO move this into headerpane self->_gui.do_expand_thread (); return false; } } // TODO just pass TRUE and let actions.cc handle that! gboolean HeaderPane :: on_keyboard_button_pressed ( GtkWidget *widget, GdkEventKey *event, gpointer data) { if (event->type == GDK_KEY_PRESS) { if (event->keyval == GDK_KEY_Return) { g_idle_add(return_pressed_download_all, data); return TRUE; } if (event->keyval == GDK_KEY_Left) { g_idle_add(left_pressed, data); return TRUE; } if (event->keyval == GDK_KEY_Right) { g_idle_add(right_pressed, data); return TRUE; } } return FALSE; } gboolean HeaderPane :: on_button_pressed (GtkWidget * treeview, GdkEventButton *event, gpointer userdata) { HeaderPane * self (static_cast(userdata)); GtkTreeView * tv (GTK_TREE_VIEW (treeview)); // single click with the right mouse button? if (event->type == GDK_BUTTON_PRESS && event->button == 3) { GtkTreeSelection * selection = gtk_tree_view_get_selection(tv); GtkTreePath *path; if (gtk_tree_view_get_path_at_pos (tv, (gint) event->x, (gint) event->y, &path, nullptr, nullptr, nullptr)) { if (!gtk_tree_selection_path_is_selected (selection, path)) { gtk_tree_selection_unselect_all (selection); gtk_tree_selection_select_path (selection, path); } gtk_tree_path_free(path); } HeaderPane::do_popup_menu(treeview, event, userdata); return true; } else if (self->_prefs.get_flag("single-click-activates-article",true) && (event->type == GDK_BUTTON_RELEASE) && (event->button == 1) && (event->send_event == false) && (event->window == gtk_tree_view_get_bin_window (tv)) && !(event->state & (GDK_SHIFT_MASK|GDK_CONTROL_MASK|GDK_MOD1_MASK)) && (self->get_full_selection_rows_num() == 1u)) { GtkTreePath * path; GtkTreeViewColumn * col; gint cell_x(0), cell_y(0); if (gtk_tree_view_get_path_at_pos(tv, (gint) event->x, (gint) event->y, &path, &col, &cell_x, &cell_y)) maybe_activate_on_idle (tv, path, col); } else if ((event->type == GDK_BUTTON_RELEASE) && (event->button == 2) && (event->send_event == false) && (event->window == gtk_tree_view_get_bin_window (tv))) { self->_action_manager.activate_action ("clear-body-pane"); } return false; } namespace { bool has_image_type_in_subject (const Article& a) { const StringView s (a.subject.to_view()); return s.strstr(".jpg") || s.strstr(".JPG") || s.strstr(".gif") || s.strstr(".GIF") || s.strstr(".jpeg") || s.strstr(".JPEG") || s.strstr(".png") || s.strstr(".PNG"); } gboolean on_row_activated_idle (gpointer pane_g) { HeaderPane * pane (static_cast(pane_g)); Article const *a(pane->get_first_selected_article()); if (a) { const size_t lines = a->get_line_count(); bool const is_bigish = lines >= 20000; bool const image_subject = has_image_type_in_subject(*a); bool const is_pictures_newsgroup = pane->get_group().to_view().strstr("pictures") != nullptr; // This is not the number of MIME parts int const part_count = a->get_found_part_count(); // update body pane with article information pane->_action_manager.activate_action ("read-selected-article"); if (is_bigish && ! is_pictures_newsgroup && ! image_subject && part_count > 1) { pane->_action_manager.activate_action("save-articles"); } } return false; } } void HeaderPane :: on_row_activated (GtkTreeView * , GtkTreePath * , GtkTreeViewColumn * , gpointer pane_g) { g_idle_add (on_row_activated_idle, pane_g); } /**** ***** ***** FILTERS ***** ****/ namespace { const char * mode_strings [] = { N_("Subject or Author"), N_("Sub or Auth (regex)"), N_("Subject"), N_("Author"), N_("Message-ID"), }; enum { SUBJECT_OR_AUTHOR, SUBJECT_OR_AUTHOR_REGEX, SUBJECT, AUTHOR, MESSAGE_ID }; } #define RANGE 4998 std::pair HeaderPane :: get_int_from_rules_str(std::string val) { std::pair res; if (val == "new") { res.first = 0; res.second = 0; } if (val == "never") { res.first = 10; res.second = 5; } // inversed, so never true if (val == "watched") { res.first = 9999; res.second = 99999; } if (val == "high") { res.first = 5000; res.second = 5000+RANGE; } if (val == "medium") { res.first = 1; res.second = 1+RANGE; } if (val == "low") { res.first = -9998; res.second = -1; } if (val == "ignored") { res.first = -9999; res.second = -99999; } return res; } void HeaderPane :: rebuild_rules (bool enable) { if (!enable) { _rules.clear(); return; } RulesInfo &r (_rules); r.set_type_aggregate_and (); RulesInfo *tmp; std::pair res; res = get_int_from_rules_str(_prefs.get_string("rules-delete-value", "never")); tmp = new RulesInfo; tmp->set_type_delete_b (res.first, res.second); r._aggregates.push_back (tmp); res = get_int_from_rules_str(_prefs.get_string("rules-mark-read-value", "never")); tmp = new RulesInfo; tmp->set_type_mark_read_b (res.first, res.second); r._aggregates.push_back (tmp); res = get_int_from_rules_str(_prefs.get_string("rules-autocache-value", "never")); tmp = new RulesInfo; tmp->set_type_autocache_b (res.first, res.second); r._aggregates.push_back (tmp); res = get_int_from_rules_str(_prefs.get_string("rules-auto-dl-value", "never")); tmp = new RulesInfo; tmp->set_type_dl_b (res.first, res.second); r._aggregates.push_back (tmp); } void HeaderPane :: rebuild_filter (const std::string& text, int mode) { TextMatch::Description d; d.negate = false; d.case_sensitive = false; d.type = TextMatch::CONTAINS; d.text = text; FilterInfo &f (_filter); f.set_type_aggregate_and (); // entry field filter... if (!text.empty()) { FilterInfo *entry_filter = new FilterInfo; if (mode == SUBJECT) entry_filter->set_type_text ("Subject", d); else if (mode == AUTHOR) entry_filter->set_type_text ("From", d); else if (mode == MESSAGE_ID) entry_filter->set_type_text ("Message-ID", d); else if (mode == SUBJECT_OR_AUTHOR) { FilterInfo *f1 = new FilterInfo, *f2 = new FilterInfo; entry_filter->set_type_aggregate_or (); f1->set_type_text ("Subject", d); f2->set_type_text ("From", d); entry_filter->_aggregates.push_back (f1); entry_filter->_aggregates.push_back (f2); } else if (mode == SUBJECT_OR_AUTHOR_REGEX) { FilterInfo *f1 = new FilterInfo, *f2 = new FilterInfo; entry_filter->set_type_aggregate_or (); d.type = TextMatch::REGEX; f1->set_type_text ("Subject", d); f2->set_type_text ("From", d); entry_filter->_aggregates.push_back (f1); entry_filter->_aggregates.push_back (f2); } f._aggregates.push_back (entry_filter); } if (_action_manager.is_action_active("match-only-read-articles")) { //std::cerr << LINE_ID << " AND is read" << std::endl; FilterInfo *tmp = new FilterInfo; tmp->set_type_is_read (); f._aggregates.push_back (tmp); } if (_action_manager.is_action_active("match-only-unread-articles")) { //std::cerr << LINE_ID << " AND is unread" << std::endl; FilterInfo *tmp = new FilterInfo; tmp->set_type_is_unread (); f._aggregates.push_back (tmp); } if (_action_manager.is_action_active("match-only-cached-articles")) { //std::cerr << LINE_ID << " AND is cached" << std::endl; FilterInfo *tmp = new FilterInfo; tmp->set_type_cached (); f._aggregates.push_back (tmp); } if (_action_manager.is_action_active("match-only-binary-articles")) { //std::cerr << LINE_ID << " AND has an attachment" << std::endl; FilterInfo *tmp = new FilterInfo; tmp->set_type_binary (); f._aggregates.push_back (tmp); } if (_action_manager.is_action_active("match-only-my-articles")) { //std::cerr << LINE_ID << " AND was posted by me" << std::endl; FilterInfo *tmp = new FilterInfo; tmp->set_type_posted_by_me (); f._aggregates.push_back (tmp); } // try to fold the six ranges into as few FilterInfo items as possible.. typedef std::pair range_t; std::vector ranges; ranges.reserve (6); if (_action_manager.is_action_active("match-only-watched-articles")) ranges.push_back (range_t(9999, INT_MAX)); else { if (_action_manager.is_action_active("match-ignored-articles")) ranges.push_back (range_t(INT_MIN, -9999)); if (_action_manager.is_action_active("match-low-scoring-articles")) ranges.push_back (range_t(-9998, -1)); if (_action_manager.is_action_active("match-normal-scoring-articles")) ranges.push_back (range_t(0, 0)); if (_action_manager.is_action_active("match-medium-scoring-articles")) ranges.push_back (range_t(1, 4999)); if (_action_manager.is_action_active("match-high-scoring-articles")) ranges.push_back (range_t(5000, 9998)); if (_action_manager.is_action_active("match-watched-articles")) ranges.push_back (range_t(9999, INT_MAX)); } for (size_t i=0; !ranges.empty() && i filters; for (size_t i=0; iset_type_score_ge (range.first); //std::cerr << LINE_ID << " AND has a score >= " << range.first << std::endl; filters.push_back (tmp); } else if (low_bound) { FilterInfo *tmp = new FilterInfo; tmp->set_type_score_le (range.second); //std::cerr << LINE_ID << " AND has a score <= " << range.second << std::endl; filters.push_back (tmp); } else { // not bound on either side; need an aggregate FilterInfo *tmp = new FilterInfo; FilterInfo *s = new FilterInfo; s->set_type_aggregate_and (); tmp->set_type_score_ge (range.first); s->_aggregates.push_back (tmp); tmp->set_type_score_le (range.second); s->_aggregates.push_back (tmp); //std::cerr << LINE_ID << " AND has a in [" << range.first << "..." << range.second << ']' << std::endl; filters.push_back (s); } } if (filters.size()==1) // can fit in an `and' parent f._aggregates.push_back (filters[0]); else if (!filters.empty()) { // needs an `or' parent FilterInfo *s = new FilterInfo; s->set_type_aggregate_or (); s->_aggregates.swap (filters); f._aggregates.push_back (s); } //std::cerr << LINE_ID << " number of filters: " << f._aggregates.size() << std::endl; } void HeaderPane :: filter (const std::string& text, int mode) { rebuild_filter (text, mode); if (_atree) { _wait.watch_cursor_on (); if (_filter._aggregates.empty()) _atree->set_filter (); else _atree->set_filter (_show_type, &_filter); _wait.watch_cursor_off (); } } void HeaderPane :: rules(bool enable) { rebuild_rules(enable); if (_atree) { _wait.watch_cursor_on (); if (_rules._aggregates.empty()) _atree->set_rules(); else _atree->set_rules(_show_type, &_rules); _wait.watch_cursor_off (); } } namespace { // the text typed by the user. std::string search_text; guint entry_changed_tag (0u); guint activate_soon_tag (0u); // AUTHOR, SUBJECT, SUBJECT_OR_AUTHOR, or MESSAGE_ID int mode; void set_search_entry (GtkWidget * entry, const char * s) { g_signal_handler_block (entry, entry_changed_tag); gtk_entry_set_text (GTK_ENTRY(entry), s); g_signal_handler_unblock (entry, entry_changed_tag); } gboolean search_entry_focus_in_cb (GtkWidget * w, GdkEventFocus * , gpointer ) { gtk_widget_override_color (w, GTK_STATE_FLAG_NORMAL, nullptr); set_search_entry (w, search_text.c_str()); return false; } void refresh_search_entry (GtkWidget * w) { if (search_text.empty() && !gtk_widget_has_focus(w)) { GdkRGBA c; gdk_rgba_parse (&c, "0xAAA"); gtk_widget_override_color(w, GTK_STATE_FLAG_NORMAL, &c); set_search_entry (w, _(mode_strings[mode])); } } gboolean search_entry_focus_out_cb (GtkWidget * w, GdkEventFocus * , gpointer ) { refresh_search_entry (w); return false; } void search_activate (HeaderPane * h) { h->filter (search_text, mode); } void remove_activate_soon_tag () { if (activate_soon_tag != 0) { g_source_remove (activate_soon_tag); activate_soon_tag = 0; } } void search_entry_activated (GtkEntry *, gpointer h_gpointer) { search_activate (static_cast(h_gpointer)); remove_activate_soon_tag (); } gboolean activated_timeout_cb (gpointer h_gpointer) { search_activate (static_cast(h_gpointer)); remove_activate_soon_tag (); return false; // remove the source } // ensure there's exactly one activation timeout // and that it's set to go off in a half second from now. void bump_activate_soon_tag (HeaderPane * h) { remove_activate_soon_tag (); activate_soon_tag = g_timeout_add (500, activated_timeout_cb, h); } // when the user changes the filter text, // update our state variable and bump the activate timeout. void search_entry_changed (GtkEditable * e, gpointer h_gpointer) { search_text = gtk_entry_get_text (GTK_ENTRY(e)); bump_activate_soon_tag (static_cast(h_gpointer)); refresh_search_entry (GTK_WIDGET(e)); } // when the search mode is changed via the menu, // update our state variable and bump the activate timeout. void search_menu_toggled_cb (GtkCheckMenuItem * menu_item, gpointer entry_g) { if (gtk_check_menu_item_get_active (menu_item)) { mode = GPOINTER_TO_INT (g_object_get_data (G_OBJECT(menu_item), "MODE")); refresh_search_entry (GTK_WIDGET(entry_g)); HeaderPane * h = (HeaderPane*) g_object_get_data ( G_OBJECT(entry_g), "header-pane"); bump_activate_soon_tag (h); } } void entry_icon_release (GtkEntry*, GtkEntryIconPosition icon_pos, GdkEventButton*, gpointer menu) { if (icon_pos == GTK_ENTRY_ICON_PRIMARY) gtk_menu_popup (GTK_MENU(menu), nullptr, nullptr, nullptr, nullptr, 0, gtk_get_current_event_time()); } void entry_icon_release_2 (GtkEntry *entry, GtkEntryIconPosition icon_pos, GdkEventButton*, gpointer pane_gpointer) { if (icon_pos == GTK_ENTRY_ICON_SECONDARY) { set_search_entry (GTK_WIDGET(entry), ""); refresh_search_entry (GTK_WIDGET(entry)); search_text.clear (); search_entry_activated (nullptr, pane_gpointer); } } void ellipsize_if_supported (GObject * o) { g_object_set (o, "ellipsize", PANGO_ELLIPSIZE_END, nullptr); } } void HeaderPane :: build_tree_columns () { GtkTreeView * tree_view (GTK_TREE_VIEW (_tree_view)); const int xpad (_prefs.get_int ("tree-view-row-margins", 1)); // out with the old columns, if any GList * old_columns = gtk_tree_view_get_columns (tree_view); for (GList *l=old_columns; l!=nullptr; l=l->next) gtk_tree_view_remove_column (tree_view, GTK_TREE_VIEW_COLUMN(l->data)); g_list_free (old_columns); // get the user-configurable column list const std::string columns (_prefs.get_string ("header-pane-columns", "state,action,subject,score,author,lines,date")); StringView v(columns), tok; while (v.pop_token (tok, ',')) { const std::string& name (tok.to_string()); const std::string width_key = std::string("header-pane-") + name + "-column-width"; GtkTreeViewColumn * col (nullptr); if (name == "state") { GtkCellRenderer * r = GTK_CELL_RENDERER (g_object_new (GTK_TYPE_CELL_RENDERER_PIXBUF, "xpad", xpad, "ypad", 0, nullptr)); col = gtk_tree_view_column_new (); gtk_tree_view_column_set_sizing (col, GTK_TREE_VIEW_COLUMN_FIXED); // used a fixed width since the column is not resizable gtk_tree_view_column_set_fixed_width (col, 24); gtk_tree_view_column_set_resizable (col, false); gtk_tree_view_column_pack_start (col, r, false); gtk_tree_view_column_set_cell_data_func (col, r, render_state, nullptr, nullptr); gtk_tree_view_column_set_sort_column_id (col, COL_STATE); gtk_tree_view_append_column (tree_view, col); } else if (name == "action") { GtkCellRenderer * r = GTK_CELL_RENDERER (g_object_new (GTK_TYPE_CELL_RENDERER_PIXBUF, "xpad", xpad, "ypad", 0, nullptr)); col = gtk_tree_view_column_new (); gtk_tree_view_column_set_sizing (col, GTK_TREE_VIEW_COLUMN_FIXED); // used a fixed width since the column is not resizable gtk_tree_view_column_set_fixed_width (col, 24); gtk_tree_view_column_set_resizable (col, false); gtk_tree_view_column_pack_start (col, r, false); gtk_tree_view_column_set_cell_data_func (col, r, render_action, nullptr, nullptr); gtk_tree_view_append_column (tree_view, col); } else if (name == "subject") { GtkCellRenderer * r = GTK_CELL_RENDERER (g_object_new (GTK_TYPE_CELL_RENDERER_TEXT, "xpad", xpad, "ypad", 0, nullptr)); ellipsize_if_supported (G_OBJECT(r)); col = gtk_tree_view_column_new_with_attributes (_("Subject"), r, nullptr); gtk_tree_view_column_set_sizing (col, GTK_TREE_VIEW_COLUMN_FIXED); gtk_tree_view_column_set_fixed_width (col, _prefs.get_int (width_key, 400)); gtk_tree_view_column_set_resizable (col, true); gtk_tree_view_column_set_sort_column_id (col, COL_SUBJECT); gtk_tree_view_column_set_cell_data_func (col, r, render_subject, this, nullptr); gtk_tree_view_append_column (tree_view, col); gtk_tree_view_set_expander_column (tree_view, col); } else if (name == "score") { GtkCellRenderer * r = GTK_CELL_RENDERER (g_object_new (GTK_TYPE_CELL_RENDERER_TEXT, "xpad", xpad, "ypad", 0, "xalign", 1.0, nullptr)); ellipsize_if_supported (G_OBJECT(r)); col = gtk_tree_view_column_new_with_attributes (_("Score"), r, nullptr); gtk_tree_view_column_set_sizing (col, GTK_TREE_VIEW_COLUMN_FIXED); gtk_tree_view_column_set_fixed_width (col, _prefs.get_int (width_key, 50)); gtk_tree_view_column_set_resizable (col, true); gtk_tree_view_column_set_sort_column_id (col, COL_SCORE); gtk_tree_view_column_set_cell_data_func (col, r, render_score, this, nullptr); gtk_tree_view_append_column (tree_view, col); } else if (name == "author") { GtkCellRenderer * r = GTK_CELL_RENDERER (g_object_new (GTK_TYPE_CELL_RENDERER_TEXT, "xpad", xpad, "ypad", 0, nullptr)); ellipsize_if_supported (G_OBJECT(r)); col = gtk_tree_view_column_new_with_attributes (_("Author"), r, nullptr); gtk_tree_view_column_set_sizing (col, GTK_TREE_VIEW_COLUMN_FIXED); gtk_tree_view_column_set_fixed_width (col, _prefs.get_int (width_key, 133)); gtk_tree_view_column_set_resizable (col, true); gtk_tree_view_column_set_sort_column_id (col, COL_SHORT_AUTHOR); gtk_tree_view_column_set_cell_data_func (col, r, render_author, this, nullptr); gtk_tree_view_append_column (tree_view, col); } else if (name == "lines") { GtkCellRenderer * r = GTK_CELL_RENDERER (g_object_new (GTK_TYPE_CELL_RENDERER_TEXT, "xpad", xpad, "ypad", 0, "xalign", 1.0, nullptr)); ellipsize_if_supported (G_OBJECT(r)); col = gtk_tree_view_column_new_with_attributes (_("Lines"), r, nullptr); gtk_tree_view_column_set_sizing (col, GTK_TREE_VIEW_COLUMN_FIXED); gtk_tree_view_column_set_fixed_width (col, _prefs.get_int (width_key, 60)); gtk_tree_view_column_set_resizable (col, true); gtk_tree_view_column_set_sort_column_id (col, COL_LINES); gtk_tree_view_column_set_cell_data_func (col, r, render_lines, this, nullptr); gtk_tree_view_append_column (tree_view, col); } else if (name == "bytes") { GtkCellRenderer * r = GTK_CELL_RENDERER (g_object_new (GTK_TYPE_CELL_RENDERER_TEXT, "xpad", xpad, "ypad", 0, "xalign", 1.0, nullptr)); ellipsize_if_supported (G_OBJECT(r)); col = gtk_tree_view_column_new_with_attributes (_("Bytes"), r, nullptr); gtk_tree_view_column_set_sizing (col, GTK_TREE_VIEW_COLUMN_FIXED); gtk_tree_view_column_set_fixed_width (col, _prefs.get_int (width_key, 80)); gtk_tree_view_column_set_resizable (col, true); gtk_tree_view_column_set_sort_column_id (col, COL_BYTES); gtk_tree_view_column_set_cell_data_func (col, r, render_bytes, this, nullptr); gtk_tree_view_append_column (tree_view, col); } else if (name == "date") { GtkCellRenderer * r = GTK_CELL_RENDERER (g_object_new (GTK_TYPE_CELL_RENDERER_TEXT, "xpad", xpad, "ypad", 0, nullptr)); ellipsize_if_supported (G_OBJECT(r)); col = gtk_tree_view_column_new_with_attributes (_("Date"), r, nullptr); gtk_tree_view_column_set_sizing (col, GTK_TREE_VIEW_COLUMN_FIXED); gtk_tree_view_column_set_fixed_width (col, _prefs.get_int (width_key, 120)); gtk_tree_view_column_set_resizable (col, true); gtk_tree_view_column_set_sort_column_id (col, COL_DATE); gtk_tree_view_column_set_cell_data_func (col, r, render_date, this, nullptr); gtk_tree_view_append_column (tree_view, col); } g_object_set_data_full (G_OBJECT(col), "column-width-key", g_strdup(width_key.c_str()), g_free); } } void HeaderPane :: refilter () { search_activate (this); } void HeaderPane :: set_show_type (const Data::ShowType show_type) { if (show_type != _show_type) { _show_type = show_type; refilter (); } } HeaderPane :: ~HeaderPane () { if (_selection_changed_idle_tag) { g_source_remove (_selection_changed_idle_tag); _selection_changed_idle_tag = 0; } _cache.remove_listener (this); _queue.remove_listener (this); _prefs.remove_listener (this); _data.remove_listener (this); // save the column widths GList * columns = gtk_tree_view_get_columns (GTK_TREE_VIEW(_tree_view)); for (GList *l=columns; l!=nullptr; l=l->next) { GtkTreeViewColumn * col (GTK_TREE_VIEW_COLUMN(l->data)); const int width = gtk_tree_view_column_get_width (col); const char * width_key = (const char*) g_object_get_data (G_OBJECT(col), "column-width-key"); _prefs.set_int (width_key, width); } g_list_free (columns); _prefs.set_string("last-visited-group", get_cleared() ? "" : _group.to_view()); set_group (Quark()); for (guint i=0; i(self_gpointer)); if (!self->_selection_changed_idle_tag) self->_selection_changed_idle_tag = g_idle_add (on_selection_changed_idle, self); } gboolean HeaderPane :: on_selection_changed_idle (gpointer self_gpointer) { HeaderPane * self (static_cast(self_gpointer)); const bool have_article = self->get_first_selected_article() != nullptr; static const char* actions_that_need_an_article[] = { "download-selected-article", "save-articles", "save-articles-from-nzb", "save-articles-to-nzb", "read-selected-article", "show-selected-article-info", "mark-article-read", "mark-article-unread", "mark-thread-read", "mark-thread-unread", "watch-thread", "ignore-thread", "plonk", "view-article-score", "delete-article", "followup-to", "reply-to", "supersede-article", "cancel-article" }; for (int i=0, n=G_N_ELEMENTS(actions_that_need_an_article); i_action_manager.sensitize_action (actions_that_need_an_article[i], have_article); self->_selection_changed_idle_tag = 0; return false; } Data::ShowType _show_type; HeaderPane :: HeaderPane (ActionManager & action_manager, Data & data, Queue & queue, ArticleCache & cache, Prefs & prefs, GroupPrefs & group_prefs, WaitUI & wait, GUI & gui): _action_manager (action_manager), _data (data), _queue (queue), _prefs (prefs), _group_prefs (group_prefs), _wait (wait), _atree (nullptr), _root (nullptr), _tree_view (nullptr), _tree_store (nullptr), _selection_changed_idle_tag (0), _fg(), _bg(), _cache (cache), _gui (gui), _cleared (true) { _fg = prefs.get_color_str ("text-color-fg",colors.def_fg.c_str()); _bg = prefs.get_color_str ("text-color-bg", colors.def_bg.c_str()); // init the icons for (guint i=0; inext) { GtkTreePath * path (static_cast(l->data)); if (!subthreads_only) while (gtk_tree_path_get_depth (path) > 1) // up to root gtk_tree_path_up (path); select_subpaths (view, model, sel, path); } g_list_foreach (list, (GFunc)gtk_tree_path_free, nullptr); g_list_free (list); } } void HeaderPane :: select_threads () { select_threads_helper (GTK_TREE_VIEW(_tree_view), false); } void HeaderPane :: select_subthreads () { select_threads_helper (GTK_TREE_VIEW(_tree_view), true); } void HeaderPane :: expand_selected () { // get a list of paths GtkTreeModel * model (nullptr); GtkTreeView * view (GTK_TREE_VIEW (_tree_view)); GtkTreeSelection * selection (gtk_tree_view_get_selection (view)); GList * list (gtk_tree_selection_get_selected_rows (selection, &model)); if (list) { GtkTreePath * path (static_cast(list->data)); gtk_tree_view_expand_row (view, path, true); gtk_tree_view_expand_to_path (view, path); } g_list_foreach (list, (GFunc)gtk_tree_path_free, nullptr); g_list_free (list); } /*** **** **** NAVIGATION **** ***/ namespace { /** *** Navigation Functors **/ struct TreeIteratorNext: public TreeIterFunctor { virtual ~TreeIteratorNext () {} bool operator ()(GtkTreeModel * model, GtkTreeIter * iter) const override { return model && PAN_TREE_STORE(model)->get_next (iter); } bool front (GtkTreeModel* model, GtkTreeIter* setme) const override { return model && PAN_TREE_STORE(model)->front (setme); } }; struct TreeIteratorPrev: public TreeIterFunctor { virtual ~TreeIteratorPrev () {} bool operator()(GtkTreeModel * model, GtkTreeIter * iter) const override { return model && PAN_TREE_STORE(model)->get_prev (iter); } bool front (GtkTreeModel* model, GtkTreeIter* setme) const override { return model && PAN_TREE_STORE(model)->back (setme); } }; /** *** Article Test Functors **/ struct ArticleExists: public ArticleTester { virtual ~ArticleExists() {} ArticleExists () {} bool operator()(const Article&) const override { return true; } }; struct ArticleIsFlagged: public ArticleTester { virtual ~ArticleIsFlagged () {} const Article* article; ArticleIsFlagged (const Article* a) : article(a) {} bool operator()(const Article& a) const override { return a.get_flag() && a.message_id != article->message_id; } }; struct ArticleIsParentOf: public ArticleTester { virtual ~ArticleIsParentOf () {} ArticleIsParentOf (const Data::ArticleTree& tree, const Article* a) { const Article * parent = a ? tree.get_parent(a->message_id) : nullptr; _mid = parent ? parent->message_id : ""; } Quark _mid; bool operator()(const Article& a) const override { return _mid==a.message_id; } }; struct ArticleIsUnread: public ArticleTester { virtual ~ArticleIsUnread () {} ArticleIsUnread (const Data& data): _data(data) {} const Data& _data; bool operator()(const Article& a) const override { return !_data.is_read(&a); } }; struct ArticleIsNotInThread: public ArticleTester { virtual ~ArticleIsNotInThread () {} ArticleIsNotInThread (const Data::ArticleTree& tree, const Article* a): _tree(tree), _root(a ? get_root_mid(a) : "") {} const Data::ArticleTree& _tree; const Quark _root; Quark get_root_mid (const Article * a) const { for (;;) { const Quark mid (a->message_id); const Article * parent = _tree.get_parent (mid); if (!parent) return mid; a = parent; } } bool operator()(const Article& a) const override { return _root != get_root_mid(&a); } }; struct ArticleIsUnreadAndNotInThread: public ArticleTester { virtual ~ArticleIsUnreadAndNotInThread () {} ArticleIsUnreadAndNotInThread (const Data& data, const Data::ArticleTree& tree, const Article* a): _aiu (data), _ainit(tree, a) {} const ArticleIsUnread _aiu; const ArticleIsNotInThread _ainit; bool operator()(const Article& a) const override { return _aiu(a) && _ainit(a); } }; /** *** Action Functors **/ struct SelectFunctor: public pan::RowActionFunctor { virtual ~SelectFunctor () {} SelectFunctor (GtkTreeView * view): _view(view) {} GtkTreeView * _view; void operator() (GtkTreeModel* model, GtkTreeIter* iter, const Article&) override { GtkTreeSelection * sel (gtk_tree_view_get_selection (_view)); gtk_tree_selection_unselect_all (sel); GtkTreePath * path = gtk_tree_model_get_path (model, iter); gtk_tree_view_expand_row (_view, path, true); gtk_tree_view_expand_to_path (_view, path); gtk_tree_view_set_cursor (_view, path, nullptr, FALSE); gtk_tree_view_scroll_to_cell (_view, path, nullptr, true, 0.5f, 0.0f); gtk_tree_path_free (path); } }; struct ReadFunctor: public SelectFunctor { virtual ~ReadFunctor() {} ReadFunctor (GtkTreeView * view, ActionManager& am): SelectFunctor(view), _am(am) {} ActionManager& _am; void operator() (GtkTreeModel* model, GtkTreeIter* iter, const Article& a) override { SelectFunctor::operator() (model, iter, a); maybe_activate_on_idle (_view, gtk_tree_model_get_path(model,iter), nullptr); } }; } /** *** **/ void HeaderPane :: find_next_iterator_from (GtkTreeModel * model, GtkTreeIter * start_pos, const TreeIterFunctor & iterate_func, const ArticleTester & test_func, RowActionFunctor & success_func, bool test_the_start_pos) { g_assert (start_pos!=nullptr); GtkTreeIter march = *start_pos; bool success (false); const Article *article (nullptr); for (;;) { if (test_the_start_pos) test_the_start_pos = false; else { if (!iterate_func (model, &march)) break; if ((start_pos->stamp == march.stamp) // PanTreeStore iter equality: && (start_pos->user_data == march.user_data)) // have we looped? break; } article = get_article (model, &march); if ((success = test_func (*article))) break; } if (success) success_func (model, &march, *article); } namespace { bool get_first_selection (GtkTreeSelection * sel, GtkTreeIter * setme) { GtkTreeModel * model (nullptr); GList * list (gtk_tree_selection_get_selected_rows (sel, &model)); const bool found (list && gtk_tree_model_get_iter (model, setme, (GtkTreePath*)(list->data))); g_list_foreach (list, (GFunc)gtk_tree_path_free, nullptr); g_list_free (list); return found; } } void HeaderPane :: next_iterator (GtkTreeView * view, GtkTreeModel * model, const TreeIterFunctor & iterate_func, const ArticleTester & test_func, RowActionFunctor & success_func) { GtkTreeSelection * sel = gtk_tree_view_get_selection (view); GtkTreeIter iter; if (get_first_selection (sel, &iter)) find_next_iterator_from (model, &iter, iterate_func, test_func, success_func, false); else if (iterate_func.front (model, &iter)) find_next_iterator_from (model, &iter, iterate_func, test_func, success_func, true); } void HeaderPane :: action_next_if (const ArticleTester& test, RowActionFunctor& action) { GtkTreeView * v (GTK_TREE_VIEW(_tree_view)); GtkTreeModel * m (GTK_TREE_MODEL(_tree_store)); next_iterator (v, m, TreeIteratorNext(), test, action); } void HeaderPane :: read_next_if (const ArticleTester& test) { GtkTreeView * v (GTK_TREE_VIEW(_tree_view)); ReadFunctor read (v, _action_manager); action_next_if (test, read); } void HeaderPane :: read_prev_if (const ArticleTester & test) { GtkTreeView * v (GTK_TREE_VIEW(_tree_view)); GtkTreeModel * m (GTK_TREE_MODEL(_tree_store)); ReadFunctor read (v, _action_manager); next_iterator (v, m, TreeIteratorPrev(), test, read); } void HeaderPane :: select_next_if (const ArticleTester& test) { GtkTreeView * v (GTK_TREE_VIEW(_tree_view)); SelectFunctor sel (v); action_next_if (test, sel); } void HeaderPane :: select_prev_if (const ArticleTester& test) { GtkTreeView * v (GTK_TREE_VIEW(_tree_view)); GtkTreeModel * m (GTK_TREE_MODEL(_tree_store)); SelectFunctor sel (v); next_iterator (v, m, TreeIteratorPrev(), test, sel); } void HeaderPane :: read_next_unread_article () { read_next_if (ArticleIsUnread(_data)); } void HeaderPane :: read_previous_article () { read_prev_if (ArticleExists()); } void HeaderPane :: read_next_article () { read_next_if (ArticleExists()); } void HeaderPane :: read_next_thread () { if (_atree) read_next_if (ArticleIsNotInThread(*_atree, get_first_selected_article())); } void HeaderPane :: read_next_unread_thread () { if (_atree) read_next_if (ArticleIsUnreadAndNotInThread(_data, *_atree, get_first_selected_article())); } void HeaderPane :: read_previous_thread () { if (_atree) read_prev_if (ArticleIsNotInThread(*_atree, get_first_selected_article())); } void HeaderPane :: read_parent_article () { if (_atree) read_prev_if (ArticleIsParentOf(*_atree, get_first_selected_article())); } /*** **** ***/ void HeaderPane :: move_to_next_bookmark(int step) { const bool forward(step == 1); Article * a (get_first_selected_article()); if (!a) return; if (forward) select_next_if (ArticleIsFlagged(get_first_selected_article())); else select_prev_if (ArticleIsFlagged(get_first_selected_article())); } /*** **** ***/ void HeaderPane :: refresh_font () { if (!_prefs.get_flag ("header-pane-font-enabled", false)) gtk_widget_override_font (_tree_view, nullptr); else { const std::string str (_prefs.get_string ("header-pane-font", "Sans 10")); PangoFontDescription * pfd (pango_font_description_from_string (str.c_str())); gtk_widget_override_font (_tree_view, pfd); pango_font_description_free (pfd); } } void HeaderPane :: on_prefs_flag_changed (const StringView& key, bool) { if (key == "header-pane-font-enabled") refresh_font (); if (key == "thread-headers") rebuild (); } void HeaderPane :: on_prefs_string_changed (const StringView& key, const StringView&) { if (key == "header-pane-font") refresh_font (); else if (key == "header-pane-columns") build_tree_columns (); } void HeaderPane :: on_prefs_color_changed (const StringView& key, const GdkRGBA&) { if (key == "text-color-fg" || key == "text-color-bg") { _fg = _prefs.get_color_str ("text-color-fg", colors.def_fg).c_str(); _bg = _prefs.get_color_str ("text-color-bg", colors.def_bg).c_str(); refresh_font(); build_tree_columns(); } } /*** **** ***/ void HeaderPane :: rebuild_article_action (const Quark& message_id) { Row * row (get_row (message_id)); if (row) { row->action = get_article_action (row->article, _cache, _queue, message_id); _tree_store->row_changed (row); } } void HeaderPane :: on_article_flag_changed (articles_t& a, const Quark& group) { g_return_if_fail(!a.empty()); foreach_const (articles_t, a, it) rebuild_article_action ((*it)->message_id); } void HeaderPane :: on_queue_tasks_added (Queue& queue, int index, int count) { for (size_t i(index), end(index+count); i!=end; ++i) { const TaskArticle * task (dynamic_cast(queue[i])); if (task) rebuild_article_action (task->get_article().message_id); } } void HeaderPane :: on_queue_task_removed (Queue&, Task& task, int) { const TaskArticle * ta (dynamic_cast(&task)); if (ta) rebuild_article_action (ta->get_article().message_id); } void HeaderPane :: on_cache_added (const Quark& message_id) { quarks_t q; q.insert(message_id); //TODO fixme!! _data.rescore_articles ( _group, q ); rebuild_article_action (message_id); } void HeaderPane :: on_cache_removed (const quarks_t& message_ids) { foreach_const (quarks_t, message_ids, it) rebuild_article_action (*it); } /*** **** ***/ struct HeaderPane::SimilarWalk: public PanTreeStore::WalkFunctor { private: GtkTreeSelection * selection; const Article source; public: virtual ~SimilarWalk() {} SimilarWalk (GtkTreeSelection * s, const Article& a): selection(s), source(a) {} public: virtual bool operator()(PanTreeStore * store, PanTreeStore::Row *, GtkTreeIter * iter, GtkTreePath *) { const Article * article (get_article (GTK_TREE_MODEL(store), iter)); if (similar (*article)) gtk_tree_selection_select_iter (selection, iter); return true; // keep marching } private: bool similar (const Article& a) const { // same author, posted within a day and a half of the source, with a similar subject static const size_t SECONDS_IN_DAY (60 * 60 * 24); return (a.author == source.author) && (fabs (difftime (a.time_posted, source.time_posted)) < (SECONDS_IN_DAY * 1.5)) && (subjects_are_similar (a, source)); } static bool subjects_are_similar (const Article& a, const Article& b) { // make our own copies of the strings so that we can mutilate them std::string sa (a.subject.c_str()); std::string sb (b.subject.c_str()); // strip out frequent substrings that tend to skew string_likeness too high static const char * const frequent_substrings [] = { "mp3", "gif", "jpg", "jpeg", "yEnc" }; for (size_t i=0; i!=G_N_ELEMENTS(frequent_substrings); ++i) { std::string::size_type pos; const char * needle (frequent_substrings[i]); while (((pos = sa.find (needle))) != std::string::npos) sa.erase (pos, strlen(needle)); while (((pos = sb.find (needle))) != std::string::npos) sb.erase (pos, strlen(needle)); } // strip out non-alpha characters foreach (std::string, sa, it) { if (!isalpha(*it)) *it = ' '; } foreach (std::string, sb, it) { if (!isalpha(*it)) *it = ' '; } // decide how picky we want to be. // The shorter the string, the more alike they have to be. // longer strings typically include long unique filenames. const int min_len (std::min (sa.size(), sb.size())); const bool is_short_string (min_len <= 20); const bool is_long_string (min_len >= 30); double min_closeness; if (is_short_string) min_closeness = 0.6; else if (is_long_string) min_closeness = 0.5; else min_closeness = 0.55; return string_likeness (sa, sb) >= min_closeness; } static double string_likeness (const std::string& a_in, const std::string& b_in) { double retval; StringView a(a_in), b(b_in); if (!a.strchr(' ')) // only one word, so count common characters { int common_chars = 0; foreach_const (StringView, a, it) { const char * pos = b.strchr (*it); if (pos) { ++common_chars; b.eat_chars (pos - b.str); } } retval = (double)common_chars / a.len; } else // more than one word, so count common words { StringView tok; int str1_words(0), common_words(0); while (a.pop_token (tok)) { ++str1_words; const char *pch = b.strstr (tok); if (pch) ++common_words; } retval = (double)common_words / str1_words; } return retval; } }; void HeaderPane :: select_similar () { GtkTreeSelection * sel (gtk_tree_view_get_selection (GTK_TREE_VIEW (_tree_view))); const Article * article (get_first_selected_article ()); if (article) { SimilarWalk similar (sel, *article); _tree_store->walk (similar); } } pan-0.162/pan/gui/header-pane.h000066400000000000000000000354161475412772400162120ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #ifndef _HeaderPane_h_ #define _HeaderPane_h_ #include #include #include #include // for UNUSED #include #include #include #include #include #include #include #include #include #include #include #include #include namespace pan { /** * Base class for functors taking a const Article& and returning bool. * @ingroup GUI */ struct ArticleTester { virtual ~ArticleTester() {} virtual bool operator()(const Article&) const = 0; }; /** * Base class for tree navigation functors * @ingroup GUI */ struct TreeIterFunctor { virtual ~TreeIterFunctor () {} virtual bool operator() (GtkTreeModel*, GtkTreeIter*) const = 0; virtual bool front (GtkTreeModel*, GtkTreeIter*) const = 0; }; /** * Base class for actions performed on a header pane row. */ struct RowActionFunctor { virtual ~RowActionFunctor () {} virtual void operator() (GtkTreeModel* model, GtkTreeIter* iter, const Article& a) = 0; }; typedef std::vector articles_t; typedef std::set articles_set; typedef std::vector article_v; /** * Header Pane in the main window of Pan's GUI. * @ingroup GUI */ class HeaderPane: private Data::Listener, private Data::ArticleTree::Listener, private Prefs::Listener, private Queue::Listener, private ArticleCache::Listener { public: HeaderPane (ActionManager&, Data& data, Queue&, ArticleCache&, Prefs&, GroupPrefs&, WaitUI&, GUI&); ~HeaderPane (); public: void refilter (); void set_show_type (const Data::ShowType); public: void set_focus (); void unselect_all (); void select_all (); void select_threads (); void select_subthreads (); void select_similar (); void expand_selected (); void collapse_selected(); public: void read_next_article (); void read_next_unread_article (); void read_next_thread (); void read_next_unread_thread (); void read_previous_article (); void read_previous_thread (); void read_parent_article (); void mark_all_flagged (); void invert_selection (); void move_to_next_bookmark(int); private: void action_next_if (const ArticleTester& test, RowActionFunctor& action); void read_next_if (const ArticleTester&); void read_prev_if (const ArticleTester&); void select_next_if (const ArticleTester& test); void select_prev_if (const ArticleTester& test); public: GtkWidget* root () { return _root; } GtkWidget* get_default_focus_widget() { return _tree_view; } GtkWidget* create_filter_entry (); const Article* get_first_selected_article () const; Article* get_first_selected_article (); std::set get_full_selection () const; std::vector get_full_selection_v () const; const guint get_full_selection_rows_num () const; std::set get_nested_selection (bool do_mark_all) const; bool set_group (const Quark& group); const Quark& get_group () { return _group; } private: void select_message_id (const Quark& mid, bool do_scroll=true); private: void rebuild (); void rebuild_article_action (const Quark& message_id); void rebuild_article_state (const Quark& message_id); void rebuild_all_article_states (); private: void on_group_read (const Quark& group) override; private: virtual void on_tree_change (const Data::ArticleTree::Diffs&); private: void on_prefs_flag_changed (const StringView&, bool) override; void on_prefs_int_changed (const StringView&, int) override { } void on_prefs_string_changed (const StringView&, const StringView&) override; void on_prefs_color_changed (const StringView&, const GdkRGBA&) override; public: void on_article_flag_changed (articles_t& a, const Quark& group) override; private: void on_queue_task_active_changed (Queue&, Task&, bool active UNUSED) override { } void on_queue_tasks_added (Queue&, int index, int count) override; void on_queue_task_removed (Queue&, Task&, int index) override; void on_queue_task_moved (Queue&, Task&, int new_index UNUSED, int old_index UNUSED) override { } void on_queue_connection_count_changed (Queue&, int count UNUSED) override { } void on_queue_size_changed (Queue&, int active UNUSED, int total UNUSED) override { } void on_queue_online_changed (Queue&, bool online UNUSED) override { } void on_queue_error (Queue&, const StringView& message UNUSED) override { } private: void on_cache_added (const Quark& mid) override; void on_cache_removed (const quarks_t& mids) override; public: // pretend it's private ActionManager& _action_manager; private: enum { COL_DATE_STR, COL_STATE, COL_ACTION, COL_SCORE, COL_LINES, COL_BYTES, COL_DATE, COL_ARTICLE_POINTER, COL_SUBJECT, COL_SHORT_AUTHOR, N_COLUMNS }; class Row: public PanTreeStore::Row { public: const Article * article; char * date_str; Quark short_author; int action; int state; bool is_read; private: static Quark build_short_author (const Article * article) { return Quark (GNKSA :: get_short_author_name (article->author.c_str())); } private: mutable char * collated_subject; mutable char * collated_author; // casefolded utf-8-friendly comparison key... static char* do_collate (const StringView& view) { StringView in (view); while (!in.empty()) { const gunichar ch = g_utf8_get_char (in.str); if (!g_unichar_isalnum (ch)) // eat everything before the first alpha in.eat_chars (g_unichar_to_utf8 (ch, NULL)); else if (in.len>=3 // Re: reply leader && (in.str[0]=='R' ||in.str[0]=='r') && (in.str[1]=='E' || in.str[1]=='e') && in.str[2]==':') in.eat_chars (3); else break; } if (in.empty()) return g_strdup (""); char * casefold = g_utf8_casefold (in.str, in.len); char * ret = g_utf8_collate_key (casefold, -1); g_free (casefold); return ret; } public: // lazy instantation... it's expensive and user might never sort by this key char* get_collated_subject () const { if (!collated_subject) collated_subject = do_collate (article->subject.to_view()); return collated_subject; } // lazy instantation... it's expensive and user might never sort by this key char* get_collated_author () const { if (!collated_author) collated_author = do_collate (short_author.to_view()); return collated_author; } public: Row (const Data& data, const Article * a, char * date_str_in, int action_in, int state_in): article(a), date_str (date_str_in), short_author(build_short_author(a)), action (action_in), state (state_in), is_read (data.is_read (a)), collated_subject(nullptr), collated_author(nullptr) {} virtual ~Row () override { g_free (collated_subject); g_free (collated_author); g_free (date_str); } public: virtual void get_value (int column, GValue* setme) override { switch (column) { case COL_DATE_STR: set_value_static_string (setme, date_str); break; case COL_STATE: set_value_int (setme, state); break; case COL_ACTION: set_value_int (setme, action); break; case COL_SCORE: set_value_int (setme, article->score); break; case COL_LINES: set_value_ulong (setme, article->get_line_count()); break; case COL_BYTES: set_value_ulong (setme, article->get_byte_count()); break; case COL_DATE: set_value_ulong (setme, (unsigned long)article->time_posted); break; case COL_ARTICLE_POINTER: set_value_pointer (setme, (void*)article); break; case COL_SUBJECT: set_value_static_string (setme, article->author.c_str()); break; case COL_SHORT_AUTHOR: set_value_static_string (setme, short_author.c_str()); break; } } }; struct RowLessThan { bool operator () (const Row* a, const Row* b) const { return a->article->message_id < b->article->message_id; } bool operator () (const Row* a, const Quark& b) const { return a->article->message_id < b; } bool operator () (const Quark& a, const Row* b) const { return a < b->article->message_id; } }; typedef sorted_vector mid_to_row_t; mid_to_row_t _mid_to_row; private: static const Article* get_article (GtkTreeModel*, GtkTreeIter*); int find_highest_followup_score (GtkTreeModel*, GtkTreeIter*) const; Row* create_row (const EvolutionDateMaker&, const Article*); void add_children_to_model (PanTreeStore * store, PanTreeStore::Row * parent_row, const Quark & parent_mid, const Data::ArticleTree * atree, const EvolutionDateMaker & date_maker, const bool do_thread); PanTreeStore* build_model (const Quark&, Data::ArticleTree*, const TextMatch*); void build_tree_columns (); private: Data& _data; Queue& _queue; Prefs& _prefs; GroupPrefs& _group_prefs; WaitUI& _wait; Quark _group; Data::ArticleTree * _atree; GtkWidget * _root; GtkWidget * _tree_view; PanTreeStore * _tree_store; FilterInfo _filter; RulesInfo _rules; Data::ShowType _show_type; guint _selection_changed_idle_tag; // default text colors, updated on prefs change std::string _fg; std::string _bg; private: void rebuild_filter (const std::string&, int); void rebuild_rules (bool enable=false); std::pair get_int_from_rules_str(std::string val); void refresh_font (); public: // public so that anonymous namespace can reach -- don't call void filter (const std::string& text, int mode); void rules (bool enable=false); static void do_popup_menu (GtkWidget*, GdkEventButton*, gpointer); static void on_row_activated (GtkTreeView*, GtkTreePath*, GtkTreeViewColumn*, gpointer); static gboolean on_button_pressed (GtkWidget*, GdkEventButton*, gpointer); static gboolean on_keyboard_button_pressed ( GtkWidget *widget, GdkEventKey *event, gpointer data); ArticleCache& _cache; GUI& _gui; private: void get_nested_foreach (GtkTreeModel*, GtkTreePath*, GtkTreeIter*, gpointer) const; static void get_nested_foreach_static (GtkTreeModel*, GtkTreePath*, GtkTreeIter*, gpointer); static void get_full_selection_v_foreach (GtkTreeModel*, GtkTreePath*, GtkTreeIter*, gpointer); private: static int column_compare_func (GtkTreeModel*, GtkTreeIter*, GtkTreeIter*, gpointer); private: class CountUnread; class RowInserter; class SimilarWalk; void walk_and_collect (GtkTreeModel*, GtkTreeIter*, articles_set&) const; void walk_and_collect_flagged (GtkTreeModel*, GtkTreeIter*, GtkTreeSelection*) const; void walk_and_invert_selection (GtkTreeModel*, GtkTreeIter*, GtkTreeSelection*) const; private: typedef void RenderFunc (GtkTreeViewColumn*, GtkCellRenderer*, GtkTreeModel*, GtkTreeIter*, gpointer); static RenderFunc render_action; static RenderFunc render_state; static RenderFunc render_score; static RenderFunc render_bytes; static RenderFunc render_subject; static RenderFunc render_author; static RenderFunc render_lines; static RenderFunc render_date; private: Row* get_row (const Quark& message_id); private: static void on_selection_changed (GtkTreeSelection*, gpointer); static gboolean on_selection_changed_idle (gpointer); static void sort_column_changed_cb (GtkTreeSortable *sortable, gpointer user_data); private: void find_next_iterator_from (GtkTreeModel * model, GtkTreeIter * start_pos, const TreeIterFunctor & iterate_func, const ArticleTester & test_func, RowActionFunctor & success_func, bool test_the_start_pos); void next_iterator (GtkTreeView * view, GtkTreeModel * model, const TreeIterFunctor & iterate_func, const ArticleTester & test_func, RowActionFunctor & success_func); private: bool _cleared; public: void clear() { set_group(Quark()); set_cleared(true); } void set_cleared(bool val) { _cleared = val; } bool get_cleared() { return _cleared; } }; } #endif pan-0.162/pan/gui/hig.cc000066400000000000000000000147001475412772400147370ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #include #include #include #include #include "hig.h" #include using namespace pan; /*** **** ***/ GtkWidget* HIG :: workarea_create (void) { GtkWidget * t = gtk_table_new (4, 100, FALSE); gtk_table_set_row_spacings (GTK_TABLE(t), 6); gtk_container_set_border_width (GTK_CONTAINER(t), 12); return t; } void HIG :: workarea_add_section_divider (GtkWidget * table, int * row) { GtkWidget * w = gtk_alignment_new (0.0f, 0.0f, 0.0f, 0.0f); gtk_widget_set_size_request (w, 0u, 6u); gtk_table_attach (GTK_TABLE(table), w, 0, 4, *row, *row+1, (GtkAttachOptions)0, (GtkAttachOptions)0, 0, 0); ++*row; } void HIG :: workarea_add_section_title (GtkWidget * table, int * row, const char * section_title) { char buf[512]; GtkWidget * l; g_snprintf (buf, sizeof(buf), "%s", section_title); l = gtk_label_new (buf); gtk_label_set_xalign (GTK_LABEL(l), 0.0f); gtk_label_set_yalign (GTK_LABEL(l), 0.5f); gtk_label_set_use_markup (GTK_LABEL(l), TRUE); gtk_table_attach (GTK_TABLE(table), l, 0, 4, *row, *row+1, (GtkAttachOptions)(GTK_EXPAND|GTK_SHRINK|GTK_FILL), (GtkAttachOptions)0, 0, 0); gtk_widget_show (l); ++*row; } void HIG :: workarea_add_section_spacer (GtkWidget * table, int row, int items_in_section) { GtkWidget * w; // spacer to move the fields a little to the right of the name header w = gtk_alignment_new (0.0f, 0.0f, 0.0f, 0.0f); gtk_widget_set_size_request (w, 18u, 0u); gtk_table_attach (GTK_TABLE(table), w, 0, 1, row, row+items_in_section, (GtkAttachOptions)0, (GtkAttachOptions)0, 0, 0); gtk_widget_show (w); // spacer between the controls and their labels w = gtk_alignment_new (0.0f, 0.0f, 0.0f, 0.0f); gtk_widget_set_size_request (w, 12u, 0u); gtk_table_attach (GTK_TABLE(table), w, 2, 3, row, row+items_in_section, (GtkAttachOptions)0, (GtkAttachOptions)0, 0, 0); gtk_widget_show (w); } void HIG :: workarea_add_wide_control (GtkWidget * table, int * row, GtkWidget * control) { gtk_table_attach (GTK_TABLE(table), control, 1, 4, *row, *row+1, (GtkAttachOptions)(GTK_EXPAND|GTK_SHRINK|GTK_FILL), (GtkAttachOptions)0, 0, 0); ++*row; } GtkWidget * HIG :: workarea_add_wide_checkbutton (GtkWidget * table, int * row, const char * mnemonic_string, bool is_active) { GtkWidget * w (gtk_check_button_new_with_mnemonic (mnemonic_string)); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(w), is_active); workarea_add_wide_control (table, row, w); return w; } void HIG :: workarea_add_label (GtkWidget * table, int row, GtkWidget * label) { if (GTK_IS_LABEL (label)) { gtk_label_set_xalign (GTK_LABEL(label), 0.0f); gtk_label_set_yalign (GTK_LABEL(label), 0.5f); } //gtk_table_attach (GTK_TABLE(table), label, 1, 2, row, row+1, GTK_FILL, (GtkAttachOptions)0, 0, 0); gtk_table_attach (GTK_TABLE(table), label, 1, 2, row, row+1, GTK_FILL, GTK_FILL, 0, 0); gtk_widget_show (label); } GtkWidget* HIG :: workarea_add_label (GtkWidget * table, int row, const char * mnemonic_string) { GtkWidget * l = gtk_label_new_with_mnemonic (mnemonic_string); gtk_label_set_use_markup (GTK_LABEL(l), TRUE); workarea_add_label (table, row, l); return l; } void HIG :: workarea_add_control (GtkWidget * table, int row, GtkWidget * control) { gtk_table_attach (GTK_TABLE(table), control, 3, 4, row, row+1, (GtkAttachOptions)(GTK_EXPAND|GTK_SHRINK|GTK_FILL), (GtkAttachOptions)0, 0, 0); } void HIG :: workarea_finish (GtkWidget * table, int * row) { GtkWidget * w = gtk_alignment_new (0.0f, 0.0f, 0.0f, 0.0f); gtk_widget_set_size_request (w, 0u, 6u); gtk_table_attach_defaults (GTK_TABLE(table), w, 0, 4, *row, *row+1); } void HIG :: workarea_add_row (GtkWidget * table, int * row, GtkWidget * label, GtkWidget * control) { workarea_add_label (table, *row, label); workarea_add_control (table, *row, control); if (GTK_IS_LABEL(label)) gtk_label_set_mnemonic_widget (GTK_LABEL(label), control); ++*row; } GtkWidget* HIG :: workarea_add_row (GtkWidget * table, int * row, const char * mnemonic_string, GtkWidget * control, GtkWidget * mnemonic_or_null_if_control_is_mnemonic) { GtkWidget * l; GtkWidget * mnemonic; l = workarea_add_label (table, *row, mnemonic_string); workarea_add_control (table, *row, control); if (mnemonic_or_null_if_control_is_mnemonic == NULL) mnemonic = control; else mnemonic = mnemonic_or_null_if_control_is_mnemonic; gtk_label_set_mnemonic_widget (GTK_LABEL(l), mnemonic); ++*row; return l; } void HIG :: message_dialog_set_text (GtkMessageDialog * dialog, const char * primary, const char * secondary) { gtk_widget_show_all(GTK_WIDGET(dialog)); gtk_message_dialog_set_markup (dialog, primary); if (secondary) gtk_message_dialog_format_secondary_text (dialog, "%s", secondary); } pan-0.162/pan/gui/hig.h000066400000000000000000000063751475412772400146120ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #ifndef _HIG_h_ #define _HIG_h_ #include #include namespace pan { /** * Utilities for making a Gnome HIG-compliant dialog. * * @ingroup GUI */ struct HIG { static GtkWidget* workarea_create (); static void workarea_finish (GtkWidget* workarea, int* row); static void workarea_add_section_divider (GtkWidget * table, int * row); static void workarea_add_section_title (GtkWidget * table, int * row, const char * section_title); static void workarea_add_section_spacer (GtkWidget * table, int row, int items_in_section); static GtkWidget* workarea_add_wide_checkbutton (GtkWidget * table, int * row, const char * mnemonic_string, bool is_active); static void workarea_add_wide_control (GtkWidget * table, int * row, GtkWidget * control); static GtkWidget* workarea_add_label (GtkWidget * table, int row, const char * mnemonic_string); static void workarea_add_label (GtkWidget* table, int row, GtkWidget* label); static void workarea_add_row (GtkWidget* table, int* row, GtkWidget* label, GtkWidget* control); static void workarea_add_control (GtkWidget * table, int row, GtkWidget * control); static GtkWidget* workarea_add_row (GtkWidget * table, int * row, const char * mnemonic_string, GtkWidget * control, GtkWidget * mnemonic_or_null_if_control_is_mnemonic= nullptr); static void message_dialog_set_text (GtkMessageDialog * dialog, const char * primary, const char * secondary); }; } #endif pan-0.162/pan/gui/license.h000066400000000000000000000370621475412772400154620ustar00rootroot00000000000000#ifndef LICENSE #define LICENSE "GNU GENERAL PUBLIC LICENSE\n\ Version 2, June 1991\n\ \n\ Copyright (C) 1989, 1991 Free Software Foundation, Inc.\n\ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n\ Everyone is permitted to copy and distribute verbatim copies\n\ of this license document, but changing it is not allowed.\n\ \n\ Preamble\n\ \n\ The licenses for most software are designed to take away your\n\ freedom to share and change it. By contrast, the GNU General Public\n\ License is intended to guarantee your freedom to share and change free\n\ software--to make sure the software is free for all its users. This\n\ General Public License applies to most of the Free Software\n\ Foundation's software and to any other program whose authors commit to\n\ using it. (Some other Free Software Foundation software is covered by\n\ the GNU Lesser General Public License instead.) You can apply it to\n\ your programs, too.\n\ \n\ When we speak of free software, we are referring to freedom, not\n\ price. Our General Public Licenses are designed to make sure that you\n\ have the freedom to distribute copies of free software (and charge for\n\ this service if you wish), that you receive source code or can get it\n\ if you want it, that you can change the software or use pieces of it\n\ in new free programs; and that you know you can do these things.\n\ \n\ To protect your rights, we need to make restrictions that forbid\n\ anyone to deny you these rights or to ask you to surrender the rights.\n\ These restrictions translate to certain responsibilities for you if you\n\ distribute copies of the software, or if you modify it.\n\ \n\ For example, if you distribute copies of such a program, whether\n\ gratis or for a fee, you must give the recipients all the rights that\n\ you have. You must make sure that they, too, receive or can get the\n\ source code. And you must show them these terms so they know their\n\ rights.\n\ \n\ We protect your rights with two steps: (1) copyright the software, and\n\ (2) offer you this license which gives you legal permission to copy,\n\ distribute and/or modify the software.\n\ \n\ Also, for each author's protection and ours, we want to make certain\n\ that everyone understands that there is no warranty for this free\n\ software. If the software is modified by someone else and passed on, we\n\ want its recipients to know that what they have is not the original, so\n\ that any problems introduced by others will not reflect on the original\n\ authors's reputations.\n\ \n\ Finally, any free program is threatened constantly by software\n\ patents. We wish to avoid the danger that redistributors of a free\n\ program will individually obtain patent licenses, in effect making the\n\ program proprietary. To prevent this, we have made it clear that any\n\ patent must be licensed for everyone's free use or not licensed at all.\n\ \n\ The precise terms and conditions for copying, distribution and\n\ modification follow.\n\ \n\ GNU GENERAL PUBLIC LICENSE\n\ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION\n\ \n\ 0. This License applies to any program or other work which contains\n\ a notice placed by the copyright holder saying it may be distributed\n\ under the terms of this General Public License. The \"Program\", below,\n\ refers to any such program or work, and a \"work based on the Program\"\n\ means either the Program or any derivative work under copyright law:\n\ that is to say, a work containing the Program or a portion of it,\n\ either verbatim or with modifications and/or translated into another\n\ language. (Hereinafter, translation is included without limitation in\n\ the term \"modification\".) Each licensee is addressed as \"you\".\n\ \n\ Activities other than copying, distribution and modification are not\n\ covered by this License; they are outside its scope. The act of\n\ running the Program is not restricted, and the output from the Program\n\ is covered only if its contents constitute a work based on the\n\ Program (independent of having been made by running the Program).\n\ Whether that is true depends on what the Program does.\n\ \n\ 1. You may copy and distribute verbatim copies of the Program's\n\ source code as you receive it, in any medium, provided that you\n\ conspicuously and appropriately publish on each copy an appropriate\n\ copyright notice and disclaimer of warranty; keep intact all the\n\ notices that refer to this License and to the absence of any warranty;\n\ and give any other recipients of the Program a copy of this License\n\ along with the Program.\n\ \n\ You may charge a fee for the physical act of transferring a copy, and\n\ you may at your option offer warranty protection in exchange for a fee.\n\ \n\ 2. You may modify your copy or copies of the Program or any portion\n\ of it, thus forming a work based on the Program, and copy and\n\ distribute such modifications or work under the terms of Section 1\n\ above, provided that you also meet all of these conditions:\n\ \n\ a) You must cause the modified files to carry prominent notices\n\ stating that you changed the files and the date of any change.\n\ \n\ b) You must cause any work that you distribute or publish, that in\n\ whole or in part contains or is derived from the Program or any\n\ part thereof, to be licensed as a whole at no charge to all third\n\ parties under the terms of this License.\n\ \n\ c) If the modified program normally reads commands interactively\n\ when run, you must cause it, when started running for such\n\ interactive use in the most ordinary way, to print or display an\n\ announcement including an appropriate copyright notice and a\n\ notice that there is no warranty (or else, saying that you provide\n\ a warranty) and that users may redistribute the program under\n\ these conditions, and telling the user how to view a copy of this\n\ License. (Exception: if the Program itself is interactive but\n\ does not normally print such an announcement, your work based on\n\ the Program is not required to print an announcement.)\n\ \n\ These requirements apply to the modified work as a whole. If\n\ identifiable sections of that work are not derived from the Program,\n\ and can be reasonably considered independent and separate works in\n\ themselves, then this License, and its terms, do not apply to those\n\ sections when you distribute them as separate works. But when you\n\ distribute the same sections as part of a whole which is a work based\n\ on the Program, the distribution of the whole must be on the terms of\n\ this License, whose permissions for other licensees extend to the\n\ entire whole, and thus to each and every part regardless of who wrote it.\n\ \n\ Thus, it is not the intent of this section to claim rights or contest\n\ your rights to work written entirely by you; rather, the intent is to\n\ exercise the right to control the distribution of derivative or\n\ collective works based on the Program.\n\ \n\ In addition, mere aggregation of another work not based on the Program\n\ with the Program (or with a work based on the Program) on a volume of\n\ a storage or distribution medium does not bring the other work under\n\ the scope of this License.\n\ \n\ 3. You may copy and distribute the Program (or a work based on it,\n\ under Section 2) in object code or executable form under the terms of\n\ Sections 1 and 2 above provided that you also do one of the following:\n\ \n\ a) Accompany it with the complete corresponding machine-readable\n\ source code, which must be distributed under the terms of Sections\n\ 1 and 2 above on a medium customarily used for software interchange; or,\n\ \n\ b) Accompany it with a written offer, valid for at least three\n\ years, to give any third party, for a charge no more than your\n\ cost of physically performing source distribution, a complete\n\ machine-readable copy of the corresponding source code, to be\n\ distributed under the terms of Sections 1 and 2 above on a medium\n\ customarily used for software interchange; or,\n\ \n\ c) Accompany it with the information you received as to the offer\n\ to distribute corresponding source code. (This alternative is\n\ allowed only for noncommercial distribution and only if you\n\ received the program in object code or executable form with such\n\ an offer, in accord with Subsection b above.)\n\ \n\ The source code for a work means the preferred form of the work for\n\ making modifications to it. For an executable work, complete source\n\ code means all the source code for all modules it contains, plus any\n\ associated interface definition files, plus the scripts used to\n\ control compilation and installation of the executable. However, as a\n\ special exception, the source code distributed need not include\n\ anything that is normally distributed (in either source or binary\n\ form) with the major components (compiler, kernel, and so on) of the\n\ operating system on which the executable runs, unless that component\n\ itself accompanies the executable.\n\ \n\ If distribution of executable or object code is made by offering\n\ access to copy from a designated place, then offering equivalent\n\ access to copy the source code from the same place counts as\n\ distribution of the source code, even though third parties are not\n\ compelled to copy the source along with the object code.\n\ \n\ 4. You may not copy, modify, sublicense, or distribute the Program\n\ except as expressly provided under this License. Any attempt\n\ otherwise to copy, modify, sublicense or distribute the Program is\n\ void, and will automatically terminate your rights under this License.\n\ However, parties who have received copies, or rights, from you under\n\ this License will not have their licenses terminated so long as such\n\ parties remain in full compliance.\n\ \n\ 5. You are not required to accept this License, since you have not\n\ signed it. However, nothing else grants you permission to modify or\n\ distribute the Program or its derivative works. These actions are\n\ prohibited by law if you do not accept this License. Therefore, by\n\ modifying or distributing the Program (or any work based on the\n\ Program), you indicate your acceptance of this License to do so, and\n\ all its terms and conditions for copying, distributing or modifying\n\ the Program or works based on it.\n\ \n\ 6. Each time you redistribute the Program (or any work based on the\n\ Program), the recipient automatically receives a license from the\n\ original licensor to copy, distribute or modify the Program subject to\n\ these terms and conditions. You may not impose any further\n\ restrictions on the recipients' exercise of the rights granted herein.\n\ You are not responsible for enforcing compliance by third parties to\n\ this License.\n\ \n\ 7. If, as a consequence of a court judgment or allegation of patent\n\ infringement or for any other reason (not limited to patent issues),\n\ conditions are imposed on you (whether by court order, agreement or\n\ otherwise) that contradict the conditions of this License, they do not\n\ excuse you from the conditions of this License. If you cannot\n\ distribute so as to satisfy simultaneously your obligations under this\n\ License and any other pertinent obligations, then as a consequence you\n\ may not distribute the Program at all. For example, if a patent\n\ license would not permit royalty-free redistribution of the Program by\n\ all those who receive copies directly or indirectly through you, then\n\ the only way you could satisfy both it and this License would be to\n\ refrain entirely from distribution of the Program.\n\ \n\ If any portion of this section is held invalid or unenforceable under\n\ any particular circumstance, the balance of the section is intended to\n\ apply and the section as a whole is intended to apply in other\n\ circumstances.\n\ \n\ It is not the purpose of this section to induce you to infringe any\n\ patents or other property right claims or to contest validity of any\n\ such claims; this section has the sole purpose of protecting the\n\ integrity of the free software distribution system, which is\n\ implemented by public license practices. Many people have made\n\ generous contributions to the wide range of software distributed\n\ through that system in reliance on consistent application of that\n\ system; it is up to the author/donor to decide if he or she is willing\n\ to distribute software through any other system and a licensee cannot\n\ impose that choice.\n\ \n\ This section is intended to make thoroughly clear what is believed to\n\ be a consequence of the rest of this License.\n\ \n\ 8. If the distribution and/or use of the Program is restricted in\n\ certain countries either by patents or by copyrighted interfaces, the\n\ original copyright holder who places the Program under this License\n\ may add an explicit geographical distribution limitation excluding\n\ those countries, so that distribution is permitted only in or among\n\ countries not thus excluded. In such case, this License incorporates\n\ the limitation as if written in the body of this License.\n\ \n\ 9. The Free Software Foundation may publish revised and/or new versions\n\ of the General Public License from time to time. Such new versions will\n\ be similar in spirit to the present version, but may differ in detail to\n\ address new problems or concerns.\n\ \n\ Each version is given a distinguishing version number. If the Program\n\ specifies a version number of this License which applies to it and \"any\n\ later version\", you have the option of following the terms and conditions\n\ either of that version or of any later version published by the Free\n\ Software Foundation. If the Program does not specify a version number of\n\ this License, you may choose any version ever published by the Free Software\n\ Foundation.\n\ \n\ 10. If you wish to incorporate parts of the Program into other free\n\ programs whose distribution conditions are different, write to the author\n\ to ask for permission. For software which is copyrighted by the Free\n\ Software Foundation, write to the Free Software Foundation; we sometimes\n\ make exceptions for this. Our decision will be guided by the two goals\n\ of preserving the free status of all derivatives of our free software and\n\ of promoting the sharing and reuse of software generally.\n\ \n\ NO WARRANTY\n\ \n\ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY\n\ FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN\n\ OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES\n\ PROVIDE THE PROGRAM \"AS IS\" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED\n\ OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\n\ MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS\n\ TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE\n\ PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,\n\ REPAIR OR CORRECTION.\n\ \n\ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING\n\ WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR\n\ REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,\n\ INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING\n\ OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED\n\ TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY\n\ YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER\n\ PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE\n\ POSSIBILITY OF SUCH DAMAGES.\n\ \n\ END OF TERMS AND CONDITIONS" #endif pan-0.162/pan/gui/load-icon.cc000066400000000000000000000021541475412772400160350ustar00rootroot00000000000000#ifdef HAVE_CONFIG_H #include #endif #include "load-icon.h" #include "pan/general/debug.h" #include #include #include #include #include namespace pan { GdkPixbuf *load_icon(gchar const *file_name) { // try local icon GdkPixbuf *pixbuf = load_icon_from_path(file_name, "pan/icons"); if (pixbuf != nullptr) { return pixbuf; } // try system icon pixbuf = load_icon_from_path(file_name, PAN_SYSTEM_ICON_PATH); if (pixbuf != nullptr) { return pixbuf; } std::cerr << "Unable to load " << file_name << " icon. Use --debug flag for more details"; return nullptr; } GdkPixbuf *load_icon_from_path(const gchar *file_name, const gchar *icon_dir) { GError *error = NULL; gchar *icon_path = g_build_filename(icon_dir, file_name, NULL); GdkPixbuf *pixbuf = gdk_pixbuf_new_from_file(icon_path, &error); if (error != NULL) { debug("Unable to load icon " << file_name << " from " << icon_dir << ": " << error->message); g_error_free(error); } g_free(icon_path); return pixbuf; } } // namespace pan pan-0.162/pan/gui/load-icon.h000066400000000000000000000004271475412772400157000ustar00rootroot00000000000000#ifndef E_LOAD_ICON_H #define E_LOAD_ICON_H #include #include G_BEGIN_DECLS namespace pan { GdkPixbuf* load_icon(const char *file); GdkPixbuf* load_icon_from_path(const char *file, const gchar* path); } G_END_DECLS #endif /* E_LOAD_ICON_H */ pan-0.162/pan/gui/log-ui.cc000066400000000000000000000274531475412772400153750ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #include "log-ui.h" #include #include #include #include #include #include #include #include #include #include #include "pad.h" namespace pan { namespace { enum { COL_HIDDEN, COL_SEVERITY, COL_DATE, COL_MESSAGE, N_COLS }; struct MyLogListener: private Log::Listener { GtkTreeStore * myStore; MyLogListener (GtkTreeStore * store): myStore(store) { Log::get().add_listener (this); } ~MyLogListener () { Log::get().remove_listener (this); } virtual void on_log_entry_added (const Log::Entry& e) { GtkTreeIter iter; gtk_tree_store_prepend (myStore, &iter, nullptr); gtk_tree_store_set (myStore, &iter, COL_HIDDEN, "", COL_SEVERITY, (e.severity & Log::PAN_SEVERITY_ERROR), COL_DATE, (unsigned long)e.date, COL_MESSAGE, &e, -1); if (!e.messages.empty()) { GtkTreeIter child; foreach_const (Log::entries_p, e.messages, lit) { Log::Entry entry(**lit); gtk_tree_store_prepend (myStore, &child, &iter ); gtk_tree_store_set (myStore, &child, COL_HIDDEN, "", COL_SEVERITY, (entry.severity & Log::PAN_SEVERITY_ERROR), COL_DATE, (unsigned long)entry.date, COL_MESSAGE, &*lit, -1); } } } void on_log_cleared () override { gtk_tree_store_clear (myStore); } }; void delete_my_log_listener (gpointer object) { delete (MyLogListener*) object; } } namespace { void log_response_cb (GtkDialog * dialog, int response, gpointer ) { if (response == GTK_RESPONSE_NO) { Log::get().clear (); } else if (response == GTK_RESPONSE_CLOSE) { gtk_widget_destroy (GTK_WIDGET(dialog)); } else if (response == GTK_RESPONSE_APPLY) { GtkWidget * d = gtk_file_chooser_dialog_new ( _("Save Event List"), GTK_WINDOW(dialog), GTK_FILE_CHOOSER_ACTION_SAVE, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_SAVE, GTK_RESPONSE_ACCEPT, nullptr); if (GTK_RESPONSE_ACCEPT == gtk_dialog_run(GTK_DIALOG(d))) { char * fname = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (d)); const Log::entries_t& entries (Log::get().get_entries()); std::ofstream out (fname, std::ios_base::out|std::ios_base::trunc); foreach_const (Log::entries_t, entries, it) { StringView date (ctime (&it->date)); --date.len; // trim off the \n out << date << " - " << it->message << '\n'; } out.close (); g_free (fname); } gtk_widget_destroy (d); } } } namespace { std::string to_string(std::deque d) { std::string tmp; foreach_const(std::deque, d, it) tmp += it->message + "\n"; return tmp; } } namespace { GtkTreeStore* create_model () { GtkTreeStore * store = gtk_tree_store_new (N_COLS, G_TYPE_STRING, G_TYPE_BOOLEAN, // true==error, false==info G_TYPE_ULONG, // date G_TYPE_POINTER); // message const Log::entries_t& entries (Log::get().get_entries()); foreach_const (Log::entries_t, entries, it) { GtkTreeIter top, child, tmp; gtk_tree_store_prepend (store, &top, nullptr); gtk_tree_store_set (store, &top, COL_HIDDEN, "", COL_SEVERITY, (it->severity & Log::PAN_SEVERITY_ERROR), COL_DATE, (unsigned long)it->date, COL_MESSAGE, &*it, -1); if (!it->messages.empty()) { foreach_const (Log::entries_p, it->messages, lit) { Log::Entry entry (**lit); gtk_tree_store_prepend (store, &child, &top ); gtk_tree_store_set (store, &child, COL_HIDDEN, "", COL_SEVERITY, (entry.severity & Log::PAN_SEVERITY_ERROR), COL_DATE, (unsigned long)entry.date, COL_MESSAGE, &*lit, -1); } } } return store; } } namespace { void render_severity (GtkTreeViewColumn * , GtkCellRenderer * renderer, GtkTreeModel * model, GtkTreeIter * iter, gpointer dialog) { gboolean severe (false); gtk_tree_model_get (model, iter, COL_SEVERITY, &severe, -1); const char * key (severe ? "pixbuf-error" : "pixbuf-info"); g_object_set (renderer, "pixbuf", g_object_get_data(G_OBJECT(dialog),key), nullptr); } void render_date (GtkTreeViewColumn * , GtkCellRenderer * renderer, GtkTreeModel * model, GtkTreeIter * iter, gpointer ) { unsigned long date_ul; gtk_tree_model_get (model, iter, COL_DATE, &date_ul, -1); time_t date_t (date_ul); std::string s = ctime (&date_t); s.resize (s.size()-1); // remove \n g_object_set (renderer, "text", s.c_str(), nullptr); } void render_message (GtkTreeViewColumn * , GtkCellRenderer * renderer, GtkTreeModel * model, GtkTreeIter * iter, gpointer ) { Log::Entry* log_entry(nullptr); gtk_tree_model_get (model, iter, COL_MESSAGE, &log_entry, -1); bool bold (log_entry->is_child); g_object_set (renderer, "text", log_entry->message.c_str(), "weight", bold ? PANGO_WEIGHT_BOLD : PANGO_WEIGHT_NORMAL, nullptr); } } gboolean on_button_pressed (GtkWidget *treeview, GdkEventButton *event, gpointer userdata) { // single click with the right mouse button? if (event->type == GDK_BUTTON_PRESS && event->button == 3) { GtkTreeSelection * selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview)); GtkTreePath * path; if (gtk_tree_view_get_path_at_pos (GTK_TREE_VIEW(treeview), (gint)event->x, (gint)event->y, &path, nullptr, nullptr, nullptr)) { if (!gtk_tree_selection_path_is_selected (selection, path)) { gtk_tree_selection_unselect_all (selection); gtk_tree_selection_select_path (selection, path); } } const bool expanded (gtk_tree_view_row_expanded (GTK_TREE_VIEW(treeview), path)); if (expanded) gtk_tree_view_collapse_row(GTK_TREE_VIEW(treeview),path); else gtk_tree_view_expand_row (GTK_TREE_VIEW(treeview),path,false); gtk_tree_path_free (path); return true; } return false; } GtkWidget* log_dialog_new (Prefs& prefs, GtkWindow* window) { GtkWidget * dialog = gtk_dialog_new_with_buttons (_("Pan: Events"), window, GTK_DIALOG_DESTROY_WITH_PARENT, GTK_STOCK_CLEAR, GTK_RESPONSE_NO, GTK_STOCK_SAVE, GTK_RESPONSE_APPLY, GTK_STOCK_CLOSE, GTK_RESPONSE_CLOSE, nullptr); g_signal_connect (dialog, "response", G_CALLBACK(log_response_cb), nullptr); GtkIconTheme * theme = gtk_icon_theme_get_default (); GdkPixbuf * err_pixbuf = gtk_icon_theme_load_icon (theme, GTK_STOCK_DIALOG_ERROR, 20, (GtkIconLookupFlags)0, nullptr); g_object_set_data_full (G_OBJECT(dialog), "pixbuf-error", err_pixbuf, g_object_unref); GdkPixbuf * info_pixbuf = gtk_icon_theme_load_icon (theme, GTK_STOCK_DIALOG_INFO, 20, (GtkIconLookupFlags)0, nullptr); g_object_set_data_full (G_OBJECT(dialog), "pixbuf-info", info_pixbuf, g_object_unref); GtkTreeStore * store = create_model (); GtkWidget * view = gtk_tree_view_new_with_model (GTK_TREE_MODEL(store)); gtk_tree_view_set_show_expanders(GTK_TREE_VIEW(view),false); g_object_set_data_full (G_OBJECT(view), "listener", new MyLogListener(store), delete_my_log_listener); GtkWidget * scroll = gtk_scrolled_window_new (nullptr, nullptr); gtk_container_set_border_width (GTK_CONTAINER(scroll), PAD_BIG); gtk_container_add (GTK_CONTAINER(scroll), view); GtkCellRenderer * pixbuf_renderer = gtk_cell_renderer_pixbuf_new (); GtkCellRenderer * text_renderer = gtk_cell_renderer_text_new (); /* placeholder for expander */ GtkTreeViewColumn * col = gtk_tree_view_column_new (); gtk_tree_view_column_set_resizable (col, false); gtk_tree_view_append_column (GTK_TREE_VIEW(view), col); gtk_tree_view_column_set_visible(col,false); gtk_tree_view_set_expander_column(GTK_TREE_VIEW(view), col); // severity col = gtk_tree_view_column_new (); gtk_tree_view_column_set_sizing (col, GTK_TREE_VIEW_COLUMN_FIXED); gtk_tree_view_column_set_fixed_width (col, 35); gtk_tree_view_column_set_resizable (col, false); gtk_tree_view_column_pack_start (col, pixbuf_renderer, false); gtk_tree_view_column_set_cell_data_func (col, pixbuf_renderer, render_severity, dialog, nullptr); gtk_tree_view_column_set_sort_column_id (col, COL_SEVERITY); gtk_tree_view_append_column (GTK_TREE_VIEW(view), col); // date col = gtk_tree_view_column_new (); gtk_tree_view_column_set_sizing (col, GTK_TREE_VIEW_COLUMN_AUTOSIZE); gtk_tree_view_column_set_sort_column_id (col, COL_DATE); gtk_tree_view_column_set_title (col, _("Date")); gtk_tree_view_column_pack_start (col, text_renderer, false); gtk_tree_view_column_set_cell_data_func (col, text_renderer, render_date, nullptr, nullptr); gtk_tree_view_append_column (GTK_TREE_VIEW(view), col); // message text_renderer = gtk_cell_renderer_text_new (); col = gtk_tree_view_column_new (); gtk_tree_view_column_set_sizing (col, GTK_TREE_VIEW_COLUMN_AUTOSIZE); gtk_tree_view_column_set_sort_column_id (col, COL_MESSAGE); gtk_tree_view_column_set_title (col, _("Message")); gtk_tree_view_column_pack_start (col, text_renderer, true); gtk_tree_view_column_set_cell_data_func (col, text_renderer, render_message, nullptr, nullptr); gtk_tree_view_append_column (GTK_TREE_VIEW(view), col); gtk_tree_view_set_expander_column(GTK_TREE_VIEW(view), col); gtk_widget_show (view); gtk_widget_show (scroll); pan_box_pack_start_defaults (GTK_BOX(gtk_dialog_get_content_area( GTK_DIALOG(dialog))), scroll); gtk_window_set_role (GTK_WINDOW(dialog), "pan-events-dialog"); prefs.set_window ("events-window", GTK_WINDOW(dialog), 150, 150, 600, 300); gtk_window_set_resizable (GTK_WINDOW(dialog), true); if (window != nullptr) gtk_window_set_transient_for (GTK_WINDOW(dialog), window); g_signal_connect (view, "button-press-event", G_CALLBACK(on_button_pressed), view); return dialog; } } pan-0.162/pan/gui/log-ui.h000066400000000000000000000022371475412772400152300ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #ifndef LOG_UI_H #define LOG_UI_H #include #include #include "prefs.h" namespace pan { /** * @ingroup GUI */ GtkWidget* log_dialog_new (Prefs& prefs, GtkWindow* parent); gboolean on_button_pressed (GtkWidget *treeview, GdkEventButton *event, gpointer userdata); void do_popup_menu (GtkWidget *treeview, GdkEventButton *event, gpointer userdata); } #endif pan-0.162/pan/gui/my-massif.sh000077500000000000000000000004061475412772400161230ustar00rootroot00000000000000#/bin/sh export G_SLICE=always-malloc export G_DEBUG=gc-friendly export GLIBCXX_FORCE_NEW=1 valgrind --tool=massif --depth=8 --num-callers=8 --alloc-fn=g_malloc --alloc-fn=g_realloc --alloc-fn=g_try_malloc --alloc-fn=g_malloc0 --alloc-fn=g_mem_chunk_alloc ./pan pan-0.162/pan/gui/my-valgrind.sh000077500000000000000000000003421475412772400164460ustar00rootroot00000000000000#/bin/sh export G_SLICE=always-malloc export G_DEBUG=gc-friendly export GLIBCXX_FORCE_NEW=1 valgrind --tool=memcheck --leak-check=full --leak-resolution=high --num-callers=42 --log-file=pan-valgrind --show-reachable=yes ./pan pan-0.162/pan/gui/pad.h000066400000000000000000000003221475412772400145710ustar00rootroot00000000000000#ifndef _PAD_H_ #define _PAD_H_ namespace pan { extern void pan_box_pack_start_defaults (GtkBox * box, GtkWidget * child); }; #define PAD_SMALL 3 #define PAD 6 #define PAD_BIG 9 #define PAD_LARGE 9 #endif pan-0.162/pan/gui/pan-colors.h000066400000000000000000000021471475412772400161110ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #ifndef _PanColors_h_ #define _PanColors_h_ #include #include #include #include #include class PanColors : public PanSingleton< PanColors > { public: std::string def_fg; std::string def_bg; GdkRGBA def_fg_col; GdkRGBA def_bg_col; }; #endif pan-0.162/pan/gui/pan-file-entry.cc000066400000000000000000000073531475412772400170300ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #include #include #include #include #include #include #include "pad.h" #include "pan-file-entry.h" namespace { void entry_clicked_cb (GtkWidget * button, gpointer user_data) { // create the dialog const char * title = (const char*) g_object_get_data (G_OBJECT(user_data), "title"); const int action = GPOINTER_TO_INT (g_object_get_data(G_OBJECT(user_data), "chooser-action")); GtkWidget * w = gtk_file_chooser_dialog_new (title, GTK_WINDOW(gtk_widget_get_toplevel(button)), GtkFileChooserAction(action), GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT, nullptr); gtk_dialog_set_default_response (GTK_DIALOG(w), GTK_RESPONSE_ACCEPT); std::string text (pan::file_entry_get (GTK_WIDGET(user_data))); GtkFileChooser * chooser (GTK_FILE_CHOOSER (w)); const bool file_mode (action==GTK_FILE_CHOOSER_ACTION_OPEN || action==GTK_FILE_CHOOSER_ACTION_SAVE); if (file_mode) gtk_file_chooser_set_filename (chooser, text.c_str()); else gtk_file_chooser_set_current_folder (chooser, text.c_str()); const int response (gtk_dialog_run (GTK_DIALOG(w))); if (response == GTK_RESPONSE_ACCEPT) { char * tmp = file_mode ? gtk_file_chooser_get_filename (chooser) : gtk_file_chooser_get_current_folder (chooser); pan :: file_entry_set (GTK_WIDGET(user_data), tmp); g_free (tmp); } gtk_widget_destroy(w); } } GtkWidget* pan :: file_entry_new (const char * title, int chooser_action) { // create the widgetry GtkWidget * hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, PAD); GtkWidget * e = gtk_entry_new (); gtk_box_pack_start (GTK_BOX(hbox), e, true, true, 0); GtkWidget * b = gtk_button_new_from_stock (GTK_STOCK_OPEN); g_signal_connect (b, "clicked", G_CALLBACK(entry_clicked_cb), hbox); gtk_box_pack_start (GTK_BOX(hbox), b, false, false, 0); // add the keys g_object_set_data_full (G_OBJECT(hbox), "title", g_strdup(title), g_free); g_object_set_data (G_OBJECT(hbox), "chooser-action", GINT_TO_POINTER(chooser_action)); g_object_set_data (G_OBJECT(hbox), "entry", e); file_entry_set (hbox, g_get_home_dir()); gtk_widget_show (e); gtk_widget_show (b); return hbox; } void pan :: file_entry_set (GtkWidget * w, const char * file) { GtkEntry * e = GTK_ENTRY(g_object_get_data(G_OBJECT(w), "entry")); gtk_entry_set_text (GTK_ENTRY(e), file); } const char* pan :: file_entry_get (GtkWidget * w) { GtkEntry * e = GTK_ENTRY(g_object_get_data(G_OBJECT(w), "entry")); return (const char*) gtk_entry_get_text (e); } GtkWidget* pan :: file_entry_gtk_entry (GtkWidget * w) { return GTK_WIDGET (g_object_get_data (G_OBJECT(w), "entry")); } pan-0.162/pan/gui/pan-file-entry.h000066400000000000000000000023121475412772400166600ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #ifndef __PanFileEntry_h__ #define __PanFileEntry_h__ #include #include namespace pan { GtkWidget* file_entry_new (const char * title, int chooser_mode = GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER); GtkWidget* file_entry_gtk_entry (GtkWidget * w); void file_entry_set (GtkWidget * w, const char * file); const char* file_entry_get (GtkWidget * w); }; #endif pan-0.162/pan/gui/pan-tree.cc000066400000000000000000001106331475412772400157050ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #include #include #include #include #include #include #include #include #include "pan-tree.h" #define IS_SORTED(tree) \ (tree->sort_column_id != GTK_TREE_SORTABLE_UNSORTED_SORT_COLUMN_ID) /*** **** Row Helper Functions ***/ void PanTreeStore :: Row :: set_value_int (GValue * setme, int value) { g_value_init (setme, G_TYPE_INT); g_value_set_int (setme, value); } void PanTreeStore :: Row :: set_value_pointer (GValue * setme, gpointer value) { g_value_init (setme, G_TYPE_POINTER); g_value_set_pointer (setme, value); } void PanTreeStore :: Row :: set_value_ulong (GValue * setme, unsigned long value) { g_value_init (setme, G_TYPE_ULONG); g_value_set_ulong (setme, value); } void PanTreeStore :: Row :: set_value_string (GValue * setme, const char * value) { g_value_init (setme, G_TYPE_STRING); g_value_set_string (setme, value); } void PanTreeStore :: Row :: set_value_static_string (GValue * setme, const char * value) { g_value_init (setme, G_TYPE_STRING); g_value_set_static_string (setme, value); } /*** **** Low-level utilities ***/ GtkTreeIter PanTreeStore :: get_iter (const Row * row) { g_assert (row); GtkTreeIter setme; set_iter (&setme, row); return setme; } void PanTreeStore :: get_iter (const Row * row, GtkTreeIter * setme) { g_assert (setme); g_assert (row); set_iter (setme, row); } PanTreeStore :: Row* PanTreeStore :: get_row (GtkTreeIter * iter) { g_assert (iter); g_assert (iter->stamp == stamp); Row * row (static_cast(iter->user_data)); g_assert (row); return row; } const PanTreeStore :: Row* PanTreeStore :: get_row (const GtkTreeIter * iter) const { g_assert (iter); g_assert (iter->stamp == stamp); const Row * row (static_cast(iter->user_data)); g_assert (row); return row; } void PanTreeStore :: set_iter (GtkTreeIter * iter, const Row * row) { iter->stamp = stamp; iter->user_data = (gpointer)row; iter->user_data2 = nullptr; iter->user_data3 = nullptr; } void PanTreeStore :: invalidate_iter (GtkTreeIter * iter) { iter->stamp = 0; iter->user_data = (void*) 0xDEADBEEF; iter->user_data2 = (void*) 0xDEADBEEF; iter->user_data2 = (void*) 0xDEADBEEF; } bool PanTreeStore :: set_or_invalidate (GtkTreeIter * iter, const Row * row) { if (row) set_iter (iter, row); else invalidate_iter (iter); return row != nullptr; } /***** ****** ****** implementing GtkTreeModel's interface ****** *****/ GtkTreeModelFlags PanTreeStore :: model_get_flags (GtkTreeModel *) { return GTK_TREE_MODEL_ITERS_PERSIST; } gint PanTreeStore :: model_get_n_columns (GtkTreeModel * model) { const PanTreeStore * store (PAN_TREE_STORE(model)); g_return_val_if_fail (store, 0); return store->n_columns; } GType PanTreeStore :: model_get_column_type (GtkTreeModel * tree, gint n) { return (*((PanTreeStore*)(tree))->column_types)[n]; } gboolean PanTreeStore :: model_get_iter (GtkTreeModel * model, GtkTreeIter * setme, GtkTreePath * path) { PanTreeStore * store = PAN_TREE_STORE(model); g_return_val_if_fail (store, false); g_return_val_if_fail (path, false); // make sure it's not an empty path. const int depth (gtk_tree_path_get_depth (path)); if (depth < 1) return false; // find the row that correpsonds to this path. PanTreeStore::Row * row (store->root); const int * indices = gtk_tree_path_get_indices (path); for (int i=0; inth_child (*indices++); if (!row) return false; } // build an iter from that row. store->set_iter (setme, row); return true; } GtkTreePath* PanTreeStore :: model_get_path (GtkTreeModel * model, GtkTreeIter * iter) { PanTreeStore * store (PAN_TREE_STORE(model)); g_return_val_if_fail (store, nullptr); return store->get_path (iter); } void PanTreeStore :: model_get_value (GtkTreeModel * model, GtkTreeIter * iter, gint column, GValue * dest_value) { g_assert (iter); g_assert (dest_value); PanTreeStore * store = PAN_TREE_STORE(model); g_assert (store); g_assert (iter->stamp == store->stamp); g_assert (0<=column && columnn_columns); store->get_row(iter)->get_value (column, dest_value); } gboolean PanTreeStore :: model_iter_next (GtkTreeModel * model, GtkTreeIter * iter) { PanTreeStore * tree = PAN_TREE_STORE(model); g_return_val_if_fail (tree, false); g_return_val_if_fail (iter, false); g_return_val_if_fail (iter->stamp == tree->stamp, false); Row * row (tree->get_row (iter)); row = row->parent->nth_child (row->child_index + 1); return tree->set_or_invalidate (iter, row); } gboolean PanTreeStore :: model_iter_children (GtkTreeModel * model, GtkTreeIter * iter, GtkTreeIter * parent) { return model_iter_nth_child (model, iter, parent, 0); } gint PanTreeStore :: model_iter_n_children (GtkTreeModel * model, GtkTreeIter * iter) { PanTreeStore * tree = PAN_TREE_STORE(model); g_return_val_if_fail (tree, 0); g_return_val_if_fail (!iter || iter->stamp == tree->stamp, 0); const Row * row (iter ? tree->get_row(iter) : tree->root); return row->n_children(); } gboolean PanTreeStore :: model_iter_has_child (GtkTreeModel *model, GtkTreeIter *iter) { return model_iter_n_children (model, iter) != 0; } gboolean PanTreeStore :: model_iter_nth_child (GtkTreeModel * model, GtkTreeIter * iter, GtkTreeIter * parent, gint n) { PanTreeStore * tree = PAN_TREE_STORE(model); g_return_val_if_fail (tree, false); g_return_val_if_fail (iter, false); g_return_val_if_fail (!parent || parent->stamp == tree->stamp, false); Row * row (parent ? tree->get_row(parent) : tree->root); row = row->nth_child (n); return tree->set_or_invalidate (iter, row); } gboolean PanTreeStore :: model_iter_parent (GtkTreeModel * model, GtkTreeIter * iter, GtkTreeIter * child) { return PAN_TREE_STORE(model)->get_parent (iter, child); } /***** ****** *****/ GtkTreePath* PanTreeStore :: get_path (const Row * row) const { g_return_val_if_fail (row, NULL); std::vector indices; while (row && row!=root) { indices.push_back (row->child_index); row = row->parent; } GtkTreePath * path = gtk_tree_path_new (); for (std::vector::const_reverse_iterator it(indices.rbegin()), end(indices.rend()); it!=end; ++it) gtk_tree_path_append_index (path, *it); return path; } GtkTreePath* PanTreeStore :: get_path (GtkTreeIter * iter) { g_return_val_if_fail (iter, NULL); g_return_val_if_fail (iter->stamp == stamp, NULL); return get_path (get_row (iter)); } bool PanTreeStore :: get_parent (GtkTreeIter * iter, GtkTreeIter * child) { g_return_val_if_fail (child, false); g_return_val_if_fail (iter, false); g_return_val_if_fail (child->stamp == stamp, false); const Row * row (get_row (child)); return set_or_invalidate (iter, row->parent!=root ? row->parent : nullptr); } bool PanTreeStore :: is_root (const GtkTreeIter* iter) const { g_return_val_if_fail (iter, false); g_return_val_if_fail (iter->stamp == stamp, false); return get_row(iter)->parent == root; } size_t PanTreeStore :: get_depth (const Row * row) const { g_assert (row); size_t depth (0); for (;;) { if (row == root) break; ++depth; row = row->parent; g_assert (row); } return depth; } bool PanTreeStore :: is_in_tree (Row * row) const { while (row && row!=root) row = row->parent; return row == root; } /***** ****** ****** implementing GtkTreeSortable ****** *****/ gboolean PanTreeStore :: sortable_get_sort_column_id (GtkTreeSortable * sortable, gint * setme_column_id, GtkSortType * setme_order) { PanTreeStore * tree (PAN_TREE_STORE (sortable)); g_return_val_if_fail (tree, false); if (setme_column_id) *setme_column_id = tree->sort_column_id; if (setme_order) *setme_order = tree->order; return (tree->sort_column_id != GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID) && (tree->sort_column_id != GTK_TREE_SORTABLE_UNSORTED_SORT_COLUMN_ID); } gboolean PanTreeStore :: sortable_has_sort_func (GtkTreeSortable *sortable, gint col) { PanTreeStore * store (PAN_TREE_STORE (sortable)); g_return_val_if_fail (store, false); column_sort_info_t::const_iterator it (store->sort_info->find (col)); return (it!=store->sort_info->end()) && (it->second.sort_func!=nullptr); } // SORTING struct PanTreeStore :: SortRowInfo { int pos; Row * row; GtkTreeIter iter; }; struct PanTreeStore :: SortData { PanTreeStore * store; GtkTreeModel * model; PanTreeStore::SortInfo& sort_info; GtkSortType order; SortData (PanTreeStore * tree_store, PanTreeStore::SortInfo & s, GtkSortType o): store(tree_store), model(GTK_TREE_MODEL(tree_store)), sort_info(s), order(o) {} }; int PanTreeStore :: row_compare_func (gconstpointer a_gpointer, gconstpointer b_gpointer, gpointer user_data) { const SortRowInfo * a = (const SortRowInfo*) a_gpointer; const SortRowInfo * b = (const SortRowInfo*) b_gpointer; const SortData * help = (const SortData*) user_data; int val = (help->sort_info.sort_func) (help->model, const_cast(&a->iter), const_cast(&b->iter), help->sort_info.user_data); if (!val) // inplace sort val = a->row->child_index - b->row->child_index; if (help->order == GTK_SORT_DESCENDING) val = -val; return val; } void PanTreeStore :: sort_children (SortInfo & sort_info, Row * parent, bool recurse, int mode) { g_assert (parent); g_assert (mode==FLIP || mode==SORT); const int n (parent->n_children()); if (n < 2) // no need to sort return; // build a temporary array to sort SortRowInfo * sort_array = new SortRowInfo [n]; for (int i=0; ichildren[i]; set_iter (&row_info.iter, row_info.row); } if (mode==SORT) { SortData help (this, sort_info, order); g_qsort_with_data (sort_array, n, sizeof(SortRowInfo), row_compare_func, &help); } // update the child indices... bool reordered (false); for (int i=0; ichild_index != i); child->child_index = i; parent->children[i] = child; g_assert (child->parent == parent); } // let the world know we've changed if (reordered) { int * new_order (new int [n]); for (int i=0; ichildren[i], recurse, mode); } void PanTreeStore :: sort (int mode) { if (!sort_paused && (sort_column_id != GTK_TREE_SORTABLE_UNSORTED_SORT_COLUMN_ID)) { g_assert (sortable_has_sort_func (GTK_TREE_SORTABLE(this), sort_column_id)); sort_children ((*sort_info)[sort_column_id], root, true, mode); } } void PanTreeStore :: sortable_set_sort_column_id (GtkTreeSortable * sortable, gint sort_column_id, GtkSortType order) { PanTreeStore * tree (PAN_TREE_STORE (sortable)); g_return_if_fail (tree); // if no change, there's nothing to do... if (tree->sort_column_id==sort_column_id && tree->order==order) return; // sanity checks... if (sort_column_id != GTK_TREE_SORTABLE_UNSORTED_SORT_COLUMN_ID) { g_return_if_fail (tree->sort_info->count(sort_column_id) != 0); g_return_if_fail (tree->sort_info->find(sort_column_id)->second.sort_func != nullptr); } const bool flip (sort_column_id == tree->sort_column_id); tree->sort_paused = 0; tree->sort_column_id = sort_column_id; tree->order = order; gtk_tree_sortable_sort_column_changed (sortable); tree->sort (flip ? FLIP : SORT); } gboolean PanTreeStore :: sortable_has_default_sort_func (GtkTreeSortable *sortable) { return sortable_has_sort_func (sortable, GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID); } void PanTreeStore :: sortable_set_sort_func (GtkTreeSortable *sortable, gint col, GtkTreeIterCompareFunc func, gpointer data, GDestroyNotify destroy) { PanTreeStore * tree (PAN_TREE_STORE (sortable)); g_return_if_fail (tree); (*tree->sort_info)[col].assign (func, data, destroy); if (tree->sort_column_id == col) tree->sort (); } void PanTreeStore :: sortable_set_default_sort_func (GtkTreeSortable * s, GtkTreeIterCompareFunc f, gpointer p, GDestroyNotify d) { sortable_set_sort_func (s, GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID, f, p, d); } namespace { GObjectClass *parent_class (nullptr); typedef std::vector values_t; } struct PanTreeStore :: FreeRowWalker: public PanTreeStore::WalkFunctor { PanTreeStore * store; FreeRowWalker (PanTreeStore *t): store(t) {} virtual ~FreeRowWalker () {} bool operator()(PanTreeStore *s, Row *r, GtkTreeIter*, GtkTreePath*) override { if (store->row_dispose) store->row_dispose->row_dispose (s, r); else delete r; return true; // keep marching } }; void PanTreeStore :: pan_tree_dispose (GObject *object) { PanTreeStore * store (PAN_TREE_STORE (object)); // erase the remaining nodes FreeRowWalker walk (store); store->postfix_walk (walk); // clear the sort info store->sort_info->clear (); } void PanTreeStore :: pan_tree_finalize (GObject *object) { PanTreeStore * store (PAN_TREE_STORE (object)); delete store->root; delete store->column_types; delete store->sort_info; store->root = nullptr; store->column_types = nullptr; store->sort_info = nullptr; (*parent_class->finalize) (object); } void PanTreeStore :: pan_tree_class_init (PanTreeStoreClass *klass) { GObjectClass *object_class; parent_class = (GObjectClass*) g_type_class_peek_parent (klass); object_class = (GObjectClass*) klass; object_class->dispose = pan_tree_dispose; object_class->finalize = pan_tree_finalize; } void PanTreeStore :: pan_tree_model_init (GtkTreeModelIface *iface) { iface->get_flags = model_get_flags; iface->get_n_columns = model_get_n_columns; iface->get_column_type = model_get_column_type; iface->get_iter = model_get_iter; iface->get_path = model_get_path; iface->get_value = model_get_value; iface->iter_next = model_iter_next; iface->iter_children = model_iter_children; iface->iter_has_child = model_iter_has_child; iface->iter_n_children = model_iter_n_children; iface->iter_nth_child = model_iter_nth_child; iface->iter_parent = model_iter_parent; } void PanTreeStore :: pan_tree_sortable_init (GtkTreeSortableIface *iface) { iface->get_sort_column_id = sortable_get_sort_column_id; iface->set_sort_column_id = sortable_set_sort_column_id; iface->set_sort_func = sortable_set_sort_func; iface->set_default_sort_func = sortable_set_default_sort_func; iface->has_default_sort_func = sortable_has_default_sort_func; } namespace { class RootRow: public PanTreeStore::Row { void get_value (int, GValue *) override { /* unused */ } }; } void PanTreeStore :: pan_tree_init (PanTreeStore * tree) { tree->stamp = g_random_int(); tree->n_columns = 0; tree->root = new RootRow (); tree->row_dispose = nullptr; tree->column_types = new std::vector(); tree->sort_paused = 0; tree->sort_info = new column_sort_info_t; tree->sort_column_id = GTK_TREE_SORTABLE_UNSORTED_SORT_COLUMN_ID; tree->order = GTK_SORT_ASCENDING; } /*** **** ***/ GType PanTreeStore :: get_type () { static GType pan_tree_type (0); if (pan_tree_type) return pan_tree_type; static const GTypeInfo pan_tree_info = { sizeof (PanTreeStoreClass), NULL, // base_init NULL, // base_finalize (GClassInitFunc) pan_tree_class_init, NULL, // class finalize NULL, // class_data sizeof (PanTreeStore), 0, // n_preallocs (GInstanceInitFunc) pan_tree_init, nullptr // value_table }; pan_tree_type = g_type_register_static ( G_TYPE_OBJECT, "PanTreeStore", &pan_tree_info, (GTypeFlags)0); static const GInterfaceInfo tree_model_info = { (GInterfaceInitFunc)pan_tree_model_init, nullptr, nullptr }; g_type_add_interface_static ( pan_tree_type, GTK_TYPE_TREE_MODEL, &tree_model_info); static const GInterfaceInfo sortable_info = { (GInterfaceInitFunc)pan_tree_sortable_init, nullptr, nullptr }; g_type_add_interface_static ( pan_tree_type, GTK_TYPE_TREE_SORTABLE, &sortable_info); return pan_tree_type; } PanTreeStore* PanTreeStore :: new_tree (int n_columns, ...) { g_return_val_if_fail (n_columns>0, nullptr); PanTreeStore* tree = (PanTreeStore*) g_object_new (PAN_TREE_STORE_TYPE, NULL); va_list args; va_start (args, n_columns); for (int i=0; icolumn_types->push_back (type); } va_end (args); tree->n_columns = tree->column_types->size(); return tree; } /*** **** ***/ void PanTreeStore :: row_changed (Row * row) { GtkTreeIter iter; get_iter (row, &iter); row_changed (&iter); } void PanTreeStore :: row_changed (GtkTreeIter * iter) { GtkTreeModel * model (GTK_TREE_MODEL(this)); GtkTreePath * path (gtk_tree_model_get_path (model, iter)); gtk_tree_model_row_changed (model, path, iter); gtk_tree_path_free (path); } /*** **** ***/ void PanTreeStore :: renumber_children (Row * parent, int child_lo, int child_hi) { const int n_children (parent->n_children()); child_hi = std::min (child_hi, n_children); g_assert (parent); g_assert (child_lo >= 0); g_assert (child_lo <= child_hi); g_assert (child_hi <= n_children); Row ** it = &parent->children[child_lo]; for (int i=child_lo; i!=child_hi; ++i, ++it) { (*it)->child_index = i; (*it)->parent = parent; } } struct PanTreeStore :: RowCompareByDepth { PanTreeStore * store; RowCompareByDepth (PanTreeStore *s): store(s) {} bool operator() (const Row* a, const Row* b) const { return store->get_depth(a) < store->get_depth(b); } }; void PanTreeStore :: insert_sorted (const parent_to_children_t& new_parents) { g_return_if_fail (!new_parents.empty()); RowCompareByDepth depth_compare (this); // this is a pool of all the parents that need kids added... std::set pool; foreach_const (parent_to_children_t, new_parents, it) pool.insert (it->first ? it->first : root); while (!pool.empty()) { // get a subset of pool: parents that are are in the tree rows_t keys; foreach_const (std::set, pool, it) if (is_in_tree (*it)) keys.push_back (*it); g_assert (!keys.empty()); // sort these from shallowest to deepest std::sort (keys.begin(), keys.end(), depth_compare); // process each of them foreach_const (rows_t, keys, it) { // add the children to this parent... // caller passes in NULL for the parent of top-level articles... Row * parent (*it); Row * key (parent==root ? nullptr : parent); const rows_t& children (new_parents.find(key)->second); insert_sorted (parent, children); pool.erase (parent); } } } struct PanTreeStore :: RowCompareByColumn { PanTreeStore * store; GtkTreeModel * model; GtkTreeIterCompareFunc sort_func; gpointer user_data; bool reverse; RowCompareByColumn (PanTreeStore * s): store (s), model (GTK_TREE_MODEL(s)) { const SortInfo& info ((*(store->sort_info))[store->sort_column_id]); sort_func = info.sort_func; user_data = info.user_data; reverse = (store->order == GTK_SORT_DESCENDING); } bool operator() (const Row* a, const Row* b) const { GtkTreeIter a_it (store->get_iter (a)); GtkTreeIter b_it (store->get_iter (b)); int val = sort_func ? (sort_func)(model, &a_it, &b_it, user_data) : (an_children()); if (n_children) { // fire a "row inserted" for each child GtkTreePath * cpath (gtk_tree_path_copy (path)); gtk_tree_path_down (cpath); for (int i=0; inth_child (i)); GtkTreeIter citer; store->set_iter (&citer, child); gtk_tree_model_row_inserted (model, cpath, &citer); if (!i) gtk_tree_model_row_has_child_toggled (model, path, iter); gtk_tree_path_next (cpath); } gtk_tree_path_free (cpath); } return true; // keep marching } }; void PanTreeStore :: insert_sorted (Row * parent, const rows_t & children_in) { g_return_if_fail (!children_in.empty()); if (!parent) parent = root; //std::cerr << LINE_ID << " adding " << children_in.size() << " sorted children to " << parent << " which currently has " << parent->children.size() << " children" << std::endl; // sort new children... rows_t children (children_in); foreach (rows_t, children, it) (*it)->parent = parent; RowCompareByColumn compare_column (this); std::sort (children.begin(), children.end(), compare_column); //for (int i=0, n=children.size()-1; ichildren.size()-1; ichildren[i+1], parent->children[i])); // merge the two sorted containers together... const size_t old_size (parent->children.size()); rows_t tmp; tmp.reserve (old_size + children.size()); const size_t n_new (children.size()); std::vector indices; indices.reserve (n_new); rows_t::const_iterator o_it (parent->children.begin()), o_end (parent->children.end()), n_it (children.begin()), n_end (children.end()); for (size_t i=0; o_it!=o_end || n_it!=n_end; ++i) { Row * addme (nullptr); if ((n_it==n_end)) { //std::cerr << LINE_ID << " n is empty ... adding another o at " << tmp.size() << std::endl; addme = *o_it++; } else if (o_it==o_end) { //std::cerr << LINE_ID << " o is empty .. adding NEW at " << tmp.size() << std::endl; indices.push_back (i); addme = *n_it++; } else if (compare_column (*n_it, *o_it)) { //std::cerr << LINE_ID << " adding NEW at index " << tmp.size() << std::endl; indices.push_back (i); addme = *n_it++; } else { //std::cerr << LINE_ID << " adding old at index " << tmp.size() << std::endl; addme = *o_it++; } // g_assert (tmp.empty() || !compare_column(addme,tmp.back())); addme->child_index = i; // g_assert (tmp.empty() || !compare_column(addme,tmp.back())); tmp.push_back (addme); } parent->children.swap (tmp); // check our work... //g_assert (parent->children.size() == old_size + children.size()); //g_assert (indices.size() == children.size()); //for (int i=0, n=parent->children.size(); ichildren[i], parent->children[i-1])); // emit the 'row inserted' signals GtkTreePath * path (get_path (parent)); GtkTreeIter iter; GtkTreeModel * model (GTK_TREE_MODEL (this)); foreach_const (std::vector, indices, it) { Row * child (parent->nth_child (*it)); get_iter (child, &iter); gtk_tree_path_append_index (path, *it); gtk_tree_model_row_inserted (model, path, &iter); gtk_tree_path_up (path); // if row has children, this handles all of their // row-inserted and has-child-toggled signals... // if the row doesn't have children, this has // no effect... if (!child->children.empty()) { ReparentWalker walk (this); prefix_walk (walk, &iter, true); } } // maybe emit the 'row has child toggled' signal if (!old_size && parent!=root) { GtkTreeIter it (get_iter (parent)); gtk_tree_model_row_has_child_toggled (model, path, &it); } // cleanup gtk_tree_path_free (path); //for (int i=0, n=parent->children.size(); ichildren[i], parent->children[i-1])); } void PanTreeStore :: insert (Row * parent_row, const rows_t & new_children, int position) { g_return_if_fail (!new_children.empty()); g_return_if_fail (position >= 0); if (!parent_row) parent_row = root; // insert the rows const size_t n_rows (new_children.size()); const int old_size (parent_row->n_children()); position = std::min (position, old_size); parent_row->children.insert (parent_row->children.begin()+position, new_children.begin(), new_children.end()); renumber_children (parent_row, position); // set the return iter GtkTreeIter iter (get_iter (parent_row->children[position])); // emit the 'row inserted' signals GtkTreeModel * model (GTK_TREE_MODEL(this)); Row ** it (&parent_row->children[position]); GtkTreePath * path (get_path (*it)); for (size_t i=0; ichildren.empty()) { ReparentWalker walk (this); prefix_walk (walk, &iter, true); } } // maybe emit the 'row has child toggled' signal if (!old_size && parent_row!=root) { GtkTreeIter parent_it (get_iter (parent_row)); gtk_tree_path_up (path); gtk_tree_model_row_has_child_toggled (model, path, &parent_it); } // cleanup gtk_tree_path_free (path); } void PanTreeStore :: reparent (Row * new_parent, Row * row, int position) { g_return_if_fail (row != nullptr); GtkTreeModel * model (GTK_TREE_MODEL(this)); if (!new_parent) new_parent = root; // remove our subtree's toplevel from its old parent rows_t tmp; tmp.push_back (row); remove_siblings (tmp, false); // add the subtree's toplevel to its new parent row const int new_parent_old_n_children (new_parent->n_children()); position = std::min (position, new_parent_old_n_children); new_parent->children.insert (new_parent->children.begin()+position, row); renumber_children (new_parent, position); // emit a row-inserted for iter GtkTreeIter iter (get_iter (row)); GtkTreePath * path (get_path (row)); gtk_tree_model_row_inserted (model, path, &iter); gtk_tree_path_free (path); // this emits all the row-inserted and has-child-toggled signals EXCEPT // for iter's row-inserted (above) and parent-iter's has-child-toggled (below). // It's kind of kludgy but gets all the signals emitted in the right sequence. ReparentWalker walk (this); prefix_walk (walk, &iter, true); // if this was the new parent's first child, fire a has-child-toggled event if (!new_parent_old_n_children) { GtkTreePath * path (get_path (new_parent)); GtkTreeIter new_parent_iter; get_iter (new_parent, &new_parent_iter); gtk_tree_model_row_has_child_toggled (model, path, &new_parent_iter); gtk_tree_path_free (path); } } void PanTreeStore :: reparent (const parent_to_children_t& new_parents) { const RowCompareByDepth depth_compare (this); // REMOVE children from their OLD parents rows_t remove_me; foreach_const (parent_to_children_t, new_parents, it) remove_me.insert (remove_me.end(), it->second.begin(), it->second.end()); remove (remove_me, false); // ADD children to their NEW parent insert_sorted (new_parents); } /*** **** ***/ void PanTreeStore :: remove (const rows_t& rows, bool delete_rows) { parent_to_children_t parent_to_kids; foreach_const (rows_t, rows, it) { g_assert (*it); g_assert ((*it)->parent); parent_to_kids[(*it)->parent].push_back (*it); } // remove them in same-parent batches, starting at the // deepest parents and working up to the shallower ones rows_t keys; foreach_const (parent_to_children_t, parent_to_kids, it) keys.push_back (it->first); const RowCompareByDepth compare_depth (this); std::sort (keys.begin(), keys.end(), compare_depth); foreach_const_r (rows_t, keys, it) remove_siblings (parent_to_kids[*it], delete_rows); } struct PanTreeStore::ClearWalker: public PanTreeStore::WalkFunctor { virtual ~ClearWalker () {} void clear_children (PanTreeStore* store, Row * row) { store->remove_siblings (row->children, true); } virtual bool operator()(PanTreeStore* store, PanTreeStore::Row*, GtkTreeIter* iter, GtkTreePath*) { clear_children (store, store->get_row(iter)); return true; } }; void PanTreeStore :: clear () { ClearWalker walker; postfix_walk (walker); walker.clear_children (this, root); } struct PanTreeStore :: RowCompareByChildPos { bool operator() (const Row* a, const Row* b) const { return a->child_index < b->child_index; } }; void PanTreeStore :: remove_siblings (const rows_t& siblings, bool delete_rows) { // entry assertions g_assert (!siblings.empty()); Row * parent (siblings[0]->parent); g_assert (parent); foreach_const (rows_t, siblings, it) g_assert ((*it)->parent == parent); // all are siblings // unthread the doomed rows std::set removed_indices; GtkTreeModel * model (GTK_TREE_MODEL(this)); GtkTreePath * path (get_path (parent)); foreach_const (rows_t, siblings, nit) { Row * row (*nit); removed_indices.insert (row->child_index); row->parent = nullptr; row->child_index = -1; } // remove the dead rows; re-index the live ones int pos (0); rows_t keepers, purged; keepers.reserve (parent->n_children()); foreach_const (rows_t, parent->children, it) { Row * row (*it); if (!row->parent) purged.push_back (row); else { row->child_index = pos++; keepers.push_back (row); } } parent->children.swap (keepers); // fire removal signal for child foreach_const_r (std::set, removed_indices, it) { gtk_tree_path_append_index (path, *it); gtk_tree_model_row_deleted (model, path); gtk_tree_path_up (path); } // maybe fire has-children signal for parent if (parent!=root && !parent->n_children()) { GtkTreeIter pit; set_iter (&pit, parent); gtk_tree_model_row_has_child_toggled (model, path, &pit); } // clean up purged rows if (delete_rows) { foreach (rows_t, purged, it) { Row * row (*it); g_assert (row->child_index == -1); FreeRowWalker walk (this); GtkTreeIter iter (get_iter (row)); postfix_walk (walk, &iter); } } gtk_tree_path_free (path); } /*** **** ***/ bool PanTreeStore :: walk_helper (int walk_mode, Row * row, GtkTreePath * path, WalkFunctor & walker) { g_assert (row); g_assert (walk_mode==WALK_PREFIX || walk_mode==WALK_POSTFIX); bool more (true); GtkTreeIter iter; set_iter (&iter, row); if (more && row!=root && walk_mode==WALK_PREFIX) more = walker (this, row, &iter, path); const size_t n_children (row->n_children()); if (more && n_children) { if (path) gtk_tree_path_append_index (path, 0); for (Row ** it(&row->children.front()), ** end(it+n_children); more && it!=end; ++it) { more = walk_helper (walk_mode, *it, path, walker); if (path) gtk_tree_path_next (path); } if (path) gtk_tree_path_up (path); } if (more && row!=root && walk_mode==WALK_POSTFIX) more = walker (this, row, &iter, path); return more; } void PanTreeStore :: walk (int walk_mode, WalkFunctor & walker, GtkTreeIter * top, bool need_path) { GtkTreePath * path (nullptr); if (need_path) path = top ? get_path(top) : gtk_tree_path_new(); Row * row (top ? get_row(top) : root); walk_helper (walk_mode, row, path, walker); gtk_tree_path_free (path); } void PanTreeStore :: prefix_walk (WalkFunctor & walker, GtkTreeIter * top, bool need_path) { walk (WALK_PREFIX, walker, top, need_path); } void PanTreeStore :: postfix_walk (WalkFunctor & walker, GtkTreeIter * top, bool need_path) { walk (WALK_POSTFIX, walker, top, need_path); } /*** **** ***/ PanTreeStore :: Row* PanTreeStore :: get_prev (Row * row) { if (!row || row==root) return nullptr; if (row->child_index==0) return row->parent==root ? nullptr : row->parent; Row * sibling = row->parent->nth_child (row->child_index-1); return sibling->get_last_descendant (); } PanTreeStore :: Row* PanTreeStore :: get_next (Row * row) { // child if (!row->children.empty()) return row->nth_child (0); // sibling while (row && row!=root) { Row * sibling = row->parent->nth_child (row->child_index + 1); if (sibling) return sibling; row = row->parent; } // if all else fails, just return the first node return root->nth_child(0); } bool PanTreeStore :: get_prev (GtkTreeIter * iter) { return set_or_invalidate (iter, get_prev(get_row(iter))); } bool PanTreeStore :: get_next (GtkTreeIter * iter) { return set_or_invalidate (iter, get_next(get_row(iter))); } bool PanTreeStore :: back (GtkTreeIter * iter) { return set_or_invalidate (iter, root->get_last_descendant()); } bool PanTreeStore :: front (GtkTreeIter * iter) { return set_or_invalidate (iter, get_next(root)); } pan-0.162/pan/gui/pan-tree.h000066400000000000000000000364211475412772400155510ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #ifndef PAN_TREE_STORE_H #define PAN_TREE_STORE_H #include #include #include #include #define PAN_TREE_STORE_TYPE (PanTreeStore::get_type()) #define PAN_TREE_STORE(obj) \ (G_TYPE_CHECK_INSTANCE_CAST ((obj), PAN_TREE_STORE_TYPE, PanTreeStore)) #define PAN_TREE_STORE_CLASS(klass) \ (G_TYPE_CHECK_CLASS_CAST ((klass), PAN_TREE_STORE_TYPE, PanTreeStoreClass)) #define IS_PAN_TREE_STORE(obj)\ (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PAN_TREE_STORE_TYPE)) #define IS_PAN_TREE_STORE__CLASS(klass)\ (G_TYPE_CHECK_CLASS_TYPE ((klass), PAN_TREE_STORE_TYPE)) #define PAN_TREE_STORE_GET_CLASS(obj) \ (G_TYPE_INSTANCE_GET_CLASS ((obj), PAN_TREE_STORE_TYPE, PanTreeStoreClass)) struct PanTreeStoreClass { GObjectClass parent_class; }; /** * PanTreeStore is a GtkTreeModel implementation with a primary goal of * fast, memory-efficient handling of very large and/or flat trees. * It has no Pan dependencies and can be reused by copying pan-tree.{h,cc}. * * Enhancements, as compared to GtkTreeStore: * * 1. Rows are constructed by the client, then passed into the tree. * This helps lower memory use by having a single Row structure * rather than an array of GValues. On an x86 architecture, * sizeof(int)==4 and sizeof(GValue)==20. (Plus we avoid * GtkTreeStore's extra hit of using linked lists to join the * cells in a row, * * 2. Population before insertion is also much faster because * there are no extra calls to tree_store_set_value(), no GObject * type checking, no extra GtkTreePaths built for row-changed, and * most importantly, no row-changed signals emitted at all. * * 3. Rows can be inserted in batches, which reduces some overhead * of redundant per-call GObject type checking and GtkTreePath creation. * for the row-inserted signal handlers. * * 4. Rows can be inserted into the tree sorted so that there's no * separate sorting step. * * 5. GtkTreePath creation is practically free compared with GtkTreeStore: * each child knows its child index to be used in the tree path. * GtkTreeStore holds a list of children which must be walked in order * to find the child's index, which is expensive on large/flat trees. * * 6. Entire subtrees can be reparented in a single call. * * * WARTS * * _ Sorting is not triggered when a row changes. * When you're done with a batch of changes, call sort() manually. * * _ Would have a better chance of being used outside of Pan if it * had a C API. */ struct PanTreeStore { public: // must come first for glib-style inheritance to work right. GObject parent; public: /** This is how you instantiate. Arguments are equivalent to gtk_tree_store_new(). */ static PanTreeStore* new_tree (int n_cols, ...); static GType get_type (); private: class ClearWalker; class FreeRowWalker; class ReparentWalker; class RowCompareByDepth; class RowCompareByColumn; class RowCompareByChildPos; public: struct Row; typedef std::vector rows_t; /** * PanTreeStore saves rows in structs rather than arrays * of GValues. This is for flexibility (the client can define * the structs however they want) and for space efficiency * sizeof(GValue) > sizeof(builtin). * * It's the client's responsibility to call * store->row_changed(row) when a row's contents change. * * Subclasses must implement get_value(), typically with a * switch(column) statement and various calls to set_value_X(). */ struct Row { public: virtual ~Row () {} virtual void get_value (int column, GValue* setme) = 0; // helpers to make implementing get_value() easier protected: void set_value_pointer (GValue * setme, gpointer); void set_value_ulong (GValue * setme, unsigned long); void set_value_int (GValue * setme, int); void set_value_string (GValue * setme, const char *); void set_value_static_string (GValue * setme, const char *); protected: Row (): parent(nullptr), child_index(-1) {} private: friend class PanTreeStore; friend class ClearWalker; friend class FreeRowWalker; friend class ReparentWalker; friend class RowCompareByChildPos; Row * parent; rows_t children; int child_index; private: Row* get_last_descendant () { return children.empty() ? this : children.back()->get_last_descendant (); } int n_children () const { return (int) children.size(); } Row * nth_child (int n) { Row * ret (nullptr); if (0<=n && n<(int)children.size()) ret = children[n]; return ret; } }; struct RowDispose { virtual ~RowDispose () {} virtual void row_dispose (PanTreeStore *store, Row* row) = 0; }; void set_row_dispose (RowDispose * r) { row_dispose = r; } /** Client code _must_ call row_changed() when a row changes. */ void row_changed (GtkTreeIter * iter); /** Client code _must_ call row_changed() when a row changes. */ void row_changed (Row * row); void get_iter (const Row*, GtkTreeIter* setme); GtkTreeIter get_iter (const Row*); /** Get the Row pointed to by the GtkTreeIter. */ Row* get_row (GtkTreeIter* iter); /** Get the Row pointed to by the GtkTreeIter. */ const Row* get_row (const GtkTreeIter* iter) const; /** Build a GtkTreePath corresponding to the GtkTreeIter. This is equivalent to gtk_tree_model_get_path(iter). */ GtkTreePath* get_path (GtkTreeIter* iter); /** Build a GtkTreePath corresponding to the Row */ GtkTreePath* get_path (const Row* row) const; bool back (GtkTreeIter * iter); bool front (GtkTreeIter * iter); bool get_next (GtkTreeIter * iter); bool get_prev (GtkTreeIter * iter); Row* get_next (Row * iter); Row* get_prev (Row * iter); public: typedef std::map parent_to_children_t; void insert_sorted (const parent_to_children_t&); void insert_sorted (Row * parent, const rows_t& children); void insert (Row * parent, const rows_t& children, int pos); void append (Row * parent, const rows_t& children) { insert (parent, children, INT_MAX); } void append (Row * parent, Row * child) { rows_t children; children.push_back(child); append (parent, children); } /** Empties out the tree. */ void clear (); /** Remove a set of rows. These do not need to have the same parent. */ void remove (const rows_t& rows) { remove (rows, true ); } /** Move a row to a new parent. */ void reparent (Row * parent_or_null_for_root, Row * child, int pos = INT_MAX); void reparent (const parent_to_children_t& parents_to_children); public: void pause_sorting () { ++sort_paused; } void resume_sorting () { if (!--sort_paused) sort (); } public: /** Clients wanting to walk a tree or subtree should subclass this and pass an instantiation to walk(). */ struct WalkFunctor { virtual ~WalkFunctor () {} virtual bool operator()(PanTreeStore*, Row*, GtkTreeIter*, GtkTreePath*) = 0; }; /** * The default walk, executing a parent-first traversal of the entire tree, * with GtkTreePaths not generated (they can be turned on if needed, but add * extra expense so are turned off by default). * * For more flexibility, use prefix_walk() or postfix_walk(). */ void walk (WalkFunctor& walk, bool need_path=false) { prefix_walk (walk, nullptr, need_path); } void prefix_walk (WalkFunctor & walk_functor, GtkTreeIter * top = nullptr, bool need_path = false); void postfix_walk (WalkFunctor & walk_functor, GtkTreeIter * top = nullptr, bool need_path = false); public: void get_sort_column_id (int& column, GtkSortType& type) const { column = sort_column_id; type = order; } public: bool is_sorted () const { return sort_info->count (sort_column_id); } bool is_root (const GtkTreeIter * it) const; size_t get_depth (const Row * row) const; bool is_in_tree (Row * row) const; /** Equivalent to gtk_tree_model_get_parent(). */ bool get_parent (GtkTreeIter * setme_parent, GtkTreeIter * child); /**** ***** EVERYTHING PAST THIS POINT IS PRIVATE ****/ private: enum { SORT, FLIP }; void sort (int mode=SORT); /** * Per-row sorting information, as set by * gtk_tree_sortable_set_sort_func(). */ struct SortInfo { GtkTreeIterCompareFunc sort_func; gpointer user_data; GDestroyNotify destroy_notify; SortInfo(): sort_func(nullptr), user_data(nullptr), destroy_notify(nullptr) {} ~SortInfo() { clear(); } void clear () { if (destroy_notify) destroy_notify (user_data); sort_func = nullptr; user_data = nullptr; destroy_notify = nullptr; } void assign (GtkTreeIterCompareFunc sort_func, gpointer user_data, GDestroyNotify destroy_notify) { clear (); this->sort_func = sort_func; this->user_data = user_data; this->destroy_notify = destroy_notify; } }; /** sort info for any column */ typedef std::map column_sort_info_t; column_sort_info_t * sort_info; /** one of GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID, GTK_TREE_SORTABLE_UNSORTED_SORT_COLUMN_ID, or [0...n_columns) */ int sort_column_id; /** the model's sort order -- ascending or descending */ GtkSortType order; private: void set_iter (GtkTreeIter*, const Row*); static void invalidate_iter (GtkTreeIter*); bool set_or_invalidate (GtkTreeIter*, const Row*); private: void remove (const rows_t& rows, bool delete_rows); void remove_siblings (const rows_t& siblings, bool delete_rows); void renumber_children (Row * parent, int child_lo = 0, int child_hi = INT_MAX); private: enum { WALK_PREFIX, WALK_POSTFIX }; void walk (int walk_mode, WalkFunctor & walker, GtkTreeIter * top, bool need_path); bool walk_helper (int walk_mode, Row * top_row, GtkTreePath * top_path_or_null, WalkFunctor & walk_functor); private: /** Used just as in GtkTreeStore, to verify that GtkIters passed as arguments to us actually do belong to this tree. */ int stamp; /** Defines the GType of each column. */ std::vector * column_types; /** number of columns in each row. */ int n_columns; /** is sorting currently disabled? */ int sort_paused; /** The root node, This is for implementation only; it's invisible to the outside world and you can't get a GtkTreeIter or GtkTreePath to it. */ Row * root; /** How to dispose of a row that's no longer used. If this is null, we just call `delete row;' */ RowDispose * row_dispose; private: // gobject static void pan_tree_dispose (GObject *); static void pan_tree_finalize (GObject *); static void pan_tree_class_init (PanTreeStoreClass *); static void pan_tree_model_init (GtkTreeModelIface *); static void pan_tree_sortable_init (GtkTreeSortableIface *); static void pan_tree_init (PanTreeStore *); private: // GtkTreeModel implementation static GtkTreeModelFlags model_get_flags (GtkTreeModel*); static gint model_get_n_columns (GtkTreeModel*); static GType model_get_column_type (GtkTreeModel*, int); static gboolean model_get_iter (GtkTreeModel*, GtkTreeIter*, GtkTreePath*); static GtkTreePath* model_get_path (GtkTreeModel*, GtkTreeIter*); static void model_get_value (GtkTreeModel*, GtkTreeIter*, gint, GValue*); static gboolean model_iter_next (GtkTreeModel*, GtkTreeIter*); static gboolean model_iter_children (GtkTreeModel*, GtkTreeIter*, GtkTreeIter*); static gint model_iter_n_children (GtkTreeModel*, GtkTreeIter*); static gboolean model_iter_has_child (GtkTreeModel*, GtkTreeIter*); static gboolean model_iter_nth_child (GtkTreeModel*, GtkTreeIter*, GtkTreeIter*, gint); static gboolean model_iter_parent (GtkTreeModel*, GtkTreeIter*, GtkTreeIter*); private: // GtkTreeSortable implementation static gboolean sortable_get_sort_column_id (GtkTreeSortable*, gint*, GtkSortType*); static void sortable_set_sort_column_id (GtkTreeSortable*, gint, GtkSortType); static void sortable_set_sort_func (GtkTreeSortable*, gint, GtkTreeIterCompareFunc, gpointer, GDestroyNotify); static gboolean sortable_has_sort_func (GtkTreeSortable*, gint); static void sortable_set_default_sort_func (GtkTreeSortable*, GtkTreeIterCompareFunc, gpointer, GDestroyNotify); static gboolean sortable_has_default_sort_func (GtkTreeSortable*); private: struct SortData; struct SortRowInfo; void sort_children (SortInfo&, Row* parent, bool recurse, int mode); static int row_compare_func (gconstpointer, gconstpointer, gpointer); private: PanTreeStore(); // this is a GObject; use new_tree instead }; #endif pan-0.162/pan/gui/pan-ui.h000066400000000000000000000131621475412772400152240ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #ifndef __pan_ui_h__ #define __pan_ui_h__ namespace pan { /** * Interface class for Pan GUI actions. * @ingroup GUI */ struct PanUI { PanUI() {} virtual ~PanUI() {} virtual void do_prompt_for_charset () = 0; virtual void do_save_articles () = 0; virtual void do_save_articles_from_nzb () = 0; virtual void do_save_articles_to_nzb () = 0; virtual void do_print () = 0; virtual void do_import_tasks () = 0; virtual void do_import_tasks_from_nzb_stream (const char*) = 0; virtual void do_cancel_latest_task () = 0; virtual void do_select_all_articles () = 0; virtual void do_unselect_all_articles () = 0; virtual void do_add_similar_to_selection () = 0; virtual void do_add_threads_to_selection () = 0; virtual void do_add_subthreads_to_selection () = 0; virtual void do_select_article_body () = 0; virtual void do_jump_to_group_tab () = 0; virtual void do_jump_to_header_tab () = 0; virtual void do_jump_to_body_tab () = 0; virtual void do_rot13_selected_text () = 0; virtual void do_download_selected_article () = 0; virtual void do_clear_header_pane () = 0; virtual void do_clear_body_pane () = 0; virtual void do_read_selected_article () = 0; virtual void do_read_more () = 0; virtual void do_read_less () = 0; virtual void do_read_next_unread_group () = 0; virtual void do_read_next_group () = 0; virtual void do_read_next_unread_article () = 0; virtual void do_read_next_article () = 0; virtual void do_read_next_watched_article () = 0; virtual void do_read_next_unread_thread () = 0; virtual void do_read_next_thread () = 0; virtual void do_read_previous_article () = 0; virtual void do_read_previous_thread () = 0; virtual void do_read_parent_article () = 0; virtual void do_plonk () = 0; virtual void do_watch () = 0; virtual void do_ignore () = 0; virtual void do_flag () = 0; virtual void do_flag_off () = 0; virtual void do_next_flag () = 0; virtual void do_last_flag () = 0; virtual void do_mark_all_flagged () = 0; virtual void do_invert_selection () = 0; virtual void do_cancel_article () = 0; virtual void do_supersede_article () = 0; virtual void do_delete_article () = 0; virtual void do_clear_article_cache () = 0; virtual void do_mark_article_read () = 0; virtual void do_mark_article_unread () = 0; virtual void do_mark_thread_read () = 0; virtual void do_mark_thread_unread () = 0; virtual void do_post () = 0; virtual void do_followup_to () = 0; virtual void do_reply_to () = 0; #ifdef HAVE_MANUAL virtual void do_pan_manual () = 0; #endif virtual void do_pan_web () = 0; virtual void do_bug_report () = 0; virtual void do_about_pan () = 0; virtual void do_quit () = 0; virtual void do_show_task_window () = 0; virtual void do_show_log_window () = 0; virtual void do_show_preferences_dialog () = 0; virtual void do_show_group_preferences_dialog () = 0; virtual void do_show_profiles_dialog () = 0; virtual void do_show_servers_dialog () = 0; virtual void do_show_sec_dialog () = 0; virtual void do_show_score_dialog () = 0; virtual void do_show_new_score_dialog () = 0; virtual void do_show_selected_article_info () = 0; virtual void do_collapse_thread () = 0; virtual void do_expand_thread () = 0; virtual void do_read_selected_group () = 0; virtual void do_mark_selected_groups_read () = 0; virtual void do_clear_selected_groups () = 0; virtual void do_xover_selected_groups () = 0; virtual void do_xover_subscribed_groups () = 0; virtual void do_download_headers () = 0; virtual void do_refresh_groups () = 0; virtual void do_subscribe_selected_groups () = 0; virtual void do_unsubscribe_selected_groups () = 0; virtual void do_work_online (bool) = 0; virtual void do_layout (bool) = 0; virtual void do_show_group_pane (bool) = 0; virtual void do_show_header_pane (bool) = 0; virtual void do_show_body_pane (bool) = 0; virtual void do_show_toolbar (bool) = 0; virtual void do_shorten_group_names (bool) = 0; virtual void do_match_only_read_articles (bool) = 0; virtual void do_match_only_unread_articles (bool) = 0; virtual void do_match_only_cached_articles (bool) = 0; virtual void do_match_only_binary_articles (bool) = 0; virtual void do_match_only_my_articles (bool) = 0; virtual void do_show_matches (const Data::ShowType) = 0; virtual void do_enable_toggle_rules (bool enable) = 0; #define MATCH_IGNORED (1<<0) #define MATCH_LOW_SCORING (1<<1) #define MATCH_NORMAL_SCORING (1<<2) #define MATCH_MEDIUM_SCORING (1<<3) #define MATCH_HIGH_SCORING (1<<4) #define MATCH_WATCHED (1<<5) virtual void do_match_on_score_state (int) = 0; virtual void do_edit_scores(GtkAction *) = 0; }; } #endif pan-0.162/pan/gui/pan.cc000066400000000000000000000716421475412772400147560ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #include #include #include #include #include #include #include #include "pan/gui/load-icon.h" #include #include extern "C" { #include #include #include } #include #ifdef G_OS_WIN32 #undef _WIN32_WINNT #define _WIN32_WINNT 0x0501 #include #endif #ifdef HAVE_LIBNOTIFY #include #endif #ifdef HAVE_GNUTLS #include #endif #ifdef HAVE_GKR #define GCR_API_SUBJECT_TO_CHANGE #include #include #undef GCR_API_SUBJECT_TO_CHANGE #endif #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "gui.h" #include "group-prefs.h" #include "prefs-file.h" #include "task-pane.h" #include "server-ui.h" #include "pad.h" //#define DEBUG_LOCALE 1 //#define DEBUG_PARALLEL 1 using namespace pan; namespace { typedef std::vector strings_v; } namespace { GMainLoop * nongui_gmainloop (nullptr); void mainloop () { #if 1 if (nongui_gmainloop) g_main_loop_run (nongui_gmainloop); else { gtk_main (); } #else while (gtk_events_pending ()) gtk_main_iteration (); #endif } void mainloop_quit () { if (nongui_gmainloop) g_main_loop_quit (nongui_gmainloop); else gtk_main_quit (); } gboolean delete_event_cb (GtkWidget * w, GdkEvent *, gpointer user_data) { mainloop_quit (); return true; // don't invoke the default handler that destroys the widget } #ifndef G_OS_WIN32 void sighandler (int signum) { std::cerr << "Shutting down Pan." << std::endl; signal (signum, SIG_DFL); _dbg_file.close(); mainloop_quit (); } #endif // G_OS_WIN32 void register_shutdown_signals () { #ifndef G_OS_WIN32 signal (SIGHUP, sighandler); signal (SIGINT, sighandler); signal (SIGTERM, sighandler); #endif // G_OS_WIN32 } void destroy_cb (GtkWidget*, gpointer) { gtk_main_quit (); } struct DataAndQueue { Data * data; Queue * queue; }; void add_grouplist_task (GtkWidget *, gpointer user_data) { DataAndQueue * foo (static_cast(user_data)); const quarks_t new_servers (foo->data->get_servers()); foreach_const (quarks_t, new_servers, it) if (foo->data->get_server_limits(*it)) foo->queue->add_task (new TaskGroups (*foo->data, *it)); g_free (foo); } gboolean queue_upkeep_timer_cb (gpointer queue_gpointer) { static_cast(queue_gpointer)->upkeep (); return true; } /* ****** Status Icon and Notification *******************************************/ enum StatusIcons { ICON_STATUS_ONLINE, ICON_STATUS_OFFLINE, ICON_STATUS_ACTIVE, ICON_STATUS_QUEUE_EMPTY, ICON_STATUS_ERROR, ICON_STATUS_IDLE, ICON_STATUS_NEW_ARTICLES, NUM_STATUS_ICONS }; struct Icon { char const *pixbuf_file; GdkPixbuf *pixbuf; } status_icons[NUM_STATUS_ICONS] = { { "icon_status_online.png", nullptr }, { "icon_status_offline.png", nullptr }, { "icon_status_active.png", nullptr }, { "icon_status_queue_empty.png", nullptr }, { "icon_status_error.png", nullptr }, { "icon_status_idle.png", nullptr }, { "icon_status_new_articles.png", nullptr } }; struct StatusIconListener : public Prefs::Listener, public Queue::Listener, public Data::Listener { static gboolean status_icon_periodic_refresh (gpointer p) { return true; } #ifdef HAVE_LIBNOTIFY static void notif_maximize_cb(NotifyNotification *notification, char *action, gpointer user_data) { notify_notification_close (notification, nullptr); StatusIconListener* s = static_cast(user_data); gtk_widget_show (GTK_WIDGET(s->root)); gtk_window_deiconify(GTK_WINDOW(s->root)); } static void notif_close_cb (NotifyNotification *notification, gpointer user_data) { StatusIconListener* s = static_cast(user_data); s->notif_shown = false; s->_notifs.erase(G_OBJECT(notification)); g_object_unref (notification); } #endif bool n() { return notif_shown; } StatusIconListener(GtkWidget* r, Prefs& p, Queue& q, Data& d) : queue(q), data(d), tasks_active(0), tasks_total(0), notif_shown(false), prefs(p), root(r) { prefs.add_listener(this); queue.add_listener(this); data.add_listener(this); is_online = q.is_online(); status_icon_timeout_tag = g_timeout_add (500, status_icon_periodic_refresh, this); } ~StatusIconListener() { prefs.remove_listener(this); queue.remove_listener(this); data.remove_listener(this); g_source_remove (status_icon_timeout_tag); #ifdef HAVE_LIBNOTIFY foreach(std::set, _notifs, it) { notify_notification_close(NOTIFY_NOTIFICATION(*it), nullptr); g_object_unref (*it); } #endif } /* prefs::listener */ void on_prefs_flag_changed(StringView const &key, bool value) override { } void on_prefs_int_changed(StringView const &key, int color) override { } void on_prefs_string_changed(StringView const &key, StringView const &value) override { } void on_prefs_color_changed(StringView const &key, GdkRGBA const &color) override { } void notify_of(StatusIcons si, char const *body, char const *summary) { #ifdef HAVE_LIBNOTIFY if (!body || !summary) return; if (!prefs.get_flag("use-notify", false)) return; NotifyNotification *notif(nullptr); GError* error(nullptr); #ifdef NOTIFY_CHECK_VERSION #if NOTIFY_CHECK_VERSION (0, 7, 0) notif=notify_notification_new(summary, body, nullptr); #else notif=notify_notification_new(summary, body, nullptr,nullptr); #endif #else notif=notify_notification_new(summary, body, nullptr,nullptr); #endif if (!notif) return; _notifs.insert(G_OBJECT(notif)); notify_notification_set_icon_from_pixbuf(notif, status_icons[si].pixbuf); notify_notification_set_timeout (notif,5000); notify_notification_add_action(notif,"close",_("Maximize"),NOTIFY_ACTION_CALLBACK(notif_maximize_cb),this,nullptr); g_signal_connect (G_OBJECT(notif), "closed", G_CALLBACK(notif_close_cb), this); notify_notification_show (notif, &error); if (error) { debug ("Error showing notification: "<message); g_error_free (error); _notifs.erase(G_OBJECT(notif)); g_object_unref(G_OBJECT(notif)); } #endif } /* queue::listener */ void on_queue_task_active_changed (Queue&, Task&, bool active) override {} void on_queue_tasks_added (Queue&, int index UNUSED, int count) override { tasks_total += count; } void on_queue_task_removed (Queue&, Task&, int pos UNUSED) override { } void on_queue_task_moved (Queue&, Task&, int new_pos UNUSED, int old_pos UNUSED) override {} void on_queue_connection_count_changed (Queue&, int count) override {} void on_queue_size_changed (Queue&, int active, int total) override { tasks_total = total; tasks_active = active; } void on_queue_online_changed (Queue&, bool online) override { is_online = online; } void on_queue_error(Queue &, StringView const &message) override { if (n()) return; notif_shown = true; notify_of(ICON_STATUS_ERROR, message.str, _("An error has occurred!")); } /* data::listener */ void on_group_entered(Quark const &group, Article_Count unread, Article_Count total) override { if (static_cast(unread) != 0) { if (n()) return; notif_shown = true; char const *summary = _("New Articles!"); char const *body = _("There are new\narticles available."); notify_of(ICON_STATUS_NEW_ARTICLES, body, summary); } } private: Queue& queue; Data& data; int tasks_active; int tasks_total; bool is_online; guint status_icon_timeout_tag; bool notif_shown; public: Prefs& prefs; GtkStatusIcon *icon; GtkWidget* root; std::set _notifs; }; static StatusIconListener* _status_icon; struct QueueAndGui { Queue& queue; GUI& gui; QueueAndGui (Queue& q, GUI& g) : queue(q), gui(g) {} }; static void work_online_cb (GtkWidget* w, gpointer data) { QueueAndGui* d = static_cast(data); d->gui.do_work_online(!d->queue.is_online()); } static QueueAndGui* queue_and_gui(nullptr); void run_pan_with_status_icon (GtkWindow * window, GdkPixbuf * pixbuf, Queue& queue, Prefs & prefs, Data& data, GUI* _gui) { _status_icon = new StatusIconListener(GTK_WIDGET(window), prefs, queue, data); // required to show Pan icon in notification for (guint i=0; idata = &data; foo->queue = &queue; g_signal_connect (w, "destroy", G_CALLBACK(add_grouplist_task), foo); } register_shutdown_signals (); mainloop (); g_signal_handler_disconnect (window, delete_cb_id); delete _gui; gtk_widget_destroy (GTK_WIDGET(window)); } /** Queue:::Listener that quits Pan via mainloop_exit() when on_queue_size_changed() say the queue is empty. See https://bugzilla.gnome.org/show_bug.cgi?id=424248. */ struct PanKiller : public Queue::Listener { PanKiller(Queue & q) : q(q) { q.add_listener(this); } ~PanKiller() { q.remove_listener(this); } /** Method from Queue::Listener interface: quits program on zero sized Q*/ void on_queue_size_changed (Queue&, int active, int total) override { if (!active && !total) mainloop_quit(); } // all below methods from Queue::Listener interface are noops void on_queue_task_active_changed (Queue&, Task&, bool) override {} void on_queue_tasks_added (Queue&, int , int ) override {} void on_queue_task_removed (Queue&, Task&, int) override {} void on_queue_task_moved (Queue&, Task&, int, int) override {} void on_queue_connection_count_changed (Queue&, int) override {} void on_queue_online_changed (Queue&, bool) override {} void on_queue_error (Queue&, const StringView&) override {} private: Queue & q; }; #ifdef G_OS_WIN32 void console() { using namespace std; static bool done = false; if ( done ) return; done = true; //AllocConsole(); if ( !AttachConsole( -1 ) ) return; static ofstream out("CONOUT$"); static ofstream err("CONOUT$"); streambuf *tmp, *t2; tmp = cout.rdbuf(); t2 = out.rdbuf(); cout.ios::rdbuf( t2 ); out.ios::rdbuf( tmp ); tmp = cerr.rdbuf(); t2 = err.rdbuf(); cerr.ios::rdbuf( t2 ); err.ios::rdbuf( tmp ); (void)freopen( "CONOUT$", "w", stdout ); (void)freopen( "CONOUT$", "w", stderr ); } #else void console() { return; } #endif void usage () { console(); std::cerr << "Pan " << PAN_VERSION << "\n\n" << _("General Options\n" " -h, --help Show this usage information and exit.\n" " -v, --version Print release version and exit.\n" " --verbose Be verbose (in non-GUI mode).\n" " --debug Run in debug mode. Use --debug twice for verbose debug.\n" " --debug-ssl Run in TLS (aka SSL) debug mode.\n" "\n" "URL Options\n" /** NOT IMPLEMENTED " news:message-id Show the specified article.\n" " news:group.name Show the specified newsgroup.\n" */ " headers:group.name Download new headers for the specified newsgroup.\n" " news:message-id When specified together with --no-gui, dump\n" " the message-id article to standard output.\n" "\n" "NZB Batch Options\n" " --nzb file1 file2 ... Process NZB files in non-GUI mode.\n" " -o path, --output=path Path to save attachments listed in the NZB file(s).\n" " --no-gui Only show console output, not the download queue.\n") << std::endl; } #ifdef HAVE_DBUS /*** ** DBUS ***/ /** Struct for dbus handling */ struct Pan { Data& data; Queue& queue; ArticleCache& cache; EncodeCache& encode_cache; Prefs& prefs; GroupPrefs& group_prefs; GDBusNodeInfo * busnodeinfo; int dbus_id; bool lost_name; bool name_valid; GDBusInterfaceVTable ifacetable; Pan(Data& d, Queue& q, ArticleCache& c, EncodeCache& ec, Prefs& p, GroupPrefs& gp) : data(d), queue(q), cache(c), encode_cache(ec), prefs(p), group_prefs(gp), busnodeinfo(nullptr), dbus_id(-1), lost_name(false), name_valid(false) {} }; static void nzb_method_call(GDBusConnection *connection, gchar const *sender, gchar const *object_path, gchar const *interface_name, gchar const *method_name, GVariant *parameters, GDBusMethodInvocation *invocation, gpointer user_data) { Pan* pan(static_cast(user_data)); if (!pan) return; gboolean nzb(false); gchar* groups; gchar* nzb_output_path; gchar* nzbs; strings_v nzb_files; if (g_strcmp0 (method_name, "NZBEnqueue") == 0) { g_variant_get (parameters, "(sssb)", &groups, &nzb_output_path, &nzbs, &nzb); if (groups && strlen(groups)!=0) { StringView tok, v(groups); while (v.pop_token(tok,',')) pan->queue.add_task (new TaskXOver (pan->data, tok, TaskXOver::NEW), Queue::BOTTOM); } if (nzb && nzbs) { //parse the file list StringView tok, nzb(nzbs); while (nzb.pop_token(tok)) nzb_files.push_back(tok); // load the nzb files... std::vector tasks; foreach_const (strings_v, nzb_files, it) NZB :: tasks_from_nzb_file (*it, nzb_output_path, pan->cache, pan->encode_cache, pan->data, pan->data, pan->data, tasks); pan->queue.add_tasks (tasks, Queue::BOTTOM); } } g_dbus_method_invocation_return_value (invocation, nullptr); } static GDBusConnection *dbus_connection(nullptr); static const gchar xml[] = "" " " " " " " " " " " " " " " " " ""; static void on_bus_acquired(GDBusConnection *connection, gchar const *name, gpointer user_data) { Pan* pan (static_cast(user_data)); g_return_if_fail (pan); pan->busnodeinfo = g_dbus_node_info_new_for_xml (xml, nullptr); /* init iface table */ GDBusInterfaceVTable tmp = { nzb_method_call , nullptr, nullptr }; pan->ifacetable = tmp; g_dbus_connection_register_object( connection, "/news/pan/NZB", pan->busnodeinfo->interfaces[0], &pan->ifacetable, pan, nullptr, nullptr ); } static void on_name_acquired(GDBusConnection *connection, gchar const *name, gpointer user_data) { Pan* pan(static_cast(user_data)); g_return_if_fail (pan); pan->name_valid = true; pan->lost_name = false; } static void on_name_lost(GDBusConnection *connection, gchar const *name, gpointer user_data) { Pan* pan(static_cast(user_data)); g_return_if_fail (pan); pan->name_valid = false; pan->lost_name = true; pan->dbus_id= -1; } static void pan_dbus_init (Pan* pan) { pan->dbus_id = g_bus_own_name( G_BUS_TYPE_SESSION, PAN_DBUS_SERVICE_NAME, G_BUS_NAME_OWNER_FLAGS_NONE, on_bus_acquired, on_name_acquired, on_name_lost, pan,nullptr); dbus_connection = g_bus_get_sync (G_BUS_TYPE_SESSION , nullptr, nullptr); } static void pan_dbus_deinit (Pan* pan) { if (pan->dbus_id != -1) g_bus_unown_name(pan->dbus_id); } /*** *** ***/ #endif } namespace { GUI * gui_ptr (nullptr); } namespace { void init_colors() { GtkWidget* r = gtk_label_new("bla"); GdkRGBA def_fg, def_bg; std::string fg_col, bg_col; // init colors of PanColors GdkRGBA fg_color, bg_color; GtkStyleContext* ctx = gtk_widget_get_style_context(r); if(!ctx || !gtk_style_context_lookup_color(ctx, "color", &fg_color)) gdk_rgba_parse(&def_fg, "black"); else { def_fg.red = fg_color.red; def_fg.green = fg_color.red; def_fg.blue = fg_color.blue; def_fg.alpha = fg_color.alpha; } if(!ctx || !gtk_style_context_lookup_color(ctx, "background-color", &bg_color)) gdk_rgba_parse(&def_bg, "white"); else { def_bg.red = bg_color.red; def_bg.green = bg_color.red; def_bg.blue = bg_color.blue; def_bg.alpha = bg_color.alpha; } //todo move to pancolors fg_col = gdk_rgba_to_string(&def_fg); bg_col = gdk_rgba_to_string(&def_bg); g_object_ref_sink (r); gtk_widget_destroy (r); g_object_unref (r); PanColors& c (PanColors::get()); c.def_fg = fg_col; c.def_bg = bg_col; c.def_fg_col = def_fg; c.def_bg_col = def_bg; } } int main (int argc, char *argv[]) { bindtextdomain (GETTEXT_PACKAGE, PANLOCALEDIR); bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); textdomain (GETTEXT_PACKAGE); #if !GLIB_CHECK_VERSION(2,36,0) g_type_init(); #endif #if !GLIB_CHECK_VERSION(2,32,0) g_thread_init (0); #endif g_mime_init (); bool gui(true), nzb(false), verbosed(false); std::string url; std::string groups; std::string nzb_output_path; strings_v nzb_files; std::string nzb_str; bool fatal_dbg(true); bool console_active(false); for (int i=1; i 1) nzb_str +=" "; nzb_str += tok; } } #ifdef DEBUG_LOCALE setlocale(LC_ALL,"C"); #endif if (verbosed && !gui) _verbose_flag = true; if (gui) { gtk_init (&argc, &argv); init_colors(); } if (!gui && nzb_files.empty() && url.empty() && groups.empty()) { std::cerr << _("Error: --no-gui used without nzb files or news:message-id.") << std::endl; return EXIT_FAILURE; } Log::add_info_va (_("Pan %s started"), PAN_VERSION); if (gui) { // load the preferences... char * filename = g_build_filename (file::get_pan_home().c_str(), "preferences.xml", nullptr); PrefsFile prefs (filename); // dummy is used to get fg/bg colors from UI g_free (filename); filename = g_build_filename (file::get_pan_home().c_str(), "group-preferences.xml", nullptr); GroupPrefs group_prefs (filename); g_free (filename); // instantiate the backend... int const cache_megs = prefs.get_int("cache-size-megs", 10); DataImpl data (prefs.get_string("cache-file-extension","msg"), prefs, false, cache_megs); ArticleCache& cache (data.get_cache ()); EncodeCache& encode_cache (data.get_encode_cache()); CertStore& certstore (data.get_certstore()); if (nzb && data.get_servers().empty()) { std::cerr << _("Please configure Pan's news servers before using it as an nzb client.") << std::endl; return EXIT_FAILURE; } data.set_newsrc_autosave_timeout( prefs.get_int("newsrc-autosave-timeout-min", 10 )); // instantiate the queue... WorkerPool worker_pool (4, true); SocketCreator socket_creator(data, certstore); Queue queue (data, data, data, &socket_creator, certstore, prefs, worker_pool, false, 32768); #ifdef HAVE_DBUS Pan pan(data, queue, cache, encode_cache, prefs, group_prefs); #ifndef DEBUG_PARALLEL if (!prefs.get_flag("allow-multiple-instances", false)) { pan_dbus_init(&pan); GError* error(nullptr); GVariant* var; if (!dbus_connection) goto _fail; if (nzb) { g_dbus_connection_call_sync (dbus_connection, PAN_DBUS_SERVICE_NAME, PAN_DBUS_SERVICE_PATH, "news.pan.NZB", "NZBEnqueue", g_variant_new ("(sssb)", groups.c_str(), nzb_output_path.c_str(), nzb_str.c_str(), gui, nzb), nullptr, G_DBUS_CALL_FLAGS_NONE, -1, nullptr, &error); if (!error) { std::cout<<"Added "<message<<"\n"; g_error_free(error); } } } #endif _fail: #endif // set queue prefs _after_ initializing dbus queue.set_online(true); queue.set_task_save_delay(prefs.get_int ("task-save-delay-secs", 10)); g_timeout_add (5000, queue_upkeep_timer_cb, &queue); if (nzb || !groups.empty()) { StringView tok, v(groups); while (v.pop_token(tok,',')) queue.add_task (new TaskXOver (data, tok, TaskXOver::NEW), Queue::BOTTOM); if (nzb) { // if no save path was specified, either prompt for one or // use the user's home directory as a fallback. if (nzb_output_path.empty() && gui) nzb_output_path = GUI::prompt_user_for_save_path (nullptr, prefs); if (nzb_output_path.empty()) // user pressed `cancel' when prompted return EXIT_FAILURE; // load the nzb files... std::vector tasks; foreach_const (strings_v, nzb_files, it) NZB :: tasks_from_nzb_file (*it, nzb_output_path, cache, encode_cache, data, data, data, tasks); queue.add_tasks (tasks, Queue::BOTTOM); } // if in non-gui mode, contains a PanKiller ptr to quit pan on queue empty std::unique_ptr killer; // don't open the full-blown Pan, just act as a nzb client, // with a gui or without. if (gui) { TaskPane * pane = new TaskPane (queue, prefs); GtkWidget * w (pane->root()); GdkPixbuf * pixbuf = load_icon("icon_pan.png"); gtk_window_set_default_icon (pixbuf); gtk_widget_show_all (w); g_signal_connect (w, "destroy", G_CALLBACK(destroy_cb), nullptr); g_signal_connect (G_OBJECT(w), "delete-event", G_CALLBACK(delete_event_cb), nullptr); } else { nongui_gmainloop = g_main_loop_new (nullptr, false); // create a PanKiller object -- which quits pan when the queue is done killer.reset(new PanKiller(queue)); } register_shutdown_signals (); mainloop (); } else { GdkPixbuf* pixbuf = load_icon("icon_pan.png"); GtkWidget * window = gtk_window_new (GTK_WINDOW_TOPLEVEL); if (prefs.get_flag ("main-window-is-maximized", false)) gtk_window_maximize (GTK_WINDOW (window)); else gtk_window_unmaximize (GTK_WINDOW (window)); gtk_window_set_role (GTK_WINDOW(window), "pan-main-window"); prefs.set_window ("main-window", GTK_WINDOW(window), 100, 100, 900, 700); gtk_window_set_title (GTK_WINDOW(window), "Pan"); gtk_window_set_resizable (GTK_WINDOW(window), true); gtk_window_set_default_icon (pixbuf); gui_ptr = new GUI (data, queue, prefs, group_prefs); #ifdef HAVE_LIBNOTIFY if (!notify_is_initted ()) notify_init (_("Pan notification")); #endif run_pan_with_status_icon(GTK_WINDOW(window), pixbuf, queue, prefs, data, gui_ptr); g_object_unref (pixbuf); run_pan_in_window (gui_ptr, data, queue, prefs, group_prefs, GTK_WINDOW(window)); } // free status icons for (guint i=0; igkr_pw) { gcr_secure_memory_free(s->gkr_pw); } } } #endif } g_mime_shutdown (); Quark::dump (std::cerr); return EXIT_SUCCESS; } pan-0.162/pan/gui/pan.manifest.xml000066400000000000000000000006711475412772400167700ustar00rootroot00000000000000 false pan-0.162/pan/gui/pan.ui.h000066400000000000000000000241761475412772400152340ustar00rootroot00000000000000const char * fallback_ui_file = "\n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" #ifdef HAVE_GNUTLS " \n" #endif " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" #ifdef HAVE_MANUAL " \n" #endif " \n" " \n" " \n" " \n" " \n" " \n" "\n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" "\n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" "\n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" "\n" "\n"; pan-0.162/pan/gui/panrc.rc000066400000000000000000000030661475412772400153150ustar00rootroot00000000000000// Wormux resource for win32 target #include #include #include "config.h" #if ENABLE_NLS # define IS_NLS_ENABLED "yes" #else # define IS_NLS_ENABLED "no" #endif #ifndef VERSION_MAJOR #define VERSION_MAJOR 0 #endif #ifndef VERSION_MINOR #define VERSION_MINOR 0 #endif #ifndef VERSION_PATCH #define VERSION_PATCH 0 #endif #ifndef VERSION_TWEAK #define VERSION_TWEAK 0 #endif 1 VERSIONINFO FILEVERSION VERSION_MAJOR,VERSION_MINOR,VERSION_PATCH,VERSION_TWEAK PRODUCTVERSION VERSION_MAJOR,VERSION_MINOR,VERSION_PATCH,VERSION_TWEAK FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L #else FILEFLAGS 0x0L #endif FILEOS VOS__WINDOWS32 FILETYPE VFT_APP { BLOCK "StringFileInfo" { BLOCK "000004b0" { VALUE "Comments","Localization support: " IS_NLS_ENABLED "." VALUE "CompanyName", "\000" VALUE "FileDescription", "Pan Newsreader" VALUE "FileVersion", PACKAGE_VERSION VALUE "InternalName", "pan" VALUE "LegalCopyright", "Copyright (C) 2002-2024 Charles Kerr and others" VALUE "LegalTrademarks", "GPL 2" VALUE "OriginalFilename", "pan.exe" VALUE "ProductName", "pan" VALUE "ProductVersion", PACKAGE_VERSION VALUE "SpecialBuild", "Build date: " __DATE__ ", " __TIME__ " with compiler version " __VERSION__ } } BLOCK "VarFileInfo" { VALUE "Translation", 0x0, 1200 } } IDI_ICON1 ICON DISCARDABLE "../icons/Pan.ico" CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "pan.manifest.xml" pan-0.162/pan/gui/post-ui.cc000066400000000000000000003173551475412772400156040ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #include "post-ui.h" #include #include #include #include #include #include #include #include #include extern "C" { #include #include } #ifdef HAVE_GSPELL #include #endif #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "e-charset-dialog.h" #include "e-cte-dialog.h" #include "editor-spawner.h" #include "pad.h" #include "hig.h" #include "post.ui.h" #include "profiles-dialog.h" #include "url.h" #ifdef HAVE_GSPELL #define DEFAULT_SPELLCHECK_FLAG true #else #define DEFAULT_SPELLCHECK_FLAG false #endif using namespace pan; #define USER_AGENT_PREFS_KEY "add-user-agent-header-when-posting" #define MESSAGE_ID_PREFS_KEY "add-message-id-header-when-posting" namespace pan { #ifndef HAVE_CLOSE inline int close(int fd) {return _close(fd);} #endif bool remember_charsets (true); bool master_reply (true); bool gpg_enc (false); bool gpg_sign (true); bool user_has_gpg (false); void on_remember_charset_toggled (GtkToggleAction * toggle, gpointer) { remember_charsets = gtk_toggle_action_get_active (toggle); } void on_mr_toggled (GtkToggleAction * toggle, gpointer) { master_reply = gtk_toggle_action_get_active (toggle); } void on_enc_toggled (GtkToggleAction * toggle, gpointer post_g) { PostUI* self = static_cast(post_g); if (!self->_realized) return; gpg_enc = gtk_toggle_action_get_active (toggle); } void on_sign_toggled (GtkToggleAction * toggle, gpointer post_g) { PostUI* self = static_cast(post_g); if (!self->_realized) return; gpg_sign = gtk_toggle_action_get_active (toggle); } void on_spellcheck_toggled (GtkToggleAction * toggle, gpointer post_g) { const bool enabled = gtk_toggle_action_get_active (toggle); static_cast(post_g)->set_spellcheck_enabled (enabled); } } namespace { int find_task_index (GtkListStore * list, Task * task) { GtkTreeIter iter; int index (0); if (gtk_tree_model_get_iter_first (GTK_TREE_MODEL(list), &iter)) do { TaskUpload * test; gtk_tree_model_get (GTK_TREE_MODEL(list), &iter, 2, &test, -1); if (test == task) return index; ++index; } while (gtk_tree_model_iter_next (GTK_TREE_MODEL(list), &iter)); // not found return -1; } bool is_file_exist(const char *fileName) { std::ifstream infile(fileName); return infile.good(); } } /*** **** ***/ void PostUI:: update_filequeue_label (GtkTreeSelection *selection) { tasks_t tasks(get_selected_files()); if (tasks.empty()) { _upload_queue.get_all_tasks(tasks); } char str[512]; long kb(0); foreach (PostUI::tasks_t, tasks, it) { TaskUpload * task(dynamic_cast(*it)); if (task) { kb += task->_bytes / 1024; } } g_snprintf( str, sizeof(str), _("Upload queue: %llu tasks, %ld KB (~ %.2f MB) total."), tasks.size(), kb, kb / 1024.0f); gtk_label_set_text (GTK_LABEL(_filequeue_label), str); } /*** **** ***/ void PostUI :: on_queue_tasks_added (UploadQueue& queue, int index, int count) { _uploads += count; GtkListStore *store = GTK_LIST_STORE( gtk_tree_view_get_model(GTK_TREE_VIEW(_filequeue_store))); GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(_filequeue_store)); g_object_ref(model); gtk_tree_view_set_model(GTK_TREE_VIEW(_filequeue_store), nullptr); for (int i=0; i(_upload_queue[pos])); if (!task) continue; GtkTreeIter iter; gtk_list_store_insert (store, &iter, pos); float size = task->_bytes/1024.0f; char numbuf[256]; g_snprintf(numbuf,sizeof(numbuf), "%.2f", size); gtk_list_store_set (store, &iter, 0, pos+1, 1, task->_subject.c_str(), 2, task, 3, numbuf, -1); } gtk_tree_view_set_model(GTK_TREE_VIEW(_filequeue_store), model); g_object_unref(model); update_filequeue_label(); } void PostUI :: on_queue_task_removed (UploadQueue&, Task& task, int index) { --_uploads; if (_uploads == 0) _file_queue_empty = true; GtkListStore *store = GTK_LIST_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(_filequeue_store))); const int list_index (find_task_index (store, &task)); assert (list_index == index); GtkTreeIter iter; gtk_tree_model_iter_nth_child (GTK_TREE_MODEL(store), &iter, nullptr, index); gtk_list_store_remove (store, &iter); update_filequeue_label(); } void PostUI :: on_queue_task_moved (UploadQueue&, Task&, int new_index, int old_index) { GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(_filequeue_store)); GtkListStore* store = GTK_LIST_STORE(model); const int count (gtk_tree_model_iter_n_children (model, nullptr)); std::vector v (count); for (int i=0; i(p)->root())); } void do_cut (GtkAction*, gpointer p) { g_signal_emit_by_name (get_focus(p), "cut_clipboard"); } void do_copy (GtkAction*, gpointer p) { g_signal_emit_by_name (get_focus(p), "copy_clipboard"); } void do_paste (GtkAction*, gpointer p) { g_signal_emit_by_name (get_focus(p), "paste_clipboard"); } void do_rot13 (GtkAction*, gpointer p) { static_cast(p)->rot13_selection(); } void do_save_upload (GtkAction*, gpointer p) { static_cast(p)->rot13_selection(); } void do_edit (GtkAction*, gpointer p) { static_cast(p)->spawn_editor (); } void do_profiles (GtkAction*, gpointer p) { static_cast(p)->manage_profiles (); } void do_send (GtkAction*, gpointer p) { static_cast(p)->send_now (); } void do_send_and_save (GtkAction*, gpointer p) { static_cast(p)->send_and_save_now (); } void do_save (GtkAction*, gpointer p) { static_cast(p)->save_draft (); } void do_open (GtkAction*, gpointer p) { static_cast(p)->open_draft (); } void do_charset (GtkAction*, gpointer p) { static_cast(p)->prompt_for_charset (); } void do_cte (GtkAction*, gpointer p) { static_cast(p)->prompt_for_cte (); } void do_close (GtkAction*, gpointer p) { static_cast(p)->close_window (false); } void do_wrap (GtkToggleAction * w, gpointer p) { static_cast(p)->set_wrap_mode (gtk_toggle_action_get_active (w)); } void do_edit2 (GtkToggleAction * w, gpointer p) { static_cast(p)->set_always_run_editor (gtk_toggle_action_get_active (w)); } void do_wrap_selected(GtkAction*, gpointer p) { static_cast(p)->wrap_selection(); } void do_add_files (GtkAction*, gpointer p) {static_cast(p)->add_files(); } GtkActionEntry entries[] = { { "file-menu", nullptr, N_("_File"), nullptr, nullptr, nullptr }, { "edit-menu", nullptr, N_("_Edit"), nullptr, nullptr, nullptr }, { "profile-menu", nullptr, N_("_Profile"), nullptr, nullptr, nullptr }, { "editors-menu", nullptr, N_("Set Editor"), nullptr, nullptr, nullptr }, { "post-toolbar", nullptr, "post", nullptr, nullptr, nullptr }, { "post-article", GTK_STOCK_EXECUTE, N_("_Send Article"), "Return", N_("Send Article Now"), G_CALLBACK(do_send) }, { "post-and-save-articles", GTK_STOCK_FLOPPY, N_("_Send and Save Articles to NZB"), nullptr, N_("Send and Save Articles to NZB"), G_CALLBACK(do_send_and_save) }, { "set-charset", nullptr, N_("Set Character _Encoding..."), nullptr, nullptr, G_CALLBACK(do_charset) }, { "set-encoding", nullptr, N_("Set Content _Transfer Encoding..."), nullptr, nullptr, G_CALLBACK(do_cte) }, { "save-draft", GTK_STOCK_SAVE, N_("Sa_ve Draft"), "s", N_("Save as a Draft for Future Posting"), G_CALLBACK(do_save) }, { "open-draft", GTK_STOCK_OPEN, N_("_Open Draft..."), "o", N_("Open an Article Draft"), G_CALLBACK(do_open) }, { "close", GTK_STOCK_CLOSE, nullptr, nullptr, nullptr, G_CALLBACK(do_close) }, { "cut", GTK_STOCK_CUT, nullptr, nullptr, nullptr, G_CALLBACK(do_cut) }, { "copy", GTK_STOCK_COPY, nullptr, nullptr, nullptr, G_CALLBACK(do_copy) }, { "paste", GTK_STOCK_PASTE, nullptr, nullptr, nullptr, G_CALLBACK(do_paste) }, { "rot13", GTK_STOCK_REFRESH, N_("_Rot13"), "r", N_("Rot13 Selected Text"), G_CALLBACK(do_rot13) }, { "run-editor", GTK_STOCK_JUMP_TO, N_("Run _Editor"), "e", N_("Run Editor"), G_CALLBACK(do_edit) }, { "manage-profiles", GTK_STOCK_EDIT, N_("Edit P_osting Profiles"), nullptr, nullptr, G_CALLBACK(do_profiles) }, { "add-files", GTK_STOCK_ADD, N_("Add _Files to Queue"), "O", N_("Add Files to Queue"), G_CALLBACK(do_add_files) }, }; void do_remove_files (GtkAction*, gpointer p) {static_cast(p)->remove_files(); } void do_clear_list (GtkAction*, gpointer p) { static_cast(p)->clear_list(); } void do_select_parts (GtkAction*, gpointer p) { static_cast(p)->select_parts(); } void do_move_up (GtkAction*, gpointer p) { static_cast(p)->move_up(); } void do_move_down (GtkAction*, gpointer p) { static_cast(p)->move_down(); } void do_move_top (GtkAction*, gpointer p) { static_cast(p)->move_top(); } void do_move_bottom (GtkAction*, gpointer p) { static_cast(p)->move_bottom(); } GtkActionEntry filequeue_popup_entries[] = { { "remove-files", "Delete", N_("Remove from Queue"), nullptr, N_("Remove from Queue"), G_CALLBACK(do_remove_files) }, { "clear-list", nullptr, N_("Clear List"), "", N_("Clear List"), G_CALLBACK(do_clear_list) }, { "select-parts", nullptr, N_("Select Needed Parts"), "", N_("Select Needed Parts"), G_CALLBACK(do_select_parts) }, { "move-up", nullptr, N_("Move Up"), "", N_("Move Up"), G_CALLBACK(do_move_up) }, { "move-down", nullptr, N_("Move Down"), "", N_("Move Down"), G_CALLBACK(do_move_down) }, { "move-top", nullptr, N_("Move to Top"), "", N_("Move to Top"), G_CALLBACK(do_move_top) }, { "move-bottom", nullptr, N_("Move to Bottom"), "", N_("Move to Bottom"), G_CALLBACK(do_move_bottom) } }; const GtkToggleActionEntry toggle_entries[] = { { "wrap", GTK_STOCK_JUSTIFY_FILL, N_("_Wrap Text"), nullptr, N_("Wrap Text"), G_CALLBACK(do_wrap), true }, { "always-run-editor", nullptr, N_("Always Run Editor"), nullptr, nullptr, G_CALLBACK(do_edit2), false }, { "remember-charset", nullptr, N_("Remember Character Encoding for This Group"), nullptr, nullptr, G_CALLBACK(on_remember_charset_toggled), true }, { "master-reply", nullptr, N_("Thread Attached Replies"), nullptr, nullptr, G_CALLBACK(on_mr_toggled), true }, { "gpg-encrypt", nullptr, N_("PGP-Encrypt the Article"), nullptr, nullptr, G_CALLBACK(on_enc_toggled), false }, { "gpg-sign", nullptr, N_("PGP-Sign the Article"), nullptr, nullptr, G_CALLBACK(on_sign_toggled), false }, { "spellcheck", nullptr, N_("Check _Spelling"), nullptr, nullptr, G_CALLBACK(on_spellcheck_toggled), true } }; void add_widget (GtkUIManager*, GtkWidget* widget, gpointer vbox) { gtk_box_pack_start (GTK_BOX(vbox), widget, false, false, 0); } } #undef DEFAULT_CHARSET #define DEFAULT_CHARSET "UTF-8" void PostUI :: prompt_for_charset () { if (_charset.empty()) _charset = DEFAULT_CHARSET; char * tmp = e_charset_dialog (_("Character Encoding"), _("New Article's Encoding:"), _charset.c_str(), GTK_WINDOW(root())); set_charset (tmp); free (tmp); } void PostUI :: prompt_for_cte () { GMimeContentEncoding enc = e_cte_dialog (_("Content Transfer Encoding"), _("New Article's Content Transfer Encoding:"), _enc, GTK_WINDOW(root())); _enc = enc; } void PostUI:: do_popup_menu (GtkWidget *treeview, GdkEventButton *event, gpointer userdata) { PostUI * self (static_cast(userdata)); GtkWidget * menu (gtk_ui_manager_get_widget (self->_uim, "/filequeue-popup")); gtk_menu_popup (GTK_MENU(menu), nullptr, nullptr, nullptr, nullptr, (event ? event->button : 0), (event ? event->time : 0)); } namespace { gboolean on_popup_menu (GtkWidget * treeview, gpointer userdata) { PostUI::do_popup_menu (treeview, nullptr, userdata); return true; } } gboolean PostUI :: on_selection_changed (GtkTreeSelection *s,gpointer p) { static_cast(p)->update_filequeue_label(); return false; } gboolean PostUI :: on_button_pressed (GtkWidget *treeview, GdkEventButton *event, gpointer userdata) { if (event->type == GDK_BUTTON_PRESS ) { GtkTreeSelection *selection; selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview)); if ( event->button == 3) { if (gtk_tree_selection_count_selected_rows(selection) <= 1) { GtkTreePath *path; /* Get tree path for row that was clicked */ if (gtk_tree_view_get_path_at_pos(GTK_TREE_VIEW(treeview), (gint) event->x, (gint) event->y, &path, nullptr, nullptr, nullptr)) { gtk_tree_selection_unselect_all(selection); gtk_tree_selection_select_path(selection, path); gtk_tree_path_free(path); } } do_popup_menu(treeview, event, userdata); return true; } } return false; } void PostUI :: add_actions (GtkWidget * box) { _uim = gtk_ui_manager_new (); // read the file... char * filename = g_build_filename (file::get_pan_home().c_str(), "post.ui", nullptr); GError * err (nullptr); if (!gtk_ui_manager_add_ui_from_file (_uim, filename, &err)) { g_clear_error (&err); gtk_ui_manager_add_ui_from_string (_uim, fallback_post_ui, -1, &err); } if (err) { Log::add_err_va (_("Error reading file \"%s\": %s"), filename, err->message); g_clear_error (&err); } g_free (filename); g_signal_connect (_uim, "add_widget", G_CALLBACK(add_widget), box); // add the actions... _agroup = gtk_action_group_new ("post"); gtk_action_group_set_translation_domain (_agroup, nullptr); gtk_action_group_add_actions (_agroup, entries, G_N_ELEMENTS(entries), this); gtk_action_group_add_toggle_actions (_agroup, toggle_entries, G_N_ELEMENTS(toggle_entries), this); gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (gtk_action_group_get_action (_agroup, "always-run-editor")), _prefs.get_flag ("always-run-editor", false)); gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (gtk_action_group_get_action (_agroup, "spellcheck")), _prefs.get_flag ("spellcheck-enabled", DEFAULT_SPELLCHECK_FLAG)); gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (gtk_action_group_get_action (_agroup, "wrap")), _prefs.get_flag ("compose-wrap-enabled", true)); //add popup actions gtk_action_group_add_actions (_agroup, filequeue_popup_entries, G_N_ELEMENTS(filequeue_popup_entries), this); gtk_ui_manager_insert_action_group (_uim, _agroup, 0); gtk_action_group_set_sensitive(_agroup, true); //Remember the spawn button _spawner_action = gtk_action_group_get_action(_agroup, "run-editor"); } void PostUI :: set_charset (const StringView& charset) { _charset = charset; } void PostUI :: manage_profiles () { ProfilesDialog d (_data, _profiles, GTK_WINDOW(_root)); gtk_dialog_run (GTK_DIALOG(d.root())); gtk_widget_destroy (d.root()); update_profile_combobox (); apply_profile (); } void PostUI :: rot13_selection () { GtkTextIter start, end; if (gtk_text_buffer_get_selection_bounds (_body_buf, &start, &end)) { char * str (gtk_text_buffer_get_text (_body_buf, &start, &end, false)); _tm.rot13_inplace (str); gtk_text_buffer_delete (_body_buf, &start, &end); gtk_text_buffer_insert (_body_buf, &start, str, strlen(str)); g_free (str); } } void PostUI :: wrap_selection () { GtkTextIter start, end; if (gtk_text_buffer_get_selection_bounds (_body_buf, &start, &end)) { char * str (gtk_text_buffer_get_text (_body_buf, &start, &end, false)); std::string s(str); s = _tm.fill(s); gtk_text_buffer_delete (_body_buf, &start, &end); gtk_text_buffer_insert (_body_buf, &start, s.c_str(), s.length() ); g_free (str); } } namespace { gboolean delete_event_cb (GtkWidget*, GdkEvent*, gpointer user_data) { static_cast(user_data)->close_window (false); return true; // don't invoke the default handler that destroys the widget } gboolean delete_parts_cb (GtkWidget* w, GdkEvent*, gpointer user_data) { return false; } } void PostUI :: close_window (bool flag) { bool destroy_flag (flag); if (get_body() == _unchanged_body) destroy_flag = true; if (!destroy_flag) { GtkWidget * d = gtk_message_dialog_new ( GTK_WINDOW(_root), GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_QUESTION, GTK_BUTTONS_NONE, nullptr); HIG :: message_dialog_set_text (GTK_MESSAGE_DIALOG(d), _("Your changes will be lost!"), _("Close this window and lose your changes?")); gtk_dialog_add_buttons (GTK_DIALOG(d), GTK_STOCK_GO_BACK, GTK_RESPONSE_NO, GTK_STOCK_CLOSE, GTK_RESPONSE_CLOSE, nullptr); gtk_dialog_set_default_response (GTK_DIALOG(d), GTK_RESPONSE_NO); destroy_flag = gtk_dialog_run (GTK_DIALOG(d)) == GTK_RESPONSE_CLOSE; gtk_widget_destroy (d); } int w(450),h(450); gtk_window_get_size( GTK_WINDOW(_root), &w, &h); _prefs.set_int("post-ui-width", w); _prefs.set_int("post-ui-height", h); if (destroy_flag) gtk_widget_destroy (_root); } bool PostUI :: check_message (const Quark& server, GMimeMessage * msg, bool binpost) { MessageCheck :: unique_strings_t errors; MessageCheck :: Goodness goodness; quarks_t groups_this_server_has; _gs.server_get_groups (server, groups_this_server_has); /* skip some checks if the file queue is not empty or if the binpost flag is set, i.e. we want to upload binary data */ MessageCheck :: message_check (msg, _hidden_headers["X-Draft-Attribution"], groups_this_server_has, errors, goodness, !_file_queue_empty || binpost); if (goodness.is_ok()) return true; std::string s; foreach_const (MessageCheck::unique_strings_t, errors, it) s += *it + "\n"; s.resize (s.size()-1); // eat trailing linefeed const GtkMessageType type (goodness.is_refuse() ? GTK_MESSAGE_ERROR : GTK_MESSAGE_WARNING); GtkWidget * d = gtk_message_dialog_new (GTK_WINDOW(_root), GTK_DIALOG_DESTROY_WITH_PARENT, type, GTK_BUTTONS_NONE, nullptr); HIG :: message_dialog_set_text (GTK_MESSAGE_DIALOG(d), _("There were problems with this post."), s.c_str()); gtk_dialog_add_button (GTK_DIALOG(d), _("Go Back"), GTK_RESPONSE_CANCEL); if (goodness.is_warn()) gtk_dialog_add_button (GTK_DIALOG(d), _("Continue Anyway"), GTK_RESPONSE_APPLY); const int response = gtk_dialog_run (GTK_DIALOG(d)); gtk_widget_destroy (d); return response == GTK_RESPONSE_APPLY; } bool PostUI :: check_charset () { const std::string charset (!_charset.empty() ? _charset : "UTF-8"); // GtkTextBuffer is in UTF-8, so posting in UTF-8 is ok if (charset == "UTF-8") return true; // Check if body can be posted in the selected charset const std::string body (get_body ()); char *tmp = g_convert (body.c_str(), -1, charset.c_str(), "UTF-8", nullptr, nullptr, nullptr); if (tmp) { g_free(tmp); return true; } // Wrong charset. Let GMime guess the best charset. const char * best_charset = g_mime_charset_best (body.c_str(), strlen (body.c_str())); if (best_charset == nullptr) best_charset = "ISO-8859-1"; // GMime reports (some) charsets in lower case. Pan always uses uppercase. tmp = g_ascii_strup (best_charset, -1); // Prompt the user char * msg = g_strdup_printf (_("Message uses characters not specified in charset '%s' - possibly use '%s' "), charset.c_str(), tmp); GtkWidget * d = gtk_message_dialog_new (GTK_WINDOW(_root), GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_ERROR, GTK_BUTTONS_NONE, nullptr); HIG :: message_dialog_set_text (GTK_MESSAGE_DIALOG(d), _("There were problems with this post."), msg); gtk_dialog_add_button (GTK_DIALOG(d), _("Go Back"), GTK_RESPONSE_CANCEL); gtk_dialog_run (GTK_DIALOG(d)); gtk_widget_destroy (d); g_free (tmp); g_free (msg); return false; } namespace { GtkWidget * new_go_online_button () { GtkWidget * button = gtk_button_new (); GtkWidget * label = gtk_label_new_with_mnemonic (_("Go _Online")); GtkWidget * image = gtk_image_new_from_stock (GTK_STOCK_NETWORK, GTK_ICON_SIZE_BUTTON); GtkWidget * hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 2); GtkWidget * align = gtk_alignment_new (0.5, 0.5, 0.0, 0.0); gtk_box_pack_start (GTK_BOX (hbox), image, false, false, 0); gtk_box_pack_end (GTK_BOX (hbox), label, false, false, 0); gtk_container_add (GTK_CONTAINER (align), hbox); gtk_container_add (GTK_CONTAINER (button), align); gtk_widget_show_all (button); return button; } } void PostUI :: add_files () { if (!check_charset()) return; prompt_user_for_queueable_files (GTK_WINDOW (gtk_widget_get_toplevel(_root)), _prefs); } void PostUI :: send_now () { if (!check_charset()) return; GMimeMessage * message (new_message_from_ui (POSTING)); if (!maybe_post_message (message)) g_object_unref (G_OBJECT(message)); } void PostUI :: send_and_save_now () { tasks_t tasks; _upload_queue.get_all_tasks(tasks); if (!check_charset()) return; if (_file_queue_empty) { GtkWidget * d = gtk_message_dialog_new (GTK_WINDOW(_root), GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_ERROR, GTK_BUTTONS_NONE, nullptr); HIG :: message_dialog_set_text (GTK_MESSAGE_DIALOG(d), _("The file queue is empty, so no files can be saved."),""); gtk_dialog_add_button (GTK_DIALOG(d), _("Go Back"), GTK_RESPONSE_CANCEL); gtk_dialog_run(GTK_DIALOG(d)); gtk_widget_destroy(d); return; } else _save_file = prompt_user_for_upload_nzb_dir (GTK_WINDOW(_root), _prefs); // no file chosen, abort if (_save_file.empty()) return; // else, start upload (and update tasks' data) GMimeMessage * message (new_message_from_ui (UPLOADING)); if (!maybe_post_message (message)) g_object_unref (G_OBJECT(message)); } void PostUI :: done_sending_message (GMimeMessage * message, bool ok) { if (ok) { _unchanged_body = get_body (); close_window (true); } g_object_unref (G_OBJECT(message)); } namespace { // http://www.rfc-editor.org/rfc/rfc1738.txt std::string encode (const StringView& in) { static std::set keep; if (keep.empty()) { for (int i='0'; i<='9'; ++i) keep.insert(i); // always okay for (int i='a'; i<='z'; ++i) keep.insert(i); // always okay for (int i='A'; i<='Z'; ++i) keep.insert(i); // always okay for (const char *pch="$-_.+!*'(),"; *pch; ++pch) keep.insert(*pch); // okay in the right context for (const char *pch="$&+,/:;=?@"; *pch; ++pch) keep.erase(*pch); // reserved for (const char *pch="()"; *pch; ++pch) keep.erase(*pch); // gives thunderbird problems? } std::string out; foreach_const (StringView, in, pch) { if (keep.count(*pch)) out += *pch; else { unsigned char uc = (unsigned char)*pch; char buf[8]; g_snprintf (buf, sizeof(buf), "%%%02x", (int)uc); out += buf; } } return out; } } void PostUI :: maybe_mail_message (GMimeMessage * message) { std::string url, to, groups; gboolean unused; char * headers (g_mime_object_get_headers ((GMimeObject *) message, nullptr)); char * body (pan_g_mime_message_get_body (message, &unused)); StringView key, val, v(headers); v.trim (); while (v.pop_token (val, '\n') && val.pop_token(key,':')) { key.trim (); val.eat_chars (1); val.trim (); std::string key_enc (encode (key)); std::string val_enc (encode (val)); if (key == "To") to = val_enc; else if (key == "Newsgroups") groups = val; else if (key!="User-Agent" && key!="Mime-Version" && key!="Content-Type") { url += '&'; url += key_enc; url += '='; url += val_enc; } } if (!groups.empty()) { char * pch = g_strdup_printf ("[This mail was also posted to %s.]\n\n%s", groups.c_str(), body); g_free (body); body = pch; } url += std::string("&body=") + encode(body); url[0] = '?'; url = std::string("mailto:") + to + url; if (!to.empty()) URL :: open (_prefs, url.c_str(), URL::MAIL); done_sending_message (message, true); g_free (body); g_free (headers); } void PostUI :: on_progress_finished (Progress&, int status) // posting finished { if (status==-1) { --_running_uploads; return; } if (_file_queue_empty) { _post_task->remove_listener (this); GMimeMessage * message (_post_task->get_message ()); if (status != OK) // error posting.. stop. done_sending_message (message, false); else maybe_mail_message (message); } else { --_running_uploads; int no = status; TaskUpload * ptr = dynamic_cast(_upload_queue[no]); if (!_save_file.empty()) { mut.lock(); if (ptr) NZB :: upload_list_to_xml_file (_out, ptr->_upload_list); if (_running_uploads==0 ) { NZB::print_footer(_out); _out.close(); } mut.unlock(); } if (_running_uploads==0) close_window(true); } } std::string PostUI::generate_message_id (const Profile& p) { return !p.fqdn.empty() ? GNKSA::generate_message_id (p.fqdn) : GNKSA::generate_message_id_from_email_address (p.address); } bool PostUI :: save_message_in_local_folder(const Mode& mode, const std::string& folder) { // the following message is constructed solely for the purpose of adding the current message to // a local folder of pan GMimeMessage* msg = new_message_from_ui(VIRTUAL); Profile p(get_current_profile()); //domain name std::string mid = generate_message_id(p); std::string author; p.get_from_header(author); std::string subject(utf8ize (g_mime_message_get_subject (msg))); const char * refs = g_mime_object_get_header(GMIME_OBJECT(msg), "References"); g_mime_object_set_header((GMimeObject *) msg, "Newsgroups", folder.c_str(), nullptr); // pseudo mid to get data from cache std::string message_id = pan_g_mime_message_set_message_id(msg, mid.c_str()); std::stringstream xref; time_t posted = time(nullptr); // use posted as article number, this is unique anyway xref << folder << ":"<max_connections == 0) error_msg = _("The selected posting server is currently disabled. Please choose an appropriate alternative."); if (!error_msg.empty()) { GtkWidget * d = gtk_message_dialog_new ( GTK_WINDOW(_root), GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, "%s", error_msg.c_str()); gtk_dialog_run (GTK_DIALOG(d)); gtk_widget_destroy (d); return false; } /** *** Make sure the message is OK... **/ if (!check_message (server, message, !_file_queue_empty)) return false; /** *** If this is email only, skip the rest of the posting... *** we only stayed this long to get check_message() **/ const StringView groups (g_mime_object_get_header ((GMimeObject *) message, "Newsgroups")); if (groups.empty() && _file_queue_empty) { maybe_mail_message (message); return true; } g_object_unref(message); /** *** Make sure we're online... **/ if (!_queue.is_online()) { GtkWidget * d = gtk_message_dialog_new (GTK_WINDOW(_root), GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_QUESTION, GTK_BUTTONS_NONE, nullptr); HIG :: message_dialog_set_text (GTK_MESSAGE_DIALOG(d), _("Pan is Offline."), _("Go online to post the article?")); gtk_dialog_add_button (GTK_DIALOG(d), GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL); gtk_dialog_add_action_widget (GTK_DIALOG(d), new_go_online_button(), GTK_RESPONSE_OK); const int response = gtk_dialog_run (GTK_DIALOG(d)); gtk_widget_destroy (d); if (response != GTK_RESPONSE_OK) return false; _queue.set_online (true); } //TODO implement callback!! gtk_widget_hide (_root); save_message_in_local_folder(POSTING, "Sent"); GMimeMessage* msg = new_message_from_ui(POSTING); if(_file_queue_empty) { bool go_on(true); #ifdef HAVE_GMIME_CRYPTO /* adding yourself to the list of recipients */ GPtrArray * rcp; if (user_has_gpg) { rcp = g_ptr_array_new(); g_ptr_array_add(rcp, (gpointer)p.gpg_sig_uid.c_str()); } if (user_has_gpg) { if (gpg_sign && !gpg_enc) go_on = go_on && message_add_signed_part(p.gpg_sig_uid, get_body(), msg); else if (user_has_gpg && gpg_enc && !gpg_sign) go_on = go_on && gpg_encrypt(p.gpg_sig_uid, get_body(), msg, rcp, false); else if (user_has_gpg && gpg_enc && gpg_sign) go_on = go_on && gpg_encrypt(p.gpg_sig_uid, get_body(), msg, rcp, true); } #endif if (go_on) { _post_task = new TaskPost (server, msg); _post_task->add_listener (this); _queue.add_task (_post_task, Queue::TOP); } else { if (user_has_gpg) Log::add_err_va(_("Error signing/encrypting your message. Perhaps you misspelled your email address (%s)?"),p.gpg_sig_uid.c_str()); } } else { // prepend header for xml file (if one was chosen) if (!_save_file.empty()) { _out.open(_save_file.c_str(), std::fstream::out | std::fstream::app); NZB::print_header(_out); } std::vector tasks; _upload_queue.get_all_tasks(tasks); _running_uploads = tasks.size(); if (master_reply) ++_running_uploads; // generate domain name for upload if the flag is set / a save-file is set bool custom_mid(_prefs.get_flag(MESSAGE_ID_PREFS_KEY,false) || !_save_file.empty()); std::string last_mid; std::string first_mid; Article a; TaskUpload * tmp (dynamic_cast(tasks[0])); if (tmp) a = tmp->_article; if (master_reply) { // master article, other attachments are threaded as replies to this const Profile profile (get_current_profile ()); first_mid = generate_message_id(p); TaskUpload::UploadInfo f; f.total=1; f.bpf = _prefs.get_int("upload-option-bpf",512*1024); TaskUpload::Needed n; n.mid = first_mid; { TaskUpload * tmp = new TaskUpload(a.subject.to_string(),profile.posting_server,_cache,a,f,msg); tmp->_needed.insert(std::pair(1,n)); tmp->_queue_pos = -1; _queue.add_task (tmp, Queue::BOTTOM); tmp->add_listener(this); } } else { g_object_unref(G_OBJECT(msg)); } /* init taskupload variables before adding the tasks to the queue for processing */ char buf[2048]; int cnt(0); foreach (PostUI::tasks_t, tasks, it) { TaskUpload * t (dynamic_cast(*it)); const char* basename = t->_basename.c_str(); TaskUpload::Needed n; foreach (std::set, t->_wanted, pit) { if (custom_mid) { n.mid = generate_message_id(p); if (first_mid.empty()) first_mid = n.mid; } g_snprintf(buf,sizeof(buf),"%s.%d", basename, *pit); n.message_id = buf; n.partno = *pit; n.last_mid = last_mid; t->_first_mid = first_mid; last_mid = n.mid; t->_needed.insert(std::pair(*pit,n)); } t->build_needed_tasks(); t->_save_file = _save_file; t->_queue_pos = cnt++; _queue.add_task (*it, Queue::BOTTOM); t->add_listener(this); } } /** *** Maybe remember the charsets. **/ if (remember_charsets) { const char * text = gtk_entry_get_text (GTK_ENTRY(_groups_entry)); StringView line(text), groupname; while (line.pop_token (groupname, ',')) { groupname.trim (); if (!groupname.empty()) _group_prefs.set_string (groupname, "character-encoding", _charset); } } return true; } /*** **** ***/ namespace { class Destroyer { public: Destroyer(char *f) : _fname(f) { } ~Destroyer() { g_free(_fname); } void retain() { _fname = nullptr; } private: char *_fname; }; } void PostUI :: spawn_editor () { //Protect against bouncy keypresses if (not gtk_action_get_sensitive(_spawner_action)) { return; } // open a new tmp file char * fname (nullptr); { GError * err = nullptr; const int fd (g_file_open_tmp ("pan_edit_XXXXXX", &fname, &err)); if (fd == -1) { Log::add_err (err && err->message ? err->message : _("Error opening temporary file")); g_clear_error (&err); return; } close(fd); } Destroyer d(fname); FILE *fp = fopen (fname, "w"); if (fp == nullptr) { Log::add_err_va (_("Error creating temporary file: %s"), g_strerror(errno)); return; } const std::string body (get_body ()); if (fwrite (body.c_str(), sizeof(char), body.size(), fp) != body.size()) { fclose(fp); Log::add_err_va (_("Error writing article to temporary file: %s"), g_strerror(errno)); return; } fclose(fp); try { using namespace std::placeholders; _spawner.reset( new EditorSpawner(fname, std::bind(&PostUI::spawn_editor_dead, this, _1, _2), _prefs)); d.retain(); gtk_action_set_sensitive(_spawner_action, false); } catch (EditorSpawnerError const &) { //Do nothing. There should be a big red exclamation on the status line } } void PostUI::spawn_editor_dead(int status, char *fname) { GtkTextBuffer * buf(_body_buf); if (buf) { // read the file contents back in std::string txt; if (file::get_text_file_contents(fname, txt)) { GtkTextIter start, end; gtk_text_buffer_get_bounds(buf, &start, &end); gtk_text_buffer_delete(buf, &start, &end); gtk_text_buffer_insert(buf, &start, txt.c_str(), txt.size()); } } // cleanup ::remove(fname); g_free(fname); gtk_action_set_sensitive(_spawner_action, true); _spawner.reset(); gtk_window_present(GTK_WINDOW(root())); } namespace { std::string& get_draft_filename () { static std::string fname; if (fname.empty()) { fname = file::get_pan_home (); char * pch = g_build_filename (fname.c_str(), "article-drafts", nullptr); file :: ensure_dir_exists (pch); fname = pch; g_free (pch); } return fname; } } void PostUI :: open_draft () { GtkWidget * d = gtk_file_chooser_dialog_new (_("Open Draft Article"), GTK_WINDOW(_root), GTK_FILE_CHOOSER_ACTION_OPEN, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT, nullptr); std::string& draft_filename (get_draft_filename ()); if (g_file_test (draft_filename.c_str(), G_FILE_TEST_IS_DIR)) gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER(d), draft_filename.c_str()); else gtk_file_chooser_set_filename (GTK_FILE_CHOOSER(d), draft_filename.c_str()); if (gtk_dialog_run(GTK_DIALOG(d)) == GTK_RESPONSE_ACCEPT) { char * pch = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER(d)); draft_filename = pch; g_free (pch); std::string txt; if (file :: get_text_file_contents (draft_filename, txt)) { GMimeStream * stream = g_mime_stream_mem_new_with_buffer (txt.c_str(), txt.size()); GMimeParser * parser = g_mime_parser_new_with_stream (stream); GMimeMessage * message = g_mime_parser_construct_message (parser, nullptr); if (message) { set_message (message); g_object_unref (G_OBJECT(message)); } g_object_unref (G_OBJECT(parser)); g_object_unref (G_OBJECT(stream)); } } gtk_widget_destroy (d); } void PostUI :: import_draft (const char* fn) { // const char * draft = fn; // std::string txt; // if (file :: get_text_file_contents (draft, txt)) // { // GMimeStream * stream = g_mime_stream_mem_new_with_buffer (txt.c_str(), txt.size()); // GMimeParser * parser = g_mime_parser_new_with_stream (stream); // GMimeMessage * message = g_mime_parser_construct_message (parser); // if (message) { // set_message (message); // g_object_unref (G_OBJECT(message)); // } // g_object_unref (G_OBJECT(parser)); // g_object_unref (G_OBJECT(stream)); // } } namespace { const char * get_user_agent () { #ifdef GIT_REV return "Pan/" PACKAGE_VERSION " (" VERSION_TITLE "; " GIT_REV ")"; #else return "Pan/" PACKAGE_VERSION " (" VERSION_TITLE ")"; #endif } bool header_has_dedicated_entry (const StringView& name) { return (name == "Subject") || (name == "Newsgroups") || (name == "To") || (name == "From") || (name == "Followup-To") || (name == "Reply-To"); } bool extra_header_is_editable (const StringView& name, const StringView& value) { const bool keep = !name.empty() // make sure header exists && (!header_has_dedicated_entry (name)) // not an extra header && (name != "Xref") // not editable && (name != "Message-ID") && (name != "References") && ((name != "User-Agent") || (value != get_user_agent())) && (name.strstr ("Content-") != name.str) && (name.strstr ("X-Draft-") != name.str); return keep; } } GMimeMessage* PostUI :: new_message_from_ui (Mode mode, bool copy_body) { GMimeMessage * msg(nullptr); msg = g_mime_message_new (true); const char * charset_cstr = _charset.c_str(); // headers from the ui: From const Profile profile (get_current_profile ()); std::string s; profile.get_from_header (s); g_mime_message_add_mailbox (msg, GMIME_ADDRESS_TYPE_FROM, profile.username.c_str(), profile.address.c_str()); // headers from the ui: Subject const char * cpch (gtk_entry_get_text (GTK_ENTRY(_subject_entry))); if (cpch) { g_mime_message_set_subject (msg, cpch, charset_cstr); } // headers from the ui: To const StringView to (gtk_entry_get_text (GTK_ENTRY(_to_entry))); if (!to.empty()) pan_g_mime_message_add_recipients_from_string (msg, GMIME_ADDRESS_TYPE_TO, to.str); // headers from the ui: Newsgroups const StringView groups (gtk_entry_get_text (GTK_ENTRY(_groups_entry))); if (!groups.empty()) g_mime_object_set_header ((GMimeObject *) msg, "Newsgroups", groups.str, charset_cstr); // headers from the ui: Followup-To const StringView followupto (gtk_entry_get_text (GTK_ENTRY(_followupto_entry))); if (!followupto.empty()) g_mime_object_set_header ((GMimeObject *) msg, "Followup-To", followupto.str, charset_cstr); // headers from the ui: Reply-To const StringView replyto (gtk_entry_get_text (GTK_ENTRY(_replyto_entry))); if (!replyto.empty()) g_mime_object_set_header ((GMimeObject *) msg, "Reply-To", replyto.str, charset_cstr); // headers from posting profile (via prefs): Face if (!profile.face.empty()) { std::string f; f += profile.face; // GMIME_FOLD_BASE64_INTERVAL - 6: Accounting for 'Face: ' beginning of header for (int i = GMIME_FOLD_BASE64_INTERVAL - 6; i < f.length(); i += GMIME_FOLD_BASE64_INTERVAL) { f.insert (i, " "); } g_mime_object_set_header ((GMimeObject *) msg, "Face", f.c_str(), charset_cstr); } // headers from posting profile(via prefs): X-Face if (!profile.xface.empty()) { std::string f; f += profile.xface; // GMIME_FOLD_INTERVAL - 8: Accounting for 'X-Face: ' beginning of header for(int i = GMIME_FOLD_INTERVAL - 8; i < f.length(); i += GMIME_FOLD_INTERVAL) { f.insert(i, " "); } g_mime_object_set_header ((GMimeObject *) msg, "X-Face", f.c_str(), charset_cstr); } // add the 'hidden headers' (references) const gchar * h_key_str; foreach_const (str2str_t, _hidden_headers, it) if ((mode==DRAFTING) || (it->first.find ("X-Draft-")!=0)) { h_key_str = it->first.c_str(); if ( g_ascii_strncasecmp (h_key_str, "Content", 7) ) { g_mime_object_set_header ((GMimeObject *) msg, it->first.c_str(), it->second.c_str(), charset_cstr); } } // build headers from the 'more headers' entry field std::map headers; GtkTextBuffer * buf (_headers_buf); GtkTextIter start, end; gtk_text_buffer_get_bounds (buf, &start, &end); char * pch = gtk_text_buffer_get_text (buf, &start, &end, false); StringView key, val, v(pch); v.trim (); while (v.pop_token (val, '\n') && val.pop_token(key,':')) { key.trim (); val.eat_chars (1); val.trim (); std::string key_str (key.to_string()); if (extra_header_is_editable (key, val)) g_mime_object_set_header ((GMimeObject *) msg, key.to_string().c_str(), val.to_string().c_str(), charset_cstr); } g_free (pch); // User-Agent if ((mode==POSTING || mode == UPLOADING) && _prefs.get_flag (USER_AGENT_PREFS_KEY, true)) g_mime_object_set_header ((GMimeObject *) msg, "User-Agent", get_user_agent(), charset_cstr); // Message-ID for single text-only posts if (mode==DRAFTING || ((mode==POSTING || mode==UPLOADING) && _prefs.get_flag (MESSAGE_ID_PREFS_KEY, false))) { const std::string message_id = generate_message_id(profile); pan_g_mime_message_set_message_id (msg, message_id.c_str()); } // body & charset { std::string body; if (copy_body) body = get_body(); GMimeStream * stream = g_mime_stream_mem_new_with_buffer (body.c_str(), body.size()); const std::string charset ((mode==POSTING && !_charset.empty()) ? _charset : "UTF-8"); if (charset != "UTF-8") { // add a wrapper to convert from UTF-8 to $charset GMimeStream * tmp = g_mime_stream_filter_new (stream); g_object_unref (stream); GMimeFilter * filter = g_mime_filter_charset_new ("UTF-8", charset.c_str()); g_mime_stream_filter_add (GMIME_STREAM_FILTER(tmp), filter); g_object_unref (filter); stream = tmp; } GMimeDataWrapper * content_object = g_mime_data_wrapper_new_with_stream (stream, GMIME_CONTENT_ENCODING_DEFAULT); g_object_unref (stream); GMimePart * part = g_mime_part_new (); g_mime_part_set_content (part, content_object); pch = g_strdup_printf ("text/plain; charset=%s", charset.c_str()); GMimeContentType * type = g_mime_content_type_parse (nullptr, pch); g_free (pch); g_mime_object_set_content_type ((GMimeObject *) part, type); // part owns type now. type isn't refcounted. if (mode != UPLOADING) g_mime_part_set_content_encoding (part, _enc); g_object_unref (content_object); g_mime_message_set_mime_part (msg, GMIME_OBJECT(part)); g_object_unref (part); } return msg; } void PostUI :: save_draft () { GtkWidget * d = gtk_file_chooser_dialog_new ( _("Save Draft Article"), GTK_WINDOW(_root), GTK_FILE_CHOOSER_ACTION_SAVE, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_SAVE, GTK_RESPONSE_ACCEPT, nullptr); std::string draft_filename; char* filename; GMimeMessage* msg; bool do_overwrite = false; bool need_overwrite = false; bool select_ok = false; gtk_dialog_set_default_response (GTK_DIALOG(d), GTK_RESPONSE_ACCEPT); draft_filename = get_draft_filename (); if (g_file_test (draft_filename.c_str(), G_FILE_TEST_IS_DIR)) gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER(d), draft_filename.c_str()); else gtk_file_chooser_set_filename (GTK_FILE_CHOOSER(d), draft_filename.c_str()); do { if (gtk_dialog_run(GTK_DIALOG(d)) == GTK_RESPONSE_ACCEPT) { msg = new_message_from_ui (UPLOADING); filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER(d)); draft_filename = filename; select_ok = true; if (is_file_exist(draft_filename.c_str())) { need_overwrite = true; GtkWidget * dialog_w = gtk_message_dialog_new ( GTK_WINDOW(_root), GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_QUESTION, GTK_BUTTONS_NONE, nullptr); HIG :: message_dialog_set_text (GTK_MESSAGE_DIALOG(dialog_w), _("File already exists."), _("Overwrite it?")); gtk_dialog_add_buttons (GTK_DIALOG(dialog_w), GTK_STOCK_GO_BACK, GTK_RESPONSE_NO, GTK_STOCK_YES, GTK_RESPONSE_OK, nullptr); gtk_dialog_set_default_response (GTK_DIALOG(dialog_w), GTK_RESPONSE_NO); switch(gtk_dialog_run(GTK_DIALOG(dialog_w))) { case GTK_RESPONSE_OK: do_overwrite = true; break; case GTK_RESPONSE_NO: do_overwrite = false; break; default: do_overwrite = false; break; } gtk_widget_destroy (dialog_w); } else { need_overwrite = false; } } else { select_ok = false; } } while ( do_overwrite != need_overwrite ); if (do_overwrite == need_overwrite && select_ok) { errno = 0; std::ofstream o (filename); char * pch = g_mime_object_to_string ((GMimeObject *) msg, nullptr); o << pch; o.close (); if (o.fail()) { GtkWidget * e = gtk_message_dialog_new ( GTK_WINDOW(d), GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, _("Unable to save \"%s\" %s"), filename, file::pan_strerror(errno)); gtk_dialog_run (GTK_DIALOG(e)); gtk_widget_destroy (e); } g_free (pch); g_free (filename); g_object_unref (msg); save_message_in_local_folder(DRAFTING, "Drafts"); _unchanged_body = get_body (); } gtk_widget_destroy (d); } void PostUI :: body_widget_resized_cb (GtkWidget * w, GtkAllocation * allocation, gpointer self) { gtk_text_view_set_right_margin ( GTK_TEXT_VIEW(w), allocation->width - static_cast(self)->_wrap_pixels); } GtkWidget* PostUI :: create_body_widget (GtkTextBuffer*& buf, GtkWidget*& view, const Prefs &prefs) { const int WRAP_COLS = 75; const int VIEW_COLS = 80; view = gtk_text_view_new (); buf = gtk_text_view_get_buffer (GTK_TEXT_VIEW(view)); // always use a monospace font in the compose window const std::string str (prefs.get_string ("monospace-font", "Monospace 10")); PangoFontDescription *pfd (pango_font_description_from_string (str.c_str())); gtk_widget_override_font (view, pfd); // figure out how wide the text is before the wrap point PangoContext * context = gtk_widget_create_pango_context (view); pango_context_set_font_description (context, pfd); PangoLayout * layout = pango_layout_new (context); std::string s (WRAP_COLS, 'A'); pango_layout_set_text (layout, s.c_str(), s.size()); PangoRectangle r; pango_layout_get_extents (layout, &r, nullptr); _wrap_pixels = PANGO_PIXELS(r.width); // figure out how wide we want to make the window s.assign (VIEW_COLS, 'A'); pango_layout_set_text (layout, s.c_str(), s.size()); pango_layout_get_extents (layout, &r, nullptr); gtk_widget_set_size_request (view, PANGO_PIXELS(r.width), -1 ); // set the rest of the text view's policy gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW(view), GTK_WRAP_WORD); gtk_text_view_set_editable (GTK_TEXT_VIEW(view), true); GtkWidget * scrolled_window = gtk_scrolled_window_new (nullptr, nullptr); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW(scrolled_window), GTK_SHADOW_IN); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_container_add (GTK_CONTAINER (scrolled_window), view); g_signal_connect (view, "size-allocate", G_CALLBACK(body_widget_resized_cb), this); // cleanup g_object_unref (G_OBJECT(layout)); g_object_unref (G_OBJECT(context)); pango_font_description_free (pfd); return scrolled_window; } void PostUI :: update_profile_combobox () { // get the old selection GtkComboBoxText * combo (GTK_COMBO_BOX_TEXT (_from_combo)); char * active_text = gtk_combo_box_text_get_active_text (combo); // if there's not already a selection, // pull the default for the newsgroup if (!active_text) { const char * text = gtk_entry_get_text (GTK_ENTRY(_groups_entry)); StringView line(text), groupname; while (line.pop_token (groupname, ',')) { groupname.trim (); if (!groupname.empty()) { std::string profile (_group_prefs.get_string (groupname, "posting-profile", "")); if (!profile.empty()) active_text = g_strdup (profile.c_str()); } } } // tear out the old entries GtkTreeModel * model (gtk_combo_box_get_model (GTK_COMBO_BOX(combo))); for (int i(0), qty(gtk_tree_model_iter_n_children(model,nullptr)); i names_t; const names_t profile_names (_profiles.get_profile_names ()); int index (0); int sel_index (0); foreach_const (names_t, profile_names, it) { gtk_combo_box_text_append_text (combo, it->c_str()); if (active_text && (*it == active_text)) sel_index = index; ++index; } // ensure _something_ is selected... gtk_combo_box_set_active (GTK_COMBO_BOX(combo), sel_index); // cleanup g_free (active_text); } namespace { void load_signature (const StringView& sigfile, int type, std::string& setme) { setme.clear (); // check for an empty string StringView v (sigfile); v.trim (); if (v.empty()) return; char * pch = g_strndup (v.str, v.len); std::string sig; if (type == Profile::TEXT) { sig = pch; } else if (type == Profile::FILE) { file :: get_text_file_contents (pch, sig); } else if (type == Profile::COMMAND) { int argc = 0; char ** argv = nullptr; if (g_file_test (pch, G_FILE_TEST_EXISTS)) { argc = 1; argv = g_new (char*, 2); argv[0] = g_strdup (pch); argv[1] = nullptr; /* this is for g_strfreev() */ } else // parse it... { GError * err = nullptr; if (!g_shell_parse_argv (pch, &argc, &argv, &err)) { Log::add_err_va (_("Couldn't parse signature command \"%s\": %s"), pch, err->message); g_error_free (err); } } /* try to execute the file... */ if (argc>0 && argv!=nullptr && argv[0]!=nullptr && g_file_test (argv[0], G_FILE_TEST_IS_EXECUTABLE)) { char * spawn_stdout = nullptr; char * spawn_stderr = nullptr; int exit_status = 0; if (g_spawn_sync (nullptr, argv, nullptr, GSpawnFlags(0), nullptr, nullptr, &spawn_stdout, &spawn_stderr, &exit_status, nullptr)) sig = spawn_stdout; if (spawn_stderr && *spawn_stderr) Log::add_err (spawn_stderr); g_free (spawn_stderr); g_free (spawn_stdout); } g_strfreev (argv); } else if (type == Profile::GPGSIG) { /// TODO : Perhaps show but omit in gmimemessage ?? } /* Convert signature to UTF-8. Since the signature is a local file, * we assume the contents is in the user's locale's charset. * If we can't convert, clear the signature. Otherwise, we'd add an * charset-encoded sig (say 'iso-8859-1') to the body (in UTF-8), * which could result in a blank message in the composer window. */ if (!sig.empty()) sig = content_to_utf8 (sig); else Log::add_err (_("Couldn't convert signature to UTF-8.")); if (!sig.empty()) setme = sig; /* cleanup */ g_free (pch); } } void PostUI :: apply_profile () { apply_profile_to_body (); apply_profile_to_headers (); } namespace { void replace (std::string & in, const std::string & from, const std::string & to) { std::string out; std::string::size_type b(0), e(0); for (;;) { e = in.find (from, b); if (e == std::string::npos) { out.append (in, b, std::string::npos); break; } else { out.append (in, b, e-b); out.append (to); b = e + from.size(); } } in = out; } bool do_attribution_substitutions (const StringView & mid, const StringView & date, const StringView & from, std::string& attrib) { if (mid.empty() && date.empty() && from.empty()) // not a follow-up; attribution not needed return false; const StringView brief = GNKSA :: get_short_author_name (from); replace (attrib, "%i", mid); replace (attrib, "%d", date); replace (attrib, "%a", from); replace (attrib, "%n", brief.to_string()); return true; } } Profile PostUI :: get_current_profile () { Profile profile; char * pch = gtk_combo_box_text_get_active_text (GTK_COMBO_BOX_TEXT(_from_combo)); if (pch) { _profiles.get_profile (pch, profile); g_free (pch); } return profile; } void PostUI :: apply_profile_to_body () { // get the selected profile const Profile profile (get_current_profile ()); std::string attribution = profile.attribution; if (do_attribution_substitutions (_hidden_headers["X-Draft-Attribution-Id"], _hidden_headers["X-Draft-Attribution-Date"], _hidden_headers["X-Draft-Attribution-Author"], attribution)) attribution = _tm.fill (attribution); else attribution.clear (); std::string body = get_body (); // replace the attribution const std::string old_attribution (_hidden_headers["X-Draft-Attribution"]); if (!attribution.empty()) { // scrub the attribution for UTF8 cleanness attribution = header_to_utf8 (attribution); std::string::size_type pos = body.find (old_attribution); if (!old_attribution.empty() && (pos != std::string::npos)) body.replace (pos, old_attribution.size(), attribution); else if (!attribution.empty()) body = attribution + "\n\n" + body; _hidden_headers["X-Draft-Attribution"] = attribution; } // remove the last signature std::string::size_type pos = body.rfind (_current_signature); if (pos != body.npos) { body.resize (pos); StringView v (body); v.rtrim (); body.assign (v.str, v.len); } // get the new signature std::string sig; if (profile.use_sigfile && !profile.use_gpgsig) { load_signature (profile.signature_file, profile.sig_type, sig); int ignored; if (GNKSA::find_signature_delimiter (sig, ignored) == GNKSA::SIG_NONE) sig = std::string("\n\n-- \n") + sig; } _current_signature = sig; // add the new signature, and empty space between the // body (if present), the insert point, and the new signature int insert_pos; if (body.empty() && sig.empty()) { insert_pos = 0; } else if (body.empty()) { insert_pos = 0; body = "\n\n"; body += sig; } else if (sig.empty()) { body += "\n\n"; insert_pos = body.size(); } else { body += "\n\n"; insert_pos = body.size(); body += "\n\n"; body += sig; } GtkTextBuffer * buf (_body_buf); if (!body.empty()) gtk_text_buffer_set_text (buf, body.c_str(), body.size()); // set & scroll-to the insert point GtkTextIter iter; gtk_text_buffer_get_iter_at_offset (buf, &iter, insert_pos); gtk_text_buffer_move_mark_by_name (buf, "insert", &iter); gtk_text_buffer_move_mark_by_name (buf, "selection_bound", &iter); gtk_text_view_scroll_to_mark (GTK_TEXT_VIEW(_body_view), gtk_text_buffer_get_mark(buf, "insert"), 0.0, true, 0.0, 0.5); } void PostUI :: apply_profile_to_headers () { // get the current `extra headers' GtkTextBuffer * buf (_headers_buf); Profile::headers_t headers; GtkTextIter start, end; gtk_text_buffer_get_bounds (buf, &start, &end); char * text (gtk_text_buffer_get_text (buf, &start, &end, false)); StringView lines(text), line; while (lines.pop_token (line, '\n')) { StringView key, value(line); if (value.pop_token (key, ':')) { key.trim (); value.trim (); if (!key.empty() && !value.empty()) headers[key] = value; } } g_free (text); // remove from current all the headers from the old profile. foreach_const (str2str_t, _profile_headers, it) if (headers.count(it->first) && headers[it->first]==it->second) headers.erase (it->first); // get the new profile const Profile profile (get_current_profile ()); // add all the headers from the new profile. _profile_headers = profile.headers; foreach_const (Profile::headers_t, profile.headers, it) headers[it->first] = it->second; // if user has custom reply-to header, handle that here. Profile::headers_t::iterator p = headers.find ("Reply-To"); if (p != headers.end()) { gtk_entry_set_text (GTK_ENTRY(_replyto_entry), p->second.c_str()); headers.erase (p); } // rewrite the extra headers pane std::string s; foreach_const (Profile::headers_t, headers, it) s += it->first + ": " + it->second + "\n"; if (!s.empty()) gtk_text_buffer_set_text (buf, s.c_str(), s.size()); } namespace { void delete_post_ui (gpointer p) { delete static_cast(p); } void on_from_combo_changed (GtkComboBox*, gpointer user_data) { static_cast(user_data)->apply_profile (); } typedef std::map str2str_t; struct SetMessageForeachHeaderData { str2str_t hidden_headers; std::string visible_headers; }; void set_message_foreach_header_func (const char * name, const char * value, gpointer data_gpointer) { struct SetMessageForeachHeaderData * data (static_cast(data_gpointer)); if (header_has_dedicated_entry (name)) { // it's not an extra header } else if (extra_header_is_editable (name, value)) { // it's a visible extra header. std::string& str (data->visible_headers); str += std::string(name) + ": " + value + "\n"; } else { // it's a hidden extra header -- X-Draft-* headers, etc. data->hidden_headers[name] = value; } } } std::string PostUI :: utf8ize (const StringView& in) const { const char * local_charset = nullptr; g_get_charset (&local_charset); return content_to_utf8 (in, _charset.c_str(), local_charset); } #if GMIME_MINOR_VERSION == 4 namespace { inline GMimeStream* gmime_header_list_get_stream(GMimeHeaderList *hl) { // the name of this function was changed for 2.6 return gmime_header_list_has_raw(hl); } } #endif void PostUI :: set_message (GMimeMessage * message) { if (!message) return; // update our message header if (message) g_object_ref (G_OBJECT(message)); if (_message) g_object_unref (G_OBJECT(_message)); _message = message; // update subject, newsgroups, to fields std::string s = utf8ize (g_mime_message_get_subject (message)); gtk_entry_set_text (GTK_ENTRY(_subject_entry), s.c_str()); s = utf8ize (g_mime_object_get_header ((GMimeObject *) message, "Newsgroups")); gtk_entry_set_text (GTK_ENTRY(_groups_entry), s.c_str()); s = utf8ize (g_mime_object_get_header ((GMimeObject *) message, "Followup-To")); gtk_entry_set_text (GTK_ENTRY(_followupto_entry), s.c_str()); s = utf8ize (g_mime_object_get_header ((GMimeObject *) message, "Reply-To")); gtk_entry_set_text (GTK_ENTRY(_replyto_entry), s.c_str()); InternetAddressList * addresses = g_mime_message_get_addresses (message, GMIME_ADDRESS_TYPE_TO); char * pch = internet_address_list_to_string (addresses, nullptr, true); s = utf8ize (pch); gtk_entry_set_text (GTK_ENTRY(_to_entry), s.c_str()); g_free (pch); // update 'other headers' SetMessageForeachHeaderData data; const char *name, *value; GMimeHeaderList HList; // FIXME: GMime 3.0 int index_v = 0; int message_count = g_mime_header_list_get_count (message->mime_part->headers); if (message->mime_part && message_count) { do { GMimeHeader *GMHeader = g_mime_header_list_get_header_at(message->mime_part->headers, index_v); value = g_mime_header_get_value(GMHeader); name = g_mime_header_get_name(GMHeader); set_message_foreach_header_func (name, value, &data); index_v++; } while ( index_v < message_count); } index_v = 0; message_count = g_mime_header_list_get_count (GMIME_OBJECT (message)->headers); if (message_count > 0) { do { GMimeHeader *GMHeader = g_mime_header_list_get_header_at(GMIME_OBJECT (message)->headers, index_v); value = g_mime_header_get_value(GMHeader); name = g_mime_header_get_name(GMHeader); set_message_foreach_header_func (name, value, &data); index_v++; } while ( index_v < message_count); } s = utf8ize (data.visible_headers); if (!s.empty()) gtk_text_buffer_set_text (_headers_buf, s.c_str(), -1); _hidden_headers = data.hidden_headers; // update body int ignored; char * tmp = pan_g_mime_message_get_body (message, &ignored); s = utf8ize (tmp); g_free (tmp); if (!s.empty()) { if (_prefs.get_flag ("compose-wrap-enabled", true)) { s = TextMassager().fill (s); s += "\n\n"; } if (!s.empty()) gtk_text_buffer_set_text (_body_buf, s.c_str(), s.size()); } // apply the profiles update_profile_combobox (); apply_profile (); // set focus to the first non-populated widget GtkWidget * grab (nullptr); if (!grab) { const char * cpch (gtk_entry_get_text (GTK_ENTRY(_subject_entry))); if (!cpch || !*cpch) grab = _subject_entry; } if (!grab) { const StringView one (gtk_entry_get_text (GTK_ENTRY(_groups_entry))); const StringView two (gtk_entry_get_text (GTK_ENTRY(_to_entry))); if (one.empty() && two.empty()) grab = _groups_entry; } if (!grab) grab = _body_view; gtk_widget_grab_focus (grab); } /** * We hold off on setting the body textbuffer until after * the text view is realized so that GtkTreeView's text wrapping * will work properly. */ void PostUI :: body_view_realized_cb (GtkWidget*, gpointer self_gpointer) { PostUI * self = static_cast(self_gpointer); /* import old draft from autosave file */ // struct stat sb; // char *buf = g_build_filename(get_draft_filename().c_str(), "autosave", nullptr); // if (stat (buf, &sb)==0) // self->import_draft(buf); // g_free(buf); self->set_wrap_mode (self->_prefs.get_flag ("compose-wrap-enabled", false)); self->set_message (self->_message); self->_unchanged_body = self->get_body (); if (self->_prefs.get_flag ("always-run-editor", false)) { self->spawn_editor (); } g_signal_handler_disconnect (self->_body_view, self->body_view_realized_handler); self->_realized = true; /* gpg stuff */ const Profile profile (self->get_current_profile ()); gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (gtk_action_group_get_action (self->_agroup, "gpg-sign")),profile.use_sigfile); user_has_gpg = profile.use_sigfile && profile.sig_type == Profile::GPGSIG; /* connect this here so signature isn't appended double */ g_signal_connect (self->_from_combo, "changed", G_CALLBACK(on_from_combo_changed), self); } /*** **** ***/ gboolean PostUI :: group_entry_changed_idle (gpointer ui_gpointer) { PostUI * ui (static_cast(ui_gpointer)); std::string charset; // find the first posting charset in the newsgroups in _groups_entry. const char * text = gtk_entry_get_text (GTK_ENTRY(ui->_groups_entry)); StringView line(text), groupname; while (line.pop_token (groupname, ',')) { groupname.trim (); if (groupname.empty()) continue; charset = ui->_group_prefs.get_string (groupname, "character-encoding", "UTF-8"); if (!charset.empty()) break; } // if user hasn't specified a charset by hand, // use this one as the `default' charset for the groups being posted to. if (!charset.empty()) ui->set_charset (charset); ui->_group_entry_changed_idle_tag = 0; return false; } void PostUI :: group_entry_changed_cb (GtkEditable*, gpointer ui_gpointer) { PostUI * ui (static_cast(ui_gpointer)); unsigned int& tag (ui->_group_entry_changed_idle_tag); if (!tag) tag = g_timeout_add (2000, group_entry_changed_idle, ui); } gboolean PostUI :: body_changed_idle (gpointer ui_gpointer) { PostUI * ui (static_cast(ui_gpointer)); ui->_body_changed_idle_tag = 0; unsigned int& tag (ui->_draft_autosave_idle_tag); if (!tag) tag = g_timeout_add_seconds( ui->_draft_autosave_timeout, draft_save_cb, ui); return false; } void PostUI :: body_changed_cb (GtkEditable*, gpointer ui_gpointer) { PostUI * ui (static_cast(ui_gpointer)); unsigned int& tag (ui->_body_changed_idle_tag); if (!tag) tag = g_timeout_add (5000, body_changed_idle, ui); } /*** **** ***/ namespace { static void render_from (GtkCellLayout * , GtkCellRenderer * renderer, GtkTreeModel * model, GtkTreeIter * iter, gpointer profiles) { std::string from; std::string name; char * key (nullptr); gtk_tree_model_get (model, iter, 0, &key, -1); if (key) { name = key; Profile profile; if (static_cast(profiles)->get_profile (key, profile)) profile.get_from_header (from); g_free (key); } char * name_escaped = g_markup_escape_text (name.c_str(), name.size()); char * from_escaped = g_markup_escape_text (from.c_str(), from.size()); char * pch = g_strdup_printf ("%s - %s", from_escaped, name_escaped); g_object_set (renderer, "markup", pch, nullptr); g_free (pch); g_free (from_escaped); g_free (name_escaped); } } GtkWidget* PostUI :: create_main_tab () { const GtkAttachOptions fill ((GtkAttachOptions)(GTK_FILL|GTK_EXPAND|GTK_SHRINK)); char buf[512]; int row = -1; GtkWidget *l, *w; GtkWidget *t = gtk_table_new (4, 2, false); gtk_table_set_col_spacings (GTK_TABLE(t), PAD); // From ++row; g_snprintf (buf, sizeof(buf), "%s:", _("F_rom")); l = gtk_label_new_with_mnemonic (buf); gtk_label_set_use_markup (GTK_LABEL(l), true); gtk_label_set_xalign (GTK_LABEL(l), 0.0f); gtk_label_set_yalign (GTK_LABEL(l), 0.5f); gtk_table_attach (GTK_TABLE(t), l, 0, 1, row, row+1, GTK_FILL, GTK_FILL, 0, 0); w = _from_combo = gtk_combo_box_text_new (); gtk_cell_layout_clear (GTK_CELL_LAYOUT(w)); GtkCellRenderer * r = gtk_cell_renderer_text_new(); gtk_cell_layout_pack_start (GTK_CELL_LAYOUT(w), r, true); gtk_cell_layout_set_cell_data_func (GTK_CELL_LAYOUT(w), r, render_from, &_profiles, nullptr); gtk_label_set_mnemonic_widget (GTK_LABEL(l), w); gtk_table_attach (GTK_TABLE(t), w, 1, 2, row, row+1, fill, fill, 0, 0); // Subject ++row; g_snprintf (buf, sizeof(buf), "%s:", _("_Subject")); l = gtk_label_new_with_mnemonic (buf); gtk_label_set_use_markup (GTK_LABEL(l), true); gtk_label_set_xalign (GTK_LABEL(l), 0.0f); gtk_label_set_yalign (GTK_LABEL(l), 0.5f); gtk_table_attach (GTK_TABLE(t), l, 0, 1, row, row+1, GTK_FILL, GTK_FILL, 0, 0); w = _subject_entry = gtk_entry_new (); gtk_label_set_mnemonic_widget (GTK_LABEL(l), w); gtk_table_attach (GTK_TABLE(t), w, 1, 2, row, row+1, fill, fill, 0, 0); // Newsgroup ++row; g_snprintf (buf, sizeof(buf), "%s:", _("_Newsgroups")); l = gtk_label_new_with_mnemonic (buf); gtk_label_set_use_markup (GTK_LABEL(l), true); gtk_label_set_xalign (GTK_LABEL(l), 0.0f); gtk_label_set_yalign (GTK_LABEL(l), 0.5f); gtk_table_attach (GTK_TABLE(t), l, 0, 1, row, row+1, GTK_FILL, GTK_FILL, 0, 0); w = _groups_entry = gtk_entry_new (); _group_entry_changed_id = g_signal_connect (w, "changed", G_CALLBACK(group_entry_changed_cb), this); gtk_label_set_mnemonic_widget (GTK_LABEL(l), w); gtk_table_attach (GTK_TABLE(t), w, 1, 2, row, row+1, fill, fill, 0, 0); // Mail To ++row; g_snprintf (buf, sizeof(buf), "%s:", _("Mail _To")); l = gtk_label_new_with_mnemonic (buf); gtk_label_set_use_markup (GTK_LABEL(l), true); gtk_label_set_xalign (GTK_LABEL(l), 0.0f); gtk_label_set_yalign (GTK_LABEL(l), 0.5f); gtk_table_attach (GTK_TABLE(t), l, 0, 1, row, row+1, GTK_FILL, GTK_FILL, 0, 0); w = _to_entry = gtk_entry_new (); gtk_label_set_mnemonic_widget (GTK_LABEL(l), w); gtk_table_attach (GTK_TABLE(t), w, 1, 2, row, row+1, fill, fill, 0, 0); // Body w = create_body_widget (_body_buf, _body_view, _prefs); set_spellcheck_enabled (_prefs.get_flag ("spellcheck-enabled", DEFAULT_SPELLCHECK_FLAG)); _body_changed_id = g_signal_connect (_body_buf, "changed", G_CALLBACK(body_changed_cb), this); GtkWidget * v = gtk_box_new (GTK_ORIENTATION_VERTICAL, PAD); gtk_container_set_border_width (GTK_CONTAINER(v), PAD); gtk_box_pack_start (GTK_BOX(v), t, false, false, 0); pan_box_pack_start_defaults (GTK_BOX(v), w); return v; } void PostUI :: message_id_toggled_cb (GtkToggleButton * tb, gpointer pointer) { PostUI* post = static_cast(pointer); post->_prefs.set_flag (MESSAGE_ID_PREFS_KEY, gtk_toggle_button_get_active(tb)); } namespace { void user_agent_toggled_cb (GtkToggleButton * tb, gpointer pointer) { Prefs* prefs = static_cast(pointer); prefs->set_flag (MESSAGE_ID_PREFS_KEY, gtk_toggle_button_get_active(tb)); } } namespace { GtkWidget * add_button (GtkWidget * box, const gchar * icon_name, GCallback callback, gpointer user_data) { GtkWidget * w = gtk_button_new_from_icon_name (icon_name, GTK_ICON_SIZE_BUTTON); gtk_button_set_relief (GTK_BUTTON(w), GTK_RELIEF_NONE); if (callback) g_signal_connect (w, "clicked", callback, user_data); gtk_box_pack_start (GTK_BOX(box), w, false, false, 0); return w; } void render_filename (GtkTreeViewColumn * , GtkCellRenderer * renderer, GtkTreeModel * model, GtkTreeIter * iter, gpointer) { TaskUpload* fd(nullptr); gtk_tree_model_get (model, iter, 2, &fd, -1); if (fd) g_object_set (renderer, "text", fd->get_basename().c_str(), nullptr); } void render_row_number (GtkTreeViewColumn * , GtkCellRenderer * renderer, GtkTreeModel * model, GtkTreeIter * iter, gpointer) { GtkTreePath * path = gtk_tree_model_get_path ( model , iter ) ; int cnt (gtk_tree_path_get_indices ( path )[0]+1) ; std::string tmp; char buf[256]; g_snprintf(buf,sizeof(buf),"%d",cnt); g_object_set (renderer, "text", buf, nullptr); } } GtkWidget* PostUI :: create_filequeue_tab () { GtkWidget *w ; GtkListStore *list_store; GtkCellRenderer *renderer; GtkWidget * vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); GtkWidget * buttons = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, PAD_SMALL); // add button row // icon name list: https://commons.wikimedia.org/wiki/GNOME_Desktop_icons add_button (buttons, "go-up", G_CALLBACK(up_clicked_cb), this); add_button (buttons, "go-top", G_CALLBACK(top_clicked_cb), this); gtk_box_pack_start (GTK_BOX(buttons), gtk_separator_new(GTK_ORIENTATION_VERTICAL), 0, 0, 0); add_button (buttons, "go-down", G_CALLBACK(down_clicked_cb), this); add_button (buttons, "go-bottom", G_CALLBACK(bottom_clicked_cb), this); gtk_box_pack_start (GTK_BOX(buttons), gtk_separator_new(GTK_ORIENTATION_VERTICAL), 0, 0, 0); w = add_button (buttons, "edit-cut", G_CALLBACK(delete_clicked_cb), this); gtk_widget_set_tooltip_text( w, _("Delete from Queue")); pan_box_pack_start_defaults (GTK_BOX(buttons), gtk_event_box_new()); gtk_box_pack_start (GTK_BOX(vbox), buttons, false, false, 0); gtk_box_pack_start (GTK_BOX(vbox), gtk_separator_new(GTK_ORIENTATION_HORIZONTAL), false, false, 0); //add filestore list_store = gtk_list_store_new (4, G_TYPE_UINT, G_TYPE_STRING, G_TYPE_POINTER, G_TYPE_STRING); w = _filequeue_store = gtk_tree_view_new_with_model (GTK_TREE_MODEL(list_store)); // add columns renderer = gtk_cell_renderer_text_new (); GtkTreeView * t = GTK_TREE_VIEW(w); gtk_tree_view_insert_column_with_data_func(t, 0, (_("No.")), renderer, render_row_number, nullptr, nullptr); renderer = gtk_cell_renderer_text_new (); gtk_tree_view_insert_column_with_attributes (t, 1,(_("Subject")),renderer,"text", 1,nullptr); renderer = gtk_cell_renderer_text_new (); gtk_tree_view_insert_column_with_data_func(t, 2, (_("Filename")), renderer, render_filename, nullptr, nullptr); renderer = gtk_cell_renderer_text_new (); gtk_tree_view_insert_column_with_attributes (t, 3, (_("Size (KB)")),renderer,"text", 3,nullptr); // connect signals for popup menu g_signal_connect (w, "popup-menu", G_CALLBACK(on_popup_menu), this); g_signal_connect (w, "button-press-event", G_CALLBACK(on_button_pressed), this); //set hint and selection gtk_tree_view_set_rules_hint(GTK_TREE_VIEW(w),TRUE); GtkTreeSelection * selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (w)); g_signal_connect (selection, "changed", G_CALLBACK(on_selection_changed), this); gtk_tree_selection_set_mode (selection, GTK_SELECTION_MULTIPLE); gtk_tree_view_columns_autosize(GTK_TREE_VIEW(w)); //append scroll window w = gtk_scrolled_window_new (nullptr, nullptr); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW(w), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW(w), GTK_SHADOW_IN); gtk_container_add (GTK_CONTAINER(w), _filequeue_store); gtk_box_pack_start (GTK_BOX(vbox), w, true, true, 0); // add status bar gtk_box_pack_start (GTK_BOX(vbox), create_filequeue_status_bar(), false, false, 0); update_filequeue_label (); return vbox; } GtkWidget* PostUI:: create_filequeue_status_bar () { GtkWidget * w; GtkWidget * status_bar (gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0)); // connection status w = _filequeue_label = gtk_label_new (nullptr); gtk_misc_set_padding (GTK_MISC(w), PAD, 0); GtkWidget * frame = gtk_frame_new (nullptr); gtk_container_set_border_width (GTK_CONTAINER(frame), 0); gtk_frame_set_shadow_type (GTK_FRAME(frame), GTK_SHADOW_IN); gtk_container_add (GTK_CONTAINER(frame), w); gtk_box_pack_start (GTK_BOX(status_bar), frame, FALSE, FALSE, 0); return status_bar; } void PostUI:: on_parts_box_clicked_cb (GtkCellRendererToggle *cell, gchar *path_str, gpointer user_data) { PostUI* data(static_cast(user_data)); GtkWidget * w = data->parts_store() ; GtkTreeModel * model = gtk_tree_view_get_model(GTK_TREE_VIEW(w)); int part(42); GtkTreeIter iter; GtkTreePath *path = gtk_tree_path_new_from_string (path_str); gboolean enabled; gtk_tree_model_get_iter (model, &iter, path); gtk_tree_model_get (model, &iter, 0, &part, 1, &enabled, -1); enabled ^= 1; if (enabled==0) data->_upload_ptr->_wanted.erase(part); else data->_upload_ptr->_wanted.insert(part); gtk_list_store_set(GTK_LIST_STORE( model ), &iter, 1, enabled, -1); gtk_tree_path_free (path); data->update_parts_tab(); } GtkWidget* PostUI :: create_parts_tab () { const GtkAttachOptions fill ((GtkAttachOptions)(GTK_FILL)); const GtkAttachOptions fe ((GtkAttachOptions)(GTK_FILL|GTK_EXPAND|GTK_SHRINK)); GtkWidget *w, *l; char buf[512]; int row = -1; GtkCellRenderer * renderer; GtkWidget *t = gtk_table_new (8, 2, false); gtk_table_set_col_spacings (GTK_TABLE(t), PAD); ++row; l = gtk_label_new (nullptr); gtk_table_attach (GTK_TABLE(t), l, 0, 2, row, row+1, fe, fill, 0, 0); ++row; g_snprintf (buf, sizeof(buf), "%s:", _("Filename")); l = gtk_label_new (buf); gtk_label_set_use_markup (GTK_LABEL(l), true); gtk_label_set_xalign (GTK_LABEL(l), 0.0f); gtk_label_set_yalign (GTK_LABEL(l), 0.5f); gtk_table_attach (GTK_TABLE(t), l, 0, 1, row, row+1, GTK_FILL, GTK_FILL, 0, 0); g_snprintf (buf, sizeof(buf), "%s", _upload_ptr->_basename.c_str()); l = gtk_label_new (buf); gtk_label_set_xalign (GTK_LABEL(l), 0.5f); gtk_label_set_yalign (GTK_LABEL(l), 0.5f); gtk_widget_set_tooltip_text (l, _("The current filename")); gtk_table_attach (GTK_TABLE(t), l, 1, 2, row, row+1, fe, fill, 0, 0); ++row; g_snprintf (buf, sizeof(buf), "%s:", _("Subject Line")); l = gtk_label_new (buf); gtk_label_set_use_markup (GTK_LABEL(l), true); gtk_label_set_xalign (GTK_LABEL(l), 0.0f); gtk_label_set_yalign (GTK_LABEL(l), 0.5f); gtk_table_attach (GTK_TABLE(t), l, 0, 1, row, row+1, GTK_FILL, GTK_FILL, 0, 0); g_snprintf (buf, sizeof(buf), "%s", _upload_ptr->_subject.c_str()); l = gtk_label_new (buf); gtk_label_set_xalign (GTK_LABEL(l), 0.5f); gtk_label_set_yalign (GTK_LABEL(l), 0.5f); gtk_widget_set_tooltip_text (l, _("The current subject line")); gtk_table_attach (GTK_TABLE(t), l, 1, 2, row, row+1, fe, fill, 0, 0); ++row; l = gtk_label_new (nullptr); gtk_table_attach (GTK_TABLE(t), l, 0, 2, row, row+1, fe, fill, 0, 0); //treeview for parts list ++row; w = _parts_store = gtk_tree_view_new_with_model (GTK_TREE_MODEL(gtk_list_store_new (3, G_TYPE_UINT, G_TYPE_BOOLEAN, G_TYPE_STRING))); // add columns renderer = gtk_cell_renderer_text_new (); gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (w), 0, (_("No. ")),renderer,"text", 0,nullptr); renderer = gtk_cell_renderer_toggle_new(); g_signal_connect (G_OBJECT(renderer), "toggled", G_CALLBACK(on_parts_box_clicked_cb), this); gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (w), 1, (_("Enable/Disable")),renderer,"active", 1,nullptr); renderer = gtk_cell_renderer_text_new (); gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (w), 2, (_("Filename")),renderer,"text", 2,nullptr); //set hint and selection gtk_tree_view_set_rules_hint(GTK_TREE_VIEW(w),TRUE); gtk_tree_view_columns_autosize(GTK_TREE_VIEW(w)); gtk_table_attach (GTK_TABLE(t), w, 0, 2, row, row+1, fe, fill, 0, 0); //append scroll window w = gtk_scrolled_window_new (nullptr, nullptr); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW(w), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW(w), GTK_SHADOW_IN); gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW(w), t); return w; } GtkWidget* PostUI :: create_extras_tab () { const GtkAttachOptions fill ((GtkAttachOptions)(GTK_FILL)); const GtkAttachOptions fe ((GtkAttachOptions)(GTK_FILL|GTK_EXPAND|GTK_SHRINK)); char buf[512]; int row = -1; GtkWidget *l, *w; GtkWidget *t = gtk_table_new (3, 2, false); gtk_table_set_col_spacings (GTK_TABLE(t), PAD); // Followup-To ++row; g_snprintf (buf, sizeof(buf), "%s:", _("Follo_wup-To")); l = gtk_label_new_with_mnemonic (buf); gtk_label_set_use_markup (GTK_LABEL(l), true); gtk_label_set_xalign (GTK_LABEL(l), 0.0f); gtk_label_set_yalign (GTK_LABEL(l), 0.5f); gtk_table_attach (GTK_TABLE(t), l, 0, 1, row, row+1, GTK_FILL, GTK_FILL, 0, 0); w = _followupto_entry = gtk_entry_new (); gtk_label_set_mnemonic_widget (GTK_LABEL(l), w); /* i18n: "poster" is a key used by many newsreaders. probably safest to keep this key in english. */ gtk_widget_set_tooltip_text (w, _("The newsgroups where replies to your message should go. This is only needed if it differs from " "the \"Newsgroups\" header.\n\nTo direct all replies to your email address, use \"Followup-To: poster\"")); gtk_table_attach (GTK_TABLE(t), w, 1, 2, row, row+1, fe, fill, 0, 0); // Reply-To ++row; g_snprintf (buf, sizeof(buf), "%s:", _("_Reply-To")); l = gtk_label_new_with_mnemonic (buf); gtk_label_set_use_markup (GTK_LABEL(l), true); gtk_label_set_xalign (GTK_LABEL(l), 0.0f); gtk_label_set_yalign (GTK_LABEL(l), 0.5f); gtk_table_attach (GTK_TABLE(t), l, 0, 1, row, row+1, GTK_FILL, GTK_FILL, 0, 0); w = _replyto_entry = gtk_entry_new (); gtk_label_set_mnemonic_widget (GTK_LABEL(l), w); gtk_widget_set_tooltip_text (w, _("The email account where mail replies to your posted message should go. " "This is only needed if it differs from the \"From\" header.")); gtk_table_attach (GTK_TABLE(t), w, 1, 2, row, row+1, fe, fill, 0, 0); // Extra Headers ++row; g_snprintf (buf, sizeof(buf), "%s:", _("_Custom Headers")); l = gtk_label_new_with_mnemonic (buf); gtk_label_set_use_markup (GTK_LABEL(l), true); gtk_label_set_xalign (GTK_LABEL(l), 0.0f); gtk_label_set_yalign (GTK_LABEL(l), 0.0f); gtk_table_attach (GTK_TABLE(t), l, 0, 1, row, row+1, GTK_FILL, GTK_FILL, 0, 0); ++row; w = gtk_text_view_new (); gtk_label_set_mnemonic_widget (GTK_LABEL(l), w); _headers_buf = gtk_text_view_get_buffer (GTK_TEXT_VIEW(w)); gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW(w), GTK_WRAP_NONE); gtk_text_view_set_editable (GTK_TEXT_VIEW(w), true); GtkWidget * scroll = gtk_scrolled_window_new (nullptr, nullptr); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scroll), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_container_add (GTK_CONTAINER(scroll), w); GtkWidget * frame = gtk_frame_new (nullptr); gtk_frame_set_shadow_type (GTK_FRAME(frame), GTK_SHADOW_IN); gtk_container_add (GTK_CONTAINER(frame), scroll); gtk_table_attach_defaults (GTK_TABLE(t), frame, 0, 2, row, row+1); // User-Agent ++row; w = _user_agent_check = gtk_check_button_new_with_mnemonic (_("Add \"_User-Agent\" header")); bool b = _prefs.get_flag (USER_AGENT_PREFS_KEY, true); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(w), b); g_signal_connect (w, "toggled", G_CALLBACK(user_agent_toggled_cb), &_prefs); gtk_table_attach (GTK_TABLE(t), w, 0, 2, row, row+1, GTK_FILL, GTK_FILL, 0, 0); ++row; w = _message_id_check = gtk_check_button_new_with_mnemonic (_("Add \"Message-_ID\" header")); b = _prefs.get_flag(MESSAGE_ID_PREFS_KEY,false); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(w), b); g_signal_connect (w, "toggled", G_CALLBACK(message_id_toggled_cb), this); gtk_table_attach (GTK_TABLE(t), w, 0, 2, row, row+1, GTK_FILL, GTK_FILL, 0, 0); gtk_container_set_border_width (GTK_CONTAINER(t), PAD); gtk_table_set_col_spacings (GTK_TABLE(t), PAD); gtk_table_set_row_spacings (GTK_TABLE(t), PAD); return t; } void PostUI :: get_selected_files_foreach (GtkTreeModel *model, GtkTreePath *, GtkTreeIter *iter, gpointer list_g) { TaskUpload* file(nullptr); gtk_tree_model_get (model, iter, 2, &file, -1); static_cast(list_g)->push_back (file); } PostUI::tasks_t PostUI :: get_selected_files () const { PostUI::tasks_t tasks; GtkTreeView * view (GTK_TREE_VIEW (_filequeue_store)); GtkTreeSelection * sel (gtk_tree_view_get_selection (view)); gtk_tree_selection_selected_foreach (sel, get_selected_files_foreach, &tasks); return tasks; } void PostUI :: remove_files (void) { _upload_queue.remove_tasks (get_selected_files()); } void PostUI :: move_up (void) { _upload_queue.move_up (get_selected_files()); } void PostUI :: move_down (void) { _upload_queue.move_down (get_selected_files()); } void PostUI :: move_top (void) { _upload_queue.move_top (get_selected_files()); } void PostUI :: move_bottom (void) { _upload_queue.move_bottom (get_selected_files()); } int PostUI :: get_total_parts(const char* file) { struct stat sb; stat (file,&sb); int max (std::max(1,(int)std::ceil((double)sb.st_size / (double)_prefs.get_int_min("upload-option-bpf",512*1024)))); return max; } void PostUI :: clear_list (void) { _upload_queue.clear(); update_filequeue_label(); } void PostUI :: up_clicked_cb (GtkButton*, PostUI* pane) { pane->move_up (); } void PostUI :: down_clicked_cb (GtkButton*, PostUI* pane) { pane->move_down (); } void PostUI :: top_clicked_cb (GtkButton*, PostUI* pane) { pane->move_top (); } void PostUI :: bottom_clicked_cb (GtkButton*, PostUI* pane) { pane->move_bottom (); } void PostUI :: delete_clicked_cb (GtkButton*, PostUI* pane) { pane->remove_files (); } PostUI :: ~PostUI () { if (_group_entry_changed_idle_tag) g_source_remove (_group_entry_changed_idle_tag); if (_body_changed_idle_tag) g_source_remove (_body_changed_idle_tag); if (_draft_autosave_idle_tag) g_source_remove (_draft_autosave_idle_tag); g_object_unref (G_OBJECT(_message)); _upload_queue.remove_listener (this); } void PostUI :: select_parts () { PostUI::tasks_t set(get_selected_files()); if (set.empty()) return; _upload_ptr = dynamic_cast(set[0]); if (!_upload_ptr) return; GtkWidget * w = _part_select = gtk_window_new (GTK_WINDOW_TOPLEVEL); g_signal_connect (_part_select, "delete-event", G_CALLBACK(delete_parts_cb), this); gtk_window_set_role (GTK_WINDOW(w), "pan-parts-window"); gtk_window_set_title (GTK_WINDOW(w), _("Select Parts")); int x,y; // FIXME (sometimes....) BUG: Native Windows wider or taller than 65535 pixels are not supported x = _prefs.get_int("post-ui-width", 450); y = _prefs.get_int("post-ui-height", 450); gtk_window_set_default_size (GTK_WINDOW(w), x, y); // populate the window GtkWidget * vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, PAD_SMALL); gtk_container_add (GTK_CONTAINER(w), vbox); GtkWidget * notebook = gtk_notebook_new (); gtk_notebook_append_page (GTK_NOTEBOOK(notebook), create_parts_tab(), gtk_label_new_with_mnemonic(_("_Parts"))); pan_box_pack_start_defaults (GTK_BOX(vbox), notebook); gtk_widget_show_all (w); update_parts_tab(); } void PostUI :: update_parts_tab() { GtkWidget * w = _parts_store ; GtkListStore *store = GTK_LIST_STORE( gtk_tree_view_get_model(GTK_TREE_VIEW(w))); GtkTreeIter iter; gtk_list_store_clear(store); gboolean res(FALSE); GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(w)); g_object_ref(model); gtk_tree_view_set_model(GTK_TREE_VIEW(w), nullptr); for (int i=1;i<=_upload_ptr->_total_parts;++i) { gtk_list_store_append (store, &iter); res = (_upload_ptr->_wanted.find(i) != _upload_ptr->_wanted.end()) ? TRUE : FALSE; gtk_list_store_set (store, &iter, 0, i, 1, res, 2, _upload_ptr->_basename.c_str(), -1); } gtk_tree_view_set_model(GTK_TREE_VIEW(w), model); g_object_unref(model); } gboolean PostUI::draft_save_cb(gpointer ptr) { PostUI *data = static_cast(ptr); if (!data) return false; GMimeMessage * msg = data->new_message_from_ui (DRAFTING); std::string& draft_filename (get_draft_filename ()); char * filename = g_build_filename (draft_filename.c_str(), "autosave", nullptr); std::ofstream o (filename); char * headers (g_mime_object_get_headers ((GMimeObject *) msg, nullptr)); o << headers; const std::string body (data->get_body ()); o << body; o.close (); g_object_unref (msg); g_free(filename); data->_unchanged_body = body; data->_draft_autosave_idle_tag = 0; return false; } gboolean PostUI :: on_keyboard_key_pressed_cb (GtkWidget * w, GdkEventKey * event, gpointer ptr) { PostUI *data = static_cast(ptr); if (!data) return false; if (event->type == GDK_KEY_PRESS) { if (event->keyval == GDK_KEY_Delete) { if (gtk_notebook_get_current_page(GTK_NOTEBOOK(data->_notebook)) == PostUI::PAGE_QUEUE) data->remove_files(); } } return false; } PostUI :: PostUI (GtkWindow * parent, Data & data, Queue & queue, GroupServer & gs, Profiles & profiles, GMimeMessage * message, Prefs & prefs, GroupPrefs & group_prefs, EncodeCache & cache): _data (data), _queue (queue), _gs (gs), _profiles (profiles), _prefs (prefs), _group_prefs (group_prefs), _root (), _part_select(nullptr), _from_combo (nullptr), _subject_entry (nullptr), _groups_entry (nullptr), _filequeue_store(nullptr), _parts_store(nullptr), _to_entry (nullptr), _followupto_entry (nullptr), _replyto_entry (nullptr), _body_view (nullptr), _user_agent_check(nullptr), _message_id_check(nullptr), _body_buf (nullptr), _headers_buf(nullptr), _message (message), _charset (DEFAULT_CHARSET), _uim(nullptr), _post_task(nullptr), _wrap_pixels(0), _enc(GMIME_CONTENT_ENCODING_8BIT), _file_queue_empty(true), _upload_ptr(nullptr), _total_parts(0), _uploads(0), _realized(false), _agroup(nullptr), //body_view_realized_handler is set up in the code below _filequeue_eventbox (nullptr), _filequeue_label (nullptr), _body_changed_id(0), _body_changed_idle_tag(0), _group_entry_changed_idle_tag (0), _group_entry_changed_id (0), _cache (cache), _spawner_action(nullptr), _running_uploads(0), _draft_autosave_id(0), _draft_autosave_timeout(0), _draft_autosave_idle_tag(0), _notebook(nullptr), delete_override(0) { _upload_queue.add_listener (this); /* init timer for autosave */ // set_draft_autosave_timeout( prefs.get_int("draft-autosave-timeout-min", 10 )); // _draft_autosave_id = g_timeout_add_seconds( _draft_autosave_timeout * 60, draft_save_cb, this); g_assert (profiles.has_profiles()); g_return_if_fail (message != nullptr); #ifdef HAVE_GSPELL // set the spellchecker language according to the first destination newsgroup's options StringView line (g_mime_object_get_header ((GMimeObject *) message, "Newsgroups")); StringView groupname; // get the first newsgroup while (line.pop_token (groupname, ',')) { groupname.trim (); if (groupname.empty()) continue; // set the language as defined in the newsgroup's options or, if it doesn't have one, the system locale _spellcheck_language = group_prefs.get_string (groupname, "spellcheck-language", ""); if (!_spellcheck_language.empty()) break; } #endif // create the window _root = gtk_window_new (GTK_WINDOW_TOPLEVEL); g_signal_connect (_root, "delete-event", G_CALLBACK(delete_event_cb), this); gtk_window_set_role (GTK_WINDOW(_root), "pan-post-window"); gtk_window_set_title (GTK_WINDOW(_root), _("Post Article")); int w,h; w = _prefs.get_int("post-ui-width", 450); h = _prefs.get_int("post-ui-height", 450); gtk_window_set_default_size (GTK_WINDOW(_root), w, h); g_object_set_data_full (G_OBJECT(_root), "post-ui", this, delete_post_ui); if (parent) { gtk_window_set_transient_for (GTK_WINDOW(_root), parent); gtk_window_set_position (GTK_WINDOW(_root), GTK_WIN_POS_CENTER_ON_PARENT); } // populate the window GtkWidget * vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, PAD_SMALL); GtkWidget * menu_vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, PAD_SMALL); gtk_box_pack_start (GTK_BOX(vbox), menu_vbox, false, false, 0); add_actions (menu_vbox); gtk_window_add_accel_group (GTK_WINDOW(_root), gtk_ui_manager_get_accel_group (_uim)); gtk_widget_show_all (vbox); gtk_container_add (GTK_CONTAINER(_root), vbox); GtkWidget * notebook = _notebook = gtk_notebook_new (); gtk_notebook_append_page (GTK_NOTEBOOK(notebook), create_main_tab(), gtk_label_new_with_mnemonic(_("_Message"))); gtk_notebook_append_page (GTK_NOTEBOOK(notebook), create_extras_tab(), gtk_label_new_with_mnemonic(_("More _Headers"))); gtk_notebook_append_page (GTK_NOTEBOOK(notebook), create_filequeue_tab(), gtk_label_new_with_mnemonic(_("File _Queue"))); pan_box_pack_start_defaults (GTK_BOX(vbox), notebook); /* button press handler for "delete" */ g_signal_connect (vbox, "key-press-event", G_CALLBACK(on_keyboard_key_pressed_cb), this); // remember this message, but don't put it in the text view yet. // we have to wait for it to be realized first so that wrapping // will work correctly. g_object_ref (G_OBJECT(_message)); body_view_realized_handler = g_signal_connect (_body_view, "realize", G_CALLBACK(body_view_realized_cb), this); } PostUI* PostUI :: create_window (GtkWindow * parent, Data & data, Queue & queue, GroupServer & gs, Profiles & profiles, GMimeMessage * message, Prefs & prefs, GroupPrefs & group_prefs, EncodeCache & cache) { // can't post without a profile... if (!profiles.has_profiles()) { Profile profile; profile.username = g_get_real_name (); /* xgettext: no-c-format */ profile.attribution = _("On %d, %n wrote:"); ProfileDialog d (data, g_get_real_name(), profile, GTK_WINDOW(parent)); const bool got_profile (ProfileDialog :: run_until_valid_or_cancel (d)); if (got_profile) { std::string name; d.get_profile (name, profile); profiles.add_profile (name, profile); } gtk_widget_destroy (d.root()); if (!got_profile) return nullptr; } return new PostUI (nullptr, data, queue, gs, profiles, message, prefs, group_prefs, cache); } void PostUI :: prompt_user_for_queueable_files (GtkWindow * parent, const Prefs& prefs) { const Profile profile (get_current_profile ()); PostUI::tasks_t tasks; GMimeMessage * tmp (new_message_from_ui (UPLOADING)); if (!check_message(profile.posting_server, tmp, true)) { g_object_unref (G_OBJECT(tmp)); return; } std::string prev_path = prefs.get_string ("default-save-attachments-path", g_get_home_dir ()); GtkWidget * w = gtk_file_chooser_dialog_new (_("Add files to queue"), parent, GTK_FILE_CHOOSER_ACTION_OPEN, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT, nullptr); gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (w), prev_path.c_str()); gtk_file_chooser_set_select_multiple (GTK_FILE_CHOOSER (w), true); gtk_file_chooser_set_show_hidden (GTK_FILE_CHOOSER (w), false); const int response (gtk_dialog_run (GTK_DIALOG(w))); if (response == GTK_RESPONSE_ACCEPT) { GSList * tmp_list = gtk_file_chooser_get_filenames(GTK_FILE_CHOOSER (w)); gtk_widget_destroy (w); TaskUpload::UploadInfo ui; // query lines per file value ui.bpf = _prefs.get_int("upload-option-bpf",512*1024); std::string author; profile.get_from_header(author); std::string subject(utf8ize (g_mime_message_get_subject (tmp))); // insert groups info from msg quarks_t groups; StringView line (g_mime_object_get_header ((GMimeObject *) tmp, "Newsgroups")); StringView groupname; while (line.pop_token (groupname, ',')) { groupname.trim (); if (!groupname.empty()) groups.insert(Quark(groupname)); } GSList * cur = g_slist_nth (tmp_list,0); std::vector uploads; for (; cur; cur = cur->next) { GMimeMessage * msg (new_message_from_ui (UPLOADING)); TaskUpload* tmp; Article a; a.subject = subject; a.author = author; foreach_const (quarks_t, groups, git) a.xref.insert (profile.posting_server, *git, static_cast(0)); ui.total = get_total_parts((const char*)cur->data); tmp = new TaskUpload((const char*)cur->data, profile.posting_server, _cache, a, ui, msg); // insert wanted parts to upload for (int i=1;i<=ui.total; ++i) tmp->_wanted.insert(i); uploads.push_back(tmp); } _upload_queue.add_tasks(uploads); if (_file_queue_empty) _file_queue_empty= false; g_slist_free (tmp_list); } else gtk_widget_destroy (w); g_object_unref (G_OBJECT(tmp)); } std::string PostUI :: prompt_user_for_upload_nzb_dir (GtkWindow * parent, const Prefs& prefs) { char buf[4096]; std::string path; std::string prev_path = prefs.get_string ("default-save-attachments-path", g_get_home_dir ()); if (!file :: file_exists (prev_path.c_str())) prev_path = g_get_home_dir (); const char * cpch (gtk_entry_get_text (GTK_ENTRY(_subject_entry))); g_snprintf(buf,sizeof(buf), "%s.nzb", cpch ? cpch : "_(Untitled)"); std::string prev_file(buf); GtkWidget * w = gtk_file_chooser_dialog_new (_("Save Upload Queue as NZB File"), GTK_WINDOW(parent), GTK_FILE_CHOOSER_ACTION_SAVE, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_SAVE, GTK_RESPONSE_ACCEPT, nullptr); gtk_dialog_set_default_response (GTK_DIALOG(w), GTK_RESPONSE_ACCEPT); gtk_file_chooser_set_do_overwrite_confirmation (GTK_FILE_CHOOSER (w), TRUE); gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (w), prev_path.c_str()); gtk_file_chooser_set_current_name (GTK_FILE_CHOOSER (w), prev_file.c_str()); GtkFileFilter * filter = gtk_file_filter_new (); gtk_file_filter_add_pattern (filter, "*.[Nn][Zz][Bb]"); gtk_file_filter_set_name (filter, _("NZB Files")); gtk_file_chooser_add_filter (GTK_FILE_CHOOSER(w), filter); gtk_file_chooser_set_select_multiple (GTK_FILE_CHOOSER(w), false); if (GTK_RESPONSE_ACCEPT == gtk_dialog_run(GTK_DIALOG(w))) { char * tmp = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (w)); path = tmp; g_free (tmp); //remove old file unlink(path.c_str()); } else path.clear(); gtk_widget_destroy (w); return path; } pan-0.162/pan/gui/post-ui.h000066400000000000000000000216701475412772400154360ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #ifndef __PostUI_h__ #define __PostUI_h__ #include #include #include #include #include #include #include #include "group-prefs.h" #include namespace pan { class EditorSpawner; class Profiles; class TaskPost; class UploadQueue; class Queue; /** * Dialog for posting new messages Pan's GTK GUI. * @ingroup GUI */ class PostUI: private Progress::Listener, private UploadQueue::Listener { public: typedef std::vector tasks_t; static PostUI* create_window (GtkWindow*, Data&, Queue&, GroupServer&, Profiles&, GMimeMessage*, Prefs&, GroupPrefs&, EncodeCache&); void prompt_user_for_queueable_files (GtkWindow * parent, const Prefs& prefs); std::string prompt_user_for_upload_nzb_dir (GtkWindow * parent, const Prefs& prefs); protected: PostUI (GtkWindow*, Data&, Queue&, GroupServer&, Profiles&, GMimeMessage*, Prefs&, GroupPrefs&, EncodeCache&); public: ~PostUI (); public: GtkWidget * root() { return _root; } GtkWidget * part_select() { return _part_select; } GtkWidget * parts_store() { return _parts_store; } void rot13_selection (); void wrap_selection (); void wrap_body (); void spawn_editor (); void manage_profiles (); void set_charset (const StringView&); void apply_profile (); void save_draft (); void open_draft (); void import_draft (const char* fn); void prompt_for_charset (); void prompt_for_cte (); void send_now (); void send_and_save_now (); void add_files (); void close_window (bool flag=false); void set_wrap_mode (bool wrap); void set_always_run_editor (bool); void update_parts_tab(); //popup action entries void remove_files (); void clear_list (); void select_parts (); void move_up (); void move_down (); void move_top (); void move_bottom (); static void do_popup_menu (GtkWidget*, GdkEventButton *event, gpointer pane_g); static gboolean on_button_pressed (GtkWidget * treeview, GdkEventButton *event, gpointer userdata); static gboolean on_selection_changed (GtkTreeSelection *s,gpointer p); private: void done_sending_message (GMimeMessage*, bool); void maybe_mail_message (GMimeMessage*); bool maybe_post_message (GMimeMessage*); enum Mode { DRAFTING, POSTING, UPLOADING, VIRTUAL}; bool save_message_in_local_folder(const Mode& mode, const std::string& folder); std::string generate_message_id (const Profile& p); private: void update_widgetry (); void update_profile_combobox (); void populate_from_message (GMimeMessage*); void set_message (GMimeMessage*); private: virtual void on_progress_finished (Progress&, int status=OK); void on_progress_error (Progress&, const StringView&) override {} void on_progress_step (Progress&, int p) override {} void on_progress_status (Progress&, const StringView& s) override {} private: Data& _data; Queue& _queue; GroupServer& _gs; Profiles& _profiles; Prefs& _prefs; GroupPrefs& _group_prefs; GtkWidget * _root; GtkWidget * _part_select; GtkWidget * _from_combo; GtkWidget * _subject_entry; GtkWidget * _groups_entry; GtkWidget * _filequeue_store; GtkWidget * _parts_store; GtkWidget * _to_entry; GtkWidget * _followupto_entry; GtkWidget * _replyto_entry; GtkWidget * _body_view; GtkWidget * _user_agent_check; GtkWidget * _message_id_check; GtkTextBuffer * _body_buf; GtkTextBuffer * _headers_buf; GMimeMessage * _message; std::string _charset; TextMassager _tm; GtkUIManager * _uim; std::string _current_signature; TaskPost * _post_task; typedef std::map str2str_t; str2str_t _hidden_headers; str2str_t _profile_headers; std::string _unchanged_body; int _wrap_pixels; std::string _spellcheck_language; GMimeContentEncoding _enc; /* binpost */ bool _file_queue_empty; TaskUpload* _upload_ptr; int _total_parts; std::string _save_file; int _uploads; public: bool _realized; private: friend class UploadQueue; void on_queue_tasks_added (UploadQueue&, int index, int count) override; void on_queue_task_removed (UploadQueue&, Task&, int index) override; void on_queue_task_moved (UploadQueue&, Task&, int new_index, int old_index) override; private: /* GMIME: X-Face interval between spaces for proper folding. */ enum { GMIME_FOLD_INTERVAL = 72, GMIME_FOLD_BASE64_INTERVAL = 64 }; void add_actions (GtkWidget* box); void apply_profile_to_body (); void apply_profile_to_headers (); GMimeMessage * new_message_from_ui (Mode mode, bool copy_body=true); bool check_message (const Quark& server, GMimeMessage*, bool binpost=false); bool check_charset (); public: Profile get_current_profile (); GtkActionGroup * _agroup; private: GtkWidget* create_main_tab (); GtkWidget* create_extras_tab (); GtkWidget* create_filequeue_tab (); GtkWidget* create_filequeue_status_bar (); GtkWidget * _filequeue_eventbox; GtkWidget * _filequeue_label; void update_filequeue_label (GtkTreeSelection *selection=nullptr); GtkWidget* create_parts_tab (); private: std::string utf8ize (const StringView&) const; std::string get_body () const; int count_lines(); gulong body_view_realized_handler; static void body_view_realized_cb (GtkWidget*, gpointer); GtkWidget* create_body_widget (GtkTextBuffer*&, GtkWidget*&, const pan::Prefs&); static void body_widget_resized_cb (GtkWidget*, GtkAllocation*, gpointer); private: unsigned long _body_changed_id; unsigned int _body_changed_idle_tag; static gboolean body_changed_idle (gpointer); static void body_changed_cb (GtkEditable*, gpointer); unsigned int _group_entry_changed_idle_tag; unsigned long _group_entry_changed_id; static gboolean group_entry_changed_idle (gpointer); static void group_entry_changed_cb (GtkEditable*, gpointer); protected: EncodeCache& _cache; public: void set_spellcheck_enabled (bool); public: tasks_t get_selected_files () const; private: static void get_selected_files_foreach (GtkTreeModel*, GtkTreePath*, GtkTreeIter*, gpointer); static void up_clicked_cb (GtkButton*, PostUI*); static void down_clicked_cb (GtkButton*, PostUI*); static void top_clicked_cb (GtkButton*, PostUI*); static void bottom_clicked_cb (GtkButton*, PostUI*); static void delete_clicked_cb (GtkButton*, PostUI*); static void on_parts_box_clicked_cb (GtkCellRendererToggle *cell, gchar *path_str, gpointer user_data); private: GtkAction * _spawner_action; std::unique_ptr _spawner; void spawn_editor_dead(int, char *); TaskUpload* upload_ptr() { return _upload_ptr; } UploadQueue _upload_queue; Mutex mut; int _running_uploads; std::ofstream _out; static void message_id_toggled_cb (GtkToggleButton * tb, gpointer prefs_gpointer); int get_total_parts(const char* file); private: guint _draft_autosave_id; guint _draft_autosave_timeout; guint _draft_autosave_idle_tag; static gboolean draft_save_cb(gpointer ptr); /* override of "delete" */ enum pages { PAGE_MAIN = 0, PAGE_EXTRAS = 1, PAGE_QUEUE = 2 }; GtkWidget * _notebook; int delete_override; static gboolean on_keyboard_key_pressed_cb (GtkWidget *, GdkEventKey *, gpointer); public: void set_draft_autosave_timeout(guint seconds) { _draft_autosave_timeout = seconds;} }; } #endif pan-0.162/pan/gui/post.ui.h000066400000000000000000000043351475412772400154360ustar00rootroot00000000000000// " \n" doesnt exist yet, so deactivated for now.... const char * fallback_post_ui = "\n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" #ifdef HAVE_GMIME_CRYPTO " \n" " \n" " \n" #endif " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" "\n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" "\n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" "\n" "\n"; pan-0.162/pan/gui/prefs-file.cc000066400000000000000000000032001475412772400162150ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #include #include #include #include extern "C" { #include // for chmod #include // for chmod } #include #include #include "prefs-file.h" using namespace pan; void PrefsFile :: set_from_file (const StringView& filename) { std::string s; if (file :: get_text_file_contents (filename, s)) from_string (s); } PrefsFile :: PrefsFile (const StringView& filename): _filename (filename.to_string()) { set_from_file (_filename); } PrefsFile :: ~PrefsFile () { save (); } void PrefsFile :: save () const { std::string s; to_string (0, s); std::ofstream out (_filename.c_str()); out << "\n" << "\n" << s << "\n"; out.close (); chmod (_filename.c_str(), 0600); } pan-0.162/pan/gui/prefs-file.h000066400000000000000000000022601475412772400160640ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #ifndef _PrefsFile_h_ #define _PrefsFile_h_ #include "prefs.h" namespace pan { class PrefsFile: public Prefs { public: PrefsFile (const StringView& filename); ~PrefsFile (); void save () const override; private: std::string _filename; private: void set_from_file (const StringView& filename); void set_from_xml (const StringView& xml_string); }; } #endif pan-0.162/pan/gui/prefs-ui.cc000066400000000000000000001636631475412772400157370ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #include #include #include #include #include #include #include #include "hig.h" #include #include "pad.h" #include "pan-file-entry.h" #include "pan/gui/load-icon.h" #include "prefs-ui.h" #include "tango-colors.h" #include "url.h" #include #include #include "e-charset-dialog.h" #include "actions-extern.h" #ifdef HAVE_GKR #define USE_LIBSECRET_DEFAULT true #else #define USE_LIBSECRET_DEFAULT false #endif extern "C" { #include } #include using namespace pan; namespace pan { typedef PrefsDialog::CallBackData CallBackData; typedef std::map keymap_t; struct HotkeyData { GtkWidget* w; int* row; Prefs* prefs; keymap_t keys; }; static HotkeyData hotkey_data; static gboolean hotkey_key_press_cb(GtkWidget *dialog, GdkEventKey *event, gpointer user_data) { gchar *str; gint state; CallBackData* data = static_cast(user_data); state = event->state & gtk_accelerator_get_default_mod_mask(); if (event->keyval == GDK_KEY_Escape) return FALSE; /* close the dialog, don't allow escape when detecting keybindings. */ str = gtk_accelerator_name(event->keyval, GdkModifierType(state)); gtk_label_set_text(GTK_LABEL(data->label), str); g_free(str); return TRUE; } static void hotkey_dialog_response_cb(GtkWidget *dialog, gint response, gpointer user_data) { if (response == GTK_RESPONSE_ACCEPT) { // update hotkey in database static_cast(user_data)->dialog->update_hotkey(user_data); } gtk_widget_destroy(dialog); // user_data pointer must not be destroyed otherwise user cannot // edit twice the same shortcut without getting a core dump. This // may be flagged as a memory leak, but it's limited. //delete static_cast(user_data); } } void PrefsDialog :: update_hotkey (gpointer user_data) { CallBackData* data = static_cast(user_data); guint lkey; GdkModifierType lmods; GtkAccelKey acc_key; gchar const *str = gtk_label_get_text(GTK_LABEL(data->label)); gtk_accelerator_parse(str, &lkey, &lmods); acc_key.accel_key = lkey; acc_key.accel_mods = lmods; gtk_accel_map_change_entry(data->name.c_str(), lkey, lmods, true); hotkey_data.keys[data->name] = acc_key; gtk_entry_set_text(GTK_ENTRY(data->entry), str); } void PrefsDialog :: edit_shortkey (gpointer user_data) { CallBackData* data = static_cast(user_data); GtkWidget *dialog; GtkWidget *label; gchar *str; dialog = gtk_dialog_new_with_buttons(_("Grab Key"), GTK_WINDOW(root()), GtkDialogFlags(GTK_DIALOG_MODAL|GTK_DIALOG_DESTROY_WITH_PARENT), GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OK, GTK_RESPONSE_ACCEPT, nullptr); str = g_strdup_printf( _("Press the combination of the keys\nyou want to use for \"%s\"."), data->value.c_str()); label = gtk_label_new(str); gtk_box_pack_start (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (dialog))), label, FALSE, FALSE, 5); data->label = gtk_label_new(""); gtk_box_pack_start (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (dialog))), data->label, FALSE, FALSE, 5); g_signal_connect(dialog, "key-press-event", G_CALLBACK(hotkey_key_press_cb), user_data); g_signal_connect(dialog, "response", G_CALLBACK(hotkey_dialog_response_cb), user_data); gtk_widget_show_all(dialog); g_free(str); } void PrefsDialog :: edit_shortkey_cb (GtkMenuItem *mi, gpointer ptr) { static_cast(ptr)->dialog->edit_shortkey(ptr); } void PrefsDialog :: populate_popup (GtkEntry *e, GtkMenu *m) { GtkWidget * mi = gtk_menu_item_new(); gtk_widget_show (mi); gtk_menu_shell_prepend (GTK_MENU_SHELL(m), mi); mi = gtk_menu_item_new_with_mnemonic (_("Edit Shortcut")); g_signal_connect (mi, "activate", G_CALLBACK(edit_shortkey_cb), g_object_get_data(G_OBJECT(e), "data")); gtk_widget_show_all (mi); gtk_menu_shell_prepend (GTK_MENU_SHELL(m), mi); } namespace pan { std::string get_accel_filename () { char * tmp = g_build_filename (file::get_pan_home().c_str(), "accels.txt", nullptr); std::string ret (tmp); g_free (tmp); return ret; } void populate_popup_cb (GtkEntry *e, GtkMenu *m, gpointer ptr) { g_object_set_data (G_OBJECT (e), "data", ptr); static_cast(ptr)->dialog->populate_popup(e, m); } void hotkey_entry_changed_cb (GtkEntry * e, gpointer gpointer) { char* name = static_cast(gpointer); char const *value = gtk_entry_get_text(e); gtk_entry_set_icon_activatable(e, GTK_ENTRY_ICON_PRIMARY, false); // gtk_entry_set_icon_from_stock(e, GTK_ENTRY_ICON_PRIMARY, nullptr); gtk_entry_set_icon_tooltip_text (e, GTK_ENTRY_ICON_PRIMARY, nullptr); // empty text if (!value || !*value) { gtk_entry_set_icon_from_icon_name(e, GTK_ENTRY_ICON_PRIMARY, nullptr); gtk_entry_set_icon_tooltip_text (e, GTK_ENTRY_ICON_PRIMARY, nullptr); // reset in map and remove accelerator GtkAccelKey tmp; guint tmpkey; GdkModifierType tmpmod; gtk_accelerator_parse ("",&tmpkey,&tmpmod); hotkey_data.keys[name] = tmp; gtk_accel_map_change_entry (name, tmpkey, tmpmod, true); return; } guint key; GdkModifierType mod; GtkAccelKey acc_key; gtk_accelerator_parse (value,&key,&mod); acc_key.accel_key = key; acc_key.accel_mods = mod; if (!gtk_accelerator_valid(acc_key.accel_key, acc_key.accel_mods)) { gtk_entry_set_icon_from_icon_name(e, GTK_ENTRY_ICON_PRIMARY, "dialog-warning"); gtk_entry_set_icon_tooltip_text (e, GTK_ENTRY_ICON_PRIMARY, _("Error: Shortcut key is invalid!")); return; } bool found(false); // search for duplicate key entry foreach (keymap_t, hotkey_data.keys, it) { if (!strcmp(name, it->first.c_str())) continue; if (it->second.accel_key == key && it->second.accel_mods == mod) { found=true; break;} } if (found) { gtk_entry_set_icon_from_icon_name(e, GTK_ENTRY_ICON_PRIMARY, "dialog-warning"); gtk_entry_set_icon_tooltip_text(e, GTK_ENTRY_ICON_PRIMARY, _("Error: Shortcut key already exists!")); } else { gtk_entry_set_icon_from_icon_name(e, GTK_ENTRY_ICON_PRIMARY, nullptr); gtk_entry_set_icon_tooltip_text(e, GTK_ENTRY_ICON_PRIMARY, nullptr); hotkey_data.keys[name] = acc_key; } } void process_accels(gpointer _data, gchar const *accel_path, guint accel_key, GdkModifierType accel_mods, gboolean changed) { HotkeyData* data = static_cast(_data); GtkAccelKey key; key.accel_key = accel_key; key.accel_mods = accel_mods; data->keys[accel_path] = key; guint _key; GdkModifierType _mod; GtkAccelKey acc_key; } void save_accels() { // get changed accels from map and reset them to their values foreach (keymap_t, hotkey_data.keys, it) { gtk_accel_map_change_entry (it->first.c_str(), it->second.accel_key, it->second.accel_mods, true); } // save 'em const std::string accel_filename (get_accel_filename()); gtk_accel_map_save (accel_filename.c_str()); chmod (accel_filename.c_str(), 0600); } void delete_prefs_dialog (gpointer castme) { PrefsDialog* pd(static_cast(castme)); save_accels(); pd->prefs().set_int("prefs-last-selected-page", gtk_notebook_get_current_page(GTK_NOTEBOOK(pd->notebook()))); pd->prefs().remove_listener(pd); delete pd; } void response_cb (GtkDialog * dialog, int, gpointer) { gtk_widget_destroy (GTK_WIDGET(dialog)); } #define PREFS_KEY "prefs-key" #define PREFS_VAL "prefs-val" void toggled_cb (GtkToggleButton * toggle, gpointer prefs_gpointer) { char const *key = (char const *)g_object_get_data(G_OBJECT(toggle), PREFS_KEY); if (key) static_cast(prefs_gpointer)->set_flag (key, gtk_toggle_button_get_active(toggle)); } void entry_changed_cb (GtkEntry * e, gpointer prefs_gpointer) { char const *key = (char const *)g_object_get_data(G_OBJECT(e), PREFS_KEY); char const *val = gtk_entry_get_text(GTK_ENTRY(e)); if (key && val) static_cast(prefs_gpointer)->set_string (key, val); } void set_string_from_radio_cb (GtkToggleButton * toggle, gpointer prefs_gpointer) { char const *key = (char const *)g_object_get_data(G_OBJECT(toggle), PREFS_KEY); char const *val = (char const *)g_object_get_data(G_OBJECT(toggle), PREFS_VAL); if (key && val && gtk_toggle_button_get_active(toggle)) static_cast(prefs_gpointer)->set_string (key, val); } GtkWidget *new_check_button(char const *mnemonic, char const *key, bool fallback, Prefs &prefs) { GtkWidget * t = gtk_check_button_new_with_mnemonic (mnemonic); g_object_set_data_full (G_OBJECT(t), PREFS_KEY, g_strdup(key), g_free); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(t), prefs.get_flag (key, fallback)); g_signal_connect (t, "toggled", G_CALLBACK(toggled_cb), &prefs); return t; } GtkWidget *new_entry(char const *key, char const *fallback, Prefs &prefs) { GtkWidget * t = gtk_entry_new(); g_object_set_data_full (G_OBJECT(t), PREFS_KEY, g_strdup(key), g_free); gtk_entry_set_text (GTK_ENTRY(t), prefs.get_string (key, fallback).str); g_signal_connect (t, "changed", G_CALLBACK(entry_changed_cb), &prefs); return t; } GtkWidget *new_hotkey_entry(char const *value, char const *name, gpointer ptr) { GtkWidget * t = gtk_entry_new(); static_cast(ptr)->entry = t; gtk_entry_set_text (GTK_ENTRY(t), value); g_signal_connect (t, "changed", G_CALLBACK(hotkey_entry_changed_cb), gpointer(name)); g_signal_connect (t, "populate-popup", G_CALLBACK(populate_popup_cb), ptr); return t; } GtkWidget *new_layout_radio(GtkWidget *prev, char const *icon_file, char const *value, std::string &cur, Prefs &prefs) { GtkWidget * r = prev==nullptr ? gtk_radio_button_new (nullptr) : gtk_radio_button_new_from_widget (GTK_RADIO_BUTTON(prev)); GdkPixbuf * pixbuf = load_icon (icon_file); GtkWidget * image = gtk_image_new_from_pixbuf (pixbuf); if (pixbuf != nullptr) g_object_unref (pixbuf); gtk_container_add (GTK_CONTAINER(r), image); g_object_set_data_full (G_OBJECT(r), PREFS_KEY, g_strdup("pane-layout"), g_free); g_object_set_data_full (G_OBJECT(r), PREFS_VAL, g_strdup(value), g_free); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(r), cur==value); g_signal_connect (r, "toggled", G_CALLBACK(set_string_from_radio_cb), &prefs); return r; } void spin_value_changed_cb( GtkSpinButton *spin, gpointer data) { char const *key = (char const *)g_object_get_data(G_OBJECT(spin), PREFS_KEY); Prefs *prefs = static_cast(data); prefs->set_int(key, gtk_spin_button_get_value_as_int(spin)); } GtkWidget *new_spin_button(char const *key, int low, int high, Prefs &prefs) { guint tm = prefs.get_int(key, low ); GtkAdjustment *adj = (GtkAdjustment*) gtk_adjustment_new(tm, low, high, 1.0, 1.0, 0.0); GtkWidget *w = gtk_spin_button_new( adj, 1.0, 0); g_object_set_data_full(G_OBJECT(w), PREFS_KEY, g_strdup(key), g_free); g_signal_connect (w, "value_changed", G_CALLBACK(spin_value_changed_cb), &prefs); return w; } GtkWidget *new_orient_radio(GtkWidget *prev, char const *label, char const *value, std::string &cur, Prefs &prefs) { GtkWidget * r = prev==nullptr ? gtk_radio_button_new_with_label (nullptr, label) : gtk_radio_button_new_with_label_from_widget (GTK_RADIO_BUTTON(prev), label); g_object_set_data_full (G_OBJECT(r), PREFS_KEY, g_strdup("pane-orient"), g_free); g_object_set_data_full (G_OBJECT(r), PREFS_VAL, g_strdup(value), g_free); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(r), cur==value); g_signal_connect (r, "toggled", G_CALLBACK(set_string_from_radio_cb), &prefs); return r; } GtkWidget *new_label_with_icon(char const *mnemonic, char const *label, char const *icon_file, Prefs &prefs) { std::string what = prefs.get_string("elements-show-tabs", "text"); bool const text = "text" == what; bool const icons = "icons" == what; bool const both = "both" == what; GtkWidget* hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 2); GdkPixbuf * pixbuf = load_icon (icon_file); GtkWidget * image = gtk_image_new_from_pixbuf (pixbuf); if (pixbuf != nullptr) g_object_unref(pixbuf); if (icon_file && (icons || both)) gtk_box_pack_start (GTK_BOX(hbox), image, true, true, 0); if (text || both) gtk_box_pack_start (GTK_BOX(hbox), gtk_label_new_with_mnemonic(mnemonic), true, true, 0); gtk_widget_set_tooltip_text (hbox, label); gtk_widget_show_all(hbox); return hbox; } std::string remove_underscores (std::string& src) { std::string res (src); res.erase(std::remove(res.begin(), res.end(), '_'), res.end()); return res; } std::list fill_pref_hotkeys(GtkWidget* t, int& row, Prefs& prefs, gpointer dialog_ptr) { HIG::workarea_add_section_spacer (t, row, hotkey_data.keys.size()); GtkWidget* w, *l; gchar* keyval; std::list ptr_list; foreach (keymap_t, hotkey_data.keys, it) { keyval = gtk_accelerator_name (it->second.accel_key, it->second.accel_mods); std::string stripped = it->first; size_t f = stripped.find_last_of("/"); stripped = f != std::string::npos ? stripped.substr(f+1,stripped.size()) : stripped; CallBackData* data = new CallBackData(); // store the pointer so it can be destroyed when preferences widget is destroyed ptr_list.push_back(data); data->dialog = (PrefsDialog*)dialog_ptr; if (!it->first.empty()) data->name = it->first; data->value = stripped; w = new_hotkey_entry(keyval, it->first.c_str(), data); std::string label = remove_underscores(action_trans[stripped]); l = gtk_label_new(label.c_str()); HIG :: workarea_add_row (t, &row, w, l); } return ptr_list; } void set_prefs_string_from_editable (GtkEditable * editable, gpointer prefs_gpointer) { Prefs * prefs (static_cast(prefs_gpointer)); char const *key = (char const *)g_object_get_data(G_OBJECT(editable), PREFS_KEY); char * val = gtk_editable_get_chars (editable, 0, -1); prefs->set_string (key, val); g_free (val); } void maybe_make_widget_visible (GtkComboBox * c, gpointer user_data) { GtkWidget * w (GTK_WIDGET(user_data)); GtkWidget * c_parent (gtk_widget_get_parent (GTK_WIDGET(c))); GtkWidget * w_parent (gtk_widget_get_parent (GTK_WIDGET(w))); GtkTreeModel * model = gtk_combo_box_get_model (c); int const n_rows(gtk_tree_model_iter_n_children(model, nullptr)); bool const do_show(gtk_combo_box_get_active(c) == (n_rows - 1)); if (do_show && !w_parent && c_parent) // add it { gtk_box_pack_start (GTK_BOX(c_parent), w, true, true, 0); gtk_widget_show (w); g_object_unref (G_OBJECT(w)); } else if (!do_show && w_parent) // remove it { g_object_ref (G_OBJECT(w)); gtk_container_remove (GTK_CONTAINER(w_parent), w); } else if (!do_show && !w_parent && !c_parent) { gtk_widget_show_all (GTK_WIDGET(c)); } } void set_prefs_string_from_combo_box_entry (GtkComboBoxText * c, gpointer user_data) { char const *key = (char const *)g_object_get_data(G_OBJECT(c), PREFS_KEY); char * val = gtk_combo_box_text_get_active_text (c); static_cast(user_data)->set_string (key, val); g_free (val); } GtkWidget* html_previewer_new (Prefs& prefs) { char const *key = "html-previewer"; // const std::string editor = prefs.get_string (key, "mutt"); // editors.insert (editor); GtkWidget * c = gtk_combo_box_text_new_with_entry (); g_object_set_data_full (G_OBJECT(c), PREFS_KEY, g_strdup(key), g_free); // foreach_const (std::set, editors, it) // gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(c), it->c_str()); // gtk_combo_box_set_active (GTK_COMBO_BOX(c), // (int)std::distance (editors.begin(), editors.find(editor))); g_signal_connect (c, "changed", G_CALLBACK(set_prefs_string_from_combo_box_entry), &prefs); return c; } GtkWidget* editor_new (Prefs& prefs) { std::set editors; URL :: get_default_editors (editors); char const *key = "editor"; const std::string editor = prefs.get_string (key, *editors.begin()); editors.insert (editor); GtkWidget * c = gtk_combo_box_text_new_with_entry (); g_object_set_data_full (G_OBJECT(c), PREFS_KEY, g_strdup(key), g_free); foreach_const (std::set, editors, it) gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(c), it->c_str()); gtk_combo_box_set_active (GTK_COMBO_BOX(c), (int)std::distance (editors.begin(), editors.find(editor))); g_signal_connect (c, "changed", G_CALLBACK(set_prefs_string_from_combo_box_entry), &prefs); return c; } void set_prefs_string_from_combobox (GtkComboBox * c, gpointer user_data) { Prefs * prefs (static_cast(user_data)); char const *key = (char const *)g_object_get_data(G_OBJECT(c), PREFS_KEY); prefs->_rules_changed = strcmp(key,"rules-"); int const column = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(c), "column")); int const row(gtk_combo_box_get_active(c)); GtkTreeModel * m = gtk_combo_box_get_model (c); GtkTreeIter i; if (gtk_tree_model_iter_nth_child (m, &i, nullptr, row)) { char * val (nullptr); gtk_tree_model_get (m, &i, column, &val, -1); prefs->set_string (key, val); g_free (val); } } GtkWidget *new_tabs_combo_box(Prefs &prefs, char const *mode_key) { char const *strings[3][2] = { {N_("Show only icons"), "icons"}, {N_("Show only text"), "text"}, {N_("Show icons and text"), "both"}, }; const std::string mode (prefs.get_string (mode_key, "text")); GtkListStore * store = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_STRING); int sel_index (0); for (size_t i=0; i(prefs_gpointer)->set_string (key, val); } GtkWidget *new_font_button(char const *key, char const *fallback, Prefs &prefs) { const std::string val (prefs.get_string (key, fallback)); GtkWidget * b = gtk_font_button_new_with_font (val.c_str()); g_object_set_data_full (G_OBJECT(b), PREFS_KEY, g_strdup(key), g_free); g_signal_connect (b, "font-set", G_CALLBACK(font_set_cb), &prefs); return b; } void color_set_cb (GtkColorButton* b, gpointer prefs_gpointer) { char const *key = (char const *)g_object_get_data(G_OBJECT(b), PREFS_KEY); GdkRGBA val; gtk_color_chooser_get_rgba((GtkColorChooser*)b, &val); if (key && *key) static_cast(prefs_gpointer)->set_color (key, val); } GtkWidget *new_color_button(char const *key, char const *fallback, Prefs &prefs) { GdkRGBA rgba_val (prefs.get_color (key, fallback));; GtkWidget * b = gtk_color_button_new_with_rgba (&rgba_val); g_object_set_data_full (G_OBJECT(b), PREFS_KEY, g_strdup(key), g_free); g_signal_connect (b, "color-set", G_CALLBACK(color_set_cb), &prefs); return b; } } void PrefsDialog ::update_default_charset_label(StringView const &value) { char buf[256]; g_snprintf(buf, sizeof(buf),_("Select default global character set. Current setting: %s."), value.str); gtk_label_set_markup(GTK_LABEL(charset_label), buf); gtk_widget_show_all(charset_label); } void PrefsDialog ::on_prefs_string_changed(StringView const &key, StringView const &value) { if (key == "default-charset") { _prefs.save(); update_default_charset_label(value); } } void PrefsDialog ::on_prefs_flag_changed(StringView const &key, bool value) { if (key == "allow-multiple-instances") _prefs.save(); } namespace { void select_prefs_charset_cb (GtkButton *, gpointer user_data) { PrefsDialog* pd (static_cast(user_data)); std::string def = pd->prefs().get_string("default-charset", "UTF-8"); char * tmp = e_charset_dialog (_("Character Encoding"), _("Global Character Set Settings"), def.c_str(), GTK_WINDOW(pd->root())); if (!tmp) return; pd->prefs().set_string("default-charset", tmp); } } namespace { struct HeaderColInfo { GtkTreeView * view; GtkTreeSelection * sel; GtkListStore * store; Prefs * prefs; }; std::string get_header_column_string (GtkTreeModel * model) { std::string s; GtkTreeIter iter; if (gtk_tree_model_get_iter_first (model, &iter)) do { gboolean enabled; char * key (nullptr); gtk_tree_model_get (model, &iter, 0, &enabled, 1, &key, -1); if (enabled) s += std::string(key) + ","; g_free (key); } while (gtk_tree_model_iter_next (model, &iter)); if (!s.empty()) s.resize (s.size()-1); // strip trailing comma return s; } void header_column_up_cb (GtkButton *, gpointer user_data) { HeaderColInfo& info (*static_cast(user_data)); GtkTreeIter sel_iter; gtk_tree_selection_get_selected (info.sel, nullptr, &sel_iter); GtkTreePath * path = gtk_tree_model_get_path (GTK_TREE_MODEL(info.store), &sel_iter); if (gtk_tree_path_prev (path)) { GtkTreeIter prev_iter; gtk_tree_model_get_iter (GTK_TREE_MODEL(info.store), &prev_iter, path); gtk_list_store_move_after (info.store, &prev_iter, &sel_iter); info.prefs->set_string ("header-pane-columns", get_header_column_string (GTK_TREE_MODEL(info.store))); } gtk_tree_path_free (path); } void header_column_down_cb (GtkButton *, gpointer user_data) { HeaderColInfo& info (*static_cast(user_data)); GtkTreeIter sel_iter; gtk_tree_selection_get_selected (info.sel, nullptr, &sel_iter); GtkTreeIter next_iter = sel_iter; if (gtk_tree_model_iter_next (GTK_TREE_MODEL(info.store), &next_iter)) { gtk_list_store_move_after (info.store, &sel_iter, &next_iter); info.prefs->set_string ("header-pane-columns", get_header_column_string (GTK_TREE_MODEL(info.store))); } } void header_col_enabled_toggled_cb (GtkCellRendererToggle * , gchar * path_str, gpointer user_data) { HeaderColInfo& info (*static_cast(user_data)); GtkTreeModel * model = GTK_TREE_MODEL(info.store); GtkTreeIter iter; GtkTreePath *path = gtk_tree_path_new_from_string (path_str); // toggle the value gboolean fixed; gtk_tree_model_get_iter (model, &iter, path); gtk_tree_model_get (model, &iter, 0, &fixed, -1); fixed = !fixed; gtk_list_store_set (info.store, &iter, 0, fixed, -1); info.prefs->set_string ("header-pane-columns", get_header_column_string (GTK_TREE_MODEL(info.store))); // clean up gtk_tree_path_free (path); } GtkWidget* header_columns_layout_new (Prefs& prefs) { typedef std::map key_to_name_t; key_to_name_t key_to_name; key_to_name["action"] = _("Action"); key_to_name["author"] = _("Author"); key_to_name["bytes"] = _("Bytes"); key_to_name["date"] = _("Date"); key_to_name["lines"] = _("Lines"); key_to_name["score"] = _("Score"); key_to_name["state"] = _("State"); key_to_name["subject"] = _("Subject"); GtkListStore * store = gtk_list_store_new (3, G_TYPE_BOOLEAN, G_TYPE_STRING, G_TYPE_STRING); const std::string column_keys = prefs.get_string ("header-pane-columns", "state,action,subject,score,author,lines,date"); StringView v(column_keys), tok; while (v.pop_token (tok, ',')) { const std::string key (tok.to_string()); GtkTreeIter iter; gtk_list_store_append (store, &iter); gtk_list_store_set (store, &iter, 0, true, 1, key.c_str(), 2, key_to_name[key].c_str(), -1); key_to_name.erase (key); } foreach_const (key_to_name_t, key_to_name, it) { GtkTreeIter iter; gtk_list_store_append (store, &iter); gtk_list_store_set (store, &iter, 0, false, 1, it->first.c_str(), 2, it->second.c_str(), -1); } GtkWidget * view = gtk_tree_view_new_with_model (GTK_TREE_MODEL(store)); GtkTreeSelection * sel = gtk_tree_view_get_selection (GTK_TREE_VIEW(view)); HeaderColInfo * info = g_new (HeaderColInfo, 1); info->store = store; info->prefs = &prefs; info->view = GTK_TREE_VIEW(view); info->sel = sel; g_object_weak_ref (G_OBJECT(view), (GWeakNotify)g_free, info); GtkCellRenderer * r = GTK_CELL_RENDERER (g_object_new (GTK_TYPE_CELL_RENDERER_TOGGLE, nullptr)); GtkTreeViewColumn * col = gtk_tree_view_column_new_with_attributes (_("Enabled"), r, "active", 0, nullptr); gtk_tree_view_append_column (GTK_TREE_VIEW(view), col); g_signal_connect (r, "toggled", G_CALLBACK(header_col_enabled_toggled_cb), info); r = GTK_CELL_RENDERER (g_object_new (GTK_TYPE_CELL_RENDERER_TEXT, nullptr)); col = gtk_tree_view_column_new_with_attributes (_("Column Name"), r, "text", 2, nullptr); gtk_tree_view_append_column (GTK_TREE_VIEW(view), col); gtk_tree_selection_set_mode (sel, GTK_SELECTION_BROWSE); GtkTreeIter iter; gtk_tree_model_get_iter_first (GTK_TREE_MODEL(store), &iter); gtk_tree_selection_select_iter (sel, &iter); GtkWidget * f = gtk_frame_new (nullptr); gtk_frame_set_shadow_type (GTK_FRAME(f), GTK_SHADOW_IN); gtk_container_add (GTK_CONTAINER(f), view); GtkWidget * hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, PAD); gtk_box_pack_start (GTK_BOX(hbox), f, true, true, 0); GtkWidget * vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, PAD); GtkWidget * up = gtk_button_new_from_stock (GTK_STOCK_GO_UP); gtk_box_pack_start (GTK_BOX(vbox), up, false, false, 0); GtkWidget * down = gtk_button_new_from_stock (GTK_STOCK_GO_DOWN); gtk_box_pack_start (GTK_BOX(vbox), down, false, false, 0); gtk_box_pack_start (GTK_BOX(hbox), vbox, false, false, 0); g_signal_connect (up, "clicked", G_CALLBACK(header_column_up_cb), info); g_signal_connect (down, "clicked", G_CALLBACK(header_column_down_cb), info); return hbox; } void font_toggled_cb (GtkToggleButton * tb, gpointer user_data) { bool const active(gtk_toggle_button_get_active(tb)); gtk_widget_set_sensitive (GTK_WIDGET(user_data), active); } } PrefsDialog :: ~PrefsDialog () { // free pointer created when constructing shortcut editor widget while(!shortcut_ptr_list.empty()) { free(shortcut_ptr_list.back()); shortcut_ptr_list.pop_back(); } } PrefsDialog :: PrefsDialog (Prefs& prefs, GtkWindow* parent): _prefs (prefs) { prefs.add_listener(this); gtk_accel_map_foreach (&hotkey_data, process_accels); GtkWidget * dialog = gtk_dialog_new_with_buttons (_("Pan: Preferences"), parent, GTK_DIALOG_DESTROY_WITH_PARENT, GTK_STOCK_OK, GTK_RESPONSE_ACCEPT, nullptr); gtk_window_set_role (GTK_WINDOW(dialog), "pan-preferences-dialog"); g_signal_connect (dialog, "response", G_CALLBACK(response_cb), this); g_signal_connect_swapped (dialog, "destroy", G_CALLBACK(delete_prefs_dialog), this); GtkWidget* notebook = _notebook = gtk_notebook_new (); gtk_notebook_set_scrollable (GTK_NOTEBOOK(notebook), true); // Behavior int row (0); GtkWidget *h, *w, *l, *b, *t; t = HIG :: workarea_create (); HIG::workarea_add_section_title (t, &row, _("Mouse")); HIG :: workarea_add_section_spacer (t, row, 2); w = new_check_button (_("Single-click activates, rather than selects, _groups"), "single-click-activates-group", true, prefs); HIG :: workarea_add_wide_control (t, &row, w); w = new_check_button (_("Single-click activates, rather than selects, _articles"), "single-click-activates-article", true, prefs); HIG :: workarea_add_wide_control (t, &row, w); HIG::workarea_add_section_divider (t, &row); HIG::workarea_add_section_title (t, &row, _("Groups")); HIG::workarea_add_section_spacer (t, row, 5); w = new_check_button (_("Get new headers in subscribed groups on _startup"), "get-new-headers-on-startup", false, prefs); HIG :: workarea_add_wide_control (t, &row, w); w = new_check_button (_("Get new headers when _entering group"), "get-new-headers-when-entering-group", true, prefs); HIG :: workarea_add_wide_control (t, &row, w); w = new_check_button (_("Mark entire group _read when leaving group"), "mark-group-read-when-leaving-group", false, prefs); HIG :: workarea_add_wide_control (t, &row, w); w = new_check_button (_("Mark entire group read before getting _new headers"), "mark-group-read-before-xover", false, prefs); HIG :: workarea_add_wide_control (t, &row, w); w = new_check_button (_("E_xpand all threads when entering group"), "expand-threads-when-entering-group", false, prefs); HIG :: workarea_add_wide_control (t, &row, w); HIG::workarea_add_section_divider (t, &row); HIG :: workarea_add_section_title (t, &row, _("Articles")); HIG :: workarea_add_section_spacer (t, row, 6); w = new_check_button (_("Mark downloaded articles read"), "mark-downloaded-articles-read", false, prefs); HIG :: workarea_add_wide_control (t, &row, w); w = new_check_button (_("Space selects next article rather than next unread"), "space-selects-next-article", true, prefs); HIG :: workarea_add_wide_control (t, &row, w); w = new_check_button (_("Expand threads upon selection"), "expand-selected-articles", false, prefs); HIG :: workarea_add_wide_control (t, &row, w); w = new_check_button (_("Always ask before deleting an article"), "show-deletion-confirm-dialog", true, prefs); HIG :: workarea_add_wide_control (t, &row, w); w = new_check_button (_("Smooth scrolling"), "smooth-scrolling", true, prefs); HIG :: workarea_add_wide_control (t, &row, w); HIG::workarea_add_section_divider (t, &row); HIG :: workarea_add_section_title (t, &row, _("Article Cache")); w = new_check_button (_("Clear article cache on shutdown"), "clear-article-cache-on-shutdown", false, prefs); HIG :: workarea_add_wide_control (t, &row, w); w = new_spin_button ("cache-size-megs", 10, 1024*16, prefs); l = gtk_label_new(_("Size of article cache (in MiB):")); gtk_label_set_mnemonic_widget(GTK_LABEL(l), w); HIG::workarea_add_row (t, &row, l, w); w = new_entry ("cache-file-extension", "msg", prefs); l = gtk_label_new(_("File extension for cached articles: ")); HIG :: workarea_add_row (t, &row, l, w); HIG::workarea_add_section_divider (t, &row); HIG :: workarea_add_section_title (t, &row, _("Tabs")); w = new_tabs_combo_box(prefs, "elements-show-tabs"); HIG :: workarea_add_wide_control (t, &row, w); HIG :: workarea_finish (t, &row); gtk_notebook_append_page (GTK_NOTEBOOK(notebook), t, new_label_with_icon(_("_Behavior"), _("Behavior"), "icon_prefs_behavior.png", prefs)); // pane options row = 0; t = HIG :: workarea_create (); HIG::workarea_add_section_spacer (t, row, 1); HIG :: workarea_add_section_title (t, &row, _("Task Pane")); w = new_check_button (_("Show task pane popups"), "show-taskpane-popups", true, prefs); HIG :: workarea_add_wide_control (t, &row, w); w = new_check_button (_("Show Download Meter"), "dl-meter-show", true, prefs); HIG :: workarea_add_wide_control (t, &row, w); HIG::workarea_add_section_divider (t, &row); HIG :: workarea_finish (t, &row); gtk_notebook_append_page (GTK_NOTEBOOK(notebook), t, new_label_with_icon(_("_Panes"), _("Panes"), "icon_prefs_panes.png", prefs)); //charset row = 0; t = HIG :: workarea_create (); HIG :: workarea_add_section_spacer (t, row, 1); HIG :: workarea_add_section_title (t, &row, _("Language Settings")); w = gtk_button_new_with_label (_("Font")); l = charset_label = gtk_label_new (nullptr); update_default_charset_label(_prefs.get_string("default-charset","UTF-8")); g_signal_connect (w, "clicked", G_CALLBACK(select_prefs_charset_cb), this); HIG::workarea_add_row (t, &row, w, l); // systray and notify popup #ifdef HAVE_LIBNOTIFY HIG :: workarea_add_section_title (t, &row, _("System Tray Behavior")); HIG :: workarea_add_section_spacer (t, row, 3); w = new_check_button (_("Show notifications"), "use-notify", false, prefs); HIG :: workarea_add_wide_control (t, &row, w); #endif // allow multiple instances (seperate, not communicating with dbus) HIG :: workarea_add_section_title (t, &row, _("Startup Behavior")); HIG :: workarea_add_section_spacer (t, row, 1); w = new_check_button (_("Allow multiple instances of Pan"), "allow-multiple-instances", false, prefs); HIG :: workarea_add_wide_control (t, &row, w); // Autosave Features HIG :: workarea_add_section_spacer (t, row, 2); HIG :: workarea_add_section_title (t, &row, _("Autosave Article Draft")); w = new_spin_button ("draft-autosave-timeout-min", 0, 60, prefs); l = gtk_label_new(_("Minutes to autosave the current Article Draft: ")); gtk_label_set_xalign (GTK_LABEL(l), 0.0); gtk_label_set_yalign (GTK_LABEL(l), 0.5); gtk_label_set_mnemonic_widget(GTK_LABEL(l), w); HIG::workarea_add_row (t, &row, l, w); HIG::workarea_add_section_divider (t, &row); HIG :: workarea_add_section_title (t, &row, _("Autosave Articles")); w = new_spin_button ("newsrc-autosave-timeout-min", 0, 60, prefs); l = gtk_label_new(_("Minutes to autosave newsrc files: ")); gtk_label_set_xalign (GTK_LABEL(l), 0.0); gtk_label_set_yalign (GTK_LABEL(l), 0.5); gtk_label_set_mnemonic_widget(GTK_LABEL(l), w); HIG::workarea_add_row (t, &row, l, w); // Gnome Keyring Option HIG :: workarea_add_section_spacer (t, row, 2); HIG :: workarea_add_section_title (t, &row, _("Password Storage")); w = new_check_button ( _( "Save passwords in password storage"), "use-password-storage", USE_LIBSECRET_DEFAULT, prefs); HIG :: workarea_add_wide_control (t, &row, w); HIG :: workarea_finish (t, &row); gtk_notebook_append_page (GTK_NOTEBOOK(notebook), t, new_label_with_icon(_("_Miscellaneous"), _("Miscellaneous"), "icon_prefs_extras.png", prefs)); // Layout row = 0; t = HIG :: workarea_create (); HIG :: workarea_add_section_title (t, &row, _("Pane Layout")); std::string cur = _prefs.get_string ("pane-layout", "stacked-right"); HIG :: workarea_add_section_spacer (t, row, 1); h = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, PAD); w = new_layout_radio (nullptr, "icon_layout_1.png", "stacked-top", cur, prefs); gtk_box_pack_start (GTK_BOX(h), w, false, false, 0); w = new_layout_radio (w, "icon_layout_2.png", "stacked-bottom", cur, prefs); gtk_box_pack_start (GTK_BOX(h), w, false, false, 0); w = new_layout_radio (w, "icon_layout_3.png", "stacked-left", cur, prefs); gtk_box_pack_start (GTK_BOX(h), w, false, false, 0); w = new_layout_radio (w, "icon_layout_4.png", "stacked-right", cur, prefs); gtk_box_pack_start (GTK_BOX(h), w, false, false, 0); w = new_layout_radio (w, "icon_layout_5.png", "stacked-vertical", cur, prefs); gtk_box_pack_start (GTK_BOX(h), w, false, false, 0); HIG::workarea_add_wide_control (t, &row, h); HIG :: workarea_add_section_divider (t, &row); HIG :: workarea_add_section_title (t, &row, _("Tasks")); HIG :: workarea_add_section_spacer (t, row, 6); cur = _prefs.get_string ("pane-orient", "groups,headers,body"); w = new_orient_radio (nullptr, _("1=Groups, 2=Headers, 3=Body"), "groups,headers,body", cur, prefs); HIG :: workarea_add_wide_control (t, &row, w); w = new_orient_radio (w, _("1=Groups, 2=Body, 3=Headers"), "groups,body,headers", cur, prefs); HIG :: workarea_add_wide_control (t, &row, w); w = new_orient_radio (w, _("1=Headers, 2=Groups, 3=Body"), "headers,groups,body", cur, prefs); HIG :: workarea_add_wide_control (t, &row, w); w = new_orient_radio (w, _("1=Headers, 2=Body, 3=Groups"), "headers,body,groups", cur, prefs); HIG :: workarea_add_wide_control (t, &row, w); w = new_orient_radio (w, _("1=Body, 2=Groups, 3=Headers"), "body,groups,headers", cur, prefs); HIG :: workarea_add_wide_control (t, &row, w); w = new_orient_radio (w, _("1=Body, 2=Headers, 3=Groups"), "body,headers,groups", cur, prefs); HIG :: workarea_add_wide_control (t, &row, w); HIG :: workarea_finish (t, &row); gtk_notebook_append_page (GTK_NOTEBOOK(notebook), t, new_label_with_icon(_("_Layout"), _("Layout"), "icon_prefs_layout.png", prefs)); // Headers row = 0; t = HIG :: workarea_create (); HIG :: workarea_add_section_title (t, &row, _("Header Pane Columns")); HIG :: workarea_add_section_spacer(t, row, 1); HIG :: workarea_add_wide_control (t, &row, header_columns_layout_new (prefs)); HIG :: workarea_finish (t, &row); gtk_notebook_append_page (GTK_NOTEBOOK(notebook), t, new_label_with_icon(_("_Headers"), _("Headers"), "icon_prefs_headers.png", prefs)); // customizable actions row = 0; t = HIG :: workarea_create (); gtk_widget_set_tooltip_text (t, _("This menu lets you configure Pan to take certain actions on your behalf automatically, " "based on an article's score.")); int i(0); GtkWidget** action_combo = new GtkWidget*[2]; char* tmp = _("Mark affected articles read"); action_combo[i++] = new_check_button (tmp, "rules-autocache-mark-read", false, prefs); action_combo[i++] = new_check_button (tmp, "rules-auto-dl-mark-read", false, prefs); i=0; w = score_handler_new (prefs, "rules-delete-value", "never", b); h = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, PAD); gtk_box_pack_start (GTK_BOX(h), w, false, false, 0); gtk_box_pack_start (GTK_BOX(h), gtk_label_new(nullptr), false, false, 0); HIG :: workarea_add_row (t, &row, _("_Delete articles scoring at: "), h); w = score_handler_new (prefs, "rules-mark-read-value", "never", b); h = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, PAD); gtk_box_pack_start (GTK_BOX(h), w, false, false, 0); gtk_box_pack_start (GTK_BOX(h), gtk_label_new(nullptr), false, false, 0); HIG :: workarea_add_row (t, &row, _("Mark articles read scoring at: "), h); w = score_handler_new (prefs, "rules-autocache-value", "never", b); h = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, PAD); gtk_box_pack_start (GTK_BOX(h), w, false, false, 0); gtk_box_pack_start (GTK_BOX(h), action_combo[i++], false, false, 0); HIG :: workarea_add_row (t, &row, _("_Cache articles scoring at: "), h); w = score_handler_new (prefs, "rules-auto-dl-value", "never", b); h = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, PAD); gtk_box_pack_start (GTK_BOX(h), w, false, false, 0); gtk_box_pack_start (GTK_BOX(h), action_combo[i++], false, false, 0); HIG :: workarea_add_row (t, &row, _("Download attachments of articles scoring at: "), h); HIG :: workarea_finish (t, &row); gtk_notebook_append_page (GTK_NOTEBOOK(notebook), t, new_label_with_icon(_("_Actions"), _("Actions"), "icon_prefs_actions.png", prefs)); // Fonts row = 0; t = HIG :: workarea_create (); HIG :: workarea_add_section_title (t, &row, _("Fonts")); HIG :: workarea_add_section_spacer (t, row, 4); l = new_check_button (_("Use custom font in Group Pane:"), "group-pane-font-enabled", false, prefs); b = new_font_button ("group-pane-font", "Sans 10", prefs); g_signal_connect (l, "toggled", G_CALLBACK(font_toggled_cb), b); font_toggled_cb (GTK_TOGGLE_BUTTON(l), b); HIG :: workarea_add_row (t, &row, l, b); l = new_check_button (_("Use custom font in Header Pane:"), "header-pane-font-enabled", false, prefs); b = new_font_button ("header-pane-font", "Sans 10", prefs); g_signal_connect (l, "toggled", G_CALLBACK(font_toggled_cb), b); font_toggled_cb (GTK_TOGGLE_BUTTON(l), b); HIG :: workarea_add_row (t, &row, l, b); l = new_check_button (_("Use custom font in Body Pane:"), "body-pane-font-enabled", false, prefs); b = new_font_button ("body-pane-font", "Sans 10", prefs); g_signal_connect (l, "toggled", G_CALLBACK(font_toggled_cb), b); font_toggled_cb (GTK_TOGGLE_BUTTON(l), b); HIG :: workarea_add_row (t, &row, l, b); l = gtk_label_new_with_mnemonic (_("Monospace font:")); b = new_font_button ("monospace-font", "Monospace 10", prefs); HIG :: workarea_add_row (t, &row, l, b); HIG :: workarea_finish (t, &row); gtk_notebook_append_page (GTK_NOTEBOOK(notebook), t, new_label_with_icon(_("_Fonts"), _("Fonts"), "icon_prefs_fonts.png", prefs)); // default color theme's Colors PanColors const &colors(PanColors::get()); char const *def_color_str(colors.def_bg.c_str()); char const *def_color_fg_str(colors.def_fg.c_str()); row = 0; t = HIG :: workarea_create (); HIG :: workarea_add_section_title (t, &row, _("Header Pane")); HIG :: workarea_add_section_spacer(t, row, 6); h = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, PAD); pan_box_pack_start_defaults (GTK_BOX(h), gtk_label_new (_("Text:"))); pan_box_pack_start_defaults (GTK_BOX(h), new_color_button ("score-color-watched-fg", def_color_str, prefs)); pan_box_pack_start_defaults (GTK_BOX(h), gtk_label_new (_("Background:"))); pan_box_pack_start_defaults (GTK_BOX(h), new_color_button ("score-color-watched-bg", TANGO_CHAMELEON_LIGHT, prefs)); HIG :: workarea_add_row (t, &row, _("Scores of 9999 or more:"), h); h = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, PAD); pan_box_pack_start_defaults (GTK_BOX(h), gtk_label_new (_("Text:"))); pan_box_pack_start_defaults (GTK_BOX(h), new_color_button ("score-color-high-fg", def_color_str, prefs)); pan_box_pack_start_defaults (GTK_BOX(h), gtk_label_new (_("Background:"))); pan_box_pack_start_defaults (GTK_BOX(h), new_color_button ("score-color-high-bg", TANGO_BUTTER_LIGHT, prefs)); HIG :: workarea_add_row (t, &row, _("Scores from 5000 to 9998:"), h); h = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, PAD); pan_box_pack_start_defaults (GTK_BOX(h), gtk_label_new (_("Text:"))); pan_box_pack_start_defaults (GTK_BOX(h), new_color_button ("score-color-medium-fg", def_color_str, prefs)); pan_box_pack_start_defaults (GTK_BOX(h), gtk_label_new (_("Background:"))); pan_box_pack_start_defaults (GTK_BOX(h), new_color_button ("score-color-medium-bg", TANGO_SKY_BLUE_LIGHT, prefs)); HIG :: workarea_add_row (t, &row, _("Scores from 1 to 4999:"), h); h = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, PAD); pan_box_pack_start_defaults (GTK_BOX(h), gtk_label_new (_("Text:"))); pan_box_pack_start_defaults (GTK_BOX(h), new_color_button ("score-color-low-fg", TANGO_ALUMINUM_2, prefs)); pan_box_pack_start_defaults (GTK_BOX(h), gtk_label_new (_("Background:"))); pan_box_pack_start_defaults (GTK_BOX(h), new_color_button ("score-color-low-bg", def_color_str, prefs)); HIG :: workarea_add_row (t, &row, _("Scores from -9998 to -1:"), h); h = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, PAD); pan_box_pack_start_defaults (GTK_BOX(h), gtk_label_new (_("Text:"))); pan_box_pack_start_defaults (GTK_BOX(h), new_color_button ("score-color-ignored-fg", TANGO_ALUMINUM_4, prefs)); pan_box_pack_start_defaults (GTK_BOX(h), gtk_label_new (_("Background:"))); pan_box_pack_start_defaults (GTK_BOX(h), new_color_button ("score-color-ignored-bg", def_color_str, prefs)); HIG :: workarea_add_row (t, &row, _("Scores of -9999 or less:"), h); h = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, PAD); pan_box_pack_start_defaults (GTK_BOX(h), gtk_label_new (_("Text:"))); pan_box_pack_start_defaults (GTK_BOX(h), new_color_button ("color-read-fg", TANGO_ORANGE, prefs)); pan_box_pack_start_defaults (GTK_BOX(h), gtk_label_new (_("Background:"))); pan_box_pack_start_defaults (GTK_BOX(h), new_color_button ("color-read-bg", def_color_str, prefs)); HIG :: workarea_add_row (t, &row, _("Collapsed thread with unread articles:"), h); HIG :: workarea_add_section_divider (t, &row); HIG :: workarea_add_section_title (t, &row, _("Body Pane")); HIG :: workarea_add_section_spacer (t, row, 5); h = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, PAD_SMALL); pan_box_pack_start_defaults (GTK_BOX(h), gtk_label_new (_("Text:"))); pan_box_pack_start_defaults (GTK_BOX(h), new_color_button ("body-pane-color-quote-1", TANGO_CHAMELEON_DARK, prefs)); pan_box_pack_start_defaults (GTK_BOX(h), gtk_label_new (_("Background:"))); pan_box_pack_start_defaults (GTK_BOX(h), new_color_button ("body-pane-color-quote-1-bg", def_color_str, prefs)); HIG :: workarea_add_row (t, &row, _("First level of quoted text:"), h); h = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, PAD_SMALL); pan_box_pack_start_defaults (GTK_BOX(h), gtk_label_new (_("Text:"))); pan_box_pack_start_defaults (GTK_BOX(h), new_color_button ("body-pane-color-quote-2", TANGO_ORANGE_DARK, prefs)); pan_box_pack_start_defaults (GTK_BOX(h), gtk_label_new (_("Background:"))); pan_box_pack_start_defaults (GTK_BOX(h), new_color_button ("body-pane-color-quote-2-bg", def_color_str, prefs)); HIG :: workarea_add_row (t, &row, _("Second level of quoted text:"), h); h = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, PAD_SMALL); pan_box_pack_start_defaults (GTK_BOX(h), gtk_label_new (_("Text:"))); pan_box_pack_start_defaults (GTK_BOX(h), new_color_button ("body-pane-color-quote-3", TANGO_PLUM_DARK, prefs)); pan_box_pack_start_defaults (GTK_BOX(h), gtk_label_new (_("Background:"))); pan_box_pack_start_defaults (GTK_BOX(h), new_color_button ("body-pane-color-quote-3-bg", def_color_str, prefs)); HIG :: workarea_add_row (t, &row, _("Third level of quoted text:"), h); h = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, PAD_SMALL); pan_box_pack_start_defaults (GTK_BOX(h), gtk_label_new (_("Text:"))); pan_box_pack_start_defaults (GTK_BOX(h), new_color_button ("body-pane-color-url", TANGO_SKY_BLUE_DARK, prefs)); pan_box_pack_start_defaults (GTK_BOX(h), gtk_label_new (_("Background:"))); pan_box_pack_start_defaults (GTK_BOX(h), new_color_button ("body-pane-color-url-bg", def_color_str, prefs)); // HIG :: workarea_add_row (t, &row, _("URL:"), h); h = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, PAD_SMALL); pan_box_pack_start_defaults (GTK_BOX(h), gtk_label_new (_("Text:"))); pan_box_pack_start_defaults (GTK_BOX(h), new_color_button ("body-pane-color-signature", TANGO_SKY_BLUE_LIGHT, prefs)); pan_box_pack_start_defaults (GTK_BOX(h), gtk_label_new (_("Background:"))); pan_box_pack_start_defaults (GTK_BOX(h), new_color_button ("body-pane-color-signature-bg", def_color_str, prefs)); // HIG :: workarea_add_row (t, &row, _("Signature:"), h); HIG :: workarea_add_section_divider (t, &row); HIG :: workarea_add_section_title (t, &row, _("Group Pane")); HIG :: workarea_add_section_spacer (t, row, 1); h = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, PAD_SMALL); pan_box_pack_start_defaults (GTK_BOX(h), gtk_label_new (_("Text:"))); pan_box_pack_start_defaults (GTK_BOX(h), new_color_button ("group-pane-color-fg", def_color_fg_str, prefs)); pan_box_pack_start_defaults (GTK_BOX(h), gtk_label_new (_("Background:"))); pan_box_pack_start_defaults (GTK_BOX(h), new_color_button ("group-pane-color-bg", def_color_str, prefs)); // HIG :: workarea_add_row (t, &row, _("Group Color:"), h); // colors for others texts (score == 0 or body pane etc.... ) HIG :: workarea_add_section_divider (t, &row); HIG :: workarea_add_section_title (t, &row, _("Other Text")); h = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, PAD_SMALL); pan_box_pack_start_defaults (GTK_BOX(h), gtk_label_new (_("Text:"))); pan_box_pack_start_defaults (GTK_BOX(h), new_color_button ("text-color-fg", def_color_fg_str, prefs)); pan_box_pack_start_defaults (GTK_BOX(h), gtk_label_new (_("Background:"))); pan_box_pack_start_defaults (GTK_BOX(h), new_color_button ("text-color-bg", def_color_str, prefs)); HIG :: workarea_add_row (t, &row, _("Text Color:"), h); HIG :: workarea_finish (t, &row); gtk_notebook_append_page (GTK_NOTEBOOK(notebook), t, new_label_with_icon(_("_Colors"), _("Colors"), "icon_prefs_colors.png", prefs)); // Applications row = 0; t = HIG :: workarea_create (); HIG :: workarea_add_section_title (t, &row, _("Preferred Applications")); HIG :: workarea_add_section_spacer (t, row, 3); w = url_handler_new (prefs, "browser-mode", URL::get_environment(), "custom-browser", "firefox", b); HIG :: workarea_add_row (t, &row, _("_Web browser:"), w); w = url_handler_new (prefs, "gemini-mode", URL::get_environment(), "custom-gemini", "lagrange", b); HIG :: workarea_add_row (t, &row, _("_Gemini client:"), w); w = url_handler_new (prefs, "mailer-mode", URL::get_environment(), "custom-mailer", "thunderbird", b); HIG :: workarea_add_row (t, &row, _("_Mail reader:"), w); w = editor_new (prefs); HIG :: workarea_add_row (t, &row, _("_Text editor:"), w); w = html_previewer_new (prefs); HIG :: workarea_add_row (t, &row, _("_HTML previewer:"), w); HIG :: workarea_finish (t, &row); gtk_notebook_append_page (GTK_NOTEBOOK(notebook), t, new_label_with_icon(_("_Applications"), _("Applications"), "icon_prefs_applications.png", prefs)); // Upload Options row = 0; t = HIG :: workarea_create (); HIG :: workarea_add_section_title (t, &row, _("Encoding")); HIG :: workarea_add_section_spacer (t, row, 4); // 16 MiB blocks max, 512 kb min w = new_spin_button ("upload-option-bpf", 512*1024, 1024*1024*16, prefs); l = gtk_label_new(_("Default bytes per file (for encoder): ")); gtk_label_set_xalign (GTK_LABEL(l), 0.0); gtk_label_set_yalign (GTK_LABEL(l), 0.5); HIG::workarea_add_row (t, &row, l, w); HIG :: workarea_finish (t, &row); gtk_notebook_append_page (GTK_NOTEBOOK(notebook), t, new_label_with_icon(_("_Upload"), _("Upload"), "icon_prefs_upload.png", prefs)); // Hotkeys row = 0; t = HIG :: workarea_create (); shortcut_ptr_list = fill_pref_hotkeys(t, row, _prefs, this); HIG :: workarea_finish (t, &row); gtk_notebook_append_page (GTK_NOTEBOOK(notebook), t, new_label_with_icon(_("_Shortcuts"), _("Shortcuts"), "icon_prefs_hotkeys.png", prefs)); GtkWidget* scroll = gtk_scrolled_window_new (nullptr, nullptr); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scroll), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW(scroll), notebook); gtk_widget_show_all (scroll); gtk_box_pack_start (GTK_BOX(gtk_dialog_get_content_area( GTK_DIALOG(dialog))), scroll, true, true, 0); _root = dialog; // initially set notebook to page 1 or last selected page from last visit gtk_notebook_set_current_page(GTK_NOTEBOOK(notebook), prefs.get_int("prefs-last-selected-page",1)); } pan-0.162/pan/gui/prefs-ui.h000066400000000000000000000045771475412772400155770ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #ifndef PREFS_UI_H #define PREFS_UI_H #include #include #include #include #include namespace pan { class PrefsDialog : public Prefs::Listener { public: struct CallBackData { PrefsDialog* dialog; std::string name; std::string value; GtkWidget* entry; GtkWidget* label; }; public: PrefsDialog (Prefs&, GtkWindow*) ; ~PrefsDialog (); Prefs& prefs () { return _prefs; } GtkWidget* notebook () { return _notebook; } GtkWidget* root() { return _root; } static void populate_popup_cb (GtkEntry*, GtkMenu*, gpointer); static void edit_shortkey_cb (GtkMenuItem*, gpointer); void set_current_hotkey(const char* s) { _hotkey = s; } const char* get_current_hotkey() const { return _hotkey; } private: Prefs& _prefs; GtkWidget* _root; GtkWidget* charset_label; GtkWidget* _notebook; std::list shortcut_ptr_list; void update_default_charset_label(const StringView&); void on_prefs_flag_changed (const StringView& key, bool value) override; void on_prefs_int_changed (const StringView& key, int color) override {} void on_prefs_string_changed (const StringView& key, const StringView& value) override; void on_prefs_color_changed (const StringView& key, const GdkRGBA& color) override {} const char* _hotkey; public: void populate_popup (GtkEntry*, GtkMenu*); void edit_shortkey (gpointer); void update_hotkey (gpointer); }; } #endif pan-0.162/pan/gui/prefs.cc000066400000000000000000000250351475412772400153120ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #include "prefs.h" #include #include #include #include #include #include #include #include #include #include #include #include "group-prefs.h" namespace pan { Prefs :: Prefs() : _rules_changed(false), _rules_enabled(false) {} Prefs :: ~Prefs() {} // called for open tags void Prefs ::start_element(GMarkupParseContext *, gchar const *element_name, gchar const **attribute_names, gchar const **attribute_vals, gpointer prefs_gpointer, GError **) { const std::string s (element_name); Prefs& prefs (*static_cast(prefs_gpointer)); if (s == "geometry") { char const *name(nullptr); int x(0), y(0), w(0), h(0); for (char const **k(attribute_names), **v(attribute_vals); *k; ++k, ++v) { if (!strcmp (*k,"name")) name = *v; else if (!strcmp(*k,"x")) x = atoi (*v); else if (!strcmp(*k,"y")) y = atoi (*v); else if (!strcmp(*k,"w")) w = atoi (*v); else if (!strcmp(*k,"h")) h = atoi (*v); } if (name && *name) prefs.set_geometry (name, x, y, w, h); } if (s == "flag") { char const *name(nullptr); bool b (false); for (char const **k(attribute_names), **v(attribute_vals); *k; ++k, ++v) { if (!strcmp (*k,"name")) name = *v; else if (!strcmp(*k,"value")) b = *v && **v && tolower(**v)=='t'; } if (name && *name) prefs.set_flag (name, b); } if (s == "string") { char const *name(nullptr); char const *value(nullptr); for (char const **k(attribute_names), **v(attribute_vals); *k; ++k, ++v) { if (!strcmp (*k,"name")) name = *v; else if (!strcmp(*k,"value")) value = *v; } if (name && *name && value && *value) prefs.set_string (name, value); } if (s == "int") { char const *name(nullptr); char const *value(nullptr); for (char const **k(attribute_names), **v(attribute_vals); *k; ++k, ++v) { if (!strcmp (*k,"name")) name = *v; else if (!strcmp(*k,"value")) value = *v; } if (name && *name && value && *value) prefs.set_int (name, atoi(value)); } if (s == "color") { char const *name(nullptr); char const *value(nullptr); for (char const **k(attribute_names), **v(attribute_vals); *k; ++k, ++v) { if (!strcmp (*k,"name")) name = *v; else if (!strcmp(*k,"value")) value = *v; } if (name && *name && value && *value) prefs.set_color (name, value); } } void Prefs ::from_string(StringView const &xml) { GMarkupParser p; p.start_element = start_element; p.end_element = nullptr; p.text = nullptr; p.passthrough = nullptr; p.error = nullptr; GMarkupParseContext* c ( g_markup_parse_context_new (&p, (GMarkupParseFlags)0, this, nullptr)); GError * gerr (nullptr); if (g_markup_parse_context_parse (c, xml.str, xml.len, &gerr)) { // FIXME } g_markup_parse_context_free (c); } namespace { int const indent_char_len(2); std::string indent(int depth) { return std::string(depth * indent_char_len, ' '); } std::string escaped(std::string const &s) { char *pch = g_markup_escape_text(s.c_str(), s.size()); const std::string ret(pch); g_free(pch); return ret; } std::string escaped(bool const b) { return b ? "true" : "false"; } std::string color_to_string(GdkRGBA const &c) { gchar *str = gdk_rgba_to_string(&c); std::string res(str); g_free(str); return res; } } void Prefs :: to_string (int depth, std::string& setme) const { std::ostringstream out; foreach_const (flags_t, _flags, it) out << indent(depth) << "\n"; foreach_const (ints_t, _ints, it) out << indent(depth) << "\n"; foreach_const (longs_t, _longs, it) out << indent(depth) << "\n"; foreach_const (strings_t, _strings, it) out << indent(depth) << "\n"; foreach_const (colors_t, _colors, it) out << indent(depth) << "\n"; foreach_const (window_to_geometry_t, _window_to_geometry, it) { if (it->second.x || it->second.y || it->second.w || it->second.h) { out << indent(depth) << "second.x) out << " x='" << it->second.x << "'"; if (it->second.y) out << " y='" << it->second.y << "'"; if (it->second.w) out << " w='" << it->second.w << "'"; if (it->second.h) out << " h='" << it->second.h << "'"; out << "/>\n"; } } setme = out.str(); } /*** **** WINDOW GEOMETRY ***/ bool Prefs ::get_geometry( StringView const &window_name, int &x, int &y, int &w, int &h) const { window_to_geometry_t::const_iterator it (_window_to_geometry.find (window_name)); if (it != _window_to_geometry.end()) { Geometry const &g(it->second); x = g.x; y = g.y; w = g.w; h = g.h; } return it != _window_to_geometry.end(); } void Prefs ::set_geometry(StringView const &key, int x, int y, int w, int h) { if (x>=0 && y>=0) { Geometry& g (_window_to_geometry[key]); g.x = x; g.y = y; g.w = w; g.h = h; } } void Prefs ::set_default_geometry( StringView const &key, int x, int y, int w, int h) { if (!_window_to_geometry.count (key)) set_geometry (key, x, y, w, h); } #define PREFS_WIDGET_KEY "prefs-widget-key" void Prefs :: window_size_allocated_cb (GtkWidget * widget, GtkAllocation * alloc, gpointer pointer) { char const *key( (char const *)g_object_get_data(G_OBJECT(widget), PREFS_WIDGET_KEY)); bool const maximized = gtk_widget_get_window(widget) && (gdk_window_get_state(gtk_widget_get_window(widget)) & GDK_WINDOW_STATE_MAXIMIZED); if (!maximized) { int x(0), y(0); gtk_window_get_position (GTK_WINDOW(widget), &x, &y); static_cast(pointer)->set_geometry (key, x, y, alloc->width, alloc->height); } } void Prefs ::set_window( StringView const &key, GtkWindow *window, int x, int y, int w, int h) { get_geometry (key, x, y, w, h); gtk_window_move (window, x, y); gtk_window_set_default_size (window, w, h); g_object_set_data_full (G_OBJECT(window), PREFS_WIDGET_KEY, g_strdup(key.to_string().c_str()), g_free); g_signal_connect (window, "size-allocate", G_CALLBACK(window_size_allocated_cb), this); } /*** **** FLAGS ***/ bool Prefs ::get_flag(StringView const &key, bool fallback) const { if (!_flags.count (key)) _flags[key] = fallback; return _flags[key]; } void Prefs ::set_flag(StringView const &key, bool value) { _flags[key] = value; fire_flag_changed (key, value); } /*** **** INTS ***/ int Prefs ::get_int(StringView const &key, int fallback) const { if (!_ints.count (key)) _ints[key] = fallback; return _ints[key]; } int Prefs ::get_int_min(StringView const &key, int fallback) const { if (!_ints.count (key)) _ints[key] = fallback; if (_ints[key] < fallback) _ints[key] = fallback; return _ints[key]; } void Prefs ::set_int(StringView const &key, int value) { _ints[key] = value; fire_int_changed (key, value); } /*** **** LONG64 ***/ uint64_t Prefs ::get_long64(StringView const &key, uint64_t fallback) const { if (!_ints.count (key)) _longs[key] = fallback; return _longs[key]; } void Prefs ::set_long64(StringView const &key, uint64_t value) { _longs[key] = value; fire_long64_changed (key, value); } /*** **** STRINGS ***/ StringView Prefs ::get_string(StringView const &key, StringView const &fallback) const { StringView prefs_string; if (!_strings.count (key)) _strings[key] = fallback; prefs_string = _strings[key]; return prefs_string; } void Prefs ::set_string(StringView const &key, StringView const &value) { std::string& lvalue = _strings[key]; const std::string old (lvalue); lvalue.assign (value.str, value.len); if (old != lvalue) fire_string_changed (key, value); } /*** **** COLOR ***/ void Prefs ::set_color(StringView const &key, GdkRGBA const &value) { _colors[key] = value; fire_color_changed (key, value); } void Prefs ::set_color(StringView const &key, StringView const &value) { GdkRGBA c; if (gdk_rgba_parse (&c, value.to_string().c_str())) set_color (key, c); else Log::add_err_va (_("Couldn't parse %s color \"%s\""), key.to_string().c_str(), value.to_string().c_str()); } GdkRGBA Prefs ::get_color(StringView const &key, StringView const &fallback_str) const { GdkRGBA fallback; g_assert(gdk_rgba_parse (&fallback, fallback_str.to_string().c_str())); return get_color(key, fallback); } GdkRGBA Prefs :: get_color (const StringView& key, const GdkRGBA& fallback) const { if (!_colors.count (key)) _colors[key] = fallback; return _colors[key]; } std::string Prefs :: get_color_str (const StringView& key, const GdkRGBA& fallback) const { return color_to_string (get_color (key, fallback)); } std::string Prefs :: get_color_str (const StringView& key, const StringView& fallback) const { return color_to_string (get_color (key, fallback)); } /* get string without fallback option */ std::string Prefs :: get_color_str_wo_fallback (const StringView& key) const { std::string res; if (!_colors.count(key)) return ""; const GdkRGBA& col(_colors[key]); return color_to_string (col); } } pan-0.162/pan/gui/prefs.h000066400000000000000000000147421475412772400151570ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #ifndef _Prefs_h_ #define _Prefs_h_ #include #include #include #include #include #include #include #include #include extern "C" { #include } namespace pan { /** * UI-oriented prefs. * @ingroup GUI */ class Prefs { public: struct Listener { virtual ~Listener () {} virtual void on_prefs_flag_changed (const StringView& key, bool value) = 0; virtual void on_prefs_int_changed (const StringView& key, int color) = 0; virtual void on_prefs_string_changed (const StringView& key, const StringView& value) = 0; virtual void on_prefs_color_changed (const StringView& key, const GdkRGBA& color) = 0; virtual void on_prefs_hotkey_changed (const StringView& key, const StringView& value) {} virtual void on_prefs_long64_changed(const StringView& key, const uint64_t& value) {} }; void add_listener (Listener* l) { _listeners.insert(l); } void remove_listener (Listener* l) {_listeners.erase(l); } private: typedef std::set listeners_t; listeners_t _listeners; private: void fire_flag_changed (const StringView& key, bool value) { for (listeners_t::iterator it(_listeners.begin()), end(_listeners.end()); it!=end; ) (*it++)->on_prefs_flag_changed (key, value); } void fire_int_changed (const StringView& key, int value) { for (listeners_t::iterator it(_listeners.begin()), end(_listeners.end()); it!=end; ) (*it++)->on_prefs_int_changed (key, value); } void fire_long64_changed (const StringView& key, uint64_t value) { for (listeners_t::iterator it(_listeners.begin()), end(_listeners.end()); it!=end; ) (*it++)->on_prefs_long64_changed (key, value); } void fire_string_changed (const StringView& key, const StringView& value) { for (listeners_t::iterator it(_listeners.begin()), end(_listeners.end()); it!=end; ) (*it++)->on_prefs_string_changed (key, value); } void fire_color_changed (const StringView& key, const GdkRGBA& value) { for (listeners_t::iterator it(_listeners.begin()), end(_listeners.end()); it!=end; ) (*it++)->on_prefs_color_changed (key, value); } void fire_hotkey_changed (const StringView& key, const StringView& value) { for (listeners_t::iterator it(_listeners.begin()), end(_listeners.end()); it!=end; ) (*it++)->on_prefs_hotkey_changed (key, value); } public: static void start_element (GMarkupParseContext *context, const gchar *element_name, const gchar **attribute_names, const gchar **attribute_vals, gpointer user_data, GError **error); public: bool get_flag (const StringView& key, bool fallback) const; void set_flag (const StringView& key, bool); int get_int (const StringView& key, int fallback) const; int get_int_min (const StringView& key, int fallback) const; void set_int (const StringView& key, int); uint64_t get_long64 (const StringView& key, uint64_t fallback) const; void set_long64 (const StringView& key, uint64_t value); StringView get_string (const StringView& key, const StringView& fallback) const; void set_string (const StringView& key, const StringView&); void set_color (const StringView& key, const GdkRGBA& color); void set_color (const StringView& key, const StringView& color_str); std::string get_color_str (const StringView& key, const GdkRGBA& fallback) const; std::string get_color_str (const StringView& key, const StringView& fallback_str) const; std::string get_color_str_wo_fallback (const StringView& key) const; GdkRGBA get_color (const StringView& key, const GdkRGBA& fallback) const; GdkRGBA get_color (const StringView& key, const StringView& fallback_str) const; void set_window (const StringView& key, GtkWindow* window, int default_x, int default_y, int default_width, int default_height); void set_default_geometry (const StringView&, int, int, int, int); void set_geometry (const StringView&, int, int, int, int); bool get_geometry (const StringView&, int&, int&, int&, int&) const; public: Prefs (); virtual ~Prefs () ; virtual void save () const {} public: void to_string (int indent, std::string& setme) const; void from_string (const StringView& xml); private: struct Geometry { int x, y, w, h; Geometry(int xx, int yy, int ww, int hh): x(xx), y(yy), w(ww), h(hh) {} Geometry(): x(0), y(0), w(0), h(0) {} }; typedef std::map window_to_geometry_t; window_to_geometry_t _window_to_geometry; static void window_size_allocated_cb (GtkWidget*, GtkAllocation*, gpointer); private: typedef std::map flags_t; mutable flags_t _flags; typedef std::map strings_t; mutable strings_t _strings; typedef std::map colors_t; mutable colors_t _colors; typedef std::map ints_t; mutable ints_t _ints; typedef std::map longs_t; mutable longs_t _longs; public: colors_t& get_colors() { return _colors; } const colors_t& get_colors() const { return _colors; } public: bool _rules_changed; bool _rules_enabled; }; } #endif pan-0.162/pan/gui/profiles-dialog.cc000066400000000000000000000534261475412772400172600ustar00rootroot00000000000000/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ /********************* ********************** Includes *********************/ #include "profiles-dialog.h" #include "hig.h" #include "pad.h" #include "pan-file-entry.h" #include #include #include #include #include #include #include #include using namespace pan; /*** **** ***/ namespace { enum { ROW_FILE, ROW_TEXT, ROW_COMMAND, ROW_GPGSIG }; void set_entry(GtkWidget *w, std::string const &str) { char const *s = str.empty() ? "" : str.c_str(); gtk_entry_set_text(GTK_ENTRY(w), s); } void from_entry(GtkWidget *w, std::string &setme) { StringView v(gtk_entry_get_text(GTK_ENTRY(w))); v.trim(); setme.assign(v.str, v.len); } void on_sig_file_toggled(GtkToggleButton *tb, gpointer sensitize) { gtk_widget_set_sensitive(GTK_WIDGET(sensitize), gtk_toggle_button_get_active(tb)); } void on_signature_type_changed(GtkComboBox *w, gpointer g) { ProfileDialog *d(static_cast(g)); g_return_if_fail(d); gint row = gtk_combo_box_get_active(w); if (row == ROW_GPGSIG) { gtk_widget_set_tooltip_text(d->_signature_file_combo_box, _("Please choose your email address according " "to your PGP key's user id.")); gtk_widget_hide(d->_signature_file); } else { gtk_widget_set_has_tooltip(d->_signature_file_combo_box, false); gtk_widget_show(d->_signature_file); } } GtkWidget *make_servers_combo(Data const &data, Quark const sel) { quarks_t const servers(data.get_servers()); GtkListStore *store = gtk_list_store_new(2, G_TYPE_STRING, G_TYPE_STRING); int i(0), sel_index(0); foreach_const (quarks_t, servers, it) { Quark const &server(*it); if (server == sel) { sel_index = i; } ++i; int port; std::string addr; data.get_server_addr(server, addr, port); GtkTreeIter iter; gtk_list_store_append(store, &iter); gtk_list_store_set(store, &iter, 0, addr.c_str(), 1, server.c_str(), -1); } GtkWidget *w = gtk_combo_box_new_with_model(GTK_TREE_MODEL(store)); GtkCellRenderer *renderer(gtk_cell_renderer_text_new()); gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(w), renderer, true); gtk_cell_layout_set_attributes( GTK_CELL_LAYOUT(w), renderer, "text", 0, nullptr); gtk_combo_box_set_active(GTK_COMBO_BOX(w), sel_index); return w; } } // namespace ProfileDialog ::ProfileDialog(Data const &data, StringView const &profile_name, Profile const &profile, GtkWindow *parent) { _root = gtk_dialog_new_with_buttons(_("Posting Profile"), parent, GTK_DIALOG_DESTROY_WITH_PARENT, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_APPLY, GTK_RESPONSE_OK, nullptr); gtk_dialog_set_default_response(GTK_DIALOG(_root), GTK_RESPONSE_OK); gtk_window_set_role(GTK_WINDOW(_root), "pan-edit-profile-dialog"); GtkWidget *hbox(nullptr), *l(nullptr); int row(0); GtkWidget *t = HIG ::workarea_create(); HIG ::workarea_add_section_title(t, &row, _("Profile Information")); HIG ::workarea_add_section_spacer(t, row, 1); GtkWidget *w = _name_entry = gtk_entry_new(); set_entry(w, profile_name); HIG ::workarea_add_row(t, &row, _("_Profile Name:"), w); HIG ::workarea_add_section_divider(t, &row); HIG ::workarea_add_section_title(t, &row, _("Required Information")); HIG ::workarea_add_section_spacer(t, row, 2); w = _username_entry = gtk_entry_new(); set_entry(w, profile.username); HIG ::workarea_add_row(t, &row, _("_Full Name:"), w); w = _address_entry = gtk_entry_new(); set_entry(w, profile.address); #ifdef HAVE_GMIME_CRYPTO gtk_widget_set_tooltip_text( w, _("Your email address.\n" "Note that this has to match your PGP signature's address\n" "if you want your messages to be PGP-signed or encrypted correctly.")); #endif HIG ::workarea_add_row(t, &row, _("_Email Address:"), w); w = _server_combo = make_servers_combo(data, profile.posting_server); HIG ::workarea_add_row(t, &row, _("_Post Articles via:"), w); HIG ::workarea_add_section_divider(t, &row); HIG ::workarea_add_section_title(t, &row, _("Signature")); HIG ::workarea_add_section_spacer(t, row, 3); w = _signature_file_check = gtk_check_button_new_with_mnemonic(_("_Use a Signature")); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w), profile.use_sigfile); HIG ::workarea_add_wide_control(t, &row, w); w = _signature_file = pan::file_entry_new(_("Signature File"), GTK_FILE_CHOOSER_ACTION_OPEN); g_signal_connect( _signature_file_check, "toggled", G_CALLBACK(on_sig_file_toggled), w); file_entry_set(w, profile.signature_file.c_str()); GtkTreeIter iter; GtkListStore *store; GtkCellRenderer *renderer; store = gtk_list_store_new(2, G_TYPE_STRING, G_TYPE_INT); gtk_list_store_append(store, &iter); gtk_list_store_set(store, &iter, 0, _("Text File"), 1, Profile::FILE, -1); gtk_list_store_append(store, &iter); gtk_list_store_set(store, &iter, 0, _("Text"), 1, Profile::TEXT, -1); gtk_list_store_append(store, &iter); gtk_list_store_set(store, &iter, 0, _("Command"), 1, Profile::COMMAND, -1); #ifdef HAVE_GMIME_CRYPTO gtk_list_store_append(store, &iter); gtk_list_store_set( store, &iter, 0, _("PGP Signature"), 1, Profile::GPGSIG, -1); #endif w = gtk_combo_box_new_with_model(GTK_TREE_MODEL(store)); hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 3); l = gtk_label_new(_("Signature Type: ")); gtk_label_set_xalign(GTK_LABEL(l), 0.0f); gtk_label_set_yalign(GTK_LABEL(l), 0.5f); gtk_box_pack_start(GTK_BOX(hbox), l, false, false, 0); gtk_box_pack_start(GTK_BOX(hbox), w, true, true, 0); _signature_file_combo = hbox; _signature_file_combo_box = w; #ifdef HAVE_GMIME_CRYPTO g_signal_connect(w, "changed", G_CALLBACK(on_signature_type_changed), this); #endif renderer = gtk_cell_renderer_text_new(); gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(w), renderer, true); gtk_cell_layout_set_attributes( GTK_CELL_LAYOUT(w), renderer, "text", 0, nullptr); int active = ROW_FILE; if (profile.sig_type == profile.TEXT) { active = ROW_TEXT; } if (profile.sig_type == profile.COMMAND) { active = ROW_COMMAND; } #ifdef HAVE_GMIME_CRYPTO if (profile.sig_type == profile.GPGSIG) { active = ROW_GPGSIG; } #endif gtk_combo_box_set_active(GTK_COMBO_BOX(w), active); GtkWidget *vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 3); #if ! GTK_CHECK_VERSION(3, 0, 0) gtk_box_set_homogeneous(GTK_BOX(vbox), TRUE); #endif gtk_box_pack_start(GTK_BOX(vbox), _signature_file_combo, false, false, 0); gtk_box_pack_start(GTK_BOX(vbox), _signature_file, false, false, 0); HIG ::workarea_add_row(t, &row, "", vbox); HIG ::workarea_add_section_divider(t, &row); HIG ::workarea_add_section_title(t, &row, _("Avatars")); w = _face_entry = gtk_entry_new(); set_entry(w, profile.face); gtk_widget_set_tooltip_markup( w, _("You can add an avatar icon to your articles with a Base64-encoded PNG.\n" "Add the Base64-encoded picture without the trailing “Face:”.")); HIG ::workarea_add_row(t, &row, _("_Face:"), w, nullptr); w = _xface_entry = gtk_entry_new(); set_entry(w, profile.xface); gtk_widget_set_tooltip_markup( w, _("You can add an avatar icon to your articles with a unique X-Face code.\n" "Add the code without the trailing \"X-Face:\" \n if it was " "generated " "by a helper program (for example " "http://www.dairiki.org/xface/xface.php).")); HIG ::workarea_add_row(t, &row, _("_X-Face:"), w, nullptr); HIG ::workarea_add_section_divider(t, &row); HIG ::workarea_add_section_title(t, &row, _("Optional Information")); HIG ::workarea_add_section_spacer(t, row, 3); w = _msgid_fqdn_entry = gtk_entry_new(); set_entry(w, profile.fqdn); gtk_widget_set_tooltip_text(w, _("When posting to Usenet, your article's " "Message-ID contains a domain name.\n" "You can set a custom domain name here, or " "leave it blank to let Pan use the " "domain name from your email address.")); HIG ::workarea_add_row(t, &row, _("Message-ID _Domain Name:"), w, nullptr); w = _attribution_entry = gtk_entry_new(); set_entry(w, profile.attribution); gtk_widget_set_tooltip_text(w, _("%i for Message-ID\n%a for Author and " "Address\n%n for Author name\n%d for Date")); HIG ::workarea_add_row(t, &row, _("_Attribution:"), w, nullptr); HIG ::workarea_add_section_spacer(t, row, 1); w = _extra_headers_tv = gtk_text_view_new(); int const columns(60), rows(10); PangoFontDescription *pfd(pango_font_description_from_string("Monospace 10")); PangoContext *context = gtk_widget_create_pango_context(w); pango_context_set_font_description(context, pfd); std::string line(columns, 'A'); PangoLayout *layout = pango_layout_new(context); pango_layout_set_text(layout, line.c_str(), line.size()); PangoRectangle r; pango_layout_get_extents(layout, &r, nullptr); g_object_unref(layout); g_object_unref(context); pango_font_description_free(pfd); gtk_widget_set_size_request( w, PANGO_PIXELS(r.width), PANGO_PIXELS(r.height * rows)); std::string s; foreach_const (Profile::headers_t, profile.headers, it) { s += it->first + ": " + it->second + "\n"; } if (! s.empty()) { gtk_text_buffer_set_text( gtk_text_view_get_buffer(GTK_TEXT_VIEW(w)), s.c_str(), s.size()); } GtkWidget *eventbox = gtk_event_box_new(); /* Translators: Do not localize Reply-To and the quote marks in \"Your Name\". */ gtk_widget_set_tooltip_text( eventbox, _("Extra headers to be included in your articles, such as\nReply-To: " "\"Your Name\" " "\nOrganization: Your Organization\n")); GtkWidget *scrolled_window = gtk_scrolled_window_new(nullptr, nullptr); gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(scrolled_window), GTK_SHADOW_IN); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled_window), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_container_add(GTK_CONTAINER(scrolled_window), w); gtk_container_add(GTK_CONTAINER(eventbox), scrolled_window); HIG ::workarea_add_row(t, &row, _("E_xtra Headers:"), eventbox, w); // on_sig_file_toggled (GTK_TOGGLE_BUTTON(_signature_file_check), // _signature_file); on_sig_file_toggled // (GTK_TOGGLE_BUTTON(_signature_file_check), _signature_file_combo_box); gtk_box_pack_start( GTK_BOX(gtk_dialog_get_content_area(GTK_DIALOG(_root))), t, true, true, 0); gtk_widget_show_all(t); if (parent != nullptr) { gtk_window_set_transient_for(GTK_WINDOW(_root), parent); gtk_window_set_position(GTK_WINDOW(_root), GTK_WIN_POS_CENTER_ON_PARENT); } #ifdef HAVE_GMIME_CRYPTO on_signature_type_changed(GTK_COMBO_BOX(_signature_file_combo_box), this); #endif } ProfileDialog ::~ProfileDialog() { } /*static*/ bool ProfileDialog ::run_until_valid_or_cancel(ProfileDialog &pd) { for (;;) { int const response(gtk_dialog_run(GTK_DIALOG(pd.root()))); /* abort profile creation on cancel and closing of the window */ if (response == GTK_RESPONSE_CANCEL || response == GTK_RESPONSE_DELETE_EVENT) { return false; } std::string name; Profile profile; pd.get_profile(name, profile); if (GNKSA ::check_from(profile.address, true)) { GtkWidget *d = gtk_message_dialog_new(GTK_WINDOW(pd.root()), GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, nullptr); HIG ::message_dialog_set_text( GTK_MESSAGE_DIALOG(d), _("Invalid email address."), _("Please use an address of the form joe@somewhere.org")); gtk_dialog_run(GTK_DIALOG(d)); gtk_widget_destroy(d); gtk_widget_grab_focus(pd._address_entry); } else { return true; } } } void ProfileDialog ::get_profile(std::string &profile_name, Profile &profile) { from_entry(_name_entry, profile_name); from_entry(_username_entry, profile.username); from_entry(_address_entry, profile.address); from_entry(_msgid_fqdn_entry, profile.fqdn); from_entry(_face_entry, profile.face); from_entry(_xface_entry, profile.xface); from_entry(_attribution_entry, profile.attribution); profile.use_sigfile = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(_signature_file_check)); int type; GtkTreeIter iter; GtkComboBox *combo = GTK_COMBO_BOX(_signature_file_combo_box); gtk_combo_box_get_active_iter(combo, &iter); GtkTreeModel *model(gtk_combo_box_get_model(combo)); gtk_tree_model_get(model, &iter, 1, &type, -1); profile.sig_type = type; profile.use_gpgsig = (type == profile.GPGSIG); if (! profile.use_gpgsig) { from_entry(file_entry_gtk_entry(_signature_file), profile.signature_file); } profile.gpg_sig_uid = profile.address; char *pch; combo = GTK_COMBO_BOX(_server_combo); gtk_combo_box_get_active_iter(combo, &iter); model = gtk_combo_box_get_model(combo); gtk_tree_model_get(model, &iter, 1, &pch, -1); profile.posting_server = pch; g_free(pch); // extract extra headers from the text view profile.headers.clear(); GtkTextBuffer *buf = gtk_text_view_get_buffer(GTK_TEXT_VIEW(_extra_headers_tv)); GtkTextIter start, end; gtk_text_buffer_get_bounds(buf, &start, &end); char *text = gtk_text_buffer_get_text(buf, &start, &end, false); StringView v(text), line; while (v.pop_token(line, '\n')) { StringView header, value(line); if (value.pop_token(header, ':')) { header.trim(); value.trim(); if (! header.empty() && ! value.empty()) { profile.headers[header] = value; } } } g_free(text); } /****** ******* ******* ******/ namespace { enum { COL_NAME, N_COLS }; GtkListStore *new_profile_store(Profiles const &profiles) { GtkListStore *store = gtk_list_store_new(N_COLS, G_TYPE_STRING); typedef std::set names_t; names_t const profile_names(profiles.get_profile_names()); foreach_const (names_t, profile_names, it) { GtkTreeIter iter; gtk_list_store_append(store, &iter); gtk_list_store_set(store, &iter, COL_NAME, it->c_str(), -1); } return store; } std::string get_selected_profile(GtkTreeView *view) { std::string name; GtkTreeSelection *selection(gtk_tree_view_get_selection(view)); GtkTreeModel *model; GtkTreeIter iter; if (gtk_tree_selection_get_selected(selection, &model, &iter)) { char *pch(nullptr); gtk_tree_model_get(model, &iter, COL_NAME, &pch, -1); if (pch) { name = pch; g_free(pch); } } return name; } static void on_add_button(GtkWidget *, gpointer d) { static_cast(d)->create_new_profile(); } static void on_edit_button(GtkWidget *, gpointer d) { static_cast(d)->edit_profile(); } static void on_delete_button(GtkWidget *, gpointer d) { static_cast(d)->delete_profile(); } } // namespace void ProfilesDialog ::rebuild_store() { _store = new_profile_store(_profiles); gtk_tree_view_set_model(GTK_TREE_VIEW(_view), GTK_TREE_MODEL(_store)); g_object_unref(_store); } void ProfilesDialog ::delete_profile() { std::string const name(get_selected_profile(GTK_TREE_VIEW(_view))); _profiles.delete_profile(name); rebuild_store(); refresh_buttons(); } void ProfilesDialog ::edit_profile() { std::string const old_name(get_selected_profile(GTK_TREE_VIEW(_view))); if (! old_name.empty()) { Profile profile; if (_profiles.get_profile(old_name, profile)) { ProfileDialog d(_data, old_name, profile, GTK_WINDOW(_root)); bool const do_rebuild = ProfileDialog ::run_until_valid_or_cancel(d); if (do_rebuild) { std::string new_name; d.get_profile(new_name, profile); _profiles.delete_profile(old_name); _profiles.add_profile(new_name, profile); rebuild_store(); refresh_buttons(); } gtk_widget_destroy(d.root()); } } } void ProfilesDialog ::create_new_profile() { Profile profile; profile.username = g_get_real_name(); /* xgettext: no-c-format */ profile.attribution = _("On %d, %n wrote:"); ProfileDialog d(_data, _("New Profile"), profile, GTK_WINDOW(_root)); bool const do_rebuild = ProfileDialog ::run_until_valid_or_cancel(d); if (do_rebuild) { std::string name; d.get_profile(name, profile); _profiles.add_profile(name, profile); rebuild_store(); refresh_buttons(); } gtk_widget_destroy(d.root()); } void ProfilesDialog ::refresh_buttons() { std::string const name(get_selected_profile(GTK_TREE_VIEW(_view))); bool have_sel(! name.empty()); gtk_widget_set_sensitive(_edit_button, have_sel); gtk_widget_set_sensitive(_remove_button, have_sel); } namespace { void profiles_tree_view_selection_changed_cb(GtkTreeSelection *, gpointer user_data) { ProfilesDialog *d = (ProfilesDialog *)user_data; d->refresh_buttons(); } void tree_view_row_activated_cb(GtkTreeView *, GtkTreePath *, GtkTreeViewColumn *, gpointer user_data) { on_edit_button(nullptr, user_data); } } // namespace ProfilesDialog ::~ProfilesDialog() { } ProfilesDialog ::ProfilesDialog(Data const &data, Profiles &profiles, GtkWindow *parent) : _data(data), _profiles(profiles) { _root = gtk_dialog_new_with_buttons(_("Posting Profiles"), parent, GTK_DIALOG_DESTROY_WITH_PARENT, GTK_STOCK_CLOSE, GTK_RESPONSE_CLOSE, nullptr); gtk_window_set_role(GTK_WINDOW(_root), "pan-profiles-dialog"); // g_signal_connect (_root, "response", G_CALLBACK(response_cb), this); // workarea GtkWidget *hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, PAD); gtk_container_set_border_width(GTK_CONTAINER(hbox), PAD_BIG); gtk_box_pack_start(GTK_BOX(gtk_dialog_get_content_area(GTK_DIALOG(_root))), hbox, true, true, 0); // create the list GtkWidget *w = _view = gtk_tree_view_new(); rebuild_store(); GtkCellRenderer *renderer = gtk_cell_renderer_text_new(); GtkTreeViewColumn *column = gtk_tree_view_column_new_with_attributes( _("Profiles"), renderer, "text", COL_NAME, nullptr); gtk_tree_view_column_set_sort_column_id(column, COL_NAME); gtk_tree_view_append_column(GTK_TREE_VIEW(w), column); GtkTreeSelection *selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(w)); gtk_tree_selection_set_mode(selection, GTK_SELECTION_SINGLE); g_signal_connect(G_OBJECT(selection), "changed", G_CALLBACK(profiles_tree_view_selection_changed_cb), this); g_signal_connect(GTK_TREE_VIEW(w), "row-activated", G_CALLBACK(tree_view_row_activated_cb), this); w = gtk_scrolled_window_new(nullptr, nullptr); gtk_scrolled_window_set_policy( GTK_SCROLLED_WINDOW(w), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(w), GTK_SHADOW_IN); gtk_container_add(GTK_CONTAINER(w), _view); gtk_box_pack_start(GTK_BOX(hbox), w, true, true, 0); gtk_widget_set_size_request(w, 300, 300); // button box GtkWidget *bbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, PAD_SMALL); gtk_box_pack_start(GTK_BOX(hbox), bbox, false, false, 0); // add button w = gtk_button_new_from_stock(GTK_STOCK_ADD); gtk_box_pack_start(GTK_BOX(bbox), w, false, false, 0); g_signal_connect(w, "clicked", G_CALLBACK(on_add_button), this); // edit button w = gtk_button_new_from_stock(GTK_STOCK_EDIT); _edit_button = w; gtk_box_pack_start(GTK_BOX(bbox), w, false, false, 0); g_signal_connect(w, "clicked", G_CALLBACK(on_edit_button), this); // remove button _remove_button = w = gtk_button_new_from_stock(GTK_STOCK_REMOVE); gtk_box_pack_start(GTK_BOX(bbox), w, false, false, 0); g_signal_connect(w, "clicked", G_CALLBACK(on_delete_button), this); // set sensitive buttons refresh_buttons(); gtk_widget_show_all(hbox); if (parent != nullptr) { gtk_window_set_transient_for(GTK_WINDOW(_root), parent); gtk_window_set_position(GTK_WINDOW(_root), GTK_WIN_POS_CENTER_ON_PARENT); } } pan-0.162/pan/gui/profiles-dialog.h000066400000000000000000000047511475412772400171170ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #ifndef __ProfilesDialog_h__ #define __ProfilesDialog_h__ #include #include #include namespace pan { /** * Dialog for editing a posting profile. * @ingroup GUI */ class ProfileDialog { public: ProfileDialog(Data const &, StringView const &profile_name, Profile const &profile, GtkWindow *parent); ~ProfileDialog(); GtkWidget *root() { return _root; } void get_profile(std::string &setme_name, Profile &setme_profile); private: GtkWidget *_root; GtkWidget *_name_entry; GtkWidget *_username_entry; GtkWidget *_address_entry; GtkWidget *_msgid_fqdn_entry; GtkWidget *_face_entry; GtkWidget *_xface_entry; GtkWidget *_attribution_entry; GtkWidget *_signature_file_check; GtkWidget *_server_combo; GtkWidget *_extra_headers_tv; GtkWidget *_signature_file_combo; public: GtkWidget *_signature_file_combo_box; GtkWidget *_signature_file; GtkWidget *_gpg_sig_entry; static bool run_until_valid_or_cancel(ProfileDialog &p); }; /** * Dialog for managing all posting profiles. * @ingroup GUI */ class ProfilesDialog { public: ProfilesDialog(Data const &data, Profiles &profiles, GtkWindow *parent); ~ProfilesDialog(); GtkWidget *root() { return _root; } public: void edit_profile(); void delete_profile(); void create_new_profile(); void rebuild_store(); void refresh_buttons(); private: Data const &_data; Profiles &_profiles; GtkWidget *_root; GtkWidget *_view; GtkWidget *_edit_button; GtkWidget *_remove_button; GtkListStore *_store; }; } // namespace pan #endif pan-0.162/pan/gui/progress-view.cc000066400000000000000000000075521475412772400170130ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #include #include #include #include #include #include "progress-view.h" using namespace pan; ProgressView :: ProgressView (): _progress_step_idle_tag (0), _progress_status_idle_tag (0), _root (gtk_event_box_new ()), _progressbar (gtk_progress_bar_new ()), _style (gtk_widget_get_style (_progressbar)), _progress (nullptr) { gtk_progress_bar_set_ellipsize (GTK_PROGRESS_BAR(_progressbar), PANGO_ELLIPSIZE_MIDDLE); gtk_container_add (GTK_CONTAINER(_root), _progressbar); gtk_widget_show (_progressbar); gtk_progress_bar_set_show_text (GTK_PROGRESS_BAR(_progressbar), false); } ProgressView :: ~ProgressView () { set_progress(nullptr); g_object_unref (_style); } void ProgressView :: set_progress (Progress * progress) { if (progress != _progress) { if (_progress) { _progress->remove_listener (this); _progress = nullptr; } if (progress) { _progress = progress; _progress->add_listener (this); } update_text_soon (); update_percentage_soon (); } } void ProgressView :: on_progress_error (Progress& p, const StringView& s) { on_progress_status (p, s); } gboolean ProgressView :: on_progress_step_idle (gpointer self_gpointer) { ProgressView * self (static_cast(self_gpointer)); const int of_100 (self->_progress ? self->_progress->get_progress_of_100() : 0); gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR(self->_progressbar), of_100/100.0); self->_progress_step_idle_tag = 0; return false; } void ProgressView :: update_percentage_soon () { if (!_progress_step_idle_tag) _progress_step_idle_tag = g_timeout_add (333, on_progress_step_idle, this); } void ProgressView :: on_progress_step (Progress&, int) { update_percentage_soon (); } gboolean ProgressView :: on_progress_status_idle (gpointer self_gpointer) { ProgressView * self (static_cast(self_gpointer)); std::string status; if (self->_progress) { status = self->_progress->get_status(); gtk_progress_bar_set_show_text (GTK_PROGRESS_BAR(self->_progressbar), true); } else gtk_progress_bar_set_show_text (GTK_PROGRESS_BAR(self->_progressbar), false); const char* tmp = iconv_inited ? __g_mime_iconv_strdup(conv,status.c_str()) : nullptr; if (tmp) { status = tmp; g_free((char*)tmp); } gtk_progress_bar_set_text (GTK_PROGRESS_BAR(self->_progressbar), status.c_str()); self->_progress_status_idle_tag = 0; return false; } void ProgressView :: on_progress_status (Progress&, const StringView&) { update_text_soon (); } void ProgressView :: update_text_soon () { if (!_progress_status_idle_tag) _progress_status_idle_tag = g_timeout_add (333, on_progress_status_idle, this); } void ProgressView :: set_color (const std::string& color) { GtkStyle* style = gtk_style_copy (_style); gdk_color_parse (color.c_str(), &style->bg[GTK_STATE_PRELIGHT]); gtk_widget_set_style (_progressbar, style); g_object_unref (style); } void ProgressView :: reset_color () { gtk_widget_set_style (_progressbar, NULL); } pan-0.162/pan/gui/progress-view.h000066400000000000000000000044111475412772400166440ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #ifndef __Progress_View_h__ #define __Progress_View_h__ #include #include #include namespace pan { /** * GtkProgressBar representations of general::Progress objects. * * These are used at the bottom of Pan's main window to show * the status of running Task objects. * * @ingroup GUI */ class ProgressView: private Progress::Listener { public: ProgressView (); virtual ~ProgressView () ; GtkWidget* root () { return _root; } void set_progress (Progress *); Progress* get_progress () { return _progress; } const Progress* get_progress () const { return _progress; } void set_color (const std::string& color); void reset_color (); private: // inherited from progress listener void on_progress_step (Progress&, int percentage) override; void on_progress_status (Progress&, const StringView&) override; void on_progress_error (Progress&, const StringView&) override; void on_progress_finished (Progress&, int) override { } private: void update_text_soon (); void update_percentage_soon (); guint _progress_step_idle_tag; guint _progress_status_idle_tag; static gboolean on_progress_step_idle (gpointer); static gboolean on_progress_status_idle (gpointer); private: GtkWidget * _root; GtkWidget * _progressbar; GtkStyle * _style; std::string _last_status; Progress * _progress; }; } #endif pan-0.162/pan/gui/render-bytes.cc000066400000000000000000000026521475412772400165760ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #include // g_snprintf #include "render-bytes.h" namespace pan { char* render_bytes (guint64 bytes) { static const unsigned long KIBI (1024ul); static const unsigned long MEBI (1048576ul); static const unsigned long GIBI (1073741824ul); static char buf[128]; if (bytes < KIBI) g_snprintf (buf, sizeof(buf), "%d B", (int)bytes); else if (bytes < MEBI) g_snprintf (buf, sizeof(buf), "%.0f KiB", (double)bytes/KIBI); else if (bytes < GIBI) g_snprintf (buf, sizeof(buf), "%.1f MiB", (double)bytes/MEBI); else g_snprintf (buf, sizeof(buf), "%.2f GiB", (double)bytes/GIBI); return buf; } } pan-0.162/pan/gui/render-bytes.h000066400000000000000000000002001475412772400164230ustar00rootroot00000000000000#ifndef RENDER_BYTES_H #define RENDER_BYTES_H #include namespace pan { extern char* render_bytes (guint64); } #endif pan-0.162/pan/gui/save-attach-ui.cc000066400000000000000000000270711475412772400170100ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #include #include #include #include #include #include #include #include #include #include #include "hig.h" #include "pad.h" #include "pan-file-entry.h" #include "save-attach-ui.h" using namespace pan; namespace { void show_group_substitution_help_dialog (gpointer window) { const char * str = _("%g - group as one directory (alt.binaries.pictures.trains)\n" "%G - group as nested directory (/alt/binaries/pictures/trains)\n" "%s - Subject line excerpt\n" "%S - Subject line\n" "%n - Poster display name\n" "%e - Poster email address\n" "%d - Article timestamp\n" "\"/home/user/News/Pan/%g\" becomes\n" "\"/home/user/News/Pan/alt.binaries.pictures.trains\", and\n" "\"/home/user/News/Pan/%G\" becomes\n" "\"/home/user/News/Pan/alt/binaries/pictures/trains\","); GtkWidget * w = gtk_message_dialog_new (GTK_WINDOW(window), GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_INFO, GTK_BUTTONS_CLOSE, "%s", str); g_signal_connect_swapped (w, "response", G_CALLBACK(gtk_widget_destroy), w); gtk_widget_show_all (w); } void delete_save_dialog (gpointer castme) { delete static_cast(castme); } enum { PATH_GROUP, PATH_ENTRY }; int path_mode (PATH_GROUP); } void SaveAttachmentsDialog :: response_cb (GtkDialog * dialog, int response, gpointer user_data) { if (response == GTK_RESPONSE_OK) { SaveAttachmentsDialog * self (static_cast(user_data)); bool subject_in_path = false; // set the path mode based on what widgets exist & are set GtkWidget * gr (self->_save_group_path_radio); GtkWidget * er (self->_save_custom_path_radio); if (gr && er) path_mode = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(gr)) ? PATH_GROUP : PATH_ENTRY; else path_mode = PATH_ENTRY; // get the save path std::string path, opath; if (path_mode == PATH_GROUP) path = (const char*) g_object_get_data (G_OBJECT(gr), "default-group-save-path"); else if (path_mode == PATH_ENTRY) { path = pan :: file_entry_get (self->_save_path_entry); self->_prefs.set_string ("default-save-attachments-path", path); } path = opath = expand_download_dir (path.c_str(), self->_group.to_view()); if ((path.find("%s") != path.npos) || (path.find("%S") != path.npos)) subject_in_path = true; std::string sep( self->_prefs.get_string("save-subj-separator", "-") ); const bool always (self->_prefs.get_flag("mark-downloaded-articles-read", false)); // make the tasks... Queue::tasks_t tasks; foreach_const (std::vector
, self->_articles, it) { if (subject_in_path) path = expand_download_dir_subject(opath.c_str(), it->subject, sep); tasks.push_back (new TaskArticle (self->_server_rank, self->_group_server, *it, self->_cache, self->_read, always ? TaskArticle::ALWAYS_MARK : TaskArticle::NEVER_MARK, nullptr, TaskArticle::DECODE, path, self->_filename, self->_options)); } // get the queue mode... Queue::AddMode queue_mode; std::string s = self->_prefs.get_string ("save-article-priority", "age"); if (s == "top") queue_mode = Queue::TOP; else if (s == "bottom") queue_mode = Queue::BOTTOM; else queue_mode = Queue::AGE; // queue up the tasks... if (!tasks.empty()) self->_queue.add_tasks (tasks, queue_mode); } gtk_widget_destroy (GTK_WIDGET(dialog)); } namespace { void entry_changed_cb (GtkEditable*, gpointer radio_or_null) { if (radio_or_null) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(radio_or_null), true); } void combo_box_selection_changed (GtkComboBox * combo, gpointer prefs, const char * key) { GtkTreeIter iter; gtk_combo_box_get_active_iter (combo, &iter); GtkTreeModel * model (gtk_combo_box_get_model (combo)); char * s (nullptr); gtk_tree_model_get (model, &iter, 0, &s, -1); static_cast(prefs)->set_string (key, s); g_free (s); } void priority_combo_box_selection_changed (GtkComboBox * combo, gpointer prefs) { combo_box_selection_changed (combo, prefs, "save-article-priority"); } GtkWidget* create_combo_box (Prefs& prefs, const char * key, const char * fallback, ...) { const std::string active_str (prefs.get_string (key, fallback)); int active (-1); GtkListStore * store = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_STRING); va_list args; va_start (args, fallback); for (int i=0;; ++i) { const char * key_str = va_arg (args, const char*); if (!key_str) break; const char * gui_str = va_arg (args, const char*); GtkTreeIter iter; gtk_list_store_append (store, &iter); gtk_list_store_set (store, &iter, 0, key_str, 1, gui_str, -1); if (active_str == key_str) active = i; } va_end(args); GtkWidget * w = gtk_combo_box_new_with_model (GTK_TREE_MODEL(store)); GtkCellRenderer * renderer (gtk_cell_renderer_text_new ()); gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (w), renderer, true); gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (w), renderer, "text", 1, nullptr); gtk_combo_box_set_active (GTK_COMBO_BOX(w), active); return w; } GtkWidget* create_priority_combo_box (Prefs& prefs) { return create_combo_box (prefs, "save-article-priority", "age", "age", _("Add to the queue sorted by date posted"), "top", _("Add to the front of the queue"), "bottom", _("Add to the back of the queue"), nullptr); } } SaveAttachmentsDialog :: SaveAttachmentsDialog (Prefs & prefs, const GroupPrefs & group_prefs, const ServerRank & server_rank, const GroupServer & group_server, ArticleCache & cache, ArticleRead & read, Queue & queue, GtkWindow * parent_window, const Quark & group, const std::vector
& articles, const TaskArticle::SaveOptions & options, const char * filename): _prefs(prefs), _server_rank (server_rank), _group_server (group_server), _cache (cache), _read (read), _queue (queue), _group (group), _root (nullptr), _save_custom_path_radio (nullptr), _save_group_path_radio (nullptr), _articles (articles), _options (options), _filename (filename) { GtkWidget * dialog = gtk_dialog_new_with_buttons (_("Pan: Save Attachments"), parent_window, GTK_DIALOG_DESTROY_WITH_PARENT, nullptr, nullptr); gtk_dialog_add_button (GTK_DIALOG(dialog), GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL); GtkWidget * focus = gtk_dialog_add_button (GTK_DIALOG(dialog), GTK_STOCK_SAVE, GTK_RESPONSE_OK); gtk_window_set_role (GTK_WINDOW(dialog), "pan-save-attachments-dialog"); gtk_dialog_set_default_response (GTK_DIALOG(dialog), GTK_RESPONSE_OK); g_signal_connect (dialog, "response", G_CALLBACK(response_cb), this); g_signal_connect_swapped (dialog, "destroy", G_CALLBACK(delete_save_dialog), this); const std::string group_path (group_prefs.get_string (group, "default-group-save-path", "")); const bool have_group_default (!group_path.empty()); int row (0); GtkWidget *t, *w, *h; t = HIG :: workarea_create (); HIG :: workarea_add_section_spacer (t, row, have_group_default ? 4 : 3); if (path_mode==PATH_GROUP && !have_group_default) path_mode = PATH_ENTRY; h = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); if (have_group_default) { w = _save_custom_path_radio = gtk_radio_button_new_with_mnemonic (nullptr, _("_Location:")); gtk_box_pack_start (GTK_BOX(h), w, false, false, 0); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(w), path_mode==PATH_ENTRY); } w = _save_path_entry = file_entry_new (_("Save Articles")); gtk_box_pack_start (GTK_BOX(h), w, true, true, 0); std::string path (_prefs.get_string ("default-save-attachments-path", "")); if (path.empty()) path = g_get_home_dir (); file_entry_set (w, path.c_str()); g_signal_connect (file_entry_gtk_entry(w), "changed", G_CALLBACK(entry_changed_cb), _save_custom_path_radio); gtk_widget_set_size_request (GTK_WIDGET(w), 400, 0); w = gtk_button_new_from_stock (GTK_STOCK_HELP); gtk_box_pack_start (GTK_BOX(h), w, false, false, 0); g_signal_connect_swapped (w, "clicked", G_CALLBACK (show_group_substitution_help_dialog), dialog); if (have_group_default) HIG :: workarea_add_wide_control (t, &row, h); else HIG :: workarea_add_row (t, &row, _("_Location:"), h, file_entry_gtk_entry(_save_path_entry)); if (have_group_default) { char * pch = g_strdup_printf (_("_Group's path: %s"), group_path.c_str()); w = gtk_radio_button_new_with_mnemonic_from_widget (GTK_RADIO_BUTTON(_save_custom_path_radio), pch); _save_group_path_radio = w; gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(w), path_mode==PATH_GROUP); g_object_set_data_full (G_OBJECT(w), "default-group-save-path", g_strdup(group_path.c_str()), g_free); g_free (pch); HIG :: workarea_add_wide_control (t, &row, w); } w = create_priority_combo_box (prefs); g_signal_connect (w, "changed", G_CALLBACK(priority_combo_box_selection_changed), &prefs); w = HIG :: workarea_add_row (t, &row, _("_Priority:"), w); gtk_widget_show_all (t); gtk_box_pack_start (GTK_BOX( gtk_dialog_get_content_area( GTK_DIALOG(dialog))), t, true, true, 0); gtk_widget_grab_focus (focus); _root = dialog; } pan-0.162/pan/gui/save-attach-ui.h000066400000000000000000000051041475412772400166430ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #ifndef __SaveAttachUI_h__ #define __SaveAttachUI_h__ #include #include #include #include #include #include #include #include #include #include "group-prefs.h" #include "prefs.h" namespace pan { class SaveAttachmentsDialog { public: SaveAttachmentsDialog (Prefs & prefs, const GroupPrefs & group_prefs, const ServerRank & server_rank, const GroupServer & group_server, ArticleCache & cache, ArticleRead & read, Queue & queue, GtkWindow * parent_window, const Quark & group, const std::vector
& articles, const TaskArticle::SaveOptions & options, const char * filename=nullptr ); ~SaveAttachmentsDialog () {} GtkWidget * root() { return _root; } private: Prefs& _prefs; const ServerRank& _server_rank; const GroupServer& _group_server; ArticleCache& _cache; ArticleRead& _read; Queue& _queue; const Quark _group; GtkWidget * _root; GtkWidget * _save_path_entry; GtkWidget * _save_custom_path_radio; GtkWidget * _save_group_path_radio; std::vector
_articles; TaskArticle::SaveOptions _options; const char* _filename; private: static void response_cb (GtkDialog*, int, gpointer); private: static bool _save_text; static bool _save_attachments; }; } #endif pan-0.162/pan/gui/save-ui.cc000066400000000000000000000304371475412772400155460ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #include #include #include #include #include #include #include #include #include #include #include "hig.h" #include "pad.h" #include "pan-file-entry.h" #include "save-ui.h" using namespace pan; namespace { void show_group_substitution_help_dialog (gpointer window) { const char * str = _("%g - group as one directory (alt.binaries.pictures.trains)\n" "%G - group as nested directory (/alt/binaries/pictures/trains)\n" "%s - subject line excerpt\n" "%S - subject line\n" "%n - Poster display name\n" "%e - Poster email address\n" "%d - Article timestamp\n" " \n" "\"/home/user/News/Pan/%g\" becomes\n" "\"/home/user/News/Pan/alt.binaries.pictures.trains\", and\n" "\"/home/user/News/Pan/%G\" becomes\n" "\"/home/user/News/Pan/alt/binaries/pictures/trains\","); GtkWidget * w = gtk_message_dialog_new (GTK_WINDOW(window), GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_INFO, GTK_BUTTONS_CLOSE, "%s", str); g_signal_connect_swapped (w, "response", G_CALLBACK(gtk_widget_destroy), w); gtk_widget_show_all (w); } void delete_save_dialog (gpointer castme) { delete static_cast(castme); } enum { PATH_GROUP, PATH_ENTRY }; int path_mode (PATH_GROUP); } void SaveDialog :: response_cb (GtkDialog * dialog, int response, gpointer user_data) { if (response == GTK_RESPONSE_OK) { SaveDialog * self (static_cast(user_data)); bool subject_in_path = false; // set the path mode based on what widgets exist & are set GtkWidget * gr (self->_save_group_path_radio); GtkWidget * er (self->_save_custom_path_radio); if (gr && er) path_mode = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(gr)) ? PATH_GROUP : PATH_ENTRY; else path_mode = PATH_ENTRY; // get the save path std::string path, opath; if (path_mode == PATH_GROUP) path = (const char*) g_object_get_data (G_OBJECT(gr), "default-group-save-path"); else if (path_mode == PATH_ENTRY) { path = pan :: file_entry_get (self->_save_path_entry); self->_prefs.set_string ("default-save-attachments-path", path); } path = opath = expand_download_dir (path.c_str(), self->_group.to_view()); if ((path.find("%s") != path.npos) || (path.find("%S") != path.npos)) subject_in_path = true; // get the save mode int save_mode; std::string s (self->_prefs.get_string ("save-article-mode", "save-attachments")); if (s == "save-text") save_mode = TaskArticle::RAW; else if (s == "save-attachments-and-text") save_mode = TaskArticle::DECODE | TaskArticle::RAW; else save_mode = TaskArticle::DECODE; std::string sep( self->_prefs.get_string("save-subj-separator", "-") ); const bool always (self->_prefs.get_flag("mark-downloaded-articles-read", false)); // make the tasks... Queue::tasks_t tasks; foreach_const (std::vector
, self->_articles, it) { if (subject_in_path) path = expand_download_dir_subject(opath.c_str(), it->subject, sep); tasks.push_back (new TaskArticle (self->_server_rank, self->_group_server, *it, self->_cache, self->_read, always ? TaskArticle::ALWAYS_MARK : TaskArticle::NEVER_MARK, nullptr, TaskArticle::SaveMode(save_mode), path)); } // get the queue mode... Queue::AddMode queue_mode; s = self->_prefs.get_string ("save-article-priority", "age"); if (s == "top") queue_mode = Queue::TOP; else if (s == "bottom") queue_mode = Queue::BOTTOM; else queue_mode = Queue::AGE; // queue up the tasks... if (!tasks.empty()) self->_queue.add_tasks (tasks, queue_mode); } gtk_widget_destroy (GTK_WIDGET(dialog)); } namespace { void entry_changed_cb (GtkEditable*, gpointer radio_or_null) { if (radio_or_null) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(radio_or_null), true); } void combo_box_selection_changed (GtkComboBox * combo, gpointer prefs, const char * key) { GtkTreeIter iter; gtk_combo_box_get_active_iter (combo, &iter); GtkTreeModel * model (gtk_combo_box_get_model (combo)); char * s (nullptr); gtk_tree_model_get (model, &iter, 0, &s, -1); static_cast(prefs)->set_string (key, s); g_free (s); } void mode_combo_box_selection_changed (GtkComboBox * combo, gpointer prefs) { combo_box_selection_changed (combo, prefs, "save-article-mode"); } void priority_combo_box_selection_changed (GtkComboBox * combo, gpointer prefs) { combo_box_selection_changed (combo, prefs, "save-article-priority"); } GtkWidget* create_combo_box (Prefs& prefs, const char * key, const char * fallback, ...) { const std::string active_str (prefs.get_string (key, fallback)); int active (-1); GtkListStore * store = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_STRING); va_list args; va_start (args, fallback); for (int i=0;; ++i) { const char * key_str = va_arg (args, const char*); if (!key_str) break; const char * gui_str = va_arg (args, const char*); GtkTreeIter iter; gtk_list_store_append (store, &iter); gtk_list_store_set (store, &iter, 0, key_str, 1, gui_str, -1); if (active_str == key_str) active = i; } va_end(args); GtkWidget * w = gtk_combo_box_new_with_model (GTK_TREE_MODEL(store)); GtkCellRenderer * renderer (gtk_cell_renderer_text_new ()); gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (w), renderer, true); gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (w), renderer, "text", 1, nullptr); gtk_combo_box_set_active (GTK_COMBO_BOX(w), active); return w; } GtkWidget* create_mode_combo_box (Prefs& prefs) { return create_combo_box (prefs, "save-article-mode", "save-attachments", "save-attachments", _("Save attachments"), "save-text", _("Save text"), "save-attachments-and-text", _("Save attachments and text"), nullptr); } GtkWidget* create_priority_combo_box (Prefs& prefs) { return create_combo_box (prefs, "save-article-priority", "age", "age", _("Add to the queue sorted by date posted"), "top", _("Add to the front of the queue"), "bottom", _("Add to the back of the queue"), nullptr); } } SaveDialog :: SaveDialog (Prefs & prefs, const GroupPrefs & group_prefs, const ServerRank & server_rank, const GroupServer & group_server, ArticleCache & cache, ArticleRead & read, Queue & queue, GtkWindow * parent_window, const Quark & group, const std::vector
& articles): _prefs(prefs), _server_rank (server_rank), _group_server (group_server), _cache (cache), _read (read), _queue (queue), _group (group), _root (nullptr), _save_custom_path_radio (nullptr), _save_group_path_radio (nullptr), _articles (articles) { GtkWidget * dialog = gtk_dialog_new_with_buttons (_("Pan: Save Articles"), parent_window, GTK_DIALOG_DESTROY_WITH_PARENT, nullptr, nullptr); gtk_dialog_add_button (GTK_DIALOG(dialog), "_Cancel", GTK_RESPONSE_CANCEL); GtkWidget * focus = gtk_dialog_add_button (GTK_DIALOG(dialog), "_Save", GTK_RESPONSE_OK); gtk_window_set_role (GTK_WINDOW(dialog), "pan-save-articles-dialog"); gtk_dialog_set_default_response (GTK_DIALOG(dialog), GTK_RESPONSE_OK); g_signal_connect (dialog, "response", G_CALLBACK(response_cb), this); g_signal_connect_swapped (dialog, "destroy", G_CALLBACK(delete_save_dialog), this); const std::string group_path (group_prefs.get_string (group, "default-group-save-path", "")); const bool have_group_default (!group_path.empty()); int row (0); GtkWidget *t, *w, *h; t = HIG :: workarea_create (); HIG :: workarea_add_section_spacer (t, row, have_group_default ? 4 : 3); if (path_mode==PATH_GROUP && !have_group_default) path_mode = PATH_ENTRY; h = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); if (have_group_default) { w = _save_custom_path_radio = gtk_radio_button_new_with_mnemonic (nullptr, _("_Location:")); gtk_box_pack_start (GTK_BOX(h), w, false, false, 0); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(w), path_mode==PATH_ENTRY); } w = _save_path_entry = file_entry_new (_("Save Articles")); gtk_box_pack_start (GTK_BOX(h), w, true, true, 0); std::string path (_prefs.get_string ("default-save-attachments-path", "")); if (path.empty()) path = g_get_home_dir (); file_entry_set (w, path.c_str()); g_signal_connect (file_entry_gtk_entry(w), "changed", G_CALLBACK(entry_changed_cb), _save_custom_path_radio); gtk_widget_set_size_request (GTK_WIDGET(w), 400, 0); w = gtk_button_new_with_label ("Help"); gtk_box_pack_start (GTK_BOX(h), w, false, false, 0); g_signal_connect_swapped (w, "clicked", G_CALLBACK (show_group_substitution_help_dialog), dialog); if (have_group_default) HIG :: workarea_add_wide_control (t, &row, h); else HIG :: workarea_add_row (t, &row, _("_Location:"), h, file_entry_gtk_entry(_save_path_entry)); if (have_group_default) { char * pch = g_strdup_printf (_("_Group's path: %s"), group_path.c_str()); w = gtk_radio_button_new_with_mnemonic_from_widget (GTK_RADIO_BUTTON(_save_custom_path_radio), pch); _save_group_path_radio = w; gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(w), path_mode==PATH_GROUP); g_object_set_data_full (G_OBJECT(w), "default-group-save-path", g_strdup(group_path.c_str()), g_free); g_free (pch); HIG :: workarea_add_wide_control (t, &row, w); } w = create_mode_combo_box (prefs); g_signal_connect (w, "changed", G_CALLBACK(mode_combo_box_selection_changed), &prefs); w = HIG :: workarea_add_row (t, &row, _("_Action:"), w); w = create_priority_combo_box (prefs); g_signal_connect (w, "changed", G_CALLBACK(priority_combo_box_selection_changed), &prefs); w = HIG :: workarea_add_row (t, &row, _("_Priority:"), w); gtk_widget_show_all (t); gtk_box_pack_start (GTK_BOX( gtk_dialog_get_content_area( GTK_DIALOG(dialog))), t, true, true, 0); gtk_widget_grab_focus (focus); _root = dialog; } pan-0.162/pan/gui/save-ui.h000066400000000000000000000044461475412772400154110ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #ifndef __SaveUI_h__ #define __SaveUI_h__ #include #include #include #include #include #include #include #include #include "group-prefs.h" #include "prefs.h" namespace pan { class SaveDialog { public: SaveDialog (Prefs & prefs, const GroupPrefs & group_prefs, const ServerRank & server_rank, const GroupServer & group_server, ArticleCache & cache, ArticleRead & read, Queue & queue, GtkWindow * parent_window, const Quark & group, const std::vector
& articles); ~SaveDialog () {} GtkWidget * root() { return _root; } private: Prefs& _prefs; const ServerRank& _server_rank; const GroupServer& _group_server; ArticleCache& _cache; ArticleRead& _read; Queue& _queue; const Quark _group; GtkWidget * _root; GtkWidget * _save_path_entry; GtkWidget * _save_custom_path_radio; GtkWidget * _save_group_path_radio; std::vector
_articles; private: static void response_cb (GtkDialog*, int, gpointer); private: static bool _save_text; static bool _save_attachments; }; } #endif pan-0.162/pan/gui/score-add-ui.cc000066400000000000000000000541761475412772400164570ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #include #include #include #include #include #include #include "hig.h" #include "pad.h" #include "score-add-ui.h" #include "score-view-ui.h" #include #include using namespace pan; /** *** Key - Value paired comboboxes **/ namespace { enum { VALUE_STR, VALUE_TYPE, VALUE_COLS }; GtkWidget * value_combo_new (GtkTreeModel * model=nullptr) { GtkWidget * w = model ? gtk_combo_box_new_with_model (model) : gtk_combo_box_new (); GtkCellRenderer * renderer (gtk_cell_renderer_text_new ()); gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (w), renderer, TRUE); gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (w), renderer, "text", VALUE_STR, nullptr); if (model) gtk_combo_box_set_active (GTK_COMBO_BOX(w), 0); return w; } int value_combo_get (GtkComboBox * w) { int type; GtkTreeIter iter; gtk_combo_box_get_active_iter (w, &iter); GtkTreeModel * model (gtk_combo_box_get_model (w)); gtk_tree_model_get (model, &iter, VALUE_TYPE, &type, -1); return type; } void value_combo_set (GtkComboBox * w, int type) { GtkTreeIter iter; GtkTreeModel * model (gtk_combo_box_get_model (w)); if (gtk_tree_model_get_iter_first (model, &iter)) do { int it_type; gtk_tree_model_get (model, &iter, VALUE_TYPE, &it_type, -1); if (type == it_type) { gtk_combo_box_set_active_iter (w, &iter); return; } } while (gtk_tree_model_iter_next (model, &iter)); } /** *** **/ enum { VAL_GT, VAL_LE }; GtkTreeModel* gtle_tree_model_new () { struct { int type; const char * str; } items[] = { { VAL_GT, N_("is more than") }, { VAL_LE, N_("is at most") } }; GtkListStore * store = gtk_list_store_new (VALUE_COLS, G_TYPE_STRING, G_TYPE_INT); for (unsigned int i(0); i(g_object_get_data (G_OBJECT(h), "article"))); // get the state... const Field value ((Field)value_combo_get (w)); // update the text entry field... std::string text; if (value == REFERENCES) text = a->message_id.to_string(); else if (value == AUTHOR) text = a->author.to_string(); else text = a->subject.to_string(); gtk_entry_set_text (GTK_ENTRY(entry), text.c_str()); // update the widgetry switch (value) { case SUBJECT: case AUTHOR: case REFERENCES: { GtkTreeModel * model = text_tree_model_new (); gtk_combo_box_set_model (criteria, model); text_combo_set (criteria, value==REFERENCES ? TextMatch::CONTAINS : TextMatch::IS, false); g_object_unref (model); // FIXME: need to update the entry here to subject / author / references gtk_widget_hide (spin); gtk_widget_show (entry); break; } case LINES: case BYTES: case AGE: { GtkTreeModel * model = gtle_tree_model_new (); gtk_combo_box_set_model (criteria, model); value_combo_set (criteria, (value==AGE ? VAL_LE : VAL_GT)); g_object_unref (model); gtk_widget_hide (entry); gtk_widget_show (spin); gtk_spin_button_set_value (GTK_SPIN_BUTTON(spin), (value==AGE ? 7 : (value==LINES ? 100 : 1000))); break; } case CROSSPOSTS: { GtkTreeModel * model = gtle_tree_model_new (); gtk_combo_box_set_model (criteria, model); value_combo_set (criteria, VAL_GT); g_object_unref (model); gtk_widget_hide (entry); gtk_widget_show (spin); gtk_spin_button_set_value (GTK_SPIN_BUTTON(spin), 2); break; } } } GtkWidget* criteria_line_new (GtkWidget *& setme_field, GtkWidget *& setme_criteria, GtkWidget *& setme_entry, GtkWidget *& setme_spin, const Article * article) { GtkWidget * h = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, PAD); g_object_set_data (G_OBJECT(h), "article", gpointer(article)); GtkTreeModel * model = field_tree_model_new (); GtkWidget * field = setme_field = value_combo_new (model); g_object_unref (G_OBJECT(model)); gtk_box_pack_start (GTK_BOX(h), field, false, false, 0); g_signal_connect (field, "changed", G_CALLBACK(field_changed_cb), h); g_object_set_data (G_OBJECT(h), "field", field); GtkWidget * criteria = setme_criteria = value_combo_new (); gtk_box_pack_start (GTK_BOX(h), criteria, false, false, 0); g_object_set_data (G_OBJECT(h), "criteria", criteria); GtkWidget * entry = setme_entry = gtk_entry_new (); gtk_entry_set_width_chars (GTK_ENTRY(entry), 40); gtk_box_pack_start (GTK_BOX(h), entry, true, true, 0); g_object_set_data (G_OBJECT(h), "entry", entry); GtkAdjustment * a = (GtkAdjustment*)gtk_adjustment_new (100, -ULONG_MAX, ULONG_MAX, 1.0, 1.0, 0.0); GtkWidget * spin = setme_spin = gtk_spin_button_new (a, 100.0, 0u); gtk_box_pack_start (GTK_BOX(h), spin, false, false, 0); g_object_set_data (G_OBJECT(h), "spin", spin); gtk_widget_show (field); gtk_widget_show (criteria); gtk_widget_show (h); field_changed_cb (GTK_COMBO_BOX(field), h); return h; } } /*** **** ***/ void ScoreAddDialog :: add_this_to_scorefile (bool do_rescore) { // section bool negate (false); int value (0); std::string section_wildmat (gtk_entry_get_text (GTK_ENTRY(_section_entry))); text_combo_get (_section_menu, value, negate); switch (value) { case TextMatch::CONTAINS: section_wildmat = "*" + section_wildmat + "*"; break; case TextMatch::BEGINS_WITH: section_wildmat = section_wildmat + "*"; break; case TextMatch::ENDS_WITH: section_wildmat = "*" + section_wildmat; break; case TextMatch::IS: break; } if (negate) section_wildmat = "~" + section_wildmat; // criteria Scorefile::AddItem item; item.on = true; const int field (value_combo_get (GTK_COMBO_BOX(_field_menu))); switch (field) { case SUBJECT: item.key = "Subject"; break; case AUTHOR: item.key = "From"; break; case REFERENCES: item.key = "References"; break; case LINES: item.key = "Lines"; break; case BYTES: item.key = "Bytes"; break; case CROSSPOSTS: item.key = "Xref"; break; case AGE: item.key = "Age"; break; default: assert(0); } if (field==SUBJECT || field==AUTHOR || field==REFERENCES) { text_combo_get (_criteria_menu, value, item.negate); const char * pch = gtk_entry_get_text (GTK_ENTRY(_text_criteria_entry)); item.value = TextMatch::create_regex (pch, (TextMatch::Type)value); } else { const int rel = value_combo_get(GTK_COMBO_BOX(_criteria_menu)); if (field == AGE) { // Note the reversed logic here: // slrn's scorefile matches "Age: 7" for articles <= 7 days old. int i = (int) gtk_spin_button_get_value (GTK_SPIN_BUTTON (_numeric_criteria_spin)); char buf[2048]; g_snprintf (buf, sizeof(buf), "%d", i); item.value = buf; item.negate = rel != VAL_LE; } else if (field == CROSSPOSTS) { // Xref is of form server group1:number1 group2:number2 // so to count the crossposts, test for some number of colons. const int gt = (int) gtk_spin_button_get_value (GTK_SPIN_BUTTON (_numeric_criteria_spin)); char buf[512]; snprintf (buf, sizeof(buf), "(.*:){%d} %% crossposted to %d or more groups ", gt+1, gt+1); item.value = buf; item.negate = rel != VAL_GT; } else // lines, bytes { // slrn's scoreifle matches "Lines: 7" for articles with > 7 lines. // bytes works the same way. const unsigned long l = (unsigned long) gtk_spin_button_get_value (GTK_SPIN_BUTTON (_numeric_criteria_spin)); char buf[2048]; g_snprintf (buf, sizeof(buf), "%lu", l); item.value = buf; item.negate = rel != VAL_GT; } } // score int score (0); bool assign_flag (false); const int spin_score (gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(_score_spin))); value = value_combo_get (GTK_COMBO_BOX(_score_menu)); switch (value) { case _ADD: assign_flag=false; score = spin_score; break; case _SUBTRACT: assign_flag=false; score = -spin_score; break; case _ASSIGN: assign_flag=true; score = spin_score; break; case _WATCH: assign_flag=true; score = 9999; break; case _IGNORE: assign_flag=true; score = -9999; break; } // duration in days const int days (value_combo_get (GTK_COMBO_BOX(_duration_menu))); // save it _data.add_score (section_wildmat, score, assign_flag, days, false, &item, 1, do_rescore); } void ScoreAddDialog :: response_cb (GtkDialog * w, int response, gpointer dialog_gpointer) { bool add (false); bool close (false); ScoreAddDialog * self (static_cast(dialog_gpointer)); if (response == GTK_RESPONSE_CANCEL) { close = true; } else if ((response == GTK_RESPONSE_OK || response == GTK_RESPONSE_APPLY)) { // are there any assignment items on this article already? bool assign (false); Scorefile::items_t items; self->_data.get_article_scores (self->_group, self->_article, items); for (Scorefile::items_t::const_iterator it(items.begin()), end(items.end()); !assign && it!=end; ++it) assign |= it->value_assign_flag; if (!assign) // no conflict... { add = close = true; } else { GtkWidget * d (gtk_message_dialog_new_with_markup ( GTK_WINDOW(self->_root), GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_WARNING, GTK_BUTTONS_NONE, nullptr)); HIG :: message_dialog_set_text (GTK_MESSAGE_DIALOG(d), _("Another rule already sets this article's score."), _("You may want to go back or delete the old rule.")); gtk_dialog_add_buttons (GTK_DIALOG(d), _("Back"), -20, _("Delete"), -21, _("Add"), -22, nullptr); const int conflict_response (gtk_dialog_run (GTK_DIALOG(d))); gtk_widget_destroy (d); if (conflict_response == -20) // go back return; else if (conflict_response == -22) // add add = close = true; else { // delete ScoreView * score_view = new ScoreView (self->_data, GTK_WINDOW(w), self->_group, self->_article); gtk_widget_show_all (score_view->root()); } } } if (add) self->add_this_to_scorefile (response==GTK_RESPONSE_APPLY); if (close) gtk_widget_destroy (GTK_WIDGET(w)); } void ScoreAddDialog :: populate (const Quark& group, const Article& a, Mode mode) { // section text_combo_set (GTK_COMBO_BOX(_section_menu), TextMatch::IS, false); const char * g = group.empty() ? "" : group.c_str(); gtk_entry_set_text (GTK_ENTRY(_section_entry), g); // criteria int field; switch (mode) { case PLONK: field = AUTHOR; break; case WATCH_SUBTHREAD: case IGNORE_SUBTHREAD: field = REFERENCES; break; default: field = SUBJECT; break; } value_combo_set (GTK_COMBO_BOX(_field_menu), field); text_combo_set (GTK_COMBO_BOX(_criteria_menu), field==REFERENCES ? TextMatch::CONTAINS : TextMatch::IS, false); std::string text; if (field == REFERENCES) text = a.message_id.to_string(); else if (field == AUTHOR) text = a.author.to_string(); else text = a.subject.to_string(); gtk_entry_set_text (GTK_ENTRY(_text_criteria_entry), text.c_str()); // score int score_mode; switch (mode) { case WATCH_SUBTHREAD: score_mode = _WATCH; break; case PLONK: case IGNORE_SUBTHREAD: score_mode = _IGNORE; break; default: score_mode = _ADD; break; } gtk_spin_button_set_value (GTK_SPIN_BUTTON(_score_spin), 100); value_combo_set (GTK_COMBO_BOX(_score_menu), score_mode); // duration value_combo_set (GTK_COMBO_BOX(_duration_menu), MONTH); } namespace { GtkWidget* create_rescore_button () { GtkWidget * button = gtk_button_new (); GtkWidget * label = gtk_label_new_with_mnemonic (_("Add and Re_score")); gtk_label_set_mnemonic_widget (GTK_LABEL (label), GTK_WIDGET (button)); GtkWidget * image = gtk_image_new_from_icon_name ("list-add", GTK_ICON_SIZE_BUTTON); GtkWidget * image2 = gtk_image_new_from_icon_name ("view-refresh", GTK_ICON_SIZE_BUTTON); GtkWidget * hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 2); gtk_box_pack_start (GTK_BOX (hbox), image, FALSE, FALSE, 0); gtk_box_pack_start (GTK_BOX (hbox), image2, FALSE, FALSE, 0); gtk_box_pack_end (GTK_BOX (hbox), label, FALSE, FALSE, 0); gtk_container_add (GTK_CONTAINER (button), hbox); gtk_widget_show_all (hbox); return button; } void delete_score_add_dialog (gpointer dialog_gpointer) { delete static_cast(dialog_gpointer); } } namespace { void score_combo_changed_cb (GtkComboBox* w, gpointer spin_gpointer) { const int value = value_combo_get (w); GtkWidget * spin (GTK_WIDGET (spin_gpointer)); if (value==_WATCH || value==_IGNORE) gtk_widget_hide (spin); else gtk_widget_show (spin); } } ScoreAddDialog :: ScoreAddDialog (Data & data, GtkWidget * parent, const Quark & group, const Article & article, Mode mode): _data (data), _article (article), _group (group), _root (nullptr) { std::string s (_("Pan")); s += ": "; s += _("New Scoring Rule"); GtkWidget * w = _root = gtk_dialog_new_with_buttons (s.c_str(), GTK_WINDOW(gtk_widget_get_toplevel(parent)), GTK_DIALOG_DESTROY_WITH_PARENT, _("Cancel"), GTK_RESPONSE_CANCEL, _("Add"), GTK_RESPONSE_OK, nullptr); g_object_set_data_full (G_OBJECT(w), "dialog", this, delete_score_add_dialog); GtkWidget * button = create_rescore_button (); gtk_widget_show (button); gtk_dialog_add_action_widget (GTK_DIALOG(w), button, GTK_RESPONSE_APPLY); g_signal_connect (w, "response", G_CALLBACK(response_cb), this); /** *** workarea **/ int row = 0; GtkWidget * t = HIG :: workarea_create (); gtk_box_pack_start (GTK_BOX( gtk_dialog_get_content_area( GTK_DIALOG(_root))), t, true, true, 0); HIG::workarea_add_section_title (t, &row, _("New Scoring Rule")); HIG::workarea_add_section_spacer (t, row, 4); // section GtkWidget * h = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, PAD); GtkTreeModel * model = text_tree_model_new (false); w = _section_menu = value_combo_new (model); g_object_unref (G_OBJECT(model)); gtk_box_pack_start (GTK_BOX(h), w, false, false, 0); w = _section_entry = gtk_entry_new (); gtk_box_pack_start (GTK_BOX(h), w, true, true, 0); HIG::workarea_add_row (t, &row, _("Group name"), h); gtk_widget_show_all (h); // criteria w = criteria_line_new (_field_menu, _criteria_menu, _text_criteria_entry, _numeric_criteria_spin, &_article); HIG::workarea_add_row (t, &row, _("and"), w); gtk_widget_show (w); // score h = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, PAD_SMALL); model = score_tree_model_new (); w = _score_menu = value_combo_new (model); g_object_unref (model); gtk_box_pack_start (GTK_BOX(h), w, true, true, 0); GtkAdjustment * a = (GtkAdjustment*)gtk_adjustment_new (100, INT_MIN, INT_MAX, 1.0, 1.0, 0.0); w = _score_spin = gtk_spin_button_new (a, 100.0, 0u); gtk_box_pack_start (GTK_BOX(h), w, true, true, 0); HIG::workarea_add_wide_control (t, &row, h); gtk_widget_show_all (h); g_signal_connect (_score_menu, "changed", G_CALLBACK(score_combo_changed_cb), w); // duration model = time_tree_model_new (); w = _duration_menu = value_combo_new (model); g_object_unref (model); HIG::workarea_add_wide_control (t, &row, w); gtk_widget_show (w); populate (group, article, mode); gtk_widget_show (t); } pan-0.162/pan/gui/score-add-ui.h000066400000000000000000000021761475412772400163120ustar00rootroot00000000000000#ifndef __SCORE_ADD_UI_H__ #define __SCORE_ADD_UI_H__ #include #include #include #include namespace pan { /** * Dialog for creating a new entry for the Scorefile. * @ingroup GUI */ struct ScoreAddDialog { public: enum Mode { ADD, PLONK, WATCH_SUBTHREAD, IGNORE_SUBTHREAD }; ScoreAddDialog (Data& data, GtkWidget* parent, const Quark& group, const Article&, Mode); public: GtkWidget* root() { return _root; } private: void populate (const Quark& group, const Article&, Mode); void add_this_to_scorefile (bool do_rescore_all); static void response_cb (GtkDialog*, int response, gpointer); private: Data& _data; const Article _article; Quark _group; GtkWidget * _root; GtkWidget * _section_menu; GtkWidget * _section_entry; GtkWidget * _field_menu; GtkWidget * _criteria_menu; GtkWidget * _text_criteria_entry; GtkWidget * _numeric_criteria_spin; GtkWidget * _score_menu; GtkWidget * _score_spin; GtkWidget * _duration_menu; }; } #endif pan-0.162/pan/gui/score-view-ui.cc000066400000000000000000000213761475412772400166750ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #include #include #include #include #include #include "pad.h" #include "score-add-ui.h" #include "score-view-ui.h" using namespace pan; namespace { void response_cb (GtkDialog * dialog, int response, gpointer data) { if (response == GTK_RESPONSE_APPLY) static_cast(data)->rescore (); gtk_widget_destroy (GTK_WIDGET(dialog)); } enum { COLUMN_SCORE_DELTA, COLUMN_SCORE_VALUE, COLUMN_CRITERIA, COLUMN_DATA, COLUMN_QTY }; GtkWidget* create_rescore_button () { GtkWidget * button = gtk_button_new (); GtkWidget * label = gtk_label_new_with_mnemonic (_("Close and Re_score")); gtk_label_set_mnemonic_widget (GTK_LABEL (label), GTK_WIDGET (button)); GtkWidget * image = gtk_image_new_from_stock (GTK_STOCK_CLOSE, GTK_ICON_SIZE_BUTTON); GtkWidget * image2 = gtk_image_new_from_stock (GTK_STOCK_REFRESH, GTK_ICON_SIZE_BUTTON); GtkWidget * hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 2); GtkWidget * align = gtk_alignment_new (0.5, 0.5, 0.0, 0.0); gtk_box_pack_start (GTK_BOX (hbox), image, FALSE, FALSE, 0); gtk_box_pack_start (GTK_BOX (hbox), image2, FALSE, FALSE, 0); gtk_box_pack_end (GTK_BOX (hbox), label, FALSE, FALSE, 0); gtk_container_add (GTK_CONTAINER (button), align); gtk_container_add (GTK_CONTAINER (align), hbox); gtk_widget_show_all (align); return button; } void delete_score_view (gpointer score_view_gpointer) { delete (ScoreView*) score_view_gpointer; } } void ScoreView :: add_destroy_cb (GtkWidget*, gpointer view_gpointer) { static_cast(view_gpointer)->tree_view_refresh (); } void ScoreView :: on_add () { ScoreAddDialog * add = new ScoreAddDialog (_data, _root, _group, _article, ScoreAddDialog::ADD); g_signal_connect (add->root(), "destroy", G_CALLBACK(add_destroy_cb), this); gtk_widget_show (add->root()); } void ScoreView :: add_clicked_cb (GtkWidget*, gpointer view_gpointer) { static_cast(view_gpointer)->on_add (); } void ScoreView :: on_remove () { GtkTreeSelection * sel (gtk_tree_view_get_selection (GTK_TREE_VIEW (tree_view))); GtkTreeModel * model; GtkTreeIter iter; if (gtk_tree_selection_get_selected (sel, &model, &iter)) { int index (-1); gtk_tree_model_get (model, &iter, COLUMN_DATA, &index, -1); const Scorefile::Item& item (_items[index]); _data.comment_out_scorefile_line (item.filename, item.begin_line, item.end_line, true); tree_view_refresh (); } } void ScoreView :: remove_clicked_cb (GtkWidget*, gpointer view_gpointer) { static_cast(view_gpointer)->on_remove (); } void ScoreView :: tree_view_refresh () { _items.clear (); _data.get_article_scores (_group, _article, _items); gtk_list_store_clear (_store); int score (0); for (size_t i(0), len(_items.size()); istr[criteria->len-1] == '\n') g_string_erase (criteria, criteria->len-1, 1); // add the new row to the model gtk_list_store_append (_store, &iter); gtk_list_store_set (_store, &iter, COLUMN_SCORE_DELTA, delta_str, COLUMN_SCORE_VALUE, value_str, COLUMN_CRITERIA, criteria->str, COLUMN_DATA, i, // index into _items -1); // cleanup g_string_free (criteria, TRUE); } } ScoreView :: ScoreView (Data& data, GtkWindow* parent, const Quark& group, const Article& article): _data (data), _group (group), _article (article), _root (nullptr) { GtkWidget * w = _root = gtk_dialog_new_with_buttons (_("Pan: Article's Scores"), parent, GTK_DIALOG_DESTROY_WITH_PARENT, GTK_STOCK_CLOSE, GTK_RESPONSE_OK, nullptr); GtkWidget * button = create_rescore_button (); gtk_widget_show (button); gtk_dialog_add_action_widget (GTK_DIALOG(w), button, GTK_RESPONSE_APPLY); gtk_window_set_resizable (GTK_WINDOW(w), true); g_signal_connect (w, "response", G_CALLBACK(response_cb), &data); g_object_set_data_full (G_OBJECT(w), "score_view", this, delete_score_view); // workarea GtkWidget * hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, PAD); gtk_container_set_border_width (GTK_CONTAINER(hbox), 12); gtk_box_pack_start (GTK_BOX( gtk_dialog_get_content_area( GTK_DIALOG(w))), hbox, TRUE, TRUE, 0); gtk_widget_show (hbox); // create the list store & view _store = gtk_list_store_new (COLUMN_QTY, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INT); tree_view = gtk_tree_view_new_with_model (GTK_TREE_MODEL (_store)); gtk_tree_view_set_rules_hint (GTK_TREE_VIEW(tree_view), true); gtk_widget_show (tree_view); // add COLUMN_SCORE_DELTA GtkCellRenderer * renderer = gtk_cell_renderer_text_new (); GtkTreeViewColumn * column = gtk_tree_view_column_new_with_attributes (_("Add"), renderer, "text", COLUMN_SCORE_DELTA, nullptr); gtk_tree_view_append_column (GTK_TREE_VIEW(tree_view), column); // add COLUMN_SCORE_VALUE renderer = gtk_cell_renderer_text_new (); column = gtk_tree_view_column_new_with_attributes (_("New Score"), renderer, "text", COLUMN_SCORE_VALUE, nullptr); gtk_tree_view_append_column (GTK_TREE_VIEW(tree_view), column); // add COLUMN_CRITERIA renderer = gtk_cell_renderer_text_new (); column = gtk_tree_view_column_new_with_attributes (_("Criteria"), renderer, "text", COLUMN_CRITERIA, nullptr); gtk_tree_view_append_column (GTK_TREE_VIEW(tree_view), column); // set the selection mode GtkTreeSelection * selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (tree_view)); gtk_tree_selection_set_mode (selection, GTK_SELECTION_SINGLE); w = gtk_scrolled_window_new (nullptr, nullptr); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW(w), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW(w), GTK_SHADOW_IN); gtk_container_add (GTK_CONTAINER(w), tree_view); gtk_box_pack_start (GTK_BOX (hbox), w, TRUE, TRUE, 0); gtk_widget_set_size_request (w, 500, 300); gtk_widget_show (w); // button box GtkWidget * bbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, PAD_SMALL); gtk_box_pack_start (GTK_BOX (hbox), bbox, FALSE, FALSE, 0); gtk_widget_show (bbox); // add button w = gtk_button_new_from_stock (GTK_STOCK_ADD); gtk_box_pack_start (GTK_BOX (bbox), w, FALSE, FALSE, 0); gtk_widget_set_tooltip_text (w, _("Add a New Scoring Rule")); gtk_widget_show (w); g_signal_connect (w, "clicked", G_CALLBACK(this->add_clicked_cb), this); // remove button w = gtk_button_new_from_stock (GTK_STOCK_REMOVE); gtk_box_pack_start (GTK_BOX (bbox), w, FALSE, FALSE, 0); gtk_widget_set_tooltip_text (w, _("Remove the Selected Scoring Rule")); gtk_widget_show (w); g_signal_connect (w, "clicked", G_CALLBACK(this->remove_clicked_cb), this); tree_view_refresh (); } pan-0.162/pan/gui/score-view-ui.h000066400000000000000000000036151475412772400165330ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #ifndef _ScoreViewUI_h_ #define _ScoreViewUI_h_ #include #include #include #include #include #include #include namespace pan { class Scorefile; /** * Dialog that shows what Scorefile entries apply to a given Article. * @ingroup GUI */ class ScoreView { public: ScoreView (Data& data, GtkWindow* parent, const Quark& group, const Article& article); ~ScoreView () {} public: GtkWidget* root() { return _root; } private: Data& _data; const Quark _group; const Article _article; GtkWidget * _root; GtkWidget * tree_view; GtkListStore * _store; typedef Scorefile::items_t items_t; items_t _items; private: void tree_view_refresh (); private: static void remove_clicked_cb (GtkWidget*, gpointer); void on_remove (); static void add_clicked_cb (GtkWidget*, gpointer); void on_add (); static void add_destroy_cb (GtkWidget*, gpointer); }; } #endif pan-0.162/pan/gui/server-ui.cc000066400000000000000000001170271475412772400161170ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #include "server-ui.h" #include #include #include #include #include #include #include #include #include #include #include #include "pan/gui/load-icon.h" #include #include #include "pad.h" #include "hig.h" #ifdef HAVE_GNUTLS #include #include #endif #ifdef HAVE_GKR #define GCR_API_SUBJECT_TO_CHANGE #include #include #undef GCR_API_SUBJECT_TO_CHANGE #define USE_LIBSECRET_DEFAULT true #else #define USE_LIBSECRET_DEFAULT false #endif namespace pan { /************ ************* EDIT DIALOG ************/ namespace { struct ServerEditDialog { Data& data; Queue& queue; Prefs& prefs; Quark server; StringView cert; GtkWidget * dialog; GtkWidget * address_entry; GtkWidget * port_spin; GtkWidget * auth_username_entry; GtkWidget * auth_password_entry; GtkWidget * connection_limit_spin; GtkWidget * expiration_age_combo; GtkWidget * rank_combo; GtkWidget * compression_combo; GtkWidget * ssl_combo; GtkWidget * always_trust_checkbox; CompressionType compressiontype; ServerEditDialog (Data& d, Queue& q, Prefs& p): data(d), queue(q), prefs(p), dialog(nullptr), address_entry(nullptr), port_spin(nullptr), auth_username_entry(nullptr), auth_password_entry(nullptr), connection_limit_spin(nullptr), expiration_age_combo(nullptr), rank_combo(nullptr), compression_combo(nullptr), ssl_combo(nullptr), always_trust_checkbox(nullptr), compressiontype(HEADER_COMPRESS_NONE) {} }; void pan_entry_set_text (GtkWidget * w, const StringView& v) { GtkEditable * e (GTK_EDITABLE(w)); gtk_editable_delete_text (e, 0, -1); if (!v.empty()) { gint pos (0); gtk_editable_insert_text (e, v.str, v.len, &pos); } } StringView pan_entry_get_text (GtkWidget * w) { GtkEntry * entry (GTK_ENTRY (w)); return StringView (gtk_entry_get_text(entry)); } void pan_spin_button_set (GtkWidget * w, int i) { GtkSpinButton * sb (GTK_SPIN_BUTTON (w)); GtkAdjustment * a (gtk_spin_button_get_adjustment (sb)); gtk_adjustment_set_value (a, i); } void ssl_changed_cb(GtkComboBox* w, ServerEditDialog* d) { int ssl(0); #ifdef HAVE_GNUTLS GtkTreeIter iter; if (gtk_combo_box_get_active_iter (w, &iter)) gtk_tree_model_get (gtk_combo_box_get_model(w), &iter, 1, &ssl, -1); if (ssl==0) { gtk_widget_hide(d->always_trust_checkbox); } else { gtk_widget_show(d->always_trust_checkbox); } pan_spin_button_set (d->port_spin, ssl == 0 ? STD_NNTP_PORT : STD_SSL_PORT); #endif } void edit_dialog_populate (Data&, Prefs& prefs, const Quark& server, ServerEditDialog * d) { // sanity clause g_return_if_fail (d!=nullptr ); g_return_if_fail (GTK_IS_WIDGET(d->dialog)); d->server = server; int port(STD_NNTP_PORT), max_conn(4), age(31*3), rank(1), ssl(0), trust(0); CompressionType compression(HEADER_COMPRESS_NONE); std::string addr, user, cert; gchar* pass(nullptr); if (!server.empty()) { d->data.get_server_addr (server, addr, port); d->data.get_server_auth ( server, user, pass, prefs.get_flag( "use-password-storage", USE_LIBSECRET_DEFAULT)); age = d->data.get_server_article_expiration_age (server); rank = d->data.get_server_rank (server); max_conn = d->data.get_server_limits (server); ssl = d->data.get_server_ssl_support(server); cert = d->data.get_server_cert(server); d->data.get_server_trust (server, trust); d->data.get_server_compression_type (server, compression); } pan_entry_set_text (d->address_entry, addr); pan_spin_button_set (d->port_spin, port); pan_spin_button_set (d->connection_limit_spin, max_conn); pan_entry_set_text (d->auth_username_entry, user); pan_entry_set_text (d->auth_password_entry, pass); d->cert = cert; d->compressiontype = compression; // set the age combobox GtkComboBox * combo (GTK_COMBO_BOX (d->expiration_age_combo)); GtkTreeModel * model (gtk_combo_box_get_model (combo)); GtkTreeIter iter; if (gtk_tree_model_get_iter_first(model, &iter)) do { int that; gtk_tree_model_get (model, &iter, 1, &that, -1); if (that == age) { gtk_combo_box_set_active_iter (combo, &iter); break; } } while (gtk_tree_model_iter_next(model, &iter)); //set the compression combobox combo = GTK_COMBO_BOX (d->compression_combo); model = gtk_combo_box_get_model (combo); if (gtk_tree_model_get_iter_first(model, &iter)) do { int that; gtk_tree_model_get (model, &iter, 1, &that, -1); if (that == compression) { gtk_combo_box_set_active_iter (combo, &iter); break; } } while (gtk_tree_model_iter_next(model, &iter)); // set the rank combo combo = GTK_COMBO_BOX (d->rank_combo); model = gtk_combo_box_get_model (combo); if (gtk_tree_model_get_iter_first(model, &iter)) do { int that; gtk_tree_model_get (model, &iter, 1, &that, -1); if (that == rank) { gtk_combo_box_set_active_iter (combo, &iter); break; } } while (gtk_tree_model_iter_next(model, &iter)); #ifdef HAVE_GNUTLS // set ssl combo combo = GTK_COMBO_BOX (d->ssl_combo); model = gtk_combo_box_get_model (combo); if (gtk_tree_model_get_iter_first(model, &iter)) do { int that; gtk_tree_model_get (model, &iter, 1, &that, -1); if (that == ssl) { gtk_combo_box_set_active_iter (combo, &iter); break; } } while (gtk_tree_model_iter_next(model, &iter)); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(d->always_trust_checkbox), trust); #endif pan_spin_button_set (d->port_spin, port); } void server_edit_response_cb (GtkDialog * w, int response, gpointer user_data) { bool destroy (true); ServerEditDialog * d (static_cast(user_data)); g_assert (d!=nullptr); g_assert (GTK_IS_WIDGET(d->dialog)); if (response == GTK_RESPONSE_OK) { StringView addr (pan_entry_get_text (d->address_entry)); addr.trim (); const int port (gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(d->port_spin))); const int max_conn (gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(d->connection_limit_spin))); StringView user (pan_entry_get_text (d->auth_username_entry)); #ifdef HAVE_GKR gchar* pass = gcr_secure_memory_strdup(gtk_entry_get_text(GTK_ENTRY(d->auth_password_entry))); #else gchar* pass = (gchar*)gtk_entry_get_text(GTK_ENTRY(d->auth_password_entry)); #endif int age (31); GtkTreeIter iter; GtkComboBox * combo (GTK_COMBO_BOX (d->expiration_age_combo)); if (gtk_combo_box_get_active_iter (combo, &iter)) gtk_tree_model_get (gtk_combo_box_get_model(combo), &iter, 1, &age, -1); int rank (1); combo = GTK_COMBO_BOX (d->rank_combo); if (gtk_combo_box_get_active_iter (combo, &iter)) gtk_tree_model_get (gtk_combo_box_get_model(combo), &iter, 1, &rank, -1); int ssl(0); int trust(0); StringView cert(d->cert); #ifdef HAVE_GNUTLS combo = GTK_COMBO_BOX (d->ssl_combo); if (gtk_combo_box_get_active_iter (combo, &iter)) gtk_tree_model_get (gtk_combo_box_get_model(combo), &iter, 1, &ssl, -1); trust = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(d->always_trust_checkbox)) ? 1 : 0; #endif int header_comp (HEADER_COMPRESS_NONE); combo = GTK_COMBO_BOX (d->compression_combo); if (gtk_combo_box_get_active_iter (combo, &iter)) gtk_tree_model_get (gtk_combo_box_get_model(combo), &iter, 1, &header_comp, -1); const char * err_msg (nullptr); if (addr.empty()) err_msg = _("Please specify the server's address."); if (err_msg) { GtkWidget * dialog (gtk_message_dialog_new (GTK_WINDOW(d->dialog), GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, "%s",err_msg)); g_signal_connect_swapped (dialog, "response", G_CALLBACK(gtk_widget_destroy), dialog); gtk_widget_show (dialog); destroy = false; } else { if (d->server.empty()) d->server = d->data.add_new_server (); d->data.set_server_addr (d->server, addr, port); d->data.set_server_auth ( d->server, user, pass, d->prefs.get_flag( "use-password-storage", USE_LIBSECRET_DEFAULT)); d->data.set_server_limits (d->server, max_conn); d->data.set_server_article_expiration_age (d->server, age); d->data.set_server_rank (d->server, rank); d->data.set_server_ssl_support(d->server, ssl); d->data.set_server_cert(d->server,cert); d->data.set_server_trust(d->server,trust); d->data.set_server_compression_type(d->server, header_comp); d->data.save_server_info(d->server); d->queue.upkeep (); } } if (destroy) gtk_widget_destroy (GTK_WIDGET(w)); } void delete_server_edit_dialog (gpointer p) { delete (ServerEditDialog*)p; } } std::string import_sec_from_disk_dialog_new (Data& data, Queue& queue, GtkWindow * window) { std::string prev_path = g_get_home_dir (); std::string res; GtkWidget * w = gtk_file_chooser_dialog_new (_("Import SSL Certificate (PEM Format) From File"), window, GTK_FILE_CHOOSER_ACTION_OPEN, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT, nullptr); gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (w), prev_path.c_str()); gtk_file_chooser_set_select_multiple (GTK_FILE_CHOOSER (w), false); gtk_file_chooser_set_show_hidden (GTK_FILE_CHOOSER (w), false); const int response (gtk_dialog_run (GTK_DIALOG(w))); if (response == GTK_RESPONSE_ACCEPT) { res = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (w)); gtk_widget_destroy (w); } else gtk_widget_destroy (w); return res; } namespace { static void server_edit_dialog_realized_cb (GtkWidget*, gpointer gp) { ServerEditDialog * d (static_cast(gp)); // avoid NPE on early init g_signal_connect(d->ssl_combo, "changed", G_CALLBACK(ssl_changed_cb), d); } } GtkWidget* server_edit_dialog_new (Data& data, Queue& queue, Prefs& prefs, GtkWindow * window, const Quark& server) { ServerEditDialog * d (new ServerEditDialog (data, queue, prefs)); // create the dialog char * title = g_strdup_printf ("Pan: %s", server.empty() ? _("Add a Server") : _("Edit a Server's Settings")); GtkWidget * dialog = gtk_dialog_new_with_buttons (title, GTK_WINDOW(window), GTK_DIALOG_DESTROY_WITH_PARENT, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OK, GTK_RESPONSE_OK, nullptr); g_free (title); gtk_window_set_role (GTK_WINDOW(dialog), "pan-edit-server-dialog"); d->dialog = dialog; g_object_set_data_full (G_OBJECT(dialog), "dialog", d, delete_server_edit_dialog); g_signal_connect (dialog, "response", G_CALLBACK(server_edit_response_cb), d); /** *** workarea **/ int row (0); GtkWidget * t (HIG::workarea_create ()); gtk_box_pack_start (GTK_BOX( gtk_dialog_get_content_area( GTK_DIALOG(d->dialog))), t, TRUE, TRUE, 0); HIG::workarea_add_section_title (t, &row, _("Location")); HIG::workarea_add_section_spacer (t, row, 2); GtkWidget * w = d->address_entry = gtk_entry_new (); gtk_widget_set_tooltip_text( w, _("The news server's actual address, e.g. \"news.mynewsserver.com\".")); HIG::workarea_add_row (t, &row, _("_Address:"), w, nullptr); //g_signal_connect (w, "changed", G_CALLBACK(address_entry_changed_cb), d); GtkAdjustment * a = GTK_ADJUSTMENT (gtk_adjustment_new (1.0, 1.0, ULONG_MAX, 1.0, 1.0, 0.0)); w = d->port_spin = gtk_spin_button_new (GTK_ADJUSTMENT(a), 1.0, 0u); gtk_widget_set_tooltip_text( w, _("The news server's port number. Typically 119 for unencrypted and 563 for encrypted connections (SSL/TLS).")); HIG::workarea_add_row (t, &row, _("Por_t:"), w, nullptr); HIG::workarea_add_section_divider (t, &row); HIG::workarea_add_section_title (t, &row, _("Login (if Required)")); HIG::workarea_add_section_spacer (t, row, 2); w = d->auth_username_entry = gtk_entry_new (); HIG::workarea_add_row (t, &row, _("_Username:"), w, nullptr); gtk_widget_set_tooltip_text( w, _("The username to give the server when asked. If your server doesn't require authentication, you can leave this blank.")); w = d->auth_password_entry = gtk_entry_new (); gtk_entry_set_visibility (GTK_ENTRY(w), FALSE); HIG::workarea_add_row (t, &row, _("_Password:"), w, nullptr); gtk_widget_set_tooltip_text( w, _("The password to give the server when asked. If your server doesn't require authentication, you can leave this blank.")); HIG::workarea_add_section_divider (t, &row); HIG::workarea_add_section_title (t, &row, _("Settings")); HIG::workarea_add_section_spacer (t, row, 2); // max connections const int DEFAULT_MAX_PER_SERVER (20); a = GTK_ADJUSTMENT (gtk_adjustment_new (1.0, 0.0, DEFAULT_MAX_PER_SERVER, 1.0, 1.0, 0.0)); d->connection_limit_spin = w = gtk_spin_button_new (GTK_ADJUSTMENT(a), 1.0, 0u); HIG::workarea_add_row (t, &row, _("Connection _Limit:"), w, nullptr); // expiration struct { int type; const char * str; } items[] = { { 14, N_("After Two Weeks") }, { 31, N_("After One Month") }, { (31*2), N_("After Two Months") }, { (31*3), N_("After Three Months") }, { (31*6), N_("After Six Months") }, { 0, N_("Never Expire Old Articles") } }; GtkListStore * store = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_INT); for (unsigned int i(0); iexpiration_age_combo = w = gtk_combo_box_new_with_model (GTK_TREE_MODEL(store)); g_object_unref (G_OBJECT(store)); GtkCellRenderer * renderer (gtk_cell_renderer_text_new ()); gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (w), renderer, TRUE); gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (w), renderer, "text", 0, nullptr); gtk_combo_box_set_active (GTK_COMBO_BOX(w), 0); HIG::workarea_add_row (t, &row, _("E_xpire Old Articles:"), w, nullptr); //rank struct { int rank; const char * str; } rank_items[] = { { 1, N_("Primary") }, { 2, N_("Fallback") } }; store = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_INT); for (unsigned int i(0); irank_combo = w = gtk_combo_box_new_with_model (GTK_TREE_MODEL(store)); g_object_unref (G_OBJECT(store)); gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (w), renderer, true); gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (w), renderer, "text", 0, nullptr); gtk_combo_box_set_active (GTK_COMBO_BOX(w), 0); GtkWidget * l = gtk_label_new (_("Server Rank:")); GtkWidget * e = gtk_event_box_new (); gtk_container_add (GTK_CONTAINER(e), l); gtk_label_set_xalign (GTK_LABEL(l), 0.0f); gtk_label_set_yalign (GTK_LABEL(l), 0.5f); gtk_widget_set_tooltip_text( e, _("Fallback servers are used for articles that can't be found on the primaries. One common approach is to use free servers as primaries and subscription servers as fallbacks.")); HIG::workarea_add_row (t, &row, e, w); // header compression list options struct { int type; const char * str; } compression_items[] = { { HEADER_COMPRESS_NONE, N_("Disable Compression (N/A)") }, { HEADER_COMPRESS_XZVER, N_("XZVER Compression (Astraweb)") }, { HEADER_COMPRESS_XFEATURE, N_("GZIP Compression (Giganews etc.)") } }; store = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_INT); for (unsigned int i(0); icompression_combo = w = gtk_combo_box_new_with_model (GTK_TREE_MODEL(store)); g_object_unref (G_OBJECT(store)); renderer = gtk_cell_renderer_text_new (); gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (w), renderer, TRUE); gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (w), renderer, "text", 0, nullptr); gtk_combo_box_set_active (GTK_COMBO_BOX(w), 0); HIG::workarea_add_row (t, &row, _("Header Compression:"), w, nullptr); // ssl 3.0 option #ifdef HAVE_GNUTLS // select ssl/plaintext HIG::workarea_add_section_divider (t, &row); HIG::workarea_add_section_title (t, &row, _("Security")); HIG::workarea_add_section_spacer (t, row, 2); struct { int o; const char * str; } ssl_items[] = { { 0, N_("Use Unsecure (Plaintext) Connections") }, { 1, N_("Use Secure SSL Connections") } }; store = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_INT); for (unsigned int i(0); issl_combo = w = gtk_combo_box_new_with_model (GTK_TREE_MODEL(store)); g_object_unref (G_OBJECT(store)); gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (w), renderer, true); gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (w), renderer, "text", 0, nullptr); gtk_combo_box_set_active (GTK_COMBO_BOX(w), 0); l = gtk_label_new (_("TLS (SSL) Settings:")); e = gtk_event_box_new (); gtk_container_add (GTK_CONTAINER(e), l); gtk_label_set_xalign (GTK_LABEL(l), 0.0f); gtk_label_set_yalign (GTK_LABEL(l), 0.5f); gtk_widget_set_tooltip_text( e, _("You can enable/disable secure SSL/TLS connections here. " "If you enable SSL/TLS, your data is encrypted and secure. " "It is encouraged to enable SSL/TLS for privacy reasons.")); HIG::workarea_add_row (t, &row, e, w); d->always_trust_checkbox = w = gtk_check_button_new_with_label (_("Always trust this server's certificate")); HIG::workarea_add_row (t, &row, nullptr, w, nullptr); g_signal_connect (d->dialog, "realize", G_CALLBACK(server_edit_dialog_realized_cb), d); #endif d->server = server; edit_dialog_populate (data, prefs, server, d); gtk_widget_show_all (d->dialog); return d->dialog; } namespace { enum { ICON_PLAIN, ICON_CERT, ICON_QTY }; struct Icon { const char * pixbuf_file; GdkPixbuf * pixbuf; } _icons[ICON_QTY] = { { "icon_plain.png", nullptr }, { "icon_cert.png", nullptr } }; } /************ ************* LIST DIALOG ************/ namespace { enum { COL_FLAG, COL_HOST, COL_DATA, N_COLUMNS }; struct ServerListDialog { Data& data; Queue& queue; Prefs& prefs; GtkWidget * server_tree_view; GtkWidget * dialog; GtkListStore * servers_store; GtkWidget * remove_button; GtkWidget * edit_button; ServerListDialog (Data& d, Queue& q, Prefs& p): data(d), queue(q), prefs(p), server_tree_view(nullptr), dialog(nullptr), servers_store(nullptr), remove_button(nullptr), edit_button(nullptr) {} }; Quark get_selected_server (ServerListDialog * d) { g_assert (d != nullptr); Quark server; GtkTreeSelection * selection (gtk_tree_view_get_selection(GTK_TREE_VIEW (d->server_tree_view))); GtkTreeModel * model; GtkTreeIter iter; if (gtk_tree_selection_get_selected (selection, &model, &iter)) { char * host (nullptr); gtk_tree_model_get (model, &iter, COL_DATA, &host, -1); if (host) { server = host; g_free (host); } } //std::cerr << LINE_ID << " selected server is " << server << std::endl; return server; } Quark get_selected_server_name (ServerListDialog * d) { g_assert (d != nullptr); Quark server; GtkTreeSelection * selection (gtk_tree_view_get_selection(GTK_TREE_VIEW (d->server_tree_view))); GtkTreeModel * model; GtkTreeIter iter; if (gtk_tree_selection_get_selected (selection, &model, &iter)) { char * host (nullptr); gtk_tree_model_get (model, &iter, COL_HOST, &host, -1); if (host) { server = host; g_free (host); } } //std::cerr << LINE_ID << " selected server is " << server << std::endl; return server; } void button_refresh (ServerListDialog * d) { const bool have_sel (!get_selected_server(d).empty()); gtk_widget_set_sensitive (d->edit_button, have_sel); gtk_widget_set_sensitive (d->remove_button, have_sel); } void server_tree_view_refresh (ServerListDialog * d) { GtkTreeSelection * selection (gtk_tree_view_get_selection(GTK_TREE_VIEW (d->server_tree_view))); const quarks_t servers (d->data.get_servers ()); const Quark selected_server (get_selected_server (d)); bool found_selected (false); GtkTreeIter selected_iter; gtk_list_store_clear (d->servers_store); foreach_const (quarks_t, servers, it) { const Quark& server (*it); std::string addr(d->data.get_server_address (*it)); GtkTreeIter iter; gtk_list_store_append (d->servers_store, &iter); gtk_list_store_set (d->servers_store, &iter, COL_HOST, addr.c_str(), COL_DATA, server.c_str(), -1); if ((found_selected = (server == selected_server))) selected_iter = iter; } if (found_selected) gtk_tree_selection_select_iter (selection, &selected_iter); } void delete_server_list_dialog (gpointer p) { delete (ServerListDialog*)p; } void delete_sec_dialog (gpointer p) { for (guint i=0; i(data)); Quark selected_server (get_selected_server (d)); if (!selected_server.empty()) { int port; std::string addr; d->data.get_server_addr (selected_server, addr, port); GtkWidget * w = gtk_message_dialog_new (GTK_WINDOW(gtk_widget_get_toplevel(GTK_WIDGET(button))), GtkDialogFlags(GTK_DIALOG_MODAL|GTK_DIALOG_DESTROY_WITH_PARENT), GTK_MESSAGE_QUESTION, GTK_BUTTONS_NONE, _("Really delete \"%s\"?"), addr.c_str()); gtk_dialog_add_buttons (GTK_DIALOG(w), GTK_STOCK_NO, GTK_RESPONSE_NO, GTK_STOCK_DELETE, GTK_RESPONSE_YES, nullptr); gtk_dialog_set_default_response (GTK_DIALOG(w), GTK_RESPONSE_NO); const int response (gtk_dialog_run (GTK_DIALOG (w))); gtk_widget_destroy (w); if (response == GTK_RESPONSE_YES) d->data.delete_server (selected_server); server_tree_view_refresh (d); button_refresh (d); } } void server_edit_dialog_destroy_cb (GtkWidget *, gpointer user_data) { if (GTK_IS_WIDGET (user_data)) { ServerListDialog * d = (ServerListDialog*) g_object_get_data (G_OBJECT(user_data), "dialog"); server_tree_view_refresh (d); } } void add_button_clicked_cb (GtkButton *, gpointer user_data) { const Quark empty_quark; GtkWidget * list_dialog = GTK_WIDGET (user_data); ServerListDialog * d = (ServerListDialog*) g_object_get_data (G_OBJECT(list_dialog), "dialog"); GtkWidget * edit_dialog = server_edit_dialog_new (d->data, d->queue, d->prefs, GTK_WINDOW(list_dialog), empty_quark); g_signal_connect (edit_dialog, "destroy", G_CALLBACK(server_edit_dialog_destroy_cb), list_dialog); gtk_widget_show_all (edit_dialog); } void edit_button_clicked_cb (GtkButton *, gpointer user_data) { GtkWidget * list_dialog = GTK_WIDGET (user_data); ServerListDialog * d = (ServerListDialog*) g_object_get_data (G_OBJECT(list_dialog), "dialog"); Quark selected_server (get_selected_server (d)); if (!selected_server.empty()) { GtkWidget * edit_dialog = server_edit_dialog_new (d->data, d->queue, d->prefs, GTK_WINDOW(list_dialog), selected_server); g_signal_connect (edit_dialog, "destroy", G_CALLBACK(server_edit_dialog_destroy_cb), list_dialog); gtk_widget_show_all (edit_dialog); } } void server_tree_view_row_activated_cb (GtkTreeView*, GtkTreePath*, GtkTreeViewColumn*, gpointer user_data) { edit_button_clicked_cb (nullptr, user_data); } void server_tree_view_selection_changed_cb (GtkTreeSelection*, gpointer user_data) { button_refresh ((ServerListDialog*)user_data); } } #ifdef HAVE_GNUTLS /* security dialog */ namespace { /* Show the current certificate of the selected server, if any */ void cert_edit_button_clicked_cb (GtkButton *, gpointer user_data) { GtkWidget * list_dialog = GTK_WIDGET (user_data); ServerListDialog * d = (ServerListDialog*) g_object_get_data (G_OBJECT(list_dialog), "dialog"); Quark selected_server (get_selected_server (d)); CertStore& store (d->data.get_certstore()); int port; std::string addr; d->data.get_server_addr (selected_server, addr, port); char buf[4096] ; if (!selected_server.empty()) { const gnutls_x509_crt_t cert (store.get_cert_to_server(selected_server)); if (cert) { pretty_print_x509(buf,sizeof(buf),addr, cert, false); if (!buf) g_snprintf(buf,sizeof(buf), "%s", _("No information available.")) ; GtkWidget * w = gtk_message_dialog_new ( nullptr, GtkDialogFlags(GTK_DIALOG_MODAL|GTK_DIALOG_DESTROY_WITH_PARENT), GTK_MESSAGE_INFO, GTK_BUTTONS_CLOSE, nullptr); HIG :: message_dialog_set_text (GTK_MESSAGE_DIALOG(w), buf, nullptr); g_snprintf(buf,sizeof(buf), _("Server Certificate for '%s'"), addr.c_str()); gtk_window_set_title(GTK_WINDOW(w), buf); gtk_widget_show_all (w); g_signal_connect_swapped (w, "response", G_CALLBACK (gtk_widget_destroy), w); } } } void sec_tree_view_refresh (ServerListDialog * d) { GtkTreeSelection * selection (gtk_tree_view_get_selection(GTK_TREE_VIEW (d->server_tree_view))); const quarks_t servers (d->data.get_servers ()); const Quark selected_server (get_selected_server (d)); CertStore& store (d->data.get_certstore()); bool found_selected (false); GtkTreeIter selected_iter; gtk_list_store_clear (d->servers_store); foreach_const (quarks_t, servers, it) { const Quark& server (*it); std::string addr; int port; d->data.get_server_addr (server, addr, port); if(d->data.get_server_ssl_support(server)) { GtkTreeIter iter; gtk_list_store_append (d->servers_store, &iter); gtk_list_store_set (d->servers_store, &iter, COL_FLAG, store.exist(server), COL_HOST, addr.c_str(), COL_DATA, server.c_str(), -1); if ((found_selected = (server == selected_server))) selected_iter = iter; } } if (found_selected) gtk_tree_selection_select_iter (selection, &selected_iter); } void sec_dialog_destroy_cb (GtkWidget *, gpointer user_data) { if (GTK_IS_WIDGET (user_data)) { ServerListDialog * d = (ServerListDialog*) g_object_get_data (G_OBJECT(user_data), "dialog"); sec_tree_view_refresh (d); } } /* add a cert from disk, overwriting the current setting for the selected server */ void cert_add_button_clicked_cb (GtkButton *, gpointer user_data) { const Quark empty_quark; GtkWidget * list_dialog = GTK_WIDGET (user_data); ServerListDialog * d = (ServerListDialog*) g_object_get_data (G_OBJECT(list_dialog), "dialog"); std::string ret = import_sec_from_disk_dialog_new (d->data, d->queue, GTK_WINDOW(list_dialog)); const Quark selected_server (get_selected_server (d)); CertStore& store (d->data.get_certstore()); if (!ret.empty() ) { std::string addr; int port; d->data.get_server_addr(selected_server, addr, port); if (!store.import_from_file(selected_server, ret.c_str())) { _err: Log::add_err_va("Error adding certificate of server '%s' to CertStore. Check the console output!", addr.c_str()); file::print_file_info(std::cerr,ret.c_str()); } sec_tree_view_refresh (d); } } /* remove cert from certstore */ void cert_remove_button_clicked_cb (GtkButton * button, gpointer data) { ServerListDialog * d (static_cast(data)); Quark selected_server (get_selected_server (d)); CertStore& store (d->data.get_certstore()); if (!selected_server.empty()) { int port; std::string addr; d->data.get_server_addr (selected_server, addr, port); GtkWidget * w = gtk_message_dialog_new (GTK_WINDOW(gtk_widget_get_toplevel(GTK_WIDGET(button))), GtkDialogFlags(GTK_DIALOG_MODAL|GTK_DIALOG_DESTROY_WITH_PARENT), GTK_MESSAGE_QUESTION, GTK_BUTTONS_NONE, _("Really delete certificate for \"%s\"?"), addr.c_str()); gtk_dialog_add_buttons (GTK_DIALOG(w), GTK_STOCK_NO, GTK_RESPONSE_NO, GTK_STOCK_DELETE, GTK_RESPONSE_YES, nullptr); gtk_dialog_set_default_response (GTK_DIALOG(w), GTK_RESPONSE_NO); const int response (gtk_dialog_run (GTK_DIALOG (w))); gtk_widget_destroy (w); store.remove(selected_server); if (response == GTK_RESPONSE_YES) sec_tree_view_refresh (d); button_refresh (d); } } } #endif GtkWidget* server_list_dialog_new (Data& data, Queue& queue, Prefs& prefs, GtkWindow* parent) { ServerListDialog * d = new ServerListDialog (data, queue, prefs); // dialog char * title = g_strdup_printf ("Pan: %s", _("Servers")); GtkWidget * w = d->dialog = gtk_dialog_new_with_buttons (title, parent, GTK_DIALOG_DESTROY_WITH_PARENT, GTK_STOCK_CLOSE, GTK_RESPONSE_OK, nullptr); g_free (title); gtk_window_set_role (GTK_WINDOW(w), "pan-servers-dialog"); gtk_window_set_resizable (GTK_WINDOW(w), TRUE); g_signal_connect (w, "response", G_CALLBACK(server_list_dialog_response_cb), d); g_object_set_data_full (G_OBJECT(w), "dialog", d, delete_server_list_dialog); // workarea GtkWidget * hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, PAD); gtk_container_set_border_width (GTK_CONTAINER(hbox), 12); gtk_box_pack_start (GTK_BOX( gtk_dialog_get_content_area( GTK_DIALOG(w))), hbox, TRUE, TRUE, 0); // create the list d->servers_store = gtk_list_store_new (N_COLUMNS, G_TYPE_BOOLEAN, G_TYPE_STRING, G_TYPE_STRING); w = d->server_tree_view = gtk_tree_view_new_with_model (GTK_TREE_MODEL (d->servers_store)); GtkCellRenderer * renderer = gtk_cell_renderer_text_new (); GtkTreeViewColumn * column = gtk_tree_view_column_new_with_attributes (_("Servers"), renderer, "text", COL_HOST, nullptr); gtk_tree_view_column_set_sort_column_id (column, COL_HOST); gtk_tree_view_append_column (GTK_TREE_VIEW (d->server_tree_view), column); GtkTreeSelection * selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (d->server_tree_view)); gtk_tree_selection_set_mode (selection, GTK_SELECTION_SINGLE); // add callbacks g_signal_connect (GTK_TREE_VIEW (d->server_tree_view), "row-activated", G_CALLBACK (server_tree_view_row_activated_cb), d->dialog); g_signal_connect (G_OBJECT (selection), "changed", G_CALLBACK (server_tree_view_selection_changed_cb), d); w = gtk_scrolled_window_new (nullptr, nullptr); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW(w), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW(w), GTK_SHADOW_IN); gtk_container_add (GTK_CONTAINER(w), d->server_tree_view); gtk_box_pack_start (GTK_BOX (hbox), w, TRUE, TRUE, 0); gtk_widget_set_size_request (w, 300, 300); // button box GtkWidget * bbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, PAD_SMALL); gtk_box_pack_start (GTK_BOX (hbox), bbox, FALSE, FALSE, 0); // add button w = gtk_button_new_from_stock (GTK_STOCK_ADD); gtk_box_pack_start (GTK_BOX (bbox), w, FALSE, FALSE, 0); gtk_widget_set_tooltip_text(w, _("Add a Server")); g_signal_connect (w, "clicked", G_CALLBACK(add_button_clicked_cb), d->dialog); // edit button w = gtk_button_new_from_stock (GTK_STOCK_EDIT); gtk_box_pack_start (GTK_BOX (bbox), w, FALSE, FALSE, 0); gtk_widget_set_tooltip_text(w, _("Edit a Server's Settings")); g_signal_connect (w, "clicked", G_CALLBACK(edit_button_clicked_cb), d->dialog); d->edit_button = w; // remove button w = gtk_button_new_from_stock (GTK_STOCK_REMOVE); gtk_box_pack_start (GTK_BOX (bbox), w, FALSE, FALSE, 0); gtk_widget_set_tooltip_text(w, _("Remove a Server")); g_signal_connect (w, "clicked", G_CALLBACK(remove_button_clicked_cb), d); d->remove_button = w; server_tree_view_refresh (d); button_refresh (d); return d->dialog; } void render_cert_flag (GtkTreeViewColumn * , GtkCellRenderer * renderer, GtkTreeModel * model, GtkTreeIter * iter, gpointer ) { int index (0); gtk_tree_model_get (model, iter, COL_FLAG, &index, -1); g_object_set (renderer, "pixbuf", _icons[index].pixbuf, nullptr); } GtkWidget* sec_dialog_new (Data& data, Queue& queue, Prefs& prefs, GtkWindow* parent) { #ifdef HAVE_GNUTLS ServerListDialog * d = new ServerListDialog (data, queue, prefs); for (guint i=0; idialog = gtk_dialog_new_with_buttons (title, parent, GTK_DIALOG_DESTROY_WITH_PARENT, GTK_STOCK_CLOSE, GTK_RESPONSE_OK, nullptr); g_free (title); gtk_window_set_role (GTK_WINDOW(w), "pan-sec-dialog"); gtk_window_set_resizable (GTK_WINDOW(w), TRUE); g_signal_connect (w, "response", G_CALLBACK(server_list_dialog_response_cb), d); g_object_set_data_full (G_OBJECT(w), "dialog", d, delete_sec_dialog); // workarea GtkWidget * hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, PAD); gtk_container_set_border_width (GTK_CONTAINER(hbox), 12); gtk_box_pack_start (GTK_BOX( gtk_dialog_get_content_area( GTK_DIALOG(w))), hbox, TRUE, TRUE, 0); // create the list d->servers_store = gtk_list_store_new (N_COLUMNS, G_TYPE_BOOLEAN, G_TYPE_STRING, G_TYPE_STRING); w = d->server_tree_view = gtk_tree_view_new_with_model (GTK_TREE_MODEL (d->servers_store)); GtkCellRenderer * r = GTK_CELL_RENDERER (g_object_new (GTK_TYPE_CELL_RENDERER_PIXBUF, "xpad", 2,"ypad", 0,nullptr)); GtkTreeViewColumn * column = gtk_tree_view_column_new_with_attributes (_("Certificates"), r, nullptr); gtk_tree_view_column_set_cell_data_func (column, r, render_cert_flag, nullptr, nullptr); gtk_tree_view_append_column (GTK_TREE_VIEW(w), column); r = gtk_cell_renderer_text_new (); column = gtk_tree_view_column_new_with_attributes (_("Servers"), r, "text", COL_HOST, nullptr); gtk_tree_view_column_set_sort_column_id (column, COL_HOST); gtk_tree_view_append_column (GTK_TREE_VIEW (w), column); GtkTreeSelection * selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (w)); gtk_tree_selection_set_mode (selection, GTK_SELECTION_SINGLE); // add callbacks g_signal_connect (GTK_TREE_VIEW (w), "row-activated", G_CALLBACK (server_tree_view_row_activated_cb), d->dialog); g_signal_connect (G_OBJECT (selection), "changed", G_CALLBACK (server_tree_view_selection_changed_cb), d); w = gtk_scrolled_window_new (nullptr, nullptr); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW(w), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW(w), GTK_SHADOW_IN); gtk_container_add (GTK_CONTAINER(w), d->server_tree_view); gtk_box_pack_start (GTK_BOX (hbox), w, TRUE, TRUE, 0); gtk_widget_set_size_request (w, 300, 300); // button box GtkWidget * bbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, PAD_SMALL); gtk_box_pack_start (GTK_BOX (hbox), bbox, FALSE, FALSE, 0); // add button w = gtk_button_new_from_stock (GTK_STOCK_ADD); gtk_box_pack_start (GTK_BOX (bbox), w, FALSE, FALSE, 0); gtk_widget_set_tooltip_text(w, _("Import Certificate")); g_signal_connect (w, "clicked", G_CALLBACK(cert_add_button_clicked_cb), d->dialog); // inspect button w = gtk_button_new_from_stock (GTK_STOCK_FIND); gtk_box_pack_start (GTK_BOX (bbox), w, FALSE, FALSE, 0); gtk_widget_set_tooltip_text(w, _("Inspect Certificate")); g_signal_connect (w, "clicked", G_CALLBACK(cert_edit_button_clicked_cb), d->dialog); d->edit_button = w; // remove button w = gtk_button_new_from_stock (GTK_STOCK_REMOVE); gtk_box_pack_start (GTK_BOX (bbox), w, FALSE, FALSE, 0); gtk_widget_set_tooltip_text(w, _("Remove Certificate")); g_signal_connect (w, "clicked", G_CALLBACK(cert_remove_button_clicked_cb), d); d->remove_button = w; sec_tree_view_refresh (d); button_refresh (d); return d->dialog; #else return 0; #endif } } pan-0.162/pan/gui/server-ui.h000066400000000000000000000032541475412772400157550ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #ifndef SERVER_UI_H #define SERVER_UI_H #include #include #include #include #include namespace pan { typedef std::set strings_t; /** @ingroup GUI */ GtkWidget* server_edit_dialog_new (Data&, Queue&, Prefs&, GtkWindow*, const Quark& server); /** @ingroup GUI */ GtkWidget* server_list_dialog_new (Data&, Queue&, Prefs&, GtkWindow*); /** @ingroup GUI */ GtkWidget* sec_dialog_new (Data& data, Queue& queue, Prefs&, GtkWindow* parent); /** @ingroup GUI */ std::string import_sec_from_disk_dialog_new (Data& data, Queue& queue, GtkWindow * window); /** @ingroup GUI */ void render_cert_flag (GtkTreeViewColumn * , GtkCellRenderer * , GtkTreeModel * , GtkTreeIter * , gpointer ); } #endif pan-0.162/pan/gui/startup-sysprof.sh000077500000000000000000000001731475412772400174240ustar00rootroot00000000000000#!/bin/bash COUNTER=0 while [ $COUNTER -lt 30 ]; do echo The counter is $COUNTER let COUNTER=COUNTER+1 ./pan done pan-0.162/pan/gui/tango-colors.h000066400000000000000000000024071475412772400164420ustar00rootroot00000000000000#ifndef TANGO_COLORS_H #define TANGO_COLORS_H /* http://tango.freedesktop.org/Tango_Icon_Theme_Guidelines */ #define TANGO_BUTTER_LIGHT "#fce94f" #define TANGO_BUTTER "#edd400" #define TANGO_BUTTER_DARK "#c4a000" #define TANGO_ORANGE_LIGHT "#fcaf3e" #define TANGO_ORANGE "#f57900" #define TANGO_ORANGE_DARK "#ce5c00" #define TANGO_CHOCOLATE_LIGHT "#e9b96e" #define TANGO_CHOCOLATE "#c17d11" #define TANGO_CHOCOLATE_DARK "#8f5902" #define TANGO_CHAMELEON_LIGHT "#8ae234" #define TANGO_CHAMELEON "#73d216" #define TANGO_CHAMELEON_DARK "#4e9a06" #define TANGO_SKY_BLUE_LIGHT "#728fcf" #define TANGO_SKY_BLUE "#3465a4" #define TANGO_SKY_BLUE_DARK "#204a87" #define TANGO_PLUM_LIGHT "#ad7fa8" #define TANGO_PLUM "#75507b" #define TANGO_PLUM_DARK "#5c3566" #define TANGO_SCARLET_RED_LIGHT "#ef2929" #define TANGO_SCARLET_RED "#cc0000" #define TANGO_SCARLET_RED_DARK "#a40000" #define TANGO_ALUMINUM_1 "#eeeeec" #define TANGO_ALUMINUM_2 "#d3d7cf" #define TANGO_ALUMINUM_3 "#babdb6" #define TANGO_ALUMINUM_4 "#888a85" #define TANGO_ALUMINUM_5 "#555753" #define TANGO_ALUMINUM_6 "#2e3436" #endif pan-0.162/pan/gui/task-pane.cc000066400000000000000000001105121475412772400160510ustar00rootroot00000000000000//* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #include #include #include #include #include #include #include #include #include #include #include #include #include "pad.h" #include "render-bytes.h" #include "task-pane.h" #include "taskpane.ui.h" extern "C" { #include } enum { COL_TASK_POINTER, COL_TASK_STATE, NUM_COLS }; /** *** Internal Utility **/ void TaskPane :: get_selected_tasks_foreach (GtkTreeModel *model, GtkTreePath *, GtkTreeIter *iter, gpointer list_g) { Task * task (nullptr); gtk_tree_model_get (model, iter, COL_TASK_POINTER, &task, -1); static_cast(list_g)->push_back (task); } tasks_t TaskPane :: get_selected_tasks () const { tasks_t tasks; GtkTreeView * view (GTK_TREE_VIEW (_view)); GtkTreeSelection * sel (gtk_tree_view_get_selection (view)); gtk_tree_selection_selected_foreach (sel, get_selected_tasks_foreach, &tasks); return tasks; } /** *** User Interactions **/ namespace { int find_task_index (GtkListStore * list, Task * task) { GtkTreeIter iter; int index (0); if (gtk_tree_model_get_iter_first (GTK_TREE_MODEL(list), &iter)) do { Task * test; gtk_tree_model_get (GTK_TREE_MODEL(list), &iter, COL_TASK_POINTER, &test, -1); if (test == task) return index; ++index; } while (gtk_tree_model_iter_next (GTK_TREE_MODEL(list), &iter)); // not found return -1; } } namespace { std::string escaped (const std::string& s) { char * pch = g_markup_escape_text (s.c_str(), s.size()); const std::string ret (pch); g_free (pch); return ret; } } namespace { bool fill_task_info (Task* task, char* buffer, size_t size) { EvolutionDateMaker date_maker; char * date(nullptr); TaskUpload * tu (dynamic_cast(task)); if (tu) { const Article& a(tu->get_article()); date = date_maker.get_date_string (tu->get_article().time_posted); g_snprintf(buffer,size, _("\nUpload\n\nSubject: \"%s\"\nFrom: %s\n" "Groups: %s\nSourcefile: %s\n"), escaped(a.subject.to_string()).c_str(), escaped(a.author.to_string()).c_str(), tu->get_groups().c_str(), tu->get_filename().c_str()); } TaskArticle * ta (dynamic_cast(task)); if (ta) { const Article& a(ta->get_article()); date = date_maker.get_date_string (ta->get_article().time_posted); g_snprintf(buffer, size, _("\nDownload\n\nSubject: \"%s\"\nFrom: %s\nDate: %s\n" "Groups: %s\nSave Path: %s\n"), escaped(a.subject.to_string()).c_str(), escaped(a.author.to_string()).c_str(), date ? date : _("unknown"), ta->get_groups().c_str(), ta->get_save_path().to_string().c_str()); } g_free (date); return tu || ta; } } void TaskPane :: show_task_info(const tasks_t& tasks) { if (tasks.size() == 0) return; Task* task (tasks.front()); if (!task) return; char buffer[4096]; const bool task_found (fill_task_info (task, buffer, sizeof(buffer))); GtkWidget * w = gtk_message_dialog_new_with_markup ( GTK_WINDOW (gtk_widget_get_toplevel (_root)), GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_INFO, GTK_BUTTONS_CLOSE, buffer, nullptr); g_signal_connect_swapped (w, "response", G_CALLBACK (gtk_widget_destroy), w); gtk_widget_show_all (w); } gboolean TaskPane:: on_tooltip_query(GtkWidget *widget, gint x, gint y, gboolean keyboard_tip, GtkTooltip *tooltip, gpointer data) { TaskPane* tp(static_cast(data)); if (!tp->_prefs.get_flag("show-taskpane-popups", true)) return false; gtk_tooltip_set_icon_from_icon_name (tooltip, "dialog-information", GTK_ICON_SIZE_DIALOG); GtkTreeIter iter; GtkTreeView *tree_view = GTK_TREE_VIEW (widget); GtkTreeModel *model = gtk_tree_view_get_model (tree_view); GtkTreePath *path(nullptr); if (!gtk_tree_view_get_tooltip_context (tree_view, &x, &y, keyboard_tip, &model, &path, &iter)) return false; Task * task(nullptr); gtk_tree_model_get (model, &iter, COL_TASK_POINTER, &task, -1); char buffer[4096]; g_snprintf(buffer,sizeof(buffer),"..."); const bool task_found (fill_task_info (task, buffer, sizeof(buffer))); if (task_found) { gtk_tooltip_set_markup (tooltip, buffer); gtk_tree_view_set_tooltip_row (tree_view, tooltip, path); } gtk_tree_path_free (path); return true; } void TaskPane:: do_popup_menu (GtkWidget *treeview, GdkEventButton *event, gpointer userdata) { TaskPane * self (static_cast(userdata)); GtkWidget * menu (gtk_ui_manager_get_widget (self->_uim, "/taskpane-popup")); gtk_menu_popup (GTK_MENU(menu), nullptr, nullptr, nullptr, nullptr, (event ? event->button : 0), (event ? event->time : 0)); } gboolean TaskPane :: on_button_pressed (GtkWidget *treeview, GdkEventButton *event, gpointer userdata) { if (event->type == GDK_BUTTON_PRESS ) { GtkTreeSelection *selection; selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview)); if ( event->button == 3) { if (gtk_tree_selection_count_selected_rows(selection) <= 1) { GtkTreePath *path; /* Get tree path for row that was clicked */ if (gtk_tree_view_get_path_at_pos(GTK_TREE_VIEW(treeview), (gint) event->x, (gint) event->y, &path, nullptr, nullptr, nullptr)) { gtk_tree_selection_unselect_all(selection); gtk_tree_selection_select_path(selection, path); gtk_tree_path_free(path); } } do_popup_menu(treeview, event, userdata); return true; } } return false; } void TaskPane :: online_toggled_cb (GtkToggleButton* b, Queue *queue) { queue->set_online (gtk_toggle_button_get_active (b)); } void TaskPane :: popup_toggled_cb (GtkToggleButton* b, TaskPane* pane) { pane->_prefs.set_flag("show-taskpane-popups", gtk_toggle_button_get_active(b)); } void TaskPane :: up_clicked_cb (GtkButton*, TaskPane* pane) { pane->_queue.move_up (pane->get_selected_tasks()); } void TaskPane :: down_clicked_cb (GtkButton*, TaskPane* pane) { pane->_queue.move_down (pane->get_selected_tasks()); } void TaskPane :: top_clicked_cb (GtkButton*, TaskPane* pane) { pane->_queue.move_top (pane->get_selected_tasks()); } void TaskPane :: bottom_clicked_cb (GtkButton*, TaskPane* pane) { pane->_queue.move_bottom (pane->get_selected_tasks()); } void TaskPane :: show_info_clicked_cb (GtkButton*, TaskPane* pane) { pane->show_task_info (pane->get_selected_tasks()); } void TaskPane :: stop_clicked_cb (GtkButton*, TaskPane* pane) { pane->_queue.stop_tasks (pane->get_selected_tasks()); } void TaskPane :: delete_clicked_cb (GtkButton*, TaskPane* pane) { pane->_queue.remove_tasks (pane->get_selected_tasks()); } void TaskPane :: restart_clicked_cb (GtkButton*, TaskPane* pane) { pane->_queue.restart_tasks (pane->get_selected_tasks()); } std::string TaskPane :: prompt_user_for_new_dest (GtkWindow * parent, const Quark& current_path) { char buf[4096]; struct stat sb; std::string path; std::string prev_path(current_path.c_str()); if (!file :: file_exists (prev_path.c_str())) prev_path = g_get_home_dir (); GtkWidget * w = gtk_file_chooser_dialog_new (_("Choose New Destination for Selected Tasks"), GTK_WINDOW(parent), GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER, _("Cancel"), GTK_RESPONSE_CANCEL, _("Save"), GTK_RESPONSE_ACCEPT, nullptr); gtk_dialog_set_default_response (GTK_DIALOG(w), GTK_RESPONSE_ACCEPT); gtk_file_chooser_set_do_overwrite_confirmation (GTK_FILE_CHOOSER (w), TRUE); gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (w), prev_path.c_str()); if (GTK_RESPONSE_ACCEPT == gtk_dialog_run(GTK_DIALOG(w))) { char * tmp = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (w)); path = tmp; g_free (tmp); } else path.clear(); gtk_widget_destroy (w); return path; } void TaskPane :: change_destination (const tasks_t& tasks) { if (tasks.empty()) return; TaskArticle * t (dynamic_cast(tasks[0])); if (t) { std::string new_path(prompt_user_for_new_dest(GTK_WINDOW(_root),t->get_save_path())); if (new_path.empty()) return; // user cancelled/aborted foreach_const (tasks_t, tasks, it) { TaskArticle * task (dynamic_cast(*it)); if (task) task->set_save_path(Quark(new_path)); } } } void TaskPane :: change_dest_clicked_cb (GtkButton*, TaskPane* pane) { pane->change_destination (pane->get_selected_tasks()); } /** *** Display **/ namespace { typedef Queue::task_states_t task_states_t; } /*** **** Queue Listener ***/ void TaskPane :: on_queue_tasks_added (Queue& queue, int index, int count) { task_states_t states; queue.get_all_task_states (states); GtkTreeModel* model = gtk_tree_view_get_model(GTK_TREE_VIEW(_store)); g_object_ref(model); gtk_tree_view_set_model(GTK_TREE_VIEW(_store), nullptr); for (int i=0; i v (count); for (int i=0; iget_bytes_remaining (); } // titlebar char buf[1024]; if (stopped_count) g_snprintf (buf, sizeof(buf), _("Pan: Tasks (%d Queued, %d Running, %d Stopped)"), queued_count, running_count, stopped_count); else if (running_count || queued_count) g_snprintf (buf, sizeof(buf), _("Pan: Tasks (%d Queued, %d Running)"), queued_count, running_count); else g_snprintf (buf, sizeof(buf), _("Pan: Tasks")); gtk_window_set_title (GTK_WINDOW(_root), buf); // status label const unsigned long task_count (running_count + queued_count); double KiBps (_queue.get_speed_KiBps ()); int hours(0), minutes(0), seconds(0); if (task_count) { const double KiB ((double)bytes / 1024); unsigned long tmp (KiBps>0.01 ? ((unsigned long)(KiB / KiBps)) : 0); seconds = tmp % 60ul; tmp /= 60ul; minutes = tmp % 60ul; tmp /= 60ul; hours = tmp; } g_snprintf (buf, sizeof(buf), _("%lu tasks, %s, %.1f KiBps, ETA %d:%02d:%02d"), task_count, render_bytes(bytes), KiBps, hours, minutes, seconds); std::string line (buf); const tasks_t tasks_selected (get_selected_tasks ()); const unsigned long selected_count (tasks_selected.size()); if (selected_count) { guint64 selected_bytes (0ul); foreach_const (tasks_t, tasks_selected, it) if (*it) selected_bytes += (*it)->get_bytes_remaining (); g_snprintf (buf, sizeof(buf), _("%lu selected, %s"), selected_count, render_bytes(selected_bytes)); line += '\n'; line += buf; } gtk_label_set_text (GTK_LABEL(_status_label), line.c_str()); } gboolean TaskPane :: periodic_refresh_foreach (GtkTreeModel * model, GtkTreePath * , GtkTreeIter * iter, gpointer states_gpointer) { Task * task; int old_state; gtk_tree_model_get (model, iter, COL_TASK_POINTER, &task, COL_TASK_STATE, &old_state, -1); const task_states_t * states (static_cast(states_gpointer)); const int new_state (states->get_state (task)); if (new_state != old_state) gtk_list_store_set (GTK_LIST_STORE(model), iter, COL_TASK_POINTER, task, COL_TASK_STATE, new_state, -1); return false; // keep iterating } gboolean TaskPane :: periodic_refresh (gpointer pane_gpointer) { TaskPane * pane (static_cast(pane_gpointer)); task_states_t tasks; pane->_queue.get_all_task_states (tasks); gtk_tree_model_foreach (GTK_TREE_MODEL(pane->_store), periodic_refresh_foreach, &tasks); pane->update_status (tasks); gtk_widget_queue_draw (pane->_view); return true; } namespace { void render_state (GtkTreeViewColumn *, GtkCellRenderer *rend, GtkTreeModel *model, GtkTreeIter *iter, Queue * queue) { Task * task (nullptr); int state; gtk_tree_model_get (model, iter, COL_TASK_POINTER, &task, COL_TASK_STATE, &state, -1); if (!task) return; // build the state string const char * state_str (nullptr); switch (state) { case Queue::RUNNING: state_str = _("Running"); break; case Queue::DECODING: state_str = _("Decoding"); break; case Queue::ENCODING: state_str = _("Encoding"); break; case Queue::QUEUED_FOR_DECODE: state_str = _("Queued for Decode"); break; case Queue::QUEUED_FOR_ENCODE: state_str = _("Queued for Encode"); break; case Queue::QUEUED: state_str = _("Queued"); break; case Queue::STOPPED: state_str = _("Stopped"); break; case Queue::REMOVING: state_str = _("Removing"); break; default: state_str = _("Unknown"); break; } // get the time remaining const unsigned long bytes_remaining (task->get_bytes_remaining ()); double speed; int connections; queue->get_task_speed_KiBps (task, speed, connections); const unsigned long seconds_remaining (speed>0.001 ? (unsigned long)(bytes_remaining/(speed*1024)) : 0); int h(0), m(0), s(0); if (seconds_remaining > 0) { h = seconds_remaining / 3600; m = (seconds_remaining % 3600) / 60; s = seconds_remaining % 60; } // get the percent done const int percent (task->get_progress_of_100()); // get the description const std::string description (task->describe ()); const char * descr = iconv_inited ? __g_mime_iconv_strdup(conv, description.c_str()) : description.c_str(); std::string status (state_str); if (percent) { char buf[128]; g_snprintf (buf, sizeof(buf), _("%d%% Done"), percent); status += " - "; status += buf; } if (state == Queue::RUNNING) { char buf[128]; g_snprintf (buf, sizeof(buf), _("%d:%02d:%02d Remaining (%d @ %lu KiB/s)"), h, m, s, connections, (unsigned long)speed); status += " - "; status += buf; } TaskArticle * ta (dynamic_cast(task)); if (ta) { const Quark& save_path (ta->get_save_path()); if (!save_path.empty()) { status += " - \""; status += save_path; status += '"'; } } if (!queue->is_online()) { char buf[512]; g_snprintf (buf, sizeof(buf), "[%s] ", _("Offline")); status.insert (0, buf); } char * str (nullptr); if (state == Queue::RUNNING || state == Queue::DECODING || state == Queue::ENCODING) str = g_markup_printf_escaped ("%s\n%s", descr, status.c_str()); else str = g_markup_printf_escaped ("%s\n%s", descr, status.c_str()); const std::string str_utf8 = clean_utf8 (str); g_object_set(rend, "markup", str_utf8.c_str(), "xpad", 10, "ypad", 5, nullptr); g_free (str); if (iconv_inited) g_free ((char*)descr); } } /** *** **/ namespace { void delete_task_pane (gpointer pane_gpointer) { delete static_cast(pane_gpointer); } } TaskPane :: ~TaskPane () { _queue.remove_listener (this); g_source_remove (_update_timeout_tag); } namespace { GtkWidget * add_button (GtkWidget * box, const gchar * label, GCallback callback, gpointer user_data) { GtkWidget * w = gtk_button_new_with_label (label); gtk_button_set_relief (GTK_BUTTON(w), GTK_RELIEF_NONE); if (callback) g_signal_connect (w, "clicked", callback, user_data); gtk_box_pack_start (GTK_BOX(box), w, false, false, 0); return w; } } namespace { void do_move_up (GtkAction*, gpointer p) { static_cast(p)->up_clicked_cb(nullptr, static_cast(p)); } void do_move_down (GtkAction*, gpointer p) { static_cast(p)->down_clicked_cb(nullptr, static_cast(p)); } void do_move_top (GtkAction*, gpointer p) { static_cast(p)->top_clicked_cb(nullptr, static_cast(p)); } void do_move_bottom (GtkAction*, gpointer p) { static_cast(p)->bottom_clicked_cb(nullptr, static_cast(p)); } void do_show_info (GtkAction*, gpointer p) { static_cast(p)->show_info_clicked_cb(nullptr, static_cast(p)); } void do_stop (GtkAction*, gpointer p) { static_cast(p)->stop_clicked_cb(nullptr, static_cast(p)); } void do_delete (GtkAction*, gpointer p) { static_cast(p)->delete_clicked_cb(nullptr, static_cast(p)); } void do_restart (GtkAction*, gpointer p) { static_cast(p)->restart_clicked_cb(nullptr, static_cast(p)); } void do_change_dest (GtkAction*, gpointer p) { static_cast(p)->change_dest_clicked_cb(nullptr, static_cast(p)); } GtkActionEntry taskpane_popup_entries[] = { { "move-up", nullptr, N_("Move Up"), "", N_("Move Up"), G_CALLBACK(do_move_up) }, { "move-down", nullptr, N_("Move Down"), "", N_("Move Down"), G_CALLBACK(do_move_down) }, { "move-top", nullptr, N_("Move To Top"), "", N_("Move To Top"), G_CALLBACK(do_move_top) }, { "move-bottom", nullptr, N_("Move To Bottom"), "", N_("Move To Bottom"), G_CALLBACK(do_move_bottom) }, { "show-info", nullptr, N_("Show Task Information"), "", N_("Show Task Information"), G_CALLBACK(do_show_info) }, { "stop", nullptr, N_("Stop Task"), "", N_("Stop Task"), G_CALLBACK(do_stop) }, { "delete", "Delete", N_("Delete Task"), "Delete", N_("Delete Task"), G_CALLBACK(do_delete) }, { "restart", nullptr, N_("Restart Task"), "", N_("Restart Task"), G_CALLBACK(do_restart) }, { "change-dest", nullptr, N_("Change Download Destination"), "", N_("Change Download Destination"), G_CALLBACK(do_change_dest) } }; } void TaskPane :: add_actions (GtkWidget * box) { // action manager for popup _uim = gtk_ui_manager_new (); // read the file... char * filename = g_build_filename (file::get_pan_home().c_str(), "taskpane.ui", nullptr); GError * err (nullptr); if (!gtk_ui_manager_add_ui_from_file (_uim, filename, &err)) { g_clear_error (&err); gtk_ui_manager_add_ui_from_string (_uim, fallback_taskpane_ui, -1, &err); } if (err) { Log::add_err_va (_("Error reading file \"%s\": %s"), filename, err->message); g_clear_error (&err); } g_free (filename); // g_signal_connect (_uim, "add_widget", G_CALLBACK(add_widget), box); //add popup actions _pgroup = gtk_action_group_new ("taskpane"); gtk_action_group_set_translation_domain (_pgroup, nullptr); gtk_action_group_add_actions (_pgroup, taskpane_popup_entries, G_N_ELEMENTS(taskpane_popup_entries), this); gtk_ui_manager_insert_action_group (_uim, _pgroup, 0); } namespace { gboolean on_popup_menu (GtkWidget * treeview, gpointer userdata) { TaskPane::do_popup_menu (treeview, nullptr, userdata); return true; } } namespace { // the text typed by the user. std::string search_text; guint entry_changed_tag (0u); guint activate_soon_tag (0u); // AUTHOR, SUBJECT, SUBJECT_OR_AUTHOR, or MESSAGE_ID int search_mode; void set_search_entry (GtkWidget * entry, const char * s) { g_signal_handler_block (entry, entry_changed_tag); gtk_entry_set_text (GTK_ENTRY(entry), s); g_signal_handler_unblock (entry, entry_changed_tag); } gboolean search_entry_focus_in_cb (GtkWidget * w, GdkEventFocus * , gpointer ) { set_search_entry (w, search_text.c_str()); return false; } const char * mode_strings [] = { N_("Subject or Author"), N_("Sub or Auth (regex)"), N_("Subject"), N_("Author"), N_("Message-ID"), }; enum { SUBJECT_OR_AUTHOR=0, SUBJECT_OR_AUTHOR_REGEX=1, SUBJECT=2, AUTHOR=3, MESSAGE_ID=4 }; void refresh_search_entry (GtkWidget * w) { if (search_text.empty() && !gtk_widget_has_focus(w)) { set_search_entry (w, _(mode_strings[search_mode])); } } gboolean search_entry_focus_out_cb (GtkWidget * w, GdkEventFocus * , gpointer ) { refresh_search_entry (w); return false; } void search_activate (TaskPane * h) { h->filter (search_text, search_mode); } void remove_activate_soon_tag () { if (activate_soon_tag != 0) { g_source_remove (activate_soon_tag); activate_soon_tag = 0; } } void search_entry_activated (GtkEntry *, gpointer h_gpointer) { search_activate (static_cast(h_gpointer)); remove_activate_soon_tag (); } gboolean activated_timeout_cb (gpointer h_gpointer) { search_activate (static_cast(h_gpointer)); remove_activate_soon_tag (); return false; // remove the source } // ensure there's exactly one activation timeout // and that it's set to go off in a half second from now. void bump_activate_soon_tag (TaskPane * h) { remove_activate_soon_tag (); activate_soon_tag = g_timeout_add (500, activated_timeout_cb, h); } // when the user changes the filter text, // update our state variable and bump the activate timeout. void search_entry_changed (GtkEditable * e, gpointer h_gpointer) { search_text = gtk_entry_get_text (GTK_ENTRY(e)); bump_activate_soon_tag (static_cast(h_gpointer)); refresh_search_entry (GTK_WIDGET(e)); } // when the search mode is changed via the menu, // update our state variable and bump the activate timeout. void search_menu_toggled_cb (GtkCheckMenuItem * menu_item, gpointer entry_g) { if (gtk_check_menu_item_get_active (menu_item)) { search_mode = GPOINTER_TO_INT (g_object_get_data (G_OBJECT(menu_item), "MODE")); refresh_search_entry (GTK_WIDGET(entry_g)); TaskPane * h = (TaskPane*) g_object_get_data (G_OBJECT(entry_g), "pane"); bump_activate_soon_tag (h); } } void entry_icon_release (GtkEntry*, GtkEntryIconPosition icon_pos, GdkEventButton*, gpointer menu) { if (icon_pos == GTK_ENTRY_ICON_PRIMARY) gtk_menu_popup_at_pointer (GTK_MENU(menu), nullptr); } void entry_icon_release_2 (GtkEntry *entry, GtkEntryIconPosition icon_pos, GdkEventButton*, gpointer pane_gpointer) { if (icon_pos == GTK_ENTRY_ICON_SECONDARY) { set_search_entry (GTK_WIDGET(entry), ""); refresh_search_entry (GTK_WIDGET(entry)); search_text.clear (); search_entry_activated (nullptr, pane_gpointer); } } gboolean filter_visible_func (GtkTreeModel *model, GtkTreeIter *iter, gpointer gdata) { if (search_text.empty()) return true; Task *task(nullptr); /* Get value from column */ gtk_tree_model_get( GTK_TREE_MODEL(model), iter, COL_TASK_POINTER, &task, -1 ); TaskArticle* ta (dynamic_cast(task)); /* SUBJECT_OR_AUTHOR=0, SUBJECT_OR_AUTHOR_REGEX=1, SUBJECT=2, AUTHOR=3, MESSAGE_ID=4 */ if (ta) { std::string s1(""); if (search_mode == 0) { s1 = ta->get_article().author.c_str(); if (s1.find(search_text) != s1.npos) return true; s1 = ta->get_article().subject.c_str(); } if (search_mode == 1) { GRegexCompileFlags cf0((GRegexCompileFlags)0); GRegexMatchFlags mf0((GRegexMatchFlags)0); GRegex* rex = g_regex_new (search_text.c_str(), cf0, mf0, nullptr); if (!rex) return false; const bool match = g_regex_match (rex, ta->get_article().subject.c_str(), G_REGEX_MATCH_NOTEMPTY, nullptr) || g_regex_match (rex, ta->get_article().author.c_str(), G_REGEX_MATCH_NOTEMPTY, nullptr); g_regex_unref(rex); return match; } if (search_mode == 2) s1 = ta->get_article().subject.c_str(); if (search_mode == 3) s1 = ta->get_article().author.c_str(); if (search_mode == 4) s1 = ta->get_article().message_id.c_str(); if (s1.find(search_text) != s1.npos) return true; } return false; } } void TaskPane :: filter (const std::string& text, int mode) { search_text = text; search_mode = mode; gtk_tree_model_filter_refilter (GTK_TREE_MODEL_FILTER(gtk_tree_view_get_model(GTK_TREE_VIEW(_view)))); } GtkWidget* TaskPane :: create_filter_entry () { GtkWidget * entry = gtk_entry_new (); // _action_manager.disable_accelerators_when_focused (entry); g_object_set_data (G_OBJECT(entry), "pane", this); g_signal_connect (entry, "focus-in-event", G_CALLBACK(search_entry_focus_in_cb), nullptr); g_signal_connect (entry, "focus-out-event", G_CALLBACK(search_entry_focus_out_cb), nullptr); g_signal_connect (entry, "activate", G_CALLBACK(search_entry_activated), this); entry_changed_tag = g_signal_connect (entry, "changed", G_CALLBACK(search_entry_changed), this); gtk_entry_set_icon_from_icon_name( GTK_ENTRY( entry ), GTK_ENTRY_ICON_PRIMARY, "find"); gtk_entry_set_icon_from_icon_name( GTK_ENTRY( entry ), GTK_ENTRY_ICON_SECONDARY, "edit-clear" ); bool regex = _prefs.get_flag ("use-regex", false); GtkWidget * menu = gtk_menu_new (); if (regex == true ) search_mode = 1; else search_mode = 0; GSList * l = nullptr; for (int i=0, qty=G_N_ELEMENTS(mode_strings); i * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #ifndef TASK_MANAGER_H #define TASK_MANAGER_H #include #include #include #include #include #include "prefs.h" typedef Queue::tasks_t tasks_t; namespace pan { /** * Dialog for showing and manipulating Tasks in a Queue. * @ingroup GUI */ class TaskPane final: private Queue::Listener { public: TaskPane (Queue&, Prefs&); virtual ~TaskPane (); GtkWidget * root() { return _root; } //void rebuild (); private: // inherited from Queue::Listener void on_queue_task_active_changed (Queue&, Task&, bool active) override; void on_queue_tasks_added (Queue&, int index, int count) override; void on_queue_task_removed (Queue&, Task&, int index) override; void on_queue_task_moved (Queue&, Task&, int new_index, int old_index) override; void on_queue_connection_count_changed (Queue&, int count) override; void on_queue_size_changed (Queue&, int active, int total) override; void on_queue_online_changed (Queue&, bool online) override final; void on_queue_error (Queue&, const StringView&) override { } private: static gboolean on_tooltip_query(GtkWidget *widget, gint x, gint y, gboolean keyboard_tip, GtkTooltip *tooltip, gpointer data); void show_task_info (const tasks_t& tasks); private: Queue& _queue; Prefs& _prefs; GtkWidget * _root; GtkWidget * _view; GtkWidget * _online_image; GtkWidget * _online_toggle; GtkWidget * _popup_toggle; GtkWidget * _status_label; GtkListStore * _store; gulong _online_toggle_handler; guint _update_timeout_tag; bool _dampen_move_feedback_loop; GtkUIManager * _uim; GtkActionGroup * _pgroup; public: Prefs& get_prefs() { return _prefs; } private: std::string prompt_user_for_new_dest (GtkWindow * parent, const Quark& current_path); private: void update_status (const Queue::task_states_t&); static gboolean periodic_refresh_foreach (GtkTreeModel*, GtkTreePath*, GtkTreeIter*, gpointer); static gboolean periodic_refresh (gpointer); static void root_destroyed_cb (GtkWidget, gpointer); public: static void do_popup_menu (GtkWidget*, GdkEventButton *event, gpointer pane_g); static gboolean on_button_pressed (GtkWidget * treeview, GdkEventButton *event, gpointer userdata); void add_actions (GtkWidget * box); void change_destination (const tasks_t& tasks); private: typedef std::vector task_list; task_list get_selected_tasks () const; static void get_selected_tasks_foreach (GtkTreeModel*, GtkTreePath*, GtkTreeIter*, gpointer); static void online_toggled_cb (GtkToggleButton*, Queue*); static void popup_toggled_cb (GtkToggleButton* b, TaskPane* pane); private: GtkWidget* create_filter_entry (); public: void filter (const std::string& text, int mode); public: static void up_clicked_cb (GtkButton*, TaskPane*); static void down_clicked_cb (GtkButton*, TaskPane*); static void top_clicked_cb (GtkButton*, TaskPane*); static void bottom_clicked_cb (GtkButton*, TaskPane*); static void show_info_clicked_cb (GtkButton*, TaskPane* pane); static void stop_clicked_cb (GtkButton*, TaskPane*); static void delete_clicked_cb (GtkButton*, TaskPane*); static void restart_clicked_cb (GtkButton*, TaskPane*); static void change_dest_clicked_cb (GtkButton*, TaskPane*); }; } #endif pan-0.162/pan/gui/taskpane.ui.h000066400000000000000000000010541475412772400162520ustar00rootroot00000000000000const char * fallback_taskpane_ui = "\n" "\n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" "\n" "\n"; pan-0.162/pan/gui/url.cc000066400000000000000000000076541475412772400150040ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #include #include #include #include #include #include #include "url.h" using namespace pan; // possible values: "gnome", "kde", "mac", "windows", "custom" const char* URL :: get_environment () { const char * mode ("custom"); #if defined(G_OS_WIN32) mode = "windows"; #elif defined(G_OS_DARWIN) mode = "mac"; #else // not mac or windows if (g_getenv ("GNOME_DESKTOP_SESSION_ID")) mode = "gnome"; else if (g_getenv ("KDE_FULL_SESSION")) mode = "kde"; #endif return mode; } void URL :: get_default_editors (std::set& editors) { editors.clear (); const std::string environment = URL :: get_environment (); if (environment == "windows") { editors.insert ("notepad"); editors.insert ("notepad2"); editors.insert ("pfe"); } else if (environment == "mac") { editors.insert ("edit -w"); editors.insert ("TextEdit"); } else if (environment == "kde") { editors.insert ("kate"); editors.insert ("kwrite"); } else // gnome and default { editors.insert ("gedit"); editors.insert ("gvim -f"); editors.insert ("xterm -e vim"); } } void URL :: open (const Prefs& prefs, const char * url, Mode mode) { g_return_if_fail (url && *url); std::string tmp; if (mode==AUTO) { if (strstr(url,"mailto")) mode = MAIL; else if (strstr(url, "gemini://")) mode = GEMINI; else if (strstr(url,"http") || strstr(url,"://")) mode = WEB; else // ... mode = WEB; } if ((mode==AUTO || mode==WEB) && !strstr (url, "://") && strstr (url, "www")) { mode = WEB; tmp = std::string("http://") + url; } else if ((mode==AUTO || mode==MAIL) && !strstr (url, "://") && strchr (url, '@') && !strstr(url,"mailto:")) { mode = MAIL; tmp = std::string("mailto:") + url; } else { tmp = url; } const char * mode_key; const char * custom_key; const char * custom_fallback; switch (mode) { case MAIL: mode_key = "mailer-mode"; custom_key = "custom-mailer"; custom_fallback = "thunderbird"; break; case GEMINI: mode_key = "gemini-mode"; custom_key = "custom-gemini"; custom_fallback = "lagrange"; break; case WEB: default: mode_key = "browser-mode"; custom_key = "custom-browser"; custom_fallback = "firefox"; break; } std::string cmd; const std::string env (prefs.get_string (mode_key, get_environment())); if (env == "gnome") cmd = "xdg-open"; else if (env == "kde") cmd = "kfmclient exec"; else if (env == "mac") cmd = "open"; else if (env == "windows") cmd = "rundll32 url.dll,FileProtocolHandler"; else cmd = prefs.get_string (custom_key, custom_fallback); cmd += std::string(" \"") + tmp + '"'; // std::cerr << __FILE__ << ':' << __LINE__ << " cmd [" << cmd << ']' << std::endl; GError * err (nullptr); g_spawn_command_line_async (cmd.c_str(), &err); if (err != NULL) { Log::add_err_va (_("Error starting URL: %s (Command was: %s)"), err->message, cmd.c_str()); g_clear_error (&err); } } pan-0.162/pan/gui/url.h000066400000000000000000000022011475412772400146250ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #ifndef URL_SHOW_H #define URL_SHOW_H #include #include #include "prefs.h" namespace pan { struct URL { static const char* get_environment (); static void get_default_editors (std::set& setme); enum Mode { WEB, MAIL, GEMINI, AUTO }; static void open (const Prefs&, const char * url, Mode mode=AUTO); }; } #endif pan-0.162/pan/gui/wait.h000066400000000000000000000017411475412772400147770ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #ifndef _Wait_h_ #define _Wait_h_ namespace pan { struct WaitUI { virtual ~WaitUI () {} virtual void watch_cursor_on () = 0; virtual void watch_cursor_off () = 0; }; } #endif // _Wait_h_ pan-0.162/pan/gui/xface.c000066400000000000000000001037171475412772400151220ustar00rootroot00000000000000#include #include #include "xface.h" /** begin compface.h */ /* * Compface - 48x48x1 image compression and decompression * * Copyright (c) James Ashton - Sydney University - June 1990. * * Written 11th November 1989. * * Permission is given to distribute these sources, as long as the * copyright messages are not removed, and no monies are exchanged. * * No responsibility is taken for any errors on inaccuracies inherent * either to the comments or the code of this program, but if reported * to me, then an attempt will be made to fix them. */ #include /* For all function declarations, if ANSI then use a prototype. */ #if defined(__STDC__) #define P(args) args #else /* ! __STDC__ */ #define P(args) () #endif /* STDC */ /* need to know how many bits per hexadecimal digit for io */ #define BITSPERDIG 4 static char HexDigits[]; /* define the face size - 48x48x1 */ #define WIDTH 48 #define HEIGHT WIDTH /* total number of pixels and digits */ #define PIXELS (WIDTH * HEIGHT) #define DIGITS (PIXELS / BITSPERDIG) /* internal face representation - 1 char per pixel is faster */ static char F[PIXELS]; static int compface_xbitmap; /* output formatting word lengths and line lengths */ #define DIGSPERWORD 4 #define WORDSPERLINE (WIDTH / DIGSPERWORD / BITSPERDIG) /* compressed output uses the full range of printable characters. * in ascii these are in a contiguous block so we just need to know * the first and last. The total number of printables is needed too */ #define FIRSTPRINT '!' #define LASTPRINT '~' #define NUMPRINTS (LASTPRINT - FIRSTPRINT + 1) /* output line length for compressed data */ #define MAXLINELEN 78 /* Portable, very large unsigned integer arithmetic is needed. * Implementation uses arrays of WORDs. COMPs must have at least * twice as many bits as WORDs to handle intermediate results */ #define WORD unsigned char #define COMP unsigned long #define BITSPERWORD 8 #define WORDCARRY (1 << BITSPERWORD) #define WORDMASK (WORDCARRY - 1) #define MAXWORDS ((PIXELS * 2 + BITSPERWORD - 1) / BITSPERWORD) typedef struct bigint { int b_words; WORD b_word[MAXWORDS]; } BigInt; static BigInt B; /* This is the guess the next pixel table. Normally there are 12 neighbour * pixels used to give 1<<12 cases but in the upper left corner lesser * numbers of neighbours are available, leading to 6231 different guesses */ typedef struct guesses { char g_00[1<<12]; char g_01[1<<7]; char g_02[1<<2]; char g_10[1<<9]; char g_20[1<<6]; char g_30[1<<8]; char g_40[1<<10]; char g_11[1<<5]; char g_21[1<<3]; char g_31[1<<5]; char g_41[1<<6]; char g_12[1<<1]; char g_22[1<<0]; char g_32[1<<2]; char g_42[1<<2]; } Guesses; /* data.h was established by sampling over 1000 faces and icons */ static Guesses G; /* Data of varying probabilities are encoded by a value in the range 0 - 255. * The probability of the data determines the range of possible encodings. * Offset gives the first possible encoding of the range */ typedef struct prob { WORD p_range; WORD p_offset; } Prob; /* Each face is encoded using 9 octrees of 16x16 each. Each level of the * trees has varying probabilities of being white, grey or black. * The table below is based on sampling many faces */ #define BLACK 0 #define GREY 1 #define WHITE 2 static Prob levels[4][3]; /* At the bottom of the octree 2x2 elements are considered black if any * pixel is black. The probabilities below give the distribution of the * 16 possible 2x2 patterns. All white is not really a possibility and * has a probability range of zero. Again, experimentally derived data */ static Prob freqs[16]; #define ERR_OK 0 /* successful completion */ #define ERR_EXCESS 1 /* completed OK but some input was ignored */ #define ERR_INSUFF -1 /* insufficient input. Bad face format? */ #define ERR_INTERNAL -2 /* Arithmetic overflow or buffer overflow */ static int status; static jmp_buf comp_env; static int BigPop P((Prob *)) ; static int uncompface P((char *)) ; static void BigAdd P((unsigned char)) ; static void BigClear (void); static void BigDiv P((unsigned char, unsigned char *)) ; static void BigMul P((unsigned char)) ; static void BigRead P((char *)) ; static void PopGreys P((char *, int, int)) ; static void UnCompAll P((char *)) ; static void UnCompress P((char *, int, int, int)) ; static void UnGenFace (void); static void WriteFace P((char *)) ; /* * Compface - 48x48x1 image compression and decompression * * Copyright (c) James Ashton - Sydney University - June 1990. * * Written 11th November 1989. * * Permission is given to distribute these sources, as long as the * copyright messages are not removed, and no monies are exchanged. * * No responsibility is taken for any errors on inaccuracies inherent * either to the comments or the code of this program, but if reported * to me, then an attempt will be made to fix them. */ #define INIT(x) = x /* need to know how many bits per hexadecimal digit for io */ static char HexDigits[] INIT("0123456789ABCDEF"); /* internal face representation - 1 char per pixel is faster */ static char F[PIXELS]; static BigInt B; /* data.h was established by sampling over 1000 faces and icons */ static Guesses G = { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, }, { 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, }, { 0, 1, 0, 1, }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, }, { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, }, { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, }, { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, }, { 0, 0, 0, 1, 0, 1, 1, 1, }, { 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, }, { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, }, { 0, 1, }, { 0, }, { 0, 0, 0, 1, }, { 0, 0, 0, 1, } } ; static Prob levels[4][3] = { {{1, 255}, {251, 0}, {4, 251}}, /* Top of tree almost always grey */ {{1, 255}, {200, 0}, {55, 200}}, {{33, 223}, {159, 0}, {64, 159}}, {{131, 0}, {0, 0}, {125, 131}} /* Grey disallowed at bottom */ } ; static Prob freqs[16] = { {0, 0}, {38, 0}, {38, 38}, {13, 152}, {38, 76}, {13, 165}, {13, 178}, {6, 230}, {38, 114}, {13, 191}, {13, 204}, {6, 236}, {13, 217}, {6, 242}, {5, 248}, {3, 253} } ; static int status; static jmp_buf comp_env; /** end compface_private.h */ /** begin arith.c */ static int BigPop (register Prob * p) { static WORD tmp; register int i; BigDiv(0, &tmp); i = 0; while ((tmp < p->p_offset) || (tmp >= p->p_range + p->p_offset)) { p++; i++; } BigMul(p->p_range); BigAdd(tmp - p->p_offset); return i; } #ifdef DEBUG /* Print a BigInt in HexaDecimal */ static void BigPrint (void) { register int i, c, count; register WORD *w; count = 0; w = B.b_word + (i = B.b_words); while (i--) { w--; c = *((*w >> 4) + HexDigits); putc(c, stderr); c = *((*w & 0xf) + HexDigits); putc(c, stderr); if (++count >= 36) { putc('\\', stderr); putc('\n', stderr); count = 0; } } putc('\n', stderr); } #endif /* Divide B by a storing the result in B and the remainder in the word * pointer to by r */ static void BigDiv (WORD a, WORD * r) { register int i; register WORD *w; register COMP c, d; a &= WORDMASK; if ((a == 1) || (B.b_words == 0)) { *r = 0; return; } if (a == 0) /* treat this as a == WORDCARRY */ { /* and just shift everything right a WORD */ i = --B.b_words; w = B.b_word; *r = *w; while (i--) { *w = *(w + 1); w++; } *w = 0; return; } w = B.b_word + (i = B.b_words); c = 0; while (i--) { c <<= BITSPERWORD; c += (COMP)*--w; d = c / (COMP)a; c = c % (COMP)a; *w = (WORD)(d & WORDMASK); } *r = c; if (B.b_word[B.b_words - 1] == 0) B.b_words--; } /* Multiply a by B storing the result in B */ static void BigMul(register WORD a) { register int i; register WORD *w; register COMP c; a &= WORDMASK; if ((a == 1) || (B.b_words == 0)) return; if (a == 0) /* treat this as a == WORDCARRY */ { /* and just shift everything left a WORD */ if ((i = B.b_words++) >= MAXWORDS - 1) longjmp(comp_env, ERR_INTERNAL); w = B.b_word + i; while (i--) { *w = *(w - 1); w--; } *w = 0; return; } i = B.b_words; w = B.b_word; c = 0; while (i--) { c += (COMP)*w * (COMP)a; *(w++) = (WORD)(c & WORDMASK); c >>= BITSPERWORD; } if (c) { if (B.b_words++ >= MAXWORDS) longjmp(comp_env, ERR_INTERNAL); *w = (COMP)(c & WORDMASK); } } /* Add to a to B storing the result in B */ static void BigAdd (WORD a) { register int i; register WORD *w; register COMP c; a &= WORDMASK; if (a == 0) return; i = 0; w = B.b_word; c = a; while ((i < B.b_words) && c) { c += (COMP)*w; *w++ = (WORD)(c & WORDMASK); c >>= BITSPERWORD; i++; } if ((i == B.b_words) && c) { if (B.b_words++ >= MAXWORDS) longjmp(comp_env, ERR_INTERNAL); *w = (COMP)(c & WORDMASK); } } static void BigClear (void) { B.b_words = 0; } /** end arith.c */ /** begin file.c */ static int compface_xbitmap=0; static void BigRead(register char * fbuf) { register int c; while (*fbuf != '\0') { c = *(fbuf++); if ((c < FIRSTPRINT) || (c > LASTPRINT)) continue; BigMul(NUMPRINTS); BigAdd((WORD)(c - FIRSTPRINT)); } } static void WriteFace(char * fbuf) { register char *s, *t; register int i, bits, digits, words; int digsperword = DIGSPERWORD; int wordsperline = WORDSPERLINE; s = F; t = fbuf; bits = digits = words = i = 0; if (compface_xbitmap) { sprintf(t,"#define noname_width 48\n#define noname_height 48\nstatic char noname_bits[] = {\n "); while (*t) t++; digsperword = 2; wordsperline = 15; } while (s < F + PIXELS) { if ((bits == 0) && (digits == 0)) { *(t++) = '0'; *(t++) = 'x'; } if (compface_xbitmap) { if (*(s++)) i = (i >> 1) | 0x8; else i >>= 1; } else { if (*(s++)) i = i * 2 + 1; else i *= 2; } if (++bits == BITSPERDIG) { if (compface_xbitmap) { t++; t[-(digits & 1) * 2] = *(i + HexDigits); } else *(t++) = *(i + HexDigits); bits = i = 0; if (++digits == digsperword) { if (compface_xbitmap && (s >= F + PIXELS)) break; *(t++) = ','; digits = 0; if (++words == wordsperline) { *(t++) = '\n'; if (compface_xbitmap) *(t++) = ' '; words = 0; } } } } if (compface_xbitmap) { sprintf(t, "};\n"); while (*t) t++; } *(t++) = '\0'; } /** end file.c */ /** begin gen.c */ #define GEN(g) F[h] ^= G.g[k]; break static void Gen P((char *)) ; static void Gen(register char * f) { register int m, l, k, j, i, h; for (j = 0; j < HEIGHT; j++) { for (i = 0; i < WIDTH; i++) { h = i + j * WIDTH; k = 0; for (l = i - 2; l <= i + 2; l++) for (m = j - 2; m <= j; m++) { if ((l >= i) && (m == j)) continue; if ((l > 0) && (l <= WIDTH) && (m > 0)) k = *(f + l + m * WIDTH) ? k * 2 + 1 : k * 2; } switch (i) { case 1 : switch (j) { case 1 : GEN(g_22); case 2 : GEN(g_21); default : GEN(g_20); } break; case 2 : switch (j) { case 1 : GEN(g_12); case 2 : GEN(g_11); default : GEN(g_10); } break; case WIDTH - 1 : switch (j) { case 1 : GEN(g_42); case 2 : GEN(g_41); default : GEN(g_40); } break; case WIDTH : switch (j) { case 1 : GEN(g_32); case 2 : GEN(g_31); default : GEN(g_30); } break; default : switch (j) { case 1 : GEN(g_02); case 2 : GEN(g_01); default : GEN(g_00); } break; } } } } static void UnGenFace(void) { Gen(F); } /** end gen.c */ /** begin compress.c */ static void PopGreys(char * f, int wid, int hei) { if (wid > 3) { wid /= 2; hei /= 2; PopGreys(f, wid, hei); PopGreys(f + wid, wid, hei); PopGreys(f + WIDTH * hei, wid, hei); PopGreys(f + WIDTH * hei + wid, wid, hei); } else { wid = BigPop(freqs); if (wid & 1) *f = 1; if (wid & 2) *(f + 1) = 1; if (wid & 4) *(f + WIDTH) = 1; if (wid & 8) *(f + WIDTH + 1) = 1; } } static void UnCompress(f, wid, hei, lev) register char *f; register int wid, hei, lev; { switch (BigPop(&levels[lev][0])) { case WHITE : return; case BLACK : PopGreys(f, wid, hei); return; default : wid /= 2; hei /= 2; lev++; UnCompress(f, wid, hei, lev); UnCompress(f + wid, wid, hei, lev); UnCompress(f + hei * WIDTH, wid, hei, lev); UnCompress(f + wid + hei * WIDTH, wid, hei, lev); return; } } static void UnCompAll(char * fbuf) { register char *p; BigClear(); BigRead(fbuf); p = F; while (p < F + PIXELS) *(p++) = 0; UnCompress(F, 16, 16, 0); UnCompress(F + 16, 16, 16, 0); UnCompress(F + 32, 16, 16, 0); UnCompress(F + WIDTH * 16, 16, 16, 0); UnCompress(F + WIDTH * 16 + 16, 16, 16, 0); UnCompress(F + WIDTH * 16 + 32, 16, 16, 0); UnCompress(F + WIDTH * 32, 16, 16, 0); UnCompress(F + WIDTH * 32 + 16, 16, 16, 0); UnCompress(F + WIDTH * 32 + 32, 16, 16, 0); } /** end compress.c */ /** begin uncompface.c */ static int uncompface(char * fbuf) { if (!(status = setjmp(comp_env))) { UnCompAll(fbuf);/* compress otherwise */ UnGenFace(); WriteFace(fbuf); } return status; } /** end uncompface.c */ static void destroy( guchar * m, gpointer p) { g_free(m); } GdkPixbuf* pan_gdk_pixbuf_create_from_x_face (const char *text) { int status; const int stride = cairo_format_stride_for_width( CAIRO_FORMAT_A1, WIDTH); char xface [2048]; GdkPixbuf * pixbuf = NULL; g_strlcpy (xface, text, sizeof(xface)); status = uncompface (xface); if (status >= 0) { int i, l = stride * HEIGHT; unsigned char *bits; const char *p; /* the compface library exports char F[], which uses a single byte per pixel to represent a 48x48 bitmap. Yuck. This loop written by Andy Piper. modified to account for cairo stride.*/ cairo_surface_t *face = cairo_image_surface_create(CAIRO_FORMAT_A1, WIDTH, HEIGHT); cairo_surface_t *dest = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, WIDTH, HEIGHT); bits = cairo_image_surface_get_data(face); for (i=0, p=F; i #include G_BEGIN_DECLS /** @ingroup GUI */ extern GdkPixbuf* pan_gdk_pixbuf_create_from_x_face (const char *); G_END_DECLS #endif pan-0.162/pan/icons/000077500000000000000000000000001475412772400142065ustar00rootroot00000000000000pan-0.162/pan/icons/CMakeLists.txt000066400000000000000000000045401475412772400167510ustar00rootroot00000000000000 file(GLOB public_icons hicolor_apps_*.pan.png) # keep .png otherwise dependency check fails list(APPEND stock_images icon_article_read.png icon_article_unread.png icon_binary_complete.png icon_binary_complete_read.png icon_binary_incomplete.png icon_binary_incomplete_read.png icon_bluecheck.png icon_red_flag.png icon_by_me.png icon_by_others.png icon_compose_followup.png icon_compose_post.png icon_disk.png icon_empty.png icon_filter.png icon_filter_only_attachments.png icon_filter_only_cached.png icon_filter_only_me.png icon_filter_only_read.png icon_filter_only_unread.png icon_filter_only_watched.png icon_get_dialog.png icon_get_flagged.png icon_get_selected.png icon_get_subscribed.png icon_layout_1.png icon_layout_2.png icon_layout_3.png icon_layout_4.png icon_layout_5.png icon_pan_about_logo.png icon_pan.png icon_read_group.png icon_read_more.png icon_read_less.png icon_read_unread_article.png icon_read_unread_thread.png icon_score.png icon_search_pulldown.png icon_x.png icon_mozilla_frown.png icon_mozilla_smile.png icon_mozilla_surprised.png icon_mozilla_tongueout.png icon_mozilla_wink.png icon_plain.png icon_cert.png icon_status_online.png icon_status_offline.png icon_status_active.png icon_status_queue_empty.png icon_status_error.png icon_status_idle.png icon_status_new_articles.png icon_sig_ok.png icon_sig_fail.png icon_show_signature.png icon_prefs_applications.png icon_prefs_extras.png icon_prefs_hotkeys.png icon_prefs_behavior.png icon_prefs_fonts.png icon_prefs_upload.png icon_prefs_colors.png icon_prefs_headers.png icon_prefs_layout.png icon_prefs_actions.png icon_prefs_panes.png icon_expand_thread.png icon_collapse_thread.png ) foreach(image_file IN LISTS stock_images) string(REPLACE "\.png" "" image "${image_file}") # install png files install(FILES ${image_file} DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/pan/icons/") endforeach() # install hicolor icons foreach (icon_path ${public_icons}) cmake_path(GET icon_path FILENAME icon_file) string(REPLACE "_" ";" words ${icon_file}) list(GET words 0 theme) list(GET words 1 context) list(GET words 2 size) list(GET words 3 target) set(destdir "${CMAKE_INSTALL_DATAROOTDIR}/icons/${theme}/${size}/${context}/") install(FILES ${icon_file} DESTINATION ${destdir} RENAME ${target}) endforeach() pan-0.162/pan/icons/Pan.ico000066400000000000000000000062761475412772400154330ustar00rootroot00000000000000  ( @AAAddd```_______________________________________````````````````````````bbbccciii???^^^ccc ڮ|||娨߆}}}vvvvvv|||}}} ꨨ֤颢uuuttt﨨ú~~~xxxzzztttuuurrrtttyyyppptttxxx󔔔sss~~~~~~Ƙyyyڶsss勋{{{֗zzzxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxpan-0.162/pan/icons/hicolor_apps_16x16_org.gnome.pan.png000066400000000000000000000011701475412772400227720ustar00rootroot00000000000000PNG  IHDRabKGD pHYs  tIME ! IDAT8͓K#al=%qY^+$B8l+Z,۫ll [ ,uI,Uf7wEg{\q00;0_/a}}-z=!IrnWD wvv}ssxwww 8KKKk9R.Y\\`P(~,1R bYq}}Mb`kk fYZ JxG0q\.'vww ui(!ٳ6cX[[ݻ@ a,J)4Qa6e!BxZ__*ݻ n斻.VrL6ӧ\vǏft:\|!8bhhJ»wn|8s̥q _CǼ}J“'Op{{{lnnl6իWdH ݥT*199Illlt}fL5I$ a$IT* %5d/Zm˗m<#c:Fׯ_ Ðm ZcA!8Ʋ,ZkֈC&J.Ν;8eQzDJ)1X%Dpo1)%}qLMMBZaI{H~Q1eYW=bqX,>>|8&1B)%& C SSS쥥j:d2xlT? ÐL&C&ŋuZQ4Mv O{Kr5RJ \\߿xCJy,ƘOruhyϷo߾!922R[^^qR((B۶R귇ĉ;8h >\ 5JBIENDB`pan-0.162/pan/icons/hicolor_apps_256x256_org.gnome.pan.png000066400000000000000000000615411475412772400231560ustar00rootroot00000000000000PNG  IHDR\rfbKGD pHYs  tIME 8L IDATxI%U67*W?zo 0, >LgAL01' ӼG*3++3o{.bAYg߈sofŖR;^{o}[@2d$#HF2d$#HF2d$#HF2d$#HF2d$#HF2d$#HF2d$#HF2d$#HF2d$#HF2d$#HF2d$#HF2d$#HF2d$#HF2d$#HF2d$#HF2d$#HF2d$#HF2d$#HF2d$#HF2d$#HF2d$#HF2d$#HF2d$#HF2H7s=ܺuk3O>ݟ'? ~;z?~a3}~;{g=!W~Ϟ={~޽۷o'(F@6HEݳen`fbfr,3Ֆ\[mfFL>:׵^Ϲ}GGtw1:kы1L@G~s;yvL3yD"zg?ێz l'pyƍ/Ν;"Zy^ַ2%q#5gyߔ zXL'mz?z~0L{DD?띩 9f~hʻr 4QÇq< ÇFe֮uEba:9&>솎Zl'tdtTQqߧM85ܹ{7cct-_ u"Z7? Yyf5lWdpJ+$3σ͛߹y>࢞&Wݾ};߹}J*o?AM'(c!~\7~mY:>R<x]"&3#J}뭷j;a0!"M뭷'_a$ JJY^< $spQ7A yg@I!1! f~*DTðw޽uV9t/'p@&ZZdᚙHbrJ%fNaبFŌq\D:Iq⚸^i։]_ Nx κGsw(&笏yhtf#cnۼ]t:d\}G!'ꝝ w{kr|2jt-: /zHoŝq|xKcNSa5c)w:⣏> @ O=~\(QWpQf\AQ,hXĕ+WX,ZRE"<SNth)Ьc}-yB|#E'>Y9s= APLz׮]7x,g2d2dY}{R1<[NRoawygƍ} 8oBP7?9'w~</0s= C""r9TUu2υahyh yΑ/hr1ҋ1}8AQ-zKSQ4#⅝O{9~&/ -//ckk {{{ .3U"@7.`CD0 0\ffd2T*xQ<[00'3x#=t~64r=w?+y}9œ$]}n㺺< JHUkN:}{^鼡jZb{{~̼oc.D6 @zy^6 byH(aPS$"/m4`0@BA߷Ux pG1G.C.C:y$]y$)Y1$$Anٔr ɍ%e7`+b 00崚0bS<٬S1P!a˧QHt:B@Bt|f^̥3:.sn߾w}m4 i3 rX.l6;A*666l61 }ϳ,,"":j*@<Imnc4AʨTbjJL~{_zSZZĦ<lP{]=4 }Wx<YLfqqzT t7E?Xc2 J<}2|e7o۷c_- oەyt:\.GlVqyÇx).N}.uIG|X[[իW^Kx@I1Z?yϞ=4wQB뼾T*l6L&#dұ:q:F'O`kk A0p8y\rR9)l^ ~>}j1D̩T X__0 \.,^"jfnl2rևR) YKi"*گZWW; u0Ϋcuwn޼W<ϻUqsJJ%f/@W ᅬ5Xeq4mnnb{{ׯ_ʊ5vѣGٙ'"6F#V#ˡP(X#3x<&2ˎn |ӧO!I.3c0 Cim03,9y}~#AL&|>/#'s{{Vkb329؍oܤӡ}YRq=|>o=} Cr>pG 8k~z2|/X (3N#ϓ9abp8DΎh鴍@AH^nB鸷 <{ Fúƹ\YRbl6U\.OQrfNF[[[vJ%xg騝NǞrb|~et:h6d26 }-0Doj XXXd^5~˗՟T6E\F\F:\,޼y+oݺR%{yL0U\bK;r9E* W;SP@Z@=C>R8X< KͶ )JX,T* iTA N6VkSFKKKࢾO' * 岥kT0ϦR)vM<+++dYT*,--X#O`1:"z=bX,bee׮]'}V }J"]rŦn(Rk4 RNfQհ|>7`DM1ڐϒ[R6!3yWݻw n޼9!6t9 å0 9/P"/(`uubF=Ǐvv<2\uygf `wwF^Ͼph3 XZZ^uE4M{ov!lb{{O,q%JF=̲`m6f_[[! C{^h4h6F63uk6x/RPO8?˕~s%1J٬uf~:%9URbneX! Z?%Z}TUjj x~Q*P.q%k( ,cf6!S|hV!kPV[v#6=HD\հk׮իW-Yq \ qf$ /lhv1;B"p8$qъyE1G_δf^ ð.RJ\.Gq͊511xx,)=agaaaa6.w:t:Wj="r/&bNo|&ÐPsQ( ،`B(C hPYYQRr9̌8]l jW*> zwФ۷o~wq΄ r օbS9x"}'jlR?eYr((={vhWO6ܷ>d7z=m4 Z- C˸sf 3AN5#b6)aXPfL| nSZ0\gY<Ϧkč@;O p8ijgGakk r9ZZZիWq%'KޞtZO/2ż-~rI*l6Gxx,]0b_ ہsML=ҜqP2qi8>I d|9 u"?nݺu@G~G*xVMjn~Ybz!z=[d=!X,B 3ԛE^xF_uN.A}{hZїeʕ+ ӧOm&677Z&n#B:J,v1 $A]%1`0@DBVC&׌d %)܀sIߴl|W*BRAZbT*%"3̟Q– kt\m6/aBD\l6u\}׳9|YRгbhݒ]<}n`@!T*J@j=[(HTd+$Nud푤!|[z&h!NZu~ {xYo|>,--\.OT;e]d!єJ%,,,^[n^G^GXF5;;;g7˰s u,@pju\z61l(~>n}:fÖС @anV405nֹ M?_,-k~o/т™Ӯ<5,Z75ge a*p$g:i3Jl. I777clnnYoOB#ZZ-˙tJE{(^caa777-O6mKM(D*deegY,//OdK:wlU믿p "&{A£p~a|ē/VyNCyG߉cY@ݮ" U/jqٴ6 +.Ъll6B Sl6 mn6h4'\~O,ɻvnZooo[FK#XYYu^^^NiL NR$sj5ݵ!abss+++2/JT"x\.g 0dF*9i<.G#j,,,P(LmQPyn b/_FDѰ52҃P.YD Eb> YjYf 1yqFLjF?vBT+zW70s/0n1_2;;;ufBb3L~oO~oc.U<{(=7o ] PfO [OHCa.#`kk ˨jy~wn$P=F<,//pBhӒ|-~QDPD(N~/i:^K@mt7U@Ɔ <ՁܹΝ;-׻lڍ7;<<g#`ghɆʮOҥKDz͍"R Q?~??Ɠ'Oh4!a[f`3iC!u*_5L{?Gacc5@<.Ũ & y⧳Ng׸IEjX$Gef^ p\@_/Bzo4?Ǘ2Tr ƔkJNJ$񘥈C@QNȉk׮{{Rrj+>sp8$9% uww@%`0`I"b"h`{{+++,i4y><&t:M"*st:'OyX\\DY PRz cqDN+aG(RӾMFd 5 QJPj&b1OZx&e(p*!RThN@d# XYFzW}H\7A %m(KKKxpU\|ٺ$vADdHNoyW}ju"i9gIJPbHy,Dg"BTµkn1'4 @Ǐ!~-:Nd; ]#UpgZV}W|>OF0eRT)83RЙxW65f edf&߳REf9)]7Oa + +W`aaA`gϞassS 鴠} 9n2 ` i9DĞL IDATI k/G>% 5r9˗/G4Ñ`RbdF#jZV@R$ws9y`ȇ8#w-.=J#")J%TUJ{Ɛ:P u֙$e\`@kDԪ=zsF#t:_@tRеTY 2vRg8;^FX ds jt};@b( 9tDp QGCϭԊAQYCg14X{:tDx"P(8χ{J, __ z _^.p]ܺu{3/3C>ѕӮ̢Ll0o_]]Dh1(C4Z`c4h`ssyT#yYw%q)ݕvHRnYz \zR{ŵ!*ZXc%'@p8b@>31 M$D\jzyC6s%w˵_ `̨lhQ䀁Q> 4N? qנyyl6KJZe"3̟Hxrd;?\Exeeׯ_#u=M 4JfNkqk1sQ #&ҁB-Xfhv!Щ7n߯X`暮W/aT>ޛ&ͦ]xZ/_Jl-TOj<6vEQ,q%r,#b(܍$\̌ |I<P{HH;JG?:mUofq !S]%JHFBVҕqZ>@RJ(tVJPw$*|) u(^۷yބI z0 3d)b3͉CR60 m,+bLv+~AQ'FIL"=&Z56".]U{ 66 I!N0di!af3 ,}[_`ġr˗/c%hBSj1>kU\]"w$8*B|U'P0鞓.EȅT<+Ep8įگZu2rݖ{ ]z"\PDClgccVz¼ fӖфeT* NO?Ɔe[,ji!B]7q5!C ժ%*5 <{ º!NEYt {kٱ @WCڔb*-~}k"1ny87i~lJª`eڍF#loo>jO4+M% i4b`כyBܑ)3RlZ#i|pe m hQ =zT*%땸)I JF.Re>%]`)ֿ(ժՏ4^"av֭{TXE\`?\t4ɭXx1YUM4A@.w[kJ@ogN$va?xfYh$}̀}2Z>}bd9EM%i'mw~ORLFPVj*^I XO\Y >ҥKjt-՟<'trG@N\q؅ pj_lة`GpB޽tV*3 ^Ha mܤgϞawww**QqT*ve9)t:Ob{{k7FZї_Hh4^d0̆'$<|^X2O IH82I{uI1"#5Gr&$<{ V eZ,yn8zTX,ZaW>o0D>Z(: ӄftA-^ydEp\[aSLwըwu㤥]03Qi]b|)(QTjGhZG=,b:D ׭]4:O@0?nRj1Fa^au+Sh޽{vw~+_4:3י9-ЁM?iˬ"(iyDJuFEJAgc[5<&#ɠX,oA/Zrl5ois0X׭W5ϓlnj#]vUUwϬQ>-BV) #1&3A&FA\!k"K_W\AZ[XXݵ8\n|>Nϟcgg`>*7=fzCR+W<,--AR}.(IWcEc> <3j%DcT*Luگ/}6pm.>T`"iO&zNUuۃE)G34,rw[\V-MDDT*YWXet-X[ʈ%Wi&,j, ԤtC1BY\\)ayLD.Vc9aSD5#e~NԠt\.jzn^ 7eT.BJd,/MF _O?NM{Tʦj\A(򇴑V<,dOyoC9A.ơC8˽ R7ΈLpJkjAF]_MvҲlw3| zЪVv_rf(88EEvqj'tWO_ÈQ27d?/|ˌsj2B5tDPpHM\_¢( 2ef^7MC&I嘹a@F#O= b Ά&bъ؈m.GG3?3D;wΝ;ܼyo߿IT=ƜPBJձ%y6N|uqu@cxGEc6xd߸ /X@RY~rfs! ÚRn gA z5kj͡w]H#mJzlpIz ̉{ -SG- }j{y}wmLS\hy1 J;;;` p8\ jOJDvomvȹ+S2q5 1k$CzaY&<8Nҟח*= 4UUjiI.~?kF\~y >nuwDCF_N)?;qoL=E$s]ߥAϚM$å<^\ *DTq2WtB3U" $RDB@I4YN'ѷWv]qUk}UPgßcM|/О^QM`>'Vq D S|_?EJ,X^A%vXD .W9-zn\Щ߈]ywBUHQP%{7oė%|ӟ>_ኖ0\ - +yo bTbH`Ny`4[z"\_SO `q5)3401j!lDlUf 86& hۿH{݈z* /͒{sb`WWq'~}C>(*`Sv}7N)ͲzݎPLBԝTVUt^"+|'~'gƇxRUт( 3 %uO0 ' T\:OM?uV*YxYB`4 E"Zb+h;`B (:d?N quZx xhMYUGqq7\8sjey}aȳ*6]g"5PR7nؿ(p=Q8@δ. ,UQ.iQ"MAFHӄM8OqYwgɤE&ᨾHG' Ff^% K֌>Ľi"d @nA0 !EȪyP/^nFc]?Fg)*w&+'8?닁CPDZ#l4#b2IAFDETQ,_8OD$/•Fv:q-`TP n/M x91Iq@8XC@Qlƕ; g>$nSEN( IDATt]E"Z`d'D,-aXjR)fS0A\#ҭ?s"Ǿ6fu}=r:/_HMn뺨w1-gJp7۔y+̼}-?C7nĦebK h>PiVI;}> YRzܶgx{\7jy:N,X]z'LT7o,aT*P*XT⎤D%2#L2 |4y~9} f:dXd7wݿ}vϡ@@kMoQ)5U=y1$$@)3ά?QDq" c# p!_Z<6TGi 2u".&y GzZW +&dsI;JEP4TP$w4V߿8CGTUYOj괸DPG%J05fQw0 b0\b]oOjK#E[qFITSF|b/1XYHd؝,ח)7Y2q0E$Tt6\ifù̗yM\.' t;Eww3~߶F""2~ܒ_R3?뛹bnFKe{|}ʳ О+>>eYZp>Ӄy[nݻ@gx3 ȋDH(yT-yB{aJuVI[}(e4!HCVjfdLD2WS k/4rP%ɐu u6&yUMT*5Q~yO,b68Hp SxT_'_W7L1ȸ'~'F%Ta3 &b>jJ !ڟ?r殮 "n+j?YwՁ1{ AH-͞1UfJ,/O~˦&9y% N #%cv@Bv&-zE{~Zv=7l6KB&0:3{Wv tcCxW! d2Jхv~AE9e4VQOr\vӚO}EWNwZQU{ zΣI>T34s>'rfn ϳa"͊qA=< \=tI@Ht\^FPou:'\QA9٧wzsu+.ΕxU`Fߨ=Fy0^@8 <%jTuN7ƽCFh٨5l8w ~pݣN(t #y w'6N@Ze^lZ⚕D){8Gmu*3c uMRbv:U"Z7؏Xh޺ukZ Q7qGkMo84"UE)%Ԉf:ŸөL9\Η?t' Y6h4^^x1ezU^_{ZF,|lԠ6e\* U;.߮KY݃gyAPѨAbJP(DQdu"MWUrB?LIZ}& uM0 )}mc0O({Ӽǁ$*T*) (Vl$ϣRPRz=Y?5z/|a<';dYN1!@Uz 8Q(t=B{B`(sG3/d]a{Bzw ̿0c ׈g~yhTM<"ZeKLxrB:-Q&fCj\.:xuTT K[ݧcɨO'!fR*{}YZR6`XV*j5* w7&s׋@5I|E1Qh|›G s\ߣc~L4uG ҡwUh<APJ*@??(<0qVa^#kx l`:MNyVA{.áI)FV}O)WEFnMq\ -Q5NǏWe{@€jJmP賆U{p@*E@ FtN @n)Sd)KRF ⳳ:#Bn;0 й=ť 5'upb%A~bȒJ4?+Q- Ú#a'P۹P(P(@aI+Htl>ӨP&VO,' e\|c+%tY6D"9y"gv8TEG:`03/a7`L8AWU rWNƝB .sMHRd#ZW|:$м ( C퉦+/aP(2&Չp&ad}f^Ux$ `</E*j@.\.ttoRy31qda.sf +'D0BzpCg)3P C`on `<=Q@Zv3M9C1ufBȍUNOyQh-y3g!u%-l>n>G:wt`u똰^$G5=8[gN(& l:1-)&~* bqB](DU|\1pSɜ!N9Pg \ X]3vPY|;@ai#13faf'@CbM+nq/Kd9XJW_tמQixRܜ] 'QZrS:ƗƲs3MCߏĸ0A`Բ% %U,#? l 1I {Ru@S! @LYqၾ~?<|p⇃ #ft"h^a5Ո$`8`0 I:-Î ڟ>J*MNr45?λ9LZ8ש?wûFH;ȻP[^p0 zvwwɱAT*5fH8-*Js`p XS-;afp8$ra>Nk#'91F ZEϔ외)CY4c\O0 pjZ 3a=}ҿ{jIT Ϣ;xrG$""GO묀UFҟ0 $*"8|'f&Z{8k]Ȩ|lu*qOd+b]C-FJa0[ CA14)h;w)ONv5 <yoo'۹\KDcx8ZS̺~(Gxd2{bi uns tza?d}0!خS[kcx-rڨnnރLED"_H6wy'2 4?~x^R.Lvv DQvEWU t% wH@\T*v="i0 Y# 5)z 4n\0M4u/$EHEjuʬ9WOS`MtQSG5bngf9]|5rp hC~[̼ qssOx|r\nF'Mψ o<jQJB5P(,CM=G@(# n"NO#mTw8ZcƂ՚<} w懣j"6?}S??z0Js?*>z ivjnz&~A^Ǐ4 MEݼFƃ`7=}Op8V}^XX@:&i6{,BD['OϺbu{.S3:gz~W!;ZR&t~jp8^ٝp &B ,md7|?Jh4>677\.gAKL~Zkp3٧YY]cO?;5: Ǖs}$S;>su+8},]wwwCVFV~< l6ُza`0_gf2OzW nTTYnVyLbugϧRwμu)^LT\cSu|O|g\BCOcoowvvl6i8zP~џoTA$`" hboRq7ЦoMNg83skթ^^a^t_M?FYn0QJmE??t?IDkDDȔeyž<yǼc-TINA[[[677c쫺ʢnvQѽ{N;!}VbZ%d&˟EβoG{ߜ=Kwq1PJL&eYO>z[TQ%ֈI)mYFkmjן"n+@ljH$I"8b2DVy|ssփ~uݔR~3ƮQ1v͎-m_(*~|{8~˗/?tnURJZUNTLP?q>?MS$FȂ`oznnK";Y%2'F0j4ŸsN~d9RJ*\"bP V W;~v\~A?w<m<|/ÞM,(rk yG$mڄE{bڊ? ,\տjysY ![$X9D\p~Z  V^DZlrY7;{!Ϋ_5h{hV/E]Wp %B*?Me{IENDB`pan-0.162/pan/icons/hicolor_apps_32x32_org.gnome.pan.png000066400000000000000000000027501475412772400227730ustar00rootroot00000000000000PNG  IHDR szzbKGD pHYs  tIME VuIDATXVMhI^O`6:2eaC.^B@Aɂ09Āe.գ%&1"ec!0+3陚g{izuƧL&VSи~:"RKކoh9|DfRjƍ"?|2Μ9 03D"۶:BA4JXQ͹:&''G5ܹî몡!UW\Qm(gYffTccc\,ŋ<;Î캮{)mǏp"X,Ư^OkRJH)YJɎpXd? d%p5@SSp89:y$Ν;GgϞ44={Fe13y/_ŋH$Bm։PXR BNRL&S {[ӧOEQܺu 8 Q6R NݻwѣGR۷ҥK4>>x f Nl6; @\R |BaV,AD (}۶y:::yU5 LX4̴I}H)ilWH<Q)ݻLf-_8pB~`˲6.臃yԄU:t d;v2Ii"#`i:m""5 CuJ% BDooO$bq8u)JO)R`fu?=^Cȯ&uT*Q[[v#qxzee  Bp!$< )&zn9߲,477cΝ_To4e!DǏa 53۷T*5:I80 aB.,,:33{*"oܐz؄9 SSSxyuGI(BJ)6*)~{})M\0PYWJJ#< ] @}B%1z6> OSӡIENDB`pan-0.162/pan/icons/hicolor_apps_48x48_org.gnome.pan.png000066400000000000000000000054651475412772400230170ustar00rootroot00000000000000PNG  IHDR00WbKGD pHYs  tIME  Z IDAThX]hUW>?ܟ$orml jfşHBBARb && -ґ>`Z*fl 5t9瞿5s{> t`sg}Z{**ߔud2ʆf2Ǿ>@oo/୷jrA.3LDT~|VϻB󑪪Һu2y q :);'B-) RY!V_tU9rT/}}}}}}딗S@eY`f EQ mېÉGeHu8$I uQcKDYq/^ýߏitq~gֽ꫓GA.O?JlF(Bww7b (&ڵ 044ċ /`zz_~%j Btue2J%_AT"ذafg`ffeY޽{4MOT*Aex">s{.  |Yhƚ0 033l_~ `4);k׮<<< tz*_t]D֬YMӨ 6m7RPX,6ںu+|Iv`q\v^z%'JT,1::J㘘 MLL`tt&''qrT hi}Z6 ;|mo߾ipΜ9CCCsρyhh7n܈[?sss`fHÍ7믿fM066XUU`u_ep]HH$^/x쮮Ɔdcc#য়~"MH4!ىa>udY&UUիW)bffP (^"R$ZZZ~ ԩS-hioذ_y>to۶mƕ+W/w߱ȷnd2<77I@Md۶˲P(Yu_~`U¨F;PUus[[[T*?Y{.FFF7t:>GFF(LX,麎A6Msss488ǎ0t%޽{7m$o \1۶M~z\~ BA`-SdYo MӰvZ8Cׯ禦& !v Y 8 L'xD4DVq`Y4BӞWtq͛_{u]* lY$I"0#913 !`&tG iT*8C4eǁĿT^²,CUU3g޸qgϞ>u~_-d000 .<ٹ34MJ%ꫯP,H!|oq>G:ƞ={84MxP \˲8Q*J0/nhhP"],{, ?m̅f()e2Zߘ|9v|7+h4Oxaa\4M6M-˂eYxmlY:y. ze)rl{T*x<^px{ss3l&˲h~~$AuxܡjTZC$@ u*)Ro='D"alz&w}w(Jd6AD0 ]ץ* FBX"bT(T*UB0Z2CCɲ̒$;\.s```LtzM]]x@r'˲'q}}= .`Ď&$ ^uܹ󋋋BGd2 I8caaaOZ%)",t]<^R47xp@4-ӧÏEude3s.#/ez^eD" ʤyؒ8:VbN-(bXw%Ix_iYLOOCuV+q$I躎H$X,z}=35B`>,4Mm?m&e(Fܻw\ } r9jii!!DS9;W( 4QRT V33#Ν;QŃ+`"r]׽N$ْ\.(v]`|>O P(m[+3ou3MD(bj/,, 0JY~c OƪʪʪJ[3IENDB`pan-0.162/pan/icons/icon_article_read.png000066400000000000000000000013541475412772400203450ustar00rootroot00000000000000PNG  IHDRasRGBbKGD pHYs  ~tIME 6tYlIDAT8˕MHTak j6&FZ2 BI@cZJ)w-$vJ%R82҄qLNS6wiqEy{CiY"*E4ӦaS]ϲYHWLuW˭WطձDR0ir,d_}ba@Kd<3 v"`pQ_E!ͧ7'5Կ^?Fi@i bҍG}Hęk5FҒƺ27U, pz mO4*ԕ0D 4r_#J#%"Ԍ 4ߍ`$,(/t^Ld M͘hu*P^&amG0+1<e0!ҁP("teS0L̹=y.> ! qeД%ÀL b(EU?"38E|YKUvG h=#{h"IVCbO=#gl z*ASv)*_a( ]pp2K@RuRzЉC6 32zo&iYDM蚆_Mż@`9=ӄIENDB`pan-0.162/pan/icons/icon_article_unread.png000066400000000000000000000011211475412772400207000ustar00rootroot00000000000000PNG  IHDRasRGBbKGD pHYs  ~tIME #xIDAT8œkSa^<'i^8<,R$(ѥK.?KtҭEt-CPAhJ6 mwT):x,{΅{΅]j'g\hɺ=s-IE'"ǗDODR[okp,]gwcJUĮ͇./1hR$bmCYe`\%XPI"RciSDvhĐs#@#]K)NFU>aV1Scf< BWY@hp5֋ŝ##Pŝ# lY&CXlӬA`fe}h,l .p=ۇ|xr/"0ZX>dy.l@~#,fr2O 羺Z7Ws~ј/Rb^8}ᛝvqtkC{rbmr|?fd,zD=~;{/}éV(jW[d|U6ր aQo:)^ΌN1DQϖj-d#jћۃ.~vv%xYawzձUE9goa7AVhG2S<"_ag*;~{L 8GOˑv\BPRB(7ڜ7Ã!#<۔ReiZ Okl)a3qHo'G|{CR7sl)q}6Ơ!$i"InݭX1c#KJǹO@ҲH4II-RB;K H), HVf! oIENDB`pan-0.162/pan/icons/icon_binary_complete_read.png000066400000000000000000000015021475412772400220710ustar00rootroot00000000000000PNG  IHDRasRGBbKGD pHYs  ~tIME  + IDAT8mˋW[uoUM;MWMWC<I.`\$H !AA"TB;I!H pu\a^=ĞꪛE3C2YqmsUBYf1{omkn |||o|brţ⺔+^066_ A6CQ:RJJ;Dm8}{6?r{sӌ,!mc V{!rk3{J)NTަ&ʲqJI?𽐶m39 ;4ICT%MR0DJIRi6` * s (PMTbj|,˘_f9q'8Cjq=a^5K+ωÔXJ"DRkl SNa~ ?ٻg/ a4Mke˺Ĕ(h4$I!D-0 -&0 4԰/ZYje\lי3{f9s.FKyϟש?y;RŐ{΍ԣ{;˼>=ZMO=޾l=9޿$*1"J.^K$$|FG{ מ}x jPܤÉ`oj>Ync˗)6^r7@k, ې8l,.T6N"QfE>{q0RvVtЙMJ j9 )7X?K}dfEzONFdy&I G']LpwFtٞ- %t6%?`O>F2ƄXeX IǗB%hlp"i;Uk1zwC.r[3yrOcHemh[!Sf=r!iAbE el,F)2-VLCz oԽyn}/h- ple;ᑩW[ Qu*=dy +;xC`%VN)zuwtg6BK3sK5I<0piٖLJॆH\4#~ȏﺭ`ة a$F@$s~xTC@S3XvIENDB`pan-0.162/pan/icons/icon_binary_incomplete_read.png000066400000000000000000000015021475412772400224200ustar00rootroot00000000000000PNG  IHDRasRGBbKGD pHYs  ~tIME sIDAT8˅Mhe;3n:۝|҄$ *P ֛O=ѓ 1RJ M^īl1$iB*UI7 dIvw>2Z?=<ϟ-x>8UGhDQƃ뗧Ǟ:>קߜxk`pXXrqWAߘtuWZ-:Ca &/_}.LqeY rڥYBZ%# AS+w 0 B!cd(}^ٹXa&'wqd5H}#`6~rwq[b 4&hO4"T3 4MRr96wY] ?2<6̗_}ett0-d)Y')-~[EY)B$j~B)aZsRpjo8:aD“G+"lom5RB7 vח/$ q 8&I\콭tO?|qtmJ>x5|WI/gh}D!THp-ƿM@?/淞۲,:;袭-\OV ۲.?q0fl7׆q&jsˀ7~rv  Jӂ4!@ir;~Ai <&,NaZ.P q-gsSK\l5XWfP;|NuQzQMn2AS Ð$Id,Rr=]ûVP%::tm |#o[ߒnؑlx9@)fm6_=d,ۡ^FH13wշ\ٓaM,龐hCX:{9_Ѻ3ϼ R.m^@_^w]b7mx;sm>.3>QRP*] :,r_Cc#T?~ȢjJ)A:>&0}ϫ7;]}}s*q%W\o΃gh80fJ3q϶سɻ.V/sDZ,ț4ڑRb:ryZڻYj2KIt6xZiˍcY,ò],1m353Ȝwnk)&oyJ#8IH<=Oot{67lURфR_T-@m&I-L~Ha~+md3lr)\|"D\ijp+@1c9`փZB&hVܟpEԊ- )HF\j*FޟM]Q 3C(a U&Tip, S5P 0>1vf12Vf:PaQo^/H[EH6 E#Ӻ%%Tq|n*zgלv":ۚiz6242͛o".zbk.O&'{I}c@a(ǀY @[Ps<#|L6q*3uCVaCfo:NIENDB`pan-0.162/pan/icons/icon_cert.png000066400000000000000000000012611475412772400166610ustar00rootroot00000000000000PNG  IHDRatEXtSoftwareAdobe ImageReadyqe<SIDATxڌS[kA=7 ^ R[Xb}ARE*EJo>J(m@||n*ZjAж6i뷛7|ߜ3|G1ᣧӀX C=uS_ჴAUpqr9`? '&X[BBOX[]E.ό\4m;)E03OMo?GF-{8;D:G 6-דP7ii>wn-sLi&aI,4V9[k"kKwLz 8|&A@Q*$T*<9藳M2 + `8^;S ǃ *de7X)._|l!p+4dEÒ9/+6܍Aa߂@#K*vD4tUdZ#yl$b-:.:p4IV:iЭphAũwaE*fCz[Ɉ@;:`ϒk;O"u4HXU $h;ۅ"Q"NN_ g NbIENDB`pan-0.162/pan/icons/icon_collapse_thread.png000066400000000000000000000021001475412772400210460ustar00rootroot00000000000000PNG  IHDR szztEXtSoftwareAdobe ImageReadyqe<IDATxڼW;oAv|w1CB$^(@Cz~ =q["L G" ;2wG|gvff-333sB80達{JzNmҗÞ'Y8T?vN R 'ӕ쎏F 3qܝcyցHnARņaP(3{]Bt9Ah415u R `ٖ6ȤͅTLˢw$mk$0><4xv"޼z IpNCһ%QL䅞P%{N@z*l^{7H*Bbk) "b$3_V7@aNPM!n?n HqNAqh.R(|.fuVc2:"6 ")~uq}#DY( iȎ4l׶HFu'k6Aol>釋6("ïTVG @z^Ӑodv8|tl^Yǂ)2V?Fhd:3곳NCT^Z(qmR*e8 |Dj`r7"QIENDB`pan-0.162/pan/icons/icon_compose_followup.png000066400000000000000000000040161475412772400213210ustar00rootroot00000000000000PNG  IHDR szzsRGBbKGD pHYs  ~tIME * 21IDATXý{pWG?&<~@RBBt`JP[;u::N T )R<X[@)DP(M B"HCyG^ZGݙ;w=UgM>5S0or;$r;$R, 6|K`5u#A^1hyxk z#7LDD.EJzUwNDkLןm9+v!BjY@)lKc[K+RXZck)+&찅o6q4:BLbjk^zd<<@8@Ts8yԲmIqc@s腥T[׊FFOvuD(za逃˿-۬U7a)_Z[8”)SKd[{VE! \Rc9K r sP'wO]}xH{g9g CS) <RRiͧdS11x5iҲ1ʂP|uCP&v!)ќϕQ<JYP xzN=]+nN=c S17Jן`zμO Bp|5 pְ{C1c7]IݹH1C\Zø; 7̇/^^%3r8vE|C2q%`\qزܱiQ@yk;% JnaŲvzt!^}mE|\K$amjc֛(IOA!{L[ZMzjQ4 T/rc{._K9mxmzgUjMfcKڵ6q C}q>CB٬GXA.+ i{pJDV[Al.ZVe߂(~XcHACqCAs4ϤuP9cyǑYy" Ri2aš\^׆{WRgf3| Y`|Ȍ"w{ڇҾ<.p (VFHƏHmx2/g<|7 D$/%:s5Jm=OxI8N˱ IٰvHime淴w*HIap8㒲tuo֐R HS4@⌕꾵f%vp=DD_Jc_pco)tI* ?=n呻D O ,PJ 묗Qw:{ K4)p+ x`=%Sˀ&h7PiIENDB`pan-0.162/pan/icons/icon_compose_post.png000066400000000000000000000030531475412772400204370ustar00rootroot00000000000000PNG  IHDR szzsRGBbKGD pHYs  ~tIME i QIDATXilTU7әZʴv:KbUBi {Qc%@bFZ&bL~(P5`j4$MutZ̼tJ-MOrr_ݙ省nO0B>AVM]C!&!Tp.'^4t611- dgxq'9-_ΎM@\N2R(;FN9urR@in<.'o}Fbl1o_`1LOBŦ6f%[$*JMum{\LOM@޺k;:reh.1K@+P/Y=ɔ׷3vc0{LQa`ܷlP 0b%ФJ¨ D:v 0vD:M.nTIҎ7Muo _g֧wXn4+]s1%T|N0S,OP N6 _Wߛ:Ʃ' _͕]UD@KC_%ETq3<4inή8NMrbV@- TME>Dp] cnŨ;/6)j,g2UܑW Cct=]i~ˢpr{-\gsԏE@JGs6 ?oanNy@W.!@ {너)Lpf09κc,\[iQ= v|½4}pH5(9`oGSA4\@4vg9JhzCdzXU~d, :GNDkb CS %pZ`Kz}⻦P[S?Pՙ5uXN |k.)i:B[Z+~z& >Y l|oVT7 G X ?; ϤIENDB`pan-0.162/pan/icons/icon_disk.png000066400000000000000000000013161475412772400166570ustar00rootroot00000000000000PNG  IHDRasRGBbKGD pHYs  ~tIME CkNIDAT8mMkSQ9GVK1ju#օ.D wA7*HW"ݸڪKm-Mn$HnI/Iu3̼gFӅWTR1"hnfj @cX!;p&Kz( ^SWq Lͻ…h!~uhNPP`*rd3i➋,h?K6fb<U1|XD.TUDAhSX]E*lmR<q BAEnH/`u\q UL8ZB"T_9:zY1}P |ߧ\)[A,5go}'_eXu]bN 1B;6Ν=ÍxЌL' bhvDd*5 `CX,Q.o<8Dk;"6[-ZAGhW YYY(,ldZkWWWQ7ɶ xB8S=s̀vPf픶QcUzvxZ \p@J_aqຮSxL-'[XF` 1XZVr'@=ݢZiGb |$rZboo'(3n,Go)OB=9*aUa fdu.dчa6Ds].S)"VtGvEw'. 8 ./n}NDJsq/1f46>]cg{w!)1Mb GiHhS'8p3^J03[ Av)A(peu W#0'OD# 7]y;E yjÚcZw=ǀ1@A6:hqAY„NAK/C55n_;CA=$e$j<2ӔB\+|ap)vA _~%8$Vt&ƹ3; ?^t/Şи.RlX %EITHr)qČ_Qw"gW 9I=9,GA+]B-1>)&/}Mՠ"}IfDoH֥W/i֞5(6{c,m;w Cַ:x YK8&+#j͒ݵcu-sRCiWq៣lK+{H{ 0R'5)_JIENDB`pan-0.162/pan/icons/icon_filter.png000066400000000000000000000031251475412772400172120ustar00rootroot00000000000000PNG  IHDR szzsRGBbKGD pHYs  ~tIME #IDATXMl\W/ljq8vI!q . .+HV)AB,X (mW,@bP$THN6-__8c}x385mnҙwsρ%wG;r:'Qrع{{thݬ[INY+ɗ:?}0BW48\spo'G3aqkE*zB=,5_`,WO~~ 3_rks5n/t'ՙfA#1X )XP%6X.96B'=4%/w{ %`:R.%M9YR+Xg^n:rjK3UW|[o/GXkYkXތ <O1)ڤhbޤԠu6mR4looE)zF8yp=B줮(OWiYM(OY4 /.K~#|jRr8XOQqm%"\˜gZRmh(~~ roʹhhk=B7B-@^9С;H HrcR&)qa#66 ;_-|O?uXąёYzw+͘ZL2n0nU5,R64Ēt5CZ'?3Igymd~x44:p^1_J}AW8AWaŃzv-誵pߓO݈<~ȑ-LMtvCؖNMIB}/?u?c}*?q.GxL5Qg>SS.{&0 b CwC=gPR8 6-q/ *ASH$eAajضu ]+*PF$-]F U]\] ?IWA(D#&J n6o&ڽnxI,in%P4##xtFnkMWݲ6Fww5d2ɿ|>q8}jYZ!u}ռA,2HK]  < > CIENDB`pan-0.162/pan/icons/icon_filter_only_cached.png000066400000000000000000000025371475412772400215500ustar00rootroot00000000000000PNG  IHDR szzsRGBbKGD pHYs  ~tIME %JIDATX[lTUϙt.TPh+ QBH+Ƃ>`b"5ŒF郉(D11bŖPR*֙3goz$JV9;ֿ:dP[7=z miÐaH)[mPXwoq)vۏ~Akqw]ݍۻnnd5^;]w5DG|ALpTR/WCjB8hXn zڹ':<(?QeͪlP8B8pm/fZR-wTI-l~xZk$I2xϚ5 x<J>ue>~S[) exnSeB $Ri/]Bґ !Zp0`ӉO!I3b2X!IRbi`)%JiDlqn##p(x"=Z^ҒRJRpxP(hp=73Fz. 4M!9²sx ]֬aC>r47wG׹n*+P Dr\g׻#olN'.gEfZ"Yp |bӶRZB s BBML3ד$ }[FAb8ea&9 er˝YŮvMx}EFh)Kc:OrZ|&U@t89HI \vIENDB`pan-0.162/pan/icons/icon_filter_only_me.png000066400000000000000000000022641475412772400207370ustar00rootroot00000000000000PNG  IHDR szzsRGBbKGD pHYs  ~tIME $(4IDATX]hW3_3u415hTiCZZJAP0)})jH#SEE҇bKK`Q ؆j bJvպ&νC*݅{νw9 <,N{ωzµWQKI٠R{^YP(PP%X\O??iRt@;@Gcat]Ci"Pr9\BpVa4=ek3kfJiBinLҴ"`LCa E|ɦ`'m"_y#WΤ{6q%;ɵ1˙Y["BJV3Xp3;?8c][f]{+7HE)$F.qF';IJ`I=_lku)z>eL\f-&72pn6J5ƌv3_ kV-]}IΗDCLX)&%,M;920rw+pZw'RLJǚ֮jXْ+ Sél]Ҿ:й=5 `B?ե+-ld0ˉ3o~G˟ZJ#UoB_5 K0 ]׹쿨iJªK||H0o†]m hh4h+j׳W?, h_hZy.e5Wng*!a:`Bs`:NF EFBʒ"GKT?76N,fIR2U ؙnk{tl2 |tRg.غ]L)9L"xC'ϣQԛЩ+[[Nh6de2l6‘086RAԆO?PH! Q$.c㷑.V7o@ LsutBDp#;TKP>vMͳ \,Dͩ/b8k(J 2<@Ι|C:S)]IENDB`pan-0.162/pan/icons/icon_filter_only_read.png000066400000000000000000000025331475412772400212500ustar00rootroot00000000000000PNG  IHDR szzsRGBbKGD pHYs  ~IDATX[LTW} a)"AdCVRK4jhGMm_-4i}R[FӤu,6ZHDL+-xDfWF*v ;g׿:z),u,W+W$Fx4 ZBCXǷwZ<=>|><^mnJ,_m+p5ny6FkAkqcqa,tC;3?mkb L4-hKhCgEdnj ;}hm맷__?@SwMp;Rϛ9MG&Ҧhּ01G*ڵz#;+U'K˘J_t艐EGSg/_92Cl:—<#/)-B]~ΟT~; +mVIMNK[kUs;V1 &IawLM(EnȲ2 KNm-~ǖNhj2Kn`~6eD2@4)No@(ϭr᧯z9WꆖK&S5B1B;X25M݁@D*Zq8"qeM8Tֵ\A22Dٴ+iYɴߟD]ek|1/%$e%aThN6kl NHek,B#ۃQȪ=B+"BJH7) 늛l?ywfs>j!X{u!m\9) =Hf&`*8^sfONP`3n ''Q񚻘jC`&:+-<('|\j4yiDмQ!`zwW֏b"cA_pPp an>!ss*IENDB`pan-0.162/pan/icons/icon_filter_only_unread.png000066400000000000000000000023331475412772400216110ustar00rootroot00000000000000PNG  IHDR szzsRGBbKGD pHYs  ~tIME %&[IDATXmlSU]_uK"DtdB &DHH0"ߘQ(*sCNj+c(12ǀvmy2tM?ys>s<^xYFօk׼sZĪ"U ]':e,Qz<`>{!v#qZ6t]C4KȊdsfY'=5m'!䄭-?PZ_Pv:6b# bx۟N\Ԏ4篏2P(%(PSex\&aV"au复r6u #i5FR7F9wRDF&;fm_}vg*K=|u ,ciRcici TL&úʈēj? R>Ƅvϓ_x͝7;,vI+L ƗXD)Ŋ># lj`@+`L_  /]* T.D;Ē=~j̜O0Wpb颲@`ub#I:;Owzu٪|`lnKDR"OK%"[垇4ɩH |x|O8{C"ו_x1`10,KBU8OCvp=n.[ZCgI K= HcIiǸ hc9"LOS*Jݭ}=g+*`wk~/U~'S8æ2|^'^jK`ыN6՗ag@nb?'[U; >{.i!i `p{CԁNMڭ>PCqhvy X+ST? :xtVRjbHL[ ]%Y0Y13,Om :cIENDB`pan-0.162/pan/icons/icon_filter_only_watched.png000066400000000000000000000026361475412772400217600ustar00rootroot00000000000000PNG  IHDR szzsRGBbKGD pHYs  ~tIME &IDATX]lUwfsi)lV,4Z>"EPB0h(~%0m HE}`Q$1**PlB@$-tlww^X6?MϹ;pO`PۉӋ^<ֳe))J%%YIE4.Q(T(KEӸQ;k\H ,*G4e:;4lum_s7C%yJ>zfJQU۾ÓAVT2.2RpMa>$2nbv\]Y1?דOQDc Dc88x'eEضa߱M+D!qԒ )bdC5)Q?` 6/}hInwݕ)^_~avZ21%PB^=zJr苰}?o^[^]gRWv9F_cj߭v\ӊ3mљtw8p,ym$ߍϬJŔRKwQeQ,`}k]4[s7(ze;:_ЍSW2w_:33҅

_NC%d fBK x3Xu@ {6uUm/  p-? k0%lutz;f7.5Bzm=ڟziԝ5 04Z_sKC߀A Z5^IENDB`pan-0.162/pan/icons/icon_get_dialog.png000066400000000000000000000021601475412772400200210ustar00rootroot00000000000000PNG  IHDR szzsRGBbKGD pHYs  tIME (IDATXŗk$E?UL4Ct,Et WO""=Uq욍11f3d'fc&L硪3h`cz۟޷TIg @*J;JȥO,Vx)\40SRc<=]VX tF@1hc i?fms^z}ޥox- Y.%bK .O`$sɖ^?whKWI%s 0`L V! Pzn׌0% &5Cj]"DBPJCҡDDv0*"&$O ""Zmrc Ur)%Ϡ<׆CD,!䬁\ &/]jCC"]]p|1.PK@Eh\t>i,61ɗ?JR)PX;)h@W`F.*!]r؊ vt NH(e.I c" I 'Xbb,1Ar!S<6([@{M0b`;FDDx>_e@+bkqD+̞9<~A +; nQA֗\||F_ȏ%~e"k!z ([p՞: Aׂ LO>>\4Q 7hklN0encV@YR.XpѤ%F`}4(W&>:' ^e}Zmʺ@TcEla.ɛOԗ|rBK?I s7ﳿÀ\(S~ܫ`&5>\]րDTEx^ E5;|1sܦ@6uUC@?PpXwd0K | IENDB`pan-0.162/pan/icons/icon_get_flagged.png000066400000000000000000000021501475412772400201520ustar00rootroot00000000000000PNG  IHDRcsRGBbKGD pHYs  tIME  :"mIDATH͕MlTUt:0tlR/!E # ~$7&&Ƹ;#;q5i1JՅAFBJJq40v:}޽o:m ZXx6ޛwWa1|5#k% ýaglgSٰ% &d"c7}H)&MR$mwk6|ԏ AM0mo#a@|awNCT5 N,?(U0<@*}8$%"@2/KS!Aj,.**jjJ 8Eo-ŞNBkwXʕX7C'LI*/X"Ƣ^>:113[~pγ)4~0z+m)AWhu\wJᦧI-#qnV k:*cFrz,[J>[Tʧ6[:&1CbL^'eF?+繼y_Ô,, 54S1JLpgC)R KZX”&#l)+ Tx M R⹷}Qf_;vM}%5}PlJLf^}}Z \N?MmLIENDB`pan-0.162/pan/icons/icon_get_subscribed.png000066400000000000000000000024571475412772400207200ustar00rootroot00000000000000PNG  IHDRcsRGBbKGD pHYs  tIME *7 /IDATHǽ[lUgi)bʭ -) J 4b&AߌG511AKh Q `ƨ@R `PRz33{/fZ89mLq&0gϟ5B| / 4t~Cm/ŚoEyŔo{c, oB+XR 6Y+׽ nˎ]v^ٌҽby+[)\S{S;6I\AkͳfPWu`ɕ()4\줵=DV (5>~$P:tr?Çgϳ={P_?G/bQBpgp0RPKm߹wh^4AL,>˗Er "9xeO1N9Ԕt@X('z|1Z!0,b L"Zk@ z; aժl} XZX++DZkNzYL$tXE0 GkmW^ XK ؕNFӌĆ1 u;zsn ӦAb1<ߥ0q(zzzǵa&ݽL()F3ucv&άh^gCrxl1xPJi``mxeXB WrAR_ΜɜyrjVa 6^*L(ɘ':<ϋKww7ZdPXkְoL++ZKGL++ Tϛxi ]Jir*4N,srOmu:aQZEF AxYSKpce;j;/{rUvfPq Oc/뿔R{hGэƁJf(~t)|:V"^n\5,7mLr0( nƇ! ְx9q*b)". ]i@/t6Dh Aj.NdEW @̎db&PPw 8""8#~{t]sP +~{z97ڮʄޓZQE+/x}fݭt,YUͬoPPQNXЉ<IENDB`pan-0.162/pan/icons/icon_layout_3.png000066400000000000000000000005031475412772400174610ustar00rootroot00000000000000PNG  IHDR00WgAMA abKGD pHYs  ~tIME6?IDATxK Dp+ەqjh慏-q7dxnEk!"۾#}@[s3@c8xN! ׶pdWQď-%D EIٳ)QӕR*J6@ij@Bv]h7s)6JMB ^O=Z))db-/#?L pe<0M]I"y@$8tR/܎L MfGkIENDB`pan-0.162/pan/icons/icon_layout_5.png000066400000000000000000000004571475412772400174730ustar00rootroot00000000000000PNG  IHDR00WgAMA abKGD pHYs  ~tIME6(d" IDATx10Ceuu=uϔxBO FmJ}W`+0oZgvUe)C`ps|Qh4nUL~Ov%ķ#62 uXM.B(4 ƷF0'iHfgկfl8r"h%x7Oa>>IENDB`pan-0.162/pan/icons/icon_mozilla_frown.png000066400000000000000000000015041475412772400206060ustar00rootroot00000000000000PNG  IHDRVΎWsRGBbKGD pHYs  tIME  lIDAT8˵MHTQכ)ieADY"L$ $F *rQI)P*2K 2ͱlFsworM8߹p?2beKI):We_A(U)E붒t#8f'>B+/j^|C)=)+܋_RF½>6KCHJ=X쭭O.Yuvz88Pޚ]X8{If9u,ɈH/sva7Q0(l @Ƈ{\zb_1(JL7`@MK䄫4HKD'$Ϧ6nG!ަ(E `*`|F p_;P_Bx9ٰs ,^Zpwp_6+XTÄD4\Ƣ NRB{XКqٰ)dJ!-P㠤q^Z:~I/}n'sWJbۘfhnX`0'=BKՇ $li?y3("׿~#<`TQz }|IENDB`pan-0.162/pan/icons/icon_mozilla_smile.png000066400000000000000000000014601475412772400205650ustar00rootroot00000000000000PNG  IHDRVΎWsRGBbKGD pHYs  tIME 5pIDAT8˵[HTQ}qf F*]BAQQQS!CAESt#M(jADv!)gJFqǙ9{0R 6{g׆O#J]J@%O Sӹ RZ+7oV/l 4=]C tUs@-l4,*;= K]<Dʱ`F*q,*uZ>%0MC\}CG ټ'JoCtrjg/YSm%EE9W/X[{PX< B˦qڅ&hRR.\c<@gxA{9D_t%ΞCr %c[S A< \ e 3xzt& ,92F`yUC  ̾1Hzq"~+c(GJ3{P6 @< +Ye90{P ݁v @$ 'h8`V6-@;A5dns9yn=tvD!3ELptMa$ ?k  |g:e#2&c~O;@F p׹Y|dhJb hɕHD#&4e-.#Md`vMb&_*bn8r)1RV/GS<_3IENDB`pan-0.162/pan/icons/icon_mozilla_surprised.png000066400000000000000000000015021475412772400214710ustar00rootroot00000000000000PNG  IHDRVΎWsRGBbKGD pHYs  tIME (űIDAT8˵KHQcBӒ E- "6=P7)(EQ.tS"4XHh0e)h1B7ERfFro-j&6u6?? i䐇NaP'LD$I w__Aí (ėGPVr'w$QEWβ݉O!`O!ݽ,۝4([)M)?x G ?`Ji| 39Okn іѐNW~fM^MgVDrr:x?C:S@I}n#GcK-݃| :IkE1~,m46a-tclUEu 085]`N'5W-Z# ,*?A)VB)ftC_y^K=i`poWMtI~!q;Bńېn|GBn&B-!$b)(N(Ĥf!ÚPDވ(%)+4!6A!AvX ΀9D&gBr0YY(ؤ4f ̬lisZN[5Gmc:+5B@D༎.'s6%/JYs>5HɁф Ɍ}HKs'w|l#6,F9u_nJq!"`eԆ@wMj~ fG[X[UF-^-\G ;Asy% Ι;`z tf.p떗pC7a@#I]!F5( ^TfQGFa4*:cXeJcׁx8azȓd3B.H.|>簳d3'fi=KhtMWH}PV^rٴ숅q9R/pZ#.ExJ^nc_6_p_½ JgFrή!~_r`aVG|:υ^y7l kp<uƿ0}0qIENDB`pan-0.162/pan/icons/icon_mozilla_wink.png000066400000000000000000000014711475412772400204260ustar00rootroot00000000000000PNG  IHDRVΎWsRGBbKGD pHYs  tIME SIDAT8˵[HTQ}xdi^,/i2 D|0zITOEQEPCS1Pv(2B{ oe<953ٻq—Z`X_BzexЈh:u/rxZg(w<^e'VmGKϙ06@}>E7Xw'z}j %.cf 1x= R@)8ooG`uhX]s3\ (H8V~sMn,esUW":@inm-(A}i=LjҗZ2֔t">g׽9H)j.]AkM݉%1'eg}ЕIVqZj .~|47h Q{6%k@*X?dyj>!YWA(i|A@YH J 7-`n.?,/;s#v^>kO1lx:pb*;@:&Y8@WI D('6q'+{B rf&`@aD[pOS 4=+0 أh:I a|Ć I|\ܔ:M8J$]IÎzϳ.@$C}^{s~~~}}6gT,̈غu+mۆ\.G| @Jd2I۶mp]YJI7nDgg' ի`fc۶m$b154i::: |oo/y"Nq5uֱR oaYq>u,"۶H$x 䯾..]D[n yH)0<ՉVH)qz{{C.Tdׯ_H>,jjj0>>NuFFF`& BǍT*q޽x|4??9ΖfDH_?ϗ"vуoۻ(:sq躎ׯSmm-!vZ!_@u[ ]166L&d2Ifp]O=ݼy.\ ˲022NbfXU2A?bHaP7ny~~~3?- D`Y<㩩)z*777sKK R)`ff4yll =wvv /?<⋼k.r<8882|2< kB213s4e<}y;b1X?sPD"RZ|P5 03Μ9Rwwڮ.OԩS̘ٳgҥKݍZG}DLmömڹs' ܹs$I(]x=ٶ1<8֬YCLHTVgjhh@$!!D #XEΞ=xE87lB34M0pD1LMM!"ˡ`6 bX iP2kע DӧOcB ,+7cnyſ믿3N?|0R8D"Lx xto d&R版B<gJa q4m&-")%R\1Gw %efmbXPQG6T黠O0gBfMӨO@@㨫㙙B u],W; $d%$P!$Mq|g0077GVm/Y!RU| eYR)H)}R$?rǏ<.ǭBsÆ p]7 $ffqH." 54n,cԊ-}0$ L1,L ZZ~=l3R taBY -U'"H)zJk8?.8JQ& r3ЃǑ#G`MMMb牙Y)Y4,0a0R+W8ίjYn+`66oތ>y/ 6hFdž84774)wcΔQgggW;6 ra84-8 T f`&ݼy-$ݘ3C4""h)%t)QFE="B4EKK &&&8:B}}}$LH$˲dJ'2- R0MBDђO(?vAw_˲̈Fذa]"HmRYE,] ʆRJ""/_oV Ry<mmm0MoC?ic9NS,CP@dz,Nv*I)Q(.y^q+LmEjVX܌X,P:"d2sϝ߲e˚{pTaH,/_5I.(׋^q!~e{zl |O<'H:u]΍d(Ler_*c|5Ę UmBXD&>}?iH)A@0y;oin""tʰ ՋoyAb@3F"8&),\5ԟY""_u?NnQrGMV Ha @ (6bPzA`[  "BoU6Ȼ/ *****Ҳ kwrIENDB`pan-0.162/pan/icons/icon_pan_about_logo.png000066400000000000000000000221571475412772400207230ustar00rootroot00000000000000PNG  IHDR>asRGBbKGD pHYs  tIME ,Fq@ IDATx}i恵{ƋEBH"Y|ȇ(_"RZyg["!b1`ffv322rUuG!'J%ϦiB4˹}|_Bt]G`Lqte+)'U !XQv|]ס""B<eaUϿ hW4ٳz-i>p&ueqxnܸ n4}aŋq9xGB,twwtJRh5A|@R|S*^‰uBAd2IeBC\333д !%ItuuT*纮d jxpW4`&13zzz܌i@MnLf/)J?r-,W'O?O}t]j%"4Hwy'ٳbLG}=@]1T,{vܩ,6 .]JLmc 4>>O<<ϓLD̚{<i/cU\U_r|0 6 SO=Q{xxZ0V0oaZ__\4 a>|>teY "8C |u4M03 !ly_j% `0kV+\@_ˠ#Gl, w}7/=|G:&˲011!'~;mذׯG{{; !077G1&''i׮] ";wiBBqt]G.M67 Lt333r$ŻeY6oތT*D"A,<R)ڹs'6mf&]aY 3C42~@CC^y]8zݻw/=z}lL&S`yظqVuq?^{5,o} -_Ƒ#GȲ,G.:l߾7o ۶gz ayd33^}U?0 ~abb|IdY2 ׿rkk+ڵ݋ B ˲wP(p"AYPFp}}=Y&ɶm^~=Ξ=+}ܿD`u]_^i8~8\ץn4 R)0]i˖-K/A4}]E0DiLDضmΜ9CaShjj4|mbضM6M< ZZZhݺu0 8,l CGXn_ ]]]'fBz4a>uoYV*|ahh5sSpK E=3 >̆aP(-[ضmV2 d2Ɏݻ9L;T*m<::ʚABN&L&T*t5MyoBu l&նmBppTyqT۰aR)95q5~i8^}}"qiMMMajjt]'4WdT*_?NuBڽ{74MuûK$yzruP.۶Iu4 uw4MO/!Nöm""\x_xqBu./ 4ɾ6] d2mBv-( "™3g>,˂/E u]Ggl۶ Bq"P!n:CشiS"IO ]qe۷_+ LZ[[|T \\yenD׳&T,ẮTU创r;v0 TpUGА ;$')])9Q.l/ȶm$pnw}(?0 e(N8۶AD, Ν˗!= RfggQ(p=㠡ŋXXXJ$S뺎D"2{6(h{?X~=4MW 譊A_'xۂYLMMA"hrTBXDP@Pyض<|0r8rHǎßg xg0 5Mxز\3Gd2 u?mmm,i)4LB>/=aaaA"P An>33n: ApsMT'X;Cu 4M޺u+4MC"@SSktuu!JX,74MؘԹ,WzĿUeY8qo4M{ eXudِQ`6oHnY[Z__"W9f6Ȉ fnݺПn={Mׯ?rtu|g!EV#riұc\y J@ ɚ!ɓ'yϞ=T(>i5-AwOfxhttTP:&II]q>@ P,IoRa[kتwaYarr._d2Ɂؤ'NppYtP eqT*! p}Q{{;a0 kp9;dY_pSSSҞ:<뺎I!f斖8P(p(?f%y w#`%bQugv$"ڑdZ ѷG[[?Oo6LӔt]K/$}\BP{{;~ӟy_F6 Wax'QWWG='I _cǎX,JlƯ~+{不z Bu""~7رc`f{qò,<8x𠌸IڊB70@+aJ! F:d2 f_;hBchh̼W"(\WWBҞ1 #x0ҥK.K0 dYzqyBo~~.]ǎ7Mv]>~饗L&aa@9$m]0 "">tv fF?84MCX'x;w0{GPS3@EaW*bCjfFssUT*mض*=??oY&9 .P(H jlA*sq&L"u˜⿓.4u1;;KQfvv^|E|*o*͠[kk+uttHW?GP2 )=/K`Po뺎Aֆd29ZXX#qM7<}%knmPQNjoodY˲(H4MXET 2]RhB444|3LА{m/Ub/˴eSS z!T`wI<:uJ ֭8,C?pES @WWڵ ga!_"q(J27*Re*JB 9XFxpp'O^wjc?ۂl#Ϛ‚}IY9,^%ӗ8ꢾt(a^u^n]x<3KhTBXX,rT =\%MX}A;ɜCTϥf/U8uV~jF`0q_<]]]r N*RKxiH$k1^U<ƃ%| +}ei,O$0xߣ</0D5=~-뺾hDM7݄ÇsVM/4:h4%+ݑ" M(r۶Y"w6d4\׽nFJhhh(3q:Ƚ[;(W̽a?Ȗ-PPD"AjRe$?j<=;+N $¿̌b2!(0xippǏG"522<444S @Fy:::ȶmff{*HyͅsAךеBJq"(5PN9\5[d從煅}}}oH|8p<ېSu)A"T&RUIH&59 "yz{{Q__O@Ӵ8V"!a-\.JW뺂"(+oBҎ@utuuQ]];Cn=p߿qX5W)T0 4ej5T[lb&MW-Rm55M`pp^}UX'ID_nѿhi&Hg! *#jUaDDczz,uj*~`d0u]lٲd;racP733]e/'j]OMM .j48nxk8L.r}ߗ9F8Cz(y뺎d2I{y/~C 3o""u]04M0o_uə$9TLϨdU=kY˼NF~@_5<=u'&&jլOA2a,KV 杙]]]Z?]e@`uÛ/>)A#Rӕ(JJuU\|g" 뺬W4 ccc4UӖVLb-̌i*B採b&eٰV1ʌ ѹkO7_p*A7喖l|*n={Hd2VRռnx'3rD χA5R+UVQ¼D  (@4jxA/@>Ggg'Ey}[l証V`0h]2H꜠o~X???v,JuR0f p>aްPpt̎ibe;Հoɾ;JK$"B6EP$*+ӥU [J}444PCCÚ6^B]W;j., 6l~]׿422=44tiIP<}B466<ŢaO#4M9R!|]WP*χ(Y†+( Y^Ж]Kd7{GT*`'@1nBp:FSSYD)h$|ʶm#Q*Y0d-$F !+B|H"TU7774PJ"Bgg'tp(&V bfiJ%ضeٶH8Nn_#*ϓeY<A/^Hp…PET2,#ş5=*7w> H@>|vw@6]oۥO|>Nlv"0V V-www#J%R Tk>HDT(]D"뺨#^`I<^$N2H8&&&d689J4M$Ir9ZU2!ennfff܌1veO*RҢ*͹rc4M ՝&2#!xJö,|~t)$DZ,Jd԰ d$j? 2ơV<Ǘnl۫6<ϩ$qi/,,]@g-zt*Q{{;_t BJR\__ݡT%'1^"03MNN"x<ˊ([IA_GskQZe͠8$T*Ep qҥj `:ǎ;ilcZ0 ttt ͪXn0yb8kOPDRP19i<4s57og2ɰOnSS._,iW<0.]ɩ+ ϵn}ډ%˵9ѺKNeOcLNNB̋B,gm~h||?줖M+ţM*r|ӥ_**GIDATjaJ]D3}4Ɍ',)FBe "MbGMtG$ImVʽ->;W+E_ب:t~ծ'+cUHh率;?? .`aaA>J{433S V(H+y䑃em *am*-Q 3|zvqFخ۫_.*kK>R psNDc~zwU@ V2@`7774ʹ <2cﺸjLqwN>h4B(4 s"HJ7quvv~-HQJT XfX1W(N^pᥧ~ TNpýW@J 3QWR6fT;=7-P_Er`:eWJ+V~J X|y   ?    0 3  ':p* !$$%'*,/01246)6  #',0246889;=<(<  $%(*+--.021(1  !#%%(*)*  #"(" (   )  ) )@(冀()|)w))z,y'+ }+w,傀 "|(z*}- ~ x  ~t} }} ߤ}~ ژ~e̊ ѷ~~̎j ǡ|~_}q$􇈈~q􀁁}X(wxyzxoS <(    (冀()|)w))z,y'+ }+w,傀 "|(z*}- ~ x  ~t} }} ߤ}~ ژ~e̊ ѷ~~̎j ǡ|~_}q$􇈈~q􀁁}X(wxyzxoS <(    (冀()|)w))z,y'+ }+w,傀 "|(z*}- ~ x  ~t} }} ߤ}~ ژ~e̊ ѷ~~̎j ǡ|~_}q$􇈈~q􀁁}X(wxyzxoS <(    9 q4G )[ 7  G  ':2 ,H  F  }  3R  )™V  (6210.,)&" '<=9987542/-)$ (1.-,+)'%"  (*&%$#" '"# ( (  &  (U@@pan-0.162/pan/icons/icon_pan_logo.xcf000066400000000000000000002304471475412772400175300ustar00rootroot00000000000000gimp xcf v001BB gimp-image-grid(style solid) (fgcolor (color-rgba 0.000000 0.000000 0.000000 1.000000)) (bgcolor (color-rgba 1.000000 1.000000 1.000000 1.000000)) (xspacing 10.000000) (yspacing 10.000000) (spacing-unit inches) (xoffset 0.000000) (yoffset 0.000000) (offset-unit inches) jEingefügte Ebene     Ijej-ZpE;􋅋됁"~~|{ {|{|{|{ {|~~ 󂃂w~ |yż{̌񅂇쾖ޞnvz{{tsrstux{˓u}~~wܟ񈄀~~nŒs{{҃ض}⮆zћ~w٣|v|||{ߌtxt}~xswtڌzȗ|| wsxzx|z |ߐwɉ}w߆xǏz |Ѐ~zܸ~pzvsx zy~~{ڜzz~vxޠ{uuttvw|}|~v͎}yw΄烀ww|ɷ~Ճvx~{|{yywrx|⁂vv{~}}~~Ӛv~ҋx}}턁~wz{鄁y{z݇}{Ē ΅ux~|~z 惂yƯ|۹~}ɡ qw|xwwvuʘ~~Ԛ}| ȍw⃇s{rq |y΄{sq ⃃~s{{z{||}|{Ԅqtuvvuuowy |֬ꬍ󉍖౛ ܡ| ݙ| 󙂁 } y v࣍ 뇂zң 넂}¡  ヂ ꃂ~觚 zܢ  酃vџ sŜw⸙~ݮÿ{գq~yΙ 灂}{Ɣ򹸹~޻ կ ˥釂~ž 氂{溛鍃xݳ wԫ!{ɦ }辢 z沝x䧚􋅋됁"~~|{ {|{|{|{ {|~~ 󂃂w~ |yż{̌񅂇쾖ޞnvz{{tsrstux{˓u}~~wܟ񈄀~~nŒs{{҃ض}⮆zћ~w٣|v|||{ߌtxt}~xswtڌzȗ|| wsxzx|z |ߐwɉ}w߆xǏz |Ѐ~zܸ~pzvsx zy~~{ڜzz~vxޠ{uuttvw|}|~v͎}yw΄烀ww|ɷ~Ճvx~{|{yywrx|⁂vv{~}}~~Ӛv~ҋx}}턁~wz{鄁y{z݇}{Ē ΅ux~|~z 惂yƯ|۹~}ɡ qw|xwwvuʘ~~Ԛ}| ȍw⃇s{rq |y΄{sq ⃃~s{{z{||}|{Ԅqtuvvuuowy |֬ꬍ󉍖౛ ܡ| ݙ| 󙂁 } y v࣍ 뇂zң 넂}¡  ヂ ꃂ~觚 zܢ  酃vџ sŜw⸙~ݮÿ{գq~yΙ 灂}{Ɣ򹸹~޻ կ ˥釂~ž 氂{溛鍃xݳ wԫ!{ɦ }辢 z沝x䧚􋅋됁"~~|{ {|{|{|{ {|~~ 󂃂w~ |yż{̌񅂇쾖ޞnvz{{tsrstux{˓u}~~wܟ񈄀~~nŒs{{҃ض}⮆zћ~w٣|v|||{ߌtxt}~xswtڌzȗ|| wsxzx|z |ߐwɉ}w߆xǏz |Ѐ~zܸ~pzvsx zy~~{ڜzz~vxޠ{uuttvw|}|~v͎}yw΄烀ww|ɷ~Ճvx~{|{yywrx|⁂vv{~}}~~Ӛv~ҋx}}턁~wz{鄁y{z݇}{Ē ΅ux~|~z 惂yƯ|۹~}ɡ qw|xwwvuʘ~~Ԛ}| ȍw⃇s{rq |y΄{sq ⃃~s{{z{||}|{Ԅqtuvvuuowy |֬ꬍ󉍖౛ ܡ| ݙ| 󙂁 } y v࣍ 뇂zң 넂}¡  ヂ ꃂ~觚 zܢ  酃vџ sŜw⸙~ݮÿ{գq~yΙ 灂}{Ɣ򹸹~޻ կ ˥釂~ž 氂{溛鍃xݳ wԫ!{ɦ }辢 z沝x䧚i7o:%, l7Uk~@g/ T(  - Y 2BTm 8 `    6 [  +   E { & 1 @ d ~ 2 Nh~.[  +F3v&K󅃄󇃅7|;|}||   Ǘ髎n}~|l{z{{y{t|}zz}~ןwӦ~ក{u}~~{|y}t|sx~}זsݵu{Ϊrxwٙϖt{Պ}{{~ Ӄڝt}~~x~{ yu~||u zuy~|zzvw̓v}Ȃ}uq~~}yƂ}}ts{u ŀ}}xw~}xĉ{y͊yیzz†~yѦ~}}ŀxwČxzus~Ղ遃~u~肁w}rz}uz{x~w{z{zzv̔x}}||zn ĨꜦ̫    󔖛ѭ  Ǟž(ſ ¼ +򾸞 󼶞鵶 򵰝,񳯝+宝 .񦝘󥝘奤ý󝘤%의 󅃄󇃅7|;|}||   Ǘ髎n}~|l{z{{y{t|}zz}~ןwӦ~ក{u}~~{|y}t|sx~}זsݵu{Ϊrxwٙϖt{Պ}{{~ Ӄڝt}~~x~{ yu~||u zuy~|zzvw̓v}Ȃ}uq~~}yƂ}}ts{u ŀ}}xw~}xĉ{y͊yیzz†~yѦ~}}ŀxwČxzus~Ղ遃~u~肁w}rz}uz{x~w{z{zzv̔x}}||zn ĨꜦ̫    󔖛ѭ  Ǟž(ſ ¼ +򾸞 󼶞鵶 򵰝,񳯝+宝 .񦝘󥝘奤ý󝘤%의 󅃄󇃅7|;|}||   Ǘ髎n}~|l{z{{y{t|}zz}~ןwӦ~ក{u}~~{|y}t|sx~}זsݵu{Ϊrxwٙϖt{Պ}{{~ Ӄڝt}~~x~{ yu~||u zuy~|zzvw̓v}Ȃ}uq~~}yƂ}}ts{u ŀ}}xw~}xĉ{y͊yیzz†~yѦ~}}ŀxwČxzus~Ղ遃~u~肁w}rz}uz{x~w{z{zzv̔x}}||zn ĨꜦ̫    󔖛ѭ  Ǟž(ſ ¼ +򾸞 󼶞鵶 򵰝,񳯝+宝 .񦝘󥝘奤ý󝘤%의 '      !>    ?      A        ?|}||{Ģy}{р䍀럁~|݄z{|wԒvx|~ԙytv҈~z~{~~~񑁁} ͊x w ~~ { ȑy ߢw u } ԑ~ x x ҄  ~~ | ߇{ } y ֖w{ʼn~מzsyu֊~|~ |}̂}~򾽾𕀁 }͋w|}||{Ģy}{р䍀럁~|݄z{|wԒvx|~ԙytv҈~z~{~~~񑁁} ͊x w ~~ { ȑy ߢw u } ԑ~ x x ҄  ~~ | ߇{ } y ֖w{ʼn~מzsyu֊~|~ |}̂}~򾽾𕀁 }͋w|}||{Ģy}{р䍀럁~|݄z{|wԒvx|~ԙytv҈~z~{~~~񑁁} ͊x w ~~ { ȑy ߢw u } ԑ~ x x ҄  ~~ | ߇{ } y ֖w{ʼn~מzsyu֊~|~ |}̂}~򾽾𕀁 }͋w"!""IdaJy 8f 7e&\ !0Hi)Jq  "Y G   ) K ! 9 Q  k   A x    A t    * b (6Lx / Sw)e)N x٢ 𝞝wʠ!x彟"肁汞 낀~੝!ꇃy٢!ꄃvќ#郂|ĕむݶ򬫬Ҩ 󴵴~̠ԅ~͟#臃}Ρ#鐂}ˠ }ǥ |}İ#y}ƻ u}ÿ¿#`i~ܿ E ~ίx~¬򦥦Wy}ɿ p[x|N~~T| dy~}~Fnz~-~ !Rjtxyyxwwxwwv"v )4876432210/#/N%@x٢ 𝞝wʠ!x彟"肁汞 낀~੝!ꇃy٢!ꄃvќ#郂|ĕむݶ򬫬Ҩ 󴵴~̠ԅ~͟#臃}Ρ#鐂}ˠ }ǥ |}İ#y}ƻ u}ÿ¿#`i~ܿ E ~ίx~¬򦥦Wy}ɿ p[x|N~~T| dy~}~Fnz~-~ !Rjtxyyxwwxwwv"v )4876432210/#/N%@x٢ 𝞝wʠ!x彟"肁汞 낀~੝!ꇃy٢!ꄃvќ#郂|ĕむݶ򬫬Ҩ 󴵴~̠ԅ~͟#臃}Ρ#鐂}ˠ }ǥ |}İ#y}ƻ u}ÿ¿#`i~ܿ E ~ίx~¬򦥦Wy}ɿ p[x|N~~T| dy~}~Fnz~-~ !Rjtxyyxwwxwwv"v )4876432210/#/N%@v0CRn (Sz!;P^d7`U@ "  y  < s  @ = W `1  =, &9c" !!$*39>@BDFGGHHJKL"L  ""#%&(),--./12#2 !$(+-/123545689989 9 !#$&()*,+,-/00/0 0  !"$&&%&)*+"+   #$%$% %    #   "  " "#욛떕 󕞗  򫭴𶳴 ż׺򧤨  ¿ 󪩪      '~?v?/??@욛떕 󕞗  򫭴𶳴 ż׺򧤨  ¿ 󪩪      '~?v?/??@욛떕 󕞗  򫭴𶳴 ż׺򧤨  ¿ 󪩪      '~?v?/??@    ? >???L?2?9?0?+?%???? ??x {˓xxw~ؕ~yz~ τ~ؐ췸ᛁू~ު~ ۩~ פ~қew랝ȑ豲һ%権Ȫ~~ Ҷ|g򯰵̾}x⾿Ľ||j~m"򷴭td 씓uL~}tXy_vwxxwxxyzzyshJ /12234579;>?8) Gx {˓xxw~ؕ~yz~ τ~ؐ췸ᛁू~ު~ ۩~ פ~қew랝ȑ豲һ%権Ȫ~~ Ҷ|g򯰵̾}x⾿Ľ||j~m"򷴭td 씓uL~}tXy_vwxxwxxyzzyshJ /12234579;>?8) Gx {˓xxw~ؕ~yz~ τ~ؐ췸ᛁू~ު~ ۩~ פ~қew랝ȑ豲һ%権Ȫ~~ Ҷ|g򯰵̾}x⾿Ľ||j~m"򷴭td 씓uL~}tXy_vwxxwxxyzzyshJ /12234579;>?8) G!1X  'AY|I}"&  p2 v  A Z   & }0  װZ ©~J  LLJHHGFDC@?=950)  230..-,))'$" 98:7554321/.,*'$  0.,,+*)(&%#  +(&&%$##  %$%#           Q5(dgnome newsreader     ? agimp-text-layerE(text "gnome newsreader") (font "Swiss 721 Bold") (font-size 10.000000) (font-size-unit pixels) (hinting yes) (autohint yes) (antialias yes) (language "de-de") (base-direction ltr) (color (color-rgb 0.905882 0.905882 0.905882)) (justify left) (box-mode fixed) (box-width 100.000000) (box-height 16.000000) (box-unit pixels) ddM P>%PMPMОtP@[ P [PojPoj)5]>Br P*U =Br P'R&R @P*U @ͣPa\nABt P P =BsP P P >h<<)P P >h<<)yվRZ P P ZP P P leP P leHwIOP P ?&P P P JP P Jn8GP ϠM8hI9@@@\P P PMM MPP7oj9l[ ojP7P1@ 3u >Aq @P1P >h<<)"w ?Du >h<<)P P le;!Z leP P JKO JP 2 Neue Ebene     So +s @ @ @#78::::::8#7 @ @ @ @ @ @{{{##boR7) Hintergrund     11 ֧t  wP4#+R$ .&!󪭪򭪪kkkk魢ؿkkkkk꿙k 꿿ؿ kk꿿 k M [ [k[ꙿؿ񪭪k[ؙؿM[ؙؙMkؙkMkkMkk[ؿkMkkؿk[kؿk2ؙؙkk[󭪪M[ؿkMkؿMkkؿk[kkkkMkkk2kؙؿ򭪪k2kؙؿk2kؿM[kM[kkM[kkkMkkkؿﭪkMkkؙؿk2kk2kk2kkM2k[ؿM2kkؙM[kkؙkM2[kkM[kk[k[k򭪪k2kk[ؿk2[[ؙk2kk[뿙M2[k쪢M2[kM[k[kk[$ .&!pZZDZpZuupZZӶuZuuZZpZuuZpppZuuZpZɶuZDͽuɽ u٪uuZɪuZZɽuuɽ pD窕uuɽZuɽ DZuZuཪZɪԽuӽԽ PZɽZuɪuuɪuԽԽuԽ Ϝ5uuɽZuɪZuɪuԪɽuԪ ͭ5uuɽZuɽZɪuԪɪɪΉp5uuɽZuɽZɽuɪuԪɪȹp5uɽZuɽZԽuɪuɪɪݭP5uɪZɪZɽu񪈈Խuӽ̭PDuɪuZɪZɽuԽԽuԽ͜pPDuɪZuɪuuɪuɽԪuɪ͜pPDuɪZZɪZuɽuɪuɪɪ̜p5ZuԽZuɽZuɽuԪuԪɪ͉pPZuԽDuԽDԽuuɪuԽuԽ˭p5ZuɽDuɽZɽuԽuӽuӽ˭p.uuɽZuɽZԽuԽuԽuԪ˭pp5ZuɪuZuɪuZɪuԪuɪɪP5uuɽZZɽuZԪuԽuԪɪ̜pPDZɪZZɪZuɪuuɪuɪuӽ˭PDuɪZZɽDɪuuɪuԽuԽ̉p5DZɽDuԽDɽuuԽuԽԪ̉pPZuԽDuԽDԽuԽuԽɪʭp.ZuɽDuԪZɽuԪuɪɕp.ZuɽDuɽuZɽZɽuɪuԽʭp.ZuɪuDuɪZZɪuuɪuӽuӽuʭP5ZuɽZZuɪDuɪuuɪuԽӪ̉P5ZuɪZZuԽDuɽuuԽZԽɪԽʭpP5ZɪDuuԽDԽuԽuɪԽԽ˜pPDZuɪDZɽDԪZԪuԪuӽuԪpPDZɽDuɽuZɽZɪuɪuԽuԪˉp.ZZɽDZɪZZɪuuɪuԽԪɪɭp.ZZɽuDuɽZZɪuuɪZԽɪӽʜp.ZuɽuDuԽDuɽuuԽuԪɈԶɭP.ZZɪZDuɪ5ɽZԽuɪuԽuԪɭP.ZuɽDZuɽDԽZɪuuӽuӽuɪɭP5ZuɪDZɽDɽZɽuuԽɪӽpP.Zuɽ5ZuɽuDɪuZuӽɈԽȭpP5ZuɽDuɽZZɪuuԽZɪuԽɭp5DZuɽ5ZɪDuɽZɽZɪuӽͪp.DZɽuDuɽ5uԽZɽuɪuԪuԽʉp.ZZɽZ5uɽ5uɽZɪuuԽuɪӽȭp.DZɽDZuɽ5ɽuZɪZӽɈԽȭP.Zuɪ5ZuɽuDɪuZԽZԪӽԶǹP.ZZɪ5ZuɽZZɪuuɽZɪuԽuɪʜpP5Duɽ5ZɽDZɽZԽZɪuɪӽuDu5$ .&!} ȳ}Ȝ}Ix  O }}}}} jx  I jII jj  IjjI jjI OII II } II jI II  IjI j   II I  Ij IjI IjI OjI ȳX IjI IjjIjj IjI IjIjI ϳ IjjI IjjIjj  Ij IjIIO ȳ jjI IIjI Ij Ij jj jjΜ} IjjI  jjI IjjI Ij j jjȳ} jjI  IjjI II jj Ijj xjȳX Ijj  Ijj  IjjI Ijj IjIII ȳX  Ijj Ijj  IjjI  IjI IjIjI ͳ}X  Ijj Ijj Ijj  IjjI IjjO ͳ}X  Ijj IjIjI Ijj jj j ̳} III IjIjjI I Ij OjO ͜}X II  jI jIjj IjIII Oȳ} IjjI  IjjI  IjjI IjI IIjI xȳ}+ jjI  jjI  jI  jI IIj ȳ}} Ijj Ijj Ijj  Ij Ij jjO ȳX IjjI IjjI I II Ij Oj ̳}X  Ijj IjjIIjjIjj IjjII xȜX  Ij jjI jjIjj IjIII x̜}  IIjI  II IjjIjI II jO }X jI  III  jI  IjI II j ȳ}+ IjjI  j  IjjI  Ij jj Oj OȜ}+ jjI  IjjI IjjI IjI jjII xȳ}+ Ijj  Ijj IjjIj IjIIIjȳX jjI Ijj Ijjj II j j̜X IjjII jjIIjIII jjO IȜ}X Ijj II jI  jI Ij OI OI˳}X  Ijj  jjI Ij  Ij jOIjOȜ}X  jjI  jjI jjI Ij jjII˜}+ jjI  Ijj IjjIj II jO jOȳ}+ jjI  jjI Ijjj II j I ʳ}+ IjjI  II jjIIjI I Ojj xxOȳX+ IIj  Ijj jjI  jI IjIIj ȳX+ IjII  IjI IjI IjjIjIIIjOOȳX Ijj  jjI jjI IjII Ij IOx}X+ IjIIjjI Ijjjj  IjI jj OI ȳ}X IjI  IjI IjjjI Ij OjjII Ȝ} jjI  Ijj  jjI jjI IjII jOOȳ}+  jjI  IjIII  IjjI jjIIOOʜ}+ IIjI IjIjjI IjIjI IjO I xȳ}+  jII  IjI  jjIj jI jj OI ȳX+ Ijj jjI IjjII Ij OjI Ix ȳX+ jjIjI IjjjjI jjIjjOjʳ}X  IjI  IjjI  IjI jI IjIjO jI $ .&!#'),-./0 1 2 3 4 4 5667788999:::::;;;;;;;;;;;;:::::9998877 Mkؙk5Mk0kk+Mk++[++,,[,,,-[---.k.../k/2/2/M/k2k/22/M.M.k2k.22k.M.k.k.22k.M.k.k.[2.M.M/2k/[2k/M/M/[2k0Mk0222M1[22M12Mk1k22Mk22Mk2 PDZD5PZuZɕD0DZZDӽͽ+ZPDɽɈ+ͶuӽZ+uɪӽ5+uɪɽɪͪ+ɪԪԪɈ,ɪԽͽZ,Խɪͪɪ5,Ԫɪͪ,핶ӪӽԽɕ,ԪӽZ-ԽԪͽ5-ɪɽͽ-ԪԽԪɪ-Ԫӽɽu.ԪԪͽɪD.ɪԽͽ.񽪶ɪԪͪ.Խɶͽu/ӽԪɶD/ɽԽӽ./ԽɪԽɕ./ԽɽԽ͈P/ӽԽD.p/Խӽͽ../ɪԪԽP.ɪɽԽɈP.hԽɶD.p.hԽͽ..p.ԪԽP.ԽԽ͈p.襁ӽӽZp.Խɶ..p.ԶӽP.ԽԽ͈p.ɽԶZp.ӽɽ5..ԽӽP.Խ͕P/ɽԶZ.p/ӽɽ5.p/ӽͽP/ӽԽ͕P/ɽԪ5.p0񽪶ZPp0...P1uu5..P1.Pp1D..Pp2.Pp2 X  5X j 0  II I +X xjI xI Oj +OxO II OIII+ II xjOIxO+OjjOOjIjx+ xj OxOj , jOIOIII, IOOjOjOI, OOjOOxx, xOxIxxIj , x IOxIIOj- IOOxIxOI- jjIOIxx-OOxIOxxj-x IOxjIj.xIjOI .j IOIxx.IOxjOOOx.I jxxIO/I xxjxxI /jIIOIxxI+/IOjOOIxj +/IOxjIȊIO X/I IxxIxxI +}/I IOIxxI++/jOOOOIxxX.jOOjIȊIxj X.I IOxjxOj +}.I IOIxxI++}.OOOIxxX.OIȊIx }.OxIIOIOj}. IxxjxxI++}.OxOIxxX. IIx }.xjIOxOj}.xIxxjIxI+.IOIxxOX.IIx X/jIOxOj+}/IxxjII+}/IOIxxX/IIO X/jIOO +}0IOxjX}0IOxI+++X1++X1 +X}1 ++X}2+X}2 6 1,,,,,-----....////0000000/////////////00000 1 1 1 2 2 3 3a#򭪭!孪󭪪             !" a#!             !" a#!             !" a$ "   !""##                              !"kM[[kk2[[[ؙ2k2k[[[2[222 k2kk[22MM M2kkkؙ2Mk 2k[k[k222Mk 2k[kؙ22MMkk 2[k2[ؙ22Mkk 2[[22Mk 2[k[[22Mk 2[k[[kk22Mk 2kkk22Mk k[k[k2222Mk 2k2[22Mk 2k222Mk 2k2Mk 2k2k22Mk 2k[2MMk2[k22Mkk [kk.20 4 699775543 311 0/.,,򭪭+**((& &'$% # # "  !         pP5Zuɽ5ZɽDuɽZɽuuԽuɕԪp.5Zuɽ5Zɽ5uɽZɪZɽӽɕ.̉p.DZuɽu5uɽ5uɪuZɪZɽuԽ5.5... p.DZDu܈5uɽuZɽZɪuԪ..PP P.DZɽDDuɽuDɽZuɽZuu.Pp .DZ5ZuDZɽZɽuuɽZ5D...Pp .DZɽ5ZuɪDZɽZɪZuɽ..PPpp .5Du.Zuɽ5uɪZɕ.ZZ.Ppp .Zu5Zɪ5uɽuZu..Pp .5Duɽu5Z5uZZɪ..Pp .5DuZ5uu5ɽDD..Pp .DZuDuɪZDɽu..Pp DZ5Duɪ5Du....Pp .DZu.Zuɕ5..Pp .DZɽ.Zu..Pp .DZZuZ.Pp .DuZ.ZuD..Pp .DZ5.PPp.5Du..Ppp 5DuDZ..0 4 699775543 311 0/.,,+**((& &'$% # # "  !         }X IjI  jI  IjI  IjjIjI jj O}+ IjI  IjI IjI  Ijj IjjI jI Oj +̜}+ IjI IjIIIjIjj jIjI++++ }+  II  II IjjIIjI IjjIj++XX X+  jII  IjI jIIjI jj jj+X} +  II II  IjI IjjIIIjI +++X} +  jIIIj  IjI  jjjjI++XX}} +  II+jI Ij  Ijj + O +X}} + II  IIj jjIIIj++X} +  IjI II IIIj++X} +  II II IjI   ++X} +  II  Ij jI++X}   II  Ij II ++++X} + II+ Ij ++X} +  jI+II ++X} +  II II+X} +  II+ ++X} +  II+XX}+  II++X}}   II    .+0 4 699775543 311 0/.,,+**((& &'$% # # "  !         66 5 5 4 4 4 4 4 4 4 4 4 4 3 1 /-* .0 4 699776 5 5 3 3 2 1 1//--,+ + ) )  '  ' '  % %  #  #  "  ! !      2MMkk32MMk4Mk5k66788::<<f9554332100/0..-,+,*)))' (' & &%  $$!!".PPpp3.PPp4Pp5p66788::<<f9554332100/0..-,+,*)))' (' & &%  $$!!"+XX}}3+XX}4X}5}66788::<<f9554332100/0..-,+,*)))' (' & &%  $$!!" 4 4 566789:;<=f:6 5 5 4 3 3 2 1 100/..-,,+** ) (  (  '  &  &  %  $  $    !  !  "      &', 55445 5 5454 545 554545 5 54) kM%<MkMMk2MM222MMMMkk22kMk2M2222kkkMMkMM2kk22Mkkkkk22MkM222 [22235 &', 55445 5 5454 545 554545 5 54) pP%<PpPPp.PP...PPPPpp..pPp.P....pppPPpPP.pp..Pppppp..PpP... 5...35 &', 55445 5 5454 545 554545 5 54) }X%<X}XX}+XX+++XXXX}}++}X}+X++++}}}XX}XX+}}++șXȳ}}}}}++X}ȳX+++ +++35&(, 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 )<<<<<<<<<=6                     ! #%M2$2k2&MkM22M 2M2 2M22MkkM k2MM2kk2k2Mk2kkMkM2ہMM2k2k2Mkkۭۓ2k2Mۓ222 2B?                     ! #%P.$.p.&PpP..P .P. .P..PppP p.PP.Dp.p.Pp.ppPpP.PP.p.p.Ppp.p.P... .B?                     ! #%X+$+}+&X}X++X +X+ +X++X}}X }+XX+ }+}+X}+}}X}X+ȜxXX+}+}+X}}xx+}+Xx+++ +B?    &                   ! " # %?" ! " " ! " ! ! " " !""" !4 5 565     5"k2=MkMk2M MkM 2Mk2Mkkk2MM222MM2kkMMk2M22M2k2 2[2M ۓ2k2ۓM2[2  2 [22??" ! " " ! " ! ! " " !""" !4 5 565     5"p.=PpPp.P PpP .Pp.Pppp.PͭPͭ...PP.pDPP͉p.P..P.p. .5.P .p.P.5.  . 5..??" ! " " ! " ! ! " " !""" !4 5 565     5"}+=X}X}+X X}X +X}+ȜȜXȜ}}}+XX+++XX+} XX}xx+X++X+}+ ++X x+ȳ}+xX++  + ++??" " " " " " " " " " " " " " ! 5 5 566     6?          kM M2M2MMk2k2kkۭ22ۓk[2ۓ22#          pP P.P.PPp.p.pp..͉p5...#          }X X+X+XX}+}Ȝȳ+}}x++x}+x++#        6oR7)pan-0.162/pan/icons/icon_plain.png000066400000000000000000000012571475412772400170340ustar00rootroot00000000000000PNG  IHDRatEXtSoftwareAdobe ImageReadyqe<QIDATxڌSkA},HESZiV&OUJJ*,^/VF#_\ OLNMvERW(v>ع~a4&z]Kʊ rG"f&~=b쳸rnS98YwFȋkRQlj~S挖1D8vIPh}`#̧ZYj-lNbj\2tn!c9!?vw(8tM^Φɞ:bfmj[ O2>ν'z3F f 2] rN `R`\fDƇ>f|NIdv  TVv{H@ţZZJmn ri/*ˉ? pGCIENDB`pan-0.162/pan/icons/icon_prefs_actions.png000066400000000000000000000015671475412772400205740ustar00rootroot00000000000000PNG  IHDRatEXtSoftwareAdobe ImageReadyqe<IDATxڌS]HQ~}ۜߖMmiJ:[6Ĕ.*""! &(nB2҅N/RgLKŲRsV+Bζt=}# 1T ae1^,$ttȍD-|ӣo wr\v{9}ek `|XNTg-Ӏ$!#Hy>8nZ Ofq.kIENDB`pan-0.162/pan/icons/icon_prefs_applications.png000066400000000000000000000012351475412772400216120ustar00rootroot00000000000000PNG  IHDRatEXtSoftwareAdobe ImageReadyqe<?IDATxڜSn1='4 RZQү@l`  ?%BRb/@m"T,uAܺ~(p6 Ό `H5G10fvJ)Kw?cP9/J /R&V ^!`z*D.A{2,3`!ĖlD@Sn " 9!H D&a0 k=lmA2+vG' Pvl| tz1<I]P G`@DT`l NzDn3ϣې P MƖ?Ij/WWcf[J؟&H,ߡ 2b6?ڼtgh89CBG  [t0D㜆NɷWO>|Ai|pp0NG_ENpȯ6joxf~,7kMV$O\D}Po0{`,\,GȲJjU.JJUX n 6-]Hi 1MD"$-)*!?L`jh-Znua]vf{fvCHINΝ{eA Yn,`v_*)i'gFj-kDq"ey ^|[o}mdQNKM '!H""GKd$}_{Wmu ?\ɧ?rԻ4EcIa!H$E jͦ=p/0m-h4t:ܿj\h&b 51!xv+WkXlSFFhF"@O$ ;M.P {Jukch EEEM1R K%*&,)EJE+UHnfgIOcilΪW+`}yy24*rAEy \XmATF ǻzz {OF3xX:۰ " [?dTy&;C,q):|S>|q‚N:w4m$*B՗=_AeNXSZb7 _:,*!2rdj9A.+N=?.D}cReTd$^Je:Z,,K n;/ŒX}8\m0[lzshok9Q, kzt`_csno}. Y8ԻES,P87G0!ae>i3Iٱe/@L>Dš%aϛ#yVyyz`;.# Sd/L}!{ui!J7VJ1axpmouK6-(^Ua*NQX,31#j{&\HűH:6}N͚[nWHUѮEU]ԗ. bA8~w6I{bicP7淬Cmo̎'z).(->"OpMy($x7x_H\k }K}ӕs^BquNqŮE,JKk'yk͙UT6nVlPQ`99Q E$IENDB`pan-0.162/pan/icons/icon_prefs_extras.png000066400000000000000000000015011475412772400204260ustar00rootroot00000000000000PNG  IHDRatEXtSoftwareAdobe ImageReadyqe<IDATxڔSMlLQϛ74SiȠH."6bх"!XuF+H-XiXH J*Ajtf޼{nr{;\Z#ZoQW+] 0"甒v _8Y\mxVCVP_'8˂1a9RhFͣfɦK, \@CF6io[b}PaA.v=Rݝl;ۡ\%0%05Y K2l\DZ*eg]V9v,[~8꜇P% TDLڰILؘȦŎ;+7&8 xV ]lAn J|^R{Wgl*4Xd?һwφ\ J8@j}K ^;$ QyjHP=Blh3e3 HnZX>ݫ|R@Š!H0;= e Z15놶u4~]ϙzo Df*8@Xrgّ.j_p0ah2W,^A tŽʰ"}QLU] ]'^ݥǽP5=C0O8Z䞈 s &agmGvLQч%h5;PJt.&F?XCRh"5fgL˰-#GUV8eIENDB`pan-0.162/pan/icons/icon_prefs_fonts.png000066400000000000000000000012161475412772400202540ustar00rootroot00000000000000PNG  IHDRatEXtSoftwareAdobe ImageReadyqe<0IDATxڌS[kAvf/UVz)TV4kb}1$Mg6Q҈R!! (jQZf.ά 63ssYCJ 0hnSU.ƅĀeTdMcH*/IY\H=rAkr2^/8:٤z߽~X%QZm4J8)|whYf_P< ;Q%><ϿZ8IV7c<ȾYDzpPrG |mx:zpw*BU#R ǤB NfZ* AQvm,&0`\9 ka3ecQ}u4'2;8W0;Bsvb40=q.`< oStSuC|&^y08\p2MOW XB8[7އ=m(P`\.xR2 E +>i.=FK|P O솇|B}e@ Bu7)urq^7~:SUm{#~ 0Io&`IENDB`pan-0.162/pan/icons/icon_prefs_headers.png000066400000000000000000000012701475412772400205360ustar00rootroot00000000000000PNG  IHDRatEXtSoftwareAdobe ImageReadyqe<ZIDATxڜSKQ~; j,]xaIT-ERMw"jPk̭(G,Ѕ!bNv~.$}<9Γ/RZku i^ﻮkr\ 7dyG&+kzAR&?[ya BA9(HOΠ8 JAvVJ"8hE~⽙ [;H$N!h JwnG1ba )ć/u||4}6"FFYѱ1d? -+8r%XQ)$^Mi"*=lYITcg4Џ$R, ?p8J43`e*tm:3=B 67L*uڋö\ v\(|p20щR }::;w;h\9w@*. aggY@2(YqQs7Ǵ$Zҩ԰YP8-2%,8k.ٷVW+莜;4w:b|74oh\뢺;8c~x^u7itb"Eв2FIENDB`pan-0.162/pan/icons/icon_prefs_hotkeys.png000066400000000000000000000010021475412772400206020ustar00rootroot00000000000000PNG  IHDRatEXtSoftwareAdobe ImageReadyqe<IDATxb?%w"l S1 Gv:7J3L jfddd`߆1m3 ?5312031mdHVff& o0012AB-,4P` @tnó/"<xɇ3h3)sڙ3>u'p`x/Cf?Õ{> q(2hŒFų"hOS53`|.P OF 41)3>}ÐðxN?7`bOu@W,ݴ!6ː3F#0P`8r"8ts#4ղ03 .^ᅧ #RB׃ (]?0R /JstIENDB`pan-0.162/pan/icons/icon_prefs_layout.png000066400000000000000000000007741475412772400204500ustar00rootroot00000000000000PNG  IHDRatEXtSoftwareAdobe ImageReadyqe<IDATxڜSKAfSSK2 %-.݂P]CZ:EEbuP<;ۛ]]"?fgvޯyy,wYi89"se7~y-%᤬40Cf5A=Xk>dnP[D^HKq7Rpv qEfvNN!jԐ R"~fE&k*ΞF+~Gx}{GwGAC OsNBMMxe-Ry[AQW2A0ХDh}[ >A5tPT.cHcYs{͟1lHDш 칽4/Wkjn;l nRUc?TUaW7!IENDB`pan-0.162/pan/icons/icon_prefs_panes.png000066400000000000000000000014531475412772400202340ustar00rootroot00000000000000PNG  IHDRatEXtSoftwareAdobe ImageReadyqe<IDATxڄR[KTQ>LC$˄鄩 9%?(ك1 LQИTB!54t9g6Bh ^[ߺ։;DkK3]˲\^?0ǀ;Ew},R-ҽsz߱m^P*/յ}ػ*07c0cV MȺ7{PIwK1`4Cc)DJP 3qJ(3)VXf 5ЄI1@skOInLN+184'yo5%'T L0Qz@*EECw.JN[ZbȘ,邜/@=EVIENDB`pan-0.162/pan/icons/icon_prefs_upload.png000066400000000000000000000011101475412772400204000ustar00rootroot00000000000000PNG  IHDRasRGBbKGD pHYs  tIME5-IDAT8ˍjQ{dq%jh"bBlLu I$2l}%`a-!!`KN@lV1{dX_s(2=|{8RNn Ρ&|_򳡁s`U96@+U2q8ǽu@A՟f~@ @կ*({#lbwŐeGn+wVmt^Ҟ .KHa HVKG*k#.e$Lz {l5 X+\9o\o+e7أ;3>|b|!MkEl@eU_Ol +,9ɱy"w\fĉ0}i[0`nO؞yo2eo.$VҵSb+g4)6`8,aj0IENDB`pan-0.162/pan/icons/icon_read_group.png000066400000000000000000000023161475412772400200550ustar00rootroot00000000000000PNG  IHDR szzsRGBbKGD pHYs  ~tIME DzNIDATXMlTUuA;%e HQ#h TP .L7BwƈJjL"c6JZZjtw`RJ[̸Qorޛy97{_%>uw6[u5g|ҙ4SR_U35Gv& AQs1#_x{Nn1mM726v4' L l1Β" pX,F1}pCg;,`U8E!*0̳4m@YDa$FK{bHZ׼ͥ[6| PNֺ}9\4. afp3 EjR@(DU@99ZW|>D(r^h;[?Foj.GšՅldy Q} h,£̶ǚ[ arh5O~S>8M7UPp`dnt FWԑdؕ:6ɪ@& KűYB PgPnϝVʙ~#?j~V1bEeŎ`4 IxU`ϰh3Pc a/u kR.vC@*{~ɞshϝbsr.ݴp2"Nw`Jʕ10pNuWBRG*dnΞHDʻLgDy(w7YW|yh2R1yVh`Ak ]TWR2usrDQM/b-\r|xMV\^|i]9 QJ d\VX@#(sdG mq}t_pzgt:mGԖxl&X  ]K bae@RABBV`#RM 1}XtZ%;wur=~_!bf}.֟d3iM_VPWqTd``;kU~re<ކ [ִg*UFܵhj"sZ1!j@M)cFBXQ hAsT$&h/UWV4//"ioH:$!#\x JtSWo O>Ue+^F'| IHDN("Uř 4zRN 7\i g#^os?LCf( 13)S0V$ LĚ:fnRș$ak_e$9/ƈ>zX,|?LCF%c.QV_B~hf :gskr2 d@)0E>ɏzXm{4xqn$ڌQL >|;Ukn\_w*  5$"?«vd4u%;mLv(c1`tG/H_357n";5}n٪IENDB`pan-0.162/pan/icons/icon_read_more.png000066400000000000000000000015231475412772400176620ustar00rootroot00000000000000PNG  IHDR szzsRGBbKGD pHYs  ~tIME IuIDATX;LSQRy (B14Qcb4\tpQHt4  %A 1,&-AK!7}(,\sr-mcho=Xk <{oc)mo˭_ ņX6b2 M0m8"u>r|KEIDATX]lUٯ.vn? ئA#HED}UbFB"`(A}1bh!BLp†)Ttw3vݦbL&'39_=sYחƦϾ?dbD܇tiGLIs+Od hݽ昸!q  elC+n;ެ6,+ml>J ZKYmx4d5VqbOUo1_k뾥:N P_[IV:9E[P ޛ  .e]c@{oh[`PT;J0$(i]cJ"D 0>BV3 Sc)4eX X]ǒĪfO09%DBt%i(! ߀2ӕ$ Ȝ-{jRYҪ~ 4DDBeuX1I XP Ѡ틱xRYIVACanm)~KIۀ]_fz7'Q+hV6G05tO-hmL +#+EߊSjb0<$x"d2fIoNq:'ТX5Kbd2^bo<ɦgr%'!P||ټ"µ{s1֞pDMԆɚ-r|G mA_e?8x&M0p1ڴ3A:8~vx<Hťo_Ηq`-X S[iӘf.h;O!.qG};x`Nؕ0_om珑N;: _ڸ þ-ΚzB,C1n&G @FX(קk]sxбyPS8r7; \ |;@SWp(Oazm`9<σ[:#}5g$L W+-]|;]XbNRZC&_/_x7^3PD`g8a=\z:I$vZMc(RRNd(m8 p۶IRp27Y \q `y]uIENDB`pan-0.162/pan/icons/icon_read_unread_thread.png000066400000000000000000000030061475412772400215230ustar00rootroot00000000000000PNG  IHDR szzsRGBbKGD pHYs  ~tIME 2IDATX[lEein/t%4 D.\r Q@#MD5B0<ѶT,DHJҭXp0v[h+B_79s~CO|`.uRѡH!$wm}|r iy̥s6 #d\BB ok^ xiOJ9\Nv]PHM& `anhBR(H)(+)RB;oZEPNYI)շ@/:xmAY4Vʋ442Zo Űh-pϒ+Σ.Μ0%R?Ek@E]qy,Rj\gFl,ymb0#┕ xA0 0 rٴL8aӞJr~z5@& PY\b(09*kZܒ?1=<ihWI_A"\jcL mv&6F$hP}' mcHteP!qۢ6F4[L6!{lęsL: p_t]:.jbb1~vůgE8s23re11 AH(;u-<&f%esKٱ?cP44򹥤x`~ uiUc n^Ξq qC…ڰkAIXwǽC6NpnKvqϳܖwr>|}qz/qHPݓh"$˄L%˝-&D3#@/S?E7 nŴ#-3F9D&x '|]'NƮN@_9@{ln|A6x-܄??iQ@.@ gݓi]Sed9IENDB`pan-0.162/pan/icons/icon_red_flag.png000066400000000000000000000012151475412772400174660ustar00rootroot00000000000000PNG  IHDRV%sRGBbKGD pHYs  ~tIME 2` IDAT(ϥkSQ?RB;"ZPpq)hWqI'h .RB%CR]h~%i{) ~;9{Η !yۡq{Oۑ꽎l#Wy6]*=i*m&gxawfJeN5|ʸm}WKiGy<{MӐCDCqZyZNRE 6gb{=ҽS``-ñxA.vUxN;Th Ұ{PmZԾl4m h!k>t\v4 |*6໓5 _,'B!cr̼Kye mGk[va^4leA=KAg {7{f"<2X97ToW8&4jR$;@4 vvl< 8&c55e %Z/l$ lʯ嗍Rpt"c >kWmi@_ol@rۋCEeH 8t$xZ^}vfm-(%z:(-3Z^|6l : ~hf#3wd^hjp/] y~gW~,K5Q *<ؾ-o-58 AȆАX F'PZ.hSbT1~#'!`4PtnGҿ~q?r2.d Y> `#?dtSeY〉ײnrՕbĻ.bp4E._23 ;PUOǪQ|nt9|ߜA5`656b,U M;eD38pK7IENDB`pan-0.162/pan/icons/icon_search_pulldown.png000066400000000000000000000037711475412772400211250ustar00rootroot00000000000000PNG  IHDR szzsRGBbKGD pHYs  ~tIME  cyIDATXíkpU C !pI! h $K-`ũ2ն8R*)2 Qvt:D.cVԙ$r^k9f Ig}9}ַW~ï~E`1f$eWw?3zupinv 8 Gi|nXܳ? +Omٲ 6ljWlWzʼnKJ,Xpv|"@îN1ϘD[Ij;b9E']__W;9+ɛ8a})/l; ɢ+NJD?~=X2hG6ަZҜ]ZZVS2u %gs,YXلGՆWkbZ >?GXdJKj{(){KJ`Ϧ,s}>=׸Rt`NK,z6~[v8#?#lC@JF+c5ڊmnOwP\\L_"9nK/'V .},dpdž> ^6i9A~;5sǝ3{2Ԭy=S`9|[ bѲԙs 0H4-S v&Kʣalj VXEm~,=?ѿͮerBF3=Zt^DIENDB`pan-0.162/pan/icons/icon_show_signature.png000066400000000000000000000012751475412772400207720ustar00rootroot00000000000000PNG  IHDRatEXtSoftwareAdobe ImageReadyqe<_IDATxڜMHTQ38b #Mi_`fʢ}iQ@*(] lhh&b64MqNwvřQ>?;R"X5 #l&e$ EQp\W5z{X֫~K_Xv!˲3ުf.ONN208D4P΋#>^^EUгY\'I5;",+ Tl"$UE55:Cf-w67TS]]M0Sϳc=ُ1vT*%*+~R@_)_{ɓbŊ!ĶAtnng}3٦b KJRޟ-}z/_c]\աRkT СJ)RH)2oRH jjjhW^m./GWV ǼRyk -Y__t=uU"yY/ڿoa{ٳy#&%HIۆPE/lF,T+ (Bkd t}]ӤS)P蝕444" fs|G@9XR|I|5?9KlxGٻNԎdQv~[Z8Ҳv._!XR"v?/Ӄ ?Dy]q2EHR)cLpȕmrRL'GTC5?A96s@JK̃72,xE(skI?Eӥ|l*# %ZKSJ/^"fy4@sh,A$#?@:]JKPQ )ņVKPRb |>4tEwݍsk/B!䛘(UhFӧcېJQQ ָc8 f VEbzÅE/^\ X6!L'7m `QRK6|,U`n:MXbg'/8wҚg bm3ytI!TIdQRMM c_}UE}oQOL8 mX6p]d(v6'b2%y+κX`ס,؀ U`Y^*g$+_`WЀoۤ+U,Mf>I*3@}@R`Eanˣތ:c֌81[,./id ,fuO@kz׮ٹ[@`@qߊ-y!j[`E-HIENDB`pan-0.162/pan/icons/icon_sig_ok.png000066400000000000000000000033371475412772400172050ustar00rootroot00000000000000PNG  IHDR szzsRGBbKGD pHYs  tIME / r._IDATXõMLGU]=3a ؎Xp fL a JQY+XBC"编or8*V=d"e5!x xf4xXDIInUWBk B !uPsR|'N#.=BAKY_ S"ykMC/_/==+W7*?To/P5e/a^A))SB<?|sEv?ڽǏclB1]qR[i_<ÈO$|C|+ L$#k8@._ ўD 6ĈDs p>Hfdٛ;{öz7`(ɾoJ g}1BJmc!r;-¹սO@_s;CC80l\x4aHmOrr9EF?:GIۥ]tk^#mvE29E A!-!Rl@_7xƒX\#a>hҦRy_̑r]e}4_ȃ%2 (L"mp4aw46 I2hxq) (RbˆkG ObH2q4;- yoT ( U۷A>NbU;B/@ rX?0PԀwgD"6G:9Z,"\TV ;c^Bi jc9t 4"T@'F0|6ǚ %^b g.˵ j^NQ7-p=oNflT%ۦP*S`)Edv&n M8qFmoO"(1 ~rKsC00MCk,gx,lCkLD \@e%|{@uZBIt*HPLRLb'LR()K{51ץ>!B߂wxWV|:ynSKKk9rhBYc`hHm`hH;*]PUra.]lCŪIW[ZZf3"LD)mxy4Mt]q^/n6H朾vb‡]vs]]jnnqx"CCC:t>z{{ٻw/TVVRUUEQQ$ |0݃@MM{%%%Ann.'O!Q]]86|4MݍiPwQZZ*oߎoVH$ sƨPׯ_g)B?Wq8YPiRQQoH$륫FvANNTWW3004RJ\ץsa6^E2 J)RbǏ\p!b =z#Gkk+t]B)ő#Gr¶m.]ӧ|(,,dӦMB!QTTDV"p]@ ^֭[(sرCwVJ)t]G)%a DӴ R8gȗ"Ka@@:uٳ?Y۶6oތ\v ˲Vmm(++ò,db߄5gJp]qPMe{5ARWq7r>P(4M$RJ&&&Rxm0IA^bPjA?3Cv3vV`ƍgffT"J)555egt:=O;ǃ=WO59T,f~!6}hjjF,a,Zg2X$ԃ olirM1fEXJ>}iz%H| .0PJ (yn{r"cב^0Y[Je#~r?äi2غuZ֜ORJe9W &V=G4燲x>d0‹{ep8L hfBգr-ЅdW^++oY.[ f F1>>|>;SL&G- ߸q,O),###R) m6rk '{jll ǃeY#|oCggbp]ENtTJ-=-u2MTK4'AfbS^}yA<? t]7\ͭFR_uڥ?XS-\Bk$_U EkxbnF1s>`e pM~F\' 3SBl3zE`׀R*L,Uo*(E0;`1#~w$břs!e'Z{,lذصkO6mڤ۹u477s)FFFرc׮]c``&۩gD",-++`0( xXf K,0 9pX,[nUtuusN0MSiTnEtRЀrg8;4M{1L&ÌS[[.^Ȗ-[RpP(ĝ;wP\%4MjkkX TTT%HAA===b1HRH)}fp@ @*%%%ϗdM3_W)O?Au3o~{7rڟP똚R+ LLLٶ]v%rLK2M˲mn.׿GQ>UUU訔zDWOe;ELيhAS;,mzĪWaxxx/u}pڵRJ]J/B ΚTKe-pb"ʅe_'s?Z&C)UYH?wZʷ0e n+h$|pBc@)kfJjfL X`I L+鞡jf.lE4/^Sh5Xݸy&^/)Z6_/ RޟX%J5Xu%p)=ٶmA8 ݶmL$ C! Cu,"E6T$СC֝;wt*JL&\*d2j||\iU6U7nP .ϟj0\j PϞ=ӧOZX@́ݱcei&FFFݻw"Lyđ#Gt6ejjAڄmɓ'!]_`ܹS 0BX\\O?|Ç355:::b}/^{0aRGXжmoK.5v: Ǐgxxard92J);v7ok!&EDٳgctv޽S9yͶ6&''%a&ׯ_ZkN8ݻwţG[nJ}`qIBJI,̓p̙m\NeU*y}JRC}_U*UTyu]*jqqq|[/W^m كyކ %===xrDkM4E)Eoowϟo&F" C D0 [N>RJ00OPJmt2Νb||W#NǿmPJG"6P(p]R!ea'a6j)%VhzHn_ZZ҅BAhuTZ-j#"ȺQh5X?^|yCCC_y \.7q^By^#WJRJ(z޽lf׮]8C>P(|ҧRJ"ew4M<ϣ~mlٲ[RVjb߾}ElZ+,vV^)^\S(ˢX,6,|>_puuGZBja_J޶mFhy>~۶q]w]~#"ZYm8mD<}@˗/9H)%۷oo2TJ5kոzR 5\34MKJRR2wa0 DO> ?,u;` '< k+`K+UR$6u >܍=ۆIENDB`pan-0.162/pan/icons/icon_status_new_articles.png000066400000000000000000000030661475412772400220130ustar00rootroot00000000000000PNG  IHDR szzsRGBbKGD pHYs  tIME  97UB+IDATX_hT?̪!&36&u[JKlPւԇ/Q]->ؖnn*Sw,ŶjD I"a0Lx>̟$,>w{~Zk8w?<PVr^;###kk Xى'Y8@<, 0p]@ xW U'X /0Oxt:"<{vwǎ#L @$! 8uu]J eMk eI$͑fZy\|qd*|aeeExݙ3gB׮]K׬ӧO> 2::,P0rN:۷$pM.]ĭ[T$aΝaF)i,P ԝ;w>x`je׷pA @)5i+\k2kDa! / .ڵ 󘘘 8qZ[[mrDDGkM[[5kpSSN㸮[sߦhKs$Hg~ի ,L&֚ϟ 8ա4ͯD0 r~N):eIJDŋk[v*˕i}QIFomXK%ϣ¶2+PZeyMMM,--ݻ;jر@ @*"No y~LDDJim:-ọr9ڳg85oۨHqR+lt,{ց B@!p8HR'Lf{Y%D| >02 vy習fN9L&ev)1amef?UaC*"N*[ V"Ja>ݻwǕy477W9-QD 6_7zWAJMP Ǚ0 'ɿ=}pGGGZ^Np_էGTIkׯ_rQh@3c3FDDD_Y}""D}"""3?@6c#).!")]|d~*9"hG%d$޲q,ȷPj 8/ ~}U @L^<[W& kU/GcF!iWJ)]0?IENDB`pan-0.162/pan/icons/icon_status_offline.png000066400000000000000000000036311475412772400207540ustar00rootroot00000000000000PNG  IHDR szzsRGBbKGD pHYs  tIME  7Z%IDATXL?r"\  +0Q6,BHg ݖ5]7Y5m_4Vi1` 鈎Ze:z)?v-Yɓ<9y<<W?e˖%!RH3nb"! è?zw=+W)MӰ#(XVt]n:aόlN-,''Gs-)((tttj*_NKK 3gӉth"## 6rss?ylRZZJEE"##C&/_.kkk`(lnnb@ #!!A̝;4WX,O\.<nݻwMJJllldٲeTUUIӉ۴u]N@(9oijj,BBB###61M0(((`޽hngpppߏ!r7m8tgXnݯÁjBJɚ5kMMMhƙ3gعs't2sLDLL ap8D}}]<27nZQQQGvvRbZB`&ib0M2i:AAA#!8QVVVgϞ@ӴYfa :e4 Ebb"dRi$%%==iDDD,Eu<. ]'|hh0u\BulaAG=Qi7 |b!7o8TQ0M^LӜ46iǚ[:5@[GOo'20))iGH)Dx^TUX,Hl( \( 8q;ط n~wNb > AIITTUvK`8#L{Ul/07%Oγ+ 7HQ Coox f!$=='EZZ#zI{>.hNW~?%%%G"ٳgInRJ4ĞMŠ?g~]cJJ~7"Νf7B83NM`h]AOOr``ābccyRyy}𰏪*3/-Ύ; G"ץjK0a<WhdQ]SEaƬT>ݽCZ@Ӆ߸q/^-t[oUܿ|9ii&5=]'EHOwo"AL}YdeeUsلExI.M]® /?Bӯ܆ۖI$W\^~bbc-ϑYuI~7NQ߽1߳X4>IENDB`pan-0.162/pan/icons/icon_status_online.png000066400000000000000000000033671475412772400206240ustar00rootroot00000000000000PNG  IHDR szzsRGBbKGD pHYs  tIME  86;^wIDATXlS?~ӄ,C6~4 Ќn ZJ"!Eބ4-AЊ-6@~KC 2$m& ( 2)dl&Iw=;?&ZiҤHG:s|=>O]ԅ}9'&&6BB)}3emeKB8-jhhOwt@)a\p8혦4M,ˊ'Ƀitttk׮ժ~~zU__͛7F۶mqFY|9EEEzS񐝝MZZ4roo_gE`ժUO/XMȠ&(..V [ZZZ --M8ۋf3g .+WDJ xY# 1<4gtD, 4l]/$fY| w'NsJ999O:0RJƐRadff"@ӴYܻ'>5/!FFݹYh[@IJ'''U(J)5>>>eǹ-hvNs#i׾~Dbxy#O: J'lb1躞y L9ּ@ݫGYYSsgaFp8Zx1ABcccj(tiIմ[nhh3piab 7{<(XL,[L/RJũQ446rK~r\TTTN[+O| >FЬ=(`0p*OcR-`ttX,JUeYy~.HmgӦ|xp8us%L kjN"?H44y&۹5LHqΟ?e1q:*pYadxN/ٸa}‡Řt^dpp@vͲmRJ>%DJJRx`Կ t]͛xW 1DNI7l^zT#T\`>aKUΨ:[{UU՗U;zՔ n>cIԴ4>MiYܾ=xO܋@v S vL`|6 z$M#Wzx~ȯ۳1MݶVV?V |_MX7^r;o^Wv7?w'I&==l ɓ|IENDB`pan-0.162/pan/icons/icon_status_queue_empty.png000066400000000000000000000032501475412772400216710ustar00rootroot00000000000000PNG  IHDR szzsRGBbKGD pHYs  tIME  e8 (IDATXaLTw潙 Pq"( n˚H#fi݄_6MjScdS5d]mM4Eln Rc0MjRRwЖ70 q@n/$'9{o=wS |xpR P"pسEJ\׽1X8v1Mm~:6M׋8~uT<} b,[l1ZiooΝ;ٳgcܸq!mF{{;UUU_P(DaaSEk`޽? tvv2<;;xm'q><SZ3^Uw7X?_8y%ib1LNN^N۶Yy >5smjۡ.]be$~;tXfM̌XDD씶U2 B̹"}f7նCLuSou#hmm}D" $ɤ fAzn~UF]0). R/x܈L|l&&&,%ݲ,JJJ0Ezj;_ħc\l޼Z[[ }d2ܜEn4""Zk00sru^}?;cֿ%UUUqzj`#pxT'X %eJ){5K1+?"hi)**R bD"Qp5RJXHkjδ•+U<>ͭ[PJ UΝMMZs3gݏRn߾4M|>D7o<DMQDy(f-JKK}ۦeNb,ʢYggP[RkֈP^p]wƍ+**vkZ%JΙ3n[/_lnnym׮4۝\8}WEEE̸iq}>_?S@ƿ{E,K,ۖ_^d*`%ָ< ڀܛIL.1߻'gHW7OLMOnD~s>5g$|7ܷIENDB`pan-0.162/pan/icons/icon_tabbar.png000066400000000000000000000031201475412772400171530ustar00rootroot00000000000000PNG  IHDR szzsRGBbKGD pHYs  tIME $ԿIDATXímGgYeE~14ƗJ4hLjLm1~ Dck1k-M}+KmW@YؚRjmܽ}fr^I&79gFh7#mfCG5\j]S1Y *\e+ y|0k'RrNA"qJ[SbgEKһs[ΌG92v}}Y_3CU1;n4`ހk Kxvb" ,uXsM122Ph˰ /+/1R1b  sp]qbyt}t "   sp[n`xrzr"   spWk\snwn!             compose     4`4t4 {  z{p~uSKk`ӏ k`Џk`ЏS`҇ k`҇ |[{KoXSKa p p~  p~ p p {WSK        Lflag     666E(62i ?Moڮ AVARsƪ%0EFEoصj]`rtҳdWK ܯ]QK }KK KK K EE.,?@s IM] HcPbӻ16QVTć{jzyui 俾{oi Ȕii ii iEE37GK| R[l No^q<:[eaҡtЛ ̕i Өi 䃃i iiiiiE0:::: e:: e :g::: : : :: :: :: ::0pan-0.162/pan/pan.cfg000066400000000000000000001427571475412772400143520ustar00rootroot00000000000000# Doxyfile 1.4.4 # This file describes the settings to be used by the documentation system # doxygen (www.doxygen.org) for a project # # All text after a hash (#) is considered a comment and will be ignored # The format is: # TAG = value [value, ...] # For lists items can also be appended using: # TAG += value [value, ...] # Values that contain spaces should be placed between quotes (" ") #--------------------------------------------------------------------------- # Project related configuration options #--------------------------------------------------------------------------- # The PROJECT_NAME tag is a single word (or a sequence of words surrounded # by quotes) that should identify the project. PROJECT_NAME = Pan # The PROJECT_NUMBER tag can be used to enter a project or revision number. # This could be handy for archiving the generated documentation or # if some version control system is used. PROJECT_NUMBER = 0.125 # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) # base path where the generated documentation will be put. # If a relative path is entered, it will be relative to the location # where doxygen was started. If left blank the current directory will be used. OUTPUT_DIRECTORY = # If the CREATE_SUBDIRS tag is set to YES, then doxygen will create # 4096 sub-directories (in 2 levels) under the output directory of each output # format and will distribute the generated files over these directories. # Enabling this option can be useful when feeding doxygen a huge amount of # source files, where putting all generated files in the same directory would # otherwise cause performance problems for the file system. CREATE_SUBDIRS = NO # The OUTPUT_LANGUAGE tag is used to specify the language in which all # documentation generated by doxygen is written. Doxygen will use this # information to generate all constant output in the proper language. # The default language is English, other supported languages are: # Brazilian, Catalan, Chinese, Chinese-Traditional, Croatian, Czech, Danish, # Dutch, Finnish, French, German, Greek, Hungarian, Italian, Japanese, # Japanese-en (Japanese with English messages), Korean, Korean-en, Norwegian, # Polish, Portuguese, Romanian, Russian, Serbian, Slovak, Slovene, Spanish, # Swedish, and Ukrainian. OUTPUT_LANGUAGE = English # This tag can be used to specify the encoding used in the generated output. # The encoding is not always determined by the language that is chosen, # but also whether or not the output is meant for Windows or non-Windows users. # In case there is a difference, setting the USE_WINDOWS_ENCODING tag to YES # forces the Windows encoding (this is the default for the Windows binary), # whereas setting the tag to NO uses a Unix-style encoding (the default for # all platforms other than Windows). USE_WINDOWS_ENCODING = NO # If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will # include brief member descriptions after the members that are listed in # the file and class documentation (similar to JavaDoc). # Set to NO to disable this. BRIEF_MEMBER_DESC = YES # If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend # the brief description of a member or function before the detailed description. # Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the # brief descriptions will be completely suppressed. REPEAT_BRIEF = YES # This tag implements a quasi-intelligent brief description abbreviator # that is used to form the text in various listings. Each string # in this list, if found as the leading text of the brief description, will be # stripped from the text and the result after processing the whole list, is # used as the annotated text. Otherwise, the brief description is used as-is. # If left blank, the following values are used ("$name" is automatically # replaced with the name of the entity): "The $name class" "The $name widget" # "The $name file" "is" "provides" "specifies" "contains" # "represents" "a" "an" "the" ABBREVIATE_BRIEF = # If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then # Doxygen will generate a detailed section even if there is only a brief # description. ALWAYS_DETAILED_SEC = NO # If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all # inherited members of a class in the documentation of that class as if those # members were ordinary class members. Constructors, destructors and assignment # operators of the base classes will not be shown. INLINE_INHERITED_MEMB = NO # If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full # path before files name in the file list and in the header files. If set # to NO the shortest path that makes the file name unique will be used. FULL_PATH_NAMES = YES # If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag # can be used to strip a user-defined part of the path. Stripping is # only done if one of the specified strings matches the left-hand part of # the path. The tag can be used to show relative paths in the file list. # If left blank the directory from which doxygen is run is used as the # path to strip. STRIP_FROM_PATH = # The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of # the path mentioned in the documentation of a class, which tells # the reader which header file to include in order to use a class. # If left blank only the name of the header file containing the class # definition is used. Otherwise one should specify the include paths that # are normally passed to the compiler using the -I flag. STRIP_FROM_INC_PATH = # If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter # (but less readable) file names. This can be useful is your file systems # doesn't support long names like on DOS, Mac, or CD-ROM. SHORT_NAMES = NO # If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen # will interpret the first line (until the first dot) of a JavaDoc-style # comment as the brief description. If set to NO, the JavaDoc # comments will behave just like the Qt-style comments (thus requiring an # explicit @brief command for a brief description. JAVADOC_AUTOBRIEF = YES # The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen # treat a multi-line C++ special comment block (i.e. a block of //! or /// # comments) as a brief description. This used to be the default behaviour. # The new default is to treat a multi-line C++ comment block as a detailed # description. Set this tag to YES if you prefer the old behaviour instead. MULTILINE_CPP_IS_BRIEF = NO # If the DETAILS_AT_TOP tag is set to YES then Doxygen # will output the detailed description near the top, like JavaDoc. # If set to NO, the detailed description appears after the member # documentation. DETAILS_AT_TOP = NO # If the INHERIT_DOCS tag is set to YES (the default) then an undocumented # member inherits the documentation from any documented member that it # re-implements. INHERIT_DOCS = YES # If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC # tag is set to YES, then doxygen will reuse the documentation of the first # member in the group (if any) for the other members of the group. By default # all members of a group must be documented explicitly. DISTRIBUTE_GROUP_DOC = NO # If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce # a new page for each member. If set to NO, the documentation of a member will # be part of the file/class/namespace that contains it. SEPARATE_MEMBER_PAGES = NO # The TAB_SIZE tag can be used to set the number of spaces in a tab. # Doxygen uses this value to replace tabs by spaces in code fragments. TAB_SIZE = 8 # This tag can be used to specify a number of aliases that acts # as commands in the documentation. An alias has the form "name=value". # For example adding "sideeffect=\par Side Effects:\n" will allow you to # put the command \sideeffect (or @sideeffect) in the documentation, which # will result in a user-defined paragraph with heading "Side Effects:". # You can put \n's in the value part of an alias to insert newlines. ALIASES = # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C # sources only. Doxygen will then generate output that is more tailored for C. # For instance, some of the names that are used will be different. The list # of all members will be omitted, etc. OPTIMIZE_OUTPUT_FOR_C = NO # Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java sources # only. Doxygen will then generate output that is more tailored for Java. # For instance, namespaces will be presented as packages, qualified scopes # will look different, etc. OPTIMIZE_OUTPUT_JAVA = NO # Set the SUBGROUPING tag to YES (the default) to allow class member groups of # the same type (for instance a group of public functions) to be put as a # subgroup of that type (e.g. under the Public Functions section). Set it to # NO to prevent subgrouping. Alternatively, this can be done per class using # the \nosubgrouping command. SUBGROUPING = YES #--------------------------------------------------------------------------- # Build related configuration options #--------------------------------------------------------------------------- # If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in # documentation are documented, even if no documentation was available. # Private class members and static file members will be hidden unless # the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES EXTRACT_ALL = NO # If the EXTRACT_PRIVATE tag is set to YES all private members of a class # will be included in the documentation. EXTRACT_PRIVATE = NO # If the EXTRACT_STATIC tag is set to YES all static members of a file # will be included in the documentation. EXTRACT_STATIC = NO # If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) # defined locally in source files will be included in the documentation. # If set to NO only classes defined in header files are included. EXTRACT_LOCAL_CLASSES = YES # This flag is only useful for Objective-C code. When set to YES local # methods, which are defined in the implementation section but not in # the interface are included in the documentation. # If set to NO (the default) only methods in the interface are included. EXTRACT_LOCAL_METHODS = NO # If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all # undocumented members of documented classes, files or namespaces. # If set to NO (the default) these members will be included in the # various overviews, but no documentation section is generated. # This option has no effect if EXTRACT_ALL is enabled. HIDE_UNDOC_MEMBERS = NO # If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all # undocumented classes that are normally visible in the class hierarchy. # If set to NO (the default) these classes will be included in the various # overviews. This option has no effect if EXTRACT_ALL is enabled. HIDE_UNDOC_CLASSES = NO # If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all # friend (class|struct|union) declarations. # If set to NO (the default) these declarations will be included in the # documentation. HIDE_FRIEND_COMPOUNDS = NO # If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any # documentation blocks found inside the body of a function. # If set to NO (the default) these blocks will be appended to the # function's detailed documentation block. HIDE_IN_BODY_DOCS = NO # The INTERNAL_DOCS tag determines if documentation # that is typed after a \internal command is included. If the tag is set # to NO (the default) then the documentation will be excluded. # Set it to YES to include the internal documentation. INTERNAL_DOCS = NO # If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate # file names in lower-case letters. If set to YES upper-case letters are also # allowed. This is useful if you have classes or files whose names only differ # in case and if your file system supports case sensitive file names. Windows # and Mac users are advised to set this option to NO. CASE_SENSE_NAMES = YES # If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen # will show members with their full class and namespace scopes in the # documentation. If set to YES the scope will be hidden. HIDE_SCOPE_NAMES = NO # If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen # will put a list of the files that are included by a file in the documentation # of that file. SHOW_INCLUDE_FILES = YES # If the INLINE_INFO tag is set to YES (the default) then a tag [inline] # is inserted in the documentation for inline members. INLINE_INFO = YES # If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen # will sort the (detailed) documentation of file and class members # alphabetically by member name. If set to NO the members will appear in # declaration order. SORT_MEMBER_DOCS = YES # If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the # brief documentation of file, namespace and class members alphabetically # by member name. If set to NO (the default) the members will appear in # declaration order. SORT_BRIEF_DOCS = NO # If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be # sorted by fully-qualified names, including namespaces. If set to # NO (the default), the class list will be sorted only by class name, # not including the namespace part. # Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. # Note: This option applies only to the class list, not to the # alphabetical list. SORT_BY_SCOPE_NAME = NO # The GENERATE_TODOLIST tag can be used to enable (YES) or # disable (NO) the todo list. This list is created by putting \todo # commands in the documentation. GENERATE_TODOLIST = YES # The GENERATE_TESTLIST tag can be used to enable (YES) or # disable (NO) the test list. This list is created by putting \test # commands in the documentation. GENERATE_TESTLIST = YES # The GENERATE_BUGLIST tag can be used to enable (YES) or # disable (NO) the bug list. This list is created by putting \bug # commands in the documentation. GENERATE_BUGLIST = YES # The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or # disable (NO) the deprecated list. This list is created by putting # \deprecated commands in the documentation. GENERATE_DEPRECATEDLIST= YES # The ENABLED_SECTIONS tag can be used to enable conditional # documentation sections, marked by \if sectionname ... \endif. ENABLED_SECTIONS = # The MAX_INITIALIZER_LINES tag determines the maximum number of lines # the initial value of a variable or define consists of for it to appear in # the documentation. If the initializer consists of more lines than specified # here it will be hidden. Use a value of 0 to hide initializers completely. # The appearance of the initializer of individual variables and defines in the # documentation can be controlled using \showinitializer or \hideinitializer # command in the documentation regardless of this setting. MAX_INITIALIZER_LINES = 30 # Set the SHOW_USED_FILES tag to NO to disable the list of files generated # at the bottom of the documentation of classes and structs. If set to YES the # list will mention the files that were used to generate the documentation. SHOW_USED_FILES = YES # If the sources in your project are distributed over multiple directories # then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy # in the documentation. The default is YES. SHOW_DIRECTORIES = YES # The FILE_VERSION_FILTER tag can be used to specify a program or script that # doxygen should invoke to get the current version for each file (typically from the # version control system). Doxygen will invoke the program by executing (via # popen()) the command , where is the value of # the FILE_VERSION_FILTER tag, and is the name of an input file # provided by doxygen. Whatever the progam writes to standard output # is used as the file version. See the manual for examples. FILE_VERSION_FILTER = #--------------------------------------------------------------------------- # configuration options related to warning and progress messages #--------------------------------------------------------------------------- # The QUIET tag can be used to turn on/off the messages that are generated # by doxygen. Possible values are YES and NO. If left blank NO is used. QUIET = NO # The WARNINGS tag can be used to turn on/off the warning messages that are # generated by doxygen. Possible values are YES and NO. If left blank # NO is used. WARNINGS = YES # If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings # for undocumented members. If EXTRACT_ALL is set to YES then this flag will # automatically be disabled. WARN_IF_UNDOCUMENTED = YES # If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for # potential errors in the documentation, such as not documenting some # parameters in a documented function, or documenting parameters that # don't exist or using markup commands wrongly. WARN_IF_DOC_ERROR = YES # This WARN_NO_PARAMDOC option can be abled to get warnings for # functions that are documented, but have no documentation for their parameters # or return value. If set to NO (the default) doxygen will only warn about # wrong or incomplete parameter documentation, but not about the absence of # documentation. WARN_NO_PARAMDOC = NO # The WARN_FORMAT tag determines the format of the warning messages that # doxygen can produce. The string should contain the $file, $line, and $text # tags, which will be replaced by the file and line number from which the # warning originated and the warning text. Optionally the format may contain # $version, which will be replaced by the version of the file (if it could # be obtained via FILE_VERSION_FILTER) WARN_FORMAT = "$file:$line: $text" # The WARN_LOGFILE tag can be used to specify a file to which warning # and error messages should be written. If left blank the output is written # to stderr. WARN_LOGFILE = #--------------------------------------------------------------------------- # configuration options related to the input files #--------------------------------------------------------------------------- # The INPUT tag can be used to specify the files and/or directories that contain # documented source files. You may enter file names like "myfile.cpp" or # directories like "/usr/src/myproject". Separate the files or directories # with spaces. INPUT = . # If the value of the INPUT tag contains directories, you can use the # FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp # and *.h) to filter out the source-files in the directories. If left # blank the following patterns are tested: # *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx # *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm FILE_PATTERNS = *.cc *.h # The RECURSIVE tag can be used to turn specify whether or not subdirectories # should be searched for input files as well. Possible values are YES and NO. # If left blank NO is used. RECURSIVE = YES # The EXCLUDE tag can be used to specify files and/or directories that should # excluded from the INPUT source files. This way you can easily exclude a # subdirectory from a directory tree whose root is specified with the INPUT tag. EXCLUDE = # The EXCLUDE_SYMLINKS tag can be used select whether or not files or # directories that are symbolic links (a Unix filesystem feature) are excluded # from the input. EXCLUDE_SYMLINKS = NO # If the value of the INPUT tag contains directories, you can use the # EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude # certain files from those directories. Note that the wildcards are matched # against the file with absolute path, so to exclude all test directories # for example use the pattern */test/* EXCLUDE_PATTERNS = *-test.cc pan-pixbufs*h # The EXAMPLE_PATH tag can be used to specify one or more files or # directories that contain example code fragments that are included (see # the \include command). EXAMPLE_PATH = # If the value of the EXAMPLE_PATH tag contains directories, you can use the # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp # and *.h) to filter out the source-files in the directories. If left # blank all files are included. EXAMPLE_PATTERNS = # If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be # searched for input files to be used with the \include or \dontinclude # commands irrespective of the value of the RECURSIVE tag. # Possible values are YES and NO. If left blank NO is used. EXAMPLE_RECURSIVE = NO # The IMAGE_PATH tag can be used to specify one or more files or # directories that contain image that are included in the documentation (see # the \image command). IMAGE_PATH = # The INPUT_FILTER tag can be used to specify a program that doxygen should # invoke to filter for each input file. Doxygen will invoke the filter program # by executing (via popen()) the command , where # is the value of the INPUT_FILTER tag, and is the name of an # input file. Doxygen will then use the output that the filter program writes # to standard output. If FILTER_PATTERNS is specified, this tag will be # ignored. INPUT_FILTER = # The FILTER_PATTERNS tag can be used to specify filters on a per file pattern # basis. Doxygen will compare the file name with each pattern and apply the # filter if there is a match. The filters are a list of the form: # pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further # info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER # is applied to all files. FILTER_PATTERNS = # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using # INPUT_FILTER) will be used to filter the input files when producing source # files to browse (i.e. when SOURCE_BROWSER is set to YES). FILTER_SOURCE_FILES = NO #--------------------------------------------------------------------------- # configuration options related to source browsing #--------------------------------------------------------------------------- # If the SOURCE_BROWSER tag is set to YES then a list of source files will # be generated. Documented entities will be cross-referenced with these sources. # Note: To get rid of all source code in the generated output, make sure also # VERBATIM_HEADERS is set to NO. SOURCE_BROWSER = YES # Setting the INLINE_SOURCES tag to YES will include the body # of functions and classes directly in the documentation. INLINE_SOURCES = YES # Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct # doxygen to hide any special comment blocks from generated source code # fragments. Normal C and C++ comments will always remain visible. STRIP_CODE_COMMENTS = YES # If the REFERENCED_BY_RELATION tag is set to YES (the default) # then for each documented function all documented # functions referencing it will be listed. REFERENCED_BY_RELATION = YES # If the REFERENCES_RELATION tag is set to YES (the default) # then for each documented function all documented entities # called/used by that function will be listed. REFERENCES_RELATION = YES # If the USE_HTAGS tag is set to YES then the references to source code # will point to the HTML generated by the htags(1) tool instead of doxygen # built-in source browser. The htags tool is part of GNU's global source # tagging system (see http://www.gnu.org/software/global/global.html). You # will need version 4.8.6 or higher. USE_HTAGS = NO # If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen # will generate a verbatim copy of the header file for each class for # which an include is specified. Set to NO to disable this. VERBATIM_HEADERS = YES #--------------------------------------------------------------------------- # configuration options related to the alphabetical class index #--------------------------------------------------------------------------- # If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index # of all compounds will be generated. Enable this if the project # contains a lot of classes, structs, unions or interfaces. ALPHABETICAL_INDEX = NO # If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then # the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns # in which this list will be split (can be a number in the range [1..20]) COLS_IN_ALPHA_INDEX = 5 # In case all classes in a project start with a common prefix, all # classes will be put under the same header in the alphabetical index. # The IGNORE_PREFIX tag can be used to specify one or more prefixes that # should be ignored while generating the index headers. IGNORE_PREFIX = #--------------------------------------------------------------------------- # configuration options related to the HTML output #--------------------------------------------------------------------------- # If the GENERATE_HTML tag is set to YES (the default) Doxygen will # generate HTML output. GENERATE_HTML = YES # The HTML_OUTPUT tag is used to specify where the HTML docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `html' will be used as the default path. HTML_OUTPUT = html # The HTML_FILE_EXTENSION tag can be used to specify the file extension for # each generated HTML page (for example: .htm,.php,.asp). If it is left blank # doxygen will generate files with .html extension. HTML_FILE_EXTENSION = .html # The HTML_HEADER tag can be used to specify a personal HTML header for # each generated HTML page. If it is left blank doxygen will generate a # standard header. HTML_HEADER = # The HTML_FOOTER tag can be used to specify a personal HTML footer for # each generated HTML page. If it is left blank doxygen will generate a # standard footer. HTML_FOOTER = # The HTML_STYLESHEET tag can be used to specify a user-defined cascading # style sheet that is used by each HTML page. It can be used to # fine-tune the look of the HTML output. If the tag is left blank doxygen # will generate a default style sheet. Note that doxygen will try to copy # the style sheet file to the HTML output directory, so don't put your own # stylesheet in the HTML output directory as well, or it will be erased! HTML_STYLESHEET = stylesheet.css # If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, # files or namespaces will be aligned in HTML using tables. If set to # NO a bullet list will be used. HTML_ALIGN_MEMBERS = YES # If the GENERATE_HTMLHELP tag is set to YES, additional index files # will be generated that can be used as input for tools like the # Microsoft HTML help workshop to generate a compressed HTML help file (.chm) # of the generated HTML documentation. GENERATE_HTMLHELP = NO # If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can # be used to specify the file name of the resulting .chm file. You # can add a path in front of the file if the result should not be # written to the html output directory. CHM_FILE = # If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can # be used to specify the location (absolute path including file name) of # the HTML help compiler (hhc.exe). If non-empty doxygen will try to run # the HTML help compiler on the generated index.hhp. HHC_LOCATION = # If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag # controls if a separate .chi index file is generated (YES) or that # it should be included in the master .chm file (NO). GENERATE_CHI = NO # If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag # controls whether a binary table of contents is generated (YES) or a # normal table of contents (NO) in the .chm file. BINARY_TOC = NO # The TOC_EXPAND flag can be set to YES to add extra items for group members # to the contents of the HTML help documentation and to the tree view. TOC_EXPAND = NO # The DISABLE_INDEX tag can be used to turn on/off the condensed index at # top of each HTML page. The value NO (the default) enables the index and # the value YES disables it. DISABLE_INDEX = NO # This tag can be used to set the number of enum values (range [1..20]) # that doxygen will group on one line in the generated HTML documentation. ENUM_VALUES_PER_LINE = 4 # If the GENERATE_TREEVIEW tag is set to YES, a side panel will be # generated containing a tree-like index structure (just like the one that # is generated for HTML Help). For this to work a browser that supports # JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+, # Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are # probably better off using the HTML help feature. GENERATE_TREEVIEW = NO # If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be # used to set the initial width (in pixels) of the frame in which the tree # is shown. TREEVIEW_WIDTH = 250 #--------------------------------------------------------------------------- # configuration options related to the LaTeX output #--------------------------------------------------------------------------- # If the GENERATE_LATEX tag is set to YES (the default) Doxygen will # generate Latex output. GENERATE_LATEX = YES # The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `latex' will be used as the default path. LATEX_OUTPUT = latex # The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be # invoked. If left blank `latex' will be used as the default command name. LATEX_CMD_NAME = latex # The MAKEINDEX_CMD_NAME tag can be used to specify the command name to # generate index for LaTeX. If left blank `makeindex' will be used as the # default command name. MAKEINDEX_CMD_NAME = makeindex # If the COMPACT_LATEX tag is set to YES Doxygen generates more compact # LaTeX documents. This may be useful for small projects and may help to # save some trees in general. COMPACT_LATEX = NO # The PAPER_TYPE tag can be used to set the paper type that is used # by the printer. Possible values are: a4, a4wide, letter, legal and # executive. If left blank a4wide will be used. PAPER_TYPE = a4wide # The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX # packages that should be included in the LaTeX output. EXTRA_PACKAGES = # The LATEX_HEADER tag can be used to specify a personal LaTeX header for # the generated latex document. The header should contain everything until # the first chapter. If it is left blank doxygen will generate a # standard header. Notice: only use this tag if you know what you are doing! LATEX_HEADER = # If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated # is prepared for conversion to pdf (using ps2pdf). The pdf file will # contain links (just like the HTML output) instead of page references # This makes the output suitable for online browsing using a pdf viewer. PDF_HYPERLINKS = NO # If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of # plain latex in the generated Makefile. Set this option to YES to get a # higher quality PDF documentation. USE_PDFLATEX = NO # If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. # command to the generated LaTeX files. This will instruct LaTeX to keep # running if errors occur, instead of asking the user for help. # This option is also used when generating formulas in HTML. LATEX_BATCHMODE = NO # If LATEX_HIDE_INDICES is set to YES then doxygen will not # include the index chapters (such as File Index, Compound Index, etc.) # in the output. LATEX_HIDE_INDICES = NO #--------------------------------------------------------------------------- # configuration options related to the RTF output #--------------------------------------------------------------------------- # If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output # The RTF output is optimized for Word 97 and may not look very pretty with # other RTF readers or editors. GENERATE_RTF = NO # The RTF_OUTPUT tag is used to specify where the RTF docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `rtf' will be used as the default path. RTF_OUTPUT = rtf # If the COMPACT_RTF tag is set to YES Doxygen generates more compact # RTF documents. This may be useful for small projects and may help to # save some trees in general. COMPACT_RTF = NO # If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated # will contain hyperlink fields. The RTF file will # contain links (just like the HTML output) instead of page references. # This makes the output suitable for online browsing using WORD or other # programs which support those fields. # Note: wordpad (write) and others do not support links. RTF_HYPERLINKS = NO # Load stylesheet definitions from file. Syntax is similar to doxygen's # config file, i.e. a series of assignments. You only have to provide # replacements, missing definitions are set to their default value. RTF_STYLESHEET_FILE = # Set optional variables used in the generation of an rtf document. # Syntax is similar to doxygen's config file. RTF_EXTENSIONS_FILE = #--------------------------------------------------------------------------- # configuration options related to the man page output #--------------------------------------------------------------------------- # If the GENERATE_MAN tag is set to YES (the default) Doxygen will # generate man pages GENERATE_MAN = NO # The MAN_OUTPUT tag is used to specify where the man pages will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `man' will be used as the default path. MAN_OUTPUT = man # The MAN_EXTENSION tag determines the extension that is added to # the generated man pages (default is the subroutine's section .3) MAN_EXTENSION = .3 # If the MAN_LINKS tag is set to YES and Doxygen generates man output, # then it will generate one additional man file for each entity # documented in the real man page(s). These additional files # only source the real man page, but without them the man command # would be unable to find the correct page. The default is NO. MAN_LINKS = NO #--------------------------------------------------------------------------- # configuration options related to the XML output #--------------------------------------------------------------------------- # If the GENERATE_XML tag is set to YES Doxygen will # generate an XML file that captures the structure of # the code including all documentation. GENERATE_XML = NO # The XML_OUTPUT tag is used to specify where the XML pages will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `xml' will be used as the default path. XML_OUTPUT = xml # The XML_SCHEMA tag can be used to specify an XML schema, # which can be used by a validating XML parser to check the # syntax of the XML files. XML_SCHEMA = # The XML_DTD tag can be used to specify an XML DTD, # which can be used by a validating XML parser to check the # syntax of the XML files. XML_DTD = # If the XML_PROGRAMLISTING tag is set to YES Doxygen will # dump the program listings (including syntax highlighting # and cross-referencing information) to the XML output. Note that # enabling this will significantly increase the size of the XML output. XML_PROGRAMLISTING = YES #--------------------------------------------------------------------------- # configuration options for the AutoGen Definitions output #--------------------------------------------------------------------------- # If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will # generate an AutoGen Definitions (see autogen.sf.net) file # that captures the structure of the code including all # documentation. Note that this feature is still experimental # and incomplete at the moment. GENERATE_AUTOGEN_DEF = NO #--------------------------------------------------------------------------- # configuration options related to the Perl module output #--------------------------------------------------------------------------- # If the GENERATE_PERLMOD tag is set to YES Doxygen will # generate a Perl module file that captures the structure of # the code including all documentation. Note that this # feature is still experimental and incomplete at the # moment. GENERATE_PERLMOD = NO # If the PERLMOD_LATEX tag is set to YES Doxygen will generate # the necessary Makefile rules, Perl scripts and LaTeX code to be able # to generate PDF and DVI output from the Perl module output. PERLMOD_LATEX = NO # If the PERLMOD_PRETTY tag is set to YES the Perl module output will be # nicely formatted so it can be parsed by a human reader. This is useful # if you want to understand what is going on. On the other hand, if this # tag is set to NO the size of the Perl module output will be much smaller # and Perl will parse it just the same. PERLMOD_PRETTY = YES # The names of the make variables in the generated doxyrules.make file # are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. # This is useful so different doxyrules.make files included by the same # Makefile don't overwrite each other's variables. PERLMOD_MAKEVAR_PREFIX = #--------------------------------------------------------------------------- # Configuration options related to the preprocessor #--------------------------------------------------------------------------- # If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will # evaluate all C-preprocessor directives found in the sources and include # files. ENABLE_PREPROCESSING = YES # If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro # names in the source code. If set to NO (the default) only conditional # compilation will be performed. Macro expansion can be done in a controlled # way by setting EXPAND_ONLY_PREDEF to YES. MACRO_EXPANSION = NO # If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES # then the macro expansion is limited to the macros specified with the # PREDEFINED and EXPAND_AS_PREDEFINED tags. EXPAND_ONLY_PREDEF = NO # If the SEARCH_INCLUDES tag is set to YES (the default) the includes files # in the INCLUDE_PATH (see below) will be search if a #include is found. SEARCH_INCLUDES = YES # The INCLUDE_PATH tag can be used to specify one or more directories that # contain include files that are not input files but should be processed by # the preprocessor. INCLUDE_PATH = # You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard # patterns (like *.h and *.hpp) to filter out the header-files in the # directories. If left blank, the patterns specified with FILE_PATTERNS will # be used. INCLUDE_FILE_PATTERNS = # The PREDEFINED tag can be used to specify one or more macro names that # are defined before the preprocessor is started (similar to the -D option of # gcc). The argument of the tag is a list of macros of the form: name # or name=definition (no spaces). If the definition and the = are # omitted =1 is assumed. To prevent a macro definition from being # undefined via #undef or recursively expanded use the := operator # instead of the = operator. PREDEFINED = # If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then # this tag can be used to specify a list of macro names that should be expanded. # The macro definition that is found in the sources will be used. # Use the PREDEFINED tag if you want to use a different macro definition. EXPAND_AS_DEFINED = # If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then # doxygen's preprocessor will remove all function-like macros that are alone # on a line, have an all uppercase name, and do not end with a semicolon. Such # function macros are typically used for boiler-plate code, and will confuse # the parser if not removed. SKIP_FUNCTION_MACROS = YES #--------------------------------------------------------------------------- # Configuration::additions related to external references #--------------------------------------------------------------------------- # The TAGFILES option can be used to specify one or more tagfiles. # Optionally an initial location of the external documentation # can be added for each tagfile. The format of a tag file without # this location is as follows: # TAGFILES = file1 file2 ... # Adding location for the tag files is done as follows: # TAGFILES = file1=loc1 "file2 = loc2" ... # where "loc1" and "loc2" can be relative or absolute paths or # URLs. If a location is present for each tag, the installdox tool # does not have to be run to correct the links. # Note that each tag file must have a unique name # (where the name does NOT include the path) # If a tag file is not located in the directory in which doxygen # is run, you must also specify the path to the tagfile here. TAGFILES = # When a file name is specified after GENERATE_TAGFILE, doxygen will create # a tag file that is based on the input files it reads. GENERATE_TAGFILE = # If the ALLEXTERNALS tag is set to YES all external classes will be listed # in the class index. If set to NO only the inherited external classes # will be listed. ALLEXTERNALS = NO # If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed # in the modules index. If set to NO, only the current project's groups will # be listed. EXTERNAL_GROUPS = YES # The PERL_PATH should be the absolute path and name of the perl script # interpreter (i.e. the result of `which perl'). PERL_PATH = /usr/bin/perl #--------------------------------------------------------------------------- # Configuration options related to the dot tool #--------------------------------------------------------------------------- # If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will # generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base # or super classes. Setting the tag to NO turns the diagrams off. Note that # this option is superseded by the HAVE_DOT option below. This is only a # fallback. It is recommended to install and use dot, since it yields more # powerful graphs. CLASS_DIAGRAMS = YES # If set to YES, the inheritance and collaboration graphs will hide # inheritance and usage relations if the target is undocumented # or is not a class. HIDE_UNDOC_RELATIONS = YES # If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is # available from the path. This tool is part of Graphviz, a graph visualization # toolkit from AT&T and Lucent Bell Labs. The other options in this section # have no effect if this option is set to NO (the default) HAVE_DOT = NO # If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen # will generate a graph for each documented class showing the direct and # indirect inheritance relations. Setting this tag to YES will force the # the CLASS_DIAGRAMS tag to NO. CLASS_GRAPH = YES # If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen # will generate a graph for each documented class showing the direct and # indirect implementation dependencies (inheritance, containment, and # class references variables) of the class with other documented classes. COLLABORATION_GRAPH = YES # If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen # will generate a graph for groups, showing the direct groups dependencies GROUP_GRAPHS = YES # If the UML_LOOK tag is set to YES doxygen will generate inheritance and # collaboration diagrams in a style similar to the OMG's Unified Modeling # Language. UML_LOOK = NO # If set to YES, the inheritance and collaboration graphs will show the # relations between templates and their instances. TEMPLATE_RELATIONS = NO # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT # tags are set to YES then doxygen will generate a graph for each documented # file showing the direct and indirect include dependencies of the file with # other documented files. INCLUDE_GRAPH = YES # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and # HAVE_DOT tags are set to YES then doxygen will generate a graph for each # documented header file showing the documented files that directly or # indirectly include this file. INCLUDED_BY_GRAPH = YES # If the CALL_GRAPH and HAVE_DOT tags are set to YES then doxygen will # generate a call dependency graph for every global function or class method. # Note that enabling this option will significantly increase the time of a run. # So in most cases it will be better to enable call graphs for selected # functions only using the \callgraph command. CALL_GRAPH = NO # If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen # will graphical hierarchy of all classes instead of a textual one. GRAPHICAL_HIERARCHY = YES # If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES # then doxygen will show the dependencies a directory has on other directories # in a graphical way. The dependency relations are determined by the #include # relations between the files in the directories. DIRECTORY_GRAPH = YES # The DOT_IMAGE_FORMAT tag can be used to set the image format of the images # generated by dot. Possible values are png, jpg, or gif # If left blank png will be used. DOT_IMAGE_FORMAT = png # The tag DOT_PATH can be used to specify the path where the dot tool can be # found. If left blank, it is assumed the dot tool can be found in the path. DOT_PATH = # The DOTFILE_DIRS tag can be used to specify one or more directories that # contain dot files that are included in the documentation (see the # \dotfile command). DOTFILE_DIRS = # The MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width # (in pixels) of the graphs generated by dot. If a graph becomes larger than # this value, doxygen will try to truncate the graph, so that it fits within # the specified constraint. Beware that most browsers cannot cope with very # large images. MAX_DOT_GRAPH_WIDTH = 1024 # The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height # (in pixels) of the graphs generated by dot. If a graph becomes larger than # this value, doxygen will try to truncate the graph, so that it fits within # the specified constraint. Beware that most browsers cannot cope with very # large images. MAX_DOT_GRAPH_HEIGHT = 1024 # The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the # graphs generated by dot. A depth value of 3 means that only nodes reachable # from the root by following a path via at most 3 edges will be shown. Nodes # that lay further from the root node will be omitted. Note that setting this # option to 1 or 2 may greatly reduce the computation time needed for large # code bases. Also note that a graph may be further truncated if the graph's # image dimensions are not sufficient to fit the graph (see MAX_DOT_GRAPH_WIDTH # and MAX_DOT_GRAPH_HEIGHT). If 0 is used for the depth value (the default), # the graph is not depth-constrained. MAX_DOT_GRAPH_DEPTH = 0 # Set the DOT_TRANSPARENT tag to YES to generate images with a transparent # background. This is disabled by default, which results in a white background. # Warning: Depending on the platform used, enabling this option may lead to # badly anti-aliased labels on the edges of a graph (i.e. they become hard to # read). DOT_TRANSPARENT = NO # Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output # files in one run (i.e. multiple -o and -T options on the command line). This # makes dot run faster, but since only newer versions of dot (>1.8.10) # support this, this feature is disabled by default. DOT_MULTI_TARGETS = NO # If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will # generate a legend page explaining the meaning of the various boxes and # arrows in the dot generated graphs. GENERATE_LEGEND = YES # If the DOT_CLEANUP tag is set to YES (the default) Doxygen will # remove the intermediate dot files that are used to generate # the various graphs. DOT_CLEANUP = YES #--------------------------------------------------------------------------- # Configuration::additions related to the search engine #--------------------------------------------------------------------------- # The SEARCHENGINE tag specifies whether or not a search engine should be # used. If set to NO the values of all tags below this one will be ignored. SEARCHENGINE = NO pan-0.162/pan/tasks/000077500000000000000000000000001475412772400142205ustar00rootroot00000000000000pan-0.162/pan/tasks/CMakeLists.txt000066400000000000000000000013571475412772400167660ustar00rootroot00000000000000add_library(tasks decoder.cc encoder.cc task.cc task-article.cc task-groups.cc task-post.cc task-xover.cc task-upload.cc nntp.cc nzb.cc queue.cc upload-queue.cc socket.cc socket-impl-main.cc socket-impl-openssl.cc socket-impl-gio.cc socket-impl-scripted.cc nntp-pool.cc ) # Sanity checking # https://cmake.org/cmake/help/latest/command/add_compile_options.html target_compile_options(tasks PRIVATE "${CXX_STD}" "-Wreorder" "-Wzero-as-null-pointer-constant") target_link_libraries(tasks PUBLIC PkgConfig::GTK3) target_link_libraries(tasks PUBLIC PkgConfig::GMIME) if(Iconv_FOUND) my_target_system_lib(tasks PUBLIC Iconv) endif() if(WANT_GNUTLS) target_link_libraries(tasks PUBLIC PkgConfig::GNUTLS) endif() pan-0.162/pan/tasks/adaptable-set-test.cc000066400000000000000000000162351475412772400202210ustar00rootroot00000000000000#include #include #include #include #include "adaptable-set.h" using namespace pan; template class MyLessThan { public: MyLessThan () { } bool operator() (const X& x, const X& y) const { return x < y; } }; template class MyListener: public AdaptableSet >::Listener { public: X value; int index_of_added; int index_of_removed; int old_index_of_moved; int new_index_of_moved; public: void on_set_items_added (AdaptableSet >&, std::vector& i, int index) override { index_of_added = index; value = i[0]; } void on_set_item_removed (AdaptableSet >&, X& i, int index) override { index_of_removed = index; value = i; } void on_set_item_moved (AdaptableSet >&, X& i, int index, int old_index) override { old_index_of_moved = old_index; new_index_of_moved = index; value = i; } void clear () { index_of_added = index_of_removed = old_index_of_moved = new_index_of_moved = -1; } MyListener () : value() { clear (); } bool empty () const { return index_of_added==-1 && index_of_removed==-1 && old_index_of_moved==-1 && new_index_of_moved==-1; } }; typedef AdaptableSet > MyIntSet; int main () { int i; MyIntSet s; MyListener l; check (l.empty()) s.add_listener (&l); check (s.empty()) // trivial check: add to an empty set l.clear (); s.add (i = 10); check (l.value == 10) check (l.index_of_added == 0) check (!s.empty()) check (s.size() == 1) check (s[0] == 10) // another add: does it insert in the right place? l.clear (); s.add (i = 30); check (l.index_of_added == 1) check (l.value == 30) check (s.size() == 2) check (s[0] == 10) check (s[1] == 30) // another add: does it insert in the right place? l.clear (); s.add (i = 20); check (l.index_of_added == 1) check (l.value == 20) check (s.size() == 3) check (s[0] == 10) check (s[1] == 20) check (s[2] == 30) // testing move_up l.clear (); MyIntSet s2 (s); s.move_up (2); check (l.old_index_of_moved == 2) check (l.new_index_of_moved == 1) check (l.value == 30) check (s.size() == 3) check (s[0] == 10) check (s[1] == 30) check (s[2] == 20) l.clear (); s.move_up (1); check (s.size() == 3) check (l.old_index_of_moved == 1) check (l.new_index_of_moved == 0) check (l.value == 30) check (s[0] == 30) check (s[1] == 10) check (s[2] == 20) l.clear (); s.move_up (i = 0); check (l.empty ()) check (s.size() == 3) check (s[0] == 30) check (s[1] == 10) check (s[2] == 20) // does the set ignore moved items when finding the insertion point? // the unmoved set is 10, 20 l.clear (); s.add (i = 15); check (l.index_of_added == 2) check (l.value == 15) check (s.size() == 4) check (s[0] == 30) check (s[1] == 10) check (s[2] == 15) check (s[3] == 20) // does the set ignore moved items when finding the insertion point? // the unmoved set is 10, 15, 20 l.clear (); s.add (i = 21); check (l.index_of_added == 4) check (l.value == 21) check (s.size() == 5) check (s[0] == 30) check (s[1] == 10) check (s[2] == 15) check (s[3] == 20) check (s[4] == 21) // does the set ignore moved items when finding the insertion point? // the unmoved set is 10, 15, 20, 21 l.clear (); s.add (i = 31); check (s.size() == 6) check (l.index_of_added == 5) check (l.value == 31) check (s[0] == 30) check (s[1] == 10) check (s[2] == 15) check (s[3] == 20) check (s[4] == 21) check (s[5] == 31) // testing move_down l.clear (); s.move_down (1); check (l.old_index_of_moved == 1) check (l.new_index_of_moved == 2) check (l.value == 10) check (s.size() == 6) check (s[0] == 30) check (s[1] == 15) check (s[2] == 10) check (s[3] == 20) check (s[4] == 21) check (s[5] == 31) l.clear (); s.move_down (2); check (l.old_index_of_moved == 2) check (l.new_index_of_moved == 3) check (l.value == 10) check (s.size() == 6) check (s[0] == 30) check (s[1] == 15) check (s[2] == 20) check (s[3] == 10) check (s[4] == 21) check (s[5] == 31) // does the set ignore moved items when finding the insertion point? // the unmoved set is 15, 20, 21, 31 l.clear (); s.add (i = 11); check (l.index_of_added == 1) check (l.value == 11) check (s.size() == 7) check (s[0] == 30) check (s[1] == 11) check (s[2] == 15) check (s[3] == 20) check (s[4] == 10) check (s[5] == 21) check (s[6] == 31) // move to bottom... l.clear (); s.move_bottom (3); check (l.value == 20) check (l.old_index_of_moved == 3) check (l.new_index_of_moved == 6) check (s.size() == 7) check (s[0] == 30) check (s[1] == 11) check (s[2] == 15) check (s[3] == 10) check (s[4] == 21) check (s[5] == 31) check (s[6] == 20) // test another add after move_bottom() // does the set ignore moved items when finding the insertion point? // the unmoved set is 15, 21, 31 l.clear (); s.add (i = 19); check (l.value == 19) check (l.index_of_added == 4) check (s.size() == 8) check (s[0] == 30) check (s[1] == 11) check (s[2] == 15) check (s[3] == 10) check (s[4] == 19) check (s[5] == 21) check (s[6] == 31) check (s[7] == 20) // now for multiple insert tests... MyIntSet m; l.clear (); std::vector addme; addme.push_back (5); addme.push_back (10); addme.push_back (15); addme.push_back (20); m.add (addme); check (m.size() == 4) check (m[0] == 5) check (m[1] == 10) check (m[2] == 15) check (m[3] == 20) // start with an easy addition... addme.clear (); addme.push_back (0); addme.push_back (1); addme.push_back (2); m.add (addme); check (m.size() == 7) check (m[0] == 0) check (m[1] == 1) check (m[2] == 2) check (m[3] == 5) check (m[4] == 10) check (m[5] == 15) check (m[6] == 20) // now a more complicated one... addme.clear (); addme.push_back (12); addme.push_back (8); addme.push_back (17); addme.push_back (25); m.add (addme); check (m.size() == 11) check (m[0] == 0) check (m[1] == 1) check (m[2] == 2) check (m[3] == 5) check (m[4] == 8) check (m[5] == 10) check (m[6] == 12) check (m[7] == 15) check (m[8] == 17) check (m[9] == 20) check (m[10] == 25) // now after we've moved some items... m.move_up (3); m.move_up (7); check (m.size() == 11) check (m[0] == 0) check (m[1] == 1) check (m[2] == 5) check (m[3] == 2) check (m[4] == 8) check (m[5] == 10) check (m[6] == 15) check (m[7] == 12) check (m[8] == 17) check (m[9] == 20) check (m[10] == 25) addme.clear (); addme.push_back (3); addme.push_back (11); addme.push_back (14); addme.push_back (30); m.add (addme); check (m.size() == 15) check (m[0] == 0) check (m[1] == 1) check (m[2] == 5) check (m[3] == 2) check (m[4] == 3) check (m[5] == 8) check (m[6] == 10) check (m[7] == 15) check (m[8] == 11) check (m[9] == 12) check (m[10] == 14) check (m[11] == 17) check (m[12] == 20) check (m[13] == 25) check (m[14] == 30) return 0; } pan-0.162/pan/tasks/adaptable-set.cc000066400000000000000000000156611475412772400172460ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ /* since this is a template file included from a header, treat it like a header w.r.t. not including config.h. #include */ #include #include #include #include #include #include #include using namespace pan; template void AdaptableSet :: add_top (const std::vector& addme) { items_t items (addme.begin(), addme.end()); const int pos (0); _items.insert (_items.begin()+pos, items.begin(), items.end()); fire_items_added (items, pos); } template void AdaptableSet :: add_bottom (const std::vector& addme) { items_t items (addme.begin(), addme.end()); const int pos (_items.size()); _items.insert (_items.end(), items.begin(), items.end()); fire_items_added (items, pos); } template void AdaptableSet :: add (const std::vector& addme) { const StrictWeakOrdering sorter; // sort the items we're adding typedef std::vector xes_t; xes_t tmp (addme); std::sort (tmp.begin(), tmp.end(), sorter); // fold them w/unmoved to find where to insert them in 'items' typedef std::map add_beforeme_t; add_beforeme_t add_beforeme; typename xes_t::iterator tmp_it (tmp.begin()); for (typename xes_t::const_iterator unmoved_it (_unmoved.begin()), end(_unmoved.end()); (unmoved_it!=end) && (tmp_it!=tmp.end()); ) { if (sorter (*unmoved_it, *tmp_it)) ++unmoved_it; else add_beforeme[*unmoved_it].push_back (*tmp_it++); } #if 0 for (typename add_beforeme_t::const_iterator it(add_beforeme.begin()), end(add_beforeme.end()); it!=end; ++it) { std::cerr << "add before " << it->first << ": "; for (typename xes_t::const_iterator xit(it->second.begin()), xend(it->second.end()); xit!=xend; ++xit) std::cerr << *xit << ' '; std::cerr << std::endl; } #endif // add the new items to 'items'... for (typename add_beforeme_t::iterator it(add_beforeme.begin()), e(add_beforeme.end()); it!=e; ++it) { typename items_t::iterator iit (std::find (_items.begin(), _items.end(), it->first)); const int index (std::distance (_items.begin(), iit)); _items.insert (iit, it->second.begin(), it->second.end()); fire_items_added (it->second, index); } // are there any to add after the end? if (tmp_it != tmp.end()) { const int index (_items.size()); _items.insert (_items.end(), tmp_it, tmp.end()); items_t leftovers (tmp_it, tmp.end()); fire_items_added (leftovers, index); } // now that we've done polluting `items', // adding the new items with `unmoved' is // is a fast merge of two sorted lists... xes_t tmp2; std::merge (tmp.begin(), tmp.end(), _unmoved.begin(), _unmoved.end(), inserter (tmp2, tmp2.begin()), StrictWeakOrdering()); _unmoved.swap (tmp2); } template int AdaptableSet :: add (X& x) { std::vector tmp; tmp.push_back (x); add (tmp); return std::distance (_items.begin(), std::find(_items.begin(), _items.end(), x)); } template void AdaptableSet :: remove_from_unmoved (const X& x) { typedef std::pair pair_t; pair_t pair (std::equal_range (_unmoved.begin(), _unmoved.end(), x, _comp)); typename items_t::iterator it (std::find (pair.first, pair.second, x)); if (it != pair.second) _unmoved.erase (it); } template void AdaptableSet :: remove (int index) { if (0<=index && index int AdaptableSet:: index_of (const X& x) const { typename items_t::const_iterator it (std::find (_items.begin(), _items.end(), x)); const int index (it==_items.end() ? -1 : std::distance (_items.begin(), it)); return index; } template void AdaptableSet :: move (int new_index, int old_index) { assert (0<=new_index && new_index void AdaptableSet :: move_up (int index) { if (index > 0) move (index-1, index); } template void AdaptableSet :: move_top (int index) { if (index > 0) move (0, index); } template void AdaptableSet :: move_down (int index) { if (0<=index && index+1 void AdaptableSet :: move_bottom (int index) { if (0<=index && index+1 void AdaptableSet :: fire_items_added (items_t& x, int index) { typedef typename listeners_t::iterator lit; for (lit it(_listeners.begin()), end(_listeners.end()); it!=end; ) (*it++)->on_set_items_added (*this, x, index); } template void AdaptableSet :: fire_item_removed (X& x, int index) { typedef typename listeners_t::iterator lit; for (lit it(_listeners.begin()), end(_listeners.end()); it!=end; ) (*it++)->on_set_item_removed (*this, x, index); } template void AdaptableSet :: fire_item_moved (X& x, int new_index, int old_index) { typedef typename listeners_t::iterator lit; for (lit it(_listeners.begin()), end(_listeners.end()); it!=end; ) (*it++)->on_set_item_moved (*this, x, new_index, old_index); } pan-0.162/pan/tasks/adaptable-set.h000066400000000000000000000067361475412772400171130ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #ifndef _AdaptableSet_h_ #define _AdaptableSet_h_ #include #include namespace pan { /** * A std::set-like container that allows items to be reordered.. * * The intent is for newly-added elements to be inserted into the * proper ordered place but to let callers rearrange elements at will. * The subset of unmoved elements will remain ordered. * * This is used by the task queue so that users can rearrange tasks, * but newly-added tasks will be added in a best-fit manner. * * @ingroup tasks */ template class AdaptableSet { public: typedef std::vector items_t; protected: items_t _items; private: items_t _unmoved; void remove_from_unmoved (const X& x); const StrictWeakOrdering _comp; public: typedef typename items_t::iterator iterator; typedef typename items_t::const_iterator const_iterator; const_iterator begin() const { return _items.begin(); } iterator begin() { return _items.begin(); } const_iterator end() const { return _items.end(); } iterator end() { return _items.end(); } public: AdaptableSet () {} virtual ~AdaptableSet () {} public: bool empty() const { return _items.empty(); } int size() const { return _items.size(); } const X& operator[](int i) const { return *(_items.begin()+i); } public: int index_of (const X& x) const; void remove (int index); void move_up (int index); void move_down (int index); void move_top (int index); void move_bottom (int index); int add (X&); void add (const std::vector&); void add_top (const std::vector&); void add_bottom (const std::vector&); void move (int new_index, int old_index); public: /** * Interface class for objects that listen to an AdaptableSet's events. */ struct Listener { virtual ~Listener () {} virtual void on_set_items_added (AdaptableSet&, items_t&, int index) = 0; virtual void on_set_item_removed (AdaptableSet&, X&, int index) = 0; virtual void on_set_item_moved (AdaptableSet&, X&, int index, int old_index) = 0; }; void add_listener (Listener * l) { _listeners.insert (l); } void remove_listener (Listener * l) { _listeners.erase (l); } protected: virtual void fire_items_added (items_t&, int index); virtual void fire_item_removed (X&, int index); virtual void fire_item_moved (X&, int index, int old_index); private: typedef std::set listeners_t; listeners_t _listeners; }; } #include "adaptable-set.cc" #endif pan-0.162/pan/tasks/decoder.cc000066400000000000000000000237661475412772400161520ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2007 Charles Kerr * * This file * Copyright (C) 2007 Calin Culianu * Copyright (C) 2007 Charles Kerr * * This file is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #include "decoder.h" #include #include #include #include #include #include #include #include #include #include #include namespace pan { Decoder :: Decoder (WorkerPool& pool): mark_read(false), health(OK), task(nullptr), save_mode(TaskArticle::NONE), options(TaskArticle::SAVE_AS), percent(0.0), num_scanned_files(0), _worker_pool (pool), _gsourceid (-1) { } Decoder :: ~Decoder() { disable_progress_update(); } /*** **** ***/ void Decoder :: enqueue (TaskArticle * task, const Quark & save_path, const strings_t & input_files, const TaskArticle::SaveMode & save_mode, const TaskArticle::SaveOptions & options, const StringView & filename, const Article & article) { disable_progress_update (); this->task = task; this->save_path = save_path; this->input_files = input_files; this->save_mode = save_mode; this->options = options; this->attachment_filename = filename; this->article_subject = article.subject; mark_read = false; percent = 0; num_scanned_files = 0; current_file.clear (); log_infos.clear(); log_errors.clear(); // gentlemen, start your saving... _worker_pool.push_work (this, task, false); } // save article IN A WORKER THREAD to avoid network stalls void Decoder :: do_work() { const int bufsz = 4096; char buf[bufsz]; enable_progress_update(); if (save_mode & TaskArticle::RAW) { int i = 0; foreach_const (strings_t, input_files, it) { if (was_cancelled()) break; // poll WorkerPool::Worker stop flag gchar * contents (nullptr); gsize length (0); if (g_file_get_contents (it->c_str(), &contents, &length, nullptr) && length>0) { file :: ensure_dir_exists (save_path.c_str()); gchar * basename (g_path_get_basename (it->c_str())); gchar * filename (g_build_filename (save_path.c_str(), basename, nullptr)); FILE * fp = fopen (filename, "w+"); mut.lock(); current_file = filename; mut.unlock(); if (!fp) { g_snprintf(buf, bufsz, _("Couldn't save file \"%s\": %s"), filename, file::pan_strerror(errno)); log_errors.push_back (buf); // log error } else { fwrite (contents, 1, (size_t)length, fp); fclose (fp); } g_free (filename); g_free (basename); } g_free (contents); mut.lock(); percent = ++i*100/input_files.size(); mut.unlock(); } } if (save_mode & TaskArticle::DECODE) { // decode int res; if (((res = UUInitialize())) != UURET_OK) log_errors.push_back(_("Error initializing uulib")); // log error else { UUSetMsgCallback (this, uu_log); UUSetOption (UUOPT_DESPERATE, 1, nullptr); // keep incompletes; they're useful to par2 UUSetOption (UUOPT_IGNMODE, 1, nullptr); // don't save file as executable UUSetBusyCallback (this, uu_busy_poll, 500); // .5 secs busy poll? int i (0); foreach_const (strings_t, input_files, it) { if (was_cancelled()) break; const char *global_subject = nullptr; // In SAVE_ALL mode, article_subject is the subject from the NZB file, if known if (options == TaskArticle::SAVE_ALL && !article_subject.empty()) { global_subject = article_subject.c_str(); } if ((res = UULoadFileWithPartNo (const_cast(it->c_str()), nullptr, 0, ++i, global_subject)) != UURET_OK) { g_snprintf(buf, bufsz, _("Error reading from %s: %s"), it->c_str(), (res==UURET_IOERR) ? file::pan_strerror (UUGetOption (UUOPT_ERRNO, nullptr, nullptr, 0)) : UUstrerror(res)); log_errors.push_back(buf); // log error } mut.lock(); num_scanned_files = i; mut.unlock(); } uulist * item; i = 0; while ((item = UUGetFileListItem (i++))) { // skip all other attachments in SAVE_AS mode (single attachment download) /// DBG why is this failing if article isn't cached???? if (options == TaskArticle::SAVE_AS && !attachment_filename.empty()) if(strcmp(item->filename, attachment_filename.str) != 0) continue; file_errors.clear (); if (was_cancelled()) break; // poll WorkerPool::Worker stop flag // make sure the directory exists... if (!save_path.empty()) file :: ensure_dir_exists (save_path.c_str()); // find a unique filename... char * fname = file::get_unique_fname(save_path.c_str(), (item->filename && *item->filename) ? item->filename : "pan-saved-file" ); // decode the file... if ((res = UUDecodeFile (item, fname)) == UURET_OK) { g_snprintf(buf, bufsz,_("Saved \"%s\""), fname); log_infos.push_back(buf); // log info } else if (res == UURET_NODATA) { // silently let this error by... user probably tried to // save attachements on a text-only post } else { const int the_errno (UUGetOption (UUOPT_ERRNO, nullptr, nullptr, 0)); g_snprintf (buf, bufsz,_("Error saving \"%s\":\n%s."), fname, res==UURET_IOERR ? file::pan_strerror(the_errno) : UUstrerror(res)); log_errors.push_back(buf); // log error } if (!file_errors.empty()) { std::string errs_fname = fname; errs_fname += ".ERRORS"; std::ofstream out (errs_fname.c_str(), std::ios_base::out|std::ios_base::trunc); foreach_const (Decoder::log_t, file_errors, it) out << *it << '\n'; out.close (); } // cleanup g_free (fname); } mark_read = true; } UUCleanUp (); } disable_progress_update(); } /*** **** ***/ void Decoder :: uu_log (void* data, char* message, int severity) { Decoder *self = static_cast(data); char * pch (g_locale_to_utf8 (message, -1, nullptr, nullptr, nullptr)); if (severity >= UUMSG_WARNING) self->file_errors.push_back (pch ? pch : message); if (severity >= UUMSG_ERROR) self->log_errors.push_back (pch ? pch : message); else if (severity >= UUMSG_NOTE) self->log_infos.push_back (pch ? pch : message); g_free (pch); } double Decoder :: get_percentage (const uuprogress& p) const { // These should add up to 100. // We can tweak these as needed. Calin sees more time spent // in COPYING, but I'm seeing it in DECODING, so I've split // the difference here and given them the same weight. static const double WEIGHT_SCANNING = 10; static const double WEIGHT_DECODING = 45; static const double WEIGHT_COPYING = 45; double base = 0; if (p.action != UUACT_SCANNING) base += WEIGHT_SCANNING; else { const double percent = (100.0 * num_scanned_files + p.percent) / input_files.size(); return base + (percent / (100.0/WEIGHT_SCANNING)); } if (p.action != UUACT_DECODING) base += WEIGHT_DECODING; else { // uudeview's documentation is wrong: // the total percentage isn't (100*partno-percent)/numparts, // it's (100*(partno-1) + percent)/numparts const double percent = ((100.0 * (p.partno-1)) + p.percent) / p.numparts; return base + (percent / (100.0/WEIGHT_DECODING)); } if (p.action != UUACT_COPYING) base += WEIGHT_COPYING; else { const double percent = p.percent; return base + (percent / (100.0/WEIGHT_COPYING)); } return 0; } int Decoder :: uu_busy_poll (void * d, uuprogress *p) { Decoder * self (static_cast(d)); self->mut.lock(); self->percent = self->get_percentage(*p); self->current_file = p->curfile; self->mut.unlock(); return self->was_cancelled(); // returning true tells uulib to abort } // this is called in the main thread gboolean Decoder :: progress_update_timer_func (gpointer decoder) { Decoder *self = static_cast(decoder); Task *task = self->task; if (!task || self->was_cancelled()) return false; const double percent (self->percent); const std::string f (content_to_utf8 (self->current_file)); task->set_step((int)percent); task->set_status_va (_("Decoding %s"), f.c_str()); return true; // keep timer func running } /*** **** ***/ void Decoder :: enable_progress_update () { if (_gsourceid == -1) _gsourceid = g_timeout_add(500, progress_update_timer_func, this); } void Decoder :: disable_progress_update () { if (_gsourceid > -1) { g_source_remove (_gsourceid); _gsourceid = -1; } } } pan-0.162/pan/tasks/decoder.h000066400000000000000000000063101475412772400157760ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2007 Charles Kerr * * This file * Copyright (C) 2007 Calin Culianu * Copyright (C) 2007 Charles Kerr * * This file is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #ifndef _Decoder_H_ #define _Decoder_H_ #include #include #include #include #include #include #ifndef PROTOTYPES #define PROTOTYPES #endif #include namespace pan { /** * Decodes attachments in a worker thread. * * @author Calin Culianu * @author Charles Kerr * @ingroup tasks * @see Queue * @see TaskArticle */ class Decoder: public WorkerPool::Worker { public: Decoder (WorkerPool&); ~Decoder (); typedef std::vector strings_t; void enqueue (TaskArticle * task, const Quark & save_path, const strings_t & input_files, const TaskArticle::SaveMode & save_mode, const TaskArticle::SaveOptions & options, const StringView & filename, const Article & article); public: typedef std::list log_t; log_t log_severe, log_errors, log_infos, file_errors; bool mark_read; Health health; protected: // inherited from WorkerPool::Worker void do_work() override; private: TaskArticle * task; std::string save_path; strings_t input_files; TaskArticle::SaveMode save_mode; TaskArticle::SaveOptions options; StringView attachment_filename; Quark article_subject; // These are set in the worker thread and polled in the main thread. Mutex mut; volatile double percent; std::string current_file; // the current file we are decoding, with path volatile int num_scanned_files; static void uu_log(void *thiz, char *message, int severity); double get_percentage (const uuprogress& p) const; static int uu_busy_poll(void * self, uuprogress *p); /** tell our task about the decode's progress */ static gboolean progress_update_timer_func(gpointer decoder); protected: WorkerPool& _worker_pool; int _gsourceid; void disable_progress_update(); void enable_progress_update(); }; } #endif pan-0.162/pan/tasks/encoder.cc000066400000000000000000000166441475412772400161610ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2007 Charles Kerr * * This file * Copyright (C) 2007 Calin Culianu * Copyright (C) 2007 Charles Kerr * * This file is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #include "encoder.h" #include #include #include #include #include #include #define PROTOTYPES #include #include extern "C" { #include #include } #include #include #include #include #include namespace pan { Encoder :: Encoder (WorkerPool& pool): health(OK), parts(0), task(nullptr), bpf(0), cache(nullptr), needed(nullptr), article(nullptr), percent(0.0), _worker_pool (pool), _gsourceid (-1) {} Encoder :: ~Encoder() { disable_progress_update(); } /*** **** ***/ void Encoder :: enqueue (TaskUpload * task, EncodeCache * cache, Article * article, std::string & filename, std::string & basename, std::string & subject, int bpf) { disable_progress_update (); this->task = task; this->basename = basename; this->filename = filename; this->needed = &task->_needed; this->cache = cache; this->article = article; this->bpf = bpf; this->subject = subject; percent = 0; current_file.clear (); log_infos.clear(); log_errors.clear(); // gentlemen, start your encod'n... _worker_pool.push_work (this, task, false); } bool Encoder :: write_file (const char *fn) { char buf[2048]; FILE * fp = cache->get_fp_from_mid(fn); if (!fp) { g_snprintf(buf, sizeof(buf), _("Error loading %s from cache."), fn); log_errors.push_back(buf); // log error return false; } // write data from file on hdd to cache directory (plain copy) char c[2048]; std::ifstream in(filename.c_str(), std::ios::in); while (in.getline(c,2048)) fwrite (c, strlen(c), sizeof (char), fp); return true; } void Encoder :: do_work() { const int bufsz = 4096; char buf[bufsz]; int cnt(1); crc32_t crc(0); struct stat sb; std::string s; char cachename[4096]; FILE * fp ; Article* tmp = article; enable_progress_update(); int res; if (((res = UUInitialize())) != UURET_OK) { log_errors.push_back(_("Error initializing uulib")); // log error } else { UUSetMsgCallback (this, uu_log); UUSetBusyCallback (this, uu_busy_poll, 90); /* build real subject line for article*/ tmp->subject = subject; for (TaskUpload::needed_t::iterator it = needed->begin(); it != needed->end(); ++it, ++cnt) { g_snprintf(buf,sizeof(buf),"%s.%d",basename.c_str(), cnt); std::ofstream out; std::ifstream in; fp = cache->get_fp_from_mid(it->second.message_id); if (!fp) { g_snprintf(buf, bufsz, _("Error loading %s from cache."), it->second.message_id.c_str()); log_errors.push_back(buf); // log error continue; } res = UUEncodePartial_byFSize (fp, NULL, (char*)filename.c_str(), YENC_ENCODED , (char*)basename.c_str(), nullptr, 0, cnt, bpf ,&crc); if (fp) fclose(fp); if (res != UURET_CONT && res != UURET_OK) break; cache->finalize(it->second.message_id); cache->get_filename(cachename, Quark(it->second.message_id)); stat (cachename, &sb); it->second.cachename = cachename; it->second.bytes = sb.st_size; task->_all_bytes += sb.st_size; tmp->add_part(cnt, StringView(it->second.mid), sb.st_size); if (res != UURET_CONT) break; } if (res != UURET_OK && res != UURET_CONT) { g_snprintf(buf, bufsz, _("Error encoding %s: %s"), basename.c_str(), (res==UURET_IOERR) ? file::pan_strerror (UUGetOption (UUOPT_ERRNO, NULL, NULL, 0)) : UUstrerror(res)); log_errors.push_back(buf); // log error } else task->_upload_list.push_back(tmp); UUCleanUp (); } disable_progress_update(); } /*** **** ***/ void Encoder :: uu_log (void* data, char* message, int severity) { Encoder *self = static_cast(data); if (self->was_cancelled()) return; char * pch (g_locale_to_utf8 (message, -1, nullptr, nullptr, nullptr)); if (severity >= UUMSG_WARNING) self->file_errors.push_back (pch ? pch : message); if (severity >= UUMSG_ERROR) self->log_errors.push_back (pch ? pch : message); else if (severity >= UUMSG_NOTE) self->log_infos.push_back (pch ? pch : message); g_free (pch); } double Encoder :: get_percentage (const uuprogress& p) const { // don't know if this is accurate, but i just take a guess ;) static const double WEIGHT_SCANNING = 50; static const double WEIGHT_ENCODING = 50; double base = 0; if (p.action != UUACT_SCANNING) base += WEIGHT_SCANNING; else { const double percent = (100.0 + p.percent); return base + (percent / (100.0/WEIGHT_SCANNING)); } if (p.action != UUACT_ENCODING) base += WEIGHT_ENCODING; else { // uudeview's documentation is wrong: // the total percentage isn't (100*partno-percent)/numparts, // it's (100*(partno-1) + percent)/numparts const double percent = ((100.0 * (p.partno-1)) + p.percent) / p.numparts; return base + (percent / (100.0/WEIGHT_ENCODING)); } return 0; } int Encoder :: uu_busy_poll (void * d, uuprogress *p) { Encoder * self (static_cast(d)); self->mut.lock(); self->percent = self->get_percentage(*p); self->current_file = p->curfile; self->parts = p->numparts; self->mut.unlock(); return self->was_cancelled(); // returning true tells uulib to abort } // this is called in the main thread gboolean Encoder :: progress_update_timer_func (gpointer decoder) { Encoder *self = static_cast(decoder); Task *task = self->task; if (!task || self->was_cancelled()) return false; const double percent (self->percent); const std::string f (content_to_utf8 (self->current_file)); task->set_step(int(percent)); task->set_status_va (_("Encoding %s"), f.c_str()); return true; // keep timer func running } /*** **** ***/ void Encoder :: enable_progress_update () { if (_gsourceid == -1) _gsourceid = g_timeout_add(500, progress_update_timer_func, this); } void Encoder :: disable_progress_update () { if (_gsourceid > -1) { g_source_remove (_gsourceid); _gsourceid = -1; } } } pan-0.162/pan/tasks/encoder.h000066400000000000000000000064251475412772400160170ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2007 Charles Kerr * * This file * Copyright (C) 2007 Calin Culianu * Copyright (C) 2007 Charles Kerr * * This file is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #ifndef _Encoder_H_ #define _Encoder_H_ #include #include #include #include #include #include #include #ifndef PROTOTYPES #define PROTOTYPES #endif #include #include namespace pan { /** * Encodes attachments (yEnc) for posting to usenet groups. * * @author Heinrich Mueller * @author Calin Culianu * @author Charles Kerr * @ingroup tasks * @see Queue * @see TaskArticle */ class Encoder: public WorkerPool::Worker { public: Encoder (WorkerPool&); ~Encoder (); typedef std::vector strings_t; void enqueue (TaskUpload * task, EncodeCache * cache, Article * article, std::string & filename, std::string & basename, std::string & subject, int bpf); public: typedef std::list log_t; log_t log_severe, log_errors, log_infos, file_errors; Health health; protected: // inherited from WorkerPool::Worker void do_work() override; private: friend class TaskUpload; int parts; TaskUpload * task; std::string basename, filename, subject; int bpf; EncodeCache * cache; TaskUpload::needed_t * needed; Article * article; // These are set in the worker thread and polled in the main thread. Mutex mut; volatile double percent; std::string current_file; // the current file we are decoding, with path static void uu_log(void *thiz, char *message, int severity); double get_percentage (const uuprogress& p) const; static int uu_busy_poll(void * self, uuprogress *p); /** tell our task about the decode's progress */ static gboolean progress_update_timer_func(gpointer decoder); WorkerPool& _worker_pool; int _gsourceid; void disable_progress_update(); void enable_progress_update(); bool write_file (const char *fn); }; } #endif pan-0.162/pan/tasks/health.h000066400000000000000000000034411475412772400156400ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #ifndef _Health_h_ #define _Health_h_ namespace pan { /** * Possible health states of a Task. * * @ingroup tasks */ enum Health { /** The task's health is fine. */ OK, /** The task has failed because of a bad connection. The queue should leave this task as-is so that it can retry when the network clears up. */ ERR_NETWORK, /** The server has rejected a command sent by this task. For example, an expired article can't be retrieved or an article can't be posted due to no permissions. The queue should stop the task (but let other tasks continue) and let the user decide how to proceed. */ ERR_COMMAND, /** The task has failed because of some local environment problem. Further tasks are likely to fail for the same reason, so the queue should go offline until the user intervenes to fix the problem. */ ERR_LOCAL, /** Handle disk full by setting the queue offline */ ERR_NOSPACE }; } #endif pan-0.162/pan/tasks/nntp-pool.cc000066400000000000000000000224721475412772400164640ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #include #include #include // snprintf #include #include #include #include #include "nntp-pool.h" #ifdef HAVE_GKR #define USE_LIBSECRET_DEFAULT true #else #define USE_LIBSECRET_DEFAULT false #endif using namespace pan; namespace { const int MAX_IDLE_SECS (30); const int HUP_IDLE_SECS (90); const int TOO_MANY_CONNECTIONS_LOCKOUT_SECS (120); } NNTP_Pool :: NNTP_Pool (const Quark & server, ServerInfo & server_info, Prefs & prefs, SocketCreator * creator, CertStore & store): _server_info (server_info), _server (server), _socket_creator (creator), _pending_connections (0), _certstore(store), _prefs (prefs), _active_count (0), _time_to_allow_new_connections (0) { } NNTP_Pool :: ~NNTP_Pool () { foreach (pool_items_t, _pool_items, it) { delete it->nntp->_socket; delete it->nntp; } } /*** **** ***/ bool NNTP_Pool :: new_connections_are_allowed () const { return _time_to_allow_new_connections <= time(nullptr); } void NNTP_Pool :: disallow_new_connections_for_n_seconds (int n) { _time_to_allow_new_connections = time(nullptr) + n; } void NNTP_Pool :: allow_new_connections () { _time_to_allow_new_connections = 0; } /*** **** ***/ void NNTP_Pool :: abort_tasks () { foreach (pool_items_t, _pool_items, it) if (!it->is_checked_in) it->nntp->_socket->set_abort_flag (true); } void NNTP_Pool :: kill_tasks () { foreach (pool_items_t, _pool_items, it) it->nntp->_socket->set_abort_flag (true); } NNTP* NNTP_Pool :: check_out () { NNTP * nntp (nullptr); foreach (pool_items_t, _pool_items, it) { debug("pool item "<is_checked_in<<" "<nntp); if (it->is_checked_in) { nntp = it->nntp; it->is_checked_in = false; ++_active_count; debug ("nntp " << nntp << " is now checked out"); break; } } return nntp; } void NNTP_Pool :: check_in (NNTP * nntp, Health health) { debug ("nntp " << nntp << " is being checked in, health is " << health); // find this nntp in _pool_items pool_items_t::iterator it; for (it=_pool_items.begin(); it!=_pool_items.end(); ++it) if (it->nntp == nntp) break; // process the nntp if we have a match if (it != _pool_items.end()) { const bool bad_connection = (health == ERR_NETWORK); const bool nospace = (health == ERR_NOSPACE); int active, idle, pending, max; get_counts (active, idle, pending, max); const bool too_many = (pending + active) > max; const bool discard = bad_connection || too_many || nospace; --_active_count; if (discard) { delete it->nntp->_socket; delete it->nntp; _pool_items.erase (it); if (bad_connection) allow_new_connections (); // to make up for this one } else { it->is_checked_in = true; it->last_active_time = time (NULL); fire_pool_has_nntp_available (); } } } /*** **** ***/ void NNTP_Pool :: on_socket_created (const StringView & host, int port UNUSED, bool ok, Socket * socket) { std::string user; gchar* pass(NULL); ok = ok && _server_info.get_server_auth ( _server, user, pass, _prefs.get_flag( "use-password-storage", USE_LIBSECRET_DEFAULT)); debug("on socket created "<handshake (this); } } void NNTP_Pool :: on_nntp_done (NNTP* nntp, Health health, const StringView& response) { debug ("NNTP_Pool: on_nntp_done()"); if (health == ERR_COMMAND) // news server isn't accepting our connection! { std::string s (response.str, response.len); foreach (std::string, s, it) *it = tolower (*it); // too many connections. // there doesn't seem to be a reliable way to test for this: // response can be 502, 400, or 451... and the error messages // vary from server to server if ( (s.find ("502") != s.npos) || (s.find ("400") != s.npos) || (s.find ("451") != s.npos) || (s.find ("480") != s.npos) // https://bugzilla.gnome.org/show_bug.cgi?id=409085 || (s.find ("too many") != s.npos) || (s.find ("limit reached") != s.npos) || (s.find ("maximum number of connections") != s.npos) || (s.find ("multiple") != s.npos) ) { disallow_new_connections_for_n_seconds (TOO_MANY_CONNECTIONS_LOCKOUT_SECS); } else { const std::string addr (_server_info.get_server_address (_server)); std::string s; char buf[4096]; snprintf (buf, sizeof(buf), _("Unable to connect to \"%s\""), addr.c_str()); s = buf; if (!response.empty()) { s += ":\n"; s.append (response.str, response.len); } fire_pool_error (s.c_str()); } } if (health != OK) { delete nntp->_socket; delete nntp; nntp = nullptr; } --_pending_connections; // if success... if (nntp != nullptr) { debug ("success with handshake to " << _server << ", nntp " << nntp); PoolItem i; i.nntp = nntp; i.is_checked_in = true; i.last_active_time = time (nullptr); _pool_items.push_back (i); fire_pool_has_nntp_available (); } } void NNTP_Pool :: get_counts (int& setme_active, int& setme_idle, int& setme_pending, int& setme_max) const { setme_active = _active_count; setme_idle = _pool_items.size() - _active_count; setme_max = _server_info.get_server_limits (_server); setme_pending = _pending_connections; } void NNTP_Pool :: request_nntp (WorkerPool& threadpool) { int active, idle, pending, max; get_counts (active, idle, pending, max); #if 0 std::cerr << LINE_ID << "server " << _server << ", " << "active: " << active << ' ' << "idle: " << idle << ' ' << "pending: " << pending << ' ' << "max: " << max << ' ' << std::endl; #endif if (!idle && ((pending+active)create_socket (_server_info, _server, address, port, threadpool, this); } } } /** *** **/ namespace { class NoopListener: public NNTP::Listener { private: NNTP::Source * source; const bool hang_up; public: NoopListener (NNTP::Source * s, bool b): source(s), hang_up(b) {} virtual ~NoopListener() {} virtual void on_nntp_done (NNTP * nntp, Health health, const StringView& response UNUSED) { source->check_in (nntp, hang_up ? ERR_NETWORK : health); delete this; } }; } void NNTP_Pool :: idle_upkeep () { for (;;) { PoolItem * item (nullptr); const time_t now (time (nullptr)); foreach (pool_items_t, _pool_items, it) { if (it->is_checked_in && ((now - it->last_active_time) > MAX_IDLE_SECS)) { item = &*it; break; } } // if no old, checked-in items, then we're done if (!item) break; // send a keepalive message to the old, checked-in item we found // the noop can trigger changes in _pool_items, so that must be // the last thing we do with the 'item' pointer. const time_t idle_time_secs = now - item->last_active_time; item->is_checked_in = false; ++_active_count; if (idle_time_secs >= HUP_IDLE_SECS) item->nntp->goodbye (new NoopListener (this, true)); else item->nntp->noop (new NoopListener (this, false)); item = nullptr; } } #ifdef HAVE_GNUTLS void NNTP_Pool:: on_verify_cert_failed(gnutls_x509_crt_t cert, std::string server, int nr) { } void NNTP_Pool :: on_valid_cert_added (gnutls_x509_crt_t cert, std::string server) { } #endif pan-0.162/pan/tasks/nntp-pool.h000066400000000000000000000072151475412772400163240ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #ifndef __NNTP_Pool_h__ #define __NNTP_Pool_h__ #include #include #include #include #include #include #include #include #include #ifdef HAVE_GNUTLS #include #endif namespace pan { struct WorkerPool; /** * A pool of NNTP connections to a particular server. * * @ingroup tasks */ class NNTP_Pool: public NNTP::Source, private NNTP::Listener, private Socket::Creator::Listener, private CertStore::Listener { public: NNTP_Pool(const Quark & server, ServerInfo & server_info, Prefs& prefs, SocketCreator *, CertStore &); virtual ~NNTP_Pool(); void check_in(NNTP*, Health) override; NNTP* check_out(); void abort_tasks(); void kill_tasks(); void idle_upkeep(); void get_counts(int& setme_active, int& setme_idle, int& setme_connecting, int& setme_max) const; public: /** Interface class for objects that listen to an NNTP_Pool's events */ class Listener { public: virtual ~Listener() { } ; virtual void on_pool_has_nntp_available(const Quark& server) = 0; virtual void on_pool_error(const Quark& server, const StringView& message) = 0; }; void add_listener(Listener * l) { _listeners.insert(l); } void remove_listener(Listener * l) { _listeners.erase(l); } void request_nntp(WorkerPool&); private: // NNTP::Listener virtual void on_nntp_done(NNTP*, Health, const StringView&); private: // Socket::Creator::Listener void on_socket_created(const StringView& host, int port, bool ok, Socket*) override; void on_socket_shutdown(const StringView& host, int port, Socket*) override {} #ifdef HAVE_GNUTLS private: // CertStore::Listener void on_verify_cert_failed(gnutls_x509_crt_t, std::string, int) override; void on_valid_cert_added(gnutls_x509_crt_t, std::string) override; #endif private: void fire_pool_has_nntp_available() { for (listeners_t::iterator it(_listeners.begin()), end(_listeners.end()); it != end;) (*it++)->on_pool_has_nntp_available(_server); } void fire_pool_error(const StringView& message) { for (listeners_t::iterator it(_listeners.begin()), end(_listeners.end()); it != end;) (*it++)->on_pool_error(_server, message); } ServerInfo& _server_info; const Quark _server; SocketCreator * _socket_creator; int _pending_connections; CertStore& _certstore; Prefs& _prefs; struct PoolItem { NNTP * nntp; bool is_checked_in; time_t last_active_time; }; typedef std::vector pool_items_t; pool_items_t _pool_items; int _active_count; private: time_t _time_to_allow_new_connections; bool new_connections_are_allowed() const; void disallow_new_connections_for_n_seconds(int n); void allow_new_connections(); typedef std::set listeners_t; listeners_t _listeners; }; } ; #endif // __NNTP_Pool_h__ pan-0.162/pan/tasks/nntp.cc000066400000000000000000000360001475412772400155050ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #include "nntp.h" #include #include #include #include // abort, atoi, strtoul #include // snprintf #include #include #include #include #include namespace pan { namespace { std::string build_command (const char * fmt, ...) { std::string cmd; if (fmt) { va_list args; va_start (args, fmt); char * str = g_strdup_vprintf (fmt, args); va_end (args); cmd = str; g_free (str); } return cmd; } #ifdef G_OS_WIN32 //strcasestr isn't implemented on mingw64 char * strcasestr(const char *s, const char *find) { char c, sc; size_t len; if ((c = *find++) != 0) { c = (char)tolower((unsigned char)c); len = strlen(find); do { do { if ((sc = *s++) == 0) { return NULL; } } while ((char)tolower((unsigned char)sc) != c); } while (strncasecmp(s, find, len) != 0); s--; } return const_cast(s); } #endif }; void NNTP :: fire_done_func (Health health, const StringView& response) { if (_listener) { Listener * l = _listener; debug ("I (" << (void*)this << ") am setting my _listener to 0"); _compression = false; _listener = nullptr; l->on_nntp_done (this, health, response); } } /*** **** WRITING ***/ bool NNTP :: on_socket_response (Socket * sock UNUSED, const StringView& line_in) { enum State { CMD_FAIL, CMD_DONE, CMD_MORE, CMD_NEXT, CMD_RETRY }; State state; StringView line (line_in); // strip off trailing \r\n if (line.len>=2 && line.str[line.len-2]=='\r' && line.str[line.len-1]=='\n') line.truncate (line.len-2); if (_nntp_response_text) { state = CMD_MORE; if (line.len==1 && line.str[0]=='.') // end-of-list { state = CMD_DONE; _nntp_response_text = false; } else if (!_compression) { if (line.len>=2 && line.str[0]=='.' && line.str[1]=='.') // rfc 977: 2.4.1 line.rtruncate (line.len-1); assert (_listener != nullptr); if (_listener) _listener->on_nntp_line (this, line); } if (_compression) { StringView l(line); if (_listener) _listener->on_nntp_line (this, l); if (l.str[l.len-1]=='.') // gzip compression, ends with a single "." { _nntp_response_text = false; _compression = false; state = CMD_DONE; } } } else { int code; //check for compression, enable once, disable at end if (!_compression) _compression = strcasestr (line_in.str, COMPRESS_GZIP); code = atoi (line.str); switch (code) { case SERVER_READY: case SERVER_READY_NO_POSTING: case SERVER_READY_STREAMING_OK: state = CMD_DONE; break; case ARTICLE_POSTED_OK: case GOODBYE: case XOVER_NO_ARTICLES: state = CMD_DONE; break; case AUTH_REQUIRED: { // must send username if (!_username.empty()) { _commands.push_front (_previous_command); _socket->write_command_va (this, "AUTHINFO USER %s\r\n", _username.c_str()); state = CMD_NEXT; } else { std::string host; _socket->get_host (host); Log::add_err_va (_("%s requires a username, but none is set."), host.c_str()); state = CMD_FAIL; } break; } case AUTH_NEED_MORE: { // must send password if (!_password.empty()) { _socket->write_command_va (this, "AUTHINFO PASS %s\r\n", _password.c_str()); state = CMD_NEXT; } else { std::string host; _socket->get_host (host); Log::add_err_va (_("%s requires a password, but none is set."), host.c_str()); state = CMD_FAIL; } break; } case AUTH_ACCEPTED: CompressionType ctype; _server_info.get_server_compression_type(_server, ctype); if (ctype == HEADER_COMPRESS_XFEATURE) { // try to enable compression xfeature _socket->write_command (ENABLE_COMPRESS_GZIP, this); state = CMD_NEXT; } else state = CMD_DONE; break; case FEATURE_ENABLED: state= CMD_DONE; break; case GROUP_RESPONSE: { // response is of form "211 qty low high group_name" StringView tok; StringView myline(line); myline.pop_token(tok, ' '); myline.pop_token(tok, ' '); Article_Count const aqty{tok}; myline.pop_token(tok, ' '); Article_Number const alo{tok}; myline.pop_token(tok, ' '); Article_Number const ahi{tok}; myline.pop_token(tok, ' '); Quark const group{tok}; if (_listener) { _listener->on_nntp_group(this, group, aqty, alo, ahi); } _group = group; state = CMD_DONE; break; } case SEND_ARTICLE_NOW: // ready to get article; send it now _socket->write_command (_post, this); state = CMD_NEXT; break; case NO_POSTING: case POSTING_FAILED: // if we hit a dupe, we silently continue if (line.strstr("435")) { state = CMD_DONE; break; } break; case GROUP_NONEXISTENT: state = CMD_FAIL; break; case XOVER_FOLLOWS: case ARTICLE_FOLLOWS: case NEWGROUPS_FOLLOWS: case INFORMATION_FOLLOWS: state = CMD_MORE; _nntp_response_text = true; break; case AUTH_REJECTED: case NO_GROUP_SELECTED: case ERROR_CMD_NOT_UNDERSTOOD: case ERROR_CMD_NOT_SUPPORTED: case NO_PERMISSION: case FEATURE_NOT_SUPPORTED: { std::string cmd (_previous_command); if (cmd.size()>=2 && cmd[cmd.size()-1]=='\n' && cmd[cmd.size()-2]=='\r') cmd.resize (cmd.size()-2); if (code == ERROR_CMD_NOT_UNDERSTOOD && !strcmp (cmd.c_str(), "MODE READER")) { // server clearly doesn't need MODE READER, ignore the error state = CMD_DONE; break; } std::string host; _socket->get_host (host); Log::add_err_va (_("Sending \"%s\" to %s returned an error: %s"), cmd.c_str(), host.c_str(), line.to_string().c_str()); state = CMD_FAIL; break; } case NO_SUCH_ARTICLE_NUMBER: case NO_SUCH_ARTICLE: state = CMD_FAIL; break; case TOO_MANY_CONNECTIONS: state = CMD_RETRY; break; default: { std::string cmd (_previous_command); if (cmd.size()>=2 && cmd[cmd.size()-1]=='\n' && cmd[cmd.size()-2]=='\r') cmd.resize (cmd.size()-2); std::string host; _socket->get_host (host); Log::add_err_va (_("Sending \"%s\" to %s returned an unrecognized response: \"%s\""), _previous_command.c_str(), host.c_str(), line.to_string().c_str()); state = CMD_FAIL; break; } } } if ((state == CMD_DONE) && !_commands.empty()) { write_next_command (); state = CMD_NEXT; } bool more; switch (state) { case CMD_FAIL: fire_done_func (ERR_COMMAND, line); more = false; break; case CMD_DONE: if (_commands.empty()) fire_done_func (OK, line); more = false; break; case CMD_MORE: more = true; break; // keep listening for more on this command case CMD_NEXT: more = false; break; // no more responses on this command; wait for next... case CMD_RETRY: fire_done_func (ERR_NETWORK, line); more = false; break; default: abort(); break; } return more; } void NNTP :: on_socket_abort (Socket * sock UNUSED) { fire_done_func (ERR_NETWORK, StringView()); } void NNTP :: on_socket_error (Socket * sock UNUSED) { _socket_error = true; fire_done_func (ERR_NETWORK, StringView()); } /* namespace { void ensure_trailing_crlf (GString * g) { if (g->len<2 || g->str[g->len-2]!='\r' || g->str[g->len-1]!='\n') g_string_append (g, "\r\n"); } }; */ void NNTP :: write_next_command () { assert (!_commands.empty()); //for (strings_t::const_iterator it=_commands.begin(), end=_commands.end(); it!=end; ++it) // debug ("command [" << *it << ']'); _previous_command = _commands.front (); _commands.pop_front (); debug ("nntp " << this << " writing to socket " << _socket << " on server " << _server << " this command: [" << _previous_command << ']'); _socket->write_command (_previous_command, this); } /*** **** ***/ void NNTP :: help (Listener * l) { _listener = l; _commands.push_back ("HELP \r\n"); write_next_command(); } void NNTP :: enter_group (const Quark& group) { if (group != _group) _commands.push_back (build_command ("GROUP %s\r\n",group.c_str())); } void NNTP :: xover (const Quark & group, Article_Number low, Article_Number high, Listener * l) { _listener = l; enter_group(group); _commands.push_back (build_command ("XOVER %" G_GUINT64_FORMAT"-%" G_GUINT64_FORMAT"\r\n", low, high)); write_next_command (); } void NNTP :: xzver (const Quark & group, Article_Number low, Article_Number high, Listener * l) { _listener = l; enter_group(group); _commands.push_back (build_command ("XZVER %" G_GUINT64_FORMAT"-%" G_GUINT64_FORMAT"\r\n", low, high)); write_next_command (); } //TODO void NNTP :: xover_count_only (const Quark & group, Listener * l) { _listener = l; enter_group(group); _commands.push_back (build_command ("XOVER")); write_next_command (); } void NNTP :: list_newsgroups (Listener * l) { _listener = l; _commands.push_back ("LIST NEWSGROUPS\r\n"); write_next_command (); } void NNTP :: list (Listener * l) { _listener = l; _commands.push_back ("LIST\r\n"); write_next_command (); } void NNTP :: article (const Quark & group, Article_Number article_number, Listener * l) { _listener = l; enter_group(group); _commands.push_back (build_command ("ARTICLE %" G_GUINT64_FORMAT"\r\n", article_number)); write_next_command (); } void NNTP :: article (const Quark & group, const char * message_id, Listener * l) { _listener = l; enter_group(group); _commands.push_back (build_command ("ARTICLE %s\r\n", message_id)); write_next_command (); } void NNTP :: get_headers (const Quark & group, const char * message_id, Listener * l) { _listener = l; enter_group(group); _commands.push_back (build_command ("HEAD %s\r\n", message_id)); write_next_command (); } void NNTP :: get_headers (const Quark & group, Article_Number article_number, Listener * l) { _listener = l; enter_group(group); _commands.push_back (build_command ("HEAD %" G_GUINT64_FORMAT"\r\n", article_number)); write_next_command (); } void NNTP :: get_body (const Quark & group, const char * message_id, Listener * l) { _listener = l; enter_group(group); _commands.push_back (build_command ("BODY %s\r\n", message_id)); write_next_command (); } void NNTP :: get_body (const Quark & group, Article_Number article_number, Listener * l) { _listener = l; enter_group(group); _commands.push_back (build_command ("BODY %" G_GUINT64_FORMAT"\r\n", article_number)); write_next_command (); } void NNTP :: group (const Quark & group, Listener * l) { _listener = l; _commands.push_back (build_command ("GROUP %s\r\n", group.c_str())); debug ("_commands.size(): " << _commands.size()); write_next_command (); } void NNTP :: goodbye (Listener * l) { _listener = l; _commands.push_back ("QUIT\r\n"); write_next_command (); } void NNTP :: handshake (Listener * l) { _listener = l; // queue up two or three commands: // (1) handshake, which is an empty string // (2) if we've got a username, offer it to the server. // (3) mode reader. the `group' command is only available after `mode reader'. (#343814) _commands.push_back (""); if (!_username.empty()) { char buf[512]; snprintf (buf, sizeof(buf), "AUTHINFO USER %s\r\n", _username.c_str()); _commands.push_back (buf); } _commands.push_back ("MODE READER\r\n"); write_next_command (); } void NNTP :: noop (Listener * l) { _listener = l; _commands.push_back ("MODE READER\r\n"); write_next_command (); } namespace { // non-recursive search and replace. void replace_linear (std::string& s, const char* old_text, const char * new_text) { std::string::size_type pos (0); while (((pos = s.find (old_text, pos))) != std::string::npos) { s.replace (pos, strlen(old_text), new_text); pos += strlen(new_text); } } } void NNTP :: post (const StringView & msg, Listener * l) { _listener = l; std::string s (msg.str, msg.len); if (s.empty() || s[s.size()-1]!='\n') s += '\n'; replace_linear (s, "\n.", "\n.."); replace_linear (s, "\n", "\r\n"); replace_linear (s, "\r\r\n.", "\r\n"); s += ".\r\n"; // if we're in mute mode, don't post if (0) { std::cerr << LINE_ID << "Mute: Your Message won't be posted." << std::endl << "Your Message:" << std::endl << s << std::endl << "" << std::endl; } else { _post = s; _commands.push_back ("POST\r\n"); write_next_command (); } } } pan-0.162/pan/tasks/nntp.h000066400000000000000000000276071475412772400153640ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #ifndef __NNTP_h__ #define __NNTP_h__ #include #include #include // for UNUSED #include #include #include #include #include namespace pan { /** * Asynchronously processes NNTP protocol commands. * * @ingroup tasks */ class NNTP: private Socket::Listener { public: enum { AUTH_REQUIRED = 480, AUTH_NEED_MORE = 381, AUTH_ACCEPTED = 281, AUTH_REJECTED = 482, SERVER_READY = 200, SERVER_READY_NO_POSTING = 201, SERVER_READY_STREAMING_OK = 203, GOODBYE = 205, GROUP_RESPONSE = 211, GROUP_NONEXISTENT = 411, INFORMATION_FOLLOWS = 215, XOVER_FOLLOWS = 224, XOVER_NO_ARTICLES = 420, ARTICLE_FOLLOWS = 220, NEWGROUPS_FOLLOWS = 231, ARTICLE_POSTED_OK = 240, FEATURE_ENABLED = 290, SEND_ARTICLE_NOW = 340, NO_POSTING = 440, POSTING_FAILED = 441, DUPE_ARTICLE = 435, // sent additionally to 441 TOO_MANY_CONNECTIONS = 400, NO_GROUP_SELECTED = 412, NO_SUCH_ARTICLE_NUMBER = 423, NO_SUCH_ARTICLE = 430, ERROR_CMD_NOT_UNDERSTOOD = 500, ERROR_CMD_NOT_SUPPORTED = 501, NO_PERMISSION = 502, FEATURE_NOT_SUPPORTED = 503 }; /** * Base class for objects that listen for NNTP events. * * NNTP responses are lists of lines (like on XOVER and * ARTICLE requests) and one-line status messages. * these correspond to on_nntp_line() and on_nntp_done(). * A special case is made for the GROUP command's response * so the client can get back the group's information fields. * * @ingroup tasks * @see NNTP */ struct Listener { Listener () {} virtual ~Listener () {} /** * Invoked for each line of an NNTP server's list responses, * such as a list of headers for an XOVER command or a list of * lines for an ARTICLE command. */ virtual void on_nntp_line (NNTP * nntp UNUSED, const StringView & line UNUSED) {} /** * Called at the end of an NNTP command. If the command was * one that produced a list, on_nntp_line() may have been * called before this. * * When this is called, the listener can safely clean up * anything associated with processing the command. * * @param health returns OK, ERR_NETWORK, or ERR_SERVER. * ERR_LOCAL is never used here. */ virtual void on_nntp_done (NNTP * nntp UNUSED, Health health UNUSED, const StringView & response UNUSED) {} virtual void on_xover_done (NNTP * nntp UNUSED, Health health UNUSED, const StringView & response UNUSED) {} /** * Called whenever an NNTP object sets the current group. */ virtual void on_nntp_group (NNTP * nntp UNUSED, const Quark & group UNUSED, Article_Count estimated_qty UNUSED, Article_Number low UNUSED, Article_Number high UNUSED) {} }; public: NNTP (const Quark & server, const std::string & username, const std::string & password, ServerInfo & info, Socket * socket): _server(server), _server_info(info), _socket(socket), _socket_error(false), _listener(nullptr), _username(username), _password(password), _nntp_response_text(false), _compression(false) {} virtual ~NNTP () {} public: /* Internal only */ void enter_group (const Quark& group); void get_headers (const Quark & group, const char * message_id, Listener * l); void get_headers (const Quark & group, Article_Number article_number, Listener * l); void get_body (const Quark & group, const char * message_id, Listener * l); void get_body (const Quark & group, Article_Number article_number, Listener * l); /** * Lists all available commands. */ void help (Listener * l); /** * Executes a handshake command. * * This is actually an empty string, but the * news server will respond to it. */ void handshake (Listener * l); /** * Executes an XOVER command: "XOVER low-high" * * If successful, this will invoke Listener::on_nntp_line() * for each article header line we get back. * * Listener::on_nntp_done() will be called whether the * command is successful or not. */ void xover (const Quark & group, Article_Number low, Article_Number high, Listener * l); void xzver (const Quark & group, Article_Number low, Article_Number high, Listener * l); /** * Executes an XOVER command: "XOVER" to count * the xover numbers internally * * If successful, this will invoke Listener::on_nntp_line() * for each article header line we get back. * * Listener::on_nntp_done() will be called whether the * command is successful or not. */ void xover_count_only (const Quark & group, Listener * l); /** * Executes a LIST command: "LIST" * * If successful, this will invoke Listener::on_nntp_line() * for each newsgroup we get back. * * Listener::on_nntp_done() will be called whether the * command is successful or not. */ void list (Listener * l); /** * Executes a LIST command: "LIST GROUPS" * * If successful, this will invoke Listener::on_nntp_line() * for each newsgroup we get back. * * Listener::on_nntp_done() will be called whether the * command is successful or not. */ void list_newsgroups (Listener * l); /** * Executes an ARTICLE command: "ARTICLE article_number" * * If the NNTP's state isn't currently in the right group, * a group() command will be called first. * * If successful, this will invoke Listener::on_nntp_line() * for each line of the article we get back. * * Listener::on_nntp_done() will be called whether the * command is successful or not. It will only be called * once, at the end of the article() command, even if we had * to change groups. */ void article (const Quark & group, Article_Number article_number, Listener * l); /** * Executes an ARTICLE command: "ARTICLE message-id" * * If the NNTP's state isn't currently in the right group, * a group() command will be called first. * * If successful, this will invoke Listener::on_nntp_line() * for each line of the article we get back. * * Listener::on_nntp_done() will be called whether the * command is successful or not. It will only be called * once, at the end of the article() command, even if we had * to change groups. */ void article (const Quark & group, const char * message_id, Listener * l); /** * Executes an GROUP command: "GROUP groupname" * * If successful, this will invoke Listener::on_nntp_group(). * for each line of the article we get back. * * Listener::on_nntp_done() will be called whether the * command is successful or not. */ void group (const Quark & group, Listener * l); /** * Executes a QUIT command: "QUIT" * * Listener::on_nntp_done() will be called whether the * command is successful or not. */ void goodbye (Listener * l); /** * Executes a short, non-state-changing command ("MODE READER") * to keep the session from timing out. * * Listener::on_nntp_done() will be called whether the * command is successful or not. */ void noop (Listener * l); void post (const StringView & message, Listener * l); void cancel (const Quark & message_id, Listener * l); public: const Quark _server; ServerInfo& _server_info; Quark _group; Socket * _socket; bool _socket_error; const std::string& get_username() { return _username; } protected: Listener * _listener; /** Kept in case the server gives prompts us for it. */ const std::string _username; /** Kept in case the server gives prompts us for it. */ const std::string _password; /** Used to remember the article send in via post(). */ std::string _post; /** True if the server told us that we're getting a list back. */ bool _nntp_response_text; typedef std::deque strings_t; strings_t _commands; std::string _previous_command; void write_next_command (); void fire_done_func (Health, const StringView& response); public: /** session flag for compression (gzip-style) (giganews etc.)*/ bool _compression; private: // private socket listener funcs, for socket handshake virtual bool on_socket_response (Socket*, const StringView& line); virtual void on_socket_error (Socket*); virtual void on_socket_abort (Socket*); public: /** * Interface class specifying how to dispose of an NNTP. */ struct Source { Source () {} virtual ~Source () {} virtual void check_in (NNTP*, Health health) = 0; }; }; } #endif /* __NNTP_H__ */ pan-0.162/pan/tasks/nzb-test.cc000066400000000000000000000105221475412772400162750ustar00rootroot00000000000000#include #include #include #include #include #include #include #include "nzb.h" #include "task-article.h" using namespace pan; struct MyServerRank: public ServerRank { virtual int get_server_rank (const Quark&) const override { return 1; } }; struct MyGroupServer: public GroupServer { std::map& g2s; MyGroupServer (std::map& g): g2s(g) {} virtual ~MyGroupServer () {} void server_get_groups (const Quark&, quarks_t&) const override { /*ignored*/ } void group_get_servers (const Quark& group, quarks_t& setme) const override { setme.clear (); if (g2s.count (group)) setme = g2s.find(group)->second; } }; struct MyArticleRead: public ArticleRead { virtual ~MyArticleRead () {} bool is_read (const Article*) const override { return false; } void mark_read (const Article&, bool) override {} void mark_read (const Article**, unsigned long, bool) override {} }; int main () { const char * test_1 = "\n" "\n" "\n" " \" date=\"1071674882\" subject=\"Here's your file! abc-mr2a.r01 (1/2)\">\n" " \n" " alt.binaries.newzbin\n" " alt.binaries.mojo\n" " \n" " \n" " 123456789abcdef@news.newzbin.com\n" " 987654321fedbca@news.newzbin.com\n" " \n" " \n" ""; std::map gmap; gmap["alt.binaries.newzbin"].insert ("giganews"); gmap["alt.binaries.newzbin"].insert ("cox"); gmap["alt.binaries.mojo"].insert ("giganews"); MyServerRank ranks; MyGroupServer gs (gmap); ArticleCache cache ("/tmp"); EncodeCache e_cache ("/tmp"); MyArticleRead read; StringView v (test_1); std::vector tasks; NZB :: tasks_from_nzb_string (v, StringView("/tmp"), cache, e_cache, read, ranks, gs, tasks); check (tasks.size() == 1) const Article a (dynamic_cast(tasks[0])->get_article()); check (a.author == "Joe Bloggs ") check (a.subject == "Here's your file! abc-mr2a.r01 (1/2)") check (a.get_total_part_count() == 2) check (a.get_found_part_count() == 2) check (a.message_id == "<123456789abcdef@news.newzbin.com>") check (a.time_posted == 1071674882) check (a.xref.size() == 3) std::string part_mid; Parts::bytes_t part_bytes; check (a.get_part_info (1u, part_mid, part_bytes)) check (part_bytes == 102394) check (part_mid == "<123456789abcdef@news.newzbin.com>") Quark group; uint64_t number; check (a.xref.find ("cox", group, number)) check (group == "alt.binaries.newzbin") check (number == 0) check (a.xref.find ("giganews", group, number)) check (group=="alt.binaries.newzbin" || group=="alt.binaries.mojo") check (number==0) check (a.get_part_info (2, part_mid, part_bytes)) check (part_bytes == 4501) std::ostringstream out_stream; NZB :: nzb_to_xml (out_stream, tasks); std::string out (out_stream.str ()); std::string expected = "\n" "\n" "\n" " \n" " /tmp\n" " \n" " alt.binaries.newzbin\n" " alt.binaries.mojo\n" " \n" " \n" " 123456789abcdef@news.newzbin.com\n" " 987654321fedbca@news.newzbin.com\n" " \n" " \n" "\n"; check (out == expected) for (std::vector::iterator it(tasks.begin()), end(tasks.end()); it!=end; ++it) delete *it; return 0; } pan-0.162/pan/tasks/nzb.cc000066400000000000000000000300331475412772400153170ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #include "nzb.h" #include "task-article.h" #include "task-upload.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include namespace pan { namespace { GMimeMessage * import_msg(const StringView filename) { std::string txt; GMimeMessage * msg(NULL); if (file :: get_text_file_contents (filename, txt)) { GMimeStream * stream = g_mime_stream_mem_new_with_buffer (txt.c_str(), txt.size()); GMimeParser * parser = g_mime_parser_new_with_stream (stream); msg = g_mime_parser_construct_message (parser, NULL); g_object_unref (G_OBJECT(parser)); g_object_unref (G_OBJECT(stream)); } //delete msg on disk unlink(filename.str); return msg; } } namespace { typedef std::vector tasks_t; struct MyContext { quarks_t groups; std::string text; std::string path; std::string paused; PartBatch parts; tasks_t tasks; Article a; ArticleCache& cache; EncodeCache& encode_cache; ArticleRead& read; const ServerRank& ranks; const GroupServer& gs; Quark server; const StringView fallback_path; size_t bytes; size_t number; MyContext (ArticleCache& ac, EncodeCache& ec, ArticleRead& r, const ServerRank& rank, const GroupServer& g, const StringView& p): cache(ac), encode_cache(ec), read(r), ranks(rank), gs(g), fallback_path(p), bytes(0), number(0) { } void file_clear () { groups.clear (); text.clear (); path.clear (); paused.clear (); a.clear (); bytes = 0; number = 0; } }; // called for open tags void start_element (GMarkupParseContext *context UNUSED, const gchar *element_name, const gchar **attribute_names, const gchar **attribute_vals, gpointer user_data, GError **error UNUSED) { static Quark null_mid; MyContext& mc (*static_cast(user_data)); if (!strcmp (element_name, "file")) { mc.file_clear (); for (const char **k(attribute_names), **v(attribute_vals); *k; ++k, ++v) { if (!strcmp (*k,"poster")) mc.a.author = *v; else if (!strcmp (*k,"subject")) mc.a.subject = *v; else if (!strcmp (*k,"date")) mc.a.time_posted = strtoul(*v,nullptr,10); } } else if (!strcmp (element_name, "segments")) { mc.parts.init (null_mid); } else if (!strcmp (element_name, "segment")) { mc.bytes = 0; mc.number = 0; for (const char **k(attribute_names), **v(attribute_vals); *k; ++k, ++v) { if (!strcmp (*k,"bytes")) mc.bytes = strtoul (*v,nullptr,10); else if (!strcmp (*k,"number")) mc.number = atoi (*v); } } } // Called for close tags void end_element (GMarkupParseContext *context UNUSED, const gchar *element_name, gpointer user_data, GError **error UNUSED) { MyContext& mc (*static_cast(user_data)); if (!strcmp(element_name, "group")) { mc.groups.insert (Quark (mc.text)); } else if (!strcmp(element_name, "segment") && mc.number && !mc.text.empty()) { const std::string mid ("<" + mc.text + ">"); if (mc.a.message_id.empty()) { mc.a.message_id = mid; mc.parts.init (mid); } mc.parts.add_part (mc.number, mid, mc.bytes); } else if (!strcmp(element_name,"path")) mc.path = mc.text; else if (!strcmp(element_name,"paused")) mc.paused = mc.text; else if (!strcmp (element_name, "file")) { mc.parts.sort (); mc.a.set_parts (mc.parts); foreach_const (quarks_t, mc.groups, git) { quarks_t servers; mc.gs.group_get_servers (*git, servers); foreach_const (quarks_t, servers, sit) mc.a.xref.insert (*sit, *git, static_cast(0)); } const StringView p (mc.path.empty() ? mc.fallback_path : StringView(mc.path)); /// TODO get action mark read from prefs (?) TaskArticle* a = new TaskArticle (mc.ranks, mc.gs, mc.a, mc.cache, mc.read, TaskArticle::NO_ACTION, nullptr, TaskArticle::DECODE, p); if (mc.paused == "1") a->set_start_paused(true); mc.tasks.push_back (a); } } void text (GMarkupParseContext *context UNUSED, const gchar *text, gsize text_len, gpointer user_data, GError **error UNUSED) { static_cast(user_data)->text.assign (text, text_len); } } void NZB :: tasks_from_nzb_string (const StringView & nzb_in, const StringView & save_path, ArticleCache & cache, EncodeCache & encode_cache, ArticleRead & read, const ServerRank & ranks, const GroupServer & gs, std::vector & appendme) { const std::string nzb (clean_utf8 (nzb_in)); MyContext mc (cache, encode_cache, read, ranks, gs, save_path); GMarkupParser p; p.start_element = start_element; p.end_element = end_element; p.text = text; p.passthrough = nullptr; p.error = nullptr; GMarkupParseContext* c ( g_markup_parse_context_new (&p, (GMarkupParseFlags)0, &mc, nullptr)); GError * gerr (nullptr); g_markup_parse_context_parse (c, nzb.c_str(), nzb.size(), &gerr); if (gerr) { Log::add_urgent (gerr->message); g_error_free (gerr); } g_markup_parse_context_free (c); appendme.insert (appendme.end(), mc.tasks.begin(), mc.tasks.end()); } void NZB :: tasks_from_nzb_file (const StringView & filename, const StringView & save_path, ArticleCache & c, EncodeCache & ec, ArticleRead & r, const ServerRank & ranks, const GroupServer & gs, std::vector & appendme) { std::string nzb; if (file :: get_text_file_contents (filename, nzb)) tasks_from_nzb_string (nzb, save_path, c, ec, r, ranks, gs, appendme); } namespace { const int indent_char_len (2); std::string indent (int depth) { return std::string(depth*indent_char_len, ' '); } std::ostream& escaped (std::ostream& out, const StringView& s_in) { foreach_const (StringView, s_in, pch) { switch (*pch) { case '&': out << "&"; break; case '<': out << "<"; break; case '>': out << ">"; break; case '\'': out << "'"; break; case '"': out << """; break; default: out << *pch; break; } } return out; } } namespace { std::ostream &print_article( std::ostream &out, Article const &a, bool task_dump = false, bool paused = false, Quark const *path = nullptr) { int depth = 1; out << indent(depth++) << "), but nzb wants (1/) std::string subject(a.subject); //Not doing this for task dump as I'm not entirely sure what task dump expects //to load if (not task_dump) { subject = std::regex_replace(subject, std::regex("\\((/[0-9]*\\))$"), "(1$1"); } escaped (out, subject) << "\">\n"; if (task_dump) { // path to save this to. // This isn't part of the nzb spec. if (!path->empty()) { out << indent(depth) << ""; escaped (out, path->to_view()); out << "\n"; } out << indent(depth) <<""; out << paused << "\n"; } // what groups was this crossposted in? quarks_t groups; foreach_const (Xref, a.xref, xit) groups.insert (xit->group); out << indent(depth++) << "\n"; foreach_const (quarks_t, groups, git) out << indent(depth) << "" << *git << "\n"; out << indent(--depth) << "\n"; // now for the parts... out << indent(depth++) << "\n"; for (Article::part_iterator it(a.pbegin()), end(a.pend()); it!=end; ++it) { std::string mid = it.mid (); // remove the surrounding < > as per nzb spec if (mid.size()>=2 && mid[0]=='<') { mid.erase (0, 1); mid.resize (mid.size()-1); } // serialize this part out << indent(depth) << ""; escaped(out, mid); out << "\n"; } out << indent(--depth) << "\n"; out << indent(--depth) << "\n"; return out; } } std::ostream &NZB::print_header(std::ostream &out) { out << "\n" << "\n" << "\n"; return out; } std::ostream &NZB::print_footer(std::ostream &out) { return out << "\n"; } /* Saves all current tasks to ~/.$PAN_HOME/tasks.nzb */ std::ostream& NZB :: nzb_to_xml (std::ostream & out, const std::vector & tasks) { print_header(out); foreach_const (tasks_t, tasks, it) { TaskArticle * task (dynamic_cast(*it)); if (task) { if (task->get_save_path().empty()) { // this task is for reading, not saving... continue; } print_article(out, task->get_article(), true, task->start_paused(), &task->get_save_path()); } } return print_footer(out); } /* Saves upload_list to XML file for distribution */ std::ostream& NZB :: upload_list_to_xml_file (std::ostream & out, const std::vector & tasks) { foreach_const (std::vector, tasks, it) { print_article(out, **it); } return out; } /* Saves selected article-info to a chosen XML file */ std::ostream& NZB :: nzb_to_xml_file (std::ostream & out, const std::vector & tasks) { print_header(out); foreach_const (tasks_t, tasks, it) { TaskArticle * task (dynamic_cast(*it)); if (!task) { // not a download task, for example an upload task... continue; } print_article(out, task->get_article()); } return print_footer(out); } } pan-0.162/pan/tasks/nzb.h000066400000000000000000000053501475412772400151650ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #ifndef __NZB_H__ #define __NZB_H__ #include #include #include namespace pan { class StringView; class ArticleCache; class Task; /** * Converts NZB files in to a vector of TaskArticle objects, and vice versa. * @ingroup tasks */ struct NZB { static void tasks_from_nzb_string (const StringView & nzb, const StringView & save_path, ArticleCache & cache, EncodeCache & encode_cache, ArticleRead & read, const ServerRank & ranks, const GroupServer & gs, std::vector & appendme); static void tasks_from_nzb_file (const StringView & filename, const StringView & save_path, ArticleCache & cache, EncodeCache & encode_cache, ArticleRead & read, const ServerRank & ranks, const GroupServer & gs, std::vector & appendme); static std::ostream& nzb_to_xml (std::ostream & out, const std::vector & tasks); static std::ostream& upload_list_to_xml_file (std::ostream& out, const std::vector & tasks); static std::ostream& nzb_to_xml_file (std::ostream & out, const std::vector & tasks); static std::ostream &print_header(std::ostream &out); static std::ostream &print_footer(std::ostream &out); }; } #endif pan-0.162/pan/tasks/queue.cc000066400000000000000000000577121475412772400156670ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #include #include #include #include #include #include "queue.h" #include "task.h" /*** **** ***/ // TODO Mulithreading downloads! using namespace pan; Queue :: task_states_t :: task_states_t () : _decoding (NULL) , _encoding (NULL) { } Queue :: Queue (ServerInfo & server_info, TaskArchive & archive, Data & data, SocketCreator * socket_creator, CertStore & certstore, Prefs & prefs, WorkerPool & pool, bool online, int save_delay_secs): _server_info (server_info), _is_online (online), _socket_creator (socket_creator), _worker_pool (pool), _decoder (pool), _encoder (pool), _decoder_task (nullptr), _encoder_task (nullptr), _save_delay_secs (save_delay_secs), _needs_saving (false), _last_time_saved (0), _archive (archive), _uploads_total(0), _downloads_total(0), _certstore(certstore), _prefs (prefs) { data.set_queue(this); tasks_t tasks; _archive.load_tasks (tasks); add_tasks (tasks, BOTTOM); _tasks.add_listener (this); } Queue :: ~Queue () { _tasks.remove_listener (this); foreach (pools_t, _pools, it) delete it->second; _pools.clear (); clean_n_save(); foreach (TaskSet, _tasks, it) delete *it; } void Queue :: on_pool_has_nntp_available (const Quark& server) { Task * task = find_first_task_needing_server (server); if (task != nullptr) process_task (task); } void Queue :: on_pool_error (const Quark& server UNUSED, const StringView& message) { fire_queue_error (message); } NNTP_Pool& Queue :: get_pool (const Quark& servername) { NNTP_Pool * pool (nullptr); pools_t::iterator it (_pools.find (servername)); if (it != _pools.end()) { pool = it->second; } else // have to build one { pool = new NNTP_Pool (servername, _server_info, _prefs, _socket_creator, _certstore); pool->add_listener (this); _pools[servername] = pool; } return *pool; } /*** **** ***/ void Queue :: clean_n_save () { const tasks_t tmp (_tasks.begin(), _tasks.end()); // remove completed tasks. foreach_const (tasks_t, tmp, it) { Task * task (*it); const Task::State& state (task->get_state()); if (state._work==Task::COMPLETED || _removing.count(task)) remove_task (task); } // maybe save the task list. // only do it once in awhile to prevent thrashing. const time_t now (time(nullptr)); if (_needs_saving && _last_time_saved<(now-_save_delay_secs)) { _archive.save_tasks (tmp); _needs_saving = false; _last_time_saved = time(nullptr); } } void Queue :: upkeep () { clean_n_save(); const tasks_t tmp (_tasks.begin(), _tasks.end()); // do upkeep on the first queued task. // the CPU goes crazy if we run upkeep on _all_ queued tasks, // but we need to run upkeep on at least one queued task // to wake up the queue if it's stuck from a bad connection. // ref #352170, #354779 foreach_const (tasks_t, tmp, it) { Task * task (*it); if (task->get_state()._work == Task::NEED_NNTP ) { process_task (task); break; } } // upkeep on running tasks... this lets us pop open // extra connections if the task can handle >1 connection std::set active; foreach (nntp_to_task_t, _nntp_to_task, it) active.insert (it->second); foreach (std::set, active, it) process_task (*it); // idle socket upkeep foreach (pools_t, _pools, it) it->second->idle_upkeep (); // maybe fire counts changed events... fire_if_counts_have_changed (); } void Queue :: fire_if_counts_have_changed () { // if our number of connections has changed, fire an event... static int previous_count (-1); int count (0); foreach_const (pools_t, _pools, it) { int active, idle, pending, max; it->second->get_counts (active, idle, pending, max); count += (active + idle + pending); } const bool count_changed (previous_count != count); previous_count = count; if (count_changed) fire_connection_count_changed (count); // if our number of tasks has changed, fire an event... static int prev_active (-1); static int prev_total (-1); int active, total; get_task_counts (active, total); const bool counts_changed (active!=prev_active || total!=prev_total); prev_active = active; prev_total = total; if (counts_changed) fire_size_changed (active, total); } void Queue :: get_task_counts (int& active, int& total) { std::set active_tasks; foreach_const (nntp_to_task_t, _nntp_to_task, it) active_tasks.insert (it->second); if (_decoder_task) active_tasks.insert (_decoder_task); if (_encoder_task) active_tasks.insert (_encoder_task); active = active_tasks.size (); total = _tasks.size (); } void Queue :: give_task_a_decoder (Task * task) { const bool was_active (task_is_active (task)); _decoder_task = task; if (!was_active) fire_task_active_changed (task, true); task->give_decoder (this, &_decoder); // it's active now... } void Queue :: give_task_a_encoder (Task * task) { const bool was_active (task_is_active (task)); _encoder_task = task; if (!was_active) fire_task_active_changed (task, true); task->give_encoder (this, &_encoder); // it's active now... } void Queue :: give_task_a_connection (Task * task, NNTP * nntp) { const bool was_active (task_is_active (task)); _nntp_to_task[nntp] = task; // it's active now... if (!was_active) fire_task_active_changed (task, true); nntp->_socket->reset_speed_counter (); task->give_nntp (this, nntp); } void Queue :: give_task_an_upload_slot (TaskUpload* task) { int max (_server_info.get_server_limits(task->_server)); if (_uploads.size() < max) { _uploads.insert(task); task->wakeup(); fire_task_active_changed (task, true); process_task(task); } } void Queue :: give_task_a_download_slot (TaskArticle* task) { int max (8);//DBG!!(_server_info.get_server_limits(task->_server)); if (_downloads.size() < max) { _downloads.insert(task); task->wakeup(); fire_task_active_changed (task, true); process_task(task); } } void Queue :: process_task (Task * task) { pan_return_if_fail (task != nullptr); debug ("in process_task with a task of type " << task->get_type()); const Task::State& state (task->get_state()); if (state._work == Task::COMPLETED) { debug ("completed"); remove_task (task); } else if (_removing.count(task)) { debug ("removing"); remove_task (task); } else if (_stopped.count(task)) { debug ("stopped"); task->stop(); } else if (state._health == ERR_COMMAND || state._health == ERR_LOCAL) { debug ("fail"); // do nothing } else if (state._health==ERR_NOSPACE) { debug ("no space"); set_online(false); } else if (state._work == Task::WORKING) { debug ("working"); } else if (state._work == Task::INITIAL) { TaskUpload* t = dynamic_cast(task); if (t) give_task_an_upload_slot(t); // todo multihtreading for taskarticle // TaskArticle* t2 = dynamic_cast(task); // if (t2) // give_task_a_download_slot(t2); } else if (state._work == Task::NEED_DECODER) { if (!_decoder_task) give_task_a_decoder (task); } else if (state._work == Task::NEED_ENCODER) { if (!_encoder_task) give_task_a_encoder (task); } else while (_is_online && (state._work == Task::NEED_NNTP)) { debug("online"); // make the requests... const Task::State::unique_servers_t& servers (state._servers); foreach_const (Task::State::unique_servers_t, servers, it) { if (_certstore.in_blacklist(*it)) continue; get_pool(*it).request_nntp (_worker_pool); } Quark server; if (!find_best_server (servers, server)) { debug("break"); break; } NNTP * nntp (get_pool(server).check_out ()); if (!nntp) { debug("break"); break; } give_task_a_connection (task, nntp); } } /*** **** ***/ Task* Queue :: find_first_task_needing_decoder () { foreach (TaskSet, _tasks, it) { const Task::State& state ((*it)->get_state ()); if ((state._work == Task::NEED_DECODER) && (!_stopped.count (*it)) && (!_removing.count (*it))) return *it; } return nullptr; } Task* Queue :: find_first_task_needing_encoder () { foreach (TaskSet, _tasks, it) { const Task::State& state ((*it)->get_state ()); if ((state._work == Task::NEED_ENCODER) && (!_stopped.count (*it)) && (!_removing.count (*it))) return *it; } return nullptr; } Task* Queue :: find_first_task_needing_server (const Quark& server) { foreach (TaskSet, _tasks, it) { const Task::State& state ((*it)->get_state ()); if (state._health != ERR_COMMAND && state._health != ERR_LOCAL && state._health != ERR_NOSPACE && (state._work == Task::NEED_NNTP) && (state._servers.count(server)) && (!_stopped.count (*it)) && (!_removing.count (*it))) return *it; } return nullptr; } bool Queue :: find_best_server (const Task::State::unique_servers_t& servers, Quark& setme) { int max_score (0); Quark best_server; foreach_const (Task::State::unique_servers_t, servers, it) { const Quark& server (*it); const NNTP_Pool& pool (get_pool(server)); int score (0); if (_is_online) { int active, idle, pending, max; pool.get_counts (active, idle, pending, max); const int empty_slots (max - (idle+active)); score = idle*10 + empty_slots; } if (score > max_score) { max_score = score; best_server = server; } } if (max_score) setme = best_server; return max_score!=0; } /*** **** ***/ void Queue :: on_set_items_added (TaskSet& container UNUSED, TaskSet::items_t& tasks, int pos) { _needs_saving = true; fire_tasks_added (pos, tasks.size()); } void Queue :: on_set_item_removed (TaskSet& container UNUSED, Task*& task, int pos) { _needs_saving = true; fire_task_removed (task, pos); } void Queue :: on_set_item_moved (TaskSet& container UNUSED, Task*& task, int new_pos, int old_pos) { _needs_saving = true; fire_task_moved (task, new_pos, old_pos); } /*** **** ***/ void Queue :: fire_queue_error (const StringView& message) { for (lit it(_listeners.begin()), end(_listeners.end()); it!=end; ) (*it++)->on_queue_error (*this, message); } void Queue :: fire_tasks_added (int pos, int count) { for (lit it(_listeners.begin()), end(_listeners.end()); it!=end; ) (*it++)->on_queue_tasks_added (*this, pos, count); } void Queue :: fire_task_removed (Task*& task, int pos) { for (lit it(_listeners.begin()), end(_listeners.end()); it!=end; ) (*it++)->on_queue_task_removed (*this, *task, pos); } void Queue :: fire_task_moved (Task*& task, int new_pos, int old_pos) { for (lit it(_listeners.begin()), end(_listeners.end()); it!=end; ) (*it++)->on_queue_task_moved (*this, *task, new_pos, old_pos); } void Queue :: fire_connection_count_changed (int count) { for (lit it(_listeners.begin()), end(_listeners.end()); it!=end; ) (*it++)->on_queue_connection_count_changed (*this, count); } void Queue :: fire_size_changed (int active, int total) { for (lit it(_listeners.begin()), end(_listeners.end()); it!=end; ) (*it++)->on_queue_size_changed (*this, active, total); } void Queue :: fire_online_changed (bool online) { for (lit it(_listeners.begin()), end(_listeners.end()); it!=end; ) (*it++)->on_queue_online_changed (*this, online); } void Queue :: fire_task_active_changed (Task * task, bool active) { for (lit it(_listeners.begin()), end(_listeners.end()); it!=end; ) (*it++)->on_queue_task_active_changed (*this, *task, active); } /*** **** ***/ void Queue :: set_online (bool online) { _is_online = online; fire_online_changed (_is_online); if (_is_online) upkeep (); } void Queue :: stop_tasks (const tasks_t& tasks) { foreach_const (tasks_t, tasks, it) { Task * task (*it); if (_tasks.index_of (task) != -1) { _stopped.insert (task); process_task (task); TaskArticle* ta = dynamic_cast(*it); if (ta) { ta->set_start_paused(true); } } } } void Queue :: restart_tasks (const tasks_t& tasks) { foreach_const (tasks_t, tasks, it) { Task * task (*it); if (_tasks.index_of(task) != -1) { _stopped.erase (task); process_task (task); TaskArticle* ta = dynamic_cast(*it); if (ta) { ta->set_start_paused(false); } } } } void Queue :: add_task (Task * task, AddMode mode) { tasks_t tasks; tasks.push_back (task); add_tasks (tasks, mode); } void Queue :: add_tasks (const tasks_t& tasks, AddMode mode) { foreach_const (tasks_t, tasks, it) { TaskArticle * ta (dynamic_cast(*it)); if (ta) { _mids.insert (ta->get_article().message_id); if (ta->start_paused()) { _stopped.insert(*it); } } } if (mode == TOP) _tasks.add_top (tasks); else if (mode == BOTTOM) _tasks.add_bottom (tasks); else _tasks.add (tasks); // process all new tasks tasks_t tmp (tasks); foreach (tasks_t, tmp, it) process_task (*it); // maybe fire counts changed events... fire_if_counts_have_changed (); } bool Queue :: contains (const Quark& mid) const { return _mids.count (mid); } void Queue :: remove_latest_task () { if (!_tasks.empty()) remove_task (_tasks[_tasks.size()-1]); } bool Queue :: task_is_active (const Task * task) const { if (task && task==_decoder_task) return true; if (task && task==_encoder_task) return true; bool task_has_nntp (false); foreach_const (nntp_to_task_t, _nntp_to_task, it) if ((task_has_nntp = task==it->second)) break; return task_has_nntp; } void Queue :: remove_tasks (const tasks_t& tasks) { foreach_const (tasks_t, tasks, it) remove_task (*it); } void Queue :: remove_task (Task * task) { const int index (_tasks.index_of (task)); pan_return_if_fail (index != -1); if (task_is_active (task)) // wait for the Task to finish { debug ("can't delete this task right now because it's active"); task->stop(); _removing.insert (task); } else // no NNTPs working, we can remove right now. { TaskArticle * ta (dynamic_cast(task)); if (ta) _mids.erase (ta->get_article().message_id); _stopped.erase (task); _removing.erase (task); _tasks.remove (index); // manually upkeep on ONE new taskupload to keep the queue going TaskUpload * t (dynamic_cast(task)); if (t) { int max (_server_info.get_server_limits(t->_server)); _uploads.erase(t); const tasks_t tmp (_tasks.begin(), _tasks.end()); foreach_const (tasks_t, tmp, it) { Task * task (*it); if (task->get_state()._work == Task::INITIAL) { give_task_an_upload_slot(dynamic_cast(*it)); break; } } } delete task; } // maybe fire counts changed events... fire_if_counts_have_changed (); } void Queue :: get_all_task_states (task_states_t& setme) { setme.tasks.clear(); setme.tasks.reserve(_tasks.size()); std::vector & need_decode = setme._need_decode.get_container(); need_decode.clear(); need_decode.reserve(setme.tasks.capacity()); foreach(TaskSet, _tasks, it) { setme.tasks.push_back(*it); if ((*it)->get_state()._work == Task::NEED_DECODER) need_decode.push_back(*it); } setme._need_decode.sort(); setme._queued.get_container() = setme.tasks; setme._queued.sort (); std::vector& stopped (setme._stopped.get_container()); stopped.clear (); stopped.insert (stopped.end(), _stopped.begin(), _stopped.end()); std::vector& removing (setme._removing.get_container()); removing.clear (); removing.insert (removing.end(), _removing.begin(), _removing.end()); std::vector& running (setme._running.get_container()); std::set tmp; foreach (nntp_to_task_t, _nntp_to_task, it) tmp.insert (it->second); running.clear (); running.insert (running.end(), tmp.begin(), tmp.end()); setme._decoding = _decoder_task; } void Queue :: check_in (NNTP * nntp, Health nntp_health) { Task * task (_nntp_to_task[nntp]); // if the same task still needs a connection to this server, // shoot it straight back. This can be a lot faster than // returning the NNTP to the pool and checking it out again. const Task::State state (task->get_state ()); if ((nntp_health != ERR_NETWORK) && _is_online && state._health != ERR_COMMAND && state._health != ERR_LOCAL && state._health != ERR_NOSPACE && (state._work == Task::NEED_NNTP) && !_removing.count(task) && state._servers.count(nntp->_server) && find_first_task_needing_server(nntp->_server)==task) { task->give_nntp (this, nntp); } else { // take care of our nntp counting Task * task (_nntp_to_task[nntp]); _nntp_to_task.erase (nntp); // notify the listeners if the task isn't active anymore... if (!task_is_active (task)) fire_task_active_changed (task, false); // if we encountered a local error, fire an error message. if (state._health == ERR_LOCAL) fire_queue_error (""); // tell if we reached the end of disk space if (state._health == ERR_NOSPACE) fire_queue_error (_("No space left on device.")); // return the nntp to the pool const Quark& servername (nntp->_server); NNTP_Pool& pool (get_pool (servername)); pool.check_in (nntp, nntp_health); // what to do now with this task... process_task (task); } } void Queue :: check_in (Decoder* decoder UNUSED, Task* task) { // take care of our decoder counting... _decoder_task = nullptr; // notify the listeners if the task isn't active anymore... if (!task_is_active (task)) fire_task_active_changed (task, false); // if the task hit an error, fire an error message const Task::State state (task->get_state ()); if (state._health == ERR_LOCAL) fire_queue_error (""); if (state._health == ERR_NOSPACE) fire_queue_error (_("No space left on device.")); // pass our worker thread on to another task Task * next = find_first_task_needing_decoder (); if (next && (next!=task)) process_task (next); // what to do now with this task... process_task (task); } void Queue :: check_in (Encoder* encoder UNUSED, Task* task) { // take care of our decoder counting... _encoder_task = nullptr; // notify the listeners if the task isn't active anymore... if (!task_is_active (task)) fire_task_active_changed (task, false); // if the task hit an error, fire an error message const Task::State state (task->get_state ()); if (state._health == ERR_LOCAL) fire_queue_error (""); if (state._health == ERR_NOSPACE) fire_queue_error (_("No space left on device.")); // pass our worker thread on to another task Task * next = find_first_task_needing_encoder (); if (next && (next!=task)) process_task (next); // what to do now with this task... process_task (task); } void Queue :: move_up (const tasks_t& tasks) { foreach_const (tasks_t, tasks, it) { Task * task (*it); const int old_pos (_tasks.index_of (task)); _tasks.move_up (old_pos); } } void Queue :: move_down (const tasks_t& tasks) { foreach_const_r (tasks_t, tasks, it) { Task * task (*it); const int old_pos (_tasks.index_of (task)); _tasks.move_down (old_pos); } } void Queue :: move_top (const tasks_t& tasks) { foreach_const_r (tasks_t, tasks, it) { Task * task (*it); const int old_pos (_tasks.index_of (task)); _tasks.move_top (old_pos); } } void Queue :: move_bottom (const tasks_t& tasks) { foreach_const (tasks_t, tasks, it) { Task * task (*it); const int old_pos (_tasks.index_of (task)); _tasks.move_bottom (old_pos); } } void Queue :: get_connection_counts (int& setme_active, int& setme_idle, int& setme_connecting) const { setme_active = setme_idle = setme_connecting = 0; foreach_const (pools_t, _pools, it) { int active, idle, connecting, unused; it->second->get_counts (active, idle, connecting, unused); setme_active += active; setme_idle += idle; setme_connecting += connecting; } } void Queue :: get_full_connection_counts (std::vector& setme) const { setme.resize (_pools.size()); ServerConnectionCounts * cit = &setme.front(); int unused; foreach_const (pools_t, _pools, it) { ServerConnectionCounts& counts = *cit++; counts.server_id = it->first; it->second->get_counts (counts.active, counts.idle, counts.connecting, unused); foreach_const (nntp_to_task_t, _nntp_to_task, nit) if (nit->first->_server == counts.server_id) counts.KiBps += nit->first->_socket->get_speed_KiBps (); } } double Queue :: get_speed_KiBps () const { double KiBps (0.0); foreach_const (nntp_to_task_t, _nntp_to_task, it) KiBps += it->first->_socket->get_speed_KiBps (); return KiBps; } void Queue :: get_task_speed_KiBps (const Task * task, double & setme_KiBps, int & setme_connections) const { double KiBps (0.0); int connections (0); foreach_const (nntp_to_task_t, _nntp_to_task, it) { if (it->second==task) { ++connections; KiBps += it->first->_socket->get_speed_KiBps (); } } setme_KiBps = KiBps; setme_connections = connections; } void Queue :: get_stats (unsigned long & queued_count, unsigned long & running_count, unsigned long & stopped_count, uint64_t & KiB_remain, double & KiBps, int & hours_remain, int & minutes_remain, int & seconds_remain) { KiB_remain = 0; KiBps = 0; queued_count = running_count = stopped_count = 0; hours_remain = minutes_remain = seconds_remain = 0; task_states_t tasks; get_all_task_states (tasks); foreach_const (tasks_t, tasks.tasks, it) { Task * task (*it); const Queue::TaskState state (tasks.get_state (task)); if (state == Queue::RUNNING || state == Queue::DECODING || state == Queue::ENCODING) ++running_count; else if (state == Queue::STOPPED) ++stopped_count; else if (state == Queue::QUEUED || state == Queue::QUEUED_FOR_DECODE || state == Queue::QUEUED_FOR_ENCODE) ++queued_count; if (state==Queue::RUNNING || state==Queue::QUEUED) KiB_remain += task->get_bytes_remaining (); } const unsigned long task_count (running_count + queued_count); KiBps = get_speed_KiBps (); if (task_count) { const double KiB ((double)KiB_remain / 1024); unsigned long tmp (KiBps>0.01 ? ((unsigned long)(KiB / KiBps)) : 0); seconds_remain = tmp % 60ul; tmp /= 60ul; minutes_remain = tmp % 60ul; tmp /= 60ul; hours_remain = tmp; } } void Queue :: on_dl_limit_reached () { if (_prefs.get_flag("disconnect-on-dl-limit-reached", false)) set_online (false); } void Queue :: on_reset_xfer_bytes () { set_online (true); } pan-0.162/pan/tasks/queue.h000066400000000000000000000231251475412772400155200ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #ifndef _Queue_h_ #define _Queue_h_ #include #include #include #include // for UNUSED #include #include #include #include #include #include #include #include #include #include #include #include #include #ifdef HAVE_GNUTLS #include #endif namespace pan { class NNTP; class ServerInfo; class WorkerPool; struct Encoder; struct Decoder; /** * A Queue helper that saves tasks to disk and restores them from disk. * * @ingroup tasks * @see NZB */ struct TaskArchive { virtual ~TaskArchive () { } virtual void save_tasks (const std::vector& saveme UNUSED) { } virtual void load_tasks (std::vector& setme UNUSED) { } }; /** * Queues up tasks to be processed by NNTP objects as news server * connections become available. * * @ingroup tasks */ class Queue: public NNTP::Source, public Task::DecoderSource, public Task::EncoderSource, private NNTP_Pool::Listener, private AdaptableSet::Listener { public: Queue (ServerInfo&, TaskArchive&, Data&, SocketCreator*, CertStore&, Prefs&, WorkerPool&, bool online, int save_delay_secs); virtual ~Queue (); typedef std::vector tasks_t; void stop_tasks (const tasks_t&); void restart_tasks (const tasks_t&); void remove_tasks (const tasks_t&); void move_up (const tasks_t&); void move_down (const tasks_t&); void move_top (const tasks_t&); void move_bottom (const tasks_t&); enum AddMode { AGE, TOP, BOTTOM }; void add_tasks (const tasks_t&, AddMode=AGE); void set_online (bool online); void add_task (Task*, AddMode=AGE); void remove_task (Task*); void remove_latest_task (); bool is_online () const { return _is_online; } void upkeep (); bool contains (const Quark& message_id) const; double get_speed_KiBps () const; void get_task_speed_KiBps (const Task*, double& setme_KiBps, int& setme_connections) const; void get_connection_counts (int& setme_active, int& setme_idle, int& setme_connecting) const; struct ServerConnectionCounts { Quark server_id; int active, idle, connecting; double KiBps; ServerConnectionCounts(): active(0), idle(0), connecting(0), KiBps(0.0) {} }; void get_full_connection_counts (std::vector& setme) const; public: enum TaskState { QUEUED, RUNNING, DECODING, ENCODING, STOPPED, REMOVING, QUEUED_FOR_DECODE, QUEUED_FOR_ENCODE}; /** * An ordered collection of tasks and their corresponding TaskState s. */ struct task_states_t { friend class Queue; private: typedef sorted_vector sorted_tasks_t; sorted_tasks_t _queued; sorted_tasks_t _stopped; sorted_tasks_t _running; sorted_tasks_t _removing; sorted_tasks_t _need_decode; sorted_tasks_t _need_encode; Task * _decoding; Task * _encoding; public: task_states_t (); tasks_t tasks; TaskState get_state (Task* task) const { if (_decoding && (task==_decoding)) return DECODING; if (_encoding && (task==_encoding)) return ENCODING; if (_removing.count(task)) return REMOVING; if (_stopped.count(task)) return STOPPED; if (_running.count(task)) return RUNNING; if (_need_decode.count(task)) return QUEUED_FOR_DECODE; if (_need_encode.count(task)) return QUEUED_FOR_ENCODE; if (_queued.count(task)) return QUEUED; return STOPPED; } }; Task* operator[](size_t i) { return _tasks[i]; } const Task* operator[](size_t i) const { return _tasks[i]; } void get_all_task_states (task_states_t& setme); void get_task_counts (int& active, int& total); void get_stats (unsigned long & queued_count, unsigned long & running_count, unsigned long & stopped_count, uint64_t & KiB_remain, double & KiBps, int & hours_remain, int & minutes_remain, int & seconds_remain); public: /** Interface class for objects that listen to a Queue's events */ struct Listener { virtual ~Listener () {} virtual void on_queue_task_active_changed (Queue&, Task&, bool active) = 0; virtual void on_queue_tasks_added (Queue&, int index, int count) = 0; virtual void on_queue_task_removed (Queue&, Task&, int index) = 0; virtual void on_queue_task_moved (Queue&, Task&, int new_index, int old_index) = 0; virtual void on_queue_connection_count_changed (Queue&, int count) = 0; virtual void on_queue_size_changed (Queue&, int active, int total) = 0; virtual void on_queue_online_changed (Queue&, bool online) = 0; virtual void on_queue_error (Queue&, const StringView& message) = 0; }; void add_listener (Listener *l) { _listeners.insert(l); } void remove_listener (Listener *l) { _listeners.erase(l); } public: // inherited from NNTP::Source void check_in (NNTP*, Health) override; public: // inherited from Task::De/EncoderSource void check_in (Decoder*, Task*) override; void check_in (Encoder*, Task*) override; private: // inherited from NNTP_Pool::Listener virtual void on_pool_has_nntp_available (const Quark& server); virtual void on_pool_error (const Quark& server, const StringView& message); protected: void process_task (Task *); void give_task_a_decoder (Task*); void give_task_a_encoder (Task*); void give_task_a_connection (Task*, NNTP*); ServerInfo& _server_info; bool _is_online; Task* find_first_task_needing_server (const Quark& server); Task* find_first_task_needing_decoder (); Task* find_first_task_needing_encoder (); void give_task_an_upload_slot (TaskUpload* task); void give_task_a_download_slot (TaskArticle* task); bool find_best_server (const Task::State::unique_servers_t& servers, Quark& setme); bool task_is_active (const Task*) const; typedef std::map nntp_to_task_t; nntp_to_task_t _nntp_to_task; std::set _uploads; std::set _downloads; std::set _removing; std::set _stopped; SocketCreator * _socket_creator; WorkerPool & _worker_pool; Decoder _decoder; Encoder _encoder; Task * _decoder_task; Task * _encoder_task; protected: virtual void fire_tasks_added (int index, int count); virtual void fire_task_removed (Task*&, int index); virtual void fire_task_moved (Task*&, int index, int old_index); private: typedef std::set listeners_t; typedef listeners_t::iterator lit; listeners_t _listeners; void fire_if_counts_have_changed (); void fire_task_active_changed (Task*, bool); void fire_connection_count_changed (int count); void fire_size_changed (int active, int total); void fire_online_changed (bool online); public: void fire_queue_error (const StringView& message); private: typedef Loki::AssocVector pools_t; pools_t _pools; NNTP_Pool& get_pool (const Quark& server); void request_connections (const quarks_t& servers); private: /** don't save tasks.nzb more frequently than this setting */ int _save_delay_secs; bool _needs_saving; time_t _last_time_saved; quarks_t _mids; public: void set_task_save_delay(int value) { _save_delay_secs = value; } private: TaskArchive& _archive; void clean_n_save (); int _uploads_total, _downloads_total; CertStore& _certstore; Prefs& _prefs; private: typedef AdaptableSet TaskSet; TaskSet _tasks; virtual void on_set_items_added (TaskSet&, TaskSet::items_t&, int index); void on_set_item_removed (TaskSet&, Task*&, int index) override; void on_set_item_moved (TaskSet&, Task*&, int index, int old_index) override; public: virtual void on_xfer_bytes (uint64_t) {} virtual void on_reset_xfer_bytes () ; virtual void on_dl_limit_reached () ; }; } #endif pan-0.162/pan/tasks/socket-impl-gio.cc000066400000000000000000000321771475412772400175440ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #define DEBUG_SOCKET_IO /****** ******* ******/ #include #include #include #include #include extern "C" { #include } #include #include #include #include #include #ifdef G_OS_WIN32 // this #define is necessary for mingw #undef _WIN32_WINNT #define _WIN32_WINNT 0x0501 #include #undef gai_strerror /* #define gai_strerror(i) gai_strerror_does_not_link (i) static const char* gai_strerror_does_not_link (int errval) { static char buf[32]; g_snprintf (buf, sizeof(buf), "Winsock error %d", errval); return buf; } */ static std::string get_last_error (int err, char const *hpbuf) { std::string msg; switch(err) { case WSANOTINITIALISED: msg = "No successful WSAStartup call yet."; break; case WSAENETDOWN: msg = "The network subsystem has failed."; break; case WSAEADDRINUSE: msg = "Fully qualified address already bound"; break; case WSAEADDRNOTAVAIL: msg = "The specified address is not a valid address for this computer."; break; case WSAEFAULT: msg = "Error in socket address"; break; case WSAEINPROGRESS: msg = "A call is already in progress"; break; case WSAEINVAL: msg = "The socket is already bound to an address."; break; case WSAENOBUFS: msg = "Not enough buffers available, too many connections."; break; case WSAENOTSOCK: msg = "The descriptor is not a socket."; break; case 11001: msg = "Host not found"; break; default: msg = "Connect failed"; } return msg + " (" + hpbuf + ")"; } #else #include #include #include #include #include #include #define closesocket(fd) close(fd) #endif #include #include #include #include #include "socket-impl-gio.h" #include "socket-impl-main.h" using namespace pan; #ifndef G_OS_WIN32 extern t_getaddrinfo p_getaddrinfo; extern t_freeaddrinfo p_freeaddrinfo; #endif namespace { GIOChannel * create_channel (const StringView& host_in, int port, std::string& setme_err) { int err; int sockfd; #ifndef G_OS_WIN32 signal (SIGPIPE, SIG_IGN); #endif // get an addrinfo for the host const std::string host (host_in.str, host_in.len); char portbuf[32], hpbuf[255]; g_snprintf (portbuf, sizeof(portbuf), "%d", port); g_snprintf (hpbuf,sizeof(hpbuf),"%s:%s",host_in.str,portbuf); #ifdef G_OS_WIN32 // windows might not have getaddrinfo... if (!p_getaddrinfo) { struct hostent * ans = isalpha (host[0]) ? gethostbyname (host.c_str()) : gethostbyaddr (host.c_str(), host.size(), AF_INET); err = WSAGetLastError(); if (err || !ans) { setme_err = get_last_error (err, hpbuf); return nullptr; } // try opening the socket sockfd = socket (AF_INET, SOCK_STREAM, 0 /*IPPROTO_TCP*/); if (sockfd < 0) return nullptr; // Try connecting int i = 0; err = -1; struct sockaddr_in server; memset (&server, 0, sizeof(struct sockaddr_in)); while (err && ans->h_addr_list[i]) { char *addr = ans->h_addr_list[i]; memcpy (&server.sin_addr, addr, ans->h_length); server.sin_family = AF_INET; server.sin_port = htons(port); ++i; err = connect (sockfd,(struct sockaddr*)&server, sizeof(server)); } if (err) { closesocket (sockfd); setme_err = get_last_error (err, hpbuf); return nullptr; } } else #endif // #ifdef G_OS_WIN32 ... { errno = 0; struct addrinfo hints; memset (&hints, 0, sizeof(struct addrinfo)); hints.ai_flags = 0; hints.ai_family = 0; hints.ai_socktype = SOCK_STREAM; struct addrinfo * ans; err = ::getaddrinfo (host.c_str(), portbuf, &hints, &ans); if (err != 0) { char buf[512]; snprintf (buf, sizeof(buf), _("Error connecting to \"%s\""), hpbuf); setme_err = buf; if (errno) { setme_err += " ("; setme_err += file :: pan_strerror (errno); setme_err += ")"; } return nullptr; } // try to open a socket on any ipv4 or ipv6 addresses we found errno = 0; sockfd = -1; for (struct addrinfo * walk(ans); walk && sockfd<0; walk=walk->ai_next) { // only use ipv4 or ipv6 addresses if ((walk->ai_family!=PF_INET) && (walk->ai_family!=PF_INET6)) continue; // try to create a socket... sockfd = ::socket (walk->ai_family, walk->ai_socktype, walk->ai_protocol); if (sockfd < 0) continue; // and make a connection if (::connect (sockfd, walk->ai_addr, walk->ai_addrlen) < 0) { closesocket (sockfd); sockfd = -1; } } // cleanup ::freeaddrinfo (ans); } // create the giochannel... if (sockfd < 0) { char buf[512]; snprintf (buf, sizeof(buf), _("Error connecting to \"%s\""), hpbuf); setme_err = buf; if (errno) { setme_err += " ("; setme_err += file :: pan_strerror (errno); setme_err += ")"; } return nullptr; } GIOChannel * channel (nullptr); #ifndef G_OS_WIN32 channel = g_io_channel_unix_new (sockfd); g_io_channel_set_flags (channel, G_IO_FLAG_NONBLOCK, NULL); #else channel = g_io_channel_win32_new_socket (sockfd); #endif g_io_channel_set_encoding (channel, NULL, NULL); g_io_channel_set_buffered (channel, true); g_io_channel_set_line_term (channel, "\n", 1); return channel; } } /**** ***** ***** ***** ****/ GIOChannelSocket :: GIOChannelSocket (): _channel (nullptr), _tag_watch (0), _tag_timeout (0), _listener (nullptr), _out_buf (g_string_new (NULL)), _in_buf (g_string_new (NULL)), _io_performed (false) { debug ("GIOChannelSocket ctor " << (void*)this); } namespace { void remove_source (guint& tag) { if (tag) { g_source_remove (tag); tag = 0; } } } GIOChannelSocket :: ~GIOChannelSocket () { debug(" destroying GIO socket "<len); GError * err (nullptr); GString * g (_in_buf); bool more (true); while (more && !_abort_flag) { _io_performed = true; const GIOStatus status (g_io_channel_read_line_string (_channel, g, NULL, &err)); if (status == G_IO_STATUS_NORMAL) { g_string_prepend_len (g, _partial_read.c_str(), _partial_read.size()); //TODO validate! _partial_read.clear (); debug_v ("read [" << g->str << "]"); // verbose debug, if --debug --debug was on the command-line increment_xfer_byte_count (g->len); more = _listener->on_socket_response (this, StringView (g->str, g->len)); } else if (status == G_IO_STATUS_AGAIN) { // see if we've got a partial line buffered up if (_channel->read_buf) { _partial_read.append (_channel->read_buf->str, _channel->read_buf->len); g_string_set_size (_channel->read_buf, 0); } return IO_READ; } else { const char * msg (err ? err->message : _("Unknown Error")); Log::add_err_va (_("Error reading from %s: %s"), _host.c_str(), msg); if (err != NULL) g_clear_error (&err); return IO_ERR; } } return IO_DONE; } GIOChannelSocket :: DoResult GIOChannelSocket :: do_write () { g_assert (_partial_read.empty()); GString * g = _out_buf; #if 0 // #ifdef DEBUG_SOCKET_IO // -2 to trim out trailing \r\n std::cerr << LINE_ID << " channel " << _channel << " writing ["<str,g->len>=2?g->len-2:g->len)<< "]\n"; #endif _io_performed = true; GError * err = nullptr; gsize out = 0; GIOStatus status = g->len ? g_io_channel_write_chars (_channel, g->str, g->len, &out, &err) : G_IO_STATUS_NORMAL; debug ("socket " << this << " channel " << _channel << " maybe wrote [" << g->str << "]; status was " << status); if (status == G_IO_STATUS_NORMAL) status = g_io_channel_flush (_channel, &err); if (err) { Log::add_err (err->message); g_clear_error (&err); return IO_ERR; } if (out > 0) { increment_xfer_byte_count (out); g_string_erase (g, 0, out); } const bool finished = (!g->len) && (status==G_IO_STATUS_NORMAL); if (!finished) return IO_WRITE; // not done writing. if (_listener) return IO_READ; // listener wants to read the server's response return IO_DONE; // done writing and not listening to response. } gboolean GIOChannelSocket :: timeout_func (gpointer sock_gp) { GIOChannelSocket * self (static_cast(sock_gp)); if (!self->_io_performed) { debug ("error: channel " << self->_channel << " not responding."); gio_func (self->_channel, G_IO_ERR, sock_gp); return false; } // wait another TIMEOUT_SECS and check again. self->_io_performed = false; return true; } gboolean GIOChannelSocket :: gio_func (GIOChannel * channel, GIOCondition cond, gpointer sock_gp) { return static_cast(sock_gp)->gio_func (channel, cond); } gboolean GIOChannelSocket :: gio_func (GIOChannel * channel, GIOCondition cond) { debug ("gio_func: sock " << this << ", channel " << channel << ", cond " << cond); set_watch_mode (IGNORE_NOW); if (_abort_flag) { _listener->on_socket_abort (this); } else if (!(cond & (G_IO_IN | G_IO_OUT))) { _listener->on_socket_error (this); } else // G_IO_IN or G_IO_OUT { const DoResult result = (cond & G_IO_IN) ? do_read () : do_write (); if (result == IO_ERR) _listener->on_socket_error (this); else if (result == IO_READ) set_watch_mode (READ_NOW); else if (result == IO_WRITE) set_watch_mode (WRITE_NOW); } return false; // set_watch_now(IGNORE) cleared the tag that called this func } namespace { const unsigned int TIMEOUT_SECS (30); } void GIOChannelSocket :: set_watch_mode (WatchMode mode) { debug ("socket " << this << " calling set_watch_mode " << mode << "; _channel is " << _channel); remove_source (_tag_watch); remove_source (_tag_timeout); guint cond; switch (mode) { case IGNORE_NOW: // don't add any watches debug("channel " << _channel << " setting mode **IGNORE**"); break; case READ_NOW: debug("channel " << _channel << " setting mode read"); cond = (int)G_IO_IN | (int)G_IO_ERR | (int)G_IO_HUP | (int)G_IO_NVAL; _tag_watch = g_io_add_watch (_channel, (GIOCondition)cond, gio_func, this); _tag_timeout = g_timeout_add (TIMEOUT_SECS*1000, timeout_func, this); _io_performed = false; break; case WRITE_NOW: debug("channel " << _channel << " setting mode write"); cond = (int)G_IO_OUT | (int)G_IO_ERR | (int)G_IO_HUP | (int)G_IO_NVAL; _tag_watch = g_io_add_watch (_channel, (GIOCondition)cond, gio_func, this); _tag_timeout = g_timeout_add (TIMEOUT_SECS*1000, timeout_func, this); _io_performed = false; break; } debug ("set_watch_mode " << mode << ": _tag_watch is now " << _tag_watch); } pan-0.162/pan/tasks/socket-impl-gio.h000066400000000000000000000040051475412772400173730ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #ifndef __SocketGIO_h__ #define __SocketGIO_h__ #include #include #include namespace pan { /** * glib implementation of Socket * * @ingroup tasks */ class GIOChannelSocket: public Socket { public: GIOChannelSocket (); virtual ~GIOChannelSocket (); bool open (const StringView& address, int port, std::string& setme_err) override; void get_host (std::string& setme) const override; private: GIOChannel * _channel; unsigned int _tag_watch; unsigned int _tag_timeout; Listener * _listener; GString * _out_buf; GString * _in_buf; std::string _partial_read; std::string _host; bool _io_performed; private: friend class GIOChannelSocketSSL; enum WatchMode { READ_NOW, WRITE_NOW, IGNORE_NOW }; void set_watch_mode (WatchMode mode); void write_command (const StringView& chars, Listener *) override; static gboolean gio_func (GIOChannel*, GIOCondition, gpointer); gboolean gio_func (GIOChannel*, GIOCondition); static gboolean timeout_func (gpointer); enum DoResult { IO_ERR, IO_READ, IO_WRITE, IO_DONE }; DoResult do_read (); DoResult do_write (); }; } #endif pan-0.162/pan/tasks/socket-impl-main.cc000066400000000000000000000074331475412772400177070ustar00rootroot00000000000000 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This file * Copyright (C) 2011 Heinrich Müller * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ /*** **** GIOChannel::SocketCreator -- create a socket in a worker thread ***/ #include //#include //#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "socket-impl-main.h" #ifdef G_OS_WIN32 #undef _WIN32_WINNT #define _WIN32_WINNT 0x0501 #include #undef gai_strerror #endif using namespace pan; namespace { struct ThreadWorker : public WorkerPool::Worker, public WorkerPool::Worker::Listener { ServerInfo& data; std::string err; const Quark server; std::string host; int port; Socket::Creator::Listener * listener; bool ok; Socket * socket; bool use_ssl; CertStore& store; ThreadWorker (ServerInfo& d, const Quark& s, const StringView& h, int p, Socket::Creator::Listener *l, bool ssl, CertStore& cs): data(d), server(s), host(h), port(p), listener(l), ok(false), socket(nullptr), use_ssl(ssl), store(cs) {} void do_work () override { #ifdef HAVE_GNUTLS if (use_ssl) { socket = new GIOChannelSocketGnuTLS (data, server, store); } else #endif socket = new GIOChannelSocket (); ok = socket->open (host, port, err); } /** called in main thread after do_work() is done */ void on_worker_done (bool cancelled UNUSED) override { // pass results to main thread... if (!err.empty()) Log :: add_err (err.c_str()); listener->on_socket_created (host, port, ok, socket); } }; } SocketCreator :: SocketCreator(Data& d, CertStore& cs) : data(d), store(cs) { #ifdef HAVE_GNUTLS gnutls_global_init(); cs.add_listener(this); cs.init(); #endif } SocketCreator :: ~SocketCreator() { #ifdef HAVE_GNUTLS gnutls_global_deinit(); store.remove_listener(this); #endif } void SocketCreator :: create_socket (ServerInfo& info, const Quark& server, const StringView & host, int port, WorkerPool & threadpool, Socket::Creator::Listener * listener) { const bool use_ssl (info.get_server_ssl_support(server)); ensure_module_init (); if (store.in_blacklist(server)) return; ThreadWorker * w = new ThreadWorker (info, server, host, port, listener, use_ssl, store); threadpool.push_work (w, w, true); } #ifdef HAVE_GNUTLS void SocketCreator :: on_verify_cert_failed(gnutls_x509_crt_t cert, std::string server, int nr) {} void SocketCreator :: on_valid_cert_added (gnutls_x509_crt_t cert, std::string server) {} #endif pan-0.162/pan/tasks/socket-impl-main.h000066400000000000000000000077021475412772400175500ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This file * Copyright (C) 2011 Heinrich Müller * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #ifndef __SocketMAIN_h__ #define __SocketMAIN_h__ #ifdef G_OS_WIN32 #include #else #include #include #include #include #include #include #endif #include #include #include "socket.h" #ifdef HAVE_GNUTLS #include #include "socket-impl-openssl.h" #endif #include #include "socket-impl-gio.h" namespace { typedef int (*t_getaddrinfo)(const char *,const char *, const struct addrinfo*, struct addrinfo **); typedef void (*t_freeaddrinfo)(struct addrinfo*); } namespace { static t_getaddrinfo p_getaddrinfo (nullptr); static t_freeaddrinfo p_freeaddrinfo (nullptr); static void ensure_module_init (void) { static bool inited (false); if (!inited) { p_freeaddrinfo=NULL; p_getaddrinfo=NULL; #ifdef G_OS_WIN32 WSADATA wsaData; WSAStartup(MAKEWORD(2,2), &wsaData); char sysdir[MAX_PATH], path[MAX_PATH+8]; if(GetSystemDirectory(sysdir,MAX_PATH)!=0) { HMODULE lib=NULL; FARPROC pfunc=NULL; const char *libs[]={"ws2_32","wship6",NULL}; for(const char **p=libs;*p!=NULL;++p) { g_snprintf(path,MAX_PATH+8,"%s\\%s",sysdir,*p); lib=LoadLibrary(path); if(!lib) continue; pfunc=GetProcAddress(lib,"getaddrinfo"); if(!pfunc) { FreeLibrary(lib); lib=NULL; continue; } p_getaddrinfo=reinterpret_cast(pfunc); pfunc=GetProcAddress(lib,"freeaddrinfo"); if(!pfunc) { FreeLibrary(lib); lib=NULL; p_getaddrinfo=NULL; continue; } p_freeaddrinfo=reinterpret_cast(pfunc); break; } } #else p_freeaddrinfo=::freeaddrinfo; p_getaddrinfo=::getaddrinfo; #endif inited = true; } } } namespace pan { class SocketCreator: private CertStore::Listener, private Socket::Creator::Listener { public: SocketCreator (Data&, CertStore&); virtual ~SocketCreator (); private: //socket::creator::Listener void on_socket_created (const StringView& host, int port, bool ok, Socket*) override {} void on_socket_shutdown (const StringView& host, int port, Socket*) override {} #ifdef HAVE_GNUTLS // CertStore::Listener void on_verify_cert_failed(gnutls_x509_crt_t, std::string, int) override; void on_valid_cert_added (gnutls_x509_crt_t, std::string ) override; #endif Data& data; CertStore & store; public: virtual void create_socket (ServerInfo&, const Quark&, const StringView & host, int port, WorkerPool & threadpool, Socket::Creator::Listener * listener); }; } #endif pan-0.162/pan/tasks/socket-impl-openssl.cc000066400000000000000000000533601475412772400204460ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This file * Copyright (C) 2011 Heinrich Müller * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #define DEBUG_SOCKET_IO /****** ******* ******/ #include #include #include #include #include extern "C" { #include #include #include #include #include } #include #include #include #include #include #ifdef G_OS_WIN32 // this #define is necessary for mingw #undef _WIN32_WINNT #define _WIN32_WINNT 0x0501 #include #include #undef gai_strerror #define gai_strerror(i) gai_strerror_does_not_link (i) // const char* // gai_strerror_does_not_link (int errval) // { // char buf[32]; // g_snprintf (buf, sizeof(buf), "Winsock error %d", errval); // return buf; // } static std::string get_last_error (int err, char const *hpbuf) { std::string msg; switch(err) { case WSANOTINITIALISED: msg = "No successful WSAStartup call yet."; break; case WSAENETDOWN: msg = "The network subsystem has failed."; break; case WSAEADDRINUSE: msg = "Fully qualified address already bound"; break; case WSAEADDRNOTAVAIL: msg = "The specified address is not a valid address for this computer."; break; case WSAEFAULT: msg = "Error in socket address"; break; case WSAEINPROGRESS: msg = "A call is already in progress"; break; case WSAEINVAL: msg = "The socket is already bound to an address."; break; case WSAENOBUFS: msg = "Not enough buffers available, too many connections."; break; case WSAENOTSOCK: msg = "The descriptor is not a socket."; break; case 11001: msg = "Host not found"; break; default: msg = "Connect failed"; } return msg + " (" + hpbuf + ")"; } #else #include #include #include #include #include #include #define closesocket(fd) close(fd) #endif #include #include #include #include #include "socket-impl-openssl.h" #include "socket-impl-main.h" #include using namespace pan; #ifndef G_OS_WIN32 extern t_getaddrinfo p_getaddrinfo; extern t_freeaddrinfo p_freeaddrinfo; #endif /**** ***** ***** ***** ****/ namespace { static gboolean gnutls_inited = FALSE; } #ifdef HAVE_GNUTLS // without gnutls this class is just a stub.... GIOChannelSocketGnuTLS :: GIOChannelSocketGnuTLS (ServerInfo& data, const Quark& server, CertStore& cs): _data(data), _channel (nullptr), _tag_watch (0), _tag_timeout (0), _listener (nullptr), _out_buf (g_string_new (nullptr)), _in_buf (g_string_new (nullptr)), _io_performed (false), _certstore(cs), _server(server), _done(false) { debug ("GIOChannelSocketGnuTLS ctor " << (void*)this); cs.add_listener(this); } GIOChannel * GIOChannelSocketGnuTLS :: create_channel (const StringView& host_in, int port, std::string& setme_err) { int err; int sockfd; #ifndef G_OS_WIN32 signal (SIGPIPE, SIG_IGN); #endif // get an addrinfo for the host const std::string host (host_in.str, host_in.len); char portbuf[32], hpbuf[255]; g_snprintf (portbuf, sizeof(portbuf), "%d", port); g_snprintf (hpbuf,sizeof(hpbuf),"%s:%s",host_in.str,portbuf); #ifdef G_OS_WIN32 // windows might not have getaddrinfo... if (!p_getaddrinfo) { struct hostent * ans = isalpha (host[0]) ? gethostbyname (host.c_str()) : gethostbyaddr (host.c_str(), host.size(), AF_INET); err = WSAGetLastError(); if (err || !ans) { setme_err = get_last_error (err, hpbuf); return nullptr; } // try opening the socket sockfd = socket (AF_INET, SOCK_STREAM, 0 /*IPPROTO_TCP*/); if (sockfd < 0) return nullptr; // Try connecting int i = 0; err = -1; struct sockaddr_in server; memset (&server, 0, sizeof(struct sockaddr_in)); while (err && ans->h_addr_list[i]) { char *addr = ans->h_addr_list[i]; memcpy (&server.sin_addr, addr, ans->h_length); server.sin_family = AF_INET; server.sin_port = htons(port); ++i; err = ::connect (sockfd,(struct sockaddr*)&server, sizeof(server)); debug ("connect "<ai_next) { // only use ipv4 or ipv6 addresses if ((walk->ai_family!=PF_INET) && (walk->ai_family!=PF_INET6)) continue; // try to create a socket... sockfd = ::socket (walk->ai_family, walk->ai_socktype, walk->ai_protocol); if (sockfd < 0) continue; // and make a connection if (::connect (sockfd, walk->ai_addr, walk->ai_addrlen) < 0) { closesocket (sockfd); sockfd = -1; } } // cleanup ::freeaddrinfo (ans); } // create the giochannel... if (sockfd <= 0) { char buf[512]; snprintf (buf, sizeof(buf), _("Error connecting to \"%s\""), hpbuf); setme_err = buf; if (errno) { setme_err += " ("; setme_err += file :: pan_strerror (errno); setme_err += ")"; } return nullptr; } GIOChannel * channel (nullptr); #ifndef G_OS_WIN32 channel = g_io_channel_unix_new (sockfd); g_io_channel_set_flags (channel, G_IO_FLAG_NONBLOCK, nullptr); #else channel = g_io_channel_win32_new_socket (sockfd); #endif if (g_io_channel_get_encoding (channel) != nullptr) g_io_channel_set_encoding (channel, nullptr, nullptr); g_io_channel_set_buffered (channel,true); g_io_channel_set_line_term (channel, "\n", 1); GIOChannel* ret (gnutls_get_iochannel(channel, host_in.str)); debug ("########### SocketSSL "<giochan); // free callback struct delete (mydata_t*)gnutls_session_get_ptr (chan->session); gnutls_deinit (chan->session); g_free(chan->host); g_free(chan); } } GIOChannelSocketGnuTLS :: ~GIOChannelSocketGnuTLS () { _certstore.remove_listener(this); debug(" destroying SSL socket "<read_buf,true); _gnutls_free(_channel); _channel = nullptr; } g_string_free (_out_buf, true); _out_buf = nullptr; g_string_free (_in_buf, true); _in_buf = nullptr; } bool GIOChannelSocketGnuTLS :: open (const StringView& address, int port, std::string& setme_err) { _host.assign (address.str, address.len); _channel = create_channel (address, port, setme_err); if (_channel) { #ifdef G_OS_WIN32 _id = g_io_channel_win32_get_fd(_channel); #else _id = g_io_channel_unix_get_fd(_channel); #endif // G_OS_WIN32 } return _channel != nullptr; } void GIOChannelSocketGnuTLS :: get_host (std::string& setme) const { setme = _host; } void GIOChannelSocketGnuTLS :: write_command (const StringView& command, Socket::Listener * l) { _partial_read.clear (); _listener = l; g_string_truncate (_out_buf, 0); if (!command.empty()) g_string_append_len (_out_buf, command.str, command.len); set_watch_mode (WRITE_NOW); } /*** **** SSL Functions ***/ namespace { static void set_blocking(gnutls_session_t& session, bool val) { int fd(-1); gnutls_transport_ptr_t tmp = gnutls_transport_get_ptr (session); fd = GPOINTER_TO_INT (tmp); if(fd) { #ifndef G_OS_WIN32 int flags = fcntl(fd, F_GETFL); if (!val) flags |= O_NONBLOCK; else flags &= ~O_NONBLOCK; fcntl(fd, F_SETFL, flags); } #else u_long block(val ? 0 : 1); ioctlsocket(fd, FIONBIO, &block); } #endif } GIOStatus _gnutls_read(GIOChannel *handle, gchar *buf, gsize len, gsize *ret, GError **gerr) { return G_IO_STATUS_NORMAL; } GIOStatus _gnutls_write(GIOChannel *handle, const gchar *buf, gsize len, gsize *ret, GError **gerr) { return G_IO_STATUS_NORMAL; } GIOStatus gnutls_seek(GIOChannel *handle, gint64 offset, GSeekType type, GError **gerr) { GIOGnuTLSChannel *chan = (GIOGnuTLSChannel *)handle; g_io_channel_seek_position(chan->giochan, offset, type, gerr); return !gerr ? G_IO_STATUS_NORMAL : G_IO_STATUS_ERROR; } GIOStatus gnutls_close(GIOChannel *handle, GError **gerr) { debug("gnutls close "<established) { int ret; do { ret = gnutls_bye (chan->session, GNUTLS_SHUT_WR); } while (ret == GNUTLS_E_INTERRUPTED); } return chan->giochan->funcs->io_close (handle, gerr); } GSource *gnutls_create_watch(GIOChannel *handle, GIOCondition cond) { GIOGnuTLSChannel *chan = (GIOGnuTLSChannel *)handle; return chan->giochan->funcs->io_create_watch(handle, cond); } GIOStatus gnutls_set_flags(GIOChannel *handle, GIOFlags flags, GError **gerr) { GIOGnuTLSChannel *chan = (GIOGnuTLSChannel *)handle; return chan->giochan->funcs->io_set_flags(handle, flags, gerr); } GIOFlags gnutls_get_flags(GIOChannel *handle) { GIOGnuTLSChannel *chan = (GIOGnuTLSChannel *)handle; return chan->giochan->funcs->io_get_flags(handle); } GIOFuncs gnutls_channel_funcs = { _gnutls_read, _gnutls_write, gnutls_seek, gnutls_close, gnutls_create_watch, _gnutls_free, gnutls_set_flags, gnutls_get_flags }; } /*** **** ***/ GIOStatus GIOChannelSocketGnuTLS :: gnutls_write_line(GIOChannel *handle, const gchar *buf, gsize len, gsize *ret, GError **gerr) { *ret = 0; GIOGnuTLSChannel *chan = (GIOGnuTLSChannel *)handle; gint err; GIOStatus result; if (!chan->established) { result = _gnutls_handshake (handle); if (result == G_IO_STATUS_AGAIN || result == G_IO_STATUS_ERROR) return result; chan->established = TRUE; } err = gnutls_record_send (chan->session, (const char *)buf, len); if(err < 0) { if ((err == GNUTLS_E_INTERRUPTED) || (err == GNUTLS_E_AGAIN)) return G_IO_STATUS_AGAIN; g_set_error (gerr, G_IO_CHANNEL_ERROR, G_IO_CHANNEL_ERROR_FAILED, "Received corrupted data"); } else { *ret = err; return G_IO_STATUS_NORMAL; } return G_IO_STATUS_ERROR; } GIOStatus GIOChannelSocketGnuTLS :: gnutls_read_line(GString* g, gsize *ret, GError **gerr) { *ret = 0; GIOGnuTLSChannel *chan = (GIOGnuTLSChannel *)_channel; if (!chan->established) { GIOStatus result = _gnutls_handshake (_channel); if (result == G_IO_STATUS_AGAIN || result == G_IO_STATUS_ERROR) return result; chan->established = true; } gint err; const size_t tmp_size(4096*128); char tmp[tmp_size]; g_string_set_size(g,0); if (_channel->read_buf->len == 0) { err = gnutls_record_recv (chan->session, tmp, tmp_size); *ret = err < 0 ? 0 : err; if(err < 0) { if ((err == GNUTLS_E_INTERRUPTED) || (err == GNUTLS_E_AGAIN)) return G_IO_STATUS_AGAIN; g_set_error (gerr, G_IO_CHANNEL_ERROR, G_IO_CHANNEL_ERROR_FAILED, "Received corrupted data"); return G_IO_STATUS_ERROR; } else g_string_append_len (_channel->read_buf,tmp,err); } //fill in from read_buf char * buf = _channel->read_buf->str; int pos(0); bool found(false); while (*buf) { if (*buf == '\n') { found = true; break; } ++pos; ++buf; } if (found) { int _pos(std::min(pos+1,(int)_channel->read_buf->len)); g_string_append_len(g, _channel->read_buf->str, _pos); g_string_erase (_channel->read_buf, 0, _pos); return G_IO_STATUS_NORMAL; } //no linebreak, partial line. retry later... return G_IO_STATUS_AGAIN; } GIOStatus GIOChannelSocketGnuTLS :: _gnutls_handshake (GIOChannel *channel) { GIOGnuTLSChannel *chan = (GIOGnuTLSChannel *)channel; g_return_val_if_fail (channel, G_IO_STATUS_ERROR); g_return_val_if_fail (chan, G_IO_STATUS_ERROR); g_return_val_if_fail (chan->session, G_IO_STATUS_ERROR); /* init custom data for callback */ mydata_t* mydata = new mydata_t(); mydata->cs = &_certstore; Quark setme; _data.find_server_by_host_name(_host, setme); mydata->host = setme; mydata->hostname_full = _host; int res(0); // always trust server cert _data.get_server_trust (setme, res); mydata->always_trust = res; gnutls_session_set_ptr (chan->session, (void *) mydata); int status = gnutls_handshake (chan->session); bool r = !chan->verify || status == 0; if (r) chan->established = true; return r ? G_IO_STATUS_NORMAL : G_IO_STATUS_ERROR; } GIOChannelSocketGnuTLS :: DoResult GIOChannelSocketGnuTLS :: do_read () { g_assert (!_out_buf->len); GError * err (nullptr); GString * g (_in_buf); bool more (true); // GIOGnuTLSChannel * chan = (GIOGnuTLSChannel*)_channel; while (more && !_abort_flag) { _io_performed = true; gsize ret; const GIOStatus status (gnutls_read_line(g, &ret, &err)); if (status == G_IO_STATUS_NORMAL) { g_string_prepend_len (g, _partial_read.c_str(), _partial_read.size()); _partial_read.clear (); debug_v ("read [" << g->str << "]"); increment_xfer_byte_count (g->len); //if (g_str_has_suffix (g->str, "\r\n")) // g_string_truncate (g, g->len-2); more = _listener->on_socket_response (this, StringView (g->str, g->len)); } else if (status == G_IO_STATUS_AGAIN) { // see if we've got a partial line buffered up if (_channel->read_buf->len != 0) { _partial_read.append (_channel->read_buf->str, _channel->read_buf->len); g_string_set_size (_channel->read_buf, 0); } return IO_READ; } else { const char * msg (err ? err->message : _("Unknown Error")); Log::add_err_va (_("Error reading from %s: %s"), _host.c_str(), msg); if (err != nullptr) g_clear_error (&err); return IO_ERR; } } return IO_DONE; } GIOChannelSocketGnuTLS :: DoResult GIOChannelSocketGnuTLS :: do_write () { g_assert (_partial_read.empty()); GString * g = _out_buf; #if 0 // #ifdef DEBUG_SOCKET_IO // -2 to trim out trailing \r\n std::cerr << LINE_ID << " channel " << _channel << " writing ["<str,g->len>=2?g->len-2:g->len)<< "]\n"; #endif _io_performed = true; GError * err = nullptr; gsize out = 0; GIOStatus status = g->len ? gnutls_write_line(_channel, g->str, g->len, &out, &err) : G_IO_STATUS_NORMAL; debug ("socket " << this << " channel " << _channel << " maybe wrote [" << g->str << "]; status was " << status); if (status == G_IO_STATUS_NORMAL) status = g_io_channel_flush (_channel, &err); if (err) { Log::add_err (err->message); g_clear_error (&err); return IO_ERR; } if (out > 0) { increment_xfer_byte_count (out); g_string_erase (g, 0, out); } const bool finished = (!g->len) && (status==G_IO_STATUS_NORMAL); if (!finished) return IO_WRITE; // not done writing. if (_listener) return IO_READ; // listener wants to read the server's response return IO_DONE; // done writing and not listening to response. } gboolean GIOChannelSocketGnuTLS :: timeout_func (gpointer sock_gp) { GIOChannelSocketGnuTLS * self (static_cast(sock_gp)); if (!self->_io_performed) { debug ("error: channel " << self->_channel << " not responding."); gio_func (self->_channel, G_IO_ERR, sock_gp); return false; } // wait another TIMEOUT_SECS and check again. self->_io_performed = false; return true; } gboolean GIOChannelSocketGnuTLS :: gio_func (GIOChannel * channel, GIOCondition cond, gpointer sock_gp) { return static_cast(sock_gp)->gio_func (channel, cond); } gboolean GIOChannelSocketGnuTLS :: gio_func (GIOChannel * channel, GIOCondition cond) { set_watch_mode (IGNORE_NOW); if (_abort_flag) { _listener->on_socket_abort (this); } else if (!(cond & (G_IO_IN | G_IO_OUT))) { _listener->on_socket_error (this); } else // G_IO_IN or G_IO_OUT { const DoResult result = (cond & G_IO_IN) ? do_read () : do_write (); if (result == IO_ERR) _listener->on_socket_error (this); else if (result == IO_READ) set_watch_mode (READ_NOW); else if (result == IO_WRITE) set_watch_mode (WRITE_NOW); } debug ("gio_func: sock " << this << ", channel " << channel << ", cond " << (cond==G_IO_IN ? "IN" : "OUT")); return false; // set_watch_mode(IGNORE) cleared the tag that called this func } namespace { const unsigned int TIMEOUT_SECS (30); } void GIOChannelSocketGnuTLS :: set_watch_mode (WatchMode mode) { GIOGnuTLSChannel *chan = (GIOGnuTLSChannel *)_channel; debug ("socket " << this << " calling set_watch_mode " << mode << "; _channel is " << chan->giochan); remove_source (_tag_watch); remove_source (_tag_timeout); guint cond; switch (mode) { case IGNORE_NOW: // don't add any watches debug("channel " << chan->giochan << " setting mode **IGNORE**"); break; case READ_NOW: debug("channel " << chan->giochan << " setting mode read"); cond = (int)G_IO_IN | (int)G_IO_ERR | (int)G_IO_HUP | (int)G_IO_NVAL; _tag_watch = g_io_add_watch (chan->giochan, (GIOCondition)cond, gio_func, this); _tag_timeout = g_timeout_add (TIMEOUT_SECS*1000, timeout_func, this); _io_performed = false; break; case WRITE_NOW: debug("channel " << chan->giochan << " setting mode write"); cond = (int)G_IO_OUT | (int)G_IO_ERR | (int)G_IO_HUP | (int)G_IO_NVAL; _tag_watch = g_io_add_watch (chan->giochan, (GIOCondition)cond, gio_func, this); _tag_timeout = g_timeout_add (TIMEOUT_SECS*1000, timeout_func, this); _io_performed = false; break; } debug ("set_watch_mode " << (mode==READ_NOW?"READ":mode==WRITE_NOW?"WRITE":"IGNORE") << ": _tag_watch is now " << _tag_watch); } GIOChannel * GIOChannelSocketGnuTLS :: gnutls_get_iochannel(GIOChannel* channel, const char* host, gboolean verify) { g_return_val_if_fail(channel, nullptr); GIOGnuTLSChannel *chan(nullptr); GIOChannel *gchan(nullptr); int fd(0); chan = g_new0(GIOGnuTLSChannel, 1); g_return_val_if_fail(chan, nullptr); gnutls_session_t session(NULL); if(!(fd = g_io_channel_unix_get_fd(channel))) return nullptr; if (gnutls_init (&session, GNUTLS_CLIENT) != 0) return nullptr; if (gnutls_set_default_priority (session) != 0) return nullptr; gnutls_priority_set_direct ( session, // "NONE:+VERS-SSL3.0:+CIPHER-ALL:+COMP-ALL:+RSA:+DHE-RSA:+DHE-DSS:+MAC-ALL" // "NONE:+VERS-TLS1.0:+CIPHER-ALL:+COMP-ALL:+RSA:+DHE-RSA:+DHE-DSS:+MAC-ALL", NULL); // prefer tls 1.0 for now.... "NONE:+VERS-TLS-ALL:+CIPHER-ALL:+COMP-ALL:+KX-ALL:SIGN-ALL:+CURVE-ALL:+CTYPE-ALL:+MAC-ALL", NULL); // enable all TLS versions gnutls_certificate_credentials_t creds = _certstore.get_creds(); gnutls_credentials_set (session, GNUTLS_CRD_CERTIFICATE, creds); gnutls_transport_set_ptr (session, GINT_TO_POINTER (fd)); chan->host = g_strdup(host); chan->session = session; chan->fd = fd; chan->giochan = channel; chan->verify = verify; gchan = (GIOChannel *)chan; gchan->funcs = &gnutls_channel_funcs; g_io_channel_init(gchan); gchan->read_buf = g_string_sized_new(4096*128); set_blocking(session, true); if (_gnutls_handshake(gchan) == G_IO_STATUS_NORMAL) { set_blocking(session, false); return gchan; } set_blocking(session, false); return nullptr; } void GIOChannelSocketGnuTLS :: on_verify_cert_failed (gnutls_x509_crt_t cert, std::string server, int nr) { debug_SSL("on_verify_cert_failed "< * * This file * Copyright (C) 2011 Heinrich Müller * SSL functions : Copyright (C) 2002 vjt (irssi project) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #ifndef __SocketSSL_h__ #define __SocketSSL_h__ #include //#include //#include #include #include #include #include #include #include #ifdef HAVE_GNUTLS #include #include #include #endif namespace pan { /** * glib implementation of Socket * * @ingroup tasks */ #ifdef HAVE_GNUTLS class GIOChannelSocketGnuTLS: public Socket, private CertStore::Listener { public: virtual ~GIOChannelSocketGnuTLS (); GIOChannelSocketGnuTLS (ServerInfo&, const Quark&, CertStore& cs); bool open (const StringView& address, int port, std::string& setme_err) override; void write_command (const StringView& chars, Socket::Listener *) override; void get_host (std::string& setme) const override ; private: ServerInfo& _data; GIOChannel * _channel; unsigned int _tag_watch; unsigned int _tag_timeout; Socket::Listener * _listener; GString * _out_buf; GString * _in_buf; std::string _partial_read; std::string _host; bool _io_performed; CertStore& _certstore; bool _rehandshake; Quark _server; bool _done; private: enum WatchMode { READ_NOW, WRITE_NOW, IGNORE_NOW }; void set_watch_mode (WatchMode mode); static gboolean gio_func (GIOChannel*, GIOCondition, gpointer); gboolean gio_func (GIOChannel*, GIOCondition); static gboolean timeout_func (gpointer); enum DoResult { IO_ERR, IO_READ, IO_WRITE, IO_DONE }; DoResult do_read (); DoResult do_write (); // CertStore::Listener void on_verify_cert_failed (gnutls_x509_crt_t, std::string, int) override; void on_valid_cert_added (gnutls_x509_crt_t, std::string ) override; GIOChannel * create_channel (const StringView& host_in, int port, std::string& setme_err); void gio_lock(int mode, int type, const char *file, int line); private: GIOChannel* gnutls_get_iochannel(GIOChannel* channel, const char* host, gboolean verify=true); GIOStatus _gnutls_handshake (GIOChannel *channel); gboolean verify_certificate (gnutls_session_t session, GError **err); static gboolean handshake_cb(gpointer ptr); GIOStatus gnutls_read_line(GString* g, gsize *ret, GError **gerr); GIOStatus gnutls_write_line(GIOChannel *handle, const gchar *buf, gsize len, gsize *ret, GError **gerr); #else class GIOChannelSocketGnuTLS { public: virtual ~GIOChannelSocketGnuTLS (); GIOChannelSocketGnuTLS () { debug("SocketSSL stub ctor"); } #endif // HAVE_GNUTLS }; } #endif pan-0.162/pan/tasks/socket-impl-scripted.cc000066400000000000000000000057151475412772400206010ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #include "socket-impl-scripted.h" #include #include #include #include #include #include namespace pan { const std::string ScriptedSocket::ABORT ("[[[ABORT]]]"); const std::string ScriptedSocket::NETWORK_ERROR ("[[[NETWORK ERROR]]]"); ScriptedSocket :: ScriptedSocket () { } ScriptedSocket :: ~ScriptedSocket () { } bool ScriptedSocket :: open (const StringView& address UNUSED, int port UNUSED) { // FIXME: always succeeds right now; should have an ar in ctor to make it fail return true; } void ScriptedSocket :: write_command (const StringView& chars, Listener * l) { if (_script.empty()) { std::cerr << "UNEXPECTED [" << chars << "]\n"; abort(); } command_and_responses_t cat (_script.front()); _script.pop_front (); // did they send the right command? if (cat.first != chars.to_string()) { std::cerr << "EXPECTED [" << cat.first << "];, got [" << chars << ']' << std::endl; abort (); } // do they want all the responses? strings_t& responses (cat.second); bool listener_wants_more = true; while (listener_wants_more && !responses.empty()) { const std::string s (responses.front ()); responses.pop_front (); if (s == NETWORK_ERROR) { listener_wants_more = false; l->on_socket_error (this); } else if (s == ABORT) { listener_wants_more = false; l->on_socket_abort (this); } else { debug ("got [" << cat.first << "], writing [" << s << ']'); listener_wants_more = l->on_socket_response (this, s); } } if (!responses.empty()) // listener quit too soon abort (); } void ScriptedSocket :: add_script (const std::string& command, const strings_t& responses) { _script.push_back (script_t::value_type(command, responses)); } void ScriptedSocket :: add_script (const std::string& command, const std::string& response) { strings_t responses; responses.push_back (response); add_script (command, responses); } bool ScriptedSocket :: empty () const { return _script.empty (); } void ScriptedSocket :: clear () { _script.clear (); } } pan-0.162/pan/tasks/socket-impl-scripted.h000066400000000000000000000037131475412772400204370ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #ifndef __ScriptedSocket_h__ #define __ScriptedSocket_h__ #include #include namespace pan { /** * A mock socket suitable for automated tests. * * This object reads from a script and, if the commands passed to it match * the script, it quotes back its lines from the script. If the commands * don't match, it explodes. */ class ScriptedSocket: public Socket { public: ScriptedSocket (); virtual ~ScriptedSocket (); virtual bool open (const StringView& address, int port); void write_command (const StringView& chars, Listener *) override; typedef std::deque strings_t; static const std::string NETWORK_ERROR; static const std::string ABORT; void add_script (const std::string& command, const strings_t& responses); void add_script (const std::string& command, const std::string& response); bool empty () const; void clear (); private: typedef std::pair command_and_responses_t; typedef std::deque script_t; script_t _script; }; }; #endif pan-0.162/pan/tasks/socket.cc000066400000000000000000000043421475412772400160220ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #include #include #include #include #include #include #include #include "socket.h" using namespace pan; Socket :: Socket (): _bytes_since_last_check (0), _time_of_last_check (time(nullptr)), _speed_KiBps (0.0), _abort_flag (false), _id(0) { } Socket :: ~Socket () {} void Socket :: set_abort_flag (bool b) { _abort_flag = b; } bool Socket :: is_abort_set () const { return _abort_flag; } double Socket :: get_speed_KiBps () const { const time_t now (time(nullptr)); if (now > _time_of_last_check) { const int delta = now - _time_of_last_check; const double current_speed = (_bytes_since_last_check/1024.0) / delta; _time_of_last_check = now; _bytes_since_last_check = 0; _speed_KiBps = (std::fabs(_speed_KiBps)<0.0001) ? current_speed // if no previous speed, no need to smooth : (_speed_KiBps*0.8 + current_speed*0.2); // smooth across 5 readings } return _speed_KiBps; } void Socket :: reset_speed_counter () { _time_of_last_check = time(nullptr); _bytes_since_last_check = 0; } void Socket :: increment_xfer_byte_count (unsigned long byte_count) { _bytes_since_last_check += byte_count; } void Socket :: write_command_va (Listener * l, const char *fmt, ...) { va_list args; va_start (args, fmt); char * str = g_strdup_vprintf (fmt, args); va_end (args); write_command (str, l); g_free (str); } pan-0.162/pan/tasks/socket.h000066400000000000000000000061451475412772400156670ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #ifndef __Socket_h__ #define __Socket_h__ #include #include #include #include #include extern "C" { #include } #ifdef HAVE_GNUTLS #include #endif namespace pan { class StringView; class Quark; class WorkerPool; class Data; /** * Defines primitive interactions with a remote server: * Send command, read response, send command, read response. * * @ingroup tasks */ class Socket { public: Socket () ; virtual ~Socket () ; public: /** Interface class for objects that listen to a Socket's events */ struct Listener { virtual ~Listener () {} virtual bool on_socket_response (Socket*, const StringView& line) = 0; virtual void on_socket_error (Socket*) = 0; virtual void on_socket_abort (Socket*) = 0; }; public: virtual bool open (const StringView& address, int port, std::string& setme_err) = 0; virtual void write_command (const StringView& chars, Listener *) = 0; public: void write_command_va (Listener*, const char * fmt, ...); double get_speed_KiBps () const; void reset_speed_counter (); void set_abort_flag (bool b); bool is_abort_set () const; virtual void get_host (std::string& setme) const = 0; int get_id () { return _id; } protected: void increment_xfer_byte_count (unsigned long byte_count); mutable unsigned long _bytes_since_last_check; mutable time_t _time_of_last_check; mutable double _speed_KiBps; bool _abort_flag; int _id; public: /** * Interface class for code that creates sockets. * * This is currently implemented in glib with the GIOSocketCreator, * but can also be implemented for unit tests or ports to other * libraries. * * @ingroup tasks */ struct Creator { struct Listener { virtual ~Listener () {} virtual void on_socket_created (const StringView& host, int port, bool ok, Socket*) = 0; virtual void on_socket_shutdown (const StringView& host, int port, Socket*) = 0; }; virtual ~Creator () { } virtual void create_socket (Data&, const StringView& host, int port, WorkerPool&, Listener*, bool) = 0; }; }; } #endif pan-0.162/pan/tasks/task-article.cc000066400000000000000000000275341475412772400171250ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2007 Charles Kerr * * This File: * Copyright (C) 2007 Charles Kerr * Copyright (C) 2007 Calin Culianu * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #include #include #include #include #include #include #include #include #include #include #include #include #include "decoder.h" #include "task-article.h" using namespace pan; /*** **** ***/ namespace { std::string get_description (const Article& article, bool save) { std::string stripped; mime::remove_multipart_from_subject (article.subject.c_str(), stripped); const char* str = stripped.c_str(); iconv_t c = iconv_open("UTF-8","UTF-8"); char * res = __g_mime_iconv_strdup(c, str); iconv_close(c); char buf[1024]; if (save) snprintf (buf, sizeof(buf), _("Saving %s"), res); else snprintf (buf, sizeof(buf), _("Reading %s"), res); g_free(res); return std::string (buf); } std::string get_groups_str(const Article& a) { std::string r; quarks_t groups; int cnt(1); foreach_const (Xref, a.xref, xit) { r += xit->group.to_string(); if (cnt != a.xref.size() && a.xref.size() != 1) r+=", "; ++cnt; } return r; } } TaskArticle :: TaskArticle (const ServerRank & server_rank, const GroupServer & group_server, const Article & article, ArticleCache & cache, ArticleRead & read, const ArticleActionType& mark_read_action, Progress::Listener * listener, SaveMode save_mode, const Quark & save_path, const char * filename, const SaveOptions & options): Task (save_path.empty() ? "BODIES" : "SAVE", get_description (article, !save_path.empty())), _save_path (expand_attachment_headers(save_path, article)), _server_rank (server_rank), _cache (cache), _read (read), _article (article), _time_posted (article.time_posted), _attachment(filename), _mark_read_action (mark_read_action), _save_mode (save_mode), _decoder(nullptr), _decoder_has_run (false), _groups(get_groups_str(article)), _options(options), _paused(false) { cache.reserve (article.get_part_mids()); if (listener != nullptr) add_listener (listener); // build a list of all the parts we need to download. // also calculate need_bytes and all_bytes for our Progress status. quarks_t groups; foreach_const (Xref, article.xref, it) groups.insert (it->group); quarks_t servers; foreach_const (quarks_t, groups, it) { quarks_t tmp; group_server.group_get_servers (*it, tmp); servers.insert (tmp.begin(), tmp.end()); } unsigned long need_bytes(0), all_bytes(0); for (Article::part_iterator i(article.pbegin()), e(article.pend()); i!=e; ++i) { all_bytes += i.bytes(); const std::string mid (i.mid ()); if (cache.contains (mid)) continue; need_bytes += i.bytes(); Needed n; n.message_id = mid; n.bytes = i.bytes(); // if we can keep the article-number from the main xref, do so. // otherwise plug in `0' as a null article-number and we'll use // `ARTICLE message-id' instead when talking to the server. foreach_const (quarks_t, servers, sit) foreach_const (quarks_t, groups, git) n.xref.insert (*sit, *git, mid==article.message_id.to_string() ? article.xref.find_number(*sit,*git) : static_cast(0)); _needed.push_back (n); } // initialize our progress status... init_steps (all_bytes); set_step (all_bytes - need_bytes); const char *artsub(article.subject.c_str()); if (save_path.empty()) set_status (artsub); else set_status_va (_("Saving %s"), artsub); update_work (); } TaskArticle :: ~TaskArticle () { // ensure our on_worker_done() doesn't get called after we're dead if (_decoder) _decoder->cancel_silently(); _cache.release (_article.get_part_mids()); } void TaskArticle :: update_work (NNTP * checkin_pending) { // which servers could we use right now? int working (0); quarks_t servers; foreach (needed_t, _needed, nit) { Needed& n (*nit); if (n.nntp && n.nntp!=checkin_pending) ++working; else { quarks_t tmpservers; while (!n.xref.empty() && tmpservers.empty()) { foreach_const (Xref, n.xref, xit) if (_server_rank.get_server_rank(xit->server) <= n.rank) tmpservers.insert (xit->server); if (tmpservers.empty()) ++n.rank; } servers.insert (tmpservers.begin(), tmpservers.end()); } } if (!servers.empty()) _state.set_need_nntp (servers); else if (working) _state.set_working (); else if (_save_mode && !_decoder && !_decoder_has_run) { _state.set_need_decoder (); set_step(0); } else if (!_save_mode || _decoder_has_run) { _state.set_completed(); set_finished (OK); } else assert(0 && "hm, missed a state."); } unsigned long TaskArticle :: get_bytes_remaining () const { unsigned long bytes (0); foreach_const (needed_t, _needed, it) // parts not fetched yet... bytes += (it->bytes - it->buf.size()); return bytes; } /*** **** ***/ void TaskArticle :: use_nntp (NNTP * nntp) { // find which part, if any, can use this nntp Needed * needed (nullptr); for (needed_t::iterator it(_needed.begin()), end(_needed.end()); !needed && it!=end; ++it) if (it->nntp==nullptr && it->xref.has_server(nntp->_server) && (it->rank <= _server_rank.get_server_rank (nntp->_server))) needed = &*it; if (!needed) { // std::cerr << LINE_ID << " hmm, why did I ask for server " << nntp->_server // << "? I can't use it. I'd better refresh my worklist." << std::endl; update_work (nntp); check_in (nntp, OK); } else { needed->nntp = nntp; needed->buf.clear (); Quark group; Article_Number number (0ul); needed->xref.find (nntp->_server, group, number); if (static_cast(number) != 0) nntp->article (group, number, this); else nntp->article (group, needed->message_id.c_str(), this); update_work (); } } /*** **** ***/ void TaskArticle :: on_nntp_line (NNTP * nntp, const StringView & line_in) { // FIXME: ugh, this is called for _every line_... Needed * needed (nullptr); foreach (needed_t, _needed, it) { if (it->nntp == nntp) { needed = &*it; break; } } assert (needed); // some multiline headers have an extra linefeed... see bug #393589 StringView line (line_in); if (line.len && line.str[line.len-1] == '\n') line.truncate (line.len-1); Needed::buf_t& buf (needed->buf); buf.insert (buf.end(), line.begin(), line.end()); buf.insert (buf.end(), '\n'); increment_step (line.len); } void TaskArticle :: on_nntp_done (NNTP * nntp, Health health, const StringView & response UNUSED) { // find the Needed using this nntp... needed_t::iterator it; for (it=_needed.begin(); it!=_needed.end(); ++it) if (it->nntp == nntp) break; assert (it != _needed.end()); if (health == OK) { // if download succeeded, save it in the cache const StringView view (&it->buf.front(), it->buf.size()); ArticleCache::CacheResponse res (_cache.add (it->message_id, view)); if (ArticleCache::CACHE_OK != res.type) health = res.type == ArticleCache::CACHE_DISK_FULL ? ERR_NOSPACE : ERR_LOCAL; if (health == ERR_NOSPACE) _state.set_health (ERR_NOSPACE); } // std::cerr << LINE_ID << ' ' << it->message_id << " from " << nntp->_server << ": health " << health << std::endl; switch (health) { case OK: // if we got the article successfully... _needed.erase (it); break; case ERR_NETWORK: // if the network is bad... case ERR_NOSPACE: // if there's no space, try again, but pause the queue! case ERR_LOCAL: // ...or if we got it but couldn't save it it->reset (); break; case ERR_COMMAND: // if this one server doesn't have this part... it->xref.remove_server (nntp->_server); if (!it->xref.empty()) it->reset (); else { // if none of our servers have this part, but keep going -- // an incomplete file gives us more PAR2 blocks than a missing one. Log :: add_err_va ( _("Article \"%s\" is incomplete -- the news server(s) don't have part %s"), _article.subject.c_str(), it->message_id.c_str()); _needed.erase (it); } break; } update_work (nntp); check_in (nntp, health); } /*** **** ***/ void TaskArticle :: use_decoder (Decoder* decoder) { if (_state._work != NEED_DECODER) check_in (decoder); _decoder = decoder; init_steps(100); _state.set_working(); const Article::mid_sequence_t mids (_article.get_part_mids()); ArticleCache :: strings_t filenames (_cache.get_filenames (mids)); _decoder->enqueue (this, _save_path, filenames, _save_mode, _options, _attachment, _article); set_status_va (_("Decoding %s"), _article.subject.c_str()); debug ("decoder thread was free, enqueued work"); } void TaskArticle :: stop () { if (_decoder) _decoder->cancel(); } // called in the main thread by WorkerPool void TaskArticle :: on_worker_done (bool cancelled) { assert(_decoder); if (!_decoder) return; if (!cancelled) { // the decoder is done... catch up on all housekeeping // now that we're back in the main thread. foreach_const(Decoder::log_t, _decoder->log_severe, it) { Log :: add_err(it->c_str()); verbose (it->c_str()); } foreach_const(Decoder::log_t, _decoder->log_errors, it) { Log :: add_err(it->c_str()); verbose (it->c_str()); } foreach_const(Decoder::log_t, _decoder->log_infos, it) { Log :: add_info(it->c_str()); verbose (it->c_str()); } // marks read if either there was no filter action involved or // the user chose to mark read after the action const bool act_on_action (_mark_read_action == ACTION_TRUE); const bool no_action (_mark_read_action == NO_ACTION); const bool always (_mark_read_action == ALWAYS_MARK); const bool never (_mark_read_action == NEVER_MARK); if (!never) { if (_decoder->mark_read && (no_action || act_on_action || always)) _read.mark_read(_article); } if (!_decoder->log_errors.empty()) set_error (_decoder->log_errors.front()); _state.set_health(_decoder->health); if (!_decoder->log_severe.empty()) _state.set_health (ERR_LOCAL); else { _state.set_completed(); set_step (100); _decoder_has_run = true; } } Decoder * d (_decoder); _decoder = nullptr; update_work (); check_in (d); } pan-0.162/pan/tasks/task-article.h000066400000000000000000000114371475412772400167620ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This file * Copyright (C) 2007 Charles Kerr * Copyright (C) 2007 Calin Culianu * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #ifndef _TaskArticle_h_ #define _TaskArticle_h_ #include #include #include #include #include #include #include #include namespace pan { struct Decoder; class Data; /** * Task for downloading, and optionally decoding, articles * @ingroup tasks */ class TaskArticle: public Task, private NNTP::Listener, private WorkerPool::Worker::Listener { public: // life cycle enum SaveOptions { SAVE_ALL, SAVE_AS }; enum ArticleActionType { ACTION_TRUE, ACTION_FALSE, NO_ACTION, NEVER_MARK, ALWAYS_MARK // TODO implement this in prefs (mark articles read after download ....) }; enum SaveMode { NONE=0, DECODE=(1<<0), RAW=(1<<1) }; TaskArticle (const ServerRank & server_rank, const GroupServer & group_server, const Article & article, ArticleCache & cache, ArticleRead & read, const ArticleActionType& mark_read_action, Progress::Listener* l=nullptr, SaveMode save_mode = NONE, const Quark & save_path = Quark(), const char * filename=nullptr, const SaveOptions & options=SAVE_ALL); virtual ~TaskArticle (); time_t get_time_posted () const { return _time_posted; } const Quark& get_save_path () const { return _save_path; } void set_save_path (const Quark& q) { _save_path = q;} const Article& get_article () const { return _article; } const std::string& get_groups () const { return _groups; } const bool start_paused () const { return _paused; } void set_start_paused (bool val) { _paused = val; } public: // Task subclass unsigned long get_bytes_remaining () const override; void stop () override; /** only call this for tasks in the NEED_DECODE state * attempts to acquire the saver thread and start saving * returns false if failed or true if the save process started * (intended to be used with the Queue class). If true is returned, * a side-effect is that the task is now in the DECODING state. */ void use_decoder (Decoder*) override; private: // Task subclass void use_nntp (NNTP * nntp) override; private: // NNTP::Listener subclass void on_nntp_line (NNTP*, const StringView&) override; void on_nntp_done (NNTP*, Health, const StringView&) override; private: // WorkerPool::Listener interface void on_worker_done (bool cancelled) override; protected: Quark _save_path; const ServerRank& _server_rank; ArticleCache& _cache; ArticleRead& _read; quarks_t _servers; const Article _article; const time_t _time_posted; StringView _attachment; ArticleActionType _mark_read_action; private: // implementation const SaveMode _save_mode; friend class Decoder; Decoder * _decoder; bool _decoder_has_run; std::string _groups; const SaveOptions _options; bool _paused; struct Needed { std::string message_id; unsigned long bytes; NNTP * nntp; Xref xref; typedef std::vector buf_t; buf_t buf; int rank; Needed (): bytes(0), nntp(nullptr), rank(1) {} void reset() { buf_t tmp; buf.swap (tmp); // deallocates space nntp = nullptr; } }; typedef std::vector needed_t; needed_t _needed; void update_work (NNTP* checkin_pending=nullptr); }; } #endif pan-0.162/pan/tasks/task-groups.cc000066400000000000000000000123221475412772400170060ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #include #include #include extern "C" { #include } #include #include #include #include #include #include "task-groups.h" using namespace pan; namespace { std::string get_description (const Data& data, const Quark& server) { char buf[1024]; std::string host (data.get_server_address (server)); snprintf (buf, sizeof(buf), _("Getting group list from \"%s\""), host.c_str()); return std::string (buf); } } TaskGroups :: TaskGroups (Data& data, const Quark& servername): Task ("GROUPS", get_description(data,servername)), _data (data), _servername (servername), _group_count (0), _step (LIST) { _state.set_need_nntp (servername); } TaskGroups :: ~TaskGroups () {} /*** **** ***/ void TaskGroups :: use_nntp (NNTP * nntp) { debug ("groups task got an nntp " << nntp->_server << "; step is " << _step); _state.set_working (); if (_step == LIST) // "LIST" for a full list of groups... nntp->list (this); else if (_step == LIST_NEWSGROUPS) // "LIST NEWSGROUPS" for descriptions... nntp->list_newsgroups (this); else assert (0); } void TaskGroups :: on_nntp_line (NNTP * nntp, const StringView & line) { // gzip compression if (nntp->_compression) { stream<_server); if (health == ERR_NETWORK) { _state.set_need_nntp (_servername); } else // health is OK or FAIL { const Quark& server(nntp->_server); CompressionType comp; _data.get_server_compression_type(server, comp); const bool is_gzipped (comp == HEADER_COMPRESS_XFEATURE); if (is_gzipped) { std::ofstream of("tmp_out"); of << stream.str(); of.close(); std::stringstream out,out2; bool fail = !compression::inflate_zlib(&stream, &out, comp); if (!fail) { char buf[4096]; while (true) { std::istream& str = out.getline(buf, sizeof(buf)); if (str.fail() || str.bad() || str.eof()) break; on_nntp_line_process(nntp, buf); } } else { _state.set_completed(); set_finished(ERR_LOCAL); } } if (_step == LIST_NEWSGROUPS) { int i (0); Data::NewGroup * ng = new Data::NewGroup [_new_groups.size()]; foreach_const (new_groups_t, _new_groups, it) ng[i++] = it->second; _data.add_groups (_servername, ng, i); delete [] ng; debug ("groups task setting state completed"); _state.set_completed (); set_finished (OK); } else // _step == LIST { _state.set_need_nntp (_servername); _step = LIST_NEWSGROUPS; } } check_in (nntp, health); } pan-0.162/pan/tasks/task-groups.h000066400000000000000000000037651475412772400166630ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #ifndef __TASK_GROUPS_H__ #define __TASK_GROUPS_H__ #include #include #include #include #include namespace pan { /** * Task for downloading the grouplist of a new server. * @ingroup tasks */ class TaskGroups: public Task, private NNTP::Listener { public: // life cycle TaskGroups (Data& data, const Quark& server); virtual ~TaskGroups (); public: // Task's virtual functions unsigned long get_bytes_remaining () const override { return 0; } protected: // Task's virtual functions virtual void use_nntp (NNTP * nntp) override; private: // NNTP::Listener's virtual functions void on_nntp_line (NNTP*, const StringView&) override; void on_nntp_line_process (NNTP*, const StringView&); void on_nntp_done (NNTP*, Health, const StringView&) override; private: // implementation Data& _data; Quark _servername; typedef std::map new_groups_t; new_groups_t _new_groups; unsigned long _group_count; enum Step { LIST, LIST_NEWSGROUPS, DONE }; Step _step; std::stringstream stream; }; }; #endif pan-0.162/pan/tasks/task-post.cc000066400000000000000000000044171475412772400164620ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #include #include #include "task-post.h" #include #include using namespace pan; namespace { std::string get_description (GMimeMessage * message) { char buf[1024]; snprintf (buf, sizeof(buf), _("Posting \"%s\""), g_mime_message_get_subject(message)); return buf; } } TaskPost :: TaskPost (const Quark& server, GMimeMessage * message): Task ("POST", get_description(message)), _server (server), _message (message) { g_object_ref (G_OBJECT(_message)); _state.set_need_nntp (server); } TaskPost :: ~TaskPost () { g_object_unref (G_OBJECT(_message)); } void TaskPost :: use_nntp (NNTP * nntp) { _state.set_working (); char * text = g_mime_object_to_string (GMIME_OBJECT(_message), NULL); nntp->post (text, this); g_free (text); } void TaskPost :: on_nntp_done (NNTP * nntp, Health health, const StringView & response) { _state.set_health (health); const char* res(g_mime_message_get_subject(_message)); if (health == ERR_NETWORK || health == ERR_COMMAND) { Log :: add_err_va (_("Posting of \"%s\" failed: %s"), res, response.str); _state.set_need_nntp (_server); } else { Log :: add_info_va (_("Posting of \"%s\" successful: %s"), res, response.str); _state.set_completed (); set_error (response); set_finished (health); } check_in (nntp, health); } pan-0.162/pan/tasks/task-post.h000066400000000000000000000032621475412772400163210ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #ifndef __TaskPost_h__ #define __TaskPost_h__ #include #include #include #include #include namespace pan { /** * Task for posting an article. * @ingroup tasks */ class TaskPost: public Task, private NNTP::Listener { public: // life cycle TaskPost (const Quark& server, GMimeMessage * message); virtual ~TaskPost (); public: // Task's virtual functions unsigned long get_bytes_remaining () const override { return 0; } GMimeMessage* get_message () { return _message; } protected: // Task's virtual functions void use_nntp (NNTP * nntp) override; private: // NNTP::Listener's virtual functions void on_nntp_done (NNTP*, Health, const StringView&) override; private: // implementation Quark _server; GMimeMessage * _message; }; } #endif pan-0.162/pan/tasks/task-upload.cc000066400000000000000000000273611475412772400167640ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2007 Charles Kerr * * This File: * Copyright (C) 2007 Charles Kerr * Copyright (C) 2007 Calin Culianu * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #include #include #include #include #include #include #include extern "C" { #include } #include #include #include #include #include #include #include #include "encoder.h" #include "task-upload.h" #include "nzb.h" using namespace pan; namespace { std::string get_description (const char* name) { char buf[4096]; char * freeme = g_path_get_basename(name); snprintf (buf, sizeof(buf), _("Uploading %s"), freeme); g_free(freeme); return buf; } std::string g_get_basename(const char* f) { char buf[4096]; char * freeme = g_path_get_basename(f); snprintf (buf, sizeof(buf), "%s", freeme); g_free(freeme); return buf; } std::string get_groups_str(const Article& a) { std::string r; quarks_t groups; size_t cnt(1); foreach_const (Xref, a.xref, xit) { r += xit->group.to_string(); if (cnt != a.xref.size() && a.xref.size() != 1) r+=", "; ++cnt; } return r; } } /*** **** ***/ TaskUpload :: TaskUpload (const std::string & filename, const Quark & server, EncodeCache & cache, Article article, UploadInfo format, GMimeMessage * msg, Progress::Listener * listener): Task ("UPLOAD", get_description(filename.c_str())), _server(server), _encoder(nullptr), _encoder_has_run (false), _filename(filename), _basename (g_get_basename(filename.c_str())), _subject (article.subject.to_string()), _author(article.author.to_string()), _save_file(format.save_file), _total_parts(format.total), _cache(cache), _article(article), _all_bytes(0), _queue_pos(0), _bpf(format.bpf), _msg (msg), _first(true), _groups(get_groups_str(article)) { const char * tmp (g_mime_object_get_header ((GMimeObject *)_msg, "References")); if (tmp) _references = std::string(tmp); struct stat sb; stat(filename.c_str(),&sb); _bytes = sb.st_size; _state.set_initial(); } namespace { const char * build_subject_line (char* buf, int size, std::string& s, std::string& n, int p, int tp) { if (tp != 1) g_snprintf(buf, size,"%s - \"%s\" yEnc (%03d/%03d)", s.c_str(), n.c_str(), p, tp ); else g_snprintf(buf, size,"%s - \"%s\" yEnc", s.c_str(), n.c_str()); return buf; } } void TaskUpload :: build_needed_tasks() { foreach (needed_t, _needed, it) { _mids.push_back(Quark(it->second.message_id)); _cache.add(Quark(it->second.message_id)); } _cache.reserve(_mids); /* build new master subject */ char buf[4096]; _master_subject = build_subject_line (buf, 4096, _subject, _basename, 1, _total_parts); } void TaskUpload :: update_work (NNTP* checkin_pending) { int working(0); foreach (needed_t, _needed, nit) { Needed& n (nit->second); if (n.nntp && n.nntp!=checkin_pending) ++working; } if (_queue_pos == -1) { _state.set_need_nntp(_server); } /* only need encode if mode is NOT plain */ if (!_encoder_has_run && !_encoder && _queue_pos != -1) { _state.set_need_encoder(); } else if(working) { _state.set_working(); } else if (_encoder_has_run && !_needed.empty()) { _state.set_need_nntp(_server); } else if (_needed.empty()) { _state.set_completed(); set_finished(_queue_pos); } } void TaskUpload :: prepend_headers(GMimeMessage* msg, TaskUpload::Needed * n, std::string& d) { std::stringstream out; //add message-id created from mt-rng if (!n->mid.empty()) pan_g_mime_message_set_message_id (msg, n->mid.c_str()); //modify subject char buf[4096]; if (_queue_pos != -1) g_mime_message_set_subject (msg, build_subject_line (buf, 4096, _subject, _basename, n->partno, _total_parts), NULL); //modify references header std::string mids(_references); if (!_first_mid.empty()) mids += " <" + _first_mid + ">"; if (_first_mid != n->last_mid && !_first && !n->last_mid.empty()) mids += " <" + n->last_mid + ">"; if (!mids.empty()) g_mime_object_set_header ((GMimeObject *) msg, "References", mids.c_str(), NULL); char * all(g_mime_object_get_headers ((GMimeObject *) msg, NULL)); if (_first && _queue_pos==-1) all = g_mime_object_to_string ((GMimeObject *) msg, NULL); else if (_first && _queue_pos == 0) all = g_mime_object_get_headers ((GMimeObject *) msg, NULL); out << all << "\n"; if (_first && _queue_pos == -1) g_free(all); out << d; d = out.str(); if (_first) _first = !_first; } void TaskUpload :: use_nntp (NNTP * nntp) { Needed * needed (nullptr); foreach (needed_t, _needed, nit) { if (nit->second.nntp==nullptr) { needed = &nit->second; break; } } if (!needed) { update_work (nntp); check_in (nntp, OK); } else { needed->nntp = nntp; if (_queue_pos != -1) set_status_va (_("Uploading %s - Part %d of %d"), _basename.c_str(), needed->partno, _total_parts); else set_status_va (_("Uploading message body with subject \"%s\""), _subject.c_str()); std::string data; if (_queue_pos != -1) _cache.get_data(data,needed->message_id.c_str()); prepend_headers(_msg,needed, data); nntp->post(StringView(data), this); update_work (); } } /*** **** ***/ void TaskUpload :: on_nntp_line (NNTP * nntp, const StringView & line_in) {} void TaskUpload :: on_nntp_done (NNTP * nntp, Health health, const StringView & response) { char buf[4096]; Log::Entry tmp; tmp.date = time(NULL); tmp.is_child = true; bool found(false); bool post_ok(false); needed_t::iterator it; for (it=_needed.begin(); it!=_needed.end(); ++it) if (it->second.nntp == nntp) { found = true; break; } if (!found) goto _end; if (_queue_pos == -1) { _needed.erase(it); goto _end; } switch (health) { case OK: increment_step(it->second.bytes); _needed.erase (it); post_ok = true; break; case ERR_NETWORK: it->second.reset(); goto _end; case ERR_COMMAND: _needed.erase (it); break; } switch (atoi(response.str)) { case NNTP::NO_POSTING: Log :: add_err_va (_("Posting of file %s (part %d of %d) failed: No posts allowed by server."), _basename.c_str(), it->second.partno, _total_parts); this->stop(); break; case NNTP::POSTING_FAILED: if (health != OK) // if we got a dupe, the health is OK, so skip that { tmp.severity = Log :: PAN_SEVERITY_ERROR; g_snprintf(buf,sizeof(buf), _("Posting of file %s (part %d of %d) failed: %s"), _basename.c_str(), it->second.partno, _total_parts, response.str); tmp.message = buf; _logfile.push_front(tmp); } break; case NNTP::ARTICLE_POSTED_OK: tmp.severity = Log :: PAN_SEVERITY_INFO; if (post_ok && !_needed.empty()) { g_snprintf(buf,sizeof(buf), _("Posting of file %s (part %d of %d) successful: %s"), _basename.c_str(), it->second.partno, _total_parts, response.str); tmp.message = buf; _logfile.push_front(tmp); } else if (post_ok && _needed.empty()) { g_snprintf(buf,sizeof(buf), _("Posting of file %s (part %d of %d) successful: %s"), _basename.c_str(), it->second.partno, _total_parts, response.str); tmp.message = buf; _logfile.push_front(tmp); /* get error state for the whole upload: if one part failed, set global status to error */ bool error(false); foreach_const (std::deque, _logfile, it) if (it->severity == Log :: PAN_SEVERITY_ERROR) error = true; if (!error) g_snprintf(buf,sizeof(buf), _("Posting of file %s successful: %s"), _basename.c_str(), response.str); else { g_snprintf(buf,sizeof(buf), _("Posting of file %s not completely successful: Check the log (right-click list item)."), _basename.c_str()); tmp.severity = Log :: PAN_SEVERITY_ERROR; } tmp.message = buf; Log::add_entry_list (tmp, _logfile); _logfile.clear(); } break; case NNTP::TOO_MANY_CONNECTIONS: // lockout for 120 secs, but try it->second.reset(); break; default: _needed.erase (it); Log::add_entry_list (tmp, _logfile); _logfile.clear(); Log :: add_err_va (_("Posting of file %s not successful: Check the log (right-click list item)."), _basename.c_str(), response.str); break; } _end: update_work(nntp); check_in (nntp, health); } /*** **** ***/ unsigned long TaskUpload :: get_bytes_remaining () const { unsigned long bytes (0); foreach_const (needed_t, _needed, it) bytes += (unsigned long)it->second.bytes; return bytes; } void TaskUpload :: use_encoder (Encoder* encoder) { if (!encoder) return; if (_state._work != NEED_ENCODER) check_in (encoder); _encoder = encoder; init_steps(100); _state.set_working(); _encoder->enqueue (this, &_cache, &_article, _filename, _basename, _master_subject, _bpf); debug ("encoder thread was free, enqueued work"); } void TaskUpload :: stop () { if (_encoder) _encoder->cancel(); } // called in the main thread by WorkerPool void TaskUpload :: on_worker_done (bool cancelled) { assert(_encoder); if (!_encoder) return; if (!cancelled) { // the encoder is done... catch up on all housekeeping // now that we're back in the main thread. foreach_const(Encoder::log_t, _encoder->log_severe, it) Log :: add_err(it->c_str()); foreach_const(Encoder::log_t, _encoder->log_errors, it) Log :: add_err(it->c_str()); foreach_const(Encoder::log_t, _encoder->log_infos, it) Log :: add_info(it->c_str()); if (!_encoder->log_errors.empty()) { _needed.clear(); //update_work will then set the status to complete } _state.set_health(_encoder->health); if (!_encoder->log_severe.empty()) _state.set_health (ERR_LOCAL); else { set_step (0); init_steps(_all_bytes); _encoder_has_run = true; } } Encoder * d (_encoder); _encoder = nullptr; update_work (); check_in (d); } TaskUpload :: ~TaskUpload () { // ensure our on_worker_done() doesn't get called after we're dead if (_encoder) _encoder->cancel_silently(); g_object_unref (G_OBJECT(_msg)); if ( _queue_pos != -1) { _cache.release(_mids); _cache.resize(); } } pan-0.162/pan/tasks/task-upload.h000066400000000000000000000121251475412772400166160ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This file * Copyright (C) 2007 Charles Kerr * Copyright (C) 2007 Calin Culianu * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #ifndef _TaskUpload_h_ #define _TaskUpload_h_ #include #include #include #include #include #include #include #include #include #ifndef PROTOTYPES #define PROTOTYPES #endif #include #include #include #include namespace pan { struct Encoder; class Data; /** * Task for uploading binary data to usenet * @ingroup tasks */ class TaskUpload: public Task, private NNTP::Listener, private WorkerPool::Worker::Listener { public: struct UploadInfo { std::string save_file; std::string mid; int bpf; int total; }; const Article& get_article () { return _article; } const std::string& get_groups () const { return _groups; } const std::string& get_filename () const { return _filename; } typedef std::vector mid_sequence_t; struct Needed { NNTP* nntp; unsigned long bytes; int partno; std::string message_id, last_mid; std::string mid; // for rng std::string cachename; Xref xref; Needed (): nntp(nullptr), bytes(0) , partno(1) {} void reset() { nntp = nullptr; } }; typedef std::map needed_t; // life cycle TaskUpload ( const std::string & filename, const Quark & server, EncodeCache & cache, Article article, UploadInfo format, GMimeMessage * msg=nullptr, Progress::Listener * listener= nullptr); virtual ~TaskUpload (); public: // Task subclass unsigned long get_bytes_remaining () const override; void stop () override; const std::string& get_basename() { return _basename; } /** only call this for tasks in the NEED_ENCODE state * attempts to acquire the encoder thread and start encoding * returns false if failed or true if the encoding process started * (intended to be used with the Queue class). If true is returned, * a side-effect is that the task is now in the ENCODING state. */ void use_encoder (Encoder*) override; private: // Task subclass void use_nntp (NNTP * nntp) override; private: // NNTP::Listener subclass void on_nntp_line (NNTP*, const StringView&) override; void on_nntp_done (NNTP*, Health, const StringView&) override; private: // WorkerPool::Listener interface void on_worker_done (bool cancelled) override; protected: Quark _server; private: // implementation friend class Encoder; friend class PostUI; friend class Queue; friend class NZB; friend class TaskPane; Encoder * _encoder; bool _encoder_has_run; std::string _filename; std::string _basename; std::string _subject, _master_subject, _author; std::string _save_file; int _total_parts, _needed_parts; unsigned long _bytes; EncodeCache& _cache; std::deque _logfile; // for intermediate updates Article _article; unsigned long _all_bytes; std::vector _upload_list; Article::mid_sequence_t _mids; int _queue_pos; int _bpf; needed_t _needed; std::string _references; // original references, not to be touched! std::string _first_mid; std::set _wanted; GMimeMessage * _msg; void prepend_headers(GMimeMessage* msg, TaskUpload::Needed * n, std::string& d); void add_reference_to_list(std::string s); bool _first; std::string _groups; void update_work (NNTP * checkin_pending = nullptr); public: void set_encoder_done (bool setme) { _encoder_has_run = setme; } needed_t& needed() { return _needed; } void build_needed_tasks(); void wakeup() override { _state.set_working(); update_work(); } }; } #endif pan-0.162/pan/tasks/task-weak-ordering.h000066400000000000000000000046541475412772400201000ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #ifndef __TASK_WEAK_ORDERING__H__ #define __TASK_WEAK_ORDERING__H__ #include #include #include #include namespace pan { /** * A StrictWeakOrdering binary predicate for tasks. * * @ingroup tasks */ struct TaskWeakOrdering { const Quark BODIES, CANCEL, GROUPS, POST, SAVE, XOVER, UPLOAD; TaskWeakOrdering (): BODIES ("BODIES"), CANCEL ("CANCEL"), GROUPS ("GROUPS"), POST ("POST"), SAVE ("SAVE"), XOVER ("XOVER"), UPLOAD ("UPLOAD") {} int get_rank_for_type (const Quark& type) const { int rank (0); if (type==BODIES || type==POST || type==CANCEL) rank = 0; else if (type==XOVER || type==GROUPS) rank = 1; else if (type==SAVE) rank = 2; else if (type==UPLOAD) rank = 3; return rank; } bool operator() (const Task* a, const Task* b) const { const Quark& a_type (a->get_type ()); const Quark& b_type (b->get_type ()); const int a_rank (get_rank_for_type(a_type)); const int b_rank (get_rank_for_type(b_type)); if (a_rank != b_rank) return a_rank < b_rank; if (a_type == SAVE) { // order 'save' by oldest const TaskArticle* _a = dynamic_cast(a); const TaskArticle* _b = dynamic_cast(b); if (!_a || !_b) return false; const time_t a_time (_a->get_time_posted ()); const time_t b_time (_b->get_time_posted ()); if (a_time != b_time) return a_time < b_time; } return false; } }; } #endif pan-0.162/pan/tasks/task-xover.cc000066400000000000000000000374331475412772400166440ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #include #include #include extern "C" { #include } #define PROTOTYPES #include #include #include #include #include #include #include #include #include #include #include #include "nntp.h" #include "task-xover.h" using namespace pan; namespace { std::string get_short_name(const StringView& in) { static const StringView moderated("moderated"); static const StringView d("d"); StringView myline, long_token; // find the long token -- use the last, unless that's "moderated" or "d" myline = in; myline.pop_last_token(long_token, '.'); if (!myline.empty() && (long_token == moderated || long_token == d)) myline.pop_last_token(long_token, '.'); // build a new string where each token is shortened except for long_token std::string out; myline = in; StringView tok; while (myline.pop_token(tok, '.')) { out.insert(out.end(), tok.begin(), (tok == long_token ? tok.end() : tok.begin() + 1)); out += '.'; } if (!out.empty()) out.erase(out.size() - 1); return out; } std::string get_description(const Quark& group, TaskXOver::Mode mode) { char buf[1024]; if (mode == TaskXOver::ALL) snprintf(buf, sizeof(buf), _("Getting all headers for \"%s\""), group.c_str()); else if (mode == TaskXOver::NEW) snprintf(buf, sizeof(buf), _("Getting new headers for \"%s\""), group.c_str()); else // SAMPLE snprintf(buf, sizeof(buf), _("Sampling headers for \"%s\""), group.c_str()); return std::string(buf); } } TaskXOver::TaskXOver(Data & data, const Quark & group, Mode mode, unsigned long sample_size) : Task("XOVER", get_description(group, mode)), _data(data), _group(group), _short_group_name(get_short_name(StringView(group.c_str()))), _mode(mode), _sample_size(sample_size), _days_cutoff(mode == DAYS ? (time(nullptr) - (sample_size * 24 * 60 * 60)) : 0), _group_xover_is_reffed(false), _bytes_so_far(0), _parts_so_far(0ul), _articles_so_far(0ul), _total_minitasks(0) { debug("ctor for " << group); // add a ``GROUP'' MiniTask for each server that has this group // initialize the _high lookup table to boundaries quarks_t servers; _data.group_get_servers(group, servers); foreach_const (quarks_t, servers, it)if (_data.get_server_limits(*it)) { Data::Server* s (_data.find_server(*it)); const MiniTask group_minitask (MiniTask::GROUP); _server_to_minitasks[*it].push_front (group_minitask); _high[*it] = data.get_xover_high (group, *it); } init_steps(0); // tell the users what we're up to set_status(group.c_str()); update_work(); } TaskXOver::~TaskXOver() { if (_group_xover_is_reffed) { foreach (server_to_high_t, _high, it) { _data.set_xover_high (_group, it->first, it->second); } _data.xover_unref (_group); } _data.fire_group_entered(_group, static_cast(1), static_cast(0)); } void TaskXOver::use_nntp(NNTP* nntp) { const Quark& server(nntp->_server); CompressionType comp; _data.get_server_compression_type(server, comp); debug("got an nntp from " << nntp->_server); // if this is the first nntp we've gotten, ref the xover data if (!_group_xover_is_reffed) { _group_xover_is_reffed = true; _data.xover_ref(_group); } MiniTasks_t& minitasks(_server_to_minitasks[server]); if (minitasks.empty()) { debug( "That's interesting, I got a socket for " << server << " but have no use for it!"); _state._servers.erase(server); check_in(nntp, OK); } else { const MiniTask mt(minitasks.front()); minitasks.pop_front(); switch (mt._type) { case MiniTask::GROUP: debug("GROUP " << _group << " command to " << server); nntp->group(_group, this); break; case MiniTask::XOVER: debug("XOVER " << mt._low << '-' << mt._high << " to " << server); _last_xover_number[nntp] = mt._low; if (comp == HEADER_COMPRESS_XZVER || comp == HEADER_COMPRESS_DIABLO) nntp->xzver(_group, mt._low, mt._high, this); else nntp->xover(_group, mt._low, mt._high, this); break; default: assert(0); } update_work(); } } /*** **** ***/ void TaskXOver::on_nntp_group(NNTP * nntp, const Quark & group, Article_Count qty, Article_Number low, Article_Number high) { const Quark& servername(nntp->_server); CompressionType comp; _data.get_server_compression_type(servername, comp); const bool compression_enabled(comp != HEADER_COMPRESS_NONE); // new connections can tickle this... if (_servers_that_got_xover_minitasks.count(servername)) return; _servers_that_got_xover_minitasks.insert(servername); debug( "got GROUP result from " << nntp->_server << " (" << nntp << "): " << " qty " << qty << " low " << low << " high " << high); Article_Number l(low), h(high); _data.set_xover_low(group, nntp->_server, low); //std::cerr << LINE_ID << " This group's range is [" << low << "..." << high << ']' << std::endl; if (_mode == ALL || _mode == DAYS) l = low; else if (_mode == SAMPLE) { _sample_size = std::min(_sample_size, static_cast(high - low)); //std::cerr << LINE_ID << " and I want to sample " << _sample_size << " messages..." << std::endl; l = std::max(low, high + 1 - _sample_size); } else { // NEW Article_Number xh(_data.get_xover_high(group, nntp->_server)); //std::cerr << LINE_ID << " current xover high is " << xh << std::endl; l = std::max(xh + 1, low); } if (l <= high) { //std::cerr << LINE_ID << " okay, I'll try to get articles in [" << l << "..." << h << ']' << std::endl; add_steps(static_cast(h - l)); const int INCREMENT(compression_enabled ? 10000 : 1000); MiniTasks_t& minitasks(_server_to_minitasks[servername]); //Unfortunately we need to push everything to the front of the list, so //that we process all the xovers before we process the next group. //But we want to fetch all the articles in order so if someone exits, //on resumption we can resume from where we left off. Therefore, we build //a list of things to do in reverse order std::vector tasks; if (_mode != DAYS) { tasks.reserve(static_cast(h - l)); } for (Article_Number m = l; m <= h; m += INCREMENT) { //A note: It may not be necessary to cap the high here, the spec isn't //terribly clear about what happens if new articles come into //existence on the server while it is working out the response to the //xover. So be safe. const MiniTask mt(MiniTask::XOVER, m, std::min(h, m + INCREMENT)); debug( "adding MiniTask for " << servername << ": xover [" << mt._low << '-' << mt._high << "]"); if (_mode == DAYS) { minitasks.push_front(mt); ++_total_minitasks; } else { tasks.insert(tasks.begin(), mt); } } //And this reverses them again, so we're back in the right order. We don't //do it for days as there's a cutoff in the receiving code that stops us //as soon as we get older than the specified number of days. However, for //fetching anything else, we go forward so that it's possible to carry on //fetching new articles without leaving a gap after exit or crash. if (_mode != DAYS) { for (auto const & mt : tasks) { minitasks.push_front(mt); ++_total_minitasks; } } } else { //std::cerr << LINE_ID << " nothing new here..." << std::endl; _high[nntp->_server] = high; } } namespace { unsigned long view_to_ul(const StringView& view) { unsigned long ul = 0ul; if (!view.empty()) { errno = 0; ul = strtoul(view.str, nullptr, 10); if (errno) ul = 0ul; } return ul; } bool header_is_nonencoded_utf8(const StringView& in) { const bool is_nonencoded(!in.strstr("=?")); const bool is_utf8(g_utf8_validate(in.str, in.len, nullptr)); return is_nonencoded && is_utf8; } } void TaskXOver::on_nntp_line(NNTP * nntp, const StringView & line) { const Quark& server(nntp->_server); CompressionType comp; _data.get_server_compression_type(server, comp); if (comp != HEADER_COMPRESS_NONE) { int sock_id = nntp->_socket->get_id(); if (_streams.count(sock_id) == 0) _streams[sock_id] = new std::stringstream(); *_streams[sock_id] << line; // \r\n was stripped, append it again because ydecode needs it if (comp == HEADER_COMPRESS_XZVER || comp == HEADER_COMPRESS_DIABLO) *_streams[sock_id] <<"\r\n"; } else on_nntp_line_process(nntp, line); } void TaskXOver::on_nntp_line_process(NNTP * nntp, const StringView & line) { pan_return_if_fail(nntp != nullptr); pan_return_if_fail(!nntp->_server.empty()); pan_return_if_fail(!nntp->_group.empty()); _bytes_so_far += line.len; unsigned int lines = 0u; unsigned long bytes = 0ul; Article_Number number(0); StringView subj, author, date, mid, tmp, xref, l(line); std::string ref; bool ok = !l.empty(); ok = ok && l.pop_token(tmp, '\t'); if (ok) number = Article_Number(tmp); tmp.clear(); ok = ok && l.pop_token(subj, '\t'); if (ok) subj.trim(); ok = ok && l.pop_token(author, '\t'); if (ok) author.trim(); ok = ok && l.pop_token(date, '\t'); if (ok) date.trim(); ok = ok && l.pop_token(mid, '\t'); if (ok) mid.trim(); //handle multiple "References:"-message-ids correctly. (hack for some faulty servers) ok = ok && l.pop_token(tmp, '\t'); do { // usenetbucket uses a (null) (sic!) value for an empty reference list. hence the following hack if (tmp.empty() || tmp == "(null)" || tmp == "null") continue; if (tmp.front() == '<') { tmp.trim(); ref += tmp; tmp.clear(); } else break; } while ((ok = ok && l.pop_token(tmp, '\t'))); if (ok) bytes = view_to_ul(tmp); tmp.clear(); ok = ok && l.pop_token(tmp, '\t'); if (ok) lines = view_to_ul(tmp); ok = ok && l.pop_token(xref, '\t'); if (ok) xref.trim(); if (xref.len > 6 && !strncmp(xref.str, "Xref: ", 6)) { xref = xref.substr(xref.str + 6, nullptr); xref.trim(); } // is this header corrupt? if (static_cast(number) == 0 // missing number || subj.empty() // missing subject || author.empty() // missing author || date.empty() // missing date || mid.empty() // missing mid || mid.front() != '<') // corrupt mid /// Concerning bug : https://bugzilla.gnome.org/show_bug.cgi?id=650042 /// Even if we didn't get a proper reference here, continue. //|| (!ref.empty() && ref.front()!='<')) return; // if news server doesn't provide an xref, fake one char * buf(nullptr); if (xref.empty()) xref = buf = g_strdup_printf("%s %s:%" G_GUINT64_FORMAT, nntp->_server.c_str(), nntp->_group.c_str(), static_cast(number)); Article_Number& h(_high[nntp->_server]); h = std::max(h, number); const char * fallback_charset = NULL; // FIXME // are we done? GDateTime * time_posted_gd = g_mime_utils_header_decode_date(date.str); const time_t time_posted = g_date_time_to_unix(time_posted_gd); if (_mode == DAYS && time_posted < _days_cutoff) { _server_to_minitasks[nntp->_server].clear(); return; } ++_parts_so_far; const Article * article = _data.xover_add(nntp->_server, nntp->_group, (header_is_nonencoded_utf8(subj) ? subj : header_to_utf8(subj, fallback_charset).c_str()), (header_is_nonencoded_utf8(author) ? author : header_to_utf8(author, fallback_charset).c_str()), time_posted, mid, StringView(ref), bytes, lines, xref); if (article) ++_articles_so_far; // emit a status update Article_Number& prev = _last_xover_number[nntp]; increment_step(static_cast(number) - static_cast(prev)); prev = number; if (!(_parts_so_far % 500)) set_status_va(_("%s (%lu parts, %lu articles)"), _short_group_name.c_str(), _parts_so_far, _articles_so_far); // cleanup g_free(buf); } void TaskXOver::on_nntp_done(NNTP * nntp, Health health, const StringView & response) { const Quark& servername(nntp->_server); CompressionType comp; _data.get_server_compression_type(servername, comp); const bool compression_enabled(comp == HEADER_COMPRESS_XZVER || comp == HEADER_COMPRESS_DIABLO || comp == HEADER_COMPRESS_XFEATURE); bool fail (false); if (health == OK && compression_enabled && atoi(response.str) == 0) { std::stringstream* buffer(nullptr); std::stringstream out, out2; if (comp == HEADER_COMPRESS_XZVER || comp == HEADER_COMPRESS_DIABLO) { buffer = _streams[nntp->_socket->get_id()]; if (compression::ydecode(buffer, &out)) fail = !compression::inflate_zlib(&out, &out2, comp); else fail = true; } if (comp == HEADER_COMPRESS_XFEATURE) { buffer = _streams[nntp->_socket->get_id()]; fail = !buffer ? true : !compression::inflate_zlib(buffer, &out2, comp); } if (buffer) buffer->clear(); if (!fail) { char buf[4096]; while (true) { std::istream& str = out2.getline(buf, sizeof(buf)); if (str.fail() || str.bad() || str.eof()) break; on_nntp_line_process(nntp, buf); } } } update_work(true); check_in(nntp, fail ? ERR_LOCAL : health); } void TaskXOver::update_work(bool subtract_one_from_nntp_count) { int nntp_count(get_nntp_count()); if (subtract_one_from_nntp_count) --nntp_count; // find any servers we still need quarks_t servers; foreach_const (server_to_minitasks_t, _server_to_minitasks, it)if (!it->second.empty()) servers.insert (it->first); //std::cerr << LINE_ID << " servers: " << servers.size() << " nntp: " << nntp_count << std::endl; if (!servers.empty()) _state.set_need_nntp(servers); else if (nntp_count) _state.set_working(); else { _state.set_completed(); set_finished(OK); char str[4096]; g_snprintf(str, sizeof(str), _("Getting new headers for \"%s\" done."), _group.c_str()); verbose (str); } } unsigned long TaskXOver::get_bytes_remaining() const { unsigned int minitasks_left(0); foreach_const (server_to_minitasks_t, _server_to_minitasks, it)minitasks_left += it->second.size(); const double percent_done( _total_minitasks ? (1.0 - minitasks_left / (double) _total_minitasks) : 0.0); if (percent_done < 0.1) // impossible to estimate return 0; const unsigned long total_bytes = (unsigned long) (_bytes_so_far / percent_done); return total_bytes - _bytes_so_far; } pan-0.162/pan/tasks/task-xover.h000066400000000000000000000061551475412772400165030ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #ifndef __TASK_XOVER__H__ #define __TASK_XOVER__H__ #include #include #include #include #include #include #include #include #include namespace pan { /** * Task for downloading a some or all of a newsgroups' headers * @ingroup tasks */ class TaskXOver: public Task, private NNTP::Listener { public: // life cycle enum Mode { ALL, NEW, SAMPLE, DAYS }; TaskXOver (Data& data, const Quark& group, Mode mode=ALL, unsigned long sample_size=1000); virtual ~TaskXOver (); public: // task subclass virtual unsigned long get_bytes_remaining () const override; protected: // task subclass virtual void use_nntp (NNTP * nntp) override; private: // NNTP::Listener virtual void on_nntp_line (NNTP*, const StringView&) override; virtual void on_nntp_done (NNTP*, Health, const StringView&) override; virtual void on_nntp_group (NNTP*, const Quark&, Article_Count, Article_Number, Article_Number) override; void on_nntp_line_process (NNTP*, const StringView&); private: // implementation - minitasks struct MiniTask { enum Type { GROUP, XOVER }; Type _type; Article_Number _low, _high; MiniTask (Type type, Article_Number low=static_cast(0ul), Article_Number high=static_cast(0ul)): _type(type), _low(low), _high(high) {} }; typedef std::deque MiniTasks_t; typedef std::map server_to_minitasks_t; server_to_minitasks_t _server_to_minitasks; private: // implementation Data& _data; const Quark _group; std::string _short_group_name; Mode _mode; uint64_t _sample_size; time_t _days_cutoff; bool _group_xover_is_reffed; typedef std::map server_to_high_t; server_to_high_t _high; void update_work (bool subtract_one_from_nntp_count=false); std::set _servers_that_got_xover_minitasks; std::map _last_xover_number; unsigned long _bytes_so_far; unsigned long _parts_so_far; unsigned long _articles_so_far; unsigned long _total_minitasks; std::map _streams; }; } #endif pan-0.162/pan/tasks/task.cc000066400000000000000000000053131475412772400154730ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #include #include #include #include "task.h" using namespace pan; Task :: Task (const Quark& type, const StringView& description): Progress(description), _type(type) { verbose (_description); } Task :: ~Task () { } /*** **** Socket Handling ***/ void Task :: give_nntp (NNTP::Source * source, NNTP* nntp) { _nntp_to_source[nntp] = source; debug ("gave nntp " << nntp->_server << " (" << nntp << ") to task " << this << ", which now has " << _nntp_to_source.size() << " nntps"); use_nntp (nntp); } void Task :: check_in (NNTP * nntp, Health health) { debug ("task " << this << " returning nntp " << nntp); nntp_to_source_t::iterator it = _nntp_to_source.find (nntp); if (it != _nntp_to_source.end()) { NNTP::Source * source = it->second; _nntp_to_source.erase (nntp); debug ("returned nntp " << nntp << " OK; task " << this << " now has " << _nntp_to_source.size() << " nntps"); source->check_in (nntp, health); } } /*** **** ***/ void Task :: give_decoder (DecoderSource* s, Decoder* d) { _decoder_to_source[d] = s; use_decoder (d); } void Task :: give_encoder (EncoderSource* s, Encoder* d) { _encoder_to_source[d] = s; use_encoder (d); } void Task :: use_decoder (Decoder * d UNUSED) { assert(0 && "oops, child class task.cc called!\n"); } void Task :: use_encoder (Encoder * d UNUSED) { assert(0 && "oops, child class task.cc called!\n"); } void Task :: check_in (Decoder * d) { decoder_to_source_t::iterator it (_decoder_to_source.find (d)); if (it != _decoder_to_source.end()) { DecoderSource * s (it->second); _decoder_to_source.erase (d); s->check_in (d, this); } } void Task :: check_in (Encoder * d) { encoder_to_source_t::iterator it (_encoder_to_source.find (d)); if (it != _encoder_to_source.end()) { EncoderSource * s (it->second); _encoder_to_source.erase (d); s->check_in (d, this); } } pan-0.162/pan/tasks/task.h000066400000000000000000000133771475412772400153460ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #ifndef __TASK_H__ #define __TASK_H__ #include #include #include #include #include #include namespace pan { class Decoder; class Encoder; /** * Base class for jobs that require NNTP interaction to be completed. * These wait their turn in the queue until an NNTP connection is available. * * @see NNTP * @see Queue * @ingroup tasks */ class Task: public Progress { public: /** * Possible work states of a Task. */ enum Work { /** Task finished successfully */ COMPLETED = 0, /** Task is waiting on an nntp connection */ NEED_NNTP = 1, /** Task waiting for a decoder/encoder */ NEED_DECODER = 2, NEED_ENCODER = 3, /** Task is running */ WORKING = 5, INITIAL = 6 }; /** * Work and Health states of a particular task. */ struct State { public: /** What does this task need to do next? */ Work _work; /** What is this task's health? */ Health _health; /** when _work is NEED_NNTP, we can use any of these servers */ typedef sorted_vector unique_servers_t; unique_servers_t _servers; public: void set_completed () { _work = COMPLETED; _servers.clear(); } void set_initial () { _work = INITIAL; _servers.clear(); } void set_working () { _work = WORKING; _servers.clear(); } void set_need_nntp (const quarks_t& servers) { _work=NEED_NNTP; _servers.get_container().assign(servers.begin(),servers.end()); } void set_need_nntp (const Quark& server) { _work=NEED_NNTP; _servers.clear(); _servers.insert(server); } void set_need_decoder () { _work = NEED_DECODER; _servers.clear(); } void set_need_encoder () { _work = NEED_ENCODER; _servers.clear(); } void set_health (Health h) { _health = h; } public: //Note: The _work member used to be uninitialised, so depending //on pretty much anything, it could start in ANY of the states, //or none. For now I'm going to assume it starts in completed //state, but it's possible that if the value isn't immediately //set, the task could be reaped early in Queue::process_task State(): _work(COMPLETED), //? guesswork _health(OK) {} }; public: /** Loan the task a NNTP connection */ void give_nntp (NNTP::Source*, NNTP* nntp); struct DecoderSource { virtual ~DecoderSource() {} virtual void check_in (Decoder*, Task*) = 0; }; struct EncoderSource { virtual ~EncoderSource() {} virtual void check_in (Encoder*, Task*) = 0; }; /** Loan the task a Decoder */ void give_decoder (DecoderSource*, Decoder*); void give_encoder (EncoderSource*, Encoder*); public: Task (const Quark& type, const StringView& description); virtual ~Task (); const State& get_state () const { return _state; } State& get_state () { return _state; } const Quark& get_type () const { return _type; } virtual unsigned long get_bytes_remaining () const = 0; /// stop a running task virtual void stop () { } /// wakeup a sleeping task virtual void wakeup() {} protected: State _state; virtual void use_nntp (NNTP*) = 0; void check_in (NNTP*, Health); int get_nntp_count () const { return _nntp_to_source.size(); } virtual void use_decoder (Decoder*); virtual void use_encoder (Encoder*); void check_in (Decoder*); void check_in (Encoder*); private: /** What type this task is ("XOVER", "POST", "SAVE", "BODIES", etc...) */ const Quark _type; /** typedef for _nntp_to_source */ typedef Loki::AssocVector nntp_to_source_t; /** used in check_in() to remember where the nntp is to be returned */ nntp_to_source_t _nntp_to_source; typedef Loki::AssocVector decoder_to_source_t; typedef Loki::AssocVector encoder_to_source_t; /** used in check_in() to remember where the decoder/encoder is to be returned */ decoder_to_source_t _decoder_to_source; encoder_to_source_t _encoder_to_source; }; } #endif pan-0.162/pan/tasks/upload-queue.cc000066400000000000000000000077531475412772400171510ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #include #include #include #include #include #include "upload-queue.h" #include "task.h" #include "task-upload.h" /*** **** ***/ using namespace pan; UploadQueue :: UploadQueue () { _tasks.add_listener (this); } UploadQueue :: ~UploadQueue () {} void UploadQueue :: get_all_tasks (std::vector& setme) { setme.clear(); setme.reserve(_tasks.size()); foreach(TaskSet, _tasks, it) setme.push_back(*it); } void UploadQueue :: clear() { const tasks_t tmp (_tasks.begin(), _tasks.end()); foreach_const (tasks_t, tmp, it) { Task * task (*it); remove_task (task); } foreach (TaskSet, _tasks, it) delete *it; } void UploadQueue :: add_task (Task * task, AddMode mode) { tasks_t tasks; tasks.push_back (task); add_tasks (tasks, mode); } void UploadQueue :: add_tasks (const tasks_t& tasks, AddMode mode) { if (mode == TOP) _tasks.add_top (tasks); else if (mode == BOTTOM) _tasks.add_bottom (tasks); else _tasks.add (tasks); } void UploadQueue :: remove_tasks (const tasks_t& tasks) { foreach_const (tasks_t, tasks, it) remove_task (*it); } void UploadQueue :: remove_task (Task * task) { const int index (_tasks.index_of (task)); pan_return_if_fail (index != -1); _tasks.remove (index); delete task; } void UploadQueue :: move_up (const tasks_t& tasks) { foreach_const (tasks_t, tasks, it) { Task * task (*it); const int old_pos (_tasks.index_of (task)); _tasks.move_up (old_pos); } } void UploadQueue :: move_down (const tasks_t& tasks) { foreach_const_r (tasks_t, tasks, it) { Task * task (*it); const int old_pos (_tasks.index_of (task)); _tasks.move_down (old_pos); } } void UploadQueue :: move_top (const tasks_t& tasks) { foreach_const_r (tasks_t, tasks, it) { Task * task (*it); const int old_pos (_tasks.index_of (task)); _tasks.move_top (old_pos); } } void UploadQueue :: move_bottom (const tasks_t& tasks) { foreach_const (tasks_t, tasks, it) { Task * task (*it); const int old_pos (_tasks.index_of (task)); _tasks.move_bottom (old_pos); } } void UploadQueue :: select_encode (const tasks_t& tasks) {} void UploadQueue :: fire_tasks_added (int pos, int count) { for (lit it(_listeners.begin()), end(_listeners.end()); it!=end; ) (*it++)->on_queue_tasks_added (*this, pos, count); } void UploadQueue :: fire_task_removed (Task*& task, int pos) { for (lit it(_listeners.begin()), end(_listeners.end()); it!=end; ) (*it++)->on_queue_task_removed (*this, *task, pos); } void UploadQueue :: fire_task_moved (Task*& task, int new_pos, int old_pos) { for (lit it(_listeners.begin()), end(_listeners.end()); it!=end; ) (*it++)->on_queue_task_moved (*this, *task, new_pos, old_pos); } void UploadQueue :: on_set_items_added (TaskSet& container UNUSED, TaskSet::items_t& tasks, int pos) { fire_tasks_added (pos, tasks.size()); } void UploadQueue :: on_set_item_removed (TaskSet& container UNUSED, Task*& task, int pos) { fire_task_removed (task, pos); } void UploadQueue :: on_set_item_moved (TaskSet& container UNUSED, Task*& task, int new_pos, int old_pos) { fire_task_moved (task, new_pos, old_pos); } pan-0.162/pan/tasks/upload-queue.h000066400000000000000000000067171475412772400170120ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #ifndef _UploadQueue_h_ #define _UploadQueue_h_ #include #include #include #include // for UNUSED #include #include #include #include #include #include #include #include #include #include namespace pan { class NNTP; class ServerInfo; class WorkerPool; struct Encoder; class UploadQueue: private AdaptableSet::Listener { public: typedef AdaptableSet TaskSet; UploadQueue (); virtual ~UploadQueue (); typedef std::vector tasks_t; void remove_tasks (const tasks_t&); void move_up (const tasks_t&); void move_down (const tasks_t&); void move_top (const tasks_t&); void move_bottom (const tasks_t&); void select_encode (const tasks_t&); enum AddMode { TOP, BOTTOM }; void add_tasks (const tasks_t&, AddMode=BOTTOM); void add_task (Task*, AddMode=BOTTOM); void remove_task (Task*); void clear(); void get_all_tasks (std::vector& setme); protected: virtual void fire_tasks_added (int index, int count); virtual void fire_task_removed (Task*&, int index); virtual void fire_task_moved (Task*&, int index, int old_index); public: struct Listener { virtual ~Listener () {} virtual void on_queue_task_active_changed (UploadQueue&, Task&, bool active) {} virtual void on_queue_tasks_added (UploadQueue&, int index, int count) = 0; virtual void on_queue_task_removed (UploadQueue&, Task&, int index) = 0; virtual void on_queue_task_moved (UploadQueue&, Task&, int new_index, int old_index) = 0; }; void add_listener (Listener *l) { _listeners.insert(l); } void remove_listener (Listener *l) { _listeners.erase(l); } private: typedef std::set listeners_t; typedef listeners_t::iterator lit; listeners_t _listeners; public: Task* operator[](size_t i) { if (i>=_tasks.size() || i<0) return NULL; return _tasks[i]; } const Task* operator[](size_t i) const { if (i>=_tasks.size() || i<0) return NULL; return _tasks[i]; } private: TaskSet _tasks; virtual void on_set_items_added (TaskSet&, TaskSet::items_t&, int index); void on_set_item_removed (TaskSet&, Task*&, int index) override; void on_set_item_moved (TaskSet&, Task*&, int index, int old_index) override; }; } #endif pan-0.162/pan/usenet-utils/000077500000000000000000000000001475412772400155345ustar00rootroot00000000000000pan-0.162/pan/usenet-utils/CMakeLists.txt000066400000000000000000000017511475412772400203000ustar00rootroot00000000000000add_library(usenet-utils filter-info.cc rules-info.cc gnksa.cc message-check.cc mime-utils.cc numbers.cc scorefile.cc ssl-utils.cc text-massager.cc url-find.cc blowfish.cc gpg.cc ) # TODO: fix message-check-test and add it to this list set(test-programs gnksa-test numbers-test scorefile-test text-massager-test url-find-test) target_link_libraries(usenet-utils PUBLIC PkgConfig::GTK3) target_link_libraries(usenet-utils PUBLIC PkgConfig::GMIME) target_link_libraries(usenet-utils PUBLIC PkgConfig::GLIB) if(WANT_GNUTLS) target_link_libraries(usenet-utils PUBLIC PkgConfig::GNUTLS) endif() foreach(test ${test-programs}) add_executable(${test} ${test}.cc) # Sanity checking # https://cmake.org/cmake/help/latest/command/add_compile_options.html target_compile_options(${test} PRIVATE "${CXX_STD}" "-Wreorder" "-Wzero-as-null-pointer-constant") target_link_libraries(${test} usenet-utils generalutils pan-cc-gui) add_test(NAME ${test}-test COMMAND ${test}) endforeach() pan-0.162/pan/usenet-utils/MersenneTwister.h000066400000000000000000000355541475412772400210570ustar00rootroot00000000000000// MersenneTwister.h // Mersenne Twister random number generator -- a C++ class MTRand // Based on code by Makoto Matsumoto, Takuji Nishimura, and Shawn Cokus // Richard J. Wagner v1.1 28 September 2009 wagnerr@umich.edu // The Mersenne Twister is an algorithm for generating random numbers. It // was designed with consideration of the flaws in various other generators. // The period, 2^19937-1, and the order of equidistribution, 623 dimensions, // are far greater. The generator is also fast; it avoids multiplication and // division, and it benefits from caches and pipelines. For more information // see the inventors' web page at // http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/emt.html // Reference // M. Matsumoto and T. Nishimura, "Mersenne Twister: A 623-Dimensionally // Equidistributed Uniform Pseudo-Random Number Generator", ACM Transactions on // Modeling and Computer Simulation, Vol. 8, No. 1, January 1998, pp 3-30. // Copyright (C) 1997 - 2002, Makoto Matsumoto and Takuji Nishimura, // Copyright (C) 2000 - 2009, Richard J. Wagner // All rights reserved. // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions // are met: // // 1. Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // // 2. Redistributions in binary form must reproduce the above copyright // notice, this list of conditions and the following disclaimer in the // documentation and/or other materials provided with the distribution. // // 3. The names of its contributors may not be used to endorse or promote // products derived from this software without specific prior written // permission. // // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE // ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE // LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR // CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF // SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN // CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // The original code included the following notice: // // When you use this, send an email to: m-mat@math.sci.hiroshima-u.ac.jp // with an appropriate reference to your work. // // It would be nice to CC: wagnerr@umich.edu and Cokus@math.washington.edu // when you write. #ifndef MERSENNETWISTER_H #define MERSENNETWISTER_H // Not thread safe (unless auto-initialization is avoided and each thread has // its own MTRand object) #include #include #include #include #include class MTRand { // Data public: typedef unsigned long uint32; // unsigned integer type, at least 32 bits enum { N = 624 }; // length of state vector enum { SAVE = N + 1 }; // length of array for save() protected: enum { M = 397 }; // period parameter uint32 state[N]; // internal state uint32 *pNext; // next value to get from state int left; // number of values left before reload needed // Methods public: MTRand( const uint32 oneSeed ); // initialize with a simple uint32 MTRand( uint32 *const bigSeed, uint32 const seedLength = N ); // or array MTRand(); // auto-initialize with /dev/urandom or time() and clock() MTRand( const MTRand& o ); // copy // Do NOT use for CRYPTOGRAPHY without securely hashing several returned // values together, otherwise the generator state can be learned after // reading 624 consecutive values. // Access to 32-bit random numbers uint32 randInt(); // integer in [0,2^32-1] uint32 randInt( const uint32 n ); // integer in [0,n] for n < 2^32 double rand(); // real number in [0,1] double rand( const double n ); // real number in [0,n] double randExc(); // real number in [0,1) double randExc( const double n ); // real number in [0,n) double randDblExc(); // real number in (0,1) double randDblExc( const double n ); // real number in (0,n) double operator()(); // same as rand() // Access to 53-bit random numbers (capacity of IEEE double precision) double rand53(); // real number in [0,1) // Access to nonuniform random number distributions double randNorm( const double mean = 0.0, const double stddev = 1.0 ); // Re-seeding functions with same behavior as initializers void seed( const uint32 oneSeed ); void seed( uint32 *const bigSeed, const uint32 seedLength = N ); void seed(); // Saving and loading generator state void save( uint32* saveArray ) const; // to array of size SAVE void load( uint32 *const loadArray ); // from such array friend std::ostream& operator<<( std::ostream& os, const MTRand& mtrand ); friend std::istream& operator>>( std::istream& is, MTRand& mtrand ); MTRand& operator=( const MTRand& o ); protected: void initialize( const uint32 oneSeed ); void reload(); uint32 hiBit( const uint32 u ) const { return u & 0x80000000UL; } uint32 loBit( const uint32 u ) const { return u & 0x00000001UL; } uint32 loBits( const uint32 u ) const { return u & 0x7fffffffUL; } uint32 mixBits( const uint32 u, const uint32 v ) const { return hiBit(u) | loBits(v); } uint32 magic( const uint32 u ) const { return loBit(u) ? 0x9908b0dfUL : 0x0UL; } uint32 twist( const uint32 m, const uint32 s0, const uint32 s1 ) const { return m ^ (mixBits(s0,s1)>>1) ^ magic(s1); } static uint32 hash( time_t t, clock_t c ); }; // Functions are defined in order of usage to assist inlining inline MTRand::uint32 MTRand::hash( time_t t, clock_t c ) { // Get a uint32 from t and c // Better than uint32(x) in case x is floating point in [0,1] // Based on code by Lawrence Kirby (fred@genesis.demon.co.uk) static uint32 differ = 0; // guarantee time-based seeds will change uint32 h1 = 0; unsigned char *p = (unsigned char *) &t; for( size_t i = 0; i < sizeof(t); ++i ) { h1 *= UCHAR_MAX + 2U; h1 += p[i]; } uint32 h2 = 0; p = (unsigned char *) &c; for( size_t j = 0; j < sizeof(c); ++j ) { h2 *= UCHAR_MAX + 2U; h2 += p[j]; } return ( h1 + differ++ ) ^ h2; } inline void MTRand::initialize( const uint32 seed ) { // Initialize generator state with seed // See Knuth TAOCP Vol 2, 3rd Ed, p.106 for multiplier. // In previous versions, most significant bits (MSBs) of the seed affect // only MSBs of the state array. Modified 9 Jan 2002 by Makoto Matsumoto. uint32 *s = state; uint32 *r = state; int i = 1; *s++ = seed & 0xffffffffUL; for( ; i < N; ++i ) { *s++ = ( 1812433253UL * ( *r ^ (*r >> 30) ) + i ) & 0xffffffffUL; r++; } } inline void MTRand::reload() { // Generate N new values in state // Made clearer and faster by Matthew Bellew (matthew.bellew@home.com) static const int MmN = int(M) - int(N); // in case enums are unsigned uint32 *p = state; int i; for( i = N - M; i--; ++p ) *p = twist( p[M], p[0], p[1] ); for( i = M; --i; ++p ) *p = twist( p[MmN], p[0], p[1] ); *p = twist( p[MmN], p[0], state[0] ); left = N, pNext = state; } inline void MTRand::seed( const uint32 oneSeed ) { // Seed the generator with a simple uint32 initialize(oneSeed); reload(); } inline void MTRand::seed( uint32 *const bigSeed, const uint32 seedLength ) { // Seed the generator with an array of uint32's // There are 2^19937-1 possible initial states. This function allows // all of those to be accessed by providing at least 19937 bits (with a // default seed length of N = 624 uint32's). Any bits above the lower 32 // in each element are discarded. // Just call seed() if you want to get array from /dev/urandom initialize(19650218UL); int i = 1; uint32 j = 0; int k = ( N > seedLength ? N : seedLength ); for( ; k; --k ) { state[i] = state[i] ^ ( (state[i-1] ^ (state[i-1] >> 30)) * 1664525UL ); state[i] += ( bigSeed[j] & 0xffffffffUL ) + j; state[i] &= 0xffffffffUL; ++i; ++j; if( i >= N ) { state[0] = state[N-1]; i = 1; } if( j >= seedLength ) j = 0; } for( k = N - 1; k; --k ) { state[i] = state[i] ^ ( (state[i-1] ^ (state[i-1] >> 30)) * 1566083941UL ); state[i] -= i; state[i] &= 0xffffffffUL; ++i; if( i >= N ) { state[0] = state[N-1]; i = 1; } } state[0] = 0x80000000UL; // MSB is 1, assuring non-zero initial array reload(); } inline void MTRand::seed() { // Seed the generator with an array from /dev/urandom if available // Otherwise use a hash of time() and clock() values // First try getting an array from /dev/urandom FILE* urandom = fopen( "/dev/urandom", "rb" ); if( urandom ) { uint32 bigSeed[N]; uint32 *s = bigSeed; int i = N; bool success = true; while( success && i-- ) success = fread( s++, sizeof(uint32), 1, urandom ); fclose(urandom); if( success ) { seed( bigSeed, N ); return; } } // Was not successful, so use time() and clock() instead seed( hash( time(NULL), clock() ) ); } inline MTRand::MTRand( const uint32 oneSeed ) { seed(oneSeed); } inline MTRand::MTRand( uint32 *const bigSeed, const uint32 seedLength ) { seed(bigSeed,seedLength); } inline MTRand::MTRand() { seed(); } inline MTRand::MTRand( const MTRand& o ) { const uint32 *t = o.state; uint32 *s = state; int i = N; for( ; i--; *s++ = *t++ ) {} left = o.left; pNext = &state[N-left]; } inline MTRand::uint32 MTRand::randInt() { // Pull a 32-bit integer from the generator state // Every other access function simply transforms the numbers extracted here if( left == 0 ) reload(); --left; uint32 s1; s1 = *pNext++; s1 ^= (s1 >> 11); s1 ^= (s1 << 7) & 0x9d2c5680UL; s1 ^= (s1 << 15) & 0xefc60000UL; return ( s1 ^ (s1 >> 18) ); } inline MTRand::uint32 MTRand::randInt( const uint32 n ) { // Find which bits are used in n // Optimized by Magnus Jonsson (magnus@smartelectronix.com) uint32 used = n; used |= used >> 1; used |= used >> 2; used |= used >> 4; used |= used >> 8; used |= used >> 16; // Draw numbers until one is found in [0,n] uint32 i; do i = randInt() & used; // toss unused bits to shorten search while( i > n ); return i; } inline double MTRand::rand() { return double(randInt()) * (1.0/4294967295.0); } inline double MTRand::rand( const double n ) { return rand() * n; } inline double MTRand::randExc() { return double(randInt()) * (1.0/4294967296.0); } inline double MTRand::randExc( const double n ) { return randExc() * n; } inline double MTRand::randDblExc() { return ( double(randInt()) + 0.5 ) * (1.0/4294967296.0); } inline double MTRand::randDblExc( const double n ) { return randDblExc() * n; } inline double MTRand::rand53() { uint32 a = randInt() >> 5, b = randInt() >> 6; return ( a * 67108864.0 + b ) * (1.0/9007199254740992.0); // by Isaku Wada } inline double MTRand::randNorm( const double mean, const double stddev ) { // Return a real number from a normal (Gaussian) distribution with given // mean and standard deviation by polar form of Box-Muller transformation double x, y, r; do { x = 2.0 * rand() - 1.0; y = 2.0 * rand() - 1.0; r = x * x + y * y; } while ( r >= 1.0 || r == 0.0 ); double s = sqrt( -2.0 * log(r) / r ); return mean + x * s * stddev; } inline double MTRand::operator()() { return rand(); } inline void MTRand::save( uint32* saveArray ) const { const uint32 *s = state; uint32 *sa = saveArray; int i = N; for( ; i--; *sa++ = *s++ ) {} *sa = left; } inline void MTRand::load( uint32 *const loadArray ) { uint32 *s = state; uint32 *la = loadArray; int i = N; for( ; i--; *s++ = *la++ ) {} left = *la; pNext = &state[N-left]; } inline std::ostream& operator<<( std::ostream& os, const MTRand& mtrand ) { const MTRand::uint32 *s = mtrand.state; int i = mtrand.N; for( ; i--; os << *s++ << "\t" ) {} return os << mtrand.left; } inline std::istream& operator>>( std::istream& is, MTRand& mtrand ) { MTRand::uint32 *s = mtrand.state; int i = mtrand.N; for( ; i--; is >> *s++ ) {} is >> mtrand.left; mtrand.pNext = &mtrand.state[mtrand.N-mtrand.left]; return is; } inline MTRand& MTRand::operator=( const MTRand& o ) { if( this == &o ) return (*this); const uint32 *t = o.state; uint32 *s = state; int i = N; for( ; i--; *s++ = *t++ ) {} left = o.left; pNext = &state[N-left]; return (*this); } #endif // MERSENNETWISTER_H // Change log: // // v0.1 - First release on 15 May 2000 // - Based on code by Makoto Matsumoto, Takuji Nishimura, and Shawn Cokus // - Translated from C to C++ // - Made completely ANSI compliant // - Designed convenient interface for initialization, seeding, and // obtaining numbers in default or user-defined ranges // - Added automatic seeding from /dev/urandom or time() and clock() // - Provided functions for saving and loading generator state // // v0.2 - Fixed bug which reloaded generator one step too late // // v0.3 - Switched to clearer, faster reload() code from Matthew Bellew // // v0.4 - Removed trailing newline in saved generator format to be consistent // with output format of built-in types // // v0.5 - Improved portability by replacing static const int's with enum's and // clarifying return values in seed(); suggested by Eric Heimburg // - Removed MAXINT constant; use 0xffffffffUL instead // // v0.6 - Eliminated seed overflow when uint32 is larger than 32 bits // - Changed integer [0,n] generator to give better uniformity // // v0.7 - Fixed operator precedence ambiguity in reload() // - Added access for real numbers in (0,1) and (0,n) // // v0.8 - Included time.h header to properly support time_t and clock_t // // v1.0 - Revised seeding to match 26 Jan 2002 update of Nishimura and Matsumoto // - Allowed for seeding with arrays of any length // - Added access for real numbers in [0,1) with 53-bit resolution // - Added access for real numbers from normal (Gaussian) distributions // - Increased overall speed by optimizing twist() // - Doubled speed of integer [0,n] generation // - Fixed out-of-range number generation on 64-bit machines // - Improved portability by substituting literal constants for long enum's // - Changed license from GNU LGPL to BSD // // v1.1 - Corrected parameter label in randNorm from "variance" to "stddev" // - Changed randNorm algorithm from basic to polar form for efficiency // - Updated includes from deprecated to standard forms // - Cleaned declarations and definitions to please Intel compiler // - Revised twist() operator to work on ones'-complement machines // - Fixed reload() function to work when N and M are unsigned // - Added copy constructor and copy operator from Salvador Espana pan-0.162/pan/usenet-utils/blowfish.cc000066400000000000000000000140431475412772400176620ustar00rootroot00000000000000// blowfish.cpp C++ class implementation of the BLOWFISH encryption algorithm // _THE BLOWFISH ENCRYPTION ALGORITHM_ // by Bruce Schneier // Revised code--3/20/94 // Converted to C++ class 5/96, Jim Conger #include "blowfish.h" #include "blowfish_cyphers.h" //! holds the random digit tables #define S(x,i) (SBoxes[i][x.w.byte##i]) #define bf_F(x) (((S(x,0) + S(x,1)) ^ S(x,2)) + S(x,3)) #define ROUND(a,b,n) (a.dword ^= bf_F(b) ^ PArray[n]) CBlowFish::CBlowFish () { PArray = new DWORD [18] ; SBoxes = new DWORD [4][256] ; } CBlowFish::~CBlowFish () { delete [] PArray ; delete [] SBoxes ; } /** the low level (private) encryption function */ void CBlowFish::Blowfish_encipher (DWORD *xl, DWORD *xr) { union aword Xl, Xr ; Xl.dword = *xl ; Xr.dword = *xr ; Xl.dword ^= PArray [0]; ROUND (Xr, Xl, 1) ; ROUND (Xl, Xr, 2) ; ROUND (Xr, Xl, 3) ; ROUND (Xl, Xr, 4) ; ROUND (Xr, Xl, 5) ; ROUND (Xl, Xr, 6) ; ROUND (Xr, Xl, 7) ; ROUND (Xl, Xr, 8) ; ROUND (Xr, Xl, 9) ; ROUND (Xl, Xr, 10) ; ROUND (Xr, Xl, 11) ; ROUND (Xl, Xr, 12) ; ROUND (Xr, Xl, 13) ; ROUND (Xl, Xr, 14) ; ROUND (Xr, Xl, 15) ; ROUND (Xl, Xr, 16) ; Xr.dword ^= PArray [17] ; *xr = Xl.dword ; *xl = Xr.dword ; } /** the low level (private) decryption function */ void CBlowFish::Blowfish_decipher (DWORD *xl, DWORD *xr) { union aword Xl ; union aword Xr ; Xl.dword = *xl ; Xr.dword = *xr ; Xl.dword ^= PArray [17] ; ROUND (Xr, Xl, 16) ; ROUND (Xl, Xr, 15) ; ROUND (Xr, Xl, 14) ; ROUND (Xl, Xr, 13) ; ROUND (Xr, Xl, 12) ; ROUND (Xl, Xr, 11) ; ROUND (Xr, Xl, 10) ; ROUND (Xl, Xr, 9) ; ROUND (Xr, Xl, 8) ; ROUND (Xl, Xr, 7) ; ROUND (Xr, Xl, 6) ; ROUND (Xl, Xr, 5) ; ROUND (Xr, Xl, 4) ; ROUND (Xl, Xr, 3) ; ROUND (Xr, Xl, 2) ; ROUND (Xl, Xr, 1) ; Xr.dword ^= PArray[0]; *xl = Xr.dword; *xr = Xl.dword; } /** constructs the enctryption sieve */ void CBlowFish::Initialize (BYTE key[], int keybytes) { int i, j ; DWORD data, datal, datar ; union aword temp ; // first fill arrays from data tables for (i = 0 ; i < 18 ; i++) PArray [i] = bf_P [i] ; for (i = 0 ; i < 4 ; i++) { for (j = 0 ; j < 256 ; j++) SBoxes [i][j] = bf_S [i][j] ; } j = 0 ; for (i = 0 ; i < NPASS + 2 ; ++i) { temp.dword = 0 ; temp.w.byte0 = key[j]; temp.w.byte1 = key[(j+1) % keybytes] ; temp.w.byte2 = key[(j+2) % keybytes] ; temp.w.byte3 = key[(j+3) % keybytes] ; data = temp.dword ; PArray [i] ^= data ; j = (j + 4) % keybytes ; } datal = 0 ; datar = 0 ; for (i = 0 ; i < NPASS + 2 ; i += 2) { Blowfish_encipher (&datal, &datar) ; PArray [i] = datal ; PArray [i + 1] = datar ; } for (i = 0 ; i < 4 ; ++i) { for (j = 0 ; j < 256 ; j += 2) { Blowfish_encipher (&datal, &datar) ; SBoxes [i][j] = datal ; SBoxes [i][j + 1] = datar ; } } } /** get output length, which must be even MOD 8 */ DWORD CBlowFish::GetOutputLength (DWORD lInputLong) { DWORD lVal ; lVal = lInputLong % 8 ; // find out if uneven number of bytes at the end if (lVal != 0) return lInputLong + 8 - lVal ; else return lInputLong ; } /** Encode pIntput into pOutput. Input length in lSize. Returned value * is length of output which will be even MOD 8 bytes. Inputbuffer and * output buffer can be the same, but be sure buffer length is even MOD 8. */ DWORD CBlowFish::Encode (BYTE * pInput, BYTE * pOutput, DWORD lSize) { DWORD lCount, lOutSize, lGoodBytes ; BYTE *pi, *po ; int i, j ; int SameDest = (pInput == pOutput ? 1 : 0) ; lOutSize = GetOutputLength (lSize) ; for (lCount = 0 ; lCount < lOutSize ; lCount += 8) { if (SameDest) // if encoded data is being written into input buffer { if (lCount < lSize - 7) // if not dealing with uneven bytes at end { Blowfish_encipher ((DWORD *) pInput, (DWORD *) (pInput + 4)) ; } else // pad end of data with null bytes to complete encryption { po = pInput + lSize ; // point at byte past the end of actual data j = (int) (lOutSize - lSize) ; // number of bytes to set to null for (i = 0 ; i < j ; i++) *po++ = 0 ; Blowfish_encipher ((DWORD *) pInput, (DWORD *) (pInput + 4)) ; } pInput += 8 ; } else // output buffer not equal to input buffer, so must copy { // input to output buffer prior to encrypting if (lCount < lSize - 7) // if not dealing with uneven bytes at end { pi = pInput ; po = pOutput ; for (i = 0 ; i < 8 ; i++) // copy bytes to output *po++ = *pi++ ; Blowfish_encipher ((DWORD *) pOutput, // now encrypt them (DWORD *) (pOutput + 4)) ; } else // pad end of data with null bytes to complete encryption { lGoodBytes = lSize - lCount ; // number of remaining data bytes po = pOutput ; for (i = 0 ; i < (int) lGoodBytes ; i++) *po++ = *pInput++ ; for (j = i ; j < 8 ; j++) *po++ = 0 ; Blowfish_encipher ((DWORD *) pOutput, (DWORD *) (pOutput + 4)) ; } pInput += 8 ; pOutput += 8 ; } } return lOutSize ; } /** Decode pInput into pOutput. Input length in lSize. Input buffer and * output buffer can be the same, but be sure buffer length is even MOD 8. */ void CBlowFish::Decode (BYTE * pInput, BYTE * pOutput, DWORD lSize) { DWORD lCount ; BYTE *pi, *po ; int i ; int SameDest = (pInput == pOutput ? 1 : 0) ; for (lCount = 0 ; lCount < lSize ; lCount += 8) { if (SameDest) // if encoded data is being written into input buffer { Blowfish_decipher ((DWORD *) pInput, (DWORD *) (pInput + 4)) ; pInput += 8 ; } else // output buffer not equal to input buffer { // so copy input to output before decoding pi = pInput ; po = pOutput ; for (i = 0 ; i < 8 ; i++) *po++ = *pi++ ; Blowfish_decipher ((DWORD *) pOutput, (DWORD *) (pOutput + 4)) ; pInput += 8 ; pOutput += 8 ; } } } pan-0.162/pan/usenet-utils/blowfish.h000066400000000000000000000034441475412772400175270ustar00rootroot00000000000000// blowfish.h interface file for blowfish.cpp // _THE BLOWFISH ENCRYPTION ALGORITHM_ // by Bruce Schneier // Revised code--3/20/94 // Converted to C++ class 5/96, Jim Conger #define MAXKEYBYTES 56 // 448 bits max #define NPASS 16 // SBox passes #ifndef DWORD #define DWORD unsigned long #endif #ifndef WORD #define WORD unsigned short #endif #ifndef BYTE #define BYTE char #endif class CBlowFish { private: DWORD * PArray ; DWORD (* SBoxes)[256]; void Blowfish_encipher (DWORD *xl, DWORD *xr) ; void Blowfish_decipher (DWORD *xl, DWORD *xr) ; public: CBlowFish () ; ~CBlowFish () ; CBlowFish(CBlowFish const &) = delete; CBlowFish &operator=(CBlowFish const &) = delete; void Initialize (BYTE key[], int keybytes) ; DWORD GetOutputLength (DWORD lInputLong) ; DWORD Encode (BYTE * pInput, BYTE * pOutput, DWORD lSize) ; void Decode (BYTE * pInput, BYTE * pOutput, DWORD lSize) ; } ; // choose a byte order for your hardware #define ORDER_DCBA // chosing Intel in this case #ifdef ORDER_DCBA // DCBA - little endian - intel union aword { DWORD dword; BYTE byte [4]; struct { unsigned int byte3:8; unsigned int byte2:8; unsigned int byte1:8; unsigned int byte0:8; } w; }; #endif #ifdef ORDER_ABCD // ABCD - big endian - motorola union aword { DWORD dword; BYTE byte [4]; struct { unsigned int byte0:8; unsigned int byte1:8; unsigned int byte2:8; unsigned int byte3:8; } w; }; #endif #ifdef ORDER_BADC // BADC - vax union aword { DWORD dword; BYTE byte [4]; struct { unsigned int byte1:8; unsigned int byte0:8; unsigned int byte3:8; unsigned int byte2:8; } w; }; #endif pan-0.162/pan/usenet-utils/blowfish_cyphers.h000066400000000000000000000321701475412772400212620ustar00rootroot00000000000000// blowfish_cyphers.h // header file containing random number tables static DWORD bf_P[NPASS + 2] = { 0x243f6a88, 0x85a308d3, 0x13198a2e, 0x03707344, 0xa4093822, 0x299f31d0, 0x082efa98, 0xec4e6c89, 0x452821e6, 0x38d01377, 0xbe5466cf, 0x34e90c6c, 0xc0ac29b7, 0xc97c50dd, 0x3f84d5b5, 0xb5470917, 0x9216d5d9, 0x8979fb1b, }; static DWORD bf_S[4][256] = { 0xd1310ba6, 0x98dfb5ac, 0x2ffd72db, 0xd01adfb7, 0xb8e1afed, 0x6a267e96, 0xba7c9045, 0xf12c7f99, 0x24a19947, 0xb3916cf7, 0x0801f2e2, 0x858efc16, 0x636920d8, 0x71574e69, 0xa458fea3, 0xf4933d7e, 0x0d95748f, 0x728eb658, 0x718bcd58, 0x82154aee, 0x7b54a41d, 0xc25a59b5, 0x9c30d539, 0x2af26013, 0xc5d1b023, 0x286085f0, 0xca417918, 0xb8db38ef, 0x8e79dcb0, 0x603a180e, 0x6c9e0e8b, 0xb01e8a3e, 0xd71577c1, 0xbd314b27, 0x78af2fda, 0x55605c60, 0xe65525f3, 0xaa55ab94, 0x57489862, 0x63e81440, 0x55ca396a, 0x2aab10b6, 0xb4cc5c34, 0x1141e8ce, 0xa15486af, 0x7c72e993, 0xb3ee1411, 0x636fbc2a, 0x2ba9c55d, 0x741831f6, 0xce5c3e16, 0x9b87931e, 0xafd6ba33, 0x6c24cf5c, 0x7a325381, 0x28958677, 0x3b8f4898, 0x6b4bb9af, 0xc4bfe81b, 0x66282193, 0x61d809cc, 0xfb21a991, 0x487cac60, 0x5dec8032, 0xef845d5d, 0xe98575b1, 0xdc262302, 0xeb651b88, 0x23893e81, 0xd396acc5, 0x0f6d6ff3, 0x83f44239, 0x2e0b4482, 0xa4842004, 0x69c8f04a, 0x9e1f9b5e, 0x21c66842, 0xf6e96c9a, 0x670c9c61, 0xabd388f0, 0x6a51a0d2, 0xd8542f68, 0x960fa728, 0xab5133a3, 0x6eef0b6c, 0x137a3be4, 0xba3bf050, 0x7efb2a98, 0xa1f1651d, 0x39af0176, 0x66ca593e, 0x82430e88, 0x8cee8619, 0x456f9fb4, 0x7d84a5c3, 0x3b8b5ebe, 0xe06f75d8, 0x85c12073, 0x401a449f, 0x56c16aa6, 0x4ed3aa62, 0x363f7706, 0x1bfedf72, 0x429b023d, 0x37d0d724, 0xd00a1248, 0xdb0fead3, 0x49f1c09b, 0x075372c9, 0x80991b7b, 0x25d479d8, 0xf6e8def7, 0xe3fe501a, 0xb6794c3b, 0x976ce0bd, 0x04c006ba, 0xc1a94fb6, 0x409f60c4, 0x5e5c9ec2, 0x196a2463, 0x68fb6faf, 0x3e6c53b5, 0x1339b2eb, 0x3b52ec6f, 0x6dfc511f, 0x9b30952c, 0xcc814544, 0xaf5ebd09, 0xbee3d004, 0xde334afd, 0x660f2807, 0x192e4bb3, 0xc0cba857, 0x45c8740f, 0xd20b5f39, 0xb9d3fbdb, 0x5579c0bd, 0x1a60320a, 0xd6a100c6, 0x402c7279, 0x679f25fe, 0xfb1fa3cc, 0x8ea5e9f8, 0xdb3222f8, 0x3c7516df, 0xfd616b15, 0x2f501ec8, 0xad0552ab, 0x323db5fa, 0xfd238760, 0x53317b48, 0x3e00df82, 0x9e5c57bb, 0xca6f8ca0, 0x1a87562e, 0xdf1769db, 0xd542a8f6, 0x287effc3, 0xac6732c6, 0x8c4f5573, 0x695b27b0, 0xbbca58c8, 0xe1ffa35d, 0xb8f011a0, 0x10fa3d98, 0xfd2183b8, 0x4afcb56c, 0x2dd1d35b, 0x9a53e479, 0xb6f84565, 0xd28e49bc, 0x4bfb9790, 0xe1ddf2da, 0xa4cb7e33, 0x62fb1341, 0xcee4c6e8, 0xef20cada, 0x36774c01, 0xd07e9efe, 0x2bf11fb4, 0x95dbda4d, 0xae909198, 0xeaad8e71, 0x6b93d5a0, 0xd08ed1d0, 0xafc725e0, 0x8e3c5b2f, 0x8e7594b7, 0x8ff6e2fb, 0xf2122b64, 0x8888b812, 0x900df01c, 0x4fad5ea0, 0x688fc31c, 0xd1cff191, 0xb3a8c1ad, 0x2f2f2218, 0xbe0e1777, 0xea752dfe, 0x8b021fa1, 0xe5a0cc0f, 0xb56f74e8, 0x18acf3d6, 0xce89e299, 0xb4a84fe0, 0xfd13e0b7, 0x7cc43b81, 0xd2ada8d9, 0x165fa266, 0x80957705, 0x93cc7314, 0x211a1477, 0xe6ad2065, 0x77b5fa86, 0xc75442f5, 0xfb9d35cf, 0xebcdaf0c, 0x7b3e89a0, 0xd6411bd3, 0xae1e7e49, 0x00250e2d, 0x2071b35e, 0x226800bb, 0x57b8e0af, 0x2464369b, 0xf009b91e, 0x5563911d, 0x59dfa6aa, 0x78c14389, 0xd95a537f, 0x207d5ba2, 0x02e5b9c5, 0x83260376, 0x6295cfa9, 0x11c81968, 0x4e734a41, 0xb3472dca, 0x7b14a94a, 0x1b510052, 0x9a532915, 0xd60f573f, 0xbc9bc6e4, 0x2b60a476, 0x81e67400, 0x08ba6fb5, 0x571be91f, 0xf296ec6b, 0x2a0dd915, 0xb6636521, 0xe7b9f9b6, 0xff34052e, 0xc5855664, 0x53b02d5d, 0xa99f8fa1, 0x08ba4799, 0x6e85076a, 0x4b7a70e9, 0xb5b32944, 0xdb75092e, 0xc4192623, 0xad6ea6b0, 0x49a7df7d, 0x9cee60b8, 0x8fedb266, 0xecaa8c71, 0x699a17ff, 0x5664526c, 0xc2b19ee1, 0x193602a5, 0x75094c29, 0xa0591340, 0xe4183a3e, 0x3f54989a, 0x5b429d65, 0x6b8fe4d6, 0x99f73fd6, 0xa1d29c07, 0xefe830f5, 0x4d2d38e6, 0xf0255dc1, 0x4cdd2086, 0x8470eb26, 0x6382e9c6, 0x021ecc5e, 0x09686b3f, 0x3ebaefc9, 0x3c971814, 0x6b6a70a1, 0x687f3584, 0x52a0e286, 0xb79c5305, 0xaa500737, 0x3e07841c, 0x7fdeae5c, 0x8e7d44ec, 0x5716f2b8, 0xb03ada37, 0xf0500c0d, 0xf01c1f04, 0x0200b3ff, 0xae0cf51a, 0x3cb574b2, 0x25837a58, 0xdc0921bd, 0xd19113f9, 0x7ca92ff6, 0x94324773, 0x22f54701, 0x3ae5e581, 0x37c2dadc, 0xc8b57634, 0x9af3dda7, 0xa9446146, 0x0fd0030e, 0xecc8c73e, 0xa4751e41, 0xe238cd99, 0x3bea0e2f, 0x3280bba1, 0x183eb331, 0x4e548b38, 0x4f6db908, 0x6f420d03, 0xf60a04bf, 0x2cb81290, 0x24977c79, 0x5679b072, 0xbcaf89af, 0xde9a771f, 0xd9930810, 0xb38bae12, 0xdccf3f2e, 0x5512721f, 0x2e6b7124, 0x501adde6, 0x9f84cd87, 0x7a584718, 0x7408da17, 0xbc9f9abc, 0xe94b7d8c, 0xec7aec3a, 0xdb851dfa, 0x63094366, 0xc464c3d2, 0xef1c1847, 0x3215d908, 0xdd433b37, 0x24c2ba16, 0x12a14d43, 0x2a65c451, 0x50940002, 0x133ae4dd, 0x71dff89e, 0x10314e55, 0x81ac77d6, 0x5f11199b, 0x043556f1, 0xd7a3c76b, 0x3c11183b, 0x5924a509, 0xf28fe6ed, 0x97f1fbfa, 0x9ebabf2c, 0x1e153c6e, 0x86e34570, 0xeae96fb1, 0x860e5e0a, 0x5a3e2ab3, 0x771fe71c, 0x4e3d06fa, 0x2965dcb9, 0x99e71d0f, 0x803e89d6, 0x5266c825, 0x2e4cc978, 0x9c10b36a, 0xc6150eba, 0x94e2ea78, 0xa5fc3c53, 0x1e0a2df4, 0xf2f74ea7, 0x361d2b3d, 0x1939260f, 0x19c27960, 0x5223a708, 0xf71312b6, 0xebadfe6e, 0xeac31f66, 0xe3bc4595, 0xa67bc883, 0xb17f37d1, 0x018cff28, 0xc332ddef, 0xbe6c5aa5, 0x65582185, 0x68ab9802, 0xeecea50f, 0xdb2f953b, 0x2aef7dad, 0x5b6e2f84, 0x1521b628, 0x29076170, 0xecdd4775, 0x619f1510, 0x13cca830, 0xeb61bd96, 0x0334fe1e, 0xaa0363cf, 0xb5735c90, 0x4c70a239, 0xd59e9e0b, 0xcbaade14, 0xeecc86bc, 0x60622ca7, 0x9cab5cab, 0xb2f3846e, 0x648b1eaf, 0x19bdf0ca, 0xa02369b9, 0x655abb50, 0x40685a32, 0x3c2ab4b3, 0x319ee9d5, 0xc021b8f7, 0x9b540b19, 0x875fa099, 0x95f7997e, 0x623d7da8, 0xf837889a, 0x97e32d77, 0x11ed935f, 0x16681281, 0x0e358829, 0xc7e61fd6, 0x96dedfa1, 0x7858ba99, 0x57f584a5, 0x1b227263, 0x9b83c3ff, 0x1ac24696, 0xcdb30aeb, 0x532e3054, 0x8fd948e4, 0x6dbc3128, 0x58ebf2ef, 0x34c6ffea, 0xfe28ed61, 0xee7c3c73, 0x5d4a14d9, 0xe864b7e3, 0x42105d14, 0x203e13e0, 0x45eee2b6, 0xa3aaabea, 0xdb6c4f15, 0xfacb4fd0, 0xc742f442, 0xef6abbb5, 0x654f3b1d, 0x41cd2105, 0xd81e799e, 0x86854dc7, 0xe44b476a, 0x3d816250, 0xcf62a1f2, 0x5b8d2646, 0xfc8883a0, 0xc1c7b6a3, 0x7f1524c3, 0x69cb7492, 0x47848a0b, 0x5692b285, 0x095bbf00, 0xad19489d, 0x1462b174, 0x23820e00, 0x58428d2a, 0x0c55f5ea, 0x1dadf43e, 0x233f7061, 0x3372f092, 0x8d937e41, 0xd65fecf1, 0x6c223bdb, 0x7cde3759, 0xcbee7460, 0x4085f2a7, 0xce77326e, 0xa6078084, 0x19f8509e, 0xe8efd855, 0x61d99735, 0xa969a7aa, 0xc50c06c2, 0x5a04abfc, 0x800bcadc, 0x9e447a2e, 0xc3453484, 0xfdd56705, 0x0e1e9ec9, 0xdb73dbd3, 0x105588cd, 0x675fda79, 0xe3674340, 0xc5c43465, 0x713e38d8, 0x3d28f89e, 0xf16dff20, 0x153e21e7, 0x8fb03d4a, 0xe6e39f2b, 0xdb83adf7, 0xe93d5a68, 0x948140f7, 0xf64c261c, 0x94692934, 0x411520f7, 0x7602d4f7, 0xbcf46b2e, 0xd4a20068, 0xd4082471, 0x3320f46a, 0x43b7d4b7, 0x500061af, 0x1e39f62e, 0x97244546, 0x14214f74, 0xbf8b8840, 0x4d95fc1d, 0x96b591af, 0x70f4ddd3, 0x66a02f45, 0xbfbc09ec, 0x03bd9785, 0x7fac6dd0, 0x31cb8504, 0x96eb27b3, 0x55fd3941, 0xda2547e6, 0xabca0a9a, 0x28507825, 0x530429f4, 0x0a2c86da, 0xe9b66dfb, 0x68dc1462, 0xd7486900, 0x680ec0a4, 0x27a18dee, 0x4f3ffea2, 0xe887ad8c, 0xb58ce006, 0x7af4d6b6, 0xaace1e7c, 0xd3375fec, 0xce78a399, 0x406b2a42, 0x20fe9e35, 0xd9f385b9, 0xee39d7ab, 0x3b124e8b, 0x1dc9faf7, 0x4b6d1856, 0x26a36631, 0xeae397b2, 0x3a6efa74, 0xdd5b4332, 0x6841e7f7, 0xca7820fb, 0xfb0af54e, 0xd8feb397, 0x454056ac, 0xba489527, 0x55533a3a, 0x20838d87, 0xfe6ba9b7, 0xd096954b, 0x55a867bc, 0xa1159a58, 0xcca92963, 0x99e1db33, 0xa62a4a56, 0x3f3125f9, 0x5ef47e1c, 0x9029317c, 0xfdf8e802, 0x04272f70, 0x80bb155c, 0x05282ce3, 0x95c11548, 0xe4c66d22, 0x48c1133f, 0xc70f86dc, 0x07f9c9ee, 0x41041f0f, 0x404779a4, 0x5d886e17, 0x325f51eb, 0xd59bc0d1, 0xf2bcc18f, 0x41113564, 0x257b7834, 0x602a9c60, 0xdff8e8a3, 0x1f636c1b, 0x0e12b4c2, 0x02e1329e, 0xaf664fd1, 0xcad18115, 0x6b2395e0, 0x333e92e1, 0x3b240b62, 0xeebeb922, 0x85b2a20e, 0xe6ba0d99, 0xde720c8c, 0x2da2f728, 0xd0127845, 0x95b794fd, 0x647d0862, 0xe7ccf5f0, 0x5449a36f, 0x877d48fa, 0xc39dfd27, 0xf33e8d1e, 0x0a476341, 0x992eff74, 0x3a6f6eab, 0xf4f8fd37, 0xa812dc60, 0xa1ebddf8, 0x991be14c, 0xdb6e6b0d, 0xc67b5510, 0x6d672c37, 0x2765d43b, 0xdcd0e804, 0xf1290dc7, 0xcc00ffa3, 0xb5390f92, 0x690fed0b, 0x667b9ffb, 0xcedb7d9c, 0xa091cf0b, 0xd9155ea3, 0xbb132f88, 0x515bad24, 0x7b9479bf, 0x763bd6eb, 0x37392eb3, 0xcc115979, 0x8026e297, 0xf42e312d, 0x6842ada7, 0xc66a2b3b, 0x12754ccc, 0x782ef11c, 0x6a124237, 0xb79251e7, 0x06a1bbe6, 0x4bfb6350, 0x1a6b1018, 0x11caedfa, 0x3d25bdd8, 0xe2e1c3c9, 0x44421659, 0x0a121386, 0xd90cec6e, 0xd5abea2a, 0x64af674e, 0xda86a85f, 0xbebfe988, 0x64e4c3fe, 0x9dbc8057, 0xf0f7c086, 0x60787bf8, 0x6003604d, 0xd1fd8346, 0xf6381fb0, 0x7745ae04, 0xd736fccc, 0x83426b33, 0xf01eab71, 0xb0804187, 0x3c005e5f, 0x77a057be, 0xbde8ae24, 0x55464299, 0xbf582e61, 0x4e58f48f, 0xf2ddfda2, 0xf474ef38, 0x8789bdc2, 0x5366f9c3, 0xc8b38e74, 0xb475f255, 0x46fcd9b9, 0x7aeb2661, 0x8b1ddf84, 0x846a0e79, 0x915f95e2, 0x466e598e, 0x20b45770, 0x8cd55591, 0xc902de4c, 0xb90bace1, 0xbb8205d0, 0x11a86248, 0x7574a99e, 0xb77f19b6, 0xe0a9dc09, 0x662d09a1, 0xc4324633, 0xe85a1f02, 0x09f0be8c, 0x4a99a025, 0x1d6efe10, 0x1ab93d1d, 0x0ba5a4df, 0xa186f20f, 0x2868f169, 0xdcb7da83, 0x573906fe, 0xa1e2ce9b, 0x4fcd7f52, 0x50115e01, 0xa70683fa, 0xa002b5c4, 0x0de6d027, 0x9af88c27, 0x773f8641, 0xc3604c06, 0x61a806b5, 0xf0177a28, 0xc0f586e0, 0x006058aa, 0x30dc7d62, 0x11e69ed7, 0x2338ea63, 0x53c2dd94, 0xc2c21634, 0xbbcbee56, 0x90bcb6de, 0xebfc7da1, 0xce591d76, 0x6f05e409, 0x4b7c0188, 0x39720a3d, 0x7c927c24, 0x86e3725f, 0x724d9db9, 0x1ac15bb4, 0xd39eb8fc, 0xed545578, 0x08fca5b5, 0xd83d7cd3, 0x4dad0fc4, 0x1e50ef5e, 0xb161e6f8, 0xa28514d9, 0x6c51133c, 0x6fd5c7e7, 0x56e14ec4, 0x362abfce, 0xddc6c837, 0xd79a3234, 0x92638212, 0x670efa8e, 0x406000e0, 0x3a39ce37, 0xd3faf5cf, 0xabc27737, 0x5ac52d1b, 0x5cb0679e, 0x4fa33742, 0xd3822740, 0x99bc9bbe, 0xd5118e9d, 0xbf0f7315, 0xd62d1c7e, 0xc700c47b, 0xb78c1b6b, 0x21a19045, 0xb26eb1be, 0x6a366eb4, 0x5748ab2f, 0xbc946e79, 0xc6a376d2, 0x6549c2c8, 0x530ff8ee, 0x468dde7d, 0xd5730a1d, 0x4cd04dc6, 0x2939bbdb, 0xa9ba4650, 0xac9526e8, 0xbe5ee304, 0xa1fad5f0, 0x6a2d519a, 0x63ef8ce2, 0x9a86ee22, 0xc089c2b8, 0x43242ef6, 0xa51e03aa, 0x9cf2d0a4, 0x83c061ba, 0x9be96a4d, 0x8fe51550, 0xba645bd6, 0x2826a2f9, 0xa73a3ae1, 0x4ba99586, 0xef5562e9, 0xc72fefd3, 0xf752f7da, 0x3f046f69, 0x77fa0a59, 0x80e4a915, 0x87b08601, 0x9b09e6ad, 0x3b3ee593, 0xe990fd5a, 0x9e34d797, 0x2cf0b7d9, 0x022b8b51, 0x96d5ac3a, 0x017da67d, 0xd1cf3ed6, 0x7c7d2d28, 0x1f9f25cf, 0xadf2b89b, 0x5ad6b472, 0x5a88f54c, 0xe029ac71, 0xe019a5e6, 0x47b0acfd, 0xed93fa9b, 0xe8d3c48d, 0x283b57cc, 0xf8d56629, 0x79132e28, 0x785f0191, 0xed756055, 0xf7960e44, 0xe3d35e8c, 0x15056dd4, 0x88f46dba, 0x03a16125, 0x0564f0bd, 0xc3eb9e15, 0x3c9057a2, 0x97271aec, 0xa93a072a, 0x1b3f6d9b, 0x1e6321f5, 0xf59c66fb, 0x26dcf319, 0x7533d928, 0xb155fdf5, 0x03563482, 0x8aba3cbb, 0x28517711, 0xc20ad9f8, 0xabcc5167, 0xccad925f, 0x4de81751, 0x3830dc8e, 0x379d5862, 0x9320f991, 0xea7a90c2, 0xfb3e7bce, 0x5121ce64, 0x774fbe32, 0xa8b6e37e, 0xc3293d46, 0x48de5369, 0x6413e680, 0xa2ae0810, 0xdd6db224, 0x69852dfd, 0x09072166, 0xb39a460a, 0x6445c0dd, 0x586cdecf, 0x1c20c8ae, 0x5bbef7dd, 0x1b588d40, 0xccd2017f, 0x6bb4e3bb, 0xdda26a7e, 0x3a59ff45, 0x3e350a44, 0xbcb4cdd5, 0x72eacea8, 0xfa6484bb, 0x8d6612ae, 0xbf3c6f47, 0xd29be463, 0x542f5d9e, 0xaec2771b, 0xf64e6370, 0x740e0d8d, 0xe75b1357, 0xf8721671, 0xaf537d5d, 0x4040cb08, 0x4eb4e2cc, 0x34d2466a, 0x0115af84, 0xe1b00428, 0x95983a1d, 0x06b89fb4, 0xce6ea048, 0x6f3f3b82, 0x3520ab82, 0x011a1d4b, 0x277227f8, 0x611560b1, 0xe7933fdc, 0xbb3a792b, 0x344525bd, 0xa08839e1, 0x51ce794b, 0x2f32c9b7, 0xa01fbac9, 0xe01cc87e, 0xbcc7d1f6, 0xcf0111c3, 0xa1e8aac7, 0x1a908749, 0xd44fbd9a, 0xd0dadecb, 0xd50ada38, 0x0339c32a, 0xc6913667, 0x8df9317c, 0xe0b12b4f, 0xf79e59b7, 0x43f5bb3a, 0xf2d519ff, 0x27d9459c, 0xbf97222c, 0x15e6fc2a, 0x0f91fc71, 0x9b941525, 0xfae59361, 0xceb69ceb, 0xc2a86459, 0x12baa8d1, 0xb6c1075e, 0xe3056a0c, 0x10d25065, 0xcb03a442, 0xe0ec6e0e, 0x1698db3b, 0x4c98a0be, 0x3278e964, 0x9f1f9532, 0xe0d392df, 0xd3a0342b, 0x8971f21e, 0x1b0a7441, 0x4ba3348c, 0xc5be7120, 0xc37632d8, 0xdf359f8d, 0x9b992f2e, 0xe60b6f47, 0x0fe3f11d, 0xe54cda54, 0x1edad891, 0xce6279cf, 0xcd3e7e6f, 0x1618b166, 0xfd2c1d05, 0x848fd2c5, 0xf6fb2299, 0xf523f357, 0xa6327623, 0x93a83531, 0x56cccd02, 0xacf08162, 0x5a75ebb5, 0x6e163697, 0x88d273cc, 0xde966292, 0x81b949d0, 0x4c50901b, 0x71c65614, 0xe6c6c7bd, 0x327a140a, 0x45e1d006, 0xc3f27b9a, 0xc9aa53fd, 0x62a80f00, 0xbb25bfe2, 0x35bdd2f6, 0x71126905, 0xb2040222, 0xb6cbcf7c, 0xcd769c2b, 0x53113ec0, 0x1640e3d3, 0x38abbd60, 0x2547adf0, 0xba38209c, 0xf746ce76, 0x77afa1c5, 0x20756060, 0x85cbfe4e, 0x8ae88dd8, 0x7aaaf9b0, 0x4cf9aa7e, 0x1948c25c, 0x02fb8a8c, 0x01c36ae4, 0xd6ebe1f9, 0x90d4f869, 0xa65cdea0, 0x3f09252d, 0xc208e69f, 0xb74e6132, 0xce77e25b, 0x578fdfe3, 0x3ac372e6, }; pan-0.162/pan/usenet-utils/filter-info.cc000066400000000000000000000227461475412772400202740ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #include #include #include #include #include "filter-info.h" using namespace pan; /*** **** ***/ /* * Copy-and-swap idiom according to * http://stackoverflow.com/questions/3279543/what-is-the-copy-and-swap-idiom */ FilterInfo :: FilterInfo (const FilterInfo &that) : _type(that._type) , _ge(that._ge) , _header(that._header) , _text(that._text) , _negate(that._negate) , _needs_body(that._needs_body) { foreach_const (aggregatesp_t, that._aggregates, it) { _aggregates.push_back (new FilterInfo(**it)); } } void swap (FilterInfo &first, FilterInfo &second) { using std::swap; swap (first._type, second._type); swap (first._ge, second._ge); swap (first._header, second._header); swap (first._text, second._text); swap (first._aggregates, second._aggregates); swap (first._negate, second._negate); swap (first._needs_body, second._needs_body); } FilterInfo &FilterInfo::operator = (FilterInfo other) { swap (*this, other); return *this; } FilterInfo :: ~FilterInfo () { foreach (aggregatesp_t, _aggregates, it) { delete *it; } } void FilterInfo :: clear () { _type = FilterInfo::TYPE_ERR; _ge = 0; _header.clear (); _text.clear (); foreach (aggregatesp_t, _aggregates, it) { delete *it; } _aggregates.clear (); _negate = false; _needs_body = false; } void FilterInfo :: set_type_is (Type type) { clear (); _type = type; } void FilterInfo :: set_type_ge (Type type, unsigned long ge) { clear (); _type = type; _ge = ge; } void FilterInfo :: set_type_le (Type type, unsigned long le) { clear (); _type = type; _negate = true; _ge = le+1; // le N == !ge N+1 } void FilterInfo :: set_type_aggregate_and () { clear (); _type = AGGREGATE_AND; } void FilterInfo :: set_type_aggregate_or () { clear (); _type = AGGREGATE_OR; } void FilterInfo :: set_type_text (const Quark & header, const TextMatch::Description & text) { static const Quark subject("Subject"), from("From"), xref("Xref"), references("References"), newsgroups("Newsgroups"), message_Id("Message-Id"), message_ID("Message-ID"); clear (); _type = TEXT; _header = header; _text.set (text); if( !(header == subject || header == from || header == message_Id || header == message_ID || header == newsgroups || header == references || header == xref) ) _needs_body = true; } /**** ***** ****/ void FilterInfo :: set_type_binary () { set_type_is (IS_BINARY); } void FilterInfo :: set_type_byte_count_ge (unsigned long ge) { set_type_ge (BYTE_COUNT_GE, ge); } void FilterInfo :: set_type_cached () { set_type_is (IS_CACHED); } void FilterInfo :: set_type_crosspost_count_ge (unsigned long ge) { set_type_ge (CROSSPOST_COUNT_GE, ge); } void FilterInfo :: set_type_days_old_ge (unsigned long ge) { set_type_ge (DAYS_OLD_GE, ge); } void FilterInfo :: set_type_days_old_le (unsigned long le) { set_type_le (DAYS_OLD_GE, le); } void FilterInfo :: set_type_line_count_ge (unsigned long ge) { set_type_ge (LINE_COUNT_GE, ge); } void FilterInfo :: set_type_score_ge (unsigned long ge) { set_type_ge (SCORE_GE, ge); } void FilterInfo :: set_type_score_le (unsigned long le) { set_type_le (SCORE_GE, le); } void FilterInfo :: set_type_is_read () { set_type_is (IS_READ); } void FilterInfo :: set_type_is_unread () { set_type_is (IS_UNREAD); } void FilterInfo :: set_type_posted_by_me () { set_type_is (IS_POSTED_BY_ME); } std::string FilterInfo :: describe () const { std::string ret; char buf[4096]; if (_type==IS_BINARY && _negate) { ret = _("article doesn't have attachments"); } else if (_type==IS_BINARY) { ret = _("the article has attachments"); } else if (_type==IS_CACHED && _negate) { ret = _("the article isn't cached locally"); } else if (_type==IS_CACHED) { ret = _("the article is cached locally"); } else if (_type==IS_POSTED_BY_ME && _negate) { ret = _("the article wasn't posted by you"); } else if (_type==IS_POSTED_BY_ME) { ret = _("the article was posted by you"); } else if (_type==IS_READ) { ret = _("the article has been read"); } else if (_type==IS_UNREAD) { ret = _("the article hasn't been read"); } else if (_type==BYTE_COUNT_GE && _negate) { g_snprintf (buf, sizeof(buf), _("the article is less than %ld bytes long"), _ge); ret = buf; } else if (_type==BYTE_COUNT_GE) { g_snprintf (buf, sizeof(buf), _("the article is at least %ld bytes long"), _ge); ret = buf; } else if (_type==LINE_COUNT_GE && _negate) { g_snprintf (buf, sizeof(buf), _("the article is less than %ld lines long"), _ge); ret = buf; } else if (_type==LINE_COUNT_GE) { g_snprintf (buf, sizeof(buf), _("the article is at least %ld lines long"), _ge); ret = buf; } else if (_type==DAYS_OLD_GE && _negate) { g_snprintf (buf, sizeof(buf), _("the article is less than %ld days old"), _ge); ret = buf; } else if (_type==DAYS_OLD_GE) { g_snprintf (buf, sizeof(buf), _("the article is at least %ld days old"), _ge); ret = buf; } else if (_type==CROSSPOST_COUNT_GE && _negate) { g_snprintf (buf, sizeof(buf), _("the article was posted to less than %ld groups"), _ge); ret = buf; } else if (_type==CROSSPOST_COUNT_GE) { g_snprintf (buf, sizeof(buf), _("the article was posted to at least %ld groups"), _ge); ret = buf; } else if (_type==SCORE_GE && _negate) { g_snprintf (buf, sizeof(buf), _("the article's score is less than %ld"), _ge); ret = buf; } else if (_type==SCORE_GE) { g_snprintf (buf, sizeof(buf), _("the article's score is %ld or higher"), _ge); ret = buf; } else if (_type==TEXT && _negate) { #if 0 const char * h (_header.c_str()); const char * t (_text.get_state().text.c_str()); switch (_text.get_state().type) { case TextMatch::CONTAINS: g_snprintf (buf, sizeof(buf), _("%s doesn't contain \"%s\""), h, t); break; case TextMatch::IS: g_snprintf (buf, sizeof(buf), _("%s isn't \"%s\""), h, t); break; case TextMatch::BEGINS_WITH: g_snprintf (buf, sizeof(buf), _("%s doesn't begin with \"%s\""), h, t); break; case TextMatch::ENDS_WITH: g_snprintf (buf, sizeof(buf), _("%s doesn't end with \"%s\""), h, t); break; case TextMatch::REGEX: g_snprintf (buf, sizeof(buf), _("%s doesn't match the regex \"%s\""), h, t); break; } #else const char * h (_header.c_str()); const char * t (_text._impl_text.c_str()); switch (_text._impl_type) { case TextMatch::CONTAINS: g_snprintf (buf, sizeof(buf), _("%s doesn't contain \"%s\""), h, t); break; case TextMatch::IS: g_snprintf (buf, sizeof(buf), _("%s isn't \"%s\""), h, t); break; case TextMatch::BEGINS_WITH: g_snprintf (buf, sizeof(buf), _("%s doesn't begin with \"%s\""), h, t); break; case TextMatch::ENDS_WITH: g_snprintf (buf, sizeof(buf), _("%s doesn't end with \"%s\""), h, t); break; case TextMatch::REGEX: g_snprintf (buf, sizeof(buf), _("%s doesn't match the regex \"%s\""), h, t); break; } #endif ret = buf; } else if (_type==TEXT) { const char * h (_header.c_str()); //const char * t (_text.get_state().text.c_str()); //switch (_text.get_state().type) { const char * t (_text._impl_text.c_str()); switch (_text._impl_type) { case TextMatch::CONTAINS: g_snprintf (buf, sizeof(buf), _("%s contains \"%s\""), h, t); break; case TextMatch::IS: g_snprintf (buf, sizeof(buf), _("%s is \"%s\""), h, t); break; case TextMatch::BEGINS_WITH: g_snprintf (buf, sizeof(buf), _("%s begins with \"%s\""), h, t); break; case TextMatch::ENDS_WITH: g_snprintf (buf, sizeof(buf), _("%s ends with \"%s\""), h, t); break; case TextMatch::REGEX: g_snprintf (buf, sizeof(buf), _("%s matches the regex \"%s\""), h, t); break; } ret = buf; } else if (_type==AGGREGATE_AND && _negate) { ret = _("Any of these tests fail:"); ret += "\n"; foreach_const (aggregatesp_t, _aggregates, it) ret += " " + (*it)->describe() + "\n"; } else if (_type==AGGREGATE_AND) { ret = _("All of these tests pass:"); ret += "\n"; foreach_const (aggregatesp_t, _aggregates, it) ret += " " + (*it)->describe() + "\n"; } else if (_type==AGGREGATE_OR && _negate) { ret = _("None of these tests pass:"); ret += "\n"; foreach_const (aggregatesp_t, _aggregates, it) ret += " " + (*it)->describe() + "\n"; } else if (_type==AGGREGATE_OR) { ret = _("Any of these tests pass:"); ret += "\n"; foreach_const (aggregatesp_t, _aggregates, it) ret += " " + (*it)->describe() + "\n"; } return ret; } pan-0.162/pan/usenet-utils/filter-info.h000066400000000000000000000074161475412772400201330ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #ifndef __Filter_Info_h__ #define __Filter_Info_h__ #include #include #include #include /** * Pre-declaring swap(...) is a bit involved, given the use * of the namespace pan and it needs to be outside. */ namespace pan { class FilterInfo; }; void swap(pan::FilterInfo &first, pan::FilterInfo &second); namespace pan { /** * Interface class describing a filter that can be applied to a set of articles. * @ingroup usenet_utils */ class FilterInfo { public: /** The different type of filters we support. */ enum Type { TYPE_ERR, AGGREGATE_AND, AGGREGATE_OR, IS_BINARY, IS_CACHED, IS_POSTED_BY_ME, IS_READ, IS_UNREAD, BYTE_COUNT_GE, CROSSPOST_COUNT_GE, DAYS_OLD_GE, LINE_COUNT_GE, SCORE_GE, TEXT }; public: bool empty() const { return _type == TYPE_ERR; } FilterInfo () { clear(); } FilterInfo (const FilterInfo &that); friend void ::swap(FilterInfo &first, FilterInfo &second); FilterInfo &operator = (FilterInfo other); virtual ~FilterInfo (); public: /** Defines what type of filter this is. */ Type _type; /** When `_type' is *_GE, we're comparing to see if the article's field is greater than or equal to this value. */ long _ge; /** When `_type' is TEXT, this is the header we're testing */ Quark _header; /** When `_type' is TEXT, this is how we're testing the header */ TextMatch _text; /** Convenience typedef. */ typedef std::deque aggregatesp_t; /** When `_type' is AGGREGATE_OR or AGGREGATE_AND, these are the filters being or'ed or and'ed together. */ aggregatesp_t _aggregates; /** When this is true, the results of the test should be negated. */ bool _negate; /** When this is true the test needs the article body. */ bool _needs_body; private: void set_type_is (Type type); void set_type_ge (Type type, unsigned long ge); void set_type_le (Type type, unsigned long le); public: void clear (); void set_type_aggregate_and (); void set_type_aggregate_or (); void set_type_binary (); void set_type_byte_count_ge (unsigned long ge); void set_type_cached (); void set_type_crosspost_count_ge (unsigned long ge); void set_type_days_old_ge (unsigned long ge); void set_type_days_old_le (unsigned long ge); void set_type_line_count_ge (unsigned long ge); void set_type_score_ge (unsigned long ge); void set_type_score_le (unsigned long le); void set_type_is_read (); void set_type_is_unread (); void set_type_posted_by_me (); void set_type_text (const Quark& header,const TextMatch::Description&); void set_negate (bool b) { _negate = b; } public: std::string describe () const; }; } #endif pan-0.162/pan/usenet-utils/gnksa-test.cc000066400000000000000000000340771475412772400201360ustar00rootroot00000000000000#include #include #include #include #include #include #include "gnksa.h" using namespace pan; typedef struct { int expected_retval; const char * address; } AddressCheck; typedef struct { int len; const char * in; const char * expected_out; } ReferencesCheck; static int test_generate_references (void) { const char * refs; const char * msg_id; std::string expected; std::string out; refs = "<9uh0rq$8g9ua$1@ID-41667.news.dfncis.de> <9596705.7QZiUf9aFP@aschiller.easynet.de> <3C111F64.D2AABC41@babsi.de> "; msg_id = ""; out = GNKSA::generate_references (refs, msg_id); expected = "<9uh0rq$8g9ua$1@ID-41667.news.dfncis.de> <9596705.7QZiUf9aFP@aschiller.easynet.de> <3C111F64.D2AABC41@babsi.de> "; check (expected == out) refs = " <3EE5A096.98029307@hotmail.com> <3EE6DE5C.A8D18620@hotmail.com> <3EE70552.FFBAD8F1@hotmail.com> <3EE7B742.CB99E2A9@hotmail.com> <3EE83795.BAB1A91B@hotmail.com> <3EE8F9DD.18250DED@hotmail.com> <1231781.L8vHGuMyzo@cleeson.com> <3EEB7C07.4752E42A@hotmail.com> <1296817.URW5Hf7Ksp@pedro-loves-maide.cleeson.com> <3EEEF80E.861F9856@hotmail.com> <28546748.CjhBzqWdrr@pedro-loves-maide.cleeson.com> <3EF04A70.BCC38BF9@hotmail.com> <3009961.k4EQsI0dRT@pedro-loves-maide.cleeson.com> <3EF2E85E.904F3FBA@hotmail.com> <352040964.KGvfqQSRi4@pedro-loves-maide.cleeson.com> <3EFC7072.C6E6D00E@hotmail.com> <1622701.ZSR7dHnD1g@pedro.loves.maide> <3F13C513.6CDFABEB@hotmail.com> <3F13DBF6.8000505@gmx.net>"; msg_id = "<3f13ffeb$0$301$ba620e4c@reader1.news.skynet.be>"; out = GNKSA::generate_references (refs, msg_id); expected = " <3EE6DE5C.A8D18620@hotmail.com> <3EE70552.FFBAD8F1@hotmail.com> <3EE7B742.CB99E2A9@hotmail.com> <3EE83795.BAB1A91B@hotmail.com> <3EE8F9DD.18250DED@hotmail.com> <1231781.L8vHGuMyzo@cleeson.com> <3EEB7C07.4752E42A@hotmail.com> <1296817.URW5Hf7Ksp@pedro-loves-maide.cleeson.com> <3EEEF80E.861F9856@hotmail.com> <28546748.CjhBzqWdrr@pedro-loves-maide.cleeson.com> <3EF04A70.BCC38BF9@hotmail.com> <3009961.k4EQsI0dRT@pedro-loves-maide.cleeson.com> <3EF2E85E.904F3FBA@hotmail.com> <352040964.KGvfqQSRi4@pedro-loves-maide.cleeson.com> <3EFC7072.C6E6D00E@hotmail.com> <1622701.ZSR7dHnD1g@pedro.loves.maide> <3F13C513.6CDFABEB@hotmail.com> <3F13DBF6.8000505@gmx.net> <3f13ffeb$0$301$ba620e4c@reader1.news.skynet.be>"; check (expected == out) refs = "as.com> <3EE5A096.98029307@hotmail.com> "; expected = " <3EE5A096.98029307@hotmail.com>"; out = GNKSA::remove_broken_message_ids_from_references (refs); check (expected == out) refs = "as.com> <3EE5A096.98029307@hotmail.com> " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " ", "" " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " }, { 998, /* gnksa cutoff */ "" " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " ", "" " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " }, { 1024, " <@lull.org>" " <>" " gnksa.11@lull.org>" " .14@lull.org>" " gnksa.15@lull.org ", " " " " " " " " }, { 1024, " <@bar.uk>" " ", " " " " }, { 36, " ", " " }, { 35, " ", " " }, { 34, " ", " " }, { 32, " ", " ", }, { 27, " ", " ", }, { 26, " ", " ", }, { 25, " ", " ", }, /* make sure that twisted domains like [10.0.0.4] don't get stripped. see comments on pan/base/gnksa.c gnksa_check_message_id() for details. */ { 998, " " "<1f9yc83.l59f37ehygn4N%florian@****nachon.net> " "<1f9yzfg.1dxhomt17221j4N%mannucci@wild-works.net> " "<1fa2kwz.14tkecl3qg8uaN%moi@mapetitentreprise.com> " "<1fa7mt7.1t7eiqu1scmm0iN@[10.0.0.4]> " "", " " "<1f9yc83.l59f37ehygn4N%florian@****nachon.net> " "<1f9yzfg.1dxhomt17221j4N%mannucci@wild-works.net> " "<1fa2kwz.14tkecl3qg8uaN%moi@mapetitentreprise.com> " "<1fa7mt7.1t7eiqu1scmm0iN@[10.0.0.4]> " "" } }; static AddressCheck addresses [] = { { GNKSA::ILLEGAL_PLAIN_PHRASE, "Charles S. Kerr " }, { GNKSA::OK, "\"Charles S. Kerr\" " }, { GNKSA::OK, "charles kerr " }, { GNKSA::OK, "Charles \"Pan Programmer\" Kerr " }, { GNKSA::OK, "Charles \"Likes, to, put, commas, in, quoted, strings\" Kerr " }, { GNKSA::OK, "\"Charles Kerr, Pan Programmer\" " }, { GNKSA::ILLEGAL_PLAIN_PHRASE, "Charles Kerr, Pan Programmer " }, { GNKSA::INVALID_DOMAIN, "charles kerr " }, { GNKSA::OK, "charles@superpimp.org" }, { GNKSA::OK, "charles@superpimp.org (Charles Kerr)" }, { GNKSA::SINGLE_DOMAIN, "Charles Kerr " }, { GNKSA::SINGLE_DOMAIN, "Charles Kerr <@org>" }, { GNKSA::OK, "Charles Kerr " }, { GNKSA::BAD_DOMAIN_LITERAL, "Charles Kerr " }, { GNKSA::BAD_DOMAIN_LITERAL, "Charles Kerr " }, { GNKSA::BAD_DOMAIN_LITERAL, "Charles Kerr " }, { GNKSA::ILLEGAL_PLAIN_PHRASE, "" }, { GNKSA::ILLEGAL_PLAIN_PHRASE, "" }, { GNKSA::ILLEGAL_LABEL_HYPHEN, "Charles Kerr " }, { GNKSA::OK, "Charles " }, { GNKSA::OK, "Charles " }, { GNKSA::ZERO_LENGTH_LABEL, "Charles " }, { GNKSA::LOCALPART_MISSING, "Charles <@pimp.org>" }, { GNKSA::OK, "Charles Kerr " }, { GNKSA::LPAREN_MISSING, "Charles Kerr" }, { GNKSA::OK, "looniii@aol.com (Looniii)" }, { GNKSA::OK, "Eric " }, { GNKSA::ILLEGAL_PLAIN_PHRASE, "" } }; int main (void) { // 0.92 - Christophe StringView v = GNKSA :: get_short_author_name ("\"@nermos\" "); check (v.len != ULONG_MAX) v = GNKSA :: get_short_author_name ("fclefrad@yahoo.com"); check (v == "fclefrad") v = GNKSA :: get_short_author_name ("\"Ch@rvelle\" "); check (v == "Ch@rvelle") /* test addresses */ if (1) { int i; int qty = sizeof(addresses) / sizeof(addresses[0]); for (i=0; i!=qty; ++i) { const int retval = GNKSA::check_from (addresses[i].address, true); check (retval == addresses[i].expected_retval) } } /* test trimming */ if (1) { int i; int qty = sizeof(references) / sizeof(references[0]); for (i=0; i!=qty; ++i) { const std::string s (GNKSA::trim_references (references[i].in, references[i].len)); check (s == references[i].expected_out) } } /* test message-id generation */ if (1) { std::string id1; std::string id2; id1 = GNKSA::generate_message_id_from_email_address (""); id2 = GNKSA::generate_message_id_from_email_address (""); check (!id1.empty()) check (!id2.empty()) id1 = GNKSA::generate_message_id_from_email_address ("Joe "); check (!id1.empty()) check (id1.find("bar") != id1.npos) id1 = GNKSA::generate_message_id_from_email_address ("zzz.com"); check (!id1.empty()) check (id1.find("zzz") != id1.npos) id1 = GNKSA::generate_message_id_from_email_address ("@bar.com>"); check (!id1.empty()) check (id1.find("bar") != id1.npos) } if (1) { int i = test_generate_references (); if (i != 0) return i; } return 0; } pan-0.162/pan/usenet-utils/gnksa.cc000066400000000000000000000602471475412772400171570ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ /********************* ********************** Includes *********************/ #include #include #include #include #include #include #include #include #include #include extern "C" { #include #include #include } #include #include #include #include #include #include "gnksa.h" /********************* ********************** BEGINNING OF SOURCE *********************/ using namespace pan; #define is_code_char(A) (_code_chars[(unsigned char)(A)]) #define is_tag_char(A) (_tag_chars[(unsigned char)(A)]) #define is_unquoted_char(A) (_unquoted_chars[(unsigned char)(A)]) #define is_quoted_char(A) (_quoted_chars[(unsigned char)(A)]) #define is_paren_char(A) (_paren_chars[(unsigned char)(A)]) #if 0 #define PRINT_TABLE(A) \ printf ("static char " #A "[UCHAR_MAX] = {"); \ for (i=0; i / */ const char * pch = start; while (*pch=='\t' || *pch==' ') ++pch; if (pch != start) { *end = pch; return true; } return false; } static bool read_codes (const char * pch, const char ** end) { if (!is_code_char(*pch)) return false; while (is_code_char(*pch)) ++pch; *end = pch; return true; } static bool read_encoding (const char * pch, const char ** end) { if (!is_tag_char(*pch)) return false; while (is_tag_char(*pch)) ++pch; *end = pch; return true; } static bool read_charset (const char * pch, const char ** end) { return read_encoding (pch, end); } static bool read_encoded_word (const char * pch, const char ** end) { /* "=?" charset "?" encoding "?" codes "?=" */ if (pch[0]!='=' || pch[1]!='?') return false; pch += 2; if (!read_charset (pch, &pch)) return false; if (*pch != '?') return false; ++pch; if (!read_encoding (pch, &pch)) return false; if (*pch != '?') return false; ++pch; if (!read_codes (pch, &pch)) return false; if (pch[0]!='?' || pch[1]!='=') return false; *end = pch + 2; return true; } static bool read_unquoted_word (const char * pch, const char ** end) { /* 1*unquoted-char */ if (!is_unquoted_char(*pch)) return false; while (is_unquoted_char((unsigned char)*pch)) ++pch; *end = pch; return true; } static bool read_quoted_word (const char * pch, const char ** end) { /* quote 1*(quoted-char / space) quote */ if (*pch!='"') return false; ++pch; for (;;) { if (read_space(pch,&pch)) continue; if (is_quoted_char ((unsigned char)*pch)) { ++pch; continue; } break; } if (*pch!='"') return false; ++pch; *end = pch; return true; } static bool read_plain_word (const char * pch, const char ** end) { /* unquoted-word / quoted-word / encoded-word */ if (read_quoted_word(pch,end)) return true; if (read_encoded_word(pch,end)) return true; if (read_unquoted_word(pch,end)) return true; return false; } static bool read_plain_phrase (const char * pch, const char ** end) { /* plain-word *(space plain-word) */ const char * tmp = NULL; if (!read_plain_word(pch,&pch)) return false; for (;;) { tmp = pch; if (!read_space(pch,&pch)) break; if (!read_plain_word(pch,&pch)) break; } *end = tmp; return true; } static bool read_paren_char (const char * pch, const char ** end) { if (!is_paren_char((unsigned char)*pch)) return false; *end = pch + 1; return true; } static bool read_paren_phrase (const char * pch, const char ** end) { /* 1* (paren-char / space / encoded-word */ if (!read_paren_char(pch,&pch) && !read_space(pch,&pch) && !read_encoded_word(pch,&pch)) return false; for (;;) { if (!read_paren_char(pch,&pch) && !read_space(pch,&pch) && !read_encoded_word(pch,&pch)) break; } *end = pch; return true; } /***** ****** *****/ /** * "[244.14.124.12]" * "244.12.14.12" */ static int gnksa_check_domain_literal (const StringView& domain) { int i; int x[4]; bool need_closing_brace; const char * pch; // parse domain literal into ip number pch = domain.str; need_closing_brace = *pch == '['; if (need_closing_brace) ++pch; /* move past open brace */ /* %u.%u.%u.%u */ for (i=0; i<4; ++i) { char * end = NULL; x[i] = strtoul (pch, &end, 10); if (end == pch) return GNKSA::BAD_DOMAIN_LITERAL; if (x[i]<0 || x[i]>255) return GNKSA::BAD_DOMAIN_LITERAL; if (i!=3) { if (*end != '.') return GNKSA::BAD_DOMAIN_LITERAL; ++end; } pch = end; } if (need_closing_brace && *pch!=']') return GNKSA::BAD_DOMAIN_LITERAL; return GNKSA::OK; } /***** ****** *****/ int GNKSA :: check_domain (const StringView& domain) { if (domain.empty()) return GNKSA::ZERO_LENGTH_LABEL; if (*domain.str == '[') return gnksa_check_domain_literal (domain); if (*domain.str=='.' || domain.str[domain.len-1]=='.' || domain.strstr("..")!=NULL) return GNKSA::ZERO_LENGTH_LABEL; // count the labels int label_qty = 0; StringView token, mydomain(domain); while (mydomain.pop_token (token, '.')) ++label_qty; // make sure we have more than one label in the domain if (label_qty < 2) return GNKSA::SINGLE_DOMAIN; // check for illegal labels mydomain = domain; for (int i=0; i 63) return GNKSA::ILLEGAL_LABEL_LENGTH; if (token.str[0]=='-' || token.str[token.len-1]=='-') return GNKSA::ILLEGAL_LABEL_HYPHEN; } // last label -- toplevel domain mydomain.pop_token (token, '.'); switch (token.len) { case 1: if (isdigit((unsigned char)*token.str)) return gnksa_check_domain_literal (domain); // single-letter TLDs dont exist return GNKSA::ILLEGAL_DOMAIN; case 2: if (isdigit((unsigned char)token.str[0]) || isdigit((unsigned char)token.str[1])) return gnksa_check_domain_literal (domain); break; case 3: if (isdigit((unsigned char)token.str[0]) || isdigit((unsigned char)token.str[2]) || isdigit((unsigned char)token.str[3])) return gnksa_check_domain_literal (domain); break; default: break; } return GNKSA::OK; } /***** ****** *****/ namespace { int check_localpart (const StringView& localpart) { // make sure it's not empty... if (localpart.empty()) return GNKSA::LOCALPART_MISSING; // break localpart up into its unquoted words StringView token, mylocal(localpart); while (mylocal.pop_token (token, '.')) { if (token.empty()) return GNKSA::ZERO_LENGTH_LOCAL_WORD; foreach_const (StringView, token, it) if (!is_unquoted_char(*it)) return GNKSA::INVALID_LOCALPART; } return GNKSA::OK; } int check_address (const StringView& address) { int retval = GNKSA::OK; // get rid of vacuous case if (address.empty()) return GNKSA::LOCALPART_MISSING; // check the address const char * pch = address.strrchr ('@'); if (pch == NULL) retval = GNKSA::INVALID_DOMAIN; else { StringView username, domain; address.substr (NULL, pch, username); address.substr (pch+1, NULL, domain); if (retval == GNKSA::OK) retval = GNKSA :: check_domain (domain); if (retval == GNKSA::OK) retval = check_localpart (username); } return retval; } }; /***** ****** *****/ namespace { enum { ADDRTYPE_ROUTE, ADDRTYPE_OLDSTYLE }; int split_from (const StringView & from, StringView & addr, StringView & name, int & addrtype, bool strict) { char * lparen; addr.clear (); name.clear (); StringView myfrom(from); myfrom.trim (); // empty string if (myfrom.empty()) { addrtype = ADDRTYPE_OLDSTYLE; return GNKSA::LPAREN_MISSING; } if (myfrom.back() == '>') // Charles Kerr { addrtype = ADDRTYPE_ROUTE; // get address part char * begin = myfrom.strrchr ('<'); if (!begin) return GNKSA::LANGLE_MISSING; // copy route address from inside the <> brackes StringView myaddr (myfrom.substr (begin+1, NULL)); const char * gt = myaddr.strchr ('>'); if (gt != NULL) myaddr = myaddr.substr (NULL, gt); addr = myaddr; if (strict) { const char * tmp = myfrom.str; if ((*tmp) && (!read_plain_phrase(tmp,&tmp) || !read_space(tmp,&tmp))) return GNKSA::ILLEGAL_PLAIN_PHRASE; } // get realname part StringView myname (myfrom.substr (NULL, begin)); myname.trim (); name = myname; } else if ((lparen = myfrom.strchr('(')) != NULL) // charles@rebelbase.com (Charles Kerr) { addrtype = ADDRTYPE_OLDSTYLE; // address part StringView myaddr (myfrom.substr (nullptr, lparen)); myaddr.trim (); addr = myaddr; if (strict) { const int val (check_address (addr)); if (val) return val; } // real name part StringView myname (myfrom.substr (lparen+1, nullptr)); myname.trim (); if (myname.back() != ')') return GNKSA::RPAREN_MISSING; myname = myname.substr (NULL, myname.end()-1); const char * end = nullptr; if (strict && (!read_paren_phrase(myname.str,&end) || end==NULL)) return GNKSA::ILLEGAL_PAREN_PHRASE; name = myname; } else if (myfrom.strchr('@') != NULL) /* charles@rebelbase.com */ { addr = myfrom; return strict ? check_address(addr) : GNKSA::OK; } else // who knows what this thing is... { name = myfrom; return GNKSA::LPAREN_MISSING; } return GNKSA::OK; } }; /***** ****** *****/ /************ ************* PUBLIC ************/ /***** ****** *****/ int GNKSA :: do_check_from (const StringView & from, StringView & addr, StringView & name, bool strict) { int addrtype = 0; // split from addr.clear (); name.clear (); int retval = split_from (from, addr, name, addrtype, strict); // check address if (retval==OK && !addr.empty()) retval = check_address (addr); return retval; } StringView GNKSA :: get_short_author_name (const StringView& author) { StringView addr, name; GNKSA::do_check_from (author, addr, name, false); // if we have just one of (name, addr) then // there was probably a problem parsing... // try to trim out the address by looking for '@' StringView s (author); if (name.empty() && !addr.empty()) StringView(addr).pop_token(s,'@'); else if (addr.empty() && !name.empty()) StringView(name).pop_token(s,'@'); else if (!name.empty()) s = name; else if (!addr.empty()) s = addr; s.trim (); if (s.len>2 && s.front()=='"' && s.back()=='"') s = s.substr(s.begin()+1, s.end()-1); return s; } /***** ****** *****/ int GNKSA :: check_from (const StringView& from, bool strict) { StringView addr, name; return do_check_from (from, addr, name, strict); } /***** ****** *****/ namespace { /** * Validates a Message-ID from a References: header. * * The purpose of this function is to remove severely broken, * usually suntactically-invalid Message-IDs, such as those * missing '<', '@', or '>'. * * However we want to retain Message-IDs that might be sloppy, * such as ones that have possibly-invalid domains. * * This balance is from wanting to adhere to GNKSA that wants us * to remove `damaged' Message-IDs, but we want to be pretty * forgiving because these References are required for threading * to work properly. */ int check_message_id (const StringView& message_id) { StringView tmp (message_id); tmp.trim (); // make sure it's <= 250 octets (son of gnksa 1036 5.3) if (tmp.len > 250) return GNKSA::ILLEGAL_LABEL_LENGTH; // make sure the message-id is wrapped in < > if (tmp.str[0]!='<') return GNKSA::LANGLE_MISSING; if (tmp.str[tmp.len-1]!='>') return GNKSA::RANGLE_MISSING; // find the '@' separator char * pch = tmp.strrchr ('@'); if (pch == NULL) return GNKSA::ATSIGN_MISSING; // check the domain name StringView domain (tmp.substr (pch+1, NULL)); --domain.len; // remove trailing '>' if (domain.empty()) return GNKSA::ILLEGAL_DOMAIN; // check the local-part StringView local (tmp.substr (tmp.str+1, pch)); if (local == "postmaster") return GNKSA::INVALID_LOCALPART; return check_localpart (local); } }; /***** ****** *****/ std::string GNKSA :: remove_broken_message_ids_from_references (const StringView& references) { std::string s; // remove broken message-ids StringView v (references); while (!v.empty()) { // find the beginning of the message-id const char * begin = v.strchr ('<'); if (!begin) break; // find the end of the message-id v = v.substr (begin+1, nullptr); const char * end = v.strpbrk ("<> "); if (!end) end = v.end(); else if (*end == '>') ++end; v = v.substr (end, nullptr); // check the message-id for validity if (check_message_id (StringView(begin, end-begin)) == GNKSA::OK) { s.insert (s.end(), begin, end); s += ' '; } } if (!s.empty()) s.erase (s.end()-1); // remove trailing space return s; } /** * Try to trim references down to an acceptable length for the NNTP server, * @param untrimmed "references" string * @return newly-allocated trimmed "references" string */ std::string GNKSA :: trim_references (const StringView& refs, size_t cutoff) { std::string fixed (remove_broken_message_ids_from_references (refs)); StringView left, unused, myrefs(fixed); myrefs.pop_token (left, ' '); const size_t len_left = cutoff - left.len - 1; // 1 for ' ' between left and right while (myrefs.len > len_left) myrefs.pop_token (unused, ' '); std::string s; s.insert (s.end(), left.begin(), left.end()); if (!myrefs.empty()) s += ' '; s.insert (s.end(), myrefs.begin(), myrefs.end()); assert (s.size() <= cutoff); return s; } /** *** **/ static const char* default_domain = "nospam.com"; static MTRand rng; /** * thus spake son-of-1036: "the most popular method of generating local parts * is to use the date and time, plus some way of distinguishing between * simultaneous postings on the same host (e.g., a process number), and encode * them in a suitably-reduced alphabet. */ std::string GNKSA :: generate_message_id (const StringView& domain) { static bool rand_inited (false); if (!rand_inited) { rng.seed(); rand_inited = true; } std::stringstream out; struct timeval tv; out << "pan$"; gettimeofday (&tv, NULL); out << std::hex << tv.tv_usec << "$" << std::hex << rng.randInt() << "$" << std::hex << rng.randInt() << "$" << std::hex << rng.randInt(); out << '@' << (domain.empty() ? default_domain : domain); return out.str(); } std::string GNKSA :: generate_message_id_from_email_address (const StringView& addr) { StringView domain; // find the domain in the email address if (!addr.empty()) { const char * pch = addr.strchr ('@'); if (pch != NULL) domain = addr.substr (pch+1, NULL); else domain = addr; } // fallback to default domain if (domain.empty()) { Log::add_info_va (_("No email address provided; generating message-id with domain \"%s\""), default_domain); domain = default_domain; } // strip out closing bracket const char * pch = domain.strchr ('>'); if (pch != NULL) domain = domain.substr (NULL, pch); domain.trim (); return generate_message_id (domain); } std::string GNKSA :: generate_references (const StringView & references, const StringView & message_id) { std::string s; if (!message_id.empty()) { if (!references.empty()) { s.insert (s.end(), references.begin(), references.end()); s += ' '; } s.insert (s.end(), message_id.begin(), message_id.end()); s = trim_references (s); } return s; } /*** **** Signatures ***/ GNKSA::SigType GNKSA::is_signature_delimiter (const StringView& line) { switch (line.len) { case 2: if (!strncmp (line.str,"--" ,2)) return SIG_NONSTANDARD; break; case 3: if (!strncmp (line.str,"--\r" ,3)) return SIG_NONSTANDARD; if (!strncmp (line.str,"-- " ,3)) return SIG_STANDARD; break; case 4: if (!strncmp (line.str,"-- \r",4)) return SIG_STANDARD; default: return SIG_NONE; } return SIG_NONE; } GNKSA::SigType GNKSA::find_signature_delimiter (const StringView& body, int& setme_pos) { const static int SIG_THRESHOLD = 6; int sig_pos = -1; int sig_type = SIG_NONE; int lines_below = 0; setme_pos = -1; // iterate through the text, line by line StringView line, mybody(body); while (mybody.pop_token (line, '\n')) { const SigType st (is_signature_delimiter (line)); if (st != SIG_NONE) { sig_type = st; sig_pos = line.str - body.str; lines_below = 0; } else if (sig_pos != -1) { ++lines_below; } } if (sig_type == SIG_NONE) return SIG_NONE; if (sig_pos == -1) return SIG_NONE; if (sig_type == SIG_STANDARD) { setme_pos = sig_pos; return SIG_STANDARD; } // if we have a non-standard sig, make sure it's the last one // and that there are less than SIG_THRESHOLD lines if (sig_type == SIG_NONSTANDARD && lines_below <= SIG_THRESHOLD ) { setme_pos = sig_pos; return SIG_NONSTANDARD; } return SIG_NONE; } bool GNKSA :: remove_signature (StringView& body) { int sig_point (-1); const bool has_signature (find_signature_delimiter (body, sig_point) != SIG_NONE); if (has_signature) body = body.substr (nullptr, body.str+sig_point); return has_signature; } pan-0.162/pan/usenet-utils/gnksa.h000066400000000000000000000102321475412772400170060ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #ifndef __GNKSA_H__ #define __GNKSA_H__ #include #include #include namespace pan { class StringView; /** * Utilities used for adhering to the Good Net-Keeping Seal of Approval guidelines. * @ingroup usenet_utils */ class GNKSA { public: enum { // success/undefined error OK = 0, INTERNAL_ERROR = 1, // general syntax LANGLE_MISSING = 100, RANGLE_MISSING = 101, LPAREN_MISSING = 102, RPAREN_MISSING = 103, ATSIGN_MISSING = 104, // FQDN checks SINGLE_DOMAIN = 200, INVALID_DOMAIN = 201, ILLEGAL_DOMAIN = 202, UNKNOWN_DOMAIN = 203, INVALID_FQDN_CHAR = 204, ZERO_LENGTH_LABEL = 205, ILLEGAL_LABEL_LENGTH = 206, ILLEGAL_LABEL_HYPHEN = 207, ILLEGAL_LABEL_BEGNUM = 208, BAD_DOMAIN_LITERAL = 209, LOCAL_DOMAIN_LITERAL = 210, RBRACKET_MISSING = 211, // localpart checks LOCALPART_MISSING = 300, INVALID_LOCALPART = 301, ZERO_LENGTH_LOCAL_WORD = 302, // realname checks ILLEGAL_UNQUOTED_CHAR = 400, ILLEGAL_QUOTED_CHAR = 401, ILLEGAL_ENCODED_CHAR = 402, BAD_ENCODE_SYNTAX = 403, ILLEGAL_PAREN_PHRASE = 404, ILLEGAL_PAREN_CHAR = 405, INVALID_REALNAME = 406, ILLEGAL_PLAIN_PHRASE = 407, }; static StringView get_short_author_name (const StringView& full); static int check_from (const StringView & from, bool strict); static int do_check_from (const StringView & from_header, StringView & setme_addr, StringView & setme_name, bool strict); static int check_domain (const StringView & domain); static std::string remove_broken_message_ids_from_references (const StringView& references); // GNKSA rule 7. 986 == 998 chars - 12 for "References: " static std::string trim_references (const StringView& refs, size_t cutoff=986u); static std::string generate_references (const StringView& references, const StringView& message_id); static std::string generate_message_id_from_email_address (const StringView& email); static std::string generate_message_id (const StringView& domain); public: enum SigType { SIG_NONE, SIG_STANDARD, SIG_NONSTANDARD }; static SigType is_signature_delimiter (const StringView& line); static SigType find_signature_delimiter (const StringView& text, int & setme_index); bool remove_signature (StringView& text); }; // class GNKSA }; // namespace #endif pan-0.162/pan/usenet-utils/gpg.cc000066400000000000000000000102541475412772400166220ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #include #include #include #include #include #include "gpg.h" extern "C" { #include #include #include } #include #include #ifdef HAVE_GMIME_CRYPTO namespace pan { static gboolean request_passwd (GMimeCryptoContext *ctx, const char *user_id, const char *prompt_ctx, gboolean reprompt, GMimeStream *response, GError **err) { return TRUE; } GMimeCryptoContext *gpg_ctx; bool gpg_inited; void deinit_gpg() { gpg_inited=false; g_object_unref (gpg_ctx); } void fill_signer_info(GPGSignersInfo& info, GMimeSignatureList * sig_list) { g_return_if_fail(sig_list); int l = g_mime_signature_list_length(sig_list); info.signers.reserve(l); GMimeSignature * sig(nullptr); Signer signer; for (int i=0;icert->name ? sig->cert->name : "(null)"; signer.key_id = sig->cert->keyid ? sig->cert->keyid : "(null)"; signer.fpr = sig->cert->fingerprint ? sig->cert->fingerprint : "(null)"; switch (sig->cert->trust) { case GMIME_TRUST_UNKNOWN: signer.trust = "None"; break; case GMIME_TRUST_NEVER: signer.trust = "Never"; break; case GMIME_TRUST_UNDEFINED: signer.trust = "Undefined"; break; case GMIME_TRUST_MARGINAL: signer.trust = "Marginal"; break; case GMIME_TRUST_FULL: signer.trust = "Fully"; break; case GMIME_TRUST_ULTIMATE: signer.trust = "Ultimate"; break; } switch (sig->status) { case GMIME_SIGNATURE_STATUS_GREEN: signer.status = "GOOD"; break; case GMIME_SIGNATURE_STATUS_RED: signer.status = "BAD"; break; case GMIME_SIGNATURE_STATUS_SYS_ERROR: signer.status = "ERROR"; break; } signer.created = sig->created; signer.expires = sig->expires; if (sig->expires == (time_t) 0) signer.never_expires = true; signer.created = sig->created; signer.expires = sig->expires; if (sig->expires == (time_t) 0) signer.never_expires = true; // https://developer-old.gnome.org/gmime/stable/gmime-changes-3-0.html // GMimeSignatureStatus and GMimeSignatureErrors have been merged into a single bitfield (GMimeSignatureStatus) ... // if (sig->errors) { // if (sig->errors & GMIME_SIGNATURE_ERROR_EXPSIG) // signer.error = "Expired"; // if (sig->errors & GMIME_SIGNATURE_ERROR_NO_PUBKEY) // signer.error = "No Pub Key"; // if (sig->errors & GMIME_SIGNATURE_ERROR_EXPKEYSIG) // signer.error = "Key Expired"; // if (sig->errors & GMIME_SIGNATURE_ERROR_REVKEYSIG) // signer.error = "Key Revoked"; // } else { // signer.error = "No errors for this signer"; // } info.signers.push_back(signer); } } void init_gpg() { gpg_ctx = g_mime_gpg_context_new(); if (!gpg_ctx) gpg_inited = false; else gpg_inited = true; // g_mime_gpg_context_set_auto_key_retrieve(GMIME_GPG_CONTEXT(gpg_ctx),true); // g_mime_gpg_context_set_always_trust(GMIME_GPG_CONTEXT(gpg_ctx),false); // g_mime_gpg_context_set_use_agent(GMIME_GPG_CONTEXT(gpg_ctx), false); } } #endif // g_mime_crypto pan-0.162/pan/usenet-utils/gpg.h000066400000000000000000000062771475412772400164760ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #ifndef _HAVE_GPGDEFS_H #define _HAVE_GPGDEFS_H #include #ifdef HAVE_GMIME_CRYPTO #include #include #include namespace pan { struct Signer { std::string name; std::string key_id; std::string fpr; std::string trust; std::string status; std::string error; bool ok; bool never_expires; time_t created, expires; Signer() : ok(false), never_expires(false), created((time_t)0), expires((time_t)0) {} }; struct GPGSignersInfo { std::vector signers; }; typedef std::map signers_m; extern GMimeCryptoContext* gpg_ctx; extern bool gpg_inited; enum GPGDecType { GPG_VERIFY, GPG_DECODE }; enum GPGEncType { GPG_ENCODE, GPG_SIGN, GPG_ENCODE_AND_SIGN }; /* Error struct for gpg_decrypt */ struct GPGDecErr { GError* err; std::string output; bool dec_ok; bool verify_ok; bool no_sigs; GPGDecType type; GPGSignersInfo signers; GMimeObject * decrypted; GMimeDecryptResult * result; explicit GPGDecErr(GPGDecType t = GPG_DECODE) : err(NULL), dec_ok(false), verify_ok(false), no_sigs(true), type(t), decrypted(NULL), result(g_mime_decrypt_result_new()) {} ~GPGDecErr() { if (err) g_error_free(err); err = NULL; if (decrypted) g_object_unref(decrypted) ; if (result) g_object_unref(result); } void clear() { if (err) g_error_free(err); err = NULL; signers.signers.clear(); verify_ok = false; dec_ok = false; no_sigs = true; } }; /* Error struct for gpg_sign_and_encrypt */ struct GPGEncErr { GError* err; std::string output; bool enc_ok; bool sign_ok; bool no_sigs; GPGEncType type; GPGSignersInfo signers; explicit GPGEncErr(GPGEncType t) : err(NULL), enc_ok(false), sign_ok(false), no_sigs(true), type(t) {} ~GPGEncErr() { if (err) g_error_free(err); err = NULL; } }; void init_gpg(); void deinit_gpg(); void fill_signer_info(GPGSignersInfo& info, GMimeSignatureList * sig_list); int __g_mime_multipart_signed_sign (GMimeMultipartSigned *mps, GMimeObject *content, GMimeCryptoContext *ctx, const char *userid, GMimeDigestAlgo digest, GError **err); } #endif // g_mime_crypto #endif pan-0.162/pan/usenet-utils/message-check-test.cc000066400000000000000000000262341475412772400215260ustar00rootroot00000000000000#include #include #include #include #include #include #include #include #include #include #include "gnksa.h" #include "message-check.h" using namespace pan; #define PRINT_ERRORS \ if (1) { \ int i = 0; \ for (MessageCheck::unique_strings_t::const_iterator it(errors.begin()), end(errors.end()); it!=end; ++it, ++i) \ std::cerr << LINE_ID << " [" << i << "][" << *it << ']' << std::endl; \ } #define CHARSET "UTF-8" static void mime_part_set_content (GMimePart *part, const char *str) { GMimeDataWrapper *content; GMimeStream *stream; stream = g_mime_stream_mem_new_with_buffer (str, strlen (str)); content = g_mime_data_wrapper_new_with_stream (stream, GMIME_CONTENT_ENCODING_DEFAULT); g_object_unref (stream); g_mime_part_set_content (part, content); g_object_unref (content); } int main () { g_mime_init (); MessageCheck::unique_strings_t errors; MessageCheck::Goodness goodness; quarks_t groups_our_server_has; groups_our_server_has.insert ("alt.test"); groups_our_server_has.insert ("alt.religion.kibology"); groups_our_server_has.insert ("alt.binaries.sounds.mp3.indie"); // populate a simple article std::string attribution ("Someone wrote"); GMimeMessage * msg = g_mime_message_new (FALSE); //g_mime_message_set_sender (msg, "\"Charles Kerr\" "); g_mime_message_add_mailbox(msg,GMIME_ADDRESS_TYPE_SENDER, NULL, "\"Charles Kerr\" " ); std::string message_id = GNKSA :: generate_message_id ("rebelbase.com"); g_mime_message_set_message_id (msg, message_id.c_str()); g_mime_message_set_subject (msg, "MAKE MONEY FAST", CHARSET); g_mime_object_set_header ((GMimeObject *) msg, "Organization", "Lazars Android Works", CHARSET); g_mime_object_set_header ((GMimeObject *) msg, "Newsgroups", "alt.test", CHARSET); GMimePart * part = g_mime_part_new_with_type ("text", "plain"); const char * cpch = "Hello World!"; mime_part_set_content (part, cpch); g_mime_message_set_mime_part (msg, GMIME_OBJECT(part)); // this should pass the tests MessageCheck :: message_check (msg, attribution, groups_our_server_has, errors, goodness); printf("errors: «%s»", errors); check (errors.empty()) check (goodness.is_ok()) // all quoted cpch = "> Hello World!\n> All quoted text."; mime_part_set_content (part, cpch); MessageCheck :: message_check (msg, attribution, groups_our_server_has, errors, goodness); std::vector e (errors.begin(), errors.end()); check (errors.size() == 2) check (goodness.is_refuse()) check (e[0] == "Error: Message appears to have no new content."); check (e[1] == "Warning: The message is entirely quoted text!"); // mostly quoted cpch = "> Hello World!\n> quoted\n> text\n> foo\n> bar\nnew text"; mime_part_set_content (part, cpch); MessageCheck :: message_check (msg, attribution, groups_our_server_has, errors, goodness); e.assign (errors.begin(), errors.end()); check (errors.size() == 1) check (goodness.is_warn()) check (e[0] == "Warning: The message is mostly quoted text.") // mostly quoted border condition: 20% of message is new content (should pass) cpch = "> Hello World!\n> quoted\n> text\n> foo\nnew text"; mime_part_set_content (part, cpch); MessageCheck :: message_check (msg, attribution, groups_our_server_has, errors, goodness); check (errors.empty()) check (goodness.is_ok()) // sig check: too long cpch = "Hello!\n\n-- \nThis\nSig\nIs\nToo\nLong\n"; mime_part_set_content (part, cpch); MessageCheck :: message_check (msg, attribution, groups_our_server_has, errors, goodness); e.assign (errors.begin(), errors.end()); check (errors.size() == 1) check (goodness.is_warn()) check (e[0] == "Warning: Signature is more than 4 lines long."); // sig check: too wide cpch = "Hello!\n" "\n" "-- \n" "This sig line is exactly 80 characters wide. I'll keep typing until I reach 80.\n" "This sig line is greater than 80 characters wide. In fact, it's 84 characters wide.\n" "This sig line is greater than 80 characters wide. In fact, it measures 95 characters in width!\n" "This sig line is less than 80 characters wide."; mime_part_set_content (part, cpch); MessageCheck :: message_check (msg, attribution, groups_our_server_has, errors, goodness); e.assign (errors.begin(), errors.end()); check (errors.size() == 1) check (goodness.is_warn()) check (e[0] == "Warning: Signature is more than 80 characters wide."); // sig check: sig marker, no sig cpch = "Hello!\n\n-- \n"; mime_part_set_content (part, cpch); MessageCheck :: message_check (msg, attribution, groups_our_server_has, errors, goodness); e.assign (errors.begin(), errors.end()); check (errors.size() == 1) check (goodness.is_warn ()) check (e[0] == "Warning: Signature prefix with no signature."); // sig check: okay sig cpch = "Hello!\n\n-- \nThis is a short, narrow sig.\nIt should pass.\n"; mime_part_set_content (part, cpch); MessageCheck :: message_check (msg, attribution, groups_our_server_has, errors, goodness); check (errors.empty()) check (goodness.is_ok()) // adrian's fake followup cpch = ">>>>>>>>>>>> I think A\n" ">>>>>>>>>>> No, it's not\n" ">>>>>>>>>> But B => C\n" ">>>>>>>>> What's that got to do with A?\n" ">>>>>>>> I still think B => C\n" ">>>>>>> It's not even B => C. But Still waiting for proof for A\n" ">>>>>> You don't prove !A, either.\n" ">>>>> There's the FAQ: X => !A and Y => !A\n" ">>>> But there in the text it sais T' => A\n" ">>> But T' is only a subset of T. T => !A.\n" ">> Moron\n" "> Jackass.\n" "\n" "I don't know wether I am amused or annoyed. Apparently the funny side\n" "prevailed so far, as I'm still reading.\n" "\n" "-- vbi"; MessageCheck :: message_check (msg, attribution, groups_our_server_has, errors, goodness); check (errors.empty()) check (goodness.is_ok()) // body too wide cpch = "Hello!\n" "This sig line is exactly 80 characters wide. I'll keep typing until I reach 80.\n" "This sig line is greater than 80 characters wide. In fact, it's 84 characters wide.\n" "This sig line is greater than 80 characters wide. In fact, it measures 95 characters in width!\n" "This sig line is less than 80 characters wide."; mime_part_set_content (part, cpch); MessageCheck :: message_check (msg, attribution, groups_our_server_has, errors, goodness); e.assign (errors.begin(), errors.end()); check (errors.size() == 1) check (goodness.is_warn()) check (e[0] == "Warning: 2 lines are more than 80 characters wide."); // body empty cpch = "\n\t\n \n-- \nThis is the sig."; mime_part_set_content (part, cpch); MessageCheck :: message_check (msg, attribution, groups_our_server_has, errors, goodness); e.assign (errors.begin(), errors.end()); check (errors.size() == 2) check (goodness.is_refuse()) check (e[0] == "Error: Message appears to have no new content."); check (e[1] == "Error: Message is empty."); cpch = "Some valid message."; mime_part_set_content (part, cpch); // empty subject g_mime_message_set_subject (msg, "", CHARSET); MessageCheck :: message_check (msg, attribution, groups_our_server_has, errors, goodness); e.assign (errors.begin(), errors.end()); check (errors.size() == 1) check (goodness.is_refuse()) check (e[0] == "Error: No Subject specified."); g_mime_message_set_subject (msg, "Happy Lucky Feeling", CHARSET); // newsgroups g_mime_object_set_header ((GMimeObject *) msg, "Newsgroups", "alt.test,unknown.group", CHARSET); MessageCheck :: message_check (msg, attribution, groups_our_server_has, errors, goodness); e.assign (errors.begin(), errors.end()); check (errors.size() == 1) check (goodness.is_warn()) check (e[0] == "Warning: The posting profile's server doesn't carry newsgroup\n\t\"unknown.group\".\n\tIf the group name is correct, switch profiles in the \"From:\"\n\tline or edit the profile with \"Edit|Manage Posting Profiles\".") g_mime_object_set_header ((GMimeObject *) msg, "Newsgroups", "alt.test", CHARSET); // newsgroups w/o followup g_mime_object_set_header ((GMimeObject *) msg, "Newsgroups", "alt.test,alt.religion.kibology,alt.binaries.sounds.mp3.indie", CHARSET); g_mime_header_list_remove (GMIME_OBJECT(msg)->headers, "Followup-To"); MessageCheck :: message_check (msg, attribution, groups_our_server_has, errors, goodness); e.assign (errors.begin(), errors.end()); check (errors.size() == 1) check (goodness.is_warn()) check (e[0] == "Warning: Crossposting without setting Followup-To header.") // unknown follow-up g_mime_object_set_header ((GMimeObject *) msg, "Newsgroups", "alt.test", CHARSET); g_mime_object_set_header ((GMimeObject *) msg, "Followup-To", "alt.test,unknown.group", CHARSET); MessageCheck :: message_check (msg, attribution, groups_our_server_has, errors, goodness); e.assign (errors.begin(), errors.end()); check (errors.size() == 1) check (goodness.is_warn ()) check (e[0] == "Warning: The posting profile's server doesn't carry newsgroup\n\t\"unknown.group\".\n\tIf the group name is correct, switch profiles in the \"From:\"\n\tline or edit the profile with \"Edit|Manage Posting Profiles\".") g_mime_object_remove_header (GMIME_OBJECT(msg), "Followup-To"); // top posting g_mime_object_set_header ((GMimeObject *) msg, "References", "", CHARSET); cpch = "How Fascinating!\n" "\n" "> Blah blah blah.\n"; mime_part_set_content (part, cpch); MessageCheck :: message_check (msg, attribution, groups_our_server_has, errors, goodness); e.assign (errors.begin(), errors.end()); check (errors.size() == 1) check (goodness.is_warn ()) check (e[0] == "Warning: Reply seems to be top-posted.") g_mime_object_remove_header (GMIME_OBJECT(msg), "References"); // top posting g_mime_object_set_header ((GMimeObject *) msg, "References", "", CHARSET); cpch = "How Fascinating!\n" "\n" "> Blah blah blah.\n" "\n" "-- \n" "Pan shouldn't mistake this signature for\n" "original content in the top-posting check.\n"; mime_part_set_content (part, cpch); MessageCheck :: message_check (msg, attribution, groups_our_server_has, errors, goodness); e.assign (errors.begin(), errors.end()); check (errors.size() == 1) check (goodness.is_warn ()) check (e[0] == "Warning: Reply seems to be top-posted.") g_mime_object_remove_header (GMIME_OBJECT(msg), "References"); // bad signature cpch = "Testing to see what happens if the signature is malformed.\n" "It *should* warn us about it.\n" "\n" "--\n" "This is my signature.\n"; mime_part_set_content (part, cpch); MessageCheck :: message_check (msg, attribution, groups_our_server_has, errors, goodness); e.assign (errors.begin(), errors.end()); check (errors.size() == 1) check (goodness.is_warn()) check (e[0] == "Warning: The signature marker should be \"-- \", not \"--\"."); // success return 0; } pan-0.162/pan/usenet-utils/message-check.cc000066400000000000000000000366131475412772400205530ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #include #include #include #include #include #include #include #include #include "gnksa.h" #include "message-check.h" #include "text-massager.h" #include "mime-utils.h" using namespace pan; /*** **** PRIVATE UTILITIES ***/ namespace { typedef std::set unique_strings_t; typedef std::vector strings_t; // Find and return a list of NNTP groups to send to void get_nntp_rcpts (const StringView& to, quarks_t& setme) { StringView token, myto(to); while (myto.pop_token (token, ',')) setme.insert (token.to_string()); } /*** **** OUTGOING MESSAGE CHECKS ***/ #if 0 std::string strip_attribution_and_signature (const StringView& body_in, GMimeMessage * message) { std::string body (body_in.to_string()); // strip attribution const char * attribution = g_mime_object_get_header ((GMimeObject *) message, PAN_ATTRIBUTION); if (attribution && *attribution) { std::string::size_type attrib_start_pos = body.find (attribution); if (attrib_start_pos != std::string::npos) { // the +2 is to trim out the following carriage returns const int attrib_len (::strlen(attribution) + 2); body.erase (attrib_start_pos, attrib_len); } } // strip out the signature char * sig_delimiter = 0; // FIXME if (pan_find_signature_delimiter (body->str, &sig_delimiter) != SIG_NONE) { ccc ; g_string_truncate (body, sig_delimiter - body->str); pan_g_string_strstrip (body); } return body; } #endif /** * Check to see if the user is top-posting. */ void check_topposting (unique_strings_t & errors, MessageCheck::Goodness & goodness, const TextMassager & tm, const StringView & body, GMimeMessage * message) { // if it's not a reply, then top-posting check is moot if (g_mime_object_get_header ((GMimeObject *) message, "References") == NULL) return; bool quoted_found (false); bool original_found_after_quoted (false); StringView v(body), line; while (v.pop_token (line, '\n')) { if (line == "-- ") // signature reached break; if (tm.is_quote_character (g_utf8_get_char (line.str))) // check for quoted quoted_found = true; else if (quoted_found) { // check for non-quoted after quoted line.trim (); original_found_after_quoted = !line.empty(); if (original_found_after_quoted) break; } } if (quoted_found && !original_found_after_quoted) { goodness.raise_to_warn (); errors.insert (_("Warning: Reply seems to be top-posted.")); } } /** * Check to see if the signature (if found) is within the McQuary limit of * four lines and 80 columns per line. */ void check_signature (unique_strings_t & errors, MessageCheck::Goodness & goodness, const StringView & body) { int sig_point (0); const GNKSA::SigType sig_type (GNKSA::find_signature_delimiter (body, sig_point)); if (sig_type == GNKSA::SIG_NONE) return; if (sig_type == GNKSA::SIG_NONSTANDARD) { goodness.raise_to_warn (); errors.insert (_("Warning: The signature marker should be \"-- \", not \"--\".")); } // how wide and long is the signature? int sig_line_qty (-1); int too_wide_qty (0); StringView line, sig(body); sig.eat_chars (sig_point); while (sig.pop_token (line, '\n')) { ++ sig_line_qty; if (line.len > 80) ++too_wide_qty; } if (sig_line_qty == 0) { goodness.raise_to_warn (); errors.insert (_("Warning: Signature prefix with no signature.")); } if (sig_line_qty > 4) { goodness.raise_to_warn (); errors.insert (_("Warning: Signature is more than 4 lines long.")); } if (too_wide_qty != 0) { goodness.raise_to_warn (); errors.insert (_("Warning: Signature is more than 80 characters wide.")); } } /** * Simple check to see if the body is too wide. Any text after the * signature prefix is ignored in this test. */ void check_wide_body (unique_strings_t & errors, MessageCheck::Goodness & goodness, const StringView & body) { int too_wide_qty (0); StringView v(body), line; while (v.pop_token (line, '\n')) { if (line == "-- ") break; if (line.len > 80) ++too_wide_qty; } if (too_wide_qty) { char buf[1024]; g_snprintf (buf, sizeof(buf), ngettext( "Warning: %d line is more than 80 characters wide.", "Warning: %d lines are more than 80 characters wide.", too_wide_qty), too_wide_qty); errors.insert (buf); goodness.raise_to_warn (); } } /** * Check to see if the article appears to be empty. * Any text after the signature prefix is ignored in this test. */ void check_empty (unique_strings_t & errors, MessageCheck::Goodness & goodness, const StringView & body) { StringView v(body), line; while (v.pop_token (line, '\n')) { if (line == "-- ") // sig reached; break; line.trim (); if (!line.empty()) // found text return; } errors.insert (_("Error: Message is empty.")); goodness.raise_to_refuse (); } /** * Check to see how much original content is in this message, opposed * to quoted content. Any text after the signature prefix is ignored * in this test. * * (1) count all the lines beginning with the quoted prefix. * (2) count all the nonempty nonsignature lines. These are the orignal lines. * (3) if the ratio of original/quoted is 20% or less, warn. * (4) if the ratio of original/quoted is 0%, warn louder. */ void check_mostly_quoted (unique_strings_t & errors, MessageCheck::Goodness & goodness, const StringView & body) { int total(0), unquoted(0); StringView v(body), line; while (v.pop_token (line, '\n')) { if (line == "-- ") break; // sig reached line.trim (); if (line.empty()) continue; ++total; if (*line.str != '>') ++unquoted; } if (total!=0 && ((int)(100.0*unquoted/total)) < 20) { goodness.raise_to_warn (); errors.insert (unquoted==0 ? _("Warning: The message is entirely quoted text!") : _("Warning: The message is mostly quoted text.")); } } /** * Check to see if the article appears to only have quoted text. If this * appears to be the case, we will refuse to post the message. * * (1) Get mutable working copies of the article body and the attribution * string. * * (2) Replace carriage returns in both the calculated attribution string * and a temporary copy of the message body, so that we don't have to * worry whether or not the attribution line's been wrapped. * * (3) Search for an occurance of the attribution string in the body. If * it's found, remove it from the temporary copy of the body so that * it won't affect our line counts. * * (4) Of the remaining body, look for any nonempty lines before the signature * file that don't begin with the quote prefix. If such a line is found, * then the message is considered to not be all quoted text. * */ void check_all_quoted (unique_strings_t & errors, MessageCheck::Goodness & goodness, const TextMassager & tm, const StringView & body, const StringView & attribution) { if (body.empty()) return; // strip out the attribution, if any std::string s (body.str, body.len); if (!attribution.empty()) { std::string::size_type pos = s.find (attribution.str, attribution.len); if (pos != std::string::npos) s.erase (pos, attribution.len+2); // the +2 is to trim out the following carriage returns } StringView v(s), line; while (v.pop_token (line, '\n')) { if (line == "-- ") break; line.trim (); if (line.empty()) continue; if (!tm.is_quote_character (g_utf8_get_char (line.str))) return; // found new content } errors.insert (_("Error: Message appears to have no new content.")); goodness.raise_to_refuse (); } void check_body (unique_strings_t & errors, MessageCheck::Goodness & goodness, const TextMassager & tm, GMimeMessage * message, const StringView & body, const StringView & attribution) { check_empty (errors, goodness, body); check_wide_body (errors, goodness, body); check_signature (errors, goodness, body); check_mostly_quoted (errors, goodness, body); check_all_quoted (errors, goodness, tm, body, attribution); check_topposting (errors, goodness, tm, body, message); } void check_followup_to (unique_strings_t & errors, MessageCheck::Goodness & goodness, const quarks_t & groups_our_server_has, const quarks_t & group_names) { const Quark poster ("poster"); // check to make sure all the groups exist foreach_const (quarks_t, group_names, it) { if (*it == poster) continue; else if (!groups_our_server_has.count (*it)) { goodness.raise_to_warn (); char * tmp = g_strdup_printf ( _("Warning: The posting profile's server doesn't carry newsgroup\n" "\t\"%s\".\n" "\tIf the group name is correct, switch profiles in the \"From:\"\n" "\tline or edit the profile with \"Edit|Manage Posting Profiles\"."), it->c_str()); errors.insert (tmp); g_free (tmp); } } // warn if too many followup-to groups if (group_names.size() > 5u) { errors.insert (_("Warning: Following-Up to too many groups.")); goodness.raise_to_warn (); } } void check_subject (unique_strings_t & errors, MessageCheck::Goodness & goodness, const StringView & subject) { if (subject.empty()) { goodness.raise_to_refuse (); errors.insert (_("Error: No Subject specified.")); } } void check_groups (unique_strings_t & errors, MessageCheck::Goodness & goodness, const quarks_t & groups_our_server_has, const quarks_t & group_names, bool followup_to_set) { // make sure all the groups exist and are writable foreach_const (quarks_t, group_names, it) { if (!groups_our_server_has.count (*it)) { goodness.raise_to_warn (); char * tmp = g_strdup_printf ( _("Warning: The posting profile's server doesn't carry newsgroup\n" "\t\"%s\".\n" "\tIf the group name is correct, switch profiles in the \"From:\"\n" "\tline or edit the profile with \"Edit|Manage Posting Profiles\"."), it->c_str()); errors.insert (tmp); g_free (tmp); } #if 0 if (data.get_group_permission (*it) == 'n') { goodness.raise_to_warn (); char buf[1024]; g_snprintf (buf, sizeof(buf), _("Warning: Group \"%s\" is read-only."), it->c_str()); errors.insert (buf); } #endif } if (group_names.size() >= 10u) // refuse if far too many groups { goodness.raise_to_refuse (); errors.insert (_("Error: Posting to a very large number of groups.")); } else if (group_names.size() > 5) // warn if too many groups { goodness.raise_to_warn (); errors.insert (_("Warning: Posting to a large number of groups.")); } // warn if too many groups and no followup-to if (group_names.size()>2u && !followup_to_set) { goodness.raise_to_warn (); errors.insert (_("Warning: Crossposting without setting Followup-To header.")); } } } void MessageCheck :: message_check (const GMimeMessage * message_const, const StringView & attribution, const quarks_t & groups_our_server_has, unique_strings_t & errors, Goodness & goodness, bool binpost) { goodness.clear (); errors.clear (); // we only use accessors in here, but the GMime API doesn't allow const... GMimeMessage * message (const_cast(message_const)); // check the subject... check_subject (errors, goodness, g_mime_message_get_subject (message)); // check the author... if (GNKSA::check_from (g_mime_object_get_header ((GMimeObject *) message, "From"), true)) { errors.insert (_("Error: Bad email address.")); goodness.raise_to_warn (); } // check the body... TextMassager tm; gboolean is_html; char * body = pan_g_mime_message_get_body (message, &is_html); if (is_html && !binpost) { errors.insert (_("Warning: Most newsgroups frown upon HTML posts.")); goodness.raise_to_warn (); } if (!binpost) check_body (errors, goodness, tm, message, body, attribution); g_free (body); // check the optional followup-to... bool followup_to_set (false); const char * cpch = g_mime_object_get_header ((GMimeObject *) message, "Followup-To"); if (!binpost) { if (cpch && *cpch) { quarks_t groups; get_nntp_rcpts (cpch, groups); followup_to_set = !groups.empty(); check_followup_to (errors, goodness, groups_our_server_has, groups); } } else followup_to_set = true; // check the groups... size_t group_qty (0); cpch = g_mime_object_get_header ((GMimeObject *) message, "Newsgroups"); if (cpch && *cpch) { quarks_t groups; get_nntp_rcpts (cpch, groups); check_groups (errors, goodness, groups_our_server_has, groups, followup_to_set); group_qty = groups.size (); } // one last error check InternetAddressList * list (g_mime_message_get_addresses (message, GMIME_ADDRESS_TYPE_TO)); const int n_to (internet_address_list_length (list)); if (!group_qty && !n_to) { errors.insert (_("Error: No Recipients.")); goodness.raise_to_refuse (); } } pan-0.162/pan/usenet-utils/message-check.h000066400000000000000000000044021475412772400204040ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #ifndef __MESSAGE_CHECK_H__ #define __MESSAGE_CHECK_H__ #include #include #include #include namespace pan { /** * Used to check a message's correctness before being posted. * Mild errors result in a warning; severe errors result in Pan's refusal to post. * @ingroup usenet_utils */ class MessageCheck { public: /** * Convenience class to specify whether an article being checked * is OKAY, or it deserves a warning, or Pan should refuse to post it. */ struct Goodness { enum { OKAY=0, WARN, REFUSE }; int state; Goodness(): state(OKAY) {} void clear() { state = OKAY; } void raise_to_warn() { if (state unique_strings_t; static void message_check (const GMimeMessage * message, const StringView & attribution, const quarks_t & groups_our_server_has, unique_strings_t & errors, Goodness & goodness, bool binpost = false); }; } #endif pan-0.162/pan/usenet-utils/mime-utils.cc000066400000000000000000001343041475412772400201350ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #include #include #include #include #include #include extern "C" { #include } #include #include #include #include #include #include #include "mime-utils.h" #include "gpg.h" #define is_nonempty_string(a) ((a) && (*a)) using namespace pan; namespace pan { iconv_t conv(nullptr); bool iconv_inited(false); } namespace { const char* __yenc_extract_tag_val_char (const char * line, const char *tag) { const char * retval = nullptr; const char * tmp = strstr (line, tag); if (tmp != nullptr) { tmp += strlen (tag); if (*tmp != '\0') retval = tmp; } return retval; } guint __yenc_extract_tag_val_int_base (const char * line, const char * tag, int base) { guint retval = 0; const char * tmp = __yenc_extract_tag_val_char (line, tag); if (tmp != nullptr) { char * tail = nullptr; retval = strtoul (tmp, &tail, base); if (tmp == tail) retval = 0; } return retval; } int __yenc_extract_tag_val_hex_int (const char * line, const char * tag) { return __yenc_extract_tag_val_int_base (line, tag, 16); } int __yenc_extract_tag_val_int (const char *line, const char *tag) { return __yenc_extract_tag_val_int_base (line, tag, 0); } int yenc_parse_end_line (const char * b, size_t * size, int * part, guint * pcrc, guint * crc) { // find size const char * pch = __yenc_extract_tag_val_char (b, YENC_TAG_SIZE); size_t _size (0); if (pch) _size = strtoul(pch, nullptr, 10); pan_return_val_if_fail (_size!=0, -1); // part is optional int _part = __yenc_extract_tag_val_int (b, YENC_TAG_PART); guint _pcrc = __yenc_extract_tag_val_hex_int (b, YENC_TAG_PCRC32); if (part != nullptr) pan_return_val_if_fail( _pcrc != 0, -1 ); guint _crc = __yenc_extract_tag_val_hex_int( b, YENC_TAG_CRC32); if (size) *size = _size; if (part) *part = _part; if (pcrc) *pcrc = _pcrc; if (crc) *crc = _crc; return 0; } /** * yenc_parse_being_line * @param line the line to check for "begin [part] line size filename" * @param filename if parse is successful, is set with the * starting character of the filename. * @param line_len if parse is successful, is set with the line length * @param part if parse is successful this is set to the current attachement's * part number * @return 0 on success, -1 on failure */ int yenc_parse_begin_line (const char * b, char ** file, int * line_len, int * attach_size, int * part) { int ll = __yenc_extract_tag_val_int (b, YENC_TAG_LINE); pan_return_val_if_fail (ll != 0, -1); // part is optional int part_num = __yenc_extract_tag_val_int (b, YENC_TAG_PART); int a_sz = __yenc_extract_tag_val_int( b, YENC_TAG_SIZE ); pan_return_val_if_fail( a_sz != 0, -1 ); const char * fname = __yenc_extract_tag_val_char (b, YENC_TAG_NAME); pan_return_val_if_fail( fname, -1 ); if (line_len) *line_len = ll; if (file) { const char * pch = strchr (fname, '\n'); *file = g_strstrip (g_strndup (fname, pch-fname)); } if (part) *part = part_num; if (attach_size) *attach_size = a_sz; return 0; } /* * a =ypart line requires both begin & end offsets. These are the location * of the part inside the end file */ int yenc_parse_part_line (const char * b, guint *begin_offset, guint *end_offset) { int bg = __yenc_extract_tag_val_int( b, YENC_TAG_BEGIN ); if (bg == 0) return -1; int end = __yenc_extract_tag_val_int( b, YENC_TAG_END ); if (end == 0) return -1; if (begin_offset) *begin_offset = bg; if (end_offset) *end_offset = end; return 0; } /** * yenc_is_beginning * @param line line to test & see if it's the beginning of a yenc block * @return true if it is, false otherwise */ bool yenc_is_beginning_line (const char * line) { return !strncmp (line, YENC_MARKER_BEGIN, YENC_MARKER_BEGIN_LEN) && !yenc_parse_begin_line (line, nullptr, nullptr, nullptr, nullptr); } bool yenc_is_part_line (const char * line) { return !strncmp (line, YENC_MARKER_PART, YENC_MARKER_PART_LEN) && !yenc_parse_part_line (line, nullptr, nullptr); } /** * yenc_is_ending_line * @param line line to test & see if it's the end of a yenc block * @return true if it is, false otherwise */ bool yenc_is_ending_line (const char * line) { return !strncmp (line, YENC_MARKER_END, YENC_MARKER_END_LEN) && !yenc_parse_end_line (line, nullptr, nullptr, nullptr, nullptr); } }; /*** **** UU ***/ namespace { int uu_parse_begin_line (const StringView & begin, char ** setme_filename, gulong * setme_mode) { int retval; pan_return_val_if_fail (!begin.empty(), -1); // skip past the "begin " StringView tmp = begin.substr (begin.str+6, nullptr); char * end; gulong mode = strtoul (tmp.str, &end, 8); if (end==nullptr || end-tmp.str<3) /* must have at least 3 octal digits */ mode = 0ul; tmp = tmp.substr (end, nullptr); // skip past the permissions tmp = tmp.substr (nullptr, tmp.strchr('\n')); // remove linefeed, if any tmp.trim (); if (mode==0 || tmp.empty()) retval = -1; else { if (setme_mode != nullptr) *setme_mode = mode; if (setme_filename != nullptr) *setme_filename = g_strndup (tmp.str, tmp.len); retval = 0; } return retval; } /** * uu_is_beginning * @param line line to test & see if it's the beginning of a uu-encoded block * @return true if it is, false otherwise */ bool uu_is_beginning_line (const StringView& line) { return !line.empty() && line.len>5 && (!memcmp(line.str, "begin ", 6) || !memcmp(line.str, "BEGIN ", 6)) && !uu_parse_begin_line (line, nullptr, nullptr); } /** * uu_is_ending * @param line line to test & see if it's the end of a uu-encoded block * @return true if it is, false otherwise */ bool uu_is_ending_line (const char * line) { return line!=nullptr && (line[0]=='e' || line[0]=='E') && (line[1]=='n' || line[1]=='N') && (line[2]=='d' || line[2]=='D') && !strstr(line,"cut") && !strstr(line,"CUT"); } bool is_uu_line (const char * line, int len) { pan_return_val_if_fail (line!=nullptr, FALSE); if (*line=='\0' || len<1) return false; if (len==1 && *line=='`') return true; // get octet length const int octet_len = *line - 0x20; if (octet_len > 45) return false; // get character length int char_len = (octet_len / 3) * 4; switch (octet_len % 3) { case 0: break; case 1: char_len += 2; break; case 2: char_len += 3; break; } if (char_len+1 > len) return false; /* if there's a lot of noise at the end, be suspicious. This is to keep out lines of nntp-server-generated taglines that have a space as the first character */ if (char_len+10 < len) return false; // make sure each character is in the uuencoded range for (const char *pch=line+1, *line_end=pch+char_len; pch!=line_end; ++pch) if (*pch<0x20 || *pch>0x60) return false; // looks okay return true; } } namespace { guint stream_readln (GMimeStream *stream, GByteArray *line, gint64* startpos) { char linebuf[1024]; gssize len; /* sanity clause */ pan_return_val_if_fail (stream!=nullptr, 0u); pan_return_val_if_fail (line!=nullptr, 0u); pan_return_val_if_fail (startpos!=nullptr, 0u); /* where are we now? */ *startpos = g_mime_stream_tell (stream); /* fill the line array */ g_byte_array_set_size (line, 0); if (!g_mime_stream_eos (stream)) do { len = g_mime_stream_buffer_gets (stream, linebuf, sizeof(linebuf)); if (len>0) g_byte_array_append (line, (const guint8 *)linebuf, len); } while (len>0 && linebuf[len-1]!='\n'); return line->len; } } enum EncType { ENC_PLAIN , ENC_YENC, ENC_UU }; namespace pan { struct TempPart { GMimeStream * stream; GMimeFilter * filter; GMimeStream * filter_stream; char * filename; unsigned int valid_lines; EncType type; int y_line_len; int y_attach_size; int y_part; guint y_offset_begin; guint y_offset_end; guint y_crc; guint y_pcrc; size_t y_size; TempPart (EncType intype=ENC_UU, char *infilename=nullptr): stream(nullptr), filter(nullptr), filter_stream(nullptr), filename(infilename), valid_lines(0), type(intype), y_line_len(0), y_attach_size(0), y_part(0), y_offset_begin(0), y_offset_end(0), y_crc(0), y_pcrc(0), y_size(0) {} ~TempPart () { g_free (filename); g_object_unref (stream); if (filter) g_object_unref (filter); if (filter_stream) g_object_unref (filter_stream); } }; typedef std::vector temp_parts_t; TempPart* find_filename_part (temp_parts_t& parts, const char * filename) { if (filename && *filename) { foreach (temp_parts_t, parts, it) { TempPart * part (*it); if (part->filename && !strcmp(filename,part->filename)) return part; } } return nullptr; } bool append_if_not_present (temp_parts_t& parts, TempPart * part) { foreach (temp_parts_t, parts, it) if (part == *it) return false; parts.push_back (part); return true; } void apply_source_and_maybe_filter (TempPart * part, GMimeStream * s) { if (!part->stream) { part->stream = g_mime_stream_mem_new (); if (part->type != ENC_PLAIN) { part->filter_stream = g_mime_stream_filter_new (part->stream); switch (part->type) { case ENC_UU: part->filter = g_mime_filter_basic_new (GMIME_CONTENT_ENCODING_UUENCODE, FALSE); break; // case ENC_BASE64: // part->filter = g_mime_filter_basic_new (GMIME_CONTENT_ENCODING_BASE64, FALSE); // break; // // case ENC_QP: // part->filter = g_mime_filter_basic_new (GMIME_CONTENT_ENCODING_QUOTEDPRINTABLE, FALSE); // break; case ENC_YENC: part->filter = g_mime_filter_yenc_new (FALSE); break; } g_mime_stream_filter_add (GMIME_STREAM_FILTER(part->filter_stream), part->filter); } } g_mime_stream_write_to_stream (s, (part->type == ENC_PLAIN ? part->stream : part->filter_stream)); g_object_unref (s); } struct sep_state { temp_parts_t master_list; temp_parts_t current_list; TempPart *uu_temp; sep_state():uu_temp(nullptr) {}; }; bool separate_encoded_parts (GMimeStream * istream, sep_state &state, EncType et) { temp_parts_t& master(state.master_list); temp_parts_t& appendme(state.current_list); TempPart * cur = nullptr; EncType enc_type = et; GByteArray * line; gboolean yenc_looking_for_part_line = FALSE; gint64 linestart_pos = 0; gint64 sub_begin = 0; guint line_len; bool found = false; /* sanity clause */ pan_return_val_if_fail (istream!=nullptr,false); sub_begin = 0; line = g_byte_array_sized_new (4096); while ((line_len = stream_readln (istream, line, &linestart_pos))) { char * line_str = (char*) line->data; char * pch = strchr (line_str, '\n'); if (pch != nullptr) { pch[1] = '\0'; line_len = pch - line_str; } switch (enc_type) { // case ENC_QP: // sub_begin = linestart_pos; // cur = new TempPart(type = ENC_QP); // break; // // case ENC_BASE64: // sub_begin = linestart_pos; // cur = new TempPart(type = ENC_BASE64); // break; case ENC_PLAIN: { const StringView line_pstr (line_str, line_len); if (uu_is_beginning_line (line_pstr)) { gulong mode = 0ul; char * filename = nullptr; found=true; // flush the current entry if (cur != nullptr) { GMimeStream * s = g_mime_stream_substream (istream, sub_begin, linestart_pos); apply_source_and_maybe_filter (cur, s); if ( append_if_not_present (master, cur) ) append_if_not_present (appendme, cur); cur = nullptr; } // start a new section (or, if filename matches, continue an existing one) sub_begin = linestart_pos; uu_parse_begin_line (line_pstr, &filename, &mode); cur = find_filename_part (master, filename); if (cur) g_free (filename); else cur = new TempPart (enc_type=ENC_UU, filename); state.uu_temp = cur; } else if (yenc_is_beginning_line (line_str)) { found = true; // flush the current entry if (cur != nullptr) { GMimeStream * s = g_mime_stream_substream (istream, sub_begin, linestart_pos); apply_source_and_maybe_filter (cur, s); if ( append_if_not_present (master, cur) ) append_if_not_present (appendme, cur); cur = nullptr; } sub_begin = linestart_pos; // start a new section (or, if filename matches, continue an existing one) char * fname; int line_len, attach_size, part; yenc_parse_begin_line (line_str, &fname, &line_len, &attach_size, &part); cur = find_filename_part (master, fname); if (cur) { g_free (fname); g_mime_filter_yenc_set_state (GMIME_FILTER_YENC (cur->filter), GMIME_YDECODE_STATE_INIT); } else { cur = new TempPart (enc_type=ENC_YENC, fname); cur->y_line_len = line_len; cur->y_attach_size = attach_size; cur->y_part = part; yenc_looking_for_part_line = cur->y_part!=0; } } else if (state.uu_temp != nullptr && is_uu_line(line_str, line_len) ) { // continue an incomplete uu decode found = true; // flush the current entry if (cur != nullptr) { GMimeStream * s = g_mime_stream_substream (istream, sub_begin, linestart_pos); apply_source_and_maybe_filter (cur, s); if ( append_if_not_present (master, cur) ) append_if_not_present (appendme, cur); cur = nullptr; } sub_begin = linestart_pos; cur = state.uu_temp; ++cur->valid_lines; enc_type = ENC_UU; } else if (cur == nullptr) { sub_begin = linestart_pos; cur = new TempPart(enc_type); } break; } case ENC_UU: { if (uu_is_ending_line(line_str)) { GMimeStream * stream; if (sub_begin < 0) sub_begin = linestart_pos; stream = g_mime_stream_substream (istream, sub_begin, linestart_pos+line_len); apply_source_and_maybe_filter (cur, stream); if( append_if_not_present (master, cur) ) append_if_not_present (appendme, cur); cur = nullptr; enc_type = ENC_PLAIN; state.uu_temp = nullptr; } else if (!is_uu_line(line_str, line_len)) { /* hm, this isn't a uenc line, so ending the cat and setting sub_begin to -1 */ if (sub_begin >= 0) { GMimeStream * stream = g_mime_stream_substream (istream, sub_begin, linestart_pos); apply_source_and_maybe_filter (cur, stream); } sub_begin = -1; } else if (sub_begin == -1) { /* looks like they decided to start using uu lines again. */ ++cur->valid_lines; sub_begin = linestart_pos; } else { ++cur->valid_lines; } break; } case ENC_YENC: { if (yenc_is_ending_line (line_str)) { GMimeStream * stream = g_mime_stream_substream (istream, sub_begin, linestart_pos+line_len); apply_source_and_maybe_filter (cur, stream); yenc_parse_end_line (line_str, &cur->y_size, nullptr, &cur->y_pcrc, &cur->y_crc); if( append_if_not_present (master, cur) ) append_if_not_present (appendme, cur); cur = nullptr; enc_type = ENC_PLAIN; } else if (yenc_looking_for_part_line && yenc_is_part_line(line_str)) { yenc_parse_part_line (line_str, &cur->y_offset_begin, &cur->y_offset_end); yenc_looking_for_part_line = FALSE; ++cur->valid_lines; } else { ++cur->valid_lines; } break; } } } /* close last entry */ if (cur != nullptr) { if (sub_begin >= 0) { GMimeStream * stream = g_mime_stream_substream (istream, sub_begin, linestart_pos); apply_source_and_maybe_filter (cur, stream); } /* just in case someone started with "yenc" or "begin 644 asf" in a text message to fuck with unwary newsreaders */ if (cur->valid_lines < 10u) cur->type = ENC_PLAIN; if( append_if_not_present (master, cur) ) append_if_not_present (appendme, cur); cur = nullptr; enc_type = ENC_PLAIN; } g_byte_array_free (line, TRUE); return found; } } void mime :: guess_part_type_from_filename (const char * filename, const char ** setme_type, const char ** setme_subtype) { static const struct { const char * suffix; const char * type; const char * subtype; } suffixes[] = { { ".asc", "text", "plain" }, // plain-encoded signature { ".avi", "video", "vnd.msvideo" }, { ".dtd", "text", "xml-dtd" }, { ".flac", "audio", "ogg" }, { ".gif", "image", "gif" }, { ".htm", "text", "html" }, { ".html", "text", "html" }, { ".jpg", "image", "jpeg" }, { ".jpeg", "image", "jpeg" }, { ".md5", "image", "tiff" }, { ".mp3", "audio", "mpeg" }, { ".mpeg", "video", "mpeg" }, { ".mpg", "video", "mpeg" }, { ".mov", "video", "quicktime" }, { ".nfo", "text", "plain" }, { ".oga", "audio", "x-vorbis" }, { ".ogg", "audio", "ogg" }, { ".ogv", "video", "ogg" }, { ".ogx", "application", "ogg" }, { ".png", "image", "png" }, { ".qt", "video", "quicktime" }, { ".rar", "application", "x-rar" }, { ".rv", "video", "vnd.rn-realvideo" }, { ".scr", "application", "octet-stream" }, { ".spx", "audio", "ogg" }, { ".svg", "image", "svg+xml" }, { ".tar", "application", "x-tar" }, { ".tbz2", "application", "x-tar" }, { ".tgz", "application", "x-tar" }, { ".tiff", "image", "tiff" }, { ".tif", "image", "tiff" }, { ".txt", "text", "plain" }, { ".uu", "text", "x-uuencode" }, { ".uue", "text", "x-uuencode" }, { ".xml", "text", "xml" }, { ".xsl", "text", "xml" }, { ".zip", "application", "zip" } }; static const int suffix_qty = G_N_ELEMENTS (suffixes); const char * suffix; /* zero out the return values */ pan_return_if_fail (setme_type!=nullptr); pan_return_if_fail (setme_subtype!=nullptr); *setme_type = *setme_subtype = nullptr; /* sanity clause */ pan_return_if_fail (is_nonempty_string(filename)); suffix = strrchr (filename, '.'); if (suffix != nullptr) { int i; for (i=0; ilen + 1); if (index != array->len) { /* need to move items down */ dest = ((unsigned char *) array->pdata) + (sizeof (void *) * (index + 1)); src = ((unsigned char *) array->pdata) + (sizeof (void *) * index); n = array->len - index - 1; g_memmove (dest, src, (sizeof (void *) * n)); } array->pdata[index] = object; } void handle_encoded_in_text_plain_cb (GMimeObject *parent, GMimeObject *part, gpointer data) { if (!part) return; // we assume that inlined yenc and uu are only in text/plain blocks GMimeContentType * content_type = g_mime_object_get_content_type (part); if (!g_mime_content_type_is_type (content_type, "text", "plain")) return; // get this part's content GMimeDataWrapper * content = g_mime_part_get_content (GMIME_PART (part)); if (!content) return; // wrap a buffer stream around it for faster reading -- it could be a file stream GMimeStream * stream = g_mime_data_wrapper_get_stream (content); g_mime_stream_reset (stream); GMimeStream * istream = g_mime_stream_buffer_new (stream, GMIME_STREAM_BUFFER_BLOCK_READ); // break it into separate parts for text, uu, and yenc pieces. sep_state &state(*(sep_state*)data); temp_parts_t &parts(state.current_list); bool split = separate_encoded_parts (istream, state, ENC_PLAIN); g_mime_stream_reset (istream); // split? if(split) { //this part was completely folded into a previous part //so delete it if(parts.size()==0) { GMimeMultipart *mp = GMIME_MULTIPART (parent); int index = g_mime_multipart_index_of (mp,part); if(index>0) g_mime_multipart_remove_at (mp,index); g_object_unref(part); } else { GMimeMultipart * multipart = g_mime_multipart_new_with_subtype ("mixed"); const TempPart *tmp_part; const char *filename; GMimePart *subpart; GMimeStream *subpart_stream; foreach (temp_parts_t, parts, it) { // reset these for each part const char * type = "text"; const char * subtype = "plain"; tmp_part = *it; filename = tmp_part->filename; if (filename && *filename) mime::guess_part_type_from_filename (filename, &type, &subtype); subpart = g_mime_part_new_with_type (type, subtype); if (filename && *filename) g_mime_part_set_filename (subpart, filename); subpart_stream = tmp_part->stream; content = g_mime_data_wrapper_new_with_stream (subpart_stream, GMIME_CONTENT_ENCODING_DEFAULT); g_mime_part_set_content (subpart, content); g_mime_multipart_add (GMIME_MULTIPART (multipart), GMIME_OBJECT (subpart)); g_object_unref (content); g_object_unref (subpart); } // replace the old part with the new multipart GMimeObject *newpart = GMIME_OBJECT(multipart); if(parts.size()==1) { //only one part so no need for multipart newpart = g_mime_multipart_remove_at(multipart,0); g_object_unref(multipart); } if(GMIME_IS_MULTIPART(parent)) { GMimeMultipart *mp = GMIME_MULTIPART (parent); int index = g_mime_multipart_index_of (mp, part); g_mime_multipart_remove_at (mp, index); g_object_unref (part); //workaround gmime insert bug //g_mime_multipart_insert (mp,index,newpart); { ptr_array_insert(mp->children, index, newpart); g_object_ref(newpart); } } else if(GMIME_IS_MESSAGE(parent)) { g_mime_message_set_mime_part((GMimeMessage*)parent, newpart); } g_object_unref(newpart); } } parts.clear(); g_object_unref (istream); } } namespace pan { struct temp_p { GMimeObject *parent,*part; temp_p(GMimeObject *p, GMimeObject *par):parent(p),part(par) {}; }; #ifdef HAVE_GMIME_CRYPTO struct QueryMPType { GMimeObject* obj; GPGDecType type; std::string algo; QueryMPType() : obj(nullptr), type(GPG_DECODE) {} }; #else struct QueryMPType { GMimeObject* obj; std::string algo; QueryMPType() : obj(nullptr) {} }; #endif } namespace { typedef std::vector temp_p_t; void find_text_cb(GMimeObject *parent, GMimeObject *part, gpointer data) { if(!GMIME_IS_PART(part)) return; temp_p_t *v( (temp_p_t *) data); // we assume that inlined yenc and uu are only in text/plain blocks GMimeContentType * content_type = g_mime_object_get_content_type (part); if (!g_mime_content_type_is_type (content_type, "text", "plain")) return; v->push_back(temp_p(parent,part) ); } void mixed_mp_cb(GMimeObject *parent, GMimeObject *part, gpointer data) { if(!GMIME_IS_PART(part)) return; QueryMPType * type = static_cast(data); GMimeContentType * content_type = g_mime_object_get_content_type (part); // if (!g_mime_content_type_is_type (content_type, "text", "plain") && // !g_mime_content_type_is_type (content_type, "application", "pgp-signature")) // return; // if (g_mime_content_type_is_type (content_type, "application", "pgp-signature")) // { // g_mime_object_set_content_type_parameter(part, "micalg", "pgp-sha1");//type->algo.c_str()); // std::cerr<obj), part); } void mixed_mp_find_gpg_params_cb (GMimeObject *parent, GMimeObject *part, gpointer data) { if(!GMIME_IS_PART(part)) return; QueryMPType * type = static_cast(data); // const char* micalg = g_mime_object_get_content_type_parameter (GMIME_OBJECT (part), "micalg"); // if (micalg) // { // std::cerr<<"micalg found : "<algo = micalg; // } GMimeContentType * content_type = g_mime_object_get_content_type (part); if (!content_type) return; #ifdef HAVE_GMIME_CRYPTO if (g_mime_content_type_is_type (content_type, "application", "pgp-signature")) type->type = GPG_VERIFY; else if (g_mime_content_type_is_type (content_type, "application", "pgp-encrypted")) type->type = GPG_DECODE; #endif } } /*** **** ***/ #ifdef HAVE_GMIME_CRYPTO GMimeMessage* mime :: construct_message (GMimeStream ** istreams, unsigned int qty, GPGDecErr & err) #else GMimeMessage* mime :: construct_message (GMimeStream ** istreams, unsigned int qty) #endif { const char * message_id = "Foo "; GMimeMessage * retval = nullptr; // sanity clause pan_return_val_if_fail (is_nonempty_string(message_id), nullptr); pan_return_val_if_fail (istreams!=nullptr, nullptr); pan_return_val_if_fail (qty != 0, nullptr); for (int i=0; i 1) // fold multiparts together { GMimeMultipart * mp = g_mime_multipart_new (); for (int i=0; isubtype, "plain")) { *is_html = !g_ascii_strcasecmp (type->subtype, "html"); text_part = mime_part; } } } return text_part; } GMimeObject * handle_multipart_mixed (GMimeMultipart *multipart, gboolean *is_html) { GMimeObject *mime_part, *text_part = nullptr; GMimeContentType *type, *first_type = nullptr; int count = g_mime_multipart_get_count (multipart); for (int i = 0; i < count; ++i) { mime_part = g_mime_multipart_get_part (multipart, i); type = g_mime_object_get_content_type (mime_part); if (GMIME_IS_MULTIPART (mime_part)) { multipart = GMIME_MULTIPART (mime_part); if (g_mime_content_type_is_type (type, "multipart", "alternative")) { mime_part = handle_multipart_alternative (multipart, is_html); if (mime_part) return mime_part; } else { mime_part = handle_multipart_mixed (multipart, is_html); if (mime_part && !text_part) text_part = mime_part; } } else if (g_mime_content_type_is_type (type, "text", "*")) { if (!g_ascii_strcasecmp (type->subtype, "plain")) { /* we got what we came for */ *is_html = !g_ascii_strcasecmp (type->subtype, "html"); return mime_part; } /* if we haven't yet found a text part or if it is a type we can * understand and it is the first of that type, save it */ if (!text_part || (!g_ascii_strcasecmp (type->subtype, "plain") && (first_type && g_ascii_strcasecmp (type->subtype, first_type->subtype) != 0))) { *is_html = !g_ascii_strcasecmp (type->subtype, "html"); text_part = mime_part; first_type = type; } } } return text_part; } } namespace { char * pan_g_mime_part_get_content (GMimePart *mime_part, size_t *len) { char *retval = nullptr; g_return_val_if_fail (GMIME_IS_PART (mime_part), nullptr); if (!mime_part->content || !mime_part->content->stream) { // g_warning ("no content set on this mime part"); // dbg return nullptr; } GMimeDataWrapper *wrapper = g_mime_part_get_content(mime_part); GMimeStream *stream = g_mime_stream_mem_new(); g_mime_data_wrapper_write_to_stream (wrapper, stream); GByteArray *bytes = g_mime_stream_mem_get_byte_array((GMimeStreamMem*)stream); *len = bytes->len + 1; if (bytes->len) { retval = (char*)g_malloc0(bytes->len + 1); memcpy(retval, bytes->data, bytes->len); } g_object_unref(stream); return retval; } } char *pan::pan_g_mime_message_get_body (GMimeMessage *message, gboolean *is_html) { GMimeObject *mime_part = nullptr; GMimeContentType *type; GMimeMultipart *multipart; char *body = nullptr; size_t len = 0; g_return_val_if_fail (GMIME_IS_MESSAGE (message), nullptr); // g_return_val_if_fail (is_html != nullptr, nullptr); type = g_mime_object_get_content_type (message->mime_part); if (GMIME_IS_MULTIPART (message->mime_part)) { /* let's see if we can find a body in the multipart */ multipart = GMIME_MULTIPART (message->mime_part); if (g_mime_content_type_is_type (type, "multipart", "alternative")) mime_part = handle_multipart_alternative (multipart, is_html); else mime_part = handle_multipart_mixed (multipart, is_html); } else if (g_mime_content_type_is_type (type, "text", "*")) { /* this *has* to be the message body */ if (g_mime_content_type_is_type (type, "text", "html")) *is_html = TRUE; else *is_html = FALSE; mime_part = message->mime_part; } if (mime_part != nullptr) { body = pan_g_mime_part_get_content (GMIME_PART (mime_part), &len); } return body; } void pan::pan_g_mime_message_add_recipients_from_string (GMimeMessage *message, GMimeAddressType type, const char *string) { InternetAddressList *addrlist; if ((addrlist = internet_address_list_parse (nullptr, string))) { for (int i = 0; i < internet_address_list_length (addrlist); ++i) { InternetAddress *ia = internet_address_list_get_address (addrlist, i); if (INTERNET_ADDRESS_IS_MAILBOX(ia)) g_mime_message_add_mailbox (message, type, internet_address_get_name(ia), internet_address_mailbox_get_addr(INTERNET_ADDRESS_MAILBOX(ia))); } } } /** * Works around a GMime bug that uses `Message-Id' rather than `Message-ID' */ std::string pan::pan_g_mime_message_set_message_id (GMimeMessage *msg, const char *mid) { const char * charset = nullptr; // "ISO-8859-1"; // FIXME g_mime_object_append_header ((GMimeObject *) msg, "Message-ID", mid, charset); char * bracketed = g_strdup_printf ("<%s>", mid); g_mime_header_list_set (GMIME_OBJECT(msg)->headers, "Message-ID", bracketed, charset); std::string ret (bracketed); g_free (bracketed); return ret; } namespace pan { void mime_part_set_content (GMimePart *part, const char *str) { GMimeDataWrapper *content; GMimeStream *stream; stream = g_mime_stream_mem_new_with_buffer (str, strlen (str)); content = g_mime_data_wrapper_new_with_stream (stream, GMIME_CONTENT_ENCODING_DEFAULT); g_object_unref (stream); g_mime_part_set_content (part, content); g_object_unref (content); } #ifdef HAVE_GMIME_CRYPTO GMimeSignatureStatus get_sig_status (GMimeSignatureList *signatures) { GMimeSignatureStatus status = GMIME_SIGNATURE_STATUS_VALID; GMimeSignature *sig; int i; if (!signatures || signatures->array->len == 0) return GMIME_SIGNATURE_STATUS_SYS_ERROR; for (i = 0; i < g_mime_signature_list_length (signatures); i++) { sig = g_mime_signature_list_get_signature (signatures, i); status = MAX (status, sig->status); } return status; } bool gpg_verify_mps (GMimeObject* obj, GPGDecErr& info) { if (!gpg_inited) return false; GMimeMultipartSigned * mps(nullptr); GMimeMultipartEncrypted * mpe(nullptr); switch (info.type) { case GPG_VERIFY: mps = (GMimeMultipartSigned *)obj; break; case GPG_DECODE: mpe = (GMimeMultipartEncrypted *)obj; break; } info.clear(); if (info.type == GPG_VERIFY) { GMimeSignatureList * sigs = g_mime_multipart_signed_verify (mps, GMIME_VERIFY_NONE, &info.err); if (info.err || !sigs) return false; if (sigs) info.no_sigs = false; fill_signer_info(info.signers, sigs); bool status = get_sig_status(sigs) == GMIME_SIGNATURE_STATUS_VALID; g_object_unref(sigs); return status; } if (info.type == GPG_DECODE) { info.decrypted = g_mime_multipart_encrypted_decrypt (mpe, GMIME_DECRYPT_NONE, nullptr, &info.result, &info.err); if (!info.decrypted) if (info.err) return false; GMimeSignatureList * sigs = g_mime_decrypt_result_get_signatures (info.result); if (sigs) { info.no_sigs = false; fill_signer_info(info.signers, sigs); bool status = get_sig_status(info.result->signatures) == GMIME_SIGNATURE_STATUS_VALID; g_object_unref(sigs); return status; } return !info.err; } return true; } enum { GMIME_MULTIPART_SIGNED_CONTENT, GMIME_MULTIPART_SIGNED_SIGNATURE }; bool message_add_signed_part (const std::string& uid, const std::string& body_str, GMimeMessage* body) { if (uid.empty()) return false; GMimeMultipartSigned *mps; GError* err(nullptr); GMimePart* part = g_mime_part_new_with_type("text", "plain"); mime_part_set_content (part, body_str.c_str()); mps = g_mime_multipart_signed_new (); /* sign the part */ GMimeObject *gmo; gmo = g_mime_message_get_mime_part (body); mps = g_mime_multipart_signed_sign (gpg_ctx, gmo, uid.c_str(), &err); if (mps == nullptr) { g_object_unref(mps); g_object_unref(G_OBJECT(part)); return false; } /* GMIME _dirty_ hack : set filename for signature attachment */ /// FIXME : gets scrambled somehow, but _atm_ i don't care .... GMimeObject * signature = g_mime_multipart_get_part (GMIME_MULTIPART (mps), GMIME_MULTIPART_SIGNED_SIGNATURE); g_mime_part_set_filename (GMIME_PART(signature), "signature.asc"); g_mime_message_set_mime_part(body,GMIME_OBJECT(mps)); g_object_unref(G_OBJECT(part)); g_object_unref(mps); return true; } bool gpg_encrypt (const std::string& uid, const std::string& body_str, GMimeMessage* body, GPtrArray* rcp, bool sign) { GError* err(nullptr); GMimePart* part = g_mime_part_new_with_type("text", "plain"); mime_part_set_content (part, body_str.c_str()); GMimeMultipartEncrypted * mpe = g_mime_multipart_encrypted_new(); GMimeMultipartEncrypted *gmme; gmme = g_mime_multipart_encrypted_encrypt(gpg_ctx, GMIME_OBJECT (part), sign, uid.c_str(), GMIME_ENCRYPT_NONE, rcp, &err); if (gmme == nullptr) { g_object_unref(mpe); g_object_unref(G_OBJECT(part)); g_object_unref(gmme); return false; } g_mime_message_set_mime_part(body,GMIME_OBJECT(mpe)); g_object_unref(G_OBJECT(part)); g_object_unref(mpe); g_object_unref(gmme); return true; } #endif } pan-0.162/pan/usenet-utils/mime-utils.h000066400000000000000000000103401475412772400177700ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #ifndef _UtilMime_h_ #define _UtilMime_h_ #include #include #include #include #include #include #include #include #include /*** **** YENC ***/ #define YENC_MARKER_BEGIN "=ybegin" #define YENC_MARKER_BEGIN_LEN 7 #define YENC_MARKER_PART "=ypart" #define YENC_MARKER_PART_LEN 6 #define YENC_MARKER_END "=yend" #define YENC_MARKER_END_LEN 5 #define YENC_TAG_PART " part=" #define YENC_TAG_LINE " line=" #define YENC_TAG_SIZE " size=" #define YENC_TAG_NAME " name=" #define YENC_TAG_BEGIN " begin=" #define YENC_TAG_END " end=" #define YENC_TAG_PCRC32 " pcrc32=" #define YENC_TAG_CRC32 " crc32=" #define YENC_FULL_LINE_LEN 256 #define YENC_HALF_LINE_LEN 128 #define YENC_ESC_NULL "=@" #define YENC_ESC_TAB "=I" #define YENC_ESC_LF "=J" #define YENC_ESC_CR "=M" #define YENC_ESC_ESC "={" #define YENC_SHIFT 42 #define YENC_QUOTE_SHIFT 64 #define NEEDS_DECODING(encoding) ((encoding == GMIME_CONTENT_ENCODING_BASE64) || \ (encoding == GMIME_CONTENT_ENCODING_QUOTEDPRINTABLE)) namespace pan { #ifdef HAVE_GMIME_CRYPTO bool message_add_signed_part (const std::string& uid, const std::string& body_str, GMimeMessage* body); bool gpg_encrypt (const std::string& uid, const std::string& body_str, GMimeMessage* body, GPtrArray* rcp, bool sign); bool gpg_verify_mps (GMimeObject*, GPGDecErr&); #endif /** * Utilities to build and parse GMimeMessages. * * Most of this nastiness is to handle Usenet's use of chainging together * multiple articles as parts of a whole. This code tries to build * a multipart GMimeMessage from multiple posts when necessary, and to * also handle Usenet's loose standards for uu/yenc by checking each line * to separate the encoded stuff from text. */ struct mime { #ifdef HAVE_GMIME_CRYPTO static GMimeMessage * construct_message (GMimeStream ** istreams, unsigned int qty, GPGDecErr &); #else static GMimeMessage * construct_message (GMimeStream ** istreams, unsigned int qty); #endif static const char * get_charset (GMimeMessage * message); static void guess_part_type_from_filename (const char * filename, const char ** setme_type, const char ** setme_subtype); static void remove_multipart_from_subject (const StringView & subject, std::string & setme); static void remove_multipart_part_from_subject (const StringView & subject, std::string & setme); }; char *pan_g_mime_message_get_body (GMimeMessage *message, gboolean *is_html); void pan_g_mime_message_add_recipients_from_string (GMimeMessage *message, GMimeAddressType type, const char *string); std::string pan_g_mime_message_set_message_id (GMimeMessage *msg, const char *mid); extern iconv_t conv; extern bool iconv_inited; static char * __g_mime_iconv_strdup (iconv_t cd, const char *str, const char* charset=nullptr) { return g_mime_iconv_strndup(cd, str, strlen(str)); } } #endif pan-0.162/pan/usenet-utils/numbers-test.cc000066400000000000000000000167661475412772400205130ustar00rootroot00000000000000#include "numbers.h" #include #include #include #include #include #include using namespace pan; int main(void) { Numbers n; n.mark_str("0-1641"); check(n.to_string() == "0-1641") n.mark_range( static_cast(0), static_cast(1586), false); std::cerr << "n.to_string() == " << n.to_string() << std::endl; check(n.to_string() == "1587-1641") /* simple test */ n.clear(); n.mark_str("1-20,100,102,200-300"); check(n.is_marked(static_cast(1))) /* testing boundaries */ check(n.is_marked(static_cast(19))) check(n.is_marked(static_cast(20))) check(! n.is_marked(static_cast(21))) /* more boundary testing */ check(n.is_marked(static_cast(100))) check(! n.is_marked(static_cast(101))) check(n.is_marked(static_cast(102))) /* make sure marking read doesn't corrupt boundaries */ bool b = n.mark_one(static_cast(101)); check(! b) check(! n.is_marked(static_cast(99))) check(n.is_marked(static_cast(100))) check(n.is_marked(static_cast(101))) check(n.is_marked(static_cast(102))) check(! n.is_marked(static_cast(103))) /* make sure marking unread doesn't corrupt boundaries */ b = n.mark_one(static_cast(101), false); check(b) check(! n.is_marked(static_cast(99))) check(n.is_marked(static_cast(100))) check(! n.is_marked(static_cast(101))) check(n.is_marked(static_cast(102))) check(! n.is_marked(static_cast(103))) /* newsrc_get_read_str */ n.clear(); n.mark_str("1-20,100,102,200-300"); check(n.to_string() == "1-20,100,102,200-300") b = n.mark_one(static_cast(15), false); check(b != false) check(n.to_string() == "1-14,16-20,100,102,200-300") b = n.mark_one(static_cast(101)); check(b == false) check(n.to_string() == "1-14,16-20,100-102,200-300") b = n.mark_one(static_cast(103)); check(b == false) check(n.to_string() == "1-14,16-20,100-103,200-300") b = n.mark_one(static_cast(105)); check(b == false) check(n.to_string() == "1-14,16-20,100-103,105,200-300") /* newsrc_mark_range */ n.clear(); n.mark_str("1-1000"); Article_Count i = n.mark_range( static_cast(100), static_cast(199), false); check(i == static_cast(100)); check(n.to_string() == "1-99,200-1000") i = n.mark_range(static_cast(100), static_cast(199)); check(i == static_cast(100)) check(n.to_string() == "1-1000") n.clear(); n.mark_str("1-500"); i = n.mark_range(static_cast(400), static_cast(800)); check(i == static_cast(300)) check(n.to_string() == "1-800") n.clear(); n.mark_str("250-500"); i = n.mark_range(static_cast(100), static_cast(400)); check(i == static_cast(150)) check(n.to_string() == "100-500") n.clear(); n.mark_str("250-500"); i = n.mark_range(static_cast(100), static_cast(600)); check(i == static_cast(250)) check(n.to_string() == "100-600") n.clear(); n.mark_str("100-500"); i = n.mark_range( static_cast(50), static_cast(600), false); check(i == static_cast(401)) check(n.to_string().empty()) n.clear(); n.mark_str("100-500"); i = n.mark_range( static_cast(50), static_cast(200), false); check(i == static_cast(101)) check(n.to_string() == "201-500") n.clear(); n.mark_str("100-500"); i = n.mark_range( static_cast(400), static_cast(600), false); check(i == static_cast(101)) check(n.to_string() == "100-399") n.clear(); n.mark_str("1-50,100-150,200-250,300-350"); i = n.mark_range( static_cast(75), static_cast(275), false); check(i == static_cast(102)) check(n.to_string() == "1-50,300-350") n.clear(); n.mark_str("1-50,100-150,200-250,300-350"); i = n.mark_range( static_cast(75), static_cast(300), false); check(i == static_cast(103)) check(n.to_string() == "1-50,301-350") n.clear(); n.mark_str("250-500"); i = n.mark_range( static_cast(600), static_cast(700), false); check(i == static_cast(0)) check(n.to_string() == "250-500") i = n.mark_range( static_cast(50), static_cast(200), false); check(i == static_cast(0)) check(n.to_string() == "250-500") n.clear(); n.mark_str("1-498,500-599,601-1000"); i = n.mark_range( static_cast(500), static_cast(599), false); check(i == static_cast(100)) check(n.to_string() == "1-498,601-1000") n.clear(); n.mark_str("1-498,500-599,601-1000"); i = n.mark_range( static_cast(498), static_cast(601), false); check(i == static_cast(102)) check(n.to_string() == "1-497,602-1000") n.clear(); n.mark_str("1-498,500-599,601-1000"); i = n.mark_range( static_cast(499), static_cast(601), false); check(i == static_cast(101)) check(n.to_string() == "1-498,602-1000") // Janus Sandsgaard reported this one against 0.9.7pre5 n.clear(); n.mark_str("17577-17578,17581-17582,17589-17590"); i = n.mark_range(static_cast(17578), static_cast(17578)); check(i == static_cast(0)) check(n.to_string() == "17577-17578,17581-17582,17589-17590") // Jiri Kubicek reported this one against 0.11.2.90 n.clear(); n.mark_range(static_cast(1), static_cast(4)); n.mark_range(static_cast(7), static_cast(9)); n.mark_range( static_cast(3), static_cast(4), false); check(n.to_string() == "1-2,7-9") // found this during a code review for 0.12.90 n.clear(); n.mark_str("1-75, 100-120, 150-200"); i = n.mark_range(static_cast(50), static_cast(175)); check(i == static_cast(53)) check(n.to_string() == "1-200") #if 0 // newsrc_set_group_range // note that after a mark all, the lower bound is 0. // this follows newsrc conventions. n.clear (); n.mark_str ("1-20,100,102,200-300"); n.set_range (15, 220); check (n.to_string() == "15-20,100,102,200-220") n.set_range (50, 219); check (n.to_string() == "100,102,200-219") n.set_range (10, 1000); check (n.to_string() == "100,102,200-219") n.mark_all (true); check (n.to_string() == "0-1000") #endif // https://bugzilla.gnome.org/show_bug.cgi?id=77878 n.clear(); n.mark_range(static_cast(1), static_cast(4)); n.mark_range(static_cast(7), static_cast(9)); n.mark_range( static_cast(3), static_cast(4), false); check(n.to_string() == "1-2,7-9") // success return 0; } pan-0.162/pan/usenet-utils/numbers.cc000066400000000000000000000157711475412772400175310ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #include #include #include // snprintf #include #include #include "numbers.h" using namespace pan; /***** ****** MARK (PRIVATE) *****/ namespace { typedef Numbers::ranges_t::iterator r_it; typedef Numbers::ranges_t::const_iterator r_cit; bool maybe_merge_ranges (Numbers::ranges_t & ranges, Numbers::ranges_t::size_type low) { bool merged = false; if (low+2<=ranges.size()) { Numbers::Range & r1 = ranges[low]; Numbers::Range & r2 = ranges[low+1]; if (r1.high+1 == r2.low) { r2.low = r1.low; ranges.erase (ranges.begin() + low); merged = true; } } return merged; } }; /** * @return the number of articles newly-marked as read */ Article_Count Numbers :: mark_range (const Range& rr) { ranges_t::size_type i; Article_Count retval{0}; bool range_found = false; ranges_t::size_type low_index (std::lower_bound (_marked.begin(), _marked.end(), rr.low) - _marked.begin()); ranges_t::size_type high_index (std::lower_bound (_marked.begin(), _marked.end(), rr.high) - _marked.begin()); retval = rr.high + 1 - rr.low; for (i=low_index; i<=high_index && i<_marked.size(); ++i) { Range& r = _marked[i]; if (rr.contains (r)) /* read range is engulfed; remove */ { retval -= r.high+1 - r.low; /* remove r from retval */ _marked.erase (_marked.begin() + i); --high_index; --i; } else if (r.contains (rr)) /* no-op */ { retval = static_cast(0); range_found = true; } else if (r.contains (rr.high)) /* change low */ { Range * prev = !i ? NULL : &_marked[i-1]; range_found = true; retval -= rr.high+1 - r.low; /* remove intersection from retval */ r.low = prev ? std::max(rr.low, prev->high+1) : rr.low; } else if (r.contains (rr.low)) /* change high */ { Range * next = i==_marked.size()-1 ? NULL : &_marked[i+1]; range_found = true; retval -= r.high+1 - rr.low; /* remove intersection from retval */ r.high = next ? std::min(rr.high, next->low-1) : rr.high; } } if (!range_found) { _marked.insert (_marked.begin()+low_index, rr); if (low_index!=0) --low_index; ++high_index; } for (i=low_index; i<=high_index && i<_marked.size(); ) { if (maybe_merge_ranges (_marked, i)) --high_index; else ++i; } return retval; } Article_Count Numbers :: unmark_range (const Range& ur) { Article_Count retval{0}; ranges_t::size_type i; ranges_t::size_type low_index (std::lower_bound (_marked.begin(), _marked.end(), ur.low) - _marked.begin()); ranges_t::size_type high_index (std::lower_bound (_marked.begin(), _marked.end(), ur.high) - _marked.begin ()); for (i=low_index; i<=high_index && i<_marked.size(); ) { Range& r (_marked[i]); if (ur.contains (r)) // remove { retval += (r.high+1) - r.low; _marked.erase (_marked.begin() + i); --high_index; } else if (r.low!=ur.low && r.high!=ur.high && r.contains(ur)) // split { const Range range (ur.high+1, r.high); r.high = ur.low-1; retval += ur.high+1-ur.low; _marked.insert (_marked.begin()+low_index+1, range); ++high_index; i += 2; } else if (ur.low!=r.low && r.contains(ur.low)) // change high { retval += r.high+1 - ur.low; r.high = ur.low-1; ++i; } else if (ur.high!=r.high && r.contains(ur.high)) // change low { retval += ur.high+1 - r.low; r.low = ur.high+1; ++i; } else ++i; } return retval; } /***** ****** MARK (PUBLIC) *****/ Article_Count Numbers :: mark_range (Article_Number low, Article_Number high, bool add) { const Range r (low, high); return add ? mark_range(r) : unmark_range(r); } bool Numbers :: mark_one (Article_Number number, bool add) { const Article_Count changed_qty (mark_range (number, number, add)); if (add) return static_cast(changed_qty)==0; else /* remove */ return static_cast(changed_qty)!=0; } void Numbers :: mark_str (const StringView& str, bool add) { StringView phigh, p(str); while (p.pop_token (phigh, ',')) { StringView plow; phigh.pop_token (plow, '-'); plow.trim (); phigh.trim (); const Article_Number low{plow}; const Article_Number high = phigh.empty() ? low : Article_Number(phigh); mark_range (low, high, add); } } void Numbers :: clear () { _marked.clear (); } /***** ****** *****/ void Numbers :: clip (Article_Number low, Article_Number high) { r_it it = std::lower_bound (_marked.begin(), _marked.end(), low); _marked.erase (_marked.begin(), it); if (!_marked.empty() && _marked.front().contains(low)) _marked.front().low = low; it = std::lower_bound (_marked.begin(), _marked.end(), high); if (it != _marked.end()) _marked.erase (it+1, _marked.end()); if (!_marked.empty() && _marked.back().contains(high)) _marked.back().high = high; } /***** ****** *****/ bool Numbers :: is_marked (Article_Number number) const { r_cit it = std::lower_bound (_marked.begin(), _marked.end(), number); return it!=_marked.end() && it->contains(number); } std::string Numbers :: to_string () const { std::string tmp; to_string (tmp); return tmp; } void Numbers :: to_string (std::string & str) const { std::string temp; int bytes; char buf[64]; temp.reserve(24 * _marked.size() ); for (r_cit it=_marked.begin(), end=_marked.end(); it!=end; ++it) { Range r (*it); if (r.low == r.high) bytes = g_snprintf (buf, sizeof(buf), "%" G_GUINT64_FORMAT",", static_cast(r.low)); else bytes = g_snprintf (buf, sizeof(buf), "%" G_GUINT64_FORMAT"-%" G_GUINT64_FORMAT",", static_cast(r.low), static_cast(r.high)); temp.append(buf, bytes); } if (!temp.empty()) str.append(temp.begin(), --temp.end()); // remove final comma } pan-0.162/pan/usenet-utils/numbers.h000066400000000000000000000100451475412772400173600ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #ifndef __Numbers_h__ #define __Numbers_h__ #include #include #include #include class string; namespace pan { /** * Builds a range of numbers. Used for reading/writing newsrc strings. * * @ingroup usenet_utils */ class Numbers { public: /** Simple two-field struct defining a range. */ struct Range { Article_Number low; Article_Number high; bool operator ==(const Range& that) const { return low==that.low && high==that.high; } Range (): low(static_cast(0)), high(static_cast(0)) {} Range (Article_Number l, Article_Number h): low(ll?h:l) {} bool contains (Article_Number point) const { return low<=point && point<=high; } bool contains (const Range& r) const { return low<=r.low && r.high<=high; } int compare (Article_Number point) const { if (point < low) return -1; if (point > high) return 1; return 0; } bool operator< (Article_Number point) const { return high < point; } }; typedef std::vector ranges_t; private: ranges_t _marked; Article_Count mark_range (const Range&); Article_Count unmark_range (const Range&); public: bool operator== (const Numbers& that) const { return _marked == that._marked; } Numbers () { _marked.reserve(16);} ~Numbers () { } public: /** * Add or remove the specified number from the set. * numbers outside the range [range_low...range_high] are ignored. * * @param number the number to add or remove. * @param add true if we're adding the number, false if removing * @return the number's previous state in the set. */ bool mark_one (Article_Number number, bool add=true); /** * Add or remove the specified range of numbers from the set. * numbers outside the range [range_low...range_high] are ignored. * * @param low the lower bound, inclusive, of the range we're changing. * @param high the upper bound, inclusive, of the range we're changing. * @param add true if we're adding the numbers, false if removing * @return the quantity of numbers whose presence in the set changed. */ Article_Count mark_range (Article_Number low, Article_Number high, bool add=true); /** * Mark numbers from a text string in to_str() and from_str() fromat. * @param numbers ascii-formatted string of numbers to mark. * @param add true if we're adding the numbers, false if removing */ void mark_str (const StringView& str, bool add=true); /** * @return true if the number is in this set, false otherwise */ bool is_marked (const Article_Number) const; void clear (); public: bool from_string (const char *); std::string to_string () const; void to_string (std::string& setme) const; operator std::string () const { return to_string(); } public: void clip (const Article_Number low, const Article_Number high); }; } #endif /* __Numbers_h__ */ pan-0.162/pan/usenet-utils/rules-info.cc000066400000000000000000000061411475412772400201300ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #include #include #include #include #include #include #include "rules-info.h" using namespace pan; /*** **** ***/ /* * Copy-and-swap idiom according to * http://stackoverflow.com/questions/3279543/what-is-the-copy-and-swap-idiom */ RulesInfo :: RulesInfo (const RulesInfo &that) : _type(that._type) , _negate(that._negate) , _ge(that._ge) , _lb(that._lb) , _hb(that._hb) { foreach_const (aggregatesp_t, that._aggregates, it) { _aggregates.push_back (new RulesInfo(**it)); } } void swap (RulesInfo &first, RulesInfo &second) { using std::swap; swap (first._type, second._type); swap (first._aggregates, second._aggregates); swap (first._negate, second._negate); swap (first._ge, second._ge); swap (first._lb, second._lb); swap (first._hb, second._hb); } RulesInfo &RulesInfo::operator = (RulesInfo other) { swap (*this, other); return *this; } RulesInfo :: ~RulesInfo () { foreach (aggregatesp_t, _aggregates, it) { delete *it; } } void RulesInfo :: clear () { _type = RulesInfo::TYPE__ERR; foreach (aggregatesp_t, _aggregates, it) { delete *it; } _aggregates.clear (); _lb = _hb = 0; _ge = 0; _negate = false; } void RulesInfo :: set_type_is (RulesType type) { clear (); _type = type; } void RulesInfo :: set_type_ge (RulesType type, unsigned long ge) { clear (); _type = type; _ge = ge; } void RulesInfo :: set_type_le (RulesType type, unsigned long le) { clear (); _type = type; _negate = true; _ge = le+1; // le N == !ge N+1 } void RulesInfo :: set_type_bounds (RulesType type, int low, int high) { clear (); _type = type; _lb = low; _hb = high; } void RulesInfo :: set_type_aggregate_and () { clear (); _type = AGGREGATE__AND; } void RulesInfo :: set_type_aggregate_or () { clear (); _type = AGGREGATE__OR; } /**** ***** ****/ void RulesInfo :: set_type_mark_read_b (int lb, int hb) { set_type_bounds (MARK_READ, lb, hb); } void RulesInfo :: set_type_autocache_b (int lb, int hb) { set_type_bounds (AUTOCACHE, lb, hb); } void RulesInfo :: set_type_dl_b (int lb, int hb) { set_type_bounds (AUTODOWNLOAD, lb, hb); } void RulesInfo :: set_type_delete_b (int lb, int hb) { set_type_bounds (DELETE_ARTICLE, lb, hb); } pan-0.162/pan/usenet-utils/rules-info.h000066400000000000000000000054671475412772400200040ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #ifndef __Rules_Info_h__ #define __Rules_Info_h__ #include #include #include #include /** * Pre-declaring swap(...) is a bit involved, given the use * of the namespace pan and it needs to be outside. */ namespace pan { class RulesInfo; }; void swap(pan::RulesInfo &first, pan::RulesInfo &second); namespace pan { /** * Interface class describing a filter that can be applied to a set of articles. * @ingroup usenet_utils */ class RulesInfo { public: /** The different type of filters we support. */ enum RulesType { TYPE__ERR, AGGREGATE__AND, AGGREGATE__OR, MARK_READ, AUTOCACHE, AUTODOWNLOAD, DELETE_ARTICLE }; /** Defines what type of filter this is. */ RulesType _type; bool empty() const { return _type == TYPE__ERR; } RulesInfo () { clear(); } RulesInfo (const RulesInfo &that); friend void ::swap (RulesInfo &first, RulesInfo &second); RulesInfo &operator = (RulesInfo other); virtual ~RulesInfo (); /** Convenience typedef. */ typedef std::deque aggregatesp_t; /** When `_type' is AGGREGATE_OR or AGGREGATE_AND, these are the filters being or'ed or and'ed together. */ aggregatesp_t _aggregates; /** When this is true, the results of the test should be negated. */ bool _negate; private: void set_type_is (RulesType type); void set_type_le (RulesType type, unsigned long le); void set_type_ge (RulesType type, unsigned long ge); void set_type_bounds (RulesType type, int low, int high); public: unsigned long _ge; int _lb, _hb; void clear (); void set_type_aggregate_and (); void set_type_aggregate_or (); void set_type_mark_read_b (int lb, int hb); void set_type_autocache_b (int lb, int hb); void set_type_dl_b (int lb, int hb); void set_type_delete_b (int lb, int hb); }; } #endif pan-0.162/pan/usenet-utils/scorefile-test.cc000066400000000000000000000262761475412772400210100ustar00rootroot00000000000000#include "scorefile.h" #include #include #include #include #include #include using namespace pan; struct MyFilenameToReader : public Scorefile::FilenameToReader { virtual ~MyFilenameToReader() { } typedef std::map files_t; files_t files; LineReader *operator()(StringView const &filename) const override { files_t::const_iterator it(files.find(filename)); assert(it != files.end() && "wrong filename!"); return new ScriptedLineReader(it->second); } }; int main() { MyFilenameToReader *my_ftr = new MyFilenameToReader(); std::string const filename = "/home/charles/News/Score"; my_ftr->files[filename] = "\n" "[news.software.readers]\n" // line 2 " Score: =1000\n" " % All pan articles are good\n" " Subject: pan\n" "\n" " score: =900\n" // line 7 " % and slrn's not bad either\n" " Subject: slrn\n" "\n" " Score: 9999\n" // line 11 " %% Test the Has-Body keyword: mark anything cached as Watched.\n" " Has-Body: 1\n" "\n" " Score:: -100\n" // line 15 " # Let''s try some other tests. score down short articles.\n" " ~Lines: 10\n" " ~Bytes: 80\n" "\n" " Score: 222\n" // line 20 " % Test the Age keyword: Raise the score of anything posted yesterday " "or today.\n" " Age: 1\n" "\n" " Score: -333\n" // line 24 " %% Test negated age: Lower the score of anything more than a week " "old.\n" " ~Age: 7\n" "\n" " Score: -9999\n" // line 28 " %% Test ands\n" " Xref: advocacy\n" " ~From= Linus\n" "\n" "[alt.religion.kibology, comp.lang.*]\n" "\n" " Score:: -1000\n" // line 35 " ~Subject: \\c[a-z]\n" " {:\n" " Subject: ^Re:\n" " ~Subject: ^Re:.*\\c[a-z]\n" " }\n" " {::\n" " Subject: ^Fwd:\n" " ~Subject= ^Fwd:.*\\c[a-z]\n" " }\n" "\n" "[alt.filters]\n" " Score: -10\n" " foo: filter\n"; Scorefile scorefile(my_ftr); scorefile.parse_file(filename); Scorefile::sections_t const §ions(scorefile.get_sections()); check_eq(sections.size(), 3) Scorefile::Section const §ion(sections[0]); check(! section.negate) check_eq(section.name, "news.software.readers") check_eq(section.items.size(), 7) Scorefile::Item item(section.items[0]); check_eq(item.filename, filename) check_eq(item.begin_line, 3) check_eq(item.end_line, 5) check_eq(item.value, 1000) check(item.value_assign_flag) check_eq(item.expired, false) check_eq(item.expired, false) check_eq(item.test._type, FilterInfo::TEXT) check_eq(item.test._header, "Subject") check_eq(item.test._text.get_state().type, TextMatch::REGEX) check_eq(item.test._text.get_state().case_sensitive, false) check_eq(item.test._text.get_state().negate, false) check_eq(item.test._text.get_state().text, "pan") item = section.items[1]; check_eq(item.filename, filename) check_eq(item.begin_line, 7) check_eq(item.end_line, 9) check_eq(item.value, 900) check(item.value_assign_flag) check_eq(item.expired, false) check_eq(item.expired, false) check_eq(item.test._type, FilterInfo::TEXT) check_eq(item.test._header, "Subject") check_eq(item.test._text.get_state().type, TextMatch::REGEX) check_eq(item.test._text.get_state().case_sensitive, false) check_eq(item.test._text.get_state().negate, false) check_eq(item.test._text.get_state().text, "slrn") // " Score: 9999\n" // line 11 // " %% Test the Has-Body keyword: mark anything cached as Watched.\n" // " Has-Body: 1\n" item = section.items[2]; check_eq(item.filename, filename) check_eq(item.begin_line, 11) check_eq(item.end_line, 13) check_eq(item.value, 9999) check_eq(item.value_assign_flag, false) check_eq(item.expired, false) check_eq(item.test._type, FilterInfo::IS_CACHED) // " Score: -100\n" // line 15 // " %% Let''s try some other tests. score down short articles.\n" // " ~Lines: 10\n" // " ~Bytes: 80\n" item = section.items[3]; check_eq(item.filename, filename) check_eq(item.begin_line, 15) check_eq(item.end_line, 18) check_eq(item.value, -100) check_eq(item.value_assign_flag, false) check_eq(item.expired, false) check_eq(item.test._type, FilterInfo::AGGREGATE_OR) check_eq(item.test._aggregates.size(), 2) check_eq(item.test._aggregates[0]->_type, FilterInfo::LINE_COUNT_GE) check_eq(item.test._aggregates[0]->_ge, 11) check(item.test._aggregates[0]->_negate != false) check_eq(item.test._aggregates[1]->_type, FilterInfo::BYTE_COUNT_GE) check_eq(item.test._aggregates[1]->_ge, 81) check(item.test._aggregates[1]->_negate != false) // " Score: 222\n" // line 20 // " %% Test the Age keyword: Raise the score of anything posted yesterday // or today.\n" " Age: 1\n" item = section.items[4]; check_eq(item.filename, filename); check_eq(item.begin_line, 20) check_eq(item.end_line, 22) check_eq(item.value, 222) check_eq(item.value_assign_flag, false) check_eq(item.expired, false) check(item.test._negate != false) check_eq(item.test._type, FilterInfo::DAYS_OLD_GE) check_eq(item.test._ge, 2) // " Score: -333\n" // line 24 // " %% Test negated age: Lower the score of anything more than a week // old.\n" " ~Age: 7\n"; item = section.items[5]; check_eq(item.filename, filename); check_eq(item.begin_line, 24) check_eq(item.end_line, 26) check_eq(item.value, -333) check_eq(item.value_assign_flag, false) check_eq(item.expired, false) check_eq(item.test._negate, false) check_eq(item.test._type, FilterInfo::DAYS_OLD_GE) check_eq(item.test._ge, 8) // " Score: -9999\n" // line 27 // " %% Test ands\n" // " Xref: advocacy\n" // " ~From= Linus\n" // "\n" item = section.items[6]; check_eq(item.filename, filename); check_eq(item.begin_line, 28) check_eq(item.end_line, 31) check_eq(item.value, -9999) check_eq(item.value_assign_flag, false) check_eq(item.expired, false) check_eq(item.test._type, FilterInfo::AGGREGATE_AND) check_eq(item.test._aggregates.size(), 2) check_eq(item.test._aggregates[0]->_type, FilterInfo::TEXT) check_eq(item.test._aggregates[0]->_header, "Xref") check_eq(item.test._aggregates[0]->_negate, false) check_eq(item.test._aggregates[0]->_text.get_state().type, TextMatch::REGEX) check_eq(item.test._aggregates[0]->_text.get_state().case_sensitive, false) check_eq(item.test._aggregates[0]->_text.get_state().negate, false) check_eq(item.test._aggregates[0]->_text.get_state().text, "advocacy") check_eq(item.test._aggregates[1]->_type, FilterInfo::TEXT) check_eq(item.test._aggregates[1]->_header, "From") check_eq(item.test._aggregates[1]->_negate, true) check_eq(item.test._aggregates[1]->_text.get_state().type, TextMatch::REGEX) check_eq(item.test._aggregates[1]->_text.get_state().case_sensitive, true) check_eq(item.test._aggregates[1]->_text.get_state().negate, false) check_eq(item.test._aggregates[1]->_text.get_state().text, "Linus") /* "[alt.religion.kibology, comp.lang.*]\n" "\n" " Score:: -1000\n" // line 35 " ~Subject: \\c[a-z]\n" " {:\n" " Subject: ^Re:\n" " ~Subject: ^Re:.*\\c[a-z]\n" " }\n" " {::\n" " Subject: ^Fwd:\n" " ~Subject= ^Fwd:.*\\c[a-z]\n" " }\n" "\n" */ Scorefile::Section const &s(sections[1]); check_eq(s.negate, false) check_eq(s.name, "alt.religion.kibology, comp.lang.*") check_eq(s.items.size(), 1) check_eq(s.groups.size(), 2) check_eq(s.groups[0].get_state().type, TextMatch::REGEX) check_eq(s.groups[0].get_state().case_sensitive, true) check_eq(s.groups[0].get_state().negate, false) check_eq(s.groups[0].get_state().text, "^alt\\.religion\\.kibology$") check_eq(s.groups[1].get_state().type, TextMatch::REGEX) check_eq(s.groups[1].get_state().case_sensitive, true) check_eq(s.groups[1].get_state().negate, false) check_eq(s.groups[1].get_state().text, "^comp\\.lang\\..*$") item = s.items[0]; check_eq(item.filename, filename) check_eq(item.begin_line, 35) check_eq(item.end_line, 44) check_eq(item.value, -1000) check_eq(item.value_assign_flag, false) check_eq(item.expired, false) check_eq(item.test._type, FilterInfo::AGGREGATE_OR) check_eq(item.test._aggregates.size(), 3) check_eq(item.test._aggregates[0]->_type, FilterInfo::TEXT) check(item.test._aggregates[0]->_negate) check_eq(item.test._aggregates[0]->_text.get_state().type, TextMatch::REGEX) check_eq(item.test._aggregates[0]->_text.get_state().negate, false) check_eq(item.test._aggregates[0]->_text.get_state().text, "\\c[a-z]") // check_eq(item.test._aggregates[1]->_type, FilterInfo::AGGREGATE_AND) check_eq(item.test._aggregates[1]->_aggregates.size(), 2) check_eq(item.test._aggregates[1]->_aggregates[0]->_type, FilterInfo::TEXT) check_eq(item.test._aggregates[1]->_aggregates[0]->_negate, false) check_eq(item.test._aggregates[1]->_aggregates[0]->_text.get_state().type, TextMatch::REGEX) check_eq(item.test._aggregates[1]->_aggregates[0]->_text.get_state().negate, false) check_eq( item.test._aggregates[1]->_aggregates[0]->_text.get_state().case_sensitive, false) check_eq(item.test._aggregates[1]->_aggregates[0]->_text.get_state().text, "^Re:") check_eq(item.test._aggregates[1]->_aggregates[1]->_type, FilterInfo::TEXT) check(item.test._aggregates[1]->_aggregates[1]->_negate) check_eq(item.test._aggregates[1]->_aggregates[1]->_text.get_state().type, TextMatch::REGEX) check_eq( item.test._aggregates[1]->_aggregates[1]->_text.get_state().case_sensitive, false) check_eq(item.test._aggregates[1]->_aggregates[1]->_text.get_state().text, "^Re:.*\\c[a-z]") // check_eq(item.test._aggregates[2]->_type, FilterInfo::AGGREGATE_OR) check_eq(item.test._aggregates[2]->_aggregates.size(), 2) check_eq(item.test._aggregates[2]->_aggregates[0]->_type, FilterInfo::TEXT) check_eq(item.test._aggregates[2]->_aggregates[0]->_negate, false) check_eq(item.test._aggregates[2]->_aggregates[0]->_text.get_state().type, TextMatch::REGEX) check_eq(item.test._aggregates[2]->_aggregates[0]->_text.get_state().negate, false) check_eq( item.test._aggregates[2]->_aggregates[0]->_text.get_state().case_sensitive, false) check_eq(item.test._aggregates[2]->_aggregates[0]->_text.get_state().text, "^Fwd:") check_eq(item.test._aggregates[2]->_aggregates[1]->_type, FilterInfo::TEXT) check(item.test._aggregates[2]->_aggregates[1]->_negate) check_eq(item.test._aggregates[2]->_aggregates[1]->_text.get_state().type, TextMatch::REGEX) check_eq( item.test._aggregates[2]->_aggregates[1]->_text.get_state().case_sensitive, true) check_eq(item.test._aggregates[2]->_aggregates[1]->_text.get_state().text, "^Fwd:.*\\c[a-z]") // "[alt.filters]\n" // " Score: -10\n" // " foo: filter\n"; Scorefile::Section const &s3(sections[2]); check_eq(s3.negate, false) check_eq(s3.name, "alt.filters") check_eq(s3.items.size(), 1) item = s3.items[0]; check_eq(item.test._needs_body, true) return 0; } pan-0.162/pan/usenet-utils/scorefile.cc000066400000000000000000000356651475412772400200350ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #include "scorefile.h" #include "filter-info.h" #include #include #include #include // std::replace #include // atoi, strtoul #include #include #include namespace pan { /** *** Age **/ namespace { unsigned long get_today() { const time_t now(time(nullptr)); struct tm t(*localtime(&now)); return (t.tm_year * 10000) + (t.tm_mon * 100) + t.tm_mday; } } // namespace /**** ***** ***** Parsing the scorefile ***** ****/ /** * private Scorefile class used when reading scorefiles from disk. */ class Scorefile::ParseContext { public: ParseContext() : current_section(nullptr), today(get_today()) { } Scorefile::Item *get_current_item() { Scorefile::Item *ret(nullptr); if (current_section != nullptr && ! current_section->items.empty()) { ret = ¤t_section->items.back(); } return ret; } FilterInfo *get_current_test() { FilterInfo *test(nullptr); Scorefile::Item *item(get_current_item()); if (item) { test = &item->test; if (test) { for (auto offset : test_offsets) { test = test->_aggregates[offset]; } } } return test; } void update_item_end_line(size_t line_number) { Scorefile::Item *item(get_current_item()); if (item) { item->end_line = line_number; } } /** * 0 if it has not expired * 1 if it has expired * -1 if an error occurred while parsing */ int has_score_expired(StringView const &v) { if (v.empty()) { return 0; } const std::string tmp(v.str, v.len); // ensure zero termination for sscanf unsigned long mm, dd, yyyy; if (((3 != sscanf(tmp.c_str(), "%lu/%lu/%lu", &mm, &dd, &yyyy)) && (3 != sscanf(tmp.c_str(), "%lu-%lu-%lu", &dd, &mm, &yyyy))) || (dd > 31) || (mm > 12) || (yyyy < 1900)) { return -1; } unsigned long score_time = (yyyy - 1900) * 10000 + (mm - 1) * 100 + dd; return score_time <= today ? 1 : 0; } /** The current Section object, or NULL if none. */ Scorefile::Section *current_section; /** For get_current_test() */ std::vector test_offsets; private: unsigned long today; }; namespace { std::string slrn_fix_regexp(StringView const &in) { std::string s; s.reserve(in.len + 10); // 10 is a guess on how many extra chars we need s += '^'; for (auto const &pch : in) { if (pch == '.' || pch == '+') { s += '\\'; } else if (pch == '*') { s += '.'; } s += pch; } if (s[s.size() - 1] != '$') { s += '$'; } return s; } } // namespace Scorefile::FilenameToReader::~FilenameToReader() { } LineReader *Scorefile::FilenameToReader::operator()( StringView const &filename) const { return new FileLineReader(filename); } Scorefile::Scorefile(FilenameToReader *ftr) : _filename_to_reader(ftr) { } Scorefile::~Scorefile() { } Scorefile::Section *Scorefile::get_section(StringView const &name) { if (name.empty()) { return nullptr; } // look for a section that already matches the name for (auto §ion : _sections) { if (name == section.name) { return §ion; } } // make a new section _sections.resize(_sections.size() + 1); Section &s(_sections.back()); s.name = name; s.negate = *name.str == '~'; // break the name into group tokens typedef std::vector tokens_t; std::string tmp(name.str, name.len); std::replace(tmp.begin(), tmp.end(), ',', ' '); tokens_t tokens; StringView n(tmp); if (s.negate) { // walk past the negate tilde ++n.str; --n.len; } for (char const *pch(n.begin()), *e(n.end()); pch != e; ++pch) { while (pch != e && ::isspace(*pch)) { ++pch; } if (pch == e) { break; } char const *tok_begin = pch; while (pch != e && ! ::isspace(*pch)) { ++pch; } if (pch != tok_begin) { tokens.push_back(StringView(tok_begin, pch - tok_begin)); } if (pch == e) { break; } } for (auto const &token : tokens) { const std::string groupname(slrn_fix_regexp(token)); if (! TextMatch::validate_regex(groupname.c_str())) { continue; } TextMatch tm; tm.set(groupname, TextMatch::REGEX, true /*case*/, false /*negate*/); s.groups.push_back(tm); } return &s; } namespace { /** Check line starts with prefix. * * Prefix will be discarded from line if so * * @param StringView line * @param char const *prefix * * @returns true if line starts with prefix, false otherwise */ bool check_and_strip(StringView &line, char const *prefix) { std::size_t len = strlen(prefix); if (line.strncasecmp(prefix, len) != 0) { return false; } line.eat_chars(len); return true; } /** Check if a string matches, ignoring case */ bool eq_nocase(StringView const &val, char const *match) { std::size_t len = strlen(match); return val.len == len && val.strncasecmp(match, len) == 0; } } // namespace bool Scorefile::parse_file(ParseContext &context, StringView const &filename) { std::unique_ptr in((*_filename_to_reader)(filename)); if (! in) { return false; } size_t line_number(0); StringView line; while (in->getline(line)) { line_number += 1; if (! parse_line(line, filename, line_number, context)) { // error Log::add_err_va( _("Error reading score in %*.*s, line %d: unexpected line."), filename.len, filename.len, filename.str, line_number); return false; } } return true; } bool Scorefile::parse_line(StringView line, StringView const &filename, int line_number, ParseContext &context) { line.trim(); // skip comments & blank lines if (line.empty() || *line.str == '%' || *line.str == '#') { return true; } if (check_and_strip(line, "include ")) { // Include another file. This can be done anywhere context.update_item_end_line(line_number); line.trim(); return parse_file(context, line); } if (*line.str == '[') { // new section StringView name(line.substr(line.str + 1, line.strchr(']'))); name.trim(); context.current_section = get_section(name); context.test_offsets.clear(); return true; } if (context.current_section != nullptr && check_and_strip(line, "Score:")) { // new Item bool const all_tests_must_pass{line.empty() || *line.str != ':'}; if (! all_tests_must_pass) { line.eat_chars(1); } line.ltrim(); bool const value_assign_flag{! line.empty() && *line.str == '='}; if (value_assign_flag) { line.eat_chars(1); // skip past the '=' } line.ltrim(); int const value(line.empty() ? 0 : atoi(line.str)); StringView name; char const *hash = line.strchr('#'); if (hash) { name = line.substr(hash + 1, nullptr); } name = name.substr(nullptr, name.strchr('%')); // skip trailing comments name.trim(); Item item; item.name.assign(name.str, name.len); item.filename = filename; item.begin_line = line_number; item.value_assign_flag = value_assign_flag; item.value = value; if (all_tests_must_pass) { item.test.set_type_aggregate_and(); } else { item.test.set_type_aggregate_or(); } context.current_section->items.push_back(item); return true; } if (context.get_current_item() == nullptr) { return false; } if (check_and_strip(line, "{:")) { // begin nested condition context.update_item_end_line(line_number); bool const all_tests_must_pass{line.empty() || *line.str != ':'}; if (! all_tests_must_pass) { line.eat_chars(1); // skip past the '{' } FilterInfo *test = new FilterInfo; if (all_tests_must_pass) { test->set_type_aggregate_and(); } else { test->set_type_aggregate_or(); } FilterInfo *parent(context.get_current_test()); context.test_offsets.push_back(parent->_aggregates.size()); parent->_aggregates.push_back(test); } else if (line.len >= 1 && *line.str == '}') { // end nested conditions context.update_item_end_line(line_number); context.test_offsets.resize(context.test_offsets.size() - 1); } else if (check_and_strip(line, "Expires:")) { // expiry date context.update_item_end_line(line_number); // get the date line.ltrim(); int const has_expired(context.has_score_expired(line)); if (has_expired < 0) { Log::add_err_va(_("Error reading score in %*.*s, line %d: expected " "'Expires: MM/DD/YYYY' or 'Expires: DD-MM-YYYY'."), filename.len, filename.len, filename.str, line_number); return false; } else if (has_expired) { Log::add_info_va(_("Expired old score from %*.*s, line %d"), filename.len, filename.len, filename.str, line_number); Item *item = context.get_current_item(); if (item) { item->expired = true; } } } else if (char const *delimiter = line.strpbrk(":="); delimiter != nullptr) { // new filter context.update_item_end_line(line_number); // follow XNews' idiom for specifying case sensitivity: // '=' as the delimiter instead of ':' bool const case_sensitive(*delimiter == '='); line.ltrim(); bool negate(*line.str == '~'); if (negate) { line.eat_chars(1); } StringView key(line.substr(nullptr, delimiter)); key.trim(); StringView val(line.substr(delimiter + 1, nullptr)); val.trim(); FilterInfo::aggregatesp_t &aggregates( context.get_current_test()->_aggregates); aggregates.push_back(new FilterInfo); FilterInfo &test(*aggregates.back()); if (eq_nocase(key, "Lines")) { // "Lines: 5" matches articles with > 5 lines. // "~Lines: 5" matches articles with <= 5 lines. unsigned long const gt = strtoul(val.str, NULL, 10); unsigned long const ge = gt + 1; test.set_type_line_count_ge(ge); } else if (eq_nocase(key, "Bytes")) { // bytes works the same way as lines. unsigned long const gt = strtoul(val.str, NULL, 10); unsigned long const ge = gt + 1; test.set_type_byte_count_ge(ge); } else if (eq_nocase(key, "Age")) { // age works differently from Lines and Bytes: // "Age: 7" matches articles <= 7 days old. unsigned long const le = strtoul(val.str, NULL, 10); test.set_type_days_old_le(le); negate = ! negate; // double negative: le is a negate state } else if (eq_nocase(key, "Has-Body")) { test.set_type_cached(); if (val == "0") { negate = ! negate; } } else { TextMatch::Description d; d.type = TextMatch::REGEX; d.case_sensitive = case_sensitive; d.text.assign(val.str, val.len); test.set_type_text(key, d); } test._negate = negate; } else { return false; } return true; } namespace { void normalize_test(FilterInfo *test) { if (test->_type != FilterInfo::AGGREGATE_AND && test->_type != FilterInfo::AGGREGATE_OR) { return; } if (test->_aggregates.size() == 1) { *test = *test->_aggregates[0]; normalize_test(test); } else { for (auto &item : test->_aggregates) { normalize_test(item); } } } } // namespace void Scorefile::clear() { _sections.clear(); } bool Scorefile::parse_file(StringView const &filename) { ParseContext context; if (! parse_file(context, filename)) { return false; } size_t item_count(0); for (auto §ion : _sections) { for (auto &item : section.items) { normalize_test(&item.test); } item_count += section.items.size(); } if (! _sections.empty()) { Log::add_info_va(_("Read %lu scoring rules in %lu sections from \"%s\""), item_count, _sections.size(), filename.to_string().c_str()); } return true; } void Scorefile::get_matching_sections(StringView const &groupname, std::vector

&setme) const { for (auto const §ion : _sections) { for (auto const &group : section.groups) { bool match = group.test(groupname); if (section.negate) { match = ! match; } if (match) { setme.push_back(§ion); break; } } } } std::string Scorefile::build_score_string(StringView const §ion_wildmat, int score_value, bool score_assign_flag, int lifespan_days, bool all_items_must_be_true, AddItem const *items, size_t item_count) { const time_t now(time(nullptr)); std::ostringstream out; out << "%BOS\n" << "%Score created by Pan on " << ctime(&now) << '[' << (section_wildmat.empty() ? "*" : section_wildmat) << "]\n" << "Score" << (all_items_must_be_true ? ":" : "::") << ' ' << (score_assign_flag ? "=" : "") << score_value << '\n'; if (lifespan_days > 0) { time_t expire_time_t = now + lifespan_days * 24 * 3600; struct tm expire_tm(*localtime(&expire_time_t)); int dd = expire_tm.tm_mday; int mm = expire_tm.tm_mon + 1; int yyyy = expire_tm.tm_year + 1900; out << "Expires: " << mm << '/' << dd << '/' << yyyy << '\n'; } for (size_t i(0); i != item_count; ++i) { Scorefile::AddItem const &item(items[i]); if (! item.value.empty()) { out << (item.on ? "" : "%") << (item.negate ? "~" : "") << item.key << ": " << item.value << '\n'; } } out << "%EOS"; return out.str(); } } // namespace pan pan-0.162/pan/usenet-utils/scorefile.h000066400000000000000000000113231475412772400176600ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #ifndef pan_usenet_utils_scorefile_h_ #define pan_usenet_utils_scorefile_h_ #include #include #include #include #include namespace pan { class FileLineReader; class LineReader; class StringView; class TextMatch; /** * Handles slrn-style Score files. * * @ingroup usenet_utils */ struct Scorefile { public: /** * Middleman to convert filenames to LineReaders. Useful for * replacing real files with mock data in unit tests. * * @ingroup data * @see Scorefile */ struct FilenameToReader { virtual ~FilenameToReader(); virtual LineReader *operator()(StringView const &filename) const; }; /** * The default constructor creates a Scorefile that reads files from disk. * * Different file readers can be passed into the constructor by unit tests * that want to auto-generate the entries that the scorefile will parse. * * @warning This owns the instance you pass to it and deletes it on * destruction */ explicit Scorefile(FilenameToReader *ftr = new FilenameToReader()); virtual ~Scorefile(); /** Parse the score file * * @returns true if file could be parsed, false otherwise */ bool parse_file(StringView const &filename); void clear(); public: /** * Used by build_score_string() to make a new slrn-style scorefile entry. * @see build_score_string * @ingroup data */ struct AddItem { bool on; bool negate; std::string key; std::string value; }; /** * Utility to generate text for a new slrn-style scorefile entry. * @see AddItem */ static std::string build_score_string(StringView const §ion_wildmat, int score_value, bool score_assign_flag, int lifespan_days, bool all_items_must_be_true, AddItem const *items, size_t item_count); public: /** * A scorefile entry. One or more of these may be found in a * Scorefile::Section. * @see Section * @ingroup data */ struct Item { std::string filename; size_t begin_line; size_t end_line; std::string name; // optional FilterInfo test; int value; bool value_assign_flag; bool expired; Item() : begin_line(0), end_line(0), value(0), value_assign_flag(false), expired(false) { } std::string describe() const { return test.describe(); } }; typedef std::deque items_t; /** * Represents a slrn scorefile's section, where a group of rules are to be * applied in a set of groups specified at the beginning of the section. * @see Item * @ingroup data */ struct Section { std::string name; bool negate; std::deque groups; std::deque items; }; typedef std::deque
sections_t; public: sections_t const &get_sections() const { return _sections; } void get_matching_sections(StringView const &groupname, std::vector
&setme) const; protected: sections_t _sections; private: Section *get_section(StringView const &name); private: // owned by Scorefile std::unique_ptr _filename_to_reader; class ParseContext; bool parse_file(ParseContext &context, StringView const &filename); bool parse_line(StringView line, StringView const &filename, int line_number, ParseContext &context); }; } // namespace pan #endif pan-0.162/pan/usenet-utils/ssl-utils.cc000066400000000000000000000131661475412772400200110ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This file * Copyright (C) 2011 Heinrich Müller * SSL functions : Copyright (C) 2002 vjt (irssi project) * * GnuTLS functions and code * Copyright (C) 2002, 2003, 2004, 2005, 2007, 2008, 2010 Free Software * Foundation, Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #include "ssl-utils.h" #ifdef HAVE_GNUTLS #include #include #include #include #include #include #include #include #include #include namespace pan { namespace { typedef std::pair quarks_p; typedef std::map::iterator tags_it; const static char *tags_idx[] = {",L=", ",CN=", ",C=", ",OU=", ",O=", ",ST=", ",EMAIL=", ",emailAddress=", ",serialNumber="}; const static char *cleaned_tags[] = { "L", "CN", "C", "OU", "O", "ST", "EMAIL", "emailAdress", "serialNumber"}; static char const *const tags[] = { "Locality", "Common Name", "Company", "Organizational Unit", "Organization", "State", "Email Address", "Email Address", //Yes. there are TWO names for email. "serialNumber" // Really??? }; class CertParser { public: explicit CertParser(gnutls_x509_crt_t cert) : delim_(','), num_tags_(G_N_ELEMENTS(tags_idx)) { { size_t size; gnutls_x509_crt_get_issuer_dn(cert, NULL, &size); char *dn_buf = new char[size]; gnutls_x509_crt_get_issuer_dn(cert, dn_buf, &size); iss_ = dn_buf; delete[] dn_buf; } for (std::size_t i = 0; i < num_tags_; i += 1) { tags_.insert(quarks_p(cleaned_tags[i], tags[i])); } } CertParser(CertParser const &) = delete; CertParser &operator=(CertParser const &) = delete; ~CertParser() { } void parse(std::vector &issuer) { char buf[2048]; for (int idx = 0; idx < num_tags_; idx += 1) { std::string::size_type index = iss_.find(tags_idx[idx]); if (index == std::string::npos) { continue; } std::string::size_type pos1 = index + strlen(tags_idx[idx]); std::string::size_type pos2 = iss_.find(delim_, pos1); if (pos2 == std::string::npos) { continue; } // seperate handling for CN tag if (strcmp(cleaned_tags[idx], "CN") == 0) { std::string::size_type tmp_pos = (int)iss_.find("://", pos2 - 1); if (tmp_pos == pos2 - 1) { pos2 = iss_.find(delim_, pos2 + 2); } } std::string tmp = iss_.substr(pos1, pos2 - pos1); g_snprintf(buf, sizeof(buf), "%s (%s)", cleaned_tags[idx], tags_[cleaned_tags[idx]].c_str()); issuer.push_back(quarks_p(buf, tmp)); } } std::string build_complete(std::vector const &v) { std::stringstream s; for (size_t i = 0; i < v.size(); ++i) { s << "\t" << v[i].first << " : " << v[i].second << "\n"; } return s.str(); } private: std::map tags_; std::string iss_; char const delim_; int const num_tags_; }; } // namespace void pretty_print_x509(char *buf, size_t size, Quark const &server, gnutls_x509_crt_t c, bool on_connect) { if (c == nullptr) { g_snprintf(buf, size, _("Error printing the server certificate for '%s'"), server.c_str()); return; } CertParser cp(c); std::vector p_issuer; cp.parse(p_issuer); time_t t = gnutls_x509_crt_get_expiration_time(c); time_t t2 = gnutls_x509_crt_get_activation_time(c); EvolutionDateMaker date_maker; char *until = date_maker.get_date_string(t); char *before = date_maker.get_date_string(t2); char tmp1[2048]; g_snprintf( tmp1, sizeof(tmp1), _("The current server '%s' sent this security certificate:\n\n"), server.c_str()); char tmp2[2048]; g_snprintf(tmp2, sizeof(tmp2), _("Certificate information for server '%s':\n\n"), server.c_str()); g_snprintf(buf, size, _("%s" "Issuer information:\n" "%s\n" "Valid until: %s\n\n" "Not valid before: %s\n\n"), on_connect ? tmp1 : tmp2, cp.build_complete(p_issuer).c_str(), until, before); g_free(before); g_free(until); } } // namespace pan #endif pan-0.162/pan/usenet-utils/ssl-utils.h000066400000000000000000000026451475412772400176530ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This file * Copyright (C) 2011 Heinrich Müller * SSL functions : Copyright (C) 2002 vjt (irssi project) * * GnuTLS functions and code * Copyright (C) 2002, 2003, 2004, 2005, 2007, 2008, 2010 Free Software * Foundation, Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #ifndef _SSL_UTILS_H_ #define _SSL_UTILS_H_ #include "config.h" #ifdef HAVE_GNUTLS #include #include namespace pan { class Quark; void pretty_print_x509(char *buf, size_t size, Quark const &server, gnutls_x509_crt_t c, bool on_connect); } // namespace pan #endif #endif pan-0.162/pan/usenet-utils/text-massager-test.cc000066400000000000000000000474121475412772400216140ustar00rootroot00000000000000#include #include #include #include #include #include #include "text-massager.h" using namespace pan; //~ void test_folding() //~ { //~ std::string in; //~ std::string out; //~ std::string expected_out; //~ TextMassager tm; //~ //~ /* blank lines between quotes */ //~ tm.set_wrap_column (50); //~ in = "> a\n\n> b"; //~ out = tm.fill (in); //~ expected_out = "> a\n\n> b"; //~ g_assert_cmpstr( out.c_str(), ==, expected_out.c_str()); //~ //~ /* quoted paragraphs breaks */ //~ in = "> a\n>\n> b"; //~ out = tm.fill (in); //~ expected_out = "> a\n>\n> b"; //~ g_assert_cmpstr( out.c_str(), ==, expected_out.c_str()); //~ //~ /* simple short quoted text - should be unchanged */ //~ in = "> a\n> b\n> c"; //~ out = tm.fill (in); //~ expected_out = "> a\n> b\n> c"; //~ g_assert_cmpstr( out.c_str(), ==, expected_out.c_str()); //~ //~ /* flowed test */ //~ in = "This is \na test of \nflowed text.\n\nA\n"; //~ out = tm.fill (in, true); //~ expected_out = "This is a test of flowed text.\n\nA"; //~ g_assert_cmpstr( out.c_str(), ==, expected_out.c_str()); //~ //~ /* wrap real-world 1 */ //~ in = //~ //~ "Cybe R. Wizard wrote:\n" //~ "\n" //~ "> Nice to know it works, right, and that's why I tried it.\n" //~ "> I ran SETI@home under win95 for a while but on my Pentium 166 it's not\n" //~ "> really worth it. It took upwards of 500 hours to do one WU running\n" //~ "> full time in the background.\n" //~ "> Will the Linux version do better???\n" //~ "\n" //~ "500 hours seems like an awfully long time to me... I'm running setiathome \n" //~ "on all my systems, and on my P200's a work unit takes about 25-30 hours, \n" //~ "running as a low priority task with nice 19.\n" //~ "\n" //~ "> Here's a funny thing. Under the wine version that came with my\n" //~ "> Mandrake 7.2 the Galaxies 2.0 screensaver ran VERY slowly. I had no\n" //~ "> real hope that Codeweaver's wine would do any better but the thing\n" //~ "> runs FASTER than under win95.\n" //~ "> I wonder why that is...\n" //~ "\n" //~ "Heh, I remember OS/2 running Windows programs faster than windows did :^)\n" //~ "\n" //~ "Or as I remarked to my wife this morning, as we were watching one of our \n" //~ "puppies amusing himself by crawling under our bed: \"Dogs crawl under \n" //~ "furniture.... Software crawls under windows\" :^)\n" //~ "\n" //~ "Jan Eric"; //~ expected_out = //~ //~ "Cybe R. Wizard wrote:\n" //~ "\n" //~ "> Nice to know it works, right, and that's why I\n" //~ "> tried it.\n" //~ "> I ran SETI@home under win95 for a while but on\n" //~ "> my Pentium 166 it's not really worth it. It\n" //~ "> took upwards of 500 hours to do one WU running\n" //~ "> full time in the background.\n" //~ "> Will the Linux version do better???\n" //~ "\n" //~ "500 hours seems like an awfully long time to me...\n" //~ "I'm running setiathome on all my systems, and on\n" //~ "my P200's a work unit takes about 25-30 hours,\n" //~ "running as a low priority task with nice 19.\n" //~ "\n" //~ "> Here's a funny thing. Under the wine version\n" //~ "> that came with my Mandrake 7.2 the Galaxies 2.0\n" //~ "> screensaver ran VERY slowly. I had no real hope\n" //~ "> that Codeweaver's wine would do any better but\n" //~ "> the thing runs FASTER than under win95.\n" //~ "> I wonder why that is...\n" //~ "\n" //~ "Heh, I remember OS/2 running Windows programs\n" //~ "faster than windows did :^)\n" //~ "\n" //~ "Or as I remarked to my wife this morning, as we\n" //~ "were watching one of our puppies amusing himself\n" //~ "by crawling under our bed: \"Dogs crawl under\n" //~ "furniture.... Software crawls under windows\" :^)\n" //~ "\n" //~ "Jan Eric"; //~ out = tm.fill (in); //~ g_assert_cmpstr( out.c_str(), ==, expected_out.c_str()); //~ //~ /* wrap real-world 2 */ //~ in = //~ "In article , \"Marcel Pol\"\n" //~ " wrote:\n" //~ "\n" //~ "> Recently \"Unknown\" wrote:\n" //~ ">> Knode is not for me\n" //~ ">> Question: What are the alternative apps. to Knode - especially in\n" //~ ">> off-line readers?\n" //~ "> \n" //~ "> I dunno any good kde newsreaders. I do like pan a lot. It's a gnome/gtk\n" //~ "> thing though. But if you don't care too much about a gtk thing in qyour\n" //~ "> kde-desktop, check out pan.\n" //~ "> \n" //~ "> Btw, you can let a kde-theme be applied to gtk programs too. My gtk\n" //~ "> programs look just like kde, with it's default theme.\n" //~ "> \n" //~ "> \n" //~ "> --\n" //~ "> Marcel Pol mpol@mpol.dhs.org\n" //~ "> \n" //~ "> ...my cow ate the CDs.\n" //~ "\n" //~ "Pan has been going through a lot of modifications recently so make sure\n" //~ "you get the latest version you can run with your distro.\n"; //~ expected_out = //~ //~ "In article\n" //~ ",\n" //~ "\"Marcel Pol\"\n" //~ " wrote:\n" //~ "\n" //~ "> Recently \"Unknown\"\n" //~ "> wrote:\n" //~ ">> Knode is not for me\n" //~ ">> Question: What are the\n" //~ ">> alternative apps. to\n" //~ ">> Knode - especially in\n" //~ ">> off-line readers?\n" //~ "> \n" //~ "> I dunno any good kde\n" //~ "> newsreaders. I do like pan a\n" //~ "> lot. It's a gnome/gtk thing\n" //~ "> though. But if you don't\n" //~ "> care too much about a gtk\n" //~ "> thing in qyour kde-desktop,\n" //~ "> check out pan.\n" //~ "> \n" //~ "> Btw, you can let a kde-theme\n" //~ "> be applied to gtk programs\n" //~ "> too. My gtk programs look\n" //~ "> just like kde, with it's\n" //~ "> default theme.\n" //~ "> \n" //~ "> \n" //~ "> --\n" //~ "> Marcel Pol mpol@mpol.dhs.org\n" //~ "> \n" //~ "> ...my cow ate the CDs.\n" //~ "\n" //~ "Pan has been going through a\n" //~ "lot of modifications recently\n" //~ "so make sure you get the\n" //~ "latest version you can run\n" //~ "with your distro."; //~ tm.set_wrap_column (30); //~ out = tm.fill (in); //~ g_assert_cmpstr( out.c_str(), ==, expected_out.c_str()); //~ //~ /* wrap format_flowed */ //~ in = //~ "In article , \"Marcel Pol\"\n" //~ " wrote:\n" //~ "\n" //~ "> Recently \"Unknown\" wrote:\n" //~ ">> Knode is not for me\n" //~ ">> Question: What are the alternative apps. to Knode - \n" //~ ">> especially in \n" //~ ">> off-line readers?\n" //~ "> \n" //~ "> I dunno any good kde newsreaders. I do like pan a lot. It's a gnome/gtk \n" //~ "> thing though. But if you don't care too much about a gtk \n" //~ "> thing in qyour \n" //~ "> kde-desktop, check out pan.\n" //~ "> \n" //~ "> Btw, you can let a kde-theme be applied to gtk programs too. My gtk \n" //~ "> programs look just like kde, with it's default theme.\n" //~ "> \n" //~ "> \n" //~ "> --\n" //~ "> Marcel Pol mpol@mpol.dhs.org\n" //~ "> \n" //~ "> ...my cow ate the CDs.\n" //~ "\n" //~ "Pan has been going through a lot of modifications recently so make sure \n" //~ "you get the latest version you can run \n" //~ "with your distro.\n"; //~ expected_out = //~ "In article\n" //~ ",\n" //~ "\"Marcel Pol\"\n" //~ " wrote:\n" //~ "\n" //~ "> Recently \"Unknown\"\n" //~ "> wrote:\n" //~ ">> Knode is not for me\n" //~ ">> Question: What are the\n" //~ ">> alternative apps. to\n" //~ ">> Knode - especially in\n" //~ ">> off-line readers?\n" //~ "> \n" //~ "> I dunno any good kde\n" //~ "> newsreaders. I do like pan a\n" //~ "> lot. It's a gnome/gtk thing\n" //~ "> though. But if you don't\n" //~ "> care too much about a gtk\n" //~ "> thing in qyour kde-desktop,\n" //~ "> check out pan.\n" //~ "> \n" //~ "> Btw, you can let a kde-theme\n" //~ "> be applied to gtk programs\n" //~ "> too. My gtk programs look\n" //~ "> just like kde, with it's\n" //~ "> default theme.\n" //~ "> \n" //~ "> \n" //~ "> --\n" //~ "> Marcel Pol mpol@mpol.dhs.org\n" //~ "> \n" //~ "> ...my cow ate the CDs.\n" //~ "\n" //~ "Pan has been going through a\n" //~ "lot of modifications recently\n" //~ "so make sure you get the\n" //~ "latest version you can run\n" //~ "with your distro."; //~ tm.set_wrap_column (30); //~ out = tm.fill (in, true); //~ g_assert_cmpstr( out.c_str(), ==, expected_out.c_str()); //~ } //~ //~ ">> Knode is not for me\n" //~ ">> Question: What are the alternative apps. to Knode - \n" //~ ">> especially in \n" //~ ">> off-line readers?\n" //~ "> \n" //~ "> I dunno any good kde newsreaders. I do like pan a lot. It's a gnome/gtk \n" //~ "> thing though. But if you don't care too much about a gtk \n" //~ "> thing in qyour \n" //~ "> kde-desktop, check out pan.\n" //~ "> \n" //~ "> Btw, you can let a kde-theme be applied to gtk programs too. My gtk \n" //~ "> programs look just like kde, with it's default theme.\n" //~ "> \n" //~ "> \n" //~ "> --\n" //~ "> Marcel Pol mpol@mpol.dhs.org\n" //~ "> \n" //~ "> ...my cow ate the CDs.\n" //~ "\n" //~ "Pan has been going through a lot of modifications recently so make sure \n" //~ "you get the latest version you can run \n" //~ "with your distro.\n"; //~ expected_out = //~ "In article\n" //~ ",\n" //~ "\"Marcel Pol\"\n" //~ " wrote:\n" //~ "\n" //~ "> Recently \"Unknown\"\n" //~ "> wrote:\n" //~ ">> Knode is not for me\n" //~ ">> Question: What are the\n" //~ ">> alternative apps. to\n" //~ ">> Knode - especially in\n" //~ ">> off-line readers?\n" //~ "> \n" //~ "> I dunno any good kde\n" //~ "> newsreaders. I do like pan a\n" //~ "> lot. It's a gnome/gtk thing\n" //~ "> though. But if you don't\n" //~ "> care too much about a gtk\n" //~ "> thing in qyour kde-desktop,\n" //~ "> check out pan.\n" //~ "> \n" //~ "> Btw, you can let a kde-theme\n" //~ "> be applied to gtk programs\n" //~ "> too. My gtk programs look\n" //~ "> just like kde, with it's\n" //~ "> default theme.\n" //~ "> \n" //~ "> \n" //~ "> --\n" //~ "> Marcel Pol mpol@mpol.dhs.org\n" //~ "> \n" //~ "> ...my cow ate the CDs.\n" //~ "\n" //~ "Pan has been going through a\n" //~ "lot of modifications recently\n" //~ "so make sure you get the\n" //~ "latest version you can run\n" //~ "with your distro."; //~ tm.set_wrap_column (30); //~ out = tm.fill (in, true); //~ g_assert_cmpstr( out.c_str(), ==, expected_out.c_str()); //~ } //~ //~ void test_rot13() //~ { //~ std::string in; //~ std::string out; //~ std::string expected_out; //~ TextMassager tm; //~ //~ /* rot13 */ //~ in = "Rot-13 started with rn, trn and similar newsreaders back in the mid-1980's. It was common practice for a while for offending messages, and messages with some hint or disclosure (such as the answer to a question or puzzle posed in the message, or for covering spoilers to TV or movie episodes)."; //~ out = in; //~ tm.rot13_inplace (const_cast(out.c_str())); //~ expected_out = "Ebg-13 fgnegrq jvgu ea, gea naq fvzvyne arjfernqref onpx va gur zvq-1980'f. Vg jnf pbzzba cenpgvpr sbe n juvyr sbe bssraqvat zrffntrf, naq zrffntrf jvgu fbzr uvag be qvfpybfher (fhpu nf gur nafjre gb n dhrfgvba be chmmyr cbfrq va gur zrffntr, be sbe pbirevat fcbvyref gb GI be zbivr rcvfbqrf)."; //~ g_assert_cmpstr( out.c_str(), ==, expected_out.c_str()); //~ //~ /* rot13 2 */ //~ tm.rot13_inplace (const_cast(out.c_str())); //~ g_assert_cmpstr( out.c_str(), ==, in.c_str()); //~ //~ /* rot13 3 */ //~ in = "here is a line with a �,�,� but the line should not be truncated."; //~ out = in; //~ tm.rot13_inplace (const_cast(out.c_str())); //~ expected_out = "urer vf n yvar jvgu n �,�,� ohg gur yvar fubhyq abg or gehapngrq."; //~ g_assert_cmpstr( out.c_str(), ==, expected_out.c_str()); //~ } //~ //~ void test_mute() //~ { //~ std::string in; //~ std::string out; //~ std::string expected_out; //~ TextMassager tm; //~ //~ /* mute quoted test 2 */ //~ in = //~ "bill.m@no.spam.net wrote:\n" //~ "\n" //~ "> In , on 04/17/01\n" //~ "> at 06:56 PM, \"Marcel Pol\" said:\n" //~ "> \n" //~ "> .:.I do like pan a lot.\n" //~ "> .:.It's a gnome/gtk thing though.\n" //~ "> .:.But if you don't care too much about a gtk thing in qyour kde-desktop,\n" //~ "> check .:.out pan.\n" //~ "> \n" //~ "> Is this somewhere in mdk 7.2 (Complete)?\n" //~ "\n" //~ "pan is included with LM 7.2, but only version 0.81 - grab the 0.96 rpm from \n" //~ "the pan website instead.\n" //~ "\n" //~ "Jan Eric"; //~ expected_out = //~ //~ "bill.m@no.spam.net wrote:\n" //~ "\n" //~ "> [quoted text muted]\n" //~ "\n" //~ "pan is included with LM 7.2, but only version 0.81 - grab the 0.96 rpm from \n" //~ "the pan website instead.\n" //~ "\n" //~ "Jan Eric"; //~ out = tm.mute_quotes (in); //~ g_assert_cmpstr( out.c_str(), ==, expected_out.c_str()); //~ //~ // mute quoted test: realworld 2 //~ in = //~ "In article , \"Marcel Pol\"\n" //~ " wrote:\n" //~ "\n" //~ "> Recently \"Unknown\" wrote:\n" //~ ">> Knode is not for me\n" //~ ">> Question: What are the alternative apps. to Knode - especially in\n" //~ ">> off-line readers?\n" //~ "> \n" //~ "> I dunno any good kde newsreaders. I do like pan a lot. It's a gnome/gtk\n" //~ "> thing though. But if you don't care too much about a gtk thing in qyour\n" //~ "> kde-desktop, check out pan.\n" //~ "> \n" //~ "> Btw, you can let a kde-theme be applied to gtk programs too. My gtk\n" //~ "> programs look just like kde, with it's default theme.\n" //~ "> \n" //~ "> \n" //~ "> --\n" //~ "> Marcel Pol mpol@mpol.dhs.org\n" //~ "> \n" //~ "> ...my cow ate the CDs.\n" //~ "\n" //~ "Pan has been going through a lot of modifications recently so make sure\n" //~ "you get the latest version you can run with your distro."; //~ expected_out = //~ //~ "In article , \"Marcel Pol\"\n" //~ " wrote:\n" //~ "\n" //~ "> [quoted text muted]\n" //~ "\n" //~ "Pan has been going through a lot of modifications recently so make sure\n" //~ "you get the latest version you can run with your distro."; //~ out = tm.mute_quotes (in); //~ g_assert_cmpstr( out.c_str(), ==, expected_out.c_str()); //~ //~ // mute quoted text //~ in = "> This is a bunch\n> of quoted text\n> which should be trimmed\n\nNot quoted."; //~ expected_out = "> [quoted text muted]\n\nNot quoted."; //~ out = tm.mute_quotes (in); //~ g_assert_cmpstr( out.c_str(), ==, expected_out.c_str()); //~ //~ // mute quoted text //~ in = "This is a bunch\nof nonquoted text\nwhich should be left alone\n\nNot quoted."; //~ expected_out = in; //~ out = tm.mute_quotes (in); //~ g_assert_cmpstr( out.c_str(), ==, expected_out.c_str()); //~ } //~ //~ void test_subj() //~ { //~ std::string in; //~ std::string out; //~ std::string expected_out; //~ TextMassager tm; //~ //~ const char *in2, *sep="_"; //~ in2 = "prefix - one ...__ - two - three"; //~ expected_out = "prefix_one_two_three"; //~ out = pan::subject_to_path(in2, false, sep); //~ g_assert_cmpstr( out.c_str(), ==, expected_out.c_str()); //~ in2 = "prefix File 25 of 1000 one Post 1 _ 25: two file 1_10 end"; //~ expected_out = "prefix_one_two_end"; //~ out = pan::subject_to_path(in2, false, sep); //~ g_assert_cmpstr( out.c_str(), ==, expected_out.c_str()); //~ in2 = "prefix [1 of 10] middle (2 / 20) end"; //~ expected_out = "prefix_middle_end"; //~ out = pan::subject_to_path(in2, false, sep); //~ g_assert_cmpstr( out.c_str(), ==, expected_out.c_str()); //~ in2 = "prefix \" file name here\" yEnc ending"; //~ expected_out = "prefix"; //~ out = pan::subject_to_path(in2, false, sep); //~ g_assert_cmpstr( out.c_str(), ==, expected_out.c_str()); //~ in2 = "prefix file name here yEnc ending"; //~ expected_out = "prefix_file_name"; //~ out = pan::subject_to_path(in2, false, sep); //~ g_assert_cmpstr( out.c_str(), ==, expected_out.c_str()); //~ in2 = "prefix \"stuff \"\" file name here.sdf\" bar baz.gd ending"; //~ expected_out = "prefix_stuff_bar_ending"; //~ out = pan::subject_to_path(in2, false, sep); //~ g_assert_cmpstr( out.c_str(), ==, expected_out.c_str()); //~ in2 = "prefix 2Kb one 3kB two 10 KB three 100 Bytes four [5 KB] end \t"; //~ expected_out = "prefix_one_two_three_four_end"; //~ out = pan::subject_to_path(in2, false, sep); //~ g_assert_cmpstr( out.c_str(), ==, expected_out.c_str()); //~ in2 = "prefix / a \\ b < c > d | e * f ? g ' h \" end"; //~ expected_out = "prefix_a_b_c_d_e_f_g_h_end"; //~ out = pan::subject_to_path(in2, false, sep); //~ g_assert_cmpstr( out.c_str(), ==, expected_out.c_str()); //~ in2 = "[foo] K's \"kpsh eg02b.jpg\" (0/2) 685k bar "; //~ expected_out = "[foo]_K_s_bar"; //~ out = pan::subject_to_path(in2, false, sep); //~ g_assert_cmpstr( out.c_str(), ==, expected_out.c_str()); //~ in2 = "[ASDF-FDSE] Name1 & Name2 - Spettertje - 01 title here (thx AntA) Post 6_6 - File 9_9 - aaspettertje01.sfv (1/1)"; //~ expected_out = "[ASDF-FDSE]_Name1_&_Name2_Spettertje_01_title_here_(thx_AntA)"; //~ out = pan::subject_to_path(in2, false, sep); //~ g_assert_cmpstr( out.c_str(), ==, expected_out.c_str()); //~ in2 = "Evil, Wicked Queen-e01.jpg(1/01)"; //~ expected_out = "Evil,_Wicked"; //~ out = pan::subject_to_path(in2, false, sep); //~ g_assert_cmpstr( out.c_str(), ==, expected_out.c_str()); //~ in2 = "some text here... and more... 123.jpg"; //~ expected_out = "some_text_here_and_more"; //~ out = pan::subject_to_path(in2, false, sep); //~ g_assert_cmpstr( out.c_str(), ==, expected_out.c_str()); //~ in2 = "who are you? 123.jpg"; //~ expected_out = "who_are_you"; //~ out = pan::subject_to_path(in2, false, sep); //~ g_assert_cmpstr( out.c_str(), ==, expected_out.c_str()); //~ in2 = "one - two three [1/2] - \"00 - title spaces.foo\" yEnc (1/5)"; //~ expected_out = "one_two_three"; //~ out = pan::subject_to_path(in2, false, sep); //~ g_assert_cmpstr( out.c_str(), ==, expected_out.c_str()); //~ check(out == expected_out); //~ in2 = "one - two three [1/2] - \"00 - title spaces.foo\" (/5)"; //~ expected_out = "one_two_three"; //~ out = pan::subject_to_path(in2, sep); //~ //std::cout<<"input: '"< * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #include #include #include #include #include #include #include "text-massager.h" #include #include using namespace pan; TextMassager :: TextMassager (): _wrap_column (74) { _quote_characters = new char [UCHAR_MAX]; memset (_quote_characters, 0, UCHAR_MAX); _quote_characters[(int)'>'] = true; } TextMassager :: ~TextMassager () { delete [] _quote_characters; } /**** ***** QUOTE CHARACTERS ****/ bool TextMassager :: is_quote_character (unsigned int unichar) const { return unichar > UCHAR_MAX ? false : _quote_characters[unichar]; } std::set TextMassager :: get_quote_characters () const { std::set retval; for (int i=0; i& chars) { for (int i=0; i::const_iterator c_cit; for (c_cit it=chars.begin(), end=chars.end(); it!=end; ++it) _quote_characters[(int)*it] = true; } /**** ***** LINE WRAPPING ****/ namespace { struct Line { public: StringView leader; StringView content; }; typedef std::vector lines_t; typedef lines_t::const_iterator lines_cit; struct Paragraph { public: std::string leader; std::string content; public: Paragraph () { } Paragraph (const char * l, int llen, const char * c, int clen): leader (l, llen), content (c, clen) { } }; typedef std::vector paragraphs_t; typedef paragraphs_t::iterator p_it; void merge_fixed (paragraphs_t ¶graphs, lines_t &lines, int wrap_col) { std::map max_map; std::map::iterator map_end = max_map.end(); int prev_content_len = 0; StringView cur_leader; std::string cur_content; bool prev_ends_with_punct = true; for (lines_cit it=lines.begin(), end=lines.end(); it!=end; ++it) { const Line& line (*it); int line_len = line.leader.len + line.content.len; if (map_end != max_map.find(line.leader)) max_map[line.leader] = MAX(max_map[line.leader], line_len ); else // use 12 as the minimum line length max_map.insert( std::make_pair(line.leader, MAX(line_len, 12) ) ); } for (lines_cit it=lines.begin(), end=lines.end(); it!=end; ++it) { const Line& line (*it); bool paragraph_end = true; bool hard_break = false; if (cur_content.empty() || line.leader==cur_leader) paragraph_end = false; if (line.content.empty()) { hard_break = prev_content_len!=0; paragraph_end = true; } // if first word could have been wrapped onto previous line // line but wasn't assume deliberate line break. if (!paragraph_end && prev_content_len && line.content.len) { unsigned int space = max_map[line.leader] - (prev_content_len + line.leader.len) - 1; if ( space > 0 && ((line.content.len < space) || g_utf8_strchr (line.content.str, space, ' ')) ) //paragraph_end = true; paragraph_end = prev_ends_with_punct; } if (paragraph_end) // the new line is a new paragraph, so save old { paragraphs.push_back (Paragraph ( cur_leader.str, cur_leader.len, cur_content.c_str(), cur_content.size())); cur_leader = line.leader; cur_content = line.content.to_string(); if (hard_break) { paragraphs.push_back (Paragraph ( cur_leader.str, cur_leader.len, "", 0)); } } else // append to the content { if (!cur_content.empty()) cur_content += ' '; cur_leader = line.leader; cur_content.insert (cur_content.end(), line.content.begin(), line.content.end()); } prev_content_len = line.content.len; if ( prev_content_len > 1) prev_ends_with_punct = g_unichar_ispunct ( g_utf8_get_char ( g_utf8_find_prev_char ( line.content.str, line.content.str + line.content.len ))); else prev_ends_with_punct = true; } } void merge_flowed (paragraphs_t ¶graphs, lines_t &lines) { StringView cur_leader; std::string cur_content; bool prev_flowed=true; for (lines_cit it=lines.begin(), end=lines.end(); it!=end; ++it) { const Line& line (*it); if (line.leader != cur_leader) prev_flowed = false; if (!prev_flowed) // the new line is a new paragraph, so save old { paragraphs.push_back (Paragraph ( cur_leader.str, cur_leader.len, cur_content.c_str(), cur_content.size())); cur_leader = line.leader; cur_content = line.content.to_string(); } else // append to the content { if (!cur_content.empty()) cur_content += ' '; cur_leader = line.leader; cur_content.insert (cur_content.end(), line.content.begin(), line.content.end()); } // flowed text ends with a space if (line.content.len && line.content.str[line.content.len] == ' ') prev_flowed = true; else prev_flowed = false; } //add final content paragraphs.push_back (Paragraph (cur_leader.str, cur_leader.len, cur_content.c_str(), cur_content.size())); } std::vector get_paragraphs (const TextMassager& tm, const StringView& body, bool flowed) { StringView mybody (body); StringView line; lines_t lines; while (mybody.pop_token (line, '\n')) { const char * pch = line.str; const char * end = line.str + line.len; while (pch paragraphs; if (!lines.empty()) { if (flowed) merge_flowed(paragraphs, lines); else merge_fixed(paragraphs, lines, tm.get_wrap_column()); // Remember that empty line we added back up at the top? // We remove it now if (!paragraphs.empty()) paragraphs.resize (paragraphs.size()-1); } return paragraphs; } void wrap_line_at_column (char * str, int len, int column) { int pos = 0; int space_len; char * linefeed_here = NULL; // walk through the entire string for (char *pch=str, *end=pch+len; pch!=end; ) { // a linefeed could go here; remember this space gunichar ch = g_utf8_get_char (pch); if (g_unichar_isspace ( ch ) || *pch=='\n') if (g_unichar_break_type(ch) != G_UNICODE_BREAK_NON_BREAKING_GLUE) { linefeed_here = pch; // not all spaces are single char space_len = g_utf8_next_char (pch) - pch; } // line's too long; add a linefeed if we can if (pos>=column && linefeed_here!=NULL) { const char nl[5]=" \n"; if( space_len == 1) *linefeed_here = '\n'; else memcpy( linefeed_here, 4 - space_len + nl, space_len); pch = linefeed_here + space_len; linefeed_here = NULL; space_len = 0; pos = 0; } else { pch = g_utf8_next_char (pch); ++pos; } } } void add_line (std::vector & setme, const StringView & leader, const StringView & content) { std::string s; s.insert (s.end(), leader.begin(), leader.end()); s.insert (s.end(), content.begin(), content.end()); setme.push_back (s); } void fill_paragraph (const TextMassager & tm, Paragraph & p, std::vector & setme) { if (p.content.empty()) // blank line add_line (setme, p.leader, p.content); else { const int max_content_width (tm.get_wrap_column() - p.leader.size()); std::string tmp (p.content); wrap_line_at_column (&tmp[0], tmp.size(), max_content_width); StringView myp (tmp); StringView line; while (myp.pop_token (line, '\n')) add_line (setme, p.leader, line); } } } std::string TextMassager :: fill (const StringView& body, bool flowed) const { std::string retval; // get a temp copy of the body -- we don't wrap the signature. std::string tmp_body; std::string sig; for (StringView::const_iterator it=body.begin(), e=body.end(); it!=e; ++it) if (*it != '\r') tmp_body.push_back (*it); std::string::size_type sig_pos = tmp_body.find ("\n-- \n"); if (sig_pos != std::string::npos) { sig = tmp_body.substr (sig_pos); tmp_body.erase (sig_pos); } // fill the paragraphs typedef std::vector strings_t; typedef strings_t::const_iterator strings_cit; strings_t lines; paragraphs_t paragraphs (get_paragraphs (*this, tmp_body, flowed)); for (p_it it=paragraphs.begin(), end=paragraphs.end(); it!=end; ++it) fill_paragraph (*this, *it, lines); // make a single string of all filled lines for (strings_cit it=lines.begin(), end=lines.end(); it!=end; ++it) { retval += *it; retval += '\n'; } if (!retval.empty()) retval.erase (retval.size()-1); // if we had a sig, put it back in if (!sig.empty()) { retval += '\n'; retval += sig; } return retval; } /*** **** ***/ std::string TextMassager :: mute_quotes (const StringView& text) const { std::string retval; const char * mute_str = _("> [quoted text muted]"); StringView mytext (text); StringView line; bool last_line_was_quote = false; while (mytext.pop_token (line, '\n')) { const bool is_quote (!line.empty() && is_quote_character (g_utf8_get_char(line.str))); if (!is_quote) { retval.insert (retval.end(), line.begin(), line.end()); retval += '\n'; } else if (!last_line_was_quote) { retval += mute_str; retval += '\n'; } last_line_was_quote = is_quote; } if (!retval.empty()) retval.erase (retval.size()-1); // trim last \n return retval; } char* TextMassager :: rot13_inplace (char * text) { static bool inited = false; static char translate [UCHAR_MAX]; if (!inited) { inited = true; const char * plain ("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"); const char * roted ("nopqrstuvwxyzabcdefghijklmNOPQRSTUVWXYZABCDEFGHIJKLM"); for (size_t i=0; i|*?'\"\\.\\s]+", cf0, mf0, NULL); str1 = g_regex_replace_literal(badc, str2, -1, 0, sep, mf0, NULL); g_free(str2); g_regex_unref(badc); // remove any extraneous whitespace, '_', & '-' GRegex *ext =g_regex_new("[\\s_-]{2,}", cf0, mf0, NULL); str2 = g_regex_replace_literal(ext, str1, -1, 0, sep, mf0, NULL); g_free(str1); g_regex_unref(ext); // remove leading & trailing junk ext =g_regex_new("(^[\\s_-]+)|([\\s_-]+$)", cf0, mf0, NULL); str1 = g_regex_replace_literal(ext, str2, -1, 0, "", mf0, NULL); g_free(str2); g_regex_unref(ext); val=str1; g_free(str1); //std::cout << "\nSubject was: '" << subjectline << "'\nSubject now: '" << val << "'" << std::endl; return val; } std::string pan :: expand_download_dir (const char * dir, const StringView& group) { std::string val (dir); std::string::size_type pos; while (((pos = val.find ("%g"))) != val.npos) val.replace (pos, 2, group.str, group.len); std::string tmp (group.str, group.len); std::replace (tmp.begin(), tmp.end(), '.', G_DIR_SEPARATOR); while (((pos = val.find ("%G"))) != val.npos) val.replace (pos, 2, tmp); return val; } std::string pan :: expand_download_dir_subject (const char * dir, const char * subjectline, const std::string &sep) { std::string val (dir); std::string sub (subject_to_path(subjectline, false, sep)); std::string::size_type pos; while (((pos = val.find ("%s"))) != val.npos) val.replace (pos, 2, sub); sub = subject_to_path(subjectline, true, sep); while (((pos = val.find ("%S"))) != val.npos) val.replace (pos, 2, sub); return val; } /* "%n - Poster display name\n" "%e - Poster e-mail address\n" "%d - Current Date\n" */ std::string pan :: expand_attachment_headers(const Quark& path, const Article& article) { if (path.empty()) return std::string(""); std::string val(path.c_str()); std::string::size_type pos; std::string author_str (article.author.empty() ? "" : article.author); std::pair author (get_email_address(author_str)); std::string author_name (author.first); std::string author_email (author.second); EvolutionDateMaker ed; char *date = ed.get_date_string (article.time_posted); std::string now (date); g_free (date); if (author_name.empty()) author_name = _("no_name"); if (author_email.empty()) author_email = _("no_mail"); while (((pos = val.find ("%n"))) != val.npos) val.replace (pos, 2, author_name); while (((pos = val.find ("%e"))) != val.npos) val.replace (pos, 2, author_email); while (((pos = val.find ("%d"))) != val.npos) val.replace (pos, 2, now); return val; } /** Separates user id into name and email address */ std::pair pan :: get_email_address(std::string& s) { std::pair ret; size_t in (s.find("<")); size_t out (s.find(">")); if (in == s.npos && out == s.npos) { if (s.find("@") != s.npos) { size_t bracket_in (s.find("(")); size_t bracket_out (s.find(")")); if (bracket_in != s.npos && bracket_out != s.npos) { ret.first = s.substr(0, bracket_in-1); ret.second = s.substr(bracket_in+1, bracket_out-bracket_in-1); } } } else if (in == s.npos || out == s.npos) { return ret; } else { ret.first = s.substr(0,in-1); ret.second = s.substr (in+1,out-in-1); } return ret; } pan-0.162/pan/usenet-utils/text-massager.h000066400000000000000000000050451475412772400204750ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #ifndef __Text_Massager_h__ #define __Text_Massager_h__ #include #include #include #include #include #include namespace pan { /** * Used for manipluating text in ways that a newsreader might need: *
    *
  • rot13'ing text *
  • muting quoted text *
  • 'filling' text to wrap at 78 cols *
* * @ingroup usenet_utils */ class TextMassager { public: TextMassager (); ~TextMassager (); TextMassager(TextMassager const &) = delete; TextMassager &operator=(TextMassager const &) = delete; public: static char* rot13_inplace (char * text); std::string mute_quotes (const StringView& text) const; std::string fill (const StringView& text, bool flowed = false) const; int get_wrap_column () const { return _wrap_column; } bool is_quote_character (unsigned int unichar) const; std::set get_quote_characters () const; void set_wrap_column (int column) { _wrap_column = column; } void set_quote_characters (const std::set& quote_chars); private: int _wrap_column; char * _quote_characters; }; /** * Used to convert a subject line to a path for saving articles. * * @ingroup usenet_utils */ std::string subject_to_path (const char * subjectline, bool full_subj, const std::string &separator); std::string expand_download_dir_subject (const char * dir, const char * subjectline, const std::string &sep); std::string expand_download_dir (const char * dir, const StringView& group); std::string expand_attachment_headers(const Quark& path, const Article& article); std::pair get_email_address(std::string& s); } #endif pan-0.162/pan/usenet-utils/url-find-test.cc000066400000000000000000000061051475412772400205420ustar00rootroot00000000000000#include #include #include #include #include #include #include "url-find.h" using namespace pan; int main (void) { const char * in; StringView out; in = "and this is a string with http://www.gtk.org/ i wonder if it will work."; check (url_find (in, out)) check (out == "http://www.gtk.org/") in = "I am going to end this sentence with a URL: http://www.gtk.org/."; check (url_find (in, out)) check (out == "http://www.gtk.org/") in = "Have you ever visited https://www.google.com/?"; check (url_find (in, out)) check (out == "https://www.google.com/") in = "la la lawww.google.com sfadf"; check (url_find (in, out)) check (out == "www.google.com") in = "My email address is still charles@rebelbase.com."; check (url_find (in, out)) check (out == "charles@rebelbase.com") in = "Go visit ftps://ftp.gnome.org and get cool software!"; check (url_find (in, out)) check (out == "ftps://ftp.gnome.org") in = "Go visit ftp.gnome.org and get cool software!"; check (url_find (in, out)) check (out == "ftp.gnome.org") in = "I am going to run this to the end of the string http://www.goo"; check (url_find (in, out)) check (out == "http://www.goo") in = "but, there is no url here."; check (!url_find (in, out)) in = "All the instant reviews are at news:alt.religion.kibology! Read 'em today!"; check (url_find (in, out)) check (out == "news:alt.religion.kibology") in = "Here is a link sent in by Henri Naccache: http://cgi.ebay.com/ws/eBayISAPI.dll?ViewItem&rd=1,1&item=6270812078 and that is the string."; check (url_find (in, out)) check (out == "http://cgi.ebay.com/ws/eBayISAPI.dll?ViewItem&rd=1,1&item=6270812078") in = "Here is my email address: charles@rebelbase.com. Did you get it?"; check (url_find (in, out)) check (out == "charles@rebelbase.com") in = "Here is my email address: charles@rebelbase.com Did you get it?"; check (url_find (in, out)) check (out == "charles@rebelbase.com") in = "blah blah , only the"; check (url_find (in, out)) check (out == "http://www.dobreprogramy.pl/pirat/dobreprogramy_pl(piratXXX).jpg#frag") in = "Here is my email address: lost.foo_bar@rebelbase.com Did you get it?"; check (url_find (in, out)) check (out == "lost.foo_bar@rebelbase.com") in = "A URl 'http://www.www.com'?"; check (url_find (in, out)) check (out == "http://www.www.com") in = "Sample gemini link: gemini://example.com"; check (url_find (in, out)) check (out == "gemini://example.com") in = "Second gemini link: gemini://example.com/test/foo"; check (url_find (in, out)) check (out == "gemini://example.com/test/foo") in = "Third gemini link: gemini://example.com/test/foo.gmi"; check (url_find (in, out)) check (out == "gemini://example.com/test/foo.gmi") in = "Fourth gemini link: gemini://example.com/test/foo.gmi and the last one"; check (url_find (in, out)) check (out == "gemini://example.com/test/foo.gmi") // success return 0; } pan-0.162/pan/usenet-utils/url-find.cc000066400000000000000000000110371475412772400175650ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #include #include #include "gnksa.h" #include "url-find.h" using namespace pan; namespace { class fooregex { public: fooregex(): regex(NULL) { // RFC1738 // unsafe in URL (always encoded): {}|\^~[]`<>" // reserved for schemas: ;/?:@=& // % (hex encoding) # (fragment) // allowed: a-z A-Z 0-9 $-_.+!*'(), // imhotep : * removed ')' from allowed characters // * added '~' & '-' to allowed characters regex = g_regex_new("(?:" "https?://|" "ftps?(?:://|\\.)|" //ftp:// ftp. "gemini://|" // gemini "news:|nntp:|" "www\\.|" "[[:alnum:]][[:alnum:]_+-\\.]*@" //email ")" "[" "[:alnum:]$_\\-\\.!+*()',%#~" ";:/?&=@" "]+" /* uri */, G_REGEX_OPTIMIZE, (GRegexMatchFlags)0, NULL); } ~fooregex() { g_regex_unref(regex); } operator GRegex*() {return regex;} GRegex *regex; }; fooregex regex; }; bool pan :: url_find (const StringView& text, StringView& setme_url) { if (text.empty()) return false; GMatchInfo *match = NULL; if (!g_regex_match(regex, text.str, (GRegexMatchFlags)0, &match)) { g_match_info_free(match); return false; } int start,end; g_match_info_fetch_pos(match, 0, &start, &end); g_match_info_free(match); setme_url.assign(text.str+start, end - start); // for urls at the end of a sentence. if (!setme_url.empty() && strchr("?!.,", setme_url.back())) --setme_url.len; if (start > 0) { const char c = text.str[ start - 1 ]; if (c == '\'' && c == setme_url.back() ) --setme_url.len; } return true; } // This is a cheap little hack that should eventually be replaced // with something more robust. namespace pan { bool url_findx (const StringView& text, StringView& setme_url); } bool pan :: url_findx (const StringView& text, StringView& setme_url) { if (text.empty()) return false; char bracket (0); const char * start (nullptr); for (const char *pch (text.begin()), *end(text.end()); pch!=end; ++pch) { if (*pch=='h' && (end-pch>7) && !memcmp(pch,"http://",7)) { start = pch; break; } else if (*pch=='h' && (end-pch>8) && !memcmp(pch,"https://",8)) { start = pch; break; } else if (*pch=='f' && (end-pch>6) && !memcmp(pch,"ftp://", 6)) { start = pch; break; } if (*pch=='g' && (end-pch>9) && !memcmp(pch,"gemini://",9)) { start = pch; break; } else if (*pch=='n' && (end-pch>5) && !memcmp(pch,"news:",5)) { start = pch; break; } else if (*pch=='f' && (end-pch>5) && !memcmp(pch,"ftp.",4) && isalpha(pch[4])) { start = pch; break; } else if (*pch=='w' && (end-pch>5) && !memcmp(pch,"www.",4) && isalpha(pch[4])) { start = pch; break; } else if (*pch=='@') { const char *b, *e; for (b=pch; b!=text.str && !isspace(b[-1]); ) --b; for (e=pch; e!=text.end() && !isspace(e[1]); ) ++e; StringView v (b, e+1-b); while (!v.empty() && strchr(">?!.,", v.back())) --v.len; if (GNKSA::check_from(v,false) == GNKSA::OK) { setme_url = v; return true; } } } if (!start) return false; if (start != text.begin()) { char ch (start[-1]); if (ch == '[') bracket = ']'; else if (ch == '<') bracket = '>'; } const char * pch; for (pch=start; pch!=text.end(); ++pch) { if (bracket) { if (*pch == bracket) break; } else if (isspace(*pch) || strchr("{}()|[]<>",*pch)) break; } setme_url.assign (start, pch-start); // for urls at the end of a sentence. if (!setme_url.empty() && strchr("?!.,", setme_url.back())) --setme_url.len; return true; } pan-0.162/pan/usenet-utils/url-find.h000066400000000000000000000017271475412772400174340ustar00rootroot00000000000000/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Pan - A Newsreader for Gtk+ * Copyright (C) 2002-2006 Charles Kerr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * */ #ifndef __URL_FIND_H__ #define __URL_FIND_H__ #include namespace pan { bool url_find (const StringView& text, StringView& setme_url); } #endif /* __URL_FIND_H__ */ pan-0.162/po/000077500000000000000000000000001475412772400127335ustar00rootroot00000000000000pan-0.162/po/CMakeLists.txt000066400000000000000000000011661475412772400154770ustar00rootroot00000000000000# see https://cmake.org/cmake/help/latest/module/FindGettext.html find_package(Gettext) file(STRINGS "${CMAKE_SOURCE_DIR}/po/LINGUAS" lang_list REGEX "^[a-z]") foreach(lang IN LISTS lang_list) # this creates the gmo file in build directory instead of po/*.gmo. Although this is # a change from previous build system, it may not be a problem GETTEXT_PROCESS_PO_FILES( ${lang} ALL PO_FILES "${CMAKE_SOURCE_DIR}/po/${lang}.po" ) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${lang}.gmo DESTINATION "${CMAKE_INSTALL_LOCALEDIR}/${lang}/LC_MESSAGES/" RENAME pan.mo ) endforeach() add_dependencies(pan pofiles) pan-0.162/po/LINGUAS000066400000000000000000000003361475412772400137620ustar00rootroot00000000000000# please keep this list sorted alphabetically # am ar az bg bs ca cs da de dz el en_CA en_GB eo es et eu fi fr ga gl hr hu id ie it ja ka ko lt lv ms nb nl oc pl pt pt_BR ro ru sk sl sq sr sr@latin sv tr uk vi zh_CN zh_TW pan-0.162/po/Makevars000066400000000000000000000066651475412772400144440ustar00rootroot00000000000000# Makefile variables for PO directory in any package using GNU gettext. # Usually the message domain is the same as the package name. DOMAIN = $(PACKAGE) # These two variables depend on the location of this directory. subdir = po top_builddir = .. # These options get passed to xgettext. XGETTEXT_OPTIONS = --from-code=UTF-8 --keyword=_ --keyword=N_ --keyword=C_:1c,2 --keyword=NC_:1c,2 --keyword=g_dngettext:2,3 --add-comments # This is the copyright holder that gets inserted into the header of the # $(DOMAIN).pot file. Set this to the copyright holder of the surrounding # package. (Note that the msgstr strings, extracted from the package's # sources, belong to the copyright holder of the package.) Translators are # expected to transfer the copyright for their translations to this person # or entity, or to disclaim their copyright. The empty string stands for # the public domain; in this case the translators are expected to disclaim # their copyright. COPYRIGHT_HOLDER = Charles Kerr and others # This tells whether or not to prepend "GNU " prefix to the package # name that gets inserted into the header of the $(DOMAIN).pot file. # Possible values are "yes", "no", or empty. If it is empty, try to # detect it automatically by scanning the files in $(top_srcdir) for # "GNU packagename" string. PACKAGE_GNU = no # This is the email address or URL to which the translators shall report # bugs in the untranslated strings: # - Strings which are not entire sentences, see the maintainer guidelines # in the GNU gettext documentation, section 'Preparing Strings'. # - Strings which use unclear terms or require additional context to be # understood. # - Strings which make invalid assumptions about notation of date, time or # money. # - Pluralisation problems. # - Incorrect English spelling. # - Incorrect formatting. # It can be your email address, or a mailing list address where translators # can write to without being subscribed, or the URL of a web page through # which the translators can contact you. MSGID_BUGS_ADDRESS = https://gitlab.gnome.org/GNOME/pan/issues # This is the list of locale categories, beyond LC_MESSAGES, for which the # message catalogs shall be used. It is usually empty. EXTRA_LOCALE_CATEGORIES = # This tells whether the $(DOMAIN).pot file contains messages with an 'msgctxt' # context. Possible values are "yes" and "no". Set this to yes if the # package uses functions taking also a message context, like pgettext(), or # if in $(XGETTEXT_OPTIONS) you define keywords with a context argument. USE_MSGCTXT = yes # These options get passed to msgmerge. # Useful options are in particular: # --previous to keep previous msgids of translated messages, # --quiet to reduce the verbosity. MSGMERGE_OPTIONS = # These options get passed to msginit. # If you want to disable line wrapping when writing PO files, add # --no-wrap to MSGMERGE_OPTIONS, XGETTEXT_OPTIONS, and # MSGINIT_OPTIONS. MSGINIT_OPTIONS = # This tells whether or not to regenerate a PO file when $(DOMAIN).pot # has changed. Possible values are "yes" and "no". Set this to no if # the POT file is checked in the repository and the version control # program ignores timestamps. PO_DEPENDS_ON_POT = no # This tells whether or not to forcibly update $(DOMAIN).pot and # regenerate PO files on "make dist". Possible values are "yes" and # "no". Set this to no if the POT file and PO files are maintained # externally. DIST_DEPENDS_ON_UPDATE_PO = no pan-0.162/po/POTFILES.in000066400000000000000000000031101475412772400145030ustar00rootroot00000000000000# List of source files containing translatable strings. # Please keep this file sorted alphabetically. org.gnome.pan.desktop.in org.gnome.pan.metainfo.xml.in pan/data/article-cache.cc pan/data/cert-store.cc pan/data/encode-cache.cc pan/data-impl/data-impl.cc pan/data-impl/data-io.cc pan/data-impl/groups.cc pan/data-impl/headers.cc pan/data-impl/profiles.cc pan/data-impl/server.cc pan/data-impl/xover.cc pan/general/e-util.cc pan/general/file-util.cc pan/general/line-reader.cc pan/general/text-match.cc pan/general/utf8-utils.cc pan/gui/actions.cc pan/gui/body-pane.cc pan/gui/dl-headers-ui.cc pan/gui/e-action-combo-box.c pan/gui/e-charset.c pan/gui/e-charset-combo-box.c pan/gui/e-charset-dialog.c pan/gui/e-cte-dialog.c pan/gui/editor-spawner.cc pan/gui/group-pane.cc pan/gui/group-prefs-dialog.cc pan/gui/gui.cc pan/gui/header-pane.cc pan/gui/log-ui.cc pan/gui/pan.cc pan/gui/pan-file-entry.cc pan/gui/post-ui.cc pan/gui/prefs.cc pan/gui/prefs-ui.cc pan/gui/profiles-dialog.cc pan/gui/save-attach-ui.cc pan/gui/save-ui.cc pan/gui/score-add-ui.cc pan/gui/score-view-ui.cc pan/gui/server-ui.cc pan/gui/task-pane.cc pan/gui/url.cc pan/tasks/decoder.cc pan/tasks/encoder.cc pan/tasks/nntp.cc pan/tasks/nntp-pool.cc pan/tasks/queue.cc pan/tasks/socket-impl-gio.cc pan/tasks/socket-impl-openssl.cc pan/tasks/task-article.cc pan/tasks/task-groups.cc pan/tasks/task-post.cc pan/tasks/task-upload.cc pan/tasks/task-xover.cc pan/usenet-utils/filter-info.cc pan/usenet-utils/gnksa.cc pan/usenet-utils/message-check.cc pan/usenet-utils/scorefile.cc pan/usenet-utils/ssl-utils.cc pan/usenet-utils/text-massager.cc pan-0.162/po/POTFILES.skip000066400000000000000000000001701475412772400150460ustar00rootroot00000000000000# List of source files that should *not* be translated. # Please keep this file sorted alphabetically. uulib/uuencode.c pan-0.162/po/am.po000066400000000000000000002347031475412772400137010ustar00rootroot00000000000000# Translations into the Amharic Language. # Copyright (C) 2002 Free Software Foundation, Inc. # This file is distributed under the same license as the pan package. # Ge'ez Frontier Foundation , 2002. # # msgid "" msgstr "" "Project-Id-Version: pan\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-04-04 20:58+0200\n" "PO-Revision-Date: 2003-02-07 17:46+EDT\n" "Last-Translator: Ge'ez Frontier Foundation \n" "Language-Team: Amharic \n" "Language: am\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../pan.desktop.in.h:1 msgid "Pan Newsreader" msgstr "" #: ../pan.desktop.in.h:2 #, fuzzy msgid "Read and Post Usenet Articles" msgstr "የተመረጠው ጽሑፍ Rot13" #: ../pan/data/article-cache.cc:143 ../pan/data/encode-cache.cc:62 #, fuzzy, c-format msgid "Error opening directory: \"%s\": %s" msgstr "ፋይል \"%s\"ን ለማንበብ ስህተት አለ፦ %s" #: ../pan/data/article-cache.cc:231 ../pan/data/article-cache.cc:242 #: ../pan/data-impl/data-io.cc:187 ../pan/data-impl/data-io.cc:211 #: ../pan/gui/post-ui.cc:1639 #, c-format msgid "Unable to save \"%s\" %s" msgstr "" #: ../pan/data/article-cache.cc:355 #, fuzzy, c-format msgid "Error opening file \"%s\" %s" msgstr "ፋይል \"%s\"ን ለማንበብ ስህተት አለ፦ %s" #: ../pan/data/article-cache.cc:386 ../pan/data-impl/profiles.cc:174 #: ../pan/data-impl/server.cc:436 ../pan/general/file-util.cc:298 #: ../pan/gui/post-ui.cc:609 ../pan/gui/task-pane.cc:691 #, c-format msgid "Error reading file \"%s\": %s" msgstr "ፋይል \"%s\"ን ለማንበብ ስህተት አለ፦ %s" #: ../pan/data/cert-store.cc:238 #, fuzzy, c-format msgid "Error opening SSL certificate directory: \"%s\": %s" msgstr "ፋይል \"%s\"ን ለማንበብ ስህተት አለ፦ %s" #: ../pan/data/cert-store.cc:270 #, c-format msgid "Succesfully added %d SSL PEM certificate(s) to Certificate Store." msgstr "" #. load_group_descriptions (*_data_io); #: ../pan/data-impl/data-impl.cc:109 #, c-format msgid "Loaded data backend in %.1f seconds" msgstr "" #: ../pan/data-impl/data-impl.cc:140 msgid "Pan newsreader server passwords" msgstr "" #: ../pan/data-impl/groups.cc:94 #, c-format msgid "Skipping newsrc file for server \"%s\"" msgstr "" #: ../pan/data-impl/headers.cc:606 #, c-format msgid "Expired %lu old articles from \"%s\"" msgstr "" #: ../pan/data-impl/headers.cc:613 #, c-format msgid "" "Unsupported data version for %s headers: %d.\n" "Are you running an old version of Pan by accident?" msgstr "" #: ../pan/data-impl/headers.cc:628 #, c-format msgid "Loaded %lu articles for \"%s\" in %.1f seconds (%.0f per second)" msgstr "" #: ../pan/data-impl/headers.cc:857 #, c-format msgid "" "Saved %lu parts, %lu articles in \"%s\" in %.1f seconds (%.0f articles/sec)" msgstr "" #: ../pan/data-impl/headers.cc:1173 #, c-format msgid "Added %lu articles to %s." msgstr "" #: ../pan/data-impl/server.cc:234 #, c-format msgid "There seems to be no Password set for Server %s." msgstr "" #: ../pan/data-impl/server.cc:238 msgid "The Gnome keyring denied access to the Passwords." msgstr "" #: ../pan/data-impl/xover.cc:239 #, fuzzy, c-format msgid "Error reading from %s: unknown group \"%s\"" msgstr "ፋይል \"%s\"ን ለማንበብ ስህተት አለ፦ %s" #. build the locale strings #: ../pan/general/e-util.cc:213 msgid "%l:%M %p" msgstr "" #: ../pan/general/e-util.cc:214 msgid "Today %l:%M %p" msgstr "" #: ../pan/general/e-util.cc:215 msgid "%a %l:%M %p" msgstr "" #: ../pan/general/e-util.cc:216 msgid "%b %d %l:%M %p" msgstr "" #: ../pan/general/e-util.cc:217 msgid "%b %d %Y" msgstr "" #: ../pan/general/e-util.cc:242 msgid "?" msgstr "" #: ../pan/general/text-match.cc:193 #, c-format msgid "Can't use regular expression \"%s\": %s" msgstr "" #: ../pan/general/utf8-utils.cc:213 msgid "Couldn't determine article encoding. Non-UTF8 characters were removed." msgstr "" #: ../pan/gui/actions.cc:274 ../pan/gui/post-ui.cc:417 #, fuzzy msgid "_File" msgstr "/ፋይል (_F)" #: ../pan/gui/actions.cc:275 ../pan/gui/post-ui.cc:418 #, fuzzy msgid "_Edit" msgstr "/አስተካክል (_E)" #: ../pan/gui/actions.cc:276 ../pan/gui/prefs-ui.cc:1064 msgid "_Layout" msgstr "እቅድ (_L)" #: ../pan/gui/actions.cc:277 #, fuzzy msgid "_Group Pane" msgstr "መድረክ" #: ../pan/gui/actions.cc:278 msgid "_Header Pane" msgstr "" #: ../pan/gui/actions.cc:279 msgid "_Body Pane" msgstr "" #: ../pan/gui/actions.cc:280 #, fuzzy msgid "_View" msgstr "/ተመልከት (_V)" #: ../pan/gui/actions.cc:281 #, fuzzy msgid "Filte_r" msgstr "/አጣራ (_R)" #: ../pan/gui/actions.cc:282 #, fuzzy msgid "_Go" msgstr "/ሂድ ወደ (_G)" #: ../pan/gui/actions.cc:283 ../pan/gui/prefs-ui.cc:1091 #, fuzzy msgid "_Actions" msgstr "ትግባሮች" #: ../pan/gui/actions.cc:284 msgid "_Articles" msgstr "" #: ../pan/gui/actions.cc:285 #, fuzzy msgid "G_roups" msgstr "መድረኮች" #: ../pan/gui/actions.cc:286 ../pan/gui/actions.cc:287 msgid "_Post" msgstr "" #: ../pan/gui/actions.cc:288 msgid "_Help" msgstr "መረጃ (_H)" #: ../pan/gui/actions.cc:291 #, fuzzy msgid "_Read Group" msgstr "/መድረክ አጥፉ (_T)" #: ../pan/gui/actions.cc:292 #, fuzzy msgid "Read Group" msgstr "/መድረክ አጥፉ (_T)" #: ../pan/gui/actions.cc:296 #, fuzzy msgid "_Mark Selected Groups Read" msgstr "/መድረክ አጥፉ (_T)" #: ../pan/gui/actions.cc:297 msgid "Mark Selected Groups Read" msgstr "" #: ../pan/gui/actions.cc:301 #, fuzzy msgid "_Delete Selected Groups' Articles" msgstr "/መድረክ አጥፉ (_T)" #: ../pan/gui/actions.cc:302 msgid "Delete Selected Groups' Articles" msgstr "" #: ../pan/gui/actions.cc:306 msgid "Get New _Headers in Selected Groups" msgstr "" #: ../pan/gui/actions.cc:307 #, fuzzy msgid "Get New Headers in Selected Groups" msgstr "/መድረክ አጥፉ (_T)" #: ../pan/gui/actions.cc:311 ../pan/gui/actions.cc:316 msgid "Get New _Headers in Subscribed Groups" msgstr "" #: ../pan/gui/actions.cc:312 ../pan/gui/actions.cc:317 msgid "Get New Headers in Subscribed Groups" msgstr "" #: ../pan/gui/actions.cc:321 #, fuzzy msgid "Get _Headers..." msgstr "ተጨማሪ አናቶች" #: ../pan/gui/actions.cc:322 #, fuzzy msgid "Get Headers..." msgstr "ተጨማሪ አናቶች" #: ../pan/gui/actions.cc:326 ../pan/gui/actions.cc:327 #, fuzzy msgid "Refresh Group List" msgstr "መድረኮች" #: ../pan/gui/actions.cc:331 msgid "_Subscribe" msgstr "" #: ../pan/gui/actions.cc:332 msgid "Subscribe" msgstr "" #: ../pan/gui/actions.cc:336 msgid "_Unsubscribe" msgstr "" #: ../pan/gui/actions.cc:337 msgid "Unsubscribe" msgstr "" #: ../pan/gui/actions.cc:341 #, fuzzy msgid "_Save Articles..." msgstr "ግለ መግለጫ" #: ../pan/gui/actions.cc:342 #, fuzzy msgid "Save Articles..." msgstr "ግለ መግለጫ" #: ../pan/gui/actions.cc:346 #, fuzzy msgid "Save Articles from Selected _NZB..." msgstr "ግለ መግለጫ" #: ../pan/gui/actions.cc:347 #, fuzzy msgid "Save Articles from Selected NZB" msgstr "ግለ መግለጫ" #: ../pan/gui/actions.cc:351 #, fuzzy msgid "Save Articles to an NZB _File..." msgstr "ግለ መግለጫ" #: ../pan/gui/actions.cc:352 msgid "Save Articles to an NZB File" msgstr "" #: ../pan/gui/actions.cc:356 ../pan/gui/actions.cc:357 #, fuzzy msgid "Print" msgstr "ፓን፦ አትም" #: ../pan/gui/actions.cc:361 msgid "_Import NZB Files..." msgstr "" #: ../pan/gui/actions.cc:366 msgid "_Cancel Last Task" msgstr "" #: ../pan/gui/actions.cc:371 msgid "_Task Manager" msgstr "" #: ../pan/gui/actions.cc:376 msgid "_Event Log" msgstr "" #: ../pan/gui/actions.cc:381 #, fuzzy msgid "_Quit" msgstr "/አስተካክል (_E)" #: ../pan/gui/actions.cc:386 msgid "Select _All Articles" msgstr "" #: ../pan/gui/actions.cc:391 msgid "_Deselect All Articles" msgstr "" #: ../pan/gui/actions.cc:396 msgid "Add Su_bthreads to Selection" msgstr "" #: ../pan/gui/actions.cc:401 msgid "Add _Threads to Selection" msgstr "" #: ../pan/gui/actions.cc:406 msgid "Add _Similar Articles to Selection" msgstr "" #: ../pan/gui/actions.cc:411 msgid "Select Article _Body" msgstr "" #: ../pan/gui/actions.cc:416 #, fuzzy msgid "Edit _Preferences" msgstr "/አስተካክል (_E)/---" #: ../pan/gui/actions.cc:421 #, fuzzy msgid "Edit Selected _Group's Preferences" msgstr "/አስተካክል (_E)/---" #: ../pan/gui/actions.cc:426 ../pan/gui/post-ui.cc:434 #, fuzzy msgid "Edit P_osting Profiles" msgstr "ፓን፦ ግለ መግለጫ" #: ../pan/gui/actions.cc:431 #, fuzzy msgid "Edit _News Servers" msgstr "/መሣሪያዎች (_T)/አዲስ ሰርቨር... (_S)" #: ../pan/gui/actions.cc:436 msgid "Jump to _Group Tab" msgstr "" #: ../pan/gui/actions.cc:441 #, fuzzy msgid "Jump to _Header Tab" msgstr "የተለየ አናቶች" #: ../pan/gui/actions.cc:446 #, fuzzy msgid "Jump to _Body Tab" msgstr "የተለየ አናቶች" #: ../pan/gui/actions.cc:451 #, fuzzy msgid "_Rot13 Selected Text" msgstr "የተመረጠው ጽሑፍ Rot13" #: ../pan/gui/actions.cc:456 msgid "Clear _Header Pane" msgstr "" #: ../pan/gui/actions.cc:461 #, fuzzy msgid "Clear _Body Pane" msgstr "መድረክ" #: ../pan/gui/actions.cc:466 #, fuzzy msgid "Cache Article" msgstr "ግለ መግለጫ" #: ../pan/gui/actions.cc:471 #, fuzzy msgid "Read Article" msgstr "ግለ መግለጫ" #: ../pan/gui/actions.cc:476 #, fuzzy msgid "Show Article Information" msgstr "የግለ መግለጫ መረጃ" #: ../pan/gui/actions.cc:481 msgid "Read _More" msgstr "" #: ../pan/gui/actions.cc:482 #, fuzzy msgid "Read More" msgstr "አንብብ" #: ../pan/gui/actions.cc:486 msgid "Read _Back" msgstr "" #: ../pan/gui/actions.cc:487 #, fuzzy msgid "Read Back" msgstr "አንብብ" #: ../pan/gui/actions.cc:491 #, fuzzy msgid "Next _Unread Group" msgstr "/መድረክ አጥፉ (_T)" #: ../pan/gui/actions.cc:496 #, fuzzy msgid "Next _Group" msgstr "(መድረክ የለም)" #: ../pan/gui/actions.cc:501 msgid "Next _Unread Article" msgstr "" #: ../pan/gui/actions.cc:502 msgid "Next Unread Article" msgstr "" #: ../pan/gui/actions.cc:506 msgid "Next _Article" msgstr "" #: ../pan/gui/actions.cc:507 #, fuzzy msgid "Next Article" msgstr "ግለ መግለጫ" #: ../pan/gui/actions.cc:511 msgid "Next _Watched Article" msgstr "" #: ../pan/gui/actions.cc:516 msgid "Next Unread _Thread" msgstr "" #: ../pan/gui/actions.cc:517 msgid "Next Unread Thread" msgstr "" #: ../pan/gui/actions.cc:521 msgid "Next Threa_d" msgstr "" #: ../pan/gui/actions.cc:526 msgid "Pre_vious Article" msgstr "" #: ../pan/gui/actions.cc:531 msgid "Previous _Thread" msgstr "" #: ../pan/gui/actions.cc:536 msgid "_Parent Article" msgstr "" #: ../pan/gui/actions.cc:541 #, fuzzy msgid "Ignore _Author" msgstr "ደራሲ" #: ../pan/gui/actions.cc:545 msgid "_Watch Thread" msgstr "" #: ../pan/gui/actions.cc:550 msgid "_Ignore Thread" msgstr "" #: ../pan/gui/actions.cc:555 ../pan/gui/actions.cc:556 msgid "_Toggle Flag On/Off for Thread" msgstr "" #: ../pan/gui/actions.cc:560 ../pan/gui/actions.cc:561 msgid "_Turn Flag Off for Thread" msgstr "" #: ../pan/gui/actions.cc:565 ../pan/gui/actions.cc:566 msgid "_Select All Flagged Threads" msgstr "" #: ../pan/gui/actions.cc:570 ../pan/gui/actions.cc:571 msgid "_Go to Next Flagged Thread" msgstr "" #: ../pan/gui/actions.cc:575 ../pan/gui/actions.cc:576 msgid "_Go to Last Flagged Thread" msgstr "" #: ../pan/gui/actions.cc:580 ../pan/gui/actions.cc:581 msgid "_Invert Selection" msgstr "" #: ../pan/gui/actions.cc:585 msgid "Edit Article's Watch/Ignore/Score..." msgstr "" #: ../pan/gui/actions.cc:590 #, fuzzy msgid "Add a _Scoring Rule..." msgstr "አዲስ ግለ መግለጫ" #: ../pan/gui/actions.cc:595 msgid "Cance_l Article..." msgstr "" #: ../pan/gui/actions.cc:600 msgid "_Supersede Article..." msgstr "" #: ../pan/gui/actions.cc:605 msgid "_Delete Article" msgstr "" #: ../pan/gui/actions.cc:610 msgid "Clear Article Cache" msgstr "" #: ../pan/gui/actions.cc:615 msgid "_Mark Article as Read" msgstr "" #: ../pan/gui/actions.cc:620 msgid "Mark Article as _Unread" msgstr "" #: ../pan/gui/actions.cc:626 #, fuzzy msgid "_Mark Thread as Read" msgstr "/መድረክ አጥፉ (_T)" #: ../pan/gui/actions.cc:631 msgid "Mark Thread as _Unread" msgstr "" #: ../pan/gui/actions.cc:636 msgid "_Post to Newsgroup" msgstr "" #: ../pan/gui/actions.cc:637 msgid "Post to Newsgroup" msgstr "" #: ../pan/gui/actions.cc:641 msgid "_Followup to Newsgroup" msgstr "" #: ../pan/gui/actions.cc:642 msgid "Followup to Newsgroup" msgstr "" #: ../pan/gui/actions.cc:646 #, fuzzy msgid "_Reply to Author in Mail" msgstr "ደራሲ፦ (_A)" #: ../pan/gui/actions.cc:651 #, fuzzy msgid "_Pan Home Page" msgstr "/መረጃ (_H)/የፓን ማነሻ ገጽ... (_H)" #: ../pan/gui/actions.cc:656 msgid "Give _Feedback or Report a Bug..." msgstr "" #: ../pan/gui/actions.cc:661 msgid "_Tip Jar..." msgstr "" #: ../pan/gui/actions.cc:666 #, fuzzy msgid "_About" msgstr "ስለ" #: ../pan/gui/actions.cc:671 msgid "Edit _SSL Certificates" msgstr "" #: ../pan/gui/actions.cc:685 #, fuzzy msgid "_Thread Headers" msgstr "ተጨማሪ አናቶች" #: ../pan/gui/actions.cc:686 msgid "_Wrap Article Body" msgstr "" #: ../pan/gui/actions.cc:687 msgid "Mute _Quoted Text" msgstr "" #: ../pan/gui/actions.cc:688 msgid "Show All _Headers in Body Pane" msgstr "" #: ../pan/gui/actions.cc:689 msgid "Show _Smilies as Graphics" msgstr "" #: ../pan/gui/actions.cc:690 msgid "Show *Bold*, __Underlined__, and /Italic/" msgstr "" #: ../pan/gui/actions.cc:691 msgid "Size Pictures to _Fit" msgstr "" #: ../pan/gui/actions.cc:692 msgid "Use _Monospace Font" msgstr "" #: ../pan/gui/actions.cc:693 msgid "Set Focus to Images" msgstr "" #: ../pan/gui/actions.cc:694 msgid "Highlight _URLs" msgstr "" #: ../pan/gui/actions.cc:697 #, fuzzy msgid "_Work Online" msgstr "ኦንላይን" #: ../pan/gui/actions.cc:698 #, fuzzy msgid "_Tabbed Layout" msgstr "እቅድ (_L)" #: ../pan/gui/actions.cc:699 #, fuzzy msgid "Show Group _Pane" msgstr "መድረክ" #: ../pan/gui/actions.cc:700 msgid "Show Hea_der Pane" msgstr "" #: ../pan/gui/actions.cc:701 msgid "Show Bod_y Pane" msgstr "" #: ../pan/gui/actions.cc:702 msgid "Show _Toolbar" msgstr "" #: ../pan/gui/actions.cc:703 #, fuzzy msgid "Abbreviate Group Names" msgstr "መድረክ" #: ../pan/gui/actions.cc:705 msgid "Match Only _Unread Articles" msgstr "" #: ../pan/gui/actions.cc:705 msgid "Match Only Unread Articles" msgstr "" #: ../pan/gui/actions.cc:706 msgid "Match Only _Cached Articles" msgstr "" #: ../pan/gui/actions.cc:706 msgid "Match Only Cached Articles" msgstr "" #: ../pan/gui/actions.cc:707 msgid "Match Only _Complete Articles" msgstr "" #: ../pan/gui/actions.cc:707 msgid "Match Only Complete Articles" msgstr "" #: ../pan/gui/actions.cc:708 msgid "Match Only _My Articles" msgstr "" #: ../pan/gui/actions.cc:708 #, fuzzy msgid "Match Only My Articles" msgstr "ፓን፦ ሰርቨሮች" #: ../pan/gui/actions.cc:709 msgid "Match Only _Watched Articles" msgstr "" #: ../pan/gui/actions.cc:709 msgid "Match Only Watched Articles" msgstr "" #: ../pan/gui/actions.cc:711 msgid "Match Scores of 9999 (_Watched)" msgstr "" #: ../pan/gui/actions.cc:712 msgid "Match Scores of 5000...9998 (_High)" msgstr "" #: ../pan/gui/actions.cc:713 msgid "Match Scores of 1...4999 (Me_dium)" msgstr "" #: ../pan/gui/actions.cc:714 msgid "Match Scores of 0 (_Normal)" msgstr "" #: ../pan/gui/actions.cc:715 msgid "Match Scores of -9998...-1 (_Low)" msgstr "" #: ../pan/gui/actions.cc:716 msgid "Match Scores of -9999 (_Ignored)" msgstr "" #: ../pan/gui/actions.cc:718 msgid "Enable/Disable All _Rules" msgstr "" #: ../pan/gui/actions.cc:744 msgid "Show Matching _Articles" msgstr "" #: ../pan/gui/actions.cc:745 msgid "Show Matching Articles' _Threads" msgstr "" #: ../pan/gui/actions.cc:746 msgid "Show Matching Articles' _Subthreads" msgstr "" #: ../pan/gui/body-pane.cc:1011 #, c-format msgid "Unnamed File" msgstr "" #: ../pan/gui/body-pane.cc:1092 ../pan/gui/gui.cc:1864 #: ../pan/gui/header-pane.cc:1188 ../pan/gui/header-pane.cc:1617 #: ../pan/gui/post-ui.cc:2496 ../pan/gui/prefs-ui.cc:833 #: ../pan/gui/score-add-ui.cc:139 msgid "Subject" msgstr "ጉዳዩ" #: ../pan/gui/body-pane.cc:1094 ../pan/gui/gui.cc:1864 #, fuzzy msgid "From" msgstr "ከ" #: ../pan/gui/body-pane.cc:1096 ../pan/gui/gui.cc:1865 #: ../pan/gui/header-pane.cc:1695 ../pan/gui/log-ui.cc:305 #: ../pan/gui/prefs-ui.cc:829 msgid "Date" msgstr "ቀን" #: ../pan/gui/body-pane.cc:1103 #, fuzzy msgid "Newsgroups" msgstr "መድረኮች" #: ../pan/gui/body-pane.cc:1108 msgid "Followup-To" msgstr "" #: ../pan/gui/body-pane.cc:1118 msgid "Reply-To" msgstr "" #: ../pan/gui/body-pane.cc:1160 msgid " from " msgstr "" #: ../pan/gui/body-pane.cc:1162 msgid " at " msgstr "" #: ../pan/gui/body-pane.cc:1264 #, c-format msgid "" "This is a PGP-Signed message.\n" "\n" "Signer : %s ('%s')\n" "Valid until : %s\n" "Created on : %s" msgstr "" #: ../pan/gui/body-pane.cc:1269 msgid "always" msgstr "" #: ../pan/gui/body-pane.cc:1485 msgid "Copy _URL" msgstr "" #: ../pan/gui/body-pane.cc:1680 #, fuzzy msgid "Save attachment as ...." msgstr "ግለ መግለጫ" #: ../pan/gui/body-pane.cc:1683 msgid "Save all attachments" msgstr "" #. add a toolbar for attachments #: ../pan/gui/body-pane.cc:1753 msgid "Attachments" msgstr "" #. update the titlebar #: ../pan/gui/dl-headers-ui.cc:106 ../pan/gui/gui.cc:973 #: ../pan/gui/gui.cc:1592 ../pan/gui/gui.cc:1893 #: ../pan/gui/score-add-ui.cc:602 #, fuzzy msgid "Pan" msgstr "ፓን " #: ../pan/gui/dl-headers-ui.cc:112 #, fuzzy, c-format msgid "%d Group" msgid_plural "%d Groups" msgstr[0] "መድረኮች" msgstr[1] "መድረኮች" #: ../pan/gui/dl-headers-ui.cc:135 msgid "Get the last N _days' headers: " msgstr "" #: ../pan/gui/dl-headers-ui.cc:143 msgid "Get _new headers" msgstr "" #: ../pan/gui/dl-headers-ui.cc:147 #, fuzzy msgid "Get _all headers" msgstr "ሌላ የኢሜይል አናቶች" #: ../pan/gui/dl-headers-ui.cc:151 #, fuzzy msgid "Get the _latest N headers: " msgstr "ሌላ የኢሜይል አናቶች" #: ../pan/gui/e-action-combo-box.c:388 ../pan/gui/prefs-ui.cc:826 #, fuzzy msgid "Action" msgstr "ትግባሮች" #: ../pan/gui/e-action-combo-box.c:389 msgid "A GtkRadioAction" msgstr "" #: ../pan/gui/e-charset.c:51 ../pan/gui/task-pane.cc:518 msgid "Unknown" msgstr "ያልታወቀ" #: ../pan/gui/e-charset.c:52 msgid "Arabic" msgstr "" #: ../pan/gui/e-charset.c:53 msgid "Baltic" msgstr "ባቲክ" #: ../pan/gui/e-charset.c:54 msgid "Central European" msgstr "መካከለኛ አውሮፓውያን" #: ../pan/gui/e-charset.c:55 #, fuzzy msgid "Chinese" msgstr "መስመሮች" #: ../pan/gui/e-charset.c:56 msgid "Cyrillic" msgstr "ቄርሎሳዊ ጽሑፍ" #: ../pan/gui/e-charset.c:57 msgid "Greek" msgstr "ግሪክኛ" #: ../pan/gui/e-charset.c:58 msgid "Hebrew" msgstr "" #: ../pan/gui/e-charset.c:59 msgid "Japanese" msgstr "ጃፓንኛ" #: ../pan/gui/e-charset.c:60 msgid "Korean" msgstr "ኮሪያኛ" #: ../pan/gui/e-charset.c:61 msgid "Thai" msgstr "" #: ../pan/gui/e-charset.c:62 msgid "Turkish" msgstr "ቱርክኛ" #: ../pan/gui/e-charset.c:63 #, fuzzy msgid "Unicode" msgstr "ዩኒኮድ፣ UTF-8" #: ../pan/gui/e-charset.c:64 #, fuzzy msgid "Western European" msgstr "መካከለኛ አውሮፓውያን" #: ../pan/gui/e-charset.c:65 #, fuzzy msgid "Western European, New" msgstr "ምዕራብ፣ አዲስ" #: ../pan/gui/e-charset.c:84 ../pan/gui/e-charset.c:85 #: ../pan/gui/e-charset.c:86 #, fuzzy msgid "Traditional" msgstr "የባሕላዊው ቻይንኛ" #: ../pan/gui/e-charset.c:87 ../pan/gui/e-charset.c:88 #: ../pan/gui/e-charset.c:89 ../pan/gui/e-charset.c:90 #, fuzzy msgid "Simplified" msgstr "ቀላል ቻይንኛ" #: ../pan/gui/e-charset.c:93 #, fuzzy msgid "Ukrainian" msgstr "ቄርሎሳዊ ጽሑፍ ዩክረኒኛ" #: ../pan/gui/e-charset.c:96 msgid "Visual" msgstr "" #: ../pan/gui/e-charset-combo-box.c:93 ../pan/gui/gui.cc:2058 #: ../pan/gui/post-ui.cc:519 ../pan/gui/prefs-ui.cc:737 msgid "Character Encoding" msgstr "" #: ../pan/gui/e-charset-combo-box.c:117 msgid "Enter the character set to use" msgstr "" #: ../pan/gui/e-charset-combo-box.c:336 msgid "Other..." msgstr "" #: ../pan/gui/e-cte-dialog.c:78 msgid "Default encoding" msgstr "" #: ../pan/gui/e-cte-dialog.c:80 #, fuzzy msgid "7Bit Encoding" msgstr "መድረክ" #: ../pan/gui/e-cte-dialog.c:82 #, fuzzy msgid "8Bit Encoding" msgstr "መድረክ" #: ../pan/gui/e-cte-dialog.c:84 #, fuzzy msgid "BASE64 Encoding" msgstr "መድረክ" #: ../pan/gui/e-cte-dialog.c:86 #, fuzzy msgid "Quoted-Printable Encoding" msgstr "መድረክ" #: ../pan/gui/group-pane.cc:500 #, fuzzy msgid "Group" msgstr "መድረኮች" #: ../pan/gui/group-pane.cc:501 #, fuzzy msgid "Group (regex)" msgstr "መድረክ" #: ../pan/gui/group-pane.cc:913 msgid "Subscribed Groups" msgstr "" #: ../pan/gui/group-pane.cc:914 #, fuzzy msgid "Other Groups" msgstr "መድረኮች" #: ../pan/gui/group-pane.cc:954 ../pan/gui/score-view-ui.cc:157 #, fuzzy msgid "Name" msgstr "ስም፦ (_N)" #: ../pan/gui/group-prefs-dialog.cc:156 #, fuzzy msgid "No Profiles defined in Edit|Posting Profiles." msgstr "ፓን፦ ግለ መግለጫ" #: ../pan/gui/group-prefs-dialog.cc:231 #, fuzzy msgid "Pan: Group Preferences" msgstr "የፓን ምርጫዎች" #: ../pan/gui/group-prefs-dialog.cc:247 #, fuzzy, c-format msgid "Properties for Groups" msgstr "ለ\"%s\"ን ምርጫዎች" #: ../pan/gui/group-prefs-dialog.cc:249 #, fuzzy, c-format msgid "Properties for %s" msgstr "ለ\"%s\"ን ምርጫዎች" #: ../pan/gui/group-prefs-dialog.cc:257 msgid "Character _encoding:" msgstr "" #: ../pan/gui/group-prefs-dialog.cc:259 msgid "Directory for Saving Attachments" msgstr "" #: ../pan/gui/group-prefs-dialog.cc:269 msgid "Directory for _saving attachments:" msgstr "" #: ../pan/gui/group-prefs-dialog.cc:271 #, fuzzy msgid "Posting _profile:" msgstr "ፓን፦ ግለ መግለጫ" #: ../pan/gui/group-prefs-dialog.cc:277 msgid "Spellchecker _language:" msgstr "" #: ../pan/gui/gui.cc:273 msgid "Open the Task Manager" msgstr "" #: ../pan/gui/gui.cc:301 msgid "Open the Event Log" msgstr "" #: ../pan/gui/gui.cc:561 msgid "Save NZB's Files" msgstr "" #: ../pan/gui/gui.cc:588 msgid "Untitled.nzb" msgstr "" #: ../pan/gui/gui.cc:590 #, fuzzy msgid "Save NZB File as..." msgstr "ግለ መግለጫ" #: ../pan/gui/gui.cc:757 msgid "Import NZB Files" msgstr "" #: ../pan/gui/gui.cc:765 ../pan/gui/post-ui.cc:3197 #, fuzzy msgid "NZB Files" msgstr "ፋይሎች" #: ../pan/gui/gui.cc:770 #, fuzzy msgid "All Files" msgstr "ፋይሎች" #: ../pan/gui/gui.cc:1258 msgid "Unable to supersede article." msgstr "" #: ../pan/gui/gui.cc:1259 ../pan/gui/gui.cc:1333 msgid "The article doesn't match any of your posting profiles." msgstr "" #: ../pan/gui/gui.cc:1306 msgid "Revise and send this article to replace the old one." msgstr "" #: ../pan/gui/gui.cc:1307 ../pan/gui/gui.cc:1370 msgid "Be patient! It will take time for your changes to take effect." msgstr "" #: ../pan/gui/gui.cc:1332 msgid "Unable to cancel article." msgstr "" #: ../pan/gui/gui.cc:1369 msgid "Send this article to ask your server to cancel your other one." msgstr "" #: ../pan/gui/gui.cc:1387 msgid "You marked some articles for deletion" msgstr "" #: ../pan/gui/gui.cc:1388 msgid "Are you sure you want to delete them?" msgstr "" #: ../pan/gui/gui.cc:1413 #, fuzzy msgid "Always trust" msgstr "ማቀናጃ" #: ../pan/gui/gui.cc:1416 msgid "Do you want to accept it permanently (deletable afterwards) ?" msgstr "" #: ../pan/gui/gui.cc:1595 msgid "Copyright \\u00A9 2002-2012 Charles Kerr and others" msgstr "" #: ../pan/gui/gui.cc:1600 msgid "translator-credits" msgstr "" #: ../pan/gui/gui.cc:1709 #, fuzzy msgid "_1. Group Pane" msgstr "መድረክ" #: ../pan/gui/gui.cc:1710 msgid "_2. Header Pane" msgstr "" #: ../pan/gui/gui.cc:1711 msgid "_3. Body Pane" msgstr "" #: ../pan/gui/gui.cc:1800 ../pan/gui/gui.cc:1815 msgid " Bytes" msgstr "" #: ../pan/gui/gui.cc:1803 msgid " KB" msgstr "" #: ../pan/gui/gui.cc:1806 msgid " MB" msgstr "" #: ../pan/gui/gui.cc:1809 msgid " GB" msgstr "" #: ../pan/gui/gui.cc:1812 msgid " TB" msgstr "" #: ../pan/gui/gui.cc:1844 #, c-format msgid "This article is complete with %d part." msgid_plural "This article has all %d parts." msgstr[0] "" msgstr[1] "" #: ../pan/gui/gui.cc:1846 #, c-format msgid "This article is missing %d part." msgid_plural "This article is missing %d of its %d parts:" msgstr[0] "" msgstr[1] "" #: ../pan/gui/gui.cc:1865 ../pan/gui/header-pane.cc:1190 #, fuzzy msgid "Message-ID" msgstr "መልዕክት-ID፦ (_M)" #: ../pan/gui/gui.cc:1866 ../pan/gui/header-pane.cc:1665 #: ../pan/gui/prefs-ui.cc:830 msgid "Lines" msgstr "መስመሮች" #: ../pan/gui/gui.cc:1866 msgid "Size" msgstr "" #: ../pan/gui/gui.cc:1867 ../pan/gui/header-pane.cc:1680 #: ../pan/gui/prefs-ui.cc:828 msgid "Bytes" msgstr "" #: ../pan/gui/gui.cc:1917 msgid "" "Error loading iconv library. Some Charsets in the GUI will not be able to be " "encoded." msgstr "" #: ../pan/gui/gui.cc:2059 #, fuzzy msgid "Body Pane Encoding" msgstr "መድረክ" #: ../pan/gui/gui.cc:2090 ../pan/gui/task-pane.cc:569 #, c-format msgid "Offline" msgstr "" #: ../pan/gui/gui.cc:2094 #, c-format msgid "Closing %d connection" msgid_plural "Closing %d connections" msgstr[0] "" msgstr[1] "" #: ../pan/gui/gui.cc:2096 ../pan/gui/gui.cc:2126 #, c-format msgid "No Connections" msgstr "" #: ../pan/gui/gui.cc:2100 #, c-format msgid "Connecting" msgstr "" #: ../pan/gui/gui.cc:2113 #, c-format msgid "%s: %d idle, %d active @ %.1f KiBps" msgstr "" #: ../pan/gui/gui.cc:2169 #, c-format msgid "No Tasks" msgstr "" #: ../pan/gui/gui.cc:2171 ../pan/gui/prefs-ui.cc:1047 msgid "Tasks" msgstr "" #: ../pan/gui/gui.cc:2182 ../pan/gui/task-pane.cc:435 #, c-format msgid "%lu tasks, %s, %.1f KiBps, ETA %d:%02d:%02d" msgstr "" #: ../pan/gui/gui.cc:2234 msgid "" "Pan is now offline. Please see \"File|Event Log\" and correct the problem, " "then use \"File|Work Online\" to continue." msgstr "" #: ../pan/gui/header-pane.cc:1186 msgid "Subject or Author" msgstr "" #: ../pan/gui/header-pane.cc:1187 msgid "Sub or Auth (regex)" msgstr "" #: ../pan/gui/header-pane.cc:1189 ../pan/gui/header-pane.cc:1649 #: ../pan/gui/prefs-ui.cc:827 ../pan/gui/score-add-ui.cc:140 msgid "Author" msgstr "ደራሲ" #: ../pan/gui/header-pane.cc:1634 ../pan/gui/prefs-ui.cc:831 msgid "Score" msgstr "" #: ../pan/gui/log-ui.cc:103 msgid "Save Event List" msgstr "" #: ../pan/gui/log-ui.cc:256 #, fuzzy msgid "Pan: Events" msgstr "ፓን፦ ሰርቨሮች" #: ../pan/gui/log-ui.cc:315 msgid "Message" msgstr "መልዕክት" #: ../pan/gui/pan.cc:330 msgid "Maximize" msgstr "" #: ../pan/gui/pan.cc:383 msgid "An Error has occurred!" msgstr "" #: ../pan/gui/pan.cc:397 #, fuzzy msgid "New Articles!" msgstr "ግለ መግለጫ" #: ../pan/gui/pan.cc:398 msgid "" "There are new\n" "articles available." msgstr "" #: ../pan/gui/pan.cc:465 msgid "Toggle on/offline" msgstr "" #: ../pan/gui/pan.cc:513 msgid "" "Thank you for trying Pan!\n" " \n" "To start newsreading, first Add a Server." msgstr "" #: ../pan/gui/pan.cc:595 msgid "" "General Options\n" " -h, --help Show this usage page.\n" " --verbose Be verbose (in non-GUI mode).\n" "\n" "URL Options\n" " --no-gui On news:message-id, dump the article to stdout.\n" "\n" "NZB Batch Options\n" " --nzb file1 file2 ... Process nzb files without launching all of Pan.\n" " -o path, --output=path Path to save attachments listed in the nzb " "files.\n" " --no-gui Only show console output, not the download " "queue.\n" msgstr "" #: ../pan/gui/pan.cc:867 msgid "Error: --no-gui used without nzb files or news:message-id." msgstr "" #: ../pan/gui/pan.cc:871 #, c-format msgid "Pan %s started" msgstr "" #: ../pan/gui/pan.cc:890 msgid "Please configure Pan's news servers before using it as an nzb client." msgstr "" #: ../pan/gui/pan.cc:1009 msgid "Pan notification" msgstr "" #: ../pan/gui/post-ui.cc:186 #, c-format msgid "Upload Queue : %ld Tasks, %ld KB (~ %.2f MB) total ." msgstr "" #: ../pan/gui/post-ui.cc:286 #, fuzzy, c-format msgid "Error setting custom spellchecker: %s" msgstr "ፋይል \"%s\"ን ለማንበብ ስህተት አለ፦ %s" #: ../pan/gui/post-ui.cc:291 ../pan/gui/post-ui.cc:300 #, c-format msgid "Error setting spellchecker: %s" msgstr "" #: ../pan/gui/post-ui.cc:419 #, fuzzy msgid "_Profile" msgstr "ግለ መግለጫ" #: ../pan/gui/post-ui.cc:420 #, fuzzy msgid "Set Editor" msgstr "ማቀናጃ" #: ../pan/gui/post-ui.cc:422 #, fuzzy msgid "_Send Article" msgstr "ግለ መግለጫ" #: ../pan/gui/post-ui.cc:422 #, fuzzy msgid "Send Article Now" msgstr "ግለ መግለጫ" #: ../pan/gui/post-ui.cc:423 #, fuzzy msgid "_Send and Save Articles to NZB" msgstr "ፓን፦ ሰርቨሮች" #: ../pan/gui/post-ui.cc:423 #, fuzzy msgid "Send and Save Articles to NZB" msgstr "ፓን፦ ሰርቨሮች" #: ../pan/gui/post-ui.cc:424 msgid "Set Character _Encoding..." msgstr "" #: ../pan/gui/post-ui.cc:425 msgid "Set Content _Transfer Encoding..." msgstr "" #: ../pan/gui/post-ui.cc:426 msgid "Sa_ve Draft" msgstr "" #: ../pan/gui/post-ui.cc:426 msgid "Save as a Draft for Future Posting" msgstr "" #: ../pan/gui/post-ui.cc:427 msgid "_Open Draft..." msgstr "" #: ../pan/gui/post-ui.cc:427 msgid "Open an Article Draft" msgstr "" #: ../pan/gui/post-ui.cc:432 #, fuzzy msgid "_Rot13" msgstr "Rot13" #: ../pan/gui/post-ui.cc:432 msgid "Rot13 Selected Text" msgstr "የተመረጠው ጽሑፍ Rot13" #: ../pan/gui/post-ui.cc:433 #, fuzzy msgid "Run _Editor" msgstr "ማቀናጃ" #: ../pan/gui/post-ui.cc:433 #, fuzzy msgid "Run Editor" msgstr "ማቀናጃ" #: ../pan/gui/post-ui.cc:435 msgid "Add _Files to Queue" msgstr "" #: ../pan/gui/post-ui.cc:435 msgid "Add Files to Queue" msgstr "" #: ../pan/gui/post-ui.cc:450 ../pan/gui/post-ui.cc:451 #, fuzzy msgid "Remove from Queue" msgstr "አዲስ ሰርቨር" #: ../pan/gui/post-ui.cc:455 ../pan/gui/post-ui.cc:456 #, fuzzy msgid "Clear List" msgstr "አዲስ ዶሴ ፍጠር" #: ../pan/gui/post-ui.cc:460 ../pan/gui/post-ui.cc:461 #, fuzzy msgid "Select Needed Parts" msgstr "የፊደል ቅርጽ ምረጡ" #: ../pan/gui/post-ui.cc:465 ../pan/gui/post-ui.cc:466 #: ../pan/gui/task-pane.cc:636 ../pan/gui/task-pane.cc:637 msgid "Move Up" msgstr "" #: ../pan/gui/post-ui.cc:470 ../pan/gui/post-ui.cc:471 #: ../pan/gui/task-pane.cc:641 ../pan/gui/task-pane.cc:642 msgid "Move Down" msgstr "" #: ../pan/gui/post-ui.cc:475 ../pan/gui/post-ui.cc:476 msgid "Move to Top" msgstr "" #: ../pan/gui/post-ui.cc:480 ../pan/gui/post-ui.cc:481 msgid "Move to Bottom" msgstr "" #: ../pan/gui/post-ui.cc:488 msgid "_Wrap Text" msgstr "" #: ../pan/gui/post-ui.cc:488 msgid "Wrap Text" msgstr "" #: ../pan/gui/post-ui.cc:489 #, fuzzy msgid "Always Run Editor" msgstr "ማቀናጃ" #: ../pan/gui/post-ui.cc:490 msgid "Remember Character Encoding for this Group" msgstr "" #: ../pan/gui/post-ui.cc:491 msgid "Thread Attached Replies" msgstr "" #: ../pan/gui/post-ui.cc:492 msgid "PGP-Encrypt the Message" msgstr "" #: ../pan/gui/post-ui.cc:493 msgid "PGP-Sign the Message" msgstr "" #: ../pan/gui/post-ui.cc:494 msgid "Check _Spelling" msgstr "" #: ../pan/gui/post-ui.cc:520 msgid "New Article's Encoding:" msgstr "" #: ../pan/gui/post-ui.cc:530 #, fuzzy msgid "Content Transfer Encoding" msgstr "መድረክ" #: ../pan/gui/post-ui.cc:531 msgid "New Article's Content Transfer Encoding:" msgstr "" #: ../pan/gui/post-ui.cc:711 msgid "Your changes will be lost!" msgstr "" #: ../pan/gui/post-ui.cc:712 msgid "Close this window and lose your changes?" msgstr "" #: ../pan/gui/post-ui.cc:757 ../pan/gui/post-ui.cc:796 msgid "There were problems with this post." msgstr "" #: ../pan/gui/post-ui.cc:759 ../pan/gui/post-ui.cc:798 #: ../pan/gui/post-ui.cc:861 msgid "Go Back" msgstr "" #: ../pan/gui/post-ui.cc:761 msgid "Post Anyway" msgstr "" #. Prompt the user #: ../pan/gui/post-ui.cc:790 #, c-format msgid "" "Message uses characters not specified in charset '%s' - possibly use '%s' " msgstr "" #: ../pan/gui/post-ui.cc:813 #, fuzzy msgid "Go _Online" msgstr "ኦንላይን" #: ../pan/gui/post-ui.cc:860 msgid "The file queue is empty, so no files can be saved." msgstr "" #: ../pan/gui/post-ui.cc:1019 msgid "" "No posting server is set for this posting profile.\n" "Please edit the profile via Edit|Manage Posting Profiles." msgstr "" #: ../pan/gui/post-ui.cc:1054 msgid "Pan is Offline." msgstr "" #: ../pan/gui/post-ui.cc:1055 msgid "Go online to post the article?" msgstr "" #: ../pan/gui/post-ui.cc:1102 #, c-format msgid "" "Error signing/encrypting your message. Perhaps you misspelled your email-" "address (%s) ?" msgstr "" #: ../pan/gui/post-ui.cc:1267 msgid "Error opening temporary file" msgstr "" #: ../pan/gui/post-ui.cc:1279 #, c-format msgid "Error writing article to temporary file: %s" msgstr "" #: ../pan/gui/post-ui.cc:1298 #, c-format msgid "Error parsing \"external editor\" command line: %s (Command was: %s)" msgstr "" #: ../pan/gui/post-ui.cc:1339 #, c-format msgid "Error starting external editor: %s" msgstr "" #: ../pan/gui/post-ui.cc:1395 msgid "Open Draft Article" msgstr "" #: ../pan/gui/post-ui.cc:1606 msgid "Save Draft Article" msgstr "" #: ../pan/gui/post-ui.cc:1803 #, c-format msgid "Couldn't parse signature command \"%s\": %s" msgstr "" #: ../pan/gui/post-ui.cc:1839 msgid "Couldn't convert signature to UTF-8." msgstr "" #: ../pan/gui/post-ui.cc:2334 #, fuzzy msgid "F_rom" msgstr "ከ" #: ../pan/gui/post-ui.cc:2352 #, fuzzy msgid "_Subject" msgstr "ጉዳዩ፦ (_S)" #: ../pan/gui/post-ui.cc:2365 msgid "_Newsgroups" msgstr "" #: ../pan/gui/post-ui.cc:2379 #, fuzzy msgid "Mail _To" msgstr "ፖስታ (_M)" #: ../pan/gui/post-ui.cc:2481 msgid "Delete from Queue" msgstr "" #: ../pan/gui/post-ui.cc:2494 msgid "No." msgstr "" #: ../pan/gui/post-ui.cc:2498 ../pan/gui/post-ui.cc:2592 #: ../pan/gui/post-ui.cc:2633 msgid "Filename" msgstr "የፋይል ስም" #: ../pan/gui/post-ui.cc:2500 msgid "Size (kB)" msgstr "" #: ../pan/gui/post-ui.cc:2600 msgid "The current filename" msgstr "" #: ../pan/gui/post-ui.cc:2604 #, fuzzy msgid "Subject Line" msgstr "ጉዳዩ" #: ../pan/gui/post-ui.cc:2612 msgid "The current Subject Line" msgstr "" #: ../pan/gui/post-ui.cc:2626 msgid "No. " msgstr "" #: ../pan/gui/post-ui.cc:2630 msgid "Enable/Disable" msgstr "" #: ../pan/gui/post-ui.cc:2664 msgid "Follo_wup-To" msgstr "" #. i18n: "poster" is a key used by many newsreaders. probably safest to keep this key in english. #: ../pan/gui/post-ui.cc:2673 msgid "" "The newsgroups where replies to your message should go. This is only needed " "if it differs from the \"Newsgroups\" header.\n" "\n" "To direct all replies to your email address, use \"Followup-To: poster\"" msgstr "" #: ../pan/gui/post-ui.cc:2679 msgid "_Reply-To" msgstr "" #: ../pan/gui/post-ui.cc:2687 msgid "" "The email account where mail replies to your posted message should go. This " "is only needed if it differs from the \"From\" header." msgstr "" #: ../pan/gui/post-ui.cc:2693 #, fuzzy msgid "_Custom Headers" msgstr "የተለየ አናቶች (_T)" #: ../pan/gui/post-ui.cc:2717 msgid "Add \"_User-Agent\" header" msgstr "" #: ../pan/gui/post-ui.cc:2724 #, fuzzy msgid "Add \"Message-_Id\" header" msgstr "መልዕክት-ID" #: ../pan/gui/post-ui.cc:2855 #, fuzzy msgid "Select Parts" msgstr "የፊደል ቅርጽ ምረጡ" #: ../pan/gui/post-ui.cc:2866 msgid "_Parts" msgstr "" #: ../pan/gui/post-ui.cc:3022 msgid "Post Article" msgstr "" #: ../pan/gui/post-ui.cc:3043 #, fuzzy msgid "_Message" msgstr "መልዕክት" #: ../pan/gui/post-ui.cc:3044 #, fuzzy msgid "More _Headers" msgstr "ተጨማሪ አናቶች" #: ../pan/gui/post-ui.cc:3045 #, fuzzy msgid "File _Queue" msgstr "/ፋይል (_F)/ውጣ (_Q)" #: ../pan/gui/post-ui.cc:3077 ../pan/gui/profiles-dialog.cc:478 #, no-c-format msgid "On %d, %n wrote:" msgstr "" #: ../pan/gui/post-ui.cc:3106 msgid "Add files to queue" msgstr "" #: ../pan/gui/post-ui.cc:3184 msgid "Save Upload Queue as NZB File" msgstr "" #: ../pan/gui/prefs.cc:343 #, c-format msgid "Couldn't parse %s color \"%s\"" msgstr "" #: ../pan/gui/prefs-ui.cc:120 msgid "Grab Key" msgstr "" #: ../pan/gui/prefs-ui.cc:126 #, c-format msgid "" "Press the combination of the keys\n" "you want to use for \"%s\"." msgstr "" #: ../pan/gui/prefs-ui.cc:166 msgid "Edit Hotkey" msgstr "" #: ../pan/gui/prefs-ui.cc:228 msgid "Error: Shortkey is invalid!" msgstr "" #: ../pan/gui/prefs-ui.cc:244 msgid "Error: Shortkey already exists!" msgstr "" #: ../pan/gui/prefs-ui.cc:535 #, fuzzy msgid "Show only icons" msgstr "የግለ መግለጫ መረጃ" #: ../pan/gui/prefs-ui.cc:536 msgid "Show only text" msgstr "" #: ../pan/gui/prefs-ui.cc:537 msgid "Show icons and text" msgstr "" #: ../pan/gui/prefs-ui.cc:576 #, fuzzy msgid "Use GNOME Preferences" msgstr "የፓን ምርጫዎች" #: ../pan/gui/prefs-ui.cc:577 #, fuzzy msgid "Use KDE Preferences" msgstr "የፓን ምርጫዎች" #: ../pan/gui/prefs-ui.cc:578 #, fuzzy msgid "Use OS X Preferences" msgstr "የፓን ምርጫዎች" #: ../pan/gui/prefs-ui.cc:579 #, fuzzy msgid "Use Windows Preferences" msgstr "የፓን ምርጫዎች" #: ../pan/gui/prefs-ui.cc:580 #, fuzzy msgid "Custom Command:" msgstr "ትእዛዙ ይታተም፦" #: ../pan/gui/prefs-ui.cc:632 msgid "Disabled" msgstr "" #: ../pan/gui/prefs-ui.cc:633 msgid "Only new (Score == 0)" msgstr "" #: ../pan/gui/prefs-ui.cc:634 msgid "9999 or more" msgstr "" #: ../pan/gui/prefs-ui.cc:635 msgid "5000 to 9998" msgstr "" #: ../pan/gui/prefs-ui.cc:636 msgid "1 to 4999" msgstr "" #: ../pan/gui/prefs-ui.cc:637 msgid "-9998 to -1" msgstr "" #: ../pan/gui/prefs-ui.cc:638 msgid "-9999 or less" msgstr "" #: ../pan/gui/prefs-ui.cc:702 #, c-format msgid "Select default global charset. Current setting : %s ." msgstr "" #: ../pan/gui/prefs-ui.cc:738 msgid "Global Charset Settings" msgstr "" #: ../pan/gui/prefs-ui.cc:832 ../pan/gui/task-pane.cc:770 #, fuzzy msgid "State" msgstr "ሁኔታ" #: ../pan/gui/prefs-ui.cc:866 msgid "Enabled" msgstr "" #: ../pan/gui/prefs-ui.cc:870 #, fuzzy msgid "Column Name" msgstr "መድረክ" #: ../pan/gui/prefs-ui.cc:908 #, fuzzy msgid "Pan: Preferences" msgstr "የፓን ምርጫዎች" #: ../pan/gui/prefs-ui.cc:923 msgid "Mouse" msgstr "" #: ../pan/gui/prefs-ui.cc:925 msgid "Single-click activates, rather than selects, _groups" msgstr "" #: ../pan/gui/prefs-ui.cc:927 msgid "Single-click activates, rather than selects, _articles" msgstr "" #: ../pan/gui/prefs-ui.cc:930 #, fuzzy msgid "Groups" msgstr "መድረኮች" #: ../pan/gui/prefs-ui.cc:932 msgid "Get new headers in subscribed groups on _startup" msgstr "" #: ../pan/gui/prefs-ui.cc:934 msgid "Get new headers when _entering group" msgstr "" #: ../pan/gui/prefs-ui.cc:936 msgid "Mark entire group _read when leaving group" msgstr "" #: ../pan/gui/prefs-ui.cc:938 msgid "Mark entire group read before getting _new headers" msgstr "" #: ../pan/gui/prefs-ui.cc:940 msgid "E_xpand all threads when entering group" msgstr "" #: ../pan/gui/prefs-ui.cc:945 #, fuzzy msgid "Articles" msgstr "ግለ መግለጫ" #: ../pan/gui/prefs-ui.cc:947 msgid "Space selects next article rather than next unread" msgstr "" #: ../pan/gui/prefs-ui.cc:949 msgid "Expand threads upon selection" msgstr "" #: ../pan/gui/prefs-ui.cc:951 msgid "Always show article deletion confirmation dialog" msgstr "" #: ../pan/gui/prefs-ui.cc:953 msgid "Smooth scrolling" msgstr "" #: ../pan/gui/prefs-ui.cc:958 #, fuzzy msgid "Article Cache" msgstr "ግለ መግለጫ" #: ../pan/gui/prefs-ui.cc:959 msgid "Clear article cache on shutdown" msgstr "" #: ../pan/gui/prefs-ui.cc:962 msgid "Size of article cache (in MiB) :" msgstr "" #: ../pan/gui/prefs-ui.cc:967 msgid "File extension for Cached Articles: " msgstr "" #: ../pan/gui/prefs-ui.cc:972 msgid "Tabs" msgstr "" #: ../pan/gui/prefs-ui.cc:977 msgid "_Behavior" msgstr "" #: ../pan/gui/prefs-ui.cc:977 msgid "Behavior" msgstr "" #: ../pan/gui/prefs-ui.cc:983 msgid "Language Settings" msgstr "" #. systray and notify popup #: ../pan/gui/prefs-ui.cc:992 msgid "System Tray Behavior" msgstr "" #: ../pan/gui/prefs-ui.cc:994 msgid "Hide to system tray" msgstr "" #: ../pan/gui/prefs-ui.cc:996 msgid "Start Pan minimized" msgstr "" #: ../pan/gui/prefs-ui.cc:999 #, fuzzy msgid "Show notifications" msgstr "የግለ መግለጫ መረጃ" #. allow multiple instances (seperate, not communicating with dbus) #: ../pan/gui/prefs-ui.cc:1004 msgid "Startup Behavior" msgstr "" #: ../pan/gui/prefs-ui.cc:1006 msgid "Allow multiple instances of Pan" msgstr "" #: ../pan/gui/prefs-ui.cc:1011 msgid "Autosave Article Draft" msgstr "" #: ../pan/gui/prefs-ui.cc:1013 msgid "Minutes to autosave the current Article Draft: " msgstr "" #: ../pan/gui/prefs-ui.cc:1018 #, fuzzy msgid "Autosave Articles" msgstr "ግለ መግለጫ" #: ../pan/gui/prefs-ui.cc:1020 msgid "Minutes to autosave newsrc files: " msgstr "" #: ../pan/gui/prefs-ui.cc:1026 msgid "_Miscellaneous" msgstr "" #: ../pan/gui/prefs-ui.cc:1026 msgid "Miscellaneous" msgstr "" #: ../pan/gui/prefs-ui.cc:1031 #, fuzzy msgid "Pane Layout" msgstr "እቅድ (_L)" #: ../pan/gui/prefs-ui.cc:1050 msgid "1=Groups, 2=Headers, 3=Body" msgstr "" #: ../pan/gui/prefs-ui.cc:1052 msgid "1=Groups, 2=Body, 3=Headers" msgstr "" #: ../pan/gui/prefs-ui.cc:1054 msgid "1=Headers, 2=Groups, 3=Body" msgstr "" #: ../pan/gui/prefs-ui.cc:1056 msgid "1=Headers, 2=Body, 3=Groups" msgstr "" #: ../pan/gui/prefs-ui.cc:1058 msgid "1=Body, 2=Groups, 3=Headers" msgstr "" #: ../pan/gui/prefs-ui.cc:1060 msgid "1=Body, 2=Headers, 3=Groups" msgstr "" #: ../pan/gui/prefs-ui.cc:1064 #, fuzzy msgid "Layout" msgstr "እቅድ (_L)" #: ../pan/gui/prefs-ui.cc:1069 msgid "Header Pane Columns" msgstr "" #: ../pan/gui/prefs-ui.cc:1073 #, fuzzy msgid "_Headers" msgstr "ተጨማሪ አናቶች" #: ../pan/gui/prefs-ui.cc:1073 #, fuzzy msgid "Headers" msgstr "ተጨማሪ አናቶች" #: ../pan/gui/prefs-ui.cc:1079 msgid "" "This menu lets you configure Pan to take certain actions on your behalf " "automatically, based on a post's score." msgstr "" #: ../pan/gui/prefs-ui.cc:1082 msgid "_Delete posts scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1084 msgid "Mark posts _read scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1086 msgid "_Cache posts scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1088 msgid "Download _attachments of posts scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1091 #, fuzzy msgid "Actions" msgstr "ትግባሮች" #: ../pan/gui/prefs-ui.cc:1096 ../pan/gui/prefs-ui.cc:1117 msgid "Fonts" msgstr "የፊደል ቅርጾች" #: ../pan/gui/prefs-ui.cc:1098 msgid "Use custom font in Group Pane:" msgstr "" #: ../pan/gui/prefs-ui.cc:1103 msgid "Use custom font in Header Pane:" msgstr "" #: ../pan/gui/prefs-ui.cc:1108 msgid "Use custom font in Body Pane:" msgstr "" #: ../pan/gui/prefs-ui.cc:1113 msgid "Monospace font:" msgstr "" #: ../pan/gui/prefs-ui.cc:1117 #, fuzzy msgid "_Fonts" msgstr "የፊደል ቅርጾች" #: ../pan/gui/prefs-ui.cc:1122 msgid "Header Pane" msgstr "" #: ../pan/gui/prefs-ui.cc:1125 ../pan/gui/prefs-ui.cc:1131 #: ../pan/gui/prefs-ui.cc:1137 ../pan/gui/prefs-ui.cc:1143 #: ../pan/gui/prefs-ui.cc:1149 ../pan/gui/prefs-ui.cc:1155 msgid "Text:" msgstr "" #: ../pan/gui/prefs-ui.cc:1127 ../pan/gui/prefs-ui.cc:1133 #: ../pan/gui/prefs-ui.cc:1139 ../pan/gui/prefs-ui.cc:1145 #: ../pan/gui/prefs-ui.cc:1151 ../pan/gui/prefs-ui.cc:1157 msgid "Background:" msgstr "" #: ../pan/gui/prefs-ui.cc:1129 msgid "Scores of 9999 or more:" msgstr "" #: ../pan/gui/prefs-ui.cc:1135 msgid "Scores from 5000 to 9998:" msgstr "" #: ../pan/gui/prefs-ui.cc:1141 msgid "Scores from 1 to 4999:" msgstr "" #: ../pan/gui/prefs-ui.cc:1147 msgid "Scores from -9998 to -1:" msgstr "" #: ../pan/gui/prefs-ui.cc:1153 msgid "Scores of -9999 or less:" msgstr "" #: ../pan/gui/prefs-ui.cc:1159 msgid "Read collapsed thread:" msgstr "" #: ../pan/gui/prefs-ui.cc:1161 #, fuzzy msgid "Body Pane" msgstr "መድረክ" #: ../pan/gui/prefs-ui.cc:1167 msgid "Quoted text:" msgstr "" #: ../pan/gui/prefs-ui.cc:1168 #, fuzzy msgid "URL:" msgstr "_URLs፦" #: ../pan/gui/prefs-ui.cc:1169 msgid "Signature:" msgstr "" #: ../pan/gui/prefs-ui.cc:1171 #, fuzzy msgid "_Colors" msgstr "ቀለሞች" #: ../pan/gui/prefs-ui.cc:1171 #, fuzzy msgid "Colors" msgstr "ቀለሞች" #: ../pan/gui/prefs-ui.cc:1176 #, fuzzy msgid "Preferred Applications" msgstr "መጠቀሚያ ፕሮግራሞች (_P)" #: ../pan/gui/prefs-ui.cc:1180 #, fuzzy msgid "_Web browser:" msgstr "መድረኮች" #: ../pan/gui/prefs-ui.cc:1183 #, fuzzy msgid "_Mail reader:" msgstr "የኢሜይል ሰርቨር" #: ../pan/gui/prefs-ui.cc:1185 #, fuzzy msgid "_Text editor:" msgstr "ማቀናጃ" #: ../pan/gui/prefs-ui.cc:1187 #, fuzzy msgid "_Applications" msgstr "መጠቀሚያ ፕሮግራሞች (_P)" #: ../pan/gui/prefs-ui.cc:1187 #, fuzzy msgid "Applications" msgstr "መጠቀሚያ ፕሮግራሞች (_P)" #: ../pan/gui/prefs-ui.cc:1192 ../pan/gui/task-pane.cc:512 msgid "Encoding" msgstr "" #: ../pan/gui/prefs-ui.cc:1196 msgid "Default bytes per file (for encoder): " msgstr "" #: ../pan/gui/prefs-ui.cc:1201 #, fuzzy msgid "_Upload" msgstr "መጠቀሚያ ፕሮግራሞች (_P)" #: ../pan/gui/prefs-ui.cc:1201 msgid "Upload" msgstr "" #: ../pan/gui/prefs-ui.cc:1219 msgid "_Hotkeys" msgstr "" #: ../pan/gui/prefs-ui.cc:1219 msgid "Hotkeys" msgstr "" #: ../pan/gui/profiles-dialog.cc:83 msgid "Please choose your Email Address according to your PGP key's user id." msgstr "" #: ../pan/gui/profiles-dialog.cc:131 #, fuzzy msgid "Posting Profile" msgstr "ፓን፦ ግለ መግለጫ" #: ../pan/gui/profiles-dialog.cc:143 msgid "Profile Information" msgstr "የግለ መግለጫ መረጃ" #: ../pan/gui/profiles-dialog.cc:147 #, fuzzy msgid "_Profile Name:" msgstr "የግለ መግለጫ ስም፦ (_P)" #: ../pan/gui/profiles-dialog.cc:150 msgid "Required Information" msgstr "" #: ../pan/gui/profiles-dialog.cc:154 msgid "_Full Name:" msgstr "ሙሉ ስም፦ (_F)" #: ../pan/gui/profiles-dialog.cc:158 msgid "" "Your Email Address.\n" "Note that this has to match your PGP Signature's Address\n" "if you want to PGP-Sign or Encrypt your messages correctly." msgstr "" #: ../pan/gui/profiles-dialog.cc:162 msgid "_Email Address:" msgstr "ኢሜያል አድራሻ፦ (_E)" #: ../pan/gui/profiles-dialog.cc:164 msgid "_Post Articles via:" msgstr "" #: ../pan/gui/profiles-dialog.cc:167 msgid "Signature" msgstr "" #: ../pan/gui/profiles-dialog.cc:170 msgid "_Use a Signature" msgstr "" #: ../pan/gui/profiles-dialog.cc:174 msgid "Signature File" msgstr "" #: ../pan/gui/profiles-dialog.cc:184 msgid "Text File" msgstr "" #: ../pan/gui/profiles-dialog.cc:186 msgid "Text" msgstr "" #: ../pan/gui/profiles-dialog.cc:188 #, fuzzy msgid "Command" msgstr "ትእዛዙ ይታተም፦" #: ../pan/gui/profiles-dialog.cc:191 msgid "PGP Signature" msgstr "" #: ../pan/gui/profiles-dialog.cc:196 msgid "Signature Type : " msgstr "" #: ../pan/gui/profiles-dialog.cc:223 msgid "X-Face (Avatar)" msgstr "" #: ../pan/gui/profiles-dialog.cc:226 msgid "" "You can add an avatar icon to your articles with a unique X-Face code. \n" "Add the code without the trailing \"X-Face:\" \n" " if it was generated by a helper program (for example http://www.dairiki.org/" "xface/xface.php)." msgstr "" #: ../pan/gui/profiles-dialog.cc:229 msgid "_X-Face:" msgstr "" #: ../pan/gui/profiles-dialog.cc:231 msgid "Optional Information" msgstr "" #: ../pan/gui/profiles-dialog.cc:236 msgid "" "When posting to Usenet, your article's Message-ID contains a domain name. \n" "You can set a custom domain name here, or leave it blank to let Pan use the " "domain name from your email address." msgstr "" #: ../pan/gui/profiles-dialog.cc:239 msgid "Message-ID _Domain Name:" msgstr "" #: ../pan/gui/profiles-dialog.cc:243 #, c-format msgid "" "%i for Message-ID\n" "%a for Author and Address\n" "%n for Author name\n" "%d for Date" msgstr "" #: ../pan/gui/profiles-dialog.cc:244 msgid "_Attribution:" msgstr "" #: ../pan/gui/profiles-dialog.cc:268 msgid "" "Extra headers to be included in your posts, such as\n" "Reply-To: \"Your Name\"\n" "Organization: Your Organization\n" msgstr "" #: ../pan/gui/profiles-dialog.cc:278 #, fuzzy msgid "E_xtra Headers:" msgstr "ተጨማሪ አናቶች" #: ../pan/gui/profiles-dialog.cc:323 msgid "Invalid email address." msgstr "" #: ../pan/gui/profiles-dialog.cc:324 msgid "Please use an address of the form joe@somewhere.org" msgstr "" #: ../pan/gui/profiles-dialog.cc:479 msgid "New Profile" msgstr "አዲስ ግለ መግለጫ" #: ../pan/gui/profiles-dialog.cc:525 #, fuzzy msgid "Posting Profiles" msgstr "ፓን፦ ግለ መግለጫ" #: ../pan/gui/profiles-dialog.cc:541 #, fuzzy msgid "Profiles" msgstr "ግለ መግለጫ" #: ../pan/gui/save-attach-ui.cc:77 ../pan/gui/save-ui.cc:77 #, c-format msgid "" "%g - group as one directory (alt.binaries.pictures.trains)\n" "%G - group as nested directory (/alt/binaries/pictures/trains)\n" "%s - subject line excerpt\n" "%S - subject line\n" " \n" "\"/home/user/News/Pan/%g\" becomes\n" "\"/home/user/News/Pan/alt.binaries.pictures.trains\", and\n" "\"/home/user/News/Pan/%G\" becomes\n" "\"/home/user/News/Pan/alt/binaries/pictures/trains\"," msgstr "" #: ../pan/gui/save-attach-ui.cc:223 ../pan/gui/save-ui.cc:242 msgid "Add to the queue sorted by date posted" msgstr "" #: ../pan/gui/save-attach-ui.cc:224 ../pan/gui/save-ui.cc:243 msgid "Add to the front of the queue" msgstr "" #: ../pan/gui/save-attach-ui.cc:225 ../pan/gui/save-ui.cc:244 msgid "Add to the back of the queue" msgstr "" #: ../pan/gui/save-attach-ui.cc:257 #, fuzzy msgid "Pan: Save Attachments" msgstr "ፓን፦ ሰርቨሮች" #: ../pan/gui/save-attach-ui.cc:282 ../pan/gui/save-attach-ui.cc:300 #: ../pan/gui/save-ui.cc:296 ../pan/gui/save-ui.cc:314 #, fuzzy msgid "_Location:" msgstr "ትግባሮች" #: ../pan/gui/save-attach-ui.cc:286 ../pan/gui/save-ui.cc:300 #, fuzzy msgid "Save Articles" msgstr "ግለ መግለጫ" #: ../pan/gui/save-attach-ui.cc:303 ../pan/gui/save-ui.cc:317 #, c-format msgid "_Group's path: %s" msgstr "" #: ../pan/gui/save-attach-ui.cc:314 ../pan/gui/save-ui.cc:332 msgid "_Priority:" msgstr "" #: ../pan/gui/save-ui.cc:233 msgid "Save attachments" msgstr "" #: ../pan/gui/save-ui.cc:234 msgid "Save text" msgstr "" #: ../pan/gui/save-ui.cc:235 msgid "Save attachments and text" msgstr "" #: ../pan/gui/save-ui.cc:271 #, fuzzy msgid "Pan: Save Articles" msgstr "ፓን፦ ሰርቨሮች" #: ../pan/gui/save-ui.cc:328 #, fuzzy msgid "_Action:" msgstr "ትግባሮች" #: ../pan/gui/score-add-ui.cc:89 msgid "is more than" msgstr "" #: ../pan/gui/score-add-ui.cc:90 msgid "is at most" msgstr "" #: ../pan/gui/score-add-ui.cc:112 msgid "increase the article's score by" msgstr "" #: ../pan/gui/score-add-ui.cc:113 msgid "decrease the article's score by" msgstr "" #: ../pan/gui/score-add-ui.cc:114 msgid "set the article's score to" msgstr "" #: ../pan/gui/score-add-ui.cc:115 msgid "watch the article (set its score to 9999)" msgstr "" #: ../pan/gui/score-add-ui.cc:116 msgid "ignore the article (set its score to -9999)" msgstr "" #: ../pan/gui/score-add-ui.cc:141 #, fuzzy msgid "References" msgstr "የፓን ምርጫዎች" #: ../pan/gui/score-add-ui.cc:142 msgid "Line Count" msgstr "" #: ../pan/gui/score-add-ui.cc:143 msgid "Byte Count" msgstr "" #: ../pan/gui/score-add-ui.cc:144 msgid "Crosspost Group Count" msgstr "" #: ../pan/gui/score-add-ui.cc:145 msgid "Age (in days)" msgstr "" #: ../pan/gui/score-add-ui.cc:167 msgid "for the next month" msgstr "" #: ../pan/gui/score-add-ui.cc:168 msgid "for the next six months" msgstr "" #: ../pan/gui/score-add-ui.cc:169 #, fuzzy msgid "forever" msgstr "ሰርቨር" #: ../pan/gui/score-add-ui.cc:194 #, fuzzy msgid "contains" msgstr "ትግባሮች" #: ../pan/gui/score-add-ui.cc:195 msgid "doesn't contain" msgstr "" #: ../pan/gui/score-add-ui.cc:196 msgid "is" msgstr "" #: ../pan/gui/score-add-ui.cc:197 msgid "isn't" msgstr "" #: ../pan/gui/score-add-ui.cc:198 msgid "starts with" msgstr "" #: ../pan/gui/score-add-ui.cc:199 msgid "ends with" msgstr "" #: ../pan/gui/score-add-ui.cc:200 msgid "matches regex" msgstr "" #: ../pan/gui/score-add-ui.cc:481 msgid "Another rule already sets this article's score." msgstr "" #: ../pan/gui/score-add-ui.cc:482 msgid "You may want to go back or delete the old rule." msgstr "" #: ../pan/gui/score-add-ui.cc:553 #, fuzzy msgid "Add and Re_score" msgstr "አዲስ ሰርቨርን ጨምር" #: ../pan/gui/score-add-ui.cc:604 ../pan/gui/score-add-ui.cc:624 msgid "New Scoring Rule" msgstr "" #: ../pan/gui/score-add-ui.cc:635 msgid "If the group name" msgstr "" #: ../pan/gui/score-add-ui.cc:642 msgid "And the article's" msgstr "" #: ../pan/gui/score-view-ui.cc:56 msgid "Close and Re_score" msgstr "" #: ../pan/gui/score-view-ui.cc:154 #, c-format msgid "File %s, Lines %d - %d" msgstr "" #: ../pan/gui/score-view-ui.cc:182 msgid "Pan: Article's Scores" msgstr "" #: ../pan/gui/score-view-ui.cc:208 msgid "Add" msgstr "" #: ../pan/gui/score-view-ui.cc:213 #, fuzzy msgid "New Score" msgstr "የዜና ሰርቨር" #: ../pan/gui/score-view-ui.cc:218 msgid "Criteria" msgstr "" #: ../pan/gui/score-view-ui.cc:241 #, fuzzy msgid "Add a New Scoring Rule" msgstr "አዲስ ግለ መግለጫ" #: ../pan/gui/score-view-ui.cc:248 msgid "Remove the Selected Scoring Rule" msgstr "" #: ../pan/gui/server-ui.cc:221 msgid "Please specify the server's address." msgstr "" #: ../pan/gui/server-ui.cc:264 msgid "Import SSL certificate (PEM format) from File" msgstr "" #. create the dialog #: ../pan/gui/server-ui.cc:290 ../pan/gui/server-ui.cc:869 #, fuzzy msgid "Add a Server" msgstr "አዲስ ሰርቨርን ጨምር" #: ../pan/gui/server-ui.cc:290 ../pan/gui/server-ui.cc:875 msgid "Edit a Server's Settings" msgstr "" #: ../pan/gui/server-ui.cc:310 #, fuzzy msgid "Location" msgstr "ትግባሮች" #: ../pan/gui/server-ui.cc:314 msgid "The news server's actual address, e.g. \"news.mynewsserver.com\"" msgstr "" #: ../pan/gui/server-ui.cc:315 msgid "_Address:" msgstr "አድራሻ፦ (_A)" #: ../pan/gui/server-ui.cc:319 msgid "The news server's port number. Typically 119." msgstr "" #: ../pan/gui/server-ui.cc:320 msgid "Por_t:" msgstr "ፖርት፦ (_T)" #: ../pan/gui/server-ui.cc:323 msgid "Login (if Required)" msgstr "" #: ../pan/gui/server-ui.cc:327 msgid "_Username:" msgstr "የተጠቃሚ ስም፦ (_U)" #: ../pan/gui/server-ui.cc:328 msgid "" "The username to give the server when asked. If your server doesn't require " "authentication, you can leave this blank." msgstr "" #: ../pan/gui/server-ui.cc:332 msgid "_Password:" msgstr "ሚስጢራዊ ቃል፦ (_P)" #: ../pan/gui/server-ui.cc:333 msgid "" "The password to give the server when asked. If your server doesn't require " "authentication, you can leave this blank." msgstr "" #: ../pan/gui/server-ui.cc:336 msgid "Settings" msgstr "" #: ../pan/gui/server-ui.cc:343 msgid "Connection _Limit:" msgstr "" #: ../pan/gui/server-ui.cc:347 msgid "After Two Weeks" msgstr "" #: ../pan/gui/server-ui.cc:348 msgid "After One Month" msgstr "" #: ../pan/gui/server-ui.cc:349 msgid "After Two Months" msgstr "" #: ../pan/gui/server-ui.cc:350 msgid "After Three Months" msgstr "" #: ../pan/gui/server-ui.cc:351 msgid "After Six Months" msgstr "" #: ../pan/gui/server-ui.cc:352 msgid "Never Expire Old Articles" msgstr "" #: ../pan/gui/server-ui.cc:366 msgid "E_xpire Old Articles:" msgstr "" #: ../pan/gui/server-ui.cc:370 #, fuzzy msgid "Primary" msgstr "ቅድሚያ" #: ../pan/gui/server-ui.cc:371 msgid "Fallback" msgstr "" #: ../pan/gui/server-ui.cc:385 #, fuzzy msgid "Server Rank:" msgstr "ሰርቨሮች" #: ../pan/gui/server-ui.cc:389 msgid "" "Fallback servers are used for articles that can't be found on the " "primaries. One common approach is to use free servers as primaries and " "subscription servers as fallbacks." msgstr "" #: ../pan/gui/server-ui.cc:396 msgid "Security" msgstr "" #: ../pan/gui/server-ui.cc:401 msgid "Use Plaintext (Unsecured) Connections" msgstr "" #: ../pan/gui/server-ui.cc:402 msgid "Use Secure SSL Connections" msgstr "" #: ../pan/gui/server-ui.cc:418 msgid "TLS (SSL) Options:" msgstr "" #: ../pan/gui/server-ui.cc:423 msgid "" "You can set the option for using/disabling secure SSL/TLS connections here. " "If you enable SSL/TLS, your data is encrypted and secure. It is encouraged " "to use this option for privacy reasons." msgstr "" #: ../pan/gui/server-ui.cc:428 msgid "Always trust this server's certificate" msgstr "" #: ../pan/gui/server-ui.cc:602 #, c-format msgid "Really delete \"%s\"?" msgstr "" #: ../pan/gui/server-ui.cc:691 msgid "No information available." msgstr "" #: ../pan/gui/server-ui.cc:697 #, c-format msgid "Server Certificate for '%s'" msgstr "" #: ../pan/gui/server-ui.cc:795 #, c-format msgid "Really delete certificate for \"%s\"?" msgstr "" #. dialog #: ../pan/gui/server-ui.cc:822 ../pan/gui/server-ui.cc:843 #: ../pan/gui/server-ui.cc:941 msgid "Servers" msgstr "ሰርቨሮች" #: ../pan/gui/server-ui.cc:882 #, fuzzy msgid "Remove a Server" msgstr "አዲስ ሰርቨር" #. dialog #: ../pan/gui/server-ui.cc:915 msgid "SSL Certificates" msgstr "" #: ../pan/gui/server-ui.cc:936 msgid "Certificates" msgstr "" #: ../pan/gui/server-ui.cc:967 msgid "Import Certificate" msgstr "" #: ../pan/gui/server-ui.cc:973 msgid "Inspect Certificate" msgstr "" #: ../pan/gui/server-ui.cc:980 #, fuzzy msgid "Remove Certificate" msgstr "አዲስ ሰርቨር" #: ../pan/gui/task-pane.cc:143 #, c-format msgid "" "\n" "Upload\n" "\n" "Subject: \"%s\"\n" "From: %s\n" "Groups: %s\n" "Sourcefile: %s\n" msgstr "" #: ../pan/gui/task-pane.cc:155 #, c-format msgid "" "\n" "Download\n" "\n" "Subject: \"%s\"\n" "From: %s\n" "Date: %s\n" "Groups: %s\n" "Save Path: %s\n" msgstr "" #: ../pan/gui/task-pane.cc:157 #, fuzzy msgid "unknown" msgstr "ያልታወቀ" #: ../pan/gui/task-pane.cc:263 msgid "Choose new destination for selected Tasks" msgstr "" #: ../pan/gui/task-pane.cc:417 #, c-format msgid "Pan: Tasks (%d Queued, %d Running, %d Stopped)" msgstr "" #: ../pan/gui/task-pane.cc:419 #, c-format msgid "Pan: Tasks (%d Queued, %d Running)" msgstr "" #: ../pan/gui/task-pane.cc:421 #, c-format msgid "Pan: Tasks" msgstr "" #: ../pan/gui/task-pane.cc:446 #, fuzzy, c-format msgid "%lu selected, %s" msgstr "(%u ተመርጠዋል)" #: ../pan/gui/task-pane.cc:510 msgid "Running" msgstr "በሥራ ላይ" #: ../pan/gui/task-pane.cc:511 msgid "Decoding" msgstr "" #: ../pan/gui/task-pane.cc:513 msgid "Queued for Decode" msgstr "" #: ../pan/gui/task-pane.cc:514 msgid "Queued for Encode" msgstr "" #: ../pan/gui/task-pane.cc:515 msgid "Queued" msgstr "" #: ../pan/gui/task-pane.cc:516 msgid "Stopped" msgstr "" #: ../pan/gui/task-pane.cc:517 msgid "Removing" msgstr "" #: ../pan/gui/task-pane.cc:546 #, fuzzy, c-format msgid "%d%% Done" msgstr "% ጨርሷል" #: ../pan/gui/task-pane.cc:552 #, fuzzy, c-format msgid "%d:%02d:%02d Remaining (%d @ %lu KiB/s)" msgstr "%d:%02d:%02d (%.2f KB/s)" #: ../pan/gui/task-pane.cc:646 ../pan/gui/task-pane.cc:647 msgid "Move To Top" msgstr "" #: ../pan/gui/task-pane.cc:651 ../pan/gui/task-pane.cc:652 msgid "Move To Bottom" msgstr "" #: ../pan/gui/task-pane.cc:656 ../pan/gui/task-pane.cc:657 msgid "Stop Task" msgstr "" #: ../pan/gui/task-pane.cc:661 ../pan/gui/task-pane.cc:662 #, fuzzy msgid "Delete Task" msgstr "/አጥፉ (_D)" #: ../pan/gui/task-pane.cc:666 ../pan/gui/task-pane.cc:667 msgid "Restart Task" msgstr "" #: ../pan/gui/task-pane.cc:671 ../pan/gui/task-pane.cc:672 msgid "Change Download Destination" msgstr "" #: ../pan/gui/task-pane.cc:729 #, fuzzy msgid "_Online" msgstr "ኦንላይን" #: ../pan/gui/task-pane.cc:746 msgid "Restart Tasks" msgstr "" #: ../pan/gui/task-pane.cc:748 msgid "Stop Tasks" msgstr "" #: ../pan/gui/task-pane.cc:750 #, fuzzy msgid "Delete Tasks" msgstr "/አጥፉ (_D)" #: ../pan/gui/url.cc:123 #, c-format msgid "Error starting URL: %s (Command was: %s)" msgstr "" #: ../pan/tasks/decoder.cc:115 #, fuzzy, c-format msgid "Couldn't save file \"%s\": %s" msgstr "ፋይል \"%s\"ን ለማንበብ ስህተት አለ፦ %s" #: ../pan/tasks/decoder.cc:137 ../pan/tasks/encoder.cc:136 msgid "Error initializing uulib" msgstr "" #: ../pan/tasks/decoder.cc:152 ../pan/tasks/socket-impl-gio.cc:352 #: ../pan/tasks/socket-impl-openssl.cc:634 #, fuzzy, c-format msgid "Error reading from %s: %s" msgstr "ፋይል \"%s\"ን ለማንበብ ስህተት አለ፦ %s" #: ../pan/tasks/decoder.cc:192 #, c-format msgid "Saved \"%s\"" msgstr "\"%s\"ን ተቀምጧል" #: ../pan/tasks/decoder.cc:199 #, fuzzy, c-format msgid "" "Error saving \"%s\":\n" "%s." msgstr "ፋይል \"%s\"ን ለማንበብ ስህተት አለ፦ %s" #: ../pan/tasks/decoder.cc:314 ../pan/tasks/task-article.cc:350 #, fuzzy, c-format msgid "Decoding %s" msgstr "`%s'ን በማስቀመጥ ላይ" #: ../pan/tasks/encoder.cc:102 ../pan/tasks/encoder.cc:155 #, fuzzy, c-format msgid "Error loading %s from cache." msgstr "ፋይል \"%s\"ን ለማንበብ ስህተት አለ፦ %s" #: ../pan/tasks/encoder.cc:177 #, fuzzy, c-format msgid "Error encoding %s: %s" msgstr "ፋይል \"%s\"ን ለማንበብ ስህተት አለ፦ %s" #: ../pan/tasks/encoder.cc:269 #, fuzzy, c-format msgid "Encoding %s" msgstr "`%s'ን በማስቀመጥ ላይ" #: ../pan/tasks/nntp.cc:126 #, c-format msgid "%s requires a username, but none is set." msgstr "" #: ../pan/tasks/nntp.cc:139 #, c-format msgid "%s requires a password, but none is set." msgstr "" #: ../pan/tasks/nntp.cc:205 #, c-format msgid "Sending \"%s\" to %s returned an error: %s" msgstr "" #: ../pan/tasks/nntp.cc:228 #, c-format msgid "Sending \"%s\" to %s returned an unrecognized response: \"%s\"" msgstr "" #: ../pan/tasks/nntp-pool.cc:222 #, c-format msgid "Unable to connect to \"%s\"" msgstr "" #: ../pan/tasks/socket-impl-gio.cc:173 ../pan/tasks/socket-impl-gio.cc:211 #: ../pan/tasks/socket-impl-openssl.cc:214 #: ../pan/tasks/socket-impl-openssl.cc:252 #, fuzzy, c-format msgid "Error connecting to \"%s\"" msgstr "ፋይል \"%s\"ን ለማንበብ ስህተት አለ፦ %s" #: ../pan/tasks/socket-impl-gio.cc:351 ../pan/tasks/socket-impl-openssl.cc:633 #, fuzzy msgid "Unknown Error" msgstr "ያልታወቀ" #: ../pan/tasks/task-article.cc:61 ../pan/tasks/task-article.cc:156 #: ../pan/tasks/task-article.cc:159 #, fuzzy, c-format msgid "Saving %s" msgstr "\"%s\"ን በማስቀመጥ ላይ" #: ../pan/tasks/task-article.cc:63 #, fuzzy, c-format msgid "Reading %s" msgstr "`%s'ን በማስቀመጥ ላይ" #: ../pan/tasks/task-article.cc:322 #, c-format msgid "Article \"%s\" is incomplete -- the news server(s) don't have part %s" msgstr "" #: ../pan/tasks/task-groups.cc:40 #, c-format msgid "Getting group list from \"%s\"" msgstr "" #: ../pan/tasks/task-groups.cc:122 #, c-format msgid "Fetched %lu Groups" msgstr "" #: ../pan/tasks/task-post.cc:35 #, fuzzy, c-format msgid "Posting \"%s\"" msgstr "ፓን፦ ግለ መግለጫ" #: ../pan/tasks/task-post.cc:76 #, fuzzy, c-format msgid "Posting of \"%s\" failed: %s" msgstr "ፓን፦ ግለ መግለጫ" #: ../pan/tasks/task-post.cc:81 #, c-format msgid "Posting of \"%s\" succesful: %s" msgstr "" #: ../pan/tasks/task-upload.cc:51 #, fuzzy, c-format msgid "Uploading %s" msgstr "`%s'ን በማስቀመጥ ላይ" #: ../pan/tasks/task-upload.cc:249 #, c-format msgid "Uploading %s - Part %d of %d" msgstr "" #: ../pan/tasks/task-upload.cc:251 #, c-format msgid "Uploading Message body with Subject \"%s\"" msgstr "" #: ../pan/tasks/task-upload.cc:308 #, c-format msgid "Posting of File %s (Part %d of %d) failed: No Posts allowed by server." msgstr "" #: ../pan/tasks/task-upload.cc:316 #, fuzzy, c-format msgid "Posting of File %s (Part %d of %d) failed: %s" msgstr "ፓን፦ ግለ መግለጫ" #: ../pan/tasks/task-upload.cc:326 ../pan/tasks/task-upload.cc:333 #, c-format msgid "Posting of file %s (Part %d of %d) succesful: %s" msgstr "" #: ../pan/tasks/task-upload.cc:343 #, fuzzy, c-format msgid "Posting of file %s succesful: %s" msgstr "ፓን፦ ግለ መግለጫ" #: ../pan/tasks/task-upload.cc:347 #, c-format msgid "" "Posting of file %s not completely successful: Check the log (right-click on " "list item) !" msgstr "" #: ../pan/tasks/task-upload.cc:364 #, c-format msgid "" "Posting of file %s not successful: Check the log (right-click on list item) !" msgstr "" #: ../pan/tasks/task-xover.cc:79 #, fuzzy, c-format msgid "Getting all headers for \"%s\"" msgstr "ሌላ የኢሜይል አናቶች" #: ../pan/tasks/task-xover.cc:81 #, c-format msgid "Getting new headers for \"%s\"" msgstr "" #. SAMPLE #: ../pan/tasks/task-xover.cc:83 #, c-format msgid "Sampling headers for \"%s\"" msgstr "" #: ../pan/tasks/task-xover.cc:369 #, c-format msgid "%s (%lu parts, %lu articles)" msgstr "" #: ../pan/tasks/task-xoverinfo.cc:78 #, fuzzy, c-format msgid "Getting header counts for \"%s\"" msgstr "ሌላ የኢሜይል አናቶች" #: ../pan/usenet-utils/filter-info.cc:163 msgid "article doesn't have attachments" msgstr "" #: ../pan/usenet-utils/filter-info.cc:167 msgid "the article has attachments" msgstr "" #: ../pan/usenet-utils/filter-info.cc:171 msgid "the article isn't cached locally" msgstr "" #: ../pan/usenet-utils/filter-info.cc:175 msgid "the article is cached locally" msgstr "" #: ../pan/usenet-utils/filter-info.cc:179 msgid "the article wasn't posted by you" msgstr "" #: ../pan/usenet-utils/filter-info.cc:183 msgid "the article was posted by you" msgstr "" #: ../pan/usenet-utils/filter-info.cc:187 msgid "the article has been read" msgstr "" #: ../pan/usenet-utils/filter-info.cc:191 msgid "the article hasn't been read" msgstr "" #: ../pan/usenet-utils/filter-info.cc:195 #, c-format msgid "the article is less than %ld bytes long" msgstr "" #: ../pan/usenet-utils/filter-info.cc:200 #, c-format msgid "the article is at least %ld bytes long" msgstr "" #: ../pan/usenet-utils/filter-info.cc:205 #, c-format msgid "the article is less than %ld lines long" msgstr "" #: ../pan/usenet-utils/filter-info.cc:210 #, c-format msgid "the article is at least %ld lines long" msgstr "" #: ../pan/usenet-utils/filter-info.cc:215 #, c-format msgid "the article is less than %ld days old" msgstr "" #: ../pan/usenet-utils/filter-info.cc:220 #, c-format msgid "the article is at least %ld days old" msgstr "" #: ../pan/usenet-utils/filter-info.cc:225 #, c-format msgid "the article was posted to less than %ld groups" msgstr "" #: ../pan/usenet-utils/filter-info.cc:230 #, c-format msgid "the article was posted to at least %ld groups" msgstr "" #: ../pan/usenet-utils/filter-info.cc:235 #, c-format msgid "the article's score is less than %ld" msgstr "" #: ../pan/usenet-utils/filter-info.cc:240 #, c-format msgid "the article's score is %ld or higher" msgstr "" #: ../pan/usenet-utils/filter-info.cc:249 #: ../pan/usenet-utils/filter-info.cc:259 #, c-format msgid "%s doesn't contain \"%s\"" msgstr "" #: ../pan/usenet-utils/filter-info.cc:250 #: ../pan/usenet-utils/filter-info.cc:260 #, c-format msgid "%s isn't \"%s\"" msgstr "" #: ../pan/usenet-utils/filter-info.cc:251 #: ../pan/usenet-utils/filter-info.cc:261 #, c-format msgid "%s doesn't begin with \"%s\"" msgstr "" #: ../pan/usenet-utils/filter-info.cc:252 #: ../pan/usenet-utils/filter-info.cc:262 #, c-format msgid "%s doesn't end with \"%s\"" msgstr "" #: ../pan/usenet-utils/filter-info.cc:253 #: ../pan/usenet-utils/filter-info.cc:263 #, c-format msgid "%s doesn't match the regex \"%s\"" msgstr "" #: ../pan/usenet-utils/filter-info.cc:275 #, fuzzy, c-format msgid "%s contains \"%s\"" msgstr "ትግባሮች" #: ../pan/usenet-utils/filter-info.cc:276 #, c-format msgid "%s is \"%s\"" msgstr "" #: ../pan/usenet-utils/filter-info.cc:277 #, c-format msgid "%s begins with \"%s\"" msgstr "" #: ../pan/usenet-utils/filter-info.cc:278 #, c-format msgid "%s ends with \"%s\"" msgstr "" #: ../pan/usenet-utils/filter-info.cc:279 #, c-format msgid "%s matches the regex \"%s\"" msgstr "" #: ../pan/usenet-utils/filter-info.cc:285 msgid "Any of these tests fail:" msgstr "" #: ../pan/usenet-utils/filter-info.cc:292 msgid "All of these tests pass:" msgstr "" #: ../pan/usenet-utils/filter-info.cc:299 msgid "None of these tests pass:" msgstr "" #: ../pan/usenet-utils/filter-info.cc:306 msgid "Any of these tests pass:" msgstr "" #: ../pan/usenet-utils/gnksa.cc:878 #, c-format msgid "No email address provided; generating message-id with domain \"%s\"" msgstr "" #: ../pan/usenet-utils/message-check.cc:124 msgid "Warning: Reply seems to be top-posted." msgstr "" #: ../pan/usenet-utils/message-check.cc:145 msgid "Warning: The signature marker should be \"-- \", not \"--\"." msgstr "" #: ../pan/usenet-utils/message-check.cc:162 msgid "Warning: Signature prefix with no signature." msgstr "" #: ../pan/usenet-utils/message-check.cc:167 msgid "Warning: Signature is more than 4 lines long." msgstr "" #: ../pan/usenet-utils/message-check.cc:172 msgid "Warning: Signature is more than 80 characters wide." msgstr "" #: ../pan/usenet-utils/message-check.cc:198 #, c-format msgid "Warning: %d line is more than 80 characters wide." msgid_plural "Warning: %d lines are more than 80 characters wide." msgstr[0] "" msgstr[1] "" #: ../pan/usenet-utils/message-check.cc:223 msgid "Error: Message is empty." msgstr "" #: ../pan/usenet-utils/message-check.cc:258 msgid "Warning: The message is entirely quoted text!" msgstr "" #: ../pan/usenet-utils/message-check.cc:259 msgid "Warning: The message is mostly quoted text." msgstr "" #: ../pan/usenet-utils/message-check.cc:309 msgid "Error: Message appears to have no new content." msgstr "" #: ../pan/usenet-utils/message-check.cc:344 #: ../pan/usenet-utils/message-check.cc:383 #, c-format msgid "" "Warning: The posting profile's server doesn't carry newsgroup\n" "\t\"%s\".\n" "\tIf the group name is correct, switch profiles in the \"From:\"\n" "\tline or edit the profile with \"Edit|Manage Posting Profiles\"." msgstr "" #: ../pan/usenet-utils/message-check.cc:355 msgid "Warning: Following-Up to too many groups." msgstr "" #: ../pan/usenet-utils/message-check.cc:366 msgid "Error: No Subject specified." msgstr "" #: ../pan/usenet-utils/message-check.cc:395 #, c-format msgid "Warning: Group \"%s\" is read-only." msgstr "" #: ../pan/usenet-utils/message-check.cc:404 msgid "Error: Posting to a very large number of groups." msgstr "" #: ../pan/usenet-utils/message-check.cc:409 msgid "Warning: Posting to a large number of groups." msgstr "" #: ../pan/usenet-utils/message-check.cc:416 msgid "Warning: Crossposting without setting Followup-To header." msgstr "" #: ../pan/usenet-utils/message-check.cc:441 #, fuzzy msgid "Error: Bad email address." msgstr "ኢሜያል አድራሻ፦ (_E)" #: ../pan/usenet-utils/message-check.cc:450 msgid "Warning: Most newsgroups frown upon HTML posts." msgstr "" #: ../pan/usenet-utils/message-check.cc:486 msgid "Error: No Recipients." msgstr "" #: ../pan/usenet-utils/scorefile.cc:304 #, c-format msgid "" "Error reading score in %*.*s, line %d: expected 'Expires: MM/DD/YYYY' or " "'Expires: DD-MM-YYYY'." msgstr "" #: ../pan/usenet-utils/scorefile.cc:307 #, c-format msgid "Expired old score from %*.*s, line %d" msgstr "" #: ../pan/usenet-utils/scorefile.cc:380 #, c-format msgid "Error reading score in %*.*s, line %d: unexpected line." msgstr "" #: ../pan/usenet-utils/scorefile.cc:428 #, c-format msgid "Read %lu scoring rules in %lu sections from \"%s\"" msgstr "" #: ../pan/usenet-utils/ssl-utils.h:199 #, c-format msgid "Error printing the server certificate for '%s'" msgstr "" #: ../pan/usenet-utils/ssl-utils.h:216 #, c-format msgid "" "The current server '%s' sent this security certificate :\n" "\n" msgstr "" #: ../pan/usenet-utils/ssl-utils.h:217 #, c-format msgid "" "Certificate information for server '%s' :\n" "\n" msgstr "" #: ../pan/usenet-utils/ssl-utils.h:219 #, c-format msgid "" "%sIssuer information:\n" "%s\n" "Valid until : %s\n" "\n" "Not valid before : %s\n" "\n" msgstr "" #: ../pan/usenet-utils/text-massager.cc:397 msgid "> [quoted text muted]" msgstr "" #, fuzzy #~ msgid "Error!" #~ msgstr "ስህተት" #, fuzzy #~ msgid "_Groups" #~ msgstr "መድረኮች" #, fuzzy #~ msgid "Save Selected Articles..." #~ msgstr "የተመረጠው ጽሑፍ Rot13" #, fuzzy #~ msgid "Clear Body Pane" #~ msgstr "መድረክ" #, fuzzy #~ msgid "Next Unread Group" #~ msgstr "/መድረክ አጥፉ (_T)" #, fuzzy #~ msgid "Next Group" #~ msgstr "(መድረክ የለም)" #, fuzzy #~ msgid "_Plonk Author" #~ msgstr "ደራሲ፦ (_A)" #, fuzzy #~ msgid "Reply to Author" #~ msgstr "ደራሲ፦ (_A)" #, fuzzy #~ msgid "_About..." #~ msgstr "/መረጃ (_H)/ስለ... (_A)" #, fuzzy #~ msgid "Central European (ISO-8859-2)" #~ msgstr "መካከለኛ አውሮፓውያን" #, fuzzy #~ msgid "Central European (Windows-1250)" #~ msgstr "መካከለኛ አውሮፓውያን" #, fuzzy #~ msgid "Chinese Simplified (gb2312)" #~ msgstr "ቀላል ቻይንኛ" #, fuzzy #~ msgid "Chinese Traditional (big5)" #~ msgstr "የባሕላዊው ቻይንኛ" #, fuzzy #~ msgid "Cyrillic (KOI8-R)" #~ msgstr "ቄርሎሳዊ ጽሑፍ" #, fuzzy #~ msgid "Cyrillic, Ukrainian (KOI8-U)" #~ msgstr "ቄርሎሳዊ ጽሑፍ ዩክረኒኛ" #, fuzzy #~ msgid "Western, New (ISO-8859-15)" #~ msgstr "ምዕራብ፣ አዲስ" #, fuzzy #~ msgid "Unicode (UTF-8)" #~ msgstr "ዩኒኮድ፣ UTF-8" #, fuzzy #~ msgid "Pan: " #~ msgstr "ፓን " #, fuzzy #~ msgid "Pan: %s" #~ msgstr "ፓን " #, fuzzy #~ msgid "_Close" #~ msgstr "ቀለሞች" #, fuzzy #~ msgid "_Paste" #~ msgstr "/አስተካክል (_E)/ለጥፍ (_P)" #~ msgid "Western" #~ msgstr "ምዕራብ" #, fuzzy #~ msgid "Error loading post.ui: \"%s\"" #~ msgstr "ፋይል \"%s\"ን ለማንበብ ስህተት አለ፦ %s" #, fuzzy #~ msgid "Editors" #~ msgstr "ማቀናጃ" #, fuzzy #~ msgid "Add a New Profile" #~ msgstr "አዲስ ግለ መግለጫ" #, fuzzy #~ msgid "Path" #~ msgstr "ደራሲ" #, fuzzy #~ msgid "_Path:" #~ msgstr "/አስተካክል (_E)/ለጥፍ (_P)" #, fuzzy #~ msgid "Group Management" #~ msgstr "መድረክ" #, fuzzy #~ msgid "Then" #~ msgstr "አመሰገናለሁ" #, fuzzy #~ msgid "For" #~ msgstr "ዶሴዎች" #, fuzzy #~ msgid "Name: \"%s\"" #~ msgstr "\"%s\"ን ተቀምጧል" #, fuzzy #~ msgid "Pan: Add a Server" #~ msgstr "ፓን፦ ሰርቨርን ያስተካክሉ" #, fuzzy #~ msgid "Pan: Edit a Server's Settings" #~ msgstr "ፓን፦ ሰርቨርን ያስተካክሉ" #~ msgid "Pan: Servers" #~ msgstr "ፓን፦ ሰርቨሮች" #, fuzzy #~ msgid "to %s" #~ msgstr "ስለ %s" #~ msgid "Status" #~ msgstr "ሁኔታ" #, fuzzy #~ msgid "" #~ "Error saving \"%s\":\n" #~ "%s. %s" #~ msgstr "ፋይል \"%s\"ን ለማንበብ ስህተት አለ፦ %s" #, fuzzy #~ msgid "_Posting" #~ msgstr "ፓን፦ ግለ መግለጫ" #~ msgid "UNKNOWN" #~ msgstr "ያልታወቀ" #, fuzzy #~ msgid "Editor Applications" #~ msgstr "መጠቀሚያ ፕሮግራሞች" #, fuzzy #~ msgid "subject" #~ msgstr "ጉዳዩ" #, fuzzy #~ msgid "Change" #~ msgstr "የፊደል ኮድ አልፋቤት" #, fuzzy #~ msgid "Active" #~ msgstr "ትግባሮች" #~ msgid "Pan: Find Message" #~ msgstr "ፓን፦ መልዕክትን ፈልግ" #~ msgid "Find:" #~ msgstr "ፈልግ፦" #~ msgid "/---" #~ msgstr "/---" #~ msgid "/_File/_Save..." #~ msgstr "/ፋይል (_F)/አስቀምጥ... (_S)" #~ msgid "/_File/Clea_r" #~ msgstr "/ፋይል (_F)/ሰርዝ (_R)" #~ msgid "/_File/---" #~ msgstr "/ፋይል (_F)/---" #~ msgid "/_File/_Close" #~ msgstr "/ፋይል (_F)/ዝጋ (_C)" #~ msgid "Time" #~ msgstr "ሰዓት" #~ msgid "Your _Name:" #~ msgstr "የእርሶ ስም፦ (_N)" #~ msgid "Email _Address:" #~ msgstr "ኢሜያል አድራሻ፦ (_A)" #~ msgid "default" #~ msgstr "የነበረው" #~ msgid "Login" #~ msgstr "ዝምብለህ ይግባ" #~ msgid "About You" #~ msgstr "ስለ እርሶ" #~ msgid "Authors" #~ msgstr "ደራሲዎች" #~ msgid "Thanks to" #~ msgstr "እናመሰገናለን ለ" #~ msgid "New" #~ msgstr "አዲስ" #~ msgid "Cached" #~ msgstr "የተሰወረ" #~ msgid "Filters" #~ msgstr "አጣራዎች" #~ msgid " (Read-Only)" #~ msgstr " (ለንባብ ብቻ)" #~ msgid "All Groups" #~ msgstr "ሁሉንም መድረኮች" #~ msgid "Total" #~ msgstr "አጠቃላይ" #~ msgid "Description" #~ msgstr "መግለጫ" #~ msgid "" #~ msgstr "*" #~ msgid "Net" #~ msgstr "መረብ" #~ msgid "/_File/_New Folder..." #~ msgstr "/ፋይል (_F)/አዲስ ዶሴ... (_N)" #~ msgid "/_File/Delete _Folder..." #~ msgstr "/ፋይል (_F)/ዶሴን አጥፉ... (_F)" #~ msgid "/_Edit/Select all" #~ msgstr "/አስተካክል (_E)/ሁሉንም ምረጡ" #~ msgid "/_Edit/---" #~ msgstr "/አስተካክል (_E)/---" #~ msgid "/_Edit/_Find..." #~ msgstr "/አስተካክል (_E)/ፈልግ... (_F)" #~ msgid "/_Edit/Find _Next" #~ msgstr "/አስተካክል (_E)/የሚቀጥለዉን ፈልግ (_N)" #~ msgid "/_View/---" #~ msgstr "/ተመልከት (_V)/---" #~ msgid "/Filte_r/---" #~ msgstr "/አጣራ (_R)/---" #~ msgid "/_Go/---" #~ msgstr "/ሂድ ወደ (_G)/---" #~ msgid "/_Servers" #~ msgstr "/ሰርቨሮች (_S)" #~ msgid "/_Servers/---" #~ msgstr "/ሰርቨሮች (_S)/---" #~ msgid "/_Tools" #~ msgstr "/መሣሪያዎች (_T)" #~ msgid "/_Tools/---" #~ msgstr "/መሣሪያዎች (_T)/---" #~ msgid "/_Help" #~ msgstr "/መረጃ (_H)" #~ msgid "/_Help/---" #~ msgstr "/መረጃ (_H)/---" #~ msgid "Pan: Edit Profile" #~ msgstr "ፓን፦ ግለ መግለጫ ያስተካክሉ" #~ msgid "_User Profile" #~ msgstr "የተጠቃሚ ግለ መግለጫ (_U)" #~ msgid "/_File/Save _As..." #~ msgstr "/ፋይል (_F)/በሌላ ስም አስቀምጥ... (_A)" #~ msgid "/_Edit/Cu_t" #~ msgstr "/አስተካክል (_E)/ቁረጥ (_T)" #~ msgid "/_Edit/_Copy" #~ msgstr "/አስተካክል (_E)/ቅጂ (_C)" #~ msgid "/_Edit/_Rot13 Selected Text" #~ msgstr "/አስተካክል/የተመረጠው ጽሑፍ _Rot13" #~ msgid "Kilobytes" #~ msgstr "ኪሎባይቶች" #~ msgid "New Message" #~ msgstr "አዲስ መልዕክት" #~ msgid "Select Color" #~ msgstr "ቀለም ምረጡ" #~ msgid "_Browse..." #~ msgstr "ቃኝ... (_B)" #~ msgid "Font Family" #~ msgstr "የፊደል ቅርጽ ቤተሰብ" #~ msgid "E_ditor (%t is filename):" #~ msgstr "ማቀናጃ (%t የፋይል ስም ነው)፦ (_D)" #~ msgid "Web _Browser (%s is URL):" #~ msgstr "የዌብ መቃኛ (%s URL ነው)፦ (_B)" #~ msgid "Mail Server A_ddress:" #~ msgstr "የኢሜይል ሰርቨር አድራሻ፦" #~ msgid "Ma_il Server Port:" #~ msgstr "የኢሜይል ሰርቨር ፖርት፦ (_I)" #~ msgid "Appea_rance" #~ msgstr "አቀራረብ (_R)" #~ msgid "Displa_y" #~ msgstr "አሳይ (_Y)" #~ msgid "Cach_e" #~ msgstr "መሠወሪያ (_E)" #~ msgid "(e.g., *anime*)" #~ msgstr "(ለምሳሌ፦ *anime*)" #~ msgid "_Directory:" #~ msgstr "ዶሴ፦ (_D)" #~ msgid "Newsrc" #~ msgstr "Newsrc" #~ msgid "_Filename:" #~ msgstr "የፋይል ስም፦ (_F)" #~ msgid "New %lu of %lu" #~ msgstr "አዲስ %lu ከ %lu" #~ msgid "AND" #~ msgstr "እና" #~ msgid "OR" #~ msgstr "ወይንም" #~ msgid "???" #~ msgstr "???" pan-0.162/po/ar.po000066400000000000000000002535651475412772400137150ustar00rootroot00000000000000# Arabic translations for THIS package. # Copyright (C) 2007 THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as THIS package. # Automatically generated, 2007. # Djihed Afifi , 2007 msgid "" msgstr "" "Project-Id-Version: Arabic\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-04-04 20:58+0200\n" "PO-Revision-Date: 2007-04-14 18:49+0100\n" "Last-Translator: Djihed Afifi \n" "Language-Team: Arabeyes \n" "Language: ar\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../pan.desktop.in.h:1 #, fuzzy msgid "Pan Newsreader" msgstr "تعلم القراءة " #: ../pan.desktop.in.h:2 msgid "Read and Post Usenet Articles" msgstr "" #: ../pan/data/article-cache.cc:143 ../pan/data/encode-cache.cc:62 #, fuzzy, c-format msgid "Error opening directory: \"%s\": %s" msgstr "خطأ أثناء فتح الدليل '%s': %s" #: ../pan/data/article-cache.cc:231 ../pan/data/article-cache.cc:242 #: ../pan/data-impl/data-io.cc:187 ../pan/data-impl/data-io.cc:211 #: ../pan/gui/post-ui.cc:1639 #, fuzzy, c-format msgid "Unable to save \"%s\" %s" msgstr "فشل في حفظ %s: %s" #: ../pan/data/article-cache.cc:355 #, fuzzy, c-format msgid "Error opening file \"%s\" %s" msgstr "خطاء فى فتح الملف %s%s\n" #: ../pan/data/article-cache.cc:386 ../pan/data-impl/profiles.cc:174 #: ../pan/data-impl/server.cc:436 ../pan/general/file-util.cc:298 #: ../pan/gui/post-ui.cc:609 ../pan/gui/task-pane.cc:691 #, fuzzy, c-format msgid "Error reading file \"%s\": %s" msgstr "خطأ عند إعادة تسمية الملف \"%s\": %s" #: ../pan/data/cert-store.cc:238 #, fuzzy, c-format msgid "Error opening SSL certificate directory: \"%s\": %s" msgstr "خطأ أثناء فتح الدليل '%s': %s" #: ../pan/data/cert-store.cc:270 #, c-format msgid "Succesfully added %d SSL PEM certificate(s) to Certificate Store." msgstr "" #. load_group_descriptions (*_data_io); #: ../pan/data-impl/data-impl.cc:109 #, fuzzy, c-format msgid "Loaded data backend in %.1f seconds" msgstr "حُمِّلت السِمة \"%s\" في %g ثواني\n" #: ../pan/data-impl/data-impl.cc:140 msgid "Pan newsreader server passwords" msgstr "" #: ../pan/data-impl/groups.cc:94 #, fuzzy, c-format msgid "Skipping newsrc file for server \"%s\"" msgstr "إعدادات الخدمة \"%s\"" #: ../pan/data-impl/headers.cc:606 #, c-format msgid "Expired %lu old articles from \"%s\"" msgstr "" #: ../pan/data-impl/headers.cc:613 #, c-format msgid "" "Unsupported data version for %s headers: %d.\n" "Are you running an old version of Pan by accident?" msgstr "" #: ../pan/data-impl/headers.cc:628 #, c-format msgid "Loaded %lu articles for \"%s\" in %.1f seconds (%.0f per second)" msgstr "" #: ../pan/data-impl/headers.cc:857 #, c-format msgid "" "Saved %lu parts, %lu articles in \"%s\" in %.1f seconds (%.0f articles/sec)" msgstr "" #: ../pan/data-impl/headers.cc:1173 #, fuzzy, c-format msgid "Added %lu articles to %s." msgstr "اضف %s إلى %s" #: ../pan/data-impl/server.cc:234 #, c-format msgid "There seems to be no Password set for Server %s." msgstr "" #: ../pan/data-impl/server.cc:238 msgid "The Gnome keyring denied access to the Passwords." msgstr "" #: ../pan/data-impl/xover.cc:239 #, fuzzy, c-format msgid "Error reading from %s: unknown group \"%s\"" msgstr "خطأ عند القراءة من الابن: %s." #. build the locale strings #: ../pan/general/e-util.cc:213 #, fuzzy msgid "%l:%M %p" msgstr "%I:%M %p" #: ../pan/general/e-util.cc:214 msgid "Today %l:%M %p" msgstr "اليوم %l:%M %p" #: ../pan/general/e-util.cc:215 msgid "%a %l:%M %p" msgstr "%a %l:%M %p" #: ../pan/general/e-util.cc:216 msgid "%b %d %l:%M %p" msgstr "%b %d %l:%M %p" #: ../pan/general/e-util.cc:217 msgid "%b %d %Y" msgstr "%b %d %Y" #: ../pan/general/e-util.cc:242 msgid "?" msgstr "؟" #: ../pan/general/text-match.cc:193 #, fuzzy, c-format msgid "Can't use regular expression \"%s\": %s" msgstr "" "لا يمكن تحليل تعبير البحث: %s: \n" "%s" #: ../pan/general/utf8-utils.cc:213 msgid "Couldn't determine article encoding. Non-UTF8 characters were removed." msgstr "" #: ../pan/gui/actions.cc:274 ../pan/gui/post-ui.cc:417 #, fuzzy msgid "_File" msgstr "/ملف" #: ../pan/gui/actions.cc:275 ../pan/gui/post-ui.cc:418 #, fuzzy msgid "_Edit" msgstr "_تحرير/" #: ../pan/gui/actions.cc:276 ../pan/gui/prefs-ui.cc:1064 #, fuzzy msgid "_Layout" msgstr "ت_خطيط" #: ../pan/gui/actions.cc:277 #, fuzzy msgid "_Group Pane" msgstr "اسم المجموعة" #: ../pan/gui/actions.cc:278 #, fuzzy msgid "_Header Pane" msgstr "حشو الرأس" #: ../pan/gui/actions.cc:279 #, fuzzy msgid "_Body Pane" msgstr "اللوحة ال_سفلية" #: ../pan/gui/actions.cc:280 #, fuzzy msgid "_View" msgstr "_عرض/" #: ../pan/gui/actions.cc:281 #, fuzzy msgid "Filte_r" msgstr "فلاتر" #: ../pan/gui/actions.cc:282 msgid "_Go" msgstr "ا_ذهب" #: ../pan/gui/actions.cc:283 ../pan/gui/prefs-ui.cc:1091 msgid "_Actions" msgstr "أ_حداث" #: ../pan/gui/actions.cc:284 #, fuzzy msgid "_Articles" msgstr "ال_فنان" #: ../pan/gui/actions.cc:285 #, fuzzy msgid "G_roups" msgstr "المجموعات" #: ../pan/gui/actions.cc:286 ../pan/gui/actions.cc:287 #, fuzzy msgid "_Post" msgstr "_معظم" #: ../pan/gui/actions.cc:288 #, fuzzy msgid "_Help" msgstr "مساعدة" #: ../pan/gui/actions.cc:291 #, fuzzy msgid "_Read Group" msgstr "_اضف مجموعة" #: ../pan/gui/actions.cc:292 #, fuzzy msgid "Read Group" msgstr "_اضف مجموعة" #: ../pan/gui/actions.cc:296 #, fuzzy msgid "_Mark Selected Groups Read" msgstr "_علّم المهام المنتقاة كمكتملة" #: ../pan/gui/actions.cc:297 #, fuzzy msgid "Mark Selected Groups Read" msgstr "_علّم المهام المنتقاة كمكتملة" #: ../pan/gui/actions.cc:301 #, fuzzy msgid "_Delete Selected Groups' Articles" msgstr "حذف المراسَلين المنتقَيين" #: ../pan/gui/actions.cc:302 #, fuzzy msgid "Delete Selected Groups' Articles" msgstr "حذف المراسَلين المنتقَيين" #: ../pan/gui/actions.cc:306 #, fuzzy msgid "Get New _Headers in Selected Groups" msgstr "أدلة جديدة من الا_ختيار" #: ../pan/gui/actions.cc:307 #, fuzzy msgid "Get New Headers in Selected Groups" msgstr "أدلة جديدة من الا_ختيار" #: ../pan/gui/actions.cc:311 ../pan/gui/actions.cc:316 msgid "Get New _Headers in Subscribed Groups" msgstr "" #: ../pan/gui/actions.cc:312 ../pan/gui/actions.cc:317 #, fuzzy msgid "Get New Headers in Subscribed Groups" msgstr "أدلة جديدة من الا_ختيار" #: ../pan/gui/actions.cc:321 #, fuzzy msgid "Get _Headers..." msgstr "ترويسة عنوان ويب..." #: ../pan/gui/actions.cc:322 #, fuzzy msgid "Get Headers..." msgstr "ترويسة عنوان ويب..." #: ../pan/gui/actions.cc:326 ../pan/gui/actions.cc:327 #, fuzzy msgid "Refresh Group List" msgstr "حدِّث القائمة" #: ../pan/gui/actions.cc:331 #, fuzzy msgid "_Subscribe" msgstr "إشترِك" #: ../pan/gui/actions.cc:332 #, fuzzy msgid "Subscribe" msgstr "إشترِك" #: ../pan/gui/actions.cc:336 msgid "_Unsubscribe" msgstr "إل_غاء الإشتراك" #: ../pan/gui/actions.cc:337 #, fuzzy msgid "Unsubscribe" msgstr "إل_غاء الإشتراك" #: ../pan/gui/actions.cc:341 #, fuzzy msgid "_Save Articles..." msgstr "_حفظ إلى ملف" #: ../pan/gui/actions.cc:342 #, fuzzy msgid "Save Articles..." msgstr "_حفظ إلى ملف" #: ../pan/gui/actions.cc:346 #, fuzzy msgid "Save Articles from Selected _NZB..." msgstr "_حفظ إلى ملف" #: ../pan/gui/actions.cc:347 #, fuzzy msgid "Save Articles from Selected NZB" msgstr "_حفظ إلى ملف" #: ../pan/gui/actions.cc:351 #, fuzzy msgid "Save Articles to an NZB _File..." msgstr "_حفظ إلى ملف" #: ../pan/gui/actions.cc:352 #, fuzzy msgid "Save Articles to an NZB File" msgstr "_حفظ إلى ملف" #: ../pan/gui/actions.cc:356 ../pan/gui/actions.cc:357 msgid "Print" msgstr "" #: ../pan/gui/actions.cc:361 #, fuzzy msgid "_Import NZB Files..." msgstr "استورد ملفات..." #: ../pan/gui/actions.cc:366 #, fuzzy msgid "_Cancel Last Task" msgstr "حوِّل إلى مهمَّة" #: ../pan/gui/actions.cc:371 #, fuzzy msgid "_Task Manager" msgstr "الم_دير:" #: ../pan/gui/actions.cc:376 #, fuzzy msgid "_Event Log" msgstr "صندوق حدث" #: ../pan/gui/actions.cc:381 #, fuzzy msgid "_Quit" msgstr "اخرج" #: ../pan/gui/actions.cc:386 #, fuzzy msgid "Select _All Articles" msgstr "اختر كل الملفات" #: ../pan/gui/actions.cc:391 #, fuzzy msgid "_Deselect All Articles" msgstr "إلغي إختيار جميع الملفات" #: ../pan/gui/actions.cc:396 #, fuzzy msgid "Add Su_bthreads to Selection" msgstr "ألفا إلى تحديد" #: ../pan/gui/actions.cc:401 #, fuzzy msgid "Add _Threads to Selection" msgstr "ألفا إلى تحديد" #: ../pan/gui/actions.cc:406 #, fuzzy msgid "Add _Similar Articles to Selection" msgstr "إضافة إلى التحديد" #: ../pan/gui/actions.cc:411 #, fuzzy msgid "Select Article _Body" msgstr "انتقاء هذا اليوم" #: ../pan/gui/actions.cc:416 #, fuzzy msgid "Edit _Preferences" msgstr "تفضيلات gedit" #: ../pan/gui/actions.cc:421 #, fuzzy msgid "Edit Selected _Group's Preferences" msgstr "تحرير تفضيلات متعدّدة" #: ../pan/gui/actions.cc:426 ../pan/gui/post-ui.cc:434 #, fuzzy msgid "Edit P_osting Profiles" msgstr "تحرير ملف شخصي" #: ../pan/gui/actions.cc:431 #, fuzzy msgid "Edit _News Servers" msgstr "خوادم الشبكة" #: ../pan/gui/actions.cc:436 #, fuzzy msgid "Jump to _Group Tab" msgstr "اقفز إلى الصفحة:" #: ../pan/gui/actions.cc:441 #, fuzzy msgid "Jump to _Header Tab" msgstr "أعد تحميل اللسان تلقائيا" #: ../pan/gui/actions.cc:446 #, fuzzy msgid "Jump to _Body Tab" msgstr "أعد تحميل اللسان تلقائيا" #: ../pan/gui/actions.cc:451 #, fuzzy msgid "_Rot13 Selected Text" msgstr "ا_بحث عن النص المنتقى" #: ../pan/gui/actions.cc:456 #, fuzzy msgid "Clear _Header Pane" msgstr "حشو الرأس" #: ../pan/gui/actions.cc:461 #, fuzzy msgid "Clear _Body Pane" msgstr "امسح الملاح_ظات" #: ../pan/gui/actions.cc:466 #, fuzzy msgid "Cache Article" msgstr "عنوان الصفحة" #: ../pan/gui/actions.cc:471 #, fuzzy msgid "Read Article" msgstr "تعلم القراءة" #: ../pan/gui/actions.cc:476 #, fuzzy msgid "Show Article Information" msgstr "اعرض معلومات الصورة" #: ../pan/gui/actions.cc:481 #, fuzzy msgid "Read _More" msgstr "أحمر أو تدرج" #: ../pan/gui/actions.cc:482 #, fuzzy msgid "Read More" msgstr "أحمر أو تدرج" #: ../pan/gui/actions.cc:486 #, fuzzy msgid "Read _Back" msgstr "رد أوك" #: ../pan/gui/actions.cc:487 #, fuzzy msgid "Read Back" msgstr "رد أوك" #: ../pan/gui/actions.cc:491 #, fuzzy msgid "Next _Unread Group" msgstr "الرّسالة _غير المقروءة التالية" #: ../pan/gui/actions.cc:496 #, fuzzy msgid "Next _Group" msgstr "مجموعة جديدة" #: ../pan/gui/actions.cc:501 #, fuzzy msgid "Next _Unread Article" msgstr "الرّسالة _غير المقروءة التالية" #: ../pan/gui/actions.cc:502 #, fuzzy msgid "Next Unread Article" msgstr "الرّسالة _غير المقروءة التالية" #: ../pan/gui/actions.cc:506 #, fuzzy msgid "Next _Article" msgstr "تدو_ير النص..." #: ../pan/gui/actions.cc:507 #, fuzzy msgid "Next Article" msgstr "تدو_ير النص..." #: ../pan/gui/actions.cc:511 msgid "Next _Watched Article" msgstr "" #: ../pan/gui/actions.cc:516 #, fuzzy msgid "Next Unread _Thread" msgstr "ال_نّقاش التالي" #: ../pan/gui/actions.cc:517 #, fuzzy msgid "Next Unread Thread" msgstr "الرّسالة _غير المقروءة التالية" #: ../pan/gui/actions.cc:521 #, fuzzy msgid "Next Threa_d" msgstr "ال_نّقاش التالي" #: ../pan/gui/actions.cc:526 #, fuzzy msgid "Pre_vious Article" msgstr "المقطوعة ال_سابقة" #: ../pan/gui/actions.cc:531 #, fuzzy msgid "Previous _Thread" msgstr "المقطوعة ال_سابقة" #: ../pan/gui/actions.cc:536 #, fuzzy msgid "_Parent Article" msgstr "الكائن ا?ب" #: ../pan/gui/actions.cc:541 #, fuzzy msgid "Ignore _Author" msgstr "تجاهل الك_ل" #: ../pan/gui/actions.cc:545 #, fuzzy msgid "_Watch Thread" msgstr "ال_نّقاش التالي" #: ../pan/gui/actions.cc:550 #, fuzzy msgid "_Ignore Thread" msgstr "تج_اهل الحالة" #: ../pan/gui/actions.cc:555 ../pan/gui/actions.cc:556 #, fuzzy msgid "_Toggle Flag On/Off for Thread" msgstr "ال_نّقاش التالي" #: ../pan/gui/actions.cc:560 ../pan/gui/actions.cc:561 #, fuzzy msgid "_Turn Flag Off for Thread" msgstr "ال_نّقاش التالي" #: ../pan/gui/actions.cc:565 ../pan/gui/actions.cc:566 #, fuzzy msgid "_Select All Flagged Threads" msgstr "الرّسالة _غير المقروءة التالية" #: ../pan/gui/actions.cc:570 ../pan/gui/actions.cc:571 #, fuzzy msgid "_Go to Next Flagged Thread" msgstr "الرّسالة _غير المقروءة التالية" #: ../pan/gui/actions.cc:575 ../pan/gui/actions.cc:576 #, fuzzy msgid "_Go to Last Flagged Thread" msgstr "الرّسالة _غير المقروءة التالية" #: ../pan/gui/actions.cc:580 ../pan/gui/actions.cc:581 #, fuzzy msgid "_Invert Selection" msgstr "ألفا إلى تحديد" #: ../pan/gui/actions.cc:585 msgid "Edit Article's Watch/Ignore/Score..." msgstr "" #: ../pan/gui/actions.cc:590 #, fuzzy msgid "Add a _Scoring Rule..." msgstr "أضف _مجلّد..." #: ../pan/gui/actions.cc:595 #, fuzzy msgid "Cance_l Article..." msgstr "إلغاء الحفظ..." #: ../pan/gui/actions.cc:600 #, fuzzy msgid "_Supersede Article..." msgstr "_حفظ إلى ملف" #: ../pan/gui/actions.cc:605 #, fuzzy msgid "_Delete Article" msgstr "ا_حذف الكل" #: ../pan/gui/actions.cc:610 #, fuzzy msgid "Clear Article Cache" msgstr "امسح الذاكرة المؤقتة" #: ../pan/gui/actions.cc:615 #, fuzzy msgid "_Mark Article as Read" msgstr "علّم ك _مقروءة" #: ../pan/gui/actions.cc:620 #, fuzzy msgid "Mark Article as _Unread" msgstr "_علّم ك_غير مقروء" #: ../pan/gui/actions.cc:626 #, fuzzy msgid "_Mark Thread as Read" msgstr "علّم ك _مقروءة" #: ../pan/gui/actions.cc:631 #, fuzzy msgid "Mark Thread as _Unread" msgstr "_علّم ك_غير مقروء" #: ../pan/gui/actions.cc:636 #, fuzzy msgid "_Post to Newsgroup" msgstr "مجموعات أخبار" #: ../pan/gui/actions.cc:637 #, fuzzy msgid "Post to Newsgroup" msgstr "مجموعات أخبار" #: ../pan/gui/actions.cc:641 #, fuzzy msgid "_Followup to Newsgroup" msgstr "مجموعات أخبار" #: ../pan/gui/actions.cc:642 #, fuzzy msgid "Followup to Newsgroup" msgstr "مجموعات أخبار" #: ../pan/gui/actions.cc:646 #, fuzzy msgid "_Reply to Author in Mail" msgstr "رد على الجميع" #: ../pan/gui/actions.cc:651 #, fuzzy msgid "_Pan Home Page" msgstr "ال_صفحة الرئيسيّة:" #: ../pan/gui/actions.cc:656 msgid "Give _Feedback or Report a Bug..." msgstr "" #: ../pan/gui/actions.cc:661 #, fuzzy msgid "_Tip Jar..." msgstr "_ترويسة كبيرة..." #: ../pan/gui/actions.cc:666 #, fuzzy msgid "_About" msgstr "_6 عن البرنامج" #: ../pan/gui/actions.cc:671 msgid "Edit _SSL Certificates" msgstr "" #: ../pan/gui/actions.cc:685 #, fuzzy msgid "_Thread Headers" msgstr "ترويسات _HTTP" #: ../pan/gui/actions.cc:686 #, fuzzy msgid "_Wrap Article Body" msgstr "_لف حول" #: ../pan/gui/actions.cc:687 #, fuzzy msgid "Mute _Quoted Text" msgstr "أصمت عند الخروج" #: ../pan/gui/actions.cc:688 msgid "Show All _Headers in Body Pane" msgstr "" #: ../pan/gui/actions.cc:689 #, fuzzy msgid "Show _Smilies as Graphics" msgstr "لا تعرض _سوى قائمة المهام هذه" #: ../pan/gui/actions.cc:690 msgid "Show *Bold*, __Underlined__, and /Italic/" msgstr "" #: ../pan/gui/actions.cc:691 msgid "Size Pictures to _Fit" msgstr "" #: ../pan/gui/actions.cc:692 #, fuzzy msgid "Use _Monospace Font" msgstr "خط ثابت العرض" #: ../pan/gui/actions.cc:693 #, fuzzy msgid "Set Focus to Images" msgstr "اختر صورة الشعار" #: ../pan/gui/actions.cc:694 msgid "Highlight _URLs" msgstr "" #: ../pan/gui/actions.cc:697 msgid "_Work Online" msgstr "ا_عمل باتّصال" #: ../pan/gui/actions.cc:698 #, fuzzy msgid "_Tabbed Layout" msgstr "مخطط القائمة" #: ../pan/gui/actions.cc:699 #, fuzzy msgid "Show Group _Pane" msgstr "اعرض الشريط الجانبي" #: ../pan/gui/actions.cc:700 #, fuzzy msgid "Show Hea_der Pane" msgstr "اعرض الشريط الجانبي" #: ../pan/gui/actions.cc:701 #, fuzzy msgid "Show Bod_y Pane" msgstr "اعرض الشريط الجانبي" #: ../pan/gui/actions.cc:702 msgid "Show _Toolbar" msgstr "أظهر شريط الأ_دوات" #: ../pan/gui/actions.cc:703 #, fuzzy msgid "Abbreviate Group Names" msgstr "أ_سماء وضائف مختصرة" #: ../pan/gui/actions.cc:705 msgid "Match Only _Unread Articles" msgstr "" #: ../pan/gui/actions.cc:705 #, fuzzy msgid "Match Only Unread Articles" msgstr "خصائص القيم الرياضية" #: ../pan/gui/actions.cc:706 msgid "Match Only _Cached Articles" msgstr "" #: ../pan/gui/actions.cc:706 #, fuzzy msgid "Match Only Cached Articles" msgstr "خصائص القيم الرياضية" #: ../pan/gui/actions.cc:707 #, fuzzy msgid "Match Only _Complete Articles" msgstr "خصائص القيم الرياضية" #: ../pan/gui/actions.cc:707 #, fuzzy msgid "Match Only Complete Articles" msgstr "خصائص القيم الرياضية" #: ../pan/gui/actions.cc:708 msgid "Match Only _My Articles" msgstr "" #: ../pan/gui/actions.cc:708 #, fuzzy msgid "Match Only My Articles" msgstr "خصائص القيم الرياضية" #: ../pan/gui/actions.cc:709 msgid "Match Only _Watched Articles" msgstr "" #: ../pan/gui/actions.cc:709 #, fuzzy msgid "Match Only Watched Articles" msgstr "خصائص القيم الرياضية" #: ../pan/gui/actions.cc:711 msgid "Match Scores of 9999 (_Watched)" msgstr "" #: ../pan/gui/actions.cc:712 msgid "Match Scores of 5000...9998 (_High)" msgstr "" #: ../pan/gui/actions.cc:713 msgid "Match Scores of 1...4999 (Me_dium)" msgstr "" #: ../pan/gui/actions.cc:714 msgid "Match Scores of 0 (_Normal)" msgstr "" #: ../pan/gui/actions.cc:715 msgid "Match Scores of -9998...-1 (_Low)" msgstr "" #: ../pan/gui/actions.cc:716 msgid "Match Scores of -9999 (_Ignored)" msgstr "" #: ../pan/gui/actions.cc:718 msgid "Enable/Disable All _Rules" msgstr "" #: ../pan/gui/actions.cc:744 #, fuzzy msgid "Show Matching _Articles" msgstr "بمطابقة ال_فنان" #: ../pan/gui/actions.cc:745 msgid "Show Matching Articles' _Threads" msgstr "" #: ../pan/gui/actions.cc:746 msgid "Show Matching Articles' _Subthreads" msgstr "" #: ../pan/gui/body-pane.cc:1011 #, fuzzy, c-format msgid "Unnamed File" msgstr "جدول التوقيعات" #: ../pan/gui/body-pane.cc:1092 ../pan/gui/gui.cc:1864 #: ../pan/gui/header-pane.cc:1188 ../pan/gui/header-pane.cc:1617 #: ../pan/gui/post-ui.cc:2496 ../pan/gui/prefs-ui.cc:833 #: ../pan/gui/score-add-ui.cc:139 msgid "Subject" msgstr "الموضوع" #: ../pan/gui/body-pane.cc:1094 ../pan/gui/gui.cc:1864 msgid "From" msgstr "مِن" #: ../pan/gui/body-pane.cc:1096 ../pan/gui/gui.cc:1865 #: ../pan/gui/header-pane.cc:1695 ../pan/gui/log-ui.cc:305 #: ../pan/gui/prefs-ui.cc:829 #, fuzzy msgid "Date" msgstr "التّاريخ:" #: ../pan/gui/body-pane.cc:1103 msgid "Newsgroups" msgstr "مجموعات أخبار" #: ../pan/gui/body-pane.cc:1108 #, fuzzy msgid "Followup-To" msgstr "متابعة" #: ../pan/gui/body-pane.cc:1118 msgid "Reply-To" msgstr "رُد إلى" #: ../pan/gui/body-pane.cc:1160 #, fuzzy msgid " from " msgstr "من" #: ../pan/gui/body-pane.cc:1162 #, fuzzy msgid " at " msgstr " إلى " #: ../pan/gui/body-pane.cc:1264 #, c-format msgid "" "This is a PGP-Signed message.\n" "\n" "Signer : %s ('%s')\n" "Valid until : %s\n" "Created on : %s" msgstr "" #: ../pan/gui/body-pane.cc:1269 msgid "always" msgstr "" #: ../pan/gui/body-pane.cc:1485 msgid "Copy _URL" msgstr "" #: ../pan/gui/body-pane.cc:1680 #, fuzzy msgid "Save attachment as ...." msgstr "احفظ المرفقات" #: ../pan/gui/body-pane.cc:1683 #, fuzzy msgid "Save all attachments" msgstr "احفظ المرفقات" #. add a toolbar for attachments #: ../pan/gui/body-pane.cc:1753 #, fuzzy msgid "Attachments" msgstr "احفظ المرفقات" # 48x48/emblems/emblem-plan.icon.in.h:1 #. update the titlebar #: ../pan/gui/dl-headers-ui.cc:106 ../pan/gui/gui.cc:973 #: ../pan/gui/gui.cc:1592 ../pan/gui/gui.cc:1893 #: ../pan/gui/score-add-ui.cc:602 #, fuzzy msgid "Pan" msgstr "خطّة" #: ../pan/gui/dl-headers-ui.cc:112 #, fuzzy, c-format msgid "%d Group" msgid_plural "%d Groups" msgstr[0] "المجموعات" msgstr[1] "المجموعات" #: ../pan/gui/dl-headers-ui.cc:135 msgid "Get the last N _days' headers: " msgstr "" #: ../pan/gui/dl-headers-ui.cc:143 #, fuzzy msgid "Get _new headers" msgstr "احذف الترويسات" #: ../pan/gui/dl-headers-ui.cc:147 #, fuzzy msgid "Get _all headers" msgstr "اجلب _كل الترويسات" #: ../pan/gui/dl-headers-ui.cc:151 #, fuzzy msgid "Get the _latest N headers: " msgstr "حدد ترويسة العمود" #: ../pan/gui/e-action-combo-box.c:388 ../pan/gui/prefs-ui.cc:826 #, fuzzy msgid "Action" msgstr "أفعال" #: ../pan/gui/e-action-combo-box.c:389 msgid "A GtkRadioAction" msgstr "" #: ../pan/gui/e-charset.c:51 ../pan/gui/task-pane.cc:518 msgid "Unknown" msgstr "مجهول" #: ../pan/gui/e-charset.c:52 msgid "Arabic" msgstr "" #: ../pan/gui/e-charset.c:53 #, fuzzy msgid "Baltic" msgstr "البحر البلطيقي" #: ../pan/gui/e-charset.c:54 #, fuzzy msgid "Central European" msgstr "وسط أوروبي (_MacCE)" #: ../pan/gui/e-charset.c:55 #, fuzzy msgid "Chinese" msgstr "سطور" #: ../pan/gui/e-charset.c:56 #, fuzzy msgid "Cyrillic" msgstr "روسية سريالية" #: ../pan/gui/e-charset.c:57 #, fuzzy msgid "Greek" msgstr "أخضر" #: ../pan/gui/e-charset.c:58 msgid "Hebrew" msgstr "" #: ../pan/gui/e-charset.c:59 #, fuzzy msgid "Japanese" msgstr "ض-ي|ياباني" #: ../pan/gui/e-charset.c:60 #, fuzzy msgid "Korean" msgstr "ض-ي|كوري" #: ../pan/gui/e-charset.c:61 msgid "Thai" msgstr "" #: ../pan/gui/e-charset.c:62 #, fuzzy msgid "Turkish" msgstr "ا-ص|تركي" #: ../pan/gui/e-charset.c:63 msgid "Unicode" msgstr "يونيكود" #: ../pan/gui/e-charset.c:64 #, fuzzy msgid "Western European" msgstr "وسط أوروبي (_MacCE)" #: ../pan/gui/e-charset.c:65 #, fuzzy msgid "Western European, New" msgstr "غربي" #: ../pan/gui/e-charset.c:84 ../pan/gui/e-charset.c:85 #: ../pan/gui/e-charset.c:86 #, fuzzy msgid "Traditional" msgstr "صيني تقليدي" #: ../pan/gui/e-charset.c:87 ../pan/gui/e-charset.c:88 #: ../pan/gui/e-charset.c:89 ../pan/gui/e-charset.c:90 #, fuzzy msgid "Simplified" msgstr "صيني مبسّط" #: ../pan/gui/e-charset.c:93 #, fuzzy msgid "Ukrainian" msgstr "سيريالي / اوكراني (_KOI8-U)" #: ../pan/gui/e-charset.c:96 msgid "Visual" msgstr "" #: ../pan/gui/e-charset-combo-box.c:93 ../pan/gui/gui.cc:2058 #: ../pan/gui/post-ui.cc:519 ../pan/gui/prefs-ui.cc:737 #, fuzzy msgid "Character Encoding" msgstr "ترميز المحارف" #: ../pan/gui/e-charset-combo-box.c:117 msgid "Enter the character set to use" msgstr "" #: ../pan/gui/e-charset-combo-box.c:336 msgid "Other..." msgstr "" #: ../pan/gui/e-cte-dialog.c:78 #, fuzzy msgid "Default encoding" msgstr "يجري التسجيل" #: ../pan/gui/e-cte-dialog.c:80 #, fuzzy msgid "7Bit Encoding" msgstr "يجري التسجيل" #: ../pan/gui/e-cte-dialog.c:82 #, fuzzy msgid "8Bit Encoding" msgstr "يجري التسجيل" #: ../pan/gui/e-cte-dialog.c:84 #, fuzzy msgid "BASE64 Encoding" msgstr "يجري التسجيل" #: ../pan/gui/e-cte-dialog.c:86 #, fuzzy msgid "Quoted-Printable Encoding" msgstr "اللوحة ال_سفلية" #: ../pan/gui/group-pane.cc:500 #, fuzzy msgid "Group" msgstr "المجموعات" #: ../pan/gui/group-pane.cc:501 #, fuzzy msgid "Group (regex)" msgstr "اسم الم_جمعة:" #: ../pan/gui/group-pane.cc:913 #, fuzzy msgid "Subscribed Groups" msgstr "إشترِك" #: ../pan/gui/group-pane.cc:914 #, fuzzy msgid "Other Groups" msgstr "تحرير المجموعات" #: ../pan/gui/group-pane.cc:954 ../pan/gui/score-view-ui.cc:157 #, fuzzy msgid "Name" msgstr "الإ_سم" #: ../pan/gui/group-prefs-dialog.cc:156 msgid "No Profiles defined in Edit|Posting Profiles." msgstr "" #: ../pan/gui/group-prefs-dialog.cc:231 #, fuzzy msgid "Pan: Group Preferences" msgstr "تفضيلات إيغنو" #: ../pan/gui/group-prefs-dialog.cc:247 #, fuzzy, c-format msgid "Properties for Groups" msgstr "خصائص" #: ../pan/gui/group-prefs-dialog.cc:249 #, fuzzy, c-format msgid "Properties for %s" msgstr "خصائص" #: ../pan/gui/group-prefs-dialog.cc:257 #, fuzzy msgid "Character _encoding:" msgstr "ترميز المحارف" #: ../pan/gui/group-prefs-dialog.cc:259 #, fuzzy msgid "Directory for Saving Attachments" msgstr "دليل حفظ ملفات مكون البريد" #: ../pan/gui/group-prefs-dialog.cc:269 #, fuzzy msgid "Directory for _saving attachments:" msgstr "دليل حفظ ملفات مكون البريد" #: ../pan/gui/group-prefs-dialog.cc:271 #, fuzzy msgid "Posting _profile:" msgstr "تحرير الملف الشخصي: " #: ../pan/gui/group-prefs-dialog.cc:277 msgid "Spellchecker _language:" msgstr "" #: ../pan/gui/gui.cc:273 #, fuzzy msgid "Open the Task Manager" msgstr "يفتح مدير الأدوات الخارجية" #: ../pan/gui/gui.cc:301 #, fuzzy msgid "Open the Event Log" msgstr "افتح المجلد الأب" #: ../pan/gui/gui.cc:561 #, fuzzy msgid "Save NZB's Files" msgstr "احفظ ملف" #: ../pan/gui/gui.cc:588 msgid "Untitled.nzb" msgstr "" #: ../pan/gui/gui.cc:590 #, fuzzy msgid "Save NZB File as..." msgstr "احفظ ملف" #: ../pan/gui/gui.cc:757 #, fuzzy msgid "Import NZB Files" msgstr "إستيراد ملف" #: ../pan/gui/gui.cc:765 ../pan/gui/post-ui.cc:3197 #, fuzzy msgid "NZB Files" msgstr "احفظ ملف" #: ../pan/gui/gui.cc:770 msgid "All Files" msgstr "" #: ../pan/gui/gui.cc:1258 #, fuzzy msgid "Unable to supersede article." msgstr "لا يمكن إرسال الملف" #: ../pan/gui/gui.cc:1259 ../pan/gui/gui.cc:1333 msgid "The article doesn't match any of your posting profiles." msgstr "" #: ../pan/gui/gui.cc:1306 #, fuzzy msgid "Revise and send this article to replace the old one." msgstr "الإسم الجديد مساو للاسم القديم." #: ../pan/gui/gui.cc:1307 ../pan/gui/gui.cc:1370 #, fuzzy msgid "Be patient! It will take time for your changes to take effect." msgstr "ستحتاج للخروج من النظام ليأخذ التغيير أثره." #: ../pan/gui/gui.cc:1332 #, fuzzy msgid "Unable to cancel article." msgstr "غير قادر على تغيير الثقة" #: ../pan/gui/gui.cc:1369 msgid "Send this article to ask your server to cancel your other one." msgstr "" #: ../pan/gui/gui.cc:1387 #, fuzzy msgid "You marked some articles for deletion" msgstr "إضافة إلى التحديد" #: ../pan/gui/gui.cc:1388 msgid "Are you sure you want to delete them?" msgstr "" #: ../pan/gui/gui.cc:1413 #, fuzzy msgid "Always trust" msgstr "محرر القوائم" #: ../pan/gui/gui.cc:1416 msgid "Do you want to accept it permanently (deletable afterwards) ?" msgstr "" #: ../pan/gui/gui.cc:1595 #, fuzzy msgid "Copyright \\u00A9 2002-2012 Charles Kerr and others" msgstr "حقوق النسخ © 2002-2005 Bastien Nocera" #: ../pan/gui/gui.cc:1600 #, fuzzy msgid "translator-credits" msgstr "المترجمون:" #: ../pan/gui/gui.cc:1709 #, fuzzy msgid "_1. Group Pane" msgstr "اسم المجموعة" #: ../pan/gui/gui.cc:1710 #, fuzzy msgid "_2. Header Pane" msgstr "حشو الرأس" #: ../pan/gui/gui.cc:1711 #, fuzzy msgid "_3. Body Pane" msgstr "اللوحة ال_سفلية" #: ../pan/gui/gui.cc:1800 ../pan/gui/gui.cc:1815 #, fuzzy msgid " Bytes" msgstr "بايتات" #: ../pan/gui/gui.cc:1803 msgid " KB" msgstr "" #: ../pan/gui/gui.cc:1806 msgid " MB" msgstr "" #: ../pan/gui/gui.cc:1809 msgid " GB" msgstr "" #: ../pan/gui/gui.cc:1812 msgid " TB" msgstr "" #: ../pan/gui/gui.cc:1844 #, fuzzy, c-format msgid "This article is complete with %d part." msgid_plural "This article has all %d parts." msgstr[0] "لهذا الحدث منبّهات" msgstr[1] "لهذا الحدث منبّهات" #: ../pan/gui/gui.cc:1846 #, fuzzy, c-format msgid "This article is missing %d part." msgid_plural "This article is missing %d of its %d parts:" msgstr[0] "لهذا الحدث منبّهات" msgstr[1] "لهذا الحدث منبّهات" #: ../pan/gui/gui.cc:1865 ../pan/gui/header-pane.cc:1190 #, fuzzy msgid "Message-ID" msgstr "رسائل" #: ../pan/gui/gui.cc:1866 ../pan/gui/header-pane.cc:1665 #: ../pan/gui/prefs-ui.cc:830 msgid "Lines" msgstr "سطور" #: ../pan/gui/gui.cc:1866 msgid "Size" msgstr "" #: ../pan/gui/gui.cc:1867 ../pan/gui/header-pane.cc:1680 #: ../pan/gui/prefs-ui.cc:828 msgid "Bytes" msgstr "بايتات" #: ../pan/gui/gui.cc:1917 msgid "" "Error loading iconv library. Some Charsets in the GUI will not be able to be " "encoded." msgstr "" #: ../pan/gui/gui.cc:2059 #, fuzzy msgid "Body Pane Encoding" msgstr "اللوحة ال_سفلية" #: ../pan/gui/gui.cc:2090 ../pan/gui/task-pane.cc:569 #, c-format msgid "Offline" msgstr "غير متّصلل" #: ../pan/gui/gui.cc:2094 #, fuzzy, c-format msgid "Closing %d connection" msgid_plural "Closing %d connections" msgstr[0] "اتصال غير سليم" msgstr[1] "اتصال غير سليم" #: ../pan/gui/gui.cc:2096 ../pan/gui/gui.cc:2126 #, fuzzy, c-format msgid "No Connections" msgstr "إتّصالات VPN" #: ../pan/gui/gui.cc:2100 #, fuzzy, c-format msgid "Connecting" msgstr "الإتصال" #: ../pan/gui/gui.cc:2113 #, c-format msgid "%s: %d idle, %d active @ %.1f KiBps" msgstr "" #: ../pan/gui/gui.cc:2169 #, fuzzy, c-format msgid "No Tasks" msgstr "_مهام" #: ../pan/gui/gui.cc:2171 ../pan/gui/prefs-ui.cc:1047 #, fuzzy msgid "Tasks" msgstr "_مهام" #: ../pan/gui/gui.cc:2182 ../pan/gui/task-pane.cc:435 #, c-format msgid "%lu tasks, %s, %.1f KiBps, ETA %d:%02d:%02d" msgstr "" #: ../pan/gui/gui.cc:2234 msgid "" "Pan is now offline. Please see \"File|Event Log\" and correct the problem, " "then use \"File|Work Online\" to continue." msgstr "" #: ../pan/gui/header-pane.cc:1186 #, fuzzy msgid "Subject or Author" msgstr "الموضوع يحتوي" #: ../pan/gui/header-pane.cc:1187 #, fuzzy msgid "Sub or Auth (regex)" msgstr "الموضوع يحتوي" #: ../pan/gui/header-pane.cc:1189 ../pan/gui/header-pane.cc:1649 #: ../pan/gui/prefs-ui.cc:827 ../pan/gui/score-add-ui.cc:140 #, fuzzy msgid "Author" msgstr "المؤلف:" #: ../pan/gui/header-pane.cc:1634 ../pan/gui/prefs-ui.cc:831 #, fuzzy msgid "Score" msgstr "النّتيجة:" #: ../pan/gui/log-ui.cc:103 #, fuzzy msgid "Save Event List" msgstr "احفظ التفاصيل" #: ../pan/gui/log-ui.cc:256 #, fuzzy msgid "Pan: Events" msgstr "أحداث" #: ../pan/gui/log-ui.cc:315 #, fuzzy msgid "Message" msgstr "رسائل" #: ../pan/gui/pan.cc:330 msgid "Maximize" msgstr "" #: ../pan/gui/pan.cc:383 msgid "An Error has occurred!" msgstr "" #: ../pan/gui/pan.cc:397 #, fuzzy msgid "New Articles!" msgstr "تدو_ير النص..." #: ../pan/gui/pan.cc:398 msgid "" "There are new\n" "articles available." msgstr "" #: ../pan/gui/pan.cc:465 msgid "Toggle on/offline" msgstr "" #: ../pan/gui/pan.cc:513 msgid "" "Thank you for trying Pan!\n" " \n" "To start newsreading, first Add a Server." msgstr "" #: ../pan/gui/pan.cc:595 msgid "" "General Options\n" " -h, --help Show this usage page.\n" " --verbose Be verbose (in non-GUI mode).\n" "\n" "URL Options\n" " --no-gui On news:message-id, dump the article to stdout.\n" "\n" "NZB Batch Options\n" " --nzb file1 file2 ... Process nzb files without launching all of Pan.\n" " -o path, --output=path Path to save attachments listed in the nzb " "files.\n" " --no-gui Only show console output, not the download " "queue.\n" msgstr "" #: ../pan/gui/pan.cc:867 msgid "Error: --no-gui used without nzb files or news:message-id." msgstr "" #: ../pan/gui/pan.cc:871 #, fuzzy, c-format msgid "Pan %s started" msgstr "أضيفت لوحة المهام '%s'" #: ../pan/gui/pan.cc:890 msgid "Please configure Pan's news servers before using it as an nzb client." msgstr "" #: ../pan/gui/pan.cc:1009 msgid "Pan notification" msgstr "" #: ../pan/gui/post-ui.cc:186 #, c-format msgid "Upload Queue : %ld Tasks, %ld KB (~ %.2f MB) total ." msgstr "" #: ../pan/gui/post-ui.cc:286 #, fuzzy, c-format msgid "Error setting custom spellchecker: %s" msgstr "خطأ ضبط القيمة: %s" #: ../pan/gui/post-ui.cc:291 ../pan/gui/post-ui.cc:300 #, fuzzy, c-format msgid "Error setting spellchecker: %s" msgstr "خطأ ضبط القيمة: %s" #: ../pan/gui/post-ui.cc:419 msgid "_Profile" msgstr "_ملف شخصي" #: ../pan/gui/post-ui.cc:420 #, fuzzy msgid "Set Editor" msgstr "محرر التحديد" #: ../pan/gui/post-ui.cc:422 #, fuzzy msgid "_Send Article" msgstr "أر_سل تنبيه" #: ../pan/gui/post-ui.cc:422 #, fuzzy msgid "Send Article Now" msgstr "أر_سل تنبيه" #: ../pan/gui/post-ui.cc:423 #, fuzzy msgid "_Send and Save Articles to NZB" msgstr "_حفظ إلى ملف" #: ../pan/gui/post-ui.cc:423 #, fuzzy msgid "Send and Save Articles to NZB" msgstr "احفظ الملف كـ" #: ../pan/gui/post-ui.cc:424 #, fuzzy msgid "Set Character _Encoding..." msgstr "اضبط ترميز ال_محارف" #: ../pan/gui/post-ui.cc:425 #, fuzzy msgid "Set Content _Transfer Encoding..." msgstr "اضبط ترميز ال_محارف" #: ../pan/gui/post-ui.cc:426 #, fuzzy msgid "Sa_ve Draft" msgstr "احفظ _مسودّة" #: ../pan/gui/post-ui.cc:426 msgid "Save as a Draft for Future Posting" msgstr "" #: ../pan/gui/post-ui.cc:427 #, fuzzy msgid "_Open Draft..." msgstr "إفتح ملف..." #: ../pan/gui/post-ui.cc:427 #, fuzzy msgid "Open an Article Draft" msgstr "افتح ملف" #: ../pan/gui/post-ui.cc:432 #, fuzzy msgid "_Rot13" msgstr "_بعيد" #: ../pan/gui/post-ui.cc:432 #, fuzzy msgid "Rot13 Selected Text" msgstr "ا_بحث عن النص المنتقى" #: ../pan/gui/post-ui.cc:433 #, fuzzy msgid "Run _Editor" msgstr "محرر القوائم" #: ../pan/gui/post-ui.cc:433 #, fuzzy msgid "Run Editor" msgstr "محرر القوائم" #: ../pan/gui/post-ui.cc:435 msgid "Add _Files to Queue" msgstr "" #: ../pan/gui/post-ui.cc:435 msgid "Add Files to Queue" msgstr "" #: ../pan/gui/post-ui.cc:450 ../pan/gui/post-ui.cc:451 #, fuzzy msgid "Remove from Queue" msgstr "احذ_ف الخادم" #: ../pan/gui/post-ui.cc:455 ../pan/gui/post-ui.cc:456 msgid "Clear List" msgstr "" #: ../pan/gui/post-ui.cc:460 ../pan/gui/post-ui.cc:461 #, fuzzy msgid "Select Needed Parts" msgstr "اختر كل الملفات" #: ../pan/gui/post-ui.cc:465 ../pan/gui/post-ui.cc:466 #: ../pan/gui/task-pane.cc:636 ../pan/gui/task-pane.cc:637 msgid "Move Up" msgstr "" #: ../pan/gui/post-ui.cc:470 ../pan/gui/post-ui.cc:471 #: ../pan/gui/task-pane.cc:641 ../pan/gui/task-pane.cc:642 msgid "Move Down" msgstr "" #: ../pan/gui/post-ui.cc:475 ../pan/gui/post-ui.cc:476 msgid "Move to Top" msgstr "" #: ../pan/gui/post-ui.cc:480 ../pan/gui/post-ui.cc:481 msgid "Move to Bottom" msgstr "" #: ../pan/gui/post-ui.cc:488 msgid "_Wrap Text" msgstr "_كسر النص" #: ../pan/gui/post-ui.cc:488 #, fuzzy msgid "Wrap Text" msgstr "_كسر النص" #: ../pan/gui/post-ui.cc:489 #, fuzzy msgid "Always Run Editor" msgstr "محرر القوائم" #: ../pan/gui/post-ui.cc:490 #, fuzzy msgid "Remember Character Encoding for this Group" msgstr "_تذكّر كلمة سر هذه الجلسة" #: ../pan/gui/post-ui.cc:491 msgid "Thread Attached Replies" msgstr "" #: ../pan/gui/post-ui.cc:492 msgid "PGP-Encrypt the Message" msgstr "" #: ../pan/gui/post-ui.cc:493 msgid "PGP-Sign the Message" msgstr "" #: ../pan/gui/post-ui.cc:494 #, fuzzy msgid "Check _Spelling" msgstr "ت_دقيق هجائي" #: ../pan/gui/post-ui.cc:520 #, fuzzy msgid "New Article's Encoding:" msgstr "اضبط ترميز ال_محارف" #: ../pan/gui/post-ui.cc:530 #, fuzzy msgid "Content Transfer Encoding" msgstr "ترميز المحارف" #: ../pan/gui/post-ui.cc:531 #, fuzzy msgid "New Article's Content Transfer Encoding:" msgstr "اضبط ترميز ال_محارف" #: ../pan/gui/post-ui.cc:711 #, fuzzy msgid "Your changes will be lost!" msgstr "إذا خرجت من جمب الآن،هذه التغييرات ستفقد" #: ../pan/gui/post-ui.cc:712 #, fuzzy msgid "Close this window and lose your changes?" msgstr "هل تريد حفظ تغييراتك؟" #: ../pan/gui/post-ui.cc:757 ../pan/gui/post-ui.cc:796 #, fuzzy msgid "There were problems with this post." msgstr "هناك ملف شخصي يحمل هذا الاسم" #: ../pan/gui/post-ui.cc:759 ../pan/gui/post-ui.cc:798 #: ../pan/gui/post-ui.cc:861 #, fuzzy msgid "Go Back" msgstr "تراجُع إلى الخلف" #: ../pan/gui/post-ui.cc:761 #, fuzzy msgid "Post Anyway" msgstr "_حرّر على أي حال " #. Prompt the user #: ../pan/gui/post-ui.cc:790 #, c-format msgid "" "Message uses characters not specified in charset '%s' - possibly use '%s' " msgstr "" #: ../pan/gui/post-ui.cc:813 #, fuzzy msgid "Go _Online" msgstr "متصل" #: ../pan/gui/post-ui.cc:860 msgid "The file queue is empty, so no files can be saved." msgstr "" #: ../pan/gui/post-ui.cc:1019 msgid "" "No posting server is set for this posting profile.\n" "Please edit the profile via Edit|Manage Posting Profiles." msgstr "" #: ../pan/gui/post-ui.cc:1054 #, fuzzy msgid "Pan is Offline." msgstr "غير متّصلل" #: ../pan/gui/post-ui.cc:1055 msgid "Go online to post the article?" msgstr "" #: ../pan/gui/post-ui.cc:1102 #, c-format msgid "" "Error signing/encrypting your message. Perhaps you misspelled your email-" "address (%s) ?" msgstr "" #: ../pan/gui/post-ui.cc:1267 #, fuzzy msgid "Error opening temporary file" msgstr "خطاء في فتح الملف" #: ../pan/gui/post-ui.cc:1279 #, fuzzy, c-format msgid "Error writing article to temporary file: %s" msgstr "خطأ أثناء كتابة ملف البريد المؤقّت: %s" #: ../pan/gui/post-ui.cc:1298 #, c-format msgid "Error parsing \"external editor\" command line: %s (Command was: %s)" msgstr "" #: ../pan/gui/post-ui.cc:1339 #, fuzzy, c-format msgid "Error starting external editor: %s" msgstr "%s: خطأ أثناء تشغيل المرحب على العرض %s" #: ../pan/gui/post-ui.cc:1395 #, fuzzy msgid "Open Draft Article" msgstr "افتح ملف" #: ../pan/gui/post-ui.cc:1606 #, fuzzy msgid "Save Draft Article" msgstr "احفظ _مسودّة" #: ../pan/gui/post-ui.cc:1803 #, fuzzy, c-format msgid "Couldn't parse signature command \"%s\": %s" msgstr "تعذّر الاتّصال باستخدام الأمر \"%s\": %s" #: ../pan/gui/post-ui.cc:1839 #, fuzzy msgid "Couldn't convert signature to UTF-8." msgstr "تعذّر التحقق من التوقيع" #: ../pan/gui/post-ui.cc:2334 #, fuzzy msgid "F_rom" msgstr "مِن" #: ../pan/gui/post-ui.cc:2352 #, fuzzy msgid "_Subject" msgstr "الموضوع" #: ../pan/gui/post-ui.cc:2365 #, fuzzy msgid "_Newsgroups" msgstr "مجموعات أخبار" #: ../pan/gui/post-ui.cc:2379 #, fuzzy msgid "Mail _To" msgstr "_بريد" #: ../pan/gui/post-ui.cc:2481 msgid "Delete from Queue" msgstr "" #: ../pan/gui/post-ui.cc:2494 msgid "No." msgstr "" #: ../pan/gui/post-ui.cc:2498 ../pan/gui/post-ui.cc:2592 #: ../pan/gui/post-ui.cc:2633 #, fuzzy msgid "Filename" msgstr "/ملف" #: ../pan/gui/post-ui.cc:2500 msgid "Size (kB)" msgstr "" #: ../pan/gui/post-ui.cc:2600 msgid "The current filename" msgstr "" #: ../pan/gui/post-ui.cc:2604 #, fuzzy msgid "Subject Line" msgstr "الموضوع" #: ../pan/gui/post-ui.cc:2612 msgid "The current Subject Line" msgstr "" #: ../pan/gui/post-ui.cc:2626 msgid "No. " msgstr "" #: ../pan/gui/post-ui.cc:2630 msgid "Enable/Disable" msgstr "" #: ../pan/gui/post-ui.cc:2664 #, fuzzy msgid "Follo_wup-To" msgstr "متابعة" #. i18n: "poster" is a key used by many newsreaders. probably safest to keep this key in english. #: ../pan/gui/post-ui.cc:2673 msgid "" "The newsgroups where replies to your message should go. This is only needed " "if it differs from the \"Newsgroups\" header.\n" "\n" "To direct all replies to your email address, use \"Followup-To: poster\"" msgstr "" #: ../pan/gui/post-ui.cc:2679 #, fuzzy msgid "_Reply-To" msgstr "_رد إلى" #: ../pan/gui/post-ui.cc:2687 msgid "" "The email account where mail replies to your posted message should go. This " "is only needed if it differs from the \"From\" header." msgstr "" #: ../pan/gui/post-ui.cc:2693 #, fuzzy msgid "_Custom Headers" msgstr "ترويسات مخصصة" #: ../pan/gui/post-ui.cc:2717 msgid "Add \"_User-Agent\" header" msgstr "" #: ../pan/gui/post-ui.cc:2724 #, fuzzy msgid "Add \"Message-_Id\" header" msgstr "ترويسة الرّسالة" #: ../pan/gui/post-ui.cc:2855 #, fuzzy msgid "Select Parts" msgstr "اختر كل الملفات" #: ../pan/gui/post-ui.cc:2866 msgid "_Parts" msgstr "" #: ../pan/gui/post-ui.cc:3022 #, fuzzy msgid "Post Article" msgstr "غير حرِج" #: ../pan/gui/post-ui.cc:3043 msgid "_Message" msgstr "_رسالة" #: ../pan/gui/post-ui.cc:3044 #, fuzzy msgid "More _Headers" msgstr "ترويسات حية" #: ../pan/gui/post-ui.cc:3045 msgid "File _Queue" msgstr "" #: ../pan/gui/post-ui.cc:3077 ../pan/gui/profiles-dialog.cc:478 #, fuzzy, no-c-format msgid "On %d, %n wrote:" msgstr "ملاحظة واحدة" #: ../pan/gui/post-ui.cc:3106 msgid "Add files to queue" msgstr "" #: ../pan/gui/post-ui.cc:3184 msgid "Save Upload Queue as NZB File" msgstr "" #: ../pan/gui/prefs.cc:343 #, fuzzy, c-format msgid "Couldn't parse %s color \"%s\"" msgstr "لا يمكن تحليل اللون \"%s\"" #: ../pan/gui/prefs-ui.cc:120 msgid "Grab Key" msgstr "" #: ../pan/gui/prefs-ui.cc:126 #, c-format msgid "" "Press the combination of the keys\n" "you want to use for \"%s\"." msgstr "" #: ../pan/gui/prefs-ui.cc:166 msgid "Edit Hotkey" msgstr "" #: ../pan/gui/prefs-ui.cc:228 msgid "Error: Shortkey is invalid!" msgstr "" #: ../pan/gui/prefs-ui.cc:244 msgid "Error: Shortkey already exists!" msgstr "" #: ../pan/gui/prefs-ui.cc:535 #, fuzzy msgid "Show only icons" msgstr "اعرض معلومات الصورة" #: ../pan/gui/prefs-ui.cc:536 #, fuzzy msgid "Show only text" msgstr "اعرض الشريط الجانبي" #: ../pan/gui/prefs-ui.cc:537 #, fuzzy msgid "Show icons and text" msgstr "احفظ المرفقات" #: ../pan/gui/prefs-ui.cc:576 #, fuzzy msgid "Use GNOME Preferences" msgstr "تفضيلات عين جنوم" #: ../pan/gui/prefs-ui.cc:577 #, fuzzy msgid "Use KDE Preferences" msgstr "تفضيلات الفأرة" #: ../pan/gui/prefs-ui.cc:578 #, fuzzy msgid "Use OS X Preferences" msgstr "تفضيلات الفأرة" #: ../pan/gui/prefs-ui.cc:579 #, fuzzy msgid "Use Windows Preferences" msgstr "تفضيلات النافذة" #: ../pan/gui/prefs-ui.cc:580 #, fuzzy msgid "Custom Command:" msgstr "ال_أمر المخصّص:" #: ../pan/gui/prefs-ui.cc:632 #, fuzzy msgid "Disabled" msgstr "/_مفعّل" #: ../pan/gui/prefs-ui.cc:633 msgid "Only new (Score == 0)" msgstr "" #: ../pan/gui/prefs-ui.cc:634 msgid "9999 or more" msgstr "" #: ../pan/gui/prefs-ui.cc:635 msgid "5000 to 9998" msgstr "" #: ../pan/gui/prefs-ui.cc:636 msgid "1 to 4999" msgstr "" #: ../pan/gui/prefs-ui.cc:637 msgid "-9998 to -1" msgstr "" #: ../pan/gui/prefs-ui.cc:638 msgid "-9999 or less" msgstr "" #: ../pan/gui/prefs-ui.cc:702 #, c-format msgid "Select default global charset. Current setting : %s ." msgstr "" #: ../pan/gui/prefs-ui.cc:738 msgid "Global Charset Settings" msgstr "" #: ../pan/gui/prefs-ui.cc:832 ../pan/gui/task-pane.cc:770 msgid "State" msgstr "الحالة" #: ../pan/gui/prefs-ui.cc:866 #, fuzzy msgid "Enabled" msgstr "/_مفعّل" #: ../pan/gui/prefs-ui.cc:870 #, fuzzy msgid "Column Name" msgstr "الإسم المتداول" #: ../pan/gui/prefs-ui.cc:908 #, fuzzy msgid "Pan: Preferences" msgstr "تفضيلات إيغنو" #: ../pan/gui/prefs-ui.cc:923 msgid "Mouse" msgstr "الفأرة" #: ../pan/gui/prefs-ui.cc:925 msgid "Single-click activates, rather than selects, _groups" msgstr "" #: ../pan/gui/prefs-ui.cc:927 msgid "Single-click activates, rather than selects, _articles" msgstr "" #: ../pan/gui/prefs-ui.cc:930 msgid "Groups" msgstr "المجموعات" #: ../pan/gui/prefs-ui.cc:932 msgid "Get new headers in subscribed groups on _startup" msgstr "" #: ../pan/gui/prefs-ui.cc:934 msgid "Get new headers when _entering group" msgstr "" #: ../pan/gui/prefs-ui.cc:936 msgid "Mark entire group _read when leaving group" msgstr "" #: ../pan/gui/prefs-ui.cc:938 msgid "Mark entire group read before getting _new headers" msgstr "" #: ../pan/gui/prefs-ui.cc:940 msgid "E_xpand all threads when entering group" msgstr "" #: ../pan/gui/prefs-ui.cc:945 #, fuzzy msgid "Articles" msgstr "الفنان" #: ../pan/gui/prefs-ui.cc:947 msgid "Space selects next article rather than next unread" msgstr "" #: ../pan/gui/prefs-ui.cc:949 #, fuzzy msgid "Expand threads upon selection" msgstr "ألفا إلى تحديد" #: ../pan/gui/prefs-ui.cc:951 msgid "Always show article deletion confirmation dialog" msgstr "" #: ../pan/gui/prefs-ui.cc:953 #, fuzzy msgid "Smooth scrolling" msgstr "اللف" #: ../pan/gui/prefs-ui.cc:958 #, fuzzy msgid "Article Cache" msgstr "امسح الذاكرة المؤقتة" #: ../pan/gui/prefs-ui.cc:959 msgid "Clear article cache on shutdown" msgstr "" #: ../pan/gui/prefs-ui.cc:962 msgid "Size of article cache (in MiB) :" msgstr "" #: ../pan/gui/prefs-ui.cc:967 #, fuzzy msgid "File extension for Cached Articles: " msgstr "حدد عنوان صندوق الحوار" #: ../pan/gui/prefs-ui.cc:972 msgid "Tabs" msgstr "" #: ../pan/gui/prefs-ui.cc:977 #, fuzzy msgid "_Behavior" msgstr "السّلوك" #: ../pan/gui/prefs-ui.cc:977 #, fuzzy msgid "Behavior" msgstr "السّلوك" #: ../pan/gui/prefs-ui.cc:983 #, fuzzy msgid "Language Settings" msgstr "الإعدادات" #. systray and notify popup #: ../pan/gui/prefs-ui.cc:992 #, fuzzy msgid "System Tray Behavior" msgstr "السّلوك" #: ../pan/gui/prefs-ui.cc:994 msgid "Hide to system tray" msgstr "" #: ../pan/gui/prefs-ui.cc:996 msgid "Start Pan minimized" msgstr "" #: ../pan/gui/prefs-ui.cc:999 #, fuzzy msgid "Show notifications" msgstr "اعرض معلومات الصورة" #. allow multiple instances (seperate, not communicating with dbus) #: ../pan/gui/prefs-ui.cc:1004 #, fuzzy msgid "Startup Behavior" msgstr "السّلوك" #: ../pan/gui/prefs-ui.cc:1006 msgid "Allow multiple instances of Pan" msgstr "" #: ../pan/gui/prefs-ui.cc:1011 #, fuzzy msgid "Autosave Article Draft" msgstr "افتح ملف" #: ../pan/gui/prefs-ui.cc:1013 #, fuzzy msgid "Minutes to autosave the current Article Draft: " msgstr "افتح ملف" #: ../pan/gui/prefs-ui.cc:1018 #, fuzzy msgid "Autosave Articles" msgstr "احفظ ملف" #: ../pan/gui/prefs-ui.cc:1020 msgid "Minutes to autosave newsrc files: " msgstr "" #: ../pan/gui/prefs-ui.cc:1026 msgid "_Miscellaneous" msgstr "" #: ../pan/gui/prefs-ui.cc:1026 msgid "Miscellaneous" msgstr "" #: ../pan/gui/prefs-ui.cc:1031 #, fuzzy msgid "Pane Layout" msgstr "مخطط القائمة" #: ../pan/gui/prefs-ui.cc:1050 msgid "1=Groups, 2=Headers, 3=Body" msgstr "" #: ../pan/gui/prefs-ui.cc:1052 msgid "1=Groups, 2=Body, 3=Headers" msgstr "" #: ../pan/gui/prefs-ui.cc:1054 msgid "1=Headers, 2=Groups, 3=Body" msgstr "" #: ../pan/gui/prefs-ui.cc:1056 msgid "1=Headers, 2=Body, 3=Groups" msgstr "" #: ../pan/gui/prefs-ui.cc:1058 msgid "1=Body, 2=Groups, 3=Headers" msgstr "" #: ../pan/gui/prefs-ui.cc:1060 msgid "1=Body, 2=Headers, 3=Groups" msgstr "" #: ../pan/gui/prefs-ui.cc:1064 #, fuzzy msgid "Layout" msgstr "ت_خطيط" #: ../pan/gui/prefs-ui.cc:1069 #, fuzzy msgid "Header Pane Columns" msgstr "عمود تسطير" #: ../pan/gui/prefs-ui.cc:1073 #, fuzzy msgid "_Headers" msgstr "ترويسات" #: ../pan/gui/prefs-ui.cc:1073 #, fuzzy msgid "Headers" msgstr "ترويسات" #: ../pan/gui/prefs-ui.cc:1079 msgid "" "This menu lets you configure Pan to take certain actions on your behalf " "automatically, based on a post's score." msgstr "" #: ../pan/gui/prefs-ui.cc:1082 msgid "_Delete posts scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1084 msgid "Mark posts _read scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1086 msgid "_Cache posts scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1088 msgid "Download _attachments of posts scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1091 #, fuzzy msgid "Actions" msgstr "أ_حداث" #: ../pan/gui/prefs-ui.cc:1096 ../pan/gui/prefs-ui.cc:1117 msgid "Fonts" msgstr "خطوط" #: ../pan/gui/prefs-ui.cc:1098 #, fuzzy msgid "Use custom font in Group Pane:" msgstr "إستعمال خطوط مخصّصة" #: ../pan/gui/prefs-ui.cc:1103 #, fuzzy msgid "Use custom font in Header Pane:" msgstr "إستعمال خطوط مخصّصة" #: ../pan/gui/prefs-ui.cc:1108 #, fuzzy msgid "Use custom font in Body Pane:" msgstr "إستعمال خطوط مخصّصة" #: ../pan/gui/prefs-ui.cc:1113 #, fuzzy msgid "Monospace font:" msgstr "خط ثابت العرض" #: ../pan/gui/prefs-ui.cc:1117 msgid "_Fonts" msgstr "الخطوط" #: ../pan/gui/prefs-ui.cc:1122 #, fuzzy msgid "Header Pane" msgstr "حشو الرأس" #: ../pan/gui/prefs-ui.cc:1125 ../pan/gui/prefs-ui.cc:1131 #: ../pan/gui/prefs-ui.cc:1137 ../pan/gui/prefs-ui.cc:1143 #: ../pan/gui/prefs-ui.cc:1149 ../pan/gui/prefs-ui.cc:1155 #, fuzzy msgid "Text:" msgstr "_نص" #: ../pan/gui/prefs-ui.cc:1127 ../pan/gui/prefs-ui.cc:1133 #: ../pan/gui/prefs-ui.cc:1139 ../pan/gui/prefs-ui.cc:1145 #: ../pan/gui/prefs-ui.cc:1151 ../pan/gui/prefs-ui.cc:1157 msgid "Background:" msgstr "الخلفية:" #: ../pan/gui/prefs-ui.cc:1129 msgid "Scores of 9999 or more:" msgstr "" #: ../pan/gui/prefs-ui.cc:1135 msgid "Scores from 5000 to 9998:" msgstr "" #: ../pan/gui/prefs-ui.cc:1141 msgid "Scores from 1 to 4999:" msgstr "" #: ../pan/gui/prefs-ui.cc:1147 msgid "Scores from -9998 to -1:" msgstr "" #: ../pan/gui/prefs-ui.cc:1153 msgid "Scores of -9999 or less:" msgstr "" #: ../pan/gui/prefs-ui.cc:1159 msgid "Read collapsed thread:" msgstr "" #: ../pan/gui/prefs-ui.cc:1161 #, fuzzy msgid "Body Pane" msgstr "اللوحة ال_سفلية" #: ../pan/gui/prefs-ui.cc:1167 #, fuzzy msgid "Quoted text:" msgstr "مقتبس" #: ../pan/gui/prefs-ui.cc:1168 msgid "URL:" msgstr "العنوان:" #: ../pan/gui/prefs-ui.cc:1169 #, fuzzy msgid "Signature:" msgstr "تو_قيع:" #: ../pan/gui/prefs-ui.cc:1171 msgid "_Colors" msgstr "الألوان" #: ../pan/gui/prefs-ui.cc:1171 #, fuzzy msgid "Colors" msgstr "الألوان" #: ../pan/gui/prefs-ui.cc:1176 msgid "Preferred Applications" msgstr "التطبيقات المفضّلة" #: ../pan/gui/prefs-ui.cc:1180 #, fuzzy msgid "_Web browser:" msgstr "متصفح الويب" #: ../pan/gui/prefs-ui.cc:1183 #, fuzzy msgid "_Mail reader:" msgstr "مجلّد البريد:" #: ../pan/gui/prefs-ui.cc:1185 #, fuzzy msgid "_Text editor:" msgstr "محرر التحديد" #: ../pan/gui/prefs-ui.cc:1187 #, fuzzy msgid "_Applications" msgstr "_تطبيقات" #: ../pan/gui/prefs-ui.cc:1187 #, fuzzy msgid "Applications" msgstr "_تطبيقات" #: ../pan/gui/prefs-ui.cc:1192 ../pan/gui/task-pane.cc:512 #, fuzzy msgid "Encoding" msgstr "يجري التسجيل" #: ../pan/gui/prefs-ui.cc:1196 msgid "Default bytes per file (for encoder): " msgstr "" #: ../pan/gui/prefs-ui.cc:1201 #, fuzzy msgid "_Upload" msgstr "_تطبيقات" #: ../pan/gui/prefs-ui.cc:1201 msgid "Upload" msgstr "" #: ../pan/gui/prefs-ui.cc:1219 msgid "_Hotkeys" msgstr "" #: ../pan/gui/prefs-ui.cc:1219 msgid "Hotkeys" msgstr "" #: ../pan/gui/profiles-dialog.cc:83 msgid "Please choose your Email Address according to your PGP key's user id." msgstr "" #: ../pan/gui/profiles-dialog.cc:131 #, fuzzy msgid "Posting Profile" msgstr "تحرير ملف شخصي" #: ../pan/gui/profiles-dialog.cc:143 #, fuzzy msgid "Profile Information" msgstr "معلومات الملف" #: ../pan/gui/profiles-dialog.cc:147 #, fuzzy msgid "_Profile Name:" msgstr "اسم ال_طور:" #: ../pan/gui/profiles-dialog.cc:150 #, fuzzy msgid "Required Information" msgstr "معلومات مطلوبة" #: ../pan/gui/profiles-dialog.cc:154 #, fuzzy msgid "_Full Name:" msgstr "الاسم الكامل:" #: ../pan/gui/profiles-dialog.cc:158 msgid "" "Your Email Address.\n" "Note that this has to match your PGP Signature's Address\n" "if you want to PGP-Sign or Encrypt your messages correctly." msgstr "" #: ../pan/gui/profiles-dialog.cc:162 msgid "_Email Address:" msgstr "_عنوان البريد الإلكتروني:" #: ../pan/gui/profiles-dialog.cc:164 msgid "_Post Articles via:" msgstr "" #: ../pan/gui/profiles-dialog.cc:167 #, fuzzy msgid "Signature" msgstr "توقيعات" #: ../pan/gui/profiles-dialog.cc:170 #, fuzzy msgid "_Use a Signature" msgstr "توقيع سيّء" #: ../pan/gui/profiles-dialog.cc:174 #, fuzzy msgid "Signature File" msgstr "جدول التوقيعات" #: ../pan/gui/profiles-dialog.cc:184 msgid "Text File" msgstr "ملف نصي" #: ../pan/gui/profiles-dialog.cc:186 #, fuzzy msgid "Text" msgstr "_نص" #: ../pan/gui/profiles-dialog.cc:188 #, fuzzy msgid "Command" msgstr "أوامر" #: ../pan/gui/profiles-dialog.cc:191 #, fuzzy msgid "PGP Signature" msgstr "توقيعات" #: ../pan/gui/profiles-dialog.cc:196 #, fuzzy msgid "Signature Type : " msgstr "جدول التوقيعات" #: ../pan/gui/profiles-dialog.cc:223 msgid "X-Face (Avatar)" msgstr "" #: ../pan/gui/profiles-dialog.cc:226 msgid "" "You can add an avatar icon to your articles with a unique X-Face code. \n" "Add the code without the trailing \"X-Face:\" \n" " if it was generated by a helper program (for example http://www.dairiki.org/" "xface/xface.php)." msgstr "" #: ../pan/gui/profiles-dialog.cc:229 msgid "_X-Face:" msgstr "" #: ../pan/gui/profiles-dialog.cc:231 msgid "Optional Information" msgstr "معلومات اختيارية:" #: ../pan/gui/profiles-dialog.cc:236 msgid "" "When posting to Usenet, your article's Message-ID contains a domain name. \n" "You can set a custom domain name here, or leave it blank to let Pan use the " "domain name from your email address." msgstr "" #: ../pan/gui/profiles-dialog.cc:239 #, fuzzy msgid "Message-ID _Domain Name:" msgstr "اسم ال_نطاق:" #: ../pan/gui/profiles-dialog.cc:243 #, c-format msgid "" "%i for Message-ID\n" "%a for Author and Address\n" "%n for Author name\n" "%d for Date" msgstr "" #: ../pan/gui/profiles-dialog.cc:244 #, fuzzy msgid "_Attribution:" msgstr "مساهمات:" #: ../pan/gui/profiles-dialog.cc:268 msgid "" "Extra headers to be included in your posts, such as\n" "Reply-To: \"Your Name\"\n" "Organization: Your Organization\n" msgstr "" #: ../pan/gui/profiles-dialog.cc:278 #, fuzzy msgid "E_xtra Headers:" msgstr "استخرج هنا" #: ../pan/gui/profiles-dialog.cc:323 #, fuzzy msgid "Invalid email address." msgstr "عنوان غير صحيح." #: ../pan/gui/profiles-dialog.cc:324 msgid "Please use an address of the form joe@somewhere.org" msgstr "" #: ../pan/gui/profiles-dialog.cc:479 msgid "New Profile" msgstr "طور جديد" #: ../pan/gui/profiles-dialog.cc:525 #, fuzzy msgid "Posting Profiles" msgstr "فشل النشر: %s" #: ../pan/gui/profiles-dialog.cc:541 #, fuzzy msgid "Profiles" msgstr "_ملفات التعريف" #: ../pan/gui/save-attach-ui.cc:77 ../pan/gui/save-ui.cc:77 #, c-format msgid "" "%g - group as one directory (alt.binaries.pictures.trains)\n" "%G - group as nested directory (/alt/binaries/pictures/trains)\n" "%s - subject line excerpt\n" "%S - subject line\n" " \n" "\"/home/user/News/Pan/%g\" becomes\n" "\"/home/user/News/Pan/alt.binaries.pictures.trains\", and\n" "\"/home/user/News/Pan/%G\" becomes\n" "\"/home/user/News/Pan/alt/binaries/pictures/trains\"," msgstr "" #: ../pan/gui/save-attach-ui.cc:223 ../pan/gui/save-ui.cc:242 msgid "Add to the queue sorted by date posted" msgstr "" #: ../pan/gui/save-attach-ui.cc:224 ../pan/gui/save-ui.cc:243 #, fuzzy msgid "Add to the front of the queue" msgstr "اضف الملفات المحددة الى طابور التشغيل" #: ../pan/gui/save-attach-ui.cc:225 ../pan/gui/save-ui.cc:244 #, fuzzy msgid "Add to the back of the queue" msgstr "اضف الملفات المحددة الى طابور التشغيل" #: ../pan/gui/save-attach-ui.cc:257 #, fuzzy msgid "Pan: Save Attachments" msgstr "احفظ المرفقات" #: ../pan/gui/save-attach-ui.cc:282 ../pan/gui/save-attach-ui.cc:300 #: ../pan/gui/save-ui.cc:296 ../pan/gui/save-ui.cc:314 msgid "_Location:" msgstr "ال_موقع:" #: ../pan/gui/save-attach-ui.cc:286 ../pan/gui/save-ui.cc:300 #, fuzzy msgid "Save Articles" msgstr "احفظ ملف" #: ../pan/gui/save-attach-ui.cc:303 ../pan/gui/save-ui.cc:317 #, fuzzy, c-format msgid "_Group's path: %s" msgstr "اسم المجموعة: %s" #: ../pan/gui/save-attach-ui.cc:314 ../pan/gui/save-ui.cc:332 msgid "_Priority:" msgstr "الأ_ولويّة:" #: ../pan/gui/save-ui.cc:233 msgid "Save attachments" msgstr "احفظ المرفقات" #: ../pan/gui/save-ui.cc:234 #, fuzzy msgid "Save text" msgstr "نص مُوقّع" #: ../pan/gui/save-ui.cc:235 #, fuzzy msgid "Save attachments and text" msgstr "احفظ المرفقات" #: ../pan/gui/save-ui.cc:271 #, fuzzy msgid "Pan: Save Articles" msgstr "احفظ الملف كـ" #: ../pan/gui/save-ui.cc:328 #, fuzzy msgid "_Action:" msgstr "_فعل" #: ../pan/gui/score-add-ui.cc:89 #, fuzzy msgid "is more than" msgstr "أكثر من" #: ../pan/gui/score-add-ui.cc:90 #, fuzzy msgid "is at most" msgstr "على الأكثر" #: ../pan/gui/score-add-ui.cc:112 msgid "increase the article's score by" msgstr "" #: ../pan/gui/score-add-ui.cc:113 msgid "decrease the article's score by" msgstr "" #: ../pan/gui/score-add-ui.cc:114 #, fuzzy msgid "set the article's score to" msgstr "حرك العقارب لتحديد الساعة :" #: ../pan/gui/score-add-ui.cc:115 msgid "watch the article (set its score to 9999)" msgstr "" #: ../pan/gui/score-add-ui.cc:116 msgid "ignore the article (set its score to -9999)" msgstr "" #: ../pan/gui/score-add-ui.cc:141 #, fuzzy msgid "References" msgstr "تفضيلات" #: ../pan/gui/score-add-ui.cc:142 #, fuzzy msgid "Line Count" msgstr "تعليق عن السطر" #: ../pan/gui/score-add-ui.cc:143 #, fuzzy msgid "Byte Count" msgstr "بتلر المقاطعه" #: ../pan/gui/score-add-ui.cc:144 msgid "Crosspost Group Count" msgstr "" #: ../pan/gui/score-add-ui.cc:145 msgid "Age (in days)" msgstr "" #: ../pan/gui/score-add-ui.cc:167 #, fuzzy msgid "for the next month" msgstr "اظهر النقلة التالية" #: ../pan/gui/score-add-ui.cc:168 #, fuzzy msgid "for the next six months" msgstr "شغّل الأغنية السابقة" #: ../pan/gui/score-add-ui.cc:169 msgid "forever" msgstr "إلى الأبد" #: ../pan/gui/score-add-ui.cc:194 msgid "contains" msgstr "يحتوي" #: ../pan/gui/score-add-ui.cc:195 #, fuzzy msgid "doesn't contain" msgstr "لا يحتوي" #: ../pan/gui/score-add-ui.cc:196 #, fuzzy msgid "is" msgstr "قائمة" #: ../pan/gui/score-add-ui.cc:197 #, fuzzy msgid "isn't" msgstr "ليس" #: ../pan/gui/score-add-ui.cc:198 #, fuzzy msgid "starts with" msgstr "لا يبدء بـ" #: ../pan/gui/score-add-ui.cc:199 msgid "ends with" msgstr "ينتهي بـ" #: ../pan/gui/score-add-ui.cc:200 #, fuzzy msgid "matches regex" msgstr "ترييش الحواف" #: ../pan/gui/score-add-ui.cc:481 msgid "Another rule already sets this article's score." msgstr "" #: ../pan/gui/score-add-ui.cc:482 #, fuzzy msgid "You may want to go back or delete the old rule." msgstr "لم يمكن محو المحفوظة القديمة." #: ../pan/gui/score-add-ui.cc:553 #, fuzzy msgid "Add and Re_score" msgstr "ابحث و استبدل" #: ../pan/gui/score-add-ui.cc:604 ../pan/gui/score-add-ui.cc:624 #, fuzzy msgid "New Scoring Rule" msgstr "مستوى التسجيل" #: ../pan/gui/score-add-ui.cc:635 #, fuzzy msgid "If the group name" msgstr "اسم المجموعة" #: ../pan/gui/score-add-ui.cc:642 #, fuzzy msgid "And the article's" msgstr "القارة القطبية الجنوبية" #: ../pan/gui/score-view-ui.cc:56 #, fuzzy msgid "Close and Re_score" msgstr "اغلق و ا_خرج" #: ../pan/gui/score-view-ui.cc:154 #, fuzzy, c-format msgid "File %s, Lines %d - %d" msgstr "فشل عند الرّسالة %d من أصل %d" #: ../pan/gui/score-view-ui.cc:182 #, fuzzy msgid "Pan: Article's Scores" msgstr "نتائج نيبلس" #: ../pan/gui/score-view-ui.cc:208 #, fuzzy msgid "Add" msgstr "أ_ضف" #: ../pan/gui/score-view-ui.cc:213 #, fuzzy msgid "New Score" msgstr "نيويورك" #: ../pan/gui/score-view-ui.cc:218 #, fuzzy msgid "Criteria" msgstr "معايير:" #: ../pan/gui/score-view-ui.cc:241 #, fuzzy msgid "Add a New Scoring Rule" msgstr "أضف قاعدة جديدة" #: ../pan/gui/score-view-ui.cc:248 #, fuzzy msgid "Remove the Selected Scoring Rule" msgstr "احذف شريط الأدوات المحدد" #: ../pan/gui/server-ui.cc:221 #, fuzzy msgid "Please specify the server's address." msgstr "رجاء اختر خادماً." #: ../pan/gui/server-ui.cc:264 msgid "Import SSL certificate (PEM format) from File" msgstr "" #. create the dialog #: ../pan/gui/server-ui.cc:290 ../pan/gui/server-ui.cc:869 #, fuzzy msgid "Add a Server" msgstr "اضف خادم NTP" #: ../pan/gui/server-ui.cc:290 ../pan/gui/server-ui.cc:875 #, fuzzy msgid "Edit a Server's Settings" msgstr "إعدادات الخادم" #: ../pan/gui/server-ui.cc:310 msgid "Location" msgstr "الموقع" #: ../pan/gui/server-ui.cc:314 msgid "The news server's actual address, e.g. \"news.mynewsserver.com\"" msgstr "" #: ../pan/gui/server-ui.cc:315 msgid "_Address:" msgstr "ال_عنوان:" #: ../pan/gui/server-ui.cc:319 msgid "The news server's port number. Typically 119." msgstr "" #: ../pan/gui/server-ui.cc:320 #, fuzzy msgid "Por_t:" msgstr "منفد:" #: ../pan/gui/server-ui.cc:323 #, fuzzy msgid "Login (if Required)" msgstr "فشل الولوج" #: ../pan/gui/server-ui.cc:327 #, fuzzy msgid "_Username:" msgstr "ا_سم المستخدم:" #: ../pan/gui/server-ui.cc:328 msgid "" "The username to give the server when asked. If your server doesn't require " "authentication, you can leave this blank." msgstr "" #: ../pan/gui/server-ui.cc:332 msgid "_Password:" msgstr "_كلمة السر:" #: ../pan/gui/server-ui.cc:333 msgid "" "The password to give the server when asked. If your server doesn't require " "authentication, you can leave this blank." msgstr "" #: ../pan/gui/server-ui.cc:336 msgid "Settings" msgstr "الإعدادات" #: ../pan/gui/server-ui.cc:343 #, fuzzy msgid "Connection _Limit:" msgstr "فقد الاتصال " #: ../pan/gui/server-ui.cc:347 msgid "After Two Weeks" msgstr "" #: ../pan/gui/server-ui.cc:348 msgid "After One Month" msgstr "" #: ../pan/gui/server-ui.cc:349 msgid "After Two Months" msgstr "" #: ../pan/gui/server-ui.cc:350 #, fuzzy msgid "After Three Months" msgstr "اظهر النقلة التالية" #: ../pan/gui/server-ui.cc:351 #, fuzzy msgid "After Six Months" msgstr "شغّل الأغنية السابقة" #: ../pan/gui/server-ui.cc:352 #, fuzzy msgid "Never Expire Old Articles" msgstr "لا ينتهي" #: ../pan/gui/server-ui.cc:366 #, fuzzy msgid "E_xpire Old Articles:" msgstr "اس_تثني الملفات:" #: ../pan/gui/server-ui.cc:370 msgid "Primary" msgstr "أوّلي" #: ../pan/gui/server-ui.cc:371 #, fuzzy msgid "Fallback" msgstr "اتصال معاكس" #: ../pan/gui/server-ui.cc:385 #, fuzzy msgid "Server Rank:" msgstr "الخادم:" #: ../pan/gui/server-ui.cc:389 msgid "" "Fallback servers are used for articles that can't be found on the " "primaries. One common approach is to use free servers as primaries and " "subscription servers as fallbacks." msgstr "" #: ../pan/gui/server-ui.cc:396 msgid "Security" msgstr "" #: ../pan/gui/server-ui.cc:401 msgid "Use Plaintext (Unsecured) Connections" msgstr "" #: ../pan/gui/server-ui.cc:402 #, fuzzy msgid "Use Secure SSL Connections" msgstr "إتّصالات VPN" #: ../pan/gui/server-ui.cc:418 msgid "TLS (SSL) Options:" msgstr "" #: ../pan/gui/server-ui.cc:423 msgid "" "You can set the option for using/disabling secure SSL/TLS connections here. " "If you enable SSL/TLS, your data is encrypted and secure. It is encouraged " "to use this option for privacy reasons." msgstr "" #: ../pan/gui/server-ui.cc:428 msgid "Always trust this server's certificate" msgstr "" #: ../pan/gui/server-ui.cc:602 #, fuzzy, c-format msgid "Really delete \"%s\"?" msgstr "أتريد حقاً حذف الملف \"%s\"؟" #: ../pan/gui/server-ui.cc:691 msgid "No information available." msgstr "" #: ../pan/gui/server-ui.cc:697 #, c-format msgid "Server Certificate for '%s'" msgstr "" #: ../pan/gui/server-ui.cc:795 #, fuzzy, c-format msgid "Really delete certificate for \"%s\"?" msgstr "أتريد حقاً حذف الملف \"%s\"؟" #. dialog #: ../pan/gui/server-ui.cc:822 ../pan/gui/server-ui.cc:843 #: ../pan/gui/server-ui.cc:941 msgid "Servers" msgstr "الخوادم" #: ../pan/gui/server-ui.cc:882 #, fuzzy msgid "Remove a Server" msgstr "احذ_ف الخادم" #. dialog #: ../pan/gui/server-ui.cc:915 msgid "SSL Certificates" msgstr "" #: ../pan/gui/server-ui.cc:936 msgid "Certificates" msgstr "" #: ../pan/gui/server-ui.cc:967 msgid "Import Certificate" msgstr "" #: ../pan/gui/server-ui.cc:973 msgid "Inspect Certificate" msgstr "" #: ../pan/gui/server-ui.cc:980 #, fuzzy msgid "Remove Certificate" msgstr "احذ_ف الخادم" #: ../pan/gui/task-pane.cc:143 #, c-format msgid "" "\n" "Upload\n" "\n" "Subject: \"%s\"\n" "From: %s\n" "Groups: %s\n" "Sourcefile: %s\n" msgstr "" #: ../pan/gui/task-pane.cc:155 #, c-format msgid "" "\n" "Download\n" "\n" "Subject: \"%s\"\n" "From: %s\n" "Date: %s\n" "Groups: %s\n" "Save Path: %s\n" msgstr "" #: ../pan/gui/task-pane.cc:157 #, fuzzy msgid "unknown" msgstr "مجهول" #: ../pan/gui/task-pane.cc:263 msgid "Choose new destination for selected Tasks" msgstr "" #: ../pan/gui/task-pane.cc:417 #, c-format msgid "Pan: Tasks (%d Queued, %d Running, %d Stopped)" msgstr "" #: ../pan/gui/task-pane.cc:419 #, c-format msgid "Pan: Tasks (%d Queued, %d Running)" msgstr "" #: ../pan/gui/task-pane.cc:421 #, fuzzy, c-format msgid "Pan: Tasks" msgstr "اطبع المهام" #: ../pan/gui/task-pane.cc:446 #, fuzzy, c-format msgid "%lu selected, %s" msgstr "\"%s\" selected (%s)" #: ../pan/gui/task-pane.cc:510 #, fuzzy msgid "Running" msgstr "يجري تشغيل..." #: ../pan/gui/task-pane.cc:511 #, fuzzy msgid "Decoding" msgstr "يجري التسجيل" #: ../pan/gui/task-pane.cc:513 msgid "Queued for Decode" msgstr "" #: ../pan/gui/task-pane.cc:514 msgid "Queued for Encode" msgstr "" #: ../pan/gui/task-pane.cc:515 #, fuzzy msgid "Queued" msgstr "طابور" #: ../pan/gui/task-pane.cc:516 msgid "Stopped" msgstr "أوقٍِفَ" #: ../pan/gui/task-pane.cc:517 #, fuzzy msgid "Removing" msgstr "يجري حذف:" #: ../pan/gui/task-pane.cc:546 #, fuzzy, c-format msgid "%d%% Done" msgstr "الحمار الأحمر" #: ../pan/gui/task-pane.cc:552 #, fuzzy, c-format msgid "%d:%02d:%02d Remaining (%d @ %lu KiB/s)" msgstr "(%d:%02d:%d متبقيّة)" #: ../pan/gui/task-pane.cc:646 ../pan/gui/task-pane.cc:647 msgid "Move To Top" msgstr "" #: ../pan/gui/task-pane.cc:651 ../pan/gui/task-pane.cc:652 msgid "Move To Bottom" msgstr "" #: ../pan/gui/task-pane.cc:656 ../pan/gui/task-pane.cc:657 #, fuzzy msgid "Stop Task" msgstr "مهمة الزر" #: ../pan/gui/task-pane.cc:661 ../pan/gui/task-pane.cc:662 #, fuzzy msgid "Delete Task" msgstr "إحذف %s" #: ../pan/gui/task-pane.cc:666 ../pan/gui/task-pane.cc:667 #, fuzzy msgid "Restart Task" msgstr "ريسيا الممر" #: ../pan/gui/task-pane.cc:671 ../pan/gui/task-pane.cc:672 msgid "Change Download Destination" msgstr "" #: ../pan/gui/task-pane.cc:729 #, fuzzy msgid "_Online" msgstr "متصل" #: ../pan/gui/task-pane.cc:746 #, fuzzy msgid "Restart Tasks" msgstr "ريسيا الممر" #: ../pan/gui/task-pane.cc:748 #, fuzzy msgid "Stop Tasks" msgstr "مهمة الزر" #: ../pan/gui/task-pane.cc:750 #, fuzzy msgid "Delete Tasks" msgstr "إحذف %s" #: ../pan/gui/url.cc:123 #, fuzzy, c-format msgid "Error starting URL: %s (Command was: %s)" msgstr "خطأ ضبط مفناح الإعداد %s:%s\n" #: ../pan/tasks/decoder.cc:115 #, fuzzy, c-format msgid "Couldn't save file \"%s\": %s" msgstr "لم يمكن فتح الملفّ '%s': %s" #: ../pan/tasks/decoder.cc:137 ../pan/tasks/encoder.cc:136 #, fuzzy msgid "Error initializing uulib" msgstr "خطأ أثناء بدأ libnotify\n" #: ../pan/tasks/decoder.cc:152 ../pan/tasks/socket-impl-gio.cc:352 #: ../pan/tasks/socket-impl-openssl.cc:634 #, fuzzy, c-format msgid "Error reading from %s: %s" msgstr "فشل في قراءة %s: %s" #: ../pan/tasks/decoder.cc:192 #, fuzzy, c-format msgid "Saved \"%s\"" msgstr "ا_حفظ باسم" #: ../pan/tasks/decoder.cc:199 #, fuzzy, c-format msgid "" "Error saving \"%s\":\n" "%s." msgstr "فشل في قراءة \"%s\": %s\n" #: ../pan/tasks/decoder.cc:314 ../pan/tasks/task-article.cc:350 #, fuzzy, c-format msgid "Decoding %s" msgstr "تحميل %s " #: ../pan/tasks/encoder.cc:102 ../pan/tasks/encoder.cc:155 #, fuzzy, c-format msgid "Error loading %s from cache." msgstr "فشل في قراءة %s: %s" #: ../pan/tasks/encoder.cc:177 #, fuzzy, c-format msgid "Error encoding %s: %s" msgstr "فشل في قراءة %s: %s" #: ../pan/tasks/encoder.cc:269 #, fuzzy, c-format msgid "Encoding %s" msgstr "يجري التسجيل" #: ../pan/tasks/nntp.cc:126 #, c-format msgid "%s requires a username, but none is set." msgstr "" #: ../pan/tasks/nntp.cc:139 #, fuzzy, c-format msgid "%s requires a password, but none is set." msgstr "الموسيقى المشتركة '%s' تتطلب كلمة سر للإتصال" #: ../pan/tasks/nntp.cc:205 #, fuzzy, c-format msgid "Sending \"%s\" to %s returned an error: %s" msgstr "ضبط %s لـ %s إلى %s" #: ../pan/tasks/nntp.cc:228 #, c-format msgid "Sending \"%s\" to %s returned an unrecognized response: \"%s\"" msgstr "" #: ../pan/tasks/nntp-pool.cc:222 #, fuzzy, c-format msgid "Unable to connect to \"%s\"" msgstr "فشل الإتصال بـ GConf" #: ../pan/tasks/socket-impl-gio.cc:173 ../pan/tasks/socket-impl-gio.cc:211 #: ../pan/tasks/socket-impl-openssl.cc:214 #: ../pan/tasks/socket-impl-openssl.cc:252 #, fuzzy, c-format msgid "Error connecting to \"%s\"" msgstr "خطأ في الاتصال بالخادم: %s" #: ../pan/tasks/socket-impl-gio.cc:351 ../pan/tasks/socket-impl-openssl.cc:633 msgid "Unknown Error" msgstr "خطأ مجهول" #: ../pan/tasks/task-article.cc:61 ../pan/tasks/task-article.cc:156 #: ../pan/tasks/task-article.cc:159 #, c-format msgid "Saving %s" msgstr "حفظ %s" #: ../pan/tasks/task-article.cc:63 #, fuzzy, c-format msgid "Reading %s" msgstr "جاري القراءة من %s" #: ../pan/tasks/task-article.cc:322 #, c-format msgid "Article \"%s\" is incomplete -- the news server(s) don't have part %s" msgstr "" #: ../pan/tasks/task-groups.cc:40 #, fuzzy, c-format msgid "Getting group list from \"%s\"" msgstr "استرجاع %s من %s" #: ../pan/tasks/task-groups.cc:122 #, c-format msgid "Fetched %lu Groups" msgstr "" #: ../pan/tasks/task-post.cc:35 #, fuzzy, c-format msgid "Posting \"%s\"" msgstr "الخيار \"%s\"" #: ../pan/tasks/task-post.cc:76 #, fuzzy, c-format msgid "Posting of \"%s\" failed: %s" msgstr "فشل النشر: %s" #: ../pan/tasks/task-post.cc:81 #, c-format msgid "Posting of \"%s\" succesful: %s" msgstr "" #: ../pan/tasks/task-upload.cc:51 #, fuzzy, c-format msgid "Uploading %s" msgstr "جاري القراءة من %s" #: ../pan/tasks/task-upload.cc:249 #, c-format msgid "Uploading %s - Part %d of %d" msgstr "" #: ../pan/tasks/task-upload.cc:251 #, c-format msgid "Uploading Message body with Subject \"%s\"" msgstr "" #: ../pan/tasks/task-upload.cc:308 #, c-format msgid "Posting of File %s (Part %d of %d) failed: No Posts allowed by server." msgstr "" #: ../pan/tasks/task-upload.cc:316 #, fuzzy, c-format msgid "Posting of File %s (Part %d of %d) failed: %s" msgstr "فشل النشر: %s" #: ../pan/tasks/task-upload.cc:326 ../pan/tasks/task-upload.cc:333 #, c-format msgid "Posting of file %s (Part %d of %d) succesful: %s" msgstr "" #: ../pan/tasks/task-upload.cc:343 #, fuzzy, c-format msgid "Posting of file %s succesful: %s" msgstr "فشل النشر: %s" #: ../pan/tasks/task-upload.cc:347 #, c-format msgid "" "Posting of file %s not completely successful: Check the log (right-click on " "list item) !" msgstr "" #: ../pan/tasks/task-upload.cc:364 #, c-format msgid "" "Posting of file %s not successful: Check the log (right-click on list item) !" msgstr "" #: ../pan/tasks/task-xover.cc:79 #, fuzzy, c-format msgid "Getting all headers for \"%s\"" msgstr "يجري جلب معلومات كافّة المستخدمين على \"%s\"" #: ../pan/tasks/task-xover.cc:81 #, fuzzy, c-format msgid "Getting new headers for \"%s\"" msgstr "خطأ تلقي قيمة جديدة لـ \"%s\": %s" #. SAMPLE #: ../pan/tasks/task-xover.cc:83 #, fuzzy, c-format msgid "Sampling headers for \"%s\"" msgstr "مسح الرسائل في \"%s\"" #: ../pan/tasks/task-xover.cc:369 #, c-format msgid "%s (%lu parts, %lu articles)" msgstr "" #: ../pan/tasks/task-xoverinfo.cc:78 #, fuzzy, c-format msgid "Getting header counts for \"%s\"" msgstr "يجري جلب معلومات كافّة المستخدمين على \"%s\"" #: ../pan/usenet-utils/filter-info.cc:163 #, fuzzy msgid "article doesn't have attachments" msgstr "تعذر فتح المرفقات" #: ../pan/usenet-utils/filter-info.cc:167 #, fuzzy msgid "the article has attachments" msgstr "احفظ جميع المرفقات" #: ../pan/usenet-utils/filter-info.cc:171 msgid "the article isn't cached locally" msgstr "" #: ../pan/usenet-utils/filter-info.cc:175 msgid "the article is cached locally" msgstr "" #: ../pan/usenet-utils/filter-info.cc:179 msgid "the article wasn't posted by you" msgstr "" #: ../pan/usenet-utils/filter-info.cc:183 msgid "the article was posted by you" msgstr "" #: ../pan/usenet-utils/filter-info.cc:187 #, fuzzy msgid "the article has been read" msgstr "لا يمكن قراءة أالملف" #: ../pan/usenet-utils/filter-info.cc:191 #, fuzzy msgid "the article hasn't been read" msgstr "لا يمكن قراءة أالملف" #: ../pan/usenet-utils/filter-info.cc:195 #, c-format msgid "the article is less than %ld bytes long" msgstr "" #: ../pan/usenet-utils/filter-info.cc:200 #, fuzzy, c-format msgid "the article is at least %ld bytes long" msgstr "يجب أن يكون طوله 5 محارف على الأقل" #: ../pan/usenet-utils/filter-info.cc:205 #, c-format msgid "the article is less than %ld lines long" msgstr "" #: ../pan/usenet-utils/filter-info.cc:210 #, c-format msgid "the article is at least %ld lines long" msgstr "" #: ../pan/usenet-utils/filter-info.cc:215 #, fuzzy, c-format msgid "the article is less than %ld days old" msgstr "الأعداد الأولية الأصغر من %d" #: ../pan/usenet-utils/filter-info.cc:220 #, c-format msgid "the article is at least %ld days old" msgstr "" #: ../pan/usenet-utils/filter-info.cc:225 #, c-format msgid "the article was posted to less than %ld groups" msgstr "" #: ../pan/usenet-utils/filter-info.cc:230 #, c-format msgid "the article was posted to at least %ld groups" msgstr "" #: ../pan/usenet-utils/filter-info.cc:235 #, fuzzy, c-format msgid "the article's score is less than %ld" msgstr "الأعداد الأولية الأصغر من %d" #: ../pan/usenet-utils/filter-info.cc:240 #, c-format msgid "the article's score is %ld or higher" msgstr "" #: ../pan/usenet-utils/filter-info.cc:249 #: ../pan/usenet-utils/filter-info.cc:259 #, fuzzy, c-format msgid "%s doesn't contain \"%s\"" msgstr "لا يحتوي" #: ../pan/usenet-utils/filter-info.cc:250 #: ../pan/usenet-utils/filter-info.cc:260 #, fuzzy, c-format msgid "%s isn't \"%s\"" msgstr "\"%s\"في %s" #: ../pan/usenet-utils/filter-info.cc:251 #: ../pan/usenet-utils/filter-info.cc:261 #, fuzzy, c-format msgid "%s doesn't begin with \"%s\"" msgstr "لا ينتهي بـ" #: ../pan/usenet-utils/filter-info.cc:252 #: ../pan/usenet-utils/filter-info.cc:262 #, fuzzy, c-format msgid "%s doesn't end with \"%s\"" msgstr "لا ينتهي بـ" #: ../pan/usenet-utils/filter-info.cc:253 #: ../pan/usenet-utils/filter-info.cc:263 #, c-format msgid "%s doesn't match the regex \"%s\"" msgstr "" #: ../pan/usenet-utils/filter-info.cc:275 #, fuzzy, c-format msgid "%s contains \"%s\"" msgstr "يحتوي" #: ../pan/usenet-utils/filter-info.cc:276 #, fuzzy, c-format msgid "%s is \"%s\"" msgstr "%s %s %s" #: ../pan/usenet-utils/filter-info.cc:277 #, fuzzy, c-format msgid "%s begins with \"%s\"" msgstr "افتح بـ \"%s\"" #: ../pan/usenet-utils/filter-info.cc:278 #, fuzzy, c-format msgid "%s ends with \"%s\"" msgstr "افتح بـ \"%s\"" #: ../pan/usenet-utils/filter-info.cc:279 #, c-format msgid "%s matches the regex \"%s\"" msgstr "" #: ../pan/usenet-utils/filter-info.cc:285 msgid "Any of these tests fail:" msgstr "" #: ../pan/usenet-utils/filter-info.cc:292 msgid "All of these tests pass:" msgstr "" #: ../pan/usenet-utils/filter-info.cc:299 #, fuzzy msgid "None of these tests pass:" msgstr "اسم الصنف" #: ../pan/usenet-utils/filter-info.cc:306 msgid "Any of these tests pass:" msgstr "" #: ../pan/usenet-utils/gnksa.cc:878 #, c-format msgid "No email address provided; generating message-id with domain \"%s\"" msgstr "" #: ../pan/usenet-utils/message-check.cc:124 msgid "Warning: Reply seems to be top-posted." msgstr "" #: ../pan/usenet-utils/message-check.cc:145 msgid "Warning: The signature marker should be \"-- \", not \"--\"." msgstr "" #: ../pan/usenet-utils/message-check.cc:162 msgid "Warning: Signature prefix with no signature." msgstr "" #: ../pan/usenet-utils/message-check.cc:167 msgid "Warning: Signature is more than 4 lines long." msgstr "" #: ../pan/usenet-utils/message-check.cc:172 msgid "Warning: Signature is more than 80 characters wide." msgstr "" #: ../pan/usenet-utils/message-check.cc:198 #, c-format msgid "Warning: %d line is more than 80 characters wide." msgid_plural "Warning: %d lines are more than 80 characters wide." msgstr[0] "" msgstr[1] "" #: ../pan/usenet-utils/message-check.cc:223 #, fuzzy msgid "Error: Message is empty." msgstr "خطاء حجم الرسالة%d كبير جدا \n" #: ../pan/usenet-utils/message-check.cc:258 msgid "Warning: The message is entirely quoted text!" msgstr "" #: ../pan/usenet-utils/message-check.cc:259 #, fuzzy msgid "Warning: The message is mostly quoted text." msgstr "هذه الرّسالة تحتوي فقط طلبات غير مدعومة." #: ../pan/usenet-utils/message-check.cc:309 msgid "Error: Message appears to have no new content." msgstr "" #: ../pan/usenet-utils/message-check.cc:344 #: ../pan/usenet-utils/message-check.cc:383 #, c-format msgid "" "Warning: The posting profile's server doesn't carry newsgroup\n" "\t\"%s\".\n" "\tIf the group name is correct, switch profiles in the \"From:\"\n" "\tline or edit the profile with \"Edit|Manage Posting Profiles\"." msgstr "" #: ../pan/usenet-utils/message-check.cc:355 #, fuzzy msgid "Warning: Following-Up to too many groups." msgstr "تحذير من وجود العديد من اﻷعلام" #: ../pan/usenet-utils/message-check.cc:366 #, fuzzy msgid "Error: No Subject specified." msgstr "%s: لم يحدد مُرِحّب." #: ../pan/usenet-utils/message-check.cc:395 #, fuzzy, c-format msgid "Warning: Group \"%s\" is read-only." msgstr "الملف \"%s\" للقراءة فقط." #: ../pan/usenet-utils/message-check.cc:404 msgid "Error: Posting to a very large number of groups." msgstr "" #: ../pan/usenet-utils/message-check.cc:409 msgid "Warning: Posting to a large number of groups." msgstr "" #: ../pan/usenet-utils/message-check.cc:416 msgid "Warning: Crossposting without setting Followup-To header." msgstr "" #: ../pan/usenet-utils/message-check.cc:441 #, fuzzy msgid "Error: Bad email address." msgstr "أدخل عنوان بريدك الالكتروني" #: ../pan/usenet-utils/message-check.cc:450 msgid "Warning: Most newsgroups frown upon HTML posts." msgstr "" #: ../pan/usenet-utils/message-check.cc:486 #, fuzzy msgid "Error: No Recipients." msgstr "اختر المستلمين" #: ../pan/usenet-utils/scorefile.cc:304 #, c-format msgid "" "Error reading score in %*.*s, line %d: expected 'Expires: MM/DD/YYYY' or " "'Expires: DD-MM-YYYY'." msgstr "" #: ../pan/usenet-utils/scorefile.cc:307 #, c-format msgid "Expired old score from %*.*s, line %d" msgstr "" #: ../pan/usenet-utils/scorefile.cc:380 #, c-format msgid "Error reading score in %*.*s, line %d: unexpected line." msgstr "" #: ../pan/usenet-utils/scorefile.cc:428 #, c-format msgid "Read %lu scoring rules in %lu sections from \"%s\"" msgstr "" #: ../pan/usenet-utils/ssl-utils.h:199 #, fuzzy, c-format msgid "Error printing the server certificate for '%s'" msgstr "%s: خطأ أثناء تشغيل المرحب على العرض %s" #: ../pan/usenet-utils/ssl-utils.h:216 #, c-format msgid "" "The current server '%s' sent this security certificate :\n" "\n" msgstr "" #: ../pan/usenet-utils/ssl-utils.h:217 #, c-format msgid "" "Certificate information for server '%s' :\n" "\n" msgstr "" #: ../pan/usenet-utils/ssl-utils.h:219 #, c-format msgid "" "%sIssuer information:\n" "%s\n" "Valid until : %s\n" "\n" "Not valid before : %s\n" "\n" msgstr "" #: ../pan/usenet-utils/text-massager.cc:397 msgid "> [quoted text muted]" msgstr "" #, fuzzy #~ msgid "Read News from Usenet" #~ msgstr "أخبار من %s" #, fuzzy #~ msgid "_Toggle Flag on for Thread" #~ msgstr "ال_نّقاش التالي" #, fuzzy #~ msgid "Signer : " #~ msgstr "تو_قيع:" #, fuzzy #~ msgid "_Signature:" #~ msgstr "تو_قيع:" #, fuzzy #~ msgid "Creating directory \"%s\"" #~ msgstr "تعذّر ايجاد الدليل %s\n" #, fuzzy #~ msgid "Couldn't create directory \"%s\": %s" #~ msgstr "لا يمكن انشاء الدليل `%s': %s" #, fuzzy #~ msgid "Can't use regular expression \"%s\": %s at position %d" #~ msgstr "" #~ "لا يمكن تحليل تعبير البحث: %s: \n" #~ "%s" #, fuzzy #~ msgid "Posting Article" #~ msgstr "فشل النشر: %s" #, fuzzy #~ msgid "Posting..." #~ msgstr "جاري المعالجة..." #, fuzzy #~ msgid "Read Selected Group" #~ msgstr "عمود منتقى" #, fuzzy #~ msgid "_Mark Group _Read" #~ msgstr "علم كمقرو_ء" #, fuzzy #~ msgid "_Delete Group's Articles" #~ msgstr "ا_حذف من السواقة" #, fuzzy #~ msgid "Get Headers from Server" #~ msgstr "إنقطع الاتصال مع الخادم." #, fuzzy #~ msgid "Get a new Group list from the Server" #~ msgstr "وزّع ورقةً جديدة من الرّزمة" #, fuzzy #~ msgid "Subscribe to Selected Group" #~ msgstr "اشترِك في تقويم" #, fuzzy #~ msgid "Unsubscribe from Selected Group" #~ msgstr "أل_غي الاشتراك في القائمة" #, fuzzy #~ msgid "Save Selected Articles ..." #~ msgstr "ا_حفظ المنتقَى..." #, fuzzy #~ msgid "Cancel Last Task" #~ msgstr "حوِّل إلى مهمَّة" #, fuzzy #~ msgid "Clear Header Pane" #~ msgstr "حشو الرأس" #, fuzzy #~ msgid "Clear Body Pane" #~ msgstr "تنظيف القناة" #, fuzzy #~ msgid "Next Unread Group" #~ msgstr "الرّسالة _غير المقروءة التالية" #, fuzzy #~ msgid "Next Group" #~ msgstr "مجموعة جديدة" #, fuzzy #~ msgid "Next Thread" #~ msgstr "ال_نّقاش التالي" #, fuzzy #~ msgid "Previous Article" #~ msgstr "المقطوعة السابقة" #, fuzzy #~ msgid "Previous Thread" #~ msgstr "المقطوعة ال_سابقة" #, fuzzy #~ msgid "Parent Article" #~ msgstr "عنوان الصفحة" #, fuzzy #~ msgid "Mark Article as Read" #~ msgstr "علّم ك _مقروءة" #, fuzzy #~ msgid "Mark Article as Unread" #~ msgstr "_علّم ك_غير مقروء" #, fuzzy #~ msgid "Reply to Author in Mail" #~ msgstr "رد على الجميع" #~ msgid "Baltic (ISO-8859-4)" #~ msgstr "بلطيق (ISO-8859-4)" #~ msgid "Baltic (ISO-8859-13)" #~ msgstr "بلطيق (ISO-8859-13)" #, fuzzy #~ msgid "Baltic (Windows-1257)" #~ msgstr "بلطيقي (_Windows-1257)" #, fuzzy #~ msgid "Central European (ISO-8859-2)" #~ msgstr "وسط أوروبي (I_SO-8859-2)" #, fuzzy #~ msgid "Central European (Windows-1250)" #~ msgstr "وسط أوروبي (_Windows-1250)" #, fuzzy #~ msgid "Chinese Simplified (gb2312)" #~ msgstr "صيني مبسط (G_B2312)" #, fuzzy #~ msgid "Chinese Traditional (big5)" #~ msgstr "صيني تقليدي (Big_5)" #, fuzzy #~ msgid "Cyrillic (ISO-8859-5)" #~ msgstr "سيريالي (I_SO-8859-5)" #, fuzzy #~ msgid "Cyrillic (Windows-1251)" #~ msgstr "سيريالي (_Windows-1251)" #, fuzzy #~ msgid "Cyrillic (KOI8-R)" #~ msgstr "سيريالي (_KOI8-R)" #, fuzzy #~ msgid "Cyrillic, Ukrainian (KOI8-U)" #~ msgstr "سيريالي / اوكراني (_KOI8-U)" #, fuzzy #~ msgid "Greek (ISO-8859-7)" #~ msgstr "يوناني (_ISO-8859-7)" #, fuzzy #~ msgid "Japanese (ISO-2022-jp)" #~ msgstr "ياباني (_ISO-2022-JP)" #, fuzzy #~ msgid "Korean (euc-kr)" #~ msgstr "كوري (_EUC-KR)" #, fuzzy #~ msgid "Turkish (ISO-8859-9)" #~ msgstr "تركي (I_SO-8859-9)" #, fuzzy #~ msgid "Western (ISO-8859-1)" #~ msgstr "غربي (_ISO-8859-1)" #, fuzzy #~ msgid "Western, New (ISO-8859-15)" #~ msgstr "غربي (IS_O-8859-15)" #, fuzzy #~ msgid "Western (Windows-1252)" #~ msgstr "غربي (_Windows-1252)" #~ msgid "Unicode (UTF-8)" #~ msgstr "يونيكود (UTF-8)" #~ msgid "Western" #~ msgstr "غربي" #, fuzzy #~ msgid "_Manage Editor List..." #~ msgstr "_غيّر الأولوية..." #, fuzzy #~ msgid "Manage Posting Pr_ofiles..." #~ msgstr "أدِر المقاسات المخصّصة..." #, fuzzy #~ msgid "Unicode, UTF-8" #~ msgstr "يونيكود (UTF-8)" #, fuzzy #~ msgid "Manage Editor List" #~ msgstr "محرر الصورة" #, fuzzy #~ msgid "Editors" #~ msgstr "المحرر" #, fuzzy #~ msgid "Add a New Profile" #~ msgstr "طور جديد" #, fuzzy #~ msgid "Edit the selected profile" #~ msgstr "حرّر المفتاح المنتقى" #, fuzzy #~ msgid "Remove the selected profile" #~ msgstr "احذف شريط الأدوات المحدد" #, fuzzy #~ msgid "Pan: Add a Server" #~ msgstr "اضف خادم NTP" #, fuzzy #~ msgid "Pan: Edit a Server's Settings" #~ msgstr "إعدادات الخادم" #, fuzzy #~ msgid "Pan: Servers" #~ msgstr "خوادم LDAP" #, fuzzy #~ msgid "" #~ "Error saving \"%s\":\n" #~ "%s. %s" #~ msgstr "فشل في قراءة \"%s\": %s\n" pan-0.162/po/az.po000066400000000000000000002150041475412772400137070ustar00rootroot00000000000000# pan.HEAD.po faylının Azərbaycan dilinə tərcüməsi # This file is distributed under the same license as the PACKAGE package. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # Mətin Əmirov , 2003 # msgid "" msgstr "" "Project-Id-Version: pan.HEAD\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-04-04 20:58+0200\n" "PO-Revision-Date: 2003-09-01 09:12+0300\n" "Last-Translator: Mətin Əmirov \n" "Language-Team: Azərbaycan \n" "Language: az\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.0.1\n" #: ../pan.desktop.in.h:1 msgid "Pan Newsreader" msgstr "Pan Xəbərlər Oxuyucusu" #: ../pan.desktop.in.h:2 msgid "Read and Post Usenet Articles" msgstr "" #: ../pan/data/article-cache.cc:143 ../pan/data/encode-cache.cc:62 #, c-format msgid "Error opening directory: \"%s\": %s" msgstr "" #: ../pan/data/article-cache.cc:231 ../pan/data/article-cache.cc:242 #: ../pan/data-impl/data-io.cc:187 ../pan/data-impl/data-io.cc:211 #: ../pan/gui/post-ui.cc:1639 #, c-format msgid "Unable to save \"%s\" %s" msgstr "" #: ../pan/data/article-cache.cc:355 #, c-format msgid "Error opening file \"%s\" %s" msgstr "" #: ../pan/data/article-cache.cc:386 ../pan/data-impl/profiles.cc:174 #: ../pan/data-impl/server.cc:436 ../pan/general/file-util.cc:298 #: ../pan/gui/post-ui.cc:609 ../pan/gui/task-pane.cc:691 #, c-format msgid "Error reading file \"%s\": %s" msgstr "" #: ../pan/data/cert-store.cc:238 #, c-format msgid "Error opening SSL certificate directory: \"%s\": %s" msgstr "" #: ../pan/data/cert-store.cc:270 #, c-format msgid "Succesfully added %d SSL PEM certificate(s) to Certificate Store." msgstr "" #. load_group_descriptions (*_data_io); #: ../pan/data-impl/data-impl.cc:109 #, c-format msgid "Loaded data backend in %.1f seconds" msgstr "" #: ../pan/data-impl/data-impl.cc:140 msgid "Pan newsreader server passwords" msgstr "" #: ../pan/data-impl/groups.cc:94 #, c-format msgid "Skipping newsrc file for server \"%s\"" msgstr "" #: ../pan/data-impl/headers.cc:606 #, c-format msgid "Expired %lu old articles from \"%s\"" msgstr "" #: ../pan/data-impl/headers.cc:613 #, c-format msgid "" "Unsupported data version for %s headers: %d.\n" "Are you running an old version of Pan by accident?" msgstr "" #: ../pan/data-impl/headers.cc:628 #, c-format msgid "Loaded %lu articles for \"%s\" in %.1f seconds (%.0f per second)" msgstr "" #: ../pan/data-impl/headers.cc:857 #, c-format msgid "" "Saved %lu parts, %lu articles in \"%s\" in %.1f seconds (%.0f articles/sec)" msgstr "" #: ../pan/data-impl/headers.cc:1173 #, c-format msgid "Added %lu articles to %s." msgstr "" #: ../pan/data-impl/server.cc:234 #, c-format msgid "There seems to be no Password set for Server %s." msgstr "" #: ../pan/data-impl/server.cc:238 msgid "The Gnome keyring denied access to the Passwords." msgstr "" #: ../pan/data-impl/xover.cc:239 #, c-format msgid "Error reading from %s: unknown group \"%s\"" msgstr "" #. build the locale strings #: ../pan/general/e-util.cc:213 msgid "%l:%M %p" msgstr "" #: ../pan/general/e-util.cc:214 msgid "Today %l:%M %p" msgstr "" #: ../pan/general/e-util.cc:215 msgid "%a %l:%M %p" msgstr "" #: ../pan/general/e-util.cc:216 msgid "%b %d %l:%M %p" msgstr "" #: ../pan/general/e-util.cc:217 msgid "%b %d %Y" msgstr "" #: ../pan/general/e-util.cc:242 msgid "?" msgstr "" #: ../pan/general/text-match.cc:193 #, c-format msgid "Can't use regular expression \"%s\": %s" msgstr "" #: ../pan/general/utf8-utils.cc:213 msgid "Couldn't determine article encoding. Non-UTF8 characters were removed." msgstr "" #: ../pan/gui/actions.cc:274 ../pan/gui/post-ui.cc:417 #, fuzzy msgid "_File" msgstr "/_Fayl" #: ../pan/gui/actions.cc:275 ../pan/gui/post-ui.cc:418 #, fuzzy msgid "_Edit" msgstr "/_Düzəlt" #: ../pan/gui/actions.cc:276 ../pan/gui/prefs-ui.cc:1064 msgid "_Layout" msgstr "" #: ../pan/gui/actions.cc:277 #, fuzzy msgid "_Group Pane" msgstr "Qrup" #: ../pan/gui/actions.cc:278 msgid "_Header Pane" msgstr "" #: ../pan/gui/actions.cc:279 msgid "_Body Pane" msgstr "" #: ../pan/gui/actions.cc:280 #, fuzzy msgid "_View" msgstr "/_Görünüş" #: ../pan/gui/actions.cc:281 #, fuzzy msgid "Filte_r" msgstr "Süzgəclər" #: ../pan/gui/actions.cc:282 msgid "_Go" msgstr "" #: ../pan/gui/actions.cc:283 ../pan/gui/prefs-ui.cc:1091 #, fuzzy msgid "_Actions" msgstr "Gedişlər" #: ../pan/gui/actions.cc:284 msgid "_Articles" msgstr "" #: ../pan/gui/actions.cc:285 #, fuzzy msgid "G_roups" msgstr "Qruplar" #: ../pan/gui/actions.cc:286 ../pan/gui/actions.cc:287 msgid "_Post" msgstr "" #: ../pan/gui/actions.cc:288 msgid "_Help" msgstr "_Yardım" #: ../pan/gui/actions.cc:291 #, fuzzy msgid "_Read Group" msgstr "Qruplar" #: ../pan/gui/actions.cc:292 #, fuzzy msgid "Read Group" msgstr "Qruplar" #: ../pan/gui/actions.cc:296 msgid "_Mark Selected Groups Read" msgstr "" #: ../pan/gui/actions.cc:297 msgid "Mark Selected Groups Read" msgstr "" #: ../pan/gui/actions.cc:301 msgid "_Delete Selected Groups' Articles" msgstr "" #: ../pan/gui/actions.cc:302 msgid "Delete Selected Groups' Articles" msgstr "" #: ../pan/gui/actions.cc:306 msgid "Get New _Headers in Selected Groups" msgstr "" #: ../pan/gui/actions.cc:307 msgid "Get New Headers in Selected Groups" msgstr "" #: ../pan/gui/actions.cc:311 ../pan/gui/actions.cc:316 msgid "Get New _Headers in Subscribed Groups" msgstr "" #: ../pan/gui/actions.cc:312 ../pan/gui/actions.cc:317 msgid "Get New Headers in Subscribed Groups" msgstr "" #: ../pan/gui/actions.cc:321 msgid "Get _Headers..." msgstr "" #: ../pan/gui/actions.cc:322 msgid "Get Headers..." msgstr "" #: ../pan/gui/actions.cc:326 ../pan/gui/actions.cc:327 #, fuzzy msgid "Refresh Group List" msgstr "Qruplar" #: ../pan/gui/actions.cc:331 msgid "_Subscribe" msgstr "" #: ../pan/gui/actions.cc:332 msgid "Subscribe" msgstr "" #: ../pan/gui/actions.cc:336 msgid "_Unsubscribe" msgstr "" #: ../pan/gui/actions.cc:337 msgid "Unsubscribe" msgstr "" #: ../pan/gui/actions.cc:341 #, fuzzy msgid "_Save Articles..." msgstr "İlişdirilmiş Fayllar" #: ../pan/gui/actions.cc:342 #, fuzzy msgid "Save Articles..." msgstr "İlişdirilmiş Fayllar" #: ../pan/gui/actions.cc:346 #, fuzzy msgid "Save Articles from Selected _NZB..." msgstr "İlişdirilmiş Fayllar" #: ../pan/gui/actions.cc:347 #, fuzzy msgid "Save Articles from Selected NZB" msgstr "İlişdirilmiş Fayllar" #: ../pan/gui/actions.cc:351 #, fuzzy msgid "Save Articles to an NZB _File..." msgstr "İlişdirilmiş Fayllar" #: ../pan/gui/actions.cc:352 #, fuzzy msgid "Save Articles to an NZB File" msgstr "İlişdirilmiş Fayllar" #: ../pan/gui/actions.cc:356 ../pan/gui/actions.cc:357 msgid "Print" msgstr "" #: ../pan/gui/actions.cc:361 msgid "_Import NZB Files..." msgstr "" #: ../pan/gui/actions.cc:366 msgid "_Cancel Last Task" msgstr "" #: ../pan/gui/actions.cc:371 msgid "_Task Manager" msgstr "" #: ../pan/gui/actions.cc:376 msgid "_Event Log" msgstr "" #: ../pan/gui/actions.cc:381 #, fuzzy msgid "_Quit" msgstr "/_Düzəlt" #: ../pan/gui/actions.cc:386 msgid "Select _All Articles" msgstr "" #: ../pan/gui/actions.cc:391 msgid "_Deselect All Articles" msgstr "" #: ../pan/gui/actions.cc:396 msgid "Add Su_bthreads to Selection" msgstr "" #: ../pan/gui/actions.cc:401 msgid "Add _Threads to Selection" msgstr "" #: ../pan/gui/actions.cc:406 msgid "Add _Similar Articles to Selection" msgstr "" #: ../pan/gui/actions.cc:411 msgid "Select Article _Body" msgstr "" #: ../pan/gui/actions.cc:416 msgid "Edit _Preferences" msgstr "" #: ../pan/gui/actions.cc:421 msgid "Edit Selected _Group's Preferences" msgstr "" #: ../pan/gui/actions.cc:426 ../pan/gui/post-ui.cc:434 #, fuzzy msgid "Edit P_osting Profiles" msgstr "Profil" #: ../pan/gui/actions.cc:431 #, fuzzy msgid "Edit _News Servers" msgstr "Poçt Vericisi" #: ../pan/gui/actions.cc:436 msgid "Jump to _Group Tab" msgstr "" #: ../pan/gui/actions.cc:441 msgid "Jump to _Header Tab" msgstr "" #: ../pan/gui/actions.cc:446 msgid "Jump to _Body Tab" msgstr "" #: ../pan/gui/actions.cc:451 msgid "_Rot13 Selected Text" msgstr "" #: ../pan/gui/actions.cc:456 msgid "Clear _Header Pane" msgstr "" #: ../pan/gui/actions.cc:461 #, fuzzy msgid "Clear _Body Pane" msgstr "İçindəkilər" #: ../pan/gui/actions.cc:466 #, fuzzy msgid "Cache Article" msgstr "İlişdirilmiş Fayllar" #: ../pan/gui/actions.cc:471 #, fuzzy msgid "Read Article" msgstr "İlişdirilmiş Fayllar" #: ../pan/gui/actions.cc:476 #, fuzzy msgid "Show Article Information" msgstr "Arzuya Bağlı Mə'lumat" #: ../pan/gui/actions.cc:481 msgid "Read _More" msgstr "" #: ../pan/gui/actions.cc:482 #, fuzzy msgid "Read More" msgstr "Oxu" #: ../pan/gui/actions.cc:486 msgid "Read _Back" msgstr "" #: ../pan/gui/actions.cc:487 #, fuzzy msgid "Read Back" msgstr "Oxu" #: ../pan/gui/actions.cc:491 #, fuzzy msgid "Next _Unread Group" msgstr "Qruplar" #: ../pan/gui/actions.cc:496 #, fuzzy msgid "Next _Group" msgstr "Qruplar" #: ../pan/gui/actions.cc:501 msgid "Next _Unread Article" msgstr "" #: ../pan/gui/actions.cc:502 msgid "Next Unread Article" msgstr "" #: ../pan/gui/actions.cc:506 msgid "Next _Article" msgstr "" #: ../pan/gui/actions.cc:507 #, fuzzy msgid "Next Article" msgstr "İlişdirilmiş Fayllar" #: ../pan/gui/actions.cc:511 msgid "Next _Watched Article" msgstr "" #: ../pan/gui/actions.cc:516 msgid "Next Unread _Thread" msgstr "" #: ../pan/gui/actions.cc:517 msgid "Next Unread Thread" msgstr "" #: ../pan/gui/actions.cc:521 msgid "Next Threa_d" msgstr "" #: ../pan/gui/actions.cc:526 msgid "Pre_vious Article" msgstr "" #: ../pan/gui/actions.cc:531 msgid "Previous _Thread" msgstr "" #: ../pan/gui/actions.cc:536 msgid "_Parent Article" msgstr "" #: ../pan/gui/actions.cc:541 #, fuzzy msgid "Ignore _Author" msgstr "Rədd Edilmiş" #: ../pan/gui/actions.cc:545 msgid "_Watch Thread" msgstr "" #: ../pan/gui/actions.cc:550 #, fuzzy msgid "_Ignore Thread" msgstr "Rədd Edilmiş" #: ../pan/gui/actions.cc:555 ../pan/gui/actions.cc:556 #, fuzzy msgid "_Toggle Flag On/Off for Thread" msgstr "Rədd Edilmiş" #: ../pan/gui/actions.cc:560 ../pan/gui/actions.cc:561 #, fuzzy msgid "_Turn Flag Off for Thread" msgstr "Rədd Edilmiş" #: ../pan/gui/actions.cc:565 ../pan/gui/actions.cc:566 msgid "_Select All Flagged Threads" msgstr "" #: ../pan/gui/actions.cc:570 ../pan/gui/actions.cc:571 msgid "_Go to Next Flagged Thread" msgstr "" #: ../pan/gui/actions.cc:575 ../pan/gui/actions.cc:576 msgid "_Go to Last Flagged Thread" msgstr "" #: ../pan/gui/actions.cc:580 ../pan/gui/actions.cc:581 msgid "_Invert Selection" msgstr "" #: ../pan/gui/actions.cc:585 msgid "Edit Article's Watch/Ignore/Score..." msgstr "" #: ../pan/gui/actions.cc:590 #, fuzzy msgid "Add a _Scoring Rule..." msgstr "Poçt Vericisi" #: ../pan/gui/actions.cc:595 msgid "Cance_l Article..." msgstr "" #: ../pan/gui/actions.cc:600 msgid "_Supersede Article..." msgstr "" #: ../pan/gui/actions.cc:605 msgid "_Delete Article" msgstr "" #: ../pan/gui/actions.cc:610 msgid "Clear Article Cache" msgstr "" #: ../pan/gui/actions.cc:615 msgid "_Mark Article as Read" msgstr "" #: ../pan/gui/actions.cc:620 msgid "Mark Article as _Unread" msgstr "" #: ../pan/gui/actions.cc:626 msgid "_Mark Thread as Read" msgstr "" #: ../pan/gui/actions.cc:631 msgid "Mark Thread as _Unread" msgstr "" #: ../pan/gui/actions.cc:636 msgid "_Post to Newsgroup" msgstr "" #: ../pan/gui/actions.cc:637 msgid "Post to Newsgroup" msgstr "" #: ../pan/gui/actions.cc:641 msgid "_Followup to Newsgroup" msgstr "" #: ../pan/gui/actions.cc:642 msgid "Followup to Newsgroup" msgstr "" #: ../pan/gui/actions.cc:646 #, fuzzy msgid "_Reply to Author in Mail" msgstr "Müəllif" #: ../pan/gui/actions.cc:651 msgid "_Pan Home Page" msgstr "" #: ../pan/gui/actions.cc:656 msgid "Give _Feedback or Report a Bug..." msgstr "" #: ../pan/gui/actions.cc:661 msgid "_Tip Jar..." msgstr "" #: ../pan/gui/actions.cc:666 #, fuzzy msgid "_About" msgstr "Haqqında" #: ../pan/gui/actions.cc:671 msgid "Edit _SSL Certificates" msgstr "" #: ../pan/gui/actions.cc:685 msgid "_Thread Headers" msgstr "" #: ../pan/gui/actions.cc:686 msgid "_Wrap Article Body" msgstr "" #: ../pan/gui/actions.cc:687 msgid "Mute _Quoted Text" msgstr "" #: ../pan/gui/actions.cc:688 msgid "Show All _Headers in Body Pane" msgstr "" #: ../pan/gui/actions.cc:689 msgid "Show _Smilies as Graphics" msgstr "" #: ../pan/gui/actions.cc:690 msgid "Show *Bold*, __Underlined__, and /Italic/" msgstr "" #: ../pan/gui/actions.cc:691 msgid "Size Pictures to _Fit" msgstr "" #: ../pan/gui/actions.cc:692 msgid "Use _Monospace Font" msgstr "" #: ../pan/gui/actions.cc:693 msgid "Set Focus to Images" msgstr "" #: ../pan/gui/actions.cc:694 msgid "Highlight _URLs" msgstr "" #: ../pan/gui/actions.cc:697 msgid "_Work Online" msgstr "" #: ../pan/gui/actions.cc:698 msgid "_Tabbed Layout" msgstr "" #: ../pan/gui/actions.cc:699 #, fuzzy msgid "Show Group _Pane" msgstr "Qrup" #: ../pan/gui/actions.cc:700 msgid "Show Hea_der Pane" msgstr "" #: ../pan/gui/actions.cc:701 msgid "Show Bod_y Pane" msgstr "" #: ../pan/gui/actions.cc:702 msgid "Show _Toolbar" msgstr "" #: ../pan/gui/actions.cc:703 #, fuzzy msgid "Abbreviate Group Names" msgstr "Qrup" #: ../pan/gui/actions.cc:705 msgid "Match Only _Unread Articles" msgstr "" #: ../pan/gui/actions.cc:705 msgid "Match Only Unread Articles" msgstr "" #: ../pan/gui/actions.cc:706 msgid "Match Only _Cached Articles" msgstr "" #: ../pan/gui/actions.cc:706 msgid "Match Only Cached Articles" msgstr "" #: ../pan/gui/actions.cc:707 msgid "Match Only _Complete Articles" msgstr "" #: ../pan/gui/actions.cc:707 msgid "Match Only Complete Articles" msgstr "" #: ../pan/gui/actions.cc:708 msgid "Match Only _My Articles" msgstr "" #: ../pan/gui/actions.cc:708 #, fuzzy msgid "Match Only My Articles" msgstr "Profil" #: ../pan/gui/actions.cc:709 msgid "Match Only _Watched Articles" msgstr "" #: ../pan/gui/actions.cc:709 msgid "Match Only Watched Articles" msgstr "" #: ../pan/gui/actions.cc:711 msgid "Match Scores of 9999 (_Watched)" msgstr "" #: ../pan/gui/actions.cc:712 msgid "Match Scores of 5000...9998 (_High)" msgstr "" #: ../pan/gui/actions.cc:713 msgid "Match Scores of 1...4999 (Me_dium)" msgstr "" #: ../pan/gui/actions.cc:714 msgid "Match Scores of 0 (_Normal)" msgstr "" #: ../pan/gui/actions.cc:715 msgid "Match Scores of -9998...-1 (_Low)" msgstr "" #: ../pan/gui/actions.cc:716 msgid "Match Scores of -9999 (_Ignored)" msgstr "" #: ../pan/gui/actions.cc:718 msgid "Enable/Disable All _Rules" msgstr "" #: ../pan/gui/actions.cc:744 msgid "Show Matching _Articles" msgstr "" #: ../pan/gui/actions.cc:745 msgid "Show Matching Articles' _Threads" msgstr "" #: ../pan/gui/actions.cc:746 msgid "Show Matching Articles' _Subthreads" msgstr "" #: ../pan/gui/body-pane.cc:1011 #, c-format msgid "Unnamed File" msgstr "" #: ../pan/gui/body-pane.cc:1092 ../pan/gui/gui.cc:1864 #: ../pan/gui/header-pane.cc:1188 ../pan/gui/header-pane.cc:1617 #: ../pan/gui/post-ui.cc:2496 ../pan/gui/prefs-ui.cc:833 #: ../pan/gui/score-add-ui.cc:139 msgid "Subject" msgstr "Mövzu" #: ../pan/gui/body-pane.cc:1094 ../pan/gui/gui.cc:1864 #, fuzzy msgid "From" msgstr "Mənbə" #: ../pan/gui/body-pane.cc:1096 ../pan/gui/gui.cc:1865 #: ../pan/gui/header-pane.cc:1695 ../pan/gui/log-ui.cc:305 #: ../pan/gui/prefs-ui.cc:829 msgid "Date" msgstr "Tarix" #: ../pan/gui/body-pane.cc:1103 #, fuzzy msgid "Newsgroups" msgstr "Qruplar" #: ../pan/gui/body-pane.cc:1108 msgid "Followup-To" msgstr "" #: ../pan/gui/body-pane.cc:1118 msgid "Reply-To" msgstr "Cavablama" #: ../pan/gui/body-pane.cc:1160 msgid " from " msgstr "" #: ../pan/gui/body-pane.cc:1162 msgid " at " msgstr "" #: ../pan/gui/body-pane.cc:1264 #, c-format msgid "" "This is a PGP-Signed message.\n" "\n" "Signer : %s ('%s')\n" "Valid until : %s\n" "Created on : %s" msgstr "" #: ../pan/gui/body-pane.cc:1269 msgid "always" msgstr "" #: ../pan/gui/body-pane.cc:1485 msgid "Copy _URL" msgstr "" #: ../pan/gui/body-pane.cc:1680 #, fuzzy msgid "Save attachment as ...." msgstr "İlişdirilmiş Fayllar" #: ../pan/gui/body-pane.cc:1683 #, fuzzy msgid "Save all attachments" msgstr "İlişdirilmiş Fayllar" #. add a toolbar for attachments #: ../pan/gui/body-pane.cc:1753 #, fuzzy msgid "Attachments" msgstr "İlişdirilmiş Fayllar" #. update the titlebar #: ../pan/gui/dl-headers-ui.cc:106 ../pan/gui/gui.cc:973 #: ../pan/gui/gui.cc:1592 ../pan/gui/gui.cc:1893 #: ../pan/gui/score-add-ui.cc:602 msgid "Pan" msgstr "" #: ../pan/gui/dl-headers-ui.cc:112 #, fuzzy, c-format msgid "%d Group" msgid_plural "%d Groups" msgstr[0] "Qruplar" msgstr[1] "Qruplar" #: ../pan/gui/dl-headers-ui.cc:135 msgid "Get the last N _days' headers: " msgstr "" #: ../pan/gui/dl-headers-ui.cc:143 msgid "Get _new headers" msgstr "" #: ../pan/gui/dl-headers-ui.cc:147 msgid "Get _all headers" msgstr "" #: ../pan/gui/dl-headers-ui.cc:151 msgid "Get the _latest N headers: " msgstr "" #: ../pan/gui/e-action-combo-box.c:388 ../pan/gui/prefs-ui.cc:826 #, fuzzy msgid "Action" msgstr "Gedişlər" #: ../pan/gui/e-action-combo-box.c:389 msgid "A GtkRadioAction" msgstr "" #: ../pan/gui/e-charset.c:51 ../pan/gui/task-pane.cc:518 msgid "Unknown" msgstr "Namə'lum" #: ../pan/gui/e-charset.c:52 msgid "Arabic" msgstr "" #: ../pan/gui/e-charset.c:53 msgid "Baltic" msgstr "Baltik dillər" #: ../pan/gui/e-charset.c:54 msgid "Central European" msgstr "Mərkəzi Avropa dilləri" #: ../pan/gui/e-charset.c:55 #, fuzzy msgid "Chinese" msgstr "Sətr" #: ../pan/gui/e-charset.c:56 msgid "Cyrillic" msgstr "Kiril dilləri" #: ../pan/gui/e-charset.c:57 msgid "Greek" msgstr "Yunan dili" #: ../pan/gui/e-charset.c:58 msgid "Hebrew" msgstr "" #: ../pan/gui/e-charset.c:59 msgid "Japanese" msgstr "Yapon dili" #: ../pan/gui/e-charset.c:60 msgid "Korean" msgstr "Koreya dili" #: ../pan/gui/e-charset.c:61 msgid "Thai" msgstr "" #: ../pan/gui/e-charset.c:62 msgid "Turkish" msgstr "Türk dili" #: ../pan/gui/e-charset.c:63 msgid "Unicode" msgstr "" #: ../pan/gui/e-charset.c:64 #, fuzzy msgid "Western European" msgstr "Mərkəzi Avropa dilləri" #: ../pan/gui/e-charset.c:65 #, fuzzy msgid "Western European, New" msgstr "Qərb dilləri" #: ../pan/gui/e-charset.c:84 ../pan/gui/e-charset.c:85 #: ../pan/gui/e-charset.c:86 #, fuzzy msgid "Traditional" msgstr "Quruluş" #: ../pan/gui/e-charset.c:87 ../pan/gui/e-charset.c:88 #: ../pan/gui/e-charset.c:89 ../pan/gui/e-charset.c:90 msgid "Simplified" msgstr "" #: ../pan/gui/e-charset.c:93 msgid "Ukrainian" msgstr "" #: ../pan/gui/e-charset.c:96 msgid "Visual" msgstr "" #: ../pan/gui/e-charset-combo-box.c:93 ../pan/gui/gui.cc:2058 #: ../pan/gui/post-ui.cc:519 ../pan/gui/prefs-ui.cc:737 msgid "Character Encoding" msgstr "" #: ../pan/gui/e-charset-combo-box.c:117 msgid "Enter the character set to use" msgstr "" #: ../pan/gui/e-charset-combo-box.c:336 msgid "Other..." msgstr "" #: ../pan/gui/e-cte-dialog.c:78 msgid "Default encoding" msgstr "" #: ../pan/gui/e-cte-dialog.c:80 #, fuzzy msgid "7Bit Encoding" msgstr "İçindəkilər" #: ../pan/gui/e-cte-dialog.c:82 #, fuzzy msgid "8Bit Encoding" msgstr "İçindəkilər" #: ../pan/gui/e-cte-dialog.c:84 #, fuzzy msgid "BASE64 Encoding" msgstr "İçindəkilər" #: ../pan/gui/e-cte-dialog.c:86 #, fuzzy msgid "Quoted-Printable Encoding" msgstr "İçindəkilər" #: ../pan/gui/group-pane.cc:500 #, fuzzy msgid "Group" msgstr "Qruplar" #: ../pan/gui/group-pane.cc:501 #, fuzzy msgid "Group (regex)" msgstr "Qrup" #: ../pan/gui/group-pane.cc:913 msgid "Subscribed Groups" msgstr "" #: ../pan/gui/group-pane.cc:914 #, fuzzy msgid "Other Groups" msgstr "Qruplar" #: ../pan/gui/group-pane.cc:954 ../pan/gui/score-view-ui.cc:157 msgid "Name" msgstr "" #: ../pan/gui/group-prefs-dialog.cc:156 #, fuzzy msgid "No Profiles defined in Edit|Posting Profiles." msgstr "Profil" #: ../pan/gui/group-prefs-dialog.cc:231 msgid "Pan: Group Preferences" msgstr "" #: ../pan/gui/group-prefs-dialog.cc:247 #, fuzzy, c-format msgid "Properties for Groups" msgstr "\"%s\"in seçimləri" #: ../pan/gui/group-prefs-dialog.cc:249 #, fuzzy, c-format msgid "Properties for %s" msgstr "\"%s\"in seçimləri" #: ../pan/gui/group-prefs-dialog.cc:257 msgid "Character _encoding:" msgstr "" #: ../pan/gui/group-prefs-dialog.cc:259 msgid "Directory for Saving Attachments" msgstr "" #: ../pan/gui/group-prefs-dialog.cc:269 msgid "Directory for _saving attachments:" msgstr "" #: ../pan/gui/group-prefs-dialog.cc:271 #, fuzzy msgid "Posting _profile:" msgstr "Profil" #: ../pan/gui/group-prefs-dialog.cc:277 msgid "Spellchecker _language:" msgstr "" #: ../pan/gui/gui.cc:273 msgid "Open the Task Manager" msgstr "" #: ../pan/gui/gui.cc:301 msgid "Open the Event Log" msgstr "" #: ../pan/gui/gui.cc:561 msgid "Save NZB's Files" msgstr "" #: ../pan/gui/gui.cc:588 msgid "Untitled.nzb" msgstr "" #: ../pan/gui/gui.cc:590 #, fuzzy msgid "Save NZB File as..." msgstr "İlişdirilmiş Fayllar" #: ../pan/gui/gui.cc:757 msgid "Import NZB Files" msgstr "" #: ../pan/gui/gui.cc:765 ../pan/gui/post-ui.cc:3197 #, fuzzy msgid "NZB Files" msgstr "Fayllar" #: ../pan/gui/gui.cc:770 #, fuzzy msgid "All Files" msgstr "Fayllar" #: ../pan/gui/gui.cc:1258 msgid "Unable to supersede article." msgstr "" #: ../pan/gui/gui.cc:1259 ../pan/gui/gui.cc:1333 msgid "The article doesn't match any of your posting profiles." msgstr "" #: ../pan/gui/gui.cc:1306 msgid "Revise and send this article to replace the old one." msgstr "" #: ../pan/gui/gui.cc:1307 ../pan/gui/gui.cc:1370 msgid "Be patient! It will take time for your changes to take effect." msgstr "" #: ../pan/gui/gui.cc:1332 msgid "Unable to cancel article." msgstr "" #: ../pan/gui/gui.cc:1369 msgid "Send this article to ask your server to cancel your other one." msgstr "" #: ../pan/gui/gui.cc:1387 msgid "You marked some articles for deletion" msgstr "" #: ../pan/gui/gui.cc:1388 msgid "Are you sure you want to delete them?" msgstr "" #: ../pan/gui/gui.cc:1413 #, fuzzy msgid "Always trust" msgstr "Editor" #: ../pan/gui/gui.cc:1416 msgid "Do you want to accept it permanently (deletable afterwards) ?" msgstr "" #: ../pan/gui/gui.cc:1595 msgid "Copyright \\u00A9 2002-2012 Charles Kerr and others" msgstr "" #: ../pan/gui/gui.cc:1600 msgid "translator-credits" msgstr "" #: ../pan/gui/gui.cc:1709 #, fuzzy msgid "_1. Group Pane" msgstr "Qrup" #: ../pan/gui/gui.cc:1710 msgid "_2. Header Pane" msgstr "" #: ../pan/gui/gui.cc:1711 msgid "_3. Body Pane" msgstr "" #: ../pan/gui/gui.cc:1800 ../pan/gui/gui.cc:1815 msgid " Bytes" msgstr "" #: ../pan/gui/gui.cc:1803 msgid " KB" msgstr "" #: ../pan/gui/gui.cc:1806 msgid " MB" msgstr "" #: ../pan/gui/gui.cc:1809 msgid " GB" msgstr "" #: ../pan/gui/gui.cc:1812 msgid " TB" msgstr "" #: ../pan/gui/gui.cc:1844 #, c-format msgid "This article is complete with %d part." msgid_plural "This article has all %d parts." msgstr[0] "" msgstr[1] "" #: ../pan/gui/gui.cc:1846 #, c-format msgid "This article is missing %d part." msgid_plural "This article is missing %d of its %d parts:" msgstr[0] "" msgstr[1] "" #: ../pan/gui/gui.cc:1865 ../pan/gui/header-pane.cc:1190 #, fuzzy msgid "Message-ID" msgstr "İsmarış" #: ../pan/gui/gui.cc:1866 ../pan/gui/header-pane.cc:1665 #: ../pan/gui/prefs-ui.cc:830 msgid "Lines" msgstr "Sətr" #: ../pan/gui/gui.cc:1866 msgid "Size" msgstr "" #: ../pan/gui/gui.cc:1867 ../pan/gui/header-pane.cc:1680 #: ../pan/gui/prefs-ui.cc:828 msgid "Bytes" msgstr "" #: ../pan/gui/gui.cc:1917 msgid "" "Error loading iconv library. Some Charsets in the GUI will not be able to be " "encoded." msgstr "" #: ../pan/gui/gui.cc:2059 #, fuzzy msgid "Body Pane Encoding" msgstr "İçindəkilər" #: ../pan/gui/gui.cc:2090 ../pan/gui/task-pane.cc:569 #, c-format msgid "Offline" msgstr "Xətdə Deyil" #: ../pan/gui/gui.cc:2094 #, fuzzy, c-format msgid "Closing %d connection" msgid_plural "Closing %d connections" msgstr[0] "Bağlantılar" msgstr[1] "Bağlantılar" #: ../pan/gui/gui.cc:2096 ../pan/gui/gui.cc:2126 #, c-format msgid "No Connections" msgstr "" #: ../pan/gui/gui.cc:2100 #, fuzzy, c-format msgid "Connecting" msgstr "Bağlantı" #: ../pan/gui/gui.cc:2113 #, c-format msgid "%s: %d idle, %d active @ %.1f KiBps" msgstr "" #: ../pan/gui/gui.cc:2169 #, c-format msgid "No Tasks" msgstr "" #: ../pan/gui/gui.cc:2171 ../pan/gui/prefs-ui.cc:1047 #, fuzzy msgid "Tasks" msgstr "Vəzifələr" #: ../pan/gui/gui.cc:2182 ../pan/gui/task-pane.cc:435 #, c-format msgid "%lu tasks, %s, %.1f KiBps, ETA %d:%02d:%02d" msgstr "" #: ../pan/gui/gui.cc:2234 msgid "" "Pan is now offline. Please see \"File|Event Log\" and correct the problem, " "then use \"File|Work Online\" to continue." msgstr "" #: ../pan/gui/header-pane.cc:1186 msgid "Subject or Author" msgstr "" #: ../pan/gui/header-pane.cc:1187 msgid "Sub or Auth (regex)" msgstr "" #: ../pan/gui/header-pane.cc:1189 ../pan/gui/header-pane.cc:1649 #: ../pan/gui/prefs-ui.cc:827 ../pan/gui/score-add-ui.cc:140 msgid "Author" msgstr "Müəllif" #: ../pan/gui/header-pane.cc:1634 ../pan/gui/prefs-ui.cc:831 msgid "Score" msgstr "Xal" #: ../pan/gui/log-ui.cc:103 msgid "Save Event List" msgstr "" #: ../pan/gui/log-ui.cc:256 msgid "Pan: Events" msgstr "" #: ../pan/gui/log-ui.cc:315 msgid "Message" msgstr "İsmarış" #: ../pan/gui/pan.cc:330 msgid "Maximize" msgstr "" #: ../pan/gui/pan.cc:383 msgid "An Error has occurred!" msgstr "" #: ../pan/gui/pan.cc:397 #, fuzzy msgid "New Articles!" msgstr "İlişdirilmiş Fayllar" #: ../pan/gui/pan.cc:398 msgid "" "There are new\n" "articles available." msgstr "" #: ../pan/gui/pan.cc:465 msgid "Toggle on/offline" msgstr "" #: ../pan/gui/pan.cc:513 msgid "" "Thank you for trying Pan!\n" " \n" "To start newsreading, first Add a Server." msgstr "" #: ../pan/gui/pan.cc:595 msgid "" "General Options\n" " -h, --help Show this usage page.\n" " --verbose Be verbose (in non-GUI mode).\n" "\n" "URL Options\n" " --no-gui On news:message-id, dump the article to stdout.\n" "\n" "NZB Batch Options\n" " --nzb file1 file2 ... Process nzb files without launching all of Pan.\n" " -o path, --output=path Path to save attachments listed in the nzb " "files.\n" " --no-gui Only show console output, not the download " "queue.\n" msgstr "" #: ../pan/gui/pan.cc:867 msgid "Error: --no-gui used without nzb files or news:message-id." msgstr "" #: ../pan/gui/pan.cc:871 #, c-format msgid "Pan %s started" msgstr "" #: ../pan/gui/pan.cc:890 msgid "Please configure Pan's news servers before using it as an nzb client." msgstr "" #: ../pan/gui/pan.cc:1009 msgid "Pan notification" msgstr "" #: ../pan/gui/post-ui.cc:186 #, c-format msgid "Upload Queue : %ld Tasks, %ld KB (~ %.2f MB) total ." msgstr "" #: ../pan/gui/post-ui.cc:286 #, c-format msgid "Error setting custom spellchecker: %s" msgstr "" #: ../pan/gui/post-ui.cc:291 ../pan/gui/post-ui.cc:300 #, c-format msgid "Error setting spellchecker: %s" msgstr "" #: ../pan/gui/post-ui.cc:419 #, fuzzy msgid "_Profile" msgstr "Profil" #: ../pan/gui/post-ui.cc:420 #, fuzzy msgid "Set Editor" msgstr "Editor" #: ../pan/gui/post-ui.cc:422 #, fuzzy msgid "_Send Article" msgstr "İlişdirilmiş Fayllar" #: ../pan/gui/post-ui.cc:422 #, fuzzy msgid "Send Article Now" msgstr "İlişdirilmiş Fayllar" #: ../pan/gui/post-ui.cc:423 #, fuzzy msgid "_Send and Save Articles to NZB" msgstr "Profil" #: ../pan/gui/post-ui.cc:423 #, fuzzy msgid "Send and Save Articles to NZB" msgstr "Profil" #: ../pan/gui/post-ui.cc:424 msgid "Set Character _Encoding..." msgstr "" #: ../pan/gui/post-ui.cc:425 msgid "Set Content _Transfer Encoding..." msgstr "" #: ../pan/gui/post-ui.cc:426 msgid "Sa_ve Draft" msgstr "" #: ../pan/gui/post-ui.cc:426 msgid "Save as a Draft for Future Posting" msgstr "" #: ../pan/gui/post-ui.cc:427 msgid "_Open Draft..." msgstr "" #: ../pan/gui/post-ui.cc:427 msgid "Open an Article Draft" msgstr "" #: ../pan/gui/post-ui.cc:432 msgid "_Rot13" msgstr "" #: ../pan/gui/post-ui.cc:432 msgid "Rot13 Selected Text" msgstr "" #: ../pan/gui/post-ui.cc:433 #, fuzzy msgid "Run _Editor" msgstr "Editor" #: ../pan/gui/post-ui.cc:433 #, fuzzy msgid "Run Editor" msgstr "Editor" #: ../pan/gui/post-ui.cc:435 msgid "Add _Files to Queue" msgstr "" #: ../pan/gui/post-ui.cc:435 msgid "Add Files to Queue" msgstr "" #: ../pan/gui/post-ui.cc:450 ../pan/gui/post-ui.cc:451 #, fuzzy msgid "Remove from Queue" msgstr "Poçt Vericisi" #: ../pan/gui/post-ui.cc:455 ../pan/gui/post-ui.cc:456 msgid "Clear List" msgstr "" #: ../pan/gui/post-ui.cc:460 ../pan/gui/post-ui.cc:461 #, fuzzy msgid "Select Needed Parts" msgstr "Rəng Seç" #: ../pan/gui/post-ui.cc:465 ../pan/gui/post-ui.cc:466 #: ../pan/gui/task-pane.cc:636 ../pan/gui/task-pane.cc:637 msgid "Move Up" msgstr "" #: ../pan/gui/post-ui.cc:470 ../pan/gui/post-ui.cc:471 #: ../pan/gui/task-pane.cc:641 ../pan/gui/task-pane.cc:642 msgid "Move Down" msgstr "" #: ../pan/gui/post-ui.cc:475 ../pan/gui/post-ui.cc:476 msgid "Move to Top" msgstr "" #: ../pan/gui/post-ui.cc:480 ../pan/gui/post-ui.cc:481 msgid "Move to Bottom" msgstr "" #: ../pan/gui/post-ui.cc:488 msgid "_Wrap Text" msgstr "" #: ../pan/gui/post-ui.cc:488 msgid "Wrap Text" msgstr "" #: ../pan/gui/post-ui.cc:489 #, fuzzy msgid "Always Run Editor" msgstr "Editor" #: ../pan/gui/post-ui.cc:490 msgid "Remember Character Encoding for this Group" msgstr "" #: ../pan/gui/post-ui.cc:491 msgid "Thread Attached Replies" msgstr "" #: ../pan/gui/post-ui.cc:492 msgid "PGP-Encrypt the Message" msgstr "" #: ../pan/gui/post-ui.cc:493 msgid "PGP-Sign the Message" msgstr "" #: ../pan/gui/post-ui.cc:494 msgid "Check _Spelling" msgstr "" #: ../pan/gui/post-ui.cc:520 msgid "New Article's Encoding:" msgstr "" #: ../pan/gui/post-ui.cc:530 #, fuzzy msgid "Content Transfer Encoding" msgstr "İçindəkilər" #: ../pan/gui/post-ui.cc:531 msgid "New Article's Content Transfer Encoding:" msgstr "" #: ../pan/gui/post-ui.cc:711 msgid "Your changes will be lost!" msgstr "" #: ../pan/gui/post-ui.cc:712 msgid "Close this window and lose your changes?" msgstr "" #: ../pan/gui/post-ui.cc:757 ../pan/gui/post-ui.cc:796 msgid "There were problems with this post." msgstr "" #: ../pan/gui/post-ui.cc:759 ../pan/gui/post-ui.cc:798 #: ../pan/gui/post-ui.cc:861 msgid "Go Back" msgstr "" #: ../pan/gui/post-ui.cc:761 msgid "Post Anyway" msgstr "" #. Prompt the user #: ../pan/gui/post-ui.cc:790 #, c-format msgid "" "Message uses characters not specified in charset '%s' - possibly use '%s' " msgstr "" #: ../pan/gui/post-ui.cc:813 msgid "Go _Online" msgstr "" #: ../pan/gui/post-ui.cc:860 msgid "The file queue is empty, so no files can be saved." msgstr "" #: ../pan/gui/post-ui.cc:1019 msgid "" "No posting server is set for this posting profile.\n" "Please edit the profile via Edit|Manage Posting Profiles." msgstr "" #: ../pan/gui/post-ui.cc:1054 #, fuzzy msgid "Pan is Offline." msgstr "Xətdə Deyil" #: ../pan/gui/post-ui.cc:1055 msgid "Go online to post the article?" msgstr "" #: ../pan/gui/post-ui.cc:1102 #, c-format msgid "" "Error signing/encrypting your message. Perhaps you misspelled your email-" "address (%s) ?" msgstr "" #: ../pan/gui/post-ui.cc:1267 msgid "Error opening temporary file" msgstr "" #: ../pan/gui/post-ui.cc:1279 #, c-format msgid "Error writing article to temporary file: %s" msgstr "" #: ../pan/gui/post-ui.cc:1298 #, c-format msgid "Error parsing \"external editor\" command line: %s (Command was: %s)" msgstr "" #: ../pan/gui/post-ui.cc:1339 #, c-format msgid "Error starting external editor: %s" msgstr "" #: ../pan/gui/post-ui.cc:1395 msgid "Open Draft Article" msgstr "" #: ../pan/gui/post-ui.cc:1606 msgid "Save Draft Article" msgstr "" #: ../pan/gui/post-ui.cc:1803 #, c-format msgid "Couldn't parse signature command \"%s\": %s" msgstr "" #: ../pan/gui/post-ui.cc:1839 msgid "Couldn't convert signature to UTF-8." msgstr "" #: ../pan/gui/post-ui.cc:2334 #, fuzzy msgid "F_rom" msgstr "Mənbə" #: ../pan/gui/post-ui.cc:2352 #, fuzzy msgid "_Subject" msgstr "Mövzu" #: ../pan/gui/post-ui.cc:2365 msgid "_Newsgroups" msgstr "" #: ../pan/gui/post-ui.cc:2379 msgid "Mail _To" msgstr "" #: ../pan/gui/post-ui.cc:2481 msgid "Delete from Queue" msgstr "" #: ../pan/gui/post-ui.cc:2494 msgid "No." msgstr "" #: ../pan/gui/post-ui.cc:2498 ../pan/gui/post-ui.cc:2592 #: ../pan/gui/post-ui.cc:2633 msgid "Filename" msgstr "Fayl adı" #: ../pan/gui/post-ui.cc:2500 msgid "Size (kB)" msgstr "" #: ../pan/gui/post-ui.cc:2600 msgid "The current filename" msgstr "" #: ../pan/gui/post-ui.cc:2604 #, fuzzy msgid "Subject Line" msgstr "Mövzu" #: ../pan/gui/post-ui.cc:2612 msgid "The current Subject Line" msgstr "" #: ../pan/gui/post-ui.cc:2626 msgid "No. " msgstr "" #: ../pan/gui/post-ui.cc:2630 msgid "Enable/Disable" msgstr "" #: ../pan/gui/post-ui.cc:2664 msgid "Follo_wup-To" msgstr "" #. i18n: "poster" is a key used by many newsreaders. probably safest to keep this key in english. #: ../pan/gui/post-ui.cc:2673 msgid "" "The newsgroups where replies to your message should go. This is only needed " "if it differs from the \"Newsgroups\" header.\n" "\n" "To direct all replies to your email address, use \"Followup-To: poster\"" msgstr "" #: ../pan/gui/post-ui.cc:2679 #, fuzzy msgid "_Reply-To" msgstr "Cavablama" #: ../pan/gui/post-ui.cc:2687 msgid "" "The email account where mail replies to your posted message should go. This " "is only needed if it differs from the \"From\" header." msgstr "" #: ../pan/gui/post-ui.cc:2693 #, fuzzy msgid "_Custom Headers" msgstr "Sütun" #: ../pan/gui/post-ui.cc:2717 msgid "Add \"_User-Agent\" header" msgstr "" #: ../pan/gui/post-ui.cc:2724 msgid "Add \"Message-_Id\" header" msgstr "" #: ../pan/gui/post-ui.cc:2855 #, fuzzy msgid "Select Parts" msgstr "Rəng Seç" #: ../pan/gui/post-ui.cc:2866 msgid "_Parts" msgstr "" #: ../pan/gui/post-ui.cc:3022 msgid "Post Article" msgstr "" #: ../pan/gui/post-ui.cc:3043 #, fuzzy msgid "_Message" msgstr "İsmarış" #: ../pan/gui/post-ui.cc:3044 msgid "More _Headers" msgstr "" #: ../pan/gui/post-ui.cc:3045 msgid "File _Queue" msgstr "" #: ../pan/gui/post-ui.cc:3077 ../pan/gui/profiles-dialog.cc:478 #, no-c-format msgid "On %d, %n wrote:" msgstr "" #: ../pan/gui/post-ui.cc:3106 msgid "Add files to queue" msgstr "" #: ../pan/gui/post-ui.cc:3184 msgid "Save Upload Queue as NZB File" msgstr "" #: ../pan/gui/prefs.cc:343 #, c-format msgid "Couldn't parse %s color \"%s\"" msgstr "" #: ../pan/gui/prefs-ui.cc:120 msgid "Grab Key" msgstr "" #: ../pan/gui/prefs-ui.cc:126 #, c-format msgid "" "Press the combination of the keys\n" "you want to use for \"%s\"." msgstr "" #: ../pan/gui/prefs-ui.cc:166 #, fuzzy msgid "Edit Hotkey" msgstr "Süzgəcləri Dəyişdir" #: ../pan/gui/prefs-ui.cc:228 msgid "Error: Shortkey is invalid!" msgstr "" #: ../pan/gui/prefs-ui.cc:244 msgid "Error: Shortkey already exists!" msgstr "" #: ../pan/gui/prefs-ui.cc:535 #, fuzzy msgid "Show only icons" msgstr "Arzuya Bağlı Mə'lumat" #: ../pan/gui/prefs-ui.cc:536 msgid "Show only text" msgstr "" #: ../pan/gui/prefs-ui.cc:537 #, fuzzy msgid "Show icons and text" msgstr "İlişdirilmiş Fayllar" #: ../pan/gui/prefs-ui.cc:576 msgid "Use GNOME Preferences" msgstr "" #: ../pan/gui/prefs-ui.cc:577 msgid "Use KDE Preferences" msgstr "" #: ../pan/gui/prefs-ui.cc:578 msgid "Use OS X Preferences" msgstr "" #: ../pan/gui/prefs-ui.cc:579 msgid "Use Windows Preferences" msgstr "" #: ../pan/gui/prefs-ui.cc:580 #, fuzzy msgid "Custom Command:" msgstr "Sütun" #: ../pan/gui/prefs-ui.cc:632 msgid "Disabled" msgstr "" #: ../pan/gui/prefs-ui.cc:633 msgid "Only new (Score == 0)" msgstr "" #: ../pan/gui/prefs-ui.cc:634 msgid "9999 or more" msgstr "" #: ../pan/gui/prefs-ui.cc:635 msgid "5000 to 9998" msgstr "" #: ../pan/gui/prefs-ui.cc:636 msgid "1 to 4999" msgstr "" #: ../pan/gui/prefs-ui.cc:637 msgid "-9998 to -1" msgstr "" #: ../pan/gui/prefs-ui.cc:638 msgid "-9999 or less" msgstr "" #: ../pan/gui/prefs-ui.cc:702 #, c-format msgid "Select default global charset. Current setting : %s ." msgstr "" #: ../pan/gui/prefs-ui.cc:738 msgid "Global Charset Settings" msgstr "" #: ../pan/gui/prefs-ui.cc:832 ../pan/gui/task-pane.cc:770 #, fuzzy msgid "State" msgstr "Vəziyyət" #: ../pan/gui/prefs-ui.cc:866 msgid "Enabled" msgstr "" #: ../pan/gui/prefs-ui.cc:870 #, fuzzy msgid "Column Name" msgstr "Sütun" #: ../pan/gui/prefs-ui.cc:908 msgid "Pan: Preferences" msgstr "" #: ../pan/gui/prefs-ui.cc:923 msgid "Mouse" msgstr "Siçan" #: ../pan/gui/prefs-ui.cc:925 msgid "Single-click activates, rather than selects, _groups" msgstr "" #: ../pan/gui/prefs-ui.cc:927 msgid "Single-click activates, rather than selects, _articles" msgstr "" #: ../pan/gui/prefs-ui.cc:930 #, fuzzy msgid "Groups" msgstr "Qruplar" #: ../pan/gui/prefs-ui.cc:932 msgid "Get new headers in subscribed groups on _startup" msgstr "" #: ../pan/gui/prefs-ui.cc:934 msgid "Get new headers when _entering group" msgstr "" #: ../pan/gui/prefs-ui.cc:936 msgid "Mark entire group _read when leaving group" msgstr "" #: ../pan/gui/prefs-ui.cc:938 msgid "Mark entire group read before getting _new headers" msgstr "" #: ../pan/gui/prefs-ui.cc:940 msgid "E_xpand all threads when entering group" msgstr "" #: ../pan/gui/prefs-ui.cc:945 #, fuzzy msgid "Articles" msgstr "Profil" #: ../pan/gui/prefs-ui.cc:947 msgid "Space selects next article rather than next unread" msgstr "" #: ../pan/gui/prefs-ui.cc:949 msgid "Expand threads upon selection" msgstr "" #: ../pan/gui/prefs-ui.cc:951 msgid "Always show article deletion confirmation dialog" msgstr "" #: ../pan/gui/prefs-ui.cc:953 msgid "Smooth scrolling" msgstr "" #: ../pan/gui/prefs-ui.cc:958 #, fuzzy msgid "Article Cache" msgstr "Profil" #: ../pan/gui/prefs-ui.cc:959 msgid "Clear article cache on shutdown" msgstr "" #: ../pan/gui/prefs-ui.cc:962 msgid "Size of article cache (in MiB) :" msgstr "" #: ../pan/gui/prefs-ui.cc:967 msgid "File extension for Cached Articles: " msgstr "" #: ../pan/gui/prefs-ui.cc:972 msgid "Tabs" msgstr "" #: ../pan/gui/prefs-ui.cc:977 msgid "_Behavior" msgstr "" #: ../pan/gui/prefs-ui.cc:977 msgid "Behavior" msgstr "" #: ../pan/gui/prefs-ui.cc:983 msgid "Language Settings" msgstr "" #. systray and notify popup #: ../pan/gui/prefs-ui.cc:992 msgid "System Tray Behavior" msgstr "" #: ../pan/gui/prefs-ui.cc:994 msgid "Hide to system tray" msgstr "" #: ../pan/gui/prefs-ui.cc:996 msgid "Start Pan minimized" msgstr "" #: ../pan/gui/prefs-ui.cc:999 #, fuzzy msgid "Show notifications" msgstr "Arzuya Bağlı Mə'lumat" #. allow multiple instances (seperate, not communicating with dbus) #: ../pan/gui/prefs-ui.cc:1004 msgid "Startup Behavior" msgstr "" #: ../pan/gui/prefs-ui.cc:1006 msgid "Allow multiple instances of Pan" msgstr "" #: ../pan/gui/prefs-ui.cc:1011 msgid "Autosave Article Draft" msgstr "" #: ../pan/gui/prefs-ui.cc:1013 msgid "Minutes to autosave the current Article Draft: " msgstr "" #: ../pan/gui/prefs-ui.cc:1018 #, fuzzy msgid "Autosave Articles" msgstr "İlişdirilmiş Fayllar" #: ../pan/gui/prefs-ui.cc:1020 msgid "Minutes to autosave newsrc files: " msgstr "" #: ../pan/gui/prefs-ui.cc:1026 msgid "_Miscellaneous" msgstr "" #: ../pan/gui/prefs-ui.cc:1026 msgid "Miscellaneous" msgstr "" #: ../pan/gui/prefs-ui.cc:1031 msgid "Pane Layout" msgstr "" #: ../pan/gui/prefs-ui.cc:1050 msgid "1=Groups, 2=Headers, 3=Body" msgstr "" #: ../pan/gui/prefs-ui.cc:1052 msgid "1=Groups, 2=Body, 3=Headers" msgstr "" #: ../pan/gui/prefs-ui.cc:1054 msgid "1=Headers, 2=Groups, 3=Body" msgstr "" #: ../pan/gui/prefs-ui.cc:1056 msgid "1=Headers, 2=Body, 3=Groups" msgstr "" #: ../pan/gui/prefs-ui.cc:1058 msgid "1=Body, 2=Groups, 3=Headers" msgstr "" #: ../pan/gui/prefs-ui.cc:1060 msgid "1=Body, 2=Headers, 3=Groups" msgstr "" #: ../pan/gui/prefs-ui.cc:1064 msgid "Layout" msgstr "" #: ../pan/gui/prefs-ui.cc:1069 msgid "Header Pane Columns" msgstr "" #: ../pan/gui/prefs-ui.cc:1073 msgid "_Headers" msgstr "" #: ../pan/gui/prefs-ui.cc:1073 #, fuzzy msgid "Headers" msgstr "Sütun" #: ../pan/gui/prefs-ui.cc:1079 msgid "" "This menu lets you configure Pan to take certain actions on your behalf " "automatically, based on a post's score." msgstr "" #: ../pan/gui/prefs-ui.cc:1082 msgid "_Delete posts scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1084 msgid "Mark posts _read scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1086 msgid "_Cache posts scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1088 msgid "Download _attachments of posts scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1091 #, fuzzy msgid "Actions" msgstr "Gedişlər" #: ../pan/gui/prefs-ui.cc:1096 ../pan/gui/prefs-ui.cc:1117 msgid "Fonts" msgstr "Yazı növləri" #: ../pan/gui/prefs-ui.cc:1098 msgid "Use custom font in Group Pane:" msgstr "" #: ../pan/gui/prefs-ui.cc:1103 msgid "Use custom font in Header Pane:" msgstr "" #: ../pan/gui/prefs-ui.cc:1108 msgid "Use custom font in Body Pane:" msgstr "" #: ../pan/gui/prefs-ui.cc:1113 msgid "Monospace font:" msgstr "" #: ../pan/gui/prefs-ui.cc:1117 #, fuzzy msgid "_Fonts" msgstr "Yazı növləri" #: ../pan/gui/prefs-ui.cc:1122 msgid "Header Pane" msgstr "" #: ../pan/gui/prefs-ui.cc:1125 ../pan/gui/prefs-ui.cc:1131 #: ../pan/gui/prefs-ui.cc:1137 ../pan/gui/prefs-ui.cc:1143 #: ../pan/gui/prefs-ui.cc:1149 ../pan/gui/prefs-ui.cc:1155 msgid "Text:" msgstr "" #: ../pan/gui/prefs-ui.cc:1127 ../pan/gui/prefs-ui.cc:1133 #: ../pan/gui/prefs-ui.cc:1139 ../pan/gui/prefs-ui.cc:1145 #: ../pan/gui/prefs-ui.cc:1151 ../pan/gui/prefs-ui.cc:1157 msgid "Background:" msgstr "Arxa plan:" #: ../pan/gui/prefs-ui.cc:1129 msgid "Scores of 9999 or more:" msgstr "" #: ../pan/gui/prefs-ui.cc:1135 msgid "Scores from 5000 to 9998:" msgstr "" #: ../pan/gui/prefs-ui.cc:1141 msgid "Scores from 1 to 4999:" msgstr "" #: ../pan/gui/prefs-ui.cc:1147 msgid "Scores from -9998 to -1:" msgstr "" #: ../pan/gui/prefs-ui.cc:1153 msgid "Scores of -9999 or less:" msgstr "" #: ../pan/gui/prefs-ui.cc:1159 msgid "Read collapsed thread:" msgstr "" #: ../pan/gui/prefs-ui.cc:1161 #, fuzzy msgid "Body Pane" msgstr "İçindəkilər" #: ../pan/gui/prefs-ui.cc:1167 msgid "Quoted text:" msgstr "" #: ../pan/gui/prefs-ui.cc:1168 msgid "URL:" msgstr "" #: ../pan/gui/prefs-ui.cc:1169 msgid "Signature:" msgstr "" #: ../pan/gui/prefs-ui.cc:1171 #, fuzzy msgid "_Colors" msgstr "Rənglər" #: ../pan/gui/prefs-ui.cc:1171 #, fuzzy msgid "Colors" msgstr "Rənglər" #: ../pan/gui/prefs-ui.cc:1176 #, fuzzy msgid "Preferred Applications" msgstr "Gedişlər" #: ../pan/gui/prefs-ui.cc:1180 #, fuzzy msgid "_Web browser:" msgstr "Qruplar" #: ../pan/gui/prefs-ui.cc:1183 msgid "_Mail reader:" msgstr "" #: ../pan/gui/prefs-ui.cc:1185 #, fuzzy msgid "_Text editor:" msgstr "Editor" #: ../pan/gui/prefs-ui.cc:1187 #, fuzzy msgid "_Applications" msgstr "Gedişlər" #: ../pan/gui/prefs-ui.cc:1187 #, fuzzy msgid "Applications" msgstr "Gedişlər" #: ../pan/gui/prefs-ui.cc:1192 ../pan/gui/task-pane.cc:512 msgid "Encoding" msgstr "" #: ../pan/gui/prefs-ui.cc:1196 msgid "Default bytes per file (for encoder): " msgstr "" #: ../pan/gui/prefs-ui.cc:1201 #, fuzzy msgid "_Upload" msgstr "Gedişlər" #: ../pan/gui/prefs-ui.cc:1201 msgid "Upload" msgstr "" #: ../pan/gui/prefs-ui.cc:1219 msgid "_Hotkeys" msgstr "" #: ../pan/gui/prefs-ui.cc:1219 msgid "Hotkeys" msgstr "" #: ../pan/gui/profiles-dialog.cc:83 msgid "Please choose your Email Address according to your PGP key's user id." msgstr "" #: ../pan/gui/profiles-dialog.cc:131 #, fuzzy msgid "Posting Profile" msgstr "Profil" #: ../pan/gui/profiles-dialog.cc:143 msgid "Profile Information" msgstr "" #: ../pan/gui/profiles-dialog.cc:147 #, fuzzy msgid "_Profile Name:" msgstr "Profil" #: ../pan/gui/profiles-dialog.cc:150 msgid "Required Information" msgstr "İstənən Mə'lumat" #: ../pan/gui/profiles-dialog.cc:154 msgid "_Full Name:" msgstr "_Tam Ad:" #: ../pan/gui/profiles-dialog.cc:158 msgid "" "Your Email Address.\n" "Note that this has to match your PGP Signature's Address\n" "if you want to PGP-Sign or Encrypt your messages correctly." msgstr "" #: ../pan/gui/profiles-dialog.cc:162 msgid "_Email Address:" msgstr "e_Poçt Ünvanı:" #: ../pan/gui/profiles-dialog.cc:164 msgid "_Post Articles via:" msgstr "" #: ../pan/gui/profiles-dialog.cc:167 msgid "Signature" msgstr "" #: ../pan/gui/profiles-dialog.cc:170 msgid "_Use a Signature" msgstr "" #: ../pan/gui/profiles-dialog.cc:174 msgid "Signature File" msgstr "" #: ../pan/gui/profiles-dialog.cc:184 msgid "Text File" msgstr "" #: ../pan/gui/profiles-dialog.cc:186 msgid "Text" msgstr "" #: ../pan/gui/profiles-dialog.cc:188 #, fuzzy msgid "Command" msgstr "Sütun" #: ../pan/gui/profiles-dialog.cc:191 msgid "PGP Signature" msgstr "" #: ../pan/gui/profiles-dialog.cc:196 msgid "Signature Type : " msgstr "" #: ../pan/gui/profiles-dialog.cc:223 msgid "X-Face (Avatar)" msgstr "" #: ../pan/gui/profiles-dialog.cc:226 msgid "" "You can add an avatar icon to your articles with a unique X-Face code. \n" "Add the code without the trailing \"X-Face:\" \n" " if it was generated by a helper program (for example http://www.dairiki.org/" "xface/xface.php)." msgstr "" #: ../pan/gui/profiles-dialog.cc:229 msgid "_X-Face:" msgstr "" #: ../pan/gui/profiles-dialog.cc:231 msgid "Optional Information" msgstr "Arzuya Bağlı Mə'lumat" #: ../pan/gui/profiles-dialog.cc:236 msgid "" "When posting to Usenet, your article's Message-ID contains a domain name. \n" "You can set a custom domain name here, or leave it blank to let Pan use the " "domain name from your email address." msgstr "" #: ../pan/gui/profiles-dialog.cc:239 msgid "Message-ID _Domain Name:" msgstr "" #: ../pan/gui/profiles-dialog.cc:243 #, c-format msgid "" "%i for Message-ID\n" "%a for Author and Address\n" "%n for Author name\n" "%d for Date" msgstr "" #: ../pan/gui/profiles-dialog.cc:244 msgid "_Attribution:" msgstr "" #: ../pan/gui/profiles-dialog.cc:268 msgid "" "Extra headers to be included in your posts, such as\n" "Reply-To: \"Your Name\"\n" "Organization: Your Organization\n" msgstr "" #: ../pan/gui/profiles-dialog.cc:278 msgid "E_xtra Headers:" msgstr "" #: ../pan/gui/profiles-dialog.cc:323 msgid "Invalid email address." msgstr "" #: ../pan/gui/profiles-dialog.cc:324 msgid "Please use an address of the form joe@somewhere.org" msgstr "" #: ../pan/gui/profiles-dialog.cc:479 msgid "New Profile" msgstr "" #: ../pan/gui/profiles-dialog.cc:525 #, fuzzy msgid "Posting Profiles" msgstr "Profil" #: ../pan/gui/profiles-dialog.cc:541 #, fuzzy msgid "Profiles" msgstr "Profil" #: ../pan/gui/save-attach-ui.cc:77 ../pan/gui/save-ui.cc:77 #, c-format msgid "" "%g - group as one directory (alt.binaries.pictures.trains)\n" "%G - group as nested directory (/alt/binaries/pictures/trains)\n" "%s - subject line excerpt\n" "%S - subject line\n" " \n" "\"/home/user/News/Pan/%g\" becomes\n" "\"/home/user/News/Pan/alt.binaries.pictures.trains\", and\n" "\"/home/user/News/Pan/%G\" becomes\n" "\"/home/user/News/Pan/alt/binaries/pictures/trains\"," msgstr "" #: ../pan/gui/save-attach-ui.cc:223 ../pan/gui/save-ui.cc:242 msgid "Add to the queue sorted by date posted" msgstr "" #: ../pan/gui/save-attach-ui.cc:224 ../pan/gui/save-ui.cc:243 msgid "Add to the front of the queue" msgstr "" #: ../pan/gui/save-attach-ui.cc:225 ../pan/gui/save-ui.cc:244 msgid "Add to the back of the queue" msgstr "" #: ../pan/gui/save-attach-ui.cc:257 #, fuzzy msgid "Pan: Save Attachments" msgstr "İlişdirilmiş Fayllar" #: ../pan/gui/save-attach-ui.cc:282 ../pan/gui/save-attach-ui.cc:300 #: ../pan/gui/save-ui.cc:296 ../pan/gui/save-ui.cc:314 #, fuzzy msgid "_Location:" msgstr "Gedişlər" #: ../pan/gui/save-attach-ui.cc:286 ../pan/gui/save-ui.cc:300 #, fuzzy msgid "Save Articles" msgstr "İlişdirilmiş Fayllar" #: ../pan/gui/save-attach-ui.cc:303 ../pan/gui/save-ui.cc:317 #, c-format msgid "_Group's path: %s" msgstr "" #: ../pan/gui/save-attach-ui.cc:314 ../pan/gui/save-ui.cc:332 msgid "_Priority:" msgstr "" #: ../pan/gui/save-ui.cc:233 #, fuzzy msgid "Save attachments" msgstr "İlişdirilmiş Fayllar" #: ../pan/gui/save-ui.cc:234 #, fuzzy msgid "Save text" msgstr "İlişdirilmiş Fayllar" #: ../pan/gui/save-ui.cc:235 #, fuzzy msgid "Save attachments and text" msgstr "İlişdirilmiş Fayllar" #: ../pan/gui/save-ui.cc:271 #, fuzzy msgid "Pan: Save Articles" msgstr "Profil" #: ../pan/gui/save-ui.cc:328 #, fuzzy msgid "_Action:" msgstr "Gedişlər" #: ../pan/gui/score-add-ui.cc:89 msgid "is more than" msgstr "" #: ../pan/gui/score-add-ui.cc:90 msgid "is at most" msgstr "" #: ../pan/gui/score-add-ui.cc:112 msgid "increase the article's score by" msgstr "" #: ../pan/gui/score-add-ui.cc:113 msgid "decrease the article's score by" msgstr "" #: ../pan/gui/score-add-ui.cc:114 msgid "set the article's score to" msgstr "" #: ../pan/gui/score-add-ui.cc:115 msgid "watch the article (set its score to 9999)" msgstr "" #: ../pan/gui/score-add-ui.cc:116 msgid "ignore the article (set its score to -9999)" msgstr "" #: ../pan/gui/score-add-ui.cc:141 msgid "References" msgstr "" #: ../pan/gui/score-add-ui.cc:142 msgid "Line Count" msgstr "" #: ../pan/gui/score-add-ui.cc:143 msgid "Byte Count" msgstr "" #: ../pan/gui/score-add-ui.cc:144 msgid "Crosspost Group Count" msgstr "" #: ../pan/gui/score-add-ui.cc:145 msgid "Age (in days)" msgstr "" #: ../pan/gui/score-add-ui.cc:167 msgid "for the next month" msgstr "" #: ../pan/gui/score-add-ui.cc:168 msgid "for the next six months" msgstr "" #: ../pan/gui/score-add-ui.cc:169 #, fuzzy msgid "forever" msgstr "Verici" #: ../pan/gui/score-add-ui.cc:194 msgid "contains" msgstr "daxil edir" #: ../pan/gui/score-add-ui.cc:195 #, fuzzy msgid "doesn't contain" msgstr "daxil etmir" #: ../pan/gui/score-add-ui.cc:196 msgid "is" msgstr "bərabərdir" #: ../pan/gui/score-add-ui.cc:197 #, fuzzy msgid "isn't" msgstr "bərabər deyil" #: ../pan/gui/score-add-ui.cc:198 msgid "starts with" msgstr "bununla başlayır" #: ../pan/gui/score-add-ui.cc:199 msgid "ends with" msgstr "bununla sonlanır" #: ../pan/gui/score-add-ui.cc:200 msgid "matches regex" msgstr "" #: ../pan/gui/score-add-ui.cc:481 msgid "Another rule already sets this article's score." msgstr "" #: ../pan/gui/score-add-ui.cc:482 msgid "You may want to go back or delete the old rule." msgstr "" #: ../pan/gui/score-add-ui.cc:553 #, fuzzy msgid "Add and Re_score" msgstr "Poçt Vericisi" #: ../pan/gui/score-add-ui.cc:604 ../pan/gui/score-add-ui.cc:624 msgid "New Scoring Rule" msgstr "" #: ../pan/gui/score-add-ui.cc:635 msgid "If the group name" msgstr "" #: ../pan/gui/score-add-ui.cc:642 msgid "And the article's" msgstr "" #: ../pan/gui/score-view-ui.cc:56 msgid "Close and Re_score" msgstr "" #: ../pan/gui/score-view-ui.cc:154 #, c-format msgid "File %s, Lines %d - %d" msgstr "" #: ../pan/gui/score-view-ui.cc:182 msgid "Pan: Article's Scores" msgstr "" #: ../pan/gui/score-view-ui.cc:208 msgid "Add" msgstr "" #: ../pan/gui/score-view-ui.cc:213 #, fuzzy msgid "New Score" msgstr "Xal" #: ../pan/gui/score-view-ui.cc:218 msgid "Criteria" msgstr "" #: ../pan/gui/score-view-ui.cc:241 msgid "Add a New Scoring Rule" msgstr "" #: ../pan/gui/score-view-ui.cc:248 msgid "Remove the Selected Scoring Rule" msgstr "" #: ../pan/gui/server-ui.cc:221 msgid "Please specify the server's address." msgstr "" #: ../pan/gui/server-ui.cc:264 msgid "Import SSL certificate (PEM format) from File" msgstr "" #. create the dialog #: ../pan/gui/server-ui.cc:290 ../pan/gui/server-ui.cc:869 #, fuzzy msgid "Add a Server" msgstr "Poçt Vericisi" #: ../pan/gui/server-ui.cc:290 ../pan/gui/server-ui.cc:875 msgid "Edit a Server's Settings" msgstr "" #: ../pan/gui/server-ui.cc:310 #, fuzzy msgid "Location" msgstr "Gedişlər" #: ../pan/gui/server-ui.cc:314 msgid "The news server's actual address, e.g. \"news.mynewsserver.com\"" msgstr "" #: ../pan/gui/server-ui.cc:315 msgid "_Address:" msgstr "_Ünvan:" #: ../pan/gui/server-ui.cc:319 msgid "The news server's port number. Typically 119." msgstr "" #: ../pan/gui/server-ui.cc:320 msgid "Por_t:" msgstr "" #: ../pan/gui/server-ui.cc:323 msgid "Login (if Required)" msgstr "" #: ../pan/gui/server-ui.cc:327 msgid "_Username:" msgstr "_İstifadəçi Adı:" #: ../pan/gui/server-ui.cc:328 msgid "" "The username to give the server when asked. If your server doesn't require " "authentication, you can leave this blank." msgstr "" #: ../pan/gui/server-ui.cc:332 msgid "_Password:" msgstr "_Şifrə:" #: ../pan/gui/server-ui.cc:333 msgid "" "The password to give the server when asked. If your server doesn't require " "authentication, you can leave this blank." msgstr "" #: ../pan/gui/server-ui.cc:336 msgid "Settings" msgstr "" #: ../pan/gui/server-ui.cc:343 msgid "Connection _Limit:" msgstr "" #: ../pan/gui/server-ui.cc:347 msgid "After Two Weeks" msgstr "" #: ../pan/gui/server-ui.cc:348 msgid "After One Month" msgstr "" #: ../pan/gui/server-ui.cc:349 msgid "After Two Months" msgstr "" #: ../pan/gui/server-ui.cc:350 msgid "After Three Months" msgstr "" #: ../pan/gui/server-ui.cc:351 msgid "After Six Months" msgstr "" #: ../pan/gui/server-ui.cc:352 msgid "Never Expire Old Articles" msgstr "" #: ../pan/gui/server-ui.cc:366 msgid "E_xpire Old Articles:" msgstr "" #: ../pan/gui/server-ui.cc:370 #, fuzzy msgid "Primary" msgstr "Üstünlük" #: ../pan/gui/server-ui.cc:371 msgid "Fallback" msgstr "" #: ../pan/gui/server-ui.cc:385 #, fuzzy msgid "Server Rank:" msgstr "Vericilər" #: ../pan/gui/server-ui.cc:389 msgid "" "Fallback servers are used for articles that can't be found on the " "primaries. One common approach is to use free servers as primaries and " "subscription servers as fallbacks." msgstr "" #: ../pan/gui/server-ui.cc:396 msgid "Security" msgstr "" #: ../pan/gui/server-ui.cc:401 msgid "Use Plaintext (Unsecured) Connections" msgstr "" #: ../pan/gui/server-ui.cc:402 msgid "Use Secure SSL Connections" msgstr "" #: ../pan/gui/server-ui.cc:418 msgid "TLS (SSL) Options:" msgstr "" #: ../pan/gui/server-ui.cc:423 msgid "" "You can set the option for using/disabling secure SSL/TLS connections here. " "If you enable SSL/TLS, your data is encrypted and secure. It is encouraged " "to use this option for privacy reasons." msgstr "" #: ../pan/gui/server-ui.cc:428 msgid "Always trust this server's certificate" msgstr "" #: ../pan/gui/server-ui.cc:602 #, c-format msgid "Really delete \"%s\"?" msgstr "" #: ../pan/gui/server-ui.cc:691 msgid "No information available." msgstr "" #: ../pan/gui/server-ui.cc:697 #, c-format msgid "Server Certificate for '%s'" msgstr "" #: ../pan/gui/server-ui.cc:795 #, c-format msgid "Really delete certificate for \"%s\"?" msgstr "" #. dialog #: ../pan/gui/server-ui.cc:822 ../pan/gui/server-ui.cc:843 #: ../pan/gui/server-ui.cc:941 msgid "Servers" msgstr "Vericilər" #: ../pan/gui/server-ui.cc:882 #, fuzzy msgid "Remove a Server" msgstr "Poçt Vericisi" #. dialog #: ../pan/gui/server-ui.cc:915 msgid "SSL Certificates" msgstr "" #: ../pan/gui/server-ui.cc:936 msgid "Certificates" msgstr "" #: ../pan/gui/server-ui.cc:967 msgid "Import Certificate" msgstr "" #: ../pan/gui/server-ui.cc:973 msgid "Inspect Certificate" msgstr "" #: ../pan/gui/server-ui.cc:980 #, fuzzy msgid "Remove Certificate" msgstr "Poçt Vericisi" #: ../pan/gui/task-pane.cc:143 #, c-format msgid "" "\n" "Upload\n" "\n" "Subject: \"%s\"\n" "From: %s\n" "Groups: %s\n" "Sourcefile: %s\n" msgstr "" #: ../pan/gui/task-pane.cc:155 #, c-format msgid "" "\n" "Download\n" "\n" "Subject: \"%s\"\n" "From: %s\n" "Date: %s\n" "Groups: %s\n" "Save Path: %s\n" msgstr "" #: ../pan/gui/task-pane.cc:157 #, fuzzy msgid "unknown" msgstr "Namə'lum" #: ../pan/gui/task-pane.cc:263 msgid "Choose new destination for selected Tasks" msgstr "" #: ../pan/gui/task-pane.cc:417 #, c-format msgid "Pan: Tasks (%d Queued, %d Running, %d Stopped)" msgstr "" #: ../pan/gui/task-pane.cc:419 #, c-format msgid "Pan: Tasks (%d Queued, %d Running)" msgstr "" #: ../pan/gui/task-pane.cc:421 #, fuzzy, c-format msgid "Pan: Tasks" msgstr "Vəzifələr" #: ../pan/gui/task-pane.cc:446 #, c-format msgid "%lu selected, %s" msgstr "" #: ../pan/gui/task-pane.cc:510 msgid "Running" msgstr "" #: ../pan/gui/task-pane.cc:511 msgid "Decoding" msgstr "" #: ../pan/gui/task-pane.cc:513 msgid "Queued for Decode" msgstr "" #: ../pan/gui/task-pane.cc:514 msgid "Queued for Encode" msgstr "" #: ../pan/gui/task-pane.cc:515 msgid "Queued" msgstr "" #: ../pan/gui/task-pane.cc:516 msgid "Stopped" msgstr "Dayandırılıb" #: ../pan/gui/task-pane.cc:517 msgid "Removing" msgstr "" #: ../pan/gui/task-pane.cc:546 #, c-format msgid "%d%% Done" msgstr "" #: ../pan/gui/task-pane.cc:552 #, c-format msgid "%d:%02d:%02d Remaining (%d @ %lu KiB/s)" msgstr "" #: ../pan/gui/task-pane.cc:646 ../pan/gui/task-pane.cc:647 msgid "Move To Top" msgstr "" #: ../pan/gui/task-pane.cc:651 ../pan/gui/task-pane.cc:652 msgid "Move To Bottom" msgstr "" #: ../pan/gui/task-pane.cc:656 ../pan/gui/task-pane.cc:657 #, fuzzy msgid "Stop Task" msgstr "Vəzifələr" #: ../pan/gui/task-pane.cc:661 ../pan/gui/task-pane.cc:662 #, fuzzy msgid "Delete Task" msgstr "/_Sil" #: ../pan/gui/task-pane.cc:666 ../pan/gui/task-pane.cc:667 msgid "Restart Task" msgstr "" #: ../pan/gui/task-pane.cc:671 ../pan/gui/task-pane.cc:672 msgid "Change Download Destination" msgstr "" #: ../pan/gui/task-pane.cc:729 #, fuzzy msgid "_Online" msgstr "Xətdə Deyil" #: ../pan/gui/task-pane.cc:746 msgid "Restart Tasks" msgstr "" #: ../pan/gui/task-pane.cc:748 #, fuzzy msgid "Stop Tasks" msgstr "Vəzifələr" #: ../pan/gui/task-pane.cc:750 #, fuzzy msgid "Delete Tasks" msgstr "/_Sil" #: ../pan/gui/url.cc:123 #, c-format msgid "Error starting URL: %s (Command was: %s)" msgstr "" #: ../pan/tasks/decoder.cc:115 #, c-format msgid "Couldn't save file \"%s\": %s" msgstr "" #: ../pan/tasks/decoder.cc:137 ../pan/tasks/encoder.cc:136 msgid "Error initializing uulib" msgstr "" #: ../pan/tasks/decoder.cc:152 ../pan/tasks/socket-impl-gio.cc:352 #: ../pan/tasks/socket-impl-openssl.cc:634 #, c-format msgid "Error reading from %s: %s" msgstr "" #: ../pan/tasks/decoder.cc:192 #, c-format msgid "Saved \"%s\"" msgstr "" #: ../pan/tasks/decoder.cc:199 #, c-format msgid "" "Error saving \"%s\":\n" "%s." msgstr "" #: ../pan/tasks/decoder.cc:314 ../pan/tasks/task-article.cc:350 #, fuzzy, c-format msgid "Decoding %s" msgstr "Oxunur" #: ../pan/tasks/encoder.cc:102 ../pan/tasks/encoder.cc:155 #, c-format msgid "Error loading %s from cache." msgstr "" #: ../pan/tasks/encoder.cc:177 #, fuzzy, c-format msgid "Error encoding %s: %s" msgstr "daxil edir" #: ../pan/tasks/encoder.cc:269 #, fuzzy, c-format msgid "Encoding %s" msgstr "Oxunur" #: ../pan/tasks/nntp.cc:126 #, c-format msgid "%s requires a username, but none is set." msgstr "" #: ../pan/tasks/nntp.cc:139 #, c-format msgid "%s requires a password, but none is set." msgstr "" #: ../pan/tasks/nntp.cc:205 #, c-format msgid "Sending \"%s\" to %s returned an error: %s" msgstr "" #: ../pan/tasks/nntp.cc:228 #, c-format msgid "Sending \"%s\" to %s returned an unrecognized response: \"%s\"" msgstr "" #: ../pan/tasks/nntp-pool.cc:222 #, c-format msgid "Unable to connect to \"%s\"" msgstr "" #: ../pan/tasks/socket-impl-gio.cc:173 ../pan/tasks/socket-impl-gio.cc:211 #: ../pan/tasks/socket-impl-openssl.cc:214 #: ../pan/tasks/socket-impl-openssl.cc:252 #, fuzzy, c-format msgid "Error connecting to \"%s\"" msgstr "daxil edir" #: ../pan/tasks/socket-impl-gio.cc:351 ../pan/tasks/socket-impl-openssl.cc:633 #, fuzzy msgid "Unknown Error" msgstr "Namə'lum" #: ../pan/tasks/task-article.cc:61 ../pan/tasks/task-article.cc:156 #: ../pan/tasks/task-article.cc:159 #, c-format msgid "Saving %s" msgstr "" #: ../pan/tasks/task-article.cc:63 #, fuzzy, c-format msgid "Reading %s" msgstr "Oxunur" #: ../pan/tasks/task-article.cc:322 #, c-format msgid "Article \"%s\" is incomplete -- the news server(s) don't have part %s" msgstr "" #: ../pan/tasks/task-groups.cc:40 #, c-format msgid "Getting group list from \"%s\"" msgstr "" #: ../pan/tasks/task-groups.cc:122 #, c-format msgid "Fetched %lu Groups" msgstr "" #: ../pan/tasks/task-post.cc:35 #, fuzzy, c-format msgid "Posting \"%s\"" msgstr "Profil" #: ../pan/tasks/task-post.cc:76 #, fuzzy, c-format msgid "Posting of \"%s\" failed: %s" msgstr "Profil" #: ../pan/tasks/task-post.cc:81 #, c-format msgid "Posting of \"%s\" succesful: %s" msgstr "" #: ../pan/tasks/task-upload.cc:51 #, fuzzy, c-format msgid "Uploading %s" msgstr "Oxunur" #: ../pan/tasks/task-upload.cc:249 #, c-format msgid "Uploading %s - Part %d of %d" msgstr "" #: ../pan/tasks/task-upload.cc:251 #, c-format msgid "Uploading Message body with Subject \"%s\"" msgstr "" #: ../pan/tasks/task-upload.cc:308 #, c-format msgid "Posting of File %s (Part %d of %d) failed: No Posts allowed by server." msgstr "" #: ../pan/tasks/task-upload.cc:316 #, fuzzy, c-format msgid "Posting of File %s (Part %d of %d) failed: %s" msgstr "Profil" #: ../pan/tasks/task-upload.cc:326 ../pan/tasks/task-upload.cc:333 #, c-format msgid "Posting of file %s (Part %d of %d) succesful: %s" msgstr "" #: ../pan/tasks/task-upload.cc:343 #, fuzzy, c-format msgid "Posting of file %s succesful: %s" msgstr "Profil" #: ../pan/tasks/task-upload.cc:347 #, c-format msgid "" "Posting of file %s not completely successful: Check the log (right-click on " "list item) !" msgstr "" #: ../pan/tasks/task-upload.cc:364 #, c-format msgid "" "Posting of file %s not successful: Check the log (right-click on list item) !" msgstr "" #: ../pan/tasks/task-xover.cc:79 #, c-format msgid "Getting all headers for \"%s\"" msgstr "" #: ../pan/tasks/task-xover.cc:81 #, c-format msgid "Getting new headers for \"%s\"" msgstr "" #. SAMPLE #: ../pan/tasks/task-xover.cc:83 #, c-format msgid "Sampling headers for \"%s\"" msgstr "" #: ../pan/tasks/task-xover.cc:369 #, c-format msgid "%s (%lu parts, %lu articles)" msgstr "" #: ../pan/tasks/task-xoverinfo.cc:78 #, c-format msgid "Getting header counts for \"%s\"" msgstr "" #: ../pan/usenet-utils/filter-info.cc:163 msgid "article doesn't have attachments" msgstr "" #: ../pan/usenet-utils/filter-info.cc:167 msgid "the article has attachments" msgstr "" #: ../pan/usenet-utils/filter-info.cc:171 msgid "the article isn't cached locally" msgstr "" #: ../pan/usenet-utils/filter-info.cc:175 msgid "the article is cached locally" msgstr "" #: ../pan/usenet-utils/filter-info.cc:179 msgid "the article wasn't posted by you" msgstr "" #: ../pan/usenet-utils/filter-info.cc:183 msgid "the article was posted by you" msgstr "" #: ../pan/usenet-utils/filter-info.cc:187 msgid "the article has been read" msgstr "" #: ../pan/usenet-utils/filter-info.cc:191 msgid "the article hasn't been read" msgstr "" #: ../pan/usenet-utils/filter-info.cc:195 #, c-format msgid "the article is less than %ld bytes long" msgstr "" #: ../pan/usenet-utils/filter-info.cc:200 #, c-format msgid "the article is at least %ld bytes long" msgstr "" #: ../pan/usenet-utils/filter-info.cc:205 #, c-format msgid "the article is less than %ld lines long" msgstr "" #: ../pan/usenet-utils/filter-info.cc:210 #, c-format msgid "the article is at least %ld lines long" msgstr "" #: ../pan/usenet-utils/filter-info.cc:215 #, c-format msgid "the article is less than %ld days old" msgstr "" #: ../pan/usenet-utils/filter-info.cc:220 #, c-format msgid "the article is at least %ld days old" msgstr "" #: ../pan/usenet-utils/filter-info.cc:225 #, c-format msgid "the article was posted to less than %ld groups" msgstr "" #: ../pan/usenet-utils/filter-info.cc:230 #, c-format msgid "the article was posted to at least %ld groups" msgstr "" #: ../pan/usenet-utils/filter-info.cc:235 #, c-format msgid "the article's score is less than %ld" msgstr "" #: ../pan/usenet-utils/filter-info.cc:240 #, c-format msgid "the article's score is %ld or higher" msgstr "" #: ../pan/usenet-utils/filter-info.cc:249 #: ../pan/usenet-utils/filter-info.cc:259 #, fuzzy, c-format msgid "%s doesn't contain \"%s\"" msgstr "daxil etmir" #: ../pan/usenet-utils/filter-info.cc:250 #: ../pan/usenet-utils/filter-info.cc:260 #, c-format msgid "%s isn't \"%s\"" msgstr "" #: ../pan/usenet-utils/filter-info.cc:251 #: ../pan/usenet-utils/filter-info.cc:261 #, fuzzy, c-format msgid "%s doesn't begin with \"%s\"" msgstr "bununla sonlanmır" #: ../pan/usenet-utils/filter-info.cc:252 #: ../pan/usenet-utils/filter-info.cc:262 #, fuzzy, c-format msgid "%s doesn't end with \"%s\"" msgstr "bununla sonlanmır" #: ../pan/usenet-utils/filter-info.cc:253 #: ../pan/usenet-utils/filter-info.cc:263 #, c-format msgid "%s doesn't match the regex \"%s\"" msgstr "" #: ../pan/usenet-utils/filter-info.cc:275 #, fuzzy, c-format msgid "%s contains \"%s\"" msgstr "daxil edir" #: ../pan/usenet-utils/filter-info.cc:276 #, c-format msgid "%s is \"%s\"" msgstr "" #: ../pan/usenet-utils/filter-info.cc:277 #, c-format msgid "%s begins with \"%s\"" msgstr "" #: ../pan/usenet-utils/filter-info.cc:278 #, fuzzy, c-format msgid "%s ends with \"%s\"" msgstr "bununla sonlanır" #: ../pan/usenet-utils/filter-info.cc:279 #, c-format msgid "%s matches the regex \"%s\"" msgstr "" #: ../pan/usenet-utils/filter-info.cc:285 msgid "Any of these tests fail:" msgstr "" #: ../pan/usenet-utils/filter-info.cc:292 msgid "All of these tests pass:" msgstr "" #: ../pan/usenet-utils/filter-info.cc:299 msgid "None of these tests pass:" msgstr "" #: ../pan/usenet-utils/filter-info.cc:306 msgid "Any of these tests pass:" msgstr "" #: ../pan/usenet-utils/gnksa.cc:878 #, c-format msgid "No email address provided; generating message-id with domain \"%s\"" msgstr "" #: ../pan/usenet-utils/message-check.cc:124 msgid "Warning: Reply seems to be top-posted." msgstr "" #: ../pan/usenet-utils/message-check.cc:145 msgid "Warning: The signature marker should be \"-- \", not \"--\"." msgstr "" #: ../pan/usenet-utils/message-check.cc:162 msgid "Warning: Signature prefix with no signature." msgstr "" #: ../pan/usenet-utils/message-check.cc:167 msgid "Warning: Signature is more than 4 lines long." msgstr "" #: ../pan/usenet-utils/message-check.cc:172 msgid "Warning: Signature is more than 80 characters wide." msgstr "" #: ../pan/usenet-utils/message-check.cc:198 #, c-format msgid "Warning: %d line is more than 80 characters wide." msgid_plural "Warning: %d lines are more than 80 characters wide." msgstr[0] "" msgstr[1] "" #: ../pan/usenet-utils/message-check.cc:223 msgid "Error: Message is empty." msgstr "" #: ../pan/usenet-utils/message-check.cc:258 msgid "Warning: The message is entirely quoted text!" msgstr "" #: ../pan/usenet-utils/message-check.cc:259 msgid "Warning: The message is mostly quoted text." msgstr "" #: ../pan/usenet-utils/message-check.cc:309 msgid "Error: Message appears to have no new content." msgstr "" #: ../pan/usenet-utils/message-check.cc:344 #: ../pan/usenet-utils/message-check.cc:383 #, c-format msgid "" "Warning: The posting profile's server doesn't carry newsgroup\n" "\t\"%s\".\n" "\tIf the group name is correct, switch profiles in the \"From:\"\n" "\tline or edit the profile with \"Edit|Manage Posting Profiles\"." msgstr "" #: ../pan/usenet-utils/message-check.cc:355 msgid "Warning: Following-Up to too many groups." msgstr "" #: ../pan/usenet-utils/message-check.cc:366 msgid "Error: No Subject specified." msgstr "" #: ../pan/usenet-utils/message-check.cc:395 #, c-format msgid "Warning: Group \"%s\" is read-only." msgstr "" #: ../pan/usenet-utils/message-check.cc:404 msgid "Error: Posting to a very large number of groups." msgstr "" #: ../pan/usenet-utils/message-check.cc:409 msgid "Warning: Posting to a large number of groups." msgstr "" #: ../pan/usenet-utils/message-check.cc:416 msgid "Warning: Crossposting without setting Followup-To header." msgstr "" #: ../pan/usenet-utils/message-check.cc:441 #, fuzzy msgid "Error: Bad email address." msgstr "e_Poçt Ünvanı:" #: ../pan/usenet-utils/message-check.cc:450 msgid "Warning: Most newsgroups frown upon HTML posts." msgstr "" #: ../pan/usenet-utils/message-check.cc:486 msgid "Error: No Recipients." msgstr "" #: ../pan/usenet-utils/scorefile.cc:304 #, c-format msgid "" "Error reading score in %*.*s, line %d: expected 'Expires: MM/DD/YYYY' or " "'Expires: DD-MM-YYYY'." msgstr "" #: ../pan/usenet-utils/scorefile.cc:307 #, c-format msgid "Expired old score from %*.*s, line %d" msgstr "" #: ../pan/usenet-utils/scorefile.cc:380 #, c-format msgid "Error reading score in %*.*s, line %d: unexpected line." msgstr "" #: ../pan/usenet-utils/scorefile.cc:428 #, c-format msgid "Read %lu scoring rules in %lu sections from \"%s\"" msgstr "" #: ../pan/usenet-utils/ssl-utils.h:199 #, c-format msgid "Error printing the server certificate for '%s'" msgstr "" #: ../pan/usenet-utils/ssl-utils.h:216 #, c-format msgid "" "The current server '%s' sent this security certificate :\n" "\n" msgstr "" #: ../pan/usenet-utils/ssl-utils.h:217 #, c-format msgid "" "Certificate information for server '%s' :\n" "\n" msgstr "" #: ../pan/usenet-utils/ssl-utils.h:219 #, c-format msgid "" "%sIssuer information:\n" "%s\n" "Valid until : %s\n" "\n" "Not valid before : %s\n" "\n" msgstr "" #: ../pan/usenet-utils/text-massager.cc:397 msgid "> [quoted text muted]" msgstr "" #, fuzzy #~ msgid "_Toggle Flag on for Thread" #~ msgstr "Rədd Edilmiş" #, fuzzy #~ msgid "Error!" #~ msgstr "Xəta" #, fuzzy #~ msgid "_Groups" #~ msgstr "Qruplar" #, fuzzy #~ msgid "Clear Body Pane" #~ msgstr "İçindəkilər" #, fuzzy #~ msgid "Next Unread Group" #~ msgstr "Qruplar" #, fuzzy #~ msgid "Next Group" #~ msgstr "Qruplar" #, fuzzy #~ msgid "_Plonk Author" #~ msgstr "Müəllif" #, fuzzy #~ msgid "Reply to Author" #~ msgstr "Müəllif" #, fuzzy #~ msgid "Central European (ISO-8859-2)" #~ msgstr "Mərkəzi Avropa dilləri" #, fuzzy #~ msgid "Central European (Windows-1250)" #~ msgstr "Mərkəzi Avropa dilləri" #, fuzzy #~ msgid "Cyrillic (KOI8-R)" #~ msgstr "Kiril dilləri" #, fuzzy #~ msgid "Pan: " #~ msgstr "Vəzifələr" #, fuzzy #~ msgid "_Close" #~ msgstr "Rənglər" #, fuzzy #~ msgid "_Paste" #~ msgstr "Tarix" #~ msgid "Western" #~ msgstr "Qərb dilləri" #, fuzzy #~ msgid "Editors" #~ msgstr "Editor" #, fuzzy #~ msgid "Threads" #~ msgstr "Oxunmamış" #, fuzzy #~ msgid "Path" #~ msgstr "Müəllif" #, fuzzy #~ msgid "_Path:" #~ msgstr "Tarix" #, fuzzy #~ msgid "Group Management" #~ msgstr "Qrup" #, fuzzy #~ msgid "For" #~ msgstr "Qovluqlar" #~ msgid "Status" #~ msgstr "Vəziyyət" #, fuzzy #~ msgid "_Posting" #~ msgstr "Profil" #, fuzzy #~ msgid "subject" #~ msgstr "Mövzu" #~ msgid "Change" #~ msgstr "Dəyişdir" #, fuzzy #~ msgid "Active" #~ msgstr "Gedişlər" #~ msgid "Fin_d:" #~ msgstr "A_xtar:" #~ msgid "_Organization:" #~ msgstr "_Təşkilat:" #~ msgid "default" #~ msgstr "əsas" #~ msgid "Login" #~ msgstr "Giriş" #~ msgid "License" #~ msgstr "Lisenziya" #~ msgid "Authors" #~ msgstr "Müəlliflər" #~ msgid "Invert" #~ msgstr "Tərs çevir" #~ msgid "does not start with" #~ msgstr "bununla başlamır" #~ msgid "New" #~ msgstr "Yeni" #~ msgid "High" #~ msgstr "Yüksək" #~ msgid "Medium" #~ msgstr "Orta" #~ msgid "Low" #~ msgstr "Alçaq" #~ msgid "high" #~ msgstr "yüksək" #~ msgid "zero" #~ msgstr "sıfır" #~ msgid "Total" #~ msgstr "Toplam" #~ msgid "Description" #~ msgstr "İzahat" #~ msgid "Net" #~ msgstr "Şəbəkə" #~ msgid "/_Tools" #~ msgstr "/_Vasitələr" #~ msgid "/_Help" #~ msgstr "/_Yardım" #~ msgid "Time" #~ msgstr "Vaxt" #~ msgid "_Browse..." #~ msgstr "_Gəz..." #~ msgid "Font Family" #~ msgstr "Yazı Növü Ailəsi" #~ msgid "Rules" #~ msgstr "Qaydalar" #~ msgid "\"%s\"" #~ msgstr "\"%s\"" pan-0.162/po/bg.po000066400000000000000000003135671475412772400137020ustar00rootroot00000000000000# Bulgarian translation of pan2 po-file. # Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc. # This file is distributed under the same license as the pan package. # Yavor Doganov , 2005, 2006, 2007. # # # msgid "" msgstr "" "Project-Id-Version: pan2 trunk\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-04-04 20:58+0200\n" "PO-Revision-Date: 2007-11-08 07:04+0200\n" "Last-Translator: Yavor Doganov \n" "Language-Team: Bulgarian \n" "Language: bg\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" #: ../pan.desktop.in.h:1 msgid "Pan Newsreader" msgstr "Четец на новини (Pan)" #: ../pan.desktop.in.h:2 msgid "Read and Post Usenet Articles" msgstr "" #: ../pan/data/article-cache.cc:143 ../pan/data/encode-cache.cc:62 #, c-format msgid "Error opening directory: \"%s\": %s" msgstr "Грешка при отваряне на папка „%s“: %s)" #: ../pan/data/article-cache.cc:231 ../pan/data/article-cache.cc:242 #: ../pan/data-impl/data-io.cc:187 ../pan/data-impl/data-io.cc:211 #: ../pan/gui/post-ui.cc:1639 #, c-format msgid "Unable to save \"%s\" %s" msgstr "Неуспех при запазването на „%s“ %s" #: ../pan/data/article-cache.cc:355 #, c-format msgid "Error opening file \"%s\" %s" msgstr "Грешка при отваряне на файл „%s“: %s" #: ../pan/data/article-cache.cc:386 ../pan/data-impl/profiles.cc:174 #: ../pan/data-impl/server.cc:436 ../pan/general/file-util.cc:298 #: ../pan/gui/post-ui.cc:609 ../pan/gui/task-pane.cc:691 #, c-format msgid "Error reading file \"%s\": %s" msgstr "Грешка при четене на файл „%s“: %s" #: ../pan/data/cert-store.cc:238 #, fuzzy, c-format msgid "Error opening SSL certificate directory: \"%s\": %s" msgstr "Грешка при отваряне на папка „%s“: %s)" #: ../pan/data/cert-store.cc:270 #, c-format msgid "Succesfully added %d SSL PEM certificate(s) to Certificate Store." msgstr "" #. load_group_descriptions (*_data_io); #: ../pan/data-impl/data-impl.cc:109 #, c-format msgid "Loaded data backend in %.1f seconds" msgstr "Ядрото за данни е заредено за %.1f секунди" #: ../pan/data-impl/data-impl.cc:140 msgid "Pan newsreader server passwords" msgstr "" #: ../pan/data-impl/groups.cc:94 #, c-format msgid "Skipping newsrc file for server \"%s\"" msgstr "Пропускане на файл newsrc за сървър „%s“" #: ../pan/data-impl/headers.cc:606 #, c-format msgid "Expired %lu old articles from \"%s\"" msgstr "%lu стари статии от „%s“ са отбелязани с изтекла валидност" #: ../pan/data-impl/headers.cc:613 #, c-format msgid "" "Unsupported data version for %s headers: %d.\n" "Are you running an old version of Pan by accident?" msgstr "" "Неподдържана версия на данни за %s заглавия: %d.\n" "Да не би случайно да ползвате стара версия на Pan?" #: ../pan/data-impl/headers.cc:628 #, c-format msgid "Loaded %lu articles for \"%s\" in %.1f seconds (%.0f per second)" msgstr "Заредени са %lu статии за „%s“ за %.1f секунди (%.0f статии/сек)" #: ../pan/data-impl/headers.cc:857 #, fuzzy, c-format msgid "" "Saved %lu parts, %lu articles in \"%s\" in %.1f seconds (%.0f articles/sec)" msgstr "" "Запазени са %lu части, %lu статии в „%s“ за %.1f секунди (%.0f статии/сек)" #: ../pan/data-impl/headers.cc:1173 #, c-format msgid "Added %lu articles to %s." msgstr "Добавени са %lu статии към „%s“." #: ../pan/data-impl/server.cc:234 #, c-format msgid "There seems to be no Password set for Server %s." msgstr "" #: ../pan/data-impl/server.cc:238 msgid "The Gnome keyring denied access to the Passwords." msgstr "" #: ../pan/data-impl/xover.cc:239 #, c-format msgid "Error reading from %s: unknown group \"%s\"" msgstr "Грешка при четене от %s: непозната група „%s“" #. build the locale strings #: ../pan/general/e-util.cc:213 msgid "%l:%M %p" msgstr "%H:%M" #: ../pan/general/e-util.cc:214 msgid "Today %l:%M %p" msgstr "Днес %H:%M" #: ../pan/general/e-util.cc:215 msgid "%a %l:%M %p" msgstr "%a %H:%M" #: ../pan/general/e-util.cc:216 msgid "%b %d %l:%M %p" msgstr "%d %b %H:%M" #: ../pan/general/e-util.cc:217 msgid "%b %d %Y" msgstr "%d %b %Y" #: ../pan/general/e-util.cc:242 msgid "?" msgstr "?" #: ../pan/general/text-match.cc:193 #, c-format msgid "Can't use regular expression \"%s\": %s" msgstr "Не може да се използва регулярен израз „%s“: %s" #: ../pan/general/utf8-utils.cc:213 msgid "Couldn't determine article encoding. Non-UTF8 characters were removed." msgstr "" "Неуспех при определянето на кодирането на статията. Всички знаци, които не " "са UTF-8, са премахнати." #: ../pan/gui/actions.cc:274 ../pan/gui/post-ui.cc:417 msgid "_File" msgstr "_Файл" #: ../pan/gui/actions.cc:275 ../pan/gui/post-ui.cc:418 msgid "_Edit" msgstr "_Редактиране" #: ../pan/gui/actions.cc:276 ../pan/gui/prefs-ui.cc:1064 msgid "_Layout" msgstr "Изг_лед" #: ../pan/gui/actions.cc:277 msgid "_Group Pane" msgstr "Плот с _групи" #: ../pan/gui/actions.cc:278 msgid "_Header Pane" msgstr "Плот със _заглавия" #: ../pan/gui/actions.cc:279 msgid "_Body Pane" msgstr "Плот със _статии" #: ../pan/gui/actions.cc:280 msgid "_View" msgstr "_Изглед" #: ../pan/gui/actions.cc:281 msgid "Filte_r" msgstr "_Филтър" #: ../pan/gui/actions.cc:282 msgid "_Go" msgstr "_Преход" #: ../pan/gui/actions.cc:283 ../pan/gui/prefs-ui.cc:1091 msgid "_Actions" msgstr "_Действия" #: ../pan/gui/actions.cc:284 msgid "_Articles" msgstr "_Статии" #: ../pan/gui/actions.cc:285 msgid "G_roups" msgstr "_Групи" #: ../pan/gui/actions.cc:286 ../pan/gui/actions.cc:287 msgid "_Post" msgstr "И_зпращане" #: ../pan/gui/actions.cc:288 msgid "_Help" msgstr "Помо_щ" #: ../pan/gui/actions.cc:291 msgid "_Read Group" msgstr "_Четене на група" #: ../pan/gui/actions.cc:292 #, fuzzy msgid "Read Group" msgstr "_Четене на група" #: ../pan/gui/actions.cc:296 #, fuzzy msgid "_Mark Selected Groups Read" msgstr "Отбелязване на избраните групи като _прочетени" #: ../pan/gui/actions.cc:297 #, fuzzy msgid "Mark Selected Groups Read" msgstr "Отбелязване на избраните групи като _прочетени" #: ../pan/gui/actions.cc:301 msgid "_Delete Selected Groups' Articles" msgstr "_Изтриване на статиите на избраната група" #: ../pan/gui/actions.cc:302 #, fuzzy msgid "Delete Selected Groups' Articles" msgstr "_Изтриване на статиите на избраната група" #: ../pan/gui/actions.cc:306 msgid "Get New _Headers in Selected Groups" msgstr "Изтегляне на нови заглавия от избраните _групи" #: ../pan/gui/actions.cc:307 #, fuzzy msgid "Get New Headers in Selected Groups" msgstr "Изтегляне на нови заглавия от избраните _групи" #: ../pan/gui/actions.cc:311 ../pan/gui/actions.cc:316 msgid "Get New _Headers in Subscribed Groups" msgstr "Изтегляне на нови заглавия от а_бонираните групи" #: ../pan/gui/actions.cc:312 ../pan/gui/actions.cc:317 #, fuzzy msgid "Get New Headers in Subscribed Groups" msgstr "Изтегляне на нови заглавия от а_бонираните групи" #: ../pan/gui/actions.cc:321 msgid "Get _Headers..." msgstr "Изтегляне на _заглавия..." #: ../pan/gui/actions.cc:322 #, fuzzy msgid "Get Headers..." msgstr "Изтегляне на _заглавия..." #: ../pan/gui/actions.cc:326 ../pan/gui/actions.cc:327 msgid "Refresh Group List" msgstr "Обновяване на списъка с групи" #: ../pan/gui/actions.cc:331 msgid "_Subscribe" msgstr "_Абониране" #: ../pan/gui/actions.cc:332 #, fuzzy msgid "Subscribe" msgstr "_Абониране" #: ../pan/gui/actions.cc:336 msgid "_Unsubscribe" msgstr "_Отписване" #: ../pan/gui/actions.cc:337 #, fuzzy msgid "Unsubscribe" msgstr "_Отписване" #: ../pan/gui/actions.cc:341 msgid "_Save Articles..." msgstr "_Запазване на статии..." #: ../pan/gui/actions.cc:342 #, fuzzy msgid "Save Articles..." msgstr "_Запазване на статии..." #: ../pan/gui/actions.cc:346 #, fuzzy msgid "Save Articles from Selected _NZB..." msgstr "Запазване на статии от този файл _NZB..." #: ../pan/gui/actions.cc:347 #, fuzzy msgid "Save Articles from Selected NZB" msgstr "Запазване на статии от този файл _NZB..." #: ../pan/gui/actions.cc:351 #, fuzzy msgid "Save Articles to an NZB _File..." msgstr "Запазване на статии от този файл _NZB..." #: ../pan/gui/actions.cc:352 #, fuzzy msgid "Save Articles to an NZB File" msgstr "Запазване на статии от този файл _NZB..." #: ../pan/gui/actions.cc:356 ../pan/gui/actions.cc:357 msgid "Print" msgstr "" #: ../pan/gui/actions.cc:361 msgid "_Import NZB Files..." msgstr "_Внасяне на файлове, формат NZB..." #: ../pan/gui/actions.cc:366 msgid "_Cancel Last Task" msgstr "_Отмяна на последната задача" #: ../pan/gui/actions.cc:371 msgid "_Task Manager" msgstr "_Мениджър на задачите" #: ../pan/gui/actions.cc:376 msgid "_Event Log" msgstr "_Дневник на събитията" #: ../pan/gui/actions.cc:381 msgid "_Quit" msgstr "_Спиране на програмата" #: ../pan/gui/actions.cc:386 msgid "Select _All Articles" msgstr "Избиране на всички _статии" #: ../pan/gui/actions.cc:391 msgid "_Deselect All Articles" msgstr "Премахване на избора на _всички статии" #: ../pan/gui/actions.cc:396 msgid "Add Su_bthreads to Selection" msgstr "_Добавяне на поднишки към избора" #: ../pan/gui/actions.cc:401 msgid "Add _Threads to Selection" msgstr "Добавяне на ни_шки към избора" #: ../pan/gui/actions.cc:406 msgid "Add _Similar Articles to Selection" msgstr "Добавяне на _подобни статии към избора" #: ../pan/gui/actions.cc:411 msgid "Select Article _Body" msgstr "Избиране на т_ялото на статията" #: ../pan/gui/actions.cc:416 msgid "Edit _Preferences" msgstr "Редактиране на _настройките" #: ../pan/gui/actions.cc:421 msgid "Edit Selected _Group's Preferences" msgstr "_Редактиране на настройките на групата" #: ../pan/gui/actions.cc:426 ../pan/gui/post-ui.cc:434 msgid "Edit P_osting Profiles" msgstr "Редактиране на про_фили за изпращане" #: ../pan/gui/actions.cc:431 msgid "Edit _News Servers" msgstr "Редактиране на с_ървъри за новини" #: ../pan/gui/actions.cc:436 msgid "Jump to _Group Tab" msgstr "Отиване на подпрозорец за _група" #: ../pan/gui/actions.cc:441 msgid "Jump to _Header Tab" msgstr "Отиване на подпрозорец за _заглавия" #: ../pan/gui/actions.cc:446 msgid "Jump to _Body Tab" msgstr "Отиване на подпрозорец за _статия" #: ../pan/gui/actions.cc:451 msgid "_Rot13 Selected Text" msgstr "Обработване на избрания текст с „_Rot13“" #: ../pan/gui/actions.cc:456 msgid "Clear _Header Pane" msgstr "Изчистване на плота със _заглавия" #: ../pan/gui/actions.cc:461 msgid "Clear _Body Pane" msgstr "Изчистване на плота със _статии" #: ../pan/gui/actions.cc:466 msgid "Cache Article" msgstr "Кеширане на статията" #: ../pan/gui/actions.cc:471 msgid "Read Article" msgstr "Четене на статията" #: ../pan/gui/actions.cc:476 msgid "Show Article Information" msgstr "Показване на информация за статията" #: ../pan/gui/actions.cc:481 msgid "Read _More" msgstr "Четене _напред" #: ../pan/gui/actions.cc:482 #, fuzzy msgid "Read More" msgstr "Четене _напред" #: ../pan/gui/actions.cc:486 msgid "Read _Back" msgstr "Четене на_зад" #: ../pan/gui/actions.cc:487 #, fuzzy msgid "Read Back" msgstr "Четене на_зад" #: ../pan/gui/actions.cc:491 msgid "Next _Unread Group" msgstr "_Следваща непрочетена група" #: ../pan/gui/actions.cc:496 msgid "Next _Group" msgstr "Следваща _група" #: ../pan/gui/actions.cc:501 msgid "Next _Unread Article" msgstr "С_ледваща непрочетена статия" #: ../pan/gui/actions.cc:502 #, fuzzy msgid "Next Unread Article" msgstr "С_ледваща непрочетена статия" #: ../pan/gui/actions.cc:506 msgid "Next _Article" msgstr "Следваща с_татия" #: ../pan/gui/actions.cc:507 #, fuzzy msgid "Next Article" msgstr "Следваща с_татия" #: ../pan/gui/actions.cc:511 msgid "Next _Watched Article" msgstr "Следваща сл_едена статия" #: ../pan/gui/actions.cc:516 msgid "Next Unread _Thread" msgstr "Следваща непрочетена ни_шка" #: ../pan/gui/actions.cc:517 #, fuzzy msgid "Next Unread Thread" msgstr "Следваща непрочетена ни_шка" #: ../pan/gui/actions.cc:521 msgid "Next Threa_d" msgstr "Следваща нишк_а" #: ../pan/gui/actions.cc:526 msgid "Pre_vious Article" msgstr "Пре_дходна статия" #: ../pan/gui/actions.cc:531 msgid "Previous _Thread" msgstr "Предходна ниш_ка" #: ../pan/gui/actions.cc:536 msgid "_Parent Article" msgstr "На_чална статия" #: ../pan/gui/actions.cc:541 msgid "Ignore _Author" msgstr "Пренебрегване на _автора" #: ../pan/gui/actions.cc:545 msgid "_Watch Thread" msgstr "_Следене на нишката" #: ../pan/gui/actions.cc:550 msgid "_Ignore Thread" msgstr "Прене_брегване на нишката" #: ../pan/gui/actions.cc:555 ../pan/gui/actions.cc:556 #, fuzzy msgid "_Toggle Flag On/Off for Thread" msgstr "_Следене на нишката" #: ../pan/gui/actions.cc:560 ../pan/gui/actions.cc:561 #, fuzzy msgid "_Turn Flag Off for Thread" msgstr "_Следене на нишката" #: ../pan/gui/actions.cc:565 ../pan/gui/actions.cc:566 #, fuzzy msgid "_Select All Flagged Threads" msgstr "Следваща непрочетена ни_шка" #: ../pan/gui/actions.cc:570 ../pan/gui/actions.cc:571 #, fuzzy msgid "_Go to Next Flagged Thread" msgstr "Следваща непрочетена ни_шка" #: ../pan/gui/actions.cc:575 ../pan/gui/actions.cc:576 #, fuzzy msgid "_Go to Last Flagged Thread" msgstr "Следваща непрочетена ни_шка" #: ../pan/gui/actions.cc:580 ../pan/gui/actions.cc:581 #, fuzzy msgid "_Invert Selection" msgstr "Добавяне на ни_шки към избора" #: ../pan/gui/actions.cc:585 msgid "Edit Article's Watch/Ignore/Score..." msgstr "Редактиране на следенето/пренебрегването/точките на статията..." #: ../pan/gui/actions.cc:590 #, fuzzy msgid "Add a _Scoring Rule..." msgstr "Добавяне на _правило за точкуване..." #: ../pan/gui/actions.cc:595 msgid "Cance_l Article..." msgstr "О_тменяне на статия..." #: ../pan/gui/actions.cc:600 msgid "_Supersede Article..." msgstr "_Заменяне на статия..." #: ../pan/gui/actions.cc:605 msgid "_Delete Article" msgstr "_Изтриване на статия" #: ../pan/gui/actions.cc:610 msgid "Clear Article Cache" msgstr "Изчистване на кеша от статии" #: ../pan/gui/actions.cc:615 msgid "_Mark Article as Read" msgstr "_Отбелязване на статията като прочетена" #: ../pan/gui/actions.cc:620 msgid "Mark Article as _Unread" msgstr "Отбелязване на статията като _непрочетена" #: ../pan/gui/actions.cc:626 #, fuzzy msgid "_Mark Thread as Read" msgstr "_Отбелязване на статията като прочетена" #: ../pan/gui/actions.cc:631 #, fuzzy msgid "Mark Thread as _Unread" msgstr "Отбелязване на статията като _непрочетена" #: ../pan/gui/actions.cc:636 msgid "_Post to Newsgroup" msgstr "_Изпращане до групата за новини" #: ../pan/gui/actions.cc:637 #, fuzzy msgid "Post to Newsgroup" msgstr "_Изпращане до групата за новини" #: ../pan/gui/actions.cc:641 msgid "_Followup to Newsgroup" msgstr "_Отговор до групата за новини" #: ../pan/gui/actions.cc:642 #, fuzzy msgid "Followup to Newsgroup" msgstr "_Отговор до групата за новини" #: ../pan/gui/actions.cc:646 msgid "_Reply to Author in Mail" msgstr "Отговор до _автора по е-поща" #: ../pan/gui/actions.cc:651 msgid "_Pan Home Page" msgstr "_Страница на Pan в Интернет" #: ../pan/gui/actions.cc:656 msgid "Give _Feedback or Report a Bug..." msgstr "_Докладване за грешка или обратна връзка..." #: ../pan/gui/actions.cc:661 msgid "_Tip Jar..." msgstr "_Буркан с бакшиши..." #: ../pan/gui/actions.cc:666 msgid "_About" msgstr "_Относно" #: ../pan/gui/actions.cc:671 msgid "Edit _SSL Certificates" msgstr "" #: ../pan/gui/actions.cc:685 msgid "_Thread Headers" msgstr "_Показване с нишки" #: ../pan/gui/actions.cc:686 msgid "_Wrap Article Body" msgstr "Ре_жим на пренасяне в тялото на съобщението" #: ../pan/gui/actions.cc:687 msgid "Mute _Quoted Text" msgstr "Изключване на _цитиран текст" #: ../pan/gui/actions.cc:688 msgid "Show All _Headers in Body Pane" msgstr "Показване на _всички заглавия" #: ../pan/gui/actions.cc:689 msgid "Show _Smilies as Graphics" msgstr "Графично изобразяване на _емотикони" #: ../pan/gui/actions.cc:690 msgid "Show *Bold*, __Underlined__, and /Italic/" msgstr "Показване на *получер*, __подчертан__ и /курсив/" #: ../pan/gui/actions.cc:691 msgid "Size Pictures to _Fit" msgstr "_Оразмеряване на снимките за вместване" #: ../pan/gui/actions.cc:692 msgid "Use _Monospace Font" msgstr "Използване на равно_широк шрифт:" #: ../pan/gui/actions.cc:693 msgid "Set Focus to Images" msgstr "Изместване на фокуса на изображенията" #: ../pan/gui/actions.cc:694 msgid "Highlight _URLs" msgstr "" #: ../pan/gui/actions.cc:697 msgid "_Work Online" msgstr "_Работа в режим „Включен“" #: ../pan/gui/actions.cc:698 msgid "_Tabbed Layout" msgstr "_Изглед с подпрозорци" #: ../pan/gui/actions.cc:699 msgid "Show Group _Pane" msgstr "Показване на _плот с групи" #: ../pan/gui/actions.cc:700 msgid "Show Hea_der Pane" msgstr "Показване на плот със заг_лавия" #: ../pan/gui/actions.cc:701 msgid "Show Bod_y Pane" msgstr "Показване на плот със с_ъобщения" #: ../pan/gui/actions.cc:702 msgid "Show _Toolbar" msgstr "_Показване на лентата с инструменти" #: ../pan/gui/actions.cc:703 msgid "Abbreviate Group Names" msgstr "Съкращаване на имената на групите" #: ../pan/gui/actions.cc:705 msgid "Match Only _Unread Articles" msgstr "С_ъвпадане само на непрочетени статии" #: ../pan/gui/actions.cc:705 #, fuzzy msgid "Match Only Unread Articles" msgstr "С_ъвпадане само на непрочетени статии" #: ../pan/gui/actions.cc:706 msgid "Match Only _Cached Articles" msgstr "Съвпадане само на _кеширани статии" #: ../pan/gui/actions.cc:706 #, fuzzy msgid "Match Only Cached Articles" msgstr "Съвпадане само на _кеширани статии" #: ../pan/gui/actions.cc:707 msgid "Match Only _Complete Articles" msgstr "Съвпадане само на пъ_лни статии" #: ../pan/gui/actions.cc:707 #, fuzzy msgid "Match Only Complete Articles" msgstr "Съвпадане само на пъ_лни статии" #: ../pan/gui/actions.cc:708 msgid "Match Only _My Articles" msgstr "Съвпадане само на _мои статии" #: ../pan/gui/actions.cc:708 #, fuzzy msgid "Match Only My Articles" msgstr "Съвпадане само на _мои статии" #: ../pan/gui/actions.cc:709 msgid "Match Only _Watched Articles" msgstr "Съвпадане само на _следени статии" #: ../pan/gui/actions.cc:709 #, fuzzy msgid "Match Only Watched Articles" msgstr "Съвпадане само на _следени статии" #: ../pan/gui/actions.cc:711 msgid "Match Scores of 9999 (_Watched)" msgstr "Съвпадане на точки 9999 (Сл_едени)" #: ../pan/gui/actions.cc:712 msgid "Match Scores of 5000...9998 (_High)" msgstr "Съвпадане на точки 5000...9998 (_Високи)" #: ../pan/gui/actions.cc:713 msgid "Match Scores of 1...4999 (Me_dium)" msgstr "Съвпадане на точки 1...4999 (С_редни)" #: ../pan/gui/actions.cc:714 msgid "Match Scores of 0 (_Normal)" msgstr "Съвпадане на точки 0 (Норм_ални)" #: ../pan/gui/actions.cc:715 msgid "Match Scores of -9998...-1 (_Low)" msgstr "Съвпадане на точки -9998...-1 (Н_иски)" #: ../pan/gui/actions.cc:716 msgid "Match Scores of -9999 (_Ignored)" msgstr "Съвпадане на точки -9999 (Прене_брегнати)" #: ../pan/gui/actions.cc:718 msgid "Enable/Disable All _Rules" msgstr "" #: ../pan/gui/actions.cc:744 msgid "Show Matching _Articles" msgstr "Показване на съвпадащите _статии" #: ../pan/gui/actions.cc:745 msgid "Show Matching Articles' _Threads" msgstr "Показване на _нишките на съвпадащите статии" #: ../pan/gui/actions.cc:746 msgid "Show Matching Articles' _Subthreads" msgstr "Показване на по_днишките на съвпадащите статии" #: ../pan/gui/body-pane.cc:1011 #, fuzzy, c-format msgid "Unnamed File" msgstr "Файл с подпис" #: ../pan/gui/body-pane.cc:1092 ../pan/gui/gui.cc:1864 #: ../pan/gui/header-pane.cc:1188 ../pan/gui/header-pane.cc:1617 #: ../pan/gui/post-ui.cc:2496 ../pan/gui/prefs-ui.cc:833 #: ../pan/gui/score-add-ui.cc:139 msgid "Subject" msgstr "Тема" #: ../pan/gui/body-pane.cc:1094 ../pan/gui/gui.cc:1864 msgid "From" msgstr "От" #: ../pan/gui/body-pane.cc:1096 ../pan/gui/gui.cc:1865 #: ../pan/gui/header-pane.cc:1695 ../pan/gui/log-ui.cc:305 #: ../pan/gui/prefs-ui.cc:829 msgid "Date" msgstr "Дата" #: ../pan/gui/body-pane.cc:1103 msgid "Newsgroups" msgstr "Групи за новини" #: ../pan/gui/body-pane.cc:1108 msgid "Followup-To" msgstr "Отговор" #: ../pan/gui/body-pane.cc:1118 msgid "Reply-To" msgstr "Отговор-до" #: ../pan/gui/body-pane.cc:1160 msgid " from " msgstr " от " #: ../pan/gui/body-pane.cc:1162 msgid " at " msgstr " на " #: ../pan/gui/body-pane.cc:1264 #, c-format msgid "" "This is a PGP-Signed message.\n" "\n" "Signer : %s ('%s')\n" "Valid until : %s\n" "Created on : %s" msgstr "" #: ../pan/gui/body-pane.cc:1269 msgid "always" msgstr "" #: ../pan/gui/body-pane.cc:1485 msgid "Copy _URL" msgstr "Копиране на _URL" #: ../pan/gui/body-pane.cc:1680 #, fuzzy msgid "Save attachment as ...." msgstr "Запазване на прикрепените файлове" #: ../pan/gui/body-pane.cc:1683 #, fuzzy msgid "Save all attachments" msgstr "Запазване на прикрепените файлове" #. add a toolbar for attachments #: ../pan/gui/body-pane.cc:1753 #, fuzzy msgid "Attachments" msgstr "Запазване на прикрепените файлове" #. update the titlebar #: ../pan/gui/dl-headers-ui.cc:106 ../pan/gui/gui.cc:973 #: ../pan/gui/gui.cc:1592 ../pan/gui/gui.cc:1893 #: ../pan/gui/score-add-ui.cc:602 msgid "Pan" msgstr "Pan" #: ../pan/gui/dl-headers-ui.cc:112 #, fuzzy, c-format msgid "%d Group" msgid_plural "%d Groups" msgstr[0] "%d групи" msgstr[1] "%d групи" #: ../pan/gui/dl-headers-ui.cc:135 msgid "Get the last N _days' headers: " msgstr "Изтегляне на заглавията от последните N _дни: " #: ../pan/gui/dl-headers-ui.cc:143 msgid "Get _new headers" msgstr "Изтегляне на нови _заглавия" #: ../pan/gui/dl-headers-ui.cc:147 msgid "Get _all headers" msgstr "Изтегляне на _всички заглавия" #: ../pan/gui/dl-headers-ui.cc:151 msgid "Get the _latest N headers: " msgstr "Изтегляне на _последните N заглавия: " #: ../pan/gui/e-action-combo-box.c:388 ../pan/gui/prefs-ui.cc:826 msgid "Action" msgstr "Действие" #: ../pan/gui/e-action-combo-box.c:389 msgid "A GtkRadioAction" msgstr "" #: ../pan/gui/e-charset.c:51 ../pan/gui/task-pane.cc:518 msgid "Unknown" msgstr "Непознат" #: ../pan/gui/e-charset.c:52 msgid "Arabic" msgstr "" #: ../pan/gui/e-charset.c:53 msgid "Baltic" msgstr "Балтийско" #: ../pan/gui/e-charset.c:54 msgid "Central European" msgstr "Централно-европейско" #: ../pan/gui/e-charset.c:55 msgid "Chinese" msgstr "Китайско" #: ../pan/gui/e-charset.c:56 msgid "Cyrillic" msgstr "Кирилица" #: ../pan/gui/e-charset.c:57 msgid "Greek" msgstr "Гръцко" #: ../pan/gui/e-charset.c:58 msgid "Hebrew" msgstr "Иврит" #: ../pan/gui/e-charset.c:59 msgid "Japanese" msgstr "Японско" #: ../pan/gui/e-charset.c:60 msgid "Korean" msgstr "Корейско" #: ../pan/gui/e-charset.c:61 msgid "Thai" msgstr "Тайско" #: ../pan/gui/e-charset.c:62 msgid "Turkish" msgstr "Турско" #: ../pan/gui/e-charset.c:63 msgid "Unicode" msgstr "Уникод" #: ../pan/gui/e-charset.c:64 msgid "Western European" msgstr "Западноевропейско" #: ../pan/gui/e-charset.c:65 msgid "Western European, New" msgstr "Западноевропейско, ново" #: ../pan/gui/e-charset.c:84 ../pan/gui/e-charset.c:85 #: ../pan/gui/e-charset.c:86 msgid "Traditional" msgstr "традиционно" #: ../pan/gui/e-charset.c:87 ../pan/gui/e-charset.c:88 #: ../pan/gui/e-charset.c:89 ../pan/gui/e-charset.c:90 msgid "Simplified" msgstr "опростено" #: ../pan/gui/e-charset.c:93 msgid "Ukrainian" msgstr "Украинско" #: ../pan/gui/e-charset.c:96 msgid "Visual" msgstr "визуално" #: ../pan/gui/e-charset-combo-box.c:93 ../pan/gui/gui.cc:2058 #: ../pan/gui/post-ui.cc:519 ../pan/gui/prefs-ui.cc:737 msgid "Character Encoding" msgstr "Кодиране на знаците" #: ../pan/gui/e-charset-combo-box.c:117 msgid "Enter the character set to use" msgstr "Въведете таблицата, която да се използва" #: ../pan/gui/e-charset-combo-box.c:336 msgid "Other..." msgstr "Други..." #: ../pan/gui/e-cte-dialog.c:78 #, fuzzy msgid "Default encoding" msgstr "Дешифриране" #: ../pan/gui/e-cte-dialog.c:80 #, fuzzy msgid "7Bit Encoding" msgstr "Дешифриране" #: ../pan/gui/e-cte-dialog.c:82 #, fuzzy msgid "8Bit Encoding" msgstr "Дешифриране" #: ../pan/gui/e-cte-dialog.c:84 #, fuzzy msgid "BASE64 Encoding" msgstr "Дешифриране" #: ../pan/gui/e-cte-dialog.c:86 #, fuzzy msgid "Quoted-Printable Encoding" msgstr "Кодиране на знаците в плота за статии" #: ../pan/gui/group-pane.cc:500 #, fuzzy msgid "Group" msgstr "Групи" #: ../pan/gui/group-pane.cc:501 #, fuzzy msgid "Group (regex)" msgstr "Име на група" #: ../pan/gui/group-pane.cc:913 msgid "Subscribed Groups" msgstr "Абонирани групи" #: ../pan/gui/group-pane.cc:914 msgid "Other Groups" msgstr "Други групи" #: ../pan/gui/group-pane.cc:954 ../pan/gui/score-view-ui.cc:157 msgid "Name" msgstr "Име" #: ../pan/gui/group-prefs-dialog.cc:156 msgid "No Profiles defined in Edit|Posting Profiles." msgstr "" "Няма зададени профили в Редактиране|Редактиране на профили за изпращане." #: ../pan/gui/group-prefs-dialog.cc:231 msgid "Pan: Group Preferences" msgstr "Pan: Настройки на групата" #: ../pan/gui/group-prefs-dialog.cc:247 #, fuzzy, c-format msgid "Properties for Groups" msgstr "Детайли за %s" #: ../pan/gui/group-prefs-dialog.cc:249 #, c-format msgid "Properties for %s" msgstr "Детайли за %s" #: ../pan/gui/group-prefs-dialog.cc:257 msgid "Character _encoding:" msgstr "_Кодиране на знаците:" #: ../pan/gui/group-prefs-dialog.cc:259 msgid "Directory for Saving Attachments" msgstr "Папка за запазване на прикрепените файлове" #: ../pan/gui/group-prefs-dialog.cc:269 msgid "Directory for _saving attachments:" msgstr "Папка за _запазване на прикрепените файлове:" #: ../pan/gui/group-prefs-dialog.cc:271 msgid "Posting _profile:" msgstr "_Профил за изпращане:" #: ../pan/gui/group-prefs-dialog.cc:277 msgid "Spellchecker _language:" msgstr "" #: ../pan/gui/gui.cc:273 msgid "Open the Task Manager" msgstr "Отваряне на мениджъра за задачи" #: ../pan/gui/gui.cc:301 msgid "Open the Event Log" msgstr "Отваряне на дневника за събитията" #: ../pan/gui/gui.cc:561 msgid "Save NZB's Files" msgstr "Запазване на файловете, формат NZB" #: ../pan/gui/gui.cc:588 msgid "Untitled.nzb" msgstr "" #: ../pan/gui/gui.cc:590 #, fuzzy msgid "Save NZB File as..." msgstr "Запазване на файловете, формат NZB" #: ../pan/gui/gui.cc:757 msgid "Import NZB Files" msgstr "Внасяне на файл, формат NZB" #: ../pan/gui/gui.cc:765 ../pan/gui/post-ui.cc:3197 msgid "NZB Files" msgstr "Във формат NZB" #: ../pan/gui/gui.cc:770 msgid "All Files" msgstr "Всички файлове" #: ../pan/gui/gui.cc:1258 msgid "Unable to supersede article." msgstr "Неуспех при замяната на статията." #: ../pan/gui/gui.cc:1259 ../pan/gui/gui.cc:1333 msgid "The article doesn't match any of your posting profiles." msgstr "Статията не съвпада с нито един от профилите за изпращане." #: ../pan/gui/gui.cc:1306 msgid "Revise and send this article to replace the old one." msgstr "Промяна и изпращане на тази статия като замяна на старата." #: ../pan/gui/gui.cc:1307 ../pan/gui/gui.cc:1370 msgid "Be patient! It will take time for your changes to take effect." msgstr "" "Бъдете търпеливи! Ще мине известно време, преди промените да влязат в сила." #: ../pan/gui/gui.cc:1332 msgid "Unable to cancel article." msgstr "Неуспех при отмяната на статията." #: ../pan/gui/gui.cc:1369 msgid "Send this article to ask your server to cancel your other one." msgstr "Изпратете тази статия, за да поискате от сървъра да отмени другата." #: ../pan/gui/gui.cc:1387 #, fuzzy msgid "You marked some articles for deletion" msgstr "Добавяне на _подобни статии към избора" #: ../pan/gui/gui.cc:1388 msgid "Are you sure you want to delete them?" msgstr "" #: ../pan/gui/gui.cc:1413 #, fuzzy msgid "Always trust" msgstr "Винаги да се стартира редактор" #: ../pan/gui/gui.cc:1416 msgid "Do you want to accept it permanently (deletable afterwards) ?" msgstr "" #: ../pan/gui/gui.cc:1595 #, fuzzy msgid "Copyright \\u00A9 2002-2012 Charles Kerr and others" msgstr "Авторски права © 2002-2007 Charles Kerr" #: ../pan/gui/gui.cc:1600 msgid "translator-credits" msgstr "" "Явор Доганов \n" "\n" "Проектът за превод на GNOME има нужда от подкрепа.\n" "Научете повече за нас на http://gnome.cult.bg\n" "Докладвайте за грешки на http://gnome.cult.bg/bugs" #: ../pan/gui/gui.cc:1709 msgid "_1. Group Pane" msgstr "_1. Плот с групи" #: ../pan/gui/gui.cc:1710 msgid "_2. Header Pane" msgstr "_2. Плот със заглавия" #: ../pan/gui/gui.cc:1711 msgid "_3. Body Pane" msgstr "_3. Плот със съобщения" #: ../pan/gui/gui.cc:1800 ../pan/gui/gui.cc:1815 #, fuzzy msgid " Bytes" msgstr "Байтове" #: ../pan/gui/gui.cc:1803 msgid " KB" msgstr "" #: ../pan/gui/gui.cc:1806 msgid " MB" msgstr "" #: ../pan/gui/gui.cc:1809 msgid " GB" msgstr "" #: ../pan/gui/gui.cc:1812 msgid " TB" msgstr "" #: ../pan/gui/gui.cc:1844 #, fuzzy, c-format msgid "This article is complete with %d part." msgid_plural "This article has all %d parts." msgstr[0] "Тази статия съдържа общо %d части." msgstr[1] "Тази статия съдържа общо %d части." #: ../pan/gui/gui.cc:1846 #, fuzzy, c-format msgid "This article is missing %d part." msgid_plural "This article is missing %d of its %d parts:" msgstr[0] "Липсват %d от общо %d части в тази статия:" msgstr[1] "Липсват %d от общо %d части в тази статия:" #: ../pan/gui/gui.cc:1865 ../pan/gui/header-pane.cc:1190 msgid "Message-ID" msgstr "Идентификатор на съобщението" #: ../pan/gui/gui.cc:1866 ../pan/gui/header-pane.cc:1665 #: ../pan/gui/prefs-ui.cc:830 msgid "Lines" msgstr "Редове" #: ../pan/gui/gui.cc:1866 msgid "Size" msgstr "" #: ../pan/gui/gui.cc:1867 ../pan/gui/header-pane.cc:1680 #: ../pan/gui/prefs-ui.cc:828 msgid "Bytes" msgstr "Байтове" #: ../pan/gui/gui.cc:1917 msgid "" "Error loading iconv library. Some Charsets in the GUI will not be able to be " "encoded." msgstr "" #: ../pan/gui/gui.cc:2059 msgid "Body Pane Encoding" msgstr "Кодиране на знаците в плота за статии" #: ../pan/gui/gui.cc:2090 ../pan/gui/task-pane.cc:569 #, c-format msgid "Offline" msgstr "Изключен" #: ../pan/gui/gui.cc:2094 #, fuzzy, c-format msgid "Closing %d connection" msgid_plural "Closing %d connections" msgstr[0] "Прекъсване на %d свързвания" msgstr[1] "Прекъсване на %d свързвания" #: ../pan/gui/gui.cc:2096 ../pan/gui/gui.cc:2126 #, c-format msgid "No Connections" msgstr "Няма свързвания" #: ../pan/gui/gui.cc:2100 #, c-format msgid "Connecting" msgstr "Свързване" #: ../pan/gui/gui.cc:2113 #, c-format msgid "%s: %d idle, %d active @ %.1f KiBps" msgstr "%s: %d в покой, %d активни @ %.1f KiB/сек" #: ../pan/gui/gui.cc:2169 #, c-format msgid "No Tasks" msgstr "Няма задачи" #: ../pan/gui/gui.cc:2171 ../pan/gui/prefs-ui.cc:1047 msgid "Tasks" msgstr "Задачи" #: ../pan/gui/gui.cc:2182 ../pan/gui/task-pane.cc:435 #, c-format msgid "%lu tasks, %s, %.1f KiBps, ETA %d:%02d:%02d" msgstr "%lu задачи, %s, %.1f KiB/сек, ETA %d:%02d:%02d" #: ../pan/gui/gui.cc:2234 msgid "" "Pan is now offline. Please see \"File|Event Log\" and correct the problem, " "then use \"File|Work Online\" to continue." msgstr "" "Pan е в режим „Изключен“. Вижте Файл|Дневник на събитията и коригирайте " "проблема, след това използвайте Файл|Работа в режим „Включен“, за да " "продължите." #: ../pan/gui/header-pane.cc:1186 msgid "Subject or Author" msgstr "Тема или автор" #: ../pan/gui/header-pane.cc:1187 #, fuzzy msgid "Sub or Auth (regex)" msgstr "Тема или автор" #: ../pan/gui/header-pane.cc:1189 ../pan/gui/header-pane.cc:1649 #: ../pan/gui/prefs-ui.cc:827 ../pan/gui/score-add-ui.cc:140 msgid "Author" msgstr "Автор" #: ../pan/gui/header-pane.cc:1634 ../pan/gui/prefs-ui.cc:831 msgid "Score" msgstr "Точки" #: ../pan/gui/log-ui.cc:103 msgid "Save Event List" msgstr "Запазване на списъка със събития" #: ../pan/gui/log-ui.cc:256 msgid "Pan: Events" msgstr "Pan: Събития" #: ../pan/gui/log-ui.cc:315 msgid "Message" msgstr "Съобщение" #: ../pan/gui/pan.cc:330 msgid "Maximize" msgstr "" #: ../pan/gui/pan.cc:383 msgid "An Error has occurred!" msgstr "" #: ../pan/gui/pan.cc:397 #, fuzzy msgid "New Articles!" msgstr "Следваща с_татия" #: ../pan/gui/pan.cc:398 msgid "" "There are new\n" "articles available." msgstr "" #: ../pan/gui/pan.cc:465 msgid "Toggle on/offline" msgstr "" #: ../pan/gui/pan.cc:513 msgid "" "Thank you for trying Pan!\n" " \n" "To start newsreading, first Add a Server." msgstr "" "Благодарим Ви, че опитвате Pan!\n" " \n" "За да започнете да четете новини, първо добавете сървър." #: ../pan/gui/pan.cc:595 #, fuzzy msgid "" "General Options\n" " -h, --help Show this usage page.\n" " --verbose Be verbose (in non-GUI mode).\n" "\n" "URL Options\n" " --no-gui On news:message-id, dump the article to stdout.\n" "\n" "NZB Batch Options\n" " --nzb file1 file2 ... Process nzb files without launching all of Pan.\n" " -o path, --output=path Path to save attachments listed in the nzb " "files.\n" " --no-gui Only show console output, not the download " "queue.\n" msgstr "" "Общи опции\n" " -h, --help Показване на тази информация.\n" "\n" "Опции за адрес\n" " news:message-id Показване на указаната статия.\n" " news:group.name Показване на указаната група за новини.\n" " headers:group.name Изтегляне на заглавни части за указаната група.\n" " --no-gui При news:message-id, показване на стандартния " "изход.\n" "\n" "Опции за изпълнение на NZB\n" " --nzb файл1 файл2 ... Обработка на файлове без стартиране на Pan.\n" " -o път, --output=път Път за запазване на прикрепените файлове.\n" " --no-gui Изход само от конзолата, не от опашката за " "изтегляне.\n" #: ../pan/gui/pan.cc:867 msgid "Error: --no-gui used without nzb files or news:message-id." msgstr "" "Грешка: използвана е опцията --no-gui без файлове nzb или news:message-id." #: ../pan/gui/pan.cc:871 #, c-format msgid "Pan %s started" msgstr "Pan %s е стартиран" #: ../pan/gui/pan.cc:890 msgid "Please configure Pan's news servers before using it as an nzb client." msgstr "" "Конфигурирайте сървърите за новини на Pan преди да го използвате като клиент " "за nzb." #: ../pan/gui/pan.cc:1009 msgid "Pan notification" msgstr "" #: ../pan/gui/post-ui.cc:186 #, c-format msgid "Upload Queue : %ld Tasks, %ld KB (~ %.2f MB) total ." msgstr "" #: ../pan/gui/post-ui.cc:286 #, fuzzy, c-format msgid "Error setting custom spellchecker: %s" msgstr "Грешка при настройването на програмата за проверка на правописа: %s" #: ../pan/gui/post-ui.cc:291 ../pan/gui/post-ui.cc:300 #, c-format msgid "Error setting spellchecker: %s" msgstr "Грешка при настройването на програмата за проверка на правописа: %s" #: ../pan/gui/post-ui.cc:419 msgid "_Profile" msgstr "_Профил" #: ../pan/gui/post-ui.cc:420 msgid "Set Editor" msgstr "Настройка на редактор" #: ../pan/gui/post-ui.cc:422 msgid "_Send Article" msgstr "_Изпращане на статията" #: ../pan/gui/post-ui.cc:422 msgid "Send Article Now" msgstr "Изпращане на статията сега" #: ../pan/gui/post-ui.cc:423 #, fuzzy msgid "_Send and Save Articles to NZB" msgstr "Pan: Запазване на статии" #: ../pan/gui/post-ui.cc:423 #, fuzzy msgid "Send and Save Articles to NZB" msgstr "Pan: Запазване на статии" #: ../pan/gui/post-ui.cc:424 msgid "Set Character _Encoding..." msgstr "К_одиране на знаците..." #: ../pan/gui/post-ui.cc:425 #, fuzzy msgid "Set Content _Transfer Encoding..." msgstr "К_одиране на знаците..." #: ../pan/gui/post-ui.cc:426 msgid "Sa_ve Draft" msgstr "З_апазване като чернова" #: ../pan/gui/post-ui.cc:426 msgid "Save as a Draft for Future Posting" msgstr "Запазване като чернова за бъдещо изпращане" #: ../pan/gui/post-ui.cc:427 msgid "_Open Draft..." msgstr "_Отваряне на чернова..." #: ../pan/gui/post-ui.cc:427 msgid "Open an Article Draft" msgstr "Отваряне на чернова на статия" #: ../pan/gui/post-ui.cc:432 msgid "_Rot13" msgstr "_Rot13" #: ../pan/gui/post-ui.cc:432 msgid "Rot13 Selected Text" msgstr "„Rot13“ обработка на избрания текст" #: ../pan/gui/post-ui.cc:433 msgid "Run _Editor" msgstr "_Стартиране на редактор" #: ../pan/gui/post-ui.cc:433 #, fuzzy msgid "Run Editor" msgstr "_Стартиране на редактор" #: ../pan/gui/post-ui.cc:435 msgid "Add _Files to Queue" msgstr "" #: ../pan/gui/post-ui.cc:435 msgid "Add Files to Queue" msgstr "" #: ../pan/gui/post-ui.cc:450 ../pan/gui/post-ui.cc:451 #, fuzzy msgid "Remove from Queue" msgstr "Премахване на сървър" #: ../pan/gui/post-ui.cc:455 ../pan/gui/post-ui.cc:456 msgid "Clear List" msgstr "" #: ../pan/gui/post-ui.cc:460 ../pan/gui/post-ui.cc:461 #, fuzzy msgid "Select Needed Parts" msgstr "Избиране на всички _статии" #: ../pan/gui/post-ui.cc:465 ../pan/gui/post-ui.cc:466 #: ../pan/gui/task-pane.cc:636 ../pan/gui/task-pane.cc:637 msgid "Move Up" msgstr "" #: ../pan/gui/post-ui.cc:470 ../pan/gui/post-ui.cc:471 #: ../pan/gui/task-pane.cc:641 ../pan/gui/task-pane.cc:642 msgid "Move Down" msgstr "" #: ../pan/gui/post-ui.cc:475 ../pan/gui/post-ui.cc:476 msgid "Move to Top" msgstr "" #: ../pan/gui/post-ui.cc:480 ../pan/gui/post-ui.cc:481 msgid "Move to Bottom" msgstr "" #: ../pan/gui/post-ui.cc:488 msgid "_Wrap Text" msgstr "_Режим с пренасяне" #: ../pan/gui/post-ui.cc:488 #, fuzzy msgid "Wrap Text" msgstr "_Режим с пренасяне" #: ../pan/gui/post-ui.cc:489 msgid "Always Run Editor" msgstr "Винаги да се стартира редактор" #: ../pan/gui/post-ui.cc:490 msgid "Remember Character Encoding for this Group" msgstr "Запомняне на кодирането за тази група" #: ../pan/gui/post-ui.cc:491 msgid "Thread Attached Replies" msgstr "" #: ../pan/gui/post-ui.cc:492 msgid "PGP-Encrypt the Message" msgstr "" #: ../pan/gui/post-ui.cc:493 msgid "PGP-Sign the Message" msgstr "" #: ../pan/gui/post-ui.cc:494 msgid "Check _Spelling" msgstr "Проверка на пра_вописа" #: ../pan/gui/post-ui.cc:520 msgid "New Article's Encoding:" msgstr "Кодиране за новата статия:" #: ../pan/gui/post-ui.cc:530 #, fuzzy msgid "Content Transfer Encoding" msgstr "Кодиране на знаците" #: ../pan/gui/post-ui.cc:531 #, fuzzy msgid "New Article's Content Transfer Encoding:" msgstr "Кодиране за новата статия:" #: ../pan/gui/post-ui.cc:711 msgid "Your changes will be lost!" msgstr "Промените ще бъдат загубени!" #: ../pan/gui/post-ui.cc:712 msgid "Close this window and lose your changes?" msgstr "Затваряне на този прозорец и отхвърляне на промените?" #: ../pan/gui/post-ui.cc:757 ../pan/gui/post-ui.cc:796 msgid "There were problems with this post." msgstr "Имаше проблеми с това изпращане." #: ../pan/gui/post-ui.cc:759 ../pan/gui/post-ui.cc:798 #: ../pan/gui/post-ui.cc:861 msgid "Go Back" msgstr "Връщане" #: ../pan/gui/post-ui.cc:761 msgid "Post Anyway" msgstr "Изпращане въпреки това" #. Prompt the user #: ../pan/gui/post-ui.cc:790 #, c-format msgid "" "Message uses characters not specified in charset '%s' - possibly use '%s' " msgstr "" "Статията съдържа знаци, които липсват в кодирането „%s“; вероятно е добре да " "използвате „%s“ " #: ../pan/gui/post-ui.cc:813 msgid "Go _Online" msgstr "Преминаване в режим „_Включен“" #: ../pan/gui/post-ui.cc:860 msgid "The file queue is empty, so no files can be saved." msgstr "" #: ../pan/gui/post-ui.cc:1019 msgid "" "No posting server is set for this posting profile.\n" "Please edit the profile via Edit|Manage Posting Profiles." msgstr "" "Няма указан сървър за изпращане за този профил.\n" "Редактирайте профила от Редактиране|Редактиране на профили за изпращане." #: ../pan/gui/post-ui.cc:1054 msgid "Pan is Offline." msgstr "Pan е в режим „Изключен“." #: ../pan/gui/post-ui.cc:1055 msgid "Go online to post the article?" msgstr "Преминаване в режим „Включен“ за изпращането на статията?" #: ../pan/gui/post-ui.cc:1102 #, c-format msgid "" "Error signing/encrypting your message. Perhaps you misspelled your email-" "address (%s) ?" msgstr "" #: ../pan/gui/post-ui.cc:1267 msgid "Error opening temporary file" msgstr "Грешка при отварянето на временен файл" #: ../pan/gui/post-ui.cc:1279 #, c-format msgid "Error writing article to temporary file: %s" msgstr "Грешка при запазване на статията във временен файл: %s" #: ../pan/gui/post-ui.cc:1298 #, c-format msgid "Error parsing \"external editor\" command line: %s (Command was: %s)" msgstr "" "Грешка при анализиране на командния ред на „външен редактор“: %s (Командата " "беше: %s)" #: ../pan/gui/post-ui.cc:1339 #, c-format msgid "Error starting external editor: %s" msgstr "Грешка при стартиране на външен редактор: %s" #: ../pan/gui/post-ui.cc:1395 msgid "Open Draft Article" msgstr "Отваряне на чернова" #: ../pan/gui/post-ui.cc:1606 msgid "Save Draft Article" msgstr "Запазване на чернова" #: ../pan/gui/post-ui.cc:1803 #, c-format msgid "Couldn't parse signature command \"%s\": %s" msgstr "Неуспех при анализирането на команда за подпис „%s“: %s" #: ../pan/gui/post-ui.cc:1839 msgid "Couldn't convert signature to UTF-8." msgstr "Неуспех при конвертирането на подписа в UTF-8." #: ../pan/gui/post-ui.cc:2334 msgid "F_rom" msgstr "_От" #: ../pan/gui/post-ui.cc:2352 msgid "_Subject" msgstr "_Тема" #: ../pan/gui/post-ui.cc:2365 msgid "_Newsgroups" msgstr "_Групи за новини" #: ../pan/gui/post-ui.cc:2379 msgid "Mail _To" msgstr "_Поща до" #: ../pan/gui/post-ui.cc:2481 msgid "Delete from Queue" msgstr "" #: ../pan/gui/post-ui.cc:2494 msgid "No." msgstr "" #: ../pan/gui/post-ui.cc:2498 ../pan/gui/post-ui.cc:2592 #: ../pan/gui/post-ui.cc:2633 #, fuzzy msgid "Filename" msgstr "_Файл" #: ../pan/gui/post-ui.cc:2500 msgid "Size (kB)" msgstr "" #: ../pan/gui/post-ui.cc:2600 msgid "The current filename" msgstr "" #: ../pan/gui/post-ui.cc:2604 #, fuzzy msgid "Subject Line" msgstr "Тема" #: ../pan/gui/post-ui.cc:2612 msgid "The current Subject Line" msgstr "" #: ../pan/gui/post-ui.cc:2626 msgid "No. " msgstr "" #: ../pan/gui/post-ui.cc:2630 msgid "Enable/Disable" msgstr "" #: ../pan/gui/post-ui.cc:2664 msgid "Follo_wup-To" msgstr "_Последвал отговор до" #. i18n: "poster" is a key used by many newsreaders. probably safest to keep this key in english. #: ../pan/gui/post-ui.cc:2673 msgid "" "The newsgroups where replies to your message should go. This is only needed " "if it differs from the \"Newsgroups\" header.\n" "\n" "To direct all replies to your email address, use \"Followup-To: poster\"" msgstr "" "Групите за новини, където би трябвало да бъдат изпращани отговори на вашата " "статия. Това е нужно, само ако се различава от заглавната част „Групи за " "новини“.\n" "\n" "За да насочите всички отговори до вашия адрес на е-поща, използвайте " "„Последвал отговор до: изпращача“" #: ../pan/gui/post-ui.cc:2679 msgid "_Reply-To" msgstr "О_тговор-до" #: ../pan/gui/post-ui.cc:2687 msgid "" "The email account where mail replies to your posted message should go. This " "is only needed if it differs from the \"From\" header." msgstr "" "Адресът на е-поща, където би трябвало да се получават отговори на " "изпратената от вас статия. Това е нужно само ако се различава от заглавната " "част „От“." #: ../pan/gui/post-ui.cc:2693 msgid "_Custom Headers" msgstr "Персонални заглавни _части" #: ../pan/gui/post-ui.cc:2717 msgid "Add \"_User-Agent\" header" msgstr "Добавяне на заглавна част „_Програма за е-поща/новини“" #: ../pan/gui/post-ui.cc:2724 #, fuzzy msgid "Add \"Message-_Id\" header" msgstr "Добавяне на заглавна част „_Идентификатор на съобщение“" #: ../pan/gui/post-ui.cc:2855 #, fuzzy msgid "Select Parts" msgstr "Избиране на всички _статии" #: ../pan/gui/post-ui.cc:2866 msgid "_Parts" msgstr "" #: ../pan/gui/post-ui.cc:3022 msgid "Post Article" msgstr "Изпращане на статията" #: ../pan/gui/post-ui.cc:3043 msgid "_Message" msgstr "_Съобщение" #: ../pan/gui/post-ui.cc:3044 msgid "More _Headers" msgstr "Повече заглавни _части" #: ../pan/gui/post-ui.cc:3045 msgid "File _Queue" msgstr "" #: ../pan/gui/post-ui.cc:3077 ../pan/gui/profiles-dialog.cc:478 #, no-c-format msgid "On %d, %n wrote:" msgstr "В %d, %n написа:" #: ../pan/gui/post-ui.cc:3106 msgid "Add files to queue" msgstr "" #: ../pan/gui/post-ui.cc:3184 msgid "Save Upload Queue as NZB File" msgstr "" #: ../pan/gui/prefs.cc:343 #, c-format msgid "Couldn't parse %s color \"%s\"" msgstr "Неуспех при анализирането на %s цвят „%s“" #: ../pan/gui/prefs-ui.cc:120 msgid "Grab Key" msgstr "" #: ../pan/gui/prefs-ui.cc:126 #, c-format msgid "" "Press the combination of the keys\n" "you want to use for \"%s\"." msgstr "" #: ../pan/gui/prefs-ui.cc:166 msgid "Edit Hotkey" msgstr "" #: ../pan/gui/prefs-ui.cc:228 msgid "Error: Shortkey is invalid!" msgstr "" #: ../pan/gui/prefs-ui.cc:244 msgid "Error: Shortkey already exists!" msgstr "" #: ../pan/gui/prefs-ui.cc:535 #, fuzzy msgid "Show only icons" msgstr "Показване на информация за статията" #: ../pan/gui/prefs-ui.cc:536 #, fuzzy msgid "Show only text" msgstr "Показване на плот със с_ъобщения" #: ../pan/gui/prefs-ui.cc:537 #, fuzzy msgid "Show icons and text" msgstr "Запазване на прикрепените файлове и текста" #: ../pan/gui/prefs-ui.cc:576 msgid "Use GNOME Preferences" msgstr "Използване на настройките на GNOME" #: ../pan/gui/prefs-ui.cc:577 msgid "Use KDE Preferences" msgstr "Използване на настройките на KDE" #: ../pan/gui/prefs-ui.cc:578 msgid "Use OS X Preferences" msgstr "Използване на настройките на OS X" #: ../pan/gui/prefs-ui.cc:579 msgid "Use Windows Preferences" msgstr "Използване на настройките на Windows" #: ../pan/gui/prefs-ui.cc:580 msgid "Custom Command:" msgstr "Команда на потребителя:" #: ../pan/gui/prefs-ui.cc:632 #, fuzzy msgid "Disabled" msgstr "Активирано" #: ../pan/gui/prefs-ui.cc:633 msgid "Only new (Score == 0)" msgstr "" #: ../pan/gui/prefs-ui.cc:634 #, fuzzy msgid "9999 or more" msgstr "Точки от 9999 или повече:" #: ../pan/gui/prefs-ui.cc:635 #, fuzzy msgid "5000 to 9998" msgstr "Точки от 5000 до 9998:" #: ../pan/gui/prefs-ui.cc:636 msgid "1 to 4999" msgstr "" #: ../pan/gui/prefs-ui.cc:637 #, fuzzy msgid "-9998 to -1" msgstr "Точки от -9998 до -1:" #: ../pan/gui/prefs-ui.cc:638 #, fuzzy msgid "-9999 or less" msgstr "Точки от -9999 или по-малко:" #: ../pan/gui/prefs-ui.cc:702 #, c-format msgid "Select default global charset. Current setting : %s ." msgstr "" #: ../pan/gui/prefs-ui.cc:738 msgid "Global Charset Settings" msgstr "" #: ../pan/gui/prefs-ui.cc:832 ../pan/gui/task-pane.cc:770 msgid "State" msgstr "Състояние" #: ../pan/gui/prefs-ui.cc:866 msgid "Enabled" msgstr "Активирано" #: ../pan/gui/prefs-ui.cc:870 msgid "Column Name" msgstr "Име на колона" #: ../pan/gui/prefs-ui.cc:908 msgid "Pan: Preferences" msgstr "Pan: Настройки" #: ../pan/gui/prefs-ui.cc:923 msgid "Mouse" msgstr "Мишка" #: ../pan/gui/prefs-ui.cc:925 msgid "Single-click activates, rather than selects, _groups" msgstr "Единичното натискане активира, а не избира _групи" #: ../pan/gui/prefs-ui.cc:927 msgid "Single-click activates, rather than selects, _articles" msgstr "Единичното натискане активира, а не избира _статии" #: ../pan/gui/prefs-ui.cc:930 msgid "Groups" msgstr "Групи" #: ../pan/gui/prefs-ui.cc:932 msgid "Get new headers in subscribed groups on _startup" msgstr "Изтегляне на нови заглавия в _абонираните групи при стартиране" #: ../pan/gui/prefs-ui.cc:934 msgid "Get new headers when _entering group" msgstr "Изтегляне на нови заглавия при _влизане в група" #: ../pan/gui/prefs-ui.cc:936 msgid "Mark entire group _read when leaving group" msgstr "_Отбелязване на статиите като прочетени при напускане на група" #: ../pan/gui/prefs-ui.cc:938 msgid "Mark entire group read before getting _new headers" msgstr "" "Отбелязване на цялата група като прочетена преди изтегляне на _нови заглавия" #: ../pan/gui/prefs-ui.cc:940 msgid "E_xpand all threads when entering group" msgstr "_Разтваряне на всички нишки при влизане в група" #: ../pan/gui/prefs-ui.cc:945 msgid "Articles" msgstr "Статии" #: ../pan/gui/prefs-ui.cc:947 msgid "Space selects next article rather than next unread" msgstr "Интервалът избира следващата статия, а не следващата непрочетена" #: ../pan/gui/prefs-ui.cc:949 #, fuzzy msgid "Expand threads upon selection" msgstr "Добавяне на ни_шки към избора" #: ../pan/gui/prefs-ui.cc:951 msgid "Always show article deletion confirmation dialog" msgstr "" #: ../pan/gui/prefs-ui.cc:953 msgid "Smooth scrolling" msgstr "Плавно прелистване" #: ../pan/gui/prefs-ui.cc:958 #, fuzzy msgid "Article Cache" msgstr "Изчистване на кеша от статии" #: ../pan/gui/prefs-ui.cc:959 msgid "Clear article cache on shutdown" msgstr "Изтриване на кеша при спиране на програмата" #: ../pan/gui/prefs-ui.cc:962 msgid "Size of article cache (in MiB) :" msgstr "" #: ../pan/gui/prefs-ui.cc:967 msgid "File extension for Cached Articles: " msgstr "" #: ../pan/gui/prefs-ui.cc:972 msgid "Tabs" msgstr "" #: ../pan/gui/prefs-ui.cc:977 msgid "_Behavior" msgstr "_Поведение" #: ../pan/gui/prefs-ui.cc:977 #, fuzzy msgid "Behavior" msgstr "_Поведение" #: ../pan/gui/prefs-ui.cc:983 #, fuzzy msgid "Language Settings" msgstr "Настройки" #. systray and notify popup #: ../pan/gui/prefs-ui.cc:992 #, fuzzy msgid "System Tray Behavior" msgstr "_Поведение" #: ../pan/gui/prefs-ui.cc:994 msgid "Hide to system tray" msgstr "" #: ../pan/gui/prefs-ui.cc:996 msgid "Start Pan minimized" msgstr "" #: ../pan/gui/prefs-ui.cc:999 #, fuzzy msgid "Show notifications" msgstr "Показване на информация за статията" #. allow multiple instances (seperate, not communicating with dbus) #: ../pan/gui/prefs-ui.cc:1004 #, fuzzy msgid "Startup Behavior" msgstr "_Поведение" #: ../pan/gui/prefs-ui.cc:1006 msgid "Allow multiple instances of Pan" msgstr "" #: ../pan/gui/prefs-ui.cc:1011 #, fuzzy msgid "Autosave Article Draft" msgstr "Отваряне на чернова на статия" #: ../pan/gui/prefs-ui.cc:1013 #, fuzzy msgid "Minutes to autosave the current Article Draft: " msgstr "Отваряне на чернова на статия" #: ../pan/gui/prefs-ui.cc:1018 #, fuzzy msgid "Autosave Articles" msgstr "Запазване на статии" #: ../pan/gui/prefs-ui.cc:1020 msgid "Minutes to autosave newsrc files: " msgstr "" #: ../pan/gui/prefs-ui.cc:1026 msgid "_Miscellaneous" msgstr "" #: ../pan/gui/prefs-ui.cc:1026 msgid "Miscellaneous" msgstr "" #: ../pan/gui/prefs-ui.cc:1031 msgid "Pane Layout" msgstr "Изглед на плотовете" #: ../pan/gui/prefs-ui.cc:1050 msgid "1=Groups, 2=Headers, 3=Body" msgstr "1=Групи, 2=Заглавия, 3=Статия" #: ../pan/gui/prefs-ui.cc:1052 msgid "1=Groups, 2=Body, 3=Headers" msgstr "1=Групи, 2=Статия, 3=Заглавия" #: ../pan/gui/prefs-ui.cc:1054 msgid "1=Headers, 2=Groups, 3=Body" msgstr "1=Заглавия, 2=Групи, 3=Статия" #: ../pan/gui/prefs-ui.cc:1056 msgid "1=Headers, 2=Body, 3=Groups" msgstr "1=Заглавия, 2=Статия, 3=Групи" #: ../pan/gui/prefs-ui.cc:1058 msgid "1=Body, 2=Groups, 3=Headers" msgstr "1=Статия, 2=Групи, 3=Заглавия" #: ../pan/gui/prefs-ui.cc:1060 msgid "1=Body, 2=Headers, 3=Groups" msgstr "1=Статия, 2=Заглавия, 3=Групи" #: ../pan/gui/prefs-ui.cc:1064 #, fuzzy msgid "Layout" msgstr "Изг_лед" #: ../pan/gui/prefs-ui.cc:1069 msgid "Header Pane Columns" msgstr "Колони на плот със заглавия" #: ../pan/gui/prefs-ui.cc:1073 msgid "_Headers" msgstr "_Заглавни части" #: ../pan/gui/prefs-ui.cc:1073 #, fuzzy msgid "Headers" msgstr "_Заглавни части" #: ../pan/gui/prefs-ui.cc:1079 msgid "" "This menu lets you configure Pan to take certain actions on your behalf " "automatically, based on a post's score." msgstr "" #: ../pan/gui/prefs-ui.cc:1082 msgid "_Delete posts scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1084 msgid "Mark posts _read scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1086 msgid "_Cache posts scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1088 msgid "Download _attachments of posts scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1091 #, fuzzy msgid "Actions" msgstr "_Действия" #: ../pan/gui/prefs-ui.cc:1096 ../pan/gui/prefs-ui.cc:1117 msgid "Fonts" msgstr "Шрифтове" #: ../pan/gui/prefs-ui.cc:1098 msgid "Use custom font in Group Pane:" msgstr "Използване на нестандартен шрифт в плота с групи:" #: ../pan/gui/prefs-ui.cc:1103 msgid "Use custom font in Header Pane:" msgstr "Използване на нестандартен шрифт в плота със заглавия:" #: ../pan/gui/prefs-ui.cc:1108 msgid "Use custom font in Body Pane:" msgstr "Използване на нестандартен шрифт в плота със статия:" #: ../pan/gui/prefs-ui.cc:1113 msgid "Monospace font:" msgstr "Равно_широк шрифт:" #: ../pan/gui/prefs-ui.cc:1117 msgid "_Fonts" msgstr "_Шрифтове" #: ../pan/gui/prefs-ui.cc:1122 msgid "Header Pane" msgstr "Плот със заглавия" #: ../pan/gui/prefs-ui.cc:1125 ../pan/gui/prefs-ui.cc:1131 #: ../pan/gui/prefs-ui.cc:1137 ../pan/gui/prefs-ui.cc:1143 #: ../pan/gui/prefs-ui.cc:1149 ../pan/gui/prefs-ui.cc:1155 msgid "Text:" msgstr "Текст:" #: ../pan/gui/prefs-ui.cc:1127 ../pan/gui/prefs-ui.cc:1133 #: ../pan/gui/prefs-ui.cc:1139 ../pan/gui/prefs-ui.cc:1145 #: ../pan/gui/prefs-ui.cc:1151 ../pan/gui/prefs-ui.cc:1157 msgid "Background:" msgstr "Фон:" #: ../pan/gui/prefs-ui.cc:1129 msgid "Scores of 9999 or more:" msgstr "Точки от 9999 или повече:" #: ../pan/gui/prefs-ui.cc:1135 msgid "Scores from 5000 to 9998:" msgstr "Точки от 5000 до 9998:" #: ../pan/gui/prefs-ui.cc:1141 msgid "Scores from 1 to 4999:" msgstr "Точки от 1 до 4999:" #: ../pan/gui/prefs-ui.cc:1147 msgid "Scores from -9998 to -1:" msgstr "Точки от -9998 до -1:" #: ../pan/gui/prefs-ui.cc:1153 msgid "Scores of -9999 or less:" msgstr "Точки от -9999 или по-малко:" #: ../pan/gui/prefs-ui.cc:1159 msgid "Read collapsed thread:" msgstr "" #: ../pan/gui/prefs-ui.cc:1161 msgid "Body Pane" msgstr "Плот със статия" #: ../pan/gui/prefs-ui.cc:1167 #, fuzzy msgid "Quoted text:" msgstr "Цитиран текст:" #: ../pan/gui/prefs-ui.cc:1168 msgid "URL:" msgstr "Адрес:" #: ../pan/gui/prefs-ui.cc:1169 msgid "Signature:" msgstr "Подпис:" #: ../pan/gui/prefs-ui.cc:1171 msgid "_Colors" msgstr "_Цветове" #: ../pan/gui/prefs-ui.cc:1171 #, fuzzy msgid "Colors" msgstr "_Цветове" #: ../pan/gui/prefs-ui.cc:1176 msgid "Preferred Applications" msgstr "Предпочитани програми" #: ../pan/gui/prefs-ui.cc:1180 #, fuzzy msgid "_Web browser:" msgstr "_Интернет браузър:" #: ../pan/gui/prefs-ui.cc:1183 #, fuzzy msgid "_Mail reader:" msgstr "Програма за _е-поща:" #: ../pan/gui/prefs-ui.cc:1185 #, fuzzy msgid "_Text editor:" msgstr "_Текстов редактор:" #: ../pan/gui/prefs-ui.cc:1187 #, fuzzy msgid "_Applications" msgstr "П_рограми" #: ../pan/gui/prefs-ui.cc:1187 #, fuzzy msgid "Applications" msgstr "П_рограми" #: ../pan/gui/prefs-ui.cc:1192 ../pan/gui/task-pane.cc:512 #, fuzzy msgid "Encoding" msgstr "Дешифриране" #: ../pan/gui/prefs-ui.cc:1196 msgid "Default bytes per file (for encoder): " msgstr "" #: ../pan/gui/prefs-ui.cc:1201 #, fuzzy msgid "_Upload" msgstr "П_рограми" #: ../pan/gui/prefs-ui.cc:1201 msgid "Upload" msgstr "" #: ../pan/gui/prefs-ui.cc:1219 msgid "_Hotkeys" msgstr "" #: ../pan/gui/prefs-ui.cc:1219 msgid "Hotkeys" msgstr "" #: ../pan/gui/profiles-dialog.cc:83 msgid "Please choose your Email Address according to your PGP key's user id." msgstr "" #: ../pan/gui/profiles-dialog.cc:131 msgid "Posting Profile" msgstr "Профил за изпращане" #: ../pan/gui/profiles-dialog.cc:143 msgid "Profile Information" msgstr "Информация за профила" #: ../pan/gui/profiles-dialog.cc:147 msgid "_Profile Name:" msgstr "И_ме на профила:" #: ../pan/gui/profiles-dialog.cc:150 msgid "Required Information" msgstr "Изисквана информация" #: ../pan/gui/profiles-dialog.cc:154 msgid "_Full Name:" msgstr "_Пълно име:" #: ../pan/gui/profiles-dialog.cc:158 msgid "" "Your Email Address.\n" "Note that this has to match your PGP Signature's Address\n" "if you want to PGP-Sign or Encrypt your messages correctly." msgstr "" #: ../pan/gui/profiles-dialog.cc:162 msgid "_Email Address:" msgstr "_Адрес на е-поща:" #: ../pan/gui/profiles-dialog.cc:164 msgid "_Post Articles via:" msgstr "И_зпращане на статиите чрез:" #: ../pan/gui/profiles-dialog.cc:167 msgid "Signature" msgstr "Подпис" #: ../pan/gui/profiles-dialog.cc:170 msgid "_Use a Signature" msgstr "Използване на п_одпис" #: ../pan/gui/profiles-dialog.cc:174 msgid "Signature File" msgstr "Файл с подпис" #: ../pan/gui/profiles-dialog.cc:184 msgid "Text File" msgstr "Текстов файл" #: ../pan/gui/profiles-dialog.cc:186 msgid "Text" msgstr "Текст" #: ../pan/gui/profiles-dialog.cc:188 msgid "Command" msgstr "Команда" #: ../pan/gui/profiles-dialog.cc:191 #, fuzzy msgid "PGP Signature" msgstr "Подпис" #: ../pan/gui/profiles-dialog.cc:196 #, fuzzy msgid "Signature Type : " msgstr "_Вид подпис:" #: ../pan/gui/profiles-dialog.cc:223 msgid "X-Face (Avatar)" msgstr "" #: ../pan/gui/profiles-dialog.cc:226 msgid "" "You can add an avatar icon to your articles with a unique X-Face code. \n" "Add the code without the trailing \"X-Face:\" \n" " if it was generated by a helper program (for example http://www.dairiki.org/" "xface/xface.php)." msgstr "" #: ../pan/gui/profiles-dialog.cc:229 msgid "_X-Face:" msgstr "" #: ../pan/gui/profiles-dialog.cc:231 msgid "Optional Information" msgstr "Незадължителна информация" #: ../pan/gui/profiles-dialog.cc:236 #, fuzzy msgid "" "When posting to Usenet, your article's Message-ID contains a domain name. \n" "You can set a custom domain name here, or leave it blank to let Pan use the " "domain name from your email address." msgstr "" "Когато изпращате статии по Usenet, идентификаторът на вашата статия съдържа " "домейн. Може да настроите персонален домейн тук, или да оставите полето " "празно. При втория случай ще се използва домейна от пощенския ви адрес." #: ../pan/gui/profiles-dialog.cc:239 msgid "Message-ID _Domain Name:" msgstr "_Домейн на идентификатора на съобщението:" #: ../pan/gui/profiles-dialog.cc:243 #, c-format msgid "" "%i for Message-ID\n" "%a for Author and Address\n" "%n for Author name\n" "%d for Date" msgstr "" "%i за идентификатор на съобщението\n" "%a за автор и адрес\n" "%n за име на автора\n" "%d за дата" #: ../pan/gui/profiles-dialog.cc:244 msgid "_Attribution:" msgstr "Припи_сване:" #: ../pan/gui/profiles-dialog.cc:268 #, fuzzy msgid "" "Extra headers to be included in your posts, such as\n" "Reply-To: \"Your Name\"\n" "Organization: Your Organization\n" msgstr "" "Допълнителни заглавни части, които да бъдат включвани при изпращане, като\n" "Reply-To: „Вашето име“ \n" "Organization: Вашата организация" #: ../pan/gui/profiles-dialog.cc:278 msgid "E_xtra Headers:" msgstr "Допълнителни заглавни _части:" #: ../pan/gui/profiles-dialog.cc:323 msgid "Invalid email address." msgstr "Невалиден адрес на е-поща." #: ../pan/gui/profiles-dialog.cc:324 msgid "Please use an address of the form joe@somewhere.org" msgstr "Използвайте адрес във формата sulio@pulio.bg" #: ../pan/gui/profiles-dialog.cc:479 msgid "New Profile" msgstr "Нов профил" #: ../pan/gui/profiles-dialog.cc:525 msgid "Posting Profiles" msgstr "Профили за изпращане" #: ../pan/gui/profiles-dialog.cc:541 msgid "Profiles" msgstr "Профили" #: ../pan/gui/save-attach-ui.cc:77 ../pan/gui/save-ui.cc:77 #, fuzzy, c-format msgid "" "%g - group as one directory (alt.binaries.pictures.trains)\n" "%G - group as nested directory (/alt/binaries/pictures/trains)\n" "%s - subject line excerpt\n" "%S - subject line\n" " \n" "\"/home/user/News/Pan/%g\" becomes\n" "\"/home/user/News/Pan/alt.binaries.pictures.trains\", and\n" "\"/home/user/News/Pan/%G\" becomes\n" "\"/home/user/News/Pan/alt/binaries/pictures/trains\"," msgstr "" "%g - групата като една директория (alt.binaries.pictures.trains)\n" "%G - групата като вложена директория (/alt/binaries/pictures/trains)\n" " \n" "„/home/user/News/Pan/%g“ става\n" "„/home/user/News/Pan/alt.binaries.pictures.trains“, и\n" "„/home/user/News/Pan/%G“ става\n" "„/home/user/News/Pan/alt/binaries/pictures/trains“" #: ../pan/gui/save-attach-ui.cc:223 ../pan/gui/save-ui.cc:242 msgid "Add to the queue sorted by date posted" msgstr "Добавяне към опашката, подредено по дата на изпращане" #: ../pan/gui/save-attach-ui.cc:224 ../pan/gui/save-ui.cc:243 msgid "Add to the front of the queue" msgstr "Добавяне в началото на опашката" #: ../pan/gui/save-attach-ui.cc:225 ../pan/gui/save-ui.cc:244 msgid "Add to the back of the queue" msgstr "Добавяне в края на опашката" #: ../pan/gui/save-attach-ui.cc:257 #, fuzzy msgid "Pan: Save Attachments" msgstr "Запазване на прикрепените файлове" #: ../pan/gui/save-attach-ui.cc:282 ../pan/gui/save-attach-ui.cc:300 #: ../pan/gui/save-ui.cc:296 ../pan/gui/save-ui.cc:314 msgid "_Location:" msgstr "_Местонахождение" #: ../pan/gui/save-attach-ui.cc:286 ../pan/gui/save-ui.cc:300 msgid "Save Articles" msgstr "Запазване на статии" #: ../pan/gui/save-attach-ui.cc:303 ../pan/gui/save-ui.cc:317 #, c-format msgid "_Group's path: %s" msgstr "_Път на групата: %s" #: ../pan/gui/save-attach-ui.cc:314 ../pan/gui/save-ui.cc:332 msgid "_Priority:" msgstr "_Приоритет:" #: ../pan/gui/save-ui.cc:233 msgid "Save attachments" msgstr "Запазване на прикрепените файлове" #: ../pan/gui/save-ui.cc:234 msgid "Save text" msgstr "Запазване на текста" #: ../pan/gui/save-ui.cc:235 msgid "Save attachments and text" msgstr "Запазване на прикрепените файлове и текста" #: ../pan/gui/save-ui.cc:271 msgid "Pan: Save Articles" msgstr "Pan: Запазване на статии" #: ../pan/gui/save-ui.cc:328 msgid "_Action:" msgstr "_Действие:" #: ../pan/gui/score-add-ui.cc:89 msgid "is more than" msgstr "е повече от" #: ../pan/gui/score-add-ui.cc:90 msgid "is at most" msgstr "е най-много" #: ../pan/gui/score-add-ui.cc:112 msgid "increase the article's score by" msgstr "увеличаване на точките на статията с" #: ../pan/gui/score-add-ui.cc:113 msgid "decrease the article's score by" msgstr "намаляване на точките на статията с" #: ../pan/gui/score-add-ui.cc:114 msgid "set the article's score to" msgstr "задаване на точките на статията на" #: ../pan/gui/score-add-ui.cc:115 msgid "watch the article (set its score to 9999)" msgstr "следене на статията (задаване на точки 9999)" #: ../pan/gui/score-add-ui.cc:116 msgid "ignore the article (set its score to -9999)" msgstr "пренебрегване на статията (задаване на точки -9999)" #: ../pan/gui/score-add-ui.cc:141 msgid "References" msgstr "заглавна част „Отпратки“" #: ../pan/gui/score-add-ui.cc:142 msgid "Line Count" msgstr "брой редове" #: ../pan/gui/score-add-ui.cc:143 msgid "Byte Count" msgstr "брой байтове" #: ../pan/gui/score-add-ui.cc:144 msgid "Crosspost Group Count" msgstr "брой групи, до които е изпратена" #: ../pan/gui/score-add-ui.cc:145 msgid "Age (in days)" msgstr "възраст (в дни)" #: ../pan/gui/score-add-ui.cc:167 msgid "for the next month" msgstr "за следващия месец" #: ../pan/gui/score-add-ui.cc:168 msgid "for the next six months" msgstr "за следващите шест месеца" #: ../pan/gui/score-add-ui.cc:169 msgid "forever" msgstr "завинаги" #: ../pan/gui/score-add-ui.cc:194 msgid "contains" msgstr "съдържа" #: ../pan/gui/score-add-ui.cc:195 msgid "doesn't contain" msgstr "не съдържа" #: ../pan/gui/score-add-ui.cc:196 msgid "is" msgstr "е" #: ../pan/gui/score-add-ui.cc:197 msgid "isn't" msgstr "не е" #: ../pan/gui/score-add-ui.cc:198 msgid "starts with" msgstr "започва с" #: ../pan/gui/score-add-ui.cc:199 msgid "ends with" msgstr "завършва с" #: ../pan/gui/score-add-ui.cc:200 msgid "matches regex" msgstr "съвпада с регулярен израз" #: ../pan/gui/score-add-ui.cc:481 msgid "Another rule already sets this article's score." msgstr "Друго правило вече настройва точките на тази статия." #: ../pan/gui/score-add-ui.cc:482 msgid "You may want to go back or delete the old rule." msgstr "Може да искате да се върнете назад или да изтриете старото правило." #: ../pan/gui/score-add-ui.cc:553 msgid "Add and Re_score" msgstr "Добавяне и промяна на _точките" #: ../pan/gui/score-add-ui.cc:604 ../pan/gui/score-add-ui.cc:624 msgid "New Scoring Rule" msgstr "Ново правило за точкуване" #: ../pan/gui/score-add-ui.cc:635 msgid "If the group name" msgstr "Ако името на групата" #: ../pan/gui/score-add-ui.cc:642 msgid "And the article's" msgstr "И на статията" #: ../pan/gui/score-view-ui.cc:56 msgid "Close and Re_score" msgstr "Затваряне и пром_яна на точките" #: ../pan/gui/score-view-ui.cc:154 #, c-format msgid "File %s, Lines %d - %d" msgstr "Файл %s, редове %d - %d" #: ../pan/gui/score-view-ui.cc:182 msgid "Pan: Article's Scores" msgstr "Pan: Точки на статията" #: ../pan/gui/score-view-ui.cc:208 msgid "Add" msgstr "Добавяне" #: ../pan/gui/score-view-ui.cc:213 msgid "New Score" msgstr "Нови точки" #: ../pan/gui/score-view-ui.cc:218 msgid "Criteria" msgstr "Критерии" #: ../pan/gui/score-view-ui.cc:241 msgid "Add a New Scoring Rule" msgstr "Добавяне на ново правило за точкуване" #: ../pan/gui/score-view-ui.cc:248 msgid "Remove the Selected Scoring Rule" msgstr "Премахване на избраното правило за точкуване" #: ../pan/gui/server-ui.cc:221 msgid "Please specify the server's address." msgstr "Укажете адреса на сървъра." #: ../pan/gui/server-ui.cc:264 msgid "Import SSL certificate (PEM format) from File" msgstr "" #. create the dialog #: ../pan/gui/server-ui.cc:290 ../pan/gui/server-ui.cc:869 msgid "Add a Server" msgstr "Добавяне на сървър" #: ../pan/gui/server-ui.cc:290 ../pan/gui/server-ui.cc:875 msgid "Edit a Server's Settings" msgstr "Редактиране на настройките на сървър" #: ../pan/gui/server-ui.cc:310 msgid "Location" msgstr "Местонахождение" #: ../pan/gui/server-ui.cc:314 msgid "The news server's actual address, e.g. \"news.mynewsserver.com\"" msgstr "Действителния адрес на сървъра за новини, т.е. „news.mynewsserver.com“" #: ../pan/gui/server-ui.cc:315 msgid "_Address:" msgstr "_Адрес:" #: ../pan/gui/server-ui.cc:319 msgid "The news server's port number. Typically 119." msgstr "Порта на сървъра за новини. Обикновено той е 119." #: ../pan/gui/server-ui.cc:320 msgid "Por_t:" msgstr "По_рт:" #: ../pan/gui/server-ui.cc:323 msgid "Login (if Required)" msgstr "Удостоверяване (ако се изисква)" #: ../pan/gui/server-ui.cc:327 msgid "_Username:" msgstr "Потре_бителско име:" #: ../pan/gui/server-ui.cc:328 msgid "" "The username to give the server when asked. If your server doesn't require " "authentication, you can leave this blank." msgstr "" "Потребителското име, което да се подава на сървъра. Ако сървърът не изисква " "удостоверяване, може да оставите това поле празно." #: ../pan/gui/server-ui.cc:332 msgid "_Password:" msgstr "_Парола:" #: ../pan/gui/server-ui.cc:333 msgid "" "The password to give the server when asked. If your server doesn't require " "authentication, you can leave this blank." msgstr "" "Паролата, която да се подава на сървъра при поискване. Ако сървърът не " "изисква удостоверяване, може да оставите това поле празно." #: ../pan/gui/server-ui.cc:336 msgid "Settings" msgstr "Настройки" #: ../pan/gui/server-ui.cc:343 msgid "Connection _Limit:" msgstr "Предел на _свързванията:" #: ../pan/gui/server-ui.cc:347 msgid "After Two Weeks" msgstr "След две седмици" #: ../pan/gui/server-ui.cc:348 msgid "After One Month" msgstr "След един месец" #: ../pan/gui/server-ui.cc:349 msgid "After Two Months" msgstr "След два месеца" #: ../pan/gui/server-ui.cc:350 msgid "After Three Months" msgstr "След три месеца" #: ../pan/gui/server-ui.cc:351 msgid "After Six Months" msgstr "След шест месеца" #: ../pan/gui/server-ui.cc:352 msgid "Never Expire Old Articles" msgstr "Никога да не изтича валидността" #: ../pan/gui/server-ui.cc:366 msgid "E_xpire Old Articles:" msgstr "_Изтичане на валидността на стари статии:" #: ../pan/gui/server-ui.cc:370 msgid "Primary" msgstr "Основен" #: ../pan/gui/server-ui.cc:371 msgid "Fallback" msgstr "Резервен" #: ../pan/gui/server-ui.cc:385 msgid "Server Rank:" msgstr "Тип сървър:" #: ../pan/gui/server-ui.cc:389 msgid "" "Fallback servers are used for articles that can't be found on the " "primaries. One common approach is to use free servers as primaries and " "subscription servers as fallbacks." msgstr "" "Резервните сървъри се използват за статии, които не могат да бъдат намерени " "на основните. Общоприет подход е да се използват безплатни сървъри като " "основни и платени като резервни." #: ../pan/gui/server-ui.cc:396 msgid "Security" msgstr "" #: ../pan/gui/server-ui.cc:401 msgid "Use Plaintext (Unsecured) Connections" msgstr "" #: ../pan/gui/server-ui.cc:402 #, fuzzy msgid "Use Secure SSL Connections" msgstr "Няма свързвания" #: ../pan/gui/server-ui.cc:418 msgid "TLS (SSL) Options:" msgstr "" #: ../pan/gui/server-ui.cc:423 msgid "" "You can set the option for using/disabling secure SSL/TLS connections here. " "If you enable SSL/TLS, your data is encrypted and secure. It is encouraged " "to use this option for privacy reasons." msgstr "" #: ../pan/gui/server-ui.cc:428 msgid "Always trust this server's certificate" msgstr "" #: ../pan/gui/server-ui.cc:602 #, c-format msgid "Really delete \"%s\"?" msgstr "Наистина ли да се изтрие „%s“?" #: ../pan/gui/server-ui.cc:691 msgid "No information available." msgstr "" #: ../pan/gui/server-ui.cc:697 #, c-format msgid "Server Certificate for '%s'" msgstr "" #: ../pan/gui/server-ui.cc:795 #, fuzzy, c-format msgid "Really delete certificate for \"%s\"?" msgstr "Наистина ли да се изтрие „%s“?" #. dialog #: ../pan/gui/server-ui.cc:822 ../pan/gui/server-ui.cc:843 #: ../pan/gui/server-ui.cc:941 msgid "Servers" msgstr "Сървъри" #: ../pan/gui/server-ui.cc:882 msgid "Remove a Server" msgstr "Премахване на сървър" #. dialog #: ../pan/gui/server-ui.cc:915 msgid "SSL Certificates" msgstr "" #: ../pan/gui/server-ui.cc:936 msgid "Certificates" msgstr "" #: ../pan/gui/server-ui.cc:967 msgid "Import Certificate" msgstr "" #: ../pan/gui/server-ui.cc:973 msgid "Inspect Certificate" msgstr "" #: ../pan/gui/server-ui.cc:980 #, fuzzy msgid "Remove Certificate" msgstr "Премахване на сървър" #: ../pan/gui/task-pane.cc:143 #, c-format msgid "" "\n" "Upload\n" "\n" "Subject: \"%s\"\n" "From: %s\n" "Groups: %s\n" "Sourcefile: %s\n" msgstr "" #: ../pan/gui/task-pane.cc:155 #, c-format msgid "" "\n" "Download\n" "\n" "Subject: \"%s\"\n" "From: %s\n" "Date: %s\n" "Groups: %s\n" "Save Path: %s\n" msgstr "" #: ../pan/gui/task-pane.cc:157 #, fuzzy msgid "unknown" msgstr "Непознат" #: ../pan/gui/task-pane.cc:263 msgid "Choose new destination for selected Tasks" msgstr "" #: ../pan/gui/task-pane.cc:417 #, c-format msgid "Pan: Tasks (%d Queued, %d Running, %d Stopped)" msgstr "Pan: Задачи (%d в опашката, %d се изпълняват, %d са спрени)" #: ../pan/gui/task-pane.cc:419 #, c-format msgid "Pan: Tasks (%d Queued, %d Running)" msgstr "Pan: Задачи (%d в опашката, %d се изпълняват)" #: ../pan/gui/task-pane.cc:421 #, c-format msgid "Pan: Tasks" msgstr "Pan: Задачи" #: ../pan/gui/task-pane.cc:446 #, c-format msgid "%lu selected, %s" msgstr "%lu избрани, %s" #: ../pan/gui/task-pane.cc:510 msgid "Running" msgstr "Изпълнява се" #: ../pan/gui/task-pane.cc:511 msgid "Decoding" msgstr "Дешифриране" #: ../pan/gui/task-pane.cc:513 msgid "Queued for Decode" msgstr "В опашката за дешифриране" #: ../pan/gui/task-pane.cc:514 #, fuzzy msgid "Queued for Encode" msgstr "В опашката за дешифриране" #: ../pan/gui/task-pane.cc:515 msgid "Queued" msgstr "В опашката" #: ../pan/gui/task-pane.cc:516 msgid "Stopped" msgstr "Спряна" #: ../pan/gui/task-pane.cc:517 msgid "Removing" msgstr "Премахване" #: ../pan/gui/task-pane.cc:546 #, c-format msgid "%d%% Done" msgstr "%d%% готово" #: ../pan/gui/task-pane.cc:552 #, c-format msgid "%d:%02d:%02d Remaining (%d @ %lu KiB/s)" msgstr "Остават %d:%02d:%02d (%d @ %lu KiB/сек)" #: ../pan/gui/task-pane.cc:646 ../pan/gui/task-pane.cc:647 msgid "Move To Top" msgstr "" #: ../pan/gui/task-pane.cc:651 ../pan/gui/task-pane.cc:652 msgid "Move To Bottom" msgstr "" #: ../pan/gui/task-pane.cc:656 ../pan/gui/task-pane.cc:657 #, fuzzy msgid "Stop Task" msgstr "Спиране на задачи" #: ../pan/gui/task-pane.cc:661 ../pan/gui/task-pane.cc:662 #, fuzzy msgid "Delete Task" msgstr "Изтриване на задачи" #: ../pan/gui/task-pane.cc:666 ../pan/gui/task-pane.cc:667 #, fuzzy msgid "Restart Task" msgstr "Рестартиране на задачи" #: ../pan/gui/task-pane.cc:671 ../pan/gui/task-pane.cc:672 msgid "Change Download Destination" msgstr "" #: ../pan/gui/task-pane.cc:729 msgid "_Online" msgstr "„_Включен“" #: ../pan/gui/task-pane.cc:746 msgid "Restart Tasks" msgstr "Рестартиране на задачи" #: ../pan/gui/task-pane.cc:748 msgid "Stop Tasks" msgstr "Спиране на задачи" #: ../pan/gui/task-pane.cc:750 msgid "Delete Tasks" msgstr "Изтриване на задачи" #: ../pan/gui/url.cc:123 #, c-format msgid "Error starting URL: %s (Command was: %s)" msgstr "Грешка при изпълнение на адрес: %s (Командата беше: %s)" #: ../pan/tasks/decoder.cc:115 #, c-format msgid "Couldn't save file \"%s\": %s" msgstr "Неуспех при запазването на файла „%s“: %s" #: ../pan/tasks/decoder.cc:137 ../pan/tasks/encoder.cc:136 msgid "Error initializing uulib" msgstr "Грешка при инициализиране на uulib" #: ../pan/tasks/decoder.cc:152 ../pan/tasks/socket-impl-gio.cc:352 #: ../pan/tasks/socket-impl-openssl.cc:634 #, c-format msgid "Error reading from %s: %s" msgstr "Грешка при четене от %s: %s" #: ../pan/tasks/decoder.cc:192 #, c-format msgid "Saved \"%s\"" msgstr "Запазено е „%s“" #: ../pan/tasks/decoder.cc:199 #, c-format msgid "" "Error saving \"%s\":\n" "%s." msgstr "" "Грешка при запазване на „%s“:\n" "%s." #: ../pan/tasks/decoder.cc:314 ../pan/tasks/task-article.cc:350 #, c-format msgid "Decoding %s" msgstr "Дешифриране на %s" #: ../pan/tasks/encoder.cc:102 ../pan/tasks/encoder.cc:155 #, fuzzy, c-format msgid "Error loading %s from cache." msgstr "Грешка при четене от %s: %s" #: ../pan/tasks/encoder.cc:177 #, fuzzy, c-format msgid "Error encoding %s: %s" msgstr "Грешка при четене от %s: %s" #: ../pan/tasks/encoder.cc:269 #, fuzzy, c-format msgid "Encoding %s" msgstr "Дешифриране" #: ../pan/tasks/nntp.cc:126 #, c-format msgid "%s requires a username, but none is set." msgstr "%s изисква потребителско име, но не е зададено такова." #: ../pan/tasks/nntp.cc:139 #, c-format msgid "%s requires a password, but none is set." msgstr "%s изисква парола, но не е зададена такава." #: ../pan/tasks/nntp.cc:205 #, c-format msgid "Sending \"%s\" to %s returned an error: %s" msgstr "Изпращането на „%s“ до %s върна грешка: %s" #: ../pan/tasks/nntp.cc:228 #, c-format msgid "Sending \"%s\" to %s returned an unrecognized response: \"%s\"" msgstr "Изпращането на „%s“ до %s върна неразпознат отговор: „%s“" #: ../pan/tasks/nntp-pool.cc:222 #, c-format msgid "Unable to connect to \"%s\"" msgstr "Неуспех при свързването с „%s“" #: ../pan/tasks/socket-impl-gio.cc:173 ../pan/tasks/socket-impl-gio.cc:211 #: ../pan/tasks/socket-impl-openssl.cc:214 #: ../pan/tasks/socket-impl-openssl.cc:252 #, c-format msgid "Error connecting to \"%s\"" msgstr "Неуспех при свързването с „%s“" #: ../pan/tasks/socket-impl-gio.cc:351 ../pan/tasks/socket-impl-openssl.cc:633 msgid "Unknown Error" msgstr "Неизвестна грешка" #: ../pan/tasks/task-article.cc:61 ../pan/tasks/task-article.cc:156 #: ../pan/tasks/task-article.cc:159 #, c-format msgid "Saving %s" msgstr "Запазване на %s" #: ../pan/tasks/task-article.cc:63 #, c-format msgid "Reading %s" msgstr "Четене на %s" #: ../pan/tasks/task-article.cc:322 #, c-format msgid "Article \"%s\" is incomplete -- the news server(s) don't have part %s" msgstr "Статията „%s“ е непълна -- липсва част %s на сървъра за новини" #: ../pan/tasks/task-groups.cc:40 #, c-format msgid "Getting group list from \"%s\"" msgstr "Изтегляне на списък с групи от „%s“" #: ../pan/tasks/task-groups.cc:122 #, c-format msgid "Fetched %lu Groups" msgstr "Изтеглени %lu групи" #: ../pan/tasks/task-post.cc:35 #, c-format msgid "Posting \"%s\"" msgstr "Изпращане на „%s“" #: ../pan/tasks/task-post.cc:76 #, fuzzy, c-format msgid "Posting of \"%s\" failed: %s" msgstr "Профили за изпращане" #: ../pan/tasks/task-post.cc:81 #, c-format msgid "Posting of \"%s\" succesful: %s" msgstr "" #: ../pan/tasks/task-upload.cc:51 #, fuzzy, c-format msgid "Uploading %s" msgstr "Четене на %s" #: ../pan/tasks/task-upload.cc:249 #, c-format msgid "Uploading %s - Part %d of %d" msgstr "" #: ../pan/tasks/task-upload.cc:251 #, c-format msgid "Uploading Message body with Subject \"%s\"" msgstr "" #: ../pan/tasks/task-upload.cc:308 #, c-format msgid "Posting of File %s (Part %d of %d) failed: No Posts allowed by server." msgstr "" #: ../pan/tasks/task-upload.cc:316 #, fuzzy, c-format msgid "Posting of File %s (Part %d of %d) failed: %s" msgstr "Профили за изпращане" #: ../pan/tasks/task-upload.cc:326 ../pan/tasks/task-upload.cc:333 #, c-format msgid "Posting of file %s (Part %d of %d) succesful: %s" msgstr "" #: ../pan/tasks/task-upload.cc:343 #, fuzzy, c-format msgid "Posting of file %s succesful: %s" msgstr "Профили за изпращане" #: ../pan/tasks/task-upload.cc:347 #, c-format msgid "" "Posting of file %s not completely successful: Check the log (right-click on " "list item) !" msgstr "" #: ../pan/tasks/task-upload.cc:364 #, c-format msgid "" "Posting of file %s not successful: Check the log (right-click on list item) !" msgstr "" #: ../pan/tasks/task-xover.cc:79 #, c-format msgid "Getting all headers for \"%s\"" msgstr "Изтегляне на всички заглавия за „%s“" #: ../pan/tasks/task-xover.cc:81 #, c-format msgid "Getting new headers for \"%s\"" msgstr "Изтегляне на нови заглавия за „%s“" #. SAMPLE #: ../pan/tasks/task-xover.cc:83 #, c-format msgid "Sampling headers for \"%s\"" msgstr "Подреждане на заглавия за „%s“" #: ../pan/tasks/task-xover.cc:369 #, c-format msgid "%s (%lu parts, %lu articles)" msgstr "%s (%lu части, %lu статии)" #: ../pan/tasks/task-xoverinfo.cc:78 #, fuzzy, c-format msgid "Getting header counts for \"%s\"" msgstr "Изтегляне на всички заглавия за „%s“" #: ../pan/usenet-utils/filter-info.cc:163 msgid "article doesn't have attachments" msgstr "статията не съдържа прикрепени файлове" #: ../pan/usenet-utils/filter-info.cc:167 msgid "the article has attachments" msgstr "статията съдържа прикрепени файлове" #: ../pan/usenet-utils/filter-info.cc:171 msgid "the article isn't cached locally" msgstr "статията не е кеширана локално" #: ../pan/usenet-utils/filter-info.cc:175 msgid "the article is cached locally" msgstr "статията е кеширана локално" #: ../pan/usenet-utils/filter-info.cc:179 msgid "the article wasn't posted by you" msgstr "статията не е изпратена от мен" #: ../pan/usenet-utils/filter-info.cc:183 msgid "the article was posted by you" msgstr "статията е изпратена от мен" #: ../pan/usenet-utils/filter-info.cc:187 msgid "the article has been read" msgstr "статията е прочетена" #: ../pan/usenet-utils/filter-info.cc:191 msgid "the article hasn't been read" msgstr "статията не е прочетена" #: ../pan/usenet-utils/filter-info.cc:195 #, c-format msgid "the article is less than %ld bytes long" msgstr "статията е по-малка от %ld байта" #: ../pan/usenet-utils/filter-info.cc:200 #, c-format msgid "the article is at least %ld bytes long" msgstr "статията е поне %ld байта" #: ../pan/usenet-utils/filter-info.cc:205 #, c-format msgid "the article is less than %ld lines long" msgstr "статията е по-кратка от %ld реда" #: ../pan/usenet-utils/filter-info.cc:210 #, c-format msgid "the article is at least %ld lines long" msgstr "статията е поне %ld реда дълга" #: ../pan/usenet-utils/filter-info.cc:215 #, c-format msgid "the article is less than %ld days old" msgstr "статията е по-нова от %ld дни" #: ../pan/usenet-utils/filter-info.cc:220 #, c-format msgid "the article is at least %ld days old" msgstr "статията е поне %ld дни стара" #: ../pan/usenet-utils/filter-info.cc:225 #, c-format msgid "the article was posted to less than %ld groups" msgstr "статията е изпратена до по-малко от %ld групи" #: ../pan/usenet-utils/filter-info.cc:230 #, c-format msgid "the article was posted to at least %ld groups" msgstr "статията е изпратена поне до %ld групи" #: ../pan/usenet-utils/filter-info.cc:235 #, c-format msgid "the article's score is less than %ld" msgstr "точките на статията са по-малко от %ld" #: ../pan/usenet-utils/filter-info.cc:240 #, c-format msgid "the article's score is %ld or higher" msgstr "точките на статията са %ld или повече" #: ../pan/usenet-utils/filter-info.cc:249 #: ../pan/usenet-utils/filter-info.cc:259 #, c-format msgid "%s doesn't contain \"%s\"" msgstr "%s не съдържа „%s“" #: ../pan/usenet-utils/filter-info.cc:250 #: ../pan/usenet-utils/filter-info.cc:260 #, c-format msgid "%s isn't \"%s\"" msgstr "%s не е „%s“" #: ../pan/usenet-utils/filter-info.cc:251 #: ../pan/usenet-utils/filter-info.cc:261 #, c-format msgid "%s doesn't begin with \"%s\"" msgstr "%s не започва с „%s“" #: ../pan/usenet-utils/filter-info.cc:252 #: ../pan/usenet-utils/filter-info.cc:262 #, c-format msgid "%s doesn't end with \"%s\"" msgstr "%s не завършва с „%s“" #: ../pan/usenet-utils/filter-info.cc:253 #: ../pan/usenet-utils/filter-info.cc:263 #, c-format msgid "%s doesn't match the regex \"%s\"" msgstr "%s не съвпада с регулярния израз „%s“" #: ../pan/usenet-utils/filter-info.cc:275 #, c-format msgid "%s contains \"%s\"" msgstr "%s съдържа „%s“" #: ../pan/usenet-utils/filter-info.cc:276 #, c-format msgid "%s is \"%s\"" msgstr "%s е „%s“" #: ../pan/usenet-utils/filter-info.cc:277 #, c-format msgid "%s begins with \"%s\"" msgstr "%s започва с „%s“" #: ../pan/usenet-utils/filter-info.cc:278 #, c-format msgid "%s ends with \"%s\"" msgstr "%s завършва с „%s“" #: ../pan/usenet-utils/filter-info.cc:279 #, c-format msgid "%s matches the regex \"%s\"" msgstr "%s съвпада с регулярния израз „%s“" #: ../pan/usenet-utils/filter-info.cc:285 msgid "Any of these tests fail:" msgstr "Която и да е от тези проби не минава:" #: ../pan/usenet-utils/filter-info.cc:292 msgid "All of these tests pass:" msgstr "Всички от тези проби минават:" #: ../pan/usenet-utils/filter-info.cc:299 msgid "None of these tests pass:" msgstr "Нито една от тези проби не минава:" #: ../pan/usenet-utils/filter-info.cc:306 msgid "Any of these tests pass:" msgstr "Която и да е от тези проби минава:" #: ../pan/usenet-utils/gnksa.cc:878 #, c-format msgid "No email address provided; generating message-id with domain \"%s\"" msgstr "" "Няма зададен адрес на е-поща; генериране на идентификатора на писмото с " "домейн „%s“" #: ../pan/usenet-utils/message-check.cc:124 msgid "Warning: Reply seems to be top-posted." msgstr "Предупреждение: Изглежда отговорът е написан над текста." #: ../pan/usenet-utils/message-check.cc:145 msgid "Warning: The signature marker should be \"-- \", not \"--\"." msgstr "Предупреждение: Маркерът за подпис трябва да е „-- “, a не „--“." #: ../pan/usenet-utils/message-check.cc:162 msgid "Warning: Signature prefix with no signature." msgstr "Предупреждение: Представка без подпис." #: ../pan/usenet-utils/message-check.cc:167 msgid "Warning: Signature is more than 4 lines long." msgstr "Предупреждение: Подписът е повече от 4 реда" #: ../pan/usenet-utils/message-check.cc:172 msgid "Warning: Signature is more than 80 characters wide." msgstr "Предупреждение: Подписът е по-дълъг от 80 знака." #: ../pan/usenet-utils/message-check.cc:198 #, fuzzy, c-format msgid "Warning: %d line is more than 80 characters wide." msgid_plural "Warning: %d lines are more than 80 characters wide." msgstr[0] "Предупреждение: %d реда са по-дълги от 80 знака." msgstr[1] "Предупреждение: %d реда са по-дълги от 80 знака." #: ../pan/usenet-utils/message-check.cc:223 msgid "Error: Message is empty." msgstr "Грешка: Празно съобщение." #: ../pan/usenet-utils/message-check.cc:258 msgid "Warning: The message is entirely quoted text!" msgstr "Предупреждение: Съобщението е изцяло от цитиран текст!" #: ../pan/usenet-utils/message-check.cc:259 msgid "Warning: The message is mostly quoted text." msgstr "Предупреждение: Съобщението е основно цитиран текст." #: ../pan/usenet-utils/message-check.cc:309 msgid "Error: Message appears to have no new content." msgstr "Грешка: Изглежда съобщението няма ново съдържание." #: ../pan/usenet-utils/message-check.cc:344 #: ../pan/usenet-utils/message-check.cc:383 #, c-format msgid "" "Warning: The posting profile's server doesn't carry newsgroup\n" "\t\"%s\".\n" "\tIf the group name is correct, switch profiles in the \"From:\"\n" "\tline or edit the profile with \"Edit|Manage Posting Profiles\"." msgstr "" "Предупреждение: Профилът за изпращане на сървъра не съдържа група за новини\n" "\t„%s“.\n" "\tАко името на групата е правилно, сменете профилите в полето „От:“\n" "\tили редактирайте профила от „Редактиране|Редактиране на профили за " "изпращане“." #: ../pan/usenet-utils/message-check.cc:355 msgid "Warning: Following-Up to too many groups." msgstr "Предупреждение: Отговор до твърде много групи." #: ../pan/usenet-utils/message-check.cc:366 msgid "Error: No Subject specified." msgstr "Грешка: Няма указана тема." #: ../pan/usenet-utils/message-check.cc:395 #, c-format msgid "Warning: Group \"%s\" is read-only." msgstr "Предупреждение: Групата „%s“ е само за четене." #: ../pan/usenet-utils/message-check.cc:404 msgid "Error: Posting to a very large number of groups." msgstr "Грешка: Изпращане до много голям брой групи." #: ../pan/usenet-utils/message-check.cc:409 msgid "Warning: Posting to a large number of groups." msgstr "Предупреждение: Изпращане до голям брой групи." #: ../pan/usenet-utils/message-check.cc:416 msgid "Warning: Crossposting without setting Followup-To header." msgstr "" "Предупреждение: Изпращане до повече от една група без да е посочена заглавна " "част „Последвал-отговор-до.“" #: ../pan/usenet-utils/message-check.cc:441 msgid "Error: Bad email address." msgstr "Грешка: Невалиден адрес на е-поща." #: ../pan/usenet-utils/message-check.cc:450 msgid "Warning: Most newsgroups frown upon HTML posts." msgstr "Предупреждение: Повечето групи за новини се мръщят на статии в HTML." #: ../pan/usenet-utils/message-check.cc:486 msgid "Error: No Recipients." msgstr "Грешка: Няма получатели" #: ../pan/usenet-utils/scorefile.cc:304 #, c-format msgid "" "Error reading score in %*.*s, line %d: expected 'Expires: MM/DD/YYYY' or " "'Expires: DD-MM-YYYY'." msgstr "" "Грешка при четене на точки в %*.*s, ред %d: очаква се „Изтича на: ММ/ДД/" "ГГГГ“ или „Изтича на: ДД-ММ-ГГГГ“." #: ../pan/usenet-utils/scorefile.cc:307 #, c-format msgid "Expired old score from %*.*s, line %d" msgstr "Изтекли стари точки от %*.*s, ред %d" #: ../pan/usenet-utils/scorefile.cc:380 #, c-format msgid "Error reading score in %*.*s, line %d: unexpected line." msgstr "Грешка при четене на точки в %*.*s, ред %d: неочакван ред." #: ../pan/usenet-utils/scorefile.cc:428 #, c-format msgid "Read %lu scoring rules in %lu sections from \"%s\"" msgstr "Прочетени са %lu правила за точкуване в %lu секции от „%s“" #: ../pan/usenet-utils/ssl-utils.h:199 #, fuzzy, c-format msgid "Error printing the server certificate for '%s'" msgstr "Грешка при стартиране на външен редактор: %s" #: ../pan/usenet-utils/ssl-utils.h:216 #, c-format msgid "" "The current server '%s' sent this security certificate :\n" "\n" msgstr "" #: ../pan/usenet-utils/ssl-utils.h:217 #, c-format msgid "" "Certificate information for server '%s' :\n" "\n" msgstr "" #: ../pan/usenet-utils/ssl-utils.h:219 #, c-format msgid "" "%sIssuer information:\n" "%s\n" "Valid until : %s\n" "\n" "Not valid before : %s\n" "\n" msgstr "" #: ../pan/usenet-utils/text-massager.cc:397 msgid "> [quoted text muted]" msgstr "> [цитираният текст е пропуснат]" #~ msgid "Read News from Usenet" #~ msgstr "Четене на новини от Usenet" #, fuzzy #~ msgid "_Toggle Flag on for Thread" #~ msgstr "_Следене на нишката" #~ msgid "Attachment not shown: MIME type %s/%s; filename %s\n" #~ msgstr "Прикрепеният файл не е показан: тип MIME %s/%s; файл %s\n" #~ msgid "Attachment not shown: MIME type %s/%s\n" #~ msgstr "Прикрепеният файл не е показан: тип MIME %s/%s\n" #~ msgid "" #~ "Spellchecker not found!\n" #~ " \n" #~ "Was this copy of Pan compiled with GtkSpell enabled?" #~ msgstr "" #~ "Програмата за проверка на правописа не е намерена!\n" #~ " \n" #~ "Компилиран ли е Pan с включен GtkSpell?" #, fuzzy #~ msgid "Signer : " #~ msgstr "Подпис:" #~ msgid "_Signature:" #~ msgstr "По_дпис:" #~ msgid "Creating directory \"%s\"" #~ msgstr "Създаване на папка „%s“" #~ msgid "Couldn't create directory \"%s\": %s" #~ msgstr "Неуспех при създаването на папка „%s“: %s" #~ msgid "" #~ "Your copy of libpcre doesn't support UTF-8. UTF-8 regular expressions " #~ "may fail." #~ msgstr "" #~ "Инсталираната версия на libpcre не поддържа UTF-8. Регулярните изрази в " #~ "UTF-8 може и да не работят." #~ msgid "Can't use regular expression \"%s\": %s at position %d" #~ msgstr "Не може да се използва регулярен израз „%s“: %s на мястото на %d" #~ msgid "Posting Article" #~ msgstr "Изпращане на статията" #~ msgid "Posting..." #~ msgstr "Изпращане..." pan-0.162/po/bs.po000066400000000000000000002742701475412772400137130ustar00rootroot00000000000000# Bosnian translation for bosnianuniversetranslation # Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013 # This file is distributed under the same license as the bosnianuniversetranslation package. # FIRST AUTHOR , 2013. # msgid "" msgstr "" "Project-Id-Version: bosnianuniversetranslation\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/pan/issues\n" "POT-Creation-Date: 2015-02-26 23:45+0000\n" "PO-Revision-Date: 2015-01-09 14:19+0100\n" "Last-Translator: Samir Ribic \n" "Language-Team: Bosnian \n" "Language: bs\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "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" "X-Generator: Launchpad (build 17341)\n" "X-Launchpad-Export-Date: 2015-02-15 06:14+0000\n" #. update the titlebar #: ../pan.desktop.in.h:1 ../pan/gui/dl-headers-ui.cc:106 #: ../pan/gui/gui.cc:1040 ../pan/gui/gui.cc:1667 ../pan/gui/gui.cc:2009 #: ../pan/gui/score-add-ui.cc:602 msgid "Pan" msgstr "Paniraj" #: ../pan.desktop.in.h:2 msgid "Newsreader" msgstr "Klijent za diskusione grupe" #: ../pan.desktop.in.h:3 msgid "Read and Post Usenet Articles" msgstr "Pročitajte i postavite Usenet članke putem interneta" #: ../pan/data/article-cache.cc:144 ../pan/data/encode-cache.cc:62 #, c-format msgid "Error opening directory: \"%s\": %s" msgstr "Greška pri otvaranju direktorija: \"%s\": %s" #: ../pan/data/article-cache.cc:235 ../pan/data/article-cache.cc:244 #: ../pan/data-impl/data-io.cc:199 ../pan/data-impl/data-io.cc:231 #: ../pan/gui/post-ui.cc:1723 #, c-format msgid "Unable to save \"%s\" %s" msgstr "Nije moguće sačuvati \"%s\" %s" #: ../pan/data/article-cache.cc:362 #, c-format msgid "Error opening file \"%s\" %s" msgstr "Greška pri otvaranju datoteke \"%s\" %s" #: ../pan/data/article-cache.cc:393 ../pan/data-impl/profiles.cc:174 #: ../pan/data-impl/server.cc:500 ../pan/general/file-util.cc:311 #: ../pan/gui/post-ui.cc:638 ../pan/gui/task-pane.cc:737 #, c-format msgid "Error reading file \"%s\": %s" msgstr "Greška pri čitanju datoteke \"%s\": %s" #: ../pan/data/cert-store.cc:262 #, c-format msgid "Error opening SSL certificate directory: \"%s\": %s" msgstr "Greška pri otvaranju SSL direktorijuma sa certifikatima: \"%s\": %s" #: ../pan/data/cert-store.cc:293 #, c-format msgid "Successfully added %d SSL PEM certificate(s) to Certificate Store." msgstr "Uspješno dodat(i) %d SSL PEM certifikat(i) u Prodavnicu Certifikata." #: ../pan/data/cert-store.cc:313 msgid "" "Error initializing Certificate Store. Check that the permissions for the " "folders ~/.pan2 and ~/.pan2/ssl_certs are set correctly. Fatal, exiting." msgstr "" "Greška pri inicijaliziranju Prodavnice Certifikata. Provjeriti da li su " "pravilno podešene pristupnosti direktorijima ~/.pan2 i ~/.pan2/ssl_certs. U " "slučaju da su pristupnosti fatalne, izađi." #. load_group_descriptions (*_data_io); #: ../pan/data-impl/data-impl.cc:113 #, c-format msgid "Loaded data backend in %.1f seconds" msgstr "Podatkovni korisnički izlaz učitan za %.1f sekundi" #: ../pan/data-impl/data-impl.cc:143 msgid "Pan Newsreader's server passwords" msgstr "Serverske šifre Pan Čitača Novosti." #: ../pan/data-impl/groups.cc:94 #, c-format msgid "Skipping newsrc file for server \"%s\"" msgstr "Preskačem newsrc fatoteku za server \"%s\"" #: ../pan/data-impl/headers.cc:606 #, c-format msgid "Expired %lu old articles from \"%s\"" msgstr "Isteklo %lu starih članaka iz \"%s\"" #: ../pan/data-impl/headers.cc:613 #, c-format msgid "" "Unsupported data version for %s headers: %d.\n" "Are you running an old version of Pan by accident?" msgstr "" "Nepodržana verzija podataka za %s zaglavlja: %d.\n" "Da li greškom koristite staru verziju Pan-a?" #: ../pan/data-impl/headers.cc:628 #, c-format msgid "Loaded %lu articles for \"%s\" in %.1f seconds (%.0f per second)" msgstr "Učitano %lu članaka za \"%s\" u %.1f sekundi (%.0f 1/s)" #: ../pan/data-impl/headers.cc:857 #, c-format msgid "" "Saved %lu parts, %lu articles in \"%s\" in %.1f seconds (%.0f articles/sec)" msgstr "" "Spašeno %lu dijelova, %lu članaka u \"%s\" za %.1f sekundi (%.0f artikl/s)" #: ../pan/data-impl/headers.cc:1191 #, c-format msgid "Added %lu articles to %s." msgstr "Dodano %lu članaka u %s." #: ../pan/data-impl/server.cc:261 #, c-format msgid "There seems to be no password set for server %s." msgstr "Čini se da šifra za server %s nije postavljena." #: ../pan/data-impl/server.cc:265 msgid "GNOME Keyring denied access to the passwords." msgstr "GNOME Prsten Ključa je zabranio pristup šiframa." #: ../pan/data-impl/xover.cc:243 #, c-format msgid "Error reading from %s: unknown group \"%s\"" msgstr "Greška pri čitanju iz %s: nepoznata grupa \"%s\"" #. build the locale strings #: ../pan/general/e-util.cc:211 msgid "%l:%M %p" msgstr "%l:%M %p" #: ../pan/general/e-util.cc:212 msgid "Today %l:%M %p" msgstr "Danas %l:%M %p" #: ../pan/general/e-util.cc:213 msgid "%a %l:%M %p" msgstr "%a %l:%M %p" #: ../pan/general/e-util.cc:214 msgid "%b %d %l:%M %p" msgstr "%b %d %l:%M %p" #: ../pan/general/e-util.cc:215 msgid "%b %d %Y" msgstr "%d.%b.%Y." #: ../pan/general/e-util.cc:240 msgid "?" msgstr "?" #: ../pan/general/text-match.cc:193 #, c-format msgid "Can't use regular expression \"%s\": %s" msgstr "Ne mogu da koristm regularni izraz \"%s\": %s" #: ../pan/general/utf8-utils.cc:213 msgid "Couldn't determine article encoding. Non-UTF8 characters were removed." msgstr "" "Ne mogu da izvršim konverziju artikla. Karakteri koji nisu UTF8 tipa su " "uklonjeni." #: ../pan/gui/actions.cc:303 ../pan/gui/post-ui.cc:446 msgid "_File" msgstr "_Datoteka" #: ../pan/gui/actions.cc:304 ../pan/gui/post-ui.cc:447 msgid "_Edit" msgstr "_Izmijeni" #: ../pan/gui/actions.cc:305 ../pan/gui/prefs-ui.cc:1107 msgid "_Layout" msgstr "_Raspored" #: ../pan/gui/actions.cc:306 msgid "_Group Pane" msgstr "_Grupa Pan-a" #: ../pan/gui/actions.cc:307 msgid "_Header Pane" msgstr "_Zaglavlje Pan-a" #: ../pan/gui/actions.cc:308 msgid "_Body Pane" msgstr "_Tijelo Pan-a" #: ../pan/gui/actions.cc:309 msgid "_View" msgstr "_Pogled" #: ../pan/gui/actions.cc:310 msgid "Filte_r" msgstr "Filte_r" #: ../pan/gui/actions.cc:311 msgid "_Go" msgstr "_Idi" #: ../pan/gui/actions.cc:312 ../pan/gui/prefs-ui.cc:1157 msgid "_Actions" msgstr "_Akcije" #: ../pan/gui/actions.cc:313 msgid "_Articles" msgstr "_Članci" #: ../pan/gui/actions.cc:314 msgid "G_roups" msgstr "G_rupe" #: ../pan/gui/actions.cc:315 ../pan/gui/actions.cc:316 msgid "_Post" msgstr "_Slanje" #: ../pan/gui/actions.cc:317 msgid "_Help" msgstr "_Pomoć" #: ../pan/gui/actions.cc:320 msgid "_Read Group" msgstr "_Učitaj Grupu" #: ../pan/gui/actions.cc:321 msgid "Read Group" msgstr "Učitaj Grupu" #: ../pan/gui/actions.cc:325 msgid "_Mark Selected Groups Read" msgstr "_Označi Odabrane Grupe kao Učitane" #: ../pan/gui/actions.cc:326 msgid "Mark Selected Groups Read" msgstr "Označi Odabrane Grupe kao Pročitane" #: ../pan/gui/actions.cc:330 msgid "_Delete Selected Groups' Articles" msgstr "_Obriši Članke iz Odabrane Grupe" #: ../pan/gui/actions.cc:331 msgid "Delete Selected Groups' Articles" msgstr "Obriši Članke iz Odabrane Grupe" #: ../pan/gui/actions.cc:335 msgid "Get New _Headers in Selected Groups" msgstr "Preuzmi Nova _Zaglavlja u Odabranim Grupama" #: ../pan/gui/actions.cc:336 msgid "Get New Headers in Selected Groups" msgstr "Preuzmi Nova Zaglavlja u Odabranim Grupama" #: ../pan/gui/actions.cc:340 ../pan/gui/actions.cc:345 msgid "Get New _Headers in Subscribed Groups" msgstr "Preuzmi Nova _Zaglavlja u Pretplaćenim Grupana" #: ../pan/gui/actions.cc:341 ../pan/gui/actions.cc:346 msgid "Get New Headers in Subscribed Groups" msgstr "Preuzmi Nova Zaglavlja u Pretplaćenim Grupama" #: ../pan/gui/actions.cc:350 msgid "Get _Headers..." msgstr "Preuzmi _Zaglavlja..." #: ../pan/gui/actions.cc:351 msgid "Get Headers..." msgstr "Preuzmi Zaglavlja..." #: ../pan/gui/actions.cc:355 ../pan/gui/actions.cc:356 msgid "Refresh Group List" msgstr "Osvježi Liste Grupa" #: ../pan/gui/actions.cc:360 msgid "_Subscribe" msgstr "Pretplati_se" #: ../pan/gui/actions.cc:361 msgid "Subscribe" msgstr "Pretplati se" #: ../pan/gui/actions.cc:365 msgid "_Unsubscribe" msgstr "Odjavi_se" #: ../pan/gui/actions.cc:366 msgid "Unsubscribe" msgstr "Odjavi se" #: ../pan/gui/actions.cc:370 msgid "_Save Articles..." msgstr "_Spasi Članke..." #: ../pan/gui/actions.cc:371 msgid "Save Articles..." msgstr "Spasi Članke..." #: ../pan/gui/actions.cc:375 msgid "Save Articles from Selected _NZB..." msgstr "Spasi Članke iz Odabranog _NZB..." #: ../pan/gui/actions.cc:376 msgid "Save Articles from Selected NZB" msgstr "Spasi Članke iz Odabranog NZB" #: ../pan/gui/actions.cc:380 msgid "Save Articles to an NZB _File..." msgstr "Spasi Članke u Odabranu NZB _Datoteku..." #: ../pan/gui/actions.cc:381 msgid "Save Articles to an NZB File" msgstr "Spasi Članke u Odabranu NZB Datoteku" #: ../pan/gui/actions.cc:385 ../pan/gui/actions.cc:386 msgid "Print" msgstr "Štampaj" #: ../pan/gui/actions.cc:390 msgid "_Import NZB Files..." msgstr "_Unesi NZB Datoteke..." #: ../pan/gui/actions.cc:395 msgid "_Cancel Last Task" msgstr "_Poništi posljednju Naredbu" #: ../pan/gui/actions.cc:400 msgid "_Task Manager" msgstr "_Upravitelj Naredbama" #: ../pan/gui/actions.cc:405 msgid "_Event Log" msgstr "_Zapisnik Događaja" #: ../pan/gui/actions.cc:410 msgid "_Quit" msgstr "_Odustani" #: ../pan/gui/actions.cc:415 msgid "Select _All Articles" msgstr "Odaberi _Sve Članke" #: ../pan/gui/actions.cc:420 msgid "_Deselect All Articles" msgstr "_Poništi Odabir Svih Članaka" #: ../pan/gui/actions.cc:425 msgid "Add Su_bthreads to Selection" msgstr "Dodaj Pod_niti u Odabir" #: ../pan/gui/actions.cc:430 msgid "Add _Threads to Selection" msgstr "Dodaj _Niti u Odabir" #: ../pan/gui/actions.cc:435 msgid "Add _Similar Articles to Selection" msgstr "Dodaj _Slične Članke u Odabir" #: ../pan/gui/actions.cc:440 msgid "Select Article _Body" msgstr "Označi _Tijelo Članka" #: ../pan/gui/actions.cc:445 msgid "Edit _Preferences" msgstr "Izmijeni _Osobine" #: ../pan/gui/actions.cc:450 msgid "Edit Selected _Group's Preferences" msgstr "Izmijeni Osobine Odabrane _Grupe" #: ../pan/gui/actions.cc:455 ../pan/gui/post-ui.cc:463 msgid "Edit P_osting Profiles" msgstr "Izmijeni IProfile O_bjavljivanja" #: ../pan/gui/actions.cc:460 msgid "Edit _News Servers" msgstr "Izmijeni Servere _Novosti" #: ../pan/gui/actions.cc:465 msgid "Jump to _Group Tab" msgstr "Skoči na Tab _Grupe" #: ../pan/gui/actions.cc:470 msgid "Jump to _Header Tab" msgstr "Skoči na Tab _Zaglavlja" #: ../pan/gui/actions.cc:475 msgid "Jump to _Body Tab" msgstr "Skoči na Tab _Tijela" #: ../pan/gui/actions.cc:480 msgid "_Rot13 Selected Text" msgstr "_Rot13 Označeni Tekst" #: ../pan/gui/actions.cc:485 msgid "Clear _Header Pane" msgstr "Očisti _zaglavlje panela" #: ../pan/gui/actions.cc:490 msgid "Clear _Body Pane" msgstr "Očisti _tijelo panela" #: ../pan/gui/actions.cc:495 msgid "Cache Article" msgstr "Arhiviraj članak" #: ../pan/gui/actions.cc:500 msgid "Read Article" msgstr "Učitaj članak" #: ../pan/gui/actions.cc:505 msgid "Show Article Information" msgstr "Prikaži Informacije o Članku" #: ../pan/gui/actions.cc:510 msgid "Read _More" msgstr "Učitaj _Više" #: ../pan/gui/actions.cc:511 msgid "Read More" msgstr "Učitaj Više" #: ../pan/gui/actions.cc:515 msgid "Read _Back" msgstr "Učitaj _Manje" #: ../pan/gui/actions.cc:516 msgid "Read Back" msgstr "Učitaj Manje" #: ../pan/gui/actions.cc:520 msgid "Next _Unread Group" msgstr "Iduća _Nepročitana Grupa" #: ../pan/gui/actions.cc:525 msgid "Next _Group" msgstr "Iduća _Grupa" #: ../pan/gui/actions.cc:530 msgid "Next _Unread Article" msgstr "Idući _Nepročitani Članak" #: ../pan/gui/actions.cc:531 msgid "Next Unread Article" msgstr "Idući Nepročitani Članak" #: ../pan/gui/actions.cc:535 msgid "Next _Article" msgstr "Idući _Članak" #: ../pan/gui/actions.cc:536 msgid "Next Article" msgstr "Idući Članak" #: ../pan/gui/actions.cc:540 msgid "Next _Watched Article" msgstr "Idući _Pregledani članak" #: ../pan/gui/actions.cc:545 msgid "Next Unread _Thread" msgstr "Iduća Nepročitana _Nit" #: ../pan/gui/actions.cc:546 msgid "Next Unread Thread" msgstr "Iduća Nepročitana Nit" #: ../pan/gui/actions.cc:550 msgid "Next Threa_d" msgstr "Iduća _Nit" #: ../pan/gui/actions.cc:555 msgid "Pre_vious Article" msgstr "Pre_thodni članak" #: ../pan/gui/actions.cc:560 msgid "Previous _Thread" msgstr "Prethodna _Nit" #: ../pan/gui/actions.cc:565 msgid "_Parent Article" msgstr "Članak _Roditelj" #: ../pan/gui/actions.cc:570 msgid "Ignore _Author" msgstr "Zanemari _Autora" #: ../pan/gui/actions.cc:574 msgid "_Watch Thread" msgstr "_Pregledaj Nit" #: ../pan/gui/actions.cc:579 msgid "_Ignore Thread" msgstr "_Zanemari Nit" #: ../pan/gui/actions.cc:584 ../pan/gui/actions.cc:585 msgid "_Toggle Flag On/Off for Thread" msgstr "Pinuj Zastavicu Aktivirano/Deaktivirano za Nit" #: ../pan/gui/actions.cc:589 ../pan/gui/actions.cc:590 msgid "_Turn Flag Off for Thread" msgstr "_Deaktiviraj Zastavicu za Nit" #: ../pan/gui/actions.cc:594 ../pan/gui/actions.cc:595 msgid "_Select All Flagged Threads" msgstr "_Označi Sve Aktivirane Niti" #: ../pan/gui/actions.cc:599 ../pan/gui/actions.cc:600 msgid "_Go to Next Flagged Thread" msgstr "_Idi na Iduću Aktiviranu Nit" #: ../pan/gui/actions.cc:604 ../pan/gui/actions.cc:605 msgid "_Go to Last Flagged Thread" msgstr "_Idi na Prethodnu Aktiviranu Nit" #: ../pan/gui/actions.cc:609 ../pan/gui/actions.cc:610 msgid "_Invert Selection" msgstr "_Obrni Izbor" #: ../pan/gui/actions.cc:614 msgid "Edit Article's Watch/Ignore/Score..." msgstr "Izmijeni članke Vidi/Zanemari/Pogodi..." #: ../pan/gui/actions.cc:619 msgid "Add a _Scoring Rule..." msgstr "Dodaj Pravilo _Pogotka..." #: ../pan/gui/actions.cc:624 msgid "Cance_l Article..." msgstr "Po_ništi članak..." #: ../pan/gui/actions.cc:629 msgid "_Supersede Article..." msgstr "_ovo_ne_kontam_:/..." #: ../pan/gui/actions.cc:634 msgid "_Delete Article" msgstr "_Obriši članak" #: ../pan/gui/actions.cc:639 msgid "Clear Article Cache" msgstr "Obriši keš memoriju članka" #: ../pan/gui/actions.cc:644 msgid "_Mark Article as Read" msgstr "_Označi članak pročitanim" #: ../pan/gui/actions.cc:649 msgid "Mark Article as _Unread" msgstr "Označi članak _nepročitanim" #: ../pan/gui/actions.cc:655 msgid "_Mark Thread as Read" msgstr "_Označi nit pročitanom" #: ../pan/gui/actions.cc:660 msgid "Mark Thread as _Unread" msgstr "Označi nit _nepročitanom" #: ../pan/gui/actions.cc:665 msgid "_Post to Newsgroup" msgstr "_Objavi u grupi sa novostima" #: ../pan/gui/actions.cc:666 msgid "Post to Newsgroup" msgstr "Objavi u grupi sa novostima" #: ../pan/gui/actions.cc:670 msgid "_Followup to Newsgroup" msgstr "_Prati grupu sa novostima" #: ../pan/gui/actions.cc:671 msgid "Followup to Newsgroup" msgstr "Prati grupu sa novostima" #: ../pan/gui/actions.cc:675 msgid "_Reply to Author in Mail" msgstr "_Odgovoriti autoru e-mailom" #: ../pan/gui/actions.cc:680 msgid "_Pan Home Page" msgstr "Naslovna strana _Pana" #: ../pan/gui/actions.cc:685 msgid "Give _Feedback or Report a Bug..." msgstr "Podijeli _utiske ili prijavi grešku..." #: ../pan/gui/actions.cc:690 msgid "_Tip Jar..." msgstr "_Tip Jar..." #: ../pan/gui/actions.cc:695 msgid "_About" msgstr "_O Programu" #: ../pan/gui/actions.cc:700 msgid "Edit _SSL Certificates" msgstr "Izmijeni _SSL cetrifikate" #: ../pan/gui/actions.cc:715 msgid "_Thread Headers" msgstr "_Niti zaglavlja" #: ../pan/gui/actions.cc:716 msgid "Wrap Article Body" msgstr "Upakuj tijelo članka" #: ../pan/gui/actions.cc:717 msgid "Show Article Signature" msgstr "Prikaži potpis članka" #: ../pan/gui/actions.cc:718 msgid "Mute _Quoted Text" msgstr "Isključi tekst pod navodnicima" #: ../pan/gui/actions.cc:719 msgid "Show All _Headers in Body Pane" msgstr "Prikaži sva _zaglavlja u tijelu Pan-a" #: ../pan/gui/actions.cc:720 msgid "Show _Smilies as Graphics" msgstr "Grafički prikaži _emotikone" #: ../pan/gui/actions.cc:721 msgid "Show *Bold*, __Underlined__, and /Italic/" msgstr "Prikaži *Podebljano*, __Podvučeno__, i /Kurziv/" #: ../pan/gui/actions.cc:722 msgid "Size Pictures to _Fit" msgstr "_Podesi veličinu slika" #: ../pan/gui/actions.cc:723 msgid "Use _Monospace Font" msgstr "Koristi _neproporcionalni izgled" #: ../pan/gui/actions.cc:724 msgid "Set Focus to Images" msgstr "Podesi fokus na slike" #: ../pan/gui/actions.cc:725 msgid "Highlight _URLs" msgstr "Podebljaj _URL-ove" #: ../pan/gui/actions.cc:728 msgid "_Work Online" msgstr "_Rad na mreži" #: ../pan/gui/actions.cc:729 msgid "_Tabbed Layout" msgstr "_tabulirani okvir" #: ../pan/gui/actions.cc:730 msgid "Show Group _Pane" msgstr "Prikaži panele grupe" #: ../pan/gui/actions.cc:731 msgid "Show Hea_der Pane" msgstr "Prikaži za_glavlje panela" #: ../pan/gui/actions.cc:732 msgid "Show Bod_y Pane" msgstr "Prikaži t_ijelo panela" #: ../pan/gui/actions.cc:733 msgid "Show _Toolbar" msgstr "Prikaži _paletu alata" #: ../pan/gui/actions.cc:734 msgid "Abbreviate Group Names" msgstr "Skraćeni nazivi grupa" #: ../pan/gui/actions.cc:736 msgid "Match Only _Read Articles" msgstr "Gledaj samo _pročitane članke" #: ../pan/gui/actions.cc:736 msgid "Match Only Read Articles" msgstr "Gledaj samo pročitane članke" #: ../pan/gui/actions.cc:737 msgid "Match Only _Unread Articles" msgstr "Gledaj samo _nepročitane članke" #: ../pan/gui/actions.cc:737 msgid "Match Only Unread Articles" msgstr "Gledaj samo nepročitane članke" #: ../pan/gui/actions.cc:738 msgid "Match Only _Cached Articles" msgstr "Gledaj samo članke u _ostavi" #: ../pan/gui/actions.cc:738 msgid "Match Only Cached Articles" msgstr "Gledaj samo članke u ostavi" #: ../pan/gui/actions.cc:739 msgid "Match Only _Complete Articles" msgstr "Gledaj samo _dovršene članke" #: ../pan/gui/actions.cc:739 msgid "Match Only Complete Articles" msgstr "Gledaj samo dovršene članke" #: ../pan/gui/actions.cc:740 msgid "Match Only _My Articles" msgstr "Gledaj samo _moje članke" #: ../pan/gui/actions.cc:740 msgid "Match Only My Articles" msgstr "Gledaj samo moje članke" #: ../pan/gui/actions.cc:741 msgid "Match Only _Watched Articles" msgstr "Gledaj samo _pregledane članke" #: ../pan/gui/actions.cc:741 msgid "Match Only Watched Articles" msgstr "Gledaj samo praćene članke" #: ../pan/gui/actions.cc:743 msgid "Match Scores of 9999 (_Watched)" msgstr "Gledaj bodovano 9999 (_Praćeno)" #: ../pan/gui/actions.cc:744 msgid "Match Scores of 5000...9998 (_High)" msgstr "Prikaži bodovano 5000 - 9998 (_Gledano)" #: ../pan/gui/actions.cc:745 msgid "Match Scores of 1...4999 (Me_dium)" msgstr "Prikaži bodovano 1 - 4999 (_Posjećivano)" #: ../pan/gui/actions.cc:746 msgid "Match Scores of 0 (_Normal)" msgstr "Prikaži bodovano 0 (_Uredu)" #: ../pan/gui/actions.cc:747 msgid "Match Scores of -9998...-1 (_Low)" msgstr "Prikaži bodovano -9998 - -1 (Loše)" #: ../pan/gui/actions.cc:748 msgid "Match Scores of -9999 (_Ignored)" msgstr "Prikaži bodovano -9999 (Ignorisano)" #: ../pan/gui/actions.cc:750 msgid "Enable/Disable All _Rules" msgstr "Omogući/Onemogući sva _pravila" #: ../pan/gui/actions.cc:778 msgid "Show Matching _Articles" msgstr "Prikaži povezane _članke" #: ../pan/gui/actions.cc:779 msgid "Show Matching Articles' _Threads" msgstr "Prikaži _niti povezanih članaka" #: ../pan/gui/actions.cc:780 msgid "Show Matching Articles' _Subthreads" msgstr "Prikaži _podniti povezanih članaka" #: ../pan/gui/body-pane.cc:1056 #, c-format msgid "Unnamed File" msgstr "Neimenovana datoteka" #: ../pan/gui/body-pane.cc:1137 ../pan/gui/gui.cc:1980 #: ../pan/gui/header-pane.cc:1313 ../pan/gui/header-pane.cc:1748 #: ../pan/gui/post-ui.cc:2588 ../pan/gui/prefs-ui.cc:855 #: ../pan/gui/score-add-ui.cc:139 ../pan/gui/task-pane.cc:797 msgid "Subject" msgstr "Naslov" #: ../pan/gui/body-pane.cc:1139 ../pan/gui/gui.cc:1980 msgid "From" msgstr "Šalje:" #: ../pan/gui/body-pane.cc:1141 ../pan/gui/gui.cc:1981 #: ../pan/gui/header-pane.cc:1827 ../pan/gui/log-ui.cc:307 #: ../pan/gui/prefs-ui.cc:851 msgid "Date" msgstr "Datum:" #: ../pan/gui/body-pane.cc:1148 msgid "Newsgroups" msgstr "Grupe za novosti" #: ../pan/gui/body-pane.cc:1155 ../pan/gui/body-pane.cc:1163 #: ../pan/gui/body-pane.cc:1170 msgid "User-Agent" msgstr "Korisnički-agent" #: ../pan/gui/body-pane.cc:1176 msgid "Followup-To" msgstr "Pratiti" #: ../pan/gui/body-pane.cc:1186 msgid "Reply-To" msgstr "Odgovori-na" #: ../pan/gui/body-pane.cc:1229 msgid " from " msgstr " od " #: ../pan/gui/body-pane.cc:1231 msgid " at " msgstr " u " #: ../pan/gui/body-pane.cc:1318 #, c-format msgid "" "This is a PGP-Signed message.\n" "\n" "Signer: %s ('%s')\n" "Valid until: %s\n" "Created on: %s" msgstr "" "Ovo je PGP-Potpisana poruka.\n" "\n" "Potpisuje: %s ('%s')\n" "Važi do: %s\n" "Datum potpisa: %s" #: ../pan/gui/body-pane.cc:1323 msgid "always" msgstr "uvijek" #: ../pan/gui/body-pane.cc:1543 msgid "Copy _URL" msgstr "Kopiraj _URL" #: ../pan/gui/body-pane.cc:1748 msgid "Save Attachment As..." msgstr "Spasi dodatak kao..." #: ../pan/gui/body-pane.cc:1751 msgid "Save All Attachments" msgstr "Spasi sve dodatke" #. add a toolbar for attachments #: ../pan/gui/body-pane.cc:1821 msgid "Attachments" msgstr "Dodaci" #: ../pan/gui/body-pane.cc:1836 msgid "Text View" msgstr "Prikaz teksta" #: ../pan/gui/body-pane.cc:1845 msgid "HTML View" msgstr "Prikaz HTML-a" # translations. #: ../pan/gui/dl-headers-ui.cc:112 #, c-format msgid "%d Group" msgid_plural "%d Groups" msgstr[0] "%d grupa" msgstr[1] "%d grupe" msgstr[2] "%d grupa" #: ../pan/gui/dl-headers-ui.cc:135 msgid "Get the last N _days' headers: " msgstr "Prikaži zaglavlja zadnjih N _dana: " #: ../pan/gui/dl-headers-ui.cc:143 msgid "Get _new headers" msgstr "Prikaži _nova zaglavlja" #: ../pan/gui/dl-headers-ui.cc:147 msgid "Get _all headers" msgstr "Prikaži _sva zaglavlja" #: ../pan/gui/dl-headers-ui.cc:151 msgid "Get the _latest N headers: " msgstr "Prikaži _zadnjih N zaglavlja: " #: ../pan/gui/e-action-combo-box.c:386 ../pan/gui/prefs-ui.cc:848 msgid "Action" msgstr "Radnja" #: ../pan/gui/e-action-combo-box.c:387 msgid "A GtkRadioAction" msgstr "RadnjaZaGtkRadio" #: ../pan/gui/e-charset.c:51 ../pan/gui/task-pane.cc:558 msgid "Unknown" msgstr "Nepoznato" #: ../pan/gui/e-charset.c:52 msgid "Arabic" msgstr "Arapsko" #: ../pan/gui/e-charset.c:53 msgid "Baltic" msgstr "Baltičko" #: ../pan/gui/e-charset.c:54 msgid "Central European" msgstr "Srednjeevropsko" #: ../pan/gui/e-charset.c:55 msgid "Chinese" msgstr "Kinesko" #: ../pan/gui/e-charset.c:56 msgid "Cyrillic" msgstr "Ćirilično" #: ../pan/gui/e-charset.c:57 msgid "Greek" msgstr "Grčko" #: ../pan/gui/e-charset.c:58 msgid "Hebrew" msgstr "Hebrejsko" #: ../pan/gui/e-charset.c:59 msgid "Japanese" msgstr "Japansko" #: ../pan/gui/e-charset.c:60 msgid "Korean" msgstr "Korejansko" #: ../pan/gui/e-charset.c:61 msgid "Thai" msgstr "Tajlandsko" #: ../pan/gui/e-charset.c:62 msgid "Turkish" msgstr "Tursko" #: ../pan/gui/e-charset.c:63 msgid "Unicode" msgstr "Unikod" #: ../pan/gui/e-charset.c:64 msgid "Western European" msgstr "Zapadnoevropsko" #: ../pan/gui/e-charset.c:65 msgid "Western European, New" msgstr "Novo zapadnoevropsko" #: ../pan/gui/e-charset.c:84 ../pan/gui/e-charset.c:85 #: ../pan/gui/e-charset.c:86 msgid "Traditional" msgstr "Tradicionalno" #: ../pan/gui/e-charset.c:87 ../pan/gui/e-charset.c:88 #: ../pan/gui/e-charset.c:89 ../pan/gui/e-charset.c:90 msgid "Simplified" msgstr "Pojednostavljeno" #: ../pan/gui/e-charset.c:93 msgid "Ukrainian" msgstr "Ukrajinsko" #: ../pan/gui/e-charset.c:96 msgid "Visual" msgstr "Vizuelno" #: ../pan/gui/e-charset-combo-box.c:93 ../pan/gui/gui.cc:2178 #: ../pan/gui/post-ui.cc:548 ../pan/gui/prefs-ui.cc:759 msgid "Character Encoding" msgstr "Kodiranje karaktera" #: ../pan/gui/e-charset-combo-box.c:117 msgid "Enter the character set to use" msgstr "Izaberite kodiranje karaktera za upotrebu" #: ../pan/gui/e-charset-combo-box.c:336 msgid "Other..." msgstr "Drugi..." #: ../pan/gui/e-cte-dialog.c:76 msgid "Default Encoding" msgstr "Podrazumijevano kodiranje" #: ../pan/gui/e-cte-dialog.c:78 msgid "7-Bit Encoding" msgstr "7-bitno kodiranje" #: ../pan/gui/e-cte-dialog.c:80 msgid "8-Bit Encoding" msgstr "8-bitno kodiranje" #: ../pan/gui/e-cte-dialog.c:82 msgid "Base64 Encoding" msgstr "Base64 kodiranje" #: ../pan/gui/e-cte-dialog.c:84 msgid "Quoted-Printable Encoding" msgstr "Citirano-Za ispis kodiranje" #: ../pan/gui/group-pane.cc:330 msgid "Sent" msgstr "Poslano" #: ../pan/gui/group-pane.cc:331 msgid "Drafts" msgstr "Skice" #: ../pan/gui/group-pane.cc:537 msgid "Group" msgstr "Grupa" #: ../pan/gui/group-pane.cc:538 msgid "Group (regex)" msgstr "Grupa (ispravni izraz)" #: ../pan/gui/group-pane.cc:1010 msgid "Local Folders" msgstr "Lokalni direktorijumi" #: ../pan/gui/group-pane.cc:1011 msgid "Subscribed Groups" msgstr "Pretplaćene grupe" #: ../pan/gui/group-pane.cc:1012 msgid "Other Groups" msgstr "Druge grupe" #: ../pan/gui/group-pane.cc:1052 ../pan/gui/score-view-ui.cc:157 msgid "Name" msgstr "Naziv" #: ../pan/gui/group-prefs-dialog.cc:162 msgid "No Profiles defined in Edit|Posting Profiles." msgstr "Nema definisanih profila u profilima za Uređivanje|Objavljivanje." #: ../pan/gui/group-prefs-dialog.cc:273 msgid "Pan: Group Preferences" msgstr "Pan: Osobine grupe" #: ../pan/gui/group-prefs-dialog.cc:288 #, c-format msgid "Properties for Groups" msgstr "Podaci za grupu" #: ../pan/gui/group-prefs-dialog.cc:290 #, c-format msgid "Properties for %s" msgstr "Podaci za %s" #: ../pan/gui/group-prefs-dialog.cc:298 msgid "Character _encoding:" msgstr "_Kodiranje znakova:" #: ../pan/gui/group-prefs-dialog.cc:300 msgid "Directory for Saving Attachments" msgstr "Direktorij za spašavanje dodataka" #: ../pan/gui/group-prefs-dialog.cc:308 msgid "Directory for _saving attachments:" msgstr "Direktorij za _spašavanje dodataka:" #: ../pan/gui/group-prefs-dialog.cc:310 msgid "Posting _profile:" msgstr "Postavljanje _profila:" #: ../pan/gui/group-prefs-dialog.cc:315 msgid "Spellchecker _language:" msgstr "_Jezik provjere pravopisa:" #: ../pan/gui/group-prefs-dialog.cc:318 msgid "Group color:" msgstr "Boja grupe:" #: ../pan/gui/gui.cc:312 msgid "Open the Task Manager" msgstr "Otvori urednik zadataka" #: ../pan/gui/gui.cc:335 msgid "Open the Event Log" msgstr "Otvori zapisnik događaja" #: ../pan/gui/gui.cc:611 msgid "Save NZB's Files" msgstr "Spasi NZB datoteke" #: ../pan/gui/gui.cc:638 msgid "Untitled.nzb" msgstr "Neimenovano.nzb" #: ../pan/gui/gui.cc:640 msgid "Save NZB File as..." msgstr "Spasi NZB datoteku kao..." #: ../pan/gui/gui.cc:809 msgid "Import NZB Files" msgstr "Dodaj NZB datoteke" #: ../pan/gui/gui.cc:817 ../pan/gui/post-ui.cc:3287 msgid "NZB Files" msgstr "NZB datoteke" #: ../pan/gui/gui.cc:822 msgid "All Files" msgstr "Sve datoteke" #: ../pan/gui/gui.cc:1334 msgid "Unable to supersede article." msgstr "Nije moguće zamijeniti članak." #: ../pan/gui/gui.cc:1335 ../pan/gui/gui.cc:1409 msgid "The article doesn't match any of your posting profiles." msgstr "Članak se ne poklapa sa niti jednim od postavljenih profila." #: ../pan/gui/gui.cc:1382 msgid "Revise and send this article to replace the old one." msgstr "Modificiraj i pošalji ovaj članak umjesto starog članka." #: ../pan/gui/gui.cc:1383 ../pan/gui/gui.cc:1446 msgid "Be patient! It will take time for your changes to take effect." msgstr "" "Budi strpljiv! Trebaće izvjesno vrijeme da bi tvoje izmjene imale efekta." #: ../pan/gui/gui.cc:1408 msgid "Unable to cancel article." msgstr "Nemoguće poništiti članak." #: ../pan/gui/gui.cc:1445 msgid "Send this article to ask your server to cancel your other one." msgstr "" "Pošalji ovaj članak kao molbu serveru da poništi tvoj prethodni članak." #: ../pan/gui/gui.cc:1463 msgid "You have marked some articles for deletion." msgstr "Označili ste neke članke za brisanje." #: ../pan/gui/gui.cc:1464 msgid "Are you sure you want to delete them?" msgstr "Da li ste sigurni da ih želite obrisati?" #: ../pan/gui/gui.cc:1490 msgid "Do you want to accept it permanently? (You can change this later.)" msgstr "Da li želite prihvatiti momentalno? (Ovo možete naknadno promijeniti.)" #: ../pan/gui/gui.cc:1670 msgid "Copyright \\u00A9 2002-2012 Charles Kerr and others" msgstr "Autorstvo \\u00A9 2002-2012 Charles Kerr i drugi" #: ../pan/gui/gui.cc:1675 msgid "translator-credits" msgstr "" " Aldin Kiselica https://launchpad.net/~akiselica1\n" " Maida Bakovic https://launchpad.net/~maidabakovic\n" " Samir Ribić https://launchpad.net/~megaribi" #: ../pan/gui/gui.cc:1808 msgid "_1. Header Pane" msgstr "_1. Zaglavlje Pana" #: ../pan/gui/gui.cc:1809 msgid "_2. Search Pane" msgstr "_2. Pretraživanje Pana" #: ../pan/gui/gui.cc:1815 msgid "_1. Group Pane" msgstr "_1. Grupe Pana" #: ../pan/gui/gui.cc:1817 ../pan/gui/gui.cc:1819 msgid "_2. Header Pane" msgstr "_2. Zaglavlja Pana" #: ../pan/gui/gui.cc:1821 msgid "_3. Body Pane" msgstr "_3. Tijelo Pana" #: ../pan/gui/gui.cc:1917 ../pan/gui/gui.cc:1932 msgid " Bytes" msgstr " bajtova" #: ../pan/gui/gui.cc:1920 msgid " KB" msgstr " kB" #: ../pan/gui/gui.cc:1923 msgid " MB" msgstr " MB" #: ../pan/gui/gui.cc:1926 msgid " GB" msgstr " GB" #: ../pan/gui/gui.cc:1929 msgid " TB" msgstr " TB" # translations. #: ../pan/gui/gui.cc:1961 #, c-format msgid "This article is complete with %d part." msgid_plural "This article has all %d parts." msgstr[0] "Ovaj članak je dovršen sa %d dijelom." msgstr[1] ".Ovaj članak ima sva %d dijela." msgstr[2] ".Ovaj članak ima svih %d dijelova." #: ../pan/gui/gui.cc:1963 #, c-format msgid "This article is missing %d part." msgid_plural "This article is missing %d of its %d parts:" msgstr[0] "Ovom %d članku nedostaje %d dio." msgstr[1] "Ovom članku nedostaje %d od njegovih %d dijela." msgstr[2] "Ovom članku nedostaje %d od njegovih %d dijelova." #: ../pan/gui/gui.cc:1981 ../pan/gui/header-pane.cc:1315 #: ../pan/gui/task-pane.cc:799 msgid "Message-ID" msgstr "ID-Poruke" #: ../pan/gui/gui.cc:1982 ../pan/gui/header-pane.cc:1796 #: ../pan/gui/prefs-ui.cc:852 msgid "Lines" msgstr "Redovi" #: ../pan/gui/gui.cc:1982 msgid "Size" msgstr "Veličina" #: ../pan/gui/gui.cc:1983 ../pan/gui/header-pane.cc:1812 #: ../pan/gui/prefs-ui.cc:850 msgid "Bytes" msgstr "Bajtova" #: ../pan/gui/gui.cc:2033 msgid "" "Error loading iconv library. Encoding certain character sets will not work " "in GUI." msgstr "" "Greška pri učitanju iconv biblioteke. Kodiranje nekih skupina znakova neće " "funkcionisati u GUI-ju." #: ../pan/gui/gui.cc:2179 msgid "Body Pane Encoding" msgstr "Kodiranje tijela Pana" #: ../pan/gui/gui.cc:2210 ../pan/gui/task-pane.cc:609 #, c-format msgid "Offline" msgstr "Izvan mreže" # translations. #: ../pan/gui/gui.cc:2214 #, c-format msgid "Closing %d connection" msgid_plural "Closing %d connections" msgstr[0] "Zatvaram %d vezu" msgstr[1] "Zatvaram %d veze" msgstr[2] "Zatvaram %d veza" #: ../pan/gui/gui.cc:2216 ../pan/gui/gui.cc:2246 #, c-format msgid "No Connections" msgstr "Bez uspostavljenih veza" #: ../pan/gui/gui.cc:2220 #, c-format msgid "Connecting" msgstr "Povezivanje u toku" #: ../pan/gui/gui.cc:2233 #, c-format msgid "%s: %d idle, %d active @ %.1f KiBps" msgstr "%s: %d pasivno, %d aktivno @ %.1f KiBps" #: ../pan/gui/gui.cc:2289 #, c-format msgid "No Tasks" msgstr "Nema zadataka" #: ../pan/gui/gui.cc:2291 ../pan/gui/prefs-ui.cc:1090 msgid "Tasks" msgstr "Zadaci" #: ../pan/gui/gui.cc:2308 ../pan/gui/task-pane.cc:475 #, c-format msgid "%lu tasks, %s, %.1f KiBps, ETA %d:%02d:%02d" msgstr "%lu zadataka, %s, %.1f kB/s, PVD %d:%02d:%02d" #: ../pan/gui/gui.cc:2360 msgid "" "Pan is now offline. Please see \"File|Event Log\" and correct the problem, " "then use \"File|Work Online\" to continue." msgstr "" "Pan je van mreže. Molimo pogledaj \"Datoteka|Zapisnik događaja\" i ispravi " "problem, zatim za nastavak koristi \"Datoteka|Rad na mreži\"." #: ../pan/gui/header-pane.cc:1311 ../pan/gui/task-pane.cc:795 msgid "Subject or Author" msgstr "Tema ili autorAu" #: ../pan/gui/header-pane.cc:1312 ../pan/gui/task-pane.cc:796 msgid "Sub or Auth (regex)" msgstr "Tema ili aut (ispravni izraz)" #: ../pan/gui/header-pane.cc:1314 ../pan/gui/header-pane.cc:1780 #: ../pan/gui/prefs-ui.cc:849 ../pan/gui/score-add-ui.cc:140 #: ../pan/gui/task-pane.cc:798 msgid "Author" msgstr "Autor" #: ../pan/gui/header-pane.cc:1765 ../pan/gui/prefs-ui.cc:853 msgid "Score" msgstr "Bodovanje" #: ../pan/gui/log-ui.cc:104 msgid "Save Event List" msgstr "Spasi listu događaja" #: ../pan/gui/log-ui.cc:258 msgid "Pan: Events" msgstr "Pan: Događaji" #: ../pan/gui/log-ui.cc:317 msgid "Message" msgstr "Poruka" #: ../pan/gui/pan.cc:359 msgid "Maximize" msgstr "Povećaj do maksimuma" #: ../pan/gui/pan.cc:412 msgid "An error has occurred!" msgstr "Pojavila se greška!" #: ../pan/gui/pan.cc:426 msgid "New Articles!" msgstr "Novi članci!" #: ../pan/gui/pan.cc:427 msgid "" "There are new\n" "articles available." msgstr "" "Novi članci\n" "su dostupni." #: ../pan/gui/pan.cc:494 msgid "Toggle on/offline" msgstr "Pinuj NaMreži/ VanMreže" #: ../pan/gui/pan.cc:542 msgid "" "Thank you for trying Pan!\n" " \n" "To start newsreading, first Add a Server." msgstr "" "Zahvaljujemo na korištenju Pan-a!\n" " \n" "Da počnete sa čitanjem novosti, prvo morate dodati server." #: ../pan/gui/pan.cc:624 msgid "" "General Options\n" " -h, --help Show this usage page.\n" " --verbose Be verbose (in non-GUI mode).\n" "\n" "URL Options\n" " headers:group.name Download new headers for the specified " "newsgroup.\n" " --no-gui On news:message-id, dump the article to stdout.\n" "\n" "NZB Batch Options\n" " --nzb file1 file2 ... Process nzb files without launching all of Pan.\n" " -o path, --output=path Path to save attachments listed in the nzb " "files.\n" " --no-gui Only show console output, not the download " "queue.\n" msgstr "" "Generalne opcije\n" " -h, --help Prikaži stranicu za korištenje.\n" " --verbose Budi opširan (u non-GUI modu).\n" "\n" "URL opcije\n" " headers:group.nami Preuzmi nova zaglavlja za određene interesne " "grupe.\n" " --no-gui Na news:message-id, odbaci članak za stdout.\n" "\n" "NZB serija opcije\n" " --nzb file1 file2 ... Procesiraj nzb datoteke bez pokretanja sve od Pan-" "a.\n" " -o path, --output=path Put za spremanje privitaka navedenih u nzb " "datotekama.\n" " --no-gui Prikaži samo izlaz konzole, bez preuzimanja " "reda.\n" #: ../pan/gui/pan.cc:958 msgid "Error: --no-gui used without nzb files or news:message-id." msgstr "Greša: --gui nije korišten bez .nzb datoteka ili novostima:id-poruke." #: ../pan/gui/pan.cc:962 #, c-format msgid "Pan %s started" msgstr "Pan %s pokrenut" #: ../pan/gui/pan.cc:982 msgid "Please configure Pan's news servers before using it as an nzb client." msgstr "" "Molimo podesite postavke Pan-ovog servera novosti prije nego ga upotrijebite " "kao nzb korisnika." #: ../pan/gui/pan.cc:1100 msgid "Pan notification" msgstr "Pan novost" #: ../pan/gui/post-ui.cc:163 #, c-format msgid "Upload queue: %lu tasks, %ld KB (~ %.2f MB) total." msgstr "Postavi red: %lu zadataka, %ld KB (~ %.2f MB) ukupno." #: ../pan/gui/post-ui.cc:266 ../pan/gui/post-ui.cc:297 #, c-format msgid "Error setting custom spellchecker: %s" msgstr "Greška pri postavljanju modifikovane provjere pravopisa: %s" #: ../pan/gui/post-ui.cc:270 ../pan/gui/post-ui.cc:278 #: ../pan/gui/post-ui.cc:301 ../pan/gui/post-ui.cc:309 #, c-format msgid "Error setting spellchecker: %s" msgstr "Greška pri postavljanju provjere pravopisa: %s" #: ../pan/gui/post-ui.cc:448 msgid "_Profile" msgstr "_Postavka" #: ../pan/gui/post-ui.cc:449 msgid "Set Editor" msgstr "Postavi uređivač" #: ../pan/gui/post-ui.cc:451 msgid "_Send Article" msgstr "_Pošalji članak" #: ../pan/gui/post-ui.cc:451 msgid "Send Article Now" msgstr "Odmah pošalji članak" #: ../pan/gui/post-ui.cc:452 msgid "_Send and Save Articles to NZB" msgstr "_Pošalji i spasi članak u NZB" #: ../pan/gui/post-ui.cc:452 msgid "Send and Save Articles to NZB" msgstr "Pošalji i spasi članak u NZB" #: ../pan/gui/post-ui.cc:453 msgid "Set Character _Encoding..." msgstr "Postavi _kodiranje znakova..." #: ../pan/gui/post-ui.cc:454 msgid "Set Content _Transfer Encoding..." msgstr "Postavi kodiranje _prebacivanja sadržaja..." #: ../pan/gui/post-ui.cc:455 msgid "Sa_ve Draft" msgstr "Sni_mi skicu" #: ../pan/gui/post-ui.cc:455 msgid "Save as a Draft for Future Posting" msgstr "Snimi kao skicu za naknadno postavljanje" #: ../pan/gui/post-ui.cc:456 msgid "_Open Draft..." msgstr "_Otvori skicu..." #: ../pan/gui/post-ui.cc:456 msgid "Open an Article Draft" msgstr "Otvori skicu članka" #: ../pan/gui/post-ui.cc:461 msgid "_Rot13" msgstr "_Rot13" #: ../pan/gui/post-ui.cc:461 msgid "Rot13 Selected Text" msgstr "Rot13 odabrani tekst" #: ../pan/gui/post-ui.cc:462 msgid "Run _Editor" msgstr "Pokreni _uređivač" #: ../pan/gui/post-ui.cc:462 msgid "Run Editor" msgstr "Pokreni uređivač" #: ../pan/gui/post-ui.cc:464 msgid "Add _Files to Queue" msgstr "Dodaj _datoteke u red" #: ../pan/gui/post-ui.cc:464 msgid "Add Files to Queue" msgstr "Dodaj datoteke u red" #: ../pan/gui/post-ui.cc:479 ../pan/gui/post-ui.cc:480 msgid "Remove from Queue" msgstr "Ukloni iz reda" #: ../pan/gui/post-ui.cc:484 ../pan/gui/post-ui.cc:485 msgid "Clear List" msgstr "Isprazni listu" #: ../pan/gui/post-ui.cc:489 ../pan/gui/post-ui.cc:490 msgid "Select Needed Parts" msgstr "Označi potrebne dijelove" #: ../pan/gui/post-ui.cc:494 ../pan/gui/post-ui.cc:495 #: ../pan/gui/task-pane.cc:677 ../pan/gui/task-pane.cc:678 msgid "Move Up" msgstr "Pomjeri naviše" #: ../pan/gui/post-ui.cc:499 ../pan/gui/post-ui.cc:500 #: ../pan/gui/task-pane.cc:682 ../pan/gui/task-pane.cc:683 msgid "Move Down" msgstr "Pomjeri naniže" #: ../pan/gui/post-ui.cc:504 ../pan/gui/post-ui.cc:505 msgid "Move to Top" msgstr "Pomjeri na vrh" #: ../pan/gui/post-ui.cc:509 ../pan/gui/post-ui.cc:510 msgid "Move to Bottom" msgstr "Pomjeri na dno" #: ../pan/gui/post-ui.cc:517 msgid "_Wrap Text" msgstr "_Prelom reda" #: ../pan/gui/post-ui.cc:517 msgid "Wrap Text" msgstr "Prelomi tekst" #: ../pan/gui/post-ui.cc:518 msgid "Always Run Editor" msgstr "Uvijek pokreni uređivač" #: ../pan/gui/post-ui.cc:519 msgid "Remember Character Encoding for This Group" msgstr "Zapamti kodiranje znakova za ovu grupu" #: ../pan/gui/post-ui.cc:520 msgid "Thread Attached Replies" msgstr "Nanizaj priložene odgovore" #: ../pan/gui/post-ui.cc:521 msgid "PGP-Encrypt the Article" msgstr "PGP-kodiraj članak" #: ../pan/gui/post-ui.cc:522 msgid "PGP-Sign the Article" msgstr "PGP-potpiši članak" #: ../pan/gui/post-ui.cc:523 msgid "Check _Spelling" msgstr "Provjeri _pravopis" #: ../pan/gui/post-ui.cc:549 msgid "New Article's Encoding:" msgstr "Kodiranje novog članka:" #: ../pan/gui/post-ui.cc:559 msgid "Content Transfer Encoding" msgstr "Kodiranje prebacivanja sadržaja" #: ../pan/gui/post-ui.cc:560 msgid "New Article's Content Transfer Encoding:" msgstr "Kodiranje prebacivanja sadržaja članka:" #: ../pan/gui/post-ui.cc:740 msgid "Your changes will be lost!" msgstr "Važe izmjene će biti izgubljene!" #: ../pan/gui/post-ui.cc:741 msgid "Close this window and lose your changes?" msgstr "Zatvori prozor i zanemari izmjene?" #: ../pan/gui/post-ui.cc:786 ../pan/gui/post-ui.cc:825 msgid "There were problems with this post." msgstr "Došlo je do problema sa ovim sadržajem." #: ../pan/gui/post-ui.cc:788 ../pan/gui/post-ui.cc:827 #: ../pan/gui/post-ui.cc:892 msgid "Go Back" msgstr "Nazad" #: ../pan/gui/post-ui.cc:790 msgid "Continue Anyway" msgstr "Svejedno nastavi" #. Prompt the user #: ../pan/gui/post-ui.cc:819 #, c-format msgid "" "Message uses characters not specified in charset '%s' - possibly use '%s' " msgstr "" "Poruka sadrži znakove koji nisu naznačeni u grupi znakova '%s' - vjerovatno " "treba upotrijebiti '%s' " #: ../pan/gui/post-ui.cc:842 msgid "Go _Online" msgstr "Idi _na mrežu" #: ../pan/gui/post-ui.cc:891 msgid "The file queue is empty, so no files can be saved." msgstr "" "Red datoteke je prazan, tako da niti jedna datoteka ne može biti spašena." #: ../pan/gui/post-ui.cc:1070 msgid "IO Error" msgstr "IO greška" #: ../pan/gui/post-ui.cc:1070 msgid "No space left on device" msgstr "Na uređaju nema više slobodnog prostora" #: ../pan/gui/post-ui.cc:1071 #, c-format msgid "Error copying message to %s folder. Reason: %s" msgstr "Greška pri prebacivanju poruke u %s direktorijum. Razlog greške: %s" #: ../pan/gui/post-ui.cc:1077 #, c-format msgid "Error creating message in %s mail folder: Invalid article." msgstr "" "Greška pri kreiranju poruke u %s direktoriju e-maila: Neispravan članak." #: ../pan/gui/post-ui.cc:1099 msgid "" "No posting server is set for this posting profile.\n" "Please edit the profile via Edit|Manage Posting Profiles." msgstr "" "Niti jedan server za postavljanje nije podešen za ovaj profil za " "postavljanje.\n" "Molimo uredite profil koristeći Izmijeni|Upravljaj profilima za postavljanje." #: ../pan/gui/post-ui.cc:1104 msgid "" "The selected posting server is currently disabled. Please choose an " "appropriate alternative." msgstr "" "Odabrani server za postavljanje je trenutno onemogućen. Molimo izaberite " "prigodnu alternativu." #: ../pan/gui/post-ui.cc:1146 msgid "Pan is Offline." msgstr "Pan je van mreže." #: ../pan/gui/post-ui.cc:1147 msgid "Go online to post the article?" msgstr "Idi na mrežu da postaviš članak." #: ../pan/gui/post-ui.cc:1196 #, c-format msgid "" "Error signing/encrypting your message. Perhaps you misspelled your email " "address (%s)?" msgstr "" "Greška pri potpisivanju/dekodiranju tvoje poruke. Možda ste pogriješili " "svoju e-mail adresu (%s)?" #: ../pan/gui/post-ui.cc:1344 msgid "Error opening temporary file" msgstr "Greška pri otvaranju privremene datoteke" #: ../pan/gui/post-ui.cc:1356 #, c-format msgid "Error writing article to temporary file: %s" msgstr "Greška pri pisanju poruke u privremenu datoteku: %s" #: ../pan/gui/post-ui.cc:1375 #, c-format msgid "Error parsing \"external editor\" command line: %s (Command was: %s)" msgstr "" "Greška pri analiziranju komandne linije \"vanjskog uređivača\" : %s " "(Naredba: %s)" #: ../pan/gui/post-ui.cc:1416 #, c-format msgid "Error starting external editor: %s" msgstr "Greška pri pokretanju vanjskog uređivača teksta: %s" #: ../pan/gui/post-ui.cc:1479 msgid "Open Draft Article" msgstr "Otvori skicu članka" #: ../pan/gui/post-ui.cc:1691 msgid "Save Draft Article" msgstr "Spasi skicu članka" #: ../pan/gui/post-ui.cc:1889 #, c-format msgid "Couldn't parse signature command \"%s\": %s" msgstr "Ne može analizirati komandu potpisa \"%s\": %s" #: ../pan/gui/post-ui.cc:1925 msgid "Couldn't convert signature to UTF-8." msgstr "Ne može prebaciti potpis u UTF-8." #: ../pan/gui/post-ui.cc:2427 msgid "F_rom" msgstr "_Od" #: ../pan/gui/post-ui.cc:2444 msgid "_Subject" msgstr "_Tema" #: ../pan/gui/post-ui.cc:2457 msgid "_Newsgroups" msgstr "Grupe _novosti" #: ../pan/gui/post-ui.cc:2471 msgid "Mail _To" msgstr "Pošalji e-mail _za" #: ../pan/gui/post-ui.cc:2573 msgid "Delete from Queue" msgstr "Obriši iz reda" #: ../pan/gui/post-ui.cc:2586 msgid "No." msgstr "Br." #: ../pan/gui/post-ui.cc:2590 ../pan/gui/post-ui.cc:2682 #: ../pan/gui/post-ui.cc:2723 msgid "Filename" msgstr "Naziv datoteke" #: ../pan/gui/post-ui.cc:2592 msgid "Size (KB)" msgstr "Veličina (kB)" #: ../pan/gui/post-ui.cc:2690 msgid "The current filename" msgstr "Trenutni naziv datoteke" #: ../pan/gui/post-ui.cc:2694 msgid "Subject Line" msgstr "Linija teme" #: ../pan/gui/post-ui.cc:2702 msgid "The current subject line" msgstr "Trenutna linija teme" #: ../pan/gui/post-ui.cc:2716 msgid "No. " msgstr "Br. " #: ../pan/gui/post-ui.cc:2720 msgid "Enable/Disable" msgstr "Omogući/Onemogući" #: ../pan/gui/post-ui.cc:2754 msgid "Follo_wup-To" msgstr "P_rati" #. i18n: "poster" is a key used by many newsreaders. probably safest to keep this key in english. #: ../pan/gui/post-ui.cc:2763 msgid "" "The newsgroups where replies to your message should go. This is only needed " "if it differs from the \"Newsgroups\" header.\n" "\n" "To direct all replies to your email address, use \"Followup-To: poster\"" msgstr "" "Interesna grupa gdje bi odgovori na tvoje poruke trebale ići. Ovo je " "potrebno samo ako se razlikuje od \"Interesna grupa\" zaglavlja.\n" "\n" "Za usmjeravanje svih odgovora na vašu e-mail adresu, koristi \"Followup-To: " "poster\"" #: ../pan/gui/post-ui.cc:2770 msgid "_Reply-To" msgstr "_Odogovoriti" #: ../pan/gui/post-ui.cc:2778 msgid "" "The email account where mail replies to your posted message should go. This " "is only needed if it differs from the \"From\" header." msgstr "" "E-mail račun gdje odgovori na vašu poslanu poruku trebaju ići. Ovo je " "potrebno samo ako se razlikuje od \"Od\" zaglavlja." #: ../pan/gui/post-ui.cc:2785 msgid "_Custom Headers" msgstr "_Prilagođena zaglavlja" #: ../pan/gui/post-ui.cc:2809 msgid "Add \"_User-Agent\" header" msgstr "Dodaj \"_Korisnik-Agent\" zaglavlje" #: ../pan/gui/post-ui.cc:2816 msgid "Add \"Message-_ID\" header" msgstr "Dodaj \"ID-poruke\" zaglavlje" #: ../pan/gui/post-ui.cc:2947 msgid "Select Parts" msgstr "Označi dijelove" #: ../pan/gui/post-ui.cc:2960 msgid "_Parts" msgstr "_Dijelovi" #: ../pan/gui/post-ui.cc:3114 msgid "Post Article" msgstr "Postavi članak" #: ../pan/gui/post-ui.cc:3135 msgid "_Message" msgstr "_Poruka" #: ../pan/gui/post-ui.cc:3136 msgid "More _Headers" msgstr "Više _zaglavlja" #: ../pan/gui/post-ui.cc:3137 msgid "File _Queue" msgstr "_Red datoteke" #: ../pan/gui/post-ui.cc:3169 ../pan/gui/profiles-dialog.cc:481 #, no-c-format msgid "On %d, %n wrote:" msgstr "Dana %d, %n je napisao/la:" #: ../pan/gui/post-ui.cc:3198 msgid "Add files to queue" msgstr "Dodaj datoteke u red" #: ../pan/gui/post-ui.cc:3274 msgid "Save Upload Queue as NZB File" msgstr "Spasi učitani red kao NZB datoteku" #: ../pan/gui/prefs.cc:364 #, c-format msgid "Couldn't parse %s color \"%s\"" msgstr "Nemoguće analizirati %s bou \"%s\"" #: ../pan/gui/prefs-ui.cc:123 msgid "Grab Key" msgstr "Uhvati ključ" #: ../pan/gui/prefs-ui.cc:129 #, c-format msgid "" "Press the combination of the keys\n" "you want to use for \"%s\"." msgstr "" "Pritisni kombinaciju dugmadi\n" "koju želiš koristiti za \"%s\"." #: ../pan/gui/prefs-ui.cc:169 msgid "Edit Shortcut" msgstr "Izmijeni kraticu" #: ../pan/gui/prefs-ui.cc:231 msgid "Error: Shortcut key is invalid!" msgstr "Greška: Ključ kratice je pogrešan!" #: ../pan/gui/prefs-ui.cc:247 msgid "Error: Shortcut key already exists!" msgstr "Greška: Ključ kratice već postoji!" #: ../pan/gui/prefs-ui.cc:561 msgid "Show only icons" msgstr "Prikaži samo sličice" #: ../pan/gui/prefs-ui.cc:562 msgid "Show only text" msgstr "Prikaži samo tekst" #: ../pan/gui/prefs-ui.cc:563 msgid "Show icons and text" msgstr "Prikaži sličice i tekst" #: ../pan/gui/prefs-ui.cc:602 msgid "Use GNOME Preferences" msgstr "Koristi GNOME postavke" #: ../pan/gui/prefs-ui.cc:603 msgid "Use KDE Preferences" msgstr "Koristi KDE postavke" #: ../pan/gui/prefs-ui.cc:604 msgid "Use OS X Preferences" msgstr "Koristi OS X postavke" #: ../pan/gui/prefs-ui.cc:605 msgid "Use Windows Preferences" msgstr "Koristi Windows postavke" #: ../pan/gui/prefs-ui.cc:606 msgid "Custom Command:" msgstr "Dodatna komanda:" #: ../pan/gui/prefs-ui.cc:658 msgid "Disabled" msgstr "Onemogućeno" #: ../pan/gui/prefs-ui.cc:659 msgid "Only new (score == 0)" msgstr "Samo novo (bodovanje == 0)" #: ../pan/gui/prefs-ui.cc:660 msgid "9999 or more" msgstr "9999 ili više" #: ../pan/gui/prefs-ui.cc:661 msgid "5000 to 9998" msgstr "između 5000 i 9998" #: ../pan/gui/prefs-ui.cc:662 msgid "1 to 4999" msgstr "između 1 i 4999" #: ../pan/gui/prefs-ui.cc:663 msgid "-9998 to -1" msgstr "između -9998 i -1" #: ../pan/gui/prefs-ui.cc:664 msgid "-9999 or less" msgstr "manje od -9999" #: ../pan/gui/prefs-ui.cc:728 #, c-format msgid "Select default global character set. Current setting: %s." msgstr "" "Označi pretpostavljeni globalni skup znakova. Trenutna postavka: %" "s." #: ../pan/gui/prefs-ui.cc:760 msgid "Global Character Set Settings" msgstr "Globalna podešavanja skupa znakova" #: ../pan/gui/prefs-ui.cc:854 ../pan/gui/task-pane.cc:1076 msgid "State" msgstr "Stanje" #: ../pan/gui/prefs-ui.cc:888 msgid "Enabled" msgstr "Uključeno" #: ../pan/gui/prefs-ui.cc:892 msgid "Column Name" msgstr "Naziv kolone" #: ../pan/gui/prefs-ui.cc:930 msgid "Pan: Preferences" msgstr "Pan: postavke" #: ../pan/gui/prefs-ui.cc:945 msgid "Mouse" msgstr "Miš" #: ../pan/gui/prefs-ui.cc:947 msgid "Single-click activates, rather than selects, _groups" msgstr "Jedan klik aktivira, umjesto da samo selektira, _grupe" #: ../pan/gui/prefs-ui.cc:949 msgid "Single-click activates, rather than selects, _articles" msgstr "Jedan klik aktivira, umjesto da samo selektira, _članci" #: ../pan/gui/prefs-ui.cc:952 msgid "Groups" msgstr "Grupe" #: ../pan/gui/prefs-ui.cc:954 msgid "Get new headers in subscribed groups on _startup" msgstr "Prikaži novo zaglavlje u pretplaćenim grupama na _početnom izborniku" #: ../pan/gui/prefs-ui.cc:956 msgid "Get new headers when _entering group" msgstr "Prikaži nova zaglavlja pri _otvaranju grupe" #: ../pan/gui/prefs-ui.cc:958 msgid "Mark entire group _read when leaving group" msgstr "Označi čitavu grupu kao _pročitanu pri napuštanju grupe" #: ../pan/gui/prefs-ui.cc:960 msgid "Mark entire group read before getting _new headers" msgstr "Označi čitavu grupu kao pročitanu prije prikazivanja _novih zaglavlja" #: ../pan/gui/prefs-ui.cc:962 msgid "E_xpand all threads when entering group" msgstr "Pro_širi sve niti pri otvaranju grupe" #: ../pan/gui/prefs-ui.cc:967 msgid "Articles" msgstr "Članovi" #: ../pan/gui/prefs-ui.cc:969 msgid "Mark downloaded articles read" msgstr "Označi prezuete članke pročitanim" #: ../pan/gui/prefs-ui.cc:971 msgid "Space selects next article rather than next unread" msgstr "Space tipka odabira slijedeći članak prije slijedećeg nepročitanog" #: ../pan/gui/prefs-ui.cc:973 msgid "Expand threads upon selection" msgstr "Proširi niti uz odabir" #: ../pan/gui/prefs-ui.cc:975 msgid "Always ask before deleting an article" msgstr "Uvijek pitaj prije brisanja članka" #: ../pan/gui/prefs-ui.cc:977 msgid "Smooth scrolling" msgstr "Glatko klizanje" #: ../pan/gui/prefs-ui.cc:982 msgid "Article Cache" msgstr "Ostava poruka" #: ../pan/gui/prefs-ui.cc:983 msgid "Clear article cache on shutdown" msgstr "Isprazni ostavu poruka pri gašenju" #: ../pan/gui/prefs-ui.cc:986 msgid "Size of article cache (in MiB):" msgstr "Veličina ostave poruka (u MB):" #: ../pan/gui/prefs-ui.cc:991 msgid "File extension for cached articles: " msgstr "Nadogradnja datoteke za članke u ostavi: " #: ../pan/gui/prefs-ui.cc:996 msgid "Tabs" msgstr "Tabulatori" #: ../pan/gui/prefs-ui.cc:1001 msgid "_Behavior" msgstr "_Ponašanje" #: ../pan/gui/prefs-ui.cc:1001 msgid "Behavior" msgstr "Ponašanje" #: ../pan/gui/prefs-ui.cc:1007 msgid "Task Pane" msgstr "Ploča zadataka" #: ../pan/gui/prefs-ui.cc:1008 msgid "Show Task Pane info popups" msgstr "Prikaži informacijske poruke za prozor za zadatke" #: ../pan/gui/prefs-ui.cc:1010 msgid "Show Download Meter" msgstr "Prikaži mjerač preuzimanja" #: ../pan/gui/prefs-ui.cc:1014 msgid "_Panes" msgstr "_Paneli" #: ../pan/gui/prefs-ui.cc:1014 msgid "Panes" msgstr "Paneli" #: ../pan/gui/prefs-ui.cc:1020 msgid "Language Settings" msgstr "Jezičke postavke" #. systray and notify popup #: ../pan/gui/prefs-ui.cc:1029 msgid "System Tray Behavior" msgstr "Ponašanje sistemske kasete" #: ../pan/gui/prefs-ui.cc:1031 msgid "Minimize to tray" msgstr "Minimizuj do kasete" #: ../pan/gui/prefs-ui.cc:1033 msgid "Start Pan minimized" msgstr "Pokreni panel umanjeno" #: ../pan/gui/prefs-ui.cc:1036 msgid "Show notifications" msgstr "Prikaži obavještenja" #. allow multiple instances (seperate, not communicating with dbus) #: ../pan/gui/prefs-ui.cc:1041 msgid "Startup Behavior" msgstr "Startno Ponašanje" #: ../pan/gui/prefs-ui.cc:1043 msgid "Allow multiple instances of Pan" msgstr "Omogući umnožavanje jedinki panela" #: ../pan/gui/prefs-ui.cc:1048 msgid "Autosave Article Draft" msgstr "Automatski spasi skicu članka" #: ../pan/gui/prefs-ui.cc:1050 msgid "Minutes to autosave the current Article Draft: " msgstr "Preostalo minuta do automatskog spašavanja skice trenutnog članka: " #: ../pan/gui/prefs-ui.cc:1055 msgid "Autosave Articles" msgstr "Automatski spasi članke" #: ../pan/gui/prefs-ui.cc:1057 msgid "Minutes to autosave newsrc files: " msgstr "Preostalo minuta do automatskog spašavanja newsrc datoteka: " #: ../pan/gui/prefs-ui.cc:1064 msgid "GNOME Keyring" msgstr "GNOME PrstenKljučeva" #: ../pan/gui/prefs-ui.cc:1065 msgid "Store passwords in GNOME Keyring" msgstr "Spremi lozinke u GNOME prstenu ključeva" #: ../pan/gui/prefs-ui.cc:1069 msgid "_Miscellaneous" msgstr "_Raznoliko" #: ../pan/gui/prefs-ui.cc:1069 msgid "Miscellaneous" msgstr "Raznoliko" #: ../pan/gui/prefs-ui.cc:1074 msgid "Pane Layout" msgstr "Raspored panela" #: ../pan/gui/prefs-ui.cc:1093 msgid "1=Groups, 2=Headers, 3=Body" msgstr "1=Grupe, 2=Zaglavlja, 3=Tijelo" #: ../pan/gui/prefs-ui.cc:1095 msgid "1=Groups, 2=Body, 3=Headers" msgstr "1=Grupe, 2=Tijelo , 3=Zaglavlja" #: ../pan/gui/prefs-ui.cc:1097 msgid "1=Headers, 2=Groups, 3=Body" msgstr "1=Zaglavlja, 2=Grupe, 3=Tijelo" #: ../pan/gui/prefs-ui.cc:1099 msgid "1=Headers, 2=Body, 3=Groups" msgstr "1=Zaglavlja, 2=Tijelo, 3=Grupe" #: ../pan/gui/prefs-ui.cc:1101 msgid "1=Body, 2=Groups, 3=Headers" msgstr "1=Tijelo, 2=Grupe, 3=Zaglavlja" #: ../pan/gui/prefs-ui.cc:1103 msgid "1=Body, 2=Headers, 3=Groups" msgstr "1=Tijelo, 2=Zaglavlja, 3=Grupe" #: ../pan/gui/prefs-ui.cc:1107 msgid "Layout" msgstr "Raspored" #: ../pan/gui/prefs-ui.cc:1112 msgid "Header Pane Columns" msgstr "Zaglavlje kolona panela" #: ../pan/gui/prefs-ui.cc:1116 msgid "_Headers" msgstr "_Zaglavlja" #: ../pan/gui/prefs-ui.cc:1116 msgid "Headers" msgstr "Zaglavlja" #: ../pan/gui/prefs-ui.cc:1122 msgid "" "This menu lets you configure Pan to take certain actions on your behalf " "automatically, based on an article's score." msgstr "" "Ovaj meni dopušta konfiguracija Pan-a tako da radi određene akcije na vaš " "zahtjev automatski, bazirano na rezultatu članka." #: ../pan/gui/prefs-ui.cc:1127 msgid "Mark affected articles read" msgstr "Označi pročitanim članke" #: ../pan/gui/prefs-ui.cc:1136 msgid "_Delete articles scoring at: " msgstr "_Obriši članke bodovanje sa: " #: ../pan/gui/prefs-ui.cc:1142 msgid "Mark articles read scoring at: " msgstr "Označi članke pročitanima ukoliko su bodovani sa: " #: ../pan/gui/prefs-ui.cc:1148 msgid "_Cache articles scoring at: " msgstr "_Ostavi članke bodovanje sa: " #: ../pan/gui/prefs-ui.cc:1154 msgid "Download attachments of articles scoring at: " msgstr "Preuzmi dodatke članaka bodovanih sa: " #: ../pan/gui/prefs-ui.cc:1157 msgid "Actions" msgstr "Akcije" #: ../pan/gui/prefs-ui.cc:1162 ../pan/gui/prefs-ui.cc:1183 msgid "Fonts" msgstr "Pisma" #: ../pan/gui/prefs-ui.cc:1164 msgid "Use custom font in Group Pane:" msgstr "Koristi prilagođeni font za \"Listu grupa\":" #: ../pan/gui/prefs-ui.cc:1169 msgid "Use custom font in Header Pane:" msgstr "Koristi prilagođeni font za \"Listu poruka\":" #: ../pan/gui/prefs-ui.cc:1174 msgid "Use custom font in Body Pane:" msgstr "Koristi prilagođeni font za \"Prikaz poruke\":" #: ../pan/gui/prefs-ui.cc:1179 msgid "Monospace font:" msgstr "Monospace font:" #: ../pan/gui/prefs-ui.cc:1183 msgid "_Fonts" msgstr "_Pisma" #: ../pan/gui/prefs-ui.cc:1192 msgid "Header Pane" msgstr "Zaglavlje panela" #: ../pan/gui/prefs-ui.cc:1195 ../pan/gui/prefs-ui.cc:1201 #: ../pan/gui/prefs-ui.cc:1207 ../pan/gui/prefs-ui.cc:1213 #: ../pan/gui/prefs-ui.cc:1219 ../pan/gui/prefs-ui.cc:1225 #: ../pan/gui/prefs-ui.cc:1234 ../pan/gui/prefs-ui.cc:1240 #: ../pan/gui/prefs-ui.cc:1246 ../pan/gui/prefs-ui.cc:1252 #: ../pan/gui/prefs-ui.cc:1258 ../pan/gui/prefs-ui.cc:1268 #: ../pan/gui/prefs-ui.cc:1278 msgid "Text:" msgstr "Tekst:" #: ../pan/gui/prefs-ui.cc:1197 ../pan/gui/prefs-ui.cc:1203 #: ../pan/gui/prefs-ui.cc:1209 ../pan/gui/prefs-ui.cc:1215 #: ../pan/gui/prefs-ui.cc:1221 ../pan/gui/prefs-ui.cc:1227 #: ../pan/gui/prefs-ui.cc:1236 ../pan/gui/prefs-ui.cc:1242 #: ../pan/gui/prefs-ui.cc:1248 ../pan/gui/prefs-ui.cc:1254 #: ../pan/gui/prefs-ui.cc:1260 ../pan/gui/prefs-ui.cc:1270 #: ../pan/gui/prefs-ui.cc:1280 msgid "Background:" msgstr "Pozadina:" #: ../pan/gui/prefs-ui.cc:1199 msgid "Scores of 9999 or more:" msgstr "Bodovano sa 9999 ili više:" #: ../pan/gui/prefs-ui.cc:1205 msgid "Scores from 5000 to 9998:" msgstr "Bodovano sa 5000 do 9998:" #: ../pan/gui/prefs-ui.cc:1211 msgid "Scores from 1 to 4999:" msgstr "Bodovano sa 1 do 4999:" #: ../pan/gui/prefs-ui.cc:1217 msgid "Scores from -9998 to -1:" msgstr "Bodovano sa -9998 do -1:" #: ../pan/gui/prefs-ui.cc:1223 msgid "Scores of -9999 or less:" msgstr "Bodovano sa -9999 ili manje:" #: ../pan/gui/prefs-ui.cc:1229 msgid "Collapsed thread with unread articles:" msgstr "Skupljena nit sa nepročitanom člancima:" #: ../pan/gui/prefs-ui.cc:1231 msgid "Body Pane" msgstr "Tijelo panela" #: ../pan/gui/prefs-ui.cc:1238 msgid "First level of quoted text:" msgstr "Prvi nivo citiranog teksta:" #: ../pan/gui/prefs-ui.cc:1244 msgid "Second level of quoted text:" msgstr "Drugi nivo citiranog teksta:" #: ../pan/gui/prefs-ui.cc:1250 msgid "Third level of quoted text:" msgstr "Treći nivo citiranog teksta:" #. #: ../pan/gui/prefs-ui.cc:1256 msgid "URL:" msgstr "URL:" #. #: ../pan/gui/prefs-ui.cc:1262 msgid "Signature:" msgstr "Potpis:" #: ../pan/gui/prefs-ui.cc:1265 msgid "Group Pane" msgstr "Grupa panela" #. #: ../pan/gui/prefs-ui.cc:1272 msgid "Group Color:" msgstr "Boja grupe:" #: ../pan/gui/prefs-ui.cc:1276 msgid "Other Text" msgstr "Drugi tekst" #: ../pan/gui/prefs-ui.cc:1282 msgid "Text Color:" msgstr "Boja teksta:" #: ../pan/gui/prefs-ui.cc:1285 msgid "_Colors" msgstr "_Boje" #: ../pan/gui/prefs-ui.cc:1285 msgid "Colors" msgstr "Boje" #: ../pan/gui/prefs-ui.cc:1290 msgid "Preferred Applications" msgstr "Uobičajeni programi" #: ../pan/gui/prefs-ui.cc:1294 msgid "_Web browser:" msgstr "_Mrežni pretraživač:" #: ../pan/gui/prefs-ui.cc:1297 msgid "_Mail reader:" msgstr "Čitač _e-maila:" #: ../pan/gui/prefs-ui.cc:1299 msgid "_Text editor:" msgstr "Uređivač _teksta:" #: ../pan/gui/prefs-ui.cc:1301 msgid "_HTML previewer:" msgstr "Pregledač _HTML-a:" #: ../pan/gui/prefs-ui.cc:1303 msgid "_Applications" msgstr "_Programi" #: ../pan/gui/prefs-ui.cc:1303 msgid "Applications" msgstr "Programi" #: ../pan/gui/prefs-ui.cc:1308 ../pan/gui/task-pane.cc:552 msgid "Encoding" msgstr "Kodiranje" #: ../pan/gui/prefs-ui.cc:1312 msgid "Default bytes per file (for encoder): " msgstr "Podrazumijevani bajti po datoteci (za kodiranje): " #: ../pan/gui/prefs-ui.cc:1317 msgid "_Upload" msgstr "_Učitavanje" #: ../pan/gui/prefs-ui.cc:1317 msgid "Upload" msgstr "Učitaj" #: ../pan/gui/prefs-ui.cc:1326 msgid "_Shortcuts" msgstr "_Prečice" #: ../pan/gui/prefs-ui.cc:1326 msgid "Shortcuts" msgstr "Kratice" #: ../pan/gui/profiles-dialog.cc:83 msgid "Please choose your email address according to your PGP key's user id." msgstr "Molimo odaberite svoju e-mail adresu prema PGP korisničkom id ključu." #: ../pan/gui/profiles-dialog.cc:131 msgid "Posting Profile" msgstr "Postavi profil" #: ../pan/gui/profiles-dialog.cc:143 msgid "Profile Information" msgstr "Podaci o profilu" #: ../pan/gui/profiles-dialog.cc:147 msgid "_Profile Name:" msgstr "_Naziv naloga:" #: ../pan/gui/profiles-dialog.cc:150 msgid "Required Information" msgstr "Neophodni podaci" #: ../pan/gui/profiles-dialog.cc:154 msgid "_Full Name:" msgstr "_Puno ime:" #: ../pan/gui/profiles-dialog.cc:158 msgid "" "Your email address.\n" "Note that this has to match your PGP signature's address\n" "if you want your messages to be PGP-signed or encrypted correctly." msgstr "" "Vaša e-mail adresa.\n" "Zapazi da se mora poklapati sa PGP potpisom adrese\n" "ukoliko želite poruge da budu PGP-potpisane ili kodirane ispravno." #: ../pan/gui/profiles-dialog.cc:162 msgid "_Email Address:" msgstr "_E-mail adresa:" #: ../pan/gui/profiles-dialog.cc:164 msgid "_Post Articles via:" msgstr "_Postavi članke preko:" #: ../pan/gui/profiles-dialog.cc:167 msgid "Signature" msgstr "Potpis" #: ../pan/gui/profiles-dialog.cc:170 msgid "_Use a Signature" msgstr "_Koristi potpis" #: ../pan/gui/profiles-dialog.cc:174 msgid "Signature File" msgstr "Potpis datoteke" #: ../pan/gui/profiles-dialog.cc:184 msgid "Text File" msgstr "Tekstualna datoteka" #: ../pan/gui/profiles-dialog.cc:186 msgid "Text" msgstr "Tekst" #: ../pan/gui/profiles-dialog.cc:188 msgid "Command" msgstr "Komanda" #: ../pan/gui/profiles-dialog.cc:191 msgid "PGP Signature" msgstr "PGP potpis" #: ../pan/gui/profiles-dialog.cc:196 msgid "Signature Type: " msgstr "Tip potpisa: " #: ../pan/gui/profiles-dialog.cc:226 msgid "X-Face (Avatar)" msgstr "X-lice (sličica)" #: ../pan/gui/profiles-dialog.cc:229 msgid "" "You can add an avatar icon to your articles with a unique X-Face code.\n" "Add the code without the trailing \"X-Face:\" \n" " if it was generated by a helper program (for example http://www.dairiki.org/" "xface/xface.php)." msgstr "" "Možete dodati avatar ikonu za vaš članak sa unikatnim X-Face kodom.\n" "Dodaj kod bez pratećeg \"X-Face:\" \n" " Ako je generisan pomoću helper programa (na primjer http://www.dairiki.org/" "xface/xface.php)." #: ../pan/gui/profiles-dialog.cc:232 msgid "_X-Face:" msgstr "_X-lice:" #: ../pan/gui/profiles-dialog.cc:234 msgid "Optional Information" msgstr "Dodatne informacije" #: ../pan/gui/profiles-dialog.cc:239 msgid "" "When posting to Usenet, your article's Message-ID contains a domain name.\n" "You can set a custom domain name here, or leave it blank to let Pan use the " "domain name from your email address." msgstr "" "Pri postavljanju na Usenet, Message-ID vašeg članka sadrži domensko ime.\n" "Možete postaviti domensko ime ovdje, ili ostavite prazno da Pan koristi " "domensko ime s vaše e-mail adrese." #: ../pan/gui/profiles-dialog.cc:242 msgid "Message-ID _Domain Name:" msgstr "_Domen za ID poruke:" #: ../pan/gui/profiles-dialog.cc:246 #, c-format msgid "" "%i for Message-ID\n" "%a for Author and Address\n" "%n for Author name\n" "%d for Date" msgstr "" "%i za ID poruke\n" "%a za autora i adresu\n" "%n za ime autora\n" "%d za datum" #: ../pan/gui/profiles-dialog.cc:247 msgid "_Attribution:" msgstr "_Uvodni tekst:" #: ../pan/gui/profiles-dialog.cc:271 msgid "" "Extra headers to be included in your articles, such as\n" "Reply-To: \"Your Name\"\n" "Organization: Your Organization\n" msgstr "" "Dodatna zaglavlja koja će biti uključena u članke, kao što su\n" "Odgovori: \"Vaše ime\" \n" #: ../pan/gui/profiles-dialog.cc:281 msgid "E_xtra Headers:" msgstr "D_odatna zaglavlja:" #: ../pan/gui/profiles-dialog.cc:326 msgid "Invalid email address." msgstr "Neispravna e-mail adresa." #: ../pan/gui/profiles-dialog.cc:327 msgid "Please use an address of the form joe@somewhere.org" msgstr "Molimo koristi adresu u formi ime@negdje.org" #: ../pan/gui/profiles-dialog.cc:482 msgid "New Profile" msgstr "Novi profil" #: ../pan/gui/profiles-dialog.cc:528 msgid "Posting Profiles" msgstr "Postavljanje profila" #: ../pan/gui/profiles-dialog.cc:544 msgid "Profiles" msgstr "Profili" #: ../pan/gui/save-attach-ui.cc:46 #, c-format msgid "" "%g - group as one directory (alt.binaries.pictures.trains)\n" "%G - group as nested directory (/alt/binaries/pictures/trains)\n" "%s - Subject line excerpt\n" "%S - Subject line\n" "%n - Poster display name\n" "%e - Poster email address\n" "%d - Article timestamp\n" "\"/home/user/News/Pan/%g\" becomes\n" "\"/home/user/News/Pan/alt.binaries.pictures.trains\", and\n" "\"/home/user/News/Pan/%G\" becomes\n" "\"/home/user/News/Pan/alt/binaries/pictures/trains\"," msgstr "" "%g - grupa kao jedan direktorij (alt.binaries.pictures.trains)\n" "%G - grupa kao ugniježden direktorij (/alt/binaries/pictures/trains)\n" "%s - Izvadak linije subjekta\n" "%S - Linija subjekta\n" "%n - Poster displej ime\n" "%e - Poster e-mail adresa\n" "%d - Vremenska oznaka članka\n" "\"/home/user/News/Pan/%g\" postaje\n" "\"/home/user/News/Pan/alt.binaries.pictures.trains\", i\n" "\"/home/user/News/Pan/%G\" postaje\n" "\"/home/user/News/Pan/alt/binaries/pictures/trains\"," #: ../pan/gui/save-attach-ui.cc:197 ../pan/gui/save-ui.cc:217 msgid "Add to the queue sorted by date posted" msgstr "Dodaj u red sortirno po datumu postavljanja" #: ../pan/gui/save-attach-ui.cc:198 ../pan/gui/save-ui.cc:218 msgid "Add to the front of the queue" msgstr "Dodaj na početak reda" #: ../pan/gui/save-attach-ui.cc:199 ../pan/gui/save-ui.cc:219 msgid "Add to the back of the queue" msgstr "Dodaj na kraj reda" #: ../pan/gui/save-attach-ui.cc:231 msgid "Pan: Save Attachments" msgstr "Panel: Spasi dodatke" #: ../pan/gui/save-attach-ui.cc:256 ../pan/gui/save-attach-ui.cc:274 #: ../pan/gui/save-ui.cc:271 ../pan/gui/save-ui.cc:289 msgid "_Location:" msgstr "_Lokacija:" #: ../pan/gui/save-attach-ui.cc:260 ../pan/gui/save-ui.cc:275 msgid "Save Articles" msgstr "Spasi članak" #: ../pan/gui/save-attach-ui.cc:277 ../pan/gui/save-ui.cc:292 #, c-format msgid "_Group's path: %s" msgstr "Put _grupe: %s" #: ../pan/gui/save-attach-ui.cc:288 ../pan/gui/save-ui.cc:307 msgid "_Priority:" msgstr "_Prioritet:" #: ../pan/gui/save-ui.cc:46 #, c-format msgid "" "%g - group as one directory (alt.binaries.pictures.trains)\n" "%G - group as nested directory (/alt/binaries/pictures/trains)\n" "%s - subject line excerpt\n" "%S - subject line\n" "%n - Poster display name\n" "%e - Poster email address\n" "%d - Article timestamp\n" " \n" "\"/home/user/News/Pan/%g\" becomes\n" "\"/home/user/News/Pan/alt.binaries.pictures.trains\", and\n" "\"/home/user/News/Pan/%G\" becomes\n" "\"/home/user/News/Pan/alt/binaries/pictures/trains\"," msgstr "" "%g - grupa kao jedan direktorij (alt.binaries.pictures.trains)\n" "%G - grupa kao ugniježden direktorij (/alt/binaries/pictures/trains)\n" "%s - Izvadak linije subjekta\n" "%S - Linija subjekta\n" "%n - Poster displej ime\n" "%e - Poster e-mail adresa\n" "%d - Vremenska oznaka članka\n" "\"/home/user/News/Pan/%g\" postaje\n" "\"/home/user/News/Pan/alt.binaries.pictures.trains\", i\n" "\"/home/user/News/Pan/%G\" postaje\n" "\"/home/user/News/Pan/alt/binaries/pictures/trains\"," #: ../pan/gui/save-ui.cc:208 msgid "Save attachments" msgstr "Sačuvaj dodatke" #: ../pan/gui/save-ui.cc:209 msgid "Save text" msgstr "Spasi tekst" #: ../pan/gui/save-ui.cc:210 msgid "Save attachments and text" msgstr "Spasi dodatke i tekst" #: ../pan/gui/save-ui.cc:246 msgid "Pan: Save Articles" msgstr "Panel: Spasi članke" #: ../pan/gui/save-ui.cc:303 msgid "_Action:" msgstr "_Akcija:" #: ../pan/gui/score-add-ui.cc:89 msgid "is more than" msgstr "je više nego" #: ../pan/gui/score-add-ui.cc:90 msgid "is at most" msgstr "je najviše" #: ../pan/gui/score-add-ui.cc:112 msgid "increase the article's score by" msgstr "povećaj bodove članka za" #: ../pan/gui/score-add-ui.cc:113 msgid "decrease the article's score by" msgstr "umanji bodove članka za" #: ../pan/gui/score-add-ui.cc:114 msgid "set the article's score to" msgstr "postavi bodove članka za" #: ../pan/gui/score-add-ui.cc:115 msgid "watch the article (set its score to 9999)" msgstr "prati članak (postavi mu bodove na 9999)" #: ../pan/gui/score-add-ui.cc:116 msgid "ignore the article (set its score to -9999)" msgstr "ignoriši članak (postavi mu bodove na -9999)" #: ../pan/gui/score-add-ui.cc:141 msgid "References" msgstr "Preporuke" #: ../pan/gui/score-add-ui.cc:142 msgid "Line Count" msgstr "Broj linija" #: ../pan/gui/score-add-ui.cc:143 msgid "Byte Count" msgstr "Brojač bajtova" #: ../pan/gui/score-add-ui.cc:144 msgid "Crosspost Group Count" msgstr "Broj Crosspost grupa" #: ../pan/gui/score-add-ui.cc:145 msgid "Age (in days)" msgstr "Godine (u danima)" #: ../pan/gui/score-add-ui.cc:167 msgid "for the next month" msgstr "za idući mjesec" #: ../pan/gui/score-add-ui.cc:168 msgid "for the next six months" msgstr "za idućih šest mjeseci" #: ../pan/gui/score-add-ui.cc:169 msgid "forever" msgstr "zauvijek" #: ../pan/gui/score-add-ui.cc:194 msgid "contains" msgstr "sadrži" #: ../pan/gui/score-add-ui.cc:195 msgid "doesn't contain" msgstr "ne sadrži" #: ../pan/gui/score-add-ui.cc:196 msgid "is" msgstr "je" #: ../pan/gui/score-add-ui.cc:197 msgid "isn't" msgstr "nije" #: ../pan/gui/score-add-ui.cc:198 msgid "starts with" msgstr "počinje sa" #: ../pan/gui/score-add-ui.cc:199 msgid "ends with" msgstr "završava sa" #: ../pan/gui/score-add-ui.cc:200 msgid "matches regex" msgstr "poklapa se sa ispravnim nazivom" #: ../pan/gui/score-add-ui.cc:481 msgid "Another rule already sets this article's score." msgstr "Drugo pravilo već postavlja bodove ovog članka." #: ../pan/gui/score-add-ui.cc:482 msgid "You may want to go back or delete the old rule." msgstr "Možda želite vratiti se nazad ili obrisati staro pravilo." #: ../pan/gui/score-add-ui.cc:553 msgid "Add and Re_score" msgstr "Dodaj i ponovo _boduj" #: ../pan/gui/score-add-ui.cc:604 ../pan/gui/score-add-ui.cc:624 msgid "New Scoring Rule" msgstr "Novo pravilo bodovanja" #: ../pan/gui/score-add-ui.cc:635 msgid "Group name" msgstr "Ime grupe" #: ../pan/gui/score-add-ui.cc:642 msgid "and" msgstr "i" #: ../pan/gui/score-view-ui.cc:56 msgid "Close and Re_score" msgstr "Zatvori i po_novo boduj" #: ../pan/gui/score-view-ui.cc:154 #, c-format msgid "File %s, Lines %d - %d" msgstr "Datoteka %s, linija %d - %d" #: ../pan/gui/score-view-ui.cc:182 msgid "Pan: Article's Scores" msgstr "Panel: Bodovi članka" #: ../pan/gui/score-view-ui.cc:208 msgid "Add" msgstr "Dodaj" #: ../pan/gui/score-view-ui.cc:213 msgid "New Score" msgstr "Novi bodovi" #: ../pan/gui/score-view-ui.cc:218 msgid "Criteria" msgstr "Kriterij" #: ../pan/gui/score-view-ui.cc:241 msgid "Add a New Scoring Rule" msgstr "Dodaj novo pravilo bodovanja" #: ../pan/gui/score-view-ui.cc:248 msgid "Remove the Selected Scoring Rule" msgstr "Ukloni označeno pravilo bodovanja" #: ../pan/gui/server-ui.cc:259 msgid "Please specify the server's address." msgstr "Molimo naglasi adresu servera." #: ../pan/gui/server-ui.cc:305 msgid "Import SSL Certificate (PEM Format) From File" msgstr "Unesi SSL certifikat iz datoteke (u PEM formatu)" #. create the dialog #: ../pan/gui/server-ui.cc:342 ../pan/gui/server-ui.cc:948 msgid "Add a Server" msgstr "Dodaj server" #: ../pan/gui/server-ui.cc:342 ../pan/gui/server-ui.cc:954 msgid "Edit a Server's Settings" msgstr "Izmijeni podešavanja servera" #: ../pan/gui/server-ui.cc:362 msgid "Location" msgstr "Lokacija:" #: ../pan/gui/server-ui.cc:366 msgid "The news server's actual address, e.g. \"news.mynewsserver.com\"" msgstr "Adresa servera diskusionih grupa, npr. „news.mojserver.com“" #: ../pan/gui/server-ui.cc:367 msgid "_Address:" msgstr "_Adresa:" #: ../pan/gui/server-ui.cc:372 msgid "" "The news server's port number. Typically 119 for unencrypted and 563 for " "encrypted connections (SSL/TLS)." msgstr "" "Broj ulaza servera novosti. Obično je 119 za nekodirane i 563 za kodirane " "veze (SSL/TSL)." #: ../pan/gui/server-ui.cc:373 msgid "Por_t:" msgstr "U_laz:" #: ../pan/gui/server-ui.cc:376 msgid "Login (if Required)" msgstr "Prijava (ukoliko je potrebno)" #: ../pan/gui/server-ui.cc:380 msgid "_Username:" msgstr "_Korisničko ime:" #: ../pan/gui/server-ui.cc:381 msgid "" "The username to give the server when asked. If your server doesn't require " "authentication, you can leave this blank." msgstr "" "Dati serveru korisničko ime kada zatraži. Ukoliko tvoj server ne zahtijeva " "utvrđivanje identiteta, možeš ostaviti nepopunjeno." #: ../pan/gui/server-ui.cc:385 msgid "_Password:" msgstr "_Šifra:" #: ../pan/gui/server-ui.cc:386 msgid "" "The password to give the server when asked. If your server doesn't require " "authentication, you can leave this blank." msgstr "" "Dati serveru šifru kada zatraži. Ukoliko tvoj server ne zahtijeva " "utvrđivanje identiteta, možeš ostaviti nepopunjeno." #: ../pan/gui/server-ui.cc:389 msgid "Settings" msgstr "Podešavanja" #: ../pan/gui/server-ui.cc:396 msgid "Connection _Limit:" msgstr "_Maksimalan broj veza:" #: ../pan/gui/server-ui.cc:400 msgid "After Two Weeks" msgstr "Nakon dvije sedmice" #: ../pan/gui/server-ui.cc:401 msgid "After One Month" msgstr "Nakon jednog mjeseca" #: ../pan/gui/server-ui.cc:402 msgid "After Two Months" msgstr "Nakon dva mjeseca" #: ../pan/gui/server-ui.cc:403 msgid "After Three Months" msgstr "Nakon tri mjeseca" #: ../pan/gui/server-ui.cc:404 msgid "After Six Months" msgstr "Nakon šest mjeseci" #: ../pan/gui/server-ui.cc:405 msgid "Never Expire Old Articles" msgstr "Nikad ne ukidaj stare članke" #: ../pan/gui/server-ui.cc:419 msgid "E_xpire Old Articles:" msgstr "U_kidaj stare članke:" #: ../pan/gui/server-ui.cc:423 msgid "Primary" msgstr "Primarno" #: ../pan/gui/server-ui.cc:424 msgid "Fallback" msgstr "Spadanje" #: ../pan/gui/server-ui.cc:438 msgid "Server Rank:" msgstr "Rang servera:" #: ../pan/gui/server-ui.cc:442 msgid "" "Fallback servers are used for articles that can't be found on the " "primaries. One common approach is to use free servers as primaries and " "subscription servers as fallbacks." msgstr "" "Rezervni serveri služe za članke koji ne mogu biti pronađeni na primarnim " "serverima. Uobičajeni pristup je da koriste slobodne servere kao primarne a " "pretplaćene servere kao rezervne." #: ../pan/gui/server-ui.cc:447 msgid "Disable Compression (N/A)" msgstr "Isključi kompresiju (N/A)" #: ../pan/gui/server-ui.cc:448 msgid "XZVER Compression (Astraweb)" msgstr "XZVER kompresija (Astraweb)" #: ../pan/gui/server-ui.cc:449 msgid "GZIP Compression (Giganews etc.)" msgstr "GZIP kompresija (Giganews i sl.)" #: ../pan/gui/server-ui.cc:463 msgid "Header Compression:" msgstr "Kompresija zaglavlja:" #: ../pan/gui/server-ui.cc:469 msgid "Security" msgstr "Bezbjednost" #: ../pan/gui/server-ui.cc:474 msgid "Use Unsecure (Plaintext) Connections" msgstr "Koristi nesigurne (otvoreni tekst) veze" #: ../pan/gui/server-ui.cc:475 msgid "Use Secure SSL Connections" msgstr "Koristi sigurne SSL veze" #: ../pan/gui/server-ui.cc:490 msgid "TLS (SSL) Settings:" msgstr "TLS (SSL) podešavanja:" #: ../pan/gui/server-ui.cc:495 msgid "" "You can enable/disable secure SSL/TLS connections here. If you enable SSL/" "TLS, your data is encrypted and secure. It is encouraged to enable SSL/TLS " "for privacy reasons." msgstr "" "Možeš omogućiti/onemogućiti sigurne SSL/TLS veze ovdje. Ukoliko omogućiš SSL/" "TLS, tvoji podaci su kodirani i sigurni. Preporučljivo je omogućiti SSL/TLS " "iz privatnosnih razloga." #: ../pan/gui/server-ui.cc:500 msgid "Always trust this server's certificate" msgstr "Uvijek vjeruj certifikatu ovog servera" #: ../pan/gui/server-ui.cc:676 #, c-format msgid "Really delete \"%s\"?" msgstr "Zaista brisati \"%s\"?" #: ../pan/gui/server-ui.cc:765 msgid "No information available." msgstr "Informacije nisu dostupne." #: ../pan/gui/server-ui.cc:775 #, c-format msgid "Server Certificate for '%s'" msgstr "Certifikat servera za '%s'" #: ../pan/gui/server-ui.cc:874 #, c-format msgid "Really delete certificate for \"%s\"?" msgstr "Stvarno brisati certifikat za \"%s\"?" #. dialog #: ../pan/gui/server-ui.cc:901 ../pan/gui/server-ui.cc:922 #: ../pan/gui/server-ui.cc:1020 msgid "Servers" msgstr "Serveri" #: ../pan/gui/server-ui.cc:961 msgid "Remove a Server" msgstr "Ukloni server" #. dialog #: ../pan/gui/server-ui.cc:994 msgid "SSL Certificates" msgstr "SSL certifikati" #: ../pan/gui/server-ui.cc:1015 msgid "Certificates" msgstr "Certifikati" #: ../pan/gui/server-ui.cc:1046 msgid "Import Certificate" msgstr "Unesi certifikat" #: ../pan/gui/server-ui.cc:1052 msgid "Inspect Certificate" msgstr "Provjeri certifikat" #: ../pan/gui/server-ui.cc:1059 msgid "Remove Certificate" msgstr "Ukloni certifikat" #: ../pan/gui/task-pane.cc:121 #, c-format msgid "" "\n" "Upload\n" "\n" "Subject: \"%s\"\n" "From: %s\n" "Groups: %s\n" "Sourcefile: %s\n" msgstr "" "\n" "Učitaj\n" "\n" "Tema: \"%s\"\n" "Od: %s\n" "Grupa: %s\n" "Izvorna datoteka: %s\n" #: ../pan/gui/task-pane.cc:133 #, c-format msgid "" "\n" "Download\n" "\n" "Subject: \"%s\"\n" "From: %s\n" "Date: %s\n" "Groups: %s\n" "Save Path: %s\n" msgstr "" "\n" "Preuzimanje\n" "\n" "Tema: \"%s\"\n" "Od: %s\n" "Datum: %s\n" "Grupa: %s\n" "Sigurna putanja: %s\n" #: ../pan/gui/task-pane.cc:135 msgid "unknown" msgstr "nepoznat" #: ../pan/gui/task-pane.cc:303 msgid "Choose New Destination for Selected Tasks" msgstr "Izaberi novo odredište za označene zadatke" #: ../pan/gui/task-pane.cc:457 #, c-format msgid "Pan: Tasks (%d Queued, %d Running, %d Stopped)" msgstr "Panel: Zadaci (%d Redanje, %d Izvršavanje, %d Zaustavljanje)" #: ../pan/gui/task-pane.cc:459 #, c-format msgid "Pan: Tasks (%d Queued, %d Running)" msgstr "Panel: Zadaci (%d Redanje, %d Izvršavanje)" #: ../pan/gui/task-pane.cc:461 #, c-format msgid "Pan: Tasks" msgstr "Panel: Zadaci" #: ../pan/gui/task-pane.cc:486 #, c-format msgid "%lu selected, %s" msgstr "%lu označeno, %s" #: ../pan/gui/task-pane.cc:550 msgid "Running" msgstr "Izvršava se" #: ../pan/gui/task-pane.cc:551 msgid "Decoding" msgstr "Dekodiranje" #: ../pan/gui/task-pane.cc:553 msgid "Queued for Decode" msgstr "Redaj za dekodiranje" #: ../pan/gui/task-pane.cc:554 msgid "Queued for Encode" msgstr "Redaj za kodiranje" #: ../pan/gui/task-pane.cc:555 msgid "Queued" msgstr "Na redu" #: ../pan/gui/task-pane.cc:556 msgid "Stopped" msgstr "Zaustavljeno" #: ../pan/gui/task-pane.cc:557 msgid "Removing" msgstr "Uklanjanje" #: ../pan/gui/task-pane.cc:586 #, c-format msgid "%d%% Done" msgstr "%d%% Izvršeno" #: ../pan/gui/task-pane.cc:592 #, c-format msgid "%d:%02d:%02d Remaining (%d @ %lu KiB/s)" msgstr "%d:%02d:%02d preostalo (%d @ %lu KiB/s)" #: ../pan/gui/task-pane.cc:687 ../pan/gui/task-pane.cc:688 msgid "Move To Top" msgstr "Pomjeri na vrh" #: ../pan/gui/task-pane.cc:692 ../pan/gui/task-pane.cc:693 msgid "Move To Bottom" msgstr "Pomjeri na dno" #: ../pan/gui/task-pane.cc:697 ../pan/gui/task-pane.cc:698 msgid "Show Task Information" msgstr "Prikaži informacije o zadatku" #: ../pan/gui/task-pane.cc:702 ../pan/gui/task-pane.cc:703 msgid "Stop Task" msgstr "Zaustavi zadatak" #: ../pan/gui/task-pane.cc:707 ../pan/gui/task-pane.cc:708 msgid "Delete Task" msgstr "Obriši zadatak" #: ../pan/gui/task-pane.cc:712 ../pan/gui/task-pane.cc:713 msgid "Restart Task" msgstr "Ponovo pokreni zadatak" #: ../pan/gui/task-pane.cc:717 ../pan/gui/task-pane.cc:718 msgid "Change Download Destination" msgstr "Promijeni odredište preuzimanja" #: ../pan/gui/task-pane.cc:1028 msgid "_Online" msgstr "_Na mreži" #: ../pan/gui/task-pane.cc:1045 msgid "Restart Tasks" msgstr "Ponovo pokreni zadatke" #: ../pan/gui/task-pane.cc:1047 msgid "Stop Tasks" msgstr "Zaustavi zadatke" #: ../pan/gui/task-pane.cc:1049 msgid "Delete Tasks" msgstr "Obriši zadatke" #: ../pan/gui/task-pane.cc:1055 msgid "Show info popups" msgstr "Pokaži informacije u iskakajućem okviru" #: ../pan/gui/url.cc:123 #, c-format msgid "Error starting URL: %s (Command was: %s)" msgstr "Greška pokretanja URL-a: %s (Naredba: %s)" #: ../pan/tasks/decoder.cc:117 #, c-format msgid "Couldn't save file \"%s\": %s" msgstr "Nemoguće spasiti datoteku \"%s\": %s" #: ../pan/tasks/decoder.cc:139 ../pan/tasks/encoder.cc:136 msgid "Error initializing uulib" msgstr "Greška pri inicijalizaciji uulib" #: ../pan/tasks/decoder.cc:154 ../pan/tasks/socket-impl-gio.cc:360 #: ../pan/tasks/socket-impl-openssl.cc:642 #, c-format msgid "Error reading from %s: %s" msgstr "Greška pri čitanju iz %s: %s" #: ../pan/tasks/decoder.cc:194 #, c-format msgid "Saved \"%s\"" msgstr "Sačuvano „%s“" #: ../pan/tasks/decoder.cc:201 #, c-format msgid "" "Error saving \"%s\":\n" "%s." msgstr "" "Greška pri spašavanju \"%s\":\n" "%s." #: ../pan/tasks/decoder.cc:314 ../pan/tasks/task-article.cc:354 #, c-format msgid "Decoding %s" msgstr "Dekodiranje %s" #: ../pan/tasks/encoder.cc:103 ../pan/tasks/encoder.cc:154 #, c-format msgid "Error loading %s from cache." msgstr "Greška pri učitanju %s iz keš memorije." #: ../pan/tasks/encoder.cc:176 #, c-format msgid "Error encoding %s: %s" msgstr "Greška pri kodiranju %s: %s" #: ../pan/tasks/encoder.cc:266 #, c-format msgid "Encoding %s" msgstr "Kodiranje %s" #: ../pan/tasks/nntp.cc:148 #, c-format msgid "%s requires a username, but none is set." msgstr "%s zahtijeva korisničko ime, ali nije postavljeno." #: ../pan/tasks/nntp.cc:161 #, c-format msgid "%s requires a password, but none is set." msgstr "%s zahtijeva šifru, ali nije postavljena." #: ../pan/tasks/nntp.cc:239 #, c-format msgid "Sending \"%s\" to %s returned an error: %s" msgstr "Slanje \"%s\" na %s vratilo grešku: %s" #: ../pan/tasks/nntp.cc:262 #, c-format msgid "Sending \"%s\" to %s returned an unrecognized response: \"%s\"" msgstr "Slanje \"%s\" na %s vratilo nepoznat odgovor: \"%s\"" #: ../pan/tasks/nntp-pool.cc:235 #, c-format msgid "Unable to connect to \"%s\"" msgstr "Nemoguće povezati na \"%s\"" #: ../pan/tasks/queue.cc:772 ../pan/tasks/queue.cc:800 #: ../pan/tasks/queue.cc:827 msgid "No space left on device." msgstr "Nema slobodnog prostora na uređaju." #: ../pan/tasks/socket-impl-gio.cc:173 ../pan/tasks/socket-impl-gio.cc:211 #: ../pan/tasks/socket-impl-openssl.cc:214 #: ../pan/tasks/socket-impl-openssl.cc:252 #, c-format msgid "Error connecting to \"%s\"" msgstr "Greška pri povezivanju na \"%s\"" #: ../pan/tasks/socket-impl-gio.cc:359 ../pan/tasks/socket-impl-openssl.cc:641 msgid "Unknown Error" msgstr "Nepoznata greška" #: ../pan/tasks/task-article.cc:62 ../pan/tasks/task-article.cc:160 #, c-format msgid "Saving %s" msgstr "Čuvam %s" #: ../pan/tasks/task-article.cc:64 #, c-format msgid "Reading %s" msgstr "Učitavanje %s" #: ../pan/tasks/task-article.cc:326 #, c-format msgid "Article \"%s\" is incomplete -- the news server(s) don't have part %s" msgstr "Članak \"%s\" nije dovršen -- server(i) novosti nemaju dio %s" #: ../pan/tasks/task-groups.cc:41 #, c-format msgid "Getting group list from \"%s\"" msgstr "Prikazivanje liste grupa iz \"%s\"" #: ../pan/tasks/task-groups.cc:134 #, c-format msgid "Fetched %lu Groups" msgstr "Zakačene %lu grupe" #: ../pan/tasks/task-post.cc:35 #, c-format msgid "Posting \"%s\"" msgstr "Postavljanje \"%s\"" #: ../pan/tasks/task-post.cc:76 #, c-format msgid "Posting of \"%s\" failed: %s" msgstr "Postavljanje \"%s\" neuspješno: %s" #: ../pan/tasks/task-post.cc:81 #, c-format msgid "Posting of \"%s\" successful: %s" msgstr "Postavljanje \"%s\" uspješno: %s" #: ../pan/tasks/task-upload.cc:51 #, c-format msgid "Uploading %s" msgstr "Učitavanje %s" #: ../pan/tasks/task-upload.cc:244 #, c-format msgid "Uploading %s - Part %d of %d" msgstr "Učitavanje %s - dio %d od %d dijelova" #: ../pan/tasks/task-upload.cc:246 #, c-format msgid "Uploading message body with subject \"%s\"" msgstr "Učitavanje poruke tijela sa temom \"%s\"" #: ../pan/tasks/task-upload.cc:303 #, c-format msgid "Posting of file %s (part %d of %d) failed: No posts allowed by server." msgstr "" "Postavljanje datoteke %s (dio %d od %d dijelova) neuspio: Server onemogućio " "postavljanje." #: ../pan/tasks/task-upload.cc:311 #, c-format msgid "Posting of file %s (part %d of %d) failed: %s" msgstr "Postavljanje datoteke %s (dio %d od %d dijelova) neuspio: %s" #: ../pan/tasks/task-upload.cc:321 ../pan/tasks/task-upload.cc:328 #, c-format msgid "Posting of file %s (part %d of %d) successful: %s" msgstr "Postavljanje datoteke %s (dio %d od %d dijelova) uspješan: %s" #: ../pan/tasks/task-upload.cc:338 #, c-format msgid "Posting of file %s successful: %s" msgstr "Postavljanje datoteke %s uspješno: %s" #: ../pan/tasks/task-upload.cc:342 #, c-format msgid "" "Posting of file %s not completely successful: Check the log (right-click " "list item)." msgstr "" "Postavljanje datoteke %s nije potpuno uspješno: Provjeri prijavu (desni klik " "na objekat liste)." #: ../pan/tasks/task-upload.cc:358 #, c-format msgid "" "Posting of file %s not successful: Check the log (right-click list item)." msgstr "" "Postavljanje datoteke %s neuspješno: Provjeri prijavu (desni klik na objekat " "liste)." #: ../pan/tasks/task-xover.cc:83 #, c-format msgid "Getting all headers for \"%s\"" msgstr "Prikazivanje svih zaglavlja za \"%s\"" #: ../pan/tasks/task-xover.cc:86 #, c-format msgid "Getting new headers for \"%s\"" msgstr "Prikazivanje novih zaglavlja za \"%s\"" #. SAMPLE #: ../pan/tasks/task-xover.cc:90 #, c-format msgid "Sampling headers for \"%s\"" msgstr "Uzorkovanje zaglavlja za „%s“" #: ../pan/tasks/task-xover.cc:426 #, c-format msgid "%s (%lu parts, %lu articles)" msgstr "%s (%lu dijelova, %lu članaka)" #: ../pan/tasks/task-xover.cc:500 #, c-format msgid "Getting new headers for \"%s\" done." msgstr "Prikazivanje novih zaglavlja za \"%s\" završeno." #: ../pan/tasks/task-xoverinfo.cc:78 #, c-format msgid "Getting header counts for \"%s\"" msgstr "Prikazivanje brojača zaglavlja za \"%s\"" #: ../pan/usenet-utils/filter-info.cc:168 msgid "article doesn't have attachments" msgstr "članak nema dodataka" #: ../pan/usenet-utils/filter-info.cc:172 msgid "the article has attachments" msgstr "članak ima dodatke" #: ../pan/usenet-utils/filter-info.cc:176 msgid "the article isn't cached locally" msgstr "članak nije lokalno keširan" #: ../pan/usenet-utils/filter-info.cc:180 msgid "the article is cached locally" msgstr "članak je keširan lokalno" #: ../pan/usenet-utils/filter-info.cc:184 msgid "the article wasn't posted by you" msgstr "nisi postavio članak" #: ../pan/usenet-utils/filter-info.cc:188 msgid "the article was posted by you" msgstr "postavio si članak" #: ../pan/usenet-utils/filter-info.cc:192 msgid "the article has been read" msgstr "članak je pročitan" #: ../pan/usenet-utils/filter-info.cc:196 msgid "the article hasn't been read" msgstr "članak nije pročitan" #: ../pan/usenet-utils/filter-info.cc:200 #, c-format msgid "the article is less than %ld bytes long" msgstr "članak zauzima manje od %ld bajta" #: ../pan/usenet-utils/filter-info.cc:205 #, c-format msgid "the article is at least %ld bytes long" msgstr "članak zauzima najmanje %ld bajta" #: ../pan/usenet-utils/filter-info.cc:210 #, c-format msgid "the article is less than %ld lines long" msgstr "članak ima manje od %ld linija" #: ../pan/usenet-utils/filter-info.cc:215 #, c-format msgid "the article is at least %ld lines long" msgstr "članak ima najmanje %ld linija" #: ../pan/usenet-utils/filter-info.cc:220 #, c-format msgid "the article is less than %ld days old" msgstr "članak je star manje od %ld" #: ../pan/usenet-utils/filter-info.cc:225 #, c-format msgid "the article is at least %ld days old" msgstr "članak je star najmanje %ld dana" #: ../pan/usenet-utils/filter-info.cc:230 #, c-format msgid "the article was posted to less than %ld groups" msgstr "članak je postavljen na manje od %ld grupa" #: ../pan/usenet-utils/filter-info.cc:235 #, c-format msgid "the article was posted to at least %ld groups" msgstr "članak je postavljen na najmanje %ld grupa" #: ../pan/usenet-utils/filter-info.cc:240 #, c-format msgid "the article's score is less than %ld" msgstr "članak ima manje od %ld bodova" #: ../pan/usenet-utils/filter-info.cc:245 #, c-format msgid "the article's score is %ld or higher" msgstr "članak ima %ld ili više bodova" #: ../pan/usenet-utils/filter-info.cc:254 #: ../pan/usenet-utils/filter-info.cc:264 #, c-format msgid "%s doesn't contain \"%s\"" msgstr "%s ne sadrži \"%s\"-" #: ../pan/usenet-utils/filter-info.cc:255 #: ../pan/usenet-utils/filter-info.cc:265 #, c-format msgid "%s isn't \"%s\"" msgstr "%s nije \"%s\"" #: ../pan/usenet-utils/filter-info.cc:256 #: ../pan/usenet-utils/filter-info.cc:266 #, c-format msgid "%s doesn't begin with \"%s\"" msgstr "%s ne počinje sa \"%s\"" #: ../pan/usenet-utils/filter-info.cc:257 #: ../pan/usenet-utils/filter-info.cc:267 #, c-format msgid "%s doesn't end with \"%s\"" msgstr "%s ne završava sa \"%s\"" #: ../pan/usenet-utils/filter-info.cc:258 #: ../pan/usenet-utils/filter-info.cc:268 #, c-format msgid "%s doesn't match the regex \"%s\"" msgstr "%s se ne poklapa sa ispravnim nazivom \"%s\"" #: ../pan/usenet-utils/filter-info.cc:280 #, c-format msgid "%s contains \"%s\"" msgstr "%s sadrži \"%s\"" #: ../pan/usenet-utils/filter-info.cc:281 #, c-format msgid "%s is \"%s\"" msgstr "%s je \"%s\"" #: ../pan/usenet-utils/filter-info.cc:282 #, c-format msgid "%s begins with \"%s\"" msgstr "%s počinje sa \"%s\"" #: ../pan/usenet-utils/filter-info.cc:283 #, c-format msgid "%s ends with \"%s\"" msgstr "%s završava sa \"%s\"" #: ../pan/usenet-utils/filter-info.cc:284 #, c-format msgid "%s matches the regex \"%s\"" msgstr "%s se poklapa sa ispravnim nazivom \"%s\"" #: ../pan/usenet-utils/filter-info.cc:290 msgid "Any of these tests fail:" msgstr "Neki od testova pada:" #: ../pan/usenet-utils/filter-info.cc:297 msgid "All of these tests pass:" msgstr "Padaju svi ovi testovi:" #: ../pan/usenet-utils/filter-info.cc:304 msgid "None of these tests pass:" msgstr "Niti jedan od ovih testova ne prolazi:" #: ../pan/usenet-utils/filter-info.cc:311 msgid "Any of these tests pass:" msgstr "Neki od ovih testova prolazi:" #: ../pan/usenet-utils/gnksa.cc:880 #, c-format msgid "No email address provided; generating message-id with domain \"%s\"" msgstr "Niste odredili adresu e-maila; generišem ID-poruke sa domenom \"%s\"" #: ../pan/usenet-utils/message-check.cc:124 msgid "Warning: Reply seems to be top-posted." msgstr "Upozorenje: Izgleda da je odgovor postavljen na vrh." #: ../pan/usenet-utils/message-check.cc:145 msgid "Warning: The signature marker should be \"-- \", not \"--\"." msgstr "Upozorenje: Marker potpisa bi trebao biti \"--\", a ne \"--\";." #: ../pan/usenet-utils/message-check.cc:162 msgid "Warning: Signature prefix with no signature." msgstr "Upozorenje: Prefiks potpisa je nepotpisan." #: ../pan/usenet-utils/message-check.cc:167 msgid "Warning: Signature is more than 4 lines long." msgstr "Upozorenje: Potpis je duži od 4 linije." #: ../pan/usenet-utils/message-check.cc:172 msgid "Warning: Signature is more than 80 characters wide." msgstr "Upozorenje: Potpis je širi od 80 znakova." # translations. #: ../pan/usenet-utils/message-check.cc:198 #, c-format msgid "Warning: %d line is more than 80 characters wide." msgid_plural "Warning: %d lines are more than 80 characters wide." msgstr[0] "Upozorenje: %d linija je šira od 80 znakova." msgstr[1] "Upozorenje: %d linije su šire od 80 znakova." msgstr[2] "Upozorenje: %d linija su šire od 80 znakova." #: ../pan/usenet-utils/message-check.cc:223 msgid "Error: Message is empty." msgstr "Greška: Poruka je prazna." #: ../pan/usenet-utils/message-check.cc:258 msgid "Warning: The message is entirely quoted text!" msgstr "Upozorenje: Čitava poruka je pod navodnicima!" #: ../pan/usenet-utils/message-check.cc:259 msgid "Warning: The message is mostly quoted text." msgstr "Upozorenje: Veliki dio poruke je pod navodnicima!." #: ../pan/usenet-utils/message-check.cc:309 msgid "Error: Message appears to have no new content." msgstr "Greška: Poruka nema novi sadržaj." #: ../pan/usenet-utils/message-check.cc:344 #: ../pan/usenet-utils/message-check.cc:383 #, c-format msgid "" "Warning: The posting profile's server doesn't carry newsgroup\n" "\t\"%s\".\n" "\tIf the group name is correct, switch profiles in the \"From:\"\n" "\tline or edit the profile with \"Edit|Manage Posting Profiles\"." msgstr "" "Upozorenje: Server profila s kojeg se postavlja ne sadrži interesne grupe\n" "\t\"%s\".\n" "\tAko je ime grupe tačno, zamjeni profile u \"Od:\"\n" "\tporedaj ili uredi profil sa \"Uredi|Upravljaj s profilima za postavljanje" "\"." #: ../pan/usenet-utils/message-check.cc:355 msgid "Warning: Following-Up to too many groups." msgstr "Upozorenje: Prati previše grupa." #: ../pan/usenet-utils/message-check.cc:366 msgid "Error: No Subject specified." msgstr "Greška: Tema nije navedena." #: ../pan/usenet-utils/message-check.cc:395 #, c-format msgid "Warning: Group \"%s\" is read-only." msgstr "Upozorenje: Grupa \"%s\" je samo za čitanje." #: ../pan/usenet-utils/message-check.cc:404 msgid "Error: Posting to a very large number of groups." msgstr "Greška: Postavljanje na preveliki broj grupa." #: ../pan/usenet-utils/message-check.cc:409 msgid "Warning: Posting to a large number of groups." msgstr "Upozorenje: Postavljanje na veliki broj grupa." #: ../pan/usenet-utils/message-check.cc:416 msgid "Warning: Crossposting without setting Followup-To header." msgstr "Upozorenje: Križno objavljivanje bez Followup-To zaglavlja." #: ../pan/usenet-utils/message-check.cc:441 msgid "Error: Bad email address." msgstr "Greška: Pogrešna e-mail adresa." #: ../pan/usenet-utils/message-check.cc:450 msgid "Warning: Most newsgroups frown upon HTML posts." msgstr "Upozorenje: Većina interesnih grupa ne odobrava HTML postove." #: ../pan/usenet-utils/message-check.cc:486 msgid "Error: No Recipients." msgstr "Greška: Nije naveden primaoc." #: ../pan/usenet-utils/scorefile.cc:304 #, c-format msgid "" "Error reading score in %*.*s, line %d: expected 'Expires: MM/DD/YYYY' or " "'Expires: DD-MM-YYYY'." msgstr "" "Greška pri čitanju bodova u %*.*s, linija %d: očekivano 'Ukidanje: DD/MM/" "GGGG' ili 'Ukidanje: DD-MM-GGGG'." #: ../pan/usenet-utils/scorefile.cc:307 #, c-format msgid "Expired old score from %*.*s, line %d" msgstr "Ukinuti stari bodovi iz %*.*s, linija %d" #: ../pan/usenet-utils/scorefile.cc:380 #, c-format msgid "Error reading score in %*.*s, line %d: unexpected line." msgstr "Greška pri čitanju bodova %*.*s, linija %d: neočekivana linija." #: ../pan/usenet-utils/scorefile.cc:428 #, c-format msgid "Read %lu scoring rules in %lu sections from \"%s\"" msgstr "Pročitano %lu pravila bodovanja u %lu dijelovima iz \"%s\"" #: ../pan/usenet-utils/ssl-utils.h:189 #, c-format msgid "Error printing the server certificate for '%s'" msgstr "Greška pri ispisu certifikata servera '%s'" #: ../pan/usenet-utils/ssl-utils.h:205 #, c-format msgid "" "The current server '%s' sent this security certificate:\n" "\n" msgstr "" "Trenutni server '%s' je poslao ovaj sigurnosni certifikat:\n" "\n" #: ../pan/usenet-utils/ssl-utils.h:206 #, c-format msgid "" "Certificate information for server '%s':\n" "\n" msgstr "" "Informacije o certifikatu za server '%s':\n" "\n" #: ../pan/usenet-utils/ssl-utils.h:208 #, c-format msgid "" "%sIssuer information:\n" "%s\n" "Valid until: %s\n" "\n" "Not valid before: %s\n" "\n" msgstr "" "%sInformacija izdavatelja:\n" "%s\n" "Važi do: %s\n" "\n" "Nije važeći prije: %s\n" "\n" #: ../pan/usenet-utils/text-massager.cc:399 msgid "> [quoted text muted]" msgstr "> [citirani tekst je prikriven]" #: ../pan/usenet-utils/text-massager.cc:579 msgid "no_name" msgstr "bez_imena" #: ../pan/usenet-utils/text-massager.cc:580 msgid "no_mail" msgstr "bez_e-maila" pan-0.162/po/ca.po000066400000000000000000002737301475412772400136720ustar00rootroot00000000000000# Traducció del pan2 de l'equip de Softcatalà. # Copyright © 2009 Free Software Foundation, Inc. # This file is distributed under the same license as the pan2 package. # Joaquim Torres # Xavier Conde Rueda # Lluís Pàmies i Juarez # Joan Duran , 2007-2009. # msgid "" msgstr "" "Project-Id-Version: pan2\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-04-19 15:34+0200\n" "PO-Revision-Date: 2013-04-18 17:12+0200\n" "Last-Translator: Joan Duran \n" "Language-Team: Catalan \n" "Language: ca\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" #. update the titlebar #: ../pan.desktop.in.h:1 ../pan/gui/dl-headers-ui.cc:106 #: ../pan/gui/gui.cc:1040 ../pan/gui/gui.cc:1667 ../pan/gui/gui.cc:2009 #: ../pan/gui/score-add-ui.cc:602 msgid "Pan" msgstr "Pan" #: ../pan.desktop.in.h:2 msgid "Newsreader" msgstr "Lector de notícies" #: ../pan.desktop.in.h:3 msgid "Read and Post Usenet Articles" msgstr "" #: ../pan/data/article-cache.cc:144 ../pan/data/encode-cache.cc:62 #, c-format msgid "Error opening directory: \"%s\": %s" msgstr "S'ha produït un error en obrir el directori «%s»: %s" #: ../pan/data/article-cache.cc:235 ../pan/data/article-cache.cc:244 #: ../pan/data-impl/data-io.cc:199 ../pan/data-impl/data-io.cc:231 #: ../pan/gui/post-ui.cc:1723 #, c-format msgid "Unable to save \"%s\" %s" msgstr "No s'ha pogut desar «%s» %s" #: ../pan/data/article-cache.cc:362 #, c-format msgid "Error opening file \"%s\" %s" msgstr "S'ha produït un error en obrir el fitxer «%s»: %s" #: ../pan/data/article-cache.cc:393 ../pan/data-impl/profiles.cc:174 #: ../pan/data-impl/server.cc:500 ../pan/general/file-util.cc:311 #: ../pan/gui/post-ui.cc:638 ../pan/gui/task-pane.cc:737 #, c-format msgid "Error reading file \"%s\": %s" msgstr "S'ha produït un error en llegir el fitxer «%s»: %s" #: ../pan/data/cert-store.cc:262 #, fuzzy, c-format msgid "Error opening SSL certificate directory: \"%s\": %s" msgstr "S'ha produït un error en obrir el directori «%s»: %s" #: ../pan/data/cert-store.cc:293 #, c-format msgid "Successfully added %d SSL PEM certificate(s) to Certificate Store." msgstr "" #: ../pan/data/cert-store.cc:313 msgid "" "Error initializing Certificate Store. Check that the permissions for the " "folders ~/.pan2 and ~/.pan2/ssl_certs are set correctly. Fatal, exiting." msgstr "" #. load_group_descriptions (*_data_io); #: ../pan/data-impl/data-impl.cc:113 #, c-format msgid "Loaded data backend in %.1f seconds" msgstr "S'ha carregat el rerefons de dades en %.1f segons" #: ../pan/data-impl/data-impl.cc:143 msgid "Pan Newsreader's server passwords" msgstr "" #: ../pan/data-impl/groups.cc:94 #, c-format msgid "Skipping newsrc file for server \"%s\"" msgstr "S'està ometent el fitxer newsrc per al servidor «%s»" #: ../pan/data-impl/headers.cc:606 #, c-format msgid "Expired %lu old articles from \"%s\"" msgstr "Han caducat %lu articles antics de «%s»" #: ../pan/data-impl/headers.cc:613 #, c-format msgid "" "Unsupported data version for %s headers: %d.\n" "Are you running an old version of Pan by accident?" msgstr "" "Versió de dades no disponible per a les capçaleres %s: %d.\n" "Esteu executant una versió antiga del Pan?" #: ../pan/data-impl/headers.cc:628 #, c-format msgid "Loaded %lu articles for \"%s\" in %.1f seconds (%.0f per second)" msgstr "S'han carregat %lu articles per a «%s» en %.1f segons (%.0f per segon)" #: ../pan/data-impl/headers.cc:857 #, fuzzy, c-format msgid "" "Saved %lu parts, %lu articles in \"%s\" in %.1f seconds (%.0f articles/sec)" msgstr "" "S'han desat %lu parts, %lu articles a «%s» en %.1f segons (%.0f art/seg)" #: ../pan/data-impl/headers.cc:1191 #, c-format msgid "Added %lu articles to %s." msgstr "S'han afegit %lu articles a %s." #: ../pan/data-impl/server.cc:261 #, c-format msgid "There seems to be no password set for server %s." msgstr "" #: ../pan/data-impl/server.cc:265 msgid "GNOME Keyring denied access to the passwords." msgstr "" #: ../pan/data-impl/xover.cc:243 #, c-format msgid "Error reading from %s: unknown group \"%s\"" msgstr "S'ha produït un error en llegir des de %s: grup desconegut «%s»" #. build the locale strings #: ../pan/general/e-util.cc:211 msgid "%l:%M %p" msgstr "%l:%M %p" #: ../pan/general/e-util.cc:212 msgid "Today %l:%M %p" msgstr "Avui %l:%M %p" #: ../pan/general/e-util.cc:213 msgid "%a %l:%M %p" msgstr "%a %l:%M %p" #: ../pan/general/e-util.cc:214 msgid "%b %d %l:%M %p" msgstr "%b %d %l:%M %p" #: ../pan/general/e-util.cc:215 msgid "%b %d %Y" msgstr "%b %d %Y" #: ../pan/general/e-util.cc:240 msgid "?" msgstr "?" #: ../pan/general/text-match.cc:193 #, c-format msgid "Can't use regular expression \"%s\": %s" msgstr "No es pot fer servir l'expressió regular «%s»: %s" #: ../pan/general/utf8-utils.cc:213 msgid "Couldn't determine article encoding. Non-UTF8 characters were removed." msgstr "" "No s'ha pogut determinar la codificació de l'article. S'han eliminat els " "caràcters que no eren UTF-8." #: ../pan/gui/actions.cc:303 ../pan/gui/post-ui.cc:446 msgid "_File" msgstr "_Fitxer" #: ../pan/gui/actions.cc:304 ../pan/gui/post-ui.cc:447 msgid "_Edit" msgstr "_Edita" #: ../pan/gui/actions.cc:305 ../pan/gui/prefs-ui.cc:1107 msgid "_Layout" msgstr "_Disposició" #: ../pan/gui/actions.cc:306 msgid "_Group Pane" msgstr "Subfinestra de _grup" #: ../pan/gui/actions.cc:307 msgid "_Header Pane" msgstr "Subfinestra de _capçalera" #: ../pan/gui/actions.cc:308 msgid "_Body Pane" msgstr "Subfinestra de c_os" #: ../pan/gui/actions.cc:309 msgid "_View" msgstr "_Visualitza" #: ../pan/gui/actions.cc:310 msgid "Filte_r" msgstr "Filt_re" #: ../pan/gui/actions.cc:311 msgid "_Go" msgstr "_Ves a" #: ../pan/gui/actions.cc:312 ../pan/gui/prefs-ui.cc:1157 msgid "_Actions" msgstr "_Accions" #: ../pan/gui/actions.cc:313 msgid "_Articles" msgstr "_Articles" #: ../pan/gui/actions.cc:314 msgid "G_roups" msgstr "G_rups" #: ../pan/gui/actions.cc:315 ../pan/gui/actions.cc:316 msgid "_Post" msgstr "_Publica" #: ../pan/gui/actions.cc:317 msgid "_Help" msgstr "_Ajuda" #: ../pan/gui/actions.cc:320 msgid "_Read Group" msgstr "_Llegeix el grup" #: ../pan/gui/actions.cc:321 msgid "Read Group" msgstr "Llegeix el grup" #: ../pan/gui/actions.cc:325 msgid "_Mark Selected Groups Read" msgstr "_Marca els grups seleccionats com a llegits" #: ../pan/gui/actions.cc:326 msgid "Mark Selected Groups Read" msgstr "Marca els grups seleccionats com a llegits" #: ../pan/gui/actions.cc:330 msgid "_Delete Selected Groups' Articles" msgstr "_Suprimeix els articles dels grups seleccionats" #: ../pan/gui/actions.cc:331 msgid "Delete Selected Groups' Articles" msgstr "Suprimeix els articles dels grups seleccionats" #: ../pan/gui/actions.cc:335 msgid "Get New _Headers in Selected Groups" msgstr "Obtingues les _capçaleres noves dels grups seleccionats" #: ../pan/gui/actions.cc:336 msgid "Get New Headers in Selected Groups" msgstr "Obtingues les capçaleres noves dels grups seleccionats" #: ../pan/gui/actions.cc:340 ../pan/gui/actions.cc:345 msgid "Get New _Headers in Subscribed Groups" msgstr "Obtingues les noves _capçaleres dels grups subscrits" #: ../pan/gui/actions.cc:341 ../pan/gui/actions.cc:346 msgid "Get New Headers in Subscribed Groups" msgstr "Obtingues les capçaleres noves dels grups subscrits" #: ../pan/gui/actions.cc:350 msgid "Get _Headers..." msgstr "Obtingues les _capçaleres..." #: ../pan/gui/actions.cc:351 msgid "Get Headers..." msgstr "Obtingues les capçaleres..." #: ../pan/gui/actions.cc:355 ../pan/gui/actions.cc:356 msgid "Refresh Group List" msgstr "Refresca la llista de grups" #: ../pan/gui/actions.cc:360 msgid "_Subscribe" msgstr "_Subscriu" #: ../pan/gui/actions.cc:361 msgid "Subscribe" msgstr "Subscriu" #: ../pan/gui/actions.cc:365 msgid "_Unsubscribe" msgstr "_Cancel·la la subscripció" #: ../pan/gui/actions.cc:366 msgid "Unsubscribe" msgstr "Cancel·la la subscripció" #: ../pan/gui/actions.cc:370 msgid "_Save Articles..." msgstr "_Desa els articles..." #: ../pan/gui/actions.cc:371 msgid "Save Articles..." msgstr "Desa els articles..." #: ../pan/gui/actions.cc:375 #, fuzzy msgid "Save Articles from Selected _NZB..." msgstr "_Desa els articles d'aquest NZB..." #: ../pan/gui/actions.cc:376 #, fuzzy msgid "Save Articles from Selected NZB" msgstr "Desa els articles d'aquest NZB" #: ../pan/gui/actions.cc:380 #, fuzzy msgid "Save Articles to an NZB _File..." msgstr "_Desa els articles d'aquest NZB..." #: ../pan/gui/actions.cc:381 #, fuzzy msgid "Save Articles to an NZB File" msgstr "Desa els articles d'aquest NZB" #: ../pan/gui/actions.cc:385 ../pan/gui/actions.cc:386 #, fuzzy msgid "Print" msgstr "Pan: imprimeix" #: ../pan/gui/actions.cc:390 msgid "_Import NZB Files..." msgstr "_Importa fitxers NZB..." #: ../pan/gui/actions.cc:395 msgid "_Cancel Last Task" msgstr "_Cancel·la la darrera tasca" #: ../pan/gui/actions.cc:400 msgid "_Task Manager" msgstr "Gestor de _tasques" #: ../pan/gui/actions.cc:405 msgid "_Event Log" msgstr "_Registre d'esdeveniments" #: ../pan/gui/actions.cc:410 msgid "_Quit" msgstr "_Surt" #: ../pan/gui/actions.cc:415 msgid "Select _All Articles" msgstr "Selecciona tots els _articles" #: ../pan/gui/actions.cc:420 msgid "_Deselect All Articles" msgstr "No seleccionis _cap article" #: ../pan/gui/actions.cc:425 msgid "Add Su_bthreads to Selection" msgstr "Afegeix fi_ls secundaris a la selecció" #: ../pan/gui/actions.cc:430 msgid "Add _Threads to Selection" msgstr "Afegeix _fils a la selecció" #: ../pan/gui/actions.cc:435 msgid "Add _Similar Articles to Selection" msgstr "Afegeix articles _similars a la selecció" #: ../pan/gui/actions.cc:440 msgid "Select Article _Body" msgstr "Selecciona el _cos de l'article" #: ../pan/gui/actions.cc:445 msgid "Edit _Preferences" msgstr "Edita les _preferències" #: ../pan/gui/actions.cc:450 msgid "Edit Selected _Group's Preferences" msgstr "Edita les preferències del _grup seleccionat" #: ../pan/gui/actions.cc:455 ../pan/gui/post-ui.cc:463 msgid "Edit P_osting Profiles" msgstr "Edita els _perfils de publicació" #: ../pan/gui/actions.cc:460 msgid "Edit _News Servers" msgstr "Edita els servidors de _notícies" #: ../pan/gui/actions.cc:465 msgid "Jump to _Group Tab" msgstr "Ves a la pestanya de _grup" #: ../pan/gui/actions.cc:470 msgid "Jump to _Header Tab" msgstr "Ves a la _pestanya de capçalera" #: ../pan/gui/actions.cc:475 msgid "Jump to _Body Tab" msgstr "Ves a la pestanya de _cos" #: ../pan/gui/actions.cc:480 msgid "_Rot13 Selected Text" msgstr "Aplica la conversió _Rot13 al text seleccionat" #: ../pan/gui/actions.cc:485 msgid "Clear _Header Pane" msgstr "Neteja la _subfinestra de capçalera" #: ../pan/gui/actions.cc:490 msgid "Clear _Body Pane" msgstr "Neteja la subfinestra de _cos" #: ../pan/gui/actions.cc:495 msgid "Cache Article" msgstr "Posa l'article a la memòria cau" #: ../pan/gui/actions.cc:500 msgid "Read Article" msgstr "Llegeix l'article" #: ../pan/gui/actions.cc:505 msgid "Show Article Information" msgstr "Mostra informació de l'article" #: ../pan/gui/actions.cc:510 msgid "Read _More" msgstr "Llegeix _més" #: ../pan/gui/actions.cc:511 msgid "Read More" msgstr "Llegeix més" #: ../pan/gui/actions.cc:515 msgid "Read _Back" msgstr "_Torna a llegir" #: ../pan/gui/actions.cc:516 msgid "Read Back" msgstr "Torna a llegir" #: ../pan/gui/actions.cc:520 msgid "Next _Unread Group" msgstr "Següent gr_up sense llegir" #: ../pan/gui/actions.cc:525 msgid "Next _Group" msgstr "Següent _grup" #: ../pan/gui/actions.cc:530 msgid "Next _Unread Article" msgstr "_Següent article sense llegir" #: ../pan/gui/actions.cc:531 msgid "Next Unread Article" msgstr "Següent article sense llegir" #: ../pan/gui/actions.cc:535 msgid "Next _Article" msgstr "Següent _article" #: ../pan/gui/actions.cc:536 msgid "Next Article" msgstr "Següent article" #: ../pan/gui/actions.cc:540 msgid "Next _Watched Article" msgstr "Següent article _vigilat" #: ../pan/gui/actions.cc:545 msgid "Next Unread _Thread" msgstr "Següent _fil sense llegir" #: ../pan/gui/actions.cc:546 msgid "Next Unread Thread" msgstr "Següent fil sense llegir" #: ../pan/gui/actions.cc:550 msgid "Next Threa_d" msgstr "Següent f_il" #: ../pan/gui/actions.cc:555 msgid "Pre_vious Article" msgstr "A_rticle anterior" #: ../pan/gui/actions.cc:560 msgid "Previous _Thread" msgstr "_Fil anterior" #: ../pan/gui/actions.cc:565 msgid "_Parent Article" msgstr "Article de _nivell superior" #: ../pan/gui/actions.cc:570 msgid "Ignore _Author" msgstr "Ignora l'_autor" #: ../pan/gui/actions.cc:574 msgid "_Watch Thread" msgstr "_Vigila el fil" #: ../pan/gui/actions.cc:579 msgid "_Ignore Thread" msgstr "_Ignora el fil" #: ../pan/gui/actions.cc:584 ../pan/gui/actions.cc:585 #, fuzzy msgid "_Toggle Flag On/Off for Thread" msgstr "_Mira el fil" #: ../pan/gui/actions.cc:589 ../pan/gui/actions.cc:590 #, fuzzy msgid "_Turn Flag Off for Thread" msgstr "_Mira el fil" #: ../pan/gui/actions.cc:594 ../pan/gui/actions.cc:595 #, fuzzy msgid "_Select All Flagged Threads" msgstr "/_Ves/S_egüent fil de discussió nou" #: ../pan/gui/actions.cc:599 ../pan/gui/actions.cc:600 #, fuzzy msgid "_Go to Next Flagged Thread" msgstr "/_Ves/S_egüent fil de discussió nou" #: ../pan/gui/actions.cc:604 ../pan/gui/actions.cc:605 #, fuzzy msgid "_Go to Last Flagged Thread" msgstr "/_Ves/S_egüent fil de discussió nou" #: ../pan/gui/actions.cc:609 ../pan/gui/actions.cc:610 #, fuzzy msgid "_Invert Selection" msgstr "Inverteix la línia seleccionada" #: ../pan/gui/actions.cc:614 msgid "Edit Article's Watch/Ignore/Score..." msgstr "Edita el vigila/ignora/puntua de l'article..." #: ../pan/gui/actions.cc:619 msgid "Add a _Scoring Rule..." msgstr "_Afegeix una regla de puntuació..." #: ../pan/gui/actions.cc:624 msgid "Cance_l Article..." msgstr "Cance_l·la l'article..." #: ../pan/gui/actions.cc:629 msgid "_Supersede Article..." msgstr "_Substitueix l'article..." #: ../pan/gui/actions.cc:634 msgid "_Delete Article" msgstr "_Suprimeix l'article" #: ../pan/gui/actions.cc:639 msgid "Clear Article Cache" msgstr "Neteja la memòria cau d'articles" #: ../pan/gui/actions.cc:644 msgid "_Mark Article as Read" msgstr "_Marca l'article com a llegit" #: ../pan/gui/actions.cc:649 msgid "Mark Article as _Unread" msgstr "Marca l'article com a _no llegit" #: ../pan/gui/actions.cc:655 #, fuzzy msgid "_Mark Thread as Read" msgstr "_Marca l'article com a llegit" #: ../pan/gui/actions.cc:660 #, fuzzy msgid "Mark Thread as _Unread" msgstr "Marca l'article com a _no llegit" #: ../pan/gui/actions.cc:665 msgid "_Post to Newsgroup" msgstr "_Publica al grup de notícies" #: ../pan/gui/actions.cc:666 msgid "Post to Newsgroup" msgstr "Publica al grup de notícies" #: ../pan/gui/actions.cc:670 msgid "_Followup to Newsgroup" msgstr "_Seguiment al grup de notícies" #: ../pan/gui/actions.cc:671 msgid "Followup to Newsgroup" msgstr "Seguiment al grup de notícies" #: ../pan/gui/actions.cc:675 msgid "_Reply to Author in Mail" msgstr "_Respon a l'autor amb un correu" #: ../pan/gui/actions.cc:680 msgid "_Pan Home Page" msgstr "Pàgina principal del _Pan" #: ../pan/gui/actions.cc:685 msgid "Give _Feedback or Report a Bug..." msgstr "Proporciona _comentaris o informa d'un error..." #: ../pan/gui/actions.cc:690 msgid "_Tip Jar..." msgstr "_Consells..." #: ../pan/gui/actions.cc:695 msgid "_About" msgstr "_Quant a" #: ../pan/gui/actions.cc:700 msgid "Edit _SSL Certificates" msgstr "" #: ../pan/gui/actions.cc:715 msgid "_Thread Headers" msgstr "Capçaleres dels _fils" #: ../pan/gui/actions.cc:716 msgid "Wrap Article Body" msgstr "Ajusta el cos de l'article" #: ../pan/gui/actions.cc:717 #, fuzzy msgid "Show Article Signature" msgstr "Mostra informació de l'article" #: ../pan/gui/actions.cc:718 msgid "Mute _Quoted Text" msgstr "_Omet el text citat" #: ../pan/gui/actions.cc:719 msgid "Show All _Headers in Body Pane" msgstr "Mostra totes les _capçaleres en la subfinestra de cos" #: ../pan/gui/actions.cc:720 msgid "Show _Smilies as Graphics" msgstr "Mostra les _emoticones com a imatges" #: ../pan/gui/actions.cc:721 msgid "Show *Bold*, __Underlined__, and /Italic/" msgstr "Mostra *negreta*, __subratllat__, i /cursiva/" #: ../pan/gui/actions.cc:722 msgid "Size Pictures to _Fit" msgstr "_Dimensiona les imatges per a ajustar" #: ../pan/gui/actions.cc:723 msgid "Use _Monospace Font" msgstr "Utilitza la lletra _monoespaiada" #: ../pan/gui/actions.cc:724 msgid "Set Focus to Images" msgstr "Estableix el focus de les imatges" #: ../pan/gui/actions.cc:725 msgid "Highlight _URLs" msgstr "" #: ../pan/gui/actions.cc:728 msgid "_Work Online" msgstr "_Treballa connectat" #: ../pan/gui/actions.cc:729 msgid "_Tabbed Layout" msgstr "Disposició en _pestanyes" #: ../pan/gui/actions.cc:730 msgid "Show Group _Pane" msgstr "Mostra la _subfinestra de grup" #: ../pan/gui/actions.cc:731 msgid "Show Hea_der Pane" msgstr "Mostra la subfinestra _de capçalera" #: ../pan/gui/actions.cc:732 msgid "Show Bod_y Pane" msgstr "Mostra la subfinestra de _cos" #: ../pan/gui/actions.cc:733 msgid "Show _Toolbar" msgstr "Mostra la _barra d'eines" #: ../pan/gui/actions.cc:734 msgid "Abbreviate Group Names" msgstr "Abrevia els noms dels grups" #: ../pan/gui/actions.cc:736 #, fuzzy msgid "Match Only _Read Articles" msgstr "Només coincideix amb els articles per a _llegir" #: ../pan/gui/actions.cc:736 #, fuzzy msgid "Match Only Read Articles" msgstr "Només coincideix amb els articles per a llegir" #: ../pan/gui/actions.cc:737 msgid "Match Only _Unread Articles" msgstr "Només coincideix amb els articles per a _llegir" #: ../pan/gui/actions.cc:737 msgid "Match Only Unread Articles" msgstr "Només coincideix amb els articles per a llegir" #: ../pan/gui/actions.cc:738 msgid "Match Only _Cached Articles" msgstr "Només coincideix amb els articles a la _memòria cau" #: ../pan/gui/actions.cc:738 msgid "Match Only Cached Articles" msgstr "Només coincideix amb els articles a la memòria cau" #: ../pan/gui/actions.cc:739 msgid "Match Only _Complete Articles" msgstr "Només coincideix amb els articles _complets" #: ../pan/gui/actions.cc:739 msgid "Match Only Complete Articles" msgstr "Només coincideix amb els articles complets" #: ../pan/gui/actions.cc:740 msgid "Match Only _My Articles" msgstr "Només coincideix amb els _vostres articles" #: ../pan/gui/actions.cc:740 msgid "Match Only My Articles" msgstr "Només coincideix amb els vostres articles" #: ../pan/gui/actions.cc:741 msgid "Match Only _Watched Articles" msgstr "Només coincideix amb els articles _vigilats" #: ../pan/gui/actions.cc:741 msgid "Match Only Watched Articles" msgstr "Només coincideix amb els articles vigilats" #: ../pan/gui/actions.cc:743 msgid "Match Scores of 9999 (_Watched)" msgstr "Puntuació de 9999 (_vigilats)" #: ../pan/gui/actions.cc:744 msgid "Match Scores of 5000...9998 (_High)" msgstr "Puntuació entre 5000...9998 (_alt)" #: ../pan/gui/actions.cc:745 msgid "Match Scores of 1...4999 (Me_dium)" msgstr "Puntuació entre 1...4999 (_mitjà)" #: ../pan/gui/actions.cc:746 msgid "Match Scores of 0 (_Normal)" msgstr "Puntuació de 0 (_normal)" #: ../pan/gui/actions.cc:747 msgid "Match Scores of -9998...-1 (_Low)" msgstr "Puntuació entre -9998...-1 (_baix)" #: ../pan/gui/actions.cc:748 msgid "Match Scores of -9999 (_Ignored)" msgstr "Puntuació de -9999 (_ignorat)" #: ../pan/gui/actions.cc:750 msgid "Enable/Disable All _Rules" msgstr "" #: ../pan/gui/actions.cc:778 msgid "Show Matching _Articles" msgstr "Mostra els _articles que hi coincideixin" #: ../pan/gui/actions.cc:779 msgid "Show Matching Articles' _Threads" msgstr "Mostra els _fils que hi coincideixin" #: ../pan/gui/actions.cc:780 msgid "Show Matching Articles' _Subthreads" msgstr "Mostra els _fils secundaris que hi coincideixin" #: ../pan/gui/body-pane.cc:1056 #, fuzzy, c-format msgid "Unnamed File" msgstr "Fitxer de signatura" #: ../pan/gui/body-pane.cc:1137 ../pan/gui/gui.cc:1980 #: ../pan/gui/header-pane.cc:1313 ../pan/gui/header-pane.cc:1748 #: ../pan/gui/post-ui.cc:2588 ../pan/gui/prefs-ui.cc:855 #: ../pan/gui/score-add-ui.cc:139 ../pan/gui/task-pane.cc:797 msgid "Subject" msgstr "Assumpte" #: ../pan/gui/body-pane.cc:1139 ../pan/gui/gui.cc:1980 msgid "From" msgstr "De" #: ../pan/gui/body-pane.cc:1141 ../pan/gui/gui.cc:1981 #: ../pan/gui/header-pane.cc:1827 ../pan/gui/log-ui.cc:307 #: ../pan/gui/prefs-ui.cc:851 msgid "Date" msgstr "Data" #: ../pan/gui/body-pane.cc:1148 msgid "Newsgroups" msgstr "Grups de notícies" #: ../pan/gui/body-pane.cc:1155 ../pan/gui/body-pane.cc:1163 #: ../pan/gui/body-pane.cc:1170 msgid "User-Agent" msgstr "Agent d'usuari" #: ../pan/gui/body-pane.cc:1176 msgid "Followup-To" msgstr "Seguiment-a" #: ../pan/gui/body-pane.cc:1186 msgid "Reply-To" msgstr "Respon-a" #: ../pan/gui/body-pane.cc:1229 msgid " from " msgstr " de " #: ../pan/gui/body-pane.cc:1231 msgid " at " msgstr " a " #: ../pan/gui/body-pane.cc:1318 #, c-format msgid "" "This is a PGP-Signed message.\n" "\n" "Signer: %s ('%s')\n" "Valid until: %s\n" "Created on: %s" msgstr "" #: ../pan/gui/body-pane.cc:1323 msgid "always" msgstr "" #: ../pan/gui/body-pane.cc:1543 msgid "Copy _URL" msgstr "Copia l'_URL" #: ../pan/gui/body-pane.cc:1748 msgid "Save Attachment As..." msgstr "Anomena i desa els adjunts com a..." #: ../pan/gui/body-pane.cc:1751 msgid "Save All Attachments" msgstr "Desa tots els adjunts" #. add a toolbar for attachments #: ../pan/gui/body-pane.cc:1821 msgid "Attachments" msgstr "Fitxers adjunts" #: ../pan/gui/body-pane.cc:1836 msgid "Text View" msgstr "Vista de text" #: ../pan/gui/body-pane.cc:1845 msgid "HTML View" msgstr "Vista d'HTML" #: ../pan/gui/dl-headers-ui.cc:112 #, c-format msgid "%d Group" msgid_plural "%d Groups" msgstr[0] "%d grups" msgstr[1] "%d grups" #: ../pan/gui/dl-headers-ui.cc:135 msgid "Get the last N _days' headers: " msgstr "Obtingues les capçaleres dels últims N _dies: " #: ../pan/gui/dl-headers-ui.cc:143 msgid "Get _new headers" msgstr "Obtingues les capçaleres _noves" #: ../pan/gui/dl-headers-ui.cc:147 msgid "Get _all headers" msgstr "Obtingues _totes les capçaleres" #: ../pan/gui/dl-headers-ui.cc:151 msgid "Get the _latest N headers: " msgstr "_Obtingues les últimes N capçaleres: " #: ../pan/gui/e-action-combo-box.c:386 ../pan/gui/prefs-ui.cc:848 msgid "Action" msgstr "Acció" #: ../pan/gui/e-action-combo-box.c:387 msgid "A GtkRadioAction" msgstr "" #: ../pan/gui/e-charset.c:51 ../pan/gui/task-pane.cc:558 msgid "Unknown" msgstr "Desconegut" #: ../pan/gui/e-charset.c:52 msgid "Arabic" msgstr "Àrab" #: ../pan/gui/e-charset.c:53 msgid "Baltic" msgstr "Bàltic" #: ../pan/gui/e-charset.c:54 msgid "Central European" msgstr "Centreeuropeu" #: ../pan/gui/e-charset.c:55 msgid "Chinese" msgstr "Xinès" #: ../pan/gui/e-charset.c:56 msgid "Cyrillic" msgstr "Ciríl·lic" #: ../pan/gui/e-charset.c:57 msgid "Greek" msgstr "Grec" #: ../pan/gui/e-charset.c:58 msgid "Hebrew" msgstr "Hebreu" #: ../pan/gui/e-charset.c:59 msgid "Japanese" msgstr "Japonès" #: ../pan/gui/e-charset.c:60 msgid "Korean" msgstr "Coreà" #: ../pan/gui/e-charset.c:61 msgid "Thai" msgstr "Tailandès" #: ../pan/gui/e-charset.c:62 msgid "Turkish" msgstr "Turc" #: ../pan/gui/e-charset.c:63 msgid "Unicode" msgstr "Unicode" #: ../pan/gui/e-charset.c:64 msgid "Western European" msgstr "Europeu occidental" #: ../pan/gui/e-charset.c:65 msgid "Western European, New" msgstr "Europeu occidental, nou" #: ../pan/gui/e-charset.c:84 ../pan/gui/e-charset.c:85 #: ../pan/gui/e-charset.c:86 msgid "Traditional" msgstr "Tradicional" #: ../pan/gui/e-charset.c:87 ../pan/gui/e-charset.c:88 #: ../pan/gui/e-charset.c:89 ../pan/gui/e-charset.c:90 msgid "Simplified" msgstr "Simplificat" #: ../pan/gui/e-charset.c:93 msgid "Ukrainian" msgstr "Ucraïnès" #: ../pan/gui/e-charset.c:96 msgid "Visual" msgstr "Visual" #: ../pan/gui/e-charset-combo-box.c:93 ../pan/gui/gui.cc:2178 #: ../pan/gui/post-ui.cc:548 ../pan/gui/prefs-ui.cc:759 msgid "Character Encoding" msgstr "Codificació de caràcters" #: ../pan/gui/e-charset-combo-box.c:117 msgid "Enter the character set to use" msgstr "Introduïu el joc de caràcters a utilitzar" #: ../pan/gui/e-charset-combo-box.c:336 msgid "Other..." msgstr "Altres..." #: ../pan/gui/e-cte-dialog.c:76 #, fuzzy msgid "Default Encoding" msgstr "S'està descodificant" #: ../pan/gui/e-cte-dialog.c:78 #, fuzzy msgid "7-Bit Encoding" msgstr "S'està descodificant" #: ../pan/gui/e-cte-dialog.c:80 #, fuzzy msgid "8-Bit Encoding" msgstr "S'està descodificant" #: ../pan/gui/e-cte-dialog.c:82 #, fuzzy msgid "Base64 Encoding" msgstr "S'està descodificant" #: ../pan/gui/e-cte-dialog.c:84 #, fuzzy msgid "Quoted-Printable Encoding" msgstr "Codificació de la subfinestra de cos" #: ../pan/gui/group-pane.cc:330 msgid "Sent" msgstr "Enviat" #: ../pan/gui/group-pane.cc:331 msgid "Drafts" msgstr "Esborranys" #: ../pan/gui/group-pane.cc:537 msgid "Group" msgstr "Grup" #: ../pan/gui/group-pane.cc:538 #, fuzzy msgid "Group (regex)" msgstr "Propietats del grup" #: ../pan/gui/group-pane.cc:1010 msgid "Local Folders" msgstr "Carpetes locals" #: ../pan/gui/group-pane.cc:1011 msgid "Subscribed Groups" msgstr "Grups subscrits" #: ../pan/gui/group-pane.cc:1012 msgid "Other Groups" msgstr "Altres grups" #: ../pan/gui/group-pane.cc:1052 ../pan/gui/score-view-ui.cc:157 msgid "Name" msgstr "Nom" #: ../pan/gui/group-prefs-dialog.cc:162 msgid "No Profiles defined in Edit|Posting Profiles." msgstr "No s'ha definit cap perfil en «Edita|Perfils de publicació»." #: ../pan/gui/group-prefs-dialog.cc:273 msgid "Pan: Group Preferences" msgstr "Pan: preferències de grup" #: ../pan/gui/group-prefs-dialog.cc:288 #, fuzzy, c-format msgid "Properties for Groups" msgstr "Propietats de %s" #: ../pan/gui/group-prefs-dialog.cc:290 #, c-format msgid "Properties for %s" msgstr "Propietats de %s" #: ../pan/gui/group-prefs-dialog.cc:298 msgid "Character _encoding:" msgstr "Codificació de caràct_ers:" #: ../pan/gui/group-prefs-dialog.cc:300 msgid "Directory for Saving Attachments" msgstr "Directori on desar els adjunts" #: ../pan/gui/group-prefs-dialog.cc:308 msgid "Directory for _saving attachments:" msgstr "Directori on _desar els adjunts:" #: ../pan/gui/group-prefs-dialog.cc:310 msgid "Posting _profile:" msgstr "_Perfil de publicació:" #: ../pan/gui/group-prefs-dialog.cc:315 msgid "Spellchecker _language:" msgstr "" #: ../pan/gui/group-prefs-dialog.cc:318 msgid "Group color:" msgstr "" #: ../pan/gui/gui.cc:312 msgid "Open the Task Manager" msgstr "Obre el gestor de tasques" #: ../pan/gui/gui.cc:335 msgid "Open the Event Log" msgstr "Obre el registre d'esdeveniments" #: ../pan/gui/gui.cc:611 msgid "Save NZB's Files" msgstr "Desa els fitxers NZB" #: ../pan/gui/gui.cc:638 msgid "Untitled.nzb" msgstr "" #: ../pan/gui/gui.cc:640 #, fuzzy msgid "Save NZB File as..." msgstr "Desa els fitxers NZB" #: ../pan/gui/gui.cc:809 msgid "Import NZB Files" msgstr "Importa fitxers NZB" #: ../pan/gui/gui.cc:817 ../pan/gui/post-ui.cc:3287 msgid "NZB Files" msgstr "Fitxers NZB" #: ../pan/gui/gui.cc:822 msgid "All Files" msgstr "Tots els fitxers" #: ../pan/gui/gui.cc:1334 msgid "Unable to supersede article." msgstr "No es pot substituir l'article." #: ../pan/gui/gui.cc:1335 ../pan/gui/gui.cc:1409 msgid "The article doesn't match any of your posting profiles." msgstr "L'article no coincideix amb cap dels vostres perfils de publicació." #: ../pan/gui/gui.cc:1382 msgid "Revise and send this article to replace the old one." msgstr "Reviseu i envieu aquest article per a reemplaçar l'antic." #: ../pan/gui/gui.cc:1383 ../pan/gui/gui.cc:1446 msgid "Be patient! It will take time for your changes to take effect." msgstr "Tingueu paciència. Efectuar els vostres canvis costarà un temps." #: ../pan/gui/gui.cc:1408 msgid "Unable to cancel article." msgstr "No es pot cancel·lar l'article." #: ../pan/gui/gui.cc:1445 msgid "Send this article to ask your server to cancel your other one." msgstr "Envieu aquest article per a demanar al servidor que cancel·li l'altre." #: ../pan/gui/gui.cc:1463 #, fuzzy msgid "You have marked some articles for deletion." msgstr "Afegeix articles _similars a la selecció" #: ../pan/gui/gui.cc:1464 #, fuzzy msgid "Are you sure you want to delete them?" msgstr "Voleu suprimir els %d grups o carpetes i els seus articles?" #: ../pan/gui/gui.cc:1490 msgid "Do you want to accept it permanently? (You can change this later.)" msgstr "" #: ../pan/gui/gui.cc:1670 #, fuzzy msgid "Copyright © 2002-2012 Charles Kerr and others" msgstr "Copyright © 2002-2007 Charles Kerr" #: ../pan/gui/gui.cc:1675 msgid "translator-credits" msgstr "" "Joaquim Torres \n" "Xavier Conde Rueda \n" "Lluís Pàmies i Juarez \n" "Joan Duran Fígols " #: ../pan/gui/gui.cc:1808 #, fuzzy msgid "_1. Header Pane" msgstr "_2. Subfinestra de capçalera" #: ../pan/gui/gui.cc:1809 #, fuzzy msgid "_2. Search Pane" msgstr "_2. Subfinestra de capçalera" #: ../pan/gui/gui.cc:1815 msgid "_1. Group Pane" msgstr "_1. Subfinestra de grup" #: ../pan/gui/gui.cc:1817 ../pan/gui/gui.cc:1819 msgid "_2. Header Pane" msgstr "_2. Subfinestra de capçalera" #: ../pan/gui/gui.cc:1821 msgid "_3. Body Pane" msgstr "_3. Subfinestra de cos" #: ../pan/gui/gui.cc:1917 ../pan/gui/gui.cc:1932 #, fuzzy msgid " Bytes" msgstr "Bytes" #: ../pan/gui/gui.cc:1920 msgid " KB" msgstr "" #: ../pan/gui/gui.cc:1923 msgid " MB" msgstr "" #: ../pan/gui/gui.cc:1926 msgid " GB" msgstr "" #: ../pan/gui/gui.cc:1929 msgid " TB" msgstr "" #: ../pan/gui/gui.cc:1961 #, fuzzy, c-format msgid "This article is complete with %d part." msgid_plural "This article has all %d parts." msgstr[0] "Aquest article té les %d parts." msgstr[1] "Aquest article té les %d parts." #: ../pan/gui/gui.cc:1963 #, fuzzy, c-format msgid "This article is missing %d part." msgid_plural "This article is missing %d of its %d parts:" msgstr[0] "En aquest article falten %d de les %d parts:" msgstr[1] "En aquest article falten %d de les %d parts:" #: ../pan/gui/gui.cc:1981 ../pan/gui/header-pane.cc:1315 #: ../pan/gui/task-pane.cc:799 msgid "Message-ID" msgstr "Identificador del missatge" #: ../pan/gui/gui.cc:1982 ../pan/gui/header-pane.cc:1796 #: ../pan/gui/prefs-ui.cc:852 msgid "Lines" msgstr "Línies" #: ../pan/gui/gui.cc:1982 msgid "Size" msgstr "Mida" #: ../pan/gui/gui.cc:1983 ../pan/gui/header-pane.cc:1812 #: ../pan/gui/prefs-ui.cc:850 msgid "Bytes" msgstr "Bytes" #: ../pan/gui/gui.cc:2033 msgid "" "Error loading iconv library. Encoding certain character sets will not work " "in GUI." msgstr "" #: ../pan/gui/gui.cc:2179 msgid "Body Pane Encoding" msgstr "Codificació de la subfinestra de cos" #: ../pan/gui/gui.cc:2210 ../pan/gui/task-pane.cc:609 #, c-format msgid "Offline" msgstr "Desconnectat" #: ../pan/gui/gui.cc:2214 #, fuzzy, c-format msgid "Closing %d connection" msgid_plural "Closing %d connections" msgstr[0] "S'estan tancant %d connexions" msgstr[1] "S'estan tancant %d connexions" #: ../pan/gui/gui.cc:2216 ../pan/gui/gui.cc:2246 #, c-format msgid "No Connections" msgstr "Cap connexió" #: ../pan/gui/gui.cc:2220 #, c-format msgid "Connecting" msgstr "S'està connectant" #: ../pan/gui/gui.cc:2233 #, c-format msgid "%s: %d idle, %d active @ %.1f KiBps" msgstr "%s: %d inactius, %d actius @ %.1f KiBps" #: ../pan/gui/gui.cc:2289 #, c-format msgid "No Tasks" msgstr "Cap tasca" #: ../pan/gui/gui.cc:2291 ../pan/gui/prefs-ui.cc:1090 msgid "Tasks" msgstr "Tasques" #: ../pan/gui/gui.cc:2308 ../pan/gui/task-pane.cc:475 #, c-format msgid "%lu tasks, %s, %.1f KiBps, ETA %d:%02d:%02d" msgstr "%lu tasques, %s, %.1f KiBps, temps estimat %d:%02d:%02d" #: ../pan/gui/gui.cc:2360 msgid "" "Pan is now offline. Please see \"File|Event Log\" and correct the problem, " "then use \"File|Work Online\" to continue." msgstr "" "El Pan ara està desconnectat. Vegeu «Fitxer|Registre d'esdeveniments» i " "corregiu el problema, després utilitzeu «Fitxer|Treballa connectat» per a " "continuar." #: ../pan/gui/header-pane.cc:1311 ../pan/gui/task-pane.cc:795 msgid "Subject or Author" msgstr "Assumpte o autor" #: ../pan/gui/header-pane.cc:1312 ../pan/gui/task-pane.cc:796 #, fuzzy msgid "Sub or Auth (regex)" msgstr "Assumpte o autor" #: ../pan/gui/header-pane.cc:1314 ../pan/gui/header-pane.cc:1780 #: ../pan/gui/prefs-ui.cc:849 ../pan/gui/score-add-ui.cc:140 #: ../pan/gui/task-pane.cc:798 msgid "Author" msgstr "Autor" #: ../pan/gui/header-pane.cc:1765 ../pan/gui/prefs-ui.cc:853 msgid "Score" msgstr "Puntuació" #: ../pan/gui/log-ui.cc:104 msgid "Save Event List" msgstr "Desa la llista d'esdeveniments" #: ../pan/gui/log-ui.cc:258 msgid "Pan: Events" msgstr "Pan: esdeveniments" #: ../pan/gui/log-ui.cc:317 msgid "Message" msgstr "Missatge" #: ../pan/gui/pan.cc:359 msgid "Maximize" msgstr "Maximitza" #: ../pan/gui/pan.cc:412 msgid "An error has occurred!" msgstr "" #: ../pan/gui/pan.cc:426 #, fuzzy msgid "New Articles!" msgstr "Següent article" #: ../pan/gui/pan.cc:427 msgid "" "There are new\n" "articles available." msgstr "" #: ../pan/gui/pan.cc:494 msgid "Toggle on/offline" msgstr "" #: ../pan/gui/pan.cc:542 msgid "" "Thank you for trying Pan!\n" " \n" "To start newsreading, first Add a Server." msgstr "" "Gràcies per utilitzar el Pan!\n" " \n" "Per a començar a llegir notícies, primer afegiu un servidor." #: ../pan/gui/pan.cc:624 #, fuzzy msgid "" "General Options\n" " -h, --help Show this usage page.\n" " --verbose Be verbose (in non-GUI mode).\n" "\n" "URL Options\n" " headers:group.name Download new headers for the specified " "newsgroup.\n" " --no-gui On news:message-id, dump the article to stdout.\n" "\n" "NZB Batch Options\n" " --nzb file1 file2 ... Process nzb files without launching all of Pan.\n" " -o path, --output=path Path to save attachments listed in the nzb " "files.\n" " --no-gui Only show console output, not the download " "queue.\n" msgstr "" "Opcions generals\n" " -h, --help Mostra aquesta pàgina.\n" "\n" "Opcions de URL\n" " noticies:id-missatge Mostra l'article especificat.\n" " noticies:grup.nom Mostra el grup de notícies especificat.\n" " capçaleres:grup.nom Baixa les capçaleres noves del grup de notícies " "especificat.\n" " --no-gui En noticies:id-missatge, bolca l'article a la\n" " sortida estàndard.\n" "\n" "Opcions de processament en lots d'NZB\n" " --nzb fitxer1 fitxer2 Processa els fitxers nzb sense executar tot el " "Pan.\n" " -o camí, --output=camí Camí on desar els adjunts llistats en els fitxers " "nzb.\n" " --no-gui Només mostra la sortida de la consola, no la cua " "de baixada.\n" #: ../pan/gui/pan.cc:958 msgid "Error: --no-gui used without nzb files or news:message-id." msgstr "" "Error: s'ha utilitzat --no-gui sense fitxers nzb o noticies:id-missatge." #: ../pan/gui/pan.cc:962 #, c-format msgid "Pan %s started" msgstr "S'ha iniciat el Pan %s" #: ../pan/gui/pan.cc:982 msgid "Please configure Pan's news servers before using it as an nzb client." msgstr "" "Configura els servidors de notícies del Pan abans d'utilitzar-lo com un " "client nzb." #: ../pan/gui/pan.cc:1100 msgid "Pan notification" msgstr "" #: ../pan/gui/post-ui.cc:163 #, c-format msgid "Upload queue: %lu tasks, %ld KB (~ %.2f MB) total." msgstr "" #: ../pan/gui/post-ui.cc:266 ../pan/gui/post-ui.cc:297 #, fuzzy, c-format msgid "Error setting custom spellchecker: %s" msgstr "S'ha produït un error en configurar el corrector ortogràfic: %s" #: ../pan/gui/post-ui.cc:270 ../pan/gui/post-ui.cc:278 #: ../pan/gui/post-ui.cc:301 ../pan/gui/post-ui.cc:309 #, c-format msgid "Error setting spellchecker: %s" msgstr "S'ha produït un error en configurar el corrector ortogràfic: %s" #: ../pan/gui/post-ui.cc:448 msgid "_Profile" msgstr "_Perfil" #: ../pan/gui/post-ui.cc:449 msgid "Set Editor" msgstr "Estableix l'editor" #: ../pan/gui/post-ui.cc:451 msgid "_Send Article" msgstr "_Envia l'article" #: ../pan/gui/post-ui.cc:451 msgid "Send Article Now" msgstr "Envia ara l'article" #: ../pan/gui/post-ui.cc:452 #, fuzzy msgid "_Send and Save Articles to NZB" msgstr "Desa els articles d'aquest NZB" #: ../pan/gui/post-ui.cc:452 #, fuzzy msgid "Send and Save Articles to NZB" msgstr "Pan: desa els articles" #: ../pan/gui/post-ui.cc:453 msgid "Set Character _Encoding..." msgstr "_Estableix la codificació dels caràcters..." #: ../pan/gui/post-ui.cc:454 #, fuzzy msgid "Set Content _Transfer Encoding..." msgstr "Estableix la codificació de caràcters..." #: ../pan/gui/post-ui.cc:455 msgid "Sa_ve Draft" msgstr "Desa un _esborrany" #: ../pan/gui/post-ui.cc:455 msgid "Save as a Draft for Future Posting" msgstr "Desa un esborrany per a publicar-lo més tard" #: ../pan/gui/post-ui.cc:456 msgid "_Open Draft..." msgstr "_Obre l'esborrany..." #: ../pan/gui/post-ui.cc:456 msgid "Open an Article Draft" msgstr "Obre l'esborrany d'un article" #: ../pan/gui/post-ui.cc:461 msgid "_Rot13" msgstr "_Rot13" #: ../pan/gui/post-ui.cc:461 msgid "Rot13 Selected Text" msgstr "Aplica conversió Rot13 a la selecció" #: ../pan/gui/post-ui.cc:462 msgid "Run _Editor" msgstr "Executa l'_editor" #: ../pan/gui/post-ui.cc:462 #, fuzzy msgid "Run Editor" msgstr "Executa l'_editor" #: ../pan/gui/post-ui.cc:464 msgid "Add _Files to Queue" msgstr "" #: ../pan/gui/post-ui.cc:464 msgid "Add Files to Queue" msgstr "" #: ../pan/gui/post-ui.cc:479 ../pan/gui/post-ui.cc:480 #, fuzzy msgid "Remove from Queue" msgstr "Suprimeix un servidor" #: ../pan/gui/post-ui.cc:484 ../pan/gui/post-ui.cc:485 #, fuzzy msgid "Clear List" msgstr "Neteja el filtre" #: ../pan/gui/post-ui.cc:489 ../pan/gui/post-ui.cc:490 #, fuzzy msgid "Select Needed Parts" msgstr "Seleccioneu un tipus de lletra" #: ../pan/gui/post-ui.cc:494 ../pan/gui/post-ui.cc:495 #: ../pan/gui/task-pane.cc:677 ../pan/gui/task-pane.cc:678 msgid "Move Up" msgstr "Mou cap amunt" #: ../pan/gui/post-ui.cc:499 ../pan/gui/post-ui.cc:500 #: ../pan/gui/task-pane.cc:682 ../pan/gui/task-pane.cc:683 msgid "Move Down" msgstr "Mou cap avall" #: ../pan/gui/post-ui.cc:504 ../pan/gui/post-ui.cc:505 msgid "Move to Top" msgstr "Mou a la part superior" #: ../pan/gui/post-ui.cc:509 ../pan/gui/post-ui.cc:510 #, fuzzy msgid "Move to Bottom" msgstr "Mou les tasques seleccionades al final" #: ../pan/gui/post-ui.cc:517 msgid "_Wrap Text" msgstr "_Ajusta el text" #: ../pan/gui/post-ui.cc:517 #, fuzzy msgid "Wrap Text" msgstr "_Ajusta el text" #: ../pan/gui/post-ui.cc:518 msgid "Always Run Editor" msgstr "Executa sempre l'editor" #: ../pan/gui/post-ui.cc:519 #, fuzzy msgid "Remember Character Encoding for This Group" msgstr "Recorda la codificació de caràcters per a aquest grup" #: ../pan/gui/post-ui.cc:520 msgid "Thread Attached Replies" msgstr "" #: ../pan/gui/post-ui.cc:521 #, fuzzy msgid "PGP-Encrypt the Article" msgstr "Posa l'article a la memòria cau" #: ../pan/gui/post-ui.cc:522 #, fuzzy msgid "PGP-Sign the Article" msgstr "I el dels articles" #: ../pan/gui/post-ui.cc:523 msgid "Check _Spelling" msgstr "Comprova l'_ortografia" #: ../pan/gui/post-ui.cc:549 msgid "New Article's Encoding:" msgstr "Codificació nova dels articles:" #: ../pan/gui/post-ui.cc:559 #, fuzzy msgid "Content Transfer Encoding" msgstr "Codificació de caràcters" #: ../pan/gui/post-ui.cc:560 #, fuzzy msgid "New Article's Content Transfer Encoding:" msgstr "Codificació nova dels articles:" #: ../pan/gui/post-ui.cc:740 msgid "Your changes will be lost!" msgstr "Els canvis es perdran!" #: ../pan/gui/post-ui.cc:741 msgid "Close this window and lose your changes?" msgstr "Voleu tancar aquesta finestra i perdre els canvis?" #: ../pan/gui/post-ui.cc:786 ../pan/gui/post-ui.cc:825 msgid "There were problems with this post." msgstr "Hi ha hagut problemes amb aquesta publicació." #: ../pan/gui/post-ui.cc:788 ../pan/gui/post-ui.cc:827 #: ../pan/gui/post-ui.cc:892 msgid "Go Back" msgstr "Ves enrere" #: ../pan/gui/post-ui.cc:790 msgid "Continue Anyway" msgstr "Continua igualment" #. Prompt the user #: ../pan/gui/post-ui.cc:819 #, c-format msgid "" "Message uses characters not specified in charset '%s' - possibly use '%s' " msgstr "" "El missatge fa servir caràcters no especificats al joc de caràcters «%s» - " "potser s'ha de fer servir «%s»." #: ../pan/gui/post-ui.cc:842 msgid "Go _Online" msgstr "_Connecta" #: ../pan/gui/post-ui.cc:891 msgid "The file queue is empty, so no files can be saved." msgstr "" #: ../pan/gui/post-ui.cc:1070 msgid "IO Error" msgstr "Error d'E/S" #: ../pan/gui/post-ui.cc:1070 msgid "No space left on device" msgstr "No queda espai al dispositiu" #: ../pan/gui/post-ui.cc:1071 #, c-format msgid "Error copying message to %s folder. Reason: %s" msgstr "" #: ../pan/gui/post-ui.cc:1077 #, c-format msgid "Error creating message in %s mail folder: Invalid article." msgstr "" #: ../pan/gui/post-ui.cc:1099 msgid "" "No posting server is set for this posting profile.\n" "Please edit the profile via Edit|Manage Posting Profiles." msgstr "" "No s'ha establert cap servidor de publicació per a aquest perfil de " "publicació.\n" "Editeu el perfil utilitzant «Edita|Gestiona els perfils de publicació»." #: ../pan/gui/post-ui.cc:1104 msgid "" "The selected posting server is currently disabled. Please choose an " "appropriate alternative." msgstr "" #: ../pan/gui/post-ui.cc:1146 msgid "Pan is Offline." msgstr "El Pan està desconnectat." #: ../pan/gui/post-ui.cc:1147 msgid "Go online to post the article?" msgstr "Voleu connectar-vos per a publicar l'article?" #: ../pan/gui/post-ui.cc:1196 #, c-format msgid "" "Error signing/encrypting your message. Perhaps you misspelled your email " "address (%s)?" msgstr "" #: ../pan/gui/post-ui.cc:1344 msgid "Error opening temporary file" msgstr "S'ha produït un error en obrir un fitxer temporal" #: ../pan/gui/post-ui.cc:1356 #, c-format msgid "Error writing article to temporary file: %s" msgstr "S'ha produït un error en escriure l'article a un fitxer temporal: %s" #: ../pan/gui/post-ui.cc:1375 #, c-format msgid "Error parsing \"external editor\" command line: %s (Command was: %s)" msgstr "" "S'ha produït un error en analitzar la línia d'ordres «editor extern»: %s " "(l'ordre era: %s)" #: ../pan/gui/post-ui.cc:1416 #, c-format msgid "Error starting external editor: %s" msgstr "S'ha produït un error en iniciar l'editor extern: %s" #: ../pan/gui/post-ui.cc:1479 msgid "Open Draft Article" msgstr "Obre l'esborrany de l'article" #: ../pan/gui/post-ui.cc:1691 msgid "Save Draft Article" msgstr "Desa l'esborrany de l'article" #: ../pan/gui/post-ui.cc:1889 #, c-format msgid "Couldn't parse signature command \"%s\": %s" msgstr "No s'ha pogut analitzar l'ordre de signatura «%s»: %s" #: ../pan/gui/post-ui.cc:1925 msgid "Couldn't convert signature to UTF-8." msgstr "No s'ha pogut convertir la signatura a UTF-8." #: ../pan/gui/post-ui.cc:2427 msgid "F_rom" msgstr "_De" #: ../pan/gui/post-ui.cc:2444 msgid "_Subject" msgstr "A_ssumpte" #: ../pan/gui/post-ui.cc:2457 msgid "_Newsgroups" msgstr "Grups de _notícies" #: ../pan/gui/post-ui.cc:2471 msgid "Mail _To" msgstr "_Envia un correu a" #: ../pan/gui/post-ui.cc:2573 #, fuzzy msgid "Delete from Queue" msgstr "/Sup_rimeix grup" #: ../pan/gui/post-ui.cc:2586 msgid "No." msgstr "Número" #: ../pan/gui/post-ui.cc:2590 ../pan/gui/post-ui.cc:2682 #: ../pan/gui/post-ui.cc:2723 msgid "Filename" msgstr "Nom del fitxer" #: ../pan/gui/post-ui.cc:2592 msgid "Size (KB)" msgstr "Mida (Kb)" #: ../pan/gui/post-ui.cc:2690 msgid "The current filename" msgstr "" #: ../pan/gui/post-ui.cc:2694 #, fuzzy msgid "Subject Line" msgstr "Assumpte" #: ../pan/gui/post-ui.cc:2702 msgid "The current subject line" msgstr "" #: ../pan/gui/post-ui.cc:2716 msgid "No. " msgstr "" #: ../pan/gui/post-ui.cc:2720 msgid "Enable/Disable" msgstr "" #: ../pan/gui/post-ui.cc:2754 msgid "Follo_wup-To" msgstr "_Seguiment-a" #. i18n: "poster" is a key used by many newsreaders. probably safest to keep this key in english. #: ../pan/gui/post-ui.cc:2763 msgid "" "The newsgroups where replies to your message should go. This is only needed " "if it differs from the \"Newsgroups\" header.\n" "\n" "To direct all replies to your email address, use \"Followup-To: poster\"" msgstr "" "Els grups de notícies on han d'anar les respostes al vostre missatge. Només " "és necessari si és diferent de la capçalera «Grups de notícies».\n" "\n" "Per dirigir totes les respostes a la vostra adreça de correu electrònic, " "utilitzeu «Seguiment-a: autor»" #: ../pan/gui/post-ui.cc:2770 msgid "_Reply-To" msgstr "_Respondre-a" #: ../pan/gui/post-ui.cc:2778 #, fuzzy msgid "" "The email account where mail replies to your posted message should go. This " "is only needed if it differs from the \"From\" header." msgstr "" "El compte de correu electrònic on han d'anar les respostes al vostre " "missatge publicat. Només és necessari si és diferent de la capçalera «De»." #: ../pan/gui/post-ui.cc:2785 msgid "_Custom Headers" msgstr "_Capçaleres personalitzades" #: ../pan/gui/post-ui.cc:2809 msgid "Add \"_User-Agent\" header" msgstr "Afegeix la capçalera «Agent-d'_usuari»" #: ../pan/gui/post-ui.cc:2816 #, fuzzy msgid "Add \"Message-_ID\" header" msgstr "Afegeix la capçalera «_Identificador del missatge»" #: ../pan/gui/post-ui.cc:2947 #, fuzzy msgid "Select Parts" msgstr "Seleccioneu un tipus de lletra" #: ../pan/gui/post-ui.cc:2960 msgid "_Parts" msgstr "" #: ../pan/gui/post-ui.cc:3114 msgid "Post Article" msgstr "Article publicat" #: ../pan/gui/post-ui.cc:3135 msgid "_Message" msgstr "_Missatge" #: ../pan/gui/post-ui.cc:3136 msgid "More _Headers" msgstr "_Més capçaleres" #: ../pan/gui/post-ui.cc:3137 #, fuzzy msgid "File _Queue" msgstr "/_Fitxer/_Acaba" #: ../pan/gui/post-ui.cc:3169 ../pan/gui/profiles-dialog.cc:481 #, no-c-format msgid "On %d, %n wrote:" msgstr "El dia %d, en/na %n va escriure:" #: ../pan/gui/post-ui.cc:3198 msgid "Add files to queue" msgstr "" #: ../pan/gui/post-ui.cc:3274 msgid "Save Upload Queue as NZB File" msgstr "" #: ../pan/gui/prefs.cc:364 #, c-format msgid "Couldn't parse %s color \"%s\"" msgstr "No s'ha pogut analitzar el color %s «%s»" #: ../pan/gui/prefs-ui.cc:123 msgid "Grab Key" msgstr "" #: ../pan/gui/prefs-ui.cc:129 #, c-format msgid "" "Press the combination of the keys\n" "you want to use for \"%s\"." msgstr "" #: ../pan/gui/prefs-ui.cc:169 #, fuzzy msgid "Edit Shortcut" msgstr "Editors" #: ../pan/gui/prefs-ui.cc:231 #, fuzzy msgid "Error: Shortcut key is invalid!" msgstr "La carpeta «%*s» ja existeix." #: ../pan/gui/prefs-ui.cc:247 #, fuzzy msgid "Error: Shortcut key already exists!" msgstr "La carpeta «%*s» ja existeix." #: ../pan/gui/prefs-ui.cc:561 #, fuzzy msgid "Show only icons" msgstr "Mostra informació de l'article" #: ../pan/gui/prefs-ui.cc:562 #, fuzzy msgid "Show only text" msgstr "Mostra la subfinestra de _cos" #: ../pan/gui/prefs-ui.cc:563 #, fuzzy msgid "Show icons and text" msgstr "Desa els adjunts i el text" #: ../pan/gui/prefs-ui.cc:602 msgid "Use GNOME Preferences" msgstr "Utilitza les preferències del GNOME" #: ../pan/gui/prefs-ui.cc:603 msgid "Use KDE Preferences" msgstr "Utilitza les preferències del KDE" #: ../pan/gui/prefs-ui.cc:604 msgid "Use OS X Preferences" msgstr "Utilitza les preferències de l'OS X" #: ../pan/gui/prefs-ui.cc:605 msgid "Use Windows Preferences" msgstr "Utilitza les preferències del Windows" #: ../pan/gui/prefs-ui.cc:606 msgid "Custom Command:" msgstr "Ordre personalitzada:" #: ../pan/gui/prefs-ui.cc:658 #, fuzzy msgid "Disabled" msgstr "Habilitat" #: ../pan/gui/prefs-ui.cc:659 msgid "Only new (score == 0)" msgstr "" #: ../pan/gui/prefs-ui.cc:660 #, fuzzy msgid "9999 or more" msgstr "Puntuació de 9999 o superior:" #: ../pan/gui/prefs-ui.cc:661 #, fuzzy msgid "5000 to 9998" msgstr "Puntuació de 5000 a 9998:" #: ../pan/gui/prefs-ui.cc:662 msgid "1 to 4999" msgstr "" #: ../pan/gui/prefs-ui.cc:663 #, fuzzy msgid "-9998 to -1" msgstr "Puntuació de -9998 a -1:" #: ../pan/gui/prefs-ui.cc:664 #, fuzzy msgid "-9999 or less" msgstr "Puntuació de -9999 o inferior:" #: ../pan/gui/prefs-ui.cc:728 #, c-format msgid "Select default global character set. Current setting: %s." msgstr "" #: ../pan/gui/prefs-ui.cc:760 msgid "Global Character Set Settings" msgstr "" #: ../pan/gui/prefs-ui.cc:854 ../pan/gui/task-pane.cc:1076 msgid "State" msgstr "Estat" #: ../pan/gui/prefs-ui.cc:888 msgid "Enabled" msgstr "Habilitat" #: ../pan/gui/prefs-ui.cc:892 msgid "Column Name" msgstr "Nom de la columna" #: ../pan/gui/prefs-ui.cc:930 msgid "Pan: Preferences" msgstr "Pan: preferències" #: ../pan/gui/prefs-ui.cc:945 msgid "Mouse" msgstr "Ratolí" #: ../pan/gui/prefs-ui.cc:947 msgid "Single-click activates, rather than selects, _groups" msgstr "Un sol clic activa els _grups, en comptes de seleccionar-los" #: ../pan/gui/prefs-ui.cc:949 msgid "Single-click activates, rather than selects, _articles" msgstr "Un sol clic activa els _articles, en comptes de seleccionar-los" #: ../pan/gui/prefs-ui.cc:952 msgid "Groups" msgstr "Grups" #: ../pan/gui/prefs-ui.cc:954 msgid "Get new headers in subscribed groups on _startup" msgstr "Obtingues noves capçaleres dels grups subscrits en _iniciar" #: ../pan/gui/prefs-ui.cc:956 msgid "Get new headers when _entering group" msgstr "Obtingues noves capçaleres quan s'_introdueixi un grup" #: ../pan/gui/prefs-ui.cc:958 msgid "Mark entire group _read when leaving group" msgstr "_Marca tot el grup com a llegit quan es deixi el grup" #: ../pan/gui/prefs-ui.cc:960 msgid "Mark entire group read before getting _new headers" msgstr "_Marca tot el grup com a llegit abans d'obtenir noves capçaleres" #: ../pan/gui/prefs-ui.cc:962 msgid "E_xpand all threads when entering group" msgstr "_Amplia tots els fils quan entri a un grup" #: ../pan/gui/prefs-ui.cc:967 msgid "Articles" msgstr "Articles" #: ../pan/gui/prefs-ui.cc:969 #, fuzzy msgid "Mark downloaded articles read" msgstr "Marca l'article com a no llegit" #: ../pan/gui/prefs-ui.cc:971 msgid "Space selects next article rather than next unread" msgstr "" "La barra espaiadora selecciona el següent article en comptes del següent no " "llegit" #: ../pan/gui/prefs-ui.cc:973 #, fuzzy msgid "Expand threads upon selection" msgstr "Afegeix _fils a la selecció" #: ../pan/gui/prefs-ui.cc:975 msgid "Always ask before deleting an article" msgstr "" #: ../pan/gui/prefs-ui.cc:977 msgid "Smooth scrolling" msgstr "Desplaçament suau" #: ../pan/gui/prefs-ui.cc:982 #, fuzzy msgid "Article Cache" msgstr "Neteja la memòria cau d'articles" #: ../pan/gui/prefs-ui.cc:983 msgid "Clear article cache on shutdown" msgstr "Neteja la memòria cau d'articles en aturar" #: ../pan/gui/prefs-ui.cc:986 msgid "Size of article cache (in MiB):" msgstr "" #: ../pan/gui/prefs-ui.cc:991 #, fuzzy msgid "File extension for cached articles: " msgstr "/Filt_re/Es co_rrespon només amb articles llegits" #: ../pan/gui/prefs-ui.cc:996 msgid "Tabs" msgstr "Pestanyes" #: ../pan/gui/prefs-ui.cc:1001 msgid "_Behavior" msgstr "Com_portament" #: ../pan/gui/prefs-ui.cc:1001 msgid "Behavior" msgstr "Comportament" #: ../pan/gui/prefs-ui.cc:1007 #, fuzzy msgid "Task Pane" msgstr "Gestor de _tasques" #: ../pan/gui/prefs-ui.cc:1008 #, fuzzy msgid "Show Task Pane info popups" msgstr "Mostra informació de l'article" #: ../pan/gui/prefs-ui.cc:1010 #, fuzzy msgid "Show Download Meter" msgstr "Mostra la subfinestra de _cos" #: ../pan/gui/prefs-ui.cc:1014 #, fuzzy msgid "_Panes" msgstr "Subfinestra de c_os" #: ../pan/gui/prefs-ui.cc:1014 #, fuzzy msgid "Panes" msgstr "Japonès" #: ../pan/gui/prefs-ui.cc:1020 #, fuzzy msgid "Language Settings" msgstr "Configuracions" #. systray and notify popup #: ../pan/gui/prefs-ui.cc:1029 #, fuzzy msgid "System Tray Behavior" msgstr "Com_portament" #: ../pan/gui/prefs-ui.cc:1031 msgid "Minimize to tray" msgstr "" #: ../pan/gui/prefs-ui.cc:1033 msgid "Start Pan minimized" msgstr "" #: ../pan/gui/prefs-ui.cc:1036 #, fuzzy msgid "Show notifications" msgstr "Mostra informació de l'article" #. allow multiple instances (seperate, not communicating with dbus) #: ../pan/gui/prefs-ui.cc:1041 #, fuzzy msgid "Startup Behavior" msgstr "Com_portament" #: ../pan/gui/prefs-ui.cc:1043 msgid "Allow multiple instances of Pan" msgstr "" #: ../pan/gui/prefs-ui.cc:1048 #, fuzzy msgid "Autosave Article Draft" msgstr "Obre l'esborrany d'un article" #: ../pan/gui/prefs-ui.cc:1050 #, fuzzy msgid "Minutes to autosave the current Article Draft: " msgstr "Obre l'esborrany d'un article" #: ../pan/gui/prefs-ui.cc:1055 #, fuzzy msgid "Autosave Articles" msgstr "Desa els articles" #: ../pan/gui/prefs-ui.cc:1057 msgid "Minutes to autosave newsrc files: " msgstr "" #: ../pan/gui/prefs-ui.cc:1064 msgid "GNOME Keyring" msgstr "" #: ../pan/gui/prefs-ui.cc:1065 msgid "Store passwords in GNOME Keyring" msgstr "" #: ../pan/gui/prefs-ui.cc:1069 msgid "_Miscellaneous" msgstr "" #: ../pan/gui/prefs-ui.cc:1069 msgid "Miscellaneous" msgstr "Miscel·lània" #: ../pan/gui/prefs-ui.cc:1074 msgid "Pane Layout" msgstr "Disposició de les subfinestres" #: ../pan/gui/prefs-ui.cc:1093 msgid "1=Groups, 2=Headers, 3=Body" msgstr "1=Grups, 2=Capçaleres, 3=Cos" #: ../pan/gui/prefs-ui.cc:1095 msgid "1=Groups, 2=Body, 3=Headers" msgstr "1=Grups, 2=Cos, 3=Capçaleres" #: ../pan/gui/prefs-ui.cc:1097 msgid "1=Headers, 2=Groups, 3=Body" msgstr "1=Capçaleres, 2=Grups, 3=Cos" #: ../pan/gui/prefs-ui.cc:1099 msgid "1=Headers, 2=Body, 3=Groups" msgstr "1=Capçaleres, 2=Cos, 3=Grups" #: ../pan/gui/prefs-ui.cc:1101 msgid "1=Body, 2=Groups, 3=Headers" msgstr "1=Cos, 2=Grups, 3=Capçaleres" #: ../pan/gui/prefs-ui.cc:1103 msgid "1=Body, 2=Headers, 3=Groups" msgstr "1=Cos, 2=Capçaleres, 3=Grups" #: ../pan/gui/prefs-ui.cc:1107 #, fuzzy msgid "Layout" msgstr "_Disposició" #: ../pan/gui/prefs-ui.cc:1112 msgid "Header Pane Columns" msgstr "Columnes de la subfinestra de la capçalera" #: ../pan/gui/prefs-ui.cc:1116 msgid "_Headers" msgstr "_Capçaleres" #: ../pan/gui/prefs-ui.cc:1116 #, fuzzy msgid "Headers" msgstr "_Capçaleres" #: ../pan/gui/prefs-ui.cc:1122 msgid "" "This menu lets you configure Pan to take certain actions on your behalf " "automatically, based on an article's score." msgstr "" #: ../pan/gui/prefs-ui.cc:1127 #, fuzzy msgid "Mark affected articles read" msgstr "Marca l'article com a no llegit" #: ../pan/gui/prefs-ui.cc:1136 #, fuzzy msgid "_Delete articles scoring at: " msgstr "estableix la puntuació de l'article a" #: ../pan/gui/prefs-ui.cc:1142 #, fuzzy msgid "Mark articles read scoring at: " msgstr "Marca l'article com a no llegit" #: ../pan/gui/prefs-ui.cc:1148 #, fuzzy msgid "_Cache articles scoring at: " msgstr "estableix la puntuació de l'article a" #: ../pan/gui/prefs-ui.cc:1154 msgid "Download attachments of articles scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1157 #, fuzzy msgid "Actions" msgstr "_Accions" #: ../pan/gui/prefs-ui.cc:1162 ../pan/gui/prefs-ui.cc:1183 msgid "Fonts" msgstr "Tipus de lletra" #: ../pan/gui/prefs-ui.cc:1164 msgid "Use custom font in Group Pane:" msgstr "Lletra personalitzada a la subfinestra de grup:" #: ../pan/gui/prefs-ui.cc:1169 msgid "Use custom font in Header Pane:" msgstr "Lletra personalitzada a la subfinestra de capçalera:" #: ../pan/gui/prefs-ui.cc:1174 msgid "Use custom font in Body Pane:" msgstr "Lletra personalitzada a la subfinestra de cos:" #: ../pan/gui/prefs-ui.cc:1179 msgid "Monospace font:" msgstr "Lletra monoespai:" #: ../pan/gui/prefs-ui.cc:1183 msgid "_Fonts" msgstr "_Tipus de lletra" #: ../pan/gui/prefs-ui.cc:1192 msgid "Header Pane" msgstr "Subfinestra de capçalera" #: ../pan/gui/prefs-ui.cc:1195 ../pan/gui/prefs-ui.cc:1201 #: ../pan/gui/prefs-ui.cc:1207 ../pan/gui/prefs-ui.cc:1213 #: ../pan/gui/prefs-ui.cc:1219 ../pan/gui/prefs-ui.cc:1225 #: ../pan/gui/prefs-ui.cc:1234 ../pan/gui/prefs-ui.cc:1240 #: ../pan/gui/prefs-ui.cc:1246 ../pan/gui/prefs-ui.cc:1252 #: ../pan/gui/prefs-ui.cc:1258 ../pan/gui/prefs-ui.cc:1268 #: ../pan/gui/prefs-ui.cc:1278 msgid "Text:" msgstr "Text:" #: ../pan/gui/prefs-ui.cc:1197 ../pan/gui/prefs-ui.cc:1203 #: ../pan/gui/prefs-ui.cc:1209 ../pan/gui/prefs-ui.cc:1215 #: ../pan/gui/prefs-ui.cc:1221 ../pan/gui/prefs-ui.cc:1227 #: ../pan/gui/prefs-ui.cc:1236 ../pan/gui/prefs-ui.cc:1242 #: ../pan/gui/prefs-ui.cc:1248 ../pan/gui/prefs-ui.cc:1254 #: ../pan/gui/prefs-ui.cc:1260 ../pan/gui/prefs-ui.cc:1270 #: ../pan/gui/prefs-ui.cc:1280 msgid "Background:" msgstr "Segon pla:" #: ../pan/gui/prefs-ui.cc:1199 msgid "Scores of 9999 or more:" msgstr "Puntuació de 9999 o superior:" #: ../pan/gui/prefs-ui.cc:1205 msgid "Scores from 5000 to 9998:" msgstr "Puntuació de 5000 a 9998:" #: ../pan/gui/prefs-ui.cc:1211 msgid "Scores from 1 to 4999:" msgstr "Puntuació d'1 a 4999:" #: ../pan/gui/prefs-ui.cc:1217 msgid "Scores from -9998 to -1:" msgstr "Puntuació de -9998 a -1:" #: ../pan/gui/prefs-ui.cc:1223 msgid "Scores of -9999 or less:" msgstr "Puntuació de -9999 o inferior:" #: ../pan/gui/prefs-ui.cc:1229 msgid "Collapsed thread with unread articles:" msgstr "" #: ../pan/gui/prefs-ui.cc:1231 msgid "Body Pane" msgstr "Subfinestra de cos" #: ../pan/gui/prefs-ui.cc:1238 msgid "First level of quoted text:" msgstr "" #: ../pan/gui/prefs-ui.cc:1244 msgid "Second level of quoted text:" msgstr "" #: ../pan/gui/prefs-ui.cc:1250 msgid "Third level of quoted text:" msgstr "" #. #: ../pan/gui/prefs-ui.cc:1256 msgid "URL:" msgstr "URL:" #. #: ../pan/gui/prefs-ui.cc:1262 msgid "Signature:" msgstr "Signatura:" #: ../pan/gui/prefs-ui.cc:1265 #, fuzzy msgid "Group Pane" msgstr "Subfinestra de _grup" #. #: ../pan/gui/prefs-ui.cc:1272 msgid "Group Color:" msgstr "" #: ../pan/gui/prefs-ui.cc:1276 msgid "Other Text" msgstr "" #: ../pan/gui/prefs-ui.cc:1282 #, fuzzy msgid "Text Color:" msgstr "Seleccioneu un color" #: ../pan/gui/prefs-ui.cc:1285 msgid "_Colors" msgstr "_Colors" #: ../pan/gui/prefs-ui.cc:1285 #, fuzzy msgid "Colors" msgstr "_Colors" #: ../pan/gui/prefs-ui.cc:1290 msgid "Preferred Applications" msgstr "Aplicacions preferides" #: ../pan/gui/prefs-ui.cc:1294 #, fuzzy msgid "_Web browser:" msgstr "Navegador _web:" #: ../pan/gui/prefs-ui.cc:1297 #, fuzzy msgid "_Mail reader:" msgstr "_Lector de correu:" #: ../pan/gui/prefs-ui.cc:1299 #, fuzzy msgid "_Text editor:" msgstr "Editor de _text:" #: ../pan/gui/prefs-ui.cc:1301 msgid "_HTML previewer:" msgstr "" #: ../pan/gui/prefs-ui.cc:1303 #, fuzzy msgid "_Applications" msgstr "_Aplicacions" #: ../pan/gui/prefs-ui.cc:1303 #, fuzzy msgid "Applications" msgstr "_Aplicacions" #: ../pan/gui/prefs-ui.cc:1308 ../pan/gui/task-pane.cc:552 #, fuzzy msgid "Encoding" msgstr "S'està descodificant" #: ../pan/gui/prefs-ui.cc:1312 msgid "Default bytes per file (for encoder): " msgstr "" #: ../pan/gui/prefs-ui.cc:1317 #, fuzzy msgid "_Upload" msgstr "_Aplicacions" #: ../pan/gui/prefs-ui.cc:1317 msgid "Upload" msgstr "Penjar" #: ../pan/gui/prefs-ui.cc:1326 msgid "_Shortcuts" msgstr "_Dreceres" #: ../pan/gui/prefs-ui.cc:1326 msgid "Shortcuts" msgstr "Dreceres" #: ../pan/gui/profiles-dialog.cc:83 msgid "Please choose your email address according to your PGP key's user id." msgstr "" #: ../pan/gui/profiles-dialog.cc:131 msgid "Posting Profile" msgstr "Perfil de publicació" #: ../pan/gui/profiles-dialog.cc:143 msgid "Profile Information" msgstr "Informació del perfil" #: ../pan/gui/profiles-dialog.cc:147 msgid "_Profile Name:" msgstr "Nom del _perfil:" #: ../pan/gui/profiles-dialog.cc:150 msgid "Required Information" msgstr "Informació necessària" #: ../pan/gui/profiles-dialog.cc:154 msgid "_Full Name:" msgstr "Nom _complet:" #: ../pan/gui/profiles-dialog.cc:158 msgid "" "Your email address.\n" "Note that this has to match your PGP signature's address\n" "if you want your messages to be PGP-signed or encrypted correctly." msgstr "" #: ../pan/gui/profiles-dialog.cc:162 msgid "_Email Address:" msgstr "Adreça de correu _electrònic:" #: ../pan/gui/profiles-dialog.cc:164 msgid "_Post Articles via:" msgstr "Articles _publicats mitjançant:" #: ../pan/gui/profiles-dialog.cc:167 msgid "Signature" msgstr "Signatura" #: ../pan/gui/profiles-dialog.cc:170 msgid "_Use a Signature" msgstr "_Utilitza una signatura" #: ../pan/gui/profiles-dialog.cc:174 msgid "Signature File" msgstr "Fitxer de signatura" #: ../pan/gui/profiles-dialog.cc:184 msgid "Text File" msgstr "Fitxer de text" #: ../pan/gui/profiles-dialog.cc:186 msgid "Text" msgstr "Text" #: ../pan/gui/profiles-dialog.cc:188 msgid "Command" msgstr "Ordre" #: ../pan/gui/profiles-dialog.cc:191 #, fuzzy msgid "PGP Signature" msgstr "Signatura" #: ../pan/gui/profiles-dialog.cc:196 #, fuzzy msgid "Signature Type: " msgstr "_Tipus de signatura:" #: ../pan/gui/profiles-dialog.cc:226 msgid "X-Face (Avatar)" msgstr "" #: ../pan/gui/profiles-dialog.cc:229 msgid "" "You can add an avatar icon to your articles with a unique X-Face code.\n" "Add the code without the trailing \"X-Face:\" \n" " if it was generated by a helper program (for example http://www.dairiki.org/" "xface/xface.php)." msgstr "" #: ../pan/gui/profiles-dialog.cc:232 msgid "_X-Face:" msgstr "" #: ../pan/gui/profiles-dialog.cc:234 msgid "Optional Information" msgstr "Informació opcional" #: ../pan/gui/profiles-dialog.cc:239 #, fuzzy msgid "" "When posting to Usenet, your article's Message-ID contains a domain name.\n" "You can set a custom domain name here, or leave it blank to let Pan use the " "domain name from your email address." msgstr "" "Quan publiqueu a Usenet, el vostre identificador del missatge conté un nom " "de domini. Podeu establir aquí un nom de domini personalitzat, o deixar-lo " "en blanc perquè el Pan faci servir el nom de domini de la vostra adreça de " "correu electrònic." #: ../pan/gui/profiles-dialog.cc:242 msgid "Message-ID _Domain Name:" msgstr "Nom de _domini de l'identificador del missatge:" #: ../pan/gui/profiles-dialog.cc:246 #, c-format msgid "" "%i for Message-ID\n" "%a for Author and Address\n" "%n for Author name\n" "%d for Date" msgstr "" "%i per a identificador del missatge\n" "%a per a autor i adreça\n" "%n per a nom d'autor\n" "%d per a data" #: ../pan/gui/profiles-dialog.cc:247 msgid "_Attribution:" msgstr "_Atribució:" #: ../pan/gui/profiles-dialog.cc:271 #, fuzzy msgid "" "Extra headers to be included in your articles, such as\n" "Reply-To: \"Your Name\"\n" "Organization: Your Organization\n" msgstr "" "Les capçaleres addicionals que s'han d'incloure en les vostres publicacions, " "com ara\n" "Respon-a: «El vostre nom» \n" "Organització: la vostra organització" #: ../pan/gui/profiles-dialog.cc:281 msgid "E_xtra Headers:" msgstr "Capçaleres e_xtres:" #: ../pan/gui/profiles-dialog.cc:326 msgid "Invalid email address." msgstr "L'adreça de correu electrònic no és vàlida." #: ../pan/gui/profiles-dialog.cc:327 msgid "Please use an address of the form joe@somewhere.org" msgstr "Utilitzeu una adreça de la forma nom@algunlloc.cat" #: ../pan/gui/profiles-dialog.cc:482 msgid "New Profile" msgstr "Nou perfil" #: ../pan/gui/profiles-dialog.cc:528 msgid "Posting Profiles" msgstr "Perfils de publicació" #: ../pan/gui/profiles-dialog.cc:544 msgid "Profiles" msgstr "Perfils" #: ../pan/gui/save-attach-ui.cc:46 #, fuzzy, c-format msgid "" "%g - group as one directory (alt.binaries.pictures.trains)\n" "%G - group as nested directory (/alt/binaries/pictures/trains)\n" "%s - Subject line excerpt\n" "%S - Subject line\n" "%n - Poster display name\n" "%e - Poster email address\n" "%d - Article timestamp\n" "\"/home/user/News/Pan/%g\" becomes\n" "\"/home/user/News/Pan/alt.binaries.pictures.trains\", and\n" "\"/home/user/News/Pan/%G\" becomes\n" "\"/home/user/News/Pan/alt/binaries/pictures/trains\"," msgstr "" "%g - agrupa en un únic directori (alt.binaries.pictures.trains)\n" "%G - agrupa en un directori de nivells (/alt/binaries/pictures/trains)\n" " \n" "«/home/user/News/Pan/%g» es converteix en\n" "«/home/user/News/Pan/alt.binaries.pictures.trains», i\n" "«/home/user/News/Pan/%G» es converteix en\n" "«/home/user/News/Pan/alt/binaries/pictures/trains»," #: ../pan/gui/save-attach-ui.cc:197 ../pan/gui/save-ui.cc:217 msgid "Add to the queue sorted by date posted" msgstr "Afegeix a la cua ordenada per la data de publicació" #: ../pan/gui/save-attach-ui.cc:198 ../pan/gui/save-ui.cc:218 msgid "Add to the front of the queue" msgstr "Afegeix a l'inici de la cua" #: ../pan/gui/save-attach-ui.cc:199 ../pan/gui/save-ui.cc:219 msgid "Add to the back of the queue" msgstr "Afegeix al final de la cua" #: ../pan/gui/save-attach-ui.cc:231 #, fuzzy msgid "Pan: Save Attachments" msgstr "Des_a fitxers adjunts" #: ../pan/gui/save-attach-ui.cc:256 ../pan/gui/save-attach-ui.cc:274 #: ../pan/gui/save-ui.cc:271 ../pan/gui/save-ui.cc:289 msgid "_Location:" msgstr "_Ubicació:" #: ../pan/gui/save-attach-ui.cc:260 ../pan/gui/save-ui.cc:275 msgid "Save Articles" msgstr "Desa els articles" #: ../pan/gui/save-attach-ui.cc:277 ../pan/gui/save-ui.cc:292 #, c-format msgid "_Group's path: %s" msgstr "Camí del _grup: %s" #: ../pan/gui/save-attach-ui.cc:288 ../pan/gui/save-ui.cc:307 msgid "_Priority:" msgstr "_Prioritat:" #: ../pan/gui/save-ui.cc:46 #, fuzzy, c-format msgid "" "%g - group as one directory (alt.binaries.pictures.trains)\n" "%G - group as nested directory (/alt/binaries/pictures/trains)\n" "%s - subject line excerpt\n" "%S - subject line\n" "%n - Poster display name\n" "%e - Poster email address\n" "%d - Article timestamp\n" " \n" "\"/home/user/News/Pan/%g\" becomes\n" "\"/home/user/News/Pan/alt.binaries.pictures.trains\", and\n" "\"/home/user/News/Pan/%G\" becomes\n" "\"/home/user/News/Pan/alt/binaries/pictures/trains\"," msgstr "" "%g - agrupa en un únic directori (alt.binaries.pictures.trains)\n" "%G - agrupa en un directori de nivells (/alt/binaries/pictures/trains)\n" " \n" "«/home/user/News/Pan/%g» es converteix en\n" "«/home/user/News/Pan/alt.binaries.pictures.trains», i\n" "«/home/user/News/Pan/%G» es converteix en\n" "«/home/user/News/Pan/alt/binaries/pictures/trains»," #: ../pan/gui/save-ui.cc:208 msgid "Save attachments" msgstr "Desa els adjunts" #: ../pan/gui/save-ui.cc:209 msgid "Save text" msgstr "Desa el text" #: ../pan/gui/save-ui.cc:210 msgid "Save attachments and text" msgstr "Desa els adjunts i el text" #: ../pan/gui/save-ui.cc:246 msgid "Pan: Save Articles" msgstr "Pan: desa els articles" #: ../pan/gui/save-ui.cc:303 msgid "_Action:" msgstr "_Acció:" #: ../pan/gui/score-add-ui.cc:89 msgid "is more than" msgstr "és més que" #: ../pan/gui/score-add-ui.cc:90 msgid "is at most" msgstr "és com a molt" #: ../pan/gui/score-add-ui.cc:112 msgid "increase the article's score by" msgstr "augmenta la puntuació de l'article en" #: ../pan/gui/score-add-ui.cc:113 msgid "decrease the article's score by" msgstr "redueix la puntuació de l'article en" #: ../pan/gui/score-add-ui.cc:114 msgid "set the article's score to" msgstr "estableix la puntuació de l'article a" #: ../pan/gui/score-add-ui.cc:115 msgid "watch the article (set its score to 9999)" msgstr "vigila l'article (estableix la puntuació a 9999)" #: ../pan/gui/score-add-ui.cc:116 msgid "ignore the article (set its score to -9999)" msgstr "ignora l'article (estableix la puntuació a -9999)" #: ../pan/gui/score-add-ui.cc:141 msgid "References" msgstr "Referències" #: ../pan/gui/score-add-ui.cc:142 msgid "Line Count" msgstr "Compte de línies" #: ../pan/gui/score-add-ui.cc:143 msgid "Byte Count" msgstr "Compte de bytes" #: ../pan/gui/score-add-ui.cc:144 msgid "Crosspost Group Count" msgstr "Compte del grup de publicacions simultànies" #: ../pan/gui/score-add-ui.cc:145 msgid "Age (in days)" msgstr "Antiguitat (en dies)" #: ../pan/gui/score-add-ui.cc:167 msgid "for the next month" msgstr "per al següent mes" #: ../pan/gui/score-add-ui.cc:168 msgid "for the next six months" msgstr "per als següents sis mesos" #: ../pan/gui/score-add-ui.cc:169 msgid "forever" msgstr "per sempre" #: ../pan/gui/score-add-ui.cc:194 msgid "contains" msgstr "conté" #: ../pan/gui/score-add-ui.cc:195 msgid "doesn't contain" msgstr "no conté" #: ../pan/gui/score-add-ui.cc:196 msgid "is" msgstr "és" #: ../pan/gui/score-add-ui.cc:197 msgid "isn't" msgstr "no és" #: ../pan/gui/score-add-ui.cc:198 msgid "starts with" msgstr "comença amb" #: ../pan/gui/score-add-ui.cc:199 msgid "ends with" msgstr "acaba amb" #: ../pan/gui/score-add-ui.cc:200 msgid "matches regex" msgstr "coincideix amb l'expressió regular" #: ../pan/gui/score-add-ui.cc:481 msgid "Another rule already sets this article's score." msgstr "Una altra regla ja estableix la puntuació d'aquest article." #: ../pan/gui/score-add-ui.cc:482 msgid "You may want to go back or delete the old rule." msgstr "Potser voleu tornar-hi o suprimir la regla antiga." #: ../pan/gui/score-add-ui.cc:553 msgid "Add and Re_score" msgstr "Afegeix i torna a _puntuar" #: ../pan/gui/score-add-ui.cc:604 ../pan/gui/score-add-ui.cc:624 msgid "New Scoring Rule" msgstr "Nova regla de puntuació" #: ../pan/gui/score-add-ui.cc:635 msgid "Group name" msgstr "Nom del grup" #: ../pan/gui/score-add-ui.cc:642 msgid "and" msgstr "i" #: ../pan/gui/score-view-ui.cc:56 msgid "Close and Re_score" msgstr "Tanca i torna a _puntuar" #: ../pan/gui/score-view-ui.cc:154 #, c-format msgid "File %s, Lines %d - %d" msgstr "Fitxer %s, línies %d - %d" #: ../pan/gui/score-view-ui.cc:182 msgid "Pan: Article's Scores" msgstr "Pan: puntuacions de l'article" #: ../pan/gui/score-view-ui.cc:208 msgid "Add" msgstr "Afegeix" #: ../pan/gui/score-view-ui.cc:213 msgid "New Score" msgstr "Puntuació nova" #: ../pan/gui/score-view-ui.cc:218 msgid "Criteria" msgstr "Criteri" #: ../pan/gui/score-view-ui.cc:241 msgid "Add a New Scoring Rule" msgstr "Afegeix una nova regla de puntuació" #: ../pan/gui/score-view-ui.cc:248 msgid "Remove the Selected Scoring Rule" msgstr "Suprimeix la regla de puntuació seleccionada" #: ../pan/gui/server-ui.cc:259 msgid "Please specify the server's address." msgstr "Especifiqueu l'adreça del servidor." #: ../pan/gui/server-ui.cc:305 msgid "Import SSL Certificate (PEM Format) From File" msgstr "" #. create the dialog #: ../pan/gui/server-ui.cc:342 ../pan/gui/server-ui.cc:948 msgid "Add a Server" msgstr "Afegeix un servidor" #: ../pan/gui/server-ui.cc:342 ../pan/gui/server-ui.cc:954 msgid "Edit a Server's Settings" msgstr "Edita la configuració d'un servidor" #: ../pan/gui/server-ui.cc:362 msgid "Location" msgstr "Ubicació" #: ../pan/gui/server-ui.cc:366 msgid "The news server's actual address, e.g. \"news.mynewsserver.com\"" msgstr "" "L'adreça actual del servidor de notícies, per exemple «noticies.elservidor." "com»" #: ../pan/gui/server-ui.cc:367 msgid "_Address:" msgstr "_Adreça:" #: ../pan/gui/server-ui.cc:372 #, fuzzy msgid "" "The news server's port number. Typically 119 for unencrypted and 563 for " "encrypted connections (SSL/TLS)." msgstr "El número del port del servidor de notícies. Habitualment és el 119." #: ../pan/gui/server-ui.cc:373 msgid "Por_t:" msgstr "Por_t:" #: ../pan/gui/server-ui.cc:376 msgid "Login (if Required)" msgstr "Inici de sessió (si és necessari)" #: ../pan/gui/server-ui.cc:380 msgid "_Username:" msgstr "Nom d'_usuari:" #: ../pan/gui/server-ui.cc:381 msgid "" "The username to give the server when asked. If your server doesn't require " "authentication, you can leave this blank." msgstr "" "El nom d'usuari a donar al servidor quan es demani. Si el vostre servidor no " "necessita autenticació, podeu deixar-ho en blanc." #: ../pan/gui/server-ui.cc:385 msgid "_Password:" msgstr "_Contrasenya:" #: ../pan/gui/server-ui.cc:386 msgid "" "The password to give the server when asked. If your server doesn't require " "authentication, you can leave this blank." msgstr "" "La contrasenya a donar al servidor quan es demani. Si el vostre servidor no " "necessita autenticació, podeu deixar-ho en blanc." #: ../pan/gui/server-ui.cc:389 msgid "Settings" msgstr "Configuracions" #: ../pan/gui/server-ui.cc:396 msgid "Connection _Limit:" msgstr "_Límit de connexions:" #: ../pan/gui/server-ui.cc:400 msgid "After Two Weeks" msgstr "Després de dues setmanes" #: ../pan/gui/server-ui.cc:401 msgid "After One Month" msgstr "Després d'un mes" #: ../pan/gui/server-ui.cc:402 msgid "After Two Months" msgstr "Després de dos mesos" #: ../pan/gui/server-ui.cc:403 msgid "After Three Months" msgstr "Després de tres mesos" #: ../pan/gui/server-ui.cc:404 msgid "After Six Months" msgstr "Després de sis mesos" #: ../pan/gui/server-ui.cc:405 msgid "Never Expire Old Articles" msgstr "Els articles antics no caduquen mai" #: ../pan/gui/server-ui.cc:419 msgid "E_xpire Old Articles:" msgstr "Els articles antics _vencen:" #: ../pan/gui/server-ui.cc:423 msgid "Primary" msgstr "Primari" #: ../pan/gui/server-ui.cc:424 msgid "Fallback" msgstr "Alternatiu" #: ../pan/gui/server-ui.cc:438 msgid "Server Rank:" msgstr "Rang de servidors:" #: ../pan/gui/server-ui.cc:442 msgid "" "Fallback servers are used for articles that can't be found on the " "primaries. One common approach is to use free servers as primaries and " "subscription servers as fallbacks." msgstr "" "Els servidors alternatius s'utilitzen per als articles que no es trobin en " "els primaris. Una aproximació comuna és utilitzar servidors gratuïts com a " "primaris i servidors de subscripció com a alternatius." #: ../pan/gui/server-ui.cc:447 msgid "Disable Compression (N/A)" msgstr "" #: ../pan/gui/server-ui.cc:448 msgid "XZVER Compression (Astraweb)" msgstr "" #: ../pan/gui/server-ui.cc:449 msgid "GZIP Compression (Giganews etc.)" msgstr "" #: ../pan/gui/server-ui.cc:463 msgid "Header Compression:" msgstr "" #: ../pan/gui/server-ui.cc:469 msgid "Security" msgstr "Seguretat" #: ../pan/gui/server-ui.cc:474 #, fuzzy msgid "Use Unsecure (Plaintext) Connections" msgstr "Cap connexió" #: ../pan/gui/server-ui.cc:475 #, fuzzy msgid "Use Secure SSL Connections" msgstr "Cap connexió" #: ../pan/gui/server-ui.cc:490 msgid "TLS (SSL) Settings:" msgstr "" #: ../pan/gui/server-ui.cc:495 msgid "" "You can enable/disable secure SSL/TLS connections here. If you enable SSL/" "TLS, your data is encrypted and secure. It is encouraged to enable SSL/TLS " "for privacy reasons." msgstr "" #: ../pan/gui/server-ui.cc:500 msgid "Always trust this server's certificate" msgstr "" #: ../pan/gui/server-ui.cc:676 #, c-format msgid "Really delete \"%s\"?" msgstr "Voleu suprimir «%s»?" #: ../pan/gui/server-ui.cc:765 msgid "No information available." msgstr "" #: ../pan/gui/server-ui.cc:775 #, c-format msgid "Server Certificate for '%s'" msgstr "" #: ../pan/gui/server-ui.cc:874 #, fuzzy, c-format msgid "Really delete certificate for \"%s\"?" msgstr "Voleu suprimir «%s»?" #. dialog #: ../pan/gui/server-ui.cc:901 ../pan/gui/server-ui.cc:922 #: ../pan/gui/server-ui.cc:1020 msgid "Servers" msgstr "Servidors" #: ../pan/gui/server-ui.cc:961 msgid "Remove a Server" msgstr "Suprimeix un servidor" #. dialog #: ../pan/gui/server-ui.cc:994 msgid "SSL Certificates" msgstr "" #: ../pan/gui/server-ui.cc:1015 msgid "Certificates" msgstr "Certificats" #: ../pan/gui/server-ui.cc:1046 msgid "Import Certificate" msgstr "" #: ../pan/gui/server-ui.cc:1052 msgid "Inspect Certificate" msgstr "" #: ../pan/gui/server-ui.cc:1059 #, fuzzy msgid "Remove Certificate" msgstr "Suprimeix un servidor" #: ../pan/gui/task-pane.cc:121 #, c-format msgid "" "\n" "Upload\n" "\n" "Subject: \"%s\"\n" "From: %s\n" "Groups: %s\n" "Sourcefile: %s\n" msgstr "" #: ../pan/gui/task-pane.cc:133 #, c-format msgid "" "\n" "Download\n" "\n" "Subject: \"%s\"\n" "From: %s\n" "Date: %s\n" "Groups: %s\n" "Save Path: %s\n" msgstr "" #: ../pan/gui/task-pane.cc:135 #, fuzzy msgid "unknown" msgstr "Desconegut" #: ../pan/gui/task-pane.cc:303 msgid "Choose New Destination for Selected Tasks" msgstr "" #: ../pan/gui/task-pane.cc:457 #, c-format msgid "Pan: Tasks (%d Queued, %d Running, %d Stopped)" msgstr "Pan: tasques (%d en cua, %d executant-se, %d aturades)" #: ../pan/gui/task-pane.cc:459 #, c-format msgid "Pan: Tasks (%d Queued, %d Running)" msgstr "Pan: tasques (%d en cua, %d executant-se)" #: ../pan/gui/task-pane.cc:461 #, c-format msgid "Pan: Tasks" msgstr "Pan: tasques" #: ../pan/gui/task-pane.cc:486 #, c-format msgid "%lu selected, %s" msgstr "%lu seleccionat, %s" #: ../pan/gui/task-pane.cc:550 msgid "Running" msgstr "S'està executant" #: ../pan/gui/task-pane.cc:551 msgid "Decoding" msgstr "S'està descodificant" #: ../pan/gui/task-pane.cc:553 msgid "Queued for Decode" msgstr "En cua per a descodificar" #: ../pan/gui/task-pane.cc:554 #, fuzzy msgid "Queued for Encode" msgstr "En cua per a descodificar" #: ../pan/gui/task-pane.cc:555 msgid "Queued" msgstr "En cua" #: ../pan/gui/task-pane.cc:556 msgid "Stopped" msgstr "Aturat" #: ../pan/gui/task-pane.cc:557 msgid "Removing" msgstr "S'està esborrant" #: ../pan/gui/task-pane.cc:586 #, c-format msgid "%d%% Done" msgstr "%d%% fet" #: ../pan/gui/task-pane.cc:592 #, c-format msgid "%d:%02d:%02d Remaining (%d @ %lu KiB/s)" msgstr "%d:%02d:%02d restant (%d @ %lu KiB/s)" #: ../pan/gui/task-pane.cc:687 ../pan/gui/task-pane.cc:688 #, fuzzy msgid "Move To Top" msgstr "Mou les tasques seleccionades al final" #: ../pan/gui/task-pane.cc:692 ../pan/gui/task-pane.cc:693 #, fuzzy msgid "Move To Bottom" msgstr "Mou les tasques seleccionades al final" #: ../pan/gui/task-pane.cc:697 ../pan/gui/task-pane.cc:698 #, fuzzy msgid "Show Task Information" msgstr "Mostra informació de l'article" #: ../pan/gui/task-pane.cc:702 ../pan/gui/task-pane.cc:703 #, fuzzy msgid "Stop Task" msgstr "Atura les tasques" #: ../pan/gui/task-pane.cc:707 ../pan/gui/task-pane.cc:708 #, fuzzy msgid "Delete Task" msgstr "Suprimeix les tasques" #: ../pan/gui/task-pane.cc:712 ../pan/gui/task-pane.cc:713 #, fuzzy msgid "Restart Task" msgstr "Reinicia les tasques" #: ../pan/gui/task-pane.cc:717 ../pan/gui/task-pane.cc:718 msgid "Change Download Destination" msgstr "" #: ../pan/gui/task-pane.cc:1028 msgid "_Online" msgstr "_Connectat" #: ../pan/gui/task-pane.cc:1045 msgid "Restart Tasks" msgstr "Reinicia les tasques" #: ../pan/gui/task-pane.cc:1047 msgid "Stop Tasks" msgstr "Atura les tasques" #: ../pan/gui/task-pane.cc:1049 msgid "Delete Tasks" msgstr "Suprimeix les tasques" #: ../pan/gui/task-pane.cc:1055 msgid "Show info popups" msgstr "" #: ../pan/gui/url.cc:123 #, c-format msgid "Error starting URL: %s (Command was: %s)" msgstr "S'ha produït un error en iniciar l'URL: %s (l'ordre era: %s)" #: ../pan/tasks/decoder.cc:117 #, c-format msgid "Couldn't save file \"%s\": %s" msgstr "No s'ha pogut desar el fitxer «%s»: %s" #: ../pan/tasks/decoder.cc:139 ../pan/tasks/encoder.cc:136 msgid "Error initializing uulib" msgstr "S'ha produït un error en inicialitzar uulib" #: ../pan/tasks/decoder.cc:154 ../pan/tasks/socket-impl-gio.cc:360 #: ../pan/tasks/socket-impl-openssl.cc:642 #, c-format msgid "Error reading from %s: %s" msgstr "S'ha produït un error en llegir des de %s: %s" #: ../pan/tasks/decoder.cc:194 #, c-format msgid "Saved \"%s\"" msgstr "S'ha desat «%s»" #: ../pan/tasks/decoder.cc:201 #, c-format msgid "" "Error saving \"%s\":\n" "%s." msgstr "" "S'ha produït un error en desar «%s»:\n" "%s." #: ../pan/tasks/decoder.cc:314 ../pan/tasks/task-article.cc:354 #, c-format msgid "Decoding %s" msgstr "S'està descodificant «%s»" #: ../pan/tasks/encoder.cc:103 ../pan/tasks/encoder.cc:154 #, fuzzy, c-format msgid "Error loading %s from cache." msgstr "S'ha produït un error quan es llegia del sòcol." #: ../pan/tasks/encoder.cc:176 #, fuzzy, c-format msgid "Error encoding %s: %s" msgstr "S'ha produït un error en llegir des de %s: %s" #: ../pan/tasks/encoder.cc:266 #, fuzzy, c-format msgid "Encoding %s" msgstr "S'està descodificant" #: ../pan/tasks/nntp.cc:148 #, c-format msgid "%s requires a username, but none is set." msgstr "%s requereix un nom d'usuari, però no n'hi ha cap d'establert." #: ../pan/tasks/nntp.cc:161 #, c-format msgid "%s requires a password, but none is set." msgstr "%s requereix una contrasenya, però no n'hi ha cap d'establerta." #: ../pan/tasks/nntp.cc:239 #, c-format msgid "Sending \"%s\" to %s returned an error: %s" msgstr "En enviar «%s» a %s s'ha retornat un error: %s" #: ../pan/tasks/nntp.cc:262 #, c-format msgid "Sending \"%s\" to %s returned an unrecognized response: \"%s\"" msgstr "En enviar «%s» a %s s'ha retornat una resposta desconeguda: «%s»" #: ../pan/tasks/nntp-pool.cc:235 #, c-format msgid "Unable to connect to \"%s\"" msgstr "No es pot connectar amb «%s»" #: ../pan/tasks/queue.cc:772 ../pan/tasks/queue.cc:800 #: ../pan/tasks/queue.cc:827 msgid "No space left on device." msgstr "" #: ../pan/tasks/socket-impl-gio.cc:173 ../pan/tasks/socket-impl-gio.cc:211 #: ../pan/tasks/socket-impl-openssl.cc:214 #: ../pan/tasks/socket-impl-openssl.cc:252 #, c-format msgid "Error connecting to \"%s\"" msgstr "S'ha produït un error en connectar amb «%s»" #: ../pan/tasks/socket-impl-gio.cc:359 ../pan/tasks/socket-impl-openssl.cc:641 msgid "Unknown Error" msgstr "S'ha produït un error desconegut" #: ../pan/tasks/task-article.cc:62 ../pan/tasks/task-article.cc:160 #, c-format msgid "Saving %s" msgstr "S'està desant %s" #: ../pan/tasks/task-article.cc:64 #, c-format msgid "Reading %s" msgstr "S'està llegint %s" #: ../pan/tasks/task-article.cc:326 #, c-format msgid "Article \"%s\" is incomplete -- the news server(s) don't have part %s" msgstr "" "L'article «%s» està incomplet -- els servidors de notícies no tenen la part " "%s" #: ../pan/tasks/task-groups.cc:41 #, c-format msgid "Getting group list from \"%s\"" msgstr "S'està obtenint la llista dels grups des de «%s»" #: ../pan/tasks/task-groups.cc:134 #, c-format msgid "Fetched %lu Groups" msgstr "S'han recuperat %lu grups" #: ../pan/tasks/task-post.cc:35 #, c-format msgid "Posting \"%s\"" msgstr "S'està publicant «%s»" #: ../pan/tasks/task-post.cc:76 #, fuzzy, c-format msgid "Posting of \"%s\" failed: %s" msgstr "No s'ha pogut recuperar el cos de l'article \"%s\": %s" #: ../pan/tasks/task-post.cc:81 #, fuzzy, c-format msgid "Posting of \"%s\" successful: %s" msgstr "No s'ha pogut recuperar el cos de l'article \"%s\": %s" #: ../pan/tasks/task-upload.cc:51 #, fuzzy, c-format msgid "Uploading %s" msgstr "S'està llegint %s" #: ../pan/tasks/task-upload.cc:244 #, c-format msgid "Uploading %s - Part %d of %d" msgstr "" #: ../pan/tasks/task-upload.cc:246 #, c-format msgid "Uploading message body with subject \"%s\"" msgstr "" #: ../pan/tasks/task-upload.cc:303 #, fuzzy, c-format msgid "Posting of file %s (part %d of %d) failed: No posts allowed by server." msgstr "No s'ha pogut recuperar el cos de l'article \"%s\": %s" #: ../pan/tasks/task-upload.cc:311 #, fuzzy, c-format msgid "Posting of file %s (part %d of %d) failed: %s" msgstr "No s'ha pogut recuperar el cos de l'article \"%s\": %s" #: ../pan/tasks/task-upload.cc:321 ../pan/tasks/task-upload.cc:328 #, fuzzy, c-format msgid "Posting of file %s (part %d of %d) successful: %s" msgstr "No s'ha pogut recuperar el cos de l'article \"%s\": %s" #: ../pan/tasks/task-upload.cc:338 #, fuzzy, c-format msgid "Posting of file %s successful: %s" msgstr "No s'ha pogut recuperar el cos de l'article \"%s\": %s" #: ../pan/tasks/task-upload.cc:342 #, c-format msgid "" "Posting of file %s not completely successful: Check the log (right-click " "list item)." msgstr "" #: ../pan/tasks/task-upload.cc:358 #, c-format msgid "" "Posting of file %s not successful: Check the log (right-click list item)." msgstr "" #: ../pan/tasks/task-xover.cc:83 #, c-format msgid "Getting all headers for \"%s\"" msgstr "S'estan obtenint totes les capçaleres per a «%s»" #: ../pan/tasks/task-xover.cc:86 #, c-format msgid "Getting new headers for \"%s\"" msgstr "S'estan obtenint noves capçaleres per a «%s»" #. SAMPLE #: ../pan/tasks/task-xover.cc:90 #, c-format msgid "Sampling headers for \"%s\"" msgstr "S'estan mostrejant les capçaleres de «%s»" #: ../pan/tasks/task-xover.cc:426 #, c-format msgid "%s (%lu parts, %lu articles)" msgstr "%s (%lu parts, %lu articles)" #: ../pan/tasks/task-xover.cc:500 #, fuzzy, c-format msgid "Getting new headers for \"%s\" done." msgstr "S'estan obtenint noves capçaleres per a «%s»" #: ../pan/tasks/task-xoverinfo.cc:78 #, fuzzy, c-format msgid "Getting header counts for \"%s\"" msgstr "S'estan obtenint totes les capçaleres per a «%s»" #: ../pan/usenet-utils/filter-info.cc:168 msgid "article doesn't have attachments" msgstr "l'article no té adjunts" #: ../pan/usenet-utils/filter-info.cc:172 msgid "the article has attachments" msgstr "l'article té adjunts" #: ../pan/usenet-utils/filter-info.cc:176 msgid "the article isn't cached locally" msgstr "l'article no es troba a la memòria cau local" #: ../pan/usenet-utils/filter-info.cc:180 msgid "the article is cached locally" msgstr "l'article es troba a la memòria cau local" #: ../pan/usenet-utils/filter-info.cc:184 msgid "the article wasn't posted by you" msgstr "l'article no va ser publicat per vós" #: ../pan/usenet-utils/filter-info.cc:188 msgid "the article was posted by you" msgstr "l'article va ser publicat per vós" #: ../pan/usenet-utils/filter-info.cc:192 msgid "the article has been read" msgstr "l'article s'ha llegit" #: ../pan/usenet-utils/filter-info.cc:196 msgid "the article hasn't been read" msgstr "l'article no s'ha llegit" #: ../pan/usenet-utils/filter-info.cc:200 #, c-format msgid "the article is less than %ld bytes long" msgstr "l'article té menys de %ld bytes de longitud" #: ../pan/usenet-utils/filter-info.cc:205 #, c-format msgid "the article is at least %ld bytes long" msgstr "l'article té almenys %ld bytes de longitud" #: ../pan/usenet-utils/filter-info.cc:210 #, c-format msgid "the article is less than %ld lines long" msgstr "l'article té menys de %ld línies de longitud" #: ../pan/usenet-utils/filter-info.cc:215 #, c-format msgid "the article is at least %ld lines long" msgstr "l'article té almenys %ld línies de longitud" #: ../pan/usenet-utils/filter-info.cc:220 #, c-format msgid "the article is less than %ld days old" msgstr "l'article té menys de %ld dies d'antiguitat" #: ../pan/usenet-utils/filter-info.cc:225 #, c-format msgid "the article is at least %ld days old" msgstr "l'article té almenys %ld dies d'antiguitat" #: ../pan/usenet-utils/filter-info.cc:230 #, c-format msgid "the article was posted to less than %ld groups" msgstr "l'article es va publicar a menys de %ld grups" #: ../pan/usenet-utils/filter-info.cc:235 #, c-format msgid "the article was posted to at least %ld groups" msgstr "l'article es va publicar almenys en %ld grups" #: ../pan/usenet-utils/filter-info.cc:240 #, c-format msgid "the article's score is less than %ld" msgstr "la puntuació de l'article és menys que %ld" #: ../pan/usenet-utils/filter-info.cc:245 #, c-format msgid "the article's score is %ld or higher" msgstr "la puntuació de l'article és %ld o superior" #: ../pan/usenet-utils/filter-info.cc:254 #: ../pan/usenet-utils/filter-info.cc:264 #, c-format msgid "%s doesn't contain \"%s\"" msgstr "%s no conté «%s»" #: ../pan/usenet-utils/filter-info.cc:255 #: ../pan/usenet-utils/filter-info.cc:265 #, c-format msgid "%s isn't \"%s\"" msgstr "%s no és «%s»" #: ../pan/usenet-utils/filter-info.cc:256 #: ../pan/usenet-utils/filter-info.cc:266 #, c-format msgid "%s doesn't begin with \"%s\"" msgstr "%s no comença amb «%s»" #: ../pan/usenet-utils/filter-info.cc:257 #: ../pan/usenet-utils/filter-info.cc:267 #, c-format msgid "%s doesn't end with \"%s\"" msgstr "%s no acaba amb «%s»" #: ../pan/usenet-utils/filter-info.cc:258 #: ../pan/usenet-utils/filter-info.cc:268 #, c-format msgid "%s doesn't match the regex \"%s\"" msgstr "%s no coincideix amb l'expressió regular «%s»" #: ../pan/usenet-utils/filter-info.cc:280 #, c-format msgid "%s contains \"%s\"" msgstr "%s conté «%s»" #: ../pan/usenet-utils/filter-info.cc:281 #, c-format msgid "%s is \"%s\"" msgstr "%s és «%s»" #: ../pan/usenet-utils/filter-info.cc:282 #, c-format msgid "%s begins with \"%s\"" msgstr "%s comença amb «%s»" #: ../pan/usenet-utils/filter-info.cc:283 #, c-format msgid "%s ends with \"%s\"" msgstr "%s acaba amb «%s»" #: ../pan/usenet-utils/filter-info.cc:284 #, c-format msgid "%s matches the regex \"%s\"" msgstr "%s coincideix amb l'expressió regular «%s»" #: ../pan/usenet-utils/filter-info.cc:290 msgid "Any of these tests fail:" msgstr "Qualsevol d'aquestes proves falla:" #: ../pan/usenet-utils/filter-info.cc:297 msgid "All of these tests pass:" msgstr "Totes aquestes proves passen:" #: ../pan/usenet-utils/filter-info.cc:304 msgid "None of these tests pass:" msgstr "Cap d'aquestes proves passen:" #: ../pan/usenet-utils/filter-info.cc:311 msgid "Any of these tests pass:" msgstr "Qualsevol d'aquestes proves passen:" #: ../pan/usenet-utils/gnksa.cc:880 #, c-format msgid "No email address provided; generating message-id with domain \"%s\"" msgstr "" "No s'ha proporcionat l'adreça de correu electrònic. S'està generant " "l'identificador del missatge amb domini «%s»" #: ../pan/usenet-utils/message-check.cc:124 msgid "Warning: Reply seems to be top-posted." msgstr "Atenció: sembla que la resposta s'ha escrit al començament." #: ../pan/usenet-utils/message-check.cc:145 msgid "Warning: The signature marker should be \"-- \", not \"--\"." msgstr "Atenció: el marcador de signatura ha de ser «-- », no «--»." #: ../pan/usenet-utils/message-check.cc:162 msgid "Warning: Signature prefix with no signature." msgstr "Atenció: prefix de signatura sense signatura." #: ../pan/usenet-utils/message-check.cc:167 msgid "Warning: Signature is more than 4 lines long." msgstr "Atenció: la signatura té més de 4 línies." #: ../pan/usenet-utils/message-check.cc:172 msgid "Warning: Signature is more than 80 characters wide." msgstr "Atenció: la signatura té més de 80 caràcters d'amplada." #: ../pan/usenet-utils/message-check.cc:198 #, fuzzy, c-format msgid "Warning: %d line is more than 80 characters wide." msgid_plural "Warning: %d lines are more than 80 characters wide." msgstr[0] "Atenció: hi ha %d línies amb més de 80 caràcters d'amplada." msgstr[1] "Atenció: hi ha %d línies amb més de 80 caràcters d'amplada." #: ../pan/usenet-utils/message-check.cc:223 msgid "Error: Message is empty." msgstr "Error: el missatge és buit." #: ../pan/usenet-utils/message-check.cc:258 msgid "Warning: The message is entirely quoted text!" msgstr "Atenció: el missatge és totalment text citat" #: ../pan/usenet-utils/message-check.cc:259 msgid "Warning: The message is mostly quoted text." msgstr "Atenció: el missatge és majoritàriament text citat." #: ../pan/usenet-utils/message-check.cc:309 msgid "Error: Message appears to have no new content." msgstr "Error: el missatge sembla que no té contingut nou." #: ../pan/usenet-utils/message-check.cc:344 #: ../pan/usenet-utils/message-check.cc:383 #, c-format msgid "" "Warning: The posting profile's server doesn't carry newsgroup\n" "\t\"%s\".\n" "\tIf the group name is correct, switch profiles in the \"From:\"\n" "\tline or edit the profile with \"Edit|Manage Posting Profiles\"." msgstr "" "Atenció: el servidor de perfils de publicació no conté cap grup de notícies\n" "\t«%s».\n" "\tSi el nom del grup és correcte, canvieu el perfil en la línia «De:»\n" "\to editeu el perfil amb «Edita|Gestiona els perfils de publicació»." #: ../pan/usenet-utils/message-check.cc:355 msgid "Warning: Following-Up to too many groups." msgstr "Atenció: s'està fent seguiment a massa grups." #: ../pan/usenet-utils/message-check.cc:366 msgid "Error: No Subject specified." msgstr "Error: no s'ha especificat cap assumpte." #: ../pan/usenet-utils/message-check.cc:395 #, c-format msgid "Warning: Group \"%s\" is read-only." msgstr "Atenció: el grup «%s» és només de lectura." #: ../pan/usenet-utils/message-check.cc:404 msgid "Error: Posting to a very large number of groups." msgstr "Error: s'està publicant a un nombre molt gran de grups." #: ../pan/usenet-utils/message-check.cc:409 msgid "Warning: Posting to a large number of groups." msgstr "Atenció: s'està publicant a un gran nombre de grups." #: ../pan/usenet-utils/message-check.cc:416 msgid "Warning: Crossposting without setting Followup-To header." msgstr "" "Atenció: s'està publicant simultàniament sense definir la capçalera de " "Seguiment-a." #: ../pan/usenet-utils/message-check.cc:441 msgid "Error: Bad email address." msgstr "Error: adreça de correu electrònic incorrecta." #: ../pan/usenet-utils/message-check.cc:450 msgid "Warning: Most newsgroups frown upon HTML posts." msgstr "" "Atenció: la majoria de grups de notícies no accepten publicacions HTML." #: ../pan/usenet-utils/message-check.cc:486 msgid "Error: No Recipients." msgstr "Error: no hi ha destinataris." #: ../pan/usenet-utils/scorefile.cc:304 #, c-format msgid "" "Error reading score in %*.*s, line %d: expected 'Expires: MM/DD/YYYY' or " "'Expires: DD-MM-YYYY'." msgstr "" "S'ha produït un error en llegir la puntuació %*.*s, línia %d: s'esperava " "'Expires: MM/DD/YYYY' o 'Expires: DD-MM-YYYY'." #: ../pan/usenet-utils/scorefile.cc:307 #, c-format msgid "Expired old score from %*.*s, line %d" msgstr "Ha caducat la puntuació antiga de %*.*s, línia %d" #: ../pan/usenet-utils/scorefile.cc:380 #, c-format msgid "Error reading score in %*.*s, line %d: unexpected line." msgstr "" "S'ha produït un error en llegir la puntuació %*.*s, línia %d: línia " "inesperada." #: ../pan/usenet-utils/scorefile.cc:428 #, c-format msgid "Read %lu scoring rules in %lu sections from \"%s\"" msgstr "S'han llegit %lu regles de puntuació en %lu seccions de «%s»" #: ../pan/usenet-utils/ssl-utils.h:189 #, fuzzy, c-format msgid "Error printing the server certificate for '%s'" msgstr "" "S'ha produït un error en analitzar el significat de la línia d'ordres " "«navegador web»: %s" #: ../pan/usenet-utils/ssl-utils.h:205 #, c-format msgid "" "The current server '%s' sent this security certificate:\n" "\n" msgstr "" #: ../pan/usenet-utils/ssl-utils.h:206 #, c-format msgid "" "Certificate information for server '%s':\n" "\n" msgstr "" #: ../pan/usenet-utils/ssl-utils.h:208 #, c-format msgid "" "%sIssuer information:\n" "%s\n" "Valid until: %s\n" "\n" "Not valid before: %s\n" "\n" msgstr "" #: ../pan/usenet-utils/text-massager.cc:399 msgid "> [quoted text muted]" msgstr "> [text citat omès]" #: ../pan/usenet-utils/text-massager.cc:579 msgid "no_name" msgstr "" #: ../pan/usenet-utils/text-massager.cc:580 msgid "no_mail" msgstr "" #, fuzzy #~ msgid "Open Download Meter Preferences" #~ msgstr "Utilitza les preferències del KDE" #~ msgid "KB" #~ msgstr "KB" #~ msgid "MB" #~ msgstr "MB" #~ msgid "GB" #~ msgstr "GB" #~ msgid "TB" #~ msgstr "TB" #, fuzzy #~ msgid "_Download Meter Preferences" #~ msgstr "Edita les _preferències" #, fuzzy #~ msgid "Pan: Download Meter Preferences" #~ msgstr "Pan: descarrega capçaleres" #, fuzzy #~ msgid "Disconnect from server" #~ msgstr "S'està connectant amb el servidor de correu" #, fuzzy #~ msgid "Download Limit" #~ msgstr "Directori per descarregar" #~ msgid "Reset" #~ msgstr "Reinicia" #, fuzzy #~ msgid "Quoted text:" #~ msgstr "Text citat:" pan-0.162/po/cs.po000066400000000000000000003061711475412772400137100ustar00rootroot00000000000000# Translation of Pan to Czech. # Copyright (C) 2001, 2002, 2003, 2007, 2008, 2009, 2010, 2011, 2012, 2013 the author(s) of Pan. # Copyright (C) 2005 Miloslav Trmac . # This file is distributed under the same license as the pan package. # Michal Bukovjan , 2002, 2003. # Miloslav Trmac , 2003, 2005. # Petr Kovar , 2007, 2008, 2009, 2011, 2012, 2013, 2015, 2016, 2017, 2021, 2022. # Daniel Rusek , 2024. # msgid "" msgstr "" "Project-Id-Version: pan\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/pan/issues/\n" "POT-Creation-Date: 2024-08-24 13:09+0000\n" "PO-Revision-Date: 2024-10-05 12:54+0200\n" "Last-Translator: Daniel Rusek \n" "Language-Team: Czech \n" "Language: cs\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" "X-Generator: Poedit 3.5\n" "X-Project-Style: gnome\n" #. update the titlebar #: org.gnome.pan.desktop.in:3 org.gnome.pan.metainfo.xml.in:27 #: pan/gui/dl-headers-ui.cc:119 pan/gui/gui.cc:1041 pan/gui/gui.cc:1666 #: pan/gui/gui.cc:1986 pan/gui/score-add-ui.cc:600 msgid "Pan" msgstr "Pan" #: org.gnome.pan.desktop.in:4 msgid "Newsreader" msgstr "Diskusní klient" #: org.gnome.pan.desktop.in:5 org.gnome.pan.metainfo.xml.in:7 msgid "Read and post Usenet articles" msgstr "Čtení a vystavování příspěvků na síti Usenet" #. Translators: Search terms to find this application. Do NOT translate or localise the semicolons! The list MUST also end with a semicolon! #: org.gnome.pan.desktop.in:7 msgid "usenet;news;newsreader;newsgroup;article;yenc;nzb;" msgstr "usenet;news;diskusní klient;diskusní skupina;příspěvek;yenc;nzb;" #: org.gnome.pan.metainfo.xml.in:6 msgid "Pan Newsreader" msgstr "Diskusní klient" #: org.gnome.pan.metainfo.xml.in:9 msgid "" "Pan is a Usenet newsreader that is good at both text and binaries. It " "supports offline reading, scoring and killfiles, yEnc, NZB, PGP handling, " "multiple servers, and secure connections." msgstr "" "Pan je diskusní klient, který si umí poradit s textovými i binárními " "příspěvky. Podporuje práci v režimu offline, hodnocení, killfiles, yEnc, " "NZB, práci s PGP a více servery a zabezpečené připojení." #: org.gnome.pan.metainfo.xml.in:12 msgid "" "It is also the only Unix newsreader to get a perfect score on the Good Net-" "Keeping Seal of Approval evaluations." msgstr "" "Jedná se o jediný diskusní klient, který získal nejlepší možné hodnocení v " "rámci Good Net-Keeping Seal of Approval." #: pan/data/article-cache.cc:144 pan/data/encode-cache.cc:62 #, c-format msgid "Error opening directory: \"%s\": %s" msgstr "Chyba při otevírání adresáře: „%s“: %s" #: pan/data/article-cache.cc:235 pan/data/article-cache.cc:244 #: pan/data-impl/data-io.cc:278 pan/data-impl/data-io.cc:310 #: pan/gui/post-ui.cc:1698 #, c-format msgid "Unable to save \"%s\" %s" msgstr "Nelze uložit „%s“ %s" #: pan/data/article-cache.cc:362 #, c-format msgid "Error opening file \"%s\" %s" msgstr "Chyba při otevírání souboru „%s“ %s" #: pan/data/article-cache.cc:393 pan/data-impl/profiles.cc:175 #: pan/data-impl/server.cc:478 pan/general/file-util.cc:311 #: pan/gui/post-ui.cc:567 pan/gui/task-pane.cc:740 #, c-format msgid "Error reading file \"%s\": %s" msgstr "Chyba při čtení souboru „%s“: %s" #: pan/data/cert-store.cc:259 #, c-format msgid "Error opening SSL certificate directory: \"%s\": %s" msgstr "Chyba při otevírání adresáře s certifikátem SSL: „%s“: %s" #: pan/data/cert-store.cc:290 #, c-format msgid "Successfully added %d SSL PEM certificate(s) to Certificate Store." msgstr "Úspěšně přidaných certifikátů SSL PEM do Úložiště certifikátů: %d." #: pan/data/cert-store.cc:310 msgid "" "Error initializing Certificate Store. Check that the permissions for the " "folders ~/.pan2 and ~/.pan2/ssl_certs are set correctly. Fatal, exiting." msgstr "" "Chyba při spouštění Úložiště certifikátů. Zkontrolujte, že jsou práva ke " "složkám ~/.pan2 a ~/.pan2/ssl_certs nastavena správně. Kritická chyba, " "ukončuje se." #: pan/data/cert-store.cc:359 #, c-format msgid "Could not export certificate for server: %s" msgstr "Export certifikátu serveru se nezdařil: %s" #. load_group_descriptions (*_data_io); #: pan/data-impl/data-impl.cc:119 #, c-format msgid "Loaded data backend in %.1f seconds" msgstr "Data nahrána během %.1f sekund" #: pan/data-impl/data-impl.cc:155 msgid "Pan Newsreader's server passwords" msgstr "Hesla serverů čtečky Pan" #: pan/data-impl/groups.cc:104 #, c-format msgid "Skipping newsrc file for server \"%s\"" msgstr "Přeskakuje se soubor newsrc serveru „%s“" #: pan/data-impl/headers.cc:618 #, c-format msgid "Expired %lu old articles from \"%s\"" msgstr "Vypršelo %lu starých příspěvků v „%s“" #: pan/data-impl/headers.cc:625 #, c-format msgid "" "Unsupported data version for %s headers: %d.\n" "Are you running an old version of Pan by accident?" msgstr "" "Nepodporovaná verze dat záhlaví %s: %d.\n" "Není omylem spuštěna starší verze aplikace Pan?" #: pan/data-impl/headers.cc:640 #, c-format msgid "Loaded %llu articles for \"%s\" in %.1f seconds (%.0f per second)" msgstr "Načteno %llu příspěvků v „%s“ za %.1f sekund (%.0f za sekundu)" #: pan/data-impl/headers.cc:869 #, c-format msgid "" "Saved %lu parts, %lu articles in \"%s\" in %.1f seconds (%.0f articles/sec)" msgstr "Uloženo %lu částí, %lu příspěvků v „%s“ za %.1f sekund (%.0f přísp./s)" #: pan/data-impl/headers.cc:1202 #, c-format msgid "Added %lu articles to %s." msgstr "Přidáno %lu příspěvků do %s." #: pan/data-impl/server.cc:250 #, c-format msgid "Received no password from libsecret for server %s." msgstr "Pro server %s nebylo od libsecret získáno žádné heslo." #: pan/data-impl/xover.cc:241 #, c-format msgid "Error reading from %s: unknown group \"%s\"" msgstr "Chyba při čtení z %s: neznámá skupina „%s“" #: pan/general/e-util.cc:164 msgid "%l:%M %p" msgstr "%H:%M" #: pan/general/e-util.cc:165 msgid "Today %l:%M %p" msgstr "Dnes, %H:%M" #: pan/general/e-util.cc:166 msgid "%a %l:%M %p" msgstr "%a, %H:%M" #: pan/general/e-util.cc:167 msgid "%b %d %l:%M %p" msgstr "%e. %b %H:%M" #: pan/general/e-util.cc:168 msgid "%b %d %Y" msgstr "%e. %b %Y" #: pan/general/e-util.cc:200 msgid "?" msgstr "?" #: pan/general/text-match.cc:194 #, c-format msgid "Can't use regular expression \"%s\": %s" msgstr "Nelze použít regulární výraz „%s“: %s" #: pan/general/utf8-utils.cc:212 msgid "Couldn't determine article encoding. Non-UTF8 characters were removed." msgstr "Nelze určit kódování příspěvku. Znaky mimo UTF-8 byly odstraněny." #: pan/gui/actions.cc:306 pan/gui/post-ui.cc:382 msgid "_File" msgstr "_Soubor" #: pan/gui/actions.cc:307 pan/gui/post-ui.cc:383 msgid "_Edit" msgstr "_Upravit" #: pan/gui/actions.cc:308 pan/gui/prefs-ui.cc:1157 msgid "_Layout" msgstr "Rozvržení pane_lů" #: pan/gui/actions.cc:309 msgid "_Group Pane" msgstr "Panel _skupin" #: pan/gui/actions.cc:310 msgid "_Header Pane" msgstr "Panel _záhlaví" #: pan/gui/actions.cc:311 msgid "_Body Pane" msgstr "Panel _těla příspěvku" #: pan/gui/actions.cc:312 msgid "_View" msgstr "_Zobrazit" #: pan/gui/actions.cc:313 msgid "Filte_r" msgstr "Filt_r" #: pan/gui/actions.cc:314 msgid "_Go" msgstr "_Přejít" #: pan/gui/actions.cc:315 pan/gui/prefs-ui.cc:1207 msgid "_Actions" msgstr "_Akce" #: pan/gui/actions.cc:316 msgid "_Articles" msgstr "Příspě_vky" #: pan/gui/actions.cc:317 msgid "G_roups" msgstr "S_kupiny" #: pan/gui/actions.cc:318 pan/gui/actions.cc:319 msgid "_Post" msgstr "V_ystavit" #: pan/gui/actions.cc:320 msgid "_Help" msgstr "_Nápověda" #: pan/gui/actions.cc:323 msgid "_Read Group" msgstr "_Přečíst skupinu" #: pan/gui/actions.cc:324 msgid "Read Group" msgstr "Přečíst skupinu" #: pan/gui/actions.cc:328 msgid "_Mark Selected Groups Read" msgstr "_Označit vybrané skupiny jako přečtené" #: pan/gui/actions.cc:329 msgid "Mark Selected Groups Read" msgstr "Označit vybrané skupiny jako přečtené" #: pan/gui/actions.cc:333 msgid "_Delete Selected Groups' Articles" msgstr "_Smazat příspěvky z vybraných skupin" #: pan/gui/actions.cc:334 msgid "Delete Selected Groups' Articles" msgstr "Smazat příspěvky z vybraných skupin" #: pan/gui/actions.cc:338 msgid "Get New _Headers in Selected Groups" msgstr "S_táhnout nová záhlaví ve vybraných skupinách" #: pan/gui/actions.cc:339 msgid "Get New Headers in Selected Groups" msgstr "Stáhne nová záhlaví ve vybraných skupinách" #: pan/gui/actions.cc:343 pan/gui/actions.cc:348 msgid "Get New _Headers in Subscribed Groups" msgstr "Stá_hnout nová záhlaví v odebíraných skupinách" #: pan/gui/actions.cc:344 pan/gui/actions.cc:349 msgid "Get New Headers in Subscribed Groups" msgstr "Stáhne nová záhlaví v odebíraných skupinách" #: pan/gui/actions.cc:353 msgid "Get _Headers..." msgstr "Stáh_nout nová záhlaví…" #: pan/gui/actions.cc:354 msgid "Get Headers..." msgstr "Stáhne nová záhlaví…" #: pan/gui/actions.cc:358 pan/gui/actions.cc:359 msgid "Refresh Group List" msgstr "Obnovit seznam skupin" #: pan/gui/actions.cc:363 msgid "_Subscribe" msgstr "O_debírat" #: pan/gui/actions.cc:364 msgid "Subscribe" msgstr "Odebírat" #: pan/gui/actions.cc:368 msgid "_Unsubscribe" msgstr "Zr_ušit odebírání" #: pan/gui/actions.cc:369 msgid "Unsubscribe" msgstr "Zrušit odebírání" #: pan/gui/actions.cc:373 msgid "_Save Articles..." msgstr "_Uložit příspěvky…" #: pan/gui/actions.cc:374 msgid "Save Articles..." msgstr "Uloží příspěvky…" #: pan/gui/actions.cc:378 msgid "Save Articles from Selected _NZB..." msgstr "Uložit _příspěvky z vybraného souboru NZB…" #: pan/gui/actions.cc:379 msgid "Save Articles from Selected NZB" msgstr "Uložit příspěvky z vybraného souboru NZB" #: pan/gui/actions.cc:383 msgid "Save Articles to an NZB _File..." msgstr "U_ložit příspěvky do souboru NZB…" #: pan/gui/actions.cc:384 msgid "Save Articles to an NZB File" msgstr "Uložit příspěvky do souboru NZB" #: pan/gui/actions.cc:388 pan/gui/actions.cc:389 msgid "Print" msgstr "Tisk" #: pan/gui/actions.cc:393 msgid "_Import NZB Files..." msgstr "_Importovat soubory NZB…" #: pan/gui/actions.cc:398 msgid "_Cancel Last Task" msgstr "Z_rušit poslední úlohu" #: pan/gui/actions.cc:403 msgid "_Task Manager" msgstr "Sprá_vce úloh" #: pan/gui/actions.cc:408 msgid "_Event Log" msgstr "Záz_nam událostí" #: pan/gui/actions.cc:413 msgid "_Quit" msgstr "U_končit" #: pan/gui/actions.cc:418 msgid "Select _All Articles" msgstr "Vy_brat všechny příspěvky" #: pan/gui/actions.cc:423 msgid "_Deselect All Articles" msgstr "Zrušit výběr vše_ch příspěvků" #: pan/gui/actions.cc:428 msgid "Add Su_bthreads to Selection" msgstr "Přidat do výběru podřazená v_lákna" #: pan/gui/actions.cc:433 msgid "Add _Threads to Selection" msgstr "Přidat do výběru _vlákna" #: pan/gui/actions.cc:438 msgid "Add _Similar Articles to Selection" msgstr "Přidat do výběru podobné příspěv_ky" #: pan/gui/actions.cc:443 msgid "Select Article _Body" msgstr "Vybr_at tělo příspěvku" #: pan/gui/actions.cc:448 msgid "Edit _Preferences" msgstr "Upravit _předvolby" #: pan/gui/actions.cc:453 msgid "Edit Selected _Group's Preferences" msgstr "Upravit _nastavení vybrané skupiny" #: pan/gui/actions.cc:458 msgid "Edit S_core File" msgstr "Upravit soubor hodno_cení" #: pan/gui/actions.cc:463 pan/gui/post-ui.cc:399 msgid "Edit P_osting Profiles" msgstr "Upravit _profily" #: pan/gui/actions.cc:468 msgid "Edit _News Servers" msgstr "Upravit servery _diskusních skupin" #: pan/gui/actions.cc:473 msgid "Jump to _Group Tab" msgstr "Přejít na kartu _skupin" #: pan/gui/actions.cc:478 msgid "Jump to _Header Tab" msgstr "Přejít na kartu zá_hlaví" #: pan/gui/actions.cc:483 msgid "Jump to _Body Tab" msgstr "Přejít na kartu _těla příspěvku" #: pan/gui/actions.cc:488 msgid "_Rot13 Selected Text" msgstr "Ši_frovat označený text pomocí ROT13" #: pan/gui/actions.cc:493 msgid "Clear _Header Pane" msgstr "V_ymazat panel záhlaví" #: pan/gui/actions.cc:498 msgid "Clear _Body Pane" msgstr "Vy_mazat panel těla příspěvku" #: pan/gui/actions.cc:503 msgid "Cache Article" msgstr "Uložit příspěvek do mezipaměti" #: pan/gui/actions.cc:508 msgid "Read Article" msgstr "Přečíst příspěvek" #: pan/gui/actions.cc:513 msgid "Show Article Information" msgstr "Zobrazit informace o příspěvku" #: pan/gui/actions.cc:518 msgid "Read _More" msgstr "Pok_račovat ve čtení" #: pan/gui/actions.cc:519 msgid "Read More" msgstr "Pokračuje ve čtení" #: pan/gui/actions.cc:523 msgid "Read _Back" msgstr "Vrátit s_e ve čtení" #: pan/gui/actions.cc:524 msgid "Read Back" msgstr "Vrátit se ve čtení" #: pan/gui/actions.cc:528 msgid "Next _Unread Group" msgstr "Následující nepřečtená skupin_a" #: pan/gui/actions.cc:533 msgid "Next _Group" msgstr "Násled_ující skupina" #: pan/gui/actions.cc:538 msgid "Next _Unread Article" msgstr "_Následující nepřečtený příspěvek" #: pan/gui/actions.cc:539 msgid "Next Unread Article" msgstr "Následující nepřečtený příspěvek" #: pan/gui/actions.cc:543 msgid "Next _Article" msgstr "Následující příspěve_k" #: pan/gui/actions.cc:544 msgid "Next Article" msgstr "Následující příspěvek" #: pan/gui/actions.cc:548 msgid "Next _Watched Article" msgstr "Následující sledo_vaný příspěvek" #: pan/gui/actions.cc:553 msgid "Next Unread _Thread" msgstr "Následující nepřeč_tené vlákno" #: pan/gui/actions.cc:554 msgid "Next Unread Thread" msgstr "Následující nepřečtené vlákno" #: pan/gui/actions.cc:558 msgid "Next Threa_d" msgstr "Násle_dující vlákno" #: pan/gui/actions.cc:563 msgid "Pre_vious Article" msgstr "Před_cházející příspěvek" #: pan/gui/actions.cc:568 msgid "Previous _Thread" msgstr "Předcháze_jící vlákno" #: pan/gui/actions.cc:573 msgid "_Parent Article" msgstr "Nadřazený _příspěvek" #: pan/gui/actions.cc:578 msgid "Ignore _Author" msgstr "_Ignorovat autora" #: pan/gui/actions.cc:582 msgid "_Watch Thread" msgstr "Sledovat _vlákno" #: pan/gui/actions.cc:587 msgid "_Ignore Thread" msgstr "I_gnorovat vlákno" #: pan/gui/actions.cc:592 pan/gui/actions.cc:593 msgid "_Toggle Flag On/Off for Thread" msgstr "Označi_t/zrušit označení vlákna" #: pan/gui/actions.cc:597 pan/gui/actions.cc:598 msgid "_Turn Flag Off for Thread" msgstr "Zruši_t označení vlákna" #: pan/gui/actions.cc:602 pan/gui/actions.cc:603 msgid "_Select All Flagged Threads" msgstr "V_ybrat všechna označená vlákna" #: pan/gui/actions.cc:607 pan/gui/actions.cc:608 msgid "_Go to Next Flagged Thread" msgstr "_Přejít na následující označené vlákno" #: pan/gui/actions.cc:612 pan/gui/actions.cc:613 msgid "_Go to Last Flagged Thread" msgstr "_Přejít na poslední označené vlákno" #: pan/gui/actions.cc:617 pan/gui/actions.cc:618 msgid "_Invert Selection" msgstr "Obrát_it výběr" #: pan/gui/actions.cc:622 msgid "Edit Article's Watch/Ignore/Score..." msgstr "Upravit sledování/ignorování/hodnocení příspěvku…" #: pan/gui/actions.cc:627 msgid "Add a _Scoring Rule..." msgstr "Přidat _nové pravidlo…" #: pan/gui/actions.cc:632 msgid "Cance_l Article..." msgstr "_Zrušit příspěvek…" #: pan/gui/actions.cc:637 msgid "_Supersede Article..." msgstr "_Nahradit příspěvek…" #: pan/gui/actions.cc:642 msgid "_Delete Article" msgstr "S_mazat příspěvek" #: pan/gui/actions.cc:647 msgid "Clear Article Cache" msgstr "Vymazat mezipaměť příspěvků" #: pan/gui/actions.cc:652 msgid "_Mark Article as Read" msgstr "_Označit příspěvek jako přečtený" #: pan/gui/actions.cc:657 msgid "Mark Article as _Unread" msgstr "O_značit příspěvek jako nepřečtený" #: pan/gui/actions.cc:663 msgid "_Mark Thread as Read" msgstr "_Označit vlákno jako přečtené" #: pan/gui/actions.cc:668 msgid "Mark Thread as _Unread" msgstr "O_značit vlákno jako nepřečtené" #: pan/gui/actions.cc:673 msgid "_Post to Newsgroup" msgstr "Vystav_it v diskusní skupině" #: pan/gui/actions.cc:674 msgid "Post to Newsgroup" msgstr "Vystaví v diskusní skupině" #: pan/gui/actions.cc:678 msgid "_Followup to Newsgroup" msgstr "O_dpovědět v diskusní skupině" #: pan/gui/actions.cc:679 msgid "Followup to Newsgroup" msgstr "Odpoví v diskusní skupině" #: pan/gui/actions.cc:683 msgid "_Reply to Author in Mail" msgstr "Odpovědět _autorovi e-mailem" #: pan/gui/actions.cc:689 msgid "_Contents" msgstr "Ob_sah" #: pan/gui/actions.cc:695 msgid "_Pan Home Page" msgstr "Domo_vská stránka aplikace Pan" #: pan/gui/actions.cc:700 msgid "Give _Feedback or Report a Bug..." msgstr "Sdělit názor nebo oznámit chy_bu…" #: pan/gui/actions.cc:705 msgid "_About" msgstr "_O aplikaci" #: pan/gui/actions.cc:710 msgid "Edit _SSL Certificates" msgstr "Upravit certifikáty _SSL" #: pan/gui/actions.cc:725 msgid "_Thread Headers" msgstr "_Třídit záhlaví do vláken" #: pan/gui/actions.cc:726 msgid "Wrap Article Body" msgstr "Zalamovat tělo příspěvku" #: pan/gui/actions.cc:727 msgid "Show Article Signature" msgstr "Zobrazit podpis příspěvku" #: pan/gui/actions.cc:728 msgid "Mute _Quoted Text" msgstr "Nezobrazovat _citovaný text" #: pan/gui/actions.cc:729 msgid "Show All _Headers in Body Pane" msgstr "Zobrazovat v panelu těla příspěvku všechna zá_hlaví" #: pan/gui/actions.cc:730 msgid "Show _Smilies as Graphics" msgstr "Zobrazovat _emotikony jako grafiku" #: pan/gui/actions.cc:731 msgid "Show *Bold*, __Underlined__, and /Italic/" msgstr "Zobrazovat *tučný*, __podtržený__ text a /kurzívu/" #: pan/gui/actions.cc:732 msgid "Size Pictures to _Fit" msgstr "Zob_razovat obrázky tak, aby se vešly do okna" #: pan/gui/actions.cc:733 msgid "Use _Monospace Font" msgstr "Používat _neproporcionální písmo" #: pan/gui/actions.cc:734 msgid "Set Focus to Images" msgstr "Zaměřovat na obrázky" #: pan/gui/actions.cc:735 msgid "Highlight _URLs" msgstr "Zvýrazňovat _URL" #: pan/gui/actions.cc:738 msgid "_Work Online" msgstr "_Pracovat online" #: pan/gui/actions.cc:739 msgid "_Tabbed Layout" msgstr "Roz_vržení s kartami" #: pan/gui/actions.cc:740 msgid "Show Group _Pane" msgstr "Zobrazovat _panel skupin" #: pan/gui/actions.cc:741 msgid "Show Hea_der Pane" msgstr "Zobrazovat pane_l záhlaví" #: pan/gui/actions.cc:742 msgid "Show Bod_y Pane" msgstr "Zobr_azovat panel těla příspěvku" #: pan/gui/actions.cc:743 msgid "Show _Toolbar" msgstr "Zobrazovat _nástrojovou lištu" #: pan/gui/actions.cc:744 msgid "Abbreviate Group Names" msgstr "Zkracovat názvy diskusních skupin" #: pan/gui/actions.cc:746 msgid "Match Only _Read Articles" msgstr "Vyhovují pouze _přečtené příspěvky" #: pan/gui/actions.cc:746 msgid "Match Only Read Articles" msgstr "Vyhovují pouze přečtené příspěvky" #: pan/gui/actions.cc:747 msgid "Match Only _Unread Articles" msgstr "Vyhovují pouze _nepřečtené příspěvky" #: pan/gui/actions.cc:747 msgid "Match Only Unread Articles" msgstr "Vyhovují pouze nepřečtené příspěvky" #: pan/gui/actions.cc:748 msgid "Match Only _Cached Articles" msgstr "Vyhov_ují pouze příspěvky v mezipaměti" #: pan/gui/actions.cc:748 msgid "Match Only Cached Articles" msgstr "Vyhovují pouze příspěvky v mezipaměti" #: pan/gui/actions.cc:749 msgid "Match Only _Complete Articles" msgstr "Vyhovují pouze _kompletní příspěvky" #: pan/gui/actions.cc:749 msgid "Match Only Complete Articles" msgstr "Vyhovují pouze kompletní příspěvky" #: pan/gui/actions.cc:750 msgid "Match Only _My Articles" msgstr "Vyhovují pouze _mé příspěvky" #: pan/gui/actions.cc:750 msgid "Match Only My Articles" msgstr "Vyhovují pouze mé příspěvky" #: pan/gui/actions.cc:751 msgid "Match Only _Watched Articles" msgstr "Vyhovují pouze _sledované příspěvky" #: pan/gui/actions.cc:751 msgid "Match Only Watched Articles" msgstr "Vyhovují pouze sledované příspěvky" #: pan/gui/actions.cc:753 msgid "Match Scores of 9999 (_Watched)" msgstr "Vyhovují příspěvky s hodnocením 9999 (s_ledované)" #: pan/gui/actions.cc:754 msgid "Match Scores of 5000...9998 (_High)" msgstr "Vyhovují _příspěvky s hodnocením 5000 ‥ 9998 (vysoké)" #: pan/gui/actions.cc:755 msgid "Match Scores of 1...4999 (Me_dium)" msgstr "Vy_hovují příspěvky s hodnocením 1 ‥ 4999 (střední)" #: pan/gui/actions.cc:756 msgid "Match Scores of 0 (_Normal)" msgstr "Vyh_ovují příspěvky s hodnocením 0 (běžné)" #: pan/gui/actions.cc:757 msgid "Match Scores of -9998...-1 (_Low)" msgstr "Vyhovují příspěvky s hodnocením -9998 ‥ -1 (ní_zké)" #: pan/gui/actions.cc:758 msgid "Match Scores of -9999 (_Ignored)" msgstr "Vyhovují příspěvky s hodnocením -9999 (i_gnorované)" #: pan/gui/actions.cc:760 msgid "Enable/Disable All _Rules" msgstr "Zapnout/vypnout všechna p_ravidla" #: pan/gui/actions.cc:788 msgid "Show Matching _Articles" msgstr "Zobr_azovat vyhovující příspěvky" #: pan/gui/actions.cc:789 msgid "Show Matching Articles' _Threads" msgstr "Zobrazo_vat vlákna vyhovujících příspěvků" #: pan/gui/actions.cc:790 msgid "Show Matching Articles' _Subthreads" msgstr "Zobrazovat podřazená vlákna vyhovují_cích příspěvků" #: pan/gui/body-pane.cc:1040 msgid "Unnamed File" msgstr "Soubor bez názvu" #: pan/gui/body-pane.cc:1121 pan/gui/gui.cc:1957 pan/gui/header-pane.cc:1306 #: pan/gui/header-pane.cc:1735 pan/gui/post-ui.cc:2572 pan/gui/prefs-ui.cc:896 #: pan/gui/score-add-ui.cc:139 pan/gui/task-pane.cc:795 msgid "Subject" msgstr "Předmět" #: pan/gui/body-pane.cc:1123 pan/gui/gui.cc:1957 msgid "From" msgstr "Odesílatel" #: pan/gui/body-pane.cc:1125 pan/gui/gui.cc:1958 pan/gui/header-pane.cc:1814 #: pan/gui/log-ui.cc:308 pan/gui/prefs-ui.cc:892 msgid "Date" msgstr "Datum" #: pan/gui/body-pane.cc:1132 msgid "Newsgroups" msgstr "Diskusní skupiny" #: pan/gui/body-pane.cc:1139 pan/gui/body-pane.cc:1147 #: pan/gui/body-pane.cc:1154 msgid "User-Agent" msgstr "User-Agent" #: pan/gui/body-pane.cc:1160 msgid "Followup-To" msgstr "Odpovědi vystavit na" #: pan/gui/body-pane.cc:1170 msgid "Reply-To" msgstr "Odpovědi zaslat na" #: pan/gui/body-pane.cc:1218 msgid " from " msgstr " od " #: pan/gui/body-pane.cc:1220 msgid " at " msgstr " v " #: pan/gui/body-pane.cc:1309 #, c-format msgid "" "This is a PGP-Signed message.\n" "\n" "Signer: %s ('%s')\n" "Valid until: %s\n" "Created on: %s" msgstr "" "Toto je zpráva podepsaná s PGP.\n" "\n" "Podepsaný: %s („%s“)\n" "Platnost do: %s\n" "Vytvořeno: %s" #: pan/gui/body-pane.cc:1314 msgid "always" msgstr "vždy" #: pan/gui/body-pane.cc:1533 msgid "Copy _URL" msgstr "Kopírovat _URL" #: pan/gui/body-pane.cc:1720 msgid "Save Attachment As..." msgstr "Uložit přílohu jako…" #: pan/gui/body-pane.cc:1723 msgid "Save All Attachments" msgstr "Uložit všechny přílohy" #: pan/gui/body-pane.cc:1794 msgid "Attachments:" msgstr "Přílohy:" #: pan/gui/body-pane.cc:1814 msgid "Text View" msgstr "Zobrazení textu" #: pan/gui/body-pane.cc:1823 msgid "HTML View" msgstr "Zobrazení HTML" #: pan/gui/dl-headers-ui.cc:125 #, c-format msgid "%d Group" msgid_plural "%d Groups" msgstr[0] "%d skupina" msgstr[1] "%d skupiny" msgstr[2] "%d skupin" #: pan/gui/dl-headers-ui.cc:148 msgid "Get the last N _days' headers: " msgstr "Stá_hnout záhlaví za posledních N dnů: " #: pan/gui/dl-headers-ui.cc:156 msgid "Get _new headers" msgstr "Stáh_nout nová záhlaví" #: pan/gui/dl-headers-ui.cc:160 msgid "Get _all headers" msgstr "Stáhnout všechn_a záhlaví" #: pan/gui/dl-headers-ui.cc:164 msgid "Get the _latest N headers: " msgstr "Stáhnout _posledních N záhlaví: " #: pan/gui/e-action-combo-box.c:386 pan/gui/prefs-ui.cc:889 msgid "Action" msgstr "Akce" #: pan/gui/e-action-combo-box.c:387 msgid "A GtkRadioAction" msgstr "A GtkRadioAction" #: pan/gui/e-charset.c:51 pan/gui/task-pane.cc:561 msgid "Unknown" msgstr "Neznámé" #: pan/gui/e-charset.c:52 msgid "Arabic" msgstr "Arabská" #: pan/gui/e-charset.c:53 msgid "Baltic" msgstr "Pobaltská" #: pan/gui/e-charset.c:54 msgid "Central European" msgstr "Středoevropská" #: pan/gui/e-charset.c:55 msgid "Chinese" msgstr "Čínská" #: pan/gui/e-charset.c:56 msgid "Cyrillic" msgstr "Azbuka" #: pan/gui/e-charset.c:57 msgid "Greek" msgstr "Řecká" #: pan/gui/e-charset.c:58 msgid "Hebrew" msgstr "Hebrejská" #: pan/gui/e-charset.c:59 msgid "Japanese" msgstr "Japonská" #: pan/gui/e-charset.c:60 msgid "Korean" msgstr "Korejská" #: pan/gui/e-charset.c:61 msgid "Thai" msgstr "Thajská" #: pan/gui/e-charset.c:62 msgid "Turkish" msgstr "Turecká" #: pan/gui/e-charset.c:63 msgid "Unicode" msgstr "Unicode" #: pan/gui/e-charset.c:64 msgid "Western European" msgstr "Západoevropská" #: pan/gui/e-charset.c:65 msgid "Western European, New" msgstr "Západoevropská, nová" #: pan/gui/e-charset.c:84 pan/gui/e-charset.c:85 pan/gui/e-charset.c:86 msgid "Traditional" msgstr "Tradiční" #: pan/gui/e-charset.c:87 pan/gui/e-charset.c:88 pan/gui/e-charset.c:89 #: pan/gui/e-charset.c:90 msgid "Simplified" msgstr "Zjednodušená" #: pan/gui/e-charset.c:93 msgid "Ukrainian" msgstr "Ukrajinská" #: pan/gui/e-charset.c:96 msgid "Visual" msgstr "Vizuální" #: pan/gui/e-charset-combo-box.c:95 pan/gui/gui.cc:2155 pan/gui/post-ui.cc:477 #: pan/gui/prefs-ui.cc:800 msgid "Character Encoding" msgstr "Znaková sada" #: pan/gui/e-charset-combo-box.c:97 pan/gui/e-charset-dialog.c:51 #: pan/gui/score-add-ui.cc:606 pan/gui/task-pane.cc:309 msgid "Cancel" msgstr "Zrušit" #: pan/gui/e-charset-combo-box.c:98 pan/gui/e-charset-dialog.c:52 msgid "OK" msgstr "Budiž" #: pan/gui/e-charset-combo-box.c:119 msgid "Enter the character set to use" msgstr "Zadejte prosím znakovou sadu, která má být použita" #: pan/gui/e-charset-combo-box.c:338 msgid "Other..." msgstr "Jiná…" #: pan/gui/e-cte-dialog.c:76 msgid "Default Encoding" msgstr "Výchozí kódování" #: pan/gui/e-cte-dialog.c:78 msgid "7-Bit Encoding" msgstr "7bitové kódování" #: pan/gui/e-cte-dialog.c:80 msgid "8-Bit Encoding" msgstr "8bitové kódování" #: pan/gui/e-cte-dialog.c:82 msgid "Base64 Encoding" msgstr "Kódování BASE64" #: pan/gui/e-cte-dialog.c:84 msgid "Quoted-Printable Encoding" msgstr "Kódování Quoted-Printable" #: pan/gui/editor-spawner.cc:66 #, c-format msgid "Error parsing \"external editor\" command line: %s (Command was: %s)" msgstr "" "Chyba při analýze příkazu k použití externího editoru: %s (příkaz zněl: %s)" #: pan/gui/editor-spawner.cc:110 #, c-format msgid "Error starting external editor: %s" msgstr "Chyba při spouštění externího editoru: %s" #. Local folders #: pan/gui/group-pane.cc:330 msgid "Sent" msgstr "Odeslané" #: pan/gui/group-pane.cc:330 msgid "Drafts" msgstr "Koncepty" #: pan/gui/group-pane.cc:540 msgid "Group" msgstr "Skupina" #: pan/gui/group-pane.cc:540 msgid "Group (regex)" msgstr "Skupina (reg. výraz)" #: pan/gui/group-pane.cc:985 msgid "Local Folders" msgstr "Místní složky" #: pan/gui/group-pane.cc:986 msgid "Subscribed Groups" msgstr "Odebírané skupiny" #: pan/gui/group-pane.cc:987 msgid "Other Groups" msgstr "Ostatní skupiny" #: pan/gui/group-pane.cc:1028 pan/gui/score-view-ui.cc:156 msgid "Name" msgstr "Název" #: pan/gui/group-prefs-dialog.cc:161 msgid "No Profiles defined in Edit|Posting Profiles." msgstr "V nabídce Upravit → Profily nebyly zadány žádné profily." #: pan/gui/group-prefs-dialog.cc:264 msgid "Pan: Group Preferences" msgstr "Pan: Nastavení skupin" #: pan/gui/group-prefs-dialog.cc:279 msgid "Properties for Groups" msgstr "Vlastnosti skupin" #: pan/gui/group-prefs-dialog.cc:281 #, c-format msgid "Properties for %s" msgstr "Vlastnosti %s" #: pan/gui/group-prefs-dialog.cc:292 msgid "Character _encoding:" msgstr "Zn_aková sada:" #: pan/gui/group-prefs-dialog.cc:294 msgid "Directory for Saving Attachments" msgstr "Adresář na ukládání příloh" #: pan/gui/group-prefs-dialog.cc:302 msgid "Directory for _saving attachments:" msgstr "Adresář _na ukládání příloh:" #: pan/gui/group-prefs-dialog.cc:304 msgid "Posting _profile:" msgstr "_Profil:" #: pan/gui/group-prefs-dialog.cc:309 msgid "Spellchecker _language:" msgstr "Jazyk kontro_ly pravopisu:" #: pan/gui/group-prefs-dialog.cc:312 msgid "Group color:" msgstr "Barva skupiny:" #: pan/gui/gui.cc:312 msgid "Open the Task Manager" msgstr "Otevřít Správce úloh" #: pan/gui/gui.cc:335 msgid "Open the Event Log" msgstr "Otevřít Záznam událostí" #: pan/gui/gui.cc:611 msgid "Save NZB's Files" msgstr "Uložit soubory NZB" #: pan/gui/gui.cc:638 msgid "Untitled.nzb" msgstr "Bez názvu.nzb" #: pan/gui/gui.cc:640 msgid "Save NZB File as..." msgstr "Uložit soubor NZB jako…" #: pan/gui/gui.cc:809 msgid "Import NZB Files" msgstr "Importovat soubory NZB" #: pan/gui/gui.cc:817 pan/gui/post-ui.cc:3280 msgid "NZB Files" msgstr "Soubory NZB" #: pan/gui/gui.cc:822 msgid "All Files" msgstr "Všechny soubory" #: pan/gui/gui.cc:1336 msgid "Unable to supersede article." msgstr "Nelze nahradit příspěvek." #: pan/gui/gui.cc:1337 pan/gui/gui.cc:1413 msgid "The article doesn't match any of your posting profiles." msgstr "Příspěvek neodpovídá žádnému z vašich profilů." #: pan/gui/gui.cc:1386 msgid "Revise and send this article to replace the old one." msgstr "" "Upravte a odešlete prosím tento příspěvek, chcete-li jím nahradit ten starý." #: pan/gui/gui.cc:1387 pan/gui/gui.cc:1451 msgid "Be patient! It will take time for your changes to take effect." msgstr "Buďte prosím trpěliví. Změny se neprojeví ihned." #: pan/gui/gui.cc:1412 msgid "Unable to cancel article." msgstr "Nelze zrušit příspěvek." #: pan/gui/gui.cc:1450 msgid "Send this article to ask your server to cancel your other one." msgstr "" "Odešlete prosím tento příspěvek, aby mohl být server požádán o zrušení " "druhého příspěvku." #: pan/gui/gui.cc:1468 msgid "You have marked some articles for deletion." msgstr "Některé příspěvky jste označili ke smazání." #: pan/gui/gui.cc:1469 msgid "Are you sure you want to delete them?" msgstr "Opravdu je chcete smazat?" #: pan/gui/gui.cc:1495 msgid "Do you want to accept it permanently? (You can change this later.)" msgstr "Chcete jej přijmout natrvalo? (Později lze provést změnu.)" #: pan/gui/gui.cc:1641 msgid "Unable to open help file." msgstr "Nelze otevřít soubor s nápovědou." #: pan/gui/gui.cc:1669 msgid "Copyright © 2002-2021 Charles Kerr and others" msgstr "Copyright © 2002-2021 Charles Kerr a další" #: pan/gui/gui.cc:1674 msgid "translator-credits" msgstr "" "Michal Bukovjan \n" "Miloslav Trmač \n" "Petr Kovář \n" "Daniel Rusek " #: pan/gui/gui.cc:1802 msgid "_1. Group Pane" msgstr "_1. Panel skupin" #: pan/gui/gui.cc:1803 msgid "_2. Header Pane" msgstr "_2. Panel záhlaví" #: pan/gui/gui.cc:1804 msgid "_3. Body Pane" msgstr "_3. Panel těla příspěvku" #: pan/gui/gui.cc:1894 pan/gui/gui.cc:1909 msgid " Bytes" msgstr " bajtů" #: pan/gui/gui.cc:1897 msgid " KB" msgstr " KB" #: pan/gui/gui.cc:1900 msgid " MB" msgstr " MB" #: pan/gui/gui.cc:1903 msgid " GB" msgstr " GB" #: pan/gui/gui.cc:1906 msgid " TB" msgstr " TB" #: pan/gui/gui.cc:1938 #, c-format msgid "This article is complete with %d part." msgid_plural "This article has all %d parts." msgstr[0] "Tento příspěvek je kompletní s %d částí." msgstr[1] "Tento příspěvek je kompletní se %d částmi." msgstr[2] "Tento příspěvek má všech %d částí." #: pan/gui/gui.cc:1940 #, c-format msgid "This article is missing %d part." msgid_plural "This article is missing %d of its %d parts:" msgstr[0] "Tomuto příspěvku schází %d část." msgstr[1] "Tomuto příspěvku schází %d z celkových %d částí:" msgstr[2] "Tomuto příspěvku schází %d z celkových %d částí:" #: pan/gui/gui.cc:1958 pan/gui/header-pane.cc:1308 pan/gui/task-pane.cc:797 msgid "Message-ID" msgstr "ID zprávy" #: pan/gui/gui.cc:1959 pan/gui/header-pane.cc:1783 pan/gui/prefs-ui.cc:893 msgid "Lines" msgstr "Řádků" #: pan/gui/gui.cc:1959 msgid "Size" msgstr "Velikost" #: pan/gui/gui.cc:1960 pan/gui/header-pane.cc:1799 pan/gui/prefs-ui.cc:891 msgid "Bytes" msgstr "Bajtů" #: pan/gui/gui.cc:2010 msgid "" "Error loading iconv library. Encoding certain character sets will not work " "in GUI." msgstr "" "Chyba při nahrávání knihovny iconv. Kódování některých znakových sad nebude " "v GUI fungovat." #: pan/gui/gui.cc:2156 msgid "Body Pane Encoding" msgstr "Znaková sada panelu těla příspěvku" #: pan/gui/gui.cc:2187 pan/gui/task-pane.cc:612 msgid "Offline" msgstr "Offline" #: pan/gui/gui.cc:2191 #, c-format msgid "Closing %d connection" msgid_plural "Closing %d connections" msgstr[0] "Uzavírání %d spojení" msgstr[1] "Uzavírání %d spojení" msgstr[2] "Uzavírání %d spojení" #: pan/gui/gui.cc:2193 pan/gui/gui.cc:2223 msgid "No Connections" msgstr "Bez spojení" #: pan/gui/gui.cc:2197 msgid "Connecting" msgstr "Připojování" #: pan/gui/gui.cc:2210 #, c-format msgid "%s: %d idle, %d active @ %.1f KiBps" msgstr "%s: nečinných %d, aktivních %d při %.1f KiB/s" #: pan/gui/gui.cc:2266 msgid "No Tasks" msgstr "Žádné úlohy" #: pan/gui/gui.cc:2268 pan/gui/prefs-ui.cc:1140 msgid "Tasks" msgstr "Úlohy" #: pan/gui/gui.cc:2285 pan/gui/task-pane.cc:478 #, c-format msgid "%lu tasks, %s, %.1f KiBps, ETA %d:%02d:%02d" msgstr "Úloh %lu, %s, %.1f KiB/s, zbývá cca %d:%02d:%02d" #: pan/gui/gui.cc:2337 msgid "" "Pan is now offline. Please see \"File|Event Log\" and correct the problem, " "then use \"File|Work Online\" to continue." msgstr "" "Pan je nyní v režimu offline. Vyberte prosím „Soubor → Záznam událostí“ a " "pokuste se opravit problém, k pokračování je následně nutné vybrat „Soubor → " "Pracovat online“." #: pan/gui/header-pane.cc:1304 pan/gui/task-pane.cc:793 msgid "Subject or Author" msgstr "Předmět či autor" #: pan/gui/header-pane.cc:1305 pan/gui/task-pane.cc:794 msgid "Sub or Auth (regex)" msgstr "Předmět či autor (reg. výraz)" #: pan/gui/header-pane.cc:1307 pan/gui/header-pane.cc:1767 #: pan/gui/prefs-ui.cc:890 pan/gui/score-add-ui.cc:140 pan/gui/task-pane.cc:796 msgid "Author" msgstr "Autor" #: pan/gui/header-pane.cc:1752 pan/gui/prefs-ui.cc:894 msgid "Score" msgstr "Hodnocení" #: pan/gui/log-ui.cc:105 msgid "Save Event List" msgstr "Uložit seznam událostí" #: pan/gui/log-ui.cc:259 msgid "Pan: Events" msgstr "Pan: Události" #: pan/gui/log-ui.cc:318 msgid "Message" msgstr "Zpráva" #: pan/gui/pan.cc:336 msgid "Maximize" msgstr "Maximalizovat" #: pan/gui/pan.cc:376 msgid "An error has occurred!" msgstr "Došlo k chybě!" #: pan/gui/pan.cc:389 msgid "New Articles!" msgstr "Nové příspěvky!" #: pan/gui/pan.cc:390 msgid "" "There are new\n" "articles available." msgstr "" "Jsou dostupné\n" "nové příspěvky." #: pan/gui/pan.cc:470 msgid "" "Thank you for trying Pan!\n" " \n" "To start newsreading, first Add a Server." msgstr "" "Děkujeme vám za vyzkoušení aplikace Pan!\n" " \n" "Chcete-li začít se čtením diskusí, je nutné nejprve přidat server." #: pan/gui/pan.cc:552 msgid "" "General Options\n" " -h, --help Show this usage information and exit.\n" " -v, --version Print release version and exit.\n" " --verbose Be verbose (in non-GUI mode).\n" " --debug Run in debug mode. Use --debug twice for verbose " "debug.\n" " --debug-ssl Run in TLS (aka SSL) debug mode.\n" "\n" "URL Options\n" " headers:group.name Download new headers for the specified " "newsgroup.\n" " news:message-id When specified together with --no-gui, dump\n" " the message-id article to standard output.\n" "\n" "NZB Batch Options\n" " --nzb file1 file2 ... Process NZB files in non-GUI mode.\n" " -o path, --output=path Path to save attachments listed in the NZB " "file(s).\n" " --no-gui Only show console output, not the download " "queue.\n" msgstr "" "Obecné volby\n" " -h, --help Zobrazí tuto nápovědu a skončí.\n" " -v, --version Vypíše verzi vydání a skončí.\n" " --verbose Podrobný výpis (mimo režim GUI).\n" " --debug Spustí se v režimu ladění. Použití --debug " "dvakrát\n" " umožní podrobný výpis v režimu ladění.\n" " --debug-ssl Spustí v režimu TLS (neboli SSL).\n" "\n" "Volby URL\n" " headers:diskusní.skupina Stáhnout nová záhlaví v zadané diskusní skupině.\n" " news:message-id Pokud je zadáno spolu s --no-gui, vypíše\n" " příspěvek message-id do standardního výstupu.\n" "\n" "Volby dávkových NZB\n" " --nzb soubor1 soubor2 … Zpracuje soubory nzb mimo režim GUI.\n" " -o cesta, --output=cesta Cesta k ukládaným přílohám, které jsou zadány v " "souborech NZB.\n" " --no-gui Zobrazí pouze textový výstup, nikoliv pozdržená " "stahování.\n" #: pan/gui/pan.cc:887 msgid "Error: --no-gui used without nzb files or news:message-id." msgstr "Chyba: --no-gui použito bez souborů nzb nebo news:message-id." #: pan/gui/pan.cc:891 #, c-format msgid "Pan %s started" msgstr "Pan %s spuštěn" #: pan/gui/pan.cc:911 msgid "Please configure Pan's news servers before using it as an nzb client." msgstr "" "Před použitím aplikace Pan jako klienta NZB je nutné nastavit servery " "diskusních skupin." #: pan/gui/pan.cc:1031 msgid "Pan notification" msgstr "Oznámení aplikace Pan" #: pan/gui/post-ui.cc:175 #, c-format msgid "Upload queue: %llu tasks, %ld KB (~ %.2f MB) total." msgstr "Fronta nahrávání: %llu úkolů, %ld KB (~ %.2f MB) celkem." #: pan/gui/post-ui.cc:384 msgid "_Profile" msgstr "_Profil" #: pan/gui/post-ui.cc:385 msgid "Set Editor" msgstr "Nastavit editor" #: pan/gui/post-ui.cc:387 msgid "_Send Article" msgstr "_Odeslat příspěvek" #: pan/gui/post-ui.cc:387 msgid "Send Article Now" msgstr "Odešle příspěvek ihned" #: pan/gui/post-ui.cc:388 msgid "_Send and Save Articles to NZB" msgstr "_Odeslat a uložit příspěvky do souboru NZB" #: pan/gui/post-ui.cc:388 msgid "Send and Save Articles to NZB" msgstr "Odeslat a uložit příspěvky do souboru NZB" #: pan/gui/post-ui.cc:389 msgid "Set Character _Encoding..." msgstr "Určit _znakovou sadu…" #: pan/gui/post-ui.cc:390 msgid "Set Content _Transfer Encoding..." msgstr "Nas_tavit záhlaví obsah-přenos-kódování…" #: pan/gui/post-ui.cc:391 msgid "Sa_ve Draft" msgstr "_Uložit koncept" #: pan/gui/post-ui.cc:391 msgid "Save as a Draft for Future Posting" msgstr "Uloží jako koncept s možností pozdějšího vystavení" #: pan/gui/post-ui.cc:392 msgid "_Open Draft..." msgstr "O_tevřít koncept…" #: pan/gui/post-ui.cc:392 msgid "Open an Article Draft" msgstr "Otevře koncept příspěvku" #: pan/gui/post-ui.cc:397 msgid "_Rot13" msgstr "_ROT13" #: pan/gui/post-ui.cc:397 msgid "Rot13 Selected Text" msgstr "Šifruje označený text pomocí ROT13" #: pan/gui/post-ui.cc:398 msgid "Run _Editor" msgstr "Spust_it editor" #: pan/gui/post-ui.cc:398 msgid "Run Editor" msgstr "Spustit editor" #: pan/gui/post-ui.cc:400 msgid "Add _Files to Queue" msgstr "Přidat soubory do _fronty" #: pan/gui/post-ui.cc:400 msgid "Add Files to Queue" msgstr "Přidat soubory do fronty" #: pan/gui/post-ui.cc:415 pan/gui/post-ui.cc:416 msgid "Remove from Queue" msgstr "Odstranit z fronty" #: pan/gui/post-ui.cc:420 pan/gui/post-ui.cc:421 msgid "Clear List" msgstr "Vymazat seznam" #: pan/gui/post-ui.cc:425 pan/gui/post-ui.cc:426 msgid "Select Needed Parts" msgstr "Vybrat požadované části" #: pan/gui/post-ui.cc:430 pan/gui/post-ui.cc:431 pan/gui/task-pane.cc:680 #: pan/gui/task-pane.cc:681 msgid "Move Up" msgstr "Přesunout výš" #: pan/gui/post-ui.cc:435 pan/gui/post-ui.cc:436 pan/gui/task-pane.cc:685 #: pan/gui/task-pane.cc:686 msgid "Move Down" msgstr "Přesunout níž" #: pan/gui/post-ui.cc:440 pan/gui/post-ui.cc:441 msgid "Move to Top" msgstr "Přesunout nejvýše" #: pan/gui/post-ui.cc:445 pan/gui/post-ui.cc:446 msgid "Move to Bottom" msgstr "Přesunout nejníže" #: pan/gui/post-ui.cc:453 msgid "_Wrap Text" msgstr "Zala_movat text" #: pan/gui/post-ui.cc:453 msgid "Wrap Text" msgstr "Zalamovat text" #: pan/gui/post-ui.cc:454 msgid "Always Run Editor" msgstr "Spouštět editor vždy" #: pan/gui/post-ui.cc:455 msgid "Remember Character Encoding for This Group" msgstr "Pamatovat si kódování znaků u této skupiny" #: pan/gui/post-ui.cc:456 msgid "Thread Attached Replies" msgstr "Přiložené odpovědi do vláken" #: pan/gui/post-ui.cc:457 msgid "PGP-Encrypt the Article" msgstr "Šifrovat příspěvek s PGP" #: pan/gui/post-ui.cc:458 msgid "PGP-Sign the Article" msgstr "Podepsat příspěvek s PGP" #: pan/gui/post-ui.cc:459 msgid "Check _Spelling" msgstr "K_ontrolovat pravopis" #: pan/gui/post-ui.cc:478 msgid "New Article's Encoding:" msgstr "Znaková sada nového příspěvku:" #: pan/gui/post-ui.cc:488 msgid "Content Transfer Encoding" msgstr "Záhlaví obsah-přenos-kódování" #: pan/gui/post-ui.cc:489 msgid "New Article's Content Transfer Encoding:" msgstr "Záhlaví obsah-přenos-kódování nového příspěvku:" #: pan/gui/post-ui.cc:673 msgid "Your changes will be lost!" msgstr "Změny nebudou uloženy!" #: pan/gui/post-ui.cc:674 msgid "Close this window and lose your changes?" msgstr "Zavřít toto okno a zahodit veškeré změny?" #: pan/gui/post-ui.cc:719 pan/gui/post-ui.cc:758 msgid "There were problems with this post." msgstr "U tohoto příspěvku se vyskytly problémy." #: pan/gui/post-ui.cc:721 pan/gui/post-ui.cc:760 pan/gui/post-ui.cc:825 msgid "Go Back" msgstr "Vrátit se" #: pan/gui/post-ui.cc:723 msgid "Continue Anyway" msgstr "Přesto pokračovat" #. Prompt the user #: pan/gui/post-ui.cc:752 #, c-format msgid "" "Message uses characters not specified in charset '%s' - possibly use '%s' " msgstr "" "Ve zprávě jsou použité znaky, které nejsou uvedené ve znakové sadě „%s“ – " "možná by bylo vhodné použít „%s“ " #: pan/gui/post-ui.cc:775 msgid "Go _Online" msgstr "Přejít do reži_mu online" #: pan/gui/post-ui.cc:824 msgid "The file queue is empty, so no files can be saved." msgstr "Fronta souborů je prázdná, takže nelze uložit žádné soubory." #: pan/gui/post-ui.cc:1004 msgid "IO Error" msgstr "Chyba V/V" #: pan/gui/post-ui.cc:1004 msgid "No space left on device" msgstr "Na zařízení nezbývá místo" #: pan/gui/post-ui.cc:1005 #, c-format msgid "Error copying message to %s folder. Reason: %s" msgstr "Chyba při kopírování zprávy do složky %s. Důvod: %s" #: pan/gui/post-ui.cc:1011 #, c-format msgid "Error creating message in %s mail folder: Invalid article." msgstr "Chyba při vytváření zprávy v poštovní složce %s: Neplatný příspěvek." #: pan/gui/post-ui.cc:1033 msgid "" "No posting server is set for this posting profile.\n" "Please edit the profile via Edit|Manage Posting Profiles." msgstr "" "K tomuto profilu není přiřazen žádný server.\n" "Upravte prosím profil zvolením Upravit → Spravovat profily." #: pan/gui/post-ui.cc:1038 msgid "" "The selected posting server is currently disabled. Please choose an " "appropriate alternative." msgstr "" "Vybraný server je nastaven jako vypnutý. Vyberte prosím vhodnou náhradu." #: pan/gui/post-ui.cc:1080 msgid "Pan is Offline." msgstr "Pan je offline." #: pan/gui/post-ui.cc:1081 msgid "Go online to post the article?" msgstr "Přejít do režimu online a vystavit příspěvek?" #: pan/gui/post-ui.cc:1130 #, c-format msgid "" "Error signing/encrypting your message. Perhaps you misspelled your email " "address (%s)?" msgstr "" "Chyba při podepisování/šifrování zprávy. Možná máte překlep v e-mailové " "adrese (%s)?" #: pan/gui/post-ui.cc:1280 msgid "Error opening temporary file" msgstr "Chyba při otevírání dočasného souboru" #: pan/gui/post-ui.cc:1291 #, c-format msgid "Error creating temporary file: %s" msgstr "Chyba při vytváření dočasného souboru: %s" #: pan/gui/post-ui.cc:1299 #, c-format msgid "Error writing article to temporary file: %s" msgstr "Chyba při zápisu příspěvku do dočasného souboru: %s" #: pan/gui/post-ui.cc:1372 msgid "Open Draft Article" msgstr "Otevřít koncept příspěvku" #: pan/gui/post-ui.cc:1614 msgid "Save Draft Article" msgstr "Uložit koncept příspěvku" #: pan/gui/post-ui.cc:1652 msgid "File already exists." msgstr "Soubor již existuje." #: pan/gui/post-ui.cc:1653 msgid "Overwrite it?" msgstr "Chcete ho přepsat?" #: pan/gui/post-ui.cc:1862 #, c-format msgid "Couldn't parse signature command \"%s\": %s" msgstr "Nelze analyzovat příkaz k podpisu „%s“: %s" #: pan/gui/post-ui.cc:1898 msgid "Couldn't convert signature to UTF-8." msgstr "Podpis nelze konvertovat do UTF-8." #: pan/gui/post-ui.cc:2410 msgid "F_rom" msgstr "Od_esílatel" #: pan/gui/post-ui.cc:2427 msgid "_Subject" msgstr "_Předmět" #: pan/gui/post-ui.cc:2440 msgid "_Newsgroups" msgstr "Dis_kusní skupiny" #: pan/gui/post-ui.cc:2454 msgid "Mail _To" msgstr "Zasla_t na e-mail" #: pan/gui/post-ui.cc:2557 msgid "Delete from Queue" msgstr "Smazat z fronty" #: pan/gui/post-ui.cc:2570 msgid "No." msgstr "Č." #: pan/gui/post-ui.cc:2574 pan/gui/post-ui.cc:2666 pan/gui/post-ui.cc:2707 msgid "Filename" msgstr "Název souboru" #: pan/gui/post-ui.cc:2576 msgid "Size (KB)" msgstr "Velikost (KB)" #: pan/gui/post-ui.cc:2674 msgid "The current filename" msgstr "Aktuální název souboru" #: pan/gui/post-ui.cc:2678 msgid "Subject Line" msgstr "Řádek s předmětem" #: pan/gui/post-ui.cc:2686 msgid "The current subject line" msgstr "Aktuální řádek s předmětem" #: pan/gui/post-ui.cc:2700 msgid "No. " msgstr "Č. " #: pan/gui/post-ui.cc:2704 msgid "Enable/Disable" msgstr "Zapnout/vypnout" #: pan/gui/post-ui.cc:2738 msgid "Follo_wup-To" msgstr "Odpovědi vyst_avit na" #. i18n: "poster" is a key used by many newsreaders. probably safest to keep this key in english. #: pan/gui/post-ui.cc:2747 msgid "" "The newsgroups where replies to your message should go. This is only needed " "if it differs from the \"Newsgroups\" header.\n" "\n" "To direct all replies to your email address, use \"Followup-To: poster\"" msgstr "" "Diskusní skupiny, do kterých by měly být zasílány odpovědi na vaše zprávy. " "Potřebné pouze tehdy, jsou-li skupiny odlišné od záhlaví „Newsgroups“.\n" "\n" "Chcete-li nasměrovat všechny odpovědi na váš e-mail, je nutné zadat " "„Followup-To: poster“." #: pan/gui/post-ui.cc:2754 msgid "_Reply-To" msgstr "Odpověd_i zaslat na" #: pan/gui/post-ui.cc:2762 msgid "" "The email account where mail replies to your posted message should go. This " "is only needed if it differs from the \"From\" header." msgstr "" "E-mailová adresa, na kterou by měly být zasílány poštovní odpovědi na vámi " "vystavené zprávy. Potřebné pouze tehdy, pokud se liší od záhlaví " "„Odesílatel“." #: pan/gui/post-ui.cc:2769 msgid "_Custom Headers" msgstr "Uživatelsky de_finovaná záhlaví" #: pan/gui/post-ui.cc:2793 msgid "Add \"_User-Agent\" header" msgstr "Přidat záhlaví „User-A_gent“" #: pan/gui/post-ui.cc:2800 msgid "Add \"Message-_ID\" header" msgstr "Přidat záhlaví „_Message-ID“" #: pan/gui/post-ui.cc:2928 msgid "Select Parts" msgstr "Vybrat části" #: pan/gui/post-ui.cc:2941 msgid "_Parts" msgstr "Čá_sti" #: pan/gui/post-ui.cc:3108 msgid "Post Article" msgstr "Vystavit příspěvek" #: pan/gui/post-ui.cc:3129 msgid "_Message" msgstr "_Zpráva" #: pan/gui/post-ui.cc:3130 msgid "More _Headers" msgstr "_Další záhlaví" #: pan/gui/post-ui.cc:3131 msgid "File _Queue" msgstr "Fronta sou_borů" #: pan/gui/post-ui.cc:3162 pan/gui/profiles-dialog.cc:490 #, no-c-format msgid "On %d, %n wrote:" msgstr "%n, %d:" #: pan/gui/post-ui.cc:3191 msgid "Add files to queue" msgstr "Přidat soubory do fronty" #: pan/gui/post-ui.cc:3267 msgid "Save Upload Queue as NZB File" msgstr "Uložit frontu nahrávaného jako soubor NZB" #: pan/gui/prefs.cc:368 #, c-format msgid "Couldn't parse %s color \"%s\"" msgstr "Nelze analyzovat barvu %s „%s“" #: pan/gui/prefs-ui.cc:140 msgid "Grab Key" msgstr "Zachytit klávesu" #: pan/gui/prefs-ui.cc:146 #, c-format msgid "" "Press the combination of the keys\n" "you want to use for \"%s\"." msgstr "" "Stiskněte kombinaci kláves, které\n" "chcete přiřadit k „%s“." #: pan/gui/prefs-ui.cc:183 msgid "Edit Shortcut" msgstr "Upravit klávesovou zkratku" #: pan/gui/prefs-ui.cc:244 msgid "Error: Shortcut key is invalid!" msgstr "Chyba: Klávesová zkratka je neplatná!" #: pan/gui/prefs-ui.cc:260 msgid "Error: Shortcut key already exists!" msgstr "Chyba: Klávesová zkratka už existuje!" #: pan/gui/prefs-ui.cc:601 msgid "Show only icons" msgstr "Zobrazovat pouze ikony" #: pan/gui/prefs-ui.cc:602 msgid "Show only text" msgstr "Zobrazovat pouze text" #: pan/gui/prefs-ui.cc:603 msgid "Show icons and text" msgstr "Zobrazovat ikony i text" #: pan/gui/prefs-ui.cc:642 msgid "Use GNOME Preferences" msgstr "Používat předvolby GNOME" #: pan/gui/prefs-ui.cc:643 msgid "Use KDE Preferences" msgstr "Používat předvolby KDE" #: pan/gui/prefs-ui.cc:644 msgid "Use OS X Preferences" msgstr "Používat předvolby OS X" #: pan/gui/prefs-ui.cc:645 msgid "Use Windows Preferences" msgstr "Používat předvolby Windows" #: pan/gui/prefs-ui.cc:646 msgid "Custom Command:" msgstr "Vlastní příkaz:" #: pan/gui/prefs-ui.cc:698 msgid "Disabled" msgstr "Vypnuto" #: pan/gui/prefs-ui.cc:699 msgid "Only new (score == 0)" msgstr "Pouze nové (hodnocení == 0)" #: pan/gui/prefs-ui.cc:700 msgid "9999 or more" msgstr "9999 či více" #: pan/gui/prefs-ui.cc:701 msgid "5000 to 9998" msgstr "od 5000 do 9998" #: pan/gui/prefs-ui.cc:702 msgid "1 to 4999" msgstr "od 1 do 4999" #: pan/gui/prefs-ui.cc:703 msgid "-9998 to -1" msgstr "od -9998 do -1" #: pan/gui/prefs-ui.cc:704 msgid "-9999 or less" msgstr "-9999 či méně" #: pan/gui/prefs-ui.cc:770 #, c-format msgid "Select default global character set. Current setting: %s." msgstr "" "Vyberte výchozí globální znakovou sadu. Aktuální nastavení: %s." #: pan/gui/prefs-ui.cc:801 msgid "Global Character Set Settings" msgstr "Globální nastavení znakové sady" #: pan/gui/prefs-ui.cc:895 pan/gui/task-pane.cc:1067 msgid "State" msgstr "Stav" #: pan/gui/prefs-ui.cc:929 msgid "Enabled" msgstr "Zobrazeno" #: pan/gui/prefs-ui.cc:933 msgid "Column Name" msgstr "Název sloupce" #: pan/gui/prefs-ui.cc:981 msgid "Pan: Preferences" msgstr "Pan: Nastavení" #: pan/gui/prefs-ui.cc:996 msgid "Mouse" msgstr "Myš" #: pan/gui/prefs-ui.cc:998 msgid "Single-click activates, rather than selects, _groups" msgstr "_Jedno kliknutí nevybírá, ale rovnou načítá skupiny" #: pan/gui/prefs-ui.cc:1000 msgid "Single-click activates, rather than selects, _articles" msgstr "Jedno _kliknutí nevybírá, ale rovnou načítá příspěvky" #: pan/gui/prefs-ui.cc:1003 msgid "Groups" msgstr "Skupiny" #: pan/gui/prefs-ui.cc:1005 msgid "Get new headers in subscribed groups on _startup" msgstr "S_tahovat nová záhlaví v odebíraných skupinách při spuštění" #: pan/gui/prefs-ui.cc:1007 msgid "Get new headers when _entering group" msgstr "Stahovat nová záhlaví při otevření sk_upiny" #: pan/gui/prefs-ui.cc:1009 msgid "Mark entire group _read when leaving group" msgstr "Při opuštění skupiny _označovat všechny příspěvky jako přečtené" #: pan/gui/prefs-ui.cc:1011 msgid "Mark entire group read before getting _new headers" msgstr "" "Před stahováním nových záhlaví označovat všechn_y příspěvky jako přečtené" #: pan/gui/prefs-ui.cc:1013 msgid "E_xpand all threads when entering group" msgstr "Při otevření skupiny _rozbalovat všechna vlákna" #: pan/gui/prefs-ui.cc:1018 msgid "Articles" msgstr "Příspěvky" #: pan/gui/prefs-ui.cc:1020 msgid "Mark downloaded articles read" msgstr "Označit stažené příspěvky jako přečtené" #: pan/gui/prefs-ui.cc:1022 msgid "Space selects next article rather than next unread" msgstr "Mezerníkem vybírat další a nikoliv další nepřečtený příspěvek" #: pan/gui/prefs-ui.cc:1024 msgid "Expand threads upon selection" msgstr "Rozbalovat vlákna po vybrání" #: pan/gui/prefs-ui.cc:1026 msgid "Always ask before deleting an article" msgstr "Před smazáním příspěvku se vždy dotázat" #: pan/gui/prefs-ui.cc:1028 msgid "Smooth scrolling" msgstr "Hladké posouvání" #: pan/gui/prefs-ui.cc:1033 msgid "Article Cache" msgstr "Mezipaměť příspěvků" #: pan/gui/prefs-ui.cc:1034 msgid "Clear article cache on shutdown" msgstr "Při ukončení vymazávat vyrovnávací paměť příspěvků" #: pan/gui/prefs-ui.cc:1037 msgid "Size of article cache (in MiB):" msgstr "Velikost mezipaměti příspěvků (v MiB):" #: pan/gui/prefs-ui.cc:1041 msgid "File extension for cached articles: " msgstr "Přípona souborů s příspěvky v mezipaměti: " #: pan/gui/prefs-ui.cc:1045 msgid "Tabs" msgstr "Karty" #: pan/gui/prefs-ui.cc:1050 msgid "_Behavior" msgstr "Cho_vání" #: pan/gui/prefs-ui.cc:1050 msgid "Behavior" msgstr "Chování" #: pan/gui/prefs-ui.cc:1056 msgid "Task Pane" msgstr "Panel úloh" #: pan/gui/prefs-ui.cc:1057 msgid "Show task pane popups" msgstr "Zobrazovat oznámení panelu úloh" #: pan/gui/prefs-ui.cc:1059 msgid "Show Download Meter" msgstr "Zobrazovat měření stahování" #: pan/gui/prefs-ui.cc:1063 msgid "_Panes" msgstr "_Panely" #: pan/gui/prefs-ui.cc:1063 msgid "Panes" msgstr "Panely" #: pan/gui/prefs-ui.cc:1069 msgid "Language Settings" msgstr "Jazyková nastavení" #: pan/gui/prefs-ui.cc:1070 msgid "Font" msgstr "Písmo" #. systray and notify popup #: pan/gui/prefs-ui.cc:1077 msgid "System Tray Behavior" msgstr "Chování ikony v oznamovací oblasti" #: pan/gui/prefs-ui.cc:1079 msgid "Start Pan minimized" msgstr "Spouštět Pan minimalizovaný" #: pan/gui/prefs-ui.cc:1082 msgid "Show notifications" msgstr "Zobrazovat oznámení" #. allow multiple instances (seperate, not communicating with dbus) #: pan/gui/prefs-ui.cc:1087 msgid "Startup Behavior" msgstr "Chování při spuštění" #: pan/gui/prefs-ui.cc:1089 msgid "Allow multiple instances of Pan" msgstr "Povolit více spuštěných aplikací Pan" #: pan/gui/prefs-ui.cc:1094 msgid "Autosave Article Draft" msgstr "Automatické ukládání konceptu příspěvku" #: pan/gui/prefs-ui.cc:1096 msgid "Minutes to autosave the current Article Draft: " msgstr "Minut do automatického uložení konceptu příspěvku: " #: pan/gui/prefs-ui.cc:1101 msgid "Autosave Articles" msgstr "Automatické ukládání příspěvků" #: pan/gui/prefs-ui.cc:1103 msgid "Minutes to autosave newsrc files: " msgstr "Minut do automatického uložení souborů newsrc: " #: pan/gui/prefs-ui.cc:1110 msgid "Password Storage" msgstr "Úložiště hesel" #: pan/gui/prefs-ui.cc:1112 msgid "Save passwords in password storage" msgstr "Ukládat hesla v úložišti hesel" #: pan/gui/prefs-ui.cc:1119 msgid "_Miscellaneous" msgstr "_Různé" #: pan/gui/prefs-ui.cc:1119 msgid "Miscellaneous" msgstr "Různé" #: pan/gui/prefs-ui.cc:1124 msgid "Pane Layout" msgstr "Rozvržení panelů" #: pan/gui/prefs-ui.cc:1143 msgid "1=Groups, 2=Headers, 3=Body" msgstr "1 = skupiny, 2 = záhlaví, 3 = tělo" #: pan/gui/prefs-ui.cc:1145 msgid "1=Groups, 2=Body, 3=Headers" msgstr "1 = skupiny, 2 = tělo, 3 = záhlaví" #: pan/gui/prefs-ui.cc:1147 msgid "1=Headers, 2=Groups, 3=Body" msgstr "1 = záhlaví, 2 = skupiny, 3 = tělo" #: pan/gui/prefs-ui.cc:1149 msgid "1=Headers, 2=Body, 3=Groups" msgstr "1 = záhlaví, 2 = tělo, 3 = skupiny" #: pan/gui/prefs-ui.cc:1151 msgid "1=Body, 2=Groups, 3=Headers" msgstr "1 = tělo, 2 = skupiny, 3 = záhlaví" #: pan/gui/prefs-ui.cc:1153 msgid "1=Body, 2=Headers, 3=Groups" msgstr "1 = tělo, 2 = záhlaví, 3 = skupiny" #: pan/gui/prefs-ui.cc:1157 msgid "Layout" msgstr "Rozvržení" #: pan/gui/prefs-ui.cc:1162 msgid "Header Pane Columns" msgstr "Sloupce v panelu záhlaví" #: pan/gui/prefs-ui.cc:1166 msgid "_Headers" msgstr "_Záhlaví" #: pan/gui/prefs-ui.cc:1166 msgid "Headers" msgstr "Záhlaví" #: pan/gui/prefs-ui.cc:1172 msgid "" "This menu lets you configure Pan to take certain actions on your behalf " "automatically, based on an article's score." msgstr "" "Tato nabídka vám umožní nastavit Pan tak, aby mohly být některé akce za vás " "prováděny automaticky na základě hodnocení příspěvku." #: pan/gui/prefs-ui.cc:1177 msgid "Mark affected articles read" msgstr "Označit ovlivněné příspěvky jako přečtené" #: pan/gui/prefs-ui.cc:1186 msgid "_Delete articles scoring at: " msgstr "Smazat příspěvky s ho_dnocením: " #: pan/gui/prefs-ui.cc:1192 msgid "Mark articles read scoring at: " msgstr "Označit příspěvky jako přečtené s hodnocením: " #: pan/gui/prefs-ui.cc:1198 msgid "_Cache articles scoring at: " msgstr "U_ložit do mezipaměti příspěvky s hodnocením: " #: pan/gui/prefs-ui.cc:1204 msgid "Download attachments of articles scoring at: " msgstr "Stáhnout přílohy příspěvků s hodnocením: " #: pan/gui/prefs-ui.cc:1207 msgid "Actions" msgstr "Akce" #: pan/gui/prefs-ui.cc:1212 pan/gui/prefs-ui.cc:1233 msgid "Fonts" msgstr "Písma" #: pan/gui/prefs-ui.cc:1214 msgid "Use custom font in Group Pane:" msgstr "Používat vlastní písmo v panelu skupin:" #: pan/gui/prefs-ui.cc:1219 msgid "Use custom font in Header Pane:" msgstr "Používat vlastní písmo v panelu záhlaví:" #: pan/gui/prefs-ui.cc:1224 msgid "Use custom font in Body Pane:" msgstr "Používat vlastní písmo v panelu těla příspěvku:" #: pan/gui/prefs-ui.cc:1229 msgid "Monospace font:" msgstr "Neproporcionální písmo:" #: pan/gui/prefs-ui.cc:1233 msgid "_Fonts" msgstr "_Písma" #: pan/gui/prefs-ui.cc:1242 msgid "Header Pane" msgstr "Panel záhlaví" #: pan/gui/prefs-ui.cc:1245 pan/gui/prefs-ui.cc:1251 pan/gui/prefs-ui.cc:1257 #: pan/gui/prefs-ui.cc:1263 pan/gui/prefs-ui.cc:1269 pan/gui/prefs-ui.cc:1275 #: pan/gui/prefs-ui.cc:1284 pan/gui/prefs-ui.cc:1290 pan/gui/prefs-ui.cc:1296 #: pan/gui/prefs-ui.cc:1302 pan/gui/prefs-ui.cc:1308 pan/gui/prefs-ui.cc:1318 #: pan/gui/prefs-ui.cc:1328 msgid "Text:" msgstr "Text:" #: pan/gui/prefs-ui.cc:1247 pan/gui/prefs-ui.cc:1253 pan/gui/prefs-ui.cc:1259 #: pan/gui/prefs-ui.cc:1265 pan/gui/prefs-ui.cc:1271 pan/gui/prefs-ui.cc:1277 #: pan/gui/prefs-ui.cc:1286 pan/gui/prefs-ui.cc:1292 pan/gui/prefs-ui.cc:1298 #: pan/gui/prefs-ui.cc:1304 pan/gui/prefs-ui.cc:1310 pan/gui/prefs-ui.cc:1320 #: pan/gui/prefs-ui.cc:1330 msgid "Background:" msgstr "Pozadí:" #: pan/gui/prefs-ui.cc:1249 msgid "Scores of 9999 or more:" msgstr "Hodnocení 9999 či více:" #: pan/gui/prefs-ui.cc:1255 msgid "Scores from 5000 to 9998:" msgstr "Hodnocení od 5000 do 9998:" #: pan/gui/prefs-ui.cc:1261 msgid "Scores from 1 to 4999:" msgstr "Hodnocení od 1 do 4999:" #: pan/gui/prefs-ui.cc:1267 msgid "Scores from -9998 to -1:" msgstr "Hodnocení od -9998 do -1:" #: pan/gui/prefs-ui.cc:1273 msgid "Scores of -9999 or less:" msgstr "Hodnocení -9999 či méně:" #: pan/gui/prefs-ui.cc:1279 msgid "Collapsed thread with unread articles:" msgstr "Sbalené vlákno s nepřečtenými příspěvky:" #: pan/gui/prefs-ui.cc:1281 msgid "Body Pane" msgstr "Panel těla příspěvku" #: pan/gui/prefs-ui.cc:1288 msgid "First level of quoted text:" msgstr "První úroveň citovaného textu:" #: pan/gui/prefs-ui.cc:1294 msgid "Second level of quoted text:" msgstr "Druhá úroveň citovaného textu:" #: pan/gui/prefs-ui.cc:1300 msgid "Third level of quoted text:" msgstr "Třetí úroveň citovaného textu:" #. #: pan/gui/prefs-ui.cc:1306 msgid "URL:" msgstr "URL:" #. #: pan/gui/prefs-ui.cc:1312 msgid "Signature:" msgstr "Podpis:" #: pan/gui/prefs-ui.cc:1315 msgid "Group Pane" msgstr "Panel skupin" #. #: pan/gui/prefs-ui.cc:1322 msgid "Group Color:" msgstr "Barva skupiny:" #: pan/gui/prefs-ui.cc:1326 msgid "Other Text" msgstr "Jiný text" #: pan/gui/prefs-ui.cc:1332 msgid "Text Color:" msgstr "Barva textu:" #: pan/gui/prefs-ui.cc:1335 msgid "_Colors" msgstr "B_arvy" #: pan/gui/prefs-ui.cc:1335 msgid "Colors" msgstr "Barvy" #: pan/gui/prefs-ui.cc:1340 msgid "Preferred Applications" msgstr "Preferované aplikace" #: pan/gui/prefs-ui.cc:1344 msgid "_Web browser:" msgstr "_Webový prohlížeč:" #: pan/gui/prefs-ui.cc:1347 msgid "_Gemini client:" msgstr "Klient _Gemini:" #: pan/gui/prefs-ui.cc:1350 msgid "_Mail reader:" msgstr "_E-mailový klient:" #: pan/gui/prefs-ui.cc:1352 msgid "_Text editor:" msgstr "_Textový editor:" #: pan/gui/prefs-ui.cc:1354 msgid "_HTML previewer:" msgstr "Náhled _HTML:" #: pan/gui/prefs-ui.cc:1356 msgid "_Applications" msgstr "Aplika_ce" #: pan/gui/prefs-ui.cc:1356 msgid "Applications" msgstr "Aplikace" #: pan/gui/prefs-ui.cc:1361 pan/gui/task-pane.cc:555 msgid "Encoding" msgstr "Kódování" #: pan/gui/prefs-ui.cc:1365 msgid "Default bytes per file (for encoder): " msgstr "Výchozích bajtů na soubor (pro kodér): " #: pan/gui/prefs-ui.cc:1370 msgid "_Upload" msgstr "Na_hrávání" #: pan/gui/prefs-ui.cc:1370 msgid "Upload" msgstr "Nahrávání" #: pan/gui/prefs-ui.cc:1379 msgid "_Shortcuts" msgstr "_Klávesové zkratky" #: pan/gui/prefs-ui.cc:1379 msgid "Shortcuts" msgstr "Klávesové zkratky" #: pan/gui/profiles-dialog.cc:83 msgid "Please choose your email address according to your PGP key's user id." msgstr "" "Vyberte prosím e-mailovou adresu, která odpovídá user id vašeho klíče PGP." #: pan/gui/profiles-dialog.cc:131 msgid "Posting Profile" msgstr "Profil" #: pan/gui/profiles-dialog.cc:143 msgid "Profile Information" msgstr "Informace o profilu" #: pan/gui/profiles-dialog.cc:147 msgid "_Profile Name:" msgstr "_Název profilu:" #: pan/gui/profiles-dialog.cc:150 msgid "Required Information" msgstr "Povinné informace" #: pan/gui/profiles-dialog.cc:154 msgid "_Full Name:" msgstr "_Celé jméno:" #: pan/gui/profiles-dialog.cc:158 msgid "" "Your email address.\n" "Note that this has to match your PGP signature's address\n" "if you want your messages to be PGP-signed or encrypted correctly." msgstr "" "Vaše e-mailová adresa.\n" "Tato se musí shodovat s adresou vašeho podpisu PGP,\n" "chcete-li, aby byly vaše zprávy správně podepsány či šifrovány." #: pan/gui/profiles-dialog.cc:162 msgid "_Email Address:" msgstr "E-mai_lová adresa:" #: pan/gui/profiles-dialog.cc:164 msgid "_Post Articles via:" msgstr "_Odesílat příspěvky přes:" #: pan/gui/profiles-dialog.cc:167 msgid "Signature" msgstr "Podpis" #: pan/gui/profiles-dialog.cc:170 msgid "_Use a Signature" msgstr "Po_užívat podpis" #: pan/gui/profiles-dialog.cc:174 msgid "Signature File" msgstr "Soubor s podpisem" #: pan/gui/profiles-dialog.cc:184 msgid "Text File" msgstr "Textový soubor" #: pan/gui/profiles-dialog.cc:186 msgid "Text" msgstr "Text" #: pan/gui/profiles-dialog.cc:188 msgid "Command" msgstr "Příkaz" #: pan/gui/profiles-dialog.cc:191 msgid "PGP Signature" msgstr "Podpis PGP" #: pan/gui/profiles-dialog.cc:196 msgid "Signature Type: " msgstr "Typ podpisu: " #: pan/gui/profiles-dialog.cc:227 msgid "Avatars" msgstr "Avataři" #: pan/gui/profiles-dialog.cc:230 msgid "" "You can add an avatar icon to your articles with a Base64-encoded PNG.\n" "Add the Base64-encoded picture without the trailing “Face:”." msgstr "" "K příspěvkům lze přidat ikonu avatara obrázkem PNG kódovaným s Base64.\n" "Obrázek PNG kódovaný s Base64 přidejte bez koncového “Face:”." #: pan/gui/profiles-dialog.cc:232 msgid "_Face:" msgstr "_Face:" #: pan/gui/profiles-dialog.cc:236 msgid "" "You can add an avatar icon to your articles with a unique X-Face code.\n" "Add the code without the trailing \"X-Face:\" \n" " if it was generated by a helper program (for example http://www.dairiki.org/" "xface/xface.php)." msgstr "" "Do svých příspěvků můžete jedinečným kódem X-Face vložit ikonu avatara.\n" "Vložte kód bez koncového „X-Face:“,\n" "byl-li kód vygenerován zvláštním programem (například http://www.dairiki.org/" "xface/xface.php)." #: pan/gui/profiles-dialog.cc:239 msgid "_X-Face:" msgstr "_X-Face:" #: pan/gui/profiles-dialog.cc:241 msgid "Optional Information" msgstr "Volitelné informace" #: pan/gui/profiles-dialog.cc:246 msgid "" "When posting to Usenet, your article's Message-ID contains a domain name.\n" "You can set a custom domain name here, or leave it blank to let Pan use the " "domain name from your email address." msgstr "" "Při vystavování příspěvku v Usenetu obsahuje záhlaví Message-ID název " "domény.\n" "Zde je možné nastavit vlastní název domény, nebo nechat pole prázdné, aby " "mohl Pan použít název domény z vaší e-mailové adresy." #: pan/gui/profiles-dialog.cc:249 msgid "Message-ID _Domain Name:" msgstr "Název domény v ID _zprávy:" #: pan/gui/profiles-dialog.cc:253 #, c-format msgid "" "%i for Message-ID\n" "%a for Author and Address\n" "%n for Author name\n" "%d for Date" msgstr "" "%i značí Message-ID\n" "%a značí autora a adresu\n" "%n značí jméno autora\n" "%d značí datum" #: pan/gui/profiles-dialog.cc:254 msgid "_Attribution:" msgstr "Nadep_sání citace:" #. Translators: Do not localize Reply-To and the quote marks in \"Your Name\". #: pan/gui/profiles-dialog.cc:279 msgid "" "Extra headers to be included in your articles, such as\n" "Reply-To: \"Your Name\" \n" "Organization: Your Organization\n" msgstr "" "Další záhlaví, která by měla být zahrnuta v příspěvcích, např.\n" "Reply-To: \"Vaše jméno\" \n" "Organization: Vaše organizace\n" #: pan/gui/profiles-dialog.cc:289 msgid "E_xtra Headers:" msgstr "Další zá_hlaví:" #: pan/gui/profiles-dialog.cc:334 msgid "Invalid email address." msgstr "Neplatná e-mailová adresa." #: pan/gui/profiles-dialog.cc:335 msgid "Please use an address of the form joe@somewhere.org" msgstr "Použijte prosím adresu ve formátu franta@neco.cz" #: pan/gui/profiles-dialog.cc:491 msgid "New Profile" msgstr "Nový profil" #: pan/gui/profiles-dialog.cc:537 msgid "Posting Profiles" msgstr "Profily" #: pan/gui/profiles-dialog.cc:553 msgid "Profiles" msgstr "Profily" #: pan/gui/save-attach-ui.cc:44 #, c-format msgid "" "%g - group as one directory (alt.binaries.pictures.trains)\n" "%G - group as nested directory (/alt/binaries/pictures/trains)\n" "%s - Subject line excerpt\n" "%S - Subject line\n" "%n - Poster display name\n" "%e - Poster email address\n" "%d - Article timestamp\n" "\"/home/user/News/Pan/%g\" becomes\n" "\"/home/user/News/Pan/alt.binaries.pictures.trains\", and\n" "\"/home/user/News/Pan/%G\" becomes\n" "\"/home/user/News/Pan/alt/binaries/pictures/trains\"," msgstr "" "%g – skupina jako jeden adresář (např. cz.net.abuse.misc)\n" "%G – skupina jako vnořené adresáře (např. /cz/net/abuse/misc)\n" "%s – výňatek z řádku s předmětem\n" "%S – řádek s předmětem\n" "%n – zobrazované jméno odesílatele\n" "%e – e-mailová adresa odesílatele\n" "%d – časové razítko příspěvku\n" "Tedy „/home/uzivatel/News/Pan/%g“ bude\n" "„/home/uzivatel/News/Pan/cz.net.abuse.misc“ a\n" "„/home/uzivatel/News/Pan/%G“ bude\n" "„/home/uzivatel/News/Pan/cz/net/abuse/misc“." #: pan/gui/save-attach-ui.cc:196 pan/gui/save-ui.cc:216 msgid "Add to the queue sorted by date posted" msgstr "Přidat mezi pozdržené s tříděním dle data vystavení" #: pan/gui/save-attach-ui.cc:197 pan/gui/save-ui.cc:217 msgid "Add to the front of the queue" msgstr "Přidat na začátek pozdržených" #: pan/gui/save-attach-ui.cc:198 pan/gui/save-ui.cc:218 msgid "Add to the back of the queue" msgstr "Přidat na konec pozdržených" #: pan/gui/save-attach-ui.cc:230 msgid "Pan: Save Attachments" msgstr "Pan: Uložit přílohy" #: pan/gui/save-attach-ui.cc:255 pan/gui/save-attach-ui.cc:273 #: pan/gui/save-ui.cc:270 pan/gui/save-ui.cc:291 msgid "_Location:" msgstr "U_místění:" #: pan/gui/save-attach-ui.cc:259 pan/gui/save-ui.cc:274 msgid "Save Articles" msgstr "Uložit příspěvky" #: pan/gui/save-attach-ui.cc:276 pan/gui/save-ui.cc:294 #, c-format msgid "_Group's path: %s" msgstr "_Cesta ke skupině: %s" #: pan/gui/save-attach-ui.cc:287 pan/gui/save-ui.cc:309 msgid "_Priority:" msgstr "_Priorita:" #: pan/gui/save-ui.cc:44 #, c-format msgid "" "%g - group as one directory (alt.binaries.pictures.trains)\n" "%G - group as nested directory (/alt/binaries/pictures/trains)\n" "%s - subject line excerpt\n" "%S - subject line\n" "%n - Poster display name\n" "%e - Poster email address\n" "%d - Article timestamp\n" " \n" "\"/home/user/News/Pan/%g\" becomes\n" "\"/home/user/News/Pan/alt.binaries.pictures.trains\", and\n" "\"/home/user/News/Pan/%G\" becomes\n" "\"/home/user/News/Pan/alt/binaries/pictures/trains\"," msgstr "" "%g – skupina jako jeden adresář (např. cz.net.abuse.misc)\n" "%G – skupina jako vnořené adresáře (např. /cz/net/abuse/misc)\n" "%s – výňatek z řádku s předmětem\n" "%S – řádek s předmětem\n" "%n – zobrazované jméno odesílatele\n" "%e – e-mailová adresa odesílatele\n" "%d – časové razítko příspěvku\n" " \n" "Tedy „/home/uzivatel/News/Pan/%g“ bude\n" "„/home/uzivatel/News/Pan/cz.net.abuse.misc“ a\n" "„/home/uzivatel/News/Pan/%G“ bude\n" "„/home/uzivatel/News/Pan/cz/net/abuse/misc“." #: pan/gui/save-ui.cc:207 msgid "Save attachments" msgstr "Uložit přílohy" #: pan/gui/save-ui.cc:208 msgid "Save text" msgstr "Uložit text" #: pan/gui/save-ui.cc:209 msgid "Save attachments and text" msgstr "Uložit přílohy a text" #: pan/gui/save-ui.cc:245 msgid "Pan: Save Articles" msgstr "Pan: Uložit příspěvky" #: pan/gui/save-ui.cc:305 msgid "_Action:" msgstr "A_kce:" #: pan/gui/score-add-ui.cc:89 msgid "is more than" msgstr "je větší než" #: pan/gui/score-add-ui.cc:90 msgid "is at most" msgstr "je nejvýše" #: pan/gui/score-add-ui.cc:112 msgid "increase the article's score by" msgstr "zvýšit hodnocení příspěvku o" #: pan/gui/score-add-ui.cc:113 msgid "decrease the article's score by" msgstr "snížit hodnocení příspěvku o" #: pan/gui/score-add-ui.cc:114 msgid "set the article's score to" msgstr "nastavit hodnocení příspěvku na" #: pan/gui/score-add-ui.cc:115 msgid "watch the article (set its score to 9999)" msgstr "sledovat příspěvek (nastavit hodnocení na 9999)" #: pan/gui/score-add-ui.cc:116 msgid "ignore the article (set its score to -9999)" msgstr "ignorovat příspěvek (nastavit hodnocení na -9999)" #: pan/gui/score-add-ui.cc:141 msgid "References" msgstr "Odkazy" #: pan/gui/score-add-ui.cc:142 msgid "Line Count" msgstr "Počet řádků" #: pan/gui/score-add-ui.cc:143 msgid "Byte Count" msgstr "Počet bajtů" #: pan/gui/score-add-ui.cc:144 msgid "Crosspost Group Count" msgstr "Počet skupin coby příjemců" #: pan/gui/score-add-ui.cc:145 msgid "Age (in days)" msgstr "Stáří (ve dnech)" #: pan/gui/score-add-ui.cc:167 msgid "for the next month" msgstr "na příští měsíc" #: pan/gui/score-add-ui.cc:168 msgid "for the next six months" msgstr "na příštích šest měsíců" #: pan/gui/score-add-ui.cc:169 msgid "forever" msgstr "navždy" #: pan/gui/score-add-ui.cc:194 msgid "contains" msgstr "obsahuje" #: pan/gui/score-add-ui.cc:195 msgid "doesn't contain" msgstr "neobsahuje" #: pan/gui/score-add-ui.cc:196 msgid "is" msgstr "je" #: pan/gui/score-add-ui.cc:197 msgid "isn't" msgstr "není" #: pan/gui/score-add-ui.cc:198 msgid "starts with" msgstr "začíná na" #: pan/gui/score-add-ui.cc:199 msgid "ends with" msgstr "končí na" #: pan/gui/score-add-ui.cc:200 msgid "matches regex" msgstr "vyhovuje regulárnímu výrazu" #: pan/gui/score-add-ui.cc:481 msgid "Another rule already sets this article's score." msgstr "Hodnocení tohoto příspěvku již bylo nastaveno jiným pravidlem." #: pan/gui/score-add-ui.cc:482 msgid "You may want to go back or delete the old rule." msgstr "Možná bude vhodné vrátit se, nebo smazat původní pravidlo." #: pan/gui/score-add-ui.cc:484 msgid "Back" msgstr "Zpět" #: pan/gui/score-add-ui.cc:485 pan/gui/task-pane.cc:1040 msgid "Delete" msgstr "Smazat" #: pan/gui/score-add-ui.cc:486 pan/gui/score-add-ui.cc:607 #: pan/gui/score-view-ui.cc:207 msgid "Add" msgstr "Přidat" #: pan/gui/score-add-ui.cc:553 msgid "Add and Re_score" msgstr "Přidat a znovu o_hodnotit" #: pan/gui/score-add-ui.cc:602 pan/gui/score-add-ui.cc:622 msgid "New Scoring Rule" msgstr "Nové pravidlo" #: pan/gui/score-add-ui.cc:633 msgid "Group name" msgstr "Název skupiny" #: pan/gui/score-add-ui.cc:640 msgid "and" msgstr "a" #: pan/gui/score-view-ui.cc:55 msgid "Close and Re_score" msgstr "Z_avřít a znovu ohodnotit" #: pan/gui/score-view-ui.cc:153 #, c-format msgid "File %s, Lines %d - %d" msgstr "Soubor %s, řádky %d–%d" #: pan/gui/score-view-ui.cc:181 msgid "Pan: Article's Scores" msgstr "Pan: Hodnocení příspěvku" #: pan/gui/score-view-ui.cc:212 msgid "New Score" msgstr "Nové hodnocení" #: pan/gui/score-view-ui.cc:217 msgid "Criteria" msgstr "Kritéria" #: pan/gui/score-view-ui.cc:240 msgid "Add a New Scoring Rule" msgstr "Přidat nové pravidlo" #: pan/gui/score-view-ui.cc:247 msgid "Remove the Selected Scoring Rule" msgstr "Odstranit vybrané pravidlo" #: pan/gui/server-ui.cc:292 msgid "Please specify the server's address." msgstr "Určete prosím adresu serveru." #: pan/gui/server-ui.cc:344 msgid "Import SSL Certificate (PEM Format) From File" msgstr "Importovat certifikát SSL (formát PEM) ze souboru" #. create the dialog #: pan/gui/server-ui.cc:381 pan/gui/server-ui.cc:996 msgid "Add a Server" msgstr "Přidat nový server" #: pan/gui/server-ui.cc:381 pan/gui/server-ui.cc:1002 msgid "Edit a Server's Settings" msgstr "Upravit nastavení serveru" #: pan/gui/server-ui.cc:401 msgid "Location" msgstr "Umístění" #: pan/gui/server-ui.cc:405 msgid "The news server's actual address, e.g. \"news.mynewsserver.com\"." msgstr "" "Skutečná adresa serveru diskusních skupin, např. „news.diskusniserver.cz“." #: pan/gui/server-ui.cc:406 msgid "_Address:" msgstr "_Adresa:" #: pan/gui/server-ui.cc:411 msgid "" "The news server's port number. Typically 119 for unencrypted and 563 for " "encrypted connections (SSL/TLS)." msgstr "" "Port serveru diskusních skupin. Téměř vždy 119 v případě nešifrovaného a 563 " "v případě šifrovaného spojení (SSL/TLS)." #: pan/gui/server-ui.cc:412 msgid "Por_t:" msgstr "Por_t:" #: pan/gui/server-ui.cc:415 msgid "Login (if Required)" msgstr "Přihlášení (je-li vyžadováno)" #: pan/gui/server-ui.cc:419 msgid "_Username:" msgstr "Přihlašovací _jméno:" #: pan/gui/server-ui.cc:420 msgid "" "The username to give the server when asked. If your server doesn't require " "authentication, you can leave this blank." msgstr "" "Přihlašovací jméno, které bude v případě dotazu poskytnuto serveru. Není " "nutné zadávat, pokud server autentizaci nevyžaduje." #: pan/gui/server-ui.cc:424 msgid "_Password:" msgstr "_Heslo:" #: pan/gui/server-ui.cc:425 msgid "" "The password to give the server when asked. If your server doesn't require " "authentication, you can leave this blank." msgstr "" "Heslo, které bude v případě dotazu poskytnuto serveru. Není nutné zadávat, " "pokud server autentizaci nevyžaduje." #: pan/gui/server-ui.cc:428 msgid "Settings" msgstr "Nastavení" #: pan/gui/server-ui.cc:435 msgid "Connection _Limit:" msgstr "_Maximum spojení:" #: pan/gui/server-ui.cc:439 msgid "After Two Weeks" msgstr "Po dvou týdnech" #: pan/gui/server-ui.cc:440 msgid "After One Month" msgstr "Po měsíci" #: pan/gui/server-ui.cc:441 msgid "After Two Months" msgstr "Po dvou měsících" #: pan/gui/server-ui.cc:442 msgid "After Three Months" msgstr "Po třech měsících" #: pan/gui/server-ui.cc:443 msgid "After Six Months" msgstr "Po šesti měsících" #: pan/gui/server-ui.cc:444 msgid "Never Expire Old Articles" msgstr "Staré příspěvky nikdy nevyprší" #: pan/gui/server-ui.cc:458 msgid "E_xpire Old Articles:" msgstr "Sta_ré příspěvky vyprší:" #: pan/gui/server-ui.cc:462 msgid "Primary" msgstr "Primární" #: pan/gui/server-ui.cc:463 msgid "Fallback" msgstr "Záložní" #: pan/gui/server-ui.cc:477 msgid "Server Rank:" msgstr "Pořadí serveru:" #: pan/gui/server-ui.cc:481 msgid "" "Fallback servers are used for articles that can't be found on the " "primaries. One common approach is to use free servers as primaries and " "subscription servers as fallbacks." msgstr "" "Záložní servery se užívají pro příspěvky, které nelze nalézt na serverech " "primárních. Jeden z běžných postupů je použít veřejné servery jako primární " "a předplacené servery jako záložní." #: pan/gui/server-ui.cc:486 msgid "Disable Compression (N/A)" msgstr "Zakázat kompresi (žádná)" #: pan/gui/server-ui.cc:487 msgid "XZVER Compression (Astraweb)" msgstr "Komprese XZVER (Astraweb)" #: pan/gui/server-ui.cc:488 msgid "GZIP Compression (Giganews etc.)" msgstr "Komprese GZIP (Giganews aj.)" #: pan/gui/server-ui.cc:502 msgid "Header Compression:" msgstr "Komprese záhlaví:" #: pan/gui/server-ui.cc:508 msgid "Security" msgstr "Bezpečnost" #: pan/gui/server-ui.cc:513 msgid "Use Unsecure (Plaintext) Connections" msgstr "Používat nezabezpečené připojení (plaintext)" #: pan/gui/server-ui.cc:514 msgid "Use Secure SSL Connections" msgstr "Používat zabezpečené připojení SSL" #: pan/gui/server-ui.cc:529 msgid "TLS (SSL) Settings:" msgstr "Nastavení TLS (SSL):" #: pan/gui/server-ui.cc:534 msgid "" "You can enable/disable secure SSL/TLS connections here. If you enable SSL/" "TLS, your data is encrypted and secure. It is encouraged to enable SSL/TLS " "for privacy reasons." msgstr "" "Zde můžete zapnout/vypnout bezpečné připojení SSL/TLS. Zapnete-li SSL/TLS, " "vaše data budou šifrovaná a zabezpečená. Z bezpečnostních důvodů se " "doporučuje SSL/TLS zapnout." #: pan/gui/server-ui.cc:539 msgid "Always trust this server's certificate" msgstr "Vždy důvěřovat certifikátu tohoto serveru" #: pan/gui/server-ui.cc:724 #, c-format msgid "Really delete \"%s\"?" msgstr "Opravdu smazat „%s“?" #: pan/gui/server-ui.cc:813 msgid "No information available." msgstr "Nejsou dostupné žádné informace." #: pan/gui/server-ui.cc:823 #, c-format msgid "Server Certificate for '%s'" msgstr "Certifikát serveru „%s“" #: pan/gui/server-ui.cc:922 #, c-format msgid "Really delete certificate for \"%s\"?" msgstr "Opravdu chcete smazat certifikát „%s“?" #. dialog #: pan/gui/server-ui.cc:949 pan/gui/server-ui.cc:970 pan/gui/server-ui.cc:1068 msgid "Servers" msgstr "Servery" #: pan/gui/server-ui.cc:1009 msgid "Remove a Server" msgstr "Odstranit server" #. dialog #: pan/gui/server-ui.cc:1042 msgid "SSL Certificates" msgstr "Certifikáty SSL" #: pan/gui/server-ui.cc:1063 msgid "Certificates" msgstr "Certifikáty" #: pan/gui/server-ui.cc:1094 msgid "Import Certificate" msgstr "Importovat certifikát" #: pan/gui/server-ui.cc:1100 msgid "Inspect Certificate" msgstr "Zkontrolovat certifikát" #: pan/gui/server-ui.cc:1107 msgid "Remove Certificate" msgstr "Odstranit certifikát" #: pan/gui/task-pane.cc:124 #, c-format msgid "" "\n" "Upload\n" "\n" "Subject: \"%s\"\n" "From: %s\n" "Groups: %s\n" "Sourcefile: %s\n" msgstr "" "\n" "Nahrané\n" "\n" "Předmět: „%s“\n" "Odesílatel: %s\n" "Skupiny: %s\n" "Zdrojový soubor: %s\n" #: pan/gui/task-pane.cc:136 #, c-format msgid "" "\n" "Download\n" "\n" "Subject: \"%s\"\n" "From: %s\n" "Date: %s\n" "Groups: %s\n" "Save Path: %s\n" msgstr "" "\n" "Stažené\n" "\n" "Předmět: „%s“\n" "Odesílatel: %s\n" "Datum: %s\n" "Skupiny: %s\n" "Cesta k uloženému: %s\n" #: pan/gui/task-pane.cc:138 msgid "unknown" msgstr "neznámé" #: pan/gui/task-pane.cc:306 msgid "Choose New Destination for Selected Tasks" msgstr "Vyberte nový cíl pro vybrané úkoly" #: pan/gui/task-pane.cc:310 msgid "Save" msgstr "Uložit" #: pan/gui/task-pane.cc:460 #, c-format msgid "Pan: Tasks (%d Queued, %d Running, %d Stopped)" msgstr "Správce úloh aplikace Pan (pozdržených %d, běží %d, zastaveno %d)" #: pan/gui/task-pane.cc:462 #, c-format msgid "Pan: Tasks (%d Queued, %d Running)" msgstr "Správce úloh aplikace Pan (pozdržených %d, běží %d)" #: pan/gui/task-pane.cc:464 msgid "Pan: Tasks" msgstr "Správce úloh aplikace Pan" #: pan/gui/task-pane.cc:489 #, c-format msgid "%lu selected, %s" msgstr "Vybraných %lu, %s" #: pan/gui/task-pane.cc:553 msgid "Running" msgstr "Běží" #: pan/gui/task-pane.cc:554 msgid "Decoding" msgstr "Dekódování" #: pan/gui/task-pane.cc:556 msgid "Queued for Decode" msgstr "Pozdrženo k dekódování" #: pan/gui/task-pane.cc:557 msgid "Queued for Encode" msgstr "Pozdrženo ke kódování" #: pan/gui/task-pane.cc:558 msgid "Queued" msgstr "Pozdrženo" #: pan/gui/task-pane.cc:559 msgid "Stopped" msgstr "Zastaveno" #: pan/gui/task-pane.cc:560 msgid "Removing" msgstr "Odstraňování" #: pan/gui/task-pane.cc:589 #, c-format msgid "%d%% Done" msgstr "Hotovo %d%%" #: pan/gui/task-pane.cc:595 #, c-format msgid "%d:%02d:%02d Remaining (%d @ %lu KiB/s)" msgstr "Zbývá %d:%02d:%02d (%d při %lu KiB/s)" #: pan/gui/task-pane.cc:690 pan/gui/task-pane.cc:691 msgid "Move To Top" msgstr "Přesunout nejvýše" #: pan/gui/task-pane.cc:695 pan/gui/task-pane.cc:696 msgid "Move To Bottom" msgstr "Přesunout nejníže" #: pan/gui/task-pane.cc:700 pan/gui/task-pane.cc:701 msgid "Show Task Information" msgstr "Zobrazit informace o úloze" #: pan/gui/task-pane.cc:705 pan/gui/task-pane.cc:706 msgid "Stop Task" msgstr "Zastavit úlohu" #: pan/gui/task-pane.cc:710 pan/gui/task-pane.cc:711 msgid "Delete Task" msgstr "Smazat úlohu" #: pan/gui/task-pane.cc:715 pan/gui/task-pane.cc:716 msgid "Restart Task" msgstr "Restartovat úlohu" #: pan/gui/task-pane.cc:720 pan/gui/task-pane.cc:721 msgid "Change Download Destination" msgstr "Změnit cíl stahování" #: pan/gui/task-pane.cc:1016 msgid "_Online" msgstr "On_line" #: pan/gui/task-pane.cc:1026 msgid "Move up" msgstr "Přesunout výš" #: pan/gui/task-pane.cc:1027 msgid "Move task up" msgstr "Přesunout úlohu výš" #: pan/gui/task-pane.cc:1028 msgid "Move to top" msgstr "Přesunout nejvýše" #: pan/gui/task-pane.cc:1029 msgid "Move task to top of the download queue" msgstr "Přesunout úlohu na začátek pozdržených stahování" #: pan/gui/task-pane.cc:1031 msgid "Move down" msgstr "Přesunout níž" #: pan/gui/task-pane.cc:1032 msgid "Move task down" msgstr "Přesunout úlohu níž" #: pan/gui/task-pane.cc:1033 msgid "Move to bottom" msgstr "Přesunout nejníže" #: pan/gui/task-pane.cc:1034 msgid "Move task to the bottom of the download queue" msgstr "Přesunout úlohu na konec pozdržených stahování" #: pan/gui/task-pane.cc:1036 msgid "Restart" msgstr "Restartovat" #: pan/gui/task-pane.cc:1037 msgid "Restart Tasks" msgstr "Restartuje úlohy" #: pan/gui/task-pane.cc:1038 msgid "Stop" msgstr "Zastavit" #: pan/gui/task-pane.cc:1039 msgid "Stop Tasks" msgstr "Zastaví úlohy" #: pan/gui/task-pane.cc:1041 msgid "Delete Tasks" msgstr "Smaže úlohy" #: pan/gui/task-pane.cc:1043 msgid "Close" msgstr "Zavřít" #: pan/gui/task-pane.cc:1047 msgid "Show popups" msgstr "Zobrazovat oznámení" #: pan/gui/url.cc:143 #, c-format msgid "Error starting URL: %s (Command was: %s)" msgstr "Chyba během spouštění URL: %s (příkaz zněl: %s)" #: pan/tasks/decoder.cc:124 #, c-format msgid "Couldn't save file \"%s\": %s" msgstr "Nelze uložit soubor „%s“: %s" #: pan/tasks/decoder.cc:146 pan/tasks/encoder.cc:146 msgid "Error initializing uulib" msgstr "Chyba během spouštění uulib" #: pan/tasks/decoder.cc:166 pan/tasks/socket-impl-gio.cc:360 #: pan/tasks/socket-impl-openssl.cc:641 #, c-format msgid "Error reading from %s: %s" msgstr "Chyba při čtení z %s: %s" #: pan/tasks/decoder.cc:206 #, c-format msgid "Saved \"%s\"" msgstr "Uloženo „%s“" #: pan/tasks/decoder.cc:213 #, c-format msgid "" "Error saving \"%s\":\n" "%s." msgstr "" "Chyba během ukládání „%s“:\n" "%s." #: pan/tasks/decoder.cc:326 pan/tasks/task-article.cc:351 #, c-format msgid "Decoding %s" msgstr "Dekódování %s" #: pan/tasks/encoder.cc:113 pan/tasks/encoder.cc:164 #, c-format msgid "Error loading %s from cache." msgstr "Chyba při nahrávání %s z mezipaměti." #: pan/tasks/encoder.cc:186 #, c-format msgid "Error encoding %s: %s" msgstr "Chyba při kódování %s: %s" #: pan/tasks/encoder.cc:276 #, c-format msgid "Encoding %s" msgstr "Kódování %s" #: pan/tasks/nntp.cc:176 #, c-format msgid "%s requires a username, but none is set." msgstr "%s vyžaduje přihlašovací jméno, ale žádné není zadáno." #: pan/tasks/nntp.cc:189 #, c-format msgid "%s requires a password, but none is set." msgstr "%s vyžaduje heslo, ale žádné není zadáno." #: pan/tasks/nntp.cc:275 #, c-format msgid "Sending \"%s\" to %s returned an error: %s" msgstr "Při odesílání „%s“ na %s se vyskytla chyba: %s" #: pan/tasks/nntp.cc:298 #, c-format msgid "Sending \"%s\" to %s returned an unrecognized response: \"%s\"" msgstr "Při odesílání „%s“ na %s se vyskytla neznámá odpověď: „%s“" #: pan/tasks/nntp-pool.cc:241 #, c-format msgid "Unable to connect to \"%s\"" msgstr "Nelze se spojit s „%s“" #: pan/tasks/queue.cc:778 pan/tasks/queue.cc:806 pan/tasks/queue.cc:833 msgid "No space left on device." msgstr "Na zařízení nezbývá místo." #: pan/tasks/socket-impl-gio.cc:173 pan/tasks/socket-impl-gio.cc:211 #: pan/tasks/socket-impl-openssl.cc:213 pan/tasks/socket-impl-openssl.cc:251 #, c-format msgid "Error connecting to \"%s\"" msgstr "Chyba během připojování k „%s“" #: pan/tasks/socket-impl-gio.cc:359 pan/tasks/socket-impl-openssl.cc:640 msgid "Unknown Error" msgstr "Neznámá chyba" #: pan/tasks/task-article.cc:59 pan/tasks/task-article.cc:157 #, c-format msgid "Saving %s" msgstr "Ukládání %s" #: pan/tasks/task-article.cc:61 #, c-format msgid "Reading %s" msgstr "Čtení %s" #: pan/tasks/task-article.cc:323 #, c-format msgid "Article \"%s\" is incomplete -- the news server(s) don't have part %s" msgstr "" "Příspěvek „%s“ není kompletní – server diskusních skupin nemá k dipozici " "část %s" #: pan/tasks/task-groups.cc:41 #, c-format msgid "Getting group list from \"%s\"" msgstr "Získávání seznamu skupin ze serveru „%s“" #: pan/tasks/task-groups.cc:134 #, c-format msgid "Fetched %lu Groups" msgstr "Získaných skupin %lu" #: pan/tasks/task-post.cc:33 #, c-format msgid "Posting \"%s\"" msgstr "Vystavování „%s“" #: pan/tasks/task-post.cc:74 #, c-format msgid "Posting of \"%s\" failed: %s" msgstr "Vystavování „%s“ selhalo: %s" #: pan/tasks/task-post.cc:79 #, c-format msgid "Posting of \"%s\" successful: %s" msgstr "Vystavování souboru %s úspěšné: %s" #: pan/tasks/task-upload.cc:55 #, c-format msgid "Uploading %s" msgstr "Nahrávání %s" #: pan/tasks/task-upload.cc:249 #, c-format msgid "Uploading %s - Part %d of %d" msgstr "Nahrávání %s – část %d z %d" #: pan/tasks/task-upload.cc:251 #, c-format msgid "Uploading message body with subject \"%s\"" msgstr "Nahrávání těla zprávy s předmětem „%s“" #: pan/tasks/task-upload.cc:308 #, c-format msgid "Posting of file %s (part %d of %d) failed: No posts allowed by server." msgstr "" "Vystavování souboru %s (část %d z %d) selhalo: Vystavování server neumožňuje." #: pan/tasks/task-upload.cc:317 #, c-format msgid "Posting of file %s (part %d of %d) failed: %s" msgstr "Vystavování souboru %s (část %d z %d) selhalo: %s" #: pan/tasks/task-upload.cc:328 pan/tasks/task-upload.cc:335 #, c-format msgid "Posting of file %s (part %d of %d) successful: %s" msgstr "Vystavování souboru %s (část %d z %d) úspěšné: %s" #: pan/tasks/task-upload.cc:345 #, c-format msgid "Posting of file %s successful: %s" msgstr "Vystavování souboru %s úspěšné: %s" #: pan/tasks/task-upload.cc:349 #, c-format msgid "" "Posting of file %s not completely successful: Check the log (right-click " "list item)." msgstr "" "Vystavování souboru %s nebylo zcela úspěšné: Zkontrolujte záznamy (pravým " "kliknutím na položku v seznamu)." #: pan/tasks/task-upload.cc:368 #, c-format msgid "" "Posting of file %s not successful: Check the log (right-click list item)." msgstr "" "Vystavování souboru %s nebylo úspěšné: Zkontrolujte záznamy (pravým " "kliknutím na položku v seznamu)." #: pan/tasks/task-xover.cc:82 #, c-format msgid "Getting all headers for \"%s\"" msgstr "Získávání všech záhlaví u „%s“" #: pan/tasks/task-xover.cc:85 #, c-format msgid "Getting new headers for \"%s\"" msgstr "Získávání nových záhlaví u „%s“" #. SAMPLE #: pan/tasks/task-xover.cc:89 #, c-format msgid "Sampling headers for \"%s\"" msgstr "Sestavování záhlaví u „%s“" #: pan/tasks/task-xover.cc:454 #, c-format msgid "%s (%lu parts, %lu articles)" msgstr "%s (částí %lu, příspěvků %lu)" #: pan/tasks/task-xover.cc:528 #, c-format msgid "Getting new headers for \"%s\" done." msgstr "Získávání nových záhlaví u „%s“ dokončeno." #: pan/usenet-utils/filter-info.cc:215 msgid "article doesn't have attachments" msgstr "příspěvek nemá přílohy" #: pan/usenet-utils/filter-info.cc:219 msgid "the article has attachments" msgstr "příspěvek má přílohy" #: pan/usenet-utils/filter-info.cc:223 msgid "the article isn't cached locally" msgstr "příspěvek je dočasně uložen lokálně" #: pan/usenet-utils/filter-info.cc:227 msgid "the article is cached locally" msgstr "příspěvek je dočasně uložen lokálně" #: pan/usenet-utils/filter-info.cc:231 msgid "the article wasn't posted by you" msgstr "příspěvek byl vystaven vámi" #: pan/usenet-utils/filter-info.cc:235 msgid "the article was posted by you" msgstr "příspěvek byl vystaven vámi" #: pan/usenet-utils/filter-info.cc:239 msgid "the article has been read" msgstr "příspěvek je přečtený" #: pan/usenet-utils/filter-info.cc:243 msgid "the article hasn't been read" msgstr "příspěvek je přečtený" #: pan/usenet-utils/filter-info.cc:247 #, c-format msgid "the article is less than %ld bytes long" msgstr "příspěvek je menší než %ld bajtů" #: pan/usenet-utils/filter-info.cc:252 #, c-format msgid "the article is at least %ld bytes long" msgstr "příspěvek je velký alespoň %ld bajtů" #: pan/usenet-utils/filter-info.cc:257 #, c-format msgid "the article is less than %ld lines long" msgstr "příspěvek je kratší než %ld řádků" #: pan/usenet-utils/filter-info.cc:262 #, c-format msgid "the article is at least %ld lines long" msgstr "příspěvek je dlouhý alespoň %ld řádků" #: pan/usenet-utils/filter-info.cc:267 #, c-format msgid "the article is less than %ld days old" msgstr "příspěvek je mladší než %ld dní" #: pan/usenet-utils/filter-info.cc:272 #, c-format msgid "the article is at least %ld days old" msgstr "příspěvek je starý alespoň %ld dní" #: pan/usenet-utils/filter-info.cc:277 #, c-format msgid "the article was posted to less than %ld groups" msgstr "příspěvek byl vystaven v méně než %ld skupinách" #: pan/usenet-utils/filter-info.cc:282 #, c-format msgid "the article was posted to at least %ld groups" msgstr "příspěvek byl vystaven alespoň v %ld skupinách" #: pan/usenet-utils/filter-info.cc:287 #, c-format msgid "the article's score is less than %ld" msgstr "hodnocení příspěvku je menší než %ld" #: pan/usenet-utils/filter-info.cc:292 #, c-format msgid "the article's score is %ld or higher" msgstr "hodnocení příspěvku je %ld nebo vyšší" #: pan/usenet-utils/filter-info.cc:301 pan/usenet-utils/filter-info.cc:311 #, c-format msgid "%s doesn't contain \"%s\"" msgstr "%s neobsahuje „%s“" #: pan/usenet-utils/filter-info.cc:302 pan/usenet-utils/filter-info.cc:312 #, c-format msgid "%s isn't \"%s\"" msgstr "%s neodpovídá „%s“" #: pan/usenet-utils/filter-info.cc:303 pan/usenet-utils/filter-info.cc:313 #, c-format msgid "%s doesn't begin with \"%s\"" msgstr "%s nezačíná na „%s“" #: pan/usenet-utils/filter-info.cc:304 pan/usenet-utils/filter-info.cc:314 #, c-format msgid "%s doesn't end with \"%s\"" msgstr "%s nekončí na „%s“" #: pan/usenet-utils/filter-info.cc:305 pan/usenet-utils/filter-info.cc:315 #, c-format msgid "%s doesn't match the regex \"%s\"" msgstr "%s nevyhovuje regulárnímu výrazu „%s“" #: pan/usenet-utils/filter-info.cc:327 #, c-format msgid "%s contains \"%s\"" msgstr "%s obsahuje „%s“" #: pan/usenet-utils/filter-info.cc:328 #, c-format msgid "%s is \"%s\"" msgstr "%s odpovídá „%s“" #: pan/usenet-utils/filter-info.cc:329 #, c-format msgid "%s begins with \"%s\"" msgstr "%s začíná na „%s“" #: pan/usenet-utils/filter-info.cc:330 #, c-format msgid "%s ends with \"%s\"" msgstr "%s končí na „%s“" #: pan/usenet-utils/filter-info.cc:331 #, c-format msgid "%s matches the regex \"%s\"" msgstr "%s vyhovuje regulárnímu výrazu „%s“" #: pan/usenet-utils/filter-info.cc:337 msgid "Any of these tests fail:" msgstr "Některé z následujících testů selhaly:" #: pan/usenet-utils/filter-info.cc:344 msgid "All of these tests pass:" msgstr "Všechny následující testy selhaly:" #: pan/usenet-utils/filter-info.cc:351 msgid "None of these tests pass:" msgstr "Žádný z následujících testů nebyl úspěšný:" #: pan/usenet-utils/filter-info.cc:358 msgid "Any of these tests pass:" msgstr "Některé z následujících testů byly úspěšné:" #: pan/usenet-utils/gnksa.cc:880 #, c-format msgid "No email address provided; generating message-id with domain \"%s\"" msgstr "" "Nebyla poskytnuta e-mailová adresa; generování Message-ID s doménou „%s“." #: pan/usenet-utils/message-check.cc:122 msgid "Warning: Reply seems to be top-posted." msgstr "Upozornění: Odpověď je zřejmě na začátku zprávy." #: pan/usenet-utils/message-check.cc:143 msgid "Warning: The signature marker should be \"-- \", not \"--\"." msgstr "Upozornění: Oddělovač podpisu by měl být „-- “, nikoliv „--“." #: pan/usenet-utils/message-check.cc:160 msgid "Warning: Signature prefix with no signature." msgstr "Upozornění: Oddělovač podpisu je bez podpisu." #: pan/usenet-utils/message-check.cc:165 msgid "Warning: Signature is more than 4 lines long." msgstr "Upozornění: Podpis je delší než čtyři řádky." #: pan/usenet-utils/message-check.cc:170 msgid "Warning: Signature is more than 80 characters wide." msgstr "Upozornění: Podpis je delší než 80 znaků." #: pan/usenet-utils/message-check.cc:196 #, c-format msgid "Warning: %d line is more than 80 characters wide." msgid_plural "Warning: %d lines are more than 80 characters wide." msgstr[0] "Upozornění: %d řádek je delší než 80 znaků." msgstr[1] "Upozornění: %d řádky jsou delší než 80 znaků." msgstr[2] "Upozornění: %d řádků je delších než 80 znaků." #: pan/usenet-utils/message-check.cc:221 msgid "Error: Message is empty." msgstr "Chyba: Zpráva je prázdná." #: pan/usenet-utils/message-check.cc:256 msgid "Warning: The message is entirely quoted text!" msgstr "Upozornění: Zpráva obsahuje pouze citovaný text." #: pan/usenet-utils/message-check.cc:257 msgid "Warning: The message is mostly quoted text." msgstr "Upozornění: Většina zprávy je pouze citovaným textem." #: pan/usenet-utils/message-check.cc:307 msgid "Error: Message appears to have no new content." msgstr "Chyba: Zdá se, že zpráva nemá žádný nový obsah." #: pan/usenet-utils/message-check.cc:342 pan/usenet-utils/message-check.cc:381 #, c-format msgid "" "Warning: The posting profile's server doesn't carry newsgroup\n" "\t\"%s\".\n" "\tIf the group name is correct, switch profiles in the \"From:\"\n" "\tline or edit the profile with \"Edit|Manage Posting Profiles\"." msgstr "" "Upozornění: server daného profilu neposkytuje diskusní skupinu\n" "\t„%s“.\n" "\tJe-li název skupiny v pořádku, přepněte profily na řádce „Odesílatel“,\n" "\tnebo upravte profil pomocí „Upravit → Spravovat profily“." #: pan/usenet-utils/message-check.cc:353 msgid "Warning: Following-Up to too many groups." msgstr "" "Upozornění: Příliš mnoho skupin, ve kterých mají být vystaveny odpovědi." #: pan/usenet-utils/message-check.cc:364 msgid "Error: No Subject specified." msgstr "Chyba: Není vyplněn předmět." #: pan/usenet-utils/message-check.cc:393 #, c-format msgid "Warning: Group \"%s\" is read-only." msgstr "Upozornění: Skupina „%s“ je jen na čtení." #: pan/usenet-utils/message-check.cc:402 msgid "Error: Posting to a very large number of groups." msgstr "Chyba: Vystavování v příliš velkém počtu skupin." #: pan/usenet-utils/message-check.cc:407 msgid "Warning: Posting to a large number of groups." msgstr "Upozornění: Vystavování ve velkém počtu skupin." #: pan/usenet-utils/message-check.cc:414 msgid "Warning: Crossposting without setting Followup-To header." msgstr "" "Upozornění: Vystavování ve více skupinách bez nastaveného záhlaví \"Odpovědi " "vystavit na\"." #: pan/usenet-utils/message-check.cc:439 msgid "Error: Bad email address." msgstr "Chyba: e-mailová adresa není v pořádku." #: pan/usenet-utils/message-check.cc:448 msgid "Warning: Most newsgroups frown upon HTML posts." msgstr "Upozornění: většině skupin se nelíbí příspěvky v HTML." #: pan/usenet-utils/message-check.cc:484 msgid "Error: No Recipients." msgstr "Chyba: Není vyplněn příjemce." #: pan/usenet-utils/scorefile.cc:310 #, c-format msgid "Error reading score in %*.*s, line %d: unexpected line." msgstr "Chyba při čtení hodnocení v %*.*s, řádek %d: neočekávaný řádek." #: pan/usenet-utils/scorefile.cc:442 #, c-format msgid "" "Error reading score in %*.*s, line %d: expected 'Expires: MM/DD/YYYY' or " "'Expires: DD-MM-YYYY'." msgstr "" "Chyba při čtení hodnocení v %*.*s, řádek %d: očekáváno „Expires: MM/DD/YYYY“ " "nebo „Expires: DD-MM-YYYY“." #: pan/usenet-utils/scorefile.cc:452 #, c-format msgid "Expired old score from %*.*s, line %d" msgstr "Vypršelo staré hodnocení z %*.*s, řádek %d" #: pan/usenet-utils/scorefile.cc:589 #, c-format msgid "Read %lu scoring rules in %lu sections from \"%s\"" msgstr "Přečteno %lu pravidel v %lu částech z „%s“" #: pan/usenet-utils/ssl-utils.cc:172 #, c-format msgid "Error printing the server certificate for '%s'" msgstr "Chyba při výpisu certifikátu serveru „%s“" #: pan/usenet-utils/ssl-utils.cc:191 #, c-format msgid "" "The current server '%s' sent this security certificate:\n" "\n" msgstr "" "Aktuální server „%s“ odeslal tento bezpečnostní certifikát:\n" "\n" #: pan/usenet-utils/ssl-utils.cc:197 #, c-format msgid "" "Certificate information for server '%s':\n" "\n" msgstr "" "Informace o certifikátu serveru „%s“:\n" "\n" #: pan/usenet-utils/ssl-utils.cc:202 #, c-format msgid "" "%sIssuer information:\n" "%s\n" "Valid until: %s\n" "\n" "Not valid before: %s\n" "\n" msgstr "" "%sInformace o vydavateli:\n" "%s\n" "Platnost do: %s\n" "\n" "Neplatné před: %s\n" "\n" #: pan/usenet-utils/text-massager.cc:397 msgid "> [quoted text muted]" msgstr "> [citovaný text nezobrazen]" #: pan/usenet-utils/text-massager.cc:579 msgid "no_name" msgstr "bez_názvu" #: pan/usenet-utils/text-massager.cc:580 msgid "no_mail" msgstr "bez_e-mailu" #, c-format #~ msgid "There seems to be no password set for server %s." #~ msgstr "Pro server %s patrně není nastaveno žádné heslo." #~ msgid "GNOME Keyring denied access to the passwords." #~ msgstr "GNOME Keyring zakázal přístup k heslům." #~ msgid "_Tip Jar..." #~ msgstr "Podpoři_t…" #~ msgid "Toggle on/offline" #~ msgstr "Přepnout online/offline" #, c-format #~ msgid "Error setting custom spellchecker: %s" #~ msgstr "Chyba při nastavování vlastní kontroly pravopisu: %s" #, c-format #~ msgid "Error setting spellchecker: %s" #~ msgstr "Chyba při nastavování kontroly pravopisu: %s" #~ msgid "Minimize to tray" #~ msgstr "Minimalizovat do oznamovací oblasti" #, c-format #~ msgid "Getting header counts for \"%s\"" #~ msgstr "Získávání počtu záhlaví u „%s“" pan-0.162/po/da.po000066400000000000000000003013071475412772400136630ustar00rootroot00000000000000# Danish translation of Pan2. # Copyright (c) 2018 Pan2 og nedenstående oversættere. # This file is distributed under the same license as the Pan2 package. # Kenneth Christiansen , 2000. # Birger Langkjer , 1999, 2000. # Keld Simonsen , 2000, 2003. # Gitte Wange , 2001. # Søren Wedel Nielsen, 2004. # Peter N Andreasen , 2007. # Joe Hansen (joedalton2@yahoo.dk), 2010, 2011, 2017, 2018. # Alan Mortensen , 2022-24. # # bodby -> brødtekst # header -> brevhoved # msgid "" msgstr "" "Project-Id-Version: pan2\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/pan/issues/\n" "POT-Creation-Date: 2024-08-24 13:09+0000\n" "PO-Revision-Date: 2024-09-24 19:34+0200\n" "Last-Translator: Alan Mortensen \n" "Language-Team: Danish \n" "Language: da\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Poedit 3.4.2\n" #. update the titlebar #: org.gnome.pan.desktop.in:3 org.gnome.pan.metainfo.xml.in:27 #: pan/gui/dl-headers-ui.cc:119 pan/gui/gui.cc:1041 pan/gui/gui.cc:1666 #: pan/gui/gui.cc:1986 pan/gui/score-add-ui.cc:600 msgid "Pan" msgstr "Pan" #: org.gnome.pan.desktop.in:4 msgid "Newsreader" msgstr "Nyhedsgruppelæser" #: org.gnome.pan.desktop.in:5 org.gnome.pan.metainfo.xml.in:7 msgid "Read and post Usenet articles" msgstr "Læs og send artikler på Usenet" #. Translators: Search terms to find this application. Do NOT translate or localise the semicolons! The list MUST also end with a semicolon! #: org.gnome.pan.desktop.in:7 msgid "usenet;news;newsreader;newsgroup;article;yenc;nzb;" msgstr "" "usenet;news;newsreader;newsgroup;artikel;yenc;nzb;nyheder;nyhed;nyhedslæser;" "nyhedsgruppelæser;nyhedsgruppe;" #: org.gnome.pan.metainfo.xml.in:6 msgid "Pan Newsreader" msgstr "Pan - nyhedsgruppelæser" #: org.gnome.pan.metainfo.xml.in:9 msgid "" "Pan is a Usenet newsreader that is good at both text and binaries. It " "supports offline reading, scoring and killfiles, yEnc, NZB, PGP handling, " "multiple servers, and secure connections." msgstr "" "Pan er en nyhedsgruppelæser for Usenet, som er god til både tekst og binære " "filer. Den understøtter læsning uden forbindelse til internettet, bedømmelse " "og kill-filer, yEnc, NZB, PGP-håndtering, flere servere og sikre " "forbindelser." #: org.gnome.pan.metainfo.xml.in:12 msgid "" "It is also the only Unix newsreader to get a perfect score on the Good Net-" "Keeping Seal of Approval evaluations." msgstr "" "Det er også den eneste nyhedsgruppelæser for Unix, som får en perfekt " "bedømmelse på Good Net-Keeping Seal of Approval-evalueringerne." #: pan/data/article-cache.cc:144 pan/data/encode-cache.cc:62 #, c-format msgid "Error opening directory: \"%s\": %s" msgstr "Fejl ved åbning af kataloget “%s”: %s" #: pan/data/article-cache.cc:235 pan/data/article-cache.cc:244 #: pan/data-impl/data-io.cc:278 pan/data-impl/data-io.cc:310 #: pan/gui/post-ui.cc:1698 #, c-format msgid "Unable to save \"%s\" %s" msgstr "Kan ikke gemme “%s” %s" #: pan/data/article-cache.cc:362 #, c-format msgid "Error opening file \"%s\" %s" msgstr "Fejl ved åbning af filen “%s” %s" #: pan/data/article-cache.cc:393 pan/data-impl/profiles.cc:175 #: pan/data-impl/server.cc:478 pan/general/file-util.cc:311 #: pan/gui/post-ui.cc:567 pan/gui/task-pane.cc:740 #, c-format msgid "Error reading file \"%s\": %s" msgstr "Der opstod en fejl ved læsning af filen “%s”: %s" #: pan/data/cert-store.cc:259 #, c-format msgid "Error opening SSL certificate directory: \"%s\": %s" msgstr "Der opstod en fejl ved åbning af SSL-certifikatmappen: “%s”: %s" #: pan/data/cert-store.cc:290 #, c-format msgid "Successfully added %d SSL PEM certificate(s) to Certificate Store." msgstr "Tilføjede %d SSL PEM-certifikater til certifikatlageret." #: pan/data/cert-store.cc:310 msgid "" "Error initializing Certificate Store. Check that the permissions for the " "folders ~/.pan2 and ~/.pan2/ssl_certs are set correctly. Fatal, exiting." msgstr "" "Der opstod en fejl under initialisering af certifikatlageret. Kontroller at " "rettighederne for mapperne ~/.pan2 og ~/.pan2/ssl_certs er sat korrekt. " "Fatal, afslutter." #: pan/data/cert-store.cc:359 #, c-format msgid "Could not export certificate for server: %s" msgstr "Kunne ikke eksportere certifikat for server: %s" #. load_group_descriptions (*_data_io); #: pan/data-impl/data-impl.cc:119 #, c-format msgid "Loaded data backend in %.1f seconds" msgstr "Indlæste data-baggrundslager på %.1f sekunder" #: pan/data-impl/data-impl.cc:155 msgid "Pan Newsreader's server passwords" msgstr "Pan-nyhedsgruppelæserens serveradgangskoder" #: pan/data-impl/groups.cc:104 #, c-format msgid "Skipping newsrc file for server \"%s\"" msgstr "Springer over “newsrc”-filen for serveren “%s”" #: pan/data-impl/headers.cc:618 #, c-format msgid "Expired %lu old articles from \"%s\"" msgstr "Lod %lu gamle artikler udløbe fra “%s”" #: pan/data-impl/headers.cc:625 #, c-format msgid "" "Unsupported data version for %s headers: %d.\n" "Are you running an old version of Pan by accident?" msgstr "" "Dataversionen for %s-brevhoveder understøttes ikke: %d.\n" "Kører du tilfældigvis en gammel udgave af Pan?" #: pan/data-impl/headers.cc:640 #, c-format msgid "Loaded %llu articles for \"%s\" in %.1f seconds (%.0f per second)" msgstr "Indlæste %llu artikler for “%s” på %.1f sekunder (%.0f pr. sekund)" #: pan/data-impl/headers.cc:869 #, c-format msgid "" "Saved %lu parts, %lu articles in \"%s\" in %.1f seconds (%.0f articles/sec)" msgstr "Gemte %lu dele, %lu artikler i “%s” på %.1f sekunder (%.0f art/sek)" #: pan/data-impl/headers.cc:1202 #, c-format msgid "Added %lu articles to %s." msgstr "Tilføjede %lu artikler til %s." #: pan/data-impl/server.cc:250 #, c-format msgid "Received no password from libsecret for server %s." msgstr "Modtog ingen adgangskode fra libsecret for serveren %s." #: pan/data-impl/xover.cc:241 #, c-format msgid "Error reading from %s: unknown group \"%s\"" msgstr "Fejl ved læsning fra %s: ukendt gruppe “%s”" #: pan/general/e-util.cc:164 msgid "%l:%M %p" msgstr "%l∶%M %p" #: pan/general/e-util.cc:165 msgid "Today %l:%M %p" msgstr "I dag %l∶%M %p" #: pan/general/e-util.cc:166 msgid "%a %l:%M %p" msgstr "%a %l∶%M %p" #: pan/general/e-util.cc:167 msgid "%b %d %l:%M %p" msgstr "%b %d %l∶%M %p" #: pan/general/e-util.cc:168 msgid "%b %d %Y" msgstr "%b %d %Y" #: pan/general/e-util.cc:200 msgid "?" msgstr "?" #: pan/general/text-match.cc:194 #, c-format msgid "Can't use regular expression \"%s\": %s" msgstr "Kan ikke bruge det regulære udtryk “%s”: %s" #: pan/general/utf8-utils.cc:212 msgid "Couldn't determine article encoding. Non-UTF8 characters were removed." msgstr "" "Kunne ikke afgøre artiklens tegnsæt. Tegn, som ikke er UTF8-tegn, blev " "fjernet." #: pan/gui/actions.cc:306 pan/gui/post-ui.cc:382 msgid "_File" msgstr "_Fil" #: pan/gui/actions.cc:307 pan/gui/post-ui.cc:383 msgid "_Edit" msgstr "_Redigér" #: pan/gui/actions.cc:308 pan/gui/prefs-ui.cc:1157 msgid "_Layout" msgstr "_Udseende" #: pan/gui/actions.cc:309 msgid "_Group Pane" msgstr "_Gruppepanel" #: pan/gui/actions.cc:310 msgid "_Header Pane" msgstr "_Brevhovedpanel" #: pan/gui/actions.cc:311 msgid "_Body Pane" msgstr "_Brødtekstpanel" #: pan/gui/actions.cc:312 msgid "_View" msgstr "_Vis" #: pan/gui/actions.cc:313 msgid "Filte_r" msgstr "Filt_re" #: pan/gui/actions.cc:314 msgid "_Go" msgstr "_Gå til" #: pan/gui/actions.cc:315 pan/gui/prefs-ui.cc:1207 msgid "_Actions" msgstr "_Handlinger" #: pan/gui/actions.cc:316 msgid "_Articles" msgstr "Ar_tikler" #: pan/gui/actions.cc:317 msgid "G_roups" msgstr "Gr_upper" #: pan/gui/actions.cc:318 pan/gui/actions.cc:319 msgid "_Post" msgstr "_Send" #: pan/gui/actions.cc:320 msgid "_Help" msgstr "_Hjælp" #: pan/gui/actions.cc:323 msgid "_Read Group" msgstr "_Læs gruppe" #: pan/gui/actions.cc:324 msgid "Read Group" msgstr "Læs gruppe" #: pan/gui/actions.cc:328 msgid "_Mark Selected Groups Read" msgstr "_Marker valgte grupper som læst" #: pan/gui/actions.cc:329 msgid "Mark Selected Groups Read" msgstr "Marker valgte grupper som læst" #: pan/gui/actions.cc:333 msgid "_Delete Selected Groups' Articles" msgstr "_Slet valgte gruppers artikler" #: pan/gui/actions.cc:334 msgid "Delete Selected Groups' Articles" msgstr "Slet valgte gruppers artikler" #: pan/gui/actions.cc:338 msgid "Get New _Headers in Selected Groups" msgstr "Hent nye _brevhoveder i valgte grupper" #: pan/gui/actions.cc:339 msgid "Get New Headers in Selected Groups" msgstr "Hent nye brevhoveder i valgte grupper" #: pan/gui/actions.cc:343 pan/gui/actions.cc:348 msgid "Get New _Headers in Subscribed Groups" msgstr "Hent nye brevhoveder i _abonnerede grupper" #: pan/gui/actions.cc:344 pan/gui/actions.cc:349 msgid "Get New Headers in Subscribed Groups" msgstr "Hent nye brevhoveder i abonnerede grupper" #: pan/gui/actions.cc:353 msgid "Get _Headers..." msgstr "_Hent brevhoveder …" #: pan/gui/actions.cc:354 msgid "Get Headers..." msgstr "Hent brevhoveder …" #: pan/gui/actions.cc:358 pan/gui/actions.cc:359 msgid "Refresh Group List" msgstr "Genopfrisk gruppelisten" #: pan/gui/actions.cc:363 msgid "_Subscribe" msgstr "_Abonnér" #: pan/gui/actions.cc:364 msgid "Subscribe" msgstr "Abonner" #: pan/gui/actions.cc:368 msgid "_Unsubscribe" msgstr "_Opsig abonnement" #: pan/gui/actions.cc:369 msgid "Unsubscribe" msgstr "Opsig abonnement" #: pan/gui/actions.cc:373 msgid "_Save Articles..." msgstr "_Gem artikler …" #: pan/gui/actions.cc:374 msgid "Save Articles..." msgstr "Gem artikler …" #: pan/gui/actions.cc:378 msgid "Save Articles from Selected _NZB..." msgstr "Gem artikler fra valgte _NZB …" #: pan/gui/actions.cc:379 msgid "Save Articles from Selected NZB" msgstr "Gem artikler fra den valgte NZB" #: pan/gui/actions.cc:383 msgid "Save Articles to an NZB _File..." msgstr "Gem artikler til en NZB-_fil …" #: pan/gui/actions.cc:384 msgid "Save Articles to an NZB File" msgstr "Gem artikler til en NZB-fil" #: pan/gui/actions.cc:388 pan/gui/actions.cc:389 msgid "Print" msgstr "Udskriv" #: pan/gui/actions.cc:393 msgid "_Import NZB Files..." msgstr "_Importer NZB filer …" #: pan/gui/actions.cc:398 msgid "_Cancel Last Task" msgstr "_Afbryd seneste opgave" #: pan/gui/actions.cc:403 msgid "_Task Manager" msgstr "_Opgavehåndtering" #: pan/gui/actions.cc:408 msgid "_Event Log" msgstr "_Åbn statusloggen" #: pan/gui/actions.cc:413 msgid "_Quit" msgstr "_Afslut" #: pan/gui/actions.cc:418 msgid "Select _All Articles" msgstr "Markér alle _artikler" #: pan/gui/actions.cc:423 msgid "_Deselect All Articles" msgstr "Afmarkér a_lle artikler" #: pan/gui/actions.cc:428 msgid "Add Su_bthreads to Selection" msgstr "Tilføj _undertråde til markeringen" #: pan/gui/actions.cc:433 msgid "Add _Threads to Selection" msgstr "Tilføj _tråde til markeringen" #: pan/gui/actions.cc:438 msgid "Add _Similar Articles to Selection" msgstr "Tilføj til_svarende artikler til markeringen" #: pan/gui/actions.cc:443 msgid "Select Article _Body" msgstr "Markér artikel_brødtekst" #: pan/gui/actions.cc:448 msgid "Edit _Preferences" msgstr "Redigér _indstillinger" #: pan/gui/actions.cc:453 msgid "Edit Selected _Group's Preferences" msgstr "Redigér indstillinger for valgt _gruppe" #: pan/gui/actions.cc:458 msgid "Edit S_core File" msgstr "Redigér _bedømmelsesfil" #: pan/gui/actions.cc:463 pan/gui/post-ui.cc:399 msgid "Edit P_osting Profiles" msgstr "_Afsenderprofiler" #: pan/gui/actions.cc:468 msgid "Edit _News Servers" msgstr "_Nyhedsgruppeservere" #: pan/gui/actions.cc:473 msgid "Jump to _Group Tab" msgstr "Gå til _gruppefane" #: pan/gui/actions.cc:478 msgid "Jump to _Header Tab" msgstr "Gå til _brevhovedfane" #: pan/gui/actions.cc:483 msgid "Jump to _Body Tab" msgstr "Gå til _brødtekstfane" #: pan/gui/actions.cc:488 msgid "_Rot13 Selected Text" msgstr "_Rot13 markeret tekst" #: pan/gui/actions.cc:493 msgid "Clear _Header Pane" msgstr "Ryd _brevhovedpanel" #: pan/gui/actions.cc:498 msgid "Clear _Body Pane" msgstr "Ryd _brødtekstpanel" #: pan/gui/actions.cc:503 msgid "Cache Article" msgstr "Lagr artikel" #: pan/gui/actions.cc:508 msgid "Read Article" msgstr "Læs artikel" #: pan/gui/actions.cc:513 msgid "Show Article Information" msgstr "Vis artikelinformation" #: pan/gui/actions.cc:518 msgid "Read _More" msgstr "Læs _mere" #: pan/gui/actions.cc:519 msgid "Read More" msgstr "Læs mere" #: pan/gui/actions.cc:523 msgid "Read _Back" msgstr "Læs til_bage" #: pan/gui/actions.cc:524 msgid "Read Back" msgstr "Læs tilbage" #: pan/gui/actions.cc:528 msgid "Next _Unread Group" msgstr "Næste _ulæste gruppe" #: pan/gui/actions.cc:533 msgid "Next _Group" msgstr "Næste _gruppe" #: pan/gui/actions.cc:538 msgid "Next _Unread Article" msgstr "Næste _ulæste artikel" #: pan/gui/actions.cc:539 msgid "Next Unread Article" msgstr "Næste ulæste artikel" #: pan/gui/actions.cc:543 msgid "Next _Article" msgstr "Næste _artikel" #: pan/gui/actions.cc:544 msgid "Next Article" msgstr "Næste artikel" #: pan/gui/actions.cc:548 msgid "Next _Watched Article" msgstr "Næste _overvågede artikel" #: pan/gui/actions.cc:553 msgid "Next Unread _Thread" msgstr "Næste ulæste _tråd" #: pan/gui/actions.cc:554 msgid "Next Unread Thread" msgstr "Næste ulæste tråd" #: pan/gui/actions.cc:558 msgid "Next Threa_d" msgstr "Næste trå_d" #: pan/gui/actions.cc:563 msgid "Pre_vious Article" msgstr "Fo_regående artikel" #: pan/gui/actions.cc:568 msgid "Previous _Thread" msgstr "Foregående _tråd" #: pan/gui/actions.cc:573 msgid "_Parent Article" msgstr "_Forælder-artikel" #: pan/gui/actions.cc:578 msgid "Ignore _Author" msgstr "_Ignorér forfatter" #: pan/gui/actions.cc:582 msgid "_Watch Thread" msgstr "_Overvåg tråd" #: pan/gui/actions.cc:587 msgid "_Ignore Thread" msgstr "_Ignorér tråd" #: pan/gui/actions.cc:592 pan/gui/actions.cc:593 msgid "_Toggle Flag On/Off for Thread" msgstr "_Aktiver/deaktiver flag for tråd" #: pan/gui/actions.cc:597 pan/gui/actions.cc:598 msgid "_Turn Flag Off for Thread" msgstr "_Deaktiver flag for tråd" #: pan/gui/actions.cc:602 pan/gui/actions.cc:603 msgid "_Select All Flagged Threads" msgstr "_Vælg alle tråde med flag" #: pan/gui/actions.cc:607 pan/gui/actions.cc:608 msgid "_Go to Next Flagged Thread" msgstr "_Gå til næste tråd med flag" #: pan/gui/actions.cc:612 pan/gui/actions.cc:613 msgid "_Go to Last Flagged Thread" msgstr "_Gå til sidste tråd med flag" #: pan/gui/actions.cc:617 pan/gui/actions.cc:618 msgid "_Invert Selection" msgstr "_Vend markering om" #: pan/gui/actions.cc:622 msgid "Edit Article's Watch/Ignore/Score..." msgstr "Rediger artiklens overvågning/ignorering/bedømmelse …" #: pan/gui/actions.cc:627 msgid "Add a _Scoring Rule..." msgstr "Tilføj en _bedømmelsesregel …" #: pan/gui/actions.cc:632 msgid "Cance_l Article..." msgstr "Træk artike_l tilbage …" #: pan/gui/actions.cc:637 msgid "_Supersede Article..." msgstr "Aflø_s artikel …" #: pan/gui/actions.cc:642 msgid "_Delete Article" msgstr "Sl_et artiklen" #: pan/gui/actions.cc:647 msgid "Clear Article Cache" msgstr "Ryd artikel-mellemlager" #: pan/gui/actions.cc:652 msgid "_Mark Article as Read" msgstr "_Marker artiklen læst" #: pan/gui/actions.cc:657 msgid "Mark Article as _Unread" msgstr "Marker artiklen _ulæst" #: pan/gui/actions.cc:663 msgid "_Mark Thread as Read" msgstr "_Marker tråd som læst" #: pan/gui/actions.cc:668 msgid "Mark Thread as _Unread" msgstr "Marker tråd som _ulæst" #: pan/gui/actions.cc:673 msgid "_Post to Newsgroup" msgstr "_Send til nyhedsgruppe" #: pan/gui/actions.cc:674 msgid "Post to Newsgroup" msgstr "Send til nyhedsgruppe" #: pan/gui/actions.cc:678 msgid "_Followup to Newsgroup" msgstr "_Følg op til nyhedsgruppe" #: pan/gui/actions.cc:679 msgid "Followup to Newsgroup" msgstr "Følg op til nyhedsgruppe" #: pan/gui/actions.cc:683 msgid "_Reply to Author in Mail" msgstr "Sk_riv svar til forfatter" #: pan/gui/actions.cc:689 msgid "_Contents" msgstr "_Indhold" #: pan/gui/actions.cc:695 msgid "_Pan Home Page" msgstr "_Pans hjemmeside" #: pan/gui/actions.cc:700 msgid "Give _Feedback or Report a Bug..." msgstr "Indsend tilbagemelding eller _fejlrapport …" #: pan/gui/actions.cc:705 msgid "_About" msgstr "_Om" #: pan/gui/actions.cc:710 msgid "Edit _SSL Certificates" msgstr "Rediger _SSL-certifikater" #: pan/gui/actions.cc:725 msgid "_Thread Headers" msgstr "Brevhoveder i _tråde" #: pan/gui/actions.cc:726 msgid "Wrap Article Body" msgstr "Ombryd artikelbrødteksten" #: pan/gui/actions.cc:727 msgid "Show Article Signature" msgstr "Vis artikelsignatur" #: pan/gui/actions.cc:728 msgid "Mute _Quoted Text" msgstr "Skjul _citeret tekst" #: pan/gui/actions.cc:729 msgid "Show All _Headers in Body Pane" msgstr "Vis alle _brevhoveder i brødtekstpanelet" #: pan/gui/actions.cc:730 msgid "Show _Smilies as Graphics" msgstr "Vis _smilies som grafik" #: pan/gui/actions.cc:731 msgid "Show *Bold*, __Underlined__, and /Italic/" msgstr "Vis *Fed*, __Understreget__ og /Kursiv/" #: pan/gui/actions.cc:732 msgid "Size Pictures to _Fit" msgstr "Skalér billeder til at _passe" #: pan/gui/actions.cc:733 msgid "Use _Monospace Font" msgstr "Skrifttype med fast _bredde" #: pan/gui/actions.cc:734 msgid "Set Focus to Images" msgstr "Sæt fokus på billeder" #: pan/gui/actions.cc:735 msgid "Highlight _URLs" msgstr "Fremhæv _URL'er" #: pan/gui/actions.cc:738 msgid "_Work Online" msgstr "Arbejd _frakoblet" #: pan/gui/actions.cc:739 msgid "_Tabbed Layout" msgstr "_Fanelayout" #: pan/gui/actions.cc:740 msgid "Show Group _Pane" msgstr "Vis gruppe_panel" #: pan/gui/actions.cc:741 msgid "Show Hea_der Pane" msgstr "Vis hove_dpanel" #: pan/gui/actions.cc:742 msgid "Show Bod_y Pane" msgstr "Vis artikelte_kstpanel" #: pan/gui/actions.cc:743 msgid "Show _Toolbar" msgstr "Vis værk_tøjslinie" #: pan/gui/actions.cc:744 msgid "Abbreviate Group Names" msgstr "Forkort gruppenavne" #: pan/gui/actions.cc:746 msgid "Match Only _Read Articles" msgstr "Match kun _læste artikler" #: pan/gui/actions.cc:746 msgid "Match Only Read Articles" msgstr "Match kun læste artikler" #: pan/gui/actions.cc:747 msgid "Match Only _Unread Articles" msgstr "Match kun _ulæste artikler" #: pan/gui/actions.cc:747 msgid "Match Only Unread Articles" msgstr "Match kun ulæste artikler" #: pan/gui/actions.cc:748 msgid "Match Only _Cached Articles" msgstr "Mat_ch kun mellemlagrede artikler" #: pan/gui/actions.cc:748 msgid "Match Only Cached Articles" msgstr "Match kun mellemlagrede artikler" #: pan/gui/actions.cc:749 msgid "Match Only _Complete Articles" msgstr "Match _kun fuldstændige artikler" #: pan/gui/actions.cc:749 msgid "Match Only Complete Articles" msgstr "Match kun fuldstændige artikler" #: pan/gui/actions.cc:750 msgid "Match Only _My Articles" msgstr "Match kun _mine artikler" #: pan/gui/actions.cc:750 msgid "Match Only My Articles" msgstr "Match kun mine artikler" #: pan/gui/actions.cc:751 msgid "Match Only _Watched Articles" msgstr "Match kun over_vågede artikler" #: pan/gui/actions.cc:751 msgid "Match Only Watched Articles" msgstr "Match kun overvågede artikler" #: pan/gui/actions.cc:753 msgid "Match Scores of 9999 (_Watched)" msgstr "Udvælg bedømmelser på 9999 (_Overvåget)" #: pan/gui/actions.cc:754 msgid "Match Scores of 5000...9998 (_High)" msgstr "Udvælg bedømmelser på 5000…9998 (_Høj)" #: pan/gui/actions.cc:755 msgid "Match Scores of 1...4999 (Me_dium)" msgstr "Udvælg bedømmelser på 1…4999 (_Medium)" #: pan/gui/actions.cc:756 msgid "Match Scores of 0 (_Normal)" msgstr "Udvælg bedømmelser på 0 (_Normal)" #: pan/gui/actions.cc:757 msgid "Match Scores of -9998...-1 (_Low)" msgstr "Udvælg bedømmelser på -9998…-1 (_Lav)" #: pan/gui/actions.cc:758 msgid "Match Scores of -9999 (_Ignored)" msgstr "Udvælg bedømmelser på -9999 (_Ignoreret)" #: pan/gui/actions.cc:760 msgid "Enable/Disable All _Rules" msgstr "Aktiver/deaktiver alle _regler" #: pan/gui/actions.cc:788 msgid "Show Matching _Articles" msgstr "Vis udvalgte _artikler" #: pan/gui/actions.cc:789 msgid "Show Matching Articles' _Threads" msgstr "Vis udvalgte artiklers _tråde" #: pan/gui/actions.cc:790 msgid "Show Matching Articles' _Subthreads" msgstr "Vis udvalgte artiklers _undertråde" #: pan/gui/body-pane.cc:1040 msgid "Unnamed File" msgstr "Unavngivet fil" #: pan/gui/body-pane.cc:1121 pan/gui/gui.cc:1957 pan/gui/header-pane.cc:1306 #: pan/gui/header-pane.cc:1735 pan/gui/post-ui.cc:2572 pan/gui/prefs-ui.cc:896 #: pan/gui/score-add-ui.cc:139 pan/gui/task-pane.cc:795 msgid "Subject" msgstr "Emne" #: pan/gui/body-pane.cc:1123 pan/gui/gui.cc:1957 msgid "From" msgstr "Afsender" #: pan/gui/body-pane.cc:1125 pan/gui/gui.cc:1958 pan/gui/header-pane.cc:1814 #: pan/gui/log-ui.cc:308 pan/gui/prefs-ui.cc:892 msgid "Date" msgstr "Dato" #: pan/gui/body-pane.cc:1132 msgid "Newsgroups" msgstr "Nyhedsgrupper" #: pan/gui/body-pane.cc:1139 pan/gui/body-pane.cc:1147 #: pan/gui/body-pane.cc:1154 msgid "User-Agent" msgstr "Brugeragent" #: pan/gui/body-pane.cc:1160 msgid "Followup-To" msgstr "Opfølgning til" #: pan/gui/body-pane.cc:1170 msgid "Reply-To" msgstr "Svar til" #: pan/gui/body-pane.cc:1218 msgid " from " msgstr " fra " #: pan/gui/body-pane.cc:1220 msgid " at " msgstr " på " #: pan/gui/body-pane.cc:1309 #, c-format msgid "" "This is a PGP-Signed message.\n" "\n" "Signer: %s ('%s')\n" "Valid until: %s\n" "Created on: %s" msgstr "" "Dette er en PGP-underskrevet besked.\n" "\n" "Underskriver: %s (\"%s\")\n" "Gyldig indtil: %s\n" "Oprettet den: %s" #: pan/gui/body-pane.cc:1314 msgid "always" msgstr "altid" #: pan/gui/body-pane.cc:1533 msgid "Copy _URL" msgstr "Kopier _URL" #: pan/gui/body-pane.cc:1720 msgid "Save Attachment As..." msgstr "Gem bilag som …" #: pan/gui/body-pane.cc:1723 msgid "Save All Attachments" msgstr "Gem alle bilag" #: pan/gui/body-pane.cc:1794 msgid "Attachments:" msgstr "Bilag:" #: pan/gui/body-pane.cc:1814 msgid "Text View" msgstr "Tekstvisning" #: pan/gui/body-pane.cc:1823 msgid "HTML View" msgstr "HTML-visning" #: pan/gui/dl-headers-ui.cc:125 #, c-format msgid "%d Group" msgid_plural "%d Groups" msgstr[0] "%d Gruppe" msgstr[1] "%d Grupper" #: pan/gui/dl-headers-ui.cc:148 msgid "Get the last N _days' headers: " msgstr "Hent seneste N _dages brevhoveder: " #: pan/gui/dl-headers-ui.cc:156 msgid "Get _new headers" msgstr "Hent _nye brevhoveder" #: pan/gui/dl-headers-ui.cc:160 msgid "Get _all headers" msgstr "Hent _alle brevhoveder" #: pan/gui/dl-headers-ui.cc:164 msgid "Get the _latest N headers: " msgstr "Hent _seneste N brevhoveder: " #: pan/gui/e-action-combo-box.c:386 pan/gui/prefs-ui.cc:889 msgid "Action" msgstr "Handling" #: pan/gui/e-action-combo-box.c:387 msgid "A GtkRadioAction" msgstr "En GtkRadioAction" #: pan/gui/e-charset.c:51 pan/gui/task-pane.cc:561 msgid "Unknown" msgstr "Ukendt" #: pan/gui/e-charset.c:52 msgid "Arabic" msgstr "Arabisk" #: pan/gui/e-charset.c:53 msgid "Baltic" msgstr "Baltisk" #: pan/gui/e-charset.c:54 msgid "Central European" msgstr "Centraleuropæisk" #: pan/gui/e-charset.c:55 msgid "Chinese" msgstr "Kinesisk" #: pan/gui/e-charset.c:56 msgid "Cyrillic" msgstr "Kyrillisk" #: pan/gui/e-charset.c:57 msgid "Greek" msgstr "Græsk" #: pan/gui/e-charset.c:58 msgid "Hebrew" msgstr "Hebræisk" #: pan/gui/e-charset.c:59 msgid "Japanese" msgstr "Japansk" #: pan/gui/e-charset.c:60 msgid "Korean" msgstr "Koreansk" #: pan/gui/e-charset.c:61 msgid "Thai" msgstr "Thailandsk" #: pan/gui/e-charset.c:62 msgid "Turkish" msgstr "Tyrkisk" #: pan/gui/e-charset.c:63 msgid "Unicode" msgstr "Unicode" #: pan/gui/e-charset.c:64 msgid "Western European" msgstr "Vesteuropæisk" #: pan/gui/e-charset.c:65 msgid "Western European, New" msgstr "Vesteuropæisk, ny" #: pan/gui/e-charset.c:84 pan/gui/e-charset.c:85 pan/gui/e-charset.c:86 msgid "Traditional" msgstr "Traditionel" #: pan/gui/e-charset.c:87 pan/gui/e-charset.c:88 pan/gui/e-charset.c:89 #: pan/gui/e-charset.c:90 msgid "Simplified" msgstr "Forenklet" #: pan/gui/e-charset.c:93 msgid "Ukrainian" msgstr "Ukrainsk" #: pan/gui/e-charset.c:96 msgid "Visual" msgstr "Visuel" #: pan/gui/e-charset-combo-box.c:95 pan/gui/gui.cc:2155 pan/gui/post-ui.cc:477 #: pan/gui/prefs-ui.cc:800 msgid "Character Encoding" msgstr "Tegn-indkodning" #: pan/gui/e-charset-combo-box.c:97 pan/gui/e-charset-dialog.c:51 #: pan/gui/score-add-ui.cc:606 pan/gui/task-pane.cc:309 msgid "Cancel" msgstr "Annullér" #: pan/gui/e-charset-combo-box.c:98 pan/gui/e-charset-dialog.c:52 msgid "OK" msgstr "OK" #: pan/gui/e-charset-combo-box.c:119 msgid "Enter the character set to use" msgstr "Angiv tegnsættet som skal benyttes" #: pan/gui/e-charset-combo-box.c:338 msgid "Other..." msgstr "Anden …" #: pan/gui/e-cte-dialog.c:76 msgid "Default Encoding" msgstr "Standardkodning" #: pan/gui/e-cte-dialog.c:78 msgid "7-Bit Encoding" msgstr "7-bit kodning" #: pan/gui/e-cte-dialog.c:80 msgid "8-Bit Encoding" msgstr "8-bit kodning" #: pan/gui/e-cte-dialog.c:82 msgid "Base64 Encoding" msgstr "Base64-kodning" # https://en.wikipedia.org/wiki/Quoted-printable #: pan/gui/e-cte-dialog.c:84 msgid "Quoted-Printable Encoding" msgstr "Quoted-Printable-kodning" #: pan/gui/editor-spawner.cc:66 #, c-format msgid "Error parsing \"external editor\" command line: %s (Command was: %s)" msgstr "" "Fejl ved tolkning af “eksternt redigeringsprogram”-kommandolinje: %s " "(Kommandoen var: %s)" #: pan/gui/editor-spawner.cc:110 #, c-format msgid "Error starting external editor: %s" msgstr "Fejl ved start af den eksterne redigerering: %s" #. Local folders #: pan/gui/group-pane.cc:330 msgid "Sent" msgstr "Sendt" #: pan/gui/group-pane.cc:330 msgid "Drafts" msgstr "Kladder" #: pan/gui/group-pane.cc:540 msgid "Group" msgstr "Gruppe" #: pan/gui/group-pane.cc:540 msgid "Group (regex)" msgstr "Gruppe (regulært udtryk)" #: pan/gui/group-pane.cc:985 msgid "Local Folders" msgstr "Lokale mapper" #: pan/gui/group-pane.cc:986 msgid "Subscribed Groups" msgstr "Abonnerede grupper" #: pan/gui/group-pane.cc:987 msgid "Other Groups" msgstr "Andre grupper" #: pan/gui/group-pane.cc:1028 pan/gui/score-view-ui.cc:156 msgid "Name" msgstr "Navn" #: pan/gui/group-prefs-dialog.cc:161 msgid "No Profiles defined in Edit|Posting Profiles." msgstr "Ingen profiler defineret i Redigér|Afsenderprofiler." #: pan/gui/group-prefs-dialog.cc:264 msgid "Pan: Group Preferences" msgstr "Pan: Gruppeindstillinger" #: pan/gui/group-prefs-dialog.cc:279 msgid "Properties for Groups" msgstr "Egenskaber for grupper" #: pan/gui/group-prefs-dialog.cc:281 #, c-format msgid "Properties for %s" msgstr "Egenskaber for %s" #: pan/gui/group-prefs-dialog.cc:292 msgid "Character _encoding:" msgstr "T_egnsæt:" #: pan/gui/group-prefs-dialog.cc:294 msgid "Directory for Saving Attachments" msgstr "Katalog hvor bilag gemmes" #: pan/gui/group-prefs-dialog.cc:302 msgid "Directory for _saving attachments:" msgstr "Katalog hvor bilag gemme_s:" #: pan/gui/group-prefs-dialog.cc:304 msgid "Posting _profile:" msgstr "Afsender_profil:" #: pan/gui/group-prefs-dialog.cc:309 msgid "Spellchecker _language:" msgstr "_Sprog for stavekontrollen:" #: pan/gui/group-prefs-dialog.cc:312 msgid "Group color:" msgstr "Gruppefarve:" #: pan/gui/gui.cc:312 msgid "Open the Task Manager" msgstr "Åbn opgavehåndteringen" #: pan/gui/gui.cc:335 msgid "Open the Event Log" msgstr "Åbn hændelsesloggen" #: pan/gui/gui.cc:611 msgid "Save NZB's Files" msgstr "Save NZB's Files" #: pan/gui/gui.cc:638 msgid "Untitled.nzb" msgstr "Uden_titel.nzb" #: pan/gui/gui.cc:640 msgid "Save NZB File as..." msgstr "Gem NZB-fil som …" #: pan/gui/gui.cc:809 msgid "Import NZB Files" msgstr "Importér NZB-filer" #: pan/gui/gui.cc:817 pan/gui/post-ui.cc:3280 msgid "NZB Files" msgstr "NZB-filer" #: pan/gui/gui.cc:822 msgid "All Files" msgstr "Alle filer" #: pan/gui/gui.cc:1336 msgid "Unable to supersede article." msgstr "Kunne ikke afløse artikel." #: pan/gui/gui.cc:1337 pan/gui/gui.cc:1413 msgid "The article doesn't match any of your posting profiles." msgstr "Artiklen matcher ikke nogen af dine profiler." #: pan/gui/gui.cc:1386 msgid "Revise and send this article to replace the old one." msgstr "Revidér og send denne artikel for at erstatte den gamle." #: pan/gui/gui.cc:1387 pan/gui/gui.cc:1451 msgid "Be patient! It will take time for your changes to take effect." msgstr "Vær tålmodig! Det vil tage tid før dine ændringer slår igennem." #: pan/gui/gui.cc:1412 msgid "Unable to cancel article." msgstr "Kunne ikke annullere artikel." #: pan/gui/gui.cc:1450 msgid "Send this article to ask your server to cancel your other one." msgstr "Send denne artikel for at bede din server annullere den anden." #: pan/gui/gui.cc:1468 msgid "You have marked some articles for deletion." msgstr "Du har markeret nogle artikler til sletning." #: pan/gui/gui.cc:1469 msgid "Are you sure you want to delete them?" msgstr "Er du sikker på, at du ønsker at slette dem?" #: pan/gui/gui.cc:1495 msgid "Do you want to accept it permanently? (You can change this later.)" msgstr "Ønsker du at acceptere det permanent? (Du kan ændre dette senere)." #: pan/gui/gui.cc:1641 msgid "Unable to open help file." msgstr "Kan ikke åbne hjælpefil." #: pan/gui/gui.cc:1669 msgid "Copyright © 2002-2021 Charles Kerr and others" msgstr "Ophavsret © 2002–2021 Charles Kerr med flere" #: pan/gui/gui.cc:1674 msgid "translator-credits" msgstr "" "Kenneth Christiansen\n" "Birger Langkjer\n" "Keld Simonsen\n" "Gitte Wange\n" "Søren Wedel Nielsen\n" "Peter N Andreasen\n" "Joe Hansen, 2010, 2011, 2017, 2018\n" "Alan Mortensen\n" "\n" "Dansk-gruppen \n" "Mere info: http://www.dansk-gruppen.dk" #: pan/gui/gui.cc:1802 msgid "_1. Group Pane" msgstr "_1. Gruppepanel" #: pan/gui/gui.cc:1803 msgid "_2. Header Pane" msgstr "_2. Brevhovedpanel" #: pan/gui/gui.cc:1804 msgid "_3. Body Pane" msgstr "_3. Brødtekstpanel" #: pan/gui/gui.cc:1894 pan/gui/gui.cc:1909 msgid " Bytes" msgstr " Byte" #: pan/gui/gui.cc:1897 msgid " KB" msgstr " KB" #: pan/gui/gui.cc:1900 msgid " MB" msgstr " MB" #: pan/gui/gui.cc:1903 msgid " GB" msgstr " GB" #: pan/gui/gui.cc:1906 msgid " TB" msgstr " TB" #: pan/gui/gui.cc:1938 #, c-format msgid "This article is complete with %d part." msgid_plural "This article has all %d parts." msgstr[0] "Denne artikel er fuldstændig med %d del." msgstr[1] "Denne artikel har alle %d dele." #: pan/gui/gui.cc:1940 #, c-format msgid "This article is missing %d part." msgid_plural "This article is missing %d of its %d parts:" msgstr[0] "Denne artikel mangler %d del." msgstr[1] "Denne artikel mangler %d af sine %d dele:" #: pan/gui/gui.cc:1958 pan/gui/header-pane.cc:1308 pan/gui/task-pane.cc:797 msgid "Message-ID" msgstr "Meddelelses-ID" #: pan/gui/gui.cc:1959 pan/gui/header-pane.cc:1783 pan/gui/prefs-ui.cc:893 msgid "Lines" msgstr "Linjer" #: pan/gui/gui.cc:1959 msgid "Size" msgstr "Størrelse" #: pan/gui/gui.cc:1960 pan/gui/header-pane.cc:1799 pan/gui/prefs-ui.cc:891 msgid "Bytes" msgstr "Byte" #: pan/gui/gui.cc:2010 msgid "" "Error loading iconv library. Encoding certain character sets will not work " "in GUI." msgstr "" "Der opstod en fejl under indlæsning af iconv-biblioteket. Kodning af " "bestemte tegnsæt vil ikke fungere i den grafiske brugerflade." #: pan/gui/gui.cc:2156 msgid "Body Pane Encoding" msgstr "Kodning i brødtekstpanel" #: pan/gui/gui.cc:2187 pan/gui/task-pane.cc:612 msgid "Offline" msgstr "Frakoblet" #: pan/gui/gui.cc:2191 #, c-format msgid "Closing %d connection" msgid_plural "Closing %d connections" msgstr[0] "Lukker %d forbindelse" msgstr[1] "Lukker %d forbindelser" #: pan/gui/gui.cc:2193 pan/gui/gui.cc:2223 msgid "No Connections" msgstr "Ingen forbindelser" #: pan/gui/gui.cc:2197 msgid "Connecting" msgstr "Forbinder" #: pan/gui/gui.cc:2210 #, c-format msgid "%s: %d idle, %d active @ %.1f KiBps" msgstr "%s: %d venter, %d aktiv @ %.1f KiB/sek" #: pan/gui/gui.cc:2266 msgid "No Tasks" msgstr "Ingen opgaver" #: pan/gui/gui.cc:2268 pan/gui/prefs-ui.cc:1140 msgid "Tasks" msgstr "Opgaver" #: pan/gui/gui.cc:2285 pan/gui/task-pane.cc:478 #, c-format msgid "%lu tasks, %s, %.1f KiBps, ETA %d:%02d:%02d" msgstr "%lu opgaver, %s, %.1f KiB/sek, forventet: %d∶%02d∶%02d" #: pan/gui/gui.cc:2337 msgid "" "Pan is now offline. Please see \"File|Event Log\" and correct the problem, " "then use \"File|Work Online\" to continue." msgstr "" "Pan er nu afkoblet. Se i “Fil|Statusloggen” og korriger problemet, vælg " "derefter “Fil|Arbejd tilkoblet” for at fortsætte." #: pan/gui/header-pane.cc:1304 pan/gui/task-pane.cc:793 msgid "Subject or Author" msgstr "Emne eller forfatter" #: pan/gui/header-pane.cc:1305 pan/gui/task-pane.cc:794 msgid "Sub or Auth (regex)" msgstr "Emne eller forfatter (regulært udtryk)" #: pan/gui/header-pane.cc:1307 pan/gui/header-pane.cc:1767 #: pan/gui/prefs-ui.cc:890 pan/gui/score-add-ui.cc:140 pan/gui/task-pane.cc:796 msgid "Author" msgstr "Afsender" #: pan/gui/header-pane.cc:1752 pan/gui/prefs-ui.cc:894 msgid "Score" msgstr "Bedømmelse" #: pan/gui/log-ui.cc:105 msgid "Save Event List" msgstr "Gem hændelsesliste" #: pan/gui/log-ui.cc:259 msgid "Pan: Events" msgstr "Pan: Hændelser" #: pan/gui/log-ui.cc:318 msgid "Message" msgstr "Artikel" #: pan/gui/pan.cc:336 msgid "Maximize" msgstr "Maksimer" #: pan/gui/pan.cc:376 msgid "An error has occurred!" msgstr "Der opstod en fejl!" #: pan/gui/pan.cc:389 msgid "New Articles!" msgstr "Nye artikler!" #: pan/gui/pan.cc:390 msgid "" "There are new\n" "articles available." msgstr "" "Der er nye\n" "tilgængelige artikler." #: pan/gui/pan.cc:470 msgid "" "Thank you for trying Pan!\n" " \n" "To start newsreading, first Add a Server." msgstr "" "Tak fordi du prøver Pan!\n" "\n" "For at starte med at læse nyhedsgrupper skal du først tilføje en server." #: pan/gui/pan.cc:552 msgid "" "General Options\n" " -h, --help Show this usage information and exit.\n" " -v, --version Print release version and exit.\n" " --verbose Be verbose (in non-GUI mode).\n" " --debug Run in debug mode. Use --debug twice for verbose " "debug.\n" " --debug-ssl Run in TLS (aka SSL) debug mode.\n" "\n" "URL Options\n" " headers:group.name Download new headers for the specified " "newsgroup.\n" " news:message-id When specified together with --no-gui, dump\n" " the message-id article to standard output.\n" "\n" "NZB Batch Options\n" " --nzb file1 file2 ... Process NZB files in non-GUI mode.\n" " -o path, --output=path Path to save attachments listed in the NZB " "file(s).\n" " --no-gui Only show console output, not the download " "queue.\n" msgstr "" "Generelle tilvalg\n" " -h, --help Vis denne hjælpetekst og afslut.\n" " -v, --version Vis udgivelsesversion og afslut.\n" " --verbose Vær uddybende (i ikke-GUI-tilstand).\n" " --debug Afvikl i fejlsøgningstilstand. Brug --debug " "to gange for uddybende fejlsøgning.\n" " --debug-ssl Afvikl i TLS-fejlsøgningstilstand (aka SSL).\n" "\n" "URL-tilvalg\n" " headers:group.name Hent nye brevhoveder fra den angivne " "nyhedsgruppe.\n" " news:message-id Send meddelelses-id-artikler til " "standardoutput, når angivet sammen med --no-gui.\n" "\n" "NZB-batchtilvalg\n" " --nzb fil1 fil2 … Behandl nzb-filer i ikke-GUI-tilstand.\n" " -o sti, --output=sti Sti til at gemme bilag angivet i nzb-filer.\n" " --no-gui Vis kun konsoludskrift, ikke overførselskøen.\n" #: pan/gui/pan.cc:887 msgid "Error: --no-gui used without nzb files or news:message-id." msgstr "Fejl: --no-gui tilvalg brugt uden NZB-filer eller news:message-id." #: pan/gui/pan.cc:891 #, c-format msgid "Pan %s started" msgstr "Pan %s er startet" #: pan/gui/pan.cc:911 msgid "Please configure Pan's news servers before using it as an nzb client." msgstr "Konfigurér Pans nyhedsgruppeservere, før den bruges som NZB klient." #: pan/gui/pan.cc:1031 msgid "Pan notification" msgstr "Panpåmindelse" #: pan/gui/post-ui.cc:175 #, c-format msgid "Upload queue: %llu tasks, %ld KB (~ %.2f MB) total." msgstr "Send-kø: %llu opgaver, %ld kB (~ %.2f MB) i alt." #: pan/gui/post-ui.cc:384 msgid "_Profile" msgstr "_Profil" #: pan/gui/post-ui.cc:385 msgid "Set Editor" msgstr "Vælg redigeringsprogram" #: pan/gui/post-ui.cc:387 msgid "_Send Article" msgstr "_Send artikel" #: pan/gui/post-ui.cc:387 msgid "Send Article Now" msgstr "Send artikel nu" #: pan/gui/post-ui.cc:388 msgid "_Send and Save Articles to NZB" msgstr "_Send og gem artikler til en NZB-fil" #: pan/gui/post-ui.cc:388 msgid "Send and Save Articles to NZB" msgstr "Send og gem artikler til en NZB-fil" #: pan/gui/post-ui.cc:389 msgid "Set Character _Encoding..." msgstr "Tegns_æt …" #: pan/gui/post-ui.cc:390 msgid "Set Content _Transfer Encoding..." msgstr "Angiv kodning for indholds_overførsel …" #: pan/gui/post-ui.cc:391 msgid "Sa_ve Draft" msgstr "Gem en _kladde" #: pan/gui/post-ui.cc:391 msgid "Save as a Draft for Future Posting" msgstr "Gem kladde for senere afsendelse" #: pan/gui/post-ui.cc:392 msgid "_Open Draft..." msgstr "_Åbn kladde …" #: pan/gui/post-ui.cc:392 msgid "Open an Article Draft" msgstr "Åbn artikel-kladde" #: pan/gui/post-ui.cc:397 msgid "_Rot13" msgstr "_Rot13" #: pan/gui/post-ui.cc:397 msgid "Rot13 Selected Text" msgstr "Rot13 markeret tekst" #: pan/gui/post-ui.cc:398 msgid "Run _Editor" msgstr "R_ediger" #: pan/gui/post-ui.cc:398 msgid "Run Editor" msgstr "Kør redigeringsprogram" #: pan/gui/post-ui.cc:400 msgid "Add _Files to Queue" msgstr "Tilføj _filer til kø" #: pan/gui/post-ui.cc:400 msgid "Add Files to Queue" msgstr "Tilføj filer til kø" #: pan/gui/post-ui.cc:415 pan/gui/post-ui.cc:416 msgid "Remove from Queue" msgstr "Fjern fra kø" #: pan/gui/post-ui.cc:420 pan/gui/post-ui.cc:421 msgid "Clear List" msgstr "Ryd liste" #: pan/gui/post-ui.cc:425 pan/gui/post-ui.cc:426 msgid "Select Needed Parts" msgstr "Vælg krævede dele" #: pan/gui/post-ui.cc:430 pan/gui/post-ui.cc:431 pan/gui/task-pane.cc:680 #: pan/gui/task-pane.cc:681 msgid "Move Up" msgstr "Flyt op" #: pan/gui/post-ui.cc:435 pan/gui/post-ui.cc:436 pan/gui/task-pane.cc:685 #: pan/gui/task-pane.cc:686 msgid "Move Down" msgstr "Flyt ned" #: pan/gui/post-ui.cc:440 pan/gui/post-ui.cc:441 msgid "Move to Top" msgstr "Flyt øverst" #: pan/gui/post-ui.cc:445 pan/gui/post-ui.cc:446 msgid "Move to Bottom" msgstr "Flyt nederst" #: pan/gui/post-ui.cc:453 msgid "_Wrap Text" msgstr "Om_bryd tekst" #: pan/gui/post-ui.cc:453 msgid "Wrap Text" msgstr "Ombryd tekst" #: pan/gui/post-ui.cc:454 msgid "Always Run Editor" msgstr "Start altid redigering" #: pan/gui/post-ui.cc:455 msgid "Remember Character Encoding for This Group" msgstr "Husk tegnkodning for denne gruppe" #: pan/gui/post-ui.cc:456 msgid "Thread Attached Replies" msgstr "Arranger vedhæftede svar i tråde" #: pan/gui/post-ui.cc:457 msgid "PGP-Encrypt the Article" msgstr "Krypter artiklen med PGP" #: pan/gui/post-ui.cc:458 msgid "PGP-Sign the Article" msgstr "Underskriv artiklen med PGP" #: pan/gui/post-ui.cc:459 msgid "Check _Spelling" msgstr "_Stavekontrol" #: pan/gui/post-ui.cc:478 msgid "New Article's Encoding:" msgstr "Tegn-indkodning for ny artikel:" #: pan/gui/post-ui.cc:488 msgid "Content Transfer Encoding" msgstr "Kodning for indholdsoverførsel" #: pan/gui/post-ui.cc:489 msgid "New Article's Content Transfer Encoding:" msgstr "Ny artikels kodning for indholdsoverførsel:" #: pan/gui/post-ui.cc:673 msgid "Your changes will be lost!" msgstr "Dine ændringer vil gå tabt!" #: pan/gui/post-ui.cc:674 msgid "Close this window and lose your changes?" msgstr "Luk vinduet og mist ændringer?" #: pan/gui/post-ui.cc:719 pan/gui/post-ui.cc:758 msgid "There were problems with this post." msgstr "Der var problemer med denne artikel." #: pan/gui/post-ui.cc:721 pan/gui/post-ui.cc:760 pan/gui/post-ui.cc:825 msgid "Go Back" msgstr "Blad tilbage" #: pan/gui/post-ui.cc:723 msgid "Continue Anyway" msgstr "Fortsæt alligevel" #. Prompt the user #: pan/gui/post-ui.cc:752 #, c-format msgid "" "Message uses characters not specified in charset '%s' - possibly use '%s' " msgstr "" "Beskeden bruger tegn, som ikke er angivet i tegnsættet “%s” – brug eventuelt " "“%s” " #: pan/gui/post-ui.cc:775 msgid "Go _Online" msgstr "_Tilslut" #: pan/gui/post-ui.cc:824 msgid "The file queue is empty, so no files can be saved." msgstr "Filkøen er tom, så ingen filer kan gemmes." #: pan/gui/post-ui.cc:1004 msgid "IO Error" msgstr "IO-fejl" #: pan/gui/post-ui.cc:1004 msgid "No space left on device" msgstr "Ingen plads tilbage på enheden" #: pan/gui/post-ui.cc:1005 #, c-format msgid "Error copying message to %s folder. Reason: %s" msgstr "" "Der opstod en fejl under kopiering af beskeden til mappen %s. Årsag: %s" #: pan/gui/post-ui.cc:1011 #, c-format msgid "Error creating message in %s mail folder: Invalid article." msgstr "" "Der opstod en fejl under oprettelse af beskeden i postmappen %s: Ugyldig " "artikel." #: pan/gui/post-ui.cc:1033 msgid "" "No posting server is set for this posting profile.\n" "Please edit the profile via Edit|Manage Posting Profiles." msgstr "" "Ingen afsendelsesserver er indstillet for denne profil.\n" "Rediger profilen via Rediger|Afsenderprofiler." #: pan/gui/post-ui.cc:1038 msgid "" "The selected posting server is currently disabled. Please choose an " "appropriate alternative." msgstr "" "Den valgte postserver er i øjeblikket deaktiveret. Vælg venligst et passende " "alternativ." #: pan/gui/post-ui.cc:1080 msgid "Pan is Offline." msgstr "Pan er frakoblet." #: pan/gui/post-ui.cc:1081 msgid "Go online to post the article?" msgstr "Tilkoble for at sende artiklen?" #: pan/gui/post-ui.cc:1130 #, c-format msgid "" "Error signing/encrypting your message. Perhaps you misspelled your email " "address (%s)?" msgstr "" "Der opstod en fejl under underskrivning/kryptering af din besked. Måske " "lavede du en stavefejl i din e-postadresse (%s)?" #: pan/gui/post-ui.cc:1280 msgid "Error opening temporary file" msgstr "Fejl ved åbningen af midlertidig fil" #: pan/gui/post-ui.cc:1291 #, c-format msgid "Error creating temporary file: %s" msgstr "Der opstod en fejl under oprettelse af midlertidig fil: %s" #: pan/gui/post-ui.cc:1299 #, c-format msgid "Error writing article to temporary file: %s" msgstr "Fejl ved skrivning af artikel til temporær fil: %s" #: pan/gui/post-ui.cc:1372 msgid "Open Draft Article" msgstr "Åbn kladde" #: pan/gui/post-ui.cc:1614 msgid "Save Draft Article" msgstr "Gem kladde" #: pan/gui/post-ui.cc:1652 msgid "File already exists." msgstr "Filen findes allerede." #: pan/gui/post-ui.cc:1653 msgid "Overwrite it?" msgstr "Overskriv den?" #: pan/gui/post-ui.cc:1862 #, c-format msgid "Couldn't parse signature command \"%s\": %s" msgstr "Kunne ikke fortolke signaturkommando “%s”: %s" #: pan/gui/post-ui.cc:1898 msgid "Couldn't convert signature to UTF-8." msgstr "Kunne ikke konvertere signaturfilen til UTF-8." #: pan/gui/post-ui.cc:2410 msgid "F_rom" msgstr "_Fra" #: pan/gui/post-ui.cc:2427 msgid "_Subject" msgstr "_Emne" #: pan/gui/post-ui.cc:2440 msgid "_Newsgroups" msgstr "_Nyhedsgrupper" #: pan/gui/post-ui.cc:2454 msgid "Mail _To" msgstr "E-post _til" #: pan/gui/post-ui.cc:2557 msgid "Delete from Queue" msgstr "Slet fra kø" #: pan/gui/post-ui.cc:2570 msgid "No." msgstr "Nej." #: pan/gui/post-ui.cc:2574 pan/gui/post-ui.cc:2666 pan/gui/post-ui.cc:2707 msgid "Filename" msgstr "Filnavn" #: pan/gui/post-ui.cc:2576 msgid "Size (KB)" msgstr "Størrelse (KB)" #: pan/gui/post-ui.cc:2674 msgid "The current filename" msgstr "Det nuværende filnavn" #: pan/gui/post-ui.cc:2678 msgid "Subject Line" msgstr "Emnelinje" #: pan/gui/post-ui.cc:2686 msgid "The current subject line" msgstr "Den nuværende emnelinje" #: pan/gui/post-ui.cc:2700 msgid "No. " msgstr "Nr. " #: pan/gui/post-ui.cc:2704 msgid "Enable/Disable" msgstr "Aktiver/deaktiver" #: pan/gui/post-ui.cc:2738 msgid "Follo_wup-To" msgstr "Opf_ølgning-til" #. i18n: "poster" is a key used by many newsreaders. probably safest to keep this key in english. #: pan/gui/post-ui.cc:2747 msgid "" "The newsgroups where replies to your message should go. This is only needed " "if it differs from the \"Newsgroups\" header.\n" "\n" "To direct all replies to your email address, use \"Followup-To: poster\"" msgstr "" "Nyhedsgrupperne hvortil svar på din publicerede artikel skal gå. Dette " "behøves kun hvis det adskiller sig fra “Nyhedsgrupper”-hovedet.\n" "\n" "For at lade alle svar gå til din e-postadresse kan du bruge “Opfølgning-til: " "afsender”" #: pan/gui/post-ui.cc:2754 msgid "_Reply-To" msgstr "_Svar-til" #: pan/gui/post-ui.cc:2762 msgid "" "The email account where mail replies to your posted message should go. This " "is only needed if it differs from the \"From\" header." msgstr "" "Den e-postkonto hvortil e-postsvar til din publicerede besked skal gå. Dette " "behøves kun, hvis det adskiller sig fra “Fra”-brevhovedet." #: pan/gui/post-ui.cc:2769 msgid "_Custom Headers" msgstr "_Brugerdefinerede brevhoveder" #: pan/gui/post-ui.cc:2793 msgid "Add \"_User-Agent\" header" msgstr "Tilføj “_User-Agent”-brevhovedet" #: pan/gui/post-ui.cc:2800 msgid "Add \"Message-_ID\" header" msgstr "T_ilføj “Besked-id”-brevhovedet" #: pan/gui/post-ui.cc:2928 msgid "Select Parts" msgstr "Marker dele" #: pan/gui/post-ui.cc:2941 msgid "_Parts" msgstr "_Dele" #: pan/gui/post-ui.cc:3108 msgid "Post Article" msgstr "Send artikel" #: pan/gui/post-ui.cc:3129 msgid "_Message" msgstr "_Artikel" #: pan/gui/post-ui.cc:3130 msgid "More _Headers" msgstr "Flere brev_hoveder" #: pan/gui/post-ui.cc:3131 msgid "File _Queue" msgstr "Fil_kø" #: pan/gui/post-ui.cc:3162 pan/gui/profiles-dialog.cc:490 #, no-c-format msgid "On %d, %n wrote:" msgstr "Den %d skrev %n:" #: pan/gui/post-ui.cc:3191 msgid "Add files to queue" msgstr "Tilføj filer til kø" #: pan/gui/post-ui.cc:3267 msgid "Save Upload Queue as NZB File" msgstr "Gem overførselskø som en NZB-fil" #: pan/gui/prefs.cc:368 #, c-format msgid "Couldn't parse %s color \"%s\"" msgstr "Kunne ikke fortolke %s farve “%s”" #: pan/gui/prefs-ui.cc:140 msgid "Grab Key" msgstr "Indfang tast" #: pan/gui/prefs-ui.cc:146 #, c-format msgid "" "Press the combination of the keys\n" "you want to use for \"%s\"." msgstr "" "Tryk på kombinationen af taster,\n" "du ønsker at bruge for “%s”." #: pan/gui/prefs-ui.cc:183 msgid "Edit Shortcut" msgstr "Rediger genvej" #: pan/gui/prefs-ui.cc:244 msgid "Error: Shortcut key is invalid!" msgstr "Fejl: Genvejstast er ugyldig!" #: pan/gui/prefs-ui.cc:260 msgid "Error: Shortcut key already exists!" msgstr "Fejl: Genvejstast findes allerede!" #: pan/gui/prefs-ui.cc:601 msgid "Show only icons" msgstr "Vis kun ikoner" #: pan/gui/prefs-ui.cc:602 msgid "Show only text" msgstr "Vis kun tekst" #: pan/gui/prefs-ui.cc:603 msgid "Show icons and text" msgstr "Vis ikoner og tekst" #: pan/gui/prefs-ui.cc:642 msgid "Use GNOME Preferences" msgstr "Brug indstillinger fra Gnome" #: pan/gui/prefs-ui.cc:643 msgid "Use KDE Preferences" msgstr "Brug indstillinger fra KDE" #: pan/gui/prefs-ui.cc:644 msgid "Use OS X Preferences" msgstr "Brug indstillinger fra OS X" #: pan/gui/prefs-ui.cc:645 msgid "Use Windows Preferences" msgstr "Brug indstillinger fra Windows" #: pan/gui/prefs-ui.cc:646 msgid "Custom Command:" msgstr "Brugerdefineret kommando:" #: pan/gui/prefs-ui.cc:698 msgid "Disabled" msgstr "Deaktiveret" #: pan/gui/prefs-ui.cc:699 msgid "Only new (score == 0)" msgstr "Kun ny (bedømmelse == 0)" #: pan/gui/prefs-ui.cc:700 msgid "9999 or more" msgstr "9999 eller over" #: pan/gui/prefs-ui.cc:701 msgid "5000 to 9998" msgstr "5000 til 9998" #: pan/gui/prefs-ui.cc:702 msgid "1 to 4999" msgstr "1 til 4999" #: pan/gui/prefs-ui.cc:703 msgid "-9998 to -1" msgstr "-9998 til -1" #: pan/gui/prefs-ui.cc:704 msgid "-9999 or less" msgstr "-9999 eller under" #: pan/gui/prefs-ui.cc:770 #, c-format msgid "Select default global character set. Current setting: %s." msgstr "Vælg globalt tegnsæt. Nuværende indstilling: %s." #: pan/gui/prefs-ui.cc:801 msgid "Global Character Set Settings" msgstr "Globale indstillinger for tegnsæt" #: pan/gui/prefs-ui.cc:895 pan/gui/task-pane.cc:1067 msgid "State" msgstr "Tilstand" #: pan/gui/prefs-ui.cc:929 msgid "Enabled" msgstr "Tilladt" #: pan/gui/prefs-ui.cc:933 msgid "Column Name" msgstr "Kolonnenavn" #: pan/gui/prefs-ui.cc:981 msgid "Pan: Preferences" msgstr "Pan: indstillinger" #: pan/gui/prefs-ui.cc:996 msgid "Mouse" msgstr "Mus" #: pan/gui/prefs-ui.cc:998 msgid "Single-click activates, rather than selects, _groups" msgstr "Enkeltklik aktiverer _grupper i stedet for at vælge dem" #: pan/gui/prefs-ui.cc:1000 msgid "Single-click activates, rather than selects, _articles" msgstr "Enkeltklik vælger _artikler i stedet for at aktivere dem" #: pan/gui/prefs-ui.cc:1003 msgid "Groups" msgstr "Grupper" #: pan/gui/prefs-ui.cc:1005 msgid "Get new headers in subscribed groups on _startup" msgstr "Hent nye brevhoveder i abonnerede grupper ved _start" #: pan/gui/prefs-ui.cc:1007 msgid "Get new headers when _entering group" msgstr "_Hent nye brevhoveder når en gruppe åbnes" #: pan/gui/prefs-ui.cc:1009 msgid "Mark entire group _read when leaving group" msgstr "Markér gruppens artikler som _læst når den forlades" #: pan/gui/prefs-ui.cc:1011 msgid "Mark entire group read before getting _new headers" msgstr "_Markér gruppens artikler som læst, før der hentes nye brevhoveder" #: pan/gui/prefs-ui.cc:1013 msgid "E_xpand all threads when entering group" msgstr "_Udvid alle tråde når en gruppe åbnes" #: pan/gui/prefs-ui.cc:1018 msgid "Articles" msgstr "Artikler" #: pan/gui/prefs-ui.cc:1020 msgid "Mark downloaded articles read" msgstr "Marker hentede artikler som læst" #: pan/gui/prefs-ui.cc:1022 msgid "Space selects next article rather than next unread" msgstr "Mellemrum vælger næste artikel i stedet for næste ulæste" #: pan/gui/prefs-ui.cc:1024 msgid "Expand threads upon selection" msgstr "Udfold tråde ved markering" #: pan/gui/prefs-ui.cc:1026 msgid "Always ask before deleting an article" msgstr "Spørg altid før en artikel slettes" #: pan/gui/prefs-ui.cc:1028 msgid "Smooth scrolling" msgstr "Blød rulning" #: pan/gui/prefs-ui.cc:1033 msgid "Article Cache" msgstr "Artikelmellemlager" #: pan/gui/prefs-ui.cc:1034 msgid "Clear article cache on shutdown" msgstr "Ryd mellemlager ved afslutning" #: pan/gui/prefs-ui.cc:1037 msgid "Size of article cache (in MiB):" msgstr "Størrelse på artikelmellemlager (i MiB):" #: pan/gui/prefs-ui.cc:1041 msgid "File extension for cached articles: " msgstr "Filudvidelse for mellemlagrede artikler: " #: pan/gui/prefs-ui.cc:1045 msgid "Tabs" msgstr "Faneblade" #: pan/gui/prefs-ui.cc:1050 msgid "_Behavior" msgstr "_Brugerflade" #: pan/gui/prefs-ui.cc:1050 msgid "Behavior" msgstr "Opførsel" #: pan/gui/prefs-ui.cc:1056 msgid "Task Pane" msgstr "Opgavepanel" #: pan/gui/prefs-ui.cc:1057 msgid "Show task pane popups" msgstr "Vis pop op'er for opgavepanel" #: pan/gui/prefs-ui.cc:1059 msgid "Show Download Meter" msgstr "Vis måling af overførselshastighed" #: pan/gui/prefs-ui.cc:1063 msgid "_Panes" msgstr "_Paneler" #: pan/gui/prefs-ui.cc:1063 msgid "Panes" msgstr "Paneler" #: pan/gui/prefs-ui.cc:1069 msgid "Language Settings" msgstr "Sprogindstillinger" #: pan/gui/prefs-ui.cc:1070 msgid "Font" msgstr "Skrifttype" #. systray and notify popup #: pan/gui/prefs-ui.cc:1077 msgid "System Tray Behavior" msgstr "Opførsel for statusfelt" #: pan/gui/prefs-ui.cc:1079 msgid "Start Pan minimized" msgstr "Start Pan minimeret" #: pan/gui/prefs-ui.cc:1082 msgid "Show notifications" msgstr "Vis påmindelser" #. allow multiple instances (seperate, not communicating with dbus) #: pan/gui/prefs-ui.cc:1087 msgid "Startup Behavior" msgstr "Opstartsopførsel" #: pan/gui/prefs-ui.cc:1089 msgid "Allow multiple instances of Pan" msgstr "Tillad flere instanser af Pan" #: pan/gui/prefs-ui.cc:1094 msgid "Autosave Article Draft" msgstr "Gem automatisk artikelkladde" #: pan/gui/prefs-ui.cc:1096 msgid "Minutes to autosave the current Article Draft: " msgstr "Minutinterval hvor artikelkladde gemmes automatisk: " #: pan/gui/prefs-ui.cc:1101 msgid "Autosave Articles" msgstr "Gem automatisk artikler" #: pan/gui/prefs-ui.cc:1103 msgid "Minutes to autosave newsrc files: " msgstr "Minutinterval hvor newsrc-filer gemmes automatisk: " #: pan/gui/prefs-ui.cc:1110 msgid "Password Storage" msgstr "Adgangskodelager" #: pan/gui/prefs-ui.cc:1112 msgid "Save passwords in password storage" msgstr "Gem adgangskoder i adgangskodelageret" #: pan/gui/prefs-ui.cc:1119 msgid "_Miscellaneous" msgstr "_Diverse" #: pan/gui/prefs-ui.cc:1119 msgid "Miscellaneous" msgstr "Diverse" #: pan/gui/prefs-ui.cc:1124 msgid "Pane Layout" msgstr "Panellayout" #: pan/gui/prefs-ui.cc:1143 msgid "1=Groups, 2=Headers, 3=Body" msgstr "1=Grupper, 2=Brevhoveder, 3=Brødtekst" #: pan/gui/prefs-ui.cc:1145 msgid "1=Groups, 2=Body, 3=Headers" msgstr "1=Grupper, 2=Brødtekst, 3=Brevhoveder" #: pan/gui/prefs-ui.cc:1147 msgid "1=Headers, 2=Groups, 3=Body" msgstr "1=Brevhoveder, 2=Grupper, 3=Brødtekst" #: pan/gui/prefs-ui.cc:1149 msgid "1=Headers, 2=Body, 3=Groups" msgstr "1=Brevhoveder, 2=Brødtekst, 3=Grupper" #: pan/gui/prefs-ui.cc:1151 msgid "1=Body, 2=Groups, 3=Headers" msgstr "1=Brødtekst, 2=Grupper, 3=Brevhoveder" #: pan/gui/prefs-ui.cc:1153 msgid "1=Body, 2=Headers, 3=Groups" msgstr "1=Brødtekst, 2=brevhoveder, 3=Grupper" #: pan/gui/prefs-ui.cc:1157 msgid "Layout" msgstr "Layout" #: pan/gui/prefs-ui.cc:1162 msgid "Header Pane Columns" msgstr "Kolonner i brevhovedpanel" #: pan/gui/prefs-ui.cc:1166 msgid "_Headers" msgstr "_Brevhoveder" #: pan/gui/prefs-ui.cc:1166 msgid "Headers" msgstr "Brevhoveder" #: pan/gui/prefs-ui.cc:1172 msgid "" "This menu lets you configure Pan to take certain actions on your behalf " "automatically, based on an article's score." msgstr "" "Denne menu lader dig konfigurere Pan til at udføre bestemte handlinger på " "dine vegne automatisk, baseret på en artikels bedømmelse." #: pan/gui/prefs-ui.cc:1177 msgid "Mark affected articles read" msgstr "Marker påvirkede artikler læst" # dvs. "delete articles which score at: -9999 or below", f.eks. # (fandt den i programmet) #: pan/gui/prefs-ui.cc:1186 msgid "_Delete articles scoring at: " msgstr "_Slet artikler med bedømmelsen: " #: pan/gui/prefs-ui.cc:1192 msgid "Mark articles read scoring at: " msgstr "Marker artikler som læst, hvis bedømmelsen er: " #: pan/gui/prefs-ui.cc:1198 msgid "_Cache articles scoring at: " msgstr "_Mellemlagr artikler med bedømmelsen: " #: pan/gui/prefs-ui.cc:1204 msgid "Download attachments of articles scoring at: " msgstr "Hent bilag for artikler med bedømmelsen: " #: pan/gui/prefs-ui.cc:1207 msgid "Actions" msgstr "Handlinger" #: pan/gui/prefs-ui.cc:1212 pan/gui/prefs-ui.cc:1233 msgid "Fonts" msgstr "Skrifttyper" #: pan/gui/prefs-ui.cc:1214 msgid "Use custom font in Group Pane:" msgstr "Brug egne skrifttyper i gruppepanelet:" #: pan/gui/prefs-ui.cc:1219 msgid "Use custom font in Header Pane:" msgstr "Brug egne skrifttyper i brevhovedpanelet:" #: pan/gui/prefs-ui.cc:1224 msgid "Use custom font in Body Pane:" msgstr "Brug egne skrifttyper i brødtekstpanelet:" #: pan/gui/prefs-ui.cc:1229 msgid "Monospace font:" msgstr "Skrifttype med fast bredde:" #: pan/gui/prefs-ui.cc:1233 msgid "_Fonts" msgstr "_Skrifttyper" #: pan/gui/prefs-ui.cc:1242 msgid "Header Pane" msgstr "Brevhovedpanel" #: pan/gui/prefs-ui.cc:1245 pan/gui/prefs-ui.cc:1251 pan/gui/prefs-ui.cc:1257 #: pan/gui/prefs-ui.cc:1263 pan/gui/prefs-ui.cc:1269 pan/gui/prefs-ui.cc:1275 #: pan/gui/prefs-ui.cc:1284 pan/gui/prefs-ui.cc:1290 pan/gui/prefs-ui.cc:1296 #: pan/gui/prefs-ui.cc:1302 pan/gui/prefs-ui.cc:1308 pan/gui/prefs-ui.cc:1318 #: pan/gui/prefs-ui.cc:1328 msgid "Text:" msgstr "Tekst:" #: pan/gui/prefs-ui.cc:1247 pan/gui/prefs-ui.cc:1253 pan/gui/prefs-ui.cc:1259 #: pan/gui/prefs-ui.cc:1265 pan/gui/prefs-ui.cc:1271 pan/gui/prefs-ui.cc:1277 #: pan/gui/prefs-ui.cc:1286 pan/gui/prefs-ui.cc:1292 pan/gui/prefs-ui.cc:1298 #: pan/gui/prefs-ui.cc:1304 pan/gui/prefs-ui.cc:1310 pan/gui/prefs-ui.cc:1320 #: pan/gui/prefs-ui.cc:1330 msgid "Background:" msgstr "Baggrund:" #: pan/gui/prefs-ui.cc:1249 msgid "Scores of 9999 or more:" msgstr "Udvælg bedømmelser på 9999 eller over:" #: pan/gui/prefs-ui.cc:1255 msgid "Scores from 5000 to 9998:" msgstr "Bedømmelser fra 5000 til 9998:" #: pan/gui/prefs-ui.cc:1261 msgid "Scores from 1 to 4999:" msgstr "Bedømmelser fra 1 til 4999:" #: pan/gui/prefs-ui.cc:1267 msgid "Scores from -9998 to -1:" msgstr "Bedømmelser fra -9998 til -1:" #: pan/gui/prefs-ui.cc:1273 msgid "Scores of -9999 or less:" msgstr "Bedømmelser på -9999 eller under:" #: pan/gui/prefs-ui.cc:1279 msgid "Collapsed thread with unread articles:" msgstr "Sammenfoldet tråd med ulæste artikler:" #: pan/gui/prefs-ui.cc:1281 msgid "Body Pane" msgstr "Brødtekstpanel" #: pan/gui/prefs-ui.cc:1288 msgid "First level of quoted text:" msgstr "Første niveau for citeret tekst:" #: pan/gui/prefs-ui.cc:1294 msgid "Second level of quoted text:" msgstr "Andet niveau for citeret tekst:" #: pan/gui/prefs-ui.cc:1300 msgid "Third level of quoted text:" msgstr "Tredje niveau for citeret tekst:" #. #: pan/gui/prefs-ui.cc:1306 msgid "URL:" msgstr "URL:" #. #: pan/gui/prefs-ui.cc:1312 msgid "Signature:" msgstr "Signatur:" #: pan/gui/prefs-ui.cc:1315 msgid "Group Pane" msgstr "Gruppepanel" #. #: pan/gui/prefs-ui.cc:1322 msgid "Group Color:" msgstr "Gruppefarve:" #: pan/gui/prefs-ui.cc:1326 msgid "Other Text" msgstr "Anden tekst" #: pan/gui/prefs-ui.cc:1332 msgid "Text Color:" msgstr "Tekstfarve:" #: pan/gui/prefs-ui.cc:1335 msgid "_Colors" msgstr "_Farver" #: pan/gui/prefs-ui.cc:1335 msgid "Colors" msgstr "Farver" #: pan/gui/prefs-ui.cc:1340 msgid "Preferred Applications" msgstr "Foretrukne programmer" #: pan/gui/prefs-ui.cc:1344 msgid "_Web browser:" msgstr "_Internetbrowser:" #: pan/gui/prefs-ui.cc:1347 msgid "_Gemini client:" msgstr "_Gemini-klient:" #: pan/gui/prefs-ui.cc:1350 msgid "_Mail reader:" msgstr "_Postlæser:" #: pan/gui/prefs-ui.cc:1352 msgid "_Text editor:" msgstr "_Tekstredigering:" #: pan/gui/prefs-ui.cc:1354 msgid "_HTML previewer:" msgstr "_HTML-forhåndsviser:" #: pan/gui/prefs-ui.cc:1356 msgid "_Applications" msgstr "_Programmer" #: pan/gui/prefs-ui.cc:1356 msgid "Applications" msgstr "Programmer" #: pan/gui/prefs-ui.cc:1361 pan/gui/task-pane.cc:555 msgid "Encoding" msgstr "Kodning" #: pan/gui/prefs-ui.cc:1365 msgid "Default bytes per file (for encoder): " msgstr "Antal byte per fil (for koder): " #: pan/gui/prefs-ui.cc:1370 msgid "_Upload" msgstr "_Overfør" #: pan/gui/prefs-ui.cc:1370 msgid "Upload" msgstr "Overfør" #: pan/gui/prefs-ui.cc:1379 msgid "_Shortcuts" msgstr "_Genveje" #: pan/gui/prefs-ui.cc:1379 msgid "Shortcuts" msgstr "Genveje" #: pan/gui/profiles-dialog.cc:83 msgid "Please choose your email address according to your PGP key's user id." msgstr "Vælg venligst din e-postadresse jævnfør din PGP-nøgles bruger-id." #: pan/gui/profiles-dialog.cc:131 msgid "Posting Profile" msgstr "Profil" #: pan/gui/profiles-dialog.cc:143 msgid "Profile Information" msgstr "Profilinformation" #: pan/gui/profiles-dialog.cc:147 msgid "_Profile Name:" msgstr "_Profilnavn:" #: pan/gui/profiles-dialog.cc:150 msgid "Required Information" msgstr "Nødvendig information" #: pan/gui/profiles-dialog.cc:154 msgid "_Full Name:" msgstr "_Fulde navn:" #: pan/gui/profiles-dialog.cc:158 msgid "" "Your email address.\n" "Note that this has to match your PGP signature's address\n" "if you want your messages to be PGP-signed or encrypted correctly." msgstr "" "Din e-postadresse.\n" "Bemærk at denne skal matche din PGP-signaturs adresse hvis\n" "du ønsker, at dine beskeder skal PGP-underskrives eller\n" "krypteres korrekt." #: pan/gui/profiles-dialog.cc:162 msgid "_Email Address:" msgstr "_E-postadresse:" #: pan/gui/profiles-dialog.cc:164 msgid "_Post Articles via:" msgstr "Send artikler _via:" #: pan/gui/profiles-dialog.cc:167 msgid "Signature" msgstr "Signatur" #: pan/gui/profiles-dialog.cc:170 msgid "_Use a Signature" msgstr "Brug _signatur" #: pan/gui/profiles-dialog.cc:174 msgid "Signature File" msgstr "Signaturfil" #: pan/gui/profiles-dialog.cc:184 msgid "Text File" msgstr "Tekstfil" #: pan/gui/profiles-dialog.cc:186 msgid "Text" msgstr "Tekst" #: pan/gui/profiles-dialog.cc:188 msgid "Command" msgstr "Kommando" #: pan/gui/profiles-dialog.cc:191 msgid "PGP Signature" msgstr "PGP-signatur" #: pan/gui/profiles-dialog.cc:196 msgid "Signature Type: " msgstr "Signaturtype: " #: pan/gui/profiles-dialog.cc:227 msgid "Avatars" msgstr "Avatarer" #: pan/gui/profiles-dialog.cc:230 msgid "" "You can add an avatar icon to your articles with a Base64-encoded PNG.\n" "Add the Base64-encoded picture without the trailing “Face:”." msgstr "" "Du kan tilføje et avatarikon til dine artikler med en Base64-kodet PNG.\n" "Tilføj det Base64-kodede billede uden efterstillet “Face:”." #: pan/gui/profiles-dialog.cc:232 msgid "_Face:" msgstr "_Face:" #: pan/gui/profiles-dialog.cc:236 msgid "" "You can add an avatar icon to your articles with a unique X-Face code.\n" "Add the code without the trailing \"X-Face:\" \n" " if it was generated by a helper program (for example http://www.dairiki.org/" "xface/xface.php)." msgstr "" "Du kan tilføje et avatarikon til dine artikler med en unik X-Face-kode.\n" "Tilføj koden uden efterstillet “X-Face:” \n" " hvis ikonet blev oprettet af et hjælpeprogram (f.eks. http://www.dairiki." "org/xface/xface.php)." #: pan/gui/profiles-dialog.cc:239 msgid "_X-Face:" msgstr "_X-Face:" #: pan/gui/profiles-dialog.cc:241 msgid "Optional Information" msgstr "Valgfri information" #: pan/gui/profiles-dialog.cc:246 msgid "" "When posting to Usenet, your article's Message-ID contains a domain name.\n" "You can set a custom domain name here, or leave it blank to let Pan use the " "domain name from your email address." msgstr "" "Når du sender til Usenet, indeholder din artikels besked-id et domænenavn.\n" "Du kan angive et selvvalgt domænenavn her, eller lade feltet stå tomt og Pan " "indsætte domænenavnet fra din e-postadresse." #: pan/gui/profiles-dialog.cc:249 msgid "Message-ID _Domain Name:" msgstr "_Domænenavn for meddelelses-ID:" #: pan/gui/profiles-dialog.cc:253 #, c-format msgid "" "%i for Message-ID\n" "%a for Author and Address\n" "%n for Author name\n" "%d for Date" msgstr "" "%i erstattes med meddelelses-ID\n" "%a erstattes med forfatterens navn og adresse\n" "%n erstattes med forfatterens navn\n" "%d erstattes med datoen" #: pan/gui/profiles-dialog.cc:254 msgid "_Attribution:" msgstr "_Tilskrivelse:" #. Translators: Do not localize Reply-To and the quote marks in \"Your Name\". #: pan/gui/profiles-dialog.cc:279 msgid "" "Extra headers to be included in your articles, such as\n" "Reply-To: \"Your Name\" \n" "Organization: Your Organization\n" msgstr "" "Ekstra brevhoveder som skal inkluderes i dine artikler såsom\n" "Svar-til: \"Dit navn\" \n" "Organisation: Din organisation\n" #: pan/gui/profiles-dialog.cc:289 msgid "E_xtra Headers:" msgstr "E_kstra brevhoveder:" #: pan/gui/profiles-dialog.cc:334 msgid "Invalid email address." msgstr "Ugyldig adresse." #: pan/gui/profiles-dialog.cc:335 msgid "Please use an address of the form joe@somewhere.org" msgstr "Benyt en adresse så som joe@somewhere.org" #: pan/gui/profiles-dialog.cc:491 msgid "New Profile" msgstr "Ny profil" #: pan/gui/profiles-dialog.cc:537 msgid "Posting Profiles" msgstr "Afsenderprofiler" #: pan/gui/profiles-dialog.cc:553 msgid "Profiles" msgstr "Profiler" #: pan/gui/save-attach-ui.cc:44 #, c-format msgid "" "%g - group as one directory (alt.binaries.pictures.trains)\n" "%G - group as nested directory (/alt/binaries/pictures/trains)\n" "%s - Subject line excerpt\n" "%S - Subject line\n" "%n - Poster display name\n" "%e - Poster email address\n" "%d - Article timestamp\n" "\"/home/user/News/Pan/%g\" becomes\n" "\"/home/user/News/Pan/alt.binaries.pictures.trains\", and\n" "\"/home/user/News/Pan/%G\" becomes\n" "\"/home/user/News/Pan/alt/binaries/pictures/trains\"," msgstr "" "%g — gruppe som et katalog (alt.binaries.pictures.trains)\n" "%G — gruppe som et hierarkisk katalog (/alt/binaries/pictures/trains)\n" "%s — uddrag af emnelinje\n" "%S — emnelinje\n" "%n — indsenders navn\n" "%e — indsenders e-postadresse\n" "%d — artikeltidsstempel\n" "“/home/bruger/News/Pan/%g” bliver\n" "“/home/bruger/News/Pan/alt.binaries.pictures.trains”, og\n" "“/home/bruger/News/Pan/%G” bliver\n" "“/home/bruger/News/Pan/alt/binaries/pictures/trains”," #: pan/gui/save-attach-ui.cc:196 pan/gui/save-ui.cc:216 msgid "Add to the queue sorted by date posted" msgstr "Tilføj til køen sorteret efter afsendelsesdato" #: pan/gui/save-attach-ui.cc:197 pan/gui/save-ui.cc:217 msgid "Add to the front of the queue" msgstr "Tilføj forrest i køen" #: pan/gui/save-attach-ui.cc:198 pan/gui/save-ui.cc:218 msgid "Add to the back of the queue" msgstr "Tilføj bagest i køen" #: pan/gui/save-attach-ui.cc:230 msgid "Pan: Save Attachments" msgstr "Pan: Gem bilag" #: pan/gui/save-attach-ui.cc:255 pan/gui/save-attach-ui.cc:273 #: pan/gui/save-ui.cc:270 pan/gui/save-ui.cc:291 msgid "_Location:" msgstr "_Placering:" #: pan/gui/save-attach-ui.cc:259 pan/gui/save-ui.cc:274 msgid "Save Articles" msgstr "Gem artikler" #: pan/gui/save-attach-ui.cc:276 pan/gui/save-ui.cc:294 #, c-format msgid "_Group's path: %s" msgstr "_Gruppens sti: %s" #: pan/gui/save-attach-ui.cc:287 pan/gui/save-ui.cc:309 msgid "_Priority:" msgstr "_Prioritet:" #: pan/gui/save-ui.cc:44 #, c-format msgid "" "%g - group as one directory (alt.binaries.pictures.trains)\n" "%G - group as nested directory (/alt/binaries/pictures/trains)\n" "%s - subject line excerpt\n" "%S - subject line\n" "%n - Poster display name\n" "%e - Poster email address\n" "%d - Article timestamp\n" " \n" "\"/home/user/News/Pan/%g\" becomes\n" "\"/home/user/News/Pan/alt.binaries.pictures.trains\", and\n" "\"/home/user/News/Pan/%G\" becomes\n" "\"/home/user/News/Pan/alt/binaries/pictures/trains\"," msgstr "" "%g — gruppe som et katalog (alt.binaries.pictures.trains)\n" "%G — gruppe som et hierarkisk katalog (/alt/binaries/pictures/trains)\n" "%s — uddrag for emnelinje\n" "%S — uddrag af emnelinje\n" "%n — indsenders navn\n" "%e — indsenders e-postadresse\n" "%d — artikeltidsstempel\n" " \n" "“/home/bruger/News/Pan/%g” bliver\n" "“/home/bruger/News/Pan/alt.binaries.pictures.trains”, og\n" "“/home/bruger/News/Pan/%G” bliver\n" "“/home/bruger/News/Pan/alt/binaries/pictures/trains”," #: pan/gui/save-ui.cc:207 msgid "Save attachments" msgstr "Gem bilag" #: pan/gui/save-ui.cc:208 msgid "Save text" msgstr "Gem artikeltekst" #: pan/gui/save-ui.cc:209 msgid "Save attachments and text" msgstr "Gem bilag og tekst" #: pan/gui/save-ui.cc:245 msgid "Pan: Save Articles" msgstr "Pan: Gem artikler" #: pan/gui/save-ui.cc:305 msgid "_Action:" msgstr "_Handling:" #: pan/gui/score-add-ui.cc:89 msgid "is more than" msgstr "er større end" #: pan/gui/score-add-ui.cc:90 msgid "is at most" msgstr "er højst" #: pan/gui/score-add-ui.cc:112 msgid "increase the article's score by" msgstr "forøg artiklens bedømmelse med" #: pan/gui/score-add-ui.cc:113 msgid "decrease the article's score by" msgstr "formindsk artiklens bedømmelse med" #: pan/gui/score-add-ui.cc:114 msgid "set the article's score to" msgstr "sæt artiklens bedømmelse til" #: pan/gui/score-add-ui.cc:115 msgid "watch the article (set its score to 9999)" msgstr "overvåg artikel (sæt bedømmelse til 9999)" #: pan/gui/score-add-ui.cc:116 msgid "ignore the article (set its score to -9999)" msgstr "ignorér artikel (sæt bedømmelse til -9999)" #: pan/gui/score-add-ui.cc:141 msgid "References" msgstr "Referencer" #: pan/gui/score-add-ui.cc:142 msgid "Line Count" msgstr "Antal linjer" #: pan/gui/score-add-ui.cc:143 msgid "Byte Count" msgstr "Antal byte" #: pan/gui/score-add-ui.cc:144 msgid "Crosspost Group Count" msgstr "Sendt til antal grupper" #: pan/gui/score-add-ui.cc:145 msgid "Age (in days)" msgstr "Alder (i dage)" #: pan/gui/score-add-ui.cc:167 msgid "for the next month" msgstr "i den næste måned" #: pan/gui/score-add-ui.cc:168 msgid "for the next six months" msgstr "i de næste seks måneder" #: pan/gui/score-add-ui.cc:169 msgid "forever" msgstr "altid" #: pan/gui/score-add-ui.cc:194 msgid "contains" msgstr "indeholder" #: pan/gui/score-add-ui.cc:195 msgid "doesn't contain" msgstr "indeholder ikke" #: pan/gui/score-add-ui.cc:196 msgid "is" msgstr "er" #: pan/gui/score-add-ui.cc:197 msgid "isn't" msgstr "er ikke" #: pan/gui/score-add-ui.cc:198 msgid "starts with" msgstr "begynder med" #: pan/gui/score-add-ui.cc:199 msgid "ends with" msgstr "ender med" #: pan/gui/score-add-ui.cc:200 msgid "matches regex" msgstr "stemmer med det regulære udtryk" #: pan/gui/score-add-ui.cc:481 msgid "Another rule already sets this article's score." msgstr "En anden regel sætter allerede denne artikels bedømmelse." #: pan/gui/score-add-ui.cc:482 msgid "You may want to go back or delete the old rule." msgstr "Gå eventuelt tilbage eller slet den gamle regel." #: pan/gui/score-add-ui.cc:484 msgid "Back" msgstr "Tilbage" #: pan/gui/score-add-ui.cc:485 pan/gui/task-pane.cc:1040 msgid "Delete" msgstr "Slet" #: pan/gui/score-add-ui.cc:486 pan/gui/score-add-ui.cc:607 #: pan/gui/score-view-ui.cc:207 msgid "Add" msgstr "Forøg" #: pan/gui/score-add-ui.cc:553 msgid "Add and Re_score" msgstr "Tilfø_j og ombedøm" #: pan/gui/score-add-ui.cc:602 pan/gui/score-add-ui.cc:622 msgid "New Scoring Rule" msgstr "Ny bedømmelsesregel" #: pan/gui/score-add-ui.cc:633 msgid "Group name" msgstr "Gruppenavn" #: pan/gui/score-add-ui.cc:640 msgid "and" msgstr "og" #: pan/gui/score-view-ui.cc:55 msgid "Close and Re_score" msgstr "Luk og _ombedøm" #: pan/gui/score-view-ui.cc:153 #, c-format msgid "File %s, Lines %d - %d" msgstr "Fil %s, Linje %d—%d" #: pan/gui/score-view-ui.cc:181 msgid "Pan: Article's Scores" msgstr "Pan: Vis artikelbedømmelser" #: pan/gui/score-view-ui.cc:212 msgid "New Score" msgstr "Ny bedømmelse" #: pan/gui/score-view-ui.cc:217 msgid "Criteria" msgstr "Kriterium" #: pan/gui/score-view-ui.cc:240 msgid "Add a New Scoring Rule" msgstr "Tilføj ny regel for bedømmelse" #: pan/gui/score-view-ui.cc:247 msgid "Remove the Selected Scoring Rule" msgstr "Fjern den markerede regel" #: pan/gui/server-ui.cc:292 msgid "Please specify the server's address." msgstr "Angiv serverens adresse." #: pan/gui/server-ui.cc:344 msgid "Import SSL Certificate (PEM Format) From File" msgstr "Importer SSL-certifikat (PEM-format) fra fil" #. create the dialog #: pan/gui/server-ui.cc:381 pan/gui/server-ui.cc:996 msgid "Add a Server" msgstr "Tilføj en server" #: pan/gui/server-ui.cc:381 pan/gui/server-ui.cc:1002 msgid "Edit a Server's Settings" msgstr "Rediger en servers indstillinger" #: pan/gui/server-ui.cc:401 msgid "Location" msgstr "Placering" #: pan/gui/server-ui.cc:405 msgid "The news server's actual address, e.g. \"news.mynewsserver.com\"." msgstr "Nyhedsserverens rigtige adresse, f.eks. “news.udbyder.dk”." #: pan/gui/server-ui.cc:406 msgid "_Address:" msgstr "_Adresse:" #: pan/gui/server-ui.cc:411 msgid "" "The news server's port number. Typically 119 for unencrypted and 563 for " "encrypted connections (SSL/TLS)." msgstr "" "Nyhedsgruppeserverens portnummer. Typisk 119 for uden kryptering og 563 for " "krypterede forbindelser (SSL/TLS)." #: pan/gui/server-ui.cc:412 msgid "Por_t:" msgstr "Por_tnummer:" #: pan/gui/server-ui.cc:415 msgid "Login (if Required)" msgstr "Login (hvis det kræves)" #: pan/gui/server-ui.cc:419 msgid "_Username:" msgstr "_Brugernavn:" #: pan/gui/server-ui.cc:420 msgid "" "The username to give the server when asked. If your server doesn't require " "authentication, you can leave this blank." msgstr "" "Brugernavn som angives til serveren ved anmodning. Hvis din server ikke " "kræver adgangskontrol så lad dette felt være tomt." #: pan/gui/server-ui.cc:424 msgid "_Password:" msgstr "_Adgangskode:" #: pan/gui/server-ui.cc:425 msgid "" "The password to give the server when asked. If your server doesn't require " "authentication, you can leave this blank." msgstr "" "Adgangskode som angives til serveren ved anmodning. Hvis din server ikke " "kræver adgangskontrol så lad dette felt være tomt." #: pan/gui/server-ui.cc:428 msgid "Settings" msgstr "Indstillinger" #: pan/gui/server-ui.cc:435 msgid "Connection _Limit:" msgstr "Tilslutnings_begrænsning:" #: pan/gui/server-ui.cc:439 msgid "After Two Weeks" msgstr "Efter To Uger" #: pan/gui/server-ui.cc:440 msgid "After One Month" msgstr "Efter En Måned" #: pan/gui/server-ui.cc:441 msgid "After Two Months" msgstr "Efter To Måneder" #: pan/gui/server-ui.cc:442 msgid "After Three Months" msgstr "Efter Tre Måneder" #: pan/gui/server-ui.cc:443 msgid "After Six Months" msgstr "Efter Seks Måneder" #: pan/gui/server-ui.cc:444 msgid "Never Expire Old Articles" msgstr "Udløber Aldrig" #: pan/gui/server-ui.cc:458 msgid "E_xpire Old Articles:" msgstr "Lad gamle artikler _udløbe:" #: pan/gui/server-ui.cc:462 msgid "Primary" msgstr "Primær" #: pan/gui/server-ui.cc:463 msgid "Fallback" msgstr "Støtte" #: pan/gui/server-ui.cc:477 msgid "Server Rank:" msgstr "Server rangorden:" #: pan/gui/server-ui.cc:481 msgid "" "Fallback servers are used for articles that can't be found on the " "primaries. One common approach is to use free servers as primaries and " "subscription servers as fallbacks." msgstr "" "Støtte-server bruges til artikler som ikke kan findes på de primære. En " "almindelig metode er at benytte gratis servere som primære og " "betalingsservere som støtte." #: pan/gui/server-ui.cc:486 msgid "Disable Compression (N/A)" msgstr "Deaktiver komprimering (-)" #: pan/gui/server-ui.cc:487 msgid "XZVER Compression (Astraweb)" msgstr "XZVER-komprimering (Astraweb)" #: pan/gui/server-ui.cc:488 msgid "GZIP Compression (Giganews etc.)" msgstr "GZIP-komprimering (Giganews etc.)" #: pan/gui/server-ui.cc:502 msgid "Header Compression:" msgstr "Brevhovedkomprimering:" #: pan/gui/server-ui.cc:508 msgid "Security" msgstr "Sikkerhed" #: pan/gui/server-ui.cc:513 msgid "Use Unsecure (Plaintext) Connections" msgstr "Brug usikre forbindelser (klartekst)" #: pan/gui/server-ui.cc:514 msgid "Use Secure SSL Connections" msgstr "Brug sikre SSL-forbindelser" #: pan/gui/server-ui.cc:529 msgid "TLS (SSL) Settings:" msgstr "TLS-indstillinger (SSL):" #: pan/gui/server-ui.cc:534 msgid "" "You can enable/disable secure SSL/TLS connections here. If you enable SSL/" "TLS, your data is encrypted and secure. It is encouraged to enable SSL/TLS " "for privacy reasons." msgstr "" "Du kan aktivere/deaktivere sikre SSL/TLS-forbindelser her. Hvis du aktiverer " "SSL/TLS, så bliver dine data kryperet og er sikre. Det anbefales, at " "aktivere SSL/TLS af hensyn til privatlivet." #: pan/gui/server-ui.cc:539 msgid "Always trust this server's certificate" msgstr "Stol altid på denne servers certifikat" #: pan/gui/server-ui.cc:724 #, c-format msgid "Really delete \"%s\"?" msgstr "Vil du slette “%s”?" #: pan/gui/server-ui.cc:813 msgid "No information available." msgstr "Ingen information tilgængelig." #: pan/gui/server-ui.cc:823 #, c-format msgid "Server Certificate for '%s'" msgstr "Servercertifikat for “%s”" #: pan/gui/server-ui.cc:922 #, c-format msgid "Really delete certificate for \"%s\"?" msgstr "Slet certifikat for “%s”?" #. dialog #: pan/gui/server-ui.cc:949 pan/gui/server-ui.cc:970 pan/gui/server-ui.cc:1068 msgid "Servers" msgstr "Servere" #: pan/gui/server-ui.cc:1009 msgid "Remove a Server" msgstr "Fjern en server" #. dialog #: pan/gui/server-ui.cc:1042 msgid "SSL Certificates" msgstr "SSL-certifikater" #: pan/gui/server-ui.cc:1063 msgid "Certificates" msgstr "Certifikater" #: pan/gui/server-ui.cc:1094 msgid "Import Certificate" msgstr "Importer certifikat" #: pan/gui/server-ui.cc:1100 msgid "Inspect Certificate" msgstr "Inspicer certifikat" #: pan/gui/server-ui.cc:1107 msgid "Remove Certificate" msgstr "Fjern certifikat" #: pan/gui/task-pane.cc:124 #, c-format msgid "" "\n" "Upload\n" "\n" "Subject: \"%s\"\n" "From: %s\n" "Groups: %s\n" "Sourcefile: %s\n" msgstr "" "\n" "Send\n" "\n" "Emne: “%s”\n" "Fra: %s\n" "Grupper: %s\n" "Kildefil: %s\n" #: pan/gui/task-pane.cc:136 #, c-format msgid "" "\n" "Download\n" "\n" "Subject: \"%s\"\n" "From: %s\n" "Date: %s\n" "Groups: %s\n" "Save Path: %s\n" msgstr "" "\n" "Hent\n" "\n" "Emne: “%s”\n" "Fra: %s\n" "Dato: %s\n" "Grupper: %s\n" "Gemmesti: %s\n" #: pan/gui/task-pane.cc:138 msgid "unknown" msgstr "ukendt" #: pan/gui/task-pane.cc:306 msgid "Choose New Destination for Selected Tasks" msgstr "Vælg ny destination for valgte opgaver" #: pan/gui/task-pane.cc:310 msgid "Save" msgstr "Gem" #: pan/gui/task-pane.cc:460 #, c-format msgid "Pan: Tasks (%d Queued, %d Running, %d Stopped)" msgstr "Pan: opgavehåndtering (%d i kø, %d kører, %d stoppet)" #: pan/gui/task-pane.cc:462 #, c-format msgid "Pan: Tasks (%d Queued, %d Running)" msgstr "Pan: Opgavehåndtering (%d i kø, %d kører)" #: pan/gui/task-pane.cc:464 msgid "Pan: Tasks" msgstr "Pan: Opgaver" #: pan/gui/task-pane.cc:489 #, c-format msgid "%lu selected, %s" msgstr "%lu markerede, %s" #: pan/gui/task-pane.cc:553 msgid "Running" msgstr "Kører" #: pan/gui/task-pane.cc:554 msgid "Decoding" msgstr "Afkoder" #: pan/gui/task-pane.cc:556 msgid "Queued for Decode" msgstr "Kølagt for afkodning" #: pan/gui/task-pane.cc:557 msgid "Queued for Encode" msgstr "Lagt i kø for kodning" #: pan/gui/task-pane.cc:558 msgid "Queued" msgstr "I kø" #: pan/gui/task-pane.cc:559 msgid "Stopped" msgstr "Stoppet" #: pan/gui/task-pane.cc:560 msgid "Removing" msgstr "Fjerner" #: pan/gui/task-pane.cc:589 #, c-format msgid "%d%% Done" msgstr "%d%% gennemført" #: pan/gui/task-pane.cc:595 #, c-format msgid "%d:%02d:%02d Remaining (%d @ %lu KiB/s)" msgstr "%d∶%02d∶%02d tilbage (%d @ %lu KiB/sek)" #: pan/gui/task-pane.cc:690 pan/gui/task-pane.cc:691 msgid "Move To Top" msgstr "Flyt øverst" #: pan/gui/task-pane.cc:695 pan/gui/task-pane.cc:696 msgid "Move To Bottom" msgstr "Flyt nederst" #: pan/gui/task-pane.cc:700 pan/gui/task-pane.cc:701 msgid "Show Task Information" msgstr "Vis opgaveinformation" #: pan/gui/task-pane.cc:705 pan/gui/task-pane.cc:706 msgid "Stop Task" msgstr "Stop opgave" #: pan/gui/task-pane.cc:710 pan/gui/task-pane.cc:711 msgid "Delete Task" msgstr "Slet opgave" #: pan/gui/task-pane.cc:715 pan/gui/task-pane.cc:716 msgid "Restart Task" msgstr "Genstart opgave" #: pan/gui/task-pane.cc:720 pan/gui/task-pane.cc:721 msgid "Change Download Destination" msgstr "Ændr destination for overførsler" #: pan/gui/task-pane.cc:1016 msgid "_Online" msgstr "_Tilsluttet" #: pan/gui/task-pane.cc:1026 msgid "Move up" msgstr "Flyt op" #: pan/gui/task-pane.cc:1027 msgid "Move task up" msgstr "Flyt opgave op" #: pan/gui/task-pane.cc:1028 msgid "Move to top" msgstr "Flyt øverst" #: pan/gui/task-pane.cc:1029 msgid "Move task to top of the download queue" msgstr "Flyt opgaven til toppen af downloadkøen" #: pan/gui/task-pane.cc:1031 msgid "Move down" msgstr "Flyt ned" #: pan/gui/task-pane.cc:1032 msgid "Move task down" msgstr "Flyt opgave ned" #: pan/gui/task-pane.cc:1033 msgid "Move to bottom" msgstr "Flyt nederst" #: pan/gui/task-pane.cc:1034 msgid "Move task to the bottom of the download queue" msgstr "Flyt opgaven til bunden af downloadkøen" #: pan/gui/task-pane.cc:1036 msgid "Restart" msgstr "Genstart" #: pan/gui/task-pane.cc:1037 msgid "Restart Tasks" msgstr "Genstart opgaver" #: pan/gui/task-pane.cc:1038 msgid "Stop" msgstr "Stop" #: pan/gui/task-pane.cc:1039 msgid "Stop Tasks" msgstr "Stands opgaver" #: pan/gui/task-pane.cc:1041 msgid "Delete Tasks" msgstr "Slet opgaver" #: pan/gui/task-pane.cc:1043 msgid "Close" msgstr "Luk" #: pan/gui/task-pane.cc:1047 msgid "Show popups" msgstr "Vis pop op'er" #: pan/gui/url.cc:143 #, c-format msgid "Error starting URL: %s (Command was: %s)" msgstr "Der opstod en fejl ved start af URL: %s (kommandoen var: %s)" #: pan/tasks/decoder.cc:124 #, c-format msgid "Couldn't save file \"%s\": %s" msgstr "Kunne ikke gemme filen “%s”: %s" #: pan/tasks/decoder.cc:146 pan/tasks/encoder.cc:146 msgid "Error initializing uulib" msgstr "Fejl ved initialisering af uulib" #: pan/tasks/decoder.cc:166 pan/tasks/socket-impl-gio.cc:360 #: pan/tasks/socket-impl-openssl.cc:641 #, c-format msgid "Error reading from %s: %s" msgstr "Fejl ved læsning fra %s: %s" #: pan/tasks/decoder.cc:206 #, c-format msgid "Saved \"%s\"" msgstr "Gemte “%s”" #: pan/tasks/decoder.cc:213 #, c-format msgid "" "Error saving \"%s\":\n" "%s." msgstr "" "Fejl ved at gemme “%s”:\n" "%s." #: pan/tasks/decoder.cc:326 pan/tasks/task-article.cc:351 #, c-format msgid "Decoding %s" msgstr "Afkoder %s" #: pan/tasks/encoder.cc:113 pan/tasks/encoder.cc:164 #, c-format msgid "Error loading %s from cache." msgstr "Der opstod en fejl under indlæsning af %s fra mellemlager." #: pan/tasks/encoder.cc:186 #, c-format msgid "Error encoding %s: %s" msgstr "Der opstod en fejl under kodning af %s: %s" #: pan/tasks/encoder.cc:276 #, c-format msgid "Encoding %s" msgstr "Koder %s" #: pan/tasks/nntp.cc:176 #, c-format msgid "%s requires a username, but none is set." msgstr "%s kræver et brugernavn men der er ikke angivet noget." #: pan/tasks/nntp.cc:189 #, c-format msgid "%s requires a password, but none is set." msgstr "%s kræver et password men der er ikke angivet noget." #: pan/tasks/nntp.cc:275 #, c-format msgid "Sending \"%s\" to %s returned an error: %s" msgstr "Sendte “%s” til %s, men fik en fejl: %s" #: pan/tasks/nntp.cc:298 #, c-format msgid "Sending \"%s\" to %s returned an unrecognized response: \"%s\"" msgstr "Sendte “%s” til %s, men fik et ukendt svar: “%s”" #: pan/tasks/nntp-pool.cc:241 #, c-format msgid "Unable to connect to \"%s\"" msgstr "Kan ikke tilslutte til “%s”" #: pan/tasks/queue.cc:778 pan/tasks/queue.cc:806 pan/tasks/queue.cc:833 msgid "No space left on device." msgstr "Ingen plads tilbage på enheden." #: pan/tasks/socket-impl-gio.cc:173 pan/tasks/socket-impl-gio.cc:211 #: pan/tasks/socket-impl-openssl.cc:213 pan/tasks/socket-impl-openssl.cc:251 #, c-format msgid "Error connecting to \"%s\"" msgstr "Fejl ved forbindelse til “%s”" #: pan/tasks/socket-impl-gio.cc:359 pan/tasks/socket-impl-openssl.cc:640 msgid "Unknown Error" msgstr "Ukendt fejl" #: pan/tasks/task-article.cc:59 pan/tasks/task-article.cc:157 #, c-format msgid "Saving %s" msgstr "Gemmer %s" #: pan/tasks/task-article.cc:61 #, c-format msgid "Reading %s" msgstr "Læser %s" #: pan/tasks/task-article.cc:323 #, c-format msgid "Article \"%s\" is incomplete -- the news server(s) don't have part %s" msgstr "Artiklen “%s” er ufuldstændig — nyhedsgruppeservere har ikke delen %s" #: pan/tasks/task-groups.cc:41 #, c-format msgid "Getting group list from \"%s\"" msgstr "Henter gruppeliste fra “%s”" #: pan/tasks/task-groups.cc:134 #, c-format msgid "Fetched %lu Groups" msgstr "Hentede %lu grupper" #: pan/tasks/task-post.cc:33 #, c-format msgid "Posting \"%s\"" msgstr "Sender “%s”" #: pan/tasks/task-post.cc:74 #, c-format msgid "Posting of \"%s\" failed: %s" msgstr "Indsendelse af “%s” mislykkedes: %s" #: pan/tasks/task-post.cc:79 #, c-format msgid "Posting of \"%s\" successful: %s" msgstr "Indsendelse af filen %s lykkedes: %s" #: pan/tasks/task-upload.cc:55 #, c-format msgid "Uploading %s" msgstr "Overfører %s" #: pan/tasks/task-upload.cc:249 #, c-format msgid "Uploading %s - Part %d of %d" msgstr "Overfører %s – del %d af %d" #: pan/tasks/task-upload.cc:251 #, c-format msgid "Uploading message body with subject \"%s\"" msgstr "Overfører beskedbrødtekst med emnet “%s”" #: pan/tasks/task-upload.cc:308 #, c-format msgid "Posting of file %s (part %d of %d) failed: No posts allowed by server." msgstr "" "Indsendelse af filen %s (del %d af %d) mislykkedes: Ingen post tilladt af " "serveren." #: pan/tasks/task-upload.cc:317 #, c-format msgid "Posting of file %s (part %d of %d) failed: %s" msgstr "Indsendelse af filen %s (del %d af %d) mislykkedes: %s" #: pan/tasks/task-upload.cc:328 pan/tasks/task-upload.cc:335 #, c-format msgid "Posting of file %s (part %d of %d) successful: %s" msgstr "Indsendelse af filen %s (del %d af %d) lykkedes: %s" #: pan/tasks/task-upload.cc:345 #, c-format msgid "Posting of file %s successful: %s" msgstr "Indsendelse af filen %s lykkedes: %s" # hmm, "vis element"? Kan ikke gennemskue denne #: pan/tasks/task-upload.cc:349 #, c-format msgid "" "Posting of file %s not completely successful: Check the log (right-click " "list item)." msgstr "" "Indsendelse af filen %s lykkedes ikke fuldstændigt: Kontroller loggen " "(højreklik på vis element)." #: pan/tasks/task-upload.cc:368 #, c-format msgid "" "Posting of file %s not successful: Check the log (right-click list item)." msgstr "" "Indsendelse af filen %s mislykkedes: Kontroller loggen (højreklik på vis " "element)." #: pan/tasks/task-xover.cc:82 #, c-format msgid "Getting all headers for \"%s\"" msgstr "Henter alle brevhoveder for “%s”" #: pan/tasks/task-xover.cc:85 #, c-format msgid "Getting new headers for \"%s\"" msgstr "Henter nye brevhoveder for “%s”" #. SAMPLE #: pan/tasks/task-xover.cc:89 #, c-format msgid "Sampling headers for \"%s\"" msgstr "Udtrækker brevhoveder for “%s”" #: pan/tasks/task-xover.cc:454 #, c-format msgid "%s (%lu parts, %lu articles)" msgstr "%s (%lu dele, %lu artikler)" #: pan/tasks/task-xover.cc:528 #, c-format msgid "Getting new headers for \"%s\" done." msgstr "Hentede nye brevhoveder for “%s”." #: pan/usenet-utils/filter-info.cc:215 msgid "article doesn't have attachments" msgstr "artikel har ikke nogen bilag" #: pan/usenet-utils/filter-info.cc:219 msgid "the article has attachments" msgstr "artikel har bilag" #: pan/usenet-utils/filter-info.cc:223 msgid "the article isn't cached locally" msgstr "artiklen er ikke i lokalt mellemlager" #: pan/usenet-utils/filter-info.cc:227 msgid "the article is cached locally" msgstr "artiklen er i lokalt mellemlager" #: pan/usenet-utils/filter-info.cc:231 msgid "the article wasn't posted by you" msgstr "artiklen blev ikke sendt af dig" #: pan/usenet-utils/filter-info.cc:235 msgid "the article was posted by you" msgstr "artiklen blev sendt af dig" #: pan/usenet-utils/filter-info.cc:239 msgid "the article has been read" msgstr "artiklen er blevet læst" #: pan/usenet-utils/filter-info.cc:243 msgid "the article hasn't been read" msgstr "artiklen er ikke blevet læst" #: pan/usenet-utils/filter-info.cc:247 #, c-format msgid "the article is less than %ld bytes long" msgstr "artiklen er mindre end %ld byte lang" #: pan/usenet-utils/filter-info.cc:252 #, c-format msgid "the article is at least %ld bytes long" msgstr "artiklen er mindst %ld byte lang" #: pan/usenet-utils/filter-info.cc:257 #, c-format msgid "the article is less than %ld lines long" msgstr "artiklen er mindre end %ld linjer lang" #: pan/usenet-utils/filter-info.cc:262 #, c-format msgid "the article is at least %ld lines long" msgstr "artiklen er mindst %ld linjer lang" #: pan/usenet-utils/filter-info.cc:267 #, c-format msgid "the article is less than %ld days old" msgstr "artiklen er mindre end %ld dage gammel" #: pan/usenet-utils/filter-info.cc:272 #, c-format msgid "the article is at least %ld days old" msgstr "artiklen er mindst %ld dage gammel" #: pan/usenet-utils/filter-info.cc:277 #, c-format msgid "the article was posted to less than %ld groups" msgstr "artiklen var sendt til færre end %ld grupper" #: pan/usenet-utils/filter-info.cc:282 #, c-format msgid "the article was posted to at least %ld groups" msgstr "artiklen blev sendt til mindst %ld grupper" #: pan/usenet-utils/filter-info.cc:287 #, c-format msgid "the article's score is less than %ld" msgstr "artikelens bedømmelse er mindre end %ld" #: pan/usenet-utils/filter-info.cc:292 #, c-format msgid "the article's score is %ld or higher" msgstr "artiklens bedømmelse er %ld eller højere" #: pan/usenet-utils/filter-info.cc:301 pan/usenet-utils/filter-info.cc:311 #, c-format msgid "%s doesn't contain \"%s\"" msgstr "%s indeholder ikke “%s”" #: pan/usenet-utils/filter-info.cc:302 pan/usenet-utils/filter-info.cc:312 #, c-format msgid "%s isn't \"%s\"" msgstr "%s er ikke “%s”" #: pan/usenet-utils/filter-info.cc:303 pan/usenet-utils/filter-info.cc:313 #, c-format msgid "%s doesn't begin with \"%s\"" msgstr "%s begynder ikke med “%s”" #: pan/usenet-utils/filter-info.cc:304 pan/usenet-utils/filter-info.cc:314 #, c-format msgid "%s doesn't end with \"%s\"" msgstr "%s ender ikke med “%s”" #: pan/usenet-utils/filter-info.cc:305 pan/usenet-utils/filter-info.cc:315 #, c-format msgid "%s doesn't match the regex \"%s\"" msgstr "%s matcher ikke det regulære udtryk “%s”" #: pan/usenet-utils/filter-info.cc:327 #, c-format msgid "%s contains \"%s\"" msgstr "%s indeholder “%s”" #: pan/usenet-utils/filter-info.cc:328 #, c-format msgid "%s is \"%s\"" msgstr "%s er “%s”" #: pan/usenet-utils/filter-info.cc:329 #, c-format msgid "%s begins with \"%s\"" msgstr "%s begynder med “%s”" #: pan/usenet-utils/filter-info.cc:330 #, c-format msgid "%s ends with \"%s\"" msgstr "%s ender med “%s”" #: pan/usenet-utils/filter-info.cc:331 #, c-format msgid "%s matches the regex \"%s\"" msgstr "%s matcher det regulære udtryk “%s”" #: pan/usenet-utils/filter-info.cc:337 msgid "Any of these tests fail:" msgstr "Nogen af disse test fejler:" #: pan/usenet-utils/filter-info.cc:344 msgid "All of these tests pass:" msgstr "Alle disse test passerer:" #: pan/usenet-utils/filter-info.cc:351 msgid "None of these tests pass:" msgstr "Ingen af disse test passerer:" #: pan/usenet-utils/filter-info.cc:358 msgid "Any of these tests pass:" msgstr "Nogen af disse test passerer:" #: pan/usenet-utils/gnksa.cc:880 #, c-format msgid "No email address provided; generating message-id with domain \"%s\"" msgstr "Ingen e-postadresse angivet; genererer meddelelses-ID med domænet “%s”" #: pan/usenet-utils/message-check.cc:122 msgid "Warning: Reply seems to be top-posted." msgstr "Advarsel: Svaret ser ud til at være postet øverst." #: pan/usenet-utils/message-check.cc:143 msgid "Warning: The signature marker should be \"-- \", not \"--\"." msgstr "Advarsel: Signaturadskilleren skal være “-- ”, ikke “--”." #: pan/usenet-utils/message-check.cc:160 msgid "Warning: Signature prefix with no signature." msgstr "Advarsel: Signaturpræfiks uden signatur." #: pan/usenet-utils/message-check.cc:165 msgid "Warning: Signature is more than 4 lines long." msgstr "Advarsel: Signaturen er mere end 4 linjer lang." #: pan/usenet-utils/message-check.cc:170 msgid "Warning: Signature is more than 80 characters wide." msgstr "Advarsel: Signaturen er mere end 80 tegn bred." #: pan/usenet-utils/message-check.cc:196 #, c-format msgid "Warning: %d line is more than 80 characters wide." msgid_plural "Warning: %d lines are more than 80 characters wide." msgstr[0] "Advarsel: %d linje er mere end 80 tegn bred." msgstr[1] "Advarsel: %d linjer er mere end 80 tegn brede." #: pan/usenet-utils/message-check.cc:221 msgid "Error: Message is empty." msgstr "Fejl: Besked er tom." #: pan/usenet-utils/message-check.cc:256 msgid "Warning: The message is entirely quoted text!" msgstr "Advarsel: Artiklen består udelukkende af citeret tekst!" #: pan/usenet-utils/message-check.cc:257 msgid "Warning: The message is mostly quoted text." msgstr "Advarsel: Artiklen består mest af citeret tekst." #: pan/usenet-utils/message-check.cc:307 msgid "Error: Message appears to have no new content." msgstr "Fejl: Beskeden ser ud til ikke at have noget nyt indhold." #: pan/usenet-utils/message-check.cc:342 pan/usenet-utils/message-check.cc:381 #, c-format msgid "" "Warning: The posting profile's server doesn't carry newsgroup\n" "\t\"%s\".\n" "\tIf the group name is correct, switch profiles in the \"From:\"\n" "\tline or edit the profile with \"Edit|Manage Posting Profiles\"." msgstr "" "Advarsel: Profilens server har ikke nyhedsgruppen\n" "\t“%s”.\n" "\tHvis gruppenavnet er korrekt, så skift profil i “Fra:”\n" "\tlinjen eller rediger profilen med “Rediger|Afsenderprofiler”." #: pan/usenet-utils/message-check.cc:353 msgid "Warning: Following-Up to too many groups." msgstr "Advarsel: Følger op til for mange grupper." #: pan/usenet-utils/message-check.cc:364 msgid "Error: No Subject specified." msgstr "Fejl: Intet emne angivet." #: pan/usenet-utils/message-check.cc:393 #, c-format msgid "Warning: Group \"%s\" is read-only." msgstr "Advarsel: Gruppen “%s” er skrivebeskyttet." #: pan/usenet-utils/message-check.cc:402 msgid "Error: Posting to a very large number of groups." msgstr "Fejl: Du sender til et meget stort antal grupper." #: pan/usenet-utils/message-check.cc:407 msgid "Warning: Posting to a large number of groups." msgstr "Advarsel: Du sender til et stort antal grupper." # ville nok sige krydsposter (cross-posting bruges ofte på engelsk, så # jeg tror 'poste' er hvad en typisk bruger ville sige på dansk) #: pan/usenet-utils/message-check.cc:414 msgid "Warning: Crossposting without setting Followup-To header." msgstr "Advarsel: Du krydsindsender uden at bruge brevhovedet opfølgning-til." #: pan/usenet-utils/message-check.cc:439 msgid "Error: Bad email address." msgstr "Fejl: Ugyldig e-postadresse." #: pan/usenet-utils/message-check.cc:448 msgid "Warning: Most newsgroups frown upon HTML posts." msgstr "Advarsel: I de fleste nyhedgrupper er HTML uønsket." #: pan/usenet-utils/message-check.cc:484 msgid "Error: No Recipients." msgstr "Fejl: Ingen modtagere." #: pan/usenet-utils/scorefile.cc:310 #, c-format msgid "Error reading score in %*.*s, line %d: unexpected line." msgstr "Fejl ved læsning af bedømmelse i %*.*s, linje %d: uventet linje." #: pan/usenet-utils/scorefile.cc:442 #, c-format msgid "" "Error reading score in %*.*s, line %d: expected 'Expires: MM/DD/YYYY' or " "'Expires: DD-MM-YYYY'." msgstr "" "Fejl ved læsning af bedømmelse i %*.*s, linje %d: Forventer “Expires: MM/DD/" "YYYY” eller “Expires: DD-MM-YYYY”." #: pan/usenet-utils/scorefile.cc:452 #, c-format msgid "Expired old score from %*.*s, line %d" msgstr "Udløb gammel bedømmelse fra %*.*s linje %d" #: pan/usenet-utils/scorefile.cc:589 #, c-format msgid "Read %lu scoring rules in %lu sections from \"%s\"" msgstr "Læste %lu bedømmelsesregler i %lu afsnit fra “%s”" #: pan/usenet-utils/ssl-utils.cc:172 #, c-format msgid "Error printing the server certificate for '%s'" msgstr "Der opstod en fejl under udskrivning af servercertifikat for “%s”" #: pan/usenet-utils/ssl-utils.cc:191 #, c-format msgid "" "The current server '%s' sent this security certificate:\n" "\n" msgstr "" "Den nuværende server “%s” sendte dette sikkerhedscertifikat:\n" "\n" #: pan/usenet-utils/ssl-utils.cc:197 #, c-format msgid "" "Certificate information for server '%s':\n" "\n" msgstr "" "Certifikatinformation for serveren “%s”:\n" "\n" #: pan/usenet-utils/ssl-utils.cc:202 #, c-format msgid "" "%sIssuer information:\n" "%s\n" "Valid until: %s\n" "\n" "Not valid before: %s\n" "\n" msgstr "" "%sUdstederinformation:\n" "%s\n" "Gyldig indtil: %s\n" "\n" "Ikke gyldig før: %s\n" "\n" #: pan/usenet-utils/text-massager.cc:397 msgid "> [quoted text muted]" msgstr "> [citeret tekst udeladt]" #: pan/usenet-utils/text-massager.cc:579 msgid "no_name" msgstr "intet_navn" #: pan/usenet-utils/text-massager.cc:580 msgid "no_mail" msgstr "ingen_post" #~ msgid "Toggle on/offline" #~ msgstr "Aktiver/deaktiver internetforbindelse" #, c-format #~ msgid "Error setting custom spellchecker: %s" #~ msgstr "Der opstod en fejl ved indstilling af tilpasset stavekontrol: %s" #, c-format #~ msgid "Error setting spellchecker: %s" #~ msgstr "Fejl ved indstilling af stavekontrol: %s" #~ msgid "Minimize to tray" #~ msgstr "Minimer til statusfelt" #, c-format #~ msgid "There seems to be no password set for server %s." #~ msgstr "" #~ "Der ser ikke ud til, at være angivet en adgangskode for serveren %s." #~ msgid "GNOME Keyring denied access to the passwords." #~ msgstr "GNOME-nøglering nægtet adgang til adgangskoderne." #~ msgid "_Tip Jar..." #~ msgstr "Send bidrag _til udviklerne …" #, c-format #~ msgid "Getting header counts for \"%s\"" #~ msgstr "Henter brevhovedantal for “%s”" #~ msgid "pan" #~ msgstr "pan" #~ msgid "_Save Articles…" #~ msgstr "_Gem artikler …" #~ msgid "Save Articles…" #~ msgstr "Gem artikler …" #~ msgid "Save Articles from Selected _NZB…" #~ msgstr "Gem artikler fra den valgte _NZB …" #~ msgid "Save Articles to an NZB _File…" #~ msgstr "Gem artikler til en NZB-_fil …" #~ msgid "_Import NZB Files…" #~ msgstr "_Importér NZB-filer …" #~ msgid "X-Face (Avatar)" #~ msgstr "X-Face (avatar)" #~ msgid "isn’t" #~ msgstr "er ikke" #~ msgid "Posting of “%s” successful: %s" #~ msgstr "Indsendelse af “%s” lykkedes: %s" #~ msgid "the article isn’t cached locally" #~ msgstr "artiklen er ikke i lokalt mellemlager" #~ msgid "the article wasn’t posted by you" #~ msgstr "artiklen blev ikke sendt af dig" #~ msgid "the article hasn’t been read" #~ msgstr "artiklen er ikke blevet læst" #~ msgid "GNOME Keyring" #~ msgstr "GNOME-nøglering" #~ msgid "Store passwords in GNOME Keyring" #~ msgstr "Lagr adgangskoder i GNOME-nøglering" pan-0.162/po/de.po000066400000000000000000003130541475412772400136710ustar00rootroot00000000000000# Copyright (C) 2000-2003 Free Software Foundation, Inc. # Manuel Borchers , 2001, 2002. # Benjamin Greiner , 2002, 2003. # Kai Lahmann , 2000, 2001. # Christian Meyer , 2000, 2001, 2003. # Christian Neumair , 2002, 2003. # Matthias Warkus , 2000. # Mario Blättermann , 2009, 2012, 2016-2018. # Jürgen Benvenuti , 2022, 2024. # # Artikelkopfzeile hört sich echt beknackt an, hat irgendjemand einen # besseren Plan? # 2000-09-08 Christian Meyer # Wir sollten langsam mal dazu uebergehen alles infinitivisch zu formulieren # und die Typos zu korrigieren!! # Spekulative Sprachregelungen: # followup, v. (to a newsgroup): fortschreiben (in einer Newsgroup) # mute, v. (quoted text): (zitierten Text) ausblenden # reply, v. (by e-mail): (per E-Mail) antworten # (mawa) # # 2002-01-27 Karsten Weiss # * Allgemeine Aktualiserung. # * "Thread" konsequent als "Strang" übersetzt (auch wenn mir das # persönlich nicht sehr gefällt). Ich habe nichts dagegen, wenn # das jemand wieder *einheitlich* auf "Thread" abhändert. Das # gleichzeitige Verwenden beider Begriffen sollten wir jedoch # vermeiden. # * "Anhang" statt "Anlage" für "attachment" würde *mir* besser # gefallen. Ich habe es aber erst einmal nicht geändert. # * "score" mit Bewertung übersetzt. # # 2002-01-29 Christian Meyer # Ich Uebesetzung ist nun noch konsistenter. Etliche Fehler wurden korrigiert # und die letzten nicht infinitivischen Formulierungen wurden ersetzt. # # 2002-07-18 Benjamin Greiner # Übersetzung vervollständigt, Fehlerkorrektur, cancel -> widerrufen # ("abbrechen" ist microsoftisch) msgid "" msgstr "" "Project-Id-Version: pan2 master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/pan/issues/\n" "POT-Creation-Date: 2024-05-08 17:14+0000\n" "PO-Revision-Date: 2024-05-12 20:27+0200\n" "Last-Translator: Jürgen Benvenuti \n" "Language-Team: German \n" "Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Poedit 3.4.2\n" #. update the titlebar #: org.gnome.pan.desktop.in:3 org.gnome.pan.metainfo.xml.in:27 #: pan/gui/dl-headers-ui.cc:119 pan/gui/gui.cc:1040 pan/gui/gui.cc:1665 #: pan/gui/gui.cc:1985 pan/gui/score-add-ui.cc:600 msgid "Pan" msgstr "Pan" # D'accord, und so bleibt's jetzt, das Hinundhergehüpfe im Menü macht wahnsinnig. -bg #: org.gnome.pan.desktop.in:4 msgid "Newsreader" msgstr "Newsreader" #: org.gnome.pan.desktop.in:5 org.gnome.pan.metainfo.xml.in:7 msgid "Read and post Usenet articles" msgstr "Usenet-Artikel lesen und senden" #. Translators: Search terms to find this application. Do NOT translate or localise the semicolons! The list MUST also end with a semicolon! #: org.gnome.pan.desktop.in:7 msgid "usenet;news;newsreader;newsgroup;article;yenc;nzb;" msgstr "usenet;news;newsreader;newsgruppe;artikel;yenc;nzb;" # D'accord, und so bleibt's jetzt, das Hinundhergehüpfe im Menü macht wahnsinnig. -bg #: org.gnome.pan.metainfo.xml.in:6 msgid "Pan Newsreader" msgstr "Pan Newsreader" #: org.gnome.pan.metainfo.xml.in:9 msgid "" "Pan is a Usenet newsreader that is good at both text and binaries. It " "supports offline reading, scoring and killfiles, yEnc, NZB, PGP handling, " "multiple servers, and secure connections." msgstr "" "Pan ist ein Newsreader für das Usenet, der sowohl mit Text als auch binären " "Inhalten umgehen kann. Unterstützt werden Offline-Lesen, Bewertungen und " "Killfiles, yEnc, NZB, Hochladen binärer Inhalte, Umgang mit PGP, Multiserver " "und sichere Verbindungen." #: org.gnome.pan.metainfo.xml.in:12 msgid "" "It is also the only Unix newsreader to get a perfect score on the Good Net-" "Keeping Seal of Approval evaluations." msgstr "" "Pan ist auch der einzige Unix-Newsreader, der eine perfekte Bewertung im " "»Good NetKeeping Seal of Approval« hat." #: pan/data/article-cache.cc:144 pan/data/encode-cache.cc:62 #, c-format msgid "Error opening directory: \"%s\": %s" msgstr "Fehler beim Öffnen des Ordners: »%s«: %s" #: pan/data/article-cache.cc:235 pan/data/article-cache.cc:244 #: pan/data-impl/data-io.cc:278 pan/data-impl/data-io.cc:310 #: pan/gui/post-ui.cc:1767 #, c-format msgid "Unable to save \"%s\" %s" msgstr "»%s« konnte nicht gespeichert werden: %s" #: pan/data/article-cache.cc:362 #, c-format msgid "Error opening file \"%s\" %s" msgstr "Fehler beim Öffnen der Datei »%s« %s" #: pan/data/article-cache.cc:393 pan/data-impl/profiles.cc:175 #: pan/data-impl/server.cc:495 pan/general/file-util.cc:311 #: pan/gui/post-ui.cc:636 pan/gui/task-pane.cc:740 #, c-format msgid "Error reading file \"%s\": %s" msgstr "Fehler beim Lesen der Datei »%s«: %s" #: pan/data/cert-store.cc:261 #, c-format msgid "Error opening SSL certificate directory: \"%s\": %s" msgstr "Fehler beim Öffnen des SSL-Zertifikatordners: »%s«: %s" #: pan/data/cert-store.cc:292 #, c-format msgid "Successfully added %d SSL PEM certificate(s) to Certificate Store." msgstr "" "%d SSL-PEM-Zertifikat(e) wurden erfolgreich zum Zertifikatspeicher " "hinzugefügt." #: pan/data/cert-store.cc:312 msgid "" "Error initializing Certificate Store. Check that the permissions for the " "folders ~/.pan2 and ~/.pan2/ssl_certs are set correctly. Fatal, exiting." msgstr "" "Fehler beim Initialisieren des Zertifikatspeichers. Überprüfen Sie, ob die " "Zugriffsrechte für ~/.pan2 und ~/.pan2/ssl_certs korrekt gesetzt sind. " "Schwerwiegender Fehler, Abbruch." #: pan/data/cert-store.cc:361 #, c-format msgid "Could not export certificate for server: %s" msgstr "Zertifikat für Server konnte nicht exportiert werden: %s" #. load_group_descriptions (*_data_io); #: pan/data-impl/data-impl.cc:115 #, c-format msgid "Loaded data backend in %.1f seconds" msgstr "Daten-Backend wurde in %.1f Sekunden geladen" #: pan/data-impl/data-impl.cc:151 msgid "Pan Newsreader's server passwords" msgstr "Server-Passwörter für Pan Newsreader" #: pan/data-impl/groups.cc:102 #, c-format msgid "Skipping newsrc file for server \"%s\"" msgstr "newsrc-Datei für Server »%s« wird übersprungen" #: pan/data-impl/headers.cc:618 #, c-format msgid "Expired %lu old articles from \"%s\"" msgstr "%lu alte Artikel von »%s« als abgelaufen markiert" #: pan/data-impl/headers.cc:625 #, c-format msgid "" "Unsupported data version for %s headers: %d.\n" "Are you running an old version of Pan by accident?" msgstr "" "Die Kopfzeilen von »%s« entsprechen der nicht unterstützten Version %d. " "Verwenden Sie versehentlich eine alte Version von Pan?" #: pan/data-impl/headers.cc:640 #, c-format msgid "Loaded %llu articles for \"%s\" in %.1f seconds (%.0f per second)" msgstr "" "%llu Artikel für Gruppe »%s« wurden in %.1f Sekunden geladen (%.0f Artikel/s)" #: pan/data-impl/headers.cc:869 #, c-format msgid "" "Saved %lu parts, %lu articles in \"%s\" in %.1f seconds (%.0f articles/sec)" msgstr "" "%lu Teile und %lu Artikel in »%s« innerhalb von %.1f Sekunden (%.0f Artikel/" "s) gespeichert" #: pan/data-impl/headers.cc:1202 #, c-format msgid "Added %lu articles to %s." msgstr "%lu Artikel zu »%s« hinzugefügt." #: pan/data-impl/server.cc:263 #, c-format msgid "Received no password from libsecret for server %s." msgstr "Für Server %s wurde kein Passwort von libsecret empfangen." #: pan/data-impl/xover.cc:241 #, c-format msgid "Error reading from %s: unknown group \"%s\"" msgstr "Fehler beim Lesen von %s: Unbekannte Gruppe »%s«" #: pan/general/editor-spawner.cc:66 #, c-format msgid "Error parsing \"external editor\" command line: %s (Command was: %s)" msgstr "" "Fehler beim Verarbeiten der Befehlszeile des externen Editors: %s (Befehl " "war: %s)" #: pan/general/editor-spawner.cc:110 #, c-format msgid "Error starting external editor: %s" msgstr "Fehler beim Aufruf des externen Editors: %s" #: pan/general/e-util.cc:164 msgid "%l:%M %p" msgstr "%H:%M" #: pan/general/e-util.cc:165 msgid "Today %l:%M %p" msgstr "Heute %H:%M" #: pan/general/e-util.cc:166 msgid "%a %l:%M %p" msgstr "%a %H:%M" #: pan/general/e-util.cc:167 msgid "%b %d %l:%M %p" msgstr "%d. %b %H:%M" #: pan/general/e-util.cc:168 msgid "%b %d %Y" msgstr "%d. %b %Y" #: pan/general/e-util.cc:200 msgid "?" msgstr "?" #: pan/general/text-match.cc:194 #, c-format msgid "Can't use regular expression \"%s\": %s" msgstr "Regulärer Ausdruck »%s« kann nicht angewendet werden: %s" #: pan/general/utf8-utils.cc:212 msgid "Couldn't determine article encoding. Non-UTF8 characters were removed." msgstr "" "Zeichenkodierung des Artikels konnte nicht erkannt werden. Nicht-UTF8-" "Zeichen wurden entfernt." #: pan/gui/actions.cc:306 pan/gui/post-ui.cc:451 msgid "_File" msgstr "_Datei" #: pan/gui/actions.cc:307 pan/gui/post-ui.cc:452 msgid "_Edit" msgstr "_Bearbeiten" #: pan/gui/actions.cc:308 pan/gui/prefs-ui.cc:1138 msgid "_Layout" msgstr "An_ordnung" #: pan/gui/actions.cc:309 msgid "_Group Pane" msgstr "_Gruppenliste" #: pan/gui/actions.cc:310 msgid "_Header Pane" msgstr "_Kopfzeilenliste" #: pan/gui/actions.cc:311 msgid "_Body Pane" msgstr "Artikel_text" #: pan/gui/actions.cc:312 msgid "_View" msgstr "_Ansicht" #: pan/gui/actions.cc:313 msgid "Filte_r" msgstr "_Filter" #: pan/gui/actions.cc:314 msgid "_Go" msgstr "_Gehe zu" #: pan/gui/actions.cc:315 pan/gui/prefs-ui.cc:1188 msgid "_Actions" msgstr "_Aktionen" #: pan/gui/actions.cc:316 msgid "_Articles" msgstr "Ar_tikel" #: pan/gui/actions.cc:317 msgid "G_roups" msgstr "G_ruppen" #: pan/gui/actions.cc:318 pan/gui/actions.cc:319 msgid "_Post" msgstr "_Schreiben" #: pan/gui/actions.cc:320 msgid "_Help" msgstr "_Hilfe" #: pan/gui/actions.cc:323 msgid "_Read Group" msgstr "Gruppe _lesen" #: pan/gui/actions.cc:324 msgid "Read Group" msgstr "Gruppe lesen" #: pan/gui/actions.cc:328 msgid "_Mark Selected Groups Read" msgstr "Ausgewählte Gruppen als gelesen _markieren" #: pan/gui/actions.cc:329 msgid "Mark Selected Groups Read" msgstr "Ausgewählte Gruppen als gelesen markieren" #: pan/gui/actions.cc:333 msgid "_Delete Selected Groups' Articles" msgstr "Artikel der ausgewählten Gruppe _löschen" #: pan/gui/actions.cc:334 msgid "Delete Selected Groups' Articles" msgstr "Artikel der ausgewählten Gruppe löschen" #: pan/gui/actions.cc:338 msgid "Get New _Headers in Selected Groups" msgstr "Neue _Kopfzeilen ausgewählter Gruppen herunterladen" #: pan/gui/actions.cc:339 msgid "Get New Headers in Selected Groups" msgstr "Neue Kopfzeilen ausgewählter Gruppen herunterladen" #: pan/gui/actions.cc:343 pan/gui/actions.cc:348 msgid "Get New _Headers in Subscribed Groups" msgstr "Neue _Kopfzeilen abonnierter Gruppen herunterladen" #: pan/gui/actions.cc:344 pan/gui/actions.cc:349 msgid "Get New Headers in Subscribed Groups" msgstr "Neue Kopfzeilen abonnierter Gruppen herunterladen" #: pan/gui/actions.cc:353 msgid "Get _Headers..." msgstr "Kopfzeilen _herunterladen …" #: pan/gui/actions.cc:354 msgid "Get Headers..." msgstr "Kopfzeilen herunterladen …" #: pan/gui/actions.cc:358 pan/gui/actions.cc:359 msgid "Refresh Group List" msgstr "Gruppenliste erneuern" #: pan/gui/actions.cc:363 msgid "_Subscribe" msgstr "_Abonnieren" #: pan/gui/actions.cc:364 msgid "Subscribe" msgstr "Abonnieren" #: pan/gui/actions.cc:368 msgid "_Unsubscribe" msgstr "A_bbestellen" #: pan/gui/actions.cc:369 msgid "Unsubscribe" msgstr "Abbestellen" #: pan/gui/actions.cc:373 msgid "_Save Articles..." msgstr "Artikel _speichern …" #: pan/gui/actions.cc:374 msgid "Save Articles..." msgstr "Artikel speichern …" #: pan/gui/actions.cc:378 msgid "Save Articles from Selected _NZB..." msgstr "Artikel des ausgewählten _NZB speichern …" #: pan/gui/actions.cc:379 msgid "Save Articles from Selected NZB" msgstr "Artikel des ausgewählten NZB speichern" #: pan/gui/actions.cc:383 msgid "Save Articles to an NZB _File..." msgstr "Artikel in eine NZB-_Datei speichern …" #: pan/gui/actions.cc:384 msgid "Save Articles to an NZB File" msgstr "Artikel in eine NZB-Datei speichern" #: pan/gui/actions.cc:388 pan/gui/actions.cc:389 msgid "Print" msgstr "Drucken" #: pan/gui/actions.cc:393 msgid "_Import NZB Files..." msgstr "NZB-Dateien _importieren …" #: pan/gui/actions.cc:398 msgid "_Cancel Last Task" msgstr "_Letzte Aufgabe widerrufen" #: pan/gui/actions.cc:403 msgid "_Task Manager" msgstr "_Aufgabenplaner" #: pan/gui/actions.cc:408 msgid "_Event Log" msgstr "_Statusprotokoll" #: pan/gui/actions.cc:413 msgid "_Quit" msgstr "_Beenden" #: pan/gui/actions.cc:418 msgid "Select _All Articles" msgstr "Alle Arti_kel auswählen" #: pan/gui/actions.cc:423 msgid "_Deselect All Articles" msgstr "_Keine Artikel auswählen" #: pan/gui/actions.cc:428 msgid "Add Su_bthreads to Selection" msgstr "U_nterstränge zur Auswahl hinzufügen" #: pan/gui/actions.cc:433 msgid "Add _Threads to Selection" msgstr "Stränge zur Auswahl _hinzufügen" #: pan/gui/actions.cc:438 msgid "Add _Similar Articles to Selection" msgstr "Ähnliche Artikel zur Au_swahl hinzufügen" #: pan/gui/actions.cc:443 msgid "Select Article _Body" msgstr "_Artikeltext auswählen" #: pan/gui/actions.cc:448 msgid "Edit _Preferences" msgstr "_Einstellungen" #: pan/gui/actions.cc:453 msgid "Edit Selected _Group's Preferences" msgstr "Einstellungen der ausgewählten _Gruppen bearbeiten" #: pan/gui/actions.cc:458 msgid "Edit S_core File" msgstr "Wertun_gsdatei bearbeiten" #: pan/gui/actions.cc:463 pan/gui/post-ui.cc:468 msgid "Edit P_osting Profiles" msgstr "Aut_orenprofile bearbeiten" #: pan/gui/actions.cc:468 msgid "Edit _News Servers" msgstr "_News-Server bearbeiten" #: pan/gui/actions.cc:473 msgid "Jump to _Group Tab" msgstr "_Gruppen-Reiter aufschlagen" #: pan/gui/actions.cc:478 msgid "Jump to _Header Tab" msgstr "Kop_fzeilen-Reiter aufschlagen" #: pan/gui/actions.cc:483 msgid "Jump to _Body Tab" msgstr "Artikel_text-Reiter aufschlagen" #: pan/gui/actions.cc:488 msgid "_Rot13 Selected Text" msgstr "_Rot13 auf Textauswahl anwenden" #: pan/gui/actions.cc:493 msgid "Clear _Header Pane" msgstr "Kopfzeilenliste lösc_hen" #: pan/gui/actions.cc:498 msgid "Clear _Body Pane" msgstr "Artikeltext _löschen" #: pan/gui/actions.cc:503 msgid "Cache Article" msgstr "Artikel zwischenspeichern" #: pan/gui/actions.cc:508 msgid "Read Article" msgstr "Artikel lesen" #: pan/gui/actions.cc:513 msgid "Show Article Information" msgstr "Artikel-Informationen anzeigen" #: pan/gui/actions.cc:518 msgid "Read _More" msgstr "_Weiterlesen" #: pan/gui/actions.cc:519 msgid "Read More" msgstr "Weiterlesen" #: pan/gui/actions.cc:523 msgid "Read _Back" msgstr "Zurück_blättern" #: pan/gui/actions.cc:524 msgid "Read Back" msgstr "Zurückblättern" #: pan/gui/actions.cc:528 msgid "Next _Unread Group" msgstr "Nächste ungelesene _Gruppe" #: pan/gui/actions.cc:533 msgid "Next _Group" msgstr "Nächste G_ruppe" #: pan/gui/actions.cc:538 msgid "Next _Unread Article" msgstr "_Nächster ungelesener Artikel" #: pan/gui/actions.cc:539 msgid "Next Unread Article" msgstr "Nächster ungelesener Artikel" #: pan/gui/actions.cc:543 msgid "Next _Article" msgstr "Nächster Arti_kel" #: pan/gui/actions.cc:544 msgid "Next Article" msgstr "Nächster Artikel" #: pan/gui/actions.cc:548 msgid "Next _Watched Article" msgstr "Nächster _beobachteter Artikel" #: pan/gui/actions.cc:553 msgid "Next Unread _Thread" msgstr "Nächster ungelesener _Strang" #: pan/gui/actions.cc:554 msgid "Next Unread Thread" msgstr "Nächster ungelesener Strang" #: pan/gui/actions.cc:558 msgid "Next Threa_d" msgstr "Nächster S_trang" #: pan/gui/actions.cc:563 msgid "Pre_vious Article" msgstr "_Vorheriger Artikel" #: pan/gui/actions.cc:568 msgid "Previous _Thread" msgstr "Vorheriger _Strang" #: pan/gui/actions.cc:573 msgid "_Parent Article" msgstr "Bez_ugsartikel" #: pan/gui/actions.cc:578 msgid "Ignore _Author" msgstr "Autor _ignorieren" #: pan/gui/actions.cc:582 msgid "_Watch Thread" msgstr "Strang _überwachen" #: pan/gui/actions.cc:587 msgid "_Ignore Thread" msgstr "Strang _ignorieren" #: pan/gui/actions.cc:592 pan/gui/actions.cc:593 msgid "_Toggle Flag On/Off for Thread" msgstr "Markierung für Strang ein-/ausschal_ten" #: pan/gui/actions.cc:597 pan/gui/actions.cc:598 msgid "_Turn Flag Off for Thread" msgstr "Markierung für Strang ausschal_ten" # klingt zwar doof, ist aber konsistent #: pan/gui/actions.cc:602 pan/gui/actions.cc:603 msgid "_Select All Flagged Threads" msgstr "Alle markierten Diskussionsfäden au_swählen" #: pan/gui/actions.cc:607 pan/gui/actions.cc:608 msgid "_Go to Next Flagged Thread" msgstr "Zum nächsten markierten Diskussionsfaden _gehen" #: pan/gui/actions.cc:612 pan/gui/actions.cc:613 msgid "_Go to Last Flagged Thread" msgstr "Zum letzten markierten Diskussionsfaden _gehen" #: pan/gui/actions.cc:617 pan/gui/actions.cc:618 msgid "_Invert Selection" msgstr "Auswahl _umkehren" #: pan/gui/actions.cc:622 msgid "Edit Article's Watch/Ignore/Score..." msgstr "Überwachen/Ignorieren/Wertung des Artikels bearbeiten …" #: pan/gui/actions.cc:627 msgid "Add a _Scoring Rule..." msgstr "Eine Wertung_sregel hinzufügen …" #: pan/gui/actions.cc:632 msgid "Cance_l Article..." msgstr "Artike_l widerrufen …" #: pan/gui/actions.cc:637 msgid "_Supersede Article..." msgstr "Artikel er_setzen …" #: pan/gui/actions.cc:642 msgid "_Delete Article" msgstr "Arti_kel _löschen" #: pan/gui/actions.cc:647 msgid "Clear Article Cache" msgstr "Artikel-Zwischenspeicher löschen" #: pan/gui/actions.cc:652 msgid "_Mark Article as Read" msgstr "Artikel als gelesen _markieren" #: pan/gui/actions.cc:657 msgid "Mark Article as _Unread" msgstr "Artikel als _ungelesen markieren" #: pan/gui/actions.cc:663 msgid "_Mark Thread as Read" msgstr "Den aktuellen Diskussionsfaden als gelesen _markieren" #: pan/gui/actions.cc:668 msgid "Mark Thread as _Unread" msgstr "Den aktuellen Diskussionsfaden als _ungelesen markieren" #: pan/gui/actions.cc:673 msgid "_Post to Newsgroup" msgstr "Nachricht in die Gruppe _schreiben" #: pan/gui/actions.cc:674 msgid "Post to Newsgroup" msgstr "Eine neue Nachricht in die Gruppe schreiben" #: pan/gui/actions.cc:678 msgid "_Followup to Newsgroup" msgstr "_Fortschrift in der Gruppe erstellen" #: pan/gui/actions.cc:679 msgid "Followup to Newsgroup" msgstr "Fortschrift in der Gruppe erstellen" #: pan/gui/actions.cc:683 msgid "_Reply to Author in Mail" msgstr "Dem Autor _per Mail antworten" #: pan/gui/actions.cc:689 msgid "_Contents" msgstr "I_nhalt" #: pan/gui/actions.cc:695 msgid "_Pan Home Page" msgstr "Pans _Homepage" #: pan/gui/actions.cc:700 msgid "Give _Feedback or Report a Bug..." msgstr "Einen _Fehler melden oder Rückmeldung geben …" #: pan/gui/actions.cc:705 msgid "_About" msgstr "_Info" #: pan/gui/actions.cc:710 msgid "Edit _SSL Certificates" msgstr "_SSL-Zertifikate bearbeiten" #: pan/gui/actions.cc:725 msgid "_Thread Headers" msgstr "S_trang-Kopfzeilen" #: pan/gui/actions.cc:726 msgid "Wrap Article Body" msgstr "Nachrichtentext umbrechen" #: pan/gui/actions.cc:727 msgid "Show Article Signature" msgstr "Artikel-Signatur anzeigen" #: pan/gui/actions.cc:728 msgid "Mute _Quoted Text" msgstr "Zitierten Text aus_blenden" #: pan/gui/actions.cc:729 msgid "Show All _Headers in Body Pane" msgstr "A_lle Kopfzeilen im Nachrichteninhalt anzeigen" #: pan/gui/actions.cc:730 msgid "Show _Smilies as Graphics" msgstr "_Smilies als Grafiken anzeigen" #: pan/gui/actions.cc:731 msgid "Show *Bold*, __Underlined__, and /Italic/" msgstr "*Fett*, __Unterstrichen__, und /Kursiv/ anzeigen" #: pan/gui/actions.cc:732 msgid "Size Pictures to _Fit" msgstr "Bild ein_passen" #: pan/gui/actions.cc:733 msgid "Use _Monospace Font" msgstr "_Dicktengleiche Schrift verwenden" #: pan/gui/actions.cc:734 msgid "Set Focus to Images" msgstr "Fokus auf Bilder setzen" #: pan/gui/actions.cc:735 msgid "Highlight _URLs" msgstr "Adressen _hervorheben" #: pan/gui/actions.cc:738 msgid "_Work Online" msgstr "Onl_inemodus" #: pan/gui/actions.cc:739 msgid "_Tabbed Layout" msgstr "Reiter_weise Anordnung" # "Flächen" sind abgeschafft und ich will sie nie wieder sehen! #: pan/gui/actions.cc:740 msgid "Show Group _Pane" msgstr "Gru_ppenliste anzeigen" #: pan/gui/actions.cc:741 msgid "Show Hea_der Pane" msgstr "_Kopfzeilenliste anzeigen" #: pan/gui/actions.cc:742 msgid "Show Bod_y Pane" msgstr "Artikel_text anzeigen" #: pan/gui/actions.cc:743 msgid "Show _Toolbar" msgstr "_Werkzeugleiste anzeigen" #: pan/gui/actions.cc:744 msgid "Abbreviate Group Names" msgstr "Namen in Gruppenliste abkürzen" #: pan/gui/actions.cc:746 msgid "Match Only _Read Articles" msgstr "Nur ne_ue Artikel treffen" #: pan/gui/actions.cc:746 msgid "Match Only Read Articles" msgstr "Nur neue Artikel treffen" #: pan/gui/actions.cc:747 msgid "Match Only _Unread Articles" msgstr "Nur ne_ue Artikel treffen" #: pan/gui/actions.cc:747 msgid "Match Only Unread Articles" msgstr "Nur neue Artikel treffen" #: pan/gui/actions.cc:748 msgid "Match Only _Cached Articles" msgstr "Nur _zwischengespeicherte Artikel treffen" #: pan/gui/actions.cc:748 msgid "Match Only Cached Articles" msgstr "Nur zwischengespeicherte Artikel treffen" #: pan/gui/actions.cc:749 msgid "Match Only _Complete Articles" msgstr "Nur _vollständige Artikel treffen" #: pan/gui/actions.cc:749 msgid "Match Only Complete Articles" msgstr "Nur vollständige Artikel treffen" #: pan/gui/actions.cc:750 msgid "Match Only _My Articles" msgstr "Nur _eigene Artikel treffen" #: pan/gui/actions.cc:750 msgid "Match Only My Articles" msgstr "Nur eigene Artikel treffen" #: pan/gui/actions.cc:751 msgid "Match Only _Watched Articles" msgstr "Nur über_wachte Artikel treffen" #: pan/gui/actions.cc:751 msgid "Match Only Watched Articles" msgstr "Nur überwachte Artikel treffen" #: pan/gui/actions.cc:753 msgid "Match Scores of 9999 (_Watched)" msgstr "Artikel mit _Wertung 9999 (beobachtet) treffen" #: pan/gui/actions.cc:754 msgid "Match Scores of 5000...9998 (_High)" msgstr "Artikel mit Wertung zwischen 5000 und 9998 (_hoch) treffen" #: pan/gui/actions.cc:755 msgid "Match Scores of 1...4999 (Me_dium)" msgstr "Artikel mit Wertung zwischen 1 un_d 4999 (mittel) treffen" #: pan/gui/actions.cc:756 msgid "Match Scores of 0 (_Normal)" msgstr "Artikel mit Wertung von 0 (_normal) treffen" #: pan/gui/actions.cc:757 msgid "Match Scores of -9998...-1 (_Low)" msgstr "Artike_l mit Wertung zwischen -9998 und -1 (niedrig) treffen" #: pan/gui/actions.cc:758 msgid "Match Scores of -9999 (_Ignored)" msgstr "Artikel mit Wertung von -9999 (_ignoriert) treffen" #: pan/gui/actions.cc:760 msgid "Enable/Disable All _Rules" msgstr "Alle _Regeln ein- oder ausschalten" #: pan/gui/actions.cc:788 msgid "Show Matching _Articles" msgstr "Zutreffende _Artikel anzeigen" #: pan/gui/actions.cc:789 msgid "Show Matching Articles' _Threads" msgstr "S_tränge zutreffender Artikel anzeigen" #: pan/gui/actions.cc:790 msgid "Show Matching Articles' _Subthreads" msgstr "_Unterstränge zutreffender Artikel anzeigen" #: pan/gui/body-pane.cc:1038 msgid "Unnamed File" msgstr "Unbenannte Datei" #: pan/gui/body-pane.cc:1119 pan/gui/gui.cc:1956 pan/gui/header-pane.cc:1309 #: pan/gui/header-pane.cc:1738 pan/gui/post-ui.cc:2641 pan/gui/prefs-ui.cc:887 #: pan/gui/score-add-ui.cc:139 pan/gui/task-pane.cc:795 msgid "Subject" msgstr "Betreff" #: pan/gui/body-pane.cc:1121 pan/gui/gui.cc:1956 msgid "From" msgstr "Von" #: pan/gui/body-pane.cc:1123 pan/gui/gui.cc:1957 pan/gui/header-pane.cc:1817 #: pan/gui/log-ui.cc:308 pan/gui/prefs-ui.cc:883 msgid "Date" msgstr "Datum" #: pan/gui/body-pane.cc:1130 msgid "Newsgroups" msgstr "Gruppen" #: pan/gui/body-pane.cc:1137 pan/gui/body-pane.cc:1145 #: pan/gui/body-pane.cc:1152 msgid "User-Agent" msgstr "User-Agent" #: pan/gui/body-pane.cc:1158 msgid "Followup-To" msgstr "Fortschrift in" #: pan/gui/body-pane.cc:1168 msgid "Reply-To" msgstr "Mailantwort an" #: pan/gui/body-pane.cc:1216 msgid " from " msgstr " von " #: pan/gui/body-pane.cc:1218 msgid " at " msgstr " an " #: pan/gui/body-pane.cc:1307 #, c-format msgid "" "This is a PGP-Signed message.\n" "\n" "Signer: %s ('%s')\n" "Valid until: %s\n" "Created on: %s" msgstr "" "Dies ist eine PGP-signierte Nachricht.\n" "\n" "Signatur von: %s (»%s«)\n" "Gültig bis: %s\n" "Erstellungsdatum: %s" #: pan/gui/body-pane.cc:1312 msgid "always" msgstr "Immer" #: pan/gui/body-pane.cc:1532 msgid "Copy _URL" msgstr "_Adresse kopieren" #: pan/gui/body-pane.cc:1720 msgid "Save Attachment As..." msgstr "Anhang speichern unter …" #: pan/gui/body-pane.cc:1723 msgid "Save All Attachments" msgstr "Alle Anhänge speichern" #: pan/gui/body-pane.cc:1794 msgid "Attachments:" msgstr "Anlagen:" #: pan/gui/body-pane.cc:1814 msgid "Text View" msgstr "Textansicht" #: pan/gui/body-pane.cc:1823 msgid "HTML View" msgstr "HTML-Ansicht" #: pan/gui/dl-headers-ui.cc:125 #, c-format msgid "%d Group" msgid_plural "%d Groups" msgstr[0] "%d Gruppe" msgstr[1] "%d Gruppen" #: pan/gui/dl-headers-ui.cc:148 msgid "Get the last N _days' headers: " msgstr "Kopfzeilen _der letzten N Tage herunterladen: " #: pan/gui/dl-headers-ui.cc:156 msgid "Get _new headers" msgstr "Neue _Kopfzeilen herunterladen" #: pan/gui/dl-headers-ui.cc:160 msgid "Get _all headers" msgstr "_Alle Kopfzeilen herunterladen" #: pan/gui/dl-headers-ui.cc:164 msgid "Get the _latest N headers: " msgstr "Neue_ste Kopfzeilen herunterladen: " #: pan/gui/e-action-combo-box.c:386 pan/gui/prefs-ui.cc:880 msgid "Action" msgstr "Aktion" #: pan/gui/e-action-combo-box.c:387 msgid "A GtkRadioAction" msgstr "Eine GtkRadioAction" #: pan/gui/e-charset.c:51 pan/gui/task-pane.cc:561 msgid "Unknown" msgstr "Unbekannt" #: pan/gui/e-charset.c:52 msgid "Arabic" msgstr "Arabisch" #: pan/gui/e-charset.c:53 msgid "Baltic" msgstr "Baltisch" #: pan/gui/e-charset.c:54 msgid "Central European" msgstr "Mittel- und osteuropäisch" #: pan/gui/e-charset.c:55 msgid "Chinese" msgstr "Chinesisch" #: pan/gui/e-charset.c:56 msgid "Cyrillic" msgstr "Kyrillisch" #: pan/gui/e-charset.c:57 msgid "Greek" msgstr "Griechisch" #: pan/gui/e-charset.c:58 msgid "Hebrew" msgstr "Hebräisch" #: pan/gui/e-charset.c:59 msgid "Japanese" msgstr "Japanisch" #: pan/gui/e-charset.c:60 msgid "Korean" msgstr "Koreanisch" #: pan/gui/e-charset.c:61 msgid "Thai" msgstr "Thai" #: pan/gui/e-charset.c:62 msgid "Turkish" msgstr "Türkisch" #: pan/gui/e-charset.c:63 msgid "Unicode" msgstr "Unicode" #: pan/gui/e-charset.c:64 msgid "Western European" msgstr "Westeuropäisch" #: pan/gui/e-charset.c:65 msgid "Western European, New" msgstr "Westeuropäisch (neu)" #: pan/gui/e-charset.c:84 pan/gui/e-charset.c:85 pan/gui/e-charset.c:86 msgid "Traditional" msgstr "Traditionell" #: pan/gui/e-charset.c:87 pan/gui/e-charset.c:88 pan/gui/e-charset.c:89 #: pan/gui/e-charset.c:90 msgid "Simplified" msgstr "Vereinfacht" #: pan/gui/e-charset.c:93 msgid "Ukrainian" msgstr "Ukrainisch" #: pan/gui/e-charset.c:96 msgid "Visual" msgstr "Visuell" #: pan/gui/e-charset-combo-box.c:95 pan/gui/gui.cc:2154 pan/gui/post-ui.cc:546 #: pan/gui/prefs-ui.cc:791 msgid "Character Encoding" msgstr "Zeichensatz" # »Cancel« wird hier immer mit »widerrufen« übersetzt. Siehe Kommentar dazu im Header. - jb #: pan/gui/e-charset-combo-box.c:97 pan/gui/e-charset-dialog.c:51 #: pan/gui/score-add-ui.cc:606 pan/gui/task-pane.cc:309 msgid "Cancel" msgstr "Widerrufen" #: pan/gui/e-charset-combo-box.c:98 pan/gui/e-charset-dialog.c:52 msgid "OK" msgstr "OK" #: pan/gui/e-charset-combo-box.c:119 msgid "Enter the character set to use" msgstr "Geben Sie den zu verwendenden Zeichensatz an" #: pan/gui/e-charset-combo-box.c:338 msgid "Other..." msgstr "Andere …" #: pan/gui/e-cte-dialog.c:76 msgid "Default Encoding" msgstr "Vorgabe-Kodierung" #: pan/gui/e-cte-dialog.c:78 msgid "7-Bit Encoding" msgstr "7Bit-Kodierung" #: pan/gui/e-cte-dialog.c:80 msgid "8-Bit Encoding" msgstr "8Bit-Kodierung" #: pan/gui/e-cte-dialog.c:82 msgid "Base64 Encoding" msgstr "Base64-Kodierung" #: pan/gui/e-cte-dialog.c:84 msgid "Quoted-Printable Encoding" msgstr "Quoted-Printable Kodierung" #: pan/gui/group-pane.cc:331 msgid "Sent" msgstr "Gesendet" #: pan/gui/group-pane.cc:332 msgid "Drafts" msgstr "Entwürfe" #: pan/gui/group-pane.cc:543 msgid "Group" msgstr "Gruppe" #: pan/gui/group-pane.cc:544 msgid "Group (regex)" msgstr "Gruppe (regex)" #: pan/gui/group-pane.cc:987 msgid "Local Folders" msgstr "Lokale Ordner" #: pan/gui/group-pane.cc:988 msgid "Subscribed Groups" msgstr "Abonnierte Gruppen" #: pan/gui/group-pane.cc:989 msgid "Other Groups" msgstr "Andere Gruppen" #: pan/gui/group-pane.cc:1029 pan/gui/score-view-ui.cc:156 msgid "Name" msgstr "Name" #: pan/gui/group-prefs-dialog.cc:161 msgid "No Profiles defined in Edit|Posting Profiles." msgstr "Keine Profile definiert in Bearbeiten|Profile." #: pan/gui/group-prefs-dialog.cc:264 msgid "Pan: Group Preferences" msgstr "Pan: Gruppeneinstellungen" #: pan/gui/group-prefs-dialog.cc:279 msgid "Properties for Groups" msgstr "Eigenschaften für Gruppen" #: pan/gui/group-prefs-dialog.cc:281 #, c-format msgid "Properties for %s" msgstr "Eigenschaften von %s" #: pan/gui/group-prefs-dialog.cc:292 msgid "Character _encoding:" msgstr "_Zeichensatz:" #: pan/gui/group-prefs-dialog.cc:294 msgid "Directory for Saving Attachments" msgstr "Ordner zum Speichern von Anhängen" #: pan/gui/group-prefs-dialog.cc:302 msgid "Directory for _saving attachments:" msgstr "Or_dner zum Speichern von Anhängen:" #: pan/gui/group-prefs-dialog.cc:304 msgid "Posting _profile:" msgstr "_Profil:" #: pan/gui/group-prefs-dialog.cc:309 msgid "Spellchecker _language:" msgstr "Sprache für _Rechtschreibprüfung:" #: pan/gui/group-prefs-dialog.cc:312 msgid "Group color:" msgstr "Gruppenfarbe:" #: pan/gui/gui.cc:311 msgid "Open the Task Manager" msgstr "Aufgabenplaner öffnen" #: pan/gui/gui.cc:334 msgid "Open the Event Log" msgstr "Statusprotokoll öffnen" #: pan/gui/gui.cc:610 msgid "Save NZB's Files" msgstr "NZB-Dateien speichern" #: pan/gui/gui.cc:637 msgid "Untitled.nzb" msgstr "Unbenannt.nzb" #: pan/gui/gui.cc:639 msgid "Save NZB File as..." msgstr "NZB-Datei speichern unter …" #: pan/gui/gui.cc:808 msgid "Import NZB Files" msgstr "NZB-Dateien importieren" #: pan/gui/gui.cc:816 pan/gui/post-ui.cc:3349 msgid "NZB Files" msgstr "NZB-Dateien" #: pan/gui/gui.cc:821 msgid "All Files" msgstr "Alle Dateien" #: pan/gui/gui.cc:1335 msgid "Unable to supersede article." msgstr "Artikel konnte nicht ersetzt werden." #: pan/gui/gui.cc:1336 pan/gui/gui.cc:1412 msgid "The article doesn't match any of your posting profiles." msgstr "Dieser Artikel trifft auf keines Ihrer Posting-Profile zu." #: pan/gui/gui.cc:1385 msgid "Revise and send this article to replace the old one." msgstr "" "Diesen Artikel revidieren und versenden, um die vorherige Version zu " "ersetzen." #: pan/gui/gui.cc:1386 pan/gui/gui.cc:1450 msgid "Be patient! It will take time for your changes to take effect." msgstr "" "Etwas Geduld bitte! Es dauert einige Zeit, bis Ihre Änderungen wirksam " "werden." #: pan/gui/gui.cc:1411 msgid "Unable to cancel article." msgstr "Artikel konnte nicht widerrufen werden." #: pan/gui/gui.cc:1449 msgid "Send this article to ask your server to cancel your other one." msgstr "" "Diesen Artikel versenden, um den Server um den Widerruf der anderen Version " "zu bitten." #: pan/gui/gui.cc:1467 msgid "You have marked some articles for deletion." msgstr "Sie haben einige Artikel zum Löschen markiert." #: pan/gui/gui.cc:1468 msgid "Are you sure you want to delete them?" msgstr "Wollen Sie diese wirklich löschen?" #: pan/gui/gui.cc:1494 msgid "Do you want to accept it permanently? (You can change this later.)" msgstr "Wollen Sie dies dauerhaft akzeptieren (nachträglich änderbar)?" #: pan/gui/gui.cc:1640 msgid "Unable to open help file." msgstr "Die Hilfedatei konnte nicht geöffnet werden." #: pan/gui/gui.cc:1668 msgid "Copyright © 2002-2021 Charles Kerr and others" msgstr "Copyright © 2002-2021 Charles Kerr und weitere" #: pan/gui/gui.cc:1673 msgid "translator-credits" msgstr "" "Manuel Borchers \n" "Benjamin Greiner \n" "Kai Lahmann \n" "Christian Meyer \n" "Christian Neumair \n" "Matthias Warkus \n" "Karsten Weiss \n" "Mario Blättermann \n" "Jürgen Benvenuti " #: pan/gui/gui.cc:1801 msgid "_1. Group Pane" msgstr "_1. Gruppenliste" #: pan/gui/gui.cc:1802 msgid "_2. Header Pane" msgstr "_2. Kopfzeilenliste" #: pan/gui/gui.cc:1803 msgid "_3. Body Pane" msgstr "_3. Artikeltext" #: pan/gui/gui.cc:1893 pan/gui/gui.cc:1908 msgid " Bytes" msgstr " Bytes" #: pan/gui/gui.cc:1896 msgid " KB" msgstr " kB" #: pan/gui/gui.cc:1899 msgid " MB" msgstr " MB" #: pan/gui/gui.cc:1902 msgid " GB" msgstr " GB" #: pan/gui/gui.cc:1905 msgid " TB" msgstr " TB" #: pan/gui/gui.cc:1937 #, c-format msgid "This article is complete with %d part." msgid_plural "This article has all %d parts." msgstr[0] "Artikel ist vollständig mit %d Anlage." msgstr[1] "Artikel besitzt alle %d Anlagen." #: pan/gui/gui.cc:1939 #, c-format msgid "This article is missing %d part." msgid_plural "This article is missing %d of its %d parts:" msgstr[0] "Diesem Artikel fehlt %d Teil." msgstr[1] "Diesem Artikel fehlen %d seiner %d Teile:" #: pan/gui/gui.cc:1957 pan/gui/header-pane.cc:1311 pan/gui/task-pane.cc:797 msgid "Message-ID" msgstr "Nachrichtenkennung" #: pan/gui/gui.cc:1958 pan/gui/header-pane.cc:1786 pan/gui/prefs-ui.cc:884 msgid "Lines" msgstr "Zeilen" #: pan/gui/gui.cc:1958 msgid "Size" msgstr "Größe" #: pan/gui/gui.cc:1959 pan/gui/header-pane.cc:1802 pan/gui/prefs-ui.cc:882 msgid "Bytes" msgstr "Bytes" #: pan/gui/gui.cc:2009 msgid "" "Error loading iconv library. Encoding certain character sets will not work " "in GUI." msgstr "" "Fehler beim Laden der iconv-Bibliothek. Einige Zeichensätze in der " "Benutzeroberfläche werden nicht enkodiert." #: pan/gui/gui.cc:2155 msgid "Body Pane Encoding" msgstr "Kodierung des Artikeltexts" #: pan/gui/gui.cc:2186 pan/gui/task-pane.cc:612 msgid "Offline" msgstr "Offline" #: pan/gui/gui.cc:2190 #, c-format msgid "Closing %d connection" msgid_plural "Closing %d connections" msgstr[0] "%d Verbindung werden getrennt" msgstr[1] "%d Verbindungen werden getrennt" #: pan/gui/gui.cc:2192 pan/gui/gui.cc:2222 msgid "No Connections" msgstr "Keine Verbindungen" #: pan/gui/gui.cc:2196 msgid "Connecting" msgstr "Es wird verbunden" #: pan/gui/gui.cc:2209 #, c-format msgid "%s: %d idle, %d active @ %.1f KiBps" msgstr "%s: %d untätig, %d aktiv @ %.1f KiBps" #: pan/gui/gui.cc:2265 msgid "No Tasks" msgstr "Keine Aufgaben" #: pan/gui/gui.cc:2267 pan/gui/prefs-ui.cc:1121 msgid "Tasks" msgstr "Aufgaben" #: pan/gui/gui.cc:2284 pan/gui/task-pane.cc:478 #, c-format msgid "%lu tasks, %s, %.1f KiBps, ETA %d:%02d:%02d" msgstr "%lu Aufgaben, %s, %.1f KiBps, ETA %d:%02d:%02d" #: pan/gui/gui.cc:2336 msgid "" "Pan is now offline. Please see \"File|Event Log\" and correct the problem, " "then use \"File|Work Online\" to continue." msgstr "" "Pan ist jetzt offline. Bitte schauen Sie in »Datei|Statusprotokoll«, um das " "Problem zu beheben, dann wählen Sie »Datei|Onlinemodus«, um fortzusetzen." #: pan/gui/header-pane.cc:1307 pan/gui/task-pane.cc:793 msgid "Subject or Author" msgstr "Betreff oder Autor" #: pan/gui/header-pane.cc:1308 pan/gui/task-pane.cc:794 msgid "Sub or Auth (regex)" msgstr "Sub oder Auth (regex)" #: pan/gui/header-pane.cc:1310 pan/gui/header-pane.cc:1770 #: pan/gui/prefs-ui.cc:881 pan/gui/score-add-ui.cc:140 pan/gui/task-pane.cc:796 msgid "Author" msgstr "Autor" #: pan/gui/header-pane.cc:1755 pan/gui/prefs-ui.cc:885 msgid "Score" msgstr "Wertung" #: pan/gui/log-ui.cc:105 msgid "Save Event List" msgstr "Aufgabenliste speichern" #: pan/gui/log-ui.cc:259 msgid "Pan: Events" msgstr "Pan: Aufgaben" #: pan/gui/log-ui.cc:318 msgid "Message" msgstr "Nachricht" #: pan/gui/pan.cc:336 msgid "Maximize" msgstr "Maximieren" #: pan/gui/pan.cc:376 msgid "An error has occurred!" msgstr "Ein Fehler ist aufgetreten!" #: pan/gui/pan.cc:389 msgid "New Articles!" msgstr "Neue Artikel!" #: pan/gui/pan.cc:390 msgid "" "There are new\n" "articles available." msgstr "" "Es sind neue\n" "Artikel verfügbar." #: pan/gui/pan.cc:470 msgid "" "Thank you for trying Pan!\n" " \n" "To start newsreading, first Add a Server." msgstr "" "Vielen Dank für die Verwendung von Pan!\n" "\n" "Um mit dem Lesen von Diskussionsgruppen zu beginnen, fügen Sie zunächst " "einen Server hinzu." #: pan/gui/pan.cc:552 msgid "" "General Options\n" " -h, --help Show this usage information and exit.\n" " -v, --version Print release version and exit.\n" " --verbose Be verbose (in non-GUI mode).\n" " --debug Run in debug mode. Use --debug twice for verbose " "debug.\n" " --debug-ssl Run in TLS (aka SSL) debug mode.\n" "\n" "URL Options\n" " headers:group.name Download new headers for the specified " "newsgroup.\n" " news:message-id When specified together with --no-gui, dump\n" " the message-id article to standard output.\n" "\n" "NZB Batch Options\n" " --nzb file1 file2 ... Process NZB files in non-GUI mode.\n" " -o path, --output=path Path to save attachments listed in the NZB " "file(s).\n" " --no-gui Only show console output, not the download " "queue.\n" msgstr "" "Allgemeine Optionen\n" " -h, --help Diese Hilfeseite anzeigen und beenden.\n" " -v, --version Version ausgeben und beenden.\n" " --verbose Ausführliche Ausgabe (im Textmodus).\n" " --debug Im Fehlerdiagnosemodus ausführen. --debug zweimal " "verwenden für ausführliche Fehlerdiagnose.\n" " --debug-ssl Im TLS- (alias SSL) Fehlerdiagnosemodus " "ausführen.\n" "\n" "URL-Optionen\n" " Kopfzeile:Gruppe.Name Kopfzeilen neuer Artikel für die angegebene\n" " Newsgruppe herunterladen.\n" " News:Nachrichten-ID Wenn zusammen mit --no-gui angegeben, den " "Artikel\n" " mit der Nachrichten-ID in die Standardausgabe\n" " ausgeben.\n" "\n" "NZB Batch-Optionen\n" " --nzb Datei1 Datei2 … nzb-Dateien im Nicht-GUI-Modus verarbeiten.\n" " -o Pfad, --output=Pfad Pfad zum Speichern von Anhängen in den nzb-" "Dateien.\n" " --no-gui Nur Konsolenausgabe anzeigen, nicht die Download-" "Warteschlange.\n" #: pan/gui/pan.cc:885 msgid "Error: --no-gui used without nzb files or news:message-id." msgstr "Fehler: --no-gui wird ohne nzb-Dateien oder news:message-id benutzt." #: pan/gui/pan.cc:889 #, c-format msgid "Pan %s started" msgstr "Pan %s gestartet" #: pan/gui/pan.cc:909 msgid "Please configure Pan's news servers before using it as an nzb client." msgstr "" "Bitte konfigurieren Sie die News-Server für Pan, bevor Sie es als NZB-Client " "verwenden." #: pan/gui/pan.cc:1029 msgid "Pan notification" msgstr "Pan-Benachrichtigungsdienst" #: pan/gui/post-ui.cc:175 #, c-format msgid "Upload queue: %llu tasks, %ld KB (~ %.2f MB) total." msgstr "Übertragungswarteschlange: %llu Aufgaben, %ld kB (~ %.2f MB) gesamt." #: pan/gui/post-ui.cc:281 pan/gui/post-ui.cc:312 #, c-format msgid "Error setting custom spellchecker: %s" msgstr "Fehler beim Festlegen der benutzerdefinierten Rechtschreibprüfung: %s" #: pan/gui/post-ui.cc:285 pan/gui/post-ui.cc:293 pan/gui/post-ui.cc:316 #: pan/gui/post-ui.cc:324 #, c-format msgid "Error setting spellchecker: %s" msgstr "Fehler beim Einstellen der Rechtschreibprüfung: %s" #: pan/gui/post-ui.cc:453 msgid "_Profile" msgstr "_Profil" #: pan/gui/post-ui.cc:454 msgid "Set Editor" msgstr "Editor festlegen" #: pan/gui/post-ui.cc:456 msgid "_Send Article" msgstr "Artikel _senden" #: pan/gui/post-ui.cc:456 msgid "Send Article Now" msgstr "Artikel jetzt senden" #: pan/gui/post-ui.cc:457 msgid "_Send and Save Articles to NZB" msgstr "Artikel _senden und in NZB speichern" #: pan/gui/post-ui.cc:457 msgid "Send and Save Articles to NZB" msgstr "Artikel senden und in NZB speichern" #: pan/gui/post-ui.cc:458 msgid "Set Character _Encoding..." msgstr "_Zeichenkodierung festlegen …" #: pan/gui/post-ui.cc:459 msgid "Set Content _Transfer Encoding..." msgstr "Zeichenkodierung für die Über_tragung festlegen …" #: pan/gui/post-ui.cc:460 msgid "Sa_ve Draft" msgstr "Entwur_f speichern" #: pan/gui/post-ui.cc:460 msgid "Save as a Draft for Future Posting" msgstr "Als Entwurf für die spätere Verwendung speichern" #: pan/gui/post-ui.cc:461 msgid "_Open Draft..." msgstr "Ent_wurf öffnen …" #: pan/gui/post-ui.cc:461 msgid "Open an Article Draft" msgstr "Artikelentwurf öffnen" #: pan/gui/post-ui.cc:466 msgid "_Rot13" msgstr "_Rot13" #: pan/gui/post-ui.cc:466 msgid "Rot13 Selected Text" msgstr "Rot13 auf Textauswahl anwenden" #: pan/gui/post-ui.cc:467 msgid "Run _Editor" msgstr "_Editor starten" #: pan/gui/post-ui.cc:467 msgid "Run Editor" msgstr "Editor starten" #: pan/gui/post-ui.cc:469 msgid "Add _Files to Queue" msgstr "Dateien zur _Warteschlange hinzufügen" #: pan/gui/post-ui.cc:469 msgid "Add Files to Queue" msgstr "Dateien zur Warteschlange hinzufügen" #: pan/gui/post-ui.cc:484 pan/gui/post-ui.cc:485 msgid "Remove from Queue" msgstr "Aus der Warteschlange entfernen" #: pan/gui/post-ui.cc:489 pan/gui/post-ui.cc:490 msgid "Clear List" msgstr "Liste leeren" #: pan/gui/post-ui.cc:494 pan/gui/post-ui.cc:495 msgid "Select Needed Parts" msgstr "Benötigte Teile auswählen" #: pan/gui/post-ui.cc:499 pan/gui/post-ui.cc:500 pan/gui/task-pane.cc:680 #: pan/gui/task-pane.cc:681 msgid "Move Up" msgstr "Herauf schieben" #: pan/gui/post-ui.cc:504 pan/gui/post-ui.cc:505 pan/gui/task-pane.cc:685 #: pan/gui/task-pane.cc:686 msgid "Move Down" msgstr "Hinunter schieben" #: pan/gui/post-ui.cc:509 pan/gui/post-ui.cc:510 msgid "Move to Top" msgstr "Nach ganz oben verschieben" #: pan/gui/post-ui.cc:514 pan/gui/post-ui.cc:515 msgid "Move to Bottom" msgstr "Nach ganz unten verschieben" #: pan/gui/post-ui.cc:522 msgid "_Wrap Text" msgstr "Um_brechen" #: pan/gui/post-ui.cc:522 msgid "Wrap Text" msgstr "Text umbrechen" #: pan/gui/post-ui.cc:523 msgid "Always Run Editor" msgstr "Immer den Editor starten" #: pan/gui/post-ui.cc:524 msgid "Remember Character Encoding for This Group" msgstr "Zeichensatz für diese Gruppe merken" #: pan/gui/post-ui.cc:525 msgid "Thread Attached Replies" msgstr "Anhänge gruppieren" #: pan/gui/post-ui.cc:526 msgid "PGP-Encrypt the Article" msgstr "Artikel mit PGP verschlüsseln" #: pan/gui/post-ui.cc:527 msgid "PGP-Sign the Article" msgstr "Artikel mit PGP signieren" #: pan/gui/post-ui.cc:528 msgid "Check _Spelling" msgstr "Recht_schreibprüfung" #: pan/gui/post-ui.cc:547 msgid "New Article's Encoding:" msgstr "Kodierung des neuen Artikels:" #: pan/gui/post-ui.cc:557 msgid "Content Transfer Encoding" msgstr "Zeichenkodierung für die Übertragung" #: pan/gui/post-ui.cc:558 msgid "New Article's Content Transfer Encoding:" msgstr "Übertragungs-Zeichenkodierung des neuen Artikels:" #: pan/gui/post-ui.cc:742 msgid "Your changes will be lost!" msgstr "Ihre Änderungen werden verloren gehen!" #: pan/gui/post-ui.cc:743 msgid "Close this window and lose your changes?" msgstr "Dieses Fenster schließen und Ihre Änderungen verwerfen?" #: pan/gui/post-ui.cc:788 pan/gui/post-ui.cc:827 msgid "There were problems with this post." msgstr "Es gab Probleme mit diesem Artikel." #: pan/gui/post-ui.cc:790 pan/gui/post-ui.cc:829 pan/gui/post-ui.cc:894 msgid "Go Back" msgstr "Zurückblättern" #: pan/gui/post-ui.cc:792 msgid "Continue Anyway" msgstr "Trotzdem fortfahren" #. Prompt the user #: pan/gui/post-ui.cc:821 #, c-format msgid "" "Message uses characters not specified in charset '%s' - possibly use '%s' " msgstr "" "Die Nachricht enthält Zeichen, die der Zeichensatz »%s« nicht vorsieht. " "Womöglich ist die Verwendung von »%s« angebrachter. " #: pan/gui/post-ui.cc:844 msgid "Go _Online" msgstr "_Online gehen" #: pan/gui/post-ui.cc:893 msgid "The file queue is empty, so no files can be saved." msgstr "" "Die Dateiwarteschlange ist leer, daher können keine Dateien gespeichert " "werden." #: pan/gui/post-ui.cc:1073 msgid "IO Error" msgstr "E/A-Fehler" #: pan/gui/post-ui.cc:1073 msgid "No space left on device" msgstr "Kein Speicherplatz auf dem Gerät übrig" #: pan/gui/post-ui.cc:1074 #, c-format msgid "Error copying message to %s folder. Reason: %s" msgstr "Fehler beim Kopieren der Nachricht in den Ordner %s. Ursache: %s" #: pan/gui/post-ui.cc:1080 #, c-format msgid "Error creating message in %s mail folder: Invalid article." msgstr "" "Fehler beim Erstellen der Nachricht im Mail-Ordner %s: Ungültiger Artikel." #: pan/gui/post-ui.cc:1102 msgid "" "No posting server is set for this posting profile.\n" "Please edit the profile via Edit|Manage Posting Profiles." msgstr "" "Für dieses Profil wurde kein Server angegeben.\n" "Bitte bearbeiten Sie das Profil in »Bearbeiten|Profile verwalten«." #: pan/gui/post-ui.cc:1107 msgid "" "The selected posting server is currently disabled. Please choose an " "appropriate alternative." msgstr "" "Der gewählte Posting-Server ist momentan deaktiviert. Bitte wählen Sie eine " "entsprechende Alternative." #: pan/gui/post-ui.cc:1149 msgid "Pan is Offline." msgstr "Pan ist offline." #: pan/gui/post-ui.cc:1150 msgid "Go online to post the article?" msgstr "Online gehen, um den Artikel zu versenden?" #: pan/gui/post-ui.cc:1199 #, c-format msgid "" "Error signing/encrypting your message. Perhaps you misspelled your email " "address (%s)?" msgstr "" "Fehler beim Signieren oder Verschlüsseln Ihrer Nachricht. Vielleicht haben " "Sie Ihre E-Mail-Adresse (%s) falsch geschrieben?" #: pan/gui/post-ui.cc:1349 msgid "Error opening temporary file" msgstr "Fehler beim Öffnen der temporären Datei" #: pan/gui/post-ui.cc:1360 #, c-format msgid "Error creating temporary file: %s" msgstr "Fehler beim Erstellen der temporären Datei: %s" #: pan/gui/post-ui.cc:1368 #, c-format msgid "Error writing article to temporary file: %s" msgstr "Fehler beim Schreiben des Artikels in temporäre Datei: %s" #: pan/gui/post-ui.cc:1441 msgid "Open Draft Article" msgstr "Artikelentwurf öffnen" #: pan/gui/post-ui.cc:1683 msgid "Save Draft Article" msgstr "Artikelentwurf speichern" #: pan/gui/post-ui.cc:1721 msgid "File already exists." msgstr "Datei existiert bereits." #: pan/gui/post-ui.cc:1722 msgid "Overwrite it?" msgstr "Überschreiben?" #: pan/gui/post-ui.cc:1931 #, c-format msgid "Couldn't parse signature command \"%s\": %s" msgstr "Signaturbefehl »%s« konnte nicht gelesen werden: %s" #: pan/gui/post-ui.cc:1967 msgid "Couldn't convert signature to UTF-8." msgstr "Signatur konnte nicht nach UTF-8 konvertiert werden." #: pan/gui/post-ui.cc:2479 msgid "F_rom" msgstr "_Von" #: pan/gui/post-ui.cc:2496 msgid "_Subject" msgstr "_Betreff" #: pan/gui/post-ui.cc:2509 msgid "_Newsgroups" msgstr "_Gruppen" #: pan/gui/post-ui.cc:2523 msgid "Mail _To" msgstr "Nachricht _an" #: pan/gui/post-ui.cc:2626 msgid "Delete from Queue" msgstr "Aus der Warteschlange löschen" #: pan/gui/post-ui.cc:2639 msgid "No." msgstr "Nr." #: pan/gui/post-ui.cc:2643 pan/gui/post-ui.cc:2735 pan/gui/post-ui.cc:2776 msgid "Filename" msgstr "Dateiname" #: pan/gui/post-ui.cc:2645 msgid "Size (KB)" msgstr "Größe (kB)" #: pan/gui/post-ui.cc:2743 msgid "The current filename" msgstr "Der aktuelle Dateiname" #: pan/gui/post-ui.cc:2747 msgid "Subject Line" msgstr "Betreffzeile" #: pan/gui/post-ui.cc:2755 msgid "The current subject line" msgstr "Die aktuelle Betreffzeile" #: pan/gui/post-ui.cc:2769 msgid "No. " msgstr "Nr. " #: pan/gui/post-ui.cc:2773 msgid "Enable/Disable" msgstr "Aktivieren/Deaktivieren" #: pan/gui/post-ui.cc:2807 msgid "Follo_wup-To" msgstr "Forts_chrift in" #. i18n: "poster" is a key used by many newsreaders. probably safest to keep this key in english. #: pan/gui/post-ui.cc:2816 msgid "" "The newsgroups where replies to your message should go. This is only needed " "if it differs from the \"Newsgroups\" header.\n" "\n" "To direct all replies to your email address, use \"Followup-To: poster\"" msgstr "" "Die Gruppe(n), in der/denen Antworten auf die Nachricht erscheinen sollen. " "Wird nur benötigt, falls unterschiedlich von der Zielgruppe.\n" "Um alle Antworten per E-Mail geschickt zu bekommen, verwenden Sie hier " "»Fortschreiben in: poster«." #: pan/gui/post-ui.cc:2823 msgid "_Reply-To" msgstr "_Antwort an" #: pan/gui/post-ui.cc:2831 msgid "" "The email account where mail replies to your posted message should go. This " "is only needed if it differs from the \"From\" header." msgstr "" "Die E-Mail-Adresse, an die Antworten auf Ihre Artikel geschickt werden " "sollen. Sie wird nur gebraucht, falls sie sich vom Teil »Von« des " "Artikelkopfes unterscheidet." #: pan/gui/post-ui.cc:2838 msgid "_Custom Headers" msgstr "Ben_utzerdefinierte Kopfzeilen" #: pan/gui/post-ui.cc:2862 msgid "Add \"_User-Agent\" header" msgstr "»_User-Agent«-Kopfzeile anfügen" #: pan/gui/post-ui.cc:2869 msgid "Add \"Message-_ID\" header" msgstr "»Message-_ID«-Kopfzeile hinzufügen" #: pan/gui/post-ui.cc:2997 msgid "Select Parts" msgstr "Teile auswählen" #: pan/gui/post-ui.cc:3010 msgid "_Parts" msgstr "_Teile" #: pan/gui/post-ui.cc:3177 msgid "Post Article" msgstr "Artikel veröffentlichen" #: pan/gui/post-ui.cc:3198 msgid "_Message" msgstr "_Nachricht" #: pan/gui/post-ui.cc:3199 msgid "More _Headers" msgstr "Weitere _Kopfzeilen" #: pan/gui/post-ui.cc:3200 msgid "File _Queue" msgstr "Datei_warteschlange" #: pan/gui/post-ui.cc:3231 pan/gui/profiles-dialog.cc:490 #, no-c-format msgid "On %d, %n wrote:" msgstr "Am %d schrieb %n:" #: pan/gui/post-ui.cc:3260 msgid "Add files to queue" msgstr "Dateien zur Warteschlange hinzufügen" #: pan/gui/post-ui.cc:3336 msgid "Save Upload Queue as NZB File" msgstr "Übertragungswarteschlange in eine NZB-Datei speichern" #: pan/gui/prefs.cc:366 #, c-format msgid "Couldn't parse %s color \"%s\"" msgstr "%s-Farbe »%s« konnte nicht verarbeitet werden" #: pan/gui/prefs-ui.cc:139 msgid "Grab Key" msgstr "Tastencode holen" #: pan/gui/prefs-ui.cc:145 #, c-format msgid "" "Press the combination of the keys\n" "you want to use for \"%s\"." msgstr "" "Drücken Sie die Tastenkombination,\n" "die Sie für »%s« verwenden wollen." #: pan/gui/prefs-ui.cc:182 msgid "Edit Shortcut" msgstr "Tastenkombination bearbeiten" #: pan/gui/prefs-ui.cc:243 msgid "Error: Shortcut key is invalid!" msgstr "Fehler: Tastenkürzel ist ungültig!" #: pan/gui/prefs-ui.cc:259 msgid "Error: Shortcut key already exists!" msgstr "Fehler: Tastenkürzel existiert bereits!" #: pan/gui/prefs-ui.cc:593 msgid "Show only icons" msgstr "Nur die Symbole anzeigen" #: pan/gui/prefs-ui.cc:594 msgid "Show only text" msgstr "Nur den Text anzeigen" #: pan/gui/prefs-ui.cc:595 msgid "Show icons and text" msgstr "Text und Symbole anzeigen" #: pan/gui/prefs-ui.cc:634 msgid "Use GNOME Preferences" msgstr "GNOME-Einstellungen verwenden" #: pan/gui/prefs-ui.cc:635 msgid "Use KDE Preferences" msgstr "KDE-Einstellungen verwenden" #: pan/gui/prefs-ui.cc:636 msgid "Use OS X Preferences" msgstr "OSX-Einstellungen verwenden" #: pan/gui/prefs-ui.cc:637 msgid "Use Windows Preferences" msgstr "Windows-Einstellungen verwenden" #: pan/gui/prefs-ui.cc:638 msgid "Custom Command:" msgstr "Benutzerdefinierter Befehl:" #: pan/gui/prefs-ui.cc:690 msgid "Disabled" msgstr "Deaktiviert" #: pan/gui/prefs-ui.cc:691 msgid "Only new (score == 0)" msgstr "Nur neu (Wertung == 0)" #: pan/gui/prefs-ui.cc:692 msgid "9999 or more" msgstr "9999 oder mehr" #: pan/gui/prefs-ui.cc:693 msgid "5000 to 9998" msgstr "5000 bis 9998" #: pan/gui/prefs-ui.cc:694 msgid "1 to 4999" msgstr "1 bis 4999" #: pan/gui/prefs-ui.cc:695 msgid "-9998 to -1" msgstr "-9998 bis -1" #: pan/gui/prefs-ui.cc:696 msgid "-9999 or less" msgstr "-9999 oder weniger" #: pan/gui/prefs-ui.cc:760 #, c-format msgid "Select default global character set. Current setting: %s." msgstr "" "Systemweit vorgegebenen Zeichensatz wählen. Aktuelle Einstellung: " "%s." #: pan/gui/prefs-ui.cc:792 msgid "Global Character Set Settings" msgstr "Globale Zeichensatzeinstellungen" #: pan/gui/prefs-ui.cc:886 pan/gui/task-pane.cc:1067 msgid "State" msgstr "Status" #: pan/gui/prefs-ui.cc:920 msgid "Enabled" msgstr "Aktiviert" #: pan/gui/prefs-ui.cc:924 msgid "Column Name" msgstr "Spaltenname" #: pan/gui/prefs-ui.cc:962 msgid "Pan: Preferences" msgstr "Pan: Einstellungen" #: pan/gui/prefs-ui.cc:977 msgid "Mouse" msgstr "Maus" #: pan/gui/prefs-ui.cc:979 msgid "Single-click activates, rather than selects, _groups" msgstr "_Einzelklick wählt Gruppen aus, anstatt sie zu laden" #: pan/gui/prefs-ui.cc:981 msgid "Single-click activates, rather than selects, _articles" msgstr "Einzel_klick wählt Artikel aus, anstatt sie zu laden" #: pan/gui/prefs-ui.cc:984 msgid "Groups" msgstr "Gruppen" #: pan/gui/prefs-ui.cc:986 msgid "Get new headers in subscribed groups on _startup" msgstr "Neue Kopfzeilen abonnierter Gruppen beim _Start herunterladen" #: pan/gui/prefs-ui.cc:988 msgid "Get new headers when _entering group" msgstr "Neue Kopfzeilen beim Betreten einer _Gruppe herunterladen" #: pan/gui/prefs-ui.cc:990 msgid "Mark entire group _read when leaving group" msgstr "" "Die Artikel einer Gruppe als gelesen _markieren, wenn sie verlassen wird" #: pan/gui/prefs-ui.cc:992 msgid "Mark entire group read before getting _new headers" msgstr "" "Die Artikel einer Gruppe als gelesen markieren, bevor _neue Kopfzeilen " "heruntergeladen werden" #: pan/gui/prefs-ui.cc:994 msgid "E_xpand all threads when entering group" msgstr "Alle _Stränge beim Betreten einer Gruppe ausklappen" #: pan/gui/prefs-ui.cc:999 msgid "Articles" msgstr "Artikel" #: pan/gui/prefs-ui.cc:1001 msgid "Mark downloaded articles read" msgstr "Heruntergeladene Artikel als gelesen markieren" #: pan/gui/prefs-ui.cc:1003 msgid "Space selects next article rather than next unread" msgstr "Leertaste wählt den nächsten Artikel anstatt des nächsten ungelesenen" #: pan/gui/prefs-ui.cc:1005 msgid "Expand threads upon selection" msgstr "Stränge zur Auswahl ausklappen" #: pan/gui/prefs-ui.cc:1007 msgid "Always ask before deleting an article" msgstr "Vor dem Löschen eines Artikels stets nachfragen" #: pan/gui/prefs-ui.cc:1009 msgid "Smooth scrolling" msgstr "Weicher Bildlauf" #: pan/gui/prefs-ui.cc:1014 msgid "Article Cache" msgstr "Artikel-Zwischenspeicher" #: pan/gui/prefs-ui.cc:1015 msgid "Clear article cache on shutdown" msgstr "Artikel-Zwischenspeicher beim Ausschalten leeren" #: pan/gui/prefs-ui.cc:1018 msgid "Size of article cache (in MiB):" msgstr "Größe des Artikel-Zwischenspeichers (in MiB):" #: pan/gui/prefs-ui.cc:1022 msgid "File extension for cached articles: " msgstr "Dateierweiterung für zwischengespeicherte Artikel: " #: pan/gui/prefs-ui.cc:1026 msgid "Tabs" msgstr "Reiter" #: pan/gui/prefs-ui.cc:1031 msgid "_Behavior" msgstr "_Verhalten" #: pan/gui/prefs-ui.cc:1031 msgid "Behavior" msgstr "Verhalten" #: pan/gui/prefs-ui.cc:1037 msgid "Task Pane" msgstr "Aufgabenleiste" #: pan/gui/prefs-ui.cc:1038 msgid "Show task pane popups" msgstr "Einblendungen in Aufgabenansicht anzeigen" #: pan/gui/prefs-ui.cc:1040 msgid "Show Download Meter" msgstr "Download-Fortschrittsbalken anzeigen" #: pan/gui/prefs-ui.cc:1044 msgid "_Panes" msgstr "_Leisten" #: pan/gui/prefs-ui.cc:1044 msgid "Panes" msgstr "Leisten" #: pan/gui/prefs-ui.cc:1050 msgid "Language Settings" msgstr "Spracheinstellungen" #: pan/gui/prefs-ui.cc:1051 msgid "Font" msgstr "Schrift" #. systray and notify popup #: pan/gui/prefs-ui.cc:1058 msgid "System Tray Behavior" msgstr "Verhalten der Benachrichtigungen" #: pan/gui/prefs-ui.cc:1060 msgid "Start Pan minimized" msgstr "Pan minimiert im Benachrichtigungsfeld starten" #: pan/gui/prefs-ui.cc:1063 msgid "Show notifications" msgstr "Benachrichtigungen anzeigen" #. allow multiple instances (seperate, not communicating with dbus) #: pan/gui/prefs-ui.cc:1068 msgid "Startup Behavior" msgstr "Startverhalten" #: pan/gui/prefs-ui.cc:1070 msgid "Allow multiple instances of Pan" msgstr "Mehrere Instanzen von Pan erlauben" #: pan/gui/prefs-ui.cc:1075 msgid "Autosave Article Draft" msgstr "Artikelentwurf automatisch speichern" #: pan/gui/prefs-ui.cc:1077 msgid "Minutes to autosave the current Article Draft: " msgstr "Minuten zum automatischen Speichern des aktuellen Artikelentwurfs: " #: pan/gui/prefs-ui.cc:1082 msgid "Autosave Articles" msgstr "Artikel automatisch speichern" #: pan/gui/prefs-ui.cc:1084 msgid "Minutes to autosave newsrc files: " msgstr "Minuten zum automatischen Speichern von newsrc-Dateien: " #: pan/gui/prefs-ui.cc:1091 msgid "Password Storage" msgstr "Passwortspeicher" #: pan/gui/prefs-ui.cc:1093 msgid "Save passwords in password storage" msgstr "Passwörter im Passwortspeicher ablegen" #: pan/gui/prefs-ui.cc:1100 msgid "_Miscellaneous" msgstr "_Verschiedenes" #: pan/gui/prefs-ui.cc:1100 msgid "Miscellaneous" msgstr "Verschiedenes" #: pan/gui/prefs-ui.cc:1105 msgid "Pane Layout" msgstr "Layout" #: pan/gui/prefs-ui.cc:1124 msgid "1=Groups, 2=Headers, 3=Body" msgstr "1=Gruppen, 2=Kopfzeilen, 3=Text" #: pan/gui/prefs-ui.cc:1126 msgid "1=Groups, 2=Body, 3=Headers" msgstr "1=Gruppen, 2=Text, 3=Kopfzeilen" #: pan/gui/prefs-ui.cc:1128 msgid "1=Headers, 2=Groups, 3=Body" msgstr "1=Kopfzeilen, 2=Gruppen, 3=Text" #: pan/gui/prefs-ui.cc:1130 msgid "1=Headers, 2=Body, 3=Groups" msgstr "1=Kopfzeilen, 2=Text, 3=Gruppen" #: pan/gui/prefs-ui.cc:1132 msgid "1=Body, 2=Groups, 3=Headers" msgstr "1=Text, 2=Gruppen, 3=Kopfzeilen" #: pan/gui/prefs-ui.cc:1134 msgid "1=Body, 2=Headers, 3=Groups" msgstr "1=Text, 2=Kopfzeilen, 3=Gruppen" #: pan/gui/prefs-ui.cc:1138 msgid "Layout" msgstr "Anordnung" #: pan/gui/prefs-ui.cc:1143 msgid "Header Pane Columns" msgstr "Spalten der Kopfzeilenliste" #: pan/gui/prefs-ui.cc:1147 msgid "_Headers" msgstr "_Kopfzeilen" #: pan/gui/prefs-ui.cc:1147 msgid "Headers" msgstr "Kopfzeilen" #: pan/gui/prefs-ui.cc:1153 msgid "" "This menu lets you configure Pan to take certain actions on your behalf " "automatically, based on an article's score." msgstr "" "In diesem Menü können Sie Pan so einrichten, dass bestimmte Aktionen auf " "Wunsch automatisch ausgeführt werden, basierend auf der Bewertung eines " "Artikels." #: pan/gui/prefs-ui.cc:1158 msgid "Mark affected articles read" msgstr "Betreffende Artikel als gelesen markieren" #: pan/gui/prefs-ui.cc:1167 msgid "_Delete articles scoring at: " msgstr "Artikel _löschen mit einer Wertung von: " #: pan/gui/prefs-ui.cc:1173 msgid "Mark articles read scoring at: " msgstr "Artikel als gelesen ma_rkieren bei einer Bewertung mit: " #: pan/gui/prefs-ui.cc:1179 msgid "_Cache articles scoring at: " msgstr "Artikel zwis_chenspeichern mit einer Wertung von: " #: pan/gui/prefs-ui.cc:1185 msgid "Download attachments of articles scoring at: " msgstr "_Anhänge herunterladen bei einer Bewertung mit: " #: pan/gui/prefs-ui.cc:1188 msgid "Actions" msgstr "Aktionen" #: pan/gui/prefs-ui.cc:1193 pan/gui/prefs-ui.cc:1214 msgid "Fonts" msgstr "Schriften" #: pan/gui/prefs-ui.cc:1195 msgid "Use custom font in Group Pane:" msgstr "Hier angegebene Schriften für Gruppenliste verwenden:" #: pan/gui/prefs-ui.cc:1200 msgid "Use custom font in Header Pane:" msgstr "Hier angegebene Schriften für Kopfzeilen verwenden:" #: pan/gui/prefs-ui.cc:1205 msgid "Use custom font in Body Pane:" msgstr "Hier angegebene _Schriften für Artikeltext verwenden:" #: pan/gui/prefs-ui.cc:1210 msgid "Monospace font:" msgstr "Dicktengleiche Schrift:" #: pan/gui/prefs-ui.cc:1214 msgid "_Fonts" msgstr "_Schriften" #: pan/gui/prefs-ui.cc:1223 msgid "Header Pane" msgstr "Kopfzeilenliste" #: pan/gui/prefs-ui.cc:1226 pan/gui/prefs-ui.cc:1232 pan/gui/prefs-ui.cc:1238 #: pan/gui/prefs-ui.cc:1244 pan/gui/prefs-ui.cc:1250 pan/gui/prefs-ui.cc:1256 #: pan/gui/prefs-ui.cc:1265 pan/gui/prefs-ui.cc:1271 pan/gui/prefs-ui.cc:1277 #: pan/gui/prefs-ui.cc:1283 pan/gui/prefs-ui.cc:1289 pan/gui/prefs-ui.cc:1299 #: pan/gui/prefs-ui.cc:1309 msgid "Text:" msgstr "Text:" #: pan/gui/prefs-ui.cc:1228 pan/gui/prefs-ui.cc:1234 pan/gui/prefs-ui.cc:1240 #: pan/gui/prefs-ui.cc:1246 pan/gui/prefs-ui.cc:1252 pan/gui/prefs-ui.cc:1258 #: pan/gui/prefs-ui.cc:1267 pan/gui/prefs-ui.cc:1273 pan/gui/prefs-ui.cc:1279 #: pan/gui/prefs-ui.cc:1285 pan/gui/prefs-ui.cc:1291 pan/gui/prefs-ui.cc:1301 #: pan/gui/prefs-ui.cc:1311 msgid "Background:" msgstr "Hintergrund:" #: pan/gui/prefs-ui.cc:1230 msgid "Scores of 9999 or more:" msgstr "Wertungen von 9999 oder mehr:" #: pan/gui/prefs-ui.cc:1236 msgid "Scores from 5000 to 9998:" msgstr "Werungen von 5000 bis 9998:" #: pan/gui/prefs-ui.cc:1242 msgid "Scores from 1 to 4999:" msgstr "Wertungen von 1 bis 4999:" #: pan/gui/prefs-ui.cc:1248 msgid "Scores from -9998 to -1:" msgstr "Wertungen von -9998 bis -1:" #: pan/gui/prefs-ui.cc:1254 msgid "Scores of -9999 or less:" msgstr "Wertungen von -9999 oder weniger:" #: pan/gui/prefs-ui.cc:1260 msgid "Collapsed thread with unread articles:" msgstr "Eingeklappter Strang mit ungelesenen Artikeln:" #: pan/gui/prefs-ui.cc:1262 msgid "Body Pane" msgstr "Artikeltext" #: pan/gui/prefs-ui.cc:1269 msgid "First level of quoted text:" msgstr "Erste Ebene des zitierten Texts:" #: pan/gui/prefs-ui.cc:1275 msgid "Second level of quoted text:" msgstr "Zweite Ebene des zitierten Texts:" #: pan/gui/prefs-ui.cc:1281 msgid "Third level of quoted text:" msgstr "Dritte Ebene des zitierten Texts:" #. #: pan/gui/prefs-ui.cc:1287 msgid "URL:" msgstr "URL:" #. #: pan/gui/prefs-ui.cc:1293 msgid "Signature:" msgstr "Signatur:" #: pan/gui/prefs-ui.cc:1296 msgid "Group Pane" msgstr "Gruppenliste" #. #: pan/gui/prefs-ui.cc:1303 msgid "Group Color:" msgstr "Gruppenfarbe:" #: pan/gui/prefs-ui.cc:1307 msgid "Other Text" msgstr "Weiterer Text" #: pan/gui/prefs-ui.cc:1313 msgid "Text Color:" msgstr "Textfarbe:" #: pan/gui/prefs-ui.cc:1316 msgid "_Colors" msgstr "_Farben" #: pan/gui/prefs-ui.cc:1316 msgid "Colors" msgstr "Farben" #: pan/gui/prefs-ui.cc:1321 msgid "Preferred Applications" msgstr "Bevorzugte Anwendungen" #: pan/gui/prefs-ui.cc:1325 msgid "_Web browser:" msgstr "_Webbrowser:" #: pan/gui/prefs-ui.cc:1328 msgid "_Gemini client:" msgstr "_Gemini-Client:" #: pan/gui/prefs-ui.cc:1331 msgid "_Mail reader:" msgstr "E-_Mail-Programm:" #: pan/gui/prefs-ui.cc:1333 msgid "_Text editor:" msgstr "_Texteditor:" #: pan/gui/prefs-ui.cc:1335 msgid "_HTML previewer:" msgstr "_HTML-Ansicht:" #: pan/gui/prefs-ui.cc:1337 msgid "_Applications" msgstr "An_wendungen" #: pan/gui/prefs-ui.cc:1337 msgid "Applications" msgstr "Anwendungen" #: pan/gui/prefs-ui.cc:1342 pan/gui/task-pane.cc:555 msgid "Encoding" msgstr "Zeichenkodierung" #: pan/gui/prefs-ui.cc:1346 msgid "Default bytes per file (for encoder): " msgstr "Vorgegebene Bytes pro Datei (für den Enkoder): " #: pan/gui/prefs-ui.cc:1351 msgid "_Upload" msgstr "_Hochladen" #: pan/gui/prefs-ui.cc:1351 msgid "Upload" msgstr "Hochladen" #: pan/gui/prefs-ui.cc:1360 msgid "_Shortcuts" msgstr "_Tastenkürzel" #: pan/gui/prefs-ui.cc:1360 msgid "Shortcuts" msgstr "Tastenkürzel" #: pan/gui/profiles-dialog.cc:83 msgid "Please choose your email address according to your PGP key's user id." msgstr "" "Bitte wählen Sie Ihre E-Mail-Adresse entsprechend der Benutzerkennung Ihres " "PGP-Schlüssels." #: pan/gui/profiles-dialog.cc:131 msgid "Posting Profile" msgstr "Profil" #: pan/gui/profiles-dialog.cc:143 msgid "Profile Information" msgstr "Profil-Informationen" #: pan/gui/profiles-dialog.cc:147 msgid "_Profile Name:" msgstr "_Profilname:" #: pan/gui/profiles-dialog.cc:150 msgid "Required Information" msgstr "Benötigte Informationen" #: pan/gui/profiles-dialog.cc:154 msgid "_Full Name:" msgstr "_Vollständiger Name:" #: pan/gui/profiles-dialog.cc:158 msgid "" "Your email address.\n" "Note that this has to match your PGP signature's address\n" "if you want your messages to be PGP-signed or encrypted correctly." msgstr "" "Ihre E-Mail-Adresse.\n" "Beachten Sie, dass diese mit der Adresse Ihrer PGP-Signatur\n" "übereinstimmen muss, um Nachrichten korrekt überprüfen zu können." #: pan/gui/profiles-dialog.cc:162 msgid "_Email Address:" msgstr "_E-Mail-Adresse:" #: pan/gui/profiles-dialog.cc:164 msgid "_Post Articles via:" msgstr "_Artikel veröffentlichen über:" #: pan/gui/profiles-dialog.cc:167 msgid "Signature" msgstr "Signatur" #: pan/gui/profiles-dialog.cc:170 msgid "_Use a Signature" msgstr "Signat_ur verwenden" #: pan/gui/profiles-dialog.cc:174 msgid "Signature File" msgstr "Signaturdatei" #: pan/gui/profiles-dialog.cc:184 msgid "Text File" msgstr "Textdatei" #: pan/gui/profiles-dialog.cc:186 msgid "Text" msgstr "Text" #: pan/gui/profiles-dialog.cc:188 msgid "Command" msgstr "Befehl" #: pan/gui/profiles-dialog.cc:191 msgid "PGP Signature" msgstr "PGP-Signatur" #: pan/gui/profiles-dialog.cc:196 msgid "Signature Type: " msgstr "Signaturtyp: " #: pan/gui/profiles-dialog.cc:227 msgid "Avatars" msgstr "Avatare" #: pan/gui/profiles-dialog.cc:230 msgid "" "You can add an avatar icon to your articles with a Base64-encoded PNG.\n" "Add the Base64-encoded picture without the trailing “Face:”." msgstr "" "Sie können mit einem Base64-kodierten PNG ein Avatar-Symbol zu Ihren " "Artikeln hinzufügen.\n" "Fügen Sie das Base64-kodierte Bild ohne vorangestelltes »Face:« hinzu." #: pan/gui/profiles-dialog.cc:232 msgid "_Face:" msgstr "_Face:" #: pan/gui/profiles-dialog.cc:236 msgid "" "You can add an avatar icon to your articles with a unique X-Face code.\n" "Add the code without the trailing \"X-Face:\" \n" " if it was generated by a helper program (for example http://www.dairiki.org/" "xface/xface.php)." msgstr "" "Sie können mit einem eindeutigen X-Face-Code ein Avatar-Symbol zu Ihren " "Artikeln hinzufügen.\n" "Fügen Sie den Code ohne vorangestelltes »X-Face:« hinzu, falls er von " "einem\n" "Hilfsprogramm erstellt wurde (z.B. http://www.dairiki.org/xface/xface.php)." #: pan/gui/profiles-dialog.cc:239 msgid "_X-Face:" msgstr "_X-Face:" #: pan/gui/profiles-dialog.cc:241 msgid "Optional Information" msgstr "Optionale Informationen" #: pan/gui/profiles-dialog.cc:246 msgid "" "When posting to Usenet, your article's Message-ID contains a domain name.\n" "You can set a custom domain name here, or leave it blank to let Pan use the " "domain name from your email address." msgstr "" "Beim Schreiben im Usenet enthält die Nachrichtenkennung Ihrer Artikel den " "Namen einer Domäne.\n" "Sie können hier einen benutzerdefinierten Domäne-Namen angeben oder das Feld " "leer lassen, damit Pan die Domäne aus Ihrer E-Mail-Adresse verwendet." #: pan/gui/profiles-dialog.cc:249 msgid "Message-ID _Domain Name:" msgstr "_Domain für Nachrichtenkennungen:" #: pan/gui/profiles-dialog.cc:253 #, c-format msgid "" "%i for Message-ID\n" "%a for Author and Address\n" "%n for Author name\n" "%d for Date" msgstr "" "%i für Nachrichtenkennung\n" "%a für Autor und Adresse\n" "%n für Namen des Autors\n" "%d für das Datum" # klingt bescheuert, wer weiss was besseres? #: pan/gui/profiles-dialog.cc:254 msgid "_Attribution:" msgstr "_Zuschreibung:" #. Translators: Do not localize Reply-To and the quote marks in \"Your Name\". #: pan/gui/profiles-dialog.cc:279 msgid "" "Extra headers to be included in your articles, such as\n" "Reply-To: \"Your Name\" \n" "Organization: Your Organization\n" msgstr "" "Weitere in Ihre Postings einzufügende Kopfzeilen,\n" "z.B. Reply-To: »Ihr Name« \n" "Organisation: Ihre Organisation\n" #: pan/gui/profiles-dialog.cc:289 msgid "E_xtra Headers:" msgstr "E_xtra-Kopfzeilen:" #: pan/gui/profiles-dialog.cc:334 msgid "Invalid email address." msgstr "Ungültige E-Mail-Adresse." #: pan/gui/profiles-dialog.cc:335 msgid "Please use an address of the form joe@somewhere.org" msgstr "Bitte verwenden Sie eine Adresse in der Form hans@irgendwo.org" #: pan/gui/profiles-dialog.cc:491 msgid "New Profile" msgstr "Neues Profil" #: pan/gui/profiles-dialog.cc:537 msgid "Posting Profiles" msgstr "Profile" #: pan/gui/profiles-dialog.cc:553 msgid "Profiles" msgstr "Profile" #: pan/gui/save-attach-ui.cc:44 #, c-format msgid "" "%g - group as one directory (alt.binaries.pictures.trains)\n" "%G - group as nested directory (/alt/binaries/pictures/trains)\n" "%s - Subject line excerpt\n" "%S - Subject line\n" "%n - Poster display name\n" "%e - Poster email address\n" "%d - Article timestamp\n" "\"/home/user/News/Pan/%g\" becomes\n" "\"/home/user/News/Pan/alt.binaries.pictures.trains\", and\n" "\"/home/user/News/Pan/%G\" becomes\n" "\"/home/user/News/Pan/alt/binaries/pictures/trains\"," msgstr "" "%g - Gruppen in einem Ordner (de.alt.fan.konsumterror)\n" "%G - Gruppen in hierarchischen Ordnern (de/alt/fan/konsumterror)\n" "%s - Auszug der Betreffzeile\n" "%S - Betreffzeile\n" "%n - Name des Schreibers\n" "%e - E-Mail-Adresse des Schreibers\n" "%d - Zeitstempel des Artikels\n" "\n" "»/home/user/News/Pan/%g« wird zu\n" "»/home/user/News/Pan/de.alt.fan.konsumterror«, und\n" "»/home/user/News/Pan/%G« wird zu\n" "»/home/user/News/Pan/de/alt/fan/konsumterror«." #: pan/gui/save-attach-ui.cc:196 pan/gui/save-ui.cc:216 msgid "Add to the queue sorted by date posted" msgstr "Zur Warteschlange hinzufügen, nach Datum sortiert" #: pan/gui/save-attach-ui.cc:197 pan/gui/save-ui.cc:217 msgid "Add to the front of the queue" msgstr "Am Anfang der Liste hinzufügen" #: pan/gui/save-attach-ui.cc:198 pan/gui/save-ui.cc:218 msgid "Add to the back of the queue" msgstr "Am Ende der Liste hinzufügen" #: pan/gui/save-attach-ui.cc:230 msgid "Pan: Save Attachments" msgstr "Pan: Artikelanlagen speichern" #: pan/gui/save-attach-ui.cc:255 pan/gui/save-attach-ui.cc:273 #: pan/gui/save-ui.cc:270 pan/gui/save-ui.cc:291 msgid "_Location:" msgstr "_Ort:" #: pan/gui/save-attach-ui.cc:259 pan/gui/save-ui.cc:274 msgid "Save Articles" msgstr "Artikel speichern" #: pan/gui/save-attach-ui.cc:276 pan/gui/save-ui.cc:294 #, c-format msgid "_Group's path: %s" msgstr "_Gruppenpfad: %s" #: pan/gui/save-attach-ui.cc:287 pan/gui/save-ui.cc:309 msgid "_Priority:" msgstr "_Priorität:" #: pan/gui/save-ui.cc:44 #, c-format msgid "" "%g - group as one directory (alt.binaries.pictures.trains)\n" "%G - group as nested directory (/alt/binaries/pictures/trains)\n" "%s - subject line excerpt\n" "%S - subject line\n" "%n - Poster display name\n" "%e - Poster email address\n" "%d - Article timestamp\n" " \n" "\"/home/user/News/Pan/%g\" becomes\n" "\"/home/user/News/Pan/alt.binaries.pictures.trains\", and\n" "\"/home/user/News/Pan/%G\" becomes\n" "\"/home/user/News/Pan/alt/binaries/pictures/trains\"," msgstr "" "%g - Gruppen in einem Ordner (de.alt.fan.konsumterror)\n" "%G - Gruppen in hierarchischen Ordnern (de/alt/fan/konsumterror)\n" "%s - Auszug der Betreffzeile\n" "%S - Betreffzeile\n" "%n - Anzeigename des Posters\n" "%e - E-Mail-Adresse des Posters\n" "%d - Zeitstempel des Artikels\n" " \n" "»/home/user/News/Pan/%g« wird zu\n" "»/home/user/News/Pan/de.alt.fan.konsumterror«, und\n" "»/home/user/News/Pan/%G« wird zu\n" "»/home/user/News/Pan/de/alt/fan/konsumterror«." #: pan/gui/save-ui.cc:207 msgid "Save attachments" msgstr "Artikelanlagen speichern" #: pan/gui/save-ui.cc:208 msgid "Save text" msgstr "Artikeltext speichern" #: pan/gui/save-ui.cc:209 msgid "Save attachments and text" msgstr "Anlagen und Text speichern" #: pan/gui/save-ui.cc:245 msgid "Pan: Save Articles" msgstr "Pan: Artikel speichern" #: pan/gui/save-ui.cc:305 msgid "_Action:" msgstr "_Aktion:" #: pan/gui/score-add-ui.cc:89 msgid "is more than" msgstr "ist mehr als" #: pan/gui/score-add-ui.cc:90 msgid "is at most" msgstr "ist meistens" #: pan/gui/score-add-ui.cc:112 msgid "increase the article's score by" msgstr "Wertung des Artikels erhöhen um" #: pan/gui/score-add-ui.cc:113 msgid "decrease the article's score by" msgstr "Wertung des Artikels verringern um" #: pan/gui/score-add-ui.cc:114 msgid "set the article's score to" msgstr "Wertung des Artikels setzen auf" #: pan/gui/score-add-ui.cc:115 msgid "watch the article (set its score to 9999)" msgstr "Beobachten (Wertung auf 9999)" #: pan/gui/score-add-ui.cc:116 msgid "ignore the article (set its score to -9999)" msgstr "Ignorieren (Wertung auf -9999)" #: pan/gui/score-add-ui.cc:141 msgid "References" msgstr "Bezugsartikel" #: pan/gui/score-add-ui.cc:142 msgid "Line Count" msgstr "Zeilenanzahl" #: pan/gui/score-add-ui.cc:143 msgid "Byte Count" msgstr "Byte-Anzahl" #: pan/gui/score-add-ui.cc:144 msgid "Crosspost Group Count" msgstr "Anzahl der Postings an mehrere Gruppen" #: pan/gui/score-add-ui.cc:145 msgid "Age (in days)" msgstr "Alter (in Tagen)" #: pan/gui/score-add-ui.cc:167 msgid "for the next month" msgstr "für den nächsten Monat" #: pan/gui/score-add-ui.cc:168 msgid "for the next six months" msgstr "für die nächsten sechs Monate" #: pan/gui/score-add-ui.cc:169 msgid "forever" msgstr "für immer" #: pan/gui/score-add-ui.cc:194 msgid "contains" msgstr "enthält" #: pan/gui/score-add-ui.cc:195 msgid "doesn't contain" msgstr "enthält nicht" #: pan/gui/score-add-ui.cc:196 msgid "is" msgstr "ist" #: pan/gui/score-add-ui.cc:197 msgid "isn't" msgstr "ist nicht" #: pan/gui/score-add-ui.cc:198 msgid "starts with" msgstr "beginnt mit" #: pan/gui/score-add-ui.cc:199 msgid "ends with" msgstr "endet mit" #: pan/gui/score-add-ui.cc:200 msgid "matches regex" msgstr "trifft regulären Ausdruck" #: pan/gui/score-add-ui.cc:481 msgid "Another rule already sets this article's score." msgstr "" "Die Wertung dieses Artikels wird bereits durch eine andere Regel gesetzt." #: pan/gui/score-add-ui.cc:482 msgid "You may want to go back or delete the old rule." msgstr "Sie sollten zurückgehen, um die alte Regel zu entfernen." #: pan/gui/score-add-ui.cc:484 msgid "Back" msgstr "Zurück" #: pan/gui/score-add-ui.cc:485 pan/gui/task-pane.cc:1040 msgid "Delete" msgstr "Löschen" #: pan/gui/score-add-ui.cc:486 pan/gui/score-add-ui.cc:607 #: pan/gui/score-view-ui.cc:207 msgid "Add" msgstr "Hinzufügen" #: pan/gui/score-add-ui.cc:553 msgid "Add and Re_score" msgstr "Hinzufügen und neu be_werten" #: pan/gui/score-add-ui.cc:602 pan/gui/score-add-ui.cc:622 msgid "New Scoring Rule" msgstr "Neue Wertung" #: pan/gui/score-add-ui.cc:633 msgid "Group name" msgstr "Gruppenname" #: pan/gui/score-add-ui.cc:640 msgid "and" msgstr "und" #: pan/gui/score-view-ui.cc:55 msgid "Close and Re_score" msgstr "Schließen und neu be_werten" #: pan/gui/score-view-ui.cc:153 #, c-format msgid "File %s, Lines %d - %d" msgstr "Datei %s, Zeilen %d - %d" #: pan/gui/score-view-ui.cc:181 msgid "Pan: Article's Scores" msgstr "Pan: Artikelwertungen" #: pan/gui/score-view-ui.cc:212 msgid "New Score" msgstr "Neue Wertung" #: pan/gui/score-view-ui.cc:217 msgid "Criteria" msgstr "Kriterien" #: pan/gui/score-view-ui.cc:240 msgid "Add a New Scoring Rule" msgstr "Eine neue Wertung hinzufügen" #: pan/gui/score-view-ui.cc:247 msgid "Remove the Selected Scoring Rule" msgstr "Die ausgewählte Wertung entfernen" #: pan/gui/server-ui.cc:292 msgid "Please specify the server's address." msgstr "Bitte geben Sie die Serveradresse an." #: pan/gui/server-ui.cc:344 msgid "Import SSL Certificate (PEM Format) From File" msgstr "SSL-Zertifikat aus Datei importieren (PEM-Format)" #. create the dialog #: pan/gui/server-ui.cc:381 pan/gui/server-ui.cc:996 msgid "Add a Server" msgstr "Einen Server hinzufügen" #: pan/gui/server-ui.cc:381 pan/gui/server-ui.cc:1002 msgid "Edit a Server's Settings" msgstr "Servereinstellungen bearbeiten" #: pan/gui/server-ui.cc:401 msgid "Location" msgstr "Ort" #: pan/gui/server-ui.cc:405 msgid "The news server's actual address, e.g. \"news.mynewsserver.com\"." msgstr "Die tatsächliche Adresse des Servers, z.B. »news.meinserver.de«." #: pan/gui/server-ui.cc:406 msgid "_Address:" msgstr "_Adresse:" #: pan/gui/server-ui.cc:411 msgid "" "The news server's port number. Typically 119 for unencrypted and 563 for " "encrypted connections (SSL/TLS)." msgstr "" "Der Port (Anschlussnummer) des neuen Servers. Typischerweise 119 für " "unverschlüsselte und 563 für verschlüsselte Verbindungen (SSL/TLS)." #: pan/gui/server-ui.cc:412 msgid "Por_t:" msgstr "Por_t:" #: pan/gui/server-ui.cc:415 msgid "Login (if Required)" msgstr "Anmelden (falls erforderlich)" #: pan/gui/server-ui.cc:419 msgid "_Username:" msgstr "_Benutzername:" #: pan/gui/server-ui.cc:420 msgid "" "The username to give the server when asked. If your server doesn't require " "authentication, you can leave this blank." msgstr "" "Der beim Server anzugebende Benutzername, falls erforderlich. Sie können " "dies leer lassen, falls keine Legitimierung erforderlich ist." #: pan/gui/server-ui.cc:424 msgid "_Password:" msgstr "_Passwort:" #: pan/gui/server-ui.cc:425 msgid "" "The password to give the server when asked. If your server doesn't require " "authentication, you can leave this blank." msgstr "" "Das beim Server anzugebende Passwort, falls erforderlich. Sie können dies " "leer lassen, falls keine Legitimierung erforderlich ist." #: pan/gui/server-ui.cc:428 msgid "Settings" msgstr "Einstellungen" #: pan/gui/server-ui.cc:435 msgid "Connection _Limit:" msgstr "Verbindungs_limit:" #: pan/gui/server-ui.cc:439 msgid "After Two Weeks" msgstr "Nach zwei Wochen" #: pan/gui/server-ui.cc:440 msgid "After One Month" msgstr "Nach einem Monat" #: pan/gui/server-ui.cc:441 msgid "After Two Months" msgstr "Nach zwei Monaten" #: pan/gui/server-ui.cc:442 msgid "After Three Months" msgstr "Nach drei Monaten" #: pan/gui/server-ui.cc:443 msgid "After Six Months" msgstr "Nach sechs Monaten" #: pan/gui/server-ui.cc:444 msgid "Never Expire Old Articles" msgstr "Immer gültig" #: pan/gui/server-ui.cc:458 msgid "E_xpire Old Articles:" msgstr "Alte Artikel _ablaufen lassen:" #: pan/gui/server-ui.cc:462 msgid "Primary" msgstr "Primär" #: pan/gui/server-ui.cc:463 msgid "Fallback" msgstr "Ausweichserver" #: pan/gui/server-ui.cc:477 msgid "Server Rank:" msgstr "Server-Wertung:" #: pan/gui/server-ui.cc:481 msgid "" "Fallback servers are used for articles that can't be found on the " "primaries. One common approach is to use free servers as primaries and " "subscription servers as fallbacks." msgstr "" "Ausweichserver werden für Artikel verwendet, die auf den Pimärservern nicht " "gefunden werden. Häufig werden freie Server als Primärserver und " "Anmeldeserver als Ausweichserver eingesetzt." #: pan/gui/server-ui.cc:486 msgid "Disable Compression (N/A)" msgstr "Kompression abschalten (N/V)" #: pan/gui/server-ui.cc:487 msgid "XZVER Compression (Astraweb)" msgstr "XZVER-Kompression (Astraweb)" #: pan/gui/server-ui.cc:488 msgid "GZIP Compression (Giganews etc.)" msgstr "GZIP-Kompression (Giganews etc.)" #: pan/gui/server-ui.cc:502 msgid "Header Compression:" msgstr "Kopfzeilen-Kompression:" #: pan/gui/server-ui.cc:508 msgid "Security" msgstr "Sicherheit" #: pan/gui/server-ui.cc:513 msgid "Use Unsecure (Plaintext) Connections" msgstr "(Unsichere) Klartextverbindungen verwenden" #: pan/gui/server-ui.cc:514 msgid "Use Secure SSL Connections" msgstr "Sichere Verbindung (SSL) benutzen" #: pan/gui/server-ui.cc:529 msgid "TLS (SSL) Settings:" msgstr "TLS-(SSL-) Einstellungen:" #: pan/gui/server-ui.cc:534 msgid "" "You can enable/disable secure SSL/TLS connections here. If you enable SSL/" "TLS, your data is encrypted and secure. It is encouraged to enable SSL/TLS " "for privacy reasons." msgstr "" "Sie können hier die Nutzung sicherer SSL/TLS-Verbindungen aktivieren oder " "deaktivieren. Falls Sie SSL/TLS aktivieren, sind Ihre Daten verschlüsselt " "und sicher. Es ist empfehlenswert, SSL/TLS aus Datenschutzgründen zu " "aktivieren." #: pan/gui/server-ui.cc:539 msgid "Always trust this server's certificate" msgstr "Diesem Serverzertifikat immer vertrauen" #: pan/gui/server-ui.cc:724 #, c-format msgid "Really delete \"%s\"?" msgstr "Wollen Sie »%s« wirklich löschen?" #: pan/gui/server-ui.cc:813 msgid "No information available." msgstr "Keine Informationen verfügbar." #: pan/gui/server-ui.cc:823 #, c-format msgid "Server Certificate for '%s'" msgstr "Serverzertifikat für »%s«" #: pan/gui/server-ui.cc:922 #, c-format msgid "Really delete certificate for \"%s\"?" msgstr "Möchten Sie wirklich das Zertifikat für »%s« löschen?" #. dialog #: pan/gui/server-ui.cc:949 pan/gui/server-ui.cc:970 pan/gui/server-ui.cc:1068 msgid "Servers" msgstr "Server" #: pan/gui/server-ui.cc:1009 msgid "Remove a Server" msgstr "Einen Server entfernen" #. dialog #: pan/gui/server-ui.cc:1042 msgid "SSL Certificates" msgstr "SSL-Zertifikate" #: pan/gui/server-ui.cc:1063 msgid "Certificates" msgstr "Zertifikate" #: pan/gui/server-ui.cc:1094 msgid "Import Certificate" msgstr "Zertifikat importieren" #: pan/gui/server-ui.cc:1100 msgid "Inspect Certificate" msgstr "Zertifikat inspizieren" #: pan/gui/server-ui.cc:1107 msgid "Remove Certificate" msgstr "Zertifikat entfernen" #: pan/gui/task-pane.cc:124 #, c-format msgid "" "\n" "Upload\n" "\n" "Subject: \"%s\"\n" "From: %s\n" "Groups: %s\n" "Sourcefile: %s\n" msgstr "" "\n" "Senden\n" "\n" "Betreff: »%s«\n" "Von: %s\n" "Gruppen: %s\n" "Quelldatei: %s\n" #: pan/gui/task-pane.cc:136 #, c-format msgid "" "\n" "Download\n" "\n" "Subject: \"%s\"\n" "From: %s\n" "Date: %s\n" "Groups: %s\n" "Save Path: %s\n" msgstr "" "\n" "Herunterladen\n" "\n" "Betreff: »%s«\n" "Von: %s\n" "Datum: %s\n" "Gruppen: %s\n" "Speicherpfad: %s\n" #: pan/gui/task-pane.cc:138 msgid "unknown" msgstr "unbekannt" #: pan/gui/task-pane.cc:306 msgid "Choose New Destination for Selected Tasks" msgstr "Neues Ziel für gewählte Aufgaben festlegen" #: pan/gui/task-pane.cc:310 msgid "Save" msgstr "Speichern" #: pan/gui/task-pane.cc:460 #, c-format msgid "Pan: Tasks (%d Queued, %d Running, %d Stopped)" msgstr "Pan: Aufgabenplaner (%d angefragt, %d im Gange, %d gestoppt)" #: pan/gui/task-pane.cc:462 #, c-format msgid "Pan: Tasks (%d Queued, %d Running)" msgstr "Pan: Aufgabenplaner (%d angefragt, %d im Gange)" #: pan/gui/task-pane.cc:464 msgid "Pan: Tasks" msgstr "Pan: Aufgabenplaner" #: pan/gui/task-pane.cc:489 #, c-format msgid "%lu selected, %s" msgstr "%lu ausgewählt, %s" #: pan/gui/task-pane.cc:553 msgid "Running" msgstr "Läuft" #: pan/gui/task-pane.cc:554 msgid "Decoding" msgstr "Dekodierung" #: pan/gui/task-pane.cc:556 msgid "Queued for Decode" msgstr "In Dekodier-Warteschlange eingefügt" #: pan/gui/task-pane.cc:557 msgid "Queued for Encode" msgstr "Wartet auf Enkodierung" #: pan/gui/task-pane.cc:558 msgid "Queued" msgstr "In der Warteschlange" #: pan/gui/task-pane.cc:559 msgid "Stopped" msgstr "Unterbrochen" #: pan/gui/task-pane.cc:560 msgid "Removing" msgstr "Es wird entfernt" #: pan/gui/task-pane.cc:589 #, c-format msgid "%d%% Done" msgstr "%d%% fertig" #: pan/gui/task-pane.cc:595 #, c-format msgid "%d:%02d:%02d Remaining (%d @ %lu KiB/s)" msgstr "%d:%02d:%02d verbleibend (%d @ %lu KiB/s)" #: pan/gui/task-pane.cc:690 pan/gui/task-pane.cc:691 msgid "Move To Top" msgstr "Nach ganz oben verschieben" #: pan/gui/task-pane.cc:695 pan/gui/task-pane.cc:696 msgid "Move To Bottom" msgstr "Nach ganz unten verschieben" #: pan/gui/task-pane.cc:700 pan/gui/task-pane.cc:701 msgid "Show Task Information" msgstr "Aufgaben-Informationen anzeigen" #: pan/gui/task-pane.cc:705 pan/gui/task-pane.cc:706 msgid "Stop Task" msgstr "Aufgabe anhalten" #: pan/gui/task-pane.cc:710 pan/gui/task-pane.cc:711 msgid "Delete Task" msgstr "Aufgabe löschen" #: pan/gui/task-pane.cc:715 pan/gui/task-pane.cc:716 msgid "Restart Task" msgstr "Aufgabe neu starten" #: pan/gui/task-pane.cc:720 pan/gui/task-pane.cc:721 msgid "Change Download Destination" msgstr "Download-Ziel ändern" #: pan/gui/task-pane.cc:1016 msgid "_Online" msgstr "_Online" #: pan/gui/task-pane.cc:1026 msgid "Move up" msgstr "Herauf schieben" #: pan/gui/task-pane.cc:1027 msgid "Move task up" msgstr "Aufgabe hochschieben" #: pan/gui/task-pane.cc:1028 msgid "Move to top" msgstr "Nach ganz oben verschieben" #: pan/gui/task-pane.cc:1029 msgid "Move task to top of the download queue" msgstr "Auftrag an die Spitze der Download-Warteschlange verschieben" #: pan/gui/task-pane.cc:1031 msgid "Move down" msgstr "Hinunter schieben" #: pan/gui/task-pane.cc:1032 msgid "Move task down" msgstr "Aufgabe runterschieben" #: pan/gui/task-pane.cc:1033 msgid "Move to bottom" msgstr "Nach ganz unten verschieben" #: pan/gui/task-pane.cc:1034 msgid "Move task to the bottom of the download queue" msgstr "Auftrag ans Ende der Download-Warteschlange verschieben" #: pan/gui/task-pane.cc:1036 msgid "Restart" msgstr "Neu starten" #: pan/gui/task-pane.cc:1037 msgid "Restart Tasks" msgstr "Aufgaben neu starten" #: pan/gui/task-pane.cc:1038 msgid "Stop" msgstr "Stopp" #: pan/gui/task-pane.cc:1039 msgid "Stop Tasks" msgstr "Aufgaben stoppen" #: pan/gui/task-pane.cc:1041 msgid "Delete Tasks" msgstr "Aufgaben löschen" #: pan/gui/task-pane.cc:1043 msgid "Close" msgstr "Schließen" #: pan/gui/task-pane.cc:1047 msgid "Show popups" msgstr "Einblendungen anzeigen" #: pan/gui/url.cc:143 #, c-format msgid "Error starting URL: %s (Command was: %s)" msgstr "Fehler beim Starten der URL: %s (Befehl war: %s)" #: pan/tasks/decoder.cc:124 #, c-format msgid "Couldn't save file \"%s\": %s" msgstr "Datei »%s« konnte nicht gespeichert werden: %s" #: pan/tasks/decoder.cc:146 pan/tasks/encoder.cc:146 msgid "Error initializing uulib" msgstr "Fehler beim Initialisieren der uulib" #: pan/tasks/decoder.cc:166 pan/tasks/socket-impl-gio.cc:360 #: pan/tasks/socket-impl-openssl.cc:641 #, c-format msgid "Error reading from %s: %s" msgstr "Fehler beim Lesen von %s: %s" #: pan/tasks/decoder.cc:206 #, c-format msgid "Saved \"%s\"" msgstr "»%s« wurde gespeichert" #: pan/tasks/decoder.cc:213 #, c-format msgid "" "Error saving \"%s\":\n" "%s." msgstr "" "Fehler beim Speichern von »%s«:\n" "%s." #: pan/tasks/decoder.cc:326 pan/tasks/task-article.cc:351 #, c-format msgid "Decoding %s" msgstr "»%s« wird dekodiert" #: pan/tasks/encoder.cc:113 pan/tasks/encoder.cc:164 #, c-format msgid "Error loading %s from cache." msgstr "Fehler beim Laden von %s aus dem Zwischenspeicher." #: pan/tasks/encoder.cc:186 #, c-format msgid "Error encoding %s: %s" msgstr "Fehler beim Kodieren von %s: %s" #: pan/tasks/encoder.cc:276 #, c-format msgid "Encoding %s" msgstr "Zeichenkodierung %s" #: pan/tasks/nntp.cc:176 #, c-format msgid "%s requires a username, but none is set." msgstr "%s benötigt einen Benutzernamen, dieser ist nicht gesetzt." #: pan/tasks/nntp.cc:189 #, c-format msgid "%s requires a password, but none is set." msgstr "%s benötigt ein Passwort, dieses ist nicht gesetzt." #: pan/tasks/nntp.cc:275 #, c-format msgid "Sending \"%s\" to %s returned an error: %s" msgstr "Das Versenden von »%s« an %s ergab einen Fehler: %s" #: pan/tasks/nntp.cc:298 #, c-format msgid "Sending \"%s\" to %s returned an unrecognized response: \"%s\"" msgstr "Senden von »%s« an %s gab eine unverständliche Antwort zurück: »%s«" #: pan/tasks/nntp-pool.cc:241 #, c-format msgid "Unable to connect to \"%s\"" msgstr "Verbindung mit »%s« kann nicht hergestellt werden" #: pan/tasks/queue.cc:778 pan/tasks/queue.cc:806 pan/tasks/queue.cc:833 msgid "No space left on device." msgstr "Kein Speicherplatz auf dem Gerät übrig." #: pan/tasks/socket-impl-gio.cc:173 pan/tasks/socket-impl-gio.cc:211 #: pan/tasks/socket-impl-openssl.cc:213 pan/tasks/socket-impl-openssl.cc:251 #, c-format msgid "Error connecting to \"%s\"" msgstr "Fehler beim Verbinden mit »%s«" #: pan/tasks/socket-impl-gio.cc:359 pan/tasks/socket-impl-openssl.cc:640 msgid "Unknown Error" msgstr "Unbekannter Fehler" #: pan/tasks/task-article.cc:59 pan/tasks/task-article.cc:157 #, c-format msgid "Saving %s" msgstr "%s wird gespeichert" #: pan/tasks/task-article.cc:61 #, c-format msgid "Reading %s" msgstr "%s wird gelesen" #: pan/tasks/task-article.cc:323 #, c-format msgid "Article \"%s\" is incomplete -- the news server(s) don't have part %s" msgstr "Artikel »%s« ist unvollständig – der/die Server erhielten %s nicht" #: pan/tasks/task-groups.cc:41 #, c-format msgid "Getting group list from \"%s\"" msgstr "Gruppenliste des Servers »%s« wird heruntergeladen" #: pan/tasks/task-groups.cc:134 #, c-format msgid "Fetched %lu Groups" msgstr "%lu Gruppen erhalten" #: pan/tasks/task-post.cc:33 #, c-format msgid "Posting \"%s\"" msgstr "»%s« wird veröffentlicht" #: pan/tasks/task-post.cc:74 #, c-format msgid "Posting of \"%s\" failed: %s" msgstr "Veröffentlichung von »%s« ist gescheitert: %s" #: pan/tasks/task-post.cc:79 #, c-format msgid "Posting of \"%s\" successful: %s" msgstr "Veröffentlichung von »%s« war erfolgreich: %s" #: pan/tasks/task-upload.cc:55 #, c-format msgid "Uploading %s" msgstr "%s wird hochgeladen" #: pan/tasks/task-upload.cc:249 #, c-format msgid "Uploading %s - Part %d of %d" msgstr "%s wird hochgeladen – Teil %d von %d" #: pan/tasks/task-upload.cc:251 #, c-format msgid "Uploading message body with subject \"%s\"" msgstr "Nachrichtenrumpf mit Betreff »%s« wird hochgeladen" #: pan/tasks/task-upload.cc:308 #, c-format msgid "Posting of file %s (part %d of %d) failed: No posts allowed by server." msgstr "" "SenVeröffentlichung den der Datei %s (Teil %d von %d) ist gescheitert: Der " "Server erlaubt keine Veröffentlichungen." #: pan/tasks/task-upload.cc:317 #, c-format msgid "Posting of file %s (part %d of %d) failed: %s" msgstr "Veröffentlichung der Datei »%s« (Teil %d von %d) ist gescheitert: %s" #: pan/tasks/task-upload.cc:328 pan/tasks/task-upload.cc:335 #, c-format msgid "Posting of file %s (part %d of %d) successful: %s" msgstr "Veröffentlichung der Datei »%s« (Teil %d von %d) war erfolgreich: %s" #: pan/tasks/task-upload.cc:345 #, c-format msgid "Posting of file %s successful: %s" msgstr "Veröffentlichung der Datei »%s« war erfolgreich: %s" #: pan/tasks/task-upload.cc:349 #, c-format msgid "" "Posting of file %s not completely successful: Check the log (right-click " "list item)." msgstr "" "Veröffentlichung der Datei %s ist teilweise gescheitert: Überprüfen Sie das " "Protokoll (Rechtsklick auf den Listeneintrag)." #: pan/tasks/task-upload.cc:368 #, c-format msgid "" "Posting of file %s not successful: Check the log (right-click list item)." msgstr "" "Veröffentlichung der Datei %s ist gescheitert: Überprüfen Sie das Protokoll " "(Rechtsklick auf den Listeneintrag)." #: pan/tasks/task-xover.cc:82 #, c-format msgid "Getting all headers for \"%s\"" msgstr "Alle Kopfzeilen für »%s« werden abgerufen" #: pan/tasks/task-xover.cc:85 #, c-format msgid "Getting new headers for \"%s\"" msgstr "Neue Kopfzeilen für »%s« werden abgerufen" #. SAMPLE #: pan/tasks/task-xover.cc:89 #, c-format msgid "Sampling headers for \"%s\"" msgstr "Kopfzeilen für »%s« werden probeweise abgerufen" #: pan/tasks/task-xover.cc:454 #, c-format msgid "%s (%lu parts, %lu articles)" msgstr "%s (%lu Teile, %lu Artikel)" #: pan/tasks/task-xover.cc:528 #, c-format msgid "Getting new headers for \"%s\" done." msgstr "Abruf neuer Kopfzeilen für »%s« ist abgeschlossen." #: pan/usenet-utils/filter-info.cc:215 msgid "article doesn't have attachments" msgstr "Artikel hat keine Anlagen" #: pan/usenet-utils/filter-info.cc:219 msgid "the article has attachments" msgstr "Artikel hat Anlagen" #: pan/usenet-utils/filter-info.cc:223 msgid "the article isn't cached locally" msgstr "Artikeltext ist nicht lokal zwischengespeichert" #: pan/usenet-utils/filter-info.cc:227 msgid "the article is cached locally" msgstr "Artikeltext ist lokal zwischengespeichert" #: pan/usenet-utils/filter-info.cc:231 msgid "the article wasn't posted by you" msgstr "Artikel wurde nicht von mir geschrieben" #: pan/usenet-utils/filter-info.cc:235 msgid "the article was posted by you" msgstr "Artikel wurde von mir geschrieben" #: pan/usenet-utils/filter-info.cc:239 msgid "the article has been read" msgstr "Artikel ist gelesen" #: pan/usenet-utils/filter-info.cc:243 msgid "the article hasn't been read" msgstr "Artikel ist nicht gelesen" #: pan/usenet-utils/filter-info.cc:247 #, c-format msgid "the article is less than %ld bytes long" msgstr "Artikel ist weniger als %ld Bytes lang" #: pan/usenet-utils/filter-info.cc:252 #, c-format msgid "the article is at least %ld bytes long" msgstr "Artikel ist mindestens %ld Bytes lang" #: pan/usenet-utils/filter-info.cc:257 #, c-format msgid "the article is less than %ld lines long" msgstr "Artikel ist weniger als %ld Zeilen lang" #: pan/usenet-utils/filter-info.cc:262 #, c-format msgid "the article is at least %ld lines long" msgstr "Artikel ist mindestens %ld Zeilen lang" #: pan/usenet-utils/filter-info.cc:267 #, c-format msgid "the article is less than %ld days old" msgstr "Artikel ist jünger als %ld Tage" #: pan/usenet-utils/filter-info.cc:272 #, c-format msgid "the article is at least %ld days old" msgstr "Artikel ist mindestens %ld Tage _alt" #: pan/usenet-utils/filter-info.cc:277 #, c-format msgid "the article was posted to less than %ld groups" msgstr "Artikel wurde an weniger als %ld Gruppen versandt" #: pan/usenet-utils/filter-info.cc:282 #, c-format msgid "the article was posted to at least %ld groups" msgstr "Artikel wurde mindestens in %ld Gruppen versandt" #: pan/usenet-utils/filter-info.cc:287 #, c-format msgid "the article's score is less than %ld" msgstr "Die Artikelwertung ist %ld oder niedriger" #: pan/usenet-utils/filter-info.cc:292 #, c-format msgid "the article's score is %ld or higher" msgstr "Die Artikelwertung ist %ld oder höher" #: pan/usenet-utils/filter-info.cc:301 pan/usenet-utils/filter-info.cc:311 #, c-format msgid "%s doesn't contain \"%s\"" msgstr "%s enthält nicht »%s«" #: pan/usenet-utils/filter-info.cc:302 pan/usenet-utils/filter-info.cc:312 #, c-format msgid "%s isn't \"%s\"" msgstr "%s ist nicht »%s«" #: pan/usenet-utils/filter-info.cc:303 pan/usenet-utils/filter-info.cc:313 #, c-format msgid "%s doesn't begin with \"%s\"" msgstr "%s beginnt nicht mit »%s«" #: pan/usenet-utils/filter-info.cc:304 pan/usenet-utils/filter-info.cc:314 #, c-format msgid "%s doesn't end with \"%s\"" msgstr "%s endet nicht mit »%s«" #: pan/usenet-utils/filter-info.cc:305 pan/usenet-utils/filter-info.cc:315 #, c-format msgid "%s doesn't match the regex \"%s\"" msgstr "%s trifft nicht den regulären Ausdruck »%s«" #: pan/usenet-utils/filter-info.cc:327 #, c-format msgid "%s contains \"%s\"" msgstr "%s enthält »%s«" #: pan/usenet-utils/filter-info.cc:328 #, c-format msgid "%s is \"%s\"" msgstr "%s ist »%s«" #: pan/usenet-utils/filter-info.cc:329 #, c-format msgid "%s begins with \"%s\"" msgstr "%s beginnt mit »%s«" #: pan/usenet-utils/filter-info.cc:330 #, c-format msgid "%s ends with \"%s\"" msgstr "%s endet mit »%s«" #: pan/usenet-utils/filter-info.cc:331 #, c-format msgid "%s matches the regex \"%s\"" msgstr "%s trifft regulären Ausdruck »%s«" #: pan/usenet-utils/filter-info.cc:337 msgid "Any of these tests fail:" msgstr "Einer oder mehrere dieser Tests scheiterten:" #: pan/usenet-utils/filter-info.cc:344 msgid "All of these tests pass:" msgstr "Alle dieser Tests waren erfolgreich:" #: pan/usenet-utils/filter-info.cc:351 msgid "None of these tests pass:" msgstr "Keiner dieser Tests war erfolgreich:" #: pan/usenet-utils/filter-info.cc:358 msgid "Any of these tests pass:" msgstr "Einer oder mehrere dieser Tests waren erfolgreich:" #: pan/usenet-utils/gnksa.cc:880 #, c-format msgid "No email address provided; generating message-id with domain \"%s\"" msgstr "" "Keine E-Mail-Adresse angegeben. Die Nachrichtenkennung wird mit der Domain " "»%s« generiert" #: pan/usenet-utils/message-check.cc:122 msgid "Warning: Reply seems to be top-posted." msgstr "WARNUNG: Antwort scheint an oberster Stelle gepostet zu sein." #: pan/usenet-utils/message-check.cc:143 msgid "Warning: The signature marker should be \"-- \", not \"--\"." msgstr "WARNUNG: Der Signaturtrenner sollte »-- « sein und nicht »--«." #: pan/usenet-utils/message-check.cc:160 msgid "Warning: Signature prefix with no signature." msgstr "WARNUNG: Signatur-Präfix ohne Signatur." #: pan/usenet-utils/message-check.cc:165 msgid "Warning: Signature is more than 4 lines long." msgstr "WARNUNG: Die Signatur ist länger als 4 Zeilen." #: pan/usenet-utils/message-check.cc:170 msgid "Warning: Signature is more than 80 characters wide." msgstr "WARNUNG: Die Signatur ist länger als 80 Zeichen." #: pan/usenet-utils/message-check.cc:196 #, c-format msgid "Warning: %d line is more than 80 characters wide." msgid_plural "Warning: %d lines are more than 80 characters wide." msgstr[0] "WARNUNG: %d Zeile ist länger als 80 Zeichen." msgstr[1] "WARNUNG: %d Zeilen sind länger als 80 Zeichen." #: pan/usenet-utils/message-check.cc:221 msgid "Error: Message is empty." msgstr "FEHLER: Die Nachricht ist leer." #: pan/usenet-utils/message-check.cc:256 msgid "Warning: The message is entirely quoted text!" msgstr "WARNUNG: Diese Nachricht besteht nur aus zitierterm Text!" #: pan/usenet-utils/message-check.cc:257 msgid "Warning: The message is mostly quoted text." msgstr "WARNUNG: Diese Nachricht besteht größtenteils aus zitiertem Text." #: pan/usenet-utils/message-check.cc:307 msgid "Error: Message appears to have no new content." msgstr "FEHLER: Die Nachricht scheint keinen neuen Text zu beinhalten." #: pan/usenet-utils/message-check.cc:342 pan/usenet-utils/message-check.cc:381 #, c-format msgid "" "Warning: The posting profile's server doesn't carry newsgroup\n" "\t\"%s\".\n" "\tIf the group name is correct, switch profiles in the \"From:\"\n" "\tline or edit the profile with \"Edit|Manage Posting Profiles\"." msgstr "" "Warnung: Der Server des Posting-Profils enthält nicht die Newsgroup\n" "\t»%s«.\n" "\tFalls der Gruppenname korrekt ist, ändern Sie die Profile in der\n" "\t»From:«-Zeile oder bearbeiten Sie das Profil mit\n" "\t»Bearbeiten|Posting-Profile verwalten«." #: pan/usenet-utils/message-check.cc:353 msgid "Warning: Following-Up to too many groups." msgstr "WARNUNG: Fortschrift in zu vielen Gruppen." #: pan/usenet-utils/message-check.cc:364 msgid "Error: No Subject specified." msgstr "FEHLER: Kein Betreff angegeben." #: pan/usenet-utils/message-check.cc:393 #, c-format msgid "Warning: Group \"%s\" is read-only." msgstr "WARNUNG: Gruppe »%s« gestattet nur das Lesen." #: pan/usenet-utils/message-check.cc:402 msgid "Error: Posting to a very large number of groups." msgstr "FEHLER: Sie schreiben an sehr viele Gruppen." #: pan/usenet-utils/message-check.cc:407 msgid "Warning: Posting to a large number of groups." msgstr "WARNUNG: Sie schreiben an relativ viele Gruppen." #: pan/usenet-utils/message-check.cc:414 msgid "Warning: Crossposting without setting Followup-To header." msgstr "" "WARNUNG: Sie veröffentlichen in mehrere Gruppen, ohne anzugeben, wohin " "fortgeschrieben werden soll." #: pan/usenet-utils/message-check.cc:439 msgid "Error: Bad email address." msgstr "Fehlerhafte E-Mail-Adresse." #: pan/usenet-utils/message-check.cc:448 msgid "Warning: Most newsgroups frown upon HTML posts." msgstr "Warnung: Die meisten Gruppen missbilligen HTML-Artikel." #: pan/usenet-utils/message-check.cc:484 msgid "Error: No Recipients." msgstr "FEHLER: Keine Empfänger angegeben." #: pan/usenet-utils/scorefile.cc:310 #, c-format msgid "Error reading score in %*.*s, line %d: unexpected line." msgstr "Fehler beim Lesen der Wertung in %*.*s, Zeile %d: Unerwartete Zeile." #: pan/usenet-utils/scorefile.cc:442 #, c-format msgid "" "Error reading score in %*.*s, line %d: expected 'Expires: MM/DD/YYYY' or " "'Expires: DD-MM-YYYY'." msgstr "" "Fehler beim Lesen der Wertung in %*.*s, Zeile %d: erwartet wird »Expires: MM/" "TT/JJJJ« oder »Expires: TT-MM-JJJJ«." #: pan/usenet-utils/scorefile.cc:452 #, c-format msgid "Expired old score from %*.*s, line %d" msgstr "Abgelaufene alte Wertung von %*.*s, Zeile %d" #: pan/usenet-utils/scorefile.cc:589 #, c-format msgid "Read %lu scoring rules in %lu sections from \"%s\"" msgstr "%lu Wertungsregeln in %lu Abschnitten von »%s« werden gelesen" #: pan/usenet-utils/ssl-utils.cc:172 #, c-format msgid "Error printing the server certificate for '%s'" msgstr "Fehler beim Ausgeben des Serverzertifikats für »%s«" #: pan/usenet-utils/ssl-utils.cc:191 #, c-format msgid "" "The current server '%s' sent this security certificate:\n" "\n" msgstr "" "Der aktuelle Server »%s« sendete dieses Sicherheitszertifikat:\n" "\n" #: pan/usenet-utils/ssl-utils.cc:197 #, c-format msgid "" "Certificate information for server '%s':\n" "\n" msgstr "" "Zertifikatsinformation für Server »%s«:\n" "\n" #: pan/usenet-utils/ssl-utils.cc:202 #, c-format msgid "" "%sIssuer information:\n" "%s\n" "Valid until: %s\n" "\n" "Not valid before: %s\n" "\n" msgstr "" "%sHerausgeberinformation:\n" "%s\n" "Gültig bis: %s\n" "\n" "Nicht gültig vor: %s\n" "\n" #: pan/usenet-utils/text-massager.cc:397 msgid "> [quoted text muted]" msgstr "> [zitierter Text ausgeblendet]" #: pan/usenet-utils/text-massager.cc:579 msgid "no_name" msgstr "no_name" #: pan/usenet-utils/text-massager.cc:580 msgid "no_mail" msgstr "no_mail" #~ msgid "Toggle on/offline" #~ msgstr "Anwesend/Abwesend umschalten" #~ msgid "Minimize to tray" #~ msgstr "Ins Benachrichtigungsfeld minimieren" #, c-format #~ msgid "There seems to be no password set for server %s." #~ msgstr "Für den Server %s scheint kein Passwort festgelegt worden zu sein." #~ msgid "GNOME Keyring denied access to the passwords." #~ msgstr "" #~ "Der GNOME-Schlüsselbund hat den Zugriff auf die Passwörter verweigert." #~ msgid "_Tip Jar..." #~ msgstr "_Tip Jar …" #~ msgid "pan" #~ msgstr "pan" #~ msgid "_Save Articles…" #~ msgstr "Artikel _speichern …" #~ msgid "Save Articles…" #~ msgstr "Artikel speichern …" #~ msgid "Save Articles from Selected _NZB…" #~ msgstr "Artikel des ausgewählten _NZB speichern …" #~ msgid "Save Articles to an NZB _File…" #~ msgstr "Artikel in eine NZB-Datei speichern …" #~ msgid "_Import NZB Files…" #~ msgstr "NZB-Dateien _importieren …" #~ msgid "X-Face (Avatar)" #~ msgstr "X-Face (Avatar)" #~ msgid "isn’t" #~ msgstr "ist nicht" #, c-format #~ msgid "Posting of “%s” successful: %s" #~ msgstr "Veröffentlichung von »%s« war erfolgreich: %s" #, c-format #~ msgid "Getting header counts for “%s”" #~ msgstr "Kopfzeilenanzahl für »%s« wird ermittelt" #~ msgid "the article isn’t cached locally" #~ msgstr "Artikeltext ist nicht lokal zwischengespeichert" #~ msgid "the article wasn’t posted by you" #~ msgstr "Artikel wurde nicht von mir geschrieben" #~ msgid "the article hasn’t been read" #~ msgstr "Artikel ist ungelesen" pan-0.162/po/dz.po000066400000000000000000004147601475412772400137240ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: pan2\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-04-04 20:58+0200\n" "PO-Revision-Date: 2007-03-29 02:42+0530\n" "Last-Translator: Tshewang Norbu \n" "Language-Team: Dzongkha \n" "Language: dz\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2;plural=(n!=1);\n" "X-Poedit-Language: Dzongkha\n" "X-Poedit-Country: Bhutan\n" "X-Poedit-SourceCharset: utf-8\n" #: ../pan.desktop.in.h:1 msgid "Pan Newsreader" msgstr "པེན་ གནས་ཚུལ་ལྷག་མི་" #: ../pan.desktop.in.h:2 msgid "Read and Post Usenet Articles" msgstr "" #: ../pan/data/article-cache.cc:143 ../pan/data/encode-cache.cc:62 #, c-format msgid "Error opening directory: \"%s\": %s" msgstr "སྣོད་ཐོ་ཁ་ཕྱེ་བའི་སྐབས་ལུ་ འཛོལ་བ་: \"%s\": %s" #: ../pan/data/article-cache.cc:231 ../pan/data/article-cache.cc:242 #: ../pan/data-impl/data-io.cc:187 ../pan/data-impl/data-io.cc:211 #: ../pan/gui/post-ui.cc:1639 #, c-format msgid "Unable to save \"%s\" %s" msgstr " \"%s\" %s སྲུང་མ་ཚུགས་" #: ../pan/data/article-cache.cc:355 #, c-format msgid "Error opening file \"%s\" %s" msgstr "ཡིག་སྣོད་ \"%s\" %s ཁ་ཕྱེ་བའི་སྐབས་ལུ་འཛོལ་བ་" #: ../pan/data/article-cache.cc:386 ../pan/data-impl/profiles.cc:174 #: ../pan/data-impl/server.cc:436 ../pan/general/file-util.cc:298 #: ../pan/gui/post-ui.cc:609 ../pan/gui/task-pane.cc:691 #, c-format msgid "Error reading file \"%s\": %s" msgstr "ཡིག་སྣོད་ \"%s\": %s ལྷག་པའི་བསྒང་ལུ་ འཛོལ་བ་" #: ../pan/data/cert-store.cc:238 #, fuzzy, c-format msgid "Error opening SSL certificate directory: \"%s\": %s" msgstr "སྣོད་ཐོ་ཁ་ཕྱེ་བའི་སྐབས་ལུ་ འཛོལ་བ་: \"%s\": %s" #: ../pan/data/cert-store.cc:270 #, c-format msgid "Succesfully added %d SSL PEM certificate(s) to Certificate Store." msgstr "" #. load_group_descriptions (*_data_io); #: ../pan/data-impl/data-impl.cc:109 #, c-format msgid "Loaded data backend in %.1f seconds" msgstr "%.1f སྐར་ཆ་ ནང་ མངོན་གསལ་འབད་ཡོད་པའི་གནད་སྡུད་རྒྱབ་མཐའ། " #: ../pan/data-impl/data-impl.cc:140 msgid "Pan newsreader server passwords" msgstr "" #: ../pan/data-impl/groups.cc:94 #, c-format msgid "Skipping newsrc file for server \"%s\"" msgstr "\"%s\" གི་དོན་ལས་ newsrc ཡིག་སྣོད་ གོམ་འགྱོ་དོ་" #: ../pan/data-impl/headers.cc:606 #, c-format msgid "Expired %lu old articles from \"%s\"" msgstr "དུས་ལས་ཡོལ་བའི་%lu རྩོམ་བྲིས་རྙིངམོ་ \"%s\" ནང་ལས་ " #: ../pan/data-impl/headers.cc:613 #, c-format msgid "" "Unsupported data version for %s headers: %d.\n" "Are you running an old version of Pan by accident?" msgstr "" "%s མགོ་ཡིག་གི་དོན་ལུ་ རྒྱབ་སྐྱོར་མ་འབད་བའི་གནད་སྡུད་ཐོན་རིམ་: %d.\n" "ཁྱོད་ཀྱིས་ གློ་བུར་དུ་པེན་གྱི་ཐོན་རིམ་རྙིངམོ་ གཡོག་བཀོལཝ་ཨིན་ན་?" #: ../pan/data-impl/headers.cc:628 #, c-format msgid "Loaded %lu articles for \"%s\" in %.1f seconds (%.0f per second)" msgstr "" "རྩོམ་བྲིས་ %lu \"%s\" གི་དོན་ལུ་ %.1f སྐར་ཆ་ཚུ་ནང་ མངོན་གསལ་འབད་ཡི་ (སྐར་ཆ་རེ་ལུ་ %.0f)" #: ../pan/data-impl/headers.cc:857 #, fuzzy, c-format msgid "" "Saved %lu parts, %lu articles in \"%s\" in %.1f seconds (%.0f articles/sec)" msgstr "སྲུངས་ཡོད་པའི་ %lu ཡན་ལག་ཚུ་ རྩོམ་བྲིས་ %lu \"%s\" ནང་གི་%.1f ནང་(%.0f art/sec)" #: ../pan/data-impl/headers.cc:1173 #, c-format msgid "Added %lu articles to %s." msgstr "རྩོམ་བྲིས་ %lu འདི་ %s ལུ་ ཁ་སྐོང་བརྐྱབས་ཡོདཔ།" #: ../pan/data-impl/server.cc:234 #, c-format msgid "There seems to be no Password set for Server %s." msgstr "" #: ../pan/data-impl/server.cc:238 msgid "The Gnome keyring denied access to the Passwords." msgstr "" #: ../pan/data-impl/xover.cc:239 #, c-format msgid "Error reading from %s: unknown group \"%s\"" msgstr "%sལས་ལྷག་པའི་སྐབས་ལུ་འཛོལ་བ་: མ་ཤེས་པའི་སྡེ་ཚན་ \"%s\"" #. build the locale strings #: ../pan/general/e-util.cc:213 msgid "%l:%M %p" msgstr "%l:%M %p" #: ../pan/general/e-util.cc:214 msgid "Today %l:%M %p" msgstr "ད་རིས་ %l:%M %p" #: ../pan/general/e-util.cc:215 msgid "%a %l:%M %p" msgstr "%a %l:%M %p" #: ../pan/general/e-util.cc:216 msgid "%b %d %l:%M %p" msgstr "%b %d %l:%M %p" #: ../pan/general/e-util.cc:217 msgid "%b %d %Y" msgstr "%b %d %Y" #: ../pan/general/e-util.cc:242 msgid "?" msgstr "?" #: ../pan/general/text-match.cc:193 #, c-format msgid "Can't use regular expression \"%s\": %s" msgstr "དུས་རྒྱུན་གྱི་གསལ་བརྗོད་ \"%s\": %s འདི་ ལག་ལེན་འཐབ་མི་ཚུགས་" #: ../pan/general/utf8-utils.cc:213 msgid "Couldn't determine article encoding. Non-UTF8 characters were removed." msgstr "" "རྩོམ་བྲིས་ཨེན་ཀོ་ཌིང་ གཏན་འབེབས་བཟོ་མ་ཚུགས། ཡུ་ཊི་ཨེཕ་༨ མ་ཡིན་པའི་ཡིག་འབྲུ་ཚུ་རྩ་བསྐྲད་བཏང་ཡོདཔ།" #: ../pan/gui/actions.cc:274 ../pan/gui/post-ui.cc:417 msgid "_File" msgstr "ཡིག་སྣོད་(_F)" #: ../pan/gui/actions.cc:275 ../pan/gui/post-ui.cc:418 msgid "_Edit" msgstr "ཞུན་དག་(_E)" #: ../pan/gui/actions.cc:276 ../pan/gui/prefs-ui.cc:1064 msgid "_Layout" msgstr "སྒྲིག་བཀོད་(_L)" #: ../pan/gui/actions.cc:277 msgid "_Group Pane" msgstr "སྡེ་ཚན་པེན་(_G)" #: ../pan/gui/actions.cc:278 msgid "_Header Pane" msgstr "མགོ་ཡིག་པེན་(_H)" #: ../pan/gui/actions.cc:279 msgid "_Body Pane" msgstr "མ་གཟུགས་པེན་(_B)" #: ../pan/gui/actions.cc:280 msgid "_View" msgstr "སྟོན་(_V)" #: ../pan/gui/actions.cc:281 msgid "Filte_r" msgstr "ཚགས་མ་(_r)" #: ../pan/gui/actions.cc:282 msgid "_Go" msgstr "འགྱོ་(_G)" #: ../pan/gui/actions.cc:283 ../pan/gui/prefs-ui.cc:1091 msgid "_Actions" msgstr "བྱ་བ་(_A)" #: ../pan/gui/actions.cc:284 msgid "_Articles" msgstr "རྩོམ་བྲིས་(_A)" #: ../pan/gui/actions.cc:285 msgid "G_roups" msgstr "སྡེ་ཚན་ཚུ་(_r)" #: ../pan/gui/actions.cc:286 ../pan/gui/actions.cc:287 msgid "_Post" msgstr "འགྲེམ་སྐྱེལ་(_P)" #: ../pan/gui/actions.cc:288 msgid "_Help" msgstr "གྲོགས་རམ་(_H)" #: ../pan/gui/actions.cc:291 msgid "_Read Group" msgstr "སྡེ་ཚན་ལྷག་(_R)" #: ../pan/gui/actions.cc:292 #, fuzzy msgid "Read Group" msgstr "སྡེ་ཚན་ལྷག་(_R)" #: ../pan/gui/actions.cc:296 #, fuzzy msgid "_Mark Selected Groups Read" msgstr "སེལ་འཐུ་འབད་ཡོད་པའི་སྡེ་ཚན་འདི་ ལྷག་ཡོདཔ་སྦེ་ རྟགས་བཀལ་" #: ../pan/gui/actions.cc:297 #, fuzzy msgid "Mark Selected Groups Read" msgstr "སེལ་འཐུ་འབད་ཡོད་པའི་སྡེ་ཚན་འདི་ ལྷག་ཡོདཔ་སྦེ་ རྟགས་བཀལ་" #: ../pan/gui/actions.cc:301 #, fuzzy msgid "_Delete Selected Groups' Articles" msgstr "སེལ་འཐུ་འབད་ཡོད་པའི་སྡེ་ཚན་གྱི་རྩོམ་བྲིས་ བཏོན་གཏང་" #: ../pan/gui/actions.cc:302 #, fuzzy msgid "Delete Selected Groups' Articles" msgstr "སེལ་འཐུ་འབད་ཡོད་པའི་སྡེ་ཚན་གྱི་རྩོམ་བྲིས་ བཏོན་གཏང་" #: ../pan/gui/actions.cc:306 #, fuzzy msgid "Get New _Headers in Selected Groups" msgstr "སེལ་འཐུ་འབད་ཡོད་པའི་སྡེ་ཚན་ནང་ མགོ་ཡིག་གསརཔ་ལེན་(_H)" #: ../pan/gui/actions.cc:307 #, fuzzy msgid "Get New Headers in Selected Groups" msgstr "སེལ་འཐུ་འབད་ཡོད་པའི་སྡེ་ཚན་ནང་ མགོ་ཡིག་གསརཔ་ལེན་(_H)" #: ../pan/gui/actions.cc:311 ../pan/gui/actions.cc:316 msgid "Get New _Headers in Subscribed Groups" msgstr "མཁོ་མངགས་འབད་ཡོད་པའི་སྡེ་ཚན་ནང་ མགོ་ཡིག་གསརཔ་ལེན་(_H)" #: ../pan/gui/actions.cc:312 ../pan/gui/actions.cc:317 #, fuzzy msgid "Get New Headers in Subscribed Groups" msgstr "མཁོ་མངགས་འབད་ཡོད་པའི་སྡེ་ཚན་ནང་ མགོ་ཡིག་གསརཔ་ལེན་(_H)" #: ../pan/gui/actions.cc:321 #, fuzzy msgid "Get _Headers..." msgstr "མགོ་ཡིག་ཚུ་ ལེན་་་་་(_H)" #: ../pan/gui/actions.cc:322 #, fuzzy msgid "Get Headers..." msgstr "མགོ་ཡིག་ཚུ་ ལེན་་་་་(_H)" #: ../pan/gui/actions.cc:326 ../pan/gui/actions.cc:327 msgid "Refresh Group List" msgstr "སྡེ་ཚན་ཐོ་ཡིག་ ཡང་སེལ་འབད་" #: ../pan/gui/actions.cc:331 msgid "_Subscribe" msgstr "མཁོ་མངགས་(_S)" #: ../pan/gui/actions.cc:332 #, fuzzy msgid "Subscribe" msgstr "མཁོ་མངགས་(_S)" #: ../pan/gui/actions.cc:336 msgid "_Unsubscribe" msgstr "མཁོ་མངགས་འབད་བཤོལ་(_U)" #: ../pan/gui/actions.cc:337 #, fuzzy msgid "Unsubscribe" msgstr "མཁོ་མངགས་འབད་བཤོལ་(_U)" #: ../pan/gui/actions.cc:341 #, fuzzy msgid "_Save Articles..." msgstr "རྩོམ་བྲིས་སྲུངས་་་་(_S)" #: ../pan/gui/actions.cc:342 #, fuzzy msgid "Save Articles..." msgstr "རྩོམ་བྲིས་སྲུངས་་་་(_S)" #: ../pan/gui/actions.cc:346 #, fuzzy msgid "Save Articles from Selected _NZB..." msgstr "རྩོམ་བྲིས་སྲུངས་་་་(_S)" #: ../pan/gui/actions.cc:347 #, fuzzy msgid "Save Articles from Selected NZB" msgstr "རྩོམ་བྲིས་སྲུངས་" #: ../pan/gui/actions.cc:351 #, fuzzy msgid "Save Articles to an NZB _File..." msgstr "རྩོམ་བྲིས་སྲུངས་་་་(_S)" #: ../pan/gui/actions.cc:352 #, fuzzy msgid "Save Articles to an NZB File" msgstr "རྩོམ་བྲིས་སྲུངས་" #: ../pan/gui/actions.cc:356 ../pan/gui/actions.cc:357 msgid "Print" msgstr "" #: ../pan/gui/actions.cc:361 #, fuzzy msgid "_Import NZB Files..." msgstr "ཨེན་ཛེཌི་བི་ ཡིག་སྣོད་ཚུ་ ནང་འདྲེན་འབད་་་(_I)" #: ../pan/gui/actions.cc:366 msgid "_Cancel Last Task" msgstr "མཇུག་གི་ལས་ཀ་ ཆ་མེད་གཏང་(_C)" #: ../pan/gui/actions.cc:371 msgid "_Task Manager" msgstr "ལས་ཀ་འཛིན་སྐྱོང་པ་(_T)" #: ../pan/gui/actions.cc:376 msgid "_Event Log" msgstr "བྱུང་ལས་དྲན་དེབ་(_E)" #: ../pan/gui/actions.cc:381 msgid "_Quit" msgstr "སྤང་(_Q)" #: ../pan/gui/actions.cc:386 msgid "Select _All Articles" msgstr "རྩོམ་བྲིས་ཆ་མཉམ་ སེལ་འཐུ་འབད་(_A)" #: ../pan/gui/actions.cc:391 msgid "_Deselect All Articles" msgstr "རྩོམ་བྲིས་ཆ་མཉམ་སེལ་འཐུ་འབད་བཤོལ་(_D)" #: ../pan/gui/actions.cc:396 msgid "Add Su_bthreads to Selection" msgstr "ཡན་ལག་ཐེརེཌིསི་འདི་ སེལ་འཐུ་ལུ་ཁ་སྐོང་རྐྱབས་(_b)" #: ../pan/gui/actions.cc:401 msgid "Add _Threads to Selection" msgstr "སེལ་འཐུ་ལུ་ ཐེརེཌིསི་ཁ་སྐོང་རྐྱབས་(_T)" #: ../pan/gui/actions.cc:406 msgid "Add _Similar Articles to Selection" msgstr "སེལ་འཐུ་ལུ་ རྩོམ་བྲིས་ཅོག་འཐདཔ་ཚུ་ ཁ་སྐོང་རྐྱབས་(_S)" #: ../pan/gui/actions.cc:411 msgid "Select Article _Body" msgstr "རྩོམ་བྲིས་མ་གཟུགས་ སེལ་འཐུ་འབད་(_B)" #: ../pan/gui/actions.cc:416 msgid "Edit _Preferences" msgstr "དགའ་གདམ་ཚུ་ ཞུན་དག་འབད་(_P)" #: ../pan/gui/actions.cc:421 #, fuzzy msgid "Edit Selected _Group's Preferences" msgstr "སྡེ་ཚན་དགའ་གདམ་ཚུ་ ཞུན་དག་འབད་(_G)" #: ../pan/gui/actions.cc:426 ../pan/gui/post-ui.cc:434 msgid "Edit P_osting Profiles" msgstr "གནས་བསྐྱོད་གསར་སྡུད་ ཞུན་དག་འབད་(_o)" #: ../pan/gui/actions.cc:431 msgid "Edit _News Servers" msgstr "གནས་ཚུལ་སར་བར་ཚུ་ ཞུན་དག་འབད་(_N)" #: ../pan/gui/actions.cc:436 msgid "Jump to _Group Tab" msgstr "སྡེ་ཚན་མཆོང་ལྡེ་ལུ་ མཆོང་(_G)" #: ../pan/gui/actions.cc:441 msgid "Jump to _Header Tab" msgstr "མགོ་ཡིག་མཆོང་ལྡེ་ལུ་ མཆོང་(_H)" #: ../pan/gui/actions.cc:446 msgid "Jump to _Body Tab" msgstr "མ་གཟུགས་མཆོང་ལྡེ་ལུ་ མཆོང་(_B)" #: ../pan/gui/actions.cc:451 msgid "_Rot13 Selected Text" msgstr "རོཊི་༡༣ སེལ་འཐུ་འབད་ཡོད་པའི་ཚིག་ཡིག་(_R)" #: ../pan/gui/actions.cc:456 msgid "Clear _Header Pane" msgstr "མགོ་ཡིག་པེན་ བསལ་(_H)" #: ../pan/gui/actions.cc:461 msgid "Clear _Body Pane" msgstr "མ་གཟུགས་པེན་འདི་ བསལ་(_B)" #: ../pan/gui/actions.cc:466 msgid "Cache Article" msgstr "འདྲ་མཛོད་རྩོམ་བྲིས་" #: ../pan/gui/actions.cc:471 msgid "Read Article" msgstr "རྩོམ་བྲིས་ལྷག་" #: ../pan/gui/actions.cc:476 msgid "Show Article Information" msgstr "རྩོམ་བྲིས་བརྡ་དོན་སྟོན་" #: ../pan/gui/actions.cc:481 msgid "Read _More" msgstr "ལེ་ཤ་ལྷག་(_M)" #: ../pan/gui/actions.cc:482 msgid "Read More" msgstr "ལེ་ཤཱ་་ལྷག་" #: ../pan/gui/actions.cc:486 msgid "Read _Back" msgstr "རྒྱབ་ཁར་ལྷག་(_B)" #: ../pan/gui/actions.cc:487 msgid "Read Back" msgstr "རྒྱབ་ཁར་ལྷག་" #: ../pan/gui/actions.cc:491 msgid "Next _Unread Group" msgstr "ཤུལ་མའི་མ་ལྷག་པའི་སྡེ་ཚན་(_U)" #: ../pan/gui/actions.cc:496 msgid "Next _Group" msgstr "སྡེ་ཚན་གཞན་མི་(_G)" #: ../pan/gui/actions.cc:501 msgid "Next _Unread Article" msgstr "ཤུལ་མའི་མ་ལྷག་པ་ཡོད་པའི་རྩོམ་བྲིས་(_U)" #: ../pan/gui/actions.cc:502 msgid "Next Unread Article" msgstr "ཤུལ་མའི་མ་ལྷག་པ་ཡོད་པའི་རྩོམ་བྲིས་" #: ../pan/gui/actions.cc:506 msgid "Next _Article" msgstr "ཤུལ་མའི་རྩོམ་བྲིས་(_A)" #: ../pan/gui/actions.cc:507 #, fuzzy msgid "Next Article" msgstr "ཤུལ་མའི་རྩོམ་བྲིས་(_A)" #: ../pan/gui/actions.cc:511 msgid "Next _Watched Article" msgstr "ཤུལ་མའི་བལྟ་ཡོད་པའི་རྩོམ་བྲིས་(_W)" #: ../pan/gui/actions.cc:516 msgid "Next Unread _Thread" msgstr "ཤུལ་མའི་མ་ལྷག་པའི་ཐེརེཌི་(_T)" #: ../pan/gui/actions.cc:517 msgid "Next Unread Thread" msgstr "ཤུལ་མའི་མ་ལྷག་པའི་ཐེརེཌི་" #: ../pan/gui/actions.cc:521 msgid "Next Threa_d" msgstr "ཤུལ་མའི་ཐེརེཌི་(_d)" #: ../pan/gui/actions.cc:526 msgid "Pre_vious Article" msgstr "ཧེ་མའི་རྩོམ་བྲིས་(_v)" #: ../pan/gui/actions.cc:531 msgid "Previous _Thread" msgstr "ཧེ་མའི་ཐེརེཌི་(_T)" #: ../pan/gui/actions.cc:536 msgid "_Parent Article" msgstr "རྩ་ལག་རྩོམ་བྲིས་(_P)" #: ../pan/gui/actions.cc:541 msgid "Ignore _Author" msgstr "རྩོམ་པ་པོ་ སྣང་མེད་བཞག་(_A)" #: ../pan/gui/actions.cc:545 msgid "_Watch Thread" msgstr "ཐེརེཌི་ལུ་ལྟ་(_W)" #: ../pan/gui/actions.cc:550 msgid "_Ignore Thread" msgstr "ཐེརེཌི་ སྣང་མེད་བཞག་(_I)" #: ../pan/gui/actions.cc:555 ../pan/gui/actions.cc:556 #, fuzzy msgid "_Toggle Flag On/Off for Thread" msgstr "ཐེརེཌི་ལུ་ལྟ་(_W)" #: ../pan/gui/actions.cc:560 ../pan/gui/actions.cc:561 #, fuzzy msgid "_Turn Flag Off for Thread" msgstr "ཐེརེཌི་ལུ་ལྟ་(_W)" #: ../pan/gui/actions.cc:565 ../pan/gui/actions.cc:566 #, fuzzy msgid "_Select All Flagged Threads" msgstr "ཤུལ་མའི་མ་ལྷག་པའི་ཐེརེཌི་" #: ../pan/gui/actions.cc:570 ../pan/gui/actions.cc:571 #, fuzzy msgid "_Go to Next Flagged Thread" msgstr "ཤུལ་མའི་མ་ལྷག་པའི་ཐེརེཌི་" #: ../pan/gui/actions.cc:575 ../pan/gui/actions.cc:576 #, fuzzy msgid "_Go to Last Flagged Thread" msgstr "ཤུལ་མའི་མ་ལྷག་པའི་ཐེརེཌི་" #: ../pan/gui/actions.cc:580 ../pan/gui/actions.cc:581 #, fuzzy msgid "_Invert Selection" msgstr "སེལ་འཐུ་ལུ་ ཐེརེཌིསི་ཁ་སྐོང་རྐྱབས་(_T)" #: ../pan/gui/actions.cc:585 #, fuzzy msgid "Edit Article's Watch/Ignore/Score..." msgstr "རྩོམ་བྲིས་པའི་ལྟ་བ་/སྣང་མེད་/སྐུགས་ཞུན་དག་འབད་་་་་" #: ../pan/gui/actions.cc:590 #, fuzzy msgid "Add a _Scoring Rule..." msgstr "སྐུགས་ཀྱི་ལམ་ལུགས་ཅིག་ ཁ་སྐོང་རྐྱབས་་་(_A)" #: ../pan/gui/actions.cc:595 #, fuzzy msgid "Cance_l Article..." msgstr "རྩོམ་བྲིས་ ཆ་མེད་གཏང་་་་(_l)" #: ../pan/gui/actions.cc:600 #, fuzzy msgid "_Supersede Article..." msgstr "རྩོམ་བྲིས་ ཚབ་མ་བཙུགས་་་(_S)" #: ../pan/gui/actions.cc:605 msgid "_Delete Article" msgstr "རྩོམ་བྲིས་བཏོན་གཏང་(_D)" #: ../pan/gui/actions.cc:610 msgid "Clear Article Cache" msgstr "རྩོམ་བྲིས་འདྲ་མཛོད་ བསལ་" #: ../pan/gui/actions.cc:615 msgid "_Mark Article as Read" msgstr "རྩོམ་བྲིས་འདི་ ལྷག་ནི་སྦེ་རྟགས་བཀལ་(_M)" #: ../pan/gui/actions.cc:620 msgid "Mark Article as _Unread" msgstr "རྩོམ་བྲིས་འདི་མ་ལྷགཔ་སྦེ་རྟགས་བཀལ་(_U)" #: ../pan/gui/actions.cc:626 #, fuzzy msgid "_Mark Thread as Read" msgstr "རྩོམ་བྲིས་འདི་ ལྷག་ནི་སྦེ་རྟགས་བཀལ་(_M)" #: ../pan/gui/actions.cc:631 #, fuzzy msgid "Mark Thread as _Unread" msgstr "རྩོམ་བྲིས་འདི་མ་ལྷགཔ་སྦེ་རྟགས་བཀལ་(_U)" #: ../pan/gui/actions.cc:636 msgid "_Post to Newsgroup" msgstr "གནས་ཚུལ་སྡེ་ཚན་ལུ་ འགྲེམ་སྐྱེལ་འབད་(_P)" #: ../pan/gui/actions.cc:637 msgid "Post to Newsgroup" msgstr "གནས་ཚུལ་སྡེ་ཚན་ལུ་ འགྲེམ་སྐྱེལ་འབད་" #: ../pan/gui/actions.cc:641 #, fuzzy msgid "_Followup to Newsgroup" msgstr "གནས་ཚུལ་སྡེ་ཚན་ལུ་ཤུལ་དཔྱད་འབད་(_F)" #: ../pan/gui/actions.cc:642 msgid "Followup to Newsgroup" msgstr "གནས་ཚུལ་སྡེ་ཚན་ལུ་ ཤུལ་དཔྱད་འབད་" #: ../pan/gui/actions.cc:646 msgid "_Reply to Author in Mail" msgstr "ཡིག་འཕྲིན་གྱི་ཐོག་ལས་ རྩོམ་པ་པོ་ལུ་ལན་གསལ་འབད་(_R)" #: ../pan/gui/actions.cc:651 msgid "_Pan Home Page" msgstr "པེན་ ཁྱིམ་ཤོག་ལེབ་(_P)" #: ../pan/gui/actions.cc:656 #, fuzzy msgid "Give _Feedback or Report a Bug..." msgstr "རྐྱེན་སེལ་གྱི་བསམ་ལན་ ཡང་ན་ སྙན་ཞུ་བྱིན་་་་(_F)" #: ../pan/gui/actions.cc:661 #, fuzzy msgid "_Tip Jar..." msgstr "ཊིཔ་ ཇར་་་་་(_T)" #: ../pan/gui/actions.cc:666 msgid "_About" msgstr "སྐོར་ལས་(_A)" #: ../pan/gui/actions.cc:671 msgid "Edit _SSL Certificates" msgstr "" #: ../pan/gui/actions.cc:685 msgid "_Thread Headers" msgstr "ཐེརེཌི་ མགོ་ཡིག་ཚུ་(_T)" #: ../pan/gui/actions.cc:686 msgid "_Wrap Article Body" msgstr "རྩོམ་བྲིས་མ་གཟུགས་ ལོག་མཚམས་བཟོ་(_W)" #: ../pan/gui/actions.cc:687 msgid "Mute _Quoted Text" msgstr "འདྲེན་ཚིག་བཀོད་ཡོད་པའི་ཚིག་ཡིག་ སྐད་མེད་བཟོ་(_Q)" #: ../pan/gui/actions.cc:688 msgid "Show All _Headers in Body Pane" msgstr "མ་གཟུགས་པེན་ནང་ མགོ་ཡིག་ཆ་མཉམ་སྟོན་(_H)" #: ../pan/gui/actions.cc:689 msgid "Show _Smilies as Graphics" msgstr "ཚད་རིས་བཟུམ་སྦེ་ སི་མའི་ལིསི་སྟོན་(_S)" #: ../pan/gui/actions.cc:690 msgid "Show *Bold*, __Underlined__, and /Italic/" msgstr "*རྒྱགས་པ་* དང་__འོག་ཐིག་ཅན་__ དེ་ལས་ //ཨའི་ཊ་ལིཀ་/ སྟོན་" #: ../pan/gui/actions.cc:691 msgid "Size Pictures to _Fit" msgstr "པར་ཚུད་སྒྲིག་གི་ཚད་བཟོ་(_F)" #: ../pan/gui/actions.cc:692 msgid "Use _Monospace Font" msgstr "མོ་ནོ་སི་པེསི་ ཡིག་གཟུགས་ ལག་ལེན་འཐབ་(_M)" #: ../pan/gui/actions.cc:693 msgid "Set Focus to Images" msgstr "གཟུགས་བརྙན་ལུ་ ཆེད་དམིགས་གཞི་སྒྲིག་འབད་" #: ../pan/gui/actions.cc:694 msgid "Highlight _URLs" msgstr "" #: ../pan/gui/actions.cc:697 msgid "_Work Online" msgstr "ལཱ་ ཨོཕ་ལ་ཡིན་(_W)" #: ../pan/gui/actions.cc:698 msgid "_Tabbed Layout" msgstr "མཆོང་ལྡེ་ཅན་གྱི་སྒྲིག་བཀོད་(_T)" #: ../pan/gui/actions.cc:699 msgid "Show Group _Pane" msgstr "སྡེ་ཚན་པེན་ སྟོན་(_P)" #: ../pan/gui/actions.cc:700 msgid "Show Hea_der Pane" msgstr "མགོ་ཡིག་པེན་ སྟོན་(_d)" #: ../pan/gui/actions.cc:701 msgid "Show Bod_y Pane" msgstr "མ་གཟུགས་པེན་ སྟོན་(_y)" #: ../pan/gui/actions.cc:702 msgid "Show _Toolbar" msgstr "ལག་ཆས་ཕྲ་རིང་སྟོན་(_T)" #: ../pan/gui/actions.cc:703 #, fuzzy msgid "Abbreviate Group Names" msgstr "གནས་ཚུལ་སྡེ་ཚན་གྱི་མིང་ཚུ་ བཅུད་སྡུད་" #: ../pan/gui/actions.cc:705 msgid "Match Only _Unread Articles" msgstr "མ་ལྷག་པའི་རྩོམ་བྲིས་ཚུ་རྐྱངམ་ཅིག་ མཐུན་སྒྲིག་འབད་(_U)" #: ../pan/gui/actions.cc:705 msgid "Match Only Unread Articles" msgstr "མ་ལྷག་པའི་རྩོམ་བྲིས་ཚུ་རྐྱངམ་ཅིག་ མཐུན་སྒྲིག་འབད་" #: ../pan/gui/actions.cc:706 msgid "Match Only _Cached Articles" msgstr "འདྲ་མཛོད་ནང་བཙུགས་ཡོད་པའི་རྩོམ་བྲིས་ཚུ་རྐྱངམ་ཅིག་ མཐུན་སྒྲིག་འབད་(_C)" #: ../pan/gui/actions.cc:706 msgid "Match Only Cached Articles" msgstr "འདྲ་མཛོད་ནང་བཙུགས་ཡོད་པའི་རྩོམ་བྲིས་ཚུ་རྐྱངམ་ཅིག་ མཐུན་སྒྲིག་འབད་" #: ../pan/gui/actions.cc:707 msgid "Match Only _Complete Articles" msgstr "རྩོམ་བྲིས་ཡོངས་རྫོགས་རྐྱངམ་ཅིག་ མཐུན་སྒྲིག་འབད་(_C)" #: ../pan/gui/actions.cc:707 msgid "Match Only Complete Articles" msgstr "རྩོམ་བྲིས་ཡོངས་རྫོགས་རྐྱངམ་ཅིག་ མཐུན་སྒྲིག་འབད་" #: ../pan/gui/actions.cc:708 msgid "Match Only _My Articles" msgstr "ངེ་གི་རྩོམ་བྲིས་ཚུ་རྐྱངམ་ཅིག་ མཐུན་སྒྲིག་འབད་(_M)" #: ../pan/gui/actions.cc:708 #, fuzzy msgid "Match Only My Articles" msgstr "ངེ་གི་རྩོམ་བྲིས་ཚུ་རྐྱངམ་ཅིག་ མཐུན་སྒྲིག་འབད་(_M)" #: ../pan/gui/actions.cc:709 msgid "Match Only _Watched Articles" msgstr "བལྟ་ཡོད་པའི་རྩོམ་བྲིས་ཚུ་རྐྱངམ་ཅིག་ མཐུན་སྒྲིག་འབད་(_W)" #: ../pan/gui/actions.cc:709 msgid "Match Only Watched Articles" msgstr "བལྟ་ཡོད་པའི་རྩོམ་བྲིས་ཚུ་རྐྱངམ་ཅིག་ མཐུན་སྒྲིག་འབད་" #: ../pan/gui/actions.cc:711 msgid "Match Scores of 9999 (_Watched)" msgstr "༩༩༩༩ གི་སྐུགས་ མཐུན་སྒྲིག་འབད་(བལྟ་ཡོདཔ་)(_W)" #: ../pan/gui/actions.cc:712 msgid "Match Scores of 5000...9998 (_High)" msgstr "༥༠༠༠...༩༨ ཀྱི་སྐུགས་ མཐུན་སྒྲིག་འབད་(མཐོ་བ་)(_H)" #: ../pan/gui/actions.cc:713 msgid "Match Scores of 1...4999 (Me_dium)" msgstr "༡...༤༩༩༩ གི་སྐུགས་ མཐུན་སྒྲིག་འབད་(འབྲིང་)(_M)" #: ../pan/gui/actions.cc:714 msgid "Match Scores of 0 (_Normal)" msgstr "༠ གྱི་སྐུགས་ མཐུན་སྒྲིག་འབད་(སྤྱིར་བཏང་)(_N)" #: ../pan/gui/actions.cc:715 msgid "Match Scores of -9998...-1 (_Low)" msgstr "-༩༩༩༨...-༡ གི་སྐུགས་ མཐུན་སྒྲིག་འབད་(དམའ་བ་)(_L)" #: ../pan/gui/actions.cc:716 msgid "Match Scores of -9999 (_Ignored)" msgstr "-༩༩༩༩ གི་སྐུགས་ མཐུན་སྒྲིག་འབད་(སྣང་མེད་བཞག་ཡོདཔ་)(_I)" #: ../pan/gui/actions.cc:718 msgid "Enable/Disable All _Rules" msgstr "" #: ../pan/gui/actions.cc:744 msgid "Show Matching _Articles" msgstr "མཐུན་སྒྲིག་ཡོད་པའི་རྩོམ་བྲིས་ཚུ་སྟོན་(_A)" #: ../pan/gui/actions.cc:745 msgid "Show Matching Articles' _Threads" msgstr "མཐུན་སྒྲིག་ཡོད་པའི་རྩོམ་བྲིས་ཀྱི་ཐེརེཌིསི་སྟོན་(_T)" #: ../pan/gui/actions.cc:746 msgid "Show Matching Articles' _Subthreads" msgstr "མཐུན་སྒྲིག་ཡོད་པའི་རྩོམ་བྲིས་ཀྱི་ཡན་ལག་ཐེེརེཌིསི་སྟོན་(_S)" #: ../pan/gui/body-pane.cc:1011 #, fuzzy, c-format msgid "Unnamed File" msgstr "མིང་རྟགས་ཡིག་སྣོད་" #: ../pan/gui/body-pane.cc:1092 ../pan/gui/gui.cc:1864 #: ../pan/gui/header-pane.cc:1188 ../pan/gui/header-pane.cc:1617 #: ../pan/gui/post-ui.cc:2496 ../pan/gui/prefs-ui.cc:833 #: ../pan/gui/score-add-ui.cc:139 msgid "Subject" msgstr "དོན་ཚན་" #: ../pan/gui/body-pane.cc:1094 ../pan/gui/gui.cc:1864 msgid "From" msgstr "ལས་" #: ../pan/gui/body-pane.cc:1096 ../pan/gui/gui.cc:1865 #: ../pan/gui/header-pane.cc:1695 ../pan/gui/log-ui.cc:305 #: ../pan/gui/prefs-ui.cc:829 msgid "Date" msgstr "ཚེས་གྲངས་" #: ../pan/gui/body-pane.cc:1103 msgid "Newsgroups" msgstr "གནས་ཚུལ་སྡེ་ཚན་" #: ../pan/gui/body-pane.cc:1108 msgid "Followup-To" msgstr "ཤུལ་དཔྱད་འབད་ནི་" #: ../pan/gui/body-pane.cc:1118 msgid "Reply-To" msgstr "ལན་གསལ་འབད་ནི་" #: ../pan/gui/body-pane.cc:1160 msgid " from " msgstr "ལས་" #: ../pan/gui/body-pane.cc:1162 msgid " at " msgstr "ལུ་" #: ../pan/gui/body-pane.cc:1264 #, c-format msgid "" "This is a PGP-Signed message.\n" "\n" "Signer : %s ('%s')\n" "Valid until : %s\n" "Created on : %s" msgstr "" #: ../pan/gui/body-pane.cc:1269 msgid "always" msgstr "" #: ../pan/gui/body-pane.cc:1485 msgid "Copy _URL" msgstr "" #: ../pan/gui/body-pane.cc:1680 #, fuzzy msgid "Save attachment as ...." msgstr "མཉམ་སྦྲགས་སྲུངས་" #: ../pan/gui/body-pane.cc:1683 #, fuzzy msgid "Save all attachments" msgstr "མཉམ་སྦྲགས་སྲུངས་" #. add a toolbar for attachments #: ../pan/gui/body-pane.cc:1753 #, fuzzy msgid "Attachments" msgstr "མཉམ་སྦྲགས་སྲུངས་" #. update the titlebar #: ../pan/gui/dl-headers-ui.cc:106 ../pan/gui/gui.cc:973 #: ../pan/gui/gui.cc:1592 ../pan/gui/gui.cc:1893 #: ../pan/gui/score-add-ui.cc:602 msgid "Pan" msgstr "པེན་" #: ../pan/gui/dl-headers-ui.cc:112 #, fuzzy, c-format msgid "%d Group" msgid_plural "%d Groups" msgstr[0] "སྡེ་ཚན་ཚུ་" msgstr[1] "སྡེ་ཚན་ཚུ་" #: ../pan/gui/dl-headers-ui.cc:135 msgid "Get the last N _days' headers: " msgstr "མཇུག་ལུ་ཡོད་པའི་ཨེན་ ཉིན་མའི་མགོ་ཡིག་ཚུ་ལེན་:(_d)" #: ../pan/gui/dl-headers-ui.cc:143 msgid "Get _new headers" msgstr "མགོ་ཡིག་གསརཔ་ཚུ་ལེན་(_n)" #: ../pan/gui/dl-headers-ui.cc:147 msgid "Get _all headers" msgstr "མགོ་ཡིག་ཆ་མཉམ་ ལེན་(_a)" #: ../pan/gui/dl-headers-ui.cc:151 msgid "Get the _latest N headers: " msgstr "མཐའ་མཇུག་གི་ ཨེན་ མགོ་ཡིག་ཚུ་ལེན་:(_l)" #: ../pan/gui/e-action-combo-box.c:388 ../pan/gui/prefs-ui.cc:826 msgid "Action" msgstr "བྱ་བ་" #: ../pan/gui/e-action-combo-box.c:389 msgid "A GtkRadioAction" msgstr "" #: ../pan/gui/e-charset.c:51 ../pan/gui/task-pane.cc:518 msgid "Unknown" msgstr "མ་ཤེསཔ་" #: ../pan/gui/e-charset.c:52 msgid "Arabic" msgstr "" #: ../pan/gui/e-charset.c:53 msgid "Baltic" msgstr "བཱལ་ཊིཀ་" #: ../pan/gui/e-charset.c:54 msgid "Central European" msgstr "དབུས་ཕྱོགས་ ཡུ་རོ་པི་ཡཱན་" #: ../pan/gui/e-charset.c:55 #, fuzzy msgid "Chinese" msgstr "གྲལ་ཐིག་ཚུ་" #: ../pan/gui/e-charset.c:56 msgid "Cyrillic" msgstr "སི་རི་ལིཀ་" #: ../pan/gui/e-charset.c:57 msgid "Greek" msgstr "གིརིཀ་" #: ../pan/gui/e-charset.c:58 msgid "Hebrew" msgstr "" #: ../pan/gui/e-charset.c:59 msgid "Japanese" msgstr "ཇ་པ་ནིསི་" #: ../pan/gui/e-charset.c:60 msgid "Korean" msgstr "ཀོ་རི་ཡཱན་" #: ../pan/gui/e-charset.c:61 msgid "Thai" msgstr "" #: ../pan/gui/e-charset.c:62 msgid "Turkish" msgstr "ཊར་ཀིཤ་" #: ../pan/gui/e-charset.c:63 msgid "Unicode" msgstr "ཡུ་ནི་ཀོཌི་" #: ../pan/gui/e-charset.c:64 #, fuzzy msgid "Western European" msgstr "དབུས་ཕྱོགས་ ཡུ་རོ་པི་ཡཱན་" #: ../pan/gui/e-charset.c:65 #, fuzzy msgid "Western European, New" msgstr "ནུབ་ཕྱོགས་ གསརཔ་" #: ../pan/gui/e-charset.c:84 ../pan/gui/e-charset.c:85 #: ../pan/gui/e-charset.c:86 #, fuzzy msgid "Traditional" msgstr "རྒྱ་ནག་གི་སྔོན་སྲོལ་" #: ../pan/gui/e-charset.c:87 ../pan/gui/e-charset.c:88 #: ../pan/gui/e-charset.c:89 ../pan/gui/e-charset.c:90 #, fuzzy msgid "Simplified" msgstr "རྒྱ་ནག་འཇས་བཟོས་" #: ../pan/gui/e-charset.c:93 #, fuzzy msgid "Ukrainian" msgstr "སི་རི་ལིཀ་ ཡུཀ་རའི་ནི་ཡཱན།" #: ../pan/gui/e-charset.c:96 msgid "Visual" msgstr "" #: ../pan/gui/e-charset-combo-box.c:93 ../pan/gui/gui.cc:2058 #: ../pan/gui/post-ui.cc:519 ../pan/gui/prefs-ui.cc:737 #, fuzzy msgid "Character Encoding" msgstr "ཡིག་འབྲུ་ཨེན་ཀོ་ཌིང་(_E)" #: ../pan/gui/e-charset-combo-box.c:117 msgid "Enter the character set to use" msgstr "" #: ../pan/gui/e-charset-combo-box.c:336 msgid "Other..." msgstr "" #: ../pan/gui/e-cte-dialog.c:78 #, fuzzy msgid "Default encoding" msgstr "ཌི་ཀོཌིང་" #: ../pan/gui/e-cte-dialog.c:80 #, fuzzy msgid "7Bit Encoding" msgstr "ཌི་ཀོཌིང་" #: ../pan/gui/e-cte-dialog.c:82 #, fuzzy msgid "8Bit Encoding" msgstr "ཌི་ཀོཌིང་" #: ../pan/gui/e-cte-dialog.c:84 #, fuzzy msgid "BASE64 Encoding" msgstr "ཌི་ཀོཌིང་" #: ../pan/gui/e-cte-dialog.c:86 #, fuzzy msgid "Quoted-Printable Encoding" msgstr "མ་གཟུགས་ པེན་" #: ../pan/gui/group-pane.cc:500 #, fuzzy msgid "Group" msgstr "སྡེ་ཚན་ཚུ་" #: ../pan/gui/group-pane.cc:501 #, fuzzy msgid "Group (regex)" msgstr "སྡེ་ཚན་མིང་" #: ../pan/gui/group-pane.cc:913 msgid "Subscribed Groups" msgstr "མཁོ་མངགས་འབད་ཡོད་པའི་སྡེ་ཚན་ཚུ་" #: ../pan/gui/group-pane.cc:914 msgid "Other Groups" msgstr "སྡེ་ཚན་གཞན་" #: ../pan/gui/group-pane.cc:954 ../pan/gui/score-view-ui.cc:157 msgid "Name" msgstr "མིང་" #: ../pan/gui/group-prefs-dialog.cc:156 msgid "No Profiles defined in Edit|Posting Profiles." msgstr "ཞུན་དག་|གནས་བསྐྱོད་གསལ་སྡུད་ནང་ གསལ་སྡུད་ཅིག་ཡང་ངེས་འཛིན་མ་འབད་བར་ཡོདཔ་" #: ../pan/gui/group-prefs-dialog.cc:231 msgid "Pan: Group Preferences" msgstr "པེན་: སྡེ་ཚན་གྱི་དགའ་གདམ་ཚུ་" #: ../pan/gui/group-prefs-dialog.cc:247 #, fuzzy, c-format msgid "Properties for Groups" msgstr "%s གི་རྒྱུ་དངོས་ཚུ་" #: ../pan/gui/group-prefs-dialog.cc:249 #, c-format msgid "Properties for %s" msgstr "%s གི་རྒྱུ་དངོས་ཚུ་" #: ../pan/gui/group-prefs-dialog.cc:257 msgid "Character _encoding:" msgstr "ཡིག་འབྲུ་ ཨེན་ཀོ་ཌིང་:(_e)" #: ../pan/gui/group-prefs-dialog.cc:259 msgid "Directory for Saving Attachments" msgstr "མཉམ་སྦྲགས་སྲུང་ནིའི་སྣོད་ཐོ་" #: ../pan/gui/group-prefs-dialog.cc:269 msgid "Directory for _saving attachments:" msgstr "མཉམ་སྦྲགས་སྲུང་ནིའི་སྣོད་ཐོ་:" #: ../pan/gui/group-prefs-dialog.cc:271 msgid "Posting _profile:" msgstr "གནས་བསྐྱོད་ གསལ་སྡུད་:(_p)" #: ../pan/gui/group-prefs-dialog.cc:277 msgid "Spellchecker _language:" msgstr "" #: ../pan/gui/gui.cc:273 msgid "Open the Task Manager" msgstr "ལས་ཀ་འཛིན་སྐྱོང་པ་ ཁ་ཕྱེ་" #: ../pan/gui/gui.cc:301 msgid "Open the Event Log" msgstr "བྱུང་ལས་དྲན་དེབ་ ཁ་ཕྱེ་" #: ../pan/gui/gui.cc:561 msgid "Save NZB's Files" msgstr "ཨེན་ཛེཌ་བི་གི་ཡིག་སྣོད་ཚུ་ སྲུངས་" #: ../pan/gui/gui.cc:588 msgid "Untitled.nzb" msgstr "" #: ../pan/gui/gui.cc:590 #, fuzzy msgid "Save NZB File as..." msgstr "ཨེན་ཛེཌ་བི་གི་ཡིག་སྣོད་ཚུ་ སྲུངས་" #: ../pan/gui/gui.cc:757 #, fuzzy msgid "Import NZB Files" msgstr "ཨེན་ཛེཌ་བི་གི་ཡིག་སྣོད་(ཨེསི་) ནང་འདྲེན་འབད་" #: ../pan/gui/gui.cc:765 ../pan/gui/post-ui.cc:3197 #, fuzzy msgid "NZB Files" msgstr "ཨེན་ཛེཌ་བི་གི་ཡིག་སྣོད་ཚུ་ སྲུངས་" #: ../pan/gui/gui.cc:770 msgid "All Files" msgstr "" #: ../pan/gui/gui.cc:1258 msgid "Unable to supersede article." msgstr "རྩོམ་བྲིས་ཚབ་བཙུག་འབད་མི་ཚུགས།" #: ../pan/gui/gui.cc:1259 ../pan/gui/gui.cc:1333 msgid "The article doesn't match any of your posting profiles." msgstr "རྩོམ་བྲིས་འདི་ ཁྱོད་ཀྱི་གནས་བསྐྱོད་ག་དང་ཡང་མཐུན་སྒྲིག་མིན་འདུག" #: ../pan/gui/gui.cc:1306 msgid "Revise and send this article to replace the old one." msgstr "རྙིངམོ་གི་ཚབ་མ་བཙུག་ནི་གི་དོན་ལས་ རྩོམ་བྲིས་འདི་ བསྐྱར་ཞིབ་འབད་དེ་གཏང་།" #: ../pan/gui/gui.cc:1307 ../pan/gui/gui.cc:1370 msgid "Be patient! It will take time for your changes to take effect." msgstr "དགོངསམ་མ་ཁྲེལ་! བསྒྱུར་བཅོས་ཚུ་ནུས་པ་འཐོབ་ནི་ལུ་ དུས་ཚོད་འགོར་འོང་།" #: ../pan/gui/gui.cc:1332 msgid "Unable to cancel article." msgstr "རྩོམ་བྲིས་ ཆ་མེད་གཏང་མི་ཚུགས།" #: ../pan/gui/gui.cc:1369 msgid "Send this article to ask your server to cancel your other one." msgstr "ཁྱོད་ཀྱི་སར་བར་ལུ་ གཞན་མི་འདི་ཆ་མེད་གཏང་ནི་གི་དོན་ལུ་ རྩོམ་བྲིས་འདི་གཏང་།" #: ../pan/gui/gui.cc:1387 #, fuzzy msgid "You marked some articles for deletion" msgstr "སེལ་འཐུ་ལུ་ རྩོམ་བྲིས་ཅོག་འཐདཔ་ཚུ་ ཁ་སྐོང་རྐྱབས་(_S)" #: ../pan/gui/gui.cc:1388 msgid "Are you sure you want to delete them?" msgstr "" #: ../pan/gui/gui.cc:1413 #, fuzzy msgid "Always trust" msgstr "ཞུན་དགཔ་གཡོག་བཀོལ་(_E)" #: ../pan/gui/gui.cc:1416 msgid "Do you want to accept it permanently (deletable afterwards) ?" msgstr "" #: ../pan/gui/gui.cc:1595 #, fuzzy msgid "Copyright \\u00A9 2002-2012 Charles Kerr and others" msgstr "འདྲ་བཤུས་དབང་ཆ་© ༢༠༠༢-༢༠༠༧ ཅར་ལིསི་ ཀེ་ཨར་ཨར་" #: ../pan/gui/gui.cc:1600 msgid "translator-credits" msgstr "སྐད་སྒྱུར་པ་-ངོ་བསྟོད་" #: ../pan/gui/gui.cc:1709 msgid "_1. Group Pane" msgstr "1. སྡེ་ཚན་པེན་(_1)" #: ../pan/gui/gui.cc:1710 msgid "_2. Header Pane" msgstr "2. མགོ་ཡིག་ པེན་(_2)" #: ../pan/gui/gui.cc:1711 msgid "_3. Body Pane" msgstr "3. མ་གཟུགས་ པེན་(_3)" #: ../pan/gui/gui.cc:1800 ../pan/gui/gui.cc:1815 #, fuzzy msgid " Bytes" msgstr "བཱའིཊིསི་ཀ" #: ../pan/gui/gui.cc:1803 msgid " KB" msgstr "" #: ../pan/gui/gui.cc:1806 msgid " MB" msgstr "" #: ../pan/gui/gui.cc:1809 msgid " GB" msgstr "" #: ../pan/gui/gui.cc:1812 msgid " TB" msgstr "" #: ../pan/gui/gui.cc:1844 #, fuzzy, c-format msgid "This article is complete with %d part." msgid_plural "This article has all %d parts." msgstr[0] "རྩོམ་བྲིས་འདི་ལུ་ %d ཡན་ལག་ཆ་མཉམ་འདུག" msgstr[1] "རྩོམ་བྲིས་འདི་ལུ་ %d ཡན་ལག་ཆ་མཉམ་འདུག" #: ../pan/gui/gui.cc:1846 #, fuzzy, c-format msgid "This article is missing %d part." msgid_plural "This article is missing %d of its %d parts:" msgstr[0] "རྩོམ་བྲིས་ནང་ %d ཡན་ལག་གི་ %d འདི་ བརླག་སྟོར་ཞུགས་ཡོདཔ་:" msgstr[1] "རྩོམ་བྲིས་ནང་ %d ཡན་ལག་གི་ %d འདི་ བརླག་སྟོར་ཞུགས་ཡོདཔ་:" #: ../pan/gui/gui.cc:1865 ../pan/gui/header-pane.cc:1190 msgid "Message-ID" msgstr "འཕྲིན་དོན་-ཨའི་ཌི་" #: ../pan/gui/gui.cc:1866 ../pan/gui/header-pane.cc:1665 #: ../pan/gui/prefs-ui.cc:830 msgid "Lines" msgstr "གྲལ་ཐིག་ཚུ་" #: ../pan/gui/gui.cc:1866 msgid "Size" msgstr "" #: ../pan/gui/gui.cc:1867 ../pan/gui/header-pane.cc:1680 #: ../pan/gui/prefs-ui.cc:828 msgid "Bytes" msgstr "བཱའིཊིསི་ཀ" #: ../pan/gui/gui.cc:1917 msgid "" "Error loading iconv library. Some Charsets in the GUI will not be able to be " "encoded." msgstr "" #: ../pan/gui/gui.cc:2059 #, fuzzy msgid "Body Pane Encoding" msgstr "མ་གཟུགས་ པེན་" #: ../pan/gui/gui.cc:2090 ../pan/gui/task-pane.cc:569 #, c-format msgid "Offline" msgstr "ཨཱོཕ་ལ་ཡིན་" #: ../pan/gui/gui.cc:2094 #, fuzzy, c-format msgid "Closing %d connection" msgid_plural "Closing %d connections" msgstr[0] "མཐུད་ལམ་ %d ཁ་བསྡམ་དོ་" msgstr[1] "མཐུད་ལམ་ %d ཁ་བསྡམ་དོ་" #: ../pan/gui/gui.cc:2096 ../pan/gui/gui.cc:2126 #, c-format msgid "No Connections" msgstr "མཐུད་ལམ་མེད་" #: ../pan/gui/gui.cc:2100 #, c-format msgid "Connecting" msgstr "མཐུད་དོ་" #: ../pan/gui/gui.cc:2113 #, c-format msgid "%s: %d idle, %d active @ %.1f KiBps" msgstr "%s: %d ལས་མེད་ %d ཤུགས་ལྡན་ @ %.1f་KiBps" #: ../pan/gui/gui.cc:2169 #, c-format msgid "No Tasks" msgstr "ལས་མེད་" #: ../pan/gui/gui.cc:2171 ../pan/gui/prefs-ui.cc:1047 msgid "Tasks" msgstr "ལས་ཀ་" #: ../pan/gui/gui.cc:2182 ../pan/gui/task-pane.cc:435 #, c-format msgid "%lu tasks, %s, %.1f KiBps, ETA %d:%02d:%02d" msgstr "%lu ལས་ཀ་ཚུ་ %s, %.1f KiBps, ཨི་ཊི་ཨེ་ %d:%02d:%02d" #: ../pan/gui/gui.cc:2234 msgid "" "Pan is now offline. Please see \"File|Event Log\" and correct the problem, " "then use \"File|Work Online\" to continue." msgstr "" "པེན་འདི་ད་ལྟོ་ཨཱོཕ་ལ་ཡིན་ཨིན་པས། \"File|Event Log\" ལུ་བལྟ་སྟེ་དཀའ་ངལ་འདི་སེལ་ དེ་ལས་ འཕྲོ་" "མཐུད་ནི་ལུ་ \"File|Work Online\" ལག་ལེན་འཐབ་གནང་།" #: ../pan/gui/header-pane.cc:1186 msgid "Subject or Author" msgstr "དོན་ཚན་ ཡང་ན་ རྩོམ་པ་པོ་" #: ../pan/gui/header-pane.cc:1187 #, fuzzy msgid "Sub or Auth (regex)" msgstr "དོན་ཚན་ ཡང་ན་ རྩོམ་པ་པོ་" #: ../pan/gui/header-pane.cc:1189 ../pan/gui/header-pane.cc:1649 #: ../pan/gui/prefs-ui.cc:827 ../pan/gui/score-add-ui.cc:140 msgid "Author" msgstr "རྩོམ་པ་པོ་" #: ../pan/gui/header-pane.cc:1634 ../pan/gui/prefs-ui.cc:831 msgid "Score" msgstr "སྐུགས་" #: ../pan/gui/log-ui.cc:103 msgid "Save Event List" msgstr "བྱུང་ལས་ཐོ་ཡིག་ སྲུངས་" #: ../pan/gui/log-ui.cc:256 msgid "Pan: Events" msgstr "པེན་: བྱུང་ལས་" #: ../pan/gui/log-ui.cc:315 msgid "Message" msgstr "འཕྲིན་དོན་" #: ../pan/gui/pan.cc:330 msgid "Maximize" msgstr "" #: ../pan/gui/pan.cc:383 msgid "An Error has occurred!" msgstr "" #: ../pan/gui/pan.cc:397 #, fuzzy msgid "New Articles!" msgstr "ཤུལ་མའི་རྩོམ་བྲིས་(_A)" #: ../pan/gui/pan.cc:398 msgid "" "There are new\n" "articles available." msgstr "" #: ../pan/gui/pan.cc:465 msgid "Toggle on/offline" msgstr "" #: ../pan/gui/pan.cc:513 msgid "" "Thank you for trying Pan!\n" " \n" "To start newsreading, first Add a Server." msgstr "" "པེན་ལུ་འབད་རྩོལ་བསྐྱེད་མི་འདི་ལུ་ བཀྲིན་ཆེ་!\n" " \n" "གནས་ཚུལ་ལྷག་ནི་འགོ་བཙུག་དགོ་པ་ཅིན་ དང་པ་ར་ སར་བར་ཅིག་ཁ་སྐོང་རྐྱབས།" #: ../pan/gui/pan.cc:595 #, fuzzy msgid "" "General Options\n" " -h, --help Show this usage page.\n" " --verbose Be verbose (in non-GUI mode).\n" "\n" "URL Options\n" " --no-gui On news:message-id, dump the article to stdout.\n" "\n" "NZB Batch Options\n" " --nzb file1 file2 ... Process nzb files without launching all of Pan.\n" " -o path, --output=path Path to save attachments listed in the nzb " "files.\n" " --no-gui Only show console output, not the download " "queue.\n" msgstr "" "སྤྱིར་བཏང་གི་གདམ་ཁ་ཚུ་\n" " -h, --གྲོགས་རམ་ བེད་སྤྱོད་ཤོག་ལེབ་འདི་སྟོན།\n" "\n" "ཡུ་ཨར་ཨེལ་གྱི་ གདམ་ཁ་ཚུ་\n" " གནས་ཚུལ་:འཕྲིན་དོན་-ཨའི་ཌི་ གསལ་བཀོད་འབད་ཡོད་པའི་རྩོམ་བྲིས་འདི་སྟོན།\n" " གནས་ཚུལ་:group.name གསལ་བཀོད་འབད་ཡོད་པའི་གནས་ཚུལ་སྡེ་ཚན་འདི་སྟོན།\n" " --no-gui ག་ནས་ཚུལ་:འཕྲིན་དོན་-ཨའི་ཌི་གུ་ རྩོམ་བྲིས་འདི་ སི་ཊེཊི་ཨའུཊི་ནང་" "བཀོག\n" "\n" "ཨེན་ཛེཌི་བི་ གདམ་ཁ་ཚུ་\n" " --ཨེན་ཛེཌི་བི་ ཡིག་སྣོད་༡ ཡིག་སྣོད་༢... པེན་ཆ་མཉམ་གསར་བཙུག་མ་འབད་བར་ ཨེན་ཛེཌི་བི་ཡིག་སྣོད་" "ཚུ་ ལས་སྦྱོར་འབད།\n" " -ཨོ་ འགྲུལ་ལམ་ --ཨའུཊི་པུཊི་=འགྲུལ་ལམ་ ཨེན་ཛེཌི་བི་ཡིག་སྣོད་ཚུ་ནང་ཐོ་ཡིག་བཀོད་ཡོད་པའི་མཉམ་སྦྲགས་" "ཚུ་སྲུང་ནིའི་འགྲུལ་ལམ།\n" " --no-gui མངོན་གསལ་གྲལཞུགས་མེན་པར་ མ་སྒྲོམ་ཨའུཊི་པུཊི་རྐྱངམ་ཅིག་སྟོན།\n" #: ../pan/gui/pan.cc:867 msgid "Error: --no-gui used without nzb files or news:message-id." msgstr "" "འཛོལ་བ་: --no-gui ཨེན་ཛེཌི་བི་ཡིག་སྣོད་ ཡང་ན་ གནས་ཚུལ་ཚུ་མེད་པའི་སྒོ་ལས་ལག་ལེན་འཐབ་ཡོདཔ་:འཕྲིན་" "དོན་-ཨའི་ཌི།" #: ../pan/gui/pan.cc:871 #, c-format msgid "Pan %s started" msgstr "པེན་ %s འགོ་བཙུགས་ཡོདཔ་" #: ../pan/gui/pan.cc:890 msgid "Please configure Pan's news servers before using it as an nzb client." msgstr "" "ཨེན་ཛེཌི་བི་ ཞབས་ཏོག་སྤྱོད་མི་སྦེ་ལག་ལེན་མ་འཐབ་པའི་ཧེ་མ་ པེན་གྱི་གནས་ཚུལ་སར་བར་ཚུ་ རིམ་སྒྲིག་འབད་" "གནང་།" #: ../pan/gui/pan.cc:1009 msgid "Pan notification" msgstr "" #: ../pan/gui/post-ui.cc:186 #, c-format msgid "Upload Queue : %ld Tasks, %ld KB (~ %.2f MB) total ." msgstr "" #: ../pan/gui/post-ui.cc:286 #, fuzzy, c-format msgid "Error setting custom spellchecker: %s" msgstr "སྡེབ་དཔྱོདཔ་སྒྲིག་སྟངས་བའི་སྐབས་ལུ་འཛོལ་བ་: %s" #: ../pan/gui/post-ui.cc:291 ../pan/gui/post-ui.cc:300 #, c-format msgid "Error setting spellchecker: %s" msgstr "སྡེབ་དཔྱོདཔ་སྒྲིག་སྟངས་བའི་སྐབས་ལུ་འཛོལ་བ་: %s" #: ../pan/gui/post-ui.cc:419 msgid "_Profile" msgstr "གསལ་སྡུད་(_P)" #: ../pan/gui/post-ui.cc:420 msgid "Set Editor" msgstr "ཞུན་དགཔ་གཞི་སྒྲིག་འབད་" #: ../pan/gui/post-ui.cc:422 msgid "_Send Article" msgstr "རྩོམ་བྲིས་གཏང་(_S)" #: ../pan/gui/post-ui.cc:422 msgid "Send Article Now" msgstr "རྩོམ་བྲིས་འདི་ད་ལྟོ་ར་ གཏང་" #: ../pan/gui/post-ui.cc:423 #, fuzzy msgid "_Send and Save Articles to NZB" msgstr "པེན་: རྩོམ་བྲིས་སྲུངས་" #: ../pan/gui/post-ui.cc:423 #, fuzzy msgid "Send and Save Articles to NZB" msgstr "པེན་: རྩོམ་བྲིས་སྲུངས་" #: ../pan/gui/post-ui.cc:424 #, fuzzy msgid "Set Character _Encoding..." msgstr "ཡིག་འབྲུ་ཨེན་ཀོ་ཌིང་གཞི་སྒྲིག་འབད" #: ../pan/gui/post-ui.cc:425 #, fuzzy msgid "Set Content _Transfer Encoding..." msgstr "ཡིག་འབྲུ་ཨེན་ཀོ་ཌིང་གཞི་སྒྲིག་འབད" #: ../pan/gui/post-ui.cc:426 msgid "Sa_ve Draft" msgstr "ཟིན་བྲིས་སྲུངས་(_v)" #: ../pan/gui/post-ui.cc:426 msgid "Save as a Draft for Future Posting" msgstr "མ་འོངས་པའི་གནས་བསྐྱོད་ཀྱི་དོན་ལས་ ཟིན་བྲིས་སྦེ་སྲུངས་" #: ../pan/gui/post-ui.cc:427 msgid "_Open Draft..." msgstr "ཟིན་བྲིས་ཁ་ཕྱེ་་་་(_o)" #: ../pan/gui/post-ui.cc:427 msgid "Open an Article Draft" msgstr "རྩོམ་བྲིས་ཟིན་བྲིས་ ཁ་ཕྱེ་" #: ../pan/gui/post-ui.cc:432 msgid "_Rot13" msgstr "རོཊ་༡༣ (_R)" #: ../pan/gui/post-ui.cc:432 msgid "Rot13 Selected Text" msgstr "རོཊ་༡༣ སེལ་འཐུ་འབད་ཡོད་པའི་ཚིག་ཡིག་" #: ../pan/gui/post-ui.cc:433 msgid "Run _Editor" msgstr "ཞུན་དགཔ་གཡོག་བཀོལ་(_E)" #: ../pan/gui/post-ui.cc:433 #, fuzzy msgid "Run Editor" msgstr "ཞུན་དགཔ་གཡོག་བཀོལ་(_E)" #: ../pan/gui/post-ui.cc:435 msgid "Add _Files to Queue" msgstr "" #: ../pan/gui/post-ui.cc:435 msgid "Add Files to Queue" msgstr "" #: ../pan/gui/post-ui.cc:450 ../pan/gui/post-ui.cc:451 #, fuzzy msgid "Remove from Queue" msgstr "སར་བར་ཅིག་ རྩ་བསྐྲད་གཏང་" #: ../pan/gui/post-ui.cc:455 ../pan/gui/post-ui.cc:456 msgid "Clear List" msgstr "" #: ../pan/gui/post-ui.cc:460 ../pan/gui/post-ui.cc:461 #, fuzzy msgid "Select Needed Parts" msgstr "རྩོམ་བྲིས་ཆ་མཉམ་ སེལ་འཐུ་འབད་(_A)" #: ../pan/gui/post-ui.cc:465 ../pan/gui/post-ui.cc:466 #: ../pan/gui/task-pane.cc:636 ../pan/gui/task-pane.cc:637 msgid "Move Up" msgstr "" #: ../pan/gui/post-ui.cc:470 ../pan/gui/post-ui.cc:471 #: ../pan/gui/task-pane.cc:641 ../pan/gui/task-pane.cc:642 msgid "Move Down" msgstr "" #: ../pan/gui/post-ui.cc:475 ../pan/gui/post-ui.cc:476 msgid "Move to Top" msgstr "" #: ../pan/gui/post-ui.cc:480 ../pan/gui/post-ui.cc:481 msgid "Move to Bottom" msgstr "" #: ../pan/gui/post-ui.cc:488 msgid "_Wrap Text" msgstr "ཚིག་ཡིག་ལོག་མཚམས་བཟོ་(_W)" #: ../pan/gui/post-ui.cc:488 #, fuzzy msgid "Wrap Text" msgstr "ཚིག་ཡིག་ལོག་མཚམས་བཟོ་(_W)" #: ../pan/gui/post-ui.cc:489 #, fuzzy msgid "Always Run Editor" msgstr "ཞུན་དགཔ་གཡོག་བཀོལ་(_E)" #: ../pan/gui/post-ui.cc:490 #, fuzzy msgid "Remember Character Encoding for this Group" msgstr "སྡེ་ཚན་གྱི་དོན་ལས་ ཡིག་འབྲུའི་ཆ་ཚན་ སེམས་ཁར་བཞག་(_C)" #: ../pan/gui/post-ui.cc:491 msgid "Thread Attached Replies" msgstr "" #: ../pan/gui/post-ui.cc:492 msgid "PGP-Encrypt the Message" msgstr "" #: ../pan/gui/post-ui.cc:493 msgid "PGP-Sign the Message" msgstr "" #: ../pan/gui/post-ui.cc:494 msgid "Check _Spelling" msgstr "ཡིག་སྡེབ་ ཞིབ་དཔྱད་འབད་(_S)" #: ../pan/gui/post-ui.cc:520 #, fuzzy msgid "New Article's Encoding:" msgstr "ཡིག་འབྲུ་ཨེན་ཀོ་ཌིང་གཞི་སྒྲིག་འབད" #: ../pan/gui/post-ui.cc:530 #, fuzzy msgid "Content Transfer Encoding" msgstr "ཡིག་འབྲུ་ཨེན་ཀོ་ཌིང་(_E)" #: ../pan/gui/post-ui.cc:531 #, fuzzy msgid "New Article's Content Transfer Encoding:" msgstr "ཡིག་འབྲུ་ཨེན་ཀོ་ཌིང་གཞི་སྒྲིག་འབད" #: ../pan/gui/post-ui.cc:711 msgid "Your changes will be lost!" msgstr "ཁྱོད་ཀྱི་བསྒྱུར་བཅོས་ཚུ་ བརླག་སྟོར་ཞུགས་འོང་!" #: ../pan/gui/post-ui.cc:712 msgid "Close this window and lose your changes?" msgstr "སྒོ་སྒྲིག་འདི་ཁ་བསྡམ་ཏེ་ ཁྱོད་རའི་བསྒྱུར་བཅོས་ཚུ་བྱང་སྟོར་ཤོར་བཅུག་ནི་ཨིན་ན་?" #: ../pan/gui/post-ui.cc:757 ../pan/gui/post-ui.cc:796 msgid "There were problems with this post." msgstr "འགྲེམ་སྐྱེལ་འདི་ལུ་ དཀའ་ངལ་ཡོདཔ་ཨིན་པས།" #: ../pan/gui/post-ui.cc:759 ../pan/gui/post-ui.cc:798 #: ../pan/gui/post-ui.cc:861 msgid "Go Back" msgstr "ལོག་འགྱོ་" #: ../pan/gui/post-ui.cc:761 msgid "Post Anyway" msgstr "ག་དེ་འབད་རུང་ འགྲེམ་སྐྱེལ་འབད་" #. Prompt the user #: ../pan/gui/post-ui.cc:790 #, c-format msgid "" "Message uses characters not specified in charset '%s' - possibly use '%s' " msgstr "" "འཕྲིན་དོན་འདི་གིས་ ཡིག་འབྲུའི་ཆ་ཚན་ '%s' ནང་གསལ་བཀོད་མ་འབད་བའི་ཡིག་འབྲུ་ཚུ་ནང་ལག་ལེན་འཐབ་ཨིན་-" "དེ་ཡང་ '%s' ལག་ལེན་འཐབ་ནིའི་འོས་འབབ་ཡོདཔ་ཨིན་" #: ../pan/gui/post-ui.cc:813 msgid "Go _Online" msgstr "ཨཱོན་ལ་ཡིན་ཐོག་ལུ་སྡོད་(_O)" #: ../pan/gui/post-ui.cc:860 msgid "The file queue is empty, so no files can be saved." msgstr "" #: ../pan/gui/post-ui.cc:1019 msgid "" "No posting server is set for this posting profile.\n" "Please edit the profile via Edit|Manage Posting Profiles." msgstr "" "གནས་བསྐྱོད་གསལ་སྡུད་འདི་གི་དོན་ལུ་ གནས་བསྐྱོད་སར་བར་གཞི་སྒྲིག་མ་འབད་བས།\n" "ཞུན་དག་|འཛིན་སྐྱོང་གནས་བསྐྱོད་གསལ་སྡུད་ལས་བརྒྱུད་དེ་ ཞུན་དག་འབད་གནང་།" #: ../pan/gui/post-ui.cc:1054 msgid "Pan is Offline." msgstr "པེན་འདི་ ཨཱོཕ་ལ་ཡིན་ཨིན།" #: ../pan/gui/post-ui.cc:1055 msgid "Go online to post the article?" msgstr "རྩོམ་བྲིས་འགྲེམ་སྐྱེལ་འབད་ནི་ལུ་ ཨཱོན་ལ་ཡིན་སྦེ་སྡོད་ནི་ཨིན་ན་?" #: ../pan/gui/post-ui.cc:1102 #, c-format msgid "" "Error signing/encrypting your message. Perhaps you misspelled your email-" "address (%s) ?" msgstr "" #: ../pan/gui/post-ui.cc:1267 msgid "Error opening temporary file" msgstr "གནས་སྐབས་ཀྱི་ཡིག་སྣོད་ཁ་ཕྱེ་བའི་སྐབས་ལུ་ འཛོལ་བ་" #: ../pan/gui/post-ui.cc:1279 #, c-format msgid "Error writing article to temporary file: %s" msgstr "གནས་སྐབས་ཡིག་སྣོད་ལུ་བྲིས་བའི་སྐབས་ལུ་ འཛོལ་བ་: %s" #: ../pan/gui/post-ui.cc:1298 #, c-format msgid "Error parsing \"external editor\" command line: %s (Command was: %s)" msgstr "" "བརྡ་བཀོད་གྲལ་ཐིག་ \"external editor\" མིང་དཔྱད་འབད་བའི་སྐབས་ལུ་འཛོལ་བ་: %s(བརྡ་བཀོད་འདི་: " "%s ཨིན་མས་)" #: ../pan/gui/post-ui.cc:1339 #, c-format msgid "Error starting external editor: %s" msgstr "ཕྱིའི་ཞུན་དགཔ་འགོ་བཙུག་པའི་སྐབས་ལུ་ འཛོལ་བ་: %s" #: ../pan/gui/post-ui.cc:1395 msgid "Open Draft Article" msgstr "ཟིན་བྲིས་རྩོམ་བྲིས་ ཁ་ཕྱེ་" #: ../pan/gui/post-ui.cc:1606 msgid "Save Draft Article" msgstr "ཟིན་བྲིས་རྩོམ་བྲིས་ སྲུངས་" #: ../pan/gui/post-ui.cc:1803 #, c-format msgid "Couldn't parse signature command \"%s\": %s" msgstr "མིང་རྟགས་བརྡ་བཀོད་ \"%s\": %s མིང་དཔྱད་འབད་མ་ཚུགས་" #: ../pan/gui/post-ui.cc:1839 msgid "Couldn't convert signature to UTF-8." msgstr "མིང་རྟགས་འདི་ ཡུ་ཊི་ཨེཕ་ -༨ ལུ་གཞི་བསྒྱུར་འབད་མ་ཚུགས།" #: ../pan/gui/post-ui.cc:2334 msgid "F_rom" msgstr "ལས་(_r)" #: ../pan/gui/post-ui.cc:2352 msgid "_Subject" msgstr "དོན་ཚན་(_S)" #: ../pan/gui/post-ui.cc:2365 msgid "_Newsgroups" msgstr "གནས་ཚུལ་སྡེ་ཚན་(_N)" #: ../pan/gui/post-ui.cc:2379 #, fuzzy msgid "Mail _To" msgstr "འཕྲིན་དོན་(_M)" #: ../pan/gui/post-ui.cc:2481 msgid "Delete from Queue" msgstr "" #: ../pan/gui/post-ui.cc:2494 msgid "No." msgstr "" #: ../pan/gui/post-ui.cc:2498 ../pan/gui/post-ui.cc:2592 #: ../pan/gui/post-ui.cc:2633 #, fuzzy msgid "Filename" msgstr "ཡིག་སྣོད་(_F)" #: ../pan/gui/post-ui.cc:2500 msgid "Size (kB)" msgstr "" #: ../pan/gui/post-ui.cc:2600 msgid "The current filename" msgstr "" #: ../pan/gui/post-ui.cc:2604 #, fuzzy msgid "Subject Line" msgstr "དོན་ཚན་" #: ../pan/gui/post-ui.cc:2612 msgid "The current Subject Line" msgstr "" #: ../pan/gui/post-ui.cc:2626 msgid "No. " msgstr "" #: ../pan/gui/post-ui.cc:2630 msgid "Enable/Disable" msgstr "" #: ../pan/gui/post-ui.cc:2664 msgid "Follo_wup-To" msgstr "བཤུལ་དཔྱད་འབད་(_w)" #. i18n: "poster" is a key used by many newsreaders. probably safest to keep this key in english. #: ../pan/gui/post-ui.cc:2673 msgid "" "The newsgroups where replies to your message should go. This is only needed " "if it differs from the \"Newsgroups\" header.\n" "\n" "To direct all replies to your email address, use \"Followup-To: poster\"" msgstr "" "ཁྱོད་ཀྱི་འགྲེམ་སྐྱེལ་འབད་ཡོད་པའི་འཕྲིན་དོན་ལུ་ལན་གསལ་འབདཝ་ཨིན་པའི་གནས་ཚུལ་སྡེ་ཚན་འདི་འགྱོ་དགོཔ་ཨིན། དེ་" "ཡང་ མགོ་ཡིག་ \"Newsgroups\" ལས་ སོར་སོ་ཨིན་པ་ཅིན་རྐྱངམ་ཅིག་དགོཔ་ཨིན།\n" "\n" "ལན་གསལ་ཆ་མཉམ་ཁྱོད་རའི་གློག་འཕྲིན་ག་བྱང་ལུ་ ཁ་ཕྱོགས་གཏད་དགོ་པ་ཅིན་ \"Followup-To: poster" "\" ལག་ལེན་འཐབ་" #: ../pan/gui/post-ui.cc:2679 msgid "_Reply-To" msgstr "ལན་གསལ་འབད་(_R)" #: ../pan/gui/post-ui.cc:2687 msgid "" "The email account where mail replies to your posted message should go. This " "is only needed if it differs from the \"From\" header." msgstr "" "ཡིག་འཕྲིན་གྱིས་ ཁྱོད་ཀྱི་འགྲེམ་སྐྱེལ་འབད་ཡོད་པའི་འཕྲིན་དོན་ལུ་ལན་གསལ་འབདཝ་ཨིན་པའི་གློག་འཕྲིན་རྩིས་ཐོ་འདི་ " "འགྱོ་དགོཔ་ཨིན། དེ་ཡང་ མགོ་ཡིག་ \"From\" ལས་ སོར་སོ་ཨིན་པ་ཅིན་རྐྱངམ་ཅིག་དགོཔ་ཨིན།" #: ../pan/gui/post-ui.cc:2693 msgid "_Custom Headers" msgstr "སྲོལ་སྒྲིག་མགོ་ཡིག་(_C)" #: ../pan/gui/post-ui.cc:2717 msgid "Add \"_User-Agent\" header" msgstr "\"_User-Agent\" མགོ་ཡིག་ ཁ་སྐོང་རྐྱབས་" #: ../pan/gui/post-ui.cc:2724 #, fuzzy msgid "Add \"Message-_Id\" header" msgstr "\"འཕྲིན་དོན་-ཨའི་ཌི་ མགོ་ཡིག་ ཁ་སྐོང་རྐྱབས་(_I) " #: ../pan/gui/post-ui.cc:2855 #, fuzzy msgid "Select Parts" msgstr "རྩོམ་བྲིས་ཆ་མཉམ་ སེལ་འཐུ་འབད་(_A)" #: ../pan/gui/post-ui.cc:2866 msgid "_Parts" msgstr "" #: ../pan/gui/post-ui.cc:3022 msgid "Post Article" msgstr "རྩོམ་བྲིས་འགྲེམ་སྐྱེལ་འབད་" #: ../pan/gui/post-ui.cc:3043 msgid "_Message" msgstr "འཕྲིན་དོན་(_M)" #: ../pan/gui/post-ui.cc:3044 msgid "More _Headers" msgstr "མགོ་ཡིག་ལེ་ཤ་(_H)" #: ../pan/gui/post-ui.cc:3045 msgid "File _Queue" msgstr "" #: ../pan/gui/post-ui.cc:3077 ../pan/gui/profiles-dialog.cc:478 #, no-c-format msgid "On %d, %n wrote:" msgstr "%d གུ་ %n གིས་བྲིས་ཡོདཔ་:" #: ../pan/gui/post-ui.cc:3106 msgid "Add files to queue" msgstr "" #: ../pan/gui/post-ui.cc:3184 msgid "Save Upload Queue as NZB File" msgstr "" #: ../pan/gui/prefs.cc:343 #, c-format msgid "Couldn't parse %s color \"%s\"" msgstr "%s ཚོས་གཞི་ \"%s\" མིང་དཔྱད་འབད་མ་ཚུགས་" #: ../pan/gui/prefs-ui.cc:120 msgid "Grab Key" msgstr "" #: ../pan/gui/prefs-ui.cc:126 #, c-format msgid "" "Press the combination of the keys\n" "you want to use for \"%s\"." msgstr "" #: ../pan/gui/prefs-ui.cc:166 msgid "Edit Hotkey" msgstr "" #: ../pan/gui/prefs-ui.cc:228 msgid "Error: Shortkey is invalid!" msgstr "" #: ../pan/gui/prefs-ui.cc:244 msgid "Error: Shortkey already exists!" msgstr "" #: ../pan/gui/prefs-ui.cc:535 #, fuzzy msgid "Show only icons" msgstr "རྩོམ་བྲིས་བརྡ་དོན་སྟོན་" #: ../pan/gui/prefs-ui.cc:536 #, fuzzy msgid "Show only text" msgstr "མ་གཟུགས་པེན་ སྟོན་(_y)" #: ../pan/gui/prefs-ui.cc:537 #, fuzzy msgid "Show icons and text" msgstr "མཉམ་སྦྲགས་དང་ཚིག་ཡིག་སྲུངས་" #: ../pan/gui/prefs-ui.cc:576 msgid "Use GNOME Preferences" msgstr "ཇི་ནོམ་ དགའ་གདམ་ཚུ་ ལག་ལེན་འཐབ་" #: ../pan/gui/prefs-ui.cc:577 msgid "Use KDE Preferences" msgstr "ཀེ་ཌི་ཨི་ དགའ་གདམ་ཚུ་ ལག་ལེན་འཐབ་" #: ../pan/gui/prefs-ui.cc:578 msgid "Use OS X Preferences" msgstr "ཨོ་ཨེསི་ ཨེགསི་ དགའ་གདམ་ཚུ་" #: ../pan/gui/prefs-ui.cc:579 msgid "Use Windows Preferences" msgstr "སྒོ་སྒྲིག་དགའ་གདམ་ཚུ་ ལག་ལེན་འཐབ་" #: ../pan/gui/prefs-ui.cc:580 msgid "Custom Command:" msgstr "སྲོལ་སྒྲིག་བརྡ་བཀོད་:" #: ../pan/gui/prefs-ui.cc:632 #, fuzzy msgid "Disabled" msgstr "ལྕོགས་ཅན་བཟོ་ཡོདཔ་" #: ../pan/gui/prefs-ui.cc:633 msgid "Only new (Score == 0)" msgstr "" #: ../pan/gui/prefs-ui.cc:634 #, fuzzy msgid "9999 or more" msgstr "༩༩༩༩ ཡང་ན་ གཞན་ཡང་ལེ་ཤ་ཅིག་གི་སྐུགས་:" #: ../pan/gui/prefs-ui.cc:635 #, fuzzy msgid "5000 to 9998" msgstr "༥༠༠༠ ལས་ ༩༩༩༨ ཚུན་གྱི་སྐུགས་:" #: ../pan/gui/prefs-ui.cc:636 msgid "1 to 4999" msgstr "" #: ../pan/gui/prefs-ui.cc:637 #, fuzzy msgid "-9998 to -1" msgstr "-༩༩༩༩ ལས་ -༡ ཚུན་གྱི་སྐུགས་:" #: ../pan/gui/prefs-ui.cc:638 #, fuzzy msgid "-9999 or less" msgstr "-༩༩༩༩ ཡང་ན་ དེ་ལས་ཉུང་མི་གི་སྐུགས་:" #: ../pan/gui/prefs-ui.cc:702 #, c-format msgid "Select default global charset. Current setting : %s ." msgstr "" #: ../pan/gui/prefs-ui.cc:738 msgid "Global Charset Settings" msgstr "" #: ../pan/gui/prefs-ui.cc:832 ../pan/gui/task-pane.cc:770 msgid "State" msgstr "གནས་ལུགས་" #: ../pan/gui/prefs-ui.cc:866 msgid "Enabled" msgstr "ལྕོགས་ཅན་བཟོ་ཡོདཔ་" #: ../pan/gui/prefs-ui.cc:870 msgid "Column Name" msgstr "ཀེར་ཐིག་མིང་" #: ../pan/gui/prefs-ui.cc:908 msgid "Pan: Preferences" msgstr "པེན་: དགའ་གདམ་ཚུ་" #: ../pan/gui/prefs-ui.cc:923 msgid "Mouse" msgstr "མཱའུསི་" #: ../pan/gui/prefs-ui.cc:925 msgid "Single-click activates, rather than selects, _groups" msgstr "ཨེབ་གཏང་རྐྱང་པ་གིས་ ཤུགས་ལྡན་བཟོཝ་ཨིན་ སེལ་འཐུ་འབད་ནིའི་ཚབ་ལུ་ སྡེ་ཚན་ཚུ་(_g)" #: ../pan/gui/prefs-ui.cc:927 msgid "Single-click activates, rather than selects, _articles" msgstr "ཨེབ་གཏང་རྐྱང་པ་གིས་ ཤུགས་ལྡན་བཟོཝ་ཨིན་ སེལ་འཐུ་འབད་ནིའི་ཚབ་ལུ་ རྩོམ་བྲིས་ཚུ་(_a)" #: ../pan/gui/prefs-ui.cc:930 msgid "Groups" msgstr "སྡེ་ཚན་ཚུ་" #: ../pan/gui/prefs-ui.cc:932 msgid "Get new headers in subscribed groups on _startup" msgstr "མཁོ་མངགས་འབད་ཡོད་པའི་སྡེ་ཚན་ནང་གི་ འགོ་བཙུག་སྐབས་ མགོ་ཡིག་གསརཔ་ཚུ་ལེན་(_s)" #: ../pan/gui/prefs-ui.cc:934 msgid "Get new headers when _entering group" msgstr "སྡེ་ནང་འཛུལ་བའི་ཚེ་ མགོ་ཡིག་གསརཔ་ལེན་(_e)" #: ../pan/gui/prefs-ui.cc:936 msgid "Mark entire group _read when leaving group" msgstr "སྡེ་ཚན་བཀོག་བཞག་པའི་ཚེ་ སྡེ་ཚན་ལྷག་ནི་ཧྲིལ་བུ་སྦེ་རྟགས་བཀལ་(_r)" #: ../pan/gui/prefs-ui.cc:938 msgid "Mark entire group read before getting _new headers" msgstr "མགོ་ཡིག་གསརཔ་མ་འཐོབ་པའི་ཧེ་མ་ལས་ སྡེ་ཚན་ལྷག་ནི་ཧྲིལ་བུ་གུ་རྟགས་བཀལ་(_n)" #: ../pan/gui/prefs-ui.cc:940 msgid "E_xpand all threads when entering group" msgstr "སྡེ་ཚན་འཛུལ་བའི་སྐབས་ལུ་ ཐེརེཌིསི་ཆ་མཉམ་ རྒྱ་འཕར་བཟོ་(_x)" #: ../pan/gui/prefs-ui.cc:945 msgid "Articles" msgstr "རྩོམ་བྲིས་" #: ../pan/gui/prefs-ui.cc:947 msgid "Space selects next article rather than next unread" msgstr "བར་སྟོང་གིས་ མ་ལྷགཔ་ཤུལ་མམ་གྱི་ཚབ་ལུ་ ཤུལ་མའི་རྩོམ་བྲིས་ སེལ་འཐུ་འབདཝ་ཨིན་" #: ../pan/gui/prefs-ui.cc:949 #, fuzzy msgid "Expand threads upon selection" msgstr "སེལ་འཐུ་ལུ་ ཐེརེཌིསི་ཁ་སྐོང་རྐྱབས་(_T)" #: ../pan/gui/prefs-ui.cc:951 msgid "Always show article deletion confirmation dialog" msgstr "" #: ../pan/gui/prefs-ui.cc:953 msgid "Smooth scrolling" msgstr "ཧུམ་ཁྱུག་ཁྱུག་ བཤུད་སྒྲིལ་འབད་དོ་" #: ../pan/gui/prefs-ui.cc:958 #, fuzzy msgid "Article Cache" msgstr "རྩོམ་བྲིས་འདྲ་མཛོད་ བསལ་" #: ../pan/gui/prefs-ui.cc:959 msgid "Clear article cache on shutdown" msgstr "སྒོ་བསྡམ་པའི་སྐབས་ལུ་ རྩོམ་བྲིས་འདྲ་མཛོད་བསལ་" #: ../pan/gui/prefs-ui.cc:962 msgid "Size of article cache (in MiB) :" msgstr "" #: ../pan/gui/prefs-ui.cc:967 #, fuzzy msgid "File extension for Cached Articles: " msgstr "ཤུལ་མའི་བལྟ་ཡོད་པའི་རྩོམ་བྲིས་" #: ../pan/gui/prefs-ui.cc:972 msgid "Tabs" msgstr "" #: ../pan/gui/prefs-ui.cc:977 msgid "_Behavior" msgstr "བྱ་སྤྱོད་(_B)" #: ../pan/gui/prefs-ui.cc:977 #, fuzzy msgid "Behavior" msgstr "བྱ་སྤྱོད་(_B)" #: ../pan/gui/prefs-ui.cc:983 #, fuzzy msgid "Language Settings" msgstr "སྒྲིག་སྟངས་ཚུ་" #. systray and notify popup #: ../pan/gui/prefs-ui.cc:992 #, fuzzy msgid "System Tray Behavior" msgstr "བྱ་སྤྱོད་(_B)" #: ../pan/gui/prefs-ui.cc:994 msgid "Hide to system tray" msgstr "" #: ../pan/gui/prefs-ui.cc:996 msgid "Start Pan minimized" msgstr "" #: ../pan/gui/prefs-ui.cc:999 #, fuzzy msgid "Show notifications" msgstr "རྩོམ་བྲིས་བརྡ་དོན་སྟོན་" #. allow multiple instances (seperate, not communicating with dbus) #: ../pan/gui/prefs-ui.cc:1004 #, fuzzy msgid "Startup Behavior" msgstr "བྱ་སྤྱོད་(_B)" #: ../pan/gui/prefs-ui.cc:1006 msgid "Allow multiple instances of Pan" msgstr "" #: ../pan/gui/prefs-ui.cc:1011 #, fuzzy msgid "Autosave Article Draft" msgstr "རྩོམ་བྲིས་ཟིན་བྲིས་ ཁ་ཕྱེ་" #: ../pan/gui/prefs-ui.cc:1013 #, fuzzy msgid "Minutes to autosave the current Article Draft: " msgstr "རྩོམ་བྲིས་ཟིན་བྲིས་ ཁ་ཕྱེ་" #: ../pan/gui/prefs-ui.cc:1018 #, fuzzy msgid "Autosave Articles" msgstr "རྩོམ་བྲིས་སྲུངས་" #: ../pan/gui/prefs-ui.cc:1020 msgid "Minutes to autosave newsrc files: " msgstr "" #: ../pan/gui/prefs-ui.cc:1026 msgid "_Miscellaneous" msgstr "" #: ../pan/gui/prefs-ui.cc:1026 msgid "Miscellaneous" msgstr "" #: ../pan/gui/prefs-ui.cc:1031 msgid "Pane Layout" msgstr "པེན་སྒྲིག་བཀོད་" #: ../pan/gui/prefs-ui.cc:1050 msgid "1=Groups, 2=Headers, 3=Body" msgstr "༡=སྡེ་ཚན་ ༢=མགོ་ཡིག་ ༣=མ་གཟུགས་" #: ../pan/gui/prefs-ui.cc:1052 msgid "1=Groups, 2=Body, 3=Headers" msgstr "༡=སྡེ་ཚན་ ༢=མ་གཟུགས་ ༣=མགོ་ཡིག་" #: ../pan/gui/prefs-ui.cc:1054 msgid "1=Headers, 2=Groups, 3=Body" msgstr "༡=མགོ་ཡིག་ ༢=སྡེ་ཚན་ ༣=མ་གཟུགས་" #: ../pan/gui/prefs-ui.cc:1056 msgid "1=Headers, 2=Body, 3=Groups" msgstr "༡=མགོ་ཡིག་ ༢=མ་གཟུགས་ ༣=སྡེ་ཚན་" #: ../pan/gui/prefs-ui.cc:1058 msgid "1=Body, 2=Groups, 3=Headers" msgstr "༡=མ་གཟུགས་ ༢=སྡེ་ཚན་ ༣=མགོ་ཡིག་" #: ../pan/gui/prefs-ui.cc:1060 msgid "1=Body, 2=Headers, 3=Groups" msgstr "༡=མ་གཟུགས་ ༢=མགོ་ཡིག་ ༣=སྡེ་ཚན་" #: ../pan/gui/prefs-ui.cc:1064 #, fuzzy msgid "Layout" msgstr "སྒྲིག་བཀོད་(_L)" #: ../pan/gui/prefs-ui.cc:1069 msgid "Header Pane Columns" msgstr "མགོ་ཡིག་ པེན་ ཀེར་ཐིག་ཚུ་" #: ../pan/gui/prefs-ui.cc:1073 msgid "_Headers" msgstr "མགོ་ཡིག་ཚུ་(_H)" #: ../pan/gui/prefs-ui.cc:1073 #, fuzzy msgid "Headers" msgstr "མགོ་ཡིག་ཚུ་(_H)" #: ../pan/gui/prefs-ui.cc:1079 msgid "" "This menu lets you configure Pan to take certain actions on your behalf " "automatically, based on a post's score." msgstr "" #: ../pan/gui/prefs-ui.cc:1082 msgid "_Delete posts scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1084 msgid "Mark posts _read scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1086 msgid "_Cache posts scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1088 msgid "Download _attachments of posts scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1091 #, fuzzy msgid "Actions" msgstr "བྱ་བ་(_A)" #: ../pan/gui/prefs-ui.cc:1096 ../pan/gui/prefs-ui.cc:1117 msgid "Fonts" msgstr "ཡིག་གཟུགས་" #: ../pan/gui/prefs-ui.cc:1098 msgid "Use custom font in Group Pane:" msgstr "སྡེ་ཚན་པེན་ནང་ལུ་ སྲོལ་སྒྲིག་ཡིག་གཟུགས་ ལག་ལེན་འཐབ་:" #: ../pan/gui/prefs-ui.cc:1103 msgid "Use custom font in Header Pane:" msgstr "མགོ་ཡིག་པེན་ནང་ལུ་ སྲོལ་སྒྲིག་ཡིག་གཟུགས་ ལག་ལེན་འཐབ་:" #: ../pan/gui/prefs-ui.cc:1108 msgid "Use custom font in Body Pane:" msgstr "མ་གཟུགས་པེན་ནང་ལུ་ སྲོལ་སྒྲིག་ཡིག་གཟུགས་ ལག་ལེན་འཐབ་:" #: ../pan/gui/prefs-ui.cc:1113 msgid "Monospace font:" msgstr "མོ་ནོ་སིཔེསི་ཡིག་གཟུགས་:" #: ../pan/gui/prefs-ui.cc:1117 msgid "_Fonts" msgstr "ཡིག་གཟུགས་ཚུ་(_F)" #: ../pan/gui/prefs-ui.cc:1122 msgid "Header Pane" msgstr "མགོ་ཡིག་པེན་" #: ../pan/gui/prefs-ui.cc:1125 ../pan/gui/prefs-ui.cc:1131 #: ../pan/gui/prefs-ui.cc:1137 ../pan/gui/prefs-ui.cc:1143 #: ../pan/gui/prefs-ui.cc:1149 ../pan/gui/prefs-ui.cc:1155 msgid "Text:" msgstr "ཚིག་ཡིག་:" #: ../pan/gui/prefs-ui.cc:1127 ../pan/gui/prefs-ui.cc:1133 #: ../pan/gui/prefs-ui.cc:1139 ../pan/gui/prefs-ui.cc:1145 #: ../pan/gui/prefs-ui.cc:1151 ../pan/gui/prefs-ui.cc:1157 msgid "Background:" msgstr "རྒྱབ་གཞི་:" #: ../pan/gui/prefs-ui.cc:1129 msgid "Scores of 9999 or more:" msgstr "༩༩༩༩ ཡང་ན་ གཞན་ཡང་ལེ་ཤ་ཅིག་གི་སྐུགས་:" #: ../pan/gui/prefs-ui.cc:1135 msgid "Scores from 5000 to 9998:" msgstr "༥༠༠༠ ལས་ ༩༩༩༨ ཚུན་གྱི་སྐུགས་:" #: ../pan/gui/prefs-ui.cc:1141 msgid "Scores from 1 to 4999:" msgstr "༡ ལས་ ༤༩༩༩ ཚུན་གྱི་སྐུགས་:" #: ../pan/gui/prefs-ui.cc:1147 msgid "Scores from -9998 to -1:" msgstr "-༩༩༩༩ ལས་ -༡ ཚུན་གྱི་སྐུགས་:" #: ../pan/gui/prefs-ui.cc:1153 msgid "Scores of -9999 or less:" msgstr "-༩༩༩༩ ཡང་ན་ དེ་ལས་ཉུང་མི་གི་སྐུགས་:" #: ../pan/gui/prefs-ui.cc:1159 msgid "Read collapsed thread:" msgstr "" #: ../pan/gui/prefs-ui.cc:1161 msgid "Body Pane" msgstr "མ་གཟུགས་ པེན་" #: ../pan/gui/prefs-ui.cc:1167 #, fuzzy msgid "Quoted text:" msgstr "འདྲེན་ཚིག་བཀོད་ཡོད་པའི་ཚིག་ཡིག་:" #: ../pan/gui/prefs-ui.cc:1168 msgid "URL:" msgstr "ཡུ་ཨར་ཨེལ་:" #: ../pan/gui/prefs-ui.cc:1169 msgid "Signature:" msgstr "མིང་རྟགས་:" #: ../pan/gui/prefs-ui.cc:1171 msgid "_Colors" msgstr "ཚོས་གཞི་(_C)" #: ../pan/gui/prefs-ui.cc:1171 #, fuzzy msgid "Colors" msgstr "ཚོས་གཞི་(_C)" #: ../pan/gui/prefs-ui.cc:1176 msgid "Preferred Applications" msgstr "དགའ་གདམ་ཅན་གྱི་གློག་རིམ་ཚུ་" #: ../pan/gui/prefs-ui.cc:1180 #, fuzzy msgid "_Web browser:" msgstr "ཝེབ་ བརའུ་ཟར་:(_W)" #: ../pan/gui/prefs-ui.cc:1183 #, fuzzy msgid "_Mail reader:" msgstr "ཡིག་འཕྲིན་ལྷག་མི་:(_M)" #: ../pan/gui/prefs-ui.cc:1185 #, fuzzy msgid "_Text editor:" msgstr "ཞུན་དགཔ་གཞི་སྒྲིག་འབད་" #: ../pan/gui/prefs-ui.cc:1187 #, fuzzy msgid "_Applications" msgstr "གློག་རིམ་ཚུ་(_p)" #: ../pan/gui/prefs-ui.cc:1187 #, fuzzy msgid "Applications" msgstr "གློག་རིམ་ཚུ་(_p)" #: ../pan/gui/prefs-ui.cc:1192 ../pan/gui/task-pane.cc:512 #, fuzzy msgid "Encoding" msgstr "ཌི་ཀོཌིང་" #: ../pan/gui/prefs-ui.cc:1196 msgid "Default bytes per file (for encoder): " msgstr "" #: ../pan/gui/prefs-ui.cc:1201 #, fuzzy msgid "_Upload" msgstr "གློག་རིམ་ཚུ་(_p)" #: ../pan/gui/prefs-ui.cc:1201 msgid "Upload" msgstr "" #: ../pan/gui/prefs-ui.cc:1219 msgid "_Hotkeys" msgstr "" #: ../pan/gui/prefs-ui.cc:1219 msgid "Hotkeys" msgstr "" #: ../pan/gui/profiles-dialog.cc:83 msgid "Please choose your Email Address according to your PGP key's user id." msgstr "" #: ../pan/gui/profiles-dialog.cc:131 msgid "Posting Profile" msgstr "གནས་བསྐྱོད་གསལ་སྡུད་" #: ../pan/gui/profiles-dialog.cc:143 msgid "Profile Information" msgstr "གསལ་སྡུད་བརྡ་དོན་" #: ../pan/gui/profiles-dialog.cc:147 msgid "_Profile Name:" msgstr "གསལ་སྡུད་མིང་:(_P)" #: ../pan/gui/profiles-dialog.cc:150 msgid "Required Information" msgstr "དགོས་མཁོ་ཡོད་པའི་བརྡ་དོན་" #: ../pan/gui/profiles-dialog.cc:154 msgid "_Full Name:" msgstr "མིང་ཆ་ཚང་:(_F)" #: ../pan/gui/profiles-dialog.cc:158 msgid "" "Your Email Address.\n" "Note that this has to match your PGP Signature's Address\n" "if you want to PGP-Sign or Encrypt your messages correctly." msgstr "" #: ../pan/gui/profiles-dialog.cc:162 msgid "_Email Address:" msgstr "གློག་འཕྲིན་ཁ་བྱང་:(_E)" #: ../pan/gui/profiles-dialog.cc:164 msgid "_Post Articles via:" msgstr "རྩོམ་བྲིས་འགྲེམ་སྐྱེལ་འབད་:(_P)" #: ../pan/gui/profiles-dialog.cc:167 msgid "Signature" msgstr "མིང་རྟགས་" #: ../pan/gui/profiles-dialog.cc:170 msgid "_Use a Signature" msgstr "མིང་རྟགས་ཅིག་ ལག་ལེན་འཐབ་(_U)" #: ../pan/gui/profiles-dialog.cc:174 msgid "Signature File" msgstr "མིང་རྟགས་ཡིག་སྣོད་" #: ../pan/gui/profiles-dialog.cc:184 msgid "Text File" msgstr "ཚིག་ཡིག་ཡིག་སྣོད་" #: ../pan/gui/profiles-dialog.cc:186 msgid "Text" msgstr "ཚིག་ཡིག་" #: ../pan/gui/profiles-dialog.cc:188 msgid "Command" msgstr "བརྡ་བཀོད་" #: ../pan/gui/profiles-dialog.cc:191 #, fuzzy msgid "PGP Signature" msgstr "མིང་རྟགས་" #: ../pan/gui/profiles-dialog.cc:196 #, fuzzy msgid "Signature Type : " msgstr "མིང་རྟགས་དབྱེ་བ་:(_T)" #: ../pan/gui/profiles-dialog.cc:223 msgid "X-Face (Avatar)" msgstr "" #: ../pan/gui/profiles-dialog.cc:226 msgid "" "You can add an avatar icon to your articles with a unique X-Face code. \n" "Add the code without the trailing \"X-Face:\" \n" " if it was generated by a helper program (for example http://www.dairiki.org/" "xface/xface.php)." msgstr "" #: ../pan/gui/profiles-dialog.cc:229 msgid "_X-Face:" msgstr "" #: ../pan/gui/profiles-dialog.cc:231 msgid "Optional Information" msgstr "གདམ་ཁ་ཅན་གྱི་བརྡ་དོན་" #: ../pan/gui/profiles-dialog.cc:236 #, fuzzy msgid "" "When posting to Usenet, your article's Message-ID contains a domain name. \n" "You can set a custom domain name here, or leave it blank to let Pan use the " "domain name from your email address." msgstr "" "ཡུསི་ནེཊི་ལུ་གནས་བསྐྱོད་འབད་བའི་ཚེ་ ཁྱོད་རའི་རྩོམ་བྲིས་ཀྱི་འཕྲིན་དོན་-ཨའི་ཌི་ནང་ ཌོ་མཱེན་མིང་ཅིག་ཡོདཔ་ཨིན། " "དེ་ཁར་ཁྱོད་ཀྱིས་ ཌོ་མཱེན་སྲོལ་སྒྲིག་ཅིག་ གཞི་སྒྲིག་འབད་ཚུགས་ ཡང་ན་ པེན་གྱིས་ཁྱོད་ཀྱི་གློག་ཁ་བྱང་ནང་ལས་ ཌོ་" "མཱེན་མིང་ ལག་ལེན་འཐབ་བཅུག་ནི་ལུ་ སྟོངམ་སྦེ་བཞག" #: ../pan/gui/profiles-dialog.cc:239 msgid "Message-ID _Domain Name:" msgstr "འཕྲིན་དོན་-ཨའི་ཌི་ ཌོ་མཱེན་མིང་:(_D)" #: ../pan/gui/profiles-dialog.cc:243 #, c-format msgid "" "%i for Message-ID\n" "%a for Author and Address\n" "%n for Author name\n" "%d for Date" msgstr "" "འཕྲིན་དོན་-ཨའི་ཌིའི་ཚབ་ལུ་ %i \n" "རྩོམ་པ་པོ་དང་ཁ་བྱང་གི་ཚབ་ལུ་ %a\n" "རྩོམ་པ་པོའི་མིང་ཚབ་ལུ་%n \n" "ཚེས་གྲངས་ཀྱི་ཚབ་ལུ་%d " #: ../pan/gui/profiles-dialog.cc:244 msgid "_Attribution:" msgstr "ཁྱད་ཆོས་:(_A)" #: ../pan/gui/profiles-dialog.cc:268 #, fuzzy msgid "" "Extra headers to be included in your posts, such as\n" "Reply-To: \"Your Name\"\n" "Organization: Your Organization\n" msgstr "" "ཁྱོད་ཀྱི་འགྲེམ་སྐྱེལ་གྲངས་སུ་བཙུག་དགོ་པའི་མགོ་ཡིག་ཐེབས་ཚུ་དཔེར་ན་ \n" "ལན་གསལ་: \"Your Name\" \n" "ཚོགས་སྡེ་: ཁྱོད་རའི་ཚོགས་སྡེ་" #: ../pan/gui/profiles-dialog.cc:278 msgid "E_xtra Headers:" msgstr "མགོ་ཡིག་ཐེབས་:(_x)" #: ../pan/gui/profiles-dialog.cc:323 msgid "Invalid email address." msgstr "ནུས་མེད་ཀྱི་གློག་འཕྲིན་ཁ་བྱང་།" #: ../pan/gui/profiles-dialog.cc:324 msgid "Please use an address of the form joe@somewhere.org" msgstr "joe@somewhere.org གི་ཁ་བྱང་འདི་ལག་ལེན་འཐབ་གནང་" #: ../pan/gui/profiles-dialog.cc:479 msgid "New Profile" msgstr "གསལ་སྡུད་གསརཔ་" #: ../pan/gui/profiles-dialog.cc:525 msgid "Posting Profiles" msgstr "གནས་བསྐྱོད་གསལ་སྡུད་" #: ../pan/gui/profiles-dialog.cc:541 msgid "Profiles" msgstr "གསལ་སྡུད་" #: ../pan/gui/save-attach-ui.cc:77 ../pan/gui/save-ui.cc:77 #, fuzzy, c-format msgid "" "%g - group as one directory (alt.binaries.pictures.trains)\n" "%G - group as nested directory (/alt/binaries/pictures/trains)\n" "%s - subject line excerpt\n" "%S - subject line\n" " \n" "\"/home/user/News/Pan/%g\" becomes\n" "\"/home/user/News/Pan/alt.binaries.pictures.trains\", and\n" "\"/home/user/News/Pan/%G\" becomes\n" "\"/home/user/News/Pan/alt/binaries/pictures/trains\"," msgstr "" "%g - སྣོད་ཐོ་གཅིག་གི་སྡེ་ཚན་ (alt.binaries.pictures.trains)\n" "%G - སྣོད་ཚང་སྣོད་ཐོའི་སྡེ་ཚན་ (/alt/binaries/pictures/trains)\n" " \n" "\"/home/user/News/Pan/%g\" becomes\n" "\"/home/user/News/Pan/alt.binaries.pictures.trains\",and\n" "\"/home/user/News/Pan/%G\" becomes\n" "\"/home/user/News/Pan/alt/binaries/pictures/trains\"," #: ../pan/gui/save-attach-ui.cc:223 ../pan/gui/save-ui.cc:242 msgid "Add to the queue sorted by date posted" msgstr "ཚེས་གྲངས་ཀྱིས་ འགྲེམ་སྐྱེལ་འབད་ཡོད་པའི་ མི་གྲལ་ལུ་ཁ་སྐོང་རྐྱབས་" #: ../pan/gui/save-attach-ui.cc:224 ../pan/gui/save-ui.cc:243 msgid "Add to the front of the queue" msgstr "མི་གྲལ་གདོང་ཁར་ ཁ་སྐོང་རྐྱབས་" #: ../pan/gui/save-attach-ui.cc:225 ../pan/gui/save-ui.cc:244 msgid "Add to the back of the queue" msgstr "མི་གྲལ་རྒྱབ་ཁར་ ཁ་སྐོང་རྐྱབས་" #: ../pan/gui/save-attach-ui.cc:257 #, fuzzy msgid "Pan: Save Attachments" msgstr "མཉམ་སྦྲགས་སྲུངས་" #: ../pan/gui/save-attach-ui.cc:282 ../pan/gui/save-attach-ui.cc:300 #: ../pan/gui/save-ui.cc:296 ../pan/gui/save-ui.cc:314 msgid "_Location:" msgstr "གནས་ཁོངས་:(_L)" #: ../pan/gui/save-attach-ui.cc:286 ../pan/gui/save-ui.cc:300 msgid "Save Articles" msgstr "རྩོམ་བྲིས་སྲུངས་" #: ../pan/gui/save-attach-ui.cc:303 ../pan/gui/save-ui.cc:317 #, c-format msgid "_Group's path: %s" msgstr "སྡེ་ཚན་གྱི་འགྲུལ་ལམ་: %s(_G)" #: ../pan/gui/save-attach-ui.cc:314 ../pan/gui/save-ui.cc:332 msgid "_Priority:" msgstr "གཙོ་རིམ་:(_P)" #: ../pan/gui/save-ui.cc:233 msgid "Save attachments" msgstr "མཉམ་སྦྲགས་སྲུངས་" #: ../pan/gui/save-ui.cc:234 msgid "Save text" msgstr "ཚིག་ཡིག་སྲུངས་" #: ../pan/gui/save-ui.cc:235 #, fuzzy msgid "Save attachments and text" msgstr "མཉམ་སྦྲགས་དང་ཚིག་ཡིག་སྲུངས་" #: ../pan/gui/save-ui.cc:271 msgid "Pan: Save Articles" msgstr "པེན་: རྩོམ་བྲིས་སྲུངས་" #: ../pan/gui/save-ui.cc:328 msgid "_Action:" msgstr "བྱ་བ་:(_A)" #: ../pan/gui/score-add-ui.cc:89 msgid "is more than" msgstr "མངམ་ཨིན་" #: ../pan/gui/score-add-ui.cc:90 msgid "is at most" msgstr "མང་ཤོས་ཅིག་" #: ../pan/gui/score-add-ui.cc:112 msgid "increase the article's score by" msgstr "རྩོམ་བྲིས་སྐུགས་ཚད་ ཡར་འཕར་བཟོ་" #: ../pan/gui/score-add-ui.cc:113 msgid "decrease the article's score by" msgstr "རྩོམ་བྲིས་སྐུགས་ཚད་ མར་ཕབ་བཟོ་" #: ../pan/gui/score-add-ui.cc:114 msgid "set the article's score to" msgstr "རྩོམ་བྲིས་སྐུགས་ཚད་གཞི་སྒྲིག་འབད་" #: ../pan/gui/score-add-ui.cc:115 msgid "watch the article (set its score to 9999)" msgstr "རྩོམ་བྲིས་ལུ་ལྟ་(༩༩༩༩ ལུ་སྐུགས་གཞི་སྒྲིག་འབད་)" #: ../pan/gui/score-add-ui.cc:116 msgid "ignore the article (set its score to -9999)" msgstr "རྩོམ་བྲིས་འདི་སྣང་མེད་སྦེ་བཞག་(-༩༩༩༩ ལུ་སྐུགས་གཞི་སྒྲིག་འབད་)" #: ../pan/gui/score-add-ui.cc:141 msgid "References" msgstr "གཞི་བསྟུན་ཚུ་" #: ../pan/gui/score-add-ui.cc:142 msgid "Line Count" msgstr "གྲལ་ཐིག་གྱང་ཁ་" #: ../pan/gui/score-add-ui.cc:143 msgid "Byte Count" msgstr "བཱའིཊི་གྱང་ཁ་" #: ../pan/gui/score-add-ui.cc:144 msgid "Crosspost Group Count" msgstr "ཀོརོསི་པོསཊི་ སྡེ་ཚན་ གྱང་ཁ་" #: ../pan/gui/score-add-ui.cc:145 msgid "Age (in days)" msgstr "ལོ་(ཉིནམ་ནང་)" #: ../pan/gui/score-add-ui.cc:167 msgid "for the next month" msgstr "ཤུལ་མའི་ཟླཝ་ལུ་" #: ../pan/gui/score-add-ui.cc:168 msgid "for the next six months" msgstr "ཤུལ་མའི་ཟླཝ་དྲུག་གི་དོན་ལུ་ལུ་" #: ../pan/gui/score-add-ui.cc:169 msgid "forever" msgstr "རྟག་པར་" #: ../pan/gui/score-add-ui.cc:194 msgid "contains" msgstr "ནང་ན་ཡོདཔ་" #: ../pan/gui/score-add-ui.cc:195 msgid "doesn't contain" msgstr "ནང་ན་མེདཔ་" #: ../pan/gui/score-add-ui.cc:196 msgid "is" msgstr "འདི་" #: ../pan/gui/score-add-ui.cc:197 msgid "isn't" msgstr "མེན་" #: ../pan/gui/score-add-ui.cc:198 msgid "starts with" msgstr "འགོ་བཙུགསཔ་ཨིན་" #: ../pan/gui/score-add-ui.cc:199 msgid "ends with" msgstr "མཇུག་བསྡུཝ་ཨིན་" #: ../pan/gui/score-add-ui.cc:200 msgid "matches regex" msgstr "རི་ཇེགསི་མཐུན་སྒྲིག་འབདཝ་ཨིན་" #: ../pan/gui/score-add-ui.cc:481 msgid "Another rule already sets this article's score." msgstr "ལམ་ལུགས་གཞན་མི་འདི་གིས་ ཧེ་མ་ལས་ རྩོམ་བྲིས་པའི་སྐུགས་གཞི་སྒྲིག་འབད་ཡོདཔ་ཨིན།" #: ../pan/gui/score-add-ui.cc:482 msgid "You may want to go back or delete the old rule." msgstr "ཁྱོད་ ཡང་ཅིན་ལོག་འགྱོ་དགོ་མནོ་དོ་འོང་ ཡང་ཅིན་ ལམ་ལུགས་རྙིངམོ་འདི་བཏོན་གཏང་དགོ་མནོ་དོ་འོང་།" #: ../pan/gui/score-add-ui.cc:553 msgid "Add and Re_score" msgstr "ཁ་སྐོང་འབད་ཞིནམ་ལས་ སྐུགས་ལོག་རྩིས་(_s)" #: ../pan/gui/score-add-ui.cc:604 ../pan/gui/score-add-ui.cc:624 msgid "New Scoring Rule" msgstr "སྐུགས་ཀྱི་ལམ་ལུགས་གསརཔ་" #: ../pan/gui/score-add-ui.cc:635 msgid "If the group name" msgstr "སྡེ་ཚན་མིང་འདི་" #: ../pan/gui/score-add-ui.cc:642 msgid "And the article's" msgstr "རྩོམ་བྲིས་ཀྱི་" #: ../pan/gui/score-view-ui.cc:56 msgid "Close and Re_score" msgstr "ཁ་བསྡམ་ནི་དང་སྐུགས་ལོག་རྩིས་ནི་(_s)" #: ../pan/gui/score-view-ui.cc:154 #, c-format msgid "File %s, Lines %d - %d" msgstr "ཡིག་སྣོད་ %s གྲལ་ཐིག་ %d - %d" #: ../pan/gui/score-view-ui.cc:182 msgid "Pan: Article's Scores" msgstr "པེན་: རྩོམ་བྲིས་པའི་སྐུགས་" #: ../pan/gui/score-view-ui.cc:208 msgid "Add" msgstr "ཁ་སྐོང་རྐྱབས་" #: ../pan/gui/score-view-ui.cc:213 msgid "New Score" msgstr "སྐུགས་གསརཔ་" #: ../pan/gui/score-view-ui.cc:218 msgid "Criteria" msgstr "ཁྱད་ཚད་" #: ../pan/gui/score-view-ui.cc:241 msgid "Add a New Scoring Rule" msgstr "སྐུགས་ཀྱི་ལམ་ལུགས་གསརཔ་ཅིག་ ཁ་སྐོང་རྐྱབས་" #: ../pan/gui/score-view-ui.cc:248 msgid "Remove the Selected Scoring Rule" msgstr "སེལ་འཐུ་འབད་ཡོད་པའི་སྐུགས་ཀྱི་ལམ་ལུགས་ རྩ་བསྐྲད་གཏང་" #: ../pan/gui/server-ui.cc:221 msgid "Please specify the server's address." msgstr "སར་བར་གྱི་ཁ་བྱང་ གསལ་བཀོད་འབད་གནང་།" #: ../pan/gui/server-ui.cc:264 msgid "Import SSL certificate (PEM format) from File" msgstr "" #. create the dialog #: ../pan/gui/server-ui.cc:290 ../pan/gui/server-ui.cc:869 msgid "Add a Server" msgstr "སར་བར་ཅིག་ ཁ་སྐོང་རྐྱབས་" #: ../pan/gui/server-ui.cc:290 ../pan/gui/server-ui.cc:875 msgid "Edit a Server's Settings" msgstr "སར་བར་གྱི་སྒྲིག་སྟངས་ཅིག་ ཞུན་དག་འབད་" #: ../pan/gui/server-ui.cc:310 msgid "Location" msgstr "གནས་ཁོངས་" #: ../pan/gui/server-ui.cc:314 msgid "The news server's actual address, e.g. \"news.mynewsserver.com\"" msgstr "གནས་ཚུལ་སར་བར་གྱི་ཁ་བྱང་ངོ་མ་ དཔེར་ན་ \"news.mynewsserver.com\"" #: ../pan/gui/server-ui.cc:315 msgid "_Address:" msgstr "ཁ་བྱང་:(_A)" #: ../pan/gui/server-ui.cc:319 msgid "The news server's port number. Typically 119." msgstr "སར་བར་གསརཔ་གི་འདྲེན་ལམ་ཨང་། དབྱེ་བ་ ༡༡༩ སྦེ།" #: ../pan/gui/server-ui.cc:320 msgid "Por_t:" msgstr "འདྲེན་ལམ་:(_t)" #: ../pan/gui/server-ui.cc:323 msgid "Login (if Required)" msgstr "ནང་བསྐྱོད་(དགོཔ་ཡོད་པ་ཅིན་)" #: ../pan/gui/server-ui.cc:327 msgid "_Username:" msgstr "ལག་ལེན་པའི་མིང་:(_U)" #: ../pan/gui/server-ui.cc:328 msgid "" "The username to give the server when asked. If your server doesn't require " "authentication, you can leave this blank." msgstr "" "སར་བར་འདྲི་བའི་སྐབས་ལུ་བྱིན་མི་ ལག་ལེན་པའི་མིང་། ཁྱོད་ཀྱི་སར་བར་ལུ་ བདེན་བཤད་དགོཔ་མེད་པ་ཅིན་ འདི་" "ས་སྟོང་འབད་བཞག་རུང་བཏུབ།" #: ../pan/gui/server-ui.cc:332 msgid "_Password:" msgstr "ཆོག་ཡིག་:(_P)" #: ../pan/gui/server-ui.cc:333 msgid "" "The password to give the server when asked. If your server doesn't require " "authentication, you can leave this blank." msgstr "" "སར་བར་འདྲི་བའི་སྐབས་ལུ་བྱིན་མི་ ཆོག་ཡིག ཁྱོད་ཀྱི་སར་བར་ལུ་ བདེན་བཤད་དགོཔ་མེད་པ་ཅིན་ འདི་ས་སྟོང་འབད་" "བཞག་རུང་བཏུབ།" #: ../pan/gui/server-ui.cc:336 msgid "Settings" msgstr "སྒྲིག་སྟངས་ཚུ་" #: ../pan/gui/server-ui.cc:343 msgid "Connection _Limit:" msgstr "མཐུད་ལམ་ཚད་:(_L)" #: ../pan/gui/server-ui.cc:347 msgid "After Two Weeks" msgstr "བདུན་ཕྲག་གཉིས་ཀྱི་ཤུལ་ལས་" #: ../pan/gui/server-ui.cc:348 msgid "After One Month" msgstr "ཟླཝ་གཅིག་གི་ཤུལ་ལས་" #: ../pan/gui/server-ui.cc:349 msgid "After Two Months" msgstr "ཟླཝ་གཉིས་ཀྱི་ཤུལ་ལས་" #: ../pan/gui/server-ui.cc:350 #, fuzzy msgid "After Three Months" msgstr "ཟླཝ་གཉིས་ཀྱི་ཤུལ་ལས་" #: ../pan/gui/server-ui.cc:351 #, fuzzy msgid "After Six Months" msgstr "ཟླཝ་གཉིས་ཀྱི་ཤུལ་ལས་" #: ../pan/gui/server-ui.cc:352 msgid "Never Expire Old Articles" msgstr "རྩོམ་བྲིས་རྙིངམ་ཚུ་ ནམ་ཡང་དུས་ཡོལ་མི་འབྱུང་" #: ../pan/gui/server-ui.cc:366 msgid "E_xpire Old Articles:" msgstr "རྩོམ་བྲིས་རྙིངམོ་ཚུ་ དུས་ཡོལ་འབྱུང་བ་:(_x)" #: ../pan/gui/server-ui.cc:370 msgid "Primary" msgstr "གཞི་རིམ་" #: ../pan/gui/server-ui.cc:371 msgid "Fallback" msgstr "གློ་བུར་རྒྱབ་ཐག་" #: ../pan/gui/server-ui.cc:385 msgid "Server Rank:" msgstr "སར་བར་གོ་རིམ་:" #: ../pan/gui/server-ui.cc:389 msgid "" "Fallback servers are used for articles that can't be found on the " "primaries. One common approach is to use free servers as primaries and " "subscription servers as fallbacks." msgstr "" "གློ་བུར་རྒྱབ་ཐག་གི་སར་བར་ཚུ་ རྩོམ་བྲིས་ཀྱི་དོན་ལུ་ལག་ལེན་འཐབ་ཨིནམ་ད་ དེ་ཚུ་གཞི་རིམ་ཚུ་ནང་ལས་མི་ཐོབ། " "ཐུན་མོང་དུ་ སར་བར་སྟོང་མ་ཚུ་གཞི་རིམ་དང་ མཁོ་མངགས་སར་བར་ཚུ་ གློ་བུར་རྒྱབ་ཐག་སྦེ་ ལག་ལེན་འཐབ་དགོ" #: ../pan/gui/server-ui.cc:396 msgid "Security" msgstr "" #: ../pan/gui/server-ui.cc:401 msgid "Use Plaintext (Unsecured) Connections" msgstr "" #: ../pan/gui/server-ui.cc:402 #, fuzzy msgid "Use Secure SSL Connections" msgstr "མཐུད་ལམ་མེད་" #: ../pan/gui/server-ui.cc:418 msgid "TLS (SSL) Options:" msgstr "" #: ../pan/gui/server-ui.cc:423 msgid "" "You can set the option for using/disabling secure SSL/TLS connections here. " "If you enable SSL/TLS, your data is encrypted and secure. It is encouraged " "to use this option for privacy reasons." msgstr "" #: ../pan/gui/server-ui.cc:428 msgid "Always trust this server's certificate" msgstr "" #: ../pan/gui/server-ui.cc:602 #, c-format msgid "Really delete \"%s\"?" msgstr "ཐད་རི་འབའ་རི་ \"%s\" འདི་བཏོན་གཏང་ནི་ཨིན་ན?" #: ../pan/gui/server-ui.cc:691 msgid "No information available." msgstr "" #: ../pan/gui/server-ui.cc:697 #, c-format msgid "Server Certificate for '%s'" msgstr "" #: ../pan/gui/server-ui.cc:795 #, fuzzy, c-format msgid "Really delete certificate for \"%s\"?" msgstr "ཐད་རི་འབའ་རི་ \"%s\" འདི་བཏོན་གཏང་ནི་ཨིན་ན?" #. dialog #: ../pan/gui/server-ui.cc:822 ../pan/gui/server-ui.cc:843 #: ../pan/gui/server-ui.cc:941 msgid "Servers" msgstr "སར་བར་ཚུ་" #: ../pan/gui/server-ui.cc:882 msgid "Remove a Server" msgstr "སར་བར་ཅིག་ རྩ་བསྐྲད་གཏང་" #. dialog #: ../pan/gui/server-ui.cc:915 msgid "SSL Certificates" msgstr "" #: ../pan/gui/server-ui.cc:936 msgid "Certificates" msgstr "" #: ../pan/gui/server-ui.cc:967 msgid "Import Certificate" msgstr "" #: ../pan/gui/server-ui.cc:973 msgid "Inspect Certificate" msgstr "" #: ../pan/gui/server-ui.cc:980 #, fuzzy msgid "Remove Certificate" msgstr "སར་བར་ཅིག་ རྩ་བསྐྲད་གཏང་" #: ../pan/gui/task-pane.cc:143 #, c-format msgid "" "\n" "Upload\n" "\n" "Subject: \"%s\"\n" "From: %s\n" "Groups: %s\n" "Sourcefile: %s\n" msgstr "" #: ../pan/gui/task-pane.cc:155 #, c-format msgid "" "\n" "Download\n" "\n" "Subject: \"%s\"\n" "From: %s\n" "Date: %s\n" "Groups: %s\n" "Save Path: %s\n" msgstr "" #: ../pan/gui/task-pane.cc:157 #, fuzzy msgid "unknown" msgstr "མ་ཤེསཔ་" #: ../pan/gui/task-pane.cc:263 msgid "Choose new destination for selected Tasks" msgstr "" #: ../pan/gui/task-pane.cc:417 #, c-format msgid "Pan: Tasks (%d Queued, %d Running, %d Stopped)" msgstr "པེན་: ལས་ཀ་ཚུ་ (%d གྲལ་ཞུགས་ %d གཡོག་བཀོལ་ནི་ %d བཀག་ཡོདཔ་)" #: ../pan/gui/task-pane.cc:419 #, c-format msgid "Pan: Tasks (%d Queued, %d Running)" msgstr "པེན་: ལས་ཀ་ཚུ་ (%d གྲལ་ཞུགས་, %d གཡོག་བཀོལ་ནི་)" #: ../pan/gui/task-pane.cc:421 #, c-format msgid "Pan: Tasks" msgstr "པེན་: ལས་ཀ་ཚུ་" #: ../pan/gui/task-pane.cc:446 #, c-format msgid "%lu selected, %s" msgstr "%lu སེལ་འཐུ་འབད་ཡོདཔ་ %s" #: ../pan/gui/task-pane.cc:510 msgid "Running" msgstr "གཡོག་བཀོལ་དོ" #: ../pan/gui/task-pane.cc:511 msgid "Decoding" msgstr "ཌི་ཀོཌིང་" #: ../pan/gui/task-pane.cc:513 msgid "Queued for Decode" msgstr "ཌི་ཀོཌི་གི་དོན་ལུ་མི་གྲལ" #: ../pan/gui/task-pane.cc:514 #, fuzzy msgid "Queued for Encode" msgstr "ཌི་ཀོཌི་གི་དོན་ལུ་མི་གྲལ" #: ../pan/gui/task-pane.cc:515 msgid "Queued" msgstr "མི་གྲལ་བཙུགས་ཡོདཔ་" #: ../pan/gui/task-pane.cc:516 msgid "Stopped" msgstr "བཀག་ཡོདཔ་" #: ../pan/gui/task-pane.cc:517 msgid "Removing" msgstr "རྩ་བསྐྲད་གཏང་དོ་" #: ../pan/gui/task-pane.cc:546 #, c-format msgid "%d%% Done" msgstr "%d%% འབད་ཡི་" #: ../pan/gui/task-pane.cc:552 #, c-format msgid "%d:%02d:%02d Remaining (%d @ %lu KiB/s)" msgstr "%d:%02d:%02d ལྷག་ལུས་ (%d @ %lu KiB/s" #: ../pan/gui/task-pane.cc:646 ../pan/gui/task-pane.cc:647 msgid "Move To Top" msgstr "" #: ../pan/gui/task-pane.cc:651 ../pan/gui/task-pane.cc:652 msgid "Move To Bottom" msgstr "" #: ../pan/gui/task-pane.cc:656 ../pan/gui/task-pane.cc:657 #, fuzzy msgid "Stop Task" msgstr "ལས་ཀ་ཚུ་ བཀག་" #: ../pan/gui/task-pane.cc:661 ../pan/gui/task-pane.cc:662 #, fuzzy msgid "Delete Task" msgstr "ལས་ཀ་ཚུ་ བཏོན་གཏང་" #: ../pan/gui/task-pane.cc:666 ../pan/gui/task-pane.cc:667 #, fuzzy msgid "Restart Task" msgstr "ལས་ཀ་ ལོག་འགོ་བཙུགས་" #: ../pan/gui/task-pane.cc:671 ../pan/gui/task-pane.cc:672 msgid "Change Download Destination" msgstr "" #: ../pan/gui/task-pane.cc:729 msgid "_Online" msgstr "གློ་ཐོག་(_O)" #: ../pan/gui/task-pane.cc:746 msgid "Restart Tasks" msgstr "ལས་ཀ་ ལོག་འགོ་བཙུགས་" #: ../pan/gui/task-pane.cc:748 msgid "Stop Tasks" msgstr "ལས་ཀ་ཚུ་ བཀག་" #: ../pan/gui/task-pane.cc:750 msgid "Delete Tasks" msgstr "ལས་ཀ་ཚུ་ བཏོན་གཏང་" #: ../pan/gui/url.cc:123 #, c-format msgid "Error starting URL: %s (Command was: %s)" msgstr "ཡུ་ཨར་ཨེལ་འགོ་བཙུགསཔ་ད་ འཛོལ་བ་: %s (བརྡ་བཀོད་འདི་: %sཨིན་པས་)" #: ../pan/tasks/decoder.cc:115 #, c-format msgid "Couldn't save file \"%s\": %s" msgstr "ཡིག་སྣོད་ \"%s\": %s སྲུངས་མ་ཚུགས་" #: ../pan/tasks/decoder.cc:137 ../pan/tasks/encoder.cc:136 msgid "Error initializing uulib" msgstr "uulib འགོ་བཙུག་པའི་སྐབས་ལུ་ འཛོལ་བ་" #: ../pan/tasks/decoder.cc:152 ../pan/tasks/socket-impl-gio.cc:352 #: ../pan/tasks/socket-impl-openssl.cc:634 #, c-format msgid "Error reading from %s: %s" msgstr "%s ལས་ལྷག་པའི་སྐབས་ལུ་འཛོལ་བ་: %s " #: ../pan/tasks/decoder.cc:192 #, c-format msgid "Saved \"%s\"" msgstr "\"%s\" སྲུངས་ཡོདཔ་" #: ../pan/tasks/decoder.cc:199 #, c-format msgid "" "Error saving \"%s\":\n" "%s." msgstr "" "\"%s\"སྲུང་བའི་སྐབས་ལུ་ འཛོལ་བ་:\n" "%s." #: ../pan/tasks/decoder.cc:314 ../pan/tasks/task-article.cc:350 #, c-format msgid "Decoding %s" msgstr "%s ཌི་ཀོཌིང" #: ../pan/tasks/encoder.cc:102 ../pan/tasks/encoder.cc:155 #, fuzzy, c-format msgid "Error loading %s from cache." msgstr "%s ལས་ལྷག་པའི་སྐབས་ལུ་འཛོལ་བ་: %s " #: ../pan/tasks/encoder.cc:177 #, fuzzy, c-format msgid "Error encoding %s: %s" msgstr "%s ལས་ལྷག་པའི་སྐབས་ལུ་འཛོལ་བ་: %s " #: ../pan/tasks/encoder.cc:269 #, fuzzy, c-format msgid "Encoding %s" msgstr "ཌི་ཀོཌིང་" #: ../pan/tasks/nntp.cc:126 #, c-format msgid "%s requires a username, but none is set." msgstr "%s ལུ་ ལག་ལེན་པའི་མིང་ཅིག་དགོཔ་ཨིན་མས་ དེ་འབདཝ་ད་ ཅི་ཡང་མིན་འདུག" #: ../pan/tasks/nntp.cc:139 #, c-format msgid "%s requires a password, but none is set." msgstr "%sལུ་ ཆོག་ཡིག་ཅིག་དགོཔ་ཨིན་རུང་ ཅི་ཡང་གཞི་སྒྲིག་མ་འབད་བས།" #: ../pan/tasks/nntp.cc:205 #, c-format msgid "Sending \"%s\" to %s returned an error: %s" msgstr "\"%s\" འདི་ %sལུ་ གཏང་མི་འདི་ འཛོལ་བ་སྦེ་ལོག་ཡོདཔ་: %s " #: ../pan/tasks/nntp.cc:228 #, c-format msgid "Sending \"%s\" to %s returned an unrecognized response: \"%s\"" msgstr "\"%s\" ལས་ %s ལུ་བཏང་མི་གིས་ ངོས་འཛིན་མ་འབད་བའི་ལན་གསལ་ལོག་ཡོདཔ་: \"%s\"" #: ../pan/tasks/nntp-pool.cc:222 #, c-format msgid "Unable to connect to \"%s\"" msgstr "\"%s\" ལུ་མཐུད་མ་ཚུགས་" #: ../pan/tasks/socket-impl-gio.cc:173 ../pan/tasks/socket-impl-gio.cc:211 #: ../pan/tasks/socket-impl-openssl.cc:214 #: ../pan/tasks/socket-impl-openssl.cc:252 #, c-format msgid "Error connecting to \"%s\"" msgstr " \"%s\" ལུ་མཐུད་པའི་སྐབས་ལུ་འཛོལ་བ་" #: ../pan/tasks/socket-impl-gio.cc:351 ../pan/tasks/socket-impl-openssl.cc:633 msgid "Unknown Error" msgstr "མ་ཤེས་པའི་འཛེོལ་བ་" #: ../pan/tasks/task-article.cc:61 ../pan/tasks/task-article.cc:156 #: ../pan/tasks/task-article.cc:159 #, c-format msgid "Saving %s" msgstr "%s སྲུང་དོ་" #: ../pan/tasks/task-article.cc:63 #, c-format msgid "Reading %s" msgstr "%s ལྷག་དོ་" #: ../pan/tasks/task-article.cc:322 #, c-format msgid "Article \"%s\" is incomplete -- the news server(s) don't have part %s" msgstr "" #: ../pan/tasks/task-groups.cc:40 #, c-format msgid "Getting group list from \"%s\"" msgstr "\"%s\" ལས་ སྡེ་ཚན་ཐོ་ཡིག་ལེན་དོ་" #: ../pan/tasks/task-groups.cc:122 #, c-format msgid "Fetched %lu Groups" msgstr "ལེན་ཡོད་པའི་སྡེ་ཚན་ %lu " #: ../pan/tasks/task-post.cc:35 #, c-format msgid "Posting \"%s\"" msgstr "གནས་བསྐྱོད་\"%s\"" #: ../pan/tasks/task-post.cc:76 #, fuzzy, c-format msgid "Posting of \"%s\" failed: %s" msgstr "གནས་བསྐྱོད་གསལ་སྡུད་" #: ../pan/tasks/task-post.cc:81 #, c-format msgid "Posting of \"%s\" succesful: %s" msgstr "" #: ../pan/tasks/task-upload.cc:51 #, fuzzy, c-format msgid "Uploading %s" msgstr "%s ལྷག་དོ་" #: ../pan/tasks/task-upload.cc:249 #, c-format msgid "Uploading %s - Part %d of %d" msgstr "" #: ../pan/tasks/task-upload.cc:251 #, c-format msgid "Uploading Message body with Subject \"%s\"" msgstr "" #: ../pan/tasks/task-upload.cc:308 #, c-format msgid "Posting of File %s (Part %d of %d) failed: No Posts allowed by server." msgstr "" #: ../pan/tasks/task-upload.cc:316 #, fuzzy, c-format msgid "Posting of File %s (Part %d of %d) failed: %s" msgstr "གནས་བསྐྱོད་གསལ་སྡུད་" #: ../pan/tasks/task-upload.cc:326 ../pan/tasks/task-upload.cc:333 #, c-format msgid "Posting of file %s (Part %d of %d) succesful: %s" msgstr "" #: ../pan/tasks/task-upload.cc:343 #, fuzzy, c-format msgid "Posting of file %s succesful: %s" msgstr "གནས་བསྐྱོད་གསལ་སྡུད་" #: ../pan/tasks/task-upload.cc:347 #, c-format msgid "" "Posting of file %s not completely successful: Check the log (right-click on " "list item) !" msgstr "" #: ../pan/tasks/task-upload.cc:364 #, c-format msgid "" "Posting of file %s not successful: Check the log (right-click on list item) !" msgstr "" #: ../pan/tasks/task-xover.cc:79 #, c-format msgid "Getting all headers for \"%s\"" msgstr "\"%s\" ལུ་ མགོ་ཡིག་ཆ་མཉམ་ལེན་དོ་" #: ../pan/tasks/task-xover.cc:81 #, c-format msgid "Getting new headers for \"%s\"" msgstr "\"%s\" ལུ་ མགོ་ཡིག་གསརཔ་ལེན་དོ་" #. SAMPLE #: ../pan/tasks/task-xover.cc:83 #, c-format msgid "Sampling headers for \"%s\"" msgstr "\"%s\" ལུ་ དཔེ་ཚད་མགོ་ཡིག་ཚུ་" #: ../pan/tasks/task-xover.cc:369 #, c-format msgid "%s (%lu parts, %lu articles)" msgstr "%s (ཡན་ལག་ %lu རྩོམ་བྲིས་ %lu )" #: ../pan/tasks/task-xoverinfo.cc:78 #, fuzzy, c-format msgid "Getting header counts for \"%s\"" msgstr "\"%s\" ལུ་ མགོ་ཡིག་ཆ་མཉམ་ལེན་དོ་" #: ../pan/usenet-utils/filter-info.cc:163 msgid "article doesn't have attachments" msgstr "རྩོམ་བྲིས་ལུ་ མཉམ་སྦྲགས་མིན་འདུག" #: ../pan/usenet-utils/filter-info.cc:167 msgid "the article has attachments" msgstr "རྩོམ་བྲིས་ལུ་ མཉམ་སྦྲགས་འདུག་" #: ../pan/usenet-utils/filter-info.cc:171 msgid "the article isn't cached locally" msgstr "རྩོམ་བྲིས་འདི་ ཉེ་གནས་ཀྱི་ཐོག་ལས་ འདྲ་མཛོད་ནང་མ་བཙུགས་པ་བཞག་ཡོདཔ་" #: ../pan/usenet-utils/filter-info.cc:175 msgid "the article is cached locally" msgstr "རྩོམ་བྲིས་འདི་ ཉེ་གནས་ཀྱི་ཐོག་ལས་ འདྲ་མཛོད་ནང་བཙུགས་ཡོདཔ་" #: ../pan/usenet-utils/filter-info.cc:179 msgid "the article wasn't posted by you" msgstr "རྩོམ་བྲིས་འདི་ ཁྱོད་ཀྱིས་ འགྲེམ་སྐྱེལ་མ་འབདཝ་ཨིན་མས་" #: ../pan/usenet-utils/filter-info.cc:183 msgid "the article was posted by you" msgstr "རྩོམ་བྲིས་འདི་ ཁྱོད་ཀྱིས་ འགྲེམ་སྐྱེལ་འབད་ཡོདཔ་ཨིན་མས་" #: ../pan/usenet-utils/filter-info.cc:187 msgid "the article has been read" msgstr "རྩོམ་བྲིས་འདི་ ལྷག་ཡོདཔ་" #: ../pan/usenet-utils/filter-info.cc:191 msgid "the article hasn't been read" msgstr "རྩོམ་བྲིས་འདི་མ་ལྷག་པ་ཡོདཔ་" #: ../pan/usenet-utils/filter-info.cc:195 #, c-format msgid "the article is less than %ld bytes long" msgstr "རྩོམ་བྲིས་འདི་ བཱའིཊིསི་%ld ལས་ཐུང་ཀུ་ཡོདཔ་" #: ../pan/usenet-utils/filter-info.cc:200 #, c-format msgid "the article is at least %ld bytes long" msgstr "རྩོམ་བྲིས་འདི་ ཉུང་མཐའ་ བཱའིཊིསི་%ld དེ་ཅིག་རིངམོ་ཡོད་" #: ../pan/usenet-utils/filter-info.cc:205 #, c-format msgid "the article is less than %ld lines long" msgstr "རྩོམ་བྲིས་འདི་ གྲལ་ཐིག་ %ld ལས་ཐུང་ཀུ་ཡོདཔ་" #: ../pan/usenet-utils/filter-info.cc:210 #, c-format msgid "the article is at least %ld lines long" msgstr "རྩོམ་བྲིས་འདི་ ཉུང་མཐའ་ གྲལ་ཐིག་%ld དེ་ཅིག་ རིངམོ་ཡོད་" #: ../pan/usenet-utils/filter-info.cc:215 #, c-format msgid "the article is less than %ld days old" msgstr "རྩོམ་བྲིས་འདི་ ཉིམ་%ld ལས་ཐུང་ཀུ་ཨིན་པས་" #: ../pan/usenet-utils/filter-info.cc:220 #, c-format msgid "the article is at least %ld days old" msgstr "རྩོམ་བྲིས་འདི་ ཉུང་མཐའ་ ཉིམ་%ld དེ་ཅིག་སོང་ཡོདཔ་" #: ../pan/usenet-utils/filter-info.cc:225 #, c-format msgid "the article was posted to less than %ld groups" msgstr "རྩོམ་བྲིས་འདི་ %ld སྡེ་ཚན་ལས་ཉུང་མི་ལུ་ འགྲེམ་སྐྱེལ་འབད་ཡོདཔ་ " #: ../pan/usenet-utils/filter-info.cc:230 #, c-format msgid "the article was posted to at least %ld groups" msgstr "རྩོམ་བྲིས་འདི་ ཉུང་མཐའ་ སྡེ་ཚན་%ld ལུ་འགྲེམ་སྐྱེལ་འབད་ནུག" #: ../pan/usenet-utils/filter-info.cc:235 #, c-format msgid "the article's score is less than %ld" msgstr "རྩོམ་བྲིས་ཀྱི་སྐུགས་འདི་ %ld ལས་ཉུངམ་ཨིན་" #: ../pan/usenet-utils/filter-info.cc:240 #, c-format msgid "the article's score is %ld or higher" msgstr "རྩོམ་བྲིས་ཀྱི་སྐུགས་འདི་ %ld དང་ ཡང་ན་ དེ་ལས་མཐོཝ་ཨིན་" #: ../pan/usenet-utils/filter-info.cc:249 #: ../pan/usenet-utils/filter-info.cc:259 #, c-format msgid "%s doesn't contain \"%s\"" msgstr "%s ནང་ལུ་ \"%s\" མིན་འདུག་" #: ../pan/usenet-utils/filter-info.cc:250 #: ../pan/usenet-utils/filter-info.cc:260 #, c-format msgid "%s isn't \"%s\"" msgstr "%s འདི་ \"%s\" མེན་པས་" #: ../pan/usenet-utils/filter-info.cc:251 #: ../pan/usenet-utils/filter-info.cc:261 #, c-format msgid "%s doesn't begin with \"%s\"" msgstr "%s འདི་ \"%s\" དང་གཅིག་ཁར་ འགོ་མི་བཙུག་" #: ../pan/usenet-utils/filter-info.cc:252 #: ../pan/usenet-utils/filter-info.cc:262 #, c-format msgid "%s doesn't end with \"%s\"" msgstr "%s འདི་ \"%s\" དང་གཅིག་ཁར་ མཇུག་མི་བསྡུ་" #: ../pan/usenet-utils/filter-info.cc:253 #: ../pan/usenet-utils/filter-info.cc:263 #, c-format msgid "%s doesn't match the regex \"%s\"" msgstr "%s འདི་ རི་ཇིགསི་ \"%s\" དང་མི་མཐུན་སྒྲིག་མི་འབད་" #: ../pan/usenet-utils/filter-info.cc:275 #, c-format msgid "%s contains \"%s\"" msgstr "%s ནང་ \"%s\" མེད་" #: ../pan/usenet-utils/filter-info.cc:276 #, c-format msgid "%s is \"%s\"" msgstr "%s འདི་ \"%s\" ཨིན་" #: ../pan/usenet-utils/filter-info.cc:277 #, c-format msgid "%s begins with \"%s\"" msgstr "%s འདི་ \"%s\"གིས་འགོ་བཙུགསཔ་ཨིན་" #: ../pan/usenet-utils/filter-info.cc:278 #, c-format msgid "%s ends with \"%s\"" msgstr "%s འདི་ \"%s\"གིས་ མཇུག་བསྡུཝ་ཨིན་" #: ../pan/usenet-utils/filter-info.cc:279 #, c-format msgid "%s matches the regex \"%s\"" msgstr "%s འདི་ རི་ཇིགསི་ \"%s\" དང་མཐུན་སྒྲིག་འབདཝ་ཨིན་" #: ../pan/usenet-utils/filter-info.cc:285 msgid "Any of these tests fail:" msgstr "བརྟག་ཞིབ་འདི་ཚུ་ལས་ གཅིག་ལུ་འཐུས་ཤོར་འབྱུང་འོང་:" #: ../pan/usenet-utils/filter-info.cc:292 msgid "All of these tests pass:" msgstr "བརྟག་ཞིབ་འདི་ཚུ་ལས་ གཅིག་འདི་མཐའ་འཁྱོལ་འོང་:" #: ../pan/usenet-utils/filter-info.cc:299 msgid "None of these tests pass:" msgstr "བརྟག་ཞིབ་ཚུ་ལས་ ཅིག་གིས་ཡང་མཐར་མི་འཁྱོལ་:" #: ../pan/usenet-utils/filter-info.cc:306 msgid "Any of these tests pass:" msgstr "བརྟག་ཞིབ་གང་རུང་ མཐར་འ་ཁྱོལ་པ་:" #: ../pan/usenet-utils/gnksa.cc:878 #, c-format msgid "No email address provided; generating message-id with domain \"%s\"" msgstr "གློག་འཕྲིན་ཁ་བྱང་མ་བྱིན་ ཌོ་མཱེན་ \"%s\" དང་གཅིག་ཁར་ འཕྲིན་དོན་-ཨའི་ཌི་བཟོ་བཏོན་འབད་ནི་" #: ../pan/usenet-utils/message-check.cc:124 msgid "Warning: Reply seems to be top-posted." msgstr "ཉེན་བརྡ་: ལན་གསལ་འདི་ འགྲེམ་སྐྱེལ་ལེགས་ཤོམ་འབད་ཡོདཔ་སྦེ་མཐོང་མས།" #: ../pan/usenet-utils/message-check.cc:145 msgid "Warning: The signature marker should be \"-- \", not \"--\"." msgstr "ཉེན་བརྡ་: མིང་རྟགས་རྟགས་བཀོད་པ་འདི་ \"-- \" མེན་པར་ \"--\" ཨིན་དགོ" #: ../pan/usenet-utils/message-check.cc:162 msgid "Warning: Signature prefix with no signature." msgstr "ཉེན་བརྡ་: མིང་རྟགས་མེད་པའི་མིང་རྟགས་སྔོན་ཚིག" #: ../pan/usenet-utils/message-check.cc:167 msgid "Warning: Signature is more than 4 lines long." msgstr "ཉེན་བརྡ་: མིང་རྟགས་འདི་ གྲལ་ཐིག་བཞི་ལས་རིངམོ་ཨིན།" #: ../pan/usenet-utils/message-check.cc:172 msgid "Warning: Signature is more than 80 characters wide." msgstr "ཉེན་བརྡ་: མིང་རྟགས་འདི་ ཡིག་འབྲུ་ ༨༠ ལས་རྒྱ་སྦོམ་ཡོདཔ་ཨིན།" #: ../pan/usenet-utils/message-check.cc:198 #, fuzzy, c-format msgid "Warning: %d line is more than 80 characters wide." msgid_plural "Warning: %d lines are more than 80 characters wide." msgstr[0] "ཉེན་བརྡ་: %d གྲལ་ཐིག་ཚུ་ ཡིག་འབྲུ་ ༨༠ ལས་རྒྱ་སྦོམ་ཡོདཔ་ཨིན།" msgstr[1] "ཉེན་བརྡ་: %d གྲལ་ཐིག་ཚུ་ ཡིག་འབྲུ་ ༨༠ ལས་རྒྱ་སྦོམ་ཡོདཔ་ཨིན།" #: ../pan/usenet-utils/message-check.cc:223 msgid "Error: Message is empty." msgstr "འཛོལ་བ་: འཕྲིན་དོན་འདི་སྟོངམ་ཨིན་པས།" #: ../pan/usenet-utils/message-check.cc:258 msgid "Warning: The message is entirely quoted text!" msgstr "ཉེན་བརྡ་: འཕྲིན་དོན་འདི་ ཧྲིལ་བུམ་སྦེ་འདྲེན་ཚིག་བཀོད་ཡོད་པའི་ཚིག་ཡིག་ཨིན་!" #: ../pan/usenet-utils/message-check.cc:259 msgid "Warning: The message is mostly quoted text." msgstr "ཉེན་བརྡ་: འཕྲིན་དོན་འདི་ མང་ཤོས་ཅིག་འདྲེན་ཚིག་བཀོད་ཡོད་པའི་ཚིག་ཡིག་ཨིན།" #: ../pan/usenet-utils/message-check.cc:309 msgid "Error: Message appears to have no new content." msgstr "འཛོལ་བ་: འཕྲིན་དོན་འདི་ ནང་དོན་གསརཔ་མེད་པར་འབྱུངམ་ཨིན།" #: ../pan/usenet-utils/message-check.cc:344 #: ../pan/usenet-utils/message-check.cc:383 #, c-format msgid "" "Warning: The posting profile's server doesn't carry newsgroup\n" "\t\"%s\".\n" "\tIf the group name is correct, switch profiles in the \"From:\"\n" "\tline or edit the profile with \"Edit|Manage Posting Profiles\"." msgstr "" "ཉེན་བརྡ་: གནས་བསྐྱོད་གསལ་སྡུད་ཀྱི་སར་བར་གྱིས་ གནས་ཚུལ་སྡེ་ཚན་ \n" "\t\"%s\" འདི་མི་མི་འབག\n" "\t སྡེ་ཚན་མིང་འདི་ བདེན་པ་ཅིན་ གསལ་སྡུད་ཚུ་ \"From:\"\n" "\tགྲལ་ཐིག་ནང་སོར་བསྒྱུར་འབད་ ཡང་ན་ གསལ་སྡུད་འདི་ \"Edit|Manage Posting Profiles\" དང་" "གཅིག་ཁར་ ཞུན་དག་འབད།" #: ../pan/usenet-utils/message-check.cc:355 msgid "Warning: Following-Up to too many groups." msgstr "ཉེན་བརྡ་: སྡེ་ཚན་ལེ་ཤའི་བར་ ཤུལ་དཔྱད་འབད་ནི།" #: ../pan/usenet-utils/message-check.cc:366 msgid "Error: No Subject specified." msgstr "འཛོལ་བ་: དོན་ཚན་གསལ་བཀོད་མ་འབད་བར་ཡོདཔ།" #: ../pan/usenet-utils/message-check.cc:395 #, c-format msgid "Warning: Group \"%s\" is read-only." msgstr "ཉེན་བརྡ་: སྡེ་ཚན་ \"%s\" འདི་གྲ་གྲིགས་ཨིན།" #: ../pan/usenet-utils/message-check.cc:404 msgid "Error: Posting to a very large number of groups." msgstr "འཛོལ་བ་: སྡེ་ཚན་མང་ཤོས་ཅིག་ནང་ གནས་བསྐྱོད་འབདཝ་ཨིན།" #: ../pan/usenet-utils/message-check.cc:409 msgid "Warning: Posting to a large number of groups." msgstr "ཉེན་བརྡ་: སྡེ་ཚན་མང་ཤོས་ཅིག་ནང་ལུ་ གནས་བསྐྱོད་འབདཝ་ཨིན།" #: ../pan/usenet-utils/message-check.cc:416 msgid "Warning: Crossposting without setting Followup-To header." msgstr "ཉེན་བརྡ་: མགོ་ཡིག་ལུ་ཤུལ་དཔྱད་ གཞི་སྒྲིག་མ་འབད་བར་ སྐེདཔ་བཏོག་གནས་བསྐྱོད་འབད་ནི།" #: ../pan/usenet-utils/message-check.cc:441 msgid "Error: Bad email address." msgstr "འཛོལ་བ་: གློག་འཕྲིན་ཁ་བྱང་ བྱང་ཉེས།" #: ../pan/usenet-utils/message-check.cc:450 msgid "Warning: Most newsgroups frown upon HTML posts." msgstr "ཉེན་བརྡ་: གནས་ཚུལ་སྡེ་ཚན་མང་ཤོས་ར་ ཨེཅ་ཊི་ཨེམ་ཨེལ་ འགྲེམ་སྐྱེལ་གུ་ཨོ་ཀྲོ་བསུམ་ཨིན།" #: ../pan/usenet-utils/message-check.cc:486 msgid "Error: No Recipients." msgstr "འཛོལ་བ་: ཐོབ་མཁན་མེད།" #: ../pan/usenet-utils/scorefile.cc:304 #, c-format msgid "" "Error reading score in %*.*s, line %d: expected 'Expires: MM/DD/YYYY' or " "'Expires: DD-MM-YYYY'." msgstr "" "%*.*s, གྲལ་ཐིག་ %d: རེ་འདུན་བསྐྱེད་ཡོད་པའི་ 'Expires: MM/DD/YYYY' ཡང་ན་ 'Expires: DD-" "MM-YYYY'." #: ../pan/usenet-utils/scorefile.cc:307 #, c-format msgid "Expired old score from %*.*s, line %d" msgstr "%*.*s, གྲལ་ཐིག་ %d ནང་ལས་ དུས་ཡོལ་ཅན་གྱི་སྐུགས་རྙིངམོ་" #: ../pan/usenet-utils/scorefile.cc:380 #, c-format msgid "Error reading score in %*.*s, line %d: unexpected line." msgstr "%*.*s, གྲལ་ཐིག་ %d: རེ་བ་མེད་པའི་གྲལ་ཐིག་ནང་ སྐུགས་ལྷག་པའི་སྐབས་ལུ་འཛོལ་བ།" #: ../pan/usenet-utils/scorefile.cc:428 #, c-format msgid "Read %lu scoring rules in %lu sections from \"%s\"" msgstr "%lu སྐུགས་ཀྱི་ལམ་ལུགས་ཚུ་ %lu དབྱེ་ཚན་ནང་ལྷག་ \"%s\" ནང་ལས་" #: ../pan/usenet-utils/ssl-utils.h:199 #, fuzzy, c-format msgid "Error printing the server certificate for '%s'" msgstr "ཕྱིའི་ཞུན་དགཔ་འགོ་བཙུག་པའི་སྐབས་ལུ་ འཛོལ་བ་: %s" #: ../pan/usenet-utils/ssl-utils.h:216 #, c-format msgid "" "The current server '%s' sent this security certificate :\n" "\n" msgstr "" #: ../pan/usenet-utils/ssl-utils.h:217 #, c-format msgid "" "Certificate information for server '%s' :\n" "\n" msgstr "" #: ../pan/usenet-utils/ssl-utils.h:219 #, c-format msgid "" "%sIssuer information:\n" "%s\n" "Valid until : %s\n" "\n" "Not valid before : %s\n" "\n" msgstr "" #: ../pan/usenet-utils/text-massager.cc:397 msgid "> [quoted text muted]" msgstr "> [འདྲེན་ཚིག་བཀོད་ཡོད་པའི་ཚིག་ཡིག་སྐད་མེདཔ་བཟོ་ཡོདཔ་]" #~ msgid "Read News from Usenet" #~ msgstr "ཡུསི་ནེཊི་ནང་ལས་ གནས་ཚུལ་ལྷག་" #, fuzzy #~ msgid "_Toggle Flag on for Thread" #~ msgstr "ཐེརེཌི་ལུ་ལྟ་(_W)" #~ msgid "Attachment not shown: MIME type %s/%s; filename %s\n" #~ msgstr "མཉམ་སྦྲགས་མ་སྟོན་: མ་ཡིམ་ དབྱེ་བ་ %s/%s ཡིག་སྣོད་མིང་ %s\n" #~ msgid "Attachment not shown: MIME type %s/%s\n" #~ msgstr "མཉམ་སྦྲགས་མ་སྟོན་: མ་ཡིམ་ དབྱེ་བ་ %s/%s\n" #~ msgid "" #~ "Spellchecker not found!\n" #~ " \n" #~ "Was this copy of Pan compiled with GtkSpell enabled?" #~ msgstr "" #~ "སྡེབ་དཔྱོདཔ་མ་ཐོབ་!\n" #~ " \n" #~ "པེན་གྱི་འདྲ་བཤུས་འདི་ ལྕོགས་ཅན་ཇི་ཊི་ཀེ་དང་གཅིག་ཁར་ཕྱོགས་སྒྲིག་འབད་ཡོདཔ་ཨིན་མས་ག་?" #, fuzzy #~ msgid "Signer : " #~ msgstr "མིང་རྟགས་:" #~ msgid "_Signature:" #~ msgstr "མིང་རྟགས་:(_S)" #~ msgid "Creating directory \"%s\"" #~ msgstr "སྣོད་ཐོ་ \"%s\" གསར་བསྐྲུན་འབད་དོ་" #~ msgid "Couldn't create directory \"%s\": %s" #~ msgstr "སྣོད་ཐོ་ \"%s\": %s གསར་བསྐྲུན་འབད་མ་ཚུགས་" #~ msgid "" #~ "Your copy of libpcre doesn't support UTF-8. UTF-8 regular expressions " #~ "may fail." #~ msgstr "" #~ "ཁྱོད་ཀྱི་ libpcre འདྲ་བཤུས་ཀྱིས་ ཡུ་ཊི་ཨེཕ་-༨ ལུ་རྒྱབ་སྐྱོར་མི་འབད། དུས་རྒྱུན་གྱི་གསལ་བརྗོད་ ཡུ་ཊི་" #~ "ཨེཕ་-༨ འདི་ འཐུས་ཤོར་འབྱུང་འོང་།" #~ msgid "Can't use regular expression \"%s\": %s at position %d" #~ msgstr "དུས་རྒྱུན་གྱི་གསལ་བརྗོད་ \"%s\": %s འདི་ ལག་ལེན་འཐབ་མི་ཚུགས་ གནས་ས་ %d ལུ་" #~ msgid "Read Selected Group" #~ msgstr "སེལ་འཐུ་འབད་ཡོད་པའི་སྡེ་ཚན་ ལྷག་" #~ msgid "_Mark Group _Read" #~ msgstr "སྡེ་ཚན་འདི་ ལྷག་ཡོོདཔ་སྦེ་རྟགས་བཀལ་(_M_R)" #~ msgid "_Delete Group's Articles" #~ msgstr "སྡེ་ཚན་གྱི་རྩོམ་བྲིས་ཚུ་ བཏོན་གཏང་(_D)" #~ msgid "Get New Headers for Selected Group" #~ msgstr "སེལ་འཐུ་འབད་ཡོད་པའི་སྡེ་ཚན་གྱི་དོན་ལུ་ མགོ་ཡིག་གསརཔ་ལེན་" #~ msgid "Get New Headers for Subscribed Groups" #~ msgstr "མཁོ་མངགས་འབད་ཡོད་པའི་སྡེ་ཚན་གྱི་དོན་ལུ་ མགོ་ཡིག་གསརཔ་ལེན་" #~ msgid "Get Headers from Server" #~ msgstr "སར་བར་ལས་ མགོ་ཡིག་ཚུ་ལེན་" #~ msgid "Get a new Group list from the Server" #~ msgstr "སར་བར་ལས་ སྡེ་ཚན་ཐོ་ཡིག་གསརཔ་ཅིག་ ལེན་" #~ msgid "Subscribe to Selected Group" #~ msgstr "སེལ་འཐུ་འབད་ཡོད་པའི་སྡེ་ཚན་ལུ་ མཁོ་མངགས་འབད་" #~ msgid "Unsubscribe from Selected Group" #~ msgstr "སེལ་འཐུ་འབད་ཡོད་པའི་སྡེ་ཚན་ནང་ལས་ མཁོ་མངགས་འབད་བཤོལ་" #~ msgid "Save Selected Articles ..." #~ msgstr "སེལ་འཐུ་འབད་ཡོད་པའི་རྩོམ་བྲིས་ཚུ་ སྲུངས་་་་" #~ msgid "Cancel Last Task" #~ msgstr "མཇུག་གི་ལས་ཀ་ཆ་མེད་གཏང་" #~ msgid "Clear Header Pane" #~ msgstr "མགོ་ཡིག་པེན་འདི་ བསལ་" #~ msgid "Clear Body Pane" #~ msgstr "མ་གཟུགས་པེན་འདི་ བསལ་" #~ msgid "Next Unread Group" #~ msgstr "ཤུལ་མའི་མ་ལྷག་པའི་སྡེ་ཚན་" #~ msgid "Next Group" #~ msgstr "སྡེ་ཚན་སོར་སོ་" #~ msgid "Next Thread" #~ msgstr "ཤུལ་མའི་ཐེརེཌི་" #~ msgid "Previous Article" #~ msgstr "ཧེ་མའི་རྩོམ་བྲིས་" #~ msgid "Previous Thread" #~ msgstr "ཧེ་མའི་ཐེརེཌི་" #~ msgid "Parent Article" #~ msgstr "རྩ་ལག་རྩོམ་བྲིས་" #~ msgid "Mark Article as Read" #~ msgstr "རྩོམ་བྲིས་འདི་ ལྷག་ནི་སྦེ་རྟགས་བཀལ་" #~ msgid "Mark Article as Unread" #~ msgstr "རྩོམ་བྲིས་འདི་མ་ལྷགཔ་སྦེ་རྟགས་བཀལ་" #~ msgid "Reply to Author in Mail" #~ msgstr "ཡིག་འཕྲིན་གྱི་ཐོག་ལས་ རྩོམ་པ་པོ་ལུ་ལན་གསལ་འབད་" #~ msgid "Abbreviate _Names in Group Pane" #~ msgstr "མིང་ཚུ་ སྡེ་ཚན་པེན་ནང་ བཅུད་སྡུད་(_N)" #~ msgid "Match Only Articles Posted by Me" #~ msgstr "ང་གིས་འགྲེམ་སྐྱེལ་འབད་ཡོད་པའི་རྩོམ་བྲིས་ཚུ་རྐྱངམ་ཅིག་ མཐུན་སྒྲིག་འབད་" #~ msgid "Baltic (ISO-8859-4)" #~ msgstr "བཱལ་ཊིཀ་(ཨའི་ཨེསི་ཨོ་-༨༨༥༩-༤)" #~ msgid "Baltic (ISO-8859-13)" #~ msgstr "བཱལ་ཊིཀ་ (ཨའི་ཨེསི་ཨོ་-༨༨༥༩-༡༣)" #~ msgid "Baltic (Windows-1257)" #~ msgstr "བཱལ་ཊིཀ་ (ཝིན་ཌཱསི་-༡༢༥༧)" #~ msgid "Central European (ISO-8859-2)" #~ msgstr "དབུས་ཕྱོགས་ ཡུ་རོ་པི་ཡཱན་(ཨའི་ཨེསི་ཨོ་-༨༨༥༩-༢)" #~ msgid "Central European (Windows-1250)" #~ msgstr "དབུས་ཕྱོགས་ ཡུ་རོ་པི་ཡཱན་(སྒོ་སྒྲིག་-༡༢༥༠)" #~ msgid "Chinese Simplified (gb2312)" #~ msgstr "རྒྱ་ནག་འཇམ་སམ་བཟོ་ཡོད་མི་(ཇི་བི་༢༣༡༢)" #~ msgid "Chinese Traditional (big5)" #~ msgstr "རྒྱ་ནག་ སྔོན་སྲོལ་ (བིག་༥)" #~ msgid "Cyrillic (ISO-8859-5)" #~ msgstr "སིརི་ལིཀ་(ཨའི་ཨེསི་ཨོ་-༨༨༥༩-༥)" #~ msgid "Cyrillic (Windows-1251)" #~ msgstr "སི་རི་ལིཀ་ (སྒོ་སྒྲིག་-༡༢༥༡)" #~ msgid "Cyrillic (KOI8-R)" #~ msgstr "སི་རི་ལིཀ་ (ཀེ་ཨོ་ཨའི་༨-ཨར་)" #~ msgid "Cyrillic, Ukrainian (KOI8-U)" #~ msgstr "སི་རི་ལིཀ་ ཡུཀ་རའི་ནི་ཡཱན་ (ཀེ་ཨོ་ཨའི་༨-ཡུ་)" #~ msgid "Greek (ISO-8859-7)" #~ msgstr "གིརིཀ་(ཨའི་ཨེསི་ཨོ་-༨༨༥༩-༧)" #~ msgid "Japanese (ISO-2022-jp)" #~ msgstr "ཇ་པ་ནིསི་ (ཨའི་ཨེསི་ཨོ་-༢༠༢༢-ཇེ་པི་)" #~ msgid "Korean (euc-kr)" #~ msgstr "ཀོ་རི་ཡཱན་ (euc-kr)" #~ msgid "Turkish (ISO-8859-9)" #~ msgstr "ཊར་ཀིཤ་ (ཨའི་ཨེསི་ཨོ་-༨༨༥༩-༩)" #~ msgid "Western (ISO-8859-1)" #~ msgstr "ནུབ་ཕྱོགས་ (ཨའི་ཨེསི་ཨོ་-༨༨༥༩-༡)" #~ msgid "Western, New (ISO-8859-15)" #~ msgstr "ནུབ་ཕྱོགས་ གསརཔ་ (ཨའི་ཨེཧཝསི་ཨོ་-༨༨༥༩-༡༥)" #~ msgid "Western (Windows-1252)" #~ msgstr "ནུབ་ཕྱོགས་ (སྒོ་སྒྲིག་-༡༢༥༢)" #~ msgid "Unicode (UTF-8)" #~ msgstr "ཡུ་ནི་ཀོཌི་ (ཡུ་ཊི་ཨེཕ་-༨)" #~ msgid "Western" #~ msgstr "ནུབ་ཕྱོགས་" #~ msgid "" #~ "Pan is now offline. Please ensure that space is available, then use File|" #~ "Work Online to continue." #~ msgstr "" #~ "པེན་འདི་ ད་ལྟོ་ཨཱོཕ་ལ་ཡིན་ཨིན་པས། ས་སྟོང་ལངམ་ཡོད་ག་བལྟ་ཞིནམ་ལས་ འཕྲོ་མཐུད་དེ་འབད་ནིའི་དོན་ལས་ " #~ "ཡིག་སྣོད་|ལཱ་ཨཱོཕ་ལ་ཡིན་ ལག་ལེན་འཐབ།" #~ msgid "%u Tasks Running, %u Tasks Total" #~ msgstr "%u ལས་ཀ་ གཡོག་བཀོལ་བའི་བསྒང་ %u ལས་ཀ་བསྡོམས་" #~ msgid "_Manage Editor List..." #~ msgstr "ཞུན་དགཔ་ཐོ་ཡིག་ འཛིན་སྐྱོང་འཐབ་་་་(_M)" #~ msgid "Manage Posting Pr_ofiles..." #~ msgstr "གནས་བསྐྱོད་ གསལ་སྡུད་ འཛིན་སྐྱོང་འཐབ་་་་་(_o)" #~ msgid "Unicode, UTF-8" #~ msgstr "ཡུ་ནི་ཀོཌི་ ཡུ་ཊི་ཨེཕ་-༨" #~ msgid "Manage Editor List" #~ msgstr "ཞུན་དགཔ་ཐོག་ཡིག་ འཛིན་སྐྱོང་འཐབ་" #~ msgid "Editors" #~ msgstr "ཞུན་དགཔ་" #~ msgid "Posting Article" #~ msgstr "གནས་བསྐྱོད་རྩོམ་བྲིས་" #~ msgid "Posting..." #~ msgstr "གནས་བསྐྱོད་་་་་" #~ msgid "Couldn't read signature file \"%s\": %s" #~ msgstr "མིང་རྟགས་ཡིག་སྣོད་ \"%s\": %s ལྷག་མ་ཚུགས་" #~ msgid "Add a New Profile" #~ msgstr "གསལ་སྡུད་གསརཔ་ཅིག་ ཁ་སྐོང་རྐྱབས་" #~ msgid "Edit the selected profile" #~ msgstr "སེལ་འཐུ་འབད་ཡོད་པའི་གསལ་སྡུད་ ཞུན་དག་འབད་" #~ msgid "Remove the selected profile" #~ msgstr "སེལ་འཐུ་འབད་ཡོད་པའི་གསལ་སྡུད་ རྩ་བསྐྲད་གཏང་" #~ msgid "Pan: Add a Server" #~ msgstr "པེན་: སར་བར་ཅིག་ ཁ་སྐོང་རྐྱབས་" #~ msgid "Pan: Edit a Server's Settings" #~ msgstr "པེན་: སར་བར་གྱི་སྒྲིག་སྟངས་ཅིག་ ཞུན་དག་འབད་" #~ msgid "Pan: Servers" #~ msgstr "པེན་: སར་བར་" #~ msgid "" #~ "Error saving \"%s\":\n" #~ "%s. %s" #~ msgstr "" #~ "\"%s\" སྲུང་བའི་སྐབས་ལུ་འཛོལ་བ་:\n" #~ "%s. %s" #~ msgid "for the next week" #~ msgstr "ཤུལ་མའི་བདུན་ཕྲག་ལུ་" #~ msgid "for the next three months" #~ msgstr "ཤུལ་མའི་ཟླཝ་གསུམ་པ་ལུ་" pan-0.162/po/el.po000066400000000000000000007220661475412772400137100ustar00rootroot00000000000000# translation of el.po to Greek # Greek translation of Pan. # Copyright (C) 2001 Free Software Foundation. # kostas: 04Sep2003, one small update # stelios: 16Mar2005, several updates # Simos Xenitellis , 2001. # Kostas Papadimas , 2003. # Kostas Papadimas , 2004. # Stylianos Papanastasiou , 2005. # keratea , 2013. # Dimitris Spingos (Δημήτρης Σπίγγος) , 2013. msgid "" msgstr "" "Project-Id-Version: el\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/pan/issues\n" "POT-Creation-Date: 2014-06-14 22:10+0000\n" "PO-Revision-Date: 2015-02-26 00:26+0200\n" "Last-Translator: Tom Tryfonidis \n" "Language-Team: team@gnome.gr\n" "Language: el\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Poedit 1.7.4\n" "X-Project-Style: gnome\n" #. update the titlebar #: ../pan.desktop.in.h:1 ../pan/gui/dl-headers-ui.cc:106 #: ../pan/gui/gui.cc:1040 ../pan/gui/gui.cc:1667 ../pan/gui/gui.cc:2009 #: ../pan/gui/score-add-ui.cc:602 msgid "Pan" msgstr "Pan" # Haven't come up (yet) with a satisfactory xlation of screensaver... #: ../pan.desktop.in.h:2 msgid "Newsreader" msgstr "Αναγνώστης ειδήσεων" #: ../pan.desktop.in.h:3 msgid "Read and Post Usenet Articles" msgstr "Ανάγνωση και αποστολή άρθρων Usenet" #: ../pan/data/article-cache.cc:144 ../pan/data/encode-cache.cc:62 #, c-format msgid "Error opening directory: \"%s\": %s" msgstr "Σφάλμα κατά το άνοιγμα καταλόγου \"%s\": %s" #: ../pan/data/article-cache.cc:235 ../pan/data/article-cache.cc:244 #: ../pan/data-impl/data-io.cc:199 ../pan/data-impl/data-io.cc:231 #: ../pan/gui/post-ui.cc:1723 #, c-format msgid "Unable to save \"%s\" %s" msgstr "Αδύνατη η αποθήκευση \"%s\" %s" #: ../pan/data/article-cache.cc:362 #, c-format msgid "Error opening file \"%s\" %s" msgstr "Σφάλμα κατά το άνοιγμα του αρχείου \"%s\" %s" #: ../pan/data/article-cache.cc:393 ../pan/data-impl/profiles.cc:174 #: ../pan/data-impl/server.cc:500 ../pan/general/file-util.cc:311 #: ../pan/gui/post-ui.cc:638 ../pan/gui/task-pane.cc:737 #, c-format msgid "Error reading file \"%s\": %s" msgstr "Σφάλμα κατά την ανάγνωση του αρχείου \"%s\": %s" #: ../pan/data/cert-store.cc:262 #, c-format msgid "Error opening SSL certificate directory: \"%s\": %s" msgstr "Σφάλμα κατά το άνοιγμα καταλόγου πιστοποιητικού SSL: \"%s\": %s" #: ../pan/data/cert-store.cc:293 #, c-format msgid "Successfully added %d SSL PEM certificate(s) to Certificate Store." msgstr "" "Πετυχημένη προσθήκη %d SSL PEM πιστοποιητικών στην αποθήκη πιστοποιητικών." #: ../pan/data/cert-store.cc:313 msgid "" "Error initializing Certificate Store. Check that the permissions for the " "folders ~/.pan2 and ~/.pan2/ssl_certs are set correctly. Fatal, exiting." msgstr "" "Σφάλμα κατά την αρχικοποίηση αποθήκης πιστοποιητικών. Ελέγξετε ότι τα " "δικαιώματα για τους φακέλους ~/.pan2 και ~/.pan2/ssl_certs έχουν οριστεί " "σωστά. Αν υπάρχει καίριο σφάλμα, έξοδος." #. load_group_descriptions (*_data_io); #: ../pan/data-impl/data-impl.cc:113 #, c-format msgid "Loaded data backend in %.1f seconds" msgstr "Φορτώθηκαν δεδομένα νωτιαίας υποστήριξης σε %.1f δευτερόλεπτα" #: ../pan/data-impl/data-impl.cc:143 msgid "Pan Newsreader's server passwords" msgstr "Κωδικοί πρόσβασης διακομιστή του αναγνώστη ειδήσεων Pan" #: ../pan/data-impl/groups.cc:94 #, c-format msgid "Skipping newsrc file for server \"%s\"" msgstr "Παράβλεψη αρχείου newsrc για διακομιστή \"%s\"" #: ../pan/data-impl/headers.cc:606 #, c-format msgid "Expired %lu old articles from \"%s\"" msgstr "Έληξαν %lu παλιά άρθρα από το \"%s\"" #: ../pan/data-impl/headers.cc:613 #, c-format msgid "" "Unsupported data version for %s headers: %d.\n" "Are you running an old version of Pan by accident?" msgstr "" "Μη υποστηριζόμενη έκδοση δεδομένων για %s κεφαλίδες: %d.\n" "Μήπως τρέχετε παλαιότερη έκδοση του Pan κατά λάθος;" #: ../pan/data-impl/headers.cc:628 #, c-format msgid "Loaded %lu articles for \"%s\" in %.1f seconds (%.0f per second)" msgstr "" "Μεταφορτώθηκαν %lu άρθρα για το \"%s\" σε %.1f δευτερόλεπτα (%.0f ανά " "δευτερόλεπτο)" #: ../pan/data-impl/headers.cc:857 #, c-format msgid "" "Saved %lu parts, %lu articles in \"%s\" in %.1f seconds (%.0f articles/sec)" msgstr "" "Αποθηκεύτηκαν %lu κομμάτια, %lu άρθρα στο \"%s\" σε %.1f δευτερόλεπτα (%.0f " "άρθρα/δευτερόλεπτο)" #: ../pan/data-impl/headers.cc:1191 #, c-format msgid "Added %lu articles to %s." msgstr "Προστέθηκαν %lu άρθρα στο %s." #: ../pan/data-impl/server.cc:261 #, c-format msgid "There seems to be no password set for server %s." msgstr "Φαίνεται να μην έχει οριστεί κωδικός πρόσβασης για τον διακομιστή %s." #: ../pan/data-impl/server.cc:265 msgid "GNOME Keyring denied access to the passwords." msgstr "Η κλειδοθήκη GNOME αρνήθηκε την πρόσβαση στους κωδικούς πρόσβασης." #: ../pan/data-impl/xover.cc:243 #, c-format msgid "Error reading from %s: unknown group \"%s\"" msgstr "Σφάλμα κατά την ανάγνωση από %s: άγνωστη ομάδα \"%s\"" #. build the locale strings #: ../pan/general/e-util.cc:211 msgid "%l:%M %p" msgstr "%l:%M %p" #: ../pan/general/e-util.cc:212 msgid "Today %l:%M %p" msgstr "Σήμερα %l:%M %p" #: ../pan/general/e-util.cc:213 msgid "%a %l:%M %p" msgstr "%a %l:%M %p" #: ../pan/general/e-util.cc:214 msgid "%b %d %l:%M %p" msgstr "%d %b %l:%M %p" #: ../pan/general/e-util.cc:215 msgid "%b %d %Y" msgstr "%d %b %Y" #: ../pan/general/e-util.cc:240 msgid "?" msgstr ";" #: ../pan/general/text-match.cc:193 #, c-format msgid "Can't use regular expression \"%s\": %s" msgstr "Αδύνατη η χρήση της κανονικής έκφρασης \"%s\": %s" #: ../pan/general/utf8-utils.cc:213 msgid "Couldn't determine article encoding. Non-UTF8 characters were removed." msgstr "" "Αδύνατος ο προσδιορισμός κωδικοποίησης άρθρου. Οι μη UTF8 χαρακτήρες " "αφαιρέθηκαν." #: ../pan/gui/actions.cc:303 ../pan/gui/post-ui.cc:446 msgid "_File" msgstr "_Αρχείο" # #: ../pan/gui/actions.cc:304 ../pan/gui/post-ui.cc:447 msgid "_Edit" msgstr "_Επεξεργασία" #: ../pan/gui/actions.cc:305 ../pan/gui/prefs-ui.cc:1107 msgid "_Layout" msgstr "_Διάταξη" #: ../pan/gui/actions.cc:306 msgid "_Group Pane" msgstr "Παράθυρο _ομάδας" #: ../pan/gui/actions.cc:307 msgid "_Header Pane" msgstr "_Παράθυρο κεφαλίδας" #: ../pan/gui/actions.cc:308 msgid "_Body Pane" msgstr "Παράθυρο _σώματος" # #: ../pan/gui/actions.cc:309 msgid "_View" msgstr "_Προβολή" #: ../pan/gui/actions.cc:310 msgid "Filte_r" msgstr "_Φίλτρο" #: ../pan/gui/actions.cc:311 msgid "_Go" msgstr "_Μετάβαση" # FIX? drop (see also "On Drop" above) #: ../pan/gui/actions.cc:312 ../pan/gui/prefs-ui.cc:1157 msgid "_Actions" msgstr "Ε_νέργειες" #: ../pan/gui/actions.cc:313 msgid "_Articles" msgstr "Ά_ρθρα" #: ../pan/gui/actions.cc:314 msgid "G_roups" msgstr "_Ομάδες" #: ../pan/gui/actions.cc:315 ../pan/gui/actions.cc:316 msgid "_Post" msgstr "_Αποστολή" # #: ../pan/gui/actions.cc:317 msgid "_Help" msgstr "_Βοήθεια" #: ../pan/gui/actions.cc:320 msgid "_Read Group" msgstr "_Ανάγνωση ομάδας" #: ../pan/gui/actions.cc:321 msgid "Read Group" msgstr "Ανάγνωση ομάδας" #: ../pan/gui/actions.cc:325 msgid "_Mark Selected Groups Read" msgstr "_Σήμανση επιλεγμένων ομάδων ως αναγνωσμένα" #: ../pan/gui/actions.cc:326 msgid "Mark Selected Groups Read" msgstr "Σήμανση επιλεγμένων ομάδων ως αναγνωσμένα" # #: ../pan/gui/actions.cc:330 msgid "_Delete Selected Groups' Articles" msgstr "_Διαγραφή των άρθρων επιλεγμένων ομάδων" # #: ../pan/gui/actions.cc:331 msgid "Delete Selected Groups' Articles" msgstr "Διαγραφή των άρθρων επιλεγμένων ομάδων" #: ../pan/gui/actions.cc:335 msgid "Get New _Headers in Selected Groups" msgstr "Λήψη των νέων _κεφαλίδων στις επιλεγμένες ομάδες" #: ../pan/gui/actions.cc:336 msgid "Get New Headers in Selected Groups" msgstr "Λήψη των νέων κεφαλίδων στις επιλεγμένες ομάδες" #: ../pan/gui/actions.cc:340 ../pan/gui/actions.cc:345 msgid "Get New _Headers in Subscribed Groups" msgstr "Λήψη των νέων _κεφαλίδων στις ομάδες με συνδρομή" #: ../pan/gui/actions.cc:341 ../pan/gui/actions.cc:346 msgid "Get New Headers in Subscribed Groups" msgstr "Λήψη νέων κεφαλίδων στις ομάδες με συνδρομή" #: ../pan/gui/actions.cc:350 msgid "Get _Headers..." msgstr "Λήψη _κεφαλίδων..." #: ../pan/gui/actions.cc:351 msgid "Get Headers..." msgstr "Λήψη κεφαλίδων..." #: ../pan/gui/actions.cc:355 ../pan/gui/actions.cc:356 msgid "Refresh Group List" msgstr "Ανανέωση λίστας ομάδας" #: ../pan/gui/actions.cc:360 msgid "_Subscribe" msgstr "_Συνδρομή" #: ../pan/gui/actions.cc:361 msgid "Subscribe" msgstr "Συνδρομή" #: ../pan/gui/actions.cc:365 msgid "_Unsubscribe" msgstr "_Κατάργηση συνδρομής" #: ../pan/gui/actions.cc:366 msgid "Unsubscribe" msgstr "Κατάργηση συνδρομής" #: ../pan/gui/actions.cc:370 msgid "_Save Articles..." msgstr "Απο_θήκευση άρθρων..." #: ../pan/gui/actions.cc:371 msgid "Save Articles..." msgstr "Αποθήκευση άρθρων..." #: ../pan/gui/actions.cc:375 msgid "Save Articles from Selected _NZB..." msgstr "Αποθήκευση άρθρων από επιλεγμένα _NZB..." #: ../pan/gui/actions.cc:376 msgid "Save Articles from Selected NZB" msgstr "Αποθήκευση άρθρων από επιλεγμένα NZB" #: ../pan/gui/actions.cc:380 msgid "Save Articles to an NZB _File..." msgstr "Αποθήκευση άρθρων σε _αρχείο NZB..." #: ../pan/gui/actions.cc:381 msgid "Save Articles to an NZB File" msgstr "Αποθήκευση άρθρων σε αρχείο NZB" # #: ../pan/gui/actions.cc:385 ../pan/gui/actions.cc:386 msgid "Print" msgstr "Εκτύπωση" #: ../pan/gui/actions.cc:390 msgid "_Import NZB Files..." msgstr "Ε_ισαγωγή αρχείων NZB..." #: ../pan/gui/actions.cc:395 msgid "_Cancel Last Task" msgstr "Α_κύρωση τελευταίας εργασίας" #: ../pan/gui/actions.cc:400 msgid "_Task Manager" msgstr "Διαχειριστής ερ_γασιών" #: ../pan/gui/actions.cc:405 msgid "_Event Log" msgstr "Καταγραφή _συμβάντων" # #: ../pan/gui/actions.cc:410 msgid "_Quit" msgstr "Έ_ξοδος" # #: ../pan/gui/actions.cc:415 msgid "Select _All Articles" msgstr "Λήψη ό_λων των άρθρων" # #: ../pan/gui/actions.cc:420 msgid "_Deselect All Articles" msgstr "_Αποεπιλογή όλων των άρθρων" #: ../pan/gui/actions.cc:425 msgid "Add Su_bthreads to Selection" msgstr "Προσθήκη _υποαλληλουχίας μηνυμάτων στην επιλογή" #: ../pan/gui/actions.cc:430 msgid "Add _Threads to Selection" msgstr "Προσθήκη α_λληλουχίας μηνυμάτων στην επιλογή" #: ../pan/gui/actions.cc:435 msgid "Add _Similar Articles to Selection" msgstr "Προσθήκη _παρόμοιων άρθρων στην επιλογή" #: ../pan/gui/actions.cc:440 msgid "Select Article _Body" msgstr "Επιλογή _σώματος άρθρου" #: ../pan/gui/actions.cc:445 msgid "Edit _Preferences" msgstr "Επεξεργασία _προτιμήσεων" #: ../pan/gui/actions.cc:450 msgid "Edit Selected _Group's Preferences" msgstr "Επεξεργασία προτιμήσεων της επιλεγμένης _ομάδας" #: ../pan/gui/actions.cc:455 ../pan/gui/post-ui.cc:463 msgid "Edit P_osting Profiles" msgstr "Επεξεργασία προφίλ α_ποστολής" # #: ../pan/gui/actions.cc:460 msgid "Edit _News Servers" msgstr "Επεξεργασία διακομιστών ε_ιδήσεων" #: ../pan/gui/actions.cc:465 msgid "Jump to _Group Tab" msgstr "Μετάβαση στην καρτέλα _ομάδας" # #: ../pan/gui/actions.cc:470 msgid "Jump to _Header Tab" msgstr "Μετάβαση στην καρτέλα _κεφαλίδας" #: ../pan/gui/actions.cc:475 msgid "Jump to _Body Tab" msgstr "Μετάβαση στην καρτέλα _σώματος" # #: ../pan/gui/actions.cc:480 msgid "_Rot13 Selected Text" msgstr "Επιλεγμένο κείμενο R_ot13" #: ../pan/gui/actions.cc:485 msgid "Clear _Header Pane" msgstr "Καθαρισμός παραθύρου _κεφαλίδας" #: ../pan/gui/actions.cc:490 msgid "Clear _Body Pane" msgstr "Καθαρισμός παραθύρου _σώματος" #: ../pan/gui/actions.cc:495 msgid "Cache Article" msgstr "Κρυφό άρθρο" #: ../pan/gui/actions.cc:500 msgid "Read Article" msgstr "Ανάγνωση άρθρου" #: ../pan/gui/actions.cc:505 msgid "Show Article Information" msgstr "Εμφάνιση πληροφοριών άρθρου" #: ../pan/gui/actions.cc:510 msgid "Read _More" msgstr "Ανάγνωση _περισσοτέρων" #: ../pan/gui/actions.cc:511 msgid "Read More" msgstr "Ανάγνωση περισσοτέρων" #: ../pan/gui/actions.cc:515 msgid "Read _Back" msgstr "Ανάγνωση προς τα πίσ_ω" #: ../pan/gui/actions.cc:516 msgid "Read Back" msgstr "Ανάγνωση προς τα πίσω" # #: ../pan/gui/actions.cc:520 msgid "Next _Unread Group" msgstr "Επόμενη αδιά_βαστη ομάδα" #: ../pan/gui/actions.cc:525 msgid "Next _Group" msgstr "Επόμενη ο_μάδα" # #: ../pan/gui/actions.cc:530 msgid "Next _Unread Article" msgstr "Επόμενο αδιά_βαστο άρθρο" # #: ../pan/gui/actions.cc:531 msgid "Next Unread Article" msgstr "Επόμενο αδιάβαστο άρθρο" #: ../pan/gui/actions.cc:535 msgid "Next _Article" msgstr "Επόμενο ά_ρθρο" #: ../pan/gui/actions.cc:536 msgid "Next Article" msgstr "Επόμενο άρθρο" # #: ../pan/gui/actions.cc:540 msgid "Next _Watched Article" msgstr "Επόμενο πα_ρακολουθούμενο άρθρο" # #: ../pan/gui/actions.cc:545 msgid "Next Unread _Thread" msgstr "Επόμενο αδιάβαστη α_λληλουχία μηνυμάτων" #: ../pan/gui/actions.cc:546 msgid "Next Unread Thread" msgstr "Επόμενο αδιάβαστη αλληλουχία μηνυμάτων" #: ../pan/gui/actions.cc:550 msgid "Next Threa_d" msgstr "Επόμενο _νήμα" # #: ../pan/gui/actions.cc:555 msgid "Pre_vious Article" msgstr "Προη_γούμενο άρθρο" #: ../pan/gui/actions.cc:560 msgid "Previous _Thread" msgstr "Προηγούμενη α_λληλουχία μηνυμάτων" #: ../pan/gui/actions.cc:565 msgid "_Parent Article" msgstr "_Γονικό άρθρο" #: ../pan/gui/actions.cc:570 msgid "Ignore _Author" msgstr "Παράβλεψη _συγγραφέα" #: ../pan/gui/actions.cc:574 msgid "_Watch Thread" msgstr "_Παρακολούθηση αλληλουχίας μηνυμάτων" #: ../pan/gui/actions.cc:579 msgid "_Ignore Thread" msgstr "_Παράβλεψη αλληλουχίας μηνυμάτων" #: ../pan/gui/actions.cc:584 ../pan/gui/actions.cc:585 msgid "_Toggle Flag On/Off for Thread" msgstr "Ε_ναλλαγή σημαίας ενεργή/ανενεργή για αλληλουχία μηνυμάτων" #: ../pan/gui/actions.cc:589 ../pan/gui/actions.cc:590 msgid "_Turn Flag Off for Thread" msgstr "_Απενεργοποίηση σημαίας για αλληλουχία μηνυμάτων" # #: ../pan/gui/actions.cc:594 ../pan/gui/actions.cc:595 msgid "_Select All Flagged Threads" msgstr "_Επιλογή όλων των αλληλουχιών μηνυμάτων με σημαία" #: ../pan/gui/actions.cc:599 ../pan/gui/actions.cc:600 msgid "_Go to Next Flagged Thread" msgstr "_Μετάβαση στην επόμενη αλληλουχία μηνυμάτων με σημαία" # #: ../pan/gui/actions.cc:604 ../pan/gui/actions.cc:605 msgid "_Go to Last Flagged Thread" msgstr "_Μετάβαση στην τελευταία αλληλουχία μηνυμάτων με σημαία" #: ../pan/gui/actions.cc:609 ../pan/gui/actions.cc:610 msgid "_Invert Selection" msgstr "_Αντιστροφή επιλογής" #: ../pan/gui/actions.cc:614 msgid "Edit Article's Watch/Ignore/Score..." msgstr "Επεξεργασία παρακολούθησης/παράβλεψης/βαθμολογίας του άρθρου..." #: ../pan/gui/actions.cc:619 msgid "Add a _Scoring Rule..." msgstr "Προσθήκη κανόνα _βαθμολογίας..." #: ../pan/gui/actions.cc:624 msgid "Cance_l Article..." msgstr "Α_κύρωση άρθρου..." #: ../pan/gui/actions.cc:629 msgid "_Supersede Article..." msgstr "Αν_τικατάσταση άρθρου..." #: ../pan/gui/actions.cc:634 msgid "_Delete Article" msgstr "_Διαγραφή άρθρου" #: ../pan/gui/actions.cc:639 msgid "Clear Article Cache" msgstr "Καθαρισμός κρυφού άρθρου" #: ../pan/gui/actions.cc:644 msgid "_Mark Article as Read" msgstr "_Σήμανση άρθρου ως διαβασμένου" #: ../pan/gui/actions.cc:649 msgid "Mark Article as _Unread" msgstr "Σήμανση ως αδ_ιάβαστου" #: ../pan/gui/actions.cc:655 msgid "_Mark Thread as Read" msgstr "_Σήμανση αλληλουχίας μηνυμάτων ως διαβασμένης" #: ../pan/gui/actions.cc:660 msgid "Mark Thread as _Unread" msgstr "Σήμανση αλληλουχίας μηνυμάτων ως αδ_ιάβαστης" #: ../pan/gui/actions.cc:665 msgid "_Post to Newsgroup" msgstr "_Αποστολή στην ομάδα ειδήσεων" #: ../pan/gui/actions.cc:666 msgid "Post to Newsgroup" msgstr "Αποστολή στην ομάδα συζήτησης" #: ../pan/gui/actions.cc:670 msgid "_Followup to Newsgroup" msgstr "_Παρακολούθηση ομάδας ειδήσεων" #: ../pan/gui/actions.cc:671 msgid "Followup to Newsgroup" msgstr "Παρακολούθηση ομάδας ειδήσεων" #: ../pan/gui/actions.cc:675 msgid "_Reply to Author in Mail" msgstr "Α_πάντηση στον συντάκτη με αλληλογραφία" #: ../pan/gui/actions.cc:680 msgid "_Pan Home Page" msgstr "Αρ_χική Σελίδα του Pan" #: ../pan/gui/actions.cc:685 msgid "Give _Feedback or Report a Bug..." msgstr "Ανά_δραση ή αναφορά ενός σφάλματος..." #: ../pan/gui/actions.cc:690 msgid "_Tip Jar..." msgstr "_Tip Jar..." # #: ../pan/gui/actions.cc:695 msgid "_About" msgstr "_Περί" #: ../pan/gui/actions.cc:700 msgid "Edit _SSL Certificates" msgstr "Επε_ξεργασία πιστοποιητικών SSL" #: ../pan/gui/actions.cc:715 msgid "_Thread Headers" msgstr "Κεφαλίδες α_λληλουχίας μηνυμάτων" #: ../pan/gui/actions.cc:716 msgid "Wrap Article Body" msgstr "Αναδίπλωση σώματος άρθρου" #: ../pan/gui/actions.cc:717 msgid "Show Article Signature" msgstr "Εμφάνιση υπογραφής άρθρου" # #: ../pan/gui/actions.cc:718 msgid "Mute _Quoted Text" msgstr "Σίγαση κειμένου _σε παράθεση" #: ../pan/gui/actions.cc:719 msgid "Show All _Headers in Body Pane" msgstr "Εμφάνιση όλων των κε_φαλίδων στο παράθυρο σώματος" #: ../pan/gui/actions.cc:720 msgid "Show _Smilies as Graphics" msgstr "Εμφάνιση _μειδιαμάτων ως γραφικών" #: ../pan/gui/actions.cc:721 msgid "Show *Bold*, __Underlined__, and /Italic/" msgstr "Εμφάνιση *έντονων*, __υπογραμμισμένων__ και /πλάγιων/" #: ../pan/gui/actions.cc:722 msgid "Size Pictures to _Fit" msgstr "_Προσαρμογή μεγέθους εικόνων" #: ../pan/gui/actions.cc:723 msgid "Use _Monospace Font" msgstr "Χρήση γραμματοσειράς στα_θερού πλάτους" #: ../pan/gui/actions.cc:724 msgid "Set Focus to Images" msgstr "Ορισμός εστίασης σε εικόνες" #: ../pan/gui/actions.cc:725 msgid "Highlight _URLs" msgstr "Επισήμανση _διευθύνσεων" #: ../pan/gui/actions.cc:728 msgid "_Work Online" msgstr "Ερ_γασία με σύνδεση" #: ../pan/gui/actions.cc:729 msgid "_Tabbed Layout" msgstr "Διάταξη με _καρτέλες" #: ../pan/gui/actions.cc:730 msgid "Show Group _Pane" msgstr "Εμφάνιση _παραθύρου ομάδας" #: ../pan/gui/actions.cc:731 msgid "Show Hea_der Pane" msgstr "Εμφάνιση παραθύρου κε_φαλίδας" #: ../pan/gui/actions.cc:732 msgid "Show Bod_y Pane" msgstr "Εμφάνιση παραθύρου σώμα_τος" #: ../pan/gui/actions.cc:733 msgid "Show _Toolbar" msgstr "Εμφάνιση ερ_γαλειοθήκης" #: ../pan/gui/actions.cc:734 msgid "Abbreviate Group Names" msgstr "Συντόμευση ονομάτων ομάδων" #: ../pan/gui/actions.cc:736 msgid "Match Only _Read Articles" msgstr "Συμφωνία μόνο με _διαβασμένα άρθρα" #: ../pan/gui/actions.cc:736 msgid "Match Only Read Articles" msgstr "Συμφωνία μόνο με διαβασμένα άρθρα" #: ../pan/gui/actions.cc:737 msgid "Match Only _Unread Articles" msgstr "Συμφωνία μόνο με _αδιάβαστα άρθρα" #: ../pan/gui/actions.cc:737 msgid "Match Only Unread Articles" msgstr "Συμφωνία μόνο με αδιάβαστα άρθρα" #: ../pan/gui/actions.cc:738 msgid "Match Only _Cached Articles" msgstr "Συμφωνία μόνο με _κρυφά άρθρα" #: ../pan/gui/actions.cc:738 msgid "Match Only Cached Articles" msgstr "Συμφωνία μόνο με κρυφά άρθρα" #: ../pan/gui/actions.cc:739 msgid "Match Only _Complete Articles" msgstr "Συμφωνία μόνο με _ολοκληρωμένα άρθρα" #: ../pan/gui/actions.cc:739 msgid "Match Only Complete Articles" msgstr "Συμφωνία μόνο με ολοκληρωμένα άρθρα" #: ../pan/gui/actions.cc:740 msgid "Match Only _My Articles" msgstr "Συμφωνία μόνο με των π_ροσωπικά άρθρα" #: ../pan/gui/actions.cc:740 msgid "Match Only My Articles" msgstr "Συμφωνία μόνο με προσωπικά άρθρα" #: ../pan/gui/actions.cc:741 msgid "Match Only _Watched Articles" msgstr "Συμφωνία μόνο με π_αρακολουθούμενα άρθρα" #: ../pan/gui/actions.cc:741 msgid "Match Only Watched Articles" msgstr "Συμφωνία μόνο με τα παρακολουθούμενα άρθρα" #: ../pan/gui/actions.cc:743 msgid "Match Scores of 9999 (_Watched)" msgstr "Συμφωνία με βαθμολογίες 9999 (πα_ρακολουθούμενη)" #: ../pan/gui/actions.cc:744 msgid "Match Scores of 5000...9998 (_High)" msgstr "Συμφωνία με βαθμολογίες μεταξύ 5000...9998 (_υψηλή)" #: ../pan/gui/actions.cc:745 msgid "Match Scores of 1...4999 (Me_dium)" msgstr "Συμφωνία με βαθμολογίες μεταξύ 1...4999 (_μεσαία)" #: ../pan/gui/actions.cc:746 msgid "Match Scores of 0 (_Normal)" msgstr "Συμφωνία με βαθμολογίες 0 (_κανονική)" #: ../pan/gui/actions.cc:747 msgid "Match Scores of -9998...-1 (_Low)" msgstr "Συμφωνία με βαθμολογίες μεταξύ -9998...-1 (_χαμηλή)" #: ../pan/gui/actions.cc:748 msgid "Match Scores of -9999 (_Ignored)" msgstr "Συμφωνία με βαθμολογίες -9999 (_αγνοούμενη)" #: ../pan/gui/actions.cc:750 msgid "Enable/Disable All _Rules" msgstr "Ενεργοποίηση/απενεργοποίηση όλων των _κανόνων" #: ../pan/gui/actions.cc:778 msgid "Show Matching _Articles" msgstr "Εμφάνιση ά_ρθρων που ταιριάζουν" #: ../pan/gui/actions.cc:779 msgid "Show Matching Articles' _Threads" msgstr "Εμφάνιση α_λληλουχιών μηνυμάτων άρθρων που ταιριάζουν" #: ../pan/gui/actions.cc:780 msgid "Show Matching Articles' _Subthreads" msgstr "Εμφάνιση _υποαλληλουχιών θεμάτων άρθρων που ταιριάζουν" # #: ../pan/gui/body-pane.cc:1056 #, c-format msgid "Unnamed File" msgstr "Ανώνυμο αρχείο" # #: ../pan/gui/body-pane.cc:1137 ../pan/gui/gui.cc:1980 #: ../pan/gui/header-pane.cc:1313 ../pan/gui/header-pane.cc:1748 #: ../pan/gui/post-ui.cc:2588 ../pan/gui/prefs-ui.cc:855 #: ../pan/gui/score-add-ui.cc:139 ../pan/gui/task-pane.cc:797 msgid "Subject" msgstr "Θέμα" # #: ../pan/gui/body-pane.cc:1139 ../pan/gui/gui.cc:1980 msgid "From" msgstr "Από" # #: ../pan/gui/body-pane.cc:1141 ../pan/gui/gui.cc:1981 #: ../pan/gui/header-pane.cc:1827 ../pan/gui/log-ui.cc:307 #: ../pan/gui/prefs-ui.cc:851 msgid "Date" msgstr "Ημερομηνία" #: ../pan/gui/body-pane.cc:1148 msgid "Newsgroups" msgstr "Ομάδες ειδήσεων" #: ../pan/gui/body-pane.cc:1155 ../pan/gui/body-pane.cc:1163 #: ../pan/gui/body-pane.cc:1170 msgid "User-Agent" msgstr "Αντιπρόσωπος χρήστη" #: ../pan/gui/body-pane.cc:1176 msgid "Followup-To" msgstr "Παρακολούθηση σε" #: ../pan/gui/body-pane.cc:1186 msgid "Reply-To" msgstr "Απάντηση σε" #: ../pan/gui/body-pane.cc:1229 msgid " from " msgstr " από " #: ../pan/gui/body-pane.cc:1231 msgid " at " msgstr " στις " #: ../pan/gui/body-pane.cc:1318 #, c-format msgid "" "This is a PGP-Signed message.\n" "\n" "Signer: %s ('%s')\n" "Valid until: %s\n" "Created on: %s" msgstr "" "Αυτό είναι ένα μήνυμα υπογραμμένο ως PGP.\n" "\n" "Υπογράφων: %s ('%s')\n" "Έγκυρο μέχρι: %s\n" "Δημιουργήθηκε στις: %s" #: ../pan/gui/body-pane.cc:1323 msgid "always" msgstr "πάντα" #: ../pan/gui/body-pane.cc:1543 msgid "Copy _URL" msgstr "Αντιγραφή _διευθύνσεων" #: ../pan/gui/body-pane.cc:1748 msgid "Save Attachment As..." msgstr "Αποθήκευση συνημμένου ως..." #: ../pan/gui/body-pane.cc:1751 msgid "Save All Attachments" msgstr "Αποθήκευση όλων των συνημμένων" #. add a toolbar for attachments #: ../pan/gui/body-pane.cc:1821 msgid "Attachments" msgstr "Συνημμένα" #: ../pan/gui/body-pane.cc:1836 msgid "Text View" msgstr "Προβολή Κειμένου" #: ../pan/gui/body-pane.cc:1845 msgid "HTML View" msgstr "Προβολή HTML" #: ../pan/gui/dl-headers-ui.cc:112 #, c-format msgid "%d Group" msgid_plural "%d Groups" msgstr[0] "%d ομάδα" msgstr[1] "%d ομάδες" #: ../pan/gui/dl-headers-ui.cc:135 msgid "Get the last N _days' headers: " msgstr "Λήψη των κεφαλίδων των τελευταίων Ν _ημερών: " #: ../pan/gui/dl-headers-ui.cc:143 msgid "Get _new headers" msgstr "Λήψη κεφαλίδων _ειδήσεων" #: ../pan/gui/dl-headers-ui.cc:147 msgid "Get _all headers" msgstr "Λήψη ό_λων των κεφαλίδων" #: ../pan/gui/dl-headers-ui.cc:151 msgid "Get the _latest N headers: " msgstr "Λήψη των _τελευταίων Ν κεφαλίδων: " # FIX? drop (see also "On Drop" above) #: ../pan/gui/e-action-combo-box.c:386 ../pan/gui/prefs-ui.cc:848 msgid "Action" msgstr "Ενέργεια" #: ../pan/gui/e-action-combo-box.c:387 msgid "A GtkRadioAction" msgstr "Μια GtkRadioAction" # #: ../pan/gui/e-charset.c:51 ../pan/gui/task-pane.cc:558 msgid "Unknown" msgstr "Άγνωστο" #: ../pan/gui/e-charset.c:52 msgid "Arabic" msgstr "Αραβική" #: ../pan/gui/e-charset.c:53 msgid "Baltic" msgstr "Βαλτικής" #: ../pan/gui/e-charset.c:54 msgid "Central European" msgstr "Κεντρικής Ευρώπης" #: ../pan/gui/e-charset.c:55 msgid "Chinese" msgstr "Κινέζικη" #: ../pan/gui/e-charset.c:56 msgid "Cyrillic" msgstr "Κυριλλική" #: ../pan/gui/e-charset.c:57 msgid "Greek" msgstr "Ελληνική" #: ../pan/gui/e-charset.c:58 msgid "Hebrew" msgstr "Εβραϊκή" #: ../pan/gui/e-charset.c:59 msgid "Japanese" msgstr "Ιαπωνική" #: ../pan/gui/e-charset.c:60 msgid "Korean" msgstr "Κορεάτικη" #: ../pan/gui/e-charset.c:61 msgid "Thai" msgstr "Τάι" #: ../pan/gui/e-charset.c:62 msgid "Turkish" msgstr "Τουρκική" #: ../pan/gui/e-charset.c:63 msgid "Unicode" msgstr "Unicode" #: ../pan/gui/e-charset.c:64 msgid "Western European" msgstr "Δυτικής Ευρώπης" #: ../pan/gui/e-charset.c:65 msgid "Western European, New" msgstr "Δυτικής Ευρώπης, Νέα" #: ../pan/gui/e-charset.c:84 ../pan/gui/e-charset.c:85 #: ../pan/gui/e-charset.c:86 msgid "Traditional" msgstr "Παραδοσιακή" #: ../pan/gui/e-charset.c:87 ../pan/gui/e-charset.c:88 #: ../pan/gui/e-charset.c:89 ../pan/gui/e-charset.c:90 msgid "Simplified" msgstr "Απλοποιημένη" #: ../pan/gui/e-charset.c:93 msgid "Ukrainian" msgstr "Ουκρανική" #: ../pan/gui/e-charset.c:96 msgid "Visual" msgstr "Οπτική" #: ../pan/gui/e-charset-combo-box.c:93 ../pan/gui/gui.cc:2178 #: ../pan/gui/post-ui.cc:548 ../pan/gui/prefs-ui.cc:759 msgid "Character Encoding" msgstr "Κωδικοποίηση χαρακτήρα" #: ../pan/gui/e-charset-combo-box.c:117 msgid "Enter the character set to use" msgstr "Εισάγετε το σύνολο χαρακτήρων για χρήση" #: ../pan/gui/e-charset-combo-box.c:336 msgid "Other..." msgstr "Άλλο..." #: ../pan/gui/e-cte-dialog.c:76 msgid "Default Encoding" msgstr "Προκαθορισμένη κωδικοποίηση" #: ../pan/gui/e-cte-dialog.c:78 msgid "7-Bit Encoding" msgstr "Κωδικοποίηση 7 Bit" #: ../pan/gui/e-cte-dialog.c:80 msgid "8-Bit Encoding" msgstr "Κωδικοποίηση 8 Bit" #: ../pan/gui/e-cte-dialog.c:82 msgid "Base64 Encoding" msgstr "Κωδικοποίηση Base64" #: ../pan/gui/e-cte-dialog.c:84 msgid "Quoted-Printable Encoding" msgstr "Κωδικοποίηση Quoted-Printable" #: ../pan/gui/group-pane.cc:330 msgid "Sent" msgstr "Απεσταλμένα" #: ../pan/gui/group-pane.cc:331 msgid "Drafts" msgstr "Πρόχειρα" #: ../pan/gui/group-pane.cc:537 msgid "Group" msgstr "Ομάδα" #: ../pan/gui/group-pane.cc:538 msgid "Group (regex)" msgstr "Ομάδα (κανονική έκφραση)" #: ../pan/gui/group-pane.cc:1010 msgid "Local Folders" msgstr "Τοπικοί φάκελοι" #: ../pan/gui/group-pane.cc:1011 msgid "Subscribed Groups" msgstr "Ομάδες με συνδρομή" #: ../pan/gui/group-pane.cc:1012 msgid "Other Groups" msgstr "Άλλες ομάδες" # #: ../pan/gui/group-pane.cc:1052 ../pan/gui/score-view-ui.cc:157 msgid "Name" msgstr "Όνομα" #: ../pan/gui/group-prefs-dialog.cc:162 msgid "No Profiles defined in Edit|Posting Profiles." msgstr "Δεν έχουν καθοριστεί προφίλ στα προφίλ επεξεργασίας|αποστολής." # #: ../pan/gui/group-prefs-dialog.cc:273 msgid "Pan: Group Preferences" msgstr "Pan: Προτιμήσεις ομάδας" #: ../pan/gui/group-prefs-dialog.cc:288 #, c-format msgid "Properties for Groups" msgstr "Ιδιότητες για ομάδες" #: ../pan/gui/group-prefs-dialog.cc:290 #, c-format msgid "Properties for %s" msgstr "Ιδιότητες για %s" #: ../pan/gui/group-prefs-dialog.cc:298 msgid "Character _encoding:" msgstr "_Κωδικοποίηση χαρακτήρων:" #: ../pan/gui/group-prefs-dialog.cc:300 msgid "Directory for Saving Attachments" msgstr "Κατάλογος για την αποθήκευση συνημμένων" #: ../pan/gui/group-prefs-dialog.cc:308 msgid "Directory for _saving attachments:" msgstr "Κατάλογος για την _αποθήκευση συνημμένων:" #: ../pan/gui/group-prefs-dialog.cc:310 msgid "Posting _profile:" msgstr "Αποστολή _προφίλ:" #: ../pan/gui/group-prefs-dialog.cc:315 msgid "Spellchecker _language:" msgstr "_Γλώσσα ελέγχου ορθογραφίας:" #: ../pan/gui/group-prefs-dialog.cc:318 msgid "Group color:" msgstr "Χρώμα ομάδας:" #: ../pan/gui/gui.cc:312 msgid "Open the Task Manager" msgstr "Άνοιγμα του διαχειριστή εργασιών" #: ../pan/gui/gui.cc:335 msgid "Open the Event Log" msgstr "Άνοιγμα της καταγραφής συμβάντων" #: ../pan/gui/gui.cc:611 msgid "Save NZB's Files" msgstr "Αποθήκευση αρχείων NZB" #: ../pan/gui/gui.cc:638 msgid "Untitled.nzb" msgstr "Ανώνυμο.nzb" #: ../pan/gui/gui.cc:640 msgid "Save NZB File as..." msgstr "Αποθήκευση αρχείου NZB ως..." #: ../pan/gui/gui.cc:809 msgid "Import NZB Files" msgstr "Εισαγωγή αρχείων NZB" #: ../pan/gui/gui.cc:817 ../pan/gui/post-ui.cc:3287 msgid "NZB Files" msgstr "Αρχεία NZB" #: ../pan/gui/gui.cc:822 msgid "All Files" msgstr "Όλα τα αρχεία" #: ../pan/gui/gui.cc:1334 msgid "Unable to supersede article." msgstr "Αδύνατη η αντικατάσταση του άρθρου." #: ../pan/gui/gui.cc:1335 ../pan/gui/gui.cc:1409 msgid "The article doesn't match any of your posting profiles." msgstr "Το άρθρο δεν ταιριάζει με οποιαδήποτε από τα προφίλ αποστολής." #: ../pan/gui/gui.cc:1382 msgid "Revise and send this article to replace the old one." msgstr "" "Επανεξέταση και αποστολή αυτού του άρθρου για αντικατάσταση του παλιού." #: ../pan/gui/gui.cc:1383 ../pan/gui/gui.cc:1446 msgid "Be patient! It will take time for your changes to take effect." msgstr "Να είσαστε υπομονετικοί! Θα πάρει ώρα μέχρι να γίνουν οι αλλαγές σας." #: ../pan/gui/gui.cc:1408 msgid "Unable to cancel article." msgstr "Αδύνατη η ακύρωση του άρθρου." #: ../pan/gui/gui.cc:1445 msgid "Send this article to ask your server to cancel your other one." msgstr "" "Αποστολή αυτού του άρθρου για να ζητήσετε από τον διακομιστή σας να ακυρώσει " "το άλλο." #: ../pan/gui/gui.cc:1463 msgid "You have marked some articles for deletion." msgstr "Έχετε σημειώσει κάποια άρθρα για διαγραφή." #: ../pan/gui/gui.cc:1464 msgid "Are you sure you want to delete them?" msgstr "Είστε βέβαιοι ότι θέλετε να τα διαγράψετε;" #: ../pan/gui/gui.cc:1490 msgid "Do you want to accept it permanently? (You can change this later.)" msgstr "Θέλετε να το δεχτείτε μόνιμα; (Μπορείτε να το αλλάξετε αργότερα.)" #: ../pan/gui/gui.cc:1670 msgid "Copyright \\u00A9 2002-2012 Charles Kerr and others" msgstr "Πνευματικά δικαιώματα \\u00A9 2002-2012 Charles Kerr και άλλοι" #: ../pan/gui/gui.cc:1675 msgid "translator-credits" msgstr "" "Ελληνική μεταφραστική ομάδα GNOME\n" " Δημήτρης Σπίγγος \n" " Μαρία Μαυρίδου \n" "\n" "Για περισσότερες πληροφορίες, επισκεφθείτε τη σελίδα\n" "http://gnome.gr/" #: ../pan/gui/gui.cc:1808 msgid "_1. Header Pane" msgstr "_1. Παράθυρο κεφαλίδων" #: ../pan/gui/gui.cc:1809 msgid "_2. Search Pane" msgstr "_2. Παράθυρο αναζητήσεων" #: ../pan/gui/gui.cc:1815 msgid "_1. Group Pane" msgstr "_1. Παράθυρο ομάδων" #: ../pan/gui/gui.cc:1817 ../pan/gui/gui.cc:1819 msgid "_2. Header Pane" msgstr "_2. Παράθυρο κεφαλίδας" #: ../pan/gui/gui.cc:1821 msgid "_3. Body Pane" msgstr "_3. Παράθυρο σώματος" #: ../pan/gui/gui.cc:1917 ../pan/gui/gui.cc:1932 msgid " Bytes" msgstr " Bytes" #: ../pan/gui/gui.cc:1920 msgid " KB" msgstr " KB" #: ../pan/gui/gui.cc:1923 msgid " MB" msgstr " MB" #: ../pan/gui/gui.cc:1926 msgid " GB" msgstr " GB" #: ../pan/gui/gui.cc:1929 msgid " TB" msgstr " TB" #: ../pan/gui/gui.cc:1961 #, c-format msgid "This article is complete with %d part." msgid_plural "This article has all %d parts." msgstr[0] "Το άρθρο είναι πλήρες με %d μέρος." msgstr[1] "Αυτό το άρθρο έχει όλα τα %d μέρη." #: ../pan/gui/gui.cc:1963 #, c-format msgid "This article is missing %d part." msgid_plural "This article is missing %d of its %d parts:" msgstr[0] "Σε αυτό το άρθρο λείπει %d μέρος." msgstr[1] "Σε αυτό το άρθρο λείπουν %d από τα %d μέρη του:" # #: ../pan/gui/gui.cc:1981 ../pan/gui/header-pane.cc:1315 #: ../pan/gui/task-pane.cc:799 msgid "Message-ID" msgstr "Αναγνωριστικό μηνύματος" #: ../pan/gui/gui.cc:1982 ../pan/gui/header-pane.cc:1796 #: ../pan/gui/prefs-ui.cc:852 msgid "Lines" msgstr "Γραμμές" #: ../pan/gui/gui.cc:1982 msgid "Size" msgstr "Μέγεθος" #: ../pan/gui/gui.cc:1983 ../pan/gui/header-pane.cc:1812 #: ../pan/gui/prefs-ui.cc:850 msgid "Bytes" msgstr "Οκτάδες" #: ../pan/gui/gui.cc:2033 msgid "" "Error loading iconv library. Encoding certain character sets will not work " "in GUI." msgstr "" "Σφάλμα κατά τη φόρτωση βιβλιοθήκης iconv. Η κωδικοποίηση συγκεκριμένων " "συνόλων χαρακτήρων δεν θα δουλέψει στο GUI." #: ../pan/gui/gui.cc:2179 msgid "Body Pane Encoding" msgstr "Κωδικοποίηση του παραθύρου σώματος" #: ../pan/gui/gui.cc:2210 ../pan/gui/task-pane.cc:609 #, c-format msgid "Offline" msgstr "Αποσυνδεδεμένος" # #: ../pan/gui/gui.cc:2214 #, c-format msgid "Closing %d connection" msgid_plural "Closing %d connections" msgstr[0] "Κλείνει %d συνδέση" msgstr[1] "Κλείνουν %d συνδέσεις" # #: ../pan/gui/gui.cc:2216 ../pan/gui/gui.cc:2246 #, c-format msgid "No Connections" msgstr "Χωρίς συνδέσεις" #: ../pan/gui/gui.cc:2220 #, c-format msgid "Connecting" msgstr "Συνδέεται" #: ../pan/gui/gui.cc:2233 #, c-format msgid "%s: %d idle, %d active @ %.1f KiBps" msgstr "%s: %d αδρανές, %d ενεργό @ %.1f KiBps" #: ../pan/gui/gui.cc:2289 #, c-format msgid "No Tasks" msgstr "Χωρίς εργασίες" #: ../pan/gui/gui.cc:2291 ../pan/gui/prefs-ui.cc:1090 msgid "Tasks" msgstr "Εργασίες" #: ../pan/gui/gui.cc:2308 ../pan/gui/task-pane.cc:475 #, c-format msgid "%lu tasks, %s, %.1f KiBps, ETA %d:%02d:%02d" msgstr "%lu εργασίες, %s, %.1f KiBps, ETA %d:%02d:%02d" #: ../pan/gui/gui.cc:2360 msgid "" "Pan is now offline. Please see \"File|Event Log\" and correct the problem, " "then use \"File|Work Online\" to continue." msgstr "" "Το Pan είναι τώρα αποσυνδεμένο. Παρακαλούμε δείτε \"Αρχείο|Καταγραφή " "συμβάντων\" και διορθώστε το πρόβλημα, έπειτα χρησιμοποιήστε \"Αρχείο|" "Εργασία με σύνδεση\" για να συνεχίσετε." # #: ../pan/gui/header-pane.cc:1311 ../pan/gui/task-pane.cc:795 msgid "Subject or Author" msgstr "Θέμα ή συντάκτης" # #: ../pan/gui/header-pane.cc:1312 ../pan/gui/task-pane.cc:796 msgid "Sub or Auth (regex)" msgstr "Θέμα ή συντάκτης (κανονική έκφραση)" #: ../pan/gui/header-pane.cc:1314 ../pan/gui/header-pane.cc:1780 #: ../pan/gui/prefs-ui.cc:849 ../pan/gui/score-add-ui.cc:140 #: ../pan/gui/task-pane.cc:798 msgid "Author" msgstr "Συντάκτης" #: ../pan/gui/header-pane.cc:1765 ../pan/gui/prefs-ui.cc:853 msgid "Score" msgstr "Βαθμολογία" #: ../pan/gui/log-ui.cc:104 msgid "Save Event List" msgstr "Αποθήκευση λίστας συμβάντων" # #: ../pan/gui/log-ui.cc:258 msgid "Pan: Events" msgstr "Pan: Συμβάντα" # #: ../pan/gui/log-ui.cc:317 msgid "Message" msgstr "Μήνυμα" #: ../pan/gui/pan.cc:359 msgid "Maximize" msgstr "Μεγιστοποίηση" #: ../pan/gui/pan.cc:412 msgid "An error has occurred!" msgstr "Προέκυψε σφάλμα!" #: ../pan/gui/pan.cc:426 msgid "New Articles!" msgstr "Νέα άρθρα!" #: ../pan/gui/pan.cc:427 msgid "" "There are new\n" "articles available." msgstr "" "Υπάρχουν νέα\n" "διαθέσιμα άρθρα." #: ../pan/gui/pan.cc:494 msgid "Toggle on/offline" msgstr "Εναλλαγή με/χωρίς σύνδεση" #: ../pan/gui/pan.cc:542 msgid "" "Thank you for trying Pan!\n" " \n" "To start newsreading, first Add a Server." msgstr "" "Σας ευχαριστούμε που δοκιμάζετε το Pan!\n" " \n" "Για να αρχίσετε ανάγνωση ειδήσεων, προσθέστε πρώτα έναν διακομιστή." #: ../pan/gui/pan.cc:624 msgid "" "General Options\n" " -h, --help Show this usage page.\n" " --verbose Be verbose (in non-GUI mode).\n" "\n" "URL Options\n" " headers:group.name Download new headers for the specified " "newsgroup.\n" " --no-gui On news:message-id, dump the article to stdout.\n" "\n" "NZB Batch Options\n" " --nzb file1 file2 ... Process nzb files without launching all of Pan.\n" " -o path, --output=path Path to save attachments listed in the nzb " "files.\n" " --no-gui Only show console output, not the download " "queue.\n" msgstr "" "Γενικές επιλογές\n" " -h, --help Εμφάνιση αυτής της χρηστικής σελίδας.\n" " --verbose Αναλυτικά (σε κατάσταση όχι GUI).\n" "\n" "Επιλογές διευθύνσεων\n" " headers:group.name Λήψη νέων κεφαλίδων για τη συγκεκριμένη ομάδα " "ειδήσεων.\n" " --no-gui Στις ειδήσεις:αναγνωριστικό μηνύματος, μεταφορά " "του άρθρου στην τυπική έξοδο.\n" "\n" "Επιλογές δέσμης NZB\n" " --nzb file1 file2 ... Επεξεργασία αρχείων nzb χωρίς εκκίνηση όλου του " "Pan.\n" " -o path, --output=διαδρομή Διαδρομή για αποθήκευση καταχωρισμένων " "συνημμένων στα αρχεία nzb.\n" " --no-gui Εμφάνιση μόνο της εξόδου κονσόλας, όχι της ουράς " "μεταφόρτωσης.\n" #: ../pan/gui/pan.cc:958 msgid "Error: --no-gui used without nzb files or news:message-id." msgstr "" "Σφάλμα: --no-gui χρησιμοποιήθηκε χωρίς αρχεία nzb ή ειδήσεις: αναγνωριστικό " "μηνύματος." #: ../pan/gui/pan.cc:962 #, c-format msgid "Pan %s started" msgstr "Το Pan %s ξεκίνησε" #: ../pan/gui/pan.cc:982 msgid "Please configure Pan's news servers before using it as an nzb client." msgstr "" "Παρακαλούμε διαμορφώστε τους διακομιστές ειδήσεων του Pan πριν τη χρήση του " "ως πελάτη nzb." #: ../pan/gui/pan.cc:1100 msgid "Pan notification" msgstr "Ειδοποίηση Pan" #: ../pan/gui/post-ui.cc:163 #, c-format msgid "Upload queue: %lu tasks, %ld KB (~ %.2f MB) total." msgstr "Αποστολή ουράς: %lu εργασίες, %ld KB (~ %.2f MB) συνολικά." #: ../pan/gui/post-ui.cc:266 ../pan/gui/post-ui.cc:297 #, c-format msgid "Error setting custom spellchecker: %s" msgstr "Σφάλμα ορισμού προσαρμοσμένου ελέγχου ορθογραφίας: %s" #: ../pan/gui/post-ui.cc:270 ../pan/gui/post-ui.cc:278 #: ../pan/gui/post-ui.cc:301 ../pan/gui/post-ui.cc:309 #, c-format msgid "Error setting spellchecker: %s" msgstr "Σφάλμα ορισμού ελέγχου ορθογραφίας: %s" #: ../pan/gui/post-ui.cc:448 msgid "_Profile" msgstr "_Προφίλ" # #: ../pan/gui/post-ui.cc:449 msgid "Set Editor" msgstr "Ορισμός επεξεργαστή" #: ../pan/gui/post-ui.cc:451 msgid "_Send Article" msgstr "_Αποστολή άρθρου" #: ../pan/gui/post-ui.cc:451 msgid "Send Article Now" msgstr "Αποστολή άρθρου τώρα" #: ../pan/gui/post-ui.cc:452 msgid "_Send and Save Articles to NZB" msgstr "_Αποστολή και αποθήκευση άρθρων στο NZB" #: ../pan/gui/post-ui.cc:452 msgid "Send and Save Articles to NZB" msgstr "Αποστολή και αποθήκευση άρθρων στο NZB" #: ../pan/gui/post-ui.cc:453 msgid "Set Character _Encoding..." msgstr "Ορισμός _κωδικοποίησης χαρακτήρων..." #: ../pan/gui/post-ui.cc:454 msgid "Set Content _Transfer Encoding..." msgstr "Ορισμός κωδικοποίησης _μεταφοράς περιεχομένου..." #: ../pan/gui/post-ui.cc:455 msgid "Sa_ve Draft" msgstr "Απο_θήκευση προχείρου" #: ../pan/gui/post-ui.cc:455 msgid "Save as a Draft for Future Posting" msgstr "Αποθήκευση ως προχείρου για μελλοντική αποστολή" #: ../pan/gui/post-ui.cc:456 msgid "_Open Draft..." msgstr "Ά_νοιγμα προχείρου..." #: ../pan/gui/post-ui.cc:456 msgid "Open an Article Draft" msgstr "Άνοιγμα προχείρου άρθρου" #: ../pan/gui/post-ui.cc:461 msgid "_Rot13" msgstr "_Rot13" # #: ../pan/gui/post-ui.cc:461 msgid "Rot13 Selected Text" msgstr "Επιλεγμένο κείμενο Rot13" #: ../pan/gui/post-ui.cc:462 msgid "Run _Editor" msgstr "Εκτέλεση _επεξεργαστή" #: ../pan/gui/post-ui.cc:462 msgid "Run Editor" msgstr "Εκτέλεση επεξεργαστή" #: ../pan/gui/post-ui.cc:464 msgid "Add _Files to Queue" msgstr "Προσθήκη _αρχείων στην ουρά" #: ../pan/gui/post-ui.cc:464 msgid "Add Files to Queue" msgstr "Προσθήκη αρχείων στην ουρά" # #: ../pan/gui/post-ui.cc:479 ../pan/gui/post-ui.cc:480 msgid "Remove from Queue" msgstr "Αφαίρεση από την ουρά" # #: ../pan/gui/post-ui.cc:484 ../pan/gui/post-ui.cc:485 msgid "Clear List" msgstr "Καθαρισμός λίστας" #: ../pan/gui/post-ui.cc:489 ../pan/gui/post-ui.cc:490 msgid "Select Needed Parts" msgstr "Επιλέξτε τα απαιτούμενα μέρη" #: ../pan/gui/post-ui.cc:494 ../pan/gui/post-ui.cc:495 #: ../pan/gui/task-pane.cc:677 ../pan/gui/task-pane.cc:678 msgid "Move Up" msgstr "Μετακίνηση προς τα πάνω" # #: ../pan/gui/post-ui.cc:499 ../pan/gui/post-ui.cc:500 #: ../pan/gui/task-pane.cc:682 ../pan/gui/task-pane.cc:683 msgid "Move Down" msgstr "Μετακίνηση προς τα κάτω" #: ../pan/gui/post-ui.cc:504 ../pan/gui/post-ui.cc:505 msgid "Move to Top" msgstr "Μετακίνηση στην κορυφή" #: ../pan/gui/post-ui.cc:509 ../pan/gui/post-ui.cc:510 msgid "Move to Bottom" msgstr "Μετακίνηση στο τέλος" #: ../pan/gui/post-ui.cc:517 msgid "_Wrap Text" msgstr "Ανα_δίπλωση κειμένου" #: ../pan/gui/post-ui.cc:517 msgid "Wrap Text" msgstr "Αναδίπλωση κειμένου" #: ../pan/gui/post-ui.cc:518 msgid "Always Run Editor" msgstr "Να εκτελείται πάντα ο επεξεργαστής" #: ../pan/gui/post-ui.cc:519 msgid "Remember Character Encoding for This Group" msgstr "Απομνημόνευση κωδικοποίησης χαρακτήρων για αυτήν την ομάδα" #: ../pan/gui/post-ui.cc:520 msgid "Thread Attached Replies" msgstr "Αλληλουχία μηνυμάτων συνημμένων απαντήσεων" #: ../pan/gui/post-ui.cc:521 msgid "PGP-Encrypt the Article" msgstr "PGP-Κρυπτογράφηση του άρθρου" #: ../pan/gui/post-ui.cc:522 msgid "PGP-Sign the Article" msgstr "Υπογραφή PGP του άρθρου" #: ../pan/gui/post-ui.cc:523 msgid "Check _Spelling" msgstr "Έλεγχος ο_ρθογραφίας" #: ../pan/gui/post-ui.cc:549 msgid "New Article's Encoding:" msgstr "Κωδικοποίηση του νέου άρθρου:" #: ../pan/gui/post-ui.cc:559 msgid "Content Transfer Encoding" msgstr "Κωδικοποίηση μεταφοράς περιεχομένου" #: ../pan/gui/post-ui.cc:560 msgid "New Article's Content Transfer Encoding:" msgstr "Κωδικοποίηση μεταφοράς περιεχομένου του νέου άρθρου:" #: ../pan/gui/post-ui.cc:740 msgid "Your changes will be lost!" msgstr "Οι αλλαγές σας θα χαθούν!" #: ../pan/gui/post-ui.cc:741 msgid "Close this window and lose your changes?" msgstr "Θέλετε να κλείσετε αυτό το παράθυρο και να χαθούν οι αλλαγές σας;" #: ../pan/gui/post-ui.cc:786 ../pan/gui/post-ui.cc:825 msgid "There were problems with this post." msgstr "Υπήρξαν προβλήματα με αυτήν την αποστολή." #: ../pan/gui/post-ui.cc:788 ../pan/gui/post-ui.cc:827 #: ../pan/gui/post-ui.cc:892 msgid "Go Back" msgstr "Επιστροφή" #: ../pan/gui/post-ui.cc:790 msgid "Continue Anyway" msgstr "Συνέχεια σε κάθε περίπτωση" #. Prompt the user #: ../pan/gui/post-ui.cc:819 #, c-format msgid "" "Message uses characters not specified in charset '%s' - possibly use '%s' " msgstr "" "Το μήνυμα χρησιμοποιεί χαρακτήρες που δεν ορίστηκαν στο σύνολο χαρακτήρων " "'%s' - πιθανόν χρήση του '%s' " #: ../pan/gui/post-ui.cc:842 msgid "Go _Online" msgstr "Συνδε_θείτε" #: ../pan/gui/post-ui.cc:891 msgid "The file queue is empty, so no files can be saved." msgstr "" "Η ουρά αρχείου είναι κενή, έτσι κανένα αρχείο δεν μπορεί να αποθηκευτεί." # #: ../pan/gui/post-ui.cc:1070 msgid "IO Error" msgstr "Σφάλμα εισόδου/εξόδου" #: ../pan/gui/post-ui.cc:1070 msgid "No space left on device" msgstr "Δεν έμεινε καθόλου χώρος στη συσκευή" #: ../pan/gui/post-ui.cc:1071 #, c-format msgid "Error copying message to %s folder. Reason: %s" msgstr "Σφάλμα κατά την αντιγραφή στον φάκελο %s. Αιτία: %s" #: ../pan/gui/post-ui.cc:1077 #, c-format msgid "Error creating message in %s mail folder: Invalid article." msgstr "" "Σφάλμα κατά τη δημιουργία μηνύματος στον %s φάκελο αλληλογραφίας: Άκυρο " "άρθρο." #: ../pan/gui/post-ui.cc:1099 msgid "" "No posting server is set for this posting profile.\n" "Please edit the profile via Edit|Manage Posting Profiles." msgstr "" "Δεν ορίστηκε διακομιστής αποστολής για αυτό το προφίλ αποστολής.\n" "Παρακαλούμε επεξεργαστείτε το προφίλ μέσα από Επεξεργασία|Διαχείριση προφίλ " "αποστολής." #: ../pan/gui/post-ui.cc:1104 msgid "" "The selected posting server is currently disabled. Please choose an " "appropriate alternative." msgstr "" "Ο επιλεγμένος διακομιστής αποστολής είναι προς το παρόν ανενεργός. " "Παρακαλούμε επιλέξτε μια κατάλληλη εναλλακτική λύση." #: ../pan/gui/post-ui.cc:1146 msgid "Pan is Offline." msgstr "Το Pan είναι αποσυνδεδεμένο." #: ../pan/gui/post-ui.cc:1147 msgid "Go online to post the article?" msgstr "Θα συνδεθείτε για να στείλετε το άρθρο;" #: ../pan/gui/post-ui.cc:1196 #, c-format msgid "" "Error signing/encrypting your message. Perhaps you misspelled your email " "address (%s)?" msgstr "" "Σφάλμα κατά την υπογραφή/κρυπτογράφηση του μηνύματός σας. Ίσως γράψατε λάθος " "την διεύθυνση αλληλογραφίας (%s);" # #: ../pan/gui/post-ui.cc:1344 msgid "Error opening temporary file" msgstr "Σφάλμα κατά το άνοιγμα προσωρινού αρχείου" #: ../pan/gui/post-ui.cc:1356 #, c-format msgid "Error writing article to temporary file: %s" msgstr "Σφάλμα κατά την εγγραφή άρθρου σε προσωρινό αρχείο: %s" #: ../pan/gui/post-ui.cc:1375 #, c-format msgid "Error parsing \"external editor\" command line: %s (Command was: %s)" msgstr "" "Σφάλμα κατά την ανάλυση της γραμμής εντολών \"εξωτερικού επεξεργαστή\": %s " "(Η εντολή ήταν: %s)" #: ../pan/gui/post-ui.cc:1416 #, c-format msgid "Error starting external editor: %s" msgstr "Σφάλμα κατά την εκκίνηση εξωτερικού επεξεργαστή: %s" #: ../pan/gui/post-ui.cc:1479 msgid "Open Draft Article" msgstr "Άνοιγμα πρόχειρου άρθρου" #: ../pan/gui/post-ui.cc:1691 msgid "Save Draft Article" msgstr "Αποθήκευση πρόχειρου άρθρου" # gconf/gconf-internals.c:2333 #: ../pan/gui/post-ui.cc:1889 #, c-format msgid "Couldn't parse signature command \"%s\": %s" msgstr "Αδύνατη η ανάλυση εντολής υπογραφής \"%s\": %s" #: ../pan/gui/post-ui.cc:1925 msgid "Couldn't convert signature to UTF-8." msgstr "Αδύνατη η μετατροπή υπογραφής σε UTF-8." # #: ../pan/gui/post-ui.cc:2427 msgid "F_rom" msgstr "Α_πό" # #: ../pan/gui/post-ui.cc:2444 msgid "_Subject" msgstr "_Θέμα" #: ../pan/gui/post-ui.cc:2457 msgid "_Newsgroups" msgstr "Ομάδες ε_ιδήσεων" #: ../pan/gui/post-ui.cc:2471 msgid "Mail _To" msgstr "Μήνυμα _προς" #: ../pan/gui/post-ui.cc:2573 msgid "Delete from Queue" msgstr "Διαγραφή από την ουρά" #: ../pan/gui/post-ui.cc:2586 msgid "No." msgstr "Αριθμός" #: ../pan/gui/post-ui.cc:2590 ../pan/gui/post-ui.cc:2682 #: ../pan/gui/post-ui.cc:2723 msgid "Filename" msgstr "Όνομα αρχείου" #: ../pan/gui/post-ui.cc:2592 msgid "Size (KB)" msgstr "Μέγεθος (KB)" #: ../pan/gui/post-ui.cc:2690 msgid "The current filename" msgstr "Το τρέχον όνομα αρχείου" # #: ../pan/gui/post-ui.cc:2694 msgid "Subject Line" msgstr "Γραμμή θέματος" #: ../pan/gui/post-ui.cc:2702 msgid "The current subject line" msgstr "Η τρέχουσα γραμμή θέματος" #: ../pan/gui/post-ui.cc:2716 msgid "No. " msgstr "Αριθμός" #: ../pan/gui/post-ui.cc:2720 msgid "Enable/Disable" msgstr "Ενεργοποίηση/Απενεργοποίηση" #: ../pan/gui/post-ui.cc:2754 msgid "Follo_wup-To" msgstr "Πα_ρακολούθηση σε" #. i18n: "poster" is a key used by many newsreaders. probably safest to keep this key in english. #: ../pan/gui/post-ui.cc:2763 msgid "" "The newsgroups where replies to your message should go. This is only needed " "if it differs from the \"Newsgroups\" header.\n" "\n" "To direct all replies to your email address, use \"Followup-To: poster\"" msgstr "" "Οι ομάδες ειδήσεων στις οποίες θα πρέπει να πάνε οι απαντήσεις στο μήνυμά " "σας. Αυτό χρειάζεται μόνο αν διαφέρει από την κεφαλίδα \"Ομάδες ειδήσεων\".\n" "\n" "Για κατεύθυνση όλων των απαντήσεων στην ηλ. διεύθυνση, χρησιμοποιείστε το " "\"Παρακολούθηση: αποστολέα\"" #: ../pan/gui/post-ui.cc:2770 msgid "_Reply-To" msgstr "Α_πάντηση σε" #: ../pan/gui/post-ui.cc:2778 msgid "" "The email account where mail replies to your posted message should go. This " "is only needed if it differs from the \"From\" header." msgstr "" "Ο λογαριασμός αλληλογραφίας, όπου θα πρέπει να πηγαίνουν οι απαντήσεις στο " "απεσταλμένο μήνυμά σας. Αυτό είναι απαραίτητο μόνο αν διαφέρει από την " "κεφαλίδα \"Από\"." #: ../pan/gui/post-ui.cc:2785 msgid "_Custom Headers" msgstr "_Προσαρμοσμένες κεφαλίδες" #: ../pan/gui/post-ui.cc:2809 msgid "Add \"_User-Agent\" header" msgstr "Προσθήκη κεφαλίδας \"Αντιπρόσωπος _χρήστη\"" #: ../pan/gui/post-ui.cc:2816 msgid "Add \"Message-_ID\" header" msgstr "Προσθήκη κεφαλίδας \"Α_ναγνωριστικό μηνύματος\"" #: ../pan/gui/post-ui.cc:2947 msgid "Select Parts" msgstr "Επιλογή μερών" #: ../pan/gui/post-ui.cc:2960 msgid "_Parts" msgstr "_Μέρη" #: ../pan/gui/post-ui.cc:3114 msgid "Post Article" msgstr "Αποστολή άρθρου" # #: ../pan/gui/post-ui.cc:3135 msgid "_Message" msgstr "_Μήνυμα" #: ../pan/gui/post-ui.cc:3136 msgid "More _Headers" msgstr "Περισσότερες _κεφαλίδες" #: ../pan/gui/post-ui.cc:3137 msgid "File _Queue" msgstr "Ο_υρά αρχείου" # #: ../pan/gui/post-ui.cc:3169 ../pan/gui/profiles-dialog.cc:481 #, no-c-format msgid "On %d, %n wrote:" msgstr "Στις %d, ο %n έγραψε:" #: ../pan/gui/post-ui.cc:3198 msgid "Add files to queue" msgstr "Προσθήκη αρχείων στην ουρά" #: ../pan/gui/post-ui.cc:3274 msgid "Save Upload Queue as NZB File" msgstr "Αποθήκευση απεσταλμένης ουράς ως αρχείου NZB" # #: ../pan/gui/prefs.cc:364 #, c-format msgid "Couldn't parse %s color \"%s\"" msgstr "Αδύνατη η ανάλυση %s χρώματος \"%s\"" #: ../pan/gui/prefs-ui.cc:123 msgid "Grab Key" msgstr "Πλήκτρο σύλληψης" #: ../pan/gui/prefs-ui.cc:129 #, c-format msgid "" "Press the combination of the keys\n" "you want to use for \"%s\"." msgstr "" "Πατήστε τον συνδυασμό των πλήκτρων\n" "που θέλετε να χρησιμοποιήσετε για το \"%s\"." # #: ../pan/gui/prefs-ui.cc:169 msgid "Edit Shortcut" msgstr "Επεξεργασία συντόμευσης" #: ../pan/gui/prefs-ui.cc:231 msgid "Error: Shortcut key is invalid!" msgstr "Σφάλμα: το πλήκτρο συντόμευσης είναι άκυρο!" #: ../pan/gui/prefs-ui.cc:247 msgid "Error: Shortcut key already exists!" msgstr "Σφάλμα: το πλήκτρο συντόμευσης υπάρχει ήδη!" #: ../pan/gui/prefs-ui.cc:561 msgid "Show only icons" msgstr "Εμφάνιση μόνο εικονιδίων" #: ../pan/gui/prefs-ui.cc:562 msgid "Show only text" msgstr "Εμφάνιση μόνο κειμένου" #: ../pan/gui/prefs-ui.cc:563 msgid "Show icons and text" msgstr "Εμφάνιση εικονιδίων και κειμένου" # #: ../pan/gui/prefs-ui.cc:602 msgid "Use GNOME Preferences" msgstr "Χρήση προτιμήσεων GNOME" #: ../pan/gui/prefs-ui.cc:603 msgid "Use KDE Preferences" msgstr "Χρήση προτιμήσεων KDE" #: ../pan/gui/prefs-ui.cc:604 msgid "Use OS X Preferences" msgstr "Χρήση προτιμήσεων OS X" # #: ../pan/gui/prefs-ui.cc:605 msgid "Use Windows Preferences" msgstr "Χρήση προτιμήσεων Windows" # #: ../pan/gui/prefs-ui.cc:606 msgid "Custom Command:" msgstr "Προσαρμοσμένη εντολή:" #: ../pan/gui/prefs-ui.cc:658 msgid "Disabled" msgstr "Ανενεργό" #: ../pan/gui/prefs-ui.cc:659 msgid "Only new (score == 0)" msgstr "Μόνο νέο (βαθμολογία == 0)" #: ../pan/gui/prefs-ui.cc:660 msgid "9999 or more" msgstr "9999 ή περισσότερο" #: ../pan/gui/prefs-ui.cc:661 msgid "5000 to 9998" msgstr "5000 έως 9998" #: ../pan/gui/prefs-ui.cc:662 msgid "1 to 4999" msgstr "1 έως 4999" #: ../pan/gui/prefs-ui.cc:663 msgid "-9998 to -1" msgstr "-9998 έως -1" #: ../pan/gui/prefs-ui.cc:664 msgid "-9999 or less" msgstr "-9999 ή λιγότερο" #: ../pan/gui/prefs-ui.cc:728 #, c-format msgid "Select default global character set. Current setting: %s." msgstr "" "Επιλέξτε το προεπιλεγμένο σύνολο χαρακτήρων γενικό. Τρέχουσα ρύθμιση: " "%s." #: ../pan/gui/prefs-ui.cc:760 msgid "Global Character Set Settings" msgstr "Ρυθμίσεις γενικού συνόλου χαρακτήρων" # #: ../pan/gui/prefs-ui.cc:854 ../pan/gui/task-pane.cc:1076 msgid "State" msgstr "Κατάσταση" #: ../pan/gui/prefs-ui.cc:888 msgid "Enabled" msgstr "Ενεργή" #: ../pan/gui/prefs-ui.cc:892 msgid "Column Name" msgstr "Όνομα στήλης" # #: ../pan/gui/prefs-ui.cc:930 msgid "Pan: Preferences" msgstr "Pan: Προτιμήσεις" # #: ../pan/gui/prefs-ui.cc:945 msgid "Mouse" msgstr "Ποντίκι" #: ../pan/gui/prefs-ui.cc:947 msgid "Single-click activates, rather than selects, _groups" msgstr "Το μονό πάτημα ενεργοποιεί, αντί να επιλέγει, _ομάδες" #: ../pan/gui/prefs-ui.cc:949 msgid "Single-click activates, rather than selects, _articles" msgstr "Το μονό πάτημα ενεργοποιεί, αντί να επιλέγει, ά_ρθρα" #: ../pan/gui/prefs-ui.cc:952 msgid "Groups" msgstr "Ομάδες" #: ../pan/gui/prefs-ui.cc:954 msgid "Get new headers in subscribed groups on _startup" msgstr "Λήψη των νέων κεφαλίδων στις ομάδες με συνδρομή στην έ_ναρξη" #: ../pan/gui/prefs-ui.cc:956 msgid "Get new headers when _entering group" msgstr "Λήψη νέων κεφαλίδων κατά την εί_σοδο ομάδας" #: ../pan/gui/prefs-ui.cc:958 msgid "Mark entire group _read when leaving group" msgstr "Σημειώστε όλη την ομάδα _διαβασμένη όταν αφήνετε την ομάδα" #: ../pan/gui/prefs-ui.cc:960 msgid "Mark entire group read before getting _new headers" msgstr "Σημειώστε όλη την ομάδα διαβασμένη πριν τη λήψη _νέων κεφαλίδων" #: ../pan/gui/prefs-ui.cc:962 msgid "E_xpand all threads when entering group" msgstr "Α_νάπτυξη όλων των αλληλουχιών μηνυμάτων κατά την είσοδο σε ομάδα" #: ../pan/gui/prefs-ui.cc:967 msgid "Articles" msgstr "Άρθρα" #: ../pan/gui/prefs-ui.cc:969 msgid "Mark downloaded articles read" msgstr "Σήμανση ληφθέντων άρθρων ως διαβασμένων" #: ../pan/gui/prefs-ui.cc:971 msgid "Space selects next article rather than next unread" msgstr "" "Το πλήκτρο διαστήματος επιλέγει το επόμενο άρθρο αντί για το επόμενο " "αδιάβαστο" #: ../pan/gui/prefs-ui.cc:973 msgid "Expand threads upon selection" msgstr "Ανάπτυξη αλληλουχιών μηνυμάτων κατά την επιλογή" #: ../pan/gui/prefs-ui.cc:975 msgid "Always ask before deleting an article" msgstr "Ερώτηση πάντα πριν την διαγραφή άρθρου" #: ../pan/gui/prefs-ui.cc:977 msgid "Smooth scrolling" msgstr "Ομαλή κύλιση" #: ../pan/gui/prefs-ui.cc:982 msgid "Article Cache" msgstr "Απόκρυψη άρθρου" #: ../pan/gui/prefs-ui.cc:983 msgid "Clear article cache on shutdown" msgstr "Καθαρισμός κρυφού άρθρου με τον τερματισμό" #: ../pan/gui/prefs-ui.cc:986 msgid "Size of article cache (in MiB):" msgstr "Μέγεθος του κρυφού άρθρου (σε MiB):" #: ../pan/gui/prefs-ui.cc:991 msgid "File extension for cached articles: " msgstr "Επέκταση αρχείου για κρυφά άρθρα: " #: ../pan/gui/prefs-ui.cc:996 msgid "Tabs" msgstr "Καρτέλες" #: ../pan/gui/prefs-ui.cc:1001 msgid "_Behavior" msgstr "_Συμπεριφορά" #: ../pan/gui/prefs-ui.cc:1001 msgid "Behavior" msgstr "Συμπεριφορά" #: ../pan/gui/prefs-ui.cc:1007 msgid "Task Pane" msgstr "Παράθυρο εργασιών" #: ../pan/gui/prefs-ui.cc:1008 msgid "Show Task Pane info popups" msgstr "Εμφάνιση αναδυόμενων πληροφοριών παραθύρου εργασιών" #: ../pan/gui/prefs-ui.cc:1010 msgid "Show Download Meter" msgstr "Εμφάνιση λήψης μέτρου" #: ../pan/gui/prefs-ui.cc:1014 msgid "_Panes" msgstr "_Παράθυρα" #: ../pan/gui/prefs-ui.cc:1014 msgid "Panes" msgstr "Παράθυρα" # #: ../pan/gui/prefs-ui.cc:1020 msgid "Language Settings" msgstr "Ρυθμίσεις γλώσσας" #. systray and notify popup #: ../pan/gui/prefs-ui.cc:1029 msgid "System Tray Behavior" msgstr "Συμπεριφορά περιοχής συστήματος" #: ../pan/gui/prefs-ui.cc:1031 msgid "Minimize to tray" msgstr "Ελαχιστοποίηση στον δίσκο" #: ../pan/gui/prefs-ui.cc:1033 msgid "Start Pan minimized" msgstr "Έναρξη με το Pan ελαχιστοποιημένο" #: ../pan/gui/prefs-ui.cc:1036 msgid "Show notifications" msgstr "Εμφάνιση ειδοποιήσεων" #. allow multiple instances (seperate, not communicating with dbus) #: ../pan/gui/prefs-ui.cc:1041 msgid "Startup Behavior" msgstr "Συμπεριφορά έναρξης" #: ../pan/gui/prefs-ui.cc:1043 msgid "Allow multiple instances of Pan" msgstr "Να επιτρέπονται πολλαπλά στιγμιότυπα του Pan" #: ../pan/gui/prefs-ui.cc:1048 msgid "Autosave Article Draft" msgstr "Αυτόματη αποθήκευση προχείρου άρθρου" #: ../pan/gui/prefs-ui.cc:1050 msgid "Minutes to autosave the current Article Draft: " msgstr "Λεπτά για αυτόματη αποθήκευση του τρέχοντος προχείρου άρθρου: " #: ../pan/gui/prefs-ui.cc:1055 msgid "Autosave Articles" msgstr "Αυτόματη αποθήκευση άρθρων" #: ../pan/gui/prefs-ui.cc:1057 msgid "Minutes to autosave newsrc files: " msgstr "Λεπτά για αυτόματη αποθήκευση αρχείων newsrc: " #: ../pan/gui/prefs-ui.cc:1064 msgid "GNOME Keyring" msgstr "Κλειδοθήκη GNOME" #: ../pan/gui/prefs-ui.cc:1065 msgid "Store passwords in GNOME Keyring" msgstr "Αποθήκευση κωδικών πρόσβασης στην κλειδοθήκη GNOME" #: ../pan/gui/prefs-ui.cc:1069 msgid "_Miscellaneous" msgstr "_Διάφορα" #: ../pan/gui/prefs-ui.cc:1069 msgid "Miscellaneous" msgstr "Διάφορα" #: ../pan/gui/prefs-ui.cc:1074 msgid "Pane Layout" msgstr "Διάταξη παραθύρου" #: ../pan/gui/prefs-ui.cc:1093 msgid "1=Groups, 2=Headers, 3=Body" msgstr "1=Ομάδες, 2=Κεφαλίδες, 3= Σώμα" #: ../pan/gui/prefs-ui.cc:1095 msgid "1=Groups, 2=Body, 3=Headers" msgstr "1=Ομάδες, 2=Σώμα, 3=Κεφαλίδες" #: ../pan/gui/prefs-ui.cc:1097 msgid "1=Headers, 2=Groups, 3=Body" msgstr "1=Κεφαλίδες, 2=Ομάδες, 3=Σώμα" #: ../pan/gui/prefs-ui.cc:1099 msgid "1=Headers, 2=Body, 3=Groups" msgstr "1+Κεφαλίδες, 2=Σώμα, 3=Ομάδες" #: ../pan/gui/prefs-ui.cc:1101 msgid "1=Body, 2=Groups, 3=Headers" msgstr "1=Σώμα, 2=Ομάδες, 3=Κεφαλίδες" #: ../pan/gui/prefs-ui.cc:1103 msgid "1=Body, 2=Headers, 3=Groups" msgstr "1=Σώμα, 2=Κεφαλίδες, 3=Ομάδες" #: ../pan/gui/prefs-ui.cc:1107 msgid "Layout" msgstr "Διάταξη" #: ../pan/gui/prefs-ui.cc:1112 msgid "Header Pane Columns" msgstr "Στήλες παραθύρου κεφαλίδας" #: ../pan/gui/prefs-ui.cc:1116 msgid "_Headers" msgstr "Κε_φαλίδες" #: ../pan/gui/prefs-ui.cc:1116 msgid "Headers" msgstr "Κεφαλίδες" #: ../pan/gui/prefs-ui.cc:1122 msgid "" "This menu lets you configure Pan to take certain actions on your behalf " "automatically, based on an article's score." msgstr "" "Αυτό το μενού επιτρέπει τη διαμόρφωση του Pan παίρνοντας συγκεκριμένες " "ενέργειες για λογαριασμό σας αυτόματα, με βάση την βαθμολογία ενός άρθρου." #: ../pan/gui/prefs-ui.cc:1127 msgid "Mark affected articles read" msgstr "Σήμανση επηρεαζόμενων άρθρων ως διαβασμένων" #: ../pan/gui/prefs-ui.cc:1136 msgid "_Delete articles scoring at: " msgstr "_Διαγραφή άρθρων με βαθμολογία: " #: ../pan/gui/prefs-ui.cc:1142 msgid "Mark articles read scoring at: " msgstr "Σημείωση άρθρων ως διαβασμένων με βαθμολογία: " #: ../pan/gui/prefs-ui.cc:1148 msgid "_Cache articles scoring at: " msgstr "Απόκρυ_ψη άρθρων με βαθμολογία: " #: ../pan/gui/prefs-ui.cc:1154 msgid "Download attachments of articles scoring at: " msgstr "Λήψη συνημμένων άρθρων με βαθμολογία: " # FIX? drop (see also "On Drop" above) #: ../pan/gui/prefs-ui.cc:1157 msgid "Actions" msgstr "Ενέργειες" #: ../pan/gui/prefs-ui.cc:1162 ../pan/gui/prefs-ui.cc:1183 msgid "Fonts" msgstr "Γραμματοσειρές" #: ../pan/gui/prefs-ui.cc:1164 msgid "Use custom font in Group Pane:" msgstr "Χρήση προσαρμοσμένης γραμματοσειράς στο παράθυρο ομάδας:" #: ../pan/gui/prefs-ui.cc:1169 msgid "Use custom font in Header Pane:" msgstr "Χρήση προσαρμοσμένης γραμματοσειράς στο παράθυρο κεφαλίδας:" #: ../pan/gui/prefs-ui.cc:1174 msgid "Use custom font in Body Pane:" msgstr "Χρήση προσαρμοσμένης γραμματοσειράς στο παράθυρο σώματος:" #: ../pan/gui/prefs-ui.cc:1179 msgid "Monospace font:" msgstr "Γραμματοσειρά σταθερού πλάτους:" #: ../pan/gui/prefs-ui.cc:1183 msgid "_Fonts" msgstr "_Γραμματοσειρές" #: ../pan/gui/prefs-ui.cc:1192 msgid "Header Pane" msgstr "Παράθυρο κεφαλίδας" # # NOTE: Translation of "Create" as "New" to # # keep msg length relatively short... #: ../pan/gui/prefs-ui.cc:1195 ../pan/gui/prefs-ui.cc:1201 #: ../pan/gui/prefs-ui.cc:1207 ../pan/gui/prefs-ui.cc:1213 #: ../pan/gui/prefs-ui.cc:1219 ../pan/gui/prefs-ui.cc:1225 #: ../pan/gui/prefs-ui.cc:1234 ../pan/gui/prefs-ui.cc:1240 #: ../pan/gui/prefs-ui.cc:1246 ../pan/gui/prefs-ui.cc:1252 #: ../pan/gui/prefs-ui.cc:1258 ../pan/gui/prefs-ui.cc:1268 #: ../pan/gui/prefs-ui.cc:1278 msgid "Text:" msgstr "Κείμενο:" # #: ../pan/gui/prefs-ui.cc:1197 ../pan/gui/prefs-ui.cc:1203 #: ../pan/gui/prefs-ui.cc:1209 ../pan/gui/prefs-ui.cc:1215 #: ../pan/gui/prefs-ui.cc:1221 ../pan/gui/prefs-ui.cc:1227 #: ../pan/gui/prefs-ui.cc:1236 ../pan/gui/prefs-ui.cc:1242 #: ../pan/gui/prefs-ui.cc:1248 ../pan/gui/prefs-ui.cc:1254 #: ../pan/gui/prefs-ui.cc:1260 ../pan/gui/prefs-ui.cc:1270 #: ../pan/gui/prefs-ui.cc:1280 msgid "Background:" msgstr "Παρασκήνιο:" #: ../pan/gui/prefs-ui.cc:1199 msgid "Scores of 9999 or more:" msgstr "Βαθμολογίες από 9999 ή περισσότερο:" #: ../pan/gui/prefs-ui.cc:1205 msgid "Scores from 5000 to 9998:" msgstr "Βαθμολογίες από 5000 μέχρι 9998:" #: ../pan/gui/prefs-ui.cc:1211 msgid "Scores from 1 to 4999:" msgstr "Βαθμολογίες από 1 μέχρι 4999:" #: ../pan/gui/prefs-ui.cc:1217 msgid "Scores from -9998 to -1:" msgstr "Βαθμολογίες από -9998 μέχρι -1:" #: ../pan/gui/prefs-ui.cc:1223 msgid "Scores of -9999 or less:" msgstr "Βαθμολογίες από -9999 ή λιγότερο:" #: ../pan/gui/prefs-ui.cc:1229 msgid "Collapsed thread with unread articles:" msgstr "Συνεπτυγμένη αλληλουχία μηνυμάτων με αδιάβαστα άρθρα:" #: ../pan/gui/prefs-ui.cc:1231 msgid "Body Pane" msgstr "Παράθυρο σώματος" #: ../pan/gui/prefs-ui.cc:1238 msgid "First level of quoted text:" msgstr "Πρώτο επίπεδο κειμένου σε παράθεση" #: ../pan/gui/prefs-ui.cc:1244 msgid "Second level of quoted text:" msgstr "Δεύτερο επίπεδο κειμένου σε παράθεση" #: ../pan/gui/prefs-ui.cc:1250 msgid "Third level of quoted text:" msgstr "Τρίτο επίπεδο κειμένου σε παράθεση" #. #: ../pan/gui/prefs-ui.cc:1256 msgid "URL:" msgstr "Διεύθυνση:" # #. #: ../pan/gui/prefs-ui.cc:1262 msgid "Signature:" msgstr "Υπογραφή:" #: ../pan/gui/prefs-ui.cc:1265 msgid "Group Pane" msgstr "Παράθυρο ομάδας" #. #: ../pan/gui/prefs-ui.cc:1272 msgid "Group Color:" msgstr "Χρώμα ομάδας:" #: ../pan/gui/prefs-ui.cc:1276 msgid "Other Text" msgstr "Άλλο κείμενο" # #: ../pan/gui/prefs-ui.cc:1282 msgid "Text Color:" msgstr "Χρώμα κειμένου:" # #: ../pan/gui/prefs-ui.cc:1285 msgid "_Colors" msgstr "_Χρώματα" # #: ../pan/gui/prefs-ui.cc:1285 msgid "Colors" msgstr "Χρώματα" # FIX? drop (see also "On Drop" above) #: ../pan/gui/prefs-ui.cc:1290 msgid "Preferred Applications" msgstr "Αγαπημένες εφαρμογές" #: ../pan/gui/prefs-ui.cc:1294 msgid "_Web browser:" msgstr "Περιηγητές _ιστού:" # #: ../pan/gui/prefs-ui.cc:1297 msgid "_Mail reader:" msgstr "Αναγνώστης α_λληλογραφίας:" # #: ../pan/gui/prefs-ui.cc:1299 msgid "_Text editor:" msgstr "Επεξεργαστής _κειμένου:" #: ../pan/gui/prefs-ui.cc:1301 msgid "_HTML previewer:" msgstr "Προεπισκόπηση _HTML:" # FIX? drop (see also "On Drop" above) #: ../pan/gui/prefs-ui.cc:1303 msgid "_Applications" msgstr "_Εφαρμογές" # FIX? drop (see also "On Drop" above) #: ../pan/gui/prefs-ui.cc:1303 msgid "Applications" msgstr "Εφαρμογές" #: ../pan/gui/prefs-ui.cc:1308 ../pan/gui/task-pane.cc:552 msgid "Encoding" msgstr "Κωδικοποίηση" #: ../pan/gui/prefs-ui.cc:1312 msgid "Default bytes per file (for encoder): " msgstr "Προεπιλεγμένες οκτάδες ανά αρχείο (για κωδικοποιητή): " # FIX? drop (see also "On Drop" above) #: ../pan/gui/prefs-ui.cc:1317 msgid "_Upload" msgstr "_Αποστολή" #: ../pan/gui/prefs-ui.cc:1317 msgid "Upload" msgstr "Αποστολή" #: ../pan/gui/prefs-ui.cc:1326 msgid "_Shortcuts" msgstr "_Συντομεύσεις" #: ../pan/gui/prefs-ui.cc:1326 msgid "Shortcuts" msgstr "Συντομεύσεις" #: ../pan/gui/profiles-dialog.cc:83 msgid "Please choose your email address according to your PGP key's user id." msgstr "" "Παρακαλούμε επιλέξτε την διεύθυνση αλληλογραφίας σας σύμφωνα με το " "αναγνωριστικό χρήστη του κλειδιού σας PGP." #: ../pan/gui/profiles-dialog.cc:131 msgid "Posting Profile" msgstr "Αποστολή προφίλ" #: ../pan/gui/profiles-dialog.cc:143 msgid "Profile Information" msgstr "Πληροφορίες για το προφίλ" #: ../pan/gui/profiles-dialog.cc:147 msgid "_Profile Name:" msgstr "Ό_νομα προφίλ:" #: ../pan/gui/profiles-dialog.cc:150 msgid "Required Information" msgstr "Απαιτούμενες πληροφορίες" #: ../pan/gui/profiles-dialog.cc:154 msgid "_Full Name:" msgstr "_Πλήρες όνομα:" #: ../pan/gui/profiles-dialog.cc:158 msgid "" "Your email address.\n" "Note that this has to match your PGP signature's address\n" "if you want your messages to be PGP-signed or encrypted correctly." msgstr "" "Η διεύθυνση αλληλογραφίας σας.\n" "Σημειώστε ότι αυτή πρέπει να ταιριάζει με τη διεύθυνση υπογραφής σας PGP\n" "αν θέλετε τα μηνύματά σας να είναι σωστά υπογραμμένα κατά PGP ή " "κρυπτογραφημένα." # #: ../pan/gui/profiles-dialog.cc:162 msgid "_Email Address:" msgstr "_Διεύθυνση αλληλογραφίας:" #: ../pan/gui/profiles-dialog.cc:164 msgid "_Post Articles via:" msgstr "Α_ποστολή άρθρων μέσα από:" # #: ../pan/gui/profiles-dialog.cc:167 msgid "Signature" msgstr "Υπογραφή" # #: ../pan/gui/profiles-dialog.cc:170 msgid "_Use a Signature" msgstr "_Χρήση υπογραφής" # #: ../pan/gui/profiles-dialog.cc:174 msgid "Signature File" msgstr "Αρχείο υπογραφής" #: ../pan/gui/profiles-dialog.cc:184 msgid "Text File" msgstr "Αρχείο κειμένου" # # NOTE: Translation of "Create" as "New" to # # keep msg length relatively short... #: ../pan/gui/profiles-dialog.cc:186 msgid "Text" msgstr "Κείμενο" # #: ../pan/gui/profiles-dialog.cc:188 msgid "Command" msgstr "Εντολή" # #: ../pan/gui/profiles-dialog.cc:191 msgid "PGP Signature" msgstr "Υπογραφή PGP" # #: ../pan/gui/profiles-dialog.cc:196 msgid "Signature Type: " msgstr "Τύπος υπογραφής: " #: ../pan/gui/profiles-dialog.cc:226 msgid "X-Face (Avatar)" msgstr "Πρόσωπο" #: ../pan/gui/profiles-dialog.cc:229 msgid "" "You can add an avatar icon to your articles with a unique X-Face code.\n" "Add the code without the trailing \"X-Face:\" \n" " if it was generated by a helper program (for example http://www.dairiki.org/" "xface/xface.php)." msgstr "" "Μπορείτε να προσθέσετε ένα εικονίδιο εικόνας στα άρθρα σας με έναν μοναδικό " "κώδικα όψης Χ.\n" "Προσθέστε τον κώδικα χωρίς το τελικό \"X-Face:\" \n" "αν δημιουργήθηκε από ένα βοηθητικό πρόγραμμα (για παράδειγμα http://www." "dairiki.org/xface/xface.php)." #: ../pan/gui/profiles-dialog.cc:232 msgid "_X-Face:" msgstr "_Πρόσωπο:" #: ../pan/gui/profiles-dialog.cc:234 msgid "Optional Information" msgstr "Προαιρετικές Πληροφορίες" #: ../pan/gui/profiles-dialog.cc:239 msgid "" "When posting to Usenet, your article's Message-ID contains a domain name.\n" "You can set a custom domain name here, or leave it blank to let Pan use the " "domain name from your email address." msgstr "" "Όταν στέλνετε άρθρα στο Usenet, το αναγνωριστικό μηνύματος του άρθρου σας " "περιέχει ένα όνομα τομέα.\n" "Μπορείτε να ορίσετε ένα προσαρμοσμένο όνομα τομέα εδώ, ή να το αφήσετε κενό " "για να επιτρέψετε στο Pan να χρησιμοποιήσει το όνομα τομέα από την διεύθυνση " "αλληλογραφίας σας." #: ../pan/gui/profiles-dialog.cc:242 msgid "Message-ID _Domain Name:" msgstr "Όνομα _τομέα του αναγνωριστικού μηνύματος:" #: ../pan/gui/profiles-dialog.cc:246 #, c-format msgid "" "%i for Message-ID\n" "%a for Author and Address\n" "%n for Author name\n" "%d for Date" msgstr "" "%i για αναγνωριστικό μηνύματος\n" "%a για συγγραφέα και διεύθυνση\n" "%n για όνομα συγγραφέα\n" "%d για ημερομηνία" #: ../pan/gui/profiles-dialog.cc:247 msgid "_Attribution:" msgstr "Α_πόδοση:" #: ../pan/gui/profiles-dialog.cc:271 msgid "" "Extra headers to be included in your articles, such as\n" "Reply-To: \"Your Name\"\n" "Organization: Your Organization\n" msgstr "" "Πρόσθετες κεφαλίδες που θα συμπεριληφθούν στα άρθρα σας, όπως\n" "Απάντηση σε: \"Το όνομά σας\"\n" "Οργανισμός: Ο οργανισμός σας\n" #: ../pan/gui/profiles-dialog.cc:281 msgid "E_xtra Headers:" msgstr "Π_ρόσθετες κεφαλίδες:" # gconf/gconf-backend.c:208 #: ../pan/gui/profiles-dialog.cc:326 msgid "Invalid email address." msgstr "Άκυρη διεύθυνση αλληλογραφίας." #: ../pan/gui/profiles-dialog.cc:327 msgid "Please use an address of the form joe@somewhere.org" msgstr "Παρακαλούμε χρησιμοποιήστε μια διεύθυνση της μορφής joe@somewhere.org" #: ../pan/gui/profiles-dialog.cc:482 msgid "New Profile" msgstr "Νέο προφίλ" #: ../pan/gui/profiles-dialog.cc:528 msgid "Posting Profiles" msgstr "Αποστολή προφίλ" #: ../pan/gui/profiles-dialog.cc:544 msgid "Profiles" msgstr "Προφίλ" #: ../pan/gui/save-attach-ui.cc:46 #, c-format msgid "" "%g - group as one directory (alt.binaries.pictures.trains)\n" "%G - group as nested directory (/alt/binaries/pictures/trains)\n" "%s - Subject line excerpt\n" "%S - Subject line\n" "%n - Poster display name\n" "%e - Poster email address\n" "%d - Article timestamp\n" "\"/home/user/News/Pan/%g\" becomes\n" "\"/home/user/News/Pan/alt.binaries.pictures.trains\", and\n" "\"/home/user/News/Pan/%G\" becomes\n" "\"/home/user/News/Pan/alt/binaries/pictures/trains\"," msgstr "" "%g - ομαδοποίηση ως ένας κατάλογος (alt.binaries.pictures.trains)\n" "%G - ομαδοποίηση ως ένθετος κατάλογος (/alt/binaries/pictures/trains)\n" "%s - απόσπασμα γραμμής θέματος\n" "%S - γραμμή θέματος\n" "%n - όνομα εμφάνισης αποστολέα\n" "%e - ηλεκτρονική διεύθυνση αποστολέα\n" "%d - σφραγίδα χρόνου άρθρου\n" "\"/home/user/News/Pan/%g\" γίνεται\n" "\"/home/user/News/Pan/alt.binaries.pictures.trains\", και\n" "\"/home/user/News/Pan/%G\" γίνεται\n" "\"/home/user/News/Pan/alt/binaries/pictures/trains\"," #: ../pan/gui/save-attach-ui.cc:197 ../pan/gui/save-ui.cc:217 msgid "Add to the queue sorted by date posted" msgstr "Προσθήκη στην ουρά με ταξινόμηση κατά ημερομηνία αποστολής" #: ../pan/gui/save-attach-ui.cc:198 ../pan/gui/save-ui.cc:218 msgid "Add to the front of the queue" msgstr "Προσθήκη στην αρχή της ουράς" #: ../pan/gui/save-attach-ui.cc:199 ../pan/gui/save-ui.cc:219 msgid "Add to the back of the queue" msgstr "Προσθήκη στο τέλος της ουράς" #: ../pan/gui/save-attach-ui.cc:231 msgid "Pan: Save Attachments" msgstr "Pan: Αποθήκευση συνημμένων" # FIX? drop (see also "On Drop" above) #: ../pan/gui/save-attach-ui.cc:256 ../pan/gui/save-attach-ui.cc:274 #: ../pan/gui/save-ui.cc:271 ../pan/gui/save-ui.cc:289 msgid "_Location:" msgstr "_Τοποθεσία:" #: ../pan/gui/save-attach-ui.cc:260 ../pan/gui/save-ui.cc:275 msgid "Save Articles" msgstr "Αποθήκευση άρθρων" #: ../pan/gui/save-attach-ui.cc:277 ../pan/gui/save-ui.cc:292 #, c-format msgid "_Group's path: %s" msgstr "Διαδρομή της _ομάδας: %s" #: ../pan/gui/save-attach-ui.cc:288 ../pan/gui/save-ui.cc:307 msgid "_Priority:" msgstr "_Προτεραιότητα:" #: ../pan/gui/save-ui.cc:46 #, c-format msgid "" "%g - group as one directory (alt.binaries.pictures.trains)\n" "%G - group as nested directory (/alt/binaries/pictures/trains)\n" "%s - subject line excerpt\n" "%S - subject line\n" "%n - Poster display name\n" "%e - Poster email address\n" "%d - Article timestamp\n" " \n" "\"/home/user/News/Pan/%g\" becomes\n" "\"/home/user/News/Pan/alt.binaries.pictures.trains\", and\n" "\"/home/user/News/Pan/%G\" becomes\n" "\"/home/user/News/Pan/alt/binaries/pictures/trains\"," msgstr "" "%g - ομάδα ως ένας κατάλογος (alt.binaries.pictures.trains)\n" "%G - ομάδα ως ένθετος κατάλογος (/alt/binaries/pictures/trains)\n" "%s - απόσπασμα γραμμής θέματος\n" "%S - γραμμή θέματος\n" "%n - όνομα εμφάνισης αποστολέα\n" "%e - ηλεκτρονική διεύθυνση αποστολέα\n" "%d - σφραγίδα χρόνου άρθρου\n" " \n" "\"/home/user/News/Pan/%g\" γίνεται\n" "\"/home/user/News/Pan/alt.binaries.pictures.trains\", και\n" "\"/home/user/News/Pan/%G\" γίνεται\n" "\"/home/user/News/Pan/alt/binaries/pictures/trains\"," #: ../pan/gui/save-ui.cc:208 msgid "Save attachments" msgstr "Αποθήκευση συνημμένων" #: ../pan/gui/save-ui.cc:209 msgid "Save text" msgstr "Αποθήκευση κειμένου" #: ../pan/gui/save-ui.cc:210 msgid "Save attachments and text" msgstr "Αποθήκευση συνημμένων και κειμένου" #: ../pan/gui/save-ui.cc:246 msgid "Pan: Save Articles" msgstr "Pan: Αποθήκευση άρθρων" # FIX? drop (see also "On Drop" above) #: ../pan/gui/save-ui.cc:303 msgid "_Action:" msgstr "_Ενέργεια:" #: ../pan/gui/score-add-ui.cc:89 msgid "is more than" msgstr "είναι περισσότερο από" #: ../pan/gui/score-add-ui.cc:90 msgid "is at most" msgstr "είναι το πολύ" #: ../pan/gui/score-add-ui.cc:112 msgid "increase the article's score by" msgstr "αύξηση της βαθμολογίας του άρθρου κατά" #: ../pan/gui/score-add-ui.cc:113 msgid "decrease the article's score by" msgstr "μείωση της βαθμολογίας του άρθρου κατά" #: ../pan/gui/score-add-ui.cc:114 msgid "set the article's score to" msgstr "ορισμός της βαθμολογίας του άρθρου σε" #: ../pan/gui/score-add-ui.cc:115 msgid "watch the article (set its score to 9999)" msgstr "παρακολούθηση του άρθρου (ορισμός της βαθμολογίας του σε 9999)" #: ../pan/gui/score-add-ui.cc:116 msgid "ignore the article (set its score to -9999)" msgstr "παράβλεψη του άρθρου (ορισμός της βαθμολογίας του σε -9999)" #: ../pan/gui/score-add-ui.cc:141 msgid "References" msgstr "Αναφορές" #: ../pan/gui/score-add-ui.cc:142 msgid "Line Count" msgstr "Πλήθος γραμμών" #: ../pan/gui/score-add-ui.cc:143 msgid "Byte Count" msgstr "Πλήθος οκτάδων" #: ../pan/gui/score-add-ui.cc:144 msgid "Crosspost Group Count" msgstr "Πλήθος ομάδων ταυτόχρονης αποστολής" #: ../pan/gui/score-add-ui.cc:145 msgid "Age (in days)" msgstr "Ηλικία (σε ημέρες)" #: ../pan/gui/score-add-ui.cc:167 msgid "for the next month" msgstr "για τον επόμενο μήνα" #: ../pan/gui/score-add-ui.cc:168 msgid "for the next six months" msgstr "για τους επόμενους έξι μήνες" #: ../pan/gui/score-add-ui.cc:169 msgid "forever" msgstr "για πάντα" # FIX? drop (see also "On Drop" above) #: ../pan/gui/score-add-ui.cc:194 msgid "contains" msgstr "περιέχει" #: ../pan/gui/score-add-ui.cc:195 msgid "doesn't contain" msgstr "δεν περιέχει" # #: ../pan/gui/score-add-ui.cc:196 msgid "is" msgstr "είναι" #: ../pan/gui/score-add-ui.cc:197 msgid "isn't" msgstr "δεν είναι" #: ../pan/gui/score-add-ui.cc:198 msgid "starts with" msgstr "αρχίζει με" #: ../pan/gui/score-add-ui.cc:199 msgid "ends with" msgstr "τελειώνει με" #: ../pan/gui/score-add-ui.cc:200 msgid "matches regex" msgstr "ταιριάζει με κανονική έκφραση" #: ../pan/gui/score-add-ui.cc:481 msgid "Another rule already sets this article's score." msgstr "Ένας άλλος κανόνας ορίζει ήδη τη βαθμολογία αυτού του άρθρου." #: ../pan/gui/score-add-ui.cc:482 msgid "You may want to go back or delete the old rule." msgstr "Ίσως να θέλετε να επιστρέψετε ή να διαγράψετε τον παλιό κανόνα." #: ../pan/gui/score-add-ui.cc:553 msgid "Add and Re_score" msgstr "Προσθήκη επα_ναβαθμολόγηση" # #: ../pan/gui/score-add-ui.cc:604 ../pan/gui/score-add-ui.cc:624 msgid "New Scoring Rule" msgstr "Νέος κανόνας βαθμολογίας" #: ../pan/gui/score-add-ui.cc:635 msgid "Group name" msgstr "Όνομα ομάδας" # #: ../pan/gui/score-add-ui.cc:642 msgid "and" msgstr "και" #: ../pan/gui/score-view-ui.cc:56 msgid "Close and Re_score" msgstr "Κλείσιμο και _επαναβαθμολόγηση" #: ../pan/gui/score-view-ui.cc:154 #, c-format msgid "File %s, Lines %d - %d" msgstr "Αρχείο %s, γραμμές %d: %d" #: ../pan/gui/score-view-ui.cc:182 msgid "Pan: Article's Scores" msgstr "Pan: Βαθμολογίες άρθρου" #: ../pan/gui/score-view-ui.cc:208 msgid "Add" msgstr "Προσθήκη" # #: ../pan/gui/score-view-ui.cc:213 msgid "New Score" msgstr "Νέα βαθμολογία" #: ../pan/gui/score-view-ui.cc:218 msgid "Criteria" msgstr "Κριτήρια" #: ../pan/gui/score-view-ui.cc:241 msgid "Add a New Scoring Rule" msgstr "Προσθήκη νέου κανόνα βαθμολογίας" #: ../pan/gui/score-view-ui.cc:248 msgid "Remove the Selected Scoring Rule" msgstr "Αφαίρεση του επιλεγμένου κανόνα βαθμολογίας" #: ../pan/gui/server-ui.cc:259 msgid "Please specify the server's address." msgstr "Παρακαλούμε ορίστε τη διεύθυνση του διακομιστή." #: ../pan/gui/server-ui.cc:305 msgid "Import SSL Certificate (PEM Format) From File" msgstr "Εισαγωγή πιστοποιητικού SSL (μορφής PEM) από αρχείο" #. create the dialog #: ../pan/gui/server-ui.cc:342 ../pan/gui/server-ui.cc:948 msgid "Add a Server" msgstr "Προσθήκη διακομιστή" #: ../pan/gui/server-ui.cc:342 ../pan/gui/server-ui.cc:954 msgid "Edit a Server's Settings" msgstr "Επεξεργασία ρυθμίσεων διακομιστή" # FIX? drop (see also "On Drop" above) #: ../pan/gui/server-ui.cc:362 msgid "Location" msgstr "Τοποθεσία" #: ../pan/gui/server-ui.cc:366 msgid "The news server's actual address, e.g. \"news.mynewsserver.com\"" msgstr "" "Η ενεργή διεύθυνση του διακομιστή ειδήσεων, π.χ. \"news.mynewsserver.com\"" #: ../pan/gui/server-ui.cc:367 msgid "_Address:" msgstr "_Διεύθυνση:" #: ../pan/gui/server-ui.cc:372 msgid "" "The news server's port number. Typically 119 for unencrypted and 563 for " "encrypted connections (SSL/TLS)." msgstr "" "Ο αριθμός θύρας του διακομιστή ειδήσεων. Τυπικά 119 για ακρυπτογράφητες και " "563 για κρυπτογραφημένες συνδέσεις (SSL/TLS)." #: ../pan/gui/server-ui.cc:373 msgid "Por_t:" msgstr "_Θύρα:" #: ../pan/gui/server-ui.cc:376 msgid "Login (if Required)" msgstr "Σύνδεση (αν απαιτείται)" # #: ../pan/gui/server-ui.cc:380 msgid "_Username:" msgstr "Όν_ομα χρήστη:" #: ../pan/gui/server-ui.cc:381 msgid "" "The username to give the server when asked. If your server doesn't require " "authentication, you can leave this blank." msgstr "" "Το όνομα χρήστη που θα δοθεί στον διακομιστή όταν ζητηθεί. Αν ο διακομιστής " "σας δεν απαιτεί πιστοποίηση, μπορείτε να το αφήσετε κενό." # #: ../pan/gui/server-ui.cc:385 msgid "_Password:" msgstr "_Κωδικός πρόσβασης:" #: ../pan/gui/server-ui.cc:386 msgid "" "The password to give the server when asked. If your server doesn't require " "authentication, you can leave this blank." msgstr "" "Ο κωδικός πρόσβασης που θα δοθεί στον διακομιστή όταν ζητηθεί. Αν ο " "διακομιστής σας δεν απαιτεί πιστοποίηση, μπορείτε να το αφήσετε κενό." # #: ../pan/gui/server-ui.cc:389 msgid "Settings" msgstr "Ρυθμίσεις" #: ../pan/gui/server-ui.cc:396 msgid "Connection _Limit:" msgstr "Ό_ριο σύνδεσης:" #: ../pan/gui/server-ui.cc:400 msgid "After Two Weeks" msgstr "Μετά από δύο εβδομάδες" #: ../pan/gui/server-ui.cc:401 msgid "After One Month" msgstr "Μετά από έναν μήνα" #: ../pan/gui/server-ui.cc:402 msgid "After Two Months" msgstr "Μετά από δύο μήνες" #: ../pan/gui/server-ui.cc:403 msgid "After Three Months" msgstr "Μετά από τρεις μήνες" #: ../pan/gui/server-ui.cc:404 msgid "After Six Months" msgstr "Μετά από έξι μήνες" #: ../pan/gui/server-ui.cc:405 msgid "Never Expire Old Articles" msgstr "Να μην λήγουν ποτέ τα παλιά άρθρα" #: ../pan/gui/server-ui.cc:419 msgid "E_xpire Old Articles:" msgstr "_Λήξη παλιών άρθρων:" # #: ../pan/gui/server-ui.cc:423 msgid "Primary" msgstr "Πρωτεύον" #: ../pan/gui/server-ui.cc:424 msgid "Fallback" msgstr "Αναπλήρωση" # #: ../pan/gui/server-ui.cc:438 msgid "Server Rank:" msgstr "Τάξη διακομιστή:" #: ../pan/gui/server-ui.cc:442 msgid "" "Fallback servers are used for articles that can't be found on the " "primaries. One common approach is to use free servers as primaries and " "subscription servers as fallbacks." msgstr "" "Οι διακομιστές αναπλήρωσης χρησιμοποιούνται για άρθρα που δεν μπορούν να " "βρεθούν στα πρωτεύοντα. Μια συνηθισμένη προσέγγιση είναι η χρήση ελεύθερων " "εξυπηρετητών ως πρωτευόντων και διακομιστών με συνδρομή ως αναπληρωματικών." #: ../pan/gui/server-ui.cc:447 msgid "Disable Compression (N/A)" msgstr "Απενεργοποίηση συμπίεσης (Δ/Υ)" #: ../pan/gui/server-ui.cc:448 msgid "XZVER Compression (Astraweb)" msgstr "Συμπίεση XZVER (Astraweb)" #: ../pan/gui/server-ui.cc:449 msgid "GZIP Compression (Giganews etc.)" msgstr "Συμπίεση GZIP (Giganews etc.)" #: ../pan/gui/server-ui.cc:463 msgid "Header Compression:" msgstr "Συμπίεση κεφαλίδας:" #: ../pan/gui/server-ui.cc:469 msgid "Security" msgstr "Ασφάλεια" #: ../pan/gui/server-ui.cc:474 msgid "Use Unsecure (Plaintext) Connections" msgstr "Χρήση επισφαλών συνδέσεων (απλό κείμενο)" #: ../pan/gui/server-ui.cc:475 msgid "Use Secure SSL Connections" msgstr "Χρήση ασφαλών συνδέσεων SSL" #: ../pan/gui/server-ui.cc:490 msgid "TLS (SSL) Settings:" msgstr "Ρυθμίσεις TLS (SSL):" #: ../pan/gui/server-ui.cc:495 msgid "" "You can enable/disable secure SSL/TLS connections here. If you enable SSL/" "TLS, your data is encrypted and secure. It is encouraged to enable SSL/TLS " "for privacy reasons." msgstr "" "Μπορείτε να ενεργοποιήσετε/απενεργοποιήσετε ασφαλείς συνδέσεις SSL/TLS εδώ. " "Αν ενεργοποιήσετε SSL/TLS, τα δεδομένα σας κρυπτογραφούνται και " "ασφαλίζονται. Ενθαρρύνεται η ενεργοποίηση SSL/TLS για ιδιωτικούς λόγους." #: ../pan/gui/server-ui.cc:500 msgid "Always trust this server's certificate" msgstr "Εμπιστοσύνη πάντα σε αυτό το πιστοποιητικό του διακομιστή" #: ../pan/gui/server-ui.cc:676 #, c-format msgid "Really delete \"%s\"?" msgstr "Να διαγραφεί πραγματικά το \"%s\";" #: ../pan/gui/server-ui.cc:765 msgid "No information available." msgstr "Χωρίς διαθέσιμες πληροφορίες." #: ../pan/gui/server-ui.cc:775 #, c-format msgid "Server Certificate for '%s'" msgstr "Το πιστοποιητικό διακομιστή για '%s'" #: ../pan/gui/server-ui.cc:874 #, c-format msgid "Really delete certificate for \"%s\"?" msgstr "Να διαγραφεί πραγματικά το πιστοποιητικό για το \"%s\";" # #. dialog #: ../pan/gui/server-ui.cc:901 ../pan/gui/server-ui.cc:922 #: ../pan/gui/server-ui.cc:1020 msgid "Servers" msgstr "Διακομιστές" # #: ../pan/gui/server-ui.cc:961 msgid "Remove a Server" msgstr "Αφαίρεση διακομιστή" #. dialog #: ../pan/gui/server-ui.cc:994 msgid "SSL Certificates" msgstr "Πιστοποιητικά SSL" #: ../pan/gui/server-ui.cc:1015 msgid "Certificates" msgstr "Πιστοποιητικά" #: ../pan/gui/server-ui.cc:1046 msgid "Import Certificate" msgstr "Εισαγωγή πιστοποιητικού" #: ../pan/gui/server-ui.cc:1052 msgid "Inspect Certificate" msgstr "Επιθεώρηση πιστοποιητικού" # #: ../pan/gui/server-ui.cc:1059 msgid "Remove Certificate" msgstr "Αφαίρεση πιστοποιητικού" #: ../pan/gui/task-pane.cc:121 #, c-format msgid "" "\n" "Upload\n" "\n" "Subject: \"%s\"\n" "From: %s\n" "Groups: %s\n" "Sourcefile: %s\n" msgstr "" "\n" "Αποστολή\n" "\n" "Θέμα: \"%s\"\n" "Από: %s\n" "Ομάδες: %s\n" "Πηγαίο αρχείο: %s\n" #: ../pan/gui/task-pane.cc:133 #, c-format msgid "" "\n" "Download\n" "\n" "Subject: \"%s\"\n" "From: %s\n" "Date: %s\n" "Groups: %s\n" "Save Path: %s\n" msgstr "" "\n" "Λήψη\n" "\n" "Θέμα: \"%s\"\n" "Από: %s\n" "Ημερομηνία: %s\n" "Ομάδες: %s\n" "Αποθήκευση διαδρομής: %s\n" # #: ../pan/gui/task-pane.cc:135 msgid "unknown" msgstr "άγνωστο" #: ../pan/gui/task-pane.cc:303 msgid "Choose New Destination for Selected Tasks" msgstr "Επιλέξτε νέο προορισμό για τις επιλεγμένες εργασίες" #: ../pan/gui/task-pane.cc:457 #, c-format msgid "Pan: Tasks (%d Queued, %d Running, %d Stopped)" msgstr "Pan: Εργασίες (%d σε αναμονή, %d εκτελούνται, %d σε παύση)" #: ../pan/gui/task-pane.cc:459 #, c-format msgid "Pan: Tasks (%d Queued, %d Running)" msgstr "Pan: Εργασίες (%d σε αναμονή, %d εκτελούνται)" #: ../pan/gui/task-pane.cc:461 #, c-format msgid "Pan: Tasks" msgstr "Pan: Εργασίες" #: ../pan/gui/task-pane.cc:486 #, c-format msgid "%lu selected, %s" msgstr "%lu επιλεγμένο, %s" #: ../pan/gui/task-pane.cc:550 msgid "Running" msgstr "Εκτελείται" #: ../pan/gui/task-pane.cc:551 msgid "Decoding" msgstr "Αποκωδικοποιείται" #: ../pan/gui/task-pane.cc:553 msgid "Queued for Decode" msgstr "Σε αναμονή για αποκωδικοποίηση" #: ../pan/gui/task-pane.cc:554 msgid "Queued for Encode" msgstr "Σε αναμονή για κρυπτογράφηση" #: ../pan/gui/task-pane.cc:555 msgid "Queued" msgstr "Σε αναμονή" #: ../pan/gui/task-pane.cc:556 msgid "Stopped" msgstr "Σταμάτησε" # #: ../pan/gui/task-pane.cc:557 msgid "Removing" msgstr "Αφαιρείται" #: ../pan/gui/task-pane.cc:586 #, c-format msgid "%d%% Done" msgstr "%d%% έτοιμο" #: ../pan/gui/task-pane.cc:592 #, c-format msgid "%d:%02d:%02d Remaining (%d @ %lu KiB/s)" msgstr "%d:%02d:%02d απομένει (%d @ %lu KiB/s)" #: ../pan/gui/task-pane.cc:687 ../pan/gui/task-pane.cc:688 msgid "Move To Top" msgstr "Μετακίνηση στην κορυφή" #: ../pan/gui/task-pane.cc:692 ../pan/gui/task-pane.cc:693 msgid "Move To Bottom" msgstr "Μετακίνηση στο τέλος" #: ../pan/gui/task-pane.cc:697 ../pan/gui/task-pane.cc:698 msgid "Show Task Information" msgstr "Εμφάνιση πληροφοριών εργασίας" #: ../pan/gui/task-pane.cc:702 ../pan/gui/task-pane.cc:703 msgid "Stop Task" msgstr "Διακοπή εργασίας" #: ../pan/gui/task-pane.cc:707 ../pan/gui/task-pane.cc:708 msgid "Delete Task" msgstr "Διαγραφή εργασίας" #: ../pan/gui/task-pane.cc:712 ../pan/gui/task-pane.cc:713 msgid "Restart Task" msgstr "Επανεκκίνηση εργασίας" #: ../pan/gui/task-pane.cc:717 ../pan/gui/task-pane.cc:718 msgid "Change Download Destination" msgstr "Αλλαγή προορισμού λήψης" #: ../pan/gui/task-pane.cc:1028 msgid "_Online" msgstr "_Με σύνδεση" #: ../pan/gui/task-pane.cc:1045 msgid "Restart Tasks" msgstr "Επανεκκίνηση εργασιών" #: ../pan/gui/task-pane.cc:1047 msgid "Stop Tasks" msgstr "Διακοπή εργασιών" #: ../pan/gui/task-pane.cc:1049 msgid "Delete Tasks" msgstr "Διαγραφή εργασιών" #: ../pan/gui/task-pane.cc:1055 msgid "Show info popups" msgstr "Εμφάνιση αναδυόμενων πληροφοριών" #: ../pan/gui/url.cc:123 #, c-format msgid "Error starting URL: %s (Command was: %s)" msgstr "Σφάλμα κατά την εκκίνηση της διεύθυνσης: %s (η εντολή ήταν: %s)" # gconf/gconf-internals.c:2333 #: ../pan/tasks/decoder.cc:117 #, c-format msgid "Couldn't save file \"%s\": %s" msgstr "Αδύνατη η αποθήκευση του αρχείου \"%s\": %s" #: ../pan/tasks/decoder.cc:139 ../pan/tasks/encoder.cc:136 msgid "Error initializing uulib" msgstr "Σφάλμα κατά την αρχικοποίηση uulib" #: ../pan/tasks/decoder.cc:154 ../pan/tasks/socket-impl-gio.cc:360 #: ../pan/tasks/socket-impl-openssl.cc:642 #, c-format msgid "Error reading from %s: %s" msgstr "Σφάλμα κατά την ανάγνωση από %s: %s" #: ../pan/tasks/decoder.cc:194 #, c-format msgid "Saved \"%s\"" msgstr "Αποθηκευμένο \"%s\"" #: ../pan/tasks/decoder.cc:201 #, c-format msgid "" "Error saving \"%s\":\n" "%s." msgstr "" "Σφάλμα κατά την αποθήκευση \"%s\":\n" "%s." #: ../pan/tasks/decoder.cc:314 ../pan/tasks/task-article.cc:354 #, c-format msgid "Decoding %s" msgstr "Αποκωδικοποιείται το %s" #: ../pan/tasks/encoder.cc:103 ../pan/tasks/encoder.cc:154 #, c-format msgid "Error loading %s from cache." msgstr "Σφάλμα κατά την φόρτωση του %s από κρυφή μνήμη." #: ../pan/tasks/encoder.cc:176 #, c-format msgid "Error encoding %s: %s" msgstr "Σφάλμα κατά την κωδικοποίηση του %s: %s" #: ../pan/tasks/encoder.cc:266 #, c-format msgid "Encoding %s" msgstr "Κωδικοποιείται το %s" #: ../pan/tasks/nntp.cc:148 #, c-format msgid "%s requires a username, but none is set." msgstr "το %s απαιτεί όνομα χρήστη, αλλά κανένα δεν έχει οριστεί." #: ../pan/tasks/nntp.cc:161 #, c-format msgid "%s requires a password, but none is set." msgstr "το %s απαιτεί κωδικό πρόσβασης, αλλά κανένας δεν έχει οριστεί." #: ../pan/tasks/nntp.cc:239 #, c-format msgid "Sending \"%s\" to %s returned an error: %s" msgstr "Η αποστολή του \"%s\" στο %s επέστρεψε ένα σφάλμα: %s" #: ../pan/tasks/nntp.cc:262 #, c-format msgid "Sending \"%s\" to %s returned an unrecognized response: \"%s\"" msgstr "" "Η αποστολή του \"%s\" στο %s επέστρεψε μια μη αναγνωρίσιμη απόκριση: \"%s\"" #: ../pan/tasks/nntp-pool.cc:235 #, c-format msgid "Unable to connect to \"%s\"" msgstr "Αδύνατη η σύνδεση με το \"%s\"" #: ../pan/tasks/queue.cc:772 ../pan/tasks/queue.cc:800 #: ../pan/tasks/queue.cc:827 msgid "No space left on device." msgstr "Δεν έμεινε καθόλου χώρος στη συσκευή." #: ../pan/tasks/socket-impl-gio.cc:173 ../pan/tasks/socket-impl-gio.cc:211 #: ../pan/tasks/socket-impl-openssl.cc:214 #: ../pan/tasks/socket-impl-openssl.cc:252 #, c-format msgid "Error connecting to \"%s\"" msgstr "Σφάλμα κατά τη σύνδεση στο \"%s\"" # #: ../pan/tasks/socket-impl-gio.cc:359 ../pan/tasks/socket-impl-openssl.cc:641 msgid "Unknown Error" msgstr "Άγνωστο σφάλμα" #: ../pan/tasks/task-article.cc:62 ../pan/tasks/task-article.cc:160 #, c-format msgid "Saving %s" msgstr "Αποθηκεύεται το %s" #: ../pan/tasks/task-article.cc:64 #, c-format msgid "Reading %s" msgstr "Διαβάζεται το %s" #: ../pan/tasks/task-article.cc:326 #, c-format msgid "Article \"%s\" is incomplete -- the news server(s) don't have part %s" msgstr "" "Το άρθρο \"%s\" είναι ατελές -- ο διακομιστής ειδήσεων δεν έχει το τμήμα %s" #: ../pan/tasks/task-groups.cc:41 #, c-format msgid "Getting group list from \"%s\"" msgstr "Λαμβάνεται η λίστα ομάδων από τον \"%s\"" #: ../pan/tasks/task-groups.cc:134 #, c-format msgid "Fetched %lu Groups" msgstr "Προσκομίστηκαν %lu ομάδες" #: ../pan/tasks/task-post.cc:35 #, c-format msgid "Posting \"%s\"" msgstr "Αποστολή του \"%s\"" #: ../pan/tasks/task-post.cc:76 #, c-format msgid "Posting of \"%s\" failed: %s" msgstr "Αποτυχία αποστολής του \"%s\": %s" #: ../pan/tasks/task-post.cc:81 #, c-format msgid "Posting of \"%s\" successful: %s" msgstr "Πετυχημένη αποστολή του \"%s\": %s" #: ../pan/tasks/task-upload.cc:51 #, c-format msgid "Uploading %s" msgstr "Γίνεται αποστολή του %s" #: ../pan/tasks/task-upload.cc:244 #, c-format msgid "Uploading %s - Part %d of %d" msgstr "Γίνεται αποστολή του %s - Τμήμα %d από %d" #: ../pan/tasks/task-upload.cc:246 #, c-format msgid "Uploading message body with subject \"%s\"" msgstr "Γίνεται αποστολή του σώματος του μηνύματος με θέμα \"%s\"" #: ../pan/tasks/task-upload.cc:303 #, c-format msgid "Posting of file %s (part %d of %d) failed: No posts allowed by server." msgstr "" "Αποτυχία αποστολής του αρχείου %s (τμήμα %d από %d): Δεν επιτράπηκαν " "αποστολές από τον διακομιστή." #: ../pan/tasks/task-upload.cc:311 #, c-format msgid "Posting of file %s (part %d of %d) failed: %s" msgstr "Αποτυχία αποστολής του αρχείου %s (τμήμα %d από %d): %s" #: ../pan/tasks/task-upload.cc:321 ../pan/tasks/task-upload.cc:328 #, c-format msgid "Posting of file %s (part %d of %d) successful: %s" msgstr "Πετυχημένη αποστολή του αρχείου %s (τμήμα %d από %d): %s" #: ../pan/tasks/task-upload.cc:338 #, c-format msgid "Posting of file %s successful: %s" msgstr "Πετυχημένη αποστολή του αρχείου %s: %s" #: ../pan/tasks/task-upload.cc:342 #, c-format msgid "" "Posting of file %s not completely successful: Check the log (right-click " "list item)." msgstr "" "Η αποστολή του αρχείου %s δεν ήταν πλήρως πετυχημένη: Ελέγξετε την καταγραφή " "(δεξιό πάτημα στο στοιχείο λίστας)." #: ../pan/tasks/task-upload.cc:358 #, c-format msgid "" "Posting of file %s not successful: Check the log (right-click list item)." msgstr "" "Η αποστολή του αρχείου %s δεν ήταν πετυχημένη: Ελέγξετε την καταγραφή (δεξιό " "πάτημα στο στοιχείο λίστας)." #: ../pan/tasks/task-xover.cc:83 #, c-format msgid "Getting all headers for \"%s\"" msgstr "Λαμβάνονται όλες οι κεφαλίδες για το \"%s\"" #: ../pan/tasks/task-xover.cc:86 #, c-format msgid "Getting new headers for \"%s\"" msgstr "Λαμβάνονται οι νέες κεφαλίδες για το \"%s\"" #. SAMPLE #: ../pan/tasks/task-xover.cc:90 #, c-format msgid "Sampling headers for \"%s\"" msgstr "Δειγματοληψία κεφαλίδων για το \"%s\"" #: ../pan/tasks/task-xover.cc:426 #, c-format msgid "%s (%lu parts, %lu articles)" msgstr "%s (%lu τμήματα, %lu άρθρα)" #: ../pan/tasks/task-xover.cc:500 #, c-format msgid "Getting new headers for \"%s\" done." msgstr "Έτοιμη η λήψη των νέων κεφαλίδων για το \"%s\"." #: ../pan/tasks/task-xoverinfo.cc:78 #, c-format msgid "Getting header counts for \"%s\"" msgstr "Λήψη πλήθους κεφαλίδων για το \"%s\"" #: ../pan/usenet-utils/filter-info.cc:168 msgid "article doesn't have attachments" msgstr "Το άρθρο δεν έχει συνημμένα" #: ../pan/usenet-utils/filter-info.cc:172 msgid "the article has attachments" msgstr "Το άρθρο έχει συνημμένα" #: ../pan/usenet-utils/filter-info.cc:176 msgid "the article isn't cached locally" msgstr "Το άρθρο δεν είναι στην τοπική κρυφή μνήμη" #: ../pan/usenet-utils/filter-info.cc:180 msgid "the article is cached locally" msgstr "Το άρθρο είναι στην τοπική κρυφή μνήμη" #: ../pan/usenet-utils/filter-info.cc:184 msgid "the article wasn't posted by you" msgstr "Το άρθρο δεν δημοσιεύτηκε από εσάς" #: ../pan/usenet-utils/filter-info.cc:188 msgid "the article was posted by you" msgstr "Το άρθρο δημοσιεύτηκε από εσάς" #: ../pan/usenet-utils/filter-info.cc:192 msgid "the article has been read" msgstr "Το άρθρο έχει διαβαστεί" #: ../pan/usenet-utils/filter-info.cc:196 msgid "the article hasn't been read" msgstr "Το άρθρο δεν έχει διαβαστεί" #: ../pan/usenet-utils/filter-info.cc:200 #, c-format msgid "the article is less than %ld bytes long" msgstr "Το άρθρο είναι μικρότερο από %ld οκτάδες" #: ../pan/usenet-utils/filter-info.cc:205 #, c-format msgid "the article is at least %ld bytes long" msgstr "Το άρθρο έχει τουλάχιστον %ld οκτάδες" #: ../pan/usenet-utils/filter-info.cc:210 #, c-format msgid "the article is less than %ld lines long" msgstr "Το άρθρο είναι μικρότερο από %ld γραμμές" #: ../pan/usenet-utils/filter-info.cc:215 #, c-format msgid "the article is at least %ld lines long" msgstr "Το άρθρο είναι τουλάχιστον %ld γραμμές" #: ../pan/usenet-utils/filter-info.cc:220 #, c-format msgid "the article is less than %ld days old" msgstr "Το άρθρο είναι πιο νέο από %ld ημέρες" #: ../pan/usenet-utils/filter-info.cc:225 #, c-format msgid "the article is at least %ld days old" msgstr "Το άρθρο είναι πιο παλιό από %ld ημέρες" #: ../pan/usenet-utils/filter-info.cc:230 #, c-format msgid "the article was posted to less than %ld groups" msgstr "Το άρθρο έχει σταλεί σε λιγότερο από %ld ομάδες" #: ../pan/usenet-utils/filter-info.cc:235 #, c-format msgid "the article was posted to at least %ld groups" msgstr "Το άρθρο έχει σταλεί σε τουλάχιστον %ld ομάδες" #: ../pan/usenet-utils/filter-info.cc:240 #, c-format msgid "the article's score is less than %ld" msgstr "Η βαθμολογία του άρθρου είναι μικρότερη από %ld" #: ../pan/usenet-utils/filter-info.cc:245 #, c-format msgid "the article's score is %ld or higher" msgstr "Η βαθμολογία του άρθρου είναι %ld ή υψηλότερη" #: ../pan/usenet-utils/filter-info.cc:254 #: ../pan/usenet-utils/filter-info.cc:264 #, c-format msgid "%s doesn't contain \"%s\"" msgstr "Το %s δεν περιέχει το \"%s\"" #: ../pan/usenet-utils/filter-info.cc:255 #: ../pan/usenet-utils/filter-info.cc:265 #, c-format msgid "%s isn't \"%s\"" msgstr "Το %s δεν είναι \"%s\"" #: ../pan/usenet-utils/filter-info.cc:256 #: ../pan/usenet-utils/filter-info.cc:266 #, c-format msgid "%s doesn't begin with \"%s\"" msgstr "Το %s δεν αρχίζει με \"%s\"" #: ../pan/usenet-utils/filter-info.cc:257 #: ../pan/usenet-utils/filter-info.cc:267 #, c-format msgid "%s doesn't end with \"%s\"" msgstr "Το %s δεν τελειώνει με \"%s\"" #: ../pan/usenet-utils/filter-info.cc:258 #: ../pan/usenet-utils/filter-info.cc:268 #, c-format msgid "%s doesn't match the regex \"%s\"" msgstr "Το %s δεν ταιριάζει με την κανονική έκφραση \"%s\"" # FIX? drop (see also "On Drop" above) #: ../pan/usenet-utils/filter-info.cc:280 #, c-format msgid "%s contains \"%s\"" msgstr "Το %s περιέχει το \"%s\"" #: ../pan/usenet-utils/filter-info.cc:281 #, c-format msgid "%s is \"%s\"" msgstr "Το %s είναι \"%s\"" #: ../pan/usenet-utils/filter-info.cc:282 #, c-format msgid "%s begins with \"%s\"" msgstr "Το %s ξεκινά με \"%s\"" #: ../pan/usenet-utils/filter-info.cc:283 #, c-format msgid "%s ends with \"%s\"" msgstr "Το %s τελειώνει με \"%s\"" #: ../pan/usenet-utils/filter-info.cc:284 #, c-format msgid "%s matches the regex \"%s\"" msgstr "Το %s ταιριάζει με την κανονική έκφραση \"%s\"" #: ../pan/usenet-utils/filter-info.cc:290 msgid "Any of these tests fail:" msgstr "Οποιοσδήποτε από αυτούς τους ελέγχους αποτυγχάνει:" #: ../pan/usenet-utils/filter-info.cc:297 msgid "All of these tests pass:" msgstr "Όλοι αυτοί οι έλεγχοι περνούν:" #: ../pan/usenet-utils/filter-info.cc:304 msgid "None of these tests pass:" msgstr "Κανένας από αυτούς τους ελέγχους δεν περνά:" #: ../pan/usenet-utils/filter-info.cc:311 msgid "Any of these tests pass:" msgstr "Κανένας από αυτούς τους ελέγχους δεν περνά:" #: ../pan/usenet-utils/gnksa.cc:880 #, c-format msgid "No email address provided; generating message-id with domain \"%s\"" msgstr "" "Δεν δόθηκε ηλεκτρονική διεύθυνση· δημιουργούνται αναγνωριστικά μηνυμάτων με " "τομέα \"%s\"" #: ../pan/usenet-utils/message-check.cc:124 msgid "Warning: Reply seems to be top-posted." msgstr "Προειδοποίηση: Η απάντηση φαίνεται ότι είναι τοποθετημένη στην κορυφή." #: ../pan/usenet-utils/message-check.cc:145 msgid "Warning: The signature marker should be \"-- \", not \"--\"." msgstr "" "Προειδοποίηση: Η σημείωση πριν την υπογραφή πρέπει να είναι \"-- \", και όχι " "\"--\"." #: ../pan/usenet-utils/message-check.cc:162 msgid "Warning: Signature prefix with no signature." msgstr "Προειδοποίηση: Πρόθεμα υπογραφής χωρίς καμία υπογραφή." #: ../pan/usenet-utils/message-check.cc:167 msgid "Warning: Signature is more than 4 lines long." msgstr "Προειδοποίηση: Η υπογραφή ξεπερνά τις 4 γραμμές κειμένου." #: ../pan/usenet-utils/message-check.cc:172 msgid "Warning: Signature is more than 80 characters wide." msgstr "Προειδοποίηση: Η υπογραφή είναι παραπάνω από 80 χαρακτήρες." #: ../pan/usenet-utils/message-check.cc:198 #, c-format msgid "Warning: %d line is more than 80 characters wide." msgid_plural "Warning: %d lines are more than 80 characters wide." msgstr[0] "Προειδοποίηση: %d γραμμή είναι παραπάνω από 80 χαρακτήρες." msgstr[1] "Προειδοποίηση: %d γραμμές είναι παραπάνω από 80 χαρακτήρες." #: ../pan/usenet-utils/message-check.cc:223 msgid "Error: Message is empty." msgstr "Σφάλμα: Το μήνυμα είναι κενό." #: ../pan/usenet-utils/message-check.cc:258 msgid "Warning: The message is entirely quoted text!" msgstr "Προειδοποίηση: Το μήνυμα είναι πλήρης παράθεση άλλου κειμένου!" #: ../pan/usenet-utils/message-check.cc:259 msgid "Warning: The message is mostly quoted text." msgstr "" "Προειδοποίηση: Το μήνυμα είναι σχεδόν ολόκληρο παράθεση άλλου κειμένου." #: ../pan/usenet-utils/message-check.cc:309 msgid "Error: Message appears to have no new content." msgstr "Σφάλμα: Το μήνυμα φαίνεται πως δεν έχει νέο περιεχόμενο." #: ../pan/usenet-utils/message-check.cc:344 #: ../pan/usenet-utils/message-check.cc:383 #, c-format msgid "" "Warning: The posting profile's server doesn't carry newsgroup\n" "\t\"%s\".\n" "\tIf the group name is correct, switch profiles in the \"From:\"\n" "\tline or edit the profile with \"Edit|Manage Posting Profiles\"." msgstr "" "Προειδοποίηση: Ο διακομιστής προφίλ αποστολής δεν μεταφέρει την ομάδα " "ειδήσεων\n" "\t\"%s\".\n" "\tΑν το όνομα της ομάδας είναι σωστό, εναλλαγή προφίλ στη γραμμή \"Από:\"\n" "\tή επεξεργασία του προφίλ με \"Επεξεργασία|Διαχείριση προφίλ αποστολής \"." #: ../pan/usenet-utils/message-check.cc:355 msgid "Warning: Following-Up to too many groups." msgstr "Προειδοποίηση: Ακολουθούν υπερβολικά πολλές ομάδες." #: ../pan/usenet-utils/message-check.cc:366 msgid "Error: No Subject specified." msgstr "Σφάλμα: Δεν ορίστηκε θέμα." #: ../pan/usenet-utils/message-check.cc:395 #, c-format msgid "Warning: Group \"%s\" is read-only." msgstr "Προειδοποίηση: Η ομάδα \"%s\" είναι μόνο για ανάγνωση." #: ../pan/usenet-utils/message-check.cc:404 msgid "Error: Posting to a very large number of groups." msgstr "Σφάλμα: Αποστολή σε πολύ μεγάλο αριθμό ομάδων." #: ../pan/usenet-utils/message-check.cc:409 msgid "Warning: Posting to a large number of groups." msgstr "Προειδοποίηση: Αποστολή σε μεγάλο αριθμό ομάδων." #: ../pan/usenet-utils/message-check.cc:416 msgid "Warning: Crossposting without setting Followup-To header." msgstr "" "Προειδοποίηση: Ταυτόχρονη δημοσίευση χωρίς ορισμό της κεφαλίδας " "παρακολούθηση." # #: ../pan/usenet-utils/message-check.cc:441 msgid "Error: Bad email address." msgstr "Σφάλμα: εσφαλμένη διεύθυνση αλληλογραφίας." #: ../pan/usenet-utils/message-check.cc:450 msgid "Warning: Most newsgroups frown upon HTML posts." msgstr "" "Προειδοποίηση: Οι περισσότερες ομάδες ειδήσεων αποδοκιμάζουν αποστολές HTML." #: ../pan/usenet-utils/message-check.cc:486 msgid "Error: No Recipients." msgstr "Σφάλμα: Χωρίς παραλήπτες." #: ../pan/usenet-utils/scorefile.cc:304 #, c-format msgid "" "Error reading score in %*.*s, line %d: expected 'Expires: MM/DD/YYYY' or " "'Expires: DD-MM-YYYY'." msgstr "" "Σφάλμα κατά την ανάγνωση βαθμολογίας σε %*.*s, γραμμή %d: αναμενόταν 'Λήξη: " "MM/DD/YYYY ή 'Λήξη: DD-MM-YYYY'." #: ../pan/usenet-utils/scorefile.cc:307 #, c-format msgid "Expired old score from %*.*s, line %d" msgstr "Έληξε η παλιά βαθμολογία από %*.*s, γραμμή %d" #: ../pan/usenet-utils/scorefile.cc:380 #, c-format msgid "Error reading score in %*.*s, line %d: unexpected line." msgstr "" "Σφάλμα κατά την ανάγνωση βαθμολογίας στο %*.*s, γραμμή %d: αναπάντεχη γραμμή." #: ../pan/usenet-utils/scorefile.cc:428 #, c-format msgid "Read %lu scoring rules in %lu sections from \"%s\"" msgstr "Ανάγνωση %lu κανόνων βαθμολογίας στις %lu ενότητες από το \"%s\"" #: ../pan/usenet-utils/ssl-utils.h:189 #, c-format msgid "Error printing the server certificate for '%s'" msgstr "Σφάλμα κατά την εκτύπωση του πιστοποιητικού διακομιστή για '%s'" #: ../pan/usenet-utils/ssl-utils.h:205 #, c-format msgid "" "The current server '%s' sent this security certificate:\n" "\n" msgstr "" "Ο τρέχων διακομιστής '%s' έστειλε αυτό το πιστοποιητικό ασφάλειας:\n" "\n" #: ../pan/usenet-utils/ssl-utils.h:206 #, c-format msgid "" "Certificate information for server '%s':\n" "\n" msgstr "" "Πληροφορίες πιστοποιητικού για τον διακομιστή '%s':\n" "\n" #: ../pan/usenet-utils/ssl-utils.h:208 #, c-format msgid "" "%sIssuer information:\n" "%s\n" "Valid until: %s\n" "\n" "Not valid before: %s\n" "\n" msgstr "" "%sΠληροφορίες εκδότη:\n" "%s\n" "Έγκυρο μέχρι: %s\n" "\n" "Μη έγκυρο πριν: %s\n" "\n" #: ../pan/usenet-utils/text-massager.cc:399 msgid "> [quoted text muted]" msgstr "> [Το κείμενο σε παράθεση παραλείφθηκε]" #: ../pan/usenet-utils/text-massager.cc:579 msgid "no_name" msgstr "χωρίς ό_νομα" #: ../pan/usenet-utils/text-massager.cc:580 msgid "no_mail" msgstr "χωρίς ηλ. _διεύθυνση" #~ msgid "DL Initialization..." #~ msgstr "Αρχικοποίηση DL..." #~ msgid "Open Download Meter Preferences" #~ msgstr "Άνοιγμα μεταφόρτωσης των προτιμήσεων μέτρου" #~ msgid "KB" #~ msgstr "KB" #~ msgid "MB" #~ msgstr "MB" #~ msgid "GB" #~ msgstr "GB" #~ msgid "TB" #~ msgstr "TB" #~ msgid "DL %s" #~ msgstr "DL %s" #~ msgid "_Download Meter Preferences" #~ msgstr "_Μεταφόρτωση προτιμήσεων μέτρου" #~| msgid "Pan: Download Headers" #~ msgid "Pan: Download Meter Preferences" #~ msgstr "Pan: Μεταφόρτωση προτιμήσεων μέτρου" #~ msgid "When Download Limit Is Reached:" #~ msgstr "Όταν φτάσει το όριο μεταφόρτωσης:" #~ msgid "Warn" #~ msgstr "Προειδοποίηση" #~| msgid "Connecting to mail server" #~ msgid "Disconnect from server" #~ msgstr "Αποσύνδεση από τον διακομιστή" #~ msgid "Download Limit" #~ msgstr "Όριο μεταφόρτωσης" #~ msgid "Reset" #~ msgstr "Επαναφορά" # # NOTE: Translation of "Create" as "New" to # # keep msg length relatively short... #~ msgid "Quoted text:" #~ msgstr "Κείμενο σε εισαγωγικά:" #~ msgid "Age (newest first)" #~ msgstr "Ηλικία (τα πιο νέα πρώτα)" #~ msgid "Age (oldest first)" #~ msgstr "Ηλικία (τα πιο παλιά πρώτα)" #~ msgid "Size (smallest first)" #~ msgstr "Μέγεθος (τα πιο μικρά πρώτα)" #~ msgid "Size (largest first)" #~ msgstr "Μέγεθος (τα πιο μεγάλα πρώτα)" #~ msgid "Download" #~ msgstr "Μεταφόρτωση" #~ msgid "Name (regex)" #~ msgstr "Όνομα (κανονική έκφραση)" #~ msgid "Release Info" #~ msgstr "Πληροφορίες έκδοσης" #~ msgid "Download selected Release/Files" #~ msgstr "Μεταφόρτωση επιλεγμένων εκδόσεων/αρχείων" #~ msgid "Refresh" #~ msgstr "Ανανέωση" # #~| msgid "Refresh Article Counts" #~ msgid "Refresh current results" #~ msgstr "Ανανέωση τρεχόντων αποτελεσμάτων" # Haven't come up (yet) with a satisfactory xlation of screensaver... #~ msgid "Pan Newsreader" #~ msgstr "Pan Ανάγνωση συζητήσεων" #, fuzzy #~ msgid "Save attachment as ...." #~ msgstr "Αποθήκευση συννημένων ως..." #, fuzzy #~ msgid "Always trust" #~ msgstr "Εξωτερικό πρόγραμμα επεξεργασίας" #, fuzzy #~ msgid "Edit Hotkey" #~ msgstr "Επεξεργασία Φίλτρων" #, fuzzy #~ msgid "Read collapsed thread:" #~ msgstr "Κατάρρευση όλων των αλληλουχιών" #, fuzzy #~ msgid "And the article's" #~ msgstr "Λαμβάνονται τα άρθρα" #~ msgid "Read News from Usenet" #~ msgstr "Ανάγνωση συζητήσεων από το Usenet" #, fuzzy #~ msgid "_Toggle Flag on for Thread" #~ msgstr "Άρ_ση σημαίας σε επιλεγμένες αλληλουχίες" #, fuzzy #~ msgid "Attachment not shown: MIME type %s/%s\n" #~ msgstr "Επισυνάψεις" #, fuzzy #~ msgid "An error has occured. Maximize Pan to investigate." #~ msgstr "Προέκυψε σφάλμα κατά την ανάκτηση την πληροφ. χρήστη από τον πιλότο" # #, fuzzy #~ msgid "Signer : " #~ msgstr "Α_ρχείο υπογραφής:" # #, fuzzy #~ msgid "Encoding Options" #~ msgstr "Επιλογές" # #, fuzzy #~ msgid "_Signature:" #~ msgstr "Α_ρχείο υπογραφής:" #, fuzzy #~ msgid "Creating directory \"%s\"" #~ msgstr "Σφάλμα ανοίγματος καταλόγου \"%s\": %s)" # gconf/gconf-internals.c:2333 #~ msgid "Couldn't create directory \"%s\": %s" #~ msgstr "Aδύνατη η δημιουργία καταλόγου \"%s\": %s" #, fuzzy #~ msgid "" #~ "Your copy of libpcre doesn't support UTF-8. UTF-8 regular expressions " #~ "may fail." #~ msgstr "" #~ "Η βιβλιοθήκη libpcre του συστήματός σας δεν υποστηρίζει UTF-8. Κανονικές\n" #~ "εκφράσεις σε UTF-8 μπορεί να μην λειτουργήσουν σωστά." #~ msgid "Can't use regular expression \"%s\": %s at position %d" #~ msgstr "" #~ "Δεν μπορεί να γίνει χρήση της κανονικής έκφρασης \"%s\": %s στην θέση %d" #~ msgid "_Groups" #~ msgstr "Ο_μάδες" # #, fuzzy #~ msgid "Read Selected Group" #~ msgstr "Επόμενη μή αναγνωσμένη ο_μάδα" #, fuzzy #~ msgid "_Mark Group _Read" #~ msgstr "/Ση_μείωση ομάδας ως αναγνωσμένη" # #, fuzzy #~ msgid "_Delete Group's Articles" #~ msgstr "/_Διαγραφή όλων των άρθρων της ομάδας" #, fuzzy #~ msgid "Get New Headers for Subscribed Groups" #~ msgstr "Λήψη όλων των νέων κεφαλίδων στις εγεγγραμένες ομάδες" #, fuzzy #~ msgid "Get Headers from Server" #~ msgstr "Έγινε λήψη %d ομάδων από το διακομιστή \"%s\"" #, fuzzy #~ msgid "Get a new Group list from the Server" #~ msgstr "Παραλαβή μηνύματος %s" #, fuzzy #~ msgid "Subscribe to Selected Groups" #~ msgstr "Εγγεγραμένες ομάδες" #, fuzzy #~ msgid "Unsubscribe from Selected Groups" #~ msgstr "Αφαίρεση όλων των άρθρων από τις επιλεγμένες ομάδες" #, fuzzy #~ msgid "Save Selected Articles..." #~ msgstr "Αποθήκευση των συνημμένων των επιλεγμένων άρθρων." #~ msgid "Cancel Last Task" #~ msgstr "Ακύρωση τελευταίας εργασίας" #, fuzzy #~ msgid "Clear Header Pane" #~ msgstr "Εμφάνιση ταμπλώ κεφαλίδας" #, fuzzy #~ msgid "Clear Body Pane" #~ msgstr "Το Ταμπλώ" #, fuzzy #~ msgid "Download _Selected Article" #~ msgstr "Μεταφόρτωση επιλεγμένων άρθρων" #, fuzzy #~ msgid "Read _Selected Article" #~ msgstr "Λήψη επιλεγμένων άρθρων" # #, fuzzy #~ msgid "Next Unread Group" #~ msgstr "/_Μετάβαση/Επόμενη μή αναγνωσμένη ο_μάδα" #, fuzzy #~ msgid "Next Group" #~ msgstr "/_Μετάβαση/Επόμενη ο_μάδα" # #, fuzzy #~ msgid "Next Watched Article" #~ msgstr "/_Μετάβαση/Επόμε_νο παρακολουθούμενο άρθρο" #, fuzzy #~ msgid "Next Thread" #~ msgstr "/_Μετάβαση/Επόμενη αλληλου_χία" # #, fuzzy #~ msgid "Previous Article" #~ msgstr "/_Μετάβαση/Προη_γούμενο άρθρο" #, fuzzy #~ msgid "Previous Thread" #~ msgstr "Προη_γούμενη αλληλουχία" #, fuzzy #~ msgid "Parent Article" #~ msgstr "/_Μετάβαση/Μη_τρικό άρθρο" #, fuzzy #~ msgid "_Plonk Author" #~ msgstr "/Ά_ρθρα/_Μη εμφάνιση άρθρων αυτού του συγγραφέα" #, fuzzy #~ msgid "Mark Article as Read" #~ msgstr "Σήμανση επιλεγμένων άρθρων ως αναγνωσμένα" #, fuzzy #~ msgid "Reply to Author" #~ msgstr "/Ά_ρθρα/_Μη εμφάνιση άρθρων αυτού του συγγραφέα" #, fuzzy #~ msgid "_About..." #~ msgstr "/_Βοήθεια/_Περί..." #, fuzzy #~ msgid "Abbreviate _Names in Group Pane" #~ msgstr "/_Προβολή/Συντόμευση ο_νομάτων στο ταμπλώ ομάδας" #, fuzzy #~ msgid "Match Only Articles Posted by Me" #~ msgstr "Εμφάνιση άρθρων που έχουν αποσταλεί από εμένα" #, fuzzy #~ msgid "Central European (ISO-8859-2)" #~ msgstr "Κεντρικής Ευρώπης" #, fuzzy #~ msgid "Central European (Windows-1250)" #~ msgstr "Κεντρικής Ευρώπης" #, fuzzy #~ msgid "Chinese Simplified (gb2312)" #~ msgstr "Απλοποιημένη Κινέζικη" #, fuzzy #~ msgid "Chinese Traditional (big5)" #~ msgstr "Παραδοσιακή Κινέζικη" #, fuzzy #~ msgid "Cyrillic (KOI8-R)" #~ msgstr "Κυριλλική" #, fuzzy #~ msgid "Cyrillic, Ukrainian (KOI8-U)" #~ msgstr "Κυριλλική/Ουκρανική" #, fuzzy #~ msgid "Western, New (ISO-8859-15)" #~ msgstr "Δυτική, Νέα" #, fuzzy #~ msgid "Unicode (UTF-8)" #~ msgstr "Unicode, UTF-8" #, fuzzy #~ msgid "Pan: " #~ msgstr "Κανόνες" # #, fuzzy #~ msgid "Clear the Filter" #~ msgstr "Επιλογή Φίλτρο:" #, fuzzy #~ msgid "Pan: %s" #~ msgstr "Κανόνες" #~ msgid "Tasks: %u/%u" #~ msgstr "Εργασίες: %u/%u" #~ msgid "%u Tasks Running, %u Tasks Total" #~ msgstr "%u εργασίες εκτελούνται, %u εργασίες σύνολο" #, fuzzy #~ msgid "%.1f KiB" #~ msgstr "%d @ %.1f KB/s" #, fuzzy #~ msgid "Wrap the Article Body to 80 Columns" #~ msgstr "Γέμισμα/αναδίπλωση σώματος κειμένου" # #, fuzzy #~ msgid "_Close" #~ msgstr "Χρώματα" #, fuzzy #~ msgid "Close Window" #~ msgstr "Κλείσιμο της προβολής καταγραφής." # # NOTE: Translation of "Create" as "New" to # # keep msg length relatively short... #, fuzzy #~ msgid "Cut Text" #~ msgstr "Κείμενο" #, fuzzy #~ msgid "Copy Text" #~ msgstr "Αναδίπλωση κειμένου" #, fuzzy #~ msgid "_Paste" #~ msgstr "_Αποστολή" #, fuzzy #~ msgid "Manage Posting Pr_ofiles..." #~ msgstr "/_Αποστολή/_Προφίλ αποστολέα..." #~ msgid "Western" #~ msgstr "Δυτική" #, fuzzy #~ msgid "Error loading post.ui: \"%s\"" #~ msgstr "Σφάλμα." #, fuzzy #~ msgid "Posting Article" #~ msgstr "Αποστολή άρθρου ``%s''" # #, fuzzy #~ msgid "Add a New Profile" #~ msgstr "" #~ "#-#-#-#-# file-roller.gnome-2-2.el.po (fileroller x.y) #-#-#-#-#\n" #~ "Προσθήκη\n" #~ "#-#-#-#-# gnome-utils.gnome-2-2.el.po (gnome-utils 2.0.4) #-#-#-#-#\n" #~ "Πρόσθεση" # #, fuzzy #~ msgid "Edit the selected profile" #~ msgstr "" #~ "#-#-#-#-# gnome-desktop.HEAD.el.po (gnome-desktop 2.0.5) #-#-#-#-#\n" #~ "Επεξεργασία\n" #~ "#-#-#-#-# gnome-terminal.gnome-2-2.el.po (gnome-terminal 2.0.1) #-#-#-#-" #~ "#\n" #~ "Επεξεργασία\n" #~ "#-#-#-#-# nautilus.HEAD.el.po (nautilus 2.0.7) #-#-#-#-#\n" #~ "Διόρθωση" #, fuzzy #~ msgid "Remove the selected profile" #~ msgstr "Αφαίρεση" #, fuzzy #~ msgid "Threads" #~ msgstr "Σημαία σε αλληλου_χίες" # #, fuzzy #~ msgid "Path" #~ msgstr "Κομμάτια" #, fuzzy #~ msgid "Save Files to Path" #~ msgstr "Αποθήκευση συννημένων" #, fuzzy #~ msgid "_Path:" #~ msgstr "_Αποστολή" #, fuzzy #~ msgid "Group Management" #~ msgstr "Ομάδα" #, fuzzy #~ msgid "Pan: New Scoring Rule" #~ msgstr "" #~ "#-#-#-#-# gnome-desktop.HEAD.el.po (gnome-desktop 2.0.5) #-#-#-#-#\n" #~ "Επεξεργασία\n" #~ "#-#-#-#-# gnome-terminal.gnome-2-2.el.po (gnome-terminal 2.0.1) #-#-#-#-" #~ "#\n" #~ "Επεξεργασία\n" #~ "#-#-#-#-# nautilus.HEAD.el.po (nautilus 2.0.7) #-#-#-#-#\n" #~ "Διόρθωση" #, fuzzy #~ msgid "Then" #~ msgstr "Ευχαριστώ" #, fuzzy #~ msgid "For" #~ msgstr "Φάκελοι" #, fuzzy #~ msgid "Name: \"%s\"" #~ msgstr "Αποθηκευμένο \"%s\"" #, fuzzy #~ msgid "Pan: Add a Server" #~ msgstr "Pan: Επεξεργασία διακομιστή" #, fuzzy #~ msgid "Pan: Edit a Server's Settings" #~ msgstr "Pan: Επεξεργασία διακομιστή" # #~ msgid "Pan: Servers" #~ msgstr "Pan: Διακομιστές" #, fuzzy #~ msgid "to %s" #~ msgstr "Περί %s" # #~ msgid "Status" #~ msgstr "Κατάσταση" #, fuzzy #~ msgid "Unable to set group: %s" #~ msgstr "ομάδα" # #~ msgid "Error: %s" #~ msgstr "Σφάλμα: %s" #, fuzzy #~ msgid "Making a new connection to %*.*s" #~ msgstr "ftpfs: σύνδεση με το %s ολοκληρώθηκε" #, fuzzy #~ msgid "Couldn't load \"%s\": %s" #~ msgstr "Αδυναμία φόρτωσης γραμματοσειράς \"%s\"" #, fuzzy #~ msgid "" #~ "Error saving \"%s\":\n" #~ "%s. %s" #~ msgstr "Σφάλμα ανάγνωσης αρχείου \"%s\": %s." #, fuzzy #~ msgid "Warning: Unknown group \"%s\"." #~ msgstr "ΠΡΟΕΙΔΟΠΟΙΗΣΗ: Άγνωστη ομάδα: \"%s\"." #, fuzzy #~ msgid "Post New Article" #~ msgstr "Ανάγνωση αρχείου" #, fuzzy #~ msgid "_Follow-up" #~ msgstr "Παρακολούθηση" #, fuzzy #~ msgid "Follow-up to Article" #~ msgstr "Απάντηση στην ομάδα συζήτησης" #, fuzzy #~ msgid "_Post Article" #~ msgstr "Ανάγνωση αρχείου" #, fuzzy #~ msgid "Post this Article Now" #~ msgstr "Αποστολή άρθρου ``%s''" #, fuzzy #~ msgid "Default KDE Browser" #~ msgstr "Προ_επιλεγμένη κωδικοποίηση χαρακτήρων:" #, fuzzy #~ msgid "Error: No Newsgroups specified." #~ msgstr "ΣΦΑΛΜΑ: Δεν έχουν οριστεί παραλήπτες." #, fuzzy #~ msgid "_Posting" #~ msgstr "_Αποστολή" # #, fuzzy #~ msgid "Message-Id" #~ msgstr "Μήνυμα" #, fuzzy #~ msgid "Saved newsrc files in %.1f seconds" #~ msgstr "Βαθμολογήθηκαν %d άρθρα σε %.1f δευτερόλεπτα (%.0f άρθρα/δευτ.)" #~ msgid "%d connections totaling %.1f KiB per second" #~ msgstr "%d συνδέσεις με σύνολο %.1f KB ανά δευτ." #~ msgid "" #~ "Used when email replies to your posts should go somewhere other than the " #~ "email address above. Because Reply-To: is relatively difficult for " #~ "spammers to harvest, it's polite give your email address here if you gave " #~ "an invalid email address above." #~ msgstr "" #~ "Χρησιμοποιείται όταν οι απαντήσεις στις αποστολές σας θέλετε να " #~ "στέλνονται σε\n" #~ "κάποια άλλη ηλεκ. διεύθυνση αντί αυτής που ορίσατε παραπάνω. Επειδή " #~ "είναι\n" #~ "σχετικά δύσκολο για τους spammers να αποκτήσουν την διεύθυνση στο πεδίο\n" #~ "Απάντηση-Σε: θεωρείται ευγενικό να δίνετε την πραγματική ηλεκ. διεύθυνσή " #~ "σας\n" #~ "εδώ εάν εισάγατε πλασματική διεύθυνση προηγουμένως." #~ msgid "_Reply-To Header:" #~ msgstr "_Κεφαλίδα Απάντηση-Σε:" #~ msgid "Or_ganization Header:" #~ msgstr "Κεφαλίδα _Οργανισμός:" # #, fuzzy #~ msgid "Attach this _Signature:" #~ msgstr "Αρχείο:" #, fuzzy #~ msgid "Automatic Downloads" #~ msgstr "/Ά_ρθρα/Μετα_φόρτωση" #, fuzzy #~ msgid "Save a_ttachments to path:" #~ msgstr "Αποθήκευση in:" #~ msgid "UNKNOWN" #~ msgstr "ΑΓΝΩΣΤΟ" #, fuzzy #~ msgid "Decode can't access directory \"%s\"" #~ msgstr "Η διαδικασία αποκωδικοποίησης δεν έχει πρόσβαση στη διαδρομή \"%s\"" #~ msgid "Could not decode article - file may be corrupt/incomplete" #~ msgstr "" #~ "Αδύνατη η αποκωδικοποίηση άρθρου - το αρχείο μπορεί να είναι " #~ "κατεστραμμένο/μη ολοκληρωμένο" #~ msgid "Checksum for `%s' part %d failed - file is corrupt" #~ msgstr "" #~ "Το άθροισμα ελέγχου του `%s' στο κομμάτι %d απέτυχε - το αρχείο είναι " #~ "κατεστραμμένο" #~ msgid "Checksum for `%s' failed - file may be corrupt" #~ msgstr "" #~ "Το άθροισμα ελέγχου του `%s' απέτυχε - το αρχείο μπορεί να είναι " #~ "κατεστραμμένο" #, fuzzy #~ msgid "_Watch Subthread" #~ msgstr "/Παρα_κολούθηση αλληλουχιών" #, fuzzy #~ msgid "Use custom colors in _Header Pane" #~ msgstr "Κατάρρευση ονομάτων στο ταμπλώ ομάδας" #, fuzzy #~ msgid "Header Pane background:" #~ msgstr "Εμφάνιση ταμπλώ κεφαλίδας" #, fuzzy #~ msgid "Unread articles:" #~ msgstr "Εμφάνιση μή αναγνωσμένων άρθρων" #, fuzzy #~ msgid "" #~ "Unsupported data version (%d) for server properties. Are you running an " #~ "old version of Pan by accident?" #~ msgstr "" #~ "Μη υποστηριζόμενη έκδοση δεδομένων %d για το αρχείο \"%s\".\n" #~ "Μήπως τρέχετε παλαιότερη έκδοση του Pan κατά λάθος;" # gconf/gconf-internals.c:2333 #, fuzzy #~ msgid "Couldn't create temporary file: %s" #~ msgstr "Αδύνατη η δημιουργία προσωρινού αρχείου: %s" # gconf/gconfd.c:1676 #~ msgid "Error renaming \"%s\" as \"%s\": %s." #~ msgstr "Σφάλμα κατά την μετονομασία \"%s\" σε \"%s\": %s." #~ msgid "Can't backup \"%s\" as \"%s\": %s" #~ msgstr "Αδυναμία δημιουργίας αντιγράφου ασφαλείας \"%s\" σε \"%s\":%s" # gconf/gconf-internals.c:2404 #~ msgid "Can't write to \"%s\": %s" #~ msgstr "Αδύνατη η εγγραφή στο αρχείο \"%s\": %s" #~ msgid "Body" #~ msgstr "Κύριο σώμα" #, fuzzy #~ msgid "Open a Draft Article from Disk" #~ msgstr "Λήξη %u άρθρων από το '%s'" # #, fuzzy #~ msgid "subject" #~ msgstr "Θέμα" #, fuzzy #~ msgid "author" #~ msgstr "Συγγραφέας" #~ msgid "Change" #~ msgstr "Αλλαγή" # #, fuzzy #~ msgid "Connections" #~ msgstr "Όχι συνδέσεις" # FIX? drop (see also "On Drop" above) #, fuzzy #~ msgid "Active" #~ msgstr "Ενέργειες" #~ msgid "" #~ "Unable to cancel article: Couldn't find matching article in folder `pan." #~ "sent'!" #~ msgstr "" #~ "Αδυναμία ακύρωσης άρθρου. Δεν είναι δυνατή η εύρεση ταιριάσματος στον " #~ "φάκελο `pan.sent'!" #~ msgid "" #~ "Unable to supersede article: Couldn't find matching article in folder " #~ "`pan.sent'!" #~ msgstr "" #~ "Αδυναμία αντικατάστασης άρθρου. Δεν είναι δυνατή η εύρεση ταιριάσματος " #~ "στον φάκελο `pan.sent'!" #~ msgid "You must download the article before you can cancel it." #~ msgstr "Πρέπει να μεταφορτωθεί το άρθρο προτού να ακυρωθεί." #~ msgid "You must download the article before you can supersede it." #~ msgstr "Πρέπει να μεταφορτωθεί το άρθρο προτού αντικατάσταθεί." #~ msgid "Pan: Find Article" #~ msgstr "Pan: Εύρεση άρθρων" # #~ msgid "_Author:" #~ msgstr "Συ_γγραφέας:" # #~ msgid "_Message-ID:" #~ msgstr "ID _μηνύματος:" #~ msgid "Case Sensiti_ve" #~ msgstr "Διάκρ_ιση πεζών κεφαλαίων" #~ msgid "_Unread Only" #~ msgstr "Μόνο μή α_ναγνωσμένα" #~ msgid "Fin_d:" #~ msgstr "Εύ_ρεση:" #~ msgid "" #~ "Type in a search string and press ENTER.\n" #~ "Wildcards are allowed." #~ msgstr "" #~ "Πληκτρολογήστε ένα αλφαριθμητικό στην αναζήτηση ομάδας και πατήστε " #~ "ENTER..\n" #~ "Επιτρέπονται Wildcards. " #~ msgid "/---" #~ msgstr "/---" #~ msgid "/Save Article A_ttachments" #~ msgstr "/Αποθήκευση άρθρων (μόνο συ_νημμένα)" #~ msgid "/_Manual Decode..." #~ msgstr "_Χειροκίνητη αποκωδικοποίηση..." #~ msgid "/D_ownload Flagged" #~ msgstr "/Μετα_φόρτωση με σημαία" #~ msgid "/_Flag" #~ msgstr "/_Σημαία" # #~ msgid "/_Unflag" #~ msgstr "/Άρση σημαίας" #~ msgid "/_Create Score" #~ msgstr "_Δημιουργία Βαθμολογίας" #~ msgid "/Add S_et to Selection" #~ msgstr "Προσθήκη σε_τ στην επιλογή" #~ msgid "/_Copy to Folder" #~ msgstr "/Αντι_γραφή σε Φάκελο" # #~ msgid "/_Delete" #~ msgstr "/_Διαγραφή" #~ msgid "Scoring Articles" #~ msgstr "Βαθμολόγηση άρθρων" #~ msgid "Filtering Articles" #~ msgstr "Φιλτράρισμα άρθρων" #~ msgid "Updating Header Pane..." #~ msgstr "Ανανέωση ταμπλώ κεφαλίδας..." #~ msgid "Loading group \"%s\"" #~ msgstr "Φόρτωση ομάδας \"%s\"" #~ msgid "Flushing article cache... " #~ msgstr "Καθαρίζεται η cache των άρθρων..." #~ msgid "%d files erased." #~ msgstr "%d αρχεία διεγράφηκαν." #~ msgid "Error saving article \"%s\" (is %s full?)" #~ msgstr "Σφάλμα αποθήκευσης άρθρου \"%s\" (είναι ο φάκελος %s πλήρης;)" #~ msgid "Directory \"%s\" contains %.1f MB in %d files" #~ msgstr "Ο κατάλογος \"%s\" περιέχει %1.f MB σε %d αρχεία" #~ msgid "Unparseable Subject" #~ msgstr "Αδυναμία ανάγνωσης θέματος" #~ msgid "Couldn't parse a Message-ID from the raw message!" #~ msgstr "Αδυναμία ανάγνωσης ID μηνύματος από το προκατεργασμένο μήνυμα!" #~ msgid "unknown@spammesenseless.com" #~ msgstr "unknown@spammesenseless.com" #~ msgid "Can't create file \"%s\" %s" #~ msgstr "Aδύνατη η δημιουργία αρχείου \"%s\" %s" #~ msgid "Error saving file \"%s\" - is the disk full?" #~ msgstr "Σφάλμα αποθήκευσης αρχείου \"%s\" - είναι ο δίσκος πλήρης;" #~ msgid "Decoded \"%s\" from group \"%s\", \"%s\"" #~ msgstr "Αποκωδικοποίηση \"%s\" από την ομάδα \"%s\", \"%s\"" #~ msgid "Loading %u of %d groups" #~ msgstr "Μεταφόρτωση %u από %d ομάδες" #~ msgid "" #~ "Skipped %d groups due to possible corruption in \"%s\" and \"%s\". You " #~ "may want to delete these files and get a new grouplist from your news " #~ "server." #~ msgstr "" #~ "Παράκαμψη %d ομάδων λόγω πιθανής βλάβης στο \"%s\" και\"%s\". Πιθανώς να " #~ "θέλετε\n" #~ "να διαγράψεται αυτά τα αρχεία και να αποκτήσετε καινούργια λίστα ομάδων " #~ "από το διακομιστή νέων." #~ msgid "Loaded %d groups for server \"%s\" in %.1f seconds (%.0f groups/sec)" #~ msgstr "" #~ "Μεταφορτώθηκαν %d ομάδες για τον διακομιστή \"%s\" σε %.1f δευτερόλεπτα " #~ "(%.0f ομάδες/δευτ.)" #~ msgid "Saved %d of %u groups" #~ msgstr "Αποθηκεύτηκαν %d από %u ομάδες" #~ msgid "Error saving list of groups to \"%s\" - is the disk full?" #~ msgstr "" #~ "Σφάλμα αποθήκευσης της λίστας ομάδων στο \"%s\"- μήπως είναι ο δίσκος " #~ "πλήρης;" #~ msgid "Saved %d groups in \"%s\" in %.1f seconds (%.0f groups/sec)" #~ msgstr "" #~ "Αποθηκεύτηκαν %d ομάδες στο \"%s\" σε %.1f δευτερόλεπτα (%.0f ομάδες/" #~ "δευτ.)" #~ msgid "Loaded %d of %d articles" #~ msgstr "Μεταφορτώθηκαν %d από %d άρθρα" #~ msgid "" #~ "Pan skipped %d corrupt headers from the local cache for group \"%*.*s\"." #~ msgstr "" #~ "Το Pan παρέκαμψε %d κατεστραμμένες επικεφαλίδες από το τοπικό cache για " #~ "την ομάδα \"%*.*s\"." #~ msgid "You may want to empty this group and download fresh headers." #~ msgstr "" #~ "Πιθανώς να θέλετε να αδειάσετε αυτή την ομάδα και να μεταφορτώσετε " #~ "καινούργιες επικεφαλίδες." #~ msgid "" #~ "Loaded %lu parts, %lu articles in \"%s\" in %.1f seconds (%.0f art/sec)" #~ msgstr "" #~ "Μεταφορτώθηκαν %lu κομμάτια, %lu άρθρα στο \"%s\" σε %.1f δευτερόλεπτα " #~ "(%.0f άρθρα/δευτ.)" #~ msgid "The group will not be saved -- can't create file \"%s\"" #~ msgstr "Η ομάδα δεν θα αποθηκευτεί -- Αδυναμία δημιουργίας αρχείου \"%s\"" #~ msgid "Unable to save headers for group \"%*.*s\" - is the disk full?" #~ msgstr "" #~ "Αδυναμία αποθήκευσης επικεφαλίδων για την ομάδα \"%*.*s\" - μήπως είναι ο " #~ "δίσκος πλήρης;" #~ msgid "(No Group)" #~ msgstr "(Χωρίς Ομάδα)" # gconf/gconf-backend.c:208 #~ msgid "ERROR: invalid address \"%s\"" #~ msgstr "ΣΦΑΛΜΑ: Μη έγκυρη διεύθυνση \"%s\"" #~ msgid "ERROR: Must have one author in From: line" #~ msgstr "ΣΦΑΛΜΑ: Πρέπει να υπάρχει συγγραφέας στο πεδίο Από:" #~ msgid "Imported %d groups (%d new) from \"%s\"" #~ msgstr "Εισήχθησαν %d ομάδες (%d καινούργιες) από \"%s\"" #~ msgid "Exported %d groups (%d subscribed) to \"%s\"" #~ msgstr "Εξήχθησαν %d ομάδες (%d σε συνδρομή) στο \"%s\"" #~ msgid "Imported %d lines from Gnome config file" #~ msgstr "Εισήχθησαν %d γραμμές από το αρχείο ρυθμίσεων του Gnome" #~ msgid "%s does not appear to be a valid datafile" #~ msgstr "Το %s δεν φαίνεται να είναι έγκυρο αρχείο δεδομένων" #~ msgid "Error converting string \"%*s\" to utf8: %d - %s" #~ msgstr "" #~ "Σφάλμα κατά την μετατροπή του αλφαριθμητικού \"%*s\" σε utf8: %d - %s" #~ msgid "No name specified!" #~ msgstr "Δεν ορίστηκε όνομα!" #~ msgid "pan.sent" #~ msgstr "pan.στάλθηκαν" #~ msgid "pan.sendlater" #~ msgstr "pan.αποστολή-αργότερα" #~ msgid "Server is corrupt" #~ msgstr "Ο εξυπηρετητής παρουσιάζει σφάλμα" #~ msgid "A Server with that name already exists." #~ msgstr "Ένας εξυπηρετητής με το ίδιο όνομα υπάρχει ήδη." #~ msgid "A newsreader for GNOME" #~ msgstr "Πρόγραμμα ανάγνωσης ομάδων συζήτησης για το GNOME" #~ msgid "Programmer" #~ msgstr "Προγραμματιστής" #~ msgid "Project Originator, Programmer" #~ msgstr "Εμπνευστής του προγράμματος και προγραμματιστής" #~ msgid "Programmer, 0.6 - 0.7" #~ msgstr "Προγραμματιστής, 0.6 - 0.7" #~ msgid "" #~ "Pan %s Translations\n" #~ "%s\n" #~ "\n" #~ "Pan %s Code or Patches\n" #~ "%s\n" #~ "\n" #~ "Pan %s Suggestions and Testing\n" #~ "%s\n" #~ msgstr "" #~ "Pan %s Μεταφράσεις\n" #~ "%s\n" #~ "\n" #~ "Pan %s Ολοκληρωμένος ή τμηματικός κώδικας\n" #~ "%s\n" #~ "\n" #~ "Pan %s Προτάσεις και Δοκιμές\n" #~ "%s\n" #~ msgid "_Directory for saving articles:" #~ msgstr "_Κατάλογος για την αποθήκευση άρθρων:" #~ msgid "Pan: Download Headers for group `%s'" #~ msgstr "Pan: Μεταφόρτωση κεφαλίδων για την ομάδα`%s'" #~ msgid "Download _new headers" #~ msgstr "Μεταφόρτωση _νέων κεφαλίδων" #~ msgid "Download _all headers" #~ msgstr "Μεταφόρτωση _όλων των κεφαλίδων" #~ msgid "_Download bodies too" #~ msgstr "Μετα_φόρτωση και του κυρίως μηνύματος" #~ msgid "How should you appear when posting articles?" #~ msgstr "Πώς θέλετε να παρουσιάζεστε όταν γράφετε άρθρα;" # #~ msgid "Your _Name:" #~ msgstr "Το _όνομά σας:" # #~ msgid "Email _Address:" #~ msgstr "Ηλεκτρονική _Διεύθυνση (email):" #~ msgid "_Organization:" #~ msgstr "_Οργανισμός:" #~ msgid "default" #~ msgstr "Προεπιλεγμένο" #~ msgid "What mail server should Pan use?" #~ msgstr "" #~ "Ποιός διακομιστής ηλεκ. αλληλογραφίας θέλετε να χρησιμοποιείται από το " #~ "Pan;" #~ msgid "What news server should Pan use?" #~ msgstr "Ποιός διακομιστής νέων θέλετε να χρησιμοποιείται από το Pan;" #~ msgid "Short name for Pan to show, e.g. \"mynewsserver\"" #~ msgstr "" #~ "Σύντομη ονομασία που θα εμφανίζεται από το Pan, π.χ. \"mynewsserver\"" #~ msgid "Short _name for Pan to show:" #~ msgstr "Σύντομη ονομασία που θα εμφανίζεται από το Pan:" # #~ msgid "Login" #~ msgstr "Είσοδος" #~ msgid "Server requires authori_zation" #~ msgstr "Ο διακομιστής απαιτεί π_ιστοποίηση" #~ msgid "Pan Setup Wizard" #~ msgstr "Οδηγός Ρυθμίσεων για το Pan" #~ msgid "Thank you for trying Pan!" #~ msgstr "Σας ευχαριστούμε που χρησιμοποιήσατε το Pan!" #~ msgid "" #~ "Thank you for trying Pan!\n" #~ " \n" #~ "If you are new to Usenet,\n" #~ "%s\n" #~ "is a starting point to see what Usenet is,\n" #~ "where to find a free news server,\n" #~ "and how to use Pan.\n" #~ " \n" #~ "Since this is your first time running Pan,\n" #~ "we'll need to gather some information.\n" #~ msgstr "" #~ "Σας ευχαριστούμε για την χρήση του Pan!\n" #~ "\n" #~ "Αν είσαστε νέος χρήστης του Usenet, το\n" #~ "%s\n" #~ "είναι ένα καλό μέρος για να δείτε τι είναι το Usenet,\n" #~ "πού μπορείτε να βρείτε ένα δωρεάν διακομιστή νέων\n" #~ "και πως μπορείτε να χρησιμοποιήσετε το Pan.\n" #~ "\n" #~ "Αφού αυτή είναι η πρώτη φορά που εκτελείτε το Pan,\n" #~ "θα χρειαστεί να εισάγετε κάποιες πληροφορίες.\n" # #~ msgid "About You" #~ msgstr "Περί του ευατού σας" #~ msgid "Ready!" #~ msgstr "Τέλος" #~ msgid "" #~ "You have successfully entered all of\n" #~ "the information required to set up Pan.\n" #~ "\n" #~ "To save these settings, click Save." #~ msgstr "" #~ "Εισάγατε όλες τις απαιτούμενες\n" #~ "πληροφορίες για την ρύθμιση του Pan.\n" #~ "\n" #~ "Για να αποθηκευσετε τις ρυθμίσεις, κάντε κλικ στο κουμπι Αποθήκευση" #~ msgid "License" #~ msgstr "Άδεια Χρήσης" #~ msgid "Authors" #~ msgstr "Συγγραφείς" #~ msgid "Thanks to" #~ msgstr "Ευχαριστίες σε" #~ msgid " (No conditions -- no articles will match)" #~ msgstr " (Χωρίς όρους -- δεν θα ταιριάξουν άρθρα)" #~ msgid " (No conditions -- all articles will match)" #~ msgstr " (Χωρίς όρους -- Θα ταιριάξουν όλα τα άρθρα)" #~ msgid "Pan: Edit Filter" #~ msgstr "Pan: Επεξεργασία φίλτρου" # #~ msgid "Filter name: " #~ msgstr "Όνομα φίλτρου: " #~ msgid "Show in Filter Menu" #~ msgstr "Εμφάνιση στο μενού φίλτρου" #~ msgid "Move the selected line up one line" #~ msgstr "Μετακίνηση επιλεγμένης γραμμής πάνω μια γραμμή" #~ msgid "Move the selected line down one line" #~ msgstr "Μετακίνηση επιλεγμένης γραμμής κάτω μια γραμμή" #~ msgid "Invert" #~ msgstr "Αντιστροφή" #~ msgid "All Of" #~ msgstr "Όλα από" #~ msgid "Any Of" #~ msgstr "Οποιοδήποτε από" #~ msgid "Delete the selected line" #~ msgstr "Διαγραφή της επιλεγμένης γραμμής" #~ msgid "Add New Line to the Filter" #~ msgstr "Προσθήκη νέας γραμμής στο φίλτρο." # #~ msgid "New Filter Line" #~ msgstr "Νέα γραμμή φίλτρου" #~ msgid "_Article" #~ msgstr "Άρ_θρο" #~ msgid "does not start with" #~ msgstr "δεν αρχίζει με" #~ msgid "does not match regular expression" #~ msgstr "δεν ταιριάζει με κανονική έκφραση" #~ msgid "Article h_as" #~ msgstr "Το άρθρο έ_χει" #~ msgid "Incomplete Attachments" #~ msgstr "Μή ολοκληρωμένα συνημμένα" #~ msgid "No Attachments" #~ msgstr "Χωρίς συννημένα" #~ msgid "Article _is" #~ msgstr "Το άρθρο εί_ναι" # #~ msgid "New" #~ msgstr "Νέο" #~ msgid "Unread" #~ msgstr "Μη αναγνωσμένο" #~ msgid "Read" #~ msgstr "Αναγνωσμένα" #~ msgid "Cached" #~ msgstr "Στην Μνήμη" #~ msgid "Posted by Me" #~ msgstr "Εγγράφη από εμένα" #~ msgid "Article has at _least N lines:" #~ msgstr "Το άρθρο έχει του_λάχιστον Ν γραμμές:" #~ msgid "Article _score is at least" #~ msgstr "H _βαθμολογία του άρθρου είναι τουλάχιστον" # sysdeps/names/mem.c:48 #~ msgid "Watched" #~ msgstr "Παρακολουθούμενη" #~ msgid "High" #~ msgstr "Υψηλός" #~ msgid "Medium" #~ msgstr "Μεσαίος" #~ msgid "Zero" #~ msgstr "Μηδέν" #~ msgid "Low" #~ msgstr "Χαμηλός" #~ msgid "Ignored" #~ msgstr "Αγνοημένο" #~ msgid "" #~ "This filter is still used by the following rules:\n" #~ "%s\n" #~ "Please remove this dependency first." #~ msgstr "" #~ "Αυτό το φίλτρο χρησιμοποιείται ακόμα από τους παρακάτω κανόνες:\n" #~ "%s\n" #~ "Παρακαλώ απομακρύνετε αυτήν την εξάρτηση πρώτα." #~ msgid "Pan: Filters" #~ msgstr "Pan: Φίλτρα" #~ msgid "Filters" #~ msgstr "Φίλτρα" #~ msgid "Add a new filter" #~ msgstr "Προσθήκη νέου φίλτρου" # #~ msgid "Edit the selected filter" #~ msgstr "Επεξεργασία του επιλεγμένου φίλτρου" #~ msgid "Remove the selected filter" #~ msgstr "Αφαίρεση του επιλεγμένου φίλτρου" #~ msgid "NONE OF:" #~ msgstr "ΚΑΝΕΝΑ ΑΠΟ:" #~ msgid "ALL OF:" #~ msgstr "ΟΛΑ ΑΠΟ:" #~ msgid "ANY OF:" #~ msgstr "ΟΠΟΙΟΔΗΠΟΤΕ ΑΠΟ:" #~ msgid "Article has complete attachments" #~ msgstr "Το άρθρο έχει ολοκληρωμένα συννημένα" #~ msgid "Article does not have incomplete attachments" #~ msgstr "Το άρθρο δεν έχει μη ολοκληρωμένα συννημένα" #~ msgid "Article has incomplete attachments" #~ msgstr "Το άρθρο έχει μη ολοκληρωμένα συνημμένα" #~ msgid "Article has complete or incomplete attachments" #~ msgstr "Το άρθρο έχει ολοκληρωμένα ή μη συννημένα" #~ msgid "Article is %d or more bytes long" #~ msgstr "Το άρθρο είναι %d ή περισσότερα bytes σε μέγεθος" #~ msgid "Article is crossposted to at least %d groups" #~ msgstr "Το άρθρο έχει δημοσιευτεί πολλαπλά σε τουλάχιστον %d ομάδες" #~ msgid "Article was posted in the last %d days" #~ msgstr "Το άρθρο δημοσιεύτηκε τις τελευταίες %d ημέρες" #~ msgid "Article is %d or more lines long" #~ msgstr "Το άρθρο είναι τουλάχιστον %d γραμμές σε μέγεθος" #~ msgid "Article is unread or old" #~ msgstr "Το άρθρο είναι δεν έχει αναγνωσθεί ή είναι παλιό" #~ msgid "Article is new" #~ msgstr "Το άρθρο είναι νέο" #~ msgid "Article is new or read" #~ msgstr "Το άρθρο είναι νέο ή έχει αναγνωσΘεί" #~ msgid "Article is unread" #~ msgstr "Το άρθρο έχει αναγνωσθεί" #~ msgid "Article is new or unread" #~ msgstr "Το άρθρο είναι νέο ή δεν έχει αναγνωσθεί" #~ msgid "Article is read" #~ msgstr "Το άρθρο έχει αναγνωσθεί" #~ msgid "Xref" #~ msgstr "Xref" # sysdeps/names/mem.c:48 #~ msgid "watched" #~ msgstr "Παρακολουθούμενη" #~ msgid "high" #~ msgstr "Υψηλός" #~ msgid "medium" #~ msgstr "Μεσαίος" #~ msgid "zero" #~ msgstr "Μηδέν" #~ msgid "low" #~ msgstr "Χαμηλός" #~ msgid "ignored" #~ msgstr "Αγνοημένο" #~ msgid "Score filter will match anything" #~ msgstr "Η βαθμολογία φίλτρου θα ταιριάξει οτιδήποτε" #~ msgid "Score filter will match nothing" #~ msgstr "Η βαθμολογία φίλτρου δεν θα ταιριάξει τίποτα" #~ msgid "Article score one of: " #~ msgstr "Βαθμoλογία άρθρου ένα από:" # #~ msgid "Wrote filters to \"%s\"" #~ msgstr "Εγγραφή φίλτρου στο \"%s\"" #~ msgid "Can't use regular expression \"%s\" from file \"%s\", line %d: %s" #~ msgstr "" #~ "Δεν μπορεί να γίνει χρήση της κανονικής έκφρασης \"%s\" από το αρχείο \"%s" #~ "\", γραμμή %d: %s" #~ msgid "expired old score" #~ msgstr "Λήξαν παλιά βαθμολογία" #~ msgid "skipping unsupported criteria" #~ msgstr "Αγνούνται τα μη υποστηριζόμενα κριτήρια" #~ msgid "unexpected line." #~ msgstr "Απρόσμενη γραμμή." # #~ msgid "Error reading file: " #~ msgstr "Σφάλμα ανάγνωσης αρχείου: " #~ msgid "skipping score because it has no criteria" #~ msgstr "Αγνοείται η βαθμολογία γιατί δεν περιέχει κριτήρια" #~ msgid "" #~ "Loaded %d score entries in %d sections in %.1f seconds (%.0f entries/sec)" #~ msgstr "" #~ "Μεταφορτώθηκαν %d καταχωρήσεις βαθμολογιών από %d τομείς σε %.1f " #~ "δευτερόλεπτα (%.0f καταχ./δευτ.)" #~ msgid "Error score to file \"%s\": %s" #~ msgstr "Σφάλμα βαθμού σε αρχείο \"%s\": %s." # #~ msgid "Error removing scorefile entry: %s" #~ msgstr "Σφάλμα κατά την διαγραφή στο αρχείο βαθμολογιών της καταχώρησης: %s" #~ msgid "Scorefile entry removed -- old scorefile \"%s\" backed up as \"%s\"" #~ msgstr "" #~ "Διεγράφη η καταχώρηση στο αρχείο βαθμολογιών -- το παλιό αρχείο " #~ "βαθμολογιών \"%s\" βρίσκεται στο αντίγραφο ασφαλείας \"%s\"" #~ msgid "Please don't begin folders with \"pan.\"; it confuses me." #~ msgstr "" #~ "Παρακαλώ να μην αρχίζουν ονόματα φακέλων με \"pan.\": με μπερδεύει " #~ "τρομερά." #~ msgid "Create New Folder" #~ msgstr "Δημιουργία νέου φακέλου." #~ msgid "New Folder Name:" #~ msgstr "Νέο όνομα φακέλου:" #~ msgid "/Get New Headers and _Bodies" #~ msgstr "/Λήψη νέων κεφαλίδων και _σώματος κειμένου" #~ msgid "/More Download _Options..." #~ msgstr "/Περισσότερες επιλογές _μεταφόρτωσης..." # #~ msgid "/Refresh Article _Counts" #~ msgstr "/Ανανέωση _καταμέτρησης άρθρων" #~ msgid "/Group _Properties..." #~ msgstr "/Ιδιότητες Ομά_δων" #~ msgid " (Moderated)" #~ msgstr "(Συντονισμένα)" #~ msgid " (Read-Only)" #~ msgstr " (Μόνο για Ανάγνωση)" #~ msgid "Subscribed" #~ msgstr "Εγγεγραμμένες" #~ msgid "All Groups" #~ msgstr "Όλες οι ομάδες" #~ msgid "" #~ "We don't have a list of groups for \"%*.*s\".\n" #~ "Shall we download one?" #~ msgstr "" #~ "Δεν υπάρχει μια λίστα ομάδων για τον διακομιστή \"%*.*s\".\n" #~ "Να γίνει λήψη της λίστας?" #~ msgid "Total" #~ msgstr "Συνολικά" # #~ msgid "Description" #~ msgstr "Περιγραφή" #~ msgid "F_ind:" #~ msgstr "Ε_ύρεση:" #~ msgid "" #~ "Type in a group search string and press ENTER. Wildcards are allowed." #~ msgstr "" #~ "Πληκτρολογήστε ένα αλφαριθμητικό στην αναζήτηση ομάδας και πατήστε ENTER. " #~ "Επιτρέπονται Wildcards. " #~ msgid "We now have %d connections to news servers" #~ msgstr "Τώρα υπάρχουν %d συνδέσεις στον διακομιστή" #~ msgid "The Task Manager is Empty" #~ msgstr "Ο διαχειριστής εργασιών είναι άδειος" #~ msgid "Connection" #~ msgstr "Σύνδεση" #~ msgid "Post" #~ msgstr "Αποστολή" #~ msgid "Get" #~ msgstr "Λήψη" #~ msgid "Mine" #~ msgstr "Δικό μου" #~ msgid "Net" #~ msgstr "Δίκτυο" #~ msgid "/_File/_Save Article As..." #~ msgstr "/_Αρχείο/Απο_θήκευση άρθρων ως..." #~ msgid "/_File/Save Article A_ttachments" #~ msgstr "/_Αρχείο/_Αποθήκευση συννημένων" # #~ msgid "/_File/Manual _Decode..." #~ msgstr "/_Αρχείο/_Χειροκίνητη αποκωδικοποίηση..." #~ msgid "/_File/_Print Article..." #~ msgstr "/_Αρχείο/Εκτύ_πωση άρθρου..." #~ msgid "/_File/---" #~ msgstr "/_Αρχείο/---" #~ msgid "/_File/_Cancel Last Task" #~ msgstr "/_Αρχείο/Α_κύρωση τελευταίας εργασίας" #~ msgid "/_File/Log _Viewer..." #~ msgstr "/_Αρχείο/Προβο_λή καταγραφών..." #~ msgid "/_File/_New Folder..." #~ msgstr "/_Αρχείο/_Νέος φάκελος..." #~ msgid "/_File/Delete _Folder..." #~ msgstr "/_Αρχείο/_Διαγραφή φακέλου..." #~ msgid "/_File/_Edit Article in Folder" #~ msgstr "/_Αρχείο/_Επεξεργασία άρθρου σε φάκελο" #~ msgid "/_File/E_xit" #~ msgstr "/_Αρχείο/_Έξοδος" #~ msgid "/_File/_Quit" #~ msgstr "/_Αρχείο/_Τερματισμός" #~ msgid "/_Edit/Select all" #~ msgstr "/_Επεξεργασία/Επιλογή _όλων" # #~ msgid "/_Edit/Deselect all" #~ msgstr "/_Επεξεργασία/_Αποεπιλογή όλων" #~ msgid "/_Edit/---" #~ msgstr "/_Επεξεργασία/---" # #~ msgid "/_Edit/Select all _Groups" #~ msgstr "/_Επεξεργασία/Επιλογή όλων των ο_μάδων" #~ msgid "/_Edit/Add S_ubscribed to Selection" #~ msgstr "/_Επεξεργασία/Προσθήκη αλληλου_χιών στην επιλογή" # #~ msgid "/_Edit/Deselect all G_roups" #~ msgstr "/_Επεξεργασία/Απο_επιλογή όλων των ομάδων" # #~ msgid "/_Edit/Select all _Articles" #~ msgstr "/_Επεξεργασία/Επιλογή όλων των ά_ρθρων" #~ msgid "/_Edit/Add S_et to Selection" #~ msgstr "/_Επεξεργασία/Προσθήκη _σετ στην επιλογή" #~ msgid "/_Edit/_Find..." #~ msgstr "/_Επεξεργασία/_Εύρεση..." #~ msgid "/_Edit/Find _Next" #~ msgstr "/_Επεξεργασία/Εύ_ρεση επόμενου" # #~ msgid "/_View/---" #~ msgstr "/_Προβολή/---" #~ msgid "/_View/Show Group _Pane" #~ msgstr "/_Προβολή/Εμφάνιση _ταμπλώ ομάδας" #~ msgid "/_View/Thr_ead Header Pane" #~ msgstr "/_Προβολή/Αλληλου_χία\\αναίρεση αλληλουχίας ταμπλώ κεφαλίδας" # #~ msgid "/_View/_Rot13 Selected Text" #~ msgstr "/_Προβολή/_Rot13 επιλεγμένο κειμένο" #~ msgid "/_View/_Wrap Article Body" #~ msgstr "/_Προβολή/Γέμισμα/Αναδίπλωση σώματος κειμένου" # # NOTE: Translation of "Create" as "New" to # # keep msg length relatively short... #~ msgid "/_View/Mute _Quoted Text" #~ msgstr "/_Προβολή/Σίγαση παραθέτοντος κειμένου" #~ msgid "/_View/E_xpand Selected Threads" #~ msgstr "/_Προβολή/Ανάπτυ_ξη επιλεγμένων αλληλουχιών" #~ msgid "/_View/C_ollapse Selected Threads" #~ msgstr "/_Προβολή/Κα_τάρρευση επιλεγμένων αλληλουχιών" #~ msgid "/Filte_r/Custom _Filters..." #~ msgstr "/_Φίλτρα/Προσαρμοσμένα φίλτρα" #~ msgid "/Filte_r/_Rules..." #~ msgstr "/_Φίλτρα/Κα_νόνες..." #~ msgid "/Filte_r/_Edit Scorefile..." #~ msgstr "/_Φίλτρα/_Επεξεργασία αρχείου βαθμολογιών..." #~ msgid "/Filte_r/---" #~ msgstr "/_Φίλτρα/---" #~ msgid "/Filte_r/Match Only _Cached Articles" #~ msgstr "/_Φίλτρα/Ταίριασμα μόνο άρθρων που υπάρχουν στη _μνήμη" #~ msgid "/Filte_r/Match Only _Text Articles" #~ msgstr "/_Φίλτρα/Ταίριασμα μόνο άρθρων που περιέχουν μόνο _κείμενο" #~ msgid "/Filte_r/Match Only _Binary Attachment Articles" #~ msgstr "/_Φίλτρα/Ταίριασμα μόνο άρθρων που περιέχουν συννημένα _binary" #~ msgid "/Filte_r/Match Only _My Articles" #~ msgstr "/_Φίλτρα/Ταίριασμα μόνο των άρθρων _μου" #~ msgid "/Filte_r/Match _New Articles" #~ msgstr "/_Φίλτρα/Ταίριασμα _νέων άρθρων" # #~ msgid "/Filte_r/Match _Unread Articles" #~ msgstr "/_Φίλτρα/Ταίριασμα μή αναγνωσμένων άρθρων" #~ msgid "/_Go/Read More" #~ msgstr "/_Μετάβαση/Ανάγνωση παρακάτω" #~ msgid "/_Go/---" #~ msgstr "/_Μετάβαση/---" #~ msgid "/_Go/Next _New Article" #~ msgstr "/_Μετάβαση/Επόμενο _νέο άρθρο" #~ msgid "/_Go/Previous Thread" #~ msgstr "/_Μετάβαση/Προηγούμενη αλληλουχία" # #~ msgid "/_Go/Previous Article _Read" #~ msgstr "/_Μετάβαση/Προηγούμενο _αναγνωσμένο άρθρο" # #~ msgid "/_Servers" #~ msgstr "/_Διακομιστές" # #~ msgid "/_Servers/News _Servers..." #~ msgstr "/_Διακομιστές/_Νέος διακομιστής..." # #~ msgid "/_Servers/---" #~ msgstr "/_Διακομιστές/---" #~ msgid "/_Servers/Get List of Groups" #~ msgstr "/_Διακομιστές/Λήψη λίστας ό_λων των ομάδων" #~ msgid "/_Newsgroups/Mark Group _Read" #~ msgstr "/_Ομάδες συζητήσεων/Ση_μείωση ομάδας ως αναγνωσμένη" #~ msgid "/_Newsgroups/_Delete Group's Articles" #~ msgstr "/_Ομάδες συζητήσεων/_Διαγραφή άρθρων ομάδας" #~ msgid "/_Newsgroups/---" #~ msgstr "/_Ομάδες συζητήσεων/---" #~ msgid "/_Newsgroups/Get New _Headers" #~ msgstr "/_Ομάδες συζητήσεων/Λήψη _νέων κεφαλίδων" #~ msgid "/_Newsgroups/Get New Headers and _Bodies" #~ msgstr "/_Ομάδες συζητήσεων/Λήψη νέων κεφαλίδων και _σώματος κειμένου" #~ msgid "/_Newsgroups/More Download _Options..." #~ msgstr "/_Ομάδες συζητήσεων/Περισσότερες επιλογές μεταφόρτωσης..." # #~ msgid "/_Newsgroups/Refresh Article _Counts" #~ msgstr "/_Ομάδες συζητήσεων/Ανανέωση _καταμέτρησης άρθρων" #~ msgid "/_Newsgroups/Get New Headers in Subscribed _Groups" #~ msgstr "" #~ "/_Ομάδες συζητήσεων/Λήψη όλων των νέων άρθρων στις _εγεγγραμένες ομάδες" #~ msgid "/_Newsgroups/_Subscribe" #~ msgstr "/_Ομάδες συζητήσεων/Ε_γγραφή" #~ msgid "/_Newsgroups/_Unsubscribe" #~ msgstr "/_Ομάδες συζητήσεων/_Κατάργηση εγγραφής" #~ msgid "/_Newsgroups/Group _Properties..." #~ msgstr "/_Ομάδες συζητήσεων/Ιδιότητες _Ομάδας" #~ msgid "/_Newsgroups/Dele_te Group" #~ msgstr "/_Ομάδες συζητήσεων/_Διαγραφή Ομάδας" #~ msgid "/_Articles/Mark _Read" #~ msgstr "/Ά_ρθρα/Το άρθρο έχει αναγνωσ_Θεί" #~ msgid "/_Articles/Mark _Unread" #~ msgstr "/Ά_ρθρα/Το άρθρο _δεν έχει αναγνωσΘεί" #~ msgid "/_Articles/---" #~ msgstr "/Ά_ρθρα/---" #~ msgid "/_Articles/D_ownload Flagged" #~ msgstr "/Ά_ρθρα/Μετα_φόρτωση με σημαία" #~ msgid "/_Articles/_Flag" #~ msgstr "/Ά_ρθρα/_Σημαία" #~ msgid "/_Articles/U_nflag" #~ msgstr "/Ά_ρθρα/_Άρση σημαίας" #~ msgid "/_Articles/_Watch Thread" #~ msgstr "/Ά_ρθρα/Παρα_κολούθηση αλληλουχιών" #~ msgid "/_Articles/_Ignore Thread" #~ msgstr "/Ά_ρθρα/Α_γνόηση αλληλουχιών" #~ msgid "/_Articles/_View Article's Scores" #~ msgstr "/Ά_ρθρα/Εμφάνιση βαθμολογιών άρθρου" #~ msgid "/_Articles/Cancel..." #~ msgstr "/Ά_ρθρα/Ακύρωση..." #~ msgid "/_Articles/Supersed_e..." #~ msgstr "/Ά_ρθρα/Δι_αδοχή..." #~ msgid "/_Articles/_Delete" #~ msgstr "/Ά_ρθρα/Διαγραφή" #~ msgid "/_Post" #~ msgstr "/Απ_οστολή" #~ msgid "/_Post/_Post to Newsgroup..." #~ msgstr "/_Αποστολή/_Αποστολή στην ομάδα συζήτησης" #~ msgid "/_Post/_Reply by Email..." #~ msgstr "/_Αποστολή/Απά_ντηση με E-mail..." #~ msgid "/_Post/For_ward by Email..." #~ msgstr "/_Αποστολή/Προώ_θηση άρθρου με E-mail" #~ msgid "/_Post/---" #~ msgstr "/_Αποστολή/---" #~ msgid "/_Post/Send Pending _Messages" #~ msgstr "/_Αποστολή/Αποστολή εκκρεμών _μηνυμάτων" # #~ msgid "/_Help" #~ msgstr "/_Βοήθεια" #~ msgid "/_Help/---" #~ msgstr "/_Βοήθεια/---" #, fuzzy #~ msgid "Pan: Edit Profile" #~ msgstr "" #~ "#-#-#-#-# gnome-desktop.HEAD.el.po (gnome-desktop 2.0.5) #-#-#-#-#\n" #~ "Επεξεργασία\n" #~ "#-#-#-#-# gnome-terminal.gnome-2-2.el.po (gnome-terminal 2.0.1) #-#-#-#-" #~ "#\n" #~ "Επεξεργασία\n" #~ "#-#-#-#-# nautilus.HEAD.el.po (nautilus 2.0.7) #-#-#-#-#\n" #~ "Διόρθωση" #, fuzzy #~ msgid "_User Profile" #~ msgstr "Χρήστης" #, fuzzy #~ msgid "Cus_tom Headers" #~ msgstr "" #~ "#-#-#-#-# gnome-applets.gnome-2-2.el.po (gnome-applets 2.0.3) #-#-#-#-" #~ "#\n" #~ "Εξατομικευμένο\n" #~ "#-#-#-#-# gnome-control-center.HEAD.el.po (gnome-control-center " #~ "2.0.2.92) #-#-#-#-#\n" #~ "Παραμετροποιημένο\n" #~ "#-#-#-#-# gnome-desktop.HEAD.el.po (gnome-desktop 2.0.5) #-#-#-#-#\n" #~ "Παραμετροποιημένο\n" #~ "#-#-#-#-# gnome-games.gnome-2-2.el.po (gnome-games 2.0.5) #-#-#-#-#\n" #~ "Προσαρμοσμένο\n" #~ "#-#-#-#-# gnome-session.HEAD.el.po (gnome-session 2.0.5) #-#-#-#-#\n" #~ "Παραμετροποιημένο\n" #~ "#-#-#-#-# gnome-terminal.gnome-2-2.el.po (gnome-terminal 2.0.1) #-#-#-#-" #~ "#\n" #~ "Παραμετροποιημένο\n" #~ "#-#-#-#-# libgnomeprint.gnome-2-2.el.po (libgnomeprint 1.116.0) #-#-#-#-" #~ "#\n" #~ "Προσαρμοσμένο" # #, fuzzy #~ msgid "You need at least one profile" #~ msgstr "Εσύ" #, fuzzy #~ msgid "Use the selected profile to create a new profile" #~ msgstr "Μετακίνηση επιλεγμένου κομματιού προς τα αριστερά" # #, fuzzy #~ msgid "Wrote profiles to \"%s\"" #~ msgstr "Γράψιμο αρχείου %s" # #, fuzzy #~ msgid "Save the log to a file" #~ msgstr "Αποθήκευση της καταγραφής σε ένα αρχείο" # #, fuzzy #~ msgid "/_File/_Save..." #~ msgstr "Φίλτ_ρα..." #~ msgid "Pan: Status Log" #~ msgstr "Pan: Καταγραφή κατάστασης" #~ msgid "Clear the log window" #~ msgstr "Εκκαθάριση της καταγραφής." # #~ msgid "Time" #~ msgstr "Χρόνος" #~ msgid "Log Entry" #~ msgstr "Καταχώρηση Καταγραφής" #~ msgid "Post anyway, despite these problems?" #~ msgstr "Να αποσταλεί οπωσδήποτε, παρά αυτά τα προβλήματα?" #~ msgid "Post anyway, despite this problem?" #~ msgstr "Να αποσταλεί οπωσδήποτε, παρά το πρόβλημα?" #~ msgid "/_File/_Save Changes" #~ msgstr "/_Αρχείο/_Αποθήκευση αλλαγών" # #~ msgid "/_File/Save _As..." #~ msgstr "/_Αρχείο/Απο_θήκευση ως..." #~ msgid "/_Edit/Cu_t" #~ msgstr "/_Επεξεργασία/Αποκο_πή" #~ msgid "/_Edit/_Copy" #~ msgstr "/_Επεξεργασία/_Αντιγραφή" #~ msgid "/_Edit/_Paste" #~ msgstr "/_Επεξεργασία/Ε_πικόλληση" # #~ msgid "/_Edit/_Rot13 Selected Text" #~ msgstr "/_Επεξεργασία/_Rot13 επιλεγμένο κειμένο" #~ msgid "/_Edit/Edit with E_xternal Editor" #~ msgstr "/_Επεξεργασία/Επεξεργασία με ε_ξωτερική εφαρμογή" #~ msgid "/_File/Send Now" #~ msgstr "/_Αρχείο/Αποστολή τώρα" #~ msgid "/_File/Send Later" #~ msgstr "/_Αρχείο/Αποστολή αργότερα" #~ msgid "Send Later" #~ msgstr "Αποστολή αργότερα" #~ msgid "Rewrap" #~ msgstr "Αναδίπλωση ξανά" #~ msgid "Turn line wrap on/off" #~ msgstr "Αναδίπλωση γραμμής ναι/όχι" #~ msgid "Edit with an External Editor" #~ msgstr "Επεξεργασία με εξωτερική εφαρμογή" #~ msgid "Mime (single-part posts only)" #~ msgstr "Mime (Αποστολές με ένα μόνο κομμάτι)" #~ msgid " (%lu lines in 1 article)" #~ msgstr "(%lu γραμμές σε ένα άρθρο)" #~ msgid " (%lu lines in %lu articles)" #~ msgstr "(%lu γραμμές σε %lu άρθρα)" #~ msgid "UUEncoded (universally accepted)" #~ msgstr "UUEncoded (δεκτό παντού)" #~ msgid "yEnc (30 percent smaller than UUEnc but less universal)" #~ msgstr "yEnc (30 τοις εκατό μικρότερο από το UUEnc, αλλά λιγότερα αποδεκτό)" #~ msgid "Select the file to attach." #~ msgstr "Επιλογή αρχείου για σύναψη." #~ msgid "Files to Attach" #~ msgstr "Συννημένα αρχεία" #~ msgid "Kilobytes" #~ msgstr "Kilobytes" #~ msgid "Add a File to the Attachment List" #~ msgstr "Προσθήκη αρχείου στην λίστα συννημένων" #~ msgid "Remove a File from the Attachment List" #~ msgstr "Αφαίρεση αρχείου από τη λίστα συννημένων" #~ msgid "Lines per article:" #~ msgstr "Γραμμές ανα άρθρο:" #~ msgid "Estimated Article Size" #~ msgstr "Εκτιμόμενο μέγεθος άρθρου" #~ msgid "Organization" #~ msgstr "Οργανισμός" #~ msgid "The organization you're associated with." #~ msgstr "Ο οργανισμός με τον οποίο συσχετίζεστε." #~ msgid "Charset" #~ msgstr "Κωδικοποίηση χαρακτήρων" #~ msgid "" #~ "Could not convert \"%s\" to UTF-8. Article may not display correctly." #~ msgstr "" #~ "Αδυναμία μετατροπής \"%s\" σε UTF-8. Το άρθρο πιθανών να μην εμφανιστεί " #~ "σωστά." #~ msgid "\"Followup-To: poster\": sending email to author." #~ msgstr "\"Παρακολούθηση: συγγραφέας\": αποστέλεται email στον συγγραφέα." #~ msgid "\"Followup-To:\" contains an email address: sending email to author." #~ msgstr "" #~ "\"Παρακολούθηση:\" περιλαμβάνει διεύθυνση email: αποστέλεται email στον " #~ "συγγραφέα." # #~ msgid "New Message" #~ msgstr "Νέο Μήνυμα" #~ msgid "" #~ "ERROR: line %d, column %d uses a character not specified in charset \"%s" #~ "\" -- possibly change your charset in \"More Headers\" to \"%s\" instead?" #~ msgstr "" #~ "ΣΦΑΛΜΑ: γραμμή %d, στήλη %d χρησιμοποιεί χαρακτήρα που δεν ορίζεται στην\n" #~ "κωδικοποίηση χαρακτήρων \"%s\" -- πιθανότατα να πρέπει να αλλάξετε την\n" #~ "κωδικοποίησή σας στο πεδίο \"Περισσότερες κεφαλίδες\" σε \"%s\"" #~ msgid "Save message to file" #~ msgstr "Αποθήκευση μηνύματος στο αρχείο" #~ msgid "_Browse..." #~ msgstr "_Περιήγηση" #~ msgid "Font Family" #~ msgstr "Οικογένεια Γραμματοσειράς" #~ msgid "Error writing to socket." #~ msgstr "Σφάλμα κατά την εγγραφή στην υποδοχή." #~ msgid "Restored %d tasks from last session" #~ msgstr "Επαναφορά %d εργασιών από την τελευταία συνεδρία" #~ msgid "" #~ "Some tasks were still queued the last time Pan exited. Do you want to " #~ "resume those tasks?" #~ msgstr "" #~ "Μερικές εργασίες βρίσκονταν ακόμη σε αναμονή την τελευταία φορά που " #~ "κλείσατε το\n" #~ "Pan. Θέλετε να συνεχίσετε αυτές τις εργασίες;" # #~ msgid "_Resume" #~ msgstr "_Συνέχεια" #, fuzzy #~ msgid "" #~ "%a - abbreviated weekday name\n" #~ "%A - full weekday name\n" #~ "%b - abbreviated month name\n" #~ "%B - full month name\n" #~ "%c - local date & time\n" #~ "%d - day of the month\n" #~ "%H - hour (24-hour clock)\n" #~ "%I - hour (12-hour clock)\n" #~ "%j - day of the year (001-366)\n" #~ "%m - month (01-12)\n" #~ "%M - minute (00-59)\n" #~ "%p - local equivalent of AM/PM\n" #~ "%S - second (00-61)\n" #~ "%x - local date\n" #~ "%X - local time\n" #~ "%y - two-digit year\n" #~ "%Y - four-digit year\n" #~ "%% - %" #~ msgstr "" #~ "ο ο ο ο ο από ο ώρα ώρα ο ώρα ώρα ο από ο m ο λεπτό ο από ο Ν " #~ "δευτερόλεπτο ο ο #-#-#-#-# eel.HEAD.el.po (eel 2.0.4) #-#-#-#-#\n" #~ "X\n" #~ "#-#-#-#-# gnome-desktop.HEAD.el.po (gnome-desktop 2.0.5) #-#-#-#-#\n" #~ "Χ\n" #~ "#-#-#-#-# gnome-games.gnome-2-2.el.po (gnome-games 2.0.5) #-#-#-#-#\n" #~ "X\n" #~ "#-#-#-#-# gnome-session.HEAD.el.po (gnome-session 2.0.5) #-#-#-#-#\n" #~ "Χ\n" #~ "#-#-#-#-# gtk+.gtk-2-2.el.po (gtk+ 2.0.77) #-#-#-#-#\n" #~ "X\n" #~ "#-#-#-#-# libgnomecanvas.HEAD.el.po (libgnomecanvas 2.0.4) #-#-#-#-#\n" #~ "Χ ο ν δύο ο #-#-#-#-# eel.HEAD.el.po (eel 2.0.4) #-#-#-#-#\n" #~ "Y\n" #~ "#-#-#-#-# gnome-desktop.HEAD.el.po (gnome-desktop 2.0.5) #-#-#-#-#\n" #~ "Ψ\n" #~ "#-#-#-#-# gnome-games.gnome-2-2.el.po (gnome-games 2.0.5) #-#-#-#-#\n" #~ "Y\n" #~ "#-#-#-#-# gnome-session.HEAD.el.po (gnome-session 2.0.5) #-#-#-#-#\n" #~ "Ψ\n" #~ "#-#-#-#-# gtk+.gtk-2-2.el.po (gtk+ 2.0.77) #-#-#-#-#\n" #~ "Y\n" #~ "#-#-#-#-# libgnomecanvas.HEAD.el.po (libgnomecanvas 2.0.4) #-#-#-#-#\n" #~ "Ψ τέσσερα ο" #, fuzzy #~ msgid "_Read Threads:" #~ msgstr "Παρα_κολούθηση αλληλουχιών" #, fuzzy #~ msgid "_Unread Threads:" #~ msgstr "Λέξεις που έχουν παραληφθεί:" # FIX? drop (see also "On Drop" above) #, fuzzy #~ msgid "Action State" #~ msgstr "Ενέργειες" #, fuzzy #~ msgid "Article State" #~ msgstr "Άρθρο" #, fuzzy #~ msgid "E_xpand all threads by default" #~ msgstr "Ανάπτυξη όλων των αλληλουχιών" # #, fuzzy #~ msgid "Date Forma_t:" #~ msgstr "Μορφή αρχείου:" #, fuzzy #~ msgid "Show \"%s\" header" #~ msgstr "Εμφάνιση ταμπλώ κεφαλίδας" #, fuzzy #~ msgid "_Erase cache when exiting Pan" #~ msgstr "Διαγραφή" #, fuzzy #~ msgid "Scorefile" #~ msgstr "Κατατομή" #~ msgid "Sending Mail" #~ msgstr "Αποστολή Μηνυμάτων" # #~ msgid "Mail Server Add_ress:" #~ msgstr "Διεύθυνση διακομιστή ηλεκ. αλλ.:" # #, fuzzy #~ msgid "Mail Server Por_t:" #~ msgstr "Ηλεκ. Αλληλογραφία" #, fuzzy #~ msgid "Hea_der Pane" #~ msgstr "Εμφάνιση ταμπλώ κε_φαλίδας" #, fuzzy #~ msgid "" #~ "%s\n" #~ "\n" #~ "Matches: %u\n" #~ "Group: %s\n" #~ "Rule: %s" #~ msgstr "ο" #, fuzzy #~ msgid "Mark as" #~ msgstr "Σ/δείκτες" #, fuzzy #~ msgid "_Flag body for download" #~ msgstr "Σημαία" #, fuzzy #~ msgid "_Retrieve Body" #~ msgstr "Ελήφθη:" #, fuzzy #~ msgid "Wildcard group specification:" #~ msgstr "ομάδα:" #, fuzzy #~ msgid "(e.g., *anime*)" #~ msgstr "e" #, fuzzy #~ msgid "Subscribed Newsgroups" #~ msgstr "Εγγεγραμμένα Κανάλια" #, fuzzy #~ msgid "Rule applies to:" #~ msgstr "Απαντημένα στους" #, fuzzy #~ msgid "Rule Name:" #~ msgstr "Όνομα:" #, fuzzy #~ msgid "New Rule" #~ msgstr "Νέο" #, fuzzy #~ msgid "Delete Articles by Bozos" #~ msgstr "Διαγραφή" #, fuzzy #~ msgid "Delete Spam" #~ msgstr "Διαγραφή" #, fuzzy #~ msgid "Applying rule to selected groups" #~ msgstr "Εφαρμογή φίλτρου στα επιλεγμένα μηνύματα" #, fuzzy #~ msgid "Applying rule \"%s\" to group \"%s\"" #~ msgstr "Ομάδα" #~ msgid "Rules" #~ msgstr "Κανόνες" #, fuzzy #~ msgid "Hit Ratio" #~ msgstr "Αναλογία" #, fuzzy #~ msgid "" #~ "Apply to\n" #~ "Selected\n" #~ "Groups" #~ msgstr "Εφαρμογή" #, fuzzy #~ msgid "" #~ "Apply to\n" #~ "Subscribed\n" #~ "Groups" #~ msgstr "Εφαρμογή" # #, fuzzy #~ msgid "Wrote rules to \"%s\"" #~ msgstr "Γράψιμο αρχείου %s" #, fuzzy #~ msgid "" #~ "Can't find filter \"%s\" needed by rule \"%s\", so no articles match." #~ msgstr "όχι." #, fuzzy #~ msgid "_Directory:" #~ msgstr "Κατάλογος:" #, fuzzy #~ msgid "Pan: Add to Scorefile" #~ msgstr "" #~ "#-#-#-#-# gnome-desktop.HEAD.el.po (gnome-desktop 2.0.5) #-#-#-#-#\n" #~ "Επεξεργασία\n" #~ "#-#-#-#-# gnome-terminal.gnome-2-2.el.po (gnome-terminal 2.0.1) #-#-#-#-" #~ "#\n" #~ "Επεξεργασία\n" #~ "#-#-#-#-# nautilus.HEAD.el.po (nautilus 2.0.7) #-#-#-#-#\n" #~ "Διόρθωση" # #, fuzzy #~ msgid "Su_bject:" #~ msgstr "Θέμα:" # #, fuzzy #~ msgid "A_uthor:" #~ msgstr "Συγγραφέας:" #, fuzzy #~ msgid "_Lines:" #~ msgstr "Γραμμές" # #~ msgid "Edit the selected score" #~ msgstr "Επεξεργασία επιλεγμένης βαθμολογίας" #~ msgid "You must specify an address." #~ msgstr "Πρέπει να ορίσετε μια διεύθυνση." #~ msgid "You must specify a password or disable authorization." #~ msgstr "Πρέπει να ορίσετε κωδικό ή να απενεργοποιήσετε την πιστοποίηση." #~ msgid "Newsrc" #~ msgstr "Αρχείο Newsrc" #~ msgid "Us_e .newsrc file" #~ msgstr "_Χρήση αρχείου .newsrc" #~ msgid "Select .newsrc File" #~ msgstr "Επιλογή αρχείου .newsrc" #~ msgid "_Filename:" #~ msgstr "Όνομα _αρχείου:" # #~ msgid "Edit the selected server" #~ msgstr "Επεξεργασία επιλεγμένου διακομιστή" #~ msgid "Remove the selected server" #~ msgstr "Αφαίρεση επιλεγμένου διακομιστή" #~ msgid "Got unexpected response from mail server: expected %d; got %s" #~ msgstr "" #~ "Αναπάντεχη απάντηση από τον διακομιστή ηλεκ. αλληλογραφίας: αναμενόταν %d " #~ "έλαβα %s" #~ msgid "Sending mail" #~ msgstr "Αποστολή μηνυμάτων" #~ msgid "No known recipients" #~ msgstr "Άγνωστοι παραλήπτες" #~ msgid "Mail sent!" #~ msgstr "Αποστολή ηλεκ. αλληλογραφίας ολοκληρώθηκε!" #~ msgid "Handshaking with mail server" #~ msgstr "Επανασυγχρονισμός με τον διακομιστή ηλεκ. αλληλογραφίας" # #~ msgid "Mail server not ready" #~ msgstr "Ο διακομιστής ηλεκ. αλληλογραφία δεν είναι έτοιμος" #~ msgid "New connection %p for %s, port %d" #~ msgstr "Νέα σύνδεση %p για %s, θύρα %d" #~ msgid "Downloading %u articles" #~ msgstr "Μεταφόρτωση %u άρθρων" #~ msgid "Downloading 1 article" #~ msgstr "Μεταφόρτωση ενός άρθρου" #~ msgid "Downloading %d articles" #~ msgstr "Μεταφόρτωση %d άρθρων" #~ msgid "\"%s\"" #~ msgstr "\"%s\"" #~ msgid "Article %s (%s) canceled" #~ msgstr "Το άρθρο %s (%s) ακυρώθηκε" #~ msgid "Updating article counts for %u groups from server \"%s\"" #~ msgstr "Ανανέωση αριθμού άρθρων για %u ομάδες από τον διακομιστή \"%s\"" #~ msgid "Got %d group descriptions" #~ msgstr "Έγινε λήψη περιγραφών για %d ομάδες" #~ msgid "Fetching group descriptions" #~ msgstr "Γίνεται λήψη περιγραφών για τις ομάδες" #~ msgid "Getting %d new groups from server \"%s\"" #~ msgstr "'Εγινε λήψη %d καινούργιων ομάδων από το διακομιστή \"%s\"" #~ msgid "Corrupt header skipped: " #~ msgstr "Αγνοείται κατεστραμμένη κεφαλίδα: " #~ msgid "%lu Articles" #~ msgstr "%lu Άρθρα" #~ msgid "Not Queued" #~ msgstr "'Οχι σε αναμονή" #~ msgid "Stopping" #~ msgstr "Σταματάει" #~ msgid "Pan %s Task Manager" #~ msgstr "Pan %s Διαχειριστής Εργασιών" #, fuzzy #~ msgid "Move Selected Task(s) Up" #~ msgstr "_Διαγραφή Επιλεγμένων Εργασιών" #, fuzzy #~ msgid "Move Selected Task(s) to Top" #~ msgstr "Προς" #, fuzzy #~ msgid "Move Selected Task(s) Down" #~ msgstr "Μετακίνιση επιλεγμένου μενού πρός τα κάτω" #, fuzzy #~ msgid "Move Selected Task(s) to Bottom" #~ msgstr "Προς" #, fuzzy #~ msgid "Stop Selected Task(s)" #~ msgstr "_Διαγραφή Επιλεγμένων Εργασιών" #, fuzzy #~ msgid "Delete Selected Task(s)" #~ msgstr "" #~ "#-#-#-#-# eel.HEAD.el.po (eel 2.0.4) #-#-#-#-#\n" #~ "Ακύρωση\n" #~ "#-#-#-#-# eog.HEAD.el.po (eog 0.2) #-#-#-#-#\n" #~ "Ακύρωση\n" #~ "#-#-#-#-# ggv.HEAD.el.po (ggv 1.1.0) #-#-#-#-#\n" #~ "Ακύρωση\n" #~ "#-#-#-#-# gnome-desktop.HEAD.el.po (gnome-desktop 2.0.5) #-#-#-#-#\n" #~ "Άκυρο\n" #~ "#-#-#-#-# gnome-media.HEAD.el.po (gnome-media 2.0.2.5) #-#-#-#-#\n" #~ "Άκυρο \n" #~ "#-#-#-#-# gnome-session.HEAD.el.po (gnome-session 2.0.5) #-#-#-#-#\n" #~ "Άκυρο\n" #~ "#-#-#-#-# nautilus.HEAD.el.po (nautilus 2.0.7) #-#-#-#-#\n" #~ "Ακύρωση" #, fuzzy #~ msgid "Article \"%s\" posted." #~ msgstr "Το άρθρο NNTP \"%s\" (%d από %d) στάλθηκε." #, fuzzy #~ msgid "Article \"%s\" not posted." #~ msgstr "Το άρθρο NNTP \"%s\" (%d από %d) δεν στάλθηκε." #, fuzzy #~ msgid "Usenet posting failed. " #~ msgstr "Η αποστολή στο usenet απέτυχε..\n" #, fuzzy #~ msgid "Your message was saved in the folder \"pan.sendlater\"" #~ msgstr "Το μήνυμα σας αποθηκεύτηκε στον φάκελο ``pan.sendlater''" #, fuzzy #~ msgid "Saving Attachments" #~ msgstr "Συνημμένα" #, fuzzy #~ msgid "Saving Articles" #~ msgstr "Ταξινόμηση άρθρων" #, fuzzy #~ msgid "Saved article body to \"%s\"" #~ msgstr "Αποθήκευση σώματος αρχείου σε %s:" # Haven't come up (yet) with a satisfactory xlation of screensaver... #~ msgid "X-Newsreader" #~ msgstr "Πρόγραμμα ανάγνωσης" # #~ msgid "X-Mailer" #~ msgstr "Πρόγραμμα Ηλεκ. Αλληλογραφία" #~ msgid "/Save A_ttachments" #~ msgstr "/Αποθήκευση συ_νημμένων" #~ msgid "Unable to create thread: %s" #~ msgstr "Δεν ήταν δυνατή η δημιουργία αλληλουχίας: %s" #~ msgid "" #~ msgstr "<Περισσότερα>" #~ msgid "News server connection count: %d" #~ msgstr "Μέτρηση σύνδεσεων με διακομιστή νέων: %d" #~ msgid "/_File/_Save Attachments As..." #~ msgstr "/_Αρχείο/Αποθήκευση συννημένων _ως..." #~ msgid "/_Servers/Get List of _New Groups" #~ msgstr "/_Διακομιστές/Λήψη λίστας των _νέων ομάδων" #~ msgid "/_Tools" #~ msgstr "/_Εργαλεία" #~ msgid "/_Tools/---" #~ msgstr "/_Εργαλεία/---" #, fuzzy #~ msgid "NNTP handshake failed: %s" #~ msgstr "Αποτυχία της μεταφοράς FTP: %s" #, fuzzy #~ msgid "Handshake failed: %s" #~ msgstr "Αποτυχία της μεταφοράς FTP: %s" #, fuzzy #~ msgid "Handshake: %s" #~ msgstr "Χειραψία" #, fuzzy #~ msgid "Authentication failed: bad handshake for SPA password" #~ msgstr "Αποτυχία αυθεντικοποίησης" #, fuzzy #~ msgid "Bad SPA handshake: %s" #~ msgstr "Χειραψία" #, fuzzy #~ msgid "Authentication failed: need a password" #~ msgstr "Αποτυχία αυθεντικοποίησης" #, fuzzy #~ msgid "Authentication failed: %s" #~ msgstr "Αποτυχία αυθεντικοποίησης" #, fuzzy #~ msgid "%*.*s handshake failed: %s" #~ msgstr "Αποτυχία της μεταφοράς FTP: %s" #, fuzzy #~ msgid "Posting failed. Server said: %s" #~ msgstr "Σφάλμα κατά την αποθήκευση του αρχείου: %s" #, fuzzy #~ msgid "Posting complete. Server said: %s" #~ msgstr "%i Ολοκληρωμένο" #, fuzzy #~ msgid "Getting header list failed: %s" #~ msgstr "κεφαλίδα λίστα" #, fuzzy #~ msgid "Getting \"%s\"" #~ msgstr "Καθορισμός ενεργειών για: %s" #, fuzzy #~ msgid "Getting %d of %d" #~ msgstr "από" #, fuzzy #~ msgid "Sending Keepalive" #~ msgstr "Αποστολή Μηνυμάτων" # #, fuzzy #~ msgid "Disconnecting Idle" #~ msgstr "Αποσύνδεση" #, fuzzy #~ msgid "Disconnecting one connection from `%s' after %d seconds idle" #~ msgstr "δευτερόλεπτα" #, fuzzy #~ msgid "Connection to %*.*s, port %d failed: %s" #~ msgstr "ftpfs: ανεπιτυχής σύνδεση με τον εξυπηρέτη: %s" #, fuzzy #~ msgid "Updated counts for %u groups out of %u" #~ msgstr "από" # #, fuzzy #~ msgid "Unable to update counts for group \"%s\"" #~ msgstr "ομάδα" #, fuzzy #~ msgid "Adding groups to server \"%s\"" #~ msgstr "Προσθήκη καταχωρήσεων στη λίστα..." #, fuzzy #~ msgid "List Newsgroups failed: %s" #~ msgstr "Λίστα" #, fuzzy #~ msgid "New groups retrieval failed: %s" #~ msgstr "Νέο" #, fuzzy #~ msgid "Fetched %u headers for \"%s\"" #~ msgstr "Ιδιότητες για \"%s\"" #, fuzzy #~ msgid "No new articles in group \"%s\"" #~ msgstr "Όχι in ομάδα" # #, fuzzy #~ msgid "New %lu of %lu" #~ msgstr "Νέο από" #, fuzzy #~ msgid "Sampling %d articles" #~ msgstr "Η εγκατάσταση του %s απέτυχε" #, fuzzy #~ msgid "Sampling %lu of %lu" #~ msgstr "από" # #, fuzzy #~ msgid "All %lu of %lu" #~ msgstr "από" #~ msgid "[This is an email copy of a Usenet post to \"%s\"]" #~ msgstr "" #~ "[Αυτό είναι ένα αντίγραφο email από μια δημοσίευση στο Usenet στο \"%s\"]" #, fuzzy #~ msgid "Email \"%s\" sent." #~ msgstr "Το μήνυμα E-mail \"%s\" στάλθηκε." #, fuzzy #~ msgid "Email \"%s\" not sent." #~ msgstr "Το μήνυμα E-mail \"%s\" δεν στάλθηκε." #, fuzzy #~ msgid "Posting and mailing article \"%s\"" #~ msgstr "Αποστολή και δημοσίευση άρθρου ``%s''" #, fuzzy #~ msgid "Mailing article \"%s\"" #~ msgstr "Αποστολή με αλληλοφραφία άρθρου ``%s''" #, fuzzy #~ msgid "Email send failed. " #~ msgstr "Η αποστολή Ηλεκ. Αλληλογραφίας απέτυχε.\n" #, fuzzy #~ msgid "Saving `%s'" #~ msgstr "Αποθήκευση \"%s\"" #, fuzzy #~ msgid "Incomplete Profile." #~ msgstr "Μεταγλώττιση αρχείου po" #, fuzzy #~ msgid "No articles found for group \"%s\"" #~ msgstr "Όχι ομάδα" #~ msgid "Bug in Code" #~ msgstr "Σφάλμα στον κώδικα" #~ msgid "Pan: Find Message" #~ msgstr "Pan: Εύρεση μηνύματος" #~ msgid "" #~ "Addresses and Subjects can be changed before being added\n" #~ "to the Spam/Bozo filters.\n" #~ "\n" #~ "For example, a subject of `-->MAKE MONEY FAST<--' will\n" #~ "likey find more spam if shortened to just `MAKE MONEY FAST'.\n" #~ "\n" #~ "Likewise, \"Dudley Dursley\" ' could\n" #~ "be shortened to `' or even `<*@spambot.com>'.\n" #~ "\n" #~ "Wildcards are supported and comparisons are case-insensitive.\n" #~ "For more complex pattern matching, enable the regular expression\n" #~ "button. http://pan.rebelbase.com/regexp.txt for a tutorial.\n" #~ msgstr "" #~ "Οι διευθύνσεις και θέματα μπορεί να αλλαχθούν πρίν προστεθούν\n" #~ "στα φίλτρα Spam/Bozo.\n" #~ "\n" #~ "Για παράδειγμα ένα θέμα όπως `-->MAKE MONEY FAST<--' θα αναγνωριστεί\n" #~ "πιό εύκολα σαν spam αν συντομευθεί ως `MAKE MONEY FAST'.\n" #~ "\n" #~ "Με τον ίδιο τρόπο, \"Dudley Dursley\" ' μπορεί\n" #~ "να συντομευθεί ως`' ή ακόμα και `<*@spambot." #~ "com>'.\n" #~ "\n" #~ "Οι Wildcards υποστηρίζονται και οι συγκρίσεις είναι case-insensitive.\n" #~ "Για πιό σύνθετα ταιριάσματα ενεργοποιήστε το κουμπί κανονικής έκφρασης\n" #~ ". http://pan.rebelbase.com/regexp.txt για περισσότερα.\n" #~ msgid "Add Author to Bozo Filter" #~ msgstr "Προσθήκη συγγραφέα στο φίλτρο Bozo" #~ msgid "regexp" #~ msgstr "καν. έκφραση" #~ msgid "Add Author to Spam Filter" #~ msgstr "Προσθήκη συγγραφέα στο φίλτρο Spam" # #~ msgid "Add Subject to Spam Filter" #~ msgstr "Προσθήκη θέματος στο φίλτρο Spam" #~ msgid "On the Fly" #~ msgstr "Άμεσα" #~ msgid "No Custom Filter" #~ msgstr "Όχι προσαρμοσμένο φίλτρο" #~ msgid "Edit \"%s\" Filter" #~ msgstr "Επεξεργασία \"%s\" φίλτρου" #~ msgid "Edit Other Filters..." #~ msgstr "Επεξεργασία άλλων φίλτρων..." #~ msgid "Which Articles to Show" #~ msgstr "Ποιά άρθρα να εμφανίζονται" #~ msgid "Show Matching Articles and Replies" #~ msgstr "Εμφάνιση άρθρων που ταιριάζουν και των απαντήσεων" #~ msgid "Show Matching Articles and References" #~ msgstr "Εμφάνιση άρθρων που ταιριάζουν και των αναφορών" #~ msgid "Show Complete Binary Articles" #~ msgstr "Εμφάνιση ολοκληρωμένων δυαδικών άρθρων" #~ msgid "Show Incomplete Binary Articles" #~ msgstr "Εμφάνιση μή ολοκληρωμένων δυαδικών αρχείων" #~ msgid "Show Text Articles" #~ msgstr "Εμφάνιση άρθρων απλού κειμένου" #~ msgid "Show Queued Articles" #~ msgstr "Εμφάνιση άρθρων σε ουρά" #~ msgid "Show Articles Neither Queued nor Saved" #~ msgstr "Εμφάνιση άρθρων που ούτε είναι αποθηκευμένα ούτε σε ουρά" #~ msgid "Show Articles which are Cached Locally" #~ msgstr "Εμφάνιση άρθρων που είναι στην τοπική μνήμη" #~ msgid "Show Articles which are not Cached Locally" #~ msgstr "Εμφάνιση άρθρων που δεν είναι στην τοπική μνήμη" #~ msgid "Show Articles posted by Others" #~ msgstr "Εμφάνιση άρθρων που έχουν αποσταλεί από άλλους" #~ msgid "Show Watched Threads" #~ msgstr "Εμφάνιση παρακολουθούμενων αλληλουχιών" #~ msgid "Show Ignored Threads" #~ msgstr "Εμφάνιση αγνοημένων αλληλουχιών" #~ msgid "Show Threads Neither Watched nor Ignored" #~ msgstr "Εμφάνιση αλληλουχιών πού ούτε παρακολουθούνται ούτε αγνοούνται" #~ msgid "" #~ "Type in a search string and press ENTER. Wildcards are allowed; see " #~ "http://pan.rebelbase.com/wildmat.html for more information." #~ msgstr "" #~ "Πληκτρολογήστε ένα αλφαριθμητικό και πατήστε ENTER. Οι Wildcards " #~ "επιτρέπονται, βλ. http://pan.rebelbase.com/wildmat.html για περισσότερες " #~ "πληροφορίες." #~ msgid "BUG!!" #~ msgstr "ΣΦΑΛΜΑ!! " #~ msgid "Please Select a Folder from the Group list." #~ msgstr "Επιλέξτε ένα φάκελο από την λίστα ομάδων." #~ msgid "_Mark as Read" #~ msgstr "Σήμαν_ση ως αναγνωσμένο" #~ msgid "Mark _Threads as Read" #~ msgstr "Σήμανση αλληλου_χιών ως αναγνωσμένες" #~ msgid "Mark Threads as U_nread" #~ msgstr "Σήμανση αλληλουχιών ως μή α_ναγνωσμένες" #~ msgid "Download Flagged Articles" #~ msgstr "Μεταφόρτωση άρθρων με σημαία" #~ msgid "Flag Selected Threads" #~ msgstr "Σημαία σε επιλεγμένες αλληλουχίες" #~ msgid "Unf_lag Selected Articles" #~ msgstr "Άρ_ση σημαίας σε επιλεγμένα μηνύματα" #~ msgid "Unflag Selected Threads" #~ msgstr "Άρση σημαίας" #~ msgid "Download Threads" #~ msgstr "Μεταφόρτωση αλληλουχιών" # #~ msgid "Download Selected Threads" #~ msgstr "Μεταφόρτωση επιλεγμένων αλληλουχιών" #~ msgid "Watch Selected Threads" #~ msgstr "Παρακολούθηση επιλεγμένων αλληλουχιών" #~ msgid "Ignore Selected Threads" #~ msgstr "Αγνόηση επιλεγμένων αλληλουχιών" #~ msgid "Add to Bo_zo or Spam Filter" #~ msgstr "Προσθήκη στα φίλτρα Bo_zo ή Spam" #~ msgid "Add to Bozo or Spam Filter" #~ msgstr "Προσθήκη στα φίλτρα Bozo ή Spam" #~ msgid "Cop_y to Folder" #~ msgstr "Αντιγρα_φή σε φάκελο" #~ msgid "Co_py Threads to Folder" #~ msgstr "Αντιγ_ραφή αλληλουχιών σε Φάκελο" #~ msgid "Copy Threads to Folder" #~ msgstr "Αντιγραφή αλληλουχιών σε Φάκελο" #~ msgid "Mo_ve to Folder" #~ msgstr "Μετα_κίνηση σε Φάκελο" #~ msgid "Move Thread to Folder" #~ msgstr "Μετακίνηση αλληλουχίας σε Φάκελο" #~ msgid "_Cancel..." #~ msgstr "Α_κύρωση..." #~ msgid "Cancel Selected Article which you Posted" #~ msgstr "Ακύρωση επιλεγμένου άρθρου που έχετε στείλει" # #~ msgid "Delete" #~ msgstr "Διαγραφή" #~ msgid "Delete Th_reads" #~ msgstr "Διαγραφή αλληλου_χιών" #~ msgid "Delete All" #~ msgstr "Διαγραφή όλων" #~ msgid "Dialog to set how you want to save the selected articles" #~ msgstr "Διάλογος για τον ορισμό αποθήκευσης επιλεγμένων άρθρων" #~ msgid "Resorting Articles" #~ msgstr "Επαναταξινόμηση άρθρων" #~ msgid "Refiltering Articles" #~ msgstr "Φιλτράρισμα ξανά άρθρων" #~ msgid "Rebuilding Header Pane..." #~ msgstr "Επαναφόρτωση του ταμπλώ κεφαλίδων..." #~ msgid "Threading Articles" #~ msgstr "Ταξινόμηση σε αλληλουχία" #~ msgid "Empty %u groups" #~ msgstr "Άδειασμα %u ομάδων" #~ msgid "Empty group \"%s\"" #~ msgstr "Άδειασμα ομάδας \"%s\"" #~ msgid "Remove all messages from these %u groups?" #~ msgstr "Αφαίρεση όλων των μηνυμάτων από αυτές τις %u ομάδες?" #~ msgid "Remove all messages from \"%s\"?" #~ msgstr "Απομάκρυνση όλων των μηνυμάτων από \"%s\"?" #~ msgid "Reset \"new message\" counters" #~ msgstr "Αρχικοποίηση αρίθμησης \"νέου μηνύματτος\"" #~ msgid "Reset \"new message\" counter" #~ msgstr "Αρχικοποίηση αρίθμησης \"νέου μηνύματτος\"" #~ msgid "Invalid folder name: \"%s\"" #~ msgstr "Μη έγκυρο όνομα φακέλου: \"%s\"" #~ msgid "Newsgroups: " #~ msgstr "Ομάδες συζητήσεων:" #~ msgid "Reply-To: " #~ msgstr "Απάντηση-σε:" #, fuzzy #~ msgid "Followup-To: " #~ msgstr "Προς " # #~ msgid "Newsreader:" #~ msgstr "Newsreader:" #~ msgid "Open Attachment..." #~ msgstr "Άνοιγμα συνημμένου..." #~ msgid "Delete the selected folder." #~ msgstr "Διαγραφή του επιλεγμένου φακέλου." # #~ msgid "Edit Selected Article in Folder" #~ msgstr "Επεξεργασία επιλεγμένου άρθρου σε φάκελο" #~ msgid "Select all Groups in the Group List" #~ msgstr "Επιλογή όλων των ομάδων στην λίστα ομάδας" #~ msgid "Deselect all Groups in the Group List" #~ msgstr "Αποεπιλογή όλων των ομάδων στην λίστα ομάδας" #~ msgid "Select all Articles in the Article List" #~ msgstr "Επιλογή όλων των άρθρων στην λίστα άρθρων" #~ msgid "Add Thread to the Article List selection" #~ msgstr "Προσθήκη αλληλουχίας στην επιλογή λίστας άρθρων" #~ msgid "Deselect all Articles in the Article List" #~ msgstr "Αποεπιλογή όλων των άρθρων στην λίστα άρθρων" #~ msgid "Filter Tool." #~ msgstr "Εργαλείο φίλτρου." #~ msgid "Rules Tool." #~ msgstr "Εργαλείο κανόνων." #~ msgid "Pr_ofiles..." #~ msgstr "Προ_φίλ..." #~ msgid "Profiles Tool." #~ msgstr "Εργαλείο προφίλ." #~ msgid "_Online/Offline Settings..." #~ msgstr "Ρυθμίσεις σύν_δεσης/αποσύνδεσης..." #~ msgid "Online/Offline Settings..." #~ msgstr "Ρυθμίσεις σύνδεσης/αποσύνδεσης..." #~ msgid "Post a new message to the current group." #~ msgstr "Αποστολή ενός νέου μηνύματος στην τρέχουσα ομάδα." #~ msgid "Post a reply to the message on the news server." #~ msgstr "Αποστολή μιας απάντησης στο μήνυμα στον εξυπηρετητή συζητήσεων." #~ msgid "Create a mail reply to the sender." #~ msgstr "Δημιουργία μιας απάντησης αλληλογραφίας στον αποστολέα." #, fuzzy #~ msgid "Follow-Up _and Reply" #~ msgstr "" #~ "#-#-#-#-# gnome-vfs.HEAD.el.po (gnome-vfs 0.6.2) #-#-#-#-#\n" #~ "Πάνω\n" #~ "#-#-#-#-# nautilus.HEAD.el.po (nautilus 2.0.7) #-#-#-#-#\n" #~ "Επάνω" #~ msgid "Send a reply both to the author in mail, and to the news server." #~ msgstr "" #~ "Αποστολή μιας απάντησης και στον συγγραφέα με μήνυμα και στον εξυπηρετητή " #~ "συζητήσεων." #~ msgid "Forward article by E-mail" #~ msgstr "Προώθηση άρθρου με E-mail" #~ msgid "Send Messages Queued in \"pan.sendlater\"" #~ msgstr "Αποστολή μηνυμάτων που εκκρεμούν στο \"pan.sendlater\"" #~ msgid "S_kip Uncached Articles:" #~ msgstr "Προσ_πέραση μή αποθηκευμένων άρθρων:" #~ msgid "_Load Articles When Selected:" #~ msgstr "_Φόρτωση άρθρων όταν επιλεχθούν:" #~ msgid "Load Articles When Selected:" #~ msgstr "Φόρτωση άρθρων όταν επιλεχθούν:" #, fuzzy #~ msgid "Space Reading" #~ msgstr "" #~ "#-#-#-#-# gnome-media.HEAD.el.po (gnome-media 2.0.2.5) #-#-#-#-#\n" #~ "Space\n" #~ "#-#-#-#-# nautilus.HEAD.el.po (nautilus 2.0.7) #-#-#-#-#\n" #~ "Σπαίις" #~ msgid "T_op of Thread" #~ msgstr "Α_ρχή της αλληλουχίας" #~ msgid "Top of Thread" #~ msgstr "Αρχή της αλληλουχίας" #~ msgid "Move to the Next Group with Unread Messages." #~ msgstr "Μετάβαση στην επόμενη ομάδα με μή αναγνωσμένα μηνύματα." #~ msgid "Move to the Next Group." #~ msgstr "Μετάβαση στην επόμενη ομάδα." #~ msgid "Refresh a list of groups from the selected servers." #~ msgstr "Ανανέωση της λίστας των ομάδων από τους επιλεγμένους εξυπηρετητές." #~ msgid "Download a list of new groups from the selected servers." #~ msgstr "" #~ "Μεταφόρτωση λίστας των νέων ομάδων από τους επιλεγμένους εξυπηρετητές." #~ msgid "Import .newsrc..." #~ msgstr "Εισαγωγή .newsrc.." #~ msgid "_Export .newsrc..." #~ msgstr "Ε_ξαγωγή .newsrc..." #~ msgid "Export .newsrc..." #~ msgstr "Εξαγωγή .newsrc..." #~ msgid "Pan _Homepage" #~ msgstr "Αρ_χική Σελίδα του Pan" #~ msgid "Online Users _Manual..." #~ msgstr "_Εγχειρίδιο Χρήστη..." #~ msgid "Online Users _Manual" #~ msgstr "_Εγχειρίδιο Χρήστη" #~ msgid "_Feedback..." #~ msgstr "Ανά_δραση..." #~ msgid "Mail Feedback to the Pan Authors" #~ msgstr "Αποστολή ανάδρασης τους συγγραφείς του Pan" #~ msgid "Submit a Pan Bug Report to the GNOME Bug Tracker" #~ msgstr "Υποβολή μιας αναφοράς σφάλματος του Pan στο GNOME Bug Tracker" #~ msgid "Open the Log Viewer" #~ msgstr "Άνοιγμα της προβολής καταγραφών" #~ msgid "View Pa_nes as Tabs" #~ msgstr "Προβολή ταμ_πλώ ως στήλες" #~ msgid "Zoom/Unzoom" #~ msgstr "Μεγέθυνση/επαναφορά" #~ msgid "View Group Tab" #~ msgstr "Προβολή στήλης ομάδας" # #~ msgid "View Header Ta_b" #~ msgstr "Προβολή σ_τήλης κεφαλίδας" #~ msgid "View _Article Tab" #~ msgstr "Προβολή στήλης ά_ρθρου" #~ msgid "Show Art_icle Pane" #~ msgstr "Εμφάνιση ταμπλώ άρ_θρου" #~ msgid "Collapse Names in Gro_up Pane" #~ msgstr "Κατάρρευση ονομάτων στο ταμπλώ ο_μάδας" #~ msgid "Thread/Unthread Header Pane" #~ msgstr "Αλληλουχία/αναίρεση αλληλουχίας ταμπλώ κεφαλίδας" #~ msgid "_Rot13 Article Body" #~ msgstr "_Rot13 σώματος άρθρου" #~ msgid "Rot13 Article Body" #~ msgstr "Rot13 σώματος άρθρου" #~ msgid "Show All Headers in Article Pane" #~ msgstr "Εμφάνιση όλων των κεφαλίδων στο ταμπλώ άρθρου " #~ msgid "Use Monospa_ce Font in Article Pane" #~ msgstr "Χρήση γραμματοσειράς Monospa_ce στο ταμπλώ άρθρου" #~ msgid "Expand Selected Threads" #~ msgstr "Ανάπτυξη επιλεγμένων αλληλουχιών" #~ msgid "Expand all Thread_s" #~ msgstr "Ανάπτυξη όλων των αλλ_ηλουχιών" #~ msgid "Colla_pse all Threads" #~ msgstr "_Κατάρρευση όλων των αλληλουχιών" #~ msgid "Mark All Articles in Selected Groups as Read" #~ msgstr "Σημείωση όλων των άρθρων ως αναγνωσμένα στις επιλεγμένες ομάδες" #~ msgid "Get Bodies along _with Articles:" #~ msgstr "Λήψη σώματος μαζί με ά_ρθρα:" #~ msgid "Get Bodies along with Articles" #~ msgstr "Λήψη σώματος μαζί με άρθρα" # #~ msgid "Get A_ll Articles" #~ msgstr "Λήψη ό_λων των άρθρων" #~ msgid "Get New Articles in all Su_bscribed Groups" #~ msgstr "Λήψη όλων των νέων άρθρων στις ε_γεγγραμένες ομάδες" #~ msgid "Specify and Download Articles" #~ msgstr "Καθορισμός και μεταφόρτωση άρθρων" # #~ msgid "_Properties..." #~ msgstr "_Ιδιότητες..." #~ msgid "Set the properties for the selected group." #~ msgstr "Ορισμός των ιδιοτήτων για την επιλεγμένη ομάδα." # #~ msgid "_Empty..." #~ msgstr "Ά_δειασμα..." # #~ msgid "Dele_te" #~ msgstr "Διαγρα_φή" # #~ msgid "Delete the selected group(s) from Pan." #~ msgstr "Διαγραφή της επιλεγμένης ομάδας από το Pan." #~ msgid "_Navigate" #~ msgstr "_Περιήγηση" # #~ msgid "Open the Connection Manager" #~ msgstr "Άνοιγμα της διαχείρισης σύνδεσης" #~ msgid "" #~ "1 task still active or queued.\n" #~ "Are you sure you want to exit Pan?" #~ msgstr "" #~ "Υπάρχει μια ενέργεια ακόμα ενεργή ή στην ουρά.\n" #~ "Είσαστε βέβαιοι ότι θέλετε να βγείτε από το Pan?" #~ msgid "" #~ "%d tasks still active or queued.\n" #~ "Are you sure you want to exit Pan?" #~ msgstr "" #~ "Υπάρχει %d ενέργειες ακόμα ενεργές ή στην ουρά.\n" #~ "Είσαστε βέβαιοι ότι θέλετε να βγείτε από το Pan?" #~ msgid "Unable to parse the geometry string \"%s\"" #~ msgstr "Ανεπιτυχής αποκωδικοποίηση του αλφαριθμητικου γεωμετρίας \"%s\"" #~ msgid "Connecting to a Remote News Server to Execute a Task" #~ msgstr "" #~ "Σύνδεση σε ένα απομακρυσμένο εξυπηρετητή για την εκτέλεση μιας εργασίας" #~ msgid "AND" #~ msgstr "ΚΑΙ" #~ msgid "OR" #~ msgstr "Ή" # #~ msgid "Delete Line" #~ msgstr "Διαγραφή γραμμής" # #~ msgid "contains the phrase" #~ msgstr "περιέχει την φράση" #~ msgid "(%s for user-specified text)" #~ msgstr "(%s για χρήστη-καθορισμένο κείμενο)" #~ msgid "" #~ "See http://pan.rebelbase.com/regexp.txt for a tutorial on how to use " #~ "regular expressions. If regular expressions are turned off, a simple " #~ "case-insensitive wildcard match is used." #~ msgstr "" #~ "Βλέπε http://pan.rebelbase.com/regexp.txt για οδηγίες χρήσης των " #~ "κανονικώνεκφράσεων. Αν οι κανονικές εκφράσεις απενεργοποιηθούν, μια απλή " #~ "case-insensitive wildcard χρησιμοποιείται." #~ msgid "Article was posted by _me" #~ msgstr "Το άρθρο είχε αποσταλεί από ε_μένα" #~ msgid "newsgroups" #~ msgstr "ομάδες" #~ msgid "days old" #~ msgstr "ημέρες παλιό" #~ msgid "Article _thread is" #~ msgstr "Η αλληλου_χία άρθρου ήταν" #~ msgid "Neither Watched nor Ignored" #~ msgstr "Ούτε παρακολουθούμενη, ούτε αγνοημένη" #~ msgid "Article body is _cached locally" #~ msgstr "Το σώμα άρθρου έχει αποθηκευτεί προ_σωρινά τοπικά" #~ msgid "Article is _new" #~ msgstr "Το άρθρο είναι νέο" #~ msgid "Neither Saved or Decoded, nor Queued" #~ msgstr "Ούτε αποθηκευμένο ή αποκρυπτογραφημένο, ούτε στην ουρά" # #~ msgid "Add New" #~ msgstr "Προσθήκη νέου" #~ msgid "No Servers Defined" #~ msgstr "Δεν έχουν καθοριστεί εξυπηρετητές" #~ msgid "Go Online for Server \"%s\"?" #~ msgstr "Σύνδεση για τον εξυπηρετητή \"%s\"?" #~ msgid "I have no idea what I'm doing with Article ``%s''" #~ msgstr "Δεν έχω ιδέα τί να κάνω με το άρθρο ``%s''" #~ msgid "Send this Message Later" #~ msgstr "Αποστολή αυτού του μηνύματος αργότερα" #~ msgid "Rewrap all the text in the Message Body." #~ msgstr "Αναδίπλωση ξανά όλου του κειμένου στο σώμα μηνύματος" #, fuzzy #~ msgid "Post To Groups:" #~ msgstr "Προς:" #, fuzzy #~ msgid "Couldn't open file `%s'" #~ msgstr "Άνοιγμα αρχείου `%s' ανεπιτυχές: %s" #, fuzzy #~ msgid "Couldn't exec external editor" #~ msgstr "Aδύνατη η δημιουργία καταλόγου %s" #, fuzzy #~ msgid "Couldn't write to file" #~ msgstr "Αδύνατη η εγγραφή του αρχείου %s" #, fuzzy #~ msgid "Pipe read failed" #~ msgstr "Η ανάκτηση απέτυχε" # #, fuzzy #~ msgid "Unable to open file `%s'" #~ msgstr "Αδύνατο το άνοιγμα αρχείου: '%s'" #, fuzzy #~ msgid "Unable to write to temp file" #~ msgstr "EΑδύνατη η εγγραφή στη συσκευή %s" #, fuzzy #~ msgid "Pan: Import .newsrc File" #~ msgstr "Εισαγωγή Αρχείου" #, fuzzy #~ msgid "Pan: Export .newsrc File" #~ msgstr "Εξαγωγή Αρχείου" #, fuzzy #~ msgid "Select .newsrc File to Write:" #~ msgstr "Επιλογή Αρχείο:" #, fuzzy #~ msgid "QUIT failed: %s" #~ msgstr "αποτυχία του %s" #, fuzzy #~ msgid "Cancelling message \"%s\"" #~ msgstr "Έλεγχος ορθογραφίας των μηνυμάτων" #~ msgid "Specify the geometry of the window." #~ msgstr "Καθορισμός γεωμετρίας του παραθύρου." # #~ msgid "GEOMETRY" #~ msgstr "ΓΕΩΜΕΤΡΙΑ" #, fuzzy #~ msgid "" #~ "Send outgoing messages to stdout instead of smtp/nntp servers for " #~ "debugging purposes." #~ msgstr "από." #, fuzzy #~ msgid "Turn on article cache debugging messages." #~ msgstr "Ενεργοποίηση όλων των μηνυμάτων εκσφαλμάτωσης." #, fuzzy #~ msgid "Turn on socket input debugging messages." #~ msgstr "υποδοχή." #, fuzzy #~ msgid "Turn on socket output debugging messages." #~ msgstr "υποδοχή." #, fuzzy #~ msgid "Turn on socket input/output debugging messages." #~ msgstr "υποδοχή." #, fuzzy #~ msgid "Trace function calls" #~ msgstr "Η διεξαγωγή απέτυχε" #, fuzzy #~ msgid "Turn on task scheduler debugging messages." #~ msgstr "Ενεργοποίηση όλων των μηνυμάτων εκσφαλμάτωσης." #, fuzzy #~ msgid "Turn on attachment decoding debugging messages." #~ msgstr "Ενεργοποίηση όλων των μηνυμάτων εκσφαλμάτωσης." #, fuzzy #~ msgid "Turn on newsrc decoding debugging messages." #~ msgstr "Ενεργοποίηση όλων των μηνυμάτων εκσφαλμάτωσης." #, fuzzy #~ msgid "Turn on gui thread lock debugging messages." #~ msgstr "Ενεργοποίηση όλων των μηνυμάτων εκσφαλμάτωσης." #, fuzzy #~ msgid "Turn on debugging of GNKSA code." #~ msgstr "από." #, fuzzy #~ msgid "Turn on pan object system debugging messages." #~ msgstr "Ενεργοποίηση όλων των μηνυμάτων εκσφαλμάτωσης." #, fuzzy #~ msgid "" #~ "Turn on most of the generally-useful debug flags. A good first choice " #~ "when preparing a bug report." #~ msgstr "από." # #, fuzzy #~ msgid "Not Named" #~ msgstr "Ανώνυμο" #, fuzzy #~ msgid "No Address" #~ msgstr "Όχι" #, fuzzy #~ msgid "Server Information" #~ msgstr "Εξυπηρετητής" #, fuzzy #~ msgid "Profile Name" #~ msgstr "Όνομα Αρχείου" #~ msgid "Authorization" #~ msgstr "Έγκριση" #~ msgid "Password" #~ msgstr "Κωδικός Πρόσβασης" # #, fuzzy #~ msgid "Maximum Connections:" #~ msgstr "Τελευταίες Συνδέσεις" #, fuzzy #~ msgid "Idle Seconds Before Timeout:" #~ msgstr "Ανενεργό:" #~ msgid "Use gdk_fontset_load instead of gdk_font_load" #~ msgstr "Χρησιμοποίηση του gdk_fontset_load αντί του gdk_font_load" #, fuzzy #~ msgid "" #~ "Automatically guess which articles to decode \n" #~ "when duplicate parts appear in a multipart post" #~ msgstr "in" #, fuzzy #~ msgid "" #~ "If this disabled, the user will be prompted in a dialog to choose which " #~ "posts to use." #~ msgstr "ανενεργό in διάλογος." #, fuzzy #~ msgid "Wrap body of the original message when replying" #~ msgstr "Αναδίπλωση από" #, fuzzy #~ msgid "" #~ "If this is disabled, Pan will not wrap the original message when creating " #~ "the reply." #~ msgstr "ανενεργό." #, fuzzy #~ msgid "External Editor (%t will be replaced with filename)" #~ msgstr "Επεξεργαστής" #, fuzzy #~ msgid "External Web Browser (%s will be replaced with URL)" #~ msgstr "Δικτυακός Ιστός Εξερεύνηση URL" #, fuzzy #~ msgid "" #~ "If this field contains the string \"%s\", the URL to be viewed is " #~ "substituted there.\n" #~ " \n" #~ "If this field is left blank, then your $BROWSER environmental variable " #~ "will be used (see http://www.tuxedo.org/~esr/BROWSER/). If that isn't " #~ "set either, then the default Gnome setting will be used." #~ msgstr "" #~ "URL\n" #~ " αριστεράhttp://www.tuxedo.org/~esr/BROWSER/ Gnome." #, fuzzy #~ msgid "Newsgroups (if more than one group)" #~ msgstr "ομάδα" #, fuzzy #~ msgid "Reply-To (if different from Author)" #~ msgstr "Προς" #, fuzzy #~ msgid "Headers to Show" #~ msgstr "Γραμματοσειρά κεφαλίδας" #~ msgid "Message Body" #~ msgstr "Περιεχόμενο Μηνύματος" #, fuzzy #~ msgid "Message Body (Monospace)" #~ msgstr "Μήνυμα" #, fuzzy #~ msgid "Use System Background" #~ msgstr "Σύστημα" # #, fuzzy #~ msgid "Body Foreground" #~ msgstr "Προσκήνιο" # #, fuzzy #~ msgid "Use System Foreground" #~ msgstr "Σύστημα" # # NOTE: Translation of "Create" as "New" to # # keep msg length relatively short... #, fuzzy #~ msgid "Quoted Text 3" #~ msgstr "Κείμενο" #, fuzzy #~ msgid "Fill articles for reading at column" #~ msgstr "Γέμισμα" #, fuzzy #~ msgid "Left Mouse Button:" #~ msgstr "Αριστερά Ποντίκι Kουμπί:" # #, fuzzy #~ msgid "Selects Article" #~ msgstr "Επιλογή αρχείου" #, fuzzy #~ msgid "Middle Mouse Button:" #~ msgstr "Ποντίκι Kουμπί:" #, fuzzy #~ msgid "Old Articles with no New Replies" #~ msgstr "όχι Νέο" #, fuzzy #~ msgid "New Articles / Articles with New Replies" #~ msgstr "Νέο Νέο" #, fuzzy #~ msgid "Read Articles with no Unread Replies" #~ msgstr "όχι" #, fuzzy #~ msgid "Show only the first part of complete multipart binary posts" #~ msgstr "Εμφάνιση: από" #, fuzzy #~ msgid "Display article dates in local time instead of UTC" #~ msgstr "Εμφάνιση in από" #, fuzzy #~ msgid "Assigned panes: " #~ msgstr "Ισοζυγισμένο ταμπλώ" #, fuzzy #~ msgid "Loads Group" #~ msgstr "Γράφημα Φόρτου" #, fuzzy #~ msgid "Group list font" #~ msgstr "Ομάδα λίστα" #, fuzzy #~ msgid "Server \"%s\" is Online" #~ msgstr "Εξυπηρετητής" #, fuzzy #~ msgid "Server \"%s\" is Offline; no new tasks will be processed" #~ msgstr "Εξυπηρετητής όχι" #, fuzzy #~ msgid "Maximum Total Number of Connections" #~ msgstr "" #~ "#-#-#-#-# gnome-games.gnome-2-2.el.po (gnome-games 2.0.5) #-#-#-#-#\n" #~ "Σύνολο\n" #~ "#-#-#-#-# libgtop.libgtop-GNOME-2-0-port.el.po (libgtop 2.0.0) #-#-#-#-" #~ "#\n" #~ "Συνολικά από" #, fuzzy #~ msgid "Maximum Number of Task Retries before Giving Up" #~ msgstr "από" # #, fuzzy #~ msgid "" #~ "Maximum\n" #~ "Connections" #~ msgstr "Συνδέσεις" #, fuzzy #~ msgid "Online Status" #~ msgstr "Κατάσταση Δημιουργίας Ευρετηρίου" #, fuzzy #~ msgid "Download Directory:" #~ msgstr "Κατάλογος:" # #, fuzzy #~ msgid "Data Directory" #~ msgstr "Δημιουργία Kαταλόγου" #, fuzzy #~ msgid "" #~ "The cache is used to keep local copies of articles\n" #~ "to reduce the time connected to the network." #~ msgstr "από." #, fuzzy #~ msgid "Disk Cache:" #~ msgstr "Χρήση Δίσκου" #, fuzzy #~ msgid "Megs" #~ msgstr "αυγά" #, fuzzy #~ msgid "Clear Disk Cache" #~ msgstr "Εκκαθάριση" #, fuzzy #~ msgid "" #~ ".newsrc files are used by many newsreaders to remember\n" #~ "which articles you've read and which groups you're subscribed to.\n" #~ "If you plan on using other newsreaders along with Pan,\n" #~ "you can set Pan automatically import them on startup and\n" #~ "export them on exit." #~ msgstr "άλλο." #, fuzzy #~ msgid "Import/Export .newsrc files automatically" #~ msgstr "Αυτόματη απόκρυψη όψης διεργασιών" #, fuzzy #~ msgid "" #~ "Many users prefer to save memory and disk space by only keeping " #~ "subscribed groups in their .newsrc file." #~ msgstr "in." # #~ msgid "Directories" #~ msgstr "Κατάλογοι" #, fuzzy #~ msgid "Display - Layout" #~ msgstr "Εμφάνιση" #, fuzzy #~ msgid "Display - Groups" #~ msgstr "Εμφάνιση" # #, fuzzy #~ msgid "Display - Threads" #~ msgstr "Εμφάνιση" #, fuzzy #~ msgid "Display - Articles" #~ msgstr "Εμφάνιση" #, fuzzy #~ msgid "Display - Headers" #~ msgstr "Εμφάνιση" # #~ msgid "General" #~ msgstr "Γενικά" #, fuzzy #~ msgid "Servers - News" #~ msgstr "Όνομα Διακομιστή" # #, fuzzy #~ msgid "Servers - Mail" #~ msgstr "Εξυπηρετητές" #, fuzzy #~ msgid "Sending 'stay connected' request" #~ msgstr "Δεν επιτρέπεται αίτηση για τον αγωγό %s" #, fuzzy #~ msgid "Add ``/%s'' to path" #~ msgstr "" #~ "#-#-#-#-# file-roller.gnome-2-2.el.po (fileroller x.y) #-#-#-#-#\n" #~ "Προσθήκη\n" #~ "#-#-#-#-# gnome-utils.gnome-2-2.el.po (gnome-utils 2.0.4) #-#-#-#-#\n" #~ "Πρόσθεση" #, fuzzy #~ msgid "Article Text" #~ msgstr "Άρθρο" #, fuzzy #~ msgid "Don't Save Article Text" #~ msgstr "Αποθήκευση" #, fuzzy #~ msgid "Use Message-ID" #~ msgstr "Μήνυμα" #, fuzzy #~ msgid "Use Subject" #~ msgstr " Θέμα " #, fuzzy #~ msgid "Use Encoded Filename" #~ msgstr "Εμφάνιση εκτεταμένου ονόματος αρχείου" # #, fuzzy #~ msgid "Preparing to Send Mail" #~ msgstr "απάντηση σε μηνύματα" # gconf/gconf-internals.c:2404 #, fuzzy #~ msgid "Can't resolve %s: %s" #~ msgstr "Αδύνατη η εγγραφή στο αρχείο `%s': %s" #, fuzzy #~ msgid "Can't connect to %s: %s" #~ msgstr "Δεν είναι δυνατή η σύνδεση με την αποθήκη: %s" #, fuzzy #~ msgid "Socket keepalive option failed: %s" #~ msgstr "Αποτυχία ενεργοποίησης: " #, fuzzy #~ msgid "Timed out waiting to read from the server." #~ msgstr "Το όνομα χρήστη για αποστολή στον εξυπηρετητή proxy" #, fuzzy #~ msgid "Error: reading from socket returned %d." #~ msgstr "Σφάλμα υποδοχή." #, fuzzy #~ msgid "" #~ "socket [%p] failed its read:\n" #~ "%s" #~ msgstr "υποδοχή ο" #, fuzzy #~ msgid "socket [%p] failed its read" #~ msgstr "υποδοχή" #, fuzzy #~ msgid "Article cache now has %.1f MB in %d articles" #~ msgstr "in" #, fuzzy #~ msgid "WARNING: %d lines too wide in signature" #~ msgstr "in" #, fuzzy #~ msgid "" #~ "INFORMATION: Please be aware that posts to \"%s\" will not appear until " #~ "approved by the group's moderator." #~ msgstr "ομάδα." #~ msgid "unknown@spammesenseless.net" #~ msgstr "unknown@spammesenseless.net" #, fuzzy #~ msgid "Waiting to decode \"%s\"" #~ msgstr "Συνδρομή στον φάκελο \"%s\"" #, fuzzy #~ msgid "Decode unable to create file \"%s\" %s" #~ msgstr "Αδύνατη η δημιουργία αρχείου: %s\n" #, fuzzy #~ msgid "The group will not be saved -- can't move \"%s\" to \"%s\"" #~ msgstr "ομάδα" #, fuzzy #~ msgid "Couldn't create file `%s' to export newsrc file %s" #~ msgstr "Αδυναμία δημιουργίας εικόνας από το αρχείο: %s" #, fuzzy #~ msgid "Loading Groups" #~ msgstr "Γράφημα Φόρτου" #, fuzzy #~ msgid "Articles/Mail queued for posting via the \"Send Later\" button" #~ msgstr "Ηλεκ. Αλληλογραφία" #, fuzzy #~ msgid "Created folder pan.sendlater" #~ msgstr "φάκελος" #, fuzzy #~ msgid "Articles/Mail posted before" #~ msgstr "Ηλεκ. Αλληλογραφία" #, fuzzy #~ msgid "Created folder pan.sent" #~ msgstr "φάκελος" #, fuzzy #~ msgid "Unable to access or create directory \"%s\"" #~ msgstr "Δημιουργία καταλόγου χρήστη αδύνατη: %s\n" #, fuzzy #~ msgid "Can't open file `%s'" #~ msgstr "Άνοιγμα αρχείου `%s' ανεπιτυχές" #~ msgid "Lead Programmer" #~ msgstr "Κύριος προγραμματιστής" # #~ msgid "Programmer & Documentation" #~ msgstr "Προγραμματιστής & Τεκμηρίωση" #, fuzzy #~ msgid "" #~ "Many thanks to the following people, whose contributions\n" #~ "are a large part of why Open Source software development\n" #~ "is so fun.\n" #~ "\n" #~ "Pan %s Translations\n" #~ "%s\n" #~ "\n" #~ "Pan %s Code or Patches\n" #~ "%s\n" #~ "\n" #~ "Pan %s Suggestions and Testing\n" #~ "%s\n" #~ "\n" #~ "If you should have been in this list but you're not,\n" #~ "send us mail and we'll add you next time.\n" #~ "\n" #~ "Contributors to previous versions are listed at\n" #~ "http://pan.rebelbase.com/CREDITS" #~ msgstr "" #~ "από Άνοιγμα ο ο ο ο ο Συμβουλές ο ο in λίστα ο\n" #~ "http://pan.rebelbase.com/CREDITS" # #~ msgid "Save" #~ msgstr "Αποθήκευση" #~ msgid "Pan - Log Viewer" #~ msgstr "Παρακολουθηση Καταγραφών του Pan" #~ msgid "Most Recent Headers" #~ msgstr "Πιό πρόσφατες κεφαλίδες" #, fuzzy #~ msgid "Also Download Article Bodies" #~ msgstr "Λήψη πακέτων;" #, fuzzy #~ msgid "" #~ "When you post a message to a newsgroup, your display name will appear in " #~ "the From field. Type your name in as you would like it to appear." #~ msgstr "" #~ "in #-#-#-#-# file-roller.gnome-2-2.el.po (fileroller x.y) #-#-#-#-#\n" #~ "Τύπος\n" #~ "#-#-#-#-# gnome-control-center.HEAD.el.po (gnome-control-center " #~ "2.0.2.92) #-#-#-#-#\n" #~ "Τύπος\n" #~ "#-#-#-#-# gnome-utils.gnome-2-2.el.po (gnome-utils 2.0.4) #-#-#-#-#\n" #~ "Είδος\n" #~ "#-#-#-#-# nautilus.HEAD.el.po (nautilus 2.0.7) #-#-#-#-#\n" #~ "Τύπος\n" #~ "#-#-#-#-# nautilus-media.HEAD.el.po (nautilus-media VERSION) #-#-#-#-#\n" #~ "Τύπος in." #~ msgid "Display Name:" #~ msgstr "Όνομα που εμφανίζεται:" #~ msgid "For example: John Doe" #~ msgstr "Για παράδειγμα: Γιάννης Χρήστης" #, fuzzy #~ msgid "" #~ "If you belong to an organization and would like for your organization's " #~ "name to appear with your posts, type in your organization name below. " #~ "This information is optional, you may leave it blank." #~ msgstr "είδος in." #, fuzzy #~ msgid "" #~ "People can reply to your posts by sending you an e-mail message at the " #~ "following address." #~ msgstr "e." #~ msgid "For example: user@host.com" #~ msgstr "Για παράδειγμα: user@hellug.gr" #, fuzzy #~ msgid "" #~ "Please enter the name of the mail server to use when sending e-mail " #~ "messages." #~ msgstr "από e." # #~ msgid "SMTP Server:" #~ msgstr "Διακομιστής SMTP:" #~ msgid "SMTP Port:" #~ msgstr "Θύρα SMTP:" #, fuzzy #~ msgid "Type the name of your Internet news server." #~ msgstr "" #~ "#-#-#-#-# file-roller.gnome-2-2.el.po (fileroller x.y) #-#-#-#-#\n" #~ "Τύπος\n" #~ "#-#-#-#-# gnome-control-center.HEAD.el.po (gnome-control-center " #~ "2.0.2.92) #-#-#-#-#\n" #~ "Τύπος\n" #~ "#-#-#-#-# gnome-utils.gnome-2-2.el.po (gnome-utils 2.0.4) #-#-#-#-#\n" #~ "Είδος\n" #~ "#-#-#-#-# nautilus.HEAD.el.po (nautilus 2.0.7) #-#-#-#-#\n" #~ "Τύπος\n" #~ "#-#-#-#-# nautilus-media.HEAD.el.po (nautilus-media VERSION) #-#-#-#-#\n" #~ "Τύπος από #-#-#-#-# gnome-applets.gnome-2-2.el.po (gnome-applets 2.0.3) " #~ "#-#-#-#-#\n" #~ "Διαδίκτυο\n" #~ "#-#-#-#-# gnome-desktop.HEAD.el.po (gnome-desktop 2.0.5) #-#-#-#-#\n" #~ "Δίκτυο\n" #~ "#-#-#-#-# gnome-panel.gnome-2-2.el.po (gnome-panel 2.0.10) #-#-#-#-#\n" #~ "Δίκτυο\n" #~ "#-#-#-#-# gnome-session.HEAD.el.po (gnome-session 2.0.5) #-#-#-#-#\n" #~ "Δίκτυο." # #~ msgid "News (NNTP) server:" #~ msgstr "Eξυπηρετητής συζητήσεων (NNTP) :" #, fuzzy #~ msgid "" #~ "If you must log on to your news (NNTP) server, then select the check box " #~ "below." #~ msgstr "λογ." #~ msgid "Account name:" #~ msgstr "Όνομα λογαριασμού:" #, fuzzy #~ msgid "" #~ "Type in the name you would like Pan to show when referring to this " #~ "profile you have just setup. You can name the profile anything you want " #~ "to." #~ msgstr "" #~ "#-#-#-#-# file-roller.gnome-2-2.el.po (fileroller x.y) #-#-#-#-#\n" #~ "Τύπος\n" #~ "#-#-#-#-# gnome-control-center.HEAD.el.po (gnome-control-center " #~ "2.0.2.92) #-#-#-#-#\n" #~ "Τύπος\n" #~ "#-#-#-#-# gnome-utils.gnome-2-2.el.po (gnome-utils 2.0.4) #-#-#-#-#\n" #~ "Είδος\n" #~ "#-#-#-#-# nautilus.HEAD.el.po (nautilus 2.0.7) #-#-#-#-#\n" #~ "Τύπος\n" #~ "#-#-#-#-# nautilus-media.HEAD.el.po (nautilus-media VERSION) #-#-#-#-#\n" #~ "Τύπος in Εσύ." #~ msgid "For example: UUNET Server" #~ msgstr "Για παράδειγμα: GRNET Server" # #~ msgid "Welcome to Pan" #~ msgstr "Καλώς ήλθατε στο Pan" #~ msgid "Congratulations" #~ msgstr "Συγχαρητήρια" #~ msgid "Downloading %d articles from group %s" #~ msgstr "Μεταφόρτωση %d άρθρων από ομάδα %s" #~ msgid "Downloading body of \"%s\" (%s) from group %s" #~ msgstr "Μεταφόρτωση σώματος του \"%s\" (%s) από ομάδα %s" #, fuzzy #~ msgid "Cached article \"%s\" (%s) from group %s" #~ msgstr "Στην κρύπτη ομάδα" #~ msgid "Downloading article \"%s\" failed." #~ msgstr "Η μεταφόρτωση του άρθρου \"%s\" απέτυχε." # #~ msgid "Unable to open file `%s' %s" #~ msgstr "Αδύνατο το άνοιγμα αρχείου `%s' %s" #~ msgid "Pan: Save Multipart Message" #~ msgstr "Pan: Αποθήκευση μυνήματος multipart " #, fuzzy #~ msgid "" #~ "Pan found multiple copies of some of the parts of this post.\n" #~ "Please select the parts to use for this save." #~ msgstr "από από από." #, fuzzy #~ msgid "all groups" #~ msgstr ", ομάδα" #, fuzzy #~ msgid "new groups" #~ msgstr "Νέα Ομάδα" #, fuzzy #~ msgid "Getting %s from %s" #~ msgstr "Αποκατάσταση του %s από το %s... " #~ msgid "sample" #~ msgstr "δείγμα" #, fuzzy #~ msgid "The Queue is not Paused" #~ msgstr "Ο φάκελος δεν είναι άδειος" #~ msgid "%.2f KB/s, %d:%02d:%02d remaining" #~ msgstr "%.2f KB/s, απομένουν %d:%02d:%02d" #, fuzzy #~ msgid "Aborting" #~ msgstr "Αποβολή" #~ msgid "???" #~ msgstr "???" #~ msgid "%s (%d tries)" #~ msgstr "%s (%d προσπάθειες)" #, fuzzy #~ msgid "Requeue selected failed Task(s)" #~ msgstr "Διαγραφή επιλεγμένων εργασιών" # #, fuzzy #~ msgid "Transfer Rate" #~ msgstr "Μεταφορά" #, fuzzy #~ msgid "Can't load the image." #~ msgstr "εικόνα ." #, fuzzy #~ msgid "Unknown Content Type" #~ msgstr "" #~ "#-#-#-#-# eel.HEAD.el.po (eel 2.0.4) #-#-#-#-#\n" #~ "Άγνωστο\n" #~ "#-#-#-#-# ggv.HEAD.el.po (ggv 1.1.0) #-#-#-#-#\n" #~ "Άγνωστο\n" #~ "#-#-#-#-# gnome-applets.gnome-2-2.el.po (gnome-applets 2.0.3) #-#-#-#-" #~ "#\n" #~ "Άγνωστη\n" #~ "#-#-#-#-# gnome-desktop.HEAD.el.po (gnome-desktop 2.0.5) #-#-#-#-#\n" #~ "Άγνωστο\n" #~ "#-#-#-#-# gnome-media.HEAD.el.po (gnome-media 2.0.2.5) #-#-#-#-#\n" #~ "Άγνωστο\n" #~ "#-#-#-#-# gnome-session.HEAD.el.po (gnome-session 2.0.5) #-#-#-#-#\n" #~ "Άγνωστο\n" #~ "#-#-#-#-# nautilus.HEAD.el.po (nautilus 2.0.7) #-#-#-#-#\n" #~ "Άγνωστο\n" #~ "#-#-#-#-# nautilus-media.HEAD.el.po (nautilus-media VERSION) #-#-#-#-#\n" #~ "Άγνωστο" #, fuzzy #~ msgid "Trying to open URL `%s' with `%s'" #~ msgstr "URL" #, fuzzy #~ msgid "Bozos" #~ msgstr "Βιβλίο" #, fuzzy #~ msgid "Spam" #~ msgstr "Σαμόα" #, fuzzy #~ msgid "Message-ID doesn't match regular expression `%s'" #~ msgstr "" #~ "Μήνυμα #-#-#-#-# bug-buddy.HEAD.el.po (bug-buddy 2.0.6) #-#-#-#-#\n" #~ "ID\n" #~ "#-#-#-#-# libgnomeui.HEAD.el.po (libgnomeui 2.0.4) #-#-#-#-#\n" #~ "ΤΑΥΤΌΤΗΤΑ\n" #~ "#-#-#-#-# procman.HEAD.el.po (gnome-system-monitor 2.0.2) #-#-#-#-#\n" #~ "ID κανονικό" #, fuzzy #~ msgid "Message-ID matches regular expression `%s'" #~ msgstr "" #~ "Μήνυμα #-#-#-#-# bug-buddy.HEAD.el.po (bug-buddy 2.0.6) #-#-#-#-#\n" #~ "ID\n" #~ "#-#-#-#-# libgnomeui.HEAD.el.po (libgnomeui 2.0.4) #-#-#-#-#\n" #~ "ΤΑΥΤΌΤΗΤΑ\n" #~ "#-#-#-#-# procman.HEAD.el.po (gnome-system-monitor 2.0.2) #-#-#-#-#\n" #~ "ID κανονικό" #, fuzzy #~ msgid "Message-ID matches phrase `%s'" #~ msgstr "" #~ "Μήνυμα #-#-#-#-# bug-buddy.HEAD.el.po (bug-buddy 2.0.6) #-#-#-#-#\n" #~ "ID\n" #~ "#-#-#-#-# libgnomeui.HEAD.el.po (libgnomeui 2.0.4) #-#-#-#-#\n" #~ "ΤΑΥΤΌΤΗΤΑ\n" #~ "#-#-#-#-# procman.HEAD.el.po (gnome-system-monitor 2.0.2) #-#-#-#-#\n" #~ "ID" #, fuzzy #~ msgid "Article has not been saved or decoded" #~ msgstr "Το έγγραφο δεν αποθηκεύτηκε." #, fuzzy #~ msgid "Article has been saved or decoded" #~ msgstr "Δεν έχει επιλεγεί διακομιστής" #, fuzzy #~ msgid "Thread isn't watched" #~ msgstr "Δεν έχει ταίριασμα" # gconf/gconf-internals.c:2404 #, fuzzy #~ msgid "Can't write filters to `%s': %s" #~ msgstr "Αδύνατη η εγγραφή στο αρχείο `%s': %s" #, fuzzy #~ msgid "_Play a Sound:" #~ msgstr "" #~ "#-#-#-#-# gnome-media.HEAD.el.po (gnome-media 2.0.2.5) #-#-#-#-#\n" #~ "Αναπαραγωγή\n" #~ "#-#-#-#-# nautilus.HEAD.el.po (nautilus 2.0.7) #-#-#-#-#\n" #~ "Εκτέλεση Ήχος:" # #, fuzzy #~ msgid "Test Sound" #~ msgstr "Δοκιμή" #, fuzzy #~ msgid "Loading group `%s'" #~ msgstr "ομάδα" #, fuzzy #~ msgid "Saving group `%s'" #~ msgstr "Αποθηκεύεται ομάδα" #, fuzzy #~ msgid "Refreshing group `%s'" #~ msgstr "ομάδα" #, fuzzy #~ msgid "Apply the Selected Rule to the Selected Groups." #~ msgstr "Εφαρμογή." #, fuzzy #~ msgid "Apply the Selected Rule to all Subscribed Groups." #~ msgstr "Εφαρμογή." #, fuzzy #~ msgid "Make this the default profile for news" #~ msgstr "Να γίνει αυτό το μόντεμ το εξ'ορισμού μόντεμ" #, fuzzy #~ msgid "Make this the default profile for mail" #~ msgstr "Να γίνει αυτό το μόντεμ το εξ'ορισμού μόντεμ" # #~ msgid "Reply To:" #~ msgstr "Απάντηση Σε:" #, fuzzy #~ msgid "Copy From" #~ msgstr "Αντιγραφή" # gconf/gconf-internals.c:2404 #, fuzzy #~ msgid "Can't write profiles to `%s': %s" #~ msgstr "Αδύνατη η εγγραφή στο αρχείο `%s': %s" pan-0.162/po/en_CA.po000066400000000000000000002570251475412772400142530ustar00rootroot00000000000000# Canadian English translation for pan # Copyright (C) 2004-2005 Adam Weinberger and the GNOME Foundation # This file is distributed under the same licence as the pan package. # Adam Weinberger , 2004, 2005. # # msgid "" msgstr "" "Project-Id-Version: pan\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-04-04 20:58+0200\n" "PO-Revision-Date: 2005-03-15 22:33-0400\n" "Last-Translator: Adam Weinberger \n" "Language-Team: Canadian English \n" "Language: en_CA\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../pan.desktop.in.h:1 msgid "Pan Newsreader" msgstr "Pan Newsreader" #: ../pan.desktop.in.h:2 msgid "Read and Post Usenet Articles" msgstr "" #: ../pan/data/article-cache.cc:143 ../pan/data/encode-cache.cc:62 #, c-format msgid "Error opening directory: \"%s\": %s" msgstr "Error opening directory: \"%s\": %s" #: ../pan/data/article-cache.cc:231 ../pan/data/article-cache.cc:242 #: ../pan/data-impl/data-io.cc:187 ../pan/data-impl/data-io.cc:211 #: ../pan/gui/post-ui.cc:1639 #, c-format msgid "Unable to save \"%s\" %s" msgstr "Unable to save \"%s\" %s" #: ../pan/data/article-cache.cc:355 #, c-format msgid "Error opening file \"%s\" %s" msgstr "Error opening file \"%s\" %s" #: ../pan/data/article-cache.cc:386 ../pan/data-impl/profiles.cc:174 #: ../pan/data-impl/server.cc:436 ../pan/general/file-util.cc:298 #: ../pan/gui/post-ui.cc:609 ../pan/gui/task-pane.cc:691 #, c-format msgid "Error reading file \"%s\": %s" msgstr "Error reading file \"%s\": %s" #: ../pan/data/cert-store.cc:238 #, fuzzy, c-format msgid "Error opening SSL certificate directory: \"%s\": %s" msgstr "Error opening directory: \"%s\": %s" #: ../pan/data/cert-store.cc:270 #, c-format msgid "Succesfully added %d SSL PEM certificate(s) to Certificate Store." msgstr "" #. load_group_descriptions (*_data_io); #: ../pan/data-impl/data-impl.cc:109 #, c-format msgid "Loaded data backend in %.1f seconds" msgstr "Loaded data backend in %.1f seconds" #: ../pan/data-impl/data-impl.cc:140 msgid "Pan newsreader server passwords" msgstr "" #: ../pan/data-impl/groups.cc:94 #, c-format msgid "Skipping newsrc file for server \"%s\"" msgstr "Skipping newsrc file for server \"%s\"" #: ../pan/data-impl/headers.cc:606 #, c-format msgid "Expired %lu old articles from \"%s\"" msgstr "Expired %lu old articles from \"%s\"" #: ../pan/data-impl/headers.cc:613 #, c-format msgid "" "Unsupported data version for %s headers: %d.\n" "Are you running an old version of Pan by accident?" msgstr "" "Unsupported data version for %s headers: %d.\n" "Are you running an old version of Pan by accident?" #: ../pan/data-impl/headers.cc:628 #, c-format msgid "Loaded %lu articles for \"%s\" in %.1f seconds (%.0f per second)" msgstr "Loaded %lu articles for \"%s\" in %.1f seconds (%.0f per second)" #: ../pan/data-impl/headers.cc:857 #, fuzzy, c-format msgid "" "Saved %lu parts, %lu articles in \"%s\" in %.1f seconds (%.0f articles/sec)" msgstr "Saved %lu parts, %lu articles in \"%s\" in %.1f seconds (%.0f art/sec)" #: ../pan/data-impl/headers.cc:1173 #, c-format msgid "Added %lu articles to %s." msgstr "Added %lu articles to %s." #: ../pan/data-impl/server.cc:234 #, c-format msgid "There seems to be no Password set for Server %s." msgstr "" #: ../pan/data-impl/server.cc:238 msgid "The Gnome keyring denied access to the Passwords." msgstr "" #: ../pan/data-impl/xover.cc:239 #, fuzzy, c-format msgid "Error reading from %s: unknown group \"%s\"" msgstr "Error reading from socket: %s" #. build the locale strings #: ../pan/general/e-util.cc:213 msgid "%l:%M %p" msgstr "%H:%M" #: ../pan/general/e-util.cc:214 msgid "Today %l:%M %p" msgstr "Today %H:%M" #: ../pan/general/e-util.cc:215 msgid "%a %l:%M %p" msgstr "%a %H:%M" #: ../pan/general/e-util.cc:216 msgid "%b %d %l:%M %p" msgstr "%d %b %H:%M" #: ../pan/general/e-util.cc:217 msgid "%b %d %Y" msgstr "%d %b %Y" #: ../pan/general/e-util.cc:242 msgid "?" msgstr "?" #: ../pan/general/text-match.cc:193 #, c-format msgid "Can't use regular expression \"%s\": %s" msgstr "Cannot use regular expression \"%s\": %s" #: ../pan/general/utf8-utils.cc:213 msgid "Couldn't determine article encoding. Non-UTF8 characters were removed." msgstr "" "Couldn't determine article encoding. Non-UTF8 characters were removed." #: ../pan/gui/actions.cc:274 ../pan/gui/post-ui.cc:417 msgid "_File" msgstr "_File" #: ../pan/gui/actions.cc:275 ../pan/gui/post-ui.cc:418 msgid "_Edit" msgstr "_Edit" #: ../pan/gui/actions.cc:276 ../pan/gui/prefs-ui.cc:1064 msgid "_Layout" msgstr "_Layout" #: ../pan/gui/actions.cc:277 msgid "_Group Pane" msgstr "_Group Pane" #: ../pan/gui/actions.cc:278 msgid "_Header Pane" msgstr "_Header Pane" #: ../pan/gui/actions.cc:279 msgid "_Body Pane" msgstr "_Body Pane" #: ../pan/gui/actions.cc:280 msgid "_View" msgstr "_View" #: ../pan/gui/actions.cc:281 msgid "Filte_r" msgstr "Filte_r" #: ../pan/gui/actions.cc:282 msgid "_Go" msgstr "_Go" #: ../pan/gui/actions.cc:283 ../pan/gui/prefs-ui.cc:1091 msgid "_Actions" msgstr "_Actions" #: ../pan/gui/actions.cc:284 msgid "_Articles" msgstr "_Articles" #: ../pan/gui/actions.cc:285 msgid "G_roups" msgstr "G_roups" #: ../pan/gui/actions.cc:286 ../pan/gui/actions.cc:287 msgid "_Post" msgstr "_Post" #: ../pan/gui/actions.cc:288 msgid "_Help" msgstr "_Help" #: ../pan/gui/actions.cc:291 msgid "_Read Group" msgstr "_Read Group" #: ../pan/gui/actions.cc:292 #, fuzzy msgid "Read Group" msgstr "_Read Group" #: ../pan/gui/actions.cc:296 #, fuzzy msgid "_Mark Selected Groups Read" msgstr "Mark Selected Group Read" #: ../pan/gui/actions.cc:297 #, fuzzy msgid "Mark Selected Groups Read" msgstr "Mark Selected Group Read" #: ../pan/gui/actions.cc:301 #, fuzzy msgid "_Delete Selected Groups' Articles" msgstr "Delete Selected Group's Articles" #: ../pan/gui/actions.cc:302 #, fuzzy msgid "Delete Selected Groups' Articles" msgstr "Delete Selected Group's Articles" #: ../pan/gui/actions.cc:306 #, fuzzy msgid "Get New _Headers in Selected Groups" msgstr "Get New _Headers in Selected Group" #: ../pan/gui/actions.cc:307 #, fuzzy msgid "Get New Headers in Selected Groups" msgstr "Get New _Headers in Selected Group" #: ../pan/gui/actions.cc:311 ../pan/gui/actions.cc:316 msgid "Get New _Headers in Subscribed Groups" msgstr "Get New _Headers in Subscribed Groups" #: ../pan/gui/actions.cc:312 ../pan/gui/actions.cc:317 #, fuzzy msgid "Get New Headers in Subscribed Groups" msgstr "Get New _Headers in Subscribed Groups" #: ../pan/gui/actions.cc:321 #, fuzzy msgid "Get _Headers..." msgstr "Get _Headers ..." #: ../pan/gui/actions.cc:322 #, fuzzy msgid "Get Headers..." msgstr "Get _Headers ..." #: ../pan/gui/actions.cc:326 ../pan/gui/actions.cc:327 msgid "Refresh Group List" msgstr "Refresh Group List" #: ../pan/gui/actions.cc:331 msgid "_Subscribe" msgstr "_Subscribe" #: ../pan/gui/actions.cc:332 #, fuzzy msgid "Subscribe" msgstr "_Subscribe" #: ../pan/gui/actions.cc:336 msgid "_Unsubscribe" msgstr "_Unsubscribe" #: ../pan/gui/actions.cc:337 #, fuzzy msgid "Unsubscribe" msgstr "_Unsubscribe" #: ../pan/gui/actions.cc:341 #, fuzzy msgid "_Save Articles..." msgstr "_Save Articles..." #: ../pan/gui/actions.cc:342 #, fuzzy msgid "Save Articles..." msgstr "_Save Articles..." #: ../pan/gui/actions.cc:346 #, fuzzy msgid "Save Articles from Selected _NZB..." msgstr "_Save Articles..." #: ../pan/gui/actions.cc:347 #, fuzzy msgid "Save Articles from Selected NZB" msgstr "_Save Articles..." #: ../pan/gui/actions.cc:351 #, fuzzy msgid "Save Articles to an NZB _File..." msgstr "_Save Articles..." #: ../pan/gui/actions.cc:352 #, fuzzy msgid "Save Articles to an NZB File" msgstr "_Save Articles..." #: ../pan/gui/actions.cc:356 ../pan/gui/actions.cc:357 msgid "Print" msgstr "" #: ../pan/gui/actions.cc:361 #, fuzzy msgid "_Import NZB Files..." msgstr "_Import NZB Files..." #: ../pan/gui/actions.cc:366 msgid "_Cancel Last Task" msgstr "_Cancel Last Task" #: ../pan/gui/actions.cc:371 msgid "_Task Manager" msgstr "_Task Manager" #: ../pan/gui/actions.cc:376 msgid "_Event Log" msgstr "_Event Log" #: ../pan/gui/actions.cc:381 msgid "_Quit" msgstr "_Quit" #: ../pan/gui/actions.cc:386 msgid "Select _All Articles" msgstr "Select _All Articles" #: ../pan/gui/actions.cc:391 msgid "_Deselect All Articles" msgstr "_Deselect All Articles" #: ../pan/gui/actions.cc:396 msgid "Add Su_bthreads to Selection" msgstr "Add Su_bthreads to Selection" #: ../pan/gui/actions.cc:401 msgid "Add _Threads to Selection" msgstr "Add _Threads to Selection" #: ../pan/gui/actions.cc:406 msgid "Add _Similar Articles to Selection" msgstr "Add _Similar Articles to Selection" #: ../pan/gui/actions.cc:411 msgid "Select Article _Body" msgstr "Select Article _Body" #: ../pan/gui/actions.cc:416 msgid "Edit _Preferences" msgstr "Edit _Preferences" #: ../pan/gui/actions.cc:421 #, fuzzy msgid "Edit Selected _Group's Preferences" msgstr "Edit _Group Preferences" #: ../pan/gui/actions.cc:426 ../pan/gui/post-ui.cc:434 msgid "Edit P_osting Profiles" msgstr "Edit P_osting Profiles" #: ../pan/gui/actions.cc:431 msgid "Edit _News Servers" msgstr "Edit _News Servers" #: ../pan/gui/actions.cc:436 msgid "Jump to _Group Tab" msgstr "Jump to _Group Tab" #: ../pan/gui/actions.cc:441 msgid "Jump to _Header Tab" msgstr "Jump to _Header Tab" #: ../pan/gui/actions.cc:446 msgid "Jump to _Body Tab" msgstr "Jump to _Body Tab" #: ../pan/gui/actions.cc:451 msgid "_Rot13 Selected Text" msgstr "_Rot13 Selected Text" #: ../pan/gui/actions.cc:456 msgid "Clear _Header Pane" msgstr "Clear _Header Pane" #: ../pan/gui/actions.cc:461 msgid "Clear _Body Pane" msgstr "Clear _Body Pane" #: ../pan/gui/actions.cc:466 msgid "Cache Article" msgstr "Cache Article" #: ../pan/gui/actions.cc:471 msgid "Read Article" msgstr "Read Article" #: ../pan/gui/actions.cc:476 #, fuzzy msgid "Show Article Information" msgstr "Profile Information" #: ../pan/gui/actions.cc:481 msgid "Read _More" msgstr "Read _More" #: ../pan/gui/actions.cc:482 msgid "Read More" msgstr "Read More" #: ../pan/gui/actions.cc:486 msgid "Read _Back" msgstr "Read _Back" #: ../pan/gui/actions.cc:487 msgid "Read Back" msgstr "Read Back" #: ../pan/gui/actions.cc:491 msgid "Next _Unread Group" msgstr "Next _Unread Group" #: ../pan/gui/actions.cc:496 msgid "Next _Group" msgstr "Next _Group" #: ../pan/gui/actions.cc:501 msgid "Next _Unread Article" msgstr "Next _Unread Article" #: ../pan/gui/actions.cc:502 msgid "Next Unread Article" msgstr "Next Unread Article" #: ../pan/gui/actions.cc:506 msgid "Next _Article" msgstr "Next _Article" #: ../pan/gui/actions.cc:507 #, fuzzy msgid "Next Article" msgstr "Next _Article" #: ../pan/gui/actions.cc:511 msgid "Next _Watched Article" msgstr "Next _Watched Article" #: ../pan/gui/actions.cc:516 msgid "Next Unread _Thread" msgstr "Next Unread _Thread" #: ../pan/gui/actions.cc:517 msgid "Next Unread Thread" msgstr "Next Unread Thread" #: ../pan/gui/actions.cc:521 msgid "Next Threa_d" msgstr "Next Threa_d" #: ../pan/gui/actions.cc:526 msgid "Pre_vious Article" msgstr "Pre_vious Article" #: ../pan/gui/actions.cc:531 msgid "Previous _Thread" msgstr "Previous _Thread" #: ../pan/gui/actions.cc:536 msgid "_Parent Article" msgstr "_Parent Article" #: ../pan/gui/actions.cc:541 msgid "Ignore _Author" msgstr "Ignore _Author" #: ../pan/gui/actions.cc:545 msgid "_Watch Thread" msgstr "_Watch Thread" #: ../pan/gui/actions.cc:550 msgid "_Ignore Thread" msgstr "_Ignore Thread" #: ../pan/gui/actions.cc:555 ../pan/gui/actions.cc:556 #, fuzzy msgid "_Toggle Flag On/Off for Thread" msgstr "_Watch Thread" #: ../pan/gui/actions.cc:560 ../pan/gui/actions.cc:561 #, fuzzy msgid "_Turn Flag Off for Thread" msgstr "_Watch Thread" #: ../pan/gui/actions.cc:565 ../pan/gui/actions.cc:566 #, fuzzy msgid "_Select All Flagged Threads" msgstr "Next Unread Thread" #: ../pan/gui/actions.cc:570 ../pan/gui/actions.cc:571 #, fuzzy msgid "_Go to Next Flagged Thread" msgstr "Next Unread Thread" #: ../pan/gui/actions.cc:575 ../pan/gui/actions.cc:576 #, fuzzy msgid "_Go to Last Flagged Thread" msgstr "Next Unread Thread" #: ../pan/gui/actions.cc:580 ../pan/gui/actions.cc:581 #, fuzzy msgid "_Invert Selection" msgstr "Add _Threads to Selection" #: ../pan/gui/actions.cc:585 #, fuzzy msgid "Edit Article's Watch/Ignore/Score..." msgstr "Edit Article's Watch/Ignore/Score..." #: ../pan/gui/actions.cc:590 #, fuzzy msgid "Add a _Scoring Rule..." msgstr "_Add a _Scoring Rule..." #: ../pan/gui/actions.cc:595 #, fuzzy msgid "Cance_l Article..." msgstr "Cance_l Article..." #: ../pan/gui/actions.cc:600 #, fuzzy msgid "_Supersede Article..." msgstr "_Supersede Article..." #: ../pan/gui/actions.cc:605 msgid "_Delete Article" msgstr "_Delete Article" #: ../pan/gui/actions.cc:610 #, fuzzy msgid "Clear Article Cache" msgstr "Mark Article as Read" #: ../pan/gui/actions.cc:615 msgid "_Mark Article as Read" msgstr "_Mark Article as Read" #: ../pan/gui/actions.cc:620 msgid "Mark Article as _Unread" msgstr "Mark Article as _Unread" #: ../pan/gui/actions.cc:626 #, fuzzy msgid "_Mark Thread as Read" msgstr "_Mark Article as Read" #: ../pan/gui/actions.cc:631 #, fuzzy msgid "Mark Thread as _Unread" msgstr "Mark Article as _Unread" #: ../pan/gui/actions.cc:636 msgid "_Post to Newsgroup" msgstr "_Post to Newsgroup" #: ../pan/gui/actions.cc:637 msgid "Post to Newsgroup" msgstr "Post to Newsgroup" #: ../pan/gui/actions.cc:641 #, fuzzy msgid "_Followup to Newsgroup" msgstr "_Followup to Newsgroup" #: ../pan/gui/actions.cc:642 msgid "Followup to Newsgroup" msgstr "Followup to Newsgroup" #: ../pan/gui/actions.cc:646 msgid "_Reply to Author in Mail" msgstr "_Reply to Author in Mail" #: ../pan/gui/actions.cc:651 msgid "_Pan Home Page" msgstr "_Pan Home Page" #: ../pan/gui/actions.cc:656 #, fuzzy msgid "Give _Feedback or Report a Bug..." msgstr "Give _Feedback or Report a Bug..." #: ../pan/gui/actions.cc:661 #, fuzzy msgid "_Tip Jar..." msgstr "_Tip Jar..." #: ../pan/gui/actions.cc:666 msgid "_About" msgstr "_About" #: ../pan/gui/actions.cc:671 msgid "Edit _SSL Certificates" msgstr "" #: ../pan/gui/actions.cc:685 msgid "_Thread Headers" msgstr "_Thread Headers" #: ../pan/gui/actions.cc:686 msgid "_Wrap Article Body" msgstr "_Wrap Article Body" #: ../pan/gui/actions.cc:687 msgid "Mute _Quoted Text" msgstr "Mute _Quoted Text" #: ../pan/gui/actions.cc:688 msgid "Show All _Headers in Body Pane" msgstr "Show All _Headers in Body Pane" #: ../pan/gui/actions.cc:689 msgid "Show _Smilies as Graphics" msgstr "Show _Smilies as Graphics" #: ../pan/gui/actions.cc:690 msgid "Show *Bold*, __Underlined__, and /Italic/" msgstr "Show *Bold*, __Underlined__, and /Italic/" #: ../pan/gui/actions.cc:691 msgid "Size Pictures to _Fit" msgstr "Size Pictures to _Fit" #: ../pan/gui/actions.cc:692 msgid "Use _Monospace Font" msgstr "Use _Monospace Font" #: ../pan/gui/actions.cc:693 msgid "Set Focus to Images" msgstr "" #: ../pan/gui/actions.cc:694 msgid "Highlight _URLs" msgstr "" #: ../pan/gui/actions.cc:697 msgid "_Work Online" msgstr "_Work Online" #: ../pan/gui/actions.cc:698 msgid "_Tabbed Layout" msgstr "_Tabbed Layout" #: ../pan/gui/actions.cc:699 msgid "Show Group _Pane" msgstr "Show Group _Pane" #: ../pan/gui/actions.cc:700 msgid "Show Hea_der Pane" msgstr "Show Hea_der Pane" #: ../pan/gui/actions.cc:701 msgid "Show Bod_y Pane" msgstr "Show Bod_y Pane" #: ../pan/gui/actions.cc:702 msgid "Show _Toolbar" msgstr "Show _Toolbar" #: ../pan/gui/actions.cc:703 #, fuzzy msgid "Abbreviate Group Names" msgstr "Abbreviate Newsgroup Names" #: ../pan/gui/actions.cc:705 msgid "Match Only _Unread Articles" msgstr "Match Only _Unread Articles" #: ../pan/gui/actions.cc:705 msgid "Match Only Unread Articles" msgstr "Match Only Unread Articles" #: ../pan/gui/actions.cc:706 msgid "Match Only _Cached Articles" msgstr "Match Only _Cached Articles" #: ../pan/gui/actions.cc:706 msgid "Match Only Cached Articles" msgstr "Match Only Cached Articles" #: ../pan/gui/actions.cc:707 msgid "Match Only _Complete Articles" msgstr "Match Only _Complete Articles" #: ../pan/gui/actions.cc:707 msgid "Match Only Complete Articles" msgstr "Match Only Complete Articles" #: ../pan/gui/actions.cc:708 msgid "Match Only _My Articles" msgstr "Match Only _My Articles" #: ../pan/gui/actions.cc:708 #, fuzzy msgid "Match Only My Articles" msgstr "Match Only _My Articles" #: ../pan/gui/actions.cc:709 msgid "Match Only _Watched Articles" msgstr "Match Only _Watched Articles" #: ../pan/gui/actions.cc:709 msgid "Match Only Watched Articles" msgstr "Match Only Watched Articles" #: ../pan/gui/actions.cc:711 msgid "Match Scores of 9999 (_Watched)" msgstr "Match Scores of 9999 (_Watched)" #: ../pan/gui/actions.cc:712 msgid "Match Scores of 5000...9998 (_High)" msgstr "Match Scores of 5000...9998 (_High)" #: ../pan/gui/actions.cc:713 msgid "Match Scores of 1...4999 (Me_dium)" msgstr "Match Scores of 1...4999 (Me_dium)" #: ../pan/gui/actions.cc:714 msgid "Match Scores of 0 (_Normal)" msgstr "Match Scores of 0 (_Normal)" #: ../pan/gui/actions.cc:715 msgid "Match Scores of -9998...-1 (_Low)" msgstr "Match Scores of -9998...-1 (_Low)" #: ../pan/gui/actions.cc:716 msgid "Match Scores of -9999 (_Ignored)" msgstr "Match Scores of -9999 (_Ignored)" #: ../pan/gui/actions.cc:718 msgid "Enable/Disable All _Rules" msgstr "" #: ../pan/gui/actions.cc:744 msgid "Show Matching _Articles" msgstr "Show Matching _Articles" #: ../pan/gui/actions.cc:745 msgid "Show Matching Articles' _Threads" msgstr "Show Matching Articles' _Threads" #: ../pan/gui/actions.cc:746 msgid "Show Matching Articles' _Subthreads" msgstr "Show Matching Articles' _Subthreads" #: ../pan/gui/body-pane.cc:1011 #, fuzzy, c-format msgid "Unnamed File" msgstr "Signature File" #: ../pan/gui/body-pane.cc:1092 ../pan/gui/gui.cc:1864 #: ../pan/gui/header-pane.cc:1188 ../pan/gui/header-pane.cc:1617 #: ../pan/gui/post-ui.cc:2496 ../pan/gui/prefs-ui.cc:833 #: ../pan/gui/score-add-ui.cc:139 msgid "Subject" msgstr "Subject" #: ../pan/gui/body-pane.cc:1094 ../pan/gui/gui.cc:1864 msgid "From" msgstr "From" #: ../pan/gui/body-pane.cc:1096 ../pan/gui/gui.cc:1865 #: ../pan/gui/header-pane.cc:1695 ../pan/gui/log-ui.cc:305 #: ../pan/gui/prefs-ui.cc:829 msgid "Date" msgstr "Date" #: ../pan/gui/body-pane.cc:1103 msgid "Newsgroups" msgstr "Newsgroups" #: ../pan/gui/body-pane.cc:1108 msgid "Followup-To" msgstr "Followup-To" #: ../pan/gui/body-pane.cc:1118 msgid "Reply-To" msgstr "Reply-To" #: ../pan/gui/body-pane.cc:1160 msgid " from " msgstr " from " #: ../pan/gui/body-pane.cc:1162 msgid " at " msgstr " at " #: ../pan/gui/body-pane.cc:1264 #, c-format msgid "" "This is a PGP-Signed message.\n" "\n" "Signer : %s ('%s')\n" "Valid until : %s\n" "Created on : %s" msgstr "" #: ../pan/gui/body-pane.cc:1269 msgid "always" msgstr "" #: ../pan/gui/body-pane.cc:1485 msgid "Copy _URL" msgstr "" #: ../pan/gui/body-pane.cc:1680 #, fuzzy msgid "Save attachment as ...." msgstr "Save Attachments" #: ../pan/gui/body-pane.cc:1683 #, fuzzy msgid "Save all attachments" msgstr "Save Attachments" #. add a toolbar for attachments #: ../pan/gui/body-pane.cc:1753 #, fuzzy msgid "Attachments" msgstr "Save _Attachments" #. update the titlebar #: ../pan/gui/dl-headers-ui.cc:106 ../pan/gui/gui.cc:973 #: ../pan/gui/gui.cc:1592 ../pan/gui/gui.cc:1893 #: ../pan/gui/score-add-ui.cc:602 msgid "Pan" msgstr "Pan" #: ../pan/gui/dl-headers-ui.cc:112 #, fuzzy, c-format msgid "%d Group" msgid_plural "%d Groups" msgstr[0] "Groups" msgstr[1] "Groups" #: ../pan/gui/dl-headers-ui.cc:135 msgid "Get the last N _days' headers: " msgstr "Get the last N _days' headers: " #: ../pan/gui/dl-headers-ui.cc:143 msgid "Get _new headers" msgstr "Get _new headers" #: ../pan/gui/dl-headers-ui.cc:147 msgid "Get _all headers" msgstr "Get _all headers" #: ../pan/gui/dl-headers-ui.cc:151 msgid "Get the _latest N headers: " msgstr "Get the _latest N headers: " #: ../pan/gui/e-action-combo-box.c:388 ../pan/gui/prefs-ui.cc:826 msgid "Action" msgstr "Action" #: ../pan/gui/e-action-combo-box.c:389 msgid "A GtkRadioAction" msgstr "" #: ../pan/gui/e-charset.c:51 ../pan/gui/task-pane.cc:518 msgid "Unknown" msgstr "Unknown" #: ../pan/gui/e-charset.c:52 msgid "Arabic" msgstr "" #: ../pan/gui/e-charset.c:53 msgid "Baltic" msgstr "Baltic" #: ../pan/gui/e-charset.c:54 msgid "Central European" msgstr "Central European" #: ../pan/gui/e-charset.c:55 #, fuzzy msgid "Chinese" msgstr "Lines" #: ../pan/gui/e-charset.c:56 msgid "Cyrillic" msgstr "Cyrillic" #: ../pan/gui/e-charset.c:57 msgid "Greek" msgstr "Greek" #: ../pan/gui/e-charset.c:58 msgid "Hebrew" msgstr "" #: ../pan/gui/e-charset.c:59 msgid "Japanese" msgstr "Japanese" #: ../pan/gui/e-charset.c:60 msgid "Korean" msgstr "Korean" #: ../pan/gui/e-charset.c:61 msgid "Thai" msgstr "" #: ../pan/gui/e-charset.c:62 msgid "Turkish" msgstr "Turkish" #: ../pan/gui/e-charset.c:63 msgid "Unicode" msgstr "Unicode" #: ../pan/gui/e-charset.c:64 #, fuzzy msgid "Western European" msgstr "Central European" #: ../pan/gui/e-charset.c:65 #, fuzzy msgid "Western European, New" msgstr "Western, New" #: ../pan/gui/e-charset.c:84 ../pan/gui/e-charset.c:85 #: ../pan/gui/e-charset.c:86 #, fuzzy msgid "Traditional" msgstr "Chinese Traditional" #: ../pan/gui/e-charset.c:87 ../pan/gui/e-charset.c:88 #: ../pan/gui/e-charset.c:89 ../pan/gui/e-charset.c:90 #, fuzzy msgid "Simplified" msgstr "Chinese Simplified" #: ../pan/gui/e-charset.c:93 #, fuzzy msgid "Ukrainian" msgstr "Cyrillic, Ukrainian" #: ../pan/gui/e-charset.c:96 msgid "Visual" msgstr "" #: ../pan/gui/e-charset-combo-box.c:93 ../pan/gui/gui.cc:2058 #: ../pan/gui/post-ui.cc:519 ../pan/gui/prefs-ui.cc:737 msgid "Character Encoding" msgstr "Character Encoding" #: ../pan/gui/e-charset-combo-box.c:117 msgid "Enter the character set to use" msgstr "" #: ../pan/gui/e-charset-combo-box.c:336 msgid "Other..." msgstr "" #: ../pan/gui/e-cte-dialog.c:78 #, fuzzy msgid "Default encoding" msgstr "Character _encoding:" #: ../pan/gui/e-cte-dialog.c:80 #, fuzzy msgid "7Bit Encoding" msgstr "Character Encoding" #: ../pan/gui/e-cte-dialog.c:82 #, fuzzy msgid "8Bit Encoding" msgstr "Character Encoding" #: ../pan/gui/e-cte-dialog.c:84 #, fuzzy msgid "BASE64 Encoding" msgstr "Character Encoding" #: ../pan/gui/e-cte-dialog.c:86 #, fuzzy msgid "Quoted-Printable Encoding" msgstr "Body Pane" #: ../pan/gui/group-pane.cc:500 #, fuzzy msgid "Group" msgstr "Groups" #: ../pan/gui/group-pane.cc:501 #, fuzzy msgid "Group (regex)" msgstr "Group Name" #: ../pan/gui/group-pane.cc:913 msgid "Subscribed Groups" msgstr "Subscribed Groups" #: ../pan/gui/group-pane.cc:914 msgid "Other Groups" msgstr "Other Groups" #: ../pan/gui/group-pane.cc:954 ../pan/gui/score-view-ui.cc:157 msgid "Name" msgstr "Name" #: ../pan/gui/group-prefs-dialog.cc:156 msgid "No Profiles defined in Edit|Posting Profiles." msgstr "No Profiles defined in Edit|Posting Profiles." #: ../pan/gui/group-prefs-dialog.cc:231 msgid "Pan: Group Preferences" msgstr "Pan: Group Preferences" #: ../pan/gui/group-prefs-dialog.cc:247 #, fuzzy, c-format msgid "Properties for Groups" msgstr "Properties for %s" #: ../pan/gui/group-prefs-dialog.cc:249 #, c-format msgid "Properties for %s" msgstr "Properties for %s" #: ../pan/gui/group-prefs-dialog.cc:257 msgid "Character _encoding:" msgstr "Character _encoding:" #: ../pan/gui/group-prefs-dialog.cc:259 msgid "Directory for Saving Attachments" msgstr "Directory for Saving Attachments" #: ../pan/gui/group-prefs-dialog.cc:269 msgid "Directory for _saving attachments:" msgstr "Directory for _saving attachments:" #: ../pan/gui/group-prefs-dialog.cc:271 msgid "Posting _profile:" msgstr "Posting _profile:" #: ../pan/gui/group-prefs-dialog.cc:277 msgid "Spellchecker _language:" msgstr "" #: ../pan/gui/gui.cc:273 msgid "Open the Task Manager" msgstr "Open the Task Manager" #: ../pan/gui/gui.cc:301 msgid "Open the Event Log" msgstr "Open the Event Log" #: ../pan/gui/gui.cc:561 msgid "Save NZB's Files" msgstr "" #: ../pan/gui/gui.cc:588 msgid "Untitled.nzb" msgstr "" #: ../pan/gui/gui.cc:590 #, fuzzy msgid "Save NZB File as..." msgstr "_Import NZB Files..." #: ../pan/gui/gui.cc:757 #, fuzzy msgid "Import NZB Files" msgstr "Import NZB File(s)" #: ../pan/gui/gui.cc:765 ../pan/gui/post-ui.cc:3197 #, fuzzy msgid "NZB Files" msgstr "Files" #: ../pan/gui/gui.cc:770 #, fuzzy msgid "All Files" msgstr "Files" #: ../pan/gui/gui.cc:1258 msgid "Unable to supersede article." msgstr "Unable to supersede article." #: ../pan/gui/gui.cc:1259 ../pan/gui/gui.cc:1333 msgid "The article doesn't match any of your posting profiles." msgstr "The article doesn't match any of your posting profiles." #: ../pan/gui/gui.cc:1306 msgid "Revise and send this article to replace the old one." msgstr "Revise and send this article to replace the old one." #: ../pan/gui/gui.cc:1307 ../pan/gui/gui.cc:1370 msgid "Be patient! It will take time for your changes to take effect." msgstr "Be patient! It will take time for your changes to take effect." #: ../pan/gui/gui.cc:1332 msgid "Unable to cancel article." msgstr "Unable to cancel article." #: ../pan/gui/gui.cc:1369 msgid "Send this article to ask your server to cancel your other one." msgstr "Send this article to ask your server to cancel your other one." #: ../pan/gui/gui.cc:1387 #, fuzzy msgid "You marked some articles for deletion" msgstr "Add _Similar Articles to Selection" #: ../pan/gui/gui.cc:1388 msgid "Are you sure you want to delete them?" msgstr "" #: ../pan/gui/gui.cc:1413 #, fuzzy msgid "Always trust" msgstr "Run _Editor" #: ../pan/gui/gui.cc:1416 msgid "Do you want to accept it permanently (deletable afterwards) ?" msgstr "" #: ../pan/gui/gui.cc:1595 #, fuzzy msgid "Copyright \\u00A9 2002-2012 Charles Kerr and others" msgstr "Copyright © 2002-2006 Charles Kerr" #: ../pan/gui/gui.cc:1600 msgid "translator-credits" msgstr "Adam Weinberger " #: ../pan/gui/gui.cc:1709 msgid "_1. Group Pane" msgstr "_1. Group Pane" #: ../pan/gui/gui.cc:1710 msgid "_2. Header Pane" msgstr "_2. Header Pane" #: ../pan/gui/gui.cc:1711 msgid "_3. Body Pane" msgstr "_3. Body Pane" #: ../pan/gui/gui.cc:1800 ../pan/gui/gui.cc:1815 #, fuzzy msgid " Bytes" msgstr "Bytes" #: ../pan/gui/gui.cc:1803 msgid " KB" msgstr "" #: ../pan/gui/gui.cc:1806 msgid " MB" msgstr "" #: ../pan/gui/gui.cc:1809 msgid " GB" msgstr "" #: ../pan/gui/gui.cc:1812 msgid " TB" msgstr "" #: ../pan/gui/gui.cc:1844 #, fuzzy, c-format msgid "This article is complete with %d part." msgid_plural "This article has all %d parts." msgstr[0] "the article has attachments" msgstr[1] "the article has attachments" #: ../pan/gui/gui.cc:1846 #, fuzzy, c-format msgid "This article is missing %d part." msgid_plural "This article is missing %d of its %d parts:" msgstr[0] "the article has attachments" msgstr[1] "the article has attachments" #: ../pan/gui/gui.cc:1865 ../pan/gui/header-pane.cc:1190 msgid "Message-ID" msgstr "Message-ID" #: ../pan/gui/gui.cc:1866 ../pan/gui/header-pane.cc:1665 #: ../pan/gui/prefs-ui.cc:830 msgid "Lines" msgstr "Lines" #: ../pan/gui/gui.cc:1866 msgid "Size" msgstr "" #: ../pan/gui/gui.cc:1867 ../pan/gui/header-pane.cc:1680 #: ../pan/gui/prefs-ui.cc:828 msgid "Bytes" msgstr "Bytes" #: ../pan/gui/gui.cc:1917 msgid "" "Error loading iconv library. Some Charsets in the GUI will not be able to be " "encoded." msgstr "" #: ../pan/gui/gui.cc:2059 #, fuzzy msgid "Body Pane Encoding" msgstr "Body Pane" #: ../pan/gui/gui.cc:2090 ../pan/gui/task-pane.cc:569 #, c-format msgid "Offline" msgstr "Offline" #: ../pan/gui/gui.cc:2094 #, fuzzy, c-format msgid "Closing %d connection" msgid_plural "Closing %d connections" msgstr[0] "Closing %d connections" msgstr[1] "Closing %d connections" #: ../pan/gui/gui.cc:2096 ../pan/gui/gui.cc:2126 #, c-format msgid "No Connections" msgstr "No Connections" #: ../pan/gui/gui.cc:2100 #, c-format msgid "Connecting" msgstr "Connecting" #: ../pan/gui/gui.cc:2113 #, c-format msgid "%s: %d idle, %d active @ %.1f KiBps" msgstr "%s: %d idle, %d active @ %.1f KiBps" #: ../pan/gui/gui.cc:2169 #, c-format msgid "No Tasks" msgstr "No Tasks" #: ../pan/gui/gui.cc:2171 ../pan/gui/prefs-ui.cc:1047 msgid "Tasks" msgstr "Tasks" #: ../pan/gui/gui.cc:2182 ../pan/gui/task-pane.cc:435 #, c-format msgid "%lu tasks, %s, %.1f KiBps, ETA %d:%02d:%02d" msgstr "%lu tasks, %s, %.1f KiBps, ETA %d:%02d:%02d" #: ../pan/gui/gui.cc:2234 msgid "" "Pan is now offline. Please see \"File|Event Log\" and correct the problem, " "then use \"File|Work Online\" to continue." msgstr "" "Pan is now offline. Please see \"File|Event Log\" and correct the problem, " "then use \"File|Work Online\" to continue." #: ../pan/gui/header-pane.cc:1186 msgid "Subject or Author" msgstr "Subject or Author" #: ../pan/gui/header-pane.cc:1187 #, fuzzy msgid "Sub or Auth (regex)" msgstr "Subject or Author" #: ../pan/gui/header-pane.cc:1189 ../pan/gui/header-pane.cc:1649 #: ../pan/gui/prefs-ui.cc:827 ../pan/gui/score-add-ui.cc:140 msgid "Author" msgstr "Author" #: ../pan/gui/header-pane.cc:1634 ../pan/gui/prefs-ui.cc:831 msgid "Score" msgstr "Score" #: ../pan/gui/log-ui.cc:103 msgid "Save Event List" msgstr "Save Event List" #: ../pan/gui/log-ui.cc:256 msgid "Pan: Events" msgstr "Pan: Events" #: ../pan/gui/log-ui.cc:315 msgid "Message" msgstr "Message" #: ../pan/gui/pan.cc:330 msgid "Maximize" msgstr "" #: ../pan/gui/pan.cc:383 msgid "An Error has occurred!" msgstr "" #: ../pan/gui/pan.cc:397 #, fuzzy msgid "New Articles!" msgstr "Next _Article" #: ../pan/gui/pan.cc:398 msgid "" "There are new\n" "articles available." msgstr "" #: ../pan/gui/pan.cc:465 msgid "Toggle on/offline" msgstr "" #: ../pan/gui/pan.cc:513 msgid "" "Thank you for trying Pan!\n" " \n" "To start newsreading, first Add a Server." msgstr "" "Thank you for trying Pan!\n" " \n" "To start newsreading, first Add a Server." #: ../pan/gui/pan.cc:595 #, fuzzy msgid "" "General Options\n" " -h, --help Show this usage page.\n" " --verbose Be verbose (in non-GUI mode).\n" "\n" "URL Options\n" " --no-gui On news:message-id, dump the article to stdout.\n" "\n" "NZB Batch Options\n" " --nzb file1 file2 ... Process nzb files without launching all of Pan.\n" " -o path, --output=path Path to save attachments listed in the nzb " "files.\n" " --no-gui Only show console output, not the download " "queue.\n" msgstr "" "General Options\n" " -h, --help Show this usage page.\n" "\n" "URL Options\n" " news:message-id Show the specified article.\n" " news:group.name Show the specified newsgroup.\n" " --nogui On news:message-id, dump the article to stdout.\n" "\n" "NZB Batch Options\n" " --nzb file1 file2 ... Process nzb files without launching all of Pan.\n" " -o path, --output=path Path to save attachments listed in the nzb " "files.\n" " --nogui Only show console output, not the download " "queue.\n" #: ../pan/gui/pan.cc:867 #, fuzzy msgid "Error: --no-gui used without nzb files or news:message-id." msgstr "Error: --nogui used without nzb files or news:message-id." #: ../pan/gui/pan.cc:871 #, c-format msgid "Pan %s started" msgstr "Pan %s started" #: ../pan/gui/pan.cc:890 msgid "Please configure Pan's news servers before using it as an nzb client." msgstr "Please configure Pan's news servers before using it as an nzb client." #: ../pan/gui/pan.cc:1009 msgid "Pan notification" msgstr "" #: ../pan/gui/post-ui.cc:186 #, c-format msgid "Upload Queue : %ld Tasks, %ld KB (~ %.2f MB) total ." msgstr "" #: ../pan/gui/post-ui.cc:286 #, fuzzy, c-format msgid "Error setting custom spellchecker: %s" msgstr "Error setting spellchecker: %s" #: ../pan/gui/post-ui.cc:291 ../pan/gui/post-ui.cc:300 #, c-format msgid "Error setting spellchecker: %s" msgstr "Error setting spellchecker: %s" #: ../pan/gui/post-ui.cc:419 msgid "_Profile" msgstr "_Profile" #: ../pan/gui/post-ui.cc:420 msgid "Set Editor" msgstr "Set Editor" #: ../pan/gui/post-ui.cc:422 msgid "_Send Article" msgstr "_Send Article" #: ../pan/gui/post-ui.cc:422 msgid "Send Article Now" msgstr "Send Article Now" #: ../pan/gui/post-ui.cc:423 #, fuzzy msgid "_Send and Save Articles to NZB" msgstr "Pan: Save Articles" #: ../pan/gui/post-ui.cc:423 #, fuzzy msgid "Send and Save Articles to NZB" msgstr "Pan: Save Articles" #: ../pan/gui/post-ui.cc:424 #, fuzzy msgid "Set Character _Encoding..." msgstr "Character _Encoding" #: ../pan/gui/post-ui.cc:425 #, fuzzy msgid "Set Content _Transfer Encoding..." msgstr "Character Encoding" #: ../pan/gui/post-ui.cc:426 msgid "Sa_ve Draft" msgstr "Sa_ve Draft" #: ../pan/gui/post-ui.cc:426 msgid "Save as a Draft for Future Posting" msgstr "Save as a Draft for Future Posting" #: ../pan/gui/post-ui.cc:427 msgid "_Open Draft..." msgstr "_Open Draft..." #: ../pan/gui/post-ui.cc:427 msgid "Open an Article Draft" msgstr "Open an Article Draft" #: ../pan/gui/post-ui.cc:432 msgid "_Rot13" msgstr "_Rot13" #: ../pan/gui/post-ui.cc:432 msgid "Rot13 Selected Text" msgstr "Rot13 Selected Text" #: ../pan/gui/post-ui.cc:433 msgid "Run _Editor" msgstr "Run _Editor" #: ../pan/gui/post-ui.cc:433 #, fuzzy msgid "Run Editor" msgstr "Run _Editor" #: ../pan/gui/post-ui.cc:435 msgid "Add _Files to Queue" msgstr "" #: ../pan/gui/post-ui.cc:435 msgid "Add Files to Queue" msgstr "" #: ../pan/gui/post-ui.cc:450 ../pan/gui/post-ui.cc:451 #, fuzzy msgid "Remove from Queue" msgstr "Remove a Server" #: ../pan/gui/post-ui.cc:455 ../pan/gui/post-ui.cc:456 #, fuzzy msgid "Clear List" msgstr "Clear the Filter" #: ../pan/gui/post-ui.cc:460 ../pan/gui/post-ui.cc:461 #, fuzzy msgid "Select Needed Parts" msgstr "Select _All Articles" #: ../pan/gui/post-ui.cc:465 ../pan/gui/post-ui.cc:466 #: ../pan/gui/task-pane.cc:636 ../pan/gui/task-pane.cc:637 msgid "Move Up" msgstr "" #: ../pan/gui/post-ui.cc:470 ../pan/gui/post-ui.cc:471 #: ../pan/gui/task-pane.cc:641 ../pan/gui/task-pane.cc:642 msgid "Move Down" msgstr "" #: ../pan/gui/post-ui.cc:475 ../pan/gui/post-ui.cc:476 msgid "Move to Top" msgstr "" #: ../pan/gui/post-ui.cc:480 ../pan/gui/post-ui.cc:481 msgid "Move to Bottom" msgstr "" #: ../pan/gui/post-ui.cc:488 msgid "_Wrap Text" msgstr "_Wrap Text" #: ../pan/gui/post-ui.cc:488 #, fuzzy msgid "Wrap Text" msgstr "_Wrap Text" #: ../pan/gui/post-ui.cc:489 #, fuzzy msgid "Always Run Editor" msgstr "Run _Editor" #: ../pan/gui/post-ui.cc:490 #, fuzzy msgid "Remember Character Encoding for this Group" msgstr "Remember _Charset for This Group" #: ../pan/gui/post-ui.cc:491 msgid "Thread Attached Replies" msgstr "" #: ../pan/gui/post-ui.cc:492 msgid "PGP-Encrypt the Message" msgstr "" #: ../pan/gui/post-ui.cc:493 msgid "PGP-Sign the Message" msgstr "" #: ../pan/gui/post-ui.cc:494 msgid "Check _Spelling" msgstr "Check _Spelling" #: ../pan/gui/post-ui.cc:520 msgid "New Article's Encoding:" msgstr "" #: ../pan/gui/post-ui.cc:530 #, fuzzy msgid "Content Transfer Encoding" msgstr "Character Encoding" #: ../pan/gui/post-ui.cc:531 msgid "New Article's Content Transfer Encoding:" msgstr "" #: ../pan/gui/post-ui.cc:711 msgid "Your changes will be lost!" msgstr "Your changes will be lost!" #: ../pan/gui/post-ui.cc:712 msgid "Close this window and lose your changes?" msgstr "Close this window and lose your changes?" #: ../pan/gui/post-ui.cc:757 ../pan/gui/post-ui.cc:796 msgid "There were problems with this post." msgstr "There were problems with this post." #: ../pan/gui/post-ui.cc:759 ../pan/gui/post-ui.cc:798 #: ../pan/gui/post-ui.cc:861 msgid "Go Back" msgstr "Go Back" #: ../pan/gui/post-ui.cc:761 msgid "Post Anyway" msgstr "Post Anyway" #. Prompt the user #: ../pan/gui/post-ui.cc:790 #, c-format msgid "" "Message uses characters not specified in charset '%s' - possibly use '%s' " msgstr "" "Message uses characters not specified in charset '%s' - possibly use '%s' " #: ../pan/gui/post-ui.cc:813 msgid "Go _Online" msgstr "Go _Online" #: ../pan/gui/post-ui.cc:860 msgid "The file queue is empty, so no files can be saved." msgstr "" #: ../pan/gui/post-ui.cc:1019 msgid "" "No posting server is set for this posting profile.\n" "Please edit the profile via Edit|Manage Posting Profiles." msgstr "" "No posting server is set for this posting profile.\n" "Please edit the profile via Edit|Manage Posting Profiles." #: ../pan/gui/post-ui.cc:1054 msgid "Pan is Offline." msgstr "Pan is Offline." #: ../pan/gui/post-ui.cc:1055 msgid "Go online to post the article?" msgstr "Go online to post the article?" #: ../pan/gui/post-ui.cc:1102 #, c-format msgid "" "Error signing/encrypting your message. Perhaps you misspelled your email-" "address (%s) ?" msgstr "" #: ../pan/gui/post-ui.cc:1267 msgid "Error opening temporary file" msgstr "Error opening temporary file" #: ../pan/gui/post-ui.cc:1279 #, c-format msgid "Error writing article to temporary file: %s" msgstr "Error writing article to temporary file: %s" #: ../pan/gui/post-ui.cc:1298 #, c-format msgid "Error parsing \"external editor\" command line: %s (Command was: %s)" msgstr "Error parsing \"external editor\" command line: %s (Command was: %s)" #: ../pan/gui/post-ui.cc:1339 #, c-format msgid "Error starting external editor: %s" msgstr "Error starting external editor: %s" #: ../pan/gui/post-ui.cc:1395 msgid "Open Draft Article" msgstr "Open Draft Article" #: ../pan/gui/post-ui.cc:1606 msgid "Save Draft Article" msgstr "Save Draft Article" #: ../pan/gui/post-ui.cc:1803 #, c-format msgid "Couldn't parse signature command \"%s\": %s" msgstr "Couldn't parse signature command \"%s\": %s" #: ../pan/gui/post-ui.cc:1839 msgid "Couldn't convert signature to UTF-8." msgstr "Couldn't convert signature to UTF-8." #: ../pan/gui/post-ui.cc:2334 msgid "F_rom" msgstr "F_rom" #: ../pan/gui/post-ui.cc:2352 msgid "_Subject" msgstr "_Subject" #: ../pan/gui/post-ui.cc:2365 msgid "_Newsgroups" msgstr "_Newsgroups" #: ../pan/gui/post-ui.cc:2379 #, fuzzy msgid "Mail _To" msgstr "_Mail To" #: ../pan/gui/post-ui.cc:2481 msgid "Delete from Queue" msgstr "" #: ../pan/gui/post-ui.cc:2494 msgid "No." msgstr "" #: ../pan/gui/post-ui.cc:2498 ../pan/gui/post-ui.cc:2592 #: ../pan/gui/post-ui.cc:2633 #, fuzzy msgid "Filename" msgstr "_File" #: ../pan/gui/post-ui.cc:2500 msgid "Size (kB)" msgstr "" #: ../pan/gui/post-ui.cc:2600 msgid "The current filename" msgstr "" #: ../pan/gui/post-ui.cc:2604 #, fuzzy msgid "Subject Line" msgstr "Subject" #: ../pan/gui/post-ui.cc:2612 msgid "The current Subject Line" msgstr "" #: ../pan/gui/post-ui.cc:2626 msgid "No. " msgstr "" #: ../pan/gui/post-ui.cc:2630 msgid "Enable/Disable" msgstr "" #: ../pan/gui/post-ui.cc:2664 #, fuzzy msgid "Follo_wup-To" msgstr "Followup-To" #. i18n: "poster" is a key used by many newsreaders. probably safest to keep this key in english. #: ../pan/gui/post-ui.cc:2673 msgid "" "The newsgroups where replies to your message should go. This is only needed " "if it differs from the \"Newsgroups\" header.\n" "\n" "To direct all replies to your email address, use \"Followup-To: poster\"" msgstr "" #: ../pan/gui/post-ui.cc:2679 #, fuzzy msgid "_Reply-To" msgstr "Reply-To" #: ../pan/gui/post-ui.cc:2687 msgid "" "The email account where mail replies to your posted message should go. This " "is only needed if it differs from the \"From\" header." msgstr "" #: ../pan/gui/post-ui.cc:2693 #, fuzzy msgid "_Custom Headers" msgstr "_More Headers" #: ../pan/gui/post-ui.cc:2717 msgid "Add \"_User-Agent\" header" msgstr "" #: ../pan/gui/post-ui.cc:2724 msgid "Add \"Message-_Id\" header" msgstr "" #: ../pan/gui/post-ui.cc:2855 #, fuzzy msgid "Select Parts" msgstr "Select _All Articles" #: ../pan/gui/post-ui.cc:2866 msgid "_Parts" msgstr "" #: ../pan/gui/post-ui.cc:3022 msgid "Post Article" msgstr "Post Article" #: ../pan/gui/post-ui.cc:3043 #, fuzzy msgid "_Message" msgstr "Message" #: ../pan/gui/post-ui.cc:3044 #, fuzzy msgid "More _Headers" msgstr "_More Headers" #: ../pan/gui/post-ui.cc:3045 msgid "File _Queue" msgstr "" #: ../pan/gui/post-ui.cc:3077 ../pan/gui/profiles-dialog.cc:478 #, no-c-format msgid "On %d, %n wrote:" msgstr "On %d, %n wrote:" #: ../pan/gui/post-ui.cc:3106 msgid "Add files to queue" msgstr "" #: ../pan/gui/post-ui.cc:3184 msgid "Save Upload Queue as NZB File" msgstr "" #: ../pan/gui/prefs.cc:343 #, c-format msgid "Couldn't parse %s color \"%s\"" msgstr "Couldn't parse %s colour \"%s\"" #: ../pan/gui/prefs-ui.cc:120 msgid "Grab Key" msgstr "" #: ../pan/gui/prefs-ui.cc:126 #, c-format msgid "" "Press the combination of the keys\n" "you want to use for \"%s\"." msgstr "" #: ../pan/gui/prefs-ui.cc:166 msgid "Edit Hotkey" msgstr "" #: ../pan/gui/prefs-ui.cc:228 msgid "Error: Shortkey is invalid!" msgstr "" #: ../pan/gui/prefs-ui.cc:244 msgid "Error: Shortkey already exists!" msgstr "" #: ../pan/gui/prefs-ui.cc:535 #, fuzzy msgid "Show only icons" msgstr "Profile Information" #: ../pan/gui/prefs-ui.cc:536 #, fuzzy msgid "Show only text" msgstr "Show Bod_y Pane" #: ../pan/gui/prefs-ui.cc:537 #, fuzzy msgid "Show icons and text" msgstr "Save Attachments" #: ../pan/gui/prefs-ui.cc:576 msgid "Use GNOME Preferences" msgstr "Use GNOME Preferences" #: ../pan/gui/prefs-ui.cc:577 msgid "Use KDE Preferences" msgstr "Use KDE Preferences" #: ../pan/gui/prefs-ui.cc:578 msgid "Use OS X Preferences" msgstr "Use OS X Preferences" #: ../pan/gui/prefs-ui.cc:579 msgid "Use Windows Preferences" msgstr "Use Windows Preferences" #: ../pan/gui/prefs-ui.cc:580 msgid "Custom Command:" msgstr "Custom Command:" #: ../pan/gui/prefs-ui.cc:632 #, fuzzy msgid "Disabled" msgstr "Enabled" #: ../pan/gui/prefs-ui.cc:633 msgid "Only new (Score == 0)" msgstr "" #: ../pan/gui/prefs-ui.cc:634 #, fuzzy msgid "9999 or more" msgstr "Scores of 9999 or more:" #: ../pan/gui/prefs-ui.cc:635 #, fuzzy msgid "5000 to 9998" msgstr "Scores from 5000 to 9998:" #: ../pan/gui/prefs-ui.cc:636 msgid "1 to 4999" msgstr "" #: ../pan/gui/prefs-ui.cc:637 #, fuzzy msgid "-9998 to -1" msgstr "Scores from -9998 to -1:" #: ../pan/gui/prefs-ui.cc:638 #, fuzzy msgid "-9999 or less" msgstr "Scores of -9999 or less:" #: ../pan/gui/prefs-ui.cc:702 #, c-format msgid "Select default global charset. Current setting : %s ." msgstr "" #: ../pan/gui/prefs-ui.cc:738 msgid "Global Charset Settings" msgstr "" #: ../pan/gui/prefs-ui.cc:832 ../pan/gui/task-pane.cc:770 msgid "State" msgstr "State" #: ../pan/gui/prefs-ui.cc:866 msgid "Enabled" msgstr "Enabled" #: ../pan/gui/prefs-ui.cc:870 msgid "Column Name" msgstr "Column Name" #: ../pan/gui/prefs-ui.cc:908 msgid "Pan: Preferences" msgstr "Pan: Preferences" #: ../pan/gui/prefs-ui.cc:923 msgid "Mouse" msgstr "Mouse" #: ../pan/gui/prefs-ui.cc:925 msgid "Single-click activates, rather than selects, _groups" msgstr "Single-click activates, rather than selects, _groups" #: ../pan/gui/prefs-ui.cc:927 msgid "Single-click activates, rather than selects, _articles" msgstr "Single-click activates, rather than selects, _articles" #: ../pan/gui/prefs-ui.cc:930 msgid "Groups" msgstr "Groups" #: ../pan/gui/prefs-ui.cc:932 msgid "Get new headers in subscribed groups on _startup" msgstr "Get new headers in subscribed groups on _startup" #: ../pan/gui/prefs-ui.cc:934 msgid "Get new headers when _entering group" msgstr "Get new headers when _entering group" #: ../pan/gui/prefs-ui.cc:936 msgid "Mark entire group _read when leaving group" msgstr "Mark entire group _read when leaving group" #: ../pan/gui/prefs-ui.cc:938 #, fuzzy msgid "Mark entire group read before getting _new headers" msgstr "Mark entire group _read when leaving group" #: ../pan/gui/prefs-ui.cc:940 msgid "E_xpand all threads when entering group" msgstr "E_xpand all threads when entering group" #: ../pan/gui/prefs-ui.cc:945 msgid "Articles" msgstr "Articles" #: ../pan/gui/prefs-ui.cc:947 msgid "Space selects next article rather than next unread" msgstr "Space selects next article rather than next unread" #: ../pan/gui/prefs-ui.cc:949 #, fuzzy msgid "Expand threads upon selection" msgstr "Add _Threads to Selection" #: ../pan/gui/prefs-ui.cc:951 msgid "Always show article deletion confirmation dialog" msgstr "" #: ../pan/gui/prefs-ui.cc:953 msgid "Smooth scrolling" msgstr "Smooth scrolling" #: ../pan/gui/prefs-ui.cc:958 #, fuzzy msgid "Article Cache" msgstr "Mark Article as Read" #: ../pan/gui/prefs-ui.cc:959 msgid "Clear article cache on shutdown" msgstr "" #: ../pan/gui/prefs-ui.cc:962 msgid "Size of article cache (in MiB) :" msgstr "" #: ../pan/gui/prefs-ui.cc:967 #, fuzzy msgid "File extension for Cached Articles: " msgstr "Next Watched Article" #: ../pan/gui/prefs-ui.cc:972 msgid "Tabs" msgstr "" #: ../pan/gui/prefs-ui.cc:977 msgid "_Behavior" msgstr "_Behaviour" #: ../pan/gui/prefs-ui.cc:977 #, fuzzy msgid "Behavior" msgstr "_Behaviour" #: ../pan/gui/prefs-ui.cc:983 #, fuzzy msgid "Language Settings" msgstr "Settings" #. systray and notify popup #: ../pan/gui/prefs-ui.cc:992 #, fuzzy msgid "System Tray Behavior" msgstr "_Behaviour" #: ../pan/gui/prefs-ui.cc:994 msgid "Hide to system tray" msgstr "" #: ../pan/gui/prefs-ui.cc:996 msgid "Start Pan minimized" msgstr "" #: ../pan/gui/prefs-ui.cc:999 #, fuzzy msgid "Show notifications" msgstr "Profile Information" #. allow multiple instances (seperate, not communicating with dbus) #: ../pan/gui/prefs-ui.cc:1004 #, fuzzy msgid "Startup Behavior" msgstr "_Behaviour" #: ../pan/gui/prefs-ui.cc:1006 msgid "Allow multiple instances of Pan" msgstr "" #: ../pan/gui/prefs-ui.cc:1011 #, fuzzy msgid "Autosave Article Draft" msgstr "Open an Article Draft" #: ../pan/gui/prefs-ui.cc:1013 #, fuzzy msgid "Minutes to autosave the current Article Draft: " msgstr "Open an Article Draft" #: ../pan/gui/prefs-ui.cc:1018 #, fuzzy msgid "Autosave Articles" msgstr "Post Article" #: ../pan/gui/prefs-ui.cc:1020 msgid "Minutes to autosave newsrc files: " msgstr "" #: ../pan/gui/prefs-ui.cc:1026 msgid "_Miscellaneous" msgstr "" #: ../pan/gui/prefs-ui.cc:1026 msgid "Miscellaneous" msgstr "" #: ../pan/gui/prefs-ui.cc:1031 msgid "Pane Layout" msgstr "Pane Layout" #: ../pan/gui/prefs-ui.cc:1050 msgid "1=Groups, 2=Headers, 3=Body" msgstr "1=Groups, 2=Headers, 3=Body" #: ../pan/gui/prefs-ui.cc:1052 msgid "1=Groups, 2=Body, 3=Headers" msgstr "1=Groups, 2=Body, 3=Headers" #: ../pan/gui/prefs-ui.cc:1054 msgid "1=Headers, 2=Groups, 3=Body" msgstr "1=Headers, 2=Groups, 3=Body" #: ../pan/gui/prefs-ui.cc:1056 msgid "1=Headers, 2=Body, 3=Groups" msgstr "1=Headers, 2=Body, 3=Groups" #: ../pan/gui/prefs-ui.cc:1058 msgid "1=Body, 2=Groups, 3=Headers" msgstr "1=Body, 2=Groups, 3=Headers" #: ../pan/gui/prefs-ui.cc:1060 msgid "1=Body, 2=Headers, 3=Groups" msgstr "1=Body, 2=Headers, 3=Groups" #: ../pan/gui/prefs-ui.cc:1064 #, fuzzy msgid "Layout" msgstr "_Layout" #: ../pan/gui/prefs-ui.cc:1069 msgid "Header Pane Columns" msgstr "Header Pane Columns" #: ../pan/gui/prefs-ui.cc:1073 msgid "_Headers" msgstr "_Headers" #: ../pan/gui/prefs-ui.cc:1073 #, fuzzy msgid "Headers" msgstr "_Headers" #: ../pan/gui/prefs-ui.cc:1079 msgid "" "This menu lets you configure Pan to take certain actions on your behalf " "automatically, based on a post's score." msgstr "" #: ../pan/gui/prefs-ui.cc:1082 msgid "_Delete posts scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1084 msgid "Mark posts _read scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1086 msgid "_Cache posts scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1088 msgid "Download _attachments of posts scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1091 #, fuzzy msgid "Actions" msgstr "_Actions" #: ../pan/gui/prefs-ui.cc:1096 ../pan/gui/prefs-ui.cc:1117 msgid "Fonts" msgstr "Fonts" #: ../pan/gui/prefs-ui.cc:1098 msgid "Use custom font in Group Pane:" msgstr "Use custom font in Group Pane:" #: ../pan/gui/prefs-ui.cc:1103 msgid "Use custom font in Header Pane:" msgstr "Use custom font in Header Pane:" #: ../pan/gui/prefs-ui.cc:1108 msgid "Use custom font in Body Pane:" msgstr "Use custom font in Body Pane:" #: ../pan/gui/prefs-ui.cc:1113 msgid "Monospace font:" msgstr "Monospace font:" #: ../pan/gui/prefs-ui.cc:1117 msgid "_Fonts" msgstr "_Fonts" #: ../pan/gui/prefs-ui.cc:1122 msgid "Header Pane" msgstr "Header Pane" #: ../pan/gui/prefs-ui.cc:1125 ../pan/gui/prefs-ui.cc:1131 #: ../pan/gui/prefs-ui.cc:1137 ../pan/gui/prefs-ui.cc:1143 #: ../pan/gui/prefs-ui.cc:1149 ../pan/gui/prefs-ui.cc:1155 msgid "Text:" msgstr "Text:" #: ../pan/gui/prefs-ui.cc:1127 ../pan/gui/prefs-ui.cc:1133 #: ../pan/gui/prefs-ui.cc:1139 ../pan/gui/prefs-ui.cc:1145 #: ../pan/gui/prefs-ui.cc:1151 ../pan/gui/prefs-ui.cc:1157 msgid "Background:" msgstr "Background:" #: ../pan/gui/prefs-ui.cc:1129 msgid "Scores of 9999 or more:" msgstr "Scores of 9999 or more:" #: ../pan/gui/prefs-ui.cc:1135 msgid "Scores from 5000 to 9998:" msgstr "Scores from 5000 to 9998:" #: ../pan/gui/prefs-ui.cc:1141 msgid "Scores from 1 to 4999:" msgstr "Scores from 1 to 4999:" #: ../pan/gui/prefs-ui.cc:1147 msgid "Scores from -9998 to -1:" msgstr "Scores from -9998 to -1:" #: ../pan/gui/prefs-ui.cc:1153 msgid "Scores of -9999 or less:" msgstr "Scores of -9999 or less:" #: ../pan/gui/prefs-ui.cc:1159 msgid "Read collapsed thread:" msgstr "" #: ../pan/gui/prefs-ui.cc:1161 msgid "Body Pane" msgstr "Body Pane" #: ../pan/gui/prefs-ui.cc:1167 #, fuzzy msgid "Quoted text:" msgstr "Quoted Text:" #: ../pan/gui/prefs-ui.cc:1168 msgid "URL:" msgstr "URL:" #: ../pan/gui/prefs-ui.cc:1169 msgid "Signature:" msgstr "Signature:" #: ../pan/gui/prefs-ui.cc:1171 msgid "_Colors" msgstr "_Colours" #: ../pan/gui/prefs-ui.cc:1171 #, fuzzy msgid "Colors" msgstr "_Colours" #: ../pan/gui/prefs-ui.cc:1176 msgid "Preferred Applications" msgstr "Preferred Applications" #: ../pan/gui/prefs-ui.cc:1180 #, fuzzy msgid "_Web browser:" msgstr "_Web Browser:" #: ../pan/gui/prefs-ui.cc:1183 #, fuzzy msgid "_Mail reader:" msgstr "_Mail Reader:" #: ../pan/gui/prefs-ui.cc:1185 #, fuzzy msgid "_Text editor:" msgstr "Set Editor" #: ../pan/gui/prefs-ui.cc:1187 #, fuzzy msgid "_Applications" msgstr "A_pplications" #: ../pan/gui/prefs-ui.cc:1187 #, fuzzy msgid "Applications" msgstr "A_pplications" #: ../pan/gui/prefs-ui.cc:1192 ../pan/gui/task-pane.cc:512 #, fuzzy msgid "Encoding" msgstr "Character Encoding" #: ../pan/gui/prefs-ui.cc:1196 msgid "Default bytes per file (for encoder): " msgstr "" #: ../pan/gui/prefs-ui.cc:1201 #, fuzzy msgid "_Upload" msgstr "A_pplications" #: ../pan/gui/prefs-ui.cc:1201 msgid "Upload" msgstr "" #: ../pan/gui/prefs-ui.cc:1219 msgid "_Hotkeys" msgstr "" #: ../pan/gui/prefs-ui.cc:1219 msgid "Hotkeys" msgstr "" #: ../pan/gui/profiles-dialog.cc:83 msgid "Please choose your Email Address according to your PGP key's user id." msgstr "" #: ../pan/gui/profiles-dialog.cc:131 msgid "Posting Profile" msgstr "Posting Profile" #: ../pan/gui/profiles-dialog.cc:143 msgid "Profile Information" msgstr "Profile Information" #: ../pan/gui/profiles-dialog.cc:147 msgid "_Profile Name:" msgstr "_Profile Name:" #: ../pan/gui/profiles-dialog.cc:150 msgid "Required Information" msgstr "Required Information" #: ../pan/gui/profiles-dialog.cc:154 msgid "_Full Name:" msgstr "_Full Name:" #: ../pan/gui/profiles-dialog.cc:158 msgid "" "Your Email Address.\n" "Note that this has to match your PGP Signature's Address\n" "if you want to PGP-Sign or Encrypt your messages correctly." msgstr "" #: ../pan/gui/profiles-dialog.cc:162 msgid "_Email Address:" msgstr "_Email Address:" #: ../pan/gui/profiles-dialog.cc:164 msgid "_Post Articles via:" msgstr "_Post Articles via:" #: ../pan/gui/profiles-dialog.cc:167 msgid "Signature" msgstr "Signature" #: ../pan/gui/profiles-dialog.cc:170 msgid "_Use a Signature" msgstr "_Use a Signature" #: ../pan/gui/profiles-dialog.cc:174 msgid "Signature File" msgstr "Signature File" #: ../pan/gui/profiles-dialog.cc:184 msgid "Text File" msgstr "Text File" #: ../pan/gui/profiles-dialog.cc:186 msgid "Text" msgstr "Text" #: ../pan/gui/profiles-dialog.cc:188 msgid "Command" msgstr "Command" #: ../pan/gui/profiles-dialog.cc:191 #, fuzzy msgid "PGP Signature" msgstr "Signature" #: ../pan/gui/profiles-dialog.cc:196 #, fuzzy msgid "Signature Type : " msgstr "Signature _Type:" #: ../pan/gui/profiles-dialog.cc:223 msgid "X-Face (Avatar)" msgstr "" #: ../pan/gui/profiles-dialog.cc:226 msgid "" "You can add an avatar icon to your articles with a unique X-Face code. \n" "Add the code without the trailing \"X-Face:\" \n" " if it was generated by a helper program (for example http://www.dairiki.org/" "xface/xface.php)." msgstr "" #: ../pan/gui/profiles-dialog.cc:229 msgid "_X-Face:" msgstr "" #: ../pan/gui/profiles-dialog.cc:231 msgid "Optional Information" msgstr "Optional Information" #: ../pan/gui/profiles-dialog.cc:236 msgid "" "When posting to Usenet, your article's Message-ID contains a domain name. \n" "You can set a custom domain name here, or leave it blank to let Pan use the " "domain name from your email address." msgstr "" #: ../pan/gui/profiles-dialog.cc:239 msgid "Message-ID _Domain Name:" msgstr "" #: ../pan/gui/profiles-dialog.cc:243 #, c-format msgid "" "%i for Message-ID\n" "%a for Author and Address\n" "%n for Author name\n" "%d for Date" msgstr "" "%i for Message-ID\n" "%a for Author and Address\n" "%n for Author name\n" "%d for Date" #: ../pan/gui/profiles-dialog.cc:244 msgid "_Attribution:" msgstr "_Attribution:" #: ../pan/gui/profiles-dialog.cc:268 #, fuzzy msgid "" "Extra headers to be included in your posts, such as\n" "Reply-To: \"Your Name\"\n" "Organization: Your Organization\n" msgstr "" "Extra headers to be included in your posts, such as\n" "Reply-To: \"Your Name\" \n" "Organization: Your Organization" #: ../pan/gui/profiles-dialog.cc:278 msgid "E_xtra Headers:" msgstr "E_xtra Headers:" #: ../pan/gui/profiles-dialog.cc:323 msgid "Invalid email address." msgstr "Invalid email address." #: ../pan/gui/profiles-dialog.cc:324 msgid "Please use an address of the form joe@somewhere.org" msgstr "Please use an address of the form joe@somewhere.org" #: ../pan/gui/profiles-dialog.cc:479 msgid "New Profile" msgstr "New Profile" #: ../pan/gui/profiles-dialog.cc:525 msgid "Posting Profiles" msgstr "Posting Profiles" #: ../pan/gui/profiles-dialog.cc:541 msgid "Profiles" msgstr "Profiles" #: ../pan/gui/save-attach-ui.cc:77 ../pan/gui/save-ui.cc:77 #, fuzzy, c-format msgid "" "%g - group as one directory (alt.binaries.pictures.trains)\n" "%G - group as nested directory (/alt/binaries/pictures/trains)\n" "%s - subject line excerpt\n" "%S - subject line\n" " \n" "\"/home/user/News/Pan/%g\" becomes\n" "\"/home/user/News/Pan/alt.binaries.pictures.trains\", and\n" "\"/home/user/News/Pan/%G\" becomes\n" "\"/home/user/News/Pan/alt/binaries/pictures/trains\"," msgstr "" "%g - group as one directory (alt.binaries.pictures.trains)\n" "%G - group as nested directory (/alt/binaries/pictures/trains)\n" " \n" "\"/home/user/News/Pan/%g\" becomes\n" "\"/home/user/News/Pan/alt.binaries.pictures.trains\", and\n" "\"/home/user/News/Pan/%G\" becomes\n" "\"/home/user/News/Pan/alt/binaries/pictures/trains\"," #: ../pan/gui/save-attach-ui.cc:223 ../pan/gui/save-ui.cc:242 #, fuzzy msgid "Add to the queue sorted by date posted" msgstr "Add to the queue sorted by a_ge" #: ../pan/gui/save-attach-ui.cc:224 ../pan/gui/save-ui.cc:243 #, fuzzy msgid "Add to the front of the queue" msgstr "Add to the _front of the queue" #: ../pan/gui/save-attach-ui.cc:225 ../pan/gui/save-ui.cc:244 #, fuzzy msgid "Add to the back of the queue" msgstr "Add to the _back of the queue" #: ../pan/gui/save-attach-ui.cc:257 #, fuzzy msgid "Pan: Save Attachments" msgstr "Save _Attachments" #: ../pan/gui/save-attach-ui.cc:282 ../pan/gui/save-attach-ui.cc:300 #: ../pan/gui/save-ui.cc:296 ../pan/gui/save-ui.cc:314 #, fuzzy msgid "_Location:" msgstr "Location" #: ../pan/gui/save-attach-ui.cc:286 ../pan/gui/save-ui.cc:300 #, fuzzy msgid "Save Articles" msgstr "_Save Articles..." #: ../pan/gui/save-attach-ui.cc:303 ../pan/gui/save-ui.cc:317 #, fuzzy, c-format msgid "_Group's path: %s" msgstr "Group's _default path: %s" #: ../pan/gui/save-attach-ui.cc:314 ../pan/gui/save-ui.cc:332 #, fuzzy msgid "_Priority:" msgstr "Priority" #: ../pan/gui/save-ui.cc:233 #, fuzzy msgid "Save attachments" msgstr "Save Attachments" #: ../pan/gui/save-ui.cc:234 #, fuzzy msgid "Save text" msgstr "Save _Text" #: ../pan/gui/save-ui.cc:235 #, fuzzy msgid "Save attachments and text" msgstr "Save Attachments" #: ../pan/gui/save-ui.cc:271 msgid "Pan: Save Articles" msgstr "Pan: Save Articles" #: ../pan/gui/save-ui.cc:328 #, fuzzy msgid "_Action:" msgstr "_Actions" #: ../pan/gui/score-add-ui.cc:89 msgid "is more than" msgstr "is more than" #: ../pan/gui/score-add-ui.cc:90 msgid "is at most" msgstr "is at most" #: ../pan/gui/score-add-ui.cc:112 msgid "increase the article's score by" msgstr "increase the article's score by" #: ../pan/gui/score-add-ui.cc:113 msgid "decrease the article's score by" msgstr "decrease the article's score by" #: ../pan/gui/score-add-ui.cc:114 msgid "set the article's score to" msgstr "set the article's score to" #: ../pan/gui/score-add-ui.cc:115 msgid "watch the article (set its score to 9999)" msgstr "watch the article (set its score to 9999)" #: ../pan/gui/score-add-ui.cc:116 msgid "ignore the article (set its score to -9999)" msgstr "ignore the article (set its score to -9999)" #: ../pan/gui/score-add-ui.cc:141 msgid "References" msgstr "References" #: ../pan/gui/score-add-ui.cc:142 msgid "Line Count" msgstr "Line Count" #: ../pan/gui/score-add-ui.cc:143 msgid "Byte Count" msgstr "Byte Count" #: ../pan/gui/score-add-ui.cc:144 msgid "Crosspost Group Count" msgstr "Crosspost Group Count" #: ../pan/gui/score-add-ui.cc:145 msgid "Age (in days)" msgstr "Age (in days)" #: ../pan/gui/score-add-ui.cc:167 #, fuzzy msgid "for the next month" msgstr "the next month" #: ../pan/gui/score-add-ui.cc:168 #, fuzzy msgid "for the next six months" msgstr "the next month" #: ../pan/gui/score-add-ui.cc:169 msgid "forever" msgstr "forever" #: ../pan/gui/score-add-ui.cc:194 msgid "contains" msgstr "contains" #: ../pan/gui/score-add-ui.cc:195 msgid "doesn't contain" msgstr "doesn't contain" #: ../pan/gui/score-add-ui.cc:196 msgid "is" msgstr "is" #: ../pan/gui/score-add-ui.cc:197 msgid "isn't" msgstr "isn't" #: ../pan/gui/score-add-ui.cc:198 msgid "starts with" msgstr "starts with" #: ../pan/gui/score-add-ui.cc:199 msgid "ends with" msgstr "ends with" #: ../pan/gui/score-add-ui.cc:200 msgid "matches regex" msgstr "matches regex" #: ../pan/gui/score-add-ui.cc:481 msgid "Another rule already sets this article's score." msgstr "Another rule already sets this article's score." #: ../pan/gui/score-add-ui.cc:482 msgid "You may want to go back or delete the old rule." msgstr "You may want to go back or delete the old rule." #: ../pan/gui/score-add-ui.cc:553 msgid "Add and Re_score" msgstr "Add and Re_score" #: ../pan/gui/score-add-ui.cc:604 ../pan/gui/score-add-ui.cc:624 msgid "New Scoring Rule" msgstr "New Scoring Rule" #: ../pan/gui/score-add-ui.cc:635 msgid "If the group name" msgstr "If the group name" #: ../pan/gui/score-add-ui.cc:642 msgid "And the article's" msgstr "And the article's" #: ../pan/gui/score-view-ui.cc:56 msgid "Close and Re_score" msgstr "Close and Re_score" #: ../pan/gui/score-view-ui.cc:154 #, c-format msgid "File %s, Lines %d - %d" msgstr "File %s, Lines %d - %d" #: ../pan/gui/score-view-ui.cc:182 msgid "Pan: Article's Scores" msgstr "Pan: Article's Scores" #: ../pan/gui/score-view-ui.cc:208 msgid "Add" msgstr "Add" #: ../pan/gui/score-view-ui.cc:213 msgid "New Score" msgstr "New Score" #: ../pan/gui/score-view-ui.cc:218 msgid "Criteria" msgstr "Criteria" #: ../pan/gui/score-view-ui.cc:241 msgid "Add a New Scoring Rule" msgstr "Add a New Scoring Rule" #: ../pan/gui/score-view-ui.cc:248 msgid "Remove the Selected Scoring Rule" msgstr "Remove the Selected Scoring Rule" #: ../pan/gui/server-ui.cc:221 msgid "Please specify the server's address." msgstr "Please specify the server's address." #: ../pan/gui/server-ui.cc:264 msgid "Import SSL certificate (PEM format) from File" msgstr "" #. create the dialog #: ../pan/gui/server-ui.cc:290 ../pan/gui/server-ui.cc:869 msgid "Add a Server" msgstr "Add a Server" #: ../pan/gui/server-ui.cc:290 ../pan/gui/server-ui.cc:875 msgid "Edit a Server's Settings" msgstr "Edit a Server's Settings" #: ../pan/gui/server-ui.cc:310 msgid "Location" msgstr "Location" #: ../pan/gui/server-ui.cc:314 msgid "The news server's actual address, e.g. \"news.mynewsserver.com\"" msgstr "The news server's actual address, e.g. \"news.mynewsserver.com\"" #: ../pan/gui/server-ui.cc:315 msgid "_Address:" msgstr "_Address:" #: ../pan/gui/server-ui.cc:319 msgid "The news server's port number. Typically 119." msgstr "The news server's port number (typically 119)." #: ../pan/gui/server-ui.cc:320 msgid "Por_t:" msgstr "Por_t:" #: ../pan/gui/server-ui.cc:323 msgid "Login (if Required)" msgstr "Login (if Required)" #: ../pan/gui/server-ui.cc:327 msgid "_Username:" msgstr "_Username:" #: ../pan/gui/server-ui.cc:328 msgid "" "The username to give the server when asked. If your server doesn't require " "authentication, you can leave this blank." msgstr "" "The username to give the server when asked. If your server doesn't require " "authentication, you can leave this blank." #: ../pan/gui/server-ui.cc:332 msgid "_Password:" msgstr "_Password:" #: ../pan/gui/server-ui.cc:333 msgid "" "The password to give the server when asked. If your server doesn't require " "authentication, you can leave this blank." msgstr "" "The password to give the server when asked. If your server doesn't require " "authentication, you can leave this blank." #: ../pan/gui/server-ui.cc:336 msgid "Settings" msgstr "Settings" #: ../pan/gui/server-ui.cc:343 msgid "Connection _Limit:" msgstr "Connection _Limit:" #: ../pan/gui/server-ui.cc:347 msgid "After Two Weeks" msgstr "After Two Weeks" #: ../pan/gui/server-ui.cc:348 msgid "After One Month" msgstr "After One Month" #: ../pan/gui/server-ui.cc:349 msgid "After Two Months" msgstr "After Two Months" #: ../pan/gui/server-ui.cc:350 #, fuzzy msgid "After Three Months" msgstr "After Two Months" #: ../pan/gui/server-ui.cc:351 #, fuzzy msgid "After Six Months" msgstr "After Two Months" #: ../pan/gui/server-ui.cc:352 msgid "Never Expire Old Articles" msgstr "Never Expire Old Articles" #: ../pan/gui/server-ui.cc:366 msgid "E_xpire Old Articles:" msgstr "E_xpire Old Articles:" #: ../pan/gui/server-ui.cc:370 msgid "Primary" msgstr "Primary" #: ../pan/gui/server-ui.cc:371 msgid "Fallback" msgstr "Fallback" #: ../pan/gui/server-ui.cc:385 msgid "Server Rank:" msgstr "Server Rank:" #: ../pan/gui/server-ui.cc:389 msgid "" "Fallback servers are used for articles that can't be found on the " "primaries. One common approach is to use free servers as primaries and " "subscription servers as fallbacks." msgstr "" "Fallback servers are used for articles that can't be found on the " "primaries. One common approach is to use free servers as primaries and " "subscription servers as fallbacks." #: ../pan/gui/server-ui.cc:396 msgid "Security" msgstr "" #: ../pan/gui/server-ui.cc:401 msgid "Use Plaintext (Unsecured) Connections" msgstr "" #: ../pan/gui/server-ui.cc:402 #, fuzzy msgid "Use Secure SSL Connections" msgstr "No Connections" #: ../pan/gui/server-ui.cc:418 msgid "TLS (SSL) Options:" msgstr "" #: ../pan/gui/server-ui.cc:423 msgid "" "You can set the option for using/disabling secure SSL/TLS connections here. " "If you enable SSL/TLS, your data is encrypted and secure. It is encouraged " "to use this option for privacy reasons." msgstr "" #: ../pan/gui/server-ui.cc:428 msgid "Always trust this server's certificate" msgstr "" #: ../pan/gui/server-ui.cc:602 #, c-format msgid "Really delete \"%s\"?" msgstr "Really delete \"%s\"?" #: ../pan/gui/server-ui.cc:691 msgid "No information available." msgstr "" #: ../pan/gui/server-ui.cc:697 #, c-format msgid "Server Certificate for '%s'" msgstr "" #: ../pan/gui/server-ui.cc:795 #, fuzzy, c-format msgid "Really delete certificate for \"%s\"?" msgstr "Really delete \"%s\"?" #. dialog #: ../pan/gui/server-ui.cc:822 ../pan/gui/server-ui.cc:843 #: ../pan/gui/server-ui.cc:941 msgid "Servers" msgstr "Servers" #: ../pan/gui/server-ui.cc:882 msgid "Remove a Server" msgstr "Remove a Server" #. dialog #: ../pan/gui/server-ui.cc:915 msgid "SSL Certificates" msgstr "" #: ../pan/gui/server-ui.cc:936 msgid "Certificates" msgstr "" #: ../pan/gui/server-ui.cc:967 msgid "Import Certificate" msgstr "" #: ../pan/gui/server-ui.cc:973 msgid "Inspect Certificate" msgstr "" #: ../pan/gui/server-ui.cc:980 #, fuzzy msgid "Remove Certificate" msgstr "Remove a Server" #: ../pan/gui/task-pane.cc:143 #, c-format msgid "" "\n" "Upload\n" "\n" "Subject: \"%s\"\n" "From: %s\n" "Groups: %s\n" "Sourcefile: %s\n" msgstr "" #: ../pan/gui/task-pane.cc:155 #, c-format msgid "" "\n" "Download\n" "\n" "Subject: \"%s\"\n" "From: %s\n" "Date: %s\n" "Groups: %s\n" "Save Path: %s\n" msgstr "" #: ../pan/gui/task-pane.cc:157 #, fuzzy msgid "unknown" msgstr "Unknown" #: ../pan/gui/task-pane.cc:263 msgid "Choose new destination for selected Tasks" msgstr "" #: ../pan/gui/task-pane.cc:417 #, c-format msgid "Pan: Tasks (%d Queued, %d Running, %d Stopped)" msgstr "Pan: Tasks (%d Queued, %d Running, %d Stopped)" #: ../pan/gui/task-pane.cc:419 #, c-format msgid "Pan: Tasks (%d Queued, %d Running)" msgstr "Pan: Tasks (%d Queued, %d Running)" #: ../pan/gui/task-pane.cc:421 #, c-format msgid "Pan: Tasks" msgstr "Pan: Tasks" #: ../pan/gui/task-pane.cc:446 #, c-format msgid "%lu selected, %s" msgstr "" #: ../pan/gui/task-pane.cc:510 msgid "Running" msgstr "Running" #: ../pan/gui/task-pane.cc:511 msgid "Decoding" msgstr "" #: ../pan/gui/task-pane.cc:513 msgid "Queued for Decode" msgstr "" #: ../pan/gui/task-pane.cc:514 msgid "Queued for Encode" msgstr "" #: ../pan/gui/task-pane.cc:515 msgid "Queued" msgstr "Queued" #: ../pan/gui/task-pane.cc:516 msgid "Stopped" msgstr "Stopped" #: ../pan/gui/task-pane.cc:517 msgid "Removing" msgstr "Removing" #: ../pan/gui/task-pane.cc:546 #, c-format msgid "%d%% Done" msgstr "%d%% Done" #: ../pan/gui/task-pane.cc:552 #, c-format msgid "%d:%02d:%02d Remaining (%d @ %lu KiB/s)" msgstr "%d:%02d:%02d Remaining (%d @ %lu KiB/s)" #: ../pan/gui/task-pane.cc:646 ../pan/gui/task-pane.cc:647 msgid "Move To Top" msgstr "" #: ../pan/gui/task-pane.cc:651 ../pan/gui/task-pane.cc:652 msgid "Move To Bottom" msgstr "" #: ../pan/gui/task-pane.cc:656 ../pan/gui/task-pane.cc:657 #, fuzzy msgid "Stop Task" msgstr "Stop Tasks" #: ../pan/gui/task-pane.cc:661 ../pan/gui/task-pane.cc:662 #, fuzzy msgid "Delete Task" msgstr "Delete Tasks" #: ../pan/gui/task-pane.cc:666 ../pan/gui/task-pane.cc:667 #, fuzzy msgid "Restart Task" msgstr "Restart Tasks" #: ../pan/gui/task-pane.cc:671 ../pan/gui/task-pane.cc:672 msgid "Change Download Destination" msgstr "" #: ../pan/gui/task-pane.cc:729 #, fuzzy msgid "_Online" msgstr "Go _Online" #: ../pan/gui/task-pane.cc:746 msgid "Restart Tasks" msgstr "Restart Tasks" #: ../pan/gui/task-pane.cc:748 msgid "Stop Tasks" msgstr "Stop Tasks" #: ../pan/gui/task-pane.cc:750 msgid "Delete Tasks" msgstr "Delete Tasks" #: ../pan/gui/url.cc:123 #, c-format msgid "Error starting URL: %s (Command was: %s)" msgstr "Error starting URL: %s (Command was: %s)" #: ../pan/tasks/decoder.cc:115 #, c-format msgid "Couldn't save file \"%s\": %s" msgstr "Couldn't save file \"%s\": %s" #: ../pan/tasks/decoder.cc:137 ../pan/tasks/encoder.cc:136 msgid "Error initializing uulib" msgstr "Error initializing uulib" #: ../pan/tasks/decoder.cc:152 ../pan/tasks/socket-impl-gio.cc:352 #: ../pan/tasks/socket-impl-openssl.cc:634 #, fuzzy, c-format msgid "Error reading from %s: %s" msgstr "Error reading from socket: %s" #: ../pan/tasks/decoder.cc:192 #, c-format msgid "Saved \"%s\"" msgstr "Saved \"%s\"" #: ../pan/tasks/decoder.cc:199 #, c-format msgid "" "Error saving \"%s\":\n" "%s." msgstr "" "Error saving \"%s\":\n" "%s." #: ../pan/tasks/decoder.cc:314 ../pan/tasks/task-article.cc:350 #, fuzzy, c-format msgid "Decoding %s" msgstr "Reading %s" #: ../pan/tasks/encoder.cc:102 ../pan/tasks/encoder.cc:155 #, fuzzy, c-format msgid "Error loading %s from cache." msgstr "Error reading from socket: %s" #: ../pan/tasks/encoder.cc:177 #, fuzzy, c-format msgid "Error encoding %s: %s" msgstr "Error reading from socket: %s" #: ../pan/tasks/encoder.cc:269 #, fuzzy, c-format msgid "Encoding %s" msgstr "Character Encoding" #: ../pan/tasks/nntp.cc:126 #, c-format msgid "%s requires a username, but none is set." msgstr "" #: ../pan/tasks/nntp.cc:139 #, c-format msgid "%s requires a password, but none is set." msgstr "" #: ../pan/tasks/nntp.cc:205 #, c-format msgid "Sending \"%s\" to %s returned an error: %s" msgstr "" #: ../pan/tasks/nntp.cc:228 #, c-format msgid "Sending \"%s\" to %s returned an unrecognized response: \"%s\"" msgstr "" #: ../pan/tasks/nntp-pool.cc:222 #, c-format msgid "Unable to connect to \"%s\"" msgstr "Unable to connect to \"%s\"" #: ../pan/tasks/socket-impl-gio.cc:173 ../pan/tasks/socket-impl-gio.cc:211 #: ../pan/tasks/socket-impl-openssl.cc:214 #: ../pan/tasks/socket-impl-openssl.cc:252 #, fuzzy, c-format msgid "Error connecting to \"%s\"" msgstr "Unable to connect to \"%s\"" #: ../pan/tasks/socket-impl-gio.cc:351 ../pan/tasks/socket-impl-openssl.cc:633 msgid "Unknown Error" msgstr "Unknown Error" #: ../pan/tasks/task-article.cc:61 ../pan/tasks/task-article.cc:156 #: ../pan/tasks/task-article.cc:159 #, c-format msgid "Saving %s" msgstr "Saving %s" #: ../pan/tasks/task-article.cc:63 #, c-format msgid "Reading %s" msgstr "Reading %s" #: ../pan/tasks/task-article.cc:322 #, c-format msgid "Article \"%s\" is incomplete -- the news server(s) don't have part %s" msgstr "" #: ../pan/tasks/task-groups.cc:40 #, c-format msgid "Getting group list from \"%s\"" msgstr "Getting group list from \"%s\"" #: ../pan/tasks/task-groups.cc:122 #, c-format msgid "Fetched %lu Groups" msgstr "Fetched %lu Groups" #: ../pan/tasks/task-post.cc:35 #, c-format msgid "Posting \"%s\"" msgstr "Posting \"%s\"" #: ../pan/tasks/task-post.cc:76 #, fuzzy, c-format msgid "Posting of \"%s\" failed: %s" msgstr "Posting Profiles" #: ../pan/tasks/task-post.cc:81 #, c-format msgid "Posting of \"%s\" succesful: %s" msgstr "" #: ../pan/tasks/task-upload.cc:51 #, fuzzy, c-format msgid "Uploading %s" msgstr "Reading %s" #: ../pan/tasks/task-upload.cc:249 #, c-format msgid "Uploading %s - Part %d of %d" msgstr "" #: ../pan/tasks/task-upload.cc:251 #, c-format msgid "Uploading Message body with Subject \"%s\"" msgstr "" #: ../pan/tasks/task-upload.cc:308 #, c-format msgid "Posting of File %s (Part %d of %d) failed: No Posts allowed by server." msgstr "" #: ../pan/tasks/task-upload.cc:316 #, fuzzy, c-format msgid "Posting of File %s (Part %d of %d) failed: %s" msgstr "Posting Profiles" #: ../pan/tasks/task-upload.cc:326 ../pan/tasks/task-upload.cc:333 #, c-format msgid "Posting of file %s (Part %d of %d) succesful: %s" msgstr "" #: ../pan/tasks/task-upload.cc:343 #, fuzzy, c-format msgid "Posting of file %s succesful: %s" msgstr "Posting Profiles" #: ../pan/tasks/task-upload.cc:347 #, c-format msgid "" "Posting of file %s not completely successful: Check the log (right-click on " "list item) !" msgstr "" #: ../pan/tasks/task-upload.cc:364 #, c-format msgid "" "Posting of file %s not successful: Check the log (right-click on list item) !" msgstr "" #: ../pan/tasks/task-xover.cc:79 #, c-format msgid "Getting all headers for \"%s\"" msgstr "Getting all headers for \"%s\"" #: ../pan/tasks/task-xover.cc:81 #, c-format msgid "Getting new headers for \"%s\"" msgstr "Getting new headers for \"%s\"" #. SAMPLE #: ../pan/tasks/task-xover.cc:83 #, c-format msgid "Sampling headers for \"%s\"" msgstr "Sampling headers for \"%s\"" #: ../pan/tasks/task-xover.cc:369 #, c-format msgid "%s (%lu parts, %lu articles)" msgstr "%s (%lu parts, %lu articles)" #: ../pan/tasks/task-xoverinfo.cc:78 #, fuzzy, c-format msgid "Getting header counts for \"%s\"" msgstr "Getting all headers for \"%s\"" #: ../pan/usenet-utils/filter-info.cc:163 msgid "article doesn't have attachments" msgstr "article doesn't have attachments" #: ../pan/usenet-utils/filter-info.cc:167 msgid "the article has attachments" msgstr "the article has attachments" #: ../pan/usenet-utils/filter-info.cc:171 msgid "the article isn't cached locally" msgstr "the article isn't cached locally" #: ../pan/usenet-utils/filter-info.cc:175 msgid "the article is cached locally" msgstr "the article is cached locally" #: ../pan/usenet-utils/filter-info.cc:179 msgid "the article wasn't posted by you" msgstr "the article wasn't posted by you" #: ../pan/usenet-utils/filter-info.cc:183 msgid "the article was posted by you" msgstr "the article was posted by you" #: ../pan/usenet-utils/filter-info.cc:187 msgid "the article has been read" msgstr "the article has been read" #: ../pan/usenet-utils/filter-info.cc:191 msgid "the article hasn't been read" msgstr "the article hasn't been read" #: ../pan/usenet-utils/filter-info.cc:195 #, c-format msgid "the article is less than %ld bytes long" msgstr "the article is less than %ld bytes long" #: ../pan/usenet-utils/filter-info.cc:200 #, c-format msgid "the article is at least %ld bytes long" msgstr "the article is at least %ld bytes long" #: ../pan/usenet-utils/filter-info.cc:205 #, c-format msgid "the article is less than %ld lines long" msgstr "the article is less than %ld lines long" #: ../pan/usenet-utils/filter-info.cc:210 #, c-format msgid "the article is at least %ld lines long" msgstr "the article is at least %ld lines long" #: ../pan/usenet-utils/filter-info.cc:215 #, c-format msgid "the article is less than %ld days old" msgstr "the article is less than %ld days old" #: ../pan/usenet-utils/filter-info.cc:220 #, c-format msgid "the article is at least %ld days old" msgstr "the article is at least %ld days old" #: ../pan/usenet-utils/filter-info.cc:225 #, c-format msgid "the article was posted to less than %ld groups" msgstr "the article was posted to less than %ld groups" #: ../pan/usenet-utils/filter-info.cc:230 #, c-format msgid "the article was posted to at least %ld groups" msgstr "the article was posted to at least %ld groups" #: ../pan/usenet-utils/filter-info.cc:235 #, c-format msgid "the article's score is less than %ld" msgstr "the article's score is less than %ld" #: ../pan/usenet-utils/filter-info.cc:240 #, c-format msgid "the article's score is %ld or higher" msgstr "the article's score is %ld or higher" #: ../pan/usenet-utils/filter-info.cc:249 #: ../pan/usenet-utils/filter-info.cc:259 #, c-format msgid "%s doesn't contain \"%s\"" msgstr "%s doesn't contain \"%s\"" #: ../pan/usenet-utils/filter-info.cc:250 #: ../pan/usenet-utils/filter-info.cc:260 #, c-format msgid "%s isn't \"%s\"" msgstr "%s isn't \"%s\"" #: ../pan/usenet-utils/filter-info.cc:251 #: ../pan/usenet-utils/filter-info.cc:261 #, c-format msgid "%s doesn't begin with \"%s\"" msgstr "%s doesn't begin with \"%s\"" #: ../pan/usenet-utils/filter-info.cc:252 #: ../pan/usenet-utils/filter-info.cc:262 #, c-format msgid "%s doesn't end with \"%s\"" msgstr "%s doesn't end with \"%s\"" #: ../pan/usenet-utils/filter-info.cc:253 #: ../pan/usenet-utils/filter-info.cc:263 #, c-format msgid "%s doesn't match the regex \"%s\"" msgstr "%s doesn't match the regex \"%s\"" #: ../pan/usenet-utils/filter-info.cc:275 #, c-format msgid "%s contains \"%s\"" msgstr "%s contains \"%s\"" #: ../pan/usenet-utils/filter-info.cc:276 #, c-format msgid "%s is \"%s\"" msgstr "%s is \"%s\"" #: ../pan/usenet-utils/filter-info.cc:277 #, c-format msgid "%s begins with \"%s\"" msgstr "%s begins with \"%s\"" #: ../pan/usenet-utils/filter-info.cc:278 #, c-format msgid "%s ends with \"%s\"" msgstr "%s ends with \"%s\"" #: ../pan/usenet-utils/filter-info.cc:279 #, c-format msgid "%s matches the regex \"%s\"" msgstr "%s matches the regex \"%s\"" #: ../pan/usenet-utils/filter-info.cc:285 msgid "Any of these tests fail:" msgstr "Any of these tests fail:" #: ../pan/usenet-utils/filter-info.cc:292 msgid "All of these tests pass:" msgstr "All of these tests pass:" #: ../pan/usenet-utils/filter-info.cc:299 msgid "None of these tests pass:" msgstr "None of these tests pass:" #: ../pan/usenet-utils/filter-info.cc:306 msgid "Any of these tests pass:" msgstr "Any of these tests pass:" #: ../pan/usenet-utils/gnksa.cc:878 #, c-format msgid "No email address provided; generating message-id with domain \"%s\"" msgstr "No email address provided; generating message-id with domain \"%s\"" #: ../pan/usenet-utils/message-check.cc:124 msgid "Warning: Reply seems to be top-posted." msgstr "Warning: Reply seems to be top-posted." #: ../pan/usenet-utils/message-check.cc:145 msgid "Warning: The signature marker should be \"-- \", not \"--\"." msgstr "Warning: The signature marker should be \"-- \", not \"--\"." #: ../pan/usenet-utils/message-check.cc:162 msgid "Warning: Signature prefix with no signature." msgstr "Warning: Signature prefix with no signature." #: ../pan/usenet-utils/message-check.cc:167 msgid "Warning: Signature is more than 4 lines long." msgstr "Warning: Signature is more than 4 lines long." #: ../pan/usenet-utils/message-check.cc:172 msgid "Warning: Signature is more than 80 characters wide." msgstr "Warning: Signature is more than 80 characters wide." #: ../pan/usenet-utils/message-check.cc:198 #, fuzzy, c-format msgid "Warning: %d line is more than 80 characters wide." msgid_plural "Warning: %d lines are more than 80 characters wide." msgstr[0] "Warning: %d lines are more than 80 characters wide." msgstr[1] "Warning: %d lines are more than 80 characters wide." #: ../pan/usenet-utils/message-check.cc:223 msgid "Error: Message is empty." msgstr "Error: Message is empty." #: ../pan/usenet-utils/message-check.cc:258 msgid "Warning: The message is entirely quoted text!" msgstr "Warning: The message is entirely quoted text!" #: ../pan/usenet-utils/message-check.cc:259 msgid "Warning: The message is mostly quoted text." msgstr "Warning: The message is mostly quoted text." #: ../pan/usenet-utils/message-check.cc:309 msgid "Error: Message appears to have no new content." msgstr "Error: Message appears to have no new content." #: ../pan/usenet-utils/message-check.cc:344 #: ../pan/usenet-utils/message-check.cc:383 #, c-format msgid "" "Warning: The posting profile's server doesn't carry newsgroup\n" "\t\"%s\".\n" "\tIf the group name is correct, switch profiles in the \"From:\"\n" "\tline or edit the profile with \"Edit|Manage Posting Profiles\"." msgstr "" #: ../pan/usenet-utils/message-check.cc:355 msgid "Warning: Following-Up to too many groups." msgstr "Warning: Following-Up to too many groups." #: ../pan/usenet-utils/message-check.cc:366 msgid "Error: No Subject specified." msgstr "Error: No Subject specified." #: ../pan/usenet-utils/message-check.cc:395 #, c-format msgid "Warning: Group \"%s\" is read-only." msgstr "Warning: Group \"%s\" is read-only." #: ../pan/usenet-utils/message-check.cc:404 msgid "Error: Posting to a very large number of groups." msgstr "Error: Posting to a very large number of groups." #: ../pan/usenet-utils/message-check.cc:409 msgid "Warning: Posting to a large number of groups." msgstr "Warning: Posting to a large number of groups." #: ../pan/usenet-utils/message-check.cc:416 msgid "Warning: Crossposting without setting Followup-To header." msgstr "Warning: Crossposting without setting Followup-To header." #: ../pan/usenet-utils/message-check.cc:441 msgid "Error: Bad email address." msgstr "Error: Bad email address." #: ../pan/usenet-utils/message-check.cc:450 msgid "Warning: Most newsgroups frown upon HTML posts." msgstr "Warning: Most newsgroups frown upon HTML posts." #: ../pan/usenet-utils/message-check.cc:486 msgid "Error: No Recipients." msgstr "Error: No Recipients." #: ../pan/usenet-utils/scorefile.cc:304 #, c-format msgid "" "Error reading score in %*.*s, line %d: expected 'Expires: MM/DD/YYYY' or " "'Expires: DD-MM-YYYY'." msgstr "" "Error reading score in %*.*s, line %d: expected 'Expires: MM/DD/YYYY' or " "'Expires: DD-MM-YYYY'." #: ../pan/usenet-utils/scorefile.cc:307 #, c-format msgid "Expired old score from %*.*s, line %d" msgstr "Expired old score from %*.*s, line %d" #: ../pan/usenet-utils/scorefile.cc:380 #, c-format msgid "Error reading score in %*.*s, line %d: unexpected line." msgstr "Error reading score in %*.*s, line %d: unexpected line." #: ../pan/usenet-utils/scorefile.cc:428 #, c-format msgid "Read %lu scoring rules in %lu sections from \"%s\"" msgstr "Read %lu scoring rules in %lu sections from \"%s\"" #: ../pan/usenet-utils/ssl-utils.h:199 #, fuzzy, c-format msgid "Error printing the server certificate for '%s'" msgstr "Error loading newsserver information: %s" #: ../pan/usenet-utils/ssl-utils.h:216 #, c-format msgid "" "The current server '%s' sent this security certificate :\n" "\n" msgstr "" #: ../pan/usenet-utils/ssl-utils.h:217 #, c-format msgid "" "Certificate information for server '%s' :\n" "\n" msgstr "" #: ../pan/usenet-utils/ssl-utils.h:219 #, c-format msgid "" "%sIssuer information:\n" "%s\n" "Valid until : %s\n" "\n" "Not valid before : %s\n" "\n" msgstr "" #: ../pan/usenet-utils/text-massager.cc:397 msgid "> [quoted text muted]" msgstr "> [quoted text muted]" #~ msgid "Read News from Usenet" #~ msgstr "Read News from Usenet" #, fuzzy #~ msgid "_Toggle Flag on for Thread" #~ msgstr "_Watch Thread" #~ msgid "Attachment not shown: MIME type %s/%s; filename %s\n" #~ msgstr "Attachment not shown: MIME type %s/%s; filename %s\n" #~ msgid "Attachment not shown: MIME type %s/%s\n" #~ msgstr "Attachment not shown: MIME type %s/%s\n" #, fuzzy #~ msgid "Error!" #~ msgstr "Error: %s" #~ msgid "" #~ "Spellchecker not found!\n" #~ " \n" #~ "Was this copy of Pan compiled with GtkSpell enabled?" #~ msgstr "" #~ "Spellchecker not found!\n" #~ " \n" #~ "Was this copy of Pan compiled with GtkSpell enabled?" #, fuzzy #~ msgid "Signer : " #~ msgstr "Signature:" #~ msgid "_Signature:" #~ msgstr "_Signature:" #~ msgid "Creating directory \"%s\"" #~ msgstr "Creating directory \"%s\"" #~ msgid "Couldn't create directory \"%s\": %s" #~ msgstr "Could not create directory \"%s\": %s" #~ msgid "" #~ "Your copy of libpcre doesn't support UTF-8. UTF-8 regular expressions " #~ "may fail." #~ msgstr "" #~ "Your copy of libpcre doesn't support UTF-8. UTF-8 regular expressions " #~ "may fail." #~ msgid "Can't use regular expression \"%s\": %s at position %d" #~ msgstr "Cannot use regular expression \"%s\": %s at position %d" #~ msgid "Read Selected Group" #~ msgstr "Read Selected Group" #~ msgid "_Mark Group _Read" #~ msgstr "_Mark Group _Read" #~ msgid "_Delete Group's Articles" #~ msgstr "_Delete Group's Articles" #~ msgid "Get New Headers for Selected Group" #~ msgstr "Get New Headers for Selected Group" #~ msgid "Get New Headers for Subscribed Groups" #~ msgstr "Get New Headers for Subscribed Groups" #~ msgid "Get Headers from Server" #~ msgstr "Get Headers from Server" #~ msgid "Get a new Group list from the Server" #~ msgstr "Get a new Group list from the Server" #~ msgid "Subscribe to Selected Group" #~ msgstr "Subscribe to Selected Group" #~ msgid "Unsubscribe from Selected Group" #~ msgstr "Unsubscribe from Selected Group" #~ msgid "Save Selected Articles ..." #~ msgstr "Save Selected Articles..." #~ msgid "Cancel Last Task" #~ msgstr "Cancel Last Task" #~ msgid "Clear Header Pane" #~ msgstr "Clear Header Pane" #~ msgid "Clear Body Pane" #~ msgstr "Clear Body Pane" #~ msgid "Next Unread Group" #~ msgstr "Next Unread Group" #~ msgid "Next Group" #~ msgstr "Next Group" #~ msgid "Next Thread" #~ msgstr "Next Thread" #~ msgid "Previous Article" #~ msgstr "Previous Article" #~ msgid "Previous Thread" #~ msgstr "Previous Thread" #~ msgid "Parent Article" #~ msgstr "Parent Article" #~ msgid "Mark Article as Unread" #~ msgstr "Mark Article as Unread" #~ msgid "Reply to Author in Mail" #~ msgstr "Reply to Author in Mail" #~ msgid "Abbreviate _Names in Group Pane" #~ msgstr "Abbreviate _Names in Group Pane" #~ msgid "Match Only Articles Posted by Me" #~ msgstr "Match Only Articles Posted by Me" #~ msgid "Baltic (ISO-8859-4)" #~ msgstr "Baltic (ISO-8859-4)" #~ msgid "Baltic (ISO-8859-13)" #~ msgstr "Baltic (ISO-8859-13)" #~ msgid "Baltic (Windows-1257)" #~ msgstr "Baltic (Windows-1257)" #~ msgid "Central European (ISO-8859-2)" #~ msgstr "Central European (ISO-8859-2)" #~ msgid "Central European (Windows-1250)" #~ msgstr "Central European (Windows-1250)" #~ msgid "Chinese Simplified (gb2312)" #~ msgstr "Chinese Simplified (gb2312)" #~ msgid "Chinese Traditional (big5)" #~ msgstr "Chinese Traditional (big5)" #~ msgid "Cyrillic (ISO-8859-5)" #~ msgstr "Cyrillic (ISO-8859-5)" #~ msgid "Cyrillic (Windows-1251)" #~ msgstr "Cyrillic (Windows-1251)" #~ msgid "Cyrillic (KOI8-R)" #~ msgstr "Cyrillic (KOI8-R)" #~ msgid "Cyrillic, Ukrainian (KOI8-U)" #~ msgstr "Cyrillic, Ukrainian (KOI8-U)" #~ msgid "Greek (ISO-8859-7)" #~ msgstr "Greek (ISO-8859-7)" #~ msgid "Japanese (ISO-2022-jp)" #~ msgstr "Japanese (ISO-2022-jp)" #~ msgid "Korean (euc-kr)" #~ msgstr "Korean (euc-kr)" #~ msgid "Turkish (ISO-8859-9)" #~ msgstr "Turkish (ISO-8859-9)" #~ msgid "Western (ISO-8859-1)" #~ msgstr "Western (ISO-8859-1)" #~ msgid "Western, New (ISO-8859-15)" #~ msgstr "Western, New (ISO-8859-15)" #~ msgid "Western (Windows-1252)" #~ msgstr "Western (Windows-1252)" #~ msgid "Unicode (UTF-8)" #~ msgstr "Unicode (UTF-8)" #~ msgid "Western" #~ msgstr "Western" #~ msgid "Pan: " #~ msgstr "Pan: " #~ msgid " (%lu)" #~ msgstr " (%lu)" #~ msgid "" #~ "Pan is now offline. Please ensure that space is available, then use File|" #~ "Work Online to continue." #~ msgstr "" #~ "Pan is now offline. Please ensure that space is available, then use File|" #~ "Work Online to continue." #~ msgid "Pan: %s" #~ msgstr "Pan: %s" #~ msgid "%u Tasks Running, %u Tasks Total" #~ msgstr "%u Tasks Running, %u Tasks Total" #~ msgid "Tasks: %u/%u" #~ msgstr "Tasks: %u/%u" #~ msgid "%lu B" #~ msgstr "%lu B" #~ msgid "%.1f KiB" #~ msgstr "%.1f KB" #~ msgid "%.1f MiB" #~ msgstr "%.1f MB" #~ msgid "%.1f GiB" #~ msgstr "%.1f GB" #~ msgid "Error: nzb arguments used without nzb files." #~ msgstr "Error: nzb arguments used without nzb files." #~ msgid "_Browse..." #~ msgstr "_Browse..." #~ msgid "Wrap _Now" #~ msgstr "Wrap _Now" #~ msgid "Wrap the Article Body to 80 Columns" #~ msgstr "Wrap the Article Body to 80 Columns" #~ msgid "_Close" #~ msgstr "_Close" #~ msgid "Close Window" #~ msgstr "Close Window" #~ msgid "Cu_t" #~ msgstr "Cu_t" #~ msgid "Cut Text" #~ msgstr "Cut Text" #~ msgid "_Copy" #~ msgstr "_Copy" #~ msgid "Copy Text" #~ msgstr "Copy Text" #~ msgid "_Paste" #~ msgstr "_Paste" #~ msgid "Paste Text" #~ msgstr "Paste Text" #~ msgid "_Manage Editor List..." #~ msgstr "_Manage Editor List..." #~ msgid "Manage Posting Pr_ofiles..." #~ msgstr "Manage Posting Pr_ofiles..." #~ msgid "Unicode, UTF-8" #~ msgstr "Unicode, UTF-8" #~ msgid "Error loading post.ui: \"%s\"" #~ msgstr "Error loading post.ui: \"%s\"" #~ msgid "Manage Editor List" #~ msgstr "Manage Editor List" #~ msgid "Editors" #~ msgstr "Editors" #~ msgid "Posting Article" #~ msgstr "Posting Article" #~ msgid "Posting..." #~ msgstr "Posting..." #~ msgid "Couldn't read signature file \"%s\": %s" #~ msgstr "Could not read signature file \"%s\": %s" #~ msgid "One header per line, in the form HeaderName: Value" #~ msgstr "One header per line, in the form HeaderName: Value" #~ msgid "Add a New Profile" #~ msgstr "Add a New Profile" #~ msgid "Edit the selected profile" #~ msgstr "Edit the selected profile" #~ msgid "Remove the selected profile" #~ msgstr "Remove the selected profile" #~ msgid "Path" #~ msgstr "Path" #~ msgid "C_ustom path:" #~ msgstr "C_ustom path:" #~ msgid "Save Files to Path" #~ msgstr "Save Files to Path" #~ msgid "_Path:" #~ msgstr "_Path:" #~ msgid "the next week" #~ msgstr "the next week" #~ msgid "Pan: New Scoring Rule" #~ msgstr "Pan: New Scoring Rule" #~ msgid "Then" #~ msgstr "Then" #~ msgid "For" #~ msgstr "For" #~ msgid "Name: \"%s\"" #~ msgstr "Name: \"%s\"" #~ msgid "Pan: Add a Server" #~ msgstr "Pan: Add a Server" #~ msgid "Pan: Edit a Server's Settings" #~ msgstr "Pan: Edit a Server's Settings" #~ msgid "Pan: Servers" #~ msgstr "Pan: Servers" #~ msgid "%.2f KiB" #~ msgstr "%.2f KB" #~ msgid "%.2f MiB" #~ msgstr "%.2f MB" #~ msgid "%.2f GiB" #~ msgstr "%.2f GB" #~ msgid "Status" #~ msgstr "Status" #~ msgid "Unable to set group: %s" #~ msgstr "Unable to set group: %s" #~ msgid "Couldn't load \"%s\": %s" #~ msgstr "Couldn't load \"%s\": %s" #~ msgid "" #~ "Error saving \"%s\":\n" #~ "%s. %s" #~ msgstr "" #~ "Error saving \"%s\":\n" #~ "%s. %s" #~ msgid "Warning: Unknown group \"%s\"." #~ msgstr "Warning: Unknown group \"%s\"." pan-0.162/po/en_GB.po000066400000000000000000004142071475412772400142550ustar00rootroot00000000000000# English (British) translation # Copyright (C) 2000 Free Software Foundation, Inc. # Robert Brady , 2000. # Gareth Owen , David Lodge , 2004. # msgid "" msgstr "" "Project-Id-Version: pan CVS\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-04-04 20:58+0200\n" "PO-Revision-Date: 2007-05-15 21:53-0000\n" "Last-Translator: David Lodge \n" "Language-Team: \n" "Language: en_GB\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../pan.desktop.in.h:1 msgid "Pan Newsreader" msgstr "Pan Newsreader" #: ../pan.desktop.in.h:2 #, fuzzy msgid "Read and Post Usenet Articles" msgstr "Get Selected Articles" #: ../pan/data/article-cache.cc:143 ../pan/data/encode-cache.cc:62 #, c-format msgid "Error opening directory: \"%s\": %s" msgstr "Error opening directory: \"%s\": %s" #: ../pan/data/article-cache.cc:231 ../pan/data/article-cache.cc:242 #: ../pan/data-impl/data-io.cc:187 ../pan/data-impl/data-io.cc:211 #: ../pan/gui/post-ui.cc:1639 #, c-format msgid "Unable to save \"%s\" %s" msgstr "Unable to save \"%s\" %s" #: ../pan/data/article-cache.cc:355 #, c-format msgid "Error opening file \"%s\" %s" msgstr "Error opening file \"%s\" %s" #: ../pan/data/article-cache.cc:386 ../pan/data-impl/profiles.cc:174 #: ../pan/data-impl/server.cc:436 ../pan/general/file-util.cc:298 #: ../pan/gui/post-ui.cc:609 ../pan/gui/task-pane.cc:691 #, c-format msgid "Error reading file \"%s\": %s" msgstr "Error reading file \"%s\": %s" #: ../pan/data/cert-store.cc:238 #, fuzzy, c-format msgid "Error opening SSL certificate directory: \"%s\": %s" msgstr "Error opening directory: \"%s\": %s" #: ../pan/data/cert-store.cc:270 #, c-format msgid "Succesfully added %d SSL PEM certificate(s) to Certificate Store." msgstr "" #. load_group_descriptions (*_data_io); #: ../pan/data-impl/data-impl.cc:109 #, c-format msgid "Loaded data backend in %.1f seconds" msgstr "Loaded data backend in %.1f seconds" #: ../pan/data-impl/data-impl.cc:140 msgid "Pan newsreader server passwords" msgstr "" #: ../pan/data-impl/groups.cc:94 #, c-format msgid "Skipping newsrc file for server \"%s\"" msgstr "Skipping newsrc file for server \"%s\"" #: ../pan/data-impl/headers.cc:606 #, c-format msgid "Expired %lu old articles from \"%s\"" msgstr "Expired %lu old articles from \"%s\"" #: ../pan/data-impl/headers.cc:613 #, c-format msgid "" "Unsupported data version for %s headers: %d.\n" "Are you running an old version of Pan by accident?" msgstr "" "Unsupported data version for %s headers: %d.\n" "Are you running an old version of Pan by accident?" #: ../pan/data-impl/headers.cc:628 #, c-format msgid "Loaded %lu articles for \"%s\" in %.1f seconds (%.0f per second)" msgstr "Loaded %lu articles for \"%s\" in %.1f seconds (%.0f per second)" #: ../pan/data-impl/headers.cc:857 #, fuzzy, c-format msgid "" "Saved %lu parts, %lu articles in \"%s\" in %.1f seconds (%.0f articles/sec)" msgstr "Saved %lu parts, %lu articles in \"%s\" in %.1f seconds (%.0f art/sec)" #: ../pan/data-impl/headers.cc:1173 #, c-format msgid "Added %lu articles to %s." msgstr "Added %lu articles to %s." #: ../pan/data-impl/server.cc:234 #, c-format msgid "There seems to be no Password set for Server %s." msgstr "" #: ../pan/data-impl/server.cc:238 msgid "The Gnome keyring denied access to the Passwords." msgstr "" #: ../pan/data-impl/xover.cc:239 #, c-format msgid "Error reading from %s: unknown group \"%s\"" msgstr "Error reading from %s: unknown group \"%s\"" #. build the locale strings #: ../pan/general/e-util.cc:213 msgid "%l:%M %p" msgstr "%l:%M %p" #: ../pan/general/e-util.cc:214 msgid "Today %l:%M %p" msgstr "Today %l:%M %p" #: ../pan/general/e-util.cc:215 msgid "%a %l:%M %p" msgstr "%a %l:%M %p" #: ../pan/general/e-util.cc:216 msgid "%b %d %l:%M %p" msgstr "%b %d %l:%M %p" #: ../pan/general/e-util.cc:217 msgid "%b %d %Y" msgstr "%b %d %Y" #: ../pan/general/e-util.cc:242 msgid "?" msgstr "?" #: ../pan/general/text-match.cc:193 #, c-format msgid "Can't use regular expression \"%s\": %s" msgstr "Can't use regular expression \"%s\": %s" #: ../pan/general/utf8-utils.cc:213 msgid "Couldn't determine article encoding. Non-UTF8 characters were removed." msgstr "" "Couldn't determine article encoding. Non-UTF8 characters were removed." #: ../pan/gui/actions.cc:274 ../pan/gui/post-ui.cc:417 msgid "_File" msgstr "_File" #: ../pan/gui/actions.cc:275 ../pan/gui/post-ui.cc:418 msgid "_Edit" msgstr "_Edit" #: ../pan/gui/actions.cc:276 ../pan/gui/prefs-ui.cc:1064 msgid "_Layout" msgstr "_Layout" #: ../pan/gui/actions.cc:277 msgid "_Group Pane" msgstr "_Group Pane" #: ../pan/gui/actions.cc:278 msgid "_Header Pane" msgstr "_Header Pane" #: ../pan/gui/actions.cc:279 msgid "_Body Pane" msgstr "_Body Pane" #: ../pan/gui/actions.cc:280 msgid "_View" msgstr "_View" #: ../pan/gui/actions.cc:281 msgid "Filte_r" msgstr "Filte_r" #: ../pan/gui/actions.cc:282 msgid "_Go" msgstr "_Go" #: ../pan/gui/actions.cc:283 ../pan/gui/prefs-ui.cc:1091 msgid "_Actions" msgstr "_Actions" #: ../pan/gui/actions.cc:284 msgid "_Articles" msgstr "_Articles" #: ../pan/gui/actions.cc:285 msgid "G_roups" msgstr "G_roups" #: ../pan/gui/actions.cc:286 ../pan/gui/actions.cc:287 msgid "_Post" msgstr "_Post" #: ../pan/gui/actions.cc:288 msgid "_Help" msgstr "_Help" #: ../pan/gui/actions.cc:291 msgid "_Read Group" msgstr "_Read Group" #: ../pan/gui/actions.cc:292 #, fuzzy msgid "Read Group" msgstr "_Read Group" #: ../pan/gui/actions.cc:296 #, fuzzy msgid "_Mark Selected Groups Read" msgstr "_Mark Selected Groups _Read" #: ../pan/gui/actions.cc:297 #, fuzzy msgid "Mark Selected Groups Read" msgstr "_Mark Selected Groups _Read" #: ../pan/gui/actions.cc:301 msgid "_Delete Selected Groups' Articles" msgstr "_Delete Selected Groups' Articles" #: ../pan/gui/actions.cc:302 #, fuzzy msgid "Delete Selected Groups' Articles" msgstr "_Delete Selected Groups' Articles" #: ../pan/gui/actions.cc:306 msgid "Get New _Headers in Selected Groups" msgstr "Get New _Headers in Selected Groups" #: ../pan/gui/actions.cc:307 #, fuzzy msgid "Get New Headers in Selected Groups" msgstr "Get New _Headers in Selected Groups" #: ../pan/gui/actions.cc:311 ../pan/gui/actions.cc:316 msgid "Get New _Headers in Subscribed Groups" msgstr "Get New _Headers in Subscribed Groups" #: ../pan/gui/actions.cc:312 ../pan/gui/actions.cc:317 #, fuzzy msgid "Get New Headers in Subscribed Groups" msgstr "/Get New Headers in Subscribed Groups" #: ../pan/gui/actions.cc:321 msgid "Get _Headers..." msgstr "Get _Headers..." #: ../pan/gui/actions.cc:322 #, fuzzy msgid "Get Headers..." msgstr "Get _Headers..." #: ../pan/gui/actions.cc:326 ../pan/gui/actions.cc:327 msgid "Refresh Group List" msgstr "Refresh Group List" #: ../pan/gui/actions.cc:331 msgid "_Subscribe" msgstr "_Subscribe" #: ../pan/gui/actions.cc:332 #, fuzzy msgid "Subscribe" msgstr "_Subscribe" #: ../pan/gui/actions.cc:336 msgid "_Unsubscribe" msgstr "_Unsubscribe" #: ../pan/gui/actions.cc:337 #, fuzzy msgid "Unsubscribe" msgstr "_Unsubscribe" #: ../pan/gui/actions.cc:341 msgid "_Save Articles..." msgstr "_Save Articles..." #: ../pan/gui/actions.cc:342 #, fuzzy msgid "Save Articles..." msgstr "_Save Articles..." #: ../pan/gui/actions.cc:346 #, fuzzy msgid "Save Articles from Selected _NZB..." msgstr "_Save Articles from this NZB..." #: ../pan/gui/actions.cc:347 #, fuzzy msgid "Save Articles from Selected NZB" msgstr "_Save Articles from this NZB..." #: ../pan/gui/actions.cc:351 #, fuzzy msgid "Save Articles to an NZB _File..." msgstr "_Save Articles from this NZB..." #: ../pan/gui/actions.cc:352 #, fuzzy msgid "Save Articles to an NZB File" msgstr "_Save Articles from this NZB..." #: ../pan/gui/actions.cc:356 ../pan/gui/actions.cc:357 #, fuzzy msgid "Print" msgstr "Pan: Print" #: ../pan/gui/actions.cc:361 msgid "_Import NZB Files..." msgstr "_Import NZB Files..." #: ../pan/gui/actions.cc:366 msgid "_Cancel Last Task" msgstr "_Cancel Last Task" #: ../pan/gui/actions.cc:371 msgid "_Task Manager" msgstr "_Task Manager" #: ../pan/gui/actions.cc:376 msgid "_Event Log" msgstr "_Event Log" #: ../pan/gui/actions.cc:381 msgid "_Quit" msgstr "_Quit" #: ../pan/gui/actions.cc:386 msgid "Select _All Articles" msgstr "Select _All Articles" #: ../pan/gui/actions.cc:391 msgid "_Deselect All Articles" msgstr "_Deselect All Articles" #: ../pan/gui/actions.cc:396 msgid "Add Su_bthreads to Selection" msgstr "Add Su_bthreads to Selection" #: ../pan/gui/actions.cc:401 msgid "Add _Threads to Selection" msgstr "Add _Threads to Selection" #: ../pan/gui/actions.cc:406 msgid "Add _Similar Articles to Selection" msgstr "Add _Similar Articles to Selection" #: ../pan/gui/actions.cc:411 msgid "Select Article _Body" msgstr "Select Article _Body" #: ../pan/gui/actions.cc:416 msgid "Edit _Preferences" msgstr "Edit _Preferences" #: ../pan/gui/actions.cc:421 msgid "Edit Selected _Group's Preferences" msgstr "Edit Selected _Group's Preferences" #: ../pan/gui/actions.cc:426 ../pan/gui/post-ui.cc:434 msgid "Edit P_osting Profiles" msgstr "Edit P_osting Profiles" #: ../pan/gui/actions.cc:431 msgid "Edit _News Servers" msgstr "Edit _News Servers" #: ../pan/gui/actions.cc:436 msgid "Jump to _Group Tab" msgstr "Jump to _Group Tab" #: ../pan/gui/actions.cc:441 msgid "Jump to _Header Tab" msgstr "Jump to _Header Tab" #: ../pan/gui/actions.cc:446 msgid "Jump to _Body Tab" msgstr "Jump to _Body Tab" #: ../pan/gui/actions.cc:451 msgid "_Rot13 Selected Text" msgstr "_Rot13 Selected Text" #: ../pan/gui/actions.cc:456 msgid "Clear _Header Pane" msgstr "Clear _Header Pane" #: ../pan/gui/actions.cc:461 msgid "Clear _Body Pane" msgstr "Clear _Body Pane" #: ../pan/gui/actions.cc:466 msgid "Cache Article" msgstr "Cache Article" #: ../pan/gui/actions.cc:471 msgid "Read Article" msgstr "Read Article" #: ../pan/gui/actions.cc:476 msgid "Show Article Information" msgstr "Show Article Information" #: ../pan/gui/actions.cc:481 msgid "Read _More" msgstr "Read _More" #: ../pan/gui/actions.cc:482 msgid "Read More" msgstr "Read More" #: ../pan/gui/actions.cc:486 msgid "Read _Back" msgstr "Read _Back" #: ../pan/gui/actions.cc:487 msgid "Read Back" msgstr "Read Back" #: ../pan/gui/actions.cc:491 msgid "Next _Unread Group" msgstr "Next _Unread Group" #: ../pan/gui/actions.cc:496 msgid "Next _Group" msgstr "Next _Group" #: ../pan/gui/actions.cc:501 msgid "Next _Unread Article" msgstr "Next _Unread Article" #: ../pan/gui/actions.cc:502 msgid "Next Unread Article" msgstr "Next Unread Article" #: ../pan/gui/actions.cc:506 msgid "Next _Article" msgstr "Next _Article" #: ../pan/gui/actions.cc:507 #, fuzzy msgid "Next Article" msgstr "Next _Article" #: ../pan/gui/actions.cc:511 msgid "Next _Watched Article" msgstr "Next _Watched Article" #: ../pan/gui/actions.cc:516 msgid "Next Unread _Thread" msgstr "Next Unread _Thread" #: ../pan/gui/actions.cc:517 msgid "Next Unread Thread" msgstr "Next Unread Thread" #: ../pan/gui/actions.cc:521 msgid "Next Threa_d" msgstr "Next Threa_d" #: ../pan/gui/actions.cc:526 msgid "Pre_vious Article" msgstr "Pre_vious Article" #: ../pan/gui/actions.cc:531 msgid "Previous _Thread" msgstr "Previous _Thread" #: ../pan/gui/actions.cc:536 msgid "_Parent Article" msgstr "_Parent Article" #: ../pan/gui/actions.cc:541 msgid "Ignore _Author" msgstr "Ignore _Author" #: ../pan/gui/actions.cc:545 msgid "_Watch Thread" msgstr "_Watch Thread" #: ../pan/gui/actions.cc:550 msgid "_Ignore Thread" msgstr "_Ignore Thread" #: ../pan/gui/actions.cc:555 ../pan/gui/actions.cc:556 #, fuzzy msgid "_Toggle Flag On/Off for Thread" msgstr "_Watch Thread" #: ../pan/gui/actions.cc:560 ../pan/gui/actions.cc:561 #, fuzzy msgid "_Turn Flag Off for Thread" msgstr "_Watch Thread" #: ../pan/gui/actions.cc:565 ../pan/gui/actions.cc:566 #, fuzzy msgid "_Select All Flagged Threads" msgstr "/_Go/Next N_ew Thread" #: ../pan/gui/actions.cc:570 ../pan/gui/actions.cc:571 #, fuzzy msgid "_Go to Next Flagged Thread" msgstr "/_Go/Next N_ew Thread" #: ../pan/gui/actions.cc:575 ../pan/gui/actions.cc:576 #, fuzzy msgid "_Go to Last Flagged Thread" msgstr "/_Go/Next N_ew Thread" #: ../pan/gui/actions.cc:580 ../pan/gui/actions.cc:581 #, fuzzy msgid "_Invert Selection" msgstr "Invert the selected line" #: ../pan/gui/actions.cc:585 msgid "Edit Article's Watch/Ignore/Score..." msgstr "Edit Article's Watch/Ignore/Score..." #: ../pan/gui/actions.cc:590 #, fuzzy msgid "Add a _Scoring Rule..." msgstr "_Add a _Scoring Rule..." #: ../pan/gui/actions.cc:595 msgid "Cance_l Article..." msgstr "Cance_l Article..." #: ../pan/gui/actions.cc:600 msgid "_Supersede Article..." msgstr "_Supersede Article..." #: ../pan/gui/actions.cc:605 msgid "_Delete Article" msgstr "_Delete Article" #: ../pan/gui/actions.cc:610 msgid "Clear Article Cache" msgstr "Clear Article Cache" #: ../pan/gui/actions.cc:615 msgid "_Mark Article as Read" msgstr "_Mark Article as Read" #: ../pan/gui/actions.cc:620 msgid "Mark Article as _Unread" msgstr "Mark Article as _Unread" #: ../pan/gui/actions.cc:626 #, fuzzy msgid "_Mark Thread as Read" msgstr "_Mark Article as Read" #: ../pan/gui/actions.cc:631 #, fuzzy msgid "Mark Thread as _Unread" msgstr "Mark Article as _Unread" #: ../pan/gui/actions.cc:636 msgid "_Post to Newsgroup" msgstr "_Post to Newsgroup" #: ../pan/gui/actions.cc:637 msgid "Post to Newsgroup" msgstr "Post to Newsgroup" #: ../pan/gui/actions.cc:641 msgid "_Followup to Newsgroup" msgstr "_Followup to Newsgroup" #: ../pan/gui/actions.cc:642 msgid "Followup to Newsgroup" msgstr "Followup to Newsgroup" #: ../pan/gui/actions.cc:646 msgid "_Reply to Author in Mail" msgstr "_Reply to Author in Mail" #: ../pan/gui/actions.cc:651 msgid "_Pan Home Page" msgstr "_Pan Home Page" #: ../pan/gui/actions.cc:656 msgid "Give _Feedback or Report a Bug..." msgstr "Give _Feedback or Report a Bug..." #: ../pan/gui/actions.cc:661 msgid "_Tip Jar..." msgstr "_Tip Jar..." #: ../pan/gui/actions.cc:666 msgid "_About" msgstr "_About" #: ../pan/gui/actions.cc:671 msgid "Edit _SSL Certificates" msgstr "" #: ../pan/gui/actions.cc:685 msgid "_Thread Headers" msgstr "_Thread Headers" #: ../pan/gui/actions.cc:686 msgid "_Wrap Article Body" msgstr "_Wrap Article Body" #: ../pan/gui/actions.cc:687 msgid "Mute _Quoted Text" msgstr "Mute _Quoted Text" #: ../pan/gui/actions.cc:688 msgid "Show All _Headers in Body Pane" msgstr "Show All _Headers in Body Pane" #: ../pan/gui/actions.cc:689 msgid "Show _Smilies as Graphics" msgstr "Show _Smilies as Graphics" #: ../pan/gui/actions.cc:690 msgid "Show *Bold*, __Underlined__, and /Italic/" msgstr "Show *Bold*, __Underlined__, and /Italic/" #: ../pan/gui/actions.cc:691 msgid "Size Pictures to _Fit" msgstr "Size Pictures to _Fit" #: ../pan/gui/actions.cc:692 msgid "Use _Monospace Font" msgstr "Use _Monospace Font" #: ../pan/gui/actions.cc:693 msgid "Set Focus to Images" msgstr "Set Focus to Images" #: ../pan/gui/actions.cc:694 msgid "Highlight _URLs" msgstr "" #: ../pan/gui/actions.cc:697 msgid "_Work Online" msgstr "_Work Online" #: ../pan/gui/actions.cc:698 msgid "_Tabbed Layout" msgstr "_Tabbed Layout" #: ../pan/gui/actions.cc:699 msgid "Show Group _Pane" msgstr "Show Group _Pane" #: ../pan/gui/actions.cc:700 msgid "Show Hea_der Pane" msgstr "Show Hea_der Pane" #: ../pan/gui/actions.cc:701 msgid "Show Bod_y Pane" msgstr "Show Bod_y Pane" #: ../pan/gui/actions.cc:702 msgid "Show _Toolbar" msgstr "Show _Toolbar" #: ../pan/gui/actions.cc:703 msgid "Abbreviate Group Names" msgstr "Abbreviate Group Names" #: ../pan/gui/actions.cc:705 msgid "Match Only _Unread Articles" msgstr "Match Only _Unread Articles" #: ../pan/gui/actions.cc:705 msgid "Match Only Unread Articles" msgstr "Match Only Unread Articles" #: ../pan/gui/actions.cc:706 msgid "Match Only _Cached Articles" msgstr "Match Only _Cached Articles" #: ../pan/gui/actions.cc:706 msgid "Match Only Cached Articles" msgstr "Match Only Cached Articles" #: ../pan/gui/actions.cc:707 msgid "Match Only _Complete Articles" msgstr "Match Only _Complete Articles" #: ../pan/gui/actions.cc:707 msgid "Match Only Complete Articles" msgstr "Match Only Complete Articles" #: ../pan/gui/actions.cc:708 msgid "Match Only _My Articles" msgstr "Match Only _My Articles" #: ../pan/gui/actions.cc:708 #, fuzzy msgid "Match Only My Articles" msgstr "Match Only _My Articles" #: ../pan/gui/actions.cc:709 msgid "Match Only _Watched Articles" msgstr "Match Only _Watched Articles" #: ../pan/gui/actions.cc:709 msgid "Match Only Watched Articles" msgstr "Match Only Watched Articles" #: ../pan/gui/actions.cc:711 msgid "Match Scores of 9999 (_Watched)" msgstr "Match Scores of 9999 (_Watched)" #: ../pan/gui/actions.cc:712 msgid "Match Scores of 5000...9998 (_High)" msgstr "Match Scores of 5000...9998 (_High)" #: ../pan/gui/actions.cc:713 msgid "Match Scores of 1...4999 (Me_dium)" msgstr "Match Scores of 1...4999 (Me_dium)" #: ../pan/gui/actions.cc:714 msgid "Match Scores of 0 (_Normal)" msgstr "Match Scores of 0 (_Normal)" #: ../pan/gui/actions.cc:715 msgid "Match Scores of -9998...-1 (_Low)" msgstr "Match Scores of -9998...-1 (_Low)" #: ../pan/gui/actions.cc:716 msgid "Match Scores of -9999 (_Ignored)" msgstr "Match Scores of -9999 (_Ignored)" #: ../pan/gui/actions.cc:718 msgid "Enable/Disable All _Rules" msgstr "" #: ../pan/gui/actions.cc:744 msgid "Show Matching _Articles" msgstr "Show Matching _Articles" #: ../pan/gui/actions.cc:745 msgid "Show Matching Articles' _Threads" msgstr "Show Matching Articles' _Threads" #: ../pan/gui/actions.cc:746 msgid "Show Matching Articles' _Subthreads" msgstr "Show Matching Articles' _Subthreads" #: ../pan/gui/body-pane.cc:1011 #, fuzzy, c-format msgid "Unnamed File" msgstr "Signature File" #: ../pan/gui/body-pane.cc:1092 ../pan/gui/gui.cc:1864 #: ../pan/gui/header-pane.cc:1188 ../pan/gui/header-pane.cc:1617 #: ../pan/gui/post-ui.cc:2496 ../pan/gui/prefs-ui.cc:833 #: ../pan/gui/score-add-ui.cc:139 msgid "Subject" msgstr "Subject" #: ../pan/gui/body-pane.cc:1094 ../pan/gui/gui.cc:1864 msgid "From" msgstr "From" #: ../pan/gui/body-pane.cc:1096 ../pan/gui/gui.cc:1865 #: ../pan/gui/header-pane.cc:1695 ../pan/gui/log-ui.cc:305 #: ../pan/gui/prefs-ui.cc:829 msgid "Date" msgstr "Date" #: ../pan/gui/body-pane.cc:1103 msgid "Newsgroups" msgstr "Newsgroups" #: ../pan/gui/body-pane.cc:1108 msgid "Followup-To" msgstr "Followup-To" #: ../pan/gui/body-pane.cc:1118 msgid "Reply-To" msgstr "Reply-To" #: ../pan/gui/body-pane.cc:1160 msgid " from " msgstr " from " #: ../pan/gui/body-pane.cc:1162 msgid " at " msgstr " at " #: ../pan/gui/body-pane.cc:1264 #, c-format msgid "" "This is a PGP-Signed message.\n" "\n" "Signer : %s ('%s')\n" "Valid until : %s\n" "Created on : %s" msgstr "" #: ../pan/gui/body-pane.cc:1269 msgid "always" msgstr "" #: ../pan/gui/body-pane.cc:1485 msgid "Copy _URL" msgstr "Copy _URL" #: ../pan/gui/body-pane.cc:1680 #, fuzzy msgid "Save attachment as ...." msgstr "Save _Attachments" #: ../pan/gui/body-pane.cc:1683 #, fuzzy msgid "Save all attachments" msgstr "Save attachments" #. add a toolbar for attachments #: ../pan/gui/body-pane.cc:1753 msgid "Attachments" msgstr "Attachments" #. update the titlebar #: ../pan/gui/dl-headers-ui.cc:106 ../pan/gui/gui.cc:973 #: ../pan/gui/gui.cc:1592 ../pan/gui/gui.cc:1893 #: ../pan/gui/score-add-ui.cc:602 msgid "Pan" msgstr "Pan" #: ../pan/gui/dl-headers-ui.cc:112 #, fuzzy, c-format msgid "%d Group" msgid_plural "%d Groups" msgstr[0] "%d Groups" msgstr[1] "%d Groups" #: ../pan/gui/dl-headers-ui.cc:135 msgid "Get the last N _days' headers: " msgstr "Get the last N _days' headers: " #: ../pan/gui/dl-headers-ui.cc:143 msgid "Get _new headers" msgstr "Get _new headers" #: ../pan/gui/dl-headers-ui.cc:147 msgid "Get _all headers" msgstr "Get _all headers" #: ../pan/gui/dl-headers-ui.cc:151 msgid "Get the _latest N headers: " msgstr "Get the _latest N headers: " #: ../pan/gui/e-action-combo-box.c:388 ../pan/gui/prefs-ui.cc:826 msgid "Action" msgstr "Action" #: ../pan/gui/e-action-combo-box.c:389 msgid "A GtkRadioAction" msgstr "" #: ../pan/gui/e-charset.c:51 ../pan/gui/task-pane.cc:518 msgid "Unknown" msgstr "Unknown" #: ../pan/gui/e-charset.c:52 msgid "Arabic" msgstr "" #: ../pan/gui/e-charset.c:53 msgid "Baltic" msgstr "Baltic" #: ../pan/gui/e-charset.c:54 msgid "Central European" msgstr "Central European" #: ../pan/gui/e-charset.c:55 msgid "Chinese" msgstr "Chinese" #: ../pan/gui/e-charset.c:56 msgid "Cyrillic" msgstr "Cyrillic" #: ../pan/gui/e-charset.c:57 msgid "Greek" msgstr "Greek" #: ../pan/gui/e-charset.c:58 msgid "Hebrew" msgstr "Hebrew" #: ../pan/gui/e-charset.c:59 msgid "Japanese" msgstr "Japanese" #: ../pan/gui/e-charset.c:60 msgid "Korean" msgstr "Korean" #: ../pan/gui/e-charset.c:61 msgid "Thai" msgstr "Thai" #: ../pan/gui/e-charset.c:62 msgid "Turkish" msgstr "Turkish" #: ../pan/gui/e-charset.c:63 msgid "Unicode" msgstr "Unicode" #: ../pan/gui/e-charset.c:64 msgid "Western European" msgstr "Western European" #: ../pan/gui/e-charset.c:65 msgid "Western European, New" msgstr "Western European, New" #: ../pan/gui/e-charset.c:84 ../pan/gui/e-charset.c:85 #: ../pan/gui/e-charset.c:86 msgid "Traditional" msgstr "Traditional" #: ../pan/gui/e-charset.c:87 ../pan/gui/e-charset.c:88 #: ../pan/gui/e-charset.c:89 ../pan/gui/e-charset.c:90 msgid "Simplified" msgstr "Simplified" #: ../pan/gui/e-charset.c:93 msgid "Ukrainian" msgstr "Ukrainian" #: ../pan/gui/e-charset.c:96 msgid "Visual" msgstr "Visual" #: ../pan/gui/e-charset-combo-box.c:93 ../pan/gui/gui.cc:2058 #: ../pan/gui/post-ui.cc:519 ../pan/gui/prefs-ui.cc:737 msgid "Character Encoding" msgstr "Character Encoding" #: ../pan/gui/e-charset-combo-box.c:117 msgid "Enter the character set to use" msgstr "Enter the character set to use" #: ../pan/gui/e-charset-combo-box.c:336 msgid "Other..." msgstr "Other..." #: ../pan/gui/e-cte-dialog.c:78 #, fuzzy msgid "Default encoding" msgstr "Decoding" #: ../pan/gui/e-cte-dialog.c:80 #, fuzzy msgid "7Bit Encoding" msgstr "Decoding" #: ../pan/gui/e-cte-dialog.c:82 #, fuzzy msgid "8Bit Encoding" msgstr "Decoding" #: ../pan/gui/e-cte-dialog.c:84 #, fuzzy msgid "BASE64 Encoding" msgstr "Decoding" #: ../pan/gui/e-cte-dialog.c:86 #, fuzzy msgid "Quoted-Printable Encoding" msgstr "Body Pane Encoding" #: ../pan/gui/group-pane.cc:500 msgid "Group" msgstr "Group" #: ../pan/gui/group-pane.cc:501 #, fuzzy msgid "Group (regex)" msgstr "Group Properties" #: ../pan/gui/group-pane.cc:913 msgid "Subscribed Groups" msgstr "Subscribed Groups" #: ../pan/gui/group-pane.cc:914 msgid "Other Groups" msgstr "Other Groups" #: ../pan/gui/group-pane.cc:954 ../pan/gui/score-view-ui.cc:157 msgid "Name" msgstr "Name" #: ../pan/gui/group-prefs-dialog.cc:156 msgid "No Profiles defined in Edit|Posting Profiles." msgstr "No Profiles defined in Edit|Posting Profiles." #: ../pan/gui/group-prefs-dialog.cc:231 msgid "Pan: Group Preferences" msgstr "Pan: Group Preferences" #: ../pan/gui/group-prefs-dialog.cc:247 #, fuzzy, c-format msgid "Properties for Groups" msgstr "Properties for %s" #: ../pan/gui/group-prefs-dialog.cc:249 #, c-format msgid "Properties for %s" msgstr "Properties for %s" #: ../pan/gui/group-prefs-dialog.cc:257 msgid "Character _encoding:" msgstr "Character _encoding:" #: ../pan/gui/group-prefs-dialog.cc:259 msgid "Directory for Saving Attachments" msgstr "Directory for Saving Attachments" #: ../pan/gui/group-prefs-dialog.cc:269 msgid "Directory for _saving attachments:" msgstr "Directory for _saving attachments:" #: ../pan/gui/group-prefs-dialog.cc:271 msgid "Posting _profile:" msgstr "Posting _profile:" #: ../pan/gui/group-prefs-dialog.cc:277 msgid "Spellchecker _language:" msgstr "" #: ../pan/gui/gui.cc:273 msgid "Open the Task Manager" msgstr "Open the Task Manager" #: ../pan/gui/gui.cc:301 msgid "Open the Event Log" msgstr "Open the Event Log" #: ../pan/gui/gui.cc:561 msgid "Save NZB's Files" msgstr "Save NZB's Files" #: ../pan/gui/gui.cc:588 msgid "Untitled.nzb" msgstr "" #: ../pan/gui/gui.cc:590 #, fuzzy msgid "Save NZB File as..." msgstr "Save NZB's Files" #: ../pan/gui/gui.cc:757 msgid "Import NZB Files" msgstr "Import NZB Files" #: ../pan/gui/gui.cc:765 ../pan/gui/post-ui.cc:3197 msgid "NZB Files" msgstr "NZB Files" #: ../pan/gui/gui.cc:770 msgid "All Files" msgstr "All Files" #: ../pan/gui/gui.cc:1258 msgid "Unable to supersede article." msgstr "Unable to supersede article." #: ../pan/gui/gui.cc:1259 ../pan/gui/gui.cc:1333 msgid "The article doesn't match any of your posting profiles." msgstr "The article doesn't match any of your posting profiles." #: ../pan/gui/gui.cc:1306 msgid "Revise and send this article to replace the old one." msgstr "Revise and send this article to replace the old one." #: ../pan/gui/gui.cc:1307 ../pan/gui/gui.cc:1370 msgid "Be patient! It will take time for your changes to take effect." msgstr "Be patient! It will take time for your changes to take effect." #: ../pan/gui/gui.cc:1332 msgid "Unable to cancel article." msgstr "Unable to cancel article." #: ../pan/gui/gui.cc:1369 msgid "Send this article to ask your server to cancel your other one." msgstr "Send this article to ask your server to cancel your other one." #: ../pan/gui/gui.cc:1387 #, fuzzy msgid "You marked some articles for deletion" msgstr "Add _Similar Articles to Selection" #: ../pan/gui/gui.cc:1388 #, fuzzy msgid "Are you sure you want to delete them?" msgstr "" "Are you sure you want to delete these %d groups/folders and their articles?" #: ../pan/gui/gui.cc:1413 #, fuzzy msgid "Always trust" msgstr "Always Run Editor" #: ../pan/gui/gui.cc:1416 msgid "Do you want to accept it permanently (deletable afterwards) ?" msgstr "" #: ../pan/gui/gui.cc:1595 #, fuzzy msgid "Copyright \\u00A9 2002-2012 Charles Kerr and others" msgstr "Copyright © 2002-2007 Charles Kerr" #: ../pan/gui/gui.cc:1600 msgid "translator-credits" msgstr "" "Robert Brady \n" "Gareth Owen \n" "David Lodge " #: ../pan/gui/gui.cc:1709 msgid "_1. Group Pane" msgstr "_1. Group Pane" #: ../pan/gui/gui.cc:1710 msgid "_2. Header Pane" msgstr "_2. Header Pane" #: ../pan/gui/gui.cc:1711 msgid "_3. Body Pane" msgstr "_3. Body Pane" #: ../pan/gui/gui.cc:1800 ../pan/gui/gui.cc:1815 #, fuzzy msgid " Bytes" msgstr "Bytes" #: ../pan/gui/gui.cc:1803 msgid " KB" msgstr "" #: ../pan/gui/gui.cc:1806 msgid " MB" msgstr "" #: ../pan/gui/gui.cc:1809 msgid " GB" msgstr "" #: ../pan/gui/gui.cc:1812 msgid " TB" msgstr "" #: ../pan/gui/gui.cc:1844 #, fuzzy, c-format msgid "This article is complete with %d part." msgid_plural "This article has all %d parts." msgstr[0] "This article has all %d parts." msgstr[1] "This article has all %d parts." #: ../pan/gui/gui.cc:1846 #, fuzzy, c-format msgid "This article is missing %d part." msgid_plural "This article is missing %d of its %d parts:" msgstr[0] "This article is missing %d of its %d parts:" msgstr[1] "This article is missing %d of its %d parts:" #: ../pan/gui/gui.cc:1865 ../pan/gui/header-pane.cc:1190 msgid "Message-ID" msgstr "Message-ID" #: ../pan/gui/gui.cc:1866 ../pan/gui/header-pane.cc:1665 #: ../pan/gui/prefs-ui.cc:830 msgid "Lines" msgstr "Lines" #: ../pan/gui/gui.cc:1866 msgid "Size" msgstr "" #: ../pan/gui/gui.cc:1867 ../pan/gui/header-pane.cc:1680 #: ../pan/gui/prefs-ui.cc:828 msgid "Bytes" msgstr "Bytes" #: ../pan/gui/gui.cc:1917 msgid "" "Error loading iconv library. Some Charsets in the GUI will not be able to be " "encoded." msgstr "" #: ../pan/gui/gui.cc:2059 msgid "Body Pane Encoding" msgstr "Body Pane Encoding" #: ../pan/gui/gui.cc:2090 ../pan/gui/task-pane.cc:569 #, c-format msgid "Offline" msgstr "Offline" #: ../pan/gui/gui.cc:2094 #, fuzzy, c-format msgid "Closing %d connection" msgid_plural "Closing %d connections" msgstr[0] "Closing %d connections" msgstr[1] "Closing %d connections" #: ../pan/gui/gui.cc:2096 ../pan/gui/gui.cc:2126 #, c-format msgid "No Connections" msgstr "No Connections" #: ../pan/gui/gui.cc:2100 #, c-format msgid "Connecting" msgstr "Connecting" #: ../pan/gui/gui.cc:2113 #, c-format msgid "%s: %d idle, %d active @ %.1f KiBps" msgstr "%s: %d idle, %d active @ %.1f KiBps" #: ../pan/gui/gui.cc:2169 #, c-format msgid "No Tasks" msgstr "No Tasks" #: ../pan/gui/gui.cc:2171 ../pan/gui/prefs-ui.cc:1047 msgid "Tasks" msgstr "Tasks" #: ../pan/gui/gui.cc:2182 ../pan/gui/task-pane.cc:435 #, c-format msgid "%lu tasks, %s, %.1f KiBps, ETA %d:%02d:%02d" msgstr "%lu tasks, %s, %.1f KBps, ETA %d:%02d:%02d" #: ../pan/gui/gui.cc:2234 msgid "" "Pan is now offline. Please see \"File|Event Log\" and correct the problem, " "then use \"File|Work Online\" to continue." msgstr "" "Pan is now offline. Please see \"File|Event Log\" and correct the problem, " "then use \"File|Work Online\" to continue." #: ../pan/gui/header-pane.cc:1186 msgid "Subject or Author" msgstr "Subject or Author" #: ../pan/gui/header-pane.cc:1187 #, fuzzy msgid "Sub or Auth (regex)" msgstr "Subject or Author" #: ../pan/gui/header-pane.cc:1189 ../pan/gui/header-pane.cc:1649 #: ../pan/gui/prefs-ui.cc:827 ../pan/gui/score-add-ui.cc:140 msgid "Author" msgstr "Author" #: ../pan/gui/header-pane.cc:1634 ../pan/gui/prefs-ui.cc:831 msgid "Score" msgstr "Score" #: ../pan/gui/log-ui.cc:103 msgid "Save Event List" msgstr "Save Event List" #: ../pan/gui/log-ui.cc:256 msgid "Pan: Events" msgstr "Pan: Events" #: ../pan/gui/log-ui.cc:315 msgid "Message" msgstr "Message" #: ../pan/gui/pan.cc:330 msgid "Maximize" msgstr "" #: ../pan/gui/pan.cc:383 msgid "An Error has occurred!" msgstr "" #: ../pan/gui/pan.cc:397 #, fuzzy msgid "New Articles!" msgstr "Next _Article" #: ../pan/gui/pan.cc:398 msgid "" "There are new\n" "articles available." msgstr "" #: ../pan/gui/pan.cc:465 msgid "Toggle on/offline" msgstr "" #: ../pan/gui/pan.cc:513 msgid "" "Thank you for trying Pan!\n" " \n" "To start newsreading, first Add a Server." msgstr "" "Thank you for trying Pan!\n" " \n" "To start newsreading, first Add a Server." #: ../pan/gui/pan.cc:595 #, fuzzy msgid "" "General Options\n" " -h, --help Show this usage page.\n" " --verbose Be verbose (in non-GUI mode).\n" "\n" "URL Options\n" " --no-gui On news:message-id, dump the article to stdout.\n" "\n" "NZB Batch Options\n" " --nzb file1 file2 ... Process nzb files without launching all of Pan.\n" " -o path, --output=path Path to save attachments listed in the nzb " "files.\n" " --no-gui Only show console output, not the download " "queue.\n" msgstr "" "General Options\n" " -h, --help Show this usage page.\n" "\n" "URL Options\n" " news:message-id Show the specified article.\n" " news:group.name Show the specified newsgroup.\n" " headers:group.name Download new headers for the specified " "newsgroup.\n" " --no-gui On news:message-id, dump the article to stdout.\n" "\n" "NZB Batch Options\n" " --nzb file1 file2 ... Process nzb files without launching all of Pan.\n" " -o path, --output=path Path to save attachments listed in the nzb " "files.\n" " --no-gui Only show console output, not the download " "queue.\n" #: ../pan/gui/pan.cc:867 msgid "Error: --no-gui used without nzb files or news:message-id." msgstr "Error: --no-gui used without nzb files or news:message-id." #: ../pan/gui/pan.cc:871 #, c-format msgid "Pan %s started" msgstr "Pan %s started" #: ../pan/gui/pan.cc:890 msgid "Please configure Pan's news servers before using it as an nzb client." msgstr "Please configure Pan's news servers before using it as an nzb client." #: ../pan/gui/pan.cc:1009 msgid "Pan notification" msgstr "" #: ../pan/gui/post-ui.cc:186 #, c-format msgid "Upload Queue : %ld Tasks, %ld KB (~ %.2f MB) total ." msgstr "" #: ../pan/gui/post-ui.cc:286 #, fuzzy, c-format msgid "Error setting custom spellchecker: %s" msgstr "Error setting spellchecker: %s" #: ../pan/gui/post-ui.cc:291 ../pan/gui/post-ui.cc:300 #, c-format msgid "Error setting spellchecker: %s" msgstr "Error setting spellchecker: %s" #: ../pan/gui/post-ui.cc:419 msgid "_Profile" msgstr "_Profile" #: ../pan/gui/post-ui.cc:420 msgid "Set Editor" msgstr "Set Editor" #: ../pan/gui/post-ui.cc:422 msgid "_Send Article" msgstr "_Send Article" #: ../pan/gui/post-ui.cc:422 msgid "Send Article Now" msgstr "Send Article Now" #: ../pan/gui/post-ui.cc:423 #, fuzzy msgid "_Send and Save Articles to NZB" msgstr "Pan: Save Articles" #: ../pan/gui/post-ui.cc:423 #, fuzzy msgid "Send and Save Articles to NZB" msgstr "Pan: Save Articles" #: ../pan/gui/post-ui.cc:424 msgid "Set Character _Encoding..." msgstr "Set Character _Encoding..." #: ../pan/gui/post-ui.cc:425 #, fuzzy msgid "Set Content _Transfer Encoding..." msgstr "Set Character _Encoding..." #: ../pan/gui/post-ui.cc:426 msgid "Sa_ve Draft" msgstr "Sa_ve Draft" #: ../pan/gui/post-ui.cc:426 msgid "Save as a Draft for Future Posting" msgstr "Save as a Draft for Future Posting" #: ../pan/gui/post-ui.cc:427 msgid "_Open Draft..." msgstr "_Open Draft..." #: ../pan/gui/post-ui.cc:427 msgid "Open an Article Draft" msgstr "Open an Article Draft" #: ../pan/gui/post-ui.cc:432 msgid "_Rot13" msgstr "_Rot13" #: ../pan/gui/post-ui.cc:432 msgid "Rot13 Selected Text" msgstr "Rot13 Selected Text" #: ../pan/gui/post-ui.cc:433 msgid "Run _Editor" msgstr "Run _Editor" #: ../pan/gui/post-ui.cc:433 #, fuzzy msgid "Run Editor" msgstr "Run _Editor" #: ../pan/gui/post-ui.cc:435 msgid "Add _Files to Queue" msgstr "" #: ../pan/gui/post-ui.cc:435 msgid "Add Files to Queue" msgstr "" #: ../pan/gui/post-ui.cc:450 ../pan/gui/post-ui.cc:451 #, fuzzy msgid "Remove from Queue" msgstr "Remove a Server" #: ../pan/gui/post-ui.cc:455 ../pan/gui/post-ui.cc:456 #, fuzzy msgid "Clear List" msgstr "Clear the Filter" #: ../pan/gui/post-ui.cc:460 ../pan/gui/post-ui.cc:461 #, fuzzy msgid "Select Needed Parts" msgstr "Select Font" #: ../pan/gui/post-ui.cc:465 ../pan/gui/post-ui.cc:466 #: ../pan/gui/task-pane.cc:636 ../pan/gui/task-pane.cc:637 msgid "Move Up" msgstr "" #: ../pan/gui/post-ui.cc:470 ../pan/gui/post-ui.cc:471 #: ../pan/gui/task-pane.cc:641 ../pan/gui/task-pane.cc:642 msgid "Move Down" msgstr "" #: ../pan/gui/post-ui.cc:475 ../pan/gui/post-ui.cc:476 msgid "Move to Top" msgstr "" #: ../pan/gui/post-ui.cc:480 ../pan/gui/post-ui.cc:481 #, fuzzy msgid "Move to Bottom" msgstr "Move Selected Task(s) to Bottom" #: ../pan/gui/post-ui.cc:488 msgid "_Wrap Text" msgstr "_Wrap Text" #: ../pan/gui/post-ui.cc:488 #, fuzzy msgid "Wrap Text" msgstr "_Wrap Text" #: ../pan/gui/post-ui.cc:489 msgid "Always Run Editor" msgstr "Always Run Editor" #: ../pan/gui/post-ui.cc:490 msgid "Remember Character Encoding for this Group" msgstr "Remember Character Encoding for this Group" #: ../pan/gui/post-ui.cc:491 msgid "Thread Attached Replies" msgstr "" #: ../pan/gui/post-ui.cc:492 msgid "PGP-Encrypt the Message" msgstr "" #: ../pan/gui/post-ui.cc:493 msgid "PGP-Sign the Message" msgstr "" #: ../pan/gui/post-ui.cc:494 msgid "Check _Spelling" msgstr "Check _Spelling" #: ../pan/gui/post-ui.cc:520 msgid "New Article's Encoding:" msgstr "New Article's Encoding:" #: ../pan/gui/post-ui.cc:530 #, fuzzy msgid "Content Transfer Encoding" msgstr "Character Encoding" #: ../pan/gui/post-ui.cc:531 #, fuzzy msgid "New Article's Content Transfer Encoding:" msgstr "New Article's Encoding:" #: ../pan/gui/post-ui.cc:711 msgid "Your changes will be lost!" msgstr "Your changes will be lost!" #: ../pan/gui/post-ui.cc:712 msgid "Close this window and lose your changes?" msgstr "Close this window and lose your changes?" #: ../pan/gui/post-ui.cc:757 ../pan/gui/post-ui.cc:796 msgid "There were problems with this post." msgstr "There were problems with this post." #: ../pan/gui/post-ui.cc:759 ../pan/gui/post-ui.cc:798 #: ../pan/gui/post-ui.cc:861 msgid "Go Back" msgstr "Go Back" #: ../pan/gui/post-ui.cc:761 msgid "Post Anyway" msgstr "Post Anyway" #. Prompt the user #: ../pan/gui/post-ui.cc:790 #, c-format msgid "" "Message uses characters not specified in charset '%s' - possibly use '%s' " msgstr "" "Message uses characters not specified in charset '%s' - possibly use '%s' " #: ../pan/gui/post-ui.cc:813 msgid "Go _Online" msgstr "Go _Online" #: ../pan/gui/post-ui.cc:860 msgid "The file queue is empty, so no files can be saved." msgstr "" #: ../pan/gui/post-ui.cc:1019 msgid "" "No posting server is set for this posting profile.\n" "Please edit the profile via Edit|Manage Posting Profiles." msgstr "" "No posting server is set for this posting profile.\n" "Please edit the profile via Edit|Manage Posting Profiles." #: ../pan/gui/post-ui.cc:1054 msgid "Pan is Offline." msgstr "Pan is Offline." #: ../pan/gui/post-ui.cc:1055 msgid "Go online to post the article?" msgstr "Go online to post the article?" #: ../pan/gui/post-ui.cc:1102 #, c-format msgid "" "Error signing/encrypting your message. Perhaps you misspelled your email-" "address (%s) ?" msgstr "" #: ../pan/gui/post-ui.cc:1267 msgid "Error opening temporary file" msgstr "Error opening temporary file" #: ../pan/gui/post-ui.cc:1279 #, c-format msgid "Error writing article to temporary file: %s" msgstr "Error writing article to temporary file: %s" #: ../pan/gui/post-ui.cc:1298 #, c-format msgid "Error parsing \"external editor\" command line: %s (Command was: %s)" msgstr "Error parsing \"external editor\" command line: %s (Command was: %s)" #: ../pan/gui/post-ui.cc:1339 #, c-format msgid "Error starting external editor: %s" msgstr "Error starting external editor: %s" #: ../pan/gui/post-ui.cc:1395 msgid "Open Draft Article" msgstr "Open Draft Article" #: ../pan/gui/post-ui.cc:1606 msgid "Save Draft Article" msgstr "Save Draft Article" #: ../pan/gui/post-ui.cc:1803 #, c-format msgid "Couldn't parse signature command \"%s\": %s" msgstr "Couldn't parse signature command \"%s\": %s" #: ../pan/gui/post-ui.cc:1839 msgid "Couldn't convert signature to UTF-8." msgstr "Couldn't convert signature to UTF-8." #: ../pan/gui/post-ui.cc:2334 msgid "F_rom" msgstr "F_rom" #: ../pan/gui/post-ui.cc:2352 msgid "_Subject" msgstr "_Subject" #: ../pan/gui/post-ui.cc:2365 msgid "_Newsgroups" msgstr "_Newsgroups" #: ../pan/gui/post-ui.cc:2379 msgid "Mail _To" msgstr "Mail _To" #: ../pan/gui/post-ui.cc:2481 msgid "Delete from Queue" msgstr "" #: ../pan/gui/post-ui.cc:2494 msgid "No." msgstr "" #: ../pan/gui/post-ui.cc:2498 ../pan/gui/post-ui.cc:2592 #: ../pan/gui/post-ui.cc:2633 msgid "Filename" msgstr "Filename" #: ../pan/gui/post-ui.cc:2500 msgid "Size (kB)" msgstr "" #: ../pan/gui/post-ui.cc:2600 msgid "The current filename" msgstr "" #: ../pan/gui/post-ui.cc:2604 #, fuzzy msgid "Subject Line" msgstr "Subject" #: ../pan/gui/post-ui.cc:2612 msgid "The current Subject Line" msgstr "" #: ../pan/gui/post-ui.cc:2626 msgid "No. " msgstr "" #: ../pan/gui/post-ui.cc:2630 msgid "Enable/Disable" msgstr "" #: ../pan/gui/post-ui.cc:2664 msgid "Follo_wup-To" msgstr "Follo_wup-To" #. i18n: "poster" is a key used by many newsreaders. probably safest to keep this key in english. #: ../pan/gui/post-ui.cc:2673 msgid "" "The newsgroups where replies to your message should go. This is only needed " "if it differs from the \"Newsgroups\" header.\n" "\n" "To direct all replies to your email address, use \"Followup-To: poster\"" msgstr "" "The newsgroups where replies to your message should go. This is only needed " "if it differs from the \"Newsgroups\" header.\n" "\n" "To direct all replies to your email address, use \"Followup-To: poster\"" #: ../pan/gui/post-ui.cc:2679 msgid "_Reply-To" msgstr "_Reply-To" #: ../pan/gui/post-ui.cc:2687 msgid "" "The email account where mail replies to your posted message should go. This " "is only needed if it differs from the \"From\" header." msgstr "" "The email account where mail replies to your posted message should go. This " "is only needed if it differs from the \"From\" header." #: ../pan/gui/post-ui.cc:2693 msgid "_Custom Headers" msgstr "_Custom Headers" #: ../pan/gui/post-ui.cc:2717 msgid "Add \"_User-Agent\" header" msgstr "Add \"_User-Agent\" header" #: ../pan/gui/post-ui.cc:2724 #, fuzzy msgid "Add \"Message-_Id\" header" msgstr "Add \"Message-_Id header" #: ../pan/gui/post-ui.cc:2855 #, fuzzy msgid "Select Parts" msgstr "Select Font" #: ../pan/gui/post-ui.cc:2866 msgid "_Parts" msgstr "" #: ../pan/gui/post-ui.cc:3022 msgid "Post Article" msgstr "Post Article" #: ../pan/gui/post-ui.cc:3043 msgid "_Message" msgstr "_Message" #: ../pan/gui/post-ui.cc:3044 msgid "More _Headers" msgstr "More _Headers" #: ../pan/gui/post-ui.cc:3045 #, fuzzy msgid "File _Queue" msgstr "/_File/_Quit" #: ../pan/gui/post-ui.cc:3077 ../pan/gui/profiles-dialog.cc:478 #, no-c-format msgid "On %d, %n wrote:" msgstr "On %d, %n wrote:" #: ../pan/gui/post-ui.cc:3106 msgid "Add files to queue" msgstr "" #: ../pan/gui/post-ui.cc:3184 msgid "Save Upload Queue as NZB File" msgstr "" #: ../pan/gui/prefs.cc:343 #, c-format msgid "Couldn't parse %s color \"%s\"" msgstr "Couldn't parse %s colour \"%s\"" #: ../pan/gui/prefs-ui.cc:120 msgid "Grab Key" msgstr "" #: ../pan/gui/prefs-ui.cc:126 #, c-format msgid "" "Press the combination of the keys\n" "you want to use for \"%s\"." msgstr "" #: ../pan/gui/prefs-ui.cc:166 #, fuzzy msgid "Edit Hotkey" msgstr "Edit Filters" #: ../pan/gui/prefs-ui.cc:228 msgid "Error: Shortkey is invalid!" msgstr "" #: ../pan/gui/prefs-ui.cc:244 #, fuzzy msgid "Error: Shortkey already exists!" msgstr "Folder \"%*s\" already exists." #: ../pan/gui/prefs-ui.cc:535 #, fuzzy msgid "Show only icons" msgstr "Show Article Information" #: ../pan/gui/prefs-ui.cc:536 #, fuzzy msgid "Show only text" msgstr "Show Bod_y Pane" #: ../pan/gui/prefs-ui.cc:537 #, fuzzy msgid "Show icons and text" msgstr "Save attachments and text" #: ../pan/gui/prefs-ui.cc:576 msgid "Use GNOME Preferences" msgstr "Use GNOME Preferences" #: ../pan/gui/prefs-ui.cc:577 msgid "Use KDE Preferences" msgstr "Use KDE Preferences" #: ../pan/gui/prefs-ui.cc:578 msgid "Use OS X Preferences" msgstr "Use OS X Preferences" #: ../pan/gui/prefs-ui.cc:579 msgid "Use Windows Preferences" msgstr "Use Windows Preferences" #: ../pan/gui/prefs-ui.cc:580 msgid "Custom Command:" msgstr "Custom Command:" #: ../pan/gui/prefs-ui.cc:632 #, fuzzy msgid "Disabled" msgstr "Enabled" #: ../pan/gui/prefs-ui.cc:633 msgid "Only new (Score == 0)" msgstr "" #: ../pan/gui/prefs-ui.cc:634 #, fuzzy msgid "9999 or more" msgstr "Scores of 9999 or more:" #: ../pan/gui/prefs-ui.cc:635 #, fuzzy msgid "5000 to 9998" msgstr "Scores from 5000 to 9998:" #: ../pan/gui/prefs-ui.cc:636 msgid "1 to 4999" msgstr "" #: ../pan/gui/prefs-ui.cc:637 #, fuzzy msgid "-9998 to -1" msgstr "Scores from -9998 to -1:" #: ../pan/gui/prefs-ui.cc:638 #, fuzzy msgid "-9999 or less" msgstr "Scores of -9999 or less:" #: ../pan/gui/prefs-ui.cc:702 #, c-format msgid "Select default global charset. Current setting : %s ." msgstr "" #: ../pan/gui/prefs-ui.cc:738 msgid "Global Charset Settings" msgstr "" #: ../pan/gui/prefs-ui.cc:832 ../pan/gui/task-pane.cc:770 msgid "State" msgstr "State" #: ../pan/gui/prefs-ui.cc:866 msgid "Enabled" msgstr "Enabled" #: ../pan/gui/prefs-ui.cc:870 msgid "Column Name" msgstr "Column Name" #: ../pan/gui/prefs-ui.cc:908 msgid "Pan: Preferences" msgstr "Pan: Preferences" #: ../pan/gui/prefs-ui.cc:923 msgid "Mouse" msgstr "Mouse" #: ../pan/gui/prefs-ui.cc:925 msgid "Single-click activates, rather than selects, _groups" msgstr "Single-click activates, rather than selects, _groups" #: ../pan/gui/prefs-ui.cc:927 msgid "Single-click activates, rather than selects, _articles" msgstr "Single-click activates, rather than selects, _articles" #: ../pan/gui/prefs-ui.cc:930 msgid "Groups" msgstr "Groups" #: ../pan/gui/prefs-ui.cc:932 msgid "Get new headers in subscribed groups on _startup" msgstr "Get new headers in subscribed groups on _startup" #: ../pan/gui/prefs-ui.cc:934 msgid "Get new headers when _entering group" msgstr "Get new headers when _entering group" #: ../pan/gui/prefs-ui.cc:936 msgid "Mark entire group _read when leaving group" msgstr "Mark entire group _read when leaving group" #: ../pan/gui/prefs-ui.cc:938 msgid "Mark entire group read before getting _new headers" msgstr "Mark entire group read before getting _new headers" #: ../pan/gui/prefs-ui.cc:940 msgid "E_xpand all threads when entering group" msgstr "E_xpand all threads when entering group" #: ../pan/gui/prefs-ui.cc:945 msgid "Articles" msgstr "Articles" #: ../pan/gui/prefs-ui.cc:947 msgid "Space selects next article rather than next unread" msgstr "Space selects next article rather than next unread" #: ../pan/gui/prefs-ui.cc:949 #, fuzzy msgid "Expand threads upon selection" msgstr "Add _Threads to Selection" #: ../pan/gui/prefs-ui.cc:951 msgid "Always show article deletion confirmation dialog" msgstr "" #: ../pan/gui/prefs-ui.cc:953 msgid "Smooth scrolling" msgstr "Smooth scrolling" #: ../pan/gui/prefs-ui.cc:958 #, fuzzy msgid "Article Cache" msgstr "Clear Article Cache" #: ../pan/gui/prefs-ui.cc:959 msgid "Clear article cache on shutdown" msgstr "Clear article cache on shutdown" #: ../pan/gui/prefs-ui.cc:962 msgid "Size of article cache (in MiB) :" msgstr "" #: ../pan/gui/prefs-ui.cc:967 #, fuzzy msgid "File extension for Cached Articles: " msgstr "/Filte_r/Match _Read Articles" #: ../pan/gui/prefs-ui.cc:972 msgid "Tabs" msgstr "" #: ../pan/gui/prefs-ui.cc:977 msgid "_Behavior" msgstr "_Behaviour" #: ../pan/gui/prefs-ui.cc:977 #, fuzzy msgid "Behavior" msgstr "_Behaviour" #: ../pan/gui/prefs-ui.cc:983 #, fuzzy msgid "Language Settings" msgstr "Settings" #. systray and notify popup #: ../pan/gui/prefs-ui.cc:992 #, fuzzy msgid "System Tray Behavior" msgstr "_Behaviour" #: ../pan/gui/prefs-ui.cc:994 msgid "Hide to system tray" msgstr "" #: ../pan/gui/prefs-ui.cc:996 msgid "Start Pan minimized" msgstr "" #: ../pan/gui/prefs-ui.cc:999 #, fuzzy msgid "Show notifications" msgstr "Show Article Information" #. allow multiple instances (seperate, not communicating with dbus) #: ../pan/gui/prefs-ui.cc:1004 #, fuzzy msgid "Startup Behavior" msgstr "_Behaviour" #: ../pan/gui/prefs-ui.cc:1006 msgid "Allow multiple instances of Pan" msgstr "" #: ../pan/gui/prefs-ui.cc:1011 #, fuzzy msgid "Autosave Article Draft" msgstr "Open an Article Draft" #: ../pan/gui/prefs-ui.cc:1013 #, fuzzy msgid "Minutes to autosave the current Article Draft: " msgstr "Open an Article Draft" #: ../pan/gui/prefs-ui.cc:1018 #, fuzzy msgid "Autosave Articles" msgstr "Save Articles" #: ../pan/gui/prefs-ui.cc:1020 msgid "Minutes to autosave newsrc files: " msgstr "" #: ../pan/gui/prefs-ui.cc:1026 msgid "_Miscellaneous" msgstr "" #: ../pan/gui/prefs-ui.cc:1026 msgid "Miscellaneous" msgstr "" #: ../pan/gui/prefs-ui.cc:1031 msgid "Pane Layout" msgstr "Pane Layout" #: ../pan/gui/prefs-ui.cc:1050 msgid "1=Groups, 2=Headers, 3=Body" msgstr "1=Groups, 2=Headers, 3=Body" #: ../pan/gui/prefs-ui.cc:1052 msgid "1=Groups, 2=Body, 3=Headers" msgstr "1=Groups, 2=Body, 3=Headers" #: ../pan/gui/prefs-ui.cc:1054 msgid "1=Headers, 2=Groups, 3=Body" msgstr "1=Headers, 2=Groups, 3=Body" #: ../pan/gui/prefs-ui.cc:1056 msgid "1=Headers, 2=Body, 3=Groups" msgstr "1=Headers, 2=Body, 3=Groups" #: ../pan/gui/prefs-ui.cc:1058 msgid "1=Body, 2=Groups, 3=Headers" msgstr "1=Body, 2=Groups, 3=Headers" #: ../pan/gui/prefs-ui.cc:1060 msgid "1=Body, 2=Headers, 3=Groups" msgstr "1=Body, 2=Headers, 3=Groups" #: ../pan/gui/prefs-ui.cc:1064 #, fuzzy msgid "Layout" msgstr "_Layout" #: ../pan/gui/prefs-ui.cc:1069 msgid "Header Pane Columns" msgstr "Header Pane Columns" #: ../pan/gui/prefs-ui.cc:1073 msgid "_Headers" msgstr "_Headers" #: ../pan/gui/prefs-ui.cc:1073 #, fuzzy msgid "Headers" msgstr "_Headers" #: ../pan/gui/prefs-ui.cc:1079 msgid "" "This menu lets you configure Pan to take certain actions on your behalf " "automatically, based on a post's score." msgstr "" #: ../pan/gui/prefs-ui.cc:1082 msgid "_Delete posts scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1084 msgid "Mark posts _read scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1086 msgid "_Cache posts scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1088 msgid "Download _attachments of posts scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1091 #, fuzzy msgid "Actions" msgstr "_Actions" #: ../pan/gui/prefs-ui.cc:1096 ../pan/gui/prefs-ui.cc:1117 msgid "Fonts" msgstr "Fonts" #: ../pan/gui/prefs-ui.cc:1098 msgid "Use custom font in Group Pane:" msgstr "Use custom font in Group Pane:" #: ../pan/gui/prefs-ui.cc:1103 msgid "Use custom font in Header Pane:" msgstr "Use custom font in Header Pane:" #: ../pan/gui/prefs-ui.cc:1108 msgid "Use custom font in Body Pane:" msgstr "Use custom font in Body Pane:" #: ../pan/gui/prefs-ui.cc:1113 msgid "Monospace font:" msgstr "Monospace font:" #: ../pan/gui/prefs-ui.cc:1117 msgid "_Fonts" msgstr "_Fonts" #: ../pan/gui/prefs-ui.cc:1122 msgid "Header Pane" msgstr "Header Pane" #: ../pan/gui/prefs-ui.cc:1125 ../pan/gui/prefs-ui.cc:1131 #: ../pan/gui/prefs-ui.cc:1137 ../pan/gui/prefs-ui.cc:1143 #: ../pan/gui/prefs-ui.cc:1149 ../pan/gui/prefs-ui.cc:1155 msgid "Text:" msgstr "Text:" #: ../pan/gui/prefs-ui.cc:1127 ../pan/gui/prefs-ui.cc:1133 #: ../pan/gui/prefs-ui.cc:1139 ../pan/gui/prefs-ui.cc:1145 #: ../pan/gui/prefs-ui.cc:1151 ../pan/gui/prefs-ui.cc:1157 msgid "Background:" msgstr "Background:" #: ../pan/gui/prefs-ui.cc:1129 msgid "Scores of 9999 or more:" msgstr "Scores of 9999 or more:" #: ../pan/gui/prefs-ui.cc:1135 msgid "Scores from 5000 to 9998:" msgstr "Scores from 5000 to 9998:" #: ../pan/gui/prefs-ui.cc:1141 msgid "Scores from 1 to 4999:" msgstr "Scores from 1 to 4999:" #: ../pan/gui/prefs-ui.cc:1147 msgid "Scores from -9998 to -1:" msgstr "Scores from -9998 to -1:" #: ../pan/gui/prefs-ui.cc:1153 msgid "Scores of -9999 or less:" msgstr "Scores of -9999 or less:" #: ../pan/gui/prefs-ui.cc:1159 msgid "Read collapsed thread:" msgstr "" #: ../pan/gui/prefs-ui.cc:1161 msgid "Body Pane" msgstr "Body Pane" #: ../pan/gui/prefs-ui.cc:1167 #, fuzzy msgid "Quoted text:" msgstr "Quoted Text:" #: ../pan/gui/prefs-ui.cc:1168 msgid "URL:" msgstr "URL:" #: ../pan/gui/prefs-ui.cc:1169 msgid "Signature:" msgstr "Signature:" #: ../pan/gui/prefs-ui.cc:1171 msgid "_Colors" msgstr "_Colours" #: ../pan/gui/prefs-ui.cc:1171 #, fuzzy msgid "Colors" msgstr "Colours" #: ../pan/gui/prefs-ui.cc:1176 msgid "Preferred Applications" msgstr "Preferred Applications" #: ../pan/gui/prefs-ui.cc:1180 #, fuzzy msgid "_Web browser:" msgstr "_Web Browser:" #: ../pan/gui/prefs-ui.cc:1183 #, fuzzy msgid "_Mail reader:" msgstr "_Mail Reader:" #: ../pan/gui/prefs-ui.cc:1185 #, fuzzy msgid "_Text editor:" msgstr "_Text Editor:" #: ../pan/gui/prefs-ui.cc:1187 #, fuzzy msgid "_Applications" msgstr "A_pplications" #: ../pan/gui/prefs-ui.cc:1187 #, fuzzy msgid "Applications" msgstr "A_pplications" #: ../pan/gui/prefs-ui.cc:1192 ../pan/gui/task-pane.cc:512 #, fuzzy msgid "Encoding" msgstr "Decoding" #: ../pan/gui/prefs-ui.cc:1196 msgid "Default bytes per file (for encoder): " msgstr "" #: ../pan/gui/prefs-ui.cc:1201 #, fuzzy msgid "_Upload" msgstr "A_pplications" #: ../pan/gui/prefs-ui.cc:1201 msgid "Upload" msgstr "" #: ../pan/gui/prefs-ui.cc:1219 msgid "_Hotkeys" msgstr "" #: ../pan/gui/prefs-ui.cc:1219 msgid "Hotkeys" msgstr "" #: ../pan/gui/profiles-dialog.cc:83 msgid "Please choose your Email Address according to your PGP key's user id." msgstr "" #: ../pan/gui/profiles-dialog.cc:131 msgid "Posting Profile" msgstr "Posting Profile" #: ../pan/gui/profiles-dialog.cc:143 msgid "Profile Information" msgstr "Profile Information" #: ../pan/gui/profiles-dialog.cc:147 msgid "_Profile Name:" msgstr "_Profile Name:" #: ../pan/gui/profiles-dialog.cc:150 msgid "Required Information" msgstr "Required Information" #: ../pan/gui/profiles-dialog.cc:154 msgid "_Full Name:" msgstr "_Full Name:" #: ../pan/gui/profiles-dialog.cc:158 msgid "" "Your Email Address.\n" "Note that this has to match your PGP Signature's Address\n" "if you want to PGP-Sign or Encrypt your messages correctly." msgstr "" #: ../pan/gui/profiles-dialog.cc:162 msgid "_Email Address:" msgstr "_Email Address:" #: ../pan/gui/profiles-dialog.cc:164 msgid "_Post Articles via:" msgstr "_Post Articles via:" #: ../pan/gui/profiles-dialog.cc:167 msgid "Signature" msgstr "Signature" #: ../pan/gui/profiles-dialog.cc:170 msgid "_Use a Signature" msgstr "_Use a Signature" #: ../pan/gui/profiles-dialog.cc:174 msgid "Signature File" msgstr "Signature File" #: ../pan/gui/profiles-dialog.cc:184 msgid "Text File" msgstr "Text File" #: ../pan/gui/profiles-dialog.cc:186 msgid "Text" msgstr "Text" #: ../pan/gui/profiles-dialog.cc:188 msgid "Command" msgstr "Command" #: ../pan/gui/profiles-dialog.cc:191 #, fuzzy msgid "PGP Signature" msgstr "Signature" #: ../pan/gui/profiles-dialog.cc:196 #, fuzzy msgid "Signature Type : " msgstr "Signature _Type:" #: ../pan/gui/profiles-dialog.cc:223 msgid "X-Face (Avatar)" msgstr "" #: ../pan/gui/profiles-dialog.cc:226 msgid "" "You can add an avatar icon to your articles with a unique X-Face code. \n" "Add the code without the trailing \"X-Face:\" \n" " if it was generated by a helper program (for example http://www.dairiki.org/" "xface/xface.php)." msgstr "" #: ../pan/gui/profiles-dialog.cc:229 msgid "_X-Face:" msgstr "" #: ../pan/gui/profiles-dialog.cc:231 msgid "Optional Information" msgstr "Optional Information" #: ../pan/gui/profiles-dialog.cc:236 #, fuzzy msgid "" "When posting to Usenet, your article's Message-ID contains a domain name. \n" "You can set a custom domain name here, or leave it blank to let Pan use the " "domain name from your email address." msgstr "" "When posting to Usenet, your article's Message-ID contains a domain name. " "You can set a custom domain name here, or leave it blank to let Pan use the " "domain name from your email address." #: ../pan/gui/profiles-dialog.cc:239 msgid "Message-ID _Domain Name:" msgstr "Message-ID _Domain Name:" #: ../pan/gui/profiles-dialog.cc:243 #, c-format msgid "" "%i for Message-ID\n" "%a for Author and Address\n" "%n for Author name\n" "%d for Date" msgstr "" "%i for Message-ID\n" "%a for Author and Address\n" "%n for Author name\n" "%d for Date" #: ../pan/gui/profiles-dialog.cc:244 msgid "_Attribution:" msgstr "_Attribution:" #: ../pan/gui/profiles-dialog.cc:268 #, fuzzy msgid "" "Extra headers to be included in your posts, such as\n" "Reply-To: \"Your Name\"\n" "Organization: Your Organization\n" msgstr "" "Extra headers to be included in your posts, such as\n" "Reply-To: \"Your Name\" \n" "Organization: Your Organisation" #: ../pan/gui/profiles-dialog.cc:278 msgid "E_xtra Headers:" msgstr "E_xtra Headers:" #: ../pan/gui/profiles-dialog.cc:323 msgid "Invalid email address." msgstr "Invalid email address." #: ../pan/gui/profiles-dialog.cc:324 msgid "Please use an address of the form joe@somewhere.org" msgstr "Please use an address of the form joe@somewhere.org" #: ../pan/gui/profiles-dialog.cc:479 msgid "New Profile" msgstr "New Profile" #: ../pan/gui/profiles-dialog.cc:525 msgid "Posting Profiles" msgstr "Posting Profiles" #: ../pan/gui/profiles-dialog.cc:541 msgid "Profiles" msgstr "Profiles" #: ../pan/gui/save-attach-ui.cc:77 ../pan/gui/save-ui.cc:77 #, fuzzy, c-format msgid "" "%g - group as one directory (alt.binaries.pictures.trains)\n" "%G - group as nested directory (/alt/binaries/pictures/trains)\n" "%s - subject line excerpt\n" "%S - subject line\n" " \n" "\"/home/user/News/Pan/%g\" becomes\n" "\"/home/user/News/Pan/alt.binaries.pictures.trains\", and\n" "\"/home/user/News/Pan/%G\" becomes\n" "\"/home/user/News/Pan/alt/binaries/pictures/trains\"," msgstr "" "%g - group as one directory (alt.binaries.pictures.trains)\n" "%G - group as nested directory (/alt/binaries/pictures/trains)\n" " \n" "\"/home/user/News/Pan/%g\" becomes\n" "\"/home/user/News/Pan/alt.binaries.pictures.trains\", and\n" "\"/home/user/News/Pan/%G\" becomes\n" "\"/home/user/News/Pan/alt/binaries/pictures/trains\"," #: ../pan/gui/save-attach-ui.cc:223 ../pan/gui/save-ui.cc:242 msgid "Add to the queue sorted by date posted" msgstr "Add to the queue sorted by date posted" #: ../pan/gui/save-attach-ui.cc:224 ../pan/gui/save-ui.cc:243 msgid "Add to the front of the queue" msgstr "Add to the front of the queue" #: ../pan/gui/save-attach-ui.cc:225 ../pan/gui/save-ui.cc:244 msgid "Add to the back of the queue" msgstr "Add to the back of the queue" #: ../pan/gui/save-attach-ui.cc:257 #, fuzzy msgid "Pan: Save Attachments" msgstr "Save _Attachments" #: ../pan/gui/save-attach-ui.cc:282 ../pan/gui/save-attach-ui.cc:300 #: ../pan/gui/save-ui.cc:296 ../pan/gui/save-ui.cc:314 msgid "_Location:" msgstr "_Location:" #: ../pan/gui/save-attach-ui.cc:286 ../pan/gui/save-ui.cc:300 msgid "Save Articles" msgstr "Save Articles" #: ../pan/gui/save-attach-ui.cc:303 ../pan/gui/save-ui.cc:317 #, c-format msgid "_Group's path: %s" msgstr "_Group's path: %s" #: ../pan/gui/save-attach-ui.cc:314 ../pan/gui/save-ui.cc:332 msgid "_Priority:" msgstr "_Priority:" #: ../pan/gui/save-ui.cc:233 msgid "Save attachments" msgstr "Save attachments" #: ../pan/gui/save-ui.cc:234 msgid "Save text" msgstr "Save text" #: ../pan/gui/save-ui.cc:235 msgid "Save attachments and text" msgstr "Save attachments and text" #: ../pan/gui/save-ui.cc:271 msgid "Pan: Save Articles" msgstr "Pan: Save Articles" #: ../pan/gui/save-ui.cc:328 msgid "_Action:" msgstr "_Action:" #: ../pan/gui/score-add-ui.cc:89 msgid "is more than" msgstr "is more than" #: ../pan/gui/score-add-ui.cc:90 msgid "is at most" msgstr "is at most" #: ../pan/gui/score-add-ui.cc:112 msgid "increase the article's score by" msgstr "increase the article's score by" #: ../pan/gui/score-add-ui.cc:113 msgid "decrease the article's score by" msgstr "decrease the article's score by" #: ../pan/gui/score-add-ui.cc:114 msgid "set the article's score to" msgstr "set the article's score to" #: ../pan/gui/score-add-ui.cc:115 msgid "watch the article (set its score to 9999)" msgstr "watch the article (set its score to 9999)" #: ../pan/gui/score-add-ui.cc:116 msgid "ignore the article (set its score to -9999)" msgstr "ignore the article (set its score to -9999)" #: ../pan/gui/score-add-ui.cc:141 msgid "References" msgstr "References" #: ../pan/gui/score-add-ui.cc:142 msgid "Line Count" msgstr "Line Count" #: ../pan/gui/score-add-ui.cc:143 msgid "Byte Count" msgstr "Byte Count" #: ../pan/gui/score-add-ui.cc:144 msgid "Crosspost Group Count" msgstr "Crosspost Group Count" #: ../pan/gui/score-add-ui.cc:145 msgid "Age (in days)" msgstr "Age (in days)" #: ../pan/gui/score-add-ui.cc:167 msgid "for the next month" msgstr "for the next month" #: ../pan/gui/score-add-ui.cc:168 msgid "for the next six months" msgstr "for the next six months" #: ../pan/gui/score-add-ui.cc:169 msgid "forever" msgstr "forever" #: ../pan/gui/score-add-ui.cc:194 msgid "contains" msgstr "contains" #: ../pan/gui/score-add-ui.cc:195 msgid "doesn't contain" msgstr "doesn't contain" #: ../pan/gui/score-add-ui.cc:196 msgid "is" msgstr "is" #: ../pan/gui/score-add-ui.cc:197 msgid "isn't" msgstr "isn't" #: ../pan/gui/score-add-ui.cc:198 msgid "starts with" msgstr "starts with" #: ../pan/gui/score-add-ui.cc:199 msgid "ends with" msgstr "ends with" #: ../pan/gui/score-add-ui.cc:200 msgid "matches regex" msgstr "matches regex" #: ../pan/gui/score-add-ui.cc:481 msgid "Another rule already sets this article's score." msgstr "Another rule already sets this article's score." #: ../pan/gui/score-add-ui.cc:482 msgid "You may want to go back or delete the old rule." msgstr "You may want to go back or delete the old rule." #: ../pan/gui/score-add-ui.cc:553 msgid "Add and Re_score" msgstr "Add and Re_score" #: ../pan/gui/score-add-ui.cc:604 ../pan/gui/score-add-ui.cc:624 msgid "New Scoring Rule" msgstr "New Scoring Rule" #: ../pan/gui/score-add-ui.cc:635 msgid "If the group name" msgstr "If the group name" #: ../pan/gui/score-add-ui.cc:642 msgid "And the article's" msgstr "And the article's" #: ../pan/gui/score-view-ui.cc:56 msgid "Close and Re_score" msgstr "Close and Re_score" #: ../pan/gui/score-view-ui.cc:154 #, c-format msgid "File %s, Lines %d - %d" msgstr "File %s, Lines %d - %d" #: ../pan/gui/score-view-ui.cc:182 msgid "Pan: Article's Scores" msgstr "Pan: Article's Scores" #: ../pan/gui/score-view-ui.cc:208 msgid "Add" msgstr "Add" #: ../pan/gui/score-view-ui.cc:213 msgid "New Score" msgstr "New Score" #: ../pan/gui/score-view-ui.cc:218 msgid "Criteria" msgstr "Criteria" #: ../pan/gui/score-view-ui.cc:241 msgid "Add a New Scoring Rule" msgstr "Add a New Scoring Rule" #: ../pan/gui/score-view-ui.cc:248 msgid "Remove the Selected Scoring Rule" msgstr "Remove the Selected Scoring Rule" #: ../pan/gui/server-ui.cc:221 msgid "Please specify the server's address." msgstr "Please specify the server's address." #: ../pan/gui/server-ui.cc:264 msgid "Import SSL certificate (PEM format) from File" msgstr "" #. create the dialog #: ../pan/gui/server-ui.cc:290 ../pan/gui/server-ui.cc:869 msgid "Add a Server" msgstr "Add a Server" #: ../pan/gui/server-ui.cc:290 ../pan/gui/server-ui.cc:875 msgid "Edit a Server's Settings" msgstr "Edit a Server's Settings" #: ../pan/gui/server-ui.cc:310 msgid "Location" msgstr "Location" #: ../pan/gui/server-ui.cc:314 msgid "The news server's actual address, e.g. \"news.mynewsserver.com\"" msgstr "The news server's actual address, e.g. \"news.mynewsserver.com\"" #: ../pan/gui/server-ui.cc:315 msgid "_Address:" msgstr "_Address:" #: ../pan/gui/server-ui.cc:319 msgid "The news server's port number. Typically 119." msgstr "The news server's port number. Typically 119." #: ../pan/gui/server-ui.cc:320 msgid "Por_t:" msgstr "Por_t:" #: ../pan/gui/server-ui.cc:323 msgid "Login (if Required)" msgstr "Login (if Required)" #: ../pan/gui/server-ui.cc:327 msgid "_Username:" msgstr "_Username:" #: ../pan/gui/server-ui.cc:328 msgid "" "The username to give the server when asked. If your server doesn't require " "authentication, you can leave this blank." msgstr "" "The username to give the server when asked. If your server doesn't require " "authentication, you can leave this blank." #: ../pan/gui/server-ui.cc:332 msgid "_Password:" msgstr "_Password:" #: ../pan/gui/server-ui.cc:333 msgid "" "The password to give the server when asked. If your server doesn't require " "authentication, you can leave this blank." msgstr "" "The password to give the server when asked. If your server doesn't require " "authentication, you can leave this blank." #: ../pan/gui/server-ui.cc:336 msgid "Settings" msgstr "Settings" #: ../pan/gui/server-ui.cc:343 msgid "Connection _Limit:" msgstr "Connection _Limit:" #: ../pan/gui/server-ui.cc:347 msgid "After Two Weeks" msgstr "After Two Weeks" #: ../pan/gui/server-ui.cc:348 msgid "After One Month" msgstr "After One Month" #: ../pan/gui/server-ui.cc:349 msgid "After Two Months" msgstr "After Two Months" #: ../pan/gui/server-ui.cc:350 msgid "After Three Months" msgstr "After Three Months" #: ../pan/gui/server-ui.cc:351 msgid "After Six Months" msgstr "After Six Months" #: ../pan/gui/server-ui.cc:352 msgid "Never Expire Old Articles" msgstr "Never Expire Old Articles" #: ../pan/gui/server-ui.cc:366 msgid "E_xpire Old Articles:" msgstr "E_xpire Old Articles:" #: ../pan/gui/server-ui.cc:370 msgid "Primary" msgstr "Primary" #: ../pan/gui/server-ui.cc:371 msgid "Fallback" msgstr "Fallback" #: ../pan/gui/server-ui.cc:385 msgid "Server Rank:" msgstr "Server Rank:" #: ../pan/gui/server-ui.cc:389 msgid "" "Fallback servers are used for articles that can't be found on the " "primaries. One common approach is to use free servers as primaries and " "subscription servers as fallbacks." msgstr "" "Fallback servers are used for articles that can't be found on the " "primaries. One common approach is to use free servers as primaries and " "subscription servers as fallbacks." #: ../pan/gui/server-ui.cc:396 msgid "Security" msgstr "" #: ../pan/gui/server-ui.cc:401 msgid "Use Plaintext (Unsecured) Connections" msgstr "" #: ../pan/gui/server-ui.cc:402 #, fuzzy msgid "Use Secure SSL Connections" msgstr "No Connections" #: ../pan/gui/server-ui.cc:418 msgid "TLS (SSL) Options:" msgstr "" #: ../pan/gui/server-ui.cc:423 msgid "" "You can set the option for using/disabling secure SSL/TLS connections here. " "If you enable SSL/TLS, your data is encrypted and secure. It is encouraged " "to use this option for privacy reasons." msgstr "" #: ../pan/gui/server-ui.cc:428 msgid "Always trust this server's certificate" msgstr "" #: ../pan/gui/server-ui.cc:602 #, c-format msgid "Really delete \"%s\"?" msgstr "Really delete \"%s\"?" #: ../pan/gui/server-ui.cc:691 msgid "No information available." msgstr "" #: ../pan/gui/server-ui.cc:697 #, c-format msgid "Server Certificate for '%s'" msgstr "" #: ../pan/gui/server-ui.cc:795 #, fuzzy, c-format msgid "Really delete certificate for \"%s\"?" msgstr "Really delete \"%s\"?" #. dialog #: ../pan/gui/server-ui.cc:822 ../pan/gui/server-ui.cc:843 #: ../pan/gui/server-ui.cc:941 msgid "Servers" msgstr "Servers" #: ../pan/gui/server-ui.cc:882 msgid "Remove a Server" msgstr "Remove a Server" #. dialog #: ../pan/gui/server-ui.cc:915 msgid "SSL Certificates" msgstr "" #: ../pan/gui/server-ui.cc:936 msgid "Certificates" msgstr "" #: ../pan/gui/server-ui.cc:967 msgid "Import Certificate" msgstr "" #: ../pan/gui/server-ui.cc:973 msgid "Inspect Certificate" msgstr "" #: ../pan/gui/server-ui.cc:980 #, fuzzy msgid "Remove Certificate" msgstr "Remove a Server" #: ../pan/gui/task-pane.cc:143 #, c-format msgid "" "\n" "Upload\n" "\n" "Subject: \"%s\"\n" "From: %s\n" "Groups: %s\n" "Sourcefile: %s\n" msgstr "" #: ../pan/gui/task-pane.cc:155 #, c-format msgid "" "\n" "Download\n" "\n" "Subject: \"%s\"\n" "From: %s\n" "Date: %s\n" "Groups: %s\n" "Save Path: %s\n" msgstr "" #: ../pan/gui/task-pane.cc:157 #, fuzzy msgid "unknown" msgstr "Unknown" #: ../pan/gui/task-pane.cc:263 msgid "Choose new destination for selected Tasks" msgstr "" #: ../pan/gui/task-pane.cc:417 #, c-format msgid "Pan: Tasks (%d Queued, %d Running, %d Stopped)" msgstr "Pan: Tasks (%d Queued, %d Running, %d Stopped)" #: ../pan/gui/task-pane.cc:419 #, c-format msgid "Pan: Tasks (%d Queued, %d Running)" msgstr "Pan: Tasks (%d Queued, %d Running)" #: ../pan/gui/task-pane.cc:421 #, c-format msgid "Pan: Tasks" msgstr "Pan: Tasks" #: ../pan/gui/task-pane.cc:446 #, c-format msgid "%lu selected, %s" msgstr "%lu selected, %s" #: ../pan/gui/task-pane.cc:510 msgid "Running" msgstr "Running" #: ../pan/gui/task-pane.cc:511 msgid "Decoding" msgstr "Decoding" #: ../pan/gui/task-pane.cc:513 msgid "Queued for Decode" msgstr "Queued for Decode" #: ../pan/gui/task-pane.cc:514 #, fuzzy msgid "Queued for Encode" msgstr "Queued for Decode" #: ../pan/gui/task-pane.cc:515 msgid "Queued" msgstr "Queued" #: ../pan/gui/task-pane.cc:516 msgid "Stopped" msgstr "Stopped" #: ../pan/gui/task-pane.cc:517 msgid "Removing" msgstr "Removing" #: ../pan/gui/task-pane.cc:546 #, c-format msgid "%d%% Done" msgstr "%d%% Done" #: ../pan/gui/task-pane.cc:552 #, c-format msgid "%d:%02d:%02d Remaining (%d @ %lu KiB/s)" msgstr "%d:%02d:%02d Remaining (%d @ %lu KiB/s)" #: ../pan/gui/task-pane.cc:646 ../pan/gui/task-pane.cc:647 #, fuzzy msgid "Move To Top" msgstr "Move Selected Task(s) to Bottom" #: ../pan/gui/task-pane.cc:651 ../pan/gui/task-pane.cc:652 #, fuzzy msgid "Move To Bottom" msgstr "Move Selected Task(s) to Bottom" #: ../pan/gui/task-pane.cc:656 ../pan/gui/task-pane.cc:657 #, fuzzy msgid "Stop Task" msgstr "Stop Tasks" #: ../pan/gui/task-pane.cc:661 ../pan/gui/task-pane.cc:662 #, fuzzy msgid "Delete Task" msgstr "Delete Tasks" #: ../pan/gui/task-pane.cc:666 ../pan/gui/task-pane.cc:667 #, fuzzy msgid "Restart Task" msgstr "Restart Tasks" #: ../pan/gui/task-pane.cc:671 ../pan/gui/task-pane.cc:672 msgid "Change Download Destination" msgstr "" #: ../pan/gui/task-pane.cc:729 msgid "_Online" msgstr "_Online" #: ../pan/gui/task-pane.cc:746 msgid "Restart Tasks" msgstr "Restart Tasks" #: ../pan/gui/task-pane.cc:748 msgid "Stop Tasks" msgstr "Stop Tasks" #: ../pan/gui/task-pane.cc:750 msgid "Delete Tasks" msgstr "Delete Tasks" #: ../pan/gui/url.cc:123 #, c-format msgid "Error starting URL: %s (Command was: %s)" msgstr "Error starting URL: %s (Command was: %s)" #: ../pan/tasks/decoder.cc:115 #, c-format msgid "Couldn't save file \"%s\": %s" msgstr "Couldn't save file \"%s\": %s" #: ../pan/tasks/decoder.cc:137 ../pan/tasks/encoder.cc:136 msgid "Error initializing uulib" msgstr "Error initializing uulib" #: ../pan/tasks/decoder.cc:152 ../pan/tasks/socket-impl-gio.cc:352 #: ../pan/tasks/socket-impl-openssl.cc:634 #, c-format msgid "Error reading from %s: %s" msgstr "Error reading from %s: %s" #: ../pan/tasks/decoder.cc:192 #, c-format msgid "Saved \"%s\"" msgstr "Saved \"%s\"" #: ../pan/tasks/decoder.cc:199 #, c-format msgid "" "Error saving \"%s\":\n" "%s." msgstr "" "Error saving \"%s\":\n" "%s." #: ../pan/tasks/decoder.cc:314 ../pan/tasks/task-article.cc:350 #, c-format msgid "Decoding %s" msgstr "Decoding %s" #: ../pan/tasks/encoder.cc:102 ../pan/tasks/encoder.cc:155 #, fuzzy, c-format msgid "Error loading %s from cache." msgstr "Error reading from socket." #: ../pan/tasks/encoder.cc:177 #, fuzzy, c-format msgid "Error encoding %s: %s" msgstr "Error reading file \"%s\": %s" #: ../pan/tasks/encoder.cc:269 #, fuzzy, c-format msgid "Encoding %s" msgstr "Decoding" #: ../pan/tasks/nntp.cc:126 #, c-format msgid "%s requires a username, but none is set." msgstr "%s requires a username, but none is set." #: ../pan/tasks/nntp.cc:139 #, c-format msgid "%s requires a password, but none is set." msgstr "%s requires a password, but none is set." #: ../pan/tasks/nntp.cc:205 #, c-format msgid "Sending \"%s\" to %s returned an error: %s" msgstr "Sending \"%s\" to %s returned an error: %s" #: ../pan/tasks/nntp.cc:228 #, c-format msgid "Sending \"%s\" to %s returned an unrecognized response: \"%s\"" msgstr "Sending \"%s\" to %s returned an unrecognised response: \"%s\"" #: ../pan/tasks/nntp-pool.cc:222 #, c-format msgid "Unable to connect to \"%s\"" msgstr "Unable to connect to \"%s\"" #: ../pan/tasks/socket-impl-gio.cc:173 ../pan/tasks/socket-impl-gio.cc:211 #: ../pan/tasks/socket-impl-openssl.cc:214 #: ../pan/tasks/socket-impl-openssl.cc:252 #, c-format msgid "Error connecting to \"%s\"" msgstr "Error connecting to \"%s\"" #: ../pan/tasks/socket-impl-gio.cc:351 ../pan/tasks/socket-impl-openssl.cc:633 msgid "Unknown Error" msgstr "Unknown Error" #: ../pan/tasks/task-article.cc:61 ../pan/tasks/task-article.cc:156 #: ../pan/tasks/task-article.cc:159 #, c-format msgid "Saving %s" msgstr "Saving %s" #: ../pan/tasks/task-article.cc:63 #, c-format msgid "Reading %s" msgstr "Reading %s" #: ../pan/tasks/task-article.cc:322 #, c-format msgid "Article \"%s\" is incomplete -- the news server(s) don't have part %s" msgstr "Article \"%s\" is incomplete -- the news server(s) don't have part %s" #: ../pan/tasks/task-groups.cc:40 #, c-format msgid "Getting group list from \"%s\"" msgstr "Getting group list from \"%s\"" #: ../pan/tasks/task-groups.cc:122 #, c-format msgid "Fetched %lu Groups" msgstr "Fetched %lu Groups" #: ../pan/tasks/task-post.cc:35 #, c-format msgid "Posting \"%s\"" msgstr "Posting \"%s\"" #: ../pan/tasks/task-post.cc:76 #, fuzzy, c-format msgid "Posting of \"%s\" failed: %s" msgstr "Posting Profiles" #: ../pan/tasks/task-post.cc:81 #, c-format msgid "Posting of \"%s\" succesful: %s" msgstr "" #: ../pan/tasks/task-upload.cc:51 #, fuzzy, c-format msgid "Uploading %s" msgstr "Reading %s" #: ../pan/tasks/task-upload.cc:249 #, c-format msgid "Uploading %s - Part %d of %d" msgstr "" #: ../pan/tasks/task-upload.cc:251 #, c-format msgid "Uploading Message body with Subject \"%s\"" msgstr "" #: ../pan/tasks/task-upload.cc:308 #, c-format msgid "Posting of File %s (Part %d of %d) failed: No Posts allowed by server." msgstr "" #: ../pan/tasks/task-upload.cc:316 #, fuzzy, c-format msgid "Posting of File %s (Part %d of %d) failed: %s" msgstr "Posting Profiles" #: ../pan/tasks/task-upload.cc:326 ../pan/tasks/task-upload.cc:333 #, c-format msgid "Posting of file %s (Part %d of %d) succesful: %s" msgstr "" #: ../pan/tasks/task-upload.cc:343 #, fuzzy, c-format msgid "Posting of file %s succesful: %s" msgstr "Posting Profiles" #: ../pan/tasks/task-upload.cc:347 #, c-format msgid "" "Posting of file %s not completely successful: Check the log (right-click on " "list item) !" msgstr "" #: ../pan/tasks/task-upload.cc:364 #, c-format msgid "" "Posting of file %s not successful: Check the log (right-click on list item) !" msgstr "" #: ../pan/tasks/task-xover.cc:79 #, c-format msgid "Getting all headers for \"%s\"" msgstr "Getting all headers for \"%s\"" #: ../pan/tasks/task-xover.cc:81 #, c-format msgid "Getting new headers for \"%s\"" msgstr "Getting new headers for \"%s\"" #. SAMPLE #: ../pan/tasks/task-xover.cc:83 #, c-format msgid "Sampling headers for \"%s\"" msgstr "Sampling headers for \"%s\"" #: ../pan/tasks/task-xover.cc:369 #, c-format msgid "%s (%lu parts, %lu articles)" msgstr "%s (%lu parts, %lu articles)" #: ../pan/tasks/task-xoverinfo.cc:78 #, fuzzy, c-format msgid "Getting header counts for \"%s\"" msgstr "Getting all headers for \"%s\"" #: ../pan/usenet-utils/filter-info.cc:163 msgid "article doesn't have attachments" msgstr "article doesn't have attachments" #: ../pan/usenet-utils/filter-info.cc:167 msgid "the article has attachments" msgstr "the article has attachments" #: ../pan/usenet-utils/filter-info.cc:171 msgid "the article isn't cached locally" msgstr "the article isn't cached locally" #: ../pan/usenet-utils/filter-info.cc:175 msgid "the article is cached locally" msgstr "the article is cached locally" #: ../pan/usenet-utils/filter-info.cc:179 msgid "the article wasn't posted by you" msgstr "the article wasn't posted by you" #: ../pan/usenet-utils/filter-info.cc:183 msgid "the article was posted by you" msgstr "the article was posted by you" #: ../pan/usenet-utils/filter-info.cc:187 msgid "the article has been read" msgstr "the article has been read" #: ../pan/usenet-utils/filter-info.cc:191 msgid "the article hasn't been read" msgstr "the article hasn't been read" #: ../pan/usenet-utils/filter-info.cc:195 #, c-format msgid "the article is less than %ld bytes long" msgstr "the article is less than %ld bytes long" #: ../pan/usenet-utils/filter-info.cc:200 #, c-format msgid "the article is at least %ld bytes long" msgstr "the article is at least %ld bytes long" #: ../pan/usenet-utils/filter-info.cc:205 #, c-format msgid "the article is less than %ld lines long" msgstr "the article is less than %ld lines long" #: ../pan/usenet-utils/filter-info.cc:210 #, c-format msgid "the article is at least %ld lines long" msgstr "the article is at least %ld lines long" #: ../pan/usenet-utils/filter-info.cc:215 #, c-format msgid "the article is less than %ld days old" msgstr "the article is less than %ld days old" #: ../pan/usenet-utils/filter-info.cc:220 #, c-format msgid "the article is at least %ld days old" msgstr "the article is at least %ld days old" #: ../pan/usenet-utils/filter-info.cc:225 #, c-format msgid "the article was posted to less than %ld groups" msgstr "the article was posted to less than %ld groups" #: ../pan/usenet-utils/filter-info.cc:230 #, c-format msgid "the article was posted to at least %ld groups" msgstr "the article was posted to at least %ld groups" #: ../pan/usenet-utils/filter-info.cc:235 #, c-format msgid "the article's score is less than %ld" msgstr "the article's score is less than %ld" #: ../pan/usenet-utils/filter-info.cc:240 #, c-format msgid "the article's score is %ld or higher" msgstr "the article's score is %ld or higher" #: ../pan/usenet-utils/filter-info.cc:249 #: ../pan/usenet-utils/filter-info.cc:259 #, c-format msgid "%s doesn't contain \"%s\"" msgstr "%s doesn't contain \"%s\"" #: ../pan/usenet-utils/filter-info.cc:250 #: ../pan/usenet-utils/filter-info.cc:260 #, c-format msgid "%s isn't \"%s\"" msgstr "%s isn't \"%s\"" #: ../pan/usenet-utils/filter-info.cc:251 #: ../pan/usenet-utils/filter-info.cc:261 #, c-format msgid "%s doesn't begin with \"%s\"" msgstr "%s doesn't begin with \"%s\"" #: ../pan/usenet-utils/filter-info.cc:252 #: ../pan/usenet-utils/filter-info.cc:262 #, c-format msgid "%s doesn't end with \"%s\"" msgstr "%s doesn't end with \"%s\"" #: ../pan/usenet-utils/filter-info.cc:253 #: ../pan/usenet-utils/filter-info.cc:263 #, c-format msgid "%s doesn't match the regex \"%s\"" msgstr "%s doesn't match the regex \"%s\"" #: ../pan/usenet-utils/filter-info.cc:275 #, c-format msgid "%s contains \"%s\"" msgstr "%s contains \"%s\"" #: ../pan/usenet-utils/filter-info.cc:276 #, c-format msgid "%s is \"%s\"" msgstr "%s is \"%s\"" #: ../pan/usenet-utils/filter-info.cc:277 #, c-format msgid "%s begins with \"%s\"" msgstr "%s begins with \"%s\"" #: ../pan/usenet-utils/filter-info.cc:278 #, c-format msgid "%s ends with \"%s\"" msgstr "%s ends with \"%s\"" #: ../pan/usenet-utils/filter-info.cc:279 #, c-format msgid "%s matches the regex \"%s\"" msgstr "%s matches the regex \"%s\"" #: ../pan/usenet-utils/filter-info.cc:285 msgid "Any of these tests fail:" msgstr "Any of these tests fail:" #: ../pan/usenet-utils/filter-info.cc:292 msgid "All of these tests pass:" msgstr "All of these tests pass:" #: ../pan/usenet-utils/filter-info.cc:299 msgid "None of these tests pass:" msgstr "None of these tests pass:" #: ../pan/usenet-utils/filter-info.cc:306 msgid "Any of these tests pass:" msgstr "Any of these tests pass:" #: ../pan/usenet-utils/gnksa.cc:878 #, c-format msgid "No email address provided; generating message-id with domain \"%s\"" msgstr "No email address provided; generating message-id with domain \"%s\"" #: ../pan/usenet-utils/message-check.cc:124 msgid "Warning: Reply seems to be top-posted." msgstr "Warning: Reply seems to be top-posted." #: ../pan/usenet-utils/message-check.cc:145 msgid "Warning: The signature marker should be \"-- \", not \"--\"." msgstr "Warning: The signature marker should be \"-- \", not \"--\"." #: ../pan/usenet-utils/message-check.cc:162 msgid "Warning: Signature prefix with no signature." msgstr "Warning: Signature prefix with no signature." #: ../pan/usenet-utils/message-check.cc:167 msgid "Warning: Signature is more than 4 lines long." msgstr "Warning: Signature is more than 4 lines long." #: ../pan/usenet-utils/message-check.cc:172 msgid "Warning: Signature is more than 80 characters wide." msgstr "Warning: Signature is more than 80 characters wide." #: ../pan/usenet-utils/message-check.cc:198 #, fuzzy, c-format msgid "Warning: %d line is more than 80 characters wide." msgid_plural "Warning: %d lines are more than 80 characters wide." msgstr[0] "Warning: %d lines are more than 80 characters wide." msgstr[1] "Warning: %d lines are more than 80 characters wide." #: ../pan/usenet-utils/message-check.cc:223 msgid "Error: Message is empty." msgstr "Error: Message is empty." #: ../pan/usenet-utils/message-check.cc:258 msgid "Warning: The message is entirely quoted text!" msgstr "Warning: The message is entirely quoted text!" #: ../pan/usenet-utils/message-check.cc:259 msgid "Warning: The message is mostly quoted text." msgstr "Warning: The message is mostly quoted text." #: ../pan/usenet-utils/message-check.cc:309 msgid "Error: Message appears to have no new content." msgstr "Error: Message appears to have no new content." #: ../pan/usenet-utils/message-check.cc:344 #: ../pan/usenet-utils/message-check.cc:383 #, c-format msgid "" "Warning: The posting profile's server doesn't carry newsgroup\n" "\t\"%s\".\n" "\tIf the group name is correct, switch profiles in the \"From:\"\n" "\tline or edit the profile with \"Edit|Manage Posting Profiles\"." msgstr "" "Warning: The posting profile's server doesn't carry newsgroup\n" "\t\"%s\".\n" "\tIf the group name is correct, switch profiles in the \"From:\"\n" "\tline or edit the profile with \"Edit|Manage Posting Profiles\"." #: ../pan/usenet-utils/message-check.cc:355 msgid "Warning: Following-Up to too many groups." msgstr "Warning: Following-up to too many groups." #: ../pan/usenet-utils/message-check.cc:366 msgid "Error: No Subject specified." msgstr "Error: No Subject specified." #: ../pan/usenet-utils/message-check.cc:395 #, c-format msgid "Warning: Group \"%s\" is read-only." msgstr "Warning: Group \"%s\" is read-only." #: ../pan/usenet-utils/message-check.cc:404 msgid "Error: Posting to a very large number of groups." msgstr "Error: Posting to a very large number of groups." #: ../pan/usenet-utils/message-check.cc:409 msgid "Warning: Posting to a large number of groups." msgstr "Warning: Posting to a large number of groups." #: ../pan/usenet-utils/message-check.cc:416 msgid "Warning: Crossposting without setting Followup-To header." msgstr "Warning: Crossposting without setting Followup-To header." #: ../pan/usenet-utils/message-check.cc:441 msgid "Error: Bad email address." msgstr "Error: Bad email address." #: ../pan/usenet-utils/message-check.cc:450 msgid "Warning: Most newsgroups frown upon HTML posts." msgstr "Warning: Most newsgroups frown upon HTML posts." #: ../pan/usenet-utils/message-check.cc:486 msgid "Error: No Recipients." msgstr "Error: No Recipients." #: ../pan/usenet-utils/scorefile.cc:304 #, c-format msgid "" "Error reading score in %*.*s, line %d: expected 'Expires: MM/DD/YYYY' or " "'Expires: DD-MM-YYYY'." msgstr "" "Error reading score in %*.*s, line %d: expected 'Expires: MM/DD/YYYY' or " "'Expires: DD-MM-YYYY'." #: ../pan/usenet-utils/scorefile.cc:307 #, c-format msgid "Expired old score from %*.*s, line %d" msgstr "Expired old score from %*.*s, line %d" #: ../pan/usenet-utils/scorefile.cc:380 #, c-format msgid "Error reading score in %*.*s, line %d: unexpected line." msgstr "Error reading score in %*.*s, line %d: unexpected line." #: ../pan/usenet-utils/scorefile.cc:428 #, c-format msgid "Read %lu scoring rules in %lu sections from \"%s\"" msgstr "Read %lu scoring rules in %lu sections from \"%s\"" #: ../pan/usenet-utils/ssl-utils.h:199 #, fuzzy, c-format msgid "Error printing the server certificate for '%s'" msgstr "Error loading newsserver information: %s" #: ../pan/usenet-utils/ssl-utils.h:216 #, c-format msgid "" "The current server '%s' sent this security certificate :\n" "\n" msgstr "" #: ../pan/usenet-utils/ssl-utils.h:217 #, c-format msgid "" "Certificate information for server '%s' :\n" "\n" msgstr "" #: ../pan/usenet-utils/ssl-utils.h:219 #, c-format msgid "" "%sIssuer information:\n" "%s\n" "Valid until : %s\n" "\n" "Not valid before : %s\n" "\n" msgstr "" #: ../pan/usenet-utils/text-massager.cc:397 msgid "> [quoted text muted]" msgstr "> [quoted text muted]" #~ msgid "Read News from Usenet" #~ msgstr "Read News from Usenet" #, fuzzy #~ msgid "_Toggle Flag on for Thread" #~ msgstr "_Watch Thread" #~ msgid "Attachment not shown: MIME type %s/%s; filename %s\n" #~ msgstr "Attachment not shown: MIME type %s/%s; filename %s\n" #~ msgid "Attachment not shown: MIME type %s/%s\n" #~ msgstr "Attachment not shown: MIME type %s/%s\n" #, fuzzy #~ msgid "Error!" #~ msgstr "Error" #~ msgid "" #~ "Spellchecker not found!\n" #~ " \n" #~ "Was this copy of Pan compiled with GtkSpell enabled?" #~ msgstr "" #~ "Spellchecker not found!\n" #~ " \n" #~ "Was this copy of Pan compiled with GtkSpell enabled?" #, fuzzy #~ msgid "Signer : " #~ msgstr "Signature:" #~ msgid "_Signature:" #~ msgstr "_Signature:" #~ msgid "Creating directory \"%s\"" #~ msgstr "Creating directory \"%s\"" #~ msgid "Couldn't create directory \"%s\": %s" #~ msgstr "Couldn't create directory \"%s\": %s" #~ msgid "" #~ "Your copy of libpcre doesn't support UTF-8. UTF-8 regular expressions " #~ "may fail." #~ msgstr "" #~ "Your copy of libpcre doesn't support UTF-8. UTF-8 regular expressions " #~ "may fail." #~ msgid "Can't use regular expression \"%s\": %s at position %d" #~ msgstr "Can't use regular expression \"%s\": %s at position %d" #~ msgid "Group Name" #~ msgstr "Group Name" #~ msgid "Posting Article" #~ msgstr "Posting Article" #~ msgid "Posting..." #~ msgstr "Posting..." #~ msgid "%u Tasks Running, %u Tasks Total" #~ msgstr "%u Tasks Running, %u Tasks Total" #~ msgid "Read Selected Group" #~ msgstr "Read Selected Group" #~ msgid "_Mark Group _Read" #~ msgstr "_Mark Group _Read" #~ msgid "_Delete Group's Articles" #~ msgstr "_Delete Group's Articles" #~ msgid "Get New Headers for Selected Group" #~ msgstr "Get New Headers for Selected Group" #~ msgid "Get New Headers for Subscribed Groups" #~ msgstr "Get New Headers for Subscribed Groups" #~ msgid "Get Headers from Server" #~ msgstr "Get Headers from Server" #~ msgid "Get a new Group list from the Server" #~ msgstr "Get a new Group list from the Server" #~ msgid "Subscribe to Selected Group" #~ msgstr "Subscribe to Selected Group" #~ msgid "Unsubscribe from Selected Group" #~ msgstr "Unsubscribe from Selected Group" #~ msgid "Save Selected Articles ..." #~ msgstr "Save Selected Articles..." #~ msgid "Cancel Last Task" #~ msgstr "Cancel Last Task" #~ msgid "Clear Header Pane" #~ msgstr "Clear Header Pane" #~ msgid "Clear Body Pane" #~ msgstr "Clear Body Pane" #~ msgid "Next Unread Group" #~ msgstr "Next Unread Group" #~ msgid "Next Group" #~ msgstr "Next Group" #~ msgid "Next Watched Article" #~ msgstr "Next Watched Article" #~ msgid "Next Thread" #~ msgstr "Next Thread" #~ msgid "Previous Article" #~ msgstr "Previous Article" #~ msgid "Previous Thread" #~ msgstr "Previous Thread" #~ msgid "Parent Article" #~ msgstr "Parent Article" #~ msgid "Mark Article as Read" #~ msgstr "Mark Article as Read" #~ msgid "Mark Article as Unread" #~ msgstr "Mark Article as Unread" #~ msgid "Reply to Author in Mail" #~ msgstr "Reply to Author in Mail" #~ msgid "Abbreviate _Names in Group Pane" #~ msgstr "Abbreviate _Names in Group Pane" #~ msgid "Match Only Articles Posted by Me" #~ msgstr "Match Only Articles Posted by Me" #~ msgid "Baltic (ISO-8859-4)" #~ msgstr "Baltic (ISO-8859-4)" #~ msgid "Baltic (ISO-8859-13)" #~ msgstr "Baltic (ISO-8859-13)" #~ msgid "Baltic (Windows-1257)" #~ msgstr "Baltic (Windows-1257)" #~ msgid "Central European (ISO-8859-2)" #~ msgstr "Central European (ISO-8859-2)" #~ msgid "Central European (Windows-1250)" #~ msgstr "Central European (Windows-1250)" #~ msgid "Chinese Simplified (gb2312)" #~ msgstr "Chinese Simplified (gb2312)" #~ msgid "Chinese Traditional (big5)" #~ msgstr "Chinese Traditional (big5)" #~ msgid "Cyrillic (ISO-8859-5)" #~ msgstr "Cyrillic (ISO-8859-5)" #~ msgid "Cyrillic (Windows-1251)" #~ msgstr "Cyrillic (Windows-1251)" #~ msgid "Cyrillic (KOI8-R)" #~ msgstr "Cyrillic (KOI8-R)" #~ msgid "Cyrillic, Ukrainian (KOI8-U)" #~ msgstr "Cyrillic, Ukrainian (KOI8-U)" #~ msgid "Greek (ISO-8859-7)" #~ msgstr "Greek (ISO-8859-7)" #~ msgid "Japanese (ISO-2022-jp)" #~ msgstr "Japanese (ISO-2022-jp)" #~ msgid "Korean (euc-kr)" #~ msgstr "Korean (euc-kr)" #~ msgid "Turkish (ISO-8859-9)" #~ msgstr "Turkish (ISO-8859-9)" #~ msgid "Western (ISO-8859-1)" #~ msgstr "Western (ISO-8859-1)" #~ msgid "Western, New (ISO-8859-15)" #~ msgstr "Western, New (ISO-8859-15)" #~ msgid "Western (Windows-1252)" #~ msgstr "Western (Windows-1252)" #~ msgid "Unicode (UTF-8)" #~ msgstr "Unicode (UTF-8)" #~ msgid "Western" #~ msgstr "Western" #~ msgid "_Manage Editor List..." #~ msgstr "_Manage Editor List..." #~ msgid "Manage Posting Pr_ofiles..." #~ msgstr "Manage Posting Pr_ofiles..." #~ msgid "Unicode, UTF-8" #~ msgstr "Unicode, UTF-8" #~ msgid "Manage Editor List" #~ msgstr "Manage Editor List" #~ msgid "Editors" #~ msgstr "Editors" #~ msgid "Add a New Profile" #~ msgstr "Add a New Profile" #~ msgid "Edit the selected profile" #~ msgstr "Edit the selected profile" #~ msgid "Remove the selected profile" #~ msgstr "Remove the selected profile" #~ msgid "Pan: Add a Server" #~ msgstr "Pan: Add a Server" #~ msgid "Pan: Edit a Server's Settings" #~ msgstr "Pan: Edit a Server's Settings" #~ msgid "Pan: Servers" #~ msgstr "Pan: Servers" #~ msgid "" #~ "Error saving \"%s\":\n" #~ "%s. %s" #~ msgstr "" #~ "Error saving \"%s\":\n" #~ "%s. %s" #~ msgid "" #~ "Pan is now offline. Please ensure that space is available, then use File|" #~ "Work Online to continue." #~ msgstr "" #~ "Pan is now offline. Please ensure that space is available, then use File|" #~ "Work Online to continue." #~ msgid "Couldn't read signature file \"%s\": %s" #~ msgstr "Couldn't read signature file \"%s\": %s" #~ msgid "Wrap _Now" #~ msgstr "Wrap _Now" #~ msgid "Wrap the Article Body to 80 Columns" #~ msgstr "Wrap the Article Body to 80 Columns" #~ msgid "One header per line, in the form HeaderName: Value" #~ msgstr "One header per line, in the form HeaderName: Value" #~ msgid "for the next week" #~ msgstr "for the next week" #~ msgid "for the next three months" #~ msgstr "for the next three months" #~ msgid "Pan: " #~ msgstr "Pan: " #~ msgid " (%lu)" #~ msgstr " (%lu)" #~ msgid "Pan: %s" #~ msgstr "Pan: %s" #~ msgid "Tasks: %u/%u" #~ msgstr "Tasks: %u/%u" #~ msgid "_Close" #~ msgstr "_Close" #~ msgid "Close Window" #~ msgstr "Close Window" #~ msgid "Cu_t" #~ msgstr "Cu_t" #~ msgid "Cut Text" #~ msgstr "Cut Text" #~ msgid "_Copy" #~ msgstr "_Copy" #~ msgid "Copy Text" #~ msgstr "Copy Text" #~ msgid "_Paste" #~ msgstr "_Paste" #~ msgid "Paste Text" #~ msgstr "Paste Text" #~ msgid "Error loading post.ui: \"%s\"" #~ msgstr "Error loading post.ui: \"%s\"" #~ msgid "Pan: New Scoring Rule" #~ msgstr "Pan: New Scoring Rule" #~ msgid "Name: \"%s\"" #~ msgstr "Name: \"%s\"" #~ msgid "Status" #~ msgstr "Status" #~ msgid "Can't find group \"%s\" on %s" #~ msgstr "Can't find group \"%s\" on %s" #~ msgid "Pan can't find the server at %s." #~ msgstr "Pan can't find the server at %s." #~ msgid "Pan can't connect to the server at %s." #~ msgstr "Pan can't connect to the server at %s." #~ msgid "Couldn't load \"%s\": %s" #~ msgstr "Couldn't load \"%s\": %s" #~ msgid "Then" #~ msgstr "Then" #~ msgid "For" #~ msgstr "For" #~ msgid "Error: %s" #~ msgstr "Error: %s" #~ msgid "%lu B" #~ msgstr "%lu B" #~ msgid "%.1f KiB" #~ msgstr "%.1f KB" #~ msgid "%.1f MiB" #~ msgstr "%.1f MB" #~ msgid "%.1f GiB" #~ msgstr "%.1f GB" #~ msgid "Error: nzb arguments used without nzb files." #~ msgstr "Error: nzb arguments used without nzb files." #~ msgid "_Browse..." #~ msgstr "_Browse..." #~ msgid "Path" #~ msgstr "Path" #~ msgid "C_ustom path:" #~ msgstr "C_ustom path:" #~ msgid "Save Files to Path" #~ msgstr "Save Files to Path" #~ msgid "_Path:" #~ msgstr "_Path:" #~ msgid "%.2f KiB" #~ msgstr "%.2f KB" #~ msgid "%.2f MiB" #~ msgstr "%.2f MB" #~ msgid "%.2f GiB" #~ msgstr "%.2f GB" #~ msgid "Unable to set group: %s" #~ msgstr "Unable to set group: %s" #~ msgid "Warning: Unknown group \"%s\"." #~ msgstr "Warning: Unknown group \"%s\"." #, fuzzy #~ msgid "Error reading \"%s\": %s" #~ msgstr "Error reading file \"%s\": %s" #, fuzzy #~ msgid "_Groups" #~ msgstr "Groups" #, fuzzy #~ msgid "Download _Selected Article" #~ msgstr "Get Selected Articles" #, fuzzy #~ msgid "Download Selected Article" #~ msgstr "Get Selected Articles" #, fuzzy #~ msgid "Read _Selected Article" #~ msgstr "Get Selected Articles" #, fuzzy #~ msgid "_Plonk Author" #~ msgstr "/_Articles/_Plonk Author" #, fuzzy #~ msgid "_About..." #~ msgstr "/_Help/_About..." #, fuzzy #~ msgid "Threads" #~ msgstr "_Read Threads:" #, fuzzy #~ msgid "Group Management" #~ msgstr "Group Pane" #, fuzzy #~ msgid "to %s" #~ msgstr "About %s" #, fuzzy #~ msgid "Post New Article" #~ msgstr "_Article" #, fuzzy #~ msgid "Follow-up to Article" #~ msgstr "Followup to Newsgroup" #, fuzzy #~ msgid "_Post Article" #~ msgstr "_Article" #, fuzzy #~ msgid "Post this Article Now" #~ msgstr "Posting article \"%s\"" #, fuzzy #~ msgid "Default KDE Browser" #~ msgstr "Default charse_t:" #, fuzzy #~ msgid "Error: No Newsgroups specified." #~ msgstr "ERROR: No recipients specified." #, fuzzy #~ msgid "_Posting" #~ msgstr "_Post" #, fuzzy #~ msgid "Message-Id" #~ msgstr "Message-ID" #, fuzzy #~ msgid "Saved newsrc files in %.1f seconds" #~ msgstr "Scored %d articles in %.1f seconds (%.0f art/sec)" #, fuzzy #~ msgid "Use _Monospace Font in Body Pane" #~ msgstr "/_View/Use _Monospace Font in Body Pane" #~ msgid "%d connections totaling %.1f KiB per second" #~ msgstr "%d connections totaling %.1f KiB per second" #~ msgid "" #~ "Used when email replies to your posts should go somewhere other than the " #~ "email address above. Because Reply-To: is relatively difficult for " #~ "spammers to harvest, it's polite give your email address here if you gave " #~ "an invalid email address above." #~ msgstr "" #~ "Used when email replies to your posts should go somewhere other than the " #~ "email address above. Because Reply-To: is relatively difficult for " #~ "spammers to harvest, it's polite give your email address here if you gave " #~ "an invalid email address above." #~ msgid "_Reply-To Header:" #~ msgstr "_Reply-To Header:" #~ msgid "Or_ganization Header:" #~ msgstr "Or_ganisation Header:" #, fuzzy #~ msgid "Attach this _Signature:" #~ msgstr "Signature:" #~ msgid "Automatic Downloads" #~ msgstr "Automatic Downloads" #, fuzzy #~ msgid "Save a_ttachments to path:" #~ msgstr "Save attachments in:" #~ msgid "UNKNOWN" #~ msgstr "UNKNOWN" #, fuzzy #~ msgid "Decode can't access directory \"%s\"" #~ msgstr "Decode can't access path \"%s\"" #~ msgid "Could not decode article - file may be corrupt/incomplete" #~ msgstr "Could not decode article - file may be corrupt/incomplete" #~ msgid "Checksum for `%s' part %d failed - file is corrupt" #~ msgstr "Checksum for `%s' part %d failed - file is corrupt" #~ msgid "Checksum for `%s' failed - file may be corrupt" #~ msgstr "Checksum for `%s' failed - file may be corrupt" #, fuzzy #~ msgid "Use custom colors in _Header Pane" #~ msgstr "Use custom font in Header Pane:" #, fuzzy #~ msgid "Header Pane background:" #~ msgstr "Header Pane Scoring" #, fuzzy #~ msgid "Unread articles:" #~ msgstr "_Unread Threads:" #, fuzzy #~ msgid "" #~ "Unsupported data version (%d) for server properties. Are you running an " #~ "old version of Pan by accident?" #~ msgstr "" #~ "Unsupported data version %d for \"%s\" data file.\n" #~ "Are you running an old version of Pan by accident?" #, fuzzy #~ msgid "Couldn't create temporary file: %s" #~ msgstr "Could not create temporary file: %s" #~ msgid "Error renaming \"%s\" as \"%s\": %s." #~ msgstr "Error renaming \"%s\" as \"%s\": %s." #~ msgid "Can't backup \"%s\" as \"%s\": %s" #~ msgstr "Can't backup \"%s\" as \"%s\": %s" #~ msgid "Can't write to \"%s\": %s" #~ msgstr "Can't write to \"%s\": %s" #~ msgid "Body" #~ msgstr "Body" #, fuzzy #~ msgid "Open a Draft Article from Disk" #~ msgstr "Expired %u articles from `%s'" #, fuzzy #~ msgid "subject" #~ msgstr "Subject" #, fuzzy #~ msgid "author" #~ msgstr "Author" #~ msgid "Change" #~ msgstr "Change" #~ msgid "Connections" #~ msgstr "Connections" #, fuzzy #~ msgid "Active" #~ msgstr "Actions" #~ msgid "" #~ "Unable to cancel article: Couldn't find matching article in folder `pan." #~ "sent'!" #~ msgstr "" #~ "Unable to cancel article: Couldn't find matching article in folder `pan." #~ "sent'!" #~ msgid "" #~ "Unable to supersede article: Couldn't find matching article in folder " #~ "`pan.sent'!" #~ msgstr "" #~ "Unable to supersede article: Couldn't find matching article in folder " #~ "`pan.sent'!" #~ msgid "You must download the article before you can cancel it." #~ msgstr "You must download the article before you can cancel it." #~ msgid "You must download the article before you can supersede it." #~ msgstr "You must download the article before you can supersede it." #~ msgid "Pan: Find Article" #~ msgstr "Pan: Find Article" #~ msgid "_Author:" #~ msgstr "_Author:" #~ msgid "Case Sensiti_ve" #~ msgstr "Case Sensiti_ve" #~ msgid "_Unread Only" #~ msgstr "_Unread Only" #~ msgid "Fin_d:" #~ msgstr "Fin_d:" #~ msgid "" #~ "Type in a search string and press ENTER.\n" #~ "Wildcards are allowed." #~ msgstr "" #~ "Type in a search string and press ENTER.\n" #~ "Wildcards are allowed." #~ msgid "/---" #~ msgstr "/---" #~ msgid "/Save Article A_ttachments" #~ msgstr "/Save Article A_ttachments" #~ msgid "/_Manual Decode..." #~ msgstr "/_Manual Decode..." #~ msgid "/D_ownload Flagged" #~ msgstr "/D_ownload Flagged" #~ msgid "/_Flag" #~ msgstr "/_Flag" #~ msgid "/_Unflag" #~ msgstr "/_Unflag" #~ msgid "/_Create Score" #~ msgstr "/_Create Score" #~ msgid "/Add S_et to Selection" #~ msgstr "/Add S_et to Selection" #~ msgid "/_Copy to Folder" #~ msgstr "/_Copy to Folder" #~ msgid "/_Delete" #~ msgstr "/_Delete" #~ msgid "Scoring Articles" #~ msgstr "Scoring Articles" #~ msgid "Filtering Articles" #~ msgstr "Filtering Articles" #~ msgid "Updating Header Pane..." #~ msgstr "Updating Header Pane..." #~ msgid "Loading group \"%s\"" #~ msgstr "Loading group \"%s\"" #~ msgid "Flushing article cache... " #~ msgstr "Flushing article cache... " #~ msgid "%d files erased." #~ msgstr "%d files erased." #~ msgid "Error saving article \"%s\" (is %s full?)" #~ msgstr "Error saving article \"%s\" (is %s full?)" #~ msgid "Directory \"%s\" contains %.1f MB in %d files" #~ msgstr "Directory \"%s\" contains %.1f MB in %d files" #~ msgid "Unparseable Subject" #~ msgstr "Unparseable Subject" #~ msgid "Couldn't parse a Message-ID from the raw message!" #~ msgstr "Couldn't parse a Message-ID from the raw message!" #~ msgid "unknown@spammesenseless.com" #~ msgstr "unknown@spammesenseless.com" #~ msgid "Can't create file \"%s\" %s" #~ msgstr "Can't create file \"%s\" %s" #~ msgid "Error saving file \"%s\" - is the disk full?" #~ msgstr "Error saving file \"%s\" - is the disk full?" #~ msgid "Decoded \"%s\" from group \"%s\", \"%s\"" #~ msgstr "Decoded \"%s\" from group \"%s\", \"%s\"" #~ msgid "Loading %u of %d groups" #~ msgstr "Loading %u of %d groups" #~ msgid "" #~ "Skipped %d groups due to possible corruption in \"%s\" and \"%s\". You " #~ "may want to delete these files and get a new grouplist from your news " #~ "server." #~ msgstr "" #~ "Skipped %d groups due to possible corruption in \"%s\" and \"%s\". You " #~ "may want to delete these files and get a new grouplist from your news " #~ "server." #~ msgid "Loaded %d groups for server \"%s\" in %.1f seconds (%.0f groups/sec)" #~ msgstr "" #~ "Loaded %d groups for server \"%s\" in %.1f seconds (%.0f groups/sec)" #~ msgid "Saved %d of %u groups" #~ msgstr "Saved %d of %u groups" #~ msgid "Error saving list of groups to \"%s\" - is the disk full?" #~ msgstr "Error saving list of groups to \"%s\" - is the disk full?" #~ msgid "Saved %d groups in \"%s\" in %.1f seconds (%.0f groups/sec)" #~ msgstr "Saved %d groups in \"%s\" in %.1f seconds (%.0f groups/sec)" #~ msgid "Skipped unsupported old data file for group \"%s\"." #~ msgstr "Skipped unsupported old data file for group \"%s\"." #~ msgid "Loaded %d of %d articles" #~ msgstr "Loaded %d of %d articles" #~ msgid "" #~ "Pan skipped %d corrupt headers from the local cache for group \"%*.*s\"." #~ msgstr "" #~ "Pan skipped %d corrupt headers from the local cache for group \"%*.*s\"." #~ msgid "You may want to empty this group and download fresh headers." #~ msgstr "You may want to empty this group and download fresh headers." #~ msgid "The group will not be saved -- can't create file \"%s\"" #~ msgstr "The group will not be saved -- can't create file \"%s\"" #~ msgid "Unable to save headers for group \"%*.*s\" - is the disk full?" #~ msgstr "Unable to save headers for group \"%*.*s\" - is the disk full?" #~ msgid "(No Group)" #~ msgstr "(No Group)" #~ msgid "ERROR: invalid address \"%s\"" #~ msgstr "ERROR: invalid address \"%s\"" #~ msgid "ERROR: Must have one author in From: line" #~ msgstr "ERROR: Must have one author in From: line" #~ msgid "Imported %d groups (%d new) from \"%s\"" #~ msgstr "Imported %d groups (%d new) from \"%s\"" #~ msgid "Exported %d groups (%d subscribed) to \"%s\"" #~ msgstr "Exported %d groups (%d subscribed) to \"%s\"" #~ msgid "Imported %d lines from Gnome config file" #~ msgstr "Imported %d lines from Gnome config file" #~ msgid "%s does not appear to be a valid datafile" #~ msgstr "%s does not appear to be a valid datafile" #~ msgid "Error converting string \"%*s\" to utf8: %d - %s" #~ msgstr "Error converting string \"%*s\" to utf8: %d - %s" #~ msgid "No name specified!" #~ msgstr "No name specified!" #~ msgid "pan.sent" #~ msgstr "pan.sent" #~ msgid "pan.sendlater" #~ msgstr "pan.sendlater" #~ msgid "Server is corrupt" #~ msgstr "Server is corrupt" #~ msgid "A Server with that name already exists." #~ msgstr "A Server with that name already exists." #~ msgid "A newsreader for GNOME" #~ msgstr "A newsreader for GNOME" #~ msgid "Programmer" #~ msgstr "Programmer" #~ msgid "Project Originator, Programmer" #~ msgstr "Project Originator, Programmer" #~ msgid "Programmer, 0.6 - 0.7" #~ msgstr "Programmer, 0.6 - 0.7" #~ msgid "" #~ "Pan %s Translations\n" #~ "%s\n" #~ "\n" #~ "Pan %s Code or Patches\n" #~ "%s\n" #~ "\n" #~ "Pan %s Suggestions and Testing\n" #~ "%s\n" #~ msgstr "" #~ "Pan %s Translations\n" #~ "%s\n" #~ "\n" #~ "Pan %s Code or Patches\n" #~ "%s\n" #~ "\n" #~ "Pan %s Suggestions and Testing\n" #~ "%s\n" #~ msgid "_Directory for saving articles:" #~ msgstr "_Directory for saving articles:" #~ msgid "Pan: Download Headers for group `%s'" #~ msgstr "Pan: Download Headers for group `%s'" #~ msgid "Pan: Download Headers" #~ msgstr "Pan: Download Headers" #~ msgid "Download _new headers" #~ msgstr "Download _new headers" #~ msgid "_Download bodies too" #~ msgstr "_Download bodies too" #~ msgid "How should you appear when posting articles?" #~ msgstr "How should you appear when posting articles?" #~ msgid "Your _Name:" #~ msgstr "Your _Name:" #~ msgid "Email _Address:" #~ msgstr "Email _Address:" #~ msgid "_Organization:" #~ msgstr "_Organisation:" #~ msgid "default" #~ msgstr "default" #~ msgid "What mail server should Pan use?" #~ msgstr "What mail server should Pan use?" #~ msgid "What news server should Pan use?" #~ msgstr "What news server should Pan use?" #~ msgid "Short name for Pan to show, e.g. \"mynewsserver\"" #~ msgstr "Short name for Pan to show, e.g. \"mynewsserver\"" #~ msgid "Short _name for Pan to show:" #~ msgstr "Short _name for Pan to show:" #~ msgid "Login" #~ msgstr "Login" #~ msgid "Server requires authori_zation" #~ msgstr "Server requires authori_sation" #~ msgid "Pan Setup Wizard" #~ msgstr "Pan Setup Wizard" #~ msgid "Thank you for trying Pan!" #~ msgstr "Thank you for trying Pan!" #~ msgid "" #~ "Thank you for trying Pan!\n" #~ " \n" #~ "If you are new to Usenet,\n" #~ "%s\n" #~ "is a starting point to see what Usenet is,\n" #~ "where to find a free news server,\n" #~ "and how to use Pan.\n" #~ " \n" #~ "Since this is your first time running Pan,\n" #~ "we'll need to gather some information.\n" #~ msgstr "" #~ "Thank you for trying Pan!\n" #~ " \n" #~ "If you are new to Usenet,\n" #~ "%s\n" #~ "is a starting point to see what Usenet is,\n" #~ "where to find a free news server,\n" #~ "and how to use Pan.\n" #~ " \n" #~ "Since this is your first time running Pan,\n" #~ "we'll need to gather some information.\n" #~ msgid "About You" #~ msgstr "About You" #~ msgid "Ready!" #~ msgstr "Ready!" #~ msgid "" #~ "You have successfully entered all of\n" #~ "the information required to set up Pan.\n" #~ "\n" #~ "To save these settings, click Save." #~ msgstr "" #~ "You have successfully entered all of\n" #~ "the information required to set up Pan.\n" #~ "\n" #~ "To save these settings, click Save." #~ msgid "License" #~ msgstr "License" #~ msgid "Authors" #~ msgstr "Authors" #~ msgid "Thanks to" #~ msgstr "Thanks to" #~ msgid " (No conditions -- no articles will match)" #~ msgstr " (No conditions -- no articles will match)" #~ msgid " (No conditions -- all articles will match)" #~ msgstr " (No conditions -- all articles will match)" #~ msgid "Pan: Edit Filter" #~ msgstr "Pan: Edit Filter" #~ msgid "Filter name: " #~ msgstr "Filter name: " #~ msgid "Show in Filter Menu" #~ msgstr "Show in Filter Menu" #~ msgid "Move the selected line up one line" #~ msgstr "Move the selected line up one line" #~ msgid "Move the selected line down one line" #~ msgstr "Move the selected line down one line" #~ msgid "Invert" #~ msgstr "Invert" #~ msgid "All Of" #~ msgstr "All Of" #~ msgid "Any Of" #~ msgstr "Any Of" #~ msgid "Delete the selected line" #~ msgstr "Delete the selected line" #~ msgid "Add New Line to the Filter" #~ msgstr "Add New Line to the Filter" #~ msgid "New Filter Line" #~ msgstr "New Filter Line" #~ msgid "does not start with" #~ msgstr "does not start with" #~ msgid "does not match regular expression" #~ msgstr "does not match regular expression" #~ msgid "Article h_as" #~ msgstr "Article h_as" #~ msgid "Incomplete Attachments" #~ msgstr "Incomplete Attachments" #~ msgid "No Attachments" #~ msgstr "No Attachments" #~ msgid "Article _is" #~ msgstr "Article _is" #~ msgid "New" #~ msgstr "New" #~ msgid "Unread" #~ msgstr "Unread" #~ msgid "Read" #~ msgstr "Read" #~ msgid "Cached" #~ msgstr "Cached" #~ msgid "Posted by Me" #~ msgstr "Posted by Me" #~ msgid "Article has at _least N lines:" #~ msgstr "Article has at _least N lines:" #~ msgid "Article _score is at least" #~ msgstr "Article _score is at least" #~ msgid "Watched" #~ msgstr "Watched" #~ msgid "High" #~ msgstr "High" #~ msgid "Medium" #~ msgstr "Medium" #~ msgid "Zero" #~ msgstr "Zero" #~ msgid "Low" #~ msgstr "Low" #~ msgid "Ignored" #~ msgstr "Ignored" #~ msgid "" #~ "This filter is still used by the following rules:\n" #~ "%s\n" #~ "Please remove this dependency first." #~ msgstr "" #~ "This filter is still used by the following rules:\n" #~ "%s\n" #~ "Please remove this dependency first." #~ msgid "Pan: Filters" #~ msgstr "Pan: Filters" #~ msgid "Filters" #~ msgstr "Filters" #~ msgid "Add a new filter" #~ msgstr "Add a new filter" #~ msgid "Edit the selected filter" #~ msgstr "Edit the selected filter" #~ msgid "Remove the selected filter" #~ msgstr "Remove the selected filter" #~ msgid "NONE OF:" #~ msgstr "NONE OF:" #~ msgid "ALL OF:" #~ msgstr "ALL OF:" #~ msgid "ANY OF:" #~ msgstr "ANY OF:" #~ msgid "Article has complete attachments" #~ msgstr "Article has complete attachments" #~ msgid "Article does not have incomplete attachments" #~ msgstr "Article does not have incomplete attachments" #~ msgid "Article has incomplete attachments" #~ msgstr "Article has incomplete attachments" #~ msgid "Article has complete or incomplete attachments" #~ msgstr "Article has complete or incomplete attachments" #~ msgid "Article is %d or more bytes long" #~ msgstr "Article is %d or more bytes long" #~ msgid "Article is crossposted to at least %d groups" #~ msgstr "Article is crossposted to at least %d groups" #~ msgid "Article was posted in the last %d days" #~ msgstr "Article was posted in the last %d days" #~ msgid "Article is %d or more lines long" #~ msgstr "Article is %d or more lines long" #~ msgid "Article is unread or old" #~ msgstr "Article is unread or old" #~ msgid "Article is new" #~ msgstr "Article is new" #~ msgid "Article is new or read" #~ msgstr "Article is new or read" #~ msgid "Article is new or unread" #~ msgstr "Article is new or unread" #~ msgid "Xref" #~ msgstr "Xref" #~ msgid "watched" #~ msgstr "watched" #~ msgid "high" #~ msgstr "high" #~ msgid "medium" #~ msgstr "medium" #~ msgid "zero" #~ msgstr "zero" #~ msgid "low" #~ msgstr "low" #~ msgid "ignored" #~ msgstr "ignored" #~ msgid "Score filter will match anything" #~ msgstr "Score filter will match anything" #~ msgid "Score filter will match nothing" #~ msgstr "Score filter will match nothing" #~ msgid "Article score one of: " #~ msgstr "Article score one of: " #~ msgid "Wrote filters to \"%s\"" #~ msgstr "Wrote filters to \"%s\"" #~ msgid "Can't use regular expression \"%s\" from file \"%s\", line %d: %s" #~ msgstr "Can't use regular expression \"%s\" from file \"%s\", line %d: %s" #~ msgid "expired old score" #~ msgstr "expired old score" #~ msgid "skipping unsupported criteria" #~ msgstr "skipping unsupported criteria" #~ msgid "unexpected line." #~ msgstr "unexpected line." #~ msgid "Error reading file: " #~ msgstr "Error reading file: " #~ msgid "skipping score because it has no criteria" #~ msgstr "skipping score because it has no criteria" #~ msgid "" #~ "Loaded %d score entries in %d sections in %.1f seconds (%.0f entries/sec)" #~ msgstr "" #~ "Loaded %d score entries in %d sections in %.1f seconds (%.0f entries/sec)" #~ msgid "Error score to file \"%s\": %s" #~ msgstr "Error score to file \"%s\": %s" #~ msgid "Scorefile entry removed -- old scorefile \"%s\" backed up as \"%s\"" #~ msgstr "Scorefile entry removed -- old scorefile \"%s\" backed up as \"%s\"" #~ msgid "Please don't begin folders with \"pan.\"; it confuses me." #~ msgstr "Please don't begin folders with \"pan.\"; it confuses me." #~ msgid "Create New Folder" #~ msgstr "Create New Folder" #~ msgid "New Folder Name:" #~ msgstr "New Folder Name:" #~ msgid "/Get New Headers and _Bodies" #~ msgstr "/Get New Headers and _Bodies" #~ msgid "/More Download _Options..." #~ msgstr "/More Download _Options..." #~ msgid "/Refresh Article _Counts" #~ msgstr "/Refresh Article _Counts" #~ msgid "/Group _Properties..." #~ msgstr "/Group _Properties..." #~ msgid " (Moderated)" #~ msgstr " (Moderated)" #~ msgid " (Read-Only)" #~ msgstr " (Read-Only)" #~ msgid "Subscribed" #~ msgstr "Subscribed" #~ msgid "All Groups" #~ msgstr "All Groups" #~ msgid "" #~ "We don't have a list of groups for \"%*.*s\".\n" #~ "Shall we download one?" #~ msgstr "" #~ "We don't have a list of groups for \"%*.*s\".\n" #~ "Shall we download one?" #~ msgid "Total" #~ msgstr "Total" #~ msgid "Description" #~ msgstr "Description" #~ msgid "F_ind:" #~ msgstr "F_ind:" #~ msgid "" #~ "Type in a group search string and press ENTER. Wildcards are allowed." #~ msgstr "" #~ "Type in a group search string and press ENTER. Wildcards are allowed." #~ msgid "The Task Manager is Empty" #~ msgstr "The Task Manager is Empty" #~ msgid "Post" #~ msgstr "Post" #~ msgid "Get" #~ msgstr "Get" #~ msgid "Mine" #~ msgstr "Mine" #~ msgid "Net" #~ msgstr "Net" #~ msgid "/_File/_Save Article As..." #~ msgstr "/_File/_Save Article As..." #~ msgid "/_File/Save Article A_ttachments" #~ msgstr "/_File/Save Article A_ttachments" #~ msgid "/_File/Manual _Decode..." #~ msgstr "/_File/Manual _Decode..." #~ msgid "/_File/_Print Article..." #~ msgstr "/_File/_Print Article..." #~ msgid "/_File/---" #~ msgstr "/_File/---" #~ msgid "/_File/_Cancel Last Task" #~ msgstr "/_File/_Cancel Last Task" #~ msgid "/_File/Log _Viewer..." #~ msgstr "/_File/Log _Viewer..." #~ msgid "/_File/_New Folder..." #~ msgstr "/_File/_New Folder..." #~ msgid "/_File/Delete _Folder..." #~ msgstr "/_File/Delete _Folder..." #~ msgid "/_File/_Edit Article in Folder" #~ msgstr "/_File/_Edit Article in Folder" #~ msgid "/_File/E_xit" #~ msgstr "/_File/E_xit" #~ msgid "/_Edit/Select all" #~ msgstr "/_Edit/Select all" #~ msgid "/_Edit/Deselect all" #~ msgstr "/_Edit/Deselect all" #~ msgid "/_Edit/---" #~ msgstr "/_Edit/---" #~ msgid "/_Edit/Select all _Groups" #~ msgstr "/_Edit/Select all _Groups" #~ msgid "/_Edit/Add S_ubscribed to Selection" #~ msgstr "/_Edit/Add S_ubscribed to Selection" #~ msgid "/_Edit/Deselect all G_roups" #~ msgstr "/_Edit/Deselect all G_roups" #~ msgid "/_Edit/Add S_et to Selection" #~ msgstr "/_Edit/Add S_et to Selection" #~ msgid "/_Edit/_Find..." #~ msgstr "/_Edit/_Find..." #~ msgid "/_Edit/Find _Next" #~ msgstr "/_Edit/Find _Next" #~ msgid "/_View/---" #~ msgstr "/_View/---" #~ msgid "/_View/Thr_ead Header Pane" #~ msgstr "/_View/Thr_ead Header Pane" #~ msgid "/_View/_Rot13 Selected Text" #~ msgstr "/_View/_Rot13 Selected Text" #~ msgid "/_View/E_xpand Selected Threads" #~ msgstr "/_View/E_xpand Selected Threads" #~ msgid "/_View/C_ollapse Selected Threads" #~ msgstr "/_View/C_ollapse Selected Threads" #~ msgid "/Filte_r/Custom _Filters..." #~ msgstr "/Filte_r/Custom _Filters..." #~ msgid "/Filte_r/_Rules..." #~ msgstr "/Filte_r/_Rules..." #~ msgid "/Filte_r/_Edit Scorefile..." #~ msgstr "/Filte_r/_Edit Scorefile..." #~ msgid "/Filte_r/---" #~ msgstr "/Filte_r/---" #~ msgid "/Filte_r/Match Only _Cached Articles" #~ msgstr "/Filte_r/Match Only _Cached Articles" #~ msgid "/Filte_r/Match Only _Text Articles" #~ msgstr "/Filte_r/Match Only _Text Articles" #~ msgid "/Filte_r/Match Only _Binary Attachment Articles" #~ msgstr "/Filte_r/Match Only _Binary Attachment Articles" #~ msgid "/Filte_r/Match Only _My Articles" #~ msgstr "/Filte_r/Match Only _My Articles" #~ msgid "/Filte_r/Match _New Articles" #~ msgstr "/Filte_r/Match _New Articles" #~ msgid "/Filte_r/Match _Unread Articles" #~ msgstr "/Filte_r/Match _Unread Articles" #~ msgid "/_Go/Read More" #~ msgstr "/_Go/Read More" #~ msgid "/_Go/---" #~ msgstr "/_Go/---" #~ msgid "/_Go/Next _New Article" #~ msgstr "/_Go/Next _New Article" #~ msgid "/_Go/Previous Article _Read" #~ msgstr "/_Go/Previous Article _Read" #~ msgid "/_Servers" #~ msgstr "/_Servers" #~ msgid "/_Servers/News _Servers..." #~ msgstr "/_Servers/News _Servers..." #~ msgid "/_Servers/---" #~ msgstr "/_Servers/---" #~ msgid "/_Servers/Get List of Groups" #~ msgstr "/_Servers/Get List of Groups" #~ msgid "/_Newsgroups/Mark Group _Read" #~ msgstr "/_Newsgroups/Mark Group _Read" #~ msgid "/_Newsgroups/_Delete Group's Articles" #~ msgstr "/_Newsgroups/_Delete Group's Articles" #~ msgid "/_Newsgroups/---" #~ msgstr "/_Newsgroups/---" #~ msgid "/_Newsgroups/Get New _Headers" #~ msgstr "/_Newsgroups/Get New _Headers" #~ msgid "/_Newsgroups/Get New Headers and _Bodies" #~ msgstr "/_Newsgroups/Get New Headers and _Bodies" #~ msgid "/_Newsgroups/More Download _Options..." #~ msgstr "/_Newsgroups/More Download _Options..." #~ msgid "/_Newsgroups/Refresh Article _Counts" #~ msgstr "/_Newsgroups/Refresh Article _Counts" #~ msgid "/_Newsgroups/Get New Headers in Subscribed _Groups" #~ msgstr "/_Newsgroups/Get New Headers in Subscribed _Groups" #~ msgid "/_Newsgroups/_Subscribe" #~ msgstr "/_Newsgroups/_Subscribe" #~ msgid "/_Newsgroups/_Unsubscribe" #~ msgstr "/_Newsgroups/_Unsubscribe" #~ msgid "/_Newsgroups/Group _Properties..." #~ msgstr "/_Newsgroups/Group _Properties..." #~ msgid "/_Newsgroups/Dele_te Group" #~ msgstr "/_Newsgroups/Dele_te Group" #~ msgid "/_Articles/Mark _Read" #~ msgstr "/_Articles/Mark _Read" #~ msgid "/_Articles/Mark _Unread" #~ msgstr "/_Articles/Mark _Unread" #~ msgid "/_Articles/---" #~ msgstr "/_Articles/---" #~ msgid "/_Articles/D_ownload Flagged" #~ msgstr "/_Articles/D_ownload Flagged" #~ msgid "/_Articles/_Flag" #~ msgstr "/_Articles/_Flag" #~ msgid "/_Articles/U_nflag" #~ msgstr "/_Articles/U_nflag" #~ msgid "/_Articles/Down_load" #~ msgstr "/_Articles/Down_load" #~ msgid "/_Articles/_Watch Thread" #~ msgstr "/_Articles/_Watch Thread" #~ msgid "/_Articles/_Ignore Thread" #~ msgstr "/_Articles/_Ignore Thread" #~ msgid "/_Articles/_View Article's Scores" #~ msgstr "/_Articles/_View Article's Scores" #~ msgid "/_Articles/_Create Score..." #~ msgstr "/_Articles/_Create Score..." #~ msgid "/_Articles/Cancel..." #~ msgstr "/_Articles/Cancel..." #~ msgid "/_Articles/Supersed_e..." #~ msgstr "/_Articles/Supersed_e..." #~ msgid "/_Articles/_Delete" #~ msgstr "/_Articles/_Delete" #~ msgid "/_Post" #~ msgstr "/_Post" #~ msgid "/_Post/_Post to Newsgroup..." #~ msgstr "/_Post/_Post to Newsgroup..." #~ msgid "/_Post/_Reply by Email..." #~ msgstr "/_Post/_Reply by Email..." #~ msgid "/_Post/For_ward by Email..." #~ msgstr "/_Post/For_ward by Email..." #~ msgid "/_Post/---" #~ msgstr "/_Post/---" #~ msgid "/_Post/Send Pending _Messages" #~ msgstr "/_Post/Send Pending _Messages" #~ msgid "/_Help" #~ msgstr "/_Help" #~ msgid "/_Help/---" #~ msgstr "/_Help/---" #~ msgid "%s (%u) [%d missing pieces]" #~ msgstr "%s (%u) [%d missing pieces]" #~ msgid "%s [%d missing pieces]" #~ msgstr "%s [%d missing pieces]" #~ msgid "The default charset set for articles posted with this profile" #~ msgstr "The default charset set for articles posted with this profile" #~ msgid "Pan: Edit Profile" #~ msgstr "Pan: Edit Profile" #~ msgid "_User Profile" #~ msgstr "_User Profile" #~ msgid "Cus_tom Headers" #~ msgstr "Cus_tom Headers" #~ msgid "You must specify a username or disable authorization." #~ msgstr "You must specify a username or disable authorisation." #~ msgid "" #~ "Your real name contained double quotes.\n" #~ "Converting into single quotes." #~ msgstr "" #~ "Your real name contained double quotes.\n" #~ "Converting into single quotes." #~ msgid "You need at least one profile" #~ msgstr "You need at least one profile" #~ msgid "Use the selected profile to create a new profile" #~ msgstr "Use the selected profile to create a new profile" #~ msgid "Wrote profiles to \"%s\"" #~ msgstr "Wrote profiles to \"%s\"" #~ msgid "Save the log to a file" #~ msgstr "Save the log to a file" #~ msgid "/_File/_Save..." #~ msgstr "/_File/_Save..." #~ msgid "/_File/Clea_r" #~ msgstr "/_File/Clea_r" #~ msgid "/_File/_Close" #~ msgstr "/_File/_Close" #~ msgid "Pan: Status Log" #~ msgstr "Pan: Status Log" #~ msgid "Clear the log window" #~ msgstr "Clear the log window" #~ msgid "Time" #~ msgstr "Time" #~ msgid "Log Entry" #~ msgstr "Log Entry" #~ msgid "Post anyway, despite these problems?" #~ msgstr "Post anyway, despite these problems?" #~ msgid "Post anyway, despite this problem?" #~ msgstr "Post anyway, despite this problem?" #~ msgid "/_File/_Save Changes" #~ msgstr "/_File/_Save Changes" #~ msgid "/_File/Save _As..." #~ msgstr "/_File/Save _As..." #~ msgid "/_Edit/Cu_t" #~ msgstr "/_Edit/Cu_t" #~ msgid "/_Edit/_Copy" #~ msgstr "/_Edit/_Copy" #~ msgid "/_Edit/_Paste" #~ msgstr "/_Edit/_Paste" #~ msgid "/_Edit/_Rot13 Selected Text" #~ msgstr "/_Edit/_Rot13 Selected Text" #~ msgid "/_Edit/Edit with E_xternal Editor" #~ msgstr "/_Edit/Edit with E_xternal Editor" #~ msgid "/_File/Send Now" #~ msgstr "/_File/Send Now" #~ msgid "/_File/Send Later" #~ msgstr "/_File/Send Later" #~ msgid "Send Later" #~ msgstr "Send Later" #~ msgid "Rewrap" #~ msgstr "Rewrap" #~ msgid "Turn line wrap on/off" #~ msgstr "Turn line wrap on/off" #~ msgid "Edit with an External Editor" #~ msgstr "Edit with an External Editor" #~ msgid "Mime (single-part posts only)" #~ msgstr "Mime (single-part posts only)" #~ msgid " (%lu lines in 1 article)" #~ msgstr " (%lu lines in 1 article)" #~ msgid " (%lu lines in %lu articles)" #~ msgstr " (%lu lines in %lu articles)" #~ msgid "UUEncoded (universally accepted)" #~ msgstr "UUEncoded (universally accepted)" #~ msgid "yEnc (30 percent smaller than UUEnc but less universal)" #~ msgstr "yEnc (30 percent smaller than UUEnc but less universal)" #~ msgid "Select the file to attach." #~ msgstr "Select the file to attach." #~ msgid "Files to Attach" #~ msgstr "Files to Attach" #~ msgid "Kilobytes" #~ msgstr "Kilobytes" #~ msgid "Add a File to the Attachment List" #~ msgstr "Add a File to the Attachment List" #~ msgid "Remove a File from the Attachment List" #~ msgstr "Remove a File from the Attachment List" #~ msgid "Lines per article:" #~ msgstr "Lines per article:" #~ msgid "Estimated Article Size" #~ msgstr "Estimated Article Size" #~ msgid "Organization" #~ msgstr "Organisation" #~ msgid "The organization you're associated with." #~ msgstr "The organisation you're associated with." #~ msgid "Charset" #~ msgstr "Charset" #~ msgid "" #~ "Could not convert \"%s\" to UTF-8. Article may not display correctly." #~ msgstr "" #~ "Could not convert \"%s\" to UTF-8. Article may not display correctly." #~ msgid "\"Followup-To: poster\": sending email to author." #~ msgstr "\"Followup-To: poster\": sending email to author." #~ msgid "\"Followup-To:\" contains an email address: sending email to author." #~ msgstr "" #~ "\"Followup-To:\" contains an email address: sending email to author." #~ msgid "New Message" #~ msgstr "New Message" #~ msgid "" #~ "ERROR: line %d, column %d uses a character not specified in charset \"%s" #~ "\" -- possibly change your charset in \"More Headers\" to \"%s\" instead?" #~ msgstr "" #~ "ERROR: line %d, column %d uses a character not specified in charset \"%s" #~ "\" -- possibly change your charset in \"More Headers\" to \"%s\" instead?" #~ msgid "Save message to file" #~ msgstr "Save message to file" #~ msgid "The command line was: %s" #~ msgstr "The command line was: %s" #~ msgid "Select Color" #~ msgstr "Select Colour" #~ msgid "Font Family" #~ msgstr "Font Family" #~ msgid " --resume Resume tasks from last session without prompting" #~ msgstr " --resume Resume tasks from last session without prompting" #~ msgid " --version Prints Pan's version number" #~ msgstr " --version Prints Pan's version number" #~ msgid " --help Prints this message and exits" #~ msgstr " --help Prints this message and exits" #~ msgid "" #~ " --debug Turns on the most commonly-used options for a bug " #~ "report" #~ msgstr "" #~ " --debug Turns on the most commonly-used options for a bug " #~ "report" #~ msgid "" #~ " --mute Debugging tool to send new posts to console, not the " #~ "server" #~ msgstr "" #~ " --mute Debugging tool to send new posts to console, not the " #~ "server" #~ msgid " --debug-cache Print debugging messages for the article cache" #~ msgstr " --debug-cache Print debugging messages for the article cache" #~ msgid "" #~ " --debug-sockets Print debugging messages when talking to the news " #~ "server" #~ msgstr "" #~ " --debug-sockets Print debugging messages when talking to the news " #~ "server" #~ msgid "" #~ " --debug-queue Print debugging messages related to managing tasks" #~ msgstr "" #~ " --debug-queue Print debugging messages related to managing tasks" #~ msgid "" #~ " --debug-decode Print debugging messages related to decoding " #~ "attachments" #~ msgstr "" #~ " --debug-decode Print debugging messages related to decoding " #~ "attachments" #~ msgid " --debug-newsrc Print debugging messages related to .newsrc files" #~ msgstr "" #~ " --debug-newsrc Print debugging messages related to .newsrc files" #~ msgid "" #~ " --debug-gnksa Print debugging messages related to gnksa correctness" #~ msgstr "" #~ " --debug-gnksa Print debugging messages related to gnksa correctness" #~ msgid "" #~ " --debug-trace Print debugging messages when entering/leaving " #~ "functions" #~ msgstr "" #~ " --debug-trace Print debugging messages when entering/leaving " #~ "functions" #~ msgid "" #~ " --debug-lock Print debugging messages related to threaded gui locks" #~ msgstr "" #~ " --debug-lock Print debugging messages related to threaded gui locks" #~ msgid "" #~ " --debug-object Print debugging messages related to refcounted objects" #~ msgstr "" #~ " --debug-object Print debugging messages related to refcounted objects" #~ msgid "Error writing to socket." #~ msgstr "Error writing to socket." #~ msgid "Spellchecking disabled: gtkspell_init() failed with status %d" #~ msgstr "Spellchecking disabled: gtkspell_init() failed with status %d" #~ msgid "Restored %d tasks from last session" #~ msgstr "Restored %d tasks from last session" #~ msgid "" #~ "Some tasks were still queued the last time Pan exited. Do you want to " #~ "resume those tasks?" #~ msgstr "" #~ "Some tasks were still queued the last time Pan exited. Do you want to " #~ "resume those tasks?" #~ msgid "_Resume" #~ msgstr "_Resume" #~ msgid "" #~ "%a - abbreviated weekday name\n" #~ "%A - full weekday name\n" #~ "%b - abbreviated month name\n" #~ "%B - full month name\n" #~ "%c - local date & time\n" #~ "%d - day of the month\n" #~ "%H - hour (24-hour clock)\n" #~ "%I - hour (12-hour clock)\n" #~ "%j - day of the year (001-366)\n" #~ "%m - month (01-12)\n" #~ "%M - minute (00-59)\n" #~ "%p - local equivalent of AM/PM\n" #~ "%S - second (00-61)\n" #~ "%x - local date\n" #~ "%X - local time\n" #~ "%y - two-digit year\n" #~ "%Y - four-digit year\n" #~ "%% - %" #~ msgstr "" #~ "%a - abbreviated weekday name\n" #~ "%A - full weekday name\n" #~ "%b - abbreviated month name\n" #~ "%B - full month name\n" #~ "%c - local date & time\n" #~ "%d - day of the month\n" #~ "%H - hour (24-hour clock)\n" #~ "%I - hour (12-hour clock)\n" #~ "%j - day of the year (001-366)\n" #~ "%m - month (01-12)\n" #~ "%M - minute (00-59)\n" #~ "%p - local equivalent of AM/PM\n" #~ "%S - second (00-61)\n" #~ "%x - local date\n" #~ "%X - local time\n" #~ "%y - two-digit year\n" #~ "%Y - four-digit year\n" #~ "%% - %" #~ msgid "Color the \"sub_ject\" column" #~ msgstr "Colour the \"sub_ject\" column" #~ msgid "Articles with a Score of 9999 or higher:" #~ msgstr "Articles with a Score of 9999 or higher:" #~ msgid "Articles with a Score between 5000 and 9998:" #~ msgstr "Articles with a Score between 5000 and 9998:" #~ msgid "Articles with a Score between 1 and 4999:" #~ msgstr "Articles with a Score between 1 and 4999:" #~ msgid "Articles with a Score between -9998 and -1:" #~ msgstr "Articles with a Score between -9998 and -1:" #~ msgid "Articles with a Score of -9999 or lower:" #~ msgstr "Articles with a Score of -9999 or lower:" #~ msgid "_1:" #~ msgstr "_1:" #~ msgid "_2:" #~ msgstr "_2:" #~ msgid "_3:" #~ msgstr "_3:" #~ msgid "Pane Order" #~ msgstr "Pane Order" #~ msgid "Action State" #~ msgstr "Action State" #~ msgid "Article State" #~ msgstr "Article State" #~ msgid "Column Layout" #~ msgstr "Column Layout" #~ msgid "When a Followup subject header changes, show as _new thread" #~ msgstr "When a Followup subject header changes, show as _new thread" #~ msgid "E_xpand all threads by default" #~ msgstr "E_xpand all threads by default" #~ msgid "Date Forma_t:" #~ msgstr "Date Forma_t:" #~ msgid "Show \"%s\" header" #~ msgstr "Show \"%s\" header" #~ msgid "Newsreader" #~ msgstr "Newsreader" #~ msgid "Characters denoting _quoted text:" #~ msgstr "Characters denoting _quoted text:" #~ msgid "Download new headers from s_ubscribed groups when starting Pan" #~ msgstr "Download new headers from s_ubscribed groups when starting Pan" #~ msgid "" #~ "Download new headers and bod_ies from subscribed groups when starting Pan" #~ msgstr "" #~ "Download new headers and bod_ies from subscribed groups when starting Pan" #~ msgid "Download Directory" #~ msgstr "Download Directory" #~ msgid "Automatically remove _failed tasks from the task manager" #~ msgstr "Automatically remove _failed tasks from the task manager" #~ msgid "_Erase cache when exiting Pan" #~ msgstr "_Erase cache when exiting Pan" #~ msgid "Ma_ximum Cache Size (Megs):" #~ msgstr "Ma_ximum Cache Size (Megs):" #~ msgid "_Web Browser (%s is URL):" #~ msgstr "_Web Browser (%s is URL):" #~ msgid "_Editor (%t is filename):" #~ msgstr "_Editor (%t is filename):" #~ msgid "" #~ "Scorefile _Editor:\n" #~ "(%t is filename, %n is line number)" #~ msgstr "" #~ "Scorefile _Editor:\n" #~ "(%t is filename, %n is line number)" #~ msgid "Scorefile" #~ msgstr "Scorefile" #~ msgid "Score_file" #~ msgstr "Score_file" #~ msgid "Sending Mail" #~ msgstr "Sending Mail" #~ msgid "Mail Server Add_ress:" #~ msgstr "Mail Server Add_ress:" #~ msgid "Mail Server Por_t:" #~ msgstr "Mail Server Por_t:" #~ msgid "Hea_der Pane" #~ msgstr "Hea_der Pane" #~ msgid "A_pps & Mail" #~ msgstr "A_pps & Mail" #~ msgid "You haven't loaded an article to print." #~ msgstr "You haven't loaded an article to print." #~ msgid "" #~ "%s\n" #~ "\n" #~ "Matches: %u\n" #~ "Group: %s\n" #~ "Rule: %s" #~ msgstr "" #~ "%s\n" #~ "\n" #~ "Matches: %u\n" #~ "Group: %s\n" #~ "Rule: %s" #~ msgid "Mark as" #~ msgstr "Mark as" #~ msgid "_Flag body for download" #~ msgstr "_Flag body for download" #~ msgid "_Retrieve Body" #~ msgstr "_Retrieve Body" #~ msgid "_Watch thread (highlights the thread)" #~ msgstr "_Watch thread (highlights the thread)" #~ msgid "_Ignore thread (hides the thread by default)" #~ msgstr "_Ignore thread (hides the thread by default)" #~ msgid "Rule applies to all newsgroups" #~ msgstr "Rule applies to all newsgroups" #~ msgid "Wildcard group specification:" #~ msgstr "Wildcard group specification:" #~ msgid "(e.g., *anime*)" #~ msgstr "(e.g., *anime*)" #~ msgid "Rule applies to specific newsgroups:" #~ msgstr "Rule applies to specific newsgroups:" #~ msgid "Rule applies to:" #~ msgstr "Rule applies to:" #~ msgid "Rule Name:" #~ msgstr "Rule Name:" #~ msgid "Apply to Incoming" #~ msgstr "Apply to Incoming" #~ msgid "" #~ "If enabled, this rule will be applied to headers when they are downloaded." #~ msgstr "" #~ "If enabled, this rule will be applied to headers when they are downloaded." #~ msgid "New Rule" #~ msgstr "New Rule" #~ msgid "Delete Articles by Bozos" #~ msgstr "Delete Articles by Bozos" #~ msgid "Applying rule to selected groups" #~ msgstr "Applying rule to selected groups" #~ msgid "Applying rule \"%s\" to group \"%s\"" #~ msgstr "Applying rule \"%s\" to group \"%s\"" #~ msgid "Rules" #~ msgstr "Rules" #~ msgid "Hit Ratio" #~ msgstr "Hit Ratio" #~ msgid "" #~ "Apply to\n" #~ "Selected\n" #~ "Groups" #~ msgstr "" #~ "Apply to\n" #~ "Selected\n" #~ "Groups" #~ msgid "" #~ "Apply to\n" #~ "Subscribed\n" #~ "Groups" #~ msgstr "" #~ "Apply to\n" #~ "Subscribed\n" #~ "Groups" #~ msgid "Wrote rules to \"%s\"" #~ msgstr "Wrote rules to \"%s\"" #~ msgid "" #~ "Can't find filter \"%s\" needed by rule \"%s\", so no articles match." #~ msgstr "" #~ "Can't find filter \"%s\" needed by rule \"%s\", so no articles match." #~ msgid "%u articles match rule %s" #~ msgstr "%u articles match rule %s" #~ msgid "Pan: Manual Decode" #~ msgstr "Pan: Manual Decode" #~ msgid "Save Files in Directory" #~ msgstr "Save Files in Directory" #~ msgid "_Directory:" #~ msgstr "_Directory:" #~ msgid "Add to the _top of the Task Manager's List" #~ msgstr "Add to the _top of the Task Manager's List" #~ msgid "Criterion \"%s\" is selected, but empty." #~ msgstr "Criterion \"%s\" is selected, but empty." #~ msgid "No criteria are selected." #~ msgstr "No criteria are selected." #~ msgid "Pan: Add to Scorefile" #~ msgstr "Pan: Add to Scorefile" #~ msgid "Su_bject:" #~ msgstr "Su_bject:" #~ msgid "A_uthor:" #~ msgstr "A_uthor:" #~ msgid "_Lines:" #~ msgstr "_Lines:" #~ msgid "at least N lines long" #~ msgstr "at least N lines long" #~ msgid "less than N lines long" #~ msgstr "less than N lines long" #~ msgid "Chan_ge Score:" #~ msgstr "Chan_ge Score:" #~ msgid "subtract" #~ msgstr "subtract" #~ msgid "Expire in N _days:" #~ msgstr "Expire in N _days:" #~ msgid "Edit the selected score" #~ msgstr "Edit the selected score" #~ msgid "You must specify an address." #~ msgstr "You must specify an address." #~ msgid "You must specify a password or disable authorization." #~ msgstr "You must specify a password or disable authorisation." #~ msgid "You must specify a .newsrc filename or disable newsrc support." #~ msgstr "You must specify a .newsrc filename or disable newsrc support." #~ msgid "Newsrc" #~ msgstr "Newsrc" #~ msgid "Us_e .newsrc file" #~ msgstr "Us_e .newsrc file" #~ msgid "Select .newsrc File" #~ msgstr "Select .newsrc File" #~ msgid "_Filename:" #~ msgstr "_Filename:" #~ msgid "Edit the selected server" #~ msgstr "Edit the selected server" #~ msgid "Remove the selected server" #~ msgstr "Remove the selected server" #~ msgid "Got unexpected response from mail server: expected %d; got %s" #~ msgstr "Got unexpected response from mail server: expected %d; got %s" #~ msgid "Sending mail" #~ msgstr "Sending mail" #~ msgid "No known recipients" #~ msgstr "No known recipients" #~ msgid "Mail sent!" #~ msgstr "Mail sent!" #~ msgid "Handshaking with mail server" #~ msgstr "Handshaking with mail server" #~ msgid "Connecting to mail server" #~ msgstr "Connecting to mail server" #~ msgid "Mail server not ready" #~ msgstr "Mail server not ready" #~ msgid "New connection %p for %s, port %d" #~ msgstr "New connection %p for %s, port %d" #~ msgid "Downloading %u articles" #~ msgstr "Downloading %u articles" #~ msgid "Downloading 1 article" #~ msgstr "Downloading 1 article" #~ msgid "Downloading %d articles" #~ msgstr "Downloading %d articles" #~ msgid "\"%s\"" #~ msgstr "\"%s\"" #~ msgid "Article %s (%s) canceled" #~ msgstr "Article %s (%s) canceled" #~ msgid "Updating article counts for %u groups from server \"%s\"" #~ msgstr "Updating article counts for %u groups from server \"%s\"" #~ msgid "Got %d group descriptions" #~ msgstr "Got %d group descriptions" #~ msgid "Fetching group descriptions" #~ msgstr "Fetching group descriptions" #~ msgid "Corrupt header skipped: " #~ msgstr "Corrupt header skipped: " #~ msgid "Not Queued" #~ msgstr "Not Queued" #~ msgid "Pan %s Task Manager" #~ msgstr "Pan %s Task Manager" #~ msgid "Move Selected Task(s) Up" #~ msgstr "Move Selected Task(s) Up" #~ msgid "Move Selected Task(s) to Top" #~ msgstr "Move Selected Task(s) to Top" #~ msgid "Move Selected Task(s) Down" #~ msgstr "Move Selected Task(s) Down" #~ msgid "Stop Selected Task(s)" #~ msgstr "Stop Selected Task(s)" #~ msgid "Delete Selected Task(s)" #~ msgstr "Delete Selected Task(s)" #~ msgid "Time Remaining" #~ msgstr "Time Remaining" #~ msgid "Article \"%s\" posted." #~ msgstr "Article \"%s\" posted." #~ msgid "Article \"%s\" not posted." #~ msgstr "Article \"%s\" not posted." #~ msgid "Usenet posting failed. " #~ msgstr "Usenet posting failed. " #~ msgid "Check Tools|Log Viewer for more information. " #~ msgstr "Check Tools|Log Viewer for more information. " #~ msgid "Your message was saved in the folder \"pan.sendlater\"" #~ msgstr "Your message was saved in the folder \"pan.sendlater\"" #~ msgid "Saving Attachments" #~ msgstr "Saving Attachments" #~ msgid "Save Article can't access path \"%s\"" #~ msgstr "Save Article can't access path \"%s\"" #~ msgid "Saved article body to \"%s\"" #~ msgstr "Saved article body to \"%s\"" #~ msgid "X-Newsreader" #~ msgstr "X-Newsreader" #~ msgid "X-Mailer" #~ msgstr "X-Mailer" #~ msgid "User-Agent" #~ msgstr "User-Agent" #~ msgid "" #~ "Pan %s\n" #~ "Copyright (c) %d by Charles Kerr\n" #~ "\n" #~ "If you find a bug, please report it.\n" #~ "\n" #~ msgstr "" #~ "Pan %s\n" #~ "Copyright (c) %d by Charles Kerr\n" #~ "\n" #~ "If you find a bug, please report it.\n" #~ "\n" #~ msgid "" #~ "http://pan.rebelbase.com/ - Pan Homepage\n" #~ "http://pan.rebelbase.com/bugs/ - Report a Bug\n" #~ "http://pan.rebelbase.com/download/ - Upgrade\n" #~ "\n" #~ msgstr "" #~ "http://pan.rebelbase.com/ - Pan Homepage\n" #~ "http://pan.rebelbase.com/bugs/ - Report a Bug\n" #~ "http://pan.rebelbase.com/download/ - Upgrade\n" #~ "\n" #~ msgid "" #~ "This program is free software; you can redistribute it\n" #~ "and/or modify it under the terms of the GNU General Public\n" #~ "License as published by the Free Software Foundation;\n" #~ "version 2 of the License.\n" #~ "\n" #~ "This program is distributed in the hope that it will be\n" #~ "useful, but WITHOUT ANY WARRANTY; without even the implied\n" #~ "warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\n" #~ "PURPOSE. See the GNU General Public License for more\n" #~ "details.\n" #~ "\n" #~ "The GNU Public License can be found from the menu above\n" #~ "in Help|About|License." #~ msgstr "" #~ "This program is free software; you can redistribute it\n" #~ "and/or modify it under the terms of the GNU General Public\n" #~ "License as published by the Free Software Foundation;\n" #~ "version 2 of the License.\n" #~ "\n" #~ "This program is distributed in the hope that it will be\n" #~ "useful, but WITHOUT ANY WARRANTY; without even the implied\n" #~ "warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\n" #~ "PURPOSE. See the GNU General Public License for more\n" #~ "details.\n" #~ "\n" #~ "The GNU Public License can be found from the menu above\n" #~ "in Help|About|License." #~ msgid "Error starting external browser: %s" #~ msgstr "Error starting external browser: %s" #~ msgid "Error starting external scorefile editor: %s" #~ msgstr "Error starting external scorefile editor: %s" pan-0.162/po/eo.po000066400000000000000000002051621475412772400137040ustar00rootroot00000000000000# Esperanto translation for pan2. # Copyright (C) 2011 Free Software Foundation, Inc. # This file is distributed under the same license as the pan2 package. # Kristjan SCHMIDT , 2011. # msgid "" msgstr "" "Project-Id-Version: pan2 master\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-04-04 20:58+0200\n" "PO-Revision-Date: 2011-11-13 15:26+0100\n" "Last-Translator: Kristjan SCHMIDT \n" "Language-Team: Esperanto \n" "Language: eo\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bits\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" #: ../pan.desktop.in.h:1 msgid "Pan Newsreader" msgstr "" #: ../pan.desktop.in.h:2 msgid "Read and Post Usenet Articles" msgstr "" #: ../pan/data/article-cache.cc:143 ../pan/data/encode-cache.cc:62 #, c-format msgid "Error opening directory: \"%s\": %s" msgstr "Eraro dum malfermado de dosierujo: \"%s\": %s" #: ../pan/data/article-cache.cc:231 ../pan/data/article-cache.cc:242 #: ../pan/data-impl/data-io.cc:187 ../pan/data-impl/data-io.cc:211 #: ../pan/gui/post-ui.cc:1639 #, c-format msgid "Unable to save \"%s\" %s" msgstr "Ne eblas konservi na \"%s\" %s" #: ../pan/data/article-cache.cc:355 #, c-format msgid "Error opening file \"%s\" %s" msgstr "Eraro dum malfermo de dosiero \"%s\": %s" #: ../pan/data/article-cache.cc:386 ../pan/data-impl/profiles.cc:174 #: ../pan/data-impl/server.cc:436 ../pan/general/file-util.cc:298 #: ../pan/gui/post-ui.cc:609 ../pan/gui/task-pane.cc:691 #, c-format msgid "Error reading file \"%s\": %s" msgstr "Eraro dum legado de dosiero \"%s\": %s" #: ../pan/data/cert-store.cc:238 #, fuzzy, c-format msgid "Error opening SSL certificate directory: \"%s\": %s" msgstr "Eraro dum malfermado de dosierujo: \"%s\": %s" #: ../pan/data/cert-store.cc:270 #, c-format msgid "Succesfully added %d SSL PEM certificate(s) to Certificate Store." msgstr "" #. load_group_descriptions (*_data_io); #: ../pan/data-impl/data-impl.cc:109 #, c-format msgid "Loaded data backend in %.1f seconds" msgstr "" #: ../pan/data-impl/data-impl.cc:140 msgid "Pan newsreader server passwords" msgstr "" #: ../pan/data-impl/groups.cc:94 #, c-format msgid "Skipping newsrc file for server \"%s\"" msgstr "" #: ../pan/data-impl/headers.cc:606 #, c-format msgid "Expired %lu old articles from \"%s\"" msgstr "" #: ../pan/data-impl/headers.cc:613 #, c-format msgid "" "Unsupported data version for %s headers: %d.\n" "Are you running an old version of Pan by accident?" msgstr "" #: ../pan/data-impl/headers.cc:628 #, c-format msgid "Loaded %lu articles for \"%s\" in %.1f seconds (%.0f per second)" msgstr "" #: ../pan/data-impl/headers.cc:857 #, c-format msgid "" "Saved %lu parts, %lu articles in \"%s\" in %.1f seconds (%.0f articles/sec)" msgstr "" #: ../pan/data-impl/headers.cc:1173 #, c-format msgid "Added %lu articles to %s." msgstr "" #: ../pan/data-impl/server.cc:234 #, c-format msgid "There seems to be no Password set for Server %s." msgstr "" #: ../pan/data-impl/server.cc:238 msgid "The Gnome keyring denied access to the Passwords." msgstr "" #: ../pan/data-impl/xover.cc:239 #, c-format msgid "Error reading from %s: unknown group \"%s\"" msgstr "Eraro dum legado de %s: nekonata grupo \"%s\"" #. build the locale strings #: ../pan/general/e-util.cc:213 msgid "%l:%M %p" msgstr "%l:%M %p" #: ../pan/general/e-util.cc:214 msgid "Today %l:%M %p" msgstr "Hodiaŭ %l:%M %p" #: ../pan/general/e-util.cc:215 msgid "%a %l:%M %p" msgstr "%a %l:%M %p" #: ../pan/general/e-util.cc:216 msgid "%b %d %l:%M %p" msgstr "%b %d %l:%M %p" #: ../pan/general/e-util.cc:217 msgid "%b %d %Y" msgstr "%b %d %Y" #: ../pan/general/e-util.cc:242 msgid "?" msgstr "?" #: ../pan/general/text-match.cc:193 #, c-format msgid "Can't use regular expression \"%s\": %s" msgstr "" #: ../pan/general/utf8-utils.cc:213 msgid "Couldn't determine article encoding. Non-UTF8 characters were removed." msgstr "" #: ../pan/gui/actions.cc:274 ../pan/gui/post-ui.cc:417 msgid "_File" msgstr "_Dosiero" #: ../pan/gui/actions.cc:275 ../pan/gui/post-ui.cc:418 msgid "_Edit" msgstr "R_edakti" #: ../pan/gui/actions.cc:276 ../pan/gui/prefs-ui.cc:1064 msgid "_Layout" msgstr "" #: ../pan/gui/actions.cc:277 msgid "_Group Pane" msgstr "" #: ../pan/gui/actions.cc:278 msgid "_Header Pane" msgstr "" #: ../pan/gui/actions.cc:279 msgid "_Body Pane" msgstr "" #: ../pan/gui/actions.cc:280 msgid "_View" msgstr "_Vido" #: ../pan/gui/actions.cc:281 msgid "Filte_r" msgstr "Filt_rilo" #: ../pan/gui/actions.cc:282 msgid "_Go" msgstr "I_ri" #: ../pan/gui/actions.cc:283 ../pan/gui/prefs-ui.cc:1091 msgid "_Actions" msgstr "_Agoj" #: ../pan/gui/actions.cc:284 msgid "_Articles" msgstr "" #: ../pan/gui/actions.cc:285 msgid "G_roups" msgstr "G_ropoj" #: ../pan/gui/actions.cc:286 ../pan/gui/actions.cc:287 msgid "_Post" msgstr "" #: ../pan/gui/actions.cc:288 msgid "_Help" msgstr "_Helpo" #: ../pan/gui/actions.cc:291 msgid "_Read Group" msgstr "_Legi gropon" #: ../pan/gui/actions.cc:292 msgid "Read Group" msgstr "Legi gropon" #: ../pan/gui/actions.cc:296 msgid "_Mark Selected Groups Read" msgstr "" #: ../pan/gui/actions.cc:297 msgid "Mark Selected Groups Read" msgstr "" #: ../pan/gui/actions.cc:301 msgid "_Delete Selected Groups' Articles" msgstr "" #: ../pan/gui/actions.cc:302 msgid "Delete Selected Groups' Articles" msgstr "" #: ../pan/gui/actions.cc:306 msgid "Get New _Headers in Selected Groups" msgstr "" #: ../pan/gui/actions.cc:307 msgid "Get New Headers in Selected Groups" msgstr "" #: ../pan/gui/actions.cc:311 ../pan/gui/actions.cc:316 msgid "Get New _Headers in Subscribed Groups" msgstr "" #: ../pan/gui/actions.cc:312 ../pan/gui/actions.cc:317 msgid "Get New Headers in Subscribed Groups" msgstr "" #: ../pan/gui/actions.cc:321 msgid "Get _Headers..." msgstr "" #: ../pan/gui/actions.cc:322 msgid "Get Headers..." msgstr "" #: ../pan/gui/actions.cc:326 ../pan/gui/actions.cc:327 msgid "Refresh Group List" msgstr "" #: ../pan/gui/actions.cc:331 msgid "_Subscribe" msgstr "_Aboni" #: ../pan/gui/actions.cc:332 msgid "Subscribe" msgstr "Aboni" #: ../pan/gui/actions.cc:336 msgid "_Unsubscribe" msgstr "_Malaboni" #: ../pan/gui/actions.cc:337 msgid "Unsubscribe" msgstr "Malaboni" #: ../pan/gui/actions.cc:341 msgid "_Save Articles..." msgstr "" #: ../pan/gui/actions.cc:342 msgid "Save Articles..." msgstr "" #: ../pan/gui/actions.cc:346 msgid "Save Articles from Selected _NZB..." msgstr "" #: ../pan/gui/actions.cc:347 #, fuzzy msgid "Save Articles from Selected NZB" msgstr "Sendi artikolon nun" #: ../pan/gui/actions.cc:351 msgid "Save Articles to an NZB _File..." msgstr "" #: ../pan/gui/actions.cc:352 msgid "Save Articles to an NZB File" msgstr "" #: ../pan/gui/actions.cc:356 ../pan/gui/actions.cc:357 msgid "Print" msgstr "" #: ../pan/gui/actions.cc:361 msgid "_Import NZB Files..." msgstr "" #: ../pan/gui/actions.cc:366 msgid "_Cancel Last Task" msgstr "" #: ../pan/gui/actions.cc:371 msgid "_Task Manager" msgstr "" #: ../pan/gui/actions.cc:376 msgid "_Event Log" msgstr "" #: ../pan/gui/actions.cc:381 msgid "_Quit" msgstr "Ĉ_esi" #: ../pan/gui/actions.cc:386 msgid "Select _All Articles" msgstr "" #: ../pan/gui/actions.cc:391 msgid "_Deselect All Articles" msgstr "" #: ../pan/gui/actions.cc:396 msgid "Add Su_bthreads to Selection" msgstr "" #: ../pan/gui/actions.cc:401 msgid "Add _Threads to Selection" msgstr "" #: ../pan/gui/actions.cc:406 msgid "Add _Similar Articles to Selection" msgstr "" #: ../pan/gui/actions.cc:411 msgid "Select Article _Body" msgstr "" #: ../pan/gui/actions.cc:416 msgid "Edit _Preferences" msgstr "Redakti _agordojn" #: ../pan/gui/actions.cc:421 msgid "Edit Selected _Group's Preferences" msgstr "" #: ../pan/gui/actions.cc:426 ../pan/gui/post-ui.cc:434 msgid "Edit P_osting Profiles" msgstr "" #: ../pan/gui/actions.cc:431 msgid "Edit _News Servers" msgstr "" #: ../pan/gui/actions.cc:436 msgid "Jump to _Group Tab" msgstr "" #: ../pan/gui/actions.cc:441 msgid "Jump to _Header Tab" msgstr "" #: ../pan/gui/actions.cc:446 msgid "Jump to _Body Tab" msgstr "" #: ../pan/gui/actions.cc:451 msgid "_Rot13 Selected Text" msgstr "" #: ../pan/gui/actions.cc:456 msgid "Clear _Header Pane" msgstr "" #: ../pan/gui/actions.cc:461 msgid "Clear _Body Pane" msgstr "" #: ../pan/gui/actions.cc:466 msgid "Cache Article" msgstr "" #: ../pan/gui/actions.cc:471 msgid "Read Article" msgstr "" #: ../pan/gui/actions.cc:476 msgid "Show Article Information" msgstr "" #: ../pan/gui/actions.cc:481 msgid "Read _More" msgstr "" #: ../pan/gui/actions.cc:482 msgid "Read More" msgstr "" #: ../pan/gui/actions.cc:486 msgid "Read _Back" msgstr "" #: ../pan/gui/actions.cc:487 msgid "Read Back" msgstr "" #: ../pan/gui/actions.cc:491 msgid "Next _Unread Group" msgstr "" #: ../pan/gui/actions.cc:496 msgid "Next _Group" msgstr "" #: ../pan/gui/actions.cc:501 msgid "Next _Unread Article" msgstr "" #: ../pan/gui/actions.cc:502 msgid "Next Unread Article" msgstr "" #: ../pan/gui/actions.cc:506 msgid "Next _Article" msgstr "" #: ../pan/gui/actions.cc:507 msgid "Next Article" msgstr "" #: ../pan/gui/actions.cc:511 msgid "Next _Watched Article" msgstr "" #: ../pan/gui/actions.cc:516 msgid "Next Unread _Thread" msgstr "" #: ../pan/gui/actions.cc:517 msgid "Next Unread Thread" msgstr "" #: ../pan/gui/actions.cc:521 msgid "Next Threa_d" msgstr "" #: ../pan/gui/actions.cc:526 msgid "Pre_vious Article" msgstr "" #: ../pan/gui/actions.cc:531 msgid "Previous _Thread" msgstr "" #: ../pan/gui/actions.cc:536 msgid "_Parent Article" msgstr "" #: ../pan/gui/actions.cc:541 msgid "Ignore _Author" msgstr "" #: ../pan/gui/actions.cc:545 msgid "_Watch Thread" msgstr "" #: ../pan/gui/actions.cc:550 msgid "_Ignore Thread" msgstr "" #: ../pan/gui/actions.cc:555 ../pan/gui/actions.cc:556 msgid "_Toggle Flag On/Off for Thread" msgstr "" #: ../pan/gui/actions.cc:560 ../pan/gui/actions.cc:561 msgid "_Turn Flag Off for Thread" msgstr "" #: ../pan/gui/actions.cc:565 ../pan/gui/actions.cc:566 msgid "_Select All Flagged Threads" msgstr "" #: ../pan/gui/actions.cc:570 ../pan/gui/actions.cc:571 msgid "_Go to Next Flagged Thread" msgstr "" #: ../pan/gui/actions.cc:575 ../pan/gui/actions.cc:576 msgid "_Go to Last Flagged Thread" msgstr "" #: ../pan/gui/actions.cc:580 ../pan/gui/actions.cc:581 msgid "_Invert Selection" msgstr "" #: ../pan/gui/actions.cc:585 msgid "Edit Article's Watch/Ignore/Score..." msgstr "" #: ../pan/gui/actions.cc:590 msgid "Add a _Scoring Rule..." msgstr "" #: ../pan/gui/actions.cc:595 msgid "Cance_l Article..." msgstr "" #: ../pan/gui/actions.cc:600 msgid "_Supersede Article..." msgstr "" #: ../pan/gui/actions.cc:605 msgid "_Delete Article" msgstr "" #: ../pan/gui/actions.cc:610 msgid "Clear Article Cache" msgstr "" #: ../pan/gui/actions.cc:615 msgid "_Mark Article as Read" msgstr "" #: ../pan/gui/actions.cc:620 msgid "Mark Article as _Unread" msgstr "" #: ../pan/gui/actions.cc:626 msgid "_Mark Thread as Read" msgstr "" #: ../pan/gui/actions.cc:631 msgid "Mark Thread as _Unread" msgstr "" #: ../pan/gui/actions.cc:636 msgid "_Post to Newsgroup" msgstr "" #: ../pan/gui/actions.cc:637 msgid "Post to Newsgroup" msgstr "" #: ../pan/gui/actions.cc:641 msgid "_Followup to Newsgroup" msgstr "" #: ../pan/gui/actions.cc:642 msgid "Followup to Newsgroup" msgstr "" #: ../pan/gui/actions.cc:646 msgid "_Reply to Author in Mail" msgstr "" #: ../pan/gui/actions.cc:651 msgid "_Pan Home Page" msgstr "" #: ../pan/gui/actions.cc:656 msgid "Give _Feedback or Report a Bug..." msgstr "" #: ../pan/gui/actions.cc:661 msgid "_Tip Jar..." msgstr "" #: ../pan/gui/actions.cc:666 msgid "_About" msgstr "" #: ../pan/gui/actions.cc:671 msgid "Edit _SSL Certificates" msgstr "" #: ../pan/gui/actions.cc:685 msgid "_Thread Headers" msgstr "" #: ../pan/gui/actions.cc:686 msgid "_Wrap Article Body" msgstr "" #: ../pan/gui/actions.cc:687 msgid "Mute _Quoted Text" msgstr "" #: ../pan/gui/actions.cc:688 msgid "Show All _Headers in Body Pane" msgstr "" #: ../pan/gui/actions.cc:689 msgid "Show _Smilies as Graphics" msgstr "" #: ../pan/gui/actions.cc:690 msgid "Show *Bold*, __Underlined__, and /Italic/" msgstr "" #: ../pan/gui/actions.cc:691 msgid "Size Pictures to _Fit" msgstr "" #: ../pan/gui/actions.cc:692 msgid "Use _Monospace Font" msgstr "" #: ../pan/gui/actions.cc:693 msgid "Set Focus to Images" msgstr "" #: ../pan/gui/actions.cc:694 msgid "Highlight _URLs" msgstr "" #: ../pan/gui/actions.cc:697 msgid "_Work Online" msgstr "" #: ../pan/gui/actions.cc:698 msgid "_Tabbed Layout" msgstr "" #: ../pan/gui/actions.cc:699 msgid "Show Group _Pane" msgstr "" #: ../pan/gui/actions.cc:700 msgid "Show Hea_der Pane" msgstr "" #: ../pan/gui/actions.cc:701 msgid "Show Bod_y Pane" msgstr "" #: ../pan/gui/actions.cc:702 msgid "Show _Toolbar" msgstr "" #: ../pan/gui/actions.cc:703 msgid "Abbreviate Group Names" msgstr "" #: ../pan/gui/actions.cc:705 msgid "Match Only _Unread Articles" msgstr "" #: ../pan/gui/actions.cc:705 msgid "Match Only Unread Articles" msgstr "" #: ../pan/gui/actions.cc:706 msgid "Match Only _Cached Articles" msgstr "" #: ../pan/gui/actions.cc:706 msgid "Match Only Cached Articles" msgstr "" #: ../pan/gui/actions.cc:707 msgid "Match Only _Complete Articles" msgstr "" #: ../pan/gui/actions.cc:707 msgid "Match Only Complete Articles" msgstr "" #: ../pan/gui/actions.cc:708 msgid "Match Only _My Articles" msgstr "" #: ../pan/gui/actions.cc:708 msgid "Match Only My Articles" msgstr "" #: ../pan/gui/actions.cc:709 msgid "Match Only _Watched Articles" msgstr "" #: ../pan/gui/actions.cc:709 msgid "Match Only Watched Articles" msgstr "" #: ../pan/gui/actions.cc:711 msgid "Match Scores of 9999 (_Watched)" msgstr "" #: ../pan/gui/actions.cc:712 msgid "Match Scores of 5000...9998 (_High)" msgstr "" #: ../pan/gui/actions.cc:713 msgid "Match Scores of 1...4999 (Me_dium)" msgstr "" #: ../pan/gui/actions.cc:714 msgid "Match Scores of 0 (_Normal)" msgstr "" #: ../pan/gui/actions.cc:715 msgid "Match Scores of -9998...-1 (_Low)" msgstr "" #: ../pan/gui/actions.cc:716 msgid "Match Scores of -9999 (_Ignored)" msgstr "" #: ../pan/gui/actions.cc:718 msgid "Enable/Disable All _Rules" msgstr "" #: ../pan/gui/actions.cc:744 msgid "Show Matching _Articles" msgstr "" #: ../pan/gui/actions.cc:745 msgid "Show Matching Articles' _Threads" msgstr "" #: ../pan/gui/actions.cc:746 msgid "Show Matching Articles' _Subthreads" msgstr "" #: ../pan/gui/body-pane.cc:1011 #, c-format msgid "Unnamed File" msgstr "" #: ../pan/gui/body-pane.cc:1092 ../pan/gui/gui.cc:1864 #: ../pan/gui/header-pane.cc:1188 ../pan/gui/header-pane.cc:1617 #: ../pan/gui/post-ui.cc:2496 ../pan/gui/prefs-ui.cc:833 #: ../pan/gui/score-add-ui.cc:139 msgid "Subject" msgstr "Temo" #: ../pan/gui/body-pane.cc:1094 ../pan/gui/gui.cc:1864 msgid "From" msgstr "De" #: ../pan/gui/body-pane.cc:1096 ../pan/gui/gui.cc:1865 #: ../pan/gui/header-pane.cc:1695 ../pan/gui/log-ui.cc:305 #: ../pan/gui/prefs-ui.cc:829 msgid "Date" msgstr "Dato" #: ../pan/gui/body-pane.cc:1103 msgid "Newsgroups" msgstr "Novaĵogrupoj" #: ../pan/gui/body-pane.cc:1108 msgid "Followup-To" msgstr "" #: ../pan/gui/body-pane.cc:1118 msgid "Reply-To" msgstr "Respondo-al" #: ../pan/gui/body-pane.cc:1160 msgid " from " msgstr "de" #: ../pan/gui/body-pane.cc:1162 msgid " at " msgstr "" #: ../pan/gui/body-pane.cc:1264 #, c-format msgid "" "This is a PGP-Signed message.\n" "\n" "Signer : %s ('%s')\n" "Valid until : %s\n" "Created on : %s" msgstr "" #: ../pan/gui/body-pane.cc:1269 msgid "always" msgstr "" #: ../pan/gui/body-pane.cc:1485 msgid "Copy _URL" msgstr "Kopii la _URL-on" #: ../pan/gui/body-pane.cc:1680 msgid "Save attachment as ...." msgstr "" #: ../pan/gui/body-pane.cc:1683 msgid "Save all attachments" msgstr "" #. add a toolbar for attachments #: ../pan/gui/body-pane.cc:1753 msgid "Attachments" msgstr "" #. update the titlebar #: ../pan/gui/dl-headers-ui.cc:106 ../pan/gui/gui.cc:973 #: ../pan/gui/gui.cc:1592 ../pan/gui/gui.cc:1893 #: ../pan/gui/score-add-ui.cc:602 msgid "Pan" msgstr "" #: ../pan/gui/dl-headers-ui.cc:112 #, fuzzy, c-format msgid "%d Group" msgid_plural "%d Groups" msgstr[0] "%d grupoj" msgstr[1] "%d grupoj" #: ../pan/gui/dl-headers-ui.cc:135 msgid "Get the last N _days' headers: " msgstr "" #: ../pan/gui/dl-headers-ui.cc:143 msgid "Get _new headers" msgstr "" #: ../pan/gui/dl-headers-ui.cc:147 msgid "Get _all headers" msgstr "" #: ../pan/gui/dl-headers-ui.cc:151 msgid "Get the _latest N headers: " msgstr "" #: ../pan/gui/e-action-combo-box.c:388 ../pan/gui/prefs-ui.cc:826 msgid "Action" msgstr "Ago" #: ../pan/gui/e-action-combo-box.c:389 msgid "A GtkRadioAction" msgstr "" #: ../pan/gui/e-charset.c:51 ../pan/gui/task-pane.cc:518 msgid "Unknown" msgstr "Nekonate" #: ../pan/gui/e-charset.c:52 msgid "Arabic" msgstr "araba" #: ../pan/gui/e-charset.c:53 msgid "Baltic" msgstr "balta" #: ../pan/gui/e-charset.c:54 msgid "Central European" msgstr "mezeŭropa" #: ../pan/gui/e-charset.c:55 msgid "Chinese" msgstr "ĉina" #: ../pan/gui/e-charset.c:56 msgid "Cyrillic" msgstr "cirila" #: ../pan/gui/e-charset.c:57 msgid "Greek" msgstr "greka" #: ../pan/gui/e-charset.c:58 msgid "Hebrew" msgstr "hebrea" #: ../pan/gui/e-charset.c:59 msgid "Japanese" msgstr "japana" #: ../pan/gui/e-charset.c:60 msgid "Korean" msgstr "korea" #: ../pan/gui/e-charset.c:61 msgid "Thai" msgstr "taja" #: ../pan/gui/e-charset.c:62 msgid "Turkish" msgstr "turka" #: ../pan/gui/e-charset.c:63 msgid "Unicode" msgstr "Unikodo" #: ../pan/gui/e-charset.c:64 msgid "Western European" msgstr "okcidenteŭropa" #: ../pan/gui/e-charset.c:65 msgid "Western European, New" msgstr "okcidenteŭropa, nova" #: ../pan/gui/e-charset.c:84 ../pan/gui/e-charset.c:85 #: ../pan/gui/e-charset.c:86 msgid "Traditional" msgstr "tradicia" #: ../pan/gui/e-charset.c:87 ../pan/gui/e-charset.c:88 #: ../pan/gui/e-charset.c:89 ../pan/gui/e-charset.c:90 msgid "Simplified" msgstr "simpligita" #: ../pan/gui/e-charset.c:93 msgid "Ukrainian" msgstr "ukraina" #: ../pan/gui/e-charset.c:96 msgid "Visual" msgstr "" #: ../pan/gui/e-charset-combo-box.c:93 ../pan/gui/gui.cc:2058 #: ../pan/gui/post-ui.cc:519 ../pan/gui/prefs-ui.cc:737 msgid "Character Encoding" msgstr "" #: ../pan/gui/e-charset-combo-box.c:117 msgid "Enter the character set to use" msgstr "" #: ../pan/gui/e-charset-combo-box.c:336 msgid "Other..." msgstr "Alia..." #: ../pan/gui/e-cte-dialog.c:78 msgid "Default encoding" msgstr "" #: ../pan/gui/e-cte-dialog.c:80 msgid "7Bit Encoding" msgstr "" #: ../pan/gui/e-cte-dialog.c:82 msgid "8Bit Encoding" msgstr "" #: ../pan/gui/e-cte-dialog.c:84 msgid "BASE64 Encoding" msgstr "" #: ../pan/gui/e-cte-dialog.c:86 msgid "Quoted-Printable Encoding" msgstr "" #: ../pan/gui/group-pane.cc:500 msgid "Group" msgstr "Grupo" #: ../pan/gui/group-pane.cc:501 msgid "Group (regex)" msgstr "" #: ../pan/gui/group-pane.cc:913 msgid "Subscribed Groups" msgstr "" #: ../pan/gui/group-pane.cc:914 msgid "Other Groups" msgstr "Aliaj grupoj" #: ../pan/gui/group-pane.cc:954 ../pan/gui/score-view-ui.cc:157 msgid "Name" msgstr "Nomo" #: ../pan/gui/group-prefs-dialog.cc:156 msgid "No Profiles defined in Edit|Posting Profiles." msgstr "" #: ../pan/gui/group-prefs-dialog.cc:231 msgid "Pan: Group Preferences" msgstr "" #: ../pan/gui/group-prefs-dialog.cc:247 #, fuzzy, c-format msgid "Properties for Groups" msgstr "Aliaj grupoj" #: ../pan/gui/group-prefs-dialog.cc:249 #, c-format msgid "Properties for %s" msgstr "" #: ../pan/gui/group-prefs-dialog.cc:257 msgid "Character _encoding:" msgstr "" #: ../pan/gui/group-prefs-dialog.cc:259 msgid "Directory for Saving Attachments" msgstr "" #: ../pan/gui/group-prefs-dialog.cc:269 msgid "Directory for _saving attachments:" msgstr "" #: ../pan/gui/group-prefs-dialog.cc:271 msgid "Posting _profile:" msgstr "" #: ../pan/gui/group-prefs-dialog.cc:277 msgid "Spellchecker _language:" msgstr "" #: ../pan/gui/gui.cc:273 msgid "Open the Task Manager" msgstr "" #: ../pan/gui/gui.cc:301 msgid "Open the Event Log" msgstr "" #: ../pan/gui/gui.cc:561 msgid "Save NZB's Files" msgstr "" #: ../pan/gui/gui.cc:588 msgid "Untitled.nzb" msgstr "" #: ../pan/gui/gui.cc:590 msgid "Save NZB File as..." msgstr "" #: ../pan/gui/gui.cc:757 msgid "Import NZB Files" msgstr "" #: ../pan/gui/gui.cc:765 ../pan/gui/post-ui.cc:3197 msgid "NZB Files" msgstr "" #: ../pan/gui/gui.cc:770 msgid "All Files" msgstr "Ĉiuj dosieroj" #: ../pan/gui/gui.cc:1258 msgid "Unable to supersede article." msgstr "" #: ../pan/gui/gui.cc:1259 ../pan/gui/gui.cc:1333 msgid "The article doesn't match any of your posting profiles." msgstr "" #: ../pan/gui/gui.cc:1306 msgid "Revise and send this article to replace the old one." msgstr "" #: ../pan/gui/gui.cc:1307 ../pan/gui/gui.cc:1370 msgid "Be patient! It will take time for your changes to take effect." msgstr "" #: ../pan/gui/gui.cc:1332 msgid "Unable to cancel article." msgstr "" #: ../pan/gui/gui.cc:1369 msgid "Send this article to ask your server to cancel your other one." msgstr "" #: ../pan/gui/gui.cc:1387 msgid "You marked some articles for deletion" msgstr "" #: ../pan/gui/gui.cc:1388 msgid "Are you sure you want to delete them?" msgstr "" #: ../pan/gui/gui.cc:1413 msgid "Always trust" msgstr "" #: ../pan/gui/gui.cc:1416 msgid "Do you want to accept it permanently (deletable afterwards) ?" msgstr "" #: ../pan/gui/gui.cc:1595 #, fuzzy msgid "Copyright \\u00A9 2002-2012 Charles Kerr and others" msgstr "Kopirajto © 2002-2011 Charles KERR kaj aliaj" #: ../pan/gui/gui.cc:1600 msgid "translator-credits" msgstr "Kristjan SCHMIDT, 2011." #: ../pan/gui/gui.cc:1709 msgid "_1. Group Pane" msgstr "" #: ../pan/gui/gui.cc:1710 msgid "_2. Header Pane" msgstr "" #: ../pan/gui/gui.cc:1711 msgid "_3. Body Pane" msgstr "" #: ../pan/gui/gui.cc:1800 ../pan/gui/gui.cc:1815 #, fuzzy msgid " Bytes" msgstr "Bajtoj" #: ../pan/gui/gui.cc:1803 msgid " KB" msgstr "" #: ../pan/gui/gui.cc:1806 msgid " MB" msgstr "" #: ../pan/gui/gui.cc:1809 msgid " GB" msgstr "" #: ../pan/gui/gui.cc:1812 msgid " TB" msgstr "" #: ../pan/gui/gui.cc:1844 #, c-format msgid "This article is complete with %d part." msgid_plural "This article has all %d parts." msgstr[0] "" msgstr[1] "" #: ../pan/gui/gui.cc:1846 #, c-format msgid "This article is missing %d part." msgid_plural "This article is missing %d of its %d parts:" msgstr[0] "" msgstr[1] "" #: ../pan/gui/gui.cc:1865 ../pan/gui/header-pane.cc:1190 msgid "Message-ID" msgstr "" #: ../pan/gui/gui.cc:1866 ../pan/gui/header-pane.cc:1665 #: ../pan/gui/prefs-ui.cc:830 msgid "Lines" msgstr "Linioj" #: ../pan/gui/gui.cc:1866 msgid "Size" msgstr "" #: ../pan/gui/gui.cc:1867 ../pan/gui/header-pane.cc:1680 #: ../pan/gui/prefs-ui.cc:828 msgid "Bytes" msgstr "Bajtoj" #: ../pan/gui/gui.cc:1917 msgid "" "Error loading iconv library. Some Charsets in the GUI will not be able to be " "encoded." msgstr "" #: ../pan/gui/gui.cc:2059 msgid "Body Pane Encoding" msgstr "" #: ../pan/gui/gui.cc:2090 ../pan/gui/task-pane.cc:569 #, c-format msgid "Offline" msgstr "Malkonektite" #: ../pan/gui/gui.cc:2094 #, fuzzy, c-format msgid "Closing %d connection" msgid_plural "Closing %d connections" msgstr[0] "Neniu konekto" msgstr[1] "Neniu konekto" #: ../pan/gui/gui.cc:2096 ../pan/gui/gui.cc:2126 #, c-format msgid "No Connections" msgstr "Neniu konekto" #: ../pan/gui/gui.cc:2100 #, c-format msgid "Connecting" msgstr "Konektante" #: ../pan/gui/gui.cc:2113 #, c-format msgid "%s: %d idle, %d active @ %.1f KiBps" msgstr "" #: ../pan/gui/gui.cc:2169 #, c-format msgid "No Tasks" msgstr "Neniu tasko" #: ../pan/gui/gui.cc:2171 ../pan/gui/prefs-ui.cc:1047 msgid "Tasks" msgstr "Taskoj" #: ../pan/gui/gui.cc:2182 ../pan/gui/task-pane.cc:435 #, c-format msgid "%lu tasks, %s, %.1f KiBps, ETA %d:%02d:%02d" msgstr "" #: ../pan/gui/gui.cc:2234 msgid "" "Pan is now offline. Please see \"File|Event Log\" and correct the problem, " "then use \"File|Work Online\" to continue." msgstr "" #: ../pan/gui/header-pane.cc:1186 msgid "Subject or Author" msgstr "" #: ../pan/gui/header-pane.cc:1187 msgid "Sub or Auth (regex)" msgstr "" #: ../pan/gui/header-pane.cc:1189 ../pan/gui/header-pane.cc:1649 #: ../pan/gui/prefs-ui.cc:827 ../pan/gui/score-add-ui.cc:140 msgid "Author" msgstr "Aŭtoro" #: ../pan/gui/header-pane.cc:1634 ../pan/gui/prefs-ui.cc:831 msgid "Score" msgstr "Poentaro" #: ../pan/gui/log-ui.cc:103 msgid "Save Event List" msgstr "" #: ../pan/gui/log-ui.cc:256 msgid "Pan: Events" msgstr "" #: ../pan/gui/log-ui.cc:315 msgid "Message" msgstr "Mesaĝo" #: ../pan/gui/pan.cc:330 msgid "Maximize" msgstr "" #: ../pan/gui/pan.cc:383 msgid "An Error has occurred!" msgstr "" #: ../pan/gui/pan.cc:397 #, fuzzy msgid "New Articles!" msgstr "_Sendi artikolon" #: ../pan/gui/pan.cc:398 msgid "" "There are new\n" "articles available." msgstr "" #: ../pan/gui/pan.cc:465 msgid "Toggle on/offline" msgstr "" #: ../pan/gui/pan.cc:513 msgid "" "Thank you for trying Pan!\n" " \n" "To start newsreading, first Add a Server." msgstr "" #: ../pan/gui/pan.cc:595 msgid "" "General Options\n" " -h, --help Show this usage page.\n" " --verbose Be verbose (in non-GUI mode).\n" "\n" "URL Options\n" " --no-gui On news:message-id, dump the article to stdout.\n" "\n" "NZB Batch Options\n" " --nzb file1 file2 ... Process nzb files without launching all of Pan.\n" " -o path, --output=path Path to save attachments listed in the nzb " "files.\n" " --no-gui Only show console output, not the download " "queue.\n" msgstr "" #: ../pan/gui/pan.cc:867 msgid "Error: --no-gui used without nzb files or news:message-id." msgstr "" #: ../pan/gui/pan.cc:871 #, c-format msgid "Pan %s started" msgstr "" #: ../pan/gui/pan.cc:890 msgid "Please configure Pan's news servers before using it as an nzb client." msgstr "" #: ../pan/gui/pan.cc:1009 msgid "Pan notification" msgstr "" #: ../pan/gui/post-ui.cc:186 #, c-format msgid "Upload Queue : %ld Tasks, %ld KB (~ %.2f MB) total ." msgstr "" #: ../pan/gui/post-ui.cc:286 #, c-format msgid "Error setting custom spellchecker: %s" msgstr "" #: ../pan/gui/post-ui.cc:291 ../pan/gui/post-ui.cc:300 #, c-format msgid "Error setting spellchecker: %s" msgstr "" #: ../pan/gui/post-ui.cc:419 msgid "_Profile" msgstr "_Profilo" #: ../pan/gui/post-ui.cc:420 msgid "Set Editor" msgstr "Agordi redaktilon" #: ../pan/gui/post-ui.cc:422 msgid "_Send Article" msgstr "_Sendi artikolon" #: ../pan/gui/post-ui.cc:422 msgid "Send Article Now" msgstr "Sendi artikolon nun" #: ../pan/gui/post-ui.cc:423 #, fuzzy msgid "_Send and Save Articles to NZB" msgstr "Sendi artikolon nun" #: ../pan/gui/post-ui.cc:423 #, fuzzy msgid "Send and Save Articles to NZB" msgstr "Sendi artikolon nun" #: ../pan/gui/post-ui.cc:424 msgid "Set Character _Encoding..." msgstr "" #: ../pan/gui/post-ui.cc:425 msgid "Set Content _Transfer Encoding..." msgstr "" #: ../pan/gui/post-ui.cc:426 msgid "Sa_ve Draft" msgstr "" #: ../pan/gui/post-ui.cc:426 msgid "Save as a Draft for Future Posting" msgstr "" #: ../pan/gui/post-ui.cc:427 msgid "_Open Draft..." msgstr "" #: ../pan/gui/post-ui.cc:427 msgid "Open an Article Draft" msgstr "" #: ../pan/gui/post-ui.cc:432 msgid "_Rot13" msgstr "" #: ../pan/gui/post-ui.cc:432 msgid "Rot13 Selected Text" msgstr "" #: ../pan/gui/post-ui.cc:433 msgid "Run _Editor" msgstr "" #: ../pan/gui/post-ui.cc:433 msgid "Run Editor" msgstr "" #: ../pan/gui/post-ui.cc:435 msgid "Add _Files to Queue" msgstr "" #: ../pan/gui/post-ui.cc:435 msgid "Add Files to Queue" msgstr "" #: ../pan/gui/post-ui.cc:450 ../pan/gui/post-ui.cc:451 msgid "Remove from Queue" msgstr "" #: ../pan/gui/post-ui.cc:455 ../pan/gui/post-ui.cc:456 msgid "Clear List" msgstr "" #: ../pan/gui/post-ui.cc:460 ../pan/gui/post-ui.cc:461 msgid "Select Needed Parts" msgstr "" #: ../pan/gui/post-ui.cc:465 ../pan/gui/post-ui.cc:466 #: ../pan/gui/task-pane.cc:636 ../pan/gui/task-pane.cc:637 msgid "Move Up" msgstr "" #: ../pan/gui/post-ui.cc:470 ../pan/gui/post-ui.cc:471 #: ../pan/gui/task-pane.cc:641 ../pan/gui/task-pane.cc:642 msgid "Move Down" msgstr "" #: ../pan/gui/post-ui.cc:475 ../pan/gui/post-ui.cc:476 msgid "Move to Top" msgstr "" #: ../pan/gui/post-ui.cc:480 ../pan/gui/post-ui.cc:481 msgid "Move to Bottom" msgstr "" #: ../pan/gui/post-ui.cc:488 msgid "_Wrap Text" msgstr "" #: ../pan/gui/post-ui.cc:488 msgid "Wrap Text" msgstr "" #: ../pan/gui/post-ui.cc:489 msgid "Always Run Editor" msgstr "" #: ../pan/gui/post-ui.cc:490 msgid "Remember Character Encoding for this Group" msgstr "" #: ../pan/gui/post-ui.cc:491 msgid "Thread Attached Replies" msgstr "" #: ../pan/gui/post-ui.cc:492 msgid "PGP-Encrypt the Message" msgstr "" #: ../pan/gui/post-ui.cc:493 msgid "PGP-Sign the Message" msgstr "" #: ../pan/gui/post-ui.cc:494 msgid "Check _Spelling" msgstr "" #: ../pan/gui/post-ui.cc:520 msgid "New Article's Encoding:" msgstr "" #: ../pan/gui/post-ui.cc:530 msgid "Content Transfer Encoding" msgstr "" #: ../pan/gui/post-ui.cc:531 msgid "New Article's Content Transfer Encoding:" msgstr "" #: ../pan/gui/post-ui.cc:711 msgid "Your changes will be lost!" msgstr "" #: ../pan/gui/post-ui.cc:712 msgid "Close this window and lose your changes?" msgstr "" #: ../pan/gui/post-ui.cc:757 ../pan/gui/post-ui.cc:796 msgid "There were problems with this post." msgstr "" #: ../pan/gui/post-ui.cc:759 ../pan/gui/post-ui.cc:798 #: ../pan/gui/post-ui.cc:861 msgid "Go Back" msgstr "Reen" #: ../pan/gui/post-ui.cc:761 msgid "Post Anyway" msgstr "" #. Prompt the user #: ../pan/gui/post-ui.cc:790 #, c-format msgid "" "Message uses characters not specified in charset '%s' - possibly use '%s' " msgstr "" #: ../pan/gui/post-ui.cc:813 msgid "Go _Online" msgstr "" #: ../pan/gui/post-ui.cc:860 msgid "The file queue is empty, so no files can be saved." msgstr "" #: ../pan/gui/post-ui.cc:1019 msgid "" "No posting server is set for this posting profile.\n" "Please edit the profile via Edit|Manage Posting Profiles." msgstr "" #: ../pan/gui/post-ui.cc:1054 msgid "Pan is Offline." msgstr "" #: ../pan/gui/post-ui.cc:1055 msgid "Go online to post the article?" msgstr "" #: ../pan/gui/post-ui.cc:1102 #, c-format msgid "" "Error signing/encrypting your message. Perhaps you misspelled your email-" "address (%s) ?" msgstr "" #: ../pan/gui/post-ui.cc:1267 msgid "Error opening temporary file" msgstr "" #: ../pan/gui/post-ui.cc:1279 #, c-format msgid "Error writing article to temporary file: %s" msgstr "" #: ../pan/gui/post-ui.cc:1298 #, c-format msgid "Error parsing \"external editor\" command line: %s (Command was: %s)" msgstr "" #: ../pan/gui/post-ui.cc:1339 #, c-format msgid "Error starting external editor: %s" msgstr "" #: ../pan/gui/post-ui.cc:1395 msgid "Open Draft Article" msgstr "" #: ../pan/gui/post-ui.cc:1606 msgid "Save Draft Article" msgstr "" #: ../pan/gui/post-ui.cc:1803 #, c-format msgid "Couldn't parse signature command \"%s\": %s" msgstr "" #: ../pan/gui/post-ui.cc:1839 msgid "Couldn't convert signature to UTF-8." msgstr "" #: ../pan/gui/post-ui.cc:2334 msgid "F_rom" msgstr "_De" #: ../pan/gui/post-ui.cc:2352 msgid "_Subject" msgstr "_Temo" #: ../pan/gui/post-ui.cc:2365 msgid "_Newsgroups" msgstr "_Novaĵogrupoj" #: ../pan/gui/post-ui.cc:2379 msgid "Mail _To" msgstr "" #: ../pan/gui/post-ui.cc:2481 msgid "Delete from Queue" msgstr "" #: ../pan/gui/post-ui.cc:2494 msgid "No." msgstr "" #: ../pan/gui/post-ui.cc:2498 ../pan/gui/post-ui.cc:2592 #: ../pan/gui/post-ui.cc:2633 #, fuzzy msgid "Filename" msgstr "_Dosiero" #: ../pan/gui/post-ui.cc:2500 msgid "Size (kB)" msgstr "" #: ../pan/gui/post-ui.cc:2600 msgid "The current filename" msgstr "" #: ../pan/gui/post-ui.cc:2604 #, fuzzy msgid "Subject Line" msgstr "Temo" #: ../pan/gui/post-ui.cc:2612 msgid "The current Subject Line" msgstr "" #: ../pan/gui/post-ui.cc:2626 msgid "No. " msgstr "" #: ../pan/gui/post-ui.cc:2630 msgid "Enable/Disable" msgstr "" #: ../pan/gui/post-ui.cc:2664 msgid "Follo_wup-To" msgstr "" #. i18n: "poster" is a key used by many newsreaders. probably safest to keep this key in english. #: ../pan/gui/post-ui.cc:2673 msgid "" "The newsgroups where replies to your message should go. This is only needed " "if it differs from the \"Newsgroups\" header.\n" "\n" "To direct all replies to your email address, use \"Followup-To: poster\"" msgstr "" #: ../pan/gui/post-ui.cc:2679 msgid "_Reply-To" msgstr "_Respondo-al" #: ../pan/gui/post-ui.cc:2687 msgid "" "The email account where mail replies to your posted message should go. This " "is only needed if it differs from the \"From\" header." msgstr "" #: ../pan/gui/post-ui.cc:2693 msgid "_Custom Headers" msgstr "" #: ../pan/gui/post-ui.cc:2717 msgid "Add \"_User-Agent\" header" msgstr "" #: ../pan/gui/post-ui.cc:2724 msgid "Add \"Message-_Id\" header" msgstr "" #: ../pan/gui/post-ui.cc:2855 msgid "Select Parts" msgstr "" #: ../pan/gui/post-ui.cc:2866 msgid "_Parts" msgstr "" #: ../pan/gui/post-ui.cc:3022 msgid "Post Article" msgstr "" #: ../pan/gui/post-ui.cc:3043 msgid "_Message" msgstr "_Mesaĝo" #: ../pan/gui/post-ui.cc:3044 msgid "More _Headers" msgstr "" #: ../pan/gui/post-ui.cc:3045 msgid "File _Queue" msgstr "" #: ../pan/gui/post-ui.cc:3077 ../pan/gui/profiles-dialog.cc:478 #, no-c-format msgid "On %d, %n wrote:" msgstr "" #: ../pan/gui/post-ui.cc:3106 msgid "Add files to queue" msgstr "" #: ../pan/gui/post-ui.cc:3184 msgid "Save Upload Queue as NZB File" msgstr "" #: ../pan/gui/prefs.cc:343 #, c-format msgid "Couldn't parse %s color \"%s\"" msgstr "" #: ../pan/gui/prefs-ui.cc:120 msgid "Grab Key" msgstr "" #: ../pan/gui/prefs-ui.cc:126 #, c-format msgid "" "Press the combination of the keys\n" "you want to use for \"%s\"." msgstr "" #: ../pan/gui/prefs-ui.cc:166 msgid "Edit Hotkey" msgstr "" #: ../pan/gui/prefs-ui.cc:228 msgid "Error: Shortkey is invalid!" msgstr "" #: ../pan/gui/prefs-ui.cc:244 msgid "Error: Shortkey already exists!" msgstr "" #: ../pan/gui/prefs-ui.cc:535 msgid "Show only icons" msgstr "" #: ../pan/gui/prefs-ui.cc:536 msgid "Show only text" msgstr "" #: ../pan/gui/prefs-ui.cc:537 msgid "Show icons and text" msgstr "" #: ../pan/gui/prefs-ui.cc:576 msgid "Use GNOME Preferences" msgstr "" #: ../pan/gui/prefs-ui.cc:577 msgid "Use KDE Preferences" msgstr "" #: ../pan/gui/prefs-ui.cc:578 msgid "Use OS X Preferences" msgstr "" #: ../pan/gui/prefs-ui.cc:579 msgid "Use Windows Preferences" msgstr "" #: ../pan/gui/prefs-ui.cc:580 msgid "Custom Command:" msgstr "" #: ../pan/gui/prefs-ui.cc:632 #, fuzzy msgid "Disabled" msgstr "Enŝaltite" #: ../pan/gui/prefs-ui.cc:633 msgid "Only new (Score == 0)" msgstr "" #: ../pan/gui/prefs-ui.cc:634 msgid "9999 or more" msgstr "" #: ../pan/gui/prefs-ui.cc:635 msgid "5000 to 9998" msgstr "" #: ../pan/gui/prefs-ui.cc:636 msgid "1 to 4999" msgstr "" #: ../pan/gui/prefs-ui.cc:637 msgid "-9998 to -1" msgstr "" #: ../pan/gui/prefs-ui.cc:638 msgid "-9999 or less" msgstr "" #: ../pan/gui/prefs-ui.cc:702 #, c-format msgid "Select default global charset. Current setting : %s ." msgstr "" #: ../pan/gui/prefs-ui.cc:738 msgid "Global Charset Settings" msgstr "" #: ../pan/gui/prefs-ui.cc:832 ../pan/gui/task-pane.cc:770 msgid "State" msgstr "Stato" #: ../pan/gui/prefs-ui.cc:866 msgid "Enabled" msgstr "Enŝaltite" #: ../pan/gui/prefs-ui.cc:870 msgid "Column Name" msgstr "" #: ../pan/gui/prefs-ui.cc:908 msgid "Pan: Preferences" msgstr "" #: ../pan/gui/prefs-ui.cc:923 msgid "Mouse" msgstr "Muso" #: ../pan/gui/prefs-ui.cc:925 msgid "Single-click activates, rather than selects, _groups" msgstr "" #: ../pan/gui/prefs-ui.cc:927 msgid "Single-click activates, rather than selects, _articles" msgstr "" #: ../pan/gui/prefs-ui.cc:930 msgid "Groups" msgstr "Grupoj" #: ../pan/gui/prefs-ui.cc:932 msgid "Get new headers in subscribed groups on _startup" msgstr "" #: ../pan/gui/prefs-ui.cc:934 msgid "Get new headers when _entering group" msgstr "" #: ../pan/gui/prefs-ui.cc:936 msgid "Mark entire group _read when leaving group" msgstr "" #: ../pan/gui/prefs-ui.cc:938 msgid "Mark entire group read before getting _new headers" msgstr "" #: ../pan/gui/prefs-ui.cc:940 msgid "E_xpand all threads when entering group" msgstr "" #: ../pan/gui/prefs-ui.cc:945 msgid "Articles" msgstr "" #: ../pan/gui/prefs-ui.cc:947 msgid "Space selects next article rather than next unread" msgstr "" #: ../pan/gui/prefs-ui.cc:949 msgid "Expand threads upon selection" msgstr "" #: ../pan/gui/prefs-ui.cc:951 msgid "Always show article deletion confirmation dialog" msgstr "" #: ../pan/gui/prefs-ui.cc:953 msgid "Smooth scrolling" msgstr "" #: ../pan/gui/prefs-ui.cc:958 msgid "Article Cache" msgstr "" #: ../pan/gui/prefs-ui.cc:959 msgid "Clear article cache on shutdown" msgstr "" #: ../pan/gui/prefs-ui.cc:962 msgid "Size of article cache (in MiB) :" msgstr "" #: ../pan/gui/prefs-ui.cc:967 msgid "File extension for Cached Articles: " msgstr "" #: ../pan/gui/prefs-ui.cc:972 msgid "Tabs" msgstr "" #: ../pan/gui/prefs-ui.cc:977 msgid "_Behavior" msgstr "_Konduto" #: ../pan/gui/prefs-ui.cc:977 #, fuzzy msgid "Behavior" msgstr "_Konduto" #: ../pan/gui/prefs-ui.cc:983 #, fuzzy msgid "Language Settings" msgstr "Agordoj" #. systray and notify popup #: ../pan/gui/prefs-ui.cc:992 #, fuzzy msgid "System Tray Behavior" msgstr "_Konduto" #: ../pan/gui/prefs-ui.cc:994 msgid "Hide to system tray" msgstr "" #: ../pan/gui/prefs-ui.cc:996 msgid "Start Pan minimized" msgstr "" #: ../pan/gui/prefs-ui.cc:999 msgid "Show notifications" msgstr "" #. allow multiple instances (seperate, not communicating with dbus) #: ../pan/gui/prefs-ui.cc:1004 #, fuzzy msgid "Startup Behavior" msgstr "_Konduto" #: ../pan/gui/prefs-ui.cc:1006 msgid "Allow multiple instances of Pan" msgstr "" #: ../pan/gui/prefs-ui.cc:1011 msgid "Autosave Article Draft" msgstr "" #: ../pan/gui/prefs-ui.cc:1013 msgid "Minutes to autosave the current Article Draft: " msgstr "" #: ../pan/gui/prefs-ui.cc:1018 #, fuzzy msgid "Autosave Articles" msgstr "_Sendi artikolon" #: ../pan/gui/prefs-ui.cc:1020 msgid "Minutes to autosave newsrc files: " msgstr "" #: ../pan/gui/prefs-ui.cc:1026 msgid "_Miscellaneous" msgstr "" #: ../pan/gui/prefs-ui.cc:1026 msgid "Miscellaneous" msgstr "" #: ../pan/gui/prefs-ui.cc:1031 msgid "Pane Layout" msgstr "" #: ../pan/gui/prefs-ui.cc:1050 msgid "1=Groups, 2=Headers, 3=Body" msgstr "" #: ../pan/gui/prefs-ui.cc:1052 msgid "1=Groups, 2=Body, 3=Headers" msgstr "" #: ../pan/gui/prefs-ui.cc:1054 msgid "1=Headers, 2=Groups, 3=Body" msgstr "" #: ../pan/gui/prefs-ui.cc:1056 msgid "1=Headers, 2=Body, 3=Groups" msgstr "" #: ../pan/gui/prefs-ui.cc:1058 msgid "1=Body, 2=Groups, 3=Headers" msgstr "" #: ../pan/gui/prefs-ui.cc:1060 msgid "1=Body, 2=Headers, 3=Groups" msgstr "" #: ../pan/gui/prefs-ui.cc:1064 msgid "Layout" msgstr "" #: ../pan/gui/prefs-ui.cc:1069 msgid "Header Pane Columns" msgstr "" #: ../pan/gui/prefs-ui.cc:1073 msgid "_Headers" msgstr "_Kaplinioj" #: ../pan/gui/prefs-ui.cc:1073 #, fuzzy msgid "Headers" msgstr "_Kaplinioj" #: ../pan/gui/prefs-ui.cc:1079 msgid "" "This menu lets you configure Pan to take certain actions on your behalf " "automatically, based on a post's score." msgstr "" #: ../pan/gui/prefs-ui.cc:1082 msgid "_Delete posts scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1084 msgid "Mark posts _read scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1086 msgid "_Cache posts scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1088 msgid "Download _attachments of posts scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1091 #, fuzzy msgid "Actions" msgstr "_Agoj" #: ../pan/gui/prefs-ui.cc:1096 ../pan/gui/prefs-ui.cc:1117 msgid "Fonts" msgstr "Tiparoj" #: ../pan/gui/prefs-ui.cc:1098 msgid "Use custom font in Group Pane:" msgstr "" #: ../pan/gui/prefs-ui.cc:1103 msgid "Use custom font in Header Pane:" msgstr "" #: ../pan/gui/prefs-ui.cc:1108 msgid "Use custom font in Body Pane:" msgstr "" #: ../pan/gui/prefs-ui.cc:1113 msgid "Monospace font:" msgstr "" #: ../pan/gui/prefs-ui.cc:1117 msgid "_Fonts" msgstr "_Tiparoj" #: ../pan/gui/prefs-ui.cc:1122 msgid "Header Pane" msgstr "" #: ../pan/gui/prefs-ui.cc:1125 ../pan/gui/prefs-ui.cc:1131 #: ../pan/gui/prefs-ui.cc:1137 ../pan/gui/prefs-ui.cc:1143 #: ../pan/gui/prefs-ui.cc:1149 ../pan/gui/prefs-ui.cc:1155 msgid "Text:" msgstr "Teksto:" #: ../pan/gui/prefs-ui.cc:1127 ../pan/gui/prefs-ui.cc:1133 #: ../pan/gui/prefs-ui.cc:1139 ../pan/gui/prefs-ui.cc:1145 #: ../pan/gui/prefs-ui.cc:1151 ../pan/gui/prefs-ui.cc:1157 msgid "Background:" msgstr "Fono:" #: ../pan/gui/prefs-ui.cc:1129 msgid "Scores of 9999 or more:" msgstr "" #: ../pan/gui/prefs-ui.cc:1135 msgid "Scores from 5000 to 9998:" msgstr "" #: ../pan/gui/prefs-ui.cc:1141 msgid "Scores from 1 to 4999:" msgstr "" #: ../pan/gui/prefs-ui.cc:1147 msgid "Scores from -9998 to -1:" msgstr "" #: ../pan/gui/prefs-ui.cc:1153 msgid "Scores of -9999 or less:" msgstr "" #: ../pan/gui/prefs-ui.cc:1159 msgid "Read collapsed thread:" msgstr "" #: ../pan/gui/prefs-ui.cc:1161 msgid "Body Pane" msgstr "" #: ../pan/gui/prefs-ui.cc:1167 msgid "Quoted text:" msgstr "" #: ../pan/gui/prefs-ui.cc:1168 msgid "URL:" msgstr "Retadreso:" #: ../pan/gui/prefs-ui.cc:1169 msgid "Signature:" msgstr "Subskribo:" #: ../pan/gui/prefs-ui.cc:1171 msgid "_Colors" msgstr "_Koloroj" #: ../pan/gui/prefs-ui.cc:1171 #, fuzzy msgid "Colors" msgstr "_Koloroj" #: ../pan/gui/prefs-ui.cc:1176 msgid "Preferred Applications" msgstr "Preferitaj aplikaĵoj" #: ../pan/gui/prefs-ui.cc:1180 #, fuzzy msgid "_Web browser:" msgstr "_Retfoliumilo:" #: ../pan/gui/prefs-ui.cc:1183 msgid "_Mail reader:" msgstr "" #: ../pan/gui/prefs-ui.cc:1185 #, fuzzy msgid "_Text editor:" msgstr "_Tekst-redaktilo:" #: ../pan/gui/prefs-ui.cc:1187 #, fuzzy msgid "_Applications" msgstr "A_plikaĵoj" #: ../pan/gui/prefs-ui.cc:1187 #, fuzzy msgid "Applications" msgstr "A_plikaĵoj" #: ../pan/gui/prefs-ui.cc:1192 ../pan/gui/task-pane.cc:512 msgid "Encoding" msgstr "" #: ../pan/gui/prefs-ui.cc:1196 msgid "Default bytes per file (for encoder): " msgstr "" #: ../pan/gui/prefs-ui.cc:1201 #, fuzzy msgid "_Upload" msgstr "A_plikaĵoj" #: ../pan/gui/prefs-ui.cc:1201 msgid "Upload" msgstr "" #: ../pan/gui/prefs-ui.cc:1219 msgid "_Hotkeys" msgstr "" #: ../pan/gui/prefs-ui.cc:1219 msgid "Hotkeys" msgstr "" #: ../pan/gui/profiles-dialog.cc:83 msgid "Please choose your Email Address according to your PGP key's user id." msgstr "" #: ../pan/gui/profiles-dialog.cc:131 msgid "Posting Profile" msgstr "" #: ../pan/gui/profiles-dialog.cc:143 msgid "Profile Information" msgstr "" #: ../pan/gui/profiles-dialog.cc:147 msgid "_Profile Name:" msgstr "_Profilnomo:" #: ../pan/gui/profiles-dialog.cc:150 msgid "Required Information" msgstr "" #: ../pan/gui/profiles-dialog.cc:154 msgid "_Full Name:" msgstr "_Tuta nomo:" #: ../pan/gui/profiles-dialog.cc:158 msgid "" "Your Email Address.\n" "Note that this has to match your PGP Signature's Address\n" "if you want to PGP-Sign or Encrypt your messages correctly." msgstr "" #: ../pan/gui/profiles-dialog.cc:162 msgid "_Email Address:" msgstr "R_etpoŝtadreso:" #: ../pan/gui/profiles-dialog.cc:164 msgid "_Post Articles via:" msgstr "" #: ../pan/gui/profiles-dialog.cc:167 msgid "Signature" msgstr "Subskribo" #: ../pan/gui/profiles-dialog.cc:170 msgid "_Use a Signature" msgstr "_Uzi subskribon" #: ../pan/gui/profiles-dialog.cc:174 msgid "Signature File" msgstr "" #: ../pan/gui/profiles-dialog.cc:184 msgid "Text File" msgstr "Tekstdosiero" #: ../pan/gui/profiles-dialog.cc:186 msgid "Text" msgstr "Teksto" #: ../pan/gui/profiles-dialog.cc:188 msgid "Command" msgstr "Komando" #: ../pan/gui/profiles-dialog.cc:191 #, fuzzy msgid "PGP Signature" msgstr "Subskribo" #: ../pan/gui/profiles-dialog.cc:196 #, fuzzy msgid "Signature Type : " msgstr "Subskribo:" #: ../pan/gui/profiles-dialog.cc:223 msgid "X-Face (Avatar)" msgstr "" #: ../pan/gui/profiles-dialog.cc:226 msgid "" "You can add an avatar icon to your articles with a unique X-Face code. \n" "Add the code without the trailing \"X-Face:\" \n" " if it was generated by a helper program (for example http://www.dairiki.org/" "xface/xface.php)." msgstr "" #: ../pan/gui/profiles-dialog.cc:229 msgid "_X-Face:" msgstr "" #: ../pan/gui/profiles-dialog.cc:231 msgid "Optional Information" msgstr "" #: ../pan/gui/profiles-dialog.cc:236 msgid "" "When posting to Usenet, your article's Message-ID contains a domain name. \n" "You can set a custom domain name here, or leave it blank to let Pan use the " "domain name from your email address." msgstr "" #: ../pan/gui/profiles-dialog.cc:239 msgid "Message-ID _Domain Name:" msgstr "" #: ../pan/gui/profiles-dialog.cc:243 #, c-format msgid "" "%i for Message-ID\n" "%a for Author and Address\n" "%n for Author name\n" "%d for Date" msgstr "" #: ../pan/gui/profiles-dialog.cc:244 msgid "_Attribution:" msgstr "" #: ../pan/gui/profiles-dialog.cc:268 msgid "" "Extra headers to be included in your posts, such as\n" "Reply-To: \"Your Name\"\n" "Organization: Your Organization\n" msgstr "" #: ../pan/gui/profiles-dialog.cc:278 msgid "E_xtra Headers:" msgstr "" #: ../pan/gui/profiles-dialog.cc:323 msgid "Invalid email address." msgstr "" #: ../pan/gui/profiles-dialog.cc:324 msgid "Please use an address of the form joe@somewhere.org" msgstr "" #: ../pan/gui/profiles-dialog.cc:479 msgid "New Profile" msgstr "Nova profilo" #: ../pan/gui/profiles-dialog.cc:525 msgid "Posting Profiles" msgstr "" #: ../pan/gui/profiles-dialog.cc:541 msgid "Profiles" msgstr "Profiloj" #: ../pan/gui/save-attach-ui.cc:77 ../pan/gui/save-ui.cc:77 #, c-format msgid "" "%g - group as one directory (alt.binaries.pictures.trains)\n" "%G - group as nested directory (/alt/binaries/pictures/trains)\n" "%s - subject line excerpt\n" "%S - subject line\n" " \n" "\"/home/user/News/Pan/%g\" becomes\n" "\"/home/user/News/Pan/alt.binaries.pictures.trains\", and\n" "\"/home/user/News/Pan/%G\" becomes\n" "\"/home/user/News/Pan/alt/binaries/pictures/trains\"," msgstr "" #: ../pan/gui/save-attach-ui.cc:223 ../pan/gui/save-ui.cc:242 msgid "Add to the queue sorted by date posted" msgstr "" #: ../pan/gui/save-attach-ui.cc:224 ../pan/gui/save-ui.cc:243 msgid "Add to the front of the queue" msgstr "" #: ../pan/gui/save-attach-ui.cc:225 ../pan/gui/save-ui.cc:244 msgid "Add to the back of the queue" msgstr "" #: ../pan/gui/save-attach-ui.cc:257 msgid "Pan: Save Attachments" msgstr "" #: ../pan/gui/save-attach-ui.cc:282 ../pan/gui/save-attach-ui.cc:300 #: ../pan/gui/save-ui.cc:296 ../pan/gui/save-ui.cc:314 msgid "_Location:" msgstr "_Loko:" #: ../pan/gui/save-attach-ui.cc:286 ../pan/gui/save-ui.cc:300 msgid "Save Articles" msgstr "" #: ../pan/gui/save-attach-ui.cc:303 ../pan/gui/save-ui.cc:317 #, c-format msgid "_Group's path: %s" msgstr "" #: ../pan/gui/save-attach-ui.cc:314 ../pan/gui/save-ui.cc:332 msgid "_Priority:" msgstr "_Prioritato:" #: ../pan/gui/save-ui.cc:233 msgid "Save attachments" msgstr "" #: ../pan/gui/save-ui.cc:234 msgid "Save text" msgstr "Konservi tekston" #: ../pan/gui/save-ui.cc:235 msgid "Save attachments and text" msgstr "" #: ../pan/gui/save-ui.cc:271 msgid "Pan: Save Articles" msgstr "" #: ../pan/gui/save-ui.cc:328 msgid "_Action:" msgstr "_Ago:" #: ../pan/gui/score-add-ui.cc:89 msgid "is more than" msgstr "estas pli ol" #: ../pan/gui/score-add-ui.cc:90 msgid "is at most" msgstr "" #: ../pan/gui/score-add-ui.cc:112 msgid "increase the article's score by" msgstr "" #: ../pan/gui/score-add-ui.cc:113 msgid "decrease the article's score by" msgstr "" #: ../pan/gui/score-add-ui.cc:114 msgid "set the article's score to" msgstr "" #: ../pan/gui/score-add-ui.cc:115 msgid "watch the article (set its score to 9999)" msgstr "" #: ../pan/gui/score-add-ui.cc:116 msgid "ignore the article (set its score to -9999)" msgstr "" #: ../pan/gui/score-add-ui.cc:141 msgid "References" msgstr "Referencoj" #: ../pan/gui/score-add-ui.cc:142 msgid "Line Count" msgstr "" #: ../pan/gui/score-add-ui.cc:143 msgid "Byte Count" msgstr "" #: ../pan/gui/score-add-ui.cc:144 msgid "Crosspost Group Count" msgstr "" #: ../pan/gui/score-add-ui.cc:145 msgid "Age (in days)" msgstr "" #: ../pan/gui/score-add-ui.cc:167 msgid "for the next month" msgstr "" #: ../pan/gui/score-add-ui.cc:168 msgid "for the next six months" msgstr "" #: ../pan/gui/score-add-ui.cc:169 msgid "forever" msgstr "ĉiam" #: ../pan/gui/score-add-ui.cc:194 msgid "contains" msgstr "enhavas" #: ../pan/gui/score-add-ui.cc:195 msgid "doesn't contain" msgstr "ne enhavas" #: ../pan/gui/score-add-ui.cc:196 msgid "is" msgstr "estas" #: ../pan/gui/score-add-ui.cc:197 msgid "isn't" msgstr "ne estas" #: ../pan/gui/score-add-ui.cc:198 msgid "starts with" msgstr "komencas per" #: ../pan/gui/score-add-ui.cc:199 msgid "ends with" msgstr "finas per" #: ../pan/gui/score-add-ui.cc:200 msgid "matches regex" msgstr "" #: ../pan/gui/score-add-ui.cc:481 msgid "Another rule already sets this article's score." msgstr "" #: ../pan/gui/score-add-ui.cc:482 msgid "You may want to go back or delete the old rule." msgstr "" #: ../pan/gui/score-add-ui.cc:553 msgid "Add and Re_score" msgstr "" #: ../pan/gui/score-add-ui.cc:604 ../pan/gui/score-add-ui.cc:624 msgid "New Scoring Rule" msgstr "" #: ../pan/gui/score-add-ui.cc:635 msgid "If the group name" msgstr "" #: ../pan/gui/score-add-ui.cc:642 msgid "And the article's" msgstr "" #: ../pan/gui/score-view-ui.cc:56 msgid "Close and Re_score" msgstr "" #: ../pan/gui/score-view-ui.cc:154 #, c-format msgid "File %s, Lines %d - %d" msgstr "" #: ../pan/gui/score-view-ui.cc:182 msgid "Pan: Article's Scores" msgstr "" #: ../pan/gui/score-view-ui.cc:208 msgid "Add" msgstr "Aldoni" #: ../pan/gui/score-view-ui.cc:213 msgid "New Score" msgstr "" #: ../pan/gui/score-view-ui.cc:218 msgid "Criteria" msgstr "" #: ../pan/gui/score-view-ui.cc:241 msgid "Add a New Scoring Rule" msgstr "" #: ../pan/gui/score-view-ui.cc:248 msgid "Remove the Selected Scoring Rule" msgstr "" #: ../pan/gui/server-ui.cc:221 msgid "Please specify the server's address." msgstr "" #: ../pan/gui/server-ui.cc:264 msgid "Import SSL certificate (PEM format) from File" msgstr "" #. create the dialog #: ../pan/gui/server-ui.cc:290 ../pan/gui/server-ui.cc:869 msgid "Add a Server" msgstr "Aldoni servilon" #: ../pan/gui/server-ui.cc:290 ../pan/gui/server-ui.cc:875 msgid "Edit a Server's Settings" msgstr "" #: ../pan/gui/server-ui.cc:310 msgid "Location" msgstr "Loko" #: ../pan/gui/server-ui.cc:314 msgid "The news server's actual address, e.g. \"news.mynewsserver.com\"" msgstr "" #: ../pan/gui/server-ui.cc:315 msgid "_Address:" msgstr "_Adreso:" #: ../pan/gui/server-ui.cc:319 msgid "The news server's port number. Typically 119." msgstr "" #: ../pan/gui/server-ui.cc:320 msgid "Por_t:" msgstr "Por_do:" #: ../pan/gui/server-ui.cc:323 msgid "Login (if Required)" msgstr "" #: ../pan/gui/server-ui.cc:327 msgid "_Username:" msgstr "_Uzantonomo:" #: ../pan/gui/server-ui.cc:328 msgid "" "The username to give the server when asked. If your server doesn't require " "authentication, you can leave this blank." msgstr "" #: ../pan/gui/server-ui.cc:332 msgid "_Password:" msgstr "_Pasvorto:" #: ../pan/gui/server-ui.cc:333 msgid "" "The password to give the server when asked. If your server doesn't require " "authentication, you can leave this blank." msgstr "" #: ../pan/gui/server-ui.cc:336 msgid "Settings" msgstr "Agordoj" #: ../pan/gui/server-ui.cc:343 msgid "Connection _Limit:" msgstr "" #: ../pan/gui/server-ui.cc:347 msgid "After Two Weeks" msgstr "" #: ../pan/gui/server-ui.cc:348 msgid "After One Month" msgstr "" #: ../pan/gui/server-ui.cc:349 msgid "After Two Months" msgstr "" #: ../pan/gui/server-ui.cc:350 msgid "After Three Months" msgstr "" #: ../pan/gui/server-ui.cc:351 msgid "After Six Months" msgstr "" #: ../pan/gui/server-ui.cc:352 msgid "Never Expire Old Articles" msgstr "" #: ../pan/gui/server-ui.cc:366 msgid "E_xpire Old Articles:" msgstr "" #: ../pan/gui/server-ui.cc:370 msgid "Primary" msgstr "" #: ../pan/gui/server-ui.cc:371 msgid "Fallback" msgstr "" #: ../pan/gui/server-ui.cc:385 msgid "Server Rank:" msgstr "" #: ../pan/gui/server-ui.cc:389 msgid "" "Fallback servers are used for articles that can't be found on the " "primaries. One common approach is to use free servers as primaries and " "subscription servers as fallbacks." msgstr "" #: ../pan/gui/server-ui.cc:396 msgid "Security" msgstr "" #: ../pan/gui/server-ui.cc:401 msgid "Use Plaintext (Unsecured) Connections" msgstr "" #: ../pan/gui/server-ui.cc:402 #, fuzzy msgid "Use Secure SSL Connections" msgstr "Neniu konekto" #: ../pan/gui/server-ui.cc:418 msgid "TLS (SSL) Options:" msgstr "" #: ../pan/gui/server-ui.cc:423 msgid "" "You can set the option for using/disabling secure SSL/TLS connections here. " "If you enable SSL/TLS, your data is encrypted and secure. It is encouraged " "to use this option for privacy reasons." msgstr "" #: ../pan/gui/server-ui.cc:428 msgid "Always trust this server's certificate" msgstr "" #: ../pan/gui/server-ui.cc:602 #, c-format msgid "Really delete \"%s\"?" msgstr "" #: ../pan/gui/server-ui.cc:691 msgid "No information available." msgstr "" #: ../pan/gui/server-ui.cc:697 #, c-format msgid "Server Certificate for '%s'" msgstr "" #: ../pan/gui/server-ui.cc:795 #, c-format msgid "Really delete certificate for \"%s\"?" msgstr "" #. dialog #: ../pan/gui/server-ui.cc:822 ../pan/gui/server-ui.cc:843 #: ../pan/gui/server-ui.cc:941 msgid "Servers" msgstr "Serviloj" #: ../pan/gui/server-ui.cc:882 msgid "Remove a Server" msgstr "" #. dialog #: ../pan/gui/server-ui.cc:915 msgid "SSL Certificates" msgstr "" #: ../pan/gui/server-ui.cc:936 msgid "Certificates" msgstr "" #: ../pan/gui/server-ui.cc:967 msgid "Import Certificate" msgstr "" #: ../pan/gui/server-ui.cc:973 msgid "Inspect Certificate" msgstr "" #: ../pan/gui/server-ui.cc:980 msgid "Remove Certificate" msgstr "" #: ../pan/gui/task-pane.cc:143 #, c-format msgid "" "\n" "Upload\n" "\n" "Subject: \"%s\"\n" "From: %s\n" "Groups: %s\n" "Sourcefile: %s\n" msgstr "" #: ../pan/gui/task-pane.cc:155 #, c-format msgid "" "\n" "Download\n" "\n" "Subject: \"%s\"\n" "From: %s\n" "Date: %s\n" "Groups: %s\n" "Save Path: %s\n" msgstr "" #: ../pan/gui/task-pane.cc:157 #, fuzzy msgid "unknown" msgstr "Nekonate" #: ../pan/gui/task-pane.cc:263 msgid "Choose new destination for selected Tasks" msgstr "" #: ../pan/gui/task-pane.cc:417 #, c-format msgid "Pan: Tasks (%d Queued, %d Running, %d Stopped)" msgstr "" #: ../pan/gui/task-pane.cc:419 #, c-format msgid "Pan: Tasks (%d Queued, %d Running)" msgstr "" #: ../pan/gui/task-pane.cc:421 #, c-format msgid "Pan: Tasks" msgstr "" #: ../pan/gui/task-pane.cc:446 #, c-format msgid "%lu selected, %s" msgstr "" #: ../pan/gui/task-pane.cc:510 msgid "Running" msgstr "" #: ../pan/gui/task-pane.cc:511 msgid "Decoding" msgstr "" #: ../pan/gui/task-pane.cc:513 msgid "Queued for Decode" msgstr "" #: ../pan/gui/task-pane.cc:514 msgid "Queued for Encode" msgstr "" #: ../pan/gui/task-pane.cc:515 msgid "Queued" msgstr "" #: ../pan/gui/task-pane.cc:516 msgid "Stopped" msgstr "Haltigite" #: ../pan/gui/task-pane.cc:517 msgid "Removing" msgstr "Forigante" #: ../pan/gui/task-pane.cc:546 #, c-format msgid "%d%% Done" msgstr "" #: ../pan/gui/task-pane.cc:552 #, c-format msgid "%d:%02d:%02d Remaining (%d @ %lu KiB/s)" msgstr "" #: ../pan/gui/task-pane.cc:646 ../pan/gui/task-pane.cc:647 msgid "Move To Top" msgstr "" #: ../pan/gui/task-pane.cc:651 ../pan/gui/task-pane.cc:652 msgid "Move To Bottom" msgstr "" #: ../pan/gui/task-pane.cc:656 ../pan/gui/task-pane.cc:657 #, fuzzy msgid "Stop Task" msgstr "Neniu tasko" #: ../pan/gui/task-pane.cc:661 ../pan/gui/task-pane.cc:662 msgid "Delete Task" msgstr "" #: ../pan/gui/task-pane.cc:666 ../pan/gui/task-pane.cc:667 msgid "Restart Task" msgstr "" #: ../pan/gui/task-pane.cc:671 ../pan/gui/task-pane.cc:672 msgid "Change Download Destination" msgstr "" #: ../pan/gui/task-pane.cc:729 msgid "_Online" msgstr "" #: ../pan/gui/task-pane.cc:746 msgid "Restart Tasks" msgstr "" #: ../pan/gui/task-pane.cc:748 msgid "Stop Tasks" msgstr "" #: ../pan/gui/task-pane.cc:750 msgid "Delete Tasks" msgstr "" #: ../pan/gui/url.cc:123 #, c-format msgid "Error starting URL: %s (Command was: %s)" msgstr "" #: ../pan/tasks/decoder.cc:115 #, c-format msgid "Couldn't save file \"%s\": %s" msgstr "" #: ../pan/tasks/decoder.cc:137 ../pan/tasks/encoder.cc:136 msgid "Error initializing uulib" msgstr "" #: ../pan/tasks/decoder.cc:152 ../pan/tasks/socket-impl-gio.cc:352 #: ../pan/tasks/socket-impl-openssl.cc:634 #, c-format msgid "Error reading from %s: %s" msgstr "" #: ../pan/tasks/decoder.cc:192 #, c-format msgid "Saved \"%s\"" msgstr "" #: ../pan/tasks/decoder.cc:199 #, c-format msgid "" "Error saving \"%s\":\n" "%s." msgstr "" #: ../pan/tasks/decoder.cc:314 ../pan/tasks/task-article.cc:350 #, c-format msgid "Decoding %s" msgstr "" #: ../pan/tasks/encoder.cc:102 ../pan/tasks/encoder.cc:155 #, c-format msgid "Error loading %s from cache." msgstr "" #: ../pan/tasks/encoder.cc:177 #, fuzzy, c-format msgid "Error encoding %s: %s" msgstr "Eraro dum legado de dosiero \"%s\": %s" #: ../pan/tasks/encoder.cc:269 #, c-format msgid "Encoding %s" msgstr "" #: ../pan/tasks/nntp.cc:126 #, c-format msgid "%s requires a username, but none is set." msgstr "" #: ../pan/tasks/nntp.cc:139 #, c-format msgid "%s requires a password, but none is set." msgstr "" #: ../pan/tasks/nntp.cc:205 #, c-format msgid "Sending \"%s\" to %s returned an error: %s" msgstr "" #: ../pan/tasks/nntp.cc:228 #, c-format msgid "Sending \"%s\" to %s returned an unrecognized response: \"%s\"" msgstr "" #: ../pan/tasks/nntp-pool.cc:222 #, c-format msgid "Unable to connect to \"%s\"" msgstr "" #: ../pan/tasks/socket-impl-gio.cc:173 ../pan/tasks/socket-impl-gio.cc:211 #: ../pan/tasks/socket-impl-openssl.cc:214 #: ../pan/tasks/socket-impl-openssl.cc:252 #, c-format msgid "Error connecting to \"%s\"" msgstr "" #: ../pan/tasks/socket-impl-gio.cc:351 ../pan/tasks/socket-impl-openssl.cc:633 msgid "Unknown Error" msgstr "Nekonata eraro" #: ../pan/tasks/task-article.cc:61 ../pan/tasks/task-article.cc:156 #: ../pan/tasks/task-article.cc:159 #, c-format msgid "Saving %s" msgstr "" #: ../pan/tasks/task-article.cc:63 #, c-format msgid "Reading %s" msgstr "" #: ../pan/tasks/task-article.cc:322 #, c-format msgid "Article \"%s\" is incomplete -- the news server(s) don't have part %s" msgstr "" #: ../pan/tasks/task-groups.cc:40 #, c-format msgid "Getting group list from \"%s\"" msgstr "" #: ../pan/tasks/task-groups.cc:122 #, c-format msgid "Fetched %lu Groups" msgstr "" #: ../pan/tasks/task-post.cc:35 #, c-format msgid "Posting \"%s\"" msgstr "" #: ../pan/tasks/task-post.cc:76 #, c-format msgid "Posting of \"%s\" failed: %s" msgstr "" #: ../pan/tasks/task-post.cc:81 #, c-format msgid "Posting of \"%s\" succesful: %s" msgstr "" #: ../pan/tasks/task-upload.cc:51 #, fuzzy, c-format msgid "Uploading %s" msgstr "A_plikaĵoj" #: ../pan/tasks/task-upload.cc:249 #, c-format msgid "Uploading %s - Part %d of %d" msgstr "" #: ../pan/tasks/task-upload.cc:251 #, c-format msgid "Uploading Message body with Subject \"%s\"" msgstr "" #: ../pan/tasks/task-upload.cc:308 #, c-format msgid "Posting of File %s (Part %d of %d) failed: No Posts allowed by server." msgstr "" #: ../pan/tasks/task-upload.cc:316 #, c-format msgid "Posting of File %s (Part %d of %d) failed: %s" msgstr "" #: ../pan/tasks/task-upload.cc:326 ../pan/tasks/task-upload.cc:333 #, c-format msgid "Posting of file %s (Part %d of %d) succesful: %s" msgstr "" #: ../pan/tasks/task-upload.cc:343 #, c-format msgid "Posting of file %s succesful: %s" msgstr "" #: ../pan/tasks/task-upload.cc:347 #, c-format msgid "" "Posting of file %s not completely successful: Check the log (right-click on " "list item) !" msgstr "" #: ../pan/tasks/task-upload.cc:364 #, c-format msgid "" "Posting of file %s not successful: Check the log (right-click on list item) !" msgstr "" #: ../pan/tasks/task-xover.cc:79 #, c-format msgid "Getting all headers for \"%s\"" msgstr "" #: ../pan/tasks/task-xover.cc:81 #, c-format msgid "Getting new headers for \"%s\"" msgstr "" #. SAMPLE #: ../pan/tasks/task-xover.cc:83 #, c-format msgid "Sampling headers for \"%s\"" msgstr "" #: ../pan/tasks/task-xover.cc:369 #, c-format msgid "%s (%lu parts, %lu articles)" msgstr "" #: ../pan/tasks/task-xoverinfo.cc:78 #, c-format msgid "Getting header counts for \"%s\"" msgstr "" #: ../pan/usenet-utils/filter-info.cc:163 msgid "article doesn't have attachments" msgstr "" #: ../pan/usenet-utils/filter-info.cc:167 msgid "the article has attachments" msgstr "" #: ../pan/usenet-utils/filter-info.cc:171 msgid "the article isn't cached locally" msgstr "" #: ../pan/usenet-utils/filter-info.cc:175 msgid "the article is cached locally" msgstr "" #: ../pan/usenet-utils/filter-info.cc:179 msgid "the article wasn't posted by you" msgstr "" #: ../pan/usenet-utils/filter-info.cc:183 msgid "the article was posted by you" msgstr "" #: ../pan/usenet-utils/filter-info.cc:187 msgid "the article has been read" msgstr "" #: ../pan/usenet-utils/filter-info.cc:191 msgid "the article hasn't been read" msgstr "" #: ../pan/usenet-utils/filter-info.cc:195 #, c-format msgid "the article is less than %ld bytes long" msgstr "" #: ../pan/usenet-utils/filter-info.cc:200 #, c-format msgid "the article is at least %ld bytes long" msgstr "" #: ../pan/usenet-utils/filter-info.cc:205 #, c-format msgid "the article is less than %ld lines long" msgstr "" #: ../pan/usenet-utils/filter-info.cc:210 #, c-format msgid "the article is at least %ld lines long" msgstr "" #: ../pan/usenet-utils/filter-info.cc:215 #, c-format msgid "the article is less than %ld days old" msgstr "" #: ../pan/usenet-utils/filter-info.cc:220 #, c-format msgid "the article is at least %ld days old" msgstr "" #: ../pan/usenet-utils/filter-info.cc:225 #, c-format msgid "the article was posted to less than %ld groups" msgstr "" #: ../pan/usenet-utils/filter-info.cc:230 #, c-format msgid "the article was posted to at least %ld groups" msgstr "" #: ../pan/usenet-utils/filter-info.cc:235 #, c-format msgid "the article's score is less than %ld" msgstr "" #: ../pan/usenet-utils/filter-info.cc:240 #, c-format msgid "the article's score is %ld or higher" msgstr "" #: ../pan/usenet-utils/filter-info.cc:249 #: ../pan/usenet-utils/filter-info.cc:259 #, c-format msgid "%s doesn't contain \"%s\"" msgstr "" #: ../pan/usenet-utils/filter-info.cc:250 #: ../pan/usenet-utils/filter-info.cc:260 #, c-format msgid "%s isn't \"%s\"" msgstr "" #: ../pan/usenet-utils/filter-info.cc:251 #: ../pan/usenet-utils/filter-info.cc:261 #, c-format msgid "%s doesn't begin with \"%s\"" msgstr "" #: ../pan/usenet-utils/filter-info.cc:252 #: ../pan/usenet-utils/filter-info.cc:262 #, c-format msgid "%s doesn't end with \"%s\"" msgstr "" #: ../pan/usenet-utils/filter-info.cc:253 #: ../pan/usenet-utils/filter-info.cc:263 #, c-format msgid "%s doesn't match the regex \"%s\"" msgstr "" #: ../pan/usenet-utils/filter-info.cc:275 #, c-format msgid "%s contains \"%s\"" msgstr "" #: ../pan/usenet-utils/filter-info.cc:276 #, c-format msgid "%s is \"%s\"" msgstr "" #: ../pan/usenet-utils/filter-info.cc:277 #, c-format msgid "%s begins with \"%s\"" msgstr "" #: ../pan/usenet-utils/filter-info.cc:278 #, c-format msgid "%s ends with \"%s\"" msgstr "" #: ../pan/usenet-utils/filter-info.cc:279 #, c-format msgid "%s matches the regex \"%s\"" msgstr "" #: ../pan/usenet-utils/filter-info.cc:285 msgid "Any of these tests fail:" msgstr "" #: ../pan/usenet-utils/filter-info.cc:292 msgid "All of these tests pass:" msgstr "" #: ../pan/usenet-utils/filter-info.cc:299 msgid "None of these tests pass:" msgstr "" #: ../pan/usenet-utils/filter-info.cc:306 msgid "Any of these tests pass:" msgstr "" #: ../pan/usenet-utils/gnksa.cc:878 #, c-format msgid "No email address provided; generating message-id with domain \"%s\"" msgstr "" #: ../pan/usenet-utils/message-check.cc:124 msgid "Warning: Reply seems to be top-posted." msgstr "" #: ../pan/usenet-utils/message-check.cc:145 msgid "Warning: The signature marker should be \"-- \", not \"--\"." msgstr "" #: ../pan/usenet-utils/message-check.cc:162 msgid "Warning: Signature prefix with no signature." msgstr "" #: ../pan/usenet-utils/message-check.cc:167 msgid "Warning: Signature is more than 4 lines long." msgstr "" #: ../pan/usenet-utils/message-check.cc:172 msgid "Warning: Signature is more than 80 characters wide." msgstr "" #: ../pan/usenet-utils/message-check.cc:198 #, c-format msgid "Warning: %d line is more than 80 characters wide." msgid_plural "Warning: %d lines are more than 80 characters wide." msgstr[0] "" msgstr[1] "" #: ../pan/usenet-utils/message-check.cc:223 msgid "Error: Message is empty." msgstr "" #: ../pan/usenet-utils/message-check.cc:258 msgid "Warning: The message is entirely quoted text!" msgstr "" #: ../pan/usenet-utils/message-check.cc:259 msgid "Warning: The message is mostly quoted text." msgstr "" #: ../pan/usenet-utils/message-check.cc:309 msgid "Error: Message appears to have no new content." msgstr "" #: ../pan/usenet-utils/message-check.cc:344 #: ../pan/usenet-utils/message-check.cc:383 #, c-format msgid "" "Warning: The posting profile's server doesn't carry newsgroup\n" "\t\"%s\".\n" "\tIf the group name is correct, switch profiles in the \"From:\"\n" "\tline or edit the profile with \"Edit|Manage Posting Profiles\"." msgstr "" #: ../pan/usenet-utils/message-check.cc:355 msgid "Warning: Following-Up to too many groups." msgstr "" #: ../pan/usenet-utils/message-check.cc:366 msgid "Error: No Subject specified." msgstr "" #: ../pan/usenet-utils/message-check.cc:395 #, c-format msgid "Warning: Group \"%s\" is read-only." msgstr "" #: ../pan/usenet-utils/message-check.cc:404 msgid "Error: Posting to a very large number of groups." msgstr "" #: ../pan/usenet-utils/message-check.cc:409 msgid "Warning: Posting to a large number of groups." msgstr "" #: ../pan/usenet-utils/message-check.cc:416 msgid "Warning: Crossposting without setting Followup-To header." msgstr "" #: ../pan/usenet-utils/message-check.cc:441 msgid "Error: Bad email address." msgstr "" #: ../pan/usenet-utils/message-check.cc:450 msgid "Warning: Most newsgroups frown upon HTML posts." msgstr "" #: ../pan/usenet-utils/message-check.cc:486 msgid "Error: No Recipients." msgstr "" #: ../pan/usenet-utils/scorefile.cc:304 #, c-format msgid "" "Error reading score in %*.*s, line %d: expected 'Expires: MM/DD/YYYY' or " "'Expires: DD-MM-YYYY'." msgstr "" #: ../pan/usenet-utils/scorefile.cc:307 #, c-format msgid "Expired old score from %*.*s, line %d" msgstr "" #: ../pan/usenet-utils/scorefile.cc:380 #, c-format msgid "Error reading score in %*.*s, line %d: unexpected line." msgstr "" #: ../pan/usenet-utils/scorefile.cc:428 #, c-format msgid "Read %lu scoring rules in %lu sections from \"%s\"" msgstr "" #: ../pan/usenet-utils/ssl-utils.h:199 #, c-format msgid "Error printing the server certificate for '%s'" msgstr "" #: ../pan/usenet-utils/ssl-utils.h:216 #, c-format msgid "" "The current server '%s' sent this security certificate :\n" "\n" msgstr "" #: ../pan/usenet-utils/ssl-utils.h:217 #, c-format msgid "" "Certificate information for server '%s' :\n" "\n" msgstr "" #: ../pan/usenet-utils/ssl-utils.h:219 #, c-format msgid "" "%sIssuer information:\n" "%s\n" "Valid until : %s\n" "\n" "Not valid before : %s\n" "\n" msgstr "" #: ../pan/usenet-utils/text-massager.cc:397 msgid "> [quoted text muted]" msgstr "" #, fuzzy #~ msgid "Signer : " #~ msgstr "Subskribo:" #~ msgid "_Signature:" #~ msgstr "_Subskribo:" pan-0.162/po/es.po000066400000000000000000003221621475412772400137100ustar00rootroot00000000000000# translation of pan2.master.po to Español # Spanish translation of Pan2 # Copyright © 2001-2003, 2006, 2007, 2008 the Free Software Foundation, Inc. # This file is distributed under the same license as the pan package. # # Antonio de la Torre , 2001. # Pablo Gonzalo del Campo ,2002-2003. # Francisco Javier F. Serrador , 2004, 2005, 2006. # Jorge González , 2007, 2008, 2009, 2011. # Nicolás Satragno , 2012. # Daniel Mustieles , 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018. # leo , 2021. # Miguel Ángel Nieto , 2021-2022. # msgid "" msgstr "" "Project-Id-Version: pan2.master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/pan/issues\n" "POT-Creation-Date: 2023-01-25 21:43+0000\n" "PO-Revision-Date: 2022-02-07 11:01+0100\n" "Last-Translator: Miguel Ángel Nieto \n" "Language-Team: Spanish - Spain \n" "Language: es_ES\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Gtranslator 41.0\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" #. update the titlebar #: org.gnome.pan.desktop.in:3 org.gnome.pan.metainfo.xml.in:27 #: pan/gui/dl-headers-ui.cc:119 pan/gui/gui.cc:1040 pan/gui/gui.cc:1665 #: pan/gui/gui.cc:1985 pan/gui/score-add-ui.cc:600 msgid "Pan" msgstr "Pan" #: org.gnome.pan.desktop.in:4 msgid "Newsreader" msgstr "Lector de noticias" #: org.gnome.pan.desktop.in:5 org.gnome.pan.metainfo.xml.in:7 msgid "Read and post Usenet articles" msgstr "Leer y publicar artículos en Usenet" #. Translators: Search terms to find this application. Do NOT translate or localise the semicolons! The list MUST also end with a semicolon! #: org.gnome.pan.desktop.in:7 msgid "usenet;news;newsreader;newsgroup;article;yenc;nzb;" msgstr "usenet;lector;noticias;grupos;artículo;yenc,nzb;" #: org.gnome.pan.metainfo.xml.in:6 msgid "Pan Newsreader" msgstr "Lector de noticias Pan" #: org.gnome.pan.metainfo.xml.in:9 msgid "" "Pan is a Usenet newsreader that is good at both text and binaries. It " "supports offline reading, scoring and killfiles, yEnc, NZB, PGP handling, " "multiple servers, and secure connections." msgstr "" "Pan es un lector de noticias de Usenet que funciona tanto con texto como con " "binarios. Soporta lectura sin conexión, puntuación, «killfiles», yEnc, NZB, " "gestión de PGP, varios servidores y conexiones seguras." #: org.gnome.pan.metainfo.xml.in:12 msgid "" "It is also the only Unix newsreader to get a perfect score on the Good Net-" "Keeping Seal of Approval evaluations." msgstr "" "También es el único lector de noticias de Unix para obtener una puntuación " "perfecta en las pruebas del Sello de aprobación de lectores de noticias " "(GNKSA)." #: pan/data/article-cache.cc:144 pan/data/encode-cache.cc:62 #, c-format msgid "Error opening directory: \"%s\": %s" msgstr "Error al abrir la carpeta: «%s»: %s" #: pan/data/article-cache.cc:235 pan/data/article-cache.cc:244 #: pan/data-impl/data-io.cc:279 pan/data-impl/data-io.cc:311 #: pan/gui/post-ui.cc:1768 #, c-format msgid "Unable to save \"%s\" %s" msgstr "No se pudo guardar «%s» %s" #: pan/data/article-cache.cc:362 #, c-format msgid "Error opening file \"%s\" %s" msgstr "Error al abrir el archivo «%s» %s" #: pan/data/article-cache.cc:393 pan/data-impl/profiles.cc:175 #: pan/data-impl/server.cc:489 pan/general/file-util.cc:312 #: pan/gui/post-ui.cc:637 pan/gui/task-pane.cc:741 #, c-format msgid "Error reading file \"%s\": %s" msgstr "Ocurrió un error al leer el archivo «%s»: %s" #: pan/data/cert-store.cc:261 #, c-format msgid "Error opening SSL certificate directory: \"%s\": %s" msgstr "Error al abrir la carpeta de certificados SSL: «%s»: %s" #: pan/data/cert-store.cc:292 #, c-format msgid "Successfully added %d SSL PEM certificate(s) to Certificate Store." msgstr "" "%d certificado(s) SSL PEM añadido(s) con éxito al almacén de certificados." #: pan/data/cert-store.cc:312 msgid "" "Error initializing Certificate Store. Check that the permissions for the " "folders ~/.pan2 and ~/.pan2/ssl_certs are set correctly. Fatal, exiting." msgstr "" "Error al inicializar el almacén de certificados. Compruebe que los permisos " "de las carpetas ~/.pan2 y ~/.pan2/ssl_certs son correctos. Error fatal, " "saliendo." #: pan/data/cert-store.cc:361 #, c-format msgid "Could not export certificate for server: %s" msgstr "No se pudo exportar el certificador para el servidor: %s" #. load_group_descriptions (*_data_io); #: pan/data-impl/data-impl.cc:116 #, c-format msgid "Loaded data backend in %.1f seconds" msgstr "Se cargó el «backend» de datos en %.1f segundos" #: pan/data-impl/data-impl.cc:152 msgid "Pan Newsreader's server passwords" msgstr "Contraseñas del servidor del lector de noticias Pan" #: pan/data-impl/groups.cc:102 #, c-format msgid "Skipping newsrc file for server \"%s\"" msgstr "Saltando el archivo newsrc para el servidor «%s»" #: pan/data-impl/headers.cc:617 #, c-format msgid "Expired %lu old articles from \"%s\"" msgstr "Se han caducado %lu artículos antiguos en «%s»" #: pan/data-impl/headers.cc:624 #, c-format msgid "" "Unsupported data version for %s headers: %d.\n" "Are you running an old version of Pan by accident?" msgstr "" "Versión de datos no soportada para cabeceras %s: %d.\n" "¿Está ejecutando una versión antigua de Pan por accidente?" #: pan/data-impl/headers.cc:639 #, fuzzy, c-format #| msgid "Loaded %lu articles for \"%s\" in %.1f seconds (%.0f per second)" msgid "Loaded %llu articles for \"%s\" in %.1f seconds (%.0f per second)" msgstr "" "Se han cargado %lu artículos del grupo «%s» en %.1f segundos (%.0f art/seg)" #: pan/data-impl/headers.cc:868 #, c-format msgid "" "Saved %lu parts, %lu articles in \"%s\" in %.1f seconds (%.0f articles/sec)" msgstr "" "Se han guardado %lu partes, %lu artículos en «%s» en %.1f segundos (%.0f " "artículos/seg)" #: pan/data-impl/headers.cc:1201 #, c-format msgid "Added %lu articles to %s." msgstr "Se han añadido %lu artículos a %s." #: pan/data-impl/server.cc:259 #, c-format msgid "Received no password from libsecret for server %s." msgstr "No se ha recibido ninguna contraseña para libsecret del servidor %s." #: pan/data-impl/xover.cc:241 #, c-format msgid "Error reading from %s: unknown group \"%s\"" msgstr "Error al leer desde %s: grupo desconocido «%s»" #: pan/general/editor-spawner.cc:66 #, c-format msgid "Error parsing \"external editor\" command line: %s (Command was: %s)" msgstr "" "Ocurrió un error al analizar la línea de comando «editor externo»: %s (El " "comando fue: %s)" #: pan/general/editor-spawner.cc:110 #, c-format msgid "Error starting external editor: %s" msgstr "Ocurrió un error al ejecutar el editor externo: %s" #: pan/general/e-util.cc:164 msgid "%l:%M %p" msgstr "%l∶%M %p" #: pan/general/e-util.cc:165 msgid "Today %l:%M %p" msgstr "Hoy %l:M %p" #: pan/general/e-util.cc:166 msgid "%a %l:%M %p" msgstr "%a %l∶%M %p" #: pan/general/e-util.cc:167 msgid "%b %d %l:%M %p" msgstr "%b %d %l:%M %p" #: pan/general/e-util.cc:168 msgid "%b %d %Y" msgstr "%b %d %Y" #: pan/general/e-util.cc:200 msgid "?" msgstr "?" #: pan/general/text-match.cc:194 #, c-format msgid "Can't use regular expression \"%s\": %s" msgstr "No se puede usar la expresión regular «%s»: %s" #: pan/general/utf8-utils.cc:212 msgid "Couldn't determine article encoding. Non-UTF8 characters were removed." msgstr "" "No se pudo determinar la codificación del artículo. Se eliminaron caracteres " "no UTF-8." #: pan/gui/actions.cc:306 pan/gui/post-ui.cc:452 msgid "_File" msgstr "_Archivo" #: pan/gui/actions.cc:307 pan/gui/post-ui.cc:453 msgid "_Edit" msgstr "_Editar" #: pan/gui/actions.cc:308 pan/gui/prefs-ui.cc:1111 msgid "_Layout" msgstr "_Distribución" #: pan/gui/actions.cc:309 msgid "_Group Pane" msgstr "Panel de _grupo" #: pan/gui/actions.cc:310 msgid "_Header Pane" msgstr "Panel de la _cabecera" #: pan/gui/actions.cc:311 msgid "_Body Pane" msgstr "Panel del _cuerpo" #: pan/gui/actions.cc:312 msgid "_View" msgstr "_Ver" #: pan/gui/actions.cc:313 msgid "Filte_r" msgstr "_Filtro" #: pan/gui/actions.cc:314 msgid "_Go" msgstr "_Ir" #: pan/gui/actions.cc:315 pan/gui/prefs-ui.cc:1161 msgid "_Actions" msgstr "_Acciones" #: pan/gui/actions.cc:316 msgid "_Articles" msgstr "_Artículos" #: pan/gui/actions.cc:317 msgid "G_roups" msgstr "_Grupos" #: pan/gui/actions.cc:318 pan/gui/actions.cc:319 msgid "_Post" msgstr "_Publicar" #: pan/gui/actions.cc:320 msgid "_Help" msgstr "Ay_uda" #: pan/gui/actions.cc:323 msgid "_Read Group" msgstr "_Leer grupo" #: pan/gui/actions.cc:324 msgid "Read Group" msgstr "Leer grupo" #: pan/gui/actions.cc:328 msgid "_Mark Selected Groups Read" msgstr "_Marcar los grupos seleccionados como leídos" #: pan/gui/actions.cc:329 msgid "Mark Selected Groups Read" msgstr "Marcar los grupos seleccionados como leídos" #: pan/gui/actions.cc:333 msgid "_Delete Selected Groups' Articles" msgstr "_Eliminar los artículos de los grupos seleccionados" #: pan/gui/actions.cc:334 msgid "Delete Selected Groups' Articles" msgstr "Eliminar los artículos de los grupos seleccionados" #: pan/gui/actions.cc:338 msgid "Get New _Headers in Selected Groups" msgstr "Obtener _cabeceras nuevas en los grupos seleccionados" #: pan/gui/actions.cc:339 msgid "Get New Headers in Selected Groups" msgstr "Obtener cabeceras nuevas en los grupos seleccionados" #: pan/gui/actions.cc:343 pan/gui/actions.cc:348 msgid "Get New _Headers in Subscribed Groups" msgstr "Obtener cabeceras _nuevas de los grupos suscritos" #: pan/gui/actions.cc:344 pan/gui/actions.cc:349 msgid "Get New Headers in Subscribed Groups" msgstr "Obtener cabeceras nuevas de los grupos suscritos" #: pan/gui/actions.cc:353 msgid "Get _Headers..." msgstr "Obtener _cabeceras…" #: pan/gui/actions.cc:354 msgid "Get Headers..." msgstr "Obtener cabeceras…" #: pan/gui/actions.cc:358 pan/gui/actions.cc:359 msgid "Refresh Group List" msgstr "Refrescando lista de grupos" #: pan/gui/actions.cc:363 msgid "_Subscribe" msgstr "_Suscribirse" #: pan/gui/actions.cc:364 msgid "Subscribe" msgstr "Suscribirse" #: pan/gui/actions.cc:368 msgid "_Unsubscribe" msgstr "Des_uscribir" #: pan/gui/actions.cc:369 msgid "Unsubscribe" msgstr "Desuscribirse" #: pan/gui/actions.cc:373 msgid "_Save Articles..." msgstr "_Guardar artículos…" #: pan/gui/actions.cc:374 msgid "Save Articles..." msgstr "Guardar artículos…" #: pan/gui/actions.cc:378 msgid "Save Articles from Selected _NZB..." msgstr "Guardar los artículos del _NZB seleccionado…" #: pan/gui/actions.cc:379 msgid "Save Articles from Selected NZB" msgstr "Guardar los artículos del NZB seleccionado" #: pan/gui/actions.cc:383 msgid "Save Articles to an NZB _File..." msgstr "Guardar artículos en un archivo NZB…" #: pan/gui/actions.cc:384 msgid "Save Articles to an NZB File" msgstr "Guardar artículos en un archivo NZB" #: pan/gui/actions.cc:388 pan/gui/actions.cc:389 msgid "Print" msgstr "Imprimir" #: pan/gui/actions.cc:393 msgid "_Import NZB Files..." msgstr "_Importar archivos NZB…" #: pan/gui/actions.cc:398 msgid "_Cancel Last Task" msgstr "_Cancelar la última tarea" #: pan/gui/actions.cc:403 msgid "_Task Manager" msgstr "Gestor de _tareas" #: pan/gui/actions.cc:408 msgid "_Event Log" msgstr "_Registro de sucesos" #: pan/gui/actions.cc:413 msgid "_Quit" msgstr "_Salir" #: pan/gui/actions.cc:418 msgid "Select _All Articles" msgstr "Seleccionar todos los _artículos" #: pan/gui/actions.cc:423 msgid "_Deselect All Articles" msgstr "Deseleccionar todos _los artículos" #: pan/gui/actions.cc:428 msgid "Add Su_bthreads to Selection" msgstr "Añadir _subconversaciones a la selección" #: pan/gui/actions.cc:433 msgid "Add _Threads to Selection" msgstr "Añadir _conversaciones a la selección" #: pan/gui/actions.cc:438 msgid "Add _Similar Articles to Selection" msgstr "Añadir _artículos similares a la selección" #: pan/gui/actions.cc:443 msgid "Select Article _Body" msgstr "Seleccionar el _cuerpo del artículo" #: pan/gui/actions.cc:448 msgid "Edit _Preferences" msgstr "Editar prefere_ncias…" #: pan/gui/actions.cc:453 msgid "Edit Selected _Group's Preferences" msgstr "Editar preferencias de los _grupos seleccionados" #: pan/gui/actions.cc:458 #, fuzzy #| msgid "Signature File" msgid "Edit S_core File" msgstr "Archivo de firma" #: pan/gui/actions.cc:463 pan/gui/post-ui.cc:469 msgid "Edit P_osting Profiles" msgstr "Editar _perfiles de publicación" #: pan/gui/actions.cc:468 msgid "Edit _News Servers" msgstr "Editar servidores de _noticias" #: pan/gui/actions.cc:473 msgid "Jump to _Group Tab" msgstr "Saltar a la pestaña del _grupo" #: pan/gui/actions.cc:478 msgid "Jump to _Header Tab" msgstr "Saltar a la pestaña de la _cabecera" #: pan/gui/actions.cc:483 msgid "Jump to _Body Tab" msgstr "Saltar a la pestaña del _cuerpo" #: pan/gui/actions.cc:488 msgid "_Rot13 Selected Text" msgstr "_Cifrar con rot13 el texto seleccionado" #: pan/gui/actions.cc:493 msgid "Clear _Header Pane" msgstr "Limpiar panel de la _cabecera" #: pan/gui/actions.cc:498 msgid "Clear _Body Pane" msgstr "Limpiar panel del c_uerpo" #: pan/gui/actions.cc:503 msgid "Cache Article" msgstr "Almacenar artículo" #: pan/gui/actions.cc:508 msgid "Read Article" msgstr "Leer artículo" #: pan/gui/actions.cc:513 msgid "Show Article Information" msgstr "Mostrar información del artículo" #: pan/gui/actions.cc:518 msgid "Read _More" msgstr "Leer _más" #: pan/gui/actions.cc:519 msgid "Read More" msgstr "Leer más" #: pan/gui/actions.cc:523 msgid "Read _Back" msgstr "Leer _atrás" #: pan/gui/actions.cc:524 msgid "Read Back" msgstr "Leer atrás" #: pan/gui/actions.cc:528 msgid "Next _Unread Group" msgstr "Siguiente grupo _no leído" #: pan/gui/actions.cc:533 msgid "Next _Group" msgstr "Siguiente _grupo" #: pan/gui/actions.cc:538 msgid "Next _Unread Article" msgstr "Siguiente artículo _no leído" #: pan/gui/actions.cc:539 msgid "Next Unread Article" msgstr "Siguiente artículo no leído" #: pan/gui/actions.cc:543 msgid "Next _Article" msgstr "Siguiente _artículo" #: pan/gui/actions.cc:544 msgid "Next Article" msgstr "Siguiente artículo" #: pan/gui/actions.cc:548 msgid "Next _Watched Article" msgstr "Siguiente artículo _vigilado" #: pan/gui/actions.cc:553 msgid "Next Unread _Thread" msgstr "Siguiente _conversación no leída" #: pan/gui/actions.cc:554 msgid "Next Unread Thread" msgstr "Siguiente conversación no leída" #: pan/gui/actions.cc:558 msgid "Next Threa_d" msgstr "Siguiente _conversación" #: pan/gui/actions.cc:563 msgid "Pre_vious Article" msgstr "Artículo an_terior" #: pan/gui/actions.cc:568 msgid "Previous _Thread" msgstr "_Conversación anterior" #: pan/gui/actions.cc:573 msgid "_Parent Article" msgstr "Artículo _padre" #: pan/gui/actions.cc:578 msgid "Ignore _Author" msgstr "Ignorar _autor" #: pan/gui/actions.cc:582 msgid "_Watch Thread" msgstr "_Vigilar conversación" #: pan/gui/actions.cc:587 msgid "_Ignore Thread" msgstr "_Ignorar conversación" #: pan/gui/actions.cc:592 pan/gui/actions.cc:593 msgid "_Toggle Flag On/Off for Thread" msgstr "_Conmutar marca Activar/Desactivar de la conversación" #: pan/gui/actions.cc:597 pan/gui/actions.cc:598 msgid "_Turn Flag Off for Thread" msgstr "_Desactivar marca de la conversación" #: pan/gui/actions.cc:602 pan/gui/actions.cc:603 msgid "_Select All Flagged Threads" msgstr "_Seleccionar todas las conversaciones marcadas" #: pan/gui/actions.cc:607 pan/gui/actions.cc:608 msgid "_Go to Next Flagged Thread" msgstr "Ir a la _siguiente conversación marcada" #: pan/gui/actions.cc:612 pan/gui/actions.cc:613 msgid "_Go to Last Flagged Thread" msgstr "Ir a la últ_ima conversación marcada" #: pan/gui/actions.cc:617 pan/gui/actions.cc:618 msgid "_Invert Selection" msgstr "_Invertir selección" #: pan/gui/actions.cc:622 msgid "Edit Article's Watch/Ignore/Score..." msgstr "Editar Vigilancia/Ignorar/Puntuación..." #: pan/gui/actions.cc:627 msgid "Add a _Scoring Rule..." msgstr "Añadir una regla de pun_tuación…" #: pan/gui/actions.cc:632 msgid "Cance_l Article..." msgstr "Cance_lar artículo…" #: pan/gui/actions.cc:637 msgid "_Supersede Article..." msgstr "_Sustituir artículo…" #: pan/gui/actions.cc:642 msgid "_Delete Article" msgstr "_Eliminar artículo" #: pan/gui/actions.cc:647 msgid "Clear Article Cache" msgstr "Limpiar la caché de artículos" #: pan/gui/actions.cc:652 msgid "_Mark Article as Read" msgstr "_Marcar artículo como leído" #: pan/gui/actions.cc:657 msgid "Mark Article as _Unread" msgstr "Marcar artículo como _no leído" #: pan/gui/actions.cc:663 msgid "_Mark Thread as Read" msgstr "_Marcar conversación como leída" #: pan/gui/actions.cc:668 msgid "Mark Thread as _Unread" msgstr "Marcar conversación como _no leída" #: pan/gui/actions.cc:673 msgid "_Post to Newsgroup" msgstr "_Publicar al grupo de noticias" #: pan/gui/actions.cc:674 msgid "Post to Newsgroup" msgstr "Publicar al grupo de noticias" #: pan/gui/actions.cc:678 msgid "_Followup to Newsgroup" msgstr "_Reenviar al grupo de noticias" #: pan/gui/actions.cc:679 msgid "Followup to Newsgroup" msgstr "Reenviar al grupo de noticias" #: pan/gui/actions.cc:683 msgid "_Reply to Author in Mail" msgstr "_Responder al autor por correo" #: pan/gui/actions.cc:689 msgid "_Contents" msgstr "_Contenido" #: pan/gui/actions.cc:695 msgid "_Pan Home Page" msgstr "Página _web de Pan" #: pan/gui/actions.cc:700 msgid "Give _Feedback or Report a Bug..." msgstr "Proporcionar _comentarios o informar de un bug…" #: pan/gui/actions.cc:705 msgid "_About" msgstr "Acerca _de" #: pan/gui/actions.cc:710 msgid "Edit _SSL Certificates" msgstr "Editar certificados _SSL" #: pan/gui/actions.cc:725 msgid "_Thread Headers" msgstr "_Cabeceras por conversaciones" #: pan/gui/actions.cc:726 msgid "Wrap Article Body" msgstr "Ajustar el cuerpo del artículo" #: pan/gui/actions.cc:727 msgid "Show Article Signature" msgstr "Mostrar la firma del artículo" #: pan/gui/actions.cc:728 msgid "Mute _Quoted Text" msgstr "Ocultar el texto c_itado" #: pan/gui/actions.cc:729 msgid "Show All _Headers in Body Pane" msgstr "Mostrar todas las cab_eceras en el panel del cuerpo" #: pan/gui/actions.cc:730 msgid "Show _Smilies as Graphics" msgstr "Mostrar _emojis gráficos:" #: pan/gui/actions.cc:731 msgid "Show *Bold*, __Underlined__, and /Italic/" msgstr "Mostrar *Negrita*, __Subrayado__, y " #: pan/gui/actions.cc:732 msgid "Size Pictures to _Fit" msgstr "Redimensionar imágenes para que _quepan" #: pan/gui/actions.cc:733 msgid "Use _Monospace Font" msgstr "Usar tipografía mono_espaciada" #: pan/gui/actions.cc:734 msgid "Set Focus to Images" msgstr "Establecer el foco en las imágenes" #: pan/gui/actions.cc:735 msgid "Highlight _URLs" msgstr "Resaltar _URL" #: pan/gui/actions.cc:738 msgid "_Work Online" msgstr "_Trabajar conectado" #: pan/gui/actions.cc:739 msgid "_Tabbed Layout" msgstr "D_isposición con pestañas" #: pan/gui/actions.cc:740 msgid "Show Group _Pane" msgstr "Mostrar el _panel del grupo" #: pan/gui/actions.cc:741 msgid "Show Hea_der Pane" msgstr "Mostrar el panel de la ca_becera" #: pan/gui/actions.cc:742 msgid "Show Bod_y Pane" msgstr "Mostrar el panel del c_uerpo" #: pan/gui/actions.cc:743 msgid "Show _Toolbar" msgstr "Mostrar barra de _herramientas" #: pan/gui/actions.cc:744 msgid "Abbreviate Group Names" msgstr "Abreviar nombres de grupos de noticias" #: pan/gui/actions.cc:746 msgid "Match Only _Read Articles" msgstr "Coincidir sólo con los artículos _leídos" #: pan/gui/actions.cc:746 msgid "Match Only Read Articles" msgstr "Coincidir sólo con los artículos leídos" #: pan/gui/actions.cc:747 msgid "Match Only _Unread Articles" msgstr "Coincidir sólo con los artículos _no leídos" #: pan/gui/actions.cc:747 msgid "Match Only Unread Articles" msgstr "Coincidir sólo con los artículos no leídos" #: pan/gui/actions.cc:748 msgid "Match Only _Cached Articles" msgstr "Coincidir sólo con los artículos _almacenados" #: pan/gui/actions.cc:748 msgid "Match Only Cached Articles" msgstr "Coincidir sólo con los artículos almacenados" #: pan/gui/actions.cc:749 msgid "Match Only _Complete Articles" msgstr "Coincidir sólo con los adjuntos _completos" #: pan/gui/actions.cc:749 msgid "Match Only Complete Articles" msgstr "Coincidir sólo con los adjuntos completos" #: pan/gui/actions.cc:750 msgid "Match Only _My Articles" msgstr "Coincidir sólo con _mis artículos" #: pan/gui/actions.cc:750 msgid "Match Only My Articles" msgstr "Coincidir sólo con mis artículos" #: pan/gui/actions.cc:751 msgid "Match Only _Watched Articles" msgstr "Coincidir sólo con los artículos _vigilados" #: pan/gui/actions.cc:751 msgid "Match Only Watched Articles" msgstr "Coincidir sólo con los artículos vigilados" #: pan/gui/actions.cc:753 msgid "Match Scores of 9999 (_Watched)" msgstr "Coincidir puntuación de 9999 (_vigilados)" #: pan/gui/actions.cc:754 msgid "Match Scores of 5000...9998 (_High)" msgstr "Coincidir con puntuación entre 5000…9998 (_alta)" #: pan/gui/actions.cc:755 msgid "Match Scores of 1...4999 (Me_dium)" msgstr "Coincidir con puntuación entre 1…4999 (me_dia)" #: pan/gui/actions.cc:756 msgid "Match Scores of 0 (_Normal)" msgstr "Coincidir con una puntuación de 0 (_normal)" #: pan/gui/actions.cc:757 msgid "Match Scores of -9998...-1 (_Low)" msgstr "Coincidir con una puntuación entre -9998…-1 (_baja)" #: pan/gui/actions.cc:758 msgid "Match Scores of -9999 (_Ignored)" msgstr "Coincidir con una puntuación de -9999 (_ignorado)" #: pan/gui/actions.cc:760 msgid "Enable/Disable All _Rules" msgstr "Activar/Desactivar todas las _reglas" #: pan/gui/actions.cc:788 msgid "Show Matching _Articles" msgstr "Mostrar los _artículos que coinciden" #: pan/gui/actions.cc:789 msgid "Show Matching Articles' _Threads" msgstr "Mostrar las conversaciones de los artículos que coinciden" #: pan/gui/actions.cc:790 msgid "Show Matching Articles' _Subthreads" msgstr "Mostrar _conversaciones de los artículos hijos coincidentes" #: pan/gui/body-pane.cc:1036 msgid "Unnamed File" msgstr "Archivo sin nombre" #: pan/gui/body-pane.cc:1117 pan/gui/gui.cc:1956 pan/gui/header-pane.cc:1306 #: pan/gui/header-pane.cc:1735 pan/gui/post-ui.cc:2641 pan/gui/prefs-ui.cc:859 #: pan/gui/score-add-ui.cc:139 pan/gui/task-pane.cc:797 msgid "Subject" msgstr "Asunto" #: pan/gui/body-pane.cc:1119 pan/gui/gui.cc:1956 msgid "From" msgstr "De" #: pan/gui/body-pane.cc:1121 pan/gui/gui.cc:1957 pan/gui/header-pane.cc:1814 #: pan/gui/log-ui.cc:308 pan/gui/prefs-ui.cc:855 msgid "Date" msgstr "Fecha" #: pan/gui/body-pane.cc:1128 msgid "Newsgroups" msgstr "Grupos de noticias" #: pan/gui/body-pane.cc:1135 pan/gui/body-pane.cc:1143 #: pan/gui/body-pane.cc:1150 msgid "User-Agent" msgstr "Agente de usuario" #: pan/gui/body-pane.cc:1156 msgid "Followup-To" msgstr "Reenviar A" #: pan/gui/body-pane.cc:1166 msgid "Reply-To" msgstr "Responder a" #: pan/gui/body-pane.cc:1214 msgid " from " msgstr " de " #: pan/gui/body-pane.cc:1216 msgid " at " msgstr " es " #: pan/gui/body-pane.cc:1305 #, c-format msgid "" "This is a PGP-Signed message.\n" "\n" "Signer: %s ('%s')\n" "Valid until: %s\n" "Created on: %s" msgstr "" "Esto es un mensaje firmado con PGP.\n" "\n" "Firmante: %s («%s»)\n" "Válido hasta: %s\n" "Creado en: %s" #: pan/gui/body-pane.cc:1310 msgid "always" msgstr "siempre" #: pan/gui/body-pane.cc:1530 msgid "Copy _URL" msgstr "Copiar _URL" #: pan/gui/body-pane.cc:1718 msgid "Save Attachment As..." msgstr "Guardar adjunto como…" #: pan/gui/body-pane.cc:1721 msgid "Save All Attachments" msgstr "Guardar todos los adjuntos" #: pan/gui/body-pane.cc:1792 msgid "Attachments:" msgstr "Adjuntos:" #: pan/gui/body-pane.cc:1812 msgid "Text View" msgstr "Vista de texto" #: pan/gui/body-pane.cc:1821 msgid "HTML View" msgstr "Vista HTML" #: pan/gui/dl-headers-ui.cc:125 #, c-format msgid "%d Group" msgid_plural "%d Groups" msgstr[0] "%d grupo" msgstr[1] "%d grupos" #: pan/gui/dl-headers-ui.cc:148 msgid "Get the last N _days' headers: " msgstr "Descargar cabeceras de los últimos N _días:" #: pan/gui/dl-headers-ui.cc:156 msgid "Get _new headers" msgstr "Obtener _cabeceras nuevas" #: pan/gui/dl-headers-ui.cc:160 msgid "Get _all headers" msgstr "Descargar t_odas las cabeceras" #: pan/gui/dl-headers-ui.cc:164 msgid "Get the _latest N headers: " msgstr "Descargar cabeceras _recientes:" #: pan/gui/e-action-combo-box.c:386 pan/gui/prefs-ui.cc:852 msgid "Action" msgstr "Acción" #: pan/gui/e-action-combo-box.c:387 msgid "A GtkRadioAction" msgstr "Un GtkRadioAction" #: pan/gui/e-charset.c:51 pan/gui/task-pane.cc:562 msgid "Unknown" msgstr "Desconocido" #: pan/gui/e-charset.c:52 msgid "Arabic" msgstr "Árabe" #: pan/gui/e-charset.c:53 msgid "Baltic" msgstr "Báltico" #: pan/gui/e-charset.c:54 msgid "Central European" msgstr "Europeo central" #: pan/gui/e-charset.c:55 msgid "Chinese" msgstr "Chino" #: pan/gui/e-charset.c:56 msgid "Cyrillic" msgstr "Cirílico" #: pan/gui/e-charset.c:57 msgid "Greek" msgstr "Griego" #: pan/gui/e-charset.c:58 msgid "Hebrew" msgstr "Hebreo" #: pan/gui/e-charset.c:59 msgid "Japanese" msgstr "Japones" #: pan/gui/e-charset.c:60 msgid "Korean" msgstr "Coreano" #: pan/gui/e-charset.c:61 msgid "Thai" msgstr "Tailandés" #: pan/gui/e-charset.c:62 msgid "Turkish" msgstr "Turco" #: pan/gui/e-charset.c:63 msgid "Unicode" msgstr "Unicode" #: pan/gui/e-charset.c:64 msgid "Western European" msgstr "Europeo occidental" #: pan/gui/e-charset.c:65 msgid "Western European, New" msgstr "Europeo occidental, nuevo" #: pan/gui/e-charset.c:84 pan/gui/e-charset.c:85 pan/gui/e-charset.c:86 msgid "Traditional" msgstr "Tradicional" #: pan/gui/e-charset.c:87 pan/gui/e-charset.c:88 pan/gui/e-charset.c:89 #: pan/gui/e-charset.c:90 msgid "Simplified" msgstr "Simplificado" #: pan/gui/e-charset.c:93 msgid "Ukrainian" msgstr "Ucraniano" #: pan/gui/e-charset.c:96 msgid "Visual" msgstr "Visual" #: pan/gui/e-charset-combo-box.c:93 pan/gui/gui.cc:2154 pan/gui/post-ui.cc:547 #: pan/gui/prefs-ui.cc:763 msgid "Character Encoding" msgstr "Codificación de caracteres" #: pan/gui/e-charset-combo-box.c:117 msgid "Enter the character set to use" msgstr "Introduzca el juego de caracteres a usar" #: pan/gui/e-charset-combo-box.c:336 msgid "Other..." msgstr "Otro…" #: pan/gui/e-cte-dialog.c:76 msgid "Default Encoding" msgstr "Codificación predeterminada" #: pan/gui/e-cte-dialog.c:78 msgid "7-Bit Encoding" msgstr "Codificación de 7 bits" #: pan/gui/e-cte-dialog.c:80 msgid "8-Bit Encoding" msgstr "Codificación de 8 bits" #: pan/gui/e-cte-dialog.c:82 msgid "Base64 Encoding" msgstr "Codificación en Base64" #: pan/gui/e-cte-dialog.c:84 msgid "Quoted-Printable Encoding" msgstr "Codificación QP («Quoted-Printable»)" #: pan/gui/group-pane.cc:331 msgid "Sent" msgstr "Enviado" #: pan/gui/group-pane.cc:332 msgid "Drafts" msgstr "Borradores" #: pan/gui/group-pane.cc:543 msgid "Group" msgstr "Grupo" #: pan/gui/group-pane.cc:544 msgid "Group (regex)" msgstr "Grupo (exp-reg)" #: pan/gui/group-pane.cc:987 msgid "Local Folders" msgstr "Carpetas locales" #: pan/gui/group-pane.cc:988 msgid "Subscribed Groups" msgstr "Grupos suscritos" #: pan/gui/group-pane.cc:989 msgid "Other Groups" msgstr "Otros grupos" #: pan/gui/group-pane.cc:1029 pan/gui/score-view-ui.cc:157 msgid "Name" msgstr "Nombre" #: pan/gui/group-prefs-dialog.cc:162 msgid "No Profiles defined in Edit|Posting Profiles." msgstr "No hay ningún perfil definido en Editar|Perfiles de publicación." #: pan/gui/group-prefs-dialog.cc:265 msgid "Pan: Group Preferences" msgstr "Pan: preferencias de grupo" #: pan/gui/group-prefs-dialog.cc:280 msgid "Properties for Groups" msgstr "Propiedades de los grupos" #: pan/gui/group-prefs-dialog.cc:282 #, c-format msgid "Properties for %s" msgstr "Propiedades de %s" #: pan/gui/group-prefs-dialog.cc:293 msgid "Character _encoding:" msgstr "_Codificación de caracteres:" #: pan/gui/group-prefs-dialog.cc:295 msgid "Directory for Saving Attachments" msgstr "Carpeta para guardar adjuntos" #: pan/gui/group-prefs-dialog.cc:303 msgid "Directory for _saving attachments:" msgstr "Carpeta para _guardar adjuntos:" #: pan/gui/group-prefs-dialog.cc:305 msgid "Posting _profile:" msgstr "_Perfil de publicación" #: pan/gui/group-prefs-dialog.cc:310 msgid "Spellchecker _language:" msgstr "_Idioma del corrector ortográfico:" #: pan/gui/group-prefs-dialog.cc:313 msgid "Group color:" msgstr "Color del grupo:" #: pan/gui/gui.cc:311 msgid "Open the Task Manager" msgstr "Abrir el administrador de tareas" #: pan/gui/gui.cc:334 msgid "Open the Event Log" msgstr "Abrir el registro de sucesos" #: pan/gui/gui.cc:610 msgid "Save NZB's Files" msgstr "Guardar archivos NZB" #: pan/gui/gui.cc:637 msgid "Untitled.nzb" msgstr "sin_titulo.nzb" #: pan/gui/gui.cc:639 msgid "Save NZB File as..." msgstr "Guardar archivo NZB como…" #: pan/gui/gui.cc:808 msgid "Import NZB Files" msgstr "Importar archivos NZB" #: pan/gui/gui.cc:816 pan/gui/post-ui.cc:3349 msgid "NZB Files" msgstr "Archivos NZB" #: pan/gui/gui.cc:821 msgid "All Files" msgstr "Todos los archivos" #: pan/gui/gui.cc:1335 msgid "Unable to supersede article." msgstr "No es posible sustituir el artículo." #: pan/gui/gui.cc:1336 pan/gui/gui.cc:1412 msgid "The article doesn't match any of your posting profiles." msgstr "El artículo no coincide con ninguno de sus perfiles de publicación." #: pan/gui/gui.cc:1385 msgid "Revise and send this article to replace the old one." msgstr "Revise y envíe este artículo para reemplazar el antiguo." #: pan/gui/gui.cc:1386 pan/gui/gui.cc:1450 msgid "Be patient! It will take time for your changes to take effect." msgstr "Tenga paciencia. Llevará tiempo efectuar sus cambios." #: pan/gui/gui.cc:1411 msgid "Unable to cancel article." msgstr "No se puede cancelar el artículo." #: pan/gui/gui.cc:1449 msgid "Send this article to ask your server to cancel your other one." msgstr "Envíe este artículo para pedirle a su servidor que cancele el otro." #: pan/gui/gui.cc:1467 msgid "You have marked some articles for deletion." msgstr "Marcó algunos artículos para eliminarlos" #: pan/gui/gui.cc:1468 msgid "Are you sure you want to delete them?" msgstr "¿Está seguro de que quiere eliminarlos?" #: pan/gui/gui.cc:1494 msgid "Do you want to accept it permanently? (You can change this later.)" msgstr "¿Desea aceptarlo permanentemente? (luego se puede eliminar)" #: pan/gui/gui.cc:1640 msgid "Unable to open help file." msgstr "No se pudo abrir el archivo de ayuda." #: pan/gui/gui.cc:1668 msgid "Copyright © 2002-2021 Charles Kerr and others" msgstr "Copyright © 2002-2021 Charles Kerr y otros" #: pan/gui/gui.cc:1673 msgid "translator-credits" msgstr "" "Miguel Ángel Nieto , 2021\n" "Jorge González , 2007-2008\n" "Francisco Javier F. Serrador \n" "Nicolás Satragno , 2011-2012" #: pan/gui/gui.cc:1801 msgid "_1. Group Pane" msgstr "_1. Panel de grupo" #: pan/gui/gui.cc:1802 msgid "_2. Header Pane" msgstr "_2. Panel de la cabecera" #: pan/gui/gui.cc:1803 msgid "_3. Body Pane" msgstr "_3. Panel del cuerpo" #: pan/gui/gui.cc:1893 pan/gui/gui.cc:1908 msgid " Bytes" msgstr " Bytes" #: pan/gui/gui.cc:1896 msgid " KB" msgstr " KB" #: pan/gui/gui.cc:1899 msgid " MB" msgstr " MB" #: pan/gui/gui.cc:1902 msgid " GB" msgstr " GB" #: pan/gui/gui.cc:1905 msgid " TB" msgstr " TB" #: pan/gui/gui.cc:1937 #, c-format msgid "This article is complete with %d part." msgid_plural "This article has all %d parts." msgstr[0] "Este artículo está completo con %d parte." msgstr[1] "Este artículo tiene todas sus %d partes." #: pan/gui/gui.cc:1939 #, c-format msgid "This article is missing %d part." msgid_plural "This article is missing %d of its %d parts:" msgstr[0] "A este artículo le falta %d parte." msgstr[1] "A este artículo le faltan %d de sus %d partes:" #: pan/gui/gui.cc:1957 pan/gui/header-pane.cc:1308 pan/gui/task-pane.cc:799 msgid "Message-ID" msgstr "ID del mensaje" #: pan/gui/gui.cc:1958 pan/gui/header-pane.cc:1783 pan/gui/prefs-ui.cc:856 msgid "Lines" msgstr "Líneas" #: pan/gui/gui.cc:1958 msgid "Size" msgstr "Tamaño" #: pan/gui/gui.cc:1959 pan/gui/header-pane.cc:1799 pan/gui/prefs-ui.cc:854 msgid "Bytes" msgstr "Bytes" #: pan/gui/gui.cc:2009 msgid "" "Error loading iconv library. Encoding certain character sets will not work " "in GUI." msgstr "" "Error al cargar la biblioteca iconv. Algunos caracteres en la GUI no se " "podrán codificar." #: pan/gui/gui.cc:2155 msgid "Body Pane Encoding" msgstr "Codificación del panel del cuerpo" #: pan/gui/gui.cc:2186 pan/gui/task-pane.cc:613 msgid "Offline" msgstr "Desconectado" #: pan/gui/gui.cc:2190 #, c-format msgid "Closing %d connection" msgid_plural "Closing %d connections" msgstr[0] "Cerrando %d conexión" msgstr[1] "Cerrando %d conexiones" #: pan/gui/gui.cc:2192 pan/gui/gui.cc:2222 msgid "No Connections" msgstr "Sin conexiones" #: pan/gui/gui.cc:2196 msgid "Connecting" msgstr "Conectando" #: pan/gui/gui.cc:2209 #, c-format msgid "%s: %d idle, %d active @ %.1f KiBps" msgstr "%s: %d inactivos, %d activos @ %.1f KiBps" #: pan/gui/gui.cc:2265 msgid "No Tasks" msgstr "No hay tareas" #: pan/gui/gui.cc:2267 pan/gui/prefs-ui.cc:1094 msgid "Tasks" msgstr "Tareas" #: pan/gui/gui.cc:2284 pan/gui/task-pane.cc:479 #, c-format msgid "%lu tasks, %s, %.1f KiBps, ETA %d:%02d:%02d" msgstr "%lu tareas, %s, %.1f KiBps, TE %d:%02d:%02d" #: pan/gui/gui.cc:2336 msgid "" "Pan is now offline. Please see \"File|Event Log\" and correct the problem, " "then use \"File|Work Online\" to continue." msgstr "" "Pan está ahora desconectado. Vea «Archivo|Visor de sucesos» y corrija el " "problema, después use «Archivo|Trabajar conectado» para continuar" #: pan/gui/header-pane.cc:1304 pan/gui/task-pane.cc:795 msgid "Subject or Author" msgstr "Asunto o autor" #: pan/gui/header-pane.cc:1305 pan/gui/task-pane.cc:796 msgid "Sub or Auth (regex)" msgstr "Asunto o autor (exp-reg)" #: pan/gui/header-pane.cc:1307 pan/gui/header-pane.cc:1767 #: pan/gui/prefs-ui.cc:853 pan/gui/score-add-ui.cc:140 pan/gui/task-pane.cc:798 msgid "Author" msgstr "Autor" #: pan/gui/header-pane.cc:1752 pan/gui/prefs-ui.cc:857 msgid "Score" msgstr "Puntuación" #: pan/gui/log-ui.cc:105 msgid "Save Event List" msgstr "Guardar lista de sucesos" #: pan/gui/log-ui.cc:259 msgid "Pan: Events" msgstr "Pan: sucesos" #: pan/gui/log-ui.cc:318 msgid "Message" msgstr "Mensaje" #: pan/gui/pan.cc:369 msgid "Maximize" msgstr "Maximizar" #: pan/gui/pan.cc:422 msgid "An error has occurred!" msgstr "Ha ocurrido un error." #: pan/gui/pan.cc:434 msgid "New Articles!" msgstr "Artículos nuevos." #: pan/gui/pan.cc:435 msgid "" "There are new\n" "articles available." msgstr "" "Hay artículos\n" "nuevos disponibles." #: pan/gui/pan.cc:502 msgid "Toggle on/offline" msgstr "Conmutar en línea/desconectado" #: pan/gui/pan.cc:550 msgid "" "Thank you for trying Pan!\n" " \n" "To start newsreading, first Add a Server." msgstr "" "Gracias por probar Pan.\n" "\n" "Para empezar a leer noticias, primero añada un servidor." #: pan/gui/pan.cc:632 msgid "" "General Options\n" " -h, --help Show this usage information and exit.\n" " -v, --version Print release version and exit.\n" " --verbose Be verbose (in non-GUI mode).\n" " --debug Run in debug mode. Use --debug twice for verbose " "debug.\n" " --debug-ssl Run in TLS (aka SSL) debug mode.\n" "\n" "URL Options\n" " headers:group.name Download new headers for the specified " "newsgroup.\n" " news:message-id When specified together with --no-gui, dump\n" " the message-id article to standard output.\n" "\n" "NZB Batch Options\n" " --nzb file1 file2 ... Process NZB files in non-GUI mode.\n" " -o path, --output=path Path to save attachments listed in the NZB " "file(s).\n" " --no-gui Only show console output, not the download " "queue.\n" msgstr "" "Opciones generales\n" " -h, --help Mostrar esta página de uso y salir.\n" " -v, --version Mostrar el número de versión y salir.\n" " --verbose Modo detallado (en modo no gráfico).\n" " --debug Ejecutar en modo de depuración.\n" " --debug-ssl Ejecutar en modo de depuración TLS (SSL)\n" "\n" "Opciones de URL\n" " headers:group.name Descargar las cabeceras nuevas para el grupo de " "noticias especificado.\n" " news:message-id Si se especifica junto con --no-gui, volcar\n" " el message-id por la salida estándar.\n" "\n" "Opciones de lotes NZB\n" " -nzb archivo1 archivo2 Procesar archivos nzb sin ejecutar Pan " "completo.\n" " -o ruta, --output=ruta Ruta en la que guardar adjuntos listados en los " "archivos nzb.\n" " --no-gui Mostrar sólo la salida de la consola, no la cola " "de descarga.\n" #: pan/gui/pan.cc:966 msgid "Error: --no-gui used without nzb files or news:message-id." msgstr "Error: Se usó --no-gui sin archivos nzb o noticias:id-mensaje." #: pan/gui/pan.cc:970 #, c-format msgid "Pan %s started" msgstr "Pan %s iniciado" #: pan/gui/pan.cc:990 msgid "Please configure Pan's news servers before using it as an nzb client." msgstr "" "Configure los servidores de noticias de Pan antes de usarlo como un cliente " "nzb." #: pan/gui/pan.cc:1108 msgid "Pan notification" msgstr "Notificación de Pan" #: pan/gui/post-ui.cc:176 #, fuzzy, c-format #| msgid "Upload queue: %lu tasks, %ld KB (~ %.2f MB) total." msgid "Upload queue: %llu tasks, %ld KB (~ %.2f MB) total." msgstr "Cola de subida: %lu tareas, %ld KB (~ %.2f MB) total." #: pan/gui/post-ui.cc:282 pan/gui/post-ui.cc:313 #, c-format msgid "Error setting custom spellchecker: %s" msgstr "" "Ocurrió un error al establecer el corrector ortográfico personalizado: %s" #: pan/gui/post-ui.cc:286 pan/gui/post-ui.cc:294 pan/gui/post-ui.cc:317 #: pan/gui/post-ui.cc:325 #, c-format msgid "Error setting spellchecker: %s" msgstr "Ocurrió un error al establecer el corrector ortográfico: %s" # profile name label #: pan/gui/post-ui.cc:454 msgid "_Profile" msgstr "_Perfil" #: pan/gui/post-ui.cc:455 msgid "Set Editor" msgstr "Establecer editor" #: pan/gui/post-ui.cc:457 msgid "_Send Article" msgstr "_Enviar artículo" #: pan/gui/post-ui.cc:457 msgid "Send Article Now" msgstr "Enviar artículo ahora" #: pan/gui/post-ui.cc:458 msgid "_Send and Save Articles to NZB" msgstr "_Enviar y guardar artículos a NZB" #: pan/gui/post-ui.cc:458 msgid "Send and Save Articles to NZB" msgstr "Enviar y guardar artículos a NZB" #: pan/gui/post-ui.cc:459 msgid "Set Character _Encoding..." msgstr "Establecer la _codificación de caracteres…" #: pan/gui/post-ui.cc:460 msgid "Set Content _Transfer Encoding..." msgstr "Establecer la codificación de _transferencia de contenido…" #: pan/gui/post-ui.cc:461 msgid "Sa_ve Draft" msgstr "G_uardar borrador" #: pan/gui/post-ui.cc:461 msgid "Save as a Draft for Future Posting" msgstr "Guarda un borrador para publicarlo más tarde" #: pan/gui/post-ui.cc:462 msgid "_Open Draft..." msgstr "_Abrir borrador…" #: pan/gui/post-ui.cc:462 msgid "Open an Article Draft" msgstr "Abre un borrador de un artículo" #: pan/gui/post-ui.cc:467 msgid "_Rot13" msgstr "_Rot13" #: pan/gui/post-ui.cc:467 msgid "Rot13 Selected Text" msgstr "Cifrar con rot13 el texto seleccionado" #: pan/gui/post-ui.cc:468 msgid "Run _Editor" msgstr "Ejecutar _editor" #: pan/gui/post-ui.cc:468 msgid "Run Editor" msgstr "Ejecutar editor" #: pan/gui/post-ui.cc:470 msgid "Add _Files to Queue" msgstr "Añadir _archivos a la cola" #: pan/gui/post-ui.cc:470 msgid "Add Files to Queue" msgstr "Añadir archivos a la cola" #: pan/gui/post-ui.cc:485 pan/gui/post-ui.cc:486 msgid "Remove from Queue" msgstr "Quitar de la cola" #: pan/gui/post-ui.cc:490 pan/gui/post-ui.cc:491 msgid "Clear List" msgstr "Limpiar lista" #: pan/gui/post-ui.cc:495 pan/gui/post-ui.cc:496 msgid "Select Needed Parts" msgstr "Seleccionar las partes necesarias" #: pan/gui/post-ui.cc:500 pan/gui/post-ui.cc:501 pan/gui/task-pane.cc:681 #: pan/gui/task-pane.cc:682 msgid "Move Up" msgstr "Subir" #: pan/gui/post-ui.cc:505 pan/gui/post-ui.cc:506 pan/gui/task-pane.cc:686 #: pan/gui/task-pane.cc:687 msgid "Move Down" msgstr "Bajar" #: pan/gui/post-ui.cc:510 pan/gui/post-ui.cc:511 msgid "Move to Top" msgstr "Mover a la cima" #: pan/gui/post-ui.cc:515 pan/gui/post-ui.cc:516 msgid "Move to Bottom" msgstr "Mover al fondo" #: pan/gui/post-ui.cc:523 msgid "_Wrap Text" msgstr "_Ajustar texto" #: pan/gui/post-ui.cc:523 msgid "Wrap Text" msgstr "Ajustar texto" #: pan/gui/post-ui.cc:524 msgid "Always Run Editor" msgstr "Siempre ejecutar el editor" #: pan/gui/post-ui.cc:525 msgid "Remember Character Encoding for This Group" msgstr "Recordar el conjunto de caracteres para este grupo" #: pan/gui/post-ui.cc:526 msgid "Thread Attached Replies" msgstr "Anidar las respuestas adjuntas" #: pan/gui/post-ui.cc:527 msgid "PGP-Encrypt the Article" msgstr "Cifrar el mensaje con PGP" #: pan/gui/post-ui.cc:528 msgid "PGP-Sign the Article" msgstr "Firmar el mensaje con PGP" #: pan/gui/post-ui.cc:529 msgid "Check _Spelling" msgstr "Comprobar _ortografía" #: pan/gui/post-ui.cc:548 msgid "New Article's Encoding:" msgstr "Nueva codificación de los artículos:" #: pan/gui/post-ui.cc:558 msgid "Content Transfer Encoding" msgstr "Codificación de transferencia de contenido" #: pan/gui/post-ui.cc:559 msgid "New Article's Content Transfer Encoding:" msgstr "Codificación de transferencia de contenido de los nuevos artículos:" #: pan/gui/post-ui.cc:743 msgid "Your changes will be lost!" msgstr "Sus cambios se perderán" #: pan/gui/post-ui.cc:744 msgid "Close this window and lose your changes?" msgstr "¿Quiere cerrar esta ventana y perder sus cambios?" #: pan/gui/post-ui.cc:789 pan/gui/post-ui.cc:828 msgid "There were problems with this post." msgstr "Hubo problemas con esta publicación." #: pan/gui/post-ui.cc:791 pan/gui/post-ui.cc:830 pan/gui/post-ui.cc:895 msgid "Go Back" msgstr "Retroceder" #: pan/gui/post-ui.cc:793 msgid "Continue Anyway" msgstr "Continuar de todas formas" #. Prompt the user #: pan/gui/post-ui.cc:822 #, c-format msgid "" "Message uses characters not specified in charset '%s' - possibly use '%s' " msgstr "" "El mensaje usa caracteres no especificados en el conjunto de caracteres " "«%s», posiblemente usando «%s» " #: pan/gui/post-ui.cc:845 msgid "Go _Online" msgstr "_Conectarse" #: pan/gui/post-ui.cc:894 msgid "The file queue is empty, so no files can be saved." msgstr "" "La cola de archivos está vacía, por lo que no se pueden guardar archivos." #: pan/gui/post-ui.cc:1074 msgid "IO Error" msgstr "Error de E/S" #: pan/gui/post-ui.cc:1074 msgid "No space left on device" msgstr "No queda espacio en el dispositivo" #: pan/gui/post-ui.cc:1075 #, c-format msgid "Error copying message to %s folder. Reason: %s" msgstr "Error al copiar el mensaje a la carpeta %s. Motivo: %s" #: pan/gui/post-ui.cc:1081 #, c-format msgid "Error creating message in %s mail folder: Invalid article." msgstr "" "Error al crear el mensaje en la carpeta de correo %s: artículo no válido." #: pan/gui/post-ui.cc:1103 msgid "" "No posting server is set for this posting profile.\n" "Please edit the profile via Edit|Manage Posting Profiles." msgstr "" "No hay establecido ningún servidor de publicación para este perfil de " "publicación.\n" "Edite el perfil por medio de Editar → Gestionar perfiles de publicación." #: pan/gui/post-ui.cc:1108 msgid "" "The selected posting server is currently disabled. Please choose an " "appropriate alternative." msgstr "" "El servidor de publicación seleccionado está actualmente desactivado. Elija " "un servidor alternativo adecuado." #: pan/gui/post-ui.cc:1150 msgid "Pan is Offline." msgstr "Pan esta desconectado." #: pan/gui/post-ui.cc:1151 msgid "Go online to post the article?" msgstr "¿Conectarse para publicar este artículo?" #: pan/gui/post-ui.cc:1200 #, c-format msgid "" "Error signing/encrypting your message. Perhaps you misspelled your email " "address (%s)?" msgstr "" "Error al firmar/cifrar el mensaje. ¿La dirección de correo-e (%s) es " "correcta?" #: pan/gui/post-ui.cc:1350 msgid "Error opening temporary file" msgstr "Ocurrió un error al abrir el archivo temporal" #: pan/gui/post-ui.cc:1361 #, fuzzy, c-format #| msgid "Error opening temporary file" msgid "Error creating temporary file: %s" msgstr "Ocurrió un error al abrir el archivo temporal" #: pan/gui/post-ui.cc:1369 #, c-format msgid "Error writing article to temporary file: %s" msgstr "Ocurrió un error al escribir el articulo en el archivo temporal: %s" #: pan/gui/post-ui.cc:1442 msgid "Open Draft Article" msgstr "Abrir el borrador del artículo" #: pan/gui/post-ui.cc:1684 msgid "Save Draft Article" msgstr "Guardar borrador del artículo" #: pan/gui/post-ui.cc:1722 msgid "File already exists." msgstr "El archivo ya existe." #: pan/gui/post-ui.cc:1723 msgid "Overwrite it?" msgstr "¿Quiere sobrescribirlo?" #: pan/gui/post-ui.cc:1932 #, c-format msgid "Couldn't parse signature command \"%s\": %s" msgstr "No se ha podido analizar el comando de firma «%s»: %s" #: pan/gui/post-ui.cc:1968 msgid "Couldn't convert signature to UTF-8." msgstr "No se ha podido convertir la firma a UTF-8." #: pan/gui/post-ui.cc:2480 msgid "F_rom" msgstr "_De" #: pan/gui/post-ui.cc:2497 msgid "_Subject" msgstr "A_sunto" #: pan/gui/post-ui.cc:2510 msgid "_Newsgroups" msgstr "_Grupos" #: pan/gui/post-ui.cc:2524 msgid "Mail _To" msgstr "Enviar correo-e _a" #: pan/gui/post-ui.cc:2626 msgid "Delete from Queue" msgstr "Eliminar de la cola" #: pan/gui/post-ui.cc:2639 msgid "No." msgstr "No." #: pan/gui/post-ui.cc:2643 pan/gui/post-ui.cc:2735 pan/gui/post-ui.cc:2776 msgid "Filename" msgstr "Nombre de archivo" #: pan/gui/post-ui.cc:2645 msgid "Size (KB)" msgstr "Tamaño (KB)" #: pan/gui/post-ui.cc:2743 msgid "The current filename" msgstr "El nombre actual del archivo" #: pan/gui/post-ui.cc:2747 msgid "Subject Line" msgstr "Línea de asunto" #: pan/gui/post-ui.cc:2755 msgid "The current subject line" msgstr "La línea de asunto actual" #: pan/gui/post-ui.cc:2769 msgid "No. " msgstr "No. " #: pan/gui/post-ui.cc:2773 msgid "Enable/Disable" msgstr "Activar/Desactivar" #: pan/gui/post-ui.cc:2807 msgid "Follo_wup-To" msgstr "_Reenviar a" #. i18n: "poster" is a key used by many newsreaders. probably safest to keep this key in english. #: pan/gui/post-ui.cc:2816 msgid "" "The newsgroups where replies to your message should go. This is only needed " "if it differs from the \"Newsgroups\" header.\n" "\n" "To direct all replies to your email address, use \"Followup-To: poster\"" msgstr "" "Los grupos de noticias donde las respuestas a sus mensajes deben ir. Esto " "sólo es necesario si difiere de la cabecera «Grupos de noticias».\n" "\n" "Para redireccionar todas las respuestas a su dirección de correo " "electrónico, use «Reenviar a: poster»" #: pan/gui/post-ui.cc:2823 msgid "_Reply-To" msgstr "_Responder a" #: pan/gui/post-ui.cc:2831 msgid "" "The email account where mail replies to your posted message should go. This " "is only needed if it differs from the \"From\" header." msgstr "" "La cuenta de correo electrónico donde las respuestas a sus mensajes deben " "ir. Esto sólo es necesario si difiere de la cabecera «De»." #: pan/gui/post-ui.cc:2838 msgid "_Custom Headers" msgstr "_Cabeceras personalizadas" #: pan/gui/post-ui.cc:2862 msgid "Add \"_User-Agent\" header" msgstr "Añadir cabecera «_User-Agent»" #: pan/gui/post-ui.cc:2869 msgid "Add \"Message-_ID\" header" msgstr "Añadir cabecera «Message-_Id»" #: pan/gui/post-ui.cc:2997 msgid "Select Parts" msgstr "Seleccionar partes" #: pan/gui/post-ui.cc:3010 msgid "_Parts" msgstr "_Partes" #: pan/gui/post-ui.cc:3177 msgid "Post Article" msgstr "Publicar artículo" #: pan/gui/post-ui.cc:3198 msgid "_Message" msgstr "_Mensaje" #: pan/gui/post-ui.cc:3199 msgid "More _Headers" msgstr "Más _cabeceras" #: pan/gui/post-ui.cc:3200 msgid "File _Queue" msgstr "_Cola de archivos" #: pan/gui/post-ui.cc:3231 pan/gui/profiles-dialog.cc:490 #, no-c-format msgid "On %d, %n wrote:" msgstr "El %d, %n escribió:" #: pan/gui/post-ui.cc:3260 msgid "Add files to queue" msgstr "Añadir archivos a la cola" #: pan/gui/post-ui.cc:3336 msgid "Save Upload Queue as NZB File" msgstr "Guardar cola de subida en un archivo NZB" #: pan/gui/prefs.cc:366 #, c-format msgid "Couldn't parse %s color \"%s\"" msgstr "No se ha podido analizar el color %s «%s»" #: pan/gui/prefs-ui.cc:127 msgid "Grab Key" msgstr "Capturar tecla" #: pan/gui/prefs-ui.cc:133 #, c-format msgid "" "Press the combination of the keys\n" "you want to use for \"%s\"." msgstr "" "Pulse la combinación de teclas\n" "que quiere usar para «%s»." #: pan/gui/prefs-ui.cc:173 msgid "Edit Shortcut" msgstr "Editar atajo" #: pan/gui/prefs-ui.cc:235 msgid "Error: Shortcut key is invalid!" msgstr "Error: atajo no válido" #: pan/gui/prefs-ui.cc:251 msgid "Error: Shortcut key already exists!" msgstr "Error: el atajo ya existe" #: pan/gui/prefs-ui.cc:565 msgid "Show only icons" msgstr "Mostrar solo los iconos" #: pan/gui/prefs-ui.cc:566 msgid "Show only text" msgstr "Mostrar solo el texto" #: pan/gui/prefs-ui.cc:567 msgid "Show icons and text" msgstr "Mostrar iconos y texto" #: pan/gui/prefs-ui.cc:606 msgid "Use GNOME Preferences" msgstr "Usar las preferencias de GNOME" #: pan/gui/prefs-ui.cc:607 msgid "Use KDE Preferences" msgstr "Usar las preferencias de KDE" #: pan/gui/prefs-ui.cc:608 msgid "Use OS X Preferences" msgstr "Usar las preferencias de OS X" #: pan/gui/prefs-ui.cc:609 msgid "Use Windows Preferences" msgstr "Usar las preferencias de Windows" #: pan/gui/prefs-ui.cc:610 msgid "Custom Command:" msgstr "Comando personalizado:" #: pan/gui/prefs-ui.cc:662 msgid "Disabled" msgstr "Desactivado" #: pan/gui/prefs-ui.cc:663 msgid "Only new (score == 0)" msgstr "Sólo nuevos (puntuación == 0)" #: pan/gui/prefs-ui.cc:664 msgid "9999 or more" msgstr "9999 o más" #: pan/gui/prefs-ui.cc:665 msgid "5000 to 9998" msgstr "5000 a 9998" #: pan/gui/prefs-ui.cc:666 msgid "1 to 4999" msgstr "1 a 4999" #: pan/gui/prefs-ui.cc:667 msgid "-9998 to -1" msgstr "-9998 a -1" #: pan/gui/prefs-ui.cc:668 msgid "-9999 or less" msgstr "-9999 o menos" #: pan/gui/prefs-ui.cc:732 #, c-format msgid "Select default global character set. Current setting: %s." msgstr "" "Seleccionar el conjunto global de caracteres. Selección actual: " "%s." #: pan/gui/prefs-ui.cc:764 msgid "Global Character Set Settings" msgstr "Configuración global del conjunto de caracteres" #: pan/gui/prefs-ui.cc:858 pan/gui/task-pane.cc:1072 msgid "State" msgstr "Estado" #: pan/gui/prefs-ui.cc:892 msgid "Enabled" msgstr "Activado" #: pan/gui/prefs-ui.cc:896 msgid "Column Name" msgstr "Nombre de columna" #: pan/gui/prefs-ui.cc:934 msgid "Pan: Preferences" msgstr "Preferencias de Pan" #: pan/gui/prefs-ui.cc:949 msgid "Mouse" msgstr "Ratón" #: pan/gui/prefs-ui.cc:951 msgid "Single-click activates, rather than selects, _groups" msgstr "Una sola _pulsación activa, en lugar de seleccionar, grupos" #: pan/gui/prefs-ui.cc:953 msgid "Single-click activates, rather than selects, _articles" msgstr "Una sola pulsación activa, en lugar de seleccionar, _artículos" #: pan/gui/prefs-ui.cc:956 msgid "Groups" msgstr "Grupos" #: pan/gui/prefs-ui.cc:958 msgid "Get new headers in subscribed groups on _startup" msgstr "Obtener cabeceras en grupos suscritos al _iniciar" # download new headers #: pan/gui/prefs-ui.cc:960 msgid "Get new headers when _entering group" msgstr "Descargar cabeceras cuando se entre en un _grupo" #: pan/gui/prefs-ui.cc:962 msgid "Mark entire group _read when leaving group" msgstr "Marcar el grupo entero como _leído cuando deje un grupo" #: pan/gui/prefs-ui.cc:964 msgid "Mark entire group read before getting _new headers" msgstr "Marcar el grupo entero como _leído antes de obtener nuevas cabeceras" # download new headers #: pan/gui/prefs-ui.cc:966 msgid "E_xpand all threads when entering group" msgstr "_Expandir todas las conversaciones cuando ente en un grupo" #: pan/gui/prefs-ui.cc:971 msgid "Articles" msgstr "Artículos" #: pan/gui/prefs-ui.cc:973 msgid "Mark downloaded articles read" msgstr "Marcar artículos descargados como leídos" #: pan/gui/prefs-ui.cc:975 msgid "Space selects next article rather than next unread" msgstr "" "La barra espaciadora selecciona el siguiente artículo en lugar del siguiente " "no leído" #: pan/gui/prefs-ui.cc:977 msgid "Expand threads upon selection" msgstr "Expandir conversaciones al seleccionar" #: pan/gui/prefs-ui.cc:979 msgid "Always ask before deleting an article" msgstr "Preguntar siempre antes de eliminar un artículo" #: pan/gui/prefs-ui.cc:981 msgid "Smooth scrolling" msgstr "Desplazamiento suave" #: pan/gui/prefs-ui.cc:986 msgid "Article Cache" msgstr "Caché de artículos" #: pan/gui/prefs-ui.cc:987 msgid "Clear article cache on shutdown" msgstr "Limpiar la caché de artículos al salir" #: pan/gui/prefs-ui.cc:990 msgid "Size of article cache (in MiB):" msgstr "Tamaño de la caché del artículo (en MiB): " #: pan/gui/prefs-ui.cc:995 msgid "File extension for cached articles: " msgstr "Extensión de archivo para los artículos de la caché: " #: pan/gui/prefs-ui.cc:1000 msgid "Tabs" msgstr "Pestañas" #: pan/gui/prefs-ui.cc:1005 msgid "_Behavior" msgstr "Comportam_iento" #: pan/gui/prefs-ui.cc:1005 msgid "Behavior" msgstr "Comportamiento" #: pan/gui/prefs-ui.cc:1011 msgid "Task Pane" msgstr "Panel de tareas" #: pan/gui/prefs-ui.cc:1012 msgid "Show task pane popups" msgstr "Mostrar información emergente en el panel de tareas" #: pan/gui/prefs-ui.cc:1014 msgid "Show Download Meter" msgstr "Mostrar medidor de descarga" #: pan/gui/prefs-ui.cc:1018 msgid "_Panes" msgstr "_Paneles" #: pan/gui/prefs-ui.cc:1018 msgid "Panes" msgstr "Paneles" #: pan/gui/prefs-ui.cc:1024 msgid "Language Settings" msgstr "Ajustes del idioma" #. systray and notify popup #: pan/gui/prefs-ui.cc:1033 msgid "System Tray Behavior" msgstr "Comportamiento de la bandeja del sistema" #: pan/gui/prefs-ui.cc:1035 msgid "Minimize to tray" msgstr "Minimizar a la bandeja del sistema" #: pan/gui/prefs-ui.cc:1037 msgid "Start Pan minimized" msgstr "Iniciar Pan minimizado" #: pan/gui/prefs-ui.cc:1040 msgid "Show notifications" msgstr "Mostrar notificaciones" #. allow multiple instances (seperate, not communicating with dbus) #: pan/gui/prefs-ui.cc:1045 msgid "Startup Behavior" msgstr "Comportamiento al inicio" #: pan/gui/prefs-ui.cc:1047 msgid "Allow multiple instances of Pan" msgstr "Permitir varias instancias de Pan" #: pan/gui/prefs-ui.cc:1052 msgid "Autosave Article Draft" msgstr "Autoguardado del borrador del artículo" #: pan/gui/prefs-ui.cc:1054 msgid "Minutes to autosave the current Article Draft: " msgstr "Minutos para autoguardar el borrador del artículo actual: " #: pan/gui/prefs-ui.cc:1059 msgid "Autosave Articles" msgstr "Autoguardar artículos" #: pan/gui/prefs-ui.cc:1061 msgid "Minutes to autosave newsrc files: " msgstr "Minutos para autoguardar los archivos newsrc: " #: pan/gui/prefs-ui.cc:1068 msgid "Password Storage" msgstr "Almacenamiento de contraseñas" #: pan/gui/prefs-ui.cc:1069 msgid "Save passwords in password storage" msgstr "Guardar contraseñas en el almacenamiento de contraseñas" #: pan/gui/prefs-ui.cc:1073 msgid "_Miscellaneous" msgstr "_Miscelánea" #: pan/gui/prefs-ui.cc:1073 msgid "Miscellaneous" msgstr "Miscelánea" #: pan/gui/prefs-ui.cc:1078 msgid "Pane Layout" msgstr "Distribución de los paneles" #: pan/gui/prefs-ui.cc:1097 msgid "1=Groups, 2=Headers, 3=Body" msgstr "1=Grupos, 2=Cabeceras, 3=Cuerpo" #: pan/gui/prefs-ui.cc:1099 msgid "1=Groups, 2=Body, 3=Headers" msgstr "1=Grupos, 2=Cuerpo, 3=Cabeceras" #: pan/gui/prefs-ui.cc:1101 msgid "1=Headers, 2=Groups, 3=Body" msgstr "1=Cabeceras, 2=Grupos, 3=Cuerpo" #: pan/gui/prefs-ui.cc:1103 msgid "1=Headers, 2=Body, 3=Groups" msgstr "1=Cabeceras, 2=Cuerpo, 3=Grupos" #: pan/gui/prefs-ui.cc:1105 msgid "1=Body, 2=Groups, 3=Headers" msgstr "1=Cuerpo, 2=Grupos, 3=Cabeceras" #: pan/gui/prefs-ui.cc:1107 msgid "1=Body, 2=Headers, 3=Groups" msgstr "1=Cuerpo, 2=Cabeceras, 3=Grupos" #: pan/gui/prefs-ui.cc:1111 msgid "Layout" msgstr "Disposición" #: pan/gui/prefs-ui.cc:1116 msgid "Header Pane Columns" msgstr "Columnas del panel de la cabecera" #: pan/gui/prefs-ui.cc:1120 msgid "_Headers" msgstr "_Cabeceras" #: pan/gui/prefs-ui.cc:1120 msgid "Headers" msgstr "Cabeceras" #: pan/gui/prefs-ui.cc:1126 msgid "" "This menu lets you configure Pan to take certain actions on your behalf " "automatically, based on an article's score." msgstr "" "Este menú le permite configurar Pan para que tome determinadas acciones a su " "favor automáticamente, basadas en la puntuación de una publicación." #: pan/gui/prefs-ui.cc:1131 msgid "Mark affected articles read" msgstr "Marcar artículos afectados como leídos" #: pan/gui/prefs-ui.cc:1140 msgid "_Delete articles scoring at: " msgstr "_Eliminar publicaciones con puntuación: " #: pan/gui/prefs-ui.cc:1146 msgid "Mark articles read scoring at: " msgstr "Marcar como leídas las publicaciones con puntuación: " #: pan/gui/prefs-ui.cc:1152 msgid "_Cache articles scoring at: " msgstr "Poner en _caché publicaciones con puntuación: " #: pan/gui/prefs-ui.cc:1158 msgid "Download attachments of articles scoring at: " msgstr "Descargar adjuntos de publicaciones con puntuación: " #: pan/gui/prefs-ui.cc:1161 msgid "Actions" msgstr "Acciones" #: pan/gui/prefs-ui.cc:1166 pan/gui/prefs-ui.cc:1187 msgid "Fonts" msgstr "Tipografías" #: pan/gui/prefs-ui.cc:1168 msgid "Use custom font in Group Pane:" msgstr "Usar una tipografía personalizada en el panel de grupo:" #: pan/gui/prefs-ui.cc:1173 msgid "Use custom font in Header Pane:" msgstr "Usar una tipografía personalizada en el panel de la cabecera:" #: pan/gui/prefs-ui.cc:1178 msgid "Use custom font in Body Pane:" msgstr "Usar una tipografía personalizada en el panel del cuerpo:" #: pan/gui/prefs-ui.cc:1183 msgid "Monospace font:" msgstr "Tipografía monoespaciada:" #: pan/gui/prefs-ui.cc:1187 msgid "_Fonts" msgstr "_Tipografías" #: pan/gui/prefs-ui.cc:1196 msgid "Header Pane" msgstr "Panel de la cabecera" #: pan/gui/prefs-ui.cc:1199 pan/gui/prefs-ui.cc:1205 pan/gui/prefs-ui.cc:1211 #: pan/gui/prefs-ui.cc:1217 pan/gui/prefs-ui.cc:1223 pan/gui/prefs-ui.cc:1229 #: pan/gui/prefs-ui.cc:1238 pan/gui/prefs-ui.cc:1244 pan/gui/prefs-ui.cc:1250 #: pan/gui/prefs-ui.cc:1256 pan/gui/prefs-ui.cc:1262 pan/gui/prefs-ui.cc:1272 #: pan/gui/prefs-ui.cc:1282 msgid "Text:" msgstr "Texto:" #: pan/gui/prefs-ui.cc:1201 pan/gui/prefs-ui.cc:1207 pan/gui/prefs-ui.cc:1213 #: pan/gui/prefs-ui.cc:1219 pan/gui/prefs-ui.cc:1225 pan/gui/prefs-ui.cc:1231 #: pan/gui/prefs-ui.cc:1240 pan/gui/prefs-ui.cc:1246 pan/gui/prefs-ui.cc:1252 #: pan/gui/prefs-ui.cc:1258 pan/gui/prefs-ui.cc:1264 pan/gui/prefs-ui.cc:1274 #: pan/gui/prefs-ui.cc:1284 msgid "Background:" msgstr "Fondo:" #: pan/gui/prefs-ui.cc:1203 msgid "Scores of 9999 or more:" msgstr "Puntúa 9999 o más:" #: pan/gui/prefs-ui.cc:1209 msgid "Scores from 5000 to 9998:" msgstr "Puntúa 5000 a 9998:" #: pan/gui/prefs-ui.cc:1215 msgid "Scores from 1 to 4999:" msgstr "Puntúa de 1 a 4999:" #: pan/gui/prefs-ui.cc:1221 msgid "Scores from -9998 to -1:" msgstr "Puntúa de -9998 a -1:" #: pan/gui/prefs-ui.cc:1227 msgid "Scores of -9999 or less:" msgstr "Puntúa -9999 o menos:" #: pan/gui/prefs-ui.cc:1233 msgid "Collapsed thread with unread articles:" msgstr "Conversación contraída con artículos sin leer:" #: pan/gui/prefs-ui.cc:1235 msgid "Body Pane" msgstr "Panel del cuerpo" #: pan/gui/prefs-ui.cc:1242 msgid "First level of quoted text:" msgstr "Primer nivel de texto entrecomillado:" #: pan/gui/prefs-ui.cc:1248 msgid "Second level of quoted text:" msgstr "Segundo nivel de texto entrecomillado:" #: pan/gui/prefs-ui.cc:1254 msgid "Third level of quoted text:" msgstr "Tercer nivel de texto entrecomillado:" #. #: pan/gui/prefs-ui.cc:1260 msgid "URL:" msgstr "URL:" #. #: pan/gui/prefs-ui.cc:1266 msgid "Signature:" msgstr "Firma:" #: pan/gui/prefs-ui.cc:1269 msgid "Group Pane" msgstr "Panel de grupo" #. #: pan/gui/prefs-ui.cc:1276 msgid "Group Color:" msgstr "Color del grupo:" #: pan/gui/prefs-ui.cc:1280 msgid "Other Text" msgstr "Otro texto" #: pan/gui/prefs-ui.cc:1286 msgid "Text Color:" msgstr "Color del texto:" #: pan/gui/prefs-ui.cc:1289 msgid "_Colors" msgstr "_Colores" #: pan/gui/prefs-ui.cc:1289 msgid "Colors" msgstr "Colores" #: pan/gui/prefs-ui.cc:1294 msgid "Preferred Applications" msgstr "Aplicaciones preferidas" #: pan/gui/prefs-ui.cc:1298 msgid "_Web browser:" msgstr "_Navegador web_" #: pan/gui/prefs-ui.cc:1301 msgid "_Mail reader:" msgstr "_Lector de correo-e:" #: pan/gui/prefs-ui.cc:1303 msgid "_Text editor:" msgstr "Editor de _texto:" #: pan/gui/prefs-ui.cc:1305 msgid "_HTML previewer:" msgstr "Vista previa de _HTML:" #: pan/gui/prefs-ui.cc:1307 msgid "_Applications" msgstr "_Aplicaciones" #: pan/gui/prefs-ui.cc:1307 msgid "Applications" msgstr "Aplicaciones" #: pan/gui/prefs-ui.cc:1312 pan/gui/task-pane.cc:556 msgid "Encoding" msgstr "Codificando" #: pan/gui/prefs-ui.cc:1316 msgid "Default bytes per file (for encoder): " msgstr "Bytes por archivo predeterminados (para el codificador): " #: pan/gui/prefs-ui.cc:1321 msgid "_Upload" msgstr "_Subir" #: pan/gui/prefs-ui.cc:1321 msgid "Upload" msgstr "Subir" #: pan/gui/prefs-ui.cc:1330 msgid "_Shortcuts" msgstr "_Atajos" #: pan/gui/prefs-ui.cc:1330 msgid "Shortcuts" msgstr "Atajos" #: pan/gui/profiles-dialog.cc:83 msgid "Please choose your email address according to your PGP key's user id." msgstr "" "Escoja su dirección de correo-e de acuerdo a su ID de usuario de clave PGP." #: pan/gui/profiles-dialog.cc:131 msgid "Posting Profile" msgstr "Perfil de publicación" #: pan/gui/profiles-dialog.cc:143 msgid "Profile Information" msgstr "Información del perfil" # profile name label #: pan/gui/profiles-dialog.cc:147 msgid "_Profile Name:" msgstr "Nombre del _perfil:" #: pan/gui/profiles-dialog.cc:150 msgid "Required Information" msgstr "Información requerida" #: pan/gui/profiles-dialog.cc:154 msgid "_Full Name:" msgstr "Nombre co_mpleto:" #: pan/gui/profiles-dialog.cc:158 msgid "" "Your email address.\n" "Note that this has to match your PGP signature's address\n" "if you want your messages to be PGP-signed or encrypted correctly." msgstr "" "Su dirección de correo-e.\n" "Tenga en cuenta que debe coincidir con la dirección de su firma PGP\n" "si quiere firmar o cifrar con PGP sus mensajes correctamente." #: pan/gui/profiles-dialog.cc:162 msgid "_Email Address:" msgstr "Dirección de c_orreo-e:" #: pan/gui/profiles-dialog.cc:164 msgid "_Post Articles via:" msgstr "_Publicar artículos por medio de:" #: pan/gui/profiles-dialog.cc:167 msgid "Signature" msgstr "Firma" #: pan/gui/profiles-dialog.cc:170 msgid "_Use a Signature" msgstr "_Usar una firma" #: pan/gui/profiles-dialog.cc:174 msgid "Signature File" msgstr "Archivo de firma" #: pan/gui/profiles-dialog.cc:184 msgid "Text File" msgstr "Archivo de texto" #: pan/gui/profiles-dialog.cc:186 msgid "Text" msgstr "Texto" #: pan/gui/profiles-dialog.cc:188 msgid "Command" msgstr "Comando" #: pan/gui/profiles-dialog.cc:191 msgid "PGP Signature" msgstr "Firma PGP" #: pan/gui/profiles-dialog.cc:196 msgid "Signature Type: " msgstr "Tipo de firma: " #: pan/gui/profiles-dialog.cc:227 msgid "Avatars" msgstr "Avatares" #: pan/gui/profiles-dialog.cc:230 msgid "" "You can add an avatar icon to your articles with a Base64-encoded PNG.\n" "Add the Base64-encoded picture without the trailing “Face:”." msgstr "" "Puede añadir un icono de avatar a sus artículos con una imagen PNG " "codificada en Base64.\n" "Añada la imagen codificada en Base64 sin la cabecera \"X-Face:\"." #: pan/gui/profiles-dialog.cc:232 msgid "_Face:" msgstr "_Face:" #: pan/gui/profiles-dialog.cc:236 msgid "" "You can add an avatar icon to your articles with a unique X-Face code.\n" "Add the code without the trailing \"X-Face:\" \n" " if it was generated by a helper program (for example http://www.dairiki.org/" "xface/xface.php)." msgstr "" "Puede añadir un icono de avatar a sus artículos con un código X-Face único.\n" "Añada el código sin la cabecera \"X-Face:\"\n" "si lo generó por un programa asistente (por ejemplo, http://www.dairiki.org/" "xface/xface.php)." #: pan/gui/profiles-dialog.cc:239 msgid "_X-Face:" msgstr "_X-Face:" #: pan/gui/profiles-dialog.cc:241 msgid "Optional Information" msgstr "Información opcional" #: pan/gui/profiles-dialog.cc:246 msgid "" "When posting to Usenet, your article's Message-ID contains a domain name.\n" "You can set a custom domain name here, or leave it blank to let Pan use the " "domain name from your email address." msgstr "" "Cuando escriba en Usenet, los Message-ID de sus artículos contienen un " "nombre de dominio.\n" "Aquí puede establecer un nombre de dominio personalizado, o dejarlo vacío " "para que Pan use el nombre de dominio de su dirección de correo electrónico." #: pan/gui/profiles-dialog.cc:249 msgid "Message-ID _Domain Name:" msgstr "Nombre de _dominio para Message-ID:" #: pan/gui/profiles-dialog.cc:253 #, c-format msgid "" "%i for Message-ID\n" "%a for Author and Address\n" "%n for Author name\n" "%d for Date" msgstr "" "%i para el Message-ID\n" "%a para autor y dirección\n" "%n para nombre de author\n" "%d para fecha" #: pan/gui/profiles-dialog.cc:254 msgid "_Attribution:" msgstr "_Atributos:" #. Translators: Do not localize Reply-To and the quote marks in \"Your Name\". #: pan/gui/profiles-dialog.cc:279 msgid "" "Extra headers to be included in your articles, such as\n" "Reply-To: \"Your Name\" \n" "Organization: Your Organization\n" msgstr "" "Las cabeceras que incluir en sus publicaciones, tales como\n" "Reply-To: \"Su nombre\" \n" "Organization: Su organización\n" #: pan/gui/profiles-dialog.cc:289 msgid "E_xtra Headers:" msgstr "Cabeceras _adicionales:" #: pan/gui/profiles-dialog.cc:334 msgid "Invalid email address." msgstr "Dirección correo-e no válida." #: pan/gui/profiles-dialog.cc:335 msgid "Please use an address of the form joe@somewhere.org" msgstr "Debe usar una dirección de la forma joe@somewhere.org" #: pan/gui/profiles-dialog.cc:491 msgid "New Profile" msgstr "Perfil nuevo" #: pan/gui/profiles-dialog.cc:537 msgid "Posting Profiles" msgstr "Perfiles de publicación" # profile name label #: pan/gui/profiles-dialog.cc:553 msgid "Profiles" msgstr "Perfiles" #: pan/gui/save-attach-ui.cc:46 #, c-format msgid "" "%g - group as one directory (alt.binaries.pictures.trains)\n" "%G - group as nested directory (/alt/binaries/pictures/trains)\n" "%s - Subject line excerpt\n" "%S - Subject line\n" "%n - Poster display name\n" "%e - Poster email address\n" "%d - Article timestamp\n" "\"/home/user/News/Pan/%g\" becomes\n" "\"/home/user/News/Pan/alt.binaries.pictures.trains\", and\n" "\"/home/user/News/Pan/%G\" becomes\n" "\"/home/user/News/Pan/alt/binaries/pictures/trains\"," msgstr "" "%g: grupo como un directorio (alt.binaries.pictures.trains)\n" "%G: grupo como un directorio anidado (/alt/binaries/pictures/trains)\n" "%s: extracto de la línea de asunto\n" "%S: línea de asunto\n" "%n: mostrar nombre\n" "%e: mostrar dirección de correo-e\n" "%d: marca de tiempo del artículo\n" "«/home/usuario/News/Pan/%g» se convierte en\n" "«/home/usuario/News/Pan/alt.binaries.pictures.trains», y\n" "«/home/usuario/News/Pan/%G» se convierte en\n" "«/home/usuario/News/Pan/alt/binaries/pictures/trains»," #: pan/gui/save-attach-ui.cc:198 pan/gui/save-ui.cc:218 msgid "Add to the queue sorted by date posted" msgstr "Añadir a la cola ordenada por antigüedad" #: pan/gui/save-attach-ui.cc:199 pan/gui/save-ui.cc:219 msgid "Add to the front of the queue" msgstr "Añadir al principio de la cola" #: pan/gui/save-attach-ui.cc:200 pan/gui/save-ui.cc:220 msgid "Add to the back of the queue" msgstr "Añadir al final de la cola" #: pan/gui/save-attach-ui.cc:232 msgid "Pan: Save Attachments" msgstr "Pan: guardar los adjuntos" #: pan/gui/save-attach-ui.cc:257 pan/gui/save-attach-ui.cc:275 #: pan/gui/save-ui.cc:272 pan/gui/save-ui.cc:293 msgid "_Location:" msgstr "_Lugar:" #: pan/gui/save-attach-ui.cc:261 pan/gui/save-ui.cc:276 msgid "Save Articles" msgstr "Guardar artículos" #: pan/gui/save-attach-ui.cc:278 pan/gui/save-ui.cc:296 #, c-format msgid "_Group's path: %s" msgstr "Ruta del _grupo: %s" #: pan/gui/save-attach-ui.cc:289 pan/gui/save-ui.cc:311 msgid "_Priority:" msgstr "_Prioridad:" #: pan/gui/save-ui.cc:46 #, c-format msgid "" "%g - group as one directory (alt.binaries.pictures.trains)\n" "%G - group as nested directory (/alt/binaries/pictures/trains)\n" "%s - subject line excerpt\n" "%S - subject line\n" "%n - Poster display name\n" "%e - Poster email address\n" "%d - Article timestamp\n" " \n" "\"/home/user/News/Pan/%g\" becomes\n" "\"/home/user/News/Pan/alt.binaries.pictures.trains\", and\n" "\"/home/user/News/Pan/%G\" becomes\n" "\"/home/user/News/Pan/alt/binaries/pictures/trains\"," msgstr "" "%g: grupo como un directorio (alt.binaries.pictures.trains)\n" "%G: grupo como un directorio anidado (/alt/binaries/pictures/trains)\n" "%s: extracto de la línea de asunto\n" "%S: línea de asunto\n" "%n: mostrar nombre\n" "%e: mostrar dirección de correo-e\n" "%d: marca de tiempo del artículo\n" " \n" "«/home/usuario/News/Pan/%g» se convierte en\n" "«/home/usuario/News/Pan/alt.binaries.pictures.trains», y\n" "«/home/usuario/News/Pan/%G» se convierte en\n" "«/home/usuario/News/Pan/alt/binaries/pictures/trains»," #: pan/gui/save-ui.cc:209 msgid "Save attachments" msgstr "Guardar los adjuntos" #: pan/gui/save-ui.cc:210 msgid "Save text" msgstr "Guardar el texto" #: pan/gui/save-ui.cc:211 msgid "Save attachments and text" msgstr "Guardar los adjuntos y el texto" #: pan/gui/save-ui.cc:247 msgid "Pan: Save Articles" msgstr "Pan: Guardar artículos" #: pan/gui/save-ui.cc:307 msgid "_Action:" msgstr "_Acción:" #: pan/gui/score-add-ui.cc:89 msgid "is more than" msgstr "es más que" #: pan/gui/score-add-ui.cc:90 msgid "is at most" msgstr "es como mucho" #: pan/gui/score-add-ui.cc:112 msgid "increase the article's score by" msgstr "incrementar la puntuación del artículo en" #: pan/gui/score-add-ui.cc:113 msgid "decrease the article's score by" msgstr "reducir la puntuación del artículo en" #: pan/gui/score-add-ui.cc:114 msgid "set the article's score to" msgstr "definir la puntuación del artículo como" #: pan/gui/score-add-ui.cc:115 msgid "watch the article (set its score to 9999)" msgstr "vigilar el artículo (colocar una puntuación de 9999)" #: pan/gui/score-add-ui.cc:116 msgid "ignore the article (set its score to -9999)" msgstr "Ignorar (colocar una puntuación de -9999)" #: pan/gui/score-add-ui.cc:141 msgid "References" msgstr "Referencias" #: pan/gui/score-add-ui.cc:142 msgid "Line Count" msgstr "Conteo de líneas" #: pan/gui/score-add-ui.cc:143 msgid "Byte Count" msgstr "Conteo de bytes" #: pan/gui/score-add-ui.cc:144 msgid "Crosspost Group Count" msgstr "Conteo de publicaciones cruzadas" #: pan/gui/score-add-ui.cc:145 msgid "Age (in days)" msgstr "Antigüedad (en días)" #: pan/gui/score-add-ui.cc:167 msgid "for the next month" msgstr "para el mes siguiente" #: pan/gui/score-add-ui.cc:168 msgid "for the next six months" msgstr "para los siguientes seis meses" #: pan/gui/score-add-ui.cc:169 msgid "forever" msgstr "para siempre" #: pan/gui/score-add-ui.cc:194 msgid "contains" msgstr "contiene" #: pan/gui/score-add-ui.cc:195 msgid "doesn't contain" msgstr "no contiene" #: pan/gui/score-add-ui.cc:196 msgid "is" msgstr "es" #: pan/gui/score-add-ui.cc:197 msgid "isn't" msgstr "no es" #: pan/gui/score-add-ui.cc:198 msgid "starts with" msgstr "comienza con" #: pan/gui/score-add-ui.cc:199 msgid "ends with" msgstr "termina con" #: pan/gui/score-add-ui.cc:200 msgid "matches regex" msgstr "coincide con la expresión regular" #: pan/gui/score-add-ui.cc:481 msgid "Another rule already sets this article's score." msgstr "Otra regla ya establece la puntuación de este artículo." #: pan/gui/score-add-ui.cc:482 msgid "You may want to go back or delete the old rule." msgstr "Quizá quiera deshacer o eliminar la regla antigua." #: pan/gui/score-add-ui.cc:484 #, fuzzy #| msgid "Go Back" msgid "Back" msgstr "Retroceder" #: pan/gui/score-add-ui.cc:485 pan/gui/task-pane.cc:1045 #, fuzzy #| msgid "Delete Task" msgid "Delete" msgstr "Eliminar tarea" #: pan/gui/score-add-ui.cc:486 pan/gui/score-add-ui.cc:607 #: pan/gui/score-view-ui.cc:208 msgid "Add" msgstr "Añadir" #: pan/gui/score-add-ui.cc:553 msgid "Add and Re_score" msgstr "Añadir y _volver a puntuar" #: pan/gui/score-add-ui.cc:602 pan/gui/score-add-ui.cc:622 msgid "New Scoring Rule" msgstr "Regla de puntuación nueva" #: pan/gui/score-add-ui.cc:606 pan/gui/task-pane.cc:310 msgid "Cancel" msgstr "" #: pan/gui/score-add-ui.cc:633 msgid "Group name" msgstr "Nombre del grupo" #: pan/gui/score-add-ui.cc:640 msgid "and" msgstr "y" #: pan/gui/score-view-ui.cc:56 msgid "Close and Re_score" msgstr "Ce_rrar y volver a puntuar" #: pan/gui/score-view-ui.cc:154 #, c-format msgid "File %s, Lines %d - %d" msgstr "Archivo %s, líneas %d - %d" #: pan/gui/score-view-ui.cc:182 msgid "Pan: Article's Scores" msgstr "Pan: puntuaciones del artículo" #: pan/gui/score-view-ui.cc:213 msgid "New Score" msgstr "Puntuación nueva" #: pan/gui/score-view-ui.cc:218 msgid "Criteria" msgstr "Criterio" #: pan/gui/score-view-ui.cc:241 msgid "Add a New Scoring Rule" msgstr "Añadir una puntuación nuevaU" #: pan/gui/score-view-ui.cc:248 msgid "Remove the Selected Scoring Rule" msgstr "Quitar la regla de puntuación seleccionada" #: pan/gui/server-ui.cc:284 msgid "Please specify the server's address." msgstr "Especifique la dirección del servidor." #: pan/gui/server-ui.cc:330 msgid "Import SSL Certificate (PEM Format) From File" msgstr "Importar certificado SSL (formato PEM) desde un archivo" #. create the dialog #: pan/gui/server-ui.cc:367 pan/gui/server-ui.cc:982 msgid "Add a Server" msgstr "Añadir un servidor" #: pan/gui/server-ui.cc:367 pan/gui/server-ui.cc:988 msgid "Edit a Server's Settings" msgstr "Editar la configuración de un servidor" #: pan/gui/server-ui.cc:387 msgid "Location" msgstr "Lugar" #: pan/gui/server-ui.cc:391 msgid "The news server's actual address, e.g. \"news.mynewsserver.com\"." msgstr "" "La dirección actual del servidor de noticias, por ej. «news.mynewsserver.com»" #: pan/gui/server-ui.cc:392 msgid "_Address:" msgstr "_Dirección:" #: pan/gui/server-ui.cc:397 msgid "" "The news server's port number. Typically 119 for unencrypted and 563 for " "encrypted connections (SSL/TLS)." msgstr "" "El puerto del servidor de noticias. Generalmente es 119 para conexiones no " "cifradas y 563 para conexiones cifradas (SSL/TLS)." #: pan/gui/server-ui.cc:398 msgid "Por_t:" msgstr "Puer_to:" #: pan/gui/server-ui.cc:401 msgid "Login (if Required)" msgstr "Inicio de sesión (si se requiere)" #: pan/gui/server-ui.cc:405 msgid "_Username:" msgstr "_Usuario:" #: pan/gui/server-ui.cc:406 msgid "" "The username to give the server when asked. If your server doesn't require " "authentication, you can leave this blank." msgstr "" "El usuario que dar al servidor cuando pregunte. Si su servidor no requiere " "autenticación, puede dejar esto en blanco." #: pan/gui/server-ui.cc:410 msgid "_Password:" msgstr "C_ontraseña:" #: pan/gui/server-ui.cc:411 msgid "" "The password to give the server when asked. If your server doesn't require " "authentication, you can leave this blank." msgstr "" "La contraseña que dar al servidor cuando pregunte. Si su servidor no " "requiere autenticación, puede dejar esto en blanco." #: pan/gui/server-ui.cc:414 msgid "Settings" msgstr "Ajustes" #: pan/gui/server-ui.cc:421 msgid "Connection _Limit:" msgstr "_Límite de conexiones:" #: pan/gui/server-ui.cc:425 msgid "After Two Weeks" msgstr "Tras dos semanas" #: pan/gui/server-ui.cc:426 msgid "After One Month" msgstr "Tras un mes" #: pan/gui/server-ui.cc:427 msgid "After Two Months" msgstr "Tras dos meses" #: pan/gui/server-ui.cc:428 msgid "After Three Months" msgstr "Tras tres meses" #: pan/gui/server-ui.cc:429 msgid "After Six Months" msgstr "Tras seis meses" #: pan/gui/server-ui.cc:430 msgid "Never Expire Old Articles" msgstr "Nunca caducar los artículos antiguos" #: pan/gui/server-ui.cc:444 msgid "E_xpire Old Articles:" msgstr "Ca_ducar artículos antiguos:" #: pan/gui/server-ui.cc:448 msgid "Primary" msgstr "Primario" #: pan/gui/server-ui.cc:449 msgid "Fallback" msgstr "Reserva" #: pan/gui/server-ui.cc:463 msgid "Server Rank:" msgstr "Rango de servidores:" #: pan/gui/server-ui.cc:467 msgid "" "Fallback servers are used for articles that can't be found on the " "primaries. One common approach is to use free servers as primaries and " "subscription servers as fallbacks." msgstr "" "Los servidores de reserva se usan para los artículos que no se pueden " "encontrar en los primarios. Una aproximación común es usar servidores " "gratuitos como primarios y servidores de suscripción como de reserva." #: pan/gui/server-ui.cc:472 msgid "Disable Compression (N/A)" msgstr "Desactivar compresión (N/D)" #: pan/gui/server-ui.cc:473 msgid "XZVER Compression (Astraweb)" msgstr "Compresión XZVER (Astraweb)" #: pan/gui/server-ui.cc:474 msgid "GZIP Compression (Giganews etc.)" msgstr "Compresión GZIP (Giganews etc.)" #: pan/gui/server-ui.cc:488 msgid "Header Compression:" msgstr "Compresión de las cabeceras:" #: pan/gui/server-ui.cc:494 msgid "Security" msgstr "Seguridad" #: pan/gui/server-ui.cc:499 msgid "Use Unsecure (Plaintext) Connections" msgstr "Usar conexiones de texto plano (no seguras)" #: pan/gui/server-ui.cc:500 msgid "Use Secure SSL Connections" msgstr "Usar conexiones SSL seguras" #: pan/gui/server-ui.cc:515 msgid "TLS (SSL) Settings:" msgstr "Opciones de TLS (SSL):" #: pan/gui/server-ui.cc:520 msgid "" "You can enable/disable secure SSL/TLS connections here. If you enable SSL/" "TLS, your data is encrypted and secure. It is encouraged to enable SSL/TLS " "for privacy reasons." msgstr "" "Puede establecer la opción para activar/desactivar las conexiones seguras " "SSL/TLS aquí. Si activa SSL/TLS, sus datos se cifran de forma segura. Se " "recomienda usar esta opción por razones de privacidad." #: pan/gui/server-ui.cc:525 msgid "Always trust this server's certificate" msgstr "Confiar siempre en el certificado de este servidor" #: pan/gui/server-ui.cc:710 #, c-format msgid "Really delete \"%s\"?" msgstr "¿Realmente quiere eliminar «%s»?" #: pan/gui/server-ui.cc:799 msgid "No information available." msgstr "No hay información disponible." #: pan/gui/server-ui.cc:809 #, c-format msgid "Server Certificate for '%s'" msgstr "Certificado del servidor para «%s»" #: pan/gui/server-ui.cc:908 #, c-format msgid "Really delete certificate for \"%s\"?" msgstr "¿Realmente quiere eliminar el certificado para «%s»?" #. dialog #: pan/gui/server-ui.cc:935 pan/gui/server-ui.cc:956 pan/gui/server-ui.cc:1054 msgid "Servers" msgstr "Servidores" #: pan/gui/server-ui.cc:995 msgid "Remove a Server" msgstr "Quitar un servidor" #. dialog #: pan/gui/server-ui.cc:1028 msgid "SSL Certificates" msgstr "Certificados SSL" #: pan/gui/server-ui.cc:1049 msgid "Certificates" msgstr "Certificados" #: pan/gui/server-ui.cc:1080 msgid "Import Certificate" msgstr "Importar certificado" #: pan/gui/server-ui.cc:1086 msgid "Inspect Certificate" msgstr "Inspeccionar certificado" #: pan/gui/server-ui.cc:1093 msgid "Remove Certificate" msgstr "Quitar certficado" #: pan/gui/task-pane.cc:125 #, c-format msgid "" "\n" "Upload\n" "\n" "Subject: \"%s\"\n" "From: %s\n" "Groups: %s\n" "Sourcefile: %s\n" msgstr "" "\n" "Subir\n" "\n" "Asunto: «%s»\n" "De: %s\n" "Grupos: %s\n" "Archivo fuente: %s\n" #: pan/gui/task-pane.cc:137 #, c-format msgid "" "\n" "Download\n" "\n" "Subject: \"%s\"\n" "From: %s\n" "Date: %s\n" "Groups: %s\n" "Save Path: %s\n" msgstr "" "\n" "Descargar\n" "\n" "Asunto: «%s»\n" "De: %s\n" "Fecha: %s\n" "Grupos: %s\n" "Guardar ruta: %s\n" #: pan/gui/task-pane.cc:139 msgid "unknown" msgstr "desconocido" #: pan/gui/task-pane.cc:307 msgid "Choose New Destination for Selected Tasks" msgstr "Elegir el destino nuevo para las tareas seleccionadas" #: pan/gui/task-pane.cc:311 #, fuzzy #| msgid "Save text" msgid "Save" msgstr "Guardar el texto" #: pan/gui/task-pane.cc:461 #, c-format msgid "Pan: Tasks (%d Queued, %d Running, %d Stopped)" msgstr "Pan: tareas (%d en cola %d ejecutándose, %d detenidas)" #: pan/gui/task-pane.cc:463 #, c-format msgid "Pan: Tasks (%d Queued, %d Running)" msgstr "Pan: tareas (%d en cola, %d ejecutándose)" #: pan/gui/task-pane.cc:465 msgid "Pan: Tasks" msgstr "Pan: tareas" #: pan/gui/task-pane.cc:490 #, c-format msgid "%lu selected, %s" msgstr "%lu seleccionados, %s" #: pan/gui/task-pane.cc:554 msgid "Running" msgstr "Ejecutándose" #: pan/gui/task-pane.cc:555 msgid "Decoding" msgstr "Decodificándose" #: pan/gui/task-pane.cc:557 msgid "Queued for Decode" msgstr "Encolada para decodificar" #: pan/gui/task-pane.cc:558 msgid "Queued for Encode" msgstr "Encolada para codificar" #: pan/gui/task-pane.cc:559 msgid "Queued" msgstr "Encolada" #: pan/gui/task-pane.cc:560 msgid "Stopped" msgstr "Detenida" #: pan/gui/task-pane.cc:561 msgid "Removing" msgstr "Quitando" #: pan/gui/task-pane.cc:590 #, c-format msgid "%d%% Done" msgstr "%d%% Terminado" #: pan/gui/task-pane.cc:596 #, c-format msgid "%d:%02d:%02d Remaining (%d @ %lu KiB/s)" msgstr "%d:%02d:%02d restantes (%d @ %lu KiB/s)" #: pan/gui/task-pane.cc:691 pan/gui/task-pane.cc:692 msgid "Move To Top" msgstr "Mover arriba" #: pan/gui/task-pane.cc:696 pan/gui/task-pane.cc:697 msgid "Move To Bottom" msgstr "Mover abajo" #: pan/gui/task-pane.cc:701 pan/gui/task-pane.cc:702 msgid "Show Task Information" msgstr "Mostrar información de la tarea" #: pan/gui/task-pane.cc:706 pan/gui/task-pane.cc:707 msgid "Stop Task" msgstr "Detener tarea" #: pan/gui/task-pane.cc:711 pan/gui/task-pane.cc:712 msgid "Delete Task" msgstr "Eliminar tarea" #: pan/gui/task-pane.cc:716 pan/gui/task-pane.cc:717 msgid "Restart Task" msgstr "Reiniciar tarea" #: pan/gui/task-pane.cc:721 pan/gui/task-pane.cc:722 msgid "Change Download Destination" msgstr "Cambiar el destino de la descarga" #: pan/gui/task-pane.cc:1021 msgid "_Online" msgstr "_Conectarse" #: pan/gui/task-pane.cc:1031 #, fuzzy #| msgid "Move Up" msgid "Move up" msgstr "Subir" #: pan/gui/task-pane.cc:1032 #, fuzzy #| msgid "Move to Top" msgid "Move task up" msgstr "Mover a la cima" #: pan/gui/task-pane.cc:1033 #, fuzzy #| msgid "Move to Top" msgid "Move to top" msgstr "Mover a la cima" #: pan/gui/task-pane.cc:1034 msgid "Move task to top of the download queue" msgstr "" #: pan/gui/task-pane.cc:1036 #, fuzzy #| msgid "Move Down" msgid "Move down" msgstr "Bajar" #: pan/gui/task-pane.cc:1037 #, fuzzy #| msgid "Move Down" msgid "Move task down" msgstr "Bajar" #: pan/gui/task-pane.cc:1038 #, fuzzy #| msgid "Move to Bottom" msgid "Move to bottom" msgstr "Mover al fondo" #: pan/gui/task-pane.cc:1039 #, fuzzy #| msgid "Add to the front of the queue" msgid "Move task to the bottom of the download queue" msgstr "Añadir al principio de la cola" #: pan/gui/task-pane.cc:1041 #, fuzzy #| msgid "Restart Task" msgid "Restart" msgstr "Reiniciar tarea" #: pan/gui/task-pane.cc:1042 msgid "Restart Tasks" msgstr "Reiniciar tareas" #: pan/gui/task-pane.cc:1043 #, fuzzy #| msgid "Stopped" msgid "Stop" msgstr "Detenida" #: pan/gui/task-pane.cc:1044 msgid "Stop Tasks" msgstr "Detener tareas" #: pan/gui/task-pane.cc:1046 msgid "Delete Tasks" msgstr "Eliminar tareas" #: pan/gui/task-pane.cc:1048 msgid "Close" msgstr "" #: pan/gui/task-pane.cc:1052 msgid "Show popups" msgstr "Mostrar ventanas emergentes" #: pan/gui/url.cc:121 #, c-format msgid "Error starting URL: %s (Command was: %s)" msgstr "Ocurrió un error al iniciar la URL: %s (El comando fue: %s)" #: pan/tasks/decoder.cc:126 #, c-format msgid "Couldn't save file \"%s\": %s" msgstr "No se ha podido guardar el archivo «%s»: %s" #: pan/tasks/decoder.cc:148 pan/tasks/encoder.cc:146 msgid "Error initializing uulib" msgstr "Error al iniciar uulib" #: pan/tasks/decoder.cc:168 pan/tasks/socket-impl-gio.cc:360 #: pan/tasks/socket-impl-openssl.cc:641 #, c-format msgid "Error reading from %s: %s" msgstr "Error al leer desde %s: %s" #: pan/tasks/decoder.cc:208 #, c-format msgid "Saved \"%s\"" msgstr "«%s» guardado" #: pan/tasks/decoder.cc:215 #, c-format msgid "" "Error saving \"%s\":\n" "%s." msgstr "" "Error al guardar «%s»:\n" "%s." #: pan/tasks/decoder.cc:328 pan/tasks/task-article.cc:351 #, c-format msgid "Decoding %s" msgstr "Decodificando %s" #: pan/tasks/encoder.cc:113 pan/tasks/encoder.cc:164 #, c-format msgid "Error loading %s from cache." msgstr "Error al cargar %s desde la caché." #: pan/tasks/encoder.cc:186 #, c-format msgid "Error encoding %s: %s" msgstr "Error al codificar %s: %s" #: pan/tasks/encoder.cc:276 #, c-format msgid "Encoding %s" msgstr "Codificando %s" #: pan/tasks/nntp.cc:176 #, c-format msgid "%s requires a username, but none is set." msgstr "%s requiere un nombre de usuario, pero no se ha establecido ninguno." #: pan/tasks/nntp.cc:189 #, c-format msgid "%s requires a password, but none is set." msgstr "%s requiere una contraseña, pero no se ha establecido niguna." #: pan/tasks/nntp.cc:275 #, c-format msgid "Sending \"%s\" to %s returned an error: %s" msgstr "El envío «%s» a %s devolvió un error: %s" #: pan/tasks/nntp.cc:298 #, c-format msgid "Sending \"%s\" to %s returned an unrecognized response: \"%s\"" msgstr "El envío «%s» a %s devolvió una respuesta no reconocida: «%s»" #: pan/tasks/nntp-pool.cc:235 #, c-format msgid "Unable to connect to \"%s\"" msgstr "No se pudo conectar a «%s»" #: pan/tasks/queue.cc:778 pan/tasks/queue.cc:806 pan/tasks/queue.cc:833 msgid "No space left on device." msgstr "No queda espacio en el dispositivo." #: pan/tasks/socket-impl-gio.cc:173 pan/tasks/socket-impl-gio.cc:211 #: pan/tasks/socket-impl-openssl.cc:213 pan/tasks/socket-impl-openssl.cc:251 #, c-format msgid "Error connecting to \"%s\"" msgstr "Error al conectar a «%s»" #: pan/tasks/socket-impl-gio.cc:359 pan/tasks/socket-impl-openssl.cc:640 msgid "Unknown Error" msgstr "Error desconocido" #: pan/tasks/task-article.cc:59 pan/tasks/task-article.cc:157 #, c-format msgid "Saving %s" msgstr "Guardando %s" #: pan/tasks/task-article.cc:61 #, c-format msgid "Reading %s" msgstr "Leyendo %s" #: pan/tasks/task-article.cc:323 #, c-format msgid "Article \"%s\" is incomplete -- the news server(s) don't have part %s" msgstr "" "El artículo «%s» está incompleto -- los servidores de noticias no tienen la " "parte %s" #: pan/tasks/task-groups.cc:41 #, c-format msgid "Getting group list from \"%s\"" msgstr "Obteniendo lista de grupos del servidor «%s»" #: pan/tasks/task-groups.cc:134 #, c-format msgid "Fetched %lu Groups" msgstr "Se obtuvieron %lu grupos" #: pan/tasks/task-post.cc:33 #, c-format msgid "Posting \"%s\"" msgstr "Publicando «%s»" #: pan/tasks/task-post.cc:74 #, c-format msgid "Posting of \"%s\" failed: %s" msgstr "Falló la publicación de «%s»: %s" #: pan/tasks/task-post.cc:79 #, c-format msgid "Posting of \"%s\" successful: %s" msgstr "Publicación de %s finalizó con éxito: %s" #: pan/tasks/task-upload.cc:55 #, c-format msgid "Uploading %s" msgstr "Subiendo %s" #: pan/tasks/task-upload.cc:249 #, c-format msgid "Uploading %s - Part %d of %d" msgstr "Subiendo %s: parte %d de %d" #: pan/tasks/task-upload.cc:251 #, c-format msgid "Uploading message body with subject \"%s\"" msgstr "Subiendo cuerpo del mensaje con asunto «%s»" #: pan/tasks/task-upload.cc:308 #, c-format msgid "Posting of file %s (part %d of %d) failed: No posts allowed by server." msgstr "" "Falló la publicación del archivo %s (parte %d de %d): el servidor no permite " "publicaciones." #: pan/tasks/task-upload.cc:317 #, c-format msgid "Posting of file %s (part %d of %d) failed: %s" msgstr "Falló la publicación del archivo %s (parte %d de %d): %s" #: pan/tasks/task-upload.cc:328 pan/tasks/task-upload.cc:335 #, c-format msgid "Posting of file %s (part %d of %d) successful: %s" msgstr "Publicación del archivo %s (parte %d de %d) con éxito: %s" #: pan/tasks/task-upload.cc:345 #, c-format msgid "Posting of file %s successful: %s" msgstr "Publicación del archivo %s con éxito: %s" #: pan/tasks/task-upload.cc:349 #, c-format msgid "" "Posting of file %s not completely successful: Check the log (right-click " "list item)." msgstr "" "Error parcial al publicar el archivo %s: compruebe el registro (botón " "derecho sobre el elemento de la lista)." #: pan/tasks/task-upload.cc:368 #, c-format msgid "" "Posting of file %s not successful: Check the log (right-click list item)." msgstr "" "Error al publicar el archivo %s: compruebe el registro (botón derecho sobre " "el elemento de la lista)." #: pan/tasks/task-xover.cc:82 #, c-format msgid "Getting all headers for \"%s\"" msgstr "Obteniendo todas las cabeceras para «%s»" #: pan/tasks/task-xover.cc:85 #, c-format msgid "Getting new headers for \"%s\"" msgstr "Obteniendo cabeceras nuevas para «%s»" #. SAMPLE #: pan/tasks/task-xover.cc:89 #, c-format msgid "Sampling headers for \"%s\"" msgstr "Mostrando cabeceras para «%s»" #: pan/tasks/task-xover.cc:454 #, c-format msgid "%s (%lu parts, %lu articles)" msgstr "%s (%lu partes, %lu artículos)" #: pan/tasks/task-xover.cc:528 #, c-format msgid "Getting new headers for \"%s\" done." msgstr "Se terminó de obtener las cabeceras nuevas para «%s»." #: pan/usenet-utils/filter-info.cc:215 msgid "article doesn't have attachments" msgstr "el artículo no tiene adjuntos" #: pan/usenet-utils/filter-info.cc:219 msgid "the article has attachments" msgstr "el artículo tiene adjuntos" #: pan/usenet-utils/filter-info.cc:223 msgid "the article isn't cached locally" msgstr "el artículo está en la memoria caché local" #: pan/usenet-utils/filter-info.cc:227 msgid "the article is cached locally" msgstr "el artículo está en la memoria caché local" #: pan/usenet-utils/filter-info.cc:231 msgid "the article wasn't posted by you" msgstr "el artículo no lo publicó usted" #: pan/usenet-utils/filter-info.cc:235 msgid "the article was posted by you" msgstr "el artículo lo publicó usted" #: pan/usenet-utils/filter-info.cc:239 msgid "the article has been read" msgstr "el artículo se ha leído" #: pan/usenet-utils/filter-info.cc:243 msgid "the article hasn't been read" msgstr "el artículo no se ha leído" #: pan/usenet-utils/filter-info.cc:247 #, c-format msgid "the article is less than %ld bytes long" msgstr "el artículo tiene menos de %ld bytes" #: pan/usenet-utils/filter-info.cc:252 #, c-format msgid "the article is at least %ld bytes long" msgstr "el artículo tiene al menos %ld bytes" #: pan/usenet-utils/filter-info.cc:257 #, c-format msgid "the article is less than %ld lines long" msgstr "el artículo tiene menos de %ld líneas" #: pan/usenet-utils/filter-info.cc:262 #, c-format msgid "the article is at least %ld lines long" msgstr "el artículo tiene al menos %ld líneas" #: pan/usenet-utils/filter-info.cc:267 #, c-format msgid "the article is less than %ld days old" msgstr "el artículo es tiene menos de %ld días" #: pan/usenet-utils/filter-info.cc:272 #, c-format msgid "the article is at least %ld days old" msgstr "el artículo tiene al menos %ld días de antigüedad" #: pan/usenet-utils/filter-info.cc:277 #, c-format msgid "the article was posted to less than %ld groups" msgstr "el artículo está publicado en menos de %ld grupos" #: pan/usenet-utils/filter-info.cc:282 #, c-format msgid "the article was posted to at least %ld groups" msgstr "el artículo se publicó en al menos %ld grupos" #: pan/usenet-utils/filter-info.cc:287 #, c-format msgid "the article's score is less than %ld" msgstr "la puntuación del artículo es menor que %ld" #: pan/usenet-utils/filter-info.cc:292 #, c-format msgid "the article's score is %ld or higher" msgstr "la puntuación del artículo es %ld o mayor" #: pan/usenet-utils/filter-info.cc:301 pan/usenet-utils/filter-info.cc:311 #, c-format msgid "%s doesn't contain \"%s\"" msgstr "%s no contiene «%s»" #: pan/usenet-utils/filter-info.cc:302 pan/usenet-utils/filter-info.cc:312 #, c-format msgid "%s isn't \"%s\"" msgstr "%s no es «%s»" #: pan/usenet-utils/filter-info.cc:303 pan/usenet-utils/filter-info.cc:313 #, c-format msgid "%s doesn't begin with \"%s\"" msgstr "%s no empieza por «%s»" #: pan/usenet-utils/filter-info.cc:304 pan/usenet-utils/filter-info.cc:314 #, c-format msgid "%s doesn't end with \"%s\"" msgstr "%s no termina en «%s»" #: pan/usenet-utils/filter-info.cc:305 pan/usenet-utils/filter-info.cc:315 #, c-format msgid "%s doesn't match the regex \"%s\"" msgstr "%s no coincide con la expresión regular «%s»" #: pan/usenet-utils/filter-info.cc:327 #, c-format msgid "%s contains \"%s\"" msgstr "%s contiene «%s»" #: pan/usenet-utils/filter-info.cc:328 #, c-format msgid "%s is \"%s\"" msgstr "%s es «%s»" #: pan/usenet-utils/filter-info.cc:329 #, c-format msgid "%s begins with \"%s\"" msgstr "%s empieza por «%s»" #: pan/usenet-utils/filter-info.cc:330 #, c-format msgid "%s ends with \"%s\"" msgstr "%s termina en «%s»" #: pan/usenet-utils/filter-info.cc:331 #, c-format msgid "%s matches the regex \"%s\"" msgstr "%s coincide con la expresión regular «%s»" #: pan/usenet-utils/filter-info.cc:337 msgid "Any of these tests fail:" msgstr "Cualquiera de estos tests falla:" #: pan/usenet-utils/filter-info.cc:344 msgid "All of these tests pass:" msgstr "Todos estos tests se pasan:" #: pan/usenet-utils/filter-info.cc:351 msgid "None of these tests pass:" msgstr "Ninguno de estos tests se pasa:" #: pan/usenet-utils/filter-info.cc:358 msgid "Any of these tests pass:" msgstr "Cualquiera de estos tests se pasa:" #: pan/usenet-utils/gnksa.cc:880 #, c-format msgid "No email address provided; generating message-id with domain \"%s\"" msgstr "" "No se ha proporcionado una dirección de correo; generando el id del mensaje " "con el dominio «%s»" #: pan/usenet-utils/message-check.cc:122 msgid "Warning: Reply seems to be top-posted." msgstr "Advertencia: la respuesta parece estar publicada por encima." #: pan/usenet-utils/message-check.cc:143 msgid "Warning: The signature marker should be \"-- \", not \"--\"." msgstr "Advertencia: el marcador de firma debería ser «-- » no «--»." #: pan/usenet-utils/message-check.cc:160 msgid "Warning: Signature prefix with no signature." msgstr "Advertencia: prefijo de firma sin firma." #: pan/usenet-utils/message-check.cc:165 msgid "Warning: Signature is more than 4 lines long." msgstr "Advertencia: la firma tiene más de cuatro líneas de largo." #: pan/usenet-utils/message-check.cc:170 msgid "Warning: Signature is more than 80 characters wide." msgstr "Advertencia: la firma tiene más de ochenta caracteres de ancho." #: pan/usenet-utils/message-check.cc:196 #, c-format msgid "Warning: %d line is more than 80 characters wide." msgid_plural "Warning: %d lines are more than 80 characters wide." msgstr[0] "Advertencia: %d línea es de más de 80 caracteres de ancho." msgstr[1] "Advertencia: %d líneas son de más de 80 caracteres de ancho." #: pan/usenet-utils/message-check.cc:221 msgid "Error: Message is empty." msgstr "Error: el mensaje está vacío." #: pan/usenet-utils/message-check.cc:256 msgid "Warning: The message is entirely quoted text!" msgstr "Advertencia: el mensaje es texto citado en su totalidad" #: pan/usenet-utils/message-check.cc:257 msgid "Warning: The message is mostly quoted text." msgstr "Advertencia: el mensaje es texto citado en su mayoría." #: pan/usenet-utils/message-check.cc:307 msgid "Error: Message appears to have no new content." msgstr "Error: el mensaje parece no tener contenido nuevo." #: pan/usenet-utils/message-check.cc:342 pan/usenet-utils/message-check.cc:381 #, c-format msgid "" "Warning: The posting profile's server doesn't carry newsgroup\n" "\t\"%s\".\n" "\tIf the group name is correct, switch profiles in the \"From:\"\n" "\tline or edit the profile with \"Edit|Manage Posting Profiles\"." msgstr "" "Advertencia: el perfil de publicación de este servidor no trae grupos de " "noticias\n" "\t\"%s\".\n" "\tSi el grupo de noticias es correcto, cambie los perfiles en la línea\n" "\t«De:» o edite el perfil con «Editar|Gestionar perfiles de publicación»." #: pan/usenet-utils/message-check.cc:353 msgid "Warning: Following-Up to too many groups." msgstr "Advertencia: reenviando a demasiados grupos." #: pan/usenet-utils/message-check.cc:364 msgid "Error: No Subject specified." msgstr "Error: No se ha especificado ningún asunto." #: pan/usenet-utils/message-check.cc:393 #, c-format msgid "Warning: Group \"%s\" is read-only." msgstr "Advertencia: el grupo «%s» es de sólo lectura." #: pan/usenet-utils/message-check.cc:402 msgid "Error: Posting to a very large number of groups." msgstr "Error: publicando a un gran número de grupos." #: pan/usenet-utils/message-check.cc:407 msgid "Warning: Posting to a large number of groups." msgstr "Advertencia: publicando a un gran número de grupos." #: pan/usenet-utils/message-check.cc:414 msgid "Warning: Crossposting without setting Followup-To header." msgstr "Advertencia: multi-publicando sin configurar la cabecera «Reenviar a»." #: pan/usenet-utils/message-check.cc:439 msgid "Error: Bad email address." msgstr "Error: dirección de correo-e errónea." #: pan/usenet-utils/message-check.cc:448 msgid "Warning: Most newsgroups frown upon HTML posts." msgstr "" "Advertencia: la mayoría de los grupos de noticias no toleran publicaciones " "en HTML." #: pan/usenet-utils/message-check.cc:484 msgid "Error: No Recipients." msgstr "Error: no hay destinatarios." #: pan/usenet-utils/scorefile.cc:310 #, c-format msgid "Error reading score in %*.*s, line %d: unexpected line." msgstr "Error al leer la puntuación en %*.*s, línea %d: línea inesperada." #: pan/usenet-utils/scorefile.cc:442 #, c-format msgid "" "Error reading score in %*.*s, line %d: expected 'Expires: MM/DD/YYYY' or " "'Expires: DD-MM-YYYY'." msgstr "" "Error al leer la puntuación en %*.*s, línea %d: se esperaba 'Expires: MM/DD/" "YYYY' o 'Expires: DD-MM-YYYY'" #: pan/usenet-utils/scorefile.cc:452 #, c-format msgid "Expired old score from %*.*s, line %d" msgstr "Ha caducado la puntuación antigua de %*.*s, línea %d" #: pan/usenet-utils/scorefile.cc:589 #, c-format msgid "Read %lu scoring rules in %lu sections from \"%s\"" msgstr "Leer %lu reglas de puntuación en %lu secciones de «%s»" #: pan/usenet-utils/ssl-utils.cc:172 #, c-format msgid "Error printing the server certificate for '%s'" msgstr "Error al imprimir el certificado del servidor para «%s»" #: pan/usenet-utils/ssl-utils.cc:191 #, c-format msgid "" "The current server '%s' sent this security certificate:\n" "\n" msgstr "" "El servidor actual «%s» envió este certificado de seguridad:\n" "\n" #: pan/usenet-utils/ssl-utils.cc:197 #, c-format msgid "" "Certificate information for server '%s':\n" "\n" msgstr "" "Información del certificado para el servidor «%s»:\n" "\n" #: pan/usenet-utils/ssl-utils.cc:202 #, c-format msgid "" "%sIssuer information:\n" "%s\n" "Valid until: %s\n" "\n" "Not valid before: %s\n" "\n" msgstr "" "%sInformación del emisor:\n" "%s\n" "Válido hasta: %s\n" "\n" "No válido antes de: %s\n" "\n" #: pan/usenet-utils/text-massager.cc:397 msgid "> [quoted text muted]" msgstr "> [texto citado ocultado]" #: pan/usenet-utils/text-massager.cc:579 msgid "no_name" msgstr "sin_nombre" #: pan/usenet-utils/text-massager.cc:580 msgid "no_mail" msgstr "sin_correo-e" #, c-format #~ msgid "There seems to be no password set for server %s." #~ msgstr "Parece que no hay una contraseña establecida para el servidor %s." #~ msgid "GNOME Keyring denied access to the passwords." #~ msgstr "El depósito de claves de GNOME denegó el acceso a las contraseñas." #~ msgid "_Tip Jar..." #~ msgstr "_Donaciones…" #, c-format #~ msgid "Getting header counts for \"%s\"" #~ msgstr "Obteniendo contadores de cabeceras para «%s»" #~ msgid "pan" #~ msgstr "pan" #~ msgid "_Save Articles…" #~ msgstr "_Guardar artículos…" #~ msgid "Save Articles…" #~ msgstr "Guardar artículos…" #~ msgid "Save Articles from Selected _NZB…" #~ msgstr "Guardar los artículos del NZB seleccionado" #~ msgid "Save Articles to an NZB _File…" #~ msgstr "Guardar artículos en un archivo NZB" #~ msgid "_Import NZB Files…" #~ msgstr "Importar archivos NZB…" #~ msgid "X-Face (Avatar)" #~ msgstr "X-Face (Avatar)" #~ msgid "isn’t" #~ msgstr "no es" #~ msgid "Posting of “%s” successful: %s" #~ msgstr "Publicación de «%s» correcta: %s" #~ msgid "the article isn’t cached locally" #~ msgstr "el artículo no está en la memoria caché local" #~ msgid "the article wasn’t posted by you" #~ msgstr "el artículo no lo publicó usted" #~ msgid "the article hasn’t been read" #~ msgstr "el artículo no se ha leído" #~ msgid "GNOME Keyring" #~ msgstr "Depósito de claves de GNOME" #~ msgid "Store passwords in GNOME Keyring" #~ msgstr "Guardar contraseñas en el depósito de claves de GNOME" #~ msgid "_1. Header Pane" #~ msgstr "_1. Panel de la cabecera" #~ msgid "_2. Search Pane" #~ msgstr "_2. Panel de búsqueda" #~ msgid "DL Initialization..." #~ msgstr "Inicialización de DL ...." #~ msgid "Open Download Meter Preferences" #~ msgstr "Abrir las referencias del medidor de descargas" #~ msgid "KB" #~ msgstr "KB" #~ msgid "MB" #~ msgstr "MB" #~ msgid "GB" #~ msgstr "GB" #~ msgid "TB" #~ msgstr "TB" #~ msgid "DL %s" #~ msgstr "LD %s" #~ msgid "_Download Meter Preferences" #~ msgstr "Preferencias del medidor de _descargas" #~ msgid "Pan: Download Meter Preferences" #~ msgstr "Pan: referencias del medidor de descargas" #~ msgid "When Download Limit Is Reached:" #~ msgstr "Cuando se alcance el límite de descarga:" #~ msgid "Warn" #~ msgstr "Advertir" #~ msgid "Disconnect from server" #~ msgstr "Desconectar del servidor" #~ msgid "Download Limit" #~ msgstr "Límite de descarga" #~ msgid "Reset" #~ msgstr "Reiniciar" #~ msgid "Quoted text:" #~ msgstr "Texto citado:" #~ msgid "Age (newest first)" #~ msgstr "Edad (nuevos primeros)" #~ msgid "Age (oldest first)" #~ msgstr "Edad (antiguos primero)" #~ msgid "Size (smallest first)" #~ msgstr "Tamaño (más pequeños primero)" #~ msgid "Size (largest first)" #~ msgstr "Tamaño (más grandes primero)" #~| msgid "Download Limit" #~ msgid "Download" #~ msgstr "Descargar" #~| msgid "Group (regex)" #~ msgid "Name (regex)" #~ msgstr "Nombre (exp-reg)" #~ msgid "Release Info" #~ msgstr "Información de la versión" #~| msgid "_Download Meter Preferences" #~ msgid "Download selected Release/Files" #~ msgstr "Descargar los archivos/versiones seleccionados" #~ msgid "Refresh" #~ msgstr "Actualizar" #~ msgid "Refresh current results" #~ msgstr "Actualizar los resultados actuales" #~ msgid "Show Task Pane notifications" #~ msgstr "Mostrar notificaciones del panel de tareas" #~ msgid "Enable header compression for speedup" #~ msgstr "Activar la compresión de las cabeceras para mejorar la velocidad" #~ msgid "Hide to system tray" #~ msgstr "Ocultar a la bandeja del sistema" #~ msgid "Group Color Foreground:" #~ msgstr "Color de fondo del grupo:" #~ msgid "Gnome Keyring Options" #~ msgstr "Opciones del depósito de claves de GNOME" #~ msgid "Read collapsed thread:" #~ msgstr "Leer conversación colapsada:" #~ msgid "If the group name" #~ msgstr "Si el nombre del grupo" #~ msgid "And the article's" #~ msgstr "Y los artículos" #~ msgid "Always trust" #~ msgstr "Confiar siempre" #~ msgid "Edit Hotkey" #~ msgstr "Editar tecla rápida" #~ msgid "Always show article deletion confirmation dialog" #~ msgstr "" #~ "Mostrar siempre el diálogo de confirmación de eliminación del artículo" #~ msgid "_Hotkeys" #~ msgstr "_Teclas rápidas" #~ msgid "Hotkeys" #~ msgstr "Teclas rápidas" #~ msgid "PGP Signature Information" #~ msgstr "Información de la firma PGP" #~ msgid "no Signature found." #~ msgstr "no se ha encontrado la firma." #~ msgid "Signature verified." #~ msgstr "Firma verificada." #~ msgid "PGP Signature : " #~ msgstr "Firma PGP: " #~ msgid "no signature found." #~ msgstr "no se ha encontrado la firma." #~ msgid "Read News from Usenet" #~ msgstr "Lea las noticias de Usenet" #~ msgid "Show only icons in Preferences tabs" #~ msgstr "Sólo mostrar iconos en las pestañas de preferencias" #~ msgid "_Charset" #~ msgstr "_Conjunto de caracteres" #~ msgid "_Status and Notifications" #~ msgstr "_Estado y notificaciones" #~ msgid "_Autosave" #~ msgstr "_Autoguardar" #~ msgid "" #~ "Spellchecker not found!\n" #~ " \n" #~ "Was this copy of Pan compiled with GtkSpell enabled?" #~ msgstr "" #~ "No se encontró el corrector ortográficos\n" #~ " \n" #~ "¿Se compiló esta copia de Pan con GtkSpell activado?" #, fuzzy #~ msgid "_Toggle Flag on for Thread" #~ msgstr "_Vigilar conversación" #~ msgid "Attachment not shown: MIME type %s/%s; filename %s\n" #~ msgstr "Adjunto no mostrado: tipo MIME %s/%s; nombre de archivo %s\n" #~ msgid "Attachment not shown: MIME type %s/%s\n" #~ msgstr "Adjunto no mostrado: tipo MIME %s/%s\n" #, fuzzy #~ msgid "Signer : " #~ msgstr "Firma:" #~ msgid "_Signature:" #~ msgstr "_Firma:" #~ msgid "Wrap Selected" #~ msgstr "Ajustar texto seleccionado" #~ msgid "Posting Article" #~ msgstr "Publicando artículo" #~ msgid "Posting..." #~ msgstr "Publicando…" #~ msgid "Creating directory \"%s\"" #~ msgstr "Creando directorio «%s»" #~ msgid "Couldn't create directory \"%s\": %s" #~ msgstr "No se ha podido crear el directorio «%s»: %s" #~ msgid "" #~ "Your copy of libpcre doesn't support UTF-8. UTF-8 regular expressions " #~ "may fail." #~ msgstr "" #~ "La copia de su sistema de libpcre no soporta UTF-8. Las expresiones " #~ "regulares UTF-8 pueden fallar." #~ msgid "Can't use regular expression \"%s\": %s at position %d" #~ msgstr "No se puede usar la expresión regular «%s»:%s en la posición %d" pan-0.162/po/et.po000066400000000000000000005736341475412772400137250ustar00rootroot00000000000000# Pani eesti tõlge. # Copyright (C) 2001-2004 Free Software Foundation, Inc. # Tõivo Leedjärv , 2001-2004. # msgid "" msgstr "" "Project-Id-Version: Pan\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-04-04 20:58+0200\n" "PO-Revision-Date: 2004-03-27 20:20+0300\n" "Last-Translator: Tõivo Leedjärv \n" "Language-Team: Estonian \n" "Language: et\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../pan.desktop.in.h:1 msgid "Pan Newsreader" msgstr "Uudiseriider Pan" #: ../pan.desktop.in.h:2 #, fuzzy msgid "Read and Post Usenet Articles" msgstr "Loe valitud artiklit." #: ../pan/data/article-cache.cc:143 ../pan/data/encode-cache.cc:62 #, fuzzy, c-format msgid "Error opening directory: \"%s\": %s" msgstr "Viga kataloogi \"%s\" avamisel: %s)" #: ../pan/data/article-cache.cc:231 ../pan/data/article-cache.cc:242 #: ../pan/data-impl/data-io.cc:187 ../pan/data-impl/data-io.cc:211 #: ../pan/gui/post-ui.cc:1639 #, fuzzy, c-format msgid "Unable to save \"%s\" %s" msgstr "Ei saa määrata gruppi \"%*.*s\": %s" #: ../pan/data/article-cache.cc:355 #, fuzzy, c-format msgid "Error opening file \"%s\" %s" msgstr "Viga faili \"%s\" avamisel: %s" #: ../pan/data/article-cache.cc:386 ../pan/data-impl/profiles.cc:174 #: ../pan/data-impl/server.cc:436 ../pan/general/file-util.cc:298 #: ../pan/gui/post-ui.cc:609 ../pan/gui/task-pane.cc:691 #, c-format msgid "Error reading file \"%s\": %s" msgstr "Viga faili \"%s\" lugemisel: %s" #: ../pan/data/cert-store.cc:238 #, fuzzy, c-format msgid "Error opening SSL certificate directory: \"%s\": %s" msgstr "Viga kataloogi \"%s\" avamisel: %s)" #: ../pan/data/cert-store.cc:270 #, c-format msgid "Succesfully added %d SSL PEM certificate(s) to Certificate Store." msgstr "" #. load_group_descriptions (*_data_io); #: ../pan/data-impl/data-impl.cc:109 #, c-format msgid "Loaded data backend in %.1f seconds" msgstr "" #: ../pan/data-impl/data-impl.cc:140 msgid "Pan newsreader server passwords" msgstr "" #: ../pan/data-impl/groups.cc:94 #, fuzzy, c-format msgid "Skipping newsrc file for server \"%s\"" msgstr "%d uue grupi laadimine serverist \"%s\"" #: ../pan/data-impl/headers.cc:606 #, fuzzy, c-format msgid "Expired %lu old articles from \"%s\"" msgstr "Eemaldatud %u artiklit grupist \"%s\"" #: ../pan/data-impl/headers.cc:613 #, c-format msgid "" "Unsupported data version for %s headers: %d.\n" "Are you running an old version of Pan by accident?" msgstr "" "Toetamata andmete versioon grupi %s päistel: %d\n" "Kas sa kasutad kogemata Pan'i vanemat versiooni?" #: ../pan/data-impl/headers.cc:628 #, fuzzy, c-format msgid "Loaded %lu articles for \"%s\" in %.1f seconds (%.0f per second)" msgstr "Laetud %u artiklit grupist \"%s\" %.1f sekundiga (%.0f art/sek)" #: ../pan/data-impl/headers.cc:857 #, fuzzy, c-format msgid "" "Saved %lu parts, %lu articles in \"%s\" in %.1f seconds (%.0f articles/sec)" msgstr "Salvestatud %d artiklit gruppi \"%s\" %.1f sekundiga (%.0f art/sek)" #: ../pan/data-impl/headers.cc:1173 #, fuzzy, c-format msgid "Added %lu articles to %s." msgstr "%u artikli tähtaeg möödus grupis `%s'" #: ../pan/data-impl/server.cc:234 #, c-format msgid "There seems to be no Password set for Server %s." msgstr "" #: ../pan/data-impl/server.cc:238 msgid "The Gnome keyring denied access to the Passwords." msgstr "" #: ../pan/data-impl/xover.cc:239 #, fuzzy, c-format msgid "Error reading from %s: unknown group \"%s\"" msgstr "Soklist lugemise viga: %s " #. build the locale strings #: ../pan/general/e-util.cc:213 msgid "%l:%M %p" msgstr "" #: ../pan/general/e-util.cc:214 msgid "Today %l:%M %p" msgstr "" #: ../pan/general/e-util.cc:215 msgid "%a %l:%M %p" msgstr "" #: ../pan/general/e-util.cc:216 msgid "%b %d %l:%M %p" msgstr "" #: ../pan/general/e-util.cc:217 msgid "%b %d %Y" msgstr "" #: ../pan/general/e-util.cc:242 msgid "?" msgstr "" #: ../pan/general/text-match.cc:193 #, c-format msgid "Can't use regular expression \"%s\": %s" msgstr "Ei saa kasutada regulaaravaldist \"%s\": %s" #: ../pan/general/utf8-utils.cc:213 msgid "Couldn't determine article encoding. Non-UTF8 characters were removed." msgstr "" #: ../pan/gui/actions.cc:274 ../pan/gui/post-ui.cc:417 #, fuzzy msgid "_File" msgstr "/_Fail" #: ../pan/gui/actions.cc:275 ../pan/gui/post-ui.cc:418 msgid "_Edit" msgstr "_Muuda" #: ../pan/gui/actions.cc:276 ../pan/gui/prefs-ui.cc:1064 msgid "_Layout" msgstr "_Asetus" #: ../pan/gui/actions.cc:277 #, fuzzy msgid "_Group Pane" msgstr "Gruppide paan" #: ../pan/gui/actions.cc:278 #, fuzzy msgid "_Header Pane" msgstr "T_eemalõngade paan:" #: ../pan/gui/actions.cc:279 #, fuzzy msgid "_Body Pane" msgstr "Artiklipaan" #: ../pan/gui/actions.cc:280 #, fuzzy msgid "_View" msgstr "/_Vaade" #: ../pan/gui/actions.cc:281 #, fuzzy msgid "Filte_r" msgstr "/Filt_er" #: ../pan/gui/actions.cc:282 #, fuzzy msgid "_Go" msgstr "/_Liigu" #: ../pan/gui/actions.cc:283 ../pan/gui/prefs-ui.cc:1091 #, fuzzy msgid "_Actions" msgstr "Tegevused" #: ../pan/gui/actions.cc:284 #, fuzzy msgid "_Articles" msgstr "/_Artiklid" #: ../pan/gui/actions.cc:285 #, fuzzy msgid "G_roups" msgstr "Grupid" #: ../pan/gui/actions.cc:286 ../pan/gui/actions.cc:287 msgid "_Post" msgstr "_Postita" #: ../pan/gui/actions.cc:288 msgid "_Help" msgstr "_Abi" #: ../pan/gui/actions.cc:291 #, fuzzy msgid "_Read Group" msgstr "Värskendan gruppi" #: ../pan/gui/actions.cc:292 #, fuzzy msgid "Read Group" msgstr "Värskendan gruppi" #: ../pan/gui/actions.cc:296 #, fuzzy msgid "_Mark Selected Groups Read" msgstr "Märgi valitud artiklid loetuks" #: ../pan/gui/actions.cc:297 #, fuzzy msgid "Mark Selected Groups Read" msgstr "Märgi valitud artiklid loetuks" #: ../pan/gui/actions.cc:301 #, fuzzy msgid "_Delete Selected Groups' Articles" msgstr "/_Kustuta kõik grupi artiklid" #: ../pan/gui/actions.cc:302 #, fuzzy msgid "Delete Selected Groups' Articles" msgstr "/_Kustuta kõik grupi artiklid" #: ../pan/gui/actions.cc:306 #, fuzzy msgid "Get New _Headers in Selected Groups" msgstr "Tõmba uued päised valitud gruppidest" #: ../pan/gui/actions.cc:307 #, fuzzy msgid "Get New Headers in Selected Groups" msgstr "Tõmba uued päised valitud gruppidest" #: ../pan/gui/actions.cc:311 ../pan/gui/actions.cc:316 #, fuzzy msgid "Get New _Headers in Subscribed Groups" msgstr "Tõmba uued päised tellitud gruppidest" #: ../pan/gui/actions.cc:312 ../pan/gui/actions.cc:317 #, fuzzy msgid "Get New Headers in Subscribed Groups" msgstr "/Tõmba uued päised tellitud gruppidest" #: ../pan/gui/actions.cc:321 #, fuzzy msgid "Get _Headers..." msgstr "/Tõmba uued _päised" #: ../pan/gui/actions.cc:322 #, fuzzy msgid "Get Headers..." msgstr "/Tõmba uued _päised" #: ../pan/gui/actions.cc:326 ../pan/gui/actions.cc:327 #, fuzzy msgid "Refresh Group List" msgstr "Grupi \"%s\" värskendamine" #: ../pan/gui/actions.cc:331 #, fuzzy msgid "_Subscribe" msgstr "/T_elli" #: ../pan/gui/actions.cc:332 msgid "Subscribe" msgstr "Telli" #: ../pan/gui/actions.cc:336 #, fuzzy msgid "_Unsubscribe" msgstr "/Lõ_peta tellimus" #: ../pan/gui/actions.cc:337 msgid "Unsubscribe" msgstr "Lõpeta tellimus" #: ../pan/gui/actions.cc:341 #, fuzzy msgid "_Save Articles..." msgstr "/_Salvesta manused kui..." #: ../pan/gui/actions.cc:342 #, fuzzy msgid "Save Articles..." msgstr "/_Salvesta manused kui..." #: ../pan/gui/actions.cc:346 #, fuzzy msgid "Save Articles from Selected _NZB..." msgstr "/_Salvesta manused kui..." #: ../pan/gui/actions.cc:347 #, fuzzy msgid "Save Articles from Selected NZB" msgstr "Salvesta artikli manused" #: ../pan/gui/actions.cc:351 #, fuzzy msgid "Save Articles to an NZB _File..." msgstr "/_Salvesta manused kui..." #: ../pan/gui/actions.cc:352 #, fuzzy msgid "Save Articles to an NZB File" msgstr "Salvesta logiraamat faili." #: ../pan/gui/actions.cc:356 ../pan/gui/actions.cc:357 msgid "Print" msgstr "Prindi" #: ../pan/gui/actions.cc:361 #, fuzzy msgid "_Import NZB Files..." msgstr "Impordi .newsrc..." #: ../pan/gui/actions.cc:366 #, fuzzy msgid "_Cancel Last Task" msgstr "Tühista viimane ülesanne" #: ../pan/gui/actions.cc:371 #, fuzzy msgid "_Task Manager" msgstr "/_Tööriistad/_Töödejuhataja..." #: ../pan/gui/actions.cc:376 #, fuzzy msgid "_Event Log" msgstr "Ava logiraamat" #: ../pan/gui/actions.cc:381 #, fuzzy msgid "_Quit" msgstr "_Muuda" #: ../pan/gui/actions.cc:386 #, fuzzy msgid "Select _All Articles" msgstr "Laadi kõik artiklid alla" #: ../pan/gui/actions.cc:391 #, fuzzy msgid "_Deselect All Articles" msgstr "/_Redaktor/T_ühista artiklite valik" #: ../pan/gui/actions.cc:396 #, fuzzy msgid "Add Su_bthreads to Selection" msgstr "/_Redaktor/Lisa alaml_õngad valikusse" #: ../pan/gui/actions.cc:401 #, fuzzy msgid "Add _Threads to Selection" msgstr "/_Redaktor/Lisa t_eemalõngad valikusse" #: ../pan/gui/actions.cc:406 #, fuzzy msgid "Add _Similar Articles to Selection" msgstr "/_Redaktor/Lisa t_eemalõngad valikusse" #: ../pan/gui/actions.cc:411 #, fuzzy msgid "Select Article _Body" msgstr "/_Redaktor/Vali artikli _sisu" #: ../pan/gui/actions.cc:416 #, fuzzy msgid "Edit _Preferences" msgstr "/_Redaktor/_Häälestus..." #: ../pan/gui/actions.cc:421 #, fuzzy msgid "Edit Selected _Group's Preferences" msgstr "/_Redaktor/_Häälestus..." #: ../pan/gui/actions.cc:426 ../pan/gui/post-ui.cc:434 #, fuzzy msgid "Edit P_osting Profiles" msgstr "/_Tööriistad/_Kasutajaprofiilid..." #: ../pan/gui/actions.cc:431 #, fuzzy msgid "Edit _News Servers" msgstr "/_Tööriistad/Uudise_serverid..." #: ../pan/gui/actions.cc:436 #, fuzzy msgid "Jump to _Group Tab" msgstr "/_Vaade/Hüppa _gruppide sakki" #: ../pan/gui/actions.cc:441 #, fuzzy msgid "Jump to _Header Tab" msgstr "/_Vaade/Hüppa _teemalõngade sakki" #: ../pan/gui/actions.cc:446 #, fuzzy msgid "Jump to _Body Tab" msgstr "/_Vaade/Hüppa _sisu sakki" #: ../pan/gui/actions.cc:451 #, fuzzy msgid "_Rot13 Selected Text" msgstr "Tee valitud tekstile Rot13" #: ../pan/gui/actions.cc:456 #, fuzzy msgid "Clear _Header Pane" msgstr "T_eemalõngade paan:" #: ../pan/gui/actions.cc:461 #, fuzzy msgid "Clear _Body Pane" msgstr "Artiklipaan" #: ../pan/gui/actions.cc:466 #, fuzzy msgid "Cache Article" msgstr "Ainult puhverdatud artiklid" #: ../pan/gui/actions.cc:471 #, fuzzy msgid "Read Article" msgstr "Näita loetud artikleid" #: ../pan/gui/actions.cc:476 #, fuzzy msgid "Show Article Information" msgstr "Profiili info" #: ../pan/gui/actions.cc:481 #, fuzzy msgid "Read _More" msgstr "Loe edasi" #: ../pan/gui/actions.cc:482 msgid "Read More" msgstr "Loe edasi" #: ../pan/gui/actions.cc:486 msgid "Read _Back" msgstr "" #: ../pan/gui/actions.cc:487 #, fuzzy msgid "Read Back" msgstr "/_Liigu/Loe tagasi" #: ../pan/gui/actions.cc:491 #, fuzzy msgid "Next _Unread Group" msgstr "/_Liigu/Järgmine lugemata _grupp" #: ../pan/gui/actions.cc:496 #, fuzzy msgid "Next _Group" msgstr "/_Liigu/Järgmine g_rupp" #: ../pan/gui/actions.cc:501 #, fuzzy msgid "Next _Unread Article" msgstr "/_Liigu/_Järgmine lugemata artikkel" #: ../pan/gui/actions.cc:502 #, fuzzy msgid "Next Unread Article" msgstr "Loe järgmist lugemata artiklit" #: ../pan/gui/actions.cc:506 #, fuzzy msgid "Next _Article" msgstr "/_Liigu/Järgmine _artikkel" #: ../pan/gui/actions.cc:507 #, fuzzy msgid "Next Article" msgstr "/_Liigu/Järgmine _artikkel" #: ../pan/gui/actions.cc:511 #, fuzzy msgid "Next _Watched Article" msgstr "/_Liigu/Järgmine j_älgitav artikkel" #: ../pan/gui/actions.cc:516 #, fuzzy msgid "Next Unread _Thread" msgstr "/_Liigu/Järgmine lugemata _teemalõng" #: ../pan/gui/actions.cc:517 #, fuzzy msgid "Next Unread Thread" msgstr "Loe järgmist lugemata teemalõnga" #: ../pan/gui/actions.cc:521 #, fuzzy msgid "Next Threa_d" msgstr "/_Liigu/Järgmine tee_malõng" #: ../pan/gui/actions.cc:526 #, fuzzy msgid "Pre_vious Article" msgstr "/_Liigu/_Eelmine artikkel" #: ../pan/gui/actions.cc:531 #, fuzzy msgid "Previous _Thread" msgstr "/_Liigu/Eelmine teemalõng" #: ../pan/gui/actions.cc:536 #, fuzzy msgid "_Parent Article" msgstr "/_Liigu/_Vanemartikkel" #: ../pan/gui/actions.cc:541 #, fuzzy msgid "Ignore _Author" msgstr "/_Ignoreeri teemalõnga" #: ../pan/gui/actions.cc:545 #, fuzzy msgid "_Watch Thread" msgstr "/_Jälgi teemalõnga" #: ../pan/gui/actions.cc:550 #, fuzzy msgid "_Ignore Thread" msgstr "_Ignoreeritavad teemalõngad:" #: ../pan/gui/actions.cc:555 ../pan/gui/actions.cc:556 #, fuzzy msgid "_Toggle Flag On/Off for Thread" msgstr "/_Jälgi teemalõnga" #: ../pan/gui/actions.cc:560 ../pan/gui/actions.cc:561 #, fuzzy msgid "_Turn Flag Off for Thread" msgstr "/_Jälgi teemalõnga" #: ../pan/gui/actions.cc:565 ../pan/gui/actions.cc:566 #, fuzzy msgid "_Select All Flagged Threads" msgstr "Sulge valitud teemalõngad" #: ../pan/gui/actions.cc:570 ../pan/gui/actions.cc:571 #, fuzzy msgid "_Go to Next Flagged Thread" msgstr "/_Liigu/Järgmine uus teemal_õng" #: ../pan/gui/actions.cc:575 ../pan/gui/actions.cc:576 #, fuzzy msgid "_Go to Last Flagged Thread" msgstr "Sulge valitud teemalõngad" #: ../pan/gui/actions.cc:580 ../pan/gui/actions.cc:581 #, fuzzy msgid "_Invert Selection" msgstr "Valik" #: ../pan/gui/actions.cc:585 #, fuzzy msgid "Edit Article's Watch/Ignore/Score..." msgstr "/_Artiklid/Loo _hinne..." #: ../pan/gui/actions.cc:590 #, fuzzy msgid "Add a _Scoring Rule..." msgstr "Lisa uus hinne" #: ../pan/gui/actions.cc:595 #, fuzzy msgid "Cance_l Article..." msgstr "Artikli tühistamine" #: ../pan/gui/actions.cc:600 #, fuzzy msgid "_Supersede Article..." msgstr "Salvesta artikkel kui..." #: ../pan/gui/actions.cc:605 #, fuzzy msgid "_Delete Article" msgstr "_Kustuta artikkel" #: ../pan/gui/actions.cc:610 #, fuzzy msgid "Clear Article Cache" msgstr "Artiklite puhverdamine" #: ../pan/gui/actions.cc:615 #, fuzzy msgid "_Mark Article as Read" msgstr "Märgi valitud artiklid loetuks" #: ../pan/gui/actions.cc:620 #, fuzzy msgid "Mark Article as _Unread" msgstr "Märgi kui lugemata" #: ../pan/gui/actions.cc:626 #, fuzzy msgid "_Mark Thread as Read" msgstr "Märgi teemalõngad loetuks" #: ../pan/gui/actions.cc:631 #, fuzzy msgid "Mark Thread as _Unread" msgstr "Märgi teemalõngad kui lugemata" #: ../pan/gui/actions.cc:636 #, fuzzy msgid "_Post to Newsgroup" msgstr "Postita uudisegruppi" #: ../pan/gui/actions.cc:637 msgid "Post to Newsgroup" msgstr "Postita uudisegruppi" #: ../pan/gui/actions.cc:641 #, fuzzy msgid "_Followup to Newsgroup" msgstr "/_Postita/_Vastukaja uudisegruppi..." #: ../pan/gui/actions.cc:642 #, fuzzy msgid "Followup to Newsgroup" msgstr "/_Postita/_Vastukaja uudisegruppi..." #: ../pan/gui/actions.cc:646 #, fuzzy msgid "_Reply to Author in Mail" msgstr "/_Artiklid/Lase autor p_õhja" #: ../pan/gui/actions.cc:651 #, fuzzy msgid "_Pan Home Page" msgstr "/_Abi/Pan'i _kodulehekülg..." #: ../pan/gui/actions.cc:656 #, fuzzy msgid "Give _Feedback or Report a Bug..." msgstr "/_Abi/Teata _veast..." #: ../pan/gui/actions.cc:661 msgid "_Tip Jar..." msgstr "" #: ../pan/gui/actions.cc:666 #, fuzzy msgid "_About" msgstr "Info" #: ../pan/gui/actions.cc:671 msgid "Edit _SSL Certificates" msgstr "" #: ../pan/gui/actions.cc:685 #, fuzzy msgid "_Thread Headers" msgstr "Lisapäised" #: ../pan/gui/actions.cc:686 #, fuzzy msgid "_Wrap Article Body" msgstr "T_äida/murra read artikli sisus" #: ../pan/gui/actions.cc:687 #, fuzzy msgid "Mute _Quoted Text" msgstr "Peida kvooditud tekst" #: ../pan/gui/actions.cc:688 #, fuzzy msgid "Show All _Headers in Body Pane" msgstr "/_Vaade/Näita artiklipaanis kõiki _päiseid" #: ../pan/gui/actions.cc:689 #, fuzzy msgid "Show _Smilies as Graphics" msgstr "Näita _teadet:" #: ../pan/gui/actions.cc:690 msgid "Show *Bold*, __Underlined__, and /Italic/" msgstr "" #: ../pan/gui/actions.cc:691 msgid "Size Pictures to _Fit" msgstr "" #: ../pan/gui/actions.cc:692 #, fuzzy msgid "Use _Monospace Font" msgstr "_Ühelaiune kirjatüüp:" #: ../pan/gui/actions.cc:693 msgid "Set Focus to Images" msgstr "" #: ../pan/gui/actions.cc:694 msgid "Highlight _URLs" msgstr "" #: ../pan/gui/actions.cc:697 #, fuzzy msgid "_Work Online" msgstr "/_Fail/On_lain töö" #: ../pan/gui/actions.cc:698 #, fuzzy msgid "_Tabbed Layout" msgstr "/_Vaade/Sa_kkidega paigutus" #: ../pan/gui/actions.cc:699 #, fuzzy msgid "Show Group _Pane" msgstr "Näita gruppide paani" #: ../pan/gui/actions.cc:700 #, fuzzy msgid "Show Hea_der Pane" msgstr "/_Vaade/Näita t_eemalõngade paani" #: ../pan/gui/actions.cc:701 #, fuzzy msgid "Show Bod_y Pane" msgstr "/_Vaade/Näita _artiklipaani" #: ../pan/gui/actions.cc:702 msgid "Show _Toolbar" msgstr "" #: ../pan/gui/actions.cc:703 #, fuzzy msgid "Abbreviate Group Names" msgstr "/_Vaade/Lü_henda nimed gruppide nimekirjas" #: ../pan/gui/actions.cc:705 #, fuzzy msgid "Match Only _Unread Articles" msgstr "Näita ainult uusi artikleid" #: ../pan/gui/actions.cc:705 #, fuzzy msgid "Match Only Unread Articles" msgstr "Näita ainult uusi artikleid" #: ../pan/gui/actions.cc:706 #, fuzzy msgid "Match Only _Cached Articles" msgstr "Näita ainult puhverdatud artikleid" #: ../pan/gui/actions.cc:706 #, fuzzy msgid "Match Only Cached Articles" msgstr "Näita ainult puhverdatud artikleid" #: ../pan/gui/actions.cc:707 #, fuzzy msgid "Match Only _Complete Articles" msgstr "Näita ainult terveid manuseid" #: ../pan/gui/actions.cc:707 #, fuzzy msgid "Match Only Complete Articles" msgstr "Näita ainult terveid manuseid" #: ../pan/gui/actions.cc:708 #, fuzzy msgid "Match Only _My Articles" msgstr "Näita ainult minu artikleid" #: ../pan/gui/actions.cc:708 #, fuzzy msgid "Match Only My Articles" msgstr "Näita ainult minu artikleid" #: ../pan/gui/actions.cc:709 #, fuzzy msgid "Match Only _Watched Articles" msgstr "Näita ainult jälgitavaid artikleid" #: ../pan/gui/actions.cc:709 msgid "Match Only Watched Articles" msgstr "Näita ainult jälgitavaid artikleid" #: ../pan/gui/actions.cc:711 #, fuzzy msgid "Match Scores of 9999 (_Watched)" msgstr "/Filt_er/Hinne 9999 (jälgitav) sobib" #: ../pan/gui/actions.cc:712 #, fuzzy msgid "Match Scores of 5000...9998 (_High)" msgstr "/Filt_er/Hinded 5000 kuni 9998 (kõrge) sobivad" #: ../pan/gui/actions.cc:713 #, fuzzy msgid "Match Scores of 1...4999 (Me_dium)" msgstr "/Filt_er/Hinded 1 kuni 4999 (keskmine) sobivad" #: ../pan/gui/actions.cc:714 #, fuzzy msgid "Match Scores of 0 (_Normal)" msgstr "/Filt_er/Hinne 0 sobib (tavaline)" #: ../pan/gui/actions.cc:715 #, fuzzy msgid "Match Scores of -9998...-1 (_Low)" msgstr "/Filt_er/Hinded -9998 kuni -1 (madal) sobivad" #: ../pan/gui/actions.cc:716 #, fuzzy msgid "Match Scores of -9999 (_Ignored)" msgstr "/Filt_er/Hinne -9999 (ignoreeritav) sobib" #: ../pan/gui/actions.cc:718 msgid "Enable/Disable All _Rules" msgstr "" #: ../pan/gui/actions.cc:744 #, fuzzy msgid "Show Matching _Articles" msgstr "/Filt_er/Näita sobivaid artikleid" #: ../pan/gui/actions.cc:745 #, fuzzy msgid "Show Matching Articles' _Threads" msgstr "/Filt_er/Näita sobivate artiklitega teemalõngasid" #: ../pan/gui/actions.cc:746 #, fuzzy msgid "Show Matching Articles' _Subthreads" msgstr "/Filt_er/Näita sobivate artiklitega alamteemalõngasid" #: ../pan/gui/body-pane.cc:1011 #, fuzzy, c-format msgid "Unnamed File" msgstr "Vali allkirjafail" #: ../pan/gui/body-pane.cc:1092 ../pan/gui/gui.cc:1864 #: ../pan/gui/header-pane.cc:1188 ../pan/gui/header-pane.cc:1617 #: ../pan/gui/post-ui.cc:2496 ../pan/gui/prefs-ui.cc:833 #: ../pan/gui/score-add-ui.cc:139 msgid "Subject" msgstr "Teema" #: ../pan/gui/body-pane.cc:1094 ../pan/gui/gui.cc:1864 #, fuzzy msgid "From" msgstr "Kellelt" #: ../pan/gui/body-pane.cc:1096 ../pan/gui/gui.cc:1865 #: ../pan/gui/header-pane.cc:1695 ../pan/gui/log-ui.cc:305 #: ../pan/gui/prefs-ui.cc:829 msgid "Date" msgstr "Kuupäev" #: ../pan/gui/body-pane.cc:1103 msgid "Newsgroups" msgstr "Uudisegrupid" #: ../pan/gui/body-pane.cc:1108 #, fuzzy msgid "Followup-To" msgstr "Vastukaja-Kuhu: " #: ../pan/gui/body-pane.cc:1118 msgid "Reply-To" msgstr "Vastus-Kuhu" #: ../pan/gui/body-pane.cc:1160 #, fuzzy msgid " from " msgstr "Kellelt: " #: ../pan/gui/body-pane.cc:1162 #, fuzzy msgid " at " msgstr "Kuupäev: " #: ../pan/gui/body-pane.cc:1264 #, c-format msgid "" "This is a PGP-Signed message.\n" "\n" "Signer : %s ('%s')\n" "Valid until : %s\n" "Created on : %s" msgstr "" #: ../pan/gui/body-pane.cc:1269 msgid "always" msgstr "" #: ../pan/gui/body-pane.cc:1485 msgid "Copy _URL" msgstr "" #: ../pan/gui/body-pane.cc:1680 #, fuzzy msgid "Save attachment as ...." msgstr "Salvesta manused kui..." #: ../pan/gui/body-pane.cc:1683 #, fuzzy msgid "Save all attachments" msgstr "Salvesta manused" #. add a toolbar for attachments #: ../pan/gui/body-pane.cc:1753 msgid "Attachments" msgstr "Manused" #. update the titlebar #: ../pan/gui/dl-headers-ui.cc:106 ../pan/gui/gui.cc:973 #: ../pan/gui/gui.cc:1592 ../pan/gui/gui.cc:1893 #: ../pan/gui/score-add-ui.cc:602 msgid "Pan" msgstr "Pan" #: ../pan/gui/dl-headers-ui.cc:112 #, fuzzy, c-format msgid "%d Group" msgid_plural "%d Groups" msgstr[0] "Grupid" msgstr[1] "Grupid" #: ../pan/gui/dl-headers-ui.cc:135 #, fuzzy msgid "Get the last N _days' headers: " msgstr "Tõmba _viimased päised: " #: ../pan/gui/dl-headers-ui.cc:143 #, fuzzy msgid "Get _new headers" msgstr "uued päised" #: ../pan/gui/dl-headers-ui.cc:147 #, fuzzy msgid "Get _all headers" msgstr "kõik päised" #: ../pan/gui/dl-headers-ui.cc:151 #, fuzzy msgid "Get the _latest N headers: " msgstr "Tõmba _viimased päised: " #: ../pan/gui/e-action-combo-box.c:388 ../pan/gui/prefs-ui.cc:826 #, fuzzy msgid "Action" msgstr "Tegevused" #: ../pan/gui/e-action-combo-box.c:389 msgid "A GtkRadioAction" msgstr "" #: ../pan/gui/e-charset.c:51 ../pan/gui/task-pane.cc:518 msgid "Unknown" msgstr "Tundmatu" #: ../pan/gui/e-charset.c:52 msgid "Arabic" msgstr "" #: ../pan/gui/e-charset.c:53 msgid "Baltic" msgstr "Balti" #: ../pan/gui/e-charset.c:54 msgid "Central European" msgstr "Kesk-Euroopa" #: ../pan/gui/e-charset.c:55 #, fuzzy msgid "Chinese" msgstr "Ridu" #: ../pan/gui/e-charset.c:56 msgid "Cyrillic" msgstr "Kirillits" #: ../pan/gui/e-charset.c:57 msgid "Greek" msgstr "Kreeka" #: ../pan/gui/e-charset.c:58 msgid "Hebrew" msgstr "" #: ../pan/gui/e-charset.c:59 msgid "Japanese" msgstr "Jaapani" #: ../pan/gui/e-charset.c:60 msgid "Korean" msgstr "Korea" #: ../pan/gui/e-charset.c:61 msgid "Thai" msgstr "" #: ../pan/gui/e-charset.c:62 msgid "Turkish" msgstr "Türgi" #: ../pan/gui/e-charset.c:63 #, fuzzy msgid "Unicode" msgstr "Unicode, UTF-8" #: ../pan/gui/e-charset.c:64 #, fuzzy msgid "Western European" msgstr "Kesk-Euroopa" #: ../pan/gui/e-charset.c:65 #, fuzzy msgid "Western European, New" msgstr "Lääne, uus" #: ../pan/gui/e-charset.c:84 ../pan/gui/e-charset.c:85 #: ../pan/gui/e-charset.c:86 #, fuzzy msgid "Traditional" msgstr "Hiina, traditsiooniline" #: ../pan/gui/e-charset.c:87 ../pan/gui/e-charset.c:88 #: ../pan/gui/e-charset.c:89 ../pan/gui/e-charset.c:90 #, fuzzy msgid "Simplified" msgstr "Hiina, lihtsustatud" #: ../pan/gui/e-charset.c:93 msgid "Ukrainian" msgstr "Ukraina" #: ../pan/gui/e-charset.c:96 msgid "Visual" msgstr "" #: ../pan/gui/e-charset-combo-box.c:93 ../pan/gui/gui.cc:2058 #: ../pan/gui/post-ui.cc:519 ../pan/gui/prefs-ui.cc:737 #, fuzzy msgid "Character Encoding" msgstr "_Märgistik:" #: ../pan/gui/e-charset-combo-box.c:117 msgid "Enter the character set to use" msgstr "" #: ../pan/gui/e-charset-combo-box.c:336 msgid "Other..." msgstr "" #: ../pan/gui/e-cte-dialog.c:78 #, fuzzy msgid "Default encoding" msgstr "\"%s\" dekodeerimine" #: ../pan/gui/e-cte-dialog.c:80 #, fuzzy msgid "7Bit Encoding" msgstr "/Kodeering" #: ../pan/gui/e-cte-dialog.c:82 #, fuzzy msgid "8Bit Encoding" msgstr "/Kodeering" #: ../pan/gui/e-cte-dialog.c:84 #, fuzzy msgid "BASE64 Encoding" msgstr "/Kodeering" #: ../pan/gui/e-cte-dialog.c:86 #, fuzzy msgid "Quoted-Printable Encoding" msgstr "_Artiklipaan" #: ../pan/gui/group-pane.cc:500 msgid "Group" msgstr "Grupid" #: ../pan/gui/group-pane.cc:501 #, fuzzy msgid "Group (regex)" msgstr "Grupi omadused" #: ../pan/gui/group-pane.cc:913 msgid "Subscribed Groups" msgstr "Tellitud grupid" #: ../pan/gui/group-pane.cc:914 #, fuzzy msgid "Other Groups" msgstr "Uued grupid" #: ../pan/gui/group-pane.cc:954 ../pan/gui/score-view-ui.cc:157 msgid "Name" msgstr "Nimi" #: ../pan/gui/group-prefs-dialog.cc:156 #, fuzzy msgid "No Profiles defined in Edit|Posting Profiles." msgstr "/_Tööriistad/_Kasutajaprofiilid..." #: ../pan/gui/group-prefs-dialog.cc:231 #, fuzzy msgid "Pan: Group Preferences" msgstr "Pani sätted" #: ../pan/gui/group-prefs-dialog.cc:247 #, fuzzy, c-format msgid "Properties for Groups" msgstr "\"%s\" omadused" #: ../pan/gui/group-prefs-dialog.cc:249 #, fuzzy, c-format msgid "Properties for %s" msgstr "\"%s\" omadused" #: ../pan/gui/group-prefs-dialog.cc:257 #, fuzzy msgid "Character _encoding:" msgstr "_Märgistik:" #: ../pan/gui/group-prefs-dialog.cc:259 #, fuzzy msgid "Directory for Saving Attachments" msgstr "Kataloog, kuhu salvestatakse manused" #: ../pan/gui/group-prefs-dialog.cc:269 #, fuzzy msgid "Directory for _saving attachments:" msgstr "Kataloog, kuhu salvestatakse manused" #: ../pan/gui/group-prefs-dialog.cc:271 #, fuzzy msgid "Posting _profile:" msgstr "Pan: Kasutajad" #: ../pan/gui/group-prefs-dialog.cc:277 msgid "Spellchecker _language:" msgstr "" #: ../pan/gui/gui.cc:273 msgid "Open the Task Manager" msgstr "Avab töödejuhataja" #: ../pan/gui/gui.cc:301 #, fuzzy msgid "Open the Event Log" msgstr "Ava logiraamat" #: ../pan/gui/gui.cc:561 msgid "Save NZB's Files" msgstr "" #: ../pan/gui/gui.cc:588 msgid "Untitled.nzb" msgstr "" #: ../pan/gui/gui.cc:590 #, fuzzy msgid "Save NZB File as..." msgstr "Impordi .newsrc..." #: ../pan/gui/gui.cc:757 #, fuzzy msgid "Import NZB Files" msgstr "Impordi .newsrc..." #: ../pan/gui/gui.cc:765 ../pan/gui/post-ui.cc:3197 #, fuzzy msgid "NZB Files" msgstr "Failid" #: ../pan/gui/gui.cc:770 #, fuzzy msgid "All Files" msgstr "Failid" #: ../pan/gui/gui.cc:1258 #, fuzzy msgid "Unable to supersede article." msgstr "Salvesta artikkel kui..." #: ../pan/gui/gui.cc:1259 ../pan/gui/gui.cc:1333 msgid "The article doesn't match any of your posting profiles." msgstr "" #: ../pan/gui/gui.cc:1306 msgid "Revise and send this article to replace the old one." msgstr "" #: ../pan/gui/gui.cc:1307 ../pan/gui/gui.cc:1370 msgid "Be patient! It will take time for your changes to take effect." msgstr "" #: ../pan/gui/gui.cc:1332 #, fuzzy msgid "Unable to cancel article." msgstr "Ei saa faili moodi muuta" #: ../pan/gui/gui.cc:1369 msgid "Send this article to ask your server to cancel your other one." msgstr "" #: ../pan/gui/gui.cc:1387 msgid "You marked some articles for deletion" msgstr "" #: ../pan/gui/gui.cc:1388 #, fuzzy msgid "Are you sure you want to delete them?" msgstr "" "Kas oled kindel, et tahad kustutada need %d gruppi/kataloogi ja neis " "sisalduvad artiklid?" #: ../pan/gui/gui.cc:1413 #, fuzzy msgid "Always trust" msgstr "Redaktor" #: ../pan/gui/gui.cc:1416 msgid "Do you want to accept it permanently (deletable afterwards) ?" msgstr "" #: ../pan/gui/gui.cc:1595 #, fuzzy msgid "Copyright \\u00A9 2002-2012 Charles Kerr and others" msgstr "Copyright (C) 2003 Charles Kerr" #: ../pan/gui/gui.cc:1600 msgid "translator-credits" msgstr "" #: ../pan/gui/gui.cc:1709 #, fuzzy msgid "_1. Group Pane" msgstr "Gruppide paan" #: ../pan/gui/gui.cc:1710 #, fuzzy msgid "_2. Header Pane" msgstr "T_eemalõngade paan:" #: ../pan/gui/gui.cc:1711 #, fuzzy msgid "_3. Body Pane" msgstr "Artiklipaan" #: ../pan/gui/gui.cc:1800 ../pan/gui/gui.cc:1815 msgid " Bytes" msgstr "" #: ../pan/gui/gui.cc:1803 msgid " KB" msgstr "" #: ../pan/gui/gui.cc:1806 msgid " MB" msgstr "" #: ../pan/gui/gui.cc:1809 msgid " GB" msgstr "" #: ../pan/gui/gui.cc:1812 msgid " TB" msgstr "" #: ../pan/gui/gui.cc:1844 #, fuzzy, c-format msgid "This article is complete with %d part." msgid_plural "This article has all %d parts." msgstr[0] "Artiklil ei ole manuseid" msgstr[1] "Artiklil ei ole manuseid" #: ../pan/gui/gui.cc:1846 #, fuzzy, c-format msgid "This article is missing %d part." msgid_plural "This article is missing %d of its %d parts:" msgstr[0] "Artiklil ei ole manuseid" msgstr[1] "Artiklil ei ole manuseid" #: ../pan/gui/gui.cc:1865 ../pan/gui/header-pane.cc:1190 msgid "Message-ID" msgstr "Artikli-ID" #: ../pan/gui/gui.cc:1866 ../pan/gui/header-pane.cc:1665 #: ../pan/gui/prefs-ui.cc:830 msgid "Lines" msgstr "Ridu" #: ../pan/gui/gui.cc:1866 msgid "Size" msgstr "" #: ../pan/gui/gui.cc:1867 ../pan/gui/header-pane.cc:1680 #: ../pan/gui/prefs-ui.cc:828 msgid "Bytes" msgstr "" #: ../pan/gui/gui.cc:1917 msgid "" "Error loading iconv library. Some Charsets in the GUI will not be able to be " "encoded." msgstr "" #: ../pan/gui/gui.cc:2059 #, fuzzy msgid "Body Pane Encoding" msgstr "_Artiklipaan" #: ../pan/gui/gui.cc:2090 ../pan/gui/task-pane.cc:569 #, c-format msgid "Offline" msgstr "Ühendamata" #: ../pan/gui/gui.cc:2094 #, fuzzy, c-format msgid "Closing %d connection" msgid_plural "Closing %d connections" msgstr[0] "%d ühenduse sulgemine" msgstr[1] "%d ühenduse sulgemine" #: ../pan/gui/gui.cc:2096 ../pan/gui/gui.cc:2126 #, c-format msgid "No Connections" msgstr "Ühendusi pole" #: ../pan/gui/gui.cc:2100 #, c-format msgid "Connecting" msgstr "Ühendamine" #: ../pan/gui/gui.cc:2113 #, c-format msgid "%s: %d idle, %d active @ %.1f KiBps" msgstr "" #: ../pan/gui/gui.cc:2169 #, c-format msgid "No Tasks" msgstr "Töid pole" #: ../pan/gui/gui.cc:2171 ../pan/gui/prefs-ui.cc:1047 msgid "Tasks" msgstr "Tööd" #: ../pan/gui/gui.cc:2182 ../pan/gui/task-pane.cc:435 #, c-format msgid "%lu tasks, %s, %.1f KiBps, ETA %d:%02d:%02d" msgstr "" #: ../pan/gui/gui.cc:2234 msgid "" "Pan is now offline. Please see \"File|Event Log\" and correct the problem, " "then use \"File|Work Online\" to continue." msgstr "" #: ../pan/gui/header-pane.cc:1186 #, fuzzy msgid "Subject or Author" msgstr "Teema: " #: ../pan/gui/header-pane.cc:1187 #, fuzzy msgid "Sub or Auth (regex)" msgstr "Teema: " #: ../pan/gui/header-pane.cc:1189 ../pan/gui/header-pane.cc:1649 #: ../pan/gui/prefs-ui.cc:827 ../pan/gui/score-add-ui.cc:140 msgid "Author" msgstr "Autor" #: ../pan/gui/header-pane.cc:1634 ../pan/gui/prefs-ui.cc:831 msgid "Score" msgstr "Hinne" #: ../pan/gui/log-ui.cc:103 msgid "Save Event List" msgstr "" #: ../pan/gui/log-ui.cc:256 #, fuzzy msgid "Pan: Events" msgstr "Pan: Serverid" #: ../pan/gui/log-ui.cc:315 msgid "Message" msgstr "Artikkel" #: ../pan/gui/pan.cc:330 msgid "Maximize" msgstr "" #: ../pan/gui/pan.cc:383 msgid "An Error has occurred!" msgstr "" #: ../pan/gui/pan.cc:397 #, fuzzy msgid "New Articles!" msgstr "Ainult uued artiklid" #: ../pan/gui/pan.cc:398 msgid "" "There are new\n" "articles available." msgstr "" #: ../pan/gui/pan.cc:465 msgid "Toggle on/offline" msgstr "" #: ../pan/gui/pan.cc:513 msgid "" "Thank you for trying Pan!\n" " \n" "To start newsreading, first Add a Server." msgstr "" #: ../pan/gui/pan.cc:595 msgid "" "General Options\n" " -h, --help Show this usage page.\n" " --verbose Be verbose (in non-GUI mode).\n" "\n" "URL Options\n" " --no-gui On news:message-id, dump the article to stdout.\n" "\n" "NZB Batch Options\n" " --nzb file1 file2 ... Process nzb files without launching all of Pan.\n" " -o path, --output=path Path to save attachments listed in the nzb " "files.\n" " --no-gui Only show console output, not the download " "queue.\n" msgstr "" #: ../pan/gui/pan.cc:867 msgid "Error: --no-gui used without nzb files or news:message-id." msgstr "" #: ../pan/gui/pan.cc:871 #, fuzzy, c-format msgid "Pan %s started" msgstr "Pan %s käivitatud" #: ../pan/gui/pan.cc:890 msgid "Please configure Pan's news servers before using it as an nzb client." msgstr "" #: ../pan/gui/pan.cc:1009 msgid "Pan notification" msgstr "" #: ../pan/gui/post-ui.cc:186 #, c-format msgid "Upload Queue : %ld Tasks, %ld KB (~ %.2f MB) total ." msgstr "" #: ../pan/gui/post-ui.cc:286 #, fuzzy, c-format msgid "Error setting custom spellchecker: %s" msgstr "Viga sokli kodeeringu määramisel: %s" #: ../pan/gui/post-ui.cc:291 ../pan/gui/post-ui.cc:300 #, fuzzy, c-format msgid "Error setting spellchecker: %s" msgstr "Viga sokli kodeeringu määramisel: %s" #: ../pan/gui/post-ui.cc:419 #, fuzzy msgid "_Profile" msgstr "Profiil" #: ../pan/gui/post-ui.cc:420 #, fuzzy msgid "Set Editor" msgstr "Redaktor" #: ../pan/gui/post-ui.cc:422 #, fuzzy msgid "_Send Article" msgstr "/_Liigu/_Vanemartikkel" #: ../pan/gui/post-ui.cc:422 #, fuzzy msgid "Send Article Now" msgstr "Saada nüüd" #: ../pan/gui/post-ui.cc:423 #, fuzzy msgid "_Send and Save Articles to NZB" msgstr "Pan: Salvesta artiklid kui" #: ../pan/gui/post-ui.cc:423 #, fuzzy msgid "Send and Save Articles to NZB" msgstr "Pan: Salvesta artiklid kui" #: ../pan/gui/post-ui.cc:424 #, fuzzy msgid "Set Character _Encoding..." msgstr "_Märgistik:" #: ../pan/gui/post-ui.cc:425 #, fuzzy msgid "Set Content _Transfer Encoding..." msgstr "_Märgistik:" #: ../pan/gui/post-ui.cc:426 #, fuzzy msgid "Sa_ve Draft" msgstr "Salvesta profiil" #: ../pan/gui/post-ui.cc:426 msgid "Save as a Draft for Future Posting" msgstr "" #: ../pan/gui/post-ui.cc:427 #, fuzzy msgid "_Open Draft..." msgstr "_Ava manused..." #: ../pan/gui/post-ui.cc:427 #, fuzzy msgid "Open an Article Draft" msgstr "/_Loe artiklit" #: ../pan/gui/post-ui.cc:432 #, fuzzy msgid "_Rot13" msgstr "Rot13" #: ../pan/gui/post-ui.cc:432 msgid "Rot13 Selected Text" msgstr "Tee valitud tekstile Rot13" #: ../pan/gui/post-ui.cc:433 #, fuzzy msgid "Run _Editor" msgstr "Redaktor" #: ../pan/gui/post-ui.cc:433 #, fuzzy msgid "Run Editor" msgstr "Redaktor" #: ../pan/gui/post-ui.cc:435 msgid "Add _Files to Queue" msgstr "" #: ../pan/gui/post-ui.cc:435 msgid "Add Files to Queue" msgstr "" #: ../pan/gui/post-ui.cc:450 ../pan/gui/post-ui.cc:451 #, fuzzy msgid "Remove from Queue" msgstr "Uudiste server" #: ../pan/gui/post-ui.cc:455 ../pan/gui/post-ui.cc:456 #, fuzzy msgid "Clear List" msgstr "Kustuta" #: ../pan/gui/post-ui.cc:460 ../pan/gui/post-ui.cc:461 #, fuzzy msgid "Select Needed Parts" msgstr "Valitud paigutus: " #: ../pan/gui/post-ui.cc:465 ../pan/gui/post-ui.cc:466 #: ../pan/gui/task-pane.cc:636 ../pan/gui/task-pane.cc:637 msgid "Move Up" msgstr "Liiguta üles" #: ../pan/gui/post-ui.cc:470 ../pan/gui/post-ui.cc:471 #: ../pan/gui/task-pane.cc:641 ../pan/gui/task-pane.cc:642 msgid "Move Down" msgstr "Liiguta alla" #: ../pan/gui/post-ui.cc:475 ../pan/gui/post-ui.cc:476 #, fuzzy msgid "Move to Top" msgstr "Liiguta kataloogi" #: ../pan/gui/post-ui.cc:480 ../pan/gui/post-ui.cc:481 #, fuzzy msgid "Move to Bottom" msgstr "Liiguta kataloogi" #: ../pan/gui/post-ui.cc:488 #, fuzzy msgid "_Wrap Text" msgstr "Murra read" #: ../pan/gui/post-ui.cc:488 #, fuzzy msgid "Wrap Text" msgstr "Murra read" #: ../pan/gui/post-ui.cc:489 #, fuzzy msgid "Always Run Editor" msgstr "Redaktor" #: ../pan/gui/post-ui.cc:490 #, fuzzy msgid "Remember Character Encoding for this Group" msgstr "_Märgistik:" #: ../pan/gui/post-ui.cc:491 #, fuzzy msgid "Thread Attached Replies" msgstr "Teemalõnga on jälgitakse või ignoreeritakse" #: ../pan/gui/post-ui.cc:492 #, fuzzy msgid "PGP-Encrypt the Message" msgstr "_Genereeri Artikli-ID" #: ../pan/gui/post-ui.cc:493 #, fuzzy msgid "PGP-Sign the Message" msgstr "Saada artikkel kohe" #: ../pan/gui/post-ui.cc:494 msgid "Check _Spelling" msgstr "" #: ../pan/gui/post-ui.cc:520 #, fuzzy msgid "New Article's Encoding:" msgstr "/N_äita artikli hindeid" #: ../pan/gui/post-ui.cc:530 #, fuzzy msgid "Content Transfer Encoding" msgstr "_Märgistik:" #: ../pan/gui/post-ui.cc:531 #, fuzzy msgid "New Article's Content Transfer Encoding:" msgstr "/N_äita artikli hindeid" #: ../pan/gui/post-ui.cc:711 msgid "Your changes will be lost!" msgstr "" #: ../pan/gui/post-ui.cc:712 msgid "Close this window and lose your changes?" msgstr "" #: ../pan/gui/post-ui.cc:757 ../pan/gui/post-ui.cc:796 msgid "There were problems with this post." msgstr "" #: ../pan/gui/post-ui.cc:759 ../pan/gui/post-ui.cc:798 #: ../pan/gui/post-ui.cc:861 #, fuzzy msgid "Go Back" msgstr "/_Liigu/Loe tagasi" #: ../pan/gui/post-ui.cc:761 msgid "Post Anyway" msgstr "" #. Prompt the user #: ../pan/gui/post-ui.cc:790 #, fuzzy, c-format msgid "" "Message uses characters not specified in charset '%s' - possibly use '%s' " msgstr "" "Artikkel kasutab märke, mida pole märgistikus '%s' - võibolla peaksid hoopis " "'%s' kasutama?" #: ../pan/gui/post-ui.cc:813 #, fuzzy msgid "Go _Online" msgstr "Ühendatud" #: ../pan/gui/post-ui.cc:860 msgid "The file queue is empty, so no files can be saved." msgstr "" #: ../pan/gui/post-ui.cc:1019 msgid "" "No posting server is set for this posting profile.\n" "Please edit the profile via Edit|Manage Posting Profiles." msgstr "" #: ../pan/gui/post-ui.cc:1054 #, fuzzy msgid "Pan is Offline." msgstr "Ühendamata" #: ../pan/gui/post-ui.cc:1055 msgid "Go online to post the article?" msgstr "" #: ../pan/gui/post-ui.cc:1102 #, c-format msgid "" "Error signing/encrypting your message. Perhaps you misspelled your email-" "address (%s) ?" msgstr "" #: ../pan/gui/post-ui.cc:1267 #, fuzzy msgid "Error opening temporary file" msgstr "Viga ajutise faili avamisel: \"%s\"" #: ../pan/gui/post-ui.cc:1279 #, c-format msgid "Error writing article to temporary file: %s" msgstr "Viga artikli ajutisse faili kirjutamisel: %s" #: ../pan/gui/post-ui.cc:1298 #, fuzzy, c-format msgid "Error parsing \"external editor\" command line: %s (Command was: %s)" msgstr "Viga \"välise redaktori\" käsurea töötlemisel: %s" #: ../pan/gui/post-ui.cc:1339 #, c-format msgid "Error starting external editor: %s" msgstr "Viga välise redaktori käivitamisel: %s" #: ../pan/gui/post-ui.cc:1395 #, fuzzy msgid "Open Draft Article" msgstr "/_Loe artiklit" #: ../pan/gui/post-ui.cc:1606 #, fuzzy msgid "Save Draft Article" msgstr "/_Salvesta artiklid" #: ../pan/gui/post-ui.cc:1803 #, fuzzy, c-format msgid "Couldn't parse signature command \"%s\": %s" msgstr "Ei saa allkirja programmi \"%s\" käivitada: %s" #: ../pan/gui/post-ui.cc:1839 #, fuzzy msgid "Couldn't convert signature to UTF-8." msgstr "" "Ei saa allkirjafaili '%s' UTF-8'sse ümber kodeerida. Allkirja kodeering " "peaks olema '%s'" #: ../pan/gui/post-ui.cc:2334 #, fuzzy msgid "F_rom" msgstr "Kellelt" #: ../pan/gui/post-ui.cc:2352 #, fuzzy msgid "_Subject" msgstr "_Teema:" #: ../pan/gui/post-ui.cc:2365 #, fuzzy msgid "_Newsgroups" msgstr "/_Uudisegrupid" #: ../pan/gui/post-ui.cc:2379 #, fuzzy msgid "Mail _To" msgstr "Meiliaadressile" #: ../pan/gui/post-ui.cc:2481 #, fuzzy msgid "Delete from Queue" msgstr "/Kus_tuta grupp" #: ../pan/gui/post-ui.cc:2494 msgid "No." msgstr "" #: ../pan/gui/post-ui.cc:2498 ../pan/gui/post-ui.cc:2592 #: ../pan/gui/post-ui.cc:2633 msgid "Filename" msgstr "Faili nimi" #: ../pan/gui/post-ui.cc:2500 msgid "Size (kB)" msgstr "" #: ../pan/gui/post-ui.cc:2600 #, fuzzy msgid "The current filename" msgstr "Kasuta kodeeritud failinime" #: ../pan/gui/post-ui.cc:2604 #, fuzzy msgid "Subject Line" msgstr "Teema" #: ../pan/gui/post-ui.cc:2612 msgid "The current Subject Line" msgstr "" #: ../pan/gui/post-ui.cc:2626 msgid "No. " msgstr "" #: ../pan/gui/post-ui.cc:2630 msgid "Enable/Disable" msgstr "" #: ../pan/gui/post-ui.cc:2664 #, fuzzy msgid "Follo_wup-To" msgstr "Vastukaja-Kuhu: " #. i18n: "poster" is a key used by many newsreaders. probably safest to keep this key in english. #: ../pan/gui/post-ui.cc:2673 #, fuzzy msgid "" "The newsgroups where replies to your message should go. This is only needed " "if it differs from the \"Newsgroups\" header.\n" "\n" "To direct all replies to your email address, use \"Followup-To: poster\"" msgstr "" "Followup-To. Uudisegrupp või -grupid, kuhu vastused sinu postitatud " "artiklile peaksid minema. See on vajalik ainult juhul kui ta erineb " "\"Postita gruppidesse\" päisest. \n" "Kõikide vastuste oma meiliaadressile suunamiseks kasuta \"Vastukaja-Kuhu: " "poster\"" #: ../pan/gui/post-ui.cc:2679 #, fuzzy msgid "_Reply-To" msgstr "Vastus-Kuhu" #: ../pan/gui/post-ui.cc:2687 msgid "" "The email account where mail replies to your posted message should go. This " "is only needed if it differs from the \"From\" header." msgstr "" "Reply-To. Meiliaadress, kuhu tuleb saata vastused sinu sõnumile. See on " "vajalik ainult sel juhul, kui ta on erinev \"Kellelt\" väärtusest." #: ../pan/gui/post-ui.cc:2693 #, fuzzy msgid "_Custom Headers" msgstr "Oma päised" #: ../pan/gui/post-ui.cc:2717 #, fuzzy msgid "Add \"_User-Agent\" header" msgstr "Lisa \"User-Agent\" päis" #: ../pan/gui/post-ui.cc:2724 #, fuzzy msgid "Add \"Message-_Id\" header" msgstr "Lisa \"Message-Id\" päis" #: ../pan/gui/post-ui.cc:2855 #, fuzzy msgid "Select Parts" msgstr "Vali kirjatüüp" #: ../pan/gui/post-ui.cc:2866 msgid "_Parts" msgstr "" #: ../pan/gui/post-ui.cc:3022 #, fuzzy msgid "Post Article" msgstr "Laeb artikli" #: ../pan/gui/post-ui.cc:3043 #, fuzzy msgid "_Message" msgstr "Artikkel" #: ../pan/gui/post-ui.cc:3044 #, fuzzy msgid "More _Headers" msgstr "Lisapäised" #: ../pan/gui/post-ui.cc:3045 #, fuzzy msgid "File _Queue" msgstr "Tühjenda järjekord" #: ../pan/gui/post-ui.cc:3077 ../pan/gui/profiles-dialog.cc:478 #, no-c-format msgid "On %d, %n wrote:" msgstr "%d kirjutas %n:" #: ../pan/gui/post-ui.cc:3106 msgid "Add files to queue" msgstr "" #: ../pan/gui/post-ui.cc:3184 msgid "Save Upload Queue as NZB File" msgstr "" #: ../pan/gui/prefs.cc:343 #, fuzzy, c-format msgid "Couldn't parse %s color \"%s\"" msgstr "Ei saa allkirja käsku \"%s\" töödelda" #: ../pan/gui/prefs-ui.cc:120 msgid "Grab Key" msgstr "" #: ../pan/gui/prefs-ui.cc:126 #, c-format msgid "" "Press the combination of the keys\n" "you want to use for \"%s\"." msgstr "" #: ../pan/gui/prefs-ui.cc:166 #, fuzzy msgid "Edit Hotkey" msgstr "Muuda filtreid" #: ../pan/gui/prefs-ui.cc:228 msgid "Error: Shortkey is invalid!" msgstr "" #: ../pan/gui/prefs-ui.cc:244 #, fuzzy msgid "Error: Shortkey already exists!" msgstr "Sellise nimega server on juba olemas." #: ../pan/gui/prefs-ui.cc:535 #, fuzzy msgid "Show only icons" msgstr "Näita ainult minu postitusi" #: ../pan/gui/prefs-ui.cc:536 #, fuzzy msgid "Show only text" msgstr "Näita ainult minu postitusi" #: ../pan/gui/prefs-ui.cc:537 #, fuzzy msgid "Show icons and text" msgstr "Salvesta manused _kataloogi:" #: ../pan/gui/prefs-ui.cc:576 #, fuzzy msgid "Use GNOME Preferences" msgstr "Onlain häälestus" #: ../pan/gui/prefs-ui.cc:577 #, fuzzy msgid "Use KDE Preferences" msgstr "Onlain häälestus" #: ../pan/gui/prefs-ui.cc:578 #, fuzzy msgid "Use OS X Preferences" msgstr "Onlain häälestus" #: ../pan/gui/prefs-ui.cc:579 #, fuzzy msgid "Use Windows Preferences" msgstr "Sessiooni sätted" #: ../pan/gui/prefs-ui.cc:580 #, fuzzy msgid "Custom Command:" msgstr "Printimise käsk:" #: ../pan/gui/prefs-ui.cc:632 #, fuzzy msgid "Disabled" msgstr "Ebaõnnestus" #: ../pan/gui/prefs-ui.cc:633 msgid "Only new (Score == 0)" msgstr "" #: ../pan/gui/prefs-ui.cc:634 #, fuzzy msgid "9999 or more" msgstr "/Filt_er/Hinne -9999 (ignoreeritav) sobib" #: ../pan/gui/prefs-ui.cc:635 msgid "5000 to 9998" msgstr "" #: ../pan/gui/prefs-ui.cc:636 msgid "1 to 4999" msgstr "" #: ../pan/gui/prefs-ui.cc:637 msgid "-9998 to -1" msgstr "" #: ../pan/gui/prefs-ui.cc:638 #, fuzzy msgid "-9999 or less" msgstr "/Filt_er/Hinne -9999 (ignoreeritav) sobib" #: ../pan/gui/prefs-ui.cc:702 #, c-format msgid "Select default global charset. Current setting : %s ." msgstr "" #: ../pan/gui/prefs-ui.cc:738 #, fuzzy msgid "Global Charset Settings" msgstr "Üldised sätted" #: ../pan/gui/prefs-ui.cc:832 ../pan/gui/task-pane.cc:770 #, fuzzy msgid "State" msgstr "Olek" #: ../pan/gui/prefs-ui.cc:866 #, fuzzy msgid "Enabled" msgstr "Ebaõnnestus" #: ../pan/gui/prefs-ui.cc:870 #, fuzzy msgid "Column Name" msgstr "Veerg" #: ../pan/gui/prefs-ui.cc:908 #, fuzzy msgid "Pan: Preferences" msgstr "Pani sätted" #: ../pan/gui/prefs-ui.cc:923 msgid "Mouse" msgstr "Hiir" #: ../pan/gui/prefs-ui.cc:925 #, fuzzy msgid "Single-click activates, rather than selects, _groups" msgstr "Ühekordne _klõps valib, mitte ei laadi, grupid" #: ../pan/gui/prefs-ui.cc:927 #, fuzzy msgid "Single-click activates, rather than selects, _articles" msgstr "Ühekordne klõp_s valib, mitte ei laadi, päised" #: ../pan/gui/prefs-ui.cc:930 #, fuzzy msgid "Groups" msgstr "Grupid" #: ../pan/gui/prefs-ui.cc:932 #, fuzzy msgid "Get new headers in subscribed groups on _startup" msgstr "Tõmba uued päised tellitud gruppidest" #: ../pan/gui/prefs-ui.cc:934 #, fuzzy msgid "Get new headers when _entering group" msgstr "Tõmba uued päised _gruppi sisenemisel" #: ../pan/gui/prefs-ui.cc:936 #, fuzzy msgid "Mark entire group _read when leaving group" msgstr "_Märgi grupist lahkumisel artiklid loetuks" #: ../pan/gui/prefs-ui.cc:938 #, fuzzy msgid "Mark entire group read before getting _new headers" msgstr "_Märgi grupist lahkumisel artiklid loetuks" #: ../pan/gui/prefs-ui.cc:940 #, fuzzy msgid "E_xpand all threads when entering group" msgstr "Tõmba uued päised _gruppi sisenemisel" #: ../pan/gui/prefs-ui.cc:945 msgid "Articles" msgstr "Artiklid" #: ../pan/gui/prefs-ui.cc:947 #, fuzzy msgid "Space selects next article rather than next unread" msgstr "Salvesta valitud artiklid ja nende manused kettale." #: ../pan/gui/prefs-ui.cc:949 #, fuzzy msgid "Expand threads upon selection" msgstr "/_Redaktor/Lisa t_eemalõngad valikusse" #: ../pan/gui/prefs-ui.cc:951 msgid "Always show article deletion confirmation dialog" msgstr "" #: ../pan/gui/prefs-ui.cc:953 #, fuzzy msgid "Smooth scrolling" msgstr "Sujuv k_erimine kiirusega:" #: ../pan/gui/prefs-ui.cc:958 #, fuzzy msgid "Article Cache" msgstr "Artiklite puhverdamine" #: ../pan/gui/prefs-ui.cc:959 msgid "Clear article cache on shutdown" msgstr "" #: ../pan/gui/prefs-ui.cc:962 msgid "Size of article cache (in MiB) :" msgstr "" #: ../pan/gui/prefs-ui.cc:967 #, fuzzy msgid "File extension for Cached Articles: " msgstr "/_Filtrid/Näita salvestatud artikleid" #: ../pan/gui/prefs-ui.cc:972 msgid "Tabs" msgstr "" #: ../pan/gui/prefs-ui.cc:977 #, fuzzy msgid "_Behavior" msgstr "_Käitumine" #: ../pan/gui/prefs-ui.cc:977 #, fuzzy msgid "Behavior" msgstr "_Käitumine" #: ../pan/gui/prefs-ui.cc:983 #, fuzzy msgid "Language Settings" msgstr "Muud sätted" #. systray and notify popup #: ../pan/gui/prefs-ui.cc:992 #, fuzzy msgid "System Tray Behavior" msgstr "_Käitumine" #: ../pan/gui/prefs-ui.cc:994 msgid "Hide to system tray" msgstr "" #: ../pan/gui/prefs-ui.cc:996 #, fuzzy msgid "Start Pan minimized" msgstr "_Käivita Pan ühendatud olekus" #: ../pan/gui/prefs-ui.cc:999 #, fuzzy msgid "Show notifications" msgstr "Profiili info" #. allow multiple instances (seperate, not communicating with dbus) #: ../pan/gui/prefs-ui.cc:1004 #, fuzzy msgid "Startup Behavior" msgstr "_Käitumine" #: ../pan/gui/prefs-ui.cc:1006 msgid "Allow multiple instances of Pan" msgstr "" #: ../pan/gui/prefs-ui.cc:1011 #, fuzzy msgid "Autosave Article Draft" msgstr "/_Loe artiklit" #: ../pan/gui/prefs-ui.cc:1013 #, fuzzy msgid "Minutes to autosave the current Article Draft: " msgstr "/_Loe artiklit" #: ../pan/gui/prefs-ui.cc:1018 #, fuzzy msgid "Autosave Articles" msgstr "Näita salvestatud artikleid" #: ../pan/gui/prefs-ui.cc:1020 msgid "Minutes to autosave newsrc files: " msgstr "" #: ../pan/gui/prefs-ui.cc:1026 msgid "_Miscellaneous" msgstr "" #: ../pan/gui/prefs-ui.cc:1026 msgid "Miscellaneous" msgstr "" #: ../pan/gui/prefs-ui.cc:1031 msgid "Pane Layout" msgstr "Paanide asetus" #: ../pan/gui/prefs-ui.cc:1050 msgid "1=Groups, 2=Headers, 3=Body" msgstr "" #: ../pan/gui/prefs-ui.cc:1052 msgid "1=Groups, 2=Body, 3=Headers" msgstr "" #: ../pan/gui/prefs-ui.cc:1054 msgid "1=Headers, 2=Groups, 3=Body" msgstr "" #: ../pan/gui/prefs-ui.cc:1056 msgid "1=Headers, 2=Body, 3=Groups" msgstr "" #: ../pan/gui/prefs-ui.cc:1058 msgid "1=Body, 2=Groups, 3=Headers" msgstr "" #: ../pan/gui/prefs-ui.cc:1060 msgid "1=Body, 2=Headers, 3=Groups" msgstr "" #: ../pan/gui/prefs-ui.cc:1064 #, fuzzy msgid "Layout" msgstr "_Asetus" #: ../pan/gui/prefs-ui.cc:1069 #, fuzzy msgid "Header Pane Columns" msgstr "Teemalõngade paan" #: ../pan/gui/prefs-ui.cc:1073 #, fuzzy msgid "_Headers" msgstr "Päised" #: ../pan/gui/prefs-ui.cc:1073 #, fuzzy msgid "Headers" msgstr "Päised" #: ../pan/gui/prefs-ui.cc:1079 msgid "" "This menu lets you configure Pan to take certain actions on your behalf " "automatically, based on a post's score." msgstr "" #: ../pan/gui/prefs-ui.cc:1082 msgid "_Delete posts scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1084 msgid "Mark posts _read scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1086 msgid "_Cache posts scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1088 msgid "Download _attachments of posts scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1091 #, fuzzy msgid "Actions" msgstr "Tegevused" #: ../pan/gui/prefs-ui.cc:1096 ../pan/gui/prefs-ui.cc:1117 msgid "Fonts" msgstr "Kirjatüübid" #: ../pan/gui/prefs-ui.cc:1098 msgid "Use custom font in Group Pane:" msgstr "Kasuta oma kirjatüüpe gruppide paanis:" #: ../pan/gui/prefs-ui.cc:1103 msgid "Use custom font in Header Pane:" msgstr "Kasuta oma kirjatüüpe teemalõngade paanis:" #: ../pan/gui/prefs-ui.cc:1108 msgid "Use custom font in Body Pane:" msgstr "Kasuta oma kirjatüüpe artiklipaanis:" #: ../pan/gui/prefs-ui.cc:1113 #, fuzzy msgid "Monospace font:" msgstr "_Ühelaiune kirjatüüp:" #: ../pan/gui/prefs-ui.cc:1117 #, fuzzy msgid "_Fonts" msgstr "Kirjatüübid" #: ../pan/gui/prefs-ui.cc:1122 msgid "Header Pane" msgstr "Teemalõngade paan" #: ../pan/gui/prefs-ui.cc:1125 ../pan/gui/prefs-ui.cc:1131 #: ../pan/gui/prefs-ui.cc:1137 ../pan/gui/prefs-ui.cc:1143 #: ../pan/gui/prefs-ui.cc:1149 ../pan/gui/prefs-ui.cc:1155 msgid "Text:" msgstr "Tekst:" #: ../pan/gui/prefs-ui.cc:1127 ../pan/gui/prefs-ui.cc:1133 #: ../pan/gui/prefs-ui.cc:1139 ../pan/gui/prefs-ui.cc:1145 #: ../pan/gui/prefs-ui.cc:1151 ../pan/gui/prefs-ui.cc:1157 msgid "Background:" msgstr "Sisu taust:" #: ../pan/gui/prefs-ui.cc:1129 #, fuzzy msgid "Scores of 9999 or more:" msgstr "/Filt_er/Hinne -9999 (ignoreeritav) sobib" #: ../pan/gui/prefs-ui.cc:1135 msgid "Scores from 5000 to 9998:" msgstr "" #: ../pan/gui/prefs-ui.cc:1141 msgid "Scores from 1 to 4999:" msgstr "" #: ../pan/gui/prefs-ui.cc:1147 msgid "Scores from -9998 to -1:" msgstr "" #: ../pan/gui/prefs-ui.cc:1153 #, fuzzy msgid "Scores of -9999 or less:" msgstr "/Filt_er/Hinne -9999 (ignoreeritav) sobib" #: ../pan/gui/prefs-ui.cc:1159 #, fuzzy msgid "Read collapsed thread:" msgstr "Sulge kõik teemalõngad" #: ../pan/gui/prefs-ui.cc:1161 #, fuzzy msgid "Body Pane" msgstr "_Artiklipaan" #: ../pan/gui/prefs-ui.cc:1167 #, fuzzy msgid "Quoted text:" msgstr "Kvooditud tekst:" #: ../pan/gui/prefs-ui.cc:1168 #, fuzzy msgid "URL:" msgstr "URLid:" #: ../pan/gui/prefs-ui.cc:1169 #, fuzzy msgid "Signature:" msgstr "A_llkirjafail:" #: ../pan/gui/prefs-ui.cc:1171 #, fuzzy msgid "_Colors" msgstr "Värvid" #: ../pan/gui/prefs-ui.cc:1171 msgid "Colors" msgstr "Värvid" #: ../pan/gui/prefs-ui.cc:1176 #, fuzzy msgid "Preferred Applications" msgstr "_Rakendused" #: ../pan/gui/prefs-ui.cc:1180 #, fuzzy msgid "_Web browser:" msgstr "Uued grupid" #: ../pan/gui/prefs-ui.cc:1183 #, fuzzy msgid "_Mail reader:" msgstr "Postiserver" #: ../pan/gui/prefs-ui.cc:1185 #, fuzzy msgid "_Text editor:" msgstr "Redaktor" #: ../pan/gui/prefs-ui.cc:1187 #, fuzzy msgid "_Applications" msgstr "_Rakendused" #: ../pan/gui/prefs-ui.cc:1187 #, fuzzy msgid "Applications" msgstr "_Rakendused" #: ../pan/gui/prefs-ui.cc:1192 ../pan/gui/task-pane.cc:512 #, fuzzy msgid "Encoding" msgstr "/Kodeering" #: ../pan/gui/prefs-ui.cc:1196 msgid "Default bytes per file (for encoder): " msgstr "" #: ../pan/gui/prefs-ui.cc:1201 #, fuzzy msgid "_Upload" msgstr "_Rakendused" #: ../pan/gui/prefs-ui.cc:1201 msgid "Upload" msgstr "" #: ../pan/gui/prefs-ui.cc:1219 msgid "_Hotkeys" msgstr "" #: ../pan/gui/prefs-ui.cc:1219 msgid "Hotkeys" msgstr "" #: ../pan/gui/profiles-dialog.cc:83 msgid "Please choose your Email Address according to your PGP key's user id." msgstr "" #: ../pan/gui/profiles-dialog.cc:131 #, fuzzy msgid "Posting Profile" msgstr "Pan: Kasutajad" #: ../pan/gui/profiles-dialog.cc:143 msgid "Profile Information" msgstr "Profiili info" #: ../pan/gui/profiles-dialog.cc:147 msgid "_Profile Name:" msgstr "_Profiili nimi:" #: ../pan/gui/profiles-dialog.cc:150 msgid "Required Information" msgstr "Kohustuslik info" #: ../pan/gui/profiles-dialog.cc:154 msgid "_Full Name:" msgstr "_Täisnimi:" #: ../pan/gui/profiles-dialog.cc:158 msgid "" "Your Email Address.\n" "Note that this has to match your PGP Signature's Address\n" "if you want to PGP-Sign or Encrypt your messages correctly." msgstr "" #: ../pan/gui/profiles-dialog.cc:162 msgid "_Email Address:" msgstr "_Meiliaadress:" #: ../pan/gui/profiles-dialog.cc:164 #, fuzzy msgid "_Post Articles via:" msgstr "Laeb artikli" #: ../pan/gui/profiles-dialog.cc:167 #, fuzzy msgid "Signature" msgstr "A_llkirjafail:" #: ../pan/gui/profiles-dialog.cc:170 #, fuzzy msgid "_Use a Signature" msgstr "A_llkirjafail:" #: ../pan/gui/profiles-dialog.cc:174 #, fuzzy msgid "Signature File" msgstr "Vali allkirjafail" #: ../pan/gui/profiles-dialog.cc:184 #, fuzzy msgid "Text File" msgstr "/_Liigu/Järgmine _artikkel" #: ../pan/gui/profiles-dialog.cc:186 #, fuzzy msgid "Text" msgstr "Tekst:" #: ../pan/gui/profiles-dialog.cc:188 #, fuzzy msgid "Command" msgstr "Printimise käsk:" #: ../pan/gui/profiles-dialog.cc:191 #, fuzzy msgid "PGP Signature" msgstr "A_llkirjafail:" #: ../pan/gui/profiles-dialog.cc:196 #, fuzzy msgid "Signature Type : " msgstr "A_llkirjafail:" #: ../pan/gui/profiles-dialog.cc:223 msgid "X-Face (Avatar)" msgstr "" #: ../pan/gui/profiles-dialog.cc:226 msgid "" "You can add an avatar icon to your articles with a unique X-Face code. \n" "Add the code without the trailing \"X-Face:\" \n" " if it was generated by a helper program (for example http://www.dairiki.org/" "xface/xface.php)." msgstr "" #: ../pan/gui/profiles-dialog.cc:229 msgid "_X-Face:" msgstr "" #: ../pan/gui/profiles-dialog.cc:231 msgid "Optional Information" msgstr "Valikuline info" #: ../pan/gui/profiles-dialog.cc:236 #, fuzzy msgid "" "When posting to Usenet, your article's Message-ID contains a domain name. \n" "You can set a custom domain name here, or leave it blank to let Pan use the " "domain name from your email address." msgstr "" "Usenetti postitamisel sisaldab sinu kirja Arikli-ID (Message-ID) päis " "domeeninime. Siia võid sisestada suvalise domeeninime või jätta tühjaks. " "Viimasel juhul kasutab Pan sinu meiliaadressi domeeni." #: ../pan/gui/profiles-dialog.cc:239 msgid "Message-ID _Domain Name:" msgstr "Artikli-ID _domeeninimi:" #: ../pan/gui/profiles-dialog.cc:243 #, c-format msgid "" "%i for Message-ID\n" "%a for Author and Address\n" "%n for Author name\n" "%d for Date" msgstr "" "%i on Artikli-ID\n" "%a on autor koos aadressiga\n" "%n on autori nimi\n" "%d on kuupäev" #: ../pan/gui/profiles-dialog.cc:244 msgid "_Attribution:" msgstr "_Atributsioon:" #: ../pan/gui/profiles-dialog.cc:268 msgid "" "Extra headers to be included in your posts, such as\n" "Reply-To: \"Your Name\"\n" "Organization: Your Organization\n" msgstr "" #: ../pan/gui/profiles-dialog.cc:278 #, fuzzy msgid "E_xtra Headers:" msgstr "Lisapäised" #: ../pan/gui/profiles-dialog.cc:323 #, fuzzy msgid "Invalid email address." msgstr "Vigane aadress \"%s\"" #: ../pan/gui/profiles-dialog.cc:324 msgid "Please use an address of the form joe@somewhere.org" msgstr "" #: ../pan/gui/profiles-dialog.cc:479 msgid "New Profile" msgstr "Uus profiil" #: ../pan/gui/profiles-dialog.cc:525 #, fuzzy msgid "Posting Profiles" msgstr "/_Tööriistad/_Kasutajaprofiilid..." #: ../pan/gui/profiles-dialog.cc:541 #, fuzzy msgid "Profiles" msgstr "Profiil" #: ../pan/gui/save-attach-ui.cc:77 ../pan/gui/save-ui.cc:77 #, fuzzy, c-format msgid "" "%g - group as one directory (alt.binaries.pictures.trains)\n" "%G - group as nested directory (/alt/binaries/pictures/trains)\n" "%s - subject line excerpt\n" "%S - subject line\n" " \n" "\"/home/user/News/Pan/%g\" becomes\n" "\"/home/user/News/Pan/alt.binaries.pictures.trains\", and\n" "\"/home/user/News/Pan/%G\" becomes\n" "\"/home/user/News/Pan/alt/binaries/pictures/trains\"," msgstr "" "%g - grupi nimi ühe kataloogina (alt.binaries.pictures.trains)\n" "%G - grupi nimi alamkataloogidena (/alt/binaries/pictures/trains)\n" " \n" "\"/home/kasutaja/Uudised/Pan/%g\"-st saab\n" "\"/home/kasutaja/Uudised/Pan/alt.binaries.pictures.trains\", ja\n" "\"/home/kasutaja/Uudised/Pan/%G\"-st saab\n" "\"/home/kasutaja/Uudised/Pan/alt/binaries/pictures/trains\"," #: ../pan/gui/save-attach-ui.cc:223 ../pan/gui/save-ui.cc:242 msgid "Add to the queue sorted by date posted" msgstr "" #: ../pan/gui/save-attach-ui.cc:224 ../pan/gui/save-ui.cc:243 #, fuzzy msgid "Add to the front of the queue" msgstr "Lisa ülesanne tööde järjekorra _lõppu" #: ../pan/gui/save-attach-ui.cc:225 ../pan/gui/save-ui.cc:244 #, fuzzy msgid "Add to the back of the queue" msgstr "Lisa ülesanne tööde järjekorra lõppu" #: ../pan/gui/save-attach-ui.cc:257 #, fuzzy msgid "Pan: Save Attachments" msgstr "Salvesta _manused" #: ../pan/gui/save-attach-ui.cc:282 ../pan/gui/save-attach-ui.cc:300 #: ../pan/gui/save-ui.cc:296 ../pan/gui/save-ui.cc:314 #, fuzzy msgid "_Location:" msgstr "Läti" #: ../pan/gui/save-attach-ui.cc:286 ../pan/gui/save-ui.cc:300 #, fuzzy msgid "Save Articles" msgstr "/_Salvesta manused kui..." #: ../pan/gui/save-attach-ui.cc:303 ../pan/gui/save-ui.cc:317 #, c-format msgid "_Group's path: %s" msgstr "" #: ../pan/gui/save-attach-ui.cc:314 ../pan/gui/save-ui.cc:332 msgid "_Priority:" msgstr "" #: ../pan/gui/save-ui.cc:233 #, fuzzy msgid "Save attachments" msgstr "Salvesta manused" #: ../pan/gui/save-ui.cc:234 #, fuzzy msgid "Save text" msgstr "Salvesta _tekst" #: ../pan/gui/save-ui.cc:235 #, fuzzy msgid "Save attachments and text" msgstr "Salvesta manused _kataloogi:" #: ../pan/gui/save-ui.cc:271 #, fuzzy msgid "Pan: Save Articles" msgstr "Pan: Salvesta artiklid kui" #: ../pan/gui/save-ui.cc:328 #, fuzzy msgid "_Action:" msgstr "Tegevused" #: ../pan/gui/score-add-ui.cc:89 msgid "is more than" msgstr "" #: ../pan/gui/score-add-ui.cc:90 #, fuzzy msgid "is at most" msgstr "Artikkel _on vähemalt" #: ../pan/gui/score-add-ui.cc:112 #, fuzzy msgid "increase the article's score by" msgstr "T_äida/murra read artikli sisus" #: ../pan/gui/score-add-ui.cc:113 #, fuzzy msgid "decrease the article's score by" msgstr "T_äida/murra read artikli sisus" #: ../pan/gui/score-add-ui.cc:114 #, fuzzy msgid "set the article's score to" msgstr "määra hindeks" #: ../pan/gui/score-add-ui.cc:115 #, fuzzy msgid "watch the article (set its score to 9999)" msgstr "_Jälgi (hinne 9999)" #: ../pan/gui/score-add-ui.cc:116 #, fuzzy msgid "ignore the article (set its score to -9999)" msgstr "_Ignoreeri (hinne -9999)" #: ../pan/gui/score-add-ui.cc:141 #, fuzzy msgid "References" msgstr "_Viited:" #: ../pan/gui/score-add-ui.cc:142 #, fuzzy msgid "Line Count" msgstr "Rida %d, veerg %d" #: ../pan/gui/score-add-ui.cc:143 msgid "Byte Count" msgstr "" #: ../pan/gui/score-add-ui.cc:144 msgid "Crosspost Group Count" msgstr "" #: ../pan/gui/score-add-ui.cc:145 msgid "Age (in days)" msgstr "" #: ../pan/gui/score-add-ui.cc:167 msgid "for the next month" msgstr "" #: ../pan/gui/score-add-ui.cc:168 msgid "for the next six months" msgstr "" #: ../pan/gui/score-add-ui.cc:169 #, fuzzy msgid "forever" msgstr "Server" #: ../pan/gui/score-add-ui.cc:194 msgid "contains" msgstr "sisaldab" #: ../pan/gui/score-add-ui.cc:195 #, fuzzy msgid "doesn't contain" msgstr "ei sisalda" #: ../pan/gui/score-add-ui.cc:196 msgid "is" msgstr "on" #: ../pan/gui/score-add-ui.cc:197 #, fuzzy msgid "isn't" msgstr "ei ole" #: ../pan/gui/score-add-ui.cc:198 msgid "starts with" msgstr "algab" #: ../pan/gui/score-add-ui.cc:199 msgid "ends with" msgstr "lõppeb" #: ../pan/gui/score-add-ui.cc:200 #, fuzzy msgid "matches regex" msgstr "vastab regulaaravaldisele" #: ../pan/gui/score-add-ui.cc:481 #, fuzzy msgid "Another rule already sets this article's score." msgstr "T_äida/murra read artikli sisus" #: ../pan/gui/score-add-ui.cc:482 msgid "You may want to go back or delete the old rule." msgstr "" #: ../pan/gui/score-add-ui.cc:553 msgid "Add and Re_score" msgstr "Lisa ja _arvuta üle" #: ../pan/gui/score-add-ui.cc:604 ../pan/gui/score-add-ui.cc:624 #, fuzzy msgid "New Scoring Rule" msgstr "Uus hinne" #: ../pan/gui/score-add-ui.cc:635 msgid "If the group name" msgstr "" #: ../pan/gui/score-add-ui.cc:642 #, fuzzy msgid "And the article's" msgstr "Vastavaid artikleid" #: ../pan/gui/score-view-ui.cc:56 msgid "Close and Re_score" msgstr "Sulge ja _arvuta üle" #: ../pan/gui/score-view-ui.cc:154 #, fuzzy, c-format msgid "File %s, Lines %d - %d" msgstr "hindefail %s, rida %d: %s (%s)" #: ../pan/gui/score-view-ui.cc:182 #, fuzzy msgid "Pan: Article's Scores" msgstr "Pan: Näita artikli hindeid" #: ../pan/gui/score-view-ui.cc:208 #, fuzzy msgid "Add" msgstr "liida" #: ../pan/gui/score-view-ui.cc:213 msgid "New Score" msgstr "Uus hinne" #: ../pan/gui/score-view-ui.cc:218 msgid "Criteria" msgstr "Tingimused" #: ../pan/gui/score-view-ui.cc:241 #, fuzzy msgid "Add a New Scoring Rule" msgstr "Lisa uus hinne" #: ../pan/gui/score-view-ui.cc:248 #, fuzzy msgid "Remove the Selected Scoring Rule" msgstr "Eemalda valitud hinne" #: ../pan/gui/server-ui.cc:221 msgid "Please specify the server's address." msgstr "" #: ../pan/gui/server-ui.cc:264 msgid "Import SSL certificate (PEM format) from File" msgstr "" #. create the dialog #: ../pan/gui/server-ui.cc:290 ../pan/gui/server-ui.cc:869 #, fuzzy msgid "Add a Server" msgstr "Lisa uus server" #: ../pan/gui/server-ui.cc:290 ../pan/gui/server-ui.cc:875 #, fuzzy msgid "Edit a Server's Settings" msgstr "Serveripõhised sätted" #: ../pan/gui/server-ui.cc:310 #, fuzzy msgid "Location" msgstr "Läti" #: ../pan/gui/server-ui.cc:314 msgid "The news server's actual address, e.g. \"news.mynewsserver.com\"" msgstr "Uudiseserveri tegelik aadress, näiteks \"news.minuserver.com\"" #: ../pan/gui/server-ui.cc:315 msgid "_Address:" msgstr "_Aadress:" #: ../pan/gui/server-ui.cc:319 #, fuzzy msgid "The news server's port number. Typically 119." msgstr "Uudiseserveri port. See on peaaegu alati 119." #: ../pan/gui/server-ui.cc:320 msgid "Por_t:" msgstr "P_ort:" #: ../pan/gui/server-ui.cc:323 msgid "Login (if Required)" msgstr "" #: ../pan/gui/server-ui.cc:327 msgid "_Username:" msgstr "_Kasutajanimi:" #: ../pan/gui/server-ui.cc:328 msgid "" "The username to give the server when asked. If your server doesn't require " "authentication, you can leave this blank." msgstr "" #: ../pan/gui/server-ui.cc:332 msgid "_Password:" msgstr "_Parool:" #: ../pan/gui/server-ui.cc:333 msgid "" "The password to give the server when asked. If your server doesn't require " "authentication, you can leave this blank." msgstr "" #: ../pan/gui/server-ui.cc:336 #, fuzzy msgid "Settings" msgstr "Muud sätted" #: ../pan/gui/server-ui.cc:343 msgid "Connection _Limit:" msgstr "Ühenduste _limiit:" #: ../pan/gui/server-ui.cc:347 msgid "After Two Weeks" msgstr "" #: ../pan/gui/server-ui.cc:348 msgid "After One Month" msgstr "" #: ../pan/gui/server-ui.cc:349 msgid "After Two Months" msgstr "" #: ../pan/gui/server-ui.cc:350 msgid "After Three Months" msgstr "" #: ../pan/gui/server-ui.cc:351 msgid "After Six Months" msgstr "" #: ../pan/gui/server-ui.cc:352 #, fuzzy msgid "Never Expire Old Articles" msgstr "Kehtib i_gavesti" #: ../pan/gui/server-ui.cc:366 #, fuzzy msgid "E_xpire Old Articles:" msgstr "Laadi kõik artiklid alla" #: ../pan/gui/server-ui.cc:370 #, fuzzy msgid "Primary" msgstr "Prioriteet" #: ../pan/gui/server-ui.cc:371 msgid "Fallback" msgstr "" #: ../pan/gui/server-ui.cc:385 #, fuzzy msgid "Server Rank:" msgstr "Serverid" #: ../pan/gui/server-ui.cc:389 msgid "" "Fallback servers are used for articles that can't be found on the " "primaries. One common approach is to use free servers as primaries and " "subscription servers as fallbacks." msgstr "" #: ../pan/gui/server-ui.cc:396 msgid "Security" msgstr "" #: ../pan/gui/server-ui.cc:401 msgid "Use Plaintext (Unsecured) Connections" msgstr "" #: ../pan/gui/server-ui.cc:402 #, fuzzy msgid "Use Secure SSL Connections" msgstr "Määra serveripõhised ühenduste piirangud" #: ../pan/gui/server-ui.cc:418 msgid "TLS (SSL) Options:" msgstr "" #: ../pan/gui/server-ui.cc:423 msgid "" "You can set the option for using/disabling secure SSL/TLS connections here. " "If you enable SSL/TLS, your data is encrypted and secure. It is encouraged " "to use this option for privacy reasons." msgstr "" #: ../pan/gui/server-ui.cc:428 msgid "Always trust this server's certificate" msgstr "" #: ../pan/gui/server-ui.cc:602 #, c-format msgid "Really delete \"%s\"?" msgstr "" #: ../pan/gui/server-ui.cc:691 msgid "No information available." msgstr "" #: ../pan/gui/server-ui.cc:697 #, c-format msgid "Server Certificate for '%s'" msgstr "" #: ../pan/gui/server-ui.cc:795 #, c-format msgid "Really delete certificate for \"%s\"?" msgstr "" #. dialog #: ../pan/gui/server-ui.cc:822 ../pan/gui/server-ui.cc:843 #: ../pan/gui/server-ui.cc:941 msgid "Servers" msgstr "Serverid" #: ../pan/gui/server-ui.cc:882 #, fuzzy msgid "Remove a Server" msgstr "Uudiste server" #. dialog #: ../pan/gui/server-ui.cc:915 msgid "SSL Certificates" msgstr "" #: ../pan/gui/server-ui.cc:936 msgid "Certificates" msgstr "" #: ../pan/gui/server-ui.cc:967 msgid "Import Certificate" msgstr "" #: ../pan/gui/server-ui.cc:973 msgid "Inspect Certificate" msgstr "" #: ../pan/gui/server-ui.cc:980 #, fuzzy msgid "Remove Certificate" msgstr "Uudiste server" #: ../pan/gui/task-pane.cc:143 #, c-format msgid "" "\n" "Upload\n" "\n" "Subject: \"%s\"\n" "From: %s\n" "Groups: %s\n" "Sourcefile: %s\n" msgstr "" #: ../pan/gui/task-pane.cc:155 #, c-format msgid "" "\n" "Download\n" "\n" "Subject: \"%s\"\n" "From: %s\n" "Date: %s\n" "Groups: %s\n" "Save Path: %s\n" msgstr "" #: ../pan/gui/task-pane.cc:157 #, fuzzy msgid "unknown" msgstr "Tundmatu" #: ../pan/gui/task-pane.cc:263 msgid "Choose new destination for selected Tasks" msgstr "" #: ../pan/gui/task-pane.cc:417 #, fuzzy, c-format msgid "Pan: Tasks (%d Queued, %d Running, %d Stopped)" msgstr "Pan %s Töödejuhataja (%d järjekorras, %d töötab, %d peatatud)" #: ../pan/gui/task-pane.cc:419 #, fuzzy, c-format msgid "Pan: Tasks (%d Queued, %d Running)" msgstr "Pan %s Töödejuhataja (%d järjekorras, %d töötab)" #: ../pan/gui/task-pane.cc:421 #, fuzzy, c-format msgid "Pan: Tasks" msgstr "Pan: Töödejuhataja" #: ../pan/gui/task-pane.cc:446 #, fuzzy, c-format msgid "%lu selected, %s" msgstr "(%u valitud)" #: ../pan/gui/task-pane.cc:510 msgid "Running" msgstr "Töötab" #: ../pan/gui/task-pane.cc:511 #, fuzzy msgid "Decoding" msgstr "\"%s\" dekodeerimine" #: ../pan/gui/task-pane.cc:513 #, fuzzy msgid "Queued for Decode" msgstr "on salvestatud või dekodeeritud" #: ../pan/gui/task-pane.cc:514 #, fuzzy msgid "Queued for Encode" msgstr "on järjekorras salvestamiseks" #: ../pan/gui/task-pane.cc:515 msgid "Queued" msgstr "Järjekorras" #: ../pan/gui/task-pane.cc:516 msgid "Stopped" msgstr "Peatatud" #: ../pan/gui/task-pane.cc:517 msgid "Removing" msgstr "Eemaldamine" #: ../pan/gui/task-pane.cc:546 #, fuzzy, c-format msgid "%d%% Done" msgstr "% valmis" #: ../pan/gui/task-pane.cc:552 #, fuzzy, c-format msgid "%d:%02d:%02d Remaining (%d @ %lu KiB/s)" msgstr "%.2f KB/s, %d:%02d:%02d veel" #: ../pan/gui/task-pane.cc:646 ../pan/gui/task-pane.cc:647 #, fuzzy msgid "Move To Top" msgstr "Liiguta kataloogi" #: ../pan/gui/task-pane.cc:651 ../pan/gui/task-pane.cc:652 #, fuzzy msgid "Move To Bottom" msgstr "Liiguta kataloogi" #: ../pan/gui/task-pane.cc:656 ../pan/gui/task-pane.cc:657 #, fuzzy msgid "Stop Task" msgstr "Töid pole" #: ../pan/gui/task-pane.cc:661 ../pan/gui/task-pane.cc:662 #, fuzzy msgid "Delete Task" msgstr "Kustuta valitud teemalõngad" #: ../pan/gui/task-pane.cc:666 ../pan/gui/task-pane.cc:667 #, fuzzy msgid "Restart Task" msgstr "Taaskäivita valitud ülesanne(ded)" #: ../pan/gui/task-pane.cc:671 ../pan/gui/task-pane.cc:672 msgid "Change Download Destination" msgstr "" #: ../pan/gui/task-pane.cc:729 #, fuzzy msgid "_Online" msgstr "Ühendatud" #: ../pan/gui/task-pane.cc:746 #, fuzzy msgid "Restart Tasks" msgstr "Taaskäivita valitud ülesanne(ded)" #: ../pan/gui/task-pane.cc:748 #, fuzzy msgid "Stop Tasks" msgstr "Töid pole" #: ../pan/gui/task-pane.cc:750 #, fuzzy msgid "Delete Tasks" msgstr "Kustuta valitud teemalõngad" #: ../pan/gui/url.cc:123 #, fuzzy, c-format msgid "Error starting URL: %s (Command was: %s)" msgstr "Viga \"veebibrauseri\" käsurea töötlemisel: %s" #: ../pan/tasks/decoder.cc:115 #, fuzzy, c-format msgid "Couldn't save file \"%s\": %s" msgstr "Ei saa lugeda allkirjafaili \"%s\": %s" #: ../pan/tasks/decoder.cc:137 ../pan/tasks/encoder.cc:136 msgid "Error initializing uulib" msgstr "" #: ../pan/tasks/decoder.cc:152 ../pan/tasks/socket-impl-gio.cc:352 #: ../pan/tasks/socket-impl-openssl.cc:634 #, fuzzy, c-format msgid "Error reading from %s: %s" msgstr "Soklist lugemise viga: %s " #: ../pan/tasks/decoder.cc:192 #, c-format msgid "Saved \"%s\"" msgstr "Salvestatud \"%s\"" #: ../pan/tasks/decoder.cc:199 #, fuzzy, c-format msgid "" "Error saving \"%s\":\n" "%s." msgstr "Viga \"%s\" lugemisel: %s." #: ../pan/tasks/decoder.cc:314 ../pan/tasks/task-article.cc:350 #, fuzzy, c-format msgid "Decoding %s" msgstr "\"%s\" dekodeerimine" #: ../pan/tasks/encoder.cc:102 ../pan/tasks/encoder.cc:155 #, fuzzy, c-format msgid "Error loading %s from cache." msgstr "Soklist lugemise viga." #: ../pan/tasks/encoder.cc:177 #, fuzzy, c-format msgid "Error encoding %s: %s" msgstr "Viga \"%s\" lugemisel: %s." #: ../pan/tasks/encoder.cc:269 #, fuzzy, c-format msgid "Encoding %s" msgstr "/Kodeering" #: ../pan/tasks/nntp.cc:126 #, c-format msgid "%s requires a username, but none is set." msgstr "" #: ../pan/tasks/nntp.cc:139 #, fuzzy, c-format msgid "%s requires a password, but none is set." msgstr "Server nõuab parooli." #: ../pan/tasks/nntp.cc:205 #, c-format msgid "Sending \"%s\" to %s returned an error: %s" msgstr "" #: ../pan/tasks/nntp.cc:228 #, c-format msgid "Sending \"%s\" to %s returned an unrecognized response: \"%s\"" msgstr "" #: ../pan/tasks/nntp-pool.cc:222 #, fuzzy, c-format msgid "Unable to connect to \"%s\"" msgstr "Ei saa luua ühendust serveriga %s: %d" #: ../pan/tasks/socket-impl-gio.cc:173 ../pan/tasks/socket-impl-gio.cc:211 #: ../pan/tasks/socket-impl-openssl.cc:214 #: ../pan/tasks/socket-impl-openssl.cc:252 #, fuzzy, c-format msgid "Error connecting to \"%s\"" msgstr "Viga \"%s\" lugemisel: %s." #: ../pan/tasks/socket-impl-gio.cc:351 ../pan/tasks/socket-impl-openssl.cc:633 #, fuzzy msgid "Unknown Error" msgstr "Tundmatu" #: ../pan/tasks/task-article.cc:61 ../pan/tasks/task-article.cc:156 #: ../pan/tasks/task-article.cc:159 #, fuzzy, c-format msgid "Saving %s" msgstr "\"%s\" salvestamine" #: ../pan/tasks/task-article.cc:63 #, fuzzy, c-format msgid "Reading %s" msgstr "Loe" #: ../pan/tasks/task-article.cc:322 #, c-format msgid "Article \"%s\" is incomplete -- the news server(s) don't have part %s" msgstr "" #: ../pan/tasks/task-groups.cc:40 #, fuzzy, c-format msgid "Getting group list from \"%s\"" msgstr "Uute gruppide laadimine serverist \"%s\"" #: ../pan/tasks/task-groups.cc:122 #, fuzzy, c-format msgid "Fetched %lu Groups" msgstr "Tõmmatud %u päist grupist \"%s\"" #: ../pan/tasks/task-post.cc:35 #, fuzzy, c-format msgid "Posting \"%s\"" msgstr "Tegutsen \"%s\"" #: ../pan/tasks/task-post.cc:76 #, fuzzy, c-format msgid "Posting of \"%s\" failed: %s" msgstr "Artikli \"%s\" laadimine ebaõnnestus: %s" #: ../pan/tasks/task-post.cc:81 #, c-format msgid "Posting of \"%s\" succesful: %s" msgstr "" #: ../pan/tasks/task-upload.cc:51 #, fuzzy, c-format msgid "Uploading %s" msgstr "%s laadimine" #: ../pan/tasks/task-upload.cc:249 #, fuzzy, c-format msgid "Uploading %s - Part %d of %d" msgstr "Artikli \"%s\" postitamine (%d. osa %d-st)." #: ../pan/tasks/task-upload.cc:251 #, c-format msgid "Uploading Message body with Subject \"%s\"" msgstr "" #: ../pan/tasks/task-upload.cc:308 #, c-format msgid "Posting of File %s (Part %d of %d) failed: No Posts allowed by server." msgstr "" #: ../pan/tasks/task-upload.cc:316 #, fuzzy, c-format msgid "Posting of File %s (Part %d of %d) failed: %s" msgstr "Artikli \"%s\" laadimine ebaõnnestus: %s" #: ../pan/tasks/task-upload.cc:326 ../pan/tasks/task-upload.cc:333 #, fuzzy, c-format msgid "Posting of file %s (Part %d of %d) succesful: %s" msgstr "Artikli \"%s\" postitamine (%d. osa %d-st)." #: ../pan/tasks/task-upload.cc:343 #, fuzzy, c-format msgid "Posting of file %s succesful: %s" msgstr "Artikli \"%s\" laadimine ebaõnnestus: %s" #: ../pan/tasks/task-upload.cc:347 #, c-format msgid "" "Posting of file %s not completely successful: Check the log (right-click on " "list item) !" msgstr "" #: ../pan/tasks/task-upload.cc:364 #, c-format msgid "" "Posting of file %s not successful: Check the log (right-click on list item) !" msgstr "" #: ../pan/tasks/task-xover.cc:79 #, c-format msgid "Getting all headers for \"%s\"" msgstr "Kõikide päiste laadimine grupist \"%s\"" #: ../pan/tasks/task-xover.cc:81 #, c-format msgid "Getting new headers for \"%s\"" msgstr "Uute päiste laadimine grupist \"%s\"" #. SAMPLE #: ../pan/tasks/task-xover.cc:83 #, c-format msgid "Sampling headers for \"%s\"" msgstr "Näidispäiste laadimine grupist \"%s\"" #: ../pan/tasks/task-xover.cc:369 #, fuzzy, c-format msgid "%s (%lu parts, %lu articles)" msgstr " (%lu rida %lu-s artiklis)" #: ../pan/tasks/task-xoverinfo.cc:78 #, fuzzy, c-format msgid "Getting header counts for \"%s\"" msgstr "Kõikide päiste laadimine grupist \"%s\"" #: ../pan/usenet-utils/filter-info.cc:163 #, fuzzy msgid "article doesn't have attachments" msgstr "Artiklil ei ole terveid manuseid" #: ../pan/usenet-utils/filter-info.cc:167 #, fuzzy msgid "the article has attachments" msgstr "Artiklil ei ole manuseid" #: ../pan/usenet-utils/filter-info.cc:171 #, fuzzy msgid "the article isn't cached locally" msgstr "Artikli sisu ei ole puhverdatud kohalikus masinas" #: ../pan/usenet-utils/filter-info.cc:175 #, fuzzy msgid "the article is cached locally" msgstr "Artikli sisu on puhverdatud kohalikus masinas" #: ../pan/usenet-utils/filter-info.cc:179 #, fuzzy msgid "the article wasn't posted by you" msgstr "Artiklit ei postitanud mina" #: ../pan/usenet-utils/filter-info.cc:183 #, fuzzy msgid "the article was posted by you" msgstr "Artikli postitasin mina" #: ../pan/usenet-utils/filter-info.cc:187 #, fuzzy msgid "the article has been read" msgstr "Artikkel" #: ../pan/usenet-utils/filter-info.cc:191 #, fuzzy msgid "the article hasn't been read" msgstr "Artikkel" #: ../pan/usenet-utils/filter-info.cc:195 #, fuzzy, c-format msgid "the article is less than %ld bytes long" msgstr "Artikkel on vähem kui %d baiti pikk" #: ../pan/usenet-utils/filter-info.cc:200 #, fuzzy, c-format msgid "the article is at least %ld bytes long" msgstr "Artikkel on vähem kui %d baiti pikk" #: ../pan/usenet-utils/filter-info.cc:205 #, fuzzy, c-format msgid "the article is less than %ld lines long" msgstr "Artikkel on vähem kui %d rida pikk" #: ../pan/usenet-utils/filter-info.cc:210 #, fuzzy, c-format msgid "the article is at least %ld lines long" msgstr "Artikkel on vähem kui %d rida pikk" #: ../pan/usenet-utils/filter-info.cc:215 #, fuzzy, c-format msgid "the article is less than %ld days old" msgstr "Artikkel on rohkem kui %d päeva vanune" #: ../pan/usenet-utils/filter-info.cc:220 #, fuzzy, c-format msgid "the article is at least %ld days old" msgstr "Artikkel on vähemalt N p_äeva vanune" #: ../pan/usenet-utils/filter-info.cc:225 #, fuzzy, c-format msgid "the article was posted to less than %ld groups" msgstr "Artikkel on ristpostitatud vähem kui %d gruppi" #: ../pan/usenet-utils/filter-info.cc:230 #, fuzzy, c-format msgid "the article was posted to at least %ld groups" msgstr "Artikkel _postitati vähemalt N gruppi:" #: ../pan/usenet-utils/filter-info.cc:235 #, fuzzy, c-format msgid "the article's score is less than %ld" msgstr "Artikli skoor on vähem kui %d" #: ../pan/usenet-utils/filter-info.cc:240 #, fuzzy, c-format msgid "the article's score is %ld or higher" msgstr "määra hindeks" #: ../pan/usenet-utils/filter-info.cc:249 #: ../pan/usenet-utils/filter-info.cc:259 #, fuzzy, c-format msgid "%s doesn't contain \"%s\"" msgstr "ei sisalda" #: ../pan/usenet-utils/filter-info.cc:250 #: ../pan/usenet-utils/filter-info.cc:260 #, c-format msgid "%s isn't \"%s\"" msgstr "" #: ../pan/usenet-utils/filter-info.cc:251 #: ../pan/usenet-utils/filter-info.cc:261 #, fuzzy, c-format msgid "%s doesn't begin with \"%s\"" msgstr "ei lõppe" #: ../pan/usenet-utils/filter-info.cc:252 #: ../pan/usenet-utils/filter-info.cc:262 #, fuzzy, c-format msgid "%s doesn't end with \"%s\"" msgstr "ei lõppe" #: ../pan/usenet-utils/filter-info.cc:253 #: ../pan/usenet-utils/filter-info.cc:263 #, fuzzy, c-format msgid "%s doesn't match the regex \"%s\"" msgstr "Teema ei vasta fraasile \"%s\"" #: ../pan/usenet-utils/filter-info.cc:275 #, fuzzy, c-format msgid "%s contains \"%s\"" msgstr "sisaldab" #: ../pan/usenet-utils/filter-info.cc:276 #, c-format msgid "%s is \"%s\"" msgstr "" #: ../pan/usenet-utils/filter-info.cc:277 #, c-format msgid "%s begins with \"%s\"" msgstr "" #: ../pan/usenet-utils/filter-info.cc:278 #, fuzzy, c-format msgid "%s ends with \"%s\"" msgstr "lõppeb" #: ../pan/usenet-utils/filter-info.cc:279 #, fuzzy, c-format msgid "%s matches the regex \"%s\"" msgstr "Teema vastab regulaaravaldisele \"%s\"" #: ../pan/usenet-utils/filter-info.cc:285 msgid "Any of these tests fail:" msgstr "" #: ../pan/usenet-utils/filter-info.cc:292 msgid "All of these tests pass:" msgstr "" #: ../pan/usenet-utils/filter-info.cc:299 msgid "None of these tests pass:" msgstr "" #: ../pan/usenet-utils/filter-info.cc:306 msgid "Any of these tests pass:" msgstr "" #: ../pan/usenet-utils/gnksa.cc:878 #, c-format msgid "No email address provided; generating message-id with domain \"%s\"" msgstr "" "Meiliaadressi pole määratud; artikli-id genereeritakse domeeniga \"%s\"" #: ../pan/usenet-utils/message-check.cc:124 #, fuzzy msgid "Warning: Reply seems to be top-posted." msgstr "HOIATUS: Vastus on kirja algusesse kirjutatud." #: ../pan/usenet-utils/message-check.cc:145 #, fuzzy msgid "Warning: The signature marker should be \"-- \", not \"--\"." msgstr "HOIATUS: Allkirja eraldaja peaks olema \"-- \", mitte \"--\"." #: ../pan/usenet-utils/message-check.cc:162 #, fuzzy msgid "Warning: Signature prefix with no signature." msgstr "HOIATUS: Allkirja algus ilma allkirjata." #: ../pan/usenet-utils/message-check.cc:167 #, fuzzy msgid "Warning: Signature is more than 4 lines long." msgstr "HOIATUS: Allkiri on pikem kui 4 rida" #: ../pan/usenet-utils/message-check.cc:172 #, fuzzy msgid "Warning: Signature is more than 80 characters wide." msgstr "HOIATUS: Allkiri on laiem kui 80 märki" #: ../pan/usenet-utils/message-check.cc:198 #, fuzzy, c-format msgid "Warning: %d line is more than 80 characters wide." msgid_plural "Warning: %d lines are more than 80 characters wide." msgstr[0] "HOIATUS: %d rida on pikemad kui 80 märki." msgstr[1] "HOIATUS: %d rida on pikemad kui 80 märki." #: ../pan/usenet-utils/message-check.cc:223 #, fuzzy msgid "Error: Message is empty." msgstr "VIGA: Artikkel on tühi." #: ../pan/usenet-utils/message-check.cc:258 #, fuzzy msgid "Warning: The message is entirely quoted text!" msgstr "HOIATUS: Artikkel koosneb üleni kvooditud tekstist!" #: ../pan/usenet-utils/message-check.cc:259 #, fuzzy msgid "Warning: The message is mostly quoted text." msgstr "HOIATUS: Artikkel koosneb enamuses kvooditud tekstist." #: ../pan/usenet-utils/message-check.cc:309 #, fuzzy msgid "Error: Message appears to have no new content." msgstr "VIGA: Tundub, et artiklis pole uut teksti." #: ../pan/usenet-utils/message-check.cc:344 #: ../pan/usenet-utils/message-check.cc:383 #, c-format msgid "" "Warning: The posting profile's server doesn't carry newsgroup\n" "\t\"%s\".\n" "\tIf the group name is correct, switch profiles in the \"From:\"\n" "\tline or edit the profile with \"Edit|Manage Posting Profiles\"." msgstr "" #: ../pan/usenet-utils/message-check.cc:355 #, fuzzy msgid "Warning: Following-Up to too many groups." msgstr "HOIATUS: Vastukaja liiga paljudesse gruppidesse." #: ../pan/usenet-utils/message-check.cc:366 #, fuzzy msgid "Error: No Subject specified." msgstr "VIGA: Teemat pole määratud." #: ../pan/usenet-utils/message-check.cc:395 #, fuzzy, c-format msgid "Warning: Group \"%s\" is read-only." msgstr "HOIATUS: Grupist \"%*.*s\" saab ainult lugeda." #: ../pan/usenet-utils/message-check.cc:404 #, fuzzy msgid "Error: Posting to a very large number of groups." msgstr "VIGA: Postitus liiga paljudesse gruppidesse." #: ../pan/usenet-utils/message-check.cc:409 #, fuzzy msgid "Warning: Posting to a large number of groups." msgstr "HOIATUS: Postitus paljudesse gruppidesse." #: ../pan/usenet-utils/message-check.cc:416 #, fuzzy msgid "Warning: Crossposting without setting Followup-To header." msgstr "HOIATUS: Ristpostitamine ilma Followup-To päiseta." #: ../pan/usenet-utils/message-check.cc:441 #, fuzzy msgid "Error: Bad email address." msgstr "Meiliaadress:" #: ../pan/usenet-utils/message-check.cc:450 msgid "Warning: Most newsgroups frown upon HTML posts." msgstr "" #: ../pan/usenet-utils/message-check.cc:486 #, fuzzy msgid "Error: No Recipients." msgstr "Vastuvõtjaid pole!" #: ../pan/usenet-utils/scorefile.cc:304 #, fuzzy, c-format msgid "" "Error reading score in %*.*s, line %d: expected 'Expires: MM/DD/YYYY' or " "'Expires: DD-MM-YYYY'." msgstr "oodatud on 'Expires: MM/DD/YYYY' või 'Expires: DD-MM-YYYY'" #: ../pan/usenet-utils/scorefile.cc:307 #, c-format msgid "Expired old score from %*.*s, line %d" msgstr "" #: ../pan/usenet-utils/scorefile.cc:380 #, c-format msgid "Error reading score in %*.*s, line %d: unexpected line." msgstr "" #: ../pan/usenet-utils/scorefile.cc:428 #, c-format msgid "Read %lu scoring rules in %lu sections from \"%s\"" msgstr "" #: ../pan/usenet-utils/ssl-utils.h:199 #, fuzzy, c-format msgid "Error printing the server certificate for '%s'" msgstr "Viga \"veebibrauseri\" käsurea töötlemisel: %s" #: ../pan/usenet-utils/ssl-utils.h:216 #, c-format msgid "" "The current server '%s' sent this security certificate :\n" "\n" msgstr "" #: ../pan/usenet-utils/ssl-utils.h:217 #, c-format msgid "" "Certificate information for server '%s' :\n" "\n" msgstr "" #: ../pan/usenet-utils/ssl-utils.h:219 #, c-format msgid "" "%sIssuer information:\n" "%s\n" "Valid until : %s\n" "\n" "Not valid before : %s\n" "\n" msgstr "" #: ../pan/usenet-utils/text-massager.cc:397 msgid "> [quoted text muted]" msgstr "> [kvooditud tekst on peidetud]" #~ msgid "Read News from Usenet" #~ msgstr "Loe Usenetist uudiseid" #, fuzzy #~ msgid "_Toggle Flag on for Thread" #~ msgstr "/_Jälgi teemalõnga" #, fuzzy #~ msgid "Attachment not shown: MIME type %s/%s\n" #~ msgstr "Manus: %s - %s - %s\n" #, fuzzy #~ msgid "Error!" #~ msgstr "Viga" #, fuzzy #~ msgid "An error has occured. Maximize Pan to investigate." #~ msgstr "Serverile kirjutamisel tekkis viga." #, fuzzy #~ msgid "Signer : " #~ msgstr "A_llkirjafail:" #, fuzzy #~ msgid "Encoding Options" #~ msgstr "/Kodeering" #, fuzzy #~ msgid "_Signature:" #~ msgstr "A_llkirjafail:" #, fuzzy #~ msgid "Creating directory \"%s\"" #~ msgstr "Ei saa luua kataloogi \"%s\"" #~ msgid "Couldn't create directory \"%s\": %s" #~ msgstr "Ei saa luua kataloogi \"%s\": %s" #, fuzzy #~ msgid "" #~ "Your copy of libpcre doesn't support UTF-8. UTF-8 regular expressions " #~ "may fail." #~ msgstr "" #~ "Sinu süsteemiteek libpcre ei toeta UTF-8 kodeeringut. UTF-8 " #~ "regulaaravaldised ei pruugi töötada." #~ msgid "Can't use regular expression \"%s\": %s at position %d" #~ msgstr "Ei saa kasutada regulaaravaldist \"%s\": %s asukohal %d" #, fuzzy #~ msgid "_Groups" #~ msgstr "Grupid" #, fuzzy #~ msgid "Read Selected Group" #~ msgstr "Loe järgmist lugemata gruppi" #, fuzzy #~ msgid "_Mark Group _Read" #~ msgstr "/_Märgi grupp loetuks" #, fuzzy #~ msgid "_Delete Group's Articles" #~ msgstr "/_Kustuta kõik grupi artiklid" #, fuzzy #~ msgid "Get New Headers for Selected Groups" #~ msgstr "Tõmba uued päised valitud gruppidest" #, fuzzy #~ msgid "Get New Headers for Subscribed Groups" #~ msgstr "Tõmba uued päised tellitud gruppidest" #, fuzzy #~ msgid "Get Headers from Server" #~ msgstr "Peab _alla laadima" #, fuzzy #~ msgid "Get a new Group list from the Server" #~ msgstr "%d uut gruppi saadud serverist \"%s\"" #, fuzzy #~ msgid "Subscribe to Selected Groups" #~ msgstr "Tellitud grupid" #, fuzzy #~ msgid "Unsubscribe from Selected Groups" #~ msgstr "Kustuta kõik artiklid valitud gruppidest" #, fuzzy #~ msgid "Save Selected Articles..." #~ msgstr "Salvesta valitud artiklite manused kettale." #~ msgid "Cancel Last Task" #~ msgstr "Tühista viimane ülesanne" #, fuzzy #~ msgid "Clear Header Pane" #~ msgstr "Teemalõngade paan" #, fuzzy #~ msgid "Clear Body Pane" #~ msgstr "_Artiklipaan" #, fuzzy #~ msgid "Download _Selected Article" #~ msgstr "Laadi valitud artiklid alla" #, fuzzy #~ msgid "Download Selected Article" #~ msgstr "Laadi valitud artiklid alla" #, fuzzy #~ msgid "Read _Selected Article" #~ msgstr "Tõmba valitud artiklid" #, fuzzy #~ msgid "Read Selected Article" #~ msgstr "Tõmba valitud artiklid" #, fuzzy #~ msgid "Next Unread Group" #~ msgstr "/_Liigu/Järgmine lugemata _grupp" #, fuzzy #~ msgid "Next Group" #~ msgstr "/_Liigu/Järgmine g_rupp" #, fuzzy #~ msgid "Next Watched Article" #~ msgstr "/_Liigu/Järgmine j_älgitav artikkel" #, fuzzy #~ msgid "Next Thread" #~ msgstr "/_Liigu/Järgmine tee_malõng" #, fuzzy #~ msgid "Previous Article" #~ msgstr "/_Liigu/_Eelmine artikkel" #, fuzzy #~ msgid "Previous Thread" #~ msgstr "/_Liigu/Eelmine teemalõng" #, fuzzy #~ msgid "Parent Article" #~ msgstr "/_Liigu/_Vanemartikkel" #, fuzzy #~ msgid "_Plonk Author" #~ msgstr "/_Artiklid/Lase autor p_õhja" #, fuzzy #~ msgid "Mark Article as Read" #~ msgstr "Artikkel on loetud" #, fuzzy #~ msgid "Mark Article as Unread" #~ msgstr "Märgi kui lugemata" #, fuzzy #~ msgid "Reply to Author" #~ msgstr "/_Artiklid/Lase autor p_õhja" #, fuzzy #~ msgid "_About..." #~ msgstr "/_Abi/_Info..." #, fuzzy #~ msgid "Abbreviate _Names in Group Pane" #~ msgstr "/_Vaade/Lü_henda nimed gruppide nimekirjas" #, fuzzy #~ msgid "Match Only Articles Posted by Me" #~ msgstr "Näita minu postitatud artikleid" #, fuzzy #~ msgid "Central European (ISO-8859-2)" #~ msgstr "Kesk-Euroopa" #, fuzzy #~ msgid "Central European (Windows-1250)" #~ msgstr "Kesk-Euroopa" #, fuzzy #~ msgid "Chinese Simplified (gb2312)" #~ msgstr "Hiina, lihtsustatud" #, fuzzy #~ msgid "Chinese Traditional (big5)" #~ msgstr "Hiina, traditsiooniline" #, fuzzy #~ msgid "Cyrillic (KOI8-R)" #~ msgstr "Kirillits" #, fuzzy #~ msgid "Cyrillic, Ukrainian (KOI8-U)" #~ msgstr "Kirillits, Ukraina" #, fuzzy #~ msgid "Western, New (ISO-8859-15)" #~ msgstr "Lääne, uus" #, fuzzy #~ msgid "Unicode (UTF-8)" #~ msgstr "Unicode, UTF-8" #, fuzzy #~ msgid "Pan: " #~ msgstr "Pan " #, fuzzy #~ msgid "Group Name" #~ msgstr "Gruppide paan" #, fuzzy #~ msgid "Clear the Filter" #~ msgstr "Tühjenda logi" #, fuzzy #~ msgid "Pan: %s" #~ msgstr "Pan " #~ msgid "Tasks: %u/%u" #~ msgstr "Töid: %u/%u" #~ msgid "%u Tasks Running, %u Tasks Total" #~ msgstr "%u ülesannet täitmisel, %u kokku" #, fuzzy #~ msgid "%.1f KiB" #~ msgstr "%d @ %.1f KB/s" #, fuzzy #~ msgid "Wrap the Article Body to 80 Columns" #~ msgstr "T_äida/murra read artikli sisus" #, fuzzy #~ msgid "_Close" #~ msgstr "Sulge" #, fuzzy #~ msgid "Close Window" #~ msgstr "Sulge logiraamat" #, fuzzy #~ msgid "Cut Text" #~ msgstr "L_ihttekst" #, fuzzy #~ msgid "_Copy" #~ msgstr "_Kopeeri sellest" #, fuzzy #~ msgid "Copy Text" #~ msgstr "Murra read" #, fuzzy #~ msgid "_Paste" #~ msgstr "_Postita" #, fuzzy #~ msgid "Paste Text" #~ msgstr "L_ihttekst" #, fuzzy #~ msgid "Manage Posting Pr_ofiles..." #~ msgstr "/_Tööriistad/_Kasutajaprofiilid..." #~ msgid "Cyrillic, Ukrainian" #~ msgstr "Kirillits, Ukraina" #~ msgid "Western" #~ msgstr "Lääne" #, fuzzy #~ msgid "Error loading post.ui: \"%s\"" #~ msgstr "Viga \"%s\" lugemisel." #, fuzzy #~ msgid "Editors" #~ msgstr "Muuda" #, fuzzy #~ msgid "Posting Article" #~ msgstr "Artiklite sorteerimine" #, fuzzy #~ msgid "Posting..." #~ msgstr "Postitamine" #, fuzzy #~ msgid "Add a New Profile" #~ msgstr "Lisa uus profiil" #~ msgid "Edit the selected profile" #~ msgstr "Muuda valitud profiili" #~ msgid "Remove the selected profile" #~ msgstr "Kustuta valitud profiil" #, fuzzy #~ msgid "Threads" #~ msgstr "/M_ärgista teemalõngad" #, fuzzy #~ msgid "Path" #~ msgstr "Osad" #, fuzzy #~ msgid "Save Files to Path" #~ msgstr "Salvesta manused" #, fuzzy #~ msgid "_Path:" #~ msgstr "_Postita" #, fuzzy #~ msgid "Group Management" #~ msgstr "Gruppide nimekirja kirjatüüp" #, fuzzy #~ msgid "Pan: New Scoring Rule" #~ msgstr "Pan: Muuda reeglit" #, fuzzy #~ msgid "Then" #~ msgstr "Tänud" #, fuzzy #~ msgid "For" #~ msgstr "Kataloogid" #, fuzzy #~ msgid "Name: \"%s\"" #~ msgstr "Salvestatud \"%s\"" #, fuzzy #~ msgid "Pan: Add a Server" #~ msgstr "Pan: Muuda serverit" #, fuzzy #~ msgid "Pan: Edit a Server's Settings" #~ msgstr "Pan: Muuda serverit" #~ msgid "Pan: Servers" #~ msgstr "Pan: Serverid" #, fuzzy #~ msgid "to %s" #~ msgstr "%s info" #~ msgid "Status" #~ msgstr "Olek" #, fuzzy #~ msgid "Unable to set group: %s" #~ msgstr "Ei saa määrata gruppi \"%*.*s\": %s" #, fuzzy #~ msgid "Making a new connection to %*.*s" #~ msgstr "Uus ühendus %p serveri %*.*s porti %d" #, fuzzy #~ msgid "Couldn't load \"%s\": %s" #~ msgstr "Ei saanud laadida fonti \"%s\"" #, fuzzy #~ msgid "" #~ "Error saving \"%s\":\n" #~ "%s. %s" #~ msgstr "Viga \"%s\" lugemisel: %s." #, fuzzy #~ msgid "Warning: Unknown group \"%s\"." #~ msgstr "HOIATUS: Tundmatu grupp: \"%*.*s\"." #, fuzzy #~ msgid "Post New Article" #~ msgstr "Laeb artikli" #, fuzzy #~ msgid "_Follow-up" #~ msgstr "Vastukaja-Kuhu" #, fuzzy #~ msgid "Follow-up to Article" #~ msgstr "Vastukaja uudisegruppi" #, fuzzy #~ msgid "_Post Article" #~ msgstr "Laeb artikli" #, fuzzy #~ msgid "Post this Article Now" #~ msgstr "Artikli \"%s\" postitamine" #, fuzzy #~ msgid "Default KDE Browser" #~ msgstr "Vaikimisi _märgistik:" #, fuzzy #~ msgid "Error: No Newsgroups specified." #~ msgstr "VIGA: Saajaid pole määratud." #, fuzzy #~ msgid "_Posting" #~ msgstr "Postitamine" #~ msgid "Message-Id" #~ msgstr "Artikli-Id" #, fuzzy #~ msgid "Saved newsrc files in %.1f seconds" #~ msgstr "Salvestatud %d artiklit gruppi \"%s\" %.1f sekundiga (%.0f art/sek)" #, fuzzy #~ msgid "Use _Monospace Font in Body Pane" #~ msgstr "/_Vaade/Kasuta artiklipaanis _ühelaiust kirjatüüpi" #, fuzzy #~ msgid "Pan: Get Headers from Server" #~ msgstr "Peab _alla laadima" #, fuzzy #~ msgid "%d connections totaling %.1f KiB per second" #~ msgstr "%d ühendust kokku %.1f KB sekundis" #~ msgid "" #~ "Used when email replies to your posts should go somewhere other than the " #~ "email address above. Because Reply-To: is relatively difficult for " #~ "spammers to harvest, it's polite give your email address here if you gave " #~ "an invalid email address above." #~ msgstr "" #~ "Kasutatakse, kui vastused sinu kirjadele peavad minema kuhugi mujale, kui " #~ "ülaltoodud aadressile. Kuna Vastus-Kuhu: päisest on spämmijatel palju " #~ "keerulisem aadresse hankida, siis on siin viisakas sisestada oma õige " #~ "aadress, juhul kui üleval andsid vale aadressi." #~ msgid "_Reply-To Header:" #~ msgstr "_Vastus-Kuhu päis:" #~ msgid "Or_ganization Header:" #~ msgstr "_Organisatsioon:" #, fuzzy #~ msgid "Attach this _Signature:" #~ msgstr "Allkiri:" #~ msgid "Automatic Downloads" #~ msgstr "Automaatne allalaadimine" #, fuzzy #~ msgid "Save a_ttachments to path:" #~ msgstr "Salvesta manused kataloogi:" #~ msgid "UNKNOWN" #~ msgstr "TUNDMATU" #, fuzzy #~ msgid "Decode can't access directory \"%s\"" #~ msgstr "Dekooder ei saa kataloogi \"%s\" kasutada" #~ msgid "Could not decode article - file may be corrupt/incomplete" #~ msgstr "Ei saa artiklit dekodeerida - fail võib olla vigane/poolik" #~ msgid "Checksum for `%s' part %d failed - file is corrupt" #~ msgstr "Sõnumi \"%s\" %d. osa kontrollsumma ei klapi - fail on vigane" #~ msgid "Checksum for `%s' failed - file may be corrupt" #~ msgstr "Sõnumi \"%s\" kontrollsumma ei klapi - fail võib olla vigane" #, fuzzy #~ msgid "Use custom colors in _Header Pane" #~ msgstr "Kasuta oma kirjatüüpe teemalõngade paanis:" #, fuzzy #~ msgid "Header Pane background:" #~ msgstr "Teemalõngade paani hindamine" #, fuzzy #~ msgid "Unread articles:" #~ msgstr "Näita lugemata artikleid" #, fuzzy #~ msgid "" #~ "Unsupported data version (%d) for server properties. Are you running an " #~ "old version of Pan by accident?" #~ msgstr "" #~ "Toetamata andmete versioon %d grupi \"%s\" andmefailile.\n" #~ "Kas sa kasutad kogemata Pan'i vanemat versiooni?" #, fuzzy #~ msgid "Couldn't create temporary file: %s" #~ msgstr "Ei saa luua ajutist faili: %s" #~ msgid "Error renaming \"%s\" as \"%s\": %s." #~ msgstr "Viga \"%s\" ümbernimetamisel \"%s\"-ks: %s." #~ msgid "Can't backup \"%s\" as \"%s\": %s" #~ msgstr "Viga \"%s\" varundamisel \"%s\"-ks: %s" #~ msgid "Can't write to \"%s\": %s" #~ msgstr "Ei saa faili \"%s\" kirjutada: %s" #~ msgid "Body" #~ msgstr "Sisu" #, fuzzy #~ msgid "Open a Draft Article from Disk" #~ msgstr "%u artikli tähtaeg möödus grupis `%s'" #, fuzzy #~ msgid "Editor Applications" #~ msgstr "Rakendused" #, fuzzy #~ msgid "subject" #~ msgstr "Teema" #, fuzzy #~ msgid "author" #~ msgstr "Autor" #, fuzzy #~ msgid "references" #~ msgstr "Viited" #~ msgid "Change" #~ msgstr "Muuda" #~ msgid "Connections" #~ msgstr "Ühendused" #, fuzzy #~ msgid "Active" #~ msgstr "Tegevused" #~ msgid "" #~ "Unable to cancel article: Couldn't find matching article in folder `pan." #~ "sent'!" #~ msgstr "" #~ "Ei saa artiklit tühistada: ei leia sobivat artiklit kataloogist `pan." #~ "saadetud'!" #~ msgid "" #~ "Unable to supersede article: Couldn't find matching article in folder " #~ "`pan.sent'!" #~ msgstr "" #~ "Ei saa artiklit asendada: ei leia sobivat artiklit kataloogist `pan." #~ "saadetud'!" #~ msgid "You must download the article before you can cancel it." #~ msgstr "Enne tühistamist pead sa artikli alla laadima." #~ msgid "You must download the article before you can supersede it." #~ msgstr "Enne asendamist pead sa artikli alla laadima." #~ msgid "Pan: Find Article" #~ msgstr "Pan: Otsi artikleid" #~ msgid "_Author:" #~ msgstr "_Autor:" #~ msgid "_Message-ID:" #~ msgstr "Artikli-_ID:" #~ msgid "Case Sensiti_ve" #~ msgstr "_Tõstutundlik" #~ msgid "_Unread Only" #~ msgstr "Ainult l_ugemata artiklid" #~ msgid "Fin_d:" #~ msgstr "_Otsi:" #~ msgid "" #~ "Type in a search string and press ENTER.\n" #~ "Wildcards are allowed." #~ msgstr "" #~ "Sisesta otsingutekst ja vajuta ENTER.\n" #~ "Metamärgid on lubatud." #~ msgid "/---" #~ msgstr "/---" #~ msgid "/Save A_ttachments" #~ msgstr "/Salvesta m_anused" #~ msgid "/_Manual Decode..." #~ msgstr "/_Dekodeeri käsitsi..." #~ msgid "/D_ownload Flagged" #~ msgstr "/_Tõmba märgistatud artiklid" #~ msgid "/_Flag" #~ msgstr "/_Märgista" #~ msgid "/_Unflag" #~ msgstr "/T_ühista märgistus" #~ msgid "/_Create Score" #~ msgstr "/Loo _hinne..." #~ msgid "/Add S_et to Selection" #~ msgstr "/Lisa kom_plekt valikusse" #~ msgid "/_Copy to Folder" #~ msgstr "/_Kopeeri kataloogi" #~ msgid "/_Delete" #~ msgstr "/K_ustuta" #~ msgid "Scoring Articles" #~ msgstr "Artiklite hindamine" #~ msgid "Filtering Articles" #~ msgstr "Artiklite filtreerimine" #~ msgid "Updating Header Pane..." #~ msgstr "Teemalõngade paani uuendamine..." #~ msgid "Loading group \"%s\"" #~ msgstr "Grupi \"%s\" laadimine" #~ msgid "Flushing article cache... " #~ msgstr "Artiklite puhvri loputamine... " #~ msgid "%d files erased." #~ msgstr "%d faili kustutatud." #~ msgid "Error saving article \"%s\" (is %s full?)" #~ msgstr "Viga artikli \"%s\" salvestamisel (võibolla on %s täis?)" #~ msgid "Directory \"%s\" contains %.1f MB in %d files" #~ msgstr "Kataloogis \"%s\" on %.1f MB andmeid (%d faili)" #~ msgid "Unable to create thread: %s" #~ msgstr "Ei saa luua lõime: %s" #~ msgid "Unparseable Subject" #~ msgstr "Töödeldamatu teema" #~ msgid "Couldn't parse a Message-ID from the raw message!" #~ msgstr "Ei saa sõnumi Message-ID päist töödelda!" #~ msgid "unknown@spammesenseless.com" #~ msgstr "tundmatu@spammisaatjad.com" #~ msgid "Can't create file \"%s\" %s" #~ msgstr "Ei saa luua faili \"%s\" %s" #~ msgid "Error saving file \"%s\" - is the disk full?" #~ msgstr "Viga faili \"%s\" salvestamisel - võibolla on ketas täis?" #~ msgid "Decoded \"%s\" from group \"%*.*s\", \"%s\"" #~ msgstr "Dekodeeritud \"%s\" grupist \"%*.*s\", \"%s\"" #~ msgid "Loading %u of %d groups" #~ msgstr "%u. grupi %d-st laadimine" #~ msgid "" #~ "Skipped %d groups due to possible corruption in \"%s\" and \"%s\". You " #~ "may want to delete these files and get a new grouplist from your news " #~ "server." #~ msgstr "" #~ "%d gruppi jäeti vahele võimalike väärandmete tõttu failides \"%s\" ja \"%s" #~ "\". Sa võid need failid kustutada ning uudiseserverist uue gruppide " #~ "nimekirja tõmmata." #~ msgid "Loaded %d groups for server \"%s\" in %.1f seconds (%.0f groups/sec)" #~ msgstr "Laetud %d gruppi serverist \"%s\" %.1f sekundiga (%.0f gruppi/sek)" #~ msgid "Saved %d of %u groups" #~ msgstr "Salvestatud %d gruppi %u-st" #~ msgid "Error saving list of groups to \"%s\" - is the disk full?" #~ msgstr "" #~ "Viga gruppide nimekirja salvestamisel faili \"%s\" - võibolla on ketas " #~ "täis?" #~ msgid "Saved %d groups in \"%s\" in %.1f seconds (%.0f groups/sec)" #~ msgstr "" #~ "Salvestatud %d gruppi serverile \"%s\" %.1f sekundiga (%.0f gruppi/sek)" #~ msgid "Loaded %d of %d articles" #~ msgstr "Laetud %d artiklit %d-st" #~ msgid "" #~ "Pan skipped %d corrupt headers from the local cache for group \"%*.*s\"." #~ msgstr "Pan jättis vahele %d vigast päist grupi \"%*.*s\" puhvris." #~ msgid "You may want to empty this group and download fresh headers." #~ msgstr "Sa võid selle grupi tühjendada ja värsked päised alla laadida." #~ msgid "The group will not be saved -- can't create file \"%s\"" #~ msgstr "Seda gruppi ei salvestata -- ei saa luua faili \"%s\"" #~ msgid "Unable to save headers for group \"%*.*s\" - is the disk full?" #~ msgstr "Ei saa grupi \"%*.*s\" päiseid salvestada - võibolla on ketas täis?" #~ msgid "(No Group)" #~ msgstr "(Ei ole gruppi)" #~ msgid "ERROR: invalid address \"%s\"" #~ msgstr "VIGA: vigane aadress \"%s\"" #~ msgid "ERROR: Must have one author in From: line" #~ msgstr "VIGA: Kellelt: real peab olema üks autor" #~ msgid "Imported %d groups (%d new) from \"%s\"" #~ msgstr "Imporditud %d gruppi (%d uut) failist \"%s\"" #~ msgid "Exported %d groups (%d subscribed) to \"%s\"" #~ msgstr "Eksporditud %d gruppi (%d tellitud) faili \"%s\"" #~ msgid "Imported %d lines from Gnome config file" #~ msgstr "%d rida imporditud Gnome konfiguratsioonifailist" #~ msgid "%s does not appear to be a valid datafile" #~ msgstr "Tundub, et %s ei ole korrektne andmefail" #~ msgid "Error converting string \"%*s\" to utf8: %d - %s" #~ msgstr "Viga stringi \"%*s\" teisendamisel utf8 kodeeringusse: %d - %s" #~ msgid "No name specified!" #~ msgstr "Nime pole määratud!" #~ msgid "Server is corrupt" #~ msgstr "Server on katki" #~ msgid "A newsreader for GNOME" #~ msgstr "GNOME'i uudistelugeja" #~ msgid "Programmer" #~ msgstr "Pogrammeerija" #~ msgid "Project Originator, Programmer" #~ msgstr "Projekti organisaator, programmeerija" #~ msgid "Programmer, 0.6 - 0.7" #~ msgstr "Programmeerija, 0.6 - 0.7" #~ msgid "" #~ "Pan %s Translations\n" #~ "%s\n" #~ "\n" #~ "Pan %s Code or Patches\n" #~ "%s\n" #~ "\n" #~ "Pan %s Suggestions and Testing\n" #~ "%s\n" #~ msgstr "" #~ "Pan %s tõlked\n" #~ "%s\n" #~ "\n" #~ "Pan %s kood ja paigad\n" #~ "%s\n" #~ "\n" #~ "Pan %s soovitused ja testimine\n" #~ "%s\n" #~ msgid "_Directory for saving articles:" #~ msgstr "_Kataloog, kuhu salvestatakse manused:" #~ msgid "Pan: Download Headers for group `%s'" #~ msgstr "Pan: Päiste laadimine grupist `%s'" #~ msgid "Pan: Download Headers" #~ msgstr "Pan: Päiste laadimine" #~ msgid "Download _new headers" #~ msgstr "Tõmba _uued päised" #~ msgid "Download _all headers" #~ msgstr "Tõmba _kõik päised" #~ msgid "_Download bodies too" #~ msgstr "Tõmba ka artiklite _sisud" #~ msgid "How should you appear when posting articles?" #~ msgstr "Millisena paistab sinu info artiklite postitamisel?" #~ msgid "Your _Name:" #~ msgstr "Sinu _nimi:" #~ msgid "Email _Address:" #~ msgstr "_Meiliaadress:" #~ msgid "_Organization:" #~ msgstr "_Organisatsioon:" #~ msgid "default" #~ msgstr "vaikimisi" #~ msgid "What mail server should Pan use?" #~ msgstr "Millist postiserverit Pan kasutab?" #~ msgid "What news server should Pan use?" #~ msgstr "Millist uudiseserverit Pan kasutab?" #~ msgid "Short name for Pan to show, e.g. \"mynewsserver\"" #~ msgstr "Pani näidatav lühi_nimi, näiteks \"minuserver\"" #~ msgid "Short _name for Pan to show:" #~ msgstr "Näidatav lühi_nimi:" #~ msgid "Login" #~ msgstr "Sisselogimine" #~ msgid "Server requires authori_zation" #~ msgstr "Server nõuab pa_rooli" #~ msgid "Pan Setup Wizard" #~ msgstr "Pani häälestamise viisard" #~ msgid "Thank you for trying Pan!" #~ msgstr "Aitäh, et proovid Pan-i!" #~ msgid "" #~ "Thank you for trying Pan!\n" #~ " \n" #~ "If you are new to Usenet,\n" #~ "%s\n" #~ "is a starting point to see what Usenet is,\n" #~ "where to find a free news server,\n" #~ "and how to use Pan.\n" #~ " \n" #~ "Since this is your first time running Pan,\n" #~ "we'll need to gather some information.\n" #~ msgstr "" #~ "Aitäh, et proovid Pan-i!\n" #~ " \n" #~ "Kui sa pole Usenetiga tuttav, siis võid vaadata\n" #~ "aadressile %s, kus\n" #~ "seletatakse, misasi on Usenet, kust leida uudiste-\n" #~ "servereid ja kuidas kasutada Pani.\n" #~ " \n" #~ "Kuna sa käivitasid Pani esimest korda, siis on vaja\n" #~ "natuke infot koguda.\n" #~ msgid "About You" #~ msgstr "Sinu info" #~ msgid "News Server" #~ msgstr "Uudiste server" #~ msgid "Ready!" #~ msgstr "Valmis!" #~ msgid "" #~ "You have successfully entered all of\n" #~ "the information required to set up Pan.\n" #~ "\n" #~ "To save these settings, click Save." #~ msgstr "" #~ "Sa oled edukalt sisestanud info,\n" #~ "mis on vajalik Pani häälestamiseks.\n" #~ "\n" #~ "Häälestuse salvestamiseks vajuta Salvesta." #~ msgid "License" #~ msgstr "Litsents" #~ msgid "Authors" #~ msgstr "Autorid" #~ msgid "Thanks to" #~ msgstr "Tänud" #~ msgid " (No conditions -- no articles will match)" #~ msgstr " (Tingimusi pole -- ükski artikkel ei vasta)" #~ msgid " (No conditions -- all articles will match)" #~ msgstr " (Tingimusi pole -- vastavad kõik artiklid)" #~ msgid "Pan: Edit Filter" #~ msgstr "Pan: Muuda filtrit" #~ msgid "Filter name: " #~ msgstr "Filtri nimi: " #~ msgid "Show in Filter Menu" #~ msgstr "Näita filtrite menüüs" #~ msgid "Move the selected line up one line" #~ msgstr "Liiguta valitud rida üles" #~ msgid "Move the selected line down one line" #~ msgstr "Liiguta valitud rida alla" #~ msgid "Invert" #~ msgstr "Vastupidi" #~ msgid "Invert the selected line" #~ msgstr "Muuda valitud rida vastupidiseks" #~ msgid "All Of" #~ msgstr "Kõik" #~ msgid "Any Of" #~ msgstr "Mõni" #~ msgid "Delete the selected line" #~ msgstr "Kustuta valitud rida" #~ msgid "Add New Line to the Filter" #~ msgstr "Lisa filtrile uus rida" #~ msgid "New Filter Line" #~ msgstr "Uus filtri rida" #~ msgid "_Article" #~ msgstr "_Artikli" #~ msgid "does not start with" #~ msgstr "ei alga" #~ msgid "does not match regular expression" #~ msgstr "ei vasta regulaaravaldisele" #~ msgid "Article h_as" #~ msgstr "Artiklil" #~ msgid "Incomplete Attachments" #~ msgstr "on poolikud manused" #~ msgid "No Attachments" #~ msgstr "ei ole manuseid" #~ msgid "Article _is" #~ msgstr "Artikkel _on" #~ msgid "New" #~ msgstr "Uus" #~ msgid "Unread" #~ msgstr "Lugemata" #~ msgid "Read" #~ msgstr "Loetud" #~ msgid "Cached" #~ msgstr "Puhverdatud" #~ msgid "Posted by Me" #~ msgstr "Minu poolt postitatud" #~ msgid "Article has at _least N lines:" #~ msgstr "Artiklil on _vähemalt N rida:" #~ msgid "Article _score is at least" #~ msgstr "Artikli _hinne on vähemalt" #~ msgid "Watched" #~ msgstr "jälgitav" #~ msgid "High" #~ msgstr "kõrge" #~ msgid "Medium" #~ msgstr "keskmine" #~ msgid "Zero" #~ msgstr "null" #~ msgid "Low" #~ msgstr "madal" #~ msgid "Ignored" #~ msgstr "ignoreeritav" #~ msgid "" #~ "This filter is still used by the following rules:\n" #~ "%s\n" #~ "Please remove this dependency first." #~ msgstr "" #~ "Seda filtrit kasutavad reeglid:\n" #~ "%s\n" #~ "Palun eemalda need sõltuvused." #~ msgid "Pan: Filters" #~ msgstr "Pan: Filtrid" #~ msgid "Filters" #~ msgstr "Filtrid" #~ msgid "Add a new filter" #~ msgstr "Lisa uus filter" #~ msgid "Edit the selected filter" #~ msgstr "Muuda valitud filtrit" #~ msgid "Remove the selected filter" #~ msgstr "Kustuta valitud filter" #~ msgid "NONE OF:" #~ msgstr "MITTE ÜKSKI:" #~ msgid "ALL OF:" #~ msgstr "KÕIK:" #~ msgid "ANY OF:" #~ msgstr "SUVALINE:" #~ msgid "Article has complete attachments" #~ msgstr "Artiklil on terved manused" #~ msgid "Article does not have incomplete attachments" #~ msgstr "Artiklil ei ole poolikuid manuseid" #~ msgid "Article has incomplete attachments" #~ msgstr "Artiklil on poolikud manused" #~ msgid "Article has complete or incomplete attachments" #~ msgstr "Artiklil on terved või poolikud manused" #~ msgid "Article is %d or more bytes long" #~ msgstr "Artikkel on vähemalt %d baiti pikk" #~ msgid "Article is crossposted to at least %d groups" #~ msgstr "Artikkel on ristpostitatud mitte vähem kui %d gruppi" #~ msgid "Article was posted in the last %d days" #~ msgstr "Artikkel postitati viimase %d päeva jooksul" #~ msgid "Article is %d or more lines long" #~ msgstr "Artikkel on vähemalt %d rida pikk" #~ msgid "Article is unread or old" #~ msgstr "Artikkel on lugemata või vana" #~ msgid "Article is new" #~ msgstr "Artikkel on uus" #~ msgid "Article is new or read" #~ msgstr "Artikkel on uus või loetud" #~ msgid "Article is unread" #~ msgstr "Artikkel on lugemata" #~ msgid "Article is new or unread" #~ msgstr "Artikkel on uus või lugemata" #~ msgid "Article is read" #~ msgstr "Artikkel on loetud" #~ msgid "Xref" #~ msgstr "Xref" #~ msgid "watched" #~ msgstr "on jälgitav" #~ msgid "high" #~ msgstr "kõrge" #~ msgid "medium" #~ msgstr "keskmine" #~ msgid "zero" #~ msgstr "null" #~ msgid "low" #~ msgstr "madal" #~ msgid "ignored" #~ msgstr "on ignoreeritav" #~ msgid "Score filter will match anything" #~ msgstr "Hindefiltrile vastavad kõik artiklid" #~ msgid "Score filter will match nothing" #~ msgstr "Hindefiltrile ei vasta ühtegi artiklit" #~ msgid "Article score one of: " #~ msgstr "Artikli hinne üks järgmistest: " #~ msgid "Wrote filters to \"%s\"" #~ msgstr "Filtrid kirjutatud faili \"%s\"" #~ msgid "Can't use regular expression \"%s\" from file \"%s\", line %d: %s" #~ msgstr "Ei saa kasutada regulaaravaldist \"%s\" failist \"%s\", rida %d: %s" #~ msgid "expired old score" #~ msgstr "kehtivuse kaotanud hinne" #~ msgid "skipping unsupported criteria" #~ msgstr "toetamata tingimus jäetakse vahele" #~ msgid "unexpected line." #~ msgstr "ootamatu rida." #~ msgid "Error reading file: " #~ msgstr "Viga faili lugemisel: " #~ msgid "skipping score because it has no criteria" #~ msgstr "tingimusteta hinne jäetakse vahele" #~ msgid "" #~ "Loaded %d score entries in %d sections in %.1f seconds (%.0f entries/sec)" #~ msgstr "" #~ "Laetud %d hindekannet %d sektsioonis %.1f sekundiga (%.0f kannet/sek)" #~ msgid "Error score to file \"%s\": %s" #~ msgstr "Viga hinde faili \"%s\" kirjutamisel: %s" #~ msgid "Scored %d entries in %.1f seconds (%.0f articles/sec)" #~ msgstr "Hinnatud %d artiklit %.1f sekundiga (%.0f art/sek)" #~ msgid "Error removing scorefile entry: %s" #~ msgstr "Viga hindefaili kirje eemaldamisel: %s" #~ msgid "Scorefile entry removed -- old scorefile \"%s\" backed up as \"%s\"" #~ msgstr "" #~ "Hindefaili kirje eemaldatud -- vana kirjefail \"%s\" varundatud kui \"%s\"" #~ msgid "Folder \"%*.*s\" already exists." #~ msgstr "Kataloog \"%*.*s\" on juba olemas." #~ msgid "Please don't begin folders with \"pan.\"; it confuses me." #~ msgstr "" #~ "Palun ära tee katalooge, mille nimi algab \"pan.\"-ga; see ajab mind " #~ "segadusse." #~ msgid "Create New Folder" #~ msgstr "Loo uus kataloog" #~ msgid "New Folder Name:" #~ msgstr "Uue kataloogi nimi:" #~ msgid "/Get New Headers and _Bodies" #~ msgstr "/Tõmba uued päised ja _artiklid" #~ msgid "/More Download _Options..." #~ msgstr "/_Veel allalaadimise sätteid..." #~ msgid "/Refresh Article _Counts" #~ msgstr "/Värskenda artiklite _arvu" #~ msgid "/Group _Properties..." #~ msgstr "/Grupi _omadused..." #~ msgid " (Moderated)" #~ msgstr " (modereeritud)" #~ msgid " (Read-Only)" #~ msgstr " (ainult loetav)" #~ msgid "Subscribed" #~ msgstr "Tellitud" #~ msgid "All Groups" #~ msgstr "Kõik grupid" #~ msgid "" #~ "We don't have a list of groups for \"%*.*s\".\n" #~ "Shall we download one?" #~ msgstr "" #~ "Serveri \"%*.*s\" jaoks ei ole gruppide nimekirja.\n" #~ "Kas hangime?" #~ msgid "Total" #~ msgstr "Kokku" #~ msgid "Description" #~ msgstr "Kirjeldus" #~ msgid "F_ind:" #~ msgstr "_Otsi:" #~ msgid "" #~ "Type in a group search string and press ENTER. Wildcards are allowed." #~ msgstr "Sisesta otsingutekst ja vajuta ENTER. Metamärgid on lubatud." #~ msgid "" #~ msgstr "" #~ msgid "X-Newsreader" #~ msgstr "X-Uudiseriider" #~ msgid "X-Mailer" #~ msgstr "X-Meiler" #~ msgid "User-Agent" #~ msgstr "Klientprogramm" #~ msgid "News server connection count: %d" #~ msgstr "Uudiseserverite ühenduste arv: %d" #~ msgid "The Task Manager is Empty" #~ msgstr "Järjekorras pole ühtegi ülesannet" #~ msgid "Pan is Online" #~ msgstr "Ühendatud" #~ msgid "Connection" #~ msgstr "Ühendus" #~ msgid "Post" #~ msgstr "Postita" #~ msgid "Get" #~ msgstr "Tõmba" #~ msgid "Mine" #~ msgstr "Minu" #~ msgid "Net" #~ msgstr "Võrk" #~ msgid "/_File/Save A_ttachments" #~ msgstr "/_Fail/Salvesta ma_nused" #~ msgid "/_File/_Save Attachments As..." #~ msgstr "/_Fail/Sal_vesta manused kui..." #~ msgid "/_File/_Manual Decode..." #~ msgstr "/_Fail/_Dekodeeri käsitsi..." #~ msgid "/_File/---" #~ msgstr "/_Fail/---" #~ msgid "/_File/_Cancel Last Task" #~ msgstr "/_Fail/_Tühista viimane ülesanne" #~ msgid "/_File/_Print Article..." #~ msgstr "/_Fail/P_rindi artikkel..." #~ msgid "/_File/_New Folder..." #~ msgstr "/_Fail/_Uus kataloog..." #~ msgid "/_File/Delete _Folder..." #~ msgstr "/_Fail/_Kustuta kataloog..." #~ msgid "/_File/_Edit Article in Folder" #~ msgstr "/_Fail/_Muuda artiklit kaustas" #~ msgid "/_File/E_xit" #~ msgstr "/_Fail/_Välju" #~ msgid "/_File/_Quit" #~ msgstr "/_Fail/L_õpeta" #~ msgid "/_Edit" #~ msgstr "/_Redaktor" #~ msgid "/_Edit/Select all" #~ msgstr "/_Redaktor/Vali kõik" #~ msgid "/_Edit/Deselect all" #~ msgstr "/_Redaktor/Tühista valik" #~ msgid "/_Edit/---" #~ msgstr "/_Redaktor/---" #~ msgid "/_Edit/Select all _Groups" #~ msgstr "/_Redaktor/Vali kõik _grupid" #~ msgid "/_Edit/Add S_ubscribed to Selection" #~ msgstr "/_Redaktor/Lisa te_llitud grupid valikusse" #~ msgid "/_Edit/Deselect all G_roups" #~ msgstr "/_Redaktor/_Tühista gruppide valik" #~ msgid "/_Edit/Select all _Articles" #~ msgstr "/_Redaktor/Vali kõik _artiklid" #~ msgid "/_Edit/Add S_et to Selection" #~ msgstr "/_Redaktor/Lisa kom_plekt valikusse" #~ msgid "/_Edit/_Find..." #~ msgstr "/_Redaktor/_Otsi..." #~ msgid "/_Edit/Find _Next" #~ msgstr "/_Redaktor/Otsi _järgmine" #~ msgid "/_View/---" #~ msgstr "/_Vaade/---" #~ msgid "/_View/Show Group _Pane" #~ msgstr "/_Vaade/_Näita gruppide paani" #~ msgid "/_View/Thr_ead Header Pane" #~ msgstr "/_Vaade/Artiklid tee_malõngades" #~ msgid "/_View/_Rot13 Selected Text" #~ msgstr "/_Vaade/_Rot13 valitud tekstile" #~ msgid "/_View/_Wrap Article Body" #~ msgstr "/_Vaade/Mu_rra read artikli sisus" #~ msgid "/_View/Mute _Quoted Text" #~ msgstr "/_Vaade/Peida kv_ooditud tekst" #~ msgid "/_View/E_xpand Selected Threads" #~ msgstr "/_Vaade/A_va valitud teemalõngad" #~ msgid "/_View/C_ollapse Selected Threads" #~ msgstr "/_Vaade/Sulge valit_ud teemalõngad" #~ msgid "/Filte_r/---" #~ msgstr "/Filt_er/---" #~ msgid "/Filte_r/Match Only _Cached Articles" #~ msgstr "/Filt_er/Ainult _puhverdatud artiklid sobivad" #~ msgid "/Filte_r/Match Only _Text Articles" #~ msgstr "/Filt_er/Ainult _tekstiartiklid sobivad" #~ msgid "/Filte_r/Match Only _Binary Attachment Articles" #~ msgstr "/Filt_er/Ainult _binaarmanustega artiklid sobivad" #~ msgid "/Filte_r/Match Only _My Articles" #~ msgstr "/Filt_er/Ainult _minu artiklid sobivad" #~ msgid "/Filte_r/Match _New Articles" #~ msgstr "/Filt_er/_Uued artiklid sobivad" #~ msgid "/Filte_r/Match _Unread Articles" #~ msgstr "/Filt_er/_Lugemata artiklid sobivad" #~ msgid "/Filte_r/Match _Read Articles" #~ msgstr "/Filt_er/L_oetud artiklid sobivad" #~ msgid "/_Go/Read More" #~ msgstr "/_Liigu/Loe edasi" #~ msgid "/_Go/---" #~ msgstr "/_Liigu/---" #~ msgid "/_Go/Next _New Article" #~ msgstr "/_Liigu/Järgmine _uus artikkel" #~ msgid "/_Go/Previous Article _Read" #~ msgstr "/_Liigu/Eelmisena _loetud artikkel" #~ msgid "/_Servers" #~ msgstr "/_Serverid" #~ msgid "/_Servers/Get List of _All Groups" #~ msgstr "/_Serverid/Tõmba _kõikide gruppide nimekiri" #~ msgid "/_Servers/Get List of _New Groups" #~ msgstr "/_Serverid/Tõmba _uute gruppide nimekiri" #~ msgid "/_Servers/---" #~ msgstr "/_Serverid/---" #~ msgid "/_Newsgroups/Mark Group _Read" #~ msgstr "/_Uudisegrupid/_Märgi grupp loetuks" #~ msgid "/_Newsgroups/_Delete Group's Articles" #~ msgstr "/_Uudisegrupid/_Kustuta kõik grupi artiklid" #~ msgid "/_Newsgroups/---" #~ msgstr "/_Uudisegrupid/---" #~ msgid "/_Newsgroups/Get New _Headers" #~ msgstr "/_Uudiserupid/Tõmba uued _päised" #~ msgid "/_Newsgroups/Get New Headers and _Bodies" #~ msgstr "/_Uudisegrupid/Tõmba _uued päised ja artiklid" #~ msgid "/_Newsgroups/More Download _Options..." #~ msgstr "/_Uudisegrupid/_Veel allalaadimise sätteid..." #~ msgid "/_Newsgroups/Refresh Article _Counts" #~ msgstr "/_Uudisegrupid/Värskenda artiklite _arvu" #~ msgid "/_Newsgroups/Get New Headers in Subscribed _Groups" #~ msgstr "/_Uudisegrupid/Tõmba uued päised tellitud _gruppidest" #~ msgid "/_Newsgroups/_Subscribe" #~ msgstr "/_Uudisegrupid/T_elli" #~ msgid "/_Newsgroups/_Unsubscribe" #~ msgstr "/_Uudisegrupid/Lõ_peta tellimus" #~ msgid "/_Newsgroups/Group _Properties..." #~ msgstr "/_Uudisegrupid/Grupi _omadused..." #~ msgid "/_Newsgroups/Dele_te Group" #~ msgstr "/_Uudisegrupid/K_ustuta grupp" #~ msgid "/_Articles/Mark _Read" #~ msgstr "/_Artiklid/Märgi _loetuks" #~ msgid "/_Articles/Mark _Unread" #~ msgstr "/_Artiklid/Mä_rgi kui lugemata" #~ msgid "/_Articles/---" #~ msgstr "/_Artiklid/---" #~ msgid "/_Articles/D_ownload Flagged" #~ msgstr "/_Artiklid/Tõmba märgistatud _artiklid" #~ msgid "/_Articles/_Flag" #~ msgstr "/_Artiklid/_Märgista" #~ msgid "/_Articles/U_nflag" #~ msgstr "/_Artiklid/_Tühista märgistus" #~ msgid "/_Articles/Down_load" #~ msgstr "/_Artiklid/_Laadi alla" #~ msgid "/_Articles/_Watch Thread" #~ msgstr "/_Artiklid/_Jälgi teemalõnga" #~ msgid "/_Articles/_Ignore Thread" #~ msgstr "/_Artiklid/_Ignoreeri teemalõnga" #~ msgid "/_Articles/_View Article's Scores" #~ msgstr "/_Artiklid/Näita _artikli hindeid" #~ msgid "/_Articles/Cancel..." #~ msgstr "/_Artiklid/Tühista..." #~ msgid "/_Articles/Supersed_e..." #~ msgstr "/_Artiklid/Ase_nda..." #~ msgid "/_Articles/_Delete" #~ msgstr "/_Artiklid/_Kustuta" #~ msgid "/_Post" #~ msgstr "/_Postita" #~ msgid "/_Post/_Post to Newsgroup..." #~ msgstr "/_Postita/_Postita uudisegruppi..." #~ msgid "/_Post/_Reply by Email..." #~ msgstr "/_Postita/Vastus m_eilile..." #~ msgid "/_Post/For_ward by Email..." #~ msgstr "/_Postita/_Saada artikkel edasi meilile..." #~ msgid "/_Post/---" #~ msgstr "/_Postita/---" #~ msgid "/_Post/Send Pending _Messages" #~ msgstr "/_Postita/Saada _ootel artiklid" #~ msgid "/_Tools" #~ msgstr "/_Tööriistad" #~ msgid "/_Tools/---" #~ msgstr "/_Tööriistad/---" #~ msgid "/_Tools/Custom _Filters..." #~ msgstr "/_Tööriistad/Oma _filtrid..." #~ msgid "/_Tools/_Rules..." #~ msgstr "/_Tööriistad/_Reeglid..." #~ msgid "/_Tools/_Edit Scorefile..." #~ msgstr "/_Tööriistad/Re_digeeri _hinnetefaili..." #~ msgid "/_Tools/_Log Viewer..." #~ msgstr "/_Tööriistad/_Logiraamat..." #~ msgid "/_Help" #~ msgstr "/_Abi" #~ msgid "/_Help/---" #~ msgstr "/_Abi/---" #~ msgid "The default charset set for articles posted with this profile" #~ msgstr "Selle profiili alt postitatud artiklite vaikimisi märgistik" #~ msgid "Pan: Edit Profile" #~ msgstr "Pan: muuda profiili" #~ msgid "_User Profile" #~ msgstr "_Kasutajaprofiil" #~ msgid "Cus_tom Headers" #~ msgstr "O_ma päised" #~ msgid "You must specify a username or disable authorization." #~ msgstr "Sa pead kasutajanime sisestama või autentimise keelama." #~ msgid "" #~ "Your real name contained double quotes.\n" #~ "Converting into single quotes." #~ msgstr "" #~ "Su nimi sisaldas jutumärke.\n" #~ "Need asendatakse apostroofidega." #~ msgid "You need at least one profile" #~ msgstr "Sul peab olema vähemalt üks kasutajaprofiil" #~ msgid "Use the selected profile to create a new profile" #~ msgstr "Kasuta valitud profiili andmeid uue loomisel" #~ msgid "Wrote profiles to \"%s\"" #~ msgstr "Profiilid kirjutatud faili \"%s\"" #~ msgid "Save the log to a file" #~ msgstr "Salvesta logiraamat faili" #~ msgid "/_File/_Save..." #~ msgstr "_Fail/_Salvesta..." #~ msgid "/_File/Clea_r" #~ msgstr "/_Fail/_Kustuta" #~ msgid "/_File/_Close" #~ msgstr "/_Fail/_Sulge" #~ msgid "Pan: Status Log" #~ msgstr "Pan: Logiraamat" #~ msgid "Clear the log window" #~ msgstr "Puhasta logiraamat" #~ msgid "Time" #~ msgstr "Aeg" #~ msgid "Log Entry" #~ msgstr "Logikirje" #~ msgid "Post anyway, despite these problems?" #~ msgstr "Postita sellegipoolest, hoolimata nendest probleemidest?" #~ msgid "Post anyway, despite this problem?" #~ msgstr "Postita sellegipoolest, hoolimata probleemist?" #~ msgid "/_File/_Save Changes" #~ msgstr "/_Fail/_Salvesta muudatused" #~ msgid "/_File/Save _As..." #~ msgstr "/_Fail/Salvesta _kui..." #~ msgid "/_Edit/Cu_t" #~ msgstr "/_Redaktor/_Lõika" #~ msgid "/_Edit/_Copy" #~ msgstr "/_Redaktor/_Kopeeri" #~ msgid "/_Edit/_Paste" #~ msgstr "/_Redaktor/_Aseta" #~ msgid "/_Edit/_Rot13 Selected Text" #~ msgstr "/_Redaktor/_Rot13 valitud tekstile" #~ msgid "/_Edit/Edit with E_xternal Editor" #~ msgstr "/_Redaktor/Redigeeri v_älise redaktoriga" #~ msgid "/_File/Send Now" #~ msgstr "/_Fail/Saada nüüd" #~ msgid "/_File/Send Later" #~ msgstr "/_Fail/Saada hiljem" #~ msgid "Send Later" #~ msgstr "Saada hiljem" #~ msgid "Rewrap" #~ msgstr "Murra uuesti" #~ msgid "Turn line wrap on/off" #~ msgstr "Lülita ridade murdmine sisse/välja" #~ msgid "Edit with an External Editor" #~ msgstr "Redigeeri teksti välise redaktoriga" #~ msgid "Mime (single-part posts only)" #~ msgstr "Mime (ainult üheosalised postitused)" #~ msgid " (%lu lines in 1 article)" #~ msgstr " (%lu rida ühes artiklis)" #~ msgid "UUEncoded (universally accepted)" #~ msgstr "UUEncoded (laialt levinud)" #~ msgid "yEnc (30 percent smaller than UUEnc but less universal)" #~ msgstr "yEnc (30 protsenti väiksem kui UUEnc, aga vähem levinud)" #~ msgid "Select the file to attach." #~ msgstr "Vali fail, mis manustada." #~ msgid "Files to Attach" #~ msgstr "Manustatavad failid" #~ msgid "Kilobytes" #~ msgstr "Kilobaiti" #~ msgid "Add a File to the Attachment List" #~ msgstr "Lisa fail manuste nimekirja" #~ msgid "Remove a File from the Attachment List" #~ msgstr "Eemalda fail manuste nimekirjas" #~ msgid "Lines per article:" #~ msgstr "Ridu ühes artiklis:" #~ msgid "Estimated Article Size" #~ msgstr "Artikli umbkaudne suurus" #~ msgid "Organization" #~ msgstr "Organisatsioon" #~ msgid "The organization you're associated with." #~ msgstr "Organisatsioon, millega sa seotud oled." #~ msgid "Charset" #~ msgstr "Märgistik" #~ msgid "" #~ "Could not convert \"%s\" to UTF-8. Article may not display correctly." #~ msgstr "" #~ "Ei saa \"%s\" UTF-8sse ümber kodeerida. Artikkel ei pruugi korrektselt " #~ "esituda." #~ msgid "\"Followup-To: poster\": sending email to author." #~ msgstr "\"Followup-To: poster\": meil saadetakse autorile." #~ msgid "\"Followup-To:\" contains an email address: sending email to author." #~ msgstr "\"Followup-To:\" sisaldab meiliaadressi: meil saadetakse autorile." #~ msgid "New Message" #~ msgstr "Uus artikkel" #~ msgid "" #~ "ERROR: line %d, column %d uses a character not specified in charset \"%s" #~ "\" -- possibly change your charset in \"More Headers\" to \"%s\" instead?" #~ msgstr "" #~ "VIGA: rida %d, veerg %d kasutab märki, mida pole märgistikus \"%s\" - " #~ "võibolla peaksid hoopis \"%s\" kasutama (vaata lehekülge \"Lisapäised\")?" #~ msgid "Save message to file" #~ msgstr "Salvesta artikkel faili" #~ msgid "The command line was: %s" #~ msgstr "Käsurida oli: %s" #~ msgid "NNTP handshake failed: %s" #~ msgstr "NNTP käepigistus ebaõnnestus: %s" #~ msgid "Handshake failed: %s" #~ msgstr "Käepigistus ebaõnnestus: %s" #~ msgid "Handshake: %s" #~ msgstr "Käepigistus: %s" #~ msgid "Authentication failed: bad handshake for SPA password" #~ msgstr "Autentimine ebaõnnestus: vale käepigistus SPA paroolile" #~ msgid "Bad SPA handshake: %s" #~ msgstr "Vale SPA käepigistus: %s" #~ msgid "Authentication failed: need a password" #~ msgstr "Autentimine ebaõnnestus: nõutakse parooli" #~ msgid "Authentication failed: %s" #~ msgstr "Autentimine ebaõnnestus: %s" #~ msgid "%*.*s handshake failed: %s" #~ msgstr "Käepigistus serveriga %*.*s ebaõnnestus: %s" #~ msgid "No supported authentication mechanism" #~ msgstr "Pole ühtegi toetatud autentimismehanismi" #~ msgid "No password found!" #~ msgstr "Ei leia parooli!" #~ msgid "MODE READER check failed: %s" #~ msgstr "MODE READER kontroll ebaõnnestus: %s" #~ msgid "Posting failed. Server said: %s" #~ msgstr "Postitamine ebaõnnestus. Server vastas: %s" #~ msgid "Posting complete. Server said: %s" #~ msgstr "Postitamine õnnestus. Server vastas: %s" #~ msgid "\"stay connected\" sent to %*.*s" #~ msgstr "\"hoia ühendust\" saadetud serverile %*.*s" #~ msgid "Getting header list failed: %s" #~ msgstr "Päiste nimekirja tõmbamine ebaõnnestus: %s" #~ msgid "Corrupt header skipped: %s" #~ msgstr "Vigane päis vahele jäetud: %s" #~ msgid "Getting \"%s\"" #~ msgstr "\"%s\" laadimine" #~ msgid "Getting %d of %d" #~ msgstr "Artikli laadimine (%d. %d-st)" #~ msgid "Select Color" #~ msgstr "Vali värv" #~ msgid "_Browse..." #~ msgstr "_Vali..." #~ msgid "Font Family" #~ msgstr "Perekond" #~ msgid " --version Prints Pan's version number" #~ msgstr " --version Väljasta Pan'i versiooninumber" #~ msgid " --help Prints this message and exits" #~ msgstr " --help Väljasta see teade ja lõpeta" #~ msgid "" #~ " --debug Turns on the most commonly-used options for a bug " #~ "report" #~ msgstr "" #~ " --debug Lülitab sisse enamuse üldiselt-vajalikud sätted " #~ "veateate jaoks" #~ msgid "" #~ " --mute Debugging tool to send new posts to console, not the " #~ "server" #~ msgstr "" #~ " --mute Silumise tööriist, mis saadab postitused konsoolilie, " #~ "mitte serverile" #~ msgid " --debug-cache Print debugging messages for the article cache" #~ msgstr " --debug-cache Väljasta artiklite puhvri silumisteated" #~ msgid "" #~ " --debug-sockets Print debugging messages when talking to the news " #~ "server" #~ msgstr " --debug-sockets Väljasta serveriga suhtlemise silumisteated" #~ msgid "" #~ " --debug-queue Print debugging messages related to managing tasks" #~ msgstr " --debug-queue Väljasta ülesannetehalduse silumisteated" #~ msgid "" #~ " --debug-decode Print debugging messages related to decoding " #~ "attachments" #~ msgstr " --debug-decode Väljasta manuste dekodeerimise silumisteated" #~ msgid " --debug-newsrc Print debugging messages related to .newsrc files" #~ msgstr " --debug-newsrc Väljasta .newsrc failide silumisteated" #~ msgid "" #~ " --debug-gnksa Print debugging messages related to gnksa correctness" #~ msgstr " --debug-gnksa Väljasta gnksa korrektsuse silumisteated" #~ msgid "" #~ " --debug-trace Print debugging messages when entering/leaving " #~ "functions" #~ msgstr "" #~ " --debug-trace Väljasta funktsioonide sisenemise/väljumise " #~ "silumisteated" #~ msgid "" #~ " --debug-lock Print debugging messages related to threaded gui locks" #~ msgstr "" #~ " --debug-lock Väljasta kasutajaliidese lõimede lukkude silumisteated" #~ msgid "" #~ " --debug-object Print debugging messages related to refcounted objects" #~ msgstr "" #~ " --debug-object Väljasta loendatud (refcount) objektide silumisteated" #~ msgid "Error writing to socket." #~ msgstr "Soklisse kirjutamise viga." #~ msgid "pan.sent" #~ msgstr "pan.saadetud" #~ msgid "pan.sendlater" #~ msgstr "pan.saadahiljem" #~ msgid "Spellchecking disabled: gtkspell_init() failed with status %d" #~ msgstr "" #~ "Õigekirjakontroll välja lülitatud: gtkspell_init() ebaõnnestus olekuga %d" #~ msgid "Restored %d tasks from last session" #~ msgstr "Viimasest seansist taastatud %d ülesannet" #~ msgid "" #~ "Some tasks were still queued the last time Pan exited. Do you want to " #~ "resume those tasks?" #~ msgstr "" #~ "Mõned ülesanded olid veel järjekorras, kui Pan viimati lõpetas. Kas sa " #~ "tahad nende täitmist jätkata?" #~ msgid "_Resume" #~ msgstr "_Jätka" #~ msgid "" #~ "%a - abbreviated weekday name\n" #~ "%A - full weekday name\n" #~ "%b - abbreviated month name\n" #~ "%B - full month name\n" #~ "%c - local date & time\n" #~ "%d - day of the month\n" #~ "%H - hour (24-hour clock)\n" #~ "%I - hour (12-hour clock)\n" #~ "%j - day of the year (001-366)\n" #~ "%m - month (01-12)\n" #~ "%M - minute (00-59)\n" #~ "%p - local equivalent of AM/PM\n" #~ "%S - second (00-61)\n" #~ "%x - local date\n" #~ "%X - local time\n" #~ "%y - two-digit year\n" #~ "%Y - four-digit year\n" #~ "%% - %" #~ msgstr "" #~ "%a - lühendatud nädalapäev\n" #~ "%A - täielik nädalapäev\n" #~ "%b - lühendatud kuunimi\n" #~ "%B - täielik kuunimi\n" #~ "%c - kohalik kuupäev & kell\n" #~ "%d - päev\n" #~ "%H - tund (24-tunnine kell)\n" #~ "%I - tund (12-tunnine kell)\n" #~ "%j - päev aastas (001-366)\n" #~ "%m - kuu (01-12)\n" #~ "%M - minut (00-59)\n" #~ "%p - kohalik vastand AM/PM-le\n" #~ "%S - sekund (00-61)\n" #~ "%x - kohalik kuupäev\n" #~ "%X - kohalik kell\n" #~ "%y - kahekohaline aasta\n" #~ "%Y - neljakohaline aasta\n" #~ "%% - %" #~ msgid "_Read Threads:" #~ msgstr "_Loetud teemalõngad:" #~ msgid "_Unread Threads:" #~ msgstr "Lugemata teemal_õngad:" #~ msgid "Color the \"sub_ject\" column" #~ msgstr "Värvi \"teema\" veerg" #~ msgid "Articles with a Score of 9999 or higher:" #~ msgstr "Artiklid hindega on 9999 või kõrgem:" #~ msgid "Articles with a Score between 5000 and 9998:" #~ msgstr "Artiklid hindega 5000 ja 9998 vahel:" #~ msgid "Articles with a Score between 1 and 4999:" #~ msgstr "Artiklid hindega 1 ja 4999 vahel:" #~ msgid "Articles with a Score between -9998 and -1:" #~ msgstr "Artiklid hindega -9998 ja -1 vahel:" #~ msgid "Articles with a Score of -9999 or lower:" #~ msgstr "Artiklid hindega -9999 või madalam:" #~ msgid "_1:" #~ msgstr "_1:" #~ msgid "_2:" #~ msgstr "_2:" #~ msgid "_3:" #~ msgstr "_3:" #~ msgid "Pane Order" #~ msgstr "Paanide järjekord" #~ msgid "Action State" #~ msgstr "Tegevuse olek" #~ msgid "Article State" #~ msgstr "Artikli olek" #~ msgid "Column Layout" #~ msgstr "Veergude asetus" #~ msgid "When a Followup subject header changes, show as _new thread" #~ msgstr "Kui va_stukaja muudab teemat, siis näita uue teemalõngana" #~ msgid "E_xpand all threads by default" #~ msgstr "Va_ikimisi ava kõik teemalõngad" #~ msgid "Show complete _multipart posts as a single article" #~ msgstr "N_äita terveid mitmeosalisi artikleid ühe artiklina" #~ msgid "Date Forma_t:" #~ msgstr "_Kuupäeva vorming:" #~ msgid "Show \"%s\" header" #~ msgstr "Näita päist \"%s\"" #~ msgid "Newsreader" #~ msgstr "Uudiseriider" #~ msgid "Characters denoting _quoted text:" #~ msgstr "Märgid, mis määravad kv_ooditud teksti:" #~ msgid "Download new headers from s_ubscribed groups when starting Pan" #~ msgstr "Pani käivitamisel tõmba tellitud gruppidest uued p_äised" #~ msgid "" #~ "Download new headers and bod_ies from subscribed groups when starting Pan" #~ msgstr "" #~ "Pani käivitamisel t_õmba tellitud gruppidest uued päised ja artiklid" #~ msgid "Download Directory" #~ msgstr "Allalaadimise kataloog" #~ msgid "Automatically remove _failed tasks from the task manager" #~ msgstr "Eemalda _ebaõnnestunud tööd töödejuhataja nimekirjast automaatselt" #~ msgid "_Erase cache when exiting Pan" #~ msgstr "P_uhasta puhver Panist väljumisel" #~ msgid "Ma_ximum Cache Size (Megs):" #~ msgstr "Ma_ksimaalne puhvri suurus (mega):" #~ msgid "_Web Browser (%s is URL):" #~ msgstr "Vee_bibrauser (%s on URL):" #~ msgid "_Editor (%t is filename):" #~ msgstr "R_edaktor (%t on failinimi):" #~ msgid "" #~ "Scorefile _Editor:\n" #~ "(%t is filename, %n is line number)" #~ msgstr "" #~ "Hindefaili _redaktor:\n" #~ "(%t on failinimi, %n reanumber)" #~ msgid "Scorefile" #~ msgstr "Hindefail" #~ msgid "Score_file" #~ msgstr "Hinde_fail" #~ msgid "Sending Mail" #~ msgstr "Meilisõnumi saatmine" #~ msgid "Mail Server Add_ress:" #~ msgstr "Postiserveri aa_dress:" #~ msgid "Mail Server Por_t:" #~ msgstr "Postiserveri p_ort:" #~ msgid "Pane _Layout" #~ msgstr "Paanide _asetus" #~ msgid "Hea_der Pane" #~ msgstr "_Teemalõngade paan" #~ msgid "A_pps & Mail" #~ msgstr "_Rakendused ja meil" #~ msgid "Pan: Print" #~ msgstr "Pan: Prindi" #~ msgid "You haven't loaded an article to print." #~ msgstr "Sa ei ole printimiseks artiklit laadinud." #~ msgid "" #~ "%s\n" #~ "\n" #~ "Matches: %u\n" #~ "Group: %s\n" #~ "Rule: %s" #~ msgstr "" #~ "%s\n" #~ "\n" #~ "Vastavad: %u\n" #~ "Grupp: %s\n" #~ "Reegel: %s" #~ msgid "Mark as" #~ msgstr "Märgista kui" #~ msgid "_Flag body for download" #~ msgstr "Märgista artikkel _allalaadmiseks" #~ msgid "_Retrieve Body" #~ msgstr "_Tõmba artikli sisu" #~ msgid "_Watch thread (highlights the thread)" #~ msgstr "_Jälgi teemalõnga (tõstab teemalõnga esile)" #~ msgid "_Ignore thread (hides the thread by default)" #~ msgstr "_Ignoreeri teemalõnga (vaikimisi peidab teemalõnga)" #~ msgid "Select Filter:" #~ msgstr "Vali filter:" #~ msgid "Rule applies to all newsgroups" #~ msgstr "Reegel rakendub kõikidele uudisegruppidele" #~ msgid "Wildcard group specification:" #~ msgstr "Metamärkidega uudisegrupi otsing:" #~ msgid "(e.g., *anime*)" #~ msgstr "(näiteks *anime*)" #~ msgid "Rule applies to specific newsgroups:" #~ msgstr "Reegel rakendub kindlatele uudisegruppidele:" #~ msgid "Subscribed Newsgroups" #~ msgstr "Tellitud uudisegrupid" #~ msgid "Rule applies to:" #~ msgstr "Reegel rakendub:" #~ msgid "Rule Name:" #~ msgstr "Reegli nimi:" #~ msgid "Apply to Incoming" #~ msgstr "Rakenda sissetulevatele" #~ msgid "" #~ "If enabled, this rule will be applied to headers when they are downloaded." #~ msgstr "" #~ "Kui aktiivne, siis rakendatakse seda reeglit päistele allalaadimisel." #~ msgid "New Rule" #~ msgstr "Uus reegel" #~ msgid "Delete Articles by Bozos" #~ msgstr "Kustuta jobude saadetud artiklid" #~ msgid "Delete Spam" #~ msgstr "Kustuta spämm" #~ msgid "Applying rule to selected groups" #~ msgstr "Reegli rakendamine valitud gruppidele" #~ msgid "Applying rule \"%s\" to group \"%s\"" #~ msgstr "Reegli \"%s\" rakendamine grupile \"%s\"" #~ msgid "Pan: Rules" #~ msgstr "Pan: Reeglid" #~ msgid "Rules" #~ msgstr "Reeglid" #~ msgid "Hit Ratio" #~ msgstr "Tabamusmäär" #~ msgid "" #~ "Apply to\n" #~ "Selected\n" #~ "Groups" #~ msgstr "" #~ "Rakenda\n" #~ "valitud\n" #~ "gruppidele" #~ msgid "" #~ "Apply to\n" #~ "Subscribed\n" #~ "Groups" #~ msgstr "" #~ "Rakenda\n" #~ "tellitud\n" #~ "gruppidele" #~ msgid "Wrote rules to \"%s\"" #~ msgstr "Reeglid kirjutatud faili \"%s\"" #~ msgid "" #~ "Can't find filter \"%s\" needed by rule \"%s\", so no articles match." #~ msgstr "" #~ "Ei leia filtrit \"%s\", mida vajab reegel \"%s\", seega ükski artikkel ei " #~ "vasta tingimustele." #~ msgid "%u articles match rule %s" #~ msgstr "reegli %2$s tingimustele vastab %1$u artiklit" #~ msgid "Pan: Manual Decode" #~ msgstr "Pan: Käsitsi dekodeerimine" #~ msgid "Pan: Save As" #~ msgstr "Pan: Salvesta kui" #~ msgid "Save Files in Directory" #~ msgstr "Salvesta failid kataloogi" #~ msgid "_Directory:" #~ msgstr "_Kataloog:" #~ msgid "Add to the _top of the Task Manager's List" #~ msgstr "Lisa ülesanne tööde järjekorra _algusesse" #~ msgid "Criterion \"%s\" is selected, but empty." #~ msgstr "Tingimus \"%s\" on valitud, kuid tühi." #~ msgid "No criteria are selected." #~ msgstr "Ühtegi tingimust pole valitud." #~ msgid "Pan: Add to Scorefile" #~ msgstr "Pan: lisa hindefaili" #~ msgid "Su_bject:" #~ msgstr "_Teema:" #~ msgid "A_uthor:" #~ msgstr "_Autor:" #~ msgid "_Lines:" #~ msgstr "_Ridu:" #~ msgid "at least N lines long" #~ msgstr "vähemalt N rida pikk" #~ msgid "less than N lines long" #~ msgstr "vähem kui N rida pikk" #~ msgid "Chan_ge Score:" #~ msgstr "M_uuda hinnet:" #~ msgid "subtract" #~ msgstr "lahuta" #~ msgid "Expire in N _days:" #~ msgstr "Kehtib N _päeva:" #~ msgid "Edit the selected score" #~ msgstr "Muuda valitud hinnet" #~ msgid "You must specify an address." #~ msgstr "Sa pead aadressi sisestama." #~ msgid "You must specify a password or disable authorization." #~ msgstr "Sa pead parooli sisestama või autentimise keelama." #~ msgid "You must specify a .newsrc filename or disable newsrc support." #~ msgstr "Sa pead .newsrc faili nime sisestama või newsrc kasutamise keelama." #~ msgid "_Name:" #~ msgstr "_Nimi:" #~ msgid "Newsrc" #~ msgstr "Newsrc" #~ msgid "Us_e .newsrc file" #~ msgstr "Ka_suta .newsrc faili" #~ msgid "Select .newsrc File" #~ msgstr "Vali .newsrc fail" #~ msgid "_Filename:" #~ msgstr "_Faili nimi:" #~ msgid "Edit the selected server" #~ msgstr "Muuda valitud serverit" #~ msgid "Remove the selected server" #~ msgstr "Kustuta valitud server" #~ msgid "Got unexpected response from mail server: expected %d; got %s" #~ msgstr "Meiliserver tagastas ootamatu vastuse: oodatud %d; saadud %s" #~ msgid "Sending mail" #~ msgstr "Meilisõnumi saatmine" #~ msgid "No known recipients" #~ msgstr "Vastuvõtjad on tundmatud" #~ msgid "Mail sent!" #~ msgstr "Sõnum saadetud!" #~ msgid "Handshaking with mail server" #~ msgstr "Käepigistus meiliserveriga" #~ msgid "Connecting to mail server" #~ msgstr "Meiliserveriga ühendamine" #~ msgid "Unable to connect to mail server \"%*.*s\"" #~ msgstr "Ei saa luua ühendust meiliserveriga \"%*.*s\"" #~ msgid "Mail server not ready" #~ msgstr "Meiliserver ei ole teenindamiseks valmis" #~ msgid "Sending Keepalive" #~ msgstr "Keepalive saatmine" #~ msgid "Disconnecting Idle" #~ msgstr "Kasutamata ühenduse katkestamine" #~ msgid "Disconnecting one connection from `%s' after %d seconds idle" #~ msgstr "" #~ "Üks ühendus serverisse \"%s\" suletakse, kuna %d sekundit kasutamata" #~ msgid "Connection to %*.*s, port %d failed: %s" #~ msgstr "Ühendus server %*.*s porti %d ebaõnnestus: %s" #~ msgid "Error writing to socket: %s" #~ msgstr "Soklisse kirjutamise viga: %s" #~ msgid "Downloading %d" #~ msgstr "%d allalaadimine" #~ msgid "\"%s\"" #~ msgstr "\"%s\"" #~ msgid "Downloading %u articles" #~ msgstr "%u artikli allalaadimine" #~ msgid "Downloading 1 article" #~ msgstr "1 artikli allalaadimine" #~ msgid "Article %s (%s) canceled" #~ msgstr "Artikkel %s (%s) tühistatud" #~ msgid "Updating article counts for %u groups from server \"%s\"" #~ msgstr "Serveri \"%2$s\" %1$u grupi artiklite arvu uuendamine" #~ msgid "Updated counts for %u groups out of %u" #~ msgstr "Artiklite arv uuendatud %u grupil %u-st" #~ msgid "Unable to update counts for group \"%s\"" #~ msgstr "Ei saa grupi \"%s\" artiklite arvu uuendada" #~ msgid "Getting all groups from server \"%s\"" #~ msgstr "Kõikide gruppide laadimine serverist \"%s\"" #~ msgid "Got %d groups from server \"%s\"" #~ msgstr "%d gruppi saadud serverist \"%s\"" #~ msgid "Adding groups to server \"%s\"" #~ msgstr "Gruppide lisamine serverile \"%s\"" #~ msgid "List Newsgroups failed: %s" #~ msgstr "Uudisegruppide nimekirja küsimine ebaõnnestus: %s" #~ msgid "Got %d descriptions from server \"%s\"" #~ msgstr "%d kirjeldust saadud serverist \"%s\"" #~ msgid "New groups retrieval failed: %s" #~ msgstr "Uute gruppide laadimine ebaõnnestus: %s" #~ msgid "No new articles in group \"%s\"" #~ msgstr "Grupis \"%s\" ei ole uusi artikleid" #~ msgid "New %lu of %lu" #~ msgstr "Uus: %lu. %lu-st" #~ msgid "Sampling %d articles" #~ msgstr "%d näidisartikli laadimine" #~ msgid "Sampling %lu of %lu" #~ msgstr "Näidis: %lu. %lu-st" #~ msgid "All %lu of %lu" #~ msgstr "Kõik: %lu. %lu-st" #~ msgid "%d:%02d:%02d (%.2f KB/s)" #~ msgstr "%d:%02d:%02d (%.2f KB/s)" #~ msgid "Not Queued" #~ msgstr "Ei ole järjekorras" #~ msgid "Stopping" #~ msgstr "Peatatav" #~ msgid "Pan %s Task Manager" #~ msgstr "Pan %s Töödejuhataja" #~ msgid "Move Selected Task(s) Up" #~ msgstr "Liiguta valitud ülesanne(ded) üles" #~ msgid "Move Selected Task(s) to Top" #~ msgstr "Liiguta valitud ülesanne(ded) esimeseks" #~ msgid "Move Selected Task(s) Down" #~ msgstr "Liiguta valitud ülesanne(ded) alla" #~ msgid "Move Selected Task(s) to Bottom" #~ msgstr "Liiguta valitud ülesanne(ded) viimaseks" #~ msgid "Stop Selected Task(s)" #~ msgstr "Peata valitud ülesanne(ded)" #~ msgid "Delete Selected Task(s)" #~ msgstr "Kustuta valitud ülesanne(ded)" #~ msgid "Time Remaining" #~ msgstr "Veel aega" #~ msgid "[This is an email copy of a Usenet post to \"%s\"]" #~ msgstr "[This is an email copy of a Usenet post to \"%s\"]" #~ msgid "Email \"%s\" sent." #~ msgstr "Meilisõnum \"%s\" saadetud." #~ msgid "Email \"%s\" not sent." #~ msgstr "Meilisõnumit \"%s\" ei saadetud." #~ msgid "Article \"%s\" posted." #~ msgstr "Artikkel \"%s\" postitatud." #~ msgid "Article \"%s\" not posted." #~ msgstr "Artiklit \"%s\" ei postitatud." #~ msgid "Posting and mailing article \"%s\"" #~ msgstr "Artikli \"%s\" postitamine ja meilimine" #~ msgid "Mailing article \"%s\"" #~ msgstr "Artiklit \"%s\" meilimine" #~ msgid "Email send failed. " #~ msgstr "Meili saatmine ebaõnnestus. " #~ msgid "Usenet posting failed. " #~ msgstr "Useneti postitamine ebaõnnestus. " #~ msgid "Check Tools|Log Viewer for more information. " #~ msgstr "Täpsema info saamiseks vaata Tööriistad|Logiraamat. " #~ msgid "Your message was saved in the folder \"pan.sendlater\"" #~ msgstr "Sinu artikkel on salvestatud kataloogi \"pan.saadahiljem\"" #~ msgid "Saving `%s'" #~ msgstr "\"%s\" salvestamine" #~ msgid "Saving Attachments" #~ msgstr "Manuste salvestamine" #~ msgid "Saving Articles" #~ msgstr "Artiklite salvestamine" #~ msgid "Save Article can't access path \"%s\"" #~ msgstr "Artikli salvestamine ei saa kasutada kataloogi \"%s\"" # y, c-format #~ msgid "Saved article body to \"%s\"" #~ msgstr "Artikli sisu salvestatud faili \"%s\"" #~ msgid "" #~ "Pan %s\n" #~ "Copyright (c) %d by Charles Kerr\n" #~ "\n" #~ "If you find a bug, please report it.\n" #~ "\n" #~ msgstr "" #~ "Pan %s\n" #~ "Autoriõigus © %d Charles Kerr\n" #~ "\n" #~ "Kui leiad mõne vea, siis palun teata sellest.\n" #~ "\n" #~ msgid "" #~ "http://pan.rebelbase.com/ - Pan Homepage\n" #~ "http://pan.rebelbase.com/bugs/ - Report a Bug\n" #~ "http://pan.rebelbase.com/download/ - Upgrade\n" #~ "\n" #~ msgstr "" #~ "http://pan.rebelbase.com/ - Pan'i koduleht\n" #~ "http://pan.rebelbase.com/bugs/ - Teata veast\n" #~ "http://pan.rebelbase.com/download/ - Uuenda\n" #~ "\n" #~ msgid "" #~ "This program is free software; you can redistribute it\n" #~ "and/or modify it under the terms of the GNU General Public\n" #~ "License as published by the Free Software Foundation;\n" #~ "version 2 of the License.\n" #~ "\n" #~ "This program is distributed in the hope that it will be\n" #~ "useful, but WITHOUT ANY WARRANTY; without even the implied\n" #~ "warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\n" #~ "PURPOSE. See the GNU General Public License for more\n" #~ "details.\n" #~ "\n" #~ "The GNU Public License can be found from the menu above\n" #~ "in Help|About|License." #~ msgstr "" #~ "Käesolev programm on vaba tarkvara. Te võite seda edasi levitada\n" #~ "ja/või muuta vastavalt GNU Üldise Avaliku Litsentsi tingimustele,\n" #~ "nagu need on Vaba Tarkvara Fondi poolt avaldatud; Litsentsi versioon " #~ "number 2.\n" #~ "\n" #~ "Seda programmi levitatakse lootuses, et see on kasulik, kuid ILMA\n" #~ "IGASUGUSE GARANTIITA; isegi KESKMISE/TAVALISE KVALITEEDI GARANTIITA\n" #~ "või SOBIVUSELE TEATUD KINDLAKS EESMÄRGIKS. Üksikasjade suhtes vaata\n" #~ "GNU Üldist Avalikku Litsentsi.\n" #~ "\n" #~ "GNU Üldise Avaliku Litsentsi leiate menüüst Abi|Info|Litsents\n" #~ "(eestikeelne tekst asub aadressil http://linux.ee/materjalid/gpl/)." #~ msgid "Error starting external browser: %s" #~ msgstr "Viga välise brauseri käivitamisel: %s" #~ msgid "Error starting external scorefile editor: %s" #~ msgstr "Viga välise hinnetefaili redaktori käivitamisel: %s" #~ msgid "Incomplete Profile." #~ msgstr "Poolik profiil." #~ msgid "No articles found for group \"%s\"" #~ msgstr "Grupis \"%s\" pole ühtegi artiklit" #~ msgid "Pan: Find Message" #~ msgstr "Pan: Otsi artiklit" #~ msgid "_Profile name:" #~ msgstr "_Profiili nimi:" #~ msgid "/_Go/T_op of Thread" #~ msgstr "/_Liigu/Teemalõnga alg_us" #~ msgid "/_Post/Followup _and Reply" #~ msgstr "/_Postita/Vastukaja _ning vastus" #~ msgid "/_Help/Online Users` _Manual..." #~ msgstr "/_Abi/Onlain kasutaja_manuaal..." #~ msgid "/_Help/_Feedback..." #~ msgstr "/_Abi/_Tagasiside..." #~ msgid "The domain name to use for Message-ID generation" #~ msgstr "Artikli-ID genereerimisel kasutatav domeeninimi" #~ msgid "/Filte_r/Show Matching Articles and Replies" #~ msgstr "/Filt_er/Näita sobivaid artikleid ja vastuseid" #~ msgid "/Filte_r/Show Matching Articles and References" #~ msgstr "/Filt_er/Näita sobivaid ja seonduvaid artikleid" #~ msgid "/Filte_r/Show Threads with Matching Articles" #~ msgstr "/Filt_er/Näita sobivate artiklitega teemalõngu" #~ msgid "/Filte_r/Match Articles which are _Cached" #~ msgstr "/Filt_er/_Puhverdatud artiklid sobivad" #~ msgid "/Filte_r/Match Articles which are not Cache_d" #~ msgstr "/Filt_er/Pu_hverdamata artiklid sobivad" #~ msgid "/Filte_r/Match Articles with Complete _Attachments" #~ msgstr "/Filt_er/_Tervete manustega artiklid sobivad" #~ msgid "/Filte_r/Match Articles with I_ncomplete Attachments" #~ msgstr "/Filt_er/Pooli_kute manustega artiklid sobivad" #~ msgid "/Filte_r/Match Articles with No A_ttachments" #~ msgstr "/Filt_er/_Manusteta artiklid sobivad" #~ msgid "/Filte_r/Match Articles Written by _Other People" #~ msgstr "/Filt_er/Tei_ste kirjutatud artiklid sobivad" #~ msgid "/Filte_r/Match Articles with a Score between 1 and 4999" #~ msgstr "/Filt_er/1 ja 49999 vahele jääva hindega artiklid sobivad" #~ msgid "/_Go/Next High-_Score Article" #~ msgstr "/_Liigu/Järgmine kõrge _hindega artikkel" #~ msgid "Make this the default profile for _news" #~ msgstr "See on vaikimisi profiil _uudiste jaoks" #~ msgid "Make this the default profile for _mail" #~ msgstr "See on vaikimisi profiil _meili jaoks" #~ msgid "Lifespan" #~ msgstr "Kestus" #~ msgid "" #~ "INFORMATION: Please be aware that posts to \"%*.*s\" will not appear " #~ "until approved by the group's moderator." #~ msgstr "" #~ "INFORMATSIOON: Palun pidage meeles, et postitused gruppi \"%*.*s\" " #~ "läbivad moderaatori kontrolli." #~ msgid "Unsupported authentication mechanism: %s" #~ msgstr "Toetamata autentimismehanism: %s" #~ msgid "Programmer & Documentation" #~ msgstr "Programmeerija & dokumentatsiooni kirjutaja" #~ msgid "Invalid folder name: \"%s\"" #~ msgstr "Vigane katalooginimi: \"%s\"" #~ msgid "Show Only Replies to My Articles" #~ msgstr "Näita ainult vastuseid minu artiklitele" #~ msgid "Quoted Text _2:" #~ msgstr "Kvooditud tekst _2:" #~ msgid "Quoted Text _3:" #~ msgstr "Kvooditud tekst _3:" #~ msgid "/Save Article A_ttachments" #~ msgstr "/Salvesta artikli ma_nused" #~ msgid "Save Article _Attachments" #~ msgstr "Salvesta artikli _manused" #~ msgid "/_Tools/Rescore Articles" #~ msgstr "/_Tööriistad/Arvuta artiklite hinded" #~ msgid "" #~ "Pan appears to have crashed or been killed the last time it was run. Do " #~ "you want to revert to the last session's task list?" #~ msgstr "" #~ "Tundub, et eelmisel korral kukkus Pan kokku või tapeti maha. Kas sa " #~ "tahad viimase sessiooni ülesanded taastada?" #~ msgid "Add Author to Bozo Filter" #~ msgstr "Lisa artikli autor jobude filtrisse" #~ msgid "Add Author to Spam Filter" #~ msgstr "Lisa artikli autor spämmifiltrisse" #~ msgid "Add Subject to Spam Filter" #~ msgstr "Lisa artikli teema spämmifiltrisse" #~ msgid "/Add to Bo_zo or Spam Filter..." #~ msgstr "/Lisa jo_bude- või spämmifiltrisse..." #~ msgid "Don't know what to do with header \"%s\"" #~ msgstr "Ei tea, mida teha päisega \"%s\"" #~ msgid "Saved" #~ msgstr "on salvestatud" #~ msgid "Neither Saved nor Queued" #~ msgstr "ei ole salvestatud ega järjekorras" #~ msgid "Article _thread is" #~ msgstr "Artikli _teemalõng" #~ msgid "Neither Watched nor Ignored" #~ msgstr "ei ole jälgitav ega ignoreeritav" #~ msgid "Bozos" #~ msgstr "Jobud" #~ msgid "Spam" #~ msgstr "Spämm" #~ msgid "Article has not been saved or decoded" #~ msgstr "Artiklit ei ole salvestatud või dekodeeritud" #~ msgid "Article has been saved or decoded" #~ msgstr "Artikkel on salvestatud või dekordeeritud" #~ msgid "Article is not queued for saving or decoding" #~ msgstr "Artikkel ei ole järjekorras salvestamiseks või dekodeerimiseks" #~ msgid "Article is queued for saving or decoding" #~ msgstr "Artikkel on järjekorras salvestamiseks või dekodeerimiseks" #~ msgid "Article is either saved or queued for saving" #~ msgstr "Artikkel on salvestatud või salvestamise järjekorras" #~ msgid "Article is neither saved nor queued for saving" #~ msgstr "Artikkel ei ole salvestatud ega salvestamise järjekorras" #~ msgid "Thread isn't watched" #~ msgstr "Teemalõnga ei jälgita" #~ msgid "Thread is watched" #~ msgstr "Teemalõnga jälgitakse" #~ msgid "Thread isn't ignored" #~ msgstr "Teemalõnga ei ignoreerita" #~ msgid "Thread is ignored" #~ msgstr "Teemalõnga ignoreeritakse" #~ msgid "Thread is neither watched nor ignored" #~ msgstr "Teemalõnga ei jälgita ega ignoreerita" #~ msgid "Show Only Watched Threads" #~ msgstr "Näita ainult jälgitavaid teemalõngu" #~ msgid "/Filte_r/Match _Watched Threads" #~ msgstr "/Filt_er/_Jälgitavad teemalõngad sobivad" #~ msgid "/Filte_r/Match _Ignored Threads" #~ msgstr "/Filt_er/I_gnoreeritavad teemalõngad sobivad" #~ msgid "/Filte_r/Match Threads N_either Watched nor Ignored" #~ msgstr "/Filt_er/Teemal_õngad, mida ei jälgita või ignoreerita, sobivad" #~ msgid "/_Articles/Add to Bo_zo or Spam Filter..." #~ msgstr "/_Artiklid/Lisa jo_bude- või spämmifiltrisse..." #~ msgid "" #~ "\n" #~ "\n" #~ " --version Prints Pan's version number\n" #~ " --help Prints this message and exits\n" #~ " --debug Turns on the most commonly-useful options for a bug " #~ "report\n" #~ "\n" #~ " --mute Debugging tool to send new posts to console, not the " #~ "server\n" #~ " --debug-cache Print debugging messages for the article cache\n" #~ " --debug-sockets Print debugging messages when talking to the news " #~ "server\n" #~ " --debug-queue Print debugging messages related to managing tasks\n" #~ " --debug-decode Print debugging messages related to decoding " #~ "attachments\n" #~ " --debug-newsrc Print debugging messages related to .newsrc files\n" #~ " --debug-gnksa Print debugging messages related to gnksa correctness\n" #~ " --debug-trace Print debugging messages when entering/leaving " #~ "functions\n" #~ " --debug-lock Print debugging messages related to threaded gui " #~ "locks\n" #~ " --debug-object Print debugging messages related to refcounted " #~ "objects\n" #~ "\n" #~ msgstr "" #~ "\n" #~ "\n" #~ " --version Väljasta Pan'i versiooninumber\n" #~ " --help Väljasta see teade ja lõpeta\n" #~ " --debug Lülitab sisse enamuse üldiselt-vajalikud sätted " #~ "veateate jaoks\n" #~ "\n" #~ " --mute Silumise tööriist, mis saadab postitused konsoolilie, " #~ "mitte serverile\n" #~ " --debug-cache Väljasta artiklite puhvri silumisteated\n" #~ " --debug-sockets Väljasta serveriga suhtlemise silumisteated\n" #~ " --debug-queue Väljasta ülesannetehalduse silumisteated\n" #~ " --debug-decode Väljasta manuste dekodeerimise silumisteated\n" #~ " --debug-newsrc Väljasta .newsrc failide silumisteated\n" #~ " --debug-gnksa Väljasta gnksa korrektsuse silumisteated\n" #~ " --debug-trace Väljasta funktsioonide sisenemise/väljumise " #~ "silumisteated\n" #~ " --debug-lock Väljasta kasutajaliidese lõimede lukkude " #~ "silumisteated\n" #~ " --debug-object Väljasta loendatud (refcount) objektide silumisteated\n" #~ "\n" #~ msgid "Message _Body:" #~ msgstr "Artikli _sisu:" #~ msgid "Message Body (_Monospace):" #~ msgstr "Artikli sisu (_ühelaiune):" #~ msgid "Watc_hed Threads:" #~ msgstr "_Jälgitavad teemalõngad:" #~ msgid "Appea_rance" #~ msgstr "_Väljanägemine" #~ msgid "Displa_y" #~ msgstr "Kuvami_ne" #~ msgid "_Downloads" #~ msgstr "Allalaa_dimine" #~ msgid "Cach_e" #~ msgstr "_Puhver" #~ msgid "_Mail" #~ msgstr "_Meil" #~ msgid "" #~ "Addresses and Subjects can be changed before being added\n" #~ "to the Spam/Bozo filters.\n" #~ "\n" #~ "For example, a subject of `-->MAKE MONEY FAST<--' will\n" #~ "likely find more spam if shortened to just `MAKE MONEY FAST'.\n" #~ "\n" #~ "Likewise, \"Dudley Dursley\" ' could\n" #~ "be shortened to `' or even `<*@spambot.com>'.\n" #~ "\n" #~ "Wildcards are supported and comparisons are case-insensitive.\n" #~ "For more complex pattern matching, enable the regular expression\n" #~ "button. http://pan.rebelbase.com/regexp.txt for a tutorial.\n" #~ msgstr "" #~ "Aadresse ja teemasid võib enne filtritesse lisamist muuta.\n" #~ "\n" #~ "Näiteks, kui teema `-->MAKE MONEY FAST<--' lühendada\n" #~ "teemaks `MAKE MONEY FAST', on spämmi filtreerimise tõenäosus\n" #~ "palju suurem.\n" #~ "\n" #~ "Sarnaselt, \"Dudley Dursley\" ' võib\n" #~ "lühendada `' või isegi `<*@spambot.com>'.\n" #~ "\n" #~ "Metamärgid on lubatud ja võrdlused on tõstutundetud.\n" #~ "Veelgi võimaluserohkemate mustrite kirjutamiseks vajuta\n" #~ "regulaaravaldiste nuppu. Sissejuhatus asub aadressil\n" #~ "http://pan.rebelbase.com/regexp.txt.\n" #~ msgid "Regular Expression" #~ msgstr "Regulaaravaldis" #~ msgid "Negate" #~ msgstr "Eitus" #~ msgid "AND" #~ msgstr "JA" #~ msgid "OR" #~ msgstr "VÕI" #~ msgid "contains the phrase" #~ msgstr "sisaldab fraasi" #~ msgid "" #~ "See http://pan.rebelbase.com/regexp.txt for a tutorial on how to use " #~ "regular expressions. If regular expressions are turned off, a simple " #~ "case-insensitive wildcard match is used." #~ msgstr "" #~ "Regulaaravaldiste kasutamise lühijuhendi leiad aadressilt http://pan." #~ "rebelbase.com/regexp.txt. Kui regulaaravaldised on välja lülitatud, siis " #~ "kasutatakse lihtsat tõstutundetut metamärkidega vastavusseseadmist." #~ msgid "NOT ANY OF:" #~ msgstr "MITTE ÜKSKI:" #~ msgid "Subject doesn't match the regular expression \"%s\"" #~ msgstr "Teema ei vasta regulaaravaldisele \"%s\"" #~ msgid "Subject matches the phrase \"%s\"" #~ msgstr "Teema vastab fraasile \"%s\"" #~ msgid "Author doesn't match phrase \"%s\"" #~ msgstr "Autor ei vasta fraasile \"%s\"" #~ msgid "Author matches phrase \"%s\"" #~ msgstr "Autor vastab fraasile \"%s\"" #~ msgid "Message-ID doesn't match regular expression \"%s\"" #~ msgstr "Artikli-ID ei vasta regulaaravaldisele \"%s\"" #~ msgid "Message-ID matches regular expression \"%s\"" #~ msgstr "Artikli-ID vastab regulaaravaldisele \"%s\"" #~ msgid "Message-ID doesn't match phrase \"%s\"" #~ msgstr "Artikli-ID ei vasta fraasile \"%s\"" #~ msgid "Message-ID matches phrase \"%s\"" #~ msgstr "Artikli-ID vastab fraasile \"%s\"" #~ msgid "Do_wnload directory:" #~ msgstr "A_llalaadimise kataloog:" #~ msgid "_Tasks" #~ msgstr "_Tööd" #~ msgid "Connecting to news server" #~ msgstr "Uudiseserveriga ühendamine" #~ msgid "QUIT failed: %s" #~ msgstr "QUIT ebaõnnestus: %s" #~ msgid "Ma_ximum connections:" #~ msgstr "Ma_x ühendusi:" #~ msgid "Maximum task retr_ies:" #~ msgstr "Max tööde _uuestiproovimisi:" #~ msgid "No server address specified in the Preferences" #~ msgstr "Serveri aadressi pole häälestuses määratud" #~ msgid "Connect Failure" #~ msgstr "Ühenduse tõrge" #~ msgid "Sending 'stay connected' request" #~ msgstr "Saadan 'hoia ühendust' taotlust" #~ msgid "_Reserve a connection for reading articles" #~ msgstr "_Reserveeri üks ühendus artiklite lugemiseks" #~ msgid "Aborting" #~ msgstr "Tühistan" #~ msgid "???" #~ msgstr "???" #~ msgid "%s (%d tries)" #~ msgstr "%s (%d üritust)" #~ msgid "Restart selected stopped/failed Task(s)" #~ msgstr "Taaskäivita valitud peatatud/ebaõnnestunud ülesanne(ded)" #~ msgid "Unable to save \"%s\": the article(s) couldn't be downloaded." #~ msgstr "Ei saa \"%s\" salvestada: artiklit(eid) ei õnnestunud alla laadida." #~ msgid "" #~ "When you post a message to a newsgroup, your display name will appear in " #~ "the From field. Type your name in as you would like it to appear." #~ msgstr "" #~ "Kui sa postitad sõnumi uudisegruppi, siis näidatakse sinu ekraaninime " #~ "Kellelt väljal. Sisesta oma nimi selliselt nagu soovid seda näha." #~ msgid "Display Name:" #~ msgstr "Ekraaninimi:" #~ msgid "For example: John Doe" #~ msgstr "Näiteks: John Doe" #~ msgid "" #~ "If you belong to an organization and would like for your organization's " #~ "name to appear with your posts, type in your organization name below. " #~ "This information is optional, you may leave it blank." #~ msgstr "" #~ "Kui sa kuulud mõnda organisatsiooni ja tahad, et sinu organisatsiooni " #~ "nimi kuvataks koos sinu postitustega, siis sisesta see nimi järgnevas " #~ "väljas. See info on vabatahtlik, sa võid selle sisestamata jätta." #~ msgid "" #~ "People can reply to your posts by sending you an email message at the " #~ "following address." #~ msgstr "" #~ "Inimesed saavad sinu postitustele vastata, saates sulle sõnumi järgmisele " #~ "aadressile." #~ msgid "For example: user@host.com" #~ msgstr "Näiteks: kasutaja@masin.ee" #~ msgid "" #~ "Please enter the name of the mail server to use when sending email " #~ "messages." #~ msgstr "Palun sisesta meilisõnumite saatmiseks kasutatava serveri nimi." #~ msgid "SMTP Server:" #~ msgstr "SMTP server:" #~ msgid "SMTP Port:" #~ msgstr "SMTP port:" #~ msgid "Type the name of your Internet news server." #~ msgstr "Sisesta oma uudiseserveri nimi." #~ msgid "News (NNTP) server:" #~ msgstr "Uudiseserver (NNTP):" #~ msgid "Port:" #~ msgstr "Port:" #~ msgid "" #~ "If you must log on to your news (NNTP) server, then select the check box " #~ "below." #~ msgstr "" #~ "Kui sa pead oma uudiseserverisse (NNTP) sisse logima, siis tee linnuke " #~ "järgnevasse kasti." #~ msgid "Account name:" #~ msgstr "Kasutajanimi:" #~ msgid "Password:" #~ msgstr "Parool:" #~ msgid "" #~ "Type in the name you would like Pan to show when referring to this " #~ "profile you have just setup. You can name the profile anything you want " #~ "to." #~ msgstr "" #~ "Siesta nimi, mida soovid, et Pan näitaks kui viitab profiilile, mille sa " #~ "just praegu häälestasid. Nimena võid sa kasutada ükskõik mida." #~ msgid "Profile name:" #~ msgstr "Profiili nimi:" #~ msgid "For example: UUNET Server" #~ msgstr "Näiteks: UUNET server" #~ msgid "Email" #~ msgstr "Meiliaadress" #~ msgid "Profile Name" #~ msgstr "Profiili nimi" #~ msgid "Authorization" #~ msgstr "Autorisatsioon" #~ msgid "Can't resolve %s: %s" #~ msgstr "Ei saa %s lahendada: %s" #~ msgid "Can't connect to %s: %s" #~ msgstr "Ei saa %s ühendada: %s" #~ msgid "Timed out waiting to read from the server." #~ msgstr "Taimaut oodates serverist lugemist." #~ msgid "Lost connection to server" #~ msgstr "Ühendus serveriga kaotatud" #~ msgid "Error: reading from socket returned %d." #~ msgstr "Viga: soklist lugemine tagastas %d." #~ msgid "socket [%p] failed its read" #~ msgstr "soklist [%p] lugemine ebaõnnestus" #~ msgid "Timed out waiting for the go-ahead to write to the server" #~ msgstr "Taimaut oodates serverile kirjutamise võimalust." #~ msgid "Decode unable to create file \"%s\" %s" #~ msgstr "Dekooder ei saa tekitada faili \"%s\" %s" #~ msgid "Couldn't create file \"%s\" to export newsrc file %s" #~ msgstr "Ei saa newsrc faili %s eksportimiseks luua faili \"%s\"" #~ msgid "Unable to access or create directory \"%s\"" #~ msgstr "Ei saa kasutada või luua kataloogi \"%s\"" #~ msgid "Can't open file \"%s\"" #~ msgstr "Ei saa avada faili \"%s\"" #~ msgid "/_File/Save As..." #~ msgstr "/_Fail/Salvesta kui..." #~ msgid "Error reading edited file: %s" #~ msgstr "Viga redigeeritud faili lugemisel: %s" #~ msgid "Got %s groups from server \"%s\"" #~ msgstr "%s gruppi saadud serverist \"%s\"" #~ msgid "Could not open \"%s\" for writing: %s\n" #~ msgstr "Ei saa faili \"%s\" kirjutamiseks avada: %s\n" #~ msgid "(%s for user-specified text)" #~ msgstr "(%s kasutaja sisestatavaks tekstiks)" #~ msgid "/_Servers/Select _Server" #~ msgstr "/_Serverid/Vali _server" #~ msgid "Full user name:" #~ msgstr "Kasutaja täisnimi:" #~ msgid "Maximum total number of connections:" #~ msgstr "Maksimaalne ühenduste koguarv:" #~ msgid "Maximum number of task retries before giving up:" #~ msgstr "Maksimaalne ülesande uuestiproovimiste arv enne allaandmist:" #~ msgid "Other Options" #~ msgstr "Muud sätted" #~ msgid "Headers to Show" #~ msgstr "Päised, mida näidata" #~ msgid "Use default background" #~ msgstr "Kasuta vaikimisi taustavärvi" #~ msgid "Body Foreground" #~ msgstr "Sisu tekst" #~ msgid "Use default foreground" #~ msgstr "Kasuta teksti vaikimisi värvi" #~ msgid "Options" #~ msgstr "Sätted" #~ msgid "Old Articles with no New Replies" #~ msgstr "Vanad artiklid, millel pole uusi vastuseid" #~ msgid "New Articles / Articles with New Replies" #~ msgstr "Uued artiklid / Uute vastustega artiklid" #~ msgid "Unread Articles / Articles with Unread Replies" #~ msgstr "Lugemata artiklid / Lugemata vastustega artiklid" #~ msgid "Read Articles with no Unread Replies" #~ msgstr "Loetud artiklid, millel pole lugemata vastuseid" #~ msgid "Grouplist Pane" #~ msgstr "Gruppide nimekiri" #~ msgid "Assigned panes: " #~ msgstr "Seotud paanid: " #~ msgid "The cache stores articles locally for offline reading." #~ msgstr "" #~ "Puhver salvestab artiklid võrguühenduseta lugemiseks kohalikus masinas." #~ msgid "Clear Cache Now" #~ msgstr "Puhasta puhver" #~ msgid "Address" #~ msgstr "Aadress" #~ msgid "Port" #~ msgstr "Port" #~ msgid "Display - Pane Layout" #~ msgstr "Kuvamine - väljanägemine" #~ msgid "Display - Group Pane" #~ msgstr "Kuvamine - grupid" #~ msgid "Display - Header Pane" #~ msgstr "Kuvamine - teemalõngad" #~ msgid "Display - Body Pane" #~ msgstr "Kuvamine - artiklid" #~ msgid "Display - Headers" #~ msgstr "Kuvamine - päised" #~ msgid "General" #~ msgstr "Üldine" #~ msgid "Add New" #~ msgstr "Lisa uus" #~ msgid "Open the Connection Manager" #~ msgstr "Ava ühenduste haldur" #~ msgid "/_Servers/_Import .newsrc..." #~ msgstr "/_Serverid/_Impordi .newsrc..." #~ msgid "/_Servers/_Export .newsrc..." #~ msgstr "/_Serverid/_Ekspordi .newsrc..." #~ msgid "/_Tools/_Online Settings..." #~ msgstr "/_Tööriistad/_Onlain häälestus..." #~ msgid "Add _New" #~ msgstr "Lisa _uus" #~ msgid "Pan: Import .newsrc File" #~ msgstr "Pan: Impordi .newsrc fail" #~ msgid "Pan: Export .newsrc File" #~ msgstr "Pan: Ekspordi .newsrc fail" #~ msgid "Select .newsrc file to write:" #~ msgstr "Vali kirjutatav .newsrc fail:" #~ msgid "Not Named" #~ msgstr "Nimeta" #~ msgid "No Address" #~ msgstr "Aadressi ei ole" #~ msgid "Server Information" #~ msgstr "Serverid" #~ msgid "My server requires my user name and password" #~ msgstr "Server nõuab kasutajanime ja parooli" #~ msgid "Idle Seconds Before Timeout:" #~ msgstr "Tegevuseta sekundeid enne taimauti:" #~ msgid "Directories" #~ msgstr "Kataloogid" #~ msgid "Help" #~ msgstr "Abi" #~ msgid "Wrap text at column" #~ msgstr "Murra tekst veerul" #~ msgid "" #~ "Maximum\n" #~ "Connections" #~ msgstr "" #~ "Maksimaalselt\n" #~ "ühendusi" #~ msgid "Reserve" #~ msgstr "Reserveeri" #~ msgid "Per-Server Preferences" #~ msgstr "Serveripõhised sätted" #~ msgid "" #~ "Newsreaders use .newsrc files to remember which articles\n" #~ "you've read and which groups you're subscribed to. Automatically\n" #~ "importing/exporting .newsrc files lets you share them between Pan and " #~ "other newsreaders." #~ msgstr "" #~ ".newsrc faile kasutavad paljud uudistelugejad, et meeles pidada,\n" #~ "milliseid artikleid sa oled lugenud ja milliseid gruppe sa tellid.\n" #~ "Kui sa kasutad peale Pan-i ka teisi uudistelugejaid, siis saad sa\n" #~ "Pan-i sättida nii, et ta käivitamisel automaatselt impordib ning\n" #~ "väljumisel ekspordib .newsrc faili." #~ msgid "Import/Export .newsrc files automatically" #~ msgstr "Impordi/ekspordi .newsrc failid automaatselt" #~ msgid "read/write subscribed groups only" #~ msgstr "loe/kirjuta info ainult tellitud gruppide kohta" #~ msgid "" #~ "Many users prefer to save memory and disk space by only keeping " #~ "subscribed groups in their .newsrc file." #~ msgstr "" #~ "Paljud kasutajad eelistavad .newsrc failis hoida infot ainult tellitud " #~ "gruppide kohta, et säästa mälu ja kettapinda" #~ msgid ".Newsrc Files" #~ msgstr ".newsrc failid" #~ msgid "New..." #~ msgstr "Uus..." #~ msgid "Edit..." #~ msgstr "Muuda..." #~ msgid "Delete" #~ msgstr "Kustuta" #~ msgid "Servers - News" #~ msgstr "Serverid - uudised" #~ msgid "Servers - Mail" #~ msgstr "Serverid - post" #~ msgid "Add \"/%s\" to path" #~ msgstr "Lisa rajale \"%s\"?" #~ msgid "Don't save article text" #~ msgstr "Ära salvesta artikli sisu" #~ msgid "Use subject header" #~ msgstr "Kasuta artikli teemat" #~ msgid "Specify filename" #~ msgstr "Määra failinimi" #~ msgid "Don't save attachments" #~ msgstr "Ära salvesta manuseid" #~ msgid "Use article subject" #~ msgstr "Kasuta artikli teemat" #~ msgid "English" #~ msgstr "Inglise" #~ msgid "Brazilian" #~ msgstr "Brasiilia" #~ msgid "Catalan" #~ msgstr "Katalaani" #~ msgid "Czech" #~ msgstr "Tšehhi" #~ msgid "Danish" #~ msgstr "Taani" #~ msgid "German" #~ msgstr "Saksa" #~ msgid "Dutch" #~ msgstr "Hollandi" #~ msgid "Estonian" #~ msgstr "Eesti" #~ msgid "Finnish" #~ msgstr "Soome" #~ msgid "French" #~ msgstr "Prantsuse" #~ msgid "Hungarian" #~ msgstr "Ungari" #~ msgid "Italian" #~ msgstr "Itaalia" #~ msgid "Lithuanian" #~ msgstr "Leedu" #~ msgid "Norwegian" #~ msgstr "Norra" #~ msgid "Polish" #~ msgstr "Poola" #~ msgid "Portuguese" #~ msgstr "Portugali" #~ msgid "Romanian" #~ msgstr "Rumeenia" #~ msgid "Russian (KOI)" #~ msgstr "Vene (KOI)" #~ msgid "Russian (ISO)" #~ msgstr "Vene (ISO)" #~ msgid "Slovak" #~ msgstr "Slovakkia" #~ msgid "Spanish" #~ msgstr "Hispaania" #~ msgid "Swedish" #~ msgstr "Rootsi" #~ msgid "Get Flagged Articles" #~ msgstr "Laadi märgistatud artiklid" #, fuzzy #~ msgid "Removed %d articles from \"%s\", which now has %.1f MB" #~ msgstr "Eemaldatud %d artiklit grupist \"%s\"" #~ msgid "Error reading file \"%s\": %s)" #~ msgstr "Viga faili \"%s\" lugemisel: %s)" #~ msgid "I don't know what to do with header \"%s\"" #~ msgstr "Ei tea, mida teha päisega \"%s\"" #~ msgid "WARNING: %d lines too wide in signature" #~ msgstr "HOIATUS: %d rida allkirjas on liiga pikad." #~ msgid "Can't write config to \"%s\": %s" #~ msgstr "Ei saa kirjutada konfiguratsiooni faili \"%s\": %s" #~ msgid "Pan - Log Viewer" #~ msgstr "Pan - Logiraamat" #~ msgid "Add new Line to Filter" #~ msgstr "Lisa filtrile uus rida" #~ msgid "Cached Locally" #~ msgstr "Kohalikus puhvris" #~ msgid "Can't write filters to \"%s\": %s" #~ msgstr "Ei saa filtreid faili \"%s\" kirjutada: %s" #~ msgid "" #~ "The Task Manager is not empty.\n" #~ "Are you sure you want to exit Pan?" #~ msgstr "" #~ "Töödejuhatajal on käed veel tööd täis.\n" #~ "Kas tahad kindlasti Pan'ist väljuda?" #~ msgid "Read:" #~ msgstr "Loe:" #~ msgid "Filter:" #~ msgstr "Filter:" #~ msgid "Wrote %d profiles to '%s'" #~ msgstr "Kirjutasin %d profiili faili '%s'" #~ msgid "Can't write profiles to \"%s\": %s" #~ msgstr "Ei saa profiile faili \"%s\" kirjutada: %s" #~ msgid "Send this Message Later" #~ msgstr "Saada artikkel hiljem" #~ msgid "Rewrap all the text in the Message Body" #~ msgstr "Murra kõik read uuesti" #~ msgid "Followup-To:" #~ msgstr "Vastukaja-Kuhu:" #~ msgid "Reply-To:" #~ msgstr "Vastus-Kuhu:" #~ msgid "Organization:" #~ msgstr "Organisatsioon:" #~ msgid "Canceling message \"%s\"" #~ msgstr "Artikli \"%s\" tühistamine" #~ msgid "Restore Previous Session" #~ msgstr "Taasta eelmine sessioon" #~ msgid "" #~ "If this field contains the string \"%s\", the URL to be viewed is " #~ "substituted there.\n" #~ " \n" #~ "If this field is left blank, then your $BROWSER environmental variable " #~ "will be used (see http://www.tuxedo.org/~esr/BROWSER/). If that isn't " #~ "set either, then the default Gnome setting will be used." #~ msgstr "" #~ "Siin väljas olev string \"%s\" asendatakse vaadatava aadressiga (URL).\n" #~ "\n" #~ "Kui see väli tühjaks jätta, siis kasutatakse sinu keskkonnamuutujat " #~ "$BROWSER (vaata http://www.tuxedo.org/~esr/BROWSER/). Kui ka see pole " #~ "määratud, siis kasutatakse Gnome vaikimisi määrangut." #~ msgid "Newsgroups (if more than one group)" #~ msgstr "Uudisegrupid (kui neid on rohkem kui üks)" #~ msgid "References (if article is a reply)" #~ msgstr "Viited (kui artikkel on vastukaja)" #~ msgid "Reply-To (if different from Author)" #~ msgstr "Vastus-Kuhu (kui erineb Kellelt-aadressist)" #~ msgid "Group list font" #~ msgstr "Gruppide nimekirja kirjatüüp" #~ msgid "Saving group \"%s\"" #~ msgstr "Grupi \"%s\" salvestamine" #~ msgid "Can't write rules to \"%s\": %s" #~ msgstr "Ei saa reegleid faili \"%s\" kirjutada: %s" #~ msgid "Getting %d new groups from server \"%s\"" #~ msgstr "%d uue grupi laadimine serverist \"%s\"" #~ msgid "Wrote tasks to \"%s\"" #~ msgstr "Ülesanded kirjutatud faili \"%s\"" #~ msgid "regexp" #~ msgstr "regulaarav." #~ msgid "Loading Group \"%s\"" #~ msgstr "Laadin gruppi \"%s\"" #~ msgid "Article cache now has %.1f MB" #~ msgstr "Artiklite puhvris on %.1f MB andmeid" #~ msgid "unknown@spammesenseless.net" #~ msgstr "tundmatu@spammisaatjad.net" #~ msgid "Finished!" #~ msgstr "Valmis!" #~ msgid "Pan: Header Pane Filter" #~ msgstr "Pan: Teemalõngade paani filter" #~ msgid "Match Availability:" #~ msgstr "Kättesaadavus:" #~ msgid "Have _Local Copy" #~ msgstr "On _kohalikus puhvris" #~ msgid "Match Author:" #~ msgstr "Autor:" #~ msgid "Posted by _Me" #~ msgstr "_Minu poolt postitatud" #~ msgid "by Someone _Else" #~ msgstr "Kellegi _teise poolt" #~ msgid "Match Age:" #~ msgstr "Vanus:" #~ msgid "_New" #~ msgstr "_Uus" #~ msgid "_Unread" #~ msgstr "_Lugemata" #~ msgid "_Read" #~ msgstr "L_oetud" #~ msgid "Match Attachments:" #~ msgstr "Manused:" #~ msgid "Complete _Binary" #~ msgstr "T_erve kahendartikkel" #~ msgid "Incomple_te Binary" #~ msgstr "_Poolik kahendartikkel" #~ msgid "Match Action:" #~ msgstr "Tegevus:" #~ msgid "_Saved" #~ msgstr "_Salvestatud" #~ msgid "_Queued" #~ msgstr "_Järjekorras" #~ msgid "_Idle" #~ msgstr "J_õude" #~ msgid "Match Attention:" #~ msgstr "Jälgimine:" #~ msgid "_Watched" #~ msgstr "J_älgitav" #~ msgid "Ignore_d" #~ msgstr "I_gnoreeritav" #~ msgid "Ordinar_y" #~ msgstr "Ta_valine" #~ msgid "Show" #~ msgstr "Näita" #~ msgid "Matching articles and replies" #~ msgstr "Vastavaid artikleid ja vastuseid" #~ msgid "Matching articles and references" #~ msgstr "Vastavaid ja seonduvaid artikleid" #~ msgid "Threads with matching articles" #~ msgstr "Vastavate artiklitega teemalõngu" #~ msgid "Add the Condition below to this Filter" #~ msgstr "Lisa allpoololev tingimus filtrisse" #~ msgid "Newsgroups: " #~ msgstr "Uudisegrupid: " #~ msgid "Message-Id: " #~ msgstr "Artikli-Id: " #~ msgid "Connecting to a Remote News Server to Execute a Task" #~ msgstr "Ülesande täitmiseks kaug-uudiseserveriga ühendamine" #~ msgid "Filter Settings..." #~ msgstr "Filtri sätted..." #~ msgid "/_View/Header Pane _Filter..." #~ msgstr "/_Vaade/Teemalõngade paani _filter..." #~ msgid "Incomplete profile." #~ msgstr "Poolik profiil." #~ msgid "Post to groups:" #~ msgstr "Postita gruppidesse:" #~ msgid "HEY you forgot to put a message here! :)" #~ msgstr "HEI, sa unustasid oma sõnumi siia panna! :)" #~ msgid "Refreshing group \"%s\"" #~ msgstr "Grupi \"%s\" värskendamine" #~ msgid "Got %u groups for \"%s\"" #~ msgstr "Saadud %u gruppi serverist \"%s\"" #~ msgid "Got %s groups for \"%s\"" #~ msgstr "Saadud %s gruppi serverist \"%s\"" #~ msgid "Retrieving %d new groups for \"%s\"" #~ msgstr "%d uue grupi laadimine serverist \"%s\"" #~ msgid "Got %d new groups for \"%s\"" #~ msgstr "Saadud %d uut gruppi serverist \"%s\"" #~ msgid "Articles/Mail queued for posting via the \"Send Later\" button" #~ msgstr "" #~ "Postitamise järjekorras oelvad artiklid/meilisõnumid, saadetakse \"Saada " #~ "hiljem\" nupuga" #~ msgid "Created folder pan.sendlater" #~ msgstr "Tekitasin kataloogi pan.saadahiljem" #~ msgid "Articles/Mail posted before" #~ msgstr "Varem postitatud artiklid/meilisõnumid" #~ msgid "Created folder pan.sent" #~ msgstr "Tekitasin kataloogi pan.saadetud" #~ msgid "Error opening pan.sendlater: %s" #~ msgstr "Viga kausta pan.saadahiljem avamisel: %s" #~ msgid "Removed %d articles from local cache" #~ msgstr "Kettapuhvrist eemaldatud %d artiklit" #~ msgid "Custom Filter..." #~ msgstr "Oma filter..." #~ msgid "Just Complete Attachments" #~ msgstr "Ainult terved manused" #~ msgid "Just Watched Articles" #~ msgstr "Ainult jälgitavad artiklid" #~ msgid "Header Pane Filter..." #~ msgstr "Teemalõngade paani filter..." #~ msgid "BUG!!" #~ msgstr "VIGA!!" #~ msgid "Refiltering Articles" #~ msgstr "Filtreerin artikleid" #~ msgid "Rebuilding Header Pane..." #~ msgstr "Värskendan teemalõngade paani..." #~ msgid "The group will not be saved -- can't move \"%s\" to \"%s\"" #~ msgstr "" #~ "Seda gruppi ei salvestata -- ei saa faili \"%s\" liigutada failiks \"%s\"" #~ msgid "" #~ "Many thanks to the following people, whose contributions\n" #~ "are a large part of why Open Source software development\n" #~ "is so fun.\n" #~ "\n" #~ "Pan %s Translations\n" #~ "%s\n" #~ "\n" #~ "Pan %s Code or Patches\n" #~ "%s\n" #~ "\n" #~ "Pan %s Suggestions and Testing\n" #~ "%s\n" #~ "\n" #~ "If you should have been in this list but you're not,\n" #~ "send us mail and we'll add you next time.\n" #~ "\n" #~ "Contributors to previous versions are listed at\n" #~ "http://pan.rebelbase.com/CREDITS" #~ msgstr "" #~ "Suured tänud järgmistele inimestele, kelle kaastööd\n" #~ "on suures osas need, mis teevad Open Source tarkvara-\n" #~ "arenduse nii toredaks.\n" #~ "\n" #~ "Pan %s tõlked\n" #~ "%s\n" #~ "\n" #~ "Pan %s kood ja paigad\n" #~ "%s\n" #~ "\n" #~ "Pan %s soovitused ja testimine\n" #~ "%s\n" #~ "\n" #~ "Kui ka sinu nimi peaks siin nimekirjas olema, aga ei ole,\n" #~ "siis anna meile teada, lisame sind järgmisel korral.\n" #~ "\n" #~ "Kaastööd eelmistele versioonidele on näha aadressil\n" #~ "http://pan.rebelbase.com/CREDITS" #~ msgid "Most Recent Headers" #~ msgstr "uusimat päist" #~ msgid "_Queued to Save" #~ msgstr "Salvestamise _järjekorras" #~ msgid "Aricle is New" #~ msgstr "Artikkel on uus" #~ msgid "Article is New or Read" #~ msgstr "Artikkel on uus või loetud" #~ msgid "Bug in Code" #~ msgstr "Viga koodis" #~ msgid "" #~ "%d tasks still active or queued.\n" #~ "Are you sure you want to exit Pan?" #~ msgstr "" #~ "%d protsessi on veel lõpetamata või järjekorras.\n" #~ "Kas tahad kindlasti Pan'ist väljuda?" #~ msgid "/_Go/Space Reading" #~ msgstr "/_Liigu/Lehekülje kaupa lugemine" #~ msgid "Reply To:" #~ msgstr "Vastused aadressile:" #~ msgid "I have no idea what I'm doing with Article ``%s''" #~ msgstr "Ma ei tea ise ka, mida ma teen artikliga `%s'" #~ msgid "Article \"%s\" not flagged for any particular server; using current" #~ msgstr "" #~ "Artikkel \"%s\" ei ole määratud ühelegi kindlale serverile; kasutan " #~ "aktiivset" #~ msgid "Mime BASE64 Encoding - Single Articles Only " #~ msgstr "Mime BASE64 kodeerimine - ainult üheosalised artiklid " #~ msgid "UUEncoding - Universally Accepted " #~ msgstr "UUEncoding - laialt levinud " #~ msgid "Yenc - Smaller files, less universal " #~ msgstr "Yenc - väiksemad failid, vähem levinud " #~ msgid "Subject:" #~ msgstr "Teema:" #~ msgid "Password" #~ msgstr "Parool" #~ msgid "Loading group `%s'" #~ msgstr "Laen gruppi `%s'" #~ msgid "Refreshing group `%s'" #~ msgstr "Värskendan gruppi `%s'" #~ msgid "Apply the Selected Rule to the Selected Groups." #~ msgstr "Rakenda valitud reegel valitud gruppidele." #~ msgid "Apply the Selected Rule to all Subscribed Groups." #~ msgstr "Rakenda valitud reegel kõigile tellitud gruppidele." #~ msgid "Preparing to Send Mail" #~ msgstr "Valmistun meilisõnumit saatma" #~ msgid "Can't parse the From: line; hope for the best." #~ msgstr "Ei saa Kellelt: reast aru; looda parimat." #~ msgid "" #~ "socket [%p] failed its read:\n" #~ "%s" #~ msgstr "" #~ "soklist [%p] lugemine ebaõnnestus:\n" #~ "%s" #~ msgid "Timed out waiting for the goahead to write to the server: %s" #~ msgstr "Taimaut oodates serverile kirjutamise võimalust: %s" #~ msgid "Downloading body of \"%s\" (%s) from group %s" #~ msgstr "Laadin artiklit \"%s\" (%s) grupist %s" #~ msgid "Cached article \"%s\" (%s) from group %s" #~ msgstr "Puhverdatud artikkel \"%s\" (%s) grupist %s" #~ msgid "Couldn't select group \"%s\"" #~ msgstr "Ei saanud valida gruppi \"%s\"" #~ msgid "Downloading article \"%s\" failed." #~ msgstr "Artikli \"%s\" laadimine ebaõnnestus." #~ msgid "all groups" #~ msgstr "kõik grupid" #~ msgid "new groups" #~ msgstr "uued grupid" #~ msgid "BUG IN CODE" #~ msgstr "VIGA KOODIS" #~ msgid "sample" #~ msgstr "näidised" #~ msgid "Please Select a Folder from the Group list." #~ msgstr "Palun vali kataloog gruppide nimekirjast." #~ msgid "Waiting to decode \"%s\"" #~ msgstr "Ootan \"%s\" dekodeerimist" #~ msgid "Delete Line" #~ msgstr "Kustuta rida" #~ msgid "/_Articles/Cop_y to Folder" #~ msgstr "/_Artiklid/_Kopeeri kataloogi" #~ msgid "Transfer Rate" #~ msgstr "Kiirus" #~ msgid "/Get Bodies along _with Articles:" #~ msgstr "/Tõmba artiklite sisud koos p_äistega:" #~ msgid "/Get _New Articles" #~ msgstr "/Tõmba _uued artiklid" #~ msgid "/Get A_ll Articles" #~ msgstr "/Tõmba _kõik artiklid" #~ msgid "/Get New Articles in all Su_bscribed Groups" #~ msgstr "/Tõmba uued artiklid _tellitud gruppidest" #~ msgid "/_Properties..." #~ msgstr "/_Omadused..." #~ msgid "/_Empty" #~ msgstr "/T_ühjenda" #~ msgid "/_Dele_te" #~ msgstr "/K_ustuta" #~ msgid "On the Fly" #~ msgstr "lennult" #~ msgid "Edit \"%s\" Filter" #~ msgstr "Muuda \"%s\" filtrit" #~ msgid "Edit Other Filters..." #~ msgstr "Muuda teisi filtreid..." #~ msgid "Which Articles to Show" #~ msgstr "Milliseid artikleid näidata" #~ msgid "Show Text Articles" #~ msgstr "Näita tekstiartikleid" #~ msgid "Show Queued Articles" #~ msgstr "Näita järjekorras olevaid artikleid" #~ msgid "Show Articles Neither Queued nor Saved" #~ msgstr "Näita artikleid, mis pole järjekorras või salvestatud" #~ msgid "Show Articles which are Cached Locally" #~ msgstr "Näita artikleid, mis on puhverdatud kohalikus masinas" #~ msgid "Show Articles which are not Cached Locally" #~ msgstr "Näita artikleid, mis ei ole puhverdatud kohalikus masinas" #~ msgid "Show Articles posted by Others" #~ msgstr "Näita teiste postitatud artikleid" #~ msgid "Show Ignored Threads" #~ msgstr "Näita ignoreeritavaid teemalõngu" #~ msgid "Show Threads Neither Watched nor Ignored" #~ msgstr "Näita teemalõngu, mida ei jälgita või ignoreerita" #~ msgid "" #~ "Type in a search string and press ENTER. Wildcards are allowed; see " #~ "http://pan.rebelbase.com/wildmat.html for more information." #~ msgstr "" #~ "Sisesta otsingutekst ja vajuta ENTER. Metamärgid on lubatud: aadressilt " #~ "http://pan.rebelbase.com/wildmat.html leiad lisainfot." #~ msgid "/Unflag Thr_eads" #~ msgstr "/Tü_hista märgistus teemalõngadel" #~ msgid "/Delete Th_reads" #~ msgstr "/Kustuta teemal_õngad" #~ msgid "/Delete All" #~ msgstr "/Kustuta kõik" #~ msgid "Empty %u groups" #~ msgstr "Tühjenda %u gruppi" #~ msgid "Empty group \"%s\"" #~ msgstr "Tühjenda grupp \"%s\"" #~ msgid "Remove all messages from \"%s\"?" #~ msgstr "Kustutada kõik artiklid grupis \"%s\"?" #~ msgid "Reset \"new message\" counters" #~ msgstr "Algväärtusta uute artiklite loendur" #~ msgid "Reset \"new message\" counter" #~ msgstr "Algväärtusta uute artiklite loendur" #~ msgid "/_File/Save _Articles" #~ msgstr "/_Fail/_Salvesta artiklid" #~ msgid "/_Edit/Add R_eplies to Selection" #~ msgstr "/_Redaktor/Lisa _vastused valikusse" #~ msgid "/_Edit/Find Again..." #~ msgstr "/_Redaktor/Otsi uuesti..." #~ msgid "/_Edit/Filter_s..." #~ msgstr "/_Redaktor/_Filtrid..." #~ msgid "/_Edit/Pr_ofiles..." #~ msgstr "/_Redaktor/_Kasutajad..." #~ msgid "/_View/View Pa_nes as Tabs" #~ msgstr "/_Vaade/Näita paanide asemel _sakke" #~ msgid "/_View/Show Art_icle Pane" #~ msgstr "/_Vaade/Nä_ita artiklipaani" #~ msgid "/_View/_Rot13 Article Body" #~ msgstr "/_Vaade/Tee tekstile _Rot13" #~ msgid "/_View/Expand all Thread_s" #~ msgstr "/_Vaade/Ava _kõik teemalõngad" #~ msgid "/_View/Colla_pse all Thread_s" #~ msgstr "/_Vaade/Sulge k_õik teemalõngad" #~ msgid "/_Groups/Get Bodies along _with Articles:" #~ msgstr "/_Grupid/Tõmba artiklite sisud koos p_äistega:" #~ msgid "/_Groups/Get New Articles in all Su_bscribed Groups" #~ msgstr "/_Grupid/Tõmba uued artiklid _tellitud gruppidest" #~ msgid "/_Groups/_Empty..." #~ msgstr "/_Grupid/T_ühjenda..." #~ msgid "/_Articles/Mark _Threads as Read" #~ msgstr "/_Artiklid/Märgi _teemalõngad loetuks" #~ msgid "/_Articles/Mark Threads as U_nread" #~ msgstr "/_Artiklid/Mär_gi teemalõnagd kui lugemata" #~ msgid "/_Articles/Flag T_hreads" #~ msgstr "/_Artiklid/M_ärgista teemalõngad" #~ msgid "/_Articles/Unflag Thr_eads" #~ msgstr "/_Artiklid/Tü_hista märgistus teemalõngadel" #~ msgid "/_Articles/Download Threads" #~ msgstr "/_Artiklid/Laadi teemalõngad alla" #~ msgid "/_Articles/Co_py Threads to Folder" #~ msgstr "/_Artiklid/K_opeeri teemalõngad kataloogi" #~ msgid "/_Articles/Mo_ve to Folder" #~ msgstr "/_Artiklid/_Liiguta kataloogi" #~ msgid "/_Articles/Move Threads to Folder" #~ msgstr "/_Artiklid/Liiguta teemalõngad kataloogi" #~ msgid "/_Articles/Delete All" #~ msgstr "/_Artiklid/Kustuta kõik" #~ msgid "/_Navigate" #~ msgstr "/_Navigeeri" #~ msgid "/_Navigate/---" #~ msgstr "/_Navigeeri/---" #~ msgid "/_Navigate/S_kip Uncached Articles:" #~ msgstr "/_Navigeeri/Jäta _puhverdamata artiklid vahele:" #~ msgid "/_Navigate/_Load Articles When Selected:" #~ msgstr "/_Navigeeri/_Laadi artiklid valimisel:" #~ msgid "/_Navigate/_Next Unread Article" #~ msgstr "/_Navigeeri/_Järgmine lugemata artikkel" #~ msgid "/_Navigate/Next _Article" #~ msgstr "/_Navigeeri/Järgmine _artikkel" #~ msgid "/_Navigate/Next Unread _Thread" #~ msgstr "/_Navigeeri/Järgmine lugemata _teemalõng" #~ msgid "/_Navigate/Next Threa_d" #~ msgstr "/_Navigeeri/Järgmine tee_malõng" #~ msgid "/_Navigate/Pre_vious Article" #~ msgstr "/_Navigeeri/_Eelmine artikkel" #~ msgid "/_Navigate/Previo_us Thread" #~ msgstr "/_Navigeeri/Eelm_ine teemalõng" #~ msgid "/_Navigate/T_op of Thread" #~ msgstr "/_Navigeeri/Teemalõnga alg_us" #~ msgid "/_Filters" #~ msgstr "/_Filtrid" #~ msgid "/_Filters/_Which articles to Show/" #~ msgstr "/_Filtrid/_Milliseid artikleid näidata/" #~ msgid "/_Filters/_Which articles to Show/_Show Matching Articles" #~ msgstr "/_Filtrid/_Milliseid artikleid näidata/_Näita vastavaid artikleid" #~ msgid "/_Filters/_Custom Filters/Edit the Temporary Filter" #~ msgstr "/_Filtrid/_Oma filtrid/Muuda ajutist filtrit" #~ msgid "/_Filters/_Custom Filters/Edit Custom Filters" #~ msgstr "/_Filtrid/_Oma filtrid/Muuda oma filtreid" #~ msgid "/_Filters/_Custom Filters/---" #~ msgstr "/_Filtrid/_Oma filtrid/---" #~ msgid "/_Filters/_Custom Filters/No Custom Filter" #~ msgstr "/_Filtrid/_Oma filtrid/Ei ole oma filtrit" #~ msgid "/_Filters/Show Queued Articles" #~ msgstr "/_Filtrid/Näita järjekorras olevaid artikleid" #~ msgid "/_Filters/Show Articles neither Saved nor Queued" #~ msgstr "/_Filtrid/Näita artikleid, mis pole järjekorras või salvestatud" #~ msgid "Go Online for Server \"%s\"?" #~ msgstr "Loon ühenduse serveriga \"%s\"?" #~ msgid "/_File/Close" #~ msgstr "/_Fail/Sulge" #~ msgid "Couldn't exec external editor" #~ msgstr "Ei saanud välist redaktorit käivitada" #~ msgid "Couldn't write to file" #~ msgstr "Ei saanud faili kirjutada" #~ msgid "Pipe read failed" #~ msgstr "Torust lugemine ei õnnestunud" #~ msgid "Unable to open file `%s'" #~ msgstr "Ei saa avada faili `%s'" #~ msgid "Unable to write to temp file" #~ msgstr "Ei saa ajutisse faili kirjutada" #~ msgid "" #~ "Automatically guess which articles to decode \n" #~ "when duplicate parts appear in a multipart post" #~ msgstr "" #~ "Arva automaatselt, millised artiklid dekodeerida, \n" #~ "kui mitmeosalises postituses leidub topeltosasid" #~ msgid "" #~ "If this disabled, the user will be prompted in a dialog to choose which " #~ "posts to use." #~ msgstr "" #~ "Kui see on keelatud, siis palutakse kasutajal valida, millised artiklid " #~ "dekodeerida." #~ msgid "Wrap body of the original message when replying" #~ msgstr "Vastamisel murra originaalartikli read" #~ msgid "" #~ "If this is disabled, Pan will not wrap the original message when creating " #~ "the reply." #~ msgstr "" #~ "Kui see on keelatud, siis ei murra Pan vastamisel originaalkirja ridu." #~ msgid "Fill articles for reading at column" #~ msgstr "Täida artikli read selle pikkuseni:" #~ msgid "Left Mouse Button:" #~ msgstr "Vasak hiire nupp:" #~ msgid "Selects Article" #~ msgstr "Valib artikli" #~ msgid "Middle Mouse Button:" #~ msgstr "Keskmine hiire nupp:" #~ msgid "Show only the first part of complete multipart binary posts" #~ msgstr "Näita tervetest binaarartiklitest ainult esimest osa" #~ msgid "Display article dates in local time instead of UTC" #~ msgstr "Näita artiklite kuupäevi UTC asemel kohaliku kella järgi" #~ msgid "Loads Group" #~ msgstr "Laadib grupi" #~ msgid "Server \"%s\" is Online" #~ msgstr "Serverga \"%s\" on ühendus loodud" #~ msgid "Server \"%s\" is Offline; no new tasks will be processed" #~ msgstr "Serveriga \"%s\" ei ole ühendust: ühtegi uut tööd ei täideta" #~ msgid "Pan should ask before going online" #~ msgstr "Pan peab enne ühenduse loomist luba küsima" #~ msgid "Pan should go online as needed without asking" #~ msgstr "Pan loob vajaduse korral ühenduse ilma küsimata" #~ msgid "Pan should quietly stay offline until told otherwise" #~ msgstr "Pan ei loo ühtegi ühendust kuni kasutaja ütleb teisiti" #~ msgid "Online Status" #~ msgstr "Ühenduse seisund" #~ msgid "" #~ "The cache is used to keep local copies of articles\n" #~ "to reduce the time connected to the network." #~ msgstr "" #~ "Puhvris hoitakse artiklite lokaalseid koopiad,\n" #~ "et vähendada võrguühenduseks vajalikku aega." #~ msgid "Disk Cache:" #~ msgstr "Kettapuhver:" #~ msgid "Megs" #~ msgstr "Mega" #~ msgid "backup previous .newsrc file before exporting" #~ msgstr "tee eelmisest .newsrc failist enne eksportimist koopia" #~ msgid "Display - Threads" #~ msgstr "Kuvamine - teemalõngad" #~ msgid "Display - Articles" #~ msgstr "Kuvamine - artiklid" #~ msgid "Socket keepalive option failed: %s" #~ msgstr "Sokli ülalhoide(keepalive)võimalus ebaõnnestus: %s" #~ msgid "" #~ "Couldn't find body for message `%s' - decoding may be incomplete or " #~ "incorrect" #~ msgstr "" #~ "Ei leia sisu artiklile `%s' - dekodeerimine võib jääda poolikuks või olla " #~ "vigane" #~ msgid "Couldn't write to temporary file \"%s\" (is the disk full?)" #~ msgstr "Ei saanud ajutisse faili \"%s\" kirjutada (ketas täis?)" #~ msgid "Lead Programmer" #~ msgstr "Juhtpogrammeerija" #~ msgid "Pan: Save Multipart Message" #~ msgstr "Pan: Salvesta mitmeosaline artikkel" #~ msgid "Pause" #~ msgstr "Paus" #~ msgid "Pause the Task Manager" #~ msgstr "Peata töödejuhataja" #~ msgid "Unknown Content Type" #~ msgstr "Tundmatu sisutüüp" #~ msgid "Unknown Encoding" #~ msgstr "Tundmatu kodeering" #~ msgid "Article is old" #~ msgstr "Artikkel on vana" #~ msgid "/_Edit/Encoding/---" #~ msgstr "/_Redaktor/Kodeering/---" #~ msgid "/_Edit/Encoding/ISO-8859-1" #~ msgstr "/_Redaktor/Kodeering/ISO-8859-1" #~ msgid "/_Reply by E-mail" #~ msgstr "/Vastus _e-mailile" #~ msgid "/Follow-Up _and Reply" #~ msgstr "/Vastukaja _ning vastus" #~ msgid "/For_ward article by E-mail" #~ msgstr "/_Saada artikkel edasi e-mailile" #~ msgid "Download Flagged Articles" #~ msgstr "Laadi märgistatud artiklid alla" #~ msgid "Flag Selected Threads" #~ msgstr "Märgista valitud teemalõngad" #~ msgid "Unf_lag Selected Articles" #~ msgstr "T_ühista märgistus valitud artiklitel" #~ msgid "Unflag Selected Threads" #~ msgstr "Tühista märgistus valitud teemalõngadel" #~ msgid "Download Selected Threads" #~ msgstr "Laadi valitud teemalõnad alla" #~ msgid "Watch Selected Threads" #~ msgstr "Jälgi valitud teemalõngu" #~ msgid "Ignore Selected Threads" #~ msgstr "Ignoreeri valitud teemalõngu" #~ msgid "Copy Threads to Folder" #~ msgstr "Kopeeri teemalõngad kataloogi" #~ msgid "_Cancel..." #~ msgstr "Tühi_sta..." #~ msgid "Cancel Selected Article which you Posted" #~ msgstr "Tühista enda postitatud artikkel" #~ msgid "Supersede Selected Article which you Posted" #~ msgstr "Asenda enda postitatud artikkel uuega" #~ msgid "Dialog to set how you want to save the selected articles" #~ msgstr "Dialoog, kus sa saad sättida, mismoodi valitud artiklid salvestada" #~ msgid "Open Attachment..." #~ msgstr "Ava manus..." #~ msgid "Delete the selected folder." #~ msgstr "Kustuta valitud kataloog." #~ msgid "Edit Selected Article in Folder" #~ msgstr "Muuda valitud artiklit kaustas" #~ msgid "Select all Groups in the Group List" #~ msgstr "Valib kõik grupid nimekirjas" #~ msgid "Deselect all Groups in the Group List" #~ msgstr "Tühistab valiku gruppide nimekirjas" #~ msgid "Select all Articles in the Article List" #~ msgstr "Vali kõik artiklid nimekirjas" #~ msgid "Add replies to the Article List selection" #~ msgstr "Lisa vastused valitud artiklite nimekirja" #~ msgid "Add Thread to the Article List selection" #~ msgstr "Lisa teemalõngad valitud artiklite nimekirja" #~ msgid "Deselect all Articles in the Article List" #~ msgstr "Tühistab valiku artiklite nimekirjas" #~ msgid "Filter Tool." #~ msgstr "Filtreerimine." #~ msgid "Rules Tool." #~ msgstr "Reeglid." #~ msgid "Profiles Tool." #~ msgstr "Kasutajaprofiilid." #~ msgid "Post a new message to the current group." #~ msgstr "Postita uus artikkel valitud gruppi." #~ msgid "Post a reply to the message on the news server." #~ msgstr "Postita vastukaja valitud artiklile." #~ msgid "Create a mail reply to the sender." #~ msgstr "Saada vastus artikli autorile e-mailiga." #~ msgid "Send a reply both to the author in mail, and to the news server." #~ msgstr "Saada vastus autorile nii e-mailile kui ka uudisegruppi." #~ msgid "Forward article by E-mail" #~ msgstr "Saada artikkel edasi e-mailile" #~ msgid "Send Messages Queued in \"pan.sendlater\"" #~ msgstr "Maili/postita artiklid kataloogist \"pan.saadahiljem\"" #~ msgid "Skip Uncached Articles:" #~ msgstr "Jäta puhverdamata artiklid vahele:" #~ msgid "Load Articles When Selected:" #~ msgstr "Laadi artiklid valimisel:" #~ msgid "Move to the Next Group with Unread Messages." #~ msgstr "Liigu järgmisele grupile, kus on lugemata artikleid." #~ msgid "Move to the Next Group." #~ msgstr "Liigu nimekirjas järgmisele grupile." #~ msgid "Refresh a list of groups from the selected servers." #~ msgstr "Värskenda valitud serverite gruppide nimekirja." #~ msgid "Download a list of new groups from the selected servers." #~ msgstr "Laadi valitud serveritest uute gruppide nimekiri." #~ msgid "Export .newsrc..." #~ msgstr "Ekspordi .newsrc..." #~ msgid "Pan _Homepage" #~ msgstr "Pan'i _kodulehekülg" #~ msgid "Online Users _Manual" #~ msgstr "Onlain kasutaja_manuaal" #~ msgid "Mail Feedback to the Pan Authors" #~ msgstr "Saada tagasiside Pan'i autoritele" #~ msgid "Submit a Pan Bug Report to the GNOME Bug Tracker" #~ msgstr "Saada veateade GNOME Bug Trackerisse" #~ msgid "Open the Log Viewer" #~ msgstr "Ava logiraamat" #~ msgid "Zoom/Unzoom" #~ msgstr "Suurenda/vähenda akent" #~ msgid "View Group Tab" #~ msgstr "Näita gruppide sakki" #~ msgid "View Header Tab" #~ msgstr "Näita teemalõngade sakki" #~ msgid "View Article Tab" #~ msgstr "Näita artiklite sakki" #~ msgid "Show Article Pane" #~ msgstr "Näita artiklipaani" #~ msgid "Collapse Names in Group Pane" #~ msgstr "Lühenda gruppide nimed, näidates peagruppide nimedest vaid esitähti" #~ msgid "Thread/Unthread Header Pane" #~ msgstr "" #~ "Näita artikleid teemalõngade paanis teemalõngadesse grupeeritult/järjest" #~ msgid "Rot13 Article Body" #~ msgstr "Tee artikli tekstile Rot13" #~ msgid "Show All Headers in Article Pane" #~ msgstr "Näita artiklipaanis kõiki päiseid" #~ msgid "Use Monospace Font in Article Pane" #~ msgstr "Kasuta artikli sisus ühelaiust kirjatüüpi" #~ msgid "Expand Selected Threads" #~ msgstr "Ava valitud teemalõngad" #~ msgid "Expand all Threads" #~ msgstr "Ava kõik teemalõngad" #~ msgid "Mark All Articles in Selected Groups as Read" #~ msgstr "Märgi kõik artiklid valitud gruppides loetuks" #~ msgid "Get Bodies along with Articles" #~ msgstr "Laadi artiklite sisu koos päistega" #~ msgid "Specify and Download Articles" #~ msgstr "Määra ning laadi artiklid alla" #~ msgid "Refresh Article Counts" #~ msgstr "Värskenda artiklite arvu" #~ msgid "Set the properties for the selected group." #~ msgstr "Määra valitud grupi omadused." #~ msgid "Dele_te" #~ msgstr "_Kustuta" #~ msgid "Delete the selected group(s) from Pan." #~ msgstr "Kustuta valitud grupid Pan'ist." #~ msgid "No Servers Defined" #~ msgstr "Ühtegi serverit pole määratud" #~ msgid "Use gdk_fontset_load instead of gdk_font_load" #~ msgstr "Kasuta gdk_fontset_load-i gdk_font_load-i asemel" #~ msgid "" #~ "Toggling this and restarting Pan is a good idea if your fonts aren't " #~ "being displayed properly." #~ msgstr "" #~ "Selle märgistamine ja Pan-i uuestikäivitamine on hea mõte, kui kirjatüüpe " #~ "näidatakse vigaselt." #~ msgid "Save" #~ msgstr "Salvesta" #~ msgid "Welcome to Pan" #~ msgstr "Tere tulemast Pani!" #~ msgid "Congratulations" #~ msgstr "Õnnitlused" #~ msgid "The Queue is Paused" #~ msgstr "Järjekord on peatatud" #~ msgid "The Queue is not Paused" #~ msgstr "Järjekord liigub" #~ msgid "_Play a Sound:" #~ msgstr "_Mängi helifail:" #~ msgid "Test Sound" #~ msgstr "Testi heli" #~ msgid "Article was posted by _me" #~ msgstr "Artikli postitasin _mina" #~ msgid "newsgroups" #~ msgstr "uudisegruppi" #~ msgid "days old" #~ msgstr "päeva vana" #~ msgid "Article body is _cached locally" #~ msgstr "Artikli sisu on pu_hverdatud kohalikus masinas" #~ msgid "Loading Groups" #~ msgstr "Laadin gruppe" pan-0.162/po/eu.po000066400000000000000000003041671475412772400137170ustar00rootroot00000000000000# translation of eu.po to Basque # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Iñaki Larrañaga Murgoitio , 2008, 2009, 2010. # Asier Sarasua Garmendia , 2021, 2022, 2023. # msgid "" msgstr "Project-Id-Version: eu\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/pan/issues\n" "POT-Creation-Date: 2023-01-25 21:43+0000\n" "PO-Revision-Date: 2023-04-09 10:00+0100\n" "Last-Translator: Asier Sarasua Garmendia \n" "Language-Team: Basque \n" "Language: eu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #. update the titlebar #: org.gnome.pan.desktop.in:3 org.gnome.pan.metainfo.xml.in:27 #: pan/gui/dl-headers-ui.cc:119 pan/gui/gui.cc:1040 pan/gui/gui.cc:1665 #: pan/gui/gui.cc:1985 pan/gui/score-add-ui.cc:600 msgid "Pan" msgstr "Pan" #: org.gnome.pan.desktop.in:4 msgid "Newsreader" msgstr "Berri-irakurlea" #: org.gnome.pan.desktop.in:5 org.gnome.pan.metainfo.xml.in:7 msgid "Read and post Usenet articles" msgstr "Irakurri eta bidali Usenet artikuluak" #. Translators: Search terms to find this application. Do NOT translate or localise the semicolons! The list MUST also end with a semicolon! #: org.gnome.pan.desktop.in:7 msgid "usenet;news;newsreader;newsgroup;article;yenc;nzb;" msgstr "usenet;albisteak;berri-irakurlea;berri-taldea;artikulua;ywnc;nzb;" #: org.gnome.pan.metainfo.xml.in:6 msgid "Pan Newsreader" msgstr "Pan berri-irakurlea" #: org.gnome.pan.metainfo.xml.in:9 msgid "" "Pan is a Usenet newsreader that is good at both text and binaries. It " "supports offline reading, scoring and killfiles, yEnc, NZB, PGP handling, " "multiple servers, and secure connections." msgstr "Pan Usenet-eko berrien irakurlea da, testuak zein bitarrak erakusteko egokia dena. Lineaz kanpoko irakurketa, puntuazioak eta killfileak, yEnc, NZB, PGP maneiua, zerbitzari anitz eta konexio seguruak onartzen ditu." #: org.gnome.pan.metainfo.xml.in:12 msgid "" "It is also the only Unix newsreader to get a perfect score on the Good Net-" "Keeping Seal of Approval evaluations." msgstr "Good Net-Keeping Seal of Approval ebaluazioetan puntuazio perfektua eskuratzen duen Unix berri-irakurle bakarra ere bada." #: pan/data/article-cache.cc:144 pan/data/encode-cache.cc:62 #, c-format msgid "Error opening directory: \"%s\": %s" msgstr "Errorea direktorioa irakurtzean: \"%s\": %s" #: pan/data/article-cache.cc:235 pan/data/article-cache.cc:244 #: pan/data-impl/data-io.cc:279 pan/data-impl/data-io.cc:311 #: pan/gui/post-ui.cc:1768 #, c-format msgid "Unable to save \"%s\" %s" msgstr "Ezin izan da \"%s\" gorde: %s" #: pan/data/article-cache.cc:362 #, c-format msgid "Error opening file \"%s\" %s" msgstr "Errorea \"%s\" fitxategia irekitzean: %s" #: pan/data/article-cache.cc:393 pan/data-impl/profiles.cc:175 #: pan/data-impl/server.cc:489 pan/general/file-util.cc:312 #: pan/gui/post-ui.cc:637 pan/gui/task-pane.cc:741 #, c-format msgid "Error reading file \"%s\": %s" msgstr "Errorea \"%s\" fitxategia irakurtzean: %s" #: pan/data/cert-store.cc:261 #, c-format msgid "Error opening SSL certificate directory: \"%s\": %s" msgstr "Errorea SSL ziurtagiri-direktorioa irekitzean: \"%s\": %s" #: pan/data/cert-store.cc:292 #, c-format msgid "Successfully added %d SSL PEM certificate(s) to Certificate Store." msgstr "%d SSL PEM ziurtagiriak ongi gehitu dira ziurtagirien biltegian." #: pan/data/cert-store.cc:312 msgid "" "Error initializing Certificate Store. Check that the permissions for the " "folders ~/.pan2 and ~/.pan2/ssl_certs are set correctly. Fatal, exiting." msgstr "Errorea ziurtagirien biltegia hasieratzean. Egiaztatu ~/.pan2 eta ~/.pan2/ssl_certs karpeten baimenak ongi ezarri direla. Berreskuraezina, irteten." #: pan/data/cert-store.cc:361 #, c-format msgid "Could not export certificate for server: %s" msgstr "Ezin da zerbitzariaren ziurtagiria esportatu: %s" #. load_group_descriptions (*_data_io); #: pan/data-impl/data-impl.cc:116 #, c-format msgid "Loaded data backend in %.1f seconds" msgstr "Atzeko planoko modulua %.1f segundotan kargatu da" #: pan/data-impl/data-impl.cc:152 msgid "Pan Newsreader's server passwords" msgstr "Pan berri-irakurlearen zerbitzari-pasahitzak" #: pan/data-impl/groups.cc:102 #, c-format msgid "Skipping newsrc file for server \"%s\"" msgstr "newsrc fitxategia saltatzen \"%s\" zerbitzarirako" #: pan/data-impl/headers.cc:617 #, c-format msgid "Expired %lu old articles from \"%s\"" msgstr "%lu artikulu zahar iraungi dira \"%s\"(e)tik" #: pan/data-impl/headers.cc:624 #, c-format msgid "" "Unsupported data version for %s headers: %d.\n" "Are you running an old version of Pan by accident?" msgstr "Datu-bertsio hauek ez dira onartzen %s goiburuentzat: %d.\n" "Pan-en bertsio zaharra daukazu?" #: pan/data-impl/headers.cc:639 #, c-format msgid "Loaded %llu articles for \"%s\" in %.1f seconds (%.0f per second)" msgstr "%llu artikulu kargatu dira \"%s\"(e)rako %.1f segundotan (%.0f segundoko)" #: pan/data-impl/headers.cc:868 #, c-format msgid "" "Saved %lu parts, %lu articles in \"%s\" in %.1f seconds (%.0f articles/sec)" msgstr "%lu atal, %lu artikulu gorde dira \"%s\"(e)n %.1f segundotan (%.0f artikulu/seg)" #: pan/data-impl/headers.cc:1201 #, c-format msgid "Added %lu articles to %s." msgstr "%lu artikulu gorde dira %s(e)n." #: pan/data-impl/server.cc:259 #, c-format msgid "Received no password from libsecret for server %s." msgstr "Ez da pasahitzik jaso libsecret-etik %s zerbitzarirako." #: pan/data-impl/xover.cc:241 #, c-format msgid "Error reading from %s: unknown group \"%s\"" msgstr "Errorea %s(e)tik irakurtzean: \"%s\" talde ezezaguna" #: pan/general/editor-spawner.cc:66 #, c-format msgid "Error parsing \"external editor\" command line: %s (Command was: %s)" msgstr "Errorea \"external editor\" komando-lerroa analizatzean: %s (Komandoa honakoa zen: %s)" #: pan/general/editor-spawner.cc:110 #, c-format msgid "Error starting external editor: %s" msgstr "Errorea kanpoko editorea abiaraztean: %s" #: pan/general/e-util.cc:164 msgid "%l:%M %p" msgstr "%l:%M %p" #: pan/general/e-util.cc:165 msgid "Today %l:%M %p" msgstr "Gaur %l:%M %p" #: pan/general/e-util.cc:166 msgid "%a %l:%M %p" msgstr "%a %l:%M %p" #: pan/general/e-util.cc:167 msgid "%b %d %l:%M %p" msgstr "%b %d %l:%M %p" #: pan/general/e-util.cc:168 msgid "%b %d %Y" msgstr "%Y %b %d" #: pan/general/e-util.cc:200 msgid "?" msgstr "?" #: pan/general/text-match.cc:194 #, c-format msgid "Can't use regular expression \"%s\": %s" msgstr "Ezin da \"%s\" adierazpen erregularra erabili: %s" #: pan/general/utf8-utils.cc:212 msgid "Couldn't determine article encoding. Non-UTF8 characters were removed." msgstr "Ezin da zehaztu artikuluaren kodeketa. UTF8 ez diren karaktereak kendu dira." #: pan/gui/actions.cc:306 pan/gui/post-ui.cc:452 msgid "_File" msgstr "_Fitxategia" #: pan/gui/actions.cc:307 pan/gui/post-ui.cc:453 msgid "_Edit" msgstr "_Editatu" #: pan/gui/actions.cc:308 pan/gui/prefs-ui.cc:1111 msgid "_Layout" msgstr "_Diseinua" #: pan/gui/actions.cc:309 msgid "_Group Pane" msgstr "_Taldearen panela" #: pan/gui/actions.cc:310 msgid "_Header Pane" msgstr "_Goiburuen panela" #: pan/gui/actions.cc:311 msgid "_Body Pane" msgstr "G_orputzaren panela" #: pan/gui/actions.cc:312 msgid "_View" msgstr "_Ikusi" #: pan/gui/actions.cc:313 msgid "Filte_r" msgstr "I_ragazkia" #: pan/gui/actions.cc:314 msgid "_Go" msgstr "_Joan" #: pan/gui/actions.cc:315 pan/gui/prefs-ui.cc:1161 msgid "_Actions" msgstr "_Ekintzak" #: pan/gui/actions.cc:316 msgid "_Articles" msgstr "_Artikuluak" #: pan/gui/actions.cc:317 msgid "G_roups" msgstr "_Taldeak" #: pan/gui/actions.cc:318 pan/gui/actions.cc:319 msgid "_Post" msgstr "_Bidali" #: pan/gui/actions.cc:320 msgid "_Help" msgstr "_Laguntza" #: pan/gui/actions.cc:323 msgid "_Read Group" msgstr "_Irakurri taldea" #: pan/gui/actions.cc:324 msgid "Read Group" msgstr "Irakurri taldea" #: pan/gui/actions.cc:328 msgid "_Mark Selected Groups Read" msgstr "_Markatu hautatutako taldeak irakurritako gisa" #: pan/gui/actions.cc:329 msgid "Mark Selected Groups Read" msgstr "Markatu hautatutako taldeak irakurritako gisa" #: pan/gui/actions.cc:333 msgid "_Delete Selected Groups' Articles" msgstr "E_zabatu hautatutako taldeen artikuluak" #: pan/gui/actions.cc:334 msgid "Delete Selected Groups' Articles" msgstr "Ezabatu hautatutako taldeen artikuluak" #: pan/gui/actions.cc:338 msgid "Get New _Headers in Selected Groups" msgstr "Eskuratu _hautatutako taldeetako goiburu berriak" #: pan/gui/actions.cc:339 msgid "Get New Headers in Selected Groups" msgstr "Eskuratu hautatutako taldeetako goiburu berriak" #: pan/gui/actions.cc:343 pan/gui/actions.cc:348 msgid "Get New _Headers in Subscribed Groups" msgstr "Eskuratu har_pidetutako taldeetako goiburu berriak" #: pan/gui/actions.cc:344 pan/gui/actions.cc:349 msgid "Get New Headers in Subscribed Groups" msgstr "Eskuratu harpidetutako taldeetako goiburu berriak" #: pan/gui/actions.cc:353 msgid "Get _Headers..." msgstr "Eskuratu _goiburuak…" #: pan/gui/actions.cc:354 msgid "Get Headers..." msgstr "Eskuratu goiburuak…" #: pan/gui/actions.cc:358 pan/gui/actions.cc:359 msgid "Refresh Group List" msgstr "Freskatu talde-zerrenda" #: pan/gui/actions.cc:363 msgid "_Subscribe" msgstr "_Harpidetu" #: pan/gui/actions.cc:364 msgid "Subscribe" msgstr "Harpidetu" #: pan/gui/actions.cc:368 msgid "_Unsubscribe" msgstr "Harpidetza _kendu" #: pan/gui/actions.cc:369 msgid "Unsubscribe" msgstr "Harpidetza kendu" #: pan/gui/actions.cc:373 msgid "_Save Articles..." msgstr "_Gorde artikuluak..." #: pan/gui/actions.cc:374 msgid "Save Articles..." msgstr "Gorde artikuluak..." #: pan/gui/actions.cc:378 msgid "Save Articles from Selected _NZB..." msgstr "_Gorde NZB honetako artikuluak..." #: pan/gui/actions.cc:379 msgid "Save Articles from Selected NZB" msgstr "Gorde NZB honetako artikuluak" #: pan/gui/actions.cc:383 msgid "Save Articles to an NZB _File..." msgstr "_Gorde NZB honetako artikuluak..." #: pan/gui/actions.cc:384 msgid "Save Articles to an NZB File" msgstr "Gorde artikuluak NZB fitxategi batean" #: pan/gui/actions.cc:388 pan/gui/actions.cc:389 msgid "Print" msgstr "Inprimatu" #: pan/gui/actions.cc:393 msgid "_Import NZB Files..." msgstr "_Inportatu NZB fitxategiak..." #: pan/gui/actions.cc:398 msgid "_Cancel Last Task" msgstr "_Bertan behera utzi azken ataza" #: pan/gui/actions.cc:403 msgid "_Task Manager" msgstr "_Ataza-kudeatzailea" #: pan/gui/actions.cc:408 msgid "_Event Log" msgstr "Ger_taera-egunkaria" #: pan/gui/actions.cc:413 msgid "_Quit" msgstr "I_rten" #: pan/gui/actions.cc:418 msgid "Select _All Articles" msgstr "Ha_utatu artikulu guztiak" #: pan/gui/actions.cc:423 msgid "_Deselect All Articles" msgstr "_Desautatu artikulu guztiak" #: pan/gui/actions.cc:428 msgid "Add Su_bthreads to Selection" msgstr "Gehitu az_pihariak hautapenari" #: pan/gui/actions.cc:433 msgid "Add _Threads to Selection" msgstr "Gehitu _hariak hautapenari" #: pan/gui/actions.cc:438 msgid "Add _Similar Articles to Selection" msgstr "Gehitu a_ntzeko artikuluak hautapenari" #: pan/gui/actions.cc:443 msgid "Select Article _Body" msgstr "Hautatu arti_kulu-gorputza" #: pan/gui/actions.cc:448 msgid "Edit _Preferences" msgstr "Editatu _hobespenak" #: pan/gui/actions.cc:453 msgid "Edit Selected _Group's Preferences" msgstr "Editatu hautatutako taldearen hobes_penak" #: pan/gui/actions.cc:458 msgid "Edit S_core File" msgstr "Editatu p_untuazioen fitxategia" #: pan/gui/actions.cc:463 pan/gui/post-ui.cc:469 msgid "Edit P_osting Profiles" msgstr "Editatu bida_lketa-profilak" #: pan/gui/actions.cc:468 msgid "Edit _News Servers" msgstr "Editatu _berri-zerbitzariak" #: pan/gui/actions.cc:473 msgid "Jump to _Group Tab" msgstr "Joan _Taldea fitxara" #: pan/gui/actions.cc:478 msgid "Jump to _Header Tab" msgstr "Joan _Goiburua fitxara" #: pan/gui/actions.cc:483 msgid "Jump to _Body Tab" msgstr "Joan _Gorputza fitxara" #: pan/gui/actions.cc:488 msgid "_Rot13 Selected Text" msgstr "_Rot13rekin zifratu hautatutako testua" #: pan/gui/actions.cc:493 msgid "Clear _Header Pane" msgstr "Ga_rbitu goiburuen panela" #: pan/gui/actions.cc:498 msgid "Clear _Body Pane" msgstr "Garbitu _gorputzaren panela" #: pan/gui/actions.cc:503 msgid "Cache Article" msgstr "Gorde cachean artikulua" #: pan/gui/actions.cc:508 msgid "Read Article" msgstr "Irakurri artikulua" #: pan/gui/actions.cc:513 msgid "Show Article Information" msgstr "Erakutsi artikulu-informazioa" #: pan/gui/actions.cc:518 msgid "Read _More" msgstr "Irakurri ge_hiago" #: pan/gui/actions.cc:519 msgid "Read More" msgstr "Irakurri gehiago" #: pan/gui/actions.cc:523 msgid "Read _Back" msgstr "Irakurri b_erriro" #: pan/gui/actions.cc:524 msgid "Read Back" msgstr "Irakurri berriro" #: pan/gui/actions.cc:528 msgid "Next _Unread Group" msgstr "Hurrengo _irakurri gabeko taldea" #: pan/gui/actions.cc:533 msgid "Next _Group" msgstr "Hurrengo tal_dea" #: pan/gui/actions.cc:538 msgid "Next _Unread Article" msgstr "Hurrengo _irakurri gabeko artikulua" #: pan/gui/actions.cc:539 msgid "Next Unread Article" msgstr "Hurrengo irakurri gabeko artikulua" #: pan/gui/actions.cc:543 msgid "Next _Article" msgstr "Hurre_ngo artikulua" #: pan/gui/actions.cc:544 msgid "Next Article" msgstr "Hurrengo artikulua" #: pan/gui/actions.cc:548 msgid "Next _Watched Article" msgstr "Behatutako hu_rrengo artikulua" #: pan/gui/actions.cc:553 msgid "Next Unread _Thread" msgstr "Irakurri _gabeko hurrengo haria" #: pan/gui/actions.cc:554 msgid "Next Unread Thread" msgstr "Irakurri gabeko hurrengo haria" #: pan/gui/actions.cc:558 msgid "Next Threa_d" msgstr "_Hurrengo haria" #: pan/gui/actions.cc:563 msgid "Pre_vious Article" msgstr "Aurre_ko artikulua" #: pan/gui/actions.cc:568 msgid "Previous _Thread" msgstr "Aurreko ha_ria" #: pan/gui/actions.cc:573 msgid "_Parent Article" msgstr "Artiku_lu gurasoa" #: pan/gui/actions.cc:578 msgid "Ignore _Author" msgstr "Ez ikusi egin e_gileari" #: pan/gui/actions.cc:582 msgid "_Watch Thread" msgstr "_Behatu haria" #: pan/gui/actions.cc:587 msgid "_Ignore Thread" msgstr "_Ez ikusi egin hariari" #: pan/gui/actions.cc:592 pan/gui/actions.cc:593 msgid "_Toggle Flag On/Off for Thread" msgstr "Aktibatu/desaktibatu _bandera harirako" #: pan/gui/actions.cc:597 pan/gui/actions.cc:598 msgid "_Turn Flag Off for Thread" msgstr "_Desaktibatu bandera harirako" #: pan/gui/actions.cc:602 pan/gui/actions.cc:603 msgid "_Select All Flagged Threads" msgstr "_Hautatu banderadun hari guztiak" #: pan/gui/actions.cc:607 pan/gui/actions.cc:608 msgid "_Go to Next Flagged Thread" msgstr "Joan banderadun h_urrengo harira" #: pan/gui/actions.cc:612 pan/gui/actions.cc:613 msgid "_Go to Last Flagged Thread" msgstr "Joan banderadun a_zken harira" #: pan/gui/actions.cc:617 pan/gui/actions.cc:618 msgid "_Invert Selection" msgstr "_Alderantzikatu hautapena" #: pan/gui/actions.cc:622 msgid "Edit Article's Watch/Ignore/Score..." msgstr "Editatu artikuluaren Behaketa/Ez ikusi egin/Puntuazioa…" #: pan/gui/actions.cc:627 msgid "Add a _Scoring Rule..." msgstr "_Gehitu puntuazio-araua…" #: pan/gui/actions.cc:632 msgid "Cance_l Article..." msgstr "Bertan _behera utzi artikulua…" #: pan/gui/actions.cc:637 msgid "_Supersede Article..." msgstr "_Ordeztu artikulua…" #: pan/gui/actions.cc:642 msgid "_Delete Article" msgstr "_Ezabatu artikulua" #: pan/gui/actions.cc:647 msgid "Clear Article Cache" msgstr "Garbitu artikulu-cachea" #: pan/gui/actions.cc:652 msgid "_Mark Article as Read" msgstr "_Markatu irakurrita gisa" #: pan/gui/actions.cc:657 msgid "Mark Article as _Unread" msgstr "Markatu i_rakurri gabe gisa" #: pan/gui/actions.cc:663 msgid "_Mark Thread as Read" msgstr "_Markatu haria irakurrita gisa" #: pan/gui/actions.cc:668 msgid "Mark Thread as _Unread" msgstr "Markatu haria i_rakurri gabe gisa" #: pan/gui/actions.cc:673 msgid "_Post to Newsgroup" msgstr "_Bidali berri-taldera" #: pan/gui/actions.cc:674 msgid "Post to Newsgroup" msgstr "Bidali berri-taldera" #: pan/gui/actions.cc:678 msgid "_Followup to Newsgroup" msgstr "_Segimendua berri-taldeari" #: pan/gui/actions.cc:679 msgid "Followup to Newsgroup" msgstr "Segimendua berri-taldeari" #: pan/gui/actions.cc:683 msgid "_Reply to Author in Mail" msgstr "_Erantzun egileari mezu elektroniko bidez" #: pan/gui/actions.cc:689 msgid "_Contents" msgstr "E_dukiak" #: pan/gui/actions.cc:695 msgid "_Pan Home Page" msgstr "_Pan aplikazioaren webgune nagusia" #: pan/gui/actions.cc:700 msgid "Give _Feedback or Report a Bug..." msgstr "Egin iruzkina edo jakinarazi err_orea…" #: pan/gui/actions.cc:705 msgid "_About" msgstr "Honi _buruz" #: pan/gui/actions.cc:710 msgid "Edit _SSL Certificates" msgstr "Editatu _SSL ziurtagiriak" #: pan/gui/actions.cc:725 msgid "_Thread Headers" msgstr "_Goiburuak harika" #: pan/gui/actions.cc:726 msgid "Wrap Article Body" msgstr "Egokitu artikuluaren gorputza" #: pan/gui/actions.cc:727 msgid "Show Article Signature" msgstr "Erakutsi artikuluaren sinadura" #: pan/gui/actions.cc:728 msgid "Mute _Quoted Text" msgstr "Mututu _komatxo arteko testua" #: pan/gui/actions.cc:729 msgid "Show All _Headers in Body Pane" msgstr "Er_akutsi gorputzaren paneleko goiburu guztiak" #: pan/gui/actions.cc:730 msgid "Show _Smilies as Graphics" msgstr "Erakutsi a_urpegierak grafiko gisa" #: pan/gui/actions.cc:731 msgid "Show *Bold*, __Underlined__, and /Italic/" msgstr "Bistaratu *Lodia*, __Azpimarratua__ eta /Etzana/" #: pan/gui/actions.cc:732 msgid "Size Pictures to _Fit" msgstr "Egokitu irudien tamaina _sartzeko" #: pan/gui/actions.cc:733 msgid "Use _Monospace Font" msgstr "Erabili _tarte bakarreko letra-tipoa" #: pan/gui/actions.cc:734 msgid "Set Focus to Images" msgstr "Ezarri fokua irudiei" #: pan/gui/actions.cc:735 msgid "Highlight _URLs" msgstr "Nabarmendu _URLak" #: pan/gui/actions.cc:738 msgid "_Work Online" msgstr "_Lan egin linean" #: pan/gui/actions.cc:739 msgid "_Tabbed Layout" msgstr "_Diseinua fitxekin" #: pan/gui/actions.cc:740 msgid "Show Group _Pane" msgstr "Erakutsi taldearen _panela" #: pan/gui/actions.cc:741 msgid "Show Hea_der Pane" msgstr "Erakutsi _goiburuen panela" #: pan/gui/actions.cc:742 msgid "Show Bod_y Pane" msgstr "Erakutsi go_rputz-panela" #: pan/gui/actions.cc:743 msgid "Show _Toolbar" msgstr "Erakutsi _tresna-barra" #: pan/gui/actions.cc:744 msgid "Abbreviate Group Names" msgstr "Laburtu talde-izenak" #: pan/gui/actions.cc:746 msgid "Match Only _Read Articles" msgstr "Bilatu _irakurritako artikuluak soilik" #: pan/gui/actions.cc:746 msgid "Match Only Read Articles" msgstr "Bilatu irakurritako artikuluak soilik" #: pan/gui/actions.cc:747 msgid "Match Only _Unread Articles" msgstr "Bilatu _irakurri gabeko artikuluak soilik" #: pan/gui/actions.cc:747 msgid "Match Only Unread Articles" msgstr "Bilatu irakurri gabeko artikuluak soilik" #: pan/gui/actions.cc:748 msgid "Match Only _Cached Articles" msgstr "Bilatu _cachean gordetako artikuluak soilik" #: pan/gui/actions.cc:748 msgid "Match Only Cached Articles" msgstr "Bilatu cachean gordetako artikuluak soilik" #: pan/gui/actions.cc:749 msgid "Match Only _Complete Articles" msgstr "Bi_latu artikulu osoak soilik" #: pan/gui/actions.cc:749 msgid "Match Only Complete Articles" msgstr "Bilatu artikulu osoak soilik" #: pan/gui/actions.cc:750 msgid "Match Only _My Articles" msgstr "Bilatu _nire artikuluak soilik" #: pan/gui/actions.cc:750 msgid "Match Only My Articles" msgstr "Bilatu nire artikuluak soilik" #: pan/gui/actions.cc:751 msgid "Match Only _Watched Articles" msgstr "Bilatu _behatutako artikuluak soilik" #: pan/gui/actions.cc:751 msgid "Match Only Watched Articles" msgstr "Bilatu behatutako artikuluak soilik" #: pan/gui/actions.cc:753 msgid "Match Scores of 9999 (_Watched)" msgstr "Bilatu 9999 puntuazioak (_behatuak)" #: pan/gui/actions.cc:754 msgid "Match Scores of 5000...9998 (_High)" msgstr "Bilatu 5000 eta 9998 bitarteko puntuazioak (_altuak)" #: pan/gui/actions.cc:755 msgid "Match Scores of 1...4999 (Me_dium)" msgstr "Bilatu 1 eta 4999 bitarteko puntuazioak (_tartekoak)" #: pan/gui/actions.cc:756 msgid "Match Scores of 0 (_Normal)" msgstr "Bilatu 0 puntuazioak (_normalak)" #: pan/gui/actions.cc:757 msgid "Match Scores of -9998...-1 (_Low)" msgstr "Bilatu -9998 eta -1 bitarteko puntuazioak (_baxuak)" #: pan/gui/actions.cc:758 msgid "Match Scores of -9999 (_Ignored)" msgstr "Bilatu -9999 puntuazioak (ez _ikusiak)" #: pan/gui/actions.cc:760 msgid "Enable/Disable All _Rules" msgstr "Gaitu/desgaitu e_rregela guztiak" #: pan/gui/actions.cc:788 msgid "Show Matching _Articles" msgstr "Erakutsi _bat datozen artikuluak" #: pan/gui/actions.cc:789 msgid "Show Matching Articles' _Threads" msgstr "Erakutsi bat _datozen artikuluen hariak" #: pan/gui/actions.cc:790 msgid "Show Matching Articles' _Subthreads" msgstr "Erakutsi bat da_tozen artikuluen azpihariak" #: pan/gui/body-pane.cc:1036 msgid "Unnamed File" msgstr "Izenik gabeko fitxategia" #: pan/gui/body-pane.cc:1117 pan/gui/gui.cc:1956 pan/gui/header-pane.cc:1306 #: pan/gui/header-pane.cc:1735 pan/gui/post-ui.cc:2641 pan/gui/prefs-ui.cc:859 #: pan/gui/score-add-ui.cc:139 pan/gui/task-pane.cc:797 msgid "Subject" msgstr "Gaia" #: pan/gui/body-pane.cc:1119 pan/gui/gui.cc:1956 msgid "From" msgstr "Nondik" #: pan/gui/body-pane.cc:1121 pan/gui/gui.cc:1957 pan/gui/header-pane.cc:1814 #: pan/gui/log-ui.cc:308 pan/gui/prefs-ui.cc:855 msgid "Date" msgstr "Data" #: pan/gui/body-pane.cc:1128 msgid "Newsgroups" msgstr "Berri-taldeak" #: pan/gui/body-pane.cc:1135 pan/gui/body-pane.cc:1143 #: pan/gui/body-pane.cc:1150 msgid "User-Agent" msgstr "Erabiltzaile-agentea" #: pan/gui/body-pane.cc:1156 msgid "Followup-To" msgstr "Segimendua honi" #: pan/gui/body-pane.cc:1166 msgid "Reply-To" msgstr "Erantzun honi" #: pan/gui/body-pane.cc:1214 msgid " from " msgstr " - " #: pan/gui/body-pane.cc:1216 msgid " at " msgstr " / " #: pan/gui/body-pane.cc:1305 #, c-format msgid "" "This is a PGP-Signed message.\n" "\n" "Signer: %s ('%s')\n" "Valid until: %s\n" "Created on: %s" msgstr "Hau PGP bidez sinatutako mezua da.\n" "\n" "Sinatzailea: %s ('%s')\n" "Baliozkoa data honetara arte: %s\n" "Sortze-data: %s" #: pan/gui/body-pane.cc:1310 msgid "always" msgstr "beti" #: pan/gui/body-pane.cc:1530 msgid "Copy _URL" msgstr "Kopiatu URLa" #: pan/gui/body-pane.cc:1718 msgid "Save Attachment As..." msgstr "Gorde eranskina honela..." #: pan/gui/body-pane.cc:1721 msgid "Save All Attachments" msgstr "Gorde eranskin guztiak" #: pan/gui/body-pane.cc:1792 msgid "Attachments:" msgstr "Eranskinak:" #: pan/gui/body-pane.cc:1812 msgid "Text View" msgstr "Testu-ikuspegia" #: pan/gui/body-pane.cc:1821 msgid "HTML View" msgstr "HTML ikuspegia" #: pan/gui/dl-headers-ui.cc:125 #, c-format msgid "%d Group" msgid_plural "%d Groups" msgstr[0] "Talde %d" msgstr[1] "%d talde" #: pan/gui/dl-headers-ui.cc:148 msgid "Get the last N _days' headers: " msgstr "Eskuratu azken _N egunetako goiburuak: " #: pan/gui/dl-headers-ui.cc:156 msgid "Get _new headers" msgstr "Eskuratu goiburu _berriak" #: pan/gui/dl-headers-ui.cc:160 msgid "Get _all headers" msgstr "Eskuratu _goiburu guztiak" #: pan/gui/dl-headers-ui.cc:164 msgid "Get the _latest N headers: " msgstr "Eskuratu az_ken N goiburuak: " #: pan/gui/e-action-combo-box.c:386 pan/gui/prefs-ui.cc:852 msgid "Action" msgstr "Ekintza" #: pan/gui/e-action-combo-box.c:387 msgid "A GtkRadioAction" msgstr "GtkRadioAction bat" #: pan/gui/e-charset.c:51 pan/gui/task-pane.cc:562 msgid "Unknown" msgstr "Ezezaguna" #: pan/gui/e-charset.c:52 msgid "Arabic" msgstr "Arabiera" #: pan/gui/e-charset.c:53 msgid "Baltic" msgstr "Baltikokoa" #: pan/gui/e-charset.c:54 msgid "Central European" msgstr "Europako Erdialdekoa" #: pan/gui/e-charset.c:55 msgid "Chinese" msgstr "Txinera" #: pan/gui/e-charset.c:56 msgid "Cyrillic" msgstr "Zirilikoa" #: pan/gui/e-charset.c:57 msgid "Greek" msgstr "Grekoa" #: pan/gui/e-charset.c:58 msgid "Hebrew" msgstr "Hebrearra" #: pan/gui/e-charset.c:59 msgid "Japanese" msgstr "Japoniarra" #: pan/gui/e-charset.c:60 msgid "Korean" msgstr "Korearra" #: pan/gui/e-charset.c:61 msgid "Thai" msgstr "Thailandiarra" #: pan/gui/e-charset.c:62 msgid "Turkish" msgstr "Turkiarra" #: pan/gui/e-charset.c:63 msgid "Unicode" msgstr "Unicode" #: pan/gui/e-charset.c:64 msgid "Western European" msgstr "Europako Mendebaldekoa" #: pan/gui/e-charset.c:65 msgid "Western European, New" msgstr "Europako Mendebaldekoa, Berria" #: pan/gui/e-charset.c:84 pan/gui/e-charset.c:85 pan/gui/e-charset.c:86 msgid "Traditional" msgstr "Tradizionala" #: pan/gui/e-charset.c:87 pan/gui/e-charset.c:88 pan/gui/e-charset.c:89 #: pan/gui/e-charset.c:90 msgid "Simplified" msgstr "Sinplifikatua" #: pan/gui/e-charset.c:93 msgid "Ukrainian" msgstr "Ukrainarra" #: pan/gui/e-charset.c:96 msgid "Visual" msgstr "Bisuala" #: pan/gui/e-charset-combo-box.c:93 pan/gui/gui.cc:2154 pan/gui/post-ui.cc:547 #: pan/gui/prefs-ui.cc:763 msgid "Character Encoding" msgstr "Karaktere-kodeketa" #: pan/gui/e-charset-combo-box.c:117 msgid "Enter the character set to use" msgstr "Adierazi erabili behar den karaktere-jokoa" #: pan/gui/e-charset-combo-box.c:336 msgid "Other..." msgstr "Bestelakoa..." #: pan/gui/e-cte-dialog.c:76 msgid "Default Encoding" msgstr "Kodeketa lehenetsia" #: pan/gui/e-cte-dialog.c:78 msgid "7-Bit Encoding" msgstr "7-biteko kodeketa" #: pan/gui/e-cte-dialog.c:80 msgid "8-Bit Encoding" msgstr "8-biteko kodeketa" #: pan/gui/e-cte-dialog.c:82 msgid "Base64 Encoding" msgstr "Base64 kodeketa" #: pan/gui/e-cte-dialog.c:84 msgid "Quoted-Printable Encoding" msgstr "Quoted-Printable kodeketa" #: pan/gui/group-pane.cc:331 msgid "Sent" msgstr "Bidalitakoak" #: pan/gui/group-pane.cc:332 msgid "Drafts" msgstr "Zirriborroak" #: pan/gui/group-pane.cc:543 msgid "Group" msgstr "Taldea" #: pan/gui/group-pane.cc:544 msgid "Group (regex)" msgstr "Taldea (adierazpen erregularra)" #: pan/gui/group-pane.cc:987 msgid "Local Folders" msgstr "Karpeta lokalak" #: pan/gui/group-pane.cc:988 msgid "Subscribed Groups" msgstr "Harpidetutako taldeak" #: pan/gui/group-pane.cc:989 msgid "Other Groups" msgstr "Beste talde batzuk" #: pan/gui/group-pane.cc:1029 pan/gui/score-view-ui.cc:157 msgid "Name" msgstr "Izena" #: pan/gui/group-prefs-dialog.cc:162 msgid "No Profiles defined in Edit|Posting Profiles." msgstr "Ez da profilik definitu 'Editatu → Bidalketa-profilak' atalean." #: pan/gui/group-prefs-dialog.cc:265 msgid "Pan: Group Preferences" msgstr "Pan: Talde-hobespenak" #: pan/gui/group-prefs-dialog.cc:280 msgid "Properties for Groups" msgstr "Taldeen propietateak" #: pan/gui/group-prefs-dialog.cc:282 #, c-format msgid "Properties for %s" msgstr "%s - propietateak" #: pan/gui/group-prefs-dialog.cc:293 msgid "Character _encoding:" msgstr "Karak_tere-kodeketa:" #: pan/gui/group-prefs-dialog.cc:295 msgid "Directory for Saving Attachments" msgstr "Eranskinak gordetzeko direktorioa" #: pan/gui/group-prefs-dialog.cc:303 msgid "Directory for _saving attachments:" msgstr "_Eranskinak gordetzeko direktorioa:" #: pan/gui/group-prefs-dialog.cc:305 msgid "Posting _profile:" msgstr "Bidalketetarako _profila:" #: pan/gui/group-prefs-dialog.cc:310 msgid "Spellchecker _language:" msgstr "Ortografia-egiaztatzailearen _hizkuntza:" #: pan/gui/group-prefs-dialog.cc:313 msgid "Group color:" msgstr "Taldearen kolorea:" #: pan/gui/gui.cc:311 msgid "Open the Task Manager" msgstr "Ireki ataza-kudeatzailea" #: pan/gui/gui.cc:334 msgid "Open the Event Log" msgstr "Ireki gertaera-egunkaria" #: pan/gui/gui.cc:610 msgid "Save NZB's Files" msgstr "Gorde NZB fitxategiak" #: pan/gui/gui.cc:637 msgid "Untitled.nzb" msgstr "Izenik gabe.nzb" #: pan/gui/gui.cc:639 msgid "Save NZB File as..." msgstr "Gorde NZB fitxategia honela…" #: pan/gui/gui.cc:808 msgid "Import NZB Files" msgstr "Inportatu NZB fitxategiak" #: pan/gui/gui.cc:816 pan/gui/post-ui.cc:3349 msgid "NZB Files" msgstr "NZB fitxategiak" #: pan/gui/gui.cc:821 msgid "All Files" msgstr "Fitxategi guztiak" #: pan/gui/gui.cc:1335 msgid "Unable to supersede article." msgstr "Ezin izan da fitxategia ordeztu." #: pan/gui/gui.cc:1336 pan/gui/gui.cc:1412 msgid "The article doesn't match any of your posting profiles." msgstr "Artikulua ez dator bat zure bidalketa-profiletako batekin ere." #: pan/gui/gui.cc:1385 msgid "Revise and send this article to replace the old one." msgstr "Berrikusi eta bidali artikulu hau zaharra ordezteko." #: pan/gui/gui.cc:1386 pan/gui/gui.cc:1450 msgid "Be patient! It will take time for your changes to take effect." msgstr "Izan pazientzia... Pixka bat itxaron beharko duzu aldaketak aplikatu bitartean." #: pan/gui/gui.cc:1411 msgid "Unable to cancel article." msgstr "Ezin izan da artikulua bertan behera utzi." #: pan/gui/gui.cc:1449 msgid "Send this article to ask your server to cancel your other one." msgstr "Bidali artikulu hau zerbitzariari eskatzeko bestea bertan behera utz dezala." #: pan/gui/gui.cc:1467 msgid "You have marked some articles for deletion." msgstr "Zenbait artikulu ezabatzeko moduan markatu dituzu." #: pan/gui/gui.cc:1468 msgid "Are you sure you want to delete them?" msgstr "Ziur zaude ezabatu nahi dituzula?" #: pan/gui/gui.cc:1494 msgid "Do you want to accept it permanently? (You can change this later.)" msgstr "Betiko onartu nahi duzu? (Geroago ere aldatu daiteke hori.)" #: pan/gui/gui.cc:1640 msgid "Unable to open help file." msgstr "Ezin da laguntzako fitxategia ireki." #: pan/gui/gui.cc:1668 msgid "Copyright © 2002-2021 Charles Kerr and others" msgstr "Copyright © 2002-2021 Charles Kerr eta beste batzuk" #: pan/gui/gui.cc:1673 msgid "translator-credits" msgstr "translator-credits" #: pan/gui/gui.cc:1801 msgid "_1. Group Pane" msgstr "_1. Taldearen panela" #: pan/gui/gui.cc:1802 msgid "_2. Header Pane" msgstr "_2. Goiburuen panela" #: pan/gui/gui.cc:1803 msgid "_3. Body Pane" msgstr "_3. Gorputzaren panela" #: pan/gui/gui.cc:1893 pan/gui/gui.cc:1908 msgid " Bytes" msgstr " Byte" #: pan/gui/gui.cc:1896 msgid " KB" msgstr " KB" #: pan/gui/gui.cc:1899 msgid " MB" msgstr " MB" #: pan/gui/gui.cc:1902 msgid " GB" msgstr " GB" #: pan/gui/gui.cc:1905 msgid " TB" msgstr " TB" #: pan/gui/gui.cc:1937 #, c-format msgid "This article is complete with %d part." msgid_plural "This article has all %d parts." msgstr[0] "Artikulu honek zati guztiak ditu (%d)." msgstr[1] "Artikulu honek zati guztiak ditu (%d)." #: pan/gui/gui.cc:1939 #, c-format msgid "This article is missing %d part." msgid_plural "This article is missing %d of its %d parts:" msgstr[0] "Artilulu honi %d zati falta zaio." msgstr[1] "Artikulu honi %d zati falta zaizkio %d zatitik:" #: pan/gui/gui.cc:1957 pan/gui/header-pane.cc:1308 pan/gui/task-pane.cc:799 msgid "Message-ID" msgstr "Mezuaren IDa" #: pan/gui/gui.cc:1958 pan/gui/header-pane.cc:1783 pan/gui/prefs-ui.cc:856 msgid "Lines" msgstr "Lerroak" #: pan/gui/gui.cc:1958 msgid "Size" msgstr "Tamaina" #: pan/gui/gui.cc:1959 pan/gui/header-pane.cc:1799 pan/gui/prefs-ui.cc:854 msgid "Bytes" msgstr "Byte" #: pan/gui/gui.cc:2009 msgid "" "Error loading iconv library. Encoding certain character sets will not work " "in GUI." msgstr "Errorea iconv liburutegia kargatzean. Zenbait karaktere-jokoren kodeketak ez du funtzionatuko erabiltzaile-interfazean." #: pan/gui/gui.cc:2155 msgid "Body Pane Encoding" msgstr "Gorputzaren panelaren kodeketa" #: pan/gui/gui.cc:2186 pan/gui/task-pane.cc:613 msgid "Offline" msgstr "Lineaz kanpo" #: pan/gui/gui.cc:2190 #, c-format msgid "Closing %d connection" msgid_plural "Closing %d connections" msgstr[0] "Konexio %d ixten" msgstr[1] "%d konexio ixten" #: pan/gui/gui.cc:2192 pan/gui/gui.cc:2222 msgid "No Connections" msgstr "Ez dago konexiorik" #: pan/gui/gui.cc:2196 msgid "Connecting" msgstr "Konektatzea" #: pan/gui/gui.cc:2209 #, c-format msgid "%s: %d idle, %d active @ %.1f KiBps" msgstr "%s: %d inaktibo, %d aktibo @ %.1f KiBps" #: pan/gui/gui.cc:2265 msgid "No Tasks" msgstr "Atazarik ez" #: pan/gui/gui.cc:2267 pan/gui/prefs-ui.cc:1094 msgid "Tasks" msgstr "Atazak" #: pan/gui/gui.cc:2284 pan/gui/task-pane.cc:479 #, c-format msgid "%lu tasks, %s, %.1f KiBps, ETA %d:%02d:%02d" msgstr "%lu ataza, %s, %.1f KiBps, ETA %d:%02d:%02d" #: pan/gui/gui.cc:2336 msgid "" "Pan is now offline. Please see \"File|Event Log\" and correct the problem, " "then use \"File|Work Online\" to continue." msgstr "Pan lineaz kanpo dago orain. Begiratu 'Fitxategia → Gertaera-egunkaria' eta konpondu arazoa; ondoren, hautatu 'Fitxategia → Lan egin linean' aurrera jarraitzeko." #: pan/gui/header-pane.cc:1304 pan/gui/task-pane.cc:795 msgid "Subject or Author" msgstr "Gaia edo egilea" #: pan/gui/header-pane.cc:1305 pan/gui/task-pane.cc:796 msgid "Sub or Auth (regex)" msgstr "Gaia edo egilea (adierazpen erregularra)" #: pan/gui/header-pane.cc:1307 pan/gui/header-pane.cc:1767 #: pan/gui/prefs-ui.cc:853 pan/gui/score-add-ui.cc:140 pan/gui/task-pane.cc:798 msgid "Author" msgstr "Egilea" #: pan/gui/header-pane.cc:1752 pan/gui/prefs-ui.cc:857 msgid "Score" msgstr "Puntuazioa" #: pan/gui/log-ui.cc:105 msgid "Save Event List" msgstr "Gorde gertaera-zerrenda" #: pan/gui/log-ui.cc:259 msgid "Pan: Events" msgstr "Pan: Gertaerak" #: pan/gui/log-ui.cc:318 msgid "Message" msgstr "Mezua" #: pan/gui/pan.cc:369 msgid "Maximize" msgstr "Maximizatu" #: pan/gui/pan.cc:422 msgid "An error has occurred!" msgstr "Errorea gertatu da!" #: pan/gui/pan.cc:434 msgid "New Articles!" msgstr "Artikulu berriak!" #: pan/gui/pan.cc:435 msgid "" "There are new\n" "articles available." msgstr "Artikulu berriak\n" "daude eskuragarri." #: pan/gui/pan.cc:502 msgid "Toggle on/offline" msgstr "Txandakatu linean/lineaz kanpo" #: pan/gui/pan.cc:550 msgid "" "Thank you for trying Pan!\n" " \n" "To start newsreading, first Add a Server." msgstr "Eskerrik asko Pan probatzeagatik!\n" " \n" "Berri-taldeetako mezuak irakurtzen hasteko, zerbitzari bat hautatu behar duzu." #: pan/gui/pan.cc:632 msgid "" "General Options\n" " -h, --help Show this usage information and exit.\n" " -v, --version Print release version and exit.\n" " --verbose Be verbose (in non-GUI mode).\n" " --debug Run in debug mode. Use --debug twice for verbose " "debug.\n" " --debug-ssl Run in TLS (aka SSL) debug mode.\n" "\n" "URL Options\n" " headers:group.name Download new headers for the specified " "newsgroup.\n" " news:message-id When specified together with --no-gui, dump\n" " the message-id article to standard output.\n" "\n" "NZB Batch Options\n" " --nzb file1 file2 ... Process NZB files in non-GUI mode.\n" " -o path, --output=path Path to save attachments listed in the NZB " "file(s).\n" " --no-gui Only show console output, not the download " "queue.\n" msgstr "Aukera orokorrak\n" " -h, --help Erakutsi erabilera-informazio hau eta irten.\n" " -v, --version Inprimatu bertsioaren informazioa eta irten.\n" " --verbose Erakutsi xehetasunak (ez EI moduan).\n" " --debug Exekutatu arazketa-moduan. Erabili --debug birritan arazketa xehea ikusteko.\n" " --debug-ssl Exekutatu TLS (alegia, SSL) arazketa-moduan.\n" "\n" "URL aukerak\n" " headers:group.name Deskargatu soiburu berriak zehaztutako berri-taldetik.\n" " news:message-id --no-gui aukerarekin zehaztutakoan, irauli\n" " message-id artikulua irteera estandarrera.\n" "\n" "NZB Batch Options\n" " --nzb file1 file2 ... Process NZB files in non-GUI mode.\n" " -o path, --output=path Path to save attachments listed in the NZB file(s).\n" " --no-gui Only show console output, not the download queue.\n" #: pan/gui/pan.cc:966 msgid "Error: --no-gui used without nzb files or news:message-id." msgstr "Errorea: --no-gui nzb fitxategirik edo news:message-id gabe erabiltzen da." #: pan/gui/pan.cc:970 #, c-format msgid "Pan %s started" msgstr "Pan %s abiarazi da" #: pan/gui/pan.cc:990 msgid "Please configure Pan's news servers before using it as an nzb client." msgstr "Konfiguratu Pan aplikazioaren berri-zerbitzariak nzb bezero gisa erabili aurretik." #: pan/gui/pan.cc:1108 msgid "Pan notification" msgstr "Pan jakinarazpena" #: pan/gui/post-ui.cc:176 #, c-format msgid "Upload queue: %llu tasks, %ld KB (~ %.2f MB) total." msgstr "Kargatze-ilara: %llu ataza, %ld KB (~ %.2f MB) guztira." #: pan/gui/post-ui.cc:282 pan/gui/post-ui.cc:313 #, c-format msgid "Error setting custom spellchecker: %s" msgstr "Errorea ortografia-egiaztatzaile pertsonalizatua ezartzean: %s" #: pan/gui/post-ui.cc:286 pan/gui/post-ui.cc:294 pan/gui/post-ui.cc:317 #: pan/gui/post-ui.cc:325 #, c-format msgid "Error setting spellchecker: %s" msgstr "Errorea ortografia-egiaztatzailea ezartzean: %s" #: pan/gui/post-ui.cc:454 msgid "_Profile" msgstr "_Profila" #: pan/gui/post-ui.cc:455 msgid "Set Editor" msgstr "Ezarri editorea" #: pan/gui/post-ui.cc:457 msgid "_Send Article" msgstr "_Bidali artikulua" #: pan/gui/post-ui.cc:457 msgid "Send Article Now" msgstr "Bidali artikulua orain" #: pan/gui/post-ui.cc:458 msgid "_Send and Save Articles to NZB" msgstr "_Bidali eta gorde artikuluak NZBn" #: pan/gui/post-ui.cc:458 msgid "Send and Save Articles to NZB" msgstr "Bidali eta gorde artikuluak NZBn" #: pan/gui/post-ui.cc:459 msgid "Set Character _Encoding..." msgstr "Ezarri _karaktere-kodeketa…" #: pan/gui/post-ui.cc:460 msgid "Set Content _Transfer Encoding..." msgstr "Ezarri eduki-_transferentziaren kodeketa…" #: pan/gui/post-ui.cc:461 msgid "Sa_ve Draft" msgstr "Gor_de zirriborroa" #: pan/gui/post-ui.cc:461 msgid "Save as a Draft for Future Posting" msgstr "Gorde zirriborro gisa beste une batean bidaltzeko" #: pan/gui/post-ui.cc:462 msgid "_Open Draft..." msgstr "_Ireki zirriborroa..." #: pan/gui/post-ui.cc:462 msgid "Open an Article Draft" msgstr "Ireki artikulu-zirriborroa" #: pan/gui/post-ui.cc:467 msgid "_Rot13" msgstr "_Rot13" #: pan/gui/post-ui.cc:467 msgid "Rot13 Selected Text" msgstr "Rot13 hautatutako testua" #: pan/gui/post-ui.cc:468 msgid "Run _Editor" msgstr "E_xekutatu editorea" #: pan/gui/post-ui.cc:468 msgid "Run Editor" msgstr "Exekutatu editorea" #: pan/gui/post-ui.cc:470 msgid "Add _Files to Queue" msgstr "Gehitu _fitxategiak ilarari" #: pan/gui/post-ui.cc:470 msgid "Add Files to Queue" msgstr "Gehitu fitxategiak ilarari" #: pan/gui/post-ui.cc:485 pan/gui/post-ui.cc:486 msgid "Remove from Queue" msgstr "Kendu ilaratik" #: pan/gui/post-ui.cc:490 pan/gui/post-ui.cc:491 msgid "Clear List" msgstr "Garbitu zerrenda" #: pan/gui/post-ui.cc:495 pan/gui/post-ui.cc:496 msgid "Select Needed Parts" msgstr "Hautatu beharrezkoak diren zatiak" #: pan/gui/post-ui.cc:500 pan/gui/post-ui.cc:501 pan/gui/task-pane.cc:681 #: pan/gui/task-pane.cc:682 msgid "Move Up" msgstr "Eraman gora" #: pan/gui/post-ui.cc:505 pan/gui/post-ui.cc:506 pan/gui/task-pane.cc:686 #: pan/gui/task-pane.cc:687 msgid "Move Down" msgstr "Eraman behera" #: pan/gui/post-ui.cc:510 pan/gui/post-ui.cc:511 msgid "Move to Top" msgstr "Eraman goraino" #: pan/gui/post-ui.cc:515 pan/gui/post-ui.cc:516 msgid "Move to Bottom" msgstr "Eraman beheraino" #: pan/gui/post-ui.cc:523 msgid "_Wrap Text" msgstr "_Egokitu testua" #: pan/gui/post-ui.cc:523 msgid "Wrap Text" msgstr "Egokitu testua" #: pan/gui/post-ui.cc:524 msgid "Always Run Editor" msgstr "Exekutatu beti editorea" #: pan/gui/post-ui.cc:525 msgid "Remember Character Encoding for This Group" msgstr "Gogoratu talde honen karaktere-kodeketa" #: pan/gui/post-ui.cc:526 msgid "Thread Attached Replies" msgstr "Harilkatu erantsitako erantzuka" #: pan/gui/post-ui.cc:527 msgid "PGP-Encrypt the Article" msgstr "Zifratu artikulua PGPrekin" #: pan/gui/post-ui.cc:528 msgid "PGP-Sign the Article" msgstr "Sinatu artikulua PGPrekin" #: pan/gui/post-ui.cc:529 msgid "Check _Spelling" msgstr "Egiaztatu _ortografia" #: pan/gui/post-ui.cc:548 msgid "New Article's Encoding:" msgstr "Artikulu berriaren kodeketa:" #: pan/gui/post-ui.cc:558 msgid "Content Transfer Encoding" msgstr "Eduki-transferentziaren kodeketa" #: pan/gui/post-ui.cc:559 msgid "New Article's Content Transfer Encoding:" msgstr "Artikulu berriaren eduki-transferentziaren kodeketa:" #: pan/gui/post-ui.cc:743 msgid "Your changes will be lost!" msgstr "Aldaketak galdu egingo dira." #: pan/gui/post-ui.cc:744 msgid "Close this window and lose your changes?" msgstr "Leiho hau itxi eta aldaketak galdu nahi dituzu?" #: pan/gui/post-ui.cc:789 pan/gui/post-ui.cc:828 msgid "There were problems with this post." msgstr "Arazoak egon dira bidalketa honekin." #: pan/gui/post-ui.cc:791 pan/gui/post-ui.cc:830 pan/gui/post-ui.cc:895 msgid "Go Back" msgstr "Joan atzera" #: pan/gui/post-ui.cc:793 msgid "Continue Anyway" msgstr "Jarraitu dena den" #. Prompt the user #: pan/gui/post-ui.cc:822 #, c-format msgid "" "Message uses characters not specified in charset '%s' - possibly use '%s' " msgstr "Mezuak '%s' karaktere-jokoan zehaztu ez diren karaktereak ditu – Ziur aski '%s' erabiliko da " #: pan/gui/post-ui.cc:845 msgid "Go _Online" msgstr "_Konektatu" #: pan/gui/post-ui.cc:894 msgid "The file queue is empty, so no files can be saved." msgstr "Ezin da fitxategirik gorde, fitxategi-ilara hutsik baitago." #: pan/gui/post-ui.cc:1074 msgid "IO Error" msgstr "S/I errorea" #: pan/gui/post-ui.cc:1074 msgid "No space left on device" msgstr "Ez dago leku librerik gailuan" #: pan/gui/post-ui.cc:1075 #, c-format msgid "Error copying message to %s folder. Reason: %s" msgstr "Errorea mezua %s karpetan kopiatzean. Arrazoia: %s" #: pan/gui/post-ui.cc:1081 #, c-format msgid "Error creating message in %s mail folder: Invalid article." msgstr "Errorea mezua %s posta-karpetan sortzean: Artikulu baliogabea." #: pan/gui/post-ui.cc:1103 msgid "" "No posting server is set for this posting profile.\n" "Please edit the profile via Edit|Manage Posting Profiles." msgstr "Ez da bidalketa-zerbitzaririk ezarri profil honetarako.\n" "Editatu profila 'Editatu → Kudeatu bidalketa-profilak' aukeraren bidez." #: pan/gui/post-ui.cc:1108 msgid "" "The selected posting server is currently disabled. Please choose an " "appropriate alternative." msgstr "Hautatutako bidalketa-zerbitzaria desgaituta dago. Aukeratu ordezko egoki bat." #: pan/gui/post-ui.cc:1150 msgid "Pan is Offline." msgstr "Pan lineaz kanpo dago." #: pan/gui/post-ui.cc:1151 msgid "Go online to post the article?" msgstr "Konektatu artikulua bidaltzeko?" #: pan/gui/post-ui.cc:1200 #, c-format msgid "" "Error signing/encrypting your message. Perhaps you misspelled your email " "address (%s)?" msgstr "Errorea mezua sinatzean/zifratzean. Beharbada gaizki idatzi duzu posta-helbidea (%s)?" #: pan/gui/post-ui.cc:1350 msgid "Error opening temporary file" msgstr "Errorea aldi baterako fitxategia irekitzean" #: pan/gui/post-ui.cc:1361 #, c-format msgid "Error creating temporary file: %s" msgstr "Errorea aldi baterako fitxategia sortzean: %s" #: pan/gui/post-ui.cc:1369 #, c-format msgid "Error writing article to temporary file: %s" msgstr "Errorea aldi baterako fitxategian artikulua idaztean: %s" #: pan/gui/post-ui.cc:1442 msgid "Open Draft Article" msgstr "Ireki zirriborro-artikulua" #: pan/gui/post-ui.cc:1684 msgid "Save Draft Article" msgstr "Gorde zirriborro-artikulua" #: pan/gui/post-ui.cc:1722 msgid "File already exists." msgstr "Fitxategia badago lehendik ere." #: pan/gui/post-ui.cc:1723 msgid "Overwrite it?" msgstr "Gainidatzi?" #: pan/gui/post-ui.cc:1932 #, c-format msgid "Couldn't parse signature command \"%s\": %s" msgstr "Ezin izan da \"%s\" sinadura-komandoa analizatu: %s" #: pan/gui/post-ui.cc:1968 msgid "Couldn't convert signature to UTF-8." msgstr "Ezin izan da sinadura UTF-8 kodeketara bihurtu." #: pan/gui/post-ui.cc:2480 msgid "F_rom" msgstr "_Nork" #: pan/gui/post-ui.cc:2497 msgid "_Subject" msgstr "_Gaia" #: pan/gui/post-ui.cc:2510 msgid "_Newsgroups" msgstr "_Berri-taldeak" #: pan/gui/post-ui.cc:2524 msgid "Mail _To" msgstr "Bi_dali mezua honi" #: pan/gui/post-ui.cc:2626 msgid "Delete from Queue" msgstr "Ezabatu ilaratik" #: pan/gui/post-ui.cc:2639 msgid "No." msgstr "Ez." #: pan/gui/post-ui.cc:2643 pan/gui/post-ui.cc:2735 pan/gui/post-ui.cc:2776 msgid "Filename" msgstr "Fitxategi-izena" #: pan/gui/post-ui.cc:2645 msgid "Size (KB)" msgstr "Tamaina (kB)" #: pan/gui/post-ui.cc:2743 msgid "The current filename" msgstr "Uneko fitxategi-izena" #: pan/gui/post-ui.cc:2747 msgid "Subject Line" msgstr "Gaia" #: pan/gui/post-ui.cc:2755 msgid "The current subject line" msgstr "Uneko gaia" #: pan/gui/post-ui.cc:2769 msgid "No. " msgstr "Ez. " #: pan/gui/post-ui.cc:2773 msgid "Enable/Disable" msgstr "Gaitu/Desgaitu" #: pan/gui/post-ui.cc:2807 msgid "Follo_wup-To" msgstr "Egin _segimendua honi" #. i18n: "poster" is a key used by many newsreaders. probably safest to keep this key in english. #: pan/gui/post-ui.cc:2816 msgid "" "The newsgroups where replies to your message should go. This is only needed " "if it differs from the \"Newsgroups\" header.\n" "\n" "To direct all replies to your email address, use \"Followup-To: poster\"" msgstr "Zure mezuaren erantzunak zein berri-taldetara joango diren. Hau beharrezkoa da \"Berri-taldeak\" goiburuaren desberdina bada soilik.\n" "\n" "Erantzun guztiak zure posta-helbidera, erabili \"Segimendua honi: bidaltzailea\"" #: pan/gui/post-ui.cc:2823 msgid "_Reply-To" msgstr "_Erantzun honi" #: pan/gui/post-ui.cc:2831 msgid "" "The email account where mail replies to your posted message should go. This " "is only needed if it differs from the \"From\" header." msgstr "Zuk bidalitako mezuen posta bidezko erantzunak posta elektronikoko zein kontura joango diren.Hau beharrezkoa da \"Nork\" goiburuaren desberdina bada soilik." #: pan/gui/post-ui.cc:2838 msgid "_Custom Headers" msgstr "_Goiburu pertsonalizatuak" #: pan/gui/post-ui.cc:2862 msgid "Add \"_User-Agent\" header" msgstr "Gehitu \"_User-Agent\" goiburua" #: pan/gui/post-ui.cc:2869 msgid "Add \"Message-_ID\" header" msgstr "Gehitu \"Message-_ID\" goiburua" #: pan/gui/post-ui.cc:2997 msgid "Select Parts" msgstr "Hautatu zatiak" #: pan/gui/post-ui.cc:3010 msgid "_Parts" msgstr "_Zatiak" #: pan/gui/post-ui.cc:3177 msgid "Post Article" msgstr "Bidali artikulua" #: pan/gui/post-ui.cc:3198 msgid "_Message" msgstr "_Mezua" #: pan/gui/post-ui.cc:3199 msgid "More _Headers" msgstr "Goi_buru gehiago" #: pan/gui/post-ui.cc:3200 msgid "File _Queue" msgstr "Fitxategi-i_lara" #: pan/gui/post-ui.cc:3231 pan/gui/profiles-dialog.cc:490 #, no-c-format msgid "On %d, %n wrote:" msgstr "%d egunean, %n(e)k idatzi du:" #: pan/gui/post-ui.cc:3260 msgid "Add files to queue" msgstr "Gehitu fitxategiak ilarari" #: pan/gui/post-ui.cc:3336 msgid "Save Upload Queue as NZB File" msgstr "Gorde kargatze-ilara NZB fitxategi gisa" #: pan/gui/prefs.cc:366 #, c-format msgid "Couldn't parse %s color \"%s\"" msgstr "Ezin da %s \"%s\" kolorea analizatu" #: pan/gui/prefs-ui.cc:127 msgid "Grab Key" msgstr "Atzitu gakoa" #: pan/gui/prefs-ui.cc:133 #, c-format msgid "" "Press the combination of the keys\n" "you want to use for \"%s\"." msgstr "Sakatu \"%s\"(e)rako erabili nahi duzun\n" "tekla-konbinazioa." #: pan/gui/prefs-ui.cc:173 msgid "Edit Shortcut" msgstr "Editatu lasterbidea" #: pan/gui/prefs-ui.cc:235 msgid "Error: Shortcut key is invalid!" msgstr "Errorea: Lasterbide-gakoa baliogabea da!" #: pan/gui/prefs-ui.cc:251 msgid "Error: Shortcut key already exists!" msgstr "Errorea: Lasterbide-gakoa badago lehendik!" #: pan/gui/prefs-ui.cc:565 msgid "Show only icons" msgstr "Erakutsi ikonoak soilik" #: pan/gui/prefs-ui.cc:566 msgid "Show only text" msgstr "Erakutsi testua soilik" #: pan/gui/prefs-ui.cc:567 msgid "Show icons and text" msgstr "Erakutsi ikonoak eta testua" #: pan/gui/prefs-ui.cc:606 msgid "Use GNOME Preferences" msgstr "Erabili GNOMEren hobespenak" #: pan/gui/prefs-ui.cc:607 msgid "Use KDE Preferences" msgstr "Erabili KDEren hobespenak" #: pan/gui/prefs-ui.cc:608 msgid "Use OS X Preferences" msgstr "Erabili OS Xren hobespenak" #: pan/gui/prefs-ui.cc:609 msgid "Use Windows Preferences" msgstr "Erabili Windows-en hobespenak" #: pan/gui/prefs-ui.cc:610 msgid "Custom Command:" msgstr "Komando pertsonalizatua:" #: pan/gui/prefs-ui.cc:662 msgid "Disabled" msgstr "Desgaituta" #: pan/gui/prefs-ui.cc:663 msgid "Only new (score == 0)" msgstr "Berria soilik (puntuazioa == 0)" #: pan/gui/prefs-ui.cc:664 msgid "9999 or more" msgstr "9999 edo gehiago" #: pan/gui/prefs-ui.cc:665 msgid "5000 to 9998" msgstr "5000 eta 9998 artean" #: pan/gui/prefs-ui.cc:666 msgid "1 to 4999" msgstr "1 eta 4999 artean" #: pan/gui/prefs-ui.cc:667 msgid "-9998 to -1" msgstr "-9998 eta -1 artean" #: pan/gui/prefs-ui.cc:668 msgid "-9999 or less" msgstr "-9999 edo gutxiago" #: pan/gui/prefs-ui.cc:732 #, c-format msgid "Select default global character set. Current setting: %s." msgstr "Hautatu karaktere-joko globala. Uneko ezarpena: %s." #: pan/gui/prefs-ui.cc:764 msgid "Global Character Set Settings" msgstr "Karaktere-joko globalaren ezarpenak" #: pan/gui/prefs-ui.cc:858 pan/gui/task-pane.cc:1072 msgid "State" msgstr "Egoera" #: pan/gui/prefs-ui.cc:892 msgid "Enabled" msgstr "Gaituta" #: pan/gui/prefs-ui.cc:896 msgid "Column Name" msgstr "Zutabe-izena" #: pan/gui/prefs-ui.cc:934 msgid "Pan: Preferences" msgstr "Pan: Hobespenak" #: pan/gui/prefs-ui.cc:949 msgid "Mouse" msgstr "Sagua" #: pan/gui/prefs-ui.cc:951 msgid "Single-click activates, rather than selects, _groups" msgstr "Klik bakarrarekin _taldeak aktibatu egiten dira, ez hautatu" #: pan/gui/prefs-ui.cc:953 msgid "Single-click activates, rather than selects, _articles" msgstr "Klik bakarrarekin _artikuluak aktibatu egiten dira, ez hautatu" #: pan/gui/prefs-ui.cc:956 msgid "Groups" msgstr "Taldeak" #: pan/gui/prefs-ui.cc:958 msgid "Get new headers in subscribed groups on _startup" msgstr "Eskuratu harpidetutako taldeetako goiburu berriak abioan" #: pan/gui/prefs-ui.cc:960 msgid "Get new headers when _entering group" msgstr "Eskuratu goiburu berriak tal_dean sartzean" #: pan/gui/prefs-ui.cc:962 msgid "Mark entire group _read when leaving group" msgstr "Markatu talde osoa _irakurritako gisa taldetik irtetean" #: pan/gui/prefs-ui.cc:964 msgid "Mark entire group read before getting _new headers" msgstr "Markatu talde osoa irakurritako gisa _goiburu berriak eskuratu aurretik" #: pan/gui/prefs-ui.cc:966 msgid "E_xpand all threads when entering group" msgstr "_Zabaldu hari guztiak taldean sartzean" #: pan/gui/prefs-ui.cc:971 msgid "Articles" msgstr "Artikuluak" #: pan/gui/prefs-ui.cc:973 msgid "Mark downloaded articles read" msgstr "Markatu deskargatutako artikuluak irakurritako gisa" #: pan/gui/prefs-ui.cc:975 msgid "Space selects next article rather than next unread" msgstr "Zuriune-barrak hurrengo artikulua hautatzen du, eta ez irakurri gabeko hurrengoa" #: pan/gui/prefs-ui.cc:977 msgid "Expand threads upon selection" msgstr "Hedatu hariak haiek hautatzean" #: pan/gui/prefs-ui.cc:979 msgid "Always ask before deleting an article" msgstr "Galdetu beti artikulu bat ezabatu baino lehen" #: pan/gui/prefs-ui.cc:981 msgid "Smooth scrolling" msgstr "Korritze leuna" #: pan/gui/prefs-ui.cc:986 msgid "Article Cache" msgstr "Artikulu-cachea" #: pan/gui/prefs-ui.cc:987 msgid "Clear article cache on shutdown" msgstr "Garbitu artikulua cachetik itzaltzean" #: pan/gui/prefs-ui.cc:990 msgid "Size of article cache (in MiB):" msgstr "Artikulu-cachearen tamaina (MiBetan):" #: pan/gui/prefs-ui.cc:995 msgid "File extension for cached articles: " msgstr "Cacheko artikuluetarako fitxategi-luzapena: " #: pan/gui/prefs-ui.cc:1000 msgid "Tabs" msgstr "Fitxak" #: pan/gui/prefs-ui.cc:1005 msgid "_Behavior" msgstr "_Portaera" #: pan/gui/prefs-ui.cc:1005 msgid "Behavior" msgstr "Portaera" #: pan/gui/prefs-ui.cc:1011 msgid "Task Pane" msgstr "Zereginen panela" #: pan/gui/prefs-ui.cc:1012 msgid "Show task pane popups" msgstr "Erakutsi zereginen paneleko laster-menuak" #: pan/gui/prefs-ui.cc:1014 msgid "Show Download Meter" msgstr "Erakutsi deskargen neurketa" #: pan/gui/prefs-ui.cc:1018 msgid "_Panes" msgstr "_Panelak" #: pan/gui/prefs-ui.cc:1018 msgid "Panes" msgstr "Panelak" #: pan/gui/prefs-ui.cc:1024 msgid "Language Settings" msgstr "Hizkuntzaren ezarpenak" #. systray and notify popup #: pan/gui/prefs-ui.cc:1033 msgid "System Tray Behavior" msgstr "Sistemaren erretiluaren portaera" #: pan/gui/prefs-ui.cc:1035 msgid "Minimize to tray" msgstr "Minimizatu erretilura" #: pan/gui/prefs-ui.cc:1037 msgid "Start Pan minimized" msgstr "Abiarazi Pan minimizatuta" #: pan/gui/prefs-ui.cc:1040 msgid "Show notifications" msgstr "Erakutsi jakinarazpenak" #. allow multiple instances (seperate, not communicating with dbus) #: pan/gui/prefs-ui.cc:1045 msgid "Startup Behavior" msgstr "Abioko portaera" #: pan/gui/prefs-ui.cc:1047 msgid "Allow multiple instances of Pan" msgstr "Onartu Pan aplikazioaren instantzia anitz" #: pan/gui/prefs-ui.cc:1052 msgid "Autosave Article Draft" msgstr "Gorde automatikoki artikuluen zirriborroa" #: pan/gui/prefs-ui.cc:1054 msgid "Minutes to autosave the current Article Draft: " msgstr "Uneko artikulu-zirriborroa automatikoki gordetzeko minutuak: " #: pan/gui/prefs-ui.cc:1059 msgid "Autosave Articles" msgstr "Gorde automatikoki artikuluak" #: pan/gui/prefs-ui.cc:1061 msgid "Minutes to autosave newsrc files: " msgstr "newsrc fitxategiak automatikoki gordetzeko minutuak: " #: pan/gui/prefs-ui.cc:1068 msgid "Password Storage" msgstr "Pasahitz-biltegia" #: pan/gui/prefs-ui.cc:1069 msgid "Save passwords in password storage" msgstr "Gorde pasahitzak pasahitz-biltegian" #: pan/gui/prefs-ui.cc:1073 msgid "_Miscellaneous" msgstr "_Bestelakoak" #: pan/gui/prefs-ui.cc:1073 msgid "Miscellaneous" msgstr "Bestelakoak" #: pan/gui/prefs-ui.cc:1078 msgid "Pane Layout" msgstr "Panelaren diseinua" #: pan/gui/prefs-ui.cc:1097 msgid "1=Groups, 2=Headers, 3=Body" msgstr "1=Taldeak, 2=Goiburuak, 3=Gorputza" #: pan/gui/prefs-ui.cc:1099 msgid "1=Groups, 2=Body, 3=Headers" msgstr "1=Taldeak, 2=Gorputza, 3=Goiburuak" #: pan/gui/prefs-ui.cc:1101 msgid "1=Headers, 2=Groups, 3=Body" msgstr "1=Goiburuak, 2=Taldeak, 3=Gorputza" #: pan/gui/prefs-ui.cc:1103 msgid "1=Headers, 2=Body, 3=Groups" msgstr "1=Goiburuak, 2=Gorputza, 3=Taldeak" #: pan/gui/prefs-ui.cc:1105 msgid "1=Body, 2=Groups, 3=Headers" msgstr "1=Gorputza, 2=Taldeak, 3=Goiburuak" #: pan/gui/prefs-ui.cc:1107 msgid "1=Body, 2=Headers, 3=Groups" msgstr "1=Gorputza, 2=Goiburuak, 3=Taldeak" #: pan/gui/prefs-ui.cc:1111 msgid "Layout" msgstr "Diseinua" #: pan/gui/prefs-ui.cc:1116 msgid "Header Pane Columns" msgstr "Goiburuen panelaren zutabeak" #: pan/gui/prefs-ui.cc:1120 msgid "_Headers" msgstr "_Goiburuak" #: pan/gui/prefs-ui.cc:1120 msgid "Headers" msgstr "Goiburuak" #: pan/gui/prefs-ui.cc:1126 msgid "" "This menu lets you configure Pan to take certain actions on your behalf " "automatically, based on an article's score." msgstr "Menu honen bidez, Pan konfiguratu daiteke zure izenean zenbait ekintza automatikoki exekutatu ditzan, artikuluen puntuazioan oinarrituta." #: pan/gui/prefs-ui.cc:1131 msgid "Mark affected articles read" msgstr "Markatu eragindako artikuluak irakurrita gisa" #: pan/gui/prefs-ui.cc:1140 msgid "_Delete articles scoring at: " msgstr "_Ezabatu honako puntuazioa duten artikuluak: " #: pan/gui/prefs-ui.cc:1146 msgid "Mark articles read scoring at: " msgstr "Markatu irakurrita gisa honako puntuazioa duten artikuluak: " #: pan/gui/prefs-ui.cc:1152 msgid "_Cache articles scoring at: " msgstr "_Cacheatu honako puntuazioa duten artikuluak: " #: pan/gui/prefs-ui.cc:1158 msgid "Download attachments of articles scoring at: " msgstr "Deskargatu eranskinak honako puntuazioa duten artikuluetan: " #: pan/gui/prefs-ui.cc:1161 msgid "Actions" msgstr "Ekintzak" #: pan/gui/prefs-ui.cc:1166 pan/gui/prefs-ui.cc:1187 msgid "Fonts" msgstr "Letra-tipoak" #: pan/gui/prefs-ui.cc:1168 msgid "Use custom font in Group Pane:" msgstr "Erabili letra-tipo pertsonalizatua taldearen panelean:" #: pan/gui/prefs-ui.cc:1173 msgid "Use custom font in Header Pane:" msgstr "Erabili letra-tipo pertsonalizatua goiburuen panelean:" #: pan/gui/prefs-ui.cc:1178 msgid "Use custom font in Body Pane:" msgstr "Erabili letra-tipo pertsonalizatua Gorputzaren panelean:" #: pan/gui/prefs-ui.cc:1183 msgid "Monospace font:" msgstr "Tarte bakarreko letra-tipoa:" #: pan/gui/prefs-ui.cc:1187 msgid "_Fonts" msgstr "_Letra-tipoak" #: pan/gui/prefs-ui.cc:1196 msgid "Header Pane" msgstr "Goiburuen panela" #: pan/gui/prefs-ui.cc:1199 pan/gui/prefs-ui.cc:1205 pan/gui/prefs-ui.cc:1211 #: pan/gui/prefs-ui.cc:1217 pan/gui/prefs-ui.cc:1223 pan/gui/prefs-ui.cc:1229 #: pan/gui/prefs-ui.cc:1238 pan/gui/prefs-ui.cc:1244 pan/gui/prefs-ui.cc:1250 #: pan/gui/prefs-ui.cc:1256 pan/gui/prefs-ui.cc:1262 pan/gui/prefs-ui.cc:1272 #: pan/gui/prefs-ui.cc:1282 msgid "Text:" msgstr "Testua:" #: pan/gui/prefs-ui.cc:1201 pan/gui/prefs-ui.cc:1207 pan/gui/prefs-ui.cc:1213 #: pan/gui/prefs-ui.cc:1219 pan/gui/prefs-ui.cc:1225 pan/gui/prefs-ui.cc:1231 #: pan/gui/prefs-ui.cc:1240 pan/gui/prefs-ui.cc:1246 pan/gui/prefs-ui.cc:1252 #: pan/gui/prefs-ui.cc:1258 pan/gui/prefs-ui.cc:1264 pan/gui/prefs-ui.cc:1274 #: pan/gui/prefs-ui.cc:1284 msgid "Background:" msgstr "Atzeko planoa:" #: pan/gui/prefs-ui.cc:1203 msgid "Scores of 9999 or more:" msgstr "9999 edo gehiagoko puntuazioak:" #: pan/gui/prefs-ui.cc:1209 msgid "Scores from 5000 to 9998:" msgstr "5000 eta 9998 bitarteko puntuazioak:" #: pan/gui/prefs-ui.cc:1215 msgid "Scores from 1 to 4999:" msgstr "1 eta 4999 bitarteko puntuazioak:" #: pan/gui/prefs-ui.cc:1221 msgid "Scores from -9998 to -1:" msgstr "-9998 eta -1 bitarteko puntuazioak:" #: pan/gui/prefs-ui.cc:1227 msgid "Scores of -9999 or less:" msgstr "-9999 edo txikiagoak diren puntuazioak:" #: pan/gui/prefs-ui.cc:1233 msgid "Collapsed thread with unread articles:" msgstr "Hari tolestua irakurri gabeko artikuluekin:" #: pan/gui/prefs-ui.cc:1235 msgid "Body Pane" msgstr "Gorputzaren panela" #: pan/gui/prefs-ui.cc:1242 msgid "First level of quoted text:" msgstr "Aipuaren testuen lehen maila:" #: pan/gui/prefs-ui.cc:1248 msgid "Second level of quoted text:" msgstr "Aipuaren testuaren bigarren maila:" #: pan/gui/prefs-ui.cc:1254 msgid "Third level of quoted text:" msgstr "Aipuaren testuen hirugarren maila:" #. #: pan/gui/prefs-ui.cc:1260 msgid "URL:" msgstr "URLa:" #. #: pan/gui/prefs-ui.cc:1266 msgid "Signature:" msgstr "Sinadura:" #: pan/gui/prefs-ui.cc:1269 msgid "Group Pane" msgstr "Taldearen panela" #. #: pan/gui/prefs-ui.cc:1276 msgid "Group Color:" msgstr "Taldearen kolorea:" #: pan/gui/prefs-ui.cc:1280 msgid "Other Text" msgstr "Beste testu bat" #: pan/gui/prefs-ui.cc:1286 msgid "Text Color:" msgstr "Testu-kolorea:" #: pan/gui/prefs-ui.cc:1289 msgid "_Colors" msgstr "_Koloreak" #: pan/gui/prefs-ui.cc:1289 msgid "Colors" msgstr "Koloreak" #: pan/gui/prefs-ui.cc:1294 msgid "Preferred Applications" msgstr "Hobetsitako aplikazioak" #: pan/gui/prefs-ui.cc:1298 msgid "_Web browser:" msgstr "_Web arakatzailea:" #: pan/gui/prefs-ui.cc:1301 msgid "_Mail reader:" msgstr "_Posta-irakurlea:" #: pan/gui/prefs-ui.cc:1303 msgid "_Text editor:" msgstr "_Testu-editorea:" #: pan/gui/prefs-ui.cc:1305 msgid "_HTML previewer:" msgstr "_HTML aurrebista:" #: pan/gui/prefs-ui.cc:1307 msgid "_Applications" msgstr "_Aplikagazioak" #: pan/gui/prefs-ui.cc:1307 msgid "Applications" msgstr "Aplikazioak" #: pan/gui/prefs-ui.cc:1312 pan/gui/task-pane.cc:556 msgid "Encoding" msgstr "Kodeketa" #: pan/gui/prefs-ui.cc:1316 msgid "Default bytes per file (for encoder): " msgstr "Byte kopuru lehenetsia fitxategiko (kodetzailerako): " #: pan/gui/prefs-ui.cc:1321 msgid "_Upload" msgstr "_Igo" #: pan/gui/prefs-ui.cc:1321 msgid "Upload" msgstr "Igo" #: pan/gui/prefs-ui.cc:1330 msgid "_Shortcuts" msgstr "Laster_bideak" #: pan/gui/prefs-ui.cc:1330 msgid "Shortcuts" msgstr "Lasterbideak" #: pan/gui/profiles-dialog.cc:83 msgid "Please choose your email address according to your PGP key's user id." msgstr "Aukeratu zure posta-helbidea zure PGP gakoaren erabiltzaile-IDaren arabera." #: pan/gui/profiles-dialog.cc:131 msgid "Posting Profile" msgstr "Bidalketa-profila" #: pan/gui/profiles-dialog.cc:143 msgid "Profile Information" msgstr "Profil-informazioa" #: pan/gui/profiles-dialog.cc:147 msgid "_Profile Name:" msgstr "_Profil-izena:" #: pan/gui/profiles-dialog.cc:150 msgid "Required Information" msgstr "Beharrezko informazioa" #: pan/gui/profiles-dialog.cc:154 msgid "_Full Name:" msgstr "_Izen-abizenak:" #: pan/gui/profiles-dialog.cc:158 msgid "" "Your email address.\n" "Note that this has to match your PGP signature's address\n" "if you want your messages to be PGP-signed or encrypted correctly." msgstr "Zure posta-helbidea.\n" "Kontuan izan zure PGP sinaduraren helbidearekin bat egin behar duela\n" "zure mezuek PGP sinadura edo zifratze zuzena eduki dezaten." #: pan/gui/profiles-dialog.cc:162 msgid "_Email Address:" msgstr "_Helbide elektronikoa:" #: pan/gui/profiles-dialog.cc:164 msgid "_Post Articles via:" msgstr "_Bidali artikuluak honen bidez:" #: pan/gui/profiles-dialog.cc:167 msgid "Signature" msgstr "Sinadura" #: pan/gui/profiles-dialog.cc:170 msgid "_Use a Signature" msgstr "_Erabili sinadura" #: pan/gui/profiles-dialog.cc:174 msgid "Signature File" msgstr "Sinadura-fitxategia" #: pan/gui/profiles-dialog.cc:184 msgid "Text File" msgstr "Testu-fitxategia" #: pan/gui/profiles-dialog.cc:186 msgid "Text" msgstr "Testua" #: pan/gui/profiles-dialog.cc:188 msgid "Command" msgstr "Komandoa" #: pan/gui/profiles-dialog.cc:191 msgid "PGP Signature" msgstr "PGP sinadura" #: pan/gui/profiles-dialog.cc:196 msgid "Signature Type: " msgstr "Sinadura mota: " #: pan/gui/profiles-dialog.cc:227 msgid "Avatars" msgstr "Avatarrak" #: pan/gui/profiles-dialog.cc:230 msgid "" "You can add an avatar icon to your articles with a Base64-encoded PNG.\n" "Add the Base64-encoded picture without the trailing “Face:”." msgstr "Avatar-ikono bat gehitu diezaiekezu zure artikuluei Base64 bidez kodetutako PNG bat erabilita.\n" "Gehitu Base64 bidez kodetutako irudia aurreko “Aurpegia:” gabe." #: pan/gui/profiles-dialog.cc:232 msgid "_Face:" msgstr "A_urpegia:" #: pan/gui/profiles-dialog.cc:236 msgid "" "You can add an avatar icon to your articles with a unique X-Face code.\n" "Add the code without the trailing \"X-Face:\" \n" " if it was generated by a helper program (for example http://www.dairiki.org/" "xface/xface.php)." msgstr "Avatar-ikono bat gehitu diezaiekezu zure artikuluei X-Face kode bakar baten bidez.\n" "Gehitu kodea aurreko “X-Face:” gabe, programa laguntzaile batekin\n" "sortu bazen (adibidez, http://www.dairiki.org/xface/xface.php) erabilita." #: pan/gui/profiles-dialog.cc:239 msgid "_X-Face:" msgstr "_X-Face:" #: pan/gui/profiles-dialog.cc:241 msgid "Optional Information" msgstr "Aukerako informazioa" #: pan/gui/profiles-dialog.cc:246 msgid "" "When posting to Usenet, your article's Message-ID contains a domain name.\n" "You can set a custom domain name here, or leave it blank to let Pan use the " "domain name from your email address." msgstr "Usenet batera mezua bidaltzean, zure artikuluaren IDak domeinu-izen bat du.\n" "Domeinu-izen pertsonalizatua ezarri daiteke hemen, edo hutsik utzi Pan aplikazioak zure posta-helbideko domeinu-izena erabili dezan." #: pan/gui/profiles-dialog.cc:249 msgid "Message-ID _Domain Name:" msgstr "_Mezuaren IDaren domeinu-izena:" #: pan/gui/profiles-dialog.cc:253 #, c-format msgid "" "%i for Message-ID\n" "%a for Author and Address\n" "%n for Author name\n" "%d for Date" msgstr "%i mezuaren IDa da\n" "%a egilea eta helbide elektronikoa da\n" "%n egilearen izena da\n" "%d data da" #: pan/gui/profiles-dialog.cc:254 msgid "_Attribution:" msgstr "_Atribuzioa:" #. Translators: Do not localize Reply-To and the quote marks in \"Your Name\". #: pan/gui/profiles-dialog.cc:279 msgid "" "Extra headers to be included in your articles, such as\n" "Reply-To: \"Your Name\" \n" "Organization: Your Organization\n" msgstr "Zure artikuluari erantsiko zaizkion goiburu gehigarriak, adibidez\n" "Erantzun honi: \"Zure izena\" \n" "Erakundea: Zure erakundea\n" #: pan/gui/profiles-dialog.cc:289 msgid "E_xtra Headers:" msgstr "A_parteko goiburuak:" #: pan/gui/profiles-dialog.cc:334 msgid "Invalid email address." msgstr "Helbide elektronikoa ez da baliozkoa." #: pan/gui/profiles-dialog.cc:335 msgid "Please use an address of the form joe@somewhere.org" msgstr "Erabili formatu honetako helbidea: izena@adibidea.org" #: pan/gui/profiles-dialog.cc:491 msgid "New Profile" msgstr "Profil berria" #: pan/gui/profiles-dialog.cc:537 msgid "Posting Profiles" msgstr "Bidalketa-profilak" #: pan/gui/profiles-dialog.cc:553 msgid "Profiles" msgstr "Profilak" #: pan/gui/save-attach-ui.cc:46 #, c-format msgid "" "%g - group as one directory (alt.binaries.pictures.trains)\n" "%G - group as nested directory (/alt/binaries/pictures/trains)\n" "%s - Subject line excerpt\n" "%S - Subject line\n" "%n - Poster display name\n" "%e - Poster email address\n" "%d - Article timestamp\n" "\"/home/user/News/Pan/%g\" becomes\n" "\"/home/user/News/Pan/alt.binaries.pictures.trains\", and\n" "\"/home/user/News/Pan/%G\" becomes\n" "\"/home/user/News/Pan/alt/binaries/pictures/trains\"," msgstr "%g - taldea direktorio baten moduan (alt.binaries.pictures.trains)\n" "%G - taldea habiaratutako direktorio gisa (/alt/binaries/pictures/trains)\n" "%s - Gaiaren laburpena\n" "%S - Gaia\n" "%n - Bidaltzailearen pantailako izena\n" "%e - Bidaltzailearen posta-helbidea\n" "%d - Artikuluaren denbora-zigilua\n" "\"/home/user/News/Pan/%g\" honakoa bihurtzen da:\n" "\"/home/user/News/Pan/alt.binaries.pictures.trains\", eta\n" "\"/home/user/News/Pan/%G\" honakoa bihurtzen da:\n" "\"/home/user/News/Pan/alt/binaries/pictures/trains\"," #: pan/gui/save-attach-ui.cc:198 pan/gui/save-ui.cc:218 msgid "Add to the queue sorted by date posted" msgstr "Gehitu ilaran, bidalketa-dataren arabera ordenatuta" #: pan/gui/save-attach-ui.cc:199 pan/gui/save-ui.cc:219 msgid "Add to the front of the queue" msgstr "Gehitu ilararen aurrealdean" #: pan/gui/save-attach-ui.cc:200 pan/gui/save-ui.cc:220 msgid "Add to the back of the queue" msgstr "Gehitu ilararen atzealdean" #: pan/gui/save-attach-ui.cc:232 msgid "Pan: Save Attachments" msgstr "Pan: Gorde eranskinak" #: pan/gui/save-attach-ui.cc:257 pan/gui/save-attach-ui.cc:275 #: pan/gui/save-ui.cc:272 pan/gui/save-ui.cc:293 msgid "_Location:" msgstr "_Helbidea:" #: pan/gui/save-attach-ui.cc:261 pan/gui/save-ui.cc:276 msgid "Save Articles" msgstr "Gorde artikuluak" #: pan/gui/save-attach-ui.cc:278 pan/gui/save-ui.cc:296 #, c-format msgid "_Group's path: %s" msgstr "_Taldearen bide-izena: %s" #: pan/gui/save-attach-ui.cc:289 pan/gui/save-ui.cc:311 msgid "_Priority:" msgstr "_Lehentasuna:" #: pan/gui/save-ui.cc:46 #, c-format msgid "" "%g - group as one directory (alt.binaries.pictures.trains)\n" "%G - group as nested directory (/alt/binaries/pictures/trains)\n" "%s - subject line excerpt\n" "%S - subject line\n" "%n - Poster display name\n" "%e - Poster email address\n" "%d - Article timestamp\n" " \n" "\"/home/user/News/Pan/%g\" becomes\n" "\"/home/user/News/Pan/alt.binaries.pictures.trains\", and\n" "\"/home/user/News/Pan/%G\" becomes\n" "\"/home/user/News/Pan/alt/binaries/pictures/trains\"," msgstr "%g - taldea direktorio baten moduan (alt.binaries.pictures.trains)\n" "%G - taldea habiaratutako direktorio gisa (/alt/binaries/pictures/trains)\n" "%s - Gaiaren laburpena\n" "%S - Gaia\n" "%n - Bidaltzailearen pantailako izena\n" "%e - Bidaltzailearen posta-helbidea\n" "%d - Artikuluaren denbora-zigilua\n" "\n" "\"/home/user/News/Pan/%g\" honakoa bihurtzen da:\n" "\"/home/user/News/Pan/alt.binaries.pictures.trains\", eta\n" "\"/home/user/News/Pan/%G\" honakoa bihurtzen da:\n" "\"/home/user/News/Pan/alt/binaries/pictures/trains\"," #: pan/gui/save-ui.cc:209 msgid "Save attachments" msgstr "Gorde eranskinak" #: pan/gui/save-ui.cc:210 msgid "Save text" msgstr "Gorde testua" #: pan/gui/save-ui.cc:211 msgid "Save attachments and text" msgstr "Gorde eranskinak eta testua" #: pan/gui/save-ui.cc:247 msgid "Pan: Save Articles" msgstr "Pan: Gorde artikuluak" #: pan/gui/save-ui.cc:307 msgid "_Action:" msgstr "_Ekintza:" #: pan/gui/score-add-ui.cc:89 msgid "is more than" msgstr "hau baino handiagoa da:" #: pan/gui/score-add-ui.cc:90 msgid "is at most" msgstr "gehienez hau da:" #: pan/gui/score-add-ui.cc:112 msgid "increase the article's score by" msgstr "handitu artikuluaren puntuazioa honenbeste:" #: pan/gui/score-add-ui.cc:113 msgid "decrease the article's score by" msgstr "txikitu artikuluaren puntuazioa honenbeste:" #: pan/gui/score-add-ui.cc:114 msgid "set the article's score to" msgstr "ezarri artikuluaren puntuazioa honela:" #: pan/gui/score-add-ui.cc:115 msgid "watch the article (set its score to 9999)" msgstr "behatu artikulua (ezarri 9999 puntuazioa)" #: pan/gui/score-add-ui.cc:116 msgid "ignore the article (set its score to -9999)" msgstr "ez ikusi egin artikuluari (ezarri -9999 puntuazioa)" #: pan/gui/score-add-ui.cc:141 msgid "References" msgstr "Erreferentziak" #: pan/gui/score-add-ui.cc:142 msgid "Line Count" msgstr "Lerro kopurua" #: pan/gui/score-add-ui.cc:143 msgid "Byte Count" msgstr "Byte kopurua" #: pan/gui/score-add-ui.cc:144 msgid "Crosspost Group Count" msgstr "Crosspost taldeen kopurua" #: pan/gui/score-add-ui.cc:145 msgid "Age (in days)" msgstr "Adina (egunetan)" #: pan/gui/score-add-ui.cc:167 msgid "for the next month" msgstr "hurrengo hilabeterako" #: pan/gui/score-add-ui.cc:168 msgid "for the next six months" msgstr "hurrengo sei hilabeteetarako" #: pan/gui/score-add-ui.cc:169 msgid "forever" msgstr "betiko" #: pan/gui/score-add-ui.cc:194 msgid "contains" msgstr "hau dauka" #: pan/gui/score-add-ui.cc:195 msgid "doesn't contain" msgstr "ez dauka" #: pan/gui/score-add-ui.cc:196 msgid "is" msgstr "da" #: pan/gui/score-add-ui.cc:197 msgid "isn't" msgstr "ez da" #: pan/gui/score-add-ui.cc:198 msgid "starts with" msgstr "honela hasten da" #: pan/gui/score-add-ui.cc:199 msgid "ends with" msgstr "honela amaitzen da" #: pan/gui/score-add-ui.cc:200 msgid "matches regex" msgstr "bat dator adierazpen erregularrarekin" #: pan/gui/score-add-ui.cc:481 msgid "Another rule already sets this article's score." msgstr "Beste arau batek dagoeneko artikulu honen puntuazioa ezarri du." #: pan/gui/score-add-ui.cc:482 msgid "You may want to go back or delete the old rule." msgstr "Beharbada atzera joan nahiko duzu, edo arau zaharra ezabatu." #: pan/gui/score-add-ui.cc:484 msgid "Back" msgstr "Atzera" #: pan/gui/score-add-ui.cc:485 pan/gui/task-pane.cc:1045 msgid "Delete" msgstr "Ezabatu" #: pan/gui/score-add-ui.cc:486 pan/gui/score-add-ui.cc:607 #: pan/gui/score-view-ui.cc:208 msgid "Add" msgstr "Gehitu" #: pan/gui/score-add-ui.cc:553 msgid "Add and Re_score" msgstr "_Gehitu eta puntuatu berriro" #: pan/gui/score-add-ui.cc:602 pan/gui/score-add-ui.cc:622 msgid "New Scoring Rule" msgstr "Puntuatzeko arau berria" #: pan/gui/score-add-ui.cc:606 pan/gui/task-pane.cc:310 msgid "Cancel" msgstr "Utzi" #: pan/gui/score-add-ui.cc:633 msgid "Group name" msgstr "Taldearen izena" #: pan/gui/score-add-ui.cc:640 msgid "and" msgstr "eta" #: pan/gui/score-view-ui.cc:56 msgid "Close and Re_score" msgstr "_Itxi eta puntuatu berriro" #: pan/gui/score-view-ui.cc:154 #, c-format msgid "File %s, Lines %d - %d" msgstr "%s fitxategia, %d - %d lerroak" #: pan/gui/score-view-ui.cc:182 msgid "Pan: Article's Scores" msgstr "Pan: Artikuluen puntuazioak" #: pan/gui/score-view-ui.cc:213 msgid "New Score" msgstr "Puntuazio berria" #: pan/gui/score-view-ui.cc:218 msgid "Criteria" msgstr "Irizpideak" #: pan/gui/score-view-ui.cc:241 msgid "Add a New Scoring Rule" msgstr "Gehitu puntuatzeko arau berria" #: pan/gui/score-view-ui.cc:248 msgid "Remove the Selected Scoring Rule" msgstr "Kendu hautatutako puntuatzeko araua" #: pan/gui/server-ui.cc:284 msgid "Please specify the server's address." msgstr "Zehaztu zerbitzariaren helbidea." #: pan/gui/server-ui.cc:330 msgid "Import SSL Certificate (PEM Format) From File" msgstr "Inportatu SSL ziurtagiria (PEM formatua) fitxategitik" #. create the dialog #: pan/gui/server-ui.cc:367 pan/gui/server-ui.cc:982 msgid "Add a Server" msgstr "Gehitu zerbitzaria" #: pan/gui/server-ui.cc:367 pan/gui/server-ui.cc:988 msgid "Edit a Server's Settings" msgstr "Editatu zerbitzariaren ezarpenak" #: pan/gui/server-ui.cc:387 msgid "Location" msgstr "Kokalekua" #: pan/gui/server-ui.cc:391 msgid "The news server's actual address, e.g. \"news.mynewsserver.com\"." msgstr "Berri-zerbitzariaren uneko helbidea, adib. \"berriak.nirezerbitzaria.com\"." #: pan/gui/server-ui.cc:392 msgid "_Address:" msgstr "Helbi_dea:" #: pan/gui/server-ui.cc:397 msgid "" "The news server's port number. Typically 119 for unencrypted and 563 for " "encrypted connections (SSL/TLS)." msgstr "Zerbitzari berriaren ataka-zenbakia. Normalean 119 izaten da zifratu gabeko konexioetan eta 563 zifratuetan (SSL/TLS)." #: pan/gui/server-ui.cc:398 msgid "Por_t:" msgstr "_Ataka:" #: pan/gui/server-ui.cc:401 msgid "Login (if Required)" msgstr "Saio-hasiera (beharrezkoa bada)" #: pan/gui/server-ui.cc:405 msgid "_Username:" msgstr "_Erabiltzaile-izena:" #: pan/gui/server-ui.cc:406 msgid "" "The username to give the server when asked. If your server doesn't require " "authentication, you can leave this blank." msgstr "Zerbitzariari emango zaion erabiltzaile-izena, eskatzen duenean. Zure zerbitzariak ez badu autentifikaziorik behar, hau hutsik utzi daiteke." #: pan/gui/server-ui.cc:410 msgid "_Password:" msgstr "_Pasahitza:" #: pan/gui/server-ui.cc:411 msgid "" "The password to give the server when asked. If your server doesn't require " "authentication, you can leave this blank." msgstr "Zerbitzariari emango zaion pasahitza, eskatzen duenean. Zure zerbitzariak ez badu autentifikaziorik behar, hau hutsik utzi daiteke." #: pan/gui/server-ui.cc:414 msgid "Settings" msgstr "Ezarpenak" #: pan/gui/server-ui.cc:421 msgid "Connection _Limit:" msgstr "Ko_nexio-muga:" #: pan/gui/server-ui.cc:425 msgid "After Two Weeks" msgstr "Bi asteren ondoren" #: pan/gui/server-ui.cc:426 msgid "After One Month" msgstr "Hilabeteren ondoren" #: pan/gui/server-ui.cc:427 msgid "After Two Months" msgstr "Bi hilabeteren ondoren" #: pan/gui/server-ui.cc:428 msgid "After Three Months" msgstr "Hiru hilabeteren ondoren" #: pan/gui/server-ui.cc:429 msgid "After Six Months" msgstr "Sei hilabeteren ondoren" #: pan/gui/server-ui.cc:430 msgid "Never Expire Old Articles" msgstr "Inoiz ez iraungi artikulu zaharrak" #: pan/gui/server-ui.cc:444 msgid "E_xpire Old Articles:" msgstr "I_raungi artikulu zaharrak:" #: pan/gui/server-ui.cc:448 msgid "Primary" msgstr "Nagusia" #: pan/gui/server-ui.cc:449 msgid "Fallback" msgstr "Erreserba" #: pan/gui/server-ui.cc:463 msgid "Server Rank:" msgstr "Zerbitzari-heina:" #: pan/gui/server-ui.cc:467 msgid "" "Fallback servers are used for articles that can't be found on the " "primaries. One common approach is to use free servers as primaries and " "subscription servers as fallbacks." msgstr "Ordezko zerbitzariak zerbitzari nagusietan aurkitu ez diren artikuluetarako erabiltzen dira. Normalean, erabili zerbitzari libreak nagusi gisa eta harpidetza bidezkoak ordezko gisa." #: pan/gui/server-ui.cc:472 msgid "Disable Compression (N/A)" msgstr "Desgaitu konpresioa (E/E)" #: pan/gui/server-ui.cc:473 msgid "XZVER Compression (Astraweb)" msgstr "XZVER konprezioa (Astraweb)" #: pan/gui/server-ui.cc:474 msgid "GZIP Compression (Giganews etc.)" msgstr "GZIP konpresioa (Giganews etab.)" #: pan/gui/server-ui.cc:488 msgid "Header Compression:" msgstr "Goiburu-konpresioa:" #: pan/gui/server-ui.cc:494 msgid "Security" msgstr "Segurtasuna" #: pan/gui/server-ui.cc:499 msgid "Use Unsecure (Plaintext) Connections" msgstr "Erabili seguruak ez diren konexioak (testu soilekoak)" #: pan/gui/server-ui.cc:500 msgid "Use Secure SSL Connections" msgstr "Erabili SSL konexio seguruak" #: pan/gui/server-ui.cc:515 msgid "TLS (SSL) Settings:" msgstr "TLS (SSL) ezarpenak:" #: pan/gui/server-ui.cc:520 msgid "" "You can enable/disable secure SSL/TLS connections here. If you enable SSL/" "TLS, your data is encrypted and secure. It is encouraged to enable SSL/TLS " "for privacy reasons." msgstr "Hemen SSL/TLS konexio seguruak gaitu/desgaitu daitezke. SSL/TLS gaitzen bada, datuak zifratuko dira eta seguru egongo dira. SSL/TLS gaitzea gomendatzen da, pribatutasuna hobetzeko." #: pan/gui/server-ui.cc:525 msgid "Always trust this server's certificate" msgstr "Fidatu beti zerbitzari honen ziurtagiriez" #: pan/gui/server-ui.cc:710 #, c-format msgid "Really delete \"%s\"?" msgstr "\"%s\" ezabatu nahi duzu?" #: pan/gui/server-ui.cc:799 msgid "No information available." msgstr "Ez dago informaziorik eskuragarri." #: pan/gui/server-ui.cc:809 #, c-format msgid "Server Certificate for '%s'" msgstr "'%s'(e)rako zerbitzari-ziurtagiria" #: pan/gui/server-ui.cc:908 #, c-format msgid "Really delete certificate for \"%s\"?" msgstr "Benetan ezabatu \"%s\"(e)rako ziurtagiria?" #. dialog #: pan/gui/server-ui.cc:935 pan/gui/server-ui.cc:956 pan/gui/server-ui.cc:1054 msgid "Servers" msgstr "Zerbitzariak" #: pan/gui/server-ui.cc:995 msgid "Remove a Server" msgstr "Kendu zerbitzaria" #. dialog #: pan/gui/server-ui.cc:1028 msgid "SSL Certificates" msgstr "SSL ziurtagiriak" #: pan/gui/server-ui.cc:1049 msgid "Certificates" msgstr "Ziurtagiriak" #: pan/gui/server-ui.cc:1080 msgid "Import Certificate" msgstr "Inportatu ziurtagiria" #: pan/gui/server-ui.cc:1086 msgid "Inspect Certificate" msgstr "Ikuskatu ziurtagiria" #: pan/gui/server-ui.cc:1093 msgid "Remove Certificate" msgstr "Kendu ziurtagiria" #: pan/gui/task-pane.cc:125 #, c-format msgid "" "\n" "Upload\n" "\n" "Subject: \"%s\"\n" "From: %s\n" "Groups: %s\n" "Sourcefile: %s\n" msgstr "\n" "Kargatu\n" "\n" "Gaia: “%s”\n" "Nork: %s\n" "Taldeak: %s\n" "Iturburu-fitxategia: %s\n" #: pan/gui/task-pane.cc:137 #, c-format msgid "" "\n" "Download\n" "\n" "Subject: \"%s\"\n" "From: %s\n" "Date: %s\n" "Groups: %s\n" "Save Path: %s\n" msgstr "\n" "Deskargatu\n" "\n" "Gaia: “%s”\n" "Nork: %s\n" "Data: %s\n" "Taldeak: %s\n" "Gordetzeko bide-izena: %s\n" #: pan/gui/task-pane.cc:139 msgid "unknown" msgstr "ezezaguna" #: pan/gui/task-pane.cc:307 msgid "Choose New Destination for Selected Tasks" msgstr "Aukeratu helburu berria hautatutako zereginetarako" #: pan/gui/task-pane.cc:311 msgid "Save" msgstr "Gorde" #: pan/gui/task-pane.cc:461 #, c-format msgid "Pan: Tasks (%d Queued, %d Running, %d Stopped)" msgstr "Pan: atazak (%d ilaran, %d exekutatzen, %d geldiarazita)" #: pan/gui/task-pane.cc:463 #, c-format msgid "Pan: Tasks (%d Queued, %d Running)" msgstr "Pan: atazak (%d ilaran, %d exekutatzen)" #: pan/gui/task-pane.cc:465 msgid "Pan: Tasks" msgstr "Pan: atazak" #: pan/gui/task-pane.cc:490 #, c-format msgid "%lu selected, %s" msgstr "%lu hautatuta, %s" #: pan/gui/task-pane.cc:554 msgid "Running" msgstr "Exekutatzen" #: pan/gui/task-pane.cc:555 msgid "Decoding" msgstr "Deskodetzen" #: pan/gui/task-pane.cc:557 msgid "Queued for Decode" msgstr "Ilaran deskodetzeko" #: pan/gui/task-pane.cc:558 msgid "Queued for Encode" msgstr "Ilaran kodetzeko" #: pan/gui/task-pane.cc:559 msgid "Queued" msgstr "Ilaran" #: pan/gui/task-pane.cc:560 msgid "Stopped" msgstr "Geldituta" #: pan/gui/task-pane.cc:561 msgid "Removing" msgstr "Kentzen" #: pan/gui/task-pane.cc:590 #, c-format msgid "%d%% Done" msgstr "%% %d eginda" #: pan/gui/task-pane.cc:596 #, c-format msgid "%d:%02d:%02d Remaining (%d @ %lu KiB/s)" msgstr "%d:%02d:%02d falta (%d @ %lu KiB/s)" #: pan/gui/task-pane.cc:691 pan/gui/task-pane.cc:692 msgid "Move To Top" msgstr "Eraman goraino" #: pan/gui/task-pane.cc:696 pan/gui/task-pane.cc:697 msgid "Move To Bottom" msgstr "Eraman beheraino" #: pan/gui/task-pane.cc:701 pan/gui/task-pane.cc:702 msgid "Show Task Information" msgstr "Erakutsi zereginaren informazioa" #: pan/gui/task-pane.cc:706 pan/gui/task-pane.cc:707 msgid "Stop Task" msgstr "Gelditu zeregina" #: pan/gui/task-pane.cc:711 pan/gui/task-pane.cc:712 msgid "Delete Task" msgstr "Ezabatu zeregina" #: pan/gui/task-pane.cc:716 pan/gui/task-pane.cc:717 msgid "Restart Task" msgstr "Berrabiarazi zeregina" #: pan/gui/task-pane.cc:721 pan/gui/task-pane.cc:722 msgid "Change Download Destination" msgstr "Aldatu deskargaren helmuga" #: pan/gui/task-pane.cc:1021 msgid "_Online" msgstr "_Linean" #: pan/gui/task-pane.cc:1031 msgid "Move up" msgstr "Eraman gora" #: pan/gui/task-pane.cc:1032 msgid "Move task up" msgstr "Eraman zeregina gora" #: pan/gui/task-pane.cc:1033 msgid "Move to top" msgstr "Eraman goraino" #: pan/gui/task-pane.cc:1034 msgid "Move task to top of the download queue" msgstr "Goratu zeregina deskargen ilararen goraino" #: pan/gui/task-pane.cc:1036 msgid "Move down" msgstr "Eraman behera" #: pan/gui/task-pane.cc:1037 msgid "Move task down" msgstr "Eraman zeregina behera" #: pan/gui/task-pane.cc:1038 msgid "Move to bottom" msgstr "Eraman beheraino" #: pan/gui/task-pane.cc:1039 msgid "Move task to the bottom of the download queue" msgstr "Beheratu zeregina deskargen ilararen beheraino" #: pan/gui/task-pane.cc:1041 msgid "Restart" msgstr "Berrabiarazi" #: pan/gui/task-pane.cc:1042 msgid "Restart Tasks" msgstr "Berrabiarazi atazak" #: pan/gui/task-pane.cc:1043 msgid "Stop" msgstr "Gelditu" #: pan/gui/task-pane.cc:1044 msgid "Stop Tasks" msgstr "Gelditu atazak" #: pan/gui/task-pane.cc:1046 msgid "Delete Tasks" msgstr "Ezabatu atazak" #: pan/gui/task-pane.cc:1048 msgid "Close" msgstr "Itxi" #: pan/gui/task-pane.cc:1052 msgid "Show popups" msgstr "Erakutsi laster-menuak" #: pan/gui/url.cc:121 #, c-format msgid "Error starting URL: %s (Command was: %s)" msgstr "Errorea URLa abiaraztean: %s (komandoa: %s)" #: pan/tasks/decoder.cc:126 #, c-format msgid "Couldn't save file \"%s\": %s" msgstr "Ezin da \"%s\" fitxategia gorde: %s" #: pan/tasks/decoder.cc:148 pan/tasks/encoder.cc:146 msgid "Error initializing uulib" msgstr "Errorea uulib hasieratzean" #: pan/tasks/decoder.cc:168 pan/tasks/socket-impl-gio.cc:360 #: pan/tasks/socket-impl-openssl.cc:641 #, c-format msgid "Error reading from %s: %s" msgstr "Errorea %s(e)tik irakurtzean: %s" #: pan/tasks/decoder.cc:208 #, c-format msgid "Saved \"%s\"" msgstr "\"%s\" gorde da" #: pan/tasks/decoder.cc:215 #, c-format msgid "" "Error saving \"%s\":\n" "%s." msgstr "Errorea \"%s\" gordetzean:\n" "%s." #: pan/tasks/decoder.cc:328 pan/tasks/task-article.cc:351 #, c-format msgid "Decoding %s" msgstr "%s deskodetzen" #: pan/tasks/encoder.cc:113 pan/tasks/encoder.cc:164 #, c-format msgid "Error loading %s from cache." msgstr "Errorea %s cachetik kargatzean." #: pan/tasks/encoder.cc:186 #, c-format msgid "Error encoding %s: %s" msgstr "Errorea %s kodetzean: %s" #: pan/tasks/encoder.cc:276 #, c-format msgid "Encoding %s" msgstr "%s kodetzen" #: pan/tasks/nntp.cc:176 #, c-format msgid "%s requires a username, but none is set." msgstr "%s(e)k erabiltzaile-izena behar du, baina ez dago ezarrita." #: pan/tasks/nntp.cc:189 #, c-format msgid "%s requires a password, but none is set." msgstr "%s(e)k pasahitza behar du, baina ez dago ezarrita." #: pan/tasks/nntp.cc:275 #, c-format msgid "Sending \"%s\" to %s returned an error: %s" msgstr "\"%s\" bidali zaio %s hartzaileari eta errorea itzuli du: %s" #: pan/tasks/nntp.cc:298 #, c-format msgid "Sending \"%s\" to %s returned an unrecognized response: \"%s\"" msgstr "\"%s\" bidali zaio %s hartzaileari eta ezagutzen ez den erantzuna eman du: \"%s\"" #: pan/tasks/nntp-pool.cc:235 #, c-format msgid "Unable to connect to \"%s\"" msgstr "Ezin da \"%s\"(r)ekin konektatu:" #: pan/tasks/queue.cc:778 pan/tasks/queue.cc:806 pan/tasks/queue.cc:833 msgid "No space left on device." msgstr "Ez dago leku librerik gailuan." #: pan/tasks/socket-impl-gio.cc:173 pan/tasks/socket-impl-gio.cc:211 #: pan/tasks/socket-impl-openssl.cc:213 pan/tasks/socket-impl-openssl.cc:251 #, c-format msgid "Error connecting to \"%s\"" msgstr "Errorea %s(r)ekin konektatzean" #: pan/tasks/socket-impl-gio.cc:359 pan/tasks/socket-impl-openssl.cc:640 msgid "Unknown Error" msgstr "Errore ezezaguna" #: pan/tasks/task-article.cc:59 pan/tasks/task-article.cc:157 #, c-format msgid "Saving %s" msgstr "%s gordetzen" #: pan/tasks/task-article.cc:61 #, c-format msgid "Reading %s" msgstr "%s irakurtzen" #: pan/tasks/task-article.cc:323 #, c-format msgid "Article \"%s\" is incomplete -- the news server(s) don't have part %s" msgstr "\"%s\" artikulua ez dago osatuta -- berri-zerbitzariek ez dute %s atala" #: pan/tasks/task-groups.cc:41 #, c-format msgid "Getting group list from \"%s\"" msgstr "Talde-zerrenda eskuratzen \"%s\"(e)tik" #: pan/tasks/task-groups.cc:134 #, c-format msgid "Fetched %lu Groups" msgstr "%lu talde lortu dira" #: pan/tasks/task-post.cc:33 #, c-format msgid "Posting \"%s\"" msgstr "\"%s\" bidaltzen" #: pan/tasks/task-post.cc:74 #, c-format msgid "Posting of \"%s\" failed: %s" msgstr "\"%s\" bidaltzeak huts egin du: %s" #: pan/tasks/task-post.cc:79 #, c-format msgid "Posting of \"%s\" successful: %s" msgstr "\"%s\" bidaltzea ongi osatu da: %s" #: pan/tasks/task-upload.cc:55 #, c-format msgid "Uploading %s" msgstr "%s kargatzen" #: pan/tasks/task-upload.cc:249 #, c-format msgid "Uploading %s - Part %d of %d" msgstr "%s kargatzen - %d / %d" #: pan/tasks/task-upload.cc:251 #, c-format msgid "Uploading message body with subject \"%s\"" msgstr "\"%s\" gaia duen mezu-gorputza igotzen" #: pan/tasks/task-upload.cc:308 #, c-format msgid "Posting of file %s (part %d of %d) failed: No posts allowed by server." msgstr "%s fitxategia bidaltzeak (%d / %d zatia) huts egin du: Zerbitzariak ez du bidalketarik onartzen." #: pan/tasks/task-upload.cc:317 #, c-format msgid "Posting of file %s (part %d of %d) failed: %s" msgstr "%s fitxategia bidaltzeak (%d / %d zatia) huts egin du: %s" #: pan/tasks/task-upload.cc:328 pan/tasks/task-upload.cc:335 #, c-format msgid "Posting of file %s (part %d of %d) successful: %s" msgstr "%s fitxategia bidaltzea (%d / %d zatia) ongi gauzatu da: %s" #: pan/tasks/task-upload.cc:345 #, c-format msgid "Posting of file %s successful: %s" msgstr "%s fitxategia bidaltzea ongi gauzatu da: %s" #: pan/tasks/task-upload.cc:349 #, c-format msgid "" "Posting of file %s not completely successful: Check the log (right-click " "list item)." msgstr "%s fitxategia bidaltzea ez da guztik ongi gauzatu: Begiratu egunkaria (eskuineko klik zerrenda-elementuan)." #: pan/tasks/task-upload.cc:368 #, c-format msgid "" "Posting of file %s not successful: Check the log (right-click list item)." msgstr "%s fitxategia ez da ongi gauzatu: Begiratu egunkaria (eskuineko klik zerrenda-elementuan)." #: pan/tasks/task-xover.cc:82 #, c-format msgid "Getting all headers for \"%s\"" msgstr "\"%s\"(r)en goiburu guztiak eskuratzen" #: pan/tasks/task-xover.cc:85 #, c-format msgid "Getting new headers for \"%s\"" msgstr "\"%s\"(r)en goiburu berriak eskuratzen" #. SAMPLE #: pan/tasks/task-xover.cc:89 #, c-format msgid "Sampling headers for \"%s\"" msgstr "\"%s\"(r)en goiburuak lagintzen" #: pan/tasks/task-xover.cc:454 #, c-format msgid "%s (%lu parts, %lu articles)" msgstr "%s (%lu zati, %lu artikulu)" #: pan/tasks/task-xover.cc:528 #, c-format msgid "Getting new headers for \"%s\" done." msgstr "\"%s\"(r)en goiburu berriak eskuratzea osatu da." #: pan/usenet-utils/filter-info.cc:215 msgid "article doesn't have attachments" msgstr "artikuluak ez du eranskinik" #: pan/usenet-utils/filter-info.cc:219 msgid "the article has attachments" msgstr "artikuluak eranskinak ditu" #: pan/usenet-utils/filter-info.cc:223 msgid "the article isn't cached locally" msgstr "artikulua ez dago cache lokalean" #: pan/usenet-utils/filter-info.cc:227 msgid "the article is cached locally" msgstr "artikulua cache lokalean dago" #: pan/usenet-utils/filter-info.cc:231 msgid "the article wasn't posted by you" msgstr "artikulua ez duzu zuk bidali" #: pan/usenet-utils/filter-info.cc:235 msgid "the article was posted by you" msgstr "artikulua zuk bidalitakoa da" #: pan/usenet-utils/filter-info.cc:239 msgid "the article has been read" msgstr "artikulua irakurrita dago" #: pan/usenet-utils/filter-info.cc:243 msgid "the article hasn't been read" msgstr "artikulua ez da irakurri" #: pan/usenet-utils/filter-info.cc:247 #, c-format msgid "the article is less than %ld bytes long" msgstr "artikuluak %ld byte baino gutxiago ditu" #: pan/usenet-utils/filter-info.cc:252 #, c-format msgid "the article is at least %ld bytes long" msgstr "artikuluak %ld byte ditu gutxienez" #: pan/usenet-utils/filter-info.cc:257 #, c-format msgid "the article is less than %ld lines long" msgstr "artikuluak %ld lerro baino gutxiago ditu" #: pan/usenet-utils/filter-info.cc:262 #, c-format msgid "the article is at least %ld lines long" msgstr "artikuluak %ld lerro ditu gutxienez" #: pan/usenet-utils/filter-info.cc:267 #, c-format msgid "the article is less than %ld days old" msgstr "artikuluak %ld egun baino gutxiago ditu" #: pan/usenet-utils/filter-info.cc:272 #, c-format msgid "the article is at least %ld days old" msgstr "artikuluak %ld egun ditu gutxienez" #: pan/usenet-utils/filter-info.cc:277 #, c-format msgid "the article was posted to less than %ld groups" msgstr "artikulua %ld talderi baino gutxiagori bidali zaie" #: pan/usenet-utils/filter-info.cc:282 #, c-format msgid "the article was posted to at least %ld groups" msgstr "artikulua %ld talderi bidali zaie gutxienez" #: pan/usenet-utils/filter-info.cc:287 #, c-format msgid "the article's score is less than %ld" msgstr "artikuluaren puntuazioa %ld baino baxuagoa da" #: pan/usenet-utils/filter-info.cc:292 #, c-format msgid "the article's score is %ld or higher" msgstr "artikuluaren puntuazioa %ld baino altuagoa da" #: pan/usenet-utils/filter-info.cc:301 pan/usenet-utils/filter-info.cc:311 #, c-format msgid "%s doesn't contain \"%s\"" msgstr "%s elementuak ez du \"%s\"" #: pan/usenet-utils/filter-info.cc:302 pan/usenet-utils/filter-info.cc:312 #, c-format msgid "%s isn't \"%s\"" msgstr "%s ez da \"%s\"" #: pan/usenet-utils/filter-info.cc:303 pan/usenet-utils/filter-info.cc:313 #, c-format msgid "%s doesn't begin with \"%s\"" msgstr "%s ez da hasten honekin: \"%s\"" #: pan/usenet-utils/filter-info.cc:304 pan/usenet-utils/filter-info.cc:314 #, c-format msgid "%s doesn't end with \"%s\"" msgstr "%s ez da amaitzen honekin: \"%s\"" #: pan/usenet-utils/filter-info.cc:305 pan/usenet-utils/filter-info.cc:315 #, c-format msgid "%s doesn't match the regex \"%s\"" msgstr "%s ez dator bat \"%s\" adierazpen erregularrarekin" #: pan/usenet-utils/filter-info.cc:327 #, c-format msgid "%s contains \"%s\"" msgstr "%s elementuak \"%s\" du" #: pan/usenet-utils/filter-info.cc:328 #, c-format msgid "%s is \"%s\"" msgstr "%s \"%s\" da" #: pan/usenet-utils/filter-info.cc:329 #, c-format msgid "%s begins with \"%s\"" msgstr "%s honekin hasten da: \"%s\"" #: pan/usenet-utils/filter-info.cc:330 #, c-format msgid "%s ends with \"%s\"" msgstr "%s honekin amaitzen da: \"%s\"" #: pan/usenet-utils/filter-info.cc:331 #, c-format msgid "%s matches the regex \"%s\"" msgstr "%s bat dator \"%s\" adierazpen erregularrarekin" #: pan/usenet-utils/filter-info.cc:337 msgid "Any of these tests fail:" msgstr "Proba hauetako edozeinek huts egiten du:" #: pan/usenet-utils/filter-info.cc:344 msgid "All of these tests pass:" msgstr "Proba hauek guztiek pasatzen dute:" #: pan/usenet-utils/filter-info.cc:351 msgid "None of these tests pass:" msgstr "Proba hauetako batek ere ez du pasatzen:" #: pan/usenet-utils/filter-info.cc:358 msgid "Any of these tests pass:" msgstr "Proba hauetako edozeinek pasatzen du:" #: pan/usenet-utils/gnksa.cc:880 #, c-format msgid "No email address provided; generating message-id with domain \"%s\"" msgstr "Ez da posta-helbiderik eman; mezuaren IDa \"%s\" domeinuarekin sortzen" #: pan/usenet-utils/message-check.cc:122 msgid "Warning: Reply seems to be top-posted." msgstr "Abisua: badirudi erantzuna bidalita dagoela lehendik." #: pan/usenet-utils/message-check.cc:143 msgid "Warning: The signature marker should be \"-- \", not \"--\"." msgstr "Abisua: Sinadura-markatzaileak \"-- \" izan behar du, ez \"--\"." #: pan/usenet-utils/message-check.cc:160 msgid "Warning: Signature prefix with no signature." msgstr "Abisua: sinadura-aurrizkiak ez du sinadurarik." #: pan/usenet-utils/message-check.cc:165 msgid "Warning: Signature is more than 4 lines long." msgstr "Abisua: sinadurak 4 lerro baino gehiago ditu." #: pan/usenet-utils/message-check.cc:170 msgid "Warning: Signature is more than 80 characters wide." msgstr "Abisua: sinadurak 80 karaktere baino gehiago ditu." #: pan/usenet-utils/message-check.cc:196 #, c-format msgid "Warning: %d line is more than 80 characters wide." msgid_plural "Warning: %d lines are more than 80 characters wide." msgstr[0] "Abisua: lerro %dek 80 karaktere baino gehiago ditu." msgstr[1] "Abisua %d lerrok 80 karaktere baino gehiago ditu." #: pan/usenet-utils/message-check.cc:221 msgid "Error: Message is empty." msgstr "Errorea: mezua hutsik dago." #: pan/usenet-utils/message-check.cc:256 msgid "Warning: The message is entirely quoted text!" msgstr "Abisua: mezu osoa komatxo artean dago" #: pan/usenet-utils/message-check.cc:257 msgid "Warning: The message is mostly quoted text." msgstr "Abisua: mezuaren testurik gehiena komatxo artean dago." #: pan/usenet-utils/message-check.cc:307 msgid "Error: Message appears to have no new content." msgstr "Errorea: badirudi mezuak ez duela eduki berririk." #: pan/usenet-utils/message-check.cc:342 pan/usenet-utils/message-check.cc:381 #, c-format msgid "" "Warning: The posting profile's server doesn't carry newsgroup\n" "\t\"%s\".\n" "\tIf the group name is correct, switch profiles in the \"From:\"\n" "\tline or edit the profile with \"Edit|Manage Posting Profiles\"." msgstr "Abisua: Bidalketa-profilaren zerbitzariak ez dauka\n" "\t\"%s\" berri-taldea.\n" "\tTaldearen izena zuzena bada, aldatu profilak \"Nork:\"\n" "\tlerroan edo editatu profila \"Editatu|Kudeatu bidalketa-profilak\" erabilita." #: pan/usenet-utils/message-check.cc:353 msgid "Warning: Following-Up to too many groups." msgstr "Abisua: segimendua talde gehiegiri." #: pan/usenet-utils/message-check.cc:364 msgid "Error: No Subject specified." msgstr "Errorea: ez da gairik zehaztu." #: pan/usenet-utils/message-check.cc:393 #, c-format msgid "Warning: Group \"%s\" is read-only." msgstr "Abisua: \"%s\" taldea irakurtzeko soilik da." #: pan/usenet-utils/message-check.cc:402 msgid "Error: Posting to a very large number of groups." msgstr "Errorea: talde gehiegitara bidaltzen ari zara." #: pan/usenet-utils/message-check.cc:407 msgid "Warning: Posting to a large number of groups." msgstr "Abisua: talde askotara bidaltzen ari zara." #: pan/usenet-utils/message-check.cc:414 msgid "Warning: Crossposting without setting Followup-To header." msgstr "Abisua: ’Segimendua honi’ goiburua ezarri gabe hainbat taldetara bidaltzen." #: pan/usenet-utils/message-check.cc:439 msgid "Error: Bad email address." msgstr "Errorea: helbide elektronikoa ez da baliozkoa." #: pan/usenet-utils/message-check.cc:448 msgid "Warning: Most newsgroups frown upon HTML posts." msgstr "Abisua: berri-talde gehienek ez dute onartzen HTML bidalketarik." #: pan/usenet-utils/message-check.cc:484 msgid "Error: No Recipients." msgstr "Errorea: ez dago hartzailerik." #: pan/usenet-utils/scorefile.cc:310 #, c-format msgid "Error reading score in %*.*s, line %d: unexpected line." msgstr "Errorea hemengo puntuazioa irakurtzean: %*.*s, %d. lerroa. Ustekabeko lerroa." #: pan/usenet-utils/scorefile.cc:442 #, c-format msgid "" "Error reading score in %*.*s, line %d: expected 'Expires: MM/DD/YYYY' or " "'Expires: DD-MM-YYYY'." msgstr "Errorea hemengo puntuazioa irakurtzean: %*.*s, %d. lerroa. Espero zen 'Expires: MM/DD/YYYY' or 'Expires: DD-MM-YYYY'." #: pan/usenet-utils/scorefile.cc:452 #, c-format msgid "Expired old score from %*.*s, line %d" msgstr "Iraungita dago hemengo puntuazio zaharra: %*.*s, %d. lerroa" #: pan/usenet-utils/scorefile.cc:589 #, c-format msgid "Read %lu scoring rules in %lu sections from \"%s\"" msgstr "Irakurri %lu puntuazio-arauak %lu sekzioetan \"%s\"(e)tatik" #: pan/usenet-utils/ssl-utils.cc:172 #, c-format msgid "Error printing the server certificate for '%s'" msgstr "Errore '%s' zerbitzariaren zerbitzari-ziurtagiria inprimatzean" #: pan/usenet-utils/ssl-utils.cc:191 #, c-format msgid "" "The current server '%s' sent this security certificate:\n" "\n" msgstr "Uneko '%s' zerbitzariak honako segurtasun-ziurtagiria bidali du:\n" "\n" #: pan/usenet-utils/ssl-utils.cc:197 #, c-format msgid "" "Certificate information for server '%s':\n" "\n" msgstr "'%s' zerbitzariaren ziurtagiri-informazioa:\n" "\n" #: pan/usenet-utils/ssl-utils.cc:202 #, c-format msgid "" "%sIssuer information:\n" "%s\n" "Valid until: %s\n" "\n" "Not valid before: %s\n" "\n" msgstr "%sJaulkitzailearen informazioa:\n" "%s\n" "Baliozkoa data honetaraino: %s\n" "\n" "Ez da baliozkoa data hau baino lehen: %s\n" "\n" #: pan/usenet-utils/text-massager.cc:397 msgid "> [quoted text muted]" msgstr "> [komatxo arteko testua mutututa]" #: pan/usenet-utils/text-massager.cc:579 msgid "no_name" msgstr "izenik_ez" #: pan/usenet-utils/text-massager.cc:580 msgid "no_mail" msgstr "postarik_ez" #, c-format #~ msgid "There seems to be no password set for server %s." #~ msgstr "Badirudi ez dagoela pasahitzik ezarrita %s zerbitzarirako." #~ msgid "GNOME Keyring denied access to the passwords." #~ msgstr "GNOMEren gako-sortak pasahitzak jasotzeko sarbidea ukatu du." #~ msgid "_Tip Jar..." #~ msgstr "_Dirulaguntzak..." #, c-format #~ msgid "Getting header counts for \"%s\"" #~ msgstr "\"%s\"(r)en goiburuen zenbaketa eskuratzen" #~ msgid "_Save Articles…" #~ msgstr "_Gorde artikuluak…" #~ msgid "Save Articles…" #~ msgstr "Gorde artikuluak…" #~ msgid "Save Articles from Selected _NZB…" #~ msgstr "Gorde _NZB honetako artikuluak…" #~ msgid "Save Articles to an NZB _File…" #~ msgstr "Gorde artikuluak NZB _fitxategi batean…" #~ msgid "_Import NZB Files…" #~ msgstr "_Inportatu NZB fitxategiak…" #~ msgid "Save Attachment As…" #~ msgstr "Gorde eranskina honela…" #~ msgid "X-Face (Avatar)" #~ msgstr "X-Face (avatarra)" #~ msgid "isn’t" #~ msgstr "ez da" #~ msgid "Always trust" #~ msgstr "Exekutatu beti editorea" #~ msgid "Quoted text:" #~ msgstr "Komatxo arteko testua:" #~ msgid "If the group name" #~ msgstr "Baldintza: taldearen izena" #~ msgid "Read News from Usenet" #~ msgstr "Usenet-eko berriak irakurtzen ditu" #~ msgid "_Toggle Flag on for Thread" #~ msgstr "_Behatu haria" #~ msgid "Attachment not shown: MIME type %s/%s; filename %s\n" #~ msgstr "Eranskina ez da erakutsi: MIME mota %s/%s; fitxategi-izena %s\n" #~ msgid "Attachment not shown: MIME type %s/%s\n" #~ msgstr "Eranskina ez da erakutsi: MIME mota %s/%s\n" #~ msgid "" #~ "Spellchecker not found!\n" #~ " \n" #~ "Was this copy of Pan compiled with GtkSpell enabled?" #~ msgstr "" #~ "Ez da ortografia-egiaztatzailerik aurkitu\n" #~ " \n" #~ "Pan-en kopia hau GtkSpell gaituta konpilatuta zegoen?" #~ msgid "Signer : " #~ msgstr "Sinadura:" #~ msgid "_Signature:" #~ msgstr "Si_nadura:" #~ msgid "Posting Article" #~ msgstr "Artikulua bidaltzen" #~ msgid "Posting..." #~ msgstr "Bidaltzen..." pan-0.162/po/fi.po000066400000000000000000002750131475412772400137010ustar00rootroot00000000000000# Pan Finnish Translation # Copyright (C) 2000-2007 Free Software Foundation, Inc. # Gnome Finnish Translation Team: http://gnome-fi.sourceforge.net/ # # Jarmo Kielosto , 2000-2001. # Flammie Pirinen 2004—2007. # Ilkka Tuohela 2006-2007. # # Käyttämäni käännökset: # News(groups) = keskusteluryhmät # Article = artikkeli # message = viesti # Supersede = korvaaminen # Message-ID = Viestin tunnus # Followup(-to) = keskustelunsiirto # Crosspost(ing) = yhteislähetys # User-Agent = Keskusteluryhmäohjelma # X-Newsreader = Keskusteluryhmänlukija # X-Mailer = Postitusohjelma # From = Lähettäjä # Reply-To = Vastausosoite, Vastaus osoitteeseen # Header = Otsake (protokollan otsakkeista) # Subject = Otsikko, Aihe (Subject-otsakkeen arvo) # # Following Unicode characters have been used in favour of # obsolete versions in legacy codings: # ” ’ — − ‐ ∕ # Following Unicode characters have been used for lack of markup needed for # compatibility decomposition: # … msgid "" msgstr "" "Project-Id-Version: Pan\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/pan/issues\n" "POT-Creation-Date: 2014-03-23 17:15+0000\n" "PO-Revision-Date: 2007-01-29 17:46+0300\n" "Last-Translator: Flammie Pirinen \n" "Language-Team: Finnish \n" "Language: fi\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #. update the titlebar #: ../pan.desktop.in.h:1 ../pan/gui/dl-headers-ui.cc:106 #: ../pan/gui/gui.cc:1040 ../pan/gui/gui.cc:1667 ../pan/gui/gui.cc:2009 #: ../pan/gui/score-add-ui.cc:602 msgid "Pan" msgstr "Pan" #: ../pan.desktop.in.h:2 #, fuzzy #| msgid "Pan Newsreader" msgid "Newsreader" msgstr "Pan-keskusteluryhmäohjelma" #: ../pan.desktop.in.h:3 msgid "Read and Post Usenet Articles" msgstr "" #: ../pan/data/article-cache.cc:144 ../pan/data/encode-cache.cc:62 #, c-format msgid "Error opening directory: \"%s\": %s" msgstr "Virhe avattaessa hakemistoa %s: %s" #: ../pan/data/article-cache.cc:235 ../pan/data/article-cache.cc:244 #: ../pan/data-impl/data-io.cc:199 ../pan/data-impl/data-io.cc:231 #: ../pan/gui/post-ui.cc:1723 #, c-format msgid "Unable to save \"%s\" %s" msgstr "Tiedoston %s tallentaminen ei onnistu: %s" #: ../pan/data/article-cache.cc:362 #, c-format msgid "Error opening file \"%s\" %s" msgstr "Virhe avattaessa tiedostoa %s: %s" #: ../pan/data/article-cache.cc:393 ../pan/data-impl/profiles.cc:174 #: ../pan/data-impl/server.cc:500 ../pan/general/file-util.cc:311 #: ../pan/gui/post-ui.cc:638 ../pan/gui/task-pane.cc:737 #, c-format msgid "Error reading file \"%s\": %s" msgstr "Virhe luettaessa tiedostoa %s: %s" #: ../pan/data/cert-store.cc:262 #, fuzzy, c-format msgid "Error opening SSL certificate directory: \"%s\": %s" msgstr "Virhe avattaessa hakemistoa %s: %s" #: ../pan/data/cert-store.cc:293 #, c-format msgid "Successfully added %d SSL PEM certificate(s) to Certificate Store." msgstr "" #: ../pan/data/cert-store.cc:313 msgid "" "Error initializing Certificate Store. Check that the permissions for the " "folders ~/.pan2 and ~/.pan2/ssl_certs are set correctly. Fatal, exiting." msgstr "" #. load_group_descriptions (*_data_io); #: ../pan/data-impl/data-impl.cc:113 #, c-format msgid "Loaded data backend in %.1f seconds" msgstr "Ladattiin datataustaosa %.1f sekunnissa" #: ../pan/data-impl/data-impl.cc:143 msgid "Pan Newsreader's server passwords" msgstr "" #: ../pan/data-impl/groups.cc:94 #, c-format msgid "Skipping newsrc file for server \"%s\"" msgstr "Ohitetaan newsrc palvelimelle %s" #: ../pan/data-impl/headers.cc:606 #, c-format msgid "Expired %lu old articles from \"%s\"" msgstr "Poistettu %lu viestiä ryhmästä %s" #: ../pan/data-impl/headers.cc:613 #, c-format msgid "" "Unsupported data version for %s headers: %d.\n" "Are you running an old version of Pan by accident?" msgstr "" "Tukematon data‐versio otsakkeelle %s: %d.\n" "Käynnistitkö vahingossa vanhan version Panista?" #: ../pan/data-impl/headers.cc:628 #, c-format msgid "Loaded %lu articles for \"%s\" in %.1f seconds (%.0f per second)" msgstr "Ladattu %lu artikkelia ryhmään %s %.1f sekunnissa (%.0f∕s)" #: ../pan/data-impl/headers.cc:857 #, fuzzy, c-format msgid "" "Saved %lu parts, %lu articles in \"%s\" in %.1f seconds (%.0f articles/sec)" msgstr "" "Tallennettu %lu osaa, %lu artikkelissa ryhmässä %s %.1f sekunnissa (%.0f " "artikkelia∕sekunti)" #: ../pan/data-impl/headers.cc:1191 #, c-format msgid "Added %lu articles to %s." msgstr "%lu lisätty ryhmään %s." #: ../pan/data-impl/server.cc:261 #, c-format msgid "There seems to be no password set for server %s." msgstr "" #: ../pan/data-impl/server.cc:265 msgid "GNOME Keyring denied access to the passwords." msgstr "" #: ../pan/data-impl/xover.cc:243 #, c-format msgid "Error reading from %s: unknown group \"%s\"" msgstr "Virhe luettaessa lähteestä %s: tuntematon ryhmä \"%s\"" # Oisko nää sit strftimeä? # Esim: 12:30 AM → 12.30 #. build the locale strings #: ../pan/general/e-util.cc:211 msgid "%l:%M %p" msgstr "%-H.%M" # Esim: Today 12:30 AM → Tänään 12.30 #: ../pan/general/e-util.cc:212 msgid "Today %l:%M %p" msgstr "Tänään %-H.%M" # Esim: Thu 12:30 AM → Torstaina 12.30 #: ../pan/general/e-util.cc:213 msgid "%a %l:%M %p" msgstr "%Ana %-H.%M" # Esim: Oct 04 12:30 AM → 4. Lokakuuta 12.30 #: ../pan/general/e-util.cc:214 msgid "%b %d %l:%M %p" msgstr "%-d. %Bta %-H.%M" # Esim: Oct 04 2004 → 4. Lokakuuta 2004 #: ../pan/general/e-util.cc:215 msgid "%b %d %Y" msgstr "%-d %Bta %Y" #: ../pan/general/e-util.cc:240 msgid "?" msgstr "?" #: ../pan/general/text-match.cc:193 #, c-format msgid "Can't use regular expression \"%s\": %s" msgstr "Ei voida käyttää säännöllistä ilmausta \"%s\": %s" #: ../pan/general/utf8-utils.cc:213 msgid "Couldn't determine article encoding. Non-UTF8 characters were removed." msgstr "" "Ei voitu selvittää artikkelin koodausta: UTF‐8:ksi kelpaamattomat merkit " "poistettiin." #: ../pan/gui/actions.cc:303 ../pan/gui/post-ui.cc:446 msgid "_File" msgstr "_Tiedosto" #: ../pan/gui/actions.cc:304 ../pan/gui/post-ui.cc:447 msgid "_Edit" msgstr "_Muokkaa" #: ../pan/gui/actions.cc:305 ../pan/gui/prefs-ui.cc:1107 msgid "_Layout" msgstr "Osioiden _asettelu" #: ../pan/gui/actions.cc:306 msgid "_Group Pane" msgstr "_Ryhmälistaosio" #: ../pan/gui/actions.cc:307 msgid "_Header Pane" msgstr "_Otsakeosio" #: ../pan/gui/actions.cc:308 msgid "_Body Pane" msgstr "_Viestiosio" #: ../pan/gui/actions.cc:309 msgid "_View" msgstr "_Näytä" #: ../pan/gui/actions.cc:310 msgid "Filte_r" msgstr "S_uodattimet" # ei huonommin nimetty valikko... #: ../pan/gui/actions.cc:311 msgid "_Go" msgstr "_Siirry" #: ../pan/gui/actions.cc:312 ../pan/gui/prefs-ui.cc:1157 msgid "_Actions" msgstr "_Toiminnot" #: ../pan/gui/actions.cc:313 msgid "_Articles" msgstr "_Artikkelit" #: ../pan/gui/actions.cc:314 msgid "G_roups" msgstr "R_yhmät" #: ../pan/gui/actions.cc:315 ../pan/gui/actions.cc:316 msgid "_Post" msgstr "_Lähetä" #: ../pan/gui/actions.cc:317 msgid "_Help" msgstr "_Ohje" #: ../pan/gui/actions.cc:320 msgid "_Read Group" msgstr "_Lue ryhmä" #: ../pan/gui/actions.cc:321 #, fuzzy msgid "Read Group" msgstr "_Lue ryhmä" #: ../pan/gui/actions.cc:325 #, fuzzy msgid "_Mark Selected Groups Read" msgstr "Merkitse valitut ryhmät _luetuiksi" #: ../pan/gui/actions.cc:326 #, fuzzy msgid "Mark Selected Groups Read" msgstr "Merkitse valitut ryhmät _luetuiksi" #: ../pan/gui/actions.cc:330 msgid "_Delete Selected Groups' Articles" msgstr "_Poista valittujen ryhmien artikkelit" #: ../pan/gui/actions.cc:331 #, fuzzy msgid "Delete Selected Groups' Articles" msgstr "_Poista valittujen ryhmien artikkelit" #: ../pan/gui/actions.cc:335 msgid "Get New _Headers in Selected Groups" msgstr "Hae uudet _otsikot valituista ryhmistä" #: ../pan/gui/actions.cc:336 #, fuzzy msgid "Get New Headers in Selected Groups" msgstr "Hae uudet _otsikot valituista ryhmistä" #: ../pan/gui/actions.cc:340 ../pan/gui/actions.cc:345 msgid "Get New _Headers in Subscribed Groups" msgstr "Hae uudet _otsikot tilatuista ryhmistä" #: ../pan/gui/actions.cc:341 ../pan/gui/actions.cc:346 #, fuzzy msgid "Get New Headers in Subscribed Groups" msgstr "Hae uudet _otsikot tilatuista ryhmistä" #: ../pan/gui/actions.cc:350 msgid "Get _Headers..." msgstr "Hae _otsikot..." #: ../pan/gui/actions.cc:351 #, fuzzy msgid "Get Headers..." msgstr "Hae _otsikot..." #: ../pan/gui/actions.cc:355 ../pan/gui/actions.cc:356 msgid "Refresh Group List" msgstr "Päivitä ryhmälista" #: ../pan/gui/actions.cc:360 msgid "_Subscribe" msgstr "_Tilaa" #: ../pan/gui/actions.cc:361 #, fuzzy msgid "Subscribe" msgstr "_Tilaa" #: ../pan/gui/actions.cc:365 msgid "_Unsubscribe" msgstr "P_eruuta tilaus" #: ../pan/gui/actions.cc:366 #, fuzzy msgid "Unsubscribe" msgstr "P_eruuta tilaus" #: ../pan/gui/actions.cc:370 msgid "_Save Articles..." msgstr "Tallenna _artikkelit..." #: ../pan/gui/actions.cc:371 #, fuzzy msgid "Save Articles..." msgstr "Tallenna _artikkelit..." #: ../pan/gui/actions.cc:375 #, fuzzy msgid "Save Articles from Selected _NZB..." msgstr "Tallenna _artikkelit tästä NZB:stä..." #: ../pan/gui/actions.cc:376 #, fuzzy msgid "Save Articles from Selected NZB" msgstr "Tallenna _artikkelit tästä NZB:stä..." #: ../pan/gui/actions.cc:380 #, fuzzy msgid "Save Articles to an NZB _File..." msgstr "Tallenna _artikkelit tästä NZB:stä..." #: ../pan/gui/actions.cc:381 #, fuzzy msgid "Save Articles to an NZB File" msgstr "Tallenna _artikkelit tästä NZB:stä..." #: ../pan/gui/actions.cc:385 ../pan/gui/actions.cc:386 msgid "Print" msgstr "" #: ../pan/gui/actions.cc:390 msgid "_Import NZB Files..." msgstr "_Tuo NZB‐tiedostoja..." #: ../pan/gui/actions.cc:395 msgid "_Cancel Last Task" msgstr "_Peruuta viimeisin toiminto" #: ../pan/gui/actions.cc:400 msgid "_Task Manager" msgstr "Toimintojen _hallinta" #: ../pan/gui/actions.cc:405 msgid "_Event Log" msgstr "_Tapahtumaloki" #: ../pan/gui/actions.cc:410 msgid "_Quit" msgstr "_Lopeta" #: ../pan/gui/actions.cc:415 msgid "Select _All Articles" msgstr "Hae k_aikki viestit" #: ../pan/gui/actions.cc:420 msgid "_Deselect All Articles" msgstr "Poista val_inta artikkeleista" #: ../pan/gui/actions.cc:425 msgid "Add Su_bthreads to Selection" msgstr "Lisää _alisäikeet valintaan" #: ../pan/gui/actions.cc:430 msgid "Add _Threads to Selection" msgstr "Lisää s_äikeet valintaan" #: ../pan/gui/actions.cc:435 msgid "Add _Similar Articles to Selection" msgstr "Lisää _samanlaiset artikkelit valintaan" #: ../pan/gui/actions.cc:440 msgid "Select Article _Body" msgstr "Valitse artikkelin _sisältö" #: ../pan/gui/actions.cc:445 msgid "Edit _Preferences" msgstr "Muokkaa _asetuksia" #: ../pan/gui/actions.cc:450 msgid "Edit Selected _Group's Preferences" msgstr "Muokkaa valittujen _ryhmien asetuksia" #: ../pan/gui/actions.cc:455 ../pan/gui/post-ui.cc:463 msgid "Edit P_osting Profiles" msgstr "Muokkaa _postitusprofiileja" #: ../pan/gui/actions.cc:460 msgid "Edit _News Servers" msgstr "Muokkaa _keskusteluryhmäpalvelinasetuksia" #: ../pan/gui/actions.cc:465 msgid "Jump to _Group Tab" msgstr "Siirry _ryhmälehteen" #: ../pan/gui/actions.cc:470 msgid "Jump to _Header Tab" msgstr "Siirry _otsikkolehteen" #: ../pan/gui/actions.cc:475 msgid "Jump to _Body Tab" msgstr "Siirry _sisältölehteen" #: ../pan/gui/actions.cc:480 msgid "_Rot13 Selected Text" msgstr "_Rot13 valitulle tekstille" #: ../pan/gui/actions.cc:485 msgid "Clear _Header Pane" msgstr "Tyhjennä _otsakeosio" #: ../pan/gui/actions.cc:490 msgid "Clear _Body Pane" msgstr "Tyhjennä _viestiosio" #: ../pan/gui/actions.cc:495 msgid "Cache Article" msgstr "Artikkeli välimuistiin" #: ../pan/gui/actions.cc:500 msgid "Read Article" msgstr "Lue artikkeli" #: ../pan/gui/actions.cc:505 msgid "Show Article Information" msgstr "Näytä artikkelin tiedot" # se toiminto joka perinteisesti spacea mätkimällä tapahtuu #: ../pan/gui/actions.cc:510 msgid "Read _More" msgstr "Lue _eteenpäin" # se toiminto joka perinteisesti spacea mätkimällä tapahtuu #: ../pan/gui/actions.cc:511 #, fuzzy msgid "Read More" msgstr "Lue _eteenpäin" #: ../pan/gui/actions.cc:515 msgid "Read _Back" msgstr "Palaa _taaksepäin" #: ../pan/gui/actions.cc:516 #, fuzzy msgid "Read Back" msgstr "Palaa _taaksepäin" #: ../pan/gui/actions.cc:520 msgid "Next _Unread Group" msgstr "Seuraavaan luke_mattomaan ryhmään" #: ../pan/gui/actions.cc:525 msgid "Next _Group" msgstr "Seuraavaan ry_hmään" #: ../pan/gui/actions.cc:530 msgid "Next _Unread Article" msgstr "Seuraavaan _lukemattomaan artikkeliin" #: ../pan/gui/actions.cc:531 #, fuzzy msgid "Next Unread Article" msgstr "Seuraavaan _lukemattomaan artikkeliin" #: ../pan/gui/actions.cc:535 msgid "Next _Article" msgstr "Seuraavaan _artikkeliin" #: ../pan/gui/actions.cc:536 #, fuzzy msgid "Next Article" msgstr "Seuraavaan _artikkeliin" #: ../pan/gui/actions.cc:540 msgid "Next _Watched Article" msgstr "Seuraavaan _seurattuun artikkeliin" #: ../pan/gui/actions.cc:545 msgid "Next Unread _Thread" msgstr "Seuraavaan l_ukemattomaan säikeeseen" #: ../pan/gui/actions.cc:546 #, fuzzy msgid "Next Unread Thread" msgstr "Seuraavaan l_ukemattomaan säikeeseen" #: ../pan/gui/actions.cc:550 msgid "Next Threa_d" msgstr "Seuraavaan s_äikeeseen" #: ../pan/gui/actions.cc:555 msgid "Pre_vious Article" msgstr "_Edelliseen artikkeliin" #: ../pan/gui/actions.cc:560 msgid "Previous _Thread" msgstr "E_delliseen säikeeseen" #: ../pan/gui/actions.cc:565 msgid "_Parent Article" msgstr "_Ylempään artikkeliin" #: ../pan/gui/actions.cc:570 msgid "Ignore _Author" msgstr "O_hita kirjoittaja" #: ../pan/gui/actions.cc:574 msgid "_Watch Thread" msgstr "_Seuraa säiettä" #: ../pan/gui/actions.cc:579 msgid "_Ignore Thread" msgstr "O_hita säie" #: ../pan/gui/actions.cc:584 ../pan/gui/actions.cc:585 #, fuzzy msgid "_Toggle Flag On/Off for Thread" msgstr "_Seuraa säiettä" #: ../pan/gui/actions.cc:589 ../pan/gui/actions.cc:590 #, fuzzy msgid "_Turn Flag Off for Thread" msgstr "_Seuraa säiettä" #: ../pan/gui/actions.cc:594 ../pan/gui/actions.cc:595 #, fuzzy msgid "_Select All Flagged Threads" msgstr "Seuraavaan l_ukemattomaan säikeeseen" #: ../pan/gui/actions.cc:599 ../pan/gui/actions.cc:600 #, fuzzy msgid "_Go to Next Flagged Thread" msgstr "Seuraavaan l_ukemattomaan säikeeseen" #: ../pan/gui/actions.cc:604 ../pan/gui/actions.cc:605 #, fuzzy msgid "_Go to Last Flagged Thread" msgstr "Seuraavaan l_ukemattomaan säikeeseen" #: ../pan/gui/actions.cc:609 ../pan/gui/actions.cc:610 #, fuzzy msgid "_Invert Selection" msgstr "Lisää s_äikeet valintaan" #: ../pan/gui/actions.cc:614 msgid "Edit Article's Watch/Ignore/Score..." msgstr "Muokkaa artikkelin seurausta, ohitusta ja pisteytystä..." #: ../pan/gui/actions.cc:619 #, fuzzy msgid "Add a _Scoring Rule..." msgstr "_Lisää uusi pisteytys..." #: ../pan/gui/actions.cc:624 msgid "Cance_l Article..." msgstr "_Peruuta artikkeli..." #: ../pan/gui/actions.cc:629 msgid "_Supersede Article..." msgstr "_Korvaa artikkeli..." #: ../pan/gui/actions.cc:634 msgid "_Delete Article" msgstr "_Poista artikkeli" #: ../pan/gui/actions.cc:639 msgid "Clear Article Cache" msgstr "Tyhjennä artikkelivälimuisti" #: ../pan/gui/actions.cc:644 msgid "_Mark Article as Read" msgstr "_Merkitse luetuksi" #: ../pan/gui/actions.cc:649 msgid "Mark Article as _Unread" msgstr "Me_rkitse lukemattomaksi" #: ../pan/gui/actions.cc:655 #, fuzzy msgid "_Mark Thread as Read" msgstr "_Merkitse luetuksi" #: ../pan/gui/actions.cc:660 #, fuzzy msgid "Mark Thread as _Unread" msgstr "Me_rkitse lukemattomaksi" #: ../pan/gui/actions.cc:665 msgid "_Post to Newsgroup" msgstr "_Lähetä viesti ryhmään" #: ../pan/gui/actions.cc:666 #, fuzzy msgid "Post to Newsgroup" msgstr "_Lähetä viesti ryhmään" #: ../pan/gui/actions.cc:670 msgid "_Followup to Newsgroup" msgstr "V_astaa uutisryhmään" #: ../pan/gui/actions.cc:671 #, fuzzy msgid "Followup to Newsgroup" msgstr "V_astaa uutisryhmään" #: ../pan/gui/actions.cc:675 msgid "_Reply to Author in Mail" msgstr "_Vastaa kirjoittajalle meilitse" #: ../pan/gui/actions.cc:680 msgid "_Pan Home Page" msgstr "Panin _kotisivu" #: ../pan/gui/actions.cc:685 msgid "Give _Feedback or Report a Bug..." msgstr "Anna _palautetta tai ilmoita viasta..." # Tälle on jokin oikea suomennoskin? #: ../pan/gui/actions.cc:690 msgid "_Tip Jar..." msgstr "_Lahjoituspurkki..." #: ../pan/gui/actions.cc:695 msgid "_About" msgstr "_Tietoja" #: ../pan/gui/actions.cc:700 msgid "Edit _SSL Certificates" msgstr "" #: ../pan/gui/actions.cc:715 msgid "_Thread Headers" msgstr "_Säikeistä otsakkeet" #: ../pan/gui/actions.cc:716 #, fuzzy #| msgid "_Wrap Article Body" msgid "Wrap Article Body" msgstr "_Rivitä viestin sisältö" #: ../pan/gui/actions.cc:717 #, fuzzy #| msgid "Show Article Information" msgid "Show Article Signature" msgstr "Näytä artikkelin tiedot" #: ../pan/gui/actions.cc:718 msgid "Mute _Quoted Text" msgstr "_Piilota lainattu teksti" #: ../pan/gui/actions.cc:719 msgid "Show All _Headers in Body Pane" msgstr "Näytä _kaikki viestin otsakkeet sisältöosiossa" #: ../pan/gui/actions.cc:720 msgid "Show _Smilies as Graphics" msgstr "Näytä _graafiset hymiöt" #: ../pan/gui/actions.cc:721 msgid "Show *Bold*, __Underlined__, and /Italic/" msgstr "Näytä *lihavointi*, __alleviivaus__ ja /kursivointi/" #: ../pan/gui/actions.cc:722 msgid "Size Pictures to _Fit" msgstr "_Sovita kuvien koko" #: ../pan/gui/actions.cc:723 msgid "Use _Monospace Font" msgstr "Käytä tasavälis_tä fonttia" #: ../pan/gui/actions.cc:724 msgid "Set Focus to Images" msgstr "Kohdista kuviin" #: ../pan/gui/actions.cc:725 msgid "Highlight _URLs" msgstr "" #: ../pan/gui/actions.cc:728 msgid "_Work Online" msgstr "T_yöskentele yhdistettynä" #: ../pan/gui/actions.cc:729 msgid "_Tabbed Layout" msgstr "_Välilehdellinen ulkoasu" #: ../pan/gui/actions.cc:730 msgid "Show Group _Pane" msgstr "Näytä ryhm_äosio" #: ../pan/gui/actions.cc:731 msgid "Show Hea_der Pane" msgstr "Näytä o_tsikko‐osio" #: ../pan/gui/actions.cc:732 msgid "Show Bod_y Pane" msgstr "Näytä v_iestiosio" #: ../pan/gui/actions.cc:733 msgid "Show _Toolbar" msgstr "Näytä _työkalupalkki" #: ../pan/gui/actions.cc:734 msgid "Abbreviate Group Names" msgstr "Lyhennä ryhmien nimet" #: ../pan/gui/actions.cc:736 #, fuzzy #| msgid "Match Only _Unread Articles" msgid "Match Only _Read Articles" msgstr "Täsmää vain _lukemattomiin artikkeleihin" #: ../pan/gui/actions.cc:736 #, fuzzy msgid "Match Only Read Articles" msgstr "Täsmää vain _lukemattomiin artikkeleihin" #: ../pan/gui/actions.cc:737 msgid "Match Only _Unread Articles" msgstr "Täsmää vain _lukemattomiin artikkeleihin" #: ../pan/gui/actions.cc:737 #, fuzzy msgid "Match Only Unread Articles" msgstr "Täsmää vain _lukemattomiin artikkeleihin" #: ../pan/gui/actions.cc:738 msgid "Match Only _Cached Articles" msgstr "Täsmää vain _välimuistissa oleviin artikkeleihin" #: ../pan/gui/actions.cc:738 #, fuzzy msgid "Match Only Cached Articles" msgstr "Täsmää vain _välimuistissa oleviin artikkeleihin" #: ../pan/gui/actions.cc:739 msgid "Match Only _Complete Articles" msgstr "Täsmää vain _täydellisiin artikkeleihin" #: ../pan/gui/actions.cc:739 #, fuzzy msgid "Match Only Complete Articles" msgstr "Täsmää vain _täydellisiin artikkeleihin" #: ../pan/gui/actions.cc:740 msgid "Match Only _My Articles" msgstr "Täsmää vain kirjoitta_miini artikkeleihin" #: ../pan/gui/actions.cc:740 #, fuzzy msgid "Match Only My Articles" msgstr "Täsmää vain kirjoitta_miini artikkeleihin" #: ../pan/gui/actions.cc:741 msgid "Match Only _Watched Articles" msgstr "Täsmää vain _seurattuihin artikkeleihin" #: ../pan/gui/actions.cc:741 #, fuzzy msgid "Match Only Watched Articles" msgstr "Täsmää vain _seurattuihin artikkeleihin" #: ../pan/gui/actions.cc:743 msgid "Match Scores of 9999 (_Watched)" msgstr "Täsmää pisteisiin 9999 (_Seuratut)" #: ../pan/gui/actions.cc:744 msgid "Match Scores of 5000...9998 (_High)" msgstr "Täsmää pisteisiin 5000—9998 (_Korkea)" #: ../pan/gui/actions.cc:745 msgid "Match Scores of 1...4999 (Me_dium)" msgstr "Täsmää pisteisiin 1—4999 (_Keskisuuri)" #: ../pan/gui/actions.cc:746 msgid "Match Scores of 0 (_Normal)" msgstr "Täsmää pisteisiin 0 (_Normaali)" #: ../pan/gui/actions.cc:747 msgid "Match Scores of -9998...-1 (_Low)" msgstr "Täsmää pisteisiin −9998—−1 (_Matala)" #: ../pan/gui/actions.cc:748 msgid "Match Scores of -9999 (_Ignored)" msgstr "Täsmää pisteisiin −9999 (_Ohitetut)" #: ../pan/gui/actions.cc:750 msgid "Enable/Disable All _Rules" msgstr "" #: ../pan/gui/actions.cc:778 msgid "Show Matching _Articles" msgstr "Näytä täsmäävät _artikkelit" #: ../pan/gui/actions.cc:779 msgid "Show Matching Articles' _Threads" msgstr "Näytä täsmäävien artikkelien _säikeet" #: ../pan/gui/actions.cc:780 msgid "Show Matching Articles' _Subthreads" msgstr "Näytä täsmäävien artikkelien _alisäikeet" #: ../pan/gui/body-pane.cc:1056 #, fuzzy, c-format msgid "Unnamed File" msgstr "Allekirjoitustiedosto" #: ../pan/gui/body-pane.cc:1137 ../pan/gui/gui.cc:1980 #: ../pan/gui/header-pane.cc:1313 ../pan/gui/header-pane.cc:1748 #: ../pan/gui/post-ui.cc:2588 ../pan/gui/prefs-ui.cc:855 #: ../pan/gui/score-add-ui.cc:139 ../pan/gui/task-pane.cc:797 msgid "Subject" msgstr "Aihe" #: ../pan/gui/body-pane.cc:1139 ../pan/gui/gui.cc:1980 msgid "From" msgstr "Lähettäjä" #: ../pan/gui/body-pane.cc:1141 ../pan/gui/gui.cc:1981 #: ../pan/gui/header-pane.cc:1827 ../pan/gui/log-ui.cc:307 #: ../pan/gui/prefs-ui.cc:851 msgid "Date" msgstr "Päiväys" #: ../pan/gui/body-pane.cc:1148 msgid "Newsgroups" msgstr "Keskusteluryhmät" #: ../pan/gui/body-pane.cc:1155 ../pan/gui/body-pane.cc:1163 #: ../pan/gui/body-pane.cc:1170 msgid "User-Agent" msgstr "" #: ../pan/gui/body-pane.cc:1176 msgid "Followup-To" msgstr "Keskustelunsiirto" #: ../pan/gui/body-pane.cc:1186 msgid "Reply-To" msgstr "Vastaus osoitteeseen" #: ../pan/gui/body-pane.cc:1229 msgid " from " msgstr " lähettänyt " # möö #: ../pan/gui/body-pane.cc:1231 msgid " at " msgstr " " #: ../pan/gui/body-pane.cc:1318 #, c-format msgid "" "This is a PGP-Signed message.\n" "\n" "Signer: %s ('%s')\n" "Valid until: %s\n" "Created on: %s" msgstr "" #: ../pan/gui/body-pane.cc:1323 msgid "always" msgstr "" #: ../pan/gui/body-pane.cc:1543 msgid "Copy _URL" msgstr "Kopioi _URL" #: ../pan/gui/body-pane.cc:1748 #, fuzzy msgid "Save Attachment As..." msgstr "Tallenna liitteet" #: ../pan/gui/body-pane.cc:1751 #, fuzzy msgid "Save All Attachments" msgstr "Tallenna liitteet" #. add a toolbar for attachments #: ../pan/gui/body-pane.cc:1821 #, fuzzy msgid "Attachments" msgstr "Tallenna liitteet" #: ../pan/gui/body-pane.cc:1836 #, fuzzy #| msgid "Text File" msgid "Text View" msgstr "Tekstitiedosto" #: ../pan/gui/body-pane.cc:1845 msgid "HTML View" msgstr "" #: ../pan/gui/dl-headers-ui.cc:112 #, fuzzy, c-format msgid "%d Group" msgid_plural "%d Groups" msgstr[0] "%d ryhmää" msgstr[1] "%d ryhmää" #: ../pan/gui/dl-headers-ui.cc:135 msgid "Get the last N _days' headers: " msgstr "Lataa _viimeisten N päivän otsikot: " #: ../pan/gui/dl-headers-ui.cc:143 msgid "Get _new headers" msgstr "Lataa _uudet otsikot" #: ../pan/gui/dl-headers-ui.cc:147 msgid "Get _all headers" msgstr "Lataa k_aikki otsikot" #: ../pan/gui/dl-headers-ui.cc:151 msgid "Get the _latest N headers: " msgstr "Lataa _viimeisimmät N otsikkoa: " #: ../pan/gui/e-action-combo-box.c:386 ../pan/gui/prefs-ui.cc:848 msgid "Action" msgstr "Toiminto" #: ../pan/gui/e-action-combo-box.c:387 msgid "A GtkRadioAction" msgstr "" #: ../pan/gui/e-charset.c:51 ../pan/gui/task-pane.cc:558 msgid "Unknown" msgstr "Tuntematon" #: ../pan/gui/e-charset.c:52 msgid "Arabic" msgstr "" # charsetien nimet jossain jo käännettynä? #: ../pan/gui/e-charset.c:53 msgid "Baltic" msgstr "Balttilainen" #: ../pan/gui/e-charset.c:54 msgid "Central European" msgstr "Keskieurooppalainen" #: ../pan/gui/e-charset.c:55 msgid "Chinese" msgstr "Kiina" #: ../pan/gui/e-charset.c:56 msgid "Cyrillic" msgstr "Kyrillinen" #: ../pan/gui/e-charset.c:57 msgid "Greek" msgstr "Kreikkalainen" #: ../pan/gui/e-charset.c:58 msgid "Hebrew" msgstr "Heprea" #: ../pan/gui/e-charset.c:59 msgid "Japanese" msgstr "Japanilainen" #: ../pan/gui/e-charset.c:60 msgid "Korean" msgstr "Korealainen" #: ../pan/gui/e-charset.c:61 msgid "Thai" msgstr "Thai" #: ../pan/gui/e-charset.c:62 msgid "Turkish" msgstr "Turkkilainen" #: ../pan/gui/e-charset.c:63 msgid "Unicode" msgstr "Unicode" #: ../pan/gui/e-charset.c:64 msgid "Western European" msgstr "Länsieurooppalainen" #: ../pan/gui/e-charset.c:65 msgid "Western European, New" msgstr "Länsieurooppalainen, uusi" #: ../pan/gui/e-charset.c:84 ../pan/gui/e-charset.c:85 #: ../pan/gui/e-charset.c:86 msgid "Traditional" msgstr "Perinteinen" #: ../pan/gui/e-charset.c:87 ../pan/gui/e-charset.c:88 #: ../pan/gui/e-charset.c:89 ../pan/gui/e-charset.c:90 msgid "Simplified" msgstr "Yksinkertaistettu" #: ../pan/gui/e-charset.c:93 msgid "Ukrainian" msgstr "Ukraina" #: ../pan/gui/e-charset.c:96 msgid "Visual" msgstr "Näkyvä" #: ../pan/gui/e-charset-combo-box.c:93 ../pan/gui/gui.cc:2178 #: ../pan/gui/post-ui.cc:548 ../pan/gui/prefs-ui.cc:759 msgid "Character Encoding" msgstr "Merkistökoodaus" #: ../pan/gui/e-charset-combo-box.c:117 msgid "Enter the character set to use" msgstr "Anna käytettävä merkistö" #: ../pan/gui/e-charset-combo-box.c:336 msgid "Other..." msgstr "Muu..." #: ../pan/gui/e-cte-dialog.c:76 #, fuzzy msgid "Default Encoding" msgstr "Puretaan" #: ../pan/gui/e-cte-dialog.c:78 #, fuzzy msgid "7-Bit Encoding" msgstr "Puretaan" #: ../pan/gui/e-cte-dialog.c:80 #, fuzzy msgid "8-Bit Encoding" msgstr "Puretaan" #: ../pan/gui/e-cte-dialog.c:82 #, fuzzy msgid "Base64 Encoding" msgstr "Puretaan" #: ../pan/gui/e-cte-dialog.c:84 #, fuzzy msgid "Quoted-Printable Encoding" msgstr "Runkopaneelin merkistökoodaus" #: ../pan/gui/group-pane.cc:330 msgid "Sent" msgstr "" #: ../pan/gui/group-pane.cc:331 msgid "Drafts" msgstr "" #: ../pan/gui/group-pane.cc:537 #, fuzzy msgid "Group" msgstr "Ryhmät" #: ../pan/gui/group-pane.cc:538 #, fuzzy msgid "Group (regex)" msgstr "Ryhmän nimi" #: ../pan/gui/group-pane.cc:1010 msgid "Local Folders" msgstr "" #: ../pan/gui/group-pane.cc:1011 msgid "Subscribed Groups" msgstr "Tilatut ryhmät" #: ../pan/gui/group-pane.cc:1012 msgid "Other Groups" msgstr "Muut ryhmät" #: ../pan/gui/group-pane.cc:1052 ../pan/gui/score-view-ui.cc:157 msgid "Name" msgstr "Nimi" #: ../pan/gui/group-prefs-dialog.cc:162 msgid "No Profiles defined in Edit|Posting Profiles." msgstr "Profiilia ei ole määritelty valikossa Muokkaa→Lähetysprofiilit." #: ../pan/gui/group-prefs-dialog.cc:273 msgid "Pan: Group Preferences" msgstr "Pan: Ryhmäasetukset" #: ../pan/gui/group-prefs-dialog.cc:288 #, fuzzy, c-format msgid "Properties for Groups" msgstr "Asetukset kohteelle %s" #: ../pan/gui/group-prefs-dialog.cc:290 #, c-format msgid "Properties for %s" msgstr "Asetukset kohteelle %s" #: ../pan/gui/group-prefs-dialog.cc:298 msgid "Character _encoding:" msgstr "_Merkistökoodaus:" #: ../pan/gui/group-prefs-dialog.cc:300 msgid "Directory for Saving Attachments" msgstr "Hakemisto johon liitetiedostot tallennetaan" #: ../pan/gui/group-prefs-dialog.cc:308 msgid "Directory for _saving attachments:" msgstr "Hakemisto johon _liitetiedostot tallennetaan:" #: ../pan/gui/group-prefs-dialog.cc:310 msgid "Posting _profile:" msgstr "Lähetys_profiili:" #: ../pan/gui/group-prefs-dialog.cc:315 msgid "Spellchecker _language:" msgstr "" #: ../pan/gui/group-prefs-dialog.cc:318 msgid "Group color:" msgstr "" #: ../pan/gui/gui.cc:312 msgid "Open the Task Manager" msgstr "Avaa toimintojen hallinta" #: ../pan/gui/gui.cc:335 msgid "Open the Event Log" msgstr "Avaa tapahtumaloki" #: ../pan/gui/gui.cc:611 msgid "Save NZB's Files" msgstr "Tallenna NZB:t tiedostoihin" #: ../pan/gui/gui.cc:638 msgid "Untitled.nzb" msgstr "" #: ../pan/gui/gui.cc:640 #, fuzzy msgid "Save NZB File as..." msgstr "Tallenna NZB:t tiedostoihin" #: ../pan/gui/gui.cc:809 msgid "Import NZB Files" msgstr "Tuo NZB‐tiedostoja" #: ../pan/gui/gui.cc:817 ../pan/gui/post-ui.cc:3287 msgid "NZB Files" msgstr "NZB-tiedostot" #: ../pan/gui/gui.cc:822 msgid "All Files" msgstr "Kaikki tiedostot" #: ../pan/gui/gui.cc:1334 msgid "Unable to supersede article." msgstr "Artikkelin korvaus ei onnistu." #: ../pan/gui/gui.cc:1335 ../pan/gui/gui.cc:1409 msgid "The article doesn't match any of your posting profiles." msgstr "Artikkeli ei täsmää lähetysprofiileihisi." #: ../pan/gui/gui.cc:1382 msgid "Revise and send this article to replace the old one." msgstr "Tarkista ja lähetä uusi artikkeli korvaamaan vanhaa." #: ../pan/gui/gui.cc:1383 ../pan/gui/gui.cc:1446 msgid "Be patient! It will take time for your changes to take effect." msgstr "" "Ole kärsivällinen. Saattaa kestää tovin ennen kuin muutokset vaikuttavat." #: ../pan/gui/gui.cc:1408 msgid "Unable to cancel article." msgstr "Artikkelin peruutus ei onnistu." #: ../pan/gui/gui.cc:1445 msgid "Send this article to ask your server to cancel your other one." msgstr "Lähetä tämä artikkeli palvelimelle perumaan toista lähettämääsi." #: ../pan/gui/gui.cc:1463 #, fuzzy msgid "You have marked some articles for deletion." msgstr "Lisää _samanlaiset artikkelit valintaan" #: ../pan/gui/gui.cc:1464 msgid "Are you sure you want to delete them?" msgstr "" #: ../pan/gui/gui.cc:1490 msgid "Do you want to accept it permanently? (You can change this later.)" msgstr "" #: ../pan/gui/gui.cc:1670 #, fuzzy msgid "Copyright \\u00A9 2002-2012 Charles Kerr and others" msgstr "Copyright © 2002—2007 Charles Kerr" #: ../pan/gui/gui.cc:1675 msgid "translator-credits" msgstr "" "Ilkka Tuohela, 2006-2007.\n" "Flammie Pirinen, 2002-2006.\n" "\n" "https://l10n.gnome.org/teams/fi/" #: ../pan/gui/gui.cc:1808 #, fuzzy #| msgid "_2. Header Pane" msgid "_1. Header Pane" msgstr "_2. Otsikko‐osio" #: ../pan/gui/gui.cc:1809 #, fuzzy #| msgid "_2. Header Pane" msgid "_2. Search Pane" msgstr "_2. Otsikko‐osio" #: ../pan/gui/gui.cc:1815 msgid "_1. Group Pane" msgstr "_1. Ryhmälistaosio" #: ../pan/gui/gui.cc:1817 ../pan/gui/gui.cc:1819 msgid "_2. Header Pane" msgstr "_2. Otsikko‐osio" #: ../pan/gui/gui.cc:1821 msgid "_3. Body Pane" msgstr "_3 Viestiosio" #: ../pan/gui/gui.cc:1917 ../pan/gui/gui.cc:1932 #, fuzzy msgid " Bytes" msgstr "Tavua" #: ../pan/gui/gui.cc:1920 msgid " KB" msgstr "" #: ../pan/gui/gui.cc:1923 msgid " MB" msgstr "" #: ../pan/gui/gui.cc:1926 msgid " GB" msgstr "" #: ../pan/gui/gui.cc:1929 msgid " TB" msgstr "" #: ../pan/gui/gui.cc:1961 #, fuzzy, c-format msgid "This article is complete with %d part." msgid_plural "This article has all %d parts." msgstr[0] "artikkelissa on kaikki %d osaa." msgstr[1] "artikkelissa on kaikki %d osaa." #: ../pan/gui/gui.cc:1963 #, fuzzy, c-format msgid "This article is missing %d part." msgid_plural "This article is missing %d of its %d parts:" msgstr[0] "Artikkelista puuttuu %d %d osasta" msgstr[1] "Artikkelista puuttuu %d %d osasta" #: ../pan/gui/gui.cc:1981 ../pan/gui/header-pane.cc:1315 #: ../pan/gui/task-pane.cc:799 msgid "Message-ID" msgstr "Viestin tunnus" #: ../pan/gui/gui.cc:1982 ../pan/gui/header-pane.cc:1796 #: ../pan/gui/prefs-ui.cc:852 msgid "Lines" msgstr "Rivejä" #: ../pan/gui/gui.cc:1982 msgid "Size" msgstr "" #: ../pan/gui/gui.cc:1983 ../pan/gui/header-pane.cc:1812 #: ../pan/gui/prefs-ui.cc:850 msgid "Bytes" msgstr "Tavua" #: ../pan/gui/gui.cc:2033 msgid "" "Error loading iconv library. Encoding certain character sets will not work " "in GUI." msgstr "" #: ../pan/gui/gui.cc:2179 msgid "Body Pane Encoding" msgstr "Runkopaneelin merkistökoodaus" #: ../pan/gui/gui.cc:2210 ../pan/gui/task-pane.cc:609 #, c-format msgid "Offline" msgstr "Ei yhteyttä" #: ../pan/gui/gui.cc:2214 #, fuzzy, c-format msgid "Closing %d connection" msgid_plural "Closing %d connections" msgstr[0] "Suljetaan %d yhteyttä" msgstr[1] "Suljetaan %d yhteyttä" #: ../pan/gui/gui.cc:2216 ../pan/gui/gui.cc:2246 #, c-format msgid "No Connections" msgstr "Ei yhteyksiä" #: ../pan/gui/gui.cc:2220 #, c-format msgid "Connecting" msgstr "Yhdistetään" #: ../pan/gui/gui.cc:2233 #, c-format msgid "%s: %d idle, %d active @ %.1f KiBps" msgstr "%s: %d jouten, %d toiminnassa nopeudella %1.f KiB∕s" #: ../pan/gui/gui.cc:2289 #, c-format msgid "No Tasks" msgstr "Ei toimintoja" #: ../pan/gui/gui.cc:2291 ../pan/gui/prefs-ui.cc:1090 msgid "Tasks" msgstr "Toiminnot" #: ../pan/gui/gui.cc:2308 ../pan/gui/task-pane.cc:475 #, c-format msgid "%lu tasks, %s, %.1f KiBps, ETA %d:%02d:%02d" msgstr "%lu tehtävää, %s %.1f KiB∕s, arvioitu päättyminen %d:%02d:%02d" #: ../pan/gui/gui.cc:2360 msgid "" "Pan is now offline. Please see \"File|Event Log\" and correct the problem, " "then use \"File|Work Online\" to continue." msgstr "" "Pan on yhteydettömässä tilassa. Katso valikosta Tiedosto→Tapahtumaloki, ja " "korjaa ongelma. Valitse sitten Tiedosto→Yhdistetty tila jatkaaksesi." #: ../pan/gui/header-pane.cc:1311 ../pan/gui/task-pane.cc:795 msgid "Subject or Author" msgstr "Kirjoittaja tai Aihe" #: ../pan/gui/header-pane.cc:1312 ../pan/gui/task-pane.cc:796 #, fuzzy msgid "Sub or Auth (regex)" msgstr "Kirjoittaja tai Aihe" #: ../pan/gui/header-pane.cc:1314 ../pan/gui/header-pane.cc:1780 #: ../pan/gui/prefs-ui.cc:849 ../pan/gui/score-add-ui.cc:140 #: ../pan/gui/task-pane.cc:798 msgid "Author" msgstr "Kirjoittaja" #: ../pan/gui/header-pane.cc:1765 ../pan/gui/prefs-ui.cc:853 msgid "Score" msgstr "Pisteytys" #: ../pan/gui/log-ui.cc:104 msgid "Save Event List" msgstr "Tallenna tapahtumaluettelo" #: ../pan/gui/log-ui.cc:258 msgid "Pan: Events" msgstr "Pan: Tapahtumat" #: ../pan/gui/log-ui.cc:317 msgid "Message" msgstr "Viesti" #: ../pan/gui/pan.cc:359 msgid "Maximize" msgstr "" #: ../pan/gui/pan.cc:412 msgid "An error has occurred!" msgstr "" #: ../pan/gui/pan.cc:426 #, fuzzy msgid "New Articles!" msgstr "Seuraavaan _artikkeliin" #: ../pan/gui/pan.cc:427 msgid "" "There are new\n" "articles available." msgstr "" #: ../pan/gui/pan.cc:494 msgid "Toggle on/offline" msgstr "" #: ../pan/gui/pan.cc:542 msgid "" "Thank you for trying Pan!\n" " \n" "To start newsreading, first Add a Server." msgstr "" "Kiitoksia Panin käyttämisestä!\n" "\n" "Aloita valitsemalla Lisää palvelin." #: ../pan/gui/pan.cc:624 #, fuzzy msgid "" "General Options\n" " -h, --help Show this usage page.\n" " --verbose Be verbose (in non-GUI mode).\n" "\n" "URL Options\n" " headers:group.name Download new headers for the specified " "newsgroup.\n" " --no-gui On news:message-id, dump the article to stdout.\n" "\n" "NZB Batch Options\n" " --nzb file1 file2 ... Process nzb files without launching all of Pan.\n" " -o path, --output=path Path to save attachments listed in the nzb " "files.\n" " --no-gui Only show console output, not the download " "queue.\n" msgstr "" "Yleiset asetukset\n" " -h, --help Näytä tämä ohjesivu.\n" "\n" "URL-asetukset\n" " news:viestitunnus Näytä annettu artikkeli.\n" " news:ryhmän.nimi Näytä annettu ryhmä.\n" " headers:ryhmän.nimi Nouda otsikot annetulle ryhmälle.\n" " --no-gui news:viestitunnuksen kanssa näytä viesti\n" " vakiotulosteeseen.\n" "\n" "NZB-eräajoasetukset\n" " --nzb tiedosto1 tiedosto2 ... Suorita nzb‐tiedostot käynnistämättä\n" " Pania kokonaan.\n" " -o kansio, --output=kansio Hakemisto nzb‐tiedostoissa annettujen\n" " liitettyjen osien tallentamiseen.\n" " --no-gui Näytä vain konsolin tuloste ilman\n" " latausjonoa.\n" #: ../pan/gui/pan.cc:958 msgid "Error: --no-gui used without nzb files or news:message-id." msgstr "Virhe: --no-gui ilman nbz‐tiedostoja tai news:viestin tunnusta." #: ../pan/gui/pan.cc:962 #, c-format msgid "Pan %s started" msgstr "Pan %s käynnistetty" #: ../pan/gui/pan.cc:982 msgid "Please configure Pan's news servers before using it as an nzb client." msgstr "Aseta Panin palvelimet ennen kuin käytät sitä nzb‐asiakkaana." #: ../pan/gui/pan.cc:1100 msgid "Pan notification" msgstr "" #: ../pan/gui/post-ui.cc:163 #, c-format msgid "Upload queue: %lu tasks, %ld KB (~ %.2f MB) total." msgstr "" #: ../pan/gui/post-ui.cc:266 ../pan/gui/post-ui.cc:297 #, fuzzy, c-format msgid "Error setting custom spellchecker: %s" msgstr "Virhe oikoluvun asettamisessa: %s" #: ../pan/gui/post-ui.cc:270 ../pan/gui/post-ui.cc:278 #: ../pan/gui/post-ui.cc:301 ../pan/gui/post-ui.cc:309 #, c-format msgid "Error setting spellchecker: %s" msgstr "Virhe oikoluvun asettamisessa: %s" #: ../pan/gui/post-ui.cc:448 msgid "_Profile" msgstr "_Profiili" #: ../pan/gui/post-ui.cc:449 msgid "Set Editor" msgstr "Editori" #: ../pan/gui/post-ui.cc:451 msgid "_Send Article" msgstr "Lähetä artikkel_i" #: ../pan/gui/post-ui.cc:451 msgid "Send Article Now" msgstr "Lähetä nyt" #: ../pan/gui/post-ui.cc:452 #, fuzzy msgid "_Send and Save Articles to NZB" msgstr "Pan: Tallenna artikkeleja" #: ../pan/gui/post-ui.cc:452 #, fuzzy msgid "Send and Save Articles to NZB" msgstr "Pan: Tallenna artikkeleja" #: ../pan/gui/post-ui.cc:453 msgid "Set Character _Encoding..." msgstr "Aseta merkistö_koodaus..." #: ../pan/gui/post-ui.cc:454 #, fuzzy msgid "Set Content _Transfer Encoding..." msgstr "Aseta merkistö_koodaus..." #: ../pan/gui/post-ui.cc:455 msgid "Sa_ve Draft" msgstr "Tallenna _luonnos" #: ../pan/gui/post-ui.cc:455 msgid "Save as a Draft for Future Posting" msgstr "Tallenna luonnos myöhempää lähetystä varten" #: ../pan/gui/post-ui.cc:456 msgid "_Open Draft..." msgstr "_Avaa luonnos..." #: ../pan/gui/post-ui.cc:456 msgid "Open an Article Draft" msgstr "Avaa artikkeliluonnos" #: ../pan/gui/post-ui.cc:461 msgid "_Rot13" msgstr "_Rot13" #: ../pan/gui/post-ui.cc:461 msgid "Rot13 Selected Text" msgstr "Rot13 valitulle tekstille" #: ../pan/gui/post-ui.cc:462 msgid "Run _Editor" msgstr "Käynnistä _muokkain" #: ../pan/gui/post-ui.cc:462 #, fuzzy msgid "Run Editor" msgstr "Käynnistä _muokkain" #: ../pan/gui/post-ui.cc:464 msgid "Add _Files to Queue" msgstr "" #: ../pan/gui/post-ui.cc:464 msgid "Add Files to Queue" msgstr "" #: ../pan/gui/post-ui.cc:479 ../pan/gui/post-ui.cc:480 #, fuzzy msgid "Remove from Queue" msgstr "Poista palvelimen asetuksia" #: ../pan/gui/post-ui.cc:484 ../pan/gui/post-ui.cc:485 msgid "Clear List" msgstr "" #: ../pan/gui/post-ui.cc:489 ../pan/gui/post-ui.cc:490 #, fuzzy msgid "Select Needed Parts" msgstr "Hae k_aikki viestit" #: ../pan/gui/post-ui.cc:494 ../pan/gui/post-ui.cc:495 #: ../pan/gui/task-pane.cc:677 ../pan/gui/task-pane.cc:678 msgid "Move Up" msgstr "" #: ../pan/gui/post-ui.cc:499 ../pan/gui/post-ui.cc:500 #: ../pan/gui/task-pane.cc:682 ../pan/gui/task-pane.cc:683 msgid "Move Down" msgstr "" #: ../pan/gui/post-ui.cc:504 ../pan/gui/post-ui.cc:505 msgid "Move to Top" msgstr "" #: ../pan/gui/post-ui.cc:509 ../pan/gui/post-ui.cc:510 msgid "Move to Bottom" msgstr "" #: ../pan/gui/post-ui.cc:517 msgid "_Wrap Text" msgstr "Ri_vitä teksti" #: ../pan/gui/post-ui.cc:517 #, fuzzy msgid "Wrap Text" msgstr "Ri_vitä teksti" #: ../pan/gui/post-ui.cc:518 msgid "Always Run Editor" msgstr "Suorita aina muokkain" #: ../pan/gui/post-ui.cc:519 #, fuzzy #| msgid "Remember Character Encoding for this Group" msgid "Remember Character Encoding for This Group" msgstr "Muista tämän ryhmän merkistökoodaus" #: ../pan/gui/post-ui.cc:520 msgid "Thread Attached Replies" msgstr "" #: ../pan/gui/post-ui.cc:521 #, fuzzy #| msgid "Cache Article" msgid "PGP-Encrypt the Article" msgstr "Artikkeli välimuistiin" #: ../pan/gui/post-ui.cc:522 #, fuzzy #| msgid "And the article's" msgid "PGP-Sign the Article" msgstr "Ja viestin" #: ../pan/gui/post-ui.cc:523 msgid "Check _Spelling" msgstr "_Oikolue" #: ../pan/gui/post-ui.cc:549 msgid "New Article's Encoding:" msgstr "Uuden artikkelin merkistökoodaus:" #: ../pan/gui/post-ui.cc:559 #, fuzzy msgid "Content Transfer Encoding" msgstr "Merkistökoodaus" #: ../pan/gui/post-ui.cc:560 #, fuzzy msgid "New Article's Content Transfer Encoding:" msgstr "Uuden artikkelin merkistökoodaus:" #: ../pan/gui/post-ui.cc:740 msgid "Your changes will be lost!" msgstr "Muutoksiasi ei tallenneta!" #: ../pan/gui/post-ui.cc:741 msgid "Close this window and lose your changes?" msgstr "Suljetaanko ikkuna tallentamatta muutoksia?" #: ../pan/gui/post-ui.cc:786 ../pan/gui/post-ui.cc:825 msgid "There were problems with this post." msgstr "Viestin kanssa esiintyi ongelmia." #: ../pan/gui/post-ui.cc:788 ../pan/gui/post-ui.cc:827 #: ../pan/gui/post-ui.cc:892 msgid "Go Back" msgstr "Taaksepäin" #: ../pan/gui/post-ui.cc:790 #, fuzzy #| msgid "Post Anyway" msgid "Continue Anyway" msgstr "Lähetä viesti joka tapauksessa" #. Prompt the user #: ../pan/gui/post-ui.cc:819 #, c-format msgid "" "Message uses characters not specified in charset '%s' - possibly use '%s' " msgstr "" "Viestissä on merkkejä, joita ei ole määritelty merkistössä \"%s\", kokeile " "vaihtaa merkistöksi \"%s\"" #: ../pan/gui/post-ui.cc:842 msgid "Go _Online" msgstr "_Yhdistä" #: ../pan/gui/post-ui.cc:891 msgid "The file queue is empty, so no files can be saved." msgstr "" #: ../pan/gui/post-ui.cc:1070 msgid "IO Error" msgstr "" #: ../pan/gui/post-ui.cc:1070 msgid "No space left on device" msgstr "" #: ../pan/gui/post-ui.cc:1071 #, c-format msgid "Error copying message to %s folder. Reason: %s" msgstr "" #: ../pan/gui/post-ui.cc:1077 #, c-format msgid "Error creating message in %s mail folder: Invalid article." msgstr "" #: ../pan/gui/post-ui.cc:1099 msgid "" "No posting server is set for this posting profile.\n" "Please edit the profile via Edit|Manage Posting Profiles." msgstr "" "Tälle profiilille ei ole määritelty lähetyspalvelinta.\n" "Aseta lähetyspalvelin valikosta Muokkaa→Muokkaa lähetysprofiileja." #: ../pan/gui/post-ui.cc:1104 msgid "" "The selected posting server is currently disabled. Please choose an " "appropriate alternative." msgstr "" #: ../pan/gui/post-ui.cc:1146 msgid "Pan is Offline." msgstr "Pan ei ole yhteydessä." #: ../pan/gui/post-ui.cc:1147 msgid "Go online to post the article?" msgstr "Yhdistetäänkö artikkelin lähettämistä varten?" #: ../pan/gui/post-ui.cc:1196 #, c-format msgid "" "Error signing/encrypting your message. Perhaps you misspelled your email " "address (%s)?" msgstr "" #: ../pan/gui/post-ui.cc:1344 msgid "Error opening temporary file" msgstr "Virhe avattaessa väliaikaistiedostoa" #: ../pan/gui/post-ui.cc:1356 #, c-format msgid "Error writing article to temporary file: %s" msgstr "Virhe kirjoitettaessa artikkelia väliaikaistiedostoon: %s" #: ../pan/gui/post-ui.cc:1375 #, c-format msgid "Error parsing \"external editor\" command line: %s (Command was: %s)" msgstr "Virhe tulkitessa ulkoisen muokkaimen komentoa: %s (Komento oli: %s)" #: ../pan/gui/post-ui.cc:1416 #, c-format msgid "Error starting external editor: %s" msgstr "Virhe käynnistettäessä ulkoista muokkainta: %s" #: ../pan/gui/post-ui.cc:1479 msgid "Open Draft Article" msgstr "Avaa artikkeliluonnos" #: ../pan/gui/post-ui.cc:1691 msgid "Save Draft Article" msgstr "Tallenna artikkeliluonnos" #: ../pan/gui/post-ui.cc:1889 #, c-format msgid "Couldn't parse signature command \"%s\": %s" msgstr "Ei voitu jäsentää allekirjoituskomentoa %s: %s" #: ../pan/gui/post-ui.cc:1925 msgid "Couldn't convert signature to UTF-8." msgstr "Allekirjoitusta ei voitu muuntaa UTF-8-muotoon." #: ../pan/gui/post-ui.cc:2427 msgid "F_rom" msgstr "L_ähettäjä" #: ../pan/gui/post-ui.cc:2444 msgid "_Subject" msgstr "_Aihe" #: ../pan/gui/post-ui.cc:2457 msgid "_Newsgroups" msgstr "_Keskusteluryhmät" #: ../pan/gui/post-ui.cc:2471 msgid "Mail _To" msgstr "_Sähköposti osoitteeseen" #: ../pan/gui/post-ui.cc:2573 msgid "Delete from Queue" msgstr "" #: ../pan/gui/post-ui.cc:2586 msgid "No." msgstr "" #: ../pan/gui/post-ui.cc:2590 ../pan/gui/post-ui.cc:2682 #: ../pan/gui/post-ui.cc:2723 #, fuzzy msgid "Filename" msgstr "_Tiedosto" #: ../pan/gui/post-ui.cc:2592 msgid "Size (KB)" msgstr "" #: ../pan/gui/post-ui.cc:2690 msgid "The current filename" msgstr "" #: ../pan/gui/post-ui.cc:2694 #, fuzzy msgid "Subject Line" msgstr "Aihe" #: ../pan/gui/post-ui.cc:2702 msgid "The current subject line" msgstr "" #: ../pan/gui/post-ui.cc:2716 msgid "No. " msgstr "" #: ../pan/gui/post-ui.cc:2720 msgid "Enable/Disable" msgstr "" #: ../pan/gui/post-ui.cc:2754 msgid "Follo_wup-To" msgstr "_Keskustelunsiirto" #. i18n: "poster" is a key used by many newsreaders. probably safest to keep this key in english. #: ../pan/gui/post-ui.cc:2763 msgid "" "The newsgroups where replies to your message should go. This is only needed " "if it differs from the \"Newsgroups\" header.\n" "\n" "To direct all replies to your email address, use \"Followup-To: poster\"" msgstr "" "Ryhmät, joihin vastausten tulisi mennä. Tarvitaan vain, jos arvo on eri kuin " "\"Newsgroup\"-otsake.\n" "Ohjataksesi vastaukset sähköpostiisi, käytä \"Keskustelunsiirto: lähettäjä-" "otsaketta." #: ../pan/gui/post-ui.cc:2770 msgid "_Reply-To" msgstr "_Vastausosoite" #: ../pan/gui/post-ui.cc:2778 #, fuzzy #| msgid "" #| "The email account where mail replies to your posted message should go. " #| "This is only needed if it differs from the \"From\" header." msgid "" "The email account where mail replies to your posted message should go. This " "is only needed if it differs from the \"From\" header." msgstr "" "Osoite johon viestiisi lähetettyjen sähköpostivastauksien tulisi mennä. " "Tarvitaan vain jos eri kuin \"Lähettäjä\"-otsake." #: ../pan/gui/post-ui.cc:2785 msgid "_Custom Headers" msgstr "_Mukautetut otsakkeet" #: ../pan/gui/post-ui.cc:2809 msgid "Add \"_User-Agent\" header" msgstr "Lisää \"_User-agent\"-otsake" #: ../pan/gui/post-ui.cc:2816 #, fuzzy msgid "Add \"Message-_ID\" header" msgstr "Lisää \"Message-Id\"-otsake" #: ../pan/gui/post-ui.cc:2947 #, fuzzy msgid "Select Parts" msgstr "Hae k_aikki viestit" #: ../pan/gui/post-ui.cc:2960 msgid "_Parts" msgstr "" #: ../pan/gui/post-ui.cc:3114 msgid "Post Article" msgstr "Lähetä artikkeli" #: ../pan/gui/post-ui.cc:3135 msgid "_Message" msgstr "_Viesti" #: ../pan/gui/post-ui.cc:3136 msgid "More _Headers" msgstr "Lisää _otsakkeita" #: ../pan/gui/post-ui.cc:3137 msgid "File _Queue" msgstr "" #: ../pan/gui/post-ui.cc:3169 ../pan/gui/profiles-dialog.cc:481 #, no-c-format msgid "On %d, %n wrote:" msgstr "%d, %n kirjoitti:" #: ../pan/gui/post-ui.cc:3198 msgid "Add files to queue" msgstr "" #: ../pan/gui/post-ui.cc:3274 msgid "Save Upload Queue as NZB File" msgstr "" #: ../pan/gui/prefs.cc:364 #, c-format msgid "Couldn't parse %s color \"%s\"" msgstr "Ei voitu tulkita kohteen %s väriä %s" #: ../pan/gui/prefs-ui.cc:123 msgid "Grab Key" msgstr "" #: ../pan/gui/prefs-ui.cc:129 #, c-format msgid "" "Press the combination of the keys\n" "you want to use for \"%s\"." msgstr "" #: ../pan/gui/prefs-ui.cc:169 msgid "Edit Shortcut" msgstr "" #: ../pan/gui/prefs-ui.cc:231 msgid "Error: Shortcut key is invalid!" msgstr "" #: ../pan/gui/prefs-ui.cc:247 msgid "Error: Shortcut key already exists!" msgstr "" #: ../pan/gui/prefs-ui.cc:561 #, fuzzy msgid "Show only icons" msgstr "Näytä artikkelin tiedot" #: ../pan/gui/prefs-ui.cc:562 #, fuzzy msgid "Show only text" msgstr "Näytä v_iestiosio" #: ../pan/gui/prefs-ui.cc:563 #, fuzzy msgid "Show icons and text" msgstr "Tallenna liitetiedostot ja teksti" #: ../pan/gui/prefs-ui.cc:602 msgid "Use GNOME Preferences" msgstr "Käytä Gnomen asetuksia" #: ../pan/gui/prefs-ui.cc:603 msgid "Use KDE Preferences" msgstr "Käytä KDE:n asetuksia" #: ../pan/gui/prefs-ui.cc:604 msgid "Use OS X Preferences" msgstr "Käytä OS X ‐asetuksia" #: ../pan/gui/prefs-ui.cc:605 msgid "Use Windows Preferences" msgstr "Käytä Windows‐asetuksia" #: ../pan/gui/prefs-ui.cc:606 msgid "Custom Command:" msgstr "Mukautettu komento:" #: ../pan/gui/prefs-ui.cc:658 #, fuzzy msgid "Disabled" msgstr "Päällä" #: ../pan/gui/prefs-ui.cc:659 msgid "Only new (score == 0)" msgstr "" #: ../pan/gui/prefs-ui.cc:660 #, fuzzy msgid "9999 or more" msgstr "Vähintään 9999 pistettä:" #: ../pan/gui/prefs-ui.cc:661 #, fuzzy msgid "5000 to 9998" msgstr "Pisteet 5000—9998:" #: ../pan/gui/prefs-ui.cc:662 msgid "1 to 4999" msgstr "" #: ../pan/gui/prefs-ui.cc:663 #, fuzzy msgid "-9998 to -1" msgstr "Pisteet −9998—−1:" #: ../pan/gui/prefs-ui.cc:664 #, fuzzy msgid "-9999 or less" msgstr "Enintään −9999 pistettä:" #: ../pan/gui/prefs-ui.cc:728 #, c-format msgid "Select default global character set. Current setting: %s." msgstr "" #: ../pan/gui/prefs-ui.cc:760 msgid "Global Character Set Settings" msgstr "" #: ../pan/gui/prefs-ui.cc:854 ../pan/gui/task-pane.cc:1076 msgid "State" msgstr "Tila" #: ../pan/gui/prefs-ui.cc:888 msgid "Enabled" msgstr "Päällä" #: ../pan/gui/prefs-ui.cc:892 msgid "Column Name" msgstr "Sarakenimi" #: ../pan/gui/prefs-ui.cc:930 msgid "Pan: Preferences" msgstr "Pan: Asetukset" #: ../pan/gui/prefs-ui.cc:945 msgid "Mouse" msgstr "Hiiri" #: ../pan/gui/prefs-ui.cc:947 msgid "Single-click activates, rather than selects, _groups" msgstr "Yksinkertainen hiirenpainallus aktivoi r_yhmät valitsemisen sijaan" #: ../pan/gui/prefs-ui.cc:949 msgid "Single-click activates, rather than selects, _articles" msgstr "Yksinkertainen hiirenpainallus aktivoi _otsikon valitsemisen sijaan" #: ../pan/gui/prefs-ui.cc:952 msgid "Groups" msgstr "Ryhmät" #: ../pan/gui/prefs-ui.cc:954 msgid "Get new headers in subscribed groups on _startup" msgstr "Hae uudet otsikot tilatuista ryhmistä _käynnistyksessä" #: ../pan/gui/prefs-ui.cc:956 msgid "Get new headers when _entering group" msgstr "Lataa uudet otsikot kun _ryhmä avataan" #: ../pan/gui/prefs-ui.cc:958 msgid "Mark entire group _read when leaving group" msgstr "_Merkitse ryhmän artikkelit luetuiksi ryhmästä poistuttaessa" #: ../pan/gui/prefs-ui.cc:960 msgid "Mark entire group read before getting _new headers" msgstr "_Merkitse ryhmän artikkelit luetuiksi _uusia haettaessa" #: ../pan/gui/prefs-ui.cc:962 msgid "E_xpand all threads when entering group" msgstr "L_aajenna säikeet ryhmään tultaessa" #: ../pan/gui/prefs-ui.cc:967 msgid "Articles" msgstr "Artikkelit" #: ../pan/gui/prefs-ui.cc:969 #, fuzzy #| msgid "Mark Article as _Unread" msgid "Mark downloaded articles read" msgstr "Me_rkitse lukemattomaksi" #: ../pan/gui/prefs-ui.cc:971 msgid "Space selects next article rather than next unread" msgstr "" "Välilyönnillä valitaan seuraava artikkeli seuraavan lukemattoman sijaan" #: ../pan/gui/prefs-ui.cc:973 #, fuzzy msgid "Expand threads upon selection" msgstr "Lisää s_äikeet valintaan" #: ../pan/gui/prefs-ui.cc:975 msgid "Always ask before deleting an article" msgstr "" #: ../pan/gui/prefs-ui.cc:977 msgid "Smooth scrolling" msgstr "Pehmeä vieritys" #: ../pan/gui/prefs-ui.cc:982 #, fuzzy msgid "Article Cache" msgstr "Tyhjennä artikkelivälimuisti" #: ../pan/gui/prefs-ui.cc:983 msgid "Clear article cache on shutdown" msgstr "Tyhjennä artikkelivälimuisti suljettaessa" #: ../pan/gui/prefs-ui.cc:986 msgid "Size of article cache (in MiB):" msgstr "" #: ../pan/gui/prefs-ui.cc:991 msgid "File extension for cached articles: " msgstr "" #: ../pan/gui/prefs-ui.cc:996 msgid "Tabs" msgstr "" #: ../pan/gui/prefs-ui.cc:1001 msgid "_Behavior" msgstr "_Käyttäytyminen" #: ../pan/gui/prefs-ui.cc:1001 #, fuzzy msgid "Behavior" msgstr "_Käyttäytyminen" #: ../pan/gui/prefs-ui.cc:1007 #, fuzzy #| msgid "_Task Manager" msgid "Task Pane" msgstr "Toimintojen _hallinta" #: ../pan/gui/prefs-ui.cc:1008 msgid "Show Task Pane info popups" msgstr "" #: ../pan/gui/prefs-ui.cc:1010 #, fuzzy msgid "Show Download Meter" msgstr "Näytä v_iestiosio" #: ../pan/gui/prefs-ui.cc:1014 #, fuzzy #| msgid "_Body Pane" msgid "_Panes" msgstr "_Viestiosio" #: ../pan/gui/prefs-ui.cc:1014 #, fuzzy #| msgid "Japanese" msgid "Panes" msgstr "Japanilainen" #: ../pan/gui/prefs-ui.cc:1020 #, fuzzy msgid "Language Settings" msgstr "Asetukset" #. systray and notify popup #: ../pan/gui/prefs-ui.cc:1029 #, fuzzy msgid "System Tray Behavior" msgstr "_Käyttäytyminen" #: ../pan/gui/prefs-ui.cc:1031 msgid "Minimize to tray" msgstr "" #: ../pan/gui/prefs-ui.cc:1033 msgid "Start Pan minimized" msgstr "" #: ../pan/gui/prefs-ui.cc:1036 #, fuzzy msgid "Show notifications" msgstr "Näytä artikkelin tiedot" #. allow multiple instances (seperate, not communicating with dbus) #: ../pan/gui/prefs-ui.cc:1041 #, fuzzy msgid "Startup Behavior" msgstr "_Käyttäytyminen" #: ../pan/gui/prefs-ui.cc:1043 msgid "Allow multiple instances of Pan" msgstr "" #: ../pan/gui/prefs-ui.cc:1048 #, fuzzy msgid "Autosave Article Draft" msgstr "Avaa artikkeliluonnos" #: ../pan/gui/prefs-ui.cc:1050 #, fuzzy msgid "Minutes to autosave the current Article Draft: " msgstr "Avaa artikkeliluonnos" #: ../pan/gui/prefs-ui.cc:1055 #, fuzzy msgid "Autosave Articles" msgstr "Tallenna artikkeleja" #: ../pan/gui/prefs-ui.cc:1057 msgid "Minutes to autosave newsrc files: " msgstr "" #: ../pan/gui/prefs-ui.cc:1064 msgid "GNOME Keyring" msgstr "" #: ../pan/gui/prefs-ui.cc:1065 msgid "Store passwords in GNOME Keyring" msgstr "" #: ../pan/gui/prefs-ui.cc:1069 msgid "_Miscellaneous" msgstr "" #: ../pan/gui/prefs-ui.cc:1069 msgid "Miscellaneous" msgstr "" #: ../pan/gui/prefs-ui.cc:1074 msgid "Pane Layout" msgstr "Osioiden asettelu" # Nää on sellasia ikkuna-asetelmia #: ../pan/gui/prefs-ui.cc:1093 msgid "1=Groups, 2=Headers, 3=Body" msgstr "1=Ryhmät, 2=Otsakkeet, 3=Viesti" #: ../pan/gui/prefs-ui.cc:1095 msgid "1=Groups, 2=Body, 3=Headers" msgstr "1=Ryhmät, 2=Viesti, 3=Otsakkeet" #: ../pan/gui/prefs-ui.cc:1097 msgid "1=Headers, 2=Groups, 3=Body" msgstr "1=Otsakkeet, 2=Ryhmät, 3=Viesti" #: ../pan/gui/prefs-ui.cc:1099 msgid "1=Headers, 2=Body, 3=Groups" msgstr "1=Otsakkeet, 2=Viesti, 3=Ryhmät" #: ../pan/gui/prefs-ui.cc:1101 msgid "1=Body, 2=Groups, 3=Headers" msgstr "1=Viesti, 2=Ryhmät, 3=Otsakkeet" #: ../pan/gui/prefs-ui.cc:1103 msgid "1=Body, 2=Headers, 3=Groups" msgstr "1=Viesti, 2=Otsakkeet, 3=Ryhmät" #: ../pan/gui/prefs-ui.cc:1107 #, fuzzy msgid "Layout" msgstr "Osioiden _asettelu" #: ../pan/gui/prefs-ui.cc:1112 msgid "Header Pane Columns" msgstr "Otsikko-osion sarakkeet" #: ../pan/gui/prefs-ui.cc:1116 msgid "_Headers" msgstr "_Otsikot" #: ../pan/gui/prefs-ui.cc:1116 #, fuzzy msgid "Headers" msgstr "_Otsikot" #: ../pan/gui/prefs-ui.cc:1122 msgid "" "This menu lets you configure Pan to take certain actions on your behalf " "automatically, based on an article's score." msgstr "" #: ../pan/gui/prefs-ui.cc:1127 #, fuzzy #| msgid "Mark Article as _Unread" msgid "Mark affected articles read" msgstr "Me_rkitse lukemattomaksi" #: ../pan/gui/prefs-ui.cc:1136 #, fuzzy #| msgid "set the article's score to" msgid "_Delete articles scoring at: " msgstr "aseta pisteiksi" #: ../pan/gui/prefs-ui.cc:1142 #, fuzzy #| msgid "Mark Article as _Unread" msgid "Mark articles read scoring at: " msgstr "Me_rkitse lukemattomaksi" #: ../pan/gui/prefs-ui.cc:1148 #, fuzzy #| msgid "set the article's score to" msgid "_Cache articles scoring at: " msgstr "aseta pisteiksi" #: ../pan/gui/prefs-ui.cc:1154 msgid "Download attachments of articles scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1157 #, fuzzy msgid "Actions" msgstr "_Toiminnot" #: ../pan/gui/prefs-ui.cc:1162 ../pan/gui/prefs-ui.cc:1183 msgid "Fonts" msgstr "Fontit" #: ../pan/gui/prefs-ui.cc:1164 msgid "Use custom font in Group Pane:" msgstr "Käytä omaa fonttia ryhmäosiossa:" #: ../pan/gui/prefs-ui.cc:1169 msgid "Use custom font in Header Pane:" msgstr "Käytä omaa fonttia otsikko‐osiossa:" #: ../pan/gui/prefs-ui.cc:1174 msgid "Use custom font in Body Pane:" msgstr "Käytä omaa fonttia sisältöosiossa:" #: ../pan/gui/prefs-ui.cc:1179 msgid "Monospace font:" msgstr "Tasavälinen fontti:" #: ../pan/gui/prefs-ui.cc:1183 msgid "_Fonts" msgstr "_Fontit" #: ../pan/gui/prefs-ui.cc:1192 msgid "Header Pane" msgstr "Otsikko-osio" #: ../pan/gui/prefs-ui.cc:1195 ../pan/gui/prefs-ui.cc:1201 #: ../pan/gui/prefs-ui.cc:1207 ../pan/gui/prefs-ui.cc:1213 #: ../pan/gui/prefs-ui.cc:1219 ../pan/gui/prefs-ui.cc:1225 #: ../pan/gui/prefs-ui.cc:1234 ../pan/gui/prefs-ui.cc:1240 #: ../pan/gui/prefs-ui.cc:1246 ../pan/gui/prefs-ui.cc:1252 #: ../pan/gui/prefs-ui.cc:1258 ../pan/gui/prefs-ui.cc:1268 #: ../pan/gui/prefs-ui.cc:1278 msgid "Text:" msgstr "Teksti:" #: ../pan/gui/prefs-ui.cc:1197 ../pan/gui/prefs-ui.cc:1203 #: ../pan/gui/prefs-ui.cc:1209 ../pan/gui/prefs-ui.cc:1215 #: ../pan/gui/prefs-ui.cc:1221 ../pan/gui/prefs-ui.cc:1227 #: ../pan/gui/prefs-ui.cc:1236 ../pan/gui/prefs-ui.cc:1242 #: ../pan/gui/prefs-ui.cc:1248 ../pan/gui/prefs-ui.cc:1254 #: ../pan/gui/prefs-ui.cc:1260 ../pan/gui/prefs-ui.cc:1270 #: ../pan/gui/prefs-ui.cc:1280 msgid "Background:" msgstr "Tausta:" #: ../pan/gui/prefs-ui.cc:1199 msgid "Scores of 9999 or more:" msgstr "Vähintään 9999 pistettä:" #: ../pan/gui/prefs-ui.cc:1205 msgid "Scores from 5000 to 9998:" msgstr "Pisteet 5000—9998:" #: ../pan/gui/prefs-ui.cc:1211 msgid "Scores from 1 to 4999:" msgstr "Pisteet 1—4999:" #: ../pan/gui/prefs-ui.cc:1217 msgid "Scores from -9998 to -1:" msgstr "Pisteet −9998—−1:" #: ../pan/gui/prefs-ui.cc:1223 msgid "Scores of -9999 or less:" msgstr "Enintään −9999 pistettä:" #: ../pan/gui/prefs-ui.cc:1229 msgid "Collapsed thread with unread articles:" msgstr "" #: ../pan/gui/prefs-ui.cc:1231 msgid "Body Pane" msgstr "Viestiosio" #: ../pan/gui/prefs-ui.cc:1238 msgid "First level of quoted text:" msgstr "" #: ../pan/gui/prefs-ui.cc:1244 msgid "Second level of quoted text:" msgstr "" #: ../pan/gui/prefs-ui.cc:1250 msgid "Third level of quoted text:" msgstr "" #. #: ../pan/gui/prefs-ui.cc:1256 msgid "URL:" msgstr "URLit:" #. #: ../pan/gui/prefs-ui.cc:1262 msgid "Signature:" msgstr "Allekirjoitus:" #: ../pan/gui/prefs-ui.cc:1265 #, fuzzy #| msgid "_Group Pane" msgid "Group Pane" msgstr "_Ryhmälistaosio" #. #: ../pan/gui/prefs-ui.cc:1272 msgid "Group Color:" msgstr "" #: ../pan/gui/prefs-ui.cc:1276 #, fuzzy msgid "Other Text" msgstr "Ri_vitä teksti" #: ../pan/gui/prefs-ui.cc:1282 #, fuzzy msgid "Text Color:" msgstr "_Tekstimuokkain:" #: ../pan/gui/prefs-ui.cc:1285 msgid "_Colors" msgstr "_Värit" #: ../pan/gui/prefs-ui.cc:1285 #, fuzzy msgid "Colors" msgstr "_Värit" #: ../pan/gui/prefs-ui.cc:1290 msgid "Preferred Applications" msgstr "Suosikkiohjelmat" #: ../pan/gui/prefs-ui.cc:1294 #, fuzzy msgid "_Web browser:" msgstr "_Www-selain:" #: ../pan/gui/prefs-ui.cc:1297 #, fuzzy msgid "_Mail reader:" msgstr "_Sähköposti:" #: ../pan/gui/prefs-ui.cc:1299 #, fuzzy msgid "_Text editor:" msgstr "_Tekstimuokkain:" #: ../pan/gui/prefs-ui.cc:1301 msgid "_HTML previewer:" msgstr "" #: ../pan/gui/prefs-ui.cc:1303 #, fuzzy msgid "_Applications" msgstr "O_hjelmat" #: ../pan/gui/prefs-ui.cc:1303 #, fuzzy msgid "Applications" msgstr "O_hjelmat" #: ../pan/gui/prefs-ui.cc:1308 ../pan/gui/task-pane.cc:552 #, fuzzy msgid "Encoding" msgstr "Puretaan" #: ../pan/gui/prefs-ui.cc:1312 msgid "Default bytes per file (for encoder): " msgstr "" #: ../pan/gui/prefs-ui.cc:1317 #, fuzzy msgid "_Upload" msgstr "O_hjelmat" #: ../pan/gui/prefs-ui.cc:1317 msgid "Upload" msgstr "" #: ../pan/gui/prefs-ui.cc:1326 msgid "_Shortcuts" msgstr "" #: ../pan/gui/prefs-ui.cc:1326 msgid "Shortcuts" msgstr "" #: ../pan/gui/profiles-dialog.cc:83 msgid "Please choose your email address according to your PGP key's user id." msgstr "" #: ../pan/gui/profiles-dialog.cc:131 msgid "Posting Profile" msgstr "Lähetysprofiili" #: ../pan/gui/profiles-dialog.cc:143 msgid "Profile Information" msgstr "Profiilin tietoja" #: ../pan/gui/profiles-dialog.cc:147 msgid "_Profile Name:" msgstr "_Profiilin nimi:" #: ../pan/gui/profiles-dialog.cc:150 msgid "Required Information" msgstr "Vaaditut tiedot" #: ../pan/gui/profiles-dialog.cc:154 msgid "_Full Name:" msgstr "_Koko nimi:" #: ../pan/gui/profiles-dialog.cc:158 msgid "" "Your email address.\n" "Note that this has to match your PGP signature's address\n" "if you want your messages to be PGP-signed or encrypted correctly." msgstr "" #: ../pan/gui/profiles-dialog.cc:162 msgid "_Email Address:" msgstr "_Sähköpostiosoite:" #: ../pan/gui/profiles-dialog.cc:164 msgid "_Post Articles via:" msgstr "_Lähetä viestit käyttäen reittiä:" #: ../pan/gui/profiles-dialog.cc:167 msgid "Signature" msgstr "Allekirjoitus" #: ../pan/gui/profiles-dialog.cc:170 msgid "_Use a Signature" msgstr "Käytä _allekirjoitusta" #: ../pan/gui/profiles-dialog.cc:174 msgid "Signature File" msgstr "Allekirjoitustiedosto" #: ../pan/gui/profiles-dialog.cc:184 msgid "Text File" msgstr "Tekstitiedosto" #: ../pan/gui/profiles-dialog.cc:186 msgid "Text" msgstr "Teksti" #: ../pan/gui/profiles-dialog.cc:188 msgid "Command" msgstr "Komento" #: ../pan/gui/profiles-dialog.cc:191 #, fuzzy msgid "PGP Signature" msgstr "Allekirjoitus" #: ../pan/gui/profiles-dialog.cc:196 #, fuzzy msgid "Signature Type: " msgstr "_Allekirjoitustiedostotyyppi:" #: ../pan/gui/profiles-dialog.cc:226 msgid "X-Face (Avatar)" msgstr "" #: ../pan/gui/profiles-dialog.cc:229 msgid "" "You can add an avatar icon to your articles with a unique X-Face code.\n" "Add the code without the trailing \"X-Face:\" \n" " if it was generated by a helper program (for example http://www.dairiki.org/" "xface/xface.php)." msgstr "" #: ../pan/gui/profiles-dialog.cc:232 msgid "_X-Face:" msgstr "" #: ../pan/gui/profiles-dialog.cc:234 msgid "Optional Information" msgstr "Valinnaiset tiedot" #: ../pan/gui/profiles-dialog.cc:239 #, fuzzy msgid "" "When posting to Usenet, your article's Message-ID contains a domain name.\n" "You can set a custom domain name here, or leave it blank to let Pan use the " "domain name from your email address." msgstr "" "Usenettiin postittaessa viestin tunnus sisältää verkko-osoitteen. Voit " "syöttää verkko-osoitteen tähän tai jättää kentän tyhjäsi ja antaa Panin " "käyttää sähköpostiosoitteesi verkko-osaa." #: ../pan/gui/profiles-dialog.cc:242 msgid "Message-ID _Domain Name:" msgstr "Viestin tunnuksen _verkko-osoite" #: ../pan/gui/profiles-dialog.cc:246 #, c-format msgid "" "%i for Message-ID\n" "%a for Author and Address\n" "%n for Author name\n" "%d for Date" msgstr "" "%i korvautuu viestin tunnuksella\n" "%a korvautuu kirjoittajalla ja osoitteella\n" "%n korvautuu kirjoittajalla\n" "%d korvautuu päivämäärällä" # siis kenelle kunnia viestistä kuuluu? #: ../pan/gui/profiles-dialog.cc:247 msgid "_Attribution:" msgstr "_Attribuutio:" #: ../pan/gui/profiles-dialog.cc:271 #, fuzzy msgid "" "Extra headers to be included in your articles, such as\n" "Reply-To: \"Your Name\"\n" "Organization: Your Organization\n" msgstr "" "Lisäotsakkeet, jotka liitetään viestihin, kuten\n" "Reply-To: \"Oikea Nimi\" \n" "Organization: Yritys" #: ../pan/gui/profiles-dialog.cc:281 msgid "E_xtra Headers:" msgstr "Li_sää otsakkeita" #: ../pan/gui/profiles-dialog.cc:326 msgid "Invalid email address." msgstr "Virheellinen sähkopostiosoite:" #: ../pan/gui/profiles-dialog.cc:327 msgid "Please use an address of the form joe@somewhere.org" msgstr "Käytä osoitetta, joka on muotoa nimi@example.org" #: ../pan/gui/profiles-dialog.cc:482 msgid "New Profile" msgstr "Uusi profiili" #: ../pan/gui/profiles-dialog.cc:528 msgid "Posting Profiles" msgstr "Lähetysprofiilit" #: ../pan/gui/profiles-dialog.cc:544 msgid "Profiles" msgstr "Profiilit" #: ../pan/gui/save-attach-ui.cc:46 #, fuzzy, c-format msgid "" "%g - group as one directory (alt.binaries.pictures.trains)\n" "%G - group as nested directory (/alt/binaries/pictures/trains)\n" "%s - Subject line excerpt\n" "%S - Subject line\n" "%n - Poster display name\n" "%e - Poster email address\n" "%d - Article timestamp\n" "\"/home/user/News/Pan/%g\" becomes\n" "\"/home/user/News/Pan/alt.binaries.pictures.trains\", and\n" "\"/home/user/News/Pan/%G\" becomes\n" "\"/home/user/News/Pan/alt/binaries/pictures/trains\"," msgstr "" "%g - ryhmän nimi yhtenä hakemistona muodossa \"alt.binaries.pictures.trains" "\"\n" "%G - ryhmän nimi sisäkkäisenä hakemistorakenteena muodossa\"alt/binaries/" "pictures/trains\"\n" " \n" "merkkijonosta \"/home/user/News/Pan/%g\" tulisi\n" "\"/home/user/News/Pan/alt.binaries.pictures.trains\" ja\n" "merkkijonosta \"/home/user/News/Pan/%G\" tulisi\n" "\"/home/user/News/Pan/alt/binaries/pictures/trains\"." #: ../pan/gui/save-attach-ui.cc:197 ../pan/gui/save-ui.cc:217 msgid "Add to the queue sorted by date posted" msgstr "Lisää jonoon iän mukaan järjestettynä" #: ../pan/gui/save-attach-ui.cc:198 ../pan/gui/save-ui.cc:218 msgid "Add to the front of the queue" msgstr "Lisää jonon alkuun" #: ../pan/gui/save-attach-ui.cc:199 ../pan/gui/save-ui.cc:219 msgid "Add to the back of the queue" msgstr "Lisää jonon loppuun" #: ../pan/gui/save-attach-ui.cc:231 #, fuzzy msgid "Pan: Save Attachments" msgstr "Tallenna liitteet" #: ../pan/gui/save-attach-ui.cc:256 ../pan/gui/save-attach-ui.cc:274 #: ../pan/gui/save-ui.cc:271 ../pan/gui/save-ui.cc:289 msgid "_Location:" msgstr "_Sijainti:" #: ../pan/gui/save-attach-ui.cc:260 ../pan/gui/save-ui.cc:275 msgid "Save Articles" msgstr "Tallenna artikkeleja" #: ../pan/gui/save-attach-ui.cc:277 ../pan/gui/save-ui.cc:292 #, c-format msgid "_Group's path: %s" msgstr "Ryhmän _hakemisto: %s" #: ../pan/gui/save-attach-ui.cc:288 ../pan/gui/save-ui.cc:307 msgid "_Priority:" msgstr "_Prioriteetti:" #: ../pan/gui/save-ui.cc:46 #, fuzzy, c-format msgid "" "%g - group as one directory (alt.binaries.pictures.trains)\n" "%G - group as nested directory (/alt/binaries/pictures/trains)\n" "%s - subject line excerpt\n" "%S - subject line\n" "%n - Poster display name\n" "%e - Poster email address\n" "%d - Article timestamp\n" " \n" "\"/home/user/News/Pan/%g\" becomes\n" "\"/home/user/News/Pan/alt.binaries.pictures.trains\", and\n" "\"/home/user/News/Pan/%G\" becomes\n" "\"/home/user/News/Pan/alt/binaries/pictures/trains\"," msgstr "" "%g - ryhmän nimi yhtenä hakemistona muodossa \"alt.binaries.pictures.trains" "\"\n" "%G - ryhmän nimi sisäkkäisenä hakemistorakenteena muodossa\"alt/binaries/" "pictures/trains\"\n" " \n" "merkkijonosta \"/home/user/News/Pan/%g\" tulisi\n" "\"/home/user/News/Pan/alt.binaries.pictures.trains\" ja\n" "merkkijonosta \"/home/user/News/Pan/%G\" tulisi\n" "\"/home/user/News/Pan/alt/binaries/pictures/trains\"." #: ../pan/gui/save-ui.cc:208 msgid "Save attachments" msgstr "Tallenna liitteet" #: ../pan/gui/save-ui.cc:209 msgid "Save text" msgstr "Tallenna teksti" #: ../pan/gui/save-ui.cc:210 msgid "Save attachments and text" msgstr "Tallenna liitetiedostot ja teksti" #: ../pan/gui/save-ui.cc:246 msgid "Pan: Save Articles" msgstr "Pan: Tallenna artikkeleja" #: ../pan/gui/save-ui.cc:303 msgid "_Action:" msgstr "_Toiminnot:" #: ../pan/gui/score-add-ui.cc:89 msgid "is more than" msgstr "enemmän kuin" #: ../pan/gui/score-add-ui.cc:90 msgid "is at most" msgstr "enintään" #: ../pan/gui/score-add-ui.cc:112 msgid "increase the article's score by" msgstr "lisää artikkelin pisteisiin" #: ../pan/gui/score-add-ui.cc:113 msgid "decrease the article's score by" msgstr "vähennä artikkelin pisteistä" #: ../pan/gui/score-add-ui.cc:114 msgid "set the article's score to" msgstr "aseta pisteiksi" #: ../pan/gui/score-add-ui.cc:115 msgid "watch the article (set its score to 9999)" msgstr "seuraa artikkelia (aseta pisteiksi 9999)" #: ../pan/gui/score-add-ui.cc:116 msgid "ignore the article (set its score to -9999)" msgstr "ohita artikkeli (aseta pisteiksi −9999)" #: ../pan/gui/score-add-ui.cc:141 msgid "References" msgstr "Viitteet" #: ../pan/gui/score-add-ui.cc:142 msgid "Line Count" msgstr "Rivimäärä" #: ../pan/gui/score-add-ui.cc:143 msgid "Byte Count" msgstr "Tavumäärä" #: ../pan/gui/score-add-ui.cc:144 msgid "Crosspost Group Count" msgstr "Yhteislähetettyjen ryhmien määrä" #: ../pan/gui/score-add-ui.cc:145 msgid "Age (in days)" msgstr "Ikä päivissä" #: ../pan/gui/score-add-ui.cc:167 msgid "for the next month" msgstr "seuraavan kuukauden" #: ../pan/gui/score-add-ui.cc:168 msgid "for the next six months" msgstr "seuraavan kuuden kuukauden ajan" #: ../pan/gui/score-add-ui.cc:169 msgid "forever" msgstr "aina" #: ../pan/gui/score-add-ui.cc:194 msgid "contains" msgstr "sisältää" #: ../pan/gui/score-add-ui.cc:195 msgid "doesn't contain" msgstr "ei sisällä" #: ../pan/gui/score-add-ui.cc:196 msgid "is" msgstr "on" #: ../pan/gui/score-add-ui.cc:197 msgid "isn't" msgstr "ei ole" #: ../pan/gui/score-add-ui.cc:198 msgid "starts with" msgstr "alkaa" #: ../pan/gui/score-add-ui.cc:199 msgid "ends with" msgstr "päättyy" #: ../pan/gui/score-add-ui.cc:200 msgid "matches regex" msgstr "täsmää säännölliseen ilmaukseen" #: ../pan/gui/score-add-ui.cc:481 msgid "Another rule already sets this article's score." msgstr "Toinen sääntö asettaa jo tämän artikkelin pisteet." #: ../pan/gui/score-add-ui.cc:482 msgid "You may want to go back or delete the old rule." msgstr "Saatat haluta palata tai poistaa vanhan säännön." #: ../pan/gui/score-add-ui.cc:553 msgid "Add and Re_score" msgstr "Lisää ja _uudelleenpisteytä" #: ../pan/gui/score-add-ui.cc:604 ../pan/gui/score-add-ui.cc:624 msgid "New Scoring Rule" msgstr "Uusi pisteytys" #: ../pan/gui/score-add-ui.cc:635 #, fuzzy #| msgid "_Group Pane" msgid "Group name" msgstr "_Ryhmälistaosio" #: ../pan/gui/score-add-ui.cc:642 #, fuzzy #| msgid "Pan" msgid "and" msgstr "Pan" #: ../pan/gui/score-view-ui.cc:56 msgid "Close and Re_score" msgstr "Sulje ja _uudelleenpisteytä" #: ../pan/gui/score-view-ui.cc:154 #, c-format msgid "File %s, Lines %d - %d" msgstr "Tiedosto %s, rivit %d—%d" #: ../pan/gui/score-view-ui.cc:182 msgid "Pan: Article's Scores" msgstr "Pan: Artikkelin pisteet" #: ../pan/gui/score-view-ui.cc:208 msgid "Add" msgstr "Lisää" #: ../pan/gui/score-view-ui.cc:213 msgid "New Score" msgstr "Uusi pisteytys" #: ../pan/gui/score-view-ui.cc:218 msgid "Criteria" msgstr "Määreet" #: ../pan/gui/score-view-ui.cc:241 msgid "Add a New Scoring Rule" msgstr "Lisää uusi pisteytys" #: ../pan/gui/score-view-ui.cc:248 msgid "Remove the Selected Scoring Rule" msgstr "Poista valittu pisteytys" #: ../pan/gui/server-ui.cc:259 msgid "Please specify the server's address." msgstr "Määrittele palvelimen osoite." #: ../pan/gui/server-ui.cc:305 msgid "Import SSL Certificate (PEM Format) From File" msgstr "" #. create the dialog #: ../pan/gui/server-ui.cc:342 ../pan/gui/server-ui.cc:948 msgid "Add a Server" msgstr "Lisää uusi palvelin" #: ../pan/gui/server-ui.cc:342 ../pan/gui/server-ui.cc:954 msgid "Edit a Server's Settings" msgstr "Muokkaa palvelimen asetuksia" #: ../pan/gui/server-ui.cc:362 msgid "Location" msgstr "Sijainti" #: ../pan/gui/server-ui.cc:366 msgid "The news server's actual address, e.g. \"news.mynewsserver.com\"" msgstr "" "Keskusteluryhmäpalvelimen oikea osoite, kuten esimerkiksi news.example.com" #: ../pan/gui/server-ui.cc:367 msgid "_Address:" msgstr "_Osoite:" #: ../pan/gui/server-ui.cc:372 #, fuzzy #| msgid "The news server's port number. Typically 119." msgid "" "The news server's port number. Typically 119 for unencrypted and 563 for " "encrypted connections (SSL/TLS)." msgstr "Keskusteluryhmäpalvelimen portti, yleensä 119." #: ../pan/gui/server-ui.cc:373 msgid "Por_t:" msgstr "_Portti:" #: ../pan/gui/server-ui.cc:376 msgid "Login (if Required)" msgstr "Kirjaudu tarvittaessa" #: ../pan/gui/server-ui.cc:380 msgid "_Username:" msgstr "_Käyttäjätunnus:" #: ../pan/gui/server-ui.cc:381 msgid "" "The username to give the server when asked. If your server doesn't require " "authentication, you can leave this blank." msgstr "" "Käyttäjänimi, joka lähetetään palvelimelle pyydettäessä. Jos palvelin ei " "vaadi tunnistautumista, jätä tämä tyhjäksi." #: ../pan/gui/server-ui.cc:385 msgid "_Password:" msgstr "_Salasana:" #: ../pan/gui/server-ui.cc:386 msgid "" "The password to give the server when asked. If your server doesn't require " "authentication, you can leave this blank." msgstr "" "Salasana, joka lähetetään palvelimelle pyydettäessä. Jos palvelin ei vaadi " "tunnistautumista, jätä tämä tyhjäksi." #: ../pan/gui/server-ui.cc:389 msgid "Settings" msgstr "Asetukset" #: ../pan/gui/server-ui.cc:396 msgid "Connection _Limit:" msgstr "_Yhteysraja:" #: ../pan/gui/server-ui.cc:400 msgid "After Two Weeks" msgstr "Kahden viikon päästä" #: ../pan/gui/server-ui.cc:401 msgid "After One Month" msgstr "Kuukauden päästä" #: ../pan/gui/server-ui.cc:402 msgid "After Two Months" msgstr "Kahden kuukauden päästä" #: ../pan/gui/server-ui.cc:403 msgid "After Three Months" msgstr "Kolmen kuukauden päästä" #: ../pan/gui/server-ui.cc:404 msgid "After Six Months" msgstr "Kuuden kuukauden päästä" #: ../pan/gui/server-ui.cc:405 msgid "Never Expire Old Articles" msgstr "Älä hävitä vanhoja artikkeleja" #: ../pan/gui/server-ui.cc:419 msgid "E_xpire Old Articles:" msgstr "Po_ista vanhat artikkelit:" #: ../pan/gui/server-ui.cc:423 msgid "Primary" msgstr "Ensisijainen" #: ../pan/gui/server-ui.cc:424 msgid "Fallback" msgstr "Toissijainen" #: ../pan/gui/server-ui.cc:438 msgid "Server Rank:" msgstr "Palvelimen arvo:" #: ../pan/gui/server-ui.cc:442 msgid "" "Fallback servers are used for articles that can't be found on the " "primaries. One common approach is to use free servers as primaries and " "subscription servers as fallbacks." msgstr "" "Toissijaisia palvelimia käytetään kun artikkeleja ei löydy ensisijaisilta. " "Suosittu käytäntö on merkitä ilmaisia palvelimia ensisijaisiksi ja " "maksullisia toissijaisiksi." #: ../pan/gui/server-ui.cc:447 msgid "Disable Compression (N/A)" msgstr "" #: ../pan/gui/server-ui.cc:448 msgid "XZVER Compression (Astraweb)" msgstr "" #: ../pan/gui/server-ui.cc:449 msgid "GZIP Compression (Giganews etc.)" msgstr "" #: ../pan/gui/server-ui.cc:463 msgid "Header Compression:" msgstr "" #: ../pan/gui/server-ui.cc:469 msgid "Security" msgstr "" #: ../pan/gui/server-ui.cc:474 #, fuzzy msgid "Use Unsecure (Plaintext) Connections" msgstr "Ei yhteyksiä" #: ../pan/gui/server-ui.cc:475 #, fuzzy msgid "Use Secure SSL Connections" msgstr "Ei yhteyksiä" #: ../pan/gui/server-ui.cc:490 msgid "TLS (SSL) Settings:" msgstr "" #: ../pan/gui/server-ui.cc:495 msgid "" "You can enable/disable secure SSL/TLS connections here. If you enable SSL/" "TLS, your data is encrypted and secure. It is encouraged to enable SSL/TLS " "for privacy reasons." msgstr "" #: ../pan/gui/server-ui.cc:500 msgid "Always trust this server's certificate" msgstr "" #: ../pan/gui/server-ui.cc:676 #, c-format msgid "Really delete \"%s\"?" msgstr "Poistetaanko %s?" #: ../pan/gui/server-ui.cc:765 msgid "No information available." msgstr "" #: ../pan/gui/server-ui.cc:775 #, c-format msgid "Server Certificate for '%s'" msgstr "" #: ../pan/gui/server-ui.cc:874 #, fuzzy, c-format msgid "Really delete certificate for \"%s\"?" msgstr "Poistetaanko %s?" #. dialog #: ../pan/gui/server-ui.cc:901 ../pan/gui/server-ui.cc:922 #: ../pan/gui/server-ui.cc:1020 msgid "Servers" msgstr "Palvelimet" #: ../pan/gui/server-ui.cc:961 msgid "Remove a Server" msgstr "Poista palvelimen asetuksia" #. dialog #: ../pan/gui/server-ui.cc:994 msgid "SSL Certificates" msgstr "" #: ../pan/gui/server-ui.cc:1015 msgid "Certificates" msgstr "" #: ../pan/gui/server-ui.cc:1046 msgid "Import Certificate" msgstr "" #: ../pan/gui/server-ui.cc:1052 msgid "Inspect Certificate" msgstr "" #: ../pan/gui/server-ui.cc:1059 #, fuzzy msgid "Remove Certificate" msgstr "Poista palvelimen asetuksia" #: ../pan/gui/task-pane.cc:121 #, c-format msgid "" "\n" "Upload\n" "\n" "Subject: \"%s\"\n" "From: %s\n" "Groups: %s\n" "Sourcefile: %s\n" msgstr "" #: ../pan/gui/task-pane.cc:133 #, c-format msgid "" "\n" "Download\n" "\n" "Subject: \"%s\"\n" "From: %s\n" "Date: %s\n" "Groups: %s\n" "Save Path: %s\n" msgstr "" #: ../pan/gui/task-pane.cc:135 #, fuzzy msgid "unknown" msgstr "Tuntematon" #: ../pan/gui/task-pane.cc:303 msgid "Choose New Destination for Selected Tasks" msgstr "" #: ../pan/gui/task-pane.cc:457 #, c-format msgid "Pan: Tasks (%d Queued, %d Running, %d Stopped)" msgstr "Pan: Toimintojen hallinta (%d jonossa, %d käynnissä, %d pysähtynyt)" #: ../pan/gui/task-pane.cc:459 #, c-format msgid "Pan: Tasks (%d Queued, %d Running)" msgstr "Pan: Toimintojen hallinta (%d jonossa, %d käynnissä)" #: ../pan/gui/task-pane.cc:461 #, c-format msgid "Pan: Tasks" msgstr "Pan: Toimintojen hallinta" #: ../pan/gui/task-pane.cc:486 #, c-format msgid "%lu selected, %s" msgstr "%lu valittuna, %s" #: ../pan/gui/task-pane.cc:550 msgid "Running" msgstr "Käynnissä" #: ../pan/gui/task-pane.cc:551 msgid "Decoding" msgstr "Puretaan" #: ../pan/gui/task-pane.cc:553 msgid "Queued for Decode" msgstr "Lisätty purkujonoon" #: ../pan/gui/task-pane.cc:554 #, fuzzy msgid "Queued for Encode" msgstr "Lisätty purkujonoon" #: ../pan/gui/task-pane.cc:555 msgid "Queued" msgstr "Jonossa" #: ../pan/gui/task-pane.cc:556 msgid "Stopped" msgstr "Pysähtynyt" #: ../pan/gui/task-pane.cc:557 msgid "Removing" msgstr "Poistamassa" #: ../pan/gui/task-pane.cc:586 #, c-format msgid "%d%% Done" msgstr "%d %% Suoritettu" #: ../pan/gui/task-pane.cc:592 #, c-format msgid "%d:%02d:%02d Remaining (%d @ %lu KiB/s)" msgstr "%d:%02d:%02d jäljellä (%d @ %lu KiB∕s)" #: ../pan/gui/task-pane.cc:687 ../pan/gui/task-pane.cc:688 msgid "Move To Top" msgstr "" #: ../pan/gui/task-pane.cc:692 ../pan/gui/task-pane.cc:693 msgid "Move To Bottom" msgstr "" #: ../pan/gui/task-pane.cc:697 ../pan/gui/task-pane.cc:698 #, fuzzy #| msgid "Show Article Information" msgid "Show Task Information" msgstr "Näytä artikkelin tiedot" #: ../pan/gui/task-pane.cc:702 ../pan/gui/task-pane.cc:703 #, fuzzy msgid "Stop Task" msgstr "Pysäytä toiminnot" #: ../pan/gui/task-pane.cc:707 ../pan/gui/task-pane.cc:708 #, fuzzy msgid "Delete Task" msgstr "Poista toiminnot" #: ../pan/gui/task-pane.cc:712 ../pan/gui/task-pane.cc:713 #, fuzzy msgid "Restart Task" msgstr "Käynnistä toiminnot uudestaan" #: ../pan/gui/task-pane.cc:717 ../pan/gui/task-pane.cc:718 msgid "Change Download Destination" msgstr "" #: ../pan/gui/task-pane.cc:1028 msgid "_Online" msgstr "_Yhteydellinen tila" #: ../pan/gui/task-pane.cc:1045 msgid "Restart Tasks" msgstr "Käynnistä toiminnot uudestaan" #: ../pan/gui/task-pane.cc:1047 msgid "Stop Tasks" msgstr "Pysäytä toiminnot" #: ../pan/gui/task-pane.cc:1049 msgid "Delete Tasks" msgstr "Poista toiminnot" #: ../pan/gui/task-pane.cc:1055 msgid "Show info popups" msgstr "" #: ../pan/gui/url.cc:123 #, c-format msgid "Error starting URL: %s (Command was: %s)" msgstr "Virhe avattaessa URLia: %s (Komento oli: %s)" #: ../pan/tasks/decoder.cc:117 #, c-format msgid "Couldn't save file \"%s\": %s" msgstr "Ei voitu tallentaa tiedostoa %s: %s" #: ../pan/tasks/decoder.cc:139 ../pan/tasks/encoder.cc:136 msgid "Error initializing uulib" msgstr "Virhe uulibin alustuksessa" #: ../pan/tasks/decoder.cc:154 ../pan/tasks/socket-impl-gio.cc:360 #: ../pan/tasks/socket-impl-openssl.cc:642 #, c-format msgid "Error reading from %s: %s" msgstr "Virhe luettaessa kohteesta %s: %s" #: ../pan/tasks/decoder.cc:194 #, c-format msgid "Saved \"%s\"" msgstr "%s tallennettu" #: ../pan/tasks/decoder.cc:201 #, c-format msgid "" "Error saving \"%s\":\n" "%s." msgstr "" "Virhe tallennettaessa tiedostoa %s:\n" "%s." #: ../pan/tasks/decoder.cc:314 ../pan/tasks/task-article.cc:354 #, c-format msgid "Decoding %s" msgstr "Puretaan \"%s\"" #: ../pan/tasks/encoder.cc:103 ../pan/tasks/encoder.cc:154 #, fuzzy, c-format msgid "Error loading %s from cache." msgstr "Virhe luettaessa kohteesta %s: %s" #: ../pan/tasks/encoder.cc:176 #, fuzzy, c-format msgid "Error encoding %s: %s" msgstr "Virhe luettaessa kohteesta %s: %s" #: ../pan/tasks/encoder.cc:266 #, fuzzy, c-format msgid "Encoding %s" msgstr "Puretaan" #: ../pan/tasks/nntp.cc:148 #, c-format msgid "%s requires a username, but none is set." msgstr "%s vaatii käyttäjätunnuksen, mutta tunnusta ei ole asetettu." #: ../pan/tasks/nntp.cc:161 #, c-format msgid "%s requires a password, but none is set." msgstr "%s vaatii salasanan, mutta salasanaa ei ole asetettu." #: ../pan/tasks/nntp.cc:239 #, c-format msgid "Sending \"%s\" to %s returned an error: %s" msgstr "Lähetys %s kohteeseen %s aiheutti virheen: %s" #: ../pan/tasks/nntp.cc:262 #, c-format msgid "Sending \"%s\" to %s returned an unrecognized response: \"%s\"" msgstr "Lähetys %s kohteeseen %s aiheutti tuntemattoman vastauksen; %s" #: ../pan/tasks/nntp-pool.cc:235 #, c-format msgid "Unable to connect to \"%s\"" msgstr "Yhteyden avaaminen kohteeseen %s ei onnistu" #: ../pan/tasks/queue.cc:772 ../pan/tasks/queue.cc:800 #: ../pan/tasks/queue.cc:827 msgid "No space left on device." msgstr "" #: ../pan/tasks/socket-impl-gio.cc:173 ../pan/tasks/socket-impl-gio.cc:211 #: ../pan/tasks/socket-impl-openssl.cc:214 #: ../pan/tasks/socket-impl-openssl.cc:252 #, c-format msgid "Error connecting to \"%s\"" msgstr "Virhe luettaessa tiedostoa %s" #: ../pan/tasks/socket-impl-gio.cc:359 ../pan/tasks/socket-impl-openssl.cc:641 msgid "Unknown Error" msgstr "Tuntematon virhe" #: ../pan/tasks/task-article.cc:62 ../pan/tasks/task-article.cc:160 #, c-format msgid "Saving %s" msgstr "Tallennetaan kohdetta %s" #: ../pan/tasks/task-article.cc:64 #, c-format msgid "Reading %s" msgstr "Luetaan kohdetta %s" #: ../pan/tasks/task-article.cc:326 #, c-format msgid "Article \"%s\" is incomplete -- the news server(s) don't have part %s" msgstr "Artikkeli \"%s\" on vajaa, palvelimelta puuttuu osa %s" #: ../pan/tasks/task-groups.cc:41 #, c-format msgid "Getting group list from \"%s\"" msgstr "Haetaan ryhmiä palvelimelta %s" #: ../pan/tasks/task-groups.cc:134 #, c-format msgid "Fetched %lu Groups" msgstr "Haettu %lu ryhmää" #: ../pan/tasks/task-post.cc:35 #, c-format msgid "Posting \"%s\"" msgstr "Lähetetään viestiä %s" #: ../pan/tasks/task-post.cc:76 #, fuzzy, c-format msgid "Posting of \"%s\" failed: %s" msgstr "Lähetysprofiilit" #: ../pan/tasks/task-post.cc:81 #, fuzzy, c-format msgid "Posting of \"%s\" successful: %s" msgstr "Lähetysprofiilit" #: ../pan/tasks/task-upload.cc:51 #, fuzzy, c-format msgid "Uploading %s" msgstr "Luetaan kohdetta %s" #: ../pan/tasks/task-upload.cc:244 #, c-format msgid "Uploading %s - Part %d of %d" msgstr "" #: ../pan/tasks/task-upload.cc:246 #, c-format msgid "Uploading message body with subject \"%s\"" msgstr "" #: ../pan/tasks/task-upload.cc:303 #, fuzzy, c-format msgid "Posting of file %s (part %d of %d) failed: No posts allowed by server." msgstr "Lähetysprofiilit" #: ../pan/tasks/task-upload.cc:311 #, fuzzy, c-format msgid "Posting of file %s (part %d of %d) failed: %s" msgstr "Lähetysprofiilit" #: ../pan/tasks/task-upload.cc:321 ../pan/tasks/task-upload.cc:328 #, fuzzy, c-format msgid "Posting of file %s (part %d of %d) successful: %s" msgstr "Lähetysprofiilit" #: ../pan/tasks/task-upload.cc:338 #, fuzzy, c-format msgid "Posting of file %s successful: %s" msgstr "Lähetysprofiilit" #: ../pan/tasks/task-upload.cc:342 #, c-format msgid "" "Posting of file %s not completely successful: Check the log (right-click " "list item)." msgstr "" #: ../pan/tasks/task-upload.cc:358 #, c-format msgid "" "Posting of file %s not successful: Check the log (right-click list item)." msgstr "" #: ../pan/tasks/task-xover.cc:83 #, c-format msgid "Getting all headers for \"%s\"" msgstr "Haetaan kaikki otsikot ryhmälle \"%s\"" #: ../pan/tasks/task-xover.cc:86 #, c-format msgid "Getting new headers for \"%s\"" msgstr "Haetaan uudet otsikot ryhmälle \"%s\"" #. SAMPLE #: ../pan/tasks/task-xover.cc:90 #, c-format msgid "Sampling headers for \"%s\"" msgstr "Näytteistetään otsikot ryhmälle \"%s\"" #: ../pan/tasks/task-xover.cc:426 #, c-format msgid "%s (%lu parts, %lu articles)" msgstr "%s (%lu osaa %lu artikkelissa)" #: ../pan/tasks/task-xover.cc:500 #, fuzzy, c-format #| msgid "Getting new headers for \"%s\"" msgid "Getting new headers for \"%s\" done." msgstr "Haetaan uudet otsikot ryhmälle \"%s\"" #: ../pan/tasks/task-xoverinfo.cc:78 #, fuzzy, c-format msgid "Getting header counts for \"%s\"" msgstr "Haetaan kaikki otsikot ryhmälle \"%s\"" #: ../pan/usenet-utils/filter-info.cc:168 msgid "article doesn't have attachments" msgstr "artikkelissa ei ole liitetiedostoja" #: ../pan/usenet-utils/filter-info.cc:172 msgid "the article has attachments" msgstr "artikkelissa on liitetiedostoja" #: ../pan/usenet-utils/filter-info.cc:176 msgid "the article isn't cached locally" msgstr "artikkelin sisältö ei ole paikallisessa välimuistissa" #: ../pan/usenet-utils/filter-info.cc:180 msgid "the article is cached locally" msgstr "artikkelin sisältö on välimuistissa" #: ../pan/usenet-utils/filter-info.cc:184 msgid "the article wasn't posted by you" msgstr "artikkeli ei ole lähettämäsi" #: ../pan/usenet-utils/filter-info.cc:188 msgid "the article was posted by you" msgstr "artikkeli on lähettämäsi" #: ../pan/usenet-utils/filter-info.cc:192 msgid "the article has been read" msgstr "artikkeli on luettu" #: ../pan/usenet-utils/filter-info.cc:196 msgid "the article hasn't been read" msgstr "artikkelia ei ole luettu" #: ../pan/usenet-utils/filter-info.cc:200 #, c-format msgid "the article is less than %ld bytes long" msgstr "artikkeli on alle %ld tavua pitkä" #: ../pan/usenet-utils/filter-info.cc:205 #, c-format msgid "the article is at least %ld bytes long" msgstr "artikkeli on yli %ld tavua pitkä" #: ../pan/usenet-utils/filter-info.cc:210 #, c-format msgid "the article is less than %ld lines long" msgstr "artikkeli on alle %ld riviä pitkä" #: ../pan/usenet-utils/filter-info.cc:215 #, c-format msgid "the article is at least %ld lines long" msgstr "artikkeli on vähintään %ld riviä pitkä" #: ../pan/usenet-utils/filter-info.cc:220 #, c-format msgid "the article is less than %ld days old" msgstr "artikkeli on vähintään %ld päivää vanha" #: ../pan/usenet-utils/filter-info.cc:225 #, c-format msgid "the article is at least %ld days old" msgstr "artikkeli on vähintään %ld päivää vanha" #: ../pan/usenet-utils/filter-info.cc:230 #, c-format msgid "the article was posted to less than %ld groups" msgstr "artikkeli on yhteislähetetty alle %ld ryhmään" #: ../pan/usenet-utils/filter-info.cc:235 #, c-format msgid "the article was posted to at least %ld groups" msgstr "artikkeli on yhteislähetty vähintään %ld ryhmään" #: ../pan/usenet-utils/filter-info.cc:240 #, c-format msgid "the article's score is less than %ld" msgstr "artikkelin pistemäärä on alle %ld" #: ../pan/usenet-utils/filter-info.cc:245 #, c-format msgid "the article's score is %ld or higher" msgstr "artikkelin pistemäärä on %ld tai enemmän" #: ../pan/usenet-utils/filter-info.cc:254 #: ../pan/usenet-utils/filter-info.cc:264 #, c-format msgid "%s doesn't contain \"%s\"" msgstr "%s ei sisällä merkkijonoa %s" #: ../pan/usenet-utils/filter-info.cc:255 #: ../pan/usenet-utils/filter-info.cc:265 #, c-format msgid "%s isn't \"%s\"" msgstr "%s ei ole %s" #: ../pan/usenet-utils/filter-info.cc:256 #: ../pan/usenet-utils/filter-info.cc:266 #, c-format msgid "%s doesn't begin with \"%s\"" msgstr "%s ei ala merkkijonolla %s" #: ../pan/usenet-utils/filter-info.cc:257 #: ../pan/usenet-utils/filter-info.cc:267 #, c-format msgid "%s doesn't end with \"%s\"" msgstr "%s ei pääty merkkijonoon %s" #: ../pan/usenet-utils/filter-info.cc:258 #: ../pan/usenet-utils/filter-info.cc:268 #, c-format msgid "%s doesn't match the regex \"%s\"" msgstr "%s ei täsmää säännöllistä ilmausta %s" #: ../pan/usenet-utils/filter-info.cc:280 #, c-format msgid "%s contains \"%s\"" msgstr "%s sisältää merkkijonon %s" #: ../pan/usenet-utils/filter-info.cc:281 #, c-format msgid "%s is \"%s\"" msgstr "%s on %s" #: ../pan/usenet-utils/filter-info.cc:282 #, c-format msgid "%s begins with \"%s\"" msgstr "%s alkaa merkkijonolla %s" #: ../pan/usenet-utils/filter-info.cc:283 #, c-format msgid "%s ends with \"%s\"" msgstr "%s päättyy merkkijonoon %s" #: ../pan/usenet-utils/filter-info.cc:284 #, c-format msgid "%s matches the regex \"%s\"" msgstr "%s täsmää säännölliseen ilmaukseen %s" #: ../pan/usenet-utils/filter-info.cc:290 msgid "Any of these tests fail:" msgstr "Mikä tahansa säännöistä ei päde:" #: ../pan/usenet-utils/filter-info.cc:297 msgid "All of these tests pass:" msgstr "Mikä tahansa säännöistä pätee:" #: ../pan/usenet-utils/filter-info.cc:304 msgid "None of these tests pass:" msgstr "Yksikään säännöistä ei päde:" #: ../pan/usenet-utils/filter-info.cc:311 msgid "Any of these tests pass:" msgstr "Kaikki säännöt pätevät:" #: ../pan/usenet-utils/gnksa.cc:880 #, c-format msgid "No email address provided; generating message-id with domain \"%s\"" msgstr "" "Sähköpostiosoitetta ei ole annettu, viestin tunnus luodaan käyttäen verkko‐" "osoitetta \"%s\"" #: ../pan/usenet-utils/message-check.cc:124 msgid "Warning: Reply seems to be top-posted." msgstr "Varoitus: Vastaus näyttää yläpostaukselta." #: ../pan/usenet-utils/message-check.cc:145 msgid "Warning: The signature marker should be \"-- \", not \"--\"." msgstr "Varoitus: Allekirjoitus pitäisi merkitä ”-- ”:llä eikä ”--”:lla." #: ../pan/usenet-utils/message-check.cc:162 msgid "Warning: Signature prefix with no signature." msgstr "Varoitus: Allekirjoituksen etuliite ilman allekirjoitusta." #: ../pan/usenet-utils/message-check.cc:167 msgid "Warning: Signature is more than 4 lines long." msgstr "Varoitus: Allekirjoitus on pidempi kuin 4 riviä." #: ../pan/usenet-utils/message-check.cc:172 msgid "Warning: Signature is more than 80 characters wide." msgstr "Varoitus: Allekirjoitus on leveämpi kuin 80 merkkiä." #: ../pan/usenet-utils/message-check.cc:198 #, fuzzy, c-format msgid "Warning: %d line is more than 80 characters wide." msgid_plural "Warning: %d lines are more than 80 characters wide." msgstr[0] "Varoitus: viestissä on %d riviä leveämpiä kuin 80 merkkiä." msgstr[1] "Varoitus: viestissä on %d riviä leveämpiä kuin 80 merkkiä." #: ../pan/usenet-utils/message-check.cc:223 msgid "Error: Message is empty." msgstr "Virhe: Viesti on tyhjä." #: ../pan/usenet-utils/message-check.cc:258 msgid "Warning: The message is entirely quoted text!" msgstr "Varoitus: Viesti on ainoastaan lainausta!" #: ../pan/usenet-utils/message-check.cc:259 msgid "Warning: The message is mostly quoted text." msgstr "Varoitus: Viesti on enimmäkseen lainausta." #: ../pan/usenet-utils/message-check.cc:309 msgid "Error: Message appears to have no new content." msgstr "Virhe: Viestissä ei näytä olevan uutta sisältöä." #: ../pan/usenet-utils/message-check.cc:344 #: ../pan/usenet-utils/message-check.cc:383 #, c-format msgid "" "Warning: The posting profile's server doesn't carry newsgroup\n" "\t\"%s\".\n" "\tIf the group name is correct, switch profiles in the \"From:\"\n" "\tline or edit the profile with \"Edit|Manage Posting Profiles\"." msgstr "" "Varoitus: Postitusprofiilin palvelimella ei ole ryhmää\n" "\t%s.\n" "\tJos ryhmän nimi on oikein, vaihda profiilia Lähettäjä-riviltä\n" "\tai muokkaa profiilia valikosta Muokkaa→Muokkaa postitusprofiileja." #: ../pan/usenet-utils/message-check.cc:355 msgid "Warning: Following-Up to too many groups." msgstr "Varoitus: Keskustelunsiirto liian useaan ryhmään." #: ../pan/usenet-utils/message-check.cc:366 msgid "Error: No Subject specified." msgstr "Virhe: Aihetta ei ole määritelty." #: ../pan/usenet-utils/message-check.cc:395 #, c-format msgid "Warning: Group \"%s\" is read-only." msgstr "Varoitus: Ryhmää %s voi vain lukea." #: ../pan/usenet-utils/message-check.cc:404 msgid "Error: Posting to a very large number of groups." msgstr "Virhe: Lähetetään erittäin moneen ryhmään." #: ../pan/usenet-utils/message-check.cc:409 msgid "Warning: Posting to a large number of groups." msgstr "Varoitus: Lähetetään useaan ryhmään." #: ../pan/usenet-utils/message-check.cc:416 msgid "Warning: Crossposting without setting Followup-To header." msgstr "Varoitus: Yhteislähetetään asettamatta keskustelunsiirtoa." #: ../pan/usenet-utils/message-check.cc:441 msgid "Error: Bad email address." msgstr "Virhe: Viallinen sähköpostiosoite." #: ../pan/usenet-utils/message-check.cc:450 msgid "Warning: Most newsgroups frown upon HTML posts." msgstr "Varoitus: Useimmissa ryhmissä ei pidetä HTML‐viesteistä" #: ../pan/usenet-utils/message-check.cc:486 msgid "Error: No Recipients." msgstr "Virhe: Ei vastaanottajia." #: ../pan/usenet-utils/scorefile.cc:304 #, c-format msgid "" "Error reading score in %*.*s, line %d: expected 'Expires: MM/DD/YYYY' or " "'Expires: DD-MM-YYYY'." msgstr "" "Virhe luettaessa pisteytystä kohteessa %*.*s rivillä %d: Odotusarvo olisi " "”Expires: KK/PP/VVVV” tai ”Expires: PP-KK-VVVV”" #: ../pan/usenet-utils/scorefile.cc:307 #, c-format msgid "Expired old score from %*.*s, line %d" msgstr "Vanha pisteytys kohteen %*.*s riviltä %d poistettu" #: ../pan/usenet-utils/scorefile.cc:380 #, c-format msgid "Error reading score in %*.*s, line %d: unexpected line." msgstr "" "Virhe kohteen %*.*s rivin %d pisteytyksen lukemisessa: odotuksenvastainen " "rivi." #: ../pan/usenet-utils/scorefile.cc:428 #, c-format msgid "Read %lu scoring rules in %lu sections from \"%s\"" msgstr "Luettu %lu pisteytystä %lu osiosta kohteesta %s" #: ../pan/usenet-utils/ssl-utils.h:189 #, fuzzy, c-format msgid "Error printing the server certificate for '%s'" msgstr "Virhe käynnistettäessä ulkoista muokkainta: %s" #: ../pan/usenet-utils/ssl-utils.h:205 #, c-format msgid "" "The current server '%s' sent this security certificate:\n" "\n" msgstr "" #: ../pan/usenet-utils/ssl-utils.h:206 #, c-format msgid "" "Certificate information for server '%s':\n" "\n" msgstr "" #: ../pan/usenet-utils/ssl-utils.h:208 #, c-format msgid "" "%sIssuer information:\n" "%s\n" "Valid until: %s\n" "\n" "Not valid before: %s\n" "\n" msgstr "" #: ../pan/usenet-utils/text-massager.cc:399 msgid "> [quoted text muted]" msgstr "> [lainattu teksti piilotettu]" #: ../pan/usenet-utils/text-massager.cc:579 msgid "no_name" msgstr "" #: ../pan/usenet-utils/text-massager.cc:580 msgid "no_mail" msgstr "" #, fuzzy #~ msgid "Always trust" #~ msgstr "Suorita aina muokkain" #, fuzzy #~ msgid "Quoted text:" #~ msgstr "Lainattu teksti:" #~ msgid "If the group name" #~ msgstr "Kun ryhmän nimi on" #~ msgid "Read News from Usenet" #~ msgstr "Lue Usenetin keskusteluryhmiä" #, fuzzy #~ msgid "_Toggle Flag on for Thread" #~ msgstr "_Seuraa säiettä" #~ msgid "Attachment not shown: MIME type %s/%s; filename %s\n" #~ msgstr "Liitetiedostoa ei näytetä: MIME-tyyppi %s/%s, tiedostonimi %s\n" #~ msgid "Attachment not shown: MIME type %s/%s\n" #~ msgstr "Liitetiedostoa ei näytetä: MIME-tyyppi %s/%s\n" #~ msgid "" #~ "Spellchecker not found!\n" #~ " \n" #~ "Was this copy of Pan compiled with GtkSpell enabled?" #~ msgstr "" #~ "Oikolukua ei löydy!\n" #~ "\n" #~ "Onko GtkSpell käännetty tähän Paniin mukaan?" #, fuzzy #~ msgid "Signer : " #~ msgstr "Allekirjoitus:" #~ msgid "_Signature:" #~ msgstr "_Allekirjoitus:" #~ msgid "Creating directory \"%s\"" #~ msgstr "Luodaan hakemistoa %s" #~ msgid "Couldn't create directory \"%s\": %s" #~ msgstr "Hakemiston %s luominen epäonnistui: %s" #~ msgid "" #~ "Your copy of libpcre doesn't support UTF-8. UTF-8 regular expressions " #~ "may fail." #~ msgstr "" #~ "Järjestelmäsi versio libpcre:stä ei tue UTF‐8‐merkistöä. UTF‐8:aa " #~ "käyttävät säännölliset ilmaukset saattavat epäonnistua." #~ msgid "Can't use regular expression \"%s\": %s at position %d" #~ msgstr "Ei voida käyttää säännöllistä ilmausta %s: %s kohdassa %d" #~ msgid "Posting Article" #~ msgstr "Artikkelia lähetetään" #~ msgid "Posting..." #~ msgstr "Lähetetään..." pan-0.162/po/fr.po000066400000000000000000002760221475412772400137130ustar00rootroot00000000000000# French translation of pan2. # Copyright (C) 2007-2012 Free Software Foundation, Inc. # This file is distributed under the same license as the pan2 package. # # # # Jonathan Ernst , 2007. # Cyprien Le Pannérer , 2007. # Claude Paroz , 2007-2008. # Frederic Bezies , 2012. # Bruno Brouard , 2012. msgid "" msgstr "" "Project-Id-Version: Pan2 HEAD fr\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/pan/issues\n" "POT-Creation-Date: 2012-07-06 19:39+0000\n" "PO-Revision-Date: 2012-06-06 19:58+0100\n" "Last-Translator: Pierre Henry \n" "Language-Team: GNOME French Team \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n>1);\n" #: ../pan.desktop.in.h:1 msgid "Pan Newsreader" msgstr "Lecteur de nouvelles Pan" #: ../pan.desktop.in.h:2 msgid "Read and Post Usenet Articles" msgstr "Lire et poster des articles Usenet" #: ../pan/data/article-cache.cc:143 ../pan/data/encode-cache.cc:62 #, c-format msgid "Error opening directory: \"%s\": %s" msgstr "Erreur à l'ouverture du répertoire « %s » : %s" #: ../pan/data/article-cache.cc:234 ../pan/data/article-cache.cc:243 #: ../pan/data-impl/data-io.cc:187 ../pan/data-impl/data-io.cc:219 #: ../pan/gui/post-ui.cc:1658 #, c-format msgid "Unable to save \"%s\" %s" msgstr "Impossible de sauvegarder « %s » %s" #: ../pan/data/article-cache.cc:360 #, c-format msgid "Error opening file \"%s\" %s" msgstr "Erreur lors de l'ouverture du fichier « %s » : %s" #: ../pan/data/article-cache.cc:391 ../pan/data-impl/profiles.cc:174 #: ../pan/data-impl/server.cc:457 ../pan/general/file-util.cc:298 #: ../pan/gui/post-ui.cc:609 ../pan/gui/task-pane.cc:691 #, c-format msgid "Error reading file \"%s\": %s" msgstr "Erreur de lecture du fichier « %s » : %s" #: ../pan/data/cert-store.cc:272 #, c-format msgid "Error opening SSL certificate directory: \"%s\": %s" msgstr "Erreur à l'ouverture du répertoire du certificat SSL : « %s » : %s" #: ../pan/data/cert-store.cc:303 #, c-format msgid "Successfully added %d SSL PEM certificate(s) to Certificate Store." msgstr "Ajout de %d certificat(s) PEM SSL au Certificate Store avec succès." #: ../pan/data/cert-store.cc:328 msgid "" "Error initializing Certificate Store. Check that the permissions for the " "folders ~/.pan2 and ~/.pan2/ssl_certs are set correctly. Fatal, exiting." msgstr "" "Erreur d'initialisation du Certificate Store. Vérifiez que les permissions " "pour les dossiers ~/.pan2 et ~/.pan2/ssl_certs sont correctement définies. " "Erreur fatale, sortie." #. load_group_descriptions (*_data_io); #: ../pan/data-impl/data-impl.cc:110 #, c-format msgid "Loaded data backend in %.1f seconds" msgstr "Moteur de données chargé en %.1f secondes" #: ../pan/data-impl/data-impl.cc:141 msgid "Pan Newsreader's server passwords" msgstr "Mots de passe serveur du lecteur de nouvelles Pan" #: ../pan/data-impl/groups.cc:94 #, c-format msgid "Skipping newsrc file for server \"%s\"" msgstr "Saut du fichier newsrc pour le serveur « %s »" #: ../pan/data-impl/headers.cc:606 #, c-format msgid "Expired %lu old articles from \"%s\"" msgstr "%lu articles expirés de « %s »" #: ../pan/data-impl/headers.cc:613 #, c-format msgid "" "Unsupported data version for %s headers: %d.\n" "Are you running an old version of Pan by accident?" msgstr "" "Version de données non prise en charge pour les en-têtes %s : %d.\n" "Auriez-vous lancé, par mégarde, une ancienne version de Pan ?" #: ../pan/data-impl/headers.cc:628 #, c-format msgid "Loaded %lu articles for \"%s\" in %.1f seconds (%.0f per second)" msgstr "%lu articles chargés dans « %s » en %.1f secondes (%.0f par seconde)" #: ../pan/data-impl/headers.cc:857 #, c-format msgid "" "Saved %lu parts, %lu articles in \"%s\" in %.1f seconds (%.0f articles/sec)" msgstr "" "%lu parties et %lu articles enregistrés dans « %s » en %.1f secondes (%.0f " "articles/sec)" #: ../pan/data-impl/headers.cc:1173 #, c-format msgid "Added %lu articles to %s." msgstr "%lu articles ajoutés à %s." #: ../pan/data-impl/server.cc:252 #, c-format msgid "There seems to be no password set for server %s." msgstr "Aucun mot de passe ne semble défini pour le serveur %s." #: ../pan/data-impl/server.cc:256 msgid "GNOME Keyring denied access to the passwords." msgstr "Le trousseau GNOME a refusé l'accès aux mots de passe." #: ../pan/data-impl/xover.cc:239 #, c-format msgid "Error reading from %s: unknown group \"%s\"" msgstr "Erreur lors de la lecture depuis %s : groupe « %s » inconnu" #. build the locale strings #: ../pan/general/e-util.cc:213 msgid "%l:%M %p" msgstr "%k:%M" #: ../pan/general/e-util.cc:214 msgid "Today %l:%M %p" msgstr "Aujourd'hui %k:%M" #: ../pan/general/e-util.cc:215 msgid "%a %l:%M %p" msgstr "%a %k:%M" #: ../pan/general/e-util.cc:216 msgid "%b %d %l:%M %p" msgstr "%d %b %k:%M" #: ../pan/general/e-util.cc:217 msgid "%b %d %Y" msgstr "%d %b %Y" #: ../pan/general/e-util.cc:242 msgid "?" msgstr "?" #: ../pan/general/text-match.cc:193 #, c-format msgid "Can't use regular expression \"%s\": %s" msgstr "Impossible d'utiliser l'expression régulière « %s » : %s" #: ../pan/general/utf8-utils.cc:213 msgid "Couldn't determine article encoding. Non-UTF8 characters were removed." msgstr "" "Impossible de déterminer le codage de l'article. Les caractères non UTF-8 " "ont été supprimés." #: ../pan/gui/actions.cc:274 ../pan/gui/post-ui.cc:417 msgid "_File" msgstr "_Fichier" #: ../pan/gui/actions.cc:275 ../pan/gui/post-ui.cc:418 msgid "_Edit" msgstr "É_dition" #: ../pan/gui/actions.cc:276 ../pan/gui/prefs-ui.cc:1080 msgid "_Layout" msgstr "_Agencement" #: ../pan/gui/actions.cc:277 msgid "_Group Pane" msgstr "Panneau des _groupes" #: ../pan/gui/actions.cc:278 msgid "_Header Pane" msgstr "Panneau des _en-têtes" #: ../pan/gui/actions.cc:279 msgid "_Body Pane" msgstr "Panneau du _corps" #: ../pan/gui/actions.cc:280 msgid "_View" msgstr "_Affichage" #: ../pan/gui/actions.cc:281 msgid "Filte_r" msgstr "F_iltre" #: ../pan/gui/actions.cc:282 msgid "_Go" msgstr "A_ller à" #: ../pan/gui/actions.cc:283 ../pan/gui/prefs-ui.cc:1107 msgid "_Actions" msgstr "A_ctions" #: ../pan/gui/actions.cc:284 msgid "_Articles" msgstr "_Articles" #: ../pan/gui/actions.cc:285 msgid "G_roups" msgstr "G_roupes" #: ../pan/gui/actions.cc:286 ../pan/gui/actions.cc:287 msgid "_Post" msgstr "_Postage" #: ../pan/gui/actions.cc:288 msgid "_Help" msgstr "Aid_e" #: ../pan/gui/actions.cc:291 msgid "_Read Group" msgstr "_Lire le groupe" #: ../pan/gui/actions.cc:292 msgid "Read Group" msgstr "Lire le groupe" #: ../pan/gui/actions.cc:296 msgid "_Mark Selected Groups Read" msgstr "_Marquer les groupes sélectionnés comme lus" #: ../pan/gui/actions.cc:297 msgid "Mark Selected Groups Read" msgstr "Marquer les groupes sélectionnés comme lus" #: ../pan/gui/actions.cc:301 msgid "_Delete Selected Groups' Articles" msgstr "_Supprimer les articles des groupes sélectionnés" #: ../pan/gui/actions.cc:302 msgid "Delete Selected Groups' Articles" msgstr "Supprimer les articles des groupes sélectionnés" #: ../pan/gui/actions.cc:306 msgid "Get New _Headers in Selected Groups" msgstr "Récupérer les nouveaux _en-têtes des groupes sélectionnés" #: ../pan/gui/actions.cc:307 msgid "Get New Headers in Selected Groups" msgstr "Récupérer les nouveaux en-têtes des groupes sélectionnés" #: ../pan/gui/actions.cc:311 ../pan/gui/actions.cc:316 msgid "Get New _Headers in Subscribed Groups" msgstr "Récupérer les nouveaux _en-têtes des groupes abonnés" #: ../pan/gui/actions.cc:312 ../pan/gui/actions.cc:317 msgid "Get New Headers in Subscribed Groups" msgstr "Récupérer les nouveaux en-têtes des groupes abonnés" #: ../pan/gui/actions.cc:321 msgid "Get _Headers..." msgstr "Récupérer les _en-têtes..." #: ../pan/gui/actions.cc:322 msgid "Get Headers..." msgstr "Récupérer les en-têtes..." #: ../pan/gui/actions.cc:326 ../pan/gui/actions.cc:327 msgid "Refresh Group List" msgstr "Actualiser la liste des groupes" #: ../pan/gui/actions.cc:331 msgid "_Subscribe" msgstr "S'_abonner" #: ../pan/gui/actions.cc:332 msgid "Subscribe" msgstr "S'abonner" #: ../pan/gui/actions.cc:336 msgid "_Unsubscribe" msgstr "Se _désabonner" #: ../pan/gui/actions.cc:337 msgid "Unsubscribe" msgstr "Se désabonner" #: ../pan/gui/actions.cc:341 msgid "_Save Articles..." msgstr "Enregi_strer les articles..." #: ../pan/gui/actions.cc:342 msgid "Save Articles..." msgstr "Enregistrer les articles..." #: ../pan/gui/actions.cc:346 msgid "Save Articles from Selected _NZB..." msgstr "Enregi_strer les articles du NZB sélectionné..." #: ../pan/gui/actions.cc:347 msgid "Save Articles from Selected NZB" msgstr "Enregistrer les articles du NZB sélectionné" #: ../pan/gui/actions.cc:351 msgid "Save Articles to an NZB _File..." msgstr "Enregistrer les articles dans un _fichier NZB..." #: ../pan/gui/actions.cc:352 msgid "Save Articles to an NZB File" msgstr "Enregistrer les articles dans un fichier NZB" #: ../pan/gui/actions.cc:356 ../pan/gui/actions.cc:357 msgid "Print" msgstr "Imprimer" #: ../pan/gui/actions.cc:361 msgid "_Import NZB Files..." msgstr "_Importer les fichiers NZB..." #: ../pan/gui/actions.cc:366 msgid "_Cancel Last Task" msgstr "_Annuler la dernière tâche" #: ../pan/gui/actions.cc:371 msgid "_Task Manager" msgstr "Gestionnaire de _tâches" #: ../pan/gui/actions.cc:376 msgid "_Event Log" msgstr "_Journal d'événements" #: ../pan/gui/actions.cc:381 msgid "_Quit" msgstr "_Quitter" #: ../pan/gui/actions.cc:386 msgid "Select _All Articles" msgstr "Sélectionner tous les _articles" #: ../pan/gui/actions.cc:391 msgid "_Deselect All Articles" msgstr "Désélectionner _tous les articles" #: ../pan/gui/actions.cc:396 msgid "Add Su_bthreads to Selection" msgstr "Ajouter les _sous-fils de discussion à la sélection" #: ../pan/gui/actions.cc:401 msgid "Add _Threads to Selection" msgstr "Ajouter les _fils de discussion à la sélection" #: ../pan/gui/actions.cc:406 msgid "Add _Similar Articles to Selection" msgstr "Ajouter les articles _similaires à la sélection" #: ../pan/gui/actions.cc:411 msgid "Select Article _Body" msgstr "Sélectionner le _corps de l'article" #: ../pan/gui/actions.cc:416 msgid "Edit _Preferences" msgstr "Modifier les _préférences" #: ../pan/gui/actions.cc:421 msgid "Edit Selected _Group's Preferences" msgstr "Modifier les préférences du _groupe sélectionné" #: ../pan/gui/actions.cc:426 ../pan/gui/post-ui.cc:434 msgid "Edit P_osting Profiles" msgstr "Modifier les pr_ofils de postage" #: ../pan/gui/actions.cc:431 msgid "Edit _News Servers" msgstr "Modifier les serveurs de _nouvelles" #: ../pan/gui/actions.cc:436 msgid "Jump to _Group Tab" msgstr "Aller à l'onglet des _groupes" #: ../pan/gui/actions.cc:441 msgid "Jump to _Header Tab" msgstr "Aller à l'onglet des _en-têtes" #: ../pan/gui/actions.cc:446 msgid "Jump to _Body Tab" msgstr "Aller à l'onglet du _corps" #: ../pan/gui/actions.cc:451 msgid "_Rot13 Selected Text" msgstr "Appliquer _Rot13 sur le texte sélectionné" #: ../pan/gui/actions.cc:456 msgid "Clear _Header Pane" msgstr "Nettoyer le panneau des _en-têtes" #: ../pan/gui/actions.cc:461 msgid "Clear _Body Pane" msgstr "Nettoyer le panneau du _corps" #: ../pan/gui/actions.cc:466 msgid "Cache Article" msgstr "Mettre en cache l'article" #: ../pan/gui/actions.cc:471 msgid "Read Article" msgstr "Lire l'article" #: ../pan/gui/actions.cc:476 msgid "Show Article Information" msgstr "Afficher les informations de l'article" #: ../pan/gui/actions.cc:481 msgid "Read _More" msgstr "Lire la _suite" #: ../pan/gui/actions.cc:482 msgid "Read More" msgstr "Lire la suite" #: ../pan/gui/actions.cc:486 msgid "Read _Back" msgstr "Lire _en arrière" #: ../pan/gui/actions.cc:487 msgid "Read Back" msgstr "Lire en arrière" #: ../pan/gui/actions.cc:491 msgid "Next _Unread Group" msgstr "Lire le groupe _non lu suivant" #: ../pan/gui/actions.cc:496 msgid "Next _Group" msgstr "_Groupe suivant" #: ../pan/gui/actions.cc:501 msgid "Next _Unread Article" msgstr "Article _non lu suivant" #: ../pan/gui/actions.cc:502 msgid "Next Unread Article" msgstr "Article non lu suivant" #: ../pan/gui/actions.cc:506 msgid "Next _Article" msgstr "Article _suivant" #: ../pan/gui/actions.cc:507 msgid "Next Article" msgstr "Article suivant" #: ../pan/gui/actions.cc:511 msgid "Next _Watched Article" msgstr "Article sur_veillé suivant" #: ../pan/gui/actions.cc:516 msgid "Next Unread _Thread" msgstr "_Fil de discussion non lu suivant" #: ../pan/gui/actions.cc:517 msgid "Next Unread Thread" msgstr "Fil de discussion non lu suivant" #: ../pan/gui/actions.cc:521 msgid "Next Threa_d" msgstr "F_il de discussion suivant" #: ../pan/gui/actions.cc:526 msgid "Pre_vious Article" msgstr "Article _précédent" #: ../pan/gui/actions.cc:531 msgid "Previous _Thread" msgstr "Fil de discussion _précédent" #: ../pan/gui/actions.cc:536 msgid "_Parent Article" msgstr "Article _parent" #: ../pan/gui/actions.cc:541 msgid "Ignore _Author" msgstr "Ignorer l'_auteur" #: ../pan/gui/actions.cc:545 msgid "_Watch Thread" msgstr "_Surveiller le fil de discussion" #: ../pan/gui/actions.cc:550 msgid "_Ignore Thread" msgstr "_Ignorer le fil de discussion" #: ../pan/gui/actions.cc:555 ../pan/gui/actions.cc:556 msgid "_Toggle Flag On/Off for Thread" msgstr "_Basculer le marquage de ce fil de discussion" #: ../pan/gui/actions.cc:560 ../pan/gui/actions.cc:561 msgid "_Turn Flag Off for Thread" msgstr "_Ne plus marquer ce fil de discussion" #: ../pan/gui/actions.cc:565 ../pan/gui/actions.cc:566 msgid "_Select All Flagged Threads" msgstr "_Sélectionner tous les fils marqués" #: ../pan/gui/actions.cc:570 ../pan/gui/actions.cc:571 msgid "_Go to Next Flagged Thread" msgstr "Aller au _prochain fil marqué" #: ../pan/gui/actions.cc:575 ../pan/gui/actions.cc:576 msgid "_Go to Last Flagged Thread" msgstr "Aller au _dernier fil marqué" #: ../pan/gui/actions.cc:580 ../pan/gui/actions.cc:581 msgid "_Invert Selection" msgstr "_Inverser la sélection" #: ../pan/gui/actions.cc:585 msgid "Edit Article's Watch/Ignore/Score..." msgstr "Modifier surveillance/ignorance/notation de l'article..." #: ../pan/gui/actions.cc:590 msgid "Add a _Scoring Rule..." msgstr "_Ajouter une règle de notation..." #: ../pan/gui/actions.cc:595 msgid "Cance_l Article..." msgstr "_Annuler l'article..." #: ../pan/gui/actions.cc:600 msgid "_Supersede Article..." msgstr "_Remplacer l'article..." #: ../pan/gui/actions.cc:605 msgid "_Delete Article" msgstr "_Supprimer l'article" #: ../pan/gui/actions.cc:610 msgid "Clear Article Cache" msgstr "Vider le cache d'articles" #: ../pan/gui/actions.cc:615 msgid "_Mark Article as Read" msgstr "_Marquer l'article comme lu" #: ../pan/gui/actions.cc:620 msgid "Mark Article as _Unread" msgstr "Marquer l'article comme non l_u" #: ../pan/gui/actions.cc:626 msgid "_Mark Thread as Read" msgstr "_Marquer le fil comme lu" #: ../pan/gui/actions.cc:631 msgid "Mark Thread as _Unread" msgstr "Marquer le fil comme non l_u" #: ../pan/gui/actions.cc:636 msgid "_Post to Newsgroup" msgstr "_Poster dans le groupe de discussion" #: ../pan/gui/actions.cc:637 msgid "Post to Newsgroup" msgstr "Poster dans le groupe de discussion" #: ../pan/gui/actions.cc:641 msgid "_Followup to Newsgroup" msgstr "_Transmettre au groupe de discussion" #: ../pan/gui/actions.cc:642 msgid "Followup to Newsgroup" msgstr "Transmettre au groupe de discussion" #: ../pan/gui/actions.cc:646 msgid "_Reply to Author in Mail" msgstr "_Répondre à l'auteur par courriel" #: ../pan/gui/actions.cc:651 msgid "_Pan Home Page" msgstr "Page d'_accueil de Pan" #: ../pan/gui/actions.cc:656 msgid "Give _Feedback or Report a Bug..." msgstr "Donner son a_vis ou rapporter une anomalie..." #: ../pan/gui/actions.cc:661 msgid "_Tip Jar..." msgstr "Verser une _contribution..." #: ../pan/gui/actions.cc:666 msgid "_About" msgstr "À _propos" #: ../pan/gui/actions.cc:671 msgid "Edit _SSL Certificates" msgstr "Modifier les certificats _SSL" #: ../pan/gui/actions.cc:685 msgid "_Thread Headers" msgstr "En-têtes du _fil de discussion" #: ../pan/gui/actions.cc:686 msgid "Wrap Article Body" msgstr "Reformater le corps de l'article" #: ../pan/gui/actions.cc:687 msgid "Show Article Signature" msgstr "Afficher la signature de l'article" #: ../pan/gui/actions.cc:688 msgid "Mute _Quoted Text" msgstr "Cacher le texte _cité" #: ../pan/gui/actions.cc:689 msgid "Show All _Headers in Body Pane" msgstr "Afficher tous les _en-têtes dans le panneau du corps" #: ../pan/gui/actions.cc:690 msgid "Show _Smilies as Graphics" msgstr "Afficher les _frimousses comme des graphismes" #: ../pan/gui/actions.cc:691 msgid "Show *Bold*, __Underlined__, and /Italic/" msgstr "Afficher *gras*, __souligné__ et /italique/" #: ../pan/gui/actions.cc:692 msgid "Size Pictures to _Fit" msgstr "_Adaptation de la taille des images" #: ../pan/gui/actions.cc:693 msgid "Use _Monospace Font" msgstr "Utiliser une police à largeur fi_xe" #: ../pan/gui/actions.cc:694 msgid "Set Focus to Images" msgstr "Mettre le focus sur les images" #: ../pan/gui/actions.cc:695 msgid "Highlight _URLs" msgstr "Surligner les _URLs" #: ../pan/gui/actions.cc:698 msgid "_Work Online" msgstr "Travailler en _ligne" #: ../pan/gui/actions.cc:699 msgid "_Tabbed Layout" msgstr "Agencement en _onglets" #: ../pan/gui/actions.cc:700 msgid "Show Group _Pane" msgstr "Afficher le panneau des g_roupes" #: ../pan/gui/actions.cc:701 msgid "Show Hea_der Pane" msgstr "Afficher le panneau des e_n-têtes" #: ../pan/gui/actions.cc:702 msgid "Show Bod_y Pane" msgstr "Afficher le panneau du c_orps" #: ../pan/gui/actions.cc:703 msgid "Show _Toolbar" msgstr "Afficher la barre d'ou_tils" #: ../pan/gui/actions.cc:704 msgid "Abbreviate Group Names" msgstr "Abréger les noms des groupes" #: ../pan/gui/actions.cc:706 msgid "Match Only _Unread Articles" msgstr "Afficher seulement les articles non l_us" #: ../pan/gui/actions.cc:706 msgid "Match Only Unread Articles" msgstr "Afficher seulement les articles non lus" #: ../pan/gui/actions.cc:707 msgid "Match Only _Cached Articles" msgstr "Afficher seulement les articles mis en _cache" #: ../pan/gui/actions.cc:707 msgid "Match Only Cached Articles" msgstr "Afficher seulement les articles mis en cache" #: ../pan/gui/actions.cc:708 msgid "Match Only _Complete Articles" msgstr "Afficher seulement les articles _complets" #: ../pan/gui/actions.cc:708 msgid "Match Only Complete Articles" msgstr "Afficher seulement les articles complets" #: ../pan/gui/actions.cc:709 msgid "Match Only _My Articles" msgstr "Afficher seulement _mes articles" #: ../pan/gui/actions.cc:709 msgid "Match Only My Articles" msgstr "Afficher seulement mes articles" #: ../pan/gui/actions.cc:710 msgid "Match Only _Watched Articles" msgstr "Afficher seulement les articles _surveillés" #: ../pan/gui/actions.cc:710 msgid "Match Only Watched Articles" msgstr "Afficher seulement les articles surveillés" #: ../pan/gui/actions.cc:712 msgid "Match Scores of 9999 (_Watched)" msgstr "Afficher les notes de 9999 (_surveillés)" #: ../pan/gui/actions.cc:713 msgid "Match Scores of 5000...9998 (_High)" msgstr "Afficher les notes comprises entre 5000 et 9998 (_hauts)" #: ../pan/gui/actions.cc:714 msgid "Match Scores of 1...4999 (Me_dium)" msgstr "Afficher les notes comprises entre 1 et 4999 (mo_yens)" #: ../pan/gui/actions.cc:715 msgid "Match Scores of 0 (_Normal)" msgstr "Afficher les notes de 0 (_normaux)" #: ../pan/gui/actions.cc:716 msgid "Match Scores of -9998...-1 (_Low)" msgstr "Afficher les notes comprises entre -9998 et -1 (_bas)" #: ../pan/gui/actions.cc:717 msgid "Match Scores of -9999 (_Ignored)" msgstr "Afficher les notes de -9999 (_ignorés)" #: ../pan/gui/actions.cc:719 msgid "Enable/Disable All _Rules" msgstr "Activer/Désactiver toutes les _règles" #: ../pan/gui/actions.cc:745 msgid "Show Matching _Articles" msgstr "Afficher les _articles correspondants" #: ../pan/gui/actions.cc:746 msgid "Show Matching Articles' _Threads" msgstr "Afficher les _fils de discussion des articles correspondants" #: ../pan/gui/actions.cc:747 msgid "Show Matching Articles' _Subthreads" msgstr "Afficher les _sous-fils de discussion des articles correspondants" #: ../pan/gui/body-pane.cc:1032 #, c-format msgid "Unnamed File" msgstr "Fichier sans nom" #: ../pan/gui/body-pane.cc:1113 ../pan/gui/gui.cc:1915 #: ../pan/gui/header-pane.cc:1210 ../pan/gui/header-pane.cc:1639 #: ../pan/gui/post-ui.cc:2523 ../pan/gui/prefs-ui.cc:843 #: ../pan/gui/score-add-ui.cc:139 msgid "Subject" msgstr "Sujet" #: ../pan/gui/body-pane.cc:1115 ../pan/gui/gui.cc:1915 msgid "From" msgstr "De" #: ../pan/gui/body-pane.cc:1117 ../pan/gui/gui.cc:1916 #: ../pan/gui/header-pane.cc:1717 ../pan/gui/log-ui.cc:305 #: ../pan/gui/prefs-ui.cc:839 msgid "Date" msgstr "Date" #: ../pan/gui/body-pane.cc:1124 msgid "Newsgroups" msgstr "Groupe de discussion" #: ../pan/gui/body-pane.cc:1129 msgid "Followup-To" msgstr "Faire suivre à" #: ../pan/gui/body-pane.cc:1139 msgid "Reply-To" msgstr "Répondre à" #: ../pan/gui/body-pane.cc:1182 msgid " from " msgstr " de " #: ../pan/gui/body-pane.cc:1184 msgid " at " msgstr " le " #: ../pan/gui/body-pane.cc:1265 #, c-format msgid "" "This is a PGP-Signed message.\n" "\n" "Signer: %s ('%s')\n" "Valid until: %s\n" "Created on: %s" msgstr "" "Il s'agit d'un message chiffré PGP.\n" "\n" "Signature : %s (« %s »)\n" "Valide jusqu'au : %s\n" "Crée le : %s" #: ../pan/gui/body-pane.cc:1270 msgid "always" msgstr "toujours" #: ../pan/gui/body-pane.cc:1490 msgid "Copy _URL" msgstr "Copier l'_URL" #: ../pan/gui/body-pane.cc:1686 msgid "Save Attachment As..." msgstr "Enregistrer les pièces jointes sous..." #: ../pan/gui/body-pane.cc:1689 msgid "Save All Attachments" msgstr "Enregistrer toutes les pièces jointes" #. add a toolbar for attachments #: ../pan/gui/body-pane.cc:1759 msgid "Attachments" msgstr "Pièces jointes" #. update the titlebar #: ../pan/gui/dl-headers-ui.cc:106 ../pan/gui/gui.cc:1010 #: ../pan/gui/gui.cc:1627 ../pan/gui/gui.cc:1944 #: ../pan/gui/score-add-ui.cc:602 msgid "Pan" msgstr "Pan" #: ../pan/gui/dl-headers-ui.cc:112 #, c-format msgid "%d Group" msgid_plural "%d Groups" msgstr[0] "%d groupe" msgstr[1] "%d groupes" #: ../pan/gui/dl-headers-ui.cc:135 msgid "Get the last N _days' headers: " msgstr "Récupérer les en-têtes des N _derniers jours : " #: ../pan/gui/dl-headers-ui.cc:143 msgid "Get _new headers" msgstr "Récupérer les nouveaux _en-têtes" #: ../pan/gui/dl-headers-ui.cc:147 msgid "Get _all headers" msgstr "Récupérer _tous les en-têtes" #: ../pan/gui/dl-headers-ui.cc:151 msgid "Get the _latest N headers: " msgstr "Récupérer _les N derniers en-têtes : " #: ../pan/gui/e-action-combo-box.c:388 ../pan/gui/prefs-ui.cc:836 msgid "Action" msgstr "Action" #: ../pan/gui/e-action-combo-box.c:389 msgid "A GtkRadioAction" msgstr "Un GtkRadioAction" #: ../pan/gui/e-charset.c:51 ../pan/gui/task-pane.cc:518 msgid "Unknown" msgstr "Inconnu" #: ../pan/gui/e-charset.c:52 msgid "Arabic" msgstr "Arabe" #: ../pan/gui/e-charset.c:53 msgid "Baltic" msgstr "Balte" #: ../pan/gui/e-charset.c:54 msgid "Central European" msgstr "Europe centrale" #: ../pan/gui/e-charset.c:55 msgid "Chinese" msgstr "Chinois" #: ../pan/gui/e-charset.c:56 msgid "Cyrillic" msgstr "Cyrillique" #: ../pan/gui/e-charset.c:57 msgid "Greek" msgstr "Grec" #: ../pan/gui/e-charset.c:58 msgid "Hebrew" msgstr "Hébreu" #: ../pan/gui/e-charset.c:59 msgid "Japanese" msgstr "Japonais" #: ../pan/gui/e-charset.c:60 msgid "Korean" msgstr "Coréen" #: ../pan/gui/e-charset.c:61 msgid "Thai" msgstr "Thaï" #: ../pan/gui/e-charset.c:62 msgid "Turkish" msgstr "Turc" #: ../pan/gui/e-charset.c:63 msgid "Unicode" msgstr "Unicode" #: ../pan/gui/e-charset.c:64 msgid "Western European" msgstr "Europe occidentale" #: ../pan/gui/e-charset.c:65 msgid "Western European, New" msgstr "Europe occidentale, nouveau" #: ../pan/gui/e-charset.c:84 ../pan/gui/e-charset.c:85 #: ../pan/gui/e-charset.c:86 msgid "Traditional" msgstr "Traditionnel" #: ../pan/gui/e-charset.c:87 ../pan/gui/e-charset.c:88 #: ../pan/gui/e-charset.c:89 ../pan/gui/e-charset.c:90 msgid "Simplified" msgstr "Simplifié" #: ../pan/gui/e-charset.c:93 msgid "Ukrainian" msgstr "Ukrainien" #: ../pan/gui/e-charset.c:96 msgid "Visual" msgstr "Visuel" #: ../pan/gui/e-charset-combo-box.c:93 ../pan/gui/gui.cc:2109 #: ../pan/gui/post-ui.cc:519 ../pan/gui/prefs-ui.cc:747 msgid "Character Encoding" msgstr "Codage des caractères" #: ../pan/gui/e-charset-combo-box.c:117 msgid "Enter the character set to use" msgstr "Saisissez le jeu de caractères à utiliser" #: ../pan/gui/e-charset-combo-box.c:336 msgid "Other..." msgstr "Autre..." #: ../pan/gui/e-cte-dialog.c:78 msgid "Default Encoding" msgstr "Codage par défaut" #: ../pan/gui/e-cte-dialog.c:80 msgid "7-Bit Encoding" msgstr "Codage 7 bits" #: ../pan/gui/e-cte-dialog.c:82 msgid "8-Bit Encoding" msgstr "Codage 8 bits" #: ../pan/gui/e-cte-dialog.c:84 msgid "Base64 Encoding" msgstr "Codage Base64" #: ../pan/gui/e-cte-dialog.c:86 msgid "Quoted-Printable Encoding" msgstr "Codage « quoted-printable »" #: ../pan/gui/group-pane.cc:500 msgid "Group" msgstr "Groupes" #: ../pan/gui/group-pane.cc:501 msgid "Group (regex)" msgstr "Groupe (expression régulière)" #: ../pan/gui/group-pane.cc:941 msgid "Subscribed Groups" msgstr "Groupes abonnés" #: ../pan/gui/group-pane.cc:942 msgid "Other Groups" msgstr "Autres groupes" #: ../pan/gui/group-pane.cc:982 ../pan/gui/score-view-ui.cc:157 msgid "Name" msgstr "Nom" #: ../pan/gui/group-prefs-dialog.cc:162 msgid "No Profiles defined in Edit|Posting Profiles." msgstr "" "Aucun profil n'est défini dans Édition|Modifier les profils de postage." #: ../pan/gui/group-prefs-dialog.cc:272 msgid "Pan: Group Preferences" msgstr "Pan : préférences du groupe" #: ../pan/gui/group-prefs-dialog.cc:287 #, c-format msgid "Properties for Groups" msgstr "Propriétés pour les groupes" #: ../pan/gui/group-prefs-dialog.cc:289 #, c-format msgid "Properties for %s" msgstr "Propriétés pour %s" #: ../pan/gui/group-prefs-dialog.cc:297 msgid "Character _encoding:" msgstr "_Codage des caractères :" #: ../pan/gui/group-prefs-dialog.cc:299 msgid "Directory for Saving Attachments" msgstr "Répertoire pour l'enregistrement des pièces jointes" #: ../pan/gui/group-prefs-dialog.cc:307 msgid "Directory for _saving attachments:" msgstr "Répertoire pour l'enregi_strement des pièces jointes :" #: ../pan/gui/group-prefs-dialog.cc:309 msgid "Posting _profile:" msgstr "_Profil de postage :" #: ../pan/gui/group-prefs-dialog.cc:314 msgid "Spellchecker _language:" msgstr "_Langue du correcteur orthographique :" #: ../pan/gui/group-prefs-dialog.cc:317 msgid "Group color:" msgstr "Couleur du groupe :" #: ../pan/gui/gui.cc:301 msgid "Open the Task Manager" msgstr "Ouvrir le gestionnaire de tâches" #: ../pan/gui/gui.cc:329 msgid "Open the Event Log" msgstr "Ouvrir le journal d'événements" #: ../pan/gui/gui.cc:599 msgid "Save NZB's Files" msgstr "Enregistrer les fichiers NZB" #: ../pan/gui/gui.cc:626 msgid "Untitled.nzb" msgstr "sanstitre.nzb" #: ../pan/gui/gui.cc:628 msgid "Save NZB File as..." msgstr "Sauvegarder les fichiers NZB sous..." #: ../pan/gui/gui.cc:794 msgid "Import NZB Files" msgstr "Importer des fichiers NZB" #: ../pan/gui/gui.cc:802 ../pan/gui/post-ui.cc:3217 msgid "NZB Files" msgstr "Fichiers NZB" #: ../pan/gui/gui.cc:807 msgid "All Files" msgstr "Tous les fichiers" #: ../pan/gui/gui.cc:1294 msgid "Unable to supersede article." msgstr "Impossible de remplacer l'article." #: ../pan/gui/gui.cc:1295 ../pan/gui/gui.cc:1369 msgid "The article doesn't match any of your posting profiles." msgstr "L'article ne correspond à aucun de vos profils de postage." #: ../pan/gui/gui.cc:1342 msgid "Revise and send this article to replace the old one." msgstr "Réviser cet article et le renvoyer pour remplacer l'ancien." #: ../pan/gui/gui.cc:1343 ../pan/gui/gui.cc:1406 msgid "Be patient! It will take time for your changes to take effect." msgstr "" "Soyez patient ! Cela va prendre du temps pour que vos changements " "s'appliquent." #: ../pan/gui/gui.cc:1368 msgid "Unable to cancel article." msgstr "Impossible d'annuler l'article." #: ../pan/gui/gui.cc:1405 msgid "Send this article to ask your server to cancel your other one." msgstr "" "Envoyez cet article pour demander à votre serveur d'annuler le précédent." #: ../pan/gui/gui.cc:1423 msgid "You have marked some articles for deletion." msgstr "Vous avez marqués des articles à supprimer." #: ../pan/gui/gui.cc:1424 msgid "Are you sure you want to delete them?" msgstr "Voulez-vous les supprimer ?" #: ../pan/gui/gui.cc:1450 msgid "Do you want to accept it permanently? (You can change this later.)" msgstr "" "Voulez-vous l'accepter de façon permanente (vous pourrez le modifier plus " "tard) ?" #: ../pan/gui/gui.cc:1630 msgid "Copyright \\u00A9 2002-2012 Charles Kerr and others" msgstr "Copyright \\u00A9 2002-2012 Charles Kerr et contributeurs" #: ../pan/gui/gui.cc:1635 msgid "translator-credits" msgstr "" "Jonathan Ernst \n" "Cyprien Le Pannérer \n" "Claude Paroz \n" "Frederic Bezies \n" "Bruno Brouard " #: ../pan/gui/gui.cc:1761 msgid "_1. Group Pane" msgstr "_1. Panneau des groupes" #: ../pan/gui/gui.cc:1762 msgid "_2. Header Pane" msgstr "_2. Panneau des en-têtes" #: ../pan/gui/gui.cc:1763 msgid "_3. Body Pane" msgstr "_3. Panneau du corps" #: ../pan/gui/gui.cc:1852 ../pan/gui/gui.cc:1867 msgid " Bytes" msgstr "Octets" #: ../pan/gui/gui.cc:1855 msgid " KB" msgstr " Ko" #: ../pan/gui/gui.cc:1858 msgid " MB" msgstr " Mo" #: ../pan/gui/gui.cc:1861 msgid " GB" msgstr " Go" #: ../pan/gui/gui.cc:1864 msgid " TB" msgstr " To" #: ../pan/gui/gui.cc:1896 #, c-format msgid "This article is complete with %d part." msgid_plural "This article has all %d parts." msgstr[0] "Cet article est complet et présente %d partie." msgstr[1] "Cet article est complet et présente %d parties." #: ../pan/gui/gui.cc:1898 #, c-format msgid "This article is missing %d part." msgid_plural "This article is missing %d of its %d parts:" msgstr[0] "Il manque %d partie à cet article." msgstr[1] "Il manque %d sur les %d parties à cet article :" #: ../pan/gui/gui.cc:1916 ../pan/gui/header-pane.cc:1212 msgid "Message-ID" msgstr "ID du message" #: ../pan/gui/gui.cc:1917 ../pan/gui/header-pane.cc:1687 #: ../pan/gui/prefs-ui.cc:840 msgid "Lines" msgstr "Lignes" #: ../pan/gui/gui.cc:1917 msgid "Size" msgstr "Taille" #: ../pan/gui/gui.cc:1918 ../pan/gui/header-pane.cc:1702 #: ../pan/gui/prefs-ui.cc:838 msgid "Bytes" msgstr "Octets" #: ../pan/gui/gui.cc:1968 msgid "" "Error loading iconv library. Encoding certain character sets will not work " "in GUI." msgstr "" "Erreur lors du chargement de la bibliothèque iconv. Le codage de certains " "jeux de caractères sera incorrect dans l'interface graphique." #: ../pan/gui/gui.cc:2110 msgid "Body Pane Encoding" msgstr "Codage du panneau du corps" #: ../pan/gui/gui.cc:2141 ../pan/gui/task-pane.cc:569 #, c-format msgid "Offline" msgstr "Hors ligne" #: ../pan/gui/gui.cc:2145 #, c-format msgid "Closing %d connection" msgid_plural "Closing %d connections" msgstr[0] "Fermeture de %d connexion" msgstr[1] "Fermeture de %d connexions" #: ../pan/gui/gui.cc:2147 ../pan/gui/gui.cc:2177 #, c-format msgid "No Connections" msgstr "Aucune connexion" #: ../pan/gui/gui.cc:2151 #, c-format msgid "Connecting" msgstr "Connexion en cours" #: ../pan/gui/gui.cc:2164 #, c-format msgid "%s: %d idle, %d active @ %.1f KiBps" msgstr "%s : %d au repos, %d actifs @ %.1f Kio/s" #: ../pan/gui/gui.cc:2220 #, c-format msgid "No Tasks" msgstr "Aucune tâche" #: ../pan/gui/gui.cc:2222 ../pan/gui/prefs-ui.cc:1063 msgid "Tasks" msgstr "Tâches" #: ../pan/gui/gui.cc:2234 ../pan/gui/task-pane.cc:435 #, c-format msgid "%lu tasks, %s, %.1f KiBps, ETA %d:%02d:%02d" msgstr "%lu tâches, %s, %.1f Kio/s, ETA %d:%02d:%02d" #: ../pan/gui/gui.cc:2286 msgid "" "Pan is now offline. Please see \"File|Event Log\" and correct the problem, " "then use \"File|Work Online\" to continue." msgstr "" "Pan est maintenant hors ligne. Veuillez consulter « Fichier|Journal " "d'événements » et corrigez le problème, puis utilisez « Fichier|Travailler " "en ligne » pour continuer." #: ../pan/gui/header-pane.cc:1208 msgid "Subject or Author" msgstr "Sujet ou auteur" #: ../pan/gui/header-pane.cc:1209 msgid "Sub or Auth (regex)" msgstr "Sujet ou auteur (expression régulière)" #: ../pan/gui/header-pane.cc:1211 ../pan/gui/header-pane.cc:1671 #: ../pan/gui/prefs-ui.cc:837 ../pan/gui/score-add-ui.cc:140 msgid "Author" msgstr "Auteur" #: ../pan/gui/header-pane.cc:1656 ../pan/gui/prefs-ui.cc:841 msgid "Score" msgstr "Note" #: ../pan/gui/log-ui.cc:103 msgid "Save Event List" msgstr "Enregistrer la liste des événements" #: ../pan/gui/log-ui.cc:256 msgid "Pan: Events" msgstr "Pan : événements" #: ../pan/gui/log-ui.cc:315 msgid "Message" msgstr "Message" #: ../pan/gui/pan.cc:342 msgid "Maximize" msgstr "Maximiser" #: ../pan/gui/pan.cc:395 msgid "An error has occurred!" msgstr "Une erreur est survenue !" #: ../pan/gui/pan.cc:409 msgid "New Articles!" msgstr "Nouveaux articles !" #: ../pan/gui/pan.cc:410 msgid "" "There are new\n" "articles available." msgstr "" "Il y a de nouveaux\n" "articles disponibles." #: ../pan/gui/pan.cc:477 msgid "Toggle on/offline" msgstr "Basculer entre le mode en ligne et hors ligne" #: ../pan/gui/pan.cc:525 msgid "" "Thank you for trying Pan!\n" " \n" "To start newsreading, first Add a Server." msgstr "" "Merci d'essayer Pan !\n" "\n" "Commencez par ajouter un serveur pour lire des nouvelles." #: ../pan/gui/pan.cc:607 msgid "" "General Options\n" " -h, --help Show this usage page.\n" " --verbose Be verbose (in non-GUI mode).\n" "\n" "URL Options\n" " --no-gui On news:message-id, dump the article to stdout.\n" "\n" "NZB Batch Options\n" " --nzb file1 file2 ... Process nzb files without launching all of Pan.\n" " -o path, --output=path Path to save attachments listed in the nzb " "files.\n" " --no-gui Only show console output, not the download " "queue.\n" msgstr "" "Options Générales\n" " -h, --help Affiche cette page.\n" " --verbose Mode verbeux (en mode non " "graphique).\n" "\n" "Options des URL\n" " --no-gui Avec news:message-id, affiche " "l'article sur la sortie standard.\n" "\n" "Options d'automate NZB\n" " --nzb fichier1 fichier2 ... Traite les fichiers nzb sans lancer " "l'intégralité de Pan.\n" " -o chemin, --output=chemin Répertoire de sauvegarde des pièces jointes " "listées dans les fichiers nzb.\n" " --no-gui Affiche seulement la console de " "sortie et non la file de téléchargement.\n" #: ../pan/gui/pan.cc:884 msgid "Error: --no-gui used without nzb files or news:message-id." msgstr "Erreur : --no-gui utilisé sans fichiers nzb ou news:message-id." #: ../pan/gui/pan.cc:888 #, c-format msgid "Pan %s started" msgstr "Pan %s démarré" #: ../pan/gui/pan.cc:907 msgid "Please configure Pan's news servers before using it as an nzb client." msgstr "" "Veuillez configurer les serveurs de nouvelles avant d'utiliser Pan comme " "client nzb." #: ../pan/gui/pan.cc:1027 msgid "Pan notification" msgstr "Notification de Pan" #: ../pan/gui/post-ui.cc:184 #, c-format msgid "Upload queue: %u tasks, %ld KB (~ %.2f MB) total." msgstr "File d'attente d'envoi : %u tâches, %ld Kb (~ %.2f Mo) au total." #: ../pan/gui/post-ui.cc:284 #, c-format msgid "Error setting custom spellchecker: %s" msgstr "Erreur de paramétrage du vérificateur d'orthographe personnalisé : %s" #: ../pan/gui/post-ui.cc:289 ../pan/gui/post-ui.cc:298 #, c-format msgid "Error setting spellchecker: %s" msgstr "Erreur de paramétrage du vérificateur d'orthographe : %s" #: ../pan/gui/post-ui.cc:419 msgid "_Profile" msgstr "_Profil" #: ../pan/gui/post-ui.cc:420 msgid "Set Editor" msgstr "Définir l'éditeur" #: ../pan/gui/post-ui.cc:422 msgid "_Send Article" msgstr "_Envoyer l'article" #: ../pan/gui/post-ui.cc:422 msgid "Send Article Now" msgstr "Envoyer l'article immédiatement" #: ../pan/gui/post-ui.cc:423 msgid "_Send and Save Articles to NZB" msgstr "Envoyer et enregi_strer les articles vers NZB" #: ../pan/gui/post-ui.cc:423 msgid "Send and Save Articles to NZB" msgstr "Envoyer et enregistrer les articles vers NZB" #: ../pan/gui/post-ui.cc:424 msgid "Set Character _Encoding..." msgstr "Définir le c_odage des caractères..." #: ../pan/gui/post-ui.cc:425 msgid "Set Content _Transfer Encoding..." msgstr "Définir le codage du _transfert des contenus..." #: ../pan/gui/post-ui.cc:426 msgid "Sa_ve Draft" msgstr "Enregis_trer le brouillon" #: ../pan/gui/post-ui.cc:426 msgid "Save as a Draft for Future Posting" msgstr "Enregistrer en tant que brouillon pour un postage ultérieur" #: ../pan/gui/post-ui.cc:427 msgid "_Open Draft..." msgstr "_Ouvrir un brouillon..." #: ../pan/gui/post-ui.cc:427 msgid "Open an Article Draft" msgstr "Ouvrir le brouillon d'un article" #: ../pan/gui/post-ui.cc:432 msgid "_Rot13" msgstr "_Rot13" #: ../pan/gui/post-ui.cc:432 msgid "Rot13 Selected Text" msgstr "Appliquer rot13 au texte sélectionné" #: ../pan/gui/post-ui.cc:433 msgid "Run _Editor" msgstr "Lancer l'_éditeur" #: ../pan/gui/post-ui.cc:433 msgid "Run Editor" msgstr "Lancer l'éditeur" #: ../pan/gui/post-ui.cc:435 msgid "Add _Files to Queue" msgstr "Ajouter les _fichiers à la liste d'attente" #: ../pan/gui/post-ui.cc:435 msgid "Add Files to Queue" msgstr "Ajouter les fichiers à la liste d'attente" #: ../pan/gui/post-ui.cc:450 ../pan/gui/post-ui.cc:451 msgid "Remove from Queue" msgstr "Enlever de la liste d'attente" #: ../pan/gui/post-ui.cc:455 ../pan/gui/post-ui.cc:456 msgid "Clear List" msgstr "Vider la liste" #: ../pan/gui/post-ui.cc:460 ../pan/gui/post-ui.cc:461 msgid "Select Needed Parts" msgstr "Sélectionner les parties nécessaires" #: ../pan/gui/post-ui.cc:465 ../pan/gui/post-ui.cc:466 #: ../pan/gui/task-pane.cc:636 ../pan/gui/task-pane.cc:637 msgid "Move Up" msgstr "Monter" #: ../pan/gui/post-ui.cc:470 ../pan/gui/post-ui.cc:471 #: ../pan/gui/task-pane.cc:641 ../pan/gui/task-pane.cc:642 msgid "Move Down" msgstr "Descendre" #: ../pan/gui/post-ui.cc:475 ../pan/gui/post-ui.cc:476 msgid "Move to Top" msgstr "Tout en haut" #: ../pan/gui/post-ui.cc:480 ../pan/gui/post-ui.cc:481 msgid "Move to Bottom" msgstr "Tout en bas" #: ../pan/gui/post-ui.cc:488 msgid "_Wrap Text" msgstr "_Formater le texte" #: ../pan/gui/post-ui.cc:488 msgid "Wrap Text" msgstr "Formater le texte" #: ../pan/gui/post-ui.cc:489 msgid "Always Run Editor" msgstr "Toujours lancer l'éditeur" #: ../pan/gui/post-ui.cc:490 msgid "Remember Character Encoding for This Group" msgstr "Mémoriser le codage de caractères pour ce groupe" #: ../pan/gui/post-ui.cc:491 msgid "Thread Attached Replies" msgstr "Réponse attachée au fil de discussion" #: ../pan/gui/post-ui.cc:492 msgid "PGP-Encrypt the Article" msgstr "Chiffrer l'article avec GPG" #: ../pan/gui/post-ui.cc:493 msgid "PGP-Sign the Article" msgstr "Signer l'article avec GPG" #: ../pan/gui/post-ui.cc:494 msgid "Check _Spelling" msgstr "Vérifier l'_orthographe" #: ../pan/gui/post-ui.cc:520 msgid "New Article's Encoding:" msgstr "Codage des nouveaux articles :" #: ../pan/gui/post-ui.cc:530 msgid "Content Transfer Encoding" msgstr "Codage du transfert de contenu" #: ../pan/gui/post-ui.cc:531 msgid "New Article's Content Transfer Encoding:" msgstr "Codage du transfert du contenu des nouveaux articles :" #: ../pan/gui/post-ui.cc:711 msgid "Your changes will be lost!" msgstr "Vos modifications seront perdues !" #: ../pan/gui/post-ui.cc:712 msgid "Close this window and lose your changes?" msgstr "Voulez-vous fermer cette fenêtre et perdre vos modifications ?" #: ../pan/gui/post-ui.cc:757 ../pan/gui/post-ui.cc:796 msgid "There were problems with this post." msgstr "Il y a des problèmes avec cet article." #: ../pan/gui/post-ui.cc:759 ../pan/gui/post-ui.cc:798 #: ../pan/gui/post-ui.cc:863 msgid "Go Back" msgstr "Revenir" #: ../pan/gui/post-ui.cc:761 msgid "Continue Anyway" msgstr "Continuer quand même" #. Prompt the user #: ../pan/gui/post-ui.cc:790 #, c-format msgid "" "Message uses characters not specified in charset '%s' - possibly use '%s' " msgstr "" "Le message utilise des caractères non spécifiés dans le jeu de caractères " "« %s », essayez peut-être « %s » à la place." #: ../pan/gui/post-ui.cc:813 msgid "Go _Online" msgstr "Se _connecter" #: ../pan/gui/post-ui.cc:862 msgid "The file queue is empty, so no files can be saved." msgstr "" "La file d'attente des fichiers est vide, donc aucun fichier à enregistrer." #: ../pan/gui/post-ui.cc:1018 msgid "" "No posting server is set for this posting profile.\n" "Please edit the profile via Edit|Manage Posting Profiles." msgstr "" "Aucun serveur de postage n'est défini pour ce profil de postage.\n" "Veuillez modifier le profil dans Édition|Modifier les profils de postage." #: ../pan/gui/post-ui.cc:1023 msgid "" "The selected posting server is currently disabled. Please choose an " "appropriate alternative." msgstr "" "Le serveur de postage sélectionné est actuellement inactif. Veuillez " "sélectionner une alternative appropriée." #: ../pan/gui/post-ui.cc:1074 msgid "Pan is Offline." msgstr "Pan est hors ligne." #: ../pan/gui/post-ui.cc:1075 msgid "Go online to post the article?" msgstr "Se connecter pour poster cet article ?" #: ../pan/gui/post-ui.cc:1122 #, c-format msgid "" "Error signing/encrypting your message. Perhaps you misspelled your email " "address (%s)?" msgstr "" "Erreur lors de la signature/chiffrement de votre message. Vous avez peut-" "être mal orthographié votre adresse électronique (%s) ?" #: ../pan/gui/post-ui.cc:1286 msgid "Error opening temporary file" msgstr "Erreur lors de l'ouverture du fichier temporaire" #: ../pan/gui/post-ui.cc:1298 #, c-format msgid "Error writing article to temporary file: %s" msgstr "Erreur lors de l'écriture de l'article dans le fichier temporaire : %s" #: ../pan/gui/post-ui.cc:1317 #, c-format msgid "Error parsing \"external editor\" command line: %s (Command was: %s)" msgstr "" "Erreur lors de l'analyse de la ligne de commande « éditeur externe » : %s " "(la commande était : %s)" #: ../pan/gui/post-ui.cc:1358 #, c-format msgid "Error starting external editor: %s" msgstr "Erreur lors du démarrage de l'éditeur externe : %s" #: ../pan/gui/post-ui.cc:1414 msgid "Open Draft Article" msgstr "Ouvrir un brouillon d'article" #: ../pan/gui/post-ui.cc:1625 msgid "Save Draft Article" msgstr "Enregistrer un brouillon d'article" #: ../pan/gui/post-ui.cc:1822 #, c-format msgid "Couldn't parse signature command \"%s\": %s" msgstr "Impossible d'analyser la commande de signature « %s » : %s" #: ../pan/gui/post-ui.cc:1858 msgid "Couldn't convert signature to UTF-8." msgstr "Impossible de convertir le fichier de signature en UTF-8." #: ../pan/gui/post-ui.cc:2362 msgid "F_rom" msgstr "_De" #: ../pan/gui/post-ui.cc:2379 msgid "_Subject" msgstr "_Sujet" #: ../pan/gui/post-ui.cc:2392 msgid "_Newsgroups" msgstr "_Groupes de discussion" #: ../pan/gui/post-ui.cc:2406 msgid "Mail _To" msgstr "É_crire à" #: ../pan/gui/post-ui.cc:2508 msgid "Delete from Queue" msgstr "Enlever de la file d'attente" #: ../pan/gui/post-ui.cc:2521 msgid "No." msgstr "Nb." #: ../pan/gui/post-ui.cc:2525 ../pan/gui/post-ui.cc:2617 #: ../pan/gui/post-ui.cc:2658 msgid "Filename" msgstr "Nom du fichier" #: ../pan/gui/post-ui.cc:2527 msgid "Size (KB)" msgstr "Taille (Kb)" #: ../pan/gui/post-ui.cc:2625 msgid "The current filename" msgstr "Le nom actuel du fichier" #: ../pan/gui/post-ui.cc:2629 msgid "Subject Line" msgstr "Sujet" #: ../pan/gui/post-ui.cc:2637 msgid "The current subject line" msgstr "Le sujet actuel" #: ../pan/gui/post-ui.cc:2651 msgid "No. " msgstr "Nb. " #: ../pan/gui/post-ui.cc:2655 msgid "Enable/Disable" msgstr "Activer/Désactiver" #: ../pan/gui/post-ui.cc:2689 msgid "Follo_wup-To" msgstr "Faire sui_vre à" #. i18n: "poster" is a key used by many newsreaders. probably safest to keep this key in english. #: ../pan/gui/post-ui.cc:2698 msgid "" "The newsgroups where replies to your message should go. This is only needed " "if it differs from the \"Newsgroups\" header.\n" "\n" "To direct all replies to your email address, use \"Followup-To: poster\"" msgstr "" "Les groupes de discussion auxquels doivent parvenir les réponses à votre " "message. Uniquement nécessaire s'il est différent de l'en-tête « Groupe de " "discussion ».\n" "\n" "Pour rediriger toutes les réponses vers votre adresse électronique, utilisez " "« Faire suivre à : poster »." #: ../pan/gui/post-ui.cc:2704 msgid "_Reply-To" msgstr "_Répondre à" #: ../pan/gui/post-ui.cc:2712 msgid "" "The email account where mail replies to your posted message should go. This " "is only needed if it differs from the \"From\" header." msgstr "" "Le compte de messagerie auquel doivent parvenir les réponses par courriel à " "votre message. Uniquement nécessaire s'il est différent de l'en-tête « De »." #: ../pan/gui/post-ui.cc:2718 msgid "_Custom Headers" msgstr "_En-têtes personnalisés" #: ../pan/gui/post-ui.cc:2742 msgid "Add \"_User-Agent\" header" msgstr "Ajouter l'en-tête « _User-Agent »" #: ../pan/gui/post-ui.cc:2749 msgid "Add \"Message-_ID\" header" msgstr "Ajouter l'en-tête « Message-_ID »" #: ../pan/gui/post-ui.cc:2878 msgid "Select Parts" msgstr "Sélectionner les parties" #: ../pan/gui/post-ui.cc:2889 msgid "_Parts" msgstr "_Parties" #: ../pan/gui/post-ui.cc:3044 msgid "Post Article" msgstr "Poster l'article" #: ../pan/gui/post-ui.cc:3065 msgid "_Message" msgstr "_Message" #: ../pan/gui/post-ui.cc:3066 msgid "More _Headers" msgstr "_En-têtes supplémentaires" #: ../pan/gui/post-ui.cc:3067 msgid "File _Queue" msgstr "File d'_attente" #: ../pan/gui/post-ui.cc:3099 ../pan/gui/profiles-dialog.cc:478 #, no-c-format msgid "On %d, %n wrote:" msgstr "Le %d, %n a écrit :" #: ../pan/gui/post-ui.cc:3128 msgid "Add files to queue" msgstr "Ajouter des fichiers à la file d'attente" #: ../pan/gui/post-ui.cc:3204 msgid "Save Upload Queue as NZB File" msgstr "Enregistrer la file d'attente d'envoi comme un fichier NZB" #: ../pan/gui/prefs.cc:343 #, c-format msgid "Couldn't parse %s color \"%s\"" msgstr "Impossible d'analyser la couleur %s « %s »" #: ../pan/gui/prefs-ui.cc:123 msgid "Grab Key" msgstr "Touche de raccourci" #: ../pan/gui/prefs-ui.cc:129 #, c-format msgid "" "Press the combination of the keys\n" "you want to use for \"%s\"." msgstr "" "Pressez la combinaison de touches\n" "que vous voulez utiliser pour « %s »." #: ../pan/gui/prefs-ui.cc:169 msgid "Edit Shortcut" msgstr "Modifier le raccourci" #: ../pan/gui/prefs-ui.cc:231 msgid "Error: Shortcut key is invalid!" msgstr "Erreur : le raccourci clavier n'est pas valide !" #: ../pan/gui/prefs-ui.cc:247 msgid "Error: Shortcut key already exists!" msgstr "Erreur : le raccourci clavier existe déjà !" #: ../pan/gui/prefs-ui.cc:545 msgid "Show only icons" msgstr "Afficher seulement les icônes" #: ../pan/gui/prefs-ui.cc:546 msgid "Show only text" msgstr "Afficher seulement le texte" #: ../pan/gui/prefs-ui.cc:547 msgid "Show icons and text" msgstr "Afficher les icônes et le texte" #: ../pan/gui/prefs-ui.cc:586 msgid "Use GNOME Preferences" msgstr "Utiliser les préférences de GNOME" #: ../pan/gui/prefs-ui.cc:587 msgid "Use KDE Preferences" msgstr "Utiliser les préférences de KDE" #: ../pan/gui/prefs-ui.cc:588 msgid "Use OS X Preferences" msgstr "Utiliser les préférences de OS X" #: ../pan/gui/prefs-ui.cc:589 msgid "Use Windows Preferences" msgstr "Utiliser les préférences de Windows" #: ../pan/gui/prefs-ui.cc:590 msgid "Custom Command:" msgstr "Commande personnalisée :" #: ../pan/gui/prefs-ui.cc:642 msgid "Disabled" msgstr "Désactivé" #: ../pan/gui/prefs-ui.cc:643 msgid "Only new (score == 0)" msgstr "Seulement les nouveaux (note == 0)" #: ../pan/gui/prefs-ui.cc:644 msgid "9999 or more" msgstr "9999 ou plus" #: ../pan/gui/prefs-ui.cc:645 msgid "5000 to 9998" msgstr "5000 à 9998" #: ../pan/gui/prefs-ui.cc:646 msgid "1 to 4999" msgstr "1 à 4999" #: ../pan/gui/prefs-ui.cc:647 msgid "-9998 to -1" msgstr "-9998 à -1" #: ../pan/gui/prefs-ui.cc:648 msgid "-9999 or less" msgstr "-9999 ou moins" #: ../pan/gui/prefs-ui.cc:712 #, c-format msgid "Select default global character set. Current setting: %s." msgstr "" "Sélectionner le codage de caractères global par défaut. Réglage " "actuel : %s ." #: ../pan/gui/prefs-ui.cc:748 msgid "Global Character Set Settings" msgstr "Paramètres du codage de caractères global" #: ../pan/gui/prefs-ui.cc:842 ../pan/gui/task-pane.cc:770 msgid "State" msgstr "État" #: ../pan/gui/prefs-ui.cc:876 msgid "Enabled" msgstr "Activé" #: ../pan/gui/prefs-ui.cc:880 msgid "Column Name" msgstr "Nom de la colonne" #: ../pan/gui/prefs-ui.cc:918 msgid "Pan: Preferences" msgstr "Pan : préférences" #: ../pan/gui/prefs-ui.cc:933 msgid "Mouse" msgstr "Souris" #: ../pan/gui/prefs-ui.cc:935 msgid "Single-click activates, rather than selects, _groups" msgstr "Un simple clic active les _groupes au lieu de les sélectionner" #: ../pan/gui/prefs-ui.cc:937 msgid "Single-click activates, rather than selects, _articles" msgstr "Un simple clic active les _articles au lieu de les sélectionner" #: ../pan/gui/prefs-ui.cc:940 msgid "Groups" msgstr "Groupes" #: ../pan/gui/prefs-ui.cc:942 msgid "Get new headers in subscribed groups on _startup" msgstr "Télécharger au _démarrage les nouveaux en-têtes des groupes abonnés" #: ../pan/gui/prefs-ui.cc:944 msgid "Get new headers when _entering group" msgstr "Télécharger les nouveaux _en-têtes en entrant dans un groupe" #: ../pan/gui/prefs-ui.cc:946 msgid "Mark entire group _read when leaving group" msgstr "_Marquer tout le groupe comme lu en quittant le groupe" #: ../pan/gui/prefs-ui.cc:948 msgid "Mark entire group read before getting _new headers" msgstr "" "Marquer tout le groupe comme lu avant de télécharger les _nouveaux en-têtes" #: ../pan/gui/prefs-ui.cc:950 msgid "E_xpand all threads when entering group" msgstr "_Développer tous les fils de discussion en entrant dans un groupe" #: ../pan/gui/prefs-ui.cc:955 msgid "Articles" msgstr "Articles" #: ../pan/gui/prefs-ui.cc:957 msgid "Space selects next article rather than next unread" msgstr "" "La barre espace sélectionne l'article suivant au lieu du prochain non lu" #: ../pan/gui/prefs-ui.cc:959 msgid "Expand threads upon selection" msgstr "Déplier les fils sélectionnés" #: ../pan/gui/prefs-ui.cc:961 msgid "Always ask before deleting an article" msgstr "Toujours demander avant de supprimer un article" #: ../pan/gui/prefs-ui.cc:963 msgid "Smooth scrolling" msgstr "Défilement fluide" #: ../pan/gui/prefs-ui.cc:968 msgid "Article Cache" msgstr "Cache des articles" #: ../pan/gui/prefs-ui.cc:969 msgid "Clear article cache on shutdown" msgstr "Nettoyer le cache des articles en quittant" #: ../pan/gui/prefs-ui.cc:972 msgid "Size of article cache (in MiB):" msgstr "Taille du cache des articles (en Mio) :" #: ../pan/gui/prefs-ui.cc:977 msgid "File extension for cached articles: " msgstr "Extension de fichier pour les articles en cache : " #: ../pan/gui/prefs-ui.cc:982 msgid "Tabs" msgstr "Onglets" #: ../pan/gui/prefs-ui.cc:987 msgid "_Behavior" msgstr "_Comportement" #: ../pan/gui/prefs-ui.cc:987 msgid "Behavior" msgstr "Comportement" #: ../pan/gui/prefs-ui.cc:993 msgid "Language Settings" msgstr "Réglages linguistique" #. systray and notify popup #: ../pan/gui/prefs-ui.cc:1002 msgid "System Tray Behavior" msgstr "Comportement de la barre de notification" #: ../pan/gui/prefs-ui.cc:1004 msgid "Hide to system tray" msgstr "Masquer dans la barre de notification" #: ../pan/gui/prefs-ui.cc:1006 msgid "Start Pan minimized" msgstr "Démarrer Pan minimisé" #: ../pan/gui/prefs-ui.cc:1009 msgid "Show notifications" msgstr "Afficher les informations" #. allow multiple instances (seperate, not communicating with dbus) #: ../pan/gui/prefs-ui.cc:1014 msgid "Startup Behavior" msgstr "Comportement au démarrage" #: ../pan/gui/prefs-ui.cc:1016 msgid "Allow multiple instances of Pan" msgstr "Permettre plusieurs instances de Pan" #: ../pan/gui/prefs-ui.cc:1021 msgid "Autosave Article Draft" msgstr "Enregistrement automatiquement des brouillons" #: ../pan/gui/prefs-ui.cc:1023 msgid "Minutes to autosave the current Article Draft: " msgstr "" "Minutes avant l'enregistrement automatique du brouillon de l'article " "actuel : " #: ../pan/gui/prefs-ui.cc:1028 msgid "Autosave Articles" msgstr "Enregistrement automatiquement des articles" #: ../pan/gui/prefs-ui.cc:1030 msgid "Minutes to autosave newsrc files: " msgstr "Minutes avant l'enregistrement automatique des fichiers newsrc : " #: ../pan/gui/prefs-ui.cc:1037 msgid "GNOME Keyring" msgstr "Trousseau de clés de GNOME" #: ../pan/gui/prefs-ui.cc:1038 msgid "Store passwords in GNOME Keyring" msgstr "Enregistrer les mots de passe dans le trousseau de clés de GNOME" #: ../pan/gui/prefs-ui.cc:1042 msgid "_Miscellaneous" msgstr "_Divers" #: ../pan/gui/prefs-ui.cc:1042 msgid "Miscellaneous" msgstr "Divers" #: ../pan/gui/prefs-ui.cc:1047 msgid "Pane Layout" msgstr "Agencement des panneaux" #: ../pan/gui/prefs-ui.cc:1066 msgid "1=Groups, 2=Headers, 3=Body" msgstr "1=groupes, 2=en-têtes, 3=corps" #: ../pan/gui/prefs-ui.cc:1068 msgid "1=Groups, 2=Body, 3=Headers" msgstr "1=groupes, 2=corps, 3=en-têtes" #: ../pan/gui/prefs-ui.cc:1070 msgid "1=Headers, 2=Groups, 3=Body" msgstr "1=en-têtes, 2=groupes, 3=corps" #: ../pan/gui/prefs-ui.cc:1072 msgid "1=Headers, 2=Body, 3=Groups" msgstr "1=en-têtes, 2=corps, 3=groupes" #: ../pan/gui/prefs-ui.cc:1074 msgid "1=Body, 2=Groups, 3=Headers" msgstr "1=corps, 2=groupes, 3=en-têtes" #: ../pan/gui/prefs-ui.cc:1076 msgid "1=Body, 2=Headers, 3=Groups" msgstr "1=corps, 2=en-têtes, 3=groupes" #: ../pan/gui/prefs-ui.cc:1080 msgid "Layout" msgstr "Agencement" #: ../pan/gui/prefs-ui.cc:1085 msgid "Header Pane Columns" msgstr "Colonnes du panneau des en-têtes" #: ../pan/gui/prefs-ui.cc:1089 msgid "_Headers" msgstr "_En-têtes" #: ../pan/gui/prefs-ui.cc:1089 msgid "Headers" msgstr "En-têtes" #: ../pan/gui/prefs-ui.cc:1095 msgid "" "This menu lets you configure Pan to take certain actions on your behalf " "automatically, based on an article's score." msgstr "" "Ce menu vous permet de configurer Pan pour effectuer des actions sur votre " "demande automatiquement, basées sur la note d'un article." #: ../pan/gui/prefs-ui.cc:1098 msgid "_Delete articles scoring at: " msgstr "_Supprimer les articles dont la note est : " #: ../pan/gui/prefs-ui.cc:1100 msgid "Mark articles as _read scoring at: " msgstr "Marquer comme _lus les articles dont la note est : " #: ../pan/gui/prefs-ui.cc:1102 msgid "_Cache articles scoring at: " msgstr "Mettre en _cache les articles dont la note est :" #: ../pan/gui/prefs-ui.cc:1104 msgid "Download _attachments of articles scoring at: " msgstr "Télécharger les _pièces jointes des articles dont la note est :" #: ../pan/gui/prefs-ui.cc:1107 msgid "Actions" msgstr "Actions" #: ../pan/gui/prefs-ui.cc:1112 ../pan/gui/prefs-ui.cc:1133 msgid "Fonts" msgstr "Polices" #: ../pan/gui/prefs-ui.cc:1114 msgid "Use custom font in Group Pane:" msgstr "Utiliser une police personnalisée dans le panneau des groupes :" #: ../pan/gui/prefs-ui.cc:1119 msgid "Use custom font in Header Pane:" msgstr "Utiliser une police personnalisée dans le panneau des en-têtes :" #: ../pan/gui/prefs-ui.cc:1124 msgid "Use custom font in Body Pane:" msgstr "Utiliser une police personnalisée dans le panneau du corps :" #: ../pan/gui/prefs-ui.cc:1129 msgid "Monospace font:" msgstr "Police à largeur fixe :" #: ../pan/gui/prefs-ui.cc:1133 msgid "_Fonts" msgstr "_Polices" #: ../pan/gui/prefs-ui.cc:1149 msgid "Header Pane" msgstr "Panneau des en-têtes" #: ../pan/gui/prefs-ui.cc:1152 ../pan/gui/prefs-ui.cc:1158 #: ../pan/gui/prefs-ui.cc:1164 ../pan/gui/prefs-ui.cc:1170 #: ../pan/gui/prefs-ui.cc:1176 ../pan/gui/prefs-ui.cc:1182 msgid "Text:" msgstr "Texte :" #: ../pan/gui/prefs-ui.cc:1154 ../pan/gui/prefs-ui.cc:1160 #: ../pan/gui/prefs-ui.cc:1166 ../pan/gui/prefs-ui.cc:1172 #: ../pan/gui/prefs-ui.cc:1178 ../pan/gui/prefs-ui.cc:1184 msgid "Background:" msgstr "Arrière-plan :" #: ../pan/gui/prefs-ui.cc:1156 msgid "Scores of 9999 or more:" msgstr "Notes de 9999 ou plus :" #: ../pan/gui/prefs-ui.cc:1162 msgid "Scores from 5000 to 9998:" msgstr "Notes de 5000 à 9998 :" #: ../pan/gui/prefs-ui.cc:1168 msgid "Scores from 1 to 4999:" msgstr "Notes de 1 à 4999 :" #: ../pan/gui/prefs-ui.cc:1174 msgid "Scores from -9998 to -1:" msgstr "Notes de -9998 à -1 :" #: ../pan/gui/prefs-ui.cc:1180 msgid "Scores of -9999 or less:" msgstr "Notes de -9999 ou moins :" #: ../pan/gui/prefs-ui.cc:1186 msgid "Collapsed thread with unread articles:" msgstr "Fil réduit avec articles non lus :" #: ../pan/gui/prefs-ui.cc:1188 ../pan/gui/prefs-ui.cc:1200 msgid "Body Pane" msgstr "Panneau du corps" #: ../pan/gui/prefs-ui.cc:1194 msgid "Quoted text:" msgstr "Texte cité :" #: ../pan/gui/prefs-ui.cc:1195 msgid "URL:" msgstr "URL :" #: ../pan/gui/prefs-ui.cc:1196 msgid "Signature:" msgstr "Signature :" #: ../pan/gui/prefs-ui.cc:1202 msgid "Group Color Foreground:" msgstr "Couleur de premier plan du groupe :" #: ../pan/gui/prefs-ui.cc:1205 msgid "_Colors" msgstr "_Couleurs" #: ../pan/gui/prefs-ui.cc:1205 msgid "Colors" msgstr "Couleurs" #: ../pan/gui/prefs-ui.cc:1210 msgid "Preferred Applications" msgstr "Applications préférées" #: ../pan/gui/prefs-ui.cc:1214 msgid "_Web browser:" msgstr "Navigateur _Web :" #: ../pan/gui/prefs-ui.cc:1217 msgid "_Mail reader:" msgstr "Lecteur de _messagerie :" #: ../pan/gui/prefs-ui.cc:1219 msgid "_Text editor:" msgstr "Éditeur de _texte :" #: ../pan/gui/prefs-ui.cc:1221 msgid "_Applications" msgstr "_Applications" #: ../pan/gui/prefs-ui.cc:1221 msgid "Applications" msgstr "Applications" #: ../pan/gui/prefs-ui.cc:1226 ../pan/gui/task-pane.cc:512 msgid "Encoding" msgstr "Codage" #: ../pan/gui/prefs-ui.cc:1230 msgid "Default bytes per file (for encoder): " msgstr "Octets par fichier par défaut (pour le codeur) : " #: ../pan/gui/prefs-ui.cc:1235 msgid "_Upload" msgstr "_Envoyer" #: ../pan/gui/prefs-ui.cc:1235 msgid "Upload" msgstr "Envoyer" #: ../pan/gui/prefs-ui.cc:1253 msgid "_Shortcuts" msgstr "_Raccourcis" #: ../pan/gui/prefs-ui.cc:1253 msgid "Shortcuts" msgstr "Raccourcis" #: ../pan/gui/profiles-dialog.cc:83 msgid "Please choose your email address according to your PGP key's user id." msgstr "" "Choisissez votre adresse électronique en fonction de votre identifiant " "utilisateur de clé PGP." #: ../pan/gui/profiles-dialog.cc:131 msgid "Posting Profile" msgstr "Profil de postage" #: ../pan/gui/profiles-dialog.cc:143 msgid "Profile Information" msgstr "Informations du profil" #: ../pan/gui/profiles-dialog.cc:147 msgid "_Profile Name:" msgstr "Nom du _profil :" #: ../pan/gui/profiles-dialog.cc:150 msgid "Required Information" msgstr "Informations requises" #: ../pan/gui/profiles-dialog.cc:154 msgid "_Full Name:" msgstr "_Nom complet :" #: ../pan/gui/profiles-dialog.cc:158 msgid "" "Your email address.\n" "Note that this has to match your PGP signature's address\n" "if you want your messages to be PGP-signed or encrypted correctly." msgstr "" "Votre adresse électronique.\n" "Notez qu'elle doit correspondre à l'adresse de votre signature PGP\n" "si vous voulez que vos messages soient chiffrés et signé en PGP correctement." #: ../pan/gui/profiles-dialog.cc:162 msgid "_Email Address:" msgstr "_Adresse électronique :" #: ../pan/gui/profiles-dialog.cc:164 msgid "_Post Articles via:" msgstr "_Poster les a_rticles via :" #: ../pan/gui/profiles-dialog.cc:167 msgid "Signature" msgstr "Signature" #: ../pan/gui/profiles-dialog.cc:170 msgid "_Use a Signature" msgstr "_Utiliser une signature" #: ../pan/gui/profiles-dialog.cc:174 msgid "Signature File" msgstr "Fichier de signature" #: ../pan/gui/profiles-dialog.cc:184 msgid "Text File" msgstr "Fichier texte" #: ../pan/gui/profiles-dialog.cc:186 msgid "Text" msgstr "Texte" #: ../pan/gui/profiles-dialog.cc:188 msgid "Command" msgstr "Commande" #: ../pan/gui/profiles-dialog.cc:191 msgid "PGP Signature" msgstr "Signature PGP" #: ../pan/gui/profiles-dialog.cc:196 msgid "Signature Type: " msgstr "Type de signature :" #: ../pan/gui/profiles-dialog.cc:223 msgid "X-Face (Avatar)" msgstr "X-Face (avatar)" #: ../pan/gui/profiles-dialog.cc:226 msgid "" "You can add an avatar icon to your articles with a unique X-Face code.\n" "Add the code without the trailing \"X-Face:\" \n" " if it was generated by a helper program (for example http://www.dairiki.org/" "xface/xface.php)." msgstr "" "Vous pouvez ajouter une icône d'avatar à vos articles avec un code X-Face " "unique. \n" "Ajoutez le code sans le terme \"X-Face:\" qui le précède\n" "s'il a été créé par un programme dédié\n" "(par exemple : http://www.dairiki.org/xface/xface.php)." #: ../pan/gui/profiles-dialog.cc:229 msgid "_X-Face:" msgstr "_X-Face :" #: ../pan/gui/profiles-dialog.cc:231 msgid "Optional Information" msgstr "Informations facultatives" #: ../pan/gui/profiles-dialog.cc:236 msgid "" "When posting to Usenet, your article's Message-ID contains a domain name.\n" "You can set a custom domain name here, or leave it blank to let Pan use the " "domain name from your email address." msgstr "" "Lors du postage sur Usenet, l'ID de message de vos articles contient un nom " "de domaine.\n" " Vous pouvez définir un nom de domaine personnalisé ici, ou le laisser vide " "pour que Pan utilise le nom de domaine de votre adresse électronique." #: ../pan/gui/profiles-dialog.cc:239 msgid "Message-ID _Domain Name:" msgstr "Nom de _domaine de l'ID de message :" #: ../pan/gui/profiles-dialog.cc:243 #, c-format msgid "" "%i for Message-ID\n" "%a for Author and Address\n" "%n for Author name\n" "%d for Date" msgstr "" "%i pour l'ID du message\n" "%a pour l'auteur et l'adresse\n" "%n pour le nom de l'auteur\n" "%d pour la date" #: ../pan/gui/profiles-dialog.cc:244 msgid "_Attribution:" msgstr "_Attribution :" #: ../pan/gui/profiles-dialog.cc:268 msgid "" "Extra headers to be included in your articles, such as\n" "Reply-To: \"Your Name\"\n" "Organization: Your Organization\n" msgstr "" "Des en-têtes supplémentaires à inclure dans vos articles, comme\n" "Reply-To: « votre nom » \n" "Organization: votre organisation\n" #: ../pan/gui/profiles-dialog.cc:278 msgid "E_xtra Headers:" msgstr "En-têtes _supplémentaires :" #: ../pan/gui/profiles-dialog.cc:323 msgid "Invalid email address." msgstr "Adresse de courriel non valide." #: ../pan/gui/profiles-dialog.cc:324 msgid "Please use an address of the form joe@somewhere.org" msgstr "Veuillez utiliser une adresse de la forme jean@quelquepart.org" #: ../pan/gui/profiles-dialog.cc:479 msgid "New Profile" msgstr "Nouveau profil" #: ../pan/gui/profiles-dialog.cc:525 msgid "Posting Profiles" msgstr "Profils de postage" #: ../pan/gui/profiles-dialog.cc:541 msgid "Profiles" msgstr "Profils" #: ../pan/gui/save-attach-ui.cc:45 #, c-format msgid "" "%g - group as one directory (alt.binaries.pictures.trains)\n" "%G - group as nested directory (/alt/binaries/pictures/trains)\n" "%s - Subject line excerpt\n" "%S - Subject line\n" "%n - Poster display name\n" "%e - Poster email address\n" "%d - Article timestamp\n" "\"/home/user/News/Pan/%g\" becomes\n" "\"/home/user/News/Pan/alt.binaries.pictures.trains\", and\n" "\"/home/user/News/Pan/%G\" becomes\n" "\"/home/user/News/Pan/alt/binaries/pictures/trains\"," msgstr "" "%g - regroupe comme un seul répertoire (alt.binaries.pictures.trains)\n" "%G - regroupe comme des répertoires imbriqués (/alt/binaries/pictures/" "trains)\n" "%s - Extrait de la ligne de sujet\n" "%S - Ligne de sujet\n" "%n - Nom d'affichage de l'expéditeur\n" "%e - Adresse électronique de l'expéditeur\n" "%d - Horodatage de l'article\n" "« /home/utilisateur/News/Pan/%g » devient\n" "« /home/utilisateur/News/Pan/alt.binaries.pictures.trains », et\n" "« /home/utilisateur/News/Pan/%G » devient\n" "« /home/utilisateur/News/Pan/alt/binaries/pictures/trains »," #: ../pan/gui/save-attach-ui.cc:193 ../pan/gui/save-ui.cc:213 msgid "Add to the queue sorted by date posted" msgstr "Ajouter à la file d'attente triés par date de postage" #: ../pan/gui/save-attach-ui.cc:194 ../pan/gui/save-ui.cc:214 msgid "Add to the front of the queue" msgstr "Ajouter au début de la file d'attente" #: ../pan/gui/save-attach-ui.cc:195 ../pan/gui/save-ui.cc:215 msgid "Add to the back of the queue" msgstr "Ajouter à la fin de la file d'attente" #: ../pan/gui/save-attach-ui.cc:227 msgid "Pan: Save Attachments" msgstr "Pan : enregistrer les pièces jointes" #: ../pan/gui/save-attach-ui.cc:252 ../pan/gui/save-attach-ui.cc:270 #: ../pan/gui/save-ui.cc:267 ../pan/gui/save-ui.cc:285 msgid "_Location:" msgstr "_Emplacement :" #: ../pan/gui/save-attach-ui.cc:256 ../pan/gui/save-ui.cc:271 msgid "Save Articles" msgstr "Enregistrer les articles" #: ../pan/gui/save-attach-ui.cc:273 ../pan/gui/save-ui.cc:288 #, c-format msgid "_Group's path: %s" msgstr "Chemin du _groupe : %s" #: ../pan/gui/save-attach-ui.cc:284 ../pan/gui/save-ui.cc:303 msgid "_Priority:" msgstr "_Priorité :" #: ../pan/gui/save-ui.cc:45 #, c-format msgid "" "%g - group as one directory (alt.binaries.pictures.trains)\n" "%G - group as nested directory (/alt/binaries/pictures/trains)\n" "%s - subject line excerpt\n" "%S - subject line\n" "%n - Poster display name\n" "%e - Poster email address\n" "%d - Article timestamp\n" " \n" "\"/home/user/News/Pan/%g\" becomes\n" "\"/home/user/News/Pan/alt.binaries.pictures.trains\", and\n" "\"/home/user/News/Pan/%G\" becomes\n" "\"/home/user/News/Pan/alt/binaries/pictures/trains\"," msgstr "" "%g - regroupe comme un seul répertoire (alt.binaries.pictures.trains)\n" "%G - regroupe comme des répertoires imbriqués (/alt/binaries/pictures/" "trains)\n" "%s - extrait de la ligne de sujet\n" "%S - ligne de sujet\n" "%n - Nom d'affichage de l'expéditeur\n" "%e - Adresse électronique de l'expéditeur\n" "%d - Horodatage de l'article\n" " \n" "« /home/utilisateur/News/Pan/%g » devient\n" "« /home/utilisateur/News/Pan/alt.binaries.pictures.trains », et\n" "« /home/utilisateur/News/Pan/%G » devient\n" "« /home/utilisateur/News/Pan/alt/binaries/pictures/trains »," #: ../pan/gui/save-ui.cc:204 msgid "Save attachments" msgstr "Enregistrer les pièces jointes" #: ../pan/gui/save-ui.cc:205 msgid "Save text" msgstr "Enregistrer le texte" #: ../pan/gui/save-ui.cc:206 msgid "Save attachments and text" msgstr "Enregistrer les pièces jointes et le texte" #: ../pan/gui/save-ui.cc:242 msgid "Pan: Save Articles" msgstr "Pan : enregistrer les articles" #: ../pan/gui/save-ui.cc:299 msgid "_Action:" msgstr "_Action :" #: ../pan/gui/score-add-ui.cc:89 msgid "is more than" msgstr "est supérieur à" #: ../pan/gui/score-add-ui.cc:90 msgid "is at most" msgstr "est au plus" #: ../pan/gui/score-add-ui.cc:112 msgid "increase the article's score by" msgstr "augmenter la note de cet article de" #: ../pan/gui/score-add-ui.cc:113 msgid "decrease the article's score by" msgstr "diminuer la note de cet article de" #: ../pan/gui/score-add-ui.cc:114 msgid "set the article's score to" msgstr "définir la note de l'article à" #: ../pan/gui/score-add-ui.cc:115 msgid "watch the article (set its score to 9999)" msgstr "surveiller l'article (définit la note à 9999)" #: ../pan/gui/score-add-ui.cc:116 msgid "ignore the article (set its score to -9999)" msgstr "ignorer l'article (définit la note à -9999)" #: ../pan/gui/score-add-ui.cc:141 msgid "References" msgstr "Références" #: ../pan/gui/score-add-ui.cc:142 msgid "Line Count" msgstr "Nombre de lignes" #: ../pan/gui/score-add-ui.cc:143 msgid "Byte Count" msgstr "Nombre d'octets" #: ../pan/gui/score-add-ui.cc:144 msgid "Crosspost Group Count" msgstr "Nombre de postages croisés" #: ../pan/gui/score-add-ui.cc:145 msgid "Age (in days)" msgstr "Âge (en jours)" #: ../pan/gui/score-add-ui.cc:167 msgid "for the next month" msgstr "pour le mois suivant" #: ../pan/gui/score-add-ui.cc:168 msgid "for the next six months" msgstr "pour les six prochains mois" #: ../pan/gui/score-add-ui.cc:169 msgid "forever" msgstr "pour toujours" #: ../pan/gui/score-add-ui.cc:194 msgid "contains" msgstr "contient" #: ../pan/gui/score-add-ui.cc:195 msgid "doesn't contain" msgstr "ne contient pas" #: ../pan/gui/score-add-ui.cc:196 msgid "is" msgstr "est" #: ../pan/gui/score-add-ui.cc:197 msgid "isn't" msgstr "n'est pas" #: ../pan/gui/score-add-ui.cc:198 msgid "starts with" msgstr "commence par" #: ../pan/gui/score-add-ui.cc:199 msgid "ends with" msgstr "finit par" #: ../pan/gui/score-add-ui.cc:200 msgid "matches regex" msgstr "correspond à l'expression régulière" #: ../pan/gui/score-add-ui.cc:481 msgid "Another rule already sets this article's score." msgstr "Une autre règle donne déjà la note de cet article." #: ../pan/gui/score-add-ui.cc:482 msgid "You may want to go back or delete the old rule." msgstr "Vous pouvez revenir à l'état précédent ou supprimer l'ancienne règle." #: ../pan/gui/score-add-ui.cc:553 msgid "Add and Re_score" msgstr "Ajouter et re_noter" #: ../pan/gui/score-add-ui.cc:604 ../pan/gui/score-add-ui.cc:624 msgid "New Scoring Rule" msgstr "Nouvelle règle de notation" #: ../pan/gui/score-add-ui.cc:635 msgid "Group name" msgstr "Nom du groupe" #: ../pan/gui/score-add-ui.cc:642 msgid "and" msgstr "et" #: ../pan/gui/score-view-ui.cc:56 msgid "Close and Re_score" msgstr "Fermer et re_noter" #: ../pan/gui/score-view-ui.cc:154 #, c-format msgid "File %s, Lines %d - %d" msgstr "Fichier %s, lignes %d - %d" #: ../pan/gui/score-view-ui.cc:182 msgid "Pan: Article's Scores" msgstr "Pan : notes des articles" #: ../pan/gui/score-view-ui.cc:208 msgid "Add" msgstr "Ajouter" #: ../pan/gui/score-view-ui.cc:213 msgid "New Score" msgstr "Nouvelle note" #: ../pan/gui/score-view-ui.cc:218 msgid "Criteria" msgstr "Critère" #: ../pan/gui/score-view-ui.cc:241 msgid "Add a New Scoring Rule" msgstr "Ajouter une nouvelle règle de notation" #: ../pan/gui/score-view-ui.cc:248 msgid "Remove the Selected Scoring Rule" msgstr "Supprimer la règle de notation sélectionnée" #: ../pan/gui/server-ui.cc:227 msgid "Please specify the server's address." msgstr "Veuillez spécifier l'adresse du serveur." #: ../pan/gui/server-ui.cc:273 msgid "Import SSL Certificate (PEM Format) From File" msgstr "Importer le certificat SSL (format PEM) à partir du fichier" #. create the dialog #: ../pan/gui/server-ui.cc:299 ../pan/gui/server-ui.cc:884 msgid "Add a Server" msgstr "Ajouter un serveur" #: ../pan/gui/server-ui.cc:299 ../pan/gui/server-ui.cc:890 msgid "Edit a Server's Settings" msgstr "Modifier les paramètres du serveur" #: ../pan/gui/server-ui.cc:319 msgid "Location" msgstr "Emplacement" #: ../pan/gui/server-ui.cc:323 msgid "The news server's actual address, e.g. \"news.mynewsserver.com\"" msgstr "" "L'adresse actuelle du serveur de nouvelles, par ex. « news.monserveur.fr »" #: ../pan/gui/server-ui.cc:324 msgid "_Address:" msgstr "_Adresse :" #: ../pan/gui/server-ui.cc:328 msgid "The news server's port number. Typically 119." msgstr "Le port du serveur de nouvelles (généralement 119)." #: ../pan/gui/server-ui.cc:329 msgid "Por_t:" msgstr "_Port :" #: ../pan/gui/server-ui.cc:332 msgid "Login (if Required)" msgstr "Identifiant (si requis)" #: ../pan/gui/server-ui.cc:336 msgid "_Username:" msgstr "_Identifiant :" #: ../pan/gui/server-ui.cc:337 msgid "" "The username to give the server when asked. If your server doesn't require " "authentication, you can leave this blank." msgstr "" "Le nom d'utilisateur à fournir au serveur quand il le demande. Si votre " "serveur ne demande pas d'authentification, vous pouvez laisser ce champ vide." #: ../pan/gui/server-ui.cc:341 msgid "_Password:" msgstr "_Mot de passe :" #: ../pan/gui/server-ui.cc:342 msgid "" "The password to give the server when asked. If your server doesn't require " "authentication, you can leave this blank." msgstr "" "Le mot de passe à fournir au serveur quand il le demande. Si votre serveur " "ne demande pas d'authentification, vous pouvez laisser ce champ vide." #: ../pan/gui/server-ui.cc:345 msgid "Settings" msgstr "Paramètres" #: ../pan/gui/server-ui.cc:352 msgid "Connection _Limit:" msgstr "_Limite de connexion :" #: ../pan/gui/server-ui.cc:356 msgid "After Two Weeks" msgstr "Après deux semaines" #: ../pan/gui/server-ui.cc:357 msgid "After One Month" msgstr "Après un mois" #: ../pan/gui/server-ui.cc:358 msgid "After Two Months" msgstr "Après deux mois" #: ../pan/gui/server-ui.cc:359 msgid "After Three Months" msgstr "Après trois mois" #: ../pan/gui/server-ui.cc:360 msgid "After Six Months" msgstr "Après six mois" #: ../pan/gui/server-ui.cc:361 msgid "Never Expire Old Articles" msgstr "Ne jamais expirer les anciens articles" #: ../pan/gui/server-ui.cc:375 msgid "E_xpire Old Articles:" msgstr "E_xpirer les anciens articles :" #: ../pan/gui/server-ui.cc:379 msgid "Primary" msgstr "Principal" #: ../pan/gui/server-ui.cc:380 msgid "Fallback" msgstr "Secondaire" #: ../pan/gui/server-ui.cc:394 msgid "Server Rank:" msgstr "Rang du serveur :" #: ../pan/gui/server-ui.cc:398 msgid "" "Fallback servers are used for articles that can't be found on the " "primaries. One common approach is to use free servers as primaries and " "subscription servers as fallbacks." msgstr "" "Les serveurs secondaires sont utiles pour les articles qui sont introuvables " "sur les serveurs principaux. On utilise fréquemment les serveurs gratuits " "comme serveurs principaux et les serveurs qui nécessitent un abonnement " "comme serveurs secondaires." #: ../pan/gui/server-ui.cc:405 msgid "Security" msgstr "Sécurité" #: ../pan/gui/server-ui.cc:410 msgid "Use Unsecure (Plaintext) Connections" msgstr "Utiliser des connexions non sécurisées (en clair)" #: ../pan/gui/server-ui.cc:411 msgid "Use Secure SSL Connections" msgstr "Utiliser des connexions SSL sécurisées" #: ../pan/gui/server-ui.cc:427 msgid "TLS (SSL) Settings:" msgstr "Paramètres TLS (SSL) :" #: ../pan/gui/server-ui.cc:432 msgid "" "You can enable/disable secure SSL/TLS connections here. If you enable SSL/" "TLS, your data is encrypted and secure. It is encouraged to enable SSL/TLS " "for privacy reasons." msgstr "" "Vous pouvez activer/désactiver les connexions SSL/TLS sécurisées ici. Si " "vous activez SSL/TLS, vos données sont chiffrées et sécurisées. Il est " "recommandé d'utiliser cette option pour des raisons de vie privée." #: ../pan/gui/server-ui.cc:437 msgid "Always trust this server's certificate" msgstr "Toujours faire confiance au certificat de ce serveur" #: ../pan/gui/server-ui.cc:612 #, c-format msgid "Really delete \"%s\"?" msgstr "Vraiment supprimer « %s » ?" #: ../pan/gui/server-ui.cc:701 msgid "No information available." msgstr "Aucune information disponible." #: ../pan/gui/server-ui.cc:711 #, c-format msgid "Server Certificate for '%s'" msgstr "Serveur de certificat pour « %s »" #: ../pan/gui/server-ui.cc:810 #, c-format msgid "Really delete certificate for \"%s\"?" msgstr "Voulez-vous vraiment effacer le certificat pour « %s »?" #. dialog #: ../pan/gui/server-ui.cc:837 ../pan/gui/server-ui.cc:858 #: ../pan/gui/server-ui.cc:956 msgid "Servers" msgstr "Serveurs" #: ../pan/gui/server-ui.cc:897 msgid "Remove a Server" msgstr "Supprimer un serveur" #. dialog #: ../pan/gui/server-ui.cc:930 msgid "SSL Certificates" msgstr "Certificats SSL" #: ../pan/gui/server-ui.cc:951 msgid "Certificates" msgstr "Certificats" #: ../pan/gui/server-ui.cc:982 msgid "Import Certificate" msgstr "Importer un certificat" #: ../pan/gui/server-ui.cc:988 msgid "Inspect Certificate" msgstr "Inspecter un certificat" #: ../pan/gui/server-ui.cc:995 msgid "Remove Certificate" msgstr "Supprimer le certificat" #: ../pan/gui/task-pane.cc:143 #, c-format msgid "" "\n" "Upload\n" "\n" "Subject: \"%s\"\n" "From: %s\n" "Groups: %s\n" "Sourcefile: %s\n" msgstr "" "\n" "Envoi\n" "\n" "Sujet : « %s »\n" "De : %s\n" "Groupes : %s\n" "Fichier source : %s\n" #: ../pan/gui/task-pane.cc:155 #, c-format msgid "" "\n" "Download\n" "\n" "Subject: \"%s\"\n" "From: %s\n" "Date: %s\n" "Groups: %s\n" "Save Path: %s\n" "Paused: %d" msgstr "" "\n" "Téléchargement\n" "\n" "Sujet : « %s »\n" "De : %s\n" "Date : %s\n" "Groupes : %s\n" "Emplacement de sauvegarde : %s\n" "En pause : %d" #: ../pan/gui/task-pane.cc:157 msgid "unknown" msgstr "inconnu" #: ../pan/gui/task-pane.cc:263 msgid "Choose New Destination for Selected Tasks" msgstr "Sélectionner une nouvelle destination pour les tâches sélectionnées" #: ../pan/gui/task-pane.cc:417 #, c-format msgid "Pan: Tasks (%d Queued, %d Running, %d Stopped)" msgstr "Pan : tâches (%d en attente, %d en cours, %d arrêtée(s))" #: ../pan/gui/task-pane.cc:419 #, c-format msgid "Pan: Tasks (%d Queued, %d Running)" msgstr "Pan : tâches (%d en attente, %d en cours)" #: ../pan/gui/task-pane.cc:421 #, c-format msgid "Pan: Tasks" msgstr "Pan : tâches" #: ../pan/gui/task-pane.cc:446 #, c-format msgid "%lu selected, %s" msgstr "%lu sélectionnées, %s" #: ../pan/gui/task-pane.cc:510 msgid "Running" msgstr "Exécution en cours" #: ../pan/gui/task-pane.cc:511 msgid "Decoding" msgstr "Décodage en cours" #: ../pan/gui/task-pane.cc:513 msgid "Queued for Decode" msgstr "En attente de décodage" #: ../pan/gui/task-pane.cc:514 msgid "Queued for Encode" msgstr "En attente de codage" #: ../pan/gui/task-pane.cc:515 msgid "Queued" msgstr "En attente" #: ../pan/gui/task-pane.cc:516 msgid "Stopped" msgstr "Arrêtée" #: ../pan/gui/task-pane.cc:517 msgid "Removing" msgstr "Suppression en cours" #: ../pan/gui/task-pane.cc:546 #, c-format msgid "%d%% Done" msgstr "%d%% réalisé" #: ../pan/gui/task-pane.cc:552 #, c-format msgid "%d:%02d:%02d Remaining (%d @ %lu KiB/s)" msgstr "%d:%02d:%02d restant (%d @ %lu Kib/s)" #: ../pan/gui/task-pane.cc:646 ../pan/gui/task-pane.cc:647 msgid "Move To Top" msgstr "Déplacer en haut" #: ../pan/gui/task-pane.cc:651 ../pan/gui/task-pane.cc:652 msgid "Move To Bottom" msgstr "Déplacer en bas" #: ../pan/gui/task-pane.cc:656 ../pan/gui/task-pane.cc:657 msgid "Stop Task" msgstr "Arrêter la tâche" #: ../pan/gui/task-pane.cc:661 ../pan/gui/task-pane.cc:662 msgid "Delete Task" msgstr "Supprimer la tâche" #: ../pan/gui/task-pane.cc:666 ../pan/gui/task-pane.cc:667 msgid "Restart Task" msgstr "Redémarrer la tâche" #: ../pan/gui/task-pane.cc:671 ../pan/gui/task-pane.cc:672 msgid "Change Download Destination" msgstr "Modifier l'emplacement de téléchargement" #: ../pan/gui/task-pane.cc:729 msgid "_Online" msgstr "_En ligne" #: ../pan/gui/task-pane.cc:746 msgid "Restart Tasks" msgstr "Redémarrer les tâches" #: ../pan/gui/task-pane.cc:748 msgid "Stop Tasks" msgstr "Arrêter les tâches" #: ../pan/gui/task-pane.cc:750 msgid "Delete Tasks" msgstr "Supprimer les tâches" #: ../pan/gui/url.cc:123 #, c-format msgid "Error starting URL: %s (Command was: %s)" msgstr "Erreur de lancement de l'URL : %s (la commande était : %s)" #: ../pan/tasks/decoder.cc:116 #, c-format msgid "Couldn't save file \"%s\": %s" msgstr "Impossible d'enregistrer le fichier « %s » : %s" #: ../pan/tasks/decoder.cc:138 ../pan/tasks/encoder.cc:136 msgid "Error initializing uulib" msgstr "Erreur d'initialisation de uulib" #: ../pan/tasks/decoder.cc:153 ../pan/tasks/socket-impl-gio.cc:352 #: ../pan/tasks/socket-impl-openssl.cc:634 #, c-format msgid "Error reading from %s: %s" msgstr "Erreur lors de la lecture depuis %s : %s" #: ../pan/tasks/decoder.cc:193 #, c-format msgid "Saved \"%s\"" msgstr "« %s » enregistré" #: ../pan/tasks/decoder.cc:200 #, c-format msgid "" "Error saving \"%s\":\n" "%s." msgstr "" "Erreur lors de l'enregistrement de « %s » :\n" "%s." #: ../pan/tasks/decoder.cc:315 ../pan/tasks/task-article.cc:356 #, c-format msgid "Decoding %s" msgstr "Décodage de %s" #: ../pan/tasks/encoder.cc:103 ../pan/tasks/encoder.cc:154 #, c-format msgid "Error loading %s from cache." msgstr "Erreur lors du chargement de %s à partir du cache." #: ../pan/tasks/encoder.cc:176 #, c-format msgid "Error encoding %s: %s" msgstr "Erreur lors du codage de %s : %s" #: ../pan/tasks/encoder.cc:268 #, c-format msgid "Encoding %s" msgstr "Codage en cours de %s" #: ../pan/tasks/nntp.cc:126 #, c-format msgid "%s requires a username, but none is set." msgstr "%s exige un nom d'utilisateur, mais aucun n'est défini." #: ../pan/tasks/nntp.cc:139 #, c-format msgid "%s requires a password, but none is set." msgstr "%s exige un mot de passe, mais aucun n'est défini." #: ../pan/tasks/nntp.cc:205 #, c-format msgid "Sending \"%s\" to %s returned an error: %s" msgstr "L'envoi de « %s » à %s a renvoyé une erreur : %s" # # #: ../pan/tasks/nntp.cc:228 #, c-format msgid "Sending \"%s\" to %s returned an unrecognized response: \"%s\"" msgstr "L'envoi de « %s » à %s a renvoyé une réponse inconnue : « %s »" #: ../pan/tasks/nntp-pool.cc:234 #, c-format msgid "Unable to connect to \"%s\"" msgstr "Impossible de se connecter à « %s »" #: ../pan/tasks/queue.cc:771 ../pan/tasks/queue.cc:799 #: ../pan/tasks/queue.cc:826 msgid "No space left on device." msgstr "Il n'y a plus d'espace disque disponible." #: ../pan/tasks/socket-impl-gio.cc:173 ../pan/tasks/socket-impl-gio.cc:211 #: ../pan/tasks/socket-impl-openssl.cc:214 #: ../pan/tasks/socket-impl-openssl.cc:252 #, c-format msgid "Error connecting to \"%s\"" msgstr "Erreur lors de la connexion à « %s »" #: ../pan/tasks/socket-impl-gio.cc:351 ../pan/tasks/socket-impl-openssl.cc:633 msgid "Unknown Error" msgstr "Erreur inconnue" #: ../pan/tasks/task-article.cc:62 ../pan/tasks/task-article.cc:158 #: ../pan/tasks/task-article.cc:161 #, c-format msgid "Saving %s" msgstr "Enregistrement de %s" #: ../pan/tasks/task-article.cc:64 #, c-format msgid "Reading %s" msgstr "Lecture de %s" #: ../pan/tasks/task-article.cc:328 #, c-format msgid "Article \"%s\" is incomplete -- the news server(s) don't have part %s" msgstr "" "L'article « %s » n'est pas complet -- le(s) serveur(s) de nouvelles ne " "possède(nt) pas la partie %s" #: ../pan/tasks/task-groups.cc:40 #, c-format msgid "Getting group list from \"%s\"" msgstr "Récupération de la liste des groupes depuis « %s »" #: ../pan/tasks/task-groups.cc:122 #, c-format msgid "Fetched %lu Groups" msgstr "Reçu %lu groupes" #: ../pan/tasks/task-post.cc:35 #, c-format msgid "Posting \"%s\"" msgstr "Postage de « %s »" #: ../pan/tasks/task-post.cc:76 #, c-format msgid "Posting of \"%s\" failed: %s" msgstr "Échec du postage de « %s » : %s" #: ../pan/tasks/task-post.cc:81 #, c-format msgid "Posting of \"%s\" successful: %s" msgstr "Postage de « %s » réussi : %s" #: ../pan/tasks/task-upload.cc:51 #, c-format msgid "Uploading %s" msgstr "Envoi de %s en cours" #: ../pan/tasks/task-upload.cc:249 #, c-format msgid "Uploading %s - Part %d of %d" msgstr "Envoi de %s - partie %d sur %d" #: ../pan/tasks/task-upload.cc:251 #, c-format msgid "Uploading message body with subject \"%s\"" msgstr "Envoi du corps du message dont le sujet est « %s »" #: ../pan/tasks/task-upload.cc:308 #, c-format msgid "Posting of file %s (part %d of %d) failed: No posts allowed by server." msgstr "" "Échec du postage du fichier %s (partie %d sur %d) : aucun postage autorisé " "par le serveur." #: ../pan/tasks/task-upload.cc:316 #, c-format msgid "Posting of file %s (part %d of %d) failed: %s" msgstr "Échec du postage du fichier %s (partie %d sur %d) : %s" #: ../pan/tasks/task-upload.cc:326 ../pan/tasks/task-upload.cc:333 #, c-format msgid "Posting of file %s (part %d of %d) successful: %s" msgstr "Postage du fichier %s (partie %d sur %d) réussi : %s" #: ../pan/tasks/task-upload.cc:343 #, c-format msgid "Posting of file %s successful: %s" msgstr "Postage du fichier %s réussi : %s" #: ../pan/tasks/task-upload.cc:347 #, c-format msgid "" "Posting of file %s not completely successful: Check the log (right-click " "list item)." msgstr "" "Postage du fichier %s partiellement réussi : vérifiez le journal (faites un " "clic droit sur l'élément de la liste)." #: ../pan/tasks/task-upload.cc:364 #, c-format msgid "" "Posting of file %s not successful: Check the log (right-click list item)." msgstr "" "Échec du postage du fichier %s : vérifiez le journal (faites un clic droit " "sur l'élément de la liste)." #: ../pan/tasks/task-xover.cc:79 #, c-format msgid "Getting all headers for \"%s\"" msgstr "Récupération de tous les en-têtes pour « %s »" #: ../pan/tasks/task-xover.cc:81 #, c-format msgid "Getting new headers for \"%s\"" msgstr "Récupération des nouveaux en-têtes pour « %s »" #. SAMPLE #: ../pan/tasks/task-xover.cc:83 #, c-format msgid "Sampling headers for \"%s\"" msgstr "Échantillonnage des en-têtes pour « %s »" #: ../pan/tasks/task-xover.cc:370 #, c-format msgid "%s (%lu parts, %lu articles)" msgstr "%s (%lu parties, %lu articles)" #: ../pan/tasks/task-xoverinfo.cc:78 #, c-format msgid "Getting header counts for \"%s\"" msgstr "Récupération du nombre d'en-têtes pour « %s »" #: ../pan/usenet-utils/filter-info.cc:163 msgid "article doesn't have attachments" msgstr "l'article n'a pas de pièces jointes" #: ../pan/usenet-utils/filter-info.cc:167 msgid "the article has attachments" msgstr "l'article a des pièces jointes" #: ../pan/usenet-utils/filter-info.cc:171 msgid "the article isn't cached locally" msgstr "l'article n'est pas dans le cache local" #: ../pan/usenet-utils/filter-info.cc:175 msgid "the article is cached locally" msgstr "l'article est dans le cache local" #: ../pan/usenet-utils/filter-info.cc:179 msgid "the article wasn't posted by you" msgstr "l'article n'a pas été posté par vous" #: ../pan/usenet-utils/filter-info.cc:183 msgid "the article was posted by you" msgstr "l'article a été posté par vous" #: ../pan/usenet-utils/filter-info.cc:187 msgid "the article has been read" msgstr "l'article a été lu" #: ../pan/usenet-utils/filter-info.cc:191 msgid "the article hasn't been read" msgstr "l'article n'a pas été lu" #: ../pan/usenet-utils/filter-info.cc:195 #, c-format msgid "the article is less than %ld bytes long" msgstr "l'article fait moins de %ld octets" #: ../pan/usenet-utils/filter-info.cc:200 #, c-format msgid "the article is at least %ld bytes long" msgstr "l'article fait au moins %ld octets" #: ../pan/usenet-utils/filter-info.cc:205 #, c-format msgid "the article is less than %ld lines long" msgstr "l'article a moins de %ld lignes" #: ../pan/usenet-utils/filter-info.cc:210 #, c-format msgid "the article is at least %ld lines long" msgstr "l'article a au moins %ld lignes" #: ../pan/usenet-utils/filter-info.cc:215 #, c-format msgid "the article is less than %ld days old" msgstr "l'article a été posté il y a moins de %ld jours" #: ../pan/usenet-utils/filter-info.cc:220 #, c-format msgid "the article is at least %ld days old" msgstr "l'article est vieux d'au moins %ld jours" #: ../pan/usenet-utils/filter-info.cc:225 #, c-format msgid "the article was posted to less than %ld groups" msgstr "l'article a été posté dans moins de %ld groupes" #: ../pan/usenet-utils/filter-info.cc:230 #, c-format msgid "the article was posted to at least %ld groups" msgstr "l'article a été posté dans au moins %ld groupes" #: ../pan/usenet-utils/filter-info.cc:235 #, c-format msgid "the article's score is less than %ld" msgstr "la note de l'article est inférieure à %ld" #: ../pan/usenet-utils/filter-info.cc:240 #, c-format msgid "the article's score is %ld or higher" msgstr "la note de l'article est supérieure ou égale à %ld" #: ../pan/usenet-utils/filter-info.cc:249 #: ../pan/usenet-utils/filter-info.cc:259 #, c-format msgid "%s doesn't contain \"%s\"" msgstr "%s ne contient pas « %s »" #: ../pan/usenet-utils/filter-info.cc:250 #: ../pan/usenet-utils/filter-info.cc:260 #, c-format msgid "%s isn't \"%s\"" msgstr "%s n'est pas « %s »" #: ../pan/usenet-utils/filter-info.cc:251 #: ../pan/usenet-utils/filter-info.cc:261 #, c-format msgid "%s doesn't begin with \"%s\"" msgstr "%s ne commence pas par « %s »" #: ../pan/usenet-utils/filter-info.cc:252 #: ../pan/usenet-utils/filter-info.cc:262 #, c-format msgid "%s doesn't end with \"%s\"" msgstr "%s ne finit pas par « %s »" #: ../pan/usenet-utils/filter-info.cc:253 #: ../pan/usenet-utils/filter-info.cc:263 #, c-format msgid "%s doesn't match the regex \"%s\"" msgstr "%s ne correspond pas au motif « %s »" #: ../pan/usenet-utils/filter-info.cc:275 #, c-format msgid "%s contains \"%s\"" msgstr "%s contient « %s »" #: ../pan/usenet-utils/filter-info.cc:276 #, c-format msgid "%s is \"%s\"" msgstr "%s est « %s »" #: ../pan/usenet-utils/filter-info.cc:277 #, c-format msgid "%s begins with \"%s\"" msgstr "%s commence par « %s »" #: ../pan/usenet-utils/filter-info.cc:278 #, c-format msgid "%s ends with \"%s\"" msgstr "%s finit par « %s »" #: ../pan/usenet-utils/filter-info.cc:279 #, c-format msgid "%s matches the regex \"%s\"" msgstr "%s correspond au motif « %s »" #: ../pan/usenet-utils/filter-info.cc:285 msgid "Any of these tests fail:" msgstr "N'importe lequel de ces tests échoue :" #: ../pan/usenet-utils/filter-info.cc:292 msgid "All of these tests pass:" msgstr "Tous ces tests réussissent :" #: ../pan/usenet-utils/filter-info.cc:299 msgid "None of these tests pass:" msgstr "Aucun de ces tests ne réussit :" #: ../pan/usenet-utils/filter-info.cc:306 msgid "Any of these tests pass:" msgstr "N'importe lequel de ces tests réussit :" #: ../pan/usenet-utils/gnksa.cc:878 #, c-format msgid "No email address provided; generating message-id with domain \"%s\"" msgstr "" "Aucune adresse électronique fournie ; génération du message-id avec le " "domaine « %s »" #: ../pan/usenet-utils/message-check.cc:124 msgid "Warning: Reply seems to be top-posted." msgstr "Attention : la réponse semble être écrite en-dessus du texte original." #: ../pan/usenet-utils/message-check.cc:145 msgid "Warning: The signature marker should be \"-- \", not \"--\"." msgstr "Attention : la marque de signature devrait être « --  » et non « -- »." #: ../pan/usenet-utils/message-check.cc:162 msgid "Warning: Signature prefix with no signature." msgstr "Attention : préfixe de signature sans signature." #: ../pan/usenet-utils/message-check.cc:167 msgid "Warning: Signature is more than 4 lines long." msgstr "Attention : la signature fait plus de 4 lignes." #: ../pan/usenet-utils/message-check.cc:172 msgid "Warning: Signature is more than 80 characters wide." msgstr "Attention : la signature fait plus de 80 caractères de largeur." #: ../pan/usenet-utils/message-check.cc:198 #, c-format msgid "Warning: %d line is more than 80 characters wide." msgid_plural "Warning: %d lines are more than 80 characters wide." msgstr[0] "Attention : %d ligne fait plus de 80 caractères de long." msgstr[1] "Attention : %d lignes font plus de 80 caractères de long." #: ../pan/usenet-utils/message-check.cc:223 msgid "Error: Message is empty." msgstr "Erreur : le message est vide." #: ../pan/usenet-utils/message-check.cc:258 msgid "Warning: The message is entirely quoted text!" msgstr "Attention : ce message ne contient que du texte cité !" #: ../pan/usenet-utils/message-check.cc:259 msgid "Warning: The message is mostly quoted text." msgstr "Attention : ce message contient essentiellement du texte cité." #: ../pan/usenet-utils/message-check.cc:309 msgid "Error: Message appears to have no new content." msgstr "Erreur : ce message semble n'avoir aucun contenu." #: ../pan/usenet-utils/message-check.cc:344 #: ../pan/usenet-utils/message-check.cc:383 #, c-format msgid "" "Warning: The posting profile's server doesn't carry newsgroup\n" "\t\"%s\".\n" "\tIf the group name is correct, switch profiles in the \"From:\"\n" "\tline or edit the profile with \"Edit|Manage Posting Profiles\"." msgstr "" "Attention : le profil de postage du serveur ne contient pas le groupe\n" "\tde nouvelles « %s ».\n" "\tSi le nom du groupe est correct, changez de profil dans la ligne « De : »\n" "\tou modifiez le profil avec « Édition|Modifier les profils de postage »." #: ../pan/usenet-utils/message-check.cc:355 msgid "Warning: Following-Up to too many groups." msgstr "Attention : retransmis vers beaucoup trop de groupes." #: ../pan/usenet-utils/message-check.cc:366 msgid "Error: No Subject specified." msgstr "Erreur : aucun sujet spécifié." #: ../pan/usenet-utils/message-check.cc:395 #, c-format msgid "Warning: Group \"%s\" is read-only." msgstr "Attention : groupe « %s » en lecture seule." #: ../pan/usenet-utils/message-check.cc:404 msgid "Error: Posting to a very large number of groups." msgstr "Erreur : postage vers un très grand nombre de groupes." #: ../pan/usenet-utils/message-check.cc:409 msgid "Warning: Posting to a large number of groups." msgstr "Attention : postage vers un grand nombre de groupes." #: ../pan/usenet-utils/message-check.cc:416 msgid "Warning: Crossposting without setting Followup-To header." msgstr "" "Attention : postage croisé sans définition de l'en-tête « Faire suivre à »." #: ../pan/usenet-utils/message-check.cc:441 msgid "Error: Bad email address." msgstr "Erreur : mauvaise adresse électronique." #: ../pan/usenet-utils/message-check.cc:450 msgid "Warning: Most newsgroups frown upon HTML posts." msgstr "" "Attention : la plupart des groupes de nouvelles n'apprécient pas les " "messages HTML." #: ../pan/usenet-utils/message-check.cc:486 msgid "Error: No Recipients." msgstr "Erreur : aucun destinataire." #: ../pan/usenet-utils/scorefile.cc:304 #, c-format msgid "" "Error reading score in %*.*s, line %d: expected 'Expires: MM/DD/YYYY' or " "'Expires: DD-MM-YYYY'." msgstr "" "Erreur lors de la lecture de la note dans %*.*s, ligne %d : « Expires: MM/DD/" "YYYY » ou « Expires: DD-MM-YYYY » attendu." #: ../pan/usenet-utils/scorefile.cc:307 #, c-format msgid "Expired old score from %*.*s, line %d" msgstr "Ancienne note expirée dans %*.*s, ligne %d" #: ../pan/usenet-utils/scorefile.cc:380 #, c-format msgid "Error reading score in %*.*s, line %d: unexpected line." msgstr "" "Erreur lors de la lecture de la note dans %*.*s, ligne %d : ligne inattendue." #: ../pan/usenet-utils/scorefile.cc:428 #, c-format msgid "Read %lu scoring rules in %lu sections from \"%s\"" msgstr "%lu règles de notation lues dans %lu sections depuis « %s »" #: ../pan/usenet-utils/ssl-utils.h:189 #, c-format msgid "Error printing the server certificate for '%s'" msgstr "Erreur d'impression du certificat du serveur pour « %s »" #: ../pan/usenet-utils/ssl-utils.h:205 #, c-format msgid "" "The current server '%s' sent this security certificate:\n" "\n" msgstr "" "Le serveur actuel « %s » a envoyé ce certificat de sécurité :\n" "\n" #: ../pan/usenet-utils/ssl-utils.h:206 #, c-format msgid "" "Certificate information for server '%s':\n" "\n" msgstr "" "Information de certification du serveur « %s » :\n" "\n" #: ../pan/usenet-utils/ssl-utils.h:208 #, c-format msgid "" "%sIssuer information:\n" "%s\n" "Valid until: %s\n" "\n" "Not valid before: %s\n" "\n" msgstr "" "%sInformations sur l'émetteur :\n" "%s\n" "Valide jusqu'au : %s\n" "\n" "Non valide avant le : %s\n" "\n" #: ../pan/usenet-utils/text-massager.cc:399 msgid "> [quoted text muted]" msgstr "> [texte cité caché]" #: ../pan/usenet-utils/text-massager.cc:579 msgid "no_name" msgstr "pas_de_nom" #: ../pan/usenet-utils/text-massager.cc:580 msgid "no_mail" msgstr "pas_de_courriel" pan-0.162/po/ga.po000066400000000000000000002325221475412772400136700ustar00rootroot00000000000000# Irish language (gaeilge) translation of pan # Copyright (C) 2000,2004 Free Software Foundation, Inc. # Alastair McKinstry , 2000. msgid "" msgstr "" "Project-Id-Version: pan 0.10.0.91\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-04-04 20:58+0200\n" "PO-Revision-Date: 2004-01-14 07:25+0000\n" "Last-Translator: Alastair McKinstry \n" "Language-Team: Irish \n" "Language: ga\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8-bit\n" #: ../pan.desktop.in.h:1 msgid "Pan Newsreader" msgstr "" #: ../pan.desktop.in.h:2 #, fuzzy msgid "Read and Post Usenet Articles" msgstr "/_Eagar/Roghnaigh gach _Scéalaí" #: ../pan/data/article-cache.cc:143 ../pan/data/encode-cache.cc:62 #, fuzzy, c-format msgid "Error opening directory: \"%s\": %s" msgstr "Earraidh ag oscailt eolaire \"%s\": %s)" #: ../pan/data/article-cache.cc:231 ../pan/data/article-cache.cc:242 #: ../pan/data-impl/data-io.cc:187 ../pan/data-impl/data-io.cc:211 #: ../pan/gui/post-ui.cc:1639 #, c-format msgid "Unable to save \"%s\" %s" msgstr "" #: ../pan/data/article-cache.cc:355 #, fuzzy, c-format msgid "Error opening file \"%s\" %s" msgstr "Earrraidh ag oscailt comhad \"%s\": %s" #: ../pan/data/article-cache.cc:386 ../pan/data-impl/profiles.cc:174 #: ../pan/data-impl/server.cc:436 ../pan/general/file-util.cc:298 #: ../pan/gui/post-ui.cc:609 ../pan/gui/task-pane.cc:691 #, c-format msgid "Error reading file \"%s\": %s" msgstr "Earraidh ag leámh comhad \"%s\": %s" #: ../pan/data/cert-store.cc:238 #, fuzzy, c-format msgid "Error opening SSL certificate directory: \"%s\": %s" msgstr "Earraidh ag oscailt eolaire \"%s\": %s)" #: ../pan/data/cert-store.cc:270 #, c-format msgid "Succesfully added %d SSL PEM certificate(s) to Certificate Store." msgstr "" #. load_group_descriptions (*_data_io); #: ../pan/data-impl/data-impl.cc:109 #, c-format msgid "Loaded data backend in %.1f seconds" msgstr "" #: ../pan/data-impl/data-impl.cc:140 msgid "Pan newsreader server passwords" msgstr "" #: ../pan/data-impl/groups.cc:94 #, c-format msgid "Skipping newsrc file for server \"%s\"" msgstr "" #: ../pan/data-impl/headers.cc:606 #, c-format msgid "Expired %lu old articles from \"%s\"" msgstr "" #: ../pan/data-impl/headers.cc:613 #, c-format msgid "" "Unsupported data version for %s headers: %d.\n" "Are you running an old version of Pan by accident?" msgstr "" #: ../pan/data-impl/headers.cc:628 #, c-format msgid "Loaded %lu articles for \"%s\" in %.1f seconds (%.0f per second)" msgstr "" #: ../pan/data-impl/headers.cc:857 #, c-format msgid "" "Saved %lu parts, %lu articles in \"%s\" in %.1f seconds (%.0f articles/sec)" msgstr "" #: ../pan/data-impl/headers.cc:1173 #, c-format msgid "Added %lu articles to %s." msgstr "" #: ../pan/data-impl/server.cc:234 #, c-format msgid "There seems to be no Password set for Server %s." msgstr "" #: ../pan/data-impl/server.cc:238 msgid "The Gnome keyring denied access to the Passwords." msgstr "" #: ../pan/data-impl/xover.cc:239 #, fuzzy, c-format msgid "Error reading from %s: unknown group \"%s\"" msgstr "Ag lódáil grupa \"%s\"" #. build the locale strings #: ../pan/general/e-util.cc:213 msgid "%l:%M %p" msgstr "" #: ../pan/general/e-util.cc:214 msgid "Today %l:%M %p" msgstr "" #: ../pan/general/e-util.cc:215 msgid "%a %l:%M %p" msgstr "" #: ../pan/general/e-util.cc:216 msgid "%b %d %l:%M %p" msgstr "" #: ../pan/general/e-util.cc:217 msgid "%b %d %Y" msgstr "" #: ../pan/general/e-util.cc:242 msgid "?" msgstr "" #: ../pan/general/text-match.cc:193 #, c-format msgid "Can't use regular expression \"%s\": %s" msgstr "" #: ../pan/general/utf8-utils.cc:213 msgid "Couldn't determine article encoding. Non-UTF8 characters were removed." msgstr "" #: ../pan/gui/actions.cc:274 ../pan/gui/post-ui.cc:417 #, fuzzy msgid "_File" msgstr "/_Comhad" #: ../pan/gui/actions.cc:275 ../pan/gui/post-ui.cc:418 #, fuzzy msgid "_Edit" msgstr "/_Eagar" #: ../pan/gui/actions.cc:276 ../pan/gui/prefs-ui.cc:1064 msgid "_Layout" msgstr "" #: ../pan/gui/actions.cc:277 #, fuzzy msgid "_Group Pane" msgstr "Grupa" #: ../pan/gui/actions.cc:278 msgid "_Header Pane" msgstr "" #: ../pan/gui/actions.cc:279 msgid "_Body Pane" msgstr "" #: ../pan/gui/actions.cc:280 #, fuzzy msgid "_View" msgstr "_Amharc" #: ../pan/gui/actions.cc:281 #, fuzzy msgid "Filte_r" msgstr "Comhaid" #: ../pan/gui/actions.cc:282 msgid "_Go" msgstr "" #: ../pan/gui/actions.cc:283 ../pan/gui/prefs-ui.cc:1091 msgid "_Actions" msgstr "" #: ../pan/gui/actions.cc:284 #, fuzzy msgid "_Articles" msgstr "/_Scéalaí" #: ../pan/gui/actions.cc:285 #, fuzzy msgid "G_roups" msgstr "Grupaí" #: ../pan/gui/actions.cc:286 ../pan/gui/actions.cc:287 msgid "_Post" msgstr "_Post" #: ../pan/gui/actions.cc:288 msgid "_Help" msgstr "_Cuidiú" #: ../pan/gui/actions.cc:291 #, fuzzy msgid "_Read Group" msgstr "/Dea_laigh Grupa" #: ../pan/gui/actions.cc:292 #, fuzzy msgid "Read Group" msgstr "/Dea_laigh Grupa" #: ../pan/gui/actions.cc:296 #, fuzzy msgid "_Mark Selected Groups Read" msgstr "/Dea_laigh Grupa" #: ../pan/gui/actions.cc:297 msgid "Mark Selected Groups Read" msgstr "" #: ../pan/gui/actions.cc:301 #, fuzzy msgid "_Delete Selected Groups' Articles" msgstr "/_Dealaigh sceálai san grupa" #: ../pan/gui/actions.cc:302 #, fuzzy msgid "Delete Selected Groups' Articles" msgstr "/_Dealaigh sceálai san grupa" #: ../pan/gui/actions.cc:306 msgid "Get New _Headers in Selected Groups" msgstr "" #: ../pan/gui/actions.cc:307 #, fuzzy msgid "Get New Headers in Selected Groups" msgstr "/Dea_laigh Grupa" #: ../pan/gui/actions.cc:311 ../pan/gui/actions.cc:316 msgid "Get New _Headers in Subscribed Groups" msgstr "" #: ../pan/gui/actions.cc:312 ../pan/gui/actions.cc:317 msgid "Get New Headers in Subscribed Groups" msgstr "" #: ../pan/gui/actions.cc:321 msgid "Get _Headers..." msgstr "" #: ../pan/gui/actions.cc:322 msgid "Get Headers..." msgstr "" #: ../pan/gui/actions.cc:326 ../pan/gui/actions.cc:327 #, fuzzy msgid "Refresh Group List" msgstr "Grupaí Nua" #: ../pan/gui/actions.cc:331 msgid "_Subscribe" msgstr "" #: ../pan/gui/actions.cc:332 msgid "Subscribe" msgstr "" #: ../pan/gui/actions.cc:336 msgid "_Unsubscribe" msgstr "" #: ../pan/gui/actions.cc:337 msgid "Unsubscribe" msgstr "" #: ../pan/gui/actions.cc:341 #, fuzzy msgid "_Save Articles..." msgstr "/_Scéalaí" #: ../pan/gui/actions.cc:342 #, fuzzy msgid "Save Articles..." msgstr "/_Scéalaí" #: ../pan/gui/actions.cc:346 #, fuzzy msgid "Save Articles from Selected _NZB..." msgstr "/_Scéalaí" #: ../pan/gui/actions.cc:347 #, fuzzy msgid "Save Articles from Selected NZB" msgstr "/_Scéalaí" #: ../pan/gui/actions.cc:351 #, fuzzy msgid "Save Articles to an NZB _File..." msgstr "/_Scéalaí" #: ../pan/gui/actions.cc:352 msgid "Save Articles to an NZB File" msgstr "" #: ../pan/gui/actions.cc:356 ../pan/gui/actions.cc:357 #, fuzzy msgid "Print" msgstr "Pan: Priontail" #: ../pan/gui/actions.cc:361 msgid "_Import NZB Files..." msgstr "" #: ../pan/gui/actions.cc:366 msgid "_Cancel Last Task" msgstr "" #: ../pan/gui/actions.cc:371 #, fuzzy msgid "_Task Manager" msgstr "/_Uirlisí/Bainisteoir _Tascanna..." #: ../pan/gui/actions.cc:376 msgid "_Event Log" msgstr "" #: ../pan/gui/actions.cc:381 #, fuzzy msgid "_Quit" msgstr "/_Eagar" #: ../pan/gui/actions.cc:386 #, fuzzy msgid "Select _All Articles" msgstr "/_Eagar/Roghnaigh gach _Scéalaí" #: ../pan/gui/actions.cc:391 #, fuzzy msgid "_Deselect All Articles" msgstr "/_Eagar/Roghnaigh gach _Scéalaí" #: ../pan/gui/actions.cc:396 msgid "Add Su_bthreads to Selection" msgstr "" #: ../pan/gui/actions.cc:401 msgid "Add _Threads to Selection" msgstr "" #: ../pan/gui/actions.cc:406 msgid "Add _Similar Articles to Selection" msgstr "" #: ../pan/gui/actions.cc:411 msgid "Select Article _Body" msgstr "" #: ../pan/gui/actions.cc:416 #, fuzzy msgid "Edit _Preferences" msgstr "/_Eagar/_Roghnachais..." #: ../pan/gui/actions.cc:421 #, fuzzy msgid "Edit Selected _Group's Preferences" msgstr "/_Eagar/_Roghnachais..." #: ../pan/gui/actions.cc:426 ../pan/gui/post-ui.cc:434 #, fuzzy msgid "Edit P_osting Profiles" msgstr "/_Eagar/_Roghnachais..." #: ../pan/gui/actions.cc:431 #, fuzzy msgid "Edit _News Servers" msgstr "Freastalaí Nuachtan" #: ../pan/gui/actions.cc:436 msgid "Jump to _Group Tab" msgstr "" #: ../pan/gui/actions.cc:441 msgid "Jump to _Header Tab" msgstr "" #: ../pan/gui/actions.cc:446 msgid "Jump to _Body Tab" msgstr "" #: ../pan/gui/actions.cc:451 msgid "_Rot13 Selected Text" msgstr "" #: ../pan/gui/actions.cc:456 msgid "Clear _Header Pane" msgstr "" #: ../pan/gui/actions.cc:461 #, fuzzy msgid "Clear _Body Pane" msgstr "Grupa" #: ../pan/gui/actions.cc:466 #, fuzzy msgid "Cache Article" msgstr "_Scéal" #: ../pan/gui/actions.cc:471 #, fuzzy msgid "Read Article" msgstr "_Dealaigh scéal" #: ../pan/gui/actions.cc:476 msgid "Show Article Information" msgstr "" #: ../pan/gui/actions.cc:481 msgid "Read _More" msgstr "" #: ../pan/gui/actions.cc:482 msgid "Read More" msgstr "" #: ../pan/gui/actions.cc:486 msgid "Read _Back" msgstr "" #: ../pan/gui/actions.cc:487 msgid "Read Back" msgstr "" #: ../pan/gui/actions.cc:491 #, fuzzy msgid "Next _Unread Group" msgstr "Roghnaigh Comhad" #: ../pan/gui/actions.cc:496 #, fuzzy msgid "Next _Group" msgstr "(Níl aon grupa ann)" #: ../pan/gui/actions.cc:501 #, fuzzy msgid "Next _Unread Article" msgstr "Roghnaigh Comhad" #: ../pan/gui/actions.cc:502 #, fuzzy msgid "Next Unread Article" msgstr "/_Léamh Scéal" #: ../pan/gui/actions.cc:506 #, fuzzy msgid "Next _Article" msgstr "Roghnaigh Comhad" #: ../pan/gui/actions.cc:507 #, fuzzy msgid "Next Article" msgstr "Roghnaigh Comhad" #: ../pan/gui/actions.cc:511 #, fuzzy msgid "Next _Watched Article" msgstr "Roghnaigh Comhad" #: ../pan/gui/actions.cc:516 msgid "Next Unread _Thread" msgstr "" #: ../pan/gui/actions.cc:517 msgid "Next Unread Thread" msgstr "" #: ../pan/gui/actions.cc:521 msgid "Next Threa_d" msgstr "" #: ../pan/gui/actions.cc:526 #, fuzzy msgid "Pre_vious Article" msgstr "_Scéal" #: ../pan/gui/actions.cc:531 msgid "Previous _Thread" msgstr "" #: ../pan/gui/actions.cc:536 #, fuzzy msgid "_Parent Article" msgstr "_Scéal" #: ../pan/gui/actions.cc:541 #, fuzzy msgid "Ignore _Author" msgstr "Údar" #: ../pan/gui/actions.cc:545 msgid "_Watch Thread" msgstr "" #: ../pan/gui/actions.cc:550 msgid "_Ignore Thread" msgstr "" #: ../pan/gui/actions.cc:555 ../pan/gui/actions.cc:556 msgid "_Toggle Flag On/Off for Thread" msgstr "" #: ../pan/gui/actions.cc:560 ../pan/gui/actions.cc:561 msgid "_Turn Flag Off for Thread" msgstr "" #: ../pan/gui/actions.cc:565 ../pan/gui/actions.cc:566 msgid "_Select All Flagged Threads" msgstr "" #: ../pan/gui/actions.cc:570 ../pan/gui/actions.cc:571 msgid "_Go to Next Flagged Thread" msgstr "" #: ../pan/gui/actions.cc:575 ../pan/gui/actions.cc:576 msgid "_Go to Last Flagged Thread" msgstr "" #: ../pan/gui/actions.cc:580 ../pan/gui/actions.cc:581 msgid "_Invert Selection" msgstr "" #: ../pan/gui/actions.cc:585 msgid "Edit Article's Watch/Ignore/Score..." msgstr "" #: ../pan/gui/actions.cc:590 #, fuzzy msgid "Add a _Scoring Rule..." msgstr "Scór Nua" #: ../pan/gui/actions.cc:595 msgid "Cance_l Article..." msgstr "" #: ../pan/gui/actions.cc:600 msgid "_Supersede Article..." msgstr "" #: ../pan/gui/actions.cc:605 #, fuzzy msgid "_Delete Article" msgstr "/_Dealaigh sceálai san grupa" #: ../pan/gui/actions.cc:610 #, fuzzy msgid "Clear Article Cache" msgstr "_Scéal" #: ../pan/gui/actions.cc:615 msgid "_Mark Article as Read" msgstr "" #: ../pan/gui/actions.cc:620 msgid "Mark Article as _Unread" msgstr "" #: ../pan/gui/actions.cc:626 #, fuzzy msgid "_Mark Thread as Read" msgstr "/Dea_laigh Grupa" #: ../pan/gui/actions.cc:631 msgid "Mark Thread as _Unread" msgstr "" #: ../pan/gui/actions.cc:636 #, fuzzy msgid "_Post to Newsgroup" msgstr "/Grupaí _Nuachtain" #: ../pan/gui/actions.cc:637 #, fuzzy msgid "Post to Newsgroup" msgstr "Grupaí Nuachtain" #: ../pan/gui/actions.cc:641 #, fuzzy msgid "_Followup to Newsgroup" msgstr "_Scéal" #: ../pan/gui/actions.cc:642 #, fuzzy msgid "Followup to Newsgroup" msgstr "_Scéal" #: ../pan/gui/actions.cc:646 #, fuzzy msgid "_Reply to Author in Mail" msgstr "_Údar:" #: ../pan/gui/actions.cc:651 #, fuzzy msgid "_Pan Home Page" msgstr "/_Cuidiú/Leathanach _Baile Pan..." #: ../pan/gui/actions.cc:656 msgid "Give _Feedback or Report a Bug..." msgstr "" #: ../pan/gui/actions.cc:661 msgid "_Tip Jar..." msgstr "" #: ../pan/gui/actions.cc:666 #, fuzzy msgid "_About" msgstr "Faoi" #: ../pan/gui/actions.cc:671 msgid "Edit _SSL Certificates" msgstr "" #: ../pan/gui/actions.cc:685 msgid "_Thread Headers" msgstr "" #: ../pan/gui/actions.cc:686 msgid "_Wrap Article Body" msgstr "" #: ../pan/gui/actions.cc:687 msgid "Mute _Quoted Text" msgstr "" #: ../pan/gui/actions.cc:688 msgid "Show All _Headers in Body Pane" msgstr "" #: ../pan/gui/actions.cc:689 msgid "Show _Smilies as Graphics" msgstr "" #: ../pan/gui/actions.cc:690 msgid "Show *Bold*, __Underlined__, and /Italic/" msgstr "" #: ../pan/gui/actions.cc:691 msgid "Size Pictures to _Fit" msgstr "" #: ../pan/gui/actions.cc:692 msgid "Use _Monospace Font" msgstr "" #: ../pan/gui/actions.cc:693 msgid "Set Focus to Images" msgstr "" #: ../pan/gui/actions.cc:694 msgid "Highlight _URLs" msgstr "" #: ../pan/gui/actions.cc:697 msgid "_Work Online" msgstr "" #: ../pan/gui/actions.cc:698 msgid "_Tabbed Layout" msgstr "" #: ../pan/gui/actions.cc:699 #, fuzzy msgid "Show Group _Pane" msgstr "Grupa" #: ../pan/gui/actions.cc:700 msgid "Show Hea_der Pane" msgstr "" #: ../pan/gui/actions.cc:701 msgid "Show Bod_y Pane" msgstr "" #: ../pan/gui/actions.cc:702 msgid "Show _Toolbar" msgstr "" #: ../pan/gui/actions.cc:703 #, fuzzy msgid "Abbreviate Group Names" msgstr "Grupa" #: ../pan/gui/actions.cc:705 msgid "Match Only _Unread Articles" msgstr "" #: ../pan/gui/actions.cc:705 msgid "Match Only Unread Articles" msgstr "" #: ../pan/gui/actions.cc:706 msgid "Match Only _Cached Articles" msgstr "" #: ../pan/gui/actions.cc:706 #, fuzzy msgid "Match Only Cached Articles" msgstr "Roghnaigh Comhad" #: ../pan/gui/actions.cc:707 msgid "Match Only _Complete Articles" msgstr "" #: ../pan/gui/actions.cc:707 msgid "Match Only Complete Articles" msgstr "" #: ../pan/gui/actions.cc:708 msgid "Match Only _My Articles" msgstr "" #: ../pan/gui/actions.cc:708 #, fuzzy msgid "Match Only My Articles" msgstr "Roghnaigh Comhad" #: ../pan/gui/actions.cc:709 msgid "Match Only _Watched Articles" msgstr "" #: ../pan/gui/actions.cc:709 msgid "Match Only Watched Articles" msgstr "" #: ../pan/gui/actions.cc:711 msgid "Match Scores of 9999 (_Watched)" msgstr "" #: ../pan/gui/actions.cc:712 msgid "Match Scores of 5000...9998 (_High)" msgstr "" #: ../pan/gui/actions.cc:713 msgid "Match Scores of 1...4999 (Me_dium)" msgstr "" #: ../pan/gui/actions.cc:714 msgid "Match Scores of 0 (_Normal)" msgstr "" #: ../pan/gui/actions.cc:715 msgid "Match Scores of -9998...-1 (_Low)" msgstr "" #: ../pan/gui/actions.cc:716 msgid "Match Scores of -9999 (_Ignored)" msgstr "" #: ../pan/gui/actions.cc:718 msgid "Enable/Disable All _Rules" msgstr "" #: ../pan/gui/actions.cc:744 #, fuzzy msgid "Show Matching _Articles" msgstr "Pan: Cuardaigh Scéal" #: ../pan/gui/actions.cc:745 msgid "Show Matching Articles' _Threads" msgstr "" #: ../pan/gui/actions.cc:746 msgid "Show Matching Articles' _Subthreads" msgstr "" #: ../pan/gui/body-pane.cc:1011 #, fuzzy, c-format msgid "Unnamed File" msgstr "Comhad _Siniú:" #: ../pan/gui/body-pane.cc:1092 ../pan/gui/gui.cc:1864 #: ../pan/gui/header-pane.cc:1188 ../pan/gui/header-pane.cc:1617 #: ../pan/gui/post-ui.cc:2496 ../pan/gui/prefs-ui.cc:833 #: ../pan/gui/score-add-ui.cc:139 msgid "Subject" msgstr "Abair" #: ../pan/gui/body-pane.cc:1094 ../pan/gui/gui.cc:1864 #, fuzzy msgid "From" msgstr "Do:" #: ../pan/gui/body-pane.cc:1096 ../pan/gui/gui.cc:1865 #: ../pan/gui/header-pane.cc:1695 ../pan/gui/log-ui.cc:305 #: ../pan/gui/prefs-ui.cc:829 msgid "Date" msgstr "Data" #: ../pan/gui/body-pane.cc:1103 msgid "Newsgroups" msgstr "Grupaí Nuachtain" #: ../pan/gui/body-pane.cc:1108 msgid "Followup-To" msgstr "" #: ../pan/gui/body-pane.cc:1118 msgid "Reply-To" msgstr "" #: ../pan/gui/body-pane.cc:1160 msgid " from " msgstr "" #: ../pan/gui/body-pane.cc:1162 msgid " at " msgstr "" #: ../pan/gui/body-pane.cc:1264 #, c-format msgid "" "This is a PGP-Signed message.\n" "\n" "Signer : %s ('%s')\n" "Valid until : %s\n" "Created on : %s" msgstr "" #: ../pan/gui/body-pane.cc:1269 msgid "always" msgstr "" #: ../pan/gui/body-pane.cc:1485 msgid "Copy _URL" msgstr "" #: ../pan/gui/body-pane.cc:1680 #, fuzzy msgid "Save attachment as ...." msgstr "/_Scéalaí" #: ../pan/gui/body-pane.cc:1683 msgid "Save all attachments" msgstr "" #. add a toolbar for attachments #: ../pan/gui/body-pane.cc:1753 msgid "Attachments" msgstr "" #. update the titlebar #: ../pan/gui/dl-headers-ui.cc:106 ../pan/gui/gui.cc:973 #: ../pan/gui/gui.cc:1592 ../pan/gui/gui.cc:1893 #: ../pan/gui/score-add-ui.cc:602 msgid "Pan" msgstr "" #: ../pan/gui/dl-headers-ui.cc:112 #, fuzzy, c-format msgid "%d Group" msgid_plural "%d Groups" msgstr[0] "Grupaí" msgstr[1] "Grupaí" #: ../pan/gui/dl-headers-ui.cc:135 msgid "Get the last N _days' headers: " msgstr "" #: ../pan/gui/dl-headers-ui.cc:143 msgid "Get _new headers" msgstr "" #: ../pan/gui/dl-headers-ui.cc:147 msgid "Get _all headers" msgstr "" #: ../pan/gui/dl-headers-ui.cc:151 msgid "Get the _latest N headers: " msgstr "" #: ../pan/gui/e-action-combo-box.c:388 ../pan/gui/prefs-ui.cc:826 #, fuzzy msgid "Action" msgstr "Logann" #: ../pan/gui/e-action-combo-box.c:389 msgid "A GtkRadioAction" msgstr "" #: ../pan/gui/e-charset.c:51 ../pan/gui/task-pane.cc:518 msgid "Unknown" msgstr "Gain Aithne" #: ../pan/gui/e-charset.c:52 msgid "Arabic" msgstr "" #: ../pan/gui/e-charset.c:53 msgid "Baltic" msgstr "Baltach" #: ../pan/gui/e-charset.c:54 msgid "Central European" msgstr "Lár-Eorpach" #: ../pan/gui/e-charset.c:55 #, fuzzy msgid "Chinese" msgstr "Líní" #: ../pan/gui/e-charset.c:56 msgid "Cyrillic" msgstr "Cirilleach" #: ../pan/gui/e-charset.c:57 msgid "Greek" msgstr "Gréigis" #: ../pan/gui/e-charset.c:58 msgid "Hebrew" msgstr "" #: ../pan/gui/e-charset.c:59 msgid "Japanese" msgstr "Seapáinis" #: ../pan/gui/e-charset.c:60 msgid "Korean" msgstr "Cóiréis" #: ../pan/gui/e-charset.c:61 msgid "Thai" msgstr "" #: ../pan/gui/e-charset.c:62 msgid "Turkish" msgstr "Tuircis" #: ../pan/gui/e-charset.c:63 #, fuzzy msgid "Unicode" msgstr "Unicód, UTF-8" #: ../pan/gui/e-charset.c:64 #, fuzzy msgid "Western European" msgstr "Lár-Eorpach" #: ../pan/gui/e-charset.c:65 #, fuzzy msgid "Western European, New" msgstr "Iartharach, Nua" #: ../pan/gui/e-charset.c:84 ../pan/gui/e-charset.c:85 #: ../pan/gui/e-charset.c:86 #, fuzzy msgid "Traditional" msgstr "Sínis Traidisiúnta" #: ../pan/gui/e-charset.c:87 ../pan/gui/e-charset.c:88 #: ../pan/gui/e-charset.c:89 ../pan/gui/e-charset.c:90 #, fuzzy msgid "Simplified" msgstr "Sínis Simplithe" #: ../pan/gui/e-charset.c:93 #, fuzzy msgid "Ukrainian" msgstr "Cirilleach, Úcráinis" #: ../pan/gui/e-charset.c:96 msgid "Visual" msgstr "" #: ../pan/gui/e-charset-combo-box.c:93 ../pan/gui/gui.cc:2058 #: ../pan/gui/post-ui.cc:519 ../pan/gui/prefs-ui.cc:737 msgid "Character Encoding" msgstr "" #: ../pan/gui/e-charset-combo-box.c:117 msgid "Enter the character set to use" msgstr "" #: ../pan/gui/e-charset-combo-box.c:336 msgid "Other..." msgstr "" #: ../pan/gui/e-cte-dialog.c:78 msgid "Default encoding" msgstr "" #: ../pan/gui/e-cte-dialog.c:80 #, fuzzy msgid "7Bit Encoding" msgstr "Grupa" #: ../pan/gui/e-cte-dialog.c:82 #, fuzzy msgid "8Bit Encoding" msgstr "Grupa" #: ../pan/gui/e-cte-dialog.c:84 #, fuzzy msgid "BASE64 Encoding" msgstr "Grupa" #: ../pan/gui/e-cte-dialog.c:86 #, fuzzy msgid "Quoted-Printable Encoding" msgstr "Grupa" #: ../pan/gui/group-pane.cc:500 #, fuzzy msgid "Group" msgstr "Grupaí" #: ../pan/gui/group-pane.cc:501 #, fuzzy msgid "Group (regex)" msgstr "Roghnachais Grupa" #: ../pan/gui/group-pane.cc:913 msgid "Subscribed Groups" msgstr "" #: ../pan/gui/group-pane.cc:914 #, fuzzy msgid "Other Groups" msgstr "Grupaí Nua" #: ../pan/gui/group-pane.cc:954 ../pan/gui/score-view-ui.cc:157 #, fuzzy msgid "Name" msgstr "_Ainm:" #: ../pan/gui/group-prefs-dialog.cc:156 #, fuzzy msgid "No Profiles defined in Edit|Posting Profiles." msgstr "/_Eagar/_Roghnachais..." #: ../pan/gui/group-prefs-dialog.cc:231 #, fuzzy msgid "Pan: Group Preferences" msgstr "Roghnachais Pan" #: ../pan/gui/group-prefs-dialog.cc:247 #, fuzzy, c-format msgid "Properties for Groups" msgstr "Roghnachais mar \"%s\"" #: ../pan/gui/group-prefs-dialog.cc:249 #, fuzzy, c-format msgid "Properties for %s" msgstr "Roghnachais mar \"%s\"" #: ../pan/gui/group-prefs-dialog.cc:257 msgid "Character _encoding:" msgstr "" #: ../pan/gui/group-prefs-dialog.cc:259 msgid "Directory for Saving Attachments" msgstr "" #: ../pan/gui/group-prefs-dialog.cc:269 msgid "Directory for _saving attachments:" msgstr "" #: ../pan/gui/group-prefs-dialog.cc:271 #, fuzzy msgid "Posting _profile:" msgstr "Pan: Cuardaigh Scéal" #: ../pan/gui/group-prefs-dialog.cc:277 msgid "Spellchecker _language:" msgstr "" #: ../pan/gui/gui.cc:273 msgid "Open the Task Manager" msgstr "" #: ../pan/gui/gui.cc:301 msgid "Open the Event Log" msgstr "" #: ../pan/gui/gui.cc:561 msgid "Save NZB's Files" msgstr "" #: ../pan/gui/gui.cc:588 msgid "Untitled.nzb" msgstr "" #: ../pan/gui/gui.cc:590 #, fuzzy msgid "Save NZB File as..." msgstr "/_Scéalaí" #: ../pan/gui/gui.cc:757 msgid "Import NZB Files" msgstr "" #: ../pan/gui/gui.cc:765 ../pan/gui/post-ui.cc:3197 #, fuzzy msgid "NZB Files" msgstr "/_Comhad" #: ../pan/gui/gui.cc:770 #, fuzzy msgid "All Files" msgstr "/_Comhad" #: ../pan/gui/gui.cc:1258 msgid "Unable to supersede article." msgstr "" #: ../pan/gui/gui.cc:1259 ../pan/gui/gui.cc:1333 msgid "The article doesn't match any of your posting profiles." msgstr "" #: ../pan/gui/gui.cc:1306 msgid "Revise and send this article to replace the old one." msgstr "" #: ../pan/gui/gui.cc:1307 ../pan/gui/gui.cc:1370 msgid "Be patient! It will take time for your changes to take effect." msgstr "" #: ../pan/gui/gui.cc:1332 msgid "Unable to cancel article." msgstr "" #: ../pan/gui/gui.cc:1369 msgid "Send this article to ask your server to cancel your other one." msgstr "" #: ../pan/gui/gui.cc:1387 msgid "You marked some articles for deletion" msgstr "" #: ../pan/gui/gui.cc:1388 msgid "Are you sure you want to delete them?" msgstr "" #: ../pan/gui/gui.cc:1413 #, fuzzy msgid "Always trust" msgstr "Eagarthóir" #: ../pan/gui/gui.cc:1416 msgid "Do you want to accept it permanently (deletable afterwards) ?" msgstr "" #: ../pan/gui/gui.cc:1595 #, fuzzy msgid "Copyright \\u00A9 2002-2012 Charles Kerr and others" msgstr "Cóipcheart © 1999,2000 the Pan Development Group" #: ../pan/gui/gui.cc:1600 msgid "translator-credits" msgstr "" #: ../pan/gui/gui.cc:1709 #, fuzzy msgid "_1. Group Pane" msgstr "Grupa" #: ../pan/gui/gui.cc:1710 msgid "_2. Header Pane" msgstr "" #: ../pan/gui/gui.cc:1711 msgid "_3. Body Pane" msgstr "" #: ../pan/gui/gui.cc:1800 ../pan/gui/gui.cc:1815 msgid " Bytes" msgstr "" #: ../pan/gui/gui.cc:1803 msgid " KB" msgstr "" #: ../pan/gui/gui.cc:1806 msgid " MB" msgstr "" #: ../pan/gui/gui.cc:1809 msgid " GB" msgstr "" #: ../pan/gui/gui.cc:1812 msgid " TB" msgstr "" #: ../pan/gui/gui.cc:1844 #, c-format msgid "This article is complete with %d part." msgid_plural "This article has all %d parts." msgstr[0] "" msgstr[1] "" #: ../pan/gui/gui.cc:1846 #, c-format msgid "This article is missing %d part." msgid_plural "This article is missing %d of its %d parts:" msgstr[0] "" msgstr[1] "" #: ../pan/gui/gui.cc:1865 ../pan/gui/header-pane.cc:1190 #, fuzzy msgid "Message-ID" msgstr "ID-na-_Scéal:" #: ../pan/gui/gui.cc:1866 ../pan/gui/header-pane.cc:1665 #: ../pan/gui/prefs-ui.cc:830 msgid "Lines" msgstr "Líní" #: ../pan/gui/gui.cc:1866 msgid "Size" msgstr "" #: ../pan/gui/gui.cc:1867 ../pan/gui/header-pane.cc:1680 #: ../pan/gui/prefs-ui.cc:828 msgid "Bytes" msgstr "" #: ../pan/gui/gui.cc:1917 msgid "" "Error loading iconv library. Some Charsets in the GUI will not be able to be " "encoded." msgstr "" #: ../pan/gui/gui.cc:2059 #, fuzzy msgid "Body Pane Encoding" msgstr "Grupa" #: ../pan/gui/gui.cc:2090 ../pan/gui/task-pane.cc:569 #, c-format msgid "Offline" msgstr "" #: ../pan/gui/gui.cc:2094 #, c-format msgid "Closing %d connection" msgid_plural "Closing %d connections" msgstr[0] "" msgstr[1] "" #: ../pan/gui/gui.cc:2096 ../pan/gui/gui.cc:2126 #, c-format msgid "No Connections" msgstr "" #: ../pan/gui/gui.cc:2100 #, c-format msgid "Connecting" msgstr "" #: ../pan/gui/gui.cc:2113 #, c-format msgid "%s: %d idle, %d active @ %.1f KiBps" msgstr "" #: ../pan/gui/gui.cc:2169 #, c-format msgid "No Tasks" msgstr "Gan Tascanna" #: ../pan/gui/gui.cc:2171 ../pan/gui/prefs-ui.cc:1047 #, fuzzy msgid "Tasks" msgstr "Gan Tascanna" #: ../pan/gui/gui.cc:2182 ../pan/gui/task-pane.cc:435 #, c-format msgid "%lu tasks, %s, %.1f KiBps, ETA %d:%02d:%02d" msgstr "" #: ../pan/gui/gui.cc:2234 msgid "" "Pan is now offline. Please see \"File|Event Log\" and correct the problem, " "then use \"File|Work Online\" to continue." msgstr "" #: ../pan/gui/header-pane.cc:1186 msgid "Subject or Author" msgstr "" #: ../pan/gui/header-pane.cc:1187 msgid "Sub or Auth (regex)" msgstr "" #: ../pan/gui/header-pane.cc:1189 ../pan/gui/header-pane.cc:1649 #: ../pan/gui/prefs-ui.cc:827 ../pan/gui/score-add-ui.cc:140 msgid "Author" msgstr "Údar" #: ../pan/gui/header-pane.cc:1634 ../pan/gui/prefs-ui.cc:831 msgid "Score" msgstr "Scór" #: ../pan/gui/log-ui.cc:103 msgid "Save Event List" msgstr "" #: ../pan/gui/log-ui.cc:256 #, fuzzy msgid "Pan: Events" msgstr "Pan: Freastal" #: ../pan/gui/log-ui.cc:315 msgid "Message" msgstr "Scéal" #: ../pan/gui/pan.cc:330 msgid "Maximize" msgstr "" #: ../pan/gui/pan.cc:383 msgid "An Error has occurred!" msgstr "" #: ../pan/gui/pan.cc:397 #, fuzzy msgid "New Articles!" msgstr "Roghnaigh Comhad" #: ../pan/gui/pan.cc:398 msgid "" "There are new\n" "articles available." msgstr "" #: ../pan/gui/pan.cc:465 msgid "Toggle on/offline" msgstr "" #: ../pan/gui/pan.cc:513 msgid "" "Thank you for trying Pan!\n" " \n" "To start newsreading, first Add a Server." msgstr "" #: ../pan/gui/pan.cc:595 msgid "" "General Options\n" " -h, --help Show this usage page.\n" " --verbose Be verbose (in non-GUI mode).\n" "\n" "URL Options\n" " --no-gui On news:message-id, dump the article to stdout.\n" "\n" "NZB Batch Options\n" " --nzb file1 file2 ... Process nzb files without launching all of Pan.\n" " -o path, --output=path Path to save attachments listed in the nzb " "files.\n" " --no-gui Only show console output, not the download " "queue.\n" msgstr "" #: ../pan/gui/pan.cc:867 msgid "Error: --no-gui used without nzb files or news:message-id." msgstr "" #: ../pan/gui/pan.cc:871 #, c-format msgid "Pan %s started" msgstr "" #: ../pan/gui/pan.cc:890 msgid "Please configure Pan's news servers before using it as an nzb client." msgstr "" #: ../pan/gui/pan.cc:1009 msgid "Pan notification" msgstr "" #: ../pan/gui/post-ui.cc:186 #, c-format msgid "Upload Queue : %ld Tasks, %ld KB (~ %.2f MB) total ." msgstr "" #: ../pan/gui/post-ui.cc:286 #, fuzzy, c-format msgid "Error setting custom spellchecker: %s" msgstr "Earraidh ag leámh comhad \"%s\": %s" #: ../pan/gui/post-ui.cc:291 ../pan/gui/post-ui.cc:300 #, c-format msgid "Error setting spellchecker: %s" msgstr "" #: ../pan/gui/post-ui.cc:419 #, fuzzy msgid "_Profile" msgstr "_Scéal" #: ../pan/gui/post-ui.cc:420 #, fuzzy msgid "Set Editor" msgstr "Eagarthóir" #: ../pan/gui/post-ui.cc:422 #, fuzzy msgid "_Send Article" msgstr "_Scéal" #: ../pan/gui/post-ui.cc:422 #, fuzzy msgid "Send Article Now" msgstr "_Scéal" #: ../pan/gui/post-ui.cc:423 #, fuzzy msgid "_Send and Save Articles to NZB" msgstr "Pan: Sábháil Mar" #: ../pan/gui/post-ui.cc:423 #, fuzzy msgid "Send and Save Articles to NZB" msgstr "Pan: Sábháil Mar" #: ../pan/gui/post-ui.cc:424 msgid "Set Character _Encoding..." msgstr "" #: ../pan/gui/post-ui.cc:425 msgid "Set Content _Transfer Encoding..." msgstr "" #: ../pan/gui/post-ui.cc:426 #, fuzzy msgid "Sa_ve Draft" msgstr "/_Léamh Scéal" #: ../pan/gui/post-ui.cc:426 msgid "Save as a Draft for Future Posting" msgstr "" #: ../pan/gui/post-ui.cc:427 #, fuzzy msgid "_Open Draft..." msgstr "/_Léamh Scéal" #: ../pan/gui/post-ui.cc:427 #, fuzzy msgid "Open an Article Draft" msgstr "/_Léamh Scéal" #: ../pan/gui/post-ui.cc:432 msgid "_Rot13" msgstr "" #: ../pan/gui/post-ui.cc:432 msgid "Rot13 Selected Text" msgstr "" #: ../pan/gui/post-ui.cc:433 #, fuzzy msgid "Run _Editor" msgstr "Eagarthóir" #: ../pan/gui/post-ui.cc:433 #, fuzzy msgid "Run Editor" msgstr "Eagarthóir" #: ../pan/gui/post-ui.cc:435 msgid "Add _Files to Queue" msgstr "" #: ../pan/gui/post-ui.cc:435 msgid "Add Files to Queue" msgstr "" #: ../pan/gui/post-ui.cc:450 ../pan/gui/post-ui.cc:451 #, fuzzy msgid "Remove from Queue" msgstr "Freastalaí Nua" #: ../pan/gui/post-ui.cc:455 ../pan/gui/post-ui.cc:456 #, fuzzy msgid "Clear List" msgstr "Cruthaigh Fillteán Nua" #: ../pan/gui/post-ui.cc:460 ../pan/gui/post-ui.cc:461 #, fuzzy msgid "Select Needed Parts" msgstr "Roghnaigh Chlófhoireann" #: ../pan/gui/post-ui.cc:465 ../pan/gui/post-ui.cc:466 #: ../pan/gui/task-pane.cc:636 ../pan/gui/task-pane.cc:637 msgid "Move Up" msgstr "" #: ../pan/gui/post-ui.cc:470 ../pan/gui/post-ui.cc:471 #: ../pan/gui/task-pane.cc:641 ../pan/gui/task-pane.cc:642 msgid "Move Down" msgstr "" #: ../pan/gui/post-ui.cc:475 ../pan/gui/post-ui.cc:476 msgid "Move to Top" msgstr "" #: ../pan/gui/post-ui.cc:480 ../pan/gui/post-ui.cc:481 msgid "Move to Bottom" msgstr "" #: ../pan/gui/post-ui.cc:488 #, fuzzy msgid "_Wrap Text" msgstr "Sábháil _Teacs" #: ../pan/gui/post-ui.cc:488 #, fuzzy msgid "Wrap Text" msgstr "Sábháil _Teacs" #: ../pan/gui/post-ui.cc:489 #, fuzzy msgid "Always Run Editor" msgstr "Eagarthóir" #: ../pan/gui/post-ui.cc:490 msgid "Remember Character Encoding for this Group" msgstr "" #: ../pan/gui/post-ui.cc:491 msgid "Thread Attached Replies" msgstr "" #: ../pan/gui/post-ui.cc:492 msgid "PGP-Encrypt the Message" msgstr "" #: ../pan/gui/post-ui.cc:493 msgid "PGP-Sign the Message" msgstr "" #: ../pan/gui/post-ui.cc:494 msgid "Check _Spelling" msgstr "" #: ../pan/gui/post-ui.cc:520 msgid "New Article's Encoding:" msgstr "" #: ../pan/gui/post-ui.cc:530 #, fuzzy msgid "Content Transfer Encoding" msgstr "Grupa" #: ../pan/gui/post-ui.cc:531 msgid "New Article's Content Transfer Encoding:" msgstr "" #: ../pan/gui/post-ui.cc:711 msgid "Your changes will be lost!" msgstr "" #: ../pan/gui/post-ui.cc:712 msgid "Close this window and lose your changes?" msgstr "" #: ../pan/gui/post-ui.cc:757 ../pan/gui/post-ui.cc:796 msgid "There were problems with this post." msgstr "" #: ../pan/gui/post-ui.cc:759 ../pan/gui/post-ui.cc:798 #: ../pan/gui/post-ui.cc:861 msgid "Go Back" msgstr "" #: ../pan/gui/post-ui.cc:761 msgid "Post Anyway" msgstr "" #. Prompt the user #: ../pan/gui/post-ui.cc:790 #, c-format msgid "" "Message uses characters not specified in charset '%s' - possibly use '%s' " msgstr "" #: ../pan/gui/post-ui.cc:813 msgid "Go _Online" msgstr "" #: ../pan/gui/post-ui.cc:860 msgid "The file queue is empty, so no files can be saved." msgstr "" #: ../pan/gui/post-ui.cc:1019 msgid "" "No posting server is set for this posting profile.\n" "Please edit the profile via Edit|Manage Posting Profiles." msgstr "" #: ../pan/gui/post-ui.cc:1054 msgid "Pan is Offline." msgstr "" #: ../pan/gui/post-ui.cc:1055 msgid "Go online to post the article?" msgstr "" #: ../pan/gui/post-ui.cc:1102 #, c-format msgid "" "Error signing/encrypting your message. Perhaps you misspelled your email-" "address (%s) ?" msgstr "" #: ../pan/gui/post-ui.cc:1267 #, fuzzy msgid "Error opening temporary file" msgstr "Earrraidh ag oscailt comhad \"%s\": %s" #: ../pan/gui/post-ui.cc:1279 #, c-format msgid "Error writing article to temporary file: %s" msgstr "" #: ../pan/gui/post-ui.cc:1298 #, c-format msgid "Error parsing \"external editor\" command line: %s (Command was: %s)" msgstr "" #: ../pan/gui/post-ui.cc:1339 #, c-format msgid "Error starting external editor: %s" msgstr "" #: ../pan/gui/post-ui.cc:1395 #, fuzzy msgid "Open Draft Article" msgstr "/_Léamh Scéal" #: ../pan/gui/post-ui.cc:1606 #, fuzzy msgid "Save Draft Article" msgstr "/_Léamh Scéal" #: ../pan/gui/post-ui.cc:1803 #, c-format msgid "Couldn't parse signature command \"%s\": %s" msgstr "" #: ../pan/gui/post-ui.cc:1839 msgid "Couldn't convert signature to UTF-8." msgstr "" #: ../pan/gui/post-ui.cc:2334 #, fuzzy msgid "F_rom" msgstr "Do:" #: ../pan/gui/post-ui.cc:2352 #, fuzzy msgid "_Subject" msgstr "_Abair:" #: ../pan/gui/post-ui.cc:2365 #, fuzzy msgid "_Newsgroups" msgstr "/Grupaí _Nuachtain" #: ../pan/gui/post-ui.cc:2379 msgid "Mail _To" msgstr "" #: ../pan/gui/post-ui.cc:2481 msgid "Delete from Queue" msgstr "" #: ../pan/gui/post-ui.cc:2494 msgid "No." msgstr "" #: ../pan/gui/post-ui.cc:2498 ../pan/gui/post-ui.cc:2592 #: ../pan/gui/post-ui.cc:2633 msgid "Filename" msgstr "Ainmchomad" #: ../pan/gui/post-ui.cc:2500 msgid "Size (kB)" msgstr "" #: ../pan/gui/post-ui.cc:2600 msgid "The current filename" msgstr "" #: ../pan/gui/post-ui.cc:2604 #, fuzzy msgid "Subject Line" msgstr "Abair" #: ../pan/gui/post-ui.cc:2612 msgid "The current Subject Line" msgstr "" #: ../pan/gui/post-ui.cc:2626 msgid "No. " msgstr "" #: ../pan/gui/post-ui.cc:2630 msgid "Enable/Disable" msgstr "" #: ../pan/gui/post-ui.cc:2664 msgid "Follo_wup-To" msgstr "" #. i18n: "poster" is a key used by many newsreaders. probably safest to keep this key in english. #: ../pan/gui/post-ui.cc:2673 msgid "" "The newsgroups where replies to your message should go. This is only needed " "if it differs from the \"Newsgroups\" header.\n" "\n" "To direct all replies to your email address, use \"Followup-To: poster\"" msgstr "" #: ../pan/gui/post-ui.cc:2679 msgid "_Reply-To" msgstr "" #: ../pan/gui/post-ui.cc:2687 msgid "" "The email account where mail replies to your posted message should go. This " "is only needed if it differs from the \"From\" header." msgstr "" #: ../pan/gui/post-ui.cc:2693 msgid "_Custom Headers" msgstr "" #: ../pan/gui/post-ui.cc:2717 msgid "Add \"_User-Agent\" header" msgstr "" #: ../pan/gui/post-ui.cc:2724 #, fuzzy msgid "Add \"Message-_Id\" header" msgstr "ID-na-Scéal" #: ../pan/gui/post-ui.cc:2855 #, fuzzy msgid "Select Parts" msgstr "Roghnaigh Chlófhoireann" #: ../pan/gui/post-ui.cc:2866 msgid "_Parts" msgstr "" #: ../pan/gui/post-ui.cc:3022 #, fuzzy msgid "Post Article" msgstr "_Scéal" #: ../pan/gui/post-ui.cc:3043 #, fuzzy msgid "_Message" msgstr "Scéal" #: ../pan/gui/post-ui.cc:3044 msgid "More _Headers" msgstr "" #: ../pan/gui/post-ui.cc:3045 #, fuzzy msgid "File _Queue" msgstr "/_Comhad/_Ealu" #: ../pan/gui/post-ui.cc:3077 ../pan/gui/profiles-dialog.cc:478 #, no-c-format msgid "On %d, %n wrote:" msgstr "" #: ../pan/gui/post-ui.cc:3106 msgid "Add files to queue" msgstr "" #: ../pan/gui/post-ui.cc:3184 msgid "Save Upload Queue as NZB File" msgstr "" #: ../pan/gui/prefs.cc:343 #, c-format msgid "Couldn't parse %s color \"%s\"" msgstr "" #: ../pan/gui/prefs-ui.cc:120 msgid "Grab Key" msgstr "" #: ../pan/gui/prefs-ui.cc:126 #, c-format msgid "" "Press the combination of the keys\n" "you want to use for \"%s\"." msgstr "" #: ../pan/gui/prefs-ui.cc:166 msgid "Edit Hotkey" msgstr "" #: ../pan/gui/prefs-ui.cc:228 msgid "Error: Shortkey is invalid!" msgstr "" #: ../pan/gui/prefs-ui.cc:244 msgid "Error: Shortkey already exists!" msgstr "" #: ../pan/gui/prefs-ui.cc:535 msgid "Show only icons" msgstr "" #: ../pan/gui/prefs-ui.cc:536 msgid "Show only text" msgstr "" #: ../pan/gui/prefs-ui.cc:537 msgid "Show icons and text" msgstr "" #: ../pan/gui/prefs-ui.cc:576 #, fuzzy msgid "Use GNOME Preferences" msgstr "Roghnachais Pan" #: ../pan/gui/prefs-ui.cc:577 #, fuzzy msgid "Use KDE Preferences" msgstr "Roghnachais Pan" #: ../pan/gui/prefs-ui.cc:578 #, fuzzy msgid "Use OS X Preferences" msgstr "Roghnachais Pan" #: ../pan/gui/prefs-ui.cc:579 #, fuzzy msgid "Use Windows Preferences" msgstr "Roghnachais Pan" #: ../pan/gui/prefs-ui.cc:580 msgid "Custom Command:" msgstr "" #: ../pan/gui/prefs-ui.cc:632 msgid "Disabled" msgstr "" #: ../pan/gui/prefs-ui.cc:633 msgid "Only new (Score == 0)" msgstr "" #: ../pan/gui/prefs-ui.cc:634 msgid "9999 or more" msgstr "" #: ../pan/gui/prefs-ui.cc:635 msgid "5000 to 9998" msgstr "" #: ../pan/gui/prefs-ui.cc:636 msgid "1 to 4999" msgstr "" #: ../pan/gui/prefs-ui.cc:637 msgid "-9998 to -1" msgstr "" #: ../pan/gui/prefs-ui.cc:638 msgid "-9999 or less" msgstr "" #: ../pan/gui/prefs-ui.cc:702 #, c-format msgid "Select default global charset. Current setting : %s ." msgstr "" #: ../pan/gui/prefs-ui.cc:738 msgid "Global Charset Settings" msgstr "" #: ../pan/gui/prefs-ui.cc:832 ../pan/gui/task-pane.cc:770 #, fuzzy msgid "State" msgstr "Stadas" #: ../pan/gui/prefs-ui.cc:866 msgid "Enabled" msgstr "" #: ../pan/gui/prefs-ui.cc:870 #, fuzzy msgid "Column Name" msgstr "Grupa" #: ../pan/gui/prefs-ui.cc:908 #, fuzzy msgid "Pan: Preferences" msgstr "Roghnachais Pan" #: ../pan/gui/prefs-ui.cc:923 msgid "Mouse" msgstr "Luchóg" #: ../pan/gui/prefs-ui.cc:925 msgid "Single-click activates, rather than selects, _groups" msgstr "" #: ../pan/gui/prefs-ui.cc:927 msgid "Single-click activates, rather than selects, _articles" msgstr "" #: ../pan/gui/prefs-ui.cc:930 #, fuzzy msgid "Groups" msgstr "Grupaí" #: ../pan/gui/prefs-ui.cc:932 msgid "Get new headers in subscribed groups on _startup" msgstr "" #: ../pan/gui/prefs-ui.cc:934 msgid "Get new headers when _entering group" msgstr "" #: ../pan/gui/prefs-ui.cc:936 msgid "Mark entire group _read when leaving group" msgstr "" #: ../pan/gui/prefs-ui.cc:938 msgid "Mark entire group read before getting _new headers" msgstr "" #: ../pan/gui/prefs-ui.cc:940 msgid "E_xpand all threads when entering group" msgstr "" #: ../pan/gui/prefs-ui.cc:945 #, fuzzy msgid "Articles" msgstr "/_Scéalaí" #: ../pan/gui/prefs-ui.cc:947 msgid "Space selects next article rather than next unread" msgstr "" #: ../pan/gui/prefs-ui.cc:949 msgid "Expand threads upon selection" msgstr "" #: ../pan/gui/prefs-ui.cc:951 msgid "Always show article deletion confirmation dialog" msgstr "" #: ../pan/gui/prefs-ui.cc:953 msgid "Smooth scrolling" msgstr "" #: ../pan/gui/prefs-ui.cc:958 #, fuzzy msgid "Article Cache" msgstr "_Scéal" #: ../pan/gui/prefs-ui.cc:959 msgid "Clear article cache on shutdown" msgstr "" #: ../pan/gui/prefs-ui.cc:962 msgid "Size of article cache (in MiB) :" msgstr "" #: ../pan/gui/prefs-ui.cc:967 #, fuzzy msgid "File extension for Cached Articles: " msgstr "Roghnaigh Comhad" #: ../pan/gui/prefs-ui.cc:972 msgid "Tabs" msgstr "" #: ../pan/gui/prefs-ui.cc:977 msgid "_Behavior" msgstr "" #: ../pan/gui/prefs-ui.cc:977 msgid "Behavior" msgstr "" #: ../pan/gui/prefs-ui.cc:983 msgid "Language Settings" msgstr "" #. systray and notify popup #: ../pan/gui/prefs-ui.cc:992 msgid "System Tray Behavior" msgstr "" #: ../pan/gui/prefs-ui.cc:994 msgid "Hide to system tray" msgstr "" #: ../pan/gui/prefs-ui.cc:996 msgid "Start Pan minimized" msgstr "" #: ../pan/gui/prefs-ui.cc:999 msgid "Show notifications" msgstr "" #. allow multiple instances (seperate, not communicating with dbus) #: ../pan/gui/prefs-ui.cc:1004 msgid "Startup Behavior" msgstr "" #: ../pan/gui/prefs-ui.cc:1006 msgid "Allow multiple instances of Pan" msgstr "" #: ../pan/gui/prefs-ui.cc:1011 #, fuzzy msgid "Autosave Article Draft" msgstr "/_Léamh Scéal" #: ../pan/gui/prefs-ui.cc:1013 #, fuzzy msgid "Minutes to autosave the current Article Draft: " msgstr "/_Léamh Scéal" #: ../pan/gui/prefs-ui.cc:1018 #, fuzzy msgid "Autosave Articles" msgstr "/_Scéalaí" #: ../pan/gui/prefs-ui.cc:1020 msgid "Minutes to autosave newsrc files: " msgstr "" #: ../pan/gui/prefs-ui.cc:1026 msgid "_Miscellaneous" msgstr "" #: ../pan/gui/prefs-ui.cc:1026 msgid "Miscellaneous" msgstr "" #: ../pan/gui/prefs-ui.cc:1031 msgid "Pane Layout" msgstr "" #: ../pan/gui/prefs-ui.cc:1050 msgid "1=Groups, 2=Headers, 3=Body" msgstr "" #: ../pan/gui/prefs-ui.cc:1052 msgid "1=Groups, 2=Body, 3=Headers" msgstr "" #: ../pan/gui/prefs-ui.cc:1054 msgid "1=Headers, 2=Groups, 3=Body" msgstr "" #: ../pan/gui/prefs-ui.cc:1056 msgid "1=Headers, 2=Body, 3=Groups" msgstr "" #: ../pan/gui/prefs-ui.cc:1058 msgid "1=Body, 2=Groups, 3=Headers" msgstr "" #: ../pan/gui/prefs-ui.cc:1060 msgid "1=Body, 2=Headers, 3=Groups" msgstr "" #: ../pan/gui/prefs-ui.cc:1064 msgid "Layout" msgstr "" #: ../pan/gui/prefs-ui.cc:1069 msgid "Header Pane Columns" msgstr "" #: ../pan/gui/prefs-ui.cc:1073 msgid "_Headers" msgstr "" #: ../pan/gui/prefs-ui.cc:1073 msgid "Headers" msgstr "" #: ../pan/gui/prefs-ui.cc:1079 msgid "" "This menu lets you configure Pan to take certain actions on your behalf " "automatically, based on a post's score." msgstr "" #: ../pan/gui/prefs-ui.cc:1082 msgid "_Delete posts scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1084 msgid "Mark posts _read scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1086 msgid "_Cache posts scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1088 msgid "Download _attachments of posts scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1091 #, fuzzy msgid "Actions" msgstr "Logann" #: ../pan/gui/prefs-ui.cc:1096 ../pan/gui/prefs-ui.cc:1117 #, fuzzy msgid "Fonts" msgstr "Chlófhoireanna" #: ../pan/gui/prefs-ui.cc:1098 msgid "Use custom font in Group Pane:" msgstr "" #: ../pan/gui/prefs-ui.cc:1103 msgid "Use custom font in Header Pane:" msgstr "" #: ../pan/gui/prefs-ui.cc:1108 msgid "Use custom font in Body Pane:" msgstr "" #: ../pan/gui/prefs-ui.cc:1113 msgid "Monospace font:" msgstr "" #: ../pan/gui/prefs-ui.cc:1117 msgid "_Fonts" msgstr "" #: ../pan/gui/prefs-ui.cc:1122 msgid "Header Pane" msgstr "" #: ../pan/gui/prefs-ui.cc:1125 ../pan/gui/prefs-ui.cc:1131 #: ../pan/gui/prefs-ui.cc:1137 ../pan/gui/prefs-ui.cc:1143 #: ../pan/gui/prefs-ui.cc:1149 ../pan/gui/prefs-ui.cc:1155 #, fuzzy msgid "Text:" msgstr "Teacs:" #: ../pan/gui/prefs-ui.cc:1127 ../pan/gui/prefs-ui.cc:1133 #: ../pan/gui/prefs-ui.cc:1139 ../pan/gui/prefs-ui.cc:1145 #: ../pan/gui/prefs-ui.cc:1151 ../pan/gui/prefs-ui.cc:1157 msgid "Background:" msgstr "Dúlra:" #: ../pan/gui/prefs-ui.cc:1129 msgid "Scores of 9999 or more:" msgstr "" #: ../pan/gui/prefs-ui.cc:1135 msgid "Scores from 5000 to 9998:" msgstr "" #: ../pan/gui/prefs-ui.cc:1141 msgid "Scores from 1 to 4999:" msgstr "" #: ../pan/gui/prefs-ui.cc:1147 msgid "Scores from -9998 to -1:" msgstr "" #: ../pan/gui/prefs-ui.cc:1153 msgid "Scores of -9999 or less:" msgstr "" #: ../pan/gui/prefs-ui.cc:1159 msgid "Read collapsed thread:" msgstr "" #: ../pan/gui/prefs-ui.cc:1161 #, fuzzy msgid "Body Pane" msgstr "Grupa" #: ../pan/gui/prefs-ui.cc:1167 #, fuzzy msgid "Quoted text:" msgstr "Teacs:" #: ../pan/gui/prefs-ui.cc:1168 #, fuzzy msgid "URL:" msgstr "URLaí:" #: ../pan/gui/prefs-ui.cc:1169 #, fuzzy msgid "Signature:" msgstr "Comhad _Siniú:" #: ../pan/gui/prefs-ui.cc:1171 #, fuzzy msgid "_Colors" msgstr "Dathanna" #: ../pan/gui/prefs-ui.cc:1171 #, fuzzy msgid "Colors" msgstr "Dathanna" #: ../pan/gui/prefs-ui.cc:1176 #, fuzzy msgid "Preferred Applications" msgstr "Logann" #: ../pan/gui/prefs-ui.cc:1180 #, fuzzy msgid "_Web browser:" msgstr "Grupaí Nua" #: ../pan/gui/prefs-ui.cc:1183 #, fuzzy msgid "_Mail reader:" msgstr "_Ainmchomad:" #: ../pan/gui/prefs-ui.cc:1185 #, fuzzy msgid "_Text editor:" msgstr "Eagarthóir" #: ../pan/gui/prefs-ui.cc:1187 #, fuzzy msgid "_Applications" msgstr "Logann" #: ../pan/gui/prefs-ui.cc:1187 #, fuzzy msgid "Applications" msgstr "Logann" #: ../pan/gui/prefs-ui.cc:1192 ../pan/gui/task-pane.cc:512 msgid "Encoding" msgstr "" #: ../pan/gui/prefs-ui.cc:1196 msgid "Default bytes per file (for encoder): " msgstr "" #: ../pan/gui/prefs-ui.cc:1201 #, fuzzy msgid "_Upload" msgstr "Logann" #: ../pan/gui/prefs-ui.cc:1201 msgid "Upload" msgstr "" #: ../pan/gui/prefs-ui.cc:1219 msgid "_Hotkeys" msgstr "" #: ../pan/gui/prefs-ui.cc:1219 msgid "Hotkeys" msgstr "" #: ../pan/gui/profiles-dialog.cc:83 msgid "Please choose your Email Address according to your PGP key's user id." msgstr "" #: ../pan/gui/profiles-dialog.cc:131 msgid "Posting Profile" msgstr "" #: ../pan/gui/profiles-dialog.cc:143 msgid "Profile Information" msgstr "" #: ../pan/gui/profiles-dialog.cc:147 msgid "_Profile Name:" msgstr "" #: ../pan/gui/profiles-dialog.cc:150 msgid "Required Information" msgstr "" #: ../pan/gui/profiles-dialog.cc:154 msgid "_Full Name:" msgstr "Ainm _Fhada:" #: ../pan/gui/profiles-dialog.cc:158 msgid "" "Your Email Address.\n" "Note that this has to match your PGP Signature's Address\n" "if you want to PGP-Sign or Encrypt your messages correctly." msgstr "" #: ../pan/gui/profiles-dialog.cc:162 msgid "_Email Address:" msgstr "Seoladh _Rphost:" #: ../pan/gui/profiles-dialog.cc:164 #, fuzzy msgid "_Post Articles via:" msgstr "_Scéal" #: ../pan/gui/profiles-dialog.cc:167 #, fuzzy msgid "Signature" msgstr "Comhad _Siniú:" #: ../pan/gui/profiles-dialog.cc:170 #, fuzzy msgid "_Use a Signature" msgstr "Comhad _Siniú:" #: ../pan/gui/profiles-dialog.cc:174 #, fuzzy msgid "Signature File" msgstr "Comhad _Siniú:" #: ../pan/gui/profiles-dialog.cc:184 #, fuzzy msgid "Text File" msgstr "Roghnaigh Comhad" #: ../pan/gui/profiles-dialog.cc:186 #, fuzzy msgid "Text" msgstr "Teacs:" #: ../pan/gui/profiles-dialog.cc:188 msgid "Command" msgstr "" #: ../pan/gui/profiles-dialog.cc:191 #, fuzzy msgid "PGP Signature" msgstr "Comhad _Siniú:" #: ../pan/gui/profiles-dialog.cc:196 #, fuzzy msgid "Signature Type : " msgstr "Comhad _Siniú:" #: ../pan/gui/profiles-dialog.cc:223 msgid "X-Face (Avatar)" msgstr "" #: ../pan/gui/profiles-dialog.cc:226 msgid "" "You can add an avatar icon to your articles with a unique X-Face code. \n" "Add the code without the trailing \"X-Face:\" \n" " if it was generated by a helper program (for example http://www.dairiki.org/" "xface/xface.php)." msgstr "" #: ../pan/gui/profiles-dialog.cc:229 msgid "_X-Face:" msgstr "" #: ../pan/gui/profiles-dialog.cc:231 msgid "Optional Information" msgstr "" #: ../pan/gui/profiles-dialog.cc:236 msgid "" "When posting to Usenet, your article's Message-ID contains a domain name. \n" "You can set a custom domain name here, or leave it blank to let Pan use the " "domain name from your email address." msgstr "" #: ../pan/gui/profiles-dialog.cc:239 msgid "Message-ID _Domain Name:" msgstr "" #: ../pan/gui/profiles-dialog.cc:243 #, c-format msgid "" "%i for Message-ID\n" "%a for Author and Address\n" "%n for Author name\n" "%d for Date" msgstr "" #: ../pan/gui/profiles-dialog.cc:244 msgid "_Attribution:" msgstr "" #: ../pan/gui/profiles-dialog.cc:268 msgid "" "Extra headers to be included in your posts, such as\n" "Reply-To: \"Your Name\"\n" "Organization: Your Organization\n" msgstr "" #: ../pan/gui/profiles-dialog.cc:278 msgid "E_xtra Headers:" msgstr "" #: ../pan/gui/profiles-dialog.cc:323 msgid "Invalid email address." msgstr "" #: ../pan/gui/profiles-dialog.cc:324 msgid "Please use an address of the form joe@somewhere.org" msgstr "" #: ../pan/gui/profiles-dialog.cc:479 msgid "New Profile" msgstr "" #: ../pan/gui/profiles-dialog.cc:525 msgid "Posting Profiles" msgstr "" #: ../pan/gui/profiles-dialog.cc:541 #, fuzzy msgid "Profiles" msgstr "Comhaid" #: ../pan/gui/save-attach-ui.cc:77 ../pan/gui/save-ui.cc:77 #, c-format msgid "" "%g - group as one directory (alt.binaries.pictures.trains)\n" "%G - group as nested directory (/alt/binaries/pictures/trains)\n" "%s - subject line excerpt\n" "%S - subject line\n" " \n" "\"/home/user/News/Pan/%g\" becomes\n" "\"/home/user/News/Pan/alt.binaries.pictures.trains\", and\n" "\"/home/user/News/Pan/%G\" becomes\n" "\"/home/user/News/Pan/alt/binaries/pictures/trains\"," msgstr "" #: ../pan/gui/save-attach-ui.cc:223 ../pan/gui/save-ui.cc:242 msgid "Add to the queue sorted by date posted" msgstr "" #: ../pan/gui/save-attach-ui.cc:224 ../pan/gui/save-ui.cc:243 msgid "Add to the front of the queue" msgstr "" #: ../pan/gui/save-attach-ui.cc:225 ../pan/gui/save-ui.cc:244 msgid "Add to the back of the queue" msgstr "" #: ../pan/gui/save-attach-ui.cc:257 #, fuzzy msgid "Pan: Save Attachments" msgstr "Pan: Sábháil Mar" #: ../pan/gui/save-attach-ui.cc:282 ../pan/gui/save-attach-ui.cc:300 #: ../pan/gui/save-ui.cc:296 ../pan/gui/save-ui.cc:314 #, fuzzy msgid "_Location:" msgstr "Logann" #: ../pan/gui/save-attach-ui.cc:286 ../pan/gui/save-ui.cc:300 #, fuzzy msgid "Save Articles" msgstr "/_Scéalaí" #: ../pan/gui/save-attach-ui.cc:303 ../pan/gui/save-ui.cc:317 #, c-format msgid "_Group's path: %s" msgstr "" #: ../pan/gui/save-attach-ui.cc:314 ../pan/gui/save-ui.cc:332 msgid "_Priority:" msgstr "" #: ../pan/gui/save-ui.cc:233 msgid "Save attachments" msgstr "" #: ../pan/gui/save-ui.cc:234 #, fuzzy msgid "Save text" msgstr "Sábháil _Teacs" #: ../pan/gui/save-ui.cc:235 msgid "Save attachments and text" msgstr "" #: ../pan/gui/save-ui.cc:271 #, fuzzy msgid "Pan: Save Articles" msgstr "Pan: Sábháil Mar" #: ../pan/gui/save-ui.cc:328 #, fuzzy msgid "_Action:" msgstr "Logann" #: ../pan/gui/score-add-ui.cc:89 msgid "is more than" msgstr "" #: ../pan/gui/score-add-ui.cc:90 msgid "is at most" msgstr "" #: ../pan/gui/score-add-ui.cc:112 msgid "increase the article's score by" msgstr "" #: ../pan/gui/score-add-ui.cc:113 msgid "decrease the article's score by" msgstr "" #: ../pan/gui/score-add-ui.cc:114 msgid "set the article's score to" msgstr "" #: ../pan/gui/score-add-ui.cc:115 msgid "watch the article (set its score to 9999)" msgstr "" #: ../pan/gui/score-add-ui.cc:116 msgid "ignore the article (set its score to -9999)" msgstr "" #: ../pan/gui/score-add-ui.cc:141 #, fuzzy msgid "References" msgstr "Roghnachais" #: ../pan/gui/score-add-ui.cc:142 msgid "Line Count" msgstr "" #: ../pan/gui/score-add-ui.cc:143 msgid "Byte Count" msgstr "" #: ../pan/gui/score-add-ui.cc:144 msgid "Crosspost Group Count" msgstr "" #: ../pan/gui/score-add-ui.cc:145 msgid "Age (in days)" msgstr "" #: ../pan/gui/score-add-ui.cc:167 msgid "for the next month" msgstr "" #: ../pan/gui/score-add-ui.cc:168 msgid "for the next six months" msgstr "" #: ../pan/gui/score-add-ui.cc:169 #, fuzzy msgid "forever" msgstr "Freastalaí" #: ../pan/gui/score-add-ui.cc:194 #, fuzzy msgid "contains" msgstr "Chlófhoireanna" #: ../pan/gui/score-add-ui.cc:195 msgid "doesn't contain" msgstr "" #: ../pan/gui/score-add-ui.cc:196 msgid "is" msgstr "" #: ../pan/gui/score-add-ui.cc:197 msgid "isn't" msgstr "" #: ../pan/gui/score-add-ui.cc:198 msgid "starts with" msgstr "" #: ../pan/gui/score-add-ui.cc:199 msgid "ends with" msgstr "" #: ../pan/gui/score-add-ui.cc:200 msgid "matches regex" msgstr "" #: ../pan/gui/score-add-ui.cc:481 msgid "Another rule already sets this article's score." msgstr "" #: ../pan/gui/score-add-ui.cc:482 msgid "You may want to go back or delete the old rule." msgstr "" #: ../pan/gui/score-add-ui.cc:553 #, fuzzy msgid "Add and Re_score" msgstr "Freastalaí Post" #: ../pan/gui/score-add-ui.cc:604 ../pan/gui/score-add-ui.cc:624 #, fuzzy msgid "New Scoring Rule" msgstr "Scór Nua" #: ../pan/gui/score-add-ui.cc:635 msgid "If the group name" msgstr "" #: ../pan/gui/score-add-ui.cc:642 #, fuzzy msgid "And the article's" msgstr "_Dealaigh scéal" #: ../pan/gui/score-view-ui.cc:56 msgid "Close and Re_score" msgstr "" #: ../pan/gui/score-view-ui.cc:154 #, c-format msgid "File %s, Lines %d - %d" msgstr "" #: ../pan/gui/score-view-ui.cc:182 msgid "Pan: Article's Scores" msgstr "" #: ../pan/gui/score-view-ui.cc:208 #, fuzzy msgid "Add" msgstr "suim" #: ../pan/gui/score-view-ui.cc:213 msgid "New Score" msgstr "Scór Nua" #: ../pan/gui/score-view-ui.cc:218 msgid "Criteria" msgstr "" #: ../pan/gui/score-view-ui.cc:241 #, fuzzy msgid "Add a New Scoring Rule" msgstr "Scór Nua" #: ../pan/gui/score-view-ui.cc:248 msgid "Remove the Selected Scoring Rule" msgstr "" #: ../pan/gui/server-ui.cc:221 msgid "Please specify the server's address." msgstr "" #: ../pan/gui/server-ui.cc:264 msgid "Import SSL certificate (PEM format) from File" msgstr "" #. create the dialog #: ../pan/gui/server-ui.cc:290 ../pan/gui/server-ui.cc:869 #, fuzzy msgid "Add a Server" msgstr "Freastalaí Post" #: ../pan/gui/server-ui.cc:290 ../pan/gui/server-ui.cc:875 msgid "Edit a Server's Settings" msgstr "" #: ../pan/gui/server-ui.cc:310 #, fuzzy msgid "Location" msgstr "Logann" #: ../pan/gui/server-ui.cc:314 msgid "The news server's actual address, e.g. \"news.mynewsserver.com\"" msgstr "" #: ../pan/gui/server-ui.cc:315 msgid "_Address:" msgstr "_Seoladh:" #: ../pan/gui/server-ui.cc:319 msgid "The news server's port number. Typically 119." msgstr "" #: ../pan/gui/server-ui.cc:320 msgid "Por_t:" msgstr "Por_t:" #: ../pan/gui/server-ui.cc:323 msgid "Login (if Required)" msgstr "" #: ../pan/gui/server-ui.cc:327 msgid "_Username:" msgstr "Ainm _Úsáideoir" #: ../pan/gui/server-ui.cc:328 msgid "" "The username to give the server when asked. If your server doesn't require " "authentication, you can leave this blank." msgstr "" #: ../pan/gui/server-ui.cc:332 msgid "_Password:" msgstr "_Pasfhocal:" #: ../pan/gui/server-ui.cc:333 msgid "" "The password to give the server when asked. If your server doesn't require " "authentication, you can leave this blank." msgstr "" #: ../pan/gui/server-ui.cc:336 msgid "Settings" msgstr "" #: ../pan/gui/server-ui.cc:343 msgid "Connection _Limit:" msgstr "" #: ../pan/gui/server-ui.cc:347 msgid "After Two Weeks" msgstr "" #: ../pan/gui/server-ui.cc:348 msgid "After One Month" msgstr "" #: ../pan/gui/server-ui.cc:349 msgid "After Two Months" msgstr "" #: ../pan/gui/server-ui.cc:350 msgid "After Three Months" msgstr "" #: ../pan/gui/server-ui.cc:351 msgid "After Six Months" msgstr "" #: ../pan/gui/server-ui.cc:352 msgid "Never Expire Old Articles" msgstr "" #: ../pan/gui/server-ui.cc:366 msgid "E_xpire Old Articles:" msgstr "" #: ../pan/gui/server-ui.cc:370 #, fuzzy msgid "Primary" msgstr "Tosaíocht" #: ../pan/gui/server-ui.cc:371 msgid "Fallback" msgstr "" #: ../pan/gui/server-ui.cc:385 #, fuzzy msgid "Server Rank:" msgstr "Freastalaí" #: ../pan/gui/server-ui.cc:389 msgid "" "Fallback servers are used for articles that can't be found on the " "primaries. One common approach is to use free servers as primaries and " "subscription servers as fallbacks." msgstr "" #: ../pan/gui/server-ui.cc:396 msgid "Security" msgstr "" #: ../pan/gui/server-ui.cc:401 msgid "Use Plaintext (Unsecured) Connections" msgstr "" #: ../pan/gui/server-ui.cc:402 msgid "Use Secure SSL Connections" msgstr "" #: ../pan/gui/server-ui.cc:418 msgid "TLS (SSL) Options:" msgstr "" #: ../pan/gui/server-ui.cc:423 msgid "" "You can set the option for using/disabling secure SSL/TLS connections here. " "If you enable SSL/TLS, your data is encrypted and secure. It is encouraged " "to use this option for privacy reasons." msgstr "" #: ../pan/gui/server-ui.cc:428 msgid "Always trust this server's certificate" msgstr "" #: ../pan/gui/server-ui.cc:602 #, c-format msgid "Really delete \"%s\"?" msgstr "" #: ../pan/gui/server-ui.cc:691 msgid "No information available." msgstr "" #: ../pan/gui/server-ui.cc:697 #, c-format msgid "Server Certificate for '%s'" msgstr "" #: ../pan/gui/server-ui.cc:795 #, c-format msgid "Really delete certificate for \"%s\"?" msgstr "" #. dialog #: ../pan/gui/server-ui.cc:822 ../pan/gui/server-ui.cc:843 #: ../pan/gui/server-ui.cc:941 msgid "Servers" msgstr "Freastalaí" #: ../pan/gui/server-ui.cc:882 #, fuzzy msgid "Remove a Server" msgstr "Freastalaí Nua" #. dialog #: ../pan/gui/server-ui.cc:915 msgid "SSL Certificates" msgstr "" #: ../pan/gui/server-ui.cc:936 msgid "Certificates" msgstr "" #: ../pan/gui/server-ui.cc:967 msgid "Import Certificate" msgstr "" #: ../pan/gui/server-ui.cc:973 msgid "Inspect Certificate" msgstr "" #: ../pan/gui/server-ui.cc:980 #, fuzzy msgid "Remove Certificate" msgstr "Freastalaí Nua" #: ../pan/gui/task-pane.cc:143 #, c-format msgid "" "\n" "Upload\n" "\n" "Subject: \"%s\"\n" "From: %s\n" "Groups: %s\n" "Sourcefile: %s\n" msgstr "" #: ../pan/gui/task-pane.cc:155 #, c-format msgid "" "\n" "Download\n" "\n" "Subject: \"%s\"\n" "From: %s\n" "Date: %s\n" "Groups: %s\n" "Save Path: %s\n" msgstr "" #: ../pan/gui/task-pane.cc:157 #, fuzzy msgid "unknown" msgstr "Gain Aithne" #: ../pan/gui/task-pane.cc:263 msgid "Choose new destination for selected Tasks" msgstr "" #: ../pan/gui/task-pane.cc:417 #, c-format msgid "Pan: Tasks (%d Queued, %d Running, %d Stopped)" msgstr "" #: ../pan/gui/task-pane.cc:419 #, c-format msgid "Pan: Tasks (%d Queued, %d Running)" msgstr "" #: ../pan/gui/task-pane.cc:421 #, fuzzy, c-format msgid "Pan: Tasks" msgstr "Tascanna" #: ../pan/gui/task-pane.cc:446 #, fuzzy, c-format msgid "%lu selected, %s" msgstr "(%u tóghtha)" #: ../pan/gui/task-pane.cc:510 msgid "Running" msgstr "" #: ../pan/gui/task-pane.cc:511 msgid "Decoding" msgstr "" #: ../pan/gui/task-pane.cc:513 msgid "Queued for Decode" msgstr "" #: ../pan/gui/task-pane.cc:514 msgid "Queued for Encode" msgstr "" #: ../pan/gui/task-pane.cc:515 msgid "Queued" msgstr "" #: ../pan/gui/task-pane.cc:516 msgid "Stopped" msgstr "" #: ../pan/gui/task-pane.cc:517 msgid "Removing" msgstr "" #: ../pan/gui/task-pane.cc:546 #, fuzzy, c-format msgid "%d%% Done" msgstr "% Rinneadh" #: ../pan/gui/task-pane.cc:552 #, fuzzy, c-format msgid "%d:%02d:%02d Remaining (%d @ %lu KiB/s)" msgstr "%d:%02d:%02d (%.2f KB/s)" #: ../pan/gui/task-pane.cc:646 ../pan/gui/task-pane.cc:647 msgid "Move To Top" msgstr "" #: ../pan/gui/task-pane.cc:651 ../pan/gui/task-pane.cc:652 msgid "Move To Bottom" msgstr "" #: ../pan/gui/task-pane.cc:656 ../pan/gui/task-pane.cc:657 #, fuzzy msgid "Stop Task" msgstr "Gan Tascanna" #: ../pan/gui/task-pane.cc:661 ../pan/gui/task-pane.cc:662 #, fuzzy msgid "Delete Task" msgstr "Gan Tascanna" #: ../pan/gui/task-pane.cc:666 ../pan/gui/task-pane.cc:667 msgid "Restart Task" msgstr "" #: ../pan/gui/task-pane.cc:671 ../pan/gui/task-pane.cc:672 msgid "Change Download Destination" msgstr "" #: ../pan/gui/task-pane.cc:729 msgid "_Online" msgstr "" #: ../pan/gui/task-pane.cc:746 msgid "Restart Tasks" msgstr "" #: ../pan/gui/task-pane.cc:748 #, fuzzy msgid "Stop Tasks" msgstr "Gan Tascanna" #: ../pan/gui/task-pane.cc:750 #, fuzzy msgid "Delete Tasks" msgstr "Gan Tascanna" #: ../pan/gui/url.cc:123 #, c-format msgid "Error starting URL: %s (Command was: %s)" msgstr "" #: ../pan/tasks/decoder.cc:115 #, fuzzy, c-format msgid "Couldn't save file \"%s\": %s" msgstr "Earraidh ag leámh comhad \"%s\": %s" #: ../pan/tasks/decoder.cc:137 ../pan/tasks/encoder.cc:136 msgid "Error initializing uulib" msgstr "" #: ../pan/tasks/decoder.cc:152 ../pan/tasks/socket-impl-gio.cc:352 #: ../pan/tasks/socket-impl-openssl.cc:634 #, fuzzy, c-format msgid "Error reading from %s: %s" msgstr "Earraidh ag leámh comhad \"%s\": %s" #: ../pan/tasks/decoder.cc:192 #, c-format msgid "Saved \"%s\"" msgstr "Sábháilte \"%s\"" #: ../pan/tasks/decoder.cc:199 #, fuzzy, c-format msgid "" "Error saving \"%s\":\n" "%s." msgstr "Earraidh ag leámh comhad \"%s\": %s" #: ../pan/tasks/decoder.cc:314 ../pan/tasks/task-article.cc:350 #, fuzzy, c-format msgid "Decoding %s" msgstr "Ag Leámh" #: ../pan/tasks/encoder.cc:102 ../pan/tasks/encoder.cc:155 #, fuzzy, c-format msgid "Error loading %s from cache." msgstr "Earraidh ag leámh comhad \"%s\": %s" #: ../pan/tasks/encoder.cc:177 #, fuzzy, c-format msgid "Error encoding %s: %s" msgstr "Earraidh ag leámh comhad \"%s\": %s" #: ../pan/tasks/encoder.cc:269 #, fuzzy, c-format msgid "Encoding %s" msgstr "Ag Leámh" #: ../pan/tasks/nntp.cc:126 #, c-format msgid "%s requires a username, but none is set." msgstr "" #: ../pan/tasks/nntp.cc:139 #, c-format msgid "%s requires a password, but none is set." msgstr "" #: ../pan/tasks/nntp.cc:205 #, c-format msgid "Sending \"%s\" to %s returned an error: %s" msgstr "" #: ../pan/tasks/nntp.cc:228 #, c-format msgid "Sending \"%s\" to %s returned an unrecognized response: \"%s\"" msgstr "" #: ../pan/tasks/nntp-pool.cc:222 #, c-format msgid "Unable to connect to \"%s\"" msgstr "" #: ../pan/tasks/socket-impl-gio.cc:173 ../pan/tasks/socket-impl-gio.cc:211 #: ../pan/tasks/socket-impl-openssl.cc:214 #: ../pan/tasks/socket-impl-openssl.cc:252 #, fuzzy, c-format msgid "Error connecting to \"%s\"" msgstr "Earraidh ag leámh comhad \"%s\": %s" #: ../pan/tasks/socket-impl-gio.cc:351 ../pan/tasks/socket-impl-openssl.cc:633 #, fuzzy msgid "Unknown Error" msgstr "Gain Aithne" #: ../pan/tasks/task-article.cc:61 ../pan/tasks/task-article.cc:156 #: ../pan/tasks/task-article.cc:159 #, fuzzy, c-format msgid "Saving %s" msgstr "Ag sábháil \"%s\"" #: ../pan/tasks/task-article.cc:63 #, fuzzy, c-format msgid "Reading %s" msgstr "Ag Leámh" #: ../pan/tasks/task-article.cc:322 #, c-format msgid "Article \"%s\" is incomplete -- the news server(s) don't have part %s" msgstr "" #: ../pan/tasks/task-groups.cc:40 #, fuzzy, c-format msgid "Getting group list from \"%s\"" msgstr "Ag lódáil grupa \"%s\"" #: ../pan/tasks/task-groups.cc:122 #, c-format msgid "Fetched %lu Groups" msgstr "" #: ../pan/tasks/task-post.cc:35 #, c-format msgid "Posting \"%s\"" msgstr "" #: ../pan/tasks/task-post.cc:76 #, fuzzy, c-format msgid "Posting of \"%s\" failed: %s" msgstr "Pan: Cuardaigh Scéal" #: ../pan/tasks/task-post.cc:81 #, c-format msgid "Posting of \"%s\" succesful: %s" msgstr "" #: ../pan/tasks/task-upload.cc:51 #, fuzzy, c-format msgid "Uploading %s" msgstr "Ag Leámh" #: ../pan/tasks/task-upload.cc:249 #, c-format msgid "Uploading %s - Part %d of %d" msgstr "" #: ../pan/tasks/task-upload.cc:251 #, c-format msgid "Uploading Message body with Subject \"%s\"" msgstr "" #: ../pan/tasks/task-upload.cc:308 #, c-format msgid "Posting of File %s (Part %d of %d) failed: No Posts allowed by server." msgstr "" #: ../pan/tasks/task-upload.cc:316 #, fuzzy, c-format msgid "Posting of File %s (Part %d of %d) failed: %s" msgstr "Pan: Cuardaigh Scéal" #: ../pan/tasks/task-upload.cc:326 ../pan/tasks/task-upload.cc:333 #, c-format msgid "Posting of file %s (Part %d of %d) succesful: %s" msgstr "" #: ../pan/tasks/task-upload.cc:343 #, fuzzy, c-format msgid "Posting of file %s succesful: %s" msgstr "Pan: Cuardaigh Scéal" #: ../pan/tasks/task-upload.cc:347 #, c-format msgid "" "Posting of file %s not completely successful: Check the log (right-click on " "list item) !" msgstr "" #: ../pan/tasks/task-upload.cc:364 #, c-format msgid "" "Posting of file %s not successful: Check the log (right-click on list item) !" msgstr "" #: ../pan/tasks/task-xover.cc:79 #, fuzzy, c-format msgid "Getting all headers for \"%s\"" msgstr "Ag lódáil grupa \"%s\"" #: ../pan/tasks/task-xover.cc:81 #, fuzzy, c-format msgid "Getting new headers for \"%s\"" msgstr "Ag lódáil grupa \"%s\"" #. SAMPLE #: ../pan/tasks/task-xover.cc:83 #, c-format msgid "Sampling headers for \"%s\"" msgstr "" #: ../pan/tasks/task-xover.cc:369 #, c-format msgid "%s (%lu parts, %lu articles)" msgstr "" #: ../pan/tasks/task-xoverinfo.cc:78 #, fuzzy, c-format msgid "Getting header counts for \"%s\"" msgstr "Ag lódáil grupa \"%s\"" #: ../pan/usenet-utils/filter-info.cc:163 msgid "article doesn't have attachments" msgstr "" #: ../pan/usenet-utils/filter-info.cc:167 msgid "the article has attachments" msgstr "" #: ../pan/usenet-utils/filter-info.cc:171 msgid "the article isn't cached locally" msgstr "" #: ../pan/usenet-utils/filter-info.cc:175 msgid "the article is cached locally" msgstr "" #: ../pan/usenet-utils/filter-info.cc:179 msgid "the article wasn't posted by you" msgstr "" #: ../pan/usenet-utils/filter-info.cc:183 msgid "the article was posted by you" msgstr "" #: ../pan/usenet-utils/filter-info.cc:187 msgid "the article has been read" msgstr "" #: ../pan/usenet-utils/filter-info.cc:191 msgid "the article hasn't been read" msgstr "" #: ../pan/usenet-utils/filter-info.cc:195 #, c-format msgid "the article is less than %ld bytes long" msgstr "" #: ../pan/usenet-utils/filter-info.cc:200 #, c-format msgid "the article is at least %ld bytes long" msgstr "" #: ../pan/usenet-utils/filter-info.cc:205 #, c-format msgid "the article is less than %ld lines long" msgstr "" #: ../pan/usenet-utils/filter-info.cc:210 #, c-format msgid "the article is at least %ld lines long" msgstr "" #: ../pan/usenet-utils/filter-info.cc:215 #, c-format msgid "the article is less than %ld days old" msgstr "" #: ../pan/usenet-utils/filter-info.cc:220 #, c-format msgid "the article is at least %ld days old" msgstr "" #: ../pan/usenet-utils/filter-info.cc:225 #, c-format msgid "the article was posted to less than %ld groups" msgstr "" #: ../pan/usenet-utils/filter-info.cc:230 #, c-format msgid "the article was posted to at least %ld groups" msgstr "" #: ../pan/usenet-utils/filter-info.cc:235 #, c-format msgid "the article's score is less than %ld" msgstr "" #: ../pan/usenet-utils/filter-info.cc:240 #, c-format msgid "the article's score is %ld or higher" msgstr "" #: ../pan/usenet-utils/filter-info.cc:249 #: ../pan/usenet-utils/filter-info.cc:259 #, c-format msgid "%s doesn't contain \"%s\"" msgstr "" #: ../pan/usenet-utils/filter-info.cc:250 #: ../pan/usenet-utils/filter-info.cc:260 #, c-format msgid "%s isn't \"%s\"" msgstr "" #: ../pan/usenet-utils/filter-info.cc:251 #: ../pan/usenet-utils/filter-info.cc:261 #, c-format msgid "%s doesn't begin with \"%s\"" msgstr "" #: ../pan/usenet-utils/filter-info.cc:252 #: ../pan/usenet-utils/filter-info.cc:262 #, c-format msgid "%s doesn't end with \"%s\"" msgstr "" #: ../pan/usenet-utils/filter-info.cc:253 #: ../pan/usenet-utils/filter-info.cc:263 #, c-format msgid "%s doesn't match the regex \"%s\"" msgstr "" #: ../pan/usenet-utils/filter-info.cc:275 #, fuzzy, c-format msgid "%s contains \"%s\"" msgstr "Chlófhoireanna" #: ../pan/usenet-utils/filter-info.cc:276 #, c-format msgid "%s is \"%s\"" msgstr "" #: ../pan/usenet-utils/filter-info.cc:277 #, c-format msgid "%s begins with \"%s\"" msgstr "" #: ../pan/usenet-utils/filter-info.cc:278 #, c-format msgid "%s ends with \"%s\"" msgstr "" #: ../pan/usenet-utils/filter-info.cc:279 #, c-format msgid "%s matches the regex \"%s\"" msgstr "" #: ../pan/usenet-utils/filter-info.cc:285 msgid "Any of these tests fail:" msgstr "" #: ../pan/usenet-utils/filter-info.cc:292 msgid "All of these tests pass:" msgstr "" #: ../pan/usenet-utils/filter-info.cc:299 msgid "None of these tests pass:" msgstr "" #: ../pan/usenet-utils/filter-info.cc:306 msgid "Any of these tests pass:" msgstr "" #: ../pan/usenet-utils/gnksa.cc:878 #, c-format msgid "No email address provided; generating message-id with domain \"%s\"" msgstr "" #: ../pan/usenet-utils/message-check.cc:124 msgid "Warning: Reply seems to be top-posted." msgstr "" #: ../pan/usenet-utils/message-check.cc:145 msgid "Warning: The signature marker should be \"-- \", not \"--\"." msgstr "" #: ../pan/usenet-utils/message-check.cc:162 msgid "Warning: Signature prefix with no signature." msgstr "" #: ../pan/usenet-utils/message-check.cc:167 msgid "Warning: Signature is more than 4 lines long." msgstr "" #: ../pan/usenet-utils/message-check.cc:172 msgid "Warning: Signature is more than 80 characters wide." msgstr "" #: ../pan/usenet-utils/message-check.cc:198 #, c-format msgid "Warning: %d line is more than 80 characters wide." msgid_plural "Warning: %d lines are more than 80 characters wide." msgstr[0] "" msgstr[1] "" #: ../pan/usenet-utils/message-check.cc:223 msgid "Error: Message is empty." msgstr "" #: ../pan/usenet-utils/message-check.cc:258 msgid "Warning: The message is entirely quoted text!" msgstr "" #: ../pan/usenet-utils/message-check.cc:259 msgid "Warning: The message is mostly quoted text." msgstr "" #: ../pan/usenet-utils/message-check.cc:309 msgid "Error: Message appears to have no new content." msgstr "" #: ../pan/usenet-utils/message-check.cc:344 #: ../pan/usenet-utils/message-check.cc:383 #, c-format msgid "" "Warning: The posting profile's server doesn't carry newsgroup\n" "\t\"%s\".\n" "\tIf the group name is correct, switch profiles in the \"From:\"\n" "\tline or edit the profile with \"Edit|Manage Posting Profiles\"." msgstr "" #: ../pan/usenet-utils/message-check.cc:355 msgid "Warning: Following-Up to too many groups." msgstr "" #: ../pan/usenet-utils/message-check.cc:366 msgid "Error: No Subject specified." msgstr "" #: ../pan/usenet-utils/message-check.cc:395 #, c-format msgid "Warning: Group \"%s\" is read-only." msgstr "" #: ../pan/usenet-utils/message-check.cc:404 msgid "Error: Posting to a very large number of groups." msgstr "" #: ../pan/usenet-utils/message-check.cc:409 msgid "Warning: Posting to a large number of groups." msgstr "" #: ../pan/usenet-utils/message-check.cc:416 msgid "Warning: Crossposting without setting Followup-To header." msgstr "" #: ../pan/usenet-utils/message-check.cc:441 #, fuzzy msgid "Error: Bad email address." msgstr "Seoladh _Rphost:" #: ../pan/usenet-utils/message-check.cc:450 msgid "Warning: Most newsgroups frown upon HTML posts." msgstr "" #: ../pan/usenet-utils/message-check.cc:486 msgid "Error: No Recipients." msgstr "" #: ../pan/usenet-utils/scorefile.cc:304 #, c-format msgid "" "Error reading score in %*.*s, line %d: expected 'Expires: MM/DD/YYYY' or " "'Expires: DD-MM-YYYY'." msgstr "" #: ../pan/usenet-utils/scorefile.cc:307 #, c-format msgid "Expired old score from %*.*s, line %d" msgstr "" #: ../pan/usenet-utils/scorefile.cc:380 #, c-format msgid "Error reading score in %*.*s, line %d: unexpected line." msgstr "" #: ../pan/usenet-utils/scorefile.cc:428 #, c-format msgid "Read %lu scoring rules in %lu sections from \"%s\"" msgstr "" #: ../pan/usenet-utils/ssl-utils.h:199 #, c-format msgid "Error printing the server certificate for '%s'" msgstr "" #: ../pan/usenet-utils/ssl-utils.h:216 #, c-format msgid "" "The current server '%s' sent this security certificate :\n" "\n" msgstr "" #: ../pan/usenet-utils/ssl-utils.h:217 #, c-format msgid "" "Certificate information for server '%s' :\n" "\n" msgstr "" #: ../pan/usenet-utils/ssl-utils.h:219 #, c-format msgid "" "%sIssuer information:\n" "%s\n" "Valid until : %s\n" "\n" "Not valid before : %s\n" "\n" msgstr "" #: ../pan/usenet-utils/text-massager.cc:397 msgid "> [quoted text muted]" msgstr "" #, fuzzy #~ msgid "Error!" #~ msgstr "Earraidh" #, fuzzy #~ msgid "Signer : " #~ msgstr "Comhad _Siniú:" #, fuzzy #~ msgid "_Signature:" #~ msgstr "Comhad _Siniú:" #, fuzzy #~ msgid "Creating directory \"%s\"" #~ msgstr "Earraidh ag oscailt eolaire \"%s\": %s)" #, fuzzy #~ msgid "_Groups" #~ msgstr "Grupaí" #, fuzzy #~ msgid "_Delete Group's Articles" #~ msgstr "/_Dealaigh sceálai san grupa" #, fuzzy #~ msgid "Get a new Group list from the Server" #~ msgstr "Ag lódáil grupa \"%s\"" #, fuzzy #~ msgid "Save Selected Articles..." #~ msgstr "/_Eagar/Roghnaigh gach _Scéalaí" #, fuzzy #~ msgid "Clear Body Pane" #~ msgstr "Grupa" #, fuzzy #~ msgid "Read _Selected Article" #~ msgstr "/_Eagar/Roghnaigh gach _Scéalaí" #, fuzzy #~ msgid "Next Unread Group" #~ msgstr "/_Léamh Scéal" #, fuzzy #~ msgid "Next Group" #~ msgstr "(Níl aon grupa ann)" #, fuzzy #~ msgid "Previous Article" #~ msgstr "_Scéal" #, fuzzy #~ msgid "_Plonk Author" #~ msgstr "_Údar:" #, fuzzy #~ msgid "Reply to Author" #~ msgstr "_Údar:" #, fuzzy #~ msgid "_About..." #~ msgstr "/C_uidiú/_Faoi..." #, fuzzy #~ msgid "Central European (ISO-8859-2)" #~ msgstr "Lár-Eorpach" #, fuzzy #~ msgid "Central European (Windows-1250)" #~ msgstr "Lár-Eorpach" #, fuzzy #~ msgid "Chinese Simplified (gb2312)" #~ msgstr "Sínis Simplithe" #, fuzzy #~ msgid "Chinese Traditional (big5)" #~ msgstr "Sínis Traidisiúnta" #, fuzzy #~ msgid "Cyrillic (KOI8-R)" #~ msgstr "Cirilleach" #, fuzzy #~ msgid "Cyrillic, Ukrainian (KOI8-U)" #~ msgstr "Cirilleach, Úcráinis" #, fuzzy #~ msgid "Western, New (ISO-8859-15)" #~ msgstr "Iartharach, Nua" #, fuzzy #~ msgid "Unicode (UTF-8)" #~ msgstr "Unicód, UTF-8" #, fuzzy #~ msgid "Pan: " #~ msgstr "Pan: Freastal" #, fuzzy #~ msgid "Pan: %s" #~ msgstr "Pan: Freastal" #~ msgid "Tasks: %u/%u" #~ msgstr "Tascanna: %u/%u" #, fuzzy #~ msgid "_Close" #~ msgstr "Dathanna" #, fuzzy #~ msgid "Cut Text" #~ msgstr "Teacs:" #, fuzzy #~ msgid "_Paste" #~ msgstr "_Post" #, fuzzy #~ msgid "Paste Text" #~ msgstr "Sábháil _Teacs" #~ msgid "Western" #~ msgstr "Iartharach" #, fuzzy #~ msgid "Error loading post.ui: \"%s\"" #~ msgstr "Earraidh ag leámh comhad \"%s\": %s" #, fuzzy #~ msgid "Editors" #~ msgstr "Eagarthóir" #, fuzzy #~ msgid "Posting Article" #~ msgstr "Pan: Cuardaigh Scéal" #, fuzzy #~ msgid "Path" #~ msgstr "Údar" #, fuzzy #~ msgid "_Path:" #~ msgstr "_Post" #, fuzzy #~ msgid "Group Management" #~ msgstr "Grupa" #, fuzzy #~ msgid "Pan: New Scoring Rule" #~ msgstr "Scór Nua" #, fuzzy #~ msgid "Then" #~ msgstr "Buíochas" #, fuzzy #~ msgid "For" #~ msgstr "Fillteáin" #, fuzzy #~ msgid "Name: \"%s\"" #~ msgstr "Sábháilte \"%s\"" #, fuzzy #~ msgid "Pan: Add a Server" #~ msgstr "Pan: Eagar Freastal" #, fuzzy #~ msgid "Pan: Edit a Server's Settings" #~ msgstr "Pan: Eagar Freastal" #~ msgid "Pan: Servers" #~ msgstr "Pan: Freastal" #, fuzzy #~ msgid "to %s" #~ msgstr "Faoi %s" #~ msgid "Status" #~ msgstr "Stadas" #, fuzzy #~ msgid "" #~ "Error saving \"%s\":\n" #~ "%s. %s" #~ msgstr "Earraidh ag leámh comhad \"%s\": %s" #, fuzzy #~ msgid "Post New Article" #~ msgstr "_Scéal" #, fuzzy #~ msgid "_Post Article" #~ msgstr "_Scéal" #, fuzzy #~ msgid "_Posting" #~ msgstr "_Post" #, fuzzy #~ msgid "Attach this _Signature:" #~ msgstr "Siniú:" #~ msgid "UNKNOWN" #~ msgstr "GANAITHNE" #, fuzzy #~ msgid "Unread articles:" #~ msgstr "_Dealaigh scéal" #, fuzzy #~ msgid "subject" #~ msgstr "Abair" #~ msgid "Fin_d:" #~ msgstr "_Cuardaigh:" #~ msgid "/---" #~ msgstr "/---" #~ msgid "/_Copy to Folder" #~ msgstr "/_Cóip ó Fillteán" #~ msgid "/_Delete" #~ msgstr "/_Dealaigh" #~ msgid "%d files erased." #~ msgstr "%d comhaid scríoste." #~ msgid "unknown@spammesenseless.com" #~ msgstr "ganaithne@spammesensless.com" #~ msgid "Loading %u of %d groups" #~ msgstr "Ag Lódáiil %u do %d grupaí" #~ msgid "Saved %d of %u groups" #~ msgstr "Sábháilte %d do %u grupaí" #~ msgid "ERROR: invalid address \"%s\"" #~ msgstr "EARRAIDH: seoladh neamhbháili \"%s\"" #~ msgid "Your _Name:" #~ msgstr "Do _Ainm:" #~ msgid "Email _Address:" #~ msgstr "_Seoladh Rphost:" #~ msgid "_Organization:" #~ msgstr "_Eagru:" #~ msgid "default" #~ msgstr "de gnáth" #~ msgid "Pan Setup Wizard" #~ msgstr "Draíodóir Socrú do Pan" #~ msgid "About You" #~ msgstr "Faoi Tusa" #~ msgid "License" #~ msgstr "Ceadúnas" #~ msgid "Authors" #~ msgstr "Údaiir" #~ msgid "Thanks to" #~ msgstr "Buíochas le" #~ msgid "New" #~ msgstr "Nua" #~ msgid "High" #~ msgstr "Ard" #~ msgid "Medium" #~ msgstr "Gnáth" #~ msgid "Zero" #~ msgstr "Náid" #~ msgid "Low" #~ msgstr "Bun" #~ msgid "high" #~ msgstr "ard" #~ msgid "medium" #~ msgstr "gnáth" #~ msgid "zero" #~ msgstr "náid" #~ msgid "low" #~ msgstr "bun" #~ msgid "New Folder Name:" #~ msgstr "Ainm Fillteán Nua:" #~ msgid "/Group _Properties..." #~ msgstr "/_Roghnachas Grupa..." #~ msgid "All Groups" #~ msgstr "Gach Grupaí" #~ msgid "Total" #~ msgstr "Iomlán" #~ msgid "F_ind:" #~ msgstr "_Cuardaigh:" #~ msgid "" #~ msgstr "" #~ msgid "Post" #~ msgstr "Post" #~ msgid "Net" #~ msgstr "Idirlíon" #~ msgid "/_File/---" #~ msgstr "/_Comhad/---" #~ msgid "/_File/_New Folder..." #~ msgstr "/_Comhad/Fillteán _Nua..." #~ msgid "/_File/Delete _Folder..." #~ msgstr "/_Comhad/Dealaigh _Fillteán..." #~ msgid "/_File/_Edit Article in Folder" #~ msgstr "/_Comhad/_Eagar Scéal san Fillteán" #~ msgid "/_File/E_xit" #~ msgstr "/_Comhad/_Dún" #~ msgid "/_Edit/Select all" #~ msgstr "/_Eagar/Roghaigh gach rud" #~ msgid "/_Edit/---" #~ msgstr "/_Eagar/---" #~ msgid "/_Edit/Select all _Groups" #~ msgstr "/_Eagar/Roghnaigh Gach Grupaí" #~ msgid "/_Edit/_Find..." #~ msgstr "/_Eagar/_Cuardaigh..." #~ msgid "/_View/---" #~ msgstr "/_Amharc/---" #~ msgid "/_Servers" #~ msgstr "/_Freastalaí" #~ msgid "/_Servers/---" #~ msgstr "/_Freastalaí/---" #~ msgid "/_Newsgroups/---" #~ msgstr "/Grupaí _Nuachtain/---" #~ msgid "/_Newsgroups/Group _Properties..." #~ msgstr "/_Grupaí Nuachtain/_Roghnachais Grupa..." #~ msgid "/_Newsgroups/Dele_te Group" #~ msgstr "/Grupaí _Nuachtain/_Dealaigh Grupa" #~ msgid "/_Articles/---" #~ msgstr "/_Scéalaí/---" #~ msgid "/_Articles/Cancel..." #~ msgstr "/_Scéalaí/Cealaigh..." #~ msgid "/_Articles/_Delete" #~ msgstr "/_Scéalaí/Dealaigh" #~ msgid "/_Post" #~ msgstr "/_Post" #~ msgid "/_Post/---" #~ msgstr "/_Post/---" #~ msgid "/_Tools" #~ msgstr "/_Uirlisí" #~ msgid "/_Tools/---" #~ msgstr "/Uirlisí/---" #~ msgid "/_Tools/_Edit Scorefile..." #~ msgstr "/_Uirilsí/_Eagar comhad scór..." #~ msgid "/_Help" #~ msgstr "/_Cuidiú" #~ msgid "/_Help/---" #~ msgstr "/C_uidiú/---" #~ msgid "/_File/_Save..." #~ msgstr "/_Comhad/_Sábháil..." #~ msgid "/_File/Clea_r" #~ msgstr "/_Comhad/_Bánaigh" #~ msgid "/_File/_Close" #~ msgstr "/_Comhad/_Dún" #~ msgid "Time" #~ msgstr "Am" #~ msgid "/_File/Save _As..." #~ msgstr "/_Comhad/Sábháil Mar..." #~ msgid "/_Edit/Cu_t" #~ msgstr "_Eagar/Gear_r" #~ msgid "/_Edit/_Copy" #~ msgstr "/_Eagar/_Cóip" #~ msgid "/_Edit/_Paste" #~ msgstr "/_Eagar/_Greamaigh" #~ msgid "Organization" #~ msgstr "Eagrú" #~ msgid "New Message" #~ msgstr "Scéal Nua" #~ msgid "Select Color" #~ msgstr "Roghnaigh Dath" #~ msgid "_Browse..." #~ msgstr "_Brabhsáil..." #~ msgid "Font Family" #~ msgstr "Clann Chlófhoireann" #~ msgid "_1:" #~ msgstr "_1:" #~ msgid "_2:" #~ msgstr "_2:" #~ msgid "_3:" #~ msgstr "_3:" #~ msgid "_Directory:" #~ msgstr "_Eolaire:" #~ msgid "Su_bject:" #~ msgstr "_Abair:" #~ msgid "A_uthor:" #~ msgstr "_Údar:" #~ msgid "_Lines:" #~ msgstr "_Líní:" #~ msgid "\"%s\"" #~ msgstr "\"%s\"" #~ msgid "New %lu of %lu" #~ msgstr "%lu Nua do %lu" #~ msgid "All %lu of %lu" #~ msgstr "Gach %lu do %lu" #~ msgid "Saving `%s'" #~ msgstr "Ag Sábháil '%s'" pan-0.162/po/gl.po000066400000000000000000004526421475412772400137120ustar00rootroot00000000000000# Galician translation of pan. # Copyright (C) 2000 Jesús Bravo Álvarez. # Jesús Bravo Álvarez , 2000. # # Proxecto Trasno - Adaptación do software libre á lingua galega: Se desexas # colaborar connosco, podes atopar máis información en http://trasno.gpul.org # # First Version: 2000-10-08 18:33+0200 # msgid "" msgstr "" "Project-Id-Version: pan\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-04-04 20:58+0200\n" "PO-Revision-Date: 2002-04-29 11:43+0800\n" "Last-Translator: Jesús Bravo Álvarez \n" "Language-Team: Galician \n" "Language: gl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../pan.desktop.in.h:1 #, fuzzy msgid "Pan Newsreader" msgstr "O Lector de Novas Pan" #: ../pan.desktop.in.h:2 #, fuzzy msgid "Read and Post Usenet Articles" msgstr "Mover os Artigos Seleccionados" #: ../pan/data/article-cache.cc:143 ../pan/data/encode-cache.cc:62 #, fuzzy, c-format msgid "Error opening directory: \"%s\": %s" msgstr "Erro decodificando a parte %d de \"%s\": %s" #: ../pan/data/article-cache.cc:231 ../pan/data/article-cache.cc:242 #: ../pan/data-impl/data-io.cc:187 ../pan/data-impl/data-io.cc:211 #: ../pan/gui/post-ui.cc:1639 #, fuzzy, c-format msgid "Unable to save \"%s\" %s" msgstr "Imposible establecer grupo: o servidor dixo %s" #: ../pan/data/article-cache.cc:355 #, fuzzy, c-format msgid "Error opening file \"%s\" %s" msgstr "Erro lendo de `%s'" #: ../pan/data/article-cache.cc:386 ../pan/data-impl/profiles.cc:174 #: ../pan/data-impl/server.cc:436 ../pan/general/file-util.cc:298 #: ../pan/gui/post-ui.cc:609 ../pan/gui/task-pane.cc:691 #, fuzzy, c-format msgid "Error reading file \"%s\": %s" msgstr "Erro lendo de `%s'" #: ../pan/data/cert-store.cc:238 #, fuzzy, c-format msgid "Error opening SSL certificate directory: \"%s\": %s" msgstr "Erro decodificando a parte %d de \"%s\": %s" #: ../pan/data/cert-store.cc:270 #, c-format msgid "Succesfully added %d SSL PEM certificate(s) to Certificate Store." msgstr "" #. load_group_descriptions (*_data_io); #: ../pan/data-impl/data-impl.cc:109 #, c-format msgid "Loaded data backend in %.1f seconds" msgstr "" #: ../pan/data-impl/data-impl.cc:140 msgid "Pan newsreader server passwords" msgstr "" #: ../pan/data-impl/groups.cc:94 #, fuzzy, c-format msgid "Skipping newsrc file for server \"%s\"" msgstr "¿Entrar en modo Conectado para o Servidor \"%s\"?" #: ../pan/data-impl/headers.cc:606 #, fuzzy, c-format msgid "Expired %lu old articles from \"%s\"" msgstr "Baixando %d artigos do grupo %s" #: ../pan/data-impl/headers.cc:613 #, c-format msgid "" "Unsupported data version for %s headers: %d.\n" "Are you running an old version of Pan by accident?" msgstr "" #: ../pan/data-impl/headers.cc:628 #, fuzzy, c-format msgid "Loaded %lu articles for \"%s\" in %.1f seconds (%.0f per second)" msgstr "Gardados %d artigos en %.1f segundos (%.0f art/seg)" #: ../pan/data-impl/headers.cc:857 #, fuzzy, c-format msgid "" "Saved %lu parts, %lu articles in \"%s\" in %.1f seconds (%.0f articles/sec)" msgstr "Gardados %d artigos en %.1f segundos (%.0f art/seg)" #: ../pan/data-impl/headers.cc:1173 #, fuzzy, c-format msgid "Added %lu articles to %s." msgstr "Baixando %d artigos do grupo %s" #: ../pan/data-impl/server.cc:234 #, c-format msgid "There seems to be no Password set for Server %s." msgstr "" #: ../pan/data-impl/server.cc:238 msgid "The Gnome keyring denied access to the Passwords." msgstr "" #: ../pan/data-impl/xover.cc:239 #, fuzzy, c-format msgid "Error reading from %s: unknown group \"%s\"" msgstr "Erro lendo do socket." #. build the locale strings #: ../pan/general/e-util.cc:213 msgid "%l:%M %p" msgstr "" #: ../pan/general/e-util.cc:214 msgid "Today %l:%M %p" msgstr "" #: ../pan/general/e-util.cc:215 msgid "%a %l:%M %p" msgstr "" #: ../pan/general/e-util.cc:216 msgid "%b %d %l:%M %p" msgstr "" #: ../pan/general/e-util.cc:217 msgid "%b %d %Y" msgstr "" #: ../pan/general/e-util.cc:242 msgid "?" msgstr "?" #: ../pan/general/text-match.cc:193 #, c-format msgid "Can't use regular expression \"%s\": %s" msgstr "" #: ../pan/general/utf8-utils.cc:213 msgid "Couldn't determine article encoding. Non-UTF8 characters were removed." msgstr "" #: ../pan/gui/actions.cc:274 ../pan/gui/post-ui.cc:417 #, fuzzy msgid "_File" msgstr "Fallou" #: ../pan/gui/actions.cc:275 ../pan/gui/post-ui.cc:418 msgid "_Edit" msgstr "_Editar" #: ../pan/gui/actions.cc:276 ../pan/gui/prefs-ui.cc:1064 msgid "_Layout" msgstr "" #: ../pan/gui/actions.cc:277 #, fuzzy msgid "_Group Pane" msgstr "Tipo de letra da lista de grupos" #: ../pan/gui/actions.cc:278 #, fuzzy msgid "_Header Pane" msgstr "Activar Fíos de Conversa dos Artigos" #: ../pan/gui/actions.cc:279 msgid "_Body Pane" msgstr "" #: ../pan/gui/actions.cc:280 #, fuzzy msgid "_View" msgstr "_Vista" #: ../pan/gui/actions.cc:281 #, fuzzy msgid "Filte_r" msgstr "Filtro" #: ../pan/gui/actions.cc:282 #, fuzzy msgid "_Go" msgstr "_Grupo" #: ../pan/gui/actions.cc:283 ../pan/gui/prefs-ui.cc:1091 #, fuzzy msgid "_Actions" msgstr "Accións" #: ../pan/gui/actions.cc:284 #, fuzzy msgid "_Articles" msgstr "_Artigo" #: ../pan/gui/actions.cc:285 #, fuzzy msgid "G_roups" msgstr "Grupos" #: ../pan/gui/actions.cc:286 ../pan/gui/actions.cc:287 #, fuzzy msgid "_Post" msgstr "_Publicar" #: ../pan/gui/actions.cc:288 msgid "_Help" msgstr "" #: ../pan/gui/actions.cc:291 #, fuzzy msgid "_Read Group" msgstr "Cargando Grupos" #: ../pan/gui/actions.cc:292 #, fuzzy msgid "Read Group" msgstr "Cargando Grupos" #: ../pan/gui/actions.cc:296 #, fuzzy msgid "_Mark Selected Groups Read" msgstr "Marcar como Lido" #: ../pan/gui/actions.cc:297 #, fuzzy msgid "Mark Selected Groups Read" msgstr "Marcar como Lido" #: ../pan/gui/actions.cc:301 #, fuzzy msgid "_Delete Selected Groups' Articles" msgstr "_Eliminar artigo" #: ../pan/gui/actions.cc:302 #, fuzzy msgid "Delete Selected Groups' Articles" msgstr "_Eliminar artigo" #: ../pan/gui/actions.cc:306 #, fuzzy msgid "Get New _Headers in Selected Groups" msgstr "Obter Tódalas Cabeceiras dos Grupos Seleccionados" #: ../pan/gui/actions.cc:307 #, fuzzy msgid "Get New Headers in Selected Groups" msgstr "Obter Tódalas Cabeceiras dos Grupos Seleccionados" #: ../pan/gui/actions.cc:311 ../pan/gui/actions.cc:316 #, fuzzy msgid "Get New _Headers in Subscribed Groups" msgstr "Obter Novas Cabeceiras e Corpos dos Grupos Subscriptos" #: ../pan/gui/actions.cc:312 ../pan/gui/actions.cc:317 #, fuzzy msgid "Get New Headers in Subscribed Groups" msgstr "Obter Novas Cabeceiras e Corpos dos Grupos Subscriptos" #: ../pan/gui/actions.cc:321 #, fuzzy msgid "Get _Headers..." msgstr "Baixar Novas Cabeceiras" #: ../pan/gui/actions.cc:322 #, fuzzy msgid "Get Headers..." msgstr "Baixar Novas Cabeceiras" #: ../pan/gui/actions.cc:326 ../pan/gui/actions.cc:327 #, fuzzy msgid "Refresh Group List" msgstr "Renomear o Grupo \"%s\"" #: ../pan/gui/actions.cc:331 #, fuzzy msgid "_Subscribe" msgstr "Subscribir" #: ../pan/gui/actions.cc:332 #, fuzzy msgid "Subscribe" msgstr "Subscribir" #: ../pan/gui/actions.cc:336 #, fuzzy msgid "_Unsubscribe" msgstr "Desubscribir" #: ../pan/gui/actions.cc:337 #, fuzzy msgid "Unsubscribe" msgstr "Desubscribir" #: ../pan/gui/actions.cc:341 #, fuzzy msgid "_Save Articles..." msgstr "_Gardar Artigo Como..." #: ../pan/gui/actions.cc:342 #, fuzzy msgid "Save Articles..." msgstr "_Gardar Artigo Como..." #: ../pan/gui/actions.cc:346 #, fuzzy msgid "Save Articles from Selected _NZB..." msgstr "_Gardar Artigo Como..." #: ../pan/gui/actions.cc:347 #, fuzzy msgid "Save Articles from Selected NZB" msgstr "Gardar Anexos Como" #: ../pan/gui/actions.cc:351 #, fuzzy msgid "Save Articles to an NZB _File..." msgstr "_Gardar Artigo Como..." #: ../pan/gui/actions.cc:352 #, fuzzy msgid "Save Articles to an NZB File" msgstr "Gardar este rexistro nun ficheiro." #: ../pan/gui/actions.cc:356 ../pan/gui/actions.cc:357 #, fuzzy msgid "Print" msgstr "Imprimir" #: ../pan/gui/actions.cc:361 msgid "_Import NZB Files..." msgstr "" #: ../pan/gui/actions.cc:366 #, fuzzy msgid "_Cancel Last Task" msgstr "Cancelar Tarefas Seleccionadas" #: ../pan/gui/actions.cc:371 #, fuzzy msgid "_Task Manager" msgstr "Xestor de _Tarefas" #: ../pan/gui/actions.cc:376 #, fuzzy msgid "_Event Log" msgstr "" "Estado de\n" "Conexión" #: ../pan/gui/actions.cc:381 #, fuzzy msgid "_Quit" msgstr "_Editar" #: ../pan/gui/actions.cc:386 #, fuzzy msgid "Select _All Articles" msgstr "Seleccionar Tódolos Artigos" #: ../pan/gui/actions.cc:391 #, fuzzy msgid "_Deselect All Articles" msgstr "Seleccionar Tódolos Artigos" #: ../pan/gui/actions.cc:396 msgid "Add Su_bthreads to Selection" msgstr "" #: ../pan/gui/actions.cc:401 msgid "Add _Threads to Selection" msgstr "" #: ../pan/gui/actions.cc:406 msgid "Add _Similar Articles to Selection" msgstr "" #: ../pan/gui/actions.cc:411 #, fuzzy msgid "Select Article _Body" msgstr "Editar o Artigo Seleccionado" #: ../pan/gui/actions.cc:416 #, fuzzy msgid "Edit _Preferences" msgstr "Pan: Preferencias" #: ../pan/gui/actions.cc:421 #, fuzzy msgid "Edit Selected _Group's Preferences" msgstr "Pan: Preferencias" #: ../pan/gui/actions.cc:426 ../pan/gui/post-ui.cc:434 #, fuzzy msgid "Edit P_osting Profiles" msgstr "o select() fallou: %s" #: ../pan/gui/actions.cc:431 #, fuzzy msgid "Edit _News Servers" msgstr "Nome do Servidor de Novas" #: ../pan/gui/actions.cc:436 msgid "Jump to _Group Tab" msgstr "" #: ../pan/gui/actions.cc:441 #, fuzzy msgid "Jump to _Header Tab" msgstr "Cabeceiras Personalizadas" #: ../pan/gui/actions.cc:446 #, fuzzy msgid "Jump to _Body Tab" msgstr "Cabeceiras Personalizadas" #: ../pan/gui/actions.cc:451 #, fuzzy msgid "_Rot13 Selected Text" msgstr "Aplicar Rot13 ó Texto Seleccionado" #: ../pan/gui/actions.cc:456 #, fuzzy msgid "Clear _Header Pane" msgstr "Activar Fíos de Conversa dos Artigos" #: ../pan/gui/actions.cc:461 #, fuzzy msgid "Clear _Body Pane" msgstr "Tipo de letra da lista de grupos" #: ../pan/gui/actions.cc:466 #, fuzzy msgid "Cache Article" msgstr "Recibindo %d artigos de mostra" #: ../pan/gui/actions.cc:471 #, fuzzy msgid "Read Article" msgstr "Amosar Artigos Lidos" #: ../pan/gui/actions.cc:476 #, fuzzy msgid "Show Article Information" msgstr "Información do Servidor" #: ../pan/gui/actions.cc:481 #, fuzzy msgid "Read _More" msgstr "Ler Máis" #: ../pan/gui/actions.cc:482 msgid "Read More" msgstr "Ler Máis" #: ../pan/gui/actions.cc:486 msgid "Read _Back" msgstr "" #: ../pan/gui/actions.cc:487 #, fuzzy msgid "Read Back" msgstr "Lido" #: ../pan/gui/actions.cc:491 #, fuzzy msgid "Next _Unread Group" msgstr "Seguinte _Grupo sen Ler" #: ../pan/gui/actions.cc:496 #, fuzzy msgid "Next _Group" msgstr "Seguinte Grupo" #: ../pan/gui/actions.cc:501 #, fuzzy msgid "Next _Unread Article" msgstr "Amosar Artigos Sen Ler" #: ../pan/gui/actions.cc:502 #, fuzzy msgid "Next Unread Article" msgstr "Amosar Artigos Sen Ler" #: ../pan/gui/actions.cc:506 #, fuzzy msgid "Next _Article" msgstr "Ordenar Artigos" #: ../pan/gui/actions.cc:507 #, fuzzy msgid "Next Article" msgstr "Ordenar Artigos" #: ../pan/gui/actions.cc:511 #, fuzzy msgid "Next _Watched Article" msgstr "Cargando o Artigo da Caché \"%s\"" #: ../pan/gui/actions.cc:516 #, fuzzy msgid "Next Unread _Thread" msgstr "Seguinte _Grupo sen Ler" #: ../pan/gui/actions.cc:517 #, fuzzy msgid "Next Unread Thread" msgstr "Seguinte _Grupo sen Ler" #: ../pan/gui/actions.cc:521 #, fuzzy msgid "Next Threa_d" msgstr "Ignorar Fío" #: ../pan/gui/actions.cc:526 #, fuzzy msgid "Pre_vious Article" msgstr "_Arriba para Seleccionar o Artigo Anterior" #: ../pan/gui/actions.cc:531 #, fuzzy msgid "Previous _Thread" msgstr "Arriba para Seleccionar o Fío Anterior" #: ../pan/gui/actions.cc:536 #, fuzzy msgid "_Parent Article" msgstr "Ordenar Artigos" #: ../pan/gui/actions.cc:541 #, fuzzy msgid "Ignore _Author" msgstr "Fíos Ignorados" #: ../pan/gui/actions.cc:545 #, fuzzy msgid "_Watch Thread" msgstr "Fíos Observados" #: ../pan/gui/actions.cc:550 #, fuzzy msgid "_Ignore Thread" msgstr "Fíos Ignorados" #: ../pan/gui/actions.cc:555 ../pan/gui/actions.cc:556 #, fuzzy msgid "_Toggle Flag On/Off for Thread" msgstr "Fíos Observados" #: ../pan/gui/actions.cc:560 ../pan/gui/actions.cc:561 #, fuzzy msgid "_Turn Flag Off for Thread" msgstr "Fíos Observados" #: ../pan/gui/actions.cc:565 ../pan/gui/actions.cc:566 #, fuzzy msgid "_Select All Flagged Threads" msgstr "Seguinte _Grupo sen Ler" #: ../pan/gui/actions.cc:570 ../pan/gui/actions.cc:571 #, fuzzy msgid "_Go to Next Flagged Thread" msgstr "Seguinte _Grupo sen Ler" #: ../pan/gui/actions.cc:575 ../pan/gui/actions.cc:576 #, fuzzy msgid "_Go to Last Flagged Thread" msgstr "Seguinte _Grupo sen Ler" #: ../pan/gui/actions.cc:580 ../pan/gui/actions.cc:581 #, fuzzy msgid "_Invert Selection" msgstr "Selección" #: ../pan/gui/actions.cc:585 msgid "Edit Article's Watch/Ignore/Score..." msgstr "" #: ../pan/gui/actions.cc:590 #, fuzzy msgid "Add a _Scoring Rule..." msgstr "Crear unha nova carpeta." #: ../pan/gui/actions.cc:595 #, fuzzy msgid "Cance_l Article..." msgstr "Recibindo %d artigos de mostra" #: ../pan/gui/actions.cc:600 #, fuzzy msgid "_Supersede Article..." msgstr "_Gardar Artigo Como..." #: ../pan/gui/actions.cc:605 #, fuzzy msgid "_Delete Article" msgstr "_Eliminar artigo" #: ../pan/gui/actions.cc:610 #, fuzzy msgid "Clear Article Cache" msgstr "Caché de Artigos" # Máis caralladas de programas mal internacionalizados # Article is in a ___________ thread # O artigo está nun fío ____________ # Para traducir a parte "thread" uso " " #: ../pan/gui/actions.cc:615 #, fuzzy msgid "_Mark Article as Read" msgstr "O artigo está _nun fío" # Máis caralladas de programas mal internacionalizados # Article is in a ___________ thread # O artigo está nun fío ____________ # Para traducir a parte "thread" uso " " #: ../pan/gui/actions.cc:620 #, fuzzy msgid "Mark Article as _Unread" msgstr "O artigo está _nun fío" # Máis caralladas de programas mal internacionalizados # Article is in a ___________ thread # O artigo está nun fío ____________ # Para traducir a parte "thread" uso " " #: ../pan/gui/actions.cc:626 #, fuzzy msgid "_Mark Thread as Read" msgstr "O artigo está _nun fío" # Máis caralladas de programas mal internacionalizados # Article is in a ___________ thread # O artigo está nun fío ____________ # Para traducir a parte "thread" uso " " #: ../pan/gui/actions.cc:631 #, fuzzy msgid "Mark Thread as _Unread" msgstr "O artigo está _nun fío" #: ../pan/gui/actions.cc:636 #, fuzzy msgid "_Post to Newsgroup" msgstr "_Publicar no grupo de novas" #: ../pan/gui/actions.cc:637 #, fuzzy msgid "Post to Newsgroup" msgstr "_Publicar no grupo de novas" #: ../pan/gui/actions.cc:641 #, fuzzy msgid "_Followup to Newsgroup" msgstr "_Responder no grupo de novas" #: ../pan/gui/actions.cc:642 #, fuzzy msgid "Followup to Newsgroup" msgstr "_Responder no grupo de novas" #: ../pan/gui/actions.cc:646 #, fuzzy msgid "_Reply to Author in Mail" msgstr "- Autor" #: ../pan/gui/actions.cc:651 #, fuzzy msgid "_Pan Home Page" msgstr "Páxina _web do Pan" #: ../pan/gui/actions.cc:656 msgid "Give _Feedback or Report a Bug..." msgstr "" #: ../pan/gui/actions.cc:661 msgid "_Tip Jar..." msgstr "" #: ../pan/gui/actions.cc:666 #, fuzzy msgid "_About" msgstr "Abortando" #: ../pan/gui/actions.cc:671 msgid "Edit _SSL Certificates" msgstr "" #: ../pan/gui/actions.cc:685 #, fuzzy msgid "_Thread Headers" msgstr "Máis Cabeceiras" #: ../pan/gui/actions.cc:686 #, fuzzy msgid "_Wrap Article Body" msgstr "Encher/Axustar Corpo da Mensaxe" #: ../pan/gui/actions.cc:687 #, fuzzy msgid "Mute _Quoted Text" msgstr "Agochar Texto Citado" #: ../pan/gui/actions.cc:688 #, fuzzy msgid "Show All _Headers in Body Pane" msgstr "Amosar Tódalas Cabeceiras no Corpo" #: ../pan/gui/actions.cc:689 #, fuzzy msgid "Show _Smilies as Graphics" msgstr "Amosar unha _alerta:" #: ../pan/gui/actions.cc:690 msgid "Show *Bold*, __Underlined__, and /Italic/" msgstr "" #: ../pan/gui/actions.cc:691 msgid "Size Pictures to _Fit" msgstr "" #: ../pan/gui/actions.cc:692 msgid "Use _Monospace Font" msgstr "" #: ../pan/gui/actions.cc:693 msgid "Set Focus to Images" msgstr "" #: ../pan/gui/actions.cc:694 msgid "Highlight _URLs" msgstr "" #: ../pan/gui/actions.cc:697 #, fuzzy msgid "_Work Online" msgstr "_Conexión" #: ../pan/gui/actions.cc:698 msgid "_Tabbed Layout" msgstr "" #: ../pan/gui/actions.cc:699 #, fuzzy msgid "Show Group _Pane" msgstr "Tipo de letra da lista de grupos" #: ../pan/gui/actions.cc:700 #, fuzzy msgid "Show Hea_der Pane" msgstr "Activar Fíos de Conversa dos Artigos" #: ../pan/gui/actions.cc:701 msgid "Show Bod_y Pane" msgstr "" #: ../pan/gui/actions.cc:702 msgid "Show _Toolbar" msgstr "" #: ../pan/gui/actions.cc:703 #, fuzzy msgid "Abbreviate Group Names" msgstr "Grupos Subscriptos:" #: ../pan/gui/actions.cc:705 #, fuzzy msgid "Match Only _Unread Articles" msgstr "Ordenando Artigos" #: ../pan/gui/actions.cc:705 #, fuzzy msgid "Match Only Unread Articles" msgstr "Ordenando Artigos" #: ../pan/gui/actions.cc:706 #, fuzzy msgid "Match Only _Cached Articles" msgstr "Ordenando Artigos" #: ../pan/gui/actions.cc:706 #, fuzzy msgid "Match Only Cached Articles" msgstr "Ordenando Artigos" #: ../pan/gui/actions.cc:707 #, fuzzy msgid "Match Only _Complete Articles" msgstr "Amosar Artigos Binarios Completos" #: ../pan/gui/actions.cc:707 #, fuzzy msgid "Match Only Complete Articles" msgstr "Amosar Artigos Binarios Completos" #: ../pan/gui/actions.cc:708 #, fuzzy msgid "Match Only _My Articles" msgstr "Ordenando Artigos" #: ../pan/gui/actions.cc:708 #, fuzzy msgid "Match Only My Articles" msgstr "Ordenando Artigos" #: ../pan/gui/actions.cc:709 #, fuzzy msgid "Match Only _Watched Articles" msgstr "Ordenando Artigos" #: ../pan/gui/actions.cc:709 #, fuzzy msgid "Match Only Watched Articles" msgstr "Ordenando Artigos" #: ../pan/gui/actions.cc:711 msgid "Match Scores of 9999 (_Watched)" msgstr "" #: ../pan/gui/actions.cc:712 msgid "Match Scores of 5000...9998 (_High)" msgstr "" #: ../pan/gui/actions.cc:713 msgid "Match Scores of 1...4999 (Me_dium)" msgstr "" #: ../pan/gui/actions.cc:714 msgid "Match Scores of 0 (_Normal)" msgstr "" #: ../pan/gui/actions.cc:715 msgid "Match Scores of -9998...-1 (_Low)" msgstr "" #: ../pan/gui/actions.cc:716 msgid "Match Scores of -9999 (_Ignored)" msgstr "" #: ../pan/gui/actions.cc:718 msgid "Enable/Disable All _Rules" msgstr "" #: ../pan/gui/actions.cc:744 #, fuzzy msgid "Show Matching _Articles" msgstr "Ordenando Artigos" #: ../pan/gui/actions.cc:745 #, fuzzy msgid "Show Matching Articles' _Threads" msgstr "Ordenando Artigos" #: ../pan/gui/actions.cc:746 #, fuzzy msgid "Show Matching Articles' _Subthreads" msgstr "Artigos Seleccionados e as súas Respostas" #: ../pan/gui/body-pane.cc:1011 #, fuzzy, c-format msgid "Unnamed File" msgstr "Ficheiro coa Sinatura:" #: ../pan/gui/body-pane.cc:1092 ../pan/gui/gui.cc:1864 #: ../pan/gui/header-pane.cc:1188 ../pan/gui/header-pane.cc:1617 #: ../pan/gui/post-ui.cc:2496 ../pan/gui/prefs-ui.cc:833 #: ../pan/gui/score-add-ui.cc:139 msgid "Subject" msgstr "Asunto" #: ../pan/gui/body-pane.cc:1094 ../pan/gui/gui.cc:1864 #, fuzzy msgid "From" msgstr "De:" #: ../pan/gui/body-pane.cc:1096 ../pan/gui/gui.cc:1865 #: ../pan/gui/header-pane.cc:1695 ../pan/gui/log-ui.cc:305 #: ../pan/gui/prefs-ui.cc:829 msgid "Date" msgstr "Data" #: ../pan/gui/body-pane.cc:1103 msgid "Newsgroups" msgstr "Grupos de Novas" #: ../pan/gui/body-pane.cc:1108 #, fuzzy msgid "Followup-To" msgstr "Responder-En: " #: ../pan/gui/body-pane.cc:1118 #, fuzzy msgid "Reply-To" msgstr "Responder A:" #: ../pan/gui/body-pane.cc:1160 #, fuzzy msgid " from " msgstr "De: " #: ../pan/gui/body-pane.cc:1162 #, fuzzy msgid " at " msgstr "- Data" #: ../pan/gui/body-pane.cc:1264 #, c-format msgid "" "This is a PGP-Signed message.\n" "\n" "Signer : %s ('%s')\n" "Valid until : %s\n" "Created on : %s" msgstr "" #: ../pan/gui/body-pane.cc:1269 msgid "always" msgstr "" #: ../pan/gui/body-pane.cc:1485 msgid "Copy _URL" msgstr "" #: ../pan/gui/body-pane.cc:1680 #, fuzzy msgid "Save attachment as ...." msgstr "Gardar o Anexo Binario Como..." #: ../pan/gui/body-pane.cc:1683 #, fuzzy msgid "Save all attachments" msgstr "Gardar Anexos Como" #. add a toolbar for attachments #: ../pan/gui/body-pane.cc:1753 #, fuzzy msgid "Attachments" msgstr "Gardar Anexos Como" #. update the titlebar #: ../pan/gui/dl-headers-ui.cc:106 ../pan/gui/gui.cc:973 #: ../pan/gui/gui.cc:1592 ../pan/gui/gui.cc:1893 #: ../pan/gui/score-add-ui.cc:602 msgid "Pan" msgstr "Pan" #: ../pan/gui/dl-headers-ui.cc:112 #, fuzzy, c-format msgid "%d Group" msgid_plural "%d Groups" msgstr[0] "Grupos" msgstr[1] "Grupos" #: ../pan/gui/dl-headers-ui.cc:135 #, fuzzy msgid "Get the last N _days' headers: " msgstr "cabeceiras Máis Recentes" #: ../pan/gui/dl-headers-ui.cc:143 #, fuzzy msgid "Get _new headers" msgstr "as novas cabeceiras" # Estas tres mensaxes son para o primeiro %s de "Getting %s for \"%s\"" #: ../pan/gui/dl-headers-ui.cc:147 #, fuzzy msgid "Get _all headers" msgstr "tódalas cabeceiras" #: ../pan/gui/dl-headers-ui.cc:151 #, fuzzy msgid "Get the _latest N headers: " msgstr "cabeceiras Máis Recentes" #: ../pan/gui/e-action-combo-box.c:388 ../pan/gui/prefs-ui.cc:826 #, fuzzy msgid "Action" msgstr "Accións" #: ../pan/gui/e-action-combo-box.c:389 msgid "A GtkRadioAction" msgstr "" #: ../pan/gui/e-charset.c:51 ../pan/gui/task-pane.cc:518 #, fuzzy msgid "Unknown" msgstr "Dominio Descoñecido" #: ../pan/gui/e-charset.c:52 msgid "Arabic" msgstr "" #: ../pan/gui/e-charset.c:53 msgid "Baltic" msgstr "" #: ../pan/gui/e-charset.c:54 #, fuzzy msgid "Central European" msgstr "Erro Interno" #: ../pan/gui/e-charset.c:55 #, fuzzy msgid "Chinese" msgstr "Liñas" #: ../pan/gui/e-charset.c:56 msgid "Cyrillic" msgstr "" #: ../pan/gui/e-charset.c:57 msgid "Greek" msgstr "" #: ../pan/gui/e-charset.c:58 msgid "Hebrew" msgstr "" #: ../pan/gui/e-charset.c:59 #, fuzzy msgid "Japanese" msgstr "pan.enviados" #: ../pan/gui/e-charset.c:60 #, fuzzy msgid "Korean" msgstr "lido" #: ../pan/gui/e-charset.c:61 msgid "Thai" msgstr "" #: ../pan/gui/e-charset.c:62 msgid "Turkish" msgstr "" #: ../pan/gui/e-charset.c:63 msgid "Unicode" msgstr "" #: ../pan/gui/e-charset.c:64 #, fuzzy msgid "Western European" msgstr "Erro Interno" #: ../pan/gui/e-charset.c:65 #, fuzzy msgid "Western European, New" msgstr "Erro Interno" #: ../pan/gui/e-charset.c:84 ../pan/gui/e-charset.c:85 #: ../pan/gui/e-charset.c:86 msgid "Traditional" msgstr "" #: ../pan/gui/e-charset.c:87 ../pan/gui/e-charset.c:88 #: ../pan/gui/e-charset.c:89 ../pan/gui/e-charset.c:90 msgid "Simplified" msgstr "" #: ../pan/gui/e-charset.c:93 msgid "Ukrainian" msgstr "" #: ../pan/gui/e-charset.c:96 msgid "Visual" msgstr "" #: ../pan/gui/e-charset-combo-box.c:93 ../pan/gui/gui.cc:2058 #: ../pan/gui/post-ui.cc:519 ../pan/gui/prefs-ui.cc:737 msgid "Character Encoding" msgstr "" #: ../pan/gui/e-charset-combo-box.c:117 msgid "Enter the character set to use" msgstr "" #: ../pan/gui/e-charset-combo-box.c:336 msgid "Other..." msgstr "" #: ../pan/gui/e-cte-dialog.c:78 #, fuzzy msgid "Default encoding" msgstr "Decodificando: %s" #: ../pan/gui/e-cte-dialog.c:80 #, fuzzy msgid "7Bit Encoding" msgstr "Tipo de letra da lista de grupos" #: ../pan/gui/e-cte-dialog.c:82 #, fuzzy msgid "8Bit Encoding" msgstr "Tipo de letra da lista de grupos" #: ../pan/gui/e-cte-dialog.c:84 #, fuzzy msgid "BASE64 Encoding" msgstr "Tipo de letra da lista de grupos" #: ../pan/gui/e-cte-dialog.c:86 #, fuzzy msgid "Quoted-Printable Encoding" msgstr "Tipo de letra da lista de grupos" #: ../pan/gui/group-pane.cc:500 #, fuzzy msgid "Group" msgstr "Grupos" #: ../pan/gui/group-pane.cc:501 #, fuzzy msgid "Group (regex)" msgstr "O Seu Nome" #: ../pan/gui/group-pane.cc:913 msgid "Subscribed Groups" msgstr "Grupos Subscriptos" #: ../pan/gui/group-pane.cc:914 #, fuzzy msgid "Other Groups" msgstr "Grupos Novos" #: ../pan/gui/group-pane.cc:954 ../pan/gui/score-view-ui.cc:157 msgid "Name" msgstr "Nome" #: ../pan/gui/group-prefs-dialog.cc:156 #, fuzzy msgid "No Profiles defined in Edit|Posting Profiles." msgstr "o select() fallou: %s" #: ../pan/gui/group-prefs-dialog.cc:231 #, fuzzy msgid "Pan: Group Preferences" msgstr "Pan: Preferencias" #: ../pan/gui/group-prefs-dialog.cc:247 #, fuzzy, c-format msgid "Properties for Groups" msgstr "Publicando o Artigo ``%s''" #: ../pan/gui/group-prefs-dialog.cc:249 #, fuzzy, c-format msgid "Properties for %s" msgstr "Publicando o Artigo ``%s''" #: ../pan/gui/group-prefs-dialog.cc:257 msgid "Character _encoding:" msgstr "" #: ../pan/gui/group-prefs-dialog.cc:259 #, fuzzy msgid "Directory for Saving Attachments" msgstr "Directorio para gardar os ficheiros anexos" #: ../pan/gui/group-prefs-dialog.cc:269 #, fuzzy msgid "Directory for _saving attachments:" msgstr "Directorio para gardar os ficheiros anexos" #: ../pan/gui/group-prefs-dialog.cc:271 #, fuzzy msgid "Posting _profile:" msgstr "Gardar Perfil" #: ../pan/gui/group-prefs-dialog.cc:277 msgid "Spellchecker _language:" msgstr "" #: ../pan/gui/gui.cc:273 #, fuzzy msgid "Open the Task Manager" msgstr "Abrir o Xestor de Tarefas." #: ../pan/gui/gui.cc:301 #, fuzzy msgid "Open the Event Log" msgstr "" "Estado de\n" "Conexión" #: ../pan/gui/gui.cc:561 msgid "Save NZB's Files" msgstr "" #: ../pan/gui/gui.cc:588 msgid "Untitled.nzb" msgstr "" #: ../pan/gui/gui.cc:590 #, fuzzy msgid "Save NZB File as..." msgstr "_Gardar Artigo Como..." #: ../pan/gui/gui.cc:757 #, fuzzy msgid "Import NZB Files" msgstr "Importar Ficheiro .newsrc" #: ../pan/gui/gui.cc:765 ../pan/gui/post-ui.cc:3197 #, fuzzy msgid "NZB Files" msgstr "Filtros:" #: ../pan/gui/gui.cc:770 #, fuzzy msgid "All Files" msgstr "Filtros:" #: ../pan/gui/gui.cc:1258 #, fuzzy msgid "Unable to supersede article." msgstr "_Gardar Artigo Como..." #: ../pan/gui/gui.cc:1259 ../pan/gui/gui.cc:1333 msgid "The article doesn't match any of your posting profiles." msgstr "" #: ../pan/gui/gui.cc:1306 msgid "Revise and send this article to replace the old one." msgstr "" #: ../pan/gui/gui.cc:1307 ../pan/gui/gui.cc:1370 msgid "Be patient! It will take time for your changes to take effect." msgstr "" #: ../pan/gui/gui.cc:1332 #, fuzzy msgid "Unable to cancel article." msgstr "Recibindo %d artigos de mostra" #: ../pan/gui/gui.cc:1369 msgid "Send this article to ask your server to cancel your other one." msgstr "" #: ../pan/gui/gui.cc:1387 msgid "You marked some articles for deletion" msgstr "" #: ../pan/gui/gui.cc:1388 msgid "Are you sure you want to delete them?" msgstr "" #: ../pan/gui/gui.cc:1413 #, fuzzy msgid "Always trust" msgstr "_Editar" #: ../pan/gui/gui.cc:1416 msgid "Do you want to accept it permanently (deletable afterwards) ?" msgstr "" #: ../pan/gui/gui.cc:1595 msgid "Copyright \\u00A9 2002-2012 Charles Kerr and others" msgstr "" #: ../pan/gui/gui.cc:1600 msgid "translator-credits" msgstr "" #: ../pan/gui/gui.cc:1709 #, fuzzy msgid "_1. Group Pane" msgstr "Tipo de letra da lista de grupos" #: ../pan/gui/gui.cc:1710 #, fuzzy msgid "_2. Header Pane" msgstr "Activar Fíos de Conversa dos Artigos" #: ../pan/gui/gui.cc:1711 msgid "_3. Body Pane" msgstr "" #: ../pan/gui/gui.cc:1800 ../pan/gui/gui.cc:1815 msgid " Bytes" msgstr "" #: ../pan/gui/gui.cc:1803 msgid " KB" msgstr "" #: ../pan/gui/gui.cc:1806 msgid " MB" msgstr "" #: ../pan/gui/gui.cc:1809 msgid " GB" msgstr "" #: ../pan/gui/gui.cc:1812 msgid " TB" msgstr "" #: ../pan/gui/gui.cc:1844 #, fuzzy, c-format msgid "This article is complete with %d part." msgid_plural "This article has all %d parts." msgstr[0] "o artigo ten anexos binarios %s" msgstr[1] "o artigo ten anexos binarios %s" #: ../pan/gui/gui.cc:1846 #, fuzzy, c-format msgid "This article is missing %d part." msgid_plural "This article is missing %d of its %d parts:" msgstr[0] "o artigo ten anexos binarios %s" msgstr[1] "o artigo ten anexos binarios %s" #: ../pan/gui/gui.cc:1865 ../pan/gui/header-pane.cc:1190 #, fuzzy msgid "Message-ID" msgstr "Id-Mensaxe" #: ../pan/gui/gui.cc:1866 ../pan/gui/header-pane.cc:1665 #: ../pan/gui/prefs-ui.cc:830 msgid "Lines" msgstr "Liñas" #: ../pan/gui/gui.cc:1866 msgid "Size" msgstr "" #: ../pan/gui/gui.cc:1867 ../pan/gui/header-pane.cc:1680 #: ../pan/gui/prefs-ui.cc:828 msgid "Bytes" msgstr "" #: ../pan/gui/gui.cc:1917 msgid "" "Error loading iconv library. Some Charsets in the GUI will not be able to be " "encoded." msgstr "" #: ../pan/gui/gui.cc:2059 #, fuzzy msgid "Body Pane Encoding" msgstr "Tipo de letra da lista de grupos" #: ../pan/gui/gui.cc:2090 ../pan/gui/task-pane.cc:569 #, c-format msgid "Offline" msgstr "Desconectado" #: ../pan/gui/gui.cc:2094 #, fuzzy, c-format msgid "Closing %d connection" msgid_plural "Closing %d connections" msgstr[0] "Conectando" msgstr[1] "Conectando" #: ../pan/gui/gui.cc:2096 ../pan/gui/gui.cc:2126 #, fuzzy, c-format msgid "No Connections" msgstr "Conectando" #: ../pan/gui/gui.cc:2100 #, fuzzy, c-format msgid "Connecting" msgstr "Conectando" #: ../pan/gui/gui.cc:2113 #, c-format msgid "%s: %d idle, %d active @ %.1f KiBps" msgstr "" #: ../pan/gui/gui.cc:2169 #, c-format msgid "No Tasks" msgstr "" #: ../pan/gui/gui.cc:2171 ../pan/gui/prefs-ui.cc:1047 #, fuzzy msgid "Tasks" msgstr "Regras" #: ../pan/gui/gui.cc:2182 ../pan/gui/task-pane.cc:435 #, c-format msgid "%lu tasks, %s, %.1f KiBps, ETA %d:%02d:%02d" msgstr "" #: ../pan/gui/gui.cc:2234 msgid "" "Pan is now offline. Please see \"File|Event Log\" and correct the problem, " "then use \"File|Work Online\" to continue." msgstr "" #: ../pan/gui/header-pane.cc:1186 #, fuzzy msgid "Subject or Author" msgstr "Asunto: " #: ../pan/gui/header-pane.cc:1187 #, fuzzy msgid "Sub or Auth (regex)" msgstr "Asunto: " #: ../pan/gui/header-pane.cc:1189 ../pan/gui/header-pane.cc:1649 #: ../pan/gui/prefs-ui.cc:827 ../pan/gui/score-add-ui.cc:140 msgid "Author" msgstr "Autor" #: ../pan/gui/header-pane.cc:1634 ../pan/gui/prefs-ui.cc:831 msgid "Score" msgstr "" #: ../pan/gui/log-ui.cc:103 msgid "Save Event List" msgstr "" #: ../pan/gui/log-ui.cc:256 #, fuzzy msgid "Pan: Events" msgstr "Regras" #: ../pan/gui/log-ui.cc:315 msgid "Message" msgstr "Mensaxe" #: ../pan/gui/pan.cc:330 msgid "Maximize" msgstr "" #: ../pan/gui/pan.cc:383 msgid "An Error has occurred!" msgstr "" #: ../pan/gui/pan.cc:397 #, fuzzy msgid "New Articles!" msgstr "Amosar Artigos Novos" #: ../pan/gui/pan.cc:398 msgid "" "There are new\n" "articles available." msgstr "" #: ../pan/gui/pan.cc:465 msgid "Toggle on/offline" msgstr "" #: ../pan/gui/pan.cc:513 msgid "" "Thank you for trying Pan!\n" " \n" "To start newsreading, first Add a Server." msgstr "" #: ../pan/gui/pan.cc:595 msgid "" "General Options\n" " -h, --help Show this usage page.\n" " --verbose Be verbose (in non-GUI mode).\n" "\n" "URL Options\n" " --no-gui On news:message-id, dump the article to stdout.\n" "\n" "NZB Batch Options\n" " --nzb file1 file2 ... Process nzb files without launching all of Pan.\n" " -o path, --output=path Path to save attachments listed in the nzb " "files.\n" " --no-gui Only show console output, not the download " "queue.\n" msgstr "" #: ../pan/gui/pan.cc:867 msgid "Error: --no-gui used without nzb files or news:message-id." msgstr "" #: ../pan/gui/pan.cc:871 #, fuzzy, c-format msgid "Pan %s started" msgstr "Pan %s iniciado\n" #: ../pan/gui/pan.cc:890 msgid "Please configure Pan's news servers before using it as an nzb client." msgstr "" #: ../pan/gui/pan.cc:1009 msgid "Pan notification" msgstr "" #: ../pan/gui/post-ui.cc:186 #, c-format msgid "Upload Queue : %ld Tasks, %ld KB (~ %.2f MB) total ." msgstr "" #: ../pan/gui/post-ui.cc:286 #, fuzzy, c-format msgid "Error setting custom spellchecker: %s" msgstr "Erro escribindo a `%s'" #: ../pan/gui/post-ui.cc:291 ../pan/gui/post-ui.cc:300 #, fuzzy, c-format msgid "Error setting spellchecker: %s" msgstr "Erro escribindo a `%s'" #: ../pan/gui/post-ui.cc:419 #, fuzzy msgid "_Profile" msgstr "Gardar Perfil" #: ../pan/gui/post-ui.cc:420 #, fuzzy msgid "Set Editor" msgstr "_Editar" #: ../pan/gui/post-ui.cc:422 #, fuzzy msgid "_Send Article" msgstr "Ordenar Artigos" #: ../pan/gui/post-ui.cc:422 #, fuzzy msgid "Send Article Now" msgstr "Enviar Agora" #: ../pan/gui/post-ui.cc:423 #, fuzzy msgid "_Send and Save Articles to NZB" msgstr "Amosar Artigos Gravados" #: ../pan/gui/post-ui.cc:423 #, fuzzy msgid "Send and Save Articles to NZB" msgstr "Amosar Artigos Gravados" #: ../pan/gui/post-ui.cc:424 msgid "Set Character _Encoding..." msgstr "" #: ../pan/gui/post-ui.cc:425 msgid "Set Content _Transfer Encoding..." msgstr "" #: ../pan/gui/post-ui.cc:426 #, fuzzy msgid "Sa_ve Draft" msgstr "Selecciona o Artigo" #: ../pan/gui/post-ui.cc:426 msgid "Save as a Draft for Future Posting" msgstr "" #: ../pan/gui/post-ui.cc:427 #, fuzzy msgid "_Open Draft..." msgstr "Activar Fíos de Conversa dos Artigos" #: ../pan/gui/post-ui.cc:427 #, fuzzy msgid "Open an Article Draft" msgstr "Activar Fíos de Conversa dos Artigos" #: ../pan/gui/post-ui.cc:432 msgid "_Rot13" msgstr "" #: ../pan/gui/post-ui.cc:432 msgid "Rot13 Selected Text" msgstr "Aplicar Rot13 ó Texto Seleccionado" #: ../pan/gui/post-ui.cc:433 #, fuzzy msgid "Run _Editor" msgstr "_Editar" #: ../pan/gui/post-ui.cc:433 #, fuzzy msgid "Run Editor" msgstr "_Editar" #: ../pan/gui/post-ui.cc:435 msgid "Add _Files to Queue" msgstr "" #: ../pan/gui/post-ui.cc:435 msgid "Add Files to Queue" msgstr "" #: ../pan/gui/post-ui.cc:450 ../pan/gui/post-ui.cc:451 #, fuzzy msgid "Remove from Queue" msgstr "Servidor de Novas" #: ../pan/gui/post-ui.cc:455 ../pan/gui/post-ui.cc:456 #, fuzzy msgid "Clear List" msgstr "Baleirar" #: ../pan/gui/post-ui.cc:460 ../pan/gui/post-ui.cc:461 #, fuzzy msgid "Select Needed Parts" msgstr "Fíos de Conversa Seleccionados" #: ../pan/gui/post-ui.cc:465 ../pan/gui/post-ui.cc:466 #: ../pan/gui/task-pane.cc:636 ../pan/gui/task-pane.cc:637 #, fuzzy msgid "Move Up" msgstr "_Baixar Liña" #: ../pan/gui/post-ui.cc:470 ../pan/gui/post-ui.cc:471 #: ../pan/gui/task-pane.cc:641 ../pan/gui/task-pane.cc:642 #, fuzzy msgid "Move Down" msgstr "_Baixar Liña" #: ../pan/gui/post-ui.cc:475 ../pan/gui/post-ui.cc:476 #, fuzzy msgid "Move to Top" msgstr "_Baixar Liña" #: ../pan/gui/post-ui.cc:480 ../pan/gui/post-ui.cc:481 #, fuzzy msgid "Move to Bottom" msgstr "Mover Tarefa(s) Seleccionada(s) ó Final" #: ../pan/gui/post-ui.cc:488 #, fuzzy msgid "_Wrap Text" msgstr "Axustar Texto" #: ../pan/gui/post-ui.cc:488 #, fuzzy msgid "Wrap Text" msgstr "Axustar Texto" #: ../pan/gui/post-ui.cc:489 #, fuzzy msgid "Always Run Editor" msgstr "_Editar" #: ../pan/gui/post-ui.cc:490 msgid "Remember Character Encoding for this Group" msgstr "" #: ../pan/gui/post-ui.cc:491 #, fuzzy msgid "Thread Attached Replies" msgstr "Amosar Artigos non Observados nin Ignorados" #: ../pan/gui/post-ui.cc:492 #, fuzzy msgid "PGP-Encrypt the Message" msgstr "Imprimir esta mensaxe" #: ../pan/gui/post-ui.cc:493 #, fuzzy msgid "PGP-Sign the Message" msgstr "Imprimir esta mensaxe" #: ../pan/gui/post-ui.cc:494 msgid "Check _Spelling" msgstr "" #: ../pan/gui/post-ui.cc:520 #, fuzzy msgid "New Article's Encoding:" msgstr "_Gardar Artigo Como..." #: ../pan/gui/post-ui.cc:530 #, fuzzy msgid "Content Transfer Encoding" msgstr "Tipo de letra da lista de grupos" #: ../pan/gui/post-ui.cc:531 #, fuzzy msgid "New Article's Content Transfer Encoding:" msgstr "_Gardar Artigo Como..." #: ../pan/gui/post-ui.cc:711 msgid "Your changes will be lost!" msgstr "" #: ../pan/gui/post-ui.cc:712 msgid "Close this window and lose your changes?" msgstr "" #: ../pan/gui/post-ui.cc:757 ../pan/gui/post-ui.cc:796 msgid "There were problems with this post." msgstr "" #: ../pan/gui/post-ui.cc:759 ../pan/gui/post-ui.cc:798 #: ../pan/gui/post-ui.cc:861 msgid "Go Back" msgstr "" #: ../pan/gui/post-ui.cc:761 msgid "Post Anyway" msgstr "" #. Prompt the user #: ../pan/gui/post-ui.cc:790 #, c-format msgid "" "Message uses characters not specified in charset '%s' - possibly use '%s' " msgstr "" #: ../pan/gui/post-ui.cc:813 #, fuzzy msgid "Go _Online" msgstr "_Conexión" #: ../pan/gui/post-ui.cc:860 msgid "The file queue is empty, so no files can be saved." msgstr "" #: ../pan/gui/post-ui.cc:1019 msgid "" "No posting server is set for this posting profile.\n" "Please edit the profile via Edit|Manage Posting Profiles." msgstr "" #: ../pan/gui/post-ui.cc:1054 #, fuzzy msgid "Pan is Offline." msgstr "Desconectado" #: ../pan/gui/post-ui.cc:1055 msgid "Go online to post the article?" msgstr "" #: ../pan/gui/post-ui.cc:1102 #, c-format msgid "" "Error signing/encrypting your message. Perhaps you misspelled your email-" "address (%s) ?" msgstr "" #: ../pan/gui/post-ui.cc:1267 #, fuzzy msgid "Error opening temporary file" msgstr "Erro decodificando a parte %d de \"%s\": %s" #: ../pan/gui/post-ui.cc:1279 #, c-format msgid "Error writing article to temporary file: %s" msgstr "" #: ../pan/gui/post-ui.cc:1298 #, fuzzy, c-format msgid "Error parsing \"external editor\" command line: %s (Command was: %s)" msgstr "Erro escribindo a `%s'" #: ../pan/gui/post-ui.cc:1339 #, fuzzy, c-format msgid "Error starting external editor: %s" msgstr "Erro escribindo a `%s'" #: ../pan/gui/post-ui.cc:1395 #, fuzzy msgid "Open Draft Article" msgstr "Activar Fíos de Conversa dos Artigos" #: ../pan/gui/post-ui.cc:1606 #, fuzzy msgid "Save Draft Article" msgstr "Selecciona o Artigo" #: ../pan/gui/post-ui.cc:1803 #, fuzzy, c-format msgid "Couldn't parse signature command \"%s\": %s" msgstr "Non foi posible crear o directorio: " #: ../pan/gui/post-ui.cc:1839 #, fuzzy msgid "Couldn't convert signature to UTF-8." msgstr "Non foi posible crear o directorio: " #: ../pan/gui/post-ui.cc:2334 #, fuzzy msgid "F_rom" msgstr "De:" #: ../pan/gui/post-ui.cc:2352 #, fuzzy msgid "_Subject" msgstr "Asunto" #: ../pan/gui/post-ui.cc:2365 #, fuzzy msgid "_Newsgroups" msgstr "Grupos de Novas" #: ../pan/gui/post-ui.cc:2379 #, fuzzy msgid "Mail _To" msgstr "Enviar por Correo a:" #: ../pan/gui/post-ui.cc:2481 #, fuzzy msgid "Delete from Queue" msgstr "Selecciona o Grupo" #: ../pan/gui/post-ui.cc:2494 msgid "No." msgstr "" #: ../pan/gui/post-ui.cc:2498 ../pan/gui/post-ui.cc:2592 #: ../pan/gui/post-ui.cc:2633 msgid "Filename" msgstr "Nome do Ficheiro" #: ../pan/gui/post-ui.cc:2500 msgid "Size (kB)" msgstr "" #: ../pan/gui/post-ui.cc:2600 #, fuzzy msgid "The current filename" msgstr "Usar Outro Nome de Ficheiro" #: ../pan/gui/post-ui.cc:2604 #, fuzzy msgid "Subject Line" msgstr "Asunto" #: ../pan/gui/post-ui.cc:2612 msgid "The current Subject Line" msgstr "" #: ../pan/gui/post-ui.cc:2626 msgid "No. " msgstr "" #: ../pan/gui/post-ui.cc:2630 msgid "Enable/Disable" msgstr "" #: ../pan/gui/post-ui.cc:2664 #, fuzzy msgid "Follo_wup-To" msgstr "Responder-En: " #. i18n: "poster" is a key used by many newsreaders. probably safest to keep this key in english. #: ../pan/gui/post-ui.cc:2673 #, fuzzy msgid "" "The newsgroups where replies to your message should go. This is only needed " "if it differs from the \"Newsgroups\" header.\n" "\n" "To direct all replies to your email address, use \"Followup-To: poster\"" msgstr "" "O grupo ou grupos de novas onde deberían ir as respostas á ensaxe publicada. " "Só é necesario se é diferente á cabeceira \"Publicar nos Grupos\".\n" "Para redirixir tódalas respostas ó seu enderezo de correo electrónico, " "utilice \"Responder-En: poster\"" #: ../pan/gui/post-ui.cc:2679 #, fuzzy msgid "_Reply-To" msgstr "Responder A:" #: ../pan/gui/post-ui.cc:2687 #, fuzzy msgid "" "The email account where mail replies to your posted message should go. This " "is only needed if it differs from the \"From\" header." msgstr "" "Esta é a conta de correo onde deberían ir as respostas á mensaxe publicada. " "Só é necesario se é diferente á cabeceira \"De\"." #: ../pan/gui/post-ui.cc:2693 #, fuzzy msgid "_Custom Headers" msgstr "Máis Cabeceiras" #: ../pan/gui/post-ui.cc:2717 #, fuzzy msgid "Add \"_User-Agent\" header" msgstr "Non engadir a cabeceira de identificación \"User-Agent\"" #: ../pan/gui/post-ui.cc:2724 #, fuzzy msgid "Add \"Message-_Id\" header" msgstr "Id-Mensaxe: " #: ../pan/gui/post-ui.cc:2855 #, fuzzy msgid "Select Parts" msgstr "Selección" #: ../pan/gui/post-ui.cc:2866 msgid "_Parts" msgstr "" #: ../pan/gui/post-ui.cc:3022 #, fuzzy msgid "Post Article" msgstr "Carga o Artigo" #: ../pan/gui/post-ui.cc:3043 msgid "_Message" msgstr "_Mensaxe" #: ../pan/gui/post-ui.cc:3044 #, fuzzy msgid "More _Headers" msgstr "Máis Cabeceiras" #: ../pan/gui/post-ui.cc:3045 #, fuzzy msgid "File _Queue" msgstr "Baleirar Fila" #: ../pan/gui/post-ui.cc:3077 ../pan/gui/profiles-dialog.cc:478 #, fuzzy, no-c-format msgid "On %d, %n wrote:" msgstr "No artigo %i, %a escribiu:" #: ../pan/gui/post-ui.cc:3106 msgid "Add files to queue" msgstr "" #: ../pan/gui/post-ui.cc:3184 msgid "Save Upload Queue as NZB File" msgstr "" #: ../pan/gui/prefs.cc:343 #, fuzzy, c-format msgid "Couldn't parse %s color \"%s\"" msgstr "Non foi posible seleccionar o grupo \"%s\"" #: ../pan/gui/prefs-ui.cc:120 msgid "Grab Key" msgstr "" #: ../pan/gui/prefs-ui.cc:126 #, c-format msgid "" "Press the combination of the keys\n" "you want to use for \"%s\"." msgstr "" #: ../pan/gui/prefs-ui.cc:166 #, fuzzy msgid "Edit Hotkey" msgstr "Filtros:" #: ../pan/gui/prefs-ui.cc:228 msgid "Error: Shortkey is invalid!" msgstr "" #: ../pan/gui/prefs-ui.cc:244 #, fuzzy msgid "Error: Shortkey already exists!" msgstr "A carpeta \"%s\" xa existe." #: ../pan/gui/prefs-ui.cc:535 #, fuzzy msgid "Show only icons" msgstr "Información do Servidor" #: ../pan/gui/prefs-ui.cc:536 msgid "Show only text" msgstr "" #: ../pan/gui/prefs-ui.cc:537 #, fuzzy msgid "Show icons and text" msgstr "Gardar Anexos Como" #: ../pan/gui/prefs-ui.cc:576 #, fuzzy msgid "Use GNOME Preferences" msgstr "Pan: Preferencias" #: ../pan/gui/prefs-ui.cc:577 #, fuzzy msgid "Use KDE Preferences" msgstr "Pan: Preferencias" #: ../pan/gui/prefs-ui.cc:578 #, fuzzy msgid "Use OS X Preferences" msgstr "Pan: Preferencias" #: ../pan/gui/prefs-ui.cc:579 #, fuzzy msgid "Use Windows Preferences" msgstr "Pan: Preferencias" #: ../pan/gui/prefs-ui.cc:580 #, fuzzy msgid "Custom Command:" msgstr "Comando de Impresión:" #: ../pan/gui/prefs-ui.cc:632 #, fuzzy msgid "Disabled" msgstr "Fallou" #: ../pan/gui/prefs-ui.cc:633 msgid "Only new (Score == 0)" msgstr "" #: ../pan/gui/prefs-ui.cc:634 msgid "9999 or more" msgstr "" #: ../pan/gui/prefs-ui.cc:635 msgid "5000 to 9998" msgstr "" #: ../pan/gui/prefs-ui.cc:636 msgid "1 to 4999" msgstr "" #: ../pan/gui/prefs-ui.cc:637 msgid "-9998 to -1" msgstr "" #: ../pan/gui/prefs-ui.cc:638 msgid "-9999 or less" msgstr "" #: ../pan/gui/prefs-ui.cc:702 #, c-format msgid "Select default global charset. Current setting : %s ." msgstr "" #: ../pan/gui/prefs-ui.cc:738 #, fuzzy msgid "Global Charset Settings" msgstr "Propiedades Globais" #: ../pan/gui/prefs-ui.cc:832 ../pan/gui/task-pane.cc:770 #, fuzzy msgid "State" msgstr "Estado" #: ../pan/gui/prefs-ui.cc:866 #, fuzzy msgid "Enabled" msgstr "Fallou" #: ../pan/gui/prefs-ui.cc:870 #, fuzzy msgid "Column Name" msgstr "O Seu Nome" #: ../pan/gui/prefs-ui.cc:908 msgid "Pan: Preferences" msgstr "Pan: Preferencias" #: ../pan/gui/prefs-ui.cc:923 msgid "Mouse" msgstr "" #: ../pan/gui/prefs-ui.cc:925 msgid "Single-click activates, rather than selects, _groups" msgstr "" #: ../pan/gui/prefs-ui.cc:927 msgid "Single-click activates, rather than selects, _articles" msgstr "" #: ../pan/gui/prefs-ui.cc:930 #, fuzzy msgid "Groups" msgstr "Grupos" #: ../pan/gui/prefs-ui.cc:932 #, fuzzy msgid "Get new headers in subscribed groups on _startup" msgstr "Obter Novas Cabeceiras e Corpos dos Grupos Subscriptos" #: ../pan/gui/prefs-ui.cc:934 #, fuzzy msgid "Get new headers when _entering group" msgstr "Obter Novas Cabeceiras e Corpos dos Grupos Seleccionados" #: ../pan/gui/prefs-ui.cc:936 msgid "Mark entire group _read when leaving group" msgstr "" #: ../pan/gui/prefs-ui.cc:938 msgid "Mark entire group read before getting _new headers" msgstr "" #: ../pan/gui/prefs-ui.cc:940 #, fuzzy msgid "E_xpand all threads when entering group" msgstr "Obter Novas Cabeceiras e Corpos dos Grupos Seleccionados" #: ../pan/gui/prefs-ui.cc:945 msgid "Articles" msgstr "Artigos" #: ../pan/gui/prefs-ui.cc:947 msgid "Space selects next article rather than next unread" msgstr "" #: ../pan/gui/prefs-ui.cc:949 #, fuzzy msgid "Expand threads upon selection" msgstr "Expandir tódolos Fíos" #: ../pan/gui/prefs-ui.cc:951 msgid "Always show article deletion confirmation dialog" msgstr "" #: ../pan/gui/prefs-ui.cc:953 msgid "Smooth scrolling" msgstr "" #: ../pan/gui/prefs-ui.cc:958 #, fuzzy msgid "Article Cache" msgstr "Caché de Artigos" #: ../pan/gui/prefs-ui.cc:959 msgid "Clear article cache on shutdown" msgstr "" #: ../pan/gui/prefs-ui.cc:962 msgid "Size of article cache (in MiB) :" msgstr "" #: ../pan/gui/prefs-ui.cc:967 #, fuzzy msgid "File extension for Cached Articles: " msgstr "Cargando o Artigo da Caché \"%s\"" #: ../pan/gui/prefs-ui.cc:972 msgid "Tabs" msgstr "" #: ../pan/gui/prefs-ui.cc:977 msgid "_Behavior" msgstr "" #: ../pan/gui/prefs-ui.cc:977 msgid "Behavior" msgstr "" #: ../pan/gui/prefs-ui.cc:983 #, fuzzy msgid "Language Settings" msgstr "Opcións da Conexión" #. systray and notify popup #: ../pan/gui/prefs-ui.cc:992 msgid "System Tray Behavior" msgstr "" #: ../pan/gui/prefs-ui.cc:994 msgid "Hide to system tray" msgstr "" #: ../pan/gui/prefs-ui.cc:996 msgid "Start Pan minimized" msgstr "" #: ../pan/gui/prefs-ui.cc:999 #, fuzzy msgid "Show notifications" msgstr "Información do Servidor" #. allow multiple instances (seperate, not communicating with dbus) #: ../pan/gui/prefs-ui.cc:1004 msgid "Startup Behavior" msgstr "" #: ../pan/gui/prefs-ui.cc:1006 msgid "Allow multiple instances of Pan" msgstr "" #: ../pan/gui/prefs-ui.cc:1011 #, fuzzy msgid "Autosave Article Draft" msgstr "Activar Fíos de Conversa dos Artigos" #: ../pan/gui/prefs-ui.cc:1013 #, fuzzy msgid "Minutes to autosave the current Article Draft: " msgstr "Activar Fíos de Conversa dos Artigos" #: ../pan/gui/prefs-ui.cc:1018 #, fuzzy msgid "Autosave Articles" msgstr "_Gardar Artigo Como..." #: ../pan/gui/prefs-ui.cc:1020 msgid "Minutes to autosave newsrc files: " msgstr "" #: ../pan/gui/prefs-ui.cc:1026 msgid "_Miscellaneous" msgstr "" #: ../pan/gui/prefs-ui.cc:1026 msgid "Miscellaneous" msgstr "" #: ../pan/gui/prefs-ui.cc:1031 msgid "Pane Layout" msgstr "" #: ../pan/gui/prefs-ui.cc:1050 msgid "1=Groups, 2=Headers, 3=Body" msgstr "" #: ../pan/gui/prefs-ui.cc:1052 msgid "1=Groups, 2=Body, 3=Headers" msgstr "" #: ../pan/gui/prefs-ui.cc:1054 msgid "1=Headers, 2=Groups, 3=Body" msgstr "" #: ../pan/gui/prefs-ui.cc:1056 msgid "1=Headers, 2=Body, 3=Groups" msgstr "" #: ../pan/gui/prefs-ui.cc:1058 #, fuzzy msgid "1=Body, 2=Groups, 3=Headers" msgstr "Cargando as Cabeceiras do Grupo" #: ../pan/gui/prefs-ui.cc:1060 msgid "1=Body, 2=Headers, 3=Groups" msgstr "" #: ../pan/gui/prefs-ui.cc:1064 msgid "Layout" msgstr "" #: ../pan/gui/prefs-ui.cc:1069 #, fuzzy msgid "Header Pane Columns" msgstr "Activar Fíos de Conversa dos Artigos" #: ../pan/gui/prefs-ui.cc:1073 #, fuzzy msgid "_Headers" msgstr "Máis Cabeceiras" #: ../pan/gui/prefs-ui.cc:1073 #, fuzzy msgid "Headers" msgstr "Máis Cabeceiras" #: ../pan/gui/prefs-ui.cc:1079 msgid "" "This menu lets you configure Pan to take certain actions on your behalf " "automatically, based on a post's score." msgstr "" #: ../pan/gui/prefs-ui.cc:1082 msgid "_Delete posts scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1084 msgid "Mark posts _read scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1086 msgid "_Cache posts scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1088 msgid "Download _attachments of posts scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1091 #, fuzzy msgid "Actions" msgstr "Accións" #: ../pan/gui/prefs-ui.cc:1096 ../pan/gui/prefs-ui.cc:1117 msgid "Fonts" msgstr "Fontes" #: ../pan/gui/prefs-ui.cc:1098 msgid "Use custom font in Group Pane:" msgstr "" #: ../pan/gui/prefs-ui.cc:1103 msgid "Use custom font in Header Pane:" msgstr "" #: ../pan/gui/prefs-ui.cc:1108 msgid "Use custom font in Body Pane:" msgstr "" #: ../pan/gui/prefs-ui.cc:1113 msgid "Monospace font:" msgstr "" #: ../pan/gui/prefs-ui.cc:1117 #, fuzzy msgid "_Fonts" msgstr "Fontes" #: ../pan/gui/prefs-ui.cc:1122 #, fuzzy msgid "Header Pane" msgstr "Activar Fíos de Conversa dos Artigos" #: ../pan/gui/prefs-ui.cc:1125 ../pan/gui/prefs-ui.cc:1131 #: ../pan/gui/prefs-ui.cc:1137 ../pan/gui/prefs-ui.cc:1143 #: ../pan/gui/prefs-ui.cc:1149 ../pan/gui/prefs-ui.cc:1155 #, fuzzy msgid "Text:" msgstr "Texto Citado" #: ../pan/gui/prefs-ui.cc:1127 ../pan/gui/prefs-ui.cc:1133 #: ../pan/gui/prefs-ui.cc:1139 ../pan/gui/prefs-ui.cc:1145 #: ../pan/gui/prefs-ui.cc:1151 ../pan/gui/prefs-ui.cc:1157 #, fuzzy msgid "Background:" msgstr "Fondo do Corpo" #: ../pan/gui/prefs-ui.cc:1129 msgid "Scores of 9999 or more:" msgstr "" #: ../pan/gui/prefs-ui.cc:1135 msgid "Scores from 5000 to 9998:" msgstr "" #: ../pan/gui/prefs-ui.cc:1141 msgid "Scores from 1 to 4999:" msgstr "" #: ../pan/gui/prefs-ui.cc:1147 msgid "Scores from -9998 to -1:" msgstr "" #: ../pan/gui/prefs-ui.cc:1153 msgid "Scores of -9999 or less:" msgstr "" #: ../pan/gui/prefs-ui.cc:1159 msgid "Read collapsed thread:" msgstr "" #: ../pan/gui/prefs-ui.cc:1161 #, fuzzy msgid "Body Pane" msgstr "Tipo de letra da lista de grupos" #: ../pan/gui/prefs-ui.cc:1167 #, fuzzy msgid "Quoted text:" msgstr "Texto Citado" #: ../pan/gui/prefs-ui.cc:1168 msgid "URL:" msgstr "" #: ../pan/gui/prefs-ui.cc:1169 msgid "Signature:" msgstr "" #: ../pan/gui/prefs-ui.cc:1171 #, fuzzy msgid "_Colors" msgstr "Cores" #: ../pan/gui/prefs-ui.cc:1171 msgid "Colors" msgstr "Cores" #: ../pan/gui/prefs-ui.cc:1176 #, fuzzy msgid "Preferred Applications" msgstr "Accións" #: ../pan/gui/prefs-ui.cc:1180 #, fuzzy msgid "_Web browser:" msgstr "Grupos Novos" #: ../pan/gui/prefs-ui.cc:1183 #, fuzzy msgid "_Mail reader:" msgstr "Enderezo de correo:" #: ../pan/gui/prefs-ui.cc:1185 #, fuzzy msgid "_Text editor:" msgstr "_Editar" #: ../pan/gui/prefs-ui.cc:1187 #, fuzzy msgid "_Applications" msgstr "Accións" #: ../pan/gui/prefs-ui.cc:1187 #, fuzzy msgid "Applications" msgstr "Accións" #: ../pan/gui/prefs-ui.cc:1192 ../pan/gui/task-pane.cc:512 msgid "Encoding" msgstr "" #: ../pan/gui/prefs-ui.cc:1196 msgid "Default bytes per file (for encoder): " msgstr "" #: ../pan/gui/prefs-ui.cc:1201 #, fuzzy msgid "_Upload" msgstr "Accións" #: ../pan/gui/prefs-ui.cc:1201 msgid "Upload" msgstr "" #: ../pan/gui/prefs-ui.cc:1219 msgid "_Hotkeys" msgstr "" #: ../pan/gui/prefs-ui.cc:1219 msgid "Hotkeys" msgstr "" #: ../pan/gui/profiles-dialog.cc:83 msgid "Please choose your Email Address according to your PGP key's user id." msgstr "" #: ../pan/gui/profiles-dialog.cc:131 #, fuzzy msgid "Posting Profile" msgstr "Gardar Perfil" #: ../pan/gui/profiles-dialog.cc:143 #, fuzzy msgid "Profile Information" msgstr "Información do Servidor" #: ../pan/gui/profiles-dialog.cc:147 #, fuzzy msgid "_Profile Name:" msgstr "Nome do Perfil:" #: ../pan/gui/profiles-dialog.cc:150 #, fuzzy msgid "Required Information" msgstr "Información do Servidor" #: ../pan/gui/profiles-dialog.cc:154 #, fuzzy msgid "_Full Name:" msgstr "Nome Completo:" #: ../pan/gui/profiles-dialog.cc:158 msgid "" "Your Email Address.\n" "Note that this has to match your PGP Signature's Address\n" "if you want to PGP-Sign or Encrypt your messages correctly." msgstr "" #: ../pan/gui/profiles-dialog.cc:162 #, fuzzy msgid "_Email Address:" msgstr "Enderezo de E-mail:" #: ../pan/gui/profiles-dialog.cc:164 #, fuzzy msgid "_Post Articles via:" msgstr "Carga o Artigo" #: ../pan/gui/profiles-dialog.cc:167 #, fuzzy msgid "Signature" msgstr "ignorado" #: ../pan/gui/profiles-dialog.cc:170 msgid "_Use a Signature" msgstr "" #: ../pan/gui/profiles-dialog.cc:174 #, fuzzy msgid "Signature File" msgstr "Ficheiro coa Sinatura:" #: ../pan/gui/profiles-dialog.cc:184 #, fuzzy msgid "Text File" msgstr "Ordenar Artigos" #: ../pan/gui/profiles-dialog.cc:186 #, fuzzy msgid "Text" msgstr "Texto Citado" #: ../pan/gui/profiles-dialog.cc:188 #, fuzzy msgid "Command" msgstr "Comando de Impresión:" #: ../pan/gui/profiles-dialog.cc:191 #, fuzzy msgid "PGP Signature" msgstr "ignorado" #: ../pan/gui/profiles-dialog.cc:196 #, fuzzy msgid "Signature Type : " msgstr "Ficheiro coa Sinatura:" #: ../pan/gui/profiles-dialog.cc:223 msgid "X-Face (Avatar)" msgstr "" #: ../pan/gui/profiles-dialog.cc:226 msgid "" "You can add an avatar icon to your articles with a unique X-Face code. \n" "Add the code without the trailing \"X-Face:\" \n" " if it was generated by a helper program (for example http://www.dairiki.org/" "xface/xface.php)." msgstr "" #: ../pan/gui/profiles-dialog.cc:229 msgid "_X-Face:" msgstr "" #: ../pan/gui/profiles-dialog.cc:231 #, fuzzy msgid "Optional Information" msgstr "Información do Servidor" #: ../pan/gui/profiles-dialog.cc:236 msgid "" "When posting to Usenet, your article's Message-ID contains a domain name. \n" "You can set a custom domain name here, or leave it blank to let Pan use the " "domain name from your email address." msgstr "" #: ../pan/gui/profiles-dialog.cc:239 #, fuzzy msgid "Message-ID _Domain Name:" msgstr "Id-Mensaxe: " #: ../pan/gui/profiles-dialog.cc:243 #, c-format msgid "" "%i for Message-ID\n" "%a for Author and Address\n" "%n for Author name\n" "%d for Date" msgstr "" #: ../pan/gui/profiles-dialog.cc:244 #, fuzzy msgid "_Attribution:" msgstr "Autorización" #: ../pan/gui/profiles-dialog.cc:268 msgid "" "Extra headers to be included in your posts, such as\n" "Reply-To: \"Your Name\"\n" "Organization: Your Organization\n" msgstr "" #: ../pan/gui/profiles-dialog.cc:278 #, fuzzy msgid "E_xtra Headers:" msgstr "Máis Cabeceiras" #: ../pan/gui/profiles-dialog.cc:323 #, fuzzy msgid "Invalid email address." msgstr "Nome real non válido" #: ../pan/gui/profiles-dialog.cc:324 msgid "Please use an address of the form joe@somewhere.org" msgstr "" #: ../pan/gui/profiles-dialog.cc:479 #, fuzzy msgid "New Profile" msgstr "Gardar Perfil" #: ../pan/gui/profiles-dialog.cc:525 #, fuzzy msgid "Posting Profiles" msgstr "o select() fallou: %s" #: ../pan/gui/profiles-dialog.cc:541 #, fuzzy msgid "Profiles" msgstr "Gardar Perfil" #: ../pan/gui/save-attach-ui.cc:77 ../pan/gui/save-ui.cc:77 #, c-format msgid "" "%g - group as one directory (alt.binaries.pictures.trains)\n" "%G - group as nested directory (/alt/binaries/pictures/trains)\n" "%s - subject line excerpt\n" "%S - subject line\n" " \n" "\"/home/user/News/Pan/%g\" becomes\n" "\"/home/user/News/Pan/alt.binaries.pictures.trains\", and\n" "\"/home/user/News/Pan/%G\" becomes\n" "\"/home/user/News/Pan/alt/binaries/pictures/trains\"," msgstr "" #: ../pan/gui/save-attach-ui.cc:223 ../pan/gui/save-ui.cc:242 msgid "Add to the queue sorted by date posted" msgstr "" #: ../pan/gui/save-attach-ui.cc:224 ../pan/gui/save-ui.cc:243 #, fuzzy msgid "Add to the front of the queue" msgstr "Engadir Tarefa ó Inicio da Fila" #: ../pan/gui/save-attach-ui.cc:225 ../pan/gui/save-ui.cc:244 #, fuzzy msgid "Add to the back of the queue" msgstr "Engadir Tarefa ó Final da Fila" #: ../pan/gui/save-attach-ui.cc:257 #, fuzzy msgid "Pan: Save Attachments" msgstr "Gardar Anexos Como" #: ../pan/gui/save-attach-ui.cc:282 ../pan/gui/save-attach-ui.cc:300 #: ../pan/gui/save-ui.cc:296 ../pan/gui/save-ui.cc:314 #, fuzzy msgid "_Location:" msgstr "Localización" #: ../pan/gui/save-attach-ui.cc:286 ../pan/gui/save-ui.cc:300 #, fuzzy msgid "Save Articles" msgstr "_Gardar Artigo Como..." #: ../pan/gui/save-attach-ui.cc:303 ../pan/gui/save-ui.cc:317 #, c-format msgid "_Group's path: %s" msgstr "" #: ../pan/gui/save-attach-ui.cc:314 ../pan/gui/save-ui.cc:332 msgid "_Priority:" msgstr "" #: ../pan/gui/save-ui.cc:233 #, fuzzy msgid "Save attachments" msgstr "Gardar Anexos Como" #: ../pan/gui/save-ui.cc:234 #, fuzzy msgid "Save text" msgstr "Texto Citado" #: ../pan/gui/save-ui.cc:235 #, fuzzy msgid "Save attachments and text" msgstr "Gardar Anexos Como" #: ../pan/gui/save-ui.cc:271 #, fuzzy msgid "Pan: Save Articles" msgstr "Amosar Artigos Gravados" #: ../pan/gui/save-ui.cc:328 #, fuzzy msgid "_Action:" msgstr "Accións" #: ../pan/gui/score-add-ui.cc:89 msgid "is more than" msgstr "" #: ../pan/gui/score-add-ui.cc:90 msgid "is at most" msgstr "" #: ../pan/gui/score-add-ui.cc:112 #, fuzzy msgid "increase the article's score by" msgstr "Encher/Axustar Corpo da Mensaxe" #: ../pan/gui/score-add-ui.cc:113 #, fuzzy msgid "decrease the article's score by" msgstr "Encher/Axustar Corpo da Mensaxe" #: ../pan/gui/score-add-ui.cc:114 msgid "set the article's score to" msgstr "" #: ../pan/gui/score-add-ui.cc:115 msgid "watch the article (set its score to 9999)" msgstr "" #: ../pan/gui/score-add-ui.cc:116 msgid "ignore the article (set its score to -9999)" msgstr "" #: ../pan/gui/score-add-ui.cc:141 #, fuzzy msgid "References" msgstr "Referencias: " #: ../pan/gui/score-add-ui.cc:142 #, fuzzy msgid "Line Count" msgstr "- Número de Liñas" #: ../pan/gui/score-add-ui.cc:143 #, fuzzy msgid "Byte Count" msgstr "- Número de Liñas" #: ../pan/gui/score-add-ui.cc:144 msgid "Crosspost Group Count" msgstr "" #: ../pan/gui/score-add-ui.cc:145 msgid "Age (in days)" msgstr "" #: ../pan/gui/score-add-ui.cc:167 msgid "for the next month" msgstr "" #: ../pan/gui/score-add-ui.cc:168 msgid "for the next six months" msgstr "" #: ../pan/gui/score-add-ui.cc:169 msgid "forever" msgstr "" #: ../pan/gui/score-add-ui.cc:194 msgid "contains" msgstr "contén" #: ../pan/gui/score-add-ui.cc:195 #, fuzzy msgid "doesn't contain" msgstr "non contén" #: ../pan/gui/score-add-ui.cc:196 #, fuzzy msgid "is" msgstr "Ocorrencias" #: ../pan/gui/score-add-ui.cc:197 msgid "isn't" msgstr "" #: ../pan/gui/score-add-ui.cc:198 msgid "starts with" msgstr "" #: ../pan/gui/score-add-ui.cc:199 msgid "ends with" msgstr "" #: ../pan/gui/score-add-ui.cc:200 msgid "matches regex" msgstr "" #: ../pan/gui/score-add-ui.cc:481 #, fuzzy msgid "Another rule already sets this article's score." msgstr "Encher/Axustar Corpo da Mensaxe" #: ../pan/gui/score-add-ui.cc:482 msgid "You may want to go back or delete the old rule." msgstr "" #: ../pan/gui/score-add-ui.cc:553 #, fuzzy msgid "Add and Re_score" msgstr "Servidor de Correo" #: ../pan/gui/score-add-ui.cc:604 ../pan/gui/score-add-ui.cc:624 #, fuzzy msgid "New Scoring Rule" msgstr "Nome da Nova Regra" #: ../pan/gui/score-add-ui.cc:635 #, fuzzy msgid "If the group name" msgstr "Aumentar Panel de Grupos de Novas" #: ../pan/gui/score-add-ui.cc:642 #, fuzzy msgid "And the article's" msgstr "Amosar Artigos Observados" #: ../pan/gui/score-view-ui.cc:56 #, fuzzy msgid "Close and Re_score" msgstr "Pechar esta Fiestra" #: ../pan/gui/score-view-ui.cc:154 #, c-format msgid "File %s, Lines %d - %d" msgstr "" #: ../pan/gui/score-view-ui.cc:182 #, fuzzy msgid "Pan: Article's Scores" msgstr "_Gardar Artigo Como..." #: ../pan/gui/score-view-ui.cc:208 #, fuzzy msgid "Add" msgstr "_Engadir" #: ../pan/gui/score-view-ui.cc:213 #, fuzzy msgid "New Score" msgstr "Servidores de Novas" #: ../pan/gui/score-view-ui.cc:218 msgid "Criteria" msgstr "" #: ../pan/gui/score-view-ui.cc:241 #, fuzzy msgid "Add a New Scoring Rule" msgstr "Crear unha nova carpeta." #: ../pan/gui/score-view-ui.cc:248 #, fuzzy msgid "Remove the Selected Scoring Rule" msgstr "Renomear o grupo seleccionado." #: ../pan/gui/server-ui.cc:221 msgid "Please specify the server's address." msgstr "" #: ../pan/gui/server-ui.cc:264 msgid "Import SSL certificate (PEM format) from File" msgstr "" #. create the dialog #: ../pan/gui/server-ui.cc:290 ../pan/gui/server-ui.cc:869 #, fuzzy msgid "Add a Server" msgstr "Servidor de Correo" #: ../pan/gui/server-ui.cc:290 ../pan/gui/server-ui.cc:875 #, fuzzy msgid "Edit a Server's Settings" msgstr "Propiedades por Servidor" #: ../pan/gui/server-ui.cc:310 msgid "Location" msgstr "Localización" #: ../pan/gui/server-ui.cc:314 msgid "The news server's actual address, e.g. \"news.mynewsserver.com\"" msgstr "" #: ../pan/gui/server-ui.cc:315 #, fuzzy msgid "_Address:" msgstr "Enderezo:" #: ../pan/gui/server-ui.cc:319 msgid "The news server's port number. Typically 119." msgstr "" #: ../pan/gui/server-ui.cc:320 #, fuzzy msgid "Por_t:" msgstr "Porto:" #: ../pan/gui/server-ui.cc:323 msgid "Login (if Required)" msgstr "" #: ../pan/gui/server-ui.cc:327 #, fuzzy msgid "_Username:" msgstr "Nome de Usuario" #: ../pan/gui/server-ui.cc:328 msgid "" "The username to give the server when asked. If your server doesn't require " "authentication, you can leave this blank." msgstr "" #: ../pan/gui/server-ui.cc:332 #, fuzzy msgid "_Password:" msgstr "Contrasinal:" #: ../pan/gui/server-ui.cc:333 msgid "" "The password to give the server when asked. If your server doesn't require " "authentication, you can leave this blank." msgstr "" #: ../pan/gui/server-ui.cc:336 #, fuzzy msgid "Settings" msgstr "Opcións da Conexión" #: ../pan/gui/server-ui.cc:343 #, fuzzy msgid "Connection _Limit:" msgstr "Conectando" #: ../pan/gui/server-ui.cc:347 msgid "After Two Weeks" msgstr "" #: ../pan/gui/server-ui.cc:348 msgid "After One Month" msgstr "" #: ../pan/gui/server-ui.cc:349 msgid "After Two Months" msgstr "" #: ../pan/gui/server-ui.cc:350 msgid "After Three Months" msgstr "" #: ../pan/gui/server-ui.cc:351 msgid "After Six Months" msgstr "" #: ../pan/gui/server-ui.cc:352 #, fuzzy msgid "Never Expire Old Articles" msgstr "Mover os Artigos Seleccionados" #: ../pan/gui/server-ui.cc:366 #, fuzzy msgid "E_xpire Old Articles:" msgstr "Carga o Artigo" #: ../pan/gui/server-ui.cc:370 #, fuzzy msgid "Primary" msgstr "Prioridade" #: ../pan/gui/server-ui.cc:371 msgid "Fallback" msgstr "" #: ../pan/gui/server-ui.cc:385 #, fuzzy msgid "Server Rank:" msgstr "Servidor" #: ../pan/gui/server-ui.cc:389 msgid "" "Fallback servers are used for articles that can't be found on the " "primaries. One common approach is to use free servers as primaries and " "subscription servers as fallbacks." msgstr "" #: ../pan/gui/server-ui.cc:396 msgid "Security" msgstr "" #: ../pan/gui/server-ui.cc:401 msgid "Use Plaintext (Unsecured) Connections" msgstr "" #: ../pan/gui/server-ui.cc:402 #, fuzzy msgid "Use Secure SSL Connections" msgstr "Establecer Límites de Conexións por Servidor" #: ../pan/gui/server-ui.cc:418 msgid "TLS (SSL) Options:" msgstr "" #: ../pan/gui/server-ui.cc:423 msgid "" "You can set the option for using/disabling secure SSL/TLS connections here. " "If you enable SSL/TLS, your data is encrypted and secure. It is encouraged " "to use this option for privacy reasons." msgstr "" #: ../pan/gui/server-ui.cc:428 msgid "Always trust this server's certificate" msgstr "" #: ../pan/gui/server-ui.cc:602 #, c-format msgid "Really delete \"%s\"?" msgstr "" #: ../pan/gui/server-ui.cc:691 msgid "No information available." msgstr "" #: ../pan/gui/server-ui.cc:697 #, c-format msgid "Server Certificate for '%s'" msgstr "" #: ../pan/gui/server-ui.cc:795 #, c-format msgid "Really delete certificate for \"%s\"?" msgstr "" #. dialog #: ../pan/gui/server-ui.cc:822 ../pan/gui/server-ui.cc:843 #: ../pan/gui/server-ui.cc:941 #, fuzzy msgid "Servers" msgstr "Servidor" #: ../pan/gui/server-ui.cc:882 #, fuzzy msgid "Remove a Server" msgstr "Servidor de Novas" #. dialog #: ../pan/gui/server-ui.cc:915 msgid "SSL Certificates" msgstr "" #: ../pan/gui/server-ui.cc:936 msgid "Certificates" msgstr "" #: ../pan/gui/server-ui.cc:967 msgid "Import Certificate" msgstr "" #: ../pan/gui/server-ui.cc:973 msgid "Inspect Certificate" msgstr "" #: ../pan/gui/server-ui.cc:980 #, fuzzy msgid "Remove Certificate" msgstr "Servidor de Novas" #: ../pan/gui/task-pane.cc:143 #, c-format msgid "" "\n" "Upload\n" "\n" "Subject: \"%s\"\n" "From: %s\n" "Groups: %s\n" "Sourcefile: %s\n" msgstr "" #: ../pan/gui/task-pane.cc:155 #, c-format msgid "" "\n" "Download\n" "\n" "Subject: \"%s\"\n" "From: %s\n" "Date: %s\n" "Groups: %s\n" "Save Path: %s\n" msgstr "" #: ../pan/gui/task-pane.cc:157 #, fuzzy msgid "unknown" msgstr "Dominio Descoñecido" #: ../pan/gui/task-pane.cc:263 msgid "Choose new destination for selected Tasks" msgstr "" #: ../pan/gui/task-pane.cc:417 #, fuzzy, c-format msgid "Pan: Tasks (%d Queued, %d Running, %d Stopped)" msgstr "" "Xestor de Tarefas do Pan %s (%d na Fila, %d a se Executar, %d Fallidas)" #: ../pan/gui/task-pane.cc:419 #, fuzzy, c-format msgid "Pan: Tasks (%d Queued, %d Running)" msgstr "Xestor de Tarefas do Pan %s (%d na Fila, %d a se Executar)" #: ../pan/gui/task-pane.cc:421 #, fuzzy, c-format msgid "Pan: Tasks" msgstr "Regras" #: ../pan/gui/task-pane.cc:446 #, c-format msgid "%lu selected, %s" msgstr "" #: ../pan/gui/task-pane.cc:510 msgid "Running" msgstr "Executando" #: ../pan/gui/task-pane.cc:511 #, fuzzy msgid "Decoding" msgstr "Decodificando: %s" #: ../pan/gui/task-pane.cc:513 msgid "Queued for Decode" msgstr "" #: ../pan/gui/task-pane.cc:514 msgid "Queued for Encode" msgstr "" #: ../pan/gui/task-pane.cc:515 msgid "Queued" msgstr "Na Fila" #: ../pan/gui/task-pane.cc:516 msgid "Stopped" msgstr "" #: ../pan/gui/task-pane.cc:517 #, fuzzy msgid "Removing" msgstr "Reservar" #: ../pan/gui/task-pane.cc:546 #, fuzzy, c-format msgid "%d%% Done" msgstr "% Feita" #: ../pan/gui/task-pane.cc:552 #, fuzzy, c-format msgid "%d:%02d:%02d Remaining (%d @ %lu KiB/s)" msgstr "%.2f kb/s, falta %d:%02d:%02d" #: ../pan/gui/task-pane.cc:646 ../pan/gui/task-pane.cc:647 #, fuzzy msgid "Move To Top" msgstr "_Baixar Liña" #: ../pan/gui/task-pane.cc:651 ../pan/gui/task-pane.cc:652 #, fuzzy msgid "Move To Bottom" msgstr "Mover Tarefa(s) Seleccionada(s) ó Final" #: ../pan/gui/task-pane.cc:656 ../pan/gui/task-pane.cc:657 msgid "Stop Task" msgstr "" #: ../pan/gui/task-pane.cc:661 ../pan/gui/task-pane.cc:662 #, fuzzy msgid "Delete Task" msgstr "Borrar" #: ../pan/gui/task-pane.cc:666 ../pan/gui/task-pane.cc:667 msgid "Restart Task" msgstr "" #: ../pan/gui/task-pane.cc:671 ../pan/gui/task-pane.cc:672 msgid "Change Download Destination" msgstr "" #: ../pan/gui/task-pane.cc:729 #, fuzzy msgid "_Online" msgstr "Conectado" #: ../pan/gui/task-pane.cc:746 msgid "Restart Tasks" msgstr "" #: ../pan/gui/task-pane.cc:748 msgid "Stop Tasks" msgstr "" #: ../pan/gui/task-pane.cc:750 #, fuzzy msgid "Delete Tasks" msgstr "Borrar" #: ../pan/gui/url.cc:123 #, fuzzy, c-format msgid "Error starting URL: %s (Command was: %s)" msgstr "Erro escribindo a `%s'" #: ../pan/tasks/decoder.cc:115 #, fuzzy, c-format msgid "Couldn't save file \"%s\": %s" msgstr "Non foi posible crear o directorio: " #: ../pan/tasks/decoder.cc:137 ../pan/tasks/encoder.cc:136 msgid "Error initializing uulib" msgstr "" #: ../pan/tasks/decoder.cc:152 ../pan/tasks/socket-impl-gio.cc:352 #: ../pan/tasks/socket-impl-openssl.cc:634 #, fuzzy, c-format msgid "Error reading from %s: %s" msgstr "Erro lendo do socket." #: ../pan/tasks/decoder.cc:192 #, fuzzy, c-format msgid "Saved \"%s\"" msgstr "Gardando \"%s\"" #: ../pan/tasks/decoder.cc:199 #, fuzzy, c-format msgid "" "Error saving \"%s\":\n" "%s." msgstr "Erro lendo de `%s'" #: ../pan/tasks/decoder.cc:314 ../pan/tasks/task-article.cc:350 #, fuzzy, c-format msgid "Decoding %s" msgstr "Decodificando: %s" #: ../pan/tasks/encoder.cc:102 ../pan/tasks/encoder.cc:155 #, fuzzy, c-format msgid "Error loading %s from cache." msgstr "Erro lendo do socket." #: ../pan/tasks/encoder.cc:177 #, fuzzy, c-format msgid "Error encoding %s: %s" msgstr "Erro lendo de `%s'" #: ../pan/tasks/encoder.cc:269 #, fuzzy, c-format msgid "Encoding %s" msgstr "Decodificando: %s" #: ../pan/tasks/nntp.cc:126 #, fuzzy, c-format msgid "%s requires a username, but none is set." msgstr "O servidor require nome de usuario e contrasinal" #: ../pan/tasks/nntp.cc:139 #, fuzzy, c-format msgid "%s requires a password, but none is set." msgstr "O servidor require nome de usuario e contrasinal" #: ../pan/tasks/nntp.cc:205 #, c-format msgid "Sending \"%s\" to %s returned an error: %s" msgstr "" #: ../pan/tasks/nntp.cc:228 #, c-format msgid "Sending \"%s\" to %s returned an unrecognized response: \"%s\"" msgstr "" #: ../pan/tasks/nntp-pool.cc:222 #, fuzzy, c-format msgid "Unable to connect to \"%s\"" msgstr "Non é posible abrir unha conexión co servidor de correo \"%s\"" #: ../pan/tasks/socket-impl-gio.cc:173 ../pan/tasks/socket-impl-gio.cc:211 #: ../pan/tasks/socket-impl-openssl.cc:214 #: ../pan/tasks/socket-impl-openssl.cc:252 #, fuzzy, c-format msgid "Error connecting to \"%s\"" msgstr "Erro lendo de `%s'" #: ../pan/tasks/socket-impl-gio.cc:351 ../pan/tasks/socket-impl-openssl.cc:633 #, fuzzy msgid "Unknown Error" msgstr "Dominio Descoñecido" #: ../pan/tasks/task-article.cc:61 ../pan/tasks/task-article.cc:156 #: ../pan/tasks/task-article.cc:159 #, fuzzy, c-format msgid "Saving %s" msgstr "Gardando \"%s\"" #: ../pan/tasks/task-article.cc:63 #, fuzzy, c-format msgid "Reading %s" msgstr "Cargando Grupos" #: ../pan/tasks/task-article.cc:322 #, c-format msgid "Article \"%s\" is incomplete -- the news server(s) don't have part %s" msgstr "" #: ../pan/tasks/task-groups.cc:40 #, fuzzy, c-format msgid "Getting group list from \"%s\"" msgstr "Obtendo %s de %s" #: ../pan/tasks/task-groups.cc:122 #, fuzzy, c-format msgid "Fetched %lu Groups" msgstr "Recibíronse %u grupos de \"%s\"" #: ../pan/tasks/task-post.cc:35 #, fuzzy, c-format msgid "Posting \"%s\"" msgstr "Abrindo \"%s\"" #: ../pan/tasks/task-post.cc:76 #, fuzzy, c-format msgid "Posting of \"%s\" failed: %s" msgstr "o select() fallou: %s" #: ../pan/tasks/task-post.cc:81 #, c-format msgid "Posting of \"%s\" succesful: %s" msgstr "" #: ../pan/tasks/task-upload.cc:51 #, fuzzy, c-format msgid "Uploading %s" msgstr "Cargando Grupos" #: ../pan/tasks/task-upload.cc:249 #, fuzzy, c-format msgid "Uploading %s - Part %d of %d" msgstr "Publicando o artigo \"%s\" parte %d de %d." #: ../pan/tasks/task-upload.cc:251 #, c-format msgid "Uploading Message body with Subject \"%s\"" msgstr "" #: ../pan/tasks/task-upload.cc:308 #, c-format msgid "Posting of File %s (Part %d of %d) failed: No Posts allowed by server." msgstr "" #: ../pan/tasks/task-upload.cc:316 #, fuzzy, c-format msgid "Posting of File %s (Part %d of %d) failed: %s" msgstr "o select() fallou: %s" #: ../pan/tasks/task-upload.cc:326 ../pan/tasks/task-upload.cc:333 #, fuzzy, c-format msgid "Posting of file %s (Part %d of %d) succesful: %s" msgstr "Publicando o artigo \"%s\" parte %d de %d." #: ../pan/tasks/task-upload.cc:343 #, fuzzy, c-format msgid "Posting of file %s succesful: %s" msgstr "o select() fallou: %s" #: ../pan/tasks/task-upload.cc:347 #, c-format msgid "" "Posting of file %s not completely successful: Check the log (right-click on " "list item) !" msgstr "" #: ../pan/tasks/task-upload.cc:364 #, c-format msgid "" "Posting of file %s not successful: Check the log (right-click on list item) !" msgstr "" #: ../pan/tasks/task-xover.cc:79 #, fuzzy, c-format msgid "Getting all headers for \"%s\"" msgstr "Recibindo %s de \"%s\"" #: ../pan/tasks/task-xover.cc:81 #, fuzzy, c-format msgid "Getting new headers for \"%s\"" msgstr "Recibindo %s de \"%s\"" #. SAMPLE #: ../pan/tasks/task-xover.cc:83 #, fuzzy, c-format msgid "Sampling headers for \"%s\"" msgstr "Recibindo %s de \"%s\"" #: ../pan/tasks/task-xover.cc:369 #, fuzzy, c-format msgid "%s (%lu parts, %lu articles)" msgstr "Activando os Fíos en %u artigos" #: ../pan/tasks/task-xoverinfo.cc:78 #, fuzzy, c-format msgid "Getting header counts for \"%s\"" msgstr "Recibindo %s de \"%s\"" #: ../pan/usenet-utils/filter-info.cc:163 #, fuzzy msgid "article doesn't have attachments" msgstr "o artigo ten anexos binarios %s" #: ../pan/usenet-utils/filter-info.cc:167 #, fuzzy msgid "the article has attachments" msgstr "o artigo ten anexos binarios %s" #: ../pan/usenet-utils/filter-info.cc:171 #, fuzzy msgid "the article isn't cached locally" msgstr "O artigo está _marcado como" #: ../pan/usenet-utils/filter-info.cc:175 #, fuzzy msgid "the article is cached locally" msgstr "O artigo está _marcado como" #: ../pan/usenet-utils/filter-info.cc:179 #, fuzzy msgid "the article wasn't posted by you" msgstr "O artigo _foi publicado hai máis de" #: ../pan/usenet-utils/filter-info.cc:183 #, fuzzy msgid "the article was posted by you" msgstr "O artigo _foi publicado hai máis de" #: ../pan/usenet-utils/filter-info.cc:187 #, fuzzy msgid "the article has been read" msgstr "O artigo _ten" #: ../pan/usenet-utils/filter-info.cc:191 #, fuzzy msgid "the article hasn't been read" msgstr "O artigo _ten" #: ../pan/usenet-utils/filter-info.cc:195 #, fuzzy, c-format msgid "the article is less than %ld bytes long" msgstr "o artigo ten máis de %d días" #: ../pan/usenet-utils/filter-info.cc:200 #, fuzzy, c-format msgid "the article is at least %ld bytes long" msgstr "o artigo ten máis de %d días" #: ../pan/usenet-utils/filter-info.cc:205 #, fuzzy, c-format msgid "the article is less than %ld lines long" msgstr "o artigo ten máis de %d días" #: ../pan/usenet-utils/filter-info.cc:210 #, fuzzy, c-format msgid "the article is at least %ld lines long" msgstr "o artigo ten máis de %d días" #: ../pan/usenet-utils/filter-info.cc:215 #, fuzzy, c-format msgid "the article is less than %ld days old" msgstr "o artigo ten máis de %d días" #: ../pan/usenet-utils/filter-info.cc:220 #, fuzzy, c-format msgid "the article is at least %ld days old" msgstr "o artigo ten máis de %d días" #: ../pan/usenet-utils/filter-info.cc:225 #, fuzzy, c-format msgid "the article was posted to less than %ld groups" msgstr "o artigo foi publicado en máis de %d grupos" #: ../pan/usenet-utils/filter-info.cc:230 #, fuzzy, c-format msgid "the article was posted to at least %ld groups" msgstr "o artigo foi publicado en máis de %d grupos" #: ../pan/usenet-utils/filter-info.cc:235 #, fuzzy, c-format msgid "the article's score is less than %ld" msgstr "O artigo ten _máis de" #: ../pan/usenet-utils/filter-info.cc:240 #, fuzzy, c-format msgid "the article's score is %ld or higher" msgstr "O artigo ten _máis de" #: ../pan/usenet-utils/filter-info.cc:249 #: ../pan/usenet-utils/filter-info.cc:259 #, fuzzy, c-format msgid "%s doesn't contain \"%s\"" msgstr "%s non contén %s \"%s\"" #: ../pan/usenet-utils/filter-info.cc:250 #: ../pan/usenet-utils/filter-info.cc:260 #, fuzzy, c-format msgid "%s isn't \"%s\"" msgstr "%s contén %s \"%s\"" #: ../pan/usenet-utils/filter-info.cc:251 #: ../pan/usenet-utils/filter-info.cc:261 #, fuzzy, c-format msgid "%s doesn't begin with \"%s\"" msgstr "%s non contén %s \"%s\"" #: ../pan/usenet-utils/filter-info.cc:252 #: ../pan/usenet-utils/filter-info.cc:262 #, fuzzy, c-format msgid "%s doesn't end with \"%s\"" msgstr "%s non contén %s \"%s\"" #: ../pan/usenet-utils/filter-info.cc:253 #: ../pan/usenet-utils/filter-info.cc:263 #, fuzzy, c-format msgid "%s doesn't match the regex \"%s\"" msgstr "%s non contén %s \"%s\"" #: ../pan/usenet-utils/filter-info.cc:275 #, fuzzy, c-format msgid "%s contains \"%s\"" msgstr "%s contén %s \"%s\"" #: ../pan/usenet-utils/filter-info.cc:276 #, fuzzy, c-format msgid "%s is \"%s\"" msgstr "%s contén %s \"%s\"" #: ../pan/usenet-utils/filter-info.cc:277 #, fuzzy, c-format msgid "%s begins with \"%s\"" msgstr "%s contén %s \"%s\"" #: ../pan/usenet-utils/filter-info.cc:278 #, fuzzy, c-format msgid "%s ends with \"%s\"" msgstr "%s contén %s \"%s\"" #: ../pan/usenet-utils/filter-info.cc:279 #, fuzzy, c-format msgid "%s matches the regex \"%s\"" msgstr "o artigo está marcado como %s" #: ../pan/usenet-utils/filter-info.cc:285 msgid "Any of these tests fail:" msgstr "" #: ../pan/usenet-utils/filter-info.cc:292 msgid "All of these tests pass:" msgstr "" #: ../pan/usenet-utils/filter-info.cc:299 msgid "None of these tests pass:" msgstr "" #: ../pan/usenet-utils/filter-info.cc:306 msgid "Any of these tests pass:" msgstr "" #: ../pan/usenet-utils/gnksa.cc:878 #, c-format msgid "No email address provided; generating message-id with domain \"%s\"" msgstr "" #: ../pan/usenet-utils/message-check.cc:124 msgid "Warning: Reply seems to be top-posted." msgstr "" #: ../pan/usenet-utils/message-check.cc:145 msgid "Warning: The signature marker should be \"-- \", not \"--\"." msgstr "" #: ../pan/usenet-utils/message-check.cc:162 #, fuzzy msgid "Warning: Signature prefix with no signature." msgstr "AVISO: Prefixo de sinatura sen ningunha sinatura." #: ../pan/usenet-utils/message-check.cc:167 #, fuzzy msgid "Warning: Signature is more than 4 lines long." msgstr "AVISO: a sinatura ten máis de 4 liñas" #: ../pan/usenet-utils/message-check.cc:172 #, fuzzy msgid "Warning: Signature is more than 80 characters wide." msgstr "AVISO: a sinatura ten máis de 4 liñas" #: ../pan/usenet-utils/message-check.cc:198 #, fuzzy, c-format msgid "Warning: %d line is more than 80 characters wide." msgid_plural "Warning: %d lines are more than 80 characters wide." msgstr[0] "AVISO: a sinatura ten máis de 4 liñas" msgstr[1] "AVISO: a sinatura ten máis de 4 liñas" #: ../pan/usenet-utils/message-check.cc:223 #, fuzzy msgid "Error: Message is empty." msgstr "ERRO: A mensaxe está baleira." #: ../pan/usenet-utils/message-check.cc:258 #, fuzzy msgid "Warning: The message is entirely quoted text!" msgstr "AVISO: ¡A mensaxe é completamente texto citado!" #: ../pan/usenet-utils/message-check.cc:259 #, fuzzy msgid "Warning: The message is mostly quoted text." msgstr "AVISO: A mensaxe é principalmente texto citado." #: ../pan/usenet-utils/message-check.cc:309 #, fuzzy msgid "Error: Message appears to have no new content." msgstr "ERRO: Semella que a mensaxe non ten nada novo." #: ../pan/usenet-utils/message-check.cc:344 #: ../pan/usenet-utils/message-check.cc:383 #, c-format msgid "" "Warning: The posting profile's server doesn't carry newsgroup\n" "\t\"%s\".\n" "\tIf the group name is correct, switch profiles in the \"From:\"\n" "\tline or edit the profile with \"Edit|Manage Posting Profiles\"." msgstr "" #: ../pan/usenet-utils/message-check.cc:355 #, fuzzy msgid "Warning: Following-Up to too many groups." msgstr "AVISO: Respondendo a moitos grupos." #: ../pan/usenet-utils/message-check.cc:366 #, fuzzy msgid "Error: No Subject specified." msgstr "ERRO: Non se indicou un asunto." #: ../pan/usenet-utils/message-check.cc:395 #, fuzzy, c-format msgid "Warning: Group \"%s\" is read-only." msgstr "AVISO: Grupo descoñecido: \"%s\"." #: ../pan/usenet-utils/message-check.cc:404 #, fuzzy msgid "Error: Posting to a very large number of groups." msgstr "ERRO: Publicando nun grande número de grupos." #: ../pan/usenet-utils/message-check.cc:409 #, fuzzy msgid "Warning: Posting to a large number of groups." msgstr "AVISO: Publicando nun grande número de grupos." #: ../pan/usenet-utils/message-check.cc:416 #, fuzzy msgid "Warning: Crossposting without setting Followup-To header." msgstr "AVISO: Multi-publicando sen poñer Responder-En." #: ../pan/usenet-utils/message-check.cc:441 #, fuzzy msgid "Error: Bad email address." msgstr "Enderezo de e-mail:" #: ../pan/usenet-utils/message-check.cc:450 msgid "Warning: Most newsgroups frown upon HTML posts." msgstr "" #: ../pan/usenet-utils/message-check.cc:486 #, fuzzy msgid "Error: No Recipients." msgstr "¡Non hai Destinatarios!" #: ../pan/usenet-utils/scorefile.cc:304 #, c-format msgid "" "Error reading score in %*.*s, line %d: expected 'Expires: MM/DD/YYYY' or " "'Expires: DD-MM-YYYY'." msgstr "" #: ../pan/usenet-utils/scorefile.cc:307 #, c-format msgid "Expired old score from %*.*s, line %d" msgstr "" #: ../pan/usenet-utils/scorefile.cc:380 #, c-format msgid "Error reading score in %*.*s, line %d: unexpected line." msgstr "" #: ../pan/usenet-utils/scorefile.cc:428 #, c-format msgid "Read %lu scoring rules in %lu sections from \"%s\"" msgstr "" #: ../pan/usenet-utils/ssl-utils.h:199 #, fuzzy, c-format msgid "Error printing the server certificate for '%s'" msgstr "Erro enviando a mensaxe. O servidor dixo: %s" #: ../pan/usenet-utils/ssl-utils.h:216 #, c-format msgid "" "The current server '%s' sent this security certificate :\n" "\n" msgstr "" #: ../pan/usenet-utils/ssl-utils.h:217 #, c-format msgid "" "Certificate information for server '%s' :\n" "\n" msgstr "" #: ../pan/usenet-utils/ssl-utils.h:219 #, c-format msgid "" "%sIssuer information:\n" "%s\n" "Valid until : %s\n" "\n" "Not valid before : %s\n" "\n" msgstr "" #: ../pan/usenet-utils/text-massager.cc:397 msgid "> [quoted text muted]" msgstr "> [texto citado agochado]" #, fuzzy #~ msgid "_Toggle Flag on for Thread" #~ msgstr "Fíos Observados" #, fuzzy #~ msgid "An error has occured. Maximize Pan to investigate." #~ msgstr "" #~ "Ocorreu un erro ó descodificar.\n" #~ "%s" #, fuzzy #~ msgid "Encoding Options" #~ msgstr "Condicións" #, fuzzy #~ msgid "Creating directory \"%s\"" #~ msgstr "Non foi posible crear o directorio: " #, fuzzy #~ msgid "Couldn't create directory \"%s\": %s" #~ msgstr "Non foi posible crear o directorio: " #, fuzzy #~ msgid "_Groups" #~ msgstr "Grupos" #, fuzzy #~ msgid "Read Selected Group" #~ msgstr "Selecciona o Grupo" #, fuzzy #~ msgid "_Mark Group _Read" #~ msgstr "Marcar como Lido" #, fuzzy #~ msgid "_Delete Group's Articles" #~ msgstr "_Eliminar artigo" #, fuzzy #~ msgid "Get New Headers for Selected Groups" #~ msgstr "Obter Novas Cabeceiras e Corpos dos Grupos Seleccionados" #, fuzzy #~ msgid "Get New Headers for Subscribed Groups" #~ msgstr "Obter Novas Cabeceiras e Corpos dos Grupos Subscriptos" #, fuzzy #~ msgid "Get Headers from Server" #~ msgstr "Obter Mostra de Cabeceiras dos Grupos Seleccionados" #, fuzzy #~ msgid "Get a new Group list from the Server" #~ msgstr "Obter Mostra de Cabeceiras dos Grupos Seleccionados" #, fuzzy #~ msgid "Subscribe to Selected Groups" #~ msgstr "Subscribirse ós grupos seleccionados" #, fuzzy #~ msgid "Unsubscribe from Selected Groups" #~ msgstr "Desubscribirse dos grupos selecionados" #, fuzzy #~ msgid "Save Selected Articles..." #~ msgstr "Marcar os Artigos Seleccionados" #, fuzzy #~ msgid "Cancel Last Task" #~ msgstr "Cancelar Tarefas Seleccionadas" #, fuzzy #~ msgid "Clear Header Pane" #~ msgstr "Activar Fíos de Conversa dos Artigos" #, fuzzy #~ msgid "Clear Body Pane" #~ msgstr "Tipo de letra da lista de grupos" #, fuzzy #~ msgid "Download _Selected Article" #~ msgstr "Desmarcar os Artigos Seleccionados" #, fuzzy #~ msgid "Download Selected Article" #~ msgstr "Desmarcar os Artigos Seleccionados" #, fuzzy #~ msgid "Read _Selected Article" #~ msgstr "Mover os Artigos Seleccionados" #, fuzzy #~ msgid "Next Unread Group" #~ msgstr "Seguinte _Grupo sen Ler" #, fuzzy #~ msgid "Next Group" #~ msgstr "Seguinte Grupo" #, fuzzy #~ msgid "Next Thread" #~ msgstr "Ignorar Fío" #, fuzzy #~ msgid "Previous Article" #~ msgstr "_Arriba para Seleccionar o Artigo Anterior" #, fuzzy #~ msgid "Previous Thread" #~ msgstr "Arriba para Seleccionar o Fío Anterior" #, fuzzy #~ msgid "Parent Article" #~ msgstr "Ordenar Artigos" #, fuzzy #~ msgid "_Plonk Author" #~ msgstr "- Autor" # Máis caralladas de programas mal internacionalizados # Article is in a ___________ thread # O artigo está nun fío ____________ # Para traducir a parte "thread" uso " " #, fuzzy #~ msgid "Mark Article as Read" #~ msgstr "O artigo está _nun fío" # Máis caralladas de programas mal internacionalizados # Article is in a ___________ thread # O artigo está nun fío ____________ # Para traducir a parte "thread" uso " " #, fuzzy #~ msgid "Mark Article as Unread" #~ msgstr "O artigo está _nun fío" #, fuzzy #~ msgid "Reply to Author" #~ msgstr "- Autor" #, fuzzy #~ msgid "Match Only Articles Posted by Me" #~ msgstr "O artigo _foi publicado hai máis de" #, fuzzy #~ msgid "Pan: " #~ msgstr "Pan %s " #, fuzzy #~ msgid "Clear the Filter" #~ msgstr "Baleirar este rexistro." #, fuzzy #~ msgid "Pan: %s" #~ msgstr "Pan %s " #, fuzzy #~ msgid "Tasks: %u/%u" #~ msgstr "Tarefas: %2d" #, fuzzy #~ msgid "Wrap the Article Body to 80 Columns" #~ msgstr "Encher/Axustar Corpo da Mensaxe" #, fuzzy #~ msgid "_Close" #~ msgstr "Pechar" #, fuzzy #~ msgid "Close Window" #~ msgstr "Pechar esta Fiestra" #, fuzzy #~ msgid "Cut Text" #~ msgstr "Texto Citado" #, fuzzy #~ msgid "_Copy" #~ msgstr "_Copiar" #, fuzzy #~ msgid "Copy Text" #~ msgstr "Axustar Texto" #, fuzzy #~ msgid "_Paste" #~ msgstr "_Publicar" #, fuzzy #~ msgid "Paste Text" #~ msgstr "Texto Citado" #, fuzzy #~ msgid "Manage Posting Pr_ofiles..." #~ msgstr "A publicación en Usenet fallou.\n" #, fuzzy #~ msgid "Error loading post.ui: \"%s\"" #~ msgstr "Erro lendo de `%s'" #, fuzzy #~ msgid "Editors" #~ msgstr "_Editar" #, fuzzy #~ msgid "Posting Article" #~ msgstr "Ordenando Artigos" #, fuzzy #~ msgid "Add a New Profile" #~ msgstr "Gardar Perfil" #, fuzzy #~ msgid "Edit the selected profile" #~ msgstr "Editar o Artigo Seleccionado" #, fuzzy #~ msgid "Remove the selected profile" #~ msgstr "Renomear a carpeta seleccionada." # Ver o comentario a "Article is _in a" #, fuzzy #~ msgid "Threads" #~ msgstr " " #, fuzzy #~ msgid "Path" #~ msgstr "Porto:" #, fuzzy #~ msgid "_Path:" #~ msgstr "_Publicar" #, fuzzy #~ msgid "Group Management" #~ msgstr "Xestión de Indesexables." #, fuzzy #~ msgid "Pan: New Scoring Rule" #~ msgstr "Editar Regra" #, fuzzy #~ msgid "For" #~ msgstr "Car_peta" #, fuzzy #~ msgid "Name: \"%s\"" #~ msgstr "Gardando \"%s\"" #, fuzzy #~ msgid "Pan: Add a Server" #~ msgstr "Crear/Editar Servidor" #, fuzzy #~ msgid "Pan: Edit a Server's Settings" #~ msgstr "Propiedades por Servidor" #, fuzzy #~ msgid "Pan: Servers" #~ msgstr "Servidor de Correo" #, fuzzy #~ msgid "to %s" #~ msgstr " - %s" #~ msgid "Status" #~ msgstr "Estado" #, fuzzy #~ msgid "Unable to set group: %s" #~ msgstr "Imposible establecer grupo: o servidor dixo %s" #, fuzzy #~ msgid "Couldn't load \"%s\": %s" #~ msgstr "Non foi posible cargar a fonte \"%s\"" #, fuzzy #~ msgid "" #~ "Error saving \"%s\":\n" #~ "%s. %s" #~ msgstr "Erro lendo de `%s'" #, fuzzy #~ msgid "Warning: Unknown group \"%s\"." #~ msgstr "AVISO: Grupo descoñecido: \"%s\"." #, fuzzy #~ msgid "Post New Article" #~ msgstr "Carga o Artigo" #, fuzzy #~ msgid "_Follow-up" #~ msgstr "Responder-En" #, fuzzy #~ msgid "Follow-up to Article" #~ msgstr "Responder no grupo de novas" #, fuzzy #~ msgid "_Post Article" #~ msgstr "Carga o Artigo" #, fuzzy #~ msgid "Post this Article Now" #~ msgstr "Publicando o Artigo ``%s''" #, fuzzy #~ msgid "Error: No Newsgroups specified." #~ msgstr "ERRO: Non se indicaron destinatarios." #, fuzzy #~ msgid "_Posting" #~ msgstr "_Publicar" #, fuzzy #~ msgid "Save Selected Articles' Attachments..." #~ msgstr "Gardar Anexos Como" #~ msgid "Message-Id" #~ msgstr "Id-Mensaxe" #, fuzzy #~ msgid "Saved newsrc files in %.1f seconds" #~ msgstr "Gardáronse %d regras en %.1f segundos (%.0f regras/seg)" #, fuzzy #~ msgid "Pan: Get Headers from Server" #~ msgstr "Obter Mostra de Cabeceiras dos Grupos Seleccionados" #, fuzzy #~ msgid "_Reply-To Header:" #~ msgstr "Responder-A: " #, fuzzy #~ msgid "Or_ganization Header:" #~ msgstr "Organización:" #, fuzzy #~ msgid "Automatic Downloads" #~ msgstr "_Descargar" #, fuzzy #~ msgid "Decode can't access directory \"%s\"" #~ msgstr "Non foi posible crear o directorio: " #, fuzzy #~ msgid "Header Pane background:" #~ msgstr "Activar Fíos de Conversa dos Artigos" #, fuzzy #~ msgid "Unread articles:" #~ msgstr "Amosar Artigos Observados" #, fuzzy #~ msgid "Couldn't create temporary file: %s" #~ msgstr "Non foi posible crear o pixmap a partir do ficheiro: %s" #, fuzzy #~ msgid "Error renaming \"%s\" as \"%s\": %s." #~ msgstr "Erro lendo de `%s'" #, fuzzy #~ msgid "Can't write to \"%s\": %s" #~ msgstr "Non foi posible crear o directorio: " #, fuzzy #~ msgid "Open a Draft Article from Disk" #~ msgstr "Baixando %d artigos do grupo %s" #~ msgid "subject" #~ msgstr "o asunto" #~ msgid "author" #~ msgstr "o autor" #, fuzzy #~ msgid "line count" #~ msgstr "+ Número de Liñas" #, fuzzy #~ msgid "Active" #~ msgstr "Accións" #, fuzzy #~ msgid "/Get New Headers and _Bodies" #~ msgstr "Obter Novas Cabeceiras dos Grupos Seleccionados" #, fuzzy #~ msgid "/Refresh Article _Counts" #~ msgstr "Actualizar _Número de Artigos" #, fuzzy #~ msgid "/Group _Properties..." #~ msgstr "_Propiedades..." #, fuzzy #~ msgid " (Read-Only)" #~ msgstr "Só Non Lidos" #~ msgid "All Groups" #~ msgstr "Tódolos Grupos" #~ msgid "Subscribed" #~ msgstr "Subscritos" #~ msgid "Folders" #~ msgstr "Carpetas" #~ msgid "Unread" #~ msgstr "Sen ler" #~ msgid "Total" #~ msgstr "Total" #~ msgid "Description" #~ msgstr "Descrición" #~ msgid "Find:" #~ msgstr "Buscar:" #~ msgid "" #~ "Type in a group search string and press ENTER. Wildcards are allowed." #~ msgstr "" #~ "Escriba unha cadea de busca de grupo e prema ENTER. Admítense comodíns." #~ msgid "Bug in Code" #~ msgstr "Erro no Código" #, fuzzy #~ msgid "" #~ "We don't have a list of groups for \"%s\".\n" #~ "Shall we get download it?" #~ msgstr "" #~ "Non hai unha lista de grupos do servidor \"%s\"\n" #~ "¿Desexa recibir unha?" #, fuzzy #~ msgid "Pan: Find Message" #~ msgstr "Buscar Mensaxe" #~ msgid "Subject:" #~ msgstr "Asunto:" #~ msgid "Author:" #~ msgstr "Autor:" #, fuzzy #~ msgid "Message-ID:" #~ msgstr "Id-Mensaxe: " #~ msgid "Unread Only" #~ msgstr "Só Non Lidos" #~ msgid "Case Sensitive" #~ msgstr "Distinguir Maiúsculas" #, fuzzy #~ msgid "Pan: Filter Out Articles" #~ msgstr "Filtrando Artigos" #, fuzzy #~ msgid "Add Author to Bozo Filter" #~ msgstr "Engadir autor á lista de _Indesexables" #, fuzzy #~ msgid "regexp" #~ msgstr "a expresión regular" #, fuzzy #~ msgid "Add Author to Spam Filter" #~ msgstr "Engadir autor á lista de _Indesexables" #, fuzzy #~ msgid "Edit Current Filter" #~ msgstr "Servidor Actual" #, fuzzy #~ msgid "" #~ "Type in a search string and press ENTER. Wildcards are allowed; see " #~ "http://pan.rebelbase.com/wildmat.html for more information." #~ msgstr "" #~ "Escriba unha cadea de busca de grupo e prema ENTER. Admítense comodíns." #~ msgid "BUG!!" #~ msgstr "¡¡ERRO!!" #~ msgid "Please Select a Folder from the Group list." #~ msgstr "Seleccione unha Carpeta da lista de Grupos." #, fuzzy #~ msgid "/D_ownload Flagged" #~ msgstr "Baixar os Artigos Marcados" #, fuzzy #~ msgid "/_Delete" #~ msgstr "_Borrar" #, fuzzy #~ msgid "Resorting Articles" #~ msgstr "Ordenando Artigos" #, fuzzy #~ msgid "Refiltering Articles" #~ msgstr "Filtrando Artigos" #~ msgid "Filtering Articles" #~ msgstr "Filtrando Artigos" #, fuzzy #~ msgid "Loading Group \"%s\"" #~ msgstr "Cargando Grupos" #~ msgid "Invalid folder name: \"%s\"" #~ msgstr "Nome de carpeta non válido: \"%s\"" #~ msgid "Please don't begin folders with \"pan.\"; it confuses me terribly." #~ msgstr "" #~ "Por favor, non inicie o nome das carpetas con \"pan.\"; iso provócalle " #~ "unha gran confusión ó programa" #, fuzzy #~ msgid "Create New Folder" #~ msgstr "Crear unha nova carpeta." #~ msgid "New Folder Name:" #~ msgstr "Nome da Nova Carpeta:" #~ msgid "Post anyway, despite these problems?" #~ msgstr "¿Publicar de calquera xeito, a pesar destes problemas?" #~ msgid "Post anyway, despite this problem?" #~ msgstr "¿Publicar de calquera xeito, a pesar deste problema?" #~ msgid "" #~ msgstr "" #~ msgid "Newsgroups: " #~ msgstr "Grupos de novas: " #~ msgid "Date: " #~ msgstr "Data: " #, fuzzy #~ msgid "Newsreader:" #~ msgstr "O Lector de Novas Pan" #, fuzzy #~ msgid "Open the Connection Manager" #~ msgstr "Abrir o Xestor de Tarefas." #~ msgid "" #~ "1 task still active or queued.\n" #~ "Are you sure you want to exit Pan?" #~ msgstr "" #~ "Aínda hai 1 tarefa activa ou na fila.\n" #~ "¿Está seguro de que quere saír do Pan?" #~ msgid "" #~ "%d tasks still active or queued.\n" #~ "Are you sure you want to exit Pan?" #~ msgstr "" #~ "Aínda hai %d tarefas activas ou na fila.\n" #~ "¿Está seguro de que quere saír do Pan?" #, fuzzy #~ msgid "The Task Manager is Empty" #~ msgstr "Xestor de _Tarefas" #, fuzzy #~ msgid "/_File/Save Article A_ttachments" #~ msgstr "Gardar o Anexo Binario" #, fuzzy #~ msgid "/_File/_Print Article..." #~ msgstr "Filtrando Artigos" #, fuzzy #~ msgid "/_File/_New Folder..." #~ msgstr "Nova Carpeta..." #, fuzzy #~ msgid "/_File/_Delete Folder..." #~ msgstr "Eliminar Carpeta..." #, fuzzy #~ msgid "/_Edit" #~ msgstr "_Editar" #, fuzzy #~ msgid "/_Edit/---" #~ msgstr "_Editar" #, fuzzy #~ msgid "/_Edit/Select all _Groups" #~ msgstr "Selecciona o Grupo" #, fuzzy #~ msgid "/_Edit/_Find..." #~ msgstr "Editar..." #, fuzzy #~ msgid "/_View/---" #~ msgstr "_Vista" #, fuzzy #~ msgid "/_View/_Rot13 Selected Text" #~ msgstr "Aplicar _Rot13 ó Texto Seleccionado" #, fuzzy #~ msgid "/_View/Show All _Headers in Article Pane" #~ msgstr "Amosar Tódalas _Cabeceiras no Corpo da Mensaxe" #, fuzzy #~ msgid "/_View/E_xpand Selected Threads" #~ msgstr "Fíos de Conversa Seleccionados" #, fuzzy #~ msgid "/_View/Expand all Thread_s" #~ msgstr "Expandir tódolos Fíos" #, fuzzy #~ msgid "/_View/C_ollapse Selected Threads" #~ msgstr "Pechar tódolos Fíos" #, fuzzy #~ msgid "/_View/Colla_pse all Thread_s" #~ msgstr "Pechar tódolos Fíos" #, fuzzy #~ msgid "/_Servers" #~ msgstr "Servidor" #, fuzzy #~ msgid "/_Servers/---" #~ msgstr "Servidor" #, fuzzy #~ msgid "/_Servers/Get List of _All Groups..." #~ msgstr "Obter Lista de _Tódolos Grupos" #, fuzzy #~ msgid "/_Servers/Get List of _New Groups..." #~ msgstr "Obter Lista dos _Novos Grupos" #, fuzzy #~ msgid "/_Servers/_Import .newsrc..." #~ msgstr "Importar .newsrc..." #, fuzzy #~ msgid "/_Servers/_Export .newsrc..." #~ msgstr "Exportar .newsrc..." #, fuzzy #~ msgid "/_Newsgroups/---" #~ msgstr "Grupos de Novas" #, fuzzy #~ msgid "/_Newsgroups/Refresh Article _Counts" #~ msgstr "Actualizar _Número de Artigos" #, fuzzy #~ msgid "/_Newsgroups/_Subscribe" #~ msgstr "Grupos de Novas" #, fuzzy #~ msgid "/_Newsgroups/_Unsubscribe" #~ msgstr "Desubscribir" #, fuzzy #~ msgid "/_Articles/---" #~ msgstr "Artigos" #, fuzzy #~ msgid "/_Articles/Mark _Read" #~ msgstr "O artigo está _marcado como" # Máis caralladas de programas mal internacionalizados # Article is in a ___________ thread # O artigo está nun fío ____________ # Para traducir a parte "thread" uso " " #, fuzzy #~ msgid "/_Articles/Mark _Unread" #~ msgstr "O artigo está _nun fío" #, fuzzy #~ msgid "/_Articles/D_ownload Flagged" #~ msgstr "Baixar os Artigos Marcados" #, fuzzy #~ msgid "/_Articles/_Flag" #~ msgstr "_Artigo" # Máis caralladas de programas mal internacionalizados # Article is in a ___________ thread # O artigo está nun fío ____________ # Para traducir a parte "thread" uso " " #, fuzzy #~ msgid "/_Articles/U_nflag" #~ msgstr "O artigo está _nun fío" #, fuzzy #~ msgid "/_Articles/_Watch Thread" #~ msgstr "Observar Fío" #, fuzzy #~ msgid "/_Articles/_Ignore Thread" #~ msgstr "Ignorar Fío" #, fuzzy #~ msgid "/_Articles/Cop_y to Folder" #~ msgstr "Filtro de Artigos" #, fuzzy #~ msgid "/_Articles/_Cancel..." #~ msgstr "Caché de Artigos" #, fuzzy #~ msgid "/_Articles/_Delete" #~ msgstr "Filtro de Artigos" #, fuzzy #~ msgid "/_Post/---" #~ msgstr "_Publicar" #, fuzzy #~ msgid "/_Post/_Reply by E-Mail" #~ msgstr "_Responder por Correo Electrónico" #, fuzzy #~ msgid "/_Post/For_ward Article by E-Mail" #~ msgstr "Re_enviar artigo por Correo Electrónico" #, fuzzy #~ msgid "/_Tools/_Rules..." #~ msgstr "_Regras..." #, fuzzy #~ msgid "/_Tools/_Online Settings..." #~ msgstr "Opcións de Conectado/Desconectado..." #, fuzzy #~ msgid "/_Tools/_Log Viewer..." #~ msgstr "Visualizador de _Rexistro" #, fuzzy #~ msgid "Filter Name: " #~ msgstr "Nome Completo:" #, fuzzy #~ msgid "Move the selected line up one line" #~ msgstr "Mover os Artigos Seleccionados e as Respostas" #, fuzzy #~ msgid "Move the selected line down one line" #~ msgstr "Mover os Artigos Seleccionados e as Respostas" #, fuzzy #~ msgid "Negate" #~ msgstr "_Navegar" #, fuzzy #~ msgid "Negate the selected line" #~ msgstr "Renomear a carpeta seleccionada." #~ msgid "AND" #~ msgstr "E" #~ msgid "OR" #~ msgstr "OU" #, fuzzy #~ msgid "Delete Line" #~ msgstr "_Eliminar Liña" #, fuzzy #~ msgid "Delete the selected line" #~ msgstr "Eliminar a carpeta seleccionada" #, fuzzy #~ msgid "New Filter Line" #~ msgstr "_Eliminar Liña" #~ msgid "_Article" #~ msgstr "_Artigo" # Ver o comentario a "Does Not" #, fuzzy #~ msgid "contains the phrase" #~ msgstr "a frase" #~ msgid "Regular Expression" #~ msgstr "Expresión Regular" #, fuzzy #~ msgid "" #~ "See http://pan.rebelbase.com/regexp.txt for a tutorial on how to use " #~ "regular expressions. If regular expressions are turned off, a simple " #~ "case-insensitive wildcard match is used." #~ msgstr "" #~ "Mire en http://www.linux-learn.org/regexp.tut para un tutorial sobre o " #~ "uso de expresións regulares. Se as expresións regulares se desactivan, " #~ "usarase unha simple busca sen distinguir maiúsculas e con comodíns de " #~ "expansión." #~ msgid "(%s for user-specified text)" #~ msgstr "(%s para texto específico de usuario)" #, fuzzy #~ msgid "Saved" #~ msgstr "Gardar" #, fuzzy #~ msgid "Neither Saved nor Queued" #~ msgstr "Amosar Artigos que non están Gravados nin na Fila" #, fuzzy #~ msgid "Article _thread is" #~ msgstr "O artigo _ten" #~ msgid "Watched" #~ msgstr "Observado" #~ msgid "Ignored" #~ msgstr "Ignorado" #, fuzzy #~ msgid "Neither Watched nor Ignored" #~ msgstr "Amosar Artigos non Observados nin Ignorados" #, fuzzy #~ msgid "Article h_as" #~ msgstr "O artigo _ten" #, fuzzy #~ msgid "Incomplete Attachments" #~ msgstr "Anexo Binario Incompleto" #, fuzzy #~ msgid "No Attachments" #~ msgstr "Ningún Anexo Binario" #, fuzzy #~ msgid "Article _is" #~ msgstr "Artigos" #~ msgid "New" #~ msgstr "Novo" #, fuzzy #~ msgid "Article has at _least N lines:" #~ msgstr "O artigo ten _máis de" #, fuzzy #~ msgid "Article _score is at least" #~ msgstr "O artigo está _marcado como" #, fuzzy #~ msgid "Pan: Current Filter" #~ msgstr "Servidor Actual" #, fuzzy #~ msgid "Match Author:" #~ msgstr "Autor:" #, fuzzy #~ msgid "_New" #~ msgstr "Novo" #, fuzzy #~ msgid "_Unread" #~ msgstr "Sen ler" #, fuzzy #~ msgid "Match Attachments:" #~ msgstr "Gardar Anexos Como" #, fuzzy #~ msgid "Complete _Binary" #~ msgstr "Anexo Binario Completo" #, fuzzy #~ msgid "Incomple_te Binary" #~ msgstr "Anexo Binario Incompleto" #, fuzzy #~ msgid "Match Action:" #~ msgstr "Accións" #, fuzzy #~ msgid "_Saved" #~ msgstr "Gardar" #, fuzzy #~ msgid "_Watched" #~ msgstr "Observado" #, fuzzy #~ msgid "Igno_red" #~ msgstr "Ignorado" #, fuzzy #~ msgid "Matching Articles and References" #~ msgstr "Artigos Seleccionados e as súas Respostas" #, fuzzy #~ msgid "Threads with Matching Articles" #~ msgstr "Activando os Fíos de Conversa nos Artigos" #, fuzzy #~ msgid "Pan: Filters" #~ msgstr "Filtros:" #, fuzzy #~ msgid "Add New" #~ msgstr "Novo" #, fuzzy #~ msgid "Edit the selected filter" #~ msgstr "Eliminar a carpeta seleccionada" #, fuzzy #~ msgid "Remove the selected filter" #~ msgstr "Renomear a carpeta seleccionada." #~ msgid "Posting and Mailing Article ``%s''" #~ msgstr "Publicando e Enviando por Correo o Artigo ``%s''" #~ msgid "Mailing Article ``%s''" #~ msgstr "Enviando por Correo o Artigo ``%s''" #~ msgid "I have no idea what I'm doing with Article ``%s''" #~ msgstr "Ignórase o que se está a facer co artigo ``%s''" #~ msgid "E-Mail send failed.\n" #~ msgstr "O envío por correo electrónico fallou.\n" #~ msgid "Your message was saved in the folder ``pan.sendlater''" #~ msgstr "A súa mensaxe foi gardada na carpeta ``pan.enviarlogo''" #~ msgid "[This is an email copy of a Usenet post to \"%s\"]" #~ msgstr "" #~ "[Esta é unha copia por e-mail dunha publicación en Usenet en \"%s\"]" #~ msgid "E-mail Message \"%s\" sent." #~ msgstr "Mensaxe de Correo electrónico \"%s\" enviada." #~ msgid "E-mail Message \"%s\" not sent." #~ msgstr "Mensaxe de Correo electrónico \"%s\" non enviada." #~ msgid "NNTP Article \"%s\" (%d of %d) posted." #~ msgstr "Artigo NNTP \"%s\" (%d de %d) publicado." #~ msgid "NNTP Article \"%s\" (%d of %d) not posted." #~ msgstr "Artigo NNTP \"%s\" (%d de %d) non publicado." #, fuzzy #~ msgid "German" #~ msgstr "Xeral" #, fuzzy #~ msgid "Latvian" #~ msgstr "Localización" #, fuzzy #~ msgid "/_File/Save Changes" #~ msgstr "Gardar Modificacións" #, fuzzy #~ msgid "/_File/Save As..." #~ msgstr "_Gardar Artigo Como..." #, fuzzy #~ msgid "/_Edit/Cu_t" #~ msgstr "_Editar" #, fuzzy #~ msgid "/_Edit/_Rot13 Selected Text" #~ msgstr "Aplicar _Rot13 ó Texto Seleccionado" #, fuzzy #~ msgid "/_File/Send Now" #~ msgstr "Enviar Agora" #, fuzzy #~ msgid "/_File/Send Later" #~ msgstr "Enviar Logo" #~ msgid "Send this Message Now" #~ msgstr "Enviar esta Mensaxe Agora" #~ msgid "Send Later" #~ msgstr "Enviar Logo" #~ msgid "Send this Message Later" #~ msgstr "Enviar esta Mensaxe máis tarde" #, fuzzy #~ msgid "Rewrap" #~ msgstr "Lido" #, fuzzy #~ msgid "Rewrap all the text in the Message Body" #~ msgstr "Encher todo o texto no Corpo da Mensaxe." #, fuzzy #~ msgid "Turn line wrap on/off" #~ msgstr "(Des)Activar a visualización dos fíos" #, fuzzy #~ msgid "Edit with an External Editor" #~ msgstr "Responder usando un Cliente Externo" #, fuzzy #~ msgid "Select the file to attach." #~ msgstr "Seleccione o Ficheiro .newsrc para Ler:" #, fuzzy #~ msgid "Kilobytes" #~ msgstr "bytes" #, fuzzy #~ msgid "Remove a File from the Attachment List" #~ msgstr "Borrar tódolos artigos dos grupos seleccionados." #, fuzzy #~ msgid "Estimated Article Size" #~ msgstr "Usar Asunto do Artigo" #, fuzzy #~ msgid "Followup-To:" #~ msgstr "Responder-En:" #, fuzzy #~ msgid "Reply-To:" #~ msgstr "Responder-A:" #, fuzzy #~ msgid "Organization:" #~ msgstr "Organización:" #~ msgid "The organization you're associated with." #~ msgstr "A organización coa que vostede está asociado." #, fuzzy #~ msgid "Subject:" #~ msgstr "Asunto:" #, fuzzy #~ msgid "Post To Groups:" #~ msgstr "Publicar nos Grupos:" #~ msgid "``Followup-To: poster'': sending email to author." #~ msgstr "``Responder-En: poster'': enviando unha mensaxe por correo ó autor." #, fuzzy #~ msgid "``Followup-To:'' contains an email address: sending email to author." #~ msgstr "``Responder-En: poster'': enviando unha mensaxe por correo ó autor." #, fuzzy #~ msgid "New Message" #~ msgstr "Mensaxes Novas" #~ msgid "Save message to file" #~ msgstr "Gardar mensaxe a un ficheiro" #, fuzzy #~ msgid "Error reading edited file: %s" #~ msgstr "Erro lendo de `%s'" #~ msgid "Select .newsrc File to Read:" #~ msgstr "Seleccione o Ficheiro .newsrc para Ler:" #, fuzzy #~ msgid "Pan: Export .newsrc File" #~ msgstr "Exportar Ficheiro .newsrc" #~ msgid "Select .newsrc File to Write:" #~ msgstr "Seleccione o Ficheiro .newsrc para Escribir:" #, fuzzy #~ msgid "QUIT failed: %s" #~ msgstr "o select() fallou: %s" #, fuzzy #~ msgid "Handshake failed: %s" #~ msgstr "o select() fallou: %s" #, fuzzy #~ msgid "Authentication failed: %s" #~ msgstr "o select() fallou: %s" #, fuzzy #~ msgid "Unsupported authentication mechanism: %s" #~ msgstr "Versión dos datos non soportada: %d" #, fuzzy #~ msgid "Posting complete: %s" #~ msgstr " incompletos " #~ msgid "No articles found for group \"%s\"" #~ msgstr "Non se atoparon artigos no grupo \"%s\"" #, fuzzy #~ msgid "Getting header list failed: %s" #~ msgstr "Obtendo artigo %d de %d" #, fuzzy #~ msgid "Corrupt header skipped: %s" #~ msgstr "Cabeceira corrupta omitida - sen id de mensaxe" #, fuzzy #~ msgid "Getting %d of %d: \"%s\"" #~ msgstr "Recibindo %s de \"%s\"" #~ msgid "Cancelling message \"%s\"" #~ msgstr "Cancelando a mensaxe \"%s\"" #~ msgid "Error writing to socket." #~ msgstr "Erro escribindo no socket." #~ msgid "pan.sent" #~ msgstr "pan.enviados" #~ msgid "pan.sendlater" #~ msgstr "pan.enviarlogo" #, fuzzy #~ msgid "Select Color" #~ msgstr "Seleccionar Todo" #, fuzzy #~ msgid "Browse..." #~ msgstr "_Indesexables..." #, fuzzy #~ msgid "Family" #~ msgstr "Fallou" #~ msgid "Not Named" #~ msgstr "Sen Nome" #~ msgid "No Address" #~ msgstr "Sen Enderezo" #~ msgid "Server Information" #~ msgstr "Información do Servidor" #~ msgid "Profile Name" #~ msgstr "Nome do Perfil" #~ msgid "Server Address" #~ msgstr "Enderezo do Servidor" #~ msgid "Server Port" #~ msgstr "Porto do Servidor" #~ msgid "Authorization" #~ msgstr "Autorización" #~ msgid "Password" #~ msgstr "Contrasinal" #~ msgid "Misc" #~ msgstr "Varios" #~ msgid "Idle Seconds Before Timeout:" #~ msgstr "Máximo de Segundos de Inactividade:" #~ msgid "Generate Message-ID" #~ msgstr "Xerar Message-ID" #, fuzzy #~ msgid "Download New Headers from Subscribed Groups when starting Pan" #~ msgstr "Obter Novas Cabeceiras dos Grupos Subscriptos" #, fuzzy #~ msgid "External Editor (%t will be replaced with filename)" #~ msgstr "Editor Externo (%t para o ficheiro temporal)" #~ msgid "Newsgroups (if more than one group)" #~ msgstr "Grupos de Novas (se hai máis dun grupo)" #~ msgid "References (if article is a reply)" #~ msgstr "Referencias (se o artigo é unha resposta)" #~ msgid "Reply-To (if different from Author)" #~ msgstr "Responder-A (se é diferente ó Autor)" #, fuzzy #~ msgid "Newsreader" #~ msgstr "O Lector de Novas Pan" #~ msgid "Headers to Show" #~ msgstr "Cabeceiras para Mostrar" #~ msgid "Message Body" #~ msgstr "Corpo da Mensaxe" #, fuzzy #~ msgid "Message Body (Monospace)" #~ msgstr "Corpo da Mensaxe" #, fuzzy #~ msgid "Use System Background" #~ msgstr "Fondo do Corpo" #~ msgid "Body Foreground" #~ msgstr "Texto do Corpo" #, fuzzy #~ msgid "Use System Foreground" #~ msgstr "Texto do Corpo" #, fuzzy #~ msgid "Quoted Text 2" #~ msgstr "Texto Citado" #, fuzzy #~ msgid "Quoted Text 3" #~ msgstr "Texto Citado" #, fuzzy #~ msgid "Article date format:" #~ msgstr "Tipo de Letra da Lista de Artigos" #~ msgid "Fill articles for reading at column" #~ msgstr "Encher artigos para lectura na columna" #, fuzzy #~ msgid "Options" #~ msgstr "Accións" #, fuzzy #~ msgid "Left Mouse Button:" #~ msgstr "Botón 2 do Rato:" #, fuzzy #~ msgid "Middle Mouse Button:" #~ msgstr "Botón 1 do Rato:" #, fuzzy #~ msgid "Old Articles with no New Replies" #~ msgstr "Artigos Seleccionados e as súas Respostas" #, fuzzy #~ msgid "New Articles / Articles with New Replies" #~ msgstr "Artigos Seleccionados e as súas Respostas" #, fuzzy #~ msgid "Unread Articles / Articles with Unread Replies" #~ msgstr "Desmarcar os Artigos Seleccionados e as Respostas" #, fuzzy #~ msgid "Read Articles with no Unread Replies" #~ msgstr "Artigos Seleccionados e as súas Respostas" #~ msgid "When a followup changes the subject, show as new thread" #~ msgstr "Se nunha resposta muda o asunto, mostrar como un novo fío" #~ msgid "Show only the first part of complete multipart binary posts" #~ msgstr "" #~ "Amosar só a primeira parte dos artigos binarios multi-parte completos" #~ msgid "Display article dates in local time instead of UTC" #~ msgstr "Amosar a data dos artigos na hora local, en vez de en UTC" #, fuzzy #~ msgid "Article Pane" #~ msgstr "Caché de Artigos" #~ msgid "Loads Group" #~ msgstr "Carga o Grupo" #~ msgid "Group list font" #~ msgstr "Tipo de letra da lista de grupos" #, fuzzy #~ msgid "Download New Headers when the Group is Loaded" #~ msgstr "Baixar Cabeceiras do grupo `%s'" #~ msgid "Server \"%s\" is Online" #~ msgstr "O servidor \"%s\" está Conectado" #~ msgid "Server \"%s\" is Offline; no new tasks will be processed" #~ msgstr "" #~ "O servidor \"%s\" está Desconectado; non se procesarán novas tarefas" #~ msgid "Maximum Total Number of Connections" #~ msgstr "Número Máximo Total de Conexións" #~ msgid "Maximum Number of Task Retries before Giving Up" #~ msgstr "Número Máximo de Tentativas dunha Tarefa antes de Abandonar" #~ msgid "Pan should ask before going online" #~ msgstr "Pan ten que preguntar antes de entrar en modo conectado" #~ msgid "Pan should go online as needed without asking" #~ msgstr "Pan ten que entrar en modo conectado cando o necesite sen preguntar" #~ msgid "Pan should quietly stay offline until told otherwise" #~ msgstr "" #~ "Pan ten que manterse en modo desconectado mentres non se lle diga o " #~ "contrario" #~ msgid "" #~ "Maximum\n" #~ "Connections" #~ msgstr "" #~ "Máximo de\n" #~ "Conexións" #~ msgid "Online Status" #~ msgstr "" #~ "Estado de\n" #~ "Conexión" #, fuzzy #~ msgid "" #~ "Reserve a connection\n" #~ "for reading articles" #~ msgstr "" #~ "Reservar unha conexión para\n" #~ "tarefas de non descodificación" #~ msgid "Reserve" #~ msgstr "Reservar" #~ msgid "Download Directory:" #~ msgstr "Directorio de Descarga:" #~ msgid "Download Directory" #~ msgstr "Directorio de Descarga" #, fuzzy #~ msgid "" #~ "The cache is used to keep local copies of articles\n" #~ "to reduce the time connected to the network." #~ msgstr "" #~ "A caché emprégase para manter copias locais dos\n" #~ "artigos e así reducir o tempo de conexión á rede." #~ msgid "Disk Cache:" #~ msgstr "Caché de Disco:" #, fuzzy #~ msgid "Megs" #~ msgstr "_Mensaxes" #~ msgid "Clear Disk Cache" #~ msgstr "Baleirar Caché de Disco" #, fuzzy #~ msgid "Delete Cache when exiting Pan" #~ msgstr "Baleirar Caché ó saír do Pan" #, fuzzy #~ msgid "Import/Export .newsrc files automatically" #~ msgstr "Exportar Ficheiro .newsrc" #, fuzzy #~ msgid ".newsrc filename:" #~ msgstr "Importar Ficheiro .newsrc" #, fuzzy #~ msgid "read/write subscribed groups only" #~ msgstr "Obter Novas Cabeceiras dos Grupos Subscriptos" #, fuzzy #~ msgid ".Newsrc Files" #~ msgstr "Importar Ficheiro .newsrc" #~ msgid "Address" #~ msgstr "Enderezo" #~ msgid "New..." #~ msgstr "Novo..." #~ msgid "Edit..." #~ msgstr "Editar..." #~ msgid "Delete" #~ msgstr "Borrar" #~ msgid "Cache" #~ msgstr "Caché" #~ msgid "Directories" #~ msgstr "Directorios" #, fuzzy #~ msgid "Display - Layout" #~ msgstr "Visualizacíon - Grupos" #~ msgid "Display - Groups" #~ msgstr "Visualizacíon - Grupos" #~ msgid "Display - Threads" #~ msgstr "Visualización - Fíos" #, fuzzy #~ msgid "Display - Articles" #~ msgstr "Visualización - Fíos" #, fuzzy #~ msgid "Display - Headers" #~ msgstr "Visualización - Fíos" #~ msgid "General" #~ msgstr "Xeral" #, fuzzy #~ msgid "Servers - News" #~ msgstr "Enderezo do Servidor" #, fuzzy #~ msgid "Servers - Mail" #~ msgstr "Servidor" #~ msgid "You haven't loaded an article to print." #~ msgstr "Non cargou ningún artigo para imprimir." #~ msgid "Connect Failure" #~ msgstr "Fallo de Conexión" #, fuzzy #~ msgid "Disconnecting" #~ msgstr "Conectando" #, fuzzy #~ msgid "Save In Directory" #~ msgstr "Directorio de Datos" #~ msgid "Add ``/%s'' to path" #~ msgstr "Engadir ``/%s'' á ruta" #, fuzzy #~ msgid "Article Text" #~ msgstr "_Gardar o Texto do Artigo..." #, fuzzy #~ msgid "Don't Save Article Text" #~ msgstr "_Gardar o Texto do Artigo..." #, fuzzy #~ msgid "Use Message-ID" #~ msgstr "Id-Mensaxe" #, fuzzy #~ msgid "Use Subject" #~ msgstr "+ Asunto" #, fuzzy #~ msgid "Specify Filename" #~ msgstr "Nome do Ficheiro" #~ msgid "Use Encoded Filename" #~ msgstr "Usar Nome de Ficheiro Codificado" #~ msgid "Use Article Subject" #~ msgstr "Usar Asunto do Artigo" #~ msgid "Got unexpected response from mail server: expected %d; got %s" #~ msgstr "" #~ "Obteuse unha resposta non esperada do servidor de correo: agardábase %d; " #~ "obteuse %s" #~ msgid "Preparing to Send Mail" #~ msgstr "Preparando para Enviar o Correo" #~ msgid "Can't parse the From: line; hope for the best." #~ msgstr "Non se pode analizar a liña From:." #~ msgid "No Sender Specified!" #~ msgstr "¡Non se Especificou o Remitente!" #~ msgid "Sending Mail" #~ msgstr "Enviando o Correo" #~ msgid "No Known Recipients" #~ msgstr "Ningún Destinatario Coñecido" #~ msgid "Mail Sent!" #~ msgstr "¡Correo Enviado!" #~ msgid "Handshaking with mail server" #~ msgstr "Negociando co servidor de correo" #~ msgid "Connecting to mail server" #~ msgstr "Conectando ó servidor de correo" #~ msgid "Unable to open connection to mail server \"%s\"" #~ msgstr "Non é posible abrir unha conexión co servidor de correo \"%s\"" #~ msgid "Mail Server Not Ready" #~ msgstr "Servidor de correo non preparado" #, fuzzy #~ msgid "Timed out waiting to read from the server." #~ msgstr "Tempo esgotado agardando por select()" #, fuzzy #~ msgid "Lost connection to server" #~ msgstr "Conectando ó servidor de correo" #, fuzzy #~ msgid "Error: reading from socket returned %d." #~ msgstr "Erro lendo do socket durante o envío." #~ msgid "" #~ "socket [%p] failed its read:\n" #~ "%s" #~ msgstr "" #~ "o socket [%p] fallou na lectura:\n" #~ "%s" #~ msgid "socket [%p] failed its read" #~ msgstr "o socket [%p] fallou na lectura" #, fuzzy #~ msgid "Error saving article \"%s\" (is %s full?)" #~ msgstr "Publicando o artigo \"%s\" parte %d de %d." #, fuzzy #~ msgid "Removed %d articles from local cache" #~ msgstr "Baixando %d artigos do grupo %s" #~ msgid "WARNING: %d lines too wide in signature" #~ msgstr "AVISO: hai %d liñas demasiado longas na sinatura" #~ msgid "WARNING: %d lines >80 characters in the message." #~ msgstr "AVISO: %d liñas teñen máis de 80 caracteres na mensaxe." #, fuzzy #~ msgid "ERROR: invalid address ``%s''" #~ msgstr "ERRO: %s ``%s''" #~ msgid "ERROR: Must have one author in From: line" #~ msgstr "ERRO: Ten que haber un autor na liña De:" #, fuzzy #~ msgid "Unparseable Subject" #~ msgstr "Usar Asunto do Artigo" #, fuzzy #~ msgid "Waiting to decode \"%s\"" #~ msgstr "Agardando a Descodificación de %s" #, fuzzy #~ msgid "Decode unable to create file \"%s\" %s" #~ msgstr "Non é posible crear o ficheiro \"%s\"" #, fuzzy #~ msgid "Decoded \"%s\" from group \"%s\", \"%s\"" #~ msgstr "Descodificouse \"%s\" do grupo \"%s\", \"%s\" parte #%d" #~ msgid "Loading %u of %d groups" #~ msgstr "Cargando %u de %d grupos" #, fuzzy #~ msgid "Loaded %d groups for server `%s' in %.1f seconds (%.0f groups/sec)" #~ msgstr "Gardados %d grupos en \"%s\" en %.1f segundos (%.0f grupos/seg)" #, fuzzy #~ msgid "Saved %d of %u groups" #~ msgstr "Gardados %d de %u artigos" #~ msgid "Saved %d groups in \"%s\" in %.1f seconds (%.0f groups/sec)" #~ msgstr "Gardados %d grupos en \"%s\" en %.1f segundos (%.0f grupos/seg)" #~ msgid "Loaded %d of %d articles" #~ msgstr "Cargados %d de %d artigos" #, fuzzy #~ msgid "(No Group)" #~ msgstr "Seguinte Grupo" #, fuzzy #~ msgid "Error reading file `%s'" #~ msgstr "Erro lendo de `%s'" #, fuzzy #~ msgid "Couldn't create file `%s' to export newsrc file %s" #~ msgstr "Non foi posible crear o pixmap a partir do ficheiro: %s" #, fuzzy #~ msgid "Exported %d groups (%d subscribed) to `%s'" #~ msgstr "%d grupos escritos en `%s'" #~ msgid "Articles/Mail queued for posting via the \"Send Later\" button" #~ msgstr "" #~ "Artigos/Correo na fila para enviar a través do botón \"Enviar Logo\"" #~ msgid "Created folder pan.sendlater" #~ msgstr "Creada a carpeta pan.enviarlogo" #~ msgid "Articles/Mail posted before" #~ msgstr "Artigos/Correo publicados antes" #~ msgid "Created folder pan.sent" #~ msgstr "Creada a carpeta pan.enviados" #, fuzzy #~ msgid "Unable to access or create directory \"%s\"" #~ msgstr "Non é posible crear o ficheiro \"%s\"" #, fuzzy #~ msgid "A newsreader for GNOME" #~ msgstr "PAN, un lector de novas para GNOME." #, fuzzy #~ msgid "Copyright (C) 1999-2001, Pan Development Team" #~ msgstr "Copyright (C) 1999, 2000 o Grupo de Desenvolvemento do Pan" #~ msgid "Save the log to file" #~ msgstr "Gardar o rexistro nun ficheiro" #~ msgid "Pan - Log Viewer" #~ msgstr "Pan - Visualizador de Rexistro" #~ msgid "Time" #~ msgstr "Hora" #~ msgid "Log Entry" #~ msgstr "Entrada de Rexistro" #, fuzzy #~ msgid "Pan: Download Headers for group `%s'" #~ msgstr "Baixar Cabeceiras do grupo `%s'" #~ msgid "Download New Headers" #~ msgstr "Baixar Novas Cabeceiras" #~ msgid "Download All Headers" #~ msgstr "Baixar Tódalas Cabeceiras" # Estas dúas mensaxes levan o número no medio #~ msgid "Download" #~ msgstr "Descargar as" #~ msgid "Most Recent Headers" #~ msgstr "Cabeceiras Máis Recentes" #~ msgid "Also Download Article Bodies" #~ msgstr "Baixar Tamén os Corpos dos Artigos" #~ msgid "" #~ "When you post a message to a newsgroup, your display name will appear in " #~ "the From field. Type your name in as you would like it to appear." #~ msgstr "" #~ "Cando publique unha mensaxe nun grupo de novas, o seu Nome Visualizado " #~ "aparecerá no campo From. Escriba o seu nome como desexe que apareza." #~ msgid "Display Name:" #~ msgstr "Nome Visualizado:" #~ msgid "For example: John Doe" #~ msgstr "Por exemplo: Xoán Pereira" #~ msgid "" #~ "If you belong to an organization and would like for your organization's " #~ "name to appear with your posts, type in your organization name below. " #~ "This information is optional, you may leave it blank." #~ msgstr "" #~ "Se pertence a unha organización e quere que apareza nos seus artigos, " #~ "escriba embaixo o seu nome. Esta información é opcional, pode deixala en " #~ "branco." #~ msgid "" #~ "People can reply to your posts by sending you an e-mail message at the " #~ "following address." #~ msgstr "" #~ "A xente pode responder ós seus artigos enviándolle unha mensaxe por " #~ "correo electrónico ó seguinte enderezo." #~ msgid "For example: user@host.com" #~ msgstr "Por exemplo: usuario@servidor.com" #~ msgid "" #~ "Please enter the name of the mail server to use when sending e-mail " #~ "messages." #~ msgstr "" #~ "Introduza o nome do servidor de correo para enviar as mensaxes de correo " #~ "electrónico." #~ msgid "SMTP Server:" #~ msgstr "Servidor SMTP:" #~ msgid "SMTP Port:" #~ msgstr "Porto SMTP:" #~ msgid "Type the name of your Internet news server." #~ msgstr "Escriba o nome do seu servidor de novas de Internet." #~ msgid "News (NNTP) server:" #~ msgstr "Servidor de Novas (NNTP):" #~ msgid "" #~ "If you must log on to your news (NNTP) server, then select the check box " #~ "below." #~ msgstr "" #~ "Se ten que se autenticar no seu servidor de novas (NNTP), marque o botón " #~ "de embaixo." #~ msgid "Account name:" #~ msgstr "Nome da conta:" #~ msgid "" #~ "Type in the name you would like Pan to show when referring to this " #~ "profile you have just setup. You can name the profile anything you want " #~ "to." #~ msgstr "" #~ "Escriba o nome que quere que o Pan mostre ó se referir ó perfil que acaba " #~ "de configurar. Pode chamalo do xeito que queira." #~ msgid "For example: UUNET Server" #~ msgstr "Por exemplo: Servidor UUNET" #~ msgid "Pan Setup Wizard" #~ msgstr "Axudante da Configuración do Pan" #, fuzzy #~ msgid "E-Mail" #~ msgstr "E-mail" #, fuzzy #~ msgid "" #~ "You have successfully entered all of\n" #~ "the information required to set up Pan.\n" #~ "\n" #~ "To save these settings, click Save." #~ msgstr "" #~ "Introduciu correctamente toda a información\n" #~ "requirida para configurar Pan.\n" #~ "\n" #~ "Para gardar estas opcións, prema Finalizar." #, fuzzy #~ msgid "License" #~ msgstr "Liñas" #, fuzzy #~ msgid "Authors" #~ msgstr "Autor" #~ msgid "Downloading %d articles from group %s" #~ msgstr "Baixando %d artigos do grupo %s" #, fuzzy #~ msgid "Downloading body of \"%s\" (%s) from group %s" #~ msgstr "Baixando o corpo de \"%s\" do grupo %s" #, fuzzy #~ msgid "Cached article \"%s\" (%s) from group %s" #~ msgstr "Cargando o corpo do artigo da caché \"%s\" do grupo %s" #~ msgid "Downloading article \"%s\" failed." #~ msgstr "Erro baixando o artigo \"%s\"." #, fuzzy #~ msgid "Unable to open file `%s' %s" #~ msgstr "Non é posible crear o ficheiro \"%s\"" #, fuzzy #~ msgid "Saved article body to `%s'" #~ msgstr "Obtendo artigo %d de %d" #~ msgid "Updating article counts for %u groups from server `%s'" #~ msgstr "Actualizando o número de artigos de %u grupos do servidor `%s'" #~ msgid "Updated counts for %u groups out of %u" #~ msgstr "Actualizado o número de artigos en %u grupos de %u" #, fuzzy #~ msgid "Unable to update counts for group `%s'" #~ msgstr "Actualizado o número de artigos en %u grupos de %u" #~ msgid "all groups" #~ msgstr "tódolos grupos" #~ msgid "new groups" #~ msgstr "novos grupos" #~ msgid "BUG IN CODE" #~ msgstr "ERRO NO CÓDIGO" #, fuzzy #~ msgid "Got %u groups for \"%s\"" #~ msgstr "Recibíronse %u grupos de \"%s\"" #, fuzzy #~ msgid "Adding groups to \"%s\"" #~ msgstr "Mesturando os grupos de \"%s\"" #, fuzzy #~ msgid "Got %s groups for \"%s\"" #~ msgstr "Recibíronse %s grupos de \"%s\"" #, fuzzy #~ msgid "List Newsgroups failed: %s" #~ msgstr "Grupos de novas: " #, fuzzy #~ msgid "Got %s descriptions for \"%s\"" #~ msgstr "Recibíronse %s descricións de grupos de \"%s\"" #, fuzzy #~ msgid "Got %d groups for server `%s'" #~ msgstr "%d grupos escritos en `%s'" #~ msgid "Retrieving 0 new groups for \"%s\"" #~ msgstr "Recibindo 0 novos grupos de \"%s\"" #~ msgid "Retrieving %d new groups for \"%s\"" #~ msgstr "Recibindo %d novos grupos de \"%s\"" #, fuzzy #~ msgid "Got %d new groups" #~ msgstr "Recibíronse %d novos grupos." #, fuzzy #~ msgid "Got %d news groups for \"%s\"" #~ msgstr "Recibíronse %d novos grupos de \"%s\"" #~ msgid "No new articles in group \"%s\"" #~ msgstr "Non hai novos artigos no grupo \"%s\"" #~ msgid "Sampling %d articles" #~ msgstr "Recibindo %d artigos de mostra" #, fuzzy #~ msgid "Sampling %lu of %lu" #~ msgstr "Recibindo a Cabeceira do Artigo de Mostra %lu de %lu" #~ msgid "sample" #~ msgstr "unha mostra" #, fuzzy #~ msgid "The Task Manager is Paused" #~ msgstr "Xestor de _Tarefas" #~ msgid "Not Queued" #~ msgstr "Non na Fila" #~ msgid "Aborting" #~ msgstr "Abortando" #~ msgid "???" #~ msgstr "???" #~ msgid "%s (%d tries)" #~ msgstr "%s (%d tentativas)" #~ msgid "Pan %s Task Manager" #~ msgstr "Xestor de Tarefas do Pan %s" #~ msgid "Move Selected Task(s) Up" #~ msgstr "Mover Tarefa(s) Seleccionada(s) para Arriba" #, fuzzy #~ msgid "Move Selected Task(s) to Top" #~ msgstr "Mover Tarefa(s) Seleccionada(s) ó Inicio" #~ msgid "Move Selected Task(s) Down" #~ msgstr "Mover Tarefa(s) Seleccionada(s) para Abaixo" #~ msgid "Requeue selected failed Task(s)" #~ msgstr "Poñer de novo na fila as tarefas fallidas" #, fuzzy #~ msgid "Pause the Task Manager" #~ msgstr "Pan - Xestor de Tarefas" #~ msgid "Cancel Selected Task(s)" #~ msgstr "Cancelar Tarefas Seleccionadas" #~ msgid "Transfer Rate" #~ msgstr "Taxa de Transferencia" #~ msgid "Pan - Task Manager" #~ msgstr "Pan - Xestor de Tarefas" #, fuzzy #~ msgid "ALL OF:" #~ msgstr "TODAS:" #, fuzzy #~ msgid "ANY OF:" #~ msgstr "CALQUERA de:" #, fuzzy #~ msgid "Article has complete attachments" #~ msgstr "o artigo ten anexos binarios %s" #, fuzzy #~ msgid "Article does not have incomplete attachments" #~ msgstr "o artigo ten anexos binarios %s" #, fuzzy #~ msgid "Article has incomplete attachments" #~ msgstr "o artigo ten anexos binarios %s" #, fuzzy #~ msgid "Article has complete or incomplete attachments" #~ msgstr "o artigo ten anexos binarios %s" #, fuzzy #~ msgid "Article is crossposted to at least %d groups" #~ msgstr "o artigo foi publicado en máis de %d grupos" #, fuzzy #~ msgid "Article was posted in the last %d days" #~ msgstr "O artigo _foi publicado hai máis de" #, fuzzy #~ msgid "Article is %d or more lines long" #~ msgstr "o artigo ten máis de" #~ msgid "Bozos" #~ msgstr "Indesexables" #, fuzzy #~ msgid "Article is Unread or Old" #~ msgstr "O artigo está _marcado como" # Máis caralladas de programas mal internacionalizados # Article is in a ___________ thread # O artigo está nun fío ____________ # Para traducir a parte "thread" uso " " #, fuzzy #~ msgid "Aricle is New" #~ msgstr "O artigo está _nun fío" # Máis caralladas de programas mal internacionalizados # Article is in a ___________ thread # O artigo está nun fío ____________ # Para traducir a parte "thread" uso " " #, fuzzy #~ msgid "Article is New or Read" #~ msgstr "O artigo está _nun fío" #, fuzzy #~ msgid "Article is New or Unread" #~ msgstr "o artigo está nun fío %s" # Máis caralladas de programas mal internacionalizados # Article is in a ___________ thread # O artigo está nun fío ____________ # Para traducir a parte "thread" uso " " #, fuzzy #~ msgid "Article is Old" #~ msgstr "O artigo está _nun fío" #, fuzzy #~ msgid "Article has not been saved or decoded" #~ msgstr "Amosar Artigos que non están Gravados nin na Fila" #, fuzzy #~ msgid "Article has been saved or decoded" #~ msgstr "Amosar Artigos que non están Gravados nin na Fila" #, fuzzy #~ msgid "Article is queued for saving or decoding" #~ msgstr "" #~ "Artigos/Correo na fila para enviar a través do botón \"Enviar Logo\"" #, fuzzy #~ msgid "Article is neither saved nor queued for saving" #~ msgstr "Amosar Artigos non Observados nin Ignorados" #, fuzzy #~ msgid "Thread isn't watched" #~ msgstr "Activando os Fíos en %u artigos" #, fuzzy #~ msgid "Thread is watched" #~ msgstr "Activando os Fíos en %u artigos" #, fuzzy #~ msgid "Thread is neither watched nor ignored" #~ msgstr "Amosar Artigos non Observados nin Ignorados" #, fuzzy #~ msgid "Wrote filters to `%s'" #~ msgstr "Erro escribindo a `%s'" #~ msgid "HEY you forgot to put a message here! :)" #~ msgstr "¡EI, esqueciches poñer unha mensaxe aquí! :)" #~ msgid "" #~ "%s\n" #~ "\n" #~ "Matches: %u\n" #~ "Group: %s\n" #~ "Rule: %s" #~ msgstr "" #~ "%s\n" #~ "\n" #~ "Coincidencias: %u\n" #~ "Grupo: %s\n" #~ "Regra: %s" #~ msgid "Mark as" #~ msgstr "Marcar como" #, fuzzy #~ msgid "_Flag body for download" #~ msgstr "_Marcar o corpo para descargar" #, fuzzy #~ msgid "_Retrieve Body" #~ msgstr "Recibidos %d grupos" #~ msgid "_Watch thread (highlights the thread)" #~ msgstr "_Observar fío (destaca o fío)" #, fuzzy #~ msgid "_Ignore thread (hides the thread by default)" #~ msgstr "_Ignorar fío (agochar fío por defecto)" #, fuzzy #~ msgid "Select Filter:" #~ msgstr "Selecciona o Artigo" #~ msgid "Rule applies to all newsgroups" #~ msgstr "A regra aplícase a tódolos grupos de novas" #~ msgid "Wildcard group specification:" #~ msgstr "Especificación de grupo con comodíns:" #~ msgid "(e.g., *anime*)" #~ msgstr "(p.ex., *anime*)" #~ msgid "Rule applies to specific newsgroups:" #~ msgstr "A regra aplícase ós grupos de novas especificados:" #~ msgid "Rule applies to:" #~ msgstr "A regra aplícase a:" #, fuzzy #~ msgid "Rule Name:" #~ msgstr "Nome Completo:" #, fuzzy #~ msgid "Delete Articles by Bozos" #~ msgstr "Artigos Seleccionados" #~ msgid "Applying Rule to Selected Groups" #~ msgstr "Aplicando a Regra ós Grupos Seleccionados" #~ msgid "Loading group `%s'" #~ msgstr "Cargando o grupo `%s'" #~ msgid "Applying rule `%s' to Group `%s'" #~ msgstr "Aplicando a regra `%s' ó Grupo `%s'" #~ msgid "Saving group `%s'" #~ msgstr "Gardando o grupo `%s'" #, fuzzy #~ msgid "Refreshing group `%s'" #~ msgstr "Gardando o grupo `%s'" #~ msgid "Rules" #~ msgstr "Regras" #, fuzzy #~ msgid "Edit the selected rule." #~ msgstr "Editar o Artigo Seleccionado" #, fuzzy #~ msgid "" #~ "Apply to\n" #~ "Selected\n" #~ "Groups" #~ msgstr "Aplicar ós _Grupos Seleccionados" #, fuzzy #~ msgid "Apply the Selected Rule to the Selected Groups." #~ msgstr "Aplicando a Regra ós Grupos Seleccionados" #, fuzzy #~ msgid "" #~ "Apply to\n" #~ "Subscribed\n" #~ "Groups" #~ msgstr "Aplicar ós Grupos _Subscriptos" #, fuzzy #~ msgid "Apply the Selected Rule to all Subscribed Groups." #~ msgstr "Aplicar ós Grupos _Subscriptos" #, fuzzy #~ msgid "Wrote rules to `%s'" #~ msgstr "Erro escribindo a `%s'" #, fuzzy #~ msgid "Pan: Edit Profile" #~ msgstr "Gardar Perfil" #, fuzzy #~ msgid "User Profile" #~ msgstr "Gardar Perfil" #, fuzzy #~ msgid "Incomplete Profile." #~ msgstr " incompletos " #~ msgid "Threaded %u of %u articles" #~ msgstr "Activados os Fíos en %u de %u artigos" #~ msgid "Show Ignored Articles" #~ msgstr "Amosar Artigos Ignorados" #~ msgid "Show Incomplete Binary Articles" #~ msgstr "Amosar Artigos Binarios Incompletos" #~ msgid "Show Non-Binary Articles" #~ msgstr "Amosar Artigos Non Binarios" #~ msgid "Show Queued Articles" #~ msgstr "Amosar Artigos na Fila" #~ msgid "" #~ "Type in a subject search string and press ENTER. Wildcards are allowed." #~ msgstr "" #~ "Escriba unha cadea de busca de asunto e prema ENTER. Admítense comodíns." #~ msgid "Search for user on deja" #~ msgstr "Buscar usuario en dejanews" #~ msgid "Search for other postings by this use on deja.com" #~ msgstr "Buscar outras mensaxes deste usuario en deja.com" #~ msgid "Bozoize Author" #~ msgstr "Clasificar o Autor como Indesexable" #~ msgid "Save the article headers and body to a text file." #~ msgstr "Gardar as cabeceiras e o corpo do artigo a un ficheiro de texto." #~ msgid "Open Binary Attachment" #~ msgstr "Abrir o Anexo Binario" #~ msgid "Delete Decoded Binary Attachment" #~ msgstr "Borrar o Anexo Binario Descodificado" #~ msgid "Entire Group" #~ msgstr "Grupo Completo" #~ msgid "Copy Selected Articles" #~ msgstr "Copiar os Artigos Seleccionados" #~ msgid "Copy Selected Articles and Replies" #~ msgstr "Copiar os Artigos Seleccionados e as Respostas" #~ msgid "Flag Selected Articles and Replies" #~ msgstr "Marcar os Artigos Seleccionados e as Respostas" #~ msgid "Read Selected Message" #~ msgstr "Ler Mensaxe Seleccionada" #~ msgid "Read Selected Message in New Window" #~ msgstr "Ler Mensaxe Seleccionada nunha Nova Fiestra" #~ msgid "Search Offsite" #~ msgstr "Busca Externa" #~ msgid "Mark as Unread" #~ msgstr "Marcar como Non Lido" #~ msgid "Download Bodies" #~ msgstr "Baixar Corpos" #~ msgid "Folder Tools" #~ msgstr "Ferramentas de Carpetas" #~ msgid "Date (Time)" #~ msgstr "Data (Hora)" #~ msgid "" #~ "Unable to delete attachment file: \"%s\n" #~ "\n" #~ "Errno says: %s" #~ msgstr "" #~ "Non foi posible borrar o ficheiro anexo: \"%s\"\n" #~ "\n" #~ "Errno indica: %s" #~ msgid "Updating article display" #~ msgstr "Actualizando a visualización dos artigos" #~ msgid "Displaying article list" #~ msgstr "Amosando a lista de artigos" #~ msgid "Found %d bozos in %s" #~ msgstr "Atopáronse %d indesexables en %s" #~ msgid "Preparing %s" #~ msgstr "Preparando %s" #~ msgid "Error parsing part %d of \"%s\": %d" #~ msgstr "Erro analizando a parte %d de \"%s\": %d" #~ msgid "Deleting file \"%s\"" #~ msgstr "Borrando o ficheiro \"%s\"" #~ msgid "Got %d groups in %.1f seconds (%.0f groups/sec)" #~ msgstr "Obtéronse %d grupos en %.1f segundos (%.0f grupos/seg)" #~ msgid "Got %d articles in %.1f seconds (%.0f art/sec)" #~ msgstr "Obtéronse %d artigos en %.1f segundos (%.0f art/seg)" #~ msgid "Loaded %u of %d rules" #~ msgstr "Cargadas %u de %d regras" #~ msgid "Got %d rules in %.1f seconds (%.0f rules/sec)" #~ msgstr "Obtéronse %d regras en %.1f segundos (%.0f regras/seg)" #~ msgid "Okay" #~ msgstr "Aceptar" #~ msgid "'<' Missing" #~ msgstr "Falta un '<'" #~ msgid "'>' Missing" #~ msgstr "Falta un '>'" #~ msgid "'(' Missing" #~ msgstr "Falta un '('" #~ msgid "')' Missing" #~ msgstr "Falta un ')'" #~ msgid "'@' Missing" #~ msgstr "Falta unha '@'" # Isto é por exemplo xoan@com #~ msgid "Single Domain" #~ msgstr "Dominio con só unha Etiqueta" #~ msgid "Invalid Domain" #~ msgstr "Dominio non Válido" #~ msgid "Illegal Domain" #~ msgstr "Dominio Ilegal" #~ msgid "Invalid char in domain" #~ msgstr "Carácter non válido no dominio" #~ msgid "Zero Length Label" #~ msgstr "Etiqueta de Lonxitude Nula" #~ msgid "Illegal label length" #~ msgstr "Lonxitude de etiqueta ilegal" #~ msgid "Hyphen in label" #~ msgstr "Guión no extremo dunha etiqueta" #~ msgid "fully-qualified domain names must not begin with a digit." #~ msgstr "" #~ "os nomes de dominio completamente calificados non poden comezar cun " #~ "díxito." #~ msgid "Bad domain literal" #~ msgstr "Dominio literal erróneo" #~ msgid "Local domain literal" #~ msgstr "Dominio literal local" #~ msgid "Right bracket missing" #~ msgstr "Falta o corchete dereito" #~ msgid "Local part missing" #~ msgstr "Falta a parte local" #~ msgid "Invalid localpart" #~ msgstr "Parte local non válida" #~ msgid "Zero length local word" #~ msgstr "Parte local de lonxitude nula" #~ msgid "Illegal unquoted character" #~ msgstr "Carácter sen comiñas ilegal" #~ msgid "Illegal quoted character" #~ msgstr "Carácter con comiñas ilegal" #~ msgid "Illegal encoded character" #~ msgstr "Carácter codificado ilegal" #~ msgid "Bad encode syntax" #~ msgstr "Sintaxe de codificación errónea" #~ msgid "Illegal parenthesis phrase" #~ msgstr "Frase con parénteses ilegal" #~ msgid "Illegal parenthesis" #~ msgstr "Paréntese ilegal" #~ msgid "Illegal plain phrase" #~ msgstr "Frase completa ilegal" #~ msgid "Clean group \"%s\"" #~ msgstr "Baleirar grupo \"%s\"" #~ msgid "" #~ "Remove all messages from group: \n" #~ "%s ?" #~ msgstr "" #~ "¿Borrar tódalas mensaxes do grupo: \n" #~ "%s ?" #~ msgid "Reset new message counter" #~ msgstr "Reiniciar contador de novas mensaxes" #~ msgid "Catching up group %d of %d" #~ msgstr "Poñendo ó corrente o grupo %d de %d" #~ msgid "Catching up %d groups" #~ msgstr "Poñendo ó corrente %d grupos" #~ msgid "Rename Folder \"%s\"" #~ msgstr "Renomear a Carpeta \"%s\"" #~ msgid "" #~ "This operation will delete the folders/groups and their articles!\n" #~ " \n" #~ "Do you REALLY want to do this?" #~ msgstr "" #~ "¡Esta operación borrará as carpetas/grupos e os seus artigos!\n" #~ "\n" #~ "¿Quere REALMENTE facer isto?" #~ msgid "Delete Groups/Folders" #~ msgstr "Eliminar Grupos/Carpetas" #~ msgid "Updating Group List" #~ msgstr "Actualizando a Lista de Grupos" #~ msgid "Download and decode attachments in the selected messages." #~ msgstr "Baixar e descodificar os anexos das mensaxes seleccionadas." #~ msgid "Save Binary Attachment _As..." #~ msgstr "Gardar Anexo Binario _Como..." #~ msgid "" #~ "Download and decode attachments in the selected messages, and save as..." #~ msgstr "" #~ "Baixar e descodificar os anexos das mensaxes seleccionadas, e gardalos " #~ "como..." #~ msgid "Open Binary Attachment..." #~ msgstr "Abrir o Anexo Binario..." #~ msgid "Rules Tool." #~ msgstr "Ferramenta de Regras" #~ msgid "Post a new message to the current group." #~ msgstr "Publicar unha nova mensaxe no grupo actual." #~ msgid "Post a reply to the message on the news server." #~ msgstr "Publicar unha resposta á mensaxe no servidor de novas." #~ msgid "Create a mail reply to the sender." #~ msgstr "Responder por correo ó autor." #~ msgid "Followup to newsgroup _and Reply by E-mail" #~ msgstr "Responder no grupo de novas _e por Correo Electrónico" #~ msgid "Send a reply both to the author in mail, and to the news server." #~ msgstr "Enviar unha resposta ó autor por correo, e ó servidor de novas." #~ msgid "Forward article by E-mail" #~ msgstr "Reenviar o artigo por Correo Electrónico" #~ msgid "Mail/Post messages from folder \"pan.sendlater\"" #~ msgstr "Enviar/Publicar mensaxes de \"pan.enviarlogo\"" #~ msgid "Cancel Selected Article you Posted" #~ msgstr "Cancelar o Artigo Seleccionado que Publicou" #~ msgid "Supersede Selected Article you Posted" #~ msgstr "Substituír o Artigo Seleccionado que Publicou" #~ msgid "Move to the Next Group with Unread Messages." #~ msgstr "Mover ó Seguinte Grupo con Mensaxes non Lidas." #~ msgid "Move to the Next Group." #~ msgstr "Mover ó Seguinte Grupo." #~ msgid "Up to Select the Previous Article" #~ msgstr "Arriba para Seleccionar o Artigo Anterior" #~ msgid "_Down to Select the Next Article" #~ msgstr "_Abaixo para Seleccionar o Artigo Seguinte" #~ msgid "Down to Select the Next Article" #~ msgstr "Abaixo para Seleccionar o Artigo Seguinte" #~ msgid "Select the _Next Unread Message" #~ msgstr "Seleccionar _Seguinte Mensaxe non Lida" #~ msgid "Select the Next Unread Message" #~ msgstr "Seleccionar Seguinte Mensaxe non Lida" #~ msgid "Select the Next Unread Message _Body" #~ msgstr "Seleccionar Seguinte Corpo de Mensaxe non Lido" #~ msgid "Select the Next Unread Message Body" #~ msgstr "Seleccionar Seguinte Corpo de Mensaxe non Lido" #~ msgid "Up to Read the Previous Article" #~ msgstr "Arriba para ler o Artigo Anterior" #~ msgid "Down to Read the Next Article" #~ msgstr "Abaixo para ler o Artigo Seguinte" #~ msgid "Read the Next Unread Message" #~ msgstr "Ler Seguinte Mensaxe non Lida" #~ msgid "Read the Next Unread Message Body" #~ msgstr "Ler Seguinte Corpo de Mensaxe non Lido" #~ msgid "Down to Select the Next Thread" #~ msgstr "Abaixo para Seleccionar o Fío Seguinte" #~ msgid "Select _All" #~ msgstr "Seleccionar _Todas" #~ msgid "Select all messages" #~ msgstr "Seleccionar tódalas mensaxes" #~ msgid "Refresh a list of groups from the selected servers." #~ msgstr "Actualizar unha lista dos grupos dos servidores seleccionados." #~ msgid "Download a list of new groups from the selected servers." #~ msgstr "Baixar unha lista dos novos grupos dos servidores seleccionados." #~ msgid "+ Author" #~ msgstr "+ Autor" #~ msgid "+ Date" #~ msgstr "+ Data" #~ msgid "- Subject" #~ msgstr "- Asunto" #~ msgid "+ Unread Count" #~ msgstr "+ Non Lido" #~ msgid "- Unread Count" #~ msgstr "- Non Lido" #~ msgid "Show New Messages" #~ msgstr "Amosar Novas Mensaxes" #~ msgid "Show Unread Messages" #~ msgstr "Amosar Mensaxes sen Ler" #~ msgid "Show Read Messages" #~ msgstr "Amosar Mensaxes Lidas" #~ msgid "Show Watched Threads" #~ msgstr "Amosar Fíos Observados" #~ msgid "Show Killfiled Messages" #~ msgstr "Amosar Mensaxes no Killfile" #~ msgid "Show Others" #~ msgstr "Amosar Outras" #~ msgid "_Zoom/Unzoom Window" #~ msgstr "_Aumentar/Diminuír Fiestra" #~ msgid "Zoom/Unzoom Window" #~ msgstr "Aumentar/Diminuír Fiestra" #~ msgid "Zoom the Message Pane" #~ msgstr "Aumentar Panel de Mensaxes" #~ msgid "Zoom the Message Body Pane" #~ msgstr "Aumentar Panel do Corpo de Mensaxe" #~ msgid "Rot13 the Message Body" #~ msgstr "Aplicar Rot13 ó Corpo da Mensaxe" #~ msgid "Show All Headers in the Message Body" #~ msgstr "Amosar Tódalas Cabeceiras no Corpo da Mensaxe" #~ msgid "Open up the Log Viewer." #~ msgstr "Abrir o Visualizador do Rexistro." #~ msgid "Download..." #~ msgstr "Descargar..." #~ msgid "Get All Headers & Bodies in Selected Groups" #~ msgstr "Obter Tódalas Cabeceiras e Corpos dos Grupos Seleccionados" #~ msgid "Sample Headers & Bodies in Selected Groups" #~ msgstr "Obter Mostra de Cabeceiras e Corpos dos Grupos Seleccionados" #~ msgid "Refresh Article Count" #~ msgstr "Actualizar o Número de Artigos" #~ msgid "Catch Up" #~ msgstr "Pór ó Corrente" #~ msgid "Delete..." #~ msgstr "Eliminar..." #~ msgid "Delete the selected group(s) from Pan." #~ msgstr "Eliminar do Pan os grupos seleccionados." #~ msgid "Empty" #~ msgstr "Baleirar" #~ msgid "Rename..." #~ msgstr "Renomear..." #~ msgid "Set the properties for the selected group." #~ msgstr "Establecer as propiedades do grupo seleccionado." #~ msgid "Rename Folder..." #~ msgstr "Renomear Carpeta..." #~ msgid "Unable to parse the geometry string \"%s\"" #~ msgstr "Non foi posible analizar a cadea de xeometría \"%s\"" #~ msgid "Send this message now." #~ msgstr "Enviar esta mensaxe agora." #~ msgid "Show Status Bar" #~ msgstr "Amosar Barra de Estado" #~ msgid "Reply by _E-mail" #~ msgstr "Responder por _Correo Electrónico" #~ msgid "Create a mail reply to the sender with your favorite MUA." #~ msgstr "" #~ "Responder por correo ó autor usando o seu lector de correo favorito." #~ msgid "Post Followup" #~ msgstr "Publicar Resposta" #~ msgid "E-mail Reply" #~ msgstr "Responder por E-mail" #~ msgid "Fill Text" #~ msgstr "Encher Texto" #~ msgid "Turn line wrap on/off in the Message Body" #~ msgstr "(Des)Activar axuste de liña no Corpo da Mensaxe" #~ msgid "Groups to Post this message to" #~ msgstr "Grupos nos que publicar esta mensaxe" #~ msgid "Users to Mail this message to" #~ msgstr "Usuarios ós que enviar esta mensaxe por correo" #~ msgid "Authentication for server \"%s\" unsuccessful." #~ msgstr "Autenticación para o servidor \"%s\" incorrecta." #~ msgid "Error writing to socket during post." #~ msgstr "Erro escribindo no socket durante o envío." #~ msgid "Downloading article \"%s\"" #~ msgstr "Baixando artigo \"%s\"" #~ msgid "NNTP \"ARTICLE\" command returned \"%s\"." #~ msgstr "O comando \"ARTICLE\" de NNTP devolveu \"%s\"." #~ msgid "NNTP \"GROUP %s\" command returned \"%s\"." #~ msgstr "O comando \"GROUP %s\" de NNTP devolveu \"%s\"." #~ msgid "Getting %d article headers..." #~ msgstr "Obtendo %d cabeceiras de artigos..." #~ msgid "Waiting for Response from Server..." #~ msgstr "Agardando a Resposta do Servidor..." #~ msgid "Can't get headers: NNTP XOVER command returned \"%s\"." #~ msgstr "" #~ "Non é posible obter as cabeceiras: O comando XOVER de NNTP devolveu \"%s" #~ "\"." #~ msgid "Corrupt header skipped - no subject" #~ msgstr "Cabeceira corrupta omitida - sen asunto" #~ msgid "Corrupt header skipped - no date" #~ msgstr "Cabeceira corrupta omitida - sen data" #~ msgid "Corrupt header skipped - no author" #~ msgstr "Cabeceira corrupta omitida - sen autor" #~ msgid "Specify the geometry of the window." #~ msgstr "Especificar a xeometría da fiestra." #~ msgid "GEOMETRY" #~ msgstr "XEOMETRÍA" #~ msgid "" #~ "Send outgoing messages to stdout instead of smtp/nntp servers for " #~ "debugging purposes." #~ msgstr "" #~ "Enviar as mensaxes á saída estándar en vez dos servidores smtp/nntp para " #~ "propósitos de depuración." #~ msgid "Turn on article cache debugging messages." #~ msgstr "Activar mensaxes de depuración da caché de artigos." #~ msgid "Turn on database debugging messages." #~ msgstr "Activar mensaxes de depuración da base de datos." #~ msgid "Turn on socket input debugging messages." #~ msgstr "Activar mensaxes de depuración da entrada dos sockets." #~ msgid "Turn on socket output debugging messages." #~ msgstr "Activar mensaxes de depuración da saída dos sockets." #~ msgid "Turn on socket input/output debugging messages." #~ msgstr "Activar mensaxes de depuración da saída/entrada dos sockets." #~ msgid "Same as --debug-socket" #~ msgstr "O mesmo que --debug-socket" #~ msgid "Turn on task scheduler debugging messages." #~ msgstr "Activar mensaxes de depuración do programador de tarefas." #~ msgid "Turn on attachment decoding debugging messages." #~ msgstr "Activar mensaxes de depuración da descodificación de anexos." #~ msgid "Turn on newsrc decoding debugging messages." #~ msgstr "Activar mensaxes de depuración da descodificación do newsrc." #~ msgid "Turn on gui thread lock debugging messages." #~ msgstr "Activar mensaxes de depuración do bloqueo dos fíos da interface." #~ msgid "Turn on pan object system debugging messages." #~ msgstr "Activar mensaxes de depuración do sistema de obxectos do pan." #~ msgid "Turn on ALL debugging messages." #~ msgstr "Activar tódalas mensaxes de depuración." #~ msgid "Run regression tests for the Pan programmers." #~ msgstr "Executar tests de regresión para os programadores do Pan." #~ msgid "Maximum Connections:" #~ msgstr "Máximo de Conexións:" #~ msgid "Use gdk_fontset_load instead of gdk_font_load" #~ msgstr "Usar gdk_fontset_load no canto de gdk_font_load" #~ msgid "" #~ "Toggling this and restarting Pan is a good idea if your fonts aren't " #~ "being displayed properly." #~ msgstr "" #~ "Trocar isto e reiniciar Pan é unha boa idea se as fontes non se " #~ "visualizan apropiadamente." #~ msgid "" #~ "Automatically guess a part when duplicate parts appear in a multipart post" #~ msgstr "" #~ "Adiviñar automaticamente que parte usar cando aparecen duplicadas nun " #~ "artigo multiparte" #~ msgid "Attribution Line (%i for message-id, %a for author, %d for date)" #~ msgstr "" #~ "Liña de Atribución (%i para o id de mensaxe, %a para o autor, %d para a " #~ "data)" #~ msgid "" #~ "External Mail Program (%r for recipient, %s for subject, %t for body " #~ "filename)" #~ msgstr "" #~ "Programa de Correo Externo (%r para o destinatario, %s para o asunto, %t " #~ "para o nome do ficheiro do corpo)" #~ msgid "Text Wrapping" #~ msgstr "Axustar Texto" #~ msgid "Unread Messages" #~ msgstr "Mensaxes non Lidas" #~ msgid "Read Messages" #~ msgstr "Mensaxes Lidas" #~ msgid "Display" #~ msgstr "Visualización" #~ msgid "Temporary Directory:" #~ msgstr "Directorio Temporal:" #~ msgid "Temporary Directory" #~ msgstr "Directorio Temporal" #~ msgid "Data Directory:" #~ msgstr "Directorio de Datos:" #~ msgid "User Identity" #~ msgstr "Identidade do Usuario" #~ msgid "Display - Text" #~ msgstr "Visualización - Texto" #~ msgid "Identity" #~ msgstr "Identidade" #~ msgid "NOT " #~ msgstr "NON " #~ msgid "binary attachments" #~ msgstr "anexos binarios" #~ msgid " complete " #~ msgstr " completos " # Aquí non sei como amañalo #~ msgid " no " #~ msgstr " ningún " #~ msgid "is a reply to an article I posted" #~ msgstr "é unha resposta a un artigo que eu publiquei" #~ msgid "incomplete" #~ msgstr "incompletos" #~ msgid "complete" #~ msgstr "completos" # Aquí non sei como amañalo #~ msgid "no" #~ msgstr "ningún" #~ msgid "article exceeds" #~ msgstr "o artigo ten máis de" #~ msgid "article was posted to more than" #~ msgstr "o artigo foi publicado en máis de" # Máis caralladas de programas mal internacionalizados # Article is in a ___________ thread # O artigo está nun fío ____________ # Para traducir a parte "thread" uso " " #~ msgid "article is in a" #~ msgstr "o artigo está nun fío" #~ msgid "watched" #~ msgstr "observado" #~ msgid "author is a bozo" #~ msgstr "o autor é un indesexable" #~ msgid "article is marked as" #~ msgstr "o artigo está marcado como" #~ msgid "unread" #~ msgstr "non lido" #~ msgid "Hello frob!" #~ msgstr "¡Ola frob!" # Ver o comentario a "Does Not" #~ msgid "phrase" #~ msgstr "a frase" #~ msgid "article exceeds %d lines" #~ msgstr "o artigo ten máis de %d liñas" #~ msgid "Hello kail!" #~ msgstr "¡Ola kail!" #~ msgid "hello tov!" #~ msgstr "¡ola tov!" #~ msgid "Hello minmax!" #~ msgstr "¡Ola minmax!" #~ msgid "NOT %s" #~ msgstr "NON %s" #~ msgid "File Exists. Overwrite this file?" #~ msgstr "O ficheiro existe. ¿Sobrescribir este ficheiro?" #~ msgid "No Servers Defined" #~ msgstr "Non hai ningún servidor definido" #~ msgid "Decode Multipart Message" #~ msgstr "Descodificar Mensaxe Multi-Parte" #~ msgid "" #~ "Pan found multiple copies of some of the parts of this post.\n" #~ "Please select the parts to use for this decode." #~ msgstr "" #~ "Pan atopou múltiples copias dalgunha das partes deste artigo.\n" #~ "Seleccione as partes que se usarán ó descodificar." #~ msgid "" #~ "Group list could not be retrieved\n" #~ "Server said: %s" #~ msgstr "" #~ "Non foi posible recibir a lista de grupos\n" #~ "O servidor dixo: %s" #~ msgid "Getting new Article Header %lu of %lu" #~ msgstr "Recibindo nova Cabeceira de Artigo %lu de %lu" #~ msgid "Getting Article Header %lu of %lu" #~ msgstr "Obtendo a Cabeceira de Artigo %lu de %lu" #~ msgid "You've found the secret message!!" #~ msgstr "¡¡Atopou a mensaxe segreda!!" #~ msgid "Reply by E-mail" #~ msgstr "Responder por Correo electrónico" #~ msgid "Followup to newsgroup and Reply by E-mail" #~ msgstr "Responder no grupo e novas e por Correo electrónico" #~ msgid "Open in New Window" #~ msgstr "Abrir nunha Nova Fiestra" #~ msgid "Open this message for reading." #~ msgstr "Abrir esta mensaxe para ler." #~ msgid "Respond" #~ msgstr "Responder" #~ msgid "Rot13 the Body" #~ msgstr "Aplicar Rot13 ó Corpo" #~ msgid "Select all of the message body" #~ msgstr "Seleccionar todo o corpo da mensaxe" #~ msgid "couldn't allocate \"headers\" color" #~ msgstr "non foi posible asignar a cor das cabeceiras" #~ msgid "ERROR thread %lu attempted double lock! %s:%d" #~ msgstr "ERRO ¡o fío %lu tentou un bloqueo dobre! %s:%d" #~ msgid "" #~ "Thanks for upgrading to Pan %s!\n" #~ "\n" #~ "The database formats changed in version %s of Pan.\n" #~ "You need to delete your Pan database files (located in the directory\n" #~ "``.pan/data'' in your home directory, by default) before using this\n" #~ "version of Pan.\n" #~ "\n" #~ "For more information, see the installation section of the\n" #~ "Pan FAQ at ." #~ msgstr "" #~ "¡Gracias por actualizarse ó Pan %s!\n" #~ "\n" #~ "Os formatos da base de datos mudaron na versión %s do Pan.\n" #~ "Terá que borrar os seus ficheiros de base de datos (localizados por\n" #~ "defecto no directorio ``.pan/data'' no seu directorio persoal) antes\n" #~ "de usar esta versión do Pan.\n" #~ "\n" #~ "Para máis información, mire a sección de instalación da FAQ do Pan en\n" #~ "." #~ msgid "" #~ "Add Bozo in the form\n" #~ "\"J. Random Bozo\" " #~ msgstr "" #~ "Engada o Indesexable coa forma\n" #~ "\"Antón Indesexable\" " #~ msgid "Close the Log Viewer." #~ msgstr "Pechar o Visualizador de Rexistro." #~ msgid "My server requires me to log on." #~ msgstr "O servidor require autenticación." #~ msgid "Type your user name and password for your news server." #~ msgstr "Escriba o seu nome e contrasinal para o servidor de novas." #~ msgid "Welcome to Pan" #~ msgstr "Benvido ó Pan" #~ msgid "" #~ "Welcome to Pan!\n" #~ "Since this is your first time running Pan,\n" #~ "we'll need to gather some information.\n" #~ msgstr "" #~ "¡Benvido ó Pan!\n" #~ "Xa que é a primera vez que executa Pan,\n" #~ "será necesario recoller certa información.\n" #~ msgid "News Server Logon" #~ msgstr "Autenticación no Servidor de Novas" #~ msgid "Congratulations" #~ msgstr "Noraboa" #~ msgid "Yes" #~ msgstr "Si" # Preguemos unha oración para que estes acompañen sempre a "contains" # ... _Does Not_ contain phrase # ... _Non Contén_ a frase #~ msgid "Does Not" #~ msgstr "Non Contén" #~ msgid "Does" #~ msgstr "Contén" #~ msgid "ERROR: No criteria specified!" #~ msgstr "ERRO: ¡Non se indicou un criterio!" #~ msgid "New Condition Component" #~ msgstr "Novo Elemento de Condición" #~ msgid "Cross-_Posted to more than" #~ msgstr "_Multi-publicado en máis de" #~ msgid "days ago" #~ msgstr "días" #~ msgid "groups" #~ msgstr "grupos" #~ msgid "lines" #~ msgstr "liñas" #~ msgid "Author is a _Bozo" #~ msgstr "O autor é un _Indesexable" #~ msgid "Add _Condition" #~ msgstr "Engadir _Condición" #~ msgid "NOT" #~ msgstr "NON" #~ msgid "label21" #~ msgstr "label21" #~ msgid "Line_Up" #~ msgstr "_Subir Liña" #~ msgid "_Play a Sound:" #~ msgstr "_Reproducir un Son:" #~ msgid "Dec_ode article(s) in" #~ msgstr "Des_codificar artigo(s) en" #~ msgid "_Retrieve body (tag for retrieval if offline)" #~ msgstr "_Recibir corpo (marcar para descargar se non está conectado)" #~ msgid "Test Sound" #~ msgstr "Probar Son" #~ msgid "Apply to Incoming?" #~ msgstr "¿Aplicar ós Entrantes?" #~ msgid "Rena_me" #~ msgstr "_Renomear..." #~ msgid "A_pply to Incoming?" #~ msgstr "¿A_plicar ós Entrantes?" #~ msgid "Real Name" #~ msgstr "Nome Real" #~ msgid "Mail Address" #~ msgstr "Enderezo de Correo" #~ msgid "_Add Bozo" #~ msgstr "_Engadir Indesexable" #~ msgid "_Edit Bozo" #~ msgstr "_Editar Indesexable" #~ msgid "_Delete Bozo" #~ msgstr "_Borrar Indesexable" #~ msgid "Edit Bozo" #~ msgstr "Editar Indesexable" #~ msgid "" #~ "Enter the Bozo's Real Name,\n" #~ "or mail address, or both." #~ msgstr "" #~ "Introduza o Nome Real do Indesexable,\n" #~ "ou o enderezo de correo, ou ambos." #~ msgid "Real Name:" #~ msgstr "Nome Real:" #~ msgid "Download Headers" #~ msgstr "Descargar Cabeceiras" #~ msgid "Download _New Headers" #~ msgstr "Descargar _Novas Cabeceiras" #~ msgid "Download _All Headers" #~ msgstr "Descargar _Tódalas Cabeceiras" #~ msgid "Also Download Article _Bodies" #~ msgstr "Descargar tamén os _Corpos dos Artigos" #~ msgid "Couldn't find pixmap file: %s" #~ msgstr "Non se atopou o ficheiro de pixmap: %s" pan-0.162/po/hr.po000066400000000000000000004253341475412772400137170ustar00rootroot00000000000000# Translation of pan to Croatiann # Copyright (C) Croatiann team # Translators: Antun Krasic ,Automatski Prijevod <>,Boris Tudan ,Danijel Gorsic ,Davor Pulez ,Denis Lackovic ,Diana Ćorluka ,Goran Žugelj ,Jerko Škifić ,Karolina Ilijanic ,Željko Brajdić ,Ljubomir Božić ,Nikola Planinac <>,Nina Popovic ,pr pr ,Robert Sedak ,Vedran Vyroubal , msgid "" msgstr "" "Project-Id-Version: pan 0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-04-04 20:58+0200\n" "PO-Revision-Date: 2004-03-18 00:09+CET\n" "Last-Translator: auto\n" "Language-Team: Croatian \n" "Language: hr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: TransDict server\n" #: ../pan.desktop.in.h:1 msgid "Pan Newsreader" msgstr "Pan program za čitanje novosti" #: ../pan.desktop.in.h:2 #, fuzzy msgid "Read and Post Usenet Articles" msgstr "Pročitaj Sljedeći Nepročitani članak" #: ../pan/data/article-cache.cc:143 ../pan/data/encode-cache.cc:62 #, fuzzy, c-format msgid "Error opening directory: \"%s\": %s" msgstr "Greška prilikom otvaranja direktorija \"%s\": %s)" #: ../pan/data/article-cache.cc:231 ../pan/data/article-cache.cc:242 #: ../pan/data-impl/data-io.cc:187 ../pan/data-impl/data-io.cc:211 #: ../pan/gui/post-ui.cc:1639 #, fuzzy, c-format msgid "Unable to save \"%s\" %s" msgstr "Ne mogu odrediti grupu \"%*.*s\": %s" #: ../pan/data/article-cache.cc:355 #, fuzzy, c-format msgid "Error opening file \"%s\" %s" msgstr "Greška prilikom otvaranja datoteke \"%s\": %s " #: ../pan/data/article-cache.cc:386 ../pan/data-impl/profiles.cc:174 #: ../pan/data-impl/server.cc:436 ../pan/general/file-util.cc:298 #: ../pan/gui/post-ui.cc:609 ../pan/gui/task-pane.cc:691 #, c-format msgid "Error reading file \"%s\": %s" msgstr "Greška prilikom čitanja datoteke \"%s\": %s" #: ../pan/data/cert-store.cc:238 #, fuzzy, c-format msgid "Error opening SSL certificate directory: \"%s\": %s" msgstr "Greška prilikom otvaranja direktorija \"%s\": %s)" #: ../pan/data/cert-store.cc:270 #, c-format msgid "Succesfully added %d SSL PEM certificate(s) to Certificate Store." msgstr "" #. load_group_descriptions (*_data_io); #: ../pan/data-impl/data-impl.cc:109 #, c-format msgid "Loaded data backend in %.1f seconds" msgstr "" #: ../pan/data-impl/data-impl.cc:140 msgid "Pan newsreader server passwords" msgstr "" #: ../pan/data-impl/groups.cc:94 #, fuzzy, c-format msgid "Skipping newsrc file for server \"%s\"" msgstr "Dohvaćam %d novih grupa sa servera \"%s\"" #: ../pan/data-impl/headers.cc:606 #, fuzzy, c-format msgid "Expired %lu old articles from \"%s\"" msgstr "Isteklo %u članaka iz `%s'" #: ../pan/data-impl/headers.cc:613 #, c-format msgid "" "Unsupported data version for %s headers: %d.\n" "Are you running an old version of Pan by accident?" msgstr "" "Nepodržana inačica podataka za %s zaglavlja: %d.\n" "Da li ste slučajno pokrenuli staru verziju Pana?" #: ../pan/data-impl/headers.cc:628 #, fuzzy, c-format msgid "Loaded %lu articles for \"%s\" in %.1f seconds (%.0f per second)" msgstr "Učitano %u članaka u grupi \"%s\" za %.1f sekundi (%.0f čl/sek)" #: ../pan/data-impl/headers.cc:857 #, fuzzy, c-format msgid "" "Saved %lu parts, %lu articles in \"%s\" in %.1f seconds (%.0f articles/sec)" msgstr "Spremljeno %d članaka u \"%s\" za %.1f sekundi (%.0f čl/sek)" #: ../pan/data-impl/headers.cc:1173 #, fuzzy, c-format msgid "Added %lu articles to %s." msgstr "Isteklo %u članaka iz `%s'" #: ../pan/data-impl/server.cc:234 #, c-format msgid "There seems to be no Password set for Server %s." msgstr "" #: ../pan/data-impl/server.cc:238 msgid "The Gnome keyring denied access to the Passwords." msgstr "" #: ../pan/data-impl/xover.cc:239 #, fuzzy, c-format msgid "Error reading from %s: unknown group \"%s\"" msgstr "Greška kod čitanja iz socketa: %s" #. build the locale strings #: ../pan/general/e-util.cc:213 msgid "%l:%M %p" msgstr "" #: ../pan/general/e-util.cc:214 msgid "Today %l:%M %p" msgstr "" #: ../pan/general/e-util.cc:215 msgid "%a %l:%M %p" msgstr "" #: ../pan/general/e-util.cc:216 msgid "%b %d %l:%M %p" msgstr "" #: ../pan/general/e-util.cc:217 msgid "%b %d %Y" msgstr "" #: ../pan/general/e-util.cc:242 msgid "?" msgstr "" #: ../pan/general/text-match.cc:193 #, c-format msgid "Can't use regular expression \"%s\": %s" msgstr "Ne mogu koristiti regularni izraz \"%s\": %s" #: ../pan/general/utf8-utils.cc:213 msgid "Couldn't determine article encoding. Non-UTF8 characters were removed." msgstr "" #: ../pan/gui/actions.cc:274 ../pan/gui/post-ui.cc:417 #, fuzzy msgid "_File" msgstr "/_Datoteka" #: ../pan/gui/actions.cc:275 ../pan/gui/post-ui.cc:418 #, fuzzy msgid "_Edit" msgstr "/_Uredi" #: ../pan/gui/actions.cc:276 ../pan/gui/prefs-ui.cc:1064 #, fuzzy msgid "_Layout" msgstr "_Raspored okvira" #: ../pan/gui/actions.cc:277 #, fuzzy msgid "_Group Pane" msgstr "Okvir grupa" #: ../pan/gui/actions.cc:278 #, fuzzy msgid "_Header Pane" msgstr "Okvir zaglavlja" #: ../pan/gui/actions.cc:279 #, fuzzy msgid "_Body Pane" msgstr "Okvir za prikaz poruke" #: ../pan/gui/actions.cc:280 #, fuzzy msgid "_View" msgstr "/_Datoteka" #: ../pan/gui/actions.cc:281 #, fuzzy msgid "Filte_r" msgstr "/Fi_ltar" #: ../pan/gui/actions.cc:282 #, fuzzy msgid "_Go" msgstr "/_Go" #: ../pan/gui/actions.cc:283 ../pan/gui/prefs-ui.cc:1091 #, fuzzy msgid "_Actions" msgstr "Akcije" #: ../pan/gui/actions.cc:284 #, fuzzy msgid "_Articles" msgstr "/_Članci" #: ../pan/gui/actions.cc:285 #, fuzzy msgid "G_roups" msgstr "Grupe" #: ../pan/gui/actions.cc:286 ../pan/gui/actions.cc:287 msgid "_Post" msgstr "_Oglasi" #: ../pan/gui/actions.cc:288 msgid "_Help" msgstr "_Pomoć" #: ../pan/gui/actions.cc:291 #, fuzzy msgid "_Read Group" msgstr "/Obriš_i Grupu" #: ../pan/gui/actions.cc:292 #, fuzzy msgid "Read Group" msgstr "/Obriš_i Grupu" #: ../pan/gui/actions.cc:296 #, fuzzy msgid "_Mark Selected Groups Read" msgstr "/Označi sve poruke u grupi kao _pročitane" #: ../pan/gui/actions.cc:297 #, fuzzy msgid "Mark Selected Groups Read" msgstr "/Označi sve poruke u grupi kao _pročitane" #: ../pan/gui/actions.cc:301 #, fuzzy msgid "_Delete Selected Groups' Articles" msgstr "/_Obriši Članke grupe" #: ../pan/gui/actions.cc:302 #, fuzzy msgid "Delete Selected Groups' Articles" msgstr "/_Obriši Članke grupe" #: ../pan/gui/actions.cc:306 #, fuzzy msgid "Get New _Headers in Selected Groups" msgstr "Dohvati nova zaglavlja u odabranoj grupi" #: ../pan/gui/actions.cc:307 #, fuzzy msgid "Get New Headers in Selected Groups" msgstr "Dohvati nova zaglavlja u odabranoj grupi" #: ../pan/gui/actions.cc:311 ../pan/gui/actions.cc:316 #, fuzzy msgid "Get New _Headers in Subscribed Groups" msgstr "Dohvati nova zaglavlja u pretplaćenoj grupi" #: ../pan/gui/actions.cc:312 ../pan/gui/actions.cc:317 #, fuzzy msgid "Get New Headers in Subscribed Groups" msgstr "/Dohvati nova zaglavlja u pretplaćenoj grupi" #: ../pan/gui/actions.cc:321 #, fuzzy msgid "Get _Headers..." msgstr "/Uzmi nova _zaglavlja" #: ../pan/gui/actions.cc:322 #, fuzzy msgid "Get Headers..." msgstr "/Uzmi nova _zaglavlja" #: ../pan/gui/actions.cc:326 ../pan/gui/actions.cc:327 #, fuzzy msgid "Refresh Group List" msgstr "Osvježavanje Grupe \"%s\"" #: ../pan/gui/actions.cc:331 #, fuzzy msgid "_Subscribe" msgstr "/_Prijava na grupu" #: ../pan/gui/actions.cc:332 #, fuzzy msgid "Subscribe" msgstr "/_Prijava na grupu" #: ../pan/gui/actions.cc:336 #, fuzzy msgid "_Unsubscribe" msgstr "/Odjavi" #: ../pan/gui/actions.cc:337 #, fuzzy msgid "Unsubscribe" msgstr "/Odjavi" #: ../pan/gui/actions.cc:341 #, fuzzy msgid "_Save Articles..." msgstr "/_Snimi privitak kao..." #: ../pan/gui/actions.cc:342 #, fuzzy msgid "Save Articles..." msgstr "/_Snimi privitak kao..." #: ../pan/gui/actions.cc:346 #, fuzzy msgid "Save Articles from Selected _NZB..." msgstr "/_Snimi privitak kao..." #: ../pan/gui/actions.cc:347 #, fuzzy msgid "Save Articles from Selected NZB" msgstr "Spremi privitke" #: ../pan/gui/actions.cc:351 #, fuzzy msgid "Save Articles to an NZB _File..." msgstr "/_Snimi privitak kao..." #: ../pan/gui/actions.cc:352 #, fuzzy msgid "Save Articles to an NZB File" msgstr "Spremi log u datoteku" #: ../pan/gui/actions.cc:356 ../pan/gui/actions.cc:357 #, fuzzy msgid "Print" msgstr "Pan: Ispiši" #: ../pan/gui/actions.cc:361 msgid "_Import NZB Files..." msgstr "" #: ../pan/gui/actions.cc:366 #, fuzzy msgid "_Cancel Last Task" msgstr "Poništi Zadnji Zadatak" #: ../pan/gui/actions.cc:371 #, fuzzy msgid "_Task Manager" msgstr "/_Alati/Upravitelj _zadataka..." #: ../pan/gui/actions.cc:376 #, fuzzy msgid "_Event Log" msgstr "Otvori Log Statusa" #: ../pan/gui/actions.cc:381 #, fuzzy msgid "_Quit" msgstr "/_Uredi" #: ../pan/gui/actions.cc:386 #, fuzzy msgid "Select _All Articles" msgstr "/_Uređivanje/Odaberi _sve poruke" #: ../pan/gui/actions.cc:391 #, fuzzy msgid "_Deselect All Articles" msgstr "/_Uređivanje/Ukini odabir svi_h poruka" #: ../pan/gui/actions.cc:396 #, fuzzy msgid "Add Su_bthreads to Selection" msgstr "/_Uređivanje/Dodaj po_dniti rasprave u odabir" #: ../pan/gui/actions.cc:401 #, fuzzy msgid "Add _Threads to Selection" msgstr "/_Promijeni/Dodaj _nit rasprave u odabir" #: ../pan/gui/actions.cc:406 #, fuzzy msgid "Add _Similar Articles to Selection" msgstr "/_Promijeni/Dodaj _nit rasprave u odabir" #: ../pan/gui/actions.cc:411 #, fuzzy msgid "Select Article _Body" msgstr "/_Uređivanje/Odaberi _tijelo poruke" #: ../pan/gui/actions.cc:416 #, fuzzy msgid "Edit _Preferences" msgstr "/_Uredi/_Postavke..." #: ../pan/gui/actions.cc:421 #, fuzzy msgid "Edit Selected _Group's Preferences" msgstr "/_Uredi/_Postavke..." #: ../pan/gui/actions.cc:426 ../pan/gui/post-ui.cc:434 #, fuzzy msgid "Edit P_osting Profiles" msgstr "/_Alati/Postavke slanja..." #: ../pan/gui/actions.cc:431 #, fuzzy msgid "Edit _News Servers" msgstr "/_Alati/_Poslužitelji interesnih grupa..." #: ../pan/gui/actions.cc:436 #, fuzzy msgid "Jump to _Group Tab" msgstr "/Pogled/Skoči na karticu grupe" #: ../pan/gui/actions.cc:441 #, fuzzy msgid "Jump to _Header Tab" msgstr "/Pogled/Skoči na karticu zaglavlja" #: ../pan/gui/actions.cc:446 #, fuzzy msgid "Jump to _Body Tab" msgstr "/Pogled/Skoči na karticu tijela poruke" #: ../pan/gui/actions.cc:451 #, fuzzy msgid "_Rot13 Selected Text" msgstr "Primijeni ROT13 nad odabranim tekstom" #: ../pan/gui/actions.cc:456 #, fuzzy msgid "Clear _Header Pane" msgstr "Okvir zaglavlja" #: ../pan/gui/actions.cc:461 #, fuzzy msgid "Clear _Body Pane" msgstr "Okvir za prikaz poruke" #: ../pan/gui/actions.cc:466 #, fuzzy msgid "Cache Article" msgstr "Poništavanje članka" #: ../pan/gui/actions.cc:471 #, fuzzy msgid "Read Article" msgstr "Uzimanje uzoraka %d članaka" #: ../pan/gui/actions.cc:476 #, fuzzy msgid "Show Article Information" msgstr "Informacije o profilu" #: ../pan/gui/actions.cc:481 #, fuzzy msgid "Read _More" msgstr "Čitaj više" #: ../pan/gui/actions.cc:482 msgid "Read More" msgstr "Čitaj više" #: ../pan/gui/actions.cc:486 msgid "Read _Back" msgstr "" #: ../pan/gui/actions.cc:487 #, fuzzy msgid "Read Back" msgstr "/_Idi/ Čitaj iza" #: ../pan/gui/actions.cc:491 #, fuzzy msgid "Next _Unread Group" msgstr "/_Idi/Sljedeća nepročitana grupa" #: ../pan/gui/actions.cc:496 #, fuzzy msgid "Next _Group" msgstr "/_Idi/Sljedeća grupa" #: ../pan/gui/actions.cc:501 #, fuzzy msgid "Next _Unread Article" msgstr "/_Idi/Sljedeći _nepročitani članak" #: ../pan/gui/actions.cc:502 #, fuzzy msgid "Next Unread Article" msgstr "Pročitaj Sljedeći Nepročitani članak" #: ../pan/gui/actions.cc:506 #, fuzzy msgid "Next _Article" msgstr "/_Idi/Sljedeći _članak" #: ../pan/gui/actions.cc:507 #, fuzzy msgid "Next Article" msgstr "/_Idi/Sljedeći _članak" #: ../pan/gui/actions.cc:511 #, fuzzy msgid "Next _Watched Article" msgstr "/_Idi/Sljedeći _promatrani članak" #: ../pan/gui/actions.cc:516 #, fuzzy msgid "Next Unread _Thread" msgstr "/_Idi/Sljedeći nepročitani niz" #: ../pan/gui/actions.cc:517 #, fuzzy msgid "Next Unread Thread" msgstr "Pročitaj Sljedeću Nepročitanu Nit" #: ../pan/gui/actions.cc:521 #, fuzzy msgid "Next Threa_d" msgstr "/_Idi/Sljedeći niz" #: ../pan/gui/actions.cc:526 #, fuzzy msgid "Pre_vious Article" msgstr "/_Idi/Prethodni članak" #: ../pan/gui/actions.cc:531 #, fuzzy msgid "Previous _Thread" msgstr "/_Idi/prošli niz" #: ../pan/gui/actions.cc:536 #, fuzzy msgid "_Parent Article" msgstr "/Idi/Nadređeni članak" #: ../pan/gui/actions.cc:541 #, fuzzy msgid "Ignore _Author" msgstr "/Zanemari nit" #: ../pan/gui/actions.cc:545 #, fuzzy msgid "_Watch Thread" msgstr "/Gledaj Nit" #: ../pan/gui/actions.cc:550 #, fuzzy msgid "_Ignore Thread" msgstr "/Zanemari nit" #: ../pan/gui/actions.cc:555 ../pan/gui/actions.cc:556 #, fuzzy msgid "_Toggle Flag On/Off for Thread" msgstr "/Gledaj Nit" #: ../pan/gui/actions.cc:560 ../pan/gui/actions.cc:561 #, fuzzy msgid "_Turn Flag Off for Thread" msgstr "/Gledaj Nit" #: ../pan/gui/actions.cc:565 ../pan/gui/actions.cc:566 #, fuzzy msgid "_Select All Flagged Threads" msgstr "/_Idi/Sljedeći novi niz" #: ../pan/gui/actions.cc:570 ../pan/gui/actions.cc:571 #, fuzzy msgid "_Go to Next Flagged Thread" msgstr "/_Idi/Sljedeći novi niz" #: ../pan/gui/actions.cc:575 ../pan/gui/actions.cc:576 #, fuzzy msgid "_Go to Last Flagged Thread" msgstr "/_Idi/Sljedeći novi niz" #: ../pan/gui/actions.cc:580 ../pan/gui/actions.cc:581 #, fuzzy msgid "_Invert Selection" msgstr "Inventiraj odabranu liniju" #: ../pan/gui/actions.cc:585 #, fuzzy msgid "Edit Article's Watch/Ignore/Score..." msgstr "/_Alati/Napravi pravilo za bodovanje..." #: ../pan/gui/actions.cc:590 #, fuzzy msgid "Add a _Scoring Rule..." msgstr "Dodaj novi rezultat" #: ../pan/gui/actions.cc:595 #, fuzzy msgid "Cance_l Article..." msgstr "Poništavanje članka" #: ../pan/gui/actions.cc:600 #, fuzzy msgid "_Supersede Article..." msgstr "/_Datoteka/_Ispiši Članak" #: ../pan/gui/actions.cc:605 #, fuzzy msgid "_Delete Article" msgstr "_Ukloni poruku" #: ../pan/gui/actions.cc:610 #, fuzzy msgid "Clear Article Cache" msgstr "Priručna memorija za članke" #: ../pan/gui/actions.cc:615 #, fuzzy msgid "_Mark Article as Read" msgstr "Članak je pročitan" #: ../pan/gui/actions.cc:620 #, fuzzy msgid "Mark Article as _Unread" msgstr "Članak nije pročitan" #: ../pan/gui/actions.cc:626 #, fuzzy msgid "_Mark Thread as Read" msgstr "Članak je pročitan" #: ../pan/gui/actions.cc:631 #, fuzzy msgid "Mark Thread as _Unread" msgstr "Članak nije pročitan" #: ../pan/gui/actions.cc:636 #, fuzzy msgid "_Post to Newsgroup" msgstr "Pošalji na grupu vijesti" #: ../pan/gui/actions.cc:637 msgid "Post to Newsgroup" msgstr "Pošalji na grupu vijesti" #: ../pan/gui/actions.cc:641 #, fuzzy msgid "_Followup to Newsgroup" msgstr "/_Pošalji oglas/Proslijedi na grupu novosti..." #: ../pan/gui/actions.cc:642 #, fuzzy msgid "Followup to Newsgroup" msgstr "/_Pošalji oglas/Proslijedi na grupu novosti..." #: ../pan/gui/actions.cc:646 #, fuzzy msgid "_Reply to Author in Mail" msgstr "/_Poruke/Zanameri autora" #: ../pan/gui/actions.cc:651 #, fuzzy msgid "_Pan Home Page" msgstr "/Pomoć/Pan početna stranica" #: ../pan/gui/actions.cc:656 #, fuzzy msgid "Give _Feedback or Report a Bug..." msgstr "/Pomoć/Prijavi grešku... " #: ../pan/gui/actions.cc:661 msgid "_Tip Jar..." msgstr "" #: ../pan/gui/actions.cc:666 #, fuzzy msgid "_About" msgstr "O" #: ../pan/gui/actions.cc:671 msgid "Edit _SSL Certificates" msgstr "" #: ../pan/gui/actions.cc:685 #, fuzzy msgid "_Thread Headers" msgstr "Više zaglavlja" #: ../pan/gui/actions.cc:686 #, fuzzy msgid "_Wrap Article Body" msgstr "/P_regled/Omatanje linija u tijelu poruke" #: ../pan/gui/actions.cc:687 #, fuzzy msgid "Mute _Quoted Text" msgstr "/Pogled/Ukloni Citirani Tekst" #: ../pan/gui/actions.cc:688 #, fuzzy msgid "Show All _Headers in Body Pane" msgstr "/Pogled/Prikaži Sva Zaglavlja u Glavnom Okviru" #: ../pan/gui/actions.cc:689 #, fuzzy msgid "Show _Smilies as Graphics" msgstr "Pokaži upozorenje:" #: ../pan/gui/actions.cc:690 msgid "Show *Bold*, __Underlined__, and /Italic/" msgstr "" #: ../pan/gui/actions.cc:691 msgid "Size Pictures to _Fit" msgstr "" #: ../pan/gui/actions.cc:692 #, fuzzy msgid "Use _Monospace Font" msgstr "Pismo fiksn_e širine:" #: ../pan/gui/actions.cc:693 msgid "Set Focus to Images" msgstr "" #: ../pan/gui/actions.cc:694 msgid "Highlight _URLs" msgstr "" #: ../pan/gui/actions.cc:697 #, fuzzy msgid "_Work Online" msgstr "/_Datoteka/ Radi na _mreži" #: ../pan/gui/actions.cc:698 #, fuzzy msgid "_Tabbed Layout" msgstr "/P_regled/Raspored u _tabovima" #: ../pan/gui/actions.cc:699 #, fuzzy msgid "Show Group _Pane" msgstr "/Pogled/Prikaži Grupni Okvir" #: ../pan/gui/actions.cc:700 #, fuzzy msgid "Show Hea_der Pane" msgstr "/Pogled/Prikaži okvir zaglavlja" #: ../pan/gui/actions.cc:701 #, fuzzy msgid "Show Bod_y Pane" msgstr "/Pogled/Prikaži Glavni Okvir" #: ../pan/gui/actions.cc:702 msgid "Show _Toolbar" msgstr "" #: ../pan/gui/actions.cc:703 #, fuzzy msgid "Abbreviate Group Names" msgstr "/Pogled/Skrati Ime_na u Okviru Grupe " #: ../pan/gui/actions.cc:705 #, fuzzy msgid "Match Only _Unread Articles" msgstr "Poveži samo nove članke" #: ../pan/gui/actions.cc:705 #, fuzzy msgid "Match Only Unread Articles" msgstr "Poveži samo nove članke" #: ../pan/gui/actions.cc:706 #, fuzzy msgid "Match Only _Cached Articles" msgstr "Poveži samo članke iz pričuvne memorije" #: ../pan/gui/actions.cc:706 #, fuzzy msgid "Match Only Cached Articles" msgstr "Poveži samo članke iz pričuvne memorije" #: ../pan/gui/actions.cc:707 #, fuzzy msgid "Match Only _Complete Articles" msgstr "Poveži samo cjelovite članke" #: ../pan/gui/actions.cc:707 #, fuzzy msgid "Match Only Complete Articles" msgstr "Poveži samo cjelovite članke" #: ../pan/gui/actions.cc:708 #, fuzzy msgid "Match Only _My Articles" msgstr "Poveži samo moje članke" #: ../pan/gui/actions.cc:708 #, fuzzy msgid "Match Only My Articles" msgstr "Poveži samo moje članke" #: ../pan/gui/actions.cc:709 #, fuzzy msgid "Match Only _Watched Articles" msgstr "Traži samo nadzirane članke" #: ../pan/gui/actions.cc:709 msgid "Match Only Watched Articles" msgstr "Traži samo nadzirane članke" #: ../pan/gui/actions.cc:711 #, fuzzy msgid "Match Scores of 9999 (_Watched)" msgstr "/Filta_r/Pokaži poruke s preko 9999 bodova (Praćene)" #: ../pan/gui/actions.cc:712 #, fuzzy msgid "Match Scores of 5000...9998 (_High)" msgstr "" "/Filta_r/Pokaži poruke koje imaju između 5000 i 9998 bodova (Visoki " "prioritet)" #: ../pan/gui/actions.cc:713 #, fuzzy msgid "Match Scores of 1...4999 (Me_dium)" msgstr "" "/Filta_r/Pokaži poruke koje imaju između 1 i 4999 bodova (Srednji prioritet)" #: ../pan/gui/actions.cc:714 #, fuzzy msgid "Match Scores of 0 (_Normal)" msgstr "/Filta_r/Pokaži poruke koje imaju 0 bodova (Normalan prioritet)" #: ../pan/gui/actions.cc:715 #, fuzzy msgid "Match Scores of -9998...-1 (_Low)" msgstr "" "/Filta_r/pokaži poruke koje imaju između -9999 i -1 bod (Nizak prioritet)" #: ../pan/gui/actions.cc:716 #, fuzzy msgid "Match Scores of -9999 (_Ignored)" msgstr "/Filta_r/Pokaži poruke koje imaju manje od -9999 bodova (Ingorirane)" #: ../pan/gui/actions.cc:718 msgid "Enable/Disable All _Rules" msgstr "" #: ../pan/gui/actions.cc:744 #, fuzzy msgid "Show Matching _Articles" msgstr "/Filte_r/Prikaži poklapajuće članke" #: ../pan/gui/actions.cc:745 #, fuzzy msgid "Show Matching Articles' _Threads" msgstr "/Filta_r/Pokaži niti rasprava koje ispunjavaju uvjet" #: ../pan/gui/actions.cc:746 #, fuzzy msgid "Show Matching Articles' _Subthreads" msgstr "/Filta_r/Pokaži podniti rasprava koje ispunjavaju uvjet" #: ../pan/gui/body-pane.cc:1011 #, fuzzy, c-format msgid "Unnamed File" msgstr "Odaberi datoteku potpisa" #: ../pan/gui/body-pane.cc:1092 ../pan/gui/gui.cc:1864 #: ../pan/gui/header-pane.cc:1188 ../pan/gui/header-pane.cc:1617 #: ../pan/gui/post-ui.cc:2496 ../pan/gui/prefs-ui.cc:833 #: ../pan/gui/score-add-ui.cc:139 msgid "Subject" msgstr "Subjekt" #: ../pan/gui/body-pane.cc:1094 ../pan/gui/gui.cc:1864 #, fuzzy msgid "From" msgstr "Od" #: ../pan/gui/body-pane.cc:1096 ../pan/gui/gui.cc:1865 #: ../pan/gui/header-pane.cc:1695 ../pan/gui/log-ui.cc:305 #: ../pan/gui/prefs-ui.cc:829 msgid "Date" msgstr "Datum" #: ../pan/gui/body-pane.cc:1103 msgid "Newsgroups" msgstr "Grupe" #: ../pan/gui/body-pane.cc:1108 #, fuzzy msgid "Followup-To" msgstr "Proslijedi-u" #: ../pan/gui/body-pane.cc:1118 msgid "Reply-To" msgstr "Odgovor-Za" #: ../pan/gui/body-pane.cc:1160 msgid " from " msgstr "" #: ../pan/gui/body-pane.cc:1162 msgid " at " msgstr "" #: ../pan/gui/body-pane.cc:1264 #, c-format msgid "" "This is a PGP-Signed message.\n" "\n" "Signer : %s ('%s')\n" "Valid until : %s\n" "Created on : %s" msgstr "" #: ../pan/gui/body-pane.cc:1269 msgid "always" msgstr "" #: ../pan/gui/body-pane.cc:1485 msgid "Copy _URL" msgstr "" #: ../pan/gui/body-pane.cc:1680 #, fuzzy msgid "Save attachment as ...." msgstr "Spremi privitke kao..." #: ../pan/gui/body-pane.cc:1683 #, fuzzy msgid "Save all attachments" msgstr "Spremi privitke" #. add a toolbar for attachments #: ../pan/gui/body-pane.cc:1753 msgid "Attachments" msgstr "Privitci" #. update the titlebar #: ../pan/gui/dl-headers-ui.cc:106 ../pan/gui/gui.cc:973 #: ../pan/gui/gui.cc:1592 ../pan/gui/gui.cc:1893 #: ../pan/gui/score-add-ui.cc:602 msgid "Pan" msgstr "" #: ../pan/gui/dl-headers-ui.cc:112 #, fuzzy, c-format msgid "%d Group" msgid_plural "%d Groups" msgstr[0] "Grupe" msgstr[1] "Grupe" #: ../pan/gui/dl-headers-ui.cc:135 #, fuzzy msgid "Get the last N _days' headers: " msgstr "Preuzmi zaglavlja _najnovijih poruka: " #: ../pan/gui/dl-headers-ui.cc:143 #, fuzzy msgid "Get _new headers" msgstr "/Uzmi nova _zaglavlja" #: ../pan/gui/dl-headers-ui.cc:147 #, fuzzy msgid "Get _all headers" msgstr "Preuzmi zaglavlja _svih poruka" #: ../pan/gui/dl-headers-ui.cc:151 #, fuzzy msgid "Get the _latest N headers: " msgstr "Preuzmi zaglavlja _najnovijih poruka: " #: ../pan/gui/e-action-combo-box.c:388 ../pan/gui/prefs-ui.cc:826 #, fuzzy msgid "Action" msgstr "Akcije" #: ../pan/gui/e-action-combo-box.c:389 msgid "A GtkRadioAction" msgstr "" #: ../pan/gui/e-charset.c:51 ../pan/gui/task-pane.cc:518 msgid "Unknown" msgstr "Nepoznato" #: ../pan/gui/e-charset.c:52 msgid "Arabic" msgstr "" #: ../pan/gui/e-charset.c:53 msgid "Baltic" msgstr "Baltik" #: ../pan/gui/e-charset.c:54 msgid "Central European" msgstr "Srednjeeuropski" #: ../pan/gui/e-charset.c:55 #, fuzzy msgid "Chinese" msgstr "Linije" #: ../pan/gui/e-charset.c:56 msgid "Cyrillic" msgstr "Ćirilica" #: ../pan/gui/e-charset.c:57 msgid "Greek" msgstr "Grčki" #: ../pan/gui/e-charset.c:58 msgid "Hebrew" msgstr "" #: ../pan/gui/e-charset.c:59 msgid "Japanese" msgstr "Japanski" #: ../pan/gui/e-charset.c:60 msgid "Korean" msgstr "Korejski" #: ../pan/gui/e-charset.c:61 msgid "Thai" msgstr "" #: ../pan/gui/e-charset.c:62 msgid "Turkish" msgstr "Turski" #: ../pan/gui/e-charset.c:63 #, fuzzy msgid "Unicode" msgstr "Unicode, UTF-8" #: ../pan/gui/e-charset.c:64 #, fuzzy msgid "Western European" msgstr "Srednjeeuropski" #: ../pan/gui/e-charset.c:65 #, fuzzy msgid "Western European, New" msgstr "Western, Novi" #: ../pan/gui/e-charset.c:84 ../pan/gui/e-charset.c:85 #: ../pan/gui/e-charset.c:86 #, fuzzy msgid "Traditional" msgstr "Tradicionalni kineski" #: ../pan/gui/e-charset.c:87 ../pan/gui/e-charset.c:88 #: ../pan/gui/e-charset.c:89 ../pan/gui/e-charset.c:90 #, fuzzy msgid "Simplified" msgstr "Pojednostavljeni kineski" #: ../pan/gui/e-charset.c:93 #, fuzzy msgid "Ukrainian" msgstr "Ćirilica, Ukrajinska" #: ../pan/gui/e-charset.c:96 msgid "Visual" msgstr "" #: ../pan/gui/e-charset-combo-box.c:93 ../pan/gui/gui.cc:2058 #: ../pan/gui/post-ui.cc:519 ../pan/gui/prefs-ui.cc:737 #, fuzzy msgid "Character Encoding" msgstr "Set karaktera:" #: ../pan/gui/e-charset-combo-box.c:117 msgid "Enter the character set to use" msgstr "" #: ../pan/gui/e-charset-combo-box.c:336 msgid "Other..." msgstr "" #: ../pan/gui/e-cte-dialog.c:78 #, fuzzy msgid "Default encoding" msgstr "Dekodiranje \"%s\"" #: ../pan/gui/e-cte-dialog.c:80 #, fuzzy msgid "7Bit Encoding" msgstr "Set karaktera:" #: ../pan/gui/e-cte-dialog.c:82 #, fuzzy msgid "8Bit Encoding" msgstr "Set karaktera:" #: ../pan/gui/e-cte-dialog.c:84 #, fuzzy msgid "BASE64 Encoding" msgstr "Set karaktera:" #: ../pan/gui/e-cte-dialog.c:86 #, fuzzy msgid "Quoted-Printable Encoding" msgstr "Okvir za prikaz poruke" #: ../pan/gui/group-pane.cc:500 msgid "Group" msgstr "Grupa" #: ../pan/gui/group-pane.cc:501 #, fuzzy msgid "Group (regex)" msgstr "Svojstva grupe" #: ../pan/gui/group-pane.cc:913 #, fuzzy msgid "Subscribed Groups" msgstr "Pretplaćene Grupe vijesti" #: ../pan/gui/group-pane.cc:914 #, fuzzy msgid "Other Groups" msgstr "Nove grupe" #: ../pan/gui/group-pane.cc:954 ../pan/gui/score-view-ui.cc:157 #, fuzzy msgid "Name" msgstr "_Ime:" #: ../pan/gui/group-prefs-dialog.cc:156 #, fuzzy msgid "No Profiles defined in Edit|Posting Profiles." msgstr "/_Alati/Postavke slanja..." #: ../pan/gui/group-prefs-dialog.cc:231 #, fuzzy msgid "Pan: Group Preferences" msgstr "Pan postavke" #: ../pan/gui/group-prefs-dialog.cc:247 #, fuzzy, c-format msgid "Properties for Groups" msgstr "Osobine za \"%s\" " #: ../pan/gui/group-prefs-dialog.cc:249 #, fuzzy, c-format msgid "Properties for %s" msgstr "Osobine za \"%s\" " #: ../pan/gui/group-prefs-dialog.cc:257 #, fuzzy msgid "Character _encoding:" msgstr "Set karaktera:" #: ../pan/gui/group-prefs-dialog.cc:259 #, fuzzy msgid "Directory for Saving Attachments" msgstr "Direktorij za spremanje privitaka" #: ../pan/gui/group-prefs-dialog.cc:269 #, fuzzy msgid "Directory for _saving attachments:" msgstr "Direktorij za spremanje privitaka" #: ../pan/gui/group-prefs-dialog.cc:271 #, fuzzy msgid "Posting _profile:" msgstr "Pan: Profil" #: ../pan/gui/group-prefs-dialog.cc:277 msgid "Spellchecker _language:" msgstr "" #: ../pan/gui/gui.cc:273 msgid "Open the Task Manager" msgstr "Otvori upravitelj zadacima" #: ../pan/gui/gui.cc:301 #, fuzzy msgid "Open the Event Log" msgstr "Otvori Log Statusa" #: ../pan/gui/gui.cc:561 msgid "Save NZB's Files" msgstr "" #: ../pan/gui/gui.cc:588 msgid "Untitled.nzb" msgstr "" #: ../pan/gui/gui.cc:590 #, fuzzy msgid "Save NZB File as..." msgstr "/_Snimi privitak kao..." #: ../pan/gui/gui.cc:757 msgid "Import NZB Files" msgstr "" #: ../pan/gui/gui.cc:765 ../pan/gui/post-ui.cc:3197 #, fuzzy msgid "NZB Files" msgstr "Datoteke" #: ../pan/gui/gui.cc:770 #, fuzzy msgid "All Files" msgstr "Datoteke" #: ../pan/gui/gui.cc:1258 #, fuzzy msgid "Unable to supersede article." msgstr "/_Datoteka/_Ispiši Članak" #: ../pan/gui/gui.cc:1259 ../pan/gui/gui.cc:1333 msgid "The article doesn't match any of your posting profiles." msgstr "" #: ../pan/gui/gui.cc:1306 msgid "Revise and send this article to replace the old one." msgstr "" #: ../pan/gui/gui.cc:1307 ../pan/gui/gui.cc:1370 msgid "Be patient! It will take time for your changes to take effect." msgstr "" #: ../pan/gui/gui.cc:1332 #, fuzzy msgid "Unable to cancel article." msgstr "Ne mogu kreirati nit: %s" #: ../pan/gui/gui.cc:1369 msgid "Send this article to ask your server to cancel your other one." msgstr "" #: ../pan/gui/gui.cc:1387 msgid "You marked some articles for deletion" msgstr "" #: ../pan/gui/gui.cc:1388 #, fuzzy msgid "Are you sure you want to delete them?" msgstr "" "Da li ste sigurni da želite izbrisati ove %d grupe/mape i njihove članke?" #: ../pan/gui/gui.cc:1413 #, fuzzy msgid "Always trust" msgstr "Uređivač" #: ../pan/gui/gui.cc:1416 msgid "Do you want to accept it permanently (deletable afterwards) ?" msgstr "" #: ../pan/gui/gui.cc:1595 #, fuzzy msgid "Copyright \\u00A9 2002-2012 Charles Kerr and others" msgstr "Copyright (C) 2003 Charles Kerr " #: ../pan/gui/gui.cc:1600 msgid "translator-credits" msgstr "" #: ../pan/gui/gui.cc:1709 #, fuzzy msgid "_1. Group Pane" msgstr "Okvir grupa" #: ../pan/gui/gui.cc:1710 #, fuzzy msgid "_2. Header Pane" msgstr "Okvir zaglavlja" #: ../pan/gui/gui.cc:1711 #, fuzzy msgid "_3. Body Pane" msgstr "Okvir za prikaz poruke" #: ../pan/gui/gui.cc:1800 ../pan/gui/gui.cc:1815 msgid " Bytes" msgstr "" #: ../pan/gui/gui.cc:1803 msgid " KB" msgstr "" #: ../pan/gui/gui.cc:1806 msgid " MB" msgstr "" #: ../pan/gui/gui.cc:1809 msgid " GB" msgstr "" #: ../pan/gui/gui.cc:1812 msgid " TB" msgstr "" #: ../pan/gui/gui.cc:1844 #, fuzzy, c-format msgid "This article is complete with %d part." msgid_plural "This article has all %d parts." msgstr[0] "Članak nema privitaka" msgstr[1] "Članak nema privitaka" #: ../pan/gui/gui.cc:1846 #, fuzzy, c-format msgid "This article is missing %d part." msgid_plural "This article is missing %d of its %d parts:" msgstr[0] "Članak nema privitaka" msgstr[1] "Članak nema privitaka" #: ../pan/gui/gui.cc:1865 ../pan/gui/header-pane.cc:1190 #, fuzzy msgid "Message-ID" msgstr "_ID poruke:" #: ../pan/gui/gui.cc:1866 ../pan/gui/header-pane.cc:1665 #: ../pan/gui/prefs-ui.cc:830 msgid "Lines" msgstr "Linije" #: ../pan/gui/gui.cc:1866 msgid "Size" msgstr "" #: ../pan/gui/gui.cc:1867 ../pan/gui/header-pane.cc:1680 #: ../pan/gui/prefs-ui.cc:828 msgid "Bytes" msgstr "" #: ../pan/gui/gui.cc:1917 msgid "" "Error loading iconv library. Some Charsets in the GUI will not be able to be " "encoded." msgstr "" #: ../pan/gui/gui.cc:2059 #, fuzzy msgid "Body Pane Encoding" msgstr "Okvir za prikaz poruke" #: ../pan/gui/gui.cc:2090 ../pan/gui/task-pane.cc:569 #, c-format msgid "Offline" msgstr "Neumreženo" #: ../pan/gui/gui.cc:2094 #, fuzzy, c-format msgid "Closing %d connection" msgid_plural "Closing %d connections" msgstr[0] "Zatvaranje %d veza" msgstr[1] "Zatvaranje %d veza" #: ../pan/gui/gui.cc:2096 ../pan/gui/gui.cc:2126 #, c-format msgid "No Connections" msgstr "Nema veza" #: ../pan/gui/gui.cc:2100 #, c-format msgid "Connecting" msgstr "Povezivanje" #: ../pan/gui/gui.cc:2113 #, c-format msgid "%s: %d idle, %d active @ %.1f KiBps" msgstr "" #: ../pan/gui/gui.cc:2169 #, c-format msgid "No Tasks" msgstr "Nema zadataka" #: ../pan/gui/gui.cc:2171 ../pan/gui/prefs-ui.cc:1047 msgid "Tasks" msgstr "Zadaci" #: ../pan/gui/gui.cc:2182 ../pan/gui/task-pane.cc:435 #, c-format msgid "%lu tasks, %s, %.1f KiBps, ETA %d:%02d:%02d" msgstr "" #: ../pan/gui/gui.cc:2234 msgid "" "Pan is now offline. Please see \"File|Event Log\" and correct the problem, " "then use \"File|Work Online\" to continue." msgstr "" #: ../pan/gui/header-pane.cc:1186 msgid "Subject or Author" msgstr "" #: ../pan/gui/header-pane.cc:1187 msgid "Sub or Auth (regex)" msgstr "" #: ../pan/gui/header-pane.cc:1189 ../pan/gui/header-pane.cc:1649 #: ../pan/gui/prefs-ui.cc:827 ../pan/gui/score-add-ui.cc:140 msgid "Author" msgstr "Autor" #: ../pan/gui/header-pane.cc:1634 ../pan/gui/prefs-ui.cc:831 msgid "Score" msgstr "Rezultat" #: ../pan/gui/log-ui.cc:103 msgid "Save Event List" msgstr "" #: ../pan/gui/log-ui.cc:256 #, fuzzy msgid "Pan: Events" msgstr "Pan: Poslužitelji" #: ../pan/gui/log-ui.cc:315 msgid "Message" msgstr "Poruka" #: ../pan/gui/pan.cc:330 msgid "Maximize" msgstr "" #: ../pan/gui/pan.cc:383 msgid "An Error has occurred!" msgstr "" #: ../pan/gui/pan.cc:397 #, fuzzy msgid "New Articles!" msgstr "/_Idi/Sljedeći _članak" #: ../pan/gui/pan.cc:398 msgid "" "There are new\n" "articles available." msgstr "" #: ../pan/gui/pan.cc:465 msgid "Toggle on/offline" msgstr "" #: ../pan/gui/pan.cc:513 msgid "" "Thank you for trying Pan!\n" " \n" "To start newsreading, first Add a Server." msgstr "" #: ../pan/gui/pan.cc:595 msgid "" "General Options\n" " -h, --help Show this usage page.\n" " --verbose Be verbose (in non-GUI mode).\n" "\n" "URL Options\n" " --no-gui On news:message-id, dump the article to stdout.\n" "\n" "NZB Batch Options\n" " --nzb file1 file2 ... Process nzb files without launching all of Pan.\n" " -o path, --output=path Path to save attachments listed in the nzb " "files.\n" " --no-gui Only show console output, not the download " "queue.\n" msgstr "" #: ../pan/gui/pan.cc:867 msgid "Error: --no-gui used without nzb files or news:message-id." msgstr "" #: ../pan/gui/pan.cc:871 #, fuzzy, c-format msgid "Pan %s started" msgstr "Pan %s Pokrenut" #: ../pan/gui/pan.cc:890 msgid "Please configure Pan's news servers before using it as an nzb client." msgstr "" #: ../pan/gui/pan.cc:1009 msgid "Pan notification" msgstr "" #: ../pan/gui/post-ui.cc:186 #, c-format msgid "Upload Queue : %ld Tasks, %ld KB (~ %.2f MB) total ." msgstr "" #: ../pan/gui/post-ui.cc:286 #, fuzzy, c-format msgid "Error setting custom spellchecker: %s" msgstr "Greška prilikom pisanja na socket: %s" #: ../pan/gui/post-ui.cc:291 ../pan/gui/post-ui.cc:300 #, fuzzy, c-format msgid "Error setting spellchecker: %s" msgstr "Greška prilikom pisanja na socket: %s" #: ../pan/gui/post-ui.cc:419 #, fuzzy msgid "_Profile" msgstr "Profil" #: ../pan/gui/post-ui.cc:420 #, fuzzy msgid "Set Editor" msgstr "Uređivač" #: ../pan/gui/post-ui.cc:422 #, fuzzy msgid "_Send Article" msgstr "/Idi/Nadređeni članak" #: ../pan/gui/post-ui.cc:422 #, fuzzy msgid "Send Article Now" msgstr "Pošalji odmah" #: ../pan/gui/post-ui.cc:423 #, fuzzy msgid "_Send and Save Articles to NZB" msgstr "Pan: Spremi kao" #: ../pan/gui/post-ui.cc:423 #, fuzzy msgid "Send and Save Articles to NZB" msgstr "Pan: Spremi kao" #: ../pan/gui/post-ui.cc:424 #, fuzzy msgid "Set Character _Encoding..." msgstr "Set karaktera:" #: ../pan/gui/post-ui.cc:425 #, fuzzy msgid "Set Content _Transfer Encoding..." msgstr "Set karaktera:" #: ../pan/gui/post-ui.cc:426 #, fuzzy msgid "Sa_ve Draft" msgstr "Spremanje članaka" #: ../pan/gui/post-ui.cc:426 msgid "Save as a Draft for Future Posting" msgstr "" #: ../pan/gui/post-ui.cc:427 #, fuzzy msgid "_Open Draft..." msgstr "/_Pročitaj članak" #: ../pan/gui/post-ui.cc:427 #, fuzzy msgid "Open an Article Draft" msgstr "/_Pročitaj članak" #: ../pan/gui/post-ui.cc:432 #, fuzzy msgid "_Rot13" msgstr "ROT13" #: ../pan/gui/post-ui.cc:432 msgid "Rot13 Selected Text" msgstr "Primijeni ROT13 nad odabranim tekstom" #: ../pan/gui/post-ui.cc:433 #, fuzzy msgid "Run _Editor" msgstr "Uređivač" #: ../pan/gui/post-ui.cc:433 #, fuzzy msgid "Run Editor" msgstr "Uređivač" #: ../pan/gui/post-ui.cc:435 msgid "Add _Files to Queue" msgstr "" #: ../pan/gui/post-ui.cc:435 msgid "Add Files to Queue" msgstr "" #: ../pan/gui/post-ui.cc:450 ../pan/gui/post-ui.cc:451 #, fuzzy msgid "Remove from Queue" msgstr "Novi poslužitelj..." #: ../pan/gui/post-ui.cc:455 ../pan/gui/post-ui.cc:456 #, fuzzy msgid "Clear List" msgstr "Odaberi filter:" #: ../pan/gui/post-ui.cc:460 ../pan/gui/post-ui.cc:461 #, fuzzy msgid "Select Needed Parts" msgstr "Odaberi pismo" #: ../pan/gui/post-ui.cc:465 ../pan/gui/post-ui.cc:466 #: ../pan/gui/task-pane.cc:636 ../pan/gui/task-pane.cc:637 msgid "Move Up" msgstr "" #: ../pan/gui/post-ui.cc:470 ../pan/gui/post-ui.cc:471 #: ../pan/gui/task-pane.cc:641 ../pan/gui/task-pane.cc:642 msgid "Move Down" msgstr "" #: ../pan/gui/post-ui.cc:475 ../pan/gui/post-ui.cc:476 msgid "Move to Top" msgstr "" #: ../pan/gui/post-ui.cc:480 ../pan/gui/post-ui.cc:481 #, fuzzy msgid "Move to Bottom" msgstr "Pomakni označene zadatke na dno" #: ../pan/gui/post-ui.cc:488 #, fuzzy msgid "_Wrap Text" msgstr "Omatanje teksta" #: ../pan/gui/post-ui.cc:488 #, fuzzy msgid "Wrap Text" msgstr "Omatanje teksta" #: ../pan/gui/post-ui.cc:489 #, fuzzy msgid "Always Run Editor" msgstr "Uređivač" #: ../pan/gui/post-ui.cc:490 #, fuzzy msgid "Remember Character Encoding for this Group" msgstr "Set karaktera:" #: ../pan/gui/post-ui.cc:491 msgid "Thread Attached Replies" msgstr "" #: ../pan/gui/post-ui.cc:492 msgid "PGP-Encrypt the Message" msgstr "" #: ../pan/gui/post-ui.cc:493 msgid "PGP-Sign the Message" msgstr "" #: ../pan/gui/post-ui.cc:494 msgid "Check _Spelling" msgstr "" #: ../pan/gui/post-ui.cc:520 #, fuzzy msgid "New Article's Encoding:" msgstr "/Pogledaj rezultate članaka" #: ../pan/gui/post-ui.cc:530 #, fuzzy msgid "Content Transfer Encoding" msgstr "Set karaktera:" #: ../pan/gui/post-ui.cc:531 #, fuzzy msgid "New Article's Content Transfer Encoding:" msgstr "/Pogledaj rezultate članaka" #: ../pan/gui/post-ui.cc:711 msgid "Your changes will be lost!" msgstr "" #: ../pan/gui/post-ui.cc:712 msgid "Close this window and lose your changes?" msgstr "" #: ../pan/gui/post-ui.cc:757 ../pan/gui/post-ui.cc:796 msgid "There were problems with this post." msgstr "" #: ../pan/gui/post-ui.cc:759 ../pan/gui/post-ui.cc:798 #: ../pan/gui/post-ui.cc:861 #, fuzzy msgid "Go Back" msgstr "/_Idi/ Čitaj iza" #: ../pan/gui/post-ui.cc:761 msgid "Post Anyway" msgstr "" #. Prompt the user #: ../pan/gui/post-ui.cc:790 #, fuzzy, c-format msgid "" "Message uses characters not specified in charset '%s' - possibly use '%s' " msgstr "" "Poruka koristi znakove koji nisu sadržani u skupini znakova '%s' - želite li " "u zamjenu upotrijebiti '%s'?" #: ../pan/gui/post-ui.cc:813 #, fuzzy msgid "Go _Online" msgstr "Pan je u mrežnom načinu rada (online)" #: ../pan/gui/post-ui.cc:860 msgid "The file queue is empty, so no files can be saved." msgstr "" #: ../pan/gui/post-ui.cc:1019 msgid "" "No posting server is set for this posting profile.\n" "Please edit the profile via Edit|Manage Posting Profiles." msgstr "" #: ../pan/gui/post-ui.cc:1054 #, fuzzy msgid "Pan is Offline." msgstr "Pan je u neumreženom modu rada (offline)" #: ../pan/gui/post-ui.cc:1055 msgid "Go online to post the article?" msgstr "" #: ../pan/gui/post-ui.cc:1102 #, c-format msgid "" "Error signing/encrypting your message. Perhaps you misspelled your email-" "address (%s) ?" msgstr "" #: ../pan/gui/post-ui.cc:1267 #, fuzzy msgid "Error opening temporary file" msgstr "Greška prilikom otvaranja privremene datoteke: \"%s\"" #: ../pan/gui/post-ui.cc:1279 #, c-format msgid "Error writing article to temporary file: %s" msgstr "Greška prilikom pisanja članka u privremenu datoteku: %s" #: ../pan/gui/post-ui.cc:1298 #, fuzzy, c-format msgid "Error parsing \"external editor\" command line: %s (Command was: %s)" msgstr "Greška prilikom analize komandne linije \"vanjski uređivač\": %s" #: ../pan/gui/post-ui.cc:1339 #, c-format msgid "Error starting external editor: %s" msgstr "Greška prilikom pokretanja vanjskog uređivača: %s" #: ../pan/gui/post-ui.cc:1395 #, fuzzy msgid "Open Draft Article" msgstr "/_Pročitaj članak" #: ../pan/gui/post-ui.cc:1606 #, fuzzy msgid "Save Draft Article" msgstr "Spremanje članaka" #: ../pan/gui/post-ui.cc:1803 #, fuzzy, c-format msgid "Couldn't parse signature command \"%s\": %s" msgstr "Ne mogu pročitati datoteku s potpisom \"%s\": %s" #: ../pan/gui/post-ui.cc:1839 #, fuzzy msgid "Couldn't convert signature to UTF-8." msgstr "" "Ne mogu konvertirati datoteku sa potpisom '%s' u UTF-8. Potpis mora biti u " "'%s' " #: ../pan/gui/post-ui.cc:2334 #, fuzzy msgid "F_rom" msgstr "Od" #: ../pan/gui/post-ui.cc:2352 #, fuzzy msgid "_Subject" msgstr "_Objekt..." #: ../pan/gui/post-ui.cc:2365 #, fuzzy msgid "_Newsgroups" msgstr "/Interesne grupe" #: ../pan/gui/post-ui.cc:2379 #, fuzzy msgid "Mail _To" msgstr "Adresa primatelja" #: ../pan/gui/post-ui.cc:2481 msgid "Delete from Queue" msgstr "" #: ../pan/gui/post-ui.cc:2494 msgid "No." msgstr "" #: ../pan/gui/post-ui.cc:2498 ../pan/gui/post-ui.cc:2592 #: ../pan/gui/post-ui.cc:2633 msgid "Filename" msgstr "Ime datoteke" #: ../pan/gui/post-ui.cc:2500 msgid "Size (kB)" msgstr "" #: ../pan/gui/post-ui.cc:2600 msgid "The current filename" msgstr "" #: ../pan/gui/post-ui.cc:2604 #, fuzzy msgid "Subject Line" msgstr "Subjekt" #: ../pan/gui/post-ui.cc:2612 msgid "The current Subject Line" msgstr "" #: ../pan/gui/post-ui.cc:2626 msgid "No. " msgstr "" #: ../pan/gui/post-ui.cc:2630 msgid "Enable/Disable" msgstr "" #: ../pan/gui/post-ui.cc:2664 #, fuzzy msgid "Follo_wup-To" msgstr "Proslijedi-u" #. i18n: "poster" is a key used by many newsreaders. probably safest to keep this key in english. #: ../pan/gui/post-ui.cc:2673 #, fuzzy msgid "" "The newsgroups where replies to your message should go. This is only needed " "if it differs from the \"Newsgroups\" header.\n" "\n" "To direct all replies to your email address, use \"Followup-To: poster\"" msgstr "" "Grupe vijesti gdje trebaju ići odgovori na vaše poruke. Ovo je jedino " "potrebnoako se razlikuje od \"Pošalji Grupama\" zaglavlja. \n" "Da bi usmjerili sve odgovore na adresu svoje elektroničke pošte, koristite " "\"Proslijedi: pošiljatelju\" " #: ../pan/gui/post-ui.cc:2679 #, fuzzy msgid "_Reply-To" msgstr "Odgovor-Za" #: ../pan/gui/post-ui.cc:2687 msgid "" "The email account where mail replies to your posted message should go. This " "is only needed if it differs from the \"From\" header." msgstr "" "Korisnički račun elektroničke pošte gdje trebaju ići odgovori na vaše " "poslane poruke. Ovoje jedino potrebno ako se razlikuje od \"Od\" zaglavlja." #: ../pan/gui/post-ui.cc:2693 #, fuzzy msgid "_Custom Headers" msgstr "Prilagođena zaglavlja" #: ../pan/gui/post-ui.cc:2717 #, fuzzy msgid "Add \"_User-Agent\" header" msgstr "Dodaj \"Korisnički program\" u zaglavlje" #: ../pan/gui/post-ui.cc:2724 #, fuzzy msgid "Add \"Message-_Id\" header" msgstr "Dodaj \"Identifikator poruke\" u zaglavlje " #: ../pan/gui/post-ui.cc:2855 #, fuzzy msgid "Select Parts" msgstr "Odaberi pismo" #: ../pan/gui/post-ui.cc:2866 msgid "_Parts" msgstr "" #: ../pan/gui/post-ui.cc:3022 #, fuzzy msgid "Post Article" msgstr "_Članak" #: ../pan/gui/post-ui.cc:3043 #, fuzzy msgid "_Message" msgstr "Poruka" #: ../pan/gui/post-ui.cc:3044 #, fuzzy msgid "More _Headers" msgstr "Više zaglavlja" #: ../pan/gui/post-ui.cc:3045 #, fuzzy msgid "File _Queue" msgstr "/_Datoteka/_Završi" #: ../pan/gui/post-ui.cc:3077 ../pan/gui/profiles-dialog.cc:478 #, no-c-format msgid "On %d, %n wrote:" msgstr "Na %d, %n napisao:" #: ../pan/gui/post-ui.cc:3106 msgid "Add files to queue" msgstr "" #: ../pan/gui/post-ui.cc:3184 msgid "Save Upload Queue as NZB File" msgstr "" #: ../pan/gui/prefs.cc:343 #, fuzzy, c-format msgid "Couldn't parse %s color \"%s\"" msgstr "Ne mogu pročitati naredbu za potpis \"%s\"" #: ../pan/gui/prefs-ui.cc:120 msgid "Grab Key" msgstr "" #: ../pan/gui/prefs-ui.cc:126 #, c-format msgid "" "Press the combination of the keys\n" "you want to use for \"%s\"." msgstr "" #: ../pan/gui/prefs-ui.cc:166 #, fuzzy msgid "Edit Hotkey" msgstr "Kategorije" #: ../pan/gui/prefs-ui.cc:228 msgid "Error: Shortkey is invalid!" msgstr "" #: ../pan/gui/prefs-ui.cc:244 #, fuzzy msgid "Error: Shortkey already exists!" msgstr "Poslužitelj pod tim imenom već postoji." #: ../pan/gui/prefs-ui.cc:535 #, fuzzy msgid "Show only icons" msgstr "Informacije o profilu" #: ../pan/gui/prefs-ui.cc:536 #, fuzzy msgid "Show only text" msgstr "/Pogled/Prikaži Glavni Okvir" #: ../pan/gui/prefs-ui.cc:537 #, fuzzy msgid "Show icons and text" msgstr "Spremi privi_tke u mapu:" #: ../pan/gui/prefs-ui.cc:576 #, fuzzy msgid "Use GNOME Preferences" msgstr "Pan postavke" #: ../pan/gui/prefs-ui.cc:577 #, fuzzy msgid "Use KDE Preferences" msgstr "Reference" #: ../pan/gui/prefs-ui.cc:578 #, fuzzy msgid "Use OS X Preferences" msgstr "Reference" #: ../pan/gui/prefs-ui.cc:579 #, fuzzy msgid "Use Windows Preferences" msgstr "Pan postavke" #: ../pan/gui/prefs-ui.cc:580 #, fuzzy msgid "Custom Command:" msgstr "Naredba za ispis:" #: ../pan/gui/prefs-ui.cc:632 msgid "Disabled" msgstr "" #: ../pan/gui/prefs-ui.cc:633 msgid "Only new (Score == 0)" msgstr "" #: ../pan/gui/prefs-ui.cc:634 #, fuzzy msgid "9999 or more" msgstr "/Filta_r/Pokaži poruke koje imaju manje od -9999 bodova (Ingorirane)" #: ../pan/gui/prefs-ui.cc:635 msgid "5000 to 9998" msgstr "" #: ../pan/gui/prefs-ui.cc:636 msgid "1 to 4999" msgstr "" #: ../pan/gui/prefs-ui.cc:637 msgid "-9998 to -1" msgstr "" #: ../pan/gui/prefs-ui.cc:638 #, fuzzy msgid "-9999 or less" msgstr "/Filta_r/Pokaži poruke koje imaju manje od -9999 bodova (Ingorirane)" #: ../pan/gui/prefs-ui.cc:702 #, c-format msgid "Select default global charset. Current setting : %s ." msgstr "" #: ../pan/gui/prefs-ui.cc:738 msgid "Global Charset Settings" msgstr "" #: ../pan/gui/prefs-ui.cc:832 ../pan/gui/task-pane.cc:770 #, fuzzy msgid "State" msgstr "Status" #: ../pan/gui/prefs-ui.cc:866 msgid "Enabled" msgstr "" #: ../pan/gui/prefs-ui.cc:870 #, fuzzy msgid "Column Name" msgstr "Stupac" #: ../pan/gui/prefs-ui.cc:908 #, fuzzy msgid "Pan: Preferences" msgstr "Pan postavke" #: ../pan/gui/prefs-ui.cc:923 msgid "Mouse" msgstr "Miš" #: ../pan/gui/prefs-ui.cc:925 #, fuzzy msgid "Single-click activates, rather than selects, _groups" msgstr "Jednostruki kli_k odabire, bolje nego da učitava, grupe" #: ../pan/gui/prefs-ui.cc:927 #, fuzzy msgid "Single-click activates, rather than selects, _articles" msgstr "Jednostruki klik odabire, bolje nego da učitava, zaglavlja" #: ../pan/gui/prefs-ui.cc:930 #, fuzzy msgid "Groups" msgstr "Grupe" #: ../pan/gui/prefs-ui.cc:932 #, fuzzy msgid "Get new headers in subscribed groups on _startup" msgstr "Dohvati nova zaglavlja u pretplaćenoj grupi" #: ../pan/gui/prefs-ui.cc:934 #, fuzzy msgid "Get new headers when _entering group" msgstr "Preuzmi nova zaglavlja kod ulaska u _grupu" #: ../pan/gui/prefs-ui.cc:936 #, fuzzy msgid "Mark entire group _read when leaving group" msgstr "_Označi pročitane članove grupe kod izlaska iz grupe" #: ../pan/gui/prefs-ui.cc:938 #, fuzzy msgid "Mark entire group read before getting _new headers" msgstr "_Označi pročitane članove grupe kod izlaska iz grupe" #: ../pan/gui/prefs-ui.cc:940 #, fuzzy msgid "E_xpand all threads when entering group" msgstr "Preuzmi nova zaglavlja kod ulaska u _grupu" #: ../pan/gui/prefs-ui.cc:945 #, fuzzy msgid "Articles" msgstr "/_Članci" #: ../pan/gui/prefs-ui.cc:947 msgid "Space selects next article rather than next unread" msgstr "" #: ../pan/gui/prefs-ui.cc:949 #, fuzzy msgid "Expand threads upon selection" msgstr "/_Promijeni/Dodaj _nit rasprave u odabir" #: ../pan/gui/prefs-ui.cc:951 msgid "Always show article deletion confirmation dialog" msgstr "" #: ../pan/gui/prefs-ui.cc:953 #, fuzzy msgid "Smooth scrolling" msgstr "Glatko pomicanje brzinom:" #: ../pan/gui/prefs-ui.cc:958 #, fuzzy msgid "Article Cache" msgstr "Priručna memorija za članke" #: ../pan/gui/prefs-ui.cc:959 msgid "Clear article cache on shutdown" msgstr "" #: ../pan/gui/prefs-ui.cc:962 msgid "Size of article cache (in MiB) :" msgstr "" #: ../pan/gui/prefs-ui.cc:967 #, fuzzy msgid "File extension for Cached Articles: " msgstr "/Filta_r/Pokaži _pročitane poruke" #: ../pan/gui/prefs-ui.cc:972 msgid "Tabs" msgstr "" #: ../pan/gui/prefs-ui.cc:977 #, fuzzy msgid "_Behavior" msgstr "_Ponašanje" #: ../pan/gui/prefs-ui.cc:977 #, fuzzy msgid "Behavior" msgstr "_Ponašanje" #: ../pan/gui/prefs-ui.cc:983 #, fuzzy msgid "Language Settings" msgstr "Dohvaćam \"%s\"" #. systray and notify popup #: ../pan/gui/prefs-ui.cc:992 #, fuzzy msgid "System Tray Behavior" msgstr "_Ponašanje" #: ../pan/gui/prefs-ui.cc:994 msgid "Hide to system tray" msgstr "" #: ../pan/gui/prefs-ui.cc:996 msgid "Start Pan minimized" msgstr "" #: ../pan/gui/prefs-ui.cc:999 #, fuzzy msgid "Show notifications" msgstr "Informacije o profilu" #. allow multiple instances (seperate, not communicating with dbus) #: ../pan/gui/prefs-ui.cc:1004 #, fuzzy msgid "Startup Behavior" msgstr "_Ponašanje" #: ../pan/gui/prefs-ui.cc:1006 msgid "Allow multiple instances of Pan" msgstr "" #: ../pan/gui/prefs-ui.cc:1011 #, fuzzy msgid "Autosave Article Draft" msgstr "/_Pročitaj članak" #: ../pan/gui/prefs-ui.cc:1013 #, fuzzy msgid "Minutes to autosave the current Article Draft: " msgstr "/_Pročitaj članak" #: ../pan/gui/prefs-ui.cc:1018 #, fuzzy msgid "Autosave Articles" msgstr "/_Snimi privitak kao..." #: ../pan/gui/prefs-ui.cc:1020 msgid "Minutes to autosave newsrc files: " msgstr "" #: ../pan/gui/prefs-ui.cc:1026 msgid "_Miscellaneous" msgstr "" #: ../pan/gui/prefs-ui.cc:1026 msgid "Miscellaneous" msgstr "" #: ../pan/gui/prefs-ui.cc:1031 msgid "Pane Layout" msgstr "Raspored okvira" #: ../pan/gui/prefs-ui.cc:1050 msgid "1=Groups, 2=Headers, 3=Body" msgstr "" #: ../pan/gui/prefs-ui.cc:1052 msgid "1=Groups, 2=Body, 3=Headers" msgstr "" #: ../pan/gui/prefs-ui.cc:1054 msgid "1=Headers, 2=Groups, 3=Body" msgstr "" #: ../pan/gui/prefs-ui.cc:1056 msgid "1=Headers, 2=Body, 3=Groups" msgstr "" #: ../pan/gui/prefs-ui.cc:1058 msgid "1=Body, 2=Groups, 3=Headers" msgstr "" #: ../pan/gui/prefs-ui.cc:1060 msgid "1=Body, 2=Headers, 3=Groups" msgstr "" #: ../pan/gui/prefs-ui.cc:1064 #, fuzzy msgid "Layout" msgstr "_Raspored okvira" #: ../pan/gui/prefs-ui.cc:1069 #, fuzzy msgid "Header Pane Columns" msgstr "Okvir zaglavlja" #: ../pan/gui/prefs-ui.cc:1073 #, fuzzy msgid "_Headers" msgstr "Zaglavlja" #: ../pan/gui/prefs-ui.cc:1073 #, fuzzy msgid "Headers" msgstr "Zaglavlja" #: ../pan/gui/prefs-ui.cc:1079 msgid "" "This menu lets you configure Pan to take certain actions on your behalf " "automatically, based on a post's score." msgstr "" #: ../pan/gui/prefs-ui.cc:1082 msgid "_Delete posts scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1084 msgid "Mark posts _read scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1086 msgid "_Cache posts scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1088 msgid "Download _attachments of posts scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1091 #, fuzzy msgid "Actions" msgstr "Akcije" #: ../pan/gui/prefs-ui.cc:1096 ../pan/gui/prefs-ui.cc:1117 msgid "Fonts" msgstr "Pisma" #: ../pan/gui/prefs-ui.cc:1098 msgid "Use custom font in Group Pane:" msgstr "Koristi uobičajeni font u oknu grupe:" #: ../pan/gui/prefs-ui.cc:1103 msgid "Use custom font in Header Pane:" msgstr "Koristi uobičajeni font u oknu zaglavlja:" #: ../pan/gui/prefs-ui.cc:1108 msgid "Use custom font in Body Pane:" msgstr "Koristi uobičajeni font u oknu glavnog dijela (body):" #: ../pan/gui/prefs-ui.cc:1113 #, fuzzy msgid "Monospace font:" msgstr "Pismo fiksn_e širine:" #: ../pan/gui/prefs-ui.cc:1117 #, fuzzy msgid "_Fonts" msgstr "Pisma" #: ../pan/gui/prefs-ui.cc:1122 #, fuzzy msgid "Header Pane" msgstr "Okvir zaglavlja" #: ../pan/gui/prefs-ui.cc:1125 ../pan/gui/prefs-ui.cc:1131 #: ../pan/gui/prefs-ui.cc:1137 ../pan/gui/prefs-ui.cc:1143 #: ../pan/gui/prefs-ui.cc:1149 ../pan/gui/prefs-ui.cc:1155 msgid "Text:" msgstr "Tekst:" #: ../pan/gui/prefs-ui.cc:1127 ../pan/gui/prefs-ui.cc:1133 #: ../pan/gui/prefs-ui.cc:1139 ../pan/gui/prefs-ui.cc:1145 #: ../pan/gui/prefs-ui.cc:1151 ../pan/gui/prefs-ui.cc:1157 msgid "Background:" msgstr "Pozadina:" #: ../pan/gui/prefs-ui.cc:1129 #, fuzzy msgid "Scores of 9999 or more:" msgstr "/Filta_r/Pokaži poruke koje imaju manje od -9999 bodova (Ingorirane)" #: ../pan/gui/prefs-ui.cc:1135 msgid "Scores from 5000 to 9998:" msgstr "" #: ../pan/gui/prefs-ui.cc:1141 msgid "Scores from 1 to 4999:" msgstr "" #: ../pan/gui/prefs-ui.cc:1147 msgid "Scores from -9998 to -1:" msgstr "" #: ../pan/gui/prefs-ui.cc:1153 #, fuzzy msgid "Scores of -9999 or less:" msgstr "/Filta_r/Pokaži poruke koje imaju manje od -9999 bodova (Ingorirane)" #: ../pan/gui/prefs-ui.cc:1159 msgid "Read collapsed thread:" msgstr "" #: ../pan/gui/prefs-ui.cc:1161 #, fuzzy msgid "Body Pane" msgstr "Okvir za prikaz poruke" #: ../pan/gui/prefs-ui.cc:1167 #, fuzzy msgid "Quoted text:" msgstr "/Pogled/Ukloni Citirani Tekst" #: ../pan/gui/prefs-ui.cc:1168 #, fuzzy msgid "URL:" msgstr "URLovi:" #: ../pan/gui/prefs-ui.cc:1169 #, fuzzy msgid "Signature:" msgstr "_Datoteka s potpisom:" #: ../pan/gui/prefs-ui.cc:1171 #, fuzzy msgid "_Colors" msgstr "Boje" #: ../pan/gui/prefs-ui.cc:1171 #, fuzzy msgid "Colors" msgstr "Boje" #: ../pan/gui/prefs-ui.cc:1176 #, fuzzy msgid "Preferred Applications" msgstr "Aplikacije" #: ../pan/gui/prefs-ui.cc:1180 #, fuzzy msgid "_Web browser:" msgstr "Nove grupe" #: ../pan/gui/prefs-ui.cc:1183 #, fuzzy msgid "_Mail reader:" msgstr "Poslužitelj e-pošte" #: ../pan/gui/prefs-ui.cc:1185 #, fuzzy msgid "_Text editor:" msgstr "Uređivač" #: ../pan/gui/prefs-ui.cc:1187 #, fuzzy msgid "_Applications" msgstr "Aplikacije" #: ../pan/gui/prefs-ui.cc:1187 #, fuzzy msgid "Applications" msgstr "Aplikacije" #: ../pan/gui/prefs-ui.cc:1192 ../pan/gui/task-pane.cc:512 #, fuzzy msgid "Encoding" msgstr "Set karaktera:" #: ../pan/gui/prefs-ui.cc:1196 msgid "Default bytes per file (for encoder): " msgstr "" #: ../pan/gui/prefs-ui.cc:1201 #, fuzzy msgid "_Upload" msgstr "Aplikacije" #: ../pan/gui/prefs-ui.cc:1201 msgid "Upload" msgstr "" #: ../pan/gui/prefs-ui.cc:1219 msgid "_Hotkeys" msgstr "" #: ../pan/gui/prefs-ui.cc:1219 msgid "Hotkeys" msgstr "" #: ../pan/gui/profiles-dialog.cc:83 msgid "Please choose your Email Address according to your PGP key's user id." msgstr "" #: ../pan/gui/profiles-dialog.cc:131 #, fuzzy msgid "Posting Profile" msgstr "Pan: Profil" #: ../pan/gui/profiles-dialog.cc:143 msgid "Profile Information" msgstr "Informacije o profilu" #: ../pan/gui/profiles-dialog.cc:147 msgid "_Profile Name:" msgstr "_Ime profila:" #: ../pan/gui/profiles-dialog.cc:150 msgid "Required Information" msgstr "Potrebni podaci" #: ../pan/gui/profiles-dialog.cc:154 msgid "_Full Name:" msgstr "_Puno ime:" #: ../pan/gui/profiles-dialog.cc:158 msgid "" "Your Email Address.\n" "Note that this has to match your PGP Signature's Address\n" "if you want to PGP-Sign or Encrypt your messages correctly." msgstr "" #: ../pan/gui/profiles-dialog.cc:162 msgid "_Email Address:" msgstr "_Adresa e-pošte:" #: ../pan/gui/profiles-dialog.cc:164 #, fuzzy msgid "_Post Articles via:" msgstr "_Članak" #: ../pan/gui/profiles-dialog.cc:167 #, fuzzy msgid "Signature" msgstr "_Datoteka s potpisom:" #: ../pan/gui/profiles-dialog.cc:170 #, fuzzy msgid "_Use a Signature" msgstr "_Datoteka s potpisom:" #: ../pan/gui/profiles-dialog.cc:174 #, fuzzy msgid "Signature File" msgstr "Odaberi datoteku potpisa" #: ../pan/gui/profiles-dialog.cc:184 #, fuzzy msgid "Text File" msgstr "/_Idi/Sljedeći _članak" #: ../pan/gui/profiles-dialog.cc:186 #, fuzzy msgid "Text" msgstr "Tekst:" #: ../pan/gui/profiles-dialog.cc:188 #, fuzzy msgid "Command" msgstr "Naredba za ispis:" #: ../pan/gui/profiles-dialog.cc:191 #, fuzzy msgid "PGP Signature" msgstr "_Datoteka s potpisom:" #: ../pan/gui/profiles-dialog.cc:196 #, fuzzy msgid "Signature Type : " msgstr "_Datoteka s potpisom:" #: ../pan/gui/profiles-dialog.cc:223 msgid "X-Face (Avatar)" msgstr "" #: ../pan/gui/profiles-dialog.cc:226 msgid "" "You can add an avatar icon to your articles with a unique X-Face code. \n" "Add the code without the trailing \"X-Face:\" \n" " if it was generated by a helper program (for example http://www.dairiki.org/" "xface/xface.php)." msgstr "" #: ../pan/gui/profiles-dialog.cc:229 msgid "_X-Face:" msgstr "" #: ../pan/gui/profiles-dialog.cc:231 msgid "Optional Information" msgstr "Opcionalne informacije" #: ../pan/gui/profiles-dialog.cc:236 #, fuzzy msgid "" "When posting to Usenet, your article's Message-ID contains a domain name. \n" "You can set a custom domain name here, or leave it blank to let Pan use the " "domain name from your email address." msgstr "" "Kada šaljete poruke na interesne grupe, ID Vaše poruke (Message-ID) sadrži " "naziv domene. Ovdje možete postaviti prilagođeno ime domene, ili ostaviti " "nepopunjeno kako bi Pan umetnuo naziv domene iz Vaše e-pošte." #: ../pan/gui/profiles-dialog.cc:239 msgid "Message-ID _Domain Name:" msgstr "Poruka-ID Ime _domene:" #: ../pan/gui/profiles-dialog.cc:243 #, c-format msgid "" "%i for Message-ID\n" "%a for Author and Address\n" "%n for Author name\n" "%d for Date" msgstr "" "%i za ID poruke\n" "%a za autora i adresu\n" "%n za ime autora\n" "%d za datum" #: ../pan/gui/profiles-dialog.cc:244 msgid "_Attribution:" msgstr "_Dodatak:" #: ../pan/gui/profiles-dialog.cc:268 msgid "" "Extra headers to be included in your posts, such as\n" "Reply-To: \"Your Name\"\n" "Organization: Your Organization\n" msgstr "" #: ../pan/gui/profiles-dialog.cc:278 #, fuzzy msgid "E_xtra Headers:" msgstr "Dodatna Zaglavlja" #: ../pan/gui/profiles-dialog.cc:323 #, fuzzy msgid "Invalid email address." msgstr "Neispravna adresa \"%s\"" #: ../pan/gui/profiles-dialog.cc:324 msgid "Please use an address of the form joe@somewhere.org" msgstr "" #: ../pan/gui/profiles-dialog.cc:479 msgid "New Profile" msgstr "Novi profil" #: ../pan/gui/profiles-dialog.cc:525 #, fuzzy msgid "Posting Profiles" msgstr "/_Alati/Postavke slanja..." #: ../pan/gui/profiles-dialog.cc:541 #, fuzzy msgid "Profiles" msgstr "Profil" #: ../pan/gui/save-attach-ui.cc:77 ../pan/gui/save-ui.cc:77 #, fuzzy, c-format msgid "" "%g - group as one directory (alt.binaries.pictures.trains)\n" "%G - group as nested directory (/alt/binaries/pictures/trains)\n" "%s - subject line excerpt\n" "%S - subject line\n" " \n" "\"/home/user/News/Pan/%g\" becomes\n" "\"/home/user/News/Pan/alt.binaries.pictures.trains\", and\n" "\"/home/user/News/Pan/%G\" becomes\n" "\"/home/user/News/Pan/alt/binaries/pictures/trains\"," msgstr "" "%g - grupa kao jedan direktorij (alt.binaries.pictures.trains)\n" "%G - grupa kao ugniježđen direktorij (/alt/binaries/pictures/trains)\n" " \n" "\"/home/user/News/Pan/%g\" postaje\n" "\"/home/user/News/Pan/alt.binaries.pictures.trains\", i\n" "\"/home/user/News/Pan/%G\" postaje\n" "\"/home/user/News/Pan/alt/binaries/pictures/trains\"," #: ../pan/gui/save-attach-ui.cc:223 ../pan/gui/save-ui.cc:242 msgid "Add to the queue sorted by date posted" msgstr "" #: ../pan/gui/save-attach-ui.cc:224 ../pan/gui/save-ui.cc:243 #, fuzzy msgid "Add to the front of the queue" msgstr "Dodaj na dno liste upravitelja zadacima" #: ../pan/gui/save-attach-ui.cc:225 ../pan/gui/save-ui.cc:244 #, fuzzy msgid "Add to the back of the queue" msgstr "Dodaj na dno liste upravitelja zadacima" #: ../pan/gui/save-attach-ui.cc:257 #, fuzzy msgid "Pan: Save Attachments" msgstr "_Spremi privitke" #: ../pan/gui/save-attach-ui.cc:282 ../pan/gui/save-attach-ui.cc:300 #: ../pan/gui/save-ui.cc:296 ../pan/gui/save-ui.cc:314 #, fuzzy msgid "_Location:" msgstr "Akcije" #: ../pan/gui/save-attach-ui.cc:286 ../pan/gui/save-ui.cc:300 #, fuzzy msgid "Save Articles" msgstr "/_Snimi privitak kao..." #: ../pan/gui/save-attach-ui.cc:303 ../pan/gui/save-ui.cc:317 #, c-format msgid "_Group's path: %s" msgstr "" #: ../pan/gui/save-attach-ui.cc:314 ../pan/gui/save-ui.cc:332 msgid "_Priority:" msgstr "" #: ../pan/gui/save-ui.cc:233 #, fuzzy msgid "Save attachments" msgstr "Spremi privitke" #: ../pan/gui/save-ui.cc:234 #, fuzzy msgid "Save text" msgstr "Spremi te_kst" #: ../pan/gui/save-ui.cc:235 #, fuzzy msgid "Save attachments and text" msgstr "Spremi privi_tke u mapu:" #: ../pan/gui/save-ui.cc:271 #, fuzzy msgid "Pan: Save Articles" msgstr "Pan: Spremi kao" #: ../pan/gui/save-ui.cc:328 #, fuzzy msgid "_Action:" msgstr "Akcije" #: ../pan/gui/score-add-ui.cc:89 msgid "is more than" msgstr "" #: ../pan/gui/score-add-ui.cc:90 msgid "is at most" msgstr "" #: ../pan/gui/score-add-ui.cc:112 #, fuzzy msgid "increase the article's score by" msgstr "/P_regled/Omatanje linija u tijelu poruke" #: ../pan/gui/score-add-ui.cc:113 #, fuzzy msgid "decrease the article's score by" msgstr "/P_regled/Omatanje linija u tijelu poruke" #: ../pan/gui/score-add-ui.cc:114 #, fuzzy msgid "set the article's score to" msgstr "postavi bodovanje na" #: ../pan/gui/score-add-ui.cc:115 #, fuzzy msgid "watch the article (set its score to 9999)" msgstr "_Prati raspravu (postavi na 9999)" #: ../pan/gui/score-add-ui.cc:116 #, fuzzy msgid "ignore the article (set its score to -9999)" msgstr "_Zanemari raspravu (postavi na -9999)" #: ../pan/gui/score-add-ui.cc:141 #, fuzzy msgid "References" msgstr "_Reference:" #: ../pan/gui/score-add-ui.cc:142 #, fuzzy msgid "Line Count" msgstr "Linija %d, Kolona %d" #: ../pan/gui/score-add-ui.cc:143 msgid "Byte Count" msgstr "" #: ../pan/gui/score-add-ui.cc:144 msgid "Crosspost Group Count" msgstr "" #: ../pan/gui/score-add-ui.cc:145 msgid "Age (in days)" msgstr "" #: ../pan/gui/score-add-ui.cc:167 msgid "for the next month" msgstr "" #: ../pan/gui/score-add-ui.cc:168 msgid "for the next six months" msgstr "" #: ../pan/gui/score-add-ui.cc:169 #, fuzzy msgid "forever" msgstr "Poslužitelj" #: ../pan/gui/score-add-ui.cc:194 msgid "contains" msgstr "sadrži" #: ../pan/gui/score-add-ui.cc:195 #, fuzzy msgid "doesn't contain" msgstr "ne sadrži" #: ../pan/gui/score-add-ui.cc:196 msgid "is" msgstr "je" #: ../pan/gui/score-add-ui.cc:197 #, fuzzy msgid "isn't" msgstr "nije" #: ../pan/gui/score-add-ui.cc:198 msgid "starts with" msgstr "počinje sa" #: ../pan/gui/score-add-ui.cc:199 msgid "ends with" msgstr "završava sa" #: ../pan/gui/score-add-ui.cc:200 #, fuzzy msgid "matches regex" msgstr "odgovara regularnom izrazu" #: ../pan/gui/score-add-ui.cc:481 #, fuzzy msgid "Another rule already sets this article's score." msgstr "/P_regled/Omatanje linija u tijelu poruke" #: ../pan/gui/score-add-ui.cc:482 msgid "You may want to go back or delete the old rule." msgstr "" #: ../pan/gui/score-add-ui.cc:553 msgid "Add and Re_score" msgstr "Dodaj i " #: ../pan/gui/score-add-ui.cc:604 ../pan/gui/score-add-ui.cc:624 #, fuzzy msgid "New Scoring Rule" msgstr "Novi rezultat" #: ../pan/gui/score-add-ui.cc:635 msgid "If the group name" msgstr "" #: ../pan/gui/score-add-ui.cc:642 #, fuzzy msgid "And the article's" msgstr "Linija po članku:" #: ../pan/gui/score-view-ui.cc:56 msgid "Close and Re_score" msgstr "Zatvori i po_novi bodovanje" #: ../pan/gui/score-view-ui.cc:154 #, fuzzy, c-format msgid "File %s, Lines %d - %d" msgstr "datoteka za bodovanje %s, linija %d: %s (%s)" #: ../pan/gui/score-view-ui.cc:182 #, fuzzy msgid "Pan: Article's Scores" msgstr "Pan: Pogledaj rezultate članaka" #: ../pan/gui/score-view-ui.cc:208 #, fuzzy msgid "Add" msgstr "dodaj" #: ../pan/gui/score-view-ui.cc:213 msgid "New Score" msgstr "Novi rezultat" #: ../pan/gui/score-view-ui.cc:218 msgid "Criteria" msgstr "Kriterij" #: ../pan/gui/score-view-ui.cc:241 #, fuzzy msgid "Add a New Scoring Rule" msgstr "Dodaj novi rezultat" #: ../pan/gui/score-view-ui.cc:248 #, fuzzy msgid "Remove the Selected Scoring Rule" msgstr "Ukloni odabrani rezultat" #: ../pan/gui/server-ui.cc:221 msgid "Please specify the server's address." msgstr "" #: ../pan/gui/server-ui.cc:264 msgid "Import SSL certificate (PEM format) from File" msgstr "" #. create the dialog #: ../pan/gui/server-ui.cc:290 ../pan/gui/server-ui.cc:869 #, fuzzy msgid "Add a Server" msgstr "Dodaj novog poslužitelja" #: ../pan/gui/server-ui.cc:290 ../pan/gui/server-ui.cc:875 #, fuzzy msgid "Edit a Server's Settings" msgstr "Druge postavke" #: ../pan/gui/server-ui.cc:310 #, fuzzy msgid "Location" msgstr "Akcije" #: ../pan/gui/server-ui.cc:314 msgid "The news server's actual address, e.g. \"news.mynewsserver.com\"" msgstr "Točna adresa poslužitelja vijesti, e.g. \"news.mynewsserver.com\"" #: ../pan/gui/server-ui.cc:315 msgid "_Address:" msgstr "_Adresa:" #: ../pan/gui/server-ui.cc:319 #, fuzzy msgid "The news server's port number. Typically 119." msgstr "Port poslužitelja vijesti. Ovo je gotovo uvijek 119." #: ../pan/gui/server-ui.cc:320 msgid "Por_t:" msgstr "_Port:" #: ../pan/gui/server-ui.cc:323 msgid "Login (if Required)" msgstr "" #: ../pan/gui/server-ui.cc:327 msgid "_Username:" msgstr "_Korisničko ime:" #: ../pan/gui/server-ui.cc:328 msgid "" "The username to give the server when asked. If your server doesn't require " "authentication, you can leave this blank." msgstr "" #: ../pan/gui/server-ui.cc:332 msgid "_Password:" msgstr "_Lozinka:" #: ../pan/gui/server-ui.cc:333 msgid "" "The password to give the server when asked. If your server doesn't require " "authentication, you can leave this blank." msgstr "" #: ../pan/gui/server-ui.cc:336 #, fuzzy msgid "Settings" msgstr "Dohvaćam \"%s\"" #: ../pan/gui/server-ui.cc:343 msgid "Connection _Limit:" msgstr "Ograničenje veze: " #: ../pan/gui/server-ui.cc:347 msgid "After Two Weeks" msgstr "" #: ../pan/gui/server-ui.cc:348 msgid "After One Month" msgstr "" #: ../pan/gui/server-ui.cc:349 msgid "After Two Months" msgstr "" #: ../pan/gui/server-ui.cc:350 msgid "After Three Months" msgstr "" #: ../pan/gui/server-ui.cc:351 msgid "After Six Months" msgstr "" #: ../pan/gui/server-ui.cc:352 #, fuzzy msgid "Never Expire Old Articles" msgstr "Nikad isteklo" #: ../pan/gui/server-ui.cc:366 msgid "E_xpire Old Articles:" msgstr "" #: ../pan/gui/server-ui.cc:370 #, fuzzy msgid "Primary" msgstr "Prioritet" #: ../pan/gui/server-ui.cc:371 msgid "Fallback" msgstr "" #: ../pan/gui/server-ui.cc:385 #, fuzzy msgid "Server Rank:" msgstr "Poslužitelji" #: ../pan/gui/server-ui.cc:389 msgid "" "Fallback servers are used for articles that can't be found on the " "primaries. One common approach is to use free servers as primaries and " "subscription servers as fallbacks." msgstr "" #: ../pan/gui/server-ui.cc:396 msgid "Security" msgstr "" #: ../pan/gui/server-ui.cc:401 msgid "Use Plaintext (Unsecured) Connections" msgstr "" #: ../pan/gui/server-ui.cc:402 #, fuzzy msgid "Use Secure SSL Connections" msgstr "Nema veza" #: ../pan/gui/server-ui.cc:418 msgid "TLS (SSL) Options:" msgstr "" #: ../pan/gui/server-ui.cc:423 msgid "" "You can set the option for using/disabling secure SSL/TLS connections here. " "If you enable SSL/TLS, your data is encrypted and secure. It is encouraged " "to use this option for privacy reasons." msgstr "" #: ../pan/gui/server-ui.cc:428 msgid "Always trust this server's certificate" msgstr "" #: ../pan/gui/server-ui.cc:602 #, c-format msgid "Really delete \"%s\"?" msgstr "" #: ../pan/gui/server-ui.cc:691 msgid "No information available." msgstr "" #: ../pan/gui/server-ui.cc:697 #, c-format msgid "Server Certificate for '%s'" msgstr "" #: ../pan/gui/server-ui.cc:795 #, c-format msgid "Really delete certificate for \"%s\"?" msgstr "" #. dialog #: ../pan/gui/server-ui.cc:822 ../pan/gui/server-ui.cc:843 #: ../pan/gui/server-ui.cc:941 msgid "Servers" msgstr "Poslužitelji" #: ../pan/gui/server-ui.cc:882 #, fuzzy msgid "Remove a Server" msgstr "Novi poslužitelj..." #. dialog #: ../pan/gui/server-ui.cc:915 msgid "SSL Certificates" msgstr "" #: ../pan/gui/server-ui.cc:936 msgid "Certificates" msgstr "" #: ../pan/gui/server-ui.cc:967 msgid "Import Certificate" msgstr "" #: ../pan/gui/server-ui.cc:973 msgid "Inspect Certificate" msgstr "" #: ../pan/gui/server-ui.cc:980 #, fuzzy msgid "Remove Certificate" msgstr "Novi poslužitelj..." #: ../pan/gui/task-pane.cc:143 #, c-format msgid "" "\n" "Upload\n" "\n" "Subject: \"%s\"\n" "From: %s\n" "Groups: %s\n" "Sourcefile: %s\n" msgstr "" #: ../pan/gui/task-pane.cc:155 #, c-format msgid "" "\n" "Download\n" "\n" "Subject: \"%s\"\n" "From: %s\n" "Date: %s\n" "Groups: %s\n" "Save Path: %s\n" msgstr "" #: ../pan/gui/task-pane.cc:157 #, fuzzy msgid "unknown" msgstr "Nepoznato" #: ../pan/gui/task-pane.cc:263 msgid "Choose new destination for selected Tasks" msgstr "" #: ../pan/gui/task-pane.cc:417 #, fuzzy, c-format msgid "Pan: Tasks (%d Queued, %d Running, %d Stopped)" msgstr "" "Pan %s dnevnik zadataka (%d pripremljenih, %d pokrenutih, %d zaustavljenih)" #: ../pan/gui/task-pane.cc:419 #, fuzzy, c-format msgid "Pan: Tasks (%d Queued, %d Running)" msgstr "Pan %s dnevnik zadataka (%d pripremljenih, %d pokrenutih)" #: ../pan/gui/task-pane.cc:421 #, fuzzy, c-format msgid "Pan: Tasks" msgstr "Pan: Upravitelj zadataka" #: ../pan/gui/task-pane.cc:446 #, fuzzy, c-format msgid "%lu selected, %s" msgstr "(%u odabrano)" #: ../pan/gui/task-pane.cc:510 msgid "Running" msgstr "Izvodi se" #: ../pan/gui/task-pane.cc:511 #, fuzzy msgid "Decoding" msgstr "Dekodiranje \"%s\"" #: ../pan/gui/task-pane.cc:513 msgid "Queued for Decode" msgstr "" #: ../pan/gui/task-pane.cc:514 msgid "Queued for Encode" msgstr "" #: ../pan/gui/task-pane.cc:515 msgid "Queued" msgstr "Na čekanju (red)" #: ../pan/gui/task-pane.cc:516 msgid "Stopped" msgstr "Zaustavljen" #: ../pan/gui/task-pane.cc:517 msgid "Removing" msgstr "Uklanjanje" #: ../pan/gui/task-pane.cc:546 #, fuzzy, c-format msgid "%d%% Done" msgstr "% Gotovo" #: ../pan/gui/task-pane.cc:552 #, fuzzy, c-format msgid "%d:%02d:%02d Remaining (%d @ %lu KiB/s)" msgstr "%d:%02d:%02d (%.2f KB/s)" #: ../pan/gui/task-pane.cc:646 ../pan/gui/task-pane.cc:647 #, fuzzy msgid "Move To Top" msgstr "Pomakni označene zadatke na dno" #: ../pan/gui/task-pane.cc:651 ../pan/gui/task-pane.cc:652 #, fuzzy msgid "Move To Bottom" msgstr "Pomakni označene zadatke na dno" #: ../pan/gui/task-pane.cc:656 ../pan/gui/task-pane.cc:657 #, fuzzy msgid "Stop Task" msgstr "Nema zadataka" #: ../pan/gui/task-pane.cc:661 ../pan/gui/task-pane.cc:662 #, fuzzy msgid "Delete Task" msgstr "Ukloni spam" #: ../pan/gui/task-pane.cc:666 ../pan/gui/task-pane.cc:667 #, fuzzy msgid "Restart Task" msgstr "Ponovo pokreni odabrane zadatke" #: ../pan/gui/task-pane.cc:671 ../pan/gui/task-pane.cc:672 msgid "Change Download Destination" msgstr "" #: ../pan/gui/task-pane.cc:729 #, fuzzy msgid "_Online" msgstr "Pan je u mrežnom načinu rada (online)" #: ../pan/gui/task-pane.cc:746 #, fuzzy msgid "Restart Tasks" msgstr "Ponovo pokreni odabrane zadatke" #: ../pan/gui/task-pane.cc:748 #, fuzzy msgid "Stop Tasks" msgstr "Nema zadataka" #: ../pan/gui/task-pane.cc:750 #, fuzzy msgid "Delete Tasks" msgstr "Ukloni spam" #: ../pan/gui/url.cc:123 #, fuzzy, c-format msgid "Error starting URL: %s (Command was: %s)" msgstr "Greška prilikom analize komandne linije \"internet preglednik\": %s" #: ../pan/tasks/decoder.cc:115 #, fuzzy, c-format msgid "Couldn't save file \"%s\": %s" msgstr "Ne mogu pročitati datoteku s potpisom \"%s\": %s" #: ../pan/tasks/decoder.cc:137 ../pan/tasks/encoder.cc:136 msgid "Error initializing uulib" msgstr "" #: ../pan/tasks/decoder.cc:152 ../pan/tasks/socket-impl-gio.cc:352 #: ../pan/tasks/socket-impl-openssl.cc:634 #, fuzzy, c-format msgid "Error reading from %s: %s" msgstr "Greška kod čitanja iz socketa: %s" #: ../pan/tasks/decoder.cc:192 #, c-format msgid "Saved \"%s\"" msgstr "Spremljeno \"%s\"" #: ../pan/tasks/decoder.cc:199 #, fuzzy, c-format msgid "" "Error saving \"%s\":\n" "%s." msgstr "Greška prilikom čitanja datoteke \"%s\": %s" #: ../pan/tasks/decoder.cc:314 ../pan/tasks/task-article.cc:350 #, fuzzy, c-format msgid "Decoding %s" msgstr "Dekodiranje \"%s\"" #: ../pan/tasks/encoder.cc:102 ../pan/tasks/encoder.cc:155 #, fuzzy, c-format msgid "Error loading %s from cache." msgstr "Greška kod čitanja iz socketa." #: ../pan/tasks/encoder.cc:177 #, fuzzy, c-format msgid "Error encoding %s: %s" msgstr "Greška prilikom čitanja datoteke \"%s\": %s" #: ../pan/tasks/encoder.cc:269 #, fuzzy, c-format msgid "Encoding %s" msgstr "Set karaktera:" #: ../pan/tasks/nntp.cc:126 #, c-format msgid "%s requires a username, but none is set." msgstr "" #: ../pan/tasks/nntp.cc:139 #, c-format msgid "%s requires a password, but none is set." msgstr "" #: ../pan/tasks/nntp.cc:205 #, c-format msgid "Sending \"%s\" to %s returned an error: %s" msgstr "" #: ../pan/tasks/nntp.cc:228 #, c-format msgid "Sending \"%s\" to %s returned an unrecognized response: \"%s\"" msgstr "" #: ../pan/tasks/nntp-pool.cc:222 #, fuzzy, c-format msgid "Unable to connect to \"%s\"" msgstr "Ne mogu se povezati na poslužitelj elektronske pošte \"%*.*s\"" #: ../pan/tasks/socket-impl-gio.cc:173 ../pan/tasks/socket-impl-gio.cc:211 #: ../pan/tasks/socket-impl-openssl.cc:214 #: ../pan/tasks/socket-impl-openssl.cc:252 #, fuzzy, c-format msgid "Error connecting to \"%s\"" msgstr "Greška prilikom čitanja datoteke \"%s\": %s" #: ../pan/tasks/socket-impl-gio.cc:351 ../pan/tasks/socket-impl-openssl.cc:633 #, fuzzy msgid "Unknown Error" msgstr "Nepoznato" #: ../pan/tasks/task-article.cc:61 ../pan/tasks/task-article.cc:156 #: ../pan/tasks/task-article.cc:159 #, fuzzy, c-format msgid "Saving %s" msgstr "Spremanje \"%s\"" #: ../pan/tasks/task-article.cc:63 #, fuzzy, c-format msgid "Reading %s" msgstr "Čitam" #: ../pan/tasks/task-article.cc:322 #, c-format msgid "Article \"%s\" is incomplete -- the news server(s) don't have part %s" msgstr "" #: ../pan/tasks/task-groups.cc:40 #, fuzzy, c-format msgid "Getting group list from \"%s\"" msgstr "Dohvaćam nove grupe sa servera \"%s\"" #: ../pan/tasks/task-groups.cc:122 #, fuzzy, c-format msgid "Fetched %lu Groups" msgstr "Dohvaćeno %u zaglavlja za \"%s\"" #: ../pan/tasks/task-post.cc:35 #, fuzzy, c-format msgid "Posting \"%s\"" msgstr "Dohvaćam \"%s\"" #: ../pan/tasks/task-post.cc:76 #, fuzzy, c-format msgid "Posting of \"%s\" failed: %s" msgstr "Dohvaćanje tijela članka \"%s\" nije uspjelo: %s " #: ../pan/tasks/task-post.cc:81 #, c-format msgid "Posting of \"%s\" succesful: %s" msgstr "" #: ../pan/tasks/task-upload.cc:51 #, fuzzy, c-format msgid "Uploading %s" msgstr "Čitam" #: ../pan/tasks/task-upload.cc:249 #, c-format msgid "Uploading %s - Part %d of %d" msgstr "" #: ../pan/tasks/task-upload.cc:251 #, c-format msgid "Uploading Message body with Subject \"%s\"" msgstr "" #: ../pan/tasks/task-upload.cc:308 #, c-format msgid "Posting of File %s (Part %d of %d) failed: No Posts allowed by server." msgstr "" #: ../pan/tasks/task-upload.cc:316 #, fuzzy, c-format msgid "Posting of File %s (Part %d of %d) failed: %s" msgstr "Dohvaćanje tijela članka \"%s\" nije uspjelo: %s " #: ../pan/tasks/task-upload.cc:326 ../pan/tasks/task-upload.cc:333 #, c-format msgid "Posting of file %s (Part %d of %d) succesful: %s" msgstr "" #: ../pan/tasks/task-upload.cc:343 #, fuzzy, c-format msgid "Posting of file %s succesful: %s" msgstr "Dohvaćanje tijela članka \"%s\" nije uspjelo: %s " #: ../pan/tasks/task-upload.cc:347 #, c-format msgid "" "Posting of file %s not completely successful: Check the log (right-click on " "list item) !" msgstr "" #: ../pan/tasks/task-upload.cc:364 #, c-format msgid "" "Posting of file %s not successful: Check the log (right-click on list item) !" msgstr "" #: ../pan/tasks/task-xover.cc:79 #, c-format msgid "Getting all headers for \"%s\"" msgstr "Dohvaćam sva zaglavlja za \"%s\" " #: ../pan/tasks/task-xover.cc:81 #, c-format msgid "Getting new headers for \"%s\"" msgstr "Dohvaćanje novih zaglavlja za \"%s\"" #. SAMPLE #: ../pan/tasks/task-xover.cc:83 #, c-format msgid "Sampling headers for \"%s\"" msgstr "Uzimanje uzoraka članaka za \"%s\"" #: ../pan/tasks/task-xover.cc:369 #, fuzzy, c-format msgid "%s (%lu parts, %lu articles)" msgstr " (%lu linija u %lu članaka)" #: ../pan/tasks/task-xoverinfo.cc:78 #, fuzzy, c-format msgid "Getting header counts for \"%s\"" msgstr "Dohvaćam sva zaglavlja za \"%s\" " #: ../pan/usenet-utils/filter-info.cc:163 #, fuzzy msgid "article doesn't have attachments" msgstr "Poruka ne sadrži potpuni privitak" #: ../pan/usenet-utils/filter-info.cc:167 #, fuzzy msgid "the article has attachments" msgstr "Članak nema privitaka" #: ../pan/usenet-utils/filter-info.cc:171 #, fuzzy msgid "the article isn't cached locally" msgstr "Tijelo poruke se ne nalazi u lokalnom međuspremniku" #: ../pan/usenet-utils/filter-info.cc:175 #, fuzzy msgid "the article is cached locally" msgstr "Tijelo poruke se nalazi u lokalnom međuspremniku" #: ../pan/usenet-utils/filter-info.cc:179 #, fuzzy msgid "the article wasn't posted by you" msgstr "Članak nisam ja objavio" #: ../pan/usenet-utils/filter-info.cc:183 #, fuzzy msgid "the article was posted by you" msgstr "Članak sam ja objavio" #: ../pan/usenet-utils/filter-info.cc:187 #, fuzzy msgid "the article has been read" msgstr "Članak nije pročitan" #: ../pan/usenet-utils/filter-info.cc:191 #, fuzzy msgid "the article hasn't been read" msgstr "Članak nije pročitan" #: ../pan/usenet-utils/filter-info.cc:195 #, fuzzy, c-format msgid "the article is less than %ld bytes long" msgstr "Članak je manji od %d bajtova " #: ../pan/usenet-utils/filter-info.cc:200 #, fuzzy, c-format msgid "the article is at least %ld bytes long" msgstr "Članak je manji od %d bajtova " #: ../pan/usenet-utils/filter-info.cc:205 #, fuzzy, c-format msgid "the article is less than %ld lines long" msgstr "Članak je manji od %d redaka" #: ../pan/usenet-utils/filter-info.cc:210 #, fuzzy, c-format msgid "the article is at least %ld lines long" msgstr "Članak je manji od %d redaka" #: ../pan/usenet-utils/filter-info.cc:215 #, fuzzy, c-format msgid "the article is less than %ld days old" msgstr "Članak je stariji od %d dana" #: ../pan/usenet-utils/filter-info.cc:220 #, fuzzy, c-format msgid "the article is at least %ld days old" msgstr "Članak je barem N dana star" #: ../pan/usenet-utils/filter-info.cc:225 #, fuzzy, c-format msgid "the article was posted to less than %ld groups" msgstr "Članak je poslan u manje od %d grupa" #: ../pan/usenet-utils/filter-info.cc:230 #, fuzzy, c-format msgid "the article was posted to at least %ld groups" msgstr "Članak je objavljen u bar N grupa:" #: ../pan/usenet-utils/filter-info.cc:235 #, fuzzy, c-format msgid "the article's score is less than %ld" msgstr "postavi bodovanje na" #: ../pan/usenet-utils/filter-info.cc:240 #, fuzzy, c-format msgid "the article's score is %ld or higher" msgstr "postavi bodovanje na" #: ../pan/usenet-utils/filter-info.cc:249 #: ../pan/usenet-utils/filter-info.cc:259 #, fuzzy, c-format msgid "%s doesn't contain \"%s\"" msgstr "ne sadrži" #: ../pan/usenet-utils/filter-info.cc:250 #: ../pan/usenet-utils/filter-info.cc:260 #, c-format msgid "%s isn't \"%s\"" msgstr "" #: ../pan/usenet-utils/filter-info.cc:251 #: ../pan/usenet-utils/filter-info.cc:261 #, fuzzy, c-format msgid "%s doesn't begin with \"%s\"" msgstr "ne završava sa" #: ../pan/usenet-utils/filter-info.cc:252 #: ../pan/usenet-utils/filter-info.cc:262 #, fuzzy, c-format msgid "%s doesn't end with \"%s\"" msgstr "ne završava sa" #: ../pan/usenet-utils/filter-info.cc:253 #: ../pan/usenet-utils/filter-info.cc:263 #, c-format msgid "%s doesn't match the regex \"%s\"" msgstr "" #: ../pan/usenet-utils/filter-info.cc:275 #, fuzzy, c-format msgid "%s contains \"%s\"" msgstr "sadrži" #: ../pan/usenet-utils/filter-info.cc:276 #, c-format msgid "%s is \"%s\"" msgstr "" #: ../pan/usenet-utils/filter-info.cc:277 #, c-format msgid "%s begins with \"%s\"" msgstr "" #: ../pan/usenet-utils/filter-info.cc:278 #, fuzzy, c-format msgid "%s ends with \"%s\"" msgstr "završava sa" #: ../pan/usenet-utils/filter-info.cc:279 #, fuzzy, c-format msgid "%s matches the regex \"%s\"" msgstr "odgovara regularnom izrazu" #: ../pan/usenet-utils/filter-info.cc:285 msgid "Any of these tests fail:" msgstr "" #: ../pan/usenet-utils/filter-info.cc:292 msgid "All of these tests pass:" msgstr "" #: ../pan/usenet-utils/filter-info.cc:299 msgid "None of these tests pass:" msgstr "" #: ../pan/usenet-utils/filter-info.cc:306 msgid "Any of these tests pass:" msgstr "" #: ../pan/usenet-utils/gnksa.cc:878 #, c-format msgid "No email address provided; generating message-id with domain \"%s\"" msgstr "" "Nije data adresa elektroničke pošte; stvaram idenentifikacijski broj poruke " "s domenom \"%s\"" #: ../pan/usenet-utils/message-check.cc:124 #, fuzzy msgid "Warning: Reply seems to be top-posted." msgstr "UPOZORENjE: Izgleda da je odgovor poslan prije originalne poruke." #: ../pan/usenet-utils/message-check.cc:145 #, fuzzy msgid "Warning: The signature marker should be \"-- \", not \"--\"." msgstr "UPOZORENJE: Oznaka potpisa bi trebala biti \"-- \", a ne \"--\"." #: ../pan/usenet-utils/message-check.cc:162 #, fuzzy msgid "Warning: Signature prefix with no signature." msgstr "UPOZORENJE: Prefiks potpisa bez potpisa." #: ../pan/usenet-utils/message-check.cc:167 #, fuzzy msgid "Warning: Signature is more than 4 lines long." msgstr "UPOZORENJE: Potpis je dugačak više od 4 linije" #: ../pan/usenet-utils/message-check.cc:172 #, fuzzy msgid "Warning: Signature is more than 80 characters wide." msgstr "UPOZORENJE: Potpis je širok više od 80 znakova" #: ../pan/usenet-utils/message-check.cc:198 #, fuzzy, c-format msgid "Warning: %d line is more than 80 characters wide." msgid_plural "Warning: %d lines are more than 80 characters wide." msgstr[0] "UPOZORENJE: %d linije su široke više od 80 znakova" msgstr[1] "UPOZORENJE: %d linije su široke više od 80 znakova" #: ../pan/usenet-utils/message-check.cc:223 #, fuzzy msgid "Error: Message is empty." msgstr "GREŠKA: Poruka je prazna." #: ../pan/usenet-utils/message-check.cc:258 #, fuzzy msgid "Warning: The message is entirely quoted text!" msgstr "UPOZORENJE: Poruka je u cijelosti citirani tekst" #: ../pan/usenet-utils/message-check.cc:259 #, fuzzy msgid "Warning: The message is mostly quoted text." msgstr "UPOZORENJE: Poruka je većinom citirani tekst" #: ../pan/usenet-utils/message-check.cc:309 #, fuzzy msgid "Error: Message appears to have no new content." msgstr "GREŠKA: U poruci nema novog teksta." #: ../pan/usenet-utils/message-check.cc:344 #: ../pan/usenet-utils/message-check.cc:383 #, c-format msgid "" "Warning: The posting profile's server doesn't carry newsgroup\n" "\t\"%s\".\n" "\tIf the group name is correct, switch profiles in the \"From:\"\n" "\tline or edit the profile with \"Edit|Manage Posting Profiles\"." msgstr "" #: ../pan/usenet-utils/message-check.cc:355 #, fuzzy msgid "Warning: Following-Up to too many groups." msgstr "UPOZORENJE: Prosljeđivanje na puno grupa." #: ../pan/usenet-utils/message-check.cc:366 #, fuzzy msgid "Error: No Subject specified." msgstr "GREŠKA: Niste unijeli temu poruke." #: ../pan/usenet-utils/message-check.cc:395 #, fuzzy, c-format msgid "Warning: Group \"%s\" is read-only." msgstr "UPOZORENJE: Grupa \"%*.*s\" je samo za čitanje" #: ../pan/usenet-utils/message-check.cc:404 #, fuzzy msgid "Error: Posting to a very large number of groups." msgstr "GREŠKA: Slanje na veliki broj grupa." #: ../pan/usenet-utils/message-check.cc:409 #, fuzzy msgid "Warning: Posting to a large number of groups." msgstr "UPOZORENJE: Slanje velikom broju grupa " #: ../pan/usenet-utils/message-check.cc:416 #, fuzzy msgid "Warning: Crossposting without setting Followup-To header." msgstr "UPOZORENjE: Slanje na više grupa bez postavljanja Followup-To." #: ../pan/usenet-utils/message-check.cc:441 #, fuzzy msgid "Error: Bad email address." msgstr "_Adresa e-pošte:" #: ../pan/usenet-utils/message-check.cc:450 msgid "Warning: Most newsgroups frown upon HTML posts." msgstr "" #: ../pan/usenet-utils/message-check.cc:486 #, fuzzy msgid "Error: No Recipients." msgstr "GREŠKA: Niste unijeli temu poruke." #: ../pan/usenet-utils/scorefile.cc:304 #, fuzzy, c-format msgid "" "Error reading score in %*.*s, line %d: expected 'Expires: MM/DD/YYYY' or " "'Expires: DD-MM-YYYY'." msgstr "očekujem \"Expires: MM/DD/YYYY\" ili \"Expires: DD-MM-YYYY\"" #: ../pan/usenet-utils/scorefile.cc:307 #, c-format msgid "Expired old score from %*.*s, line %d" msgstr "" #: ../pan/usenet-utils/scorefile.cc:380 #, c-format msgid "Error reading score in %*.*s, line %d: unexpected line." msgstr "" #: ../pan/usenet-utils/scorefile.cc:428 #, c-format msgid "Read %lu scoring rules in %lu sections from \"%s\"" msgstr "" #: ../pan/usenet-utils/ssl-utils.h:199 #, fuzzy, c-format msgid "Error printing the server certificate for '%s'" msgstr "Greška prilikom analize komandne linije \"internet preglednik\": %s" #: ../pan/usenet-utils/ssl-utils.h:216 #, c-format msgid "" "The current server '%s' sent this security certificate :\n" "\n" msgstr "" #: ../pan/usenet-utils/ssl-utils.h:217 #, c-format msgid "" "Certificate information for server '%s' :\n" "\n" msgstr "" #: ../pan/usenet-utils/ssl-utils.h:219 #, c-format msgid "" "%sIssuer information:\n" "%s\n" "Valid until : %s\n" "\n" "Not valid before : %s\n" "\n" msgstr "" #: ../pan/usenet-utils/text-massager.cc:397 msgid "> [quoted text muted]" msgstr "> [Uklonjen citirani tekst]" #~ msgid "Read News from Usenet" #~ msgstr "Čitaj Novosti sa Useneta" #, fuzzy #~ msgid "_Toggle Flag on for Thread" #~ msgstr "/Gledaj Nit" #, fuzzy #~ msgid "Error!" #~ msgstr "Greška" #, fuzzy #~ msgid "Signer : " #~ msgstr "_Datoteka s potpisom:" #, fuzzy #~ msgid "_Signature:" #~ msgstr "_Datoteka s potpisom:" #, fuzzy #~ msgid "Creating directory \"%s\"" #~ msgstr "Greška prilikom otvaranja direktorija \"%s\": %s)" #~ msgid "Couldn't create directory \"%s\": %s" #~ msgstr "Ne mogu kreirati direktorij \"%s\": %s " #, fuzzy #~ msgid "" #~ "Your copy of libpcre doesn't support UTF-8. UTF-8 regular expressions " #~ "may fail." #~ msgstr "" #~ "Vaša kopija sustavnog libpcre ne podržava UTF-8. Moguće su greške kod " #~ "regularnih izraza za UTF-8." #~ msgid "Can't use regular expression \"%s\": %s at position %d" #~ msgstr "Ne mogu koristiti regularni izraz \"%s\": %s na mjestu %d" #, fuzzy #~ msgid "_Groups" #~ msgstr "Grupe" #, fuzzy #~ msgid "Read Selected Group" #~ msgstr "Pročitaj Sljedeću Nepročitanu Grupu" #, fuzzy #~ msgid "_Mark Group _Read" #~ msgstr "/Označi sve poruke u grupi kao _pročitane" #, fuzzy #~ msgid "_Delete Group's Articles" #~ msgstr "/_Obriši Članke grupe" #, fuzzy #~ msgid "Get New Headers for Selected Groups" #~ msgstr "Dohvati nova zaglavlja u odabranoj grupi" #, fuzzy #~ msgid "Get New Headers for Subscribed Groups" #~ msgstr "Dohvati nova zaglavlja u pretplaćenoj grupi" #, fuzzy #~ msgid "Get Headers from Server" #~ msgstr "Dohvaćeno %d grupa sa poslužitelja \"%s\"" #, fuzzy #~ msgid "Get a new Group list from the Server" #~ msgstr "Dohvaćam %d novih grupa sa servera \"%s\"" #, fuzzy #~ msgid "Subscribe to Selected Groups" #~ msgstr "Pretplaćene Grupe vijesti" #, fuzzy #~ msgid "Unsubscribe from Selected Groups" #~ msgstr "Pretplaćene Grupe vijesti" #, fuzzy #~ msgid "Save Selected Articles..." #~ msgstr "Dohvati odabrane članke" #~ msgid "Cancel Last Task" #~ msgstr "Poništi Zadnji Zadatak" #, fuzzy #~ msgid "Clear Header Pane" #~ msgstr "Okvir zaglavlja" #, fuzzy #~ msgid "Clear Body Pane" #~ msgstr "Okvir za prikaz poruke" #, fuzzy #~ msgid "Download _Selected Article" #~ msgstr "Preuzimam jednu poruku" #, fuzzy #~ msgid "Download Selected Article" #~ msgstr "Preuzimam jednu poruku" #, fuzzy #~ msgid "Read _Selected Article" #~ msgstr "Pročitaj Sljedeći Nepročitani članak" #, fuzzy #~ msgid "Next Unread Group" #~ msgstr "/_Idi/Sljedeća nepročitana grupa" #, fuzzy #~ msgid "Next Group" #~ msgstr "/_Idi/Sljedeća grupa" #, fuzzy #~ msgid "Next Watched Article" #~ msgstr "/_Idi/Sljedeći _promatrani članak" #, fuzzy #~ msgid "Next Thread" #~ msgstr "/_Idi/Sljedeći niz" #, fuzzy #~ msgid "Previous Article" #~ msgstr "/_Idi/Prethodni članak" #, fuzzy #~ msgid "Previous Thread" #~ msgstr "/_Idi/prošli niz" #, fuzzy #~ msgid "Parent Article" #~ msgstr "/Idi/Nadređeni članak" #, fuzzy #~ msgid "_Plonk Author" #~ msgstr "/_Poruke/Zanameri autora" #, fuzzy #~ msgid "Mark Article as Read" #~ msgstr "Članak je pročitan" #, fuzzy #~ msgid "Mark Article as Unread" #~ msgstr "Članak nije pročitan" #, fuzzy #~ msgid "Reply to Author" #~ msgstr "/_Poruke/Zanameri autora" #, fuzzy #~ msgid "_About..." #~ msgstr "_/Pomoć/O..." #, fuzzy #~ msgid "Abbreviate _Names in Group Pane" #~ msgstr "/Pogled/Skrati Ime_na u Okviru Grupe " #, fuzzy #~ msgid "Match Only Articles Posted by Me" #~ msgstr "Poveži samo moje članke" #, fuzzy #~ msgid "Central European (ISO-8859-2)" #~ msgstr "Srednjeeuropski" #, fuzzy #~ msgid "Central European (Windows-1250)" #~ msgstr "Srednjeeuropski" #, fuzzy #~ msgid "Chinese Simplified (gb2312)" #~ msgstr "Pojednostavljeni kineski" #, fuzzy #~ msgid "Chinese Traditional (big5)" #~ msgstr "Tradicionalni kineski" #, fuzzy #~ msgid "Cyrillic (KOI8-R)" #~ msgstr "Ćirilica" #, fuzzy #~ msgid "Cyrillic, Ukrainian (KOI8-U)" #~ msgstr "Ćirilica, Ukrajinska" #, fuzzy #~ msgid "Western, New (ISO-8859-15)" #~ msgstr "Western, Novi" #, fuzzy #~ msgid "Unicode (UTF-8)" #~ msgstr "Unicode, UTF-8" #, fuzzy #~ msgid "Pan: " #~ msgstr "Pan: Pravila" #, fuzzy #~ msgid "Group Name" #~ msgstr "Okvir grupa" #, fuzzy #~ msgid "Pan: %s" #~ msgstr "Pan: Pravila" #~ msgid "Tasks: %u/%u" #~ msgstr "Zadaci: %u/%u" #~ msgid "%u Tasks Running, %u Tasks Total" #~ msgstr "%u Zadataka Aktivno, %u Zadataka Ukupno" #, fuzzy #~ msgid "Wrap the Article Body to 80 Columns" #~ msgstr "/P_regled/Omatanje linija u tijelu poruke" #, fuzzy #~ msgid "_Close" #~ msgstr "Boje" #, fuzzy #~ msgid "Close Window" #~ msgstr "Zatvori log prozor" #, fuzzy #~ msgid "Cut Text" #~ msgstr "Citirani tekst" #, fuzzy #~ msgid "Copy Text" #~ msgstr "Omatanje teksta" #, fuzzy #~ msgid "_Paste" #~ msgstr "_Oglasi" #, fuzzy #~ msgid "Paste Text" #~ msgstr "Spremi te_kst" #, fuzzy #~ msgid "Manage Posting Pr_ofiles..." #~ msgstr "/_Alati/Postavke slanja..." #~ msgid "Western" #~ msgstr "Zapadni" #, fuzzy #~ msgid "Error loading post.ui: \"%s\"" #~ msgstr "Greška kod čitanja iz socketa: %s" #, fuzzy #~ msgid "Editors" #~ msgstr "Uređivač" #, fuzzy #~ msgid "Posting Article" #~ msgstr "Slanje članka \"%s\"" #, fuzzy #~ msgid "Add a New Profile" #~ msgstr "Dodaj novi profil" #~ msgid "Edit the selected profile" #~ msgstr "Uredi odabrani profil" #~ msgid "Remove the selected profile" #~ msgstr "Ukloni odabrani profil" #, fuzzy #~ msgid "Threads" #~ msgstr "_Pročitana nit rasprave" #, fuzzy #~ msgid "Path" #~ msgstr "Dijelovi" #, fuzzy #~ msgid "_Path:" #~ msgstr "_Oglasi" #, fuzzy #~ msgid "Group Management" #~ msgstr "Okvir grupa" #, fuzzy #~ msgid "Pan: New Scoring Rule" #~ msgstr "Pan: Uredi pravilo" #, fuzzy #~ msgid "Then" #~ msgstr "Hvala" #, fuzzy #~ msgid "For" #~ msgstr "Mape" #, fuzzy #~ msgid "Name: \"%s\"" #~ msgstr "Spremljeno \"%s\"" #, fuzzy #~ msgid "Pan: Add a Server" #~ msgstr "Pan: Uredi poslužitelj" #, fuzzy #~ msgid "Pan: Edit a Server's Settings" #~ msgstr "Pan: Uredi poslužitelj" #~ msgid "Pan: Servers" #~ msgstr "Pan: Poslužitelji" #, fuzzy #~ msgid "to %s" #~ msgstr "Otprilike %s" #~ msgid "Status" #~ msgstr "Status" #, fuzzy #~ msgid "Unable to set group: %s" #~ msgstr "Ne mogu odrediti grupu \"%*.*s\": %s" #, fuzzy #~ msgid "Making a new connection to %*.*s" #~ msgstr "Novo povezivanje %p za %*.*s, port %d" #, fuzzy #~ msgid "Couldn't load \"%s\": %s" #~ msgstr "Ne mogu kreirati direktorij \"%s\": %s " #, fuzzy #~ msgid "" #~ "Error saving \"%s\":\n" #~ "%s. %s" #~ msgstr "Greška prilikom čitanja datoteke \"%s\": %s" #, fuzzy #~ msgid "Warning: Unknown group \"%s\"." #~ msgstr "UPOZORENJE: Nepoznata grupa: \"%*.*s\"." #, fuzzy #~ msgid "Post New Article" #~ msgstr "_Članak" #, fuzzy #~ msgid "Follow-up to Article" #~ msgstr "Proslijedi u grupu vijesti" #, fuzzy #~ msgid "_Post Article" #~ msgstr "_Članak" #, fuzzy #~ msgid "Post this Article Now" #~ msgstr "Slanje članka \"%s\"" #, fuzzy #~ msgid "Default KDE Browser" #~ msgstr "Uobičajeni s_kup znakova:" #, fuzzy #~ msgid "Error: No Newsgroups specified." #~ msgstr "GREŠKA: Niste unijeli adresu primatelja." #, fuzzy #~ msgid "_Posting" #~ msgstr "_Oglasi" #, fuzzy #~ msgid "Message-Id" #~ msgstr "ID poruke" #, fuzzy #~ msgid "Saved newsrc files in %.1f seconds" #~ msgstr "Spremljeno %d članaka u \"%s\" za %.1f sekundi (%.0f čl/sek)" #, fuzzy #~ msgid "Use _Monospace Font in Body Pane" #~ msgstr "" #~ "/_Pogled/Koristi pismo s slovima jednakog razmaka u okviru tijela poruke" #, fuzzy #~ msgid "%d connections totaling %.1f KiB per second" #~ msgstr "%d konekcija %.1f KB po sekundi" #~ msgid "" #~ "Used when email replies to your posts should go somewhere other than the " #~ "email address above. Because Reply-To: is relatively difficult for " #~ "spammers to harvest, it's polite give your email address here if you gave " #~ "an invalid email address above." #~ msgstr "" #~ "Koristi se kada odgovor na Vašu poruku treba poslati na neku drugu adresu " #~ "umjesto gore navedene. To je iz razloga što je Reply-To: polje zaglavlja " #~ "relativno teže za iskoristiti od stranice spamera koji sakupljaju adrese, " #~ "a ipak je pristojno prikazati pravu adresu u ovom polju ako je gore " #~ "navedena netočna." #~ msgid "_Reply-To Header:" #~ msgstr "_Reply-To zaglavlje:" #~ msgid "Or_ganization Header:" #~ msgstr "Organizacijsko Zaglavlje:" #, fuzzy #~ msgid "Attach this _Signature:" #~ msgstr "Potpis:" #~ msgid "Automatic Downloads" #~ msgstr "Automatsko skidanje podataka" #, fuzzy #~ msgid "Save a_ttachments to path:" #~ msgstr "Spremi privitke u:" #~ msgid "UNKNOWN" #~ msgstr "NEPOZNATO" #, fuzzy #~ msgid "Decode can't access directory \"%s\"" #~ msgstr "Dekoder ne može pristupiti putanji \"%s\"" #~ msgid "Could not decode article - file may be corrupt/incomplete" #~ msgstr "Ne mogu dekodirati članak - datoteka je možda neispravna/nepotpuna " #~ msgid "Checksum for `%s' part %d failed - file is corrupt" #~ msgstr "Sažetak za `%s' dio %d nije uspjelo - datoteka je pokvarena" #~ msgid "Checksum for `%s' failed - file may be corrupt" #~ msgstr "Checksum za `%s' nije uspjelo - datoteka je možda pokvarena" #, fuzzy #~ msgid "Use custom colors in _Header Pane" #~ msgstr "Koristi uobičajeni font u oknu zaglavlja:" #, fuzzy #~ msgid "Header Pane background:" #~ msgstr "Bodovanje u okviru zaglavlja" #, fuzzy #~ msgid "Unread articles:" #~ msgstr "_Nepročitana nit rasprave" #, fuzzy #~ msgid "" #~ "Unsupported data version (%d) for server properties. Are you running an " #~ "old version of Pan by accident?" #~ msgstr "" #~ "Nepodržana inačica podataka %d za \"%s\" datoteku podataka.\n" #~ "Da li ste slučajno pokrenuli staru verziju Pana?" #, fuzzy #~ msgid "Couldn't create temporary file: %s" #~ msgstr "Ne mogu kreirati privremenu datoteku: %s " #~ msgid "Error renaming \"%s\" as \"%s\": %s." #~ msgstr "Greška kod preimenovanja \"%s\" as \"%s\": %s." #~ msgid "Can't backup \"%s\" as \"%s\": %s" #~ msgstr "Ne mogu stvoriti sigurnosnu kopiju \"%s\" as \"%s\": %s" #~ msgid "Can't write to \"%s\": %s" #~ msgstr "Ne mogu pisati u \"%s\": %s" #~ msgid "Body" #~ msgstr "Tijelo" #, fuzzy #~ msgid "Open a Draft Article from Disk" #~ msgstr "Isteklo %u članaka iz `%s'" #, fuzzy #~ msgid "subject" #~ msgstr "Subjekt" #, fuzzy #~ msgid "author" #~ msgstr "Autor" #~ msgid "Change" #~ msgstr "Promijeni" #~ msgid "Connections" #~ msgstr "Veze" #, fuzzy #~ msgid "Active" #~ msgstr "Akcije" #~ msgid "" #~ "Unable to cancel article: Couldn't find matching article in folder `pan." #~ "sent'!" #~ msgstr "" #~ "Ne mogu poništiti članak: Ne mogu pronaći odgovarajući članak u " #~ "direktoriju `pan poslano`! " #~ msgid "" #~ "Unable to supersede article: Couldn't find matching article in folder " #~ "`pan.sent'!" #~ msgstr "" #~ "Ne mogu zamijeniti članak: Nije moguće naći podudarajući članak u mapi " #~ "`pan.sent'!" #~ msgid "You must download the article before you can cancel it." #~ msgstr "Članak se mora prvo skinuti da se mogao poništi." #~ msgid "You must download the article before you can supersede it." #~ msgstr "Članak se mora prvo skinuti da se mogao zamijeniti." #~ msgid "Pan: Find Article" #~ msgstr "Pan: Pronađi članak" #~ msgid "_Author:" #~ msgstr "_Autor:" #~ msgid "Case Sensiti_ve" #~ msgstr "_Razlikuj mala/velika slova" #~ msgid "_Unread Only" #~ msgstr "Samo _nepročitane" #~ msgid "Fin_d:" #~ msgstr "_Nađi:" #~ msgid "" #~ "Type in a search string and press ENTER.\n" #~ "Wildcards are allowed." #~ msgstr "" #~ "Unesite niz za pretraživanje i pritisnite ENTER.\n" #~ "Zamjenski znakovi su dopušteni." #~ msgid "/---" #~ msgstr "/---" #~ msgid "/Save A_ttachments" #~ msgstr "/spremi privitak" #~ msgid "/_Manual Decode..." #~ msgstr "/_Ručno dešifriranje..." #~ msgid "/D_ownload Flagged" #~ msgstr "/Preuzimanje dat_oteka obilježeno zastavicom" #~ msgid "/_Flag" #~ msgstr "/_Označi" #~ msgid "/_Unflag" #~ msgstr "/Ukloni o_znaku" #~ msgid "/_Create Score" #~ msgstr "/?kreiraj rezultat" #~ msgid "/Add S_et to Selection" #~ msgstr "/Dodaj _postavku u odabir" #~ msgid "/_Copy to Folder" #~ msgstr "/_Kopiraj u mapu" #~ msgid "/_Delete" #~ msgstr "Ukloni" #~ msgid "Scoring Articles" #~ msgstr "Bodovanje članaka" #~ msgid "Filtering Articles" #~ msgstr "Filtriranje članaka" #~ msgid "Updating Header Pane..." #~ msgstr "Ažuriranje okna zaglavlja..." #~ msgid "Loading group \"%s\"" #~ msgstr "Učitavam grupu \"%s\" " #~ msgid "Flushing article cache... " #~ msgstr "Brišem priručnu memoriju za članke..." #~ msgid "%d files erased." #~ msgstr "%d datoteka izbrisano" #~ msgid "Error saving article \"%s\" (is %s full?)" #~ msgstr "Greška kod spremanja članka \"%s\" (da li je %s pun?)" #~ msgid "Directory \"%s\" contains %.1f MB in %d files" #~ msgstr "Direktorij \"%s\" ima %.1f MB u %d datoteka" #~ msgid "Unparseable Subject" #~ msgstr "Neobradiv naslov" #~ msgid "Couldn't parse a Message-ID from the raw message!" #~ msgstr "Ne mogu pročitati ID poruke iz izvorne poruke!" #~ msgid "unknown@spammesenseless.com" #~ msgstr "unknown@spammesenseless.com" #~ msgid "Can't create file \"%s\" %s" #~ msgstr "Ne mogu kreirati datoteku \"%s\" %s" #~ msgid "Error saving file \"%s\" - is the disk full?" #~ msgstr "Greška prilikom spremanja datoteke \"%s\" - da li je disk pun?" #~ msgid "Decoded \"%s\" from group \"%*.*s\", \"%s\"" #~ msgstr "Dekodirano \"%s\" iz grupe \"%*.*s\", \"%s\"" #~ msgid "Loading %u of %d groups" #~ msgstr "Učitavam %u od %d grupa" #~ msgid "" #~ "Skipped %d groups due to possible corruption in \"%s\" and \"%s\". You " #~ "may want to delete these files and get a new grouplist from your news " #~ "server." #~ msgstr "" #~ "Preskočeno %d grupa zbog moguće pokvarenosti u \"%s\" and \"%s\". Bilo bi " #~ "dobroda izbrišete ove datoteke i stavite novu listu grupa sa svog " #~ "poslužitelja." #~ msgid "Loaded %d groups for server \"%s\" in %.1f seconds (%.0f groups/sec)" #~ msgstr "" #~ "Učitano %d grupa sa poslužitelja \"%s\" u %.1f sekundi (%.0f grupa/sek)" #~ msgid "Saved %d of %u groups" #~ msgstr "Spremljeno %d od %u grupa" #~ msgid "Error saving list of groups to \"%s\" - is the disk full?" #~ msgstr "Greška prilikom spremanja liste grupa u \"%s\" - da li je disk pun?" #~ msgid "Saved %d groups in \"%s\" in %.1f seconds (%.0f groups/sec)" #~ msgstr "Spremljeno %d grupa u \"%s\" za %.1f sekundi (%.0f grupa/sek)" #~ msgid "Loaded %d of %d articles" #~ msgstr "Učitano %d od %d članaka" #~ msgid "" #~ "Pan skipped %d corrupt headers from the local cache for group \"%*.*s\"." #~ msgstr "" #~ "Pan je preskočio %d neispravna zaglavlja iz lokalne pričuvne memorije za " #~ "grupu \"%*.*s\"." #~ msgid "You may want to empty this group and download fresh headers." #~ msgstr "Trebalo bi isprazniti grupu i skinuti svježa zaglavlja." #~ msgid "The group will not be saved -- can't create file \"%s\"" #~ msgstr "Grupa neće biti spremljena -- ne mogu kreirati datoteku \"%s\"" #~ msgid "Unable to save headers for group \"%*.*s\" - is the disk full?" #~ msgstr "Ne mogu spremiti zaglavlja za grupu \"%*.*s\" - da li je disk pun?" #~ msgid "(No Group)" #~ msgstr "(Bez grupe)" #~ msgid "ERROR: invalid address \"%s\"" #~ msgstr "GREŠKA: neispravna adresa \"%s\"" #~ msgid "ERROR: Must have one author in From: line" #~ msgstr "GREŠKA: Mora postojati autor u liniji Od:" #~ msgid "Imported %d groups (%d new) from \"%s\"" #~ msgstr "Uvezeno %d grupa (%d novih) iz \"%s\"" #~ msgid "Exported %d groups (%d subscribed) to \"%s\"" #~ msgstr "Izvezeno %d grupa (%d pretplaćenih) u \"%s\"" #~ msgid "Imported %d lines from Gnome config file" #~ msgstr "Uvezeno %d linija iz Gnome konfiguracijske datoteke" #~ msgid "%s does not appear to be a valid datafile" #~ msgstr "%s se čini da nije ispravan podatkovni dokument" #~ msgid "Error converting string \"%*s\" to utf8: %d - %s" #~ msgstr "Greška prilikom pretvorbe stringa \"%*s\" u utf8: %d - %s" #~ msgid "No name specified!" #~ msgstr "Ime nije odabrano!" #~ msgid "Server is corrupt" #~ msgstr "Poslužitelj je neispravan" #~ msgid "A newsreader for GNOME" #~ msgstr "Program za čitanje novosti za GNOME" #~ msgid "Programmer" #~ msgstr "Programer" #~ msgid "Project Originator, Programmer" #~ msgstr "Inicijator projekta, programiranje" #~ msgid "Programmer, 0.6 - 0.7" #~ msgstr "Programer, 0.6 - 0.7" #~ msgid "" #~ "Pan %s Translations\n" #~ "%s\n" #~ "\n" #~ "Pan %s Code or Patches\n" #~ "%s\n" #~ "\n" #~ "Pan %s Suggestions and Testing\n" #~ "%s\n" #~ msgstr "" #~ "Pan %s Prijevodi\n" #~ "%s\n" #~ "\n" #~ "Pan %s Kod ili Zakrpe\n" #~ "%s\n" #~ "\n" #~ "Pan %s Prijedlozi i Testiranje\n" #~ "%s\n" #~ msgid "_Directory for saving articles:" #~ msgstr "Direktorij za _spremanje članaka:" #~ msgid "Pan: Download Headers for group `%s'" #~ msgstr "Pan: Preuzmi zaglavlja za grupu `%s'" #~ msgid "Pan: Download Headers" #~ msgstr "Pan: Preuzmi zaglavlja" #~ msgid "Download _new headers" #~ msgstr "Preuzmi zaglavlja samo _novih poruka" #~ msgid "_Download bodies too" #~ msgstr "Također preuzmi i _tijela poruka" #~ msgid "How should you appear when posting articles?" #~ msgstr "Kako bi se trebao pojaviti kod objave članaka." #~ msgid "Your _Name:" #~ msgstr "Vaše _Ime:" #~ msgid "Email _Address:" #~ msgstr "Adresa e-pošte:" #~ msgid "_Organization:" #~ msgstr "_Organizacija:" #~ msgid "default" #~ msgstr "uobičajeno" #~ msgid "What mail server should Pan use?" #~ msgstr "Koji poslužitelj elektroničke pošte će Pan koristiti?" #~ msgid "What news server should Pan use?" #~ msgstr "Koji poslužitelj interesnih grupa će Pan koristiti?" #~ msgid "Short name for Pan to show, e.g. \"mynewsserver\"" #~ msgstr "Kraće ime koje će Pan prikazati, npr. \"mojposlužiteljvijesti\"" #~ msgid "Short _name for Pan to show:" #~ msgstr "Kratko _ime koje će Pan prikazivati:" #~ msgid "Login" #~ msgstr "Korisnička oznaka" #~ msgid "Server requires authori_zation" #~ msgstr "Poslužitelj zahtijeva autori_zaciju" #~ msgid "Pan Setup Wizard" #~ msgstr "Pan čarobnjak za instalaciju" #~ msgid "Thank you for trying Pan!" #~ msgstr "Hvala što ste probali Pan!" #~ msgid "" #~ "Thank you for trying Pan!\n" #~ " \n" #~ "If you are new to Usenet,\n" #~ "%s\n" #~ "is a starting point to see what Usenet is,\n" #~ "where to find a free news server,\n" #~ "and how to use Pan.\n" #~ " \n" #~ "Since this is your first time running Pan,\n" #~ "we'll need to gather some information.\n" #~ msgstr "" #~ "Hvala što ste isprobali Pan!\n" #~ " \n" #~ "Ako ste novi na usenetu,\n" #~ "%s\n" #~ "je početna točka gdje možete vidjeti o čemu se radi,\n" #~ "a možete naći i slobodni poslužitelj vijesti,\n" #~ "i upute kako koristiti Pan.\n" #~ " \n" #~ "Kako prvi put pokrećete Pan,\n" #~ "morati ćemo sakupiti neke informacije.\n" #~ msgid "About You" #~ msgstr "O vama" #~ msgid "News Server" #~ msgstr "Poslužitelj interesnih grupa" #~ msgid "Ready!" #~ msgstr "Spreman!" #~ msgid "" #~ "You have successfully entered all of\n" #~ "the information required to set up Pan.\n" #~ "\n" #~ "To save these settings, click Save." #~ msgstr "" #~ "Sve informacije potrebne za podešavanje Pan-a\n" #~ "su uspješno unešene\n" #~ "\n" #~ "Za snimanje postavki kliknuti na Snimi." #~ msgid "License" #~ msgstr "Licenca" #~ msgid "Authors" #~ msgstr "Autori" #~ msgid "Thanks to" #~ msgstr "Zahvaljujemo se" #~ msgid " (No conditions -- no articles will match)" #~ msgstr " (Nema uvjeta -- članci neće se podudarati)" #~ msgid " (No conditions -- all articles will match)" #~ msgstr " (Nema uvjeta -- svi članci će se podudarati)" #~ msgid "Pan: Edit Filter" #~ msgstr "Pan: Uredi filter" #~ msgid "Filter name: " #~ msgstr "Ime filtera:" #~ msgid "Show in Filter Menu" #~ msgstr "Prikaži u izborniku filtera" #~ msgid "Move the selected line up one line" #~ msgstr "Pomakni označene linije gore za jednu liniju" #~ msgid "Move the selected line down one line" #~ msgstr "Pomakni označene linije dolje za jednu liniju" #~ msgid "Invert" #~ msgstr "Invertiraj" #~ msgid "All Of" #~ msgstr "Sve od" #~ msgid "Any Of" #~ msgstr "Bilo Koja Od" #~ msgid "Delete the selected line" #~ msgstr "Ukloni odabranu stavku filtra" #~ msgid "Add New Line to the Filter" #~ msgstr "Dodaj novu liniju filtru" #~ msgid "New Filter Line" #~ msgstr "Nova filter linija" #~ msgid "does not start with" #~ msgstr "ne počinje sa" #~ msgid "does not match regular expression" #~ msgstr "ne odgovara regularnom izrazu" #~ msgid "Article h_as" #~ msgstr "Poruka sadr_ži:" #~ msgid "Incomplete Attachments" #~ msgstr "Nepotpuni privitci" #~ msgid "No Attachments" #~ msgstr "Nema priloga" #~ msgid "Article _is" #~ msgstr "Članak je" #~ msgid "New" #~ msgstr "Novi" #~ msgid "Unread" #~ msgstr "Nepročitano" #~ msgid "Read" #~ msgstr "Čitaj" #~ msgid "Cached" #~ msgstr "Međuspremljeno" #~ msgid "Posted by Me" #~ msgstr "Poslano od mene" #~ msgid "Article has at _least N lines:" #~ msgstr "Poruka ima najmanje N _redaka:" #~ msgid "Article _score is at least" #~ msgstr "Prioritet poru_ke je:" #~ msgid "Watched" #~ msgstr "Nadgledano" #~ msgid "High" #~ msgstr "Visok" #~ msgid "Medium" #~ msgstr "Srednje" #~ msgid "Zero" #~ msgstr "Nule" #~ msgid "Low" #~ msgstr "Nisko" #~ msgid "Ignored" #~ msgstr "Zanemareno" #~ msgid "" #~ "This filter is still used by the following rules:\n" #~ "%s\n" #~ "Please remove this dependency first." #~ msgstr "" #~ "Ovaj filter se još uvijek koristi po sljedećim pravilima:\n" #~ "%s\n" #~ "Prvo uklonite ovu ovisnost." #~ msgid "Pan: Filters" #~ msgstr "Pan: Filtri" #~ msgid "Filters" #~ msgstr "Filtri" #~ msgid "Add a new filter" #~ msgstr "Dodaj novi filter" #~ msgid "Edit the selected filter" #~ msgstr "Uredi odabrani filter" #~ msgid "Remove the selected filter" #~ msgstr "Ukloni odabrani filter" #~ msgid "NONE OF:" #~ msgstr "NIJEDAN OD:" #~ msgid "ALL OF:" #~ msgstr "SVE:" #~ msgid "ANY OF:" #~ msgstr "BILO KOJE:" #~ msgid "Article has complete attachments" #~ msgstr "Poruka sadrži potpun privitak" #~ msgid "Article does not have incomplete attachments" #~ msgstr "Poruka ne sadrži nepotpune privitke" #~ msgid "Article has incomplete attachments" #~ msgstr "Poruka sadrži nepotpun privitak" #~ msgid "Article has complete or incomplete attachments" #~ msgstr "Poruka sadrži potpun ili nepotpun privitak" #~ msgid "Article is %d or more bytes long" #~ msgstr "Članak je dug %d ili više bajtova" #~ msgid "Article is crossposted to at least %d groups" #~ msgstr "Članak je poslan u barem %d grupa" #~ msgid "Article was posted in the last %d days" #~ msgstr "Članak je objavljen u zadnjih %d dana" #~ msgid "Article is %d or more lines long" #~ msgstr "Članak je dug%d ili više linija" #~ msgid "Article is unread or old" #~ msgstr "Članak nije pročitan ili je star" #~ msgid "Article is new" #~ msgstr "Članak je nov" #~ msgid "Article is new or read" #~ msgstr "Članak je nov ili pročitan" #~ msgid "Article is new or unread" #~ msgstr "Članak je nov ili nije pročitan" #~ msgid "Xref" #~ msgstr "Xref" #~ msgid "watched" #~ msgstr "nadgledano" #~ msgid "high" #~ msgstr "visok" #~ msgid "medium" #~ msgstr "srednje" #~ msgid "zero" #~ msgstr "nula" #~ msgid "low" #~ msgstr "nisko" #~ msgid "ignored" #~ msgstr "zanemareno" #~ msgid "Score filter will match anything" #~ msgstr "Filter rezultata će se podudarati sa bilo čim" #~ msgid "Score filter will match nothing" #~ msgstr "Filter rezultata neće se ni sa čim podudarati" #~ msgid "Article score one of: " #~ msgstr "Rezultat člaka je jedan od:" #~ msgid "Wrote filters to \"%s\"" #~ msgstr "Napiši filtre u \"%s\"" #~ msgid "Can't use regular expression \"%s\" from file \"%s\", line %d: %s" #~ msgstr "" #~ "Ne mogu koristiti regularni izraz \"%s\" iz datoteke \"%s\", red %d: %s" #~ msgid "expired old score" #~ msgstr "nevažeći stari bodovi" #~ msgid "skipping unsupported criteria" #~ msgstr "zanemarivanje nepodržanog uvjeta" #~ msgid "unexpected line." #~ msgstr "neočekivana linija." #~ msgid "Error reading file: " #~ msgstr "Greška prilikom čitanja datoteke:" #~ msgid "skipping score because it has no criteria" #~ msgstr "zanemarivanje bodovanja zbog nedefiniranog uvjeta" #~ msgid "" #~ "Loaded %d score entries in %d sections in %.1f seconds (%.0f entries/sec)" #~ msgstr "" #~ "Učitano %d unosa rezultata u %d sekcija u %.1f sekundi (%.0f unosa/sek)" #~ msgid "Error score to file \"%s\": %s" #~ msgstr "Greška pri bodovanju datoteke \"%s\": %s" #~ msgid "Scored %d entries in %.1f seconds (%.0f articles/sec)" #~ msgstr "Pogođeno %d unosa u %.1f sekundi (%.0f članaka/s)" #~ msgid "Error removing scorefile entry: %s" #~ msgstr "Greška kod uklanjanja unosa u datoteci sa rezultatima: %s" #~ msgid "Scorefile entry removed -- old scorefile \"%s\" backed up as \"%s\"" #~ msgstr "" #~ "Stavka pravila za bodovanje je uklonjena; stvorena je rezervna kopija " #~ "starih pravila za bodovanje \"%s\" kao \"%s\"" #~ msgid "Folder \"%*.*s\" already exists." #~ msgstr "Mapa \"%*.*s\" već postoji." #~ msgid "Please don't begin folders with \"pan.\"; it confuses me." #~ msgstr "Molim vas da ne započinjete mape sa \"pan.\"; to me zbunjuje." #~ msgid "Create New Folder" #~ msgstr "Napravi novi direktorij" #~ msgid "New Folder Name:" #~ msgstr "Novo ime mape:" #~ msgid "/Get New Headers and _Bodies" #~ msgstr "/Uzmi nova zaglavlja i _tijela" #~ msgid "/More Download _Options..." #~ msgstr "/Više opcija za preuzimanje" #~ msgid "/Refresh Article _Counts" #~ msgstr "/Osvježi Brojač članaka" #~ msgid "/Group _Properties..." #~ msgstr "/Postavke _Grupe" #~ msgid " (Moderated)" #~ msgstr "(Moderirano)" #~ msgid " (Read-Only)" #~ msgstr " (Samo za čitanje)" #~ msgid "Subscribed" #~ msgstr "U pretplati" #~ msgid "All Groups" #~ msgstr "Sve Grupe" #~ msgid "" #~ "We don't have a list of groups for \"%*.*s\".\n" #~ "Shall we download one?" #~ msgstr "" #~ "Nemamo popis grupa za \"%*.*s\".\n" #~ "Želite li da jednu skinemo?" #~ msgid "Total" #~ msgstr "Ukupno" #~ msgid "Description" #~ msgstr "Opis" #~ msgid "F_ind:" #~ msgstr "_Nađi:" #~ msgid "" #~ "Type in a group search string and press ENTER. Wildcards are allowed." #~ msgstr "" #~ "Unesite uvjet u polje za pretragu grupe i pritisnite ENTER.\n" #~ "Dozvoljena je upotreba zamjenskih znakova." #~ msgid "" #~ msgstr "" #~ msgid "X-Newsreader" #~ msgstr "X-Newsreader" #~ msgid "X-Mailer" #~ msgstr "X-Mailer" #~ msgid "User-Agent" #~ msgstr "korisnički program" #~ msgid "News server connection count: %d" #~ msgstr "Broj veza interesnih grupa : %d" #~ msgid "The Task Manager is Empty" #~ msgstr "Upravitelj Zadacima je Prazan" #~ msgid "Connection" #~ msgstr "Veza" #~ msgid "Post" #~ msgstr "Oglasi" #~ msgid "Get" #~ msgstr "&Uzmi" #~ msgid "Mine" #~ msgstr "Mina" #~ msgid "Net" #~ msgstr "Mreža" #~ msgid "/_File/Save A_ttachments" #~ msgstr "/_Datoteka/Spremi Privitak" #~ msgid "/_File/_Save Attachments As..." #~ msgstr "/_Datoteka/_Spremi privitak kao..." #~ msgid "/_File/_Manual Decode..." #~ msgstr "/_Datoteka/_ručno dekodiranje..." #~ msgid "/_File/---" #~ msgstr "/_Datoteka/---" #~ msgid "/_File/_Cancel Last Task" #~ msgstr "/_Datoteka/_Otkaži zadnju dužnost" #~ msgid "/_File/_New Folder..." #~ msgstr "/_Datoteka/_Nova mapa" #~ msgid "/_File/Delete _Folder..." #~ msgstr "/_Datoteka/Obriši _Mapu" #~ msgid "/_File/_Edit Article in Folder" #~ msgstr "/_Datoteka/_Uredi Članak u mapi" #~ msgid "/_File/E_xit" #~ msgstr "/_Datoteka/Izlaz" #~ msgid "/_Edit/Select all" #~ msgstr "/_Uređivanje/Odaberi sve" #~ msgid "/_Edit/Deselect all" #~ msgstr "/_Uređivanje/Ukini odabir" #~ msgid "/_Edit/---" #~ msgstr "_/Uredi/--" #~ msgid "/_Edit/Select all _Groups" #~ msgstr "/_Uređivanje/Odaberi sve _grupe" #~ msgid "/_Edit/Add S_ubscribed to Selection" #~ msgstr "/_Uređivanje/Dodaj pra_ćenu grupu u odabir" #~ msgid "/_Edit/Deselect all G_roups" #~ msgstr "/_Uređivanje/Ukini odabir svih g_rupa" #~ msgid "/_Edit/Add S_et to Selection" #~ msgstr "/_Uređivanje/Dodaj _postavku za označeno" #~ msgid "/_Edit/_Find..." #~ msgstr "/_Uređivanje/Pr_onađi..." #~ msgid "/_Edit/Find _Next" #~ msgstr "/_Uređivanje/Pronađi s_ljedeće" #~ msgid "/_View/---" #~ msgstr "/Pogled/---" #~ msgid "/_View/Thr_ead Header Pane" #~ msgstr "/Pogled/Nit ploče zaglavlja" #~ msgid "/_View/_Rot13 Selected Text" #~ msgstr "/Pogled/_Rot13 Odabrani tekst" #~ msgid "/_View/E_xpand Selected Threads" #~ msgstr "/Pogled/Raširi Odabrane Niti" #~ msgid "/_View/C_ollapse Selected Threads" #~ msgstr "/Pogled/Skupi _Odabrane Niti" #~ msgid "/Filte_r/---" #~ msgstr "/Fi_ltar/---" #~ msgid "/Filte_r/Match Only _Cached Articles" #~ msgstr "/Filta_r/Pokaži samo poruke u _međuspremniku" #~ msgid "/Filte_r/Match Only _Text Articles" #~ msgstr "/Filta_r/Pokaži samo _tekstualne poruke" #~ msgid "/Filte_r/Match Only _Binary Attachment Articles" #~ msgstr "/Filta_r/Pokaži samo poruke s _binarnim privitcima" #~ msgid "/Filte_r/Match Only _My Articles" #~ msgstr "/Filta_r/Pokaži samo _moje poruke" #~ msgid "/Filte_r/Match _New Articles" #~ msgstr "/Filta_r/Pokaži _nove poruke" #~ msgid "/Filte_r/Match _Unread Articles" #~ msgstr "/Filte_r/Usporedi _Nepročitane članke" #~ msgid "/_Go/Read More" #~ msgstr "/Idi/Pročitaj više" #~ msgid "/_Go/---" #~ msgstr "/_Idi/--" #~ msgid "/_Go/Next _New Article" #~ msgstr "/_Idi/Sljedeći _novi članak" #~ msgid "/_Go/Previous Article _Read" #~ msgstr "/_Idi/Čitaj prošli članak" #~ msgid "/_Servers" #~ msgstr "/Poslužitelji" #~ msgid "/_Servers/Get List of _All Groups" #~ msgstr "/Poslužitelji/Prib_avi Listu Svih Grupa" #~ msgid "/_Servers/Get List of _New Groups" #~ msgstr "/_Poslužitelj/Preuzmi popis _novih grupa na poslužitelju" #~ msgid "/_Servers/---" #~ msgstr "/Poslužitelji/---" #~ msgid "/_Newsgroups/Mark Group _Read" #~ msgstr "/_Grupa/Označi sve poruke u grupi kao _pročitane" #~ msgid "/_Newsgroups/_Delete Group's Articles" #~ msgstr "/_Grupa/_Ukloni poruke iz grupe" #~ msgid "/_Newsgroups/---" #~ msgstr "/Interestne grupe/---" #~ msgid "/_Newsgroups/Get New _Headers" #~ msgstr "/_Grupa/Preuzmi nova _zaglavlja poruka" #~ msgid "/_Newsgroups/Get New Headers and _Bodies" #~ msgstr "/Interesne grupe/Uzmi nova zaglavlja i tijela" #~ msgid "/_Newsgroups/More Download _Options..." #~ msgstr "/_Grupa/Više _opcija za preuzimanje..." #~ msgid "/_Newsgroups/Refresh Article _Counts" #~ msgstr "/_Grupa/Osvježi _broj poruka" #~ msgid "/_Newsgroups/Get New Headers in Subscribed _Groups" #~ msgstr "/_Grupa/Preuzmi nova zaglavlja poruka u praćenim _grupama" #~ msgid "/_Newsgroups/_Subscribe" #~ msgstr "/_Grupa/P_rijava na grupu" #~ msgid "/_Newsgroups/_Unsubscribe" #~ msgstr "/_Grupa/O_djava s grupe" #~ msgid "/_Newsgroups/Group _Properties..." #~ msgstr "/_Grupa/O_sobine grupe..." #~ msgid "/_Newsgroups/Dele_te Group" #~ msgstr "/Interesne grupe/Izbriši grupu" #~ msgid "/_Articles/Mark _Read" #~ msgstr "/_Članci/Označi pročitano" #~ msgid "/_Articles/Mark _Unread" #~ msgstr "/_Članci/označi pročitano" #~ msgid "/_Articles/---" #~ msgstr "/_Članci/--" #~ msgid "/_Articles/D_ownload Flagged" #~ msgstr "/_Članci/Skini označeno" #~ msgid "/_Articles/_Flag" #~ msgstr "/_Poruke/Postavi o_znaku" #~ msgid "/_Articles/U_nflag" #~ msgstr "/_Poruke/Ukloni ozna_ku" #~ msgid "/_Articles/Down_load" #~ msgstr "/_Članci/Preuzim_anje" #~ msgid "/_Articles/_Watch Thread" #~ msgstr "/_Poruke/Prati ni_t rasprave" #~ msgid "/_Articles/_Ignore Thread" #~ msgstr "/_Poruke/_Zanemari nit rasprave" #~ msgid "/_Articles/_View Article's Scores" #~ msgstr "/_Poruke/Pokaži _bodovanje poruke" #~ msgid "/_Articles/Cancel..." #~ msgstr "/_Članci/Odustani" #~ msgid "/_Articles/Supersed_e..." #~ msgstr "/_Poruke/Istisni..." #~ msgid "/_Articles/_Delete" #~ msgstr "/_Članci/_Obriši" #~ msgid "/_Post" #~ msgstr "/Slanj_e" #~ msgid "/_Post/_Post to Newsgroup..." #~ msgstr "/_Pošalji oglas/_Pošalji oglas na grupu novosti..." #~ msgid "/_Post/_Reply by Email..." #~ msgstr "/_Pošalji oglas/Odgovo_ri putem elektronske pošte..." #~ msgid "/_Post/For_ward by Email..." #~ msgstr "/_Pošalji oglas/Proslijedi putem elektronske pošte..." #~ msgid "/_Post/---" #~ msgstr "/_Pošalji oglas/---" #~ msgid "/_Post/Send Pending _Messages" #~ msgstr "/_Pošalji oglas/Pošalji poruke na čekanju" #~ msgid "/_Tools" #~ msgstr "Kutija s Alatima" #~ msgid "/_Tools/---" #~ msgstr "_/Alati/--" #~ msgid "/_Tools/Custom _Filters..." #~ msgstr "/_Alati/Prilagođeni _filtri..." #~ msgid "/_Tools/_Rules..." #~ msgstr "/_Alati/_Pravila..." #~ msgid "/_Tools/_Edit Scorefile..." #~ msgstr "/_Alati/_Uredi datoteku za bodovanje..." #~ msgid "/_Tools/_Log Viewer..." #~ msgstr "/_Alati/Dnevnik _rada..." #~ msgid "/_Help" #~ msgstr "/_Pomoć" #~ msgid "/_Help/---" #~ msgstr "/Pomoć/---" #~ msgid "The default charset set for articles posted with this profile" #~ msgstr "Predefinirani skup znakova za članke poslane s ovim oblikom." #~ msgid "Pan: Edit Profile" #~ msgstr "Pan: Uredi profil" #~ msgid "_User Profile" #~ msgstr "Postavke _korisnika" #~ msgid "Cus_tom Headers" #~ msgstr "Prilago_đena zaglavlja" #~ msgid "You must specify a username or disable authorization." #~ msgstr "Morate specificirati korisničko ime ili isključiti autorizaciju." #~ msgid "" #~ "Your real name contained double quotes.\n" #~ "Converting into single quotes." #~ msgstr "" #~ "Vaše stvarno ime sadržavalo je dvostruke navodnike.\n" #~ "Mijenjanje u jednostruke navodnike." #~ msgid "You need at least one profile" #~ msgstr "Trebate barem jedan profil" #~ msgid "Use the selected profile to create a new profile" #~ msgstr "Upotrijebi označeni profil za kreiranje novog profila" #~ msgid "Wrote profiles to \"%s\"" #~ msgstr "Napiši profile u \"%s\"" #~ msgid "/_File/_Save..." #~ msgstr "/_Datoteka/_Spremi..." #~ msgid "/_File/Clea_r" #~ msgstr "/_Datoteka/_Očisti" #~ msgid "/_File/_Close" #~ msgstr "/_Datoteka/_Zatvori" #~ msgid "Pan: Status Log" #~ msgstr "Pan: Log stanja" #~ msgid "Clear the log window" #~ msgstr "Briši log prozor" #~ msgid "Time" #~ msgstr "Vrijeme" #~ msgid "Log Entry" #~ msgstr "Stavka Loga" #~ msgid "Post anyway, despite these problems?" #~ msgstr "Poslati u svakom slučaju, uprkos ovim problemima?" #~ msgid "Post anyway, despite this problem?" #~ msgstr "Poslati u svakom slučaju, uprkos ovom problemu?" #~ msgid "/_File/_Save Changes" #~ msgstr "/_Datoteka/_Spremi promjene" #~ msgid "/_File/Save _As..." #~ msgstr "/_Datoteka/Spremi kao" #~ msgid "/_Edit/Cu_t" #~ msgstr "/_Uređivanje/_Izreži" #~ msgid "/_Edit/_Copy" #~ msgstr "/_Uredi/_Kopiraj" #~ msgid "/_Edit/_Paste" #~ msgstr "/_Uređivanje/U_metni" #~ msgid "/_Edit/_Rot13 Selected Text" #~ msgstr "/_Uređivanje/Primijeni RO_T13 na odabrani tekst" #~ msgid "/_Edit/Edit with E_xternal Editor" #~ msgstr "/_Uređivanje/Uredi u _vanjskom uređivaču teksta" #~ msgid "/_File/Send Now" #~ msgstr "/_Datoteka/ Pošalji sada" #~ msgid "/_File/Send Later" #~ msgstr "/_Datoteka/Pošalji kasnije" #~ msgid "Send Later" #~ msgstr "Pošalji kasnije" #~ msgid "Rewrap" #~ msgstr "Ponovno omotaj" #~ msgid "Turn line wrap on/off" #~ msgstr "Lomljenje linije uključeno/isključeno" #~ msgid "Edit with an External Editor" #~ msgstr "Uredi sa Vanjskim Uređivačem" #~ msgid "Mime (single-part posts only)" #~ msgstr "Mime (samo jednodijelne poruke)" #~ msgid " (%lu lines in 1 article)" #~ msgstr "(%lu linija u 1 članku)" #~ msgid "UUEncoded (universally accepted)" #~ msgstr "UUKodirano (univerzalno prihvaćeno)" #~ msgid "yEnc (30 percent smaller than UUEnc but less universal)" #~ msgstr "yEnc (30 posto manji privitak od UUEnc ali manje univerzalan)" #~ msgid "Select the file to attach." #~ msgstr "Odaberi datoteku za stavljanje u privitak" #~ msgid "Files to Attach" #~ msgstr "Datoteke za smještanje u privitak" #~ msgid "Kilobytes" #~ msgstr "Kilobajta" #~ msgid "Add a File to the Attachment List" #~ msgstr "Dodaj datoteku u listu priloga" #~ msgid "Remove a File from the Attachment List" #~ msgstr "Izbaci Datoteku iz Liste Privitaka" #~ msgid "Estimated Article Size" #~ msgstr "Procijenjena veličina članka" #~ msgid "Organization" #~ msgstr "Organizacija" #~ msgid "The organization you're associated with." #~ msgstr "Organizacija s kojom ste povezani." #~ msgid "Charset" #~ msgstr "Skup znakova" #~ msgid "" #~ "Could not convert \"%s\" to UTF-8. Article may not display correctly." #~ msgstr "" #~ "Ne mogu konvertirati \"%s\" u UTF-8. Članak možda neće biti ispravno " #~ "prikazan. " #~ msgid "\"Followup-To: poster\": sending email to author." #~ msgstr "\" Proslijeđujem: pošiljatelju\": šaljem elektroničku poštu autoru." #~ msgid "\"Followup-To:\" contains an email address: sending email to author." #~ msgstr "" #~ "\" Proslijedi:\" sadrži adresu elektroničke pošte: šaljem elektroničku " #~ "poštu autoru." #~ msgid "New Message" #~ msgstr "Nova poruka" #~ msgid "" #~ "ERROR: line %d, column %d uses a character not specified in charset \"%s" #~ "\" -- possibly change your charset in \"More Headers\" to \"%s\" instead?" #~ msgstr "" #~ "GREŠKA: linija %d, stupaca %d sadrži znak koji nije naveden u skupu " #~ "znakova \"%s\". Želite li promijeniti znakovni skup u \"Više zaglavlja\" " #~ "na \"%s\"?" #~ msgid "Save message to file" #~ msgstr "Spremiti poruku u datoteku" #~ msgid "The command line was: %s" #~ msgstr "Komandna linija je bila: %s" #~ msgid "NNTP handshake failed: %s" #~ msgstr "NNTP neuspjelo rukovanje: %s" #~ msgid "Handshake failed: %s" #~ msgstr "Neuspjelo rukovanje: %s" #~ msgid "Handshake: %s" #~ msgstr "Rukovanje: %s" #~ msgid "Authentication failed: bad handshake for SPA password" #~ msgstr "Neuspjela provjera autentičnosti: loše rukovanje zbog SPA lozinke" #~ msgid "Bad SPA handshake: %s" #~ msgstr "Neispravno SPA rukovanje: %s" #~ msgid "Authentication failed: need a password" #~ msgstr "Neuspjela provjera autentičnost: potrebna je lozinka" #~ msgid "Authentication failed: %s" #~ msgstr "Neuspješna provjera autentičnosti: %s" #~ msgid "%*.*s handshake failed: %s" #~ msgstr "%*.*s rukovanje nije uspjelo: %s" #~ msgid "No supported authentication mechanism" #~ msgstr "Nije podržan mehanizam provjere vjerodostojnosti" #~ msgid "No password found!" #~ msgstr "Nije pronađena niti jedna zaporka!" #~ msgid "MODE READER check failed: %s" #~ msgstr "Nisam uspio provjeriti MODE READER: %s" #~ msgid "Posting failed. Server said: %s" #~ msgstr "Slanje nije uspjelo. Poslužitelj je prijavio: %s" #~ msgid "Posting complete. Server said: %s" #~ msgstr "Slanje završeno. Poslužitelj je prijavio: %s" #~ msgid "\"stay connected\" sent to %*.*s" #~ msgstr "\" ostani povezan\" poslano %*.*s" #~ msgid "Getting header list failed: %s" #~ msgstr "Dohvaćanje liste zaglavlja nije uspjelo: %s" #~ msgid "Corrupt header skipped: %s" #~ msgstr "Neispravno zaglavlje preskočeno: %s " #~ msgid "Getting %d of %d" #~ msgstr "Dohvaćam %d od %d" #~ msgid "Select Color" #~ msgstr "Odaberi Boju" #~ msgid "_Browse..." #~ msgstr "_Pretraži..." #~ msgid "Font Family" #~ msgstr "Obitelj pisma" #~ msgid " --version Prints Pan's version number" #~ msgstr " --version Ispisuje inačicu Pan-a" #~ msgid " --help Prints this message and exits" #~ msgstr " --help Ispiši ovu poruku i izađi" #~ msgid "" #~ " --debug Turns on the most commonly-used options for a bug " #~ "report" #~ msgstr "" #~ "--debug Uključi većinu opće upotrebljavnih opcija za opis o greškama" #~ msgid "" #~ " --mute Debugging tool to send new posts to console, not the " #~ "server" #~ msgstr "" #~ " --mute Debuging alat za slanje postova u konzolu umjesto na " #~ "poslužitelj" #~ msgid " --debug-cache Print debugging messages for the article cache" #~ msgstr "" #~ " --debug-decode Ispiši debugging poruke vezane vezane uz article cache" #~ msgid "" #~ " --debug-sockets Print debugging messages when talking to the news " #~ "server" #~ msgstr "" #~ " --debug-sockets Ispiši debugging poruke nastale kod komuniciranja sa " #~ "news poslužiteljem" #~ msgid "" #~ " --debug-queue Print debugging messages related to managing tasks" #~ msgstr "" #~ " --debug-queue Ispiši debugging poruke vezane uz upravljanje zadacima" #~ msgid "" #~ " --debug-decode Print debugging messages related to decoding " #~ "attachments" #~ msgstr "" #~ " --debug-decode Ispiši debugging poruke vezane uz dekodiranje priloga" #~ msgid " --debug-newsrc Print debugging messages related to .newsrc files" #~ msgstr "" #~ " --debug-newsrc Ispiši debugging poruke vezane uz .newsrc datoteke" #~ msgid "" #~ " --debug-gnksa Print debugging messages related to gnksa correctness" #~ msgstr " --debug-gnksa Ispiši debugging poruke vezane uz gnksa točnost" #~ msgid "" #~ " --debug-trace Print debugging messages when entering/leaving " #~ "functions" #~ msgstr "" #~ " --debug-trace Ispiši debugging poruke kod ulaska/izlaska u/iz " #~ "funkcija" #~ msgid "" #~ " --debug-lock Print debugging messages related to threaded gui locks" #~ msgstr "" #~ " --debug-lock Ispisuje poruke o greškama u vezi s zaključavanjima " #~ "sučelja" #~ msgid "" #~ " --debug-object Print debugging messages related to refcounted objects" #~ msgstr "" #~ " --debug-object Ispisuje poruke o greškama u vezi sa prebrojavanjem " #~ "objekta" #~ msgid "Error writing to socket." #~ msgstr "Greška prilikom pisanja na socket." #~ msgid "pan.sent" #~ msgstr "pan.sent" #~ msgid "pan.sendlater" #~ msgstr "pan.sendlater" #~ msgid "Spellchecking disabled: gtkspell_init() failed with status %d" #~ msgstr "" #~ "Provjera pravopisa je isključena. Pokretanje gtkspell_init() nije " #~ "uspjelo , uz status: %d" #~ msgid "Restored %d tasks from last session" #~ msgstr "Vraćeno %d zadataka iz prethodne sesije" #~ msgid "" #~ "Some tasks were still queued the last time Pan exited. Do you want to " #~ "resume those tasks?" #~ msgstr "" #~ "Neki zadaci su u nizu čekanja još od zadnjeg puta kada je Pan ugašen. " #~ "Preuzeti te zadatke?" #~ msgid "_Resume" #~ msgstr "_Nastavi" #~ msgid "" #~ "%a - abbreviated weekday name\n" #~ "%A - full weekday name\n" #~ "%b - abbreviated month name\n" #~ "%B - full month name\n" #~ "%c - local date & time\n" #~ "%d - day of the month\n" #~ "%H - hour (24-hour clock)\n" #~ "%I - hour (12-hour clock)\n" #~ "%j - day of the year (001-366)\n" #~ "%m - month (01-12)\n" #~ "%M - minute (00-59)\n" #~ "%p - local equivalent of AM/PM\n" #~ "%S - second (00-61)\n" #~ "%x - local date\n" #~ "%X - local time\n" #~ "%y - two-digit year\n" #~ "%Y - four-digit year\n" #~ "%% - %" #~ msgstr "" #~ "%a - skraćeno ime dana u tjednu\n" #~ "%A - puno ime dana u tjednu\n" #~ "%b - skraćeno ime mjeseca\n" #~ "%B - puno ime mjeseca\n" #~ "%c - lokalni datum & vrijeme\n" #~ "%d - dan u mjesecu\n" #~ "%H - sat (24-satni sistem)\n" #~ "%I - sat (12-satni sistem)\n" #~ "%j - dan u godini (001-366)\n" #~ "%m - mjesec (01-12)\n" #~ "%M - minuta (00-59)\n" #~ "%p - lokalni ekvivalent za AM/PM\n" #~ "%S - sekunda (00-61)\n" #~ "%x - lokalni datum\n" #~ "%X - lokalno vrijeme\n" #~ "%y - godina dvije-znamenke\n" #~ "%Y - godina četiri-znamenke\n" #~ "%% - %" #~ msgid "Color the \"sub_ject\" column" #~ msgstr "Oboji \"sub_ject\" kolonu" #~ msgid "Articles with a Score of 9999 or higher:" #~ msgstr "Članci sa rezultatom 9999 ili većim:" #~ msgid "Articles with a Score between 5000 and 9998:" #~ msgstr "Članci sa rezultatom između 5000 i 9998:" #~ msgid "Articles with a Score between 1 and 4999:" #~ msgstr "Članci sa rezultatom između 1 i 4999:" #~ msgid "Articles with a Score between -9998 and -1:" #~ msgstr "Članci sa rezultatom između -9998 i -1:" #~ msgid "Articles with a Score of -9999 or lower:" #~ msgstr "Članci sa rezultatom -9998 ili manjim:" #~ msgid "_1:" #~ msgstr "razina _1:" #~ msgid "_2:" #~ msgstr "razina _2:" #~ msgid "_3:" #~ msgstr "_3:" #~ msgid "Pane Order" #~ msgstr "Poredak okvira" #~ msgid "Action State" #~ msgstr "Stanje aktivnosti" #~ msgid "Article State" #~ msgstr "Stanje članka" #~ msgid "Column Layout" #~ msgstr "Izgled kolone" #~ msgid "When a Followup subject header changes, show as _new thread" #~ msgstr "Napravi _novu nit rasprave kada se promijeni naziv praćene teme" #~ msgid "E_xpand all threads by default" #~ msgstr "Uobičajeno se razgranavaju niti svih rasprava" #~ msgid "Show complete _multipart posts as a single article" #~ msgstr "Pokaži _višedijelne poruke kao jedan članak" #~ msgid "Date Forma_t:" #~ msgstr "Forma_t datuma:" #~ msgid "Show \"%s\" header" #~ msgstr "Prikaži \"%s\" zaglavlje" #~ msgid "Newsreader" #~ msgstr "Program za čitanje novosti" #~ msgid "Characters denoting _quoted text:" #~ msgstr "Znakovi koji označavaju citirani tekst" #~ msgid "Download new headers from s_ubscribed groups when starting Pan" #~ msgstr "Preuzmi nova zaglavlja iz pra_ćenih grupa pri pokretanju Pana" #~ msgid "" #~ "Download new headers and bod_ies from subscribed groups when starting Pan" #~ msgstr "" #~ "Preuzmi nova zaglavlja i _tijela poruka iz praćenih grupa pri pokretanju " #~ "Pana" #~ msgid "Download Directory" #~ msgstr "Direktorij za preuzimanje" #~ msgid "Automatically remove _failed tasks from the task manager" #~ msgstr "Automatski ukloni neuspjele zadatke iz upravitelja zadataka" #~ msgid "_Erase cache when exiting Pan" #~ msgstr "Isprazni _međuspremnik pri napuštanju Pana" #~ msgid "Ma_ximum Cache Size (Megs):" #~ msgstr "Maksimalna veličina priručne memorije (megabajta):" #~ msgid "_Web Browser (%s is URL):" #~ msgstr "_Web preglednik (%s za URL):" #~ msgid "_Editor (%t is filename):" #~ msgstr "_Uređivač (%t je naziv datoteke):" #~ msgid "" #~ "Scorefile _Editor:\n" #~ "(%t is filename, %n is line number)" #~ msgstr "" #~ "Uređivač pravila za _bodovanje:\n" #~ "(%t za naziv datoteke, %n za broj linije)" #~ msgid "Scorefile" #~ msgstr "Datoteka s pravilima za bodovanje" #~ msgid "Score_file" #~ msgstr "_Datoteka s pravilima za bodovanje" #~ msgid "Sending Mail" #~ msgstr "Slanje pošte" #~ msgid "Mail Server Add_ress:" #~ msgstr "Adresa Poslužitelja Elektroničke Pošte:" #~ msgid "Mail Server Por_t:" #~ msgstr "_Port poslužitelja za slanje e-pošte:" #~ msgid "Hea_der Pane" #~ msgstr "Okvir zaglavlja" #~ msgid "A_pps & Mail" #~ msgstr "Programi i pošta" #~ msgid "You haven't loaded an article to print." #~ msgstr "Članak namijenjen ispisu nije učitan." #~ msgid "" #~ "%s\n" #~ "\n" #~ "Matches: %u\n" #~ "Group: %s\n" #~ "Rule: %s" #~ msgstr "" #~ "%s\n" #~ "\n" #~ "Podudaranje: %u\n" #~ "Grupa: %s\n" #~ "Pravilo: %s" #~ msgid "Mark as" #~ msgstr "Označen kao" #~ msgid "_Flag body for download" #~ msgstr "O_bilježi tijelo poruke za preuzimanje" #~ msgid "_Retrieve Body" #~ msgstr "_Preuzimanje tijela poruka" #~ msgid "_Watch thread (highlights the thread)" #~ msgstr "Obilježi raspravu _za praćenje (naglašava nit rasprave)" #~ msgid "_Ignore thread (hides the thread by default)" #~ msgstr "_Ignoriraj raspravu (uobičajeno sakriva raspravu)" #~ msgid "Rule applies to all newsgroups" #~ msgstr "Pravilo važi za sve grupe" #~ msgid "Wildcard group specification:" #~ msgstr "Specifikacija grupe zamjenskih znakova:" #~ msgid "(e.g., *anime*)" #~ msgstr "(npr., *anime*)" #~ msgid "Rule applies to specific newsgroups:" #~ msgstr "Pravilo važi za određenu grupu:" #~ msgid "Rule applies to:" #~ msgstr "Pravilo važi za:" #~ msgid "Rule Name:" #~ msgstr "Ime pravila:" #~ msgid "Apply to Incoming" #~ msgstr "Primjeni na Dolazeće" #~ msgid "" #~ "If enabled, this rule will be applied to headers when they are downloaded." #~ msgstr "" #~ "Ako je omogućeno,ovo pravilo će se koristiti kod zaglavlja kada su " #~ "skinuta." #~ msgid "New Rule" #~ msgstr "Novo pravilo" #~ msgid "Delete Articles by Bozos" #~ msgstr "Ukloni poruke budala" #~ msgid "Applying rule to selected groups" #~ msgstr "Primijenjujem pravilo na odabrane grupe" #~ msgid "Applying rule \"%s\" to group \"%s\"" #~ msgstr "Primjenjujem pravilo \"%s\" na grupu \"%s\"" #~ msgid "Rules" #~ msgstr "Pravila" #~ msgid "Hit Ratio" #~ msgstr "Omjer pogođenog" #~ msgid "" #~ "Apply to\n" #~ "Selected\n" #~ "Groups" #~ msgstr "" #~ "Primjeni na\n" #~ "Odabrane\n" #~ "Grupe" #~ msgid "" #~ "Apply to\n" #~ "Subscribed\n" #~ "Groups" #~ msgstr "" #~ "Primijeni na\n" #~ "Prijavljene\n" #~ "Grupe" #~ msgid "Wrote rules to \"%s\"" #~ msgstr "Pravila snimljena u \"%s\"" #~ msgid "" #~ "Can't find filter \"%s\" needed by rule \"%s\", so no articles match." #~ msgstr "Ne mogu pronaći filter \"%s\" kojeg treba pravilo \"%s\", ." #~ msgid "%u articles match rule %s" #~ msgstr "%u članaka zadovoljava pravilo %s" #~ msgid "Pan: Manual Decode" #~ msgstr "Pan: Ručno dešifriranje" #~ msgid "Save Files in Directory" #~ msgstr "Spremi datoteke u mapu" #~ msgid "_Directory:" #~ msgstr "_Imenik:" #~ msgid "Add to the _top of the Task Manager's List" #~ msgstr "Dodaj na vrh liste upravitelja zadacima" #~ msgid "Criterion \"%s\" is selected, but empty." #~ msgstr "Odabran je kriterij \"%s\", ali je prazan." #~ msgid "No criteria are selected." #~ msgstr "Nema odabranih kriterija." #~ msgid "Pan: Add to Scorefile" #~ msgstr "Pan: Dodaj u rezultate" #~ msgid "Su_bject:" #~ msgstr "_Tema:" #~ msgid "A_uthor:" #~ msgstr "_Autor:" #~ msgid "_Lines:" #~ msgstr "_Redaka:" #~ msgid "at least N lines long" #~ msgstr "dužine najmanje N redaka" #~ msgid "less than N lines long" #~ msgstr "dužine preko N linija" #~ msgid "Chan_ge Score:" #~ msgstr "Promijeni rezultat:" #~ msgid "subtract" #~ msgstr "oduzmi" #~ msgid "Expire in N _days:" #~ msgstr "Ističe za N _dana:" #~ msgid "Edit the selected score" #~ msgstr "Uredi odabrani rezultat" #~ msgid "You must specify an address." #~ msgstr "Morate specificirati adresu." #~ msgid "You must specify a password or disable authorization." #~ msgstr "Morate specificirati lozinku ili isključiti autorizaciju." #~ msgid "You must specify a .newsrc filename or disable newsrc support." #~ msgstr "" #~ "Mora se navesti ime .newsrc datoteke ili onemogućiti podrška za newsrc/" #~ msgid "Newsrc" #~ msgstr "Newsrc" #~ msgid "Us_e .newsrc file" #~ msgstr "Upotrijebi newsrc datoteku" #~ msgid "Select .newsrc File" #~ msgstr "Odaberi .newsrc datoteku" #~ msgid "_Filename:" #~ msgstr "_Ime datoteke:" #~ msgid "Edit the selected server" #~ msgstr "Uredi odabranog poslužitelja" #~ msgid "Remove the selected server" #~ msgstr "Ukloni odabranog poslužitelja " #~ msgid "Got unexpected response from mail server: expected %d; got %s" #~ msgstr "" #~ "Dobiven je neočekivan odgovor sa poslužitelja pošte: očekivano %d; " #~ "dobiveno %s" #~ msgid "Sending mail" #~ msgstr "Slanje pošte" #~ msgid "No known recipients" #~ msgstr "Nema poznatih primatelja" #~ msgid "Mail sent!" #~ msgstr "Pošta poslana!" #~ msgid "Handshaking with mail server" #~ msgstr "Rukovanje sa poslužiteljem pošte" #~ msgid "Connecting to mail server" #~ msgstr "Spajam se na poslužitelj elektroničke pošte " #~ msgid "Mail server not ready" #~ msgstr "Poslužitelj pošte nije spreman" #~ msgid "Sending Keepalive" #~ msgstr "Slanje keepalivea" #~ msgid "Disconnecting Idle" #~ msgstr "Prekidanje veze zbog neaktivnosti" #~ msgid "Disconnecting one connection from `%s' after %d seconds idle" #~ msgstr "Prekidanje veze s \"%s\" nakon %d sekundi neaktivnosti" #~ msgid "Connection to %*.*s, port %d failed: %s" #~ msgstr "Spajanje na %*.*s, port %d nije uspjelo: %s " #~ msgid "Downloading %d" #~ msgstr "Preuzimam %d" #~ msgid "\"%s\"" #~ msgstr "\"%s\"" #~ msgid "Downloading %u articles" #~ msgstr "Preuzimam %u poruka" #~ msgid "Article %s (%s) canceled" #~ msgstr "Članak %s (%s) je opozvan" #~ msgid "Updating article counts for %u groups from server \"%s\"" #~ msgstr "Ažuriranje broja članaka za %u grupa sa poslužitelja \"%s\"" #~ msgid "Updated counts for %u groups out of %u" #~ msgstr "Ažurirani računi za %u grupa iz %u" #~ msgid "Unable to update counts for group \"%s\"" #~ msgstr "Ne mogu ažurirati brojač grupe \"%s\"" #~ msgid "Getting all groups from server \"%s\"" #~ msgstr "Dohvaćam sve grupe sa servera \"%s\"" #~ msgid "Adding groups to server \"%s\"" #~ msgstr "Dodajem grupe poslužitelju \"%s\"" #~ msgid "List Newsgroups failed: %s" #~ msgstr "Neuspjeli ispis grupe vijesti: %s" #~ msgid "Got %d descriptions from server \"%s\"" #~ msgstr "Dohvaćeno %d opisa sa poslužitelja \"%s\"" #~ msgid "New groups retrieval failed: %s" #~ msgstr "Novo traženje grupe neuspjelo: %s" #~ msgid "No new articles in group \"%s\"" #~ msgstr "Nema novih članaka u grupi \"%s\"i " #~ msgid "New %lu of %lu" #~ msgstr "Novi %lu od %lu" #~ msgid "Sampling %lu of %lu" #~ msgstr "Uzimanje uzoraka %lu od %lu" #~ msgid "All %lu of %lu" #~ msgstr "Svil %lu od %lu" #~ msgid "Not Queued" #~ msgstr "Nije u redu čekanja" #~ msgid "Stopping" #~ msgstr "Zaustavljanje" #~ msgid "Pan %s Task Manager" #~ msgstr "Pan %s Upravitelj Zadacima" #~ msgid "Move Selected Task(s) Up" #~ msgstr "Pomakni označene zadatke gore" #~ msgid "Move Selected Task(s) to Top" #~ msgstr "Pomakni označene zadatke na vrh" #~ msgid "Move Selected Task(s) Down" #~ msgstr "Pomakni označene zadatke dolje" #~ msgid "Stop Selected Task(s)" #~ msgstr "Zaustavi Odabrane Zadatke" #~ msgid "Delete Selected Task(s)" #~ msgstr "Ukloni odabrane zadatke" #~ msgid "Time Remaining" #~ msgstr "Vrijeme Preostalo" #~ msgid "[This is an email copy of a Usenet post to \"%s\"]" #~ msgstr "[Ovo e-pismo je kopija poruke interesne grupe za \"%s\"]" #~ msgid "Email \"%s\" sent." #~ msgstr "Elektronska pošta \"%s\" je poslana." #~ msgid "Email \"%s\" not sent." #~ msgstr "Elektronska pošta \"%s\" nije poslana." #~ msgid "Article \"%s\" posted." #~ msgstr "Članak \"%s\" je poslan." #~ msgid "Article \"%s\" not posted." #~ msgstr "Članak \"%s\" nije poslan." #~ msgid "Posting and mailing article \"%s\"" #~ msgstr "Objavljivanje i slanje članaka \"%s\"" #~ msgid "Mailing article \"%s\"" #~ msgstr "Šaljem članak \"%s\"" #~ msgid "Email send failed. " #~ msgstr "Slanje elektronske pošte nije uspjelo." #~ msgid "Usenet posting failed. " #~ msgstr "Slanje usenet nije uspjelo" #~ msgid "Check Tools|Log Viewer for more information. " #~ msgstr "Provjeri preglednik Alata/logova za više informacija." #~ msgid "Your message was saved in the folder \"pan.sendlater\"" #~ msgstr "Vaša poruka je spremljena u mapu \"pan.sendlater\"" #~ msgid "Saving `%s'" #~ msgstr "Spremanje `%s'" #~ msgid "Saving Attachments" #~ msgstr "Spremanje privitaka" #~ msgid "Save Article can't access path \"%s\"" #~ msgstr "Dok spremam članak ne mogu pristupiti putanji \"%s\"" #~ msgid "Saved article body to \"%s\"" #~ msgstr "Spremljeno tijelo (body) članka u \"%s\"" #~ msgid "" #~ "Pan %s\n" #~ "Copyright (c) %d by Charles Kerr\n" #~ "\n" #~ "If you find a bug, please report it.\n" #~ "\n" #~ msgstr "" #~ "Pan %s\n" #~ "Copyright (c) %d by Charles Kerr\n" #~ "\n" #~ "ukoliko pronađete neku grešku (bug), molimo da prijavite istu.\n" #~ "\n" #~ msgid "" #~ "http://pan.rebelbase.com/ - Pan Homepage\n" #~ "http://pan.rebelbase.com/bugs/ - Report a Bug\n" #~ "http://pan.rebelbase.com/download/ - Upgrade\n" #~ "\n" #~ msgstr "" #~ "http://pan.rebelbase.com/ - Pan internet stranica\n" #~ "http://pan.rebelbase.com/bugs/ - Prijava grešaka\n" #~ "http://pan.rebelbase.com/download/ - Nadogradnja\n" #~ "\n" #~ msgid "" #~ "This program is free software; you can redistribute it\n" #~ "and/or modify it under the terms of the GNU General Public\n" #~ "License as published by the Free Software Foundation;\n" #~ "version 2 of the License.\n" #~ "\n" #~ "This program is distributed in the hope that it will be\n" #~ "useful, but WITHOUT ANY WARRANTY; without even the implied\n" #~ "warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\n" #~ "PURPOSE. See the GNU General Public License for more\n" #~ "details.\n" #~ "\n" #~ "The GNU Public License can be found from the menu above\n" #~ "in Help|About|License." #~ msgstr "" #~ "Ovaj program je slobodan softver; možete ga redistribuirati\n" #~ "i/ili ga možete mijenjati pod uvjetima GNU General Public\n" #~ "Dozvole koju je objavila Free Software Foundation;\n" #~ "inačica 2 Dozvole .\n" #~ "\n" #~ "Ovaj program je distribuiran u nadi da će biti\n" #~ "koristan, ali BEZ IKAKVE GARANCIJE; bez podrazumijevanja\n" #~ "garancije TRGOVINE ili PODOBNOSTI ZA ODREĐENU\n" #~ "SVRHU. Pogledajte GNU General Public Dozvolu za više\n" #~ "detalja.\n" #~ "\n" #~ "GNU Public Dozvola može se naći iz gornjeg izbornika\n" #~ "u Pomoć|O|Dozvola." #~ msgid "Error starting external browser: %s" #~ msgstr "Greška prilikom pokretanja vanjskog pretraživača: %s" #~ msgid "Error starting external scorefile editor: %s" #~ msgstr "Greška prilikom pokretanja vanjskog uređivača rezultata: %s" pan-0.162/po/hu.po000066400000000000000000003056031475412772400137160ustar00rootroot00000000000000# Hungarian translation for pan. # Copyright (C) 2001, 2014, 2016, 2017, 2018, 2021, 2022, 2023, 2024 Free Software Foundation, Inc. # This file is distributed under the same license as the pan package. # # András Tímár , 2001. # Balázs Úr , 2014, 2016, 2017, 2018, 2021, 2022, 2023, 2024. # Balázs Meskó , 2016. msgid "" msgstr "" "Project-Id-Version: pan master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/pan/issues/\n" "POT-Creation-Date: 2024-05-08 17:14+0000\n" "PO-Revision-Date: 2024-05-19 12:09+0200\n" "Last-Translator: Balázs Úr \n" "Language-Team: Hungarian \n" "Language: hu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Lokalize 23.08.4\n" #. update the titlebar #: org.gnome.pan.desktop.in:3 org.gnome.pan.metainfo.xml.in:27 #: pan/gui/dl-headers-ui.cc:119 pan/gui/gui.cc:1040 pan/gui/gui.cc:1665 #: pan/gui/gui.cc:1985 pan/gui/score-add-ui.cc:600 msgid "Pan" msgstr "Pan" #: org.gnome.pan.desktop.in:4 msgid "Newsreader" msgstr "Hírolvasó" #: org.gnome.pan.desktop.in:5 org.gnome.pan.metainfo.xml.in:7 msgid "Read and post Usenet articles" msgstr "Usenet cikkek olvasása és közzététele" #. Translators: Search terms to find this application. Do NOT translate or localise the semicolons! The list MUST also end with a semicolon! #: org.gnome.pan.desktop.in:7 msgid "usenet;news;newsreader;newsgroup;article;yenc;nzb;" msgstr "usenet;hírek;hírolvasó;hírcsoport;cikk;yenc;nzb;" #: org.gnome.pan.metainfo.xml.in:6 msgid "Pan Newsreader" msgstr "Pan hírolvasó" #: org.gnome.pan.metainfo.xml.in:9 msgid "" "Pan is a Usenet newsreader that is good at both text and binaries. It " "supports offline reading, scoring and killfiles, yEnc, NZB, PGP handling, " "multiple servers, and secure connections." msgstr "" "A Pan egy Usenet hírolvasó, amely jó mind szöveges, mind bináris adatok " "esetén. Támogatja a kapcsolat nélküli olvasást, értékelést és a " "killfájlokat, kezeli az yEnc-t, NZB-t és a PGP-t, több kiszolgálót támogat " "és támogatja a biztonságos kapcsolatokat is." #: org.gnome.pan.metainfo.xml.in:12 msgid "" "It is also the only Unix newsreader to get a perfect score on the Good Net-" "Keeping Seal of Approval evaluations." msgstr "" "Ez az egyetlen Unix hírolvasó, amely tökéletes pontszámot kapott a Good Net-" "Keeping Seal of Approval értékeléseken." #: pan/data/article-cache.cc:144 pan/data/encode-cache.cc:62 #, c-format msgid "Error opening directory: \"%s\": %s" msgstr "Hiba a(z) „%s” könyvtár megnyitásakor: %s" #: pan/data/article-cache.cc:235 pan/data/article-cache.cc:244 #: pan/data-impl/data-io.cc:278 pan/data-impl/data-io.cc:310 #: pan/gui/post-ui.cc:1767 #, c-format msgid "Unable to save \"%s\" %s" msgstr "Nem sikerült a(z) „%s” mentése: %s" #: pan/data/article-cache.cc:362 #, c-format msgid "Error opening file \"%s\" %s" msgstr "Hiba a(z) „%s” fájl megnyitásakor: %s" #: pan/data/article-cache.cc:393 pan/data-impl/profiles.cc:175 #: pan/data-impl/server.cc:495 pan/general/file-util.cc:311 #: pan/gui/post-ui.cc:636 pan/gui/task-pane.cc:740 #, c-format msgid "Error reading file \"%s\": %s" msgstr "Hiba a(z) „%s” fájl olvasásakor: %s" #: pan/data/cert-store.cc:261 #, c-format msgid "Error opening SSL certificate directory: \"%s\": %s" msgstr "Hiba a(z) „%s” SSL tanúsítvány könyvtár megnyitásakor: %s" #: pan/data/cert-store.cc:292 #, c-format msgid "Successfully added %d SSL PEM certificate(s) to Certificate Store." msgstr "%d SSL PEM tanúsítvány sikeresen hozzáadva a tanúsítványtárolóhoz." #: pan/data/cert-store.cc:312 msgid "" "Error initializing Certificate Store. Check that the permissions for the " "folders ~/.pan2 and ~/.pan2/ssl_certs are set correctly. Fatal, exiting." msgstr "" "Hiba a tanúsítványtároló előkészítésekor. Ellenőrizze, hogy a ~/.pan2 és ~/." "pan2/ssl_certs mappák jogosultsága helyes-e. Végzetes, kilépés." #: pan/data/cert-store.cc:361 #, c-format msgid "Could not export certificate for server: %s" msgstr "Nem sikerült exportálni a tanúsítványt a kiszolgálóhoz: %s" #. load_group_descriptions (*_data_io); #: pan/data-impl/data-impl.cc:115 #, c-format msgid "Loaded data backend in %.1f seconds" msgstr "Adat háttérprogram betöltve %.1f másodperc alatt" #: pan/data-impl/data-impl.cc:151 msgid "Pan Newsreader's server passwords" msgstr "Pan hírolvasó kiszolgálójának jelszavai" #: pan/data-impl/groups.cc:102 #, c-format msgid "Skipping newsrc file for server \"%s\"" msgstr "A newsrc fájl kihagyása a(z) „%s” kiszolgálónál" #: pan/data-impl/headers.cc:618 #, c-format msgid "Expired %lu old articles from \"%s\"" msgstr "%lu régi cikk lejárt itt: „%s”" #: pan/data-impl/headers.cc:625 #, c-format msgid "" "Unsupported data version for %s headers: %d.\n" "Are you running an old version of Pan by accident?" msgstr "" "Nem támogatott adatverzió a(z) %s fejléceknél: %d.\n" "Véletlenül a Pan egy régi verzióját futtatja?" #: pan/data-impl/headers.cc:640 #, c-format msgid "Loaded %llu articles for \"%s\" in %.1f seconds (%.0f per second)" msgstr "" "%llu cikk betöltve ehhez: „%s” %.1f másodperc alatt (%.0f másodpercenként)" #: pan/data-impl/headers.cc:869 #, c-format msgid "" "Saved %lu parts, %lu articles in \"%s\" in %.1f seconds (%.0f articles/sec)" msgstr "" "%lu rész, %lu cikk elmentve ide: „%s” %.1f másodperc alatt (%.0f cikk/mp)" #: pan/data-impl/headers.cc:1202 #, c-format msgid "Added %lu articles to %s." msgstr "%lu cikk hozzáadva ehhez: %s." #: pan/data-impl/server.cc:263 #, c-format msgid "Received no password from libsecret for server %s." msgstr "" "Nem érkezett jelszó a libsecret programtól a következő kiszolgálóhoz: %s." #: pan/data-impl/xover.cc:241 #, c-format msgid "Error reading from %s: unknown group \"%s\"" msgstr "Hiba az olvasás közben innen: %s: ismeretlen „%s” csoport" #: pan/general/editor-spawner.cc:66 #, c-format msgid "Error parsing \"external editor\" command line: %s (Command was: %s)" msgstr "" "Hiba az „külső szerkesztő” parancssor feldolgozásakor: %s (A parancs ez " "volt: %s)" #: pan/general/editor-spawner.cc:110 #, c-format msgid "Error starting external editor: %s" msgstr "Hiba a külső szerkesztő elindításakor: %s" #: pan/general/e-util.cc:164 msgid "%l:%M %p" msgstr "%p %l:%M" #: pan/general/e-util.cc:165 msgid "Today %l:%M %p" msgstr "Ma %p %l:%M" #: pan/general/e-util.cc:166 msgid "%a %l:%M %p" msgstr "%a., %p %l:%M" #: pan/general/e-util.cc:167 msgid "%b %d %l:%M %p" msgstr "%b. %d., %p %l:%M" #: pan/general/e-util.cc:168 msgid "%b %d %Y" msgstr "%Y. %b. %d." #: pan/general/e-util.cc:200 msgid "?" msgstr "?" #: pan/general/text-match.cc:194 #, c-format msgid "Can't use regular expression \"%s\": %s" msgstr "Nem lehet használni a(z) „%s” reguláris kifejezést: %s" #: pan/general/utf8-utils.cc:212 msgid "Couldn't determine article encoding. Non-UTF8 characters were removed." msgstr "" "Nem sikerült megállapítani a cikk kódolását. A nem UTF-8 karakterek " "eltávolításra kerültek." #: pan/gui/actions.cc:306 pan/gui/post-ui.cc:451 msgid "_File" msgstr "_Fájl" #: pan/gui/actions.cc:307 pan/gui/post-ui.cc:452 msgid "_Edit" msgstr "S_zerkesztés" #: pan/gui/actions.cc:308 pan/gui/prefs-ui.cc:1138 msgid "_Layout" msgstr "_Elrendezés" #: pan/gui/actions.cc:309 msgid "_Group Pane" msgstr "_Csoport ablaktábla" #: pan/gui/actions.cc:310 msgid "_Header Pane" msgstr "_Fejléc ablaktábla" #: pan/gui/actions.cc:311 msgid "_Body Pane" msgstr "_Törzs ablaktábla" #: pan/gui/actions.cc:312 msgid "_View" msgstr "_Nézet" #: pan/gui/actions.cc:313 msgid "Filte_r" msgstr "Szű_rők" #: pan/gui/actions.cc:314 msgid "_Go" msgstr "_Ugrás" #: pan/gui/actions.cc:315 pan/gui/prefs-ui.cc:1188 msgid "_Actions" msgstr "_Műveletek" #: pan/gui/actions.cc:316 msgid "_Articles" msgstr "_Cikkek" #: pan/gui/actions.cc:317 msgid "G_roups" msgstr "Cs_oportok" #: pan/gui/actions.cc:318 pan/gui/actions.cc:319 msgid "_Post" msgstr "_Küldés" #: pan/gui/actions.cc:320 msgid "_Help" msgstr "_Súgó" #: pan/gui/actions.cc:323 msgid "_Read Group" msgstr "Csoport _olvasása" #: pan/gui/actions.cc:324 msgid "Read Group" msgstr "Csoport olvasása" #: pan/gui/actions.cc:328 msgid "_Mark Selected Groups Read" msgstr "A kijelölt csoportok _megjelölése olvasottként" #: pan/gui/actions.cc:329 msgid "Mark Selected Groups Read" msgstr "A kijelölt csoportok megjelölése olvasottként" #: pan/gui/actions.cc:333 msgid "_Delete Selected Groups' Articles" msgstr "A kijelölt csoportok cikkeinek _törlése" #: pan/gui/actions.cc:334 msgid "Delete Selected Groups' Articles" msgstr "A kijelölt csoportok cikkeinek törlése" #: pan/gui/actions.cc:338 msgid "Get New _Headers in Selected Groups" msgstr "Új _fejlécek letöltése a kijelölt csoportokban" #: pan/gui/actions.cc:339 msgid "Get New Headers in Selected Groups" msgstr "Új fejlécek letöltése a kijelölt csoportokban" #: pan/gui/actions.cc:343 pan/gui/actions.cc:348 msgid "Get New _Headers in Subscribed Groups" msgstr "Új _fejlécek letöltése a feliratkozott csoportokban" #: pan/gui/actions.cc:344 pan/gui/actions.cc:349 msgid "Get New Headers in Subscribed Groups" msgstr "Új fejlécek letöltése a feliratkozott csoportokban" #: pan/gui/actions.cc:353 msgid "Get _Headers..." msgstr "_Fejlécek letöltése…" #: pan/gui/actions.cc:354 msgid "Get Headers..." msgstr "Fejlécek letöltése…" #: pan/gui/actions.cc:358 pan/gui/actions.cc:359 msgid "Refresh Group List" msgstr "Csoportlista frissítése" #: pan/gui/actions.cc:363 msgid "_Subscribe" msgstr "_Feliratkozás" #: pan/gui/actions.cc:364 msgid "Subscribe" msgstr "Feliratkozás" #: pan/gui/actions.cc:368 msgid "_Unsubscribe" msgstr "_Leiratkozás" #: pan/gui/actions.cc:369 msgid "Unsubscribe" msgstr "Leiratkozás" #: pan/gui/actions.cc:373 msgid "_Save Articles..." msgstr "Cikkek _mentése…" #: pan/gui/actions.cc:374 msgid "Save Articles..." msgstr "Cikkek mentése…" #: pan/gui/actions.cc:378 msgid "Save Articles from Selected _NZB..." msgstr "Cikkek mentése a kijelölt _NZB-ből…" #: pan/gui/actions.cc:379 msgid "Save Articles from Selected NZB" msgstr "Cikkek mentése a kijelölt NZB-ből" #: pan/gui/actions.cc:383 msgid "Save Articles to an NZB _File..." msgstr "Cikkek mentése egy NZB-_fájlba…" #: pan/gui/actions.cc:384 msgid "Save Articles to an NZB File" msgstr "Cikkek mentése egy NZB fájlba" #: pan/gui/actions.cc:388 pan/gui/actions.cc:389 msgid "Print" msgstr "Nyomtatás" #: pan/gui/actions.cc:393 msgid "_Import NZB Files..." msgstr "NZB-fájlok _importálása…" #: pan/gui/actions.cc:398 msgid "_Cancel Last Task" msgstr "Az utolsó feladat _megszakítása" #: pan/gui/actions.cc:403 msgid "_Task Manager" msgstr "_Feladatkezelő" #: pan/gui/actions.cc:408 msgid "_Event Log" msgstr "_Eseménynapló" #: pan/gui/actions.cc:413 msgid "_Quit" msgstr "_Kilépés" #: pan/gui/actions.cc:418 msgid "Select _All Articles" msgstr "Ö_sszes cikk kijelölése" #: pan/gui/actions.cc:423 msgid "_Deselect All Articles" msgstr "Cikkek _kijelölésének megszüntetése" #: pan/gui/actions.cc:428 msgid "Add Su_bthreads to Selection" msgstr "_Alszálak hozzáadása a kijelöléshez" #: pan/gui/actions.cc:433 msgid "Add _Threads to Selection" msgstr "_Szálak hozzáadása a kijelöléshez" #: pan/gui/actions.cc:438 msgid "Add _Similar Articles to Selection" msgstr "_Hasonló cikkek hozzáadása a kijelöléshez" #: pan/gui/actions.cc:443 msgid "Select Article _Body" msgstr "Cikk _törzsének kijelölése" #: pan/gui/actions.cc:448 msgid "Edit _Preferences" msgstr "_Beállítások szerkesztése" #: pan/gui/actions.cc:453 msgid "Edit Selected _Group's Preferences" msgstr "A kijelölt _csoport beállításainak szerkesztése" #: pan/gui/actions.cc:458 msgid "Edit S_core File" msgstr "_Pontszámfájl szerkesztése" #: pan/gui/actions.cc:463 pan/gui/post-ui.cc:468 msgid "Edit P_osting Profiles" msgstr "_Küldő profilok szerkesztése" #: pan/gui/actions.cc:468 msgid "Edit _News Servers" msgstr "_Hírkiszolgálók szerkesztése" #: pan/gui/actions.cc:473 msgid "Jump to _Group Tab" msgstr "Ugrás a _csoport lapra" #: pan/gui/actions.cc:478 msgid "Jump to _Header Tab" msgstr "Ugrás a _fejléc lapra" #: pan/gui/actions.cc:483 msgid "Jump to _Body Tab" msgstr "Ugrás a _törzs lapra" #: pan/gui/actions.cc:488 msgid "_Rot13 Selected Text" msgstr "A kijelölt szöveg _rot13 kódolása" #: pan/gui/actions.cc:493 msgid "Clear _Header Pane" msgstr "_Fejléc ablaktábla törlése" #: pan/gui/actions.cc:498 msgid "Clear _Body Pane" msgstr "_Törzs ablaktábla törlése" #: pan/gui/actions.cc:503 msgid "Cache Article" msgstr "Cikk gyorsítótárazása" #: pan/gui/actions.cc:508 msgid "Read Article" msgstr "Cikk olvasása" #: pan/gui/actions.cc:513 msgid "Show Article Information" msgstr "Cikkinformációk megjelenítése" #: pan/gui/actions.cc:518 msgid "Read _More" msgstr "Olvasás _tovább" #: pan/gui/actions.cc:519 msgid "Read More" msgstr "Olvasás tovább" #: pan/gui/actions.cc:523 msgid "Read _Back" msgstr "Olvasás _vissza" #: pan/gui/actions.cc:524 msgid "Read Back" msgstr "Olvasás vissza" #: pan/gui/actions.cc:528 msgid "Next _Unread Group" msgstr "Következő _olvasatlan csoport" #: pan/gui/actions.cc:533 msgid "Next _Group" msgstr "Következő _csoport" #: pan/gui/actions.cc:538 msgid "Next _Unread Article" msgstr "Következő _olvasatlan cikk" #: pan/gui/actions.cc:539 msgid "Next Unread Article" msgstr "Következő olvasatlan cikk" #: pan/gui/actions.cc:543 msgid "Next _Article" msgstr "Következő _cikk" #: pan/gui/actions.cc:544 msgid "Next Article" msgstr "Következő cikk" #: pan/gui/actions.cc:548 msgid "Next _Watched Article" msgstr "Következő _megfigyelt cikk" #: pan/gui/actions.cc:553 msgid "Next Unread _Thread" msgstr "Következő olvasatlan _szál" #: pan/gui/actions.cc:554 msgid "Next Unread Thread" msgstr "Következő olvasatlan szál" #: pan/gui/actions.cc:558 msgid "Next Threa_d" msgstr "Következő s_zál" #: pan/gui/actions.cc:563 msgid "Pre_vious Article" msgstr "Előző _cikk" #: pan/gui/actions.cc:568 msgid "Previous _Thread" msgstr "Előző _szál" #: pan/gui/actions.cc:573 msgid "_Parent Article" msgstr "S_zülő cikk" #: pan/gui/actions.cc:578 msgid "Ignore _Author" msgstr "_Szerző mellőzése" #: pan/gui/actions.cc:582 msgid "_Watch Thread" msgstr "Szál meg_figyelése" #: pan/gui/actions.cc:587 msgid "_Ignore Thread" msgstr "Szál _mellőzése" #: pan/gui/actions.cc:592 pan/gui/actions.cc:593 msgid "_Toggle Flag On/Off for Thread" msgstr "Jelző ki/be ka_pcsolása a szálnál" #: pan/gui/actions.cc:597 pan/gui/actions.cc:598 msgid "_Turn Flag Off for Thread" msgstr "Jelző _kikapcsolása a szálnál" #: pan/gui/actions.cc:602 pan/gui/actions.cc:603 msgid "_Select All Flagged Threads" msgstr "Összes megjelölt szál _kijelölése" #: pan/gui/actions.cc:607 pan/gui/actions.cc:608 msgid "_Go to Next Flagged Thread" msgstr "_Ugrás a következő megjelölt szálhoz" #: pan/gui/actions.cc:612 pan/gui/actions.cc:613 msgid "_Go to Last Flagged Thread" msgstr "_Ugrás az utolsó megjelölt szálhoz" #: pan/gui/actions.cc:617 pan/gui/actions.cc:618 msgid "_Invert Selection" msgstr "_Kijelölés megfordítása" #: pan/gui/actions.cc:622 msgid "Edit Article's Watch/Ignore/Score..." msgstr "A cikk megfigyelésének/mellőzésének/pontszámának szerkesztése…" #: pan/gui/actions.cc:627 msgid "Add a _Scoring Rule..." msgstr "_Pontozási szabály hozzáadása…" #: pan/gui/actions.cc:632 msgid "Cance_l Article..." msgstr "Cikk _megszakítása…" #: pan/gui/actions.cc:637 msgid "_Supersede Article..." msgstr "Cikk _felfüggesztése…" #: pan/gui/actions.cc:642 msgid "_Delete Article" msgstr "Cikk _törlése" #: pan/gui/actions.cc:647 msgid "Clear Article Cache" msgstr "Cikk gyorsítótár törlése" #: pan/gui/actions.cc:652 msgid "_Mark Article as Read" msgstr "Cikk _megjelölése olvasottként" #: pan/gui/actions.cc:657 msgid "Mark Article as _Unread" msgstr "Cikk megjelölése _olvasatlanként" #: pan/gui/actions.cc:663 msgid "_Mark Thread as Read" msgstr "Szál _megjelölése olvasottként" #: pan/gui/actions.cc:668 msgid "Mark Thread as _Unread" msgstr "Szál megjelölése _olvasatlanként" #: pan/gui/actions.cc:673 msgid "_Post to Newsgroup" msgstr "_Küldés a hírcsoportba" #: pan/gui/actions.cc:674 msgid "Post to Newsgroup" msgstr "Küldés a hírcsoportba" #: pan/gui/actions.cc:678 msgid "_Followup to Newsgroup" msgstr "_Követő írása a hírcsoportba" #: pan/gui/actions.cc:679 msgid "Followup to Newsgroup" msgstr "Követő írása a hírcsoportba" #: pan/gui/actions.cc:683 msgid "_Reply to Author in Mail" msgstr "_Válasz a szerzőnek levélben" #: pan/gui/actions.cc:689 msgid "_Contents" msgstr "_Tartalom" #: pan/gui/actions.cc:695 msgid "_Pan Home Page" msgstr "_Pan honlap" #: pan/gui/actions.cc:700 msgid "Give _Feedback or Report a Bug..." msgstr "_Visszajelzés küldése vagy hiba jelentése…" #: pan/gui/actions.cc:705 msgid "_About" msgstr "_Névjegy" #: pan/gui/actions.cc:710 msgid "Edit _SSL Certificates" msgstr "_SSL tanúsítványok szerkesztése" #: pan/gui/actions.cc:725 msgid "_Thread Headers" msgstr "_Szál fejlécek" #: pan/gui/actions.cc:726 msgid "Wrap Article Body" msgstr "Cikk törzsének tördelése" #: pan/gui/actions.cc:727 msgid "Show Article Signature" msgstr "Cikk aláírásának megjelenítése" #: pan/gui/actions.cc:728 msgid "Mute _Quoted Text" msgstr "_Idézett szöveg elrejtése" #: pan/gui/actions.cc:729 msgid "Show All _Headers in Body Pane" msgstr "Minden _fejléc megjelenítése a törzs ablaktáblában" #: pan/gui/actions.cc:730 msgid "Show _Smilies as Graphics" msgstr "_Hangulatjelek megjelenítése grafikaként" #: pan/gui/actions.cc:731 msgid "Show *Bold*, __Underlined__, and /Italic/" msgstr "*Félkövér*, __aláhúzott__ és /dőlt/ megjelenítése" #: pan/gui/actions.cc:732 msgid "Size Pictures to _Fit" msgstr "Fényképek méretezése a _kitöltéshez" #: pan/gui/actions.cc:733 msgid "Use _Monospace Font" msgstr "_Rögzített szélességű betűkészlet használata" #: pan/gui/actions.cc:734 msgid "Set Focus to Images" msgstr "Fókusz beállítása a képekre" #: pan/gui/actions.cc:735 msgid "Highlight _URLs" msgstr "URL-ek kiemelése" #: pan/gui/actions.cc:738 msgid "_Work Online" msgstr "M_unka a hálózatban" #: pan/gui/actions.cc:739 msgid "_Tabbed Layout" msgstr "_Füles elrendezés" #: pan/gui/actions.cc:740 msgid "Show Group _Pane" msgstr "_Csoport ablaktábla megjelenítése" #: pan/gui/actions.cc:741 msgid "Show Hea_der Pane" msgstr "_Fejléc ablaktábla megjelenítése" #: pan/gui/actions.cc:742 msgid "Show Bod_y Pane" msgstr "_Törzs ablaktábla megjelenítése" #: pan/gui/actions.cc:743 msgid "Show _Toolbar" msgstr "_Eszköztár megjelenítése" #: pan/gui/actions.cc:744 msgid "Abbreviate Group Names" msgstr "Csoportnevek rövidítése" #: pan/gui/actions.cc:746 msgid "Match Only _Read Articles" msgstr "Csak _olvasott cikkek megjelenítése" #: pan/gui/actions.cc:746 msgid "Match Only Read Articles" msgstr "Csak olvasott cikkek megjelenítése" #: pan/gui/actions.cc:747 msgid "Match Only _Unread Articles" msgstr "Csak olvasatla_n cikkek megjelenítése" #: pan/gui/actions.cc:747 msgid "Match Only Unread Articles" msgstr "Csak olvasatlan cikkek megjelenítése" #: pan/gui/actions.cc:748 msgid "Match Only _Cached Articles" msgstr "Csak a _gyorstárban lévő cikkek megjelenítése" #: pan/gui/actions.cc:748 msgid "Match Only Cached Articles" msgstr "Csak a gyorstárban lévő cikkek megjelenítése" #: pan/gui/actions.cc:749 msgid "Match Only _Complete Articles" msgstr "Csak _teljes cikkek megjelenítése" #: pan/gui/actions.cc:749 msgid "Match Only Complete Articles" msgstr "Csak teljes cikkek megjelenítése" #: pan/gui/actions.cc:750 msgid "Match Only _My Articles" msgstr "Csak _saját cikkek megjelenítése" #: pan/gui/actions.cc:750 msgid "Match Only My Articles" msgstr "Csak saját cikkek megjelenítése" #: pan/gui/actions.cc:751 msgid "Match Only _Watched Articles" msgstr "Csak meg_figyelt cikkek megjelenítése" #: pan/gui/actions.cc:751 msgid "Match Only Watched Articles" msgstr "Csak megfigyelt cikkek megjelenítése" #: pan/gui/actions.cc:753 msgid "Match Scores of 9999 (_Watched)" msgstr "9999 pontszámú megjelenítése (meg_figyelt)" #: pan/gui/actions.cc:754 msgid "Match Scores of 5000...9998 (_High)" msgstr "5000…9998 pontszámú megjelenítése (_magas)" #: pan/gui/actions.cc:755 msgid "Match Scores of 1...4999 (Me_dium)" msgstr "1…4999 pontszámú megjelenítése (_közepes)" #: pan/gui/actions.cc:756 msgid "Match Scores of 0 (_Normal)" msgstr "0 pontszámú megjelenítése (_normál)" #: pan/gui/actions.cc:757 msgid "Match Scores of -9998...-1 (_Low)" msgstr "-9998…-1 pontszámú megjelenítése (_alacsony)" #: pan/gui/actions.cc:758 msgid "Match Scores of -9999 (_Ignored)" msgstr "-9999 pontszámú megjelenítése (mellő_zött)" #: pan/gui/actions.cc:760 msgid "Enable/Disable All _Rules" msgstr "Minden _szabály engedélyezése vagy tiltása" #: pan/gui/actions.cc:788 msgid "Show Matching _Articles" msgstr "Megfelelő _cikkek megjelenítése" #: pan/gui/actions.cc:789 msgid "Show Matching Articles' _Threads" msgstr "Megfelelő cikkek _szálainak megjelenítése" #: pan/gui/actions.cc:790 msgid "Show Matching Articles' _Subthreads" msgstr "Megfelelő cikkek _alszálainak megjelenítése" #: pan/gui/body-pane.cc:1038 msgid "Unnamed File" msgstr "Névtelen fájl" #: pan/gui/body-pane.cc:1119 pan/gui/gui.cc:1956 pan/gui/header-pane.cc:1309 #: pan/gui/header-pane.cc:1738 pan/gui/post-ui.cc:2641 pan/gui/prefs-ui.cc:887 #: pan/gui/score-add-ui.cc:139 pan/gui/task-pane.cc:795 msgid "Subject" msgstr "Tárgy" #: pan/gui/body-pane.cc:1121 pan/gui/gui.cc:1956 msgid "From" msgstr "Feladó" #: pan/gui/body-pane.cc:1123 pan/gui/gui.cc:1957 pan/gui/header-pane.cc:1817 #: pan/gui/log-ui.cc:308 pan/gui/prefs-ui.cc:883 msgid "Date" msgstr "Dátum" #: pan/gui/body-pane.cc:1130 msgid "Newsgroups" msgstr "Hírcsoportok" #: pan/gui/body-pane.cc:1137 pan/gui/body-pane.cc:1145 #: pan/gui/body-pane.cc:1152 msgid "User-Agent" msgstr "User-Agent" #: pan/gui/body-pane.cc:1158 msgid "Followup-To" msgstr "Követőcím" #: pan/gui/body-pane.cc:1168 msgid "Reply-To" msgstr "Válaszcím" #: pan/gui/body-pane.cc:1216 msgid " from " msgstr " tőle: " #: pan/gui/body-pane.cc:1218 msgid " at " msgstr " ekkor: " #: pan/gui/body-pane.cc:1307 #, c-format msgid "" "This is a PGP-Signed message.\n" "\n" "Signer: %s ('%s')\n" "Valid until: %s\n" "Created on: %s" msgstr "" "Ez egy PGP-vel aláírt üzenet.\n" "\n" "Aláíró: %s („%s”)\n" "Érvényesség: %s\n" "Létrehozva: %s" #: pan/gui/body-pane.cc:1312 msgid "always" msgstr "mindig" #: pan/gui/body-pane.cc:1532 msgid "Copy _URL" msgstr "_URL másolása" #: pan/gui/body-pane.cc:1720 msgid "Save Attachment As..." msgstr "Melléklet mentése másként…" #: pan/gui/body-pane.cc:1723 msgid "Save All Attachments" msgstr "Minden melléklet mentése" #: pan/gui/body-pane.cc:1794 msgid "Attachments:" msgstr "Mellékletek:" #: pan/gui/body-pane.cc:1814 msgid "Text View" msgstr "Szövegnézet" #: pan/gui/body-pane.cc:1823 msgid "HTML View" msgstr "HTML nézet" #: pan/gui/dl-headers-ui.cc:125 #, c-format msgid "%d Group" msgid_plural "%d Groups" msgstr[0] "%d csoport" msgstr[1] "%d csoport" #: pan/gui/dl-headers-ui.cc:148 msgid "Get the last N _days' headers: " msgstr "Az elmúlt N _nap fejléceinek letöltése: " #: pan/gui/dl-headers-ui.cc:156 msgid "Get _new headers" msgstr "Ú_j fejlécek letöltése" #: pan/gui/dl-headers-ui.cc:160 msgid "Get _all headers" msgstr "_Minden fejléc letöltése" #: pan/gui/dl-headers-ui.cc:164 msgid "Get the _latest N headers: " msgstr "A leg_utóbbi N fejléc letöltése: " #: pan/gui/e-action-combo-box.c:386 pan/gui/prefs-ui.cc:880 msgid "Action" msgstr "Művelet" #: pan/gui/e-action-combo-box.c:387 msgid "A GtkRadioAction" msgstr "Egy GtkRadiAction objektum" #: pan/gui/e-charset.c:51 pan/gui/task-pane.cc:561 msgid "Unknown" msgstr "Ismeretlen" #: pan/gui/e-charset.c:52 msgid "Arabic" msgstr "Arab" #: pan/gui/e-charset.c:53 msgid "Baltic" msgstr "Balti" #: pan/gui/e-charset.c:54 msgid "Central European" msgstr "Közép-európai" #: pan/gui/e-charset.c:55 msgid "Chinese" msgstr "Kínai" #: pan/gui/e-charset.c:56 msgid "Cyrillic" msgstr "Cirill" #: pan/gui/e-charset.c:57 msgid "Greek" msgstr "Görög" #: pan/gui/e-charset.c:58 msgid "Hebrew" msgstr "Héber" #: pan/gui/e-charset.c:59 msgid "Japanese" msgstr "Japán" #: pan/gui/e-charset.c:60 msgid "Korean" msgstr "Koreai" #: pan/gui/e-charset.c:61 msgid "Thai" msgstr "Thai" #: pan/gui/e-charset.c:62 msgid "Turkish" msgstr "Török" #: pan/gui/e-charset.c:63 msgid "Unicode" msgstr "Unicode" #: pan/gui/e-charset.c:64 msgid "Western European" msgstr "Nyugat-európai" #: pan/gui/e-charset.c:65 msgid "Western European, New" msgstr "Nyugat-európai, új" #: pan/gui/e-charset.c:84 pan/gui/e-charset.c:85 pan/gui/e-charset.c:86 msgid "Traditional" msgstr "Hagyományos" #: pan/gui/e-charset.c:87 pan/gui/e-charset.c:88 pan/gui/e-charset.c:89 #: pan/gui/e-charset.c:90 msgid "Simplified" msgstr "Egyszerűsített" #: pan/gui/e-charset.c:93 msgid "Ukrainian" msgstr "Ukrán" #: pan/gui/e-charset.c:96 msgid "Visual" msgstr "Vizuális" #: pan/gui/e-charset-combo-box.c:95 pan/gui/gui.cc:2154 pan/gui/post-ui.cc:546 #: pan/gui/prefs-ui.cc:791 msgid "Character Encoding" msgstr "Karakterkódolás" #: pan/gui/e-charset-combo-box.c:97 pan/gui/e-charset-dialog.c:51 #: pan/gui/score-add-ui.cc:606 pan/gui/task-pane.cc:309 msgid "Cancel" msgstr "Mégse" #: pan/gui/e-charset-combo-box.c:98 pan/gui/e-charset-dialog.c:52 msgid "OK" msgstr "OK" #: pan/gui/e-charset-combo-box.c:119 msgid "Enter the character set to use" msgstr "Adja meg a használandó karakterkészlet" #: pan/gui/e-charset-combo-box.c:338 msgid "Other..." msgstr "Egyéb…" #: pan/gui/e-cte-dialog.c:76 msgid "Default Encoding" msgstr "Alapértelmezett kódolás" #: pan/gui/e-cte-dialog.c:78 msgid "7-Bit Encoding" msgstr "7-bites kódolás" #: pan/gui/e-cte-dialog.c:80 msgid "8-Bit Encoding" msgstr "8-bites kódolás" #: pan/gui/e-cte-dialog.c:82 msgid "Base64 Encoding" msgstr "Base64 kódolás" #: pan/gui/e-cte-dialog.c:84 msgid "Quoted-Printable Encoding" msgstr "Idézett nyomtatható kódolás" #: pan/gui/group-pane.cc:331 msgid "Sent" msgstr "Elküldött" #: pan/gui/group-pane.cc:332 msgid "Drafts" msgstr "Piszkozatok" #: pan/gui/group-pane.cc:543 msgid "Group" msgstr "Csoport" #: pan/gui/group-pane.cc:544 msgid "Group (regex)" msgstr "Csoport (regex)" #: pan/gui/group-pane.cc:987 msgid "Local Folders" msgstr "Helyi mappák" #: pan/gui/group-pane.cc:988 msgid "Subscribed Groups" msgstr "Feliratkozott csoportok" #: pan/gui/group-pane.cc:989 msgid "Other Groups" msgstr "Egyéb csoportok" #: pan/gui/group-pane.cc:1029 pan/gui/score-view-ui.cc:156 msgid "Name" msgstr "Név" #: pan/gui/group-prefs-dialog.cc:161 msgid "No Profiles defined in Edit|Posting Profiles." msgstr "Nincs profil meghatározva a Szerkesztés|Küldő profilok menüpontban." #: pan/gui/group-prefs-dialog.cc:264 msgid "Pan: Group Preferences" msgstr "Pan: Csoportbeállítások" #: pan/gui/group-prefs-dialog.cc:279 msgid "Properties for Groups" msgstr "Csoportok tulajdonságai" #: pan/gui/group-prefs-dialog.cc:281 #, c-format msgid "Properties for %s" msgstr "%s tulajdonságai" #: pan/gui/group-prefs-dialog.cc:292 msgid "Character _encoding:" msgstr "_Karakterkódolás:" #: pan/gui/group-prefs-dialog.cc:294 msgid "Directory for Saving Attachments" msgstr "Könyvtár az elmentett mellékletekhez" #: pan/gui/group-prefs-dialog.cc:302 msgid "Directory for _saving attachments:" msgstr "Könyvtár az _elmentett mellékletekhez:" #: pan/gui/group-prefs-dialog.cc:304 msgid "Posting _profile:" msgstr "Küldő _profil:" #: pan/gui/group-prefs-dialog.cc:309 msgid "Spellchecker _language:" msgstr "Helyesírás-ellenőrző _nyelve:" #: pan/gui/group-prefs-dialog.cc:312 msgid "Group color:" msgstr "Csoportszín:" #: pan/gui/gui.cc:311 msgid "Open the Task Manager" msgstr "A feladatkezelő megnyitása" #: pan/gui/gui.cc:334 msgid "Open the Event Log" msgstr "Az eseménynapló megnyitása" #: pan/gui/gui.cc:610 msgid "Save NZB's Files" msgstr "NZB-fájlok mentése" #: pan/gui/gui.cc:637 msgid "Untitled.nzb" msgstr "Névtelen.nzb" #: pan/gui/gui.cc:639 msgid "Save NZB File as..." msgstr "NZB-fájl mentése másként…" #: pan/gui/gui.cc:808 msgid "Import NZB Files" msgstr "NZB-fájlok importálása…" #: pan/gui/gui.cc:816 pan/gui/post-ui.cc:3349 msgid "NZB Files" msgstr "NZB-fájlok" #: pan/gui/gui.cc:821 msgid "All Files" msgstr "Minden fájl" #: pan/gui/gui.cc:1335 msgid "Unable to supersede article." msgstr "Nem lehet helyettesíteni a cikket." #: pan/gui/gui.cc:1336 pan/gui/gui.cc:1412 msgid "The article doesn't match any of your posting profiles." msgstr "A cikk nem illeszkedik egyik küldő profilra sem." #: pan/gui/gui.cc:1385 msgid "Revise and send this article to replace the old one." msgstr "A cikk átvizsgálása és küldése a régi cseréjéhez." #: pan/gui/gui.cc:1386 pan/gui/gui.cc:1450 msgid "Be patient! It will take time for your changes to take effect." msgstr "" "Legyen türelmes! Eltarthat egy ideig, amíg a módosítások érvénybe lépnek." #: pan/gui/gui.cc:1411 msgid "Unable to cancel article." msgstr "Nem lehet megszakítani a cikket." #: pan/gui/gui.cc:1449 msgid "Send this article to ask your server to cancel your other one." msgstr "" "A cikk küldése, és arra kérve a kiszolgálót, hogy szakítsa meg a másikat." #: pan/gui/gui.cc:1467 msgid "You have marked some articles for deletion." msgstr "Néhány cikket törlésre jelölt meg." #: pan/gui/gui.cc:1468 msgid "Are you sure you want to delete them?" msgstr "Biztosan törölni szeretné azokat?" #: pan/gui/gui.cc:1494 msgid "Do you want to accept it permanently? (You can change this later.)" msgstr "Szeretné véglegesen elfogadni? (Ezt később is megváltoztathatja.)" #: pan/gui/gui.cc:1640 msgid "Unable to open help file." msgstr "A súgófájl nem nyitható meg." #: pan/gui/gui.cc:1668 msgid "Copyright © 2002-2021 Charles Kerr and others" msgstr "Copyright © 2002-2021 Charles Kerr és mások" #: pan/gui/gui.cc:1673 msgid "translator-credits" msgstr "" "Meskó Balázs \n" "Úr Balázs " #: pan/gui/gui.cc:1801 msgid "_1. Group Pane" msgstr "_1. Csoport ablaktábla" #: pan/gui/gui.cc:1802 msgid "_2. Header Pane" msgstr "_2. Fejléc ablaktábla" #: pan/gui/gui.cc:1803 msgid "_3. Body Pane" msgstr "_3. Törzs ablaktábla" #: pan/gui/gui.cc:1893 pan/gui/gui.cc:1908 msgid " Bytes" msgstr " bájt" #: pan/gui/gui.cc:1896 msgid " KB" msgstr " KB" #: pan/gui/gui.cc:1899 msgid " MB" msgstr " MB" #: pan/gui/gui.cc:1902 msgid " GB" msgstr " GB" #: pan/gui/gui.cc:1905 msgid " TB" msgstr " TB" #: pan/gui/gui.cc:1937 #, c-format msgid "This article is complete with %d part." msgid_plural "This article has all %d parts." msgstr[0] "Ez a cikk teljes %d résszel." msgstr[1] "Ennek a cikknek megvan mind a(z) %d része." #: pan/gui/gui.cc:1939 #, c-format msgid "This article is missing %d part." msgid_plural "This article is missing %d of its %d parts:" msgstr[0] "Ebből a cikkből hiányzik %d rész." msgstr[1] "Ebből a cikkből hiányzik %d / %d rész:" #: pan/gui/gui.cc:1957 pan/gui/header-pane.cc:1311 pan/gui/task-pane.cc:797 msgid "Message-ID" msgstr "Üzenetazonosító" #: pan/gui/gui.cc:1958 pan/gui/header-pane.cc:1786 pan/gui/prefs-ui.cc:884 msgid "Lines" msgstr "Sor" #: pan/gui/gui.cc:1958 msgid "Size" msgstr "Méret" #: pan/gui/gui.cc:1959 pan/gui/header-pane.cc:1802 pan/gui/prefs-ui.cc:882 msgid "Bytes" msgstr "Bájt" #: pan/gui/gui.cc:2009 msgid "" "Error loading iconv library. Encoding certain character sets will not work " "in GUI." msgstr "" "Hiba az iconv programkönyvtár betöltésekor. Bizonyos karakterkészletek " "kódolása nem fog működni a grafikus felületen." #: pan/gui/gui.cc:2155 msgid "Body Pane Encoding" msgstr "Törzs ablaktábla kódolás" #: pan/gui/gui.cc:2186 pan/gui/task-pane.cc:612 msgid "Offline" msgstr "Offline" #: pan/gui/gui.cc:2190 #, c-format msgid "Closing %d connection" msgid_plural "Closing %d connections" msgstr[0] "%d kapcsolat lezárása" msgstr[1] "%d kapcsolat lezárása" #: pan/gui/gui.cc:2192 pan/gui/gui.cc:2222 msgid "No Connections" msgstr "Nincs kapcsolat" #: pan/gui/gui.cc:2196 msgid "Connecting" msgstr "Kapcsolódás" #: pan/gui/gui.cc:2209 #, c-format msgid "%s: %d idle, %d active @ %.1f KiBps" msgstr "%s: %d üresjárat, %d aktív @ %.1f KiBps" #: pan/gui/gui.cc:2265 msgid "No Tasks" msgstr "Nincs feladat" #: pan/gui/gui.cc:2267 pan/gui/prefs-ui.cc:1121 msgid "Tasks" msgstr "Feladatok" #: pan/gui/gui.cc:2284 pan/gui/task-pane.cc:478 #, c-format msgid "%lu tasks, %s, %.1f KiBps, ETA %d:%02d:%02d" msgstr "%lu feladat, %s, %.1f KiBps, ETA %d:%02d:%02d" #: pan/gui/gui.cc:2336 msgid "" "Pan is now offline. Please see \"File|Event Log\" and correct the problem, " "then use \"File|Work Online\" to continue." msgstr "" "A Pan most kapcsolat nélküli. Nézze meg a „Fájl|Eseménynapló” menüpontot és " "javítsa a hibát, majd használja a „Fájl|Munka a hálózaton” menüpontot a " "folytatáshoz." #: pan/gui/header-pane.cc:1307 pan/gui/task-pane.cc:793 msgid "Subject or Author" msgstr "Tárgy vagy szerző" #: pan/gui/header-pane.cc:1308 pan/gui/task-pane.cc:794 msgid "Sub or Auth (regex)" msgstr "Tár vagy szer (regex)" #: pan/gui/header-pane.cc:1310 pan/gui/header-pane.cc:1770 #: pan/gui/prefs-ui.cc:881 pan/gui/score-add-ui.cc:140 pan/gui/task-pane.cc:796 msgid "Author" msgstr "Szerző" #: pan/gui/header-pane.cc:1755 pan/gui/prefs-ui.cc:885 msgid "Score" msgstr "Pontszám" #: pan/gui/log-ui.cc:105 msgid "Save Event List" msgstr "Eseménylista mentése" #: pan/gui/log-ui.cc:259 msgid "Pan: Events" msgstr "Pan: Események" #: pan/gui/log-ui.cc:318 msgid "Message" msgstr "Üzenet" #: pan/gui/pan.cc:336 msgid "Maximize" msgstr "Teljes méretre" #: pan/gui/pan.cc:376 msgid "An error has occurred!" msgstr "Hiba történt!" #: pan/gui/pan.cc:389 msgid "New Articles!" msgstr "Új cikkek!" #: pan/gui/pan.cc:390 msgid "" "There are new\n" "articles available." msgstr "" "Új cikkek\n" "érhetők el." #: pan/gui/pan.cc:470 msgid "" "Thank you for trying Pan!\n" " \n" "To start newsreading, first Add a Server." msgstr "" "Köszönjük, hogy kipróbálta a Pan programot!\n" " \n" "A hírolvasáshoz először adjon hozzá egy kiszolgálót." #: pan/gui/pan.cc:552 msgid "" "General Options\n" " -h, --help Show this usage information and exit.\n" " -v, --version Print release version and exit.\n" " --verbose Be verbose (in non-GUI mode).\n" " --debug Run in debug mode. Use --debug twice for verbose " "debug.\n" " --debug-ssl Run in TLS (aka SSL) debug mode.\n" "\n" "URL Options\n" " headers:group.name Download new headers for the specified " "newsgroup.\n" " news:message-id When specified together with --no-gui, dump\n" " the message-id article to standard output.\n" "\n" "NZB Batch Options\n" " --nzb file1 file2 ... Process NZB files in non-GUI mode.\n" " -o path, --output=path Path to save attachments listed in the NZB " "file(s).\n" " --no-gui Only show console output, not the download " "queue.\n" msgstr "" "Általános kapcsolók\n" " -h, --help Ezen használati oldal megjelenítése és kilépés.\n" " -v, --version Kiadás verziójának kiírása és kilépés.\n" " --verbose Legyen bőbeszédű (nem grafikus módban).\n" " --debug Futtatás hibakeresési módban. Használja kétszer " "a\n" " --debug kapcsolót a részletes hibakeresésért.\n" " --debug-ssl Futtatás TLS (más néven SSL) hibakeresési " "módban.\n" "\n" "URL kapcsolók\n" " headers:group.name Új fejlécek letöltése a megadott hírcsoportnál.\n" " news:message-id A --no-gui kapcsolóval együtt történő megadáskor\n" " a message-id cikk kiírása a szabványos " "kimenetre.\n" "\n" "NZB kötegelt kapcsolók\n" " --nzb file1 file2 … NZB-fájlok feldolgozása nem grafikus módban.\n" " -o út, --output=út Az NZB-fájlokban felsorolt mellékletek mentési\n" " útvonala.\n" " --no-gui Csak konzolos kimenet megjelenítése, nem a\n" " letöltési soré.\n" #: pan/gui/pan.cc:885 msgid "Error: --no-gui used without nzb files or news:message-id." msgstr "Hiba: a --no-gui NZB-fájlok vagy news:message-id nélkül van használva." #: pan/gui/pan.cc:889 #, c-format msgid "Pan %s started" msgstr "A Pan %s elindult" #: pan/gui/pan.cc:909 msgid "Please configure Pan's news servers before using it as an nzb client." msgstr "" "Állítsa be a Pan hírkiszolgálóit, mielőtt NZB-kliensként használná azt." #: pan/gui/pan.cc:1029 msgid "Pan notification" msgstr "Pan értesítés" #: pan/gui/post-ui.cc:175 #, c-format msgid "Upload queue: %llu tasks, %ld KB (~ %.2f MB) total." msgstr "Feltöltési sor: %llu feladat, %ld KB (~ %.2f MB) összesen." #: pan/gui/post-ui.cc:281 pan/gui/post-ui.cc:312 #, c-format msgid "Error setting custom spellchecker: %s" msgstr "Hiba az egyéni helyesírás-ellenőrző beállításakor: %s" #: pan/gui/post-ui.cc:285 pan/gui/post-ui.cc:293 pan/gui/post-ui.cc:316 #: pan/gui/post-ui.cc:324 #, c-format msgid "Error setting spellchecker: %s" msgstr "Hiba a helyesírás-ellenőrző beállításakor: %s" #: pan/gui/post-ui.cc:453 msgid "_Profile" msgstr "_Profil" #: pan/gui/post-ui.cc:454 msgid "Set Editor" msgstr "Szerkesztő beállítása" #: pan/gui/post-ui.cc:456 msgid "_Send Article" msgstr "Cikk _küldése" #: pan/gui/post-ui.cc:456 msgid "Send Article Now" msgstr "Cikk küldése most" #: pan/gui/post-ui.cc:457 msgid "_Send and Save Articles to NZB" msgstr "_Küldés és cikkek mentése NZB-be" #: pan/gui/post-ui.cc:457 msgid "Send and Save Articles to NZB" msgstr "Küldés és cikkek mentése NZB-be" #: pan/gui/post-ui.cc:458 msgid "Set Character _Encoding..." msgstr "_Karakterkódolás beállítása…" #: pan/gui/post-ui.cc:459 msgid "Set Content _Transfer Encoding..." msgstr "_Tartalomátvitel kódolásának beállítása…" #: pan/gui/post-ui.cc:460 msgid "Sa_ve Draft" msgstr "Piszkozat _mentése" #: pan/gui/post-ui.cc:460 msgid "Save as a Draft for Future Posting" msgstr "Mentés piszkozatként egy későbbi küldéshez" #: pan/gui/post-ui.cc:461 msgid "_Open Draft..." msgstr "Piszkozat meg_nyitása…" #: pan/gui/post-ui.cc:461 msgid "Open an Article Draft" msgstr "Egy piszkozatcikk megnyitása" #: pan/gui/post-ui.cc:466 msgid "_Rot13" msgstr "_Rot13" #: pan/gui/post-ui.cc:466 msgid "Rot13 Selected Text" msgstr "A kijelölt szöveg rot13 kódolása" #: pan/gui/post-ui.cc:467 msgid "Run _Editor" msgstr "_Szerkesztő futtatása" #: pan/gui/post-ui.cc:467 msgid "Run Editor" msgstr "Szerkesztő futtatása" #: pan/gui/post-ui.cc:469 msgid "Add _Files to Queue" msgstr "_Fájlok hozzáadása a sorhoz" #: pan/gui/post-ui.cc:469 msgid "Add Files to Queue" msgstr "Fájlok hozzáadása a sorhoz" #: pan/gui/post-ui.cc:484 pan/gui/post-ui.cc:485 msgid "Remove from Queue" msgstr "Eltávolítás a sorból" #: pan/gui/post-ui.cc:489 pan/gui/post-ui.cc:490 msgid "Clear List" msgstr "Lista törlése" #: pan/gui/post-ui.cc:494 pan/gui/post-ui.cc:495 msgid "Select Needed Parts" msgstr "Szükséges részek kijelölése" #: pan/gui/post-ui.cc:499 pan/gui/post-ui.cc:500 pan/gui/task-pane.cc:680 #: pan/gui/task-pane.cc:681 msgid "Move Up" msgstr "Mozgatás fel" #: pan/gui/post-ui.cc:504 pan/gui/post-ui.cc:505 pan/gui/task-pane.cc:685 #: pan/gui/task-pane.cc:686 msgid "Move Down" msgstr "Mozgatás le" #: pan/gui/post-ui.cc:509 pan/gui/post-ui.cc:510 msgid "Move to Top" msgstr "Mozgatás a tetejére" #: pan/gui/post-ui.cc:514 pan/gui/post-ui.cc:515 msgid "Move to Bottom" msgstr "Mozgatás az aljára" #: pan/gui/post-ui.cc:522 msgid "_Wrap Text" msgstr "_Szöveg tördelése" #: pan/gui/post-ui.cc:522 msgid "Wrap Text" msgstr "Szöveg tördelése" #: pan/gui/post-ui.cc:523 msgid "Always Run Editor" msgstr "Mindig futtassa a szerkesztőt" #: pan/gui/post-ui.cc:524 msgid "Remember Character Encoding for This Group" msgstr "Emlékezzen a karakterkódolásra ennél a csoportnál" #: pan/gui/post-ui.cc:525 msgid "Thread Attached Replies" msgstr "Csatolt válaszok szálba rendezése" #: pan/gui/post-ui.cc:526 msgid "PGP-Encrypt the Article" msgstr "A cikk titkosítása PGP-vel" #: pan/gui/post-ui.cc:527 msgid "PGP-Sign the Article" msgstr "A cikk aláírása PGP-vel" #: pan/gui/post-ui.cc:528 msgid "Check _Spelling" msgstr "_Helyesírás-ellenőrzés" #: pan/gui/post-ui.cc:547 msgid "New Article's Encoding:" msgstr "Új cikk kódolása:" #: pan/gui/post-ui.cc:557 msgid "Content Transfer Encoding" msgstr "Tartalomátvitel kódolása" #: pan/gui/post-ui.cc:558 msgid "New Article's Content Transfer Encoding:" msgstr "Új cikk tartalomátvitelének kódolása:" #: pan/gui/post-ui.cc:742 msgid "Your changes will be lost!" msgstr "A módosítások el fognak veszni!" #: pan/gui/post-ui.cc:743 msgid "Close this window and lose your changes?" msgstr "Bezárja ezt az ablakot és elveszíti a módosításokat?" #: pan/gui/post-ui.cc:788 pan/gui/post-ui.cc:827 msgid "There were problems with this post." msgstr "Problémák voltak ezzel a küldéssel." #: pan/gui/post-ui.cc:790 pan/gui/post-ui.cc:829 pan/gui/post-ui.cc:894 msgid "Go Back" msgstr "Vissza" #: pan/gui/post-ui.cc:792 msgid "Continue Anyway" msgstr "Folytatás mindenképp" #. Prompt the user #: pan/gui/post-ui.cc:821 #, c-format msgid "" "Message uses characters not specified in charset '%s' - possibly use '%s' " msgstr "" "Az üzenet olyan karaktereket használ, amelyek nincsenek megadva a(z) „%s” " "karakterkészletben — talán használja ezt: „%s” " #: pan/gui/post-ui.cc:844 msgid "Go _Online" msgstr "_Kapcsolódás" #: pan/gui/post-ui.cc:893 msgid "The file queue is empty, so no files can be saved." msgstr "A fájl sor üres, így nem lehet fájlokat menteni." #: pan/gui/post-ui.cc:1073 msgid "IO Error" msgstr "IO-hiba" #: pan/gui/post-ui.cc:1073 msgid "No space left on device" msgstr "Nincs hely az eszközön" #: pan/gui/post-ui.cc:1074 #, c-format msgid "Error copying message to %s folder. Reason: %s" msgstr "Hiba az üzenet másolásakor a következő mappába: %s. Ok: %s" #: pan/gui/post-ui.cc:1080 #, c-format msgid "Error creating message in %s mail folder: Invalid article." msgstr "" "Hiba az üzenet létrehozásakor a követező levélmappába: %s: érvénytelen cikk." #: pan/gui/post-ui.cc:1102 msgid "" "No posting server is set for this posting profile.\n" "Please edit the profile via Edit|Manage Posting Profiles." msgstr "" "Nincs küldő kiszolgáló beállítva ehhez a küldő profilhoz.\n" "Szerkessze a profilt a Szerkesztés|Küldő profilok kezelése menüpontban." #: pan/gui/post-ui.cc:1107 msgid "" "The selected posting server is currently disabled. Please choose an " "appropriate alternative." msgstr "" "A kijelölt küldő kiszolgáló jelenleg le van tiltva. Válasszon egy megfelelő " "alternatívát." #: pan/gui/post-ui.cc:1149 msgid "Pan is Offline." msgstr "A Pan kapcsolat nélküli." #: pan/gui/post-ui.cc:1150 msgid "Go online to post the article?" msgstr "Kapcsolódjon a cikk elküldéséhez?" #: pan/gui/post-ui.cc:1199 #, c-format msgid "" "Error signing/encrypting your message. Perhaps you misspelled your email " "address (%s)?" msgstr "" "Hiba az üzenet aláírásakor vagy titkosításakor. Talán elírta az e-mail címét " "(%s)?" #: pan/gui/post-ui.cc:1349 msgid "Error opening temporary file" msgstr "Hiba az átmeneti fájl megnyitásakor" #: pan/gui/post-ui.cc:1360 #, c-format msgid "Error creating temporary file: %s" msgstr "Hiba az átmeneti fájl létrehozásakor: %s" #: pan/gui/post-ui.cc:1368 #, c-format msgid "Error writing article to temporary file: %s" msgstr "Hiba a cikk átmeneti fájlba írásakor: %s" #: pan/gui/post-ui.cc:1441 msgid "Open Draft Article" msgstr "Piszkozatcikk megnyitása" #: pan/gui/post-ui.cc:1683 msgid "Save Draft Article" msgstr "Piszkozatcikk mentése" #: pan/gui/post-ui.cc:1721 msgid "File already exists." msgstr "A fájl már létezik." #: pan/gui/post-ui.cc:1722 msgid "Overwrite it?" msgstr "Felülírja?" #: pan/gui/post-ui.cc:1931 #, c-format msgid "Couldn't parse signature command \"%s\": %s" msgstr "Nem sikerült feldolgozni a(z) „%s” aláírás parancsot: %s" #: pan/gui/post-ui.cc:1967 msgid "Couldn't convert signature to UTF-8." msgstr "Nem sikerült átalakítani az aláírást UTF-8 formátumra." #: pan/gui/post-ui.cc:2479 msgid "F_rom" msgstr "_Feladó" #: pan/gui/post-ui.cc:2496 msgid "_Subject" msgstr "_Tárgy" #: pan/gui/post-ui.cc:2509 msgid "_Newsgroups" msgstr "_Hírcsoportok" #: pan/gui/post-ui.cc:2523 msgid "Mail _To" msgstr "Levél _címzettje" #: pan/gui/post-ui.cc:2626 msgid "Delete from Queue" msgstr "Törlés a sorból" #: pan/gui/post-ui.cc:2639 msgid "No." msgstr "Sz." #: pan/gui/post-ui.cc:2643 pan/gui/post-ui.cc:2735 pan/gui/post-ui.cc:2776 msgid "Filename" msgstr "Fájlnév" #: pan/gui/post-ui.cc:2645 msgid "Size (KB)" msgstr "Méret (KB)" #: pan/gui/post-ui.cc:2743 msgid "The current filename" msgstr "A jelenlegi fájlnév" #: pan/gui/post-ui.cc:2747 msgid "Subject Line" msgstr "Tárgysor" #: pan/gui/post-ui.cc:2755 msgid "The current subject line" msgstr "A jelenlegi tárgy sora" #: pan/gui/post-ui.cc:2769 msgid "No. " msgstr "Sz. " #: pan/gui/post-ui.cc:2773 msgid "Enable/Disable" msgstr "Engedélyezés/letiltás" #: pan/gui/post-ui.cc:2807 msgid "Follo_wup-To" msgstr "_Követőcím" #. i18n: "poster" is a key used by many newsreaders. probably safest to keep this key in english. #: pan/gui/post-ui.cc:2816 msgid "" "The newsgroups where replies to your message should go. This is only needed " "if it differs from the \"Newsgroups\" header.\n" "\n" "To direct all replies to your email address, use \"Followup-To: poster\"" msgstr "" "Az a hírcsoport, ahova az üzenetre adott válasz menni fog. Ez csak akkor " "szükséges, ha eltér a „Hírcsoport” fejlécétől.\n" "\n" "Az összes válasznak közvetlenül az e-mail címére küldéséhez használja a " "„Követőcím: küldő” lehetőséget." #: pan/gui/post-ui.cc:2823 msgid "_Reply-To" msgstr "_Válaszcím" #: pan/gui/post-ui.cc:2831 msgid "" "The email account where mail replies to your posted message should go. This " "is only needed if it differs from the \"From\" header." msgstr "" "Az az e-mail fiók, ahova az elküldött üzenetre adott válaszok mennek. Ez " "csak akkor szükséges, ha eltér a „Feladó” fejléctől." #: pan/gui/post-ui.cc:2838 msgid "_Custom Headers" msgstr "_Egyéni fejlécek" #: pan/gui/post-ui.cc:2862 msgid "Add \"_User-Agent\" header" msgstr "„_User-Agent” fejléc hozzáadása" #: pan/gui/post-ui.cc:2869 msgid "Add \"Message-_ID\" header" msgstr "„Message-_ID” fejléc hozzáadása" #: pan/gui/post-ui.cc:2997 msgid "Select Parts" msgstr "Részek kijelölése" #: pan/gui/post-ui.cc:3010 msgid "_Parts" msgstr "_Részek" #: pan/gui/post-ui.cc:3177 msgid "Post Article" msgstr "Cikk küldése" #: pan/gui/post-ui.cc:3198 msgid "_Message" msgstr "Üz_enet" #: pan/gui/post-ui.cc:3199 msgid "More _Headers" msgstr "Több _fejléc" #: pan/gui/post-ui.cc:3200 msgid "File _Queue" msgstr "Fájl _sor" #: pan/gui/post-ui.cc:3231 pan/gui/profiles-dialog.cc:490 #, no-c-format msgid "On %d, %n wrote:" msgstr "%d keltezéssel %n ezt írta:" #: pan/gui/post-ui.cc:3260 msgid "Add files to queue" msgstr "Fájlok hozzáadása a sorhoz" #: pan/gui/post-ui.cc:3336 msgid "Save Upload Queue as NZB File" msgstr "Feltöltési sor mentése NZB-fájlként" #: pan/gui/prefs.cc:366 #, c-format msgid "Couldn't parse %s color \"%s\"" msgstr "Nem sikerült a(z) %s szín („%s”) feldolgozása" #: pan/gui/prefs-ui.cc:139 msgid "Grab Key" msgstr "Billentyű elkapása" #: pan/gui/prefs-ui.cc:145 #, c-format msgid "" "Press the combination of the keys\n" "you want to use for \"%s\"." msgstr "" "Nyomja meg azt a billentyűkombinációt,\n" "amelyet használni szeretne ehhez: „%s”." #: pan/gui/prefs-ui.cc:182 msgid "Edit Shortcut" msgstr "Gyorsbillentyű szerkesztése" #: pan/gui/prefs-ui.cc:243 msgid "Error: Shortcut key is invalid!" msgstr "Hiba: a gyorsbillentyű érvénytelen!" #: pan/gui/prefs-ui.cc:259 msgid "Error: Shortcut key already exists!" msgstr "Hiba: a gyorsbillentyű már létezik!" #: pan/gui/prefs-ui.cc:593 msgid "Show only icons" msgstr "Csak ikonok megjelenítése" #: pan/gui/prefs-ui.cc:594 msgid "Show only text" msgstr "Csak szöveg megjelenítése" #: pan/gui/prefs-ui.cc:595 msgid "Show icons and text" msgstr "Ikonok és szöveg megjelenítése" #: pan/gui/prefs-ui.cc:634 msgid "Use GNOME Preferences" msgstr "GNOME beállítások használata" #: pan/gui/prefs-ui.cc:635 msgid "Use KDE Preferences" msgstr "KDE beállítások használata" #: pan/gui/prefs-ui.cc:636 msgid "Use OS X Preferences" msgstr "OS X beállítások használata" #: pan/gui/prefs-ui.cc:637 msgid "Use Windows Preferences" msgstr "Windows beállítások használata" #: pan/gui/prefs-ui.cc:638 msgid "Custom Command:" msgstr "Egyéni parancs:" #: pan/gui/prefs-ui.cc:690 msgid "Disabled" msgstr "Letiltva" #: pan/gui/prefs-ui.cc:691 msgid "Only new (score == 0)" msgstr "Csak új (pontszám == 0)" #: pan/gui/prefs-ui.cc:692 msgid "9999 or more" msgstr "9999 vagy több" #: pan/gui/prefs-ui.cc:693 msgid "5000 to 9998" msgstr "5000 - 9998" #: pan/gui/prefs-ui.cc:694 msgid "1 to 4999" msgstr "1 - 4999" #: pan/gui/prefs-ui.cc:695 msgid "-9998 to -1" msgstr "-9998 és -1 között" #: pan/gui/prefs-ui.cc:696 msgid "-9999 or less" msgstr "-9999 vagy kevesebb" #: pan/gui/prefs-ui.cc:760 #, c-format msgid "Select default global character set. Current setting: %s." msgstr "" "Válassza ki a globális karakterkészletet. Jelenlegi beállítás: %s." #: pan/gui/prefs-ui.cc:792 msgid "Global Character Set Settings" msgstr "Globális karakterkészlet beállítások" #: pan/gui/prefs-ui.cc:886 pan/gui/task-pane.cc:1067 msgid "State" msgstr "Állapot" #: pan/gui/prefs-ui.cc:920 msgid "Enabled" msgstr "Engedélyezve" #: pan/gui/prefs-ui.cc:924 msgid "Column Name" msgstr "Oszlopnév" #: pan/gui/prefs-ui.cc:962 msgid "Pan: Preferences" msgstr "Pan: Beállítások" #: pan/gui/prefs-ui.cc:977 msgid "Mouse" msgstr "Egér" #: pan/gui/prefs-ui.cc:979 msgid "Single-click activates, rather than selects, _groups" msgstr "Egyszeres kattintás aktivál a kijelölés helyett, cs_oportok" #: pan/gui/prefs-ui.cc:981 msgid "Single-click activates, rather than selects, _articles" msgstr "Egyszeres kattintás aktivál a kijelölés helyett, _cikkek" #: pan/gui/prefs-ui.cc:984 msgid "Groups" msgstr "Csoportok" #: pan/gui/prefs-ui.cc:986 msgid "Get new headers in subscribed groups on _startup" msgstr "Új fejlécek letöltése a feliratkozott csoportokban _induláskor" #: pan/gui/prefs-ui.cc:988 msgid "Get new headers when _entering group" msgstr "Új fejlécek letöltése, amikor _belép egy csoportba" #: pan/gui/prefs-ui.cc:990 msgid "Mark entire group _read when leaving group" msgstr "Az egész csoport megjelölése _olvasottként, ha elhagyja a csoportot" #: pan/gui/prefs-ui.cc:992 msgid "Mark entire group read before getting _new headers" msgstr "" "Az egész csoport megjelölése olvasottként az ú_j fejlécek letöltése előtt" #: pan/gui/prefs-ui.cc:994 msgid "E_xpand all threads when entering group" msgstr "Összes szál ki_bontása, amikor belép egy csoportba" #: pan/gui/prefs-ui.cc:999 msgid "Articles" msgstr "Cikkek" #: pan/gui/prefs-ui.cc:1001 msgid "Mark downloaded articles read" msgstr "Letöltött cikkek megjelölése olvasottként" #: pan/gui/prefs-ui.cc:1003 msgid "Space selects next article rather than next unread" msgstr "A szóköz a következő cikket jelöli ki a következő olvasatlan helyett" #: pan/gui/prefs-ui.cc:1005 msgid "Expand threads upon selection" msgstr "Szálak kibontása kijelöléskor" #: pan/gui/prefs-ui.cc:1007 msgid "Always ask before deleting an article" msgstr "Mindig kérdezzen egy cikk törlése előtt" #: pan/gui/prefs-ui.cc:1009 msgid "Smooth scrolling" msgstr "Finom görgetés" #: pan/gui/prefs-ui.cc:1014 msgid "Article Cache" msgstr "Cikk gyorsítótár" #: pan/gui/prefs-ui.cc:1015 msgid "Clear article cache on shutdown" msgstr "Cikk gyorsítótár törlése leállításkor" #: pan/gui/prefs-ui.cc:1018 msgid "Size of article cache (in MiB):" msgstr "Cikk gyorsítótár mérete (MiB):" #: pan/gui/prefs-ui.cc:1022 msgid "File extension for cached articles: " msgstr "A gyorsítótárba tett cikkek fájlkiterjesztése: " #: pan/gui/prefs-ui.cc:1026 msgid "Tabs" msgstr "Lapok" #: pan/gui/prefs-ui.cc:1031 msgid "_Behavior" msgstr "_Viselkedés" #: pan/gui/prefs-ui.cc:1031 msgid "Behavior" msgstr "Viselkedés" #: pan/gui/prefs-ui.cc:1037 msgid "Task Pane" msgstr "Feladat ablaktábla" #: pan/gui/prefs-ui.cc:1038 msgid "Show task pane popups" msgstr "Feladat ablaktábla felugró ablakainak megjelenítése" #: pan/gui/prefs-ui.cc:1040 msgid "Show Download Meter" msgstr "Letöltésmérő megjelenítése" #: pan/gui/prefs-ui.cc:1044 msgid "_Panes" msgstr "_Ablaktáblák" #: pan/gui/prefs-ui.cc:1044 msgid "Panes" msgstr "Ablaktáblák" #: pan/gui/prefs-ui.cc:1050 msgid "Language Settings" msgstr "Nyelvi beállítások" #: pan/gui/prefs-ui.cc:1051 #| msgid "Fonts" msgid "Font" msgstr "Betűkészlet" #. systray and notify popup #: pan/gui/prefs-ui.cc:1058 msgid "System Tray Behavior" msgstr "Rendszertálca viselkedése" #: pan/gui/prefs-ui.cc:1060 msgid "Start Pan minimized" msgstr "Pan indítása kicsinyített állapotban" #: pan/gui/prefs-ui.cc:1063 msgid "Show notifications" msgstr "Értesítések megjelenítése" #. allow multiple instances (seperate, not communicating with dbus) #: pan/gui/prefs-ui.cc:1068 msgid "Startup Behavior" msgstr "Indítási viselkedés" #: pan/gui/prefs-ui.cc:1070 msgid "Allow multiple instances of Pan" msgstr "A Pan több példányának engedélyezése" #: pan/gui/prefs-ui.cc:1075 msgid "Autosave Article Draft" msgstr "Piszkozatcikkek automatikus mentése" #: pan/gui/prefs-ui.cc:1077 msgid "Minutes to autosave the current Article Draft: " msgstr "A jelenlegi piszkozatcikk automatikus mentése percben: " #: pan/gui/prefs-ui.cc:1082 msgid "Autosave Articles" msgstr "Cikkek automatikus mentése" #: pan/gui/prefs-ui.cc:1084 msgid "Minutes to autosave newsrc files: " msgstr "A newsrc fájlok automatikus mentése percben: " #: pan/gui/prefs-ui.cc:1091 msgid "Password Storage" msgstr "Jelszótároló" #: pan/gui/prefs-ui.cc:1093 msgid "Save passwords in password storage" msgstr "Jelszavak mentése a jelszótárolóba" #: pan/gui/prefs-ui.cc:1100 msgid "_Miscellaneous" msgstr "_Egyebek" #: pan/gui/prefs-ui.cc:1100 msgid "Miscellaneous" msgstr "Egyebek" #: pan/gui/prefs-ui.cc:1105 msgid "Pane Layout" msgstr "Ablaktábla elrendezése" #: pan/gui/prefs-ui.cc:1124 msgid "1=Groups, 2=Headers, 3=Body" msgstr "1=Csoportok, 2=Fejlécek, 3=Törzs" #: pan/gui/prefs-ui.cc:1126 msgid "1=Groups, 2=Body, 3=Headers" msgstr "1=Csoportok, 2=Törzs, 3=Fejlécek" #: pan/gui/prefs-ui.cc:1128 msgid "1=Headers, 2=Groups, 3=Body" msgstr "1=Fejlécek, 2=Csoportok, 3=Törzs" #: pan/gui/prefs-ui.cc:1130 msgid "1=Headers, 2=Body, 3=Groups" msgstr "1=Fejlécek, 2=Törzs, 3=Csoportok" #: pan/gui/prefs-ui.cc:1132 msgid "1=Body, 2=Groups, 3=Headers" msgstr "1=Törzs, 2=Csoportok, 3=Fejlécek" #: pan/gui/prefs-ui.cc:1134 msgid "1=Body, 2=Headers, 3=Groups" msgstr "1=Törzs, 2=Fejlécek, 3=Csoportok" #: pan/gui/prefs-ui.cc:1138 msgid "Layout" msgstr "Elrendezés" #: pan/gui/prefs-ui.cc:1143 msgid "Header Pane Columns" msgstr "Fejléc ablaktábla oszlopok" #: pan/gui/prefs-ui.cc:1147 msgid "_Headers" msgstr "_Fejlécek" #: pan/gui/prefs-ui.cc:1147 msgid "Headers" msgstr "Fejlécek" #: pan/gui/prefs-ui.cc:1153 msgid "" "This menu lets you configure Pan to take certain actions on your behalf " "automatically, based on an article's score." msgstr "" "Ez a menü lehetővé teszi a Pan beállítását, hogy bizonyos műveleteket az Ön " "nevében automatikusan végrehajtson a cikk pontszáma alapján." #: pan/gui/prefs-ui.cc:1158 msgid "Mark affected articles read" msgstr "Az érintett cikkek megjelölése olvasottként" #: pan/gui/prefs-ui.cc:1167 msgid "_Delete articles scoring at: " msgstr "A következő pontszámú cikkek _törlése: " #: pan/gui/prefs-ui.cc:1173 msgid "Mark articles read scoring at: " msgstr "A következő pontszámú cikkek megjelölése olvasottként: " #: pan/gui/prefs-ui.cc:1179 msgid "_Cache articles scoring at: " msgstr "A következő pontszámú cikkek _gyorsítótárba helyezése: " #: pan/gui/prefs-ui.cc:1185 msgid "Download attachments of articles scoring at: " msgstr "A következő pontszámú cikkek mellékleteinek letöltése: " #: pan/gui/prefs-ui.cc:1188 msgid "Actions" msgstr "Műveletek" #: pan/gui/prefs-ui.cc:1193 pan/gui/prefs-ui.cc:1214 msgid "Fonts" msgstr "Betűkészletek" #: pan/gui/prefs-ui.cc:1195 msgid "Use custom font in Group Pane:" msgstr "Egyéni betűkészlet használata a csoport ablaktáblán:" #: pan/gui/prefs-ui.cc:1200 msgid "Use custom font in Header Pane:" msgstr "Egyéni betűkészlet használata a fejléc ablaktáblán:" #: pan/gui/prefs-ui.cc:1205 msgid "Use custom font in Body Pane:" msgstr "Egyéni betűkészlet használata a törzs ablaktáblán:" #: pan/gui/prefs-ui.cc:1210 msgid "Monospace font:" msgstr "Rögzített szélességű betűkészlet:" #: pan/gui/prefs-ui.cc:1214 msgid "_Fonts" msgstr "_Betűkészletek" #: pan/gui/prefs-ui.cc:1223 msgid "Header Pane" msgstr "Fejléc ablaktábla" #: pan/gui/prefs-ui.cc:1226 pan/gui/prefs-ui.cc:1232 pan/gui/prefs-ui.cc:1238 #: pan/gui/prefs-ui.cc:1244 pan/gui/prefs-ui.cc:1250 pan/gui/prefs-ui.cc:1256 #: pan/gui/prefs-ui.cc:1265 pan/gui/prefs-ui.cc:1271 pan/gui/prefs-ui.cc:1277 #: pan/gui/prefs-ui.cc:1283 pan/gui/prefs-ui.cc:1289 pan/gui/prefs-ui.cc:1299 #: pan/gui/prefs-ui.cc:1309 msgid "Text:" msgstr "Szöveg:" #: pan/gui/prefs-ui.cc:1228 pan/gui/prefs-ui.cc:1234 pan/gui/prefs-ui.cc:1240 #: pan/gui/prefs-ui.cc:1246 pan/gui/prefs-ui.cc:1252 pan/gui/prefs-ui.cc:1258 #: pan/gui/prefs-ui.cc:1267 pan/gui/prefs-ui.cc:1273 pan/gui/prefs-ui.cc:1279 #: pan/gui/prefs-ui.cc:1285 pan/gui/prefs-ui.cc:1291 pan/gui/prefs-ui.cc:1301 #: pan/gui/prefs-ui.cc:1311 msgid "Background:" msgstr "Háttér:" #: pan/gui/prefs-ui.cc:1230 msgid "Scores of 9999 or more:" msgstr "9999 vagy több pontszám:" #: pan/gui/prefs-ui.cc:1236 msgid "Scores from 5000 to 9998:" msgstr "5000 és 9998 közötti pontszám:" #: pan/gui/prefs-ui.cc:1242 msgid "Scores from 1 to 4999:" msgstr "1 és 4999 közötti pontszám:" #: pan/gui/prefs-ui.cc:1248 msgid "Scores from -9998 to -1:" msgstr "-9998 és -1 közötti pontszám:" #: pan/gui/prefs-ui.cc:1254 msgid "Scores of -9999 or less:" msgstr "-9999 vagy kevesebb pontszám:" #: pan/gui/prefs-ui.cc:1260 msgid "Collapsed thread with unread articles:" msgstr "Összecsukott szál olvasatlan cikkekkel:" #: pan/gui/prefs-ui.cc:1262 msgid "Body Pane" msgstr "Törzs ablaktábla" #: pan/gui/prefs-ui.cc:1269 msgid "First level of quoted text:" msgstr "Idézett szöveg első szintje:" #: pan/gui/prefs-ui.cc:1275 msgid "Second level of quoted text:" msgstr "Idézett szöveg második szintje:" #: pan/gui/prefs-ui.cc:1281 msgid "Third level of quoted text:" msgstr "Idézett szöveg harmadik szintje:" #. #: pan/gui/prefs-ui.cc:1287 msgid "URL:" msgstr "URL:" #. #: pan/gui/prefs-ui.cc:1293 msgid "Signature:" msgstr "Aláírás:" #: pan/gui/prefs-ui.cc:1296 msgid "Group Pane" msgstr "Csoport ablaktábla" #. #: pan/gui/prefs-ui.cc:1303 msgid "Group Color:" msgstr "Csoportszín:" #: pan/gui/prefs-ui.cc:1307 msgid "Other Text" msgstr "Egyéb szöveg" #: pan/gui/prefs-ui.cc:1313 msgid "Text Color:" msgstr "Szövegszín:" #: pan/gui/prefs-ui.cc:1316 msgid "_Colors" msgstr "_Színek" #: pan/gui/prefs-ui.cc:1316 msgid "Colors" msgstr "Színek" #: pan/gui/prefs-ui.cc:1321 msgid "Preferred Applications" msgstr "Alapértelmezett alkalmazások" #: pan/gui/prefs-ui.cc:1325 msgid "_Web browser:" msgstr "_Webböngésző:" #: pan/gui/prefs-ui.cc:1328 msgid "_Gemini client:" msgstr "_Gemini-ügyfél:" #: pan/gui/prefs-ui.cc:1331 msgid "_Mail reader:" msgstr "_Levélolvasó:" #: pan/gui/prefs-ui.cc:1333 msgid "_Text editor:" msgstr "_Szövegszerkesztő:" #: pan/gui/prefs-ui.cc:1335 msgid "_HTML previewer:" msgstr "_HTML megjelenítő:" #: pan/gui/prefs-ui.cc:1337 msgid "_Applications" msgstr "_Alkalmazások" #: pan/gui/prefs-ui.cc:1337 msgid "Applications" msgstr "Alkalmazások" #: pan/gui/prefs-ui.cc:1342 pan/gui/task-pane.cc:555 msgid "Encoding" msgstr "Kódolás" #: pan/gui/prefs-ui.cc:1346 msgid "Default bytes per file (for encoder): " msgstr "Alapértelmezett bájt fájlonként (a kódolónál): " #: pan/gui/prefs-ui.cc:1351 msgid "_Upload" msgstr "_Feltöltés" #: pan/gui/prefs-ui.cc:1351 msgid "Upload" msgstr "Feltöltés" #: pan/gui/prefs-ui.cc:1360 msgid "_Shortcuts" msgstr "_Gyorsbillentyűk" #: pan/gui/prefs-ui.cc:1360 msgid "Shortcuts" msgstr "Gyorsbillentyűk" #: pan/gui/profiles-dialog.cc:83 msgid "Please choose your email address according to your PGP key's user id." msgstr "" "Válassza ki az e-mail címét a PGP kulcs felhasználó-azonosítója szerint." #: pan/gui/profiles-dialog.cc:131 msgid "Posting Profile" msgstr "Küldő profil" #: pan/gui/profiles-dialog.cc:143 msgid "Profile Information" msgstr "Profil információk" #: pan/gui/profiles-dialog.cc:147 msgid "_Profile Name:" msgstr "_Profilnév:" #: pan/gui/profiles-dialog.cc:150 msgid "Required Information" msgstr "Kötelező információk" #: pan/gui/profiles-dialog.cc:154 msgid "_Full Name:" msgstr "_Teljes név:" #: pan/gui/profiles-dialog.cc:158 msgid "" "Your email address.\n" "Note that this has to match your PGP signature's address\n" "if you want your messages to be PGP-signed or encrypted correctly." msgstr "" "Az Ön e-mail címe.\n" "Ne feledje, hogy ennek egyeznie kell a PGP aláírás címével,\n" "ha az üzenetet PGP-vel helyesen aláírni vagy titkosítani szeretné." #: pan/gui/profiles-dialog.cc:162 msgid "_Email Address:" msgstr "_E-mail cím:" #: pan/gui/profiles-dialog.cc:164 msgid "_Post Articles via:" msgstr "Cikkek _küldése ezzel:" #: pan/gui/profiles-dialog.cc:167 msgid "Signature" msgstr "Aláírás" #: pan/gui/profiles-dialog.cc:170 msgid "_Use a Signature" msgstr "Aláírás _használata" #: pan/gui/profiles-dialog.cc:174 msgid "Signature File" msgstr "Aláírásfájl" #: pan/gui/profiles-dialog.cc:184 msgid "Text File" msgstr "Szövegfájl" #: pan/gui/profiles-dialog.cc:186 msgid "Text" msgstr "Szöveg" #: pan/gui/profiles-dialog.cc:188 msgid "Command" msgstr "Parancs" #: pan/gui/profiles-dialog.cc:191 msgid "PGP Signature" msgstr "PGP aláírás" #: pan/gui/profiles-dialog.cc:196 msgid "Signature Type: " msgstr "Aláírás típusa: " #: pan/gui/profiles-dialog.cc:227 msgid "Avatars" msgstr "Profilképek" #: pan/gui/profiles-dialog.cc:230 msgid "" "You can add an avatar icon to your articles with a Base64-encoded PNG.\n" "Add the Base64-encoded picture without the trailing “Face:”." msgstr "" "Hozzáadhat egy profilképikont a cikkekhez egy Base64 kódolású PNG-vel.\n" "Adja hozzá a Base64 kódolású képet a záró „Face:” nélkül." #: pan/gui/profiles-dialog.cc:232 msgid "_Face:" msgstr "_Face:" #: pan/gui/profiles-dialog.cc:236 msgid "" "You can add an avatar icon to your articles with a unique X-Face code.\n" "Add the code without the trailing \"X-Face:\" \n" " if it was generated by a helper program (for example http://www.dairiki.org/" "xface/xface.php)." msgstr "" "Hozzáadhat egy avatar ikont a cikkekhez egy egyedi X-Face kóddal.\n" "Adja hozzá a kódot a záró „X-Face:” nélkül,\n" "ha azt egy segítő program állította elő (például http://www.dairiki.org/" "xface/xface.php)." #: pan/gui/profiles-dialog.cc:239 msgid "_X-Face:" msgstr "_X-Face:" #: pan/gui/profiles-dialog.cc:241 msgid "Optional Information" msgstr "Opcionális információk" #: pan/gui/profiles-dialog.cc:246 msgid "" "When posting to Usenet, your article's Message-ID contains a domain name.\n" "You can set a custom domain name here, or leave it blank to let Pan use the " "domain name from your email address." msgstr "" "A Usenetre küldéskor a cikk üzenetazonosítója tartalmaz egy tartománynevet.\n" "Itt állíthat be egyedi tartománynevet, vagy hagyja üresen, hogy a Pan az e-" "mail címéből használhassa a tartománynevet." #: pan/gui/profiles-dialog.cc:249 msgid "Message-ID _Domain Name:" msgstr "Üzenetazonosító _tartománynév:" #: pan/gui/profiles-dialog.cc:253 #, c-format msgid "" "%i for Message-ID\n" "%a for Author and Address\n" "%n for Author name\n" "%d for Date" msgstr "" "%i az üzenetazonosítóhoz\n" "%a a szerzőhöz és címhez\n" "%n a szerző nevéhez\n" "%d a dátumhoz" #: pan/gui/profiles-dialog.cc:254 msgid "_Attribution:" msgstr "_Tulajdonság:" #. Translators: Do not localize Reply-To and the quote marks in \"Your Name\". #: pan/gui/profiles-dialog.cc:279 msgid "" "Extra headers to be included in your articles, such as\n" "Reply-To: \"Your Name\" \n" "Organization: Your Organization\n" msgstr "" "A cikkekbe felvett további fejlécek, mint például\n" "Reply-To: \"Az Ön neve\"\n" "Organization: Az Ön szervezete\n" #: pan/gui/profiles-dialog.cc:289 msgid "E_xtra Headers:" msgstr "_További fejlécek:" #: pan/gui/profiles-dialog.cc:334 msgid "Invalid email address." msgstr "Érvénytelen e-mail cím." #: pan/gui/profiles-dialog.cc:335 msgid "Please use an address of the form joe@somewhere.org" msgstr "A címet janos@valahol.hu formában használja." #: pan/gui/profiles-dialog.cc:491 msgid "New Profile" msgstr "Új profil" #: pan/gui/profiles-dialog.cc:537 msgid "Posting Profiles" msgstr "Küldő profilok" #: pan/gui/profiles-dialog.cc:553 msgid "Profiles" msgstr "Profilok" #: pan/gui/save-attach-ui.cc:44 #, c-format msgid "" "%g - group as one directory (alt.binaries.pictures.trains)\n" "%G - group as nested directory (/alt/binaries/pictures/trains)\n" "%s - Subject line excerpt\n" "%S - Subject line\n" "%n - Poster display name\n" "%e - Poster email address\n" "%d - Article timestamp\n" "\"/home/user/News/Pan/%g\" becomes\n" "\"/home/user/News/Pan/alt.binaries.pictures.trains\", and\n" "\"/home/user/News/Pan/%G\" becomes\n" "\"/home/user/News/Pan/alt/binaries/pictures/trains\"," msgstr "" "%g — csoport egy könyvtárként (alt.binaries.pictures.trains)\n" "%G — csoport beágyazott könyvtárként (/alt/binaries/pictures/trains)\n" "%s — tárgysor kivonat\n" "%S — tárgysor\n" "%n — küldő megjelenített neve\n" "%e — küldő e-mail címe\n" "%d — cikk időbélyege\n" "„/home/user/News/Pan/%g” helyettesítése\n" "„/home/user/News/Pan/alt.binaries.pictures.trains”, és\n" "„/home/user/News/Pan/%G” helyettesítése\n" "„/home/user/News/Pan/alt/binaries/pictures/trains”," #: pan/gui/save-attach-ui.cc:196 pan/gui/save-ui.cc:216 msgid "Add to the queue sorted by date posted" msgstr "Hozzáadás a sorhoz a küldés dátuma szerint rendezve" #: pan/gui/save-attach-ui.cc:197 pan/gui/save-ui.cc:217 msgid "Add to the front of the queue" msgstr "Hozzáadás a sor elejéhez" #: pan/gui/save-attach-ui.cc:198 pan/gui/save-ui.cc:218 msgid "Add to the back of the queue" msgstr "Hozzáadás a sor végéhez" #: pan/gui/save-attach-ui.cc:230 msgid "Pan: Save Attachments" msgstr "Pan: Mellékletek mentése" #: pan/gui/save-attach-ui.cc:255 pan/gui/save-attach-ui.cc:273 #: pan/gui/save-ui.cc:270 pan/gui/save-ui.cc:291 msgid "_Location:" msgstr "_Hely:" #: pan/gui/save-attach-ui.cc:259 pan/gui/save-ui.cc:274 msgid "Save Articles" msgstr "Cikkek mentése" #: pan/gui/save-attach-ui.cc:276 pan/gui/save-ui.cc:294 #, c-format msgid "_Group's path: %s" msgstr "_Csoport útvonala: %s" #: pan/gui/save-attach-ui.cc:287 pan/gui/save-ui.cc:309 msgid "_Priority:" msgstr "_Prioritás:" #: pan/gui/save-ui.cc:44 #, c-format msgid "" "%g - group as one directory (alt.binaries.pictures.trains)\n" "%G - group as nested directory (/alt/binaries/pictures/trains)\n" "%s - subject line excerpt\n" "%S - subject line\n" "%n - Poster display name\n" "%e - Poster email address\n" "%d - Article timestamp\n" " \n" "\"/home/user/News/Pan/%g\" becomes\n" "\"/home/user/News/Pan/alt.binaries.pictures.trains\", and\n" "\"/home/user/News/Pan/%G\" becomes\n" "\"/home/user/News/Pan/alt/binaries/pictures/trains\"," msgstr "" "%g — csoport egy könyvtárként (alt.binaries.pictures.trains)\n" "%G — csoport beágyazott könyvtárként (/alt/binaries/pictures/trains)\n" "%s — tárgysor kivonat\n" "%S — tárgysor\n" "%n — küldő megjelenített neve\n" "%e — küldő e-mail címe\n" "%d — cikk időbélyege\n" " \n" "„/home/user/News/Pan/%g” helyettesítése\n" "„/home/user/News/Pan/alt.binaries.pictures.trains”, és\n" "„/home/user/News/Pan/%G” helyettesítése\n" "„/home/user/News/Pan/alt/binaries/pictures/trains”," #: pan/gui/save-ui.cc:207 msgid "Save attachments" msgstr "Mellékletek mentése" #: pan/gui/save-ui.cc:208 msgid "Save text" msgstr "Szöveg mentése" #: pan/gui/save-ui.cc:209 msgid "Save attachments and text" msgstr "Mellékletek és szöveg mentése" #: pan/gui/save-ui.cc:245 msgid "Pan: Save Articles" msgstr "Pan: Cikkek mentése" #: pan/gui/save-ui.cc:305 msgid "_Action:" msgstr "_Művelet:" #: pan/gui/score-add-ui.cc:89 msgid "is more than" msgstr "több mint" #: pan/gui/score-add-ui.cc:90 msgid "is at most" msgstr "legfeljebb" #: pan/gui/score-add-ui.cc:112 msgid "increase the article's score by" msgstr "a cikk pontszámának növelése ennyivel:" #: pan/gui/score-add-ui.cc:113 msgid "decrease the article's score by" msgstr "a cikk pontszámának csökkentése ennyivel:" #: pan/gui/score-add-ui.cc:114 msgid "set the article's score to" msgstr "a cikk pontszámának beállítása ennyire:" #: pan/gui/score-add-ui.cc:115 msgid "watch the article (set its score to 9999)" msgstr "a cikk megfigyelése (pontszámának beállítása 9999-re)" #: pan/gui/score-add-ui.cc:116 msgid "ignore the article (set its score to -9999)" msgstr "a cikk mellőzése (pontszámának beállítása -9999-re)" #: pan/gui/score-add-ui.cc:141 msgid "References" msgstr "Hivatkozások" #: pan/gui/score-add-ui.cc:142 msgid "Line Count" msgstr "Sorok száma" #: pan/gui/score-add-ui.cc:143 msgid "Byte Count" msgstr "Bájtok száma" #: pan/gui/score-add-ui.cc:144 msgid "Crosspost Group Count" msgstr "Keresztküldés csoport száma" #: pan/gui/score-add-ui.cc:145 msgid "Age (in days)" msgstr "Kor (napokban)" #: pan/gui/score-add-ui.cc:167 msgid "for the next month" msgstr "a következő hónapra" #: pan/gui/score-add-ui.cc:168 msgid "for the next six months" msgstr "a következő hat hónapra" #: pan/gui/score-add-ui.cc:169 msgid "forever" msgstr "örökké" #: pan/gui/score-add-ui.cc:194 msgid "contains" msgstr "tartalmazza" #: pan/gui/score-add-ui.cc:195 msgid "doesn't contain" msgstr "nem tartalmazza" #: pan/gui/score-add-ui.cc:196 msgid "is" msgstr "ez:" #: pan/gui/score-add-ui.cc:197 msgid "isn't" msgstr "nem ez:" #: pan/gui/score-add-ui.cc:198 msgid "starts with" msgstr "ezzel kezdődik:" #: pan/gui/score-add-ui.cc:199 msgid "ends with" msgstr "ezzel végződik:" #: pan/gui/score-add-ui.cc:200 msgid "matches regex" msgstr "illeszkedik a reguláris kifejezésre" #: pan/gui/score-add-ui.cc:481 msgid "Another rule already sets this article's score." msgstr "Egy másik szabály már beállítja ennek a cikknek a pontszámát." #: pan/gui/score-add-ui.cc:482 msgid "You may want to go back or delete the old rule." msgstr "Érdemes lehet visszamenni vagy törölje a régi szabályt." #: pan/gui/score-add-ui.cc:484 msgid "Back" msgstr "Vissza" #: pan/gui/score-add-ui.cc:485 pan/gui/task-pane.cc:1040 msgid "Delete" msgstr "Törlés" #: pan/gui/score-add-ui.cc:486 pan/gui/score-add-ui.cc:607 #: pan/gui/score-view-ui.cc:207 msgid "Add" msgstr "Hozzáadás" #: pan/gui/score-add-ui.cc:553 msgid "Add and Re_score" msgstr "Hozzáadás és újra_pontozás" #: pan/gui/score-add-ui.cc:602 pan/gui/score-add-ui.cc:622 msgid "New Scoring Rule" msgstr "Új pontozási szabály" #: pan/gui/score-add-ui.cc:633 msgid "Group name" msgstr "Csoportnév" #: pan/gui/score-add-ui.cc:640 msgid "and" msgstr "és" #: pan/gui/score-view-ui.cc:55 msgid "Close and Re_score" msgstr "Bezárás és újra_pontozás" #: pan/gui/score-view-ui.cc:153 #, c-format msgid "File %s, Lines %d - %d" msgstr "Fájl: %s, sorok: %d-%d" #: pan/gui/score-view-ui.cc:181 msgid "Pan: Article's Scores" msgstr "Pan: Cikk pontszámai" #: pan/gui/score-view-ui.cc:212 msgid "New Score" msgstr "Új pontszám" #: pan/gui/score-view-ui.cc:217 msgid "Criteria" msgstr "Feltétel" #: pan/gui/score-view-ui.cc:240 msgid "Add a New Scoring Rule" msgstr "Új pontozási szabály hozzáadása" #: pan/gui/score-view-ui.cc:247 msgid "Remove the Selected Scoring Rule" msgstr "A kijelölt pontozási szabály törlése" #: pan/gui/server-ui.cc:292 msgid "Please specify the server's address." msgstr "Adja meg a kiszolgáló címét." #: pan/gui/server-ui.cc:344 msgid "Import SSL Certificate (PEM Format) From File" msgstr "SSL tanúsítvány (PEM formátum) importálása fájlból" #. create the dialog #: pan/gui/server-ui.cc:381 pan/gui/server-ui.cc:996 msgid "Add a Server" msgstr "Kiszolgáló hozzáadása" #: pan/gui/server-ui.cc:381 pan/gui/server-ui.cc:1002 msgid "Edit a Server's Settings" msgstr "Kiszolgáló beállításainak szerkesztése" #: pan/gui/server-ui.cc:401 msgid "Location" msgstr "Hely" #: pan/gui/server-ui.cc:405 msgid "The news server's actual address, e.g. \"news.mynewsserver.com\"." msgstr "A hírkiszolgáló aktuális címe, például „news.mynewsserver.com”" #: pan/gui/server-ui.cc:406 msgid "_Address:" msgstr "_Cím:" #: pan/gui/server-ui.cc:411 msgid "" "The news server's port number. Typically 119 for unencrypted and 563 for " "encrypted connections (SSL/TLS)." msgstr "" "A hírkiszolgáló portszáma. Jellemzően 119 a titkosítatlan és 563 a " "titkosított kapcsolatokhoz (SSL/TLS)." #: pan/gui/server-ui.cc:412 msgid "Por_t:" msgstr "_Port:" #: pan/gui/server-ui.cc:415 msgid "Login (if Required)" msgstr "Bejelentkezés (ha szükséges)" #: pan/gui/server-ui.cc:419 msgid "_Username:" msgstr "_Felhasználónév:" #: pan/gui/server-ui.cc:420 msgid "" "The username to give the server when asked. If your server doesn't require " "authentication, you can leave this blank." msgstr "" "A kiszolgálónak átadott felhasználónév, ha kéri. Ha a kiszolgáló nem igényel " "hitelesítést, akkor hagyja ezt üresen." #: pan/gui/server-ui.cc:424 msgid "_Password:" msgstr "_Jelszó:" #: pan/gui/server-ui.cc:425 msgid "" "The password to give the server when asked. If your server doesn't require " "authentication, you can leave this blank." msgstr "" "A kiszolgálónak átadott jelszó, ha kéri. Ha a kiszolgáló nem igényel " "hitelesítést, akkor hagyja ezt üresen." #: pan/gui/server-ui.cc:428 msgid "Settings" msgstr "Beállítások" #: pan/gui/server-ui.cc:435 msgid "Connection _Limit:" msgstr "Kapcsolati _korlát:" #: pan/gui/server-ui.cc:439 msgid "After Two Weeks" msgstr "Két hét után" #: pan/gui/server-ui.cc:440 msgid "After One Month" msgstr "Egy hónap után" #: pan/gui/server-ui.cc:441 msgid "After Two Months" msgstr "Két hónap után" #: pan/gui/server-ui.cc:442 msgid "After Three Months" msgstr "Három hónap után" #: pan/gui/server-ui.cc:443 msgid "After Six Months" msgstr "Hat hónap után" #: pan/gui/server-ui.cc:444 msgid "Never Expire Old Articles" msgstr "Sose járnak le a régi cikkek" #: pan/gui/server-ui.cc:458 msgid "E_xpire Old Articles:" msgstr "Régi cikkek le_járata:" #: pan/gui/server-ui.cc:462 msgid "Primary" msgstr "Elsődleges" #: pan/gui/server-ui.cc:463 msgid "Fallback" msgstr "Tartalék" #: pan/gui/server-ui.cc:477 msgid "Server Rank:" msgstr "Kiszolgáló rang:" #: pan/gui/server-ui.cc:481 msgid "" "Fallback servers are used for articles that can't be found on the " "primaries. One common approach is to use free servers as primaries and " "subscription servers as fallbacks." msgstr "" "A tartalék kiszolgálók azokhoz a cikkekhez használhatók, amelyek nem " "találhatók az elsődlegesen. Egy gyakori megközelítés, hogy a szabad " "kiszolgálókat elsődlegesként és a feliratkozási kiszolgálókat tartalékként " "használják." #: pan/gui/server-ui.cc:486 msgid "Disable Compression (N/A)" msgstr "Tömörítés letiltása (N/A)" #: pan/gui/server-ui.cc:487 msgid "XZVER Compression (Astraweb)" msgstr "XZVER tömörítés (Astraweb)" #: pan/gui/server-ui.cc:488 msgid "GZIP Compression (Giganews etc.)" msgstr "GZIP tömörítés (Giganews, stb.)" #: pan/gui/server-ui.cc:502 msgid "Header Compression:" msgstr "Fejléc tömörítés:" #: pan/gui/server-ui.cc:508 msgid "Security" msgstr "Biztonság" #: pan/gui/server-ui.cc:513 msgid "Use Unsecure (Plaintext) Connections" msgstr "Nem biztonságos (egyszerű szöveges) kapcsolatok használata" #: pan/gui/server-ui.cc:514 msgid "Use Secure SSL Connections" msgstr "Biztonságos SSL kapcsolatok használata" #: pan/gui/server-ui.cc:529 msgid "TLS (SSL) Settings:" msgstr "TLS (SSL) beállítások:" #: pan/gui/server-ui.cc:534 msgid "" "You can enable/disable secure SSL/TLS connections here. If you enable SSL/" "TLS, your data is encrypted and secure. It is encouraged to enable SSL/TLS " "for privacy reasons." msgstr "" "Itt engedélyezheti vagy tilthatja le a biztonságos SSL/TLS kapcsolatokat. Ha " "engedélyezi az SSL/TLS kapcsolatot, akkor az adatok titkosítva lesznek és " "biztonságosak. Javasoljuk az SSL/TLS engedélyezését adatvédelmi okokból." #: pan/gui/server-ui.cc:539 msgid "Always trust this server's certificate" msgstr "Mindig bízzon meg a kiszolgáló tanúsítványában" #: pan/gui/server-ui.cc:724 #, c-format msgid "Really delete \"%s\"?" msgstr "Valóban törli: „%s”?" #: pan/gui/server-ui.cc:813 msgid "No information available." msgstr "Nem érhetők el információk." #: pan/gui/server-ui.cc:823 #, c-format msgid "Server Certificate for '%s'" msgstr "Kiszolgáló tanúsítvány ehhez: „%s”" #: pan/gui/server-ui.cc:922 #, c-format msgid "Really delete certificate for \"%s\"?" msgstr "Valóban törli a tanúsítványt ehhez: „%s”?" #. dialog #: pan/gui/server-ui.cc:949 pan/gui/server-ui.cc:970 pan/gui/server-ui.cc:1068 msgid "Servers" msgstr "Kiszolgálók" #: pan/gui/server-ui.cc:1009 msgid "Remove a Server" msgstr "Kiszolgáló eltávolítása" #. dialog #: pan/gui/server-ui.cc:1042 msgid "SSL Certificates" msgstr "SSL tanúsítványok" #: pan/gui/server-ui.cc:1063 msgid "Certificates" msgstr "Tanúsítványok" #: pan/gui/server-ui.cc:1094 msgid "Import Certificate" msgstr "Tanúsítvány importálása" #: pan/gui/server-ui.cc:1100 msgid "Inspect Certificate" msgstr "Tanúsítvány vizsgálata" #: pan/gui/server-ui.cc:1107 msgid "Remove Certificate" msgstr "Tanúsítvány eltávolítása" #: pan/gui/task-pane.cc:124 #, c-format msgid "" "\n" "Upload\n" "\n" "Subject: \"%s\"\n" "From: %s\n" "Groups: %s\n" "Sourcefile: %s\n" msgstr "" "\n" "Feltöltés\n" "\n" "Tárgy: „%s”\n" "Feladó: %s\n" "Csoportok: %s\n" "Forrásfájl: %s\n" #: pan/gui/task-pane.cc:136 #, c-format msgid "" "\n" "Download\n" "\n" "Subject: \"%s\"\n" "From: %s\n" "Date: %s\n" "Groups: %s\n" "Save Path: %s\n" msgstr "" "\n" "Letöltés\n" "\n" "Tárgy: „%s”\n" "Feladó: %s\n" "Dátum: %s\n" "Csoportok: %s\n" "Mentési útvonal: %s\n" #: pan/gui/task-pane.cc:138 msgid "unknown" msgstr "ismeretlen" #: pan/gui/task-pane.cc:306 msgid "Choose New Destination for Selected Tasks" msgstr "Válasszon új célt a kijelölt feladatokhoz" #: pan/gui/task-pane.cc:310 msgid "Save" msgstr "Mentés" #: pan/gui/task-pane.cc:460 #, c-format msgid "Pan: Tasks (%d Queued, %d Running, %d Stopped)" msgstr "Pan: Feladatok (%d sorban áll, %d fut, %d leállítva)" #: pan/gui/task-pane.cc:462 #, c-format msgid "Pan: Tasks (%d Queued, %d Running)" msgstr "Pan: Feladatok (%d sorban áll, %d fut)" #: pan/gui/task-pane.cc:464 msgid "Pan: Tasks" msgstr "Pan: Feladatok" #: pan/gui/task-pane.cc:489 #, c-format msgid "%lu selected, %s" msgstr "%lu kiválasztva, %s" #: pan/gui/task-pane.cc:553 msgid "Running" msgstr "Fut" #: pan/gui/task-pane.cc:554 msgid "Decoding" msgstr "Visszafejtés" #: pan/gui/task-pane.cc:556 msgid "Queued for Decode" msgstr "Sorba állítva a visszafejtéshez" #: pan/gui/task-pane.cc:557 msgid "Queued for Encode" msgstr "Sorba állítva a kódoláshoz" #: pan/gui/task-pane.cc:558 msgid "Queued" msgstr "Sorban áll" #: pan/gui/task-pane.cc:559 msgid "Stopped" msgstr "Leállítva" #: pan/gui/task-pane.cc:560 msgid "Removing" msgstr "Eltávolítás" #: pan/gui/task-pane.cc:589 #, c-format msgid "%d%% Done" msgstr "%d%% kész" #: pan/gui/task-pane.cc:595 #, c-format msgid "%d:%02d:%02d Remaining (%d @ %lu KiB/s)" msgstr "%d∶%02d∶%02d Hátravan (%d @ %lu KiB/s)" #: pan/gui/task-pane.cc:690 pan/gui/task-pane.cc:691 msgid "Move To Top" msgstr "Mozgatás a tetejére" #: pan/gui/task-pane.cc:695 pan/gui/task-pane.cc:696 msgid "Move To Bottom" msgstr "Mozgatás az aljára" #: pan/gui/task-pane.cc:700 pan/gui/task-pane.cc:701 msgid "Show Task Information" msgstr "Feladatinformációk megjelenítése" #: pan/gui/task-pane.cc:705 pan/gui/task-pane.cc:706 msgid "Stop Task" msgstr "Feladat leállítása" #: pan/gui/task-pane.cc:710 pan/gui/task-pane.cc:711 msgid "Delete Task" msgstr "Feladat törlése" #: pan/gui/task-pane.cc:715 pan/gui/task-pane.cc:716 msgid "Restart Task" msgstr "Feladat újraindítása" #: pan/gui/task-pane.cc:720 pan/gui/task-pane.cc:721 msgid "Change Download Destination" msgstr "Letöltési cél módosítása" #: pan/gui/task-pane.cc:1016 msgid "_Online" msgstr "_Kapcsolatban" #: pan/gui/task-pane.cc:1026 msgid "Move up" msgstr "Mozgatás fel" #: pan/gui/task-pane.cc:1027 msgid "Move task up" msgstr "Feladat mozgatása fel" #: pan/gui/task-pane.cc:1028 msgid "Move to top" msgstr "Mozgatás a tetejére" #: pan/gui/task-pane.cc:1029 msgid "Move task to top of the download queue" msgstr "Feladat mozgatása a letöltési sor elejére" #: pan/gui/task-pane.cc:1031 msgid "Move down" msgstr "Mozgatás le" #: pan/gui/task-pane.cc:1032 msgid "Move task down" msgstr "Feladat mozgatása le" #: pan/gui/task-pane.cc:1033 msgid "Move to bottom" msgstr "Mozgatás az aljára" #: pan/gui/task-pane.cc:1034 msgid "Move task to the bottom of the download queue" msgstr "Feladat mozgatása a letöltési sor végére" #: pan/gui/task-pane.cc:1036 msgid "Restart" msgstr "Újraindítás" #: pan/gui/task-pane.cc:1037 msgid "Restart Tasks" msgstr "Feladatok újraindítása" #: pan/gui/task-pane.cc:1038 msgid "Stop" msgstr "Leállítás" #: pan/gui/task-pane.cc:1039 msgid "Stop Tasks" msgstr "Feladatok leállítása" #: pan/gui/task-pane.cc:1041 msgid "Delete Tasks" msgstr "Feladatok törlése" #: pan/gui/task-pane.cc:1043 msgid "Close" msgstr "Bezárás" #: pan/gui/task-pane.cc:1047 msgid "Show popups" msgstr "Felugró ablakok megjelenítése" #: pan/gui/url.cc:143 #, c-format msgid "Error starting URL: %s (Command was: %s)" msgstr "Hiba az URL indításakor: %s (a parancs ez volt: %s)" #: pan/tasks/decoder.cc:124 #, c-format msgid "Couldn't save file \"%s\": %s" msgstr "Nem sikerült elmenteni a(z) „%s” fájlt: %s" #: pan/tasks/decoder.cc:146 pan/tasks/encoder.cc:146 msgid "Error initializing uulib" msgstr "Hiba az uulib előkészítésekor" #: pan/tasks/decoder.cc:166 pan/tasks/socket-impl-gio.cc:360 #: pan/tasks/socket-impl-openssl.cc:641 #, c-format msgid "Error reading from %s: %s" msgstr "Hiba a(z) %s olvasása közben: %s" #: pan/tasks/decoder.cc:206 #, c-format msgid "Saved \"%s\"" msgstr "„%s” mentve" #: pan/tasks/decoder.cc:213 #, c-format msgid "" "Error saving \"%s\":\n" "%s." msgstr "" "Hiba a következő mentésekor: „%s”:\n" "%s." #: pan/tasks/decoder.cc:326 pan/tasks/task-article.cc:351 #, c-format msgid "Decoding %s" msgstr "%s visszafejtése" #: pan/tasks/encoder.cc:113 pan/tasks/encoder.cc:164 #, c-format msgid "Error loading %s from cache." msgstr "Hiba a(z) %s gyorsítótárból való betöltésekor." #: pan/tasks/encoder.cc:186 #, c-format msgid "Error encoding %s: %s" msgstr "Hiba a(z) %s kódolásakor: %s" #: pan/tasks/encoder.cc:276 #, c-format msgid "Encoding %s" msgstr "%s kódolása" #: pan/tasks/nntp.cc:176 #, c-format msgid "%s requires a username, but none is set." msgstr "A(z) %s felhasználónevet igényel, de nincs beállítva." #: pan/tasks/nntp.cc:189 #, c-format msgid "%s requires a password, but none is set." msgstr "A(z) %s jelszót igényel, de nincs beállítva." #: pan/tasks/nntp.cc:275 #, c-format msgid "Sending \"%s\" to %s returned an error: %s" msgstr "A(z) „%s” küldése ide: %s, hibával tért vissza: %s" #: pan/tasks/nntp.cc:298 #, c-format msgid "Sending \"%s\" to %s returned an unrecognized response: \"%s\"" msgstr "A(z) „%s” küldése ide: %s, azonosítatlan válasszal tért vissza: „%s”" #: pan/tasks/nntp-pool.cc:241 #, c-format msgid "Unable to connect to \"%s\"" msgstr "Nem lehet kapcsolódni a következőhöz: „%s”" #: pan/tasks/queue.cc:778 pan/tasks/queue.cc:806 pan/tasks/queue.cc:833 msgid "No space left on device." msgstr "Nincs hely az eszközön." #: pan/tasks/socket-impl-gio.cc:173 pan/tasks/socket-impl-gio.cc:211 #: pan/tasks/socket-impl-openssl.cc:213 pan/tasks/socket-impl-openssl.cc:251 #, c-format msgid "Error connecting to \"%s\"" msgstr "Hiba a következőhöz csatlakozáskor: „%s”" #: pan/tasks/socket-impl-gio.cc:359 pan/tasks/socket-impl-openssl.cc:640 msgid "Unknown Error" msgstr "Ismeretlen hiba" #: pan/tasks/task-article.cc:59 pan/tasks/task-article.cc:157 #, c-format msgid "Saving %s" msgstr "%s mentése" #: pan/tasks/task-article.cc:61 #, c-format msgid "Reading %s" msgstr "%s olvasása" #: pan/tasks/task-article.cc:323 #, c-format msgid "Article \"%s\" is incomplete -- the news server(s) don't have part %s" msgstr "A(z) „%s” cikk nem teljes — a hírkiszolgálónak nincs %s része" #: pan/tasks/task-groups.cc:41 #, c-format msgid "Getting group list from \"%s\"" msgstr "Csoportlista letöltése a következőről: „%s”" #: pan/tasks/task-groups.cc:134 #, c-format msgid "Fetched %lu Groups" msgstr "%lu csoport letöltve" #: pan/tasks/task-post.cc:33 #, c-format msgid "Posting \"%s\"" msgstr "„%s” küldése" #: pan/tasks/task-post.cc:74 #, c-format msgid "Posting of \"%s\" failed: %s" msgstr "„%s” küldése sikertelen: %s" #: pan/tasks/task-post.cc:79 #, c-format msgid "Posting of \"%s\" successful: %s" msgstr "A(z) „%s” küldése sikeres: %s" #: pan/tasks/task-upload.cc:55 #, c-format msgid "Uploading %s" msgstr "%s feltöltése" #: pan/tasks/task-upload.cc:249 #, c-format msgid "Uploading %s - Part %d of %d" msgstr "%s feltöltése — %d / %d rész" #: pan/tasks/task-upload.cc:251 #, c-format msgid "Uploading message body with subject \"%s\"" msgstr "Üzenettörzs feltöltése a következő tárggyal: „%s”" #: pan/tasks/task-upload.cc:308 #, c-format msgid "Posting of file %s (part %d of %d) failed: No posts allowed by server." msgstr "" "A(z) %s fájl küldése (%d / %d rész) sikertelen: A kiszolgáló nem engedélyezi " "a küldést." #: pan/tasks/task-upload.cc:317 #, c-format msgid "Posting of file %s (part %d of %d) failed: %s" msgstr "A(z) %s fájl küldése (%d / %d rész) sikertelen: %s" #: pan/tasks/task-upload.cc:328 pan/tasks/task-upload.cc:335 #, c-format msgid "Posting of file %s (part %d of %d) successful: %s" msgstr "A(z) %s fájl küldése (%d / %d rész) sikeres: %s" #: pan/tasks/task-upload.cc:345 #, c-format msgid "Posting of file %s successful: %s" msgstr "A(z) %s fájl küldése sikeres: %s" #: pan/tasks/task-upload.cc:349 #, c-format msgid "" "Posting of file %s not completely successful: Check the log (right-click " "list item)." msgstr "" "A(z) %s fájl küldése nem teljesen sikeres: Ellenőrizze a naplót (jobb " "kattintás a listaelemre)." #: pan/tasks/task-upload.cc:368 #, c-format msgid "" "Posting of file %s not successful: Check the log (right-click list item)." msgstr "" "A(z) %s fájl küldése nem sikeres: Ellenőrizze a naplót (jobb kattintás a " "listaelemre)." #: pan/tasks/task-xover.cc:82 #, c-format msgid "Getting all headers for \"%s\"" msgstr "Minden fejléc letöltése a következőhöz: „%s”" #: pan/tasks/task-xover.cc:85 #, c-format msgid "Getting new headers for \"%s\"" msgstr "Új fejlécek letöltése a következőhöz: „%s”" #. SAMPLE #: pan/tasks/task-xover.cc:89 #, c-format msgid "Sampling headers for \"%s\"" msgstr "Fejlécek mintavételezése a következőhöz: „%s”" #: pan/tasks/task-xover.cc:454 #, c-format msgid "%s (%lu parts, %lu articles)" msgstr "%s (%lu rész, %lu cikk)" #: pan/tasks/task-xover.cc:528 #, c-format msgid "Getting new headers for \"%s\" done." msgstr "Új fejlécek letöltése a következőhöz: „%s” kész." #: pan/usenet-utils/filter-info.cc:215 msgid "article doesn't have attachments" msgstr "a cikknek nincsenek mellékletei" #: pan/usenet-utils/filter-info.cc:219 msgid "the article has attachments" msgstr "a cikknek mellékletei vannak" #: pan/usenet-utils/filter-info.cc:223 msgid "the article isn't cached locally" msgstr "a cikk nincs helyileg gyorstárazva" #: pan/usenet-utils/filter-info.cc:227 msgid "the article is cached locally" msgstr "a cikk helyileg gyorstárazott" #: pan/usenet-utils/filter-info.cc:231 msgid "the article wasn't posted by you" msgstr "a cikket nem Ön küldte el" #: pan/usenet-utils/filter-info.cc:235 msgid "the article was posted by you" msgstr "a cikket Ön küldte el" #: pan/usenet-utils/filter-info.cc:239 msgid "the article has been read" msgstr "a cikk el lett olvasva" #: pan/usenet-utils/filter-info.cc:243 msgid "the article hasn't been read" msgstr "a cikk nem lett elolvasva" #: pan/usenet-utils/filter-info.cc:247 #, c-format msgid "the article is less than %ld bytes long" msgstr "a cikk kevesebb mint %ld bájt hosszú" #: pan/usenet-utils/filter-info.cc:252 #, c-format msgid "the article is at least %ld bytes long" msgstr "a cikk legalább %ld bájt hosszú" #: pan/usenet-utils/filter-info.cc:257 #, c-format msgid "the article is less than %ld lines long" msgstr "a cikk kevesebb mint %ld sor hosszú" #: pan/usenet-utils/filter-info.cc:262 #, c-format msgid "the article is at least %ld lines long" msgstr "a cikk legalább %ld sor hosszú" #: pan/usenet-utils/filter-info.cc:267 #, c-format msgid "the article is less than %ld days old" msgstr "a cikk kevesebb mint %ld napos" #: pan/usenet-utils/filter-info.cc:272 #, c-format msgid "the article is at least %ld days old" msgstr "a cikk legalább %ld napos" #: pan/usenet-utils/filter-info.cc:277 #, c-format msgid "the article was posted to less than %ld groups" msgstr "a cikk kevesebb mint %ld csoportba lett elküldve" #: pan/usenet-utils/filter-info.cc:282 #, c-format msgid "the article was posted to at least %ld groups" msgstr "a cikk legalább %ld csoportba lett elküldve" #: pan/usenet-utils/filter-info.cc:287 #, c-format msgid "the article's score is less than %ld" msgstr "a cikk pontszáma kevesebb mint %ld" #: pan/usenet-utils/filter-info.cc:292 #, c-format msgid "the article's score is %ld or higher" msgstr "a cikk pontszáma %ld vagy magasabb" #: pan/usenet-utils/filter-info.cc:301 pan/usenet-utils/filter-info.cc:311 #, c-format msgid "%s doesn't contain \"%s\"" msgstr "%s nem tartalmazza a következőt: „%s”" #: pan/usenet-utils/filter-info.cc:302 pan/usenet-utils/filter-info.cc:312 #, c-format msgid "%s isn't \"%s\"" msgstr "%s nem „%s”" #: pan/usenet-utils/filter-info.cc:303 pan/usenet-utils/filter-info.cc:313 #, c-format msgid "%s doesn't begin with \"%s\"" msgstr "%s nem ezzel kezdődik: „%s”" #: pan/usenet-utils/filter-info.cc:304 pan/usenet-utils/filter-info.cc:314 #, c-format msgid "%s doesn't end with \"%s\"" msgstr "%s nem ezzel végződik: „%s”" #: pan/usenet-utils/filter-info.cc:305 pan/usenet-utils/filter-info.cc:315 #, c-format msgid "%s doesn't match the regex \"%s\"" msgstr "%s nem illeszkedik a következő reguláris kifejezésre: „%s”" #: pan/usenet-utils/filter-info.cc:327 #, c-format msgid "%s contains \"%s\"" msgstr "%s tartalmazza: „%s”" #: pan/usenet-utils/filter-info.cc:328 #, c-format msgid "%s is \"%s\"" msgstr "%s ez: „%s”" #: pan/usenet-utils/filter-info.cc:329 #, c-format msgid "%s begins with \"%s\"" msgstr "%s ezzel kezdődik: „%s”" #: pan/usenet-utils/filter-info.cc:330 #, c-format msgid "%s ends with \"%s\"" msgstr "%s ezzel végződik: „%s”" #: pan/usenet-utils/filter-info.cc:331 #, c-format msgid "%s matches the regex \"%s\"" msgstr "%s illeszkedik a következő reguláris kifejezésre: „%s”" #: pan/usenet-utils/filter-info.cc:337 msgid "Any of these tests fail:" msgstr "A következő tesztek egyike sikertelen:" #: pan/usenet-utils/filter-info.cc:344 msgid "All of these tests pass:" msgstr "A következő tesztek mindegyike sikeres:" #: pan/usenet-utils/filter-info.cc:351 msgid "None of these tests pass:" msgstr "A következő tesztek egyike sem sikeres:" #: pan/usenet-utils/filter-info.cc:358 msgid "Any of these tests pass:" msgstr "A következő tesztek egyike sikeres:" #: pan/usenet-utils/gnksa.cc:880 #, c-format msgid "No email address provided; generating message-id with domain \"%s\"" msgstr "" "Nincs e-mail cím megadva; üzenetazonosító előállítása a következő " "tartománnyal: „%s”" #: pan/usenet-utils/message-check.cc:122 msgid "Warning: Reply seems to be top-posted." msgstr "Figyelmeztetés: A válasz legfelsőbbként küldöttnek tűnik." #: pan/usenet-utils/message-check.cc:143 msgid "Warning: The signature marker should be \"-- \", not \"--\"." msgstr "Figyelmeztetés: Az aláírásjelzőnek „-- ” kell lennie, nem „--”." #: pan/usenet-utils/message-check.cc:160 msgid "Warning: Signature prefix with no signature." msgstr "Figyelmeztetés: Aláírás előtag aláírás nélkül." #: pan/usenet-utils/message-check.cc:165 msgid "Warning: Signature is more than 4 lines long." msgstr "Figyelmeztetés: Az aláírás több mint négy sor hosszú." #: pan/usenet-utils/message-check.cc:170 msgid "Warning: Signature is more than 80 characters wide." msgstr "Figyelmeztetés: Az aláírás több mint 80 karakter széles." #: pan/usenet-utils/message-check.cc:196 #, c-format msgid "Warning: %d line is more than 80 characters wide." msgid_plural "Warning: %d lines are more than 80 characters wide." msgstr[0] "Figyelmeztetés: %d sor több mint 80 karakter széles." msgstr[1] "Figyelmeztetés: %d sor több mint 80 karakter széles." #: pan/usenet-utils/message-check.cc:221 msgid "Error: Message is empty." msgstr "Hiba: Az üzenet üres." #: pan/usenet-utils/message-check.cc:256 msgid "Warning: The message is entirely quoted text!" msgstr "Figyelmeztetés: Az üzenet csak idézetből áll!" #: pan/usenet-utils/message-check.cc:257 msgid "Warning: The message is mostly quoted text." msgstr "Figyelmeztetés: Az üzenet nagyrészt idézetet tartalmaz." #: pan/usenet-utils/message-check.cc:307 msgid "Error: Message appears to have no new content." msgstr "Hiba: Az üzenet nem jelenít meg új tartalmat." #: pan/usenet-utils/message-check.cc:342 pan/usenet-utils/message-check.cc:381 #, c-format msgid "" "Warning: The posting profile's server doesn't carry newsgroup\n" "\t\"%s\".\n" "\tIf the group name is correct, switch profiles in the \"From:\"\n" "\tline or edit the profile with \"Edit|Manage Posting Profiles\"." msgstr "" "Figyelmeztetés: A küldő profil kiszolgálója nem viszi a hírcsoportot\n" "\t„%s”.\n" "\tHa a csoportnév helyes, váltson profilokat a „Feladó:” sorban, vagy\n" "\tszerkessze a profilt a „Szerkesztés|Küldő profilok kezelése” menüpontban." #: pan/usenet-utils/message-check.cc:353 msgid "Warning: Following-Up to too many groups." msgstr "Figyelmeztetés: Túl sok hírcsoportba küldött követőt." #: pan/usenet-utils/message-check.cc:364 msgid "Error: No Subject specified." msgstr "Hiba: Nincs tárgy megadva." #: pan/usenet-utils/message-check.cc:393 #, c-format msgid "Warning: Group \"%s\" is read-only." msgstr "Figyelmeztetés: A(z) „%s” csoport csak olvasható." #: pan/usenet-utils/message-check.cc:402 msgid "Error: Posting to a very large number of groups." msgstr "Hiba: Nagyon sok csoportba küld üzenetet." #: pan/usenet-utils/message-check.cc:407 msgid "Warning: Posting to a large number of groups." msgstr "Figyelmeztetés: Sok csoportba küld üzenetet." #: pan/usenet-utils/message-check.cc:414 msgid "Warning: Crossposting without setting Followup-To header." msgstr "Figyelmeztetés: Keresztküldés követőcím fejléc beállítása nélkül." #: pan/usenet-utils/message-check.cc:439 msgid "Error: Bad email address." msgstr "Hiba: Rossz e-mail cím." #: pan/usenet-utils/message-check.cc:448 msgid "Warning: Most newsgroups frown upon HTML posts." msgstr "Figyelmeztetés: A legtöbb hírcsoport nem örül a HTML üzeneteknek." #: pan/usenet-utils/message-check.cc:484 msgid "Error: No Recipients." msgstr "Hiba: Nincsenek címzettek." #: pan/usenet-utils/scorefile.cc:310 #, c-format msgid "Error reading score in %*.*s, line %d: unexpected line." msgstr "" "Hiba a pontszám olvasásakor ennek: %*.*s, a(z) %d. sorában: váratlan sor." #: pan/usenet-utils/scorefile.cc:442 #, c-format msgid "" "Error reading score in %*.*s, line %d: expected 'Expires: MM/DD/YYYY' or " "'Expires: DD-MM-YYYY'." msgstr "" "Hiba a pontszám olvasásakor ennek: %*.*s, a(z) %d. sorában: várt érték: " "„Expires: MM/DD/YYYY” vagy „Expires: DD-MM-YYYY”." #: pan/usenet-utils/scorefile.cc:452 #, c-format msgid "Expired old score from %*.*s, line %d" msgstr "Lejárt régi pontszám ennek: %*.*s, a(z) %d. sorában" #: pan/usenet-utils/scorefile.cc:589 #, c-format msgid "Read %lu scoring rules in %lu sections from \"%s\"" msgstr "%lu pontozási szabály olvasása %lu szakaszban a következőből: „%s”" #: pan/usenet-utils/ssl-utils.cc:172 #, c-format msgid "Error printing the server certificate for '%s'" msgstr "Hiba a kiszolgáló tanúsítvány nyomtatásakor a következőnél: „%s”" #: pan/usenet-utils/ssl-utils.cc:191 #, c-format msgid "" "The current server '%s' sent this security certificate:\n" "\n" msgstr "" "A jelenlegi „%s” kiszolgáló ezt a biztonsági tanúsítványt küldte:\n" "\n" #: pan/usenet-utils/ssl-utils.cc:197 #, c-format msgid "" "Certificate information for server '%s':\n" "\n" msgstr "" "Tanúsítvány információk a következő kiszolgálóhoz: „%s”:\n" "\n" #: pan/usenet-utils/ssl-utils.cc:202 #, c-format msgid "" "%sIssuer information:\n" "%s\n" "Valid until: %s\n" "\n" "Not valid before: %s\n" "\n" msgstr "" "%sKibocsátó információk:\n" "%s\n" "Érvényességi idő: %s\n" "\n" "Nem érvényes ez előtt: %s\n" "\n" #: pan/usenet-utils/text-massager.cc:397 msgid "> [quoted text muted]" msgstr "> [idézet szöveg elrejtve]" #: pan/usenet-utils/text-massager.cc:579 msgid "no_name" msgstr "nincs_nev" #: pan/usenet-utils/text-massager.cc:580 msgid "no_mail" msgstr "nincs_level" pan-0.162/po/id.po000066400000000000000000003060451475412772400136770ustar00rootroot00000000000000# Indonesian translation for pan. # Copyright (C) 2020 pan's COPYRIGHT HOLDER # This file is distributed under the same license as the pan package. # Andika Triwidada , 2020. # msgid "" msgstr "" "Project-Id-Version: pan master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/pan/issues\n" "POT-Creation-Date: 2020-07-05 06:55+0000\n" "PO-Revision-Date: 2020-10-17 18:15+0700\n" "Last-Translator: Andika Triwidada \n" "Language-Team: Indonesian \n" "Language: id\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural= n!=1;\n" "X-Generator: Poedit 2.4.1\n" #: pan.appdata.xml.in:5 #, fuzzy msgid "Pan Newsreader" msgstr "Pembaca Berita Pan" #: pan.appdata.xml.in:6 pan.desktop.in:5 #, fuzzy msgid "Read and post Usenet articles" msgstr "Baca dan pos artikel Usenet" #: pan.appdata.xml.in:8 #, fuzzy msgid "" "Pan is a Usenet newsreader that is good at both text and binaries. It " "supports offline reading, scoring and killfiles, yEnc, NZB, PGP handling, " "multiple servers, and secure connections." msgstr "" "Pan adalah pembaca berita Usenet yang baik pada teks dan biner. Ini " "mendukung membaca offline, mencetak dan killfiles, yEnc, NZB, penanganan " "PGP, beberapa server, dan koneksi aman." #: pan.appdata.xml.in:11 #, fuzzy msgid "" "It is also the only Unix newsreader to get a perfect score on the Good Net-" "Keeping Seal of Approval evaluations." msgstr "" "Ini juga satu-satunya pembaca berita Unix untuk mendapatkan skor sempurna " "pada Good Net-Keeping Seal evaluasi Persetujuan." #. update the titlebar #: pan.appdata.xml.in:22 pan.desktop.in:3 pan/gui/dl-headers-ui.cc:106 #: pan/gui/gui.cc:1045 pan/gui/gui.cc:1718 pan/gui/gui.cc:2038 #: pan/gui/score-add-ui.cc:602 msgid "Pan" msgstr "Pan" #: pan.desktop.in:4 #, fuzzy msgid "Newsreader" msgstr "Pembaca berita" #. Translators: Search terms to find this application. Do NOT translate or localise the semicolons! The list MUST also end with a semicolon! #: pan.desktop.in:7 #, fuzzy msgid "usenet;news;newsreader;newsgroup;article;yenc;nzb;" msgstr "usenet;berita;pembaca berita;grup berita;artikel;yenc;nzb;" #: pan/data/article-cache.cc:144 pan/data/encode-cache.cc:62 #, fuzzy, c-format msgid "Error opening directory: “%s”: %s" msgstr "Galat saat membuka direktori '%s': (%s)" #: pan/data/article-cache.cc:235 pan/data/article-cache.cc:244 #: pan/data-impl/data-io.cc:199 pan/data-impl/data-io.cc:231 #: pan/gui/post-ui.cc:1851 #, fuzzy, c-format msgid "Unable to save “%s” %s" msgstr "Tidak dapat menyimpan \"%s\" %s" #: pan/data/article-cache.cc:362 #, c-format msgid "Error opening file “%s” %s" msgstr "Galat saat membuka berkas \"%s\": %s" #: pan/data/article-cache.cc:393 pan/data-impl/profiles.cc:174 #: pan/data-impl/server.cc:527 pan/general/file-util.cc:311 #: pan/gui/post-ui.cc:644 pan/gui/task-pane.cc:737 #, c-format msgid "Error reading file “%s”: %s" msgstr "Galat ketika membaca berkas \"%s\": %s" #: pan/data/cert-store.cc:263 #, fuzzy, c-format msgid "Error opening SSL certificate directory: “%s”: %s" msgstr "Galat saat membuka direktori sertifikat SSL: \"%s\": %s" #: pan/data/cert-store.cc:294 #, fuzzy, c-format msgid "Successfully added %d SSL PEM certificate(s) to Certificate Store." msgstr "Berhasil menambahkan sertifikat %d SSL PEM ke Certificate Store." #: pan/data/cert-store.cc:314 #, fuzzy msgid "" "Error initializing Certificate Store. Check that the permissions for the " "folders ~/.pan2 and ~/.pan2/ssl_certs are set correctly. Fatal, exiting." msgstr "" "Galat inisialisasi penyimpanan sertifikat. Periksa apakah izin untuk folder " "~/.pan2 dan ~/.pan2/ssl_certs ditetapkan dengan benar. Fatal, keluar." #: pan/data/cert-store.cc:363 #, fuzzy, c-format msgid "Could not export certificate for server: %s" msgstr "Tidak dapat mengekspor sertifikat untuk server: %s" #. load_group_descriptions (*_data_io); #: pan/data-impl/data-impl.cc:120 #, fuzzy, c-format msgid "Loaded data backend in %.1f seconds" msgstr "Backend data yang dimuat dalam %.1f detik" #: pan/data-impl/data-impl.cc:151 pan/data-impl/data-impl.cc:198 #, fuzzy msgid "Pan Newsreader’s server passwords" msgstr "Kata sandi server Pan Newsreader" #: pan/data-impl/groups.cc:102 #, fuzzy, c-format msgid "Skipping newsrc file for server “%s”" msgstr "Melewatkan berkas newsrc untuk server \"%s\"" #: pan/data-impl/headers.cc:606 #, fuzzy, c-format msgid "Expired %lu old articles from “%s”" msgstr "Kedaluwarsa %lu artikel lama dari \"%s\"" #: pan/data-impl/headers.cc:613 #, fuzzy, c-format msgid "" "Unsupported data version for %s headers: %d.\n" "Are you running an old version of Pan by accident?" msgstr "" "Versi data yang tidak didukung untuk header %s: %d.\n" "Apakah Anda menjalankan versi lama Pan secara tidak sengaja?" #: pan/data-impl/headers.cc:628 #, fuzzy, c-format msgid "Loaded %lu articles for “%s” in %.1f seconds (%.0f per second)" msgstr "Dimuat %lu artikel untuk \"%s\" dalam %.1f detik (%.0f per detik)" #: pan/data-impl/headers.cc:857 #, fuzzy, c-format msgid "" "Saved %lu parts, %lu articles in “%s” in %.1f seconds (%.0f articles/sec)" msgstr "" "Disimpan %lu parts, %lu artikel dalam \"%s\" dalam %.1f detik (%.0f artikel/" "sec)" #: pan/data-impl/headers.cc:1190 #, fuzzy, c-format msgid "Added %lu articles to %s." msgstr "Menambahkan %lu artikel ke %s." #: pan/data-impl/server.cc:262 #, fuzzy, c-format msgid "Received no password from libsecret for server %s." msgstr "Tidak menerima kata sandi dari libsecret untuk server %s." #: pan/data-impl/server.cc:287 #, fuzzy, c-format msgid "There seems to be no password set for server %s." msgstr "Tampaknya tidak ada password yang ditetapkan untuk server %s." #: pan/data-impl/server.cc:291 #, fuzzy msgid "GNOME Keyring denied access to the passwords." msgstr "Gnome Keyring menolak akses ke kata sandi." #: pan/data-impl/xover.cc:243 #, fuzzy, c-format msgid "Error reading from %s: unknown group “%s”" msgstr "Galat saat membaca dari %s: grup \"%s\" tidak dikenal" #. build the locale strings #: pan/general/e-util.cc:211 msgid "%l∶%M %p" msgstr "%H∶%M" #: pan/general/e-util.cc:212 msgid "Today %l∶%M %p" msgstr "Hari ini %H:%M" #: pan/general/e-util.cc:213 msgid "%a %l∶%M %p" msgstr "%a %H:%M" #: pan/general/e-util.cc:214 msgid "%b %d %l∶%M %p" msgstr "%d %b %H:%M" #: pan/general/e-util.cc:215 msgid "%b %d %Y" msgstr "%d %b %Y" #: pan/general/e-util.cc:240 msgid "?" msgstr "?" #: pan/general/text-match.cc:193 #, fuzzy, c-format msgid "Can’t use regular expression “%s”: %s" msgstr "Tidak dapat menggunakan ekspresi reguler \"%s\": %s" #: pan/general/utf8-utils.cc:234 #, fuzzy msgid "Couldn’t determine article encoding. Non-UTF8 characters were removed." msgstr "Tidak dapat menentukan pengkodean artikel. Karakter non-UTF8 dihapus." #: pan/gui/actions.cc:306 pan/gui/post-ui.cc:452 msgid "_File" msgstr "_Berkas" #: pan/gui/actions.cc:307 pan/gui/post-ui.cc:453 msgid "_Edit" msgstr "S_unting" #: pan/gui/actions.cc:308 pan/gui/prefs-ui.cc:1107 msgid "_Layout" msgstr "Tata _Letak" #: pan/gui/actions.cc:309 #, fuzzy msgid "_Group Pane" msgstr "_Group Panel" #: pan/gui/actions.cc:310 #, fuzzy msgid "_Header Pane" msgstr "_Header Panel" #: pan/gui/actions.cc:311 #, fuzzy msgid "_Body Pane" msgstr "_Body Panel" #: pan/gui/actions.cc:312 #, fuzzy msgid "_View" msgstr "_Lihat" #: pan/gui/actions.cc:313 #, fuzzy msgid "Filte_r" msgstr "Filte_r" #: pan/gui/actions.cc:314 #, fuzzy msgid "_Go" msgstr "_Go" #: pan/gui/actions.cc:315 pan/gui/prefs-ui.cc:1157 msgid "_Actions" msgstr "_Aksi" #: pan/gui/actions.cc:316 #, fuzzy msgid "_Articles" msgstr "Semua artikel" #: pan/gui/actions.cc:317 #, fuzzy msgid "G_roups" msgstr "G_roups" #: pan/gui/actions.cc:318 pan/gui/actions.cc:319 #, fuzzy msgid "_Post" msgstr "_Kirim" #: pan/gui/actions.cc:320 msgid "_Help" msgstr "_Bantuan" #: pan/gui/actions.cc:323 #, fuzzy msgid "_Read Group" msgstr "_Read Grup" #: pan/gui/actions.cc:324 #, fuzzy msgid "Read Group" msgstr "Baca Grup" #: pan/gui/actions.cc:328 #, fuzzy msgid "_Mark Selected Groups Read" msgstr "_Mark Grup Terpilih Dibaca" #: pan/gui/actions.cc:329 #, fuzzy msgid "Mark Selected Groups Read" msgstr "Tandai Grup yang Dipilih Dibaca" #: pan/gui/actions.cc:333 #, fuzzy msgid "_Delete Selected Groups’ Articles" msgstr "_Delete Grup Terpilih" #: pan/gui/actions.cc:334 #, fuzzy msgid "Delete Selected Groups’ Articles" msgstr "Hapus Artikel Grup Terpilih" #: pan/gui/actions.cc:338 #, fuzzy msgid "Get New _Headers in Selected Groups" msgstr "Mendapatkan Tampilan _Headers di Grup Terpilih" #: pan/gui/actions.cc:339 #, fuzzy msgid "Get New Headers in Selected Groups" msgstr "Mendapatkan Header Baru di Grup yang Dipilih" #: pan/gui/actions.cc:343 pan/gui/actions.cc:348 #, fuzzy msgid "Get New _Headers in Subscribed Groups" msgstr "Dapatkan _Headers Baru di Grup Langganan" #: pan/gui/actions.cc:344 pan/gui/actions.cc:349 #, fuzzy msgid "Get New Headers in Subscribed Groups" msgstr "Dapatkan Header Baru di Grup Langganan" #: pan/gui/actions.cc:353 #, fuzzy msgid "Get _Headers…" msgstr "Dapatkan _Headers ..." #: pan/gui/actions.cc:354 #, fuzzy msgid "Get Headers…" msgstr "Dapatkan Header..." #: pan/gui/actions.cc:358 pan/gui/actions.cc:359 #, fuzzy msgid "Refresh Group List" msgstr "Segarkan Daftar Grup" #: pan/gui/actions.cc:363 #, fuzzy msgid "_Subscribe" msgstr "Ber_langganan" #: pan/gui/actions.cc:364 #, fuzzy msgid "Subscribe" msgstr "Berlangganan" #: pan/gui/actions.cc:368 #, fuzzy msgid "_Unsubscribe" msgstr "_Berhenti Langganan" #: pan/gui/actions.cc:369 #, fuzzy msgid "Unsubscribe" msgstr "Berhenti berlangganan" #: pan/gui/actions.cc:373 #, fuzzy msgid "_Save Articles…" msgstr "_Save Artikel..." #: pan/gui/actions.cc:374 #, fuzzy msgid "Save Articles…" msgstr "Simpan Artikel..." #: pan/gui/actions.cc:378 #, fuzzy msgid "Save Articles from Selected _NZB…" msgstr "Simpan Artikel dari Dipilih _NZB ..." #: pan/gui/actions.cc:379 #, fuzzy msgid "Save Articles from Selected NZB" msgstr "Simpan Artikel dari NZB Terpilih" #: pan/gui/actions.cc:383 #, fuzzy msgid "Save Articles to an NZB _File…" msgstr "Simpan Artikel ke nzb _File ..." #: pan/gui/actions.cc:384 #, fuzzy msgid "Save Articles to an NZB File" msgstr "Simpan Artikel ke File NZB" #: pan/gui/actions.cc:388 pan/gui/actions.cc:389 #, fuzzy msgid "Print" msgstr "Print" #: pan/gui/actions.cc:393 #, fuzzy msgid "_Import NZB Files…" msgstr "_Import NZB File..." #: pan/gui/actions.cc:398 #, fuzzy msgid "_Cancel Last Task" msgstr "_Cancel Tugas Terakhir" #: pan/gui/actions.cc:403 #, fuzzy msgid "_Task Manager" msgstr "manajer _Task" #: pan/gui/actions.cc:408 #, fuzzy msgid "_Event Log" msgstr "_Log kejadian" #: pan/gui/actions.cc:413 #, fuzzy msgid "_Quit" msgstr "_Keluar" #: pan/gui/actions.cc:418 #, fuzzy msgid "Select _All Articles" msgstr "Pilih _All Artikel" #: pan/gui/actions.cc:423 #, fuzzy msgid "_Deselect All Articles" msgstr "_Deselect Semua Artikel" #: pan/gui/actions.cc:428 #, fuzzy msgid "Add Su_bthreads to Selection" msgstr "Menambahkan Su_bthreads ke Pilihan" #: pan/gui/actions.cc:433 #, fuzzy msgid "Add _Threads to Selection" msgstr "Tambahkan _Threads ke Pilihan" #: pan/gui/actions.cc:438 #, fuzzy msgid "Add _Similar Articles to Selection" msgstr "Tambahkan _Similar Artikel ke Seleksi" #: pan/gui/actions.cc:443 #, fuzzy msgid "Select Article _Body" msgstr "Pilih Artikel _Body" #: pan/gui/actions.cc:448 #, fuzzy msgid "Edit _Preferences" msgstr "Sunting preferensi Glade" #: pan/gui/actions.cc:453 #, fuzzy msgid "Edit Selected _Group’s Preferences" msgstr "Mengedit preferensi _Group dipilih" #: pan/gui/actions.cc:458 pan/gui/post-ui.cc:469 #, fuzzy msgid "Edit P_osting Profiles" msgstr "Mengedit P_osting Profil" #: pan/gui/actions.cc:463 #, fuzzy msgid "Edit _News Servers" msgstr "Mengedit _News Server" #: pan/gui/actions.cc:468 #, fuzzy msgid "Jump to _Group Tab" msgstr "Langsung ke _Group Tab" #: pan/gui/actions.cc:473 #, fuzzy msgid "Jump to _Header Tab" msgstr "Langsung ke _Header Tab" #: pan/gui/actions.cc:478 #, fuzzy msgid "Jump to _Body Tab" msgstr "Langsung ke _Body Tab" #: pan/gui/actions.cc:483 #, fuzzy msgid "_Rot13 Selected Text" msgstr "_Rot13 Teks yang Dipilih" #: pan/gui/actions.cc:488 #, fuzzy msgid "Clear _Header Pane" msgstr "Hapus _Header Panel" #: pan/gui/actions.cc:493 #, fuzzy msgid "Clear _Body Pane" msgstr "Hapus _Body Panel" #: pan/gui/actions.cc:498 #, fuzzy msgid "Cache Article" msgstr "Cache Pasal" #: pan/gui/actions.cc:503 #, fuzzy msgid "Read Article" msgstr "Baca Artikel" #: pan/gui/actions.cc:508 #, fuzzy msgid "Show Article Information" msgstr "Tampilkan Informasi Artikel" #: pan/gui/actions.cc:513 #, fuzzy msgid "Read _More" msgstr "Baca _More" #: pan/gui/actions.cc:514 #, fuzzy msgid "Read More" msgstr "Selengkapnya" #: pan/gui/actions.cc:518 #, fuzzy msgid "Read _Back" msgstr "Baca _Back" #: pan/gui/actions.cc:519 #, fuzzy msgid "Read Back" msgstr "Baca Kembali" #: pan/gui/actions.cc:523 #, fuzzy msgid "Next _Unread Group" msgstr "Grup _Unread Berikutnya" #: pan/gui/actions.cc:528 #, fuzzy msgid "Next _Group" msgstr "Hotel Di _Group" #: pan/gui/actions.cc:533 #, fuzzy msgid "Next _Unread Article" msgstr "Artikel _Unread Berikutnya" #: pan/gui/actions.cc:534 #, fuzzy msgid "Next Unread Article" msgstr "Artikel Berikutnya Belum Dibaca" #: pan/gui/actions.cc:538 #, fuzzy msgid "Next _Article" msgstr "Hotel Di _Article" #: pan/gui/actions.cc:539 #, fuzzy msgid "Next Article" msgstr "Artikel Terdahulu" #: pan/gui/actions.cc:543 #, fuzzy msgid "Next _Watched Article" msgstr "Artikel _Watched Berikutnya" #: pan/gui/actions.cc:548 #, fuzzy msgid "Next Unread _Thread" msgstr "Berikutnya Belum dibaca _Thread" #: pan/gui/actions.cc:549 #, fuzzy msgid "Next Unread Thread" msgstr "Thread Berikutnya Belum Dibaca" #: pan/gui/actions.cc:553 #, fuzzy msgid "Next Threa_d" msgstr "Hotel Di Threa_d" #: pan/gui/actions.cc:558 #, fuzzy msgid "Pre_vious Article" msgstr "Pre_vious Pasal" #: pan/gui/actions.cc:563 #, fuzzy msgid "Previous _Thread" msgstr "Hasil _Thread" #: pan/gui/actions.cc:568 #, fuzzy msgid "_Parent Article" msgstr "_Parent Pasal" #: pan/gui/actions.cc:573 #, fuzzy msgid "Ignore _Author" msgstr "Abaikan _Author" #: pan/gui/actions.cc:577 #, fuzzy msgid "_Watch Thread" msgstr "_Watch Thread" #: pan/gui/actions.cc:582 #, fuzzy msgid "_Ignore Thread" msgstr "Aba_ikan Ulir" #: pan/gui/actions.cc:587 pan/gui/actions.cc:588 #, fuzzy msgid "_Toggle Flag On/Off for Thread" msgstr "_Toggle Bendera On/Off untuk Thread" #: pan/gui/actions.cc:592 pan/gui/actions.cc:593 #, fuzzy msgid "_Turn Flag Off for Thread" msgstr "_Turn Bendera Mati untuk Thread" #: pan/gui/actions.cc:597 pan/gui/actions.cc:598 #, fuzzy msgid "_Select All Flagged Threads" msgstr "_Select Semua Thread yang Ditandai" #: pan/gui/actions.cc:602 pan/gui/actions.cc:603 #, fuzzy msgid "_Go to Next Flagged Thread" msgstr "_Go ke Thread Ditandai Berikutnya" #: pan/gui/actions.cc:607 pan/gui/actions.cc:608 #, fuzzy msgid "_Go to Last Flagged Thread" msgstr "_Go untuk Terakhir Ditandai Thread" #: pan/gui/actions.cc:612 pan/gui/actions.cc:613 #, fuzzy msgid "_Invert Selection" msgstr "Bal_ik Seleksi" #: pan/gui/actions.cc:617 #, fuzzy msgid "Edit Article’s Watch/Ignore/Score…" msgstr "Edit Artikel Watch / Abaikan / Skor ..." #: pan/gui/actions.cc:622 #, fuzzy msgid "Add a _Scoring Rule…" msgstr "Tambahkan _Scoring Aturan..." #: pan/gui/actions.cc:627 #, fuzzy msgid "Cance_l Article…" msgstr "Cance_l Pasal..." #: pan/gui/actions.cc:632 #, fuzzy msgid "_Supersede Article…" msgstr "_Supersede Pasal..." #: pan/gui/actions.cc:637 #, fuzzy msgid "_Delete Article" msgstr "_Delete Pasal" #: pan/gui/actions.cc:642 #, fuzzy msgid "Clear Article Cache" msgstr "Hapus Cache Artikel" #: pan/gui/actions.cc:647 #, fuzzy msgid "_Mark Article as Read" msgstr "_Mark Pasal sebagai Telah Dibaca" #: pan/gui/actions.cc:652 #, fuzzy msgid "Mark Article as _Unread" msgstr "Tandai Pasal sebagai _Unread" #: pan/gui/actions.cc:658 #, fuzzy msgid "_Mark Thread as Read" msgstr "_Mark Thread sebagai Telah Dibaca" #: pan/gui/actions.cc:663 #, fuzzy msgid "Mark Thread as _Unread" msgstr "Tandai Thread sebagai _Unread" #: pan/gui/actions.cc:668 #, fuzzy msgid "_Post to Newsgroup" msgstr "_Post ke Newsgroup" #: pan/gui/actions.cc:669 #, fuzzy msgid "Post to Newsgroup" msgstr "Posting ke Newsgroup" #: pan/gui/actions.cc:673 #, fuzzy msgid "_Followup to Newsgroup" msgstr "_Followup ke Newsgroup" #: pan/gui/actions.cc:674 #, fuzzy msgid "Followup to Newsgroup" msgstr "Tindak lanjut newsgroup" #: pan/gui/actions.cc:678 #, fuzzy msgid "_Reply to Author in Mail" msgstr "_Reply ke Penulis di Mail" #: pan/gui/actions.cc:684 #, fuzzy msgid "_Contents" msgstr "_Isi" #: pan/gui/actions.cc:690 #, fuzzy msgid "_Pan Home Page" msgstr "_Pan Halaman Utama" #: pan/gui/actions.cc:695 #, fuzzy msgid "Give _Feedback or Report a Bug…" msgstr "Berikan _Feedback atau Laporkan Bug ..." #: pan/gui/actions.cc:700 #, fuzzy msgid "_Tip Jar…" msgstr "_Tip Jar..." #: pan/gui/actions.cc:705 #, fuzzy msgid "_About" msgstr "Tent_ang" #: pan/gui/actions.cc:710 #, fuzzy msgid "Edit _SSL Certificates" msgstr "Mengedit _SSL Sertifikat" #: pan/gui/actions.cc:725 #, fuzzy msgid "_Thread Headers" msgstr "_Thread Header" #: pan/gui/actions.cc:726 #, fuzzy msgid "Wrap Article Body" msgstr "Wrap Pasal Tubuh" #: pan/gui/actions.cc:727 #, fuzzy msgid "Show Article Signature" msgstr "Tampilkan Pasal Signature" #: pan/gui/actions.cc:728 #, fuzzy msgid "Mute _Quoted Text" msgstr "Membisukan _Quoted Teks" #: pan/gui/actions.cc:729 #, fuzzy msgid "Show All _Headers in Body Pane" msgstr "Tampilkan semua _Headers di Panel Badan" #: pan/gui/actions.cc:730 #, fuzzy msgid "Show _Smilies as Graphics" msgstr "Tampilkan _Smilies sebagai Grafis" #: pan/gui/actions.cc:731 #, fuzzy msgid "Show *Bold*, __Underlined__, and /Italic/" msgstr "Tampilkan *Tebal*, __Underlined__, dan /Miring/" #: pan/gui/actions.cc:732 #, fuzzy msgid "Size Pictures to _Fit" msgstr "Ukuran Gambar untuk _Fit" #: pan/gui/actions.cc:733 #, fuzzy msgid "Use _Monospace Font" msgstr "Menggunakan _Monospace Font" #: pan/gui/actions.cc:734 #, fuzzy msgid "Set Focus to Images" msgstr "Atur Fokus ke Gambar" #: pan/gui/actions.cc:735 #, fuzzy msgid "Highlight _URLs" msgstr "Sorot _URLs" #: pan/gui/actions.cc:738 #, fuzzy msgid "_Work Online" msgstr "Bekerja _Daring" #: pan/gui/actions.cc:739 #, fuzzy msgid "_Tabbed Layout" msgstr "_Tabbed Letak" #: pan/gui/actions.cc:740 #, fuzzy msgid "Show Group _Pane" msgstr "Tampilkan Grup _Pane" #: pan/gui/actions.cc:741 #, fuzzy msgid "Show Hea_der Pane" msgstr "Tampilkan Hea_der Pane" #: pan/gui/actions.cc:742 #, fuzzy msgid "Show Bod_y Pane" msgstr "Tampilkan Bod_y Pane" #: pan/gui/actions.cc:743 #, fuzzy msgid "Show _Toolbar" msgstr "Tampilkan bilah alat" #: pan/gui/actions.cc:744 #, fuzzy msgid "Abbreviate Group Names" msgstr "Disingkat Nama Grup" #: pan/gui/actions.cc:746 #, fuzzy msgid "Match Only _Read Articles" msgstr "Cocokkan Hanya _Read Artikel" #: pan/gui/actions.cc:746 #, fuzzy msgid "Match Only Read Articles" msgstr "Cocokkan Hanya Baca Artikel" #: pan/gui/actions.cc:747 #, fuzzy msgid "Match Only _Unread Articles" msgstr "Cocokkan Hanya _Unread Artikel" #: pan/gui/actions.cc:747 #, fuzzy msgid "Match Only Unread Articles" msgstr "Cocokkan Hanya Artikel yang Belum Dibaca" #: pan/gui/actions.cc:748 #, fuzzy msgid "Match Only _Cached Articles" msgstr "Cocokkan Hanya _Cached Artikel" #: pan/gui/actions.cc:748 #, fuzzy msgid "Match Only Cached Articles" msgstr "Cocokkan Hanya Cached Artikel" #: pan/gui/actions.cc:749 #, fuzzy msgid "Match Only _Complete Articles" msgstr "Cocokkan Hanya _Complete Artikel" #: pan/gui/actions.cc:749 #, fuzzy msgid "Match Only Complete Articles" msgstr "Cocokkan Hanya Artikel Lengkap" #: pan/gui/actions.cc:750 #, fuzzy msgid "Match Only _My Articles" msgstr "Cocokkan Hanya _My Artikel" #: pan/gui/actions.cc:750 #, fuzzy msgid "Match Only My Articles" msgstr "Cocokkan Hanya Artikel Saya" #: pan/gui/actions.cc:751 #, fuzzy msgid "Match Only _Watched Articles" msgstr "Cocokkan Hanya _Watched Artikel" #: pan/gui/actions.cc:751 #, fuzzy msgid "Match Only Watched Articles" msgstr "Cocokkan Hanya Artikel Yang Ditonton" #: pan/gui/actions.cc:753 #, fuzzy msgid "Match Scores of 9999 (_Watched)" msgstr "Skor Pertandingan 9999 (_Watched)" #: pan/gui/actions.cc:754 #, fuzzy msgid "Match Scores of 5000…9998 (_High)" msgstr "Skor Pertandingan 5000... 9998 (_High)" #: pan/gui/actions.cc:755 #, fuzzy msgid "Match Scores of 1…4999 (Me_dium)" msgstr "Skor Pertandingan 1... 4999 (Me_dium)" #: pan/gui/actions.cc:756 #, fuzzy msgid "Match Scores of 0 (_Normal)" msgstr "Skor Pertandingan 0 (_Normal)" #: pan/gui/actions.cc:757 #, fuzzy msgid "Match Scores of -9998…-1 (_Low)" msgstr "Skor Pertandingan -9998...-1 (_Low)" #: pan/gui/actions.cc:758 #, fuzzy msgid "Match Scores of -9999 (_Ignored)" msgstr "Skor Pertandingan -9999 (_Ignored)" #: pan/gui/actions.cc:760 #, fuzzy msgid "Enable/Disable All _Rules" msgstr "Aktifkan/Nonaktifkan Semua _Rules" #: pan/gui/actions.cc:788 #, fuzzy msgid "Show Matching _Articles" msgstr "Tampilkan Pencocokan _Articles" #: pan/gui/actions.cc:789 #, fuzzy msgid "Show Matching Articles’ _Threads" msgstr "Tampilkan Pencocokan Artikel '_Threads" #: pan/gui/actions.cc:790 #, fuzzy msgid "Show Matching Articles’ _Subthreads" msgstr "Tampilkan Pencocokan Artikel '_Subthreads" #: pan/gui/body-pane.cc:1056 #, fuzzy msgid "Unnamed File" msgstr "File Tanpa Nama" #: pan/gui/body-pane.cc:1137 pan/gui/gui.cc:2009 pan/gui/header-pane.cc:1314 #: pan/gui/header-pane.cc:1754 pan/gui/post-ui.cc:2752 pan/gui/prefs-ui.cc:855 #: pan/gui/score-add-ui.cc:139 pan/gui/task-pane.cc:797 #, fuzzy msgid "Subject" msgstr "Perihal" #: pan/gui/body-pane.cc:1139 pan/gui/gui.cc:2009 #, fuzzy msgid "From" msgstr "Dari" #: pan/gui/body-pane.cc:1141 pan/gui/gui.cc:2010 pan/gui/header-pane.cc:1833 #: pan/gui/log-ui.cc:307 pan/gui/prefs-ui.cc:851 #, fuzzy msgid "Date" msgstr "Tanggal" #: pan/gui/body-pane.cc:1148 #, fuzzy msgid "Newsgroups" msgstr "Newsgroups" #: pan/gui/body-pane.cc:1155 pan/gui/body-pane.cc:1163 #: pan/gui/body-pane.cc:1170 #, fuzzy msgid "User-Agent" msgstr "User agent" #: pan/gui/body-pane.cc:1176 #, fuzzy msgid "Followup-To" msgstr "Tindak lanjut" #: pan/gui/body-pane.cc:1186 #, fuzzy msgid "Reply-To" msgstr "Balas-Ke" #: pan/gui/body-pane.cc:1238 #, fuzzy msgid " from " msgstr " dari " #: pan/gui/body-pane.cc:1240 #, fuzzy msgid " at " msgstr "Di" #: pan/gui/body-pane.cc:1333 #, fuzzy, c-format msgid "" "This is a PGP-Signed message.\n" "\n" "Signer: %s (“%s”)\n" "Valid until: %s\n" "Created on: %s" msgstr "" "Ini adalah pesan PGP-Signed. Penanda: %s (\"%s\")\n" "Berlaku hingga: %s\n" "Dibuat pada: %s" #: pan/gui/body-pane.cc:1338 #, fuzzy msgid "always" msgstr "selalu" #: pan/gui/body-pane.cc:1558 #, fuzzy msgid "Copy _URL" msgstr "_Salin URL" #: pan/gui/body-pane.cc:1768 #, fuzzy msgid "Save Attachment As…" msgstr "_Simpan Lampiran Sebagai…" #: pan/gui/body-pane.cc:1771 #, fuzzy msgid "Save All Attachments" msgstr "Simpan Semua Lampiran" #: pan/gui/body-pane.cc:1846 #, fuzzy msgid "Attachments:" msgstr "L_ampiran" #: pan/gui/body-pane.cc:1874 #, fuzzy msgid "Text View" msgstr "Tampilan teks" #: pan/gui/body-pane.cc:1883 #, fuzzy msgid "HTML View" msgstr "Tampilan HTML" #: pan/gui/dl-headers-ui.cc:112 #, fuzzy, c-format msgid "%d Group" msgid_plural "%d Groups" msgstr[0] "%d Grup" msgstr[1] "" #: pan/gui/dl-headers-ui.cc:135 #, fuzzy msgid "Get the last N _days’ headers: " msgstr "Dapatkan header N _days terakhir:" #: pan/gui/dl-headers-ui.cc:143 #, fuzzy msgid "Get _new headers" msgstr "Dapatkan _new header" #: pan/gui/dl-headers-ui.cc:147 #, fuzzy msgid "Get _all headers" msgstr "Dapatkan _all header" #: pan/gui/dl-headers-ui.cc:151 #, fuzzy msgid "Get the _latest N headers: " msgstr "Dapatkan _latest header N:" #: pan/gui/e-action-combo-box.c:386 pan/gui/prefs-ui.cc:848 #, fuzzy msgid "Action" msgstr "Aksi" #: pan/gui/e-action-combo-box.c:387 #, fuzzy msgid "A GtkRadioAction" msgstr "Sebuah GtkRadioAction" #: pan/gui/e-charset.c:51 pan/gui/task-pane.cc:558 #, fuzzy msgid "Unknown" msgstr "Tak Diketahui" #: pan/gui/e-charset.c:52 #, fuzzy msgid "Arabic" msgstr "Arab" #: pan/gui/e-charset.c:53 #, fuzzy msgid "Baltic" msgstr "Baltik" #: pan/gui/e-charset.c:54 #, fuzzy msgid "Central European" msgstr "Eropa Tengah" #: pan/gui/e-charset.c:55 #, fuzzy msgid "Chinese" msgstr "Bahasa Mandarin" #: pan/gui/e-charset.c:56 #, fuzzy msgid "Cyrillic" msgstr "Sirilik" #: pan/gui/e-charset.c:57 #, fuzzy msgid "Greek" msgstr "Yunani" #: pan/gui/e-charset.c:58 #, fuzzy msgid "Hebrew" msgstr "Ibrani" #: pan/gui/e-charset.c:59 #, fuzzy msgid "Japanese" msgstr "Jepang" #: pan/gui/e-charset.c:60 #, fuzzy msgid "Korean" msgstr "Korea" #: pan/gui/e-charset.c:61 #, fuzzy msgid "Thai" msgstr "Thailand" #: pan/gui/e-charset.c:62 #, fuzzy msgid "Turkish" msgstr "Turki" #: pan/gui/e-charset.c:63 #, fuzzy msgid "Unicode" msgstr "Unikode" #: pan/gui/e-charset.c:64 #, fuzzy msgid "Western European" msgstr "Eropa Barat" #: pan/gui/e-charset.c:65 #, fuzzy msgid "Western European, New" msgstr "Eropa Barat, Gaya Baru" #: pan/gui/e-charset.c:84 pan/gui/e-charset.c:85 pan/gui/e-charset.c:86 #, fuzzy msgid "Traditional" msgstr "Tradisional" #: pan/gui/e-charset.c:87 pan/gui/e-charset.c:88 pan/gui/e-charset.c:89 #: pan/gui/e-charset.c:90 #, fuzzy msgid "Simplified" msgstr "Sederhana" #: pan/gui/e-charset.c:93 #, fuzzy msgid "Ukrainian" msgstr "Ukrania" #: pan/gui/e-charset.c:96 #, fuzzy msgid "Visual" msgstr "Visual" #: pan/gui/e-charset-combo-box.c:93 pan/gui/gui.cc:2207 pan/gui/post-ui.cc:554 #: pan/gui/prefs-ui.cc:759 #, fuzzy msgid "Character Encoding" msgstr "Enkode Karakter" #: pan/gui/e-charset-combo-box.c:117 #, fuzzy msgid "Enter the character set to use" msgstr "Masukkan karakter yang hendak digunakan" #: pan/gui/e-charset-combo-box.c:336 #, fuzzy msgid "Other…" msgstr "Lainnya…" #: pan/gui/e-cte-dialog.c:76 #, fuzzy msgid "Default Encoding" msgstr "Pengkodean bawaan" #: pan/gui/e-cte-dialog.c:78 #, fuzzy msgid "7-Bit Encoding" msgstr "Pengkodean 7-Bit" #: pan/gui/e-cte-dialog.c:80 #, fuzzy msgid "8-Bit Encoding" msgstr "Pengkodean 8-Bit" #: pan/gui/e-cte-dialog.c:82 #, fuzzy msgid "Base64 Encoding" msgstr "kunci '%s.%s' bukan kunci 256 bit dalam pengkodean base64 yang valid" #: pan/gui/e-cte-dialog.c:84 #, fuzzy msgid "Quoted-Printable Encoding" msgstr "Pengkodean yang Dapat Dicetak dengan Terkutip" #: pan/gui/group-pane.cc:330 #, fuzzy msgid "Sent" msgstr "Terkirim" #: pan/gui/group-pane.cc:331 #, fuzzy msgid "Drafts" msgstr "Rancangan" #: pan/gui/group-pane.cc:537 #, fuzzy msgid "Group" msgstr "Grup" #: pan/gui/group-pane.cc:538 #, fuzzy msgid "Group (regex)" msgstr "Grup (regex)" #: pan/gui/group-pane.cc:1016 #, fuzzy msgid "Local Folders" msgstr "Folder Lokal" #: pan/gui/group-pane.cc:1017 #, fuzzy msgid "Subscribed Groups" msgstr "Grup Berlangganan" #: pan/gui/group-pane.cc:1018 #, fuzzy msgid "Other Groups" msgstr "Grup Lain" #: pan/gui/group-pane.cc:1058 pan/gui/score-view-ui.cc:157 #, fuzzy msgid "Name" msgstr "Nama" #: pan/gui/group-prefs-dialog.cc:162 #, fuzzy msgid "No Profiles defined in Edit → Posting Profiles." msgstr "Tidak ada Profil yang didefinisikan dalam Edit → Posting Profil." #: pan/gui/group-prefs-dialog.cc:273 #, fuzzy msgid "Pan: Group Preferences" msgstr "Pan: Preferensi Grup" #: pan/gui/group-prefs-dialog.cc:288 #, fuzzy msgid "Properties for Groups" msgstr "Properti untuk Grup" #: pan/gui/group-prefs-dialog.cc:290 #, fuzzy, c-format msgid "Properties for %s" msgstr "Properti untuk %s" #: pan/gui/group-prefs-dialog.cc:298 #, fuzzy msgid "Character _encoding:" msgstr "P_engkodean karakter:" #: pan/gui/group-prefs-dialog.cc:300 #, fuzzy msgid "Directory for Saving Attachments" msgstr "Direktori untuk Menyimpan Lampiran" #: pan/gui/group-prefs-dialog.cc:308 #, fuzzy msgid "Directory for _saving attachments:" msgstr "Direktori untuk _saving lampiran:" #: pan/gui/group-prefs-dialog.cc:310 #, fuzzy msgid "Posting _profile:" msgstr "Posting _profile:" #: pan/gui/group-prefs-dialog.cc:315 #, fuzzy msgid "Spellchecker _language:" msgstr "Pemeriksa ejaan _language:" #: pan/gui/group-prefs-dialog.cc:318 #, fuzzy msgid "Group color:" msgstr "Warna grup:" #: pan/gui/gui.cc:312 #, fuzzy msgid "Open the Task Manager" msgstr "Buka Pengelola Tugas" #: pan/gui/gui.cc:335 #, fuzzy msgid "Open the Event Log" msgstr "Buka Log Peristiwa" #: pan/gui/gui.cc:611 #, fuzzy msgid "Save NZB’s Files" msgstr "Simpan File NZB" #: pan/gui/gui.cc:638 #, fuzzy msgid "Untitled.nzb" msgstr "Untitled.nzb (bahasa Indonesia)" #: pan/gui/gui.cc:640 #, fuzzy msgid "Save NZB File as…" msgstr "Simpan File NZB sebagai..." #: pan/gui/gui.cc:813 #, fuzzy msgid "Import NZB Files" msgstr "Impor File NZB" #: pan/gui/gui.cc:821 pan/gui/post-ui.cc:3455 #, fuzzy msgid "NZB Files" msgstr "Nzb File" #: pan/gui/gui.cc:826 #, fuzzy msgid "All Files" msgstr "Semua Berkas" #: pan/gui/gui.cc:1344 #, fuzzy msgid "Unable to supersede article." msgstr "Tidak dapat menggantikan artikel." #: pan/gui/gui.cc:1345 pan/gui/gui.cc:1441 #, fuzzy msgid "The article doesn’t match any of your posting profiles." msgstr "Artikel ini tidak cocok dengan profil posting Anda." #: pan/gui/gui.cc:1410 #, fuzzy msgid "Revise and send this article to replace the old one." msgstr "Merevisi dan mengirim artikel ini untuk menggantikan yang lama." #: pan/gui/gui.cc:1411 pan/gui/gui.cc:1491 #, fuzzy msgid "Be patient! It will take time for your changes to take effect." msgstr "Bersabarlah! Ini akan memakan waktu untuk perubahan Anda berlaku." #: pan/gui/gui.cc:1440 #, fuzzy msgid "Unable to cancel article." msgstr "Tidak dapat membatalkan artikel." #: pan/gui/gui.cc:1490 #, fuzzy msgid "Send this article to ask your server to cancel your other one." msgstr "" "Kirim artikel ini untuk meminta server Anda untuk membatalkan yang lain." #: pan/gui/gui.cc:1508 #, fuzzy msgid "You have marked some articles for deletion." msgstr "Anda telah menandai beberapa artikel untuk dihapus." #: pan/gui/gui.cc:1509 #, fuzzy msgid "Are you sure you want to delete them?" msgstr "Anda yakin ingin menghapusnya?" #: pan/gui/gui.cc:1535 #, fuzzy msgid "Do you want to accept it permanently? (You can change this later.)" msgstr "" "Apakah Anda ingin menerimanya secara permanen? (Anda dapat mengubah ini " "nanti.)" #: pan/gui/gui.cc:1689 #, fuzzy msgid "Unable to open help file." msgstr "Tidak dapat membuka berkas bantuan." #: pan/gui/gui.cc:1721 #, fuzzy msgid "Copyright © 2002-2017 Charles Kerr and others" msgstr "Hak © 2002-2017 Charles Kerr dan lain-lain" #: pan/gui/gui.cc:1726 #, fuzzy msgid "translator-credits" msgstr "Andika Triwidada , 2012, 2014" #: pan/gui/gui.cc:1854 #, fuzzy msgid "_1. Group Pane" msgstr "_1. Panel Grup" #: pan/gui/gui.cc:1855 #, fuzzy msgid "_2. Header Pane" msgstr "_2. Panel Header" #: pan/gui/gui.cc:1856 #, fuzzy msgid "_3. Body Pane" msgstr "_3. Panel Badan" #: pan/gui/gui.cc:1946 pan/gui/gui.cc:1961 #, fuzzy msgid " Bytes" msgstr "Byte" #: pan/gui/gui.cc:1949 #, fuzzy msgid " KB" msgstr " KB" #: pan/gui/gui.cc:1952 #, fuzzy msgid " MB" msgstr " MB" #: pan/gui/gui.cc:1955 #, fuzzy msgid " GB" msgstr "GB" #: pan/gui/gui.cc:1958 #, fuzzy msgid " TB" msgstr "TB" #: pan/gui/gui.cc:1990 #, fuzzy, c-format msgid "This article is complete with %d part." msgid_plural "This article has all %d parts." msgstr[0] "Artikel ini lengkap dengan %d bagian." msgstr[1] "" #: pan/gui/gui.cc:1992 #, fuzzy, c-format msgid "This article is missing %d part." msgid_plural "This article is missing %d of its %d parts:" msgstr[0] "Artikel ini hilang %d bagian." msgstr[1] "" #: pan/gui/gui.cc:2010 pan/gui/header-pane.cc:1316 pan/gui/task-pane.cc:799 #, fuzzy msgid "Message-ID" msgstr "Message-ID: %s\n" #: pan/gui/gui.cc:2011 pan/gui/header-pane.cc:1802 pan/gui/prefs-ui.cc:852 #, fuzzy msgid "Lines" msgstr "Baris" #: pan/gui/gui.cc:2011 #, fuzzy msgid "Size" msgstr "Ukuran" #: pan/gui/gui.cc:2012 pan/gui/header-pane.cc:1818 pan/gui/prefs-ui.cc:850 #, fuzzy msgid "Bytes" msgstr "Byte" #: pan/gui/gui.cc:2062 #, fuzzy msgid "" "Error loading iconv library. Encoding certain character sets will not work " "in GUI." msgstr "" "Galat saat memuat pustaka iconv. Pengkodean set karakter tertentu tidak akan " "bekerja di GUI." #: pan/gui/gui.cc:2208 #, fuzzy msgid "Body Pane Encoding" msgstr "Pengkodean Panel Bodi" #: pan/gui/gui.cc:2239 pan/gui/task-pane.cc:609 #, fuzzy msgid "Offline" msgstr "Luring" #: pan/gui/gui.cc:2243 #, fuzzy, c-format msgid "Closing %d connection" msgid_plural "Closing %d connections" msgstr[0] "Menutup koneksi %d" msgstr[1] "" #: pan/gui/gui.cc:2245 pan/gui/gui.cc:2275 #, fuzzy msgid "No Connections" msgstr "Koneksi" #: pan/gui/gui.cc:2249 #, fuzzy msgid "Connecting" msgstr "Menyambung" #: pan/gui/gui.cc:2262 #, fuzzy, c-format msgid "%s: %d idle, %d active @ %.1f KiBps" msgstr "%s: %d siaga, %d aktif @ %.1f KiBps" #: pan/gui/gui.cc:2318 #, fuzzy msgid "No Tasks" msgstr "Tidak ada tugas" #: pan/gui/gui.cc:2320 pan/gui/prefs-ui.cc:1090 #, fuzzy msgid "Tasks" msgstr "Tugas" #: pan/gui/gui.cc:2337 pan/gui/task-pane.cc:475 #, fuzzy, c-format msgid "%lu tasks, %s, %.1f KiBps, ETA %d∶%02d∶%02d" msgstr "%lu tugas, %s, %.1f KiBps, ETA %d∶%02d∶%02d" #: pan/gui/gui.cc:2389 #, fuzzy msgid "" "Pan is now offline. Please see “File → Event Log” and correct the problem, " "then use “File → Work Online” to continue." msgstr "" "Pan sekarang offline. Silakan lihat \"File → Event Log\" dan perbaiki " "masalahnya, lalu gunakan \"File → Work Online\" untuk melanjutkan." #: pan/gui/header-pane.cc:1312 pan/gui/task-pane.cc:795 #, fuzzy msgid "Subject or Author" msgstr "Subjek atau Penulis" #: pan/gui/header-pane.cc:1313 pan/gui/task-pane.cc:796 #, fuzzy msgid "Sub or Auth (regex)" msgstr "Sub atau Auth (regex)" #: pan/gui/header-pane.cc:1315 pan/gui/header-pane.cc:1786 #: pan/gui/prefs-ui.cc:849 pan/gui/score-add-ui.cc:140 pan/gui/task-pane.cc:798 #, fuzzy msgid "Author" msgstr "Penulis" #: pan/gui/header-pane.cc:1771 pan/gui/prefs-ui.cc:853 #, fuzzy msgid "Score" msgstr "Nilai" #: pan/gui/log-ui.cc:104 #, fuzzy msgid "Save Event List" msgstr "Simpan Daftar Acara" #: pan/gui/log-ui.cc:258 #, fuzzy msgid "Pan: Events" msgstr "Pan: Acara" #: pan/gui/log-ui.cc:317 #, fuzzy msgid "Message" msgstr "Pesan" #: pan/gui/pan.cc:368 #, fuzzy msgid "Maximize" msgstr "Maksimalkan" #: pan/gui/pan.cc:421 #, fuzzy msgid "An error has occurred!" msgstr "Terjadi suatu kesalahan" #: pan/gui/pan.cc:435 #, fuzzy msgid "New Articles!" msgstr "Artikel Baru!" #: pan/gui/pan.cc:436 #, fuzzy msgid "" "There are new\n" "articles available." msgstr "" "Ada yang baru\n" "artikel yang tersedia." #: pan/gui/pan.cc:503 #, fuzzy msgid "Toggle on/offline" msgstr "Mengaktifkan/offline" #: pan/gui/pan.cc:551 #, fuzzy msgid "" "Thank you for trying Pan!\n" " \n" "To start newsreading, first Add a Server." msgstr "" "Terima kasih telah mencoba Pan!\n" " \n" "Untuk memulai pembacaan berita, pertama Tambahkan Server." #: pan/gui/pan.cc:633 #, fuzzy msgid "" "General Options\n" " -h, --help Show this usage information and exit.\n" " -v, --version Print release version and exit.\n" " --verbose Be verbose (in non-GUI mode).\n" " --debug Run in debug mode.\n" "\n" "URL Options\n" " headers:group.name Download new headers for the specified " "newsgroup.\n" " news:message-id When specified together with --no-gui, dump\n" " the message-id article to standard output.\n" "\n" "NZB Batch Options\n" " --nzb file1 file2 … Process NZB files in non-GUI mode.\n" " -o path, --output=path Path to save attachments listed in the NZB " "file(s).\n" " --no-gui Only show console output, not the download " "queue.\n" msgstr "" "Opsi Umum\n" " -h, --help Tampilkan informasi penggunaan ini dan keluar.\n" " -v, --version Versi rilis cetak dan keluar.\n" " --verbose Jadilah verbose (dalam mode non-GUI).\n" " --debug Jalankan dalam mode debug.\n" "\n" "Opsi URL\n" " headers:group.name Unduh header baru untuk newsgroup yang ditentukan.\n" " news:message-id Bila ditentukan bersama dengan --no-gui, dump\n" " artikel id-pesan untuk output standar.\n" "\n" "Opsi Batch NZB\n" " --nzb file1 file2 ... Proses nzb file dalam mode non-GUI.\n" " -o path, --output=path Path untuk menyimpan lampiran yang tercantum dalam " "file NZB.\n" " --no-gui Hanya menampilkan output konsol, bukan antrian unduhan." #: pan/gui/pan.cc:979 #, fuzzy msgid "Error: --no-gui used without nzb files or news:message-id." msgstr "Galat: --no-gui digunakan tanpa file nzb atau news:message-id." #: pan/gui/pan.cc:983 #, fuzzy, c-format msgid "Pan %s started" msgstr "Pan %s dimulai" #: pan/gui/pan.cc:1003 #, fuzzy msgid "Please configure Pan’s news servers before using it as an nzb client." msgstr "" "Konfigurasikan server berita Pan sebelum menggunakannya sebagai klien nzb." #: pan/gui/pan.cc:1121 #, fuzzy msgid "Pan notification" msgstr "Pemberitahuan pan" #: pan/gui/post-ui.cc:169 #, fuzzy, c-format msgid "Upload queue: %lu tasks, %ld KB (~ %.2f MB) total." msgstr "Unggah antrian: %lu tugas, %ld KB (~ %.2f MB) total." #: pan/gui/post-ui.cc:272 pan/gui/post-ui.cc:303 #, fuzzy, c-format msgid "Error setting custom spellchecker: %s" msgstr "Galat saat mengatur pemeriksa ejaan kustom: %s" #: pan/gui/post-ui.cc:276 pan/gui/post-ui.cc:284 pan/gui/post-ui.cc:307 #: pan/gui/post-ui.cc:315 #, fuzzy, c-format msgid "Error setting spellchecker: %s" msgstr "Galat saat mengatur pemeriksa ejaan: %s" #: pan/gui/post-ui.cc:454 #, fuzzy msgid "_Profile" msgstr "Profil:" #: pan/gui/post-ui.cc:455 #, fuzzy msgid "Set Editor" msgstr "Atur Editor" #: pan/gui/post-ui.cc:457 #, fuzzy msgid "_Send Article" msgstr "_Send Pasal" #: pan/gui/post-ui.cc:457 #, fuzzy msgid "Send Article Now" msgstr "Kirim Artikel Sekarang" #: pan/gui/post-ui.cc:458 #, fuzzy msgid "_Send and Save Articles to NZB" msgstr "_Send dan Simpan Artikel ke NZB" #: pan/gui/post-ui.cc:458 #, fuzzy msgid "Send and Save Articles to NZB" msgstr "Kirim dan Simpan Artikel ke NZB" #: pan/gui/post-ui.cc:459 #, fuzzy msgid "Set Character _Encoding…" msgstr "Atur _Enkoding Karakter" #: pan/gui/post-ui.cc:460 #, fuzzy msgid "Set Content _Transfer Encoding…" msgstr "Atur Konten _Transfer Encoding..." #: pan/gui/post-ui.cc:461 #, fuzzy msgid "Sa_ve Draft" msgstr "Sa_ve Draft" #: pan/gui/post-ui.cc:461 #, fuzzy msgid "Save as a Draft for Future Posting" msgstr "Simpan sebagai Draf untuk Posting Mendatang" #: pan/gui/post-ui.cc:462 #, fuzzy msgid "_Open Draft…" msgstr "_Open Draft..." #: pan/gui/post-ui.cc:462 #, fuzzy msgid "Open an Article Draft" msgstr "Membuka Draf Artikel" #: pan/gui/post-ui.cc:467 #, fuzzy msgid "_Rot13" msgstr "_Rot13" #: pan/gui/post-ui.cc:467 #, fuzzy msgid "Rot13 Selected Text" msgstr "Rot13 Teks yang Dipilih" #: pan/gui/post-ui.cc:468 #, fuzzy msgid "Run _Editor" msgstr "Jalankan Editor" #: pan/gui/post-ui.cc:468 #, fuzzy msgid "Run Editor" msgstr "Jalankan Editor" #: pan/gui/post-ui.cc:470 #, fuzzy msgid "Add _Files to Queue" msgstr "Menambahkan _Files ke Antrian" #: pan/gui/post-ui.cc:470 #, fuzzy msgid "Add Files to Queue" msgstr "Menambahkan File ke Antrean" #: pan/gui/post-ui.cc:485 pan/gui/post-ui.cc:486 #, fuzzy msgid "Remove from Queue" msgstr "Hapus dari Antrean" #: pan/gui/post-ui.cc:490 pan/gui/post-ui.cc:491 #, fuzzy msgid "Clear List" msgstr "Bersihkan daftar" #: pan/gui/post-ui.cc:495 pan/gui/post-ui.cc:496 #, fuzzy msgid "Select Needed Parts" msgstr "Pilih Komponen yang Diperlukan" #: pan/gui/post-ui.cc:500 pan/gui/post-ui.cc:501 pan/gui/task-pane.cc:677 #: pan/gui/task-pane.cc:678 #, fuzzy msgid "Move Up" msgstr "Naik" #: pan/gui/post-ui.cc:505 pan/gui/post-ui.cc:506 pan/gui/task-pane.cc:682 #: pan/gui/task-pane.cc:683 #, fuzzy msgid "Move Down" msgstr "Turun" #: pan/gui/post-ui.cc:510 pan/gui/post-ui.cc:511 #, fuzzy msgid "Move to Top" msgstr "Pindahkan ke Atas" #: pan/gui/post-ui.cc:515 pan/gui/post-ui.cc:516 #, fuzzy msgid "Move to Bottom" msgstr "Pindahkan ke _dasar" #: pan/gui/post-ui.cc:523 #, fuzzy msgid "_Wrap Text" msgstr "_Lipat Teks" #: pan/gui/post-ui.cc:523 #, fuzzy msgid "Wrap Text" msgstr "Lipat Teks" #: pan/gui/post-ui.cc:524 #, fuzzy msgid "Always Run Editor" msgstr "Selalu Jalankan Editor" #: pan/gui/post-ui.cc:525 #, fuzzy msgid "Remember Character Encoding for This Group" msgstr "Ingat Pengkodean Karakter untuk Grup Ini" #: pan/gui/post-ui.cc:526 #, fuzzy msgid "Thread Attached Replies" msgstr "Thread Terlampir Balasan" #: pan/gui/post-ui.cc:527 #, fuzzy msgid "PGP-Encrypt the Article" msgstr "PGP-Mengenkripsi Artikel" #: pan/gui/post-ui.cc:528 #, fuzzy msgid "PGP-Sign the Article" msgstr "PGP-Tanda Tangani Artikel" #: pan/gui/post-ui.cc:529 #, fuzzy msgid "Check _Spelling" msgstr "Periksa ejaan" #: pan/gui/post-ui.cc:555 #, fuzzy msgid "New Article’s Encoding:" msgstr "Pengkodean Artikel Baru:" #: pan/gui/post-ui.cc:565 #, fuzzy msgid "Content Transfer Encoding" msgstr "Pengkodean Transfer Konten" #: pan/gui/post-ui.cc:566 #, fuzzy msgid "New Article’s Content Transfer Encoding:" msgstr "Pengkodean Transfer Konten Artikel Baru:" #: pan/gui/post-ui.cc:746 #, fuzzy msgid "Your changes will be lost!" msgstr "Perubahan yang Anda buat akan hilang bila tidak Anda simpan." #: pan/gui/post-ui.cc:747 #, fuzzy msgid "Close this window and lose your changes?" msgstr "Tutup jendela ini dan kehilangan perubahan?" #: pan/gui/post-ui.cc:792 pan/gui/post-ui.cc:831 #, fuzzy msgid "There were problems with this post." msgstr "Ada masalah dengan posting ini." #: pan/gui/post-ui.cc:794 pan/gui/post-ui.cc:833 pan/gui/post-ui.cc:898 #, fuzzy msgid "Go Back" msgstr "Kembali" #: pan/gui/post-ui.cc:796 #, fuzzy msgid "Continue Anyway" msgstr "Lanjutkan Saja" #. Prompt the user #: pan/gui/post-ui.cc:825 #, fuzzy, c-format msgid "" "Message uses characters not specified in charset “%s” — possibly use “%s” " msgstr "" "Pesan menggunakan karakter yang tidak ditentukan dalam charset \"%s\" — " "mungkin gunakan \"%s\"" #: pan/gui/post-ui.cc:848 #, fuzzy msgid "Go _Online" msgstr "Pergi _Online" #: pan/gui/post-ui.cc:897 #, fuzzy msgid "The file queue is empty, so no files can be saved." msgstr "Antrian file kosong, sehingga tidak ada file yang dapat disimpan." #: pan/gui/post-ui.cc:1093 #, fuzzy msgid "IO Error" msgstr "Kesalahan IO" #: pan/gui/post-ui.cc:1093 #, fuzzy msgid "No space left on device" msgstr "Tidak ada ruang yang tersisa pada perangkat MTP" #: pan/gui/post-ui.cc:1094 #, fuzzy, c-format msgid "Error copying message to %s folder. Reason: %s" msgstr "Galat saat menyalin pesan ke folder %s. Alasan: %s" #: pan/gui/post-ui.cc:1100 #, fuzzy, c-format msgid "Error creating message in %s mail folder: Invalid article." msgstr "Galat saat membuat pesan di folder surat %s: Artikel tidak valid." #: pan/gui/post-ui.cc:1122 #, fuzzy msgid "" "No posting server is set for this posting profile.\n" "Please edit the profile via Edit → Manage Posting Profiles." msgstr "" "Tidak ada posting server diatur untuk profil posting ini.\n" "Silakan edit profil melalui Edit → Manage Posting Profiles." #: pan/gui/post-ui.cc:1127 #, fuzzy msgid "" "The selected posting server is currently disabled. Please choose an " "appropriate alternative." msgstr "" "Server posting yang dipilih saat ini dinonaktifkan. Silakan pilih alternatif " "yang sesuai." #: pan/gui/post-ui.cc:1169 #, fuzzy msgid "Pan is Offline." msgstr "Pan adalah Offline." #: pan/gui/post-ui.cc:1170 #, fuzzy msgid "Go online to post the article?" msgstr "Online untuk memposting artikel?" #: pan/gui/post-ui.cc:1219 #, fuzzy, c-format msgid "" "Error signing/encrypting your message. Perhaps you misspelled your email " "address (%s)?" msgstr "" "Galat saat menandatangani/mengenkripsi pesan Anda. Mungkin Anda salah " "mengeja alamat email Anda (%s)?" #: pan/gui/post-ui.cc:1367 #, fuzzy msgid "Error opening temporary file" msgstr "Galat saat membuka berkas sementara" #: pan/gui/post-ui.cc:1379 #, fuzzy, c-format msgid "Error writing article to temporary file: %s" msgstr "Galat saat menulis artikel ke berkas sementara: %s" #: pan/gui/post-ui.cc:1398 #, fuzzy, c-format msgid "Error parsing “external editor” command line: %s (Command was: %s)" msgstr "" "Galat saat mengurai baris perintah \"editor eksternal\": %s (Perintah " "adalah: %s)" #: pan/gui/post-ui.cc:1439 #, fuzzy, c-format msgid "Error starting external editor: %s" msgstr "Galat saat memulai editor eksternal: %s" #: pan/gui/post-ui.cc:1502 #, fuzzy msgid "Open Draft Article" msgstr "Artikel Draf Terbuka" #: pan/gui/post-ui.cc:1767 #, fuzzy msgid "Save Draft Article" msgstr "Simpan Draft Pasal" #: pan/gui/post-ui.cc:1804 #, fuzzy msgid "File already exists." msgstr "Berkas sudah ada" #: pan/gui/post-ui.cc:1805 #, fuzzy msgid "Overwrite it?" msgstr "_Timpa" #: pan/gui/post-ui.cc:2015 #, fuzzy, c-format msgid "Couldn’t parse signature command “%s”: %s" msgstr "Tidak dapat mengurai perintah tanda tangan \"%s\": %s" #: pan/gui/post-ui.cc:2051 #, fuzzy msgid "Couldn’t convert signature to UTF-8." msgstr "Tidak bisa mengkonversi tanda tangan ke UTF-8." #: pan/gui/post-ui.cc:2591 #, fuzzy msgid "F_rom" msgstr "Da_ri" #: pan/gui/post-ui.cc:2608 #, fuzzy msgid "_Subject" msgstr "_Perihal" #: pan/gui/post-ui.cc:2621 #, fuzzy msgid "_Newsgroups" msgstr "Newsgroups" #: pan/gui/post-ui.cc:2635 #, fuzzy msgid "Mail _To" msgstr "_Surat" #: pan/gui/post-ui.cc:2737 #, fuzzy msgid "Delete from Queue" msgstr "Hapus dari Antrean" #: pan/gui/post-ui.cc:2750 #, fuzzy msgid "No." msgstr "No." #: pan/gui/post-ui.cc:2754 pan/gui/post-ui.cc:2846 pan/gui/post-ui.cc:2887 #, fuzzy msgid "Filename" msgstr "Namaberkas" #: pan/gui/post-ui.cc:2756 #, fuzzy msgid "Size (KB)" msgstr "Ukuran (kB)" #: pan/gui/post-ui.cc:2854 #, fuzzy msgid "The current filename" msgstr "Nama file saat ini" #: pan/gui/post-ui.cc:2858 #, fuzzy msgid "Subject Line" msgstr "Baris Subjek" #: pan/gui/post-ui.cc:2866 #, fuzzy msgid "The current subject line" msgstr "Baris subjek saat ini" #: pan/gui/post-ui.cc:2880 #, fuzzy msgid "No. " msgstr "Tidak." #: pan/gui/post-ui.cc:2884 #, fuzzy msgid "Enable/Disable" msgstr "Aktifkan/Nonaktifkan" #: pan/gui/post-ui.cc:2918 #, fuzzy msgid "Follo_wup-To" msgstr "Follo_wup-Untuk" #. i18n: "poster" is a key used by many newsreaders. probably safest to keep this key in english. #: pan/gui/post-ui.cc:2927 #, fuzzy msgid "" "The newsgroups where replies to your message should go. This is only needed " "if it differs from the “Newsgroups” header.\n" "\n" "To direct all replies to your email address, use “Followup-To: poster”" msgstr "" "Newsgroup di mana balasan pesan Anda harus pergi. Ini hanya diperlukan jika " "berbeda dari header \"Newsgroups\".\n" "\n" "Untuk mengarahkan semua balasan ke alamat email Anda, gunakan poster " "\"Tindak Lanjut:Untuk:\"" #: pan/gui/post-ui.cc:2934 #, fuzzy msgid "_Reply-To" msgstr "Balas Ke:" #: pan/gui/post-ui.cc:2942 #, fuzzy msgid "" "The email account where mail replies to your posted message should go. This " "is only needed if it differs from the “From” header." msgstr "" "Akun email tempat email membalas pesan yang Anda kirim harus pergi. Ini " "hanya diperlukan jika berbeda dari header \"Dari\"." #: pan/gui/post-ui.cc:2949 #, fuzzy msgid "_Custom Headers" msgstr "Daftar Tajuk Ubahan" #: pan/gui/post-ui.cc:2973 #, fuzzy msgid "Add “_User-Agent” header" msgstr "Menambahkan header \"_User-Agent\"" #: pan/gui/post-ui.cc:2980 #, fuzzy msgid "Add “Message-_ID” header" msgstr "Menambahkan header \"Pesan-_ID\"" #: pan/gui/post-ui.cc:3111 #, fuzzy msgid "Select Parts" msgstr "Pilih Suku Cadang" #: pan/gui/post-ui.cc:3124 #, fuzzy msgid "_Parts" msgstr "paksa inline untuk semua bagian" #: pan/gui/post-ui.cc:3282 #, fuzzy msgid "Post Article" msgstr "Posting Pasal" #: pan/gui/post-ui.cc:3303 #, fuzzy msgid "_Message" msgstr "_Pesan" #: pan/gui/post-ui.cc:3304 #, fuzzy msgid "More _Headers" msgstr "Informasi _Headers" #: pan/gui/post-ui.cc:3305 #, fuzzy msgid "File _Queue" msgstr "Berkas _Queue" #: pan/gui/post-ui.cc:3337 pan/gui/profiles-dialog.cc:482 #, fuzzy, no-c-format msgid "On %d, %n wrote:" msgstr "Pada %d, %n menulis:" #: pan/gui/post-ui.cc:3366 #, fuzzy msgid "Add files to queue" msgstr "Menambahkan file ke antrean" #: pan/gui/post-ui.cc:3442 #, fuzzy msgid "Save Upload Queue as NZB File" msgstr "Simpan Antrean Unggah sebagai File NZB" #: pan/gui/prefs.cc:366 #, fuzzy, c-format msgid "Couldn’t parse %s color “%s”" msgstr "Tidak dapat mengurai warna %s \"%s\"" #: pan/gui/prefs-ui.cc:123 #, fuzzy msgid "Grab Key" msgstr "Ambil Kunci" #: pan/gui/prefs-ui.cc:129 #, fuzzy, c-format msgid "" "Press the combination of the keys\n" "you want to use for “%s”." msgstr "" "Tekan kombinasi tombol\n" "yang ingin Anda gunakan untuk \"%s\"." #: pan/gui/prefs-ui.cc:169 #, fuzzy msgid "Edit Shortcut" msgstr "Mengedit Pintasan" #: pan/gui/prefs-ui.cc:231 #, fuzzy msgid "Error: Shortcut key is invalid!" msgstr "Kesalahan: Tombol pintasan tidak valid!" #: pan/gui/prefs-ui.cc:247 #, fuzzy msgid "Error: Shortcut key already exists!" msgstr "Kesalahan: Tombol pintasan sudah ada!" #: pan/gui/prefs-ui.cc:561 #, fuzzy msgid "Show only icons" msgstr "Tampilkan hanya ikon" #: pan/gui/prefs-ui.cc:562 #, fuzzy msgid "Show only text" msgstr "Hanya menampilkan teks" #: pan/gui/prefs-ui.cc:563 #, fuzzy msgid "Show icons and text" msgstr "Menampilkan ikon dan teks" #: pan/gui/prefs-ui.cc:602 #, fuzzy msgid "Use GNOME Preferences" msgstr "Menggunakan Preferensi GNOME" #: pan/gui/prefs-ui.cc:603 #, fuzzy msgid "Use KDE Preferences" msgstr "Menggunakan Preferensi KDE" #: pan/gui/prefs-ui.cc:604 #, fuzzy msgid "Use OS X Preferences" msgstr "Menggunakan Preferensi OS X" #: pan/gui/prefs-ui.cc:605 #, fuzzy msgid "Use Windows Preferences" msgstr "Menggunakan Preferensi Windows" #: pan/gui/prefs-ui.cc:606 #, fuzzy msgid "Custom Command:" msgstr "Perintah ubahan" #: pan/gui/prefs-ui.cc:658 #, fuzzy msgid "Disabled" msgstr "Dinonaktifkan" #: pan/gui/prefs-ui.cc:659 #, fuzzy msgid "Only new (score == 0)" msgstr "Hanya baru (skor == 0)" #: pan/gui/prefs-ui.cc:660 #, fuzzy msgid "9999 or more" msgstr "9999 atau lebih" #: pan/gui/prefs-ui.cc:661 #, fuzzy msgid "5000 to 9998" msgstr "5000 hingga 9998" #: pan/gui/prefs-ui.cc:662 #, fuzzy msgid "1 to 4999" msgstr "1 hingga 4999" #: pan/gui/prefs-ui.cc:663 #, fuzzy msgid "-9998 to -1" msgstr "-9998 hingga -1" #: pan/gui/prefs-ui.cc:664 #, fuzzy msgid "-9999 or less" msgstr "-9999 atau kurang" #: pan/gui/prefs-ui.cc:728 #, fuzzy, c-format msgid "Select default global character set. Current setting: %s." msgstr "" "Pilih set karakter global default. Pengaturan saat ini: %s." #: pan/gui/prefs-ui.cc:760 #, fuzzy msgid "Global Character Set Settings" msgstr "Pengaturan Set Karakter Global" #: pan/gui/prefs-ui.cc:854 pan/gui/task-pane.cc:1076 #, fuzzy msgid "State" msgstr "Kondisi" #: pan/gui/prefs-ui.cc:888 #, fuzzy msgid "Enabled" msgstr "Difungsikan" #: pan/gui/prefs-ui.cc:892 #, fuzzy msgid "Column Name" msgstr "Nama Kolom" #: pan/gui/prefs-ui.cc:930 #, fuzzy msgid "Pan: Preferences" msgstr "Pan: Preferensi" #: pan/gui/prefs-ui.cc:945 #, fuzzy msgid "Mouse" msgstr "Tetikus" #: pan/gui/prefs-ui.cc:947 #, fuzzy msgid "Single-click activates, rather than selects, _groups" msgstr "Klik sekali mengaktifkan, bukan memilih, _groups" #: pan/gui/prefs-ui.cc:949 #, fuzzy msgid "Single-click activates, rather than selects, _articles" msgstr "Klik sekali mengaktifkan, bukan memilih, _articles" #: pan/gui/prefs-ui.cc:952 #, fuzzy msgid "Groups" msgstr "Grup" #: pan/gui/prefs-ui.cc:954 #, fuzzy msgid "Get new headers in subscribed groups on _startup" msgstr "Dapatkan header baru di grup langganan di _startup" #: pan/gui/prefs-ui.cc:956 #, fuzzy msgid "Get new headers when _entering group" msgstr "Mendapatkan header baru saat _entering grup" #: pan/gui/prefs-ui.cc:958 #, fuzzy msgid "Mark entire group _read when leaving group" msgstr "Menandai seluruh grup _read saat meninggalkan grup" #: pan/gui/prefs-ui.cc:960 #, fuzzy msgid "Mark entire group read before getting _new headers" msgstr "Tandai seluruh grup dibaca sebelum mendapatkan _new header" #: pan/gui/prefs-ui.cc:962 #, fuzzy msgid "E_xpand all threads when entering group" msgstr "E_xpand semua thread saat masuk ke grup" #: pan/gui/prefs-ui.cc:967 #, fuzzy msgid "Articles" msgstr "Artikel" #: pan/gui/prefs-ui.cc:969 #, fuzzy msgid "Mark downloaded articles read" msgstr "Tandai artikel yang diunduh dibaca" #: pan/gui/prefs-ui.cc:971 #, fuzzy msgid "Space selects next article rather than next unread" msgstr "Ruang memilih artikel berikutnya daripada berikutnya belum dibaca" #: pan/gui/prefs-ui.cc:973 #, fuzzy msgid "Expand threads upon selection" msgstr "Memperluas thread saat dipilih" #: pan/gui/prefs-ui.cc:975 #, fuzzy msgid "Always ask before deleting an article" msgstr "Selalu bertanya sebelum menghapus artikel" #: pan/gui/prefs-ui.cc:977 #, fuzzy msgid "Smooth scrolling" msgstr "Bergulir halus" #: pan/gui/prefs-ui.cc:982 #, fuzzy msgid "Article Cache" msgstr "Pasal Cache" #: pan/gui/prefs-ui.cc:983 #, fuzzy msgid "Clear article cache on shutdown" msgstr "Hapus cache artikel pada shutdown" #: pan/gui/prefs-ui.cc:986 #, fuzzy msgid "Size of article cache (in MiB):" msgstr "Ukuran cache artikel (dalam MiB):" #: pan/gui/prefs-ui.cc:991 #, fuzzy msgid "File extension for cached articles: " msgstr "Ekstensi file untuk artikel cache:" #: pan/gui/prefs-ui.cc:996 #, fuzzy msgid "Tabs" msgstr "Tab" #: pan/gui/prefs-ui.cc:1001 #, fuzzy msgid "_Behavior" msgstr "Perilaku" #: pan/gui/prefs-ui.cc:1001 #, fuzzy msgid "Behavior" msgstr "Perilaku" #: pan/gui/prefs-ui.cc:1007 #, fuzzy msgid "Task Pane" msgstr "Panel Tugas" #: pan/gui/prefs-ui.cc:1008 #, fuzzy msgid "Show task pane popups" msgstr "Menampilkan popup panel tugas" #: pan/gui/prefs-ui.cc:1010 #, fuzzy msgid "Show Download Meter" msgstr "Tampilkan Download Meter" #: pan/gui/prefs-ui.cc:1014 #, fuzzy msgid "_Panes" msgstr "Panel Horizontal" #: pan/gui/prefs-ui.cc:1014 #, fuzzy msgid "Panes" msgstr "Panel" #: pan/gui/prefs-ui.cc:1020 #, fuzzy msgid "Language Settings" msgstr "Pengaturan Bahasa" #. systray and notify popup #: pan/gui/prefs-ui.cc:1029 #, fuzzy msgid "System Tray Behavior" msgstr "Perilaku Baki Sistem" #: pan/gui/prefs-ui.cc:1031 #, fuzzy msgid "Minimize to tray" msgstr "Minimalkan ke baki" #: pan/gui/prefs-ui.cc:1033 #, fuzzy msgid "Start Pan minimized" msgstr "Mulai Pan diminimalkan" #: pan/gui/prefs-ui.cc:1036 #, fuzzy msgid "Show notifications" msgstr "Tampilka_n Pemberitahuan" #. allow multiple instances (seperate, not communicating with dbus) #: pan/gui/prefs-ui.cc:1041 #, fuzzy msgid "Startup Behavior" msgstr "Perilaku Startup" #: pan/gui/prefs-ui.cc:1043 #, fuzzy msgid "Allow multiple instances of Pan" msgstr "Izinkan beberapa contoh Pan" #: pan/gui/prefs-ui.cc:1048 #, fuzzy msgid "Autosave Article Draft" msgstr "Simpan Otomatis Pasal Draft" #: pan/gui/prefs-ui.cc:1050 #, fuzzy msgid "Minutes to autosave the current Article Draft: " msgstr "Menit untuk autosave Draft Pasal saat ini:" #: pan/gui/prefs-ui.cc:1055 #, fuzzy msgid "Autosave Articles" msgstr "Autosave Artikel" #: pan/gui/prefs-ui.cc:1057 #, fuzzy msgid "Minutes to autosave newsrc files: " msgstr "Menit untuk menyimpan file newsrc secara otomatis:" #: pan/gui/prefs-ui.cc:1064 #, fuzzy msgid "Password Storage" msgstr "Penyimpanan Kata Sandi" #: pan/gui/prefs-ui.cc:1065 #, fuzzy msgid "Save passwords in password storage" msgstr "Menyimpan kata sandi dalam penyimpanan kata sandi" #: pan/gui/prefs-ui.cc:1069 #, fuzzy msgid "_Miscellaneous" msgstr "_Rupa-rupa" #: pan/gui/prefs-ui.cc:1069 #, fuzzy msgid "Miscellaneous" msgstr "Rupa-rupa" #: pan/gui/prefs-ui.cc:1074 #, fuzzy msgid "Pane Layout" msgstr "Tata Letak Panel" #: pan/gui/prefs-ui.cc:1093 #, fuzzy msgid "1=Groups, 2=Headers, 3=Body" msgstr "1=Grup, 2=Header, 3=Badan" #: pan/gui/prefs-ui.cc:1095 #, fuzzy msgid "1=Groups, 2=Body, 3=Headers" msgstr "1=Grup, 2=Badan, 3=Header" #: pan/gui/prefs-ui.cc:1097 #, fuzzy msgid "1=Headers, 2=Groups, 3=Body" msgstr "1=Header, 2=Grup, 3=Badan" #: pan/gui/prefs-ui.cc:1099 #, fuzzy msgid "1=Headers, 2=Body, 3=Groups" msgstr "1=Header, 2=Badan, 3=Grup" #: pan/gui/prefs-ui.cc:1101 #, fuzzy msgid "1=Body, 2=Groups, 3=Headers" msgstr "1=Badan, 2=Grup, 3=Header" #: pan/gui/prefs-ui.cc:1103 #, fuzzy msgid "1=Body, 2=Headers, 3=Groups" msgstr "1=Badan, 2=Header, 3=Grup" #: pan/gui/prefs-ui.cc:1107 #, fuzzy msgid "Layout" msgstr "Tata letak" #: pan/gui/prefs-ui.cc:1112 #, fuzzy msgid "Header Pane Columns" msgstr "Kolom Panel Header" #: pan/gui/prefs-ui.cc:1116 #, fuzzy msgid "_Headers" msgstr "_Header" #: pan/gui/prefs-ui.cc:1116 #, fuzzy msgid "Headers" msgstr "Tajuk" #: pan/gui/prefs-ui.cc:1122 #, fuzzy msgid "" "This menu lets you configure Pan to take certain actions on your behalf " "automatically, based on an article’s score." msgstr "" "Dengan menu ini Anda dapat mengonfigurasi Pan untuk mengambil tindakan " "tertentu atas nama Anda secara otomatis, berdasarkan skor artikel." #: pan/gui/prefs-ui.cc:1127 #, fuzzy msgid "Mark affected articles read" msgstr "Tandai artikel yang terpengaruh dibaca" #: pan/gui/prefs-ui.cc:1136 #, fuzzy msgid "_Delete articles scoring at: " msgstr "_Delete artikel mencetak skor di:" #: pan/gui/prefs-ui.cc:1142 #, fuzzy msgid "Mark articles read scoring at: " msgstr "Tandai artikel membaca skor di:" #: pan/gui/prefs-ui.cc:1148 #, fuzzy msgid "_Cache articles scoring at: " msgstr "_Cache-artikel yang mencetak gol di:" #: pan/gui/prefs-ui.cc:1154 #, fuzzy msgid "Download attachments of articles scoring at: " msgstr "Unduh lampiran artikel yang mencetak skor di:" #: pan/gui/prefs-ui.cc:1157 #, fuzzy msgid "Actions" msgstr "Aksi" #: pan/gui/prefs-ui.cc:1162 pan/gui/prefs-ui.cc:1183 #, fuzzy msgid "Fonts" msgstr "Fonta" #: pan/gui/prefs-ui.cc:1164 #, fuzzy msgid "Use custom font in Group Pane:" msgstr "Gunakan font kustom di Panel Grup:" #: pan/gui/prefs-ui.cc:1169 #, fuzzy msgid "Use custom font in Header Pane:" msgstr "Gunakan font kustom di Panel Header:" #: pan/gui/prefs-ui.cc:1174 #, fuzzy msgid "Use custom font in Body Pane:" msgstr "Gunakan font kustom di Panel Badan:" #: pan/gui/prefs-ui.cc:1179 #, fuzzy msgid "Monospace font:" msgstr "Fonta lebar seragam (monospace):" #: pan/gui/prefs-ui.cc:1183 #, fuzzy msgid "_Fonts" msgstr "_Fonta" #: pan/gui/prefs-ui.cc:1192 #, fuzzy msgid "Header Pane" msgstr "Panel Header" #: pan/gui/prefs-ui.cc:1195 pan/gui/prefs-ui.cc:1201 pan/gui/prefs-ui.cc:1207 #: pan/gui/prefs-ui.cc:1213 pan/gui/prefs-ui.cc:1219 pan/gui/prefs-ui.cc:1225 #: pan/gui/prefs-ui.cc:1234 pan/gui/prefs-ui.cc:1240 pan/gui/prefs-ui.cc:1246 #: pan/gui/prefs-ui.cc:1252 pan/gui/prefs-ui.cc:1258 pan/gui/prefs-ui.cc:1268 #: pan/gui/prefs-ui.cc:1278 #, fuzzy msgid "Text:" msgstr "Teks:" #: pan/gui/prefs-ui.cc:1197 pan/gui/prefs-ui.cc:1203 pan/gui/prefs-ui.cc:1209 #: pan/gui/prefs-ui.cc:1215 pan/gui/prefs-ui.cc:1221 pan/gui/prefs-ui.cc:1227 #: pan/gui/prefs-ui.cc:1236 pan/gui/prefs-ui.cc:1242 pan/gui/prefs-ui.cc:1248 #: pan/gui/prefs-ui.cc:1254 pan/gui/prefs-ui.cc:1260 pan/gui/prefs-ui.cc:1270 #: pan/gui/prefs-ui.cc:1280 #, fuzzy msgid "Background:" msgstr "Latar Belakang:" #: pan/gui/prefs-ui.cc:1199 #, fuzzy msgid "Scores of 9999 or more:" msgstr "Skor 9999 atau lebih:" #: pan/gui/prefs-ui.cc:1205 #, fuzzy msgid "Scores from 5000 to 9998:" msgstr "Skor dari 5000 hingga 9998:" #: pan/gui/prefs-ui.cc:1211 #, fuzzy msgid "Scores from 1 to 4999:" msgstr "Skor dari 1 sampai 4999:" #: pan/gui/prefs-ui.cc:1217 #, fuzzy msgid "Scores from -9998 to -1:" msgstr "Skor dari -9998 ke -1:" #: pan/gui/prefs-ui.cc:1223 #, fuzzy msgid "Scores of -9999 or less:" msgstr "Skor -9999 atau kurang:" #: pan/gui/prefs-ui.cc:1229 #, fuzzy msgid "Collapsed thread with unread articles:" msgstr "Thread yang diciutkan dengan artikel yang belum dibaca:" #: pan/gui/prefs-ui.cc:1231 #, fuzzy msgid "Body Pane" msgstr "Panel Badan" #: pan/gui/prefs-ui.cc:1238 #, fuzzy msgid "First level of quoted text:" msgstr "Tingkat pertama teks yang dikutip:" #: pan/gui/prefs-ui.cc:1244 #, fuzzy msgid "Second level of quoted text:" msgstr "Tingkat kedua teks yang dikutip:" #: pan/gui/prefs-ui.cc:1250 #, fuzzy msgid "Third level of quoted text:" msgstr "Tingkat ketiga teks yang dikutip:" #. #: pan/gui/prefs-ui.cc:1256 #, fuzzy msgid "URL:" msgstr "URL:" #. #: pan/gui/prefs-ui.cc:1262 #, fuzzy msgid "Signature:" msgstr "Tanda Tangan" #: pan/gui/prefs-ui.cc:1265 #, fuzzy msgid "Group Pane" msgstr "Panel Grup" #. #: pan/gui/prefs-ui.cc:1272 #, fuzzy msgid "Group Color:" msgstr "Warna Grup:" #: pan/gui/prefs-ui.cc:1276 #, fuzzy msgid "Other Text" msgstr "Teks Lainnya" #: pan/gui/prefs-ui.cc:1282 #, fuzzy msgid "Text Color:" msgstr "Warna teks:" #: pan/gui/prefs-ui.cc:1285 #, fuzzy msgid "_Colors" msgstr "_Warna" #: pan/gui/prefs-ui.cc:1285 #, fuzzy msgid "Colors" msgstr "Warna" #: pan/gui/prefs-ui.cc:1290 #, fuzzy msgid "Preferred Applications" msgstr "Aplikasi Pilihan" #: pan/gui/prefs-ui.cc:1294 #, fuzzy msgid "_Web browser:" msgstr "Bowser Web" #: pan/gui/prefs-ui.cc:1297 #, fuzzy msgid "_Mail reader:" msgstr "Pembaca E-mail Balsa" #: pan/gui/prefs-ui.cc:1299 #, fuzzy msgid "_Text editor:" msgstr "Teks;Penyunting;" #: pan/gui/prefs-ui.cc:1301 #, fuzzy msgid "_HTML previewer:" msgstr "_HTML previewer:" #: pan/gui/prefs-ui.cc:1303 #, fuzzy msgid "_Applications" msgstr "Aplikasi" #: pan/gui/prefs-ui.cc:1303 #, fuzzy msgid "Applications" msgstr "Aplikasi" #: pan/gui/prefs-ui.cc:1308 pan/gui/task-pane.cc:552 #, fuzzy msgid "Encoding" msgstr "Pengkodean" #: pan/gui/prefs-ui.cc:1312 #, fuzzy msgid "Default bytes per file (for encoder): " msgstr "Byte default per file (untuk encoder):" #: pan/gui/prefs-ui.cc:1317 #, fuzzy msgid "_Upload" msgstr "_Unggah" #: pan/gui/prefs-ui.cc:1317 #, fuzzy msgid "Upload" msgstr "Unggah" #: pan/gui/prefs-ui.cc:1326 #, fuzzy msgid "_Shortcuts" msgstr "Pintasan:" #: pan/gui/prefs-ui.cc:1326 #, fuzzy msgid "Shortcuts" msgstr "Pintasan" #: pan/gui/profiles-dialog.cc:83 #, fuzzy msgid "Please choose your email address according to your PGP key’s user id." msgstr "" "Silakan pilih alamat email Anda sesuai dengan id pengguna kunci PGP Anda." #: pan/gui/profiles-dialog.cc:131 #, fuzzy msgid "Posting Profile" msgstr "Profil Posting" #: pan/gui/profiles-dialog.cc:143 #, fuzzy msgid "Profile Information" msgstr "Informasi Profil" #: pan/gui/profiles-dialog.cc:147 #, fuzzy msgid "_Profile Name:" msgstr "Nama _Profil:" #: pan/gui/profiles-dialog.cc:150 #, fuzzy msgid "Required Information" msgstr "Memerlukan Informasi" #: pan/gui/profiles-dialog.cc:154 #, fuzzy msgid "_Full Name:" msgstr "Nama lengkap" #: pan/gui/profiles-dialog.cc:158 #, fuzzy msgid "" "Your email address.\n" "Note that this has to match your PGP signature’s address\n" "if you want your messages to be PGP-signed or encrypted correctly." msgstr "" "Alamat email Anda.\n" "Perhatikan bahwa ini harus sesuai dengan alamat tanda tangan PGP Anda\n" "jika Anda ingin pesan Anda ditandatangani atau dienkripsi dengan benar." #: pan/gui/profiles-dialog.cc:162 #, fuzzy msgid "_Email Address:" msgstr "Alamat _Email:" #: pan/gui/profiles-dialog.cc:164 #, fuzzy msgid "_Post Articles via:" msgstr "_Post Artikel melalui:" #: pan/gui/profiles-dialog.cc:167 #, fuzzy msgid "Signature" msgstr "Tanda tangan" #: pan/gui/profiles-dialog.cc:170 #, fuzzy msgid "_Use a Signature" msgstr "_Use Tanda Tangan" #: pan/gui/profiles-dialog.cc:174 #, fuzzy msgid "Signature File" msgstr "Tidak dapat membaca berkas tanda tangan "{0}"." #: pan/gui/profiles-dialog.cc:184 #, fuzzy msgid "Text File" msgstr "Berkas Teks" #: pan/gui/profiles-dialog.cc:186 #, fuzzy msgid "Text" msgstr "Teks" #: pan/gui/profiles-dialog.cc:188 #, fuzzy msgid "Command" msgstr "Perintah" #: pan/gui/profiles-dialog.cc:191 #, fuzzy msgid "PGP Signature" msgstr "tandatangan PGP: " #: pan/gui/profiles-dialog.cc:196 #, fuzzy msgid "Signature Type: " msgstr "Jenis Tanda Tangan:" #: pan/gui/profiles-dialog.cc:226 #, fuzzy msgid "X-Face (Avatar)" msgstr "X-Face (Avatar)" #: pan/gui/profiles-dialog.cc:229 #, fuzzy msgid "" "You can add an avatar icon to your articles with a unique X-Face code.\n" "Add the code without the trailing “X-Face:” \n" " if it was generated by a helper program (for example http://www.dairiki.org/" "xface/xface.php)." msgstr "" "Anda dapat menambahkan ikon avatar ke artikel dengan kode X-Face yang unik.\n" "Tambahkan kode tanpa trailing \"X-Face:\" \n" " jika dihasilkan oleh program pembantu (misalnya http://www.dairiki.org/" "xface/xface.php)." #: pan/gui/profiles-dialog.cc:232 #, fuzzy msgid "_X-Face:" msgstr "Path _X-Face" #: pan/gui/profiles-dialog.cc:234 #, fuzzy msgid "Optional Information" msgstr "Informasi Opsional" #: pan/gui/profiles-dialog.cc:239 #, fuzzy msgid "" "When posting to Usenet, your article’s Message-ID contains a domain name.\n" "You can set a custom domain name here, or leave it blank to let Pan use the " "domain name from your email address." msgstr "" "Saat memposting ke Usenet, ID Pesan artikel Anda berisi nama domain.\n" "Anda dapat mengatur nama domain kustom di sini, atau membiarkannya kosong " "untuk mengizinkan Pan menggunakan nama domain dari alamat email Anda." #: pan/gui/profiles-dialog.cc:242 #, fuzzy msgid "Message-ID _Domain Name:" msgstr "Nama _Domain ID Pesan:" #: pan/gui/profiles-dialog.cc:246 #, fuzzy, c-format msgid "" "%i for Message-ID\n" "%a for Author and Address\n" "%n for Author name\n" "%d for Date" msgstr "" "%i untuk ID Pesan\n" "%a untuk Penulis dan Alamat\n" "%n untuk nama penulis\n" "%d untuk Tanggal" #: pan/gui/profiles-dialog.cc:247 #, fuzzy msgid "_Attribution:" msgstr "CC Attribution" #. Translators: Do not localize Reply-To and the quote marks in \"Your Name\". #: pan/gui/profiles-dialog.cc:272 #, fuzzy msgid "" "Extra headers to be included in your articles, such as\n" "Reply-To: \"Your Name\" \n" "Organization: Your Organization\n" msgstr "" "Header tambahan untuk disertakan dalam artikel Anda, seperti\n" "Balas-Untuk: \"Nama Anda\" \n" "Organisasi: Organisasi Anda" #: pan/gui/profiles-dialog.cc:282 #, fuzzy msgid "E_xtra Headers:" msgstr "E_xtra Header:" #: pan/gui/profiles-dialog.cc:327 #, fuzzy msgid "Invalid email address." msgstr "Alamat email salah." #: pan/gui/profiles-dialog.cc:328 #, fuzzy msgid "Please use an address of the form joe@somewhere.org" msgstr "Silakan gunakan alamat formulir joe@somewhere.org" #: pan/gui/profiles-dialog.cc:483 #, fuzzy msgid "New Profile" msgstr "Profil Baru" #: pan/gui/profiles-dialog.cc:529 #, fuzzy msgid "Posting Profiles" msgstr "Profil Posting" #: pan/gui/profiles-dialog.cc:545 #, fuzzy msgid "Profiles" msgstr "Profil" #: pan/gui/save-attach-ui.cc:46 #, fuzzy, c-format msgid "" "%g — group as one directory (alt.binaries.pictures.trains)\n" "%G — group as nested directory (/alt/binaries/pictures/trains)\n" "%s — Subject line excerpt\n" "%S — Subject line\n" "%n — Poster display name\n" "%e — Poster email address\n" "%d — Article timestamp\n" "“/home/user/News/Pan/%g” becomes\n" "“/home/user/News/Pan/alt.binaries.pictures.trains”, and\n" "“/home/user/News/Pan/%G” becomes\n" "“/home/user/News/Pan/alt/binaries/pictures/trains”," msgstr "" "%g — grup sebagai satu direktori (alt.binaries.pictures.trains)\n" "%G — grup sebagai direktori bersarang (/alt/binries/pictures/trains)\n" "%s — Kutipan baris subjek\n" " %s — Baris subjek\n" "%n — Nama tampilan poster\n" "%e — Alamat email poster\n" "%d — Stempel waktu Artikel\n" "\"/home/user/News/Pan/%g\" menjadi\n" "\"/home/user/News/Pan/alt.binaries.pictures.trains\", dan\n" "\"/home/user/News/Pan/%G\" menjadi\n" "\"/home/user/News/Pan/alt/binaries/pictures/trains\"," #: pan/gui/save-attach-ui.cc:198 pan/gui/save-ui.cc:218 #, fuzzy msgid "Add to the queue sorted by date posted" msgstr "Tambahkan ke antrean yang diurutkan berdasarkan tanggal diposting" #: pan/gui/save-attach-ui.cc:199 pan/gui/save-ui.cc:219 #, fuzzy msgid "Add to the front of the queue" msgstr "Tambahkan ke bagian depan antrean" #: pan/gui/save-attach-ui.cc:200 pan/gui/save-ui.cc:220 #, fuzzy msgid "Add to the back of the queue" msgstr "Tambahkan ke bagian belakang antrean" #: pan/gui/save-attach-ui.cc:232 #, fuzzy msgid "Pan: Save Attachments" msgstr "Pan: Simpan Lampiran" #: pan/gui/save-attach-ui.cc:257 pan/gui/save-attach-ui.cc:275 #: pan/gui/save-ui.cc:272 pan/gui/save-ui.cc:290 #, fuzzy msgid "_Location:" msgstr "_Lokasi:" #: pan/gui/save-attach-ui.cc:261 pan/gui/save-ui.cc:276 #, fuzzy msgid "Save Articles" msgstr "Simpan Artikel" #: pan/gui/save-attach-ui.cc:278 pan/gui/save-ui.cc:293 #, fuzzy, c-format msgid "_Group’s path: %s" msgstr "_Group: %s" #: pan/gui/save-attach-ui.cc:289 pan/gui/save-ui.cc:308 #, fuzzy msgid "_Priority:" msgstr "_Prioritas:" #: pan/gui/save-ui.cc:46 #, fuzzy, c-format msgid "" "%g — group as one directory (alt.binaries.pictures.trains)\n" "%G — group as nested directory (/alt/binaries/pictures/trains)\n" "%s — subject line excerpt\n" "%S — subject line\n" "%n — Poster display name\n" "%e — Poster email address\n" "%d — Article timestamp\n" " \n" "“/home/user/News/Pan/%g” becomes\n" "“/home/user/News/Pan/alt.binaries.pictures.trains”, and\n" "“/home/user/News/Pan/%G” becomes\n" "“/home/user/News/Pan/alt/binaries/pictures/trains”," msgstr "" "%g — grup sebagai satu direktori (alt.binaries.pictures.trains)\n" "%G — grup sebagai direktori bersarang (/alt/binries/pictures/trains)\n" "%s — kutipan baris subjek\n" " %s — baris subjek\n" "%n — Nama tampilan poster\n" "%e — Alamat email poster\n" "%d — Stempel waktu Artikel\n" " \n" "\"/home/user/News/Pan/%g\" menjadi\n" "\"/home/user/News/Pan/alt.binaries.pictures.trains\", dan\n" "\"/home/user/News/Pan/%G\" menjadi\n" "\"/home/user/News/Pan/alt/binaries/pictures/trains\"," #: pan/gui/save-ui.cc:209 #, fuzzy msgid "Save attachments" msgstr "Simpan Lampiran" #: pan/gui/save-ui.cc:210 #, fuzzy msgid "Save text" msgstr "Menyimpan teks" #: pan/gui/save-ui.cc:211 #, fuzzy msgid "Save attachments and text" msgstr "Menyimpan lampiran dan teks" #: pan/gui/save-ui.cc:247 #, fuzzy msgid "Pan: Save Articles" msgstr "Pan: Simpan Artikel" #: pan/gui/save-ui.cc:304 #, fuzzy msgid "_Action:" msgstr "_Aksi:" #: pan/gui/score-add-ui.cc:89 #, fuzzy msgid "is more than" msgstr "Lebih Dari" #: pan/gui/score-add-ui.cc:90 #, fuzzy msgid "is at most" msgstr "paling banyak" #: pan/gui/score-add-ui.cc:112 #, fuzzy msgid "increase the article’s score by" msgstr "meningkatkan skor artikel dengan" #: pan/gui/score-add-ui.cc:113 #, fuzzy msgid "decrease the article’s score by" msgstr "mengurangi skor artikel dengan" #: pan/gui/score-add-ui.cc:114 #, fuzzy msgid "set the article’s score to" msgstr "mengatur skor artikel ke" #: pan/gui/score-add-ui.cc:115 #, fuzzy msgid "watch the article (set its score to 9999)" msgstr "menonton artikel (mengatur skor untuk 9999)" #: pan/gui/score-add-ui.cc:116 #, fuzzy msgid "ignore the article (set its score to -9999)" msgstr "mengabaikan artikel (mengatur skor untuk -9999)" #: pan/gui/score-add-ui.cc:141 #, fuzzy msgid "References" msgstr "Rujukan" #: pan/gui/score-add-ui.cc:142 #, fuzzy msgid "Line Count" msgstr "Cacah Baris" #: pan/gui/score-add-ui.cc:143 #, fuzzy msgid "Byte Count" msgstr "Cacah Byte" #: pan/gui/score-add-ui.cc:144 #, fuzzy msgid "Crosspost Group Count" msgstr "Jumlah Grup Posting Silang" #: pan/gui/score-add-ui.cc:145 #, fuzzy msgid "Age (in days)" msgstr "Usia (dalam hari)" #: pan/gui/score-add-ui.cc:167 #, fuzzy msgid "for the next month" msgstr "untuk bulan berikutnya" #: pan/gui/score-add-ui.cc:168 #, fuzzy msgid "for the next six months" msgstr "selama enam bulan ke depan" #: pan/gui/score-add-ui.cc:169 #, fuzzy msgid "forever" msgstr "selamanya" #: pan/gui/score-add-ui.cc:194 #, fuzzy msgid "contains" msgstr "berisi" #: pan/gui/score-add-ui.cc:195 #, fuzzy msgid "doesn’t contain" msgstr "Galat: berkas tak memuat konfigurasi JSON yang valid" #: pan/gui/score-add-ui.cc:196 #, fuzzy msgid "is" msgstr "adalah" #: pan/gui/score-add-ui.cc:197 #, fuzzy msgid "isn’t" msgstr "Permainan ini tidak terintegrasi dengan Permainan GNOME." #: pan/gui/score-add-ui.cc:198 #, fuzzy msgid "starts with" msgstr "diawali dengan" #: pan/gui/score-add-ui.cc:199 #, fuzzy msgid "ends with" msgstr "diakhiri dengan" #: pan/gui/score-add-ui.cc:200 #, fuzzy msgid "matches regex" msgstr "Path cocok regex:" #: pan/gui/score-add-ui.cc:481 #, fuzzy msgid "Another rule already sets this article’s score." msgstr "Aturan lain sudah menetapkan skor artikel ini." #: pan/gui/score-add-ui.cc:482 #, fuzzy msgid "You may want to go back or delete the old rule." msgstr "Anda mungkin ingin kembali atau menghapus aturan lama." #: pan/gui/score-add-ui.cc:553 #, fuzzy msgid "Add and Re_score" msgstr "Tambahkan dan Re_score" #: pan/gui/score-add-ui.cc:604 pan/gui/score-add-ui.cc:624 #, fuzzy msgid "New Scoring Rule" msgstr "Aturan Penilaian Baru" #: pan/gui/score-add-ui.cc:635 #, fuzzy msgid "Group name" msgstr "Nama grup" #: pan/gui/score-add-ui.cc:642 #, fuzzy msgid "and" msgstr "dan" #: pan/gui/score-view-ui.cc:56 #, fuzzy msgid "Close and Re_score" msgstr "Tutup dan Re_score" #: pan/gui/score-view-ui.cc:154 #, fuzzy, c-format msgid "File %s, Lines %d-%d" msgstr "Berkas %s, Baris %d-%d" #: pan/gui/score-view-ui.cc:182 #, fuzzy msgid "Pan: Article’s Scores" msgstr "Pan: Skor Artikel" #: pan/gui/score-view-ui.cc:208 #, fuzzy msgid "Add" msgstr "Tambah" #: pan/gui/score-view-ui.cc:213 #, fuzzy msgid "New Score" msgstr "Skor Baru" #: pan/gui/score-view-ui.cc:218 #, fuzzy msgid "Criteria" msgstr "Kriteria" #: pan/gui/score-view-ui.cc:241 #, fuzzy msgid "Add a New Scoring Rule" msgstr "Menambahkan Aturan Penilaian Baru" #: pan/gui/score-view-ui.cc:248 #, fuzzy msgid "Remove the Selected Scoring Rule" msgstr "Menghapus Aturan Penilaian yang Dipilih" #: pan/gui/server-ui.cc:272 #, fuzzy msgid "Please specify the server’s address." msgstr "Harap tentukan alamat server." #: pan/gui/server-ui.cc:318 #, fuzzy msgid "Import SSL Certificate (PEM Format) From File" msgstr "Impor Sertifikat SSL (FORMAT PEM) Dari File" #. create the dialog #: pan/gui/server-ui.cc:355 pan/gui/server-ui.cc:961 #, fuzzy msgid "Add a Server" msgstr "Tambah Server Kunci" #: pan/gui/server-ui.cc:355 pan/gui/server-ui.cc:967 #, fuzzy msgid "Edit a Server’s Settings" msgstr "Mengedit Pengaturan Server" #: pan/gui/server-ui.cc:375 #, fuzzy msgid "Location" msgstr "Lokasi" #: pan/gui/server-ui.cc:379 #, fuzzy msgid "The news server’s actual address, e.g. “news.mynewsserver.com”." msgstr "Alamat sebenarnya server berita, misalnya \"news.mynewsserver.com\"." #: pan/gui/server-ui.cc:380 #, fuzzy msgid "_Address:" msgstr "_Alamat:" #: pan/gui/server-ui.cc:385 #, fuzzy msgid "" "The news server’s port number. Typically 119 for unencrypted and 563 for " "encrypted connections (SSL/TLS)." msgstr "" "Nomor port server berita. Biasanya 119 untuk tidak terenkripsi dan 563 " "untuk koneksi terenkripsi (SSL/TLS)." #: pan/gui/server-ui.cc:386 #, fuzzy msgid "Por_t:" msgstr "Por_t" #: pan/gui/server-ui.cc:389 #, fuzzy msgid "Login (if Required)" msgstr "Login (jika Diperlukan)" #: pan/gui/server-ui.cc:393 #, fuzzy msgid "_Username:" msgstr "Pengg_una:" #: pan/gui/server-ui.cc:394 #, fuzzy msgid "" "The username to give the server when asked. If your server doesn’t require " "authentication, you can leave this blank." msgstr "" "Nama pengguna untuk memberikan server ketika ditanya. Jika server Anda " "tidak memerlukan otentikasi, Anda dapat membiarkan ini kosong." #: pan/gui/server-ui.cc:398 #, fuzzy msgid "_Password:" msgstr "_Sandi" #: pan/gui/server-ui.cc:399 #, fuzzy msgid "" "The password to give the server when asked. If your server doesn’t require " "authentication, you can leave this blank." msgstr "" "Sandi untuk memberikan server ketika ditanya. Jika server Anda tidak " "memerlukan otentikasi, Anda dapat membiarkan ini kosong." #: pan/gui/server-ui.cc:402 #, fuzzy msgid "Settings" msgstr "Pengaturan" #: pan/gui/server-ui.cc:409 #, fuzzy msgid "Connection _Limit:" msgstr "Koneksi _Limit:" #: pan/gui/server-ui.cc:413 msgid "After Two Weeks" msgstr "Setelah Dua Minggu" #: pan/gui/server-ui.cc:414 msgid "After One Month" msgstr "Setelah Satu Bulan" #: pan/gui/server-ui.cc:415 #, fuzzy msgid "After Two Months" msgstr "Setelah Dua Bulan" #: pan/gui/server-ui.cc:416 #, fuzzy msgid "After Three Months" msgstr "Setelah Tiga Bulan" #: pan/gui/server-ui.cc:417 #, fuzzy msgid "After Six Months" msgstr "Setelah Enam Bulan" #: pan/gui/server-ui.cc:418 #, fuzzy msgid "Never Expire Old Articles" msgstr "Tidak pernah berakhir artikel lama" #: pan/gui/server-ui.cc:432 #, fuzzy msgid "E_xpire Old Articles:" msgstr "E_xpire Lama:" #: pan/gui/server-ui.cc:436 msgid "Primary" msgstr "Primer" #: pan/gui/server-ui.cc:437 #, fuzzy msgid "Fallback" msgstr "Cadangan" #: pan/gui/server-ui.cc:451 #, fuzzy msgid "Server Rank:" msgstr "Peringkat Server:" #: pan/gui/server-ui.cc:455 #, fuzzy msgid "" "Fallback servers are used for articles that can’t be found on the " "primaries. One common approach is to use free servers as primaries and " "subscription servers as fallbacks." msgstr "" "Server fallback digunakan untuk artikel yang tidak dapat ditemukan pada " "pendahuluan. Salah satu pendekatan umum adalah dengan menggunakan server " "gratis sebagai pendahuluan dan server berlangganan sebagai fallback." #: pan/gui/server-ui.cc:460 #, fuzzy msgid "Disable Compression (N/A)" msgstr "Nonaktifkan Kompresi (N/A)" #: pan/gui/server-ui.cc:461 #, fuzzy msgid "XZVER Compression (Astraweb)" msgstr "Kompresi XZVER (Astraweb)" #: pan/gui/server-ui.cc:462 #, fuzzy msgid "GZIP Compression (Giganews etc.)" msgstr "Kompresi GZIP (Giganews dll.)" #: pan/gui/server-ui.cc:476 #, fuzzy msgid "Header Compression:" msgstr "Gunakan pemampatan header TCP" #: pan/gui/server-ui.cc:482 msgid "Security" msgstr "Keamanan" #: pan/gui/server-ui.cc:487 #, fuzzy msgid "Use Unsecure (Plaintext) Connections" msgstr "Menggunakan Koneksi Tidak Aman (Plaintext)" #: pan/gui/server-ui.cc:488 #, fuzzy msgid "Use Secure SSL Connections" msgstr "Menggunakan Koneksi SSL Aman" #: pan/gui/server-ui.cc:503 msgid "TLS (SSL) Settings:" msgstr "Pengaturan TLS (SSL):" #: pan/gui/server-ui.cc:508 #, fuzzy msgid "" "You can enable/disable secure SSL/TLS connections here. If you enable SSL/" "TLS, your data is encrypted and secure. It is encouraged to enable SSL/TLS " "for privacy reasons." msgstr "" "Anda dapat mengaktifkan/menonaktifkan koneksi SSL/TLS aman di sini. Jika " "Anda mengaktifkan SSL/TLS, data Anda dienkripsi dan aman. Hal ini dianjurkan " "untuk mengaktifkan SSL / TLS untuk alasan privasi." #: pan/gui/server-ui.cc:513 #, fuzzy msgid "Always trust this server’s certificate" msgstr "Selalu percaya sertifikat server ini" #: pan/gui/server-ui.cc:689 #, fuzzy, c-format msgid "Really delete “%s”?" msgstr "Benar-benar menghapus \"%s\"?" #: pan/gui/server-ui.cc:778 #, fuzzy msgid "No information available." msgstr "Informasi tak tersedia" #: pan/gui/server-ui.cc:788 #, fuzzy, c-format msgid "Server Certificate for “%s”" msgstr "Sertifikat Server untuk \"%s\"" #: pan/gui/server-ui.cc:887 #, fuzzy, c-format msgid "Really delete certificate for “%s”?" msgstr "Benar-benar menghapus sertifikat untuk \"%s\"?" #. dialog #: pan/gui/server-ui.cc:914 pan/gui/server-ui.cc:935 pan/gui/server-ui.cc:1033 msgid "Servers" msgstr "Server" #: pan/gui/server-ui.cc:974 #, fuzzy msgid "Remove a Server" msgstr "_Hapus dari server" #. dialog #: pan/gui/server-ui.cc:1007 msgid "SSL Certificates" msgstr "Sertifikat SSL" #: pan/gui/server-ui.cc:1028 msgid "Certificates" msgstr "Sertifikat" #: pan/gui/server-ui.cc:1059 msgid "Import Certificate" msgstr "Impor Sertifikat" #: pan/gui/server-ui.cc:1065 msgid "Inspect Certificate" msgstr "Periksa Sertifikat" #: pan/gui/server-ui.cc:1072 msgid "Remove Certificate" msgstr "Hapus Sertifikat" #: pan/gui/task-pane.cc:121 #, fuzzy, c-format msgid "" "\n" "Upload\n" "\n" "Subject: “%s”\n" "From: %s\n" "Groups: %s\n" "Sourcefile: %s\n" msgstr "" "Unggah\n" "\n" "Subjek: \"%s\"\n" "Dari: %s\n" "Grup: %s\n" "Sourcefile: %s" #: pan/gui/task-pane.cc:133 #, fuzzy, c-format msgid "" "\n" "Download\n" "\n" "Subject: “%s”\n" "From: %s\n" "Date: %s\n" "Groups: %s\n" "Save Path: %s\n" msgstr "" "DownloadSubject: \"%s\"Dari: %sTanggal:" " %sGrup: %sSimpanJalur: %s" #: pan/gui/task-pane.cc:135 #, fuzzy msgid "unknown" msgstr "tak diketahui" #: pan/gui/task-pane.cc:303 #, fuzzy msgid "Choose New Destination for Selected Tasks" msgstr "Pilih Tujuan Baru untuk Tugas yang Dipilih" #: pan/gui/task-pane.cc:457 #, fuzzy, c-format msgid "Pan: Tasks (%d Queued, %d Running, %d Stopped)" msgstr "Pan: Tugas (%d Antri, %d Berjalan, %d Berhenti)" #: pan/gui/task-pane.cc:459 #, fuzzy, c-format msgid "Pan: Tasks (%d Queued, %d Running)" msgstr "Pan: Tugas (%d Antri, %d Berjalan)" #: pan/gui/task-pane.cc:461 #, fuzzy msgid "Pan: Tasks" msgstr "Pan: Tugas" #: pan/gui/task-pane.cc:486 #, fuzzy, c-format msgid "%lu selected, %s" msgstr "%lu dipilih, %s" #: pan/gui/task-pane.cc:550 #, fuzzy msgid "Running" msgstr "Berjalan" #: pan/gui/task-pane.cc:551 #, fuzzy msgid "Decoding" msgstr "Decoding" #: pan/gui/task-pane.cc:553 #, fuzzy msgid "Queued for Decode" msgstr "Antri untuk Decode" #: pan/gui/task-pane.cc:554 #, fuzzy msgid "Queued for Encode" msgstr "Mengantri untuk Encode" #: pan/gui/task-pane.cc:555 #, fuzzy msgid "Queued" msgstr "antri" #: pan/gui/task-pane.cc:556 #, fuzzy msgid "Stopped" msgstr "Terhenti" #: pan/gui/task-pane.cc:557 #, fuzzy msgid "Removing" msgstr "Menghapus" #: pan/gui/task-pane.cc:586 #, fuzzy, c-format msgid "%d%% Done" msgstr "%d% %selesai" #: pan/gui/task-pane.cc:592 #, fuzzy, c-format msgid "%d∶%02d∶%02d Remaining (%d @ %lu KiB/s)" msgstr "%d∶%02d∶%02d Tersisa (%d @ %lu KiB/s)" #: pan/gui/task-pane.cc:687 pan/gui/task-pane.cc:688 #, fuzzy msgid "Move To Top" msgstr "Pindahkan ke _puncak" #: pan/gui/task-pane.cc:692 pan/gui/task-pane.cc:693 #, fuzzy msgid "Move To Bottom" msgstr "Pindahkan ke _dasar" #: pan/gui/task-pane.cc:697 pan/gui/task-pane.cc:698 #, fuzzy msgid "Show Task Information" msgstr "Tampilkan Informasi Tugas" #: pan/gui/task-pane.cc:702 pan/gui/task-pane.cc:703 #, fuzzy msgid "Stop Task" msgstr "Menghentikan Tugas" #: pan/gui/task-pane.cc:707 pan/gui/task-pane.cc:708 #, fuzzy msgid "Delete Task" msgstr "Hapus Tugas" #: pan/gui/task-pane.cc:712 pan/gui/task-pane.cc:713 #, fuzzy msgid "Restart Task" msgstr "Mulai Ulang Tugas" #: pan/gui/task-pane.cc:717 pan/gui/task-pane.cc:718 #, fuzzy msgid "Change Download Destination" msgstr "Ubah Tujuan Unduhan" #: pan/gui/task-pane.cc:1028 #, fuzzy msgid "_Online" msgstr "Daring" #: pan/gui/task-pane.cc:1045 #, fuzzy msgid "Restart Tasks" msgstr "Mulai Ulang Tugas" #: pan/gui/task-pane.cc:1047 #, fuzzy msgid "Stop Tasks" msgstr "Menghentikan Tugas" #: pan/gui/task-pane.cc:1049 #, fuzzy msgid "Delete Tasks" msgstr "Hapus Tugas" #: pan/gui/task-pane.cc:1055 #, fuzzy msgid "Show popups" msgstr "Menampilkan popup" #: pan/gui/url.cc:123 #, fuzzy, c-format msgid "Error starting URL: %s (Command was: %s)" msgstr "Galat saat memulai URL: %s (Perintah adalah: %s)" #: pan/tasks/decoder.cc:117 #, fuzzy, c-format msgid "Couldn’t save file “%s”: %s" msgstr "Tidak dapat menyimpan berkas \"%s\": %s" #: pan/tasks/decoder.cc:139 pan/tasks/encoder.cc:136 #, fuzzy msgid "Error initializing uulib" msgstr "Galat inisialisasi uulib" #: pan/tasks/decoder.cc:154 pan/tasks/socket-impl-gio.cc:360 #: pan/tasks/socket-impl-openssl.cc:642 #, fuzzy, c-format msgid "Error reading from %s: %s" msgstr "Galat saat membaca dari %s: %s" #: pan/tasks/decoder.cc:194 #, fuzzy, c-format msgid "Saved “%s”" msgstr "Disimpan \"%s\"" #: pan/tasks/decoder.cc:201 #, fuzzy, c-format msgid "" "Error saving “%s”:\n" "%s." msgstr "" "Galat saat menyimpan \"%s\":\n" "%s." #: pan/tasks/decoder.cc:314 pan/tasks/task-article.cc:354 #, fuzzy, c-format msgid "Decoding %s" msgstr "Decoding %s (Decoding %s)" #: pan/tasks/encoder.cc:103 pan/tasks/encoder.cc:154 #, fuzzy, c-format msgid "Error loading %s from cache." msgstr "Galat saat memuat %s dari cache." #: pan/tasks/encoder.cc:176 #, fuzzy, c-format msgid "Error encoding %s: %s" msgstr "Galat pengkodean %s: %s" #: pan/tasks/encoder.cc:266 #, fuzzy, c-format msgid "Encoding %s" msgstr "DTLS-Content-Encoding %s tak dikenal\n" #: pan/tasks/nntp.cc:150 #, fuzzy, c-format msgid "%s requires a username, but none is set." msgstr "%s membutuhkan nama pengguna, tetapi tidak ada yang diatur." #: pan/tasks/nntp.cc:163 #, fuzzy, c-format msgid "%s requires a password, but none is set." msgstr "%s membutuhkan kata sandi, tetapi tidak ada yang diatur." #: pan/tasks/nntp.cc:247 #, fuzzy, c-format msgid "Sending “%s” to %s returned an error: %s" msgstr "Mengirim \"%s\" ke %s mengembalikan sebuah kesalahan: %s" #: pan/tasks/nntp.cc:270 #, fuzzy, c-format msgid "Sending “%s” to %s returned an unrecognized response: “%s”" msgstr "Mengirim \"%s\" ke %s mengembalikan respons yang tidak dikenal: \"%s\"" #: pan/tasks/nntp-pool.cc:235 #, fuzzy, c-format msgid "Unable to connect to “%s”" msgstr "Tak bisa menyambung ke '%s': " #: pan/tasks/queue.cc:778 pan/tasks/queue.cc:806 pan/tasks/queue.cc:833 #, fuzzy msgid "No space left on device." msgstr "Tidak ada ruang yang tersisa pada perangkat MTP" #: pan/tasks/socket-impl-gio.cc:173 pan/tasks/socket-impl-gio.cc:211 #: pan/tasks/socket-impl-openssl.cc:214 pan/tasks/socket-impl-openssl.cc:252 #, fuzzy, c-format msgid "Error connecting to “%s”" msgstr "Galat saat menyambung: %s\n" #: pan/tasks/socket-impl-gio.cc:359 pan/tasks/socket-impl-openssl.cc:641 #, fuzzy msgid "Unknown Error" msgstr "Kesalahan Tidak Dikenal" #: pan/tasks/task-article.cc:62 pan/tasks/task-article.cc:160 #, fuzzy, c-format msgid "Saving %s" msgstr "Menyimpan %s" #: pan/tasks/task-article.cc:64 #, fuzzy, c-format msgid "Reading %s" msgstr "Membaca " #: pan/tasks/task-article.cc:326 #, fuzzy, c-format msgid "Article “%s” is incomplete — the news server(s) don’t have part %s" msgstr "Pasal \"%s\" tidak lengkap — server berita tidak memiliki bagian %s" #: pan/tasks/task-groups.cc:41 #, fuzzy, c-format msgid "Getting group list from “%s”" msgstr "Mendapatkan daftar grup dari \"%s\"" #: pan/tasks/task-groups.cc:134 #, fuzzy, c-format msgid "Fetched %lu Groups" msgstr "Mengambil %lu Grup" #: pan/tasks/task-post.cc:35 #, fuzzy, c-format msgid "Posting “%s”" msgstr "Memposting \"%s\"" #: pan/tasks/task-post.cc:80 #, fuzzy, c-format msgid "Posting of “%s” failed: %s" msgstr "Posting dari \"%s\" gagal: %s" #: pan/tasks/task-post.cc:85 #, fuzzy, c-format msgid "Posting of “%s” successful: %s" msgstr "Posting dari \"%s\" berhasil: %s" #: pan/tasks/task-upload.cc:51 #, fuzzy, c-format msgid "Uploading %s" msgstr "Mengunggah \"%s\"" #: pan/tasks/task-upload.cc:265 #, fuzzy, c-format msgid "Uploading %s — Part %d of %d" msgstr "Mengunggah %s — Bagian %d dari %d" #: pan/tasks/task-upload.cc:267 #, fuzzy, c-format msgid "Uploading message body with subject “%s”" msgstr "Mengunggah badan pesan dengan subjek \"%s\"" #: pan/tasks/task-upload.cc:324 #, fuzzy, c-format msgid "Posting of file %s (part %d of %d) failed: No posts allowed by server." msgstr "" "Posting berkas %s (bagian %d dari %d) gagal: Tidak ada posting yang " "diizinkan oleh server." #: pan/tasks/task-upload.cc:332 #, fuzzy, c-format msgid "Posting of file %s (part %d of %d) failed: %s" msgstr "Posting dari berkas %s (bagian %d dari %d) gagal: %s" #: pan/tasks/task-upload.cc:342 pan/tasks/task-upload.cc:349 #, fuzzy, c-format msgid "Posting of file %s (part %d of %d) successful: %s" msgstr "Posting berkas %s (bagian %d dari %d) berhasil: %s" #: pan/tasks/task-upload.cc:359 #, fuzzy, c-format msgid "Posting of file %s successful: %s" msgstr "Posting berkas %s berhasil: %s" #: pan/tasks/task-upload.cc:363 #, fuzzy, c-format msgid "" "Posting of file %s not completely successful: Check the log (right-click " "list item)." msgstr "" "Posting berkas %s tidak sepenuhnya berhasil: Periksa log (klik kanan daftar " "item)." #: pan/tasks/task-upload.cc:380 #, fuzzy, c-format msgid "" "Posting of file %s not successful: Check the log (right-click list item)." msgstr "" "Posting berkas %s tidak berhasil: Periksa log (klik kanan daftar item)." #: pan/tasks/task-xover.cc:83 #, fuzzy, c-format msgid "Getting all headers for “%s”" msgstr "Mendapatkan semua header untuk \"%s\"" #: pan/tasks/task-xover.cc:86 #, fuzzy, c-format msgid "Getting new headers for “%s”" msgstr "Mendapatkan header baru untuk \"%s\"" #. SAMPLE #: pan/tasks/task-xover.cc:90 #, fuzzy, c-format msgid "Sampling headers for “%s”" msgstr "Mengambil sampel header untuk \"%s\"" #: pan/tasks/task-xover.cc:431 #, fuzzy, c-format msgid "%s (%lu parts, %lu articles)" msgstr "%s (%lu bagian, %lu artikel)" #: pan/tasks/task-xover.cc:505 #, fuzzy, c-format msgid "Getting new headers for “%s” done." msgstr "Mendapatkan header baru untuk \"%s\" dilakukan." #: pan/tasks/task-xoverinfo.cc:78 #, fuzzy, c-format msgid "Getting header counts for “%s”" msgstr "Mendapatkan jumlah header untuk \"%s\"" #: pan/usenet-utils/filter-info.cc:217 #, fuzzy msgid "article doesn’t have attachments" msgstr "artikel tidak memiliki lampiran" #: pan/usenet-utils/filter-info.cc:221 msgid "the article has attachments" msgstr "artikel ini memiliki lampiran" #: pan/usenet-utils/filter-info.cc:225 #, fuzzy msgid "the article isn’t cached locally" msgstr "artikel tidak di-cache secara lokal" #: pan/usenet-utils/filter-info.cc:229 #, fuzzy msgid "the article is cached locally" msgstr "artikel ini di-cache secara lokal" #: pan/usenet-utils/filter-info.cc:233 #, fuzzy msgid "the article wasn’t posted by you" msgstr "artikel tidak diposting oleh Anda" #: pan/usenet-utils/filter-info.cc:237 #, fuzzy msgid "the article was posted by you" msgstr "artikel telah diposting oleh Anda" #: pan/usenet-utils/filter-info.cc:241 msgid "the article has been read" msgstr "artikel telah dibaca" #: pan/usenet-utils/filter-info.cc:245 msgid "the article hasn’t been read" msgstr "artikel belum dibaca" #: pan/usenet-utils/filter-info.cc:249 #, fuzzy, c-format msgid "the article is less than %ld bytes long" msgstr "artikel ini kurang dari %ld bytes panjang" #: pan/usenet-utils/filter-info.cc:254 #, fuzzy, c-format msgid "the article is at least %ld bytes long" msgstr "artikel ini setidaknya %ld bytes panjang" #: pan/usenet-utils/filter-info.cc:259 #, fuzzy, c-format msgid "the article is less than %ld lines long" msgstr "artikel ini kurang dari %ld baris panjang" #: pan/usenet-utils/filter-info.cc:264 #, fuzzy, c-format msgid "the article is at least %ld lines long" msgstr "artikel ini setidaknya %ld baris panjang" #: pan/usenet-utils/filter-info.cc:269 #, fuzzy, c-format msgid "the article is less than %ld days old" msgstr "artikel ini kurang dari %ld days old" #: pan/usenet-utils/filter-info.cc:274 #, fuzzy, c-format msgid "the article is at least %ld days old" msgstr "artikel ini setidaknya %ld hari tua" #: pan/usenet-utils/filter-info.cc:279 #, fuzzy, c-format msgid "the article was posted to less than %ld groups" msgstr "artikel telah diposting ke kurang dari %ld kelompok" #: pan/usenet-utils/filter-info.cc:284 #, fuzzy, c-format msgid "the article was posted to at least %ld groups" msgstr "artikel telah diposting ke setidaknya %ld kelompok" #: pan/usenet-utils/filter-info.cc:289 #, fuzzy, c-format msgid "the article’s score is less than %ld" msgstr "skor artikel kurang dari %ld" #: pan/usenet-utils/filter-info.cc:294 #, fuzzy, c-format msgid "the article’s score is %ld or higher" msgstr "skor artikel adalah %ld atau lebih tinggi" #: pan/usenet-utils/filter-info.cc:303 pan/usenet-utils/filter-info.cc:313 #, fuzzy, c-format msgid "%s doesn’t contain “%s”" msgstr "%s tidak mengandung \"%s\"" #: pan/usenet-utils/filter-info.cc:304 pan/usenet-utils/filter-info.cc:314 #, c-format msgid "%s isn’t “%s”" msgstr "%s bukan \"%s\"" #: pan/usenet-utils/filter-info.cc:305 pan/usenet-utils/filter-info.cc:315 #, fuzzy, c-format msgid "%s doesn’t begin with “%s”" msgstr "%s tidak dimulai dengan \"%s\"" #: pan/usenet-utils/filter-info.cc:306 pan/usenet-utils/filter-info.cc:316 #, fuzzy, c-format msgid "%s doesn’t end with “%s”" msgstr "%s tidak di berakhir dengan \"%s\"" #: pan/usenet-utils/filter-info.cc:307 pan/usenet-utils/filter-info.cc:317 #, fuzzy, c-format msgid "%s doesn’t match the regex “%s”" msgstr "%s tidak cocok dengan regex \"%s\"" #: pan/usenet-utils/filter-info.cc:329 #, c-format msgid "%s contains “%s”" msgstr "%s berisi \"%s\"" #: pan/usenet-utils/filter-info.cc:330 #, fuzzy, c-format msgid "%s is “%s”" msgstr "ruas tidak valid '%s%s%s%s%s'; %s%s%s" #: pan/usenet-utils/filter-info.cc:331 #, fuzzy, c-format msgid "%s begins with “%s”" msgstr "%s dimulai dengan \"%s\"" #: pan/usenet-utils/filter-info.cc:332 #, fuzzy, c-format msgid "%s ends with “%s”" msgstr "%s berakhir dengan \"%s\"" #: pan/usenet-utils/filter-info.cc:333 #, fuzzy, c-format msgid "%s matches the regex “%s”" msgstr "%s cocok dengan regex \"%s\"" #: pan/usenet-utils/filter-info.cc:339 #, fuzzy msgid "Any of these tests fail:" msgstr "Salah satu tes ini gagal:" #: pan/usenet-utils/filter-info.cc:346 #, fuzzy msgid "All of these tests pass:" msgstr "Semua tes ini lulus:" #: pan/usenet-utils/filter-info.cc:353 #, fuzzy msgid "None of these tests pass:" msgstr "Tak satu pun dari tes ini lulus:" #: pan/usenet-utils/filter-info.cc:360 #, fuzzy msgid "Any of these tests pass:" msgstr "Salah satu tes ini lulus:" #: pan/usenet-utils/gnksa.cc:880 #, fuzzy, c-format msgid "No email address provided; generating message-id with domain “%s”" msgstr "" "Tidak ada alamat email yang disediakan; menghasilkan message-id dengan " "domain \"%s\"" #: pan/usenet-utils/message-check.cc:124 #, fuzzy msgid "Warning: Reply seems to be top-posted." msgstr "Peringatan: Balas tampaknya diposting teratas." #: pan/usenet-utils/message-check.cc:145 #, fuzzy msgid "Warning: The signature marker should be “-- ”, not “--”." msgstr "Peringatan: Penanda tanda tangan harus \"-- \", bukan \"--\"." #: pan/usenet-utils/message-check.cc:162 #, fuzzy msgid "Warning: Signature prefix with no signature." msgstr "Peringatan: Awalan tanda tangan tanpa tanda tangan." #: pan/usenet-utils/message-check.cc:167 #, fuzzy msgid "Warning: Signature is more than 4 lines long." msgstr "Peringatan: Tanda tangan lebih dari 4 baris panjang." #: pan/usenet-utils/message-check.cc:172 #, fuzzy msgid "Warning: Signature is more than 80 characters wide." msgstr "Peringatan: Tanda tangan lebih dari 80 karakter lebar." #: pan/usenet-utils/message-check.cc:198 #, fuzzy, c-format msgid "Warning: %d line is more than 80 characters wide." msgid_plural "Warning: %d lines are more than 80 characters wide." msgstr[0] "Peringatan: %d baris lebih dari 80 karakter lebar." msgstr[1] "" #: pan/usenet-utils/message-check.cc:223 #, fuzzy msgid "Error: Message is empty." msgstr "Galat: Pesan kosong." #: pan/usenet-utils/message-check.cc:258 #, fuzzy msgid "Warning: The message is entirely quoted text!" msgstr "Peringatan: Pesan sepenuhnya dikutip teks!" #: pan/usenet-utils/message-check.cc:259 #, fuzzy msgid "Warning: The message is mostly quoted text." msgstr "Peringatan: Pesan sebagian besar dikutip teks." #: pan/usenet-utils/message-check.cc:309 #, fuzzy msgid "Error: Message appears to have no new content." msgstr "Kesalahan: Pesan tampaknya tidak memiliki konten baru." #: pan/usenet-utils/message-check.cc:344 pan/usenet-utils/message-check.cc:383 #, fuzzy, c-format msgid "" "Warning: The posting profile’s server doesn’t carry newsgroup\n" "\t“%s”.\n" "\tIf the group name is correct, switch profiles in the “From:”\n" "\tline or edit the profile with “Edit → Manage Posting Profiles”." msgstr "" "Peringatan: Server profil posting tidak membawa newsgroup\n" "\t\"%s\".\n" "\tJika nama grup sudah benar, alihkan profil di \"Dari:\"\n" "\tbaris atau mengedit profil dengan \"Edit → Manage Posting Profil\"." #: pan/usenet-utils/message-check.cc:355 #, fuzzy msgid "Warning: Following-Up to too many groups." msgstr "Peringatan: Menindaklanjuti terlalu banyak kelompok." #: pan/usenet-utils/message-check.cc:366 #, fuzzy msgid "Error: No Subject specified." msgstr "Galat: Tidak ada subjek yang ditentukan." #: pan/usenet-utils/message-check.cc:395 #, fuzzy, c-format msgid "Warning: Group “%s” is read-only." msgstr "Peringatan: Grup \"%s\" hanya-baca." #: pan/usenet-utils/message-check.cc:404 #, fuzzy msgid "Error: Posting to a very large number of groups." msgstr "Galat: Posting ke sejumlah besar grup." #: pan/usenet-utils/message-check.cc:409 #, fuzzy msgid "Warning: Posting to a large number of groups." msgstr "Peringatan: Memposting ke sejumlah besar grup." #: pan/usenet-utils/message-check.cc:416 #, fuzzy msgid "Warning: Crossposting without setting Followup-To header." msgstr "Peringatan: Posting silang tanpa mengatur header Tindak Lanjut." #: pan/usenet-utils/message-check.cc:441 #, fuzzy msgid "Error: Bad email address." msgstr "Galat: Alamat email yang buruk." #: pan/usenet-utils/message-check.cc:450 #, fuzzy msgid "Warning: Most newsgroups frown upon HTML posts." msgstr "" "Peringatan: Sebagian besar newsgroup mengerutkan kening pada posting HTML." #: pan/usenet-utils/message-check.cc:490 #, fuzzy msgid "Error: No Recipients." msgstr "Galat: Tidak ada penerima." #: pan/usenet-utils/scorefile.cc:304 #, fuzzy, c-format msgid "" "Error reading score in %*.*s, line %d: expected “Expires: MM/DD/YYYY” or " "“Expires: DD-MM-YYYY”." msgstr "" "Galat saat membaca skor di %*.*s, baris %d: diduga \"Berakhir: MM/DD/YYYY\" " "atau \"Berakhir: DD-MM-YYYY\"." #: pan/usenet-utils/scorefile.cc:307 #, fuzzy, c-format msgid "Expired old score from %*.*s, line %d" msgstr "Skor lama kadaluarsa dari %*.*s, baris %d" #: pan/usenet-utils/scorefile.cc:380 #, fuzzy, c-format msgid "Error reading score in %*.*s, line %d: unexpected line." msgstr "Galat saat membaca skor dalam %*.*s, baris %d: baris tak terduga." #: pan/usenet-utils/scorefile.cc:429 #, fuzzy, c-format msgid "Read %lu scoring rules in %lu sections from “%s”" msgstr "Baca %lu mencetak aturan di daerah %lu dari \"%s\"" #: pan/usenet-utils/ssl-utils.h:189 #, fuzzy, c-format msgid "Error printing the server certificate for “%s”" msgstr "Galat saat mencetak sertifikat server untuk \"%s\"" #: pan/usenet-utils/ssl-utils.h:205 #, fuzzy, c-format msgid "" "The current server “%s” sent this security certificate:\n" "\n" msgstr "Server saat ini \"%s\" mengirim sertifikat keamanan ini:" #: pan/usenet-utils/ssl-utils.h:206 #, fuzzy, c-format msgid "" "Certificate information for server “%s”:\n" "\n" msgstr "Informasi sertifikat untuk server \"%s\":" #: pan/usenet-utils/ssl-utils.h:208 #, fuzzy, c-format msgid "" "%sIssuer information:\n" "%s\n" "Valid until: %s\n" "\n" "Not valid before: %s\n" "\n" msgstr "" "Informasipenerbit %s:\n" "%s\n" "Berlaku hingga: %s\n" "\n" "Tidak valid sebelumnya: %s" #: pan/usenet-utils/text-massager.cc:399 #, fuzzy msgid "> [quoted text muted]" msgstr "• [teks dikutip dibisukan]" #: pan/usenet-utils/text-massager.cc:581 #, fuzzy msgid "no_name" msgstr "Tak ada nama" #: pan/usenet-utils/text-massager.cc:582 #, fuzzy msgid "no_mail" msgstr "_Surat" pan-0.162/po/ie.po000066400000000000000000002466131475412772400137040ustar00rootroot00000000000000# Interlingue translation for pan. # Copyright (C) 2024 pan's COPYRIGHT HOLDER # This file is distributed under the same license as the pan package. # Olga Smirnova , 2024. # msgid "" msgstr "" "Project-Id-Version: pan master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/pan/issues/\n" "POT-Creation-Date: 2024-03-19 17:51+0000\n" "PO-Revision-Date: 2024-03-22 02:06+0700\n" "Last-Translator: OIS \n" "Language-Team: Interlingue \n" "Language: ie\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Poedit 3.4\n" #. update the titlebar #: org.gnome.pan.desktop.in:3 org.gnome.pan.metainfo.xml.in:27 #: pan/gui/dl-headers-ui.cc:119 pan/gui/gui.cc:1040 pan/gui/gui.cc:1665 #: pan/gui/gui.cc:1985 pan/gui/score-add-ui.cc:600 msgid "Pan" msgstr "Pan" #: org.gnome.pan.desktop.in:4 msgid "Newsreader" msgstr "Letor de novas" #: org.gnome.pan.desktop.in:5 org.gnome.pan.metainfo.xml.in:7 msgid "Read and post Usenet articles" msgstr "Leer e inviar articules de Usenet" #. Translators: Search terms to find this application. Do NOT translate or localise the semicolons! The list MUST also end with a semicolon! #: org.gnome.pan.desktop.in:7 msgid "usenet;news;newsreader;newsgroup;article;yenc;nzb;" msgstr "" #: org.gnome.pan.metainfo.xml.in:6 msgid "Pan Newsreader" msgstr "Letor de novas Pan" #: org.gnome.pan.metainfo.xml.in:9 msgid "" "Pan is a Usenet newsreader that is good at both text and binaries. It " "supports offline reading, scoring and killfiles, yEnc, NZB, PGP handling, " "multiple servers, and secure connections." msgstr "" #: org.gnome.pan.metainfo.xml.in:12 msgid "" "It is also the only Unix newsreader to get a perfect score on the Good Net-" "Keeping Seal of Approval evaluations." msgstr "" #: pan/data/article-cache.cc:144 pan/data/encode-cache.cc:62 #, fuzzy, c-format msgid "Error opening directory: \"%s\": %s" msgstr "Ne successat aperter un file %s." #: pan/data/article-cache.cc:235 pan/data/article-cache.cc:244 #: pan/data-impl/data-io.cc:279 pan/data-impl/data-io.cc:311 #: pan/gui/post-ui.cc:1768 #, fuzzy, c-format msgid "Unable to save \"%s\" %s" msgstr "Ne successat lansar %s: %s" #: pan/data/article-cache.cc:362 #, fuzzy, c-format msgid "Error opening file \"%s\" %s" msgstr "Un errore evenit apertente li file «%s»" #: pan/data/article-cache.cc:393 pan/data-impl/profiles.cc:175 #: pan/data-impl/server.cc:495 pan/general/file-util.cc:312 #: pan/gui/post-ui.cc:637 pan/gui/task-pane.cc:741 #, fuzzy, c-format msgid "Error reading file \"%s\": %s" msgstr "Un errore evenit leente «%s»: %s" #: pan/data/cert-store.cc:261 #, c-format msgid "Error opening SSL certificate directory: \"%s\": %s" msgstr "" #: pan/data/cert-store.cc:292 #, c-format msgid "Successfully added %d SSL PEM certificate(s) to Certificate Store." msgstr "" #: pan/data/cert-store.cc:312 msgid "" "Error initializing Certificate Store. Check that the permissions for the " "folders ~/.pan2 and ~/.pan2/ssl_certs are set correctly. Fatal, exiting." msgstr "" #: pan/data/cert-store.cc:361 #, fuzzy, c-format msgid "Could not export certificate for server: %s" msgstr "Rechnername des Servers konnte nicht ermittelt werden: %s!" #. load_group_descriptions (*_data_io); #: pan/data-impl/data-impl.cc:116 #, c-format msgid "Loaded data backend in %.1f seconds" msgstr "" #: pan/data-impl/data-impl.cc:152 #, fuzzy msgid "Pan Newsreader's server passwords" msgstr "Letor de novas Pan" #: pan/data-impl/groups.cc:102 #, fuzzy, c-format msgid "Skipping newsrc file for server \"%s\"" msgstr "Creator de torrentes omisse li file «%s»: %s" #: pan/data-impl/headers.cc:618 #, c-format msgid "Expired %lu old articles from \"%s\"" msgstr "" #: pan/data-impl/headers.cc:625 #, c-format msgid "" "Unsupported data version for %s headers: %d.\n" "Are you running an old version of Pan by accident?" msgstr "" #: pan/data-impl/headers.cc:640 #, c-format msgid "Loaded %llu articles for \"%s\" in %.1f seconds (%.0f per second)" msgstr "" #: pan/data-impl/headers.cc:869 #, c-format msgid "" "Saved %lu parts, %lu articles in \"%s\" in %.1f seconds (%.0f articles/sec)" msgstr "" #: pan/data-impl/headers.cc:1202 #, fuzzy, c-format msgid "Added %lu articles to %s." msgstr "%s\t( %lu octetes )" #: pan/data-impl/server.cc:263 #, c-format msgid "Received no password from libsecret for server %s." msgstr "" #: pan/data-impl/xover.cc:241 #, c-format msgid "Error reading from %s: unknown group \"%s\"" msgstr "" #: pan/general/editor-spawner.cc:66 #, c-format msgid "Error parsing \"external editor\" command line: %s (Command was: %s)" msgstr "" #: pan/general/editor-spawner.cc:110 #, fuzzy, c-format msgid "Error starting external editor: %s" msgstr "Un errore evenit auto-lansante un programma: %s" #: pan/general/e-util.cc:164 #, fuzzy msgid "%l:%M %p" msgstr "%l:%M %p" #: pan/general/e-util.cc:165 #, fuzzy msgid "Today %l:%M %p" msgstr "Hodie a %H:%M" #: pan/general/e-util.cc:166 #, fuzzy msgid "%a %l:%M %p" msgstr "%a. %H:%M" #: pan/general/e-util.cc:167 #, fuzzy msgid "%b %d %l:%M %p" msgstr "%d %b %H:%M" #: pan/general/e-util.cc:168 #, fuzzy msgid "%b %d %Y" msgstr "%d.%m.%y" #: pan/general/e-util.cc:200 msgid "?" msgstr "?" #: pan/general/text-match.cc:194 #, fuzzy, c-format msgid "Can't use regular expression \"%s\": %s" msgstr "Expression regulari es ínvalid: %s" #: pan/general/utf8-utils.cc:212 msgid "Couldn't determine article encoding. Non-UTF8 characters were removed." msgstr "" #: pan/gui/actions.cc:306 pan/gui/post-ui.cc:452 msgid "_File" msgstr "_File" #: pan/gui/actions.cc:307 pan/gui/post-ui.cc:453 msgid "_Edit" msgstr "_Redacter" #: pan/gui/actions.cc:308 pan/gui/prefs-ui.cc:1121 msgid "_Layout" msgstr "_Arangeament" #: pan/gui/actions.cc:309 #, fuzzy msgid "_Group Pane" msgstr "Gruppar secun..." #: pan/gui/actions.cc:310 #, fuzzy msgid "_Header Pane" msgstr "Cap-linea:" #: pan/gui/actions.cc:311 #, fuzzy msgid "_Body Pane" msgstr "_Córpor:" #: pan/gui/actions.cc:312 msgid "_View" msgstr "_Vise" #: pan/gui/actions.cc:313 msgid "Filte_r" msgstr "Filt_re" #: pan/gui/actions.cc:314 msgid "_Go" msgstr "_Ear" #: pan/gui/actions.cc:315 pan/gui/prefs-ui.cc:1171 msgid "_Actions" msgstr "_Actiones" #: pan/gui/actions.cc:316 msgid "_Articles" msgstr "_Articules" #: pan/gui/actions.cc:317 msgid "G_roups" msgstr "G_ruppes" #: pan/gui/actions.cc:318 pan/gui/actions.cc:319 msgid "_Post" msgstr "_Inviar" #: pan/gui/actions.cc:320 msgid "_Help" msgstr "Au_xilie" #: pan/gui/actions.cc:323 msgid "_Read Group" msgstr "_Leer li gruppe" #: pan/gui/actions.cc:324 msgid "Read Group" msgstr "Leer li gruppe" #: pan/gui/actions.cc:328 #, fuzzy msgid "_Mark Selected Groups Read" msgstr "Marcar omni quam leet" #: pan/gui/actions.cc:329 #, fuzzy msgid "Mark Selected Groups Read" msgstr "Marcar omni quam leet" #: pan/gui/actions.cc:333 #, fuzzy msgid "_Delete Selected Groups' Articles" msgstr "Deleter li selectet fotos" #: pan/gui/actions.cc:334 #, fuzzy msgid "Delete Selected Groups' Articles" msgstr "Deleter li selectet fotos" #: pan/gui/actions.cc:338 msgid "Get New _Headers in Selected Groups" msgstr "" #: pan/gui/actions.cc:339 msgid "Get New Headers in Selected Groups" msgstr "" #: pan/gui/actions.cc:343 pan/gui/actions.cc:348 msgid "Get New _Headers in Subscribed Groups" msgstr "" #: pan/gui/actions.cc:344 pan/gui/actions.cc:349 msgid "Get New Headers in Subscribed Groups" msgstr "" #: pan/gui/actions.cc:353 msgid "Get _Headers..." msgstr "Obtener _cap-lineas..." #: pan/gui/actions.cc:354 msgid "Get Headers..." msgstr "Obtener cap-lineas..." #: pan/gui/actions.cc:358 pan/gui/actions.cc:359 #, fuzzy msgid "Refresh Group List" msgstr "Refriscar li liste" #: pan/gui/actions.cc:363 msgid "_Subscribe" msgstr "_Abonnar" #: pan/gui/actions.cc:364 msgid "Subscribe" msgstr "Abonnar" #: pan/gui/actions.cc:368 msgid "_Unsubscribe" msgstr "D_esabonnar" #: pan/gui/actions.cc:369 msgid "Unsubscribe" msgstr "Desabonnar" #: pan/gui/actions.cc:373 msgid "_Save Articles..." msgstr "_Gardar articules..." #: pan/gui/actions.cc:374 msgid "Save Articles..." msgstr "Gardar articules..." #: pan/gui/actions.cc:378 msgid "Save Articles from Selected _NZB..." msgstr "" #: pan/gui/actions.cc:379 msgid "Save Articles from Selected NZB" msgstr "" #: pan/gui/actions.cc:383 #, fuzzy msgid "Save Articles to an NZB _File..." msgstr "Pan: gardar articules" #: pan/gui/actions.cc:384 #, fuzzy msgid "Save Articles to an NZB File" msgstr "Pan: gardar articules" #: pan/gui/actions.cc:388 pan/gui/actions.cc:389 msgid "Print" msgstr "Printar" #: pan/gui/actions.cc:393 #, fuzzy msgid "_Import NZB Files..." msgstr "Importar files de profil (*.icc)" #: pan/gui/actions.cc:398 #, fuzzy msgid "_Cancel Last Task" msgstr "&Anullar" #: pan/gui/actions.cc:403 msgid "_Task Manager" msgstr "Gerente de _taches" #: pan/gui/actions.cc:408 #, fuzzy msgid "_Event Log" msgstr "Null eveniment" #: pan/gui/actions.cc:413 msgid "_Quit" msgstr "S_urtir" #: pan/gui/actions.cc:418 #, fuzzy msgid "Select _All Articles" msgstr "Select omnicos" #: pan/gui/actions.cc:423 #, fuzzy msgid "_Deselect All Articles" msgstr "Deselecte omni files" #: pan/gui/actions.cc:428 #, fuzzy msgid "Add Su_bthreads to Selection" msgstr "Adjunter a un _selection" #: pan/gui/actions.cc:433 #, fuzzy msgid "Add _Threads to Selection" msgstr "Adjunter a un _selection" #: pan/gui/actions.cc:438 #, fuzzy msgid "Add _Similar Articles to Selection" msgstr "Adjunter a un _selection" #: pan/gui/actions.cc:443 #, fuzzy msgid "Select Article _Body" msgstr "Articul" #: pan/gui/actions.cc:448 #, fuzzy msgid "Edit _Preferences" msgstr "Modificar preferenties" #: pan/gui/actions.cc:453 #, fuzzy msgid "Edit Selected _Group's Preferences" msgstr "Modificar preferenties de Caja" #: pan/gui/actions.cc:458 #, fuzzy msgid "Edit S_core File" msgstr "Redacter tags - %s ex %s" #: pan/gui/actions.cc:463 pan/gui/post-ui.cc:469 #, fuzzy msgid "Edit P_osting Profiles" msgstr "Redacter _profiles..." #: pan/gui/actions.cc:468 #, fuzzy msgid "Edit _News Servers" msgstr "_Servitores:" #: pan/gui/actions.cc:473 #, fuzzy msgid "Jump to _Group Tab" msgstr "Gruppe de cartes %d" #: pan/gui/actions.cc:478 #, fuzzy msgid "Jump to _Header Tab" msgstr "Cap-linea:" #: pan/gui/actions.cc:483 #, fuzzy msgid "Jump to _Body Tab" msgstr "_Ear a" #: pan/gui/actions.cc:488 #, fuzzy msgid "_Rot13 Selected Text" msgstr "Null textu es selectet" #: pan/gui/actions.cc:493 #, fuzzy msgid "Clear _Header Pane" msgstr "_Vacuar" #: pan/gui/actions.cc:498 #, fuzzy msgid "Clear _Body Pane" msgstr "_Córpor:" #: pan/gui/actions.cc:503 #, fuzzy msgid "Cache Article" msgstr "Articul" #: pan/gui/actions.cc:508 msgid "Read Article" msgstr "Leer un articul" #: pan/gui/actions.cc:513 #, fuzzy msgid "Show Article Information" msgstr "Monstra li information" #: pan/gui/actions.cc:518 #, fuzzy msgid "Read _More" msgstr "" "It apare quam gvfs es " "índisponibil.\n" "Su important functiones, includente li supporte del Paper-corb,\n" "removibil medies e navigation de lontan localisationes,\n" "ne va functionar. [Leer plu]" #: pan/gui/actions.cc:519 #, fuzzy msgid "Read More" msgstr "" "It apare quam
gvfs es " "índisponibil.\n" "Su important functiones, includente li supporte del Paper-corb,\n" "removibil medies e navigation de lontan localisationes,\n" "ne va functionar. [Leer plu]" #: pan/gui/actions.cc:523 #, fuzzy msgid "Read _Back" msgstr "_Leet" #: pan/gui/actions.cc:524 #, fuzzy msgid "Read Back" msgstr "_Leet" #: pan/gui/actions.cc:528 #, fuzzy msgid "Next _Unread Group" msgstr "Sequent _gruppe" #: pan/gui/actions.cc:533 msgid "Next _Group" msgstr "Sequent _gruppe" #: pan/gui/actions.cc:538 #, fuzzy msgid "Next _Unread Article" msgstr "Sequent articul" #: pan/gui/actions.cc:539 #, fuzzy msgid "Next Unread Article" msgstr "Sequent articul" #: pan/gui/actions.cc:543 msgid "Next _Article" msgstr "Sequent _articul" #: pan/gui/actions.cc:544 msgid "Next Article" msgstr "Sequent articul" #: pan/gui/actions.cc:548 #, fuzzy msgid "Next _Watched Article" msgstr "Sequent articul" #: pan/gui/actions.cc:553 #, fuzzy msgid "Next Unread _Thread" msgstr "Ínleet" #: pan/gui/actions.cc:554 #, fuzzy msgid "Next Unread Thread" msgstr "Ínleet" #: pan/gui/actions.cc:558 msgid "Next Threa_d" msgstr "Sequent te_ma" #: pan/gui/actions.cc:563 #, fuzzy msgid "Pre_vious Article" msgstr "Trovar pre_cedent" #: pan/gui/actions.cc:568 #, fuzzy msgid "Previous _Thread" msgstr "Tema" #: pan/gui/actions.cc:573 #, fuzzy msgid "_Parent Article" msgstr "Articul" #: pan/gui/actions.cc:578 #, fuzzy msgid "Ignore _Author" msgstr "&Ignorar" #: pan/gui/actions.cc:582 #, fuzzy msgid "_Watch Thread" msgstr "Tema" #: pan/gui/actions.cc:587 msgid "_Ignore Thread" msgstr "_Ignorar li tema" #: pan/gui/actions.cc:592 pan/gui/actions.cc:593 msgid "_Toggle Flag On/Off for Thread" msgstr "" #: pan/gui/actions.cc:597 pan/gui/actions.cc:598 #, fuzzy msgid "_Turn Flag Off for Thread" msgstr "Desactivar li sincronisation del Paperiere" #: pan/gui/actions.cc:602 pan/gui/actions.cc:603 #, fuzzy msgid "_Select All Flagged Threads" msgstr "Select _omni" #: pan/gui/actions.cc:607 pan/gui/actions.cc:608 #, fuzzy msgid "_Go to Next Flagged Thread" msgstr "Ear al sequent element de diarium" #: pan/gui/actions.cc:612 pan/gui/actions.cc:613 #, fuzzy msgid "_Go to Last Flagged Thread" msgstr "Ear al ultim definition" #: pan/gui/actions.cc:617 pan/gui/actions.cc:618 #, fuzzy msgid "_Invert Selection" msgstr "_Inverter li selection" #: pan/gui/actions.cc:622 msgid "Edit Article's Watch/Ignore/Score..." msgstr "" #: pan/gui/actions.cc:627 #, fuzzy msgid "Add a _Scoring Rule..." msgstr "Adjunter un nov regul" #: pan/gui/actions.cc:632 #, fuzzy msgid "Cance_l Article..." msgstr "Annu_llar" #: pan/gui/actions.cc:637 #, fuzzy msgid "_Supersede Article..." msgstr "Articul" #: pan/gui/actions.cc:642 #, fuzzy msgid "_Delete Article" msgstr "Articul" #: pan/gui/actions.cc:647 #, fuzzy msgid "Clear Article Cache" msgstr "Articul" #: pan/gui/actions.cc:652 #, fuzzy msgid "_Mark Article as Read" msgstr "Articul" #: pan/gui/actions.cc:657 #, fuzzy msgid "Mark Article as _Unread" msgstr "Marcar quam ínleet" #: pan/gui/actions.cc:663 #, fuzzy msgid "_Mark Thread as Read" msgstr "Marcar omni quam leet" #: pan/gui/actions.cc:668 #, fuzzy msgid "Mark Thread as _Unread" msgstr "Marcar quam ínleet" #: pan/gui/actions.cc:673 #, fuzzy msgid "_Post to Newsgroup" msgstr "Novas-gruppe" #: pan/gui/actions.cc:674 #, fuzzy msgid "Post to Newsgroup" msgstr "Novas-gruppe" #: pan/gui/actions.cc:678 #, fuzzy msgid "_Followup to Newsgroup" msgstr "Novas-gruppe" #: pan/gui/actions.cc:679 #, fuzzy msgid "Followup to Newsgroup" msgstr "Novas-gruppe" #: pan/gui/actions.cc:683 #, fuzzy msgid "_Reply to Author in Mail" msgstr "de {author}" #: pan/gui/actions.cc:689 msgid "_Contents" msgstr "_Contenete" #: pan/gui/actions.cc:695 msgid "_Pan Home Page" msgstr "Hem-págine de _Pan" #: pan/gui/actions.cc:700 #, fuzzy msgid "Give _Feedback or Report a Bug..." msgstr "Inviar un raporte de defecte" #: pan/gui/actions.cc:705 msgid "_About" msgstr "_Pri" #: pan/gui/actions.cc:710 #, fuzzy msgid "Edit _SSL Certificates" msgstr "Certificates" #: pan/gui/actions.cc:725 #, fuzzy msgid "_Thread Headers" msgstr "rubricas" #: pan/gui/actions.cc:726 #, fuzzy msgid "Wrap Article Body" msgstr "Articul" #: pan/gui/actions.cc:727 #, fuzzy msgid "Show Article Signature" msgstr "Articul" #: pan/gui/actions.cc:728 #, fuzzy msgid "Mute _Quoted Text" msgstr "A_ssurdar" #: pan/gui/actions.cc:729 msgid "Show All _Headers in Body Pane" msgstr "" #: pan/gui/actions.cc:730 #, fuzzy msgid "Show _Smilies as Graphics" msgstr "Grafica:" #: pan/gui/actions.cc:731 msgid "Show *Bold*, __Underlined__, and /Italic/" msgstr "Monstrar *grass*, __sublineat__ e /italic/ textu" #: pan/gui/actions.cc:732 #, fuzzy msgid "Size Pictures to _Fit" msgstr "Adjustar al dimension del fenestre" #: pan/gui/actions.cc:733 #, fuzzy msgid "Use _Monospace Font" msgstr "Usar li fonde de regular largore del sistema" #: pan/gui/actions.cc:734 #, fuzzy msgid "Set Focus to Images" msgstr "_Foco" #: pan/gui/actions.cc:735 #, fuzzy msgid "Highlight _URLs" msgstr "Marcar" #: pan/gui/actions.cc:738 #, fuzzy msgid "_Work Online" msgstr "Labor" #: pan/gui/actions.cc:739 #, fuzzy msgid "_Tabbed Layout" msgstr "Interfacie con cartes" #: pan/gui/actions.cc:740 #, fuzzy msgid "Show Group _Pane" msgstr "Monstrar li panel bass" #: pan/gui/actions.cc:741 #, fuzzy msgid "Show Hea_der Pane" msgstr "Monstrar li panel bass" #: pan/gui/actions.cc:742 #, fuzzy msgid "Show Bod_y Pane" msgstr "Monstrar li panel bass" #: pan/gui/actions.cc:743 msgid "Show _Toolbar" msgstr "Panel de _instrumentarium" #: pan/gui/actions.cc:744 #, fuzzy msgid "Abbreviate Group Names" msgstr "_Gruppe:" #: pan/gui/actions.cc:746 #, fuzzy msgid "Match Only _Read Articles" msgstr " [solmen letion]" #: pan/gui/actions.cc:746 #, fuzzy msgid "Match Only Read Articles" msgstr " [solmen letion]" #: pan/gui/actions.cc:747 #, fuzzy msgid "Match Only _Unread Articles" msgstr "_Integri paroles" #: pan/gui/actions.cc:747 #, fuzzy msgid "Match Only Unread Articles" msgstr "_Integri paroles" #: pan/gui/actions.cc:748 #, fuzzy msgid "Match Only _Cached Articles" msgstr "_Integri paroles" #: pan/gui/actions.cc:748 #, fuzzy msgid "Match Only Cached Articles" msgstr "_Integri paroles" #: pan/gui/actions.cc:749 #, fuzzy msgid "Match Only _Complete Articles" msgstr "_Integri paroles" #: pan/gui/actions.cc:749 #, fuzzy msgid "Match Only Complete Articles" msgstr "_Integri paroles" #: pan/gui/actions.cc:750 #, fuzzy msgid "Match Only _My Articles" msgstr "_Integri paroles" #: pan/gui/actions.cc:750 #, fuzzy msgid "Match Only My Articles" msgstr "Integri paroles" #: pan/gui/actions.cc:751 #, fuzzy msgid "Match Only _Watched Articles" msgstr "_Integri paroles" #: pan/gui/actions.cc:751 #, fuzzy msgid "Match Only Watched Articles" msgstr "_Integri paroles" #: pan/gui/actions.cc:753 msgid "Match Scores of 9999 (_Watched)" msgstr "" #: pan/gui/actions.cc:754 msgid "Match Scores of 5000...9998 (_High)" msgstr "" #: pan/gui/actions.cc:755 msgid "Match Scores of 1...4999 (Me_dium)" msgstr "" #: pan/gui/actions.cc:756 msgid "Match Scores of 0 (_Normal)" msgstr "" #: pan/gui/actions.cc:757 msgid "Match Scores of -9998...-1 (_Low)" msgstr "" #: pan/gui/actions.cc:758 msgid "Match Scores of -9999 (_Ignored)" msgstr "" #: pan/gui/actions.cc:760 #, fuzzy msgid "Enable/Disable All _Rules" msgstr "(Des)activar li control de ortografie" #: pan/gui/actions.cc:788 #, fuzzy msgid "Show Matching _Articles" msgstr "Articules" #: pan/gui/actions.cc:789 msgid "Show Matching Articles' _Threads" msgstr "" #: pan/gui/actions.cc:790 msgid "Show Matching Articles' _Subthreads" msgstr "" #: pan/gui/body-pane.cc:1036 #, fuzzy msgid "Unnamed File" msgstr "" #: pan/gui/body-pane.cc:1117 pan/gui/gui.cc:1956 pan/gui/header-pane.cc:1306 #: pan/gui/header-pane.cc:1735 pan/gui/post-ui.cc:2641 pan/gui/prefs-ui.cc:865 #: pan/gui/score-add-ui.cc:139 pan/gui/task-pane.cc:796 msgid "Subject" msgstr "Tema" #: pan/gui/body-pane.cc:1119 pan/gui/gui.cc:1956 msgid "From" msgstr "De" #: pan/gui/body-pane.cc:1121 pan/gui/gui.cc:1957 pan/gui/header-pane.cc:1814 #: pan/gui/log-ui.cc:308 pan/gui/prefs-ui.cc:861 msgid "Date" msgstr "Date" #: pan/gui/body-pane.cc:1128 msgid "Newsgroups" msgstr "Novas-gruppes" #: pan/gui/body-pane.cc:1135 pan/gui/body-pane.cc:1143 #: pan/gui/body-pane.cc:1150 msgid "User-Agent" msgstr "Agente-del-usator" #: pan/gui/body-pane.cc:1156 msgid "Followup-To" msgstr "" #: pan/gui/body-pane.cc:1166 msgid "Reply-To" msgstr "Responder-a" #: pan/gui/body-pane.cc:1214 msgid " from " msgstr " de " #: pan/gui/body-pane.cc:1216 msgid " at " msgstr "" #: pan/gui/body-pane.cc:1305 #, c-format msgid "" "This is a PGP-Signed message.\n" "\n" "Signer: %s ('%s')\n" "Valid until: %s\n" "Created on: %s" msgstr "" #: pan/gui/body-pane.cc:1310 msgid "always" msgstr "sempre" #: pan/gui/body-pane.cc:1530 msgid "Copy _URL" msgstr "Copiar li _URL" #: pan/gui/body-pane.cc:1718 #, fuzzy msgid "Save Attachment As..." msgstr "_Salvar atachament quam..." #: pan/gui/body-pane.cc:1721 msgid "Save All Attachments" msgstr "Gardar omni atachamentes" #: pan/gui/body-pane.cc:1792 msgid "Attachments:" msgstr "Atachamentes:" #: pan/gui/body-pane.cc:1812 #, fuzzy msgid "Text View" msgstr "Previder li textu:" #: pan/gui/body-pane.cc:1821 #, fuzzy msgid "HTML View" msgstr "Quam _HTML..." #: pan/gui/dl-headers-ui.cc:125 #, c-format msgid "%d Group" msgid_plural "%d Groups" msgstr[0] "%d gruppe" msgstr[1] "%d gruppes" #: pan/gui/dl-headers-ui.cc:148 msgid "Get the last N _days' headers: " msgstr "Obtener li cap-lineas por N ultim _dies: " #: pan/gui/dl-headers-ui.cc:156 #, fuzzy msgid "Get _new headers" msgstr "Obtener cap-lineas..." #: pan/gui/dl-headers-ui.cc:160 #, fuzzy msgid "Get _all headers" msgstr "Obtener cap-lineas..." #: pan/gui/dl-headers-ui.cc:164 msgid "Get the _latest N headers: " msgstr "Obtener li N ultim cap-lineas: " #: pan/gui/e-action-combo-box.c:386 pan/gui/prefs-ui.cc:858 msgid "Action" msgstr "Action" #: pan/gui/e-action-combo-box.c:387 msgid "A GtkRadioAction" msgstr "" #: pan/gui/e-charset.c:51 pan/gui/task-pane.cc:562 msgid "Unknown" msgstr "Ínconosset" #: pan/gui/e-charset.c:52 msgid "Arabic" msgstr "Arabic" #: pan/gui/e-charset.c:53 msgid "Baltic" msgstr "Baltic" #: pan/gui/e-charset.c:54 msgid "Central European" msgstr "Central Europan" #: pan/gui/e-charset.c:55 msgid "Chinese" msgstr "Chinesi" #: pan/gui/e-charset.c:56 msgid "Cyrillic" msgstr "Cirilic" #: pan/gui/e-charset.c:57 msgid "Greek" msgstr "Grec" #: pan/gui/e-charset.c:58 msgid "Hebrew" msgstr "Hebreic" #: pan/gui/e-charset.c:59 msgid "Japanese" msgstr "Japanesi" #: pan/gui/e-charset.c:60 msgid "Korean" msgstr "Korean" #: pan/gui/e-charset.c:61 msgid "Thai" msgstr "Thai" #: pan/gui/e-charset.c:62 msgid "Turkish" msgstr "Turcian" #: pan/gui/e-charset.c:63 msgid "Unicode" msgstr "Unicode" #: pan/gui/e-charset.c:64 msgid "Western European" msgstr "Occidental" #: pan/gui/e-charset.c:65 msgid "Western European, New" msgstr "Occidental, nov" #: pan/gui/e-charset.c:84 pan/gui/e-charset.c:85 pan/gui/e-charset.c:86 msgid "Traditional" msgstr "Traditional" #: pan/gui/e-charset.c:87 pan/gui/e-charset.c:88 pan/gui/e-charset.c:89 #: pan/gui/e-charset.c:90 msgid "Simplified" msgstr "Simplificat" #: pan/gui/e-charset.c:93 msgid "Ukrainian" msgstr "Ucrainan" #: pan/gui/e-charset.c:96 msgid "Visual" msgstr "Visual" #: pan/gui/e-charset-combo-box.c:94 pan/gui/gui.cc:2154 pan/gui/post-ui.cc:547 #: pan/gui/prefs-ui.cc:769 msgid "Character Encoding" msgstr "Codification de caracteres" #: pan/gui/e-charset-combo-box.c:96 pan/gui/e-charset-dialog.c:50 #: pan/gui/score-add-ui.cc:606 pan/gui/task-pane.cc:310 msgid "Cancel" msgstr "Anullar" #: pan/gui/e-charset-combo-box.c:97 pan/gui/e-charset-dialog.c:51 msgid "OK" msgstr "OK" #: pan/gui/e-charset-combo-box.c:118 #, fuzzy msgid "Enter the character set to use" msgstr "_Codification de caracteres" #: pan/gui/e-charset-combo-box.c:337 msgid "Other..." msgstr "Altri…" #: pan/gui/e-cte-dialog.c:76 msgid "Default Encoding" msgstr "Codification predefinit" #: pan/gui/e-cte-dialog.c:78 #, fuzzy msgid "7-Bit Encoding" msgstr "7-bit ASCII" #: pan/gui/e-cte-dialog.c:80 #, fuzzy msgid "8-Bit Encoding" msgstr "8-bit" #: pan/gui/e-cte-dialog.c:82 #, fuzzy msgid "Base64 Encoding" msgstr "&Codification:" #: pan/gui/e-cte-dialog.c:84 #, fuzzy msgid "Quoted-Printable Encoding" msgstr "&Codification:" #: pan/gui/group-pane.cc:331 msgid "Sent" msgstr "Inviat" #: pan/gui/group-pane.cc:332 msgid "Drafts" msgstr "Esquisses" #: pan/gui/group-pane.cc:543 msgid "Group" msgstr "Gruppe" #: pan/gui/group-pane.cc:544 msgid "Group (regex)" msgstr "Gruppe (regex)" #: pan/gui/group-pane.cc:987 msgid "Local Folders" msgstr "Local fólderes" #: pan/gui/group-pane.cc:988 #, fuzzy msgid "Subscribed Groups" msgstr "Abonnat" #: pan/gui/group-pane.cc:989 #, fuzzy msgid "Other Groups" msgstr "_Gruppes" #: pan/gui/group-pane.cc:1029 pan/gui/score-view-ui.cc:157 msgid "Name" msgstr "Nómine" #: pan/gui/group-prefs-dialog.cc:162 msgid "No Profiles defined in Edit|Posting Profiles." msgstr "" #: pan/gui/group-prefs-dialog.cc:265 #, fuzzy msgid "Pan: Group Preferences" msgstr "Pan: gardar atachamentes" #: pan/gui/group-prefs-dialog.cc:280 #, fuzzy msgid "Properties for Groups" msgstr "_Gruppes" #: pan/gui/group-prefs-dialog.cc:282 #, c-format msgid "Properties for %s" msgstr "Proprietás de %s" #: pan/gui/group-prefs-dialog.cc:293 #, fuzzy msgid "Character _encoding:" msgstr "Codification:" #: pan/gui/group-prefs-dialog.cc:295 #, fuzzy msgid "Directory for Saving Attachments" msgstr "_Atachamentes" #: pan/gui/group-prefs-dialog.cc:303 #, fuzzy msgid "Directory for _saving attachments:" msgstr "_Atachamentes" #: pan/gui/group-prefs-dialog.cc:305 #, fuzzy msgid "Posting _profile:" msgstr "Null profil" #: pan/gui/group-prefs-dialog.cc:310 msgid "Spellchecker _language:" msgstr "Lingue de _ortografie:" #: pan/gui/group-prefs-dialog.cc:313 msgid "Group color:" msgstr "Color de gruppe:" #: pan/gui/gui.cc:311 #, fuzzy msgid "Open the Task Manager" msgstr "Fonde del gerente de taches" #: pan/gui/gui.cc:334 #, fuzzy msgid "Open the Event Log" msgstr "Aperter un diarium ex un file" #: pan/gui/gui.cc:610 #, fuzzy msgid "Save NZB's Files" msgstr "Gardar al Files" #: pan/gui/gui.cc:637 msgid "Untitled.nzb" msgstr "" #: pan/gui/gui.cc:639 #, fuzzy msgid "Save NZB File as..." msgstr "Salvar _quam..." #: pan/gui/gui.cc:808 msgid "Import NZB Files" msgstr "Importar files NZB" #: pan/gui/gui.cc:816 pan/gui/post-ui.cc:3349 msgid "NZB Files" msgstr "Files NZB" #: pan/gui/gui.cc:821 msgid "All Files" msgstr "Omni files" #: pan/gui/gui.cc:1335 #, fuzzy msgid "Unable to supersede article." msgstr "Articul" #: pan/gui/gui.cc:1336 pan/gui/gui.cc:1412 msgid "The article doesn't match any of your posting profiles." msgstr "" #: pan/gui/gui.cc:1385 msgid "Revise and send this article to replace the old one." msgstr "" #: pan/gui/gui.cc:1386 pan/gui/gui.cc:1450 msgid "Be patient! It will take time for your changes to take effect." msgstr "" #: pan/gui/gui.cc:1411 #, fuzzy msgid "Unable to cancel article." msgstr "Articul" #: pan/gui/gui.cc:1449 msgid "Send this article to ask your server to cancel your other one." msgstr "" #: pan/gui/gui.cc:1467 msgid "You have marked some articles for deletion." msgstr "" #: pan/gui/gui.cc:1468 #, fuzzy msgid "Are you sure you want to delete them?" msgstr "Esque vu vole remover ci-ti note?" #: pan/gui/gui.cc:1494 msgid "Do you want to accept it permanently? (You can change this later.)" msgstr "" #: pan/gui/gui.cc:1640 #, fuzzy msgid "Unable to open help file." msgstr "Ne successat aperter li file de auxilie" #: pan/gui/gui.cc:1668 msgid "Copyright © 2002-2021 Charles Kerr and others" msgstr "Copyright © 2002-2021 Charles Kerr e altri" #: pan/gui/gui.cc:1673 msgid "translator-credits" msgstr "OIS , 2019-24" #: pan/gui/gui.cc:1801 #, fuzzy msgid "_1. Group Pane" msgstr "Gruppar secun..." #: pan/gui/gui.cc:1802 #, fuzzy msgid "_2. Header Pane" msgstr "Rubrica 2 (subsection)" #: pan/gui/gui.cc:1803 #, fuzzy msgid "_3. Body Pane" msgstr "_Córpor:" #: pan/gui/gui.cc:1893 pan/gui/gui.cc:1908 msgid " Bytes" msgstr " octetes" #: pan/gui/gui.cc:1896 msgid " KB" msgstr " ko" #: pan/gui/gui.cc:1899 msgid " MB" msgstr " Mo" #: pan/gui/gui.cc:1902 msgid " GB" msgstr " Go" #: pan/gui/gui.cc:1905 #, fuzzy msgid " TB" msgstr "To" #: pan/gui/gui.cc:1937 #, fuzzy, c-format msgid "This article is complete with %d part." msgid_plural "This article has all %d parts." msgstr[0] "parte %d es mancat" msgstr[1] "" #: pan/gui/gui.cc:1939 #, c-format msgid "This article is missing %d part." msgid_plural "This article is missing %d of its %d parts:" msgstr[0] "Ti articul manca %d parte." msgstr[1] "Ti articul manca %d de su %d partes:" #: pan/gui/gui.cc:1957 pan/gui/header-pane.cc:1308 pan/gui/task-pane.cc:798 msgid "Message-ID" msgstr "Missage-ID" #: pan/gui/gui.cc:1958 pan/gui/header-pane.cc:1783 pan/gui/prefs-ui.cc:862 msgid "Lines" msgstr "Lineas" #: pan/gui/gui.cc:1958 msgid "Size" msgstr "Grandore" #: pan/gui/gui.cc:1959 pan/gui/header-pane.cc:1799 pan/gui/prefs-ui.cc:860 msgid "Bytes" msgstr "Octetes" #: pan/gui/gui.cc:2009 msgid "" "Error loading iconv library. Encoding certain character sets will not work " "in GUI." msgstr "" #: pan/gui/gui.cc:2155 #, fuzzy msgid "Body Pane Encoding" msgstr "_Córpor:" #: pan/gui/gui.cc:2186 pan/gui/task-pane.cc:613 msgid "Offline" msgstr "Ne in li rete" #: pan/gui/gui.cc:2190 #, c-format msgid "Closing %d connection" msgid_plural "Closing %d connections" msgstr[0] "Cludente %d conexion" msgstr[1] "Cludente %d conexiones" #: pan/gui/gui.cc:2192 pan/gui/gui.cc:2222 #, fuzzy msgid "No Connections" msgstr "Conexiones VPN" #: pan/gui/gui.cc:2196 msgid "Connecting" msgstr "Connexente" #: pan/gui/gui.cc:2209 #, c-format msgid "%s: %d idle, %d active @ %.1f KiBps" msgstr "" #: pan/gui/gui.cc:2265 #, fuzzy msgid "No Tasks" msgstr "_Taches" #: pan/gui/gui.cc:2267 pan/gui/prefs-ui.cc:1104 msgid "Tasks" msgstr "Taches" #: pan/gui/gui.cc:2284 pan/gui/task-pane.cc:479 #, c-format msgid "%lu tasks, %s, %.1f KiBps, ETA %d:%02d:%02d" msgstr "" #: pan/gui/gui.cc:2336 msgid "" "Pan is now offline. Please see \"File|Event Log\" and correct the problem, " "then use \"File|Work Online\" to continue." msgstr "" #: pan/gui/header-pane.cc:1304 pan/gui/task-pane.cc:794 msgid "Subject or Author" msgstr "Tema o autor" #: pan/gui/header-pane.cc:1305 pan/gui/task-pane.cc:795 #, fuzzy msgid "Sub or Auth (regex)" msgstr "ne regex" #: pan/gui/header-pane.cc:1307 pan/gui/header-pane.cc:1767 #: pan/gui/prefs-ui.cc:859 pan/gui/score-add-ui.cc:140 pan/gui/task-pane.cc:797 msgid "Author" msgstr "Autor" #: pan/gui/header-pane.cc:1752 pan/gui/prefs-ui.cc:863 #, fuzzy msgid "Score" msgstr "Conte" #: pan/gui/log-ui.cc:105 #, fuzzy msgid "Save Event List" msgstr "Liste de evenimentes" #: pan/gui/log-ui.cc:259 msgid "Pan: Events" msgstr "Pan: evenimentes" #: pan/gui/log-ui.cc:318 msgid "Message" msgstr "Missage" #: pan/gui/pan.cc:369 msgid "Maximize" msgstr "Maximisar" #: pan/gui/pan.cc:422 #, fuzzy msgid "An error has occurred!" msgstr "Un errore del sistema ha evenit" #: pan/gui/pan.cc:434 msgid "New Articles!" msgstr "Hay nov articules!" #: pan/gui/pan.cc:435 #, fuzzy msgid "" "There are new\n" "articles available." msgstr "Hay nov articules!" #: pan/gui/pan.cc:502 #, fuzzy msgid "Toggle on/offline" msgstr "Ne in li rete" #: pan/gui/pan.cc:550 msgid "" "Thank you for trying Pan!\n" " \n" "To start newsreading, first Add a Server." msgstr "" #: pan/gui/pan.cc:632 msgid "" "General Options\n" " -h, --help Show this usage information and exit.\n" " -v, --version Print release version and exit.\n" " --verbose Be verbose (in non-GUI mode).\n" " --debug Run in debug mode. Use --debug twice for verbose " "debug.\n" " --debug-ssl Run in TLS (aka SSL) debug mode.\n" "\n" "URL Options\n" " headers:group.name Download new headers for the specified " "newsgroup.\n" " news:message-id When specified together with --no-gui, dump\n" " the message-id article to standard output.\n" "\n" "NZB Batch Options\n" " --nzb file1 file2 ... Process NZB files in non-GUI mode.\n" " -o path, --output=path Path to save attachments listed in the NZB " "file(s).\n" " --no-gui Only show console output, not the download " "queue.\n" msgstr "" #: pan/gui/pan.cc:966 msgid "Error: --no-gui used without nzb files or news:message-id." msgstr "" #: pan/gui/pan.cc:970 #, fuzzy, c-format msgid "Pan %s started" msgstr "Iniciat: %s\n" #: pan/gui/pan.cc:990 msgid "Please configure Pan's news servers before using it as an nzb client." msgstr "" #: pan/gui/pan.cc:1108 msgid "Pan notification" msgstr "Notification de Pan" #: pan/gui/post-ui.cc:176 #, c-format msgid "Upload queue: %llu tasks, %ld KB (~ %.2f MB) total." msgstr "" #: pan/gui/post-ui.cc:282 pan/gui/post-ui.cc:313 #, c-format msgid "Error setting custom spellchecker: %s" msgstr "" #: pan/gui/post-ui.cc:286 pan/gui/post-ui.cc:294 pan/gui/post-ui.cc:317 #: pan/gui/post-ui.cc:325 #, fuzzy, c-format msgid "Error setting spellchecker: %s" msgstr "Un errore evenit assignante li prioritá" #: pan/gui/post-ui.cc:454 msgid "_Profile" msgstr "_Profil" #: pan/gui/post-ui.cc:455 #, fuzzy msgid "Set Editor" msgstr "Redactor ne es assignat" #: pan/gui/post-ui.cc:457 #, fuzzy msgid "_Send Article" msgstr "Articul" #: pan/gui/post-ui.cc:457 #, fuzzy msgid "Send Article Now" msgstr "Articul" #: pan/gui/post-ui.cc:458 #, fuzzy msgid "_Send and Save Articles to NZB" msgstr "Pan: gardar articules" #: pan/gui/post-ui.cc:458 #, fuzzy msgid "Send and Save Articles to NZB" msgstr "Pan: gardar articules" #: pan/gui/post-ui.cc:459 #, fuzzy msgid "Set Character _Encoding..." msgstr "_Codification de caracteres" #: pan/gui/post-ui.cc:460 #, fuzzy msgid "Set Content _Transfer Encoding..." msgstr "_Codification de caracteres" #: pan/gui/post-ui.cc:461 #, fuzzy msgid "Sa_ve Draft" msgstr "_Gardar a:" #: pan/gui/post-ui.cc:461 #, fuzzy msgid "Save as a Draft for Future Posting" msgstr "_Gardar session por usar it in li futuri" #: pan/gui/post-ui.cc:462 #, fuzzy msgid "_Open Draft..." msgstr "Plan" #: pan/gui/post-ui.cc:462 #, fuzzy msgid "Open an Article Draft" msgstr "Plan" #: pan/gui/post-ui.cc:467 msgid "_Rot13" msgstr "_Rot13" #: pan/gui/post-ui.cc:467 #, fuzzy msgid "Rot13 Selected Text" msgstr "Null textu es selectet" #: pan/gui/post-ui.cc:468 #, fuzzy msgid "Run _Editor" msgstr "_Executer" #: pan/gui/post-ui.cc:468 #, fuzzy msgid "Run Editor" msgstr "_Executer" #: pan/gui/post-ui.cc:470 #, fuzzy msgid "Add _Files to Queue" msgstr "Adjunter al linea" #: pan/gui/post-ui.cc:470 #, fuzzy msgid "Add Files to Queue" msgstr "Adjunter al linea" #: pan/gui/post-ui.cc:485 pan/gui/post-ui.cc:486 #, fuzzy msgid "Remove from Queue" msgstr "Remover ex li linea" #: pan/gui/post-ui.cc:490 pan/gui/post-ui.cc:491 msgid "Clear List" msgstr "Vacuar li liste" #: pan/gui/post-ui.cc:495 pan/gui/post-ui.cc:496 #, fuzzy msgid "Select Needed Parts" msgstr "Un restart es necessi" #: pan/gui/post-ui.cc:500 pan/gui/post-ui.cc:501 pan/gui/task-pane.cc:681 #: pan/gui/task-pane.cc:682 #, fuzzy msgid "Move Up" msgstr "Mover ad-up" #: pan/gui/post-ui.cc:505 pan/gui/post-ui.cc:506 pan/gui/task-pane.cc:686 #: pan/gui/task-pane.cc:687 #, fuzzy msgid "Move Down" msgstr "Mover a-bass" #: pan/gui/post-ui.cc:510 pan/gui/post-ui.cc:511 #, fuzzy msgid "Move to Top" msgstr "Mover ad _alt" #: pan/gui/post-ui.cc:515 pan/gui/post-ui.cc:516 #, fuzzy msgid "Move to Bottom" msgstr "Mover ad _infra" #: pan/gui/post-ui.cc:523 #, fuzzy msgid "_Wrap Text" msgstr "Rupter lineas de simplic textu:" #: pan/gui/post-ui.cc:523 #, fuzzy msgid "Wrap Text" msgstr "Rupter lineas de simplic textu:" #: pan/gui/post-ui.cc:524 #, fuzzy msgid "Always Run Editor" msgstr "Redactor:" #: pan/gui/post-ui.cc:525 #, fuzzy msgid "Remember Character Encoding for This Group" msgstr "_Codification de caracteres" #: pan/gui/post-ui.cc:526 #, fuzzy msgid "Thread Attached Replies" msgstr "_Transmisser quam atachament..." #: pan/gui/post-ui.cc:527 msgid "PGP-Encrypt the Article" msgstr "Ciffrar li articul med PGP" #: pan/gui/post-ui.cc:528 msgid "PGP-Sign the Article" msgstr "Signar li articul med PGP" #: pan/gui/post-ui.cc:529 msgid "Check _Spelling" msgstr "Controlar _ortografie" #: pan/gui/post-ui.cc:548 msgid "New Article's Encoding:" msgstr "Codification de nov articules:" #: pan/gui/post-ui.cc:558 #, fuzzy msgid "Content Transfer Encoding" msgstr "Contenete" #: pan/gui/post-ui.cc:559 #, fuzzy msgid "New Article's Content Transfer Encoding:" msgstr "Codification de nov articules:" #: pan/gui/post-ui.cc:743 msgid "Your changes will be lost!" msgstr "Vor modificationes va esser perdit!" #: pan/gui/post-ui.cc:744 msgid "Close this window and lose your changes?" msgstr "" #: pan/gui/post-ui.cc:789 pan/gui/post-ui.cc:828 #, fuzzy msgid "There were problems with this post." msgstr "Inviar un recension" #: pan/gui/post-ui.cc:791 pan/gui/post-ui.cc:830 pan/gui/post-ui.cc:895 msgid "Go Back" msgstr "Ear retro" #: pan/gui/post-ui.cc:793 msgid "Continue Anyway" msgstr "Continuar sin egarda" #. Prompt the user #: pan/gui/post-ui.cc:822 #, c-format msgid "" "Message uses characters not specified in charset '%s' - possibly use '%s' " msgstr "" #: pan/gui/post-ui.cc:845 #, fuzzy msgid "Go _Online" msgstr "In li rete" #: pan/gui/post-ui.cc:894 msgid "The file queue is empty, so no files can be saved." msgstr "" #: pan/gui/post-ui.cc:1074 #, fuzzy msgid "IO Error" msgstr "Ne successat crear io-slave" #: pan/gui/post-ui.cc:1074 #, fuzzy msgid "No space left on device" msgstr "Null spacie restat in «%s»" #: pan/gui/post-ui.cc:1075 #, c-format msgid "Error copying message to %s folder. Reason: %s" msgstr "" #: pan/gui/post-ui.cc:1081 #, c-format msgid "Error creating message in %s mail folder: Invalid article." msgstr "" #: pan/gui/post-ui.cc:1103 msgid "" "No posting server is set for this posting profile.\n" "Please edit the profile via Edit|Manage Posting Profiles." msgstr "" #: pan/gui/post-ui.cc:1108 msgid "" "The selected posting server is currently disabled. Please choose an " "appropriate alternative." msgstr "" #: pan/gui/post-ui.cc:1150 #, fuzzy msgid "Pan is Offline." msgstr "Ne in li rete" #: pan/gui/post-ui.cc:1151 #, fuzzy msgid "Go online to post the article?" msgstr "_Sempre ear directmen al documentation online" #: pan/gui/post-ui.cc:1200 #, c-format msgid "" "Error signing/encrypting your message. Perhaps you misspelled your email " "address (%s)?" msgstr "" #: pan/gui/post-ui.cc:1350 #, fuzzy msgid "Error opening temporary file" msgstr "Ne successat aperter un file %s." #: pan/gui/post-ui.cc:1361 #, fuzzy, c-format msgid "Error creating temporary file: %s" msgstr "Un errore evenit creante li file %B." #: pan/gui/post-ui.cc:1369 #, fuzzy, c-format msgid "Error writing article to temporary file: %s" msgstr "Un errore evenit scriente li file PO: %s" #: pan/gui/post-ui.cc:1442 #, fuzzy msgid "Open Draft Article" msgstr "Plan" #: pan/gui/post-ui.cc:1684 #, fuzzy msgid "Save Draft Article" msgstr "Plan" #: pan/gui/post-ui.cc:1722 #, fuzzy msgid "File already exists." msgstr "Li file ja existet" #: pan/gui/post-ui.cc:1723 #, fuzzy msgid "Overwrite it?" msgstr "_Superscrir" #: pan/gui/post-ui.cc:1932 #, fuzzy, c-format msgid "Couldn't parse signature command \"%s\": %s" msgstr "Ne successat analisar parametres de linea de comandes: %s\n" #: pan/gui/post-ui.cc:1968 #, fuzzy msgid "Couldn't convert signature to UTF-8." msgstr "Ne successat converter li textu a UTF-8!\n" #: pan/gui/post-ui.cc:2480 msgid "F_rom" msgstr "_De" #: pan/gui/post-ui.cc:2497 msgid "_Subject" msgstr "_Tema" #: pan/gui/post-ui.cc:2510 msgid "_Newsgroups" msgstr "_Novas-gruppes" #: pan/gui/post-ui.cc:2524 #, fuzzy msgid "Mail _To" msgstr "&Inviar..." #: pan/gui/post-ui.cc:2626 #, fuzzy msgid "Delete from Queue" msgstr "Remover ex li linea" #: pan/gui/post-ui.cc:2639 msgid "No." msgstr "No." #: pan/gui/post-ui.cc:2643 pan/gui/post-ui.cc:2735 pan/gui/post-ui.cc:2776 msgid "Filename" msgstr "Nómine de file" #: pan/gui/post-ui.cc:2645 msgid "Size (KB)" msgstr "Grandore (ko)" #: pan/gui/post-ui.cc:2743 #, fuzzy msgid "The current filename" msgstr "" "Quelc variabiles quam %f (nómine de file del actual canzone) es disponibil" #: pan/gui/post-ui.cc:2747 msgid "Subject Line" msgstr "Linea de tema" #: pan/gui/post-ui.cc:2755 #, fuzzy msgid "The current subject line" msgstr "Li tema del e-missage." #: pan/gui/post-ui.cc:2769 msgid "No. " msgstr "No. " #: pan/gui/post-ui.cc:2773 #, fuzzy msgid "Enable/Disable" msgstr "(De)permisser li audibil signal ex %d in li exeada" #: pan/gui/post-ui.cc:2807 msgid "Follo_wup-To" msgstr "" #. i18n: "poster" is a key used by many newsreaders. probably safest to keep this key in english. #: pan/gui/post-ui.cc:2816 msgid "" "The newsgroups where replies to your message should go. This is only needed " "if it differs from the \"Newsgroups\" header.\n" "\n" "To direct all replies to your email address, use \"Followup-To: poster\"" msgstr "" #: pan/gui/post-ui.cc:2823 #, fuzzy msgid "_Reply-To" msgstr "_Responder..." #: pan/gui/post-ui.cc:2831 msgid "" "The email account where mail replies to your posted message should go. This " "is only needed if it differs from the \"From\" header." msgstr "" #: pan/gui/post-ui.cc:2838 #, fuzzy msgid "_Custom Headers" msgstr "rubricas" #: pan/gui/post-ui.cc:2862 #, fuzzy msgid "Add \"_User-Agent\" header" msgstr "Agente de usator HTTP:" #: pan/gui/post-ui.cc:2869 #, fuzzy msgid "Add \"Message-_ID\" header" msgstr "Message-ID: %s\n" #: pan/gui/post-ui.cc:2997 #, fuzzy msgid "Select Parts" msgstr "Partes" #: pan/gui/post-ui.cc:3010 msgid "_Parts" msgstr "_Partes" #: pan/gui/post-ui.cc:3177 #, fuzzy msgid "Post Article" msgstr "_Inviar" #: pan/gui/post-ui.cc:3198 msgid "_Message" msgstr "_Missage" #: pan/gui/post-ui.cc:3199 #, fuzzy msgid "More _Headers" msgstr "rubricas" #: pan/gui/post-ui.cc:3200 #, fuzzy msgid "File _Queue" msgstr "_Linea" #: pan/gui/post-ui.cc:3231 pan/gui/profiles-dialog.cc:490 #, fuzzy, no-c-format msgid "On %d, %n wrote:" msgstr "Ye %d\\n%f scrit:\\n\\n%q" #: pan/gui/post-ui.cc:3260 #, fuzzy msgid "Add files to queue" msgstr "Adjunter al linea" #: pan/gui/post-ui.cc:3336 msgid "Save Upload Queue as NZB File" msgstr "" #: pan/gui/prefs.cc:366 #, fuzzy, c-format msgid "Couldn't parse %s color \"%s\"" msgstr "Ne successat analisar un color «%s»" #: pan/gui/prefs-ui.cc:133 #, fuzzy msgid "Grab Key" msgstr "Selecter" #: pan/gui/prefs-ui.cc:139 #, c-format msgid "" "Press the combination of the keys\n" "you want to use for \"%s\"." msgstr "" #: pan/gui/prefs-ui.cc:179 #, fuzzy msgid "Edit Shortcut" msgstr "Redacter li rapid-taste" #: pan/gui/prefs-ui.cc:241 #, fuzzy msgid "Error: Shortcut key is invalid!" msgstr "_Rapid-taste:" #: pan/gui/prefs-ui.cc:257 msgid "Error: Shortcut key already exists!" msgstr "" #: pan/gui/prefs-ui.cc:571 #, fuzzy msgid "Show only icons" msgstr "_Monstrar icones" #: pan/gui/prefs-ui.cc:572 msgid "Show only text" msgstr "Monstrar sol textu" #: pan/gui/prefs-ui.cc:573 msgid "Show icons and text" msgstr "Monstrar textu e icones" #: pan/gui/prefs-ui.cc:612 msgid "Use GNOME Preferences" msgstr "Usar li preferenties de GNOME" #: pan/gui/prefs-ui.cc:613 #, fuzzy msgid "Use KDE Preferences" msgstr "Usar li preferenties de GNOME" #: pan/gui/prefs-ui.cc:614 #, fuzzy msgid "Use OS X Preferences" msgstr "Interfacie del Mac OS X" #: pan/gui/prefs-ui.cc:615 #, fuzzy msgid "Use Windows Preferences" msgstr "preferences-system-windows" #: pan/gui/prefs-ui.cc:616 msgid "Custom Command:" msgstr "Personal comande:" #: pan/gui/prefs-ui.cc:668 msgid "Disabled" msgstr "Depermisset" #: pan/gui/prefs-ui.cc:669 #, fuzzy msgid "Only new (score == 0)" msgstr "(0 nov, 0 obsolet)" #: pan/gui/prefs-ui.cc:670 msgid "9999 or more" msgstr "9999 o plu" #: pan/gui/prefs-ui.cc:671 msgid "5000 to 9998" msgstr "5000 a 9998" #: pan/gui/prefs-ui.cc:672 msgid "1 to 4999" msgstr "1 a 4999" #: pan/gui/prefs-ui.cc:673 msgid "-9998 to -1" msgstr "-9998 a -1" #: pan/gui/prefs-ui.cc:674 msgid "-9999 or less" msgstr "-9999 o minu" #: pan/gui/prefs-ui.cc:738 #, c-format msgid "Select default global character set. Current setting: %s." msgstr "" #: pan/gui/prefs-ui.cc:770 #, fuzzy msgid "Global Character Set Settings" msgstr "Co_dification" #: pan/gui/prefs-ui.cc:864 pan/gui/task-pane.cc:1068 msgid "State" msgstr "Statu" #: pan/gui/prefs-ui.cc:898 msgid "Enabled" msgstr "Activ" #: pan/gui/prefs-ui.cc:902 msgid "Column Name" msgstr "Nómine de columne" #: pan/gui/prefs-ui.cc:940 msgid "Pan: Preferences" msgstr "Pan: preferenties" #: pan/gui/prefs-ui.cc:955 msgid "Mouse" msgstr "Mus" #: pan/gui/prefs-ui.cc:957 msgid "Single-click activates, rather than selects, _groups" msgstr "" #: pan/gui/prefs-ui.cc:959 msgid "Single-click activates, rather than selects, _articles" msgstr "" #: pan/gui/prefs-ui.cc:962 msgid "Groups" msgstr "Gruppes" #: pan/gui/prefs-ui.cc:964 msgid "Get new headers in subscribed groups on _startup" msgstr "" #: pan/gui/prefs-ui.cc:966 msgid "Get new headers when _entering group" msgstr "" #: pan/gui/prefs-ui.cc:968 msgid "Mark entire group _read when leaving group" msgstr "" #: pan/gui/prefs-ui.cc:970 msgid "Mark entire group read before getting _new headers" msgstr "" #: pan/gui/prefs-ui.cc:972 msgid "E_xpand all threads when entering group" msgstr "" #: pan/gui/prefs-ui.cc:977 msgid "Articles" msgstr "Articules" #: pan/gui/prefs-ui.cc:979 #, fuzzy msgid "Mark downloaded articles read" msgstr "Marcar omni quam leet" #: pan/gui/prefs-ui.cc:981 msgid "Space selects next article rather than next unread" msgstr "" #: pan/gui/prefs-ui.cc:983 #, fuzzy msgid "Expand threads upon selection" msgstr "Li nov gerente de fenestres va esser activat pos selection." #: pan/gui/prefs-ui.cc:985 #, fuzzy msgid "Always ask before deleting an article" msgstr "Questionar ante que deleter images" #: pan/gui/prefs-ui.cc:987 msgid "Smooth scrolling" msgstr "Glissid rulament" #: pan/gui/prefs-ui.cc:992 msgid "Article Cache" msgstr "Cache de articules" #: pan/gui/prefs-ui.cc:993 #, fuzzy msgid "Clear article cache on shutdown" msgstr "Vacuar li cache" #: pan/gui/prefs-ui.cc:996 #, fuzzy msgid "Size of article cache (in MiB):" msgstr "Grandore de cache de págines in Mio" #: pan/gui/prefs-ui.cc:1001 #, fuzzy msgid "File extension for cached articles: " msgstr "Li extension del file." #: pan/gui/prefs-ui.cc:1006 msgid "Tabs" msgstr "Cartes" #: pan/gui/prefs-ui.cc:1011 msgid "_Behavior" msgstr "_Conduida" #: pan/gui/prefs-ui.cc:1011 msgid "Behavior" msgstr "Conduida" #: pan/gui/prefs-ui.cc:1017 msgid "Task Pane" msgstr "Panel de taches" #: pan/gui/prefs-ui.cc:1018 #, fuzzy msgid "Show task pane popups" msgstr "Monstrar cartes in li panel lateral" #: pan/gui/prefs-ui.cc:1020 #, fuzzy msgid "Show Download Meter" msgstr "Monstra li contator" #: pan/gui/prefs-ui.cc:1024 msgid "_Panes" msgstr "_Paneles" #: pan/gui/prefs-ui.cc:1024 msgid "Panes" msgstr "Paneles" #: pan/gui/prefs-ui.cc:1030 msgid "Language Settings" msgstr "Parametres de lingue" #. systray and notify popup #: pan/gui/prefs-ui.cc:1039 #, fuzzy msgid "System Tray Behavior" msgstr "Icone in li area de notificationes" #: pan/gui/prefs-ui.cc:1041 msgid "Minimize to tray" msgstr "Minimisar a panel" #: pan/gui/prefs-ui.cc:1043 msgid "Start Pan minimized" msgstr "Lansar Pan minimisat" #: pan/gui/prefs-ui.cc:1046 msgid "Show notifications" msgstr "Monstrar notificationes" #. allow multiple instances (seperate, not communicating with dbus) #: pan/gui/prefs-ui.cc:1051 #, fuzzy msgid "Startup Behavior" msgstr "_Conduida" #: pan/gui/prefs-ui.cc:1053 #, fuzzy msgid "Allow multiple instances of Pan" msgstr "Multiplic instanties" #: pan/gui/prefs-ui.cc:1058 #, fuzzy msgid "Autosave Article Draft" msgstr "Plan" #: pan/gui/prefs-ui.cc:1060 msgid "Minutes to autosave the current Article Draft: " msgstr "" #: pan/gui/prefs-ui.cc:1065 #, fuzzy msgid "Autosave Articles" msgstr "Autogardar" #: pan/gui/prefs-ui.cc:1067 #, fuzzy msgid "Minutes to autosave newsrc files: " msgstr "_Autogardar chascun" #: pan/gui/prefs-ui.cc:1074 #, fuzzy msgid "Password Storage" msgstr "Magasinage de data" #: pan/gui/prefs-ui.cc:1076 #, fuzzy msgid "Save passwords in password storage" msgstr "Gardar li contrasigne" #: pan/gui/prefs-ui.cc:1083 #, fuzzy msgid "_Miscellaneous" msgstr "_Diversi" #: pan/gui/prefs-ui.cc:1083 msgid "Miscellaneous" msgstr "Diversi" #: pan/gui/prefs-ui.cc:1088 #, fuzzy msgid "Pane Layout" msgstr "&Arangeament..." #: pan/gui/prefs-ui.cc:1107 msgid "1=Groups, 2=Headers, 3=Body" msgstr "" #: pan/gui/prefs-ui.cc:1109 msgid "1=Groups, 2=Body, 3=Headers" msgstr "" #: pan/gui/prefs-ui.cc:1111 msgid "1=Headers, 2=Groups, 3=Body" msgstr "" #: pan/gui/prefs-ui.cc:1113 msgid "1=Headers, 2=Body, 3=Groups" msgstr "" #: pan/gui/prefs-ui.cc:1115 msgid "1=Body, 2=Groups, 3=Headers" msgstr "" #: pan/gui/prefs-ui.cc:1117 msgid "1=Body, 2=Headers, 3=Groups" msgstr "" #: pan/gui/prefs-ui.cc:1121 msgid "Layout" msgstr "Arangeament" #: pan/gui/prefs-ui.cc:1126 #, fuzzy msgid "Header Pane Columns" msgstr "Columnes:" #: pan/gui/prefs-ui.cc:1130 msgid "_Headers" msgstr "_Cap-lineas" #: pan/gui/prefs-ui.cc:1130 msgid "Headers" msgstr "Cap-lineas" #: pan/gui/prefs-ui.cc:1136 msgid "" "This menu lets you configure Pan to take certain actions on your behalf " "automatically, based on an article's score." msgstr "" #: pan/gui/prefs-ui.cc:1141 #, fuzzy msgid "Mark affected articles read" msgstr "Marcar omni quam leet" #: pan/gui/prefs-ui.cc:1150 #, fuzzy msgid "_Delete articles scoring at: " msgstr "Articules" #: pan/gui/prefs-ui.cc:1156 #, fuzzy msgid "Mark articles read scoring at: " msgstr "Marcar omni quam leet" #: pan/gui/prefs-ui.cc:1162 #, fuzzy msgid "_Cache articles scoring at: " msgstr "Articules" #: pan/gui/prefs-ui.cc:1168 msgid "Download attachments of articles scoring at: " msgstr "" #: pan/gui/prefs-ui.cc:1171 msgid "Actions" msgstr "Actiones" #: pan/gui/prefs-ui.cc:1176 pan/gui/prefs-ui.cc:1197 msgid "Fonts" msgstr "Fondes" #: pan/gui/prefs-ui.cc:1178 #, fuzzy msgid "Use custom font in Group Pane:" msgstr "Personalisat dimension de _fonde:" #: pan/gui/prefs-ui.cc:1183 #, fuzzy msgid "Use custom font in Header Pane:" msgstr "Personalisat dimension de _fonde:" #: pan/gui/prefs-ui.cc:1188 #, fuzzy msgid "Use custom font in Body Pane:" msgstr "Personalisat dimension de _fonde:" #: pan/gui/prefs-ui.cc:1193 #, fuzzy msgid "Monospace font:" msgstr "Fo_nde de regular largore:" #: pan/gui/prefs-ui.cc:1197 msgid "_Fonts" msgstr "_Fondes" #: pan/gui/prefs-ui.cc:1206 #, fuzzy msgid "Header Pane" msgstr "Cap-linea:" #: pan/gui/prefs-ui.cc:1209 pan/gui/prefs-ui.cc:1215 pan/gui/prefs-ui.cc:1221 #: pan/gui/prefs-ui.cc:1227 pan/gui/prefs-ui.cc:1233 pan/gui/prefs-ui.cc:1239 #: pan/gui/prefs-ui.cc:1248 pan/gui/prefs-ui.cc:1254 pan/gui/prefs-ui.cc:1260 #: pan/gui/prefs-ui.cc:1266 pan/gui/prefs-ui.cc:1272 pan/gui/prefs-ui.cc:1282 #: pan/gui/prefs-ui.cc:1292 msgid "Text:" msgstr "Textu:" #: pan/gui/prefs-ui.cc:1211 pan/gui/prefs-ui.cc:1217 pan/gui/prefs-ui.cc:1223 #: pan/gui/prefs-ui.cc:1229 pan/gui/prefs-ui.cc:1235 pan/gui/prefs-ui.cc:1241 #: pan/gui/prefs-ui.cc:1250 pan/gui/prefs-ui.cc:1256 pan/gui/prefs-ui.cc:1262 #: pan/gui/prefs-ui.cc:1268 pan/gui/prefs-ui.cc:1274 pan/gui/prefs-ui.cc:1284 #: pan/gui/prefs-ui.cc:1294 msgid "Background:" msgstr "Funde:" #: pan/gui/prefs-ui.cc:1213 #, fuzzy msgid "Scores of 9999 or more:" msgstr "Co_ntes..." #: pan/gui/prefs-ui.cc:1219 #, fuzzy msgid "Scores from 5000 to 9998:" msgstr "5000 a 9998" #: pan/gui/prefs-ui.cc:1225 #, fuzzy msgid "Scores from 1 to 4999:" msgstr "Obtenente %1 de %2…" #: pan/gui/prefs-ui.cc:1231 #, fuzzy msgid "Scores from -9998 to -1:" msgstr "Obtenente %1 de %2…" #: pan/gui/prefs-ui.cc:1237 #, fuzzy msgid "Scores of -9999 or less:" msgstr "Co_ntes..." #: pan/gui/prefs-ui.cc:1243 msgid "Collapsed thread with unread articles:" msgstr "" #: pan/gui/prefs-ui.cc:1245 #, fuzzy msgid "Body Pane" msgstr "_Córpor:" #: pan/gui/prefs-ui.cc:1252 msgid "First level of quoted text:" msgstr "" #: pan/gui/prefs-ui.cc:1258 msgid "Second level of quoted text:" msgstr "" #: pan/gui/prefs-ui.cc:1264 msgid "Third level of quoted text:" msgstr "" #. #: pan/gui/prefs-ui.cc:1270 msgid "URL:" msgstr "URL:" #. #: pan/gui/prefs-ui.cc:1276 msgid "Signature:" msgstr "Signature:" #: pan/gui/prefs-ui.cc:1279 msgid "Group Pane" msgstr "Panel de gruppe" #. #: pan/gui/prefs-ui.cc:1286 #, fuzzy msgid "Group Color:" msgstr "Gruppar secun..." #: pan/gui/prefs-ui.cc:1290 #, fuzzy msgid "Other Text" msgstr "Altri..." #: pan/gui/prefs-ui.cc:1296 msgid "Text Color:" msgstr "Color del textu:" #: pan/gui/prefs-ui.cc:1299 msgid "_Colors" msgstr "_Colores" #: pan/gui/prefs-ui.cc:1299 msgid "Colors" msgstr "Colores" #: pan/gui/prefs-ui.cc:1304 msgid "Preferred Applications" msgstr "Preferet aplicationes" #: pan/gui/prefs-ui.cc:1308 msgid "_Web browser:" msgstr "Navigator _web:" #: pan/gui/prefs-ui.cc:1311 msgid "_Gemini client:" msgstr "Cliente de _Gemini:" #: pan/gui/prefs-ui.cc:1314 msgid "_Mail reader:" msgstr "Letor de _e-post:" #: pan/gui/prefs-ui.cc:1316 msgid "_Text editor:" msgstr "Redactor de _textu:" #: pan/gui/prefs-ui.cc:1318 #, fuzzy msgid "_HTML previewer:" msgstr "Previse de documentes por GNOME" #: pan/gui/prefs-ui.cc:1320 msgid "_Applications" msgstr "_Applicationes" #: pan/gui/prefs-ui.cc:1320 msgid "Applications" msgstr "Applicationes" #: pan/gui/prefs-ui.cc:1325 pan/gui/task-pane.cc:556 msgid "Encoding" msgstr "Codification" #: pan/gui/prefs-ui.cc:1329 msgid "Default bytes per file (for encoder): " msgstr "" #: pan/gui/prefs-ui.cc:1334 msgid "_Upload" msgstr "_Cargar" #: pan/gui/prefs-ui.cc:1334 msgid "Upload" msgstr "Cargar" #: pan/gui/prefs-ui.cc:1343 msgid "_Shortcuts" msgstr "_Rapid-tastes" #: pan/gui/prefs-ui.cc:1343 msgid "Shortcuts" msgstr "Rapid-tastes" #: pan/gui/profiles-dialog.cc:83 msgid "Please choose your email address according to your PGP key's user id." msgstr "" #: pan/gui/profiles-dialog.cc:131 #, fuzzy msgid "Posting Profile" msgstr "Null profil" #: pan/gui/profiles-dialog.cc:143 #, fuzzy msgid "Profile Information" msgstr "Information de profil" #: pan/gui/profiles-dialog.cc:147 msgid "_Profile Name:" msgstr "Nómine de _profil:" #: pan/gui/profiles-dialog.cc:150 #, fuzzy msgid "Required Information" msgstr "besonat" #: pan/gui/profiles-dialog.cc:154 msgid "_Full Name:" msgstr "Nó_mine complet:" #: pan/gui/profiles-dialog.cc:158 msgid "" "Your email address.\n" "Note that this has to match your PGP signature's address\n" "if you want your messages to be PGP-signed or encrypted correctly." msgstr "" #: pan/gui/profiles-dialog.cc:162 #, fuzzy msgid "_Email Address:" msgstr "Adresse de e-post:" #: pan/gui/profiles-dialog.cc:164 #, fuzzy msgid "_Post Articles via:" msgstr "Articules" #: pan/gui/profiles-dialog.cc:167 msgid "Signature" msgstr "Signature" #: pan/gui/profiles-dialog.cc:170 #, fuzzy msgid "_Use a Signature" msgstr "Signature" #: pan/gui/profiles-dialog.cc:174 msgid "Signature File" msgstr "File de signature" #: pan/gui/profiles-dialog.cc:184 msgid "Text File" msgstr "File textual" #: pan/gui/profiles-dialog.cc:186 msgid "Text" msgstr "Textu" #: pan/gui/profiles-dialog.cc:188 msgid "Command" msgstr "Comande" #: pan/gui/profiles-dialog.cc:191 msgid "PGP Signature" msgstr "Signature PGP" #: pan/gui/profiles-dialog.cc:196 #, fuzzy msgid "Signature Type: " msgstr "Signature" #: pan/gui/profiles-dialog.cc:227 msgid "Avatars" msgstr "Avatares" #: pan/gui/profiles-dialog.cc:230 msgid "" "You can add an avatar icon to your articles with a Base64-encoded PNG.\n" "Add the Base64-encoded picture without the trailing “Face:”." msgstr "" #: pan/gui/profiles-dialog.cc:232 msgid "_Face:" msgstr "_Facie:" #: pan/gui/profiles-dialog.cc:236 msgid "" "You can add an avatar icon to your articles with a unique X-Face code.\n" "Add the code without the trailing \"X-Face:\" \n" " if it was generated by a helper program (for example http://www.dairiki.org/" "xface/xface.php)." msgstr "" #: pan/gui/profiles-dialog.cc:239 msgid "_X-Face:" msgstr "_X-Facie:" #: pan/gui/profiles-dialog.cc:241 msgid "Optional Information" msgstr "Facultativ information" #: pan/gui/profiles-dialog.cc:246 msgid "" "When posting to Usenet, your article's Message-ID contains a domain name.\n" "You can set a custom domain name here, or leave it blank to let Pan use the " "domain name from your email address." msgstr "" #: pan/gui/profiles-dialog.cc:249 #, fuzzy msgid "Message-ID _Domain Name:" msgstr "Message-ID: %s\n" #: pan/gui/profiles-dialog.cc:253 #, c-format msgid "" "%i for Message-ID\n" "%a for Author and Address\n" "%n for Author name\n" "%d for Date" msgstr "" #: pan/gui/profiles-dialog.cc:254 #, fuzzy msgid "_Attribution:" msgstr "Creative Commons Attribution-ShareAlike 3.0 Unported License" #. Translators: Do not localize Reply-To and the quote marks in \"Your Name\". #: pan/gui/profiles-dialog.cc:279 msgid "" "Extra headers to be included in your articles, such as\n" "Reply-To: \"Your Name\" \n" "Organization: Your Organization\n" msgstr "" #: pan/gui/profiles-dialog.cc:289 #, fuzzy msgid "E_xtra Headers:" msgstr "E_xtra panel" #: pan/gui/profiles-dialog.cc:334 #, fuzzy msgid "Invalid email address." msgstr "Adresse es ínvalid" #: pan/gui/profiles-dialog.cc:335 msgid "Please use an address of the form joe@somewhere.org" msgstr "" #: pan/gui/profiles-dialog.cc:491 msgid "New Profile" msgstr "Nov profil" #: pan/gui/profiles-dialog.cc:537 #, fuzzy msgid "Posting Profiles" msgstr "Profiles:" #: pan/gui/profiles-dialog.cc:553 msgid "Profiles" msgstr "Profiles" #: pan/gui/save-attach-ui.cc:46 #, c-format msgid "" "%g - group as one directory (alt.binaries.pictures.trains)\n" "%G - group as nested directory (/alt/binaries/pictures/trains)\n" "%s - Subject line excerpt\n" "%S - Subject line\n" "%n - Poster display name\n" "%e - Poster email address\n" "%d - Article timestamp\n" "\"/home/user/News/Pan/%g\" becomes\n" "\"/home/user/News/Pan/alt.binaries.pictures.trains\", and\n" "\"/home/user/News/Pan/%G\" becomes\n" "\"/home/user/News/Pan/alt/binaries/pictures/trains\"," msgstr "" #: pan/gui/save-attach-ui.cc:198 pan/gui/save-ui.cc:218 msgid "Add to the queue sorted by date posted" msgstr "" #: pan/gui/save-attach-ui.cc:199 pan/gui/save-ui.cc:219 #, fuzzy msgid "Add to the front of the queue" msgstr "Adjunter al linea de reproduction" #: pan/gui/save-attach-ui.cc:200 pan/gui/save-ui.cc:220 #, fuzzy msgid "Add to the back of the queue" msgstr "Adjunter al linea de reproduction" #: pan/gui/save-attach-ui.cc:232 msgid "Pan: Save Attachments" msgstr "Pan: gardar atachamentes" #: pan/gui/save-attach-ui.cc:257 pan/gui/save-attach-ui.cc:275 #: pan/gui/save-ui.cc:272 pan/gui/save-ui.cc:293 msgid "_Location:" msgstr "_Localisation:" #: pan/gui/save-attach-ui.cc:261 pan/gui/save-ui.cc:276 msgid "Save Articles" msgstr "Gardar articules" #: pan/gui/save-attach-ui.cc:278 pan/gui/save-ui.cc:296 #, fuzzy, c-format msgid "_Group's path: %s" msgstr "Rute: %s" #: pan/gui/save-attach-ui.cc:289 pan/gui/save-ui.cc:311 msgid "_Priority:" msgstr "_Prioritá:" #: pan/gui/save-ui.cc:46 #, c-format msgid "" "%g - group as one directory (alt.binaries.pictures.trains)\n" "%G - group as nested directory (/alt/binaries/pictures/trains)\n" "%s - subject line excerpt\n" "%S - subject line\n" "%n - Poster display name\n" "%e - Poster email address\n" "%d - Article timestamp\n" " \n" "\"/home/user/News/Pan/%g\" becomes\n" "\"/home/user/News/Pan/alt.binaries.pictures.trains\", and\n" "\"/home/user/News/Pan/%G\" becomes\n" "\"/home/user/News/Pan/alt/binaries/pictures/trains\"," msgstr "" #: pan/gui/save-ui.cc:209 msgid "Save attachments" msgstr "Gardar atachamentes" #: pan/gui/save-ui.cc:210 msgid "Save text" msgstr "Gardar li textu" #: pan/gui/save-ui.cc:211 #, fuzzy msgid "Save attachments and text" msgstr "Gardar li atachamentes" #: pan/gui/save-ui.cc:247 msgid "Pan: Save Articles" msgstr "Pan: gardar articules" #: pan/gui/save-ui.cc:307 msgid "_Action:" msgstr "_Action:" #: pan/gui/score-add-ui.cc:89 msgid "is more than" msgstr "es plu quam" #: pan/gui/score-add-ui.cc:90 msgid "is at most" msgstr "es admaxim" #: pan/gui/score-add-ui.cc:112 #, fuzzy msgid "increase the article's score by" msgstr "Conte" #: pan/gui/score-add-ui.cc:113 #, fuzzy msgid "decrease the article's score by" msgstr "Conte" #: pan/gui/score-add-ui.cc:114 #, fuzzy msgid "set the article's score to" msgstr "Assignar conte" #: pan/gui/score-add-ui.cc:115 msgid "watch the article (set its score to 9999)" msgstr "" #: pan/gui/score-add-ui.cc:116 msgid "ignore the article (set its score to -9999)" msgstr "" #: pan/gui/score-add-ui.cc:141 msgid "References" msgstr "Referenties" #: pan/gui/score-add-ui.cc:142 msgid "Line Count" msgstr "Númere de lineas" #: pan/gui/score-add-ui.cc:143 msgid "Byte Count" msgstr "Númere de octetes" #: pan/gui/score-add-ui.cc:144 #, fuzzy msgid "Crosspost Group Count" msgstr "gruppe" #: pan/gui/score-add-ui.cc:145 msgid "Age (in days)" msgstr "Etá (in dies)" #: pan/gui/score-add-ui.cc:167 #, fuzzy msgid "for the next month" msgstr "Li precedent e sequent mensus" #: pan/gui/score-add-ui.cc:168 #, fuzzy msgid "for the next six months" msgstr "Adminim six mensus" #: pan/gui/score-add-ui.cc:169 #, fuzzy msgid "forever" msgstr "Permanentmen" #: pan/gui/score-add-ui.cc:194 msgid "contains" msgstr "contene" #: pan/gui/score-add-ui.cc:195 msgid "doesn't contain" msgstr "ne contene" #: pan/gui/score-add-ui.cc:196 msgid "is" msgstr "es" #: pan/gui/score-add-ui.cc:197 msgid "isn't" msgstr "ne es" #: pan/gui/score-add-ui.cc:198 msgid "starts with" msgstr "comensa con" #: pan/gui/score-add-ui.cc:199 msgid "ends with" msgstr "fini per" #: pan/gui/score-add-ui.cc:200 msgid "matches regex" msgstr "coresponde a un regex" #: pan/gui/score-add-ui.cc:481 msgid "Another rule already sets this article's score." msgstr "" #: pan/gui/score-add-ui.cc:482 msgid "You may want to go back or delete the old rule." msgstr "" #: pan/gui/score-add-ui.cc:484 msgid "Back" msgstr "Retro" #: pan/gui/score-add-ui.cc:485 pan/gui/task-pane.cc:1041 msgid "Delete" msgstr "Remover" #: pan/gui/score-add-ui.cc:486 pan/gui/score-add-ui.cc:607 #: pan/gui/score-view-ui.cc:208 msgid "Add" msgstr "Adjunter" #: pan/gui/score-add-ui.cc:553 #, fuzzy msgid "Add and Re_score" msgstr "Conte:" #: pan/gui/score-add-ui.cc:602 pan/gui/score-add-ui.cc:622 #, fuzzy msgid "New Scoring Rule" msgstr "Adjunter un nov regul" #: pan/gui/score-add-ui.cc:633 msgid "Group name" msgstr "Nómine de gruppe" #: pan/gui/score-add-ui.cc:640 msgid "and" msgstr "E" #: pan/gui/score-view-ui.cc:56 #, fuzzy msgid "Close and Re_score" msgstr "Conte:" #: pan/gui/score-view-ui.cc:154 #, c-format msgid "File %s, Lines %d - %d" msgstr "File %s, lineas %d - %d" #: pan/gui/score-view-ui.cc:182 #, fuzzy msgid "Pan: Article's Scores" msgstr "Articul" #: pan/gui/score-view-ui.cc:213 #, fuzzy msgid "New Score" msgstr "Conte:" #: pan/gui/score-view-ui.cc:218 msgid "Criteria" msgstr "Criteries" #: pan/gui/score-view-ui.cc:241 #, fuzzy msgid "Add a New Scoring Rule" msgstr "Adjunter un nov regul" #: pan/gui/score-view-ui.cc:248 #, fuzzy msgid "Remove the Selected Scoring Rule" msgstr "Remover ti-ci regul" #: pan/gui/server-ui.cc:293 #, fuzzy msgid "Please specify the server's address." msgstr "O provide un adresse de servitore" #: pan/gui/server-ui.cc:345 msgid "Import SSL Certificate (PEM Format) From File" msgstr "" #. create the dialog #: pan/gui/server-ui.cc:382 pan/gui/server-ui.cc:997 msgid "Add a Server" msgstr "Adjunter un servitor" #: pan/gui/server-ui.cc:382 pan/gui/server-ui.cc:1003 #, fuzzy msgid "Edit a Server's Settings" msgstr "Ne successat comunicar con li servitore de parametres" #: pan/gui/server-ui.cc:402 msgid "Location" msgstr "Localisation" #: pan/gui/server-ui.cc:406 msgid "The news server's actual address, e.g. \"news.mynewsserver.com\"." msgstr "" #: pan/gui/server-ui.cc:407 msgid "_Address:" msgstr "_Adresse:" #: pan/gui/server-ui.cc:412 msgid "" "The news server's port number. Typically 119 for unencrypted and 563 for " "encrypted connections (SSL/TLS)." msgstr "" #: pan/gui/server-ui.cc:413 msgid "Por_t:" msgstr "Por_tu:" #: pan/gui/server-ui.cc:416 #, fuzzy msgid "Login (if Required)" msgstr "besonat" #: pan/gui/server-ui.cc:420 msgid "_Username:" msgstr "Nómine de _usator:" #: pan/gui/server-ui.cc:421 msgid "" "The username to give the server when asked. If your server doesn't require " "authentication, you can leave this blank." msgstr "" #: pan/gui/server-ui.cc:425 msgid "_Password:" msgstr "_Contrasigne:" #: pan/gui/server-ui.cc:426 msgid "" "The password to give the server when asked. If your server doesn't require " "authentication, you can leave this blank." msgstr "" #: pan/gui/server-ui.cc:429 msgid "Settings" msgstr "Parametres" #: pan/gui/server-ui.cc:436 #, fuzzy msgid "Connection _Limit:" msgstr "Limitar a:" #: pan/gui/server-ui.cc:440 msgid "After Two Weeks" msgstr "Pos du semanes" #: pan/gui/server-ui.cc:441 msgid "After One Month" msgstr "Pos un mensu" #: pan/gui/server-ui.cc:442 msgid "After Two Months" msgstr "Pos du mensus" #: pan/gui/server-ui.cc:443 msgid "After Three Months" msgstr "Pos tri mensus" #: pan/gui/server-ui.cc:444 msgid "After Six Months" msgstr "Pos six mensus" #: pan/gui/server-ui.cc:445 msgid "Never Expire Old Articles" msgstr "Ne expirar old articules" #: pan/gui/server-ui.cc:459 msgid "E_xpire Old Articles:" msgstr "E_xpirar old articules:" #: pan/gui/server-ui.cc:463 msgid "Primary" msgstr "Primari" #: pan/gui/server-ui.cc:464 #, fuzzy msgid "Fallback" msgstr "Adjunter un lingue de reserve" #: pan/gui/server-ui.cc:478 #, fuzzy msgid "Server Rank:" msgstr "Pertinentie por li sercha" #: pan/gui/server-ui.cc:482 msgid "" "Fallback servers are used for articles that can't be found on the " "primaries. One common approach is to use free servers as primaries and " "subscription servers as fallbacks." msgstr "" #: pan/gui/server-ui.cc:487 #, fuzzy msgid "Disable Compression (N/A)" msgstr "_Depermisser" #: pan/gui/server-ui.cc:488 #, fuzzy msgid "XZVER Compression (Astraweb)" msgstr "_Null compression" #: pan/gui/server-ui.cc:489 msgid "GZIP Compression (Giganews etc.)" msgstr "Compression GZIP (Giganews etc.)" #: pan/gui/server-ui.cc:503 msgid "Header Compression:" msgstr "Compression de cap-lineas:" #: pan/gui/server-ui.cc:509 msgid "Security" msgstr "Securitá" #: pan/gui/server-ui.cc:514 msgid "Use Unsecure (Plaintext) Connections" msgstr "" #: pan/gui/server-ui.cc:515 #, fuzzy msgid "Use Secure SSL Connections" msgstr "Usar secur conexion (_HTTPS)" #: pan/gui/server-ui.cc:530 #, fuzzy msgid "TLS (SSL) Settings:" msgstr "Certificate SSL/TLS" #: pan/gui/server-ui.cc:535 msgid "" "You can enable/disable secure SSL/TLS connections here. If you enable SSL/" "TLS, your data is encrypted and secure. It is encouraged to enable SSL/TLS " "for privacy reasons." msgstr "" #: pan/gui/server-ui.cc:540 #, fuzzy msgid "Always trust this server's certificate" msgstr "Certificate de CA del servitore" #: pan/gui/server-ui.cc:725 #, fuzzy, c-format msgid "Really delete \"%s\"?" msgstr "" "Esque desabonnar li feed\n" "«%s»?" #: pan/gui/server-ui.cc:814 #, fuzzy msgid "No information available." msgstr "Null information disponibil." #: pan/gui/server-ui.cc:824 #, fuzzy, c-format msgid "Server Certificate for '%s'" msgstr "Certificate de CA del servitore" #: pan/gui/server-ui.cc:923 #, fuzzy, c-format msgid "Really delete certificate for \"%s\"?" msgstr "Certificate de %s" #. dialog #: pan/gui/server-ui.cc:950 pan/gui/server-ui.cc:971 pan/gui/server-ui.cc:1069 msgid "Servers" msgstr "Servitores" #: pan/gui/server-ui.cc:1010 msgid "Remove a Server" msgstr "Remover un servitor" #. dialog #: pan/gui/server-ui.cc:1043 msgid "SSL Certificates" msgstr "Certificates SSL" #: pan/gui/server-ui.cc:1064 msgid "Certificates" msgstr "Certificates" #: pan/gui/server-ui.cc:1095 #, fuzzy msgid "Import Certificate" msgstr "Null certificate" #: pan/gui/server-ui.cc:1101 #, fuzzy msgid "Inspect Certificate" msgstr "Inspecter..." #: pan/gui/server-ui.cc:1108 #, fuzzy msgid "Remove Certificate" msgstr "Null certificate" #: pan/gui/task-pane.cc:125 #, c-format msgid "" "\n" "Upload\n" "\n" "Subject: \"%s\"\n" "From: %s\n" "Groups: %s\n" "Sourcefile: %s\n" msgstr "" #: pan/gui/task-pane.cc:137 #, c-format msgid "" "\n" "Download\n" "\n" "Subject: \"%s\"\n" "From: %s\n" "Date: %s\n" "Groups: %s\n" "Save Path: %s\n" msgstr "" #: pan/gui/task-pane.cc:139 msgid "unknown" msgstr "ínconosset" #: pan/gui/task-pane.cc:307 msgid "Choose New Destination for Selected Tasks" msgstr "" #: pan/gui/task-pane.cc:311 msgid "Save" msgstr "Gardar" #: pan/gui/task-pane.cc:461 #, c-format msgid "Pan: Tasks (%d Queued, %d Running, %d Stopped)" msgstr "" #: pan/gui/task-pane.cc:463 #, c-format msgid "Pan: Tasks (%d Queued, %d Running)" msgstr "" #: pan/gui/task-pane.cc:465 msgid "Pan: Tasks" msgstr "Pan: taches" #: pan/gui/task-pane.cc:490 #, c-format msgid "%lu selected, %s" msgstr "%lu selectet, %s" #: pan/gui/task-pane.cc:554 #, fuzzy msgid "Running" msgstr "Executent" #: pan/gui/task-pane.cc:555 msgid "Decoding" msgstr "Decodification" #: pan/gui/task-pane.cc:557 #, fuzzy msgid "Queued for Decode" msgstr "in linea" #: pan/gui/task-pane.cc:558 #, fuzzy msgid "Queued for Encode" msgstr "in linea" #: pan/gui/task-pane.cc:559 #, fuzzy msgid "Queued" msgstr "In linea" #: pan/gui/task-pane.cc:560 #, fuzzy msgid "Stopped" msgstr "Stoppat" #: pan/gui/task-pane.cc:561 #, fuzzy msgid "Removing" msgstr "Essente removet" #: pan/gui/task-pane.cc:590 #, fuzzy, c-format msgid "%d%% Done" msgstr "Finit." #: pan/gui/task-pane.cc:596 #, c-format msgid "%d:%02d:%02d Remaining (%d @ %lu KiB/s)" msgstr "%d:%02d:%02d remane (%d @ %lu kio/s)" #: pan/gui/task-pane.cc:691 pan/gui/task-pane.cc:692 #, fuzzy msgid "Move To Top" msgstr "Mover ad _alt" #: pan/gui/task-pane.cc:696 pan/gui/task-pane.cc:697 #, fuzzy msgid "Move To Bottom" msgstr "Mover ad _infra" #: pan/gui/task-pane.cc:701 pan/gui/task-pane.cc:702 #, fuzzy msgid "Show Task Information" msgstr "Monstra li information" #: pan/gui/task-pane.cc:706 pan/gui/task-pane.cc:707 #, fuzzy msgid "Stop Task" msgstr "Tache: {}" #: pan/gui/task-pane.cc:711 pan/gui/task-pane.cc:712 #, fuzzy msgid "Delete Task" msgstr "Tache: {}" #: pan/gui/task-pane.cc:716 pan/gui/task-pane.cc:717 #, fuzzy msgid "Restart Task" msgstr "Tache: {}" #: pan/gui/task-pane.cc:721 pan/gui/task-pane.cc:722 #, fuzzy msgid "Change Download Destination" msgstr "_Descargar" #: pan/gui/task-pane.cc:1017 #, fuzzy msgid "_Online" msgstr "In li rete" #: pan/gui/task-pane.cc:1027 #, fuzzy msgid "Move up" msgstr "Mover ad-up" #: pan/gui/task-pane.cc:1028 #, fuzzy msgid "Move task up" msgstr "Mover ad-_up" #: pan/gui/task-pane.cc:1029 #, fuzzy msgid "Move to top" msgstr "Mover ad _alt" #: pan/gui/task-pane.cc:1030 msgid "Move task to top of the download queue" msgstr "" #: pan/gui/task-pane.cc:1032 #, fuzzy msgid "Move down" msgstr "Mover a-bass" #: pan/gui/task-pane.cc:1033 #, fuzzy msgid "Move task down" msgstr "Mover a-_bass" #: pan/gui/task-pane.cc:1034 #, fuzzy msgid "Move to bottom" msgstr "Mover ad _infra" #: pan/gui/task-pane.cc:1035 msgid "Move task to the bottom of the download queue" msgstr "" #: pan/gui/task-pane.cc:1037 #, fuzzy msgid "Restart" msgstr "Restartar" #: pan/gui/task-pane.cc:1038 #, fuzzy msgid "Restart Tasks" msgstr "_Taches" #: pan/gui/task-pane.cc:1039 #, fuzzy msgid "Stop" msgstr "Haltar" #: pan/gui/task-pane.cc:1040 #, fuzzy msgid "Stop Tasks" msgstr "_Taches" #: pan/gui/task-pane.cc:1042 #, fuzzy msgid "Delete Tasks" msgstr "_Taches" #: pan/gui/task-pane.cc:1044 msgid "Close" msgstr "Cluder" #: pan/gui/task-pane.cc:1048 #, fuzzy msgid "Show popups" msgstr "_Monstrar..." #: pan/gui/url.cc:143 #, fuzzy, c-format msgid "Error starting URL: %s (Command was: %s)" msgstr "Un errore evenit auto-lansante un programma: %s" #: pan/tasks/decoder.cc:126 #, fuzzy, c-format msgid "Couldn't save file \"%s\": %s" msgstr "Ne successat gardar li file %s." #: pan/tasks/decoder.cc:148 pan/tasks/encoder.cc:146 #, fuzzy msgid "Error initializing uulib" msgstr "Un errore evenit inicialisante libmatenotify" #: pan/tasks/decoder.cc:168 pan/tasks/socket-impl-gio.cc:360 #: pan/tasks/socket-impl-openssl.cc:641 #, fuzzy, c-format msgid "Error reading from %s: %s" msgstr "Un errore evenit leente «%s»: %s" #: pan/tasks/decoder.cc:208 #, fuzzy, c-format msgid "Saved \"%s\"" msgstr "Gardat «%s»" #: pan/tasks/decoder.cc:215 #, fuzzy, c-format msgid "" "Error saving \"%s\":\n" "%s." msgstr "Un errore evenit gardante li file %s" #: pan/tasks/decoder.cc:328 pan/tasks/task-article.cc:351 #, fuzzy, c-format msgid "Decoding %s" msgstr "Decodification" #: pan/tasks/encoder.cc:113 pan/tasks/encoder.cc:164 #, fuzzy, c-format msgid "Error loading %s from cache." msgstr "Un errore evenit cargante un image: %s" #: pan/tasks/encoder.cc:186 #, fuzzy, c-format msgid "Error encoding %s: %s" msgstr "%s: codification ínvalid" #: pan/tasks/encoder.cc:276 #, fuzzy, c-format msgid "Encoding %s" msgstr "Ne successat assignar li codification %s\n" #: pan/tasks/nntp.cc:176 #, c-format msgid "%s requires a username, but none is set." msgstr "" #: pan/tasks/nntp.cc:189 #, c-format msgid "%s requires a password, but none is set." msgstr "" #: pan/tasks/nntp.cc:275 #, fuzzy, c-format msgid "Sending \"%s\" to %s returned an error: %s" msgstr "'net usershare' retornat un errore %d: %s" #: pan/tasks/nntp.cc:298 #, c-format msgid "Sending \"%s\" to %s returned an unrecognized response: \"%s\"" msgstr "" #: pan/tasks/nntp-pool.cc:241 #, fuzzy, c-format msgid "Unable to connect to \"%s\"" msgstr "Ne successat conexer al servitore RDP %s." #: pan/tasks/queue.cc:778 pan/tasks/queue.cc:806 pan/tasks/queue.cc:833 #, fuzzy msgid "No space left on device." msgstr "Null spacie restat in «%s»" #: pan/tasks/socket-impl-gio.cc:173 pan/tasks/socket-impl-gio.cc:211 #: pan/tasks/socket-impl-openssl.cc:213 pan/tasks/socket-impl-openssl.cc:251 #, fuzzy, c-format msgid "Error connecting to \"%s\"" msgstr "Un errore evenit conexente al servitor." #: pan/tasks/socket-impl-gio.cc:359 pan/tasks/socket-impl-openssl.cc:640 msgid "Unknown Error" msgstr "Ínconosset errore" #: pan/tasks/task-article.cc:59 pan/tasks/task-article.cc:157 #, fuzzy, c-format msgid "Saving %s" msgstr "Gardante «%s»" #: pan/tasks/task-article.cc:61 #, fuzzy, c-format msgid "Reading %s" msgstr "Letion de «%s»" #: pan/tasks/task-article.cc:323 #, c-format msgid "Article \"%s\" is incomplete -- the news server(s) don't have part %s" msgstr "" #: pan/tasks/task-groups.cc:41 #, c-format msgid "Getting group list from \"%s\"" msgstr "Obtenente un liste de gruppes de «%s»" #: pan/tasks/task-groups.cc:134 #, fuzzy, c-format msgid "Fetched %lu Groups" msgstr "Omni covrimentes esset obtenet." #: pan/tasks/task-post.cc:33 #, fuzzy, c-format msgid "Posting \"%s\"" msgstr "%S de %a" #: pan/tasks/task-post.cc:74 #, fuzzy, c-format msgid "Posting of \"%s\" failed: %s" msgstr "%s: Anhalten gescheitert: %s!" #: pan/tasks/task-post.cc:79 #, fuzzy, c-format msgid "Posting of \"%s\" successful: %s" msgstr "%s (%s)" #: pan/tasks/task-upload.cc:55 #, fuzzy, c-format msgid "Uploading %s" msgstr "Cargante «%s»" #: pan/tasks/task-upload.cc:249 #, fuzzy, c-format msgid "Uploading %s - Part %d of %d" msgstr "Cargante atachament (%d%%)" #: pan/tasks/task-upload.cc:251 #, c-format msgid "Uploading message body with subject \"%s\"" msgstr "Cargante li córpor por li tema «%s»" #: pan/tasks/task-upload.cc:308 #, c-format msgid "Posting of file %s (part %d of %d) failed: No posts allowed by server." msgstr "" #: pan/tasks/task-upload.cc:317 #, c-format msgid "Posting of file %s (part %d of %d) failed: %s" msgstr "" #: pan/tasks/task-upload.cc:328 pan/tasks/task-upload.cc:335 #, c-format msgid "Posting of file %s (part %d of %d) successful: %s" msgstr "" #: pan/tasks/task-upload.cc:345 #, fuzzy, c-format msgid "Posting of file %s successful: %s" msgstr "%s: %s ist keine reguläre Datei." #: pan/tasks/task-upload.cc:349 #, c-format msgid "" "Posting of file %s not completely successful: Check the log (right-click " "list item)." msgstr "" #: pan/tasks/task-upload.cc:368 #, c-format msgid "" "Posting of file %s not successful: Check the log (right-click list item)." msgstr "" #: pan/tasks/task-xover.cc:82 #, fuzzy, c-format msgid "Getting all headers for \"%s\"" msgstr "Errore obtenente li clave de ciffration: %s" #: pan/tasks/task-xover.cc:85 #, fuzzy, c-format msgid "Getting new headers for \"%s\"" msgstr "Obtenente un nov bloc-liste..." #. SAMPLE #: pan/tasks/task-xover.cc:89 #, fuzzy, c-format msgid "Sampling headers for \"%s\"" msgstr "rubricas" #: pan/tasks/task-xover.cc:454 #, fuzzy, c-format msgid "%s (%lu parts, %lu articles)" msgstr "%s\t( %lu octetes )" #: pan/tasks/task-xover.cc:528 #, c-format msgid "Getting new headers for \"%s\" done." msgstr "" #: pan/usenet-utils/filter-info.cc:215 #, fuzzy msgid "article doesn't have attachments" msgstr "ne have un image" #: pan/usenet-utils/filter-info.cc:219 #, fuzzy msgid "the article has attachments" msgstr "Atachamentes" #: pan/usenet-utils/filter-info.cc:223 msgid "the article isn't cached locally" msgstr "" #: pan/usenet-utils/filter-info.cc:227 #, fuzzy msgid "the article is cached locally" msgstr "Cachat: " #: pan/usenet-utils/filter-info.cc:231 msgid "the article wasn't posted by you" msgstr "" #: pan/usenet-utils/filter-info.cc:235 #, fuzzy msgid "the article was posted by you" msgstr "Articul" #: pan/usenet-utils/filter-info.cc:239 #, fuzzy msgid "the article has been read" msgstr "Li clave esset revocat" #: pan/usenet-utils/filter-info.cc:243 #, fuzzy msgid "the article hasn't been read" msgstr "Leer un articul" #: pan/usenet-utils/filter-info.cc:247 #, c-format msgid "the article is less than %ld bytes long" msgstr "" #: pan/usenet-utils/filter-info.cc:252 #, c-format msgid "the article is at least %ld bytes long" msgstr "" #: pan/usenet-utils/filter-info.cc:257 #, c-format msgid "the article is less than %ld lines long" msgstr "" #: pan/usenet-utils/filter-info.cc:262 #, c-format msgid "the article is at least %ld lines long" msgstr "" #: pan/usenet-utils/filter-info.cc:267 #, c-format msgid "the article is less than %ld days old" msgstr "" #: pan/usenet-utils/filter-info.cc:272 #, c-format msgid "the article is at least %ld days old" msgstr "" #: pan/usenet-utils/filter-info.cc:277 #, c-format msgid "the article was posted to less than %ld groups" msgstr "" #: pan/usenet-utils/filter-info.cc:282 #, c-format msgid "the article was posted to at least %ld groups" msgstr "" #: pan/usenet-utils/filter-info.cc:287 #, c-format msgid "the article's score is less than %ld" msgstr "" #: pan/usenet-utils/filter-info.cc:292 #, c-format msgid "the article's score is %ld or higher" msgstr "" #: pan/usenet-utils/filter-info.cc:301 pan/usenet-utils/filter-info.cc:311 #, c-format msgid "%s doesn't contain \"%s\"" msgstr "%s ne contene «%s»" #: pan/usenet-utils/filter-info.cc:302 pan/usenet-utils/filter-info.cc:312 #, c-format msgid "%s isn't \"%s\"" msgstr "%s ne es «%s»" #: pan/usenet-utils/filter-info.cc:303 pan/usenet-utils/filter-info.cc:313 #, fuzzy, c-format msgid "%s doesn't begin with \"%s\"" msgstr "ne comense per" #: pan/usenet-utils/filter-info.cc:304 pan/usenet-utils/filter-info.cc:314 #, fuzzy, c-format msgid "%s doesn't end with \"%s\"" msgstr "ne contene %s" #: pan/usenet-utils/filter-info.cc:305 pan/usenet-utils/filter-info.cc:315 #, fuzzy, c-format msgid "%s doesn't match the regex \"%s\"" msgstr "ne contene %s" #: pan/usenet-utils/filter-info.cc:327 #, c-format msgid "%s contains \"%s\"" msgstr "%s contene «%s»" #: pan/usenet-utils/filter-info.cc:328 #, c-format msgid "%s is \"%s\"" msgstr "%s es «%s»" #: pan/usenet-utils/filter-info.cc:329 #, fuzzy, c-format msgid "%s begins with \"%s\"" msgstr "comense per" #: pan/usenet-utils/filter-info.cc:330 #, fuzzy, c-format msgid "%s ends with \"%s\"" msgstr "fini per" #: pan/usenet-utils/filter-info.cc:331 #, fuzzy, c-format msgid "%s matches the regex \"%s\"" msgstr "coresponde a exp.reg %s (att. a MAJ/min)" #: pan/usenet-utils/filter-info.cc:337 #, fuzzy msgid "Any of these tests fail:" msgstr "Alquel de:" #: pan/usenet-utils/filter-info.cc:344 #, fuzzy msgid "All of these tests pass:" msgstr "Contrasigne: " #: pan/usenet-utils/filter-info.cc:351 #, fuzzy msgid "None of these tests pass:" msgstr "[null]" #: pan/usenet-utils/filter-info.cc:358 #, fuzzy msgid "Any of these tests pass:" msgstr "Contrasigne: " #: pan/usenet-utils/gnksa.cc:880 #, c-format msgid "No email address provided; generating message-id with domain \"%s\"" msgstr "" #: pan/usenet-utils/message-check.cc:122 msgid "Warning: Reply seems to be top-posted." msgstr "" #: pan/usenet-utils/message-check.cc:143 msgid "Warning: The signature marker should be \"-- \", not \"--\"." msgstr "" #: pan/usenet-utils/message-check.cc:160 #, fuzzy msgid "Warning: Signature prefix with no signature." msgstr "ID del signature" #: pan/usenet-utils/message-check.cc:165 msgid "Warning: Signature is more than 4 lines long." msgstr "" #: pan/usenet-utils/message-check.cc:170 msgid "Warning: Signature is more than 80 characters wide." msgstr "" #: pan/usenet-utils/message-check.cc:196 #, c-format msgid "Warning: %d line is more than 80 characters wide." msgid_plural "Warning: %d lines are more than 80 characters wide." msgstr[0] "" msgstr[1] "" #: pan/usenet-utils/message-check.cc:221 #, fuzzy msgid "Error: Message is empty." msgstr "Li textu contene un errore:" #: pan/usenet-utils/message-check.cc:256 msgid "Warning: The message is entirely quoted text!" msgstr "" #: pan/usenet-utils/message-check.cc:257 msgid "Warning: The message is mostly quoted text." msgstr "" #: pan/usenet-utils/message-check.cc:307 msgid "Error: Message appears to have no new content." msgstr "" #: pan/usenet-utils/message-check.cc:342 pan/usenet-utils/message-check.cc:381 #, c-format msgid "" "Warning: The posting profile's server doesn't carry newsgroup\n" "\t\"%s\".\n" "\tIf the group name is correct, switch profiles in the \"From:\"\n" "\tline or edit the profile with \"Edit|Manage Posting Profiles\"." msgstr "" #: pan/usenet-utils/message-check.cc:353 msgid "Warning: Following-Up to too many groups." msgstr "" #: pan/usenet-utils/message-check.cc:364 #, fuzzy msgid "Error: No Subject specified." msgstr "(Null tema)" #: pan/usenet-utils/message-check.cc:393 #, fuzzy, c-format msgid "Warning: Group \"%s\" is read-only." msgstr "Li file «%s» es solmen letion" #: pan/usenet-utils/message-check.cc:402 msgid "Error: Posting to a very large number of groups." msgstr "" #: pan/usenet-utils/message-check.cc:407 msgid "Warning: Posting to a large number of groups." msgstr "" #: pan/usenet-utils/message-check.cc:414 msgid "Warning: Crossposting without setting Followup-To header." msgstr "" #: pan/usenet-utils/message-check.cc:439 #, fuzzy msgid "Error: Bad email address." msgstr "_Adresse de e-post" #: pan/usenet-utils/message-check.cc:448 msgid "Warning: Most newsgroups frown upon HTML posts." msgstr "" #: pan/usenet-utils/message-check.cc:484 #, fuzzy msgid "Error: No Recipients." msgstr "Null errore" #: pan/usenet-utils/scorefile.cc:310 #, c-format msgid "Error reading score in %*.*s, line %d: unexpected line." msgstr "" #: pan/usenet-utils/scorefile.cc:442 #, c-format msgid "" "Error reading score in %*.*s, line %d: expected 'Expires: MM/DD/YYYY' or " "'Expires: DD-MM-YYYY'." msgstr "" #: pan/usenet-utils/scorefile.cc:452 #, c-format msgid "Expired old score from %*.*s, line %d" msgstr "" #: pan/usenet-utils/scorefile.cc:589 #, c-format msgid "Read %lu scoring rules in %lu sections from \"%s\"" msgstr "" #: pan/usenet-utils/ssl-utils.cc:172 #, fuzzy, c-format msgid "Error printing the server certificate for '%s'" msgstr "" "Un errore printante li file:\n" "%s" #: pan/usenet-utils/ssl-utils.cc:191 #, c-format msgid "" "The current server '%s' sent this security certificate:\n" "\n" msgstr "" #: pan/usenet-utils/ssl-utils.cc:197 #, c-format msgid "" "Certificate information for server '%s':\n" "\n" msgstr "" #: pan/usenet-utils/ssl-utils.cc:202 #, c-format msgid "" "%sIssuer information:\n" "%s\n" "Valid until: %s\n" "\n" "Not valid before: %s\n" "\n" msgstr "" #: pan/usenet-utils/text-massager.cc:397 #, fuzzy msgid "> [quoted text muted]" msgstr "Assurdat;" #: pan/usenet-utils/text-massager.cc:579 #, fuzzy msgid "no_name" msgstr "Nómine:" #: pan/usenet-utils/text-massager.cc:580 #, fuzzy msgid "no_mail" msgstr "&Inviar..." pan-0.162/po/it.po000066400000000000000000004262701475412772400137220ustar00rootroot00000000000000# translation of it.po to italiano # Pan newsreader in Italian. # Copyright (C) 1999,2003 Free Software Foundation, Inc. # Francesco Lamonica , 1999,2003. # msgid "" msgstr "" "Project-Id-Version: Pan 0.14.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-04-04 20:58+0200\n" "PO-Revision-Date: 2003-05-06 14:43+0200\n" "Last-Translator: Francesco Lamonica \n" "Language-Team: italiano \n" "Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.0\n" #: ../pan.desktop.in.h:1 msgid "Pan Newsreader" msgstr "Pan Lettore di News" #: ../pan.desktop.in.h:2 #, fuzzy msgid "Read and Post Usenet Articles" msgstr "Leggi Prossimo Articolo Non Letto" #: ../pan/data/article-cache.cc:143 ../pan/data/encode-cache.cc:62 #, fuzzy, c-format msgid "Error opening directory: \"%s\": %s" msgstr "Errore aprendo la directory \"%s\": %s." #: ../pan/data/article-cache.cc:231 ../pan/data/article-cache.cc:242 #: ../pan/data-impl/data-io.cc:187 ../pan/data-impl/data-io.cc:211 #: ../pan/gui/post-ui.cc:1639 #, fuzzy, c-format msgid "Unable to save \"%s\" %s" msgstr "Impossibile impostare il gruppo \"%s\": %s" #: ../pan/data/article-cache.cc:355 #, fuzzy, c-format msgid "Error opening file \"%s\" %s" msgstr "Errore aprendo il file \"%s\": %s." #: ../pan/data/article-cache.cc:386 ../pan/data-impl/profiles.cc:174 #: ../pan/data-impl/server.cc:436 ../pan/general/file-util.cc:298 #: ../pan/gui/post-ui.cc:609 ../pan/gui/task-pane.cc:691 #, c-format msgid "Error reading file \"%s\": %s" msgstr "Errore leggendoil file \"%s\": %s." #: ../pan/data/cert-store.cc:238 #, fuzzy, c-format msgid "Error opening SSL certificate directory: \"%s\": %s" msgstr "Errore aprendo la directory \"%s\": %s." #: ../pan/data/cert-store.cc:270 #, c-format msgid "Succesfully added %d SSL PEM certificate(s) to Certificate Store." msgstr "" #. load_group_descriptions (*_data_io); #: ../pan/data-impl/data-impl.cc:109 #, c-format msgid "Loaded data backend in %.1f seconds" msgstr "" #: ../pan/data-impl/data-impl.cc:140 msgid "Pan newsreader server passwords" msgstr "" #: ../pan/data-impl/groups.cc:94 #, fuzzy, c-format msgid "Skipping newsrc file for server \"%s\"" msgstr "Recuperati %d nuovi gruppi dal server \"%s\"" #: ../pan/data-impl/headers.cc:606 #, fuzzy, c-format msgid "Expired %lu old articles from \"%s\"" msgstr "Scaduti %u articoli da `%s'" #: ../pan/data-impl/headers.cc:613 #, c-format msgid "" "Unsupported data version for %s headers: %d.\n" "Are you running an old version of Pan by accident?" msgstr "" "Versione dati non supportata per %s intestazioni: %d.\n" "Si sta eseguendo una vecchia versione di Pan per caso?" #: ../pan/data-impl/headers.cc:628 #, fuzzy, c-format msgid "Loaded %lu articles for \"%s\" in %.1f seconds (%.0f per second)" msgstr "Caricati %d articoli del gruppo \"%s\" in %.1f secondi (%.0f art/sec)" #: ../pan/data-impl/headers.cc:857 #, fuzzy, c-format msgid "" "Saved %lu parts, %lu articles in \"%s\" in %.1f seconds (%.0f articles/sec)" msgstr "Salvati %d articoli in \"%s\" in %.1f secondi (%.0f art/sec)" #: ../pan/data-impl/headers.cc:1173 #, fuzzy, c-format msgid "Added %lu articles to %s." msgstr "Scaduti %u articoli da `%s'" #: ../pan/data-impl/server.cc:234 #, c-format msgid "There seems to be no Password set for Server %s." msgstr "" #: ../pan/data-impl/server.cc:238 msgid "The Gnome keyring denied access to the Passwords." msgstr "" #: ../pan/data-impl/xover.cc:239 #, fuzzy, c-format msgid "Error reading from %s: unknown group \"%s\"" msgstr "Errore in lettura dal socket.: %s" #. build the locale strings #: ../pan/general/e-util.cc:213 msgid "%l:%M %p" msgstr "" #: ../pan/general/e-util.cc:214 msgid "Today %l:%M %p" msgstr "" #: ../pan/general/e-util.cc:215 msgid "%a %l:%M %p" msgstr "" #: ../pan/general/e-util.cc:216 msgid "%b %d %l:%M %p" msgstr "" #: ../pan/general/e-util.cc:217 msgid "%b %d %Y" msgstr "" #: ../pan/general/e-util.cc:242 msgid "?" msgstr "" #: ../pan/general/text-match.cc:193 #, fuzzy, c-format msgid "Can't use regular expression \"%s\": %s" msgstr "combacia con l'espressione regolare" #: ../pan/general/utf8-utils.cc:213 msgid "Couldn't determine article encoding. Non-UTF8 characters were removed." msgstr "" #: ../pan/gui/actions.cc:274 ../pan/gui/post-ui.cc:417 #, fuzzy msgid "_File" msgstr "/_File" #: ../pan/gui/actions.cc:275 ../pan/gui/post-ui.cc:418 #, fuzzy msgid "_Edit" msgstr "/Modifica" #: ../pan/gui/actions.cc:276 ../pan/gui/prefs-ui.cc:1064 #, fuzzy msgid "_Layout" msgstr "_Layout Pannelli" #: ../pan/gui/actions.cc:277 #, fuzzy msgid "_Group Pane" msgstr "/_Visualizza/Mostra _Pannello Gruppi" #: ../pan/gui/actions.cc:278 #, fuzzy msgid "_Header Pane" msgstr "Pannello Intestazioni" #: ../pan/gui/actions.cc:279 #, fuzzy msgid "_Body Pane" msgstr "Pannello Testo" #: ../pan/gui/actions.cc:280 #, fuzzy msgid "_View" msgstr "/_Visualizza" #: ../pan/gui/actions.cc:281 #, fuzzy msgid "Filte_r" msgstr "/Filt_ri" #: ../pan/gui/actions.cc:282 #, fuzzy msgid "_Go" msgstr "/Vai" #: ../pan/gui/actions.cc:283 ../pan/gui/prefs-ui.cc:1091 #, fuzzy msgid "_Actions" msgstr "Azioni" #: ../pan/gui/actions.cc:284 #, fuzzy msgid "_Articles" msgstr "/_Articoli" #: ../pan/gui/actions.cc:285 #, fuzzy msgid "G_roups" msgstr "Gruppi" #: ../pan/gui/actions.cc:286 ../pan/gui/actions.cc:287 #, fuzzy msgid "_Post" msgstr "/Spedisci" #: ../pan/gui/actions.cc:288 msgid "_Help" msgstr "Aiuto" #: ../pan/gui/actions.cc:291 #, fuzzy msgid "_Read Group" msgstr "Elimina il Gruppo" #: ../pan/gui/actions.cc:292 #, fuzzy msgid "Read Group" msgstr "Elimina il Gruppo" #: ../pan/gui/actions.cc:296 #, fuzzy msgid "_Mark Selected Groups Read" msgstr "/Segna il G_ruppo come già Letto" #: ../pan/gui/actions.cc:297 #, fuzzy msgid "Mark Selected Groups Read" msgstr "/Segna il G_ruppo come già Letto" #: ../pan/gui/actions.cc:301 #, fuzzy msgid "_Delete Selected Groups' Articles" msgstr "/Cancella gli articoli _del gruppo" #: ../pan/gui/actions.cc:302 #, fuzzy msgid "Delete Selected Groups' Articles" msgstr "/Cancella gli articoli _del gruppo" #: ../pan/gui/actions.cc:306 #, fuzzy msgid "Get New _Headers in Selected Groups" msgstr "Scarica Nuove Intestazioni per i Gruppi Selezionati" #: ../pan/gui/actions.cc:307 #, fuzzy msgid "Get New Headers in Selected Groups" msgstr "Scarica Nuove Intestazioni per i Gruppi Selezionati" #: ../pan/gui/actions.cc:311 ../pan/gui/actions.cc:316 #, fuzzy msgid "Get New _Headers in Subscribed Groups" msgstr "Scarica Nuove intestazioni per i Gruppi Sottoscritti" #: ../pan/gui/actions.cc:312 ../pan/gui/actions.cc:317 #, fuzzy msgid "Get New Headers in Subscribed Groups" msgstr "Scarica Nuove intestazioni per i Gruppi Sottoscritti" #: ../pan/gui/actions.cc:321 #, fuzzy msgid "Get _Headers..." msgstr "Scarica Nuove Intestazioni" #: ../pan/gui/actions.cc:322 #, fuzzy msgid "Get Headers..." msgstr "Scarica Nuove Intestazioni" #: ../pan/gui/actions.cc:326 ../pan/gui/actions.cc:327 #, fuzzy msgid "Refresh Group List" msgstr "Aggiornamento gruppo \"%s\"" #: ../pan/gui/actions.cc:331 #, fuzzy msgid "_Subscribe" msgstr "/_Sottoscrivi" #: ../pan/gui/actions.cc:332 #, fuzzy msgid "Subscribe" msgstr "/_Sottoscrivi" #: ../pan/gui/actions.cc:336 #, fuzzy msgid "_Unsubscribe" msgstr "Cancella Iscrizione" #: ../pan/gui/actions.cc:337 #, fuzzy msgid "Unsubscribe" msgstr "Cancella Iscrizione" #: ../pan/gui/actions.cc:341 #, fuzzy msgid "_Save Articles..." msgstr "/_Salva Allegati Come..." #: ../pan/gui/actions.cc:342 #, fuzzy msgid "Save Articles..." msgstr "/_Salva Allegati Come..." #: ../pan/gui/actions.cc:346 #, fuzzy msgid "Save Articles from Selected _NZB..." msgstr "/_Salva Allegati Come..." #: ../pan/gui/actions.cc:347 #, fuzzy msgid "Save Articles from Selected NZB" msgstr "Salva allegati" #: ../pan/gui/actions.cc:351 #, fuzzy msgid "Save Articles to an NZB _File..." msgstr "/_Salva Allegati Come..." #: ../pan/gui/actions.cc:352 #, fuzzy msgid "Save Articles to an NZB File" msgstr "Salva il log su un file" #: ../pan/gui/actions.cc:356 ../pan/gui/actions.cc:357 #, fuzzy msgid "Print" msgstr "Pan: Stampa" #: ../pan/gui/actions.cc:361 msgid "_Import NZB Files..." msgstr "" #: ../pan/gui/actions.cc:366 #, fuzzy msgid "_Cancel Last Task" msgstr "Elimina l'ultimo processo" #: ../pan/gui/actions.cc:371 #, fuzzy msgid "_Task Manager" msgstr "/S_trumenti/Ges_tore dei Processi..." #: ../pan/gui/actions.cc:376 #, fuzzy msgid "_Event Log" msgstr "Apri il Log di Stato" #: ../pan/gui/actions.cc:381 #, fuzzy msgid "_Quit" msgstr "/Modifica" #: ../pan/gui/actions.cc:386 #, fuzzy msgid "Select _All Articles" msgstr "/Modifica/Seleziona tutti gli _Articoli" #: ../pan/gui/actions.cc:391 #, fuzzy msgid "_Deselect All Articles" msgstr "/Modifica/Deseleziona Tutti gli Artico_li" #: ../pan/gui/actions.cc:396 #, fuzzy msgid "Add Su_bthreads to Selection" msgstr "/Modifica/Aggiungi _Sotto-discussione alla Selezione" #: ../pan/gui/actions.cc:401 #, fuzzy msgid "Add _Threads to Selection" msgstr "/Modifica/Aggiungi Discussione alla Selezione" #: ../pan/gui/actions.cc:406 #, fuzzy msgid "Add _Similar Articles to Selection" msgstr "/Modifica/Aggiungi Discussione alla Selezione" #: ../pan/gui/actions.cc:411 #, fuzzy msgid "Select Article _Body" msgstr "/Modifica/Seleziona il testo dell'articolo" #: ../pan/gui/actions.cc:416 #, fuzzy msgid "Edit _Preferences" msgstr "/Modifica/_Preferenze" #: ../pan/gui/actions.cc:421 #, fuzzy msgid "Edit Selected _Group's Preferences" msgstr "/Modifica/_Preferenze" #: ../pan/gui/actions.cc:426 ../pan/gui/post-ui.cc:434 #, fuzzy msgid "Edit P_osting Profiles" msgstr "/S_trumenti/_Profili di invio" #: ../pan/gui/actions.cc:431 #, fuzzy msgid "Edit _News Servers" msgstr "/S_trumenti/_Server di News..." #: ../pan/gui/actions.cc:436 #, fuzzy msgid "Jump to _Group Tab" msgstr "/_Visualizza/Passa a Linguetta _Gruppi" #: ../pan/gui/actions.cc:441 #, fuzzy msgid "Jump to _Header Tab" msgstr "/_Visualizza/Passa a linguetta intestazioni" #: ../pan/gui/actions.cc:446 #, fuzzy msgid "Jump to _Body Tab" msgstr "/_Visualizza/Passa alla linguetta del testo" #: ../pan/gui/actions.cc:451 #, fuzzy msgid "_Rot13 Selected Text" msgstr "Applica Rot13 al Testo Selezionato" #: ../pan/gui/actions.cc:456 #, fuzzy msgid "Clear _Header Pane" msgstr "Pannello Intestazioni" #: ../pan/gui/actions.cc:461 #, fuzzy msgid "Clear _Body Pane" msgstr "Pannello Testo" #: ../pan/gui/actions.cc:466 #, fuzzy msgid "Cache Article" msgstr "Eliminazione dell'articolo in corso" #: ../pan/gui/actions.cc:471 #, fuzzy msgid "Read Article" msgstr "Scaricamento di %d articoli di esempio in corso" #: ../pan/gui/actions.cc:476 #, fuzzy msgid "Show Article Information" msgstr "Informazioni profilo" #: ../pan/gui/actions.cc:481 #, fuzzy msgid "Read _More" msgstr "Leggi ulteriormente" #: ../pan/gui/actions.cc:482 msgid "Read More" msgstr "Leggi ulteriormente" #: ../pan/gui/actions.cc:486 msgid "Read _Back" msgstr "" #: ../pan/gui/actions.cc:487 #, fuzzy msgid "Read Back" msgstr "/Vai/Leggi indietro" #: ../pan/gui/actions.cc:491 #, fuzzy msgid "Next _Unread Group" msgstr "/Vai a/_Gruppo Non Letto Successivo" #: ../pan/gui/actions.cc:496 #, fuzzy msgid "Next _Group" msgstr "/Vai a/Gruppo Succ_essivo" #: ../pan/gui/actions.cc:501 #, fuzzy msgid "Next _Unread Article" msgstr "Leggi Prossimo Articolo Non Letto" #: ../pan/gui/actions.cc:502 #, fuzzy msgid "Next Unread Article" msgstr "Leggi Prossimo Articolo Non Letto" #: ../pan/gui/actions.cc:506 #, fuzzy msgid "Next _Article" msgstr "/Vai a/Prossimo Articolo" #: ../pan/gui/actions.cc:507 #, fuzzy msgid "Next Article" msgstr "/Vai a/Prossimo Articolo" #: ../pan/gui/actions.cc:511 #, fuzzy msgid "Next _Watched Article" msgstr "Mostra solo gli articoli seguiti" #: ../pan/gui/actions.cc:516 #, fuzzy msgid "Next Unread _Thread" msgstr "/Vai a/Discussione Non Le_tta Successiva" #: ../pan/gui/actions.cc:517 #, fuzzy msgid "Next Unread Thread" msgstr "Leggi Discussione Non Letta Successiva" #: ../pan/gui/actions.cc:521 #, fuzzy msgid "Next Threa_d" msgstr "/Vai a/Prossima _Discussione" #: ../pan/gui/actions.cc:526 #, fuzzy msgid "Pre_vious Article" msgstr "/Vai a/Articolo Precedente" #: ../pan/gui/actions.cc:531 #, fuzzy msgid "Previous _Thread" msgstr "/Vai a/Disc_ussione precedente" #: ../pan/gui/actions.cc:536 #, fuzzy msgid "_Parent Article" msgstr "/Vai a/Articolo _Padre" #: ../pan/gui/actions.cc:541 #, fuzzy msgid "Ignore _Author" msgstr "/_Ignora Discussione" #: ../pan/gui/actions.cc:545 #, fuzzy msgid "_Watch Thread" msgstr "Segui Discussione" #: ../pan/gui/actions.cc:550 #, fuzzy msgid "_Ignore Thread" msgstr "/_Ignora Discussione" #: ../pan/gui/actions.cc:555 ../pan/gui/actions.cc:556 #, fuzzy msgid "_Toggle Flag On/Off for Thread" msgstr "Segui Discussione" #: ../pan/gui/actions.cc:560 ../pan/gui/actions.cc:561 #, fuzzy msgid "_Turn Flag Off for Thread" msgstr "Segui Discussione" #: ../pan/gui/actions.cc:565 ../pan/gui/actions.cc:566 #, fuzzy msgid "_Select All Flagged Threads" msgstr "Leggi Discussione Non Letta Successiva" #: ../pan/gui/actions.cc:570 ../pan/gui/actions.cc:571 #, fuzzy msgid "_Go to Next Flagged Thread" msgstr "Leggi Discussione Non Letta Successiva" #: ../pan/gui/actions.cc:575 ../pan/gui/actions.cc:576 #, fuzzy msgid "_Go to Last Flagged Thread" msgstr "Leggi Discussione Non Letta Successiva" #: ../pan/gui/actions.cc:580 ../pan/gui/actions.cc:581 #, fuzzy msgid "_Invert Selection" msgstr "Inverti la riga selezionata" #: ../pan/gui/actions.cc:585 msgid "Edit Article's Watch/Ignore/Score..." msgstr "" #: ../pan/gui/actions.cc:590 #, fuzzy msgid "Add a _Scoring Rule..." msgstr "Aggiungi un nuovo punteggio" #: ../pan/gui/actions.cc:595 #, fuzzy msgid "Cance_l Article..." msgstr "Eliminazione dell'articolo in corso" #: ../pan/gui/actions.cc:600 #, fuzzy msgid "_Supersede Article..." msgstr "/_File/Stam_pa Articolo..." #: ../pan/gui/actions.cc:605 #, fuzzy msgid "_Delete Article" msgstr "Elimina Articolo" #: ../pan/gui/actions.cc:610 #, fuzzy msgid "Clear Article Cache" msgstr "Cache articoli" #: ../pan/gui/actions.cc:615 #, fuzzy msgid "_Mark Article as Read" msgstr "L'articolo è stato letto" #: ../pan/gui/actions.cc:620 #, fuzzy msgid "Mark Article as _Unread" msgstr "L'articolo non è stato letto" #: ../pan/gui/actions.cc:626 #, fuzzy msgid "_Mark Thread as Read" msgstr "L'articolo è stato letto" #: ../pan/gui/actions.cc:631 #, fuzzy msgid "Mark Thread as _Unread" msgstr "L'articolo non è stato letto" #: ../pan/gui/actions.cc:636 #, fuzzy msgid "_Post to Newsgroup" msgstr "Invia al gruppo" #: ../pan/gui/actions.cc:637 msgid "Post to Newsgroup" msgstr "Invia al gruppo" #: ../pan/gui/actions.cc:641 #, fuzzy msgid "_Followup to Newsgroup" msgstr "/Spedisci/_Followup sul gruppo" #: ../pan/gui/actions.cc:642 #, fuzzy msgid "Followup to Newsgroup" msgstr "/Spedisci/_Followup sul gruppo" #: ../pan/gui/actions.cc:646 #, fuzzy msgid "_Reply to Author in Mail" msgstr "/_Articoli/Ignora autore" #: ../pan/gui/actions.cc:651 #, fuzzy msgid "_Pan Home Page" msgstr "/Aiuto/_Homepage di Pan..." #: ../pan/gui/actions.cc:656 #, fuzzy msgid "Give _Feedback or Report a Bug..." msgstr "/Aiuto/Segnala un _Bug..." #: ../pan/gui/actions.cc:661 msgid "_Tip Jar..." msgstr "" #: ../pan/gui/actions.cc:666 #, fuzzy msgid "_About" msgstr "Informazioni su" #: ../pan/gui/actions.cc:671 msgid "Edit _SSL Certificates" msgstr "" #: ../pan/gui/actions.cc:685 #, fuzzy msgid "_Thread Headers" msgstr "Ulteriori intestazioni" #: ../pan/gui/actions.cc:686 #, fuzzy msgid "_Wrap Article Body" msgstr "/_Visualizza/Manda a capo il testo dell'articolo" #: ../pan/gui/actions.cc:687 #, fuzzy msgid "Mute _Quoted Text" msgstr "/_Visualizza/Nascondi Testo Citato" #: ../pan/gui/actions.cc:688 #, fuzzy msgid "Show All _Headers in Body Pane" msgstr "/_Visualizza/Mostra tutte le intestazioni nel pannello degli articoli" #: ../pan/gui/actions.cc:689 #, fuzzy msgid "Show _Smilies as Graphics" msgstr "Mostra avviso" #: ../pan/gui/actions.cc:690 msgid "Show *Bold*, __Underlined__, and /Italic/" msgstr "" #: ../pan/gui/actions.cc:691 msgid "Size Pictures to _Fit" msgstr "" #: ../pan/gui/actions.cc:692 #, fuzzy msgid "Use _Monospace Font" msgstr "Font monospazio:" #: ../pan/gui/actions.cc:693 msgid "Set Focus to Images" msgstr "" #: ../pan/gui/actions.cc:694 msgid "Highlight _URLs" msgstr "" #: ../pan/gui/actions.cc:697 #, fuzzy msgid "_Work Online" msgstr "/_File/Lavora On_line" #: ../pan/gui/actions.cc:698 #, fuzzy msgid "_Tabbed Layout" msgstr "/_Visualizza/Layout a lingue_tte" #: ../pan/gui/actions.cc:699 #, fuzzy msgid "Show Group _Pane" msgstr "/_Visualizza/Mostra _Pannello Gruppi" #: ../pan/gui/actions.cc:700 #, fuzzy msgid "Show Hea_der Pane" msgstr "/_Visualizza/Mostra Pannello Intestazioni" #: ../pan/gui/actions.cc:701 #, fuzzy msgid "Show Bod_y Pane" msgstr "/_Visualizza/Mostra il panello del testo" #: ../pan/gui/actions.cc:702 msgid "Show _Toolbar" msgstr "" #: ../pan/gui/actions.cc:703 #, fuzzy msgid "Abbreviate Group Names" msgstr "/_Visualizza/_Nomi abbreviati nel pannello dei gruppi" #: ../pan/gui/actions.cc:705 #, fuzzy msgid "Match Only _Unread Articles" msgstr "/Filt_ri/Controlla Articoli Non Letti" #: ../pan/gui/actions.cc:705 #, fuzzy msgid "Match Only Unread Articles" msgstr "/Filt_ri/Controlla Articoli Non Letti" #: ../pan/gui/actions.cc:706 #, fuzzy msgid "Match Only _Cached Articles" msgstr "Mostra solo gli articoli in cache" #: ../pan/gui/actions.cc:706 #, fuzzy msgid "Match Only Cached Articles" msgstr "Mostra solo gli articoli in cache" #: ../pan/gui/actions.cc:707 #, fuzzy msgid "Match Only _Complete Articles" msgstr "Mostra solo Allegati completi" #: ../pan/gui/actions.cc:707 #, fuzzy msgid "Match Only Complete Articles" msgstr "Mostra solo Allegati completi" #: ../pan/gui/actions.cc:708 #, fuzzy msgid "Match Only _My Articles" msgstr "Mostra solo i nuovi articoli" #: ../pan/gui/actions.cc:708 #, fuzzy msgid "Match Only My Articles" msgstr "Mostra solo i nuovi articoli" #: ../pan/gui/actions.cc:709 #, fuzzy msgid "Match Only _Watched Articles" msgstr "Mostra solo gli articoli seguiti" #: ../pan/gui/actions.cc:709 #, fuzzy msgid "Match Only Watched Articles" msgstr "Mostra solo gli articoli seguiti" #: ../pan/gui/actions.cc:711 msgid "Match Scores of 9999 (_Watched)" msgstr "" #: ../pan/gui/actions.cc:712 msgid "Match Scores of 5000...9998 (_High)" msgstr "" #: ../pan/gui/actions.cc:713 msgid "Match Scores of 1...4999 (Me_dium)" msgstr "" #: ../pan/gui/actions.cc:714 msgid "Match Scores of 0 (_Normal)" msgstr "" #: ../pan/gui/actions.cc:715 msgid "Match Scores of -9998...-1 (_Low)" msgstr "" #: ../pan/gui/actions.cc:716 #, fuzzy msgid "Match Scores of -9999 (_Ignored)" msgstr "Articoli con un punteggio di -9999 o inferiore" #: ../pan/gui/actions.cc:718 msgid "Enable/Disable All _Rules" msgstr "" #: ../pan/gui/actions.cc:744 #, fuzzy msgid "Show Matching _Articles" msgstr "/Filt_ri/Mostra articoli che combaciano" #: ../pan/gui/actions.cc:745 #, fuzzy msgid "Show Matching Articles' _Threads" msgstr "/Filt_ri/Mostra articoli che combaciano" #: ../pan/gui/actions.cc:746 #, fuzzy msgid "Show Matching Articles' _Subthreads" msgstr "/Filt_ri/Mostra gli articoli che combaciano e le risposte" #: ../pan/gui/body-pane.cc:1011 #, fuzzy, c-format msgid "Unnamed File" msgstr "File della firma:" #: ../pan/gui/body-pane.cc:1092 ../pan/gui/gui.cc:1864 #: ../pan/gui/header-pane.cc:1188 ../pan/gui/header-pane.cc:1617 #: ../pan/gui/post-ui.cc:2496 ../pan/gui/prefs-ui.cc:833 #: ../pan/gui/score-add-ui.cc:139 msgid "Subject" msgstr "Oggetto" #: ../pan/gui/body-pane.cc:1094 ../pan/gui/gui.cc:1864 #, fuzzy msgid "From" msgstr "Da" #: ../pan/gui/body-pane.cc:1096 ../pan/gui/gui.cc:1865 #: ../pan/gui/header-pane.cc:1695 ../pan/gui/log-ui.cc:305 #: ../pan/gui/prefs-ui.cc:829 msgid "Date" msgstr "Data" #: ../pan/gui/body-pane.cc:1103 msgid "Newsgroups" msgstr "Gruppi di discussione" #: ../pan/gui/body-pane.cc:1108 #, fuzzy msgid "Followup-To" msgstr "Followup-To:" #: ../pan/gui/body-pane.cc:1118 msgid "Reply-To" msgstr "Reply-To" #: ../pan/gui/body-pane.cc:1160 msgid " from " msgstr "" #: ../pan/gui/body-pane.cc:1162 msgid " at " msgstr "" #: ../pan/gui/body-pane.cc:1264 #, c-format msgid "" "This is a PGP-Signed message.\n" "\n" "Signer : %s ('%s')\n" "Valid until : %s\n" "Created on : %s" msgstr "" #: ../pan/gui/body-pane.cc:1269 msgid "always" msgstr "" #: ../pan/gui/body-pane.cc:1485 msgid "Copy _URL" msgstr "" #: ../pan/gui/body-pane.cc:1680 #, fuzzy msgid "Save attachment as ...." msgstr "Salva allegati come..." #: ../pan/gui/body-pane.cc:1683 #, fuzzy msgid "Save all attachments" msgstr "Salva allegati" #. add a toolbar for attachments #: ../pan/gui/body-pane.cc:1753 msgid "Attachments" msgstr "Allegati" #. update the titlebar #: ../pan/gui/dl-headers-ui.cc:106 ../pan/gui/gui.cc:973 #: ../pan/gui/gui.cc:1592 ../pan/gui/gui.cc:1893 #: ../pan/gui/score-add-ui.cc:602 msgid "Pan" msgstr "" #: ../pan/gui/dl-headers-ui.cc:112 #, fuzzy, c-format msgid "%d Group" msgid_plural "%d Groups" msgstr[0] "Gruppi" msgstr[1] "Gruppi" #: ../pan/gui/dl-headers-ui.cc:135 #, fuzzy msgid "Get the last N _days' headers: " msgstr "Scarica intestazioni _recenti: " #: ../pan/gui/dl-headers-ui.cc:143 #, fuzzy msgid "Get _new headers" msgstr "Scarica Nuove Intestazioni" #: ../pan/gui/dl-headers-ui.cc:147 #, fuzzy msgid "Get _all headers" msgstr "Scaric_a tutte le intestazioni" #: ../pan/gui/dl-headers-ui.cc:151 #, fuzzy msgid "Get the _latest N headers: " msgstr "Scarica intestazioni _recenti: " #: ../pan/gui/e-action-combo-box.c:388 ../pan/gui/prefs-ui.cc:826 #, fuzzy msgid "Action" msgstr "Azioni" #: ../pan/gui/e-action-combo-box.c:389 msgid "A GtkRadioAction" msgstr "" #: ../pan/gui/e-charset.c:51 ../pan/gui/task-pane.cc:518 msgid "Unknown" msgstr "Sconosciuto" #: ../pan/gui/e-charset.c:52 msgid "Arabic" msgstr "" #: ../pan/gui/e-charset.c:53 msgid "Baltic" msgstr "Baltico" #: ../pan/gui/e-charset.c:54 msgid "Central European" msgstr "Europeo centrale" #: ../pan/gui/e-charset.c:55 #, fuzzy msgid "Chinese" msgstr "Righe" #: ../pan/gui/e-charset.c:56 msgid "Cyrillic" msgstr "Cirillico" #: ../pan/gui/e-charset.c:57 msgid "Greek" msgstr "Greco" #: ../pan/gui/e-charset.c:58 msgid "Hebrew" msgstr "" #: ../pan/gui/e-charset.c:59 msgid "Japanese" msgstr "Giapponese" #: ../pan/gui/e-charset.c:60 msgid "Korean" msgstr "Coreano" #: ../pan/gui/e-charset.c:61 msgid "Thai" msgstr "" #: ../pan/gui/e-charset.c:62 msgid "Turkish" msgstr "Turco" #: ../pan/gui/e-charset.c:63 #, fuzzy msgid "Unicode" msgstr "Unicode, UTF-8" #: ../pan/gui/e-charset.c:64 #, fuzzy msgid "Western European" msgstr "Europeo centrale" #: ../pan/gui/e-charset.c:65 #, fuzzy msgid "Western European, New" msgstr "Occidentale, Nuovo" #: ../pan/gui/e-charset.c:84 ../pan/gui/e-charset.c:85 #: ../pan/gui/e-charset.c:86 #, fuzzy msgid "Traditional" msgstr "Cinese Tradizionale" #: ../pan/gui/e-charset.c:87 ../pan/gui/e-charset.c:88 #: ../pan/gui/e-charset.c:89 ../pan/gui/e-charset.c:90 #, fuzzy msgid "Simplified" msgstr "Cinese semplificato" #: ../pan/gui/e-charset.c:93 #, fuzzy msgid "Ukrainian" msgstr "Cirillico, Ucraino" #: ../pan/gui/e-charset.c:96 msgid "Visual" msgstr "" #: ../pan/gui/e-charset-combo-box.c:93 ../pan/gui/gui.cc:2058 #: ../pan/gui/post-ui.cc:519 ../pan/gui/prefs-ui.cc:737 #, fuzzy msgid "Character Encoding" msgstr "Set di caratteri:" #: ../pan/gui/e-charset-combo-box.c:117 msgid "Enter the character set to use" msgstr "" #: ../pan/gui/e-charset-combo-box.c:336 msgid "Other..." msgstr "" #: ../pan/gui/e-cte-dialog.c:78 #, fuzzy msgid "Default encoding" msgstr "Decodifica \"%s\" in corso" #: ../pan/gui/e-cte-dialog.c:80 #, fuzzy msgid "7Bit Encoding" msgstr "Set di caratteri:" #: ../pan/gui/e-cte-dialog.c:82 #, fuzzy msgid "8Bit Encoding" msgstr "Set di caratteri:" #: ../pan/gui/e-cte-dialog.c:84 #, fuzzy msgid "BASE64 Encoding" msgstr "Set di caratteri:" #: ../pan/gui/e-cte-dialog.c:86 #, fuzzy msgid "Quoted-Printable Encoding" msgstr "Pannello Testo" #: ../pan/gui/group-pane.cc:500 #, fuzzy msgid "Group" msgstr "Gruppi" #: ../pan/gui/group-pane.cc:501 #, fuzzy msgid "Group (regex)" msgstr "Gruppo" #: ../pan/gui/group-pane.cc:913 #, fuzzy msgid "Subscribed Groups" msgstr "Gruppi Sottoscritti" #: ../pan/gui/group-pane.cc:914 #, fuzzy msgid "Other Groups" msgstr "Nuovi gruppi" #: ../pan/gui/group-pane.cc:954 ../pan/gui/score-view-ui.cc:157 #, fuzzy msgid "Name" msgstr "_Nome:" #: ../pan/gui/group-prefs-dialog.cc:156 #, fuzzy msgid "No Profiles defined in Edit|Posting Profiles." msgstr "/S_trumenti/_Profili di invio" #: ../pan/gui/group-prefs-dialog.cc:231 #, fuzzy msgid "Pan: Group Preferences" msgstr "Impostazioni di Pan" #: ../pan/gui/group-prefs-dialog.cc:247 #, fuzzy, c-format msgid "Properties for Groups" msgstr "Proprietà di \"%s\"" #: ../pan/gui/group-prefs-dialog.cc:249 #, fuzzy, c-format msgid "Properties for %s" msgstr "Proprietà di \"%s\"" #: ../pan/gui/group-prefs-dialog.cc:257 #, fuzzy msgid "Character _encoding:" msgstr "Set di caratteri:" #: ../pan/gui/group-prefs-dialog.cc:259 #, fuzzy msgid "Directory for Saving Attachments" msgstr "Directory dove sal_vare gli allegati:" #: ../pan/gui/group-prefs-dialog.cc:269 #, fuzzy msgid "Directory for _saving attachments:" msgstr "Directory dove sal_vare gli allegati:" #: ../pan/gui/group-prefs-dialog.cc:271 #, fuzzy msgid "Posting _profile:" msgstr "Pan: Profilo" #: ../pan/gui/group-prefs-dialog.cc:277 msgid "Spellchecker _language:" msgstr "" #: ../pan/gui/gui.cc:273 msgid "Open the Task Manager" msgstr "Apri il Gestore dei Processi" #: ../pan/gui/gui.cc:301 #, fuzzy msgid "Open the Event Log" msgstr "Apri il Log di Stato" #: ../pan/gui/gui.cc:561 msgid "Save NZB's Files" msgstr "" #: ../pan/gui/gui.cc:588 msgid "Untitled.nzb" msgstr "" #: ../pan/gui/gui.cc:590 #, fuzzy msgid "Save NZB File as..." msgstr "/_Salva Allegati Come..." #: ../pan/gui/gui.cc:757 msgid "Import NZB Files" msgstr "" #: ../pan/gui/gui.cc:765 ../pan/gui/post-ui.cc:3197 #, fuzzy msgid "NZB Files" msgstr "File" #: ../pan/gui/gui.cc:770 #, fuzzy msgid "All Files" msgstr "File" #: ../pan/gui/gui.cc:1258 #, fuzzy msgid "Unable to supersede article." msgstr "/_File/Stam_pa Articolo..." #: ../pan/gui/gui.cc:1259 ../pan/gui/gui.cc:1333 msgid "The article doesn't match any of your posting profiles." msgstr "" #: ../pan/gui/gui.cc:1306 msgid "Revise and send this article to replace the old one." msgstr "" #: ../pan/gui/gui.cc:1307 ../pan/gui/gui.cc:1370 msgid "Be patient! It will take time for your changes to take effect." msgstr "" #: ../pan/gui/gui.cc:1332 #, fuzzy msgid "Unable to cancel article." msgstr "Impossibile creare il thread: %s" #: ../pan/gui/gui.cc:1369 msgid "Send this article to ask your server to cancel your other one." msgstr "" #: ../pan/gui/gui.cc:1387 msgid "You marked some articles for deletion" msgstr "" #: ../pan/gui/gui.cc:1388 #, fuzzy msgid "Are you sure you want to delete them?" msgstr "" "Sicuro di volere cancellare questi %d gruppi/cartelle e i loro articoli?" #: ../pan/gui/gui.cc:1413 #, fuzzy msgid "Always trust" msgstr "Editor" #: ../pan/gui/gui.cc:1416 msgid "Do you want to accept it permanently (deletable afterwards) ?" msgstr "" #: ../pan/gui/gui.cc:1595 #, fuzzy msgid "Copyright \\u00A9 2002-2012 Charles Kerr and others" msgstr "Copyright (C) 2002 Charles Kerr" #: ../pan/gui/gui.cc:1600 msgid "translator-credits" msgstr "" #: ../pan/gui/gui.cc:1709 #, fuzzy msgid "_1. Group Pane" msgstr "/_Visualizza/Mostra _Pannello Gruppi" #: ../pan/gui/gui.cc:1710 #, fuzzy msgid "_2. Header Pane" msgstr "Pannello Intestazioni" #: ../pan/gui/gui.cc:1711 #, fuzzy msgid "_3. Body Pane" msgstr "Pannello Testo" #: ../pan/gui/gui.cc:1800 ../pan/gui/gui.cc:1815 msgid " Bytes" msgstr "" #: ../pan/gui/gui.cc:1803 msgid " KB" msgstr "" #: ../pan/gui/gui.cc:1806 msgid " MB" msgstr "" #: ../pan/gui/gui.cc:1809 msgid " GB" msgstr "" #: ../pan/gui/gui.cc:1812 msgid " TB" msgstr "" #: ../pan/gui/gui.cc:1844 #, fuzzy, c-format msgid "This article is complete with %d part." msgid_plural "This article has all %d parts." msgstr[0] "l'articolo non ha allegati" msgstr[1] "l'articolo non ha allegati" #: ../pan/gui/gui.cc:1846 #, fuzzy, c-format msgid "This article is missing %d part." msgid_plural "This article is missing %d of its %d parts:" msgstr[0] "l'articolo non ha allegati" msgstr[1] "l'articolo non ha allegati" #: ../pan/gui/gui.cc:1865 ../pan/gui/header-pane.cc:1190 #, fuzzy msgid "Message-ID" msgstr "_Message-ID:" #: ../pan/gui/gui.cc:1866 ../pan/gui/header-pane.cc:1665 #: ../pan/gui/prefs-ui.cc:830 msgid "Lines" msgstr "Righe" #: ../pan/gui/gui.cc:1866 msgid "Size" msgstr "" #: ../pan/gui/gui.cc:1867 ../pan/gui/header-pane.cc:1680 #: ../pan/gui/prefs-ui.cc:828 msgid "Bytes" msgstr "" #: ../pan/gui/gui.cc:1917 msgid "" "Error loading iconv library. Some Charsets in the GUI will not be able to be " "encoded." msgstr "" #: ../pan/gui/gui.cc:2059 #, fuzzy msgid "Body Pane Encoding" msgstr "Pannello Testo" #: ../pan/gui/gui.cc:2090 ../pan/gui/task-pane.cc:569 #, c-format msgid "Offline" msgstr "Offline" #: ../pan/gui/gui.cc:2094 #, fuzzy, c-format msgid "Closing %d connection" msgid_plural "Closing %d connections" msgstr[0] "Chiusura %d connessioni in corso" msgstr[1] "Chiusura %d connessioni in corso" #: ../pan/gui/gui.cc:2096 ../pan/gui/gui.cc:2126 #, c-format msgid "No Connections" msgstr "Nessuna Connessione" #: ../pan/gui/gui.cc:2100 #, c-format msgid "Connecting" msgstr "Connessione in corso" #: ../pan/gui/gui.cc:2113 #, c-format msgid "%s: %d idle, %d active @ %.1f KiBps" msgstr "" #: ../pan/gui/gui.cc:2169 #, c-format msgid "No Tasks" msgstr "Nessun Processo" #: ../pan/gui/gui.cc:2171 ../pan/gui/prefs-ui.cc:1047 msgid "Tasks" msgstr "Processi" #: ../pan/gui/gui.cc:2182 ../pan/gui/task-pane.cc:435 #, c-format msgid "%lu tasks, %s, %.1f KiBps, ETA %d:%02d:%02d" msgstr "" #: ../pan/gui/gui.cc:2234 msgid "" "Pan is now offline. Please see \"File|Event Log\" and correct the problem, " "then use \"File|Work Online\" to continue." msgstr "" #: ../pan/gui/header-pane.cc:1186 msgid "Subject or Author" msgstr "" #: ../pan/gui/header-pane.cc:1187 msgid "Sub or Auth (regex)" msgstr "" #: ../pan/gui/header-pane.cc:1189 ../pan/gui/header-pane.cc:1649 #: ../pan/gui/prefs-ui.cc:827 ../pan/gui/score-add-ui.cc:140 msgid "Author" msgstr "Autore" #: ../pan/gui/header-pane.cc:1634 ../pan/gui/prefs-ui.cc:831 msgid "Score" msgstr "Punteggio" #: ../pan/gui/log-ui.cc:103 msgid "Save Event List" msgstr "" #: ../pan/gui/log-ui.cc:256 #, fuzzy msgid "Pan: Events" msgstr "Pan: Server" #: ../pan/gui/log-ui.cc:315 msgid "Message" msgstr "Messaggio" #: ../pan/gui/pan.cc:330 msgid "Maximize" msgstr "" #: ../pan/gui/pan.cc:383 msgid "An Error has occurred!" msgstr "" #: ../pan/gui/pan.cc:397 #, fuzzy msgid "New Articles!" msgstr "/Vai a/Prossimo Articolo" #: ../pan/gui/pan.cc:398 msgid "" "There are new\n" "articles available." msgstr "" #: ../pan/gui/pan.cc:465 msgid "Toggle on/offline" msgstr "" #: ../pan/gui/pan.cc:513 msgid "" "Thank you for trying Pan!\n" " \n" "To start newsreading, first Add a Server." msgstr "" #: ../pan/gui/pan.cc:595 msgid "" "General Options\n" " -h, --help Show this usage page.\n" " --verbose Be verbose (in non-GUI mode).\n" "\n" "URL Options\n" " --no-gui On news:message-id, dump the article to stdout.\n" "\n" "NZB Batch Options\n" " --nzb file1 file2 ... Process nzb files without launching all of Pan.\n" " -o path, --output=path Path to save attachments listed in the nzb " "files.\n" " --no-gui Only show console output, not the download " "queue.\n" msgstr "" #: ../pan/gui/pan.cc:867 msgid "Error: --no-gui used without nzb files or news:message-id." msgstr "" #: ../pan/gui/pan.cc:871 #, fuzzy, c-format msgid "Pan %s started" msgstr "Pan %s in esecuzione" #: ../pan/gui/pan.cc:890 msgid "Please configure Pan's news servers before using it as an nzb client." msgstr "" #: ../pan/gui/pan.cc:1009 msgid "Pan notification" msgstr "" #: ../pan/gui/post-ui.cc:186 #, c-format msgid "Upload Queue : %ld Tasks, %ld KB (~ %.2f MB) total ." msgstr "" #: ../pan/gui/post-ui.cc:286 #, fuzzy, c-format msgid "Error setting custom spellchecker: %s" msgstr "Errore in scrittura sul socket: %s" #: ../pan/gui/post-ui.cc:291 ../pan/gui/post-ui.cc:300 #, fuzzy, c-format msgid "Error setting spellchecker: %s" msgstr "Errore in scrittura sul socket: %s" #: ../pan/gui/post-ui.cc:419 #, fuzzy msgid "_Profile" msgstr "Profilo" #: ../pan/gui/post-ui.cc:420 #, fuzzy msgid "Set Editor" msgstr "Editor" #: ../pan/gui/post-ui.cc:422 #, fuzzy msgid "_Send Article" msgstr "/Vai a/Articolo _Padre" #: ../pan/gui/post-ui.cc:422 #, fuzzy msgid "Send Article Now" msgstr "Invia Adesso" #: ../pan/gui/post-ui.cc:423 #, fuzzy msgid "_Send and Save Articles to NZB" msgstr "Pan: Salva Articoli come" #: ../pan/gui/post-ui.cc:423 #, fuzzy msgid "Send and Save Articles to NZB" msgstr "Pan: Salva Articoli come" #: ../pan/gui/post-ui.cc:424 #, fuzzy msgid "Set Character _Encoding..." msgstr "Set di caratteri:" #: ../pan/gui/post-ui.cc:425 #, fuzzy msgid "Set Content _Transfer Encoding..." msgstr "Set di caratteri:" #: ../pan/gui/post-ui.cc:426 #, fuzzy msgid "Sa_ve Draft" msgstr "Salvataggio articoli in corso" #: ../pan/gui/post-ui.cc:426 msgid "Save as a Draft for Future Posting" msgstr "" #: ../pan/gui/post-ui.cc:427 #, fuzzy msgid "_Open Draft..." msgstr "/Leggi a_rticolo" #: ../pan/gui/post-ui.cc:427 #, fuzzy msgid "Open an Article Draft" msgstr "/Leggi a_rticolo" #: ../pan/gui/post-ui.cc:432 #, fuzzy msgid "_Rot13" msgstr "Rot13" #: ../pan/gui/post-ui.cc:432 msgid "Rot13 Selected Text" msgstr "Applica Rot13 al Testo Selezionato" #: ../pan/gui/post-ui.cc:433 #, fuzzy msgid "Run _Editor" msgstr "Editor" #: ../pan/gui/post-ui.cc:433 #, fuzzy msgid "Run Editor" msgstr "Editor" #: ../pan/gui/post-ui.cc:435 msgid "Add _Files to Queue" msgstr "" #: ../pan/gui/post-ui.cc:435 msgid "Add Files to Queue" msgstr "" #: ../pan/gui/post-ui.cc:450 ../pan/gui/post-ui.cc:451 #, fuzzy msgid "Remove from Queue" msgstr "Nuovo Server" #: ../pan/gui/post-ui.cc:455 ../pan/gui/post-ui.cc:456 #, fuzzy msgid "Clear List" msgstr "Seleziona Filtro:" #: ../pan/gui/post-ui.cc:460 ../pan/gui/post-ui.cc:461 #, fuzzy msgid "Select Needed Parts" msgstr "Seleziona Font" #: ../pan/gui/post-ui.cc:465 ../pan/gui/post-ui.cc:466 #: ../pan/gui/task-pane.cc:636 ../pan/gui/task-pane.cc:637 msgid "Move Up" msgstr "" #: ../pan/gui/post-ui.cc:470 ../pan/gui/post-ui.cc:471 #: ../pan/gui/task-pane.cc:641 ../pan/gui/task-pane.cc:642 msgid "Move Down" msgstr "" #: ../pan/gui/post-ui.cc:475 ../pan/gui/post-ui.cc:476 msgid "Move to Top" msgstr "" #: ../pan/gui/post-ui.cc:480 ../pan/gui/post-ui.cc:481 #, fuzzy msgid "Move to Bottom" msgstr "Sposta i Processi Selezionati in Fondo" #: ../pan/gui/post-ui.cc:488 #, fuzzy msgid "_Wrap Text" msgstr "A Capo Automatico" #: ../pan/gui/post-ui.cc:488 #, fuzzy msgid "Wrap Text" msgstr "A Capo Automatico" #: ../pan/gui/post-ui.cc:489 #, fuzzy msgid "Always Run Editor" msgstr "Editor" #: ../pan/gui/post-ui.cc:490 #, fuzzy msgid "Remember Character Encoding for this Group" msgstr "Set di caratteri:" #: ../pan/gui/post-ui.cc:491 msgid "Thread Attached Replies" msgstr "" #: ../pan/gui/post-ui.cc:492 msgid "PGP-Encrypt the Message" msgstr "" #: ../pan/gui/post-ui.cc:493 msgid "PGP-Sign the Message" msgstr "" #: ../pan/gui/post-ui.cc:494 msgid "Check _Spelling" msgstr "" #: ../pan/gui/post-ui.cc:520 #, fuzzy msgid "New Article's Encoding:" msgstr "/_Visualizza Punteggio Articolo" #: ../pan/gui/post-ui.cc:530 #, fuzzy msgid "Content Transfer Encoding" msgstr "Set di caratteri:" #: ../pan/gui/post-ui.cc:531 #, fuzzy msgid "New Article's Content Transfer Encoding:" msgstr "/_Visualizza Punteggio Articolo" #: ../pan/gui/post-ui.cc:711 msgid "Your changes will be lost!" msgstr "" #: ../pan/gui/post-ui.cc:712 msgid "Close this window and lose your changes?" msgstr "" #: ../pan/gui/post-ui.cc:757 ../pan/gui/post-ui.cc:796 msgid "There were problems with this post." msgstr "" #: ../pan/gui/post-ui.cc:759 ../pan/gui/post-ui.cc:798 #: ../pan/gui/post-ui.cc:861 #, fuzzy msgid "Go Back" msgstr "/Vai/Leggi indietro" #: ../pan/gui/post-ui.cc:761 msgid "Post Anyway" msgstr "" #. Prompt the user #: ../pan/gui/post-ui.cc:790 #, fuzzy, c-format msgid "" "Message uses characters not specified in charset '%s' - possibly use '%s' " msgstr "" "Il messaggio usa caratteri non specificati nel set di caratteri '%s' - usare " "'%s' invece?" #: ../pan/gui/post-ui.cc:813 #, fuzzy msgid "Go _Online" msgstr "Online" #: ../pan/gui/post-ui.cc:860 msgid "The file queue is empty, so no files can be saved." msgstr "" #: ../pan/gui/post-ui.cc:1019 msgid "" "No posting server is set for this posting profile.\n" "Please edit the profile via Edit|Manage Posting Profiles." msgstr "" #: ../pan/gui/post-ui.cc:1054 #, fuzzy msgid "Pan is Offline." msgstr "Pan è Offline" #: ../pan/gui/post-ui.cc:1055 msgid "Go online to post the article?" msgstr "" #: ../pan/gui/post-ui.cc:1102 #, c-format msgid "" "Error signing/encrypting your message. Perhaps you misspelled your email-" "address (%s) ?" msgstr "" #: ../pan/gui/post-ui.cc:1267 #, fuzzy msgid "Error opening temporary file" msgstr "Errore aprendo il file temporaneo \"%s\"" #: ../pan/gui/post-ui.cc:1279 #, c-format msgid "Error writing article to temporary file: %s" msgstr "Errore scrivendo l'articolo sul file temporaneo: %s" #: ../pan/gui/post-ui.cc:1298 #, fuzzy, c-format msgid "Error parsing \"external editor\" command line: %s (Command was: %s)" msgstr "Errore nell'intepretare la riga di comando \"editor esterno\": %s" #: ../pan/gui/post-ui.cc:1339 #, c-format msgid "Error starting external editor: %s" msgstr "Errore nell'esecuzione dell editor esterno: %s" #: ../pan/gui/post-ui.cc:1395 #, fuzzy msgid "Open Draft Article" msgstr "/Leggi a_rticolo" #: ../pan/gui/post-ui.cc:1606 #, fuzzy msgid "Save Draft Article" msgstr "Salvataggio articoli in corso" #: ../pan/gui/post-ui.cc:1803 #, fuzzy, c-format msgid "Couldn't parse signature command \"%s\": %s" msgstr "Non è possibile leggere il file della firma \"%s\": %s" #: ../pan/gui/post-ui.cc:1839 #, fuzzy msgid "Couldn't convert signature to UTF-8." msgstr "" "Impossibile convertite il file della firma '%s' in UTF-8. La firma deve " "essere in '%s'" #: ../pan/gui/post-ui.cc:2334 #, fuzzy msgid "F_rom" msgstr "Da" #: ../pan/gui/post-ui.cc:2352 #, fuzzy msgid "_Subject" msgstr "Oggetto:" #: ../pan/gui/post-ui.cc:2365 #, fuzzy msgid "_Newsgroups" msgstr "/_Server/Gruppi di discussio_ne" #: ../pan/gui/post-ui.cc:2379 #, fuzzy msgid "Mail _To" msgstr "Mail To" #: ../pan/gui/post-ui.cc:2481 msgid "Delete from Queue" msgstr "" #: ../pan/gui/post-ui.cc:2494 msgid "No." msgstr "" #: ../pan/gui/post-ui.cc:2498 ../pan/gui/post-ui.cc:2592 #: ../pan/gui/post-ui.cc:2633 msgid "Filename" msgstr "Nome del file" #: ../pan/gui/post-ui.cc:2500 msgid "Size (kB)" msgstr "" #: ../pan/gui/post-ui.cc:2600 msgid "The current filename" msgstr "" #: ../pan/gui/post-ui.cc:2604 #, fuzzy msgid "Subject Line" msgstr "Oggetto" #: ../pan/gui/post-ui.cc:2612 msgid "The current Subject Line" msgstr "" #: ../pan/gui/post-ui.cc:2626 msgid "No. " msgstr "" #: ../pan/gui/post-ui.cc:2630 msgid "Enable/Disable" msgstr "" #: ../pan/gui/post-ui.cc:2664 #, fuzzy msgid "Follo_wup-To" msgstr "Followup-To:" #. i18n: "poster" is a key used by many newsreaders. probably safest to keep this key in english. #: ../pan/gui/post-ui.cc:2673 #, fuzzy msgid "" "The newsgroups where replies to your message should go. This is only needed " "if it differs from the \"Newsgroups\" header.\n" "\n" "To direct all replies to your email address, use \"Followup-To: poster\"" msgstr "" "I gruppi di discussione cui le risposte ai tuoi messaggi devono essere " "dirette. Questo è necessario solo se differisce dall'intestazione \"Invia ai " "Gruppi\". \n" "Per dirigere tutte le risposte al tuo indirizzo di email, usa \"Followup-To: " "poster\"" #: ../pan/gui/post-ui.cc:2679 #, fuzzy msgid "_Reply-To" msgstr "Reply-To" #: ../pan/gui/post-ui.cc:2687 msgid "" "The email account where mail replies to your posted message should go. This " "is only needed if it differs from the \"From\" header." msgstr "" "L'indirizzo Email dove le risposte (via Email) ai tuoi messaggi devono " "arrivare. E` necessario solo se differisce dall'intestazione \"Da\"." #: ../pan/gui/post-ui.cc:2693 #, fuzzy msgid "_Custom Headers" msgstr "Intestazioni Personalizzate" #: ../pan/gui/post-ui.cc:2717 #, fuzzy msgid "Add \"_User-Agent\" header" msgstr "Non aggiungere l'intestazione \"User-Agent\"" #: ../pan/gui/post-ui.cc:2724 #, fuzzy msgid "Add \"Message-_Id\" header" msgstr "Message-ID" #: ../pan/gui/post-ui.cc:2855 #, fuzzy msgid "Select Parts" msgstr "Seleziona Font" #: ../pan/gui/post-ui.cc:2866 msgid "_Parts" msgstr "" #: ../pan/gui/post-ui.cc:3022 #, fuzzy msgid "Post Article" msgstr "Ordinamento articoli in corso" #: ../pan/gui/post-ui.cc:3043 #, fuzzy msgid "_Message" msgstr "Messaggio" #: ../pan/gui/post-ui.cc:3044 #, fuzzy msgid "More _Headers" msgstr "Ulteriori intestazioni" #: ../pan/gui/post-ui.cc:3045 #, fuzzy msgid "File _Queue" msgstr "/_File/Esci" #: ../pan/gui/post-ui.cc:3077 ../pan/gui/profiles-dialog.cc:478 #, no-c-format msgid "On %d, %n wrote:" msgstr "Il %d, %n ha scritto:" #: ../pan/gui/post-ui.cc:3106 msgid "Add files to queue" msgstr "" #: ../pan/gui/post-ui.cc:3184 msgid "Save Upload Queue as NZB File" msgstr "" #: ../pan/gui/prefs.cc:343 #, fuzzy, c-format msgid "Couldn't parse %s color \"%s\"" msgstr "Non è possibile interpretare il comando per la firma \"%s\"" #: ../pan/gui/prefs-ui.cc:120 msgid "Grab Key" msgstr "" #: ../pan/gui/prefs-ui.cc:126 #, c-format msgid "" "Press the combination of the keys\n" "you want to use for \"%s\"." msgstr "" #: ../pan/gui/prefs-ui.cc:166 #, fuzzy msgid "Edit Hotkey" msgstr "Modifica Filtri" #: ../pan/gui/prefs-ui.cc:228 msgid "Error: Shortkey is invalid!" msgstr "" #: ../pan/gui/prefs-ui.cc:244 #, fuzzy msgid "Error: Shortkey already exists!" msgstr "La cartella \"%s\" esiste già." #: ../pan/gui/prefs-ui.cc:535 #, fuzzy msgid "Show only icons" msgstr "Informazioni profilo" #: ../pan/gui/prefs-ui.cc:536 #, fuzzy msgid "Show only text" msgstr "/_Visualizza/Mostra il panello del testo" #: ../pan/gui/prefs-ui.cc:537 #, fuzzy msgid "Show icons and text" msgstr "Salva allega_ti nella directory:" #: ../pan/gui/prefs-ui.cc:576 #, fuzzy msgid "Use GNOME Preferences" msgstr "Impostazioni di Pan" #: ../pan/gui/prefs-ui.cc:577 #, fuzzy msgid "Use KDE Preferences" msgstr "References" #: ../pan/gui/prefs-ui.cc:578 #, fuzzy msgid "Use OS X Preferences" msgstr "References" #: ../pan/gui/prefs-ui.cc:579 #, fuzzy msgid "Use Windows Preferences" msgstr "Impostazioni di Pan" #: ../pan/gui/prefs-ui.cc:580 #, fuzzy msgid "Custom Command:" msgstr "Comando di stampa:" #: ../pan/gui/prefs-ui.cc:632 msgid "Disabled" msgstr "" #: ../pan/gui/prefs-ui.cc:633 msgid "Only new (Score == 0)" msgstr "" #: ../pan/gui/prefs-ui.cc:634 #, fuzzy msgid "9999 or more" msgstr "Articoli con un punteggio di -9999 o inferiore" #: ../pan/gui/prefs-ui.cc:635 msgid "5000 to 9998" msgstr "" #: ../pan/gui/prefs-ui.cc:636 msgid "1 to 4999" msgstr "" #: ../pan/gui/prefs-ui.cc:637 msgid "-9998 to -1" msgstr "" #: ../pan/gui/prefs-ui.cc:638 #, fuzzy msgid "-9999 or less" msgstr "Articoli con un punteggio di -9999 o inferiore" #: ../pan/gui/prefs-ui.cc:702 #, c-format msgid "Select default global charset. Current setting : %s ." msgstr "" #: ../pan/gui/prefs-ui.cc:738 msgid "Global Charset Settings" msgstr "" #: ../pan/gui/prefs-ui.cc:832 ../pan/gui/task-pane.cc:770 #, fuzzy msgid "State" msgstr "Stato" #: ../pan/gui/prefs-ui.cc:866 msgid "Enabled" msgstr "" #: ../pan/gui/prefs-ui.cc:870 #, fuzzy msgid "Column Name" msgstr "Colonna" #: ../pan/gui/prefs-ui.cc:908 #, fuzzy msgid "Pan: Preferences" msgstr "Impostazioni di Pan" #: ../pan/gui/prefs-ui.cc:923 msgid "Mouse" msgstr "Mouse" #: ../pan/gui/prefs-ui.cc:925 #, fuzzy msgid "Single-click activates, rather than selects, _groups" msgstr "Un clic_k singolo seleziona, anziché caricare, i gruppi" #: ../pan/gui/prefs-ui.cc:927 #, fuzzy msgid "Single-click activates, rather than selects, _articles" msgstr "Un clic_k singolo seleziona, anziché caricare, le intestazioni" #: ../pan/gui/prefs-ui.cc:930 #, fuzzy msgid "Groups" msgstr "Gruppi" #: ../pan/gui/prefs-ui.cc:932 #, fuzzy msgid "Get new headers in subscribed groups on _startup" msgstr "Scarica Nuove intestazioni per i Gruppi Sottoscritti" #: ../pan/gui/prefs-ui.cc:934 #, fuzzy msgid "Get new headers when _entering group" msgstr "Scarica le nuove Intestazioni durante il caricamento di un _gruppo" #: ../pan/gui/prefs-ui.cc:936 #, fuzzy msgid "Mark entire group _read when leaving group" msgstr "Scarica le nuove Intestazioni durante il caricamento di un _gruppo" #: ../pan/gui/prefs-ui.cc:938 #, fuzzy msgid "Mark entire group read before getting _new headers" msgstr "Scarica le nuove Intestazioni durante il caricamento di un _gruppo" #: ../pan/gui/prefs-ui.cc:940 #, fuzzy msgid "E_xpand all threads when entering group" msgstr "Scarica le nuove Intestazioni durante il caricamento di un _gruppo" #: ../pan/gui/prefs-ui.cc:945 #, fuzzy msgid "Articles" msgstr "/_Articoli" #: ../pan/gui/prefs-ui.cc:947 msgid "Space selects next article rather than next unread" msgstr "" #: ../pan/gui/prefs-ui.cc:949 #, fuzzy msgid "Expand threads upon selection" msgstr "/Modifica/Aggiungi Discussione alla Selezione" #: ../pan/gui/prefs-ui.cc:951 msgid "Always show article deletion confirmation dialog" msgstr "" #: ../pan/gui/prefs-ui.cc:953 #, fuzzy msgid "Smooth scrolling" msgstr "Scrolling fluido alla velocità:" #: ../pan/gui/prefs-ui.cc:958 #, fuzzy msgid "Article Cache" msgstr "Cache articoli" #: ../pan/gui/prefs-ui.cc:959 msgid "Clear article cache on shutdown" msgstr "" #: ../pan/gui/prefs-ui.cc:962 msgid "Size of article cache (in MiB) :" msgstr "" #: ../pan/gui/prefs-ui.cc:967 #, fuzzy msgid "File extension for Cached Articles: " msgstr "/Filt_ri/Controlla gli a_rticoli già letti" #: ../pan/gui/prefs-ui.cc:972 msgid "Tabs" msgstr "" #: ../pan/gui/prefs-ui.cc:977 #, fuzzy msgid "_Behavior" msgstr "Comportamento" #: ../pan/gui/prefs-ui.cc:977 #, fuzzy msgid "Behavior" msgstr "Comportamento" #: ../pan/gui/prefs-ui.cc:983 #, fuzzy msgid "Language Settings" msgstr "Recupero \"%s\" in corso" #. systray and notify popup #: ../pan/gui/prefs-ui.cc:992 #, fuzzy msgid "System Tray Behavior" msgstr "Comportamento" #: ../pan/gui/prefs-ui.cc:994 msgid "Hide to system tray" msgstr "" #: ../pan/gui/prefs-ui.cc:996 #, fuzzy msgid "Start Pan minimized" msgstr "Avvia Pan in modalità o_nline" #: ../pan/gui/prefs-ui.cc:999 #, fuzzy msgid "Show notifications" msgstr "Informazioni profilo" #. allow multiple instances (seperate, not communicating with dbus) #: ../pan/gui/prefs-ui.cc:1004 #, fuzzy msgid "Startup Behavior" msgstr "Comportamento" #: ../pan/gui/prefs-ui.cc:1006 msgid "Allow multiple instances of Pan" msgstr "" #: ../pan/gui/prefs-ui.cc:1011 #, fuzzy msgid "Autosave Article Draft" msgstr "/Leggi a_rticolo" #: ../pan/gui/prefs-ui.cc:1013 #, fuzzy msgid "Minutes to autosave the current Article Draft: " msgstr "/Leggi a_rticolo" #: ../pan/gui/prefs-ui.cc:1018 #, fuzzy msgid "Autosave Articles" msgstr "/_Salva Allegati Come..." #: ../pan/gui/prefs-ui.cc:1020 msgid "Minutes to autosave newsrc files: " msgstr "" #: ../pan/gui/prefs-ui.cc:1026 msgid "_Miscellaneous" msgstr "" #: ../pan/gui/prefs-ui.cc:1026 msgid "Miscellaneous" msgstr "" #: ../pan/gui/prefs-ui.cc:1031 msgid "Pane Layout" msgstr "Layout Pannelli" #: ../pan/gui/prefs-ui.cc:1050 msgid "1=Groups, 2=Headers, 3=Body" msgstr "" #: ../pan/gui/prefs-ui.cc:1052 msgid "1=Groups, 2=Body, 3=Headers" msgstr "" #: ../pan/gui/prefs-ui.cc:1054 msgid "1=Headers, 2=Groups, 3=Body" msgstr "" #: ../pan/gui/prefs-ui.cc:1056 msgid "1=Headers, 2=Body, 3=Groups" msgstr "" #: ../pan/gui/prefs-ui.cc:1058 msgid "1=Body, 2=Groups, 3=Headers" msgstr "" #: ../pan/gui/prefs-ui.cc:1060 msgid "1=Body, 2=Headers, 3=Groups" msgstr "" #: ../pan/gui/prefs-ui.cc:1064 #, fuzzy msgid "Layout" msgstr "_Layout Pannelli" #: ../pan/gui/prefs-ui.cc:1069 #, fuzzy msgid "Header Pane Columns" msgstr "Pannello Intestazioni" #: ../pan/gui/prefs-ui.cc:1073 #, fuzzy msgid "_Headers" msgstr "Intestazioni" #: ../pan/gui/prefs-ui.cc:1073 #, fuzzy msgid "Headers" msgstr "Intestazioni" #: ../pan/gui/prefs-ui.cc:1079 msgid "" "This menu lets you configure Pan to take certain actions on your behalf " "automatically, based on a post's score." msgstr "" #: ../pan/gui/prefs-ui.cc:1082 msgid "_Delete posts scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1084 msgid "Mark posts _read scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1086 msgid "_Cache posts scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1088 msgid "Download _attachments of posts scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1091 #, fuzzy msgid "Actions" msgstr "Azioni" #: ../pan/gui/prefs-ui.cc:1096 ../pan/gui/prefs-ui.cc:1117 msgid "Fonts" msgstr "Font" #: ../pan/gui/prefs-ui.cc:1098 msgid "Use custom font in Group Pane:" msgstr "Usa font personalizzati nel pannello dei gruppi" #: ../pan/gui/prefs-ui.cc:1103 msgid "Use custom font in Header Pane:" msgstr "Usa font personalizzati nel pannello delle intestazioni" #: ../pan/gui/prefs-ui.cc:1108 msgid "Use custom font in Body Pane:" msgstr "Usa font personalizzati nel pannello dei messaggi" #: ../pan/gui/prefs-ui.cc:1113 #, fuzzy msgid "Monospace font:" msgstr "Font monospazio:" #: ../pan/gui/prefs-ui.cc:1117 #, fuzzy msgid "_Fonts" msgstr "Font" #: ../pan/gui/prefs-ui.cc:1122 #, fuzzy msgid "Header Pane" msgstr "Pannello Intestazioni" #: ../pan/gui/prefs-ui.cc:1125 ../pan/gui/prefs-ui.cc:1131 #: ../pan/gui/prefs-ui.cc:1137 ../pan/gui/prefs-ui.cc:1143 #: ../pan/gui/prefs-ui.cc:1149 ../pan/gui/prefs-ui.cc:1155 #, fuzzy msgid "Text:" msgstr "Testo:" #: ../pan/gui/prefs-ui.cc:1127 ../pan/gui/prefs-ui.cc:1133 #: ../pan/gui/prefs-ui.cc:1139 ../pan/gui/prefs-ui.cc:1145 #: ../pan/gui/prefs-ui.cc:1151 ../pan/gui/prefs-ui.cc:1157 msgid "Background:" msgstr "Sfondo:" #: ../pan/gui/prefs-ui.cc:1129 #, fuzzy msgid "Scores of 9999 or more:" msgstr "Articoli con un punteggio di -9999 o inferiore" #: ../pan/gui/prefs-ui.cc:1135 msgid "Scores from 5000 to 9998:" msgstr "" #: ../pan/gui/prefs-ui.cc:1141 msgid "Scores from 1 to 4999:" msgstr "" #: ../pan/gui/prefs-ui.cc:1147 msgid "Scores from -9998 to -1:" msgstr "" #: ../pan/gui/prefs-ui.cc:1153 #, fuzzy msgid "Scores of -9999 or less:" msgstr "Articoli con un punteggio di -9999 o inferiore" #: ../pan/gui/prefs-ui.cc:1159 msgid "Read collapsed thread:" msgstr "" #: ../pan/gui/prefs-ui.cc:1161 #, fuzzy msgid "Body Pane" msgstr "Pannello Testo" #: ../pan/gui/prefs-ui.cc:1167 #, fuzzy msgid "Quoted text:" msgstr "Testo Citato _3:" #: ../pan/gui/prefs-ui.cc:1168 #, fuzzy msgid "URL:" msgstr "_URL:" #: ../pan/gui/prefs-ui.cc:1169 #, fuzzy msgid "Signature:" msgstr "Firma" #: ../pan/gui/prefs-ui.cc:1171 #, fuzzy msgid "_Colors" msgstr "Colori" #: ../pan/gui/prefs-ui.cc:1171 #, fuzzy msgid "Colors" msgstr "Colori" #: ../pan/gui/prefs-ui.cc:1176 #, fuzzy msgid "Preferred Applications" msgstr "Applicazioni" #: ../pan/gui/prefs-ui.cc:1180 #, fuzzy msgid "_Web browser:" msgstr "Nuovi gruppi" #: ../pan/gui/prefs-ui.cc:1183 #, fuzzy msgid "_Mail reader:" msgstr "Server di posta:" #: ../pan/gui/prefs-ui.cc:1185 #, fuzzy msgid "_Text editor:" msgstr "Editor" #: ../pan/gui/prefs-ui.cc:1187 #, fuzzy msgid "_Applications" msgstr "Applicazioni" #: ../pan/gui/prefs-ui.cc:1187 #, fuzzy msgid "Applications" msgstr "Applicazioni" #: ../pan/gui/prefs-ui.cc:1192 ../pan/gui/task-pane.cc:512 #, fuzzy msgid "Encoding" msgstr "Set di caratteri:" #: ../pan/gui/prefs-ui.cc:1196 msgid "Default bytes per file (for encoder): " msgstr "" #: ../pan/gui/prefs-ui.cc:1201 #, fuzzy msgid "_Upload" msgstr "Applicazioni" #: ../pan/gui/prefs-ui.cc:1201 msgid "Upload" msgstr "" #: ../pan/gui/prefs-ui.cc:1219 msgid "_Hotkeys" msgstr "" #: ../pan/gui/prefs-ui.cc:1219 msgid "Hotkeys" msgstr "" #: ../pan/gui/profiles-dialog.cc:83 msgid "Please choose your Email Address according to your PGP key's user id." msgstr "" #: ../pan/gui/profiles-dialog.cc:131 #, fuzzy msgid "Posting Profile" msgstr "Pan: Profilo" #: ../pan/gui/profiles-dialog.cc:143 msgid "Profile Information" msgstr "Informazioni profilo" #: ../pan/gui/profiles-dialog.cc:147 #, fuzzy msgid "_Profile Name:" msgstr "Nome _Profilo:" #: ../pan/gui/profiles-dialog.cc:150 msgid "Required Information" msgstr "Informazioni richieste" #: ../pan/gui/profiles-dialog.cc:154 msgid "_Full Name:" msgstr "Nome per esteso:" #: ../pan/gui/profiles-dialog.cc:158 msgid "" "Your Email Address.\n" "Note that this has to match your PGP Signature's Address\n" "if you want to PGP-Sign or Encrypt your messages correctly." msgstr "" #: ../pan/gui/profiles-dialog.cc:162 msgid "_Email Address:" msgstr "Indirizzo _email:" #: ../pan/gui/profiles-dialog.cc:164 #, fuzzy msgid "_Post Articles via:" msgstr "_Articolo" #: ../pan/gui/profiles-dialog.cc:167 #, fuzzy msgid "Signature" msgstr "Firma" #: ../pan/gui/profiles-dialog.cc:170 #, fuzzy msgid "_Use a Signature" msgstr "Firma" #: ../pan/gui/profiles-dialog.cc:174 #, fuzzy msgid "Signature File" msgstr "File della firma:" #: ../pan/gui/profiles-dialog.cc:184 #, fuzzy msgid "Text File" msgstr "/Vai a/Prossimo Articolo" #: ../pan/gui/profiles-dialog.cc:186 #, fuzzy msgid "Text" msgstr "Testo:" #: ../pan/gui/profiles-dialog.cc:188 #, fuzzy msgid "Command" msgstr "Comando di stampa:" #: ../pan/gui/profiles-dialog.cc:191 #, fuzzy msgid "PGP Signature" msgstr "Firma" #: ../pan/gui/profiles-dialog.cc:196 #, fuzzy msgid "Signature Type : " msgstr "Firma" #: ../pan/gui/profiles-dialog.cc:223 msgid "X-Face (Avatar)" msgstr "" #: ../pan/gui/profiles-dialog.cc:226 msgid "" "You can add an avatar icon to your articles with a unique X-Face code. \n" "Add the code without the trailing \"X-Face:\" \n" " if it was generated by a helper program (for example http://www.dairiki.org/" "xface/xface.php)." msgstr "" #: ../pan/gui/profiles-dialog.cc:229 msgid "_X-Face:" msgstr "" #: ../pan/gui/profiles-dialog.cc:231 msgid "Optional Information" msgstr "Informazioni opzionali" #: ../pan/gui/profiles-dialog.cc:236 msgid "" "When posting to Usenet, your article's Message-ID contains a domain name. \n" "You can set a custom domain name here, or leave it blank to let Pan use the " "domain name from your email address." msgstr "" #: ../pan/gui/profiles-dialog.cc:239 msgid "Message-ID _Domain Name:" msgstr "Nome di _Dominio Message-ID:" #: ../pan/gui/profiles-dialog.cc:243 #, c-format msgid "" "%i for Message-ID\n" "%a for Author and Address\n" "%n for Author name\n" "%d for Date" msgstr "" #: ../pan/gui/profiles-dialog.cc:244 msgid "_Attribution:" msgstr "_Attribuzione:" #: ../pan/gui/profiles-dialog.cc:268 msgid "" "Extra headers to be included in your posts, such as\n" "Reply-To: \"Your Name\"\n" "Organization: Your Organization\n" msgstr "" #: ../pan/gui/profiles-dialog.cc:278 #, fuzzy msgid "E_xtra Headers:" msgstr "Ulteriori Intestazioni" #: ../pan/gui/profiles-dialog.cc:323 msgid "Invalid email address." msgstr "" #: ../pan/gui/profiles-dialog.cc:324 msgid "Please use an address of the form joe@somewhere.org" msgstr "" #: ../pan/gui/profiles-dialog.cc:479 msgid "New Profile" msgstr "Nuovo Profilo" #: ../pan/gui/profiles-dialog.cc:525 #, fuzzy msgid "Posting Profiles" msgstr "/S_trumenti/_Profili di invio" #: ../pan/gui/profiles-dialog.cc:541 #, fuzzy msgid "Profiles" msgstr "Profilo" #: ../pan/gui/save-attach-ui.cc:77 ../pan/gui/save-ui.cc:77 #, fuzzy, c-format msgid "" "%g - group as one directory (alt.binaries.pictures.trains)\n" "%G - group as nested directory (/alt/binaries/pictures/trains)\n" "%s - subject line excerpt\n" "%S - subject line\n" " \n" "\"/home/user/News/Pan/%g\" becomes\n" "\"/home/user/News/Pan/alt.binaries.pictures.trains\", and\n" "\"/home/user/News/Pan/%G\" becomes\n" "\"/home/user/News/Pan/alt/binaries/pictures/trains\"," msgstr "" "%g - raggruppa come una sola directory (alt.binaries.pictures.trains)\n" "%G - raggruppa come directory nidificate (/alt/binaries/pictures/trains)\n" " \n" "\"/home/user/News/Pan/%g\" diventa\n" "\"/home/user/News/Pan/alt.binaries.pictures.trains\", e\n" "\"/home/user/News/Pan/%G\" diventa\n" "\"/home/user/News/Pan/alt/binaries/pictures/trains\"," #: ../pan/gui/save-attach-ui.cc:223 ../pan/gui/save-ui.cc:242 msgid "Add to the queue sorted by date posted" msgstr "" #: ../pan/gui/save-attach-ui.cc:224 ../pan/gui/save-ui.cc:243 #, fuzzy msgid "Add to the front of the queue" msgstr "Aggiungi in f_ondo al gestore dei processi" #: ../pan/gui/save-attach-ui.cc:225 ../pan/gui/save-ui.cc:244 #, fuzzy msgid "Add to the back of the queue" msgstr "Aggiungi in f_ondo al gestore dei processi" #: ../pan/gui/save-attach-ui.cc:257 #, fuzzy msgid "Pan: Save Attachments" msgstr "Salva allegati" #: ../pan/gui/save-attach-ui.cc:282 ../pan/gui/save-attach-ui.cc:300 #: ../pan/gui/save-ui.cc:296 ../pan/gui/save-ui.cc:314 #, fuzzy msgid "_Location:" msgstr "Azioni" #: ../pan/gui/save-attach-ui.cc:286 ../pan/gui/save-ui.cc:300 #, fuzzy msgid "Save Articles" msgstr "/_Salva Allegati Come..." #: ../pan/gui/save-attach-ui.cc:303 ../pan/gui/save-ui.cc:317 #, c-format msgid "_Group's path: %s" msgstr "" #: ../pan/gui/save-attach-ui.cc:314 ../pan/gui/save-ui.cc:332 msgid "_Priority:" msgstr "" #: ../pan/gui/save-ui.cc:233 #, fuzzy msgid "Save attachments" msgstr "Salva allegati" #: ../pan/gui/save-ui.cc:234 #, fuzzy msgid "Save text" msgstr "Salva Testo" #: ../pan/gui/save-ui.cc:235 #, fuzzy msgid "Save attachments and text" msgstr "Salva allega_ti nella directory:" #: ../pan/gui/save-ui.cc:271 #, fuzzy msgid "Pan: Save Articles" msgstr "Pan: Salva Articoli come" #: ../pan/gui/save-ui.cc:328 #, fuzzy msgid "_Action:" msgstr "Azioni" #: ../pan/gui/score-add-ui.cc:89 msgid "is more than" msgstr "" #: ../pan/gui/score-add-ui.cc:90 msgid "is at most" msgstr "" #: ../pan/gui/score-add-ui.cc:112 #, fuzzy msgid "increase the article's score by" msgstr "/_Visualizza/Manda a capo il testo dell'articolo" #: ../pan/gui/score-add-ui.cc:113 #, fuzzy msgid "decrease the article's score by" msgstr "/_Visualizza/Manda a capo il testo dell'articolo" #: ../pan/gui/score-add-ui.cc:114 #, fuzzy msgid "set the article's score to" msgstr "imposta punteggio su" #: ../pan/gui/score-add-ui.cc:115 #, fuzzy msgid "watch the article (set its score to 9999)" msgstr "Segui (imposta punteggio su 9999)" #: ../pan/gui/score-add-ui.cc:116 #, fuzzy msgid "ignore the article (set its score to -9999)" msgstr "_Ignora (imposta punteggio su -9999)" #: ../pan/gui/score-add-ui.cc:141 #, fuzzy msgid "References" msgstr "_References:" #: ../pan/gui/score-add-ui.cc:142 msgid "Line Count" msgstr "" #: ../pan/gui/score-add-ui.cc:143 msgid "Byte Count" msgstr "" #: ../pan/gui/score-add-ui.cc:144 msgid "Crosspost Group Count" msgstr "" #: ../pan/gui/score-add-ui.cc:145 msgid "Age (in days)" msgstr "" #: ../pan/gui/score-add-ui.cc:167 msgid "for the next month" msgstr "" #: ../pan/gui/score-add-ui.cc:168 msgid "for the next six months" msgstr "" #: ../pan/gui/score-add-ui.cc:169 #, fuzzy msgid "forever" msgstr "Server" #: ../pan/gui/score-add-ui.cc:194 msgid "contains" msgstr "contiene" #: ../pan/gui/score-add-ui.cc:195 #, fuzzy msgid "doesn't contain" msgstr "non contiene" #: ../pan/gui/score-add-ui.cc:196 msgid "is" msgstr "è" #: ../pan/gui/score-add-ui.cc:197 #, fuzzy msgid "isn't" msgstr "non è" #: ../pan/gui/score-add-ui.cc:198 msgid "starts with" msgstr "comincia con" #: ../pan/gui/score-add-ui.cc:199 msgid "ends with" msgstr "finisce con" #: ../pan/gui/score-add-ui.cc:200 msgid "matches regex" msgstr "" #: ../pan/gui/score-add-ui.cc:481 #, fuzzy msgid "Another rule already sets this article's score." msgstr "/_Visualizza/Manda a capo il testo dell'articolo" #: ../pan/gui/score-add-ui.cc:482 msgid "You may want to go back or delete the old rule." msgstr "" #: ../pan/gui/score-add-ui.cc:553 msgid "Add and Re_score" msgstr "Aggiungi e ricalcola punteggi" #: ../pan/gui/score-add-ui.cc:604 ../pan/gui/score-add-ui.cc:624 #, fuzzy msgid "New Scoring Rule" msgstr "Nuovo Punteggio" #: ../pan/gui/score-add-ui.cc:635 msgid "If the group name" msgstr "" #: ../pan/gui/score-add-ui.cc:642 #, fuzzy msgid "And the article's" msgstr "Righe per articolo:" #: ../pan/gui/score-view-ui.cc:56 msgid "Close and Re_score" msgstr "Chiudi e ricalcola punteggi" #: ../pan/gui/score-view-ui.cc:154 #, fuzzy, c-format msgid "File %s, Lines %d - %d" msgstr "file dei punteggi %s, riga %d: %s (%s)" #: ../pan/gui/score-view-ui.cc:182 #, fuzzy msgid "Pan: Article's Scores" msgstr "Pan: Visualizza punteggi articoli" #: ../pan/gui/score-view-ui.cc:208 #, fuzzy msgid "Add" msgstr "aggiungi" #: ../pan/gui/score-view-ui.cc:213 msgid "New Score" msgstr "Nuovo Punteggio" #: ../pan/gui/score-view-ui.cc:218 msgid "Criteria" msgstr "Criteri" #: ../pan/gui/score-view-ui.cc:241 #, fuzzy msgid "Add a New Scoring Rule" msgstr "Aggiungi un nuovo punteggio" #: ../pan/gui/score-view-ui.cc:248 #, fuzzy msgid "Remove the Selected Scoring Rule" msgstr "Elimina il punteggio selezionato" #: ../pan/gui/server-ui.cc:221 msgid "Please specify the server's address." msgstr "" #: ../pan/gui/server-ui.cc:264 msgid "Import SSL certificate (PEM format) from File" msgstr "" #. create the dialog #: ../pan/gui/server-ui.cc:290 ../pan/gui/server-ui.cc:869 #, fuzzy msgid "Add a Server" msgstr "Aggiungi un nuovo server" #: ../pan/gui/server-ui.cc:290 ../pan/gui/server-ui.cc:875 #, fuzzy msgid "Edit a Server's Settings" msgstr "Altre Impostazioni" #: ../pan/gui/server-ui.cc:310 #, fuzzy msgid "Location" msgstr "Azioni" #: ../pan/gui/server-ui.cc:314 msgid "The news server's actual address, e.g. \"news.mynewsserver.com\"" msgstr "" #: ../pan/gui/server-ui.cc:315 msgid "_Address:" msgstr "Indirizzo:" #: ../pan/gui/server-ui.cc:319 msgid "The news server's port number. Typically 119." msgstr "" #: ../pan/gui/server-ui.cc:320 msgid "Por_t:" msgstr "Por_ta:" #: ../pan/gui/server-ui.cc:323 msgid "Login (if Required)" msgstr "" #: ../pan/gui/server-ui.cc:327 msgid "_Username:" msgstr "Nome _Utente:" #: ../pan/gui/server-ui.cc:328 msgid "" "The username to give the server when asked. If your server doesn't require " "authentication, you can leave this blank." msgstr "" #: ../pan/gui/server-ui.cc:332 msgid "_Password:" msgstr "_Password:" #: ../pan/gui/server-ui.cc:333 msgid "" "The password to give the server when asked. If your server doesn't require " "authentication, you can leave this blank." msgstr "" #: ../pan/gui/server-ui.cc:336 #, fuzzy msgid "Settings" msgstr "Recupero \"%s\" in corso" #: ../pan/gui/server-ui.cc:343 msgid "Connection _Limit:" msgstr "_Limite Connessione:" #: ../pan/gui/server-ui.cc:347 msgid "After Two Weeks" msgstr "" #: ../pan/gui/server-ui.cc:348 msgid "After One Month" msgstr "" #: ../pan/gui/server-ui.cc:349 msgid "After Two Months" msgstr "" #: ../pan/gui/server-ui.cc:350 msgid "After Three Months" msgstr "" #: ../pan/gui/server-ui.cc:351 msgid "After Six Months" msgstr "" #: ../pan/gui/server-ui.cc:352 #, fuzzy msgid "Never Expire Old Articles" msgstr "Senza scadenza" #: ../pan/gui/server-ui.cc:366 msgid "E_xpire Old Articles:" msgstr "" #: ../pan/gui/server-ui.cc:370 #, fuzzy msgid "Primary" msgstr "Priorità" #: ../pan/gui/server-ui.cc:371 msgid "Fallback" msgstr "" #: ../pan/gui/server-ui.cc:385 #, fuzzy msgid "Server Rank:" msgstr "Server" #: ../pan/gui/server-ui.cc:389 msgid "" "Fallback servers are used for articles that can't be found on the " "primaries. One common approach is to use free servers as primaries and " "subscription servers as fallbacks." msgstr "" #: ../pan/gui/server-ui.cc:396 msgid "Security" msgstr "" #: ../pan/gui/server-ui.cc:401 msgid "Use Plaintext (Unsecured) Connections" msgstr "" #: ../pan/gui/server-ui.cc:402 #, fuzzy msgid "Use Secure SSL Connections" msgstr "Nessuna Connessione" #: ../pan/gui/server-ui.cc:418 msgid "TLS (SSL) Options:" msgstr "" #: ../pan/gui/server-ui.cc:423 msgid "" "You can set the option for using/disabling secure SSL/TLS connections here. " "If you enable SSL/TLS, your data is encrypted and secure. It is encouraged " "to use this option for privacy reasons." msgstr "" #: ../pan/gui/server-ui.cc:428 msgid "Always trust this server's certificate" msgstr "" #: ../pan/gui/server-ui.cc:602 #, c-format msgid "Really delete \"%s\"?" msgstr "" #: ../pan/gui/server-ui.cc:691 msgid "No information available." msgstr "" #: ../pan/gui/server-ui.cc:697 #, c-format msgid "Server Certificate for '%s'" msgstr "" #: ../pan/gui/server-ui.cc:795 #, c-format msgid "Really delete certificate for \"%s\"?" msgstr "" #. dialog #: ../pan/gui/server-ui.cc:822 ../pan/gui/server-ui.cc:843 #: ../pan/gui/server-ui.cc:941 msgid "Servers" msgstr "Server" #: ../pan/gui/server-ui.cc:882 #, fuzzy msgid "Remove a Server" msgstr "Nuovo Server" #. dialog #: ../pan/gui/server-ui.cc:915 msgid "SSL Certificates" msgstr "" #: ../pan/gui/server-ui.cc:936 msgid "Certificates" msgstr "" #: ../pan/gui/server-ui.cc:967 msgid "Import Certificate" msgstr "" #: ../pan/gui/server-ui.cc:973 msgid "Inspect Certificate" msgstr "" #: ../pan/gui/server-ui.cc:980 #, fuzzy msgid "Remove Certificate" msgstr "Nuovo Server" #: ../pan/gui/task-pane.cc:143 #, c-format msgid "" "\n" "Upload\n" "\n" "Subject: \"%s\"\n" "From: %s\n" "Groups: %s\n" "Sourcefile: %s\n" msgstr "" #: ../pan/gui/task-pane.cc:155 #, c-format msgid "" "\n" "Download\n" "\n" "Subject: \"%s\"\n" "From: %s\n" "Date: %s\n" "Groups: %s\n" "Save Path: %s\n" msgstr "" #: ../pan/gui/task-pane.cc:157 #, fuzzy msgid "unknown" msgstr "Sconosciuto" #: ../pan/gui/task-pane.cc:263 msgid "Choose new destination for selected Tasks" msgstr "" #: ../pan/gui/task-pane.cc:417 #, fuzzy, c-format msgid "Pan: Tasks (%d Queued, %d Running, %d Stopped)" msgstr "Pan %s Gestore Processi (%d in Coda, %d in Esecuzione, %d Interrotti)" #: ../pan/gui/task-pane.cc:419 #, fuzzy, c-format msgid "Pan: Tasks (%d Queued, %d Running)" msgstr "Pan %s Gestore Processi (%d in Coda, %d in Esecuzione)" #: ../pan/gui/task-pane.cc:421 #, fuzzy, c-format msgid "Pan: Tasks" msgstr "Pan: Gestore dei Processi" #: ../pan/gui/task-pane.cc:446 #, fuzzy, c-format msgid "%lu selected, %s" msgstr "(%u selezionati)" #: ../pan/gui/task-pane.cc:510 msgid "Running" msgstr "In Esecuzione" #: ../pan/gui/task-pane.cc:511 #, fuzzy msgid "Decoding" msgstr "Decodifica \"%s\" in corso" #: ../pan/gui/task-pane.cc:513 msgid "Queued for Decode" msgstr "" #: ../pan/gui/task-pane.cc:514 msgid "Queued for Encode" msgstr "" #: ../pan/gui/task-pane.cc:515 msgid "Queued" msgstr "In Coda" #: ../pan/gui/task-pane.cc:516 msgid "Stopped" msgstr "Interrotto" #: ../pan/gui/task-pane.cc:517 msgid "Removing" msgstr "Eliminazione in corso" #: ../pan/gui/task-pane.cc:546 #, fuzzy, c-format msgid "%d%% Done" msgstr "% Terminato" #: ../pan/gui/task-pane.cc:552 #, fuzzy, c-format msgid "%d:%02d:%02d Remaining (%d @ %lu KiB/s)" msgstr "%d:%02d:%02d (%.2f KB/s)" #: ../pan/gui/task-pane.cc:646 ../pan/gui/task-pane.cc:647 #, fuzzy msgid "Move To Top" msgstr "Sposta i Processi Selezionati in Fondo" #: ../pan/gui/task-pane.cc:651 ../pan/gui/task-pane.cc:652 #, fuzzy msgid "Move To Bottom" msgstr "Sposta i Processi Selezionati in Fondo" #: ../pan/gui/task-pane.cc:656 ../pan/gui/task-pane.cc:657 #, fuzzy msgid "Stop Task" msgstr "Nessun Processo" #: ../pan/gui/task-pane.cc:661 ../pan/gui/task-pane.cc:662 #, fuzzy msgid "Delete Task" msgstr "Cancella Spam" #: ../pan/gui/task-pane.cc:666 ../pan/gui/task-pane.cc:667 #, fuzzy msgid "Restart Task" msgstr "Ri-inizia i Processi Selezionati." #: ../pan/gui/task-pane.cc:671 ../pan/gui/task-pane.cc:672 msgid "Change Download Destination" msgstr "" #: ../pan/gui/task-pane.cc:729 #, fuzzy msgid "_Online" msgstr "Online" #: ../pan/gui/task-pane.cc:746 #, fuzzy msgid "Restart Tasks" msgstr "Ri-inizia i Processi Selezionati." #: ../pan/gui/task-pane.cc:748 #, fuzzy msgid "Stop Tasks" msgstr "Nessun Processo" #: ../pan/gui/task-pane.cc:750 #, fuzzy msgid "Delete Tasks" msgstr "Cancella Spam" #: ../pan/gui/url.cc:123 #, fuzzy, c-format msgid "Error starting URL: %s (Command was: %s)" msgstr "Errore nell'intepretare la riga di comando \"browser web\": %s" #: ../pan/tasks/decoder.cc:115 #, fuzzy, c-format msgid "Couldn't save file \"%s\": %s" msgstr "Non è possibile leggere il file della firma \"%s\": %s" #: ../pan/tasks/decoder.cc:137 ../pan/tasks/encoder.cc:136 msgid "Error initializing uulib" msgstr "" #: ../pan/tasks/decoder.cc:152 ../pan/tasks/socket-impl-gio.cc:352 #: ../pan/tasks/socket-impl-openssl.cc:634 #, fuzzy, c-format msgid "Error reading from %s: %s" msgstr "Errore in lettura dal socket.: %s" #: ../pan/tasks/decoder.cc:192 #, c-format msgid "Saved \"%s\"" msgstr "Salvato \"%s\"" #: ../pan/tasks/decoder.cc:199 #, fuzzy, c-format msgid "" "Error saving \"%s\":\n" "%s." msgstr "Errore leggendoil file \"%s\": %s." #: ../pan/tasks/decoder.cc:314 ../pan/tasks/task-article.cc:350 #, fuzzy, c-format msgid "Decoding %s" msgstr "Decodifica \"%s\" in corso" #: ../pan/tasks/encoder.cc:102 ../pan/tasks/encoder.cc:155 #, fuzzy, c-format msgid "Error loading %s from cache." msgstr "Errore in lettura dal socket." #: ../pan/tasks/encoder.cc:177 #, fuzzy, c-format msgid "Error encoding %s: %s" msgstr "Errore leggendoil file \"%s\": %s." #: ../pan/tasks/encoder.cc:269 #, fuzzy, c-format msgid "Encoding %s" msgstr "Set di caratteri:" #: ../pan/tasks/nntp.cc:126 #, c-format msgid "%s requires a username, but none is set." msgstr "" #: ../pan/tasks/nntp.cc:139 #, c-format msgid "%s requires a password, but none is set." msgstr "" #: ../pan/tasks/nntp.cc:205 #, c-format msgid "Sending \"%s\" to %s returned an error: %s" msgstr "" #: ../pan/tasks/nntp.cc:228 #, c-format msgid "Sending \"%s\" to %s returned an unrecognized response: \"%s\"" msgstr "" #: ../pan/tasks/nntp-pool.cc:222 #, fuzzy, c-format msgid "Unable to connect to \"%s\"" msgstr "Impossibile stabilire una connessione con il server di posta \"%s\"" #: ../pan/tasks/socket-impl-gio.cc:173 ../pan/tasks/socket-impl-gio.cc:211 #: ../pan/tasks/socket-impl-openssl.cc:214 #: ../pan/tasks/socket-impl-openssl.cc:252 #, fuzzy, c-format msgid "Error connecting to \"%s\"" msgstr "Errore leggendoil file \"%s\": %s." #: ../pan/tasks/socket-impl-gio.cc:351 ../pan/tasks/socket-impl-openssl.cc:633 #, fuzzy msgid "Unknown Error" msgstr "Sconosciuto" #: ../pan/tasks/task-article.cc:61 ../pan/tasks/task-article.cc:156 #: ../pan/tasks/task-article.cc:159 #, fuzzy, c-format msgid "Saving %s" msgstr "Salvataggio \"%s\"" #: ../pan/tasks/task-article.cc:63 #, fuzzy, c-format msgid "Reading %s" msgstr "Lettura in corso" #: ../pan/tasks/task-article.cc:322 #, c-format msgid "Article \"%s\" is incomplete -- the news server(s) don't have part %s" msgstr "" #: ../pan/tasks/task-groups.cc:40 #, fuzzy, c-format msgid "Getting group list from \"%s\"" msgstr "Recupero dei nuovi gruppi dal server \"%s\" in corso" #: ../pan/tasks/task-groups.cc:122 #, fuzzy, c-format msgid "Fetched %lu Groups" msgstr "Recuperati %u intestazioni per \"%s\"" #: ../pan/tasks/task-post.cc:35 #, fuzzy, c-format msgid "Posting \"%s\"" msgstr "Recupero \"%s\" in corso" #: ../pan/tasks/task-post.cc:76 #, fuzzy, c-format msgid "Posting of \"%s\" failed: %s" msgstr "Recupero testo articolo \"%s\" fallito: %s" #: ../pan/tasks/task-post.cc:81 #, c-format msgid "Posting of \"%s\" succesful: %s" msgstr "" #: ../pan/tasks/task-upload.cc:51 #, fuzzy, c-format msgid "Uploading %s" msgstr "Lettura in corso" #: ../pan/tasks/task-upload.cc:249 #, c-format msgid "Uploading %s - Part %d of %d" msgstr "" #: ../pan/tasks/task-upload.cc:251 #, c-format msgid "Uploading Message body with Subject \"%s\"" msgstr "" #: ../pan/tasks/task-upload.cc:308 #, c-format msgid "Posting of File %s (Part %d of %d) failed: No Posts allowed by server." msgstr "" #: ../pan/tasks/task-upload.cc:316 #, fuzzy, c-format msgid "Posting of File %s (Part %d of %d) failed: %s" msgstr "Recupero testo articolo \"%s\" fallito: %s" #: ../pan/tasks/task-upload.cc:326 ../pan/tasks/task-upload.cc:333 #, c-format msgid "Posting of file %s (Part %d of %d) succesful: %s" msgstr "" #: ../pan/tasks/task-upload.cc:343 #, fuzzy, c-format msgid "Posting of file %s succesful: %s" msgstr "Recupero testo articolo \"%s\" fallito: %s" #: ../pan/tasks/task-upload.cc:347 #, c-format msgid "" "Posting of file %s not completely successful: Check the log (right-click on " "list item) !" msgstr "" #: ../pan/tasks/task-upload.cc:364 #, c-format msgid "" "Posting of file %s not successful: Check the log (right-click on list item) !" msgstr "" #: ../pan/tasks/task-xover.cc:79 #, c-format msgid "Getting all headers for \"%s\"" msgstr "Recupero di tutte le intestazioni per \"%s\" in corso" #: ../pan/tasks/task-xover.cc:81 #, c-format msgid "Getting new headers for \"%s\"" msgstr "Recupero nuove intestazioni per \"%s\" in corso" #. SAMPLE #: ../pan/tasks/task-xover.cc:83 #, c-format msgid "Sampling headers for \"%s\"" msgstr "Recupero intestazioni d'esempio per \"%s\" in corso" #: ../pan/tasks/task-xover.cc:369 #, fuzzy, c-format msgid "%s (%lu parts, %lu articles)" msgstr " (%lu righe in %lu articoli)" #: ../pan/tasks/task-xoverinfo.cc:78 #, fuzzy, c-format msgid "Getting header counts for \"%s\"" msgstr "Recupero di tutte le intestazioni per \"%s\" in corso" #: ../pan/usenet-utils/filter-info.cc:163 #, fuzzy msgid "article doesn't have attachments" msgstr "l'articolo non ha allegati completi" #: ../pan/usenet-utils/filter-info.cc:167 #, fuzzy msgid "the article has attachments" msgstr "l'articolo non ha allegati" #: ../pan/usenet-utils/filter-info.cc:171 #, fuzzy msgid "the article isn't cached locally" msgstr "Il testo dell'articolo non è nella Cache Locale" #: ../pan/usenet-utils/filter-info.cc:175 #, fuzzy msgid "the article is cached locally" msgstr "Il testo dell'articolo è nella Cache Locale" #: ../pan/usenet-utils/filter-info.cc:179 #, fuzzy msgid "the article wasn't posted by you" msgstr "L'articolo non è stato inviato da me" #: ../pan/usenet-utils/filter-info.cc:183 #, fuzzy msgid "the article was posted by you" msgstr "L'articolo è stato inviato da me" #: ../pan/usenet-utils/filter-info.cc:187 #, fuzzy msgid "the article has been read" msgstr "L'articolo non è stato letto" #: ../pan/usenet-utils/filter-info.cc:191 #, fuzzy msgid "the article hasn't been read" msgstr "L'articolo non è stato letto" #: ../pan/usenet-utils/filter-info.cc:195 #, fuzzy, c-format msgid "the article is less than %ld bytes long" msgstr "L'articolo è più corto di %d bytes" #: ../pan/usenet-utils/filter-info.cc:200 #, fuzzy, c-format msgid "the article is at least %ld bytes long" msgstr "L'articolo è più corto di %d bytes" #: ../pan/usenet-utils/filter-info.cc:205 #, fuzzy, c-format msgid "the article is less than %ld lines long" msgstr "L'articolo ha meno di %d righe" #: ../pan/usenet-utils/filter-info.cc:210 #, fuzzy, c-format msgid "the article is at least %ld lines long" msgstr "L'articolo ha meno di %d righe" #: ../pan/usenet-utils/filter-info.cc:215 #, fuzzy, c-format msgid "the article is less than %ld days old" msgstr "L'articolo ha più di %d giorni" #: ../pan/usenet-utils/filter-info.cc:220 #, fuzzy, c-format msgid "the article is at least %ld days old" msgstr "L'articolo è più vecchi_o di N giorni" #: ../pan/usenet-utils/filter-info.cc:225 #, fuzzy, c-format msgid "the article was posted to less than %ld groups" msgstr "L'articolo è stato inviato a meno di %d gruppi" #: ../pan/usenet-utils/filter-info.cc:230 #, fuzzy, c-format msgid "the article was posted to at least %ld groups" msgstr "L'articolo è stato inviato ad almeno N gruppi:" #: ../pan/usenet-utils/filter-info.cc:235 #, fuzzy, c-format msgid "the article's score is less than %ld" msgstr "imposta punteggio su" #: ../pan/usenet-utils/filter-info.cc:240 #, fuzzy, c-format msgid "the article's score is %ld or higher" msgstr "imposta punteggio su" #: ../pan/usenet-utils/filter-info.cc:249 #: ../pan/usenet-utils/filter-info.cc:259 #, fuzzy, c-format msgid "%s doesn't contain \"%s\"" msgstr "non contiene" #: ../pan/usenet-utils/filter-info.cc:250 #: ../pan/usenet-utils/filter-info.cc:260 #, c-format msgid "%s isn't \"%s\"" msgstr "" #: ../pan/usenet-utils/filter-info.cc:251 #: ../pan/usenet-utils/filter-info.cc:261 #, fuzzy, c-format msgid "%s doesn't begin with \"%s\"" msgstr "non finisce con" #: ../pan/usenet-utils/filter-info.cc:252 #: ../pan/usenet-utils/filter-info.cc:262 #, fuzzy, c-format msgid "%s doesn't end with \"%s\"" msgstr "non finisce con" #: ../pan/usenet-utils/filter-info.cc:253 #: ../pan/usenet-utils/filter-info.cc:263 #, c-format msgid "%s doesn't match the regex \"%s\"" msgstr "" #: ../pan/usenet-utils/filter-info.cc:275 #, fuzzy, c-format msgid "%s contains \"%s\"" msgstr "contiene" #: ../pan/usenet-utils/filter-info.cc:276 #, c-format msgid "%s is \"%s\"" msgstr "" #: ../pan/usenet-utils/filter-info.cc:277 #, c-format msgid "%s begins with \"%s\"" msgstr "" #: ../pan/usenet-utils/filter-info.cc:278 #, fuzzy, c-format msgid "%s ends with \"%s\"" msgstr "finisce con" #: ../pan/usenet-utils/filter-info.cc:279 #, fuzzy, c-format msgid "%s matches the regex \"%s\"" msgstr "%u articoli corrispondono alla regola %s" #: ../pan/usenet-utils/filter-info.cc:285 msgid "Any of these tests fail:" msgstr "" #: ../pan/usenet-utils/filter-info.cc:292 msgid "All of these tests pass:" msgstr "" #: ../pan/usenet-utils/filter-info.cc:299 msgid "None of these tests pass:" msgstr "" #: ../pan/usenet-utils/filter-info.cc:306 msgid "Any of these tests pass:" msgstr "" #: ../pan/usenet-utils/gnksa.cc:878 #, c-format msgid "No email address provided; generating message-id with domain \"%s\"" msgstr "" "Nessun indirizzo email fornito; generazione del message-id con il dominio " "\"%s\" in corso" #: ../pan/usenet-utils/message-check.cc:124 #, fuzzy msgid "Warning: Reply seems to be top-posted." msgstr "ATTENZIONE: La risposta sembra essere stata inviata all'inizio" #: ../pan/usenet-utils/message-check.cc:145 msgid "Warning: The signature marker should be \"-- \", not \"--\"." msgstr "" #: ../pan/usenet-utils/message-check.cc:162 #, fuzzy msgid "Warning: Signature prefix with no signature." msgstr "ATTENZIONE: Prefisso di firma senza alcuna firma." #: ../pan/usenet-utils/message-check.cc:167 #, fuzzy msgid "Warning: Signature is more than 4 lines long." msgstr "ATTENZIONE: La firma è più lunga di 4 righe" #: ../pan/usenet-utils/message-check.cc:172 #, fuzzy msgid "Warning: Signature is more than 80 characters wide." msgstr "ATTENZIONE: La firma è più larga di 80 caratteri" #: ../pan/usenet-utils/message-check.cc:198 #, fuzzy, c-format msgid "Warning: %d line is more than 80 characters wide." msgid_plural "Warning: %d lines are more than 80 characters wide." msgstr[0] "ATTENZIONE: %d righe sono più larghe di 80 caratteri." msgstr[1] "ATTENZIONE: %d righe sono più larghe di 80 caratteri." #: ../pan/usenet-utils/message-check.cc:223 #, fuzzy msgid "Error: Message is empty." msgstr "ERRORE: Il messaggio è vuoto." #: ../pan/usenet-utils/message-check.cc:258 #, fuzzy msgid "Warning: The message is entirely quoted text!" msgstr "ATTENZIONE: Il messaggio consiste interamente di citazioni." #: ../pan/usenet-utils/message-check.cc:259 #, fuzzy msgid "Warning: The message is mostly quoted text." msgstr "ATTENZIONE: Il messaggio consiste principalmente di citazioni." #: ../pan/usenet-utils/message-check.cc:309 #, fuzzy msgid "Error: Message appears to have no new content." msgstr "ERRORE: Il messaggio sembra non avere alcun nuovo contenuto." #: ../pan/usenet-utils/message-check.cc:344 #: ../pan/usenet-utils/message-check.cc:383 #, c-format msgid "" "Warning: The posting profile's server doesn't carry newsgroup\n" "\t\"%s\".\n" "\tIf the group name is correct, switch profiles in the \"From:\"\n" "\tline or edit the profile with \"Edit|Manage Posting Profiles\"." msgstr "" #: ../pan/usenet-utils/message-check.cc:355 #, fuzzy msgid "Warning: Following-Up to too many groups." msgstr "ATTENZIONE: Si sta facendo Follow-Up su troppi gruppi." #: ../pan/usenet-utils/message-check.cc:366 #, fuzzy msgid "Error: No Subject specified." msgstr "ERRORE: Nessun oggetto specificato." #: ../pan/usenet-utils/message-check.cc:395 #, fuzzy, c-format msgid "Warning: Group \"%s\" is read-only." msgstr "ATTENZIONE: Gruppo \"%s\" è in sola lettura." #: ../pan/usenet-utils/message-check.cc:404 #, fuzzy msgid "Error: Posting to a very large number of groups." msgstr "ERRORE: Si sta inviando il messaggio a un gran numero di gruppi." #: ../pan/usenet-utils/message-check.cc:409 #, fuzzy msgid "Warning: Posting to a large number of groups." msgstr "ATTENZIONE: Si sta inviando il messaggio a un gran numero di gruppi." #: ../pan/usenet-utils/message-check.cc:416 #, fuzzy msgid "Warning: Crossposting without setting Followup-To header." msgstr "" "ATTENZIONE: Si sta inviando lo stesso messaggio a molti gruppi senza avere " "impostato il campo Followup-To." #: ../pan/usenet-utils/message-check.cc:441 #, fuzzy msgid "Error: Bad email address." msgstr "Indirizzo _email:" #: ../pan/usenet-utils/message-check.cc:450 msgid "Warning: Most newsgroups frown upon HTML posts." msgstr "" #: ../pan/usenet-utils/message-check.cc:486 #, fuzzy msgid "Error: No Recipients." msgstr "ERRORE: Nessun oggetto specificato." #: ../pan/usenet-utils/scorefile.cc:304 #, fuzzy, c-format msgid "" "Error reading score in %*.*s, line %d: expected 'Expires: MM/DD/YYYY' or " "'Expires: DD-MM-YYYY'." msgstr "previsto 'Scade: MM/DD/YYYY' oppure 'Scade: DD-MM-YYYY'" #: ../pan/usenet-utils/scorefile.cc:307 #, c-format msgid "Expired old score from %*.*s, line %d" msgstr "" #: ../pan/usenet-utils/scorefile.cc:380 #, c-format msgid "Error reading score in %*.*s, line %d: unexpected line." msgstr "" #: ../pan/usenet-utils/scorefile.cc:428 #, c-format msgid "Read %lu scoring rules in %lu sections from \"%s\"" msgstr "" #: ../pan/usenet-utils/ssl-utils.h:199 #, fuzzy, c-format msgid "Error printing the server certificate for '%s'" msgstr "Errore nell'intepretare la riga di comando \"browser web\": %s" #: ../pan/usenet-utils/ssl-utils.h:216 #, c-format msgid "" "The current server '%s' sent this security certificate :\n" "\n" msgstr "" #: ../pan/usenet-utils/ssl-utils.h:217 #, c-format msgid "" "Certificate information for server '%s' :\n" "\n" msgstr "" #: ../pan/usenet-utils/ssl-utils.h:219 #, c-format msgid "" "%sIssuer information:\n" "%s\n" "Valid until : %s\n" "\n" "Not valid before : %s\n" "\n" msgstr "" #: ../pan/usenet-utils/text-massager.cc:397 msgid "> [quoted text muted]" msgstr "> [testo citato nascosto]" #~ msgid "Read News from Usenet" #~ msgstr "Leggi News da Usenet" #, fuzzy #~ msgid "_Toggle Flag on for Thread" #~ msgstr "Segui Discussione" #, fuzzy #~ msgid "Error!" #~ msgstr "Errore" #, fuzzy #~ msgid "Signer : " #~ msgstr "Firma" #, fuzzy #~ msgid "_Signature:" #~ msgstr "Firma" #, fuzzy #~ msgid "Creating directory \"%s\"" #~ msgstr "Errore aprendo la directory \"%s\": %s." #~ msgid "Couldn't create directory \"%s\": %s" #~ msgstr "Non è possibile creare la directory \"%s\": %s" #, fuzzy #~ msgid "_Groups" #~ msgstr "Gruppi" #, fuzzy #~ msgid "Read Selected Group" #~ msgstr "Leggi Gruppo Non Letto Successivo" #, fuzzy #~ msgid "_Mark Group _Read" #~ msgstr "/Segna il G_ruppo come già Letto" #, fuzzy #~ msgid "_Delete Group's Articles" #~ msgstr "/Cancella gli articoli _del gruppo" #, fuzzy #~ msgid "Get New Headers for Selected Groups" #~ msgstr "Scarica Nuove Intestazioni per i Gruppi Selezionati" #, fuzzy #~ msgid "Get New Headers for Subscribed Groups" #~ msgstr "Scarica Nuove intestazioni per i Gruppi Sottoscritti" #, fuzzy #~ msgid "Get Headers from Server" #~ msgstr "Recuperati %d gruppi dal server \"%s\"" #, fuzzy #~ msgid "Get a new Group list from the Server" #~ msgstr "Recuperati %d nuovi gruppi dal server \"%s\"" #, fuzzy #~ msgid "Subscribe to Selected Groups" #~ msgstr "Gruppi Sottoscritti" #, fuzzy #~ msgid "Unsubscribe from Selected Groups" #~ msgstr "Gruppi Sottoscritti" #, fuzzy #~ msgid "Save Selected Articles..." #~ msgstr "Scarica Articoli Selezionati" #~ msgid "Cancel Last Task" #~ msgstr "Elimina l'ultimo processo" #, fuzzy #~ msgid "Clear Header Pane" #~ msgstr "Pannello Intestazioni" #, fuzzy #~ msgid "Clear Body Pane" #~ msgstr "Pannello Testo" #, fuzzy #~ msgid "Download _Selected Article" #~ msgstr "Scaricamento di 1 articolo in corso" #, fuzzy #~ msgid "Download Selected Article" #~ msgstr "Scaricamento di 1 articolo in corso" #, fuzzy #~ msgid "Read _Selected Article" #~ msgstr "Leggi Prossimo Articolo Non Letto" #, fuzzy #~ msgid "Next Unread Group" #~ msgstr "/Vai a/_Gruppo Non Letto Successivo" #, fuzzy #~ msgid "Next Group" #~ msgstr "/Vai a/Gruppo Succ_essivo" #, fuzzy #~ msgid "Next Watched Article" #~ msgstr "Mostra solo gli articoli seguiti" #, fuzzy #~ msgid "Next Thread" #~ msgstr "/Vai a/Prossima _Discussione" #, fuzzy #~ msgid "Previous Article" #~ msgstr "/Vai a/Articolo Precedente" #, fuzzy #~ msgid "Previous Thread" #~ msgstr "/Vai a/Disc_ussione precedente" #, fuzzy #~ msgid "Parent Article" #~ msgstr "/Vai a/Articolo _Padre" #, fuzzy #~ msgid "_Plonk Author" #~ msgstr "/_Articoli/Ignora autore" #, fuzzy #~ msgid "Mark Article as Read" #~ msgstr "L'articolo è stato letto" #, fuzzy #~ msgid "Mark Article as Unread" #~ msgstr "L'articolo non è stato letto" #, fuzzy #~ msgid "Reply to Author" #~ msgstr "/_Articoli/Ignora autore" #, fuzzy #~ msgid "_About..." #~ msgstr "/Aiuto/Inform_azioni su..." #, fuzzy #~ msgid "Abbreviate _Names in Group Pane" #~ msgstr "/_Visualizza/_Nomi abbreviati nel pannello dei gruppi" #, fuzzy #~ msgid "Match Only Articles Posted by Me" #~ msgstr "L'articolo è stato inviato da me" #, fuzzy #~ msgid "Central European (ISO-8859-2)" #~ msgstr "Europeo centrale" #, fuzzy #~ msgid "Central European (Windows-1250)" #~ msgstr "Europeo centrale" #, fuzzy #~ msgid "Chinese Simplified (gb2312)" #~ msgstr "Cinese semplificato" #, fuzzy #~ msgid "Chinese Traditional (big5)" #~ msgstr "Cinese Tradizionale" #, fuzzy #~ msgid "Cyrillic (KOI8-R)" #~ msgstr "Cirillico" #, fuzzy #~ msgid "Cyrillic, Ukrainian (KOI8-U)" #~ msgstr "Cirillico, Ucraino" #, fuzzy #~ msgid "Western, New (ISO-8859-15)" #~ msgstr "Occidentale, Nuovo" #, fuzzy #~ msgid "Unicode (UTF-8)" #~ msgstr "Unicode, UTF-8" #, fuzzy #~ msgid "Pan: " #~ msgstr "Pan: Regole" #, fuzzy #~ msgid "Pan: %s" #~ msgstr "Pan: Regole" #~ msgid "Tasks: %u/%u" #~ msgstr "Processi: %u/%u" #~ msgid "%u Tasks Running, %u Tasks Total" #~ msgstr "%u Processi in esecuzione, %u Processi Totali" #, fuzzy #~ msgid "Wrap the Article Body to 80 Columns" #~ msgstr "/_Visualizza/Manda a capo il testo dell'articolo" #, fuzzy #~ msgid "_Close" #~ msgstr "Colori" #, fuzzy #~ msgid "Close Window" #~ msgstr "Chiudi la finestra di log." #, fuzzy #~ msgid "Cut Text" #~ msgstr "Testo:" #, fuzzy #~ msgid "Copy Text" #~ msgstr "A Capo Automatico" #, fuzzy #~ msgid "_Paste" #~ msgstr "/Spedisci" #, fuzzy #~ msgid "Paste Text" #~ msgstr "Salva Testo" #, fuzzy #~ msgid "Manage Posting Pr_ofiles..." #~ msgstr "/S_trumenti/_Profili di invio" #~ msgid "Western" #~ msgstr "Occidentale" #, fuzzy #~ msgid "Error loading post.ui: \"%s\"" #~ msgstr "Errore in lettura dal socket.: %s" #, fuzzy #~ msgid "Editors" #~ msgstr "Editor" #, fuzzy #~ msgid "Posting Article" #~ msgstr "Ordinamento articoli in corso" #, fuzzy #~ msgid "Add a New Profile" #~ msgstr "Aggiungi un nuovo profilo" #~ msgid "Edit the selected profile" #~ msgstr "Modifica il profilo selezionato" #~ msgid "Remove the selected profile" #~ msgstr "Rimuove il profilo selezionato" #, fuzzy #~ msgid "Threads" #~ msgstr "Discussioni lette:" #, fuzzy #~ msgid "Path" #~ msgstr "Parti" #, fuzzy #~ msgid "_Path:" #~ msgstr "/Spedisci" #, fuzzy #~ msgid "Group Management" #~ msgstr "Gruppo" #, fuzzy #~ msgid "Pan: New Scoring Rule" #~ msgstr "Pan: Modifica Regole" #, fuzzy #~ msgid "Then" #~ msgstr "Grazie" #, fuzzy #~ msgid "For" #~ msgstr "Cartelle" #, fuzzy #~ msgid "Name: \"%s\"" #~ msgstr "Salvato \"%s\"" #, fuzzy #~ msgid "Pan: Add a Server" #~ msgstr "Pan: Modifica Server" #, fuzzy #~ msgid "Pan: Edit a Server's Settings" #~ msgstr "Pan: Modifica Server" #~ msgid "Pan: Servers" #~ msgstr "Pan: Server" #, fuzzy #~ msgid "to %s" #~ msgstr "Informazioni su %s" #~ msgid "Status" #~ msgstr "Stato" #, fuzzy #~ msgid "Unable to set group: %s" #~ msgstr "Impossibile impostare il gruppo \"%s\": %s" #, fuzzy #~ msgid "Couldn't load \"%s\": %s" #~ msgstr "Non è possibile creare la directory \"%s\": %s" #, fuzzy #~ msgid "" #~ "Error saving \"%s\":\n" #~ "%s. %s" #~ msgstr "Errore leggendoil file \"%s\": %s." #, fuzzy #~ msgid "Warning: Unknown group \"%s\"." #~ msgstr "ERRORE: Gruppo sconosciuto: \"%s\"." #, fuzzy #~ msgid "Post New Article" #~ msgstr "Ordinamento articoli in corso" #, fuzzy #~ msgid "Follow-up to Article" #~ msgstr "Followup sul gruppo" #, fuzzy #~ msgid "_Post Article" #~ msgstr "_Articolo" #, fuzzy #~ msgid "Post this Article Now" #~ msgstr "Spedizione (News) dell'articolo \"%s\"" #, fuzzy #~ msgid "Default KDE Browser" #~ msgstr "Se_t di caratteri di default:" #, fuzzy #~ msgid "Error: No Newsgroups specified." #~ msgstr "ERRORE: Nessun destinatario specificato." #, fuzzy #~ msgid "_Posting" #~ msgstr "/Spedisci" #, fuzzy #~ msgid "Saved newsrc files in %.1f seconds" #~ msgstr "Salvati %d articoli in \"%s\" in %.1f secondi (%.0f art/sec)" #, fuzzy #~ msgid "Use _Monospace Font in Body Pane" #~ msgstr "/_Visualizza/Usa font _monospazio nel pannello degli articoli" #, fuzzy #~ msgid "%d connections totaling %.1f KiB per second" #~ msgstr "%d connessioni per un totale di %.1f KB al secondo" #~ msgid "_Reply-To Header:" #~ msgstr "Intestazione _Reply-To:" #~ msgid "Or_ganization Header:" #~ msgstr "Intestazione Or_ganisation" #~ msgid "Select Signature File" #~ msgstr "Seleziona il file della firma:" #~ msgid "Automatic Downloads" #~ msgstr "Scaricamenti Automatici" #, fuzzy #~ msgid "Save a_ttachments to path:" #~ msgstr "Salva allegati in:" #~ msgid "UNKNOWN" #~ msgstr "SCONOSCIUTO" #, fuzzy #~ msgid "Decode can't access directory \"%s\"" #~ msgstr "La decodifica non può accedere il percorso \"%s\"" #~ msgid "Could not decode article - file may be corrupt/incomplete" #~ msgstr "" #~ "Impossibile decodificare l'articolo - il file potrebbe essere danneggiato/" #~ "incompleto" #~ msgid "Checksum for `%s' part %d failed - file is corrupt" #~ msgstr "Checksum per `%s' parte %d fallito - il file è danneggiato" #~ msgid "Checksum for `%s' failed - file may be corrupt" #~ msgstr "Checksum per `%s' fallito - il file potrebbe essere danneggiato" #, fuzzy #~ msgid "Use custom colors in _Header Pane" #~ msgstr "Usa font personalizzati nel pannello delle intestazioni" #, fuzzy #~ msgid "Header Pane background:" #~ msgstr "Punteggio Pannello Intestazioni" #, fuzzy #~ msgid "Unread articles:" #~ msgstr "Discussioni non lette:" #, fuzzy #~ msgid "" #~ "Unsupported data version (%d) for server properties. Are you running an " #~ "old version of Pan by accident?" #~ msgstr "" #~ "Versione dati %d non supportata per il file dati \"%s\".\n" #~ "Si sta eseguendo una vecchia versione di Pan per caso?" #, fuzzy #~ msgid "Couldn't create temporary file: %s" #~ msgstr "Non è possibile creare il file temporaneo: %s" #~ msgid "Error renaming \"%s\" as \"%s\": %s." #~ msgstr "Errore rinominando \"%s\" come \"%s\": %s." #~ msgid "Can't backup \"%s\" as \"%s\": %s" #~ msgstr "Impossibile fare copia di backup di \"%s\" come \"%s\": %s." #~ msgid "Can't write to \"%s\": %s" #~ msgstr "Non è possibile scrivere su \"%s\": %s" #~ msgid "Body" #~ msgstr "Testo" #, fuzzy #~ msgid "Open a Draft Article from Disk" #~ msgstr "Scaduti %u articoli da `%s'" #, fuzzy #~ msgid "subject" #~ msgstr "Oggetto" #, fuzzy #~ msgid "author" #~ msgstr "Autore" #~ msgid "Change" #~ msgstr "Cambia" #~ msgid "Connections" #~ msgstr "Connessioni" #, fuzzy #~ msgid "Active" #~ msgstr "Azioni" #~ msgid "" #~ "Unable to cancel article: Couldn't find matching article in folder `pan." #~ "sent'!" #~ msgstr "" #~ "Impossibile cancellare l'articolo: Impossibile trovare articolo " #~ "corrispondente nella cartella `pan.inviati'!" #~ msgid "" #~ "Unable to supersede article: Couldn't find matching article in folder " #~ "`pan.sent'!" #~ msgstr "" #~ "Impossibile annullare l'articolo: Impossibile trovare articolo " #~ "corrispondente nella cartella `pan.inviati'!" #~ msgid "Pan: Find Message" #~ msgstr "Pan: Trova Messaggio" #~ msgid "_Author:" #~ msgstr "_Autore:" #~ msgid "Case Sensiti_ve" #~ msgstr "Sensibile a maiuscole/minuscole" #~ msgid "_Unread Only" #~ msgstr "Solo quelli non letti" #~ msgid "Find:" #~ msgstr "Trova:" #~ msgid "" #~ "Type in a search string and press ENTER.\n" #~ "Wildcards are allowed." #~ msgstr "" #~ "Digitare una stringa di ricerca e premere ENTER.\n" #~ "I meta-caratteri sono permessi (?,*,ecc.) " #~ msgid "You must download the article before you can cancel it." #~ msgstr "Bisogna scaricare l'articolo prima di poterlo cancellare" #~ msgid "You must download the article before you can supersede it." #~ msgstr "Bisogna scaricare l'articolo prima di poterlo sostituire" #~ msgid "/---" #~ msgstr "/---" #~ msgid "/Save A_ttachments" #~ msgstr "/Salva Allega_ti" #~ msgid "/D_ownload Flagged" #~ msgstr "Scarica Marcati" #~ msgid "/_Flag" #~ msgstr "Marca" #~ msgid "/_Unflag" #~ msgstr "Smarca" #~ msgid "/_Copy to Folder" #~ msgstr "/_Copia nella Cartella" #~ msgid "/_Delete" #~ msgstr "Cancella" #~ msgid "Loading group \"%s\"" #~ msgstr "Caricamento gruppo \"%s\" in corso" #~ msgid "Scoring Articles" #~ msgstr "Calcolo punteggio articoli in corso" #~ msgid "Filtering Articles" #~ msgstr "Filtraggio Articoli in corso" #~ msgid "Updating Header Pane..." #~ msgstr "Aggiornamento pannello delle intestazioni in corso..." #~ msgid "Flushing article cache... " #~ msgstr "Svuotamento cache articoli in corso..." #~ msgid "%d files erased." #~ msgstr "%d file eliminati." #~ msgid "Error saving article \"%s\" (is %s full?)" #~ msgstr "Errore salvando l'articolo \"%s\" (forse %s è pieno?)" #~ msgid "Directory \"%s\" contains %.1f MB in %d files" #~ msgstr "La directory \"%s\" contiene %.1f MB in %d file" #~ msgid "Couldn't parse a Message-ID from the raw message!" #~ msgstr "Impossibile ottenere un Message-ID dal puro messaggio!" #~ msgid "Unparseable Subject" #~ msgstr "Impossibile decifrare l'oggetto dell'articolo" #~ msgid "unknown@spammesenseless.com" #~ msgstr "sconosciuto@spaminsulso.net" #~ msgid "Can't create file \"%s\" %s" #~ msgstr "Non è possibile creare il file \"%s\" %s" #~ msgid "Error saving file \"%s\" - is the disk full?" #~ msgstr "Errore salvando il file \"%s\" - il disco è forse pieno?" #~ msgid "Decoded \"%s\" from group \"%s\", \"%s\"" #~ msgstr "Decodificato \"%s\" dal gruppo \"%s\", \"%s\"" #~ msgid "Loading %u of %d groups" #~ msgstr "Caricamento %u di %d gruppi" #~ msgid "" #~ "Skipped %d groups due to possible corruption in \"%s\" and \"%s\". You " #~ "may want to delete these files and get a new grouplist from your news " #~ "server." #~ msgstr "" #~ "Saltati %d gruppi a causa di un possibile errore in \"%s\" e \"%s\". " #~ "Converrebbe cancellare tali file e scaricare una nuova lista di gruppi " #~ "dal server." #~ msgid "Loaded %d groups for server \"%s\" in %.1f seconds (%.0f groups/sec)" #~ msgstr "" #~ "Caricati %d gruppi del server \"%s\" in %.1f secondi (%.0f gruppi/sec)" #~ msgid "Saved %d of %u groups" #~ msgstr "Salvati %d di %u gruppi" #~ msgid "Error saving list of groups to \"%s\" - is the disk full?" #~ msgstr "" #~ "Errore salvando la lista dei gruppi su \"%s\" - il disco è forse pieno?)" #~ msgid "Saved %d groups in \"%s\" in %.1f seconds (%.0f groups/sec)" #~ msgstr "Salvati %d gruppi in \"%s\" in %.1f secondi (%.0f gruppi/sec)" #~ msgid "Loaded %d of %d articles" #~ msgstr "Caricati %d di %d articoli" #~ msgid "" #~ "Pan skipped %d corrupt headers from the local cache for group \"%s\"." #~ msgstr "" #~ "Pan ha saltato %d intestazioni danneggiate dalla cache locale del gruppo " #~ "\"%s\"." #~ msgid "You may want to empty this group and download fresh headers." #~ msgstr "Forse conviene svuotare il gruppo e scaricare nuove intestazioni." #~ msgid "The group will not be saved -- can't create file \"%s\"" #~ msgstr "Il gruppo non verrà salvato -- impossibile creare il file \"%s\"" #~ msgid "Unable to save headers for group \"%s\" - is the disk full?" #~ msgstr "" #~ "Impossibile salvare le intestazioni del gruppo \"%s\" - il disco è forse " #~ "pieno?" #~ msgid "(No Group)" #~ msgstr "(Nessun Gruppo)" #~ msgid "" #~ "INFORMATION: Please be aware that posts to \"%s\" will not appear until " #~ "approved by the group's moderator." #~ msgstr "" #~ "INFORMAZIONE: Nota che gli invii a \"%s\" non apparirà finché non " #~ "approvato dal moderatore del gruppo" #~ msgid "ERROR: invalid address \"%s\"" #~ msgstr "ERRORE: indirizzo non valido \"%s\"" #~ msgid "ERROR: Must have one author in From: line" #~ msgstr "ERRORE: Ci deve essere un autore sulla riga From:" #~ msgid "Imported %d groups (%d new) from \"%s\"" #~ msgstr "Importati %d gruppi (%d nuovi) da \"%s\"" #~ msgid "Exported %d groups (%d subscribed) to \"%s\"" #~ msgstr "Esportati %d gruppi (%d sottoscritti) su \"%s\"" #~ msgid "Imported %d lines from Gnome config file" #~ msgstr "Importate %d righe dal file di configurazione di Gnome" #~ msgid "%s does not appear to be a valid datafile" #~ msgstr "%s non sembra essere un file di dati valido" #~ msgid "Error converting string \"%*s\" to utf8: %d - %s" #~ msgstr "Errore convertendo la stringa \"%*s\" in utf8:%d - %s" #~ msgid "A newsreader for GNOME" #~ msgstr "Un lettore di news per GNOME." #~ msgid "Programmer" #~ msgstr "Programmatore" #~ msgid "Programmer & Documentation" #~ msgstr "Programmatore & Documentazione" #~ msgid "Project Originator, Programmer" #~ msgstr "Fondatore Progetto, Programmatore" #~ msgid "Programmer, 0.6 - 0.7" #~ msgstr "Programmatore, 0.6 - 0.7" #~ msgid "" #~ "Pan %s Translations\n" #~ "%s\n" #~ "\n" #~ "Pan %s Code or Patches\n" #~ "%s\n" #~ "\n" #~ "Pan %s Suggestions and Testing\n" #~ "%s\n" #~ "\n" #~ "Contributors to previous versions are listed at\n" #~ "http://pan.rebelbase.com/CREDITS" #~ msgstr "" #~ "Pan %s Traduzioni\n" #~ "%s\n" #~ "\n" #~ "Pan %s Codice o Patch\n" #~ "%s\n" #~ "\n" #~ "Pan %s Suggerimenti e Prove\n" #~ "%s\n" #~ "\n" #~ "Coloro che hanno contribuito alle versioni precedenti sono menzionati su\n" #~ "http://pan.rebelbase.com/CREDITS" #~ msgid "Pan: Download Headers for group `%s'" #~ msgstr "Pan: Scarica intestazioni del gruppo `%s'" #~ msgid "Pan: Download Headers" #~ msgstr "Pan: Scarica Intestazioni" #~ msgid "Download _new headers" #~ msgstr "Scarica _nuove intestazioni" #~ msgid "_Download bodies too" #~ msgstr "Scarica anche i testi" #~ msgid "/_File/_Save..." #~ msgstr "/_File/_Salva..." #~ msgid "/_File/Clea_r" #~ msgstr "/_File/Azze_ra" #~ msgid "/_File/---" #~ msgstr "/_File/---" #~ msgid "/_File/_Close" #~ msgstr "/_File/_Chiudi" #~ msgid "Pan: Status Log" #~ msgstr "Pan: Log di Stato" #~ msgid "Clear the log window" #~ msgstr "Pulisci la finestra di log." #~ msgid "Time" #~ msgstr "Tempo" #~ msgid "Log Entry" #~ msgstr "Voce del log" #~ msgid "How should you appear when posting articles?" #~ msgstr "Come dovresti comparire quando invii articoli?" #~ msgid "Your _Name:" #~ msgstr "Il tuo _Nome:" #~ msgid "Email _Address:" #~ msgstr "Indirizzo email:" #~ msgid "_Organization:" #~ msgstr "_Organizzazione:" #~ msgid "default" #~ msgstr "default" #~ msgid "What mail server should Pan use?" #~ msgstr "Quale server di posta Pan deve usare?" #~ msgid "What news server should Pan use?" #~ msgstr "Quale server di news Pan deve usare?" #~ msgid "Short _name for Pan to show:" #~ msgstr "Nome breve che Pan deve mostrare:" #~ msgid "Login" #~ msgstr "Login" #~ msgid "Server requires authori_zation" #~ msgstr "Il server richiede una autori_zzazione" #~ msgid "Pan Setup Wizard" #~ msgstr "Auto Configurazione di Pan" #~ msgid "Thank you for trying Pan!" #~ msgstr "Grazie per aver provato Pan!" #~ msgid "" #~ "Thank you for trying Pan!\n" #~ " \n" #~ "If you are new to Usenet,\n" #~ "%s\n" #~ "is a starting point to see what Usenet is,\n" #~ "where to find a free news server,\n" #~ "and how to use Pan.\n" #~ " \n" #~ "Since this is your first time running Pan,\n" #~ "we'll need to gather some information.\n" #~ msgstr "" #~ "Grazie per aver provato Pan!\n" #~ " \n" #~ "Se non conosci Usenet,\n" #~ "%s\n" #~ "è un punto di partenza per capire cosa sia Usenet,\n" #~ "dove trovare un server di news gratuito,\n" #~ "e come usare Pan.\n" #~ " \n" #~ "Poiché è la prima volta che utilizzi Pan,\n" #~ " c'è bisogno di alcune informazioni.\n" #~ msgid "About You" #~ msgstr "A proposito di Te" #~ msgid "News Server" #~ msgstr "Server di news" #~ msgid "Ready!" #~ msgstr "Pronto!" #~ msgid "" #~ "You have successfully entered all of\n" #~ "the information required to set up Pan.\n" #~ "\n" #~ "To save these settings, click Save." #~ msgstr "" #~ "Hai inserito con successo tutte le\n" #~ "informazioni richieste per configurare Pan.\n" #~ "\n" #~ "Per salvare queste impostazioni, fai click su Salva." #~ msgid "License" #~ msgstr "Licenza" #~ msgid "Authors" #~ msgstr "Autori" #~ msgid "Thanks to" #~ msgstr "Grazie a" #~ msgid " (No conditions -- no articles will match)" #~ msgstr " (Nessuna condizione -- nessun articolo combacierà)" #~ msgid " (No conditions -- all articles will match)" #~ msgstr " (Nessuna condizione -- tutti gli articoli combacieranno)" #~ msgid "Pan: Edit Filter" #~ msgstr "Pan: Modifica Filtro" #~ msgid "Filter name: " #~ msgstr "Nome filtro:" #~ msgid "Show in Filter Menu" #~ msgstr "Mostra nel Menu Filtri" #~ msgid "Move the selected line up one line" #~ msgstr "Muovi la riga seleziona su di una riga" #~ msgid "Move the selected line down one line" #~ msgstr "Muovi la riga seleziona giù di una riga" #~ msgid "Invert" #~ msgstr "Inverti" #~ msgid "All Of" #~ msgstr "Tutti di" #~ msgid "Any Of" #~ msgstr "Uno qualunque di" #~ msgid "Delete the selected line" #~ msgstr "Elimina la riga selezionata" #~ msgid "Add New Line to the Filter" #~ msgstr "Aggiungi una nuova riga al filtro" #~ msgid "New Filter Line" #~ msgstr "Nuovo Riga del Filtro" #~ msgid "does not start with" #~ msgstr "non comincia con" #~ msgid "does not match regular expression" #~ msgstr "non combacia con l'espressione regolare" #~ msgid "Article h_as" #~ msgstr "L'articolo ha" #~ msgid "Incomplete Attachments" #~ msgstr "Allegato Incompleto" #~ msgid "No Attachments" #~ msgstr "Nessun Allegato" #~ msgid "Article _is" #~ msgstr "L'articolo è" #~ msgid "New" #~ msgstr "Nuovo" #~ msgid "Unread" #~ msgstr "Non Letto" #~ msgid "Read" #~ msgstr "Letto" #~ msgid "Cached" #~ msgstr "in cache" #~ msgid "Posted by Me" #~ msgstr "Spedito da me" #~ msgid "Article has at _least N lines:" #~ msgstr "L'articolo ha a_lmeno N righe:" #~ msgid "Article _score is at least" #~ msgstr "Il punteggio dell'articolo è almeno" #~ msgid "Watched" #~ msgstr "Seguito" #~ msgid "High" #~ msgstr "Alto" #~ msgid "Medium" #~ msgstr "Medio" #~ msgid "Zero" #~ msgstr "Zero" #~ msgid "Low" #~ msgstr "Basso" #~ msgid "Ignored" #~ msgstr "Ignorato" #~ msgid "" #~ "This filter is still used by the following rules:\n" #~ "%s\n" #~ "Please remove this dependency first." #~ msgstr "" #~ "Questo filtro è ancora usato dalle seguenti regole:\n" #~ "%s\n" #~ "Rimuovere questa dipendenza prima." #~ msgid "Pan: Filters" #~ msgstr "Pan: Filtri" #~ msgid "Filters" #~ msgstr "Filtri" #~ msgid "Add a new filter" #~ msgstr "Aggiungi un nuovo filtro" #~ msgid "Edit the selected filter" #~ msgstr "Elimina il filtro selezionato" #~ msgid "Remove the selected filter" #~ msgstr "Elimina il filtro selezionato." #~ msgid "NONE OF:" #~ msgstr "NESSUNO DI:" #~ msgid "ALL OF:" #~ msgstr "TUTTE DI:" #~ msgid "ANY OF:" #~ msgstr "ALMENO UNA DI:" #~ msgid "Article has complete attachments" #~ msgstr "l'articolo ha allegati completi" #~ msgid "Article does not have incomplete attachments" #~ msgstr "l'articolo non ha allegati incompleti" #~ msgid "Article has incomplete attachments" #~ msgstr "l'articolo ha allegati incompleti" #~ msgid "Article has complete or incomplete attachments" #~ msgstr "l'articolo ha allegati completi o incompleti" #~ msgid "Article is %d or more bytes long" #~ msgstr "L'articolo è lungo %d byte o più" #~ msgid "Article is crossposted to at least %d groups" #~ msgstr "L'articolo è stato inviato ad almeno %d gruppi" #~ msgid "Article was posted in the last %d days" #~ msgstr "L'articolo è stato inviato negli ultimi %d giorni" #~ msgid "Article is %d or more lines long" #~ msgstr "L'articolo ha più di %d righe" #~ msgid "Article is unread or old" #~ msgstr "L'articolo non è stato letto o è vecchio" #~ msgid "Article is new" #~ msgstr "L'articolo è nuovo" #~ msgid "Article is new or read" #~ msgstr "L'articolo è nuovo o letto" #~ msgid "Article is new or unread" #~ msgstr "L'articolo è nuovo o non è stato letto" #~ msgid "Xref" #~ msgstr "Xref" #~ msgid "watched" #~ msgstr "seguito" #~ msgid "high" #~ msgstr "alto" #~ msgid "medium" #~ msgstr "medio" #~ msgid "zero" #~ msgstr "zero" #~ msgid "low" #~ msgstr "basso" #~ msgid "ignored" #~ msgstr "ignorato" #~ msgid "Score filter will match anything" #~ msgstr "Il filtro sul punteggio combacierà con tutto" #~ msgid "Score filter will match nothing" #~ msgstr "Il filtro sul punteggio non combacierà con nulla" #~ msgid "Article score one of: " #~ msgstr "L'articolo ha un punteggio per uno di:" #~ msgid "Wrote filters to \"%s\"" #~ msgstr "Filtri scritti su \"%s\"" #~ msgid "expired old score" #~ msgstr "vecchio punteggio scaduto" #~ msgid "skipping unsupported criteria" #~ msgstr "saltando criteri non supportati" #~ msgid "unexpected line." #~ msgstr "riga non prevista." #~ msgid "Error reading file: " #~ msgstr "Errore leggendo il file: " #~ msgid "skipping score because it has no criteria" #~ msgstr "salto punteggio visto che non presenta criteri" #~ msgid "" #~ "Loaded %d score entries in %d sections in %.1f seconds (%.0f entries/sec)" #~ msgstr "" #~ "Caricati %d voci di punteggi in %d sezioni in %.1f secondi (%.0f voci/sec)" #~ msgid "Error score to file \"%s\": %s" #~ msgstr "Errore punteggio del file \"%s\": %s." #~ msgid "Scored %d entries in %.1f seconds (%.0f articles/sec)" #~ msgstr "Assegnati punteggi a %d voci in %.1f secondi (%.0f articoli/sec)" #~ msgid "Error removing scorefile entry: %s" #~ msgstr "Errore eliminando la voce dal file dei punteggi: %s." #~ msgid "Scorefile entry removed -- old scorefile \"%s\" backed up as \"%s\"" #~ msgstr "" #~ "Voce rimossa dal file dei punteggi -- il vecchio file dei punteggi \"%s\" " #~ "è stato salvato come \"%s\"" #~ msgid "Invalid folder name: \"%s\"" #~ msgstr "Nome cartella non valido: \"%s\"" #~ msgid "Please don't begin folders with \"pan.\"; it confuses me." #~ msgstr "" #~ "Per favore, non chiamare le cartelle iniziando con \"pan.\"; mi confonde." #~ msgid "Create New Folder" #~ msgstr "Crea una nuova cartella" #~ msgid "New Folder Name:" #~ msgstr "Nome Nuova Cartella:" #~ msgid "/Get New Headers and _Bodies" #~ msgstr "Scarica nuove intestazioni e testi" #~ msgid "/More Download _Options..." #~ msgstr "/Ulteriori _Opzioni di Download" #~ msgid "/Refresh Article _Counts" #~ msgstr "/Aggiorna Numero Arti_coli" #~ msgid "/Group _Properties..." #~ msgstr "/_Proprietà del Gruppo..." #~ msgid " (Moderated)" #~ msgstr " (Moderato)" #~ msgid " (Read-Only)" #~ msgstr " (Sola Lettura)" #~ msgid "Subscribed" #~ msgstr "Sottoscritti" #~ msgid "All Groups" #~ msgstr "Tutti i Gruppi" #~ msgid "" #~ "We don't have a list of groups for \"%s\".\n" #~ "Shall we get download it?" #~ msgstr "" #~ "Non è presente una lista dei gruppi per \"%s\".\n" #~ "Si vuole scaricarla?" #~ msgid "Total" #~ msgstr "Totali" #~ msgid "Description" #~ msgstr "Descrizione" #~ msgid "" #~ "Type in a group search string and press ENTER. Wildcards are allowed." #~ msgstr "" #~ "Digitare una stringa di ricerca per i gruppi e premere ENTER. I meta-" #~ "caratteri sono permessi (?,*,ecc.) " #~ msgid "" #~ msgstr "" #~ msgid "X-Newsreader" #~ msgstr "X-Newsreader" #~ msgid "X-Mailer" #~ msgstr "X-Mailer" #~ msgid "User-Agent" #~ msgstr "User-Agent" #~ msgid "News server connection count: %d" #~ msgstr "Conteggio connessioni al server di news: %d" #~ msgid "The Task Manager is Empty" #~ msgstr "Il Gestore dei Processi è vuoto" #~ msgid "Pan is Online" #~ msgstr "Pan è online" #~ msgid "Connection" #~ msgstr "Connessione" #~ msgid "Post" #~ msgstr "Spedisci" #~ msgid "Get" #~ msgstr "Scarica" #~ msgid "Mine" #~ msgstr "Miei" #~ msgid "Show Only Replies to My Articles" #~ msgstr "Mostra solo le risposte ai miei articoli" #~ msgid "Net" #~ msgstr "Rete" #~ msgid "/_File/Save A_ttachments" #~ msgstr "/_File/Salva Allega_ti" #~ msgid "/_File/_Save Attachments As..." #~ msgstr "/_File/_Salva Allegati Come..." #~ msgid "/_File/_Cancel Last Task" #~ msgstr "/_File/Elimina l'ultimo pro_cesso" #~ msgid "/_File/_New Folder..." #~ msgstr "/_File/_Nuova Cartella..." #~ msgid "/_File/Delete _Folder..." #~ msgstr "/_File/Elimina Cartella..." #~ msgid "/_File/_Edit Article in Folder" #~ msgstr "/_File/Modifica Articolo nella Cart_ella" #~ msgid "/_File/E_xit" #~ msgstr "/_File/Esci" #~ msgid "/_Edit/Select all" #~ msgstr "/Modifica/Seleziona tutto" #~ msgid "/_Edit/Deselect all" #~ msgstr "/Modifica/Deseleziona tutti" #~ msgid "/_Edit/---" #~ msgstr "/Modifica/---" #~ msgid "/_Edit/Select all _Groups" #~ msgstr "/Modifica/Seleziona tutti i _Gruppi" #~ msgid "/_Edit/Add S_ubscribed to Selection" #~ msgstr "/Modifica/Aggiungi Sottoscritti alla Selezione" #~ msgid "/_Edit/Deselect all G_roups" #~ msgstr "/Modifica/Deseleziona tutti i G_ruppi" #~ msgid "/_Edit/_Find..." #~ msgstr "/Modifica/Trova..." #~ msgid "/_Edit/Find _Next" #~ msgstr "/Modifica/Trova Successivo" #~ msgid "/_View/---" #~ msgstr "/_Visualizza/---" #~ msgid "/_View/Thr_ead Header Pane" #~ msgstr "/_Visualizza/Organizza Pannello Int_estazioni" #~ msgid "/_View/_Rot13 Selected Text" #~ msgstr "/_Visualizza/Applica _Rot13 al Testo Selezionato" #~ msgid "/_View/E_xpand Selected Threads" #~ msgstr "/_Visualizza/Espandi le Discussioni Selezionate" #~ msgid "/_View/C_ollapse Selected Threads" #~ msgstr "/_Visualizza/C_ollassa le Discussioni Selezionate" #~ msgid "/Filte_r/Show Matching Articles and References" #~ msgstr "/Filt_ri/Mostra gli articoli che combaciano e i riferimenti" #~ msgid "/Filte_r/Show Threads with Matching Articles" #~ msgstr "/Filt_ri/Mostra discussioni con articoli che combaciano" #~ msgid "/Filte_r/---" #~ msgstr "/Filt_ri/---" #~ msgid "/Filte_r/Match _New Articles" #~ msgstr "/Filt_ri/Controlla _Nuovi articoli" #~ msgid "/Filte_r/Match Articles which are _Cached" #~ msgstr "/Filt_ri/Controlla gli articoli che sono nella _cache" #~ msgid "/Filte_r/Match Articles which are not Cache_d" #~ msgstr "/Filt_ri/Controlla gli articoli che non sono nella cache" #~ msgid "/Filte_r/Match Articles with Complete _Attachments" #~ msgstr "/Filt_ri/Controlla gli articoli che hanno _allegati completi" #~ msgid "/Filte_r/Match Articles with I_ncomplete Attachments" #~ msgstr "/Filt_ri/Controlla gli articoli che hanno allegati i_ncompleti" #~ msgid "/Filte_r/Match Articles with No A_ttachments" #~ msgstr "/Filt_ri/Controlla gli articoli che non hanno allegati" #~ msgid "/Filte_r/Match Articles Written by _Me" #~ msgstr "/Filt_ra/Trova articoli scritti da _me" #~ msgid "/Filte_r/Match Articles Written by _Other People" #~ msgstr "/Filt_ra/Trova articoli scritti da altre pers_one" #~ msgid "/Filte_r/Match Articles with a Score of 9999 or higher" #~ msgstr "/Filt_ri/Trova gli articoli con un punteggio di 9999 o superiore" #~ msgid "/Filte_r/Match Articles with a Score between 5000 and 9998" #~ msgstr "/Filt_ri/Trova gli articoli con un punteggio tra 5000 e 9998" #~ msgid "/Filte_r/Match Articles with a Score between 1 and 4999" #~ msgstr "/Filt_ri/Trova gli articoli con un punteggio tra 1 e 4999" #~ msgid "/Filte_r/Match Articles with a Score of 0" #~ msgstr "/Filt_ri/Trova gli articoli con un punteggio di 0" #~ msgid "/Filte_r/Match Articles with a Score between -9998 and -1" #~ msgstr "/Filt_ri/Trova gli articoli con un punteggio tra 9998 e 1" #~ msgid "/Filte_r/Match Articles with a Score of -9999 or lower" #~ msgstr "/Filt_ri/Trova gli articoli con un punteggio di 9999 o minore" #~ msgid "/_Go/Read More" #~ msgstr "/Vai/Leggi ancora" #~ msgid "/_Go/---" #~ msgstr "/Vai/---" #~ msgid "/_Go/_Next Unread Article" #~ msgstr "/Vai a/Prossimo Articolo _Non Letto" #~ msgid "/_Go/Next High-_Score Article" #~ msgstr "/Vai a/Prossimo Articolo con alto punteggio" #~ msgid "/_Go/Previous Article _Read" #~ msgstr "/Vai a/Articolo già letto p_recedente" #~ msgid "/_Go/T_op of Thread" #~ msgstr "/Vai a/Inizi_o della Discussione" #~ msgid "/_Servers" #~ msgstr "/_Server" #~ msgid "/_Servers/Get List of _All Groups" #~ msgstr "/_Server/Scarica la list_a di tutti i Gruppi" #~ msgid "/_Servers/Get List of _New Groups" #~ msgstr "/_Server/Scarica la lista dei _Nuovi Gruppi" #~ msgid "/_Servers/---" #~ msgstr "/_Server/---" #~ msgid "/_Newsgroups/Mark Group _Read" #~ msgstr "/Gruppi di discussio_ne/Segna il G_ruppo come già Letto" #~ msgid "/_Newsgroups/_Delete Group's Articles" #~ msgstr "/Gruppi di discussio_ne/Elimina gli articoli del gruppo" #~ msgid "/_Newsgroups/---" #~ msgstr "/Gruppi di discussio_ne/---" #~ msgid "/_Newsgroups/Get New _Headers" #~ msgstr "/Gruppi di discussio_ne/Scarica nuove intestazioni" #~ msgid "/_Newsgroups/Get New Headers and _Bodies" #~ msgstr "/Gruppi di discussio_ne/Scarica nuove intestazioni e testi" #~ msgid "/_Newsgroups/More Download _Options..." #~ msgstr "/Gruppi di discussio_ne/Altre _Opzioni di download..." #~ msgid "/_Newsgroups/Refresh Article _Counts" #~ msgstr "/Gruppi di discussio_ne/Aggiorna Numero Arti_coli" #~ msgid "/_Newsgroups/Get New Headers in Subscribed _Groups" #~ msgstr "" #~ "/Gruppi di discusio_ne/Scarica le nuove intestazioni nei _Gruppi " #~ "Sottoscritti" #~ msgid "/_Newsgroups/_Subscribe" #~ msgstr "/Gruppi di discussio_ne/_Sottoscrivi" #~ msgid "/_Newsgroups/_Unsubscribe" #~ msgstr "/Gruppi di discussio_ne/Cancella Iscrizione" #~ msgid "/_Newsgroups/Group _Properties..." #~ msgstr "/Gruppi di discussio_ne/_Proprietà del Gruppo..." #~ msgid "/_Newsgroups/Dele_te Group" #~ msgstr "/Gruppi di discussio_ne/Elimina Gruppo" #~ msgid "/_Articles/Mark _Read" #~ msgstr "/_Articoli/Segna come letto" #~ msgid "/_Articles/Mark _Unread" #~ msgstr "/_Articoli/Segna come non letto" #~ msgid "/_Articles/---" #~ msgstr "/_Articoli/---" #~ msgid "/_Articles/D_ownload Flagged" #~ msgstr "/_Articoli/Scarica Marcati" #~ msgid "/_Articles/_Flag" #~ msgstr "/_Articoli/Marca" #~ msgid "/_Articles/U_nflag" #~ msgstr "/_Articoli/Smarca" #~ msgid "/_Articles/Down_load" #~ msgstr "/_Articoli/Scarica" #~ msgid "/_Articles/_Watch Thread" #~ msgstr "/_Articoli/Segui Discussione" #~ msgid "/_Articles/_Ignore Thread" #~ msgstr "/_Articoli/_Ignora Discussione" #~ msgid "/_Articles/_View Article's Scores" #~ msgstr "/_Articoli/_Visualizza punteggio degli articoli" #~ msgid "/_Articles/_Cancel..." #~ msgstr "/_Articoli/_Cancella..." #~ msgid "/_Articles/Supersed_e..." #~ msgstr "/_Articoli/Sostituisci..." #~ msgid "/_Articles/_Delete" #~ msgstr "/_Articoli/Cancella" #~ msgid "/_Post/_Post to Newsgroup" #~ msgstr "/Spedisci/S_pedisci al gruppo" #~ msgid "/_Post/_Reply by Email" #~ msgstr "/Spedisci/_Rispondi tramite Email" #~ msgid "/_Post/Followup _and Reply" #~ msgstr "/Spedisci/Follow-Up e Rispondi" #~ msgid "/_Post/For_ward Article by Email" #~ msgstr "/Spedisci/Inoltra un articolo tramite Email" #~ msgid "/_Post/---" #~ msgstr "/Spedisci/---" #~ msgid "/_Post/Send Pending _Messages" #~ msgstr "/S_pedisci/Invia i _Messaggi in coda" #~ msgid "/_Tools" #~ msgstr "/S_trumenti" #~ msgid "/_Tools/---" #~ msgstr "/S_trumenti/---" #~ msgid "/_Tools/Custom _Filters..." #~ msgstr "/S_trumenti/_Filtri personalizzati..." #~ msgid "/_Tools/_Rules..." #~ msgstr "/S_trumenti/_Regole..." #~ msgid "/_Tools/_Create Score..." #~ msgstr "/S_trumenti/_Crea punteggi..." #~ msgid "/_Tools/_Edit Scorefile..." #~ msgstr "/S_trumenti/Modifica File dei punteggi" #~ msgid "/_Tools/_Log Viewer..." #~ msgstr "/S_trumenti/Visualizzatore del _Log..." #~ msgid "/_Help" #~ msgstr "/Aiuto" #~ msgid "/_Help/Online Users` _Manual..." #~ msgstr "/Aiuto/_Manuale Utente Online..." #~ msgid "/_Help/---" #~ msgstr "/Aiuto/---" #~ msgid "/_Help/_Feedback..." #~ msgstr "/Aiuto/Invia Commenti..." #~ msgid "Make this the default profile for _news" #~ msgstr "Attiva questo profilo come default per le _news" #~ msgid "Make this the default profile for _mail" #~ msgstr "Attiva questo profilo come default per la posta" #~ msgid "The domain name to use for Message-ID generation" #~ msgstr "Il nome di dominio da usare per la generazione del Message-ID" #~ msgid "The default charset set for articles posted with this profile" #~ msgstr "" #~ "Il set di caratteri di default per gli articoli inviati con questo profilo" #~ msgid "Pan: Edit Profile" #~ msgstr "Pan: Modifica Profilo" #~ msgid "_User Profile" #~ msgstr "Profilo _Utente" #~ msgid "Cus_tom Headers" #~ msgstr "Intestazioni Personalizza_te" #~ msgid "" #~ "Your real name contained double quotes.\n" #~ "Converting into single quotes." #~ msgstr "" #~ "Il tuo vero nome conteneva delle virgolette.\n" #~ "Conversione in apici." #~ msgid "You need at least one profile" #~ msgstr "E' necessario avere almeno un profilo" #~ msgid "Incomplete Profile." #~ msgstr "Profilo incompleto." #~ msgid "Use the selected profile to create a new profile" #~ msgstr "Usa il profilo selezionato per creare un nuovo profilo" #~ msgid "Wrote profiles to \"%s\"" #~ msgstr "Profili scritti su \"%s\"" #~ msgid "Post anyway, despite these problems?" #~ msgstr "Vuoi inviare comunque, nonostante questi problemi?" #~ msgid "Post anyway, despite this problem?" #~ msgstr "Inviare comunque, nonostante questo problema?" #~ msgid "/_File/_Save Changes" #~ msgstr "/_File/_Salva le modifiche" #~ msgid "/_File/Save _As..." #~ msgstr "/_File/S_alva con nome..." #~ msgid "/_Edit/Cu_t" #~ msgstr "/Modifica/_Taglia" #~ msgid "/_Edit/_Copy" #~ msgstr "/Modifica/_Copia" #~ msgid "/_Edit/_Paste" #~ msgstr "/Modifica/Incolla" #~ msgid "/_Edit/_Rot13 Selected Text" #~ msgstr "/Modifica/Applica _Rot13 al Testo Selezionato" #~ msgid "/_Edit/Edit with E_xternal Editor" #~ msgstr "/Modifica/Modifica tramite un Editor Esterno" #~ msgid "/_File/Send Now" #~ msgstr "/_File/Invia Adesso" #~ msgid "/_File/Send Later" #~ msgstr "/_File/Invia più Tardi" #~ msgid "Send Later" #~ msgstr "Invia più Tardi" #~ msgid "Rewrap" #~ msgstr "Re-imposta margini" #~ msgid "Turn line wrap on/off" #~ msgstr "Attiva/Disattiva a capo automatico" #~ msgid "Edit with an External Editor" #~ msgstr "Modifica tramite un Editor Esterno" #~ msgid "Mime (single-part posts only)" #~ msgstr "Mime (solo per invii mono-parte)" #~ msgid " (%lu lines in 1 article)" #~ msgstr " (%lu righe in 1 articolo)" #~ msgid "UUEncoded (universally accepted)" #~ msgstr "Codificato UUEnc (accettato universalmente)" #~ msgid "yEnc (30 percent smaller than UUEnc but less universal)" #~ msgstr "yEnc (30 per cento più piccolo dell'UUEnc ma meno universale)" #~ msgid "Select the file to attach." #~ msgstr "Selezionare il file da allegare." #~ msgid "Files to Attach" #~ msgstr "File da allegare" #~ msgid "Kilobytes" #~ msgstr "Kilobyte" #~ msgid "Add a File to the Attachment List" #~ msgstr "Aggiungi un file alla lista degli allegati" #~ msgid "Remove a File from the Attachment List" #~ msgstr "Elimina un file dalla lista degli allegati" #~ msgid "Estimated Article Size" #~ msgstr "Dimensione stimata dell'articolo" #~ msgid "Organization" #~ msgstr "Organizzazione" #~ msgid "The organization you're associated with." #~ msgstr "L'organizzazione di cui fai parte." #~ msgid "Charset" #~ msgstr "Set di caratteri" #~ msgid "" #~ "Could not convert \"%s\" to UTF-8. Article may not display correctly." #~ msgstr "" #~ "Impossibile convertire \"%s\" in UTF-8. L'articolo potrebbe non essere " #~ "mostrato correttamente." #~ msgid "\"Followup-To: poster\": sending email to author." #~ msgstr "\"Followup-To: poster\": invio email all'autore." #~ msgid "\"Followup-To:\" contains an email address: sending email to author." #~ msgstr "" #~ "\"Followup-To:\" contiene un indirizzo email: invio email all'autore." #~ msgid "New Message" #~ msgstr "Nuovo Messaggio" #~ msgid "" #~ "ERROR: message uses characters not specified in charset '%s' - possibly " #~ "use '%s' instead?" #~ msgstr "" #~ "ERRORE: il messaggio usa caratteri non specificati nel set di caratteri " #~ "'%s' - usare '%s' invece? " #~ msgid "Save message to file" #~ msgstr "Salva questo messaggio su un file" #~ msgid "The command line was: %s" #~ msgstr "La riga di comando era: %s" #~ msgid "Handshake: %s" #~ msgstr "Negoziazione: %s" #~ msgid "NNTP handshake failed: %s" #~ msgstr "Negoziazione NNTP fallita: %s" #~ msgid "Handshake failed: %s" #~ msgstr "Negoziazione fallita: %s" #~ msgid "Authentication failed: bad handshake for SPA password" #~ msgstr "Autenticazione fallita: handshake errato per la password SPA" #~ msgid "Bad SPA handshake: %s" #~ msgstr "Handshake SPA errato: %s" #~ msgid "Authentication failed: need a password" #~ msgstr "Autenticazione fallita: serve una password" #~ msgid "Authentication failed: %s" #~ msgstr "Autenticazione fallita: %s" #~ msgid "Unsupported authentication mechanism: %s" #~ msgstr "Meccanismo di autenticazione non supportato: %s" #~ msgid "No supported authentication mechanism" #~ msgstr "Meccanismo di autenticazione non supportato" #~ msgid "MODE READER check failed: %s" #~ msgstr "Check MODE READER fallito: %s" #~ msgid "Posting failed. Server said: %s" #~ msgstr "Invio fallito. Il server ha risposto: %s" #~ msgid "Posting complete. Server said: %s" #~ msgstr "Invio completato. Il server ha risposto: %s" #~ msgid "\"stay connected\" sent to %s" #~ msgstr "\"rimani connesso\" inviato a %s" #~ msgid "No articles found for group \"%s\"" #~ msgstr "Nessun articolo trovato nel gruppo \"%s\"" #~ msgid "Getting header list failed: %s" #~ msgstr "Recupero lista intestazioni fallito: %s" #~ msgid "Corrupt header skipped: %s" #~ msgstr "Intestazione danneggiata saltata: %s" #~ msgid "Getting %d of %d" #~ msgstr "Recupero %d di %d in corso" #~ msgid "Select Color" #~ msgstr "Seleziona Colore:" #~ msgid "_Browse..." #~ msgstr "Sfoglia..." #~ msgid "Font Family" #~ msgstr "Font Family" #~ msgid " --version Prints Pan's version number" #~ msgstr " --version Stampa il numero di versione di Pan" #~ msgid " --help Prints this message and exits" #~ msgstr " --help Stampa questo messaggio ed esce" #~ msgid "" #~ " --debug Turns on the most commonly-used options for a bug " #~ "report" #~ msgstr "" #~ " --debug Attiva le opzioni comunemente usate per un bug-report" #~ msgid "" #~ " --mute Debugging tool to send new posts to console, not the " #~ "server" #~ msgstr "" #~ " --mute Strumento di debug per inviare nuovi messaggi alla " #~ "console, non al server" #~ msgid " --debug-cache Print debugging messages for the article cache" #~ msgstr "" #~ " --debug-cache Stampa i messaggi di debug per la cache degli articoli" #~ msgid "" #~ " --debug-sockets Print debugging messages when talking to the news " #~ "server" #~ msgstr "" #~ " --debug-sockets Stampa i messaggi di debug durante la comunicazione " #~ "con il server news" #~ msgid "" #~ " --debug-queue Print debugging messages related to managing tasks" #~ msgstr "" #~ " --debug-queue Stampa i messaggi di debug relativi alla gestione dei " #~ "processi" #~ msgid "" #~ " --debug-decode Print debugging messages related to decoding " #~ "attachments" #~ msgstr "" #~ " --debug-decode Stampa i messaggi di debug relativi alla decodidica " #~ "degli allegati" #~ msgid " --debug-newsrc Print debugging messages related to .newsrc files" #~ msgstr "" #~ " --debug-newsrc Stampa i messaggi di debug relativi ai file .newsrc" #~ msgid "" #~ " --debug-gnksa Print debugging messages related to gnksa correctness" #~ msgstr "" #~ " --debug-gnksa Stampa i messaggi di debug relativi alla correttezza " #~ "gnksa" #~ msgid "" #~ " --debug-trace Print debugging messages when entering/leaving " #~ "functions" #~ msgstr "" #~ " --debug-trace Stampa messaggi di debug entrando/uscendo dalle " #~ "funzioni" #~ msgid "" #~ " --debug-lock Print debugging messages related to threaded gui locks" #~ msgstr "" #~ " --debug-lock Stampa i messaggi di debug relativi ai lock dei thread-" #~ "gui" #~ msgid "" #~ " --debug-object Print debugging messages related to refcounted objects" #~ msgstr "" #~ " --debug-object Stampa i messaggi di debug relativi agli oggetti " #~ "refcounted" #~ msgid "Error writing to socket." #~ msgstr "Errore in scrittura sul socket." #~ msgid "pan.sent" #~ msgstr "pan.inviati" #~ msgid "pan.sendlater" #~ msgstr "pan.dainviare" #~ msgid "Spellchecking disabled: gtkspell_init() failed with status %d" #~ msgstr "" #~ "Controllo ortografico disabilitato: gtkspell_init() fallito con stato %d" #~ msgid "Restored %d tasks from last session" #~ msgstr "Ripristinati %d processi dall'ultima sessione" #~ msgid "" #~ "Some tasks were still queued the last time Pan exited. Do you want to " #~ "resume those tasks?" #~ msgstr "" #~ "Alcuni processi erano ancora in coda l'ultima volta che Pan è stato " #~ "chiuso. Vuoi riprendere quei processi?" #~ msgid "_Resume" #~ msgstr "_Riprendi" #~ msgid "" #~ "%a - abbreviated weekday name\n" #~ "%A - full weekday name\n" #~ "%b - abbreviated month name\n" #~ "%B - full month name\n" #~ "%c - local date & time\n" #~ "%d - day of the month\n" #~ "%H - hour (24-hour clock)\n" #~ "%I - hour (12-hour clock)\n" #~ "%j - day of the year (001-366)\n" #~ "%m - month (01-12)\n" #~ "%M - minute (00-59)\n" #~ "%p - local equivalent of AM/PM\n" #~ "%S - second (00-61)\n" #~ "%x - local date\n" #~ "%X - local time\n" #~ "%y - two-digit year\n" #~ "%Y - four-digit year\n" #~ "%% - %" #~ msgstr "" #~ "%a - nome abbreviato del giorno della settimana\n" #~ "%A - nome completo del giorno della settimanaay name\n" #~ "%b - nome abbreviato del mese\n" #~ "%B - nome completo del mese\n" #~ "%c - data & ora locali\n" #~ "%d - giorno del mese\n" #~ "%H - ora (orologio a 24-ore)\n" #~ "%I - ora (orologio a 12-ore)\n" #~ "%j - giorno dell'anno (001-366)\n" #~ "%m - mese (01-12)\n" #~ "%M - minuto (00-59)\n" #~ "%p - equivalente locale di AM/PM\n" #~ "%S - secondi (00-61)\n" #~ "%x - data locale\n" #~ "%X - ora locale\n" #~ "%y - anno su due cifre\n" #~ "%Y - anno su quattro cifre\n" #~ "%% - %" #~ msgid "Color the \"sub_ject\" column" #~ msgstr "Colora la colonna \"oggetto\"." #~ msgid "Articles with a Score of 9999 or higher:" #~ msgstr "Articoli con un punteggio di 9999 o maggiore:" #~ msgid "Articles with a Score between 5000 and 9998" #~ msgstr "Articoli conun punteggio tra 5000 e 9998" #~ msgid "Articles with a Score between 1 and 4999" #~ msgstr "Articoli con un punteggio tra 1 e 4999" #~ msgid "Articles with a Score between -9998 and -1" #~ msgstr "Articoli con un punteggio tra -9998 e -1" #~ msgid "Quoted Text _1:" #~ msgstr "Testo Citato _1:" #~ msgid "Quoted Text _2:" #~ msgstr "Testo Citato _2:" #~ msgid "Pane Order" #~ msgstr "Ordine Pannelli" #~ msgid "Action State" #~ msgstr "Stato Azione" #~ msgid "Article State" #~ msgstr "Stato Articolo" #~ msgid "Column Layout" #~ msgstr "Layout PColonna" #~ msgid "When a Followup subject header changes, show as _new thread" #~ msgstr "" #~ "Quando un'intestazione di followup cambia oggetto, mostralo come _nuova " #~ "discussione" #~ msgid "E_xpand all threads by default" #~ msgstr "Espandi tutte le discussioni per default" #~ msgid "Show complete _multipart posts as a single article" #~ msgstr "Mostra gli articoli _multiparte completi come un singolo articolo" #~ msgid "Date Forma_t:" #~ msgstr "Forma_to data:" #~ msgid "Show \"%s\" header" #~ msgstr "Mostra intestazione \"%s\"" #~ msgid "Newsreader" #~ msgstr "Lettore di news" #~ msgid "Characters denoting _quoted text:" #~ msgstr "Caratteri che indicano testo citato:" #~ msgid "Download new headers from s_ubscribed groups when starting Pan" #~ msgstr "" #~ "Scarica le n_uove intestazioni per i gruppi sottoscritti all'avvio di Pan" #~ msgid "" #~ "Download new headers and bod_ies from subscribed groups when starting Pan" #~ msgstr "" #~ "Scarica le nuove intestazioni e i test_i dai gruppi sottoscritti " #~ "all'avvio di Pan" #~ msgid "Download Directory" #~ msgstr "Directory di download" #~ msgid "Automatically remove _failed tasks from the task manager" #~ msgstr "" #~ "Rimuove automaticamente i processi _falliti dal Gestore dei Processi" #~ msgid "_Erase cache when exiting Pan" #~ msgstr "Svuota la cach_e uscendo da Pan" #~ msgid "Ma_ximum Cache Size (Megs):" #~ msgstr "Dimensione massima cache (Mega):" #~ msgid "_Web Browser (%s is URL):" #~ msgstr "Browser _Web (%s è l'URL):" #~ msgid "_Editor (%t is filename):" #~ msgstr "_Editor (%t è il nome del file):" #~ msgid "" #~ "Scorefile _Editor:\n" #~ "(%t is filename, %n is line number)" #~ msgstr "" #~ "_Editor File dei punteggi:\n" #~ "(%t è il nome del file, %n è il numero di riga)" #~ msgid "Score_file:" #~ msgstr "File dei punteggi:" #~ msgid "Scorefile" #~ msgstr "File dei punteggi" #~ msgid "Sending Mail" #~ msgstr "Invio Posta in corso" #~ msgid "Mail Server Add_ress:" #~ msgstr "Indi_rizzo Server di Posta:" #~ msgid "Ma_il Server Por_t:" #~ msgstr "Por_ta del Server di posta:" #~ msgid "Hea_der Pane" #~ msgstr "Pannello Intestazioni" #~ msgid "A_pps & Mail" #~ msgstr "A_pp & Posta" #~ msgid "You haven't loaded an article to print." #~ msgstr "Non hai caricato un articolo da stampare." #~ msgid "" #~ "%s\n" #~ "\n" #~ "Matches: %u\n" #~ "Group: %s\n" #~ "Rule: %s" #~ msgstr "" #~ "%s\n" #~ "\n" #~ "Combacia: %u\n" #~ "Gruppo: %s\n" #~ "Regola: %s" #~ msgid "Mark as" #~ msgstr "Segna come" #~ msgid "_Flag body for download" #~ msgstr "Marca il testo per essere scaricato" #~ msgid "_Retrieve Body" #~ msgstr "_Recupera Testo" #~ msgid "_Watch thread (highlights the thread)" #~ msgstr "Segui discussione (evidenzia la discussione)" #~ msgid "_Ignore thread (hides the thread by default)" #~ msgstr "_Ignora discussione (nascondi discussione per default)" #~ msgid "Rule applies to all newsgroups" #~ msgstr "La regola si applica a tutti i gruppi di discussione" #~ msgid "Wildcard group specification:" #~ msgstr "Specifica gruppi tramite meta-caratteri:" #~ msgid "(e.g., *anime*)" #~ msgstr "(ad es. *anime*)" #~ msgid "Rule applies to specific newsgroups:" #~ msgstr "La regola si applica a specifici gruppi:" #~ msgid "Rule applies to:" #~ msgstr "La regola si applica a:" #~ msgid "Rule Name:" #~ msgstr "Nome Regola:" #~ msgid "Apply to Incoming" #~ msgstr "Applica ai messaggi in arrivo" #~ msgid "" #~ "If enabled, this rule will be applied to headers when they are downloaded." #~ msgstr "" #~ "Se attivata questa regola sarà applicata lle intestazioni qunado verranno " #~ "scaricate." #~ msgid "New Rule" #~ msgstr "Nuova Regola" #~ msgid "Delete Articles by Bozos" #~ msgstr "Cancella Articoli degli scocciatori" #~ msgid "Applying rule to selected groups" #~ msgstr "Applicazione regola ai gruppi selezionati in corso" #~ msgid "Applying rule \"%s\" to group \"%s\"" #~ msgstr "Applicazione regola \"%s\" al gruppo \"%s\"" #~ msgid "Rules" #~ msgstr "Regole" #~ msgid "Hit Ratio" #~ msgstr "Percentuale di Successo" #~ msgid "" #~ "Apply to\n" #~ "Selected\n" #~ "Groups" #~ msgstr "" #~ "Applica ai\n" #~ "Gruppi\n" #~ "Selezionati" #~ msgid "" #~ "Apply to\n" #~ "Subscribed\n" #~ "Groups" #~ msgstr "" #~ "Applica ai\n" #~ "Gruppi\n" #~ "Sottoscritti" #~ msgid "Wrote rules to \"%s\"" #~ msgstr "Regole scritte su \"%s\"" #~ msgid "" #~ "Can't find filter \"%s\" needed by rule \"%s\", so no articles match." #~ msgstr "" #~ "Impossibile trovare il filtro \"%s\" necessario alla regola \"%s\", " #~ "quindi nessun articolo combacia." #~ msgid "_Directory:" #~ msgstr "_Directory" #~ msgid "Save Files in Directory" #~ msgstr "Salva i file nella directory" #~ msgid "Add to the _top of the Task Manager's List" #~ msgstr "Aggiungi in cima al gestore dei processi" #~ msgid "Criterion \"%s\" is selected, but empty." #~ msgstr "Criterio \"%s\" è selezionato, ma vuoto." #~ msgid "No criteria are selected." #~ msgstr "Nessun criterio è selezionato." #~ msgid "Pan: Add to Scorefile" #~ msgstr "Pan: Aggiungi al file dei punteggi" #~ msgid "Su_bject:" #~ msgstr "Oggetto:" #~ msgid "A_uthor:" #~ msgstr "A_utore:" #~ msgid "_Lines:" #~ msgstr "Righe:" #~ msgid "at least N lines long" #~ msgstr "lungo almeno N righe" #~ msgid "less than N lines long" #~ msgstr "lungo meno di N righe" #~ msgid "Chan_ge Score:" #~ msgstr "Cambia Punteggio:" #~ msgid "subtract" #~ msgstr "sottrai" #~ msgid "Lifespan" #~ msgstr "Durata" #~ msgid "Expire in N _days:" #~ msgstr "Scade in N giorni:" #~ msgid "Edit the selected score" #~ msgstr "Modifica il punteggio selezionato" #~ msgid "Newsrc" #~ msgstr "Newsrc" #~ msgid "Us_e .newsrc file" #~ msgstr "Usa il file .n_ewsrc" #~ msgid "_Filename:" #~ msgstr "Nome del _File:" #~ msgid "Select .newsrc File" #~ msgstr "Selezionare il file .newsrc" #~ msgid "Edit the selected server" #~ msgstr "Modifica il server selezionato" #~ msgid "Remove the selected server" #~ msgstr "Elimina il server selezionato." #~ msgid "Got unexpected response from mail server: expected %d; got %s" #~ msgstr "" #~ "Ricevuta risposta inaspettata dal server Mail: atteso: %d; ricevuto: %s" #~ msgid "Sending mail" #~ msgstr "Invio Posta in corso" #~ msgid "No known recipients" #~ msgstr "Nessun destinatario conosciuto" #~ msgid "Mail sent!" #~ msgstr "Posta inviata!" #~ msgid "Handshaking with mail server" #~ msgstr "Stabilendo connessione con il server di posta" #~ msgid "Connecting to mail server" #~ msgstr "Connessione al server di posta" #~ msgid "Mail server not ready" #~ msgstr "Server di posta non pronto" #~ msgid "Sending Keepalive" #~ msgstr "Invio Keepalive in corso" #~ msgid "Disconnecting Idle" #~ msgstr "Disconnessione inattivi" #~ msgid "Disconnecting one connection from `%s' after %d seconds idle" #~ msgstr "Chiusura di una connessione da `%s' dopo %d secondi di inattività" #~ msgid "Connection to %s, port %d failed: %s" #~ msgstr "Connessione a %s, porta %d fallita: %s" #~ msgid "New connection %p for %s, port %d" #~ msgstr "Nuova connessione %p per %s, porta %d" #~ msgid "Downloading %d" #~ msgstr "Scaricamento %d in corso" #~ msgid "\"%s\"" #~ msgstr "\"%s\"" #~ msgid "Downloading %u articles" #~ msgstr "Scaricamento %u articoli in corso" #~ msgid "Article %s (%s) canceled" #~ msgstr "Articolo %s (%s) eliminato" #~ msgid "Updating article counts for %u groups from server \"%s\"" #~ msgstr "" #~ "Aggiornamento conteggio articoli per %u gruppi dal server \"%s\" in corso" #~ msgid "Updated counts for %u groups out of %u" #~ msgstr "Aggiornati conteggi per %u gruppi su %u" #~ msgid "Unable to update counts for group \"%s\"" #~ msgstr "Impossibile aggiornare i conteggi per il gruppo \"%s\"" #~ msgid "Getting all groups from server \"%s\"" #~ msgstr "Recupero di tutti i gruppi dal server \"%s\" in corso" #~ msgid "Adding groups to server \"%s\"" #~ msgstr "Aggiunta gruppi al server \"%s\" in corso" #~ msgid "List Newsgroups failed: %s" #~ msgstr "Elenco Gruppi di discussione fallita: %s" #~ msgid "Got %d descriptions from server \"%s\"" #~ msgstr "Recuperate %d descrizioni dal server \"%s\"" #~ msgid "New groups retrieval failed: %s" #~ msgstr "Recupero Nuovi Gruppi fallito: %s" #~ msgid "No new articles in group \"%s\"" #~ msgstr "Nessun nuovo articolo nel gruppo \"%s\"" #~ msgid "New %lu of %lu" #~ msgstr "Nuovi %lu di %lu" #~ msgid "Sampling %lu of %lu" #~ msgstr "Scaricamento di esempi %lu di %lu in corso" #~ msgid "All %lu of %lu" #~ msgstr "Tutti i %lu di %lu" #~ msgid "Not Queued" #~ msgstr "Non in Coda" #~ msgid "Stopping" #~ msgstr "Interruzione in corso" #~ msgid "Pan %s Task Manager" #~ msgstr "Pan %s Gestore dei Processi" #~ msgid "Move Selected Task(s) Up" #~ msgstr "Sposta in su i Processi Selezionati" #~ msgid "Move Selected Task(s) to Top" #~ msgstr "Sposta i Processi Selezionati in Cima" #~ msgid "Move Selected Task(s) Down" #~ msgstr "Sposta in giù i Processi Selezionati" #~ msgid "Stop Selected Task(s)" #~ msgstr "Interrompi i Processi Selezionati" #~ msgid "Delete Selected Task(s)" #~ msgstr "Elimina i Processi Selezionati." #~ msgid "Time Remaining" #~ msgstr "Tempo Rimasto" #~ msgid "[This is an email copy of a Usenet post to \"%s\"]" #~ msgstr "[Questa email è una copia di un messaggio Usenet a \"%s\"]" #~ msgid "Email \"%s\" sent." #~ msgstr "Messaggio Email \"%s\" inviato." #~ msgid "Email \"%s\" not sent." #~ msgstr "Messaggio Email \"%s\" non inviato." #~ msgid "Article \"%s\" posted." #~ msgstr "L'articolo \"%s\" è stato inviato." #~ msgid "Article \"%s\" not posted." #~ msgstr "L'articolo \"%s\" non è stato inviato." #~ msgid "Posting and mailing article \"%s\"" #~ msgstr "Spedizione (Mail e News) dell'articolo \"%s\"" #~ msgid "Mailing article \"%s\"" #~ msgstr "Spedizione (Email) dell'articolo \"%s\"" #~ msgid "Email send failed.\n" #~ msgstr "Invio Email fallito.\n" #~ msgid "Usenet posting failed.\n" #~ msgstr "Invio ai gruppi di discussione fallito.\n" #~ msgid "Check Tools|Log Viewer for more information.\n" #~ msgstr "" #~ "Controlla Strumenti|Visualizzatore del log per maggiori informazioni.\n" #~ msgid "Your message was saved in the folder \"pan.sendlater\"" #~ msgstr "Il tuo messaggio è stato salvato nella cartella \"pan.dainviare\"" #~ msgid "Saving `%s'" #~ msgstr "Salvataggio `%s' in corso" #~ msgid "Saving Attachments" #~ msgstr "Salvataggio Allegati in corso" #~ msgid "Save Article can't access path \"%s\"" #~ msgstr "il salvataggio dell'articolo non può accedere il percorso \"%s\"" #~ msgid "Saved article body to \"%s\"" #~ msgstr "Testo articolo salvato su \"%s\"" #~ msgid "" #~ "Pan %s\n" #~ "Copyright (c) %d by Charles Kerr\n" #~ "\n" #~ "If you find a bug, please report it.\n" #~ "\n" #~ msgstr "" #~ "Pan %s\n" #~ "Copyright (c) %d by Charles Kerr\n" #~ "\n" #~ "Se trovate un bug, per favore segnalatelo.\n" #~ "\n" #~ msgid "" #~ "http://pan.rebelbase.com/ - Pan Homepage\n" #~ "http://pan.rebelbase.com/bugs/ - Report a Bug\n" #~ "http://pan.rebelbase.com/download/ - Upgrade\n" #~ "\n" #~ msgstr "" #~ "http://pan.rebelbase.com/ - Pan Homepage\n" #~ "http://pan.rebelbase.com/bugs/ - Segnala un Bug\n" #~ "http://pan.rebelbase.com/download/ - Aggiornamenti\n" #~ "\n" #~ msgid "" #~ "This program is free software; you can redistribute it\n" #~ "and/or modify it under the terms of the GNU General Public\n" #~ "License as published by the Free Software Foundation;\n" #~ "version 2 of the License.\n" #~ "\n" #~ "This program is distributed in the hope that it will be\n" #~ "useful, but WITHOUT ANY WARRANTY; without even the implied\n" #~ "warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\n" #~ "PURPOSE. See the GNU General Public License for more\n" #~ "details.\n" #~ "\n" #~ "The GNU Public License can be found from the menu above\n" #~ "in Help|About|License." #~ msgstr "" #~ "Questo programma è un software libero; lo puoi ridistribuire\n" #~ "e/o modificarlo secondo i termini della GNU General Public\n" #~ "License (Licenza Pubblica Generale) come pubblicata dalla Free Software " #~ "Foundation;\n" #~ "versione 2 della licenza.\n" #~ "\n" #~ "Questo programma è distribuito nella speranza che sia\n" #~ "utile, but SENZA ALCUNA GARANZIA; senza nemmeno la implicita\n" #~ "garanzia di COMMERCIABILITÀ o di ESSERE ADATTO AD UNO SPECIFICO\n" #~ "SCOPO. Guardate la GNU General Public License per maggiori\n" #~ "dettagli.\n" #~ "\n" #~ "La GNU Public License può essere trovata dal menu sopra\n" #~ "in Aiuto|Informazioni su|Licenza." #~ msgid "Error starting external browser: %s" #~ msgstr "Errore nell'esecuzione dell browser-web esterno: %s" #~ msgid "Error starting external scorefile editor: %s" #~ msgstr "" #~ "Errore nell'esecuzione dell editor del file dei punteggi esterno: %s" pan-0.162/po/ja.po000066400000000000000000002553441475412772400137020ustar00rootroot00000000000000# pan ja.po. # Copyright (C) 2000-2004 Free Software Foundation, Inc. # Shingo Akagaki , 1999-2000 # Yukihiro Nakai , 2000 # Takeshi Aihana , 2001-2002. # Takuo KITAME , 2001. # Takayuki KUSANO , 2002-2004. # KAMAGASAKO Masatoshi , 2003. # msgid "" msgstr "" "Project-Id-Version: pan HEAD\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-04-04 20:58+0200\n" "PO-Revision-Date: 2012-01-08 14:56+0900\n" "Last-Translator: OKANO Takayoshi \n" "Language-Team: Japanese \n" "Language: ja\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../pan.desktop.in.h:1 msgid "Pan Newsreader" msgstr "ニュースリーダー Pan" #: ../pan.desktop.in.h:2 msgid "Read and Post Usenet Articles" msgstr "" #: ../pan/data/article-cache.cc:143 ../pan/data/encode-cache.cc:62 #, fuzzy, c-format msgid "Error opening directory: \"%s\": %s" msgstr "ディレクトリ \"%s\" の読み込みエラー: %s)" #: ../pan/data/article-cache.cc:231 ../pan/data/article-cache.cc:242 #: ../pan/data-impl/data-io.cc:187 ../pan/data-impl/data-io.cc:211 #: ../pan/gui/post-ui.cc:1639 #, fuzzy, c-format msgid "Unable to save \"%s\" %s" msgstr "グループ \"%*.*s\" をセットできません: %s" #: ../pan/data/article-cache.cc:355 #, fuzzy, c-format msgid "Error opening file \"%s\" %s" msgstr "ファイル \"%s\" を開く時にエラー: %s" #: ../pan/data/article-cache.cc:386 ../pan/data-impl/profiles.cc:174 #: ../pan/data-impl/server.cc:436 ../pan/general/file-util.cc:298 #: ../pan/gui/post-ui.cc:609 ../pan/gui/task-pane.cc:691 #, c-format msgid "Error reading file \"%s\": %s" msgstr "\"%s\" の読み込みエラー: %s" #: ../pan/data/cert-store.cc:238 #, fuzzy, c-format msgid "Error opening SSL certificate directory: \"%s\": %s" msgstr "ディレクトリ \"%s\" の読み込みエラー: %s)" #: ../pan/data/cert-store.cc:270 #, c-format msgid "Succesfully added %d SSL PEM certificate(s) to Certificate Store." msgstr "" #. load_group_descriptions (*_data_io); #: ../pan/data-impl/data-impl.cc:109 #, c-format msgid "Loaded data backend in %.1f seconds" msgstr "" #: ../pan/data-impl/data-impl.cc:140 msgid "Pan newsreader server passwords" msgstr "" #: ../pan/data-impl/groups.cc:94 #, fuzzy, c-format msgid "Skipping newsrc file for server \"%s\"" msgstr "%d 個の新規グループをサーバー \"%s\" から取得中" #: ../pan/data-impl/headers.cc:606 #, fuzzy, c-format msgid "Expired %lu old articles from \"%s\"" msgstr "%u 個の記事が \"%s\" から削除されました" #: ../pan/data-impl/headers.cc:613 #, c-format msgid "" "Unsupported data version for %s headers: %d.\n" "Are you running an old version of Pan by accident?" msgstr "" "%s ヘッダー用のデータバージョンはサポートしていません: %d\n" "古いバージョンの Pan を起動していませんか?" #: ../pan/data-impl/headers.cc:628 #, fuzzy, c-format msgid "Loaded %lu articles for \"%s\" in %.1f seconds (%.0f per second)" msgstr "" "%u 個の記事 (グループ \"%s\") を %.1f 秒 (%.0f 記事/秒) で取得しました。" #: ../pan/data-impl/headers.cc:857 #, fuzzy, c-format msgid "" "Saved %lu parts, %lu articles in \"%s\" in %.1f seconds (%.0f articles/sec)" msgstr "%d 個の記事(\"%s\"中の)を %.1f 秒で保存しました (%.0f 記事/秒)" #: ../pan/data-impl/headers.cc:1173 #, fuzzy, c-format msgid "Added %lu articles to %s." msgstr "%u 個の記事('%s'から)が期限切れ" #: ../pan/data-impl/server.cc:234 #, c-format msgid "There seems to be no Password set for Server %s." msgstr "" #: ../pan/data-impl/server.cc:238 msgid "The Gnome keyring denied access to the Passwords." msgstr "" #: ../pan/data-impl/xover.cc:239 #, fuzzy, c-format msgid "Error reading from %s: unknown group \"%s\"" msgstr "ソケットからの読み込みエラー: %s" #. build the locale strings #: ../pan/general/e-util.cc:213 msgid "%l:%M %p" msgstr "" #: ../pan/general/e-util.cc:214 msgid "Today %l:%M %p" msgstr "" #: ../pan/general/e-util.cc:215 msgid "%a %l:%M %p" msgstr "" #: ../pan/general/e-util.cc:216 msgid "%b %d %l:%M %p" msgstr "" #: ../pan/general/e-util.cc:217 msgid "%b %d %Y" msgstr "" #: ../pan/general/e-util.cc:242 msgid "?" msgstr "" #: ../pan/general/text-match.cc:193 #, c-format msgid "Can't use regular expression \"%s\": %s" msgstr "正規表現 \"%s\" を使えません: %s" #: ../pan/general/utf8-utils.cc:213 msgid "Couldn't determine article encoding. Non-UTF8 characters were removed." msgstr "" #: ../pan/gui/actions.cc:274 ../pan/gui/post-ui.cc:417 #, fuzzy msgid "_File" msgstr "/ファイル(_F)" #: ../pan/gui/actions.cc:275 ../pan/gui/post-ui.cc:418 msgid "_Edit" msgstr "編集(_E)" #: ../pan/gui/actions.cc:276 ../pan/gui/prefs-ui.cc:1064 msgid "_Layout" msgstr "配置(_L)" #: ../pan/gui/actions.cc:277 #, fuzzy msgid "_Group Pane" msgstr "グループペイン" #: ../pan/gui/actions.cc:278 #, fuzzy msgid "_Header Pane" msgstr "ヘッダーペイン(_H):" #: ../pan/gui/actions.cc:279 #, fuzzy msgid "_Body Pane" msgstr "本文ペイン" #: ../pan/gui/actions.cc:280 #, fuzzy msgid "_View" msgstr "/表示(_V)" #: ../pan/gui/actions.cc:281 #, fuzzy msgid "Filte_r" msgstr "/フィルター(_R)" #: ../pan/gui/actions.cc:282 #, fuzzy msgid "_Go" msgstr "/移動(_G)" #: ../pan/gui/actions.cc:283 ../pan/gui/prefs-ui.cc:1091 #, fuzzy msgid "_Actions" msgstr "アクション" #: ../pan/gui/actions.cc:284 #, fuzzy msgid "_Articles" msgstr "/記事(_A)" #: ../pan/gui/actions.cc:285 #, fuzzy msgid "G_roups" msgstr "グループ" #: ../pan/gui/actions.cc:286 ../pan/gui/actions.cc:287 msgid "_Post" msgstr "投稿(_P)" #: ../pan/gui/actions.cc:288 msgid "_Help" msgstr "ヘルプ(_H)" #: ../pan/gui/actions.cc:291 #, fuzzy msgid "_Read Group" msgstr "グループ再読み込み" #: ../pan/gui/actions.cc:292 #, fuzzy msgid "Read Group" msgstr "グループ再読み込み" #: ../pan/gui/actions.cc:296 #, fuzzy msgid "_Mark Selected Groups Read" msgstr "選択した記事に既読マークを付与する" #: ../pan/gui/actions.cc:297 #, fuzzy msgid "Mark Selected Groups Read" msgstr "選択した記事に既読マークを付与する" #: ../pan/gui/actions.cc:301 #, fuzzy msgid "_Delete Selected Groups' Articles" msgstr "/グループの記事を削除(_D)" #: ../pan/gui/actions.cc:302 #, fuzzy msgid "Delete Selected Groups' Articles" msgstr "/グループの記事を削除(_D)" #: ../pan/gui/actions.cc:306 #, fuzzy msgid "Get New _Headers in Selected Groups" msgstr "選択したグループの新規ヘッダーを取得します" #: ../pan/gui/actions.cc:307 #, fuzzy msgid "Get New Headers in Selected Groups" msgstr "選択したグループの新規ヘッダーを取得します" #: ../pan/gui/actions.cc:311 ../pan/gui/actions.cc:316 #, fuzzy msgid "Get New _Headers in Subscribed Groups" msgstr "購読グループの新規ヘッダーを取得します" #: ../pan/gui/actions.cc:312 ../pan/gui/actions.cc:317 #, fuzzy msgid "Get New Headers in Subscribed Groups" msgstr "購読グループの新規ヘッダーを取得します" #: ../pan/gui/actions.cc:321 #, fuzzy msgid "Get _Headers..." msgstr "/新規ヘッダーのダウンロード(_H)" #: ../pan/gui/actions.cc:322 #, fuzzy msgid "Get Headers..." msgstr "/新規ヘッダーのダウンロード(_H)" #: ../pan/gui/actions.cc:326 ../pan/gui/actions.cc:327 #, fuzzy msgid "Refresh Group List" msgstr "グループ \"%s\" の更新中" #: ../pan/gui/actions.cc:331 #, fuzzy msgid "_Subscribe" msgstr "/購読(_S)" #: ../pan/gui/actions.cc:332 msgid "Subscribe" msgstr "購読" #: ../pan/gui/actions.cc:336 #, fuzzy msgid "_Unsubscribe" msgstr "/購読解除(_U)" #: ../pan/gui/actions.cc:337 msgid "Unsubscribe" msgstr "購読解除" #: ../pan/gui/actions.cc:341 #, fuzzy msgid "_Save Articles..." msgstr "名前を付けて記事を保存..." #: ../pan/gui/actions.cc:342 #, fuzzy msgid "Save Articles..." msgstr "名前を付けて記事を保存..." #: ../pan/gui/actions.cc:346 #, fuzzy msgid "Save Articles from Selected _NZB..." msgstr "名前を付けて記事を保存..." #: ../pan/gui/actions.cc:347 #, fuzzy msgid "Save Articles from Selected NZB" msgstr "記事の添付を保存" #: ../pan/gui/actions.cc:351 #, fuzzy msgid "Save Articles to an NZB _File..." msgstr "名前を付けて記事を保存..." #: ../pan/gui/actions.cc:352 #, fuzzy msgid "Save Articles to an NZB File" msgstr "記事の添付を保存" #: ../pan/gui/actions.cc:356 ../pan/gui/actions.cc:357 msgid "Print" msgstr "" #: ../pan/gui/actions.cc:361 #, fuzzy msgid "_Import NZB Files..." msgstr ".newsrcのインポート..." #: ../pan/gui/actions.cc:366 #, fuzzy msgid "_Cancel Last Task" msgstr "最後に選択したタスクのキャンセル" #: ../pan/gui/actions.cc:371 #, fuzzy msgid "_Task Manager" msgstr "/ツール(_T)/タスクマネージャー(_T)..." #: ../pan/gui/actions.cc:376 #, fuzzy msgid "_Event Log" msgstr "ステータスログを開く" #: ../pan/gui/actions.cc:381 #, fuzzy msgid "_Quit" msgstr "編集(_E)" #: ../pan/gui/actions.cc:386 #, fuzzy msgid "Select _All Articles" msgstr "全ての記事を取得します" #: ../pan/gui/actions.cc:391 #, fuzzy msgid "_Deselect All Articles" msgstr "/編集(_E)/全ての記事の選択解除(_L)" #: ../pan/gui/actions.cc:396 #, fuzzy msgid "Add Su_bthreads to Selection" msgstr "/編集(_E)/サブスレッドを選択範囲に追加(_S)" #: ../pan/gui/actions.cc:401 #, fuzzy msgid "Add _Threads to Selection" msgstr "/編集(_E)/スレッドを選択範囲に追加(_T)" #: ../pan/gui/actions.cc:406 #, fuzzy msgid "Add _Similar Articles to Selection" msgstr "/編集(_E)/スレッドを選択範囲に追加(_T)" #: ../pan/gui/actions.cc:411 #, fuzzy msgid "Select Article _Body" msgstr "/編集(_E)/記事本文の選択(_B)" #: ../pan/gui/actions.cc:416 #, fuzzy msgid "Edit _Preferences" msgstr "/編集(_E)/設定(_P)..." #: ../pan/gui/actions.cc:421 #, fuzzy msgid "Edit Selected _Group's Preferences" msgstr "/編集(_E)/設定(_P)..." #: ../pan/gui/actions.cc:426 ../pan/gui/post-ui.cc:434 #, fuzzy msgid "Edit P_osting Profiles" msgstr "/ツール(_T)/投稿時のプロファイル(_P)..." #: ../pan/gui/actions.cc:431 #, fuzzy msgid "Edit _News Servers" msgstr "/ツール(_T)/ニュースサーバー(_S)..." #: ../pan/gui/actions.cc:436 #, fuzzy msgid "Jump to _Group Tab" msgstr "/表示(_V)/グループタブへ移動(_G)" #: ../pan/gui/actions.cc:441 #, fuzzy msgid "Jump to _Header Tab" msgstr "/表示(_V)/ヘッダータブへ移動(_H)" #: ../pan/gui/actions.cc:446 #, fuzzy msgid "Jump to _Body Tab" msgstr "/表示(_V)/本文タブへ移動(_B)" #: ../pan/gui/actions.cc:451 #, fuzzy msgid "_Rot13 Selected Text" msgstr "Rot13 選択した記事" #: ../pan/gui/actions.cc:456 #, fuzzy msgid "Clear _Header Pane" msgstr "ヘッダーペイン(_H):" #: ../pan/gui/actions.cc:461 #, fuzzy msgid "Clear _Body Pane" msgstr "本文ペイン" #: ../pan/gui/actions.cc:466 #, fuzzy msgid "Cache Article" msgstr "キャッシュ済みの記事 \"%s\"" #: ../pan/gui/actions.cc:471 #, fuzzy msgid "Read Article" msgstr "/記事を読む(_R)" #: ../pan/gui/actions.cc:476 #, fuzzy msgid "Show Article Information" msgstr "プロファイル情報" #: ../pan/gui/actions.cc:481 #, fuzzy msgid "Read _More" msgstr "もっと読む" #: ../pan/gui/actions.cc:482 msgid "Read More" msgstr "もっと読む" #: ../pan/gui/actions.cc:486 msgid "Read _Back" msgstr "" #: ../pan/gui/actions.cc:487 #, fuzzy msgid "Read Back" msgstr "/移動(_G)/前を読む" #: ../pan/gui/actions.cc:491 #, fuzzy msgid "Next _Unread Group" msgstr "/移動(_G)/次の未読グループ(_G)" #: ../pan/gui/actions.cc:496 #, fuzzy msgid "Next _Group" msgstr "/移動(_G)/次のグループ(_E)" #: ../pan/gui/actions.cc:501 #, fuzzy msgid "Next _Unread Article" msgstr "/移動(_G)/次の未読記事(_U)" #: ../pan/gui/actions.cc:502 #, fuzzy msgid "Next Unread Article" msgstr "次の未読記事を読む" #: ../pan/gui/actions.cc:506 msgid "Next _Article" msgstr "次の記事へ(_A)" #: ../pan/gui/actions.cc:507 #, fuzzy msgid "Next Article" msgstr "次の記事へ(_A)" #: ../pan/gui/actions.cc:511 #, fuzzy msgid "Next _Watched Article" msgstr "/移動(_G)/次の監視記事(_W)" #: ../pan/gui/actions.cc:516 #, fuzzy msgid "Next Unread _Thread" msgstr "/移動(_G)/次の未読スレッド(_T)" #: ../pan/gui/actions.cc:517 #, fuzzy msgid "Next Unread Thread" msgstr "次の未読スレッドを読む" #: ../pan/gui/actions.cc:521 #, fuzzy msgid "Next Threa_d" msgstr "次のスレッドにジャンプします" #: ../pan/gui/actions.cc:526 #, fuzzy msgid "Pre_vious Article" msgstr "/移動(_G)/前の記事(_V)" #: ../pan/gui/actions.cc:531 #, fuzzy msgid "Previous _Thread" msgstr "前のスレッドにジャンプします" #: ../pan/gui/actions.cc:536 #, fuzzy msgid "_Parent Article" msgstr "/移動(_G)/親記事(_P)" #: ../pan/gui/actions.cc:541 #, fuzzy msgid "Ignore _Author" msgstr "/スレッドを無視する(_I)" #: ../pan/gui/actions.cc:545 #, fuzzy msgid "_Watch Thread" msgstr "/スレッドの監視(_W)" #: ../pan/gui/actions.cc:550 #, fuzzy msgid "_Ignore Thread" msgstr "無視されたスレッド(_I):" #: ../pan/gui/actions.cc:555 ../pan/gui/actions.cc:556 msgid "_Toggle Flag On/Off for Thread" msgstr "" #: ../pan/gui/actions.cc:560 ../pan/gui/actions.cc:561 #, fuzzy msgid "_Turn Flag Off for Thread" msgstr "/スレッドの監視(_W)" #: ../pan/gui/actions.cc:565 ../pan/gui/actions.cc:566 #, fuzzy msgid "_Select All Flagged Threads" msgstr "次の未読スレッドを読む" #: ../pan/gui/actions.cc:570 ../pan/gui/actions.cc:571 #, fuzzy msgid "_Go to Next Flagged Thread" msgstr "次の未読スレッドを読む" #: ../pan/gui/actions.cc:575 ../pan/gui/actions.cc:576 #, fuzzy msgid "_Go to Last Flagged Thread" msgstr "次の未読スレッドを読む" #: ../pan/gui/actions.cc:580 ../pan/gui/actions.cc:581 #, fuzzy msgid "_Invert Selection" msgstr "/編集(_E)/スレッドを選択範囲に追加(_T)" #: ../pan/gui/actions.cc:585 #, fuzzy msgid "Edit Article's Watch/Ignore/Score..." msgstr "/記事(_A)/スコアの生成(_C)..." #: ../pan/gui/actions.cc:590 #, fuzzy msgid "Add a _Scoring Rule..." msgstr "新規スコアを追加" #: ../pan/gui/actions.cc:595 #, fuzzy msgid "Cance_l Article..." msgstr "記事の購読取り消し中" #: ../pan/gui/actions.cc:600 #, fuzzy msgid "_Supersede Article..." msgstr "/名前を付けて記事を保存(_S)..." #: ../pan/gui/actions.cc:605 #, fuzzy msgid "_Delete Article" msgstr "記事の削除(_D)" #: ../pan/gui/actions.cc:610 #, fuzzy msgid "Clear Article Cache" msgstr "記事キャッシュ" #: ../pan/gui/actions.cc:615 #, fuzzy msgid "_Mark Article as Read" msgstr "選択した記事に既読マークを付与する" #: ../pan/gui/actions.cc:620 #, fuzzy msgid "Mark Article as _Unread" msgstr "未読にする(_U)" #: ../pan/gui/actions.cc:626 #, fuzzy msgid "_Mark Thread as Read" msgstr "選択した記事に既読マークを付与する" #: ../pan/gui/actions.cc:631 #, fuzzy msgid "Mark Thread as _Unread" msgstr "未読にする(_U)" #: ../pan/gui/actions.cc:636 #, fuzzy msgid "_Post to Newsgroup" msgstr "ニュースグループに投稿" #: ../pan/gui/actions.cc:637 msgid "Post to Newsgroup" msgstr "ニュースグループに投稿" #: ../pan/gui/actions.cc:641 #, fuzzy msgid "_Followup to Newsgroup" msgstr "/投稿(_P)/ニュースグループにフォロー(_F)..." #: ../pan/gui/actions.cc:642 #, fuzzy msgid "Followup to Newsgroup" msgstr "/投稿(_P)/ニュースグループにフォロー(_F)..." #: ../pan/gui/actions.cc:646 #, fuzzy msgid "_Reply to Author in Mail" msgstr "/記事(_A)/この投稿者の記事を表示しない(_P)" #: ../pan/gui/actions.cc:651 #, fuzzy msgid "_Pan Home Page" msgstr "/ヘルプ(_H)/Pan ホームページ(_H)..." #: ../pan/gui/actions.cc:656 #, fuzzy msgid "Give _Feedback or Report a Bug..." msgstr "/ヘルプ(_H)/バグの報告(_B)..." #: ../pan/gui/actions.cc:661 msgid "_Tip Jar..." msgstr "" #: ../pan/gui/actions.cc:666 #, fuzzy msgid "_About" msgstr "情報" #: ../pan/gui/actions.cc:671 msgid "Edit _SSL Certificates" msgstr "" #: ../pan/gui/actions.cc:685 #, fuzzy msgid "_Thread Headers" msgstr "ヘッダーの詳細" #: ../pan/gui/actions.cc:686 #, fuzzy msgid "_Wrap Article Body" msgstr "記事の整形/ワードラップ(_L)" #: ../pan/gui/actions.cc:687 #, fuzzy msgid "Mute _Quoted Text" msgstr "引用した本文を隠す" #: ../pan/gui/actions.cc:688 #, fuzzy msgid "Show All _Headers in Body Pane" msgstr "/表示(_V)/全ヘッダーを本文ペインに表示(_H)" #: ../pan/gui/actions.cc:689 #, fuzzy msgid "Show _Smilies as Graphics" msgstr "アラートを出す:" #: ../pan/gui/actions.cc:690 msgid "Show *Bold*, __Underlined__, and /Italic/" msgstr "" #: ../pan/gui/actions.cc:691 msgid "Size Pictures to _Fit" msgstr "" #: ../pan/gui/actions.cc:692 #, fuzzy msgid "Use _Monospace Font" msgstr "等幅フォント(_E):" #: ../pan/gui/actions.cc:693 msgid "Set Focus to Images" msgstr "" #: ../pan/gui/actions.cc:694 msgid "Highlight _URLs" msgstr "" #: ../pan/gui/actions.cc:697 #, fuzzy msgid "_Work Online" msgstr "/ファイル/オンラインで動作(_L)" #: ../pan/gui/actions.cc:698 #, fuzzy msgid "_Tabbed Layout" msgstr "/表示(_V)/タブレイアウト(_T)" #: ../pan/gui/actions.cc:699 #, fuzzy msgid "Show Group _Pane" msgstr "/表示(_V)/グループペインの表示(_P)" #: ../pan/gui/actions.cc:700 #, fuzzy msgid "Show Hea_der Pane" msgstr "/表示(_V)/ヘッダーペインの表示(_D)" #: ../pan/gui/actions.cc:701 #, fuzzy msgid "Show Bod_y Pane" msgstr "/表示(_V)/本文ペインの表示(_Y)" #: ../pan/gui/actions.cc:702 msgid "Show _Toolbar" msgstr "" #: ../pan/gui/actions.cc:703 #, fuzzy msgid "Abbreviate Group Names" msgstr "/表示(_V)/グループ・ペインに省略形表示(_N)" #: ../pan/gui/actions.cc:705 #, fuzzy msgid "Match Only _Unread Articles" msgstr "新規記事にのみマッチ" #: ../pan/gui/actions.cc:705 #, fuzzy msgid "Match Only Unread Articles" msgstr "新規記事にのみマッチ" #: ../pan/gui/actions.cc:706 #, fuzzy msgid "Match Only _Cached Articles" msgstr "キャッシュされている記事にのみマッチ" #: ../pan/gui/actions.cc:706 #, fuzzy msgid "Match Only Cached Articles" msgstr "キャッシュされている記事にのみマッチ" #: ../pan/gui/actions.cc:707 #, fuzzy msgid "Match Only _Complete Articles" msgstr "完全な添付にのみマッチ" #: ../pan/gui/actions.cc:707 #, fuzzy msgid "Match Only Complete Articles" msgstr "完全な添付にのみマッチ" #: ../pan/gui/actions.cc:708 #, fuzzy msgid "Match Only _My Articles" msgstr "自分の記事にのみマッチ" #: ../pan/gui/actions.cc:708 #, fuzzy msgid "Match Only My Articles" msgstr "自分の記事にのみマッチ" #: ../pan/gui/actions.cc:709 #, fuzzy msgid "Match Only _Watched Articles" msgstr "監視している記事にのみマッチ" #: ../pan/gui/actions.cc:709 msgid "Match Only Watched Articles" msgstr "監視している記事にのみマッチ" #: ../pan/gui/actions.cc:711 #, fuzzy msgid "Match Scores of 9999 (_Watched)" msgstr "/フィルター(_R)/スコアが 9999 にマッチ (監視)" #: ../pan/gui/actions.cc:712 #, fuzzy msgid "Match Scores of 5000...9998 (_High)" msgstr "/フィルター(_R)/スコアが 5000 から 9998 にマッチ (高)" #: ../pan/gui/actions.cc:713 #, fuzzy msgid "Match Scores of 1...4999 (Me_dium)" msgstr "/フィルター(_R)/スコアが 1 から 4999 に (中)" #: ../pan/gui/actions.cc:714 #, fuzzy msgid "Match Scores of 0 (_Normal)" msgstr "/フィルター(_R)/スコアが 0 にマッチ (通常)" #: ../pan/gui/actions.cc:715 #, fuzzy msgid "Match Scores of -9998...-1 (_Low)" msgstr "/フィルター(_R)/スコアが -9998 から -1 にマッチ (低)" #: ../pan/gui/actions.cc:716 #, fuzzy msgid "Match Scores of -9999 (_Ignored)" msgstr "/フィルター(_R)/スコアが -9999 にマッチ (無視)" #: ../pan/gui/actions.cc:718 msgid "Enable/Disable All _Rules" msgstr "" #: ../pan/gui/actions.cc:744 #, fuzzy msgid "Show Matching _Articles" msgstr "/フィルター(_R)/マッチする記事の表示" #: ../pan/gui/actions.cc:745 #, fuzzy msgid "Show Matching Articles' _Threads" msgstr "/フィルター(_R)/マッチする記事のスレッドを表示" #: ../pan/gui/actions.cc:746 #, fuzzy msgid "Show Matching Articles' _Subthreads" msgstr "/フィルター(_R)/マッチする記事のサブスレッドを表示" #: ../pan/gui/body-pane.cc:1011 #, fuzzy, c-format msgid "Unnamed File" msgstr "署名ファイルを選択" #: ../pan/gui/body-pane.cc:1092 ../pan/gui/gui.cc:1864 #: ../pan/gui/header-pane.cc:1188 ../pan/gui/header-pane.cc:1617 #: ../pan/gui/post-ui.cc:2496 ../pan/gui/prefs-ui.cc:833 #: ../pan/gui/score-add-ui.cc:139 msgid "Subject" msgstr "件名" #: ../pan/gui/body-pane.cc:1094 ../pan/gui/gui.cc:1864 #, fuzzy msgid "From" msgstr "投稿者" #: ../pan/gui/body-pane.cc:1096 ../pan/gui/gui.cc:1865 #: ../pan/gui/header-pane.cc:1695 ../pan/gui/log-ui.cc:305 #: ../pan/gui/prefs-ui.cc:829 msgid "Date" msgstr "投稿日" #: ../pan/gui/body-pane.cc:1103 msgid "Newsgroups" msgstr "ニュースグループ" #: ../pan/gui/body-pane.cc:1108 #, fuzzy msgid "Followup-To" msgstr "フォロー先:" #: ../pan/gui/body-pane.cc:1118 msgid "Reply-To" msgstr "リプライ先" #: ../pan/gui/body-pane.cc:1160 #, fuzzy msgid " from " msgstr "送信元: " #: ../pan/gui/body-pane.cc:1162 #, fuzzy msgid " at " msgstr "投稿日: " #: ../pan/gui/body-pane.cc:1264 #, c-format msgid "" "This is a PGP-Signed message.\n" "\n" "Signer : %s ('%s')\n" "Valid until : %s\n" "Created on : %s" msgstr "" #: ../pan/gui/body-pane.cc:1269 msgid "always" msgstr "" #: ../pan/gui/body-pane.cc:1485 msgid "Copy _URL" msgstr "" #: ../pan/gui/body-pane.cc:1680 #, fuzzy msgid "Save attachment as ...." msgstr "記事の添付を保存" #: ../pan/gui/body-pane.cc:1683 #, fuzzy msgid "Save all attachments" msgstr "記事の添付を保存" #. add a toolbar for attachments #: ../pan/gui/body-pane.cc:1753 #, fuzzy msgid "Attachments" msgstr "記事の添付を保存" #. update the titlebar #: ../pan/gui/dl-headers-ui.cc:106 ../pan/gui/gui.cc:973 #: ../pan/gui/gui.cc:1592 ../pan/gui/gui.cc:1893 #: ../pan/gui/score-add-ui.cc:602 msgid "Pan" msgstr "Pan" #: ../pan/gui/dl-headers-ui.cc:112 #, fuzzy, c-format msgid "%d Group" msgid_plural "%d Groups" msgstr[0] "グループ" msgstr[1] "グループ" #: ../pan/gui/dl-headers-ui.cc:135 #, fuzzy msgid "Get the last N _days' headers: " msgstr "最近のヘッダーのダウンロード(_R):" #: ../pan/gui/dl-headers-ui.cc:143 #, fuzzy msgid "Get _new headers" msgstr "新規ヘッダー" #: ../pan/gui/dl-headers-ui.cc:147 #, fuzzy msgid "Get _all headers" msgstr "全ヘッダー" #: ../pan/gui/dl-headers-ui.cc:151 #, fuzzy msgid "Get the _latest N headers: " msgstr "最近のヘッダーのダウンロード(_R):" #: ../pan/gui/e-action-combo-box.c:388 ../pan/gui/prefs-ui.cc:826 #, fuzzy msgid "Action" msgstr "アクション" #: ../pan/gui/e-action-combo-box.c:389 msgid "A GtkRadioAction" msgstr "" #: ../pan/gui/e-charset.c:51 ../pan/gui/task-pane.cc:518 msgid "Unknown" msgstr "不明" #: ../pan/gui/e-charset.c:52 msgid "Arabic" msgstr "" #: ../pan/gui/e-charset.c:53 msgid "Baltic" msgstr "バルト語" #: ../pan/gui/e-charset.c:54 msgid "Central European" msgstr "中央ヨーロッパ" #: ../pan/gui/e-charset.c:55 #, fuzzy msgid "Chinese" msgstr "行数" #: ../pan/gui/e-charset.c:56 msgid "Cyrillic" msgstr "キリル文字" #: ../pan/gui/e-charset.c:57 msgid "Greek" msgstr "ギリシャ語" #: ../pan/gui/e-charset.c:58 msgid "Hebrew" msgstr "" #: ../pan/gui/e-charset.c:59 msgid "Japanese" msgstr "日本語" #: ../pan/gui/e-charset.c:60 msgid "Korean" msgstr "韓国語" #: ../pan/gui/e-charset.c:61 msgid "Thai" msgstr "" #: ../pan/gui/e-charset.c:62 msgid "Turkish" msgstr "トルコ語" #: ../pan/gui/e-charset.c:63 #, fuzzy msgid "Unicode" msgstr "Unicode, UTF-8" #: ../pan/gui/e-charset.c:64 #, fuzzy msgid "Western European" msgstr "中央ヨーロッパ" #: ../pan/gui/e-charset.c:65 #, fuzzy msgid "Western European, New" msgstr "西欧 (新)" #: ../pan/gui/e-charset.c:84 ../pan/gui/e-charset.c:85 #: ../pan/gui/e-charset.c:86 #, fuzzy msgid "Traditional" msgstr "繁体中国語" #: ../pan/gui/e-charset.c:87 ../pan/gui/e-charset.c:88 #: ../pan/gui/e-charset.c:89 ../pan/gui/e-charset.c:90 #, fuzzy msgid "Simplified" msgstr "簡体中国語" #: ../pan/gui/e-charset.c:93 #, fuzzy msgid "Ukrainian" msgstr "キリル文字、ウクライナ語" #: ../pan/gui/e-charset.c:96 msgid "Visual" msgstr "" #: ../pan/gui/e-charset-combo-box.c:93 ../pan/gui/gui.cc:2058 #: ../pan/gui/post-ui.cc:519 ../pan/gui/prefs-ui.cc:737 #, fuzzy msgid "Character Encoding" msgstr "エンコーディング" #: ../pan/gui/e-charset-combo-box.c:117 msgid "Enter the character set to use" msgstr "" #: ../pan/gui/e-charset-combo-box.c:336 msgid "Other..." msgstr "" #: ../pan/gui/e-cte-dialog.c:78 #, fuzzy msgid "Default encoding" msgstr "\"%s\" の解読中" #: ../pan/gui/e-cte-dialog.c:80 #, fuzzy msgid "7Bit Encoding" msgstr "エンコーディング" #: ../pan/gui/e-cte-dialog.c:82 #, fuzzy msgid "8Bit Encoding" msgstr "エンコーディング" #: ../pan/gui/e-cte-dialog.c:84 #, fuzzy msgid "BASE64 Encoding" msgstr "本文ペイン(_Y)" #: ../pan/gui/e-cte-dialog.c:86 #, fuzzy msgid "Quoted-Printable Encoding" msgstr "本文ペイン(_Y)" #: ../pan/gui/group-pane.cc:500 msgid "Group" msgstr "グループ" #: ../pan/gui/group-pane.cc:501 #, fuzzy msgid "Group (regex)" msgstr "グループのプロパティ" #: ../pan/gui/group-pane.cc:913 msgid "Subscribed Groups" msgstr "購読済みグループ" #: ../pan/gui/group-pane.cc:914 #, fuzzy msgid "Other Groups" msgstr "新規グループ" #: ../pan/gui/group-pane.cc:954 ../pan/gui/score-view-ui.cc:157 msgid "Name" msgstr "名前" #: ../pan/gui/group-prefs-dialog.cc:156 #, fuzzy msgid "No Profiles defined in Edit|Posting Profiles." msgstr "/ツール(_T)/投稿時のプロファイル(_P)..." #: ../pan/gui/group-prefs-dialog.cc:231 #, fuzzy msgid "Pan: Group Preferences" msgstr "Pan 設定" #: ../pan/gui/group-prefs-dialog.cc:247 #, fuzzy, c-format msgid "Properties for Groups" msgstr "\"%s\" の設定" #: ../pan/gui/group-prefs-dialog.cc:249 #, fuzzy, c-format msgid "Properties for %s" msgstr "\"%s\" の設定" #: ../pan/gui/group-prefs-dialog.cc:257 #, fuzzy msgid "Character _encoding:" msgstr "エンコーディング" #: ../pan/gui/group-prefs-dialog.cc:259 #, fuzzy msgid "Directory for Saving Attachments" msgstr "添付ファイルを保存するディレクトリ" #: ../pan/gui/group-prefs-dialog.cc:269 #, fuzzy msgid "Directory for _saving attachments:" msgstr "添付ファイルを保存するディレクトリ" #: ../pan/gui/group-prefs-dialog.cc:271 #, fuzzy msgid "Posting _profile:" msgstr "Pan: プロファイル" #: ../pan/gui/group-prefs-dialog.cc:277 msgid "Spellchecker _language:" msgstr "" #: ../pan/gui/gui.cc:273 msgid "Open the Task Manager" msgstr "タスクマネージャーを開く" #: ../pan/gui/gui.cc:301 #, fuzzy msgid "Open the Event Log" msgstr "ステータスログを開く" #: ../pan/gui/gui.cc:561 msgid "Save NZB's Files" msgstr "" #: ../pan/gui/gui.cc:588 msgid "Untitled.nzb" msgstr "" #: ../pan/gui/gui.cc:590 #, fuzzy msgid "Save NZB File as..." msgstr "名前を付けて記事を保存..." #: ../pan/gui/gui.cc:757 #, fuzzy msgid "Import NZB Files" msgstr ".newsrcのインポート..." #: ../pan/gui/gui.cc:765 ../pan/gui/post-ui.cc:3197 #, fuzzy msgid "NZB Files" msgstr "ファイル" #: ../pan/gui/gui.cc:770 #, fuzzy msgid "All Files" msgstr "ファイル" #: ../pan/gui/gui.cc:1258 #, fuzzy msgid "Unable to supersede article." msgstr "/名前を付けて記事を保存(_S)..." #: ../pan/gui/gui.cc:1259 ../pan/gui/gui.cc:1333 msgid "The article doesn't match any of your posting profiles." msgstr "" #: ../pan/gui/gui.cc:1306 msgid "Revise and send this article to replace the old one." msgstr "" #: ../pan/gui/gui.cc:1307 ../pan/gui/gui.cc:1370 msgid "Be patient! It will take time for your changes to take effect." msgstr "" #: ../pan/gui/gui.cc:1332 #, fuzzy msgid "Unable to cancel article." msgstr "ファイル権限を変更できません" #: ../pan/gui/gui.cc:1369 msgid "Send this article to ask your server to cancel your other one." msgstr "" #: ../pan/gui/gui.cc:1387 #, fuzzy msgid "You marked some articles for deletion" msgstr "/編集(_E)/スレッドを選択範囲に追加(_T)" #: ../pan/gui/gui.cc:1388 msgid "Are you sure you want to delete them?" msgstr "" #: ../pan/gui/gui.cc:1413 #, fuzzy msgid "Always trust" msgstr "エディター" #: ../pan/gui/gui.cc:1416 msgid "Do you want to accept it permanently (deletable afterwards) ?" msgstr "" #: ../pan/gui/gui.cc:1595 #, fuzzy msgid "Copyright \\u00A9 2002-2012 Charles Kerr and others" msgstr "Copyright (C) 2003 Charles Kerr" #: ../pan/gui/gui.cc:1600 msgid "translator-credits" msgstr "" #: ../pan/gui/gui.cc:1709 #, fuzzy msgid "_1. Group Pane" msgstr "グループペイン" #: ../pan/gui/gui.cc:1710 #, fuzzy msgid "_2. Header Pane" msgstr "ヘッダーペイン(_H):" #: ../pan/gui/gui.cc:1711 #, fuzzy msgid "_3. Body Pane" msgstr "本文ペイン" #: ../pan/gui/gui.cc:1800 ../pan/gui/gui.cc:1815 msgid " Bytes" msgstr "" #: ../pan/gui/gui.cc:1803 msgid " KB" msgstr "" #: ../pan/gui/gui.cc:1806 msgid " MB" msgstr "" #: ../pan/gui/gui.cc:1809 msgid " GB" msgstr "" #: ../pan/gui/gui.cc:1812 msgid " TB" msgstr "" #: ../pan/gui/gui.cc:1844 #, fuzzy, c-format msgid "This article is complete with %d part." msgid_plural "This article has all %d parts." msgstr[0] "記事に添付ファイルがありません" msgstr[1] "記事に添付ファイルがありません" #: ../pan/gui/gui.cc:1846 #, fuzzy, c-format msgid "This article is missing %d part." msgid_plural "This article is missing %d of its %d parts:" msgstr[0] "記事に添付ファイルがありません" msgstr[1] "記事に添付ファイルがありません" #: ../pan/gui/gui.cc:1865 ../pan/gui/header-pane.cc:1190 msgid "Message-ID" msgstr "Message-ID" #: ../pan/gui/gui.cc:1866 ../pan/gui/header-pane.cc:1665 #: ../pan/gui/prefs-ui.cc:830 msgid "Lines" msgstr "行数" #: ../pan/gui/gui.cc:1866 msgid "Size" msgstr "" #: ../pan/gui/gui.cc:1867 ../pan/gui/header-pane.cc:1680 #: ../pan/gui/prefs-ui.cc:828 msgid "Bytes" msgstr "" #: ../pan/gui/gui.cc:1917 msgid "" "Error loading iconv library. Some Charsets in the GUI will not be able to be " "encoded." msgstr "" #: ../pan/gui/gui.cc:2059 #, fuzzy msgid "Body Pane Encoding" msgstr "本文ペイン(_Y)" #: ../pan/gui/gui.cc:2090 ../pan/gui/task-pane.cc:569 #, c-format msgid "Offline" msgstr "オフライン" #: ../pan/gui/gui.cc:2094 #, fuzzy, c-format msgid "Closing %d connection" msgid_plural "Closing %d connections" msgstr[0] "%d 個の接続を閉じています" msgstr[1] "%d 個の接続を閉じています" #: ../pan/gui/gui.cc:2096 ../pan/gui/gui.cc:2126 #, c-format msgid "No Connections" msgstr "接続していません" #: ../pan/gui/gui.cc:2100 #, c-format msgid "Connecting" msgstr "接続中" #: ../pan/gui/gui.cc:2113 #, c-format msgid "%s: %d idle, %d active @ %.1f KiBps" msgstr "" #: ../pan/gui/gui.cc:2169 #, c-format msgid "No Tasks" msgstr "タスク無し" #: ../pan/gui/gui.cc:2171 ../pan/gui/prefs-ui.cc:1047 msgid "Tasks" msgstr "タスク" #: ../pan/gui/gui.cc:2182 ../pan/gui/task-pane.cc:435 #, c-format msgid "%lu tasks, %s, %.1f KiBps, ETA %d:%02d:%02d" msgstr "" #: ../pan/gui/gui.cc:2234 msgid "" "Pan is now offline. Please see \"File|Event Log\" and correct the problem, " "then use \"File|Work Online\" to continue." msgstr "" #: ../pan/gui/header-pane.cc:1186 msgid "Subject or Author" msgstr "" #: ../pan/gui/header-pane.cc:1187 msgid "Sub or Auth (regex)" msgstr "" #: ../pan/gui/header-pane.cc:1189 ../pan/gui/header-pane.cc:1649 #: ../pan/gui/prefs-ui.cc:827 ../pan/gui/score-add-ui.cc:140 msgid "Author" msgstr "投稿者" #: ../pan/gui/header-pane.cc:1634 ../pan/gui/prefs-ui.cc:831 msgid "Score" msgstr "スコア" #: ../pan/gui/log-ui.cc:103 msgid "Save Event List" msgstr "" #: ../pan/gui/log-ui.cc:256 #, fuzzy msgid "Pan: Events" msgstr "Pan: サーバー" #: ../pan/gui/log-ui.cc:315 msgid "Message" msgstr "メッセージ" #: ../pan/gui/pan.cc:330 msgid "Maximize" msgstr "" #: ../pan/gui/pan.cc:383 msgid "An Error has occurred!" msgstr "" #: ../pan/gui/pan.cc:397 #, fuzzy msgid "New Articles!" msgstr "次の記事へ(_A)" #: ../pan/gui/pan.cc:398 msgid "" "There are new\n" "articles available." msgstr "" #: ../pan/gui/pan.cc:465 msgid "Toggle on/offline" msgstr "" #: ../pan/gui/pan.cc:513 msgid "" "Thank you for trying Pan!\n" " \n" "To start newsreading, first Add a Server." msgstr "" #: ../pan/gui/pan.cc:595 msgid "" "General Options\n" " -h, --help Show this usage page.\n" " --verbose Be verbose (in non-GUI mode).\n" "\n" "URL Options\n" " --no-gui On news:message-id, dump the article to stdout.\n" "\n" "NZB Batch Options\n" " --nzb file1 file2 ... Process nzb files without launching all of Pan.\n" " -o path, --output=path Path to save attachments listed in the nzb " "files.\n" " --no-gui Only show console output, not the download " "queue.\n" msgstr "" #: ../pan/gui/pan.cc:867 msgid "Error: --no-gui used without nzb files or news:message-id." msgstr "" #: ../pan/gui/pan.cc:871 #, fuzzy, c-format msgid "Pan %s started" msgstr "Pan %s の起動完了" #: ../pan/gui/pan.cc:890 msgid "Please configure Pan's news servers before using it as an nzb client." msgstr "" #: ../pan/gui/pan.cc:1009 msgid "Pan notification" msgstr "" #: ../pan/gui/post-ui.cc:186 #, c-format msgid "Upload Queue : %ld Tasks, %ld KB (~ %.2f MB) total ." msgstr "" #: ../pan/gui/post-ui.cc:286 #, fuzzy, c-format msgid "Error setting custom spellchecker: %s" msgstr "ソケットへの書き込みエラー: %s" #: ../pan/gui/post-ui.cc:291 ../pan/gui/post-ui.cc:300 #, fuzzy, c-format msgid "Error setting spellchecker: %s" msgstr "ソケットへの書き込みエラー: %s" #: ../pan/gui/post-ui.cc:419 #, fuzzy msgid "_Profile" msgstr "プロファイル" #: ../pan/gui/post-ui.cc:420 #, fuzzy msgid "Set Editor" msgstr "エディター" #: ../pan/gui/post-ui.cc:422 #, fuzzy msgid "_Send Article" msgstr "/移動(_G)/親記事(_P)" #: ../pan/gui/post-ui.cc:422 #, fuzzy msgid "Send Article Now" msgstr "今すぐ送信" #: ../pan/gui/post-ui.cc:423 #, fuzzy msgid "_Send and Save Articles to NZB" msgstr "記事の添付を保存" #: ../pan/gui/post-ui.cc:423 #, fuzzy msgid "Send and Save Articles to NZB" msgstr "記事の添付を保存" #: ../pan/gui/post-ui.cc:424 #, fuzzy msgid "Set Character _Encoding..." msgstr "エンコーディング" #: ../pan/gui/post-ui.cc:425 #, fuzzy msgid "Set Content _Transfer Encoding..." msgstr "エンコーディング" #: ../pan/gui/post-ui.cc:426 #, fuzzy msgid "Sa_ve Draft" msgstr "プロファイルの保存" #: ../pan/gui/post-ui.cc:426 msgid "Save as a Draft for Future Posting" msgstr "" #: ../pan/gui/post-ui.cc:427 #, fuzzy msgid "_Open Draft..." msgstr "プロファイルの保存" #: ../pan/gui/post-ui.cc:427 #, fuzzy msgid "Open an Article Draft" msgstr "この記事の上の記事にジャンプします" #: ../pan/gui/post-ui.cc:432 #, fuzzy msgid "_Rot13" msgstr "Rot13" #: ../pan/gui/post-ui.cc:432 msgid "Rot13 Selected Text" msgstr "Rot13 選択した記事" #: ../pan/gui/post-ui.cc:433 #, fuzzy msgid "Run _Editor" msgstr "エディター" #: ../pan/gui/post-ui.cc:433 #, fuzzy msgid "Run Editor" msgstr "エディター" #: ../pan/gui/post-ui.cc:435 msgid "Add _Files to Queue" msgstr "" #: ../pan/gui/post-ui.cc:435 msgid "Add Files to Queue" msgstr "" #: ../pan/gui/post-ui.cc:450 ../pan/gui/post-ui.cc:451 #, fuzzy msgid "Remove from Queue" msgstr "新規サーバー" #: ../pan/gui/post-ui.cc:455 ../pan/gui/post-ui.cc:456 msgid "Clear List" msgstr "" #: ../pan/gui/post-ui.cc:460 ../pan/gui/post-ui.cc:461 msgid "Select Needed Parts" msgstr "" #: ../pan/gui/post-ui.cc:465 ../pan/gui/post-ui.cc:466 #: ../pan/gui/task-pane.cc:636 ../pan/gui/task-pane.cc:637 msgid "Move Up" msgstr "" #: ../pan/gui/post-ui.cc:470 ../pan/gui/post-ui.cc:471 #: ../pan/gui/task-pane.cc:641 ../pan/gui/task-pane.cc:642 msgid "Move Down" msgstr "" #: ../pan/gui/post-ui.cc:475 ../pan/gui/post-ui.cc:476 msgid "Move to Top" msgstr "" #: ../pan/gui/post-ui.cc:480 ../pan/gui/post-ui.cc:481 msgid "Move to Bottom" msgstr "" #: ../pan/gui/post-ui.cc:488 #, fuzzy msgid "_Wrap Text" msgstr "文章のラップ" #: ../pan/gui/post-ui.cc:488 #, fuzzy msgid "Wrap Text" msgstr "文章のラップ" #: ../pan/gui/post-ui.cc:489 #, fuzzy msgid "Always Run Editor" msgstr "エディター" #: ../pan/gui/post-ui.cc:490 #, fuzzy msgid "Remember Character Encoding for this Group" msgstr "エンコーディング" #: ../pan/gui/post-ui.cc:491 msgid "Thread Attached Replies" msgstr "" #: ../pan/gui/post-ui.cc:492 msgid "PGP-Encrypt the Message" msgstr "" #: ../pan/gui/post-ui.cc:493 msgid "PGP-Sign the Message" msgstr "" #: ../pan/gui/post-ui.cc:494 msgid "Check _Spelling" msgstr "" #: ../pan/gui/post-ui.cc:520 #, fuzzy msgid "New Article's Encoding:" msgstr "/記事のスコアを表示(_V)" #: ../pan/gui/post-ui.cc:530 #, fuzzy msgid "Content Transfer Encoding" msgstr "エンコーディング" #: ../pan/gui/post-ui.cc:531 #, fuzzy msgid "New Article's Content Transfer Encoding:" msgstr "/記事のスコアを表示(_V)" #: ../pan/gui/post-ui.cc:711 msgid "Your changes will be lost!" msgstr "" #: ../pan/gui/post-ui.cc:712 msgid "Close this window and lose your changes?" msgstr "" #: ../pan/gui/post-ui.cc:757 ../pan/gui/post-ui.cc:796 msgid "There were problems with this post." msgstr "" #: ../pan/gui/post-ui.cc:759 ../pan/gui/post-ui.cc:798 #: ../pan/gui/post-ui.cc:861 #, fuzzy msgid "Go Back" msgstr "/移動(_G)/前を読む" #: ../pan/gui/post-ui.cc:761 msgid "Post Anyway" msgstr "" #. Prompt the user #: ../pan/gui/post-ui.cc:790 #, fuzzy, c-format msgid "" "Message uses characters not specified in charset '%s' - possibly use '%s' " msgstr "" "メッセージは文字コード '%s' で規定されていない文字を使用しています - 代わり" "に '%s' を使いますか?" #: ../pan/gui/post-ui.cc:813 #, fuzzy msgid "Go _Online" msgstr "オンライン" #: ../pan/gui/post-ui.cc:860 msgid "The file queue is empty, so no files can be saved." msgstr "" #: ../pan/gui/post-ui.cc:1019 msgid "" "No posting server is set for this posting profile.\n" "Please edit the profile via Edit|Manage Posting Profiles." msgstr "" #: ../pan/gui/post-ui.cc:1054 #, fuzzy msgid "Pan is Offline." msgstr "Pan はオフラインです" #: ../pan/gui/post-ui.cc:1055 msgid "Go online to post the article?" msgstr "" #: ../pan/gui/post-ui.cc:1102 #, c-format msgid "" "Error signing/encrypting your message. Perhaps you misspelled your email-" "address (%s) ?" msgstr "" #: ../pan/gui/post-ui.cc:1267 #, fuzzy msgid "Error opening temporary file" msgstr "一時ファイルを開く時にエラー: \"%s\"" #: ../pan/gui/post-ui.cc:1279 #, c-format msgid "Error writing article to temporary file: %s" msgstr "記事を一時ファイルへ書き出す時にエラー: %s" #: ../pan/gui/post-ui.cc:1298 #, fuzzy, c-format msgid "Error parsing \"external editor\" command line: %s (Command was: %s)" msgstr "\"外部エディター\" コマンド行の解析時にエラー: %s" #: ../pan/gui/post-ui.cc:1339 #, c-format msgid "Error starting external editor: %s" msgstr "外部エディターの起動時にエラー: %s" #: ../pan/gui/post-ui.cc:1395 #, fuzzy msgid "Open Draft Article" msgstr "この記事の上の記事にジャンプします" #: ../pan/gui/post-ui.cc:1606 #, fuzzy msgid "Save Draft Article" msgstr "記事の保存(_S)" #: ../pan/gui/post-ui.cc:1803 #, fuzzy, c-format msgid "Couldn't parse signature command \"%s\": %s" msgstr "署名プログラム \"%s\" を実行できませんでした: %s" #: ../pan/gui/post-ui.cc:1839 #, fuzzy msgid "Couldn't convert signature to UTF-8." msgstr "" "署名ファイル '%s' を UTF-8 に変換できませんでした。署名ファイルは '%s' でなく" "てはなりません。" #: ../pan/gui/post-ui.cc:2334 #, fuzzy msgid "F_rom" msgstr "投稿者" #: ../pan/gui/post-ui.cc:2352 #, fuzzy msgid "_Subject" msgstr "件名(_S):" #: ../pan/gui/post-ui.cc:2365 #, fuzzy msgid "_Newsgroups" msgstr "/ニュースグループ(_N)" #: ../pan/gui/post-ui.cc:2379 #, fuzzy msgid "Mail _To" msgstr "メール宛先" #: ../pan/gui/post-ui.cc:2481 msgid "Delete from Queue" msgstr "" #: ../pan/gui/post-ui.cc:2494 msgid "No." msgstr "" #: ../pan/gui/post-ui.cc:2498 ../pan/gui/post-ui.cc:2592 #: ../pan/gui/post-ui.cc:2633 #, fuzzy msgid "Filename" msgstr "/ファイル(_F)" #: ../pan/gui/post-ui.cc:2500 msgid "Size (kB)" msgstr "" #: ../pan/gui/post-ui.cc:2600 msgid "The current filename" msgstr "" #: ../pan/gui/post-ui.cc:2604 #, fuzzy msgid "Subject Line" msgstr "件名" #: ../pan/gui/post-ui.cc:2612 msgid "The current Subject Line" msgstr "" #: ../pan/gui/post-ui.cc:2626 msgid "No. " msgstr "" #: ../pan/gui/post-ui.cc:2630 msgid "Enable/Disable" msgstr "" #: ../pan/gui/post-ui.cc:2664 #, fuzzy msgid "Follo_wup-To" msgstr "フォロー先:" #. i18n: "poster" is a key used by many newsreaders. probably safest to keep this key in english. #: ../pan/gui/post-ui.cc:2673 #, fuzzy msgid "" "The newsgroups where replies to your message should go. This is only needed " "if it differs from the \"Newsgroups\" header.\n" "\n" "To direct all replies to your email address, use \"Followup-To: poster\"" msgstr "" "投稿したメッセージへのリプライがどのニュースグループにいくかを表します。これ" "は \"投稿先グループ\" ヘッダーと異なる場合にのみ必要です。\n" "全てのリプライをメールにして欲しいのであれば、\"Followup-To: poster\" を使っ" "てください。" #: ../pan/gui/post-ui.cc:2679 #, fuzzy msgid "_Reply-To" msgstr "リプライ先" #: ../pan/gui/post-ui.cc:2687 msgid "" "The email account where mail replies to your posted message should go. This " "is only needed if it differs from the \"From\" header." msgstr "" "投稿したメッセージのリプライメールがどのメールアカウントにいくかを表します。" "これは \"送信元 (From:)\" ヘッダーと異なる場合にのみ必要になります。" #: ../pan/gui/post-ui.cc:2693 #, fuzzy msgid "_Custom Headers" msgstr "カスタムヘッダー" #: ../pan/gui/post-ui.cc:2717 #, fuzzy msgid "Add \"_User-Agent\" header" msgstr "\"User-Agent\" ヘッダーを追加" #: ../pan/gui/post-ui.cc:2724 #, fuzzy msgid "Add \"Message-_Id\" header" msgstr "Message-ID を付加" #: ../pan/gui/post-ui.cc:2855 #, fuzzy msgid "Select Parts" msgstr "全ての記事を取得します" #: ../pan/gui/post-ui.cc:2866 msgid "_Parts" msgstr "" #: ../pan/gui/post-ui.cc:3022 #, fuzzy msgid "Post Article" msgstr "記事の読み込み" #: ../pan/gui/post-ui.cc:3043 #, fuzzy msgid "_Message" msgstr "メッセージ" #: ../pan/gui/post-ui.cc:3044 #, fuzzy msgid "More _Headers" msgstr "ヘッダーの詳細" #: ../pan/gui/post-ui.cc:3045 msgid "File _Queue" msgstr "" #: ../pan/gui/post-ui.cc:3077 ../pan/gui/profiles-dialog.cc:478 #, no-c-format msgid "On %d, %n wrote:" msgstr "%d に %n さんは書きました:" #: ../pan/gui/post-ui.cc:3106 msgid "Add files to queue" msgstr "" #: ../pan/gui/post-ui.cc:3184 #, fuzzy msgid "Save Upload Queue as NZB File" msgstr "記事の添付を保存" #: ../pan/gui/prefs.cc:343 #, fuzzy, c-format msgid "Couldn't parse %s color \"%s\"" msgstr "署名コマンド \"%s\" を解析できませんでした" #: ../pan/gui/prefs-ui.cc:120 msgid "Grab Key" msgstr "" #: ../pan/gui/prefs-ui.cc:126 #, c-format msgid "" "Press the combination of the keys\n" "you want to use for \"%s\"." msgstr "" #: ../pan/gui/prefs-ui.cc:166 msgid "Edit Hotkey" msgstr "" #: ../pan/gui/prefs-ui.cc:228 msgid "Error: Shortkey is invalid!" msgstr "" #: ../pan/gui/prefs-ui.cc:244 msgid "Error: Shortkey already exists!" msgstr "" #: ../pan/gui/prefs-ui.cc:535 #, fuzzy msgid "Show only icons" msgstr "プロファイル情報" #: ../pan/gui/prefs-ui.cc:536 #, fuzzy msgid "Show only text" msgstr "/表示(_V)/本文ペインの表示(_Y)" #: ../pan/gui/prefs-ui.cc:537 #, fuzzy msgid "Show icons and text" msgstr "添付ファイルをディレクトリに保存(_T):" #: ../pan/gui/prefs-ui.cc:576 #, fuzzy msgid "Use GNOME Preferences" msgstr "オンライン設定" #: ../pan/gui/prefs-ui.cc:577 #, fuzzy msgid "Use KDE Preferences" msgstr "オンライン設定" #: ../pan/gui/prefs-ui.cc:578 #, fuzzy msgid "Use OS X Preferences" msgstr "オンライン設定" #: ../pan/gui/prefs-ui.cc:579 #, fuzzy msgid "Use Windows Preferences" msgstr "セッションの設定" #: ../pan/gui/prefs-ui.cc:580 #, fuzzy msgid "Custom Command:" msgstr "印刷コマンド:" #: ../pan/gui/prefs-ui.cc:632 #, fuzzy msgid "Disabled" msgstr "失敗しました" #: ../pan/gui/prefs-ui.cc:633 msgid "Only new (Score == 0)" msgstr "" #: ../pan/gui/prefs-ui.cc:634 #, fuzzy msgid "9999 or more" msgstr "/フィルター(_R)/スコアが -9999 にマッチ (無視)" #: ../pan/gui/prefs-ui.cc:635 msgid "5000 to 9998" msgstr "" #: ../pan/gui/prefs-ui.cc:636 msgid "1 to 4999" msgstr "" #: ../pan/gui/prefs-ui.cc:637 msgid "-9998 to -1" msgstr "" #: ../pan/gui/prefs-ui.cc:638 #, fuzzy msgid "-9999 or less" msgstr "/フィルター(_R)/スコアが -9999 にマッチ (無視)" #: ../pan/gui/prefs-ui.cc:702 #, c-format msgid "Select default global charset. Current setting : %s ." msgstr "" #: ../pan/gui/prefs-ui.cc:738 msgid "Global Charset Settings" msgstr "" #: ../pan/gui/prefs-ui.cc:832 ../pan/gui/task-pane.cc:770 #, fuzzy msgid "State" msgstr "ステータス" #: ../pan/gui/prefs-ui.cc:866 #, fuzzy msgid "Enabled" msgstr "失敗しました" #: ../pan/gui/prefs-ui.cc:870 #, fuzzy msgid "Column Name" msgstr "カラム" #: ../pan/gui/prefs-ui.cc:908 #, fuzzy msgid "Pan: Preferences" msgstr "Pan 設定" #: ../pan/gui/prefs-ui.cc:923 msgid "Mouse" msgstr "マウス" #: ../pan/gui/prefs-ui.cc:925 #, fuzzy msgid "Single-click activates, rather than selects, _groups" msgstr "シングルクリックでグループを読みこむのではなく、選択(_K)" #: ../pan/gui/prefs-ui.cc:927 #, fuzzy msgid "Single-click activates, rather than selects, _articles" msgstr "シングルクリックでヘッダーを読みこむのではなく、選択(_R)" #: ../pan/gui/prefs-ui.cc:930 msgid "Groups" msgstr "グループ" #: ../pan/gui/prefs-ui.cc:932 #, fuzzy msgid "Get new headers in subscribed groups on _startup" msgstr "購読グループの新規ヘッダーを取得します" #: ../pan/gui/prefs-ui.cc:934 #, fuzzy msgid "Get new headers when _entering group" msgstr "グループを読み込むときに新しいヘッダーをダウンロードする(_G)" #: ../pan/gui/prefs-ui.cc:936 #, fuzzy msgid "Mark entire group _read when leaving group" msgstr "グループから抜ける時に記事を既読にする(_M)" #: ../pan/gui/prefs-ui.cc:938 #, fuzzy msgid "Mark entire group read before getting _new headers" msgstr "グループから抜ける時に記事を既読にする(_M)" #: ../pan/gui/prefs-ui.cc:940 #, fuzzy msgid "E_xpand all threads when entering group" msgstr "グループを読み込むときに新しいヘッダーをダウンロードする(_G)" #: ../pan/gui/prefs-ui.cc:945 #, fuzzy msgid "Articles" msgstr "/記事(_A)" #: ../pan/gui/prefs-ui.cc:947 #, fuzzy msgid "Space selects next article rather than next unread" msgstr "選択した記事とその添付物を保存します" #: ../pan/gui/prefs-ui.cc:949 #, fuzzy msgid "Expand threads upon selection" msgstr "/編集(_E)/スレッドを選択範囲に追加(_T)" #: ../pan/gui/prefs-ui.cc:951 msgid "Always show article deletion confirmation dialog" msgstr "" #: ../pan/gui/prefs-ui.cc:953 #, fuzzy msgid "Smooth scrolling" msgstr "スムーズスクロールの速度(_M):" #: ../pan/gui/prefs-ui.cc:958 #, fuzzy msgid "Article Cache" msgstr "記事キャッシュ" #: ../pan/gui/prefs-ui.cc:959 msgid "Clear article cache on shutdown" msgstr "" #: ../pan/gui/prefs-ui.cc:962 msgid "Size of article cache (in MiB) :" msgstr "" #: ../pan/gui/prefs-ui.cc:967 msgid "File extension for Cached Articles: " msgstr "" #: ../pan/gui/prefs-ui.cc:972 msgid "Tabs" msgstr "" #: ../pan/gui/prefs-ui.cc:977 #, fuzzy msgid "_Behavior" msgstr "マウスの振る舞い(_V)" #: ../pan/gui/prefs-ui.cc:977 #, fuzzy msgid "Behavior" msgstr "マウスの振る舞い(_V)" #: ../pan/gui/prefs-ui.cc:983 #, fuzzy msgid "Language Settings" msgstr "その他の設定" #. systray and notify popup #: ../pan/gui/prefs-ui.cc:992 msgid "System Tray Behavior" msgstr "" #: ../pan/gui/prefs-ui.cc:994 msgid "Hide to system tray" msgstr "" #: ../pan/gui/prefs-ui.cc:996 msgid "Start Pan minimized" msgstr "" #: ../pan/gui/prefs-ui.cc:999 #, fuzzy msgid "Show notifications" msgstr "プロファイル情報" #. allow multiple instances (seperate, not communicating with dbus) #: ../pan/gui/prefs-ui.cc:1004 #, fuzzy msgid "Startup Behavior" msgstr "マウスの振る舞い(_V)" #: ../pan/gui/prefs-ui.cc:1006 msgid "Allow multiple instances of Pan" msgstr "" #: ../pan/gui/prefs-ui.cc:1011 #, fuzzy msgid "Autosave Article Draft" msgstr "この記事の上の記事にジャンプします" #: ../pan/gui/prefs-ui.cc:1013 #, fuzzy msgid "Minutes to autosave the current Article Draft: " msgstr "この記事の上の記事にジャンプします" #: ../pan/gui/prefs-ui.cc:1018 #, fuzzy msgid "Autosave Articles" msgstr "名前を付けて記事を保存..." #: ../pan/gui/prefs-ui.cc:1020 msgid "Minutes to autosave newsrc files: " msgstr "" #: ../pan/gui/prefs-ui.cc:1026 msgid "_Miscellaneous" msgstr "" #: ../pan/gui/prefs-ui.cc:1026 msgid "Miscellaneous" msgstr "" #: ../pan/gui/prefs-ui.cc:1031 msgid "Pane Layout" msgstr "ペインの配置" #: ../pan/gui/prefs-ui.cc:1050 msgid "1=Groups, 2=Headers, 3=Body" msgstr "" #: ../pan/gui/prefs-ui.cc:1052 msgid "1=Groups, 2=Body, 3=Headers" msgstr "" #: ../pan/gui/prefs-ui.cc:1054 msgid "1=Headers, 2=Groups, 3=Body" msgstr "" #: ../pan/gui/prefs-ui.cc:1056 msgid "1=Headers, 2=Body, 3=Groups" msgstr "" #: ../pan/gui/prefs-ui.cc:1058 msgid "1=Body, 2=Groups, 3=Headers" msgstr "" #: ../pan/gui/prefs-ui.cc:1060 msgid "1=Body, 2=Headers, 3=Groups" msgstr "" #: ../pan/gui/prefs-ui.cc:1064 #, fuzzy msgid "Layout" msgstr "配置(_L)" #: ../pan/gui/prefs-ui.cc:1069 #, fuzzy msgid "Header Pane Columns" msgstr "ヘッダーペイン" #: ../pan/gui/prefs-ui.cc:1073 #, fuzzy msgid "_Headers" msgstr "ヘッダー" #: ../pan/gui/prefs-ui.cc:1073 #, fuzzy msgid "Headers" msgstr "ヘッダー" #: ../pan/gui/prefs-ui.cc:1079 msgid "" "This menu lets you configure Pan to take certain actions on your behalf " "automatically, based on a post's score." msgstr "" #: ../pan/gui/prefs-ui.cc:1082 msgid "_Delete posts scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1084 msgid "Mark posts _read scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1086 msgid "_Cache posts scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1088 msgid "Download _attachments of posts scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1091 #, fuzzy msgid "Actions" msgstr "アクション" #: ../pan/gui/prefs-ui.cc:1096 ../pan/gui/prefs-ui.cc:1117 msgid "Fonts" msgstr "フォント" #: ../pan/gui/prefs-ui.cc:1098 msgid "Use custom font in Group Pane:" msgstr "グループペインでカスタムフォントを使う:" #: ../pan/gui/prefs-ui.cc:1103 msgid "Use custom font in Header Pane:" msgstr "ヘッダーペインでカスタムフォントを使う:" #: ../pan/gui/prefs-ui.cc:1108 msgid "Use custom font in Body Pane:" msgstr "本文ペインでカスタムフォントを使う:" #: ../pan/gui/prefs-ui.cc:1113 #, fuzzy msgid "Monospace font:" msgstr "等幅フォント(_E):" #: ../pan/gui/prefs-ui.cc:1117 #, fuzzy msgid "_Fonts" msgstr "フォント" #: ../pan/gui/prefs-ui.cc:1122 msgid "Header Pane" msgstr "ヘッダーペイン" #: ../pan/gui/prefs-ui.cc:1125 ../pan/gui/prefs-ui.cc:1131 #: ../pan/gui/prefs-ui.cc:1137 ../pan/gui/prefs-ui.cc:1143 #: ../pan/gui/prefs-ui.cc:1149 ../pan/gui/prefs-ui.cc:1155 msgid "Text:" msgstr "テキスト:" #: ../pan/gui/prefs-ui.cc:1127 ../pan/gui/prefs-ui.cc:1133 #: ../pan/gui/prefs-ui.cc:1139 ../pan/gui/prefs-ui.cc:1145 #: ../pan/gui/prefs-ui.cc:1151 ../pan/gui/prefs-ui.cc:1157 msgid "Background:" msgstr "背景" #: ../pan/gui/prefs-ui.cc:1129 #, fuzzy msgid "Scores of 9999 or more:" msgstr "/フィルター(_R)/スコアが -9999 にマッチ (無視)" #: ../pan/gui/prefs-ui.cc:1135 msgid "Scores from 5000 to 9998:" msgstr "" #: ../pan/gui/prefs-ui.cc:1141 msgid "Scores from 1 to 4999:" msgstr "" #: ../pan/gui/prefs-ui.cc:1147 msgid "Scores from -9998 to -1:" msgstr "" #: ../pan/gui/prefs-ui.cc:1153 #, fuzzy msgid "Scores of -9999 or less:" msgstr "/フィルター(_R)/スコアが -9999 にマッチ (無視)" #: ../pan/gui/prefs-ui.cc:1159 msgid "Read collapsed thread:" msgstr "" #: ../pan/gui/prefs-ui.cc:1161 #, fuzzy msgid "Body Pane" msgstr "本文ペイン(_Y)" #: ../pan/gui/prefs-ui.cc:1167 #, fuzzy msgid "Quoted text:" msgstr "引用された文 2(_2):" #: ../pan/gui/prefs-ui.cc:1168 #, fuzzy msgid "URL:" msgstr "URL:" #: ../pan/gui/prefs-ui.cc:1169 #, fuzzy msgid "Signature:" msgstr "署名ファイル(_S):" #: ../pan/gui/prefs-ui.cc:1171 #, fuzzy msgid "_Colors" msgstr "カラー" #: ../pan/gui/prefs-ui.cc:1171 #, fuzzy msgid "Colors" msgstr "カラー" #: ../pan/gui/prefs-ui.cc:1176 #, fuzzy msgid "Preferred Applications" msgstr "アプリケーション(_P)" #: ../pan/gui/prefs-ui.cc:1180 #, fuzzy msgid "_Web browser:" msgstr "ウェブブラウザー (%s は URL)(_W):" #: ../pan/gui/prefs-ui.cc:1183 #, fuzzy msgid "_Mail reader:" msgstr "メールサーバー" #: ../pan/gui/prefs-ui.cc:1185 #, fuzzy msgid "_Text editor:" msgstr "エディター" #: ../pan/gui/prefs-ui.cc:1187 #, fuzzy msgid "_Applications" msgstr "アプリケーション(_P)" #: ../pan/gui/prefs-ui.cc:1187 #, fuzzy msgid "Applications" msgstr "アプリケーション(_P)" #: ../pan/gui/prefs-ui.cc:1192 ../pan/gui/task-pane.cc:512 #, fuzzy msgid "Encoding" msgstr "\"%s\" の解読中" #: ../pan/gui/prefs-ui.cc:1196 msgid "Default bytes per file (for encoder): " msgstr "" #: ../pan/gui/prefs-ui.cc:1201 msgid "_Upload" msgstr "" #: ../pan/gui/prefs-ui.cc:1201 #, fuzzy msgid "Upload" msgstr "読みこみ中" #: ../pan/gui/prefs-ui.cc:1219 msgid "_Hotkeys" msgstr "" #: ../pan/gui/prefs-ui.cc:1219 msgid "Hotkeys" msgstr "" #: ../pan/gui/profiles-dialog.cc:83 msgid "Please choose your Email Address according to your PGP key's user id." msgstr "" #: ../pan/gui/profiles-dialog.cc:131 #, fuzzy msgid "Posting Profile" msgstr "Pan: プロファイル" #: ../pan/gui/profiles-dialog.cc:143 msgid "Profile Information" msgstr "プロファイル情報" #: ../pan/gui/profiles-dialog.cc:147 msgid "_Profile Name:" msgstr "プロファイル名(_P):" #: ../pan/gui/profiles-dialog.cc:150 msgid "Required Information" msgstr "必要な情報" #: ../pan/gui/profiles-dialog.cc:154 msgid "_Full Name:" msgstr "フルネーム(_F):" #: ../pan/gui/profiles-dialog.cc:158 msgid "" "Your Email Address.\n" "Note that this has to match your PGP Signature's Address\n" "if you want to PGP-Sign or Encrypt your messages correctly." msgstr "" #: ../pan/gui/profiles-dialog.cc:162 msgid "_Email Address:" msgstr "E-メールアドレス(_E):" #: ../pan/gui/profiles-dialog.cc:164 #, fuzzy msgid "_Post Articles via:" msgstr "記事の読み込み" #: ../pan/gui/profiles-dialog.cc:167 #, fuzzy msgid "Signature" msgstr "署名ファイル(_S):" #: ../pan/gui/profiles-dialog.cc:170 #, fuzzy msgid "_Use a Signature" msgstr "署名ファイル(_S):" #: ../pan/gui/profiles-dialog.cc:174 #, fuzzy msgid "Signature File" msgstr "署名ファイルを選択" #: ../pan/gui/profiles-dialog.cc:184 #, fuzzy msgid "Text File" msgstr "次の記事へ(_A)" #: ../pan/gui/profiles-dialog.cc:186 #, fuzzy msgid "Text" msgstr "テキスト:" #: ../pan/gui/profiles-dialog.cc:188 #, fuzzy msgid "Command" msgstr "印刷コマンド:" #: ../pan/gui/profiles-dialog.cc:191 #, fuzzy msgid "PGP Signature" msgstr "署名ファイル(_S):" #: ../pan/gui/profiles-dialog.cc:196 #, fuzzy msgid "Signature Type : " msgstr "署名ファイル(_S):" #: ../pan/gui/profiles-dialog.cc:223 msgid "X-Face (Avatar)" msgstr "" #: ../pan/gui/profiles-dialog.cc:226 msgid "" "You can add an avatar icon to your articles with a unique X-Face code. \n" "Add the code without the trailing \"X-Face:\" \n" " if it was generated by a helper program (for example http://www.dairiki.org/" "xface/xface.php)." msgstr "" #: ../pan/gui/profiles-dialog.cc:229 msgid "_X-Face:" msgstr "" #: ../pan/gui/profiles-dialog.cc:231 msgid "Optional Information" msgstr "オプション情報" #: ../pan/gui/profiles-dialog.cc:236 #, fuzzy msgid "" "When posting to Usenet, your article's Message-ID contains a domain name. \n" "You can set a custom domain name here, or leave it blank to let Pan use the " "domain name from your email address." msgstr "" "Usenet に投稿する際、記事の Message-Id にはドメイン名が含まれます。ここでドメ" "イン名を自由に設定できます。空のままにしておくと、Pan はあなたのメールアドレ" "スからドメインを取り出して使用します。" #: ../pan/gui/profiles-dialog.cc:239 msgid "Message-ID _Domain Name:" msgstr "Message-ID のドメイン名(_D):" #: ../pan/gui/profiles-dialog.cc:243 #, c-format msgid "" "%i for Message-ID\n" "%a for Author and Address\n" "%n for Author name\n" "%d for Date" msgstr "" "%i は Message-ID\n" "%a は 投稿者とアドレス\n" "%n は 投稿者名\n" "%d は 日付" #: ../pan/gui/profiles-dialog.cc:244 msgid "_Attribution:" msgstr "属性(_A):" #: ../pan/gui/profiles-dialog.cc:268 msgid "" "Extra headers to be included in your posts, such as\n" "Reply-To: \"Your Name\"\n" "Organization: Your Organization\n" msgstr "" #: ../pan/gui/profiles-dialog.cc:278 #, fuzzy msgid "E_xtra Headers:" msgstr "追加ヘッダー" #: ../pan/gui/profiles-dialog.cc:323 #, fuzzy msgid "Invalid email address." msgstr "アドレス \"%s\" は正しくありません" #: ../pan/gui/profiles-dialog.cc:324 msgid "Please use an address of the form joe@somewhere.org" msgstr "" #: ../pan/gui/profiles-dialog.cc:479 msgid "New Profile" msgstr "新規のプロファイル" #: ../pan/gui/profiles-dialog.cc:525 #, fuzzy msgid "Posting Profiles" msgstr "/ツール(_T)/投稿時のプロファイル(_P)..." #: ../pan/gui/profiles-dialog.cc:541 #, fuzzy msgid "Profiles" msgstr "プロファイル" #: ../pan/gui/save-attach-ui.cc:77 ../pan/gui/save-ui.cc:77 #, fuzzy, c-format msgid "" "%g - group as one directory (alt.binaries.pictures.trains)\n" "%G - group as nested directory (/alt/binaries/pictures/trains)\n" "%s - subject line excerpt\n" "%S - subject line\n" " \n" "\"/home/user/News/Pan/%g\" becomes\n" "\"/home/user/News/Pan/alt.binaries.pictures.trains\", and\n" "\"/home/user/News/Pan/%G\" becomes\n" "\"/home/user/News/Pan/alt/binaries/pictures/trains\"," msgstr "" "%g - グループを1ディレクトリで (alt.binaries.pictures.trains)\n" "%G - グループを階層化したディレクトリで (/alt/binaries/pictures/trains)\n" " \n" "\"/home/user/News/Pan/%g\" は\n" "\"/home/user/News/Pan/alt.binaries.pictures.trains\" に、\n" "\"/home/user/News/Pan/%G\" は\n" "\"/home/user/News/Pan/alt/binaries/pictures/trains\" になります" #: ../pan/gui/save-attach-ui.cc:223 ../pan/gui/save-ui.cc:242 msgid "Add to the queue sorted by date posted" msgstr "" #: ../pan/gui/save-attach-ui.cc:224 ../pan/gui/save-ui.cc:243 #, fuzzy msgid "Add to the front of the queue" msgstr "タスクマネージャーの一覧の最後に追加(_O)" #: ../pan/gui/save-attach-ui.cc:225 ../pan/gui/save-ui.cc:244 #, fuzzy msgid "Add to the back of the queue" msgstr "キューの末尾にタスクを追加する" #: ../pan/gui/save-attach-ui.cc:257 #, fuzzy msgid "Pan: Save Attachments" msgstr "記事の添付を保存" #: ../pan/gui/save-attach-ui.cc:282 ../pan/gui/save-attach-ui.cc:300 #: ../pan/gui/save-ui.cc:296 ../pan/gui/save-ui.cc:314 #, fuzzy msgid "_Location:" msgstr "アクション" #: ../pan/gui/save-attach-ui.cc:286 ../pan/gui/save-ui.cc:300 #, fuzzy msgid "Save Articles" msgstr "名前を付けて記事を保存..." #: ../pan/gui/save-attach-ui.cc:303 ../pan/gui/save-ui.cc:317 #, c-format msgid "_Group's path: %s" msgstr "" #: ../pan/gui/save-attach-ui.cc:314 ../pan/gui/save-ui.cc:332 #, fuzzy msgid "_Priority:" msgstr "ポート:" #: ../pan/gui/save-ui.cc:233 #, fuzzy msgid "Save attachments" msgstr "記事の添付を保存" #: ../pan/gui/save-ui.cc:234 #, fuzzy msgid "Save text" msgstr "記事テキストを保存(_X)" #: ../pan/gui/save-ui.cc:235 #, fuzzy msgid "Save attachments and text" msgstr "添付ファイルをディレクトリに保存(_T):" #: ../pan/gui/save-ui.cc:271 #, fuzzy msgid "Pan: Save Articles" msgstr "Pan: 名前を付けて添付ファイルを保存" #: ../pan/gui/save-ui.cc:328 #, fuzzy msgid "_Action:" msgstr "アクション" #: ../pan/gui/score-add-ui.cc:89 msgid "is more than" msgstr "" #: ../pan/gui/score-add-ui.cc:90 msgid "is at most" msgstr "" #: ../pan/gui/score-add-ui.cc:112 #, fuzzy msgid "increase the article's score by" msgstr "記事の整形/ワードラップ(_L)" #: ../pan/gui/score-add-ui.cc:113 #, fuzzy msgid "decrease the article's score by" msgstr "記事の整形/ワードラップ(_L)" #: ../pan/gui/score-add-ui.cc:114 #, fuzzy msgid "set the article's score to" msgstr "スコアを設定" #: ../pan/gui/score-add-ui.cc:115 #, fuzzy msgid "watch the article (set its score to 9999)" msgstr "監視する(スコアは 9999 に設定)(_W)" #: ../pan/gui/score-add-ui.cc:116 #, fuzzy msgid "ignore the article (set its score to -9999)" msgstr "無視する(スコアは -9999 に設定)(_I)" #: ../pan/gui/score-add-ui.cc:141 #, fuzzy msgid "References" msgstr "参照(_R)" #: ../pan/gui/score-add-ui.cc:142 #, fuzzy msgid "Line Count" msgstr "%d 行目、%d カラム目" #: ../pan/gui/score-add-ui.cc:143 msgid "Byte Count" msgstr "" #: ../pan/gui/score-add-ui.cc:144 msgid "Crosspost Group Count" msgstr "" #: ../pan/gui/score-add-ui.cc:145 msgid "Age (in days)" msgstr "" #: ../pan/gui/score-add-ui.cc:167 msgid "for the next month" msgstr "" #: ../pan/gui/score-add-ui.cc:168 msgid "for the next six months" msgstr "" #: ../pan/gui/score-add-ui.cc:169 #, fuzzy msgid "forever" msgstr "サーバー" #: ../pan/gui/score-add-ui.cc:194 msgid "contains" msgstr "含む" #: ../pan/gui/score-add-ui.cc:195 #, fuzzy msgid "doesn't contain" msgstr "含まない" #: ../pan/gui/score-add-ui.cc:196 msgid "is" msgstr "等しい" #: ../pan/gui/score-add-ui.cc:197 #, fuzzy msgid "isn't" msgstr "等しくない" #: ../pan/gui/score-add-ui.cc:198 msgid "starts with" msgstr "…で始まる" #: ../pan/gui/score-add-ui.cc:199 msgid "ends with" msgstr "…で終わる" #: ../pan/gui/score-add-ui.cc:200 #, fuzzy msgid "matches regex" msgstr "正規表現に一致" #: ../pan/gui/score-add-ui.cc:481 #, fuzzy msgid "Another rule already sets this article's score." msgstr "記事の整形/ワードラップ(_L)" #: ../pan/gui/score-add-ui.cc:482 msgid "You may want to go back or delete the old rule." msgstr "" #: ../pan/gui/score-add-ui.cc:553 msgid "Add and Re_score" msgstr "追加して再スコア(_S)" #: ../pan/gui/score-add-ui.cc:604 ../pan/gui/score-add-ui.cc:624 #, fuzzy msgid "New Scoring Rule" msgstr "新規スコア" #: ../pan/gui/score-add-ui.cc:635 msgid "If the group name" msgstr "" #: ../pan/gui/score-add-ui.cc:642 #, fuzzy msgid "And the article's" msgstr "記事" #: ../pan/gui/score-view-ui.cc:56 msgid "Close and Re_score" msgstr "閉じて再スコア(_S)" #: ../pan/gui/score-view-ui.cc:154 #, fuzzy, c-format msgid "File %s, Lines %d - %d" msgstr "スコアファイル %s, %d行目: %s (%s)" #: ../pan/gui/score-view-ui.cc:182 #, fuzzy msgid "Pan: Article's Scores" msgstr "Pan: 記事のスコアを表示" #: ../pan/gui/score-view-ui.cc:208 #, fuzzy msgid "Add" msgstr "追加" #: ../pan/gui/score-view-ui.cc:213 msgid "New Score" msgstr "新規スコア" #: ../pan/gui/score-view-ui.cc:218 msgid "Criteria" msgstr "検索条件" #: ../pan/gui/score-view-ui.cc:241 #, fuzzy msgid "Add a New Scoring Rule" msgstr "新規スコアを追加" #: ../pan/gui/score-view-ui.cc:248 #, fuzzy msgid "Remove the Selected Scoring Rule" msgstr "選択したスコアを削除" #: ../pan/gui/server-ui.cc:221 msgid "Please specify the server's address." msgstr "" #: ../pan/gui/server-ui.cc:264 msgid "Import SSL certificate (PEM format) from File" msgstr "" #. create the dialog #: ../pan/gui/server-ui.cc:290 ../pan/gui/server-ui.cc:869 #, fuzzy msgid "Add a Server" msgstr "新規にサーバーを追加" #: ../pan/gui/server-ui.cc:290 ../pan/gui/server-ui.cc:875 #, fuzzy msgid "Edit a Server's Settings" msgstr "サーバーごとの設定" #: ../pan/gui/server-ui.cc:310 #, fuzzy msgid "Location" msgstr "アクション" #: ../pan/gui/server-ui.cc:314 msgid "The news server's actual address, e.g. \"news.mynewsserver.com\"" msgstr "ニュースサーバーの実アドレス。例: \"news.mynewsserver.com\"" #: ../pan/gui/server-ui.cc:315 msgid "_Address:" msgstr "アドレス(_A):" #: ../pan/gui/server-ui.cc:319 #, fuzzy msgid "The news server's port number. Typically 119." msgstr "ニュースサーバーのポート番号。たいていの場合は 119 です。" #: ../pan/gui/server-ui.cc:320 msgid "Por_t:" msgstr "ポート(_T):" #: ../pan/gui/server-ui.cc:323 msgid "Login (if Required)" msgstr "" #: ../pan/gui/server-ui.cc:327 msgid "_Username:" msgstr "ユーザー名(_U):" #: ../pan/gui/server-ui.cc:328 msgid "" "The username to give the server when asked. If your server doesn't require " "authentication, you can leave this blank." msgstr "" #: ../pan/gui/server-ui.cc:332 msgid "_Password:" msgstr "パスワード(_P):" #: ../pan/gui/server-ui.cc:333 msgid "" "The password to give the server when asked. If your server doesn't require " "authentication, you can leave this blank." msgstr "" #: ../pan/gui/server-ui.cc:336 #, fuzzy msgid "Settings" msgstr "その他の設定" #: ../pan/gui/server-ui.cc:343 msgid "Connection _Limit:" msgstr "接続上限(_L):" #: ../pan/gui/server-ui.cc:347 msgid "After Two Weeks" msgstr "" #: ../pan/gui/server-ui.cc:348 msgid "After One Month" msgstr "" #: ../pan/gui/server-ui.cc:349 msgid "After Two Months" msgstr "" #: ../pan/gui/server-ui.cc:350 msgid "After Three Months" msgstr "" #: ../pan/gui/server-ui.cc:351 msgid "After Six Months" msgstr "" #: ../pan/gui/server-ui.cc:352 #, fuzzy msgid "Never Expire Old Articles" msgstr "破棄しない(_V)" #: ../pan/gui/server-ui.cc:366 #, fuzzy msgid "E_xpire Old Articles:" msgstr "全ての記事を取得します" #: ../pan/gui/server-ui.cc:370 #, fuzzy msgid "Primary" msgstr "優先度" #: ../pan/gui/server-ui.cc:371 msgid "Fallback" msgstr "" #: ../pan/gui/server-ui.cc:385 #, fuzzy msgid "Server Rank:" msgstr "サーバー" #: ../pan/gui/server-ui.cc:389 msgid "" "Fallback servers are used for articles that can't be found on the " "primaries. One common approach is to use free servers as primaries and " "subscription servers as fallbacks." msgstr "" #: ../pan/gui/server-ui.cc:396 msgid "Security" msgstr "" #: ../pan/gui/server-ui.cc:401 msgid "Use Plaintext (Unsecured) Connections" msgstr "" #: ../pan/gui/server-ui.cc:402 #, fuzzy msgid "Use Secure SSL Connections" msgstr "接続していません" #: ../pan/gui/server-ui.cc:418 msgid "TLS (SSL) Options:" msgstr "" #: ../pan/gui/server-ui.cc:423 msgid "" "You can set the option for using/disabling secure SSL/TLS connections here. " "If you enable SSL/TLS, your data is encrypted and secure. It is encouraged " "to use this option for privacy reasons." msgstr "" #: ../pan/gui/server-ui.cc:428 msgid "Always trust this server's certificate" msgstr "" #: ../pan/gui/server-ui.cc:602 #, c-format msgid "Really delete \"%s\"?" msgstr "" #: ../pan/gui/server-ui.cc:691 msgid "No information available." msgstr "" #: ../pan/gui/server-ui.cc:697 #, c-format msgid "Server Certificate for '%s'" msgstr "" #: ../pan/gui/server-ui.cc:795 #, c-format msgid "Really delete certificate for \"%s\"?" msgstr "" #. dialog #: ../pan/gui/server-ui.cc:822 ../pan/gui/server-ui.cc:843 #: ../pan/gui/server-ui.cc:941 msgid "Servers" msgstr "サーバー" #: ../pan/gui/server-ui.cc:882 #, fuzzy msgid "Remove a Server" msgstr "新規サーバー" #. dialog #: ../pan/gui/server-ui.cc:915 msgid "SSL Certificates" msgstr "" #: ../pan/gui/server-ui.cc:936 #, fuzzy msgid "Certificates" msgstr "/記事(_A)" #: ../pan/gui/server-ui.cc:967 msgid "Import Certificate" msgstr "" #: ../pan/gui/server-ui.cc:973 msgid "Inspect Certificate" msgstr "" #: ../pan/gui/server-ui.cc:980 #, fuzzy msgid "Remove Certificate" msgstr "新規サーバー" #: ../pan/gui/task-pane.cc:143 #, c-format msgid "" "\n" "Upload\n" "\n" "Subject: \"%s\"\n" "From: %s\n" "Groups: %s\n" "Sourcefile: %s\n" msgstr "" #: ../pan/gui/task-pane.cc:155 #, c-format msgid "" "\n" "Download\n" "\n" "Subject: \"%s\"\n" "From: %s\n" "Date: %s\n" "Groups: %s\n" "Save Path: %s\n" msgstr "" #: ../pan/gui/task-pane.cc:157 #, fuzzy msgid "unknown" msgstr "不明" #: ../pan/gui/task-pane.cc:263 msgid "Choose new destination for selected Tasks" msgstr "" #: ../pan/gui/task-pane.cc:417 #, fuzzy, c-format msgid "Pan: Tasks (%d Queued, %d Running, %d Stopped)" msgstr "Pan %s タスクマネージャー (キュー %d、実行中 %d、停止 %d)" #: ../pan/gui/task-pane.cc:419 #, fuzzy, c-format msgid "Pan: Tasks (%d Queued, %d Running)" msgstr "Pan %s タスクマネージャー (キュー %d、実行中 %d)" #: ../pan/gui/task-pane.cc:421 #, fuzzy, c-format msgid "Pan: Tasks" msgstr "Pan: タスクマネージャー" #: ../pan/gui/task-pane.cc:446 #, fuzzy, c-format msgid "%lu selected, %s" msgstr "(%u 個選択)" #: ../pan/gui/task-pane.cc:510 msgid "Running" msgstr "実行中" #: ../pan/gui/task-pane.cc:511 #, fuzzy msgid "Decoding" msgstr "\"%s\" の解読中" #: ../pan/gui/task-pane.cc:513 #, fuzzy msgid "Queued for Decode" msgstr "保存待ち" #: ../pan/gui/task-pane.cc:514 #, fuzzy msgid "Queued for Encode" msgstr "保存待ち" #: ../pan/gui/task-pane.cc:515 msgid "Queued" msgstr "キューに入れました" #: ../pan/gui/task-pane.cc:516 msgid "Stopped" msgstr "停止" #: ../pan/gui/task-pane.cc:517 msgid "Removing" msgstr "削除中" #: ../pan/gui/task-pane.cc:546 #, fuzzy, c-format msgid "%d%% Done" msgstr "% 完了" #: ../pan/gui/task-pane.cc:552 #, fuzzy, c-format msgid "%d:%02d:%02d Remaining (%d @ %lu KiB/s)" msgstr "%.2f Kバイト/秒、残り %d:%02d:%02d" #: ../pan/gui/task-pane.cc:646 ../pan/gui/task-pane.cc:647 msgid "Move To Top" msgstr "" #: ../pan/gui/task-pane.cc:651 ../pan/gui/task-pane.cc:652 msgid "Move To Bottom" msgstr "" #: ../pan/gui/task-pane.cc:656 ../pan/gui/task-pane.cc:657 #, fuzzy msgid "Stop Task" msgstr "タスク無し" #: ../pan/gui/task-pane.cc:661 ../pan/gui/task-pane.cc:662 #, fuzzy msgid "Delete Task" msgstr "スレッドを削除します" #: ../pan/gui/task-pane.cc:666 ../pan/gui/task-pane.cc:667 #, fuzzy msgid "Restart Task" msgstr "選択したタスクを再起動" #: ../pan/gui/task-pane.cc:671 ../pan/gui/task-pane.cc:672 msgid "Change Download Destination" msgstr "" #: ../pan/gui/task-pane.cc:729 #, fuzzy msgid "_Online" msgstr "オンライン" #: ../pan/gui/task-pane.cc:746 #, fuzzy msgid "Restart Tasks" msgstr "選択したタスクを再起動" #: ../pan/gui/task-pane.cc:748 #, fuzzy msgid "Stop Tasks" msgstr "タスク無し" #: ../pan/gui/task-pane.cc:750 #, fuzzy msgid "Delete Tasks" msgstr "スレッドを削除します" #: ../pan/gui/url.cc:123 #, fuzzy, c-format msgid "Error starting URL: %s (Command was: %s)" msgstr "\"ウェブブラウザー\" コマンド行の解析時にエラー: %s" #: ../pan/tasks/decoder.cc:115 #, fuzzy, c-format msgid "Couldn't save file \"%s\": %s" msgstr "署名ファイル \"%s\" を読みこめませんでした: %s" #: ../pan/tasks/decoder.cc:137 ../pan/tasks/encoder.cc:136 msgid "Error initializing uulib" msgstr "" #: ../pan/tasks/decoder.cc:152 ../pan/tasks/socket-impl-gio.cc:352 #: ../pan/tasks/socket-impl-openssl.cc:634 #, fuzzy, c-format msgid "Error reading from %s: %s" msgstr "ソケットからの読み込みエラー: %s" #: ../pan/tasks/decoder.cc:192 #, c-format msgid "Saved \"%s\"" msgstr "\"%s\" の保存完了" #: ../pan/tasks/decoder.cc:199 #, fuzzy, c-format msgid "" "Error saving \"%s\":\n" "%s." msgstr "\"%s\" の読み込みエラー: %s" #: ../pan/tasks/decoder.cc:314 ../pan/tasks/task-article.cc:350 #, fuzzy, c-format msgid "Decoding %s" msgstr "\"%s\" の解読中" #: ../pan/tasks/encoder.cc:102 ../pan/tasks/encoder.cc:155 #, fuzzy, c-format msgid "Error loading %s from cache." msgstr "ソケットからの読み込みエラー: %s" #: ../pan/tasks/encoder.cc:177 #, fuzzy, c-format msgid "Error encoding %s: %s" msgstr "ソケットからの読み込みエラー: %s" #: ../pan/tasks/encoder.cc:269 #, fuzzy, c-format msgid "Encoding %s" msgstr "\"%s\" の解読中" #: ../pan/tasks/nntp.cc:126 #, c-format msgid "%s requires a username, but none is set." msgstr "" #: ../pan/tasks/nntp.cc:139 #, fuzzy, c-format msgid "%s requires a password, but none is set." msgstr "サーバーはログインが必要" #: ../pan/tasks/nntp.cc:205 #, c-format msgid "Sending \"%s\" to %s returned an error: %s" msgstr "" #: ../pan/tasks/nntp.cc:228 #, c-format msgid "Sending \"%s\" to %s returned an unrecognized response: \"%s\"" msgstr "" #: ../pan/tasks/nntp-pool.cc:222 #, fuzzy, c-format msgid "Unable to connect to \"%s\"" msgstr "メールサーバー \"%*.*s\" に接続できません" #: ../pan/tasks/socket-impl-gio.cc:173 ../pan/tasks/socket-impl-gio.cc:211 #: ../pan/tasks/socket-impl-openssl.cc:214 #: ../pan/tasks/socket-impl-openssl.cc:252 #, fuzzy, c-format msgid "Error connecting to \"%s\"" msgstr "\"%s\" の読み込みエラー: %s" #: ../pan/tasks/socket-impl-gio.cc:351 ../pan/tasks/socket-impl-openssl.cc:633 #, fuzzy msgid "Unknown Error" msgstr "不明" #: ../pan/tasks/task-article.cc:61 ../pan/tasks/task-article.cc:156 #: ../pan/tasks/task-article.cc:159 #, fuzzy, c-format msgid "Saving %s" msgstr "\"%s\" の保存中" #: ../pan/tasks/task-article.cc:63 #, fuzzy, c-format msgid "Reading %s" msgstr "読みこみ中" #: ../pan/tasks/task-article.cc:322 #, c-format msgid "Article \"%s\" is incomplete -- the news server(s) don't have part %s" msgstr "" #: ../pan/tasks/task-groups.cc:40 #, fuzzy, c-format msgid "Getting group list from \"%s\"" msgstr "サーバー \"%s\" から新規グループを取得中" #: ../pan/tasks/task-groups.cc:122 #, fuzzy, c-format msgid "Fetched %lu Groups" msgstr "%u 個のヘッダー (\"%s\" 用) の取得完了" #: ../pan/tasks/task-post.cc:35 #, fuzzy, c-format msgid "Posting \"%s\"" msgstr "\"%s\" 処理中" #: ../pan/tasks/task-post.cc:76 #, fuzzy, c-format msgid "Posting of \"%s\" failed: %s" msgstr "/ツール(_T)/投稿時のプロファイル(_P)..." #: ../pan/tasks/task-post.cc:81 #, c-format msgid "Posting of \"%s\" succesful: %s" msgstr "" #: ../pan/tasks/task-upload.cc:51 #, fuzzy, c-format msgid "Uploading %s" msgstr "読みこみ中" #: ../pan/tasks/task-upload.cc:249 #, c-format msgid "Uploading %s - Part %d of %d" msgstr "" #: ../pan/tasks/task-upload.cc:251 #, c-format msgid "Uploading Message body with Subject \"%s\"" msgstr "" #: ../pan/tasks/task-upload.cc:308 #, c-format msgid "Posting of File %s (Part %d of %d) failed: No Posts allowed by server." msgstr "" #: ../pan/tasks/task-upload.cc:316 #, c-format msgid "Posting of File %s (Part %d of %d) failed: %s" msgstr "" #: ../pan/tasks/task-upload.cc:326 ../pan/tasks/task-upload.cc:333 #, c-format msgid "Posting of file %s (Part %d of %d) succesful: %s" msgstr "" #: ../pan/tasks/task-upload.cc:343 #, c-format msgid "Posting of file %s succesful: %s" msgstr "" #: ../pan/tasks/task-upload.cc:347 #, c-format msgid "" "Posting of file %s not completely successful: Check the log (right-click on " "list item) !" msgstr "" #: ../pan/tasks/task-upload.cc:364 #, c-format msgid "" "Posting of file %s not successful: Check the log (right-click on list item) !" msgstr "" #: ../pan/tasks/task-xover.cc:79 #, c-format msgid "Getting all headers for \"%s\"" msgstr "\"%s\" の全ヘッダーを取得中" #: ../pan/tasks/task-xover.cc:81 #, c-format msgid "Getting new headers for \"%s\"" msgstr "\"%s\" の新規ヘッダーを取得中" #. SAMPLE #: ../pan/tasks/task-xover.cc:83 #, c-format msgid "Sampling headers for \"%s\"" msgstr "\"%s\" のヘッダーのサンプリング" #: ../pan/tasks/task-xover.cc:369 #, fuzzy, c-format msgid "%s (%lu parts, %lu articles)" msgstr "(%lu 行 / %lu 個の記事)" #: ../pan/tasks/task-xoverinfo.cc:78 #, fuzzy, c-format msgid "Getting header counts for \"%s\"" msgstr "\"%s\" の全ヘッダーを取得中" #: ../pan/usenet-utils/filter-info.cc:163 #, fuzzy msgid "article doesn't have attachments" msgstr "記事に完全な添付ファイルがありません" #: ../pan/usenet-utils/filter-info.cc:167 #, fuzzy msgid "the article has attachments" msgstr "記事に添付ファイルがありません" #: ../pan/usenet-utils/filter-info.cc:171 #, fuzzy msgid "the article isn't cached locally" msgstr "記事の本文がローカルにキャッシュされていません" #: ../pan/usenet-utils/filter-info.cc:175 #, fuzzy msgid "the article is cached locally" msgstr "記事の本文がローカルにキャッシュされました" #: ../pan/usenet-utils/filter-info.cc:179 #, fuzzy msgid "the article wasn't posted by you" msgstr "投稿していない記事" #: ../pan/usenet-utils/filter-info.cc:183 #, fuzzy msgid "the article was posted by you" msgstr "投稿した記事" #: ../pan/usenet-utils/filter-info.cc:187 #, fuzzy msgid "the article has been read" msgstr "記事が" #: ../pan/usenet-utils/filter-info.cc:191 #, fuzzy msgid "the article hasn't been read" msgstr "記事が" #: ../pan/usenet-utils/filter-info.cc:195 #, fuzzy, c-format msgid "the article is less than %ld bytes long" msgstr "%d バイトより短い記事です" #: ../pan/usenet-utils/filter-info.cc:200 #, fuzzy, c-format msgid "the article is at least %ld bytes long" msgstr "%d バイトより短い記事です" #: ../pan/usenet-utils/filter-info.cc:205 #, fuzzy, c-format msgid "the article is less than %ld lines long" msgstr "%d 行より少ない記事" #: ../pan/usenet-utils/filter-info.cc:210 #, fuzzy, c-format msgid "the article is at least %ld lines long" msgstr "%d 行より少ない記事" #: ../pan/usenet-utils/filter-info.cc:215 #, fuzzy, c-format msgid "the article is less than %ld days old" msgstr "%d 日以上古い記事" #: ../pan/usenet-utils/filter-info.cc:220 #, fuzzy, c-format msgid "the article is at least %ld days old" msgstr "少なくとも N 日前の記事" #: ../pan/usenet-utils/filter-info.cc:225 #, fuzzy, c-format msgid "the article was posted to less than %ld groups" msgstr "%d 個以下のグループに投稿された記事 (クロスポスト)" #: ../pan/usenet-utils/filter-info.cc:230 #, fuzzy, c-format msgid "the article was posted to at least %ld groups" msgstr "少なくとも N グループに投稿された記事(_P):" #: ../pan/usenet-utils/filter-info.cc:235 #, fuzzy, c-format msgid "the article's score is less than %ld" msgstr "%d 未満のスコアの記事" #: ../pan/usenet-utils/filter-info.cc:240 #, fuzzy, c-format msgid "the article's score is %ld or higher" msgstr "スコアを設定" #: ../pan/usenet-utils/filter-info.cc:249 #: ../pan/usenet-utils/filter-info.cc:259 #, fuzzy, c-format msgid "%s doesn't contain \"%s\"" msgstr "含まない" #: ../pan/usenet-utils/filter-info.cc:250 #: ../pan/usenet-utils/filter-info.cc:260 #, c-format msgid "%s isn't \"%s\"" msgstr "" #: ../pan/usenet-utils/filter-info.cc:251 #: ../pan/usenet-utils/filter-info.cc:261 #, fuzzy, c-format msgid "%s doesn't begin with \"%s\"" msgstr "…で終わらない" #: ../pan/usenet-utils/filter-info.cc:252 #: ../pan/usenet-utils/filter-info.cc:262 #, fuzzy, c-format msgid "%s doesn't end with \"%s\"" msgstr "…で終わらない" #: ../pan/usenet-utils/filter-info.cc:253 #: ../pan/usenet-utils/filter-info.cc:263 #, fuzzy, c-format msgid "%s doesn't match the regex \"%s\"" msgstr "件名が正規表現 '%s' に一致しません" #: ../pan/usenet-utils/filter-info.cc:275 #, fuzzy, c-format msgid "%s contains \"%s\"" msgstr "含む" #: ../pan/usenet-utils/filter-info.cc:276 #, c-format msgid "%s is \"%s\"" msgstr "" #: ../pan/usenet-utils/filter-info.cc:277 #, c-format msgid "%s begins with \"%s\"" msgstr "" #: ../pan/usenet-utils/filter-info.cc:278 #, fuzzy, c-format msgid "%s ends with \"%s\"" msgstr "…で終わる" #: ../pan/usenet-utils/filter-info.cc:279 #, fuzzy, c-format msgid "%s matches the regex \"%s\"" msgstr "件名が正規表現 '%s' に一致しました" #: ../pan/usenet-utils/filter-info.cc:285 msgid "Any of these tests fail:" msgstr "" #: ../pan/usenet-utils/filter-info.cc:292 msgid "All of these tests pass:" msgstr "" #: ../pan/usenet-utils/filter-info.cc:299 msgid "None of these tests pass:" msgstr "" #: ../pan/usenet-utils/filter-info.cc:306 msgid "Any of these tests pass:" msgstr "" #: ../pan/usenet-utils/gnksa.cc:878 #, c-format msgid "No email address provided; generating message-id with domain \"%s\"" msgstr "" "E-メールアドレスが指定されていません; ドメイン \"%s\" 付きの message-id 作成" #: ../pan/usenet-utils/message-check.cc:124 #, fuzzy msgid "Warning: Reply seems to be top-posted." msgstr "注意: 返事を返事として投稿しようとしていません" #: ../pan/usenet-utils/message-check.cc:145 #, fuzzy msgid "Warning: The signature marker should be \"-- \", not \"--\"." msgstr "注意: 署名を区切るものは \"--\" ではなく \"-- \" であるべきです。" #: ../pan/usenet-utils/message-check.cc:162 #, fuzzy msgid "Warning: Signature prefix with no signature." msgstr "注意: 署名の先頭に署名がありません。" #: ../pan/usenet-utils/message-check.cc:167 #, fuzzy msgid "Warning: Signature is more than 4 lines long." msgstr "注意: 署名が 4 行よりも長くなっています" #: ../pan/usenet-utils/message-check.cc:172 #, fuzzy msgid "Warning: Signature is more than 80 characters wide." msgstr "注意: 署名の幅が 80 文字を越えています" #: ../pan/usenet-utils/message-check.cc:198 #, fuzzy, c-format msgid "Warning: %d line is more than 80 characters wide." msgid_plural "Warning: %d lines are more than 80 characters wide." msgstr[0] "注意: %d 行が 80 文字を越えています。" msgstr[1] "注意: %d 行が 80 文字を越えています。" #: ../pan/usenet-utils/message-check.cc:223 #, fuzzy msgid "Error: Message is empty." msgstr "エラー: メッセージが空です。" #: ../pan/usenet-utils/message-check.cc:258 #, fuzzy msgid "Warning: The message is entirely quoted text!" msgstr "注意: メッセージ全体が引用されたテキストです!" #: ../pan/usenet-utils/message-check.cc:259 #, fuzzy msgid "Warning: The message is mostly quoted text." msgstr "注意: メッセージのほとんどが引用されたテキストです。" #: ../pan/usenet-utils/message-check.cc:309 #, fuzzy msgid "Error: Message appears to have no new content." msgstr "エラー: メッセージに新しい内容がありません。" #: ../pan/usenet-utils/message-check.cc:344 #: ../pan/usenet-utils/message-check.cc:383 #, c-format msgid "" "Warning: The posting profile's server doesn't carry newsgroup\n" "\t\"%s\".\n" "\tIf the group name is correct, switch profiles in the \"From:\"\n" "\tline or edit the profile with \"Edit|Manage Posting Profiles\"." msgstr "" #: ../pan/usenet-utils/message-check.cc:355 #, fuzzy msgid "Warning: Following-Up to too many groups." msgstr "注意: フォロー先のグループが多すぎです。" #: ../pan/usenet-utils/message-check.cc:366 #, fuzzy msgid "Error: No Subject specified." msgstr "エラー: 件名が指定されていません。" #: ../pan/usenet-utils/message-check.cc:395 #, fuzzy, c-format msgid "Warning: Group \"%s\" is read-only." msgstr "注意: グループ \"%*.*s\" は読み込み専用です。" #: ../pan/usenet-utils/message-check.cc:404 #, fuzzy msgid "Error: Posting to a very large number of groups." msgstr "エラー: たいへん多くのグループに投稿しようとしています。" #: ../pan/usenet-utils/message-check.cc:409 #, fuzzy msgid "Warning: Posting to a large number of groups." msgstr "注意: 多くのグループに投稿しようとしています。" #: ../pan/usenet-utils/message-check.cc:416 #, fuzzy msgid "Warning: Crossposting without setting Followup-To header." msgstr "注意: フォロー先の設定をしないでクロスポストしようとしています。" #: ../pan/usenet-utils/message-check.cc:441 #, fuzzy msgid "Error: Bad email address." msgstr "E-メールアドレス:" #: ../pan/usenet-utils/message-check.cc:450 msgid "Warning: Most newsgroups frown upon HTML posts." msgstr "" #: ../pan/usenet-utils/message-check.cc:486 #, fuzzy msgid "Error: No Recipients." msgstr "送信先がありません!" #: ../pan/usenet-utils/scorefile.cc:304 #, fuzzy, c-format msgid "" "Error reading score in %*.*s, line %d: expected 'Expires: MM/DD/YYYY' or " "'Expires: DD-MM-YYYY'." msgstr "" "'Expires: MM/DD/YYYY' もしくは 'Expires: DD-MM-YYYY' という形式を期待していま" "す" #: ../pan/usenet-utils/scorefile.cc:307 #, c-format msgid "Expired old score from %*.*s, line %d" msgstr "" #: ../pan/usenet-utils/scorefile.cc:380 #, c-format msgid "Error reading score in %*.*s, line %d: unexpected line." msgstr "" #: ../pan/usenet-utils/scorefile.cc:428 #, c-format msgid "Read %lu scoring rules in %lu sections from \"%s\"" msgstr "" #: ../pan/usenet-utils/ssl-utils.h:199 #, fuzzy, c-format msgid "Error printing the server certificate for '%s'" msgstr "外部エディターの起動時にエラー: %s" #: ../pan/usenet-utils/ssl-utils.h:216 #, c-format msgid "" "The current server '%s' sent this security certificate :\n" "\n" msgstr "" #: ../pan/usenet-utils/ssl-utils.h:217 #, c-format msgid "" "Certificate information for server '%s' :\n" "\n" msgstr "" #: ../pan/usenet-utils/ssl-utils.h:219 #, c-format msgid "" "%sIssuer information:\n" "%s\n" "Valid until : %s\n" "\n" "Not valid before : %s\n" "\n" msgstr "" #: ../pan/usenet-utils/text-massager.cc:397 msgid "> [quoted text muted]" msgstr "> [引用された本文を隠しています]" #~ msgid "Read News from Usenet" #~ msgstr "Usenet のニュースを読みます" #, fuzzy #~ msgid "_Contents" #~ msgstr "フォント" #, fuzzy #~ msgid "Unable to open help file" #~ msgstr "ファイル権限を変更できません" #, fuzzy #~ msgid "Attachment not shown: MIME type %s/%s\n" #~ msgstr "添付: %s - %s - %s\n" #, fuzzy #~ msgid "Wrap Selected" #~ msgstr "文章のラップ" #, fuzzy #~ msgid "Posting Article" #~ msgstr "記事をソート中" #, fuzzy #~ msgid "_Signature:" #~ msgstr "署名ファイル(_S):" pan-0.162/po/ka.po000066400000000000000000002234551475412772400137010ustar00rootroot00000000000000# Georgian translation for pan. # Copyright (C) 2023 pan's COPYRIGHT HOLDER # This file is distributed under the same license as the pan package. # Ekaterine Papava , 2023-2024. # msgid "" msgstr "" "Project-Id-Version: pan master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/pan/issues/\n" "POT-Creation-Date: 2024-05-08 17:14+0000\n" "PO-Revision-Date: 2024-07-15 05:57+0200\n" "Last-Translator: Ekaterine Papava \n" "Language-Team: Georgian \n" "Language: ka\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Poedit 3.3.2\n" #. update the titlebar #: org.gnome.pan.desktop.in:3 org.gnome.pan.metainfo.xml.in:27 #: pan/gui/dl-headers-ui.cc:119 pan/gui/gui.cc:1040 pan/gui/gui.cc:1665 #: pan/gui/gui.cc:1985 pan/gui/score-add-ui.cc:600 msgid "Pan" msgstr "Pan" #: org.gnome.pan.desktop.in:4 msgid "Newsreader" msgstr "" #: org.gnome.pan.desktop.in:5 org.gnome.pan.metainfo.xml.in:7 msgid "Read and post Usenet articles" msgstr "" #. Translators: Search terms to find this application. Do NOT translate or localise the semicolons! The list MUST also end with a semicolon! #: org.gnome.pan.desktop.in:7 msgid "usenet;news;newsreader;newsgroup;article;yenc;nzb;" msgstr "" #: org.gnome.pan.metainfo.xml.in:6 msgid "Pan Newsreader" msgstr "" #: org.gnome.pan.metainfo.xml.in:9 msgid "" "Pan is a Usenet newsreader that is good at both text and binaries. It " "supports offline reading, scoring and killfiles, yEnc, NZB, PGP handling, " "multiple servers, and secure connections." msgstr "" #: org.gnome.pan.metainfo.xml.in:12 msgid "" "It is also the only Unix newsreader to get a perfect score on the Good Net-" "Keeping Seal of Approval evaluations." msgstr "" #: pan/data/article-cache.cc:144 pan/data/encode-cache.cc:62 #, c-format msgid "Error opening directory: \"%s\": %s" msgstr "" #: pan/data/article-cache.cc:235 pan/data/article-cache.cc:244 #: pan/data-impl/data-io.cc:278 pan/data-impl/data-io.cc:310 #: pan/gui/post-ui.cc:1767 #, c-format msgid "Unable to save \"%s\" %s" msgstr "" #: pan/data/article-cache.cc:362 #, c-format msgid "Error opening file \"%s\" %s" msgstr "" #: pan/data/article-cache.cc:393 pan/data-impl/profiles.cc:175 #: pan/data-impl/server.cc:495 pan/general/file-util.cc:311 #: pan/gui/post-ui.cc:636 pan/gui/task-pane.cc:740 #, c-format msgid "Error reading file \"%s\": %s" msgstr "" #: pan/data/cert-store.cc:261 #, c-format msgid "Error opening SSL certificate directory: \"%s\": %s" msgstr "" #: pan/data/cert-store.cc:292 #, c-format msgid "Successfully added %d SSL PEM certificate(s) to Certificate Store." msgstr "" #: pan/data/cert-store.cc:312 msgid "" "Error initializing Certificate Store. Check that the permissions for the " "folders ~/.pan2 and ~/.pan2/ssl_certs are set correctly. Fatal, exiting." msgstr "" #: pan/data/cert-store.cc:361 #, c-format msgid "Could not export certificate for server: %s" msgstr "" #. load_group_descriptions (*_data_io); #: pan/data-impl/data-impl.cc:115 #, c-format msgid "Loaded data backend in %.1f seconds" msgstr "" #: pan/data-impl/data-impl.cc:151 msgid "Pan Newsreader's server passwords" msgstr "" #: pan/data-impl/groups.cc:102 #, c-format msgid "Skipping newsrc file for server \"%s\"" msgstr "" #: pan/data-impl/headers.cc:618 #, c-format msgid "Expired %lu old articles from \"%s\"" msgstr "" #: pan/data-impl/headers.cc:625 #, c-format msgid "" "Unsupported data version for %s headers: %d.\n" "Are you running an old version of Pan by accident?" msgstr "" #: pan/data-impl/headers.cc:640 #, c-format msgid "Loaded %llu articles for \"%s\" in %.1f seconds (%.0f per second)" msgstr "" #: pan/data-impl/headers.cc:869 #, c-format msgid "" "Saved %lu parts, %lu articles in \"%s\" in %.1f seconds (%.0f articles/sec)" msgstr "" #: pan/data-impl/headers.cc:1202 #, c-format msgid "Added %lu articles to %s." msgstr "" #: pan/data-impl/server.cc:263 #, c-format msgid "Received no password from libsecret for server %s." msgstr "" #: pan/data-impl/xover.cc:241 #, c-format msgid "Error reading from %s: unknown group \"%s\"" msgstr "" #: pan/general/editor-spawner.cc:66 #, c-format msgid "Error parsing \"external editor\" command line: %s (Command was: %s)" msgstr "" #: pan/general/editor-spawner.cc:110 #, c-format msgid "Error starting external editor: %s" msgstr "" #: pan/general/e-util.cc:164 msgid "%l:%M %p" msgstr "%l:%M %p" #: pan/general/e-util.cc:165 msgid "Today %l:%M %p" msgstr "დღეს %l:%M %p" #: pan/general/e-util.cc:166 msgid "%a %l:%M %p" msgstr "%a %l:%M %p" #: pan/general/e-util.cc:167 msgid "%b %d %l:%M %p" msgstr "%b %d %l:%M %p" #: pan/general/e-util.cc:168 msgid "%b %d %Y" msgstr "%b %d %Y" #: pan/general/e-util.cc:200 msgid "?" msgstr "" #: pan/general/text-match.cc:194 #, c-format msgid "Can't use regular expression \"%s\": %s" msgstr "" #: pan/general/utf8-utils.cc:212 msgid "Couldn't determine article encoding. Non-UTF8 characters were removed." msgstr "" #: pan/gui/actions.cc:306 pan/gui/post-ui.cc:451 msgid "_File" msgstr "_ფაილი" #: pan/gui/actions.cc:307 pan/gui/post-ui.cc:452 msgid "_Edit" msgstr "_ჩასწორება" #: pan/gui/actions.cc:308 pan/gui/prefs-ui.cc:1138 msgid "_Layout" msgstr "განლაგება" #: pan/gui/actions.cc:309 msgid "_Group Pane" msgstr "" #: pan/gui/actions.cc:310 msgid "_Header Pane" msgstr "" #: pan/gui/actions.cc:311 msgid "_Body Pane" msgstr "" #: pan/gui/actions.cc:312 msgid "_View" msgstr "_ხედი" #: pan/gui/actions.cc:313 msgid "Filte_r" msgstr "_ფილტრი" #: pan/gui/actions.cc:314 msgid "_Go" msgstr "_წინ" #: pan/gui/actions.cc:315 pan/gui/prefs-ui.cc:1188 msgid "_Actions" msgstr "მოქმედებები" #: pan/gui/actions.cc:316 msgid "_Articles" msgstr "_სტატიები" #: pan/gui/actions.cc:317 msgid "G_roups" msgstr "_ჯგუფები" #: pan/gui/actions.cc:318 pan/gui/actions.cc:319 msgid "_Post" msgstr "_დაპოსტვა" #: pan/gui/actions.cc:320 msgid "_Help" msgstr "_დახმარება" #: pan/gui/actions.cc:323 msgid "_Read Group" msgstr "" #: pan/gui/actions.cc:324 msgid "Read Group" msgstr "" #: pan/gui/actions.cc:328 msgid "_Mark Selected Groups Read" msgstr "" #: pan/gui/actions.cc:329 msgid "Mark Selected Groups Read" msgstr "" #: pan/gui/actions.cc:333 msgid "_Delete Selected Groups' Articles" msgstr "" #: pan/gui/actions.cc:334 msgid "Delete Selected Groups' Articles" msgstr "" #: pan/gui/actions.cc:338 msgid "Get New _Headers in Selected Groups" msgstr "" #: pan/gui/actions.cc:339 msgid "Get New Headers in Selected Groups" msgstr "" #: pan/gui/actions.cc:343 pan/gui/actions.cc:348 msgid "Get New _Headers in Subscribed Groups" msgstr "" #: pan/gui/actions.cc:344 pan/gui/actions.cc:349 msgid "Get New Headers in Subscribed Groups" msgstr "" #: pan/gui/actions.cc:353 msgid "Get _Headers..." msgstr "" #: pan/gui/actions.cc:354 msgid "Get Headers..." msgstr "" #: pan/gui/actions.cc:358 pan/gui/actions.cc:359 msgid "Refresh Group List" msgstr "" #: pan/gui/actions.cc:363 msgid "_Subscribe" msgstr "_გამოწერა" #: pan/gui/actions.cc:364 msgid "Subscribe" msgstr "ხელმოწერა" #: pan/gui/actions.cc:368 msgid "_Unsubscribe" msgstr "გამოწერის _გაუქმება" #: pan/gui/actions.cc:369 msgid "Unsubscribe" msgstr "გამოწერის გაუქმება" #: pan/gui/actions.cc:373 msgid "_Save Articles..." msgstr "_სტატიების შენახვა..." #: pan/gui/actions.cc:374 msgid "Save Articles..." msgstr "" #: pan/gui/actions.cc:378 msgid "Save Articles from Selected _NZB..." msgstr "" #: pan/gui/actions.cc:379 msgid "Save Articles from Selected NZB" msgstr "" #: pan/gui/actions.cc:383 msgid "Save Articles to an NZB _File..." msgstr "" #: pan/gui/actions.cc:384 msgid "Save Articles to an NZB File" msgstr "" #: pan/gui/actions.cc:388 pan/gui/actions.cc:389 msgid "Print" msgstr "ამობეჭდვა" #: pan/gui/actions.cc:393 msgid "_Import NZB Files..." msgstr "" #: pan/gui/actions.cc:398 msgid "_Cancel Last Task" msgstr "" #: pan/gui/actions.cc:403 msgid "_Task Manager" msgstr "" #: pan/gui/actions.cc:408 msgid "_Event Log" msgstr "" #: pan/gui/actions.cc:413 msgid "_Quit" msgstr "დატოვება" #: pan/gui/actions.cc:418 msgid "Select _All Articles" msgstr "" #: pan/gui/actions.cc:423 msgid "_Deselect All Articles" msgstr "" #: pan/gui/actions.cc:428 msgid "Add Su_bthreads to Selection" msgstr "" #: pan/gui/actions.cc:433 msgid "Add _Threads to Selection" msgstr "" #: pan/gui/actions.cc:438 msgid "Add _Similar Articles to Selection" msgstr "" #: pan/gui/actions.cc:443 msgid "Select Article _Body" msgstr "" #: pan/gui/actions.cc:448 msgid "Edit _Preferences" msgstr "" #: pan/gui/actions.cc:453 msgid "Edit Selected _Group's Preferences" msgstr "" #: pan/gui/actions.cc:458 msgid "Edit S_core File" msgstr "" #: pan/gui/actions.cc:463 pan/gui/post-ui.cc:468 msgid "Edit P_osting Profiles" msgstr "" #: pan/gui/actions.cc:468 msgid "Edit _News Servers" msgstr "" #: pan/gui/actions.cc:473 msgid "Jump to _Group Tab" msgstr "" #: pan/gui/actions.cc:478 msgid "Jump to _Header Tab" msgstr "" #: pan/gui/actions.cc:483 msgid "Jump to _Body Tab" msgstr "" #: pan/gui/actions.cc:488 msgid "_Rot13 Selected Text" msgstr "" #: pan/gui/actions.cc:493 msgid "Clear _Header Pane" msgstr "" #: pan/gui/actions.cc:498 msgid "Clear _Body Pane" msgstr "" #: pan/gui/actions.cc:503 msgid "Cache Article" msgstr "" #: pan/gui/actions.cc:508 msgid "Read Article" msgstr "" #: pan/gui/actions.cc:513 msgid "Show Article Information" msgstr "" #: pan/gui/actions.cc:518 msgid "Read _More" msgstr "" #: pan/gui/actions.cc:519 msgid "Read More" msgstr "დაწვრილებით" #: pan/gui/actions.cc:523 msgid "Read _Back" msgstr "" #: pan/gui/actions.cc:524 msgid "Read Back" msgstr "" #: pan/gui/actions.cc:528 msgid "Next _Unread Group" msgstr "" #: pan/gui/actions.cc:533 msgid "Next _Group" msgstr "" #: pan/gui/actions.cc:538 msgid "Next _Unread Article" msgstr "" #: pan/gui/actions.cc:539 msgid "Next Unread Article" msgstr "" #: pan/gui/actions.cc:543 msgid "Next _Article" msgstr "" #: pan/gui/actions.cc:544 msgid "Next Article" msgstr "" #: pan/gui/actions.cc:548 msgid "Next _Watched Article" msgstr "" #: pan/gui/actions.cc:553 msgid "Next Unread _Thread" msgstr "" #: pan/gui/actions.cc:554 msgid "Next Unread Thread" msgstr "" #: pan/gui/actions.cc:558 msgid "Next Threa_d" msgstr "" #: pan/gui/actions.cc:563 msgid "Pre_vious Article" msgstr "" #: pan/gui/actions.cc:568 msgid "Previous _Thread" msgstr "" #: pan/gui/actions.cc:573 msgid "_Parent Article" msgstr "" #: pan/gui/actions.cc:578 msgid "Ignore _Author" msgstr "" #: pan/gui/actions.cc:582 msgid "_Watch Thread" msgstr "" #: pan/gui/actions.cc:587 msgid "_Ignore Thread" msgstr "" #: pan/gui/actions.cc:592 pan/gui/actions.cc:593 msgid "_Toggle Flag On/Off for Thread" msgstr "" #: pan/gui/actions.cc:597 pan/gui/actions.cc:598 msgid "_Turn Flag Off for Thread" msgstr "" #: pan/gui/actions.cc:602 pan/gui/actions.cc:603 msgid "_Select All Flagged Threads" msgstr "" #: pan/gui/actions.cc:607 pan/gui/actions.cc:608 msgid "_Go to Next Flagged Thread" msgstr "" #: pan/gui/actions.cc:612 pan/gui/actions.cc:613 msgid "_Go to Last Flagged Thread" msgstr "" #: pan/gui/actions.cc:617 pan/gui/actions.cc:618 msgid "_Invert Selection" msgstr "_უკუ მონიშვნა" #: pan/gui/actions.cc:622 msgid "Edit Article's Watch/Ignore/Score..." msgstr "" #: pan/gui/actions.cc:627 msgid "Add a _Scoring Rule..." msgstr "" #: pan/gui/actions.cc:632 msgid "Cance_l Article..." msgstr "" #: pan/gui/actions.cc:637 msgid "_Supersede Article..." msgstr "" #: pan/gui/actions.cc:642 msgid "_Delete Article" msgstr "" #: pan/gui/actions.cc:647 msgid "Clear Article Cache" msgstr "" #: pan/gui/actions.cc:652 msgid "_Mark Article as Read" msgstr "" #: pan/gui/actions.cc:657 msgid "Mark Article as _Unread" msgstr "" #: pan/gui/actions.cc:663 msgid "_Mark Thread as Read" msgstr "" #: pan/gui/actions.cc:668 msgid "Mark Thread as _Unread" msgstr "" #: pan/gui/actions.cc:673 msgid "_Post to Newsgroup" msgstr "" #: pan/gui/actions.cc:674 msgid "Post to Newsgroup" msgstr "" #: pan/gui/actions.cc:678 msgid "_Followup to Newsgroup" msgstr "" #: pan/gui/actions.cc:679 msgid "Followup to Newsgroup" msgstr "" #: pan/gui/actions.cc:683 msgid "_Reply to Author in Mail" msgstr "" #: pan/gui/actions.cc:689 msgid "_Contents" msgstr "_შინაარსი" #: pan/gui/actions.cc:695 msgid "_Pan Home Page" msgstr "" #: pan/gui/actions.cc:700 msgid "Give _Feedback or Report a Bug..." msgstr "" #: pan/gui/actions.cc:705 msgid "_About" msgstr "_შესახებ" #: pan/gui/actions.cc:710 msgid "Edit _SSL Certificates" msgstr "" #: pan/gui/actions.cc:725 msgid "_Thread Headers" msgstr "" #: pan/gui/actions.cc:726 msgid "Wrap Article Body" msgstr "" #: pan/gui/actions.cc:727 msgid "Show Article Signature" msgstr "" #: pan/gui/actions.cc:728 msgid "Mute _Quoted Text" msgstr "" #: pan/gui/actions.cc:729 msgid "Show All _Headers in Body Pane" msgstr "" #: pan/gui/actions.cc:730 msgid "Show _Smilies as Graphics" msgstr "" #: pan/gui/actions.cc:731 msgid "Show *Bold*, __Underlined__, and /Italic/" msgstr "" #: pan/gui/actions.cc:732 msgid "Size Pictures to _Fit" msgstr "" #: pan/gui/actions.cc:733 msgid "Use _Monospace Font" msgstr "" #: pan/gui/actions.cc:734 msgid "Set Focus to Images" msgstr "" #: pan/gui/actions.cc:735 msgid "Highlight _URLs" msgstr "" #: pan/gui/actions.cc:738 msgid "_Work Online" msgstr "" #: pan/gui/actions.cc:739 msgid "_Tabbed Layout" msgstr "" #: pan/gui/actions.cc:740 msgid "Show Group _Pane" msgstr "" #: pan/gui/actions.cc:741 msgid "Show Hea_der Pane" msgstr "" #: pan/gui/actions.cc:742 msgid "Show Bod_y Pane" msgstr "" #: pan/gui/actions.cc:743 msgid "Show _Toolbar" msgstr "" #: pan/gui/actions.cc:744 msgid "Abbreviate Group Names" msgstr "" #: pan/gui/actions.cc:746 msgid "Match Only _Read Articles" msgstr "" #: pan/gui/actions.cc:746 msgid "Match Only Read Articles" msgstr "" #: pan/gui/actions.cc:747 msgid "Match Only _Unread Articles" msgstr "" #: pan/gui/actions.cc:747 msgid "Match Only Unread Articles" msgstr "" #: pan/gui/actions.cc:748 msgid "Match Only _Cached Articles" msgstr "" #: pan/gui/actions.cc:748 msgid "Match Only Cached Articles" msgstr "" #: pan/gui/actions.cc:749 msgid "Match Only _Complete Articles" msgstr "" #: pan/gui/actions.cc:749 msgid "Match Only Complete Articles" msgstr "" #: pan/gui/actions.cc:750 msgid "Match Only _My Articles" msgstr "" #: pan/gui/actions.cc:750 msgid "Match Only My Articles" msgstr "" #: pan/gui/actions.cc:751 msgid "Match Only _Watched Articles" msgstr "" #: pan/gui/actions.cc:751 msgid "Match Only Watched Articles" msgstr "" #: pan/gui/actions.cc:753 msgid "Match Scores of 9999 (_Watched)" msgstr "" #: pan/gui/actions.cc:754 msgid "Match Scores of 5000...9998 (_High)" msgstr "" #: pan/gui/actions.cc:755 msgid "Match Scores of 1...4999 (Me_dium)" msgstr "" #: pan/gui/actions.cc:756 msgid "Match Scores of 0 (_Normal)" msgstr "" #: pan/gui/actions.cc:757 msgid "Match Scores of -9998...-1 (_Low)" msgstr "" #: pan/gui/actions.cc:758 msgid "Match Scores of -9999 (_Ignored)" msgstr "" #: pan/gui/actions.cc:760 msgid "Enable/Disable All _Rules" msgstr "" #: pan/gui/actions.cc:788 msgid "Show Matching _Articles" msgstr "" #: pan/gui/actions.cc:789 msgid "Show Matching Articles' _Threads" msgstr "" #: pan/gui/actions.cc:790 msgid "Show Matching Articles' _Subthreads" msgstr "" #: pan/gui/body-pane.cc:1038 msgid "Unnamed File" msgstr "" #: pan/gui/body-pane.cc:1119 pan/gui/gui.cc:1956 pan/gui/header-pane.cc:1309 #: pan/gui/header-pane.cc:1738 pan/gui/post-ui.cc:2641 pan/gui/prefs-ui.cc:887 #: pan/gui/score-add-ui.cc:139 pan/gui/task-pane.cc:795 msgid "Subject" msgstr "" #: pan/gui/body-pane.cc:1121 pan/gui/gui.cc:1956 msgid "From" msgstr "" #: pan/gui/body-pane.cc:1123 pan/gui/gui.cc:1957 pan/gui/header-pane.cc:1817 #: pan/gui/log-ui.cc:308 pan/gui/prefs-ui.cc:883 msgid "Date" msgstr "" #: pan/gui/body-pane.cc:1130 msgid "Newsgroups" msgstr "" #: pan/gui/body-pane.cc:1137 pan/gui/body-pane.cc:1145 #: pan/gui/body-pane.cc:1152 msgid "User-Agent" msgstr "" #: pan/gui/body-pane.cc:1158 msgid "Followup-To" msgstr "" #: pan/gui/body-pane.cc:1168 msgid "Reply-To" msgstr "უპასუხეთ" #: pan/gui/body-pane.cc:1216 msgid " from " msgstr " ვისგან " #: pan/gui/body-pane.cc:1218 msgid " at " msgstr "" #: pan/gui/body-pane.cc:1307 #, c-format msgid "" "This is a PGP-Signed message.\n" "\n" "Signer: %s ('%s')\n" "Valid until: %s\n" "Created on: %s" msgstr "" #: pan/gui/body-pane.cc:1312 msgid "always" msgstr "ყოველთვის" #: pan/gui/body-pane.cc:1532 msgid "Copy _URL" msgstr "URL-ის _კოპირება" #: pan/gui/body-pane.cc:1720 msgid "Save Attachment As..." msgstr "მიმაგრებული ფაილის შენახვა, როგორც..." #: pan/gui/body-pane.cc:1723 msgid "Save All Attachments" msgstr "" #: pan/gui/body-pane.cc:1794 msgid "Attachments:" msgstr "მიმაგრებული ფაილები:" #: pan/gui/body-pane.cc:1814 msgid "Text View" msgstr "ტექსტის ხედი" #: pan/gui/body-pane.cc:1823 msgid "HTML View" msgstr "" #: pan/gui/dl-headers-ui.cc:125 #, c-format msgid "%d Group" msgid_plural "%d Groups" msgstr[0] "" #: pan/gui/dl-headers-ui.cc:148 msgid "Get the last N _days' headers: " msgstr "" #: pan/gui/dl-headers-ui.cc:156 msgid "Get _new headers" msgstr "" #: pan/gui/dl-headers-ui.cc:160 msgid "Get _all headers" msgstr "" #: pan/gui/dl-headers-ui.cc:164 msgid "Get the _latest N headers: " msgstr "" #: pan/gui/e-action-combo-box.c:386 pan/gui/prefs-ui.cc:880 msgid "Action" msgstr "" #: pan/gui/e-action-combo-box.c:387 msgid "A GtkRadioAction" msgstr "" #: pan/gui/e-charset.c:51 pan/gui/task-pane.cc:561 msgid "Unknown" msgstr "" #: pan/gui/e-charset.c:52 msgid "Arabic" msgstr "არაბული" #: pan/gui/e-charset.c:53 msgid "Baltic" msgstr "ბალტიისპირეთის" #: pan/gui/e-charset.c:54 msgid "Central European" msgstr "ცენტრალურ ევროპული" #: pan/gui/e-charset.c:55 msgid "Chinese" msgstr "ჩინური" #: pan/gui/e-charset.c:56 msgid "Cyrillic" msgstr "კირილიცა" #: pan/gui/e-charset.c:57 msgid "Greek" msgstr "ბერძნული" #: pan/gui/e-charset.c:58 msgid "Hebrew" msgstr "ივრითი" #: pan/gui/e-charset.c:59 msgid "Japanese" msgstr "იაპონური" #: pan/gui/e-charset.c:60 msgid "Korean" msgstr "კორეული" #: pan/gui/e-charset.c:61 msgid "Thai" msgstr "ტაილანდური" #: pan/gui/e-charset.c:62 msgid "Turkish" msgstr "თურქული" #: pan/gui/e-charset.c:63 msgid "Unicode" msgstr "უნიკოდი" #: pan/gui/e-charset.c:64 msgid "Western European" msgstr "დასავლეთ ევროპული" #: pan/gui/e-charset.c:65 msgid "Western European, New" msgstr "" #: pan/gui/e-charset.c:84 pan/gui/e-charset.c:85 pan/gui/e-charset.c:86 msgid "Traditional" msgstr "ტრადიციული" #: pan/gui/e-charset.c:87 pan/gui/e-charset.c:88 pan/gui/e-charset.c:89 #: pan/gui/e-charset.c:90 msgid "Simplified" msgstr "გამარტივებული" #: pan/gui/e-charset.c:93 msgid "Ukrainian" msgstr "უკრაინული" #: pan/gui/e-charset.c:96 msgid "Visual" msgstr "ვიზუალი" #: pan/gui/e-charset-combo-box.c:95 pan/gui/gui.cc:2154 pan/gui/post-ui.cc:546 #: pan/gui/prefs-ui.cc:791 msgid "Character Encoding" msgstr "" #: pan/gui/e-charset-combo-box.c:97 pan/gui/e-charset-dialog.c:51 #: pan/gui/score-add-ui.cc:606 pan/gui/task-pane.cc:309 msgid "Cancel" msgstr "გაუქმება" #: pan/gui/e-charset-combo-box.c:98 pan/gui/e-charset-dialog.c:52 msgid "OK" msgstr "" #: pan/gui/e-charset-combo-box.c:119 msgid "Enter the character set to use" msgstr "" #: pan/gui/e-charset-combo-box.c:338 msgid "Other..." msgstr "სხვა..." #: pan/gui/e-cte-dialog.c:76 msgid "Default Encoding" msgstr "" #: pan/gui/e-cte-dialog.c:78 msgid "7-Bit Encoding" msgstr "" #: pan/gui/e-cte-dialog.c:80 msgid "8-Bit Encoding" msgstr "" #: pan/gui/e-cte-dialog.c:82 msgid "Base64 Encoding" msgstr "" #: pan/gui/e-cte-dialog.c:84 msgid "Quoted-Printable Encoding" msgstr "" #: pan/gui/group-pane.cc:331 msgid "Sent" msgstr "გაგზავნილია" #: pan/gui/group-pane.cc:332 msgid "Drafts" msgstr "მონახაზები" #: pan/gui/group-pane.cc:543 msgid "Group" msgstr "" #: pan/gui/group-pane.cc:544 msgid "Group (regex)" msgstr "" #: pan/gui/group-pane.cc:987 msgid "Local Folders" msgstr "ლოკალური საქაღალდეები" #: pan/gui/group-pane.cc:988 msgid "Subscribed Groups" msgstr "" #: pan/gui/group-pane.cc:989 msgid "Other Groups" msgstr "" #: pan/gui/group-pane.cc:1029 pan/gui/score-view-ui.cc:156 msgid "Name" msgstr "" #: pan/gui/group-prefs-dialog.cc:161 msgid "No Profiles defined in Edit|Posting Profiles." msgstr "" #: pan/gui/group-prefs-dialog.cc:264 msgid "Pan: Group Preferences" msgstr "" #: pan/gui/group-prefs-dialog.cc:279 msgid "Properties for Groups" msgstr "" #: pan/gui/group-prefs-dialog.cc:281 #, c-format msgid "Properties for %s" msgstr "" #: pan/gui/group-prefs-dialog.cc:292 msgid "Character _encoding:" msgstr "" #: pan/gui/group-prefs-dialog.cc:294 msgid "Directory for Saving Attachments" msgstr "" #: pan/gui/group-prefs-dialog.cc:302 msgid "Directory for _saving attachments:" msgstr "" #: pan/gui/group-prefs-dialog.cc:304 msgid "Posting _profile:" msgstr "" #: pan/gui/group-prefs-dialog.cc:309 msgid "Spellchecker _language:" msgstr "" #: pan/gui/group-prefs-dialog.cc:312 msgid "Group color:" msgstr "" #: pan/gui/gui.cc:311 msgid "Open the Task Manager" msgstr "" #: pan/gui/gui.cc:334 msgid "Open the Event Log" msgstr "" #: pan/gui/gui.cc:610 msgid "Save NZB's Files" msgstr "" #: pan/gui/gui.cc:637 msgid "Untitled.nzb" msgstr "" #: pan/gui/gui.cc:639 msgid "Save NZB File as..." msgstr "" #: pan/gui/gui.cc:808 msgid "Import NZB Files" msgstr "" #: pan/gui/gui.cc:816 pan/gui/post-ui.cc:3349 msgid "NZB Files" msgstr "" #: pan/gui/gui.cc:821 msgid "All Files" msgstr "" #: pan/gui/gui.cc:1335 msgid "Unable to supersede article." msgstr "" #: pan/gui/gui.cc:1336 pan/gui/gui.cc:1412 msgid "The article doesn't match any of your posting profiles." msgstr "" #: pan/gui/gui.cc:1385 msgid "Revise and send this article to replace the old one." msgstr "" #: pan/gui/gui.cc:1386 pan/gui/gui.cc:1450 msgid "Be patient! It will take time for your changes to take effect." msgstr "" #: pan/gui/gui.cc:1411 msgid "Unable to cancel article." msgstr "" #: pan/gui/gui.cc:1449 msgid "Send this article to ask your server to cancel your other one." msgstr "" #: pan/gui/gui.cc:1467 msgid "You have marked some articles for deletion." msgstr "" #: pan/gui/gui.cc:1468 msgid "Are you sure you want to delete them?" msgstr "" #: pan/gui/gui.cc:1494 msgid "Do you want to accept it permanently? (You can change this later.)" msgstr "" #: pan/gui/gui.cc:1640 msgid "Unable to open help file." msgstr "დახმარების ფაილის გახსნის შეცდომა." #: pan/gui/gui.cc:1668 msgid "Copyright © 2002-2021 Charles Kerr and others" msgstr "" #: pan/gui/gui.cc:1673 msgid "translator-credits" msgstr "თარგმანი-შესრულებულია" #: pan/gui/gui.cc:1801 msgid "_1. Group Pane" msgstr "" #: pan/gui/gui.cc:1802 msgid "_2. Header Pane" msgstr "" #: pan/gui/gui.cc:1803 msgid "_3. Body Pane" msgstr "" #: pan/gui/gui.cc:1893 pan/gui/gui.cc:1908 msgid " Bytes" msgstr "" #: pan/gui/gui.cc:1896 msgid " KB" msgstr " კბ" #: pan/gui/gui.cc:1899 msgid " MB" msgstr " მბ" #: pan/gui/gui.cc:1902 msgid " GB" msgstr "" #: pan/gui/gui.cc:1905 msgid " TB" msgstr "" #: pan/gui/gui.cc:1937 #, c-format msgid "This article is complete with %d part." msgid_plural "This article has all %d parts." msgstr[0] "" #: pan/gui/gui.cc:1939 #, c-format msgid "This article is missing %d part." msgid_plural "This article is missing %d of its %d parts:" msgstr[0] "" #: pan/gui/gui.cc:1957 pan/gui/header-pane.cc:1311 pan/gui/task-pane.cc:797 msgid "Message-ID" msgstr "" #: pan/gui/gui.cc:1958 pan/gui/header-pane.cc:1786 pan/gui/prefs-ui.cc:884 msgid "Lines" msgstr "ხაზები" #: pan/gui/gui.cc:1958 msgid "Size" msgstr "" #: pan/gui/gui.cc:1959 pan/gui/header-pane.cc:1802 pan/gui/prefs-ui.cc:882 msgid "Bytes" msgstr "ბაიტი" #: pan/gui/gui.cc:2009 msgid "" "Error loading iconv library. Encoding certain character sets will not work " "in GUI." msgstr "" #: pan/gui/gui.cc:2155 msgid "Body Pane Encoding" msgstr "" #: pan/gui/gui.cc:2186 pan/gui/task-pane.cc:612 msgid "Offline" msgstr "გათიშული" #: pan/gui/gui.cc:2190 #, c-format msgid "Closing %d connection" msgid_plural "Closing %d connections" msgstr[0] "" #: pan/gui/gui.cc:2192 pan/gui/gui.cc:2222 msgid "No Connections" msgstr "" #: pan/gui/gui.cc:2196 msgid "Connecting" msgstr "დაკავშირება" #: pan/gui/gui.cc:2209 #, c-format msgid "%s: %d idle, %d active @ %.1f KiBps" msgstr "" #: pan/gui/gui.cc:2265 msgid "No Tasks" msgstr "ამოცანების გარეშე" #: pan/gui/gui.cc:2267 pan/gui/prefs-ui.cc:1121 msgid "Tasks" msgstr "Tasks" #: pan/gui/gui.cc:2284 pan/gui/task-pane.cc:478 #, c-format msgid "%lu tasks, %s, %.1f KiBps, ETA %d:%02d:%02d" msgstr "" #: pan/gui/gui.cc:2336 msgid "" "Pan is now offline. Please see \"File|Event Log\" and correct the problem, " "then use \"File|Work Online\" to continue." msgstr "" #: pan/gui/header-pane.cc:1307 pan/gui/task-pane.cc:793 msgid "Subject or Author" msgstr "" #: pan/gui/header-pane.cc:1308 pan/gui/task-pane.cc:794 msgid "Sub or Auth (regex)" msgstr "" #: pan/gui/header-pane.cc:1310 pan/gui/header-pane.cc:1770 #: pan/gui/prefs-ui.cc:881 pan/gui/score-add-ui.cc:140 pan/gui/task-pane.cc:796 msgid "Author" msgstr "" #: pan/gui/header-pane.cc:1755 pan/gui/prefs-ui.cc:885 msgid "Score" msgstr "ქულები" #: pan/gui/log-ui.cc:105 msgid "Save Event List" msgstr "" #: pan/gui/log-ui.cc:259 msgid "Pan: Events" msgstr "" #: pan/gui/log-ui.cc:318 msgid "Message" msgstr "" #: pan/gui/pan.cc:336 msgid "Maximize" msgstr "გადიდება" #: pan/gui/pan.cc:376 msgid "An error has occurred!" msgstr "" #: pan/gui/pan.cc:389 msgid "New Articles!" msgstr "" #: pan/gui/pan.cc:390 msgid "" "There are new\n" "articles available." msgstr "" #: pan/gui/pan.cc:470 msgid "" "Thank you for trying Pan!\n" " \n" "To start newsreading, first Add a Server." msgstr "" #: pan/gui/pan.cc:552 msgid "" "General Options\n" " -h, --help Show this usage information and exit.\n" " -v, --version Print release version and exit.\n" " --verbose Be verbose (in non-GUI mode).\n" " --debug Run in debug mode. Use --debug twice for verbose " "debug.\n" " --debug-ssl Run in TLS (aka SSL) debug mode.\n" "\n" "URL Options\n" " headers:group.name Download new headers for the specified " "newsgroup.\n" " news:message-id When specified together with --no-gui, dump\n" " the message-id article to standard output.\n" "\n" "NZB Batch Options\n" " --nzb file1 file2 ... Process NZB files in non-GUI mode.\n" " -o path, --output=path Path to save attachments listed in the NZB " "file(s).\n" " --no-gui Only show console output, not the download " "queue.\n" msgstr "" #: pan/gui/pan.cc:885 msgid "Error: --no-gui used without nzb files or news:message-id." msgstr "" #: pan/gui/pan.cc:889 #, c-format msgid "Pan %s started" msgstr "" #: pan/gui/pan.cc:909 msgid "Please configure Pan's news servers before using it as an nzb client." msgstr "" #: pan/gui/pan.cc:1029 msgid "Pan notification" msgstr "" #: pan/gui/post-ui.cc:175 #, c-format msgid "Upload queue: %llu tasks, %ld KB (~ %.2f MB) total." msgstr "" #: pan/gui/post-ui.cc:281 pan/gui/post-ui.cc:312 #, c-format msgid "Error setting custom spellchecker: %s" msgstr "" #: pan/gui/post-ui.cc:285 pan/gui/post-ui.cc:293 pan/gui/post-ui.cc:316 #: pan/gui/post-ui.cc:324 #, c-format msgid "Error setting spellchecker: %s" msgstr "" #: pan/gui/post-ui.cc:453 msgid "_Profile" msgstr "_პროფილი" #: pan/gui/post-ui.cc:454 msgid "Set Editor" msgstr "" #: pan/gui/post-ui.cc:456 msgid "_Send Article" msgstr "" #: pan/gui/post-ui.cc:456 msgid "Send Article Now" msgstr "" #: pan/gui/post-ui.cc:457 msgid "_Send and Save Articles to NZB" msgstr "" #: pan/gui/post-ui.cc:457 msgid "Send and Save Articles to NZB" msgstr "" #: pan/gui/post-ui.cc:458 msgid "Set Character _Encoding..." msgstr "" #: pan/gui/post-ui.cc:459 msgid "Set Content _Transfer Encoding..." msgstr "" #: pan/gui/post-ui.cc:460 msgid "Sa_ve Draft" msgstr "" #: pan/gui/post-ui.cc:460 msgid "Save as a Draft for Future Posting" msgstr "" #: pan/gui/post-ui.cc:461 msgid "_Open Draft..." msgstr "" #: pan/gui/post-ui.cc:461 msgid "Open an Article Draft" msgstr "" #: pan/gui/post-ui.cc:466 msgid "_Rot13" msgstr "" #: pan/gui/post-ui.cc:466 msgid "Rot13 Selected Text" msgstr "" #: pan/gui/post-ui.cc:467 msgid "Run _Editor" msgstr "" #: pan/gui/post-ui.cc:467 msgid "Run Editor" msgstr "" #: pan/gui/post-ui.cc:469 msgid "Add _Files to Queue" msgstr "" #: pan/gui/post-ui.cc:469 msgid "Add Files to Queue" msgstr "" #: pan/gui/post-ui.cc:484 pan/gui/post-ui.cc:485 msgid "Remove from Queue" msgstr "რიგიდან წაშლა" #: pan/gui/post-ui.cc:489 pan/gui/post-ui.cc:490 msgid "Clear List" msgstr "სიის გასუფთავება" #: pan/gui/post-ui.cc:494 pan/gui/post-ui.cc:495 msgid "Select Needed Parts" msgstr "" #: pan/gui/post-ui.cc:499 pan/gui/post-ui.cc:500 pan/gui/task-pane.cc:680 #: pan/gui/task-pane.cc:681 msgid "Move Up" msgstr "აწევა" #: pan/gui/post-ui.cc:504 pan/gui/post-ui.cc:505 pan/gui/task-pane.cc:685 #: pan/gui/task-pane.cc:686 msgid "Move Down" msgstr "ჩამოწევა" #: pan/gui/post-ui.cc:509 pan/gui/post-ui.cc:510 msgid "Move to Top" msgstr "თავში ატანა" #: pan/gui/post-ui.cc:514 pan/gui/post-ui.cc:515 msgid "Move to Bottom" msgstr "ბოლოში ჩამოტანა" #: pan/gui/post-ui.cc:522 msgid "_Wrap Text" msgstr "" #: pan/gui/post-ui.cc:522 msgid "Wrap Text" msgstr "ტექსტის გადატანა" #: pan/gui/post-ui.cc:523 msgid "Always Run Editor" msgstr "" #: pan/gui/post-ui.cc:524 msgid "Remember Character Encoding for This Group" msgstr "" #: pan/gui/post-ui.cc:525 msgid "Thread Attached Replies" msgstr "" #: pan/gui/post-ui.cc:526 msgid "PGP-Encrypt the Article" msgstr "" #: pan/gui/post-ui.cc:527 msgid "PGP-Sign the Article" msgstr "" #: pan/gui/post-ui.cc:528 msgid "Check _Spelling" msgstr "მართლწერის შემოწმება" #: pan/gui/post-ui.cc:547 msgid "New Article's Encoding:" msgstr "" #: pan/gui/post-ui.cc:557 msgid "Content Transfer Encoding" msgstr "" #: pan/gui/post-ui.cc:558 msgid "New Article's Content Transfer Encoding:" msgstr "" #: pan/gui/post-ui.cc:742 msgid "Your changes will be lost!" msgstr "" #: pan/gui/post-ui.cc:743 msgid "Close this window and lose your changes?" msgstr "" #: pan/gui/post-ui.cc:788 pan/gui/post-ui.cc:827 msgid "There were problems with this post." msgstr "" #: pan/gui/post-ui.cc:790 pan/gui/post-ui.cc:829 pan/gui/post-ui.cc:894 msgid "Go Back" msgstr "უკან დაბრუნება" #: pan/gui/post-ui.cc:792 msgid "Continue Anyway" msgstr "მაინც გაგრძელება" #. Prompt the user #: pan/gui/post-ui.cc:821 #, c-format msgid "" "Message uses characters not specified in charset '%s' - possibly use '%s' " msgstr "" #: pan/gui/post-ui.cc:844 msgid "Go _Online" msgstr "" #: pan/gui/post-ui.cc:893 msgid "The file queue is empty, so no files can be saved." msgstr "" #: pan/gui/post-ui.cc:1073 msgid "IO Error" msgstr "შ/გ-ის შეცდომა" #: pan/gui/post-ui.cc:1073 msgid "No space left on device" msgstr "მოწყობილობაზე ადგილი არ დარჩა" #: pan/gui/post-ui.cc:1074 #, c-format msgid "Error copying message to %s folder. Reason: %s" msgstr "" #: pan/gui/post-ui.cc:1080 #, c-format msgid "Error creating message in %s mail folder: Invalid article." msgstr "" #: pan/gui/post-ui.cc:1102 msgid "" "No posting server is set for this posting profile.\n" "Please edit the profile via Edit|Manage Posting Profiles." msgstr "" #: pan/gui/post-ui.cc:1107 msgid "" "The selected posting server is currently disabled. Please choose an " "appropriate alternative." msgstr "" #: pan/gui/post-ui.cc:1149 msgid "Pan is Offline." msgstr "" #: pan/gui/post-ui.cc:1150 msgid "Go online to post the article?" msgstr "" #: pan/gui/post-ui.cc:1199 #, c-format msgid "" "Error signing/encrypting your message. Perhaps you misspelled your email " "address (%s)?" msgstr "" #: pan/gui/post-ui.cc:1349 msgid "Error opening temporary file" msgstr "" #: pan/gui/post-ui.cc:1360 #, c-format msgid "Error creating temporary file: %s" msgstr "" #: pan/gui/post-ui.cc:1368 #, c-format msgid "Error writing article to temporary file: %s" msgstr "" #: pan/gui/post-ui.cc:1441 msgid "Open Draft Article" msgstr "" #: pan/gui/post-ui.cc:1683 msgid "Save Draft Article" msgstr "" #: pan/gui/post-ui.cc:1721 msgid "File already exists." msgstr "" #: pan/gui/post-ui.cc:1722 msgid "Overwrite it?" msgstr "" #: pan/gui/post-ui.cc:1931 #, c-format msgid "Couldn't parse signature command \"%s\": %s" msgstr "" #: pan/gui/post-ui.cc:1967 msgid "Couldn't convert signature to UTF-8." msgstr "" #: pan/gui/post-ui.cc:2479 msgid "F_rom" msgstr "" #: pan/gui/post-ui.cc:2496 msgid "_Subject" msgstr "" #: pan/gui/post-ui.cc:2509 msgid "_Newsgroups" msgstr "" #: pan/gui/post-ui.cc:2523 msgid "Mail _To" msgstr "" #: pan/gui/post-ui.cc:2626 msgid "Delete from Queue" msgstr "" #: pan/gui/post-ui.cc:2639 msgid "No." msgstr "" #: pan/gui/post-ui.cc:2643 pan/gui/post-ui.cc:2735 pan/gui/post-ui.cc:2776 msgid "Filename" msgstr "" #: pan/gui/post-ui.cc:2645 msgid "Size (KB)" msgstr "" #: pan/gui/post-ui.cc:2743 msgid "The current filename" msgstr "" #: pan/gui/post-ui.cc:2747 msgid "Subject Line" msgstr "" #: pan/gui/post-ui.cc:2755 msgid "The current subject line" msgstr "" #: pan/gui/post-ui.cc:2769 msgid "No. " msgstr "" #: pan/gui/post-ui.cc:2773 msgid "Enable/Disable" msgstr "" #: pan/gui/post-ui.cc:2807 msgid "Follo_wup-To" msgstr "" #. i18n: "poster" is a key used by many newsreaders. probably safest to keep this key in english. #: pan/gui/post-ui.cc:2816 msgid "" "The newsgroups where replies to your message should go. This is only needed " "if it differs from the \"Newsgroups\" header.\n" "\n" "To direct all replies to your email address, use \"Followup-To: poster\"" msgstr "" #: pan/gui/post-ui.cc:2823 msgid "_Reply-To" msgstr "" #: pan/gui/post-ui.cc:2831 msgid "" "The email account where mail replies to your posted message should go. This " "is only needed if it differs from the \"From\" header." msgstr "" #: pan/gui/post-ui.cc:2838 msgid "_Custom Headers" msgstr "" #: pan/gui/post-ui.cc:2862 msgid "Add \"_User-Agent\" header" msgstr "" #: pan/gui/post-ui.cc:2869 msgid "Add \"Message-_ID\" header" msgstr "" #: pan/gui/post-ui.cc:2997 msgid "Select Parts" msgstr "" #: pan/gui/post-ui.cc:3010 msgid "_Parts" msgstr "" #: pan/gui/post-ui.cc:3177 msgid "Post Article" msgstr "" #: pan/gui/post-ui.cc:3198 msgid "_Message" msgstr "" #: pan/gui/post-ui.cc:3199 msgid "More _Headers" msgstr "" #: pan/gui/post-ui.cc:3200 msgid "File _Queue" msgstr "" #: pan/gui/post-ui.cc:3231 pan/gui/profiles-dialog.cc:490 #, no-c-format msgid "On %d, %n wrote:" msgstr "" #: pan/gui/post-ui.cc:3260 msgid "Add files to queue" msgstr "" #: pan/gui/post-ui.cc:3336 msgid "Save Upload Queue as NZB File" msgstr "" #: pan/gui/prefs.cc:366 #, c-format msgid "Couldn't parse %s color \"%s\"" msgstr "" #: pan/gui/prefs-ui.cc:139 msgid "Grab Key" msgstr "" #: pan/gui/prefs-ui.cc:145 #, c-format msgid "" "Press the combination of the keys\n" "you want to use for \"%s\"." msgstr "" #: pan/gui/prefs-ui.cc:182 msgid "Edit Shortcut" msgstr "მალსახმობის ჩასწორება" #: pan/gui/prefs-ui.cc:243 msgid "Error: Shortcut key is invalid!" msgstr "" #: pan/gui/prefs-ui.cc:259 msgid "Error: Shortcut key already exists!" msgstr "" #: pan/gui/prefs-ui.cc:593 msgid "Show only icons" msgstr "" #: pan/gui/prefs-ui.cc:594 msgid "Show only text" msgstr "" #: pan/gui/prefs-ui.cc:595 msgid "Show icons and text" msgstr "" #: pan/gui/prefs-ui.cc:634 msgid "Use GNOME Preferences" msgstr "" #: pan/gui/prefs-ui.cc:635 msgid "Use KDE Preferences" msgstr "" #: pan/gui/prefs-ui.cc:636 msgid "Use OS X Preferences" msgstr "" #: pan/gui/prefs-ui.cc:637 msgid "Use Windows Preferences" msgstr "" #: pan/gui/prefs-ui.cc:638 msgid "Custom Command:" msgstr "" #: pan/gui/prefs-ui.cc:690 msgid "Disabled" msgstr "გამორთულია" #: pan/gui/prefs-ui.cc:691 msgid "Only new (score == 0)" msgstr "" #: pan/gui/prefs-ui.cc:692 msgid "9999 or more" msgstr "" #: pan/gui/prefs-ui.cc:693 msgid "5000 to 9998" msgstr "" #: pan/gui/prefs-ui.cc:694 msgid "1 to 4999" msgstr "" #: pan/gui/prefs-ui.cc:695 msgid "-9998 to -1" msgstr "" #: pan/gui/prefs-ui.cc:696 msgid "-9999 or less" msgstr "" #: pan/gui/prefs-ui.cc:760 #, c-format msgid "Select default global character set. Current setting: %s." msgstr "" #: pan/gui/prefs-ui.cc:792 msgid "Global Character Set Settings" msgstr "" #: pan/gui/prefs-ui.cc:886 pan/gui/task-pane.cc:1067 msgid "State" msgstr "" #: pan/gui/prefs-ui.cc:920 msgid "Enabled" msgstr "გააქტიურებულია" #: pan/gui/prefs-ui.cc:924 msgid "Column Name" msgstr "სვეტისსახელი" #: pan/gui/prefs-ui.cc:962 msgid "Pan: Preferences" msgstr "" #: pan/gui/prefs-ui.cc:977 msgid "Mouse" msgstr "თაგუნა" #: pan/gui/prefs-ui.cc:979 msgid "Single-click activates, rather than selects, _groups" msgstr "" #: pan/gui/prefs-ui.cc:981 msgid "Single-click activates, rather than selects, _articles" msgstr "" #: pan/gui/prefs-ui.cc:984 msgid "Groups" msgstr "ჯგუფები" #: pan/gui/prefs-ui.cc:986 msgid "Get new headers in subscribed groups on _startup" msgstr "" #: pan/gui/prefs-ui.cc:988 msgid "Get new headers when _entering group" msgstr "" #: pan/gui/prefs-ui.cc:990 msgid "Mark entire group _read when leaving group" msgstr "" #: pan/gui/prefs-ui.cc:992 msgid "Mark entire group read before getting _new headers" msgstr "" #: pan/gui/prefs-ui.cc:994 msgid "E_xpand all threads when entering group" msgstr "" #: pan/gui/prefs-ui.cc:999 msgid "Articles" msgstr "სტატიები" #: pan/gui/prefs-ui.cc:1001 msgid "Mark downloaded articles read" msgstr "" #: pan/gui/prefs-ui.cc:1003 msgid "Space selects next article rather than next unread" msgstr "" #: pan/gui/prefs-ui.cc:1005 msgid "Expand threads upon selection" msgstr "" #: pan/gui/prefs-ui.cc:1007 msgid "Always ask before deleting an article" msgstr "" #: pan/gui/prefs-ui.cc:1009 msgid "Smooth scrolling" msgstr "" #: pan/gui/prefs-ui.cc:1014 msgid "Article Cache" msgstr "" #: pan/gui/prefs-ui.cc:1015 msgid "Clear article cache on shutdown" msgstr "" #: pan/gui/prefs-ui.cc:1018 msgid "Size of article cache (in MiB):" msgstr "" #: pan/gui/prefs-ui.cc:1022 msgid "File extension for cached articles: " msgstr "" #: pan/gui/prefs-ui.cc:1026 msgid "Tabs" msgstr "დაფები" #: pan/gui/prefs-ui.cc:1031 msgid "_Behavior" msgstr "ქცევა" #: pan/gui/prefs-ui.cc:1031 msgid "Behavior" msgstr "ქცევა" #: pan/gui/prefs-ui.cc:1037 msgid "Task Pane" msgstr "" #: pan/gui/prefs-ui.cc:1038 msgid "Show task pane popups" msgstr "" #: pan/gui/prefs-ui.cc:1040 msgid "Show Download Meter" msgstr "" #: pan/gui/prefs-ui.cc:1044 msgid "_Panes" msgstr "" #: pan/gui/prefs-ui.cc:1044 msgid "Panes" msgstr "პანელები" #: pan/gui/prefs-ui.cc:1050 msgid "Language Settings" msgstr "ენის პარამეტრები" #: pan/gui/prefs-ui.cc:1051 msgid "Font" msgstr "ფონტი" #. systray and notify popup #: pan/gui/prefs-ui.cc:1058 msgid "System Tray Behavior" msgstr "" #: pan/gui/prefs-ui.cc:1060 msgid "Start Pan minimized" msgstr "" #: pan/gui/prefs-ui.cc:1063 msgid "Show notifications" msgstr "გაფრთხილებების ჩვენება" #. allow multiple instances (seperate, not communicating with dbus) #: pan/gui/prefs-ui.cc:1068 msgid "Startup Behavior" msgstr "" #: pan/gui/prefs-ui.cc:1070 msgid "Allow multiple instances of Pan" msgstr "" #: pan/gui/prefs-ui.cc:1075 msgid "Autosave Article Draft" msgstr "" #: pan/gui/prefs-ui.cc:1077 msgid "Minutes to autosave the current Article Draft: " msgstr "" #: pan/gui/prefs-ui.cc:1082 msgid "Autosave Articles" msgstr "" #: pan/gui/prefs-ui.cc:1084 msgid "Minutes to autosave newsrc files: " msgstr "" #: pan/gui/prefs-ui.cc:1091 msgid "Password Storage" msgstr "" #: pan/gui/prefs-ui.cc:1093 msgid "Save passwords in password storage" msgstr "" #: pan/gui/prefs-ui.cc:1100 msgid "_Miscellaneous" msgstr "_სხვადასხვა" #: pan/gui/prefs-ui.cc:1100 msgid "Miscellaneous" msgstr "სხვადასხვა" #: pan/gui/prefs-ui.cc:1105 msgid "Pane Layout" msgstr "" #: pan/gui/prefs-ui.cc:1124 msgid "1=Groups, 2=Headers, 3=Body" msgstr "" #: pan/gui/prefs-ui.cc:1126 msgid "1=Groups, 2=Body, 3=Headers" msgstr "" #: pan/gui/prefs-ui.cc:1128 msgid "1=Headers, 2=Groups, 3=Body" msgstr "" #: pan/gui/prefs-ui.cc:1130 msgid "1=Headers, 2=Body, 3=Groups" msgstr "" #: pan/gui/prefs-ui.cc:1132 msgid "1=Body, 2=Groups, 3=Headers" msgstr "" #: pan/gui/prefs-ui.cc:1134 msgid "1=Body, 2=Headers, 3=Groups" msgstr "" #: pan/gui/prefs-ui.cc:1138 msgid "Layout" msgstr "" #: pan/gui/prefs-ui.cc:1143 msgid "Header Pane Columns" msgstr "" #: pan/gui/prefs-ui.cc:1147 msgid "_Headers" msgstr "_თავსართები" #: pan/gui/prefs-ui.cc:1147 msgid "Headers" msgstr "სათაურები" #: pan/gui/prefs-ui.cc:1153 msgid "" "This menu lets you configure Pan to take certain actions on your behalf " "automatically, based on an article's score." msgstr "" #: pan/gui/prefs-ui.cc:1158 msgid "Mark affected articles read" msgstr "" #: pan/gui/prefs-ui.cc:1167 msgid "_Delete articles scoring at: " msgstr "" #: pan/gui/prefs-ui.cc:1173 msgid "Mark articles read scoring at: " msgstr "" #: pan/gui/prefs-ui.cc:1179 msgid "_Cache articles scoring at: " msgstr "" #: pan/gui/prefs-ui.cc:1185 msgid "Download attachments of articles scoring at: " msgstr "" #: pan/gui/prefs-ui.cc:1188 msgid "Actions" msgstr "" #: pan/gui/prefs-ui.cc:1193 pan/gui/prefs-ui.cc:1214 msgid "Fonts" msgstr "ფონტები" #: pan/gui/prefs-ui.cc:1195 msgid "Use custom font in Group Pane:" msgstr "" #: pan/gui/prefs-ui.cc:1200 msgid "Use custom font in Header Pane:" msgstr "" #: pan/gui/prefs-ui.cc:1205 msgid "Use custom font in Body Pane:" msgstr "" #: pan/gui/prefs-ui.cc:1210 msgid "Monospace font:" msgstr "" #: pan/gui/prefs-ui.cc:1214 msgid "_Fonts" msgstr "_ფონტები" #: pan/gui/prefs-ui.cc:1223 msgid "Header Pane" msgstr "" #: pan/gui/prefs-ui.cc:1226 pan/gui/prefs-ui.cc:1232 pan/gui/prefs-ui.cc:1238 #: pan/gui/prefs-ui.cc:1244 pan/gui/prefs-ui.cc:1250 pan/gui/prefs-ui.cc:1256 #: pan/gui/prefs-ui.cc:1265 pan/gui/prefs-ui.cc:1271 pan/gui/prefs-ui.cc:1277 #: pan/gui/prefs-ui.cc:1283 pan/gui/prefs-ui.cc:1289 pan/gui/prefs-ui.cc:1299 #: pan/gui/prefs-ui.cc:1309 msgid "Text:" msgstr "" #: pan/gui/prefs-ui.cc:1228 pan/gui/prefs-ui.cc:1234 pan/gui/prefs-ui.cc:1240 #: pan/gui/prefs-ui.cc:1246 pan/gui/prefs-ui.cc:1252 pan/gui/prefs-ui.cc:1258 #: pan/gui/prefs-ui.cc:1267 pan/gui/prefs-ui.cc:1273 pan/gui/prefs-ui.cc:1279 #: pan/gui/prefs-ui.cc:1285 pan/gui/prefs-ui.cc:1291 pan/gui/prefs-ui.cc:1301 #: pan/gui/prefs-ui.cc:1311 msgid "Background:" msgstr "ფონი:" #: pan/gui/prefs-ui.cc:1230 msgid "Scores of 9999 or more:" msgstr "" #: pan/gui/prefs-ui.cc:1236 msgid "Scores from 5000 to 9998:" msgstr "" #: pan/gui/prefs-ui.cc:1242 msgid "Scores from 1 to 4999:" msgstr "" #: pan/gui/prefs-ui.cc:1248 msgid "Scores from -9998 to -1:" msgstr "" #: pan/gui/prefs-ui.cc:1254 msgid "Scores of -9999 or less:" msgstr "" #: pan/gui/prefs-ui.cc:1260 msgid "Collapsed thread with unread articles:" msgstr "" #: pan/gui/prefs-ui.cc:1262 msgid "Body Pane" msgstr "" #: pan/gui/prefs-ui.cc:1269 msgid "First level of quoted text:" msgstr "" #: pan/gui/prefs-ui.cc:1275 msgid "Second level of quoted text:" msgstr "" #: pan/gui/prefs-ui.cc:1281 msgid "Third level of quoted text:" msgstr "" #. #: pan/gui/prefs-ui.cc:1287 msgid "URL:" msgstr "" #. #: pan/gui/prefs-ui.cc:1293 msgid "Signature:" msgstr "ხელმოწერა :" #: pan/gui/prefs-ui.cc:1296 msgid "Group Pane" msgstr "" #. #: pan/gui/prefs-ui.cc:1303 msgid "Group Color:" msgstr "" #: pan/gui/prefs-ui.cc:1307 msgid "Other Text" msgstr "" #: pan/gui/prefs-ui.cc:1313 msgid "Text Color:" msgstr "ტექსტის ფერი:" #: pan/gui/prefs-ui.cc:1316 msgid "_Colors" msgstr "_ფერები" #: pan/gui/prefs-ui.cc:1316 msgid "Colors" msgstr "ფერები" #: pan/gui/prefs-ui.cc:1321 msgid "Preferred Applications" msgstr "სასურველი პროგრამები" #: pan/gui/prefs-ui.cc:1325 msgid "_Web browser:" msgstr "" #: pan/gui/prefs-ui.cc:1328 msgid "_Gemini client:" msgstr "" #: pan/gui/prefs-ui.cc:1331 msgid "_Mail reader:" msgstr "" #: pan/gui/prefs-ui.cc:1333 msgid "_Text editor:" msgstr "" #: pan/gui/prefs-ui.cc:1335 msgid "_HTML previewer:" msgstr "" #: pan/gui/prefs-ui.cc:1337 msgid "_Applications" msgstr "" #: pan/gui/prefs-ui.cc:1337 msgid "Applications" msgstr "აპლიკაციები" #: pan/gui/prefs-ui.cc:1342 pan/gui/task-pane.cc:555 msgid "Encoding" msgstr "" #: pan/gui/prefs-ui.cc:1346 msgid "Default bytes per file (for encoder): " msgstr "" #: pan/gui/prefs-ui.cc:1351 msgid "_Upload" msgstr "_ატვირთვა" #: pan/gui/prefs-ui.cc:1351 msgid "Upload" msgstr "ატვირთვა" #: pan/gui/prefs-ui.cc:1360 msgid "_Shortcuts" msgstr "მალ_სახმობები" #: pan/gui/prefs-ui.cc:1360 msgid "Shortcuts" msgstr "მალსახმობები" #: pan/gui/profiles-dialog.cc:83 msgid "Please choose your email address according to your PGP key's user id." msgstr "" #: pan/gui/profiles-dialog.cc:131 msgid "Posting Profile" msgstr "" #: pan/gui/profiles-dialog.cc:143 msgid "Profile Information" msgstr "პროფილის ინფორმაცია" #: pan/gui/profiles-dialog.cc:147 msgid "_Profile Name:" msgstr "პროფილის _სახელი:" #: pan/gui/profiles-dialog.cc:150 msgid "Required Information" msgstr "" #: pan/gui/profiles-dialog.cc:154 msgid "_Full Name:" msgstr "" #: pan/gui/profiles-dialog.cc:158 msgid "" "Your email address.\n" "Note that this has to match your PGP signature's address\n" "if you want your messages to be PGP-signed or encrypted correctly." msgstr "" #: pan/gui/profiles-dialog.cc:162 msgid "_Email Address:" msgstr "_ელფოსტის მისამართი:" #: pan/gui/profiles-dialog.cc:164 msgid "_Post Articles via:" msgstr "" #: pan/gui/profiles-dialog.cc:167 msgid "Signature" msgstr "ხელმოწერა" #: pan/gui/profiles-dialog.cc:170 msgid "_Use a Signature" msgstr "" #: pan/gui/profiles-dialog.cc:174 msgid "Signature File" msgstr "" #: pan/gui/profiles-dialog.cc:184 msgid "Text File" msgstr "ტექსტური ფაილი" #: pan/gui/profiles-dialog.cc:186 msgid "Text" msgstr "" #: pan/gui/profiles-dialog.cc:188 msgid "Command" msgstr "" #: pan/gui/profiles-dialog.cc:191 msgid "PGP Signature" msgstr "" #: pan/gui/profiles-dialog.cc:196 msgid "Signature Type: " msgstr "" #: pan/gui/profiles-dialog.cc:227 msgid "Avatars" msgstr "" #: pan/gui/profiles-dialog.cc:230 msgid "" "You can add an avatar icon to your articles with a Base64-encoded PNG.\n" "Add the Base64-encoded picture without the trailing “Face:”." msgstr "" #: pan/gui/profiles-dialog.cc:232 msgid "_Face:" msgstr "" #: pan/gui/profiles-dialog.cc:236 msgid "" "You can add an avatar icon to your articles with a unique X-Face code.\n" "Add the code without the trailing \"X-Face:\" \n" " if it was generated by a helper program (for example http://www.dairiki.org/" "xface/xface.php)." msgstr "" #: pan/gui/profiles-dialog.cc:239 msgid "_X-Face:" msgstr "" #: pan/gui/profiles-dialog.cc:241 msgid "Optional Information" msgstr "" #: pan/gui/profiles-dialog.cc:246 msgid "" "When posting to Usenet, your article's Message-ID contains a domain name.\n" "You can set a custom domain name here, or leave it blank to let Pan use the " "domain name from your email address." msgstr "" #: pan/gui/profiles-dialog.cc:249 msgid "Message-ID _Domain Name:" msgstr "" #: pan/gui/profiles-dialog.cc:253 #, c-format msgid "" "%i for Message-ID\n" "%a for Author and Address\n" "%n for Author name\n" "%d for Date" msgstr "" #: pan/gui/profiles-dialog.cc:254 msgid "_Attribution:" msgstr "" #. Translators: Do not localize Reply-To and the quote marks in \"Your Name\". #: pan/gui/profiles-dialog.cc:279 msgid "" "Extra headers to be included in your articles, such as\n" "Reply-To: \"Your Name\" \n" "Organization: Your Organization\n" msgstr "" #: pan/gui/profiles-dialog.cc:289 msgid "E_xtra Headers:" msgstr "" #: pan/gui/profiles-dialog.cc:334 msgid "Invalid email address." msgstr "არასწორი ელფოსტის მისამართი." #: pan/gui/profiles-dialog.cc:335 msgid "Please use an address of the form joe@somewhere.org" msgstr "" #: pan/gui/profiles-dialog.cc:491 msgid "New Profile" msgstr "ახალი პროფილი" #: pan/gui/profiles-dialog.cc:537 msgid "Posting Profiles" msgstr "" #: pan/gui/profiles-dialog.cc:553 msgid "Profiles" msgstr "" #: pan/gui/save-attach-ui.cc:44 #, c-format msgid "" "%g - group as one directory (alt.binaries.pictures.trains)\n" "%G - group as nested directory (/alt/binaries/pictures/trains)\n" "%s - Subject line excerpt\n" "%S - Subject line\n" "%n - Poster display name\n" "%e - Poster email address\n" "%d - Article timestamp\n" "\"/home/user/News/Pan/%g\" becomes\n" "\"/home/user/News/Pan/alt.binaries.pictures.trains\", and\n" "\"/home/user/News/Pan/%G\" becomes\n" "\"/home/user/News/Pan/alt/binaries/pictures/trains\"," msgstr "" #: pan/gui/save-attach-ui.cc:196 pan/gui/save-ui.cc:216 msgid "Add to the queue sorted by date posted" msgstr "" #: pan/gui/save-attach-ui.cc:197 pan/gui/save-ui.cc:217 msgid "Add to the front of the queue" msgstr "" #: pan/gui/save-attach-ui.cc:198 pan/gui/save-ui.cc:218 msgid "Add to the back of the queue" msgstr "" #: pan/gui/save-attach-ui.cc:230 msgid "Pan: Save Attachments" msgstr "" #: pan/gui/save-attach-ui.cc:255 pan/gui/save-attach-ui.cc:273 #: pan/gui/save-ui.cc:270 pan/gui/save-ui.cc:291 msgid "_Location:" msgstr "მ_დებარეობა:" #: pan/gui/save-attach-ui.cc:259 pan/gui/save-ui.cc:274 msgid "Save Articles" msgstr "" #: pan/gui/save-attach-ui.cc:276 pan/gui/save-ui.cc:294 #, c-format msgid "_Group's path: %s" msgstr "" #: pan/gui/save-attach-ui.cc:287 pan/gui/save-ui.cc:309 msgid "_Priority:" msgstr "_პრიორიტეტი:" #: pan/gui/save-ui.cc:44 #, c-format msgid "" "%g - group as one directory (alt.binaries.pictures.trains)\n" "%G - group as nested directory (/alt/binaries/pictures/trains)\n" "%s - subject line excerpt\n" "%S - subject line\n" "%n - Poster display name\n" "%e - Poster email address\n" "%d - Article timestamp\n" " \n" "\"/home/user/News/Pan/%g\" becomes\n" "\"/home/user/News/Pan/alt.binaries.pictures.trains\", and\n" "\"/home/user/News/Pan/%G\" becomes\n" "\"/home/user/News/Pan/alt/binaries/pictures/trains\"," msgstr "" #: pan/gui/save-ui.cc:207 msgid "Save attachments" msgstr "" #: pan/gui/save-ui.cc:208 msgid "Save text" msgstr "" #: pan/gui/save-ui.cc:209 msgid "Save attachments and text" msgstr "" #: pan/gui/save-ui.cc:245 msgid "Pan: Save Articles" msgstr "" #: pan/gui/save-ui.cc:305 msgid "_Action:" msgstr "_ქმედება:" #: pan/gui/score-add-ui.cc:89 msgid "is more than" msgstr "" #: pan/gui/score-add-ui.cc:90 msgid "is at most" msgstr "" #: pan/gui/score-add-ui.cc:112 msgid "increase the article's score by" msgstr "" #: pan/gui/score-add-ui.cc:113 msgid "decrease the article's score by" msgstr "" #: pan/gui/score-add-ui.cc:114 msgid "set the article's score to" msgstr "" #: pan/gui/score-add-ui.cc:115 msgid "watch the article (set its score to 9999)" msgstr "" #: pan/gui/score-add-ui.cc:116 msgid "ignore the article (set its score to -9999)" msgstr "" #: pan/gui/score-add-ui.cc:141 msgid "References" msgstr "მიმართვები" #: pan/gui/score-add-ui.cc:142 msgid "Line Count" msgstr "ხაზის რაოდენობა" #: pan/gui/score-add-ui.cc:143 msgid "Byte Count" msgstr "" #: pan/gui/score-add-ui.cc:144 msgid "Crosspost Group Count" msgstr "" #: pan/gui/score-add-ui.cc:145 msgid "Age (in days)" msgstr "" #: pan/gui/score-add-ui.cc:167 msgid "for the next month" msgstr "" #: pan/gui/score-add-ui.cc:168 msgid "for the next six months" msgstr "" #: pan/gui/score-add-ui.cc:169 msgid "forever" msgstr "სამუდამოდ" #: pan/gui/score-add-ui.cc:194 msgid "contains" msgstr "შეიცავს" #: pan/gui/score-add-ui.cc:195 msgid "doesn't contain" msgstr "" #: pan/gui/score-add-ui.cc:196 msgid "is" msgstr "" #: pan/gui/score-add-ui.cc:197 msgid "isn't" msgstr "" #: pan/gui/score-add-ui.cc:198 msgid "starts with" msgstr "იწყება" #: pan/gui/score-add-ui.cc:199 msgid "ends with" msgstr "მთავრდება" #: pan/gui/score-add-ui.cc:200 msgid "matches regex" msgstr "" #: pan/gui/score-add-ui.cc:481 msgid "Another rule already sets this article's score." msgstr "" #: pan/gui/score-add-ui.cc:482 msgid "You may want to go back or delete the old rule." msgstr "" #: pan/gui/score-add-ui.cc:484 msgid "Back" msgstr "უკან" #: pan/gui/score-add-ui.cc:485 pan/gui/task-pane.cc:1040 msgid "Delete" msgstr "" #: pan/gui/score-add-ui.cc:486 pan/gui/score-add-ui.cc:607 #: pan/gui/score-view-ui.cc:207 msgid "Add" msgstr "" #: pan/gui/score-add-ui.cc:553 msgid "Add and Re_score" msgstr "" #: pan/gui/score-add-ui.cc:602 pan/gui/score-add-ui.cc:622 msgid "New Scoring Rule" msgstr "" #: pan/gui/score-add-ui.cc:633 msgid "Group name" msgstr "ჯგუფის სახელი" #: pan/gui/score-add-ui.cc:640 msgid "and" msgstr "" #: pan/gui/score-view-ui.cc:55 msgid "Close and Re_score" msgstr "" #: pan/gui/score-view-ui.cc:153 #, c-format msgid "File %s, Lines %d - %d" msgstr "" #: pan/gui/score-view-ui.cc:181 msgid "Pan: Article's Scores" msgstr "" #: pan/gui/score-view-ui.cc:212 msgid "New Score" msgstr "" #: pan/gui/score-view-ui.cc:217 msgid "Criteria" msgstr "კრიტერიუმი" #: pan/gui/score-view-ui.cc:240 msgid "Add a New Scoring Rule" msgstr "" #: pan/gui/score-view-ui.cc:247 msgid "Remove the Selected Scoring Rule" msgstr "" #: pan/gui/server-ui.cc:292 msgid "Please specify the server's address." msgstr "" #: pan/gui/server-ui.cc:344 msgid "Import SSL Certificate (PEM Format) From File" msgstr "" #. create the dialog #: pan/gui/server-ui.cc:381 pan/gui/server-ui.cc:996 msgid "Add a Server" msgstr "" #: pan/gui/server-ui.cc:381 pan/gui/server-ui.cc:1002 msgid "Edit a Server's Settings" msgstr "" #: pan/gui/server-ui.cc:401 msgid "Location" msgstr "ადგილმდებარეობა" #: pan/gui/server-ui.cc:405 msgid "The news server's actual address, e.g. \"news.mynewsserver.com\"." msgstr "" #: pan/gui/server-ui.cc:406 msgid "_Address:" msgstr "მის_ამართი:" #: pan/gui/server-ui.cc:411 msgid "" "The news server's port number. Typically 119 for unencrypted and 563 for " "encrypted connections (SSL/TLS)." msgstr "" #: pan/gui/server-ui.cc:412 msgid "Por_t:" msgstr "" #: pan/gui/server-ui.cc:415 msgid "Login (if Required)" msgstr "" #: pan/gui/server-ui.cc:419 msgid "_Username:" msgstr "_მომხმარებელი:" #: pan/gui/server-ui.cc:420 msgid "" "The username to give the server when asked. If your server doesn't require " "authentication, you can leave this blank." msgstr "" #: pan/gui/server-ui.cc:424 msgid "_Password:" msgstr "" #: pan/gui/server-ui.cc:425 msgid "" "The password to give the server when asked. If your server doesn't require " "authentication, you can leave this blank." msgstr "" #: pan/gui/server-ui.cc:428 msgid "Settings" msgstr "" #: pan/gui/server-ui.cc:435 msgid "Connection _Limit:" msgstr "" #: pan/gui/server-ui.cc:439 msgid "After Two Weeks" msgstr "" #: pan/gui/server-ui.cc:440 msgid "After One Month" msgstr "" #: pan/gui/server-ui.cc:441 msgid "After Two Months" msgstr "" #: pan/gui/server-ui.cc:442 msgid "After Three Months" msgstr "" #: pan/gui/server-ui.cc:443 msgid "After Six Months" msgstr "" #: pan/gui/server-ui.cc:444 msgid "Never Expire Old Articles" msgstr "" #: pan/gui/server-ui.cc:458 msgid "E_xpire Old Articles:" msgstr "" #: pan/gui/server-ui.cc:462 msgid "Primary" msgstr "ძირითადი" #: pan/gui/server-ui.cc:463 msgid "Fallback" msgstr "გადართვა შეცდომის შემთხვევაში" #: pan/gui/server-ui.cc:477 msgid "Server Rank:" msgstr "" #: pan/gui/server-ui.cc:481 msgid "" "Fallback servers are used for articles that can't be found on the " "primaries. One common approach is to use free servers as primaries and " "subscription servers as fallbacks." msgstr "" #: pan/gui/server-ui.cc:486 msgid "Disable Compression (N/A)" msgstr "" #: pan/gui/server-ui.cc:487 msgid "XZVER Compression (Astraweb)" msgstr "" #: pan/gui/server-ui.cc:488 msgid "GZIP Compression (Giganews etc.)" msgstr "" #: pan/gui/server-ui.cc:502 msgid "Header Compression:" msgstr "" #: pan/gui/server-ui.cc:508 msgid "Security" msgstr "უსაფრთხოება" #: pan/gui/server-ui.cc:513 msgid "Use Unsecure (Plaintext) Connections" msgstr "" #: pan/gui/server-ui.cc:514 msgid "Use Secure SSL Connections" msgstr "" #: pan/gui/server-ui.cc:529 msgid "TLS (SSL) Settings:" msgstr "" #: pan/gui/server-ui.cc:534 msgid "" "You can enable/disable secure SSL/TLS connections here. If you enable SSL/" "TLS, your data is encrypted and secure. It is encouraged to enable SSL/TLS " "for privacy reasons." msgstr "" #: pan/gui/server-ui.cc:539 msgid "Always trust this server's certificate" msgstr "" #: pan/gui/server-ui.cc:724 #, c-format msgid "Really delete \"%s\"?" msgstr "" #: pan/gui/server-ui.cc:813 msgid "No information available." msgstr "" #: pan/gui/server-ui.cc:823 #, c-format msgid "Server Certificate for '%s'" msgstr "" #: pan/gui/server-ui.cc:922 #, c-format msgid "Really delete certificate for \"%s\"?" msgstr "" #. dialog #: pan/gui/server-ui.cc:949 pan/gui/server-ui.cc:970 pan/gui/server-ui.cc:1068 msgid "Servers" msgstr "სერვერები" #: pan/gui/server-ui.cc:1009 msgid "Remove a Server" msgstr "" #. dialog #: pan/gui/server-ui.cc:1042 msgid "SSL Certificates" msgstr "" #: pan/gui/server-ui.cc:1063 msgid "Certificates" msgstr "სერტიფიკატები" #: pan/gui/server-ui.cc:1094 msgid "Import Certificate" msgstr "სერტიფიკატის შემოტანა" #: pan/gui/server-ui.cc:1100 msgid "Inspect Certificate" msgstr "" #: pan/gui/server-ui.cc:1107 msgid "Remove Certificate" msgstr "" #: pan/gui/task-pane.cc:124 #, c-format msgid "" "\n" "Upload\n" "\n" "Subject: \"%s\"\n" "From: %s\n" "Groups: %s\n" "Sourcefile: %s\n" msgstr "" #: pan/gui/task-pane.cc:136 #, c-format msgid "" "\n" "Download\n" "\n" "Subject: \"%s\"\n" "From: %s\n" "Date: %s\n" "Groups: %s\n" "Save Path: %s\n" msgstr "" #: pan/gui/task-pane.cc:138 msgid "unknown" msgstr "" #: pan/gui/task-pane.cc:306 msgid "Choose New Destination for Selected Tasks" msgstr "" #: pan/gui/task-pane.cc:310 msgid "Save" msgstr "" #: pan/gui/task-pane.cc:460 #, c-format msgid "Pan: Tasks (%d Queued, %d Running, %d Stopped)" msgstr "" #: pan/gui/task-pane.cc:462 #, c-format msgid "Pan: Tasks (%d Queued, %d Running)" msgstr "" #: pan/gui/task-pane.cc:464 msgid "Pan: Tasks" msgstr "" #: pan/gui/task-pane.cc:489 #, c-format msgid "%lu selected, %s" msgstr "" #: pan/gui/task-pane.cc:553 msgid "Running" msgstr "" #: pan/gui/task-pane.cc:554 msgid "Decoding" msgstr "" #: pan/gui/task-pane.cc:556 msgid "Queued for Decode" msgstr "" #: pan/gui/task-pane.cc:557 msgid "Queued for Encode" msgstr "" #: pan/gui/task-pane.cc:558 msgid "Queued" msgstr "რიგშია" #: pan/gui/task-pane.cc:559 msgid "Stopped" msgstr "შეჩერებულია" #: pan/gui/task-pane.cc:560 msgid "Removing" msgstr "წაშლა" #: pan/gui/task-pane.cc:589 #, c-format msgid "%d%% Done" msgstr "" #: pan/gui/task-pane.cc:595 #, c-format msgid "%d:%02d:%02d Remaining (%d @ %lu KiB/s)" msgstr "" #: pan/gui/task-pane.cc:690 pan/gui/task-pane.cc:691 msgid "Move To Top" msgstr "" #: pan/gui/task-pane.cc:695 pan/gui/task-pane.cc:696 msgid "Move To Bottom" msgstr "" #: pan/gui/task-pane.cc:700 pan/gui/task-pane.cc:701 msgid "Show Task Information" msgstr "" #: pan/gui/task-pane.cc:705 pan/gui/task-pane.cc:706 msgid "Stop Task" msgstr "" #: pan/gui/task-pane.cc:710 pan/gui/task-pane.cc:711 msgid "Delete Task" msgstr "ამოცანის წაშლა" #: pan/gui/task-pane.cc:715 pan/gui/task-pane.cc:716 msgid "Restart Task" msgstr "" #: pan/gui/task-pane.cc:720 pan/gui/task-pane.cc:721 msgid "Change Download Destination" msgstr "" #: pan/gui/task-pane.cc:1016 msgid "_Online" msgstr "" #: pan/gui/task-pane.cc:1026 msgid "Move up" msgstr "აწევა" #: pan/gui/task-pane.cc:1027 msgid "Move task up" msgstr "ამოცანის მაღლა აწევა" #: pan/gui/task-pane.cc:1028 msgid "Move to top" msgstr "ზემოთ ატანა" #: pan/gui/task-pane.cc:1029 msgid "Move task to top of the download queue" msgstr "" #: pan/gui/task-pane.cc:1031 msgid "Move down" msgstr "ქვემოთ ჩამოწევა" #: pan/gui/task-pane.cc:1032 msgid "Move task down" msgstr "ამოცანის დაბლა ჩამოწევა" #: pan/gui/task-pane.cc:1033 msgid "Move to bottom" msgstr "ბოლოში ჩამოტანა" #: pan/gui/task-pane.cc:1034 msgid "Move task to the bottom of the download queue" msgstr "" #: pan/gui/task-pane.cc:1036 msgid "Restart" msgstr "" #: pan/gui/task-pane.cc:1037 msgid "Restart Tasks" msgstr "" #: pan/gui/task-pane.cc:1038 msgid "Stop" msgstr "გაჩერება" #: pan/gui/task-pane.cc:1039 msgid "Stop Tasks" msgstr "" #: pan/gui/task-pane.cc:1041 msgid "Delete Tasks" msgstr "ამოცანების წაშლა" #: pan/gui/task-pane.cc:1043 msgid "Close" msgstr "" #: pan/gui/task-pane.cc:1047 msgid "Show popups" msgstr "მხტუნარების ჩვენება" #: pan/gui/url.cc:143 #, c-format msgid "Error starting URL: %s (Command was: %s)" msgstr "" #: pan/tasks/decoder.cc:124 #, c-format msgid "Couldn't save file \"%s\": %s" msgstr "" #: pan/tasks/decoder.cc:146 pan/tasks/encoder.cc:146 msgid "Error initializing uulib" msgstr "" #: pan/tasks/decoder.cc:166 pan/tasks/socket-impl-gio.cc:360 #: pan/tasks/socket-impl-openssl.cc:641 #, c-format msgid "Error reading from %s: %s" msgstr "" #: pan/tasks/decoder.cc:206 #, c-format msgid "Saved \"%s\"" msgstr "" #: pan/tasks/decoder.cc:213 #, c-format msgid "" "Error saving \"%s\":\n" "%s." msgstr "" #: pan/tasks/decoder.cc:326 pan/tasks/task-article.cc:351 #, c-format msgid "Decoding %s" msgstr "" #: pan/tasks/encoder.cc:113 pan/tasks/encoder.cc:164 #, c-format msgid "Error loading %s from cache." msgstr "" #: pan/tasks/encoder.cc:186 #, c-format msgid "Error encoding %s: %s" msgstr "" #: pan/tasks/encoder.cc:276 #, c-format msgid "Encoding %s" msgstr "" #: pan/tasks/nntp.cc:176 #, c-format msgid "%s requires a username, but none is set." msgstr "" #: pan/tasks/nntp.cc:189 #, c-format msgid "%s requires a password, but none is set." msgstr "" #: pan/tasks/nntp.cc:275 #, c-format msgid "Sending \"%s\" to %s returned an error: %s" msgstr "" #: pan/tasks/nntp.cc:298 #, c-format msgid "Sending \"%s\" to %s returned an unrecognized response: \"%s\"" msgstr "" #: pan/tasks/nntp-pool.cc:241 #, c-format msgid "Unable to connect to \"%s\"" msgstr "" #: pan/tasks/queue.cc:778 pan/tasks/queue.cc:806 pan/tasks/queue.cc:833 msgid "No space left on device." msgstr "" #: pan/tasks/socket-impl-gio.cc:173 pan/tasks/socket-impl-gio.cc:211 #: pan/tasks/socket-impl-openssl.cc:213 pan/tasks/socket-impl-openssl.cc:251 #, c-format msgid "Error connecting to \"%s\"" msgstr "" #: pan/tasks/socket-impl-gio.cc:359 pan/tasks/socket-impl-openssl.cc:640 msgid "Unknown Error" msgstr "უცნობი შეცდომა" #: pan/tasks/task-article.cc:59 pan/tasks/task-article.cc:157 #, c-format msgid "Saving %s" msgstr "'%s'-ის შენახვა" #: pan/tasks/task-article.cc:61 #, c-format msgid "Reading %s" msgstr "" #: pan/tasks/task-article.cc:323 #, c-format msgid "Article \"%s\" is incomplete -- the news server(s) don't have part %s" msgstr "" #: pan/tasks/task-groups.cc:41 #, c-format msgid "Getting group list from \"%s\"" msgstr "" #: pan/tasks/task-groups.cc:134 #, c-format msgid "Fetched %lu Groups" msgstr "" #: pan/tasks/task-post.cc:33 #, c-format msgid "Posting \"%s\"" msgstr "" #: pan/tasks/task-post.cc:74 #, c-format msgid "Posting of \"%s\" failed: %s" msgstr "" #: pan/tasks/task-post.cc:79 #, c-format msgid "Posting of \"%s\" successful: %s" msgstr "" #: pan/tasks/task-upload.cc:55 #, c-format msgid "Uploading %s" msgstr "" #: pan/tasks/task-upload.cc:249 #, c-format msgid "Uploading %s - Part %d of %d" msgstr "" #: pan/tasks/task-upload.cc:251 #, c-format msgid "Uploading message body with subject \"%s\"" msgstr "" #: pan/tasks/task-upload.cc:308 #, c-format msgid "Posting of file %s (part %d of %d) failed: No posts allowed by server." msgstr "" #: pan/tasks/task-upload.cc:317 #, c-format msgid "Posting of file %s (part %d of %d) failed: %s" msgstr "" #: pan/tasks/task-upload.cc:328 pan/tasks/task-upload.cc:335 #, c-format msgid "Posting of file %s (part %d of %d) successful: %s" msgstr "" #: pan/tasks/task-upload.cc:345 #, c-format msgid "Posting of file %s successful: %s" msgstr "" #: pan/tasks/task-upload.cc:349 #, c-format msgid "" "Posting of file %s not completely successful: Check the log (right-click " "list item)." msgstr "" #: pan/tasks/task-upload.cc:368 #, c-format msgid "" "Posting of file %s not successful: Check the log (right-click list item)." msgstr "" #: pan/tasks/task-xover.cc:82 #, c-format msgid "Getting all headers for \"%s\"" msgstr "" #: pan/tasks/task-xover.cc:85 #, c-format msgid "Getting new headers for \"%s\"" msgstr "" #. SAMPLE #: pan/tasks/task-xover.cc:89 #, c-format msgid "Sampling headers for \"%s\"" msgstr "" #: pan/tasks/task-xover.cc:454 #, c-format msgid "%s (%lu parts, %lu articles)" msgstr "" #: pan/tasks/task-xover.cc:528 #, c-format msgid "Getting new headers for \"%s\" done." msgstr "" #: pan/usenet-utils/filter-info.cc:215 msgid "article doesn't have attachments" msgstr "" #: pan/usenet-utils/filter-info.cc:219 msgid "the article has attachments" msgstr "" #: pan/usenet-utils/filter-info.cc:223 msgid "the article isn't cached locally" msgstr "" #: pan/usenet-utils/filter-info.cc:227 msgid "the article is cached locally" msgstr "" #: pan/usenet-utils/filter-info.cc:231 msgid "the article wasn't posted by you" msgstr "" #: pan/usenet-utils/filter-info.cc:235 msgid "the article was posted by you" msgstr "" #: pan/usenet-utils/filter-info.cc:239 msgid "the article has been read" msgstr "" #: pan/usenet-utils/filter-info.cc:243 msgid "the article hasn't been read" msgstr "" #: pan/usenet-utils/filter-info.cc:247 #, c-format msgid "the article is less than %ld bytes long" msgstr "" #: pan/usenet-utils/filter-info.cc:252 #, c-format msgid "the article is at least %ld bytes long" msgstr "" #: pan/usenet-utils/filter-info.cc:257 #, c-format msgid "the article is less than %ld lines long" msgstr "" #: pan/usenet-utils/filter-info.cc:262 #, c-format msgid "the article is at least %ld lines long" msgstr "" #: pan/usenet-utils/filter-info.cc:267 #, c-format msgid "the article is less than %ld days old" msgstr "" #: pan/usenet-utils/filter-info.cc:272 #, c-format msgid "the article is at least %ld days old" msgstr "" #: pan/usenet-utils/filter-info.cc:277 #, c-format msgid "the article was posted to less than %ld groups" msgstr "" #: pan/usenet-utils/filter-info.cc:282 #, c-format msgid "the article was posted to at least %ld groups" msgstr "" #: pan/usenet-utils/filter-info.cc:287 #, c-format msgid "the article's score is less than %ld" msgstr "" #: pan/usenet-utils/filter-info.cc:292 #, c-format msgid "the article's score is %ld or higher" msgstr "" #: pan/usenet-utils/filter-info.cc:301 pan/usenet-utils/filter-info.cc:311 #, c-format msgid "%s doesn't contain \"%s\"" msgstr "" #: pan/usenet-utils/filter-info.cc:302 pan/usenet-utils/filter-info.cc:312 #, c-format msgid "%s isn't \"%s\"" msgstr "" #: pan/usenet-utils/filter-info.cc:303 pan/usenet-utils/filter-info.cc:313 #, c-format msgid "%s doesn't begin with \"%s\"" msgstr "" #: pan/usenet-utils/filter-info.cc:304 pan/usenet-utils/filter-info.cc:314 #, c-format msgid "%s doesn't end with \"%s\"" msgstr "" #: pan/usenet-utils/filter-info.cc:305 pan/usenet-utils/filter-info.cc:315 #, c-format msgid "%s doesn't match the regex \"%s\"" msgstr "" #: pan/usenet-utils/filter-info.cc:327 #, c-format msgid "%s contains \"%s\"" msgstr "" #: pan/usenet-utils/filter-info.cc:328 #, c-format msgid "%s is \"%s\"" msgstr "" #: pan/usenet-utils/filter-info.cc:329 #, c-format msgid "%s begins with \"%s\"" msgstr "" #: pan/usenet-utils/filter-info.cc:330 #, c-format msgid "%s ends with \"%s\"" msgstr "" #: pan/usenet-utils/filter-info.cc:331 #, c-format msgid "%s matches the regex \"%s\"" msgstr "" #: pan/usenet-utils/filter-info.cc:337 msgid "Any of these tests fail:" msgstr "" #: pan/usenet-utils/filter-info.cc:344 msgid "All of these tests pass:" msgstr "" #: pan/usenet-utils/filter-info.cc:351 msgid "None of these tests pass:" msgstr "" #: pan/usenet-utils/filter-info.cc:358 msgid "Any of these tests pass:" msgstr "" #: pan/usenet-utils/gnksa.cc:880 #, c-format msgid "No email address provided; generating message-id with domain \"%s\"" msgstr "" #: pan/usenet-utils/message-check.cc:122 msgid "Warning: Reply seems to be top-posted." msgstr "" #: pan/usenet-utils/message-check.cc:143 msgid "Warning: The signature marker should be \"-- \", not \"--\"." msgstr "" #: pan/usenet-utils/message-check.cc:160 msgid "Warning: Signature prefix with no signature." msgstr "" #: pan/usenet-utils/message-check.cc:165 msgid "Warning: Signature is more than 4 lines long." msgstr "" #: pan/usenet-utils/message-check.cc:170 msgid "Warning: Signature is more than 80 characters wide." msgstr "" #: pan/usenet-utils/message-check.cc:196 #, c-format msgid "Warning: %d line is more than 80 characters wide." msgid_plural "Warning: %d lines are more than 80 characters wide." msgstr[0] "" #: pan/usenet-utils/message-check.cc:221 msgid "Error: Message is empty." msgstr "" #: pan/usenet-utils/message-check.cc:256 msgid "Warning: The message is entirely quoted text!" msgstr "" #: pan/usenet-utils/message-check.cc:257 msgid "Warning: The message is mostly quoted text." msgstr "" #: pan/usenet-utils/message-check.cc:307 msgid "Error: Message appears to have no new content." msgstr "" #: pan/usenet-utils/message-check.cc:342 pan/usenet-utils/message-check.cc:381 #, c-format msgid "" "Warning: The posting profile's server doesn't carry newsgroup\n" "\t\"%s\".\n" "\tIf the group name is correct, switch profiles in the \"From:\"\n" "\tline or edit the profile with \"Edit|Manage Posting Profiles\"." msgstr "" #: pan/usenet-utils/message-check.cc:353 msgid "Warning: Following-Up to too many groups." msgstr "" #: pan/usenet-utils/message-check.cc:364 msgid "Error: No Subject specified." msgstr "" #: pan/usenet-utils/message-check.cc:393 #, c-format msgid "Warning: Group \"%s\" is read-only." msgstr "" #: pan/usenet-utils/message-check.cc:402 msgid "Error: Posting to a very large number of groups." msgstr "" #: pan/usenet-utils/message-check.cc:407 msgid "Warning: Posting to a large number of groups." msgstr "" #: pan/usenet-utils/message-check.cc:414 msgid "Warning: Crossposting without setting Followup-To header." msgstr "" #: pan/usenet-utils/message-check.cc:439 msgid "Error: Bad email address." msgstr "" #: pan/usenet-utils/message-check.cc:448 msgid "Warning: Most newsgroups frown upon HTML posts." msgstr "" #: pan/usenet-utils/message-check.cc:484 msgid "Error: No Recipients." msgstr "" #: pan/usenet-utils/scorefile.cc:310 #, c-format msgid "Error reading score in %*.*s, line %d: unexpected line." msgstr "" #: pan/usenet-utils/scorefile.cc:442 #, c-format msgid "" "Error reading score in %*.*s, line %d: expected 'Expires: MM/DD/YYYY' or " "'Expires: DD-MM-YYYY'." msgstr "" #: pan/usenet-utils/scorefile.cc:452 #, c-format msgid "Expired old score from %*.*s, line %d" msgstr "" #: pan/usenet-utils/scorefile.cc:589 #, c-format msgid "Read %lu scoring rules in %lu sections from \"%s\"" msgstr "" #: pan/usenet-utils/ssl-utils.cc:172 #, c-format msgid "Error printing the server certificate for '%s'" msgstr "" #: pan/usenet-utils/ssl-utils.cc:191 #, c-format msgid "" "The current server '%s' sent this security certificate:\n" "\n" msgstr "" #: pan/usenet-utils/ssl-utils.cc:197 #, c-format msgid "" "Certificate information for server '%s':\n" "\n" msgstr "" #: pan/usenet-utils/ssl-utils.cc:202 #, c-format msgid "" "%sIssuer information:\n" "%s\n" "Valid until: %s\n" "\n" "Not valid before: %s\n" "\n" msgstr "" #: pan/usenet-utils/text-massager.cc:397 msgid "> [quoted text muted]" msgstr "" #: pan/usenet-utils/text-massager.cc:579 msgid "no_name" msgstr "" #: pan/usenet-utils/text-massager.cc:580 msgid "no_mail" msgstr "" pan-0.162/po/ko.po000066400000000000000000004064701475412772400137170ustar00rootroot00000000000000# Copyleft (C) 1999-2000 The World of Keizi. # Kang JeongHee , 1999-2000. # Updated by Sung-Hyun Nam 2001 # Updated by Hwang, Chideok 2001 msgid "" msgstr "" "Project-Id-Version: pan 0.13.4\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-04-04 20:58+0200\n" "PO-Revision-Date: 2003-02-20 12:45+0900\n" "Last-Translator: Nam SungHyun \n" "Language-Team: Korean \n" "Language: ko\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../pan.desktop.in.h:1 msgid "Pan Newsreader" msgstr "판, 뉴스리더" #: ../pan.desktop.in.h:2 #, fuzzy msgid "Read and Post Usenet Articles" msgstr "고른 기사 받기" #: ../pan/data/article-cache.cc:143 ../pan/data/encode-cache.cc:62 #, fuzzy, c-format msgid "Error opening directory: \"%s\": %s" msgstr "\"%s\" 디렉토리를 열 수 없습니다: %s)" #: ../pan/data/article-cache.cc:231 ../pan/data/article-cache.cc:242 #: ../pan/data-impl/data-io.cc:187 ../pan/data-impl/data-io.cc:211 #: ../pan/gui/post-ui.cc:1639 #, fuzzy, c-format msgid "Unable to save \"%s\" %s" msgstr "그룹 \"%s\" 설정 불가: %s" #: ../pan/data/article-cache.cc:355 #, fuzzy, c-format msgid "Error opening file \"%s\" %s" msgstr "\"%s\" 파일을 열기 에러: %s" #: ../pan/data/article-cache.cc:386 ../pan/data-impl/profiles.cc:174 #: ../pan/data-impl/server.cc:436 ../pan/general/file-util.cc:298 #: ../pan/gui/post-ui.cc:609 ../pan/gui/task-pane.cc:691 #, c-format msgid "Error reading file \"%s\": %s" msgstr "\"%s\" 파일을 읽기 에러: %s" #: ../pan/data/cert-store.cc:238 #, fuzzy, c-format msgid "Error opening SSL certificate directory: \"%s\": %s" msgstr "\"%s\" 디렉토리를 열 수 없습니다: %s)" #: ../pan/data/cert-store.cc:270 #, c-format msgid "Succesfully added %d SSL PEM certificate(s) to Certificate Store." msgstr "" #. load_group_descriptions (*_data_io); #: ../pan/data-impl/data-impl.cc:109 #, c-format msgid "Loaded data backend in %.1f seconds" msgstr "" #: ../pan/data-impl/data-impl.cc:140 msgid "Pan newsreader server passwords" msgstr "" #: ../pan/data-impl/groups.cc:94 #, fuzzy, c-format msgid "Skipping newsrc file for server \"%s\"" msgstr "%d개 새 그룹을 \"%s\" 서버에서 받습니다" #: ../pan/data-impl/headers.cc:606 #, fuzzy, c-format msgid "Expired %lu old articles from \"%s\"" msgstr "%u개의 기사를 \"%s\"에서 지웠습니다" #: ../pan/data-impl/headers.cc:613 #, c-format msgid "" "Unsupported data version for %s headers: %d.\n" "Are you running an old version of Pan by accident?" msgstr "" "%s 헤더에 대한 데이타 버전이 지원되지 않습니다: %d.\n" "이전 버전의 판을 실행하셨습니까?" #: ../pan/data-impl/headers.cc:628 #, fuzzy, c-format msgid "Loaded %lu articles for \"%s\" in %.1f seconds (%.0f per second)" msgstr "%d개의 기사를 \"%s\" 그룹에 %.1f 초동안 저장했습니다 (%.0f 기사/초)" #: ../pan/data-impl/headers.cc:857 #, fuzzy, c-format msgid "" "Saved %lu parts, %lu articles in \"%s\" in %.1f seconds (%.0f articles/sec)" msgstr "%d개의 기사를 그룹 %s에서 %.1f 초동안 저장했습니다 (%.0f 기사/초)" #: ../pan/data-impl/headers.cc:1173 #, fuzzy, c-format msgid "Added %lu articles to %s." msgstr "%u개의 기사를 \"%s\"에서 지웠습니다" #: ../pan/data-impl/server.cc:234 #, c-format msgid "There seems to be no Password set for Server %s." msgstr "" #: ../pan/data-impl/server.cc:238 msgid "The Gnome keyring denied access to the Passwords." msgstr "" #: ../pan/data-impl/xover.cc:239 #, fuzzy, c-format msgid "Error reading from %s: unknown group \"%s\"" msgstr "소켓에서 읽다가 오류가 났습니다: %s" #. build the locale strings #: ../pan/general/e-util.cc:213 msgid "%l:%M %p" msgstr "" #: ../pan/general/e-util.cc:214 msgid "Today %l:%M %p" msgstr "" #: ../pan/general/e-util.cc:215 msgid "%a %l:%M %p" msgstr "" #: ../pan/general/e-util.cc:216 msgid "%b %d %l:%M %p" msgstr "" #: ../pan/general/e-util.cc:217 msgid "%b %d %Y" msgstr "" #: ../pan/general/e-util.cc:242 msgid "?" msgstr "" #: ../pan/general/text-match.cc:193 #, fuzzy, c-format msgid "Can't use regular expression \"%s\": %s" msgstr "정규표현식과 맞습니다" #: ../pan/general/utf8-utils.cc:213 msgid "Couldn't determine article encoding. Non-UTF8 characters were removed." msgstr "" #: ../pan/gui/actions.cc:274 ../pan/gui/post-ui.cc:417 #, fuzzy msgid "_File" msgstr "/파일(_F)" #: ../pan/gui/actions.cc:275 ../pan/gui/post-ui.cc:418 #, fuzzy msgid "_Edit" msgstr "/편집(_E)" #: ../pan/gui/actions.cc:276 ../pan/gui/prefs-ui.cc:1064 msgid "_Layout" msgstr "배치(_L)" #: ../pan/gui/actions.cc:277 #, fuzzy msgid "_Group Pane" msgstr "그룹목록 창(_G):" #: ../pan/gui/actions.cc:278 #, fuzzy msgid "_Header Pane" msgstr "헤더 창(_H):" #: ../pan/gui/actions.cc:279 #, fuzzy msgid "_Body Pane" msgstr "본문 창" #: ../pan/gui/actions.cc:280 #, fuzzy msgid "_View" msgstr "/보기(_V)" #: ../pan/gui/actions.cc:281 #, fuzzy msgid "Filte_r" msgstr "/거르개(_r)" #: ../pan/gui/actions.cc:282 #, fuzzy msgid "_Go" msgstr "/_Go" #: ../pan/gui/actions.cc:283 ../pan/gui/prefs-ui.cc:1091 #, fuzzy msgid "_Actions" msgstr "동작" #: ../pan/gui/actions.cc:284 #, fuzzy msgid "_Articles" msgstr "/기사(_A)" #: ../pan/gui/actions.cc:285 #, fuzzy msgid "G_roups" msgstr "그룹" #: ../pan/gui/actions.cc:286 ../pan/gui/actions.cc:287 #, fuzzy msgid "_Post" msgstr "/부치기(_P)" #: ../pan/gui/actions.cc:288 msgid "_Help" msgstr "도움말(_H)" #: ../pan/gui/actions.cc:291 #, fuzzy msgid "_Read Group" msgstr "/그룹 삭제(_t)" #: ../pan/gui/actions.cc:292 #, fuzzy msgid "Read Group" msgstr "/그룹 삭제(_t)" #: ../pan/gui/actions.cc:296 #, fuzzy msgid "_Mark Selected Groups Read" msgstr "/그룹을 읽은 것으로 표시(_R)" #: ../pan/gui/actions.cc:297 #, fuzzy msgid "Mark Selected Groups Read" msgstr "/그룹을 읽은 것으로 표시(_R)" #: ../pan/gui/actions.cc:301 #, fuzzy msgid "_Delete Selected Groups' Articles" msgstr "/그룹의 모든 기사 지우기(_D)" #: ../pan/gui/actions.cc:302 #, fuzzy msgid "Delete Selected Groups' Articles" msgstr "/그룹의 모든 기사 지우기(_D)" #: ../pan/gui/actions.cc:306 #, fuzzy msgid "Get New _Headers in Selected Groups" msgstr "선택된 그룹 모두에서 새 헤더 받기" #: ../pan/gui/actions.cc:307 #, fuzzy msgid "Get New Headers in Selected Groups" msgstr "선택된 그룹 모두에서 새 헤더 받기" #: ../pan/gui/actions.cc:311 ../pan/gui/actions.cc:316 #, fuzzy msgid "Get New _Headers in Subscribed Groups" msgstr "받아보는 그룹 모두에서 새 헤더 받기" #: ../pan/gui/actions.cc:312 ../pan/gui/actions.cc:317 #, fuzzy msgid "Get New Headers in Subscribed Groups" msgstr "받아보는 그룹 모두에서 새 헤더 받기" #: ../pan/gui/actions.cc:321 #, fuzzy msgid "Get _Headers..." msgstr "/새 헤더 받기(_H)" #: ../pan/gui/actions.cc:322 #, fuzzy msgid "Get Headers..." msgstr "/새 헤더 받기(_H)" #: ../pan/gui/actions.cc:326 ../pan/gui/actions.cc:327 #, fuzzy msgid "Refresh Group List" msgstr "\"%s\" 그룹을 재생합니다" #: ../pan/gui/actions.cc:331 #, fuzzy msgid "_Subscribe" msgstr "/받아보기(_S)" #: ../pan/gui/actions.cc:332 #, fuzzy msgid "Subscribe" msgstr "/받아보기(_S)" #: ../pan/gui/actions.cc:336 #, fuzzy msgid "_Unsubscribe" msgstr "/안받아보기" #: ../pan/gui/actions.cc:337 #, fuzzy msgid "Unsubscribe" msgstr "/안받아보기" #: ../pan/gui/actions.cc:341 #, fuzzy msgid "_Save Articles..." msgstr "...로 기사 저장" #: ../pan/gui/actions.cc:342 #, fuzzy msgid "Save Articles..." msgstr "...로 기사 저장" #: ../pan/gui/actions.cc:346 #, fuzzy msgid "Save Articles from Selected _NZB..." msgstr "...로 기사 저장" #: ../pan/gui/actions.cc:347 #, fuzzy msgid "Save Articles from Selected NZB" msgstr "기사 텍스트 저장(_x)" #: ../pan/gui/actions.cc:351 #, fuzzy msgid "Save Articles to an NZB _File..." msgstr "...로 기사 저장" #: ../pan/gui/actions.cc:352 #, fuzzy msgid "Save Articles to an NZB File" msgstr "기록을 파일에 저장합니다" #: ../pan/gui/actions.cc:356 ../pan/gui/actions.cc:357 #, fuzzy msgid "Print" msgstr "판: 인쇄" #: ../pan/gui/actions.cc:361 msgid "_Import NZB Files..." msgstr "" #: ../pan/gui/actions.cc:366 #, fuzzy msgid "_Cancel Last Task" msgstr "마지막 작업 취소" #: ../pan/gui/actions.cc:371 #, fuzzy msgid "_Task Manager" msgstr "/도구(_T)/작업 관리자(_T)..." #: ../pan/gui/actions.cc:376 #, fuzzy msgid "_Event Log" msgstr "상태 로그를 보여줍니다" #: ../pan/gui/actions.cc:381 #, fuzzy msgid "_Quit" msgstr "/편집(_E)" #: ../pan/gui/actions.cc:386 #, fuzzy msgid "Select _All Articles" msgstr "/편집(_E)/모든 기사 선택(_A)" #: ../pan/gui/actions.cc:391 #, fuzzy msgid "_Deselect All Articles" msgstr "/편집(_E)/모든 기사 선택 해제(_l)" #: ../pan/gui/actions.cc:396 #, fuzzy msgid "Add Su_bthreads to Selection" msgstr "/편집(_E)/선택에 하위쓰레드 추가(_S)" #: ../pan/gui/actions.cc:401 #, fuzzy msgid "Add _Threads to Selection" msgstr "/편집(_E)/선택에 쓰레드 추가(_T)" #: ../pan/gui/actions.cc:406 #, fuzzy msgid "Add _Similar Articles to Selection" msgstr "/편집(_E)/선택에 쓰레드 추가(_T)" #: ../pan/gui/actions.cc:411 #, fuzzy msgid "Select Article _Body" msgstr "/편집(_E)/기사 본문 선택(_B)" #: ../pan/gui/actions.cc:416 #, fuzzy msgid "Edit _Preferences" msgstr "/편집(_E)/기본설정(_P)..." #: ../pan/gui/actions.cc:421 #, fuzzy msgid "Edit Selected _Group's Preferences" msgstr "/편집(_E)/기본설정(_P)..." #: ../pan/gui/actions.cc:426 ../pan/gui/post-ui.cc:434 #, fuzzy msgid "Edit P_osting Profiles" msgstr "/도구(_T)/프로필 부치기(_P)..." #: ../pan/gui/actions.cc:431 #, fuzzy msgid "Edit _News Servers" msgstr "/도구(_T)/새 서버(_S)..." #: ../pan/gui/actions.cc:436 #, fuzzy msgid "Jump to _Group Tab" msgstr "/보기(_V)/그룹 탭 보기(_G)" #: ../pan/gui/actions.cc:441 #, fuzzy msgid "Jump to _Header Tab" msgstr "/보기(_V)/헤더 탭 보기(_H)" #: ../pan/gui/actions.cc:446 #, fuzzy msgid "Jump to _Body Tab" msgstr "/보기(_V)/본문 탭 보기(_B)" #: ../pan/gui/actions.cc:451 #, fuzzy msgid "_Rot13 Selected Text" msgstr "선택된 텍스트 Rot13" #: ../pan/gui/actions.cc:456 #, fuzzy msgid "Clear _Header Pane" msgstr "헤더 창(_H):" #: ../pan/gui/actions.cc:461 #, fuzzy msgid "Clear _Body Pane" msgstr "본문 창" #: ../pan/gui/actions.cc:466 #, fuzzy msgid "Cache Article" msgstr "기사를 취소합니다" #: ../pan/gui/actions.cc:471 #, fuzzy msgid "Read Article" msgstr "%d 기사를 샘플링합니다" #: ../pan/gui/actions.cc:476 #, fuzzy msgid "Show Article Information" msgstr "프로필 정보" #: ../pan/gui/actions.cc:481 #, fuzzy msgid "Read _More" msgstr "더 읽기" #: ../pan/gui/actions.cc:482 msgid "Read More" msgstr "더 읽기" #: ../pan/gui/actions.cc:486 msgid "Read _Back" msgstr "" #: ../pan/gui/actions.cc:487 #, fuzzy msgid "Read Back" msgstr "/_Go/Read Back" #: ../pan/gui/actions.cc:491 #, fuzzy msgid "Next _Unread Group" msgstr "/_Go/다음 안 읽은 그룹(_G)" #: ../pan/gui/actions.cc:496 #, fuzzy msgid "Next _Group" msgstr "/_Go/다음 그룹(_e)" #: ../pan/gui/actions.cc:501 #, fuzzy msgid "Next _Unread Article" msgstr "다음 안 읽은 기사 보기" #: ../pan/gui/actions.cc:502 #, fuzzy msgid "Next Unread Article" msgstr "다음 안 읽은 기사 보기" #: ../pan/gui/actions.cc:506 #, fuzzy msgid "Next _Article" msgstr "/_Go/다음 기사(_x)" #: ../pan/gui/actions.cc:507 #, fuzzy msgid "Next Article" msgstr "/_Go/다음 기사(_x)" #: ../pan/gui/actions.cc:511 #, fuzzy msgid "Next _Watched Article" msgstr "다음 안 읽은 기사 보기" #: ../pan/gui/actions.cc:516 #, fuzzy msgid "Next Unread _Thread" msgstr "/_Go/다음 안 읽은 쓰레드(_T)" #: ../pan/gui/actions.cc:517 #, fuzzy msgid "Next Unread Thread" msgstr "다음 안 읽은 쓰레드 보기" #: ../pan/gui/actions.cc:521 #, fuzzy msgid "Next Threa_d" msgstr "/_Go/다음 쓰레드(_d)" #: ../pan/gui/actions.cc:526 #, fuzzy msgid "Pre_vious Article" msgstr "/_Go/이전 기사(_v)" #: ../pan/gui/actions.cc:531 #, fuzzy msgid "Previous _Thread" msgstr "/_Go/이전 쓰레드(_u)" #: ../pan/gui/actions.cc:536 #, fuzzy msgid "_Parent Article" msgstr "/_Go/부모 기사(_P)" #: ../pan/gui/actions.cc:541 #, fuzzy msgid "Ignore _Author" msgstr "/쓰레드 무시(_I)" #: ../pan/gui/actions.cc:545 #, fuzzy msgid "_Watch Thread" msgstr "/쓰레드 지켜보기(_W)" #: ../pan/gui/actions.cc:550 #, fuzzy msgid "_Ignore Thread" msgstr "무시된 쓰레드(_I):" #: ../pan/gui/actions.cc:555 ../pan/gui/actions.cc:556 #, fuzzy msgid "_Toggle Flag On/Off for Thread" msgstr "/쓰레드 지켜보기(_W)" #: ../pan/gui/actions.cc:560 ../pan/gui/actions.cc:561 #, fuzzy msgid "_Turn Flag Off for Thread" msgstr "/쓰레드 지켜보기(_W)" #: ../pan/gui/actions.cc:565 ../pan/gui/actions.cc:566 #, fuzzy msgid "_Select All Flagged Threads" msgstr "다음 안 읽은 쓰레드 보기" #: ../pan/gui/actions.cc:570 ../pan/gui/actions.cc:571 #, fuzzy msgid "_Go to Next Flagged Thread" msgstr "다음 안 읽은 쓰레드 보기" #: ../pan/gui/actions.cc:575 ../pan/gui/actions.cc:576 #, fuzzy msgid "_Go to Last Flagged Thread" msgstr "다음 안 읽은 쓰레드 보기" #: ../pan/gui/actions.cc:580 ../pan/gui/actions.cc:581 #, fuzzy msgid "_Invert Selection" msgstr "고른 라인을 반전시킵니다" #: ../pan/gui/actions.cc:585 msgid "Edit Article's Watch/Ignore/Score..." msgstr "" #: ../pan/gui/actions.cc:590 #, fuzzy msgid "Add a _Scoring Rule..." msgstr "새 폴더를 만듭니다" #: ../pan/gui/actions.cc:595 #, fuzzy msgid "Cance_l Article..." msgstr "기사를 취소합니다" #: ../pan/gui/actions.cc:600 #, fuzzy msgid "_Supersede Article..." msgstr "/...로 기사 저장(_S)" #: ../pan/gui/actions.cc:605 #, fuzzy msgid "_Delete Article" msgstr "기사 삭제(_D)" #: ../pan/gui/actions.cc:610 #, fuzzy msgid "Clear Article Cache" msgstr "기사 캐쉬" #: ../pan/gui/actions.cc:615 #, fuzzy msgid "_Mark Article as Read" msgstr "읽은 기사입니다" #: ../pan/gui/actions.cc:620 #, fuzzy msgid "Mark Article as _Unread" msgstr "안읽은 기사입니다" #: ../pan/gui/actions.cc:626 #, fuzzy msgid "_Mark Thread as Read" msgstr "읽은 기사입니다" #: ../pan/gui/actions.cc:631 #, fuzzy msgid "Mark Thread as _Unread" msgstr "안읽은 기사입니다" #: ../pan/gui/actions.cc:636 #, fuzzy msgid "_Post to Newsgroup" msgstr "뉴스그룹에 부치기" #: ../pan/gui/actions.cc:637 msgid "Post to Newsgroup" msgstr "뉴스그룹에 부치기" #: ../pan/gui/actions.cc:641 #, fuzzy msgid "_Followup to Newsgroup" msgstr "/부치기(_P)/뉴스그룹에 따라올리기(_F)" #: ../pan/gui/actions.cc:642 #, fuzzy msgid "Followup to Newsgroup" msgstr "/부치기(_P)/뉴스그룹에 따라올리기(_F)" #: ../pan/gui/actions.cc:646 #, fuzzy msgid "_Reply to Author in Mail" msgstr "보낸이(_A):" #: ../pan/gui/actions.cc:651 #, fuzzy msgid "_Pan Home Page" msgstr "/도움말(_H)/판 홈페이지(_H)..." #: ../pan/gui/actions.cc:656 #, fuzzy msgid "Give _Feedback or Report a Bug..." msgstr "/도움말(_H)/버그 레포트(_B)..." #: ../pan/gui/actions.cc:661 msgid "_Tip Jar..." msgstr "" #: ../pan/gui/actions.cc:666 #, fuzzy msgid "_About" msgstr "이 프로그램은" #: ../pan/gui/actions.cc:671 msgid "Edit _SSL Certificates" msgstr "" #: ../pan/gui/actions.cc:685 #, fuzzy msgid "_Thread Headers" msgstr "더 많은 헤더" #: ../pan/gui/actions.cc:686 #, fuzzy msgid "_Wrap Article Body" msgstr "/보기(_V)/기사 본문을 줄바꿈(_W)" #: ../pan/gui/actions.cc:687 #, fuzzy msgid "Mute _Quoted Text" msgstr "/보기(_V)/Mute Quoted Text(_Q)" #: ../pan/gui/actions.cc:688 #, fuzzy msgid "Show All _Headers in Body Pane" msgstr "/보기(_V)/본문 창에 모든 헤더를 봄(_H)" #: ../pan/gui/actions.cc:689 #, fuzzy msgid "Show _Smilies as Graphics" msgstr "경보 표시:" #: ../pan/gui/actions.cc:690 msgid "Show *Bold*, __Underlined__, and /Italic/" msgstr "" #: ../pan/gui/actions.cc:691 msgid "Size Pictures to _Fit" msgstr "" #: ../pan/gui/actions.cc:692 #, fuzzy msgid "Use _Monospace Font" msgstr "/보기(_V)/본문 창에 Monospace 글꼴 사용(_M)" #: ../pan/gui/actions.cc:693 msgid "Set Focus to Images" msgstr "" #: ../pan/gui/actions.cc:694 msgid "Highlight _URLs" msgstr "" #: ../pan/gui/actions.cc:697 #, fuzzy msgid "_Work Online" msgstr "/파일(_F)/온라인 작업(_l)" #: ../pan/gui/actions.cc:698 #, fuzzy msgid "_Tabbed Layout" msgstr "/보기(_V)/탭 레이아웃(_T)" #: ../pan/gui/actions.cc:699 #, fuzzy msgid "Show Group _Pane" msgstr "/보기(_V)/그룹 창 보기(_P)" #: ../pan/gui/actions.cc:700 #, fuzzy msgid "Show Hea_der Pane" msgstr "/보기(_V)/헤더 창 보기(_d)" #: ../pan/gui/actions.cc:701 #, fuzzy msgid "Show Bod_y Pane" msgstr "/보기(_V)/본문 창 보기(_y)" #: ../pan/gui/actions.cc:702 msgid "Show _Toolbar" msgstr "" #: ../pan/gui/actions.cc:703 #, fuzzy msgid "Abbreviate Group Names" msgstr "/보기(_V)/그룹 창에 약어 이름(_N)" #: ../pan/gui/actions.cc:705 #, fuzzy msgid "Match Only _Unread Articles" msgstr "/거르개(_r)/맞는 안 읽은 기사(_U)" #: ../pan/gui/actions.cc:705 #, fuzzy msgid "Match Only Unread Articles" msgstr "/거르개(_r)/맞는 안 읽은 기사(_U)" #: ../pan/gui/actions.cc:706 #, fuzzy msgid "Match Only _Cached Articles" msgstr "캐쉬된 기사만 보기" #: ../pan/gui/actions.cc:706 #, fuzzy msgid "Match Only Cached Articles" msgstr "캐쉬된 기사만 보기" #: ../pan/gui/actions.cc:707 #, fuzzy msgid "Match Only _Complete Articles" msgstr "완전한 첨부만 보기" #: ../pan/gui/actions.cc:707 #, fuzzy msgid "Match Only Complete Articles" msgstr "완전한 첨부만 보기" #: ../pan/gui/actions.cc:708 #, fuzzy msgid "Match Only _My Articles" msgstr "새 기사만 보기" #: ../pan/gui/actions.cc:708 #, fuzzy msgid "Match Only My Articles" msgstr "새 기사만 보기" #: ../pan/gui/actions.cc:709 #, fuzzy msgid "Match Only _Watched Articles" msgstr "캐쉬된 기사만 보기" #: ../pan/gui/actions.cc:709 #, fuzzy msgid "Match Only Watched Articles" msgstr "캐쉬된 기사만 보기" #: ../pan/gui/actions.cc:711 msgid "Match Scores of 9999 (_Watched)" msgstr "" #: ../pan/gui/actions.cc:712 msgid "Match Scores of 5000...9998 (_High)" msgstr "" #: ../pan/gui/actions.cc:713 msgid "Match Scores of 1...4999 (Me_dium)" msgstr "" #: ../pan/gui/actions.cc:714 msgid "Match Scores of 0 (_Normal)" msgstr "" #: ../pan/gui/actions.cc:715 msgid "Match Scores of -9998...-1 (_Low)" msgstr "" #: ../pan/gui/actions.cc:716 msgid "Match Scores of -9999 (_Ignored)" msgstr "" #: ../pan/gui/actions.cc:718 msgid "Enable/Disable All _Rules" msgstr "" #: ../pan/gui/actions.cc:744 #, fuzzy msgid "Show Matching _Articles" msgstr "/거르개(_r)/맞는 기사 보기" #: ../pan/gui/actions.cc:745 #, fuzzy msgid "Show Matching Articles' _Threads" msgstr "/거르개(_r)/맞는 기사 보기" #: ../pan/gui/actions.cc:746 #, fuzzy msgid "Show Matching Articles' _Subthreads" msgstr "/거르개(_r)/맞는 기사와 답장 보기" #: ../pan/gui/body-pane.cc:1011 #, fuzzy, c-format msgid "Unnamed File" msgstr "서명 파일(_S):" #: ../pan/gui/body-pane.cc:1092 ../pan/gui/gui.cc:1864 #: ../pan/gui/header-pane.cc:1188 ../pan/gui/header-pane.cc:1617 #: ../pan/gui/post-ui.cc:2496 ../pan/gui/prefs-ui.cc:833 #: ../pan/gui/score-add-ui.cc:139 msgid "Subject" msgstr "제목" #: ../pan/gui/body-pane.cc:1094 ../pan/gui/gui.cc:1864 msgid "From" msgstr "" #: ../pan/gui/body-pane.cc:1096 ../pan/gui/gui.cc:1865 #: ../pan/gui/header-pane.cc:1695 ../pan/gui/log-ui.cc:305 #: ../pan/gui/prefs-ui.cc:829 msgid "Date" msgstr "날짜" #: ../pan/gui/body-pane.cc:1103 msgid "Newsgroups" msgstr "뉴스그룹 " #: ../pan/gui/body-pane.cc:1108 msgid "Followup-To" msgstr "" #: ../pan/gui/body-pane.cc:1118 #, fuzzy msgid "Reply-To" msgstr "답장 헤더(_R):" #: ../pan/gui/body-pane.cc:1160 msgid " from " msgstr "" #: ../pan/gui/body-pane.cc:1162 msgid " at " msgstr "" #: ../pan/gui/body-pane.cc:1264 #, c-format msgid "" "This is a PGP-Signed message.\n" "\n" "Signer : %s ('%s')\n" "Valid until : %s\n" "Created on : %s" msgstr "" #: ../pan/gui/body-pane.cc:1269 msgid "always" msgstr "" #: ../pan/gui/body-pane.cc:1485 msgid "Copy _URL" msgstr "" #: ../pan/gui/body-pane.cc:1680 #, fuzzy msgid "Save attachment as ...." msgstr "기사 첨부를 저장합니다" #: ../pan/gui/body-pane.cc:1683 #, fuzzy msgid "Save all attachments" msgstr "기사 첨부를 저장합니다" #. add a toolbar for attachments #: ../pan/gui/body-pane.cc:1753 #, fuzzy msgid "Attachments" msgstr "기사 첨부를 저장합니다" #. update the titlebar #: ../pan/gui/dl-headers-ui.cc:106 ../pan/gui/gui.cc:973 #: ../pan/gui/gui.cc:1592 ../pan/gui/gui.cc:1893 #: ../pan/gui/score-add-ui.cc:602 #, fuzzy msgid "Pan" msgstr "판 " #: ../pan/gui/dl-headers-ui.cc:112 #, fuzzy, c-format msgid "%d Group" msgid_plural "%d Groups" msgstr[0] "그룹" msgstr[1] "그룹" #: ../pan/gui/dl-headers-ui.cc:135 #, fuzzy msgid "Get the last N _days' headers: " msgstr "새 헤더 내려받기(_r): " #: ../pan/gui/dl-headers-ui.cc:143 #, fuzzy msgid "Get _new headers" msgstr "/새 헤더 받기(_H)" #: ../pan/gui/dl-headers-ui.cc:147 #, fuzzy msgid "Get _all headers" msgstr "모든 헤더 내려받기(_a)" #: ../pan/gui/dl-headers-ui.cc:151 #, fuzzy msgid "Get the _latest N headers: " msgstr "새 헤더 내려받기(_r): " #: ../pan/gui/e-action-combo-box.c:388 ../pan/gui/prefs-ui.cc:826 #, fuzzy msgid "Action" msgstr "동작" #: ../pan/gui/e-action-combo-box.c:389 msgid "A GtkRadioAction" msgstr "" #: ../pan/gui/e-charset.c:51 ../pan/gui/task-pane.cc:518 msgid "Unknown" msgstr "모름" #: ../pan/gui/e-charset.c:52 msgid "Arabic" msgstr "" #: ../pan/gui/e-charset.c:53 msgid "Baltic" msgstr "발트" #: ../pan/gui/e-charset.c:54 msgid "Central European" msgstr "중부 유럽" #: ../pan/gui/e-charset.c:55 #, fuzzy msgid "Chinese" msgstr "줄 수" #: ../pan/gui/e-charset.c:56 msgid "Cyrillic" msgstr "키릴" #: ../pan/gui/e-charset.c:57 msgid "Greek" msgstr "그리스" #: ../pan/gui/e-charset.c:58 msgid "Hebrew" msgstr "" #: ../pan/gui/e-charset.c:59 msgid "Japanese" msgstr "일본" #: ../pan/gui/e-charset.c:60 msgid "Korean" msgstr "한국" #: ../pan/gui/e-charset.c:61 msgid "Thai" msgstr "" #: ../pan/gui/e-charset.c:62 msgid "Turkish" msgstr "터키" #: ../pan/gui/e-charset.c:63 #, fuzzy msgid "Unicode" msgstr "Unicode, UTF-8" #: ../pan/gui/e-charset.c:64 #, fuzzy msgid "Western European" msgstr "중부 유럽" #: ../pan/gui/e-charset.c:65 #, fuzzy msgid "Western European, New" msgstr "Western, New" #: ../pan/gui/e-charset.c:84 ../pan/gui/e-charset.c:85 #: ../pan/gui/e-charset.c:86 #, fuzzy msgid "Traditional" msgstr "중국 Traditional" #: ../pan/gui/e-charset.c:87 ../pan/gui/e-charset.c:88 #: ../pan/gui/e-charset.c:89 ../pan/gui/e-charset.c:90 #, fuzzy msgid "Simplified" msgstr "중국 Simplified" #: ../pan/gui/e-charset.c:93 #, fuzzy msgid "Ukrainian" msgstr "키릴, 우크라이나" #: ../pan/gui/e-charset.c:96 msgid "Visual" msgstr "" #: ../pan/gui/e-charset-combo-box.c:93 ../pan/gui/gui.cc:2058 #: ../pan/gui/post-ui.cc:519 ../pan/gui/prefs-ui.cc:737 msgid "Character Encoding" msgstr "" #: ../pan/gui/e-charset-combo-box.c:117 msgid "Enter the character set to use" msgstr "" #: ../pan/gui/e-charset-combo-box.c:336 msgid "Other..." msgstr "" #: ../pan/gui/e-cte-dialog.c:78 #, fuzzy msgid "Default encoding" msgstr "\"%s\"을(를) 해독합니다" #: ../pan/gui/e-cte-dialog.c:80 #, fuzzy msgid "7Bit Encoding" msgstr "본문 창" #: ../pan/gui/e-cte-dialog.c:82 #, fuzzy msgid "8Bit Encoding" msgstr "본문 창" #: ../pan/gui/e-cte-dialog.c:84 #, fuzzy msgid "BASE64 Encoding" msgstr "본문 창" #: ../pan/gui/e-cte-dialog.c:86 #, fuzzy msgid "Quoted-Printable Encoding" msgstr "본문 창" #: ../pan/gui/group-pane.cc:500 msgid "Group" msgstr "그룹" #: ../pan/gui/group-pane.cc:501 #, fuzzy msgid "Group (regex)" msgstr "그룹목록 창(_G):" #: ../pan/gui/group-pane.cc:913 #, fuzzy msgid "Subscribed Groups" msgstr "받아보는 그룹" #: ../pan/gui/group-pane.cc:914 #, fuzzy msgid "Other Groups" msgstr "새 그룹" #: ../pan/gui/group-pane.cc:954 ../pan/gui/score-view-ui.cc:157 #, fuzzy msgid "Name" msgstr "이름(_N):" #: ../pan/gui/group-prefs-dialog.cc:156 #, fuzzy msgid "No Profiles defined in Edit|Posting Profiles." msgstr "/도구(_T)/프로필 부치기(_P)..." #: ../pan/gui/group-prefs-dialog.cc:231 #, fuzzy msgid "Pan: Group Preferences" msgstr "판 기본설정" #: ../pan/gui/group-prefs-dialog.cc:247 #, fuzzy, c-format msgid "Properties for Groups" msgstr "\"%s\" 등록 정보" #: ../pan/gui/group-prefs-dialog.cc:249 #, fuzzy, c-format msgid "Properties for %s" msgstr "\"%s\" 등록 정보" #: ../pan/gui/group-prefs-dialog.cc:257 msgid "Character _encoding:" msgstr "" #: ../pan/gui/group-prefs-dialog.cc:259 #, fuzzy msgid "Directory for Saving Attachments" msgstr "첨부 파일을 저장할 디렉토리(_v):" #: ../pan/gui/group-prefs-dialog.cc:269 #, fuzzy msgid "Directory for _saving attachments:" msgstr "첨부 파일을 저장할 디렉토리(_v):" #: ../pan/gui/group-prefs-dialog.cc:271 #, fuzzy msgid "Posting _profile:" msgstr "판: 프로필" #: ../pan/gui/group-prefs-dialog.cc:277 msgid "Spellchecker _language:" msgstr "" #: ../pan/gui/gui.cc:273 msgid "Open the Task Manager" msgstr "작업 관리자를 엽니다" #: ../pan/gui/gui.cc:301 #, fuzzy msgid "Open the Event Log" msgstr "상태 로그를 보여줍니다" #: ../pan/gui/gui.cc:561 msgid "Save NZB's Files" msgstr "" #: ../pan/gui/gui.cc:588 msgid "Untitled.nzb" msgstr "" #: ../pan/gui/gui.cc:590 #, fuzzy msgid "Save NZB File as..." msgstr "...로 기사 저장" #: ../pan/gui/gui.cc:757 msgid "Import NZB Files" msgstr "" #: ../pan/gui/gui.cc:765 ../pan/gui/post-ui.cc:3197 #, fuzzy msgid "NZB Files" msgstr "파일" #: ../pan/gui/gui.cc:770 #, fuzzy msgid "All Files" msgstr "파일" #: ../pan/gui/gui.cc:1258 #, fuzzy msgid "Unable to supersede article." msgstr "/...로 기사 저장(_S)" #: ../pan/gui/gui.cc:1259 ../pan/gui/gui.cc:1333 msgid "The article doesn't match any of your posting profiles." msgstr "" #: ../pan/gui/gui.cc:1306 msgid "Revise and send this article to replace the old one." msgstr "" #: ../pan/gui/gui.cc:1307 ../pan/gui/gui.cc:1370 msgid "Be patient! It will take time for your changes to take effect." msgstr "" #: ../pan/gui/gui.cc:1332 #, fuzzy msgid "Unable to cancel article." msgstr "쓰레드를 만들 수 없습니다: %s" #: ../pan/gui/gui.cc:1369 msgid "Send this article to ask your server to cancel your other one." msgstr "" #: ../pan/gui/gui.cc:1387 msgid "You marked some articles for deletion" msgstr "" #: ../pan/gui/gui.cc:1388 #, fuzzy msgid "Are you sure you want to delete them?" msgstr "정말로 이 %d개 그룹/폴더와 그 안의 기사들을 삭제하시겠습니까?" #: ../pan/gui/gui.cc:1413 #, fuzzy msgid "Always trust" msgstr "편집기" #: ../pan/gui/gui.cc:1416 msgid "Do you want to accept it permanently (deletable afterwards) ?" msgstr "" #: ../pan/gui/gui.cc:1595 #, fuzzy msgid "Copyright \\u00A9 2002-2012 Charles Kerr and others" msgstr "Copyright (C) 2002 Charles Kerr" #: ../pan/gui/gui.cc:1600 msgid "translator-credits" msgstr "" #: ../pan/gui/gui.cc:1709 #, fuzzy msgid "_1. Group Pane" msgstr "그룹목록 창(_G):" #: ../pan/gui/gui.cc:1710 #, fuzzy msgid "_2. Header Pane" msgstr "헤더 창(_H):" #: ../pan/gui/gui.cc:1711 #, fuzzy msgid "_3. Body Pane" msgstr "본문 창" #: ../pan/gui/gui.cc:1800 ../pan/gui/gui.cc:1815 msgid " Bytes" msgstr "" #: ../pan/gui/gui.cc:1803 msgid " KB" msgstr "" #: ../pan/gui/gui.cc:1806 msgid " MB" msgstr "" #: ../pan/gui/gui.cc:1809 msgid " GB" msgstr "" #: ../pan/gui/gui.cc:1812 msgid " TB" msgstr "" #: ../pan/gui/gui.cc:1844 #, fuzzy, c-format msgid "This article is complete with %d part." msgid_plural "This article has all %d parts." msgstr[0] "기사가 첨부를 포함하고 있지 않습니다" msgstr[1] "기사가 첨부를 포함하고 있지 않습니다" #: ../pan/gui/gui.cc:1846 #, fuzzy, c-format msgid "This article is missing %d part." msgid_plural "This article is missing %d of its %d parts:" msgstr[0] "기사가 첨부를 포함하고 있지 않습니다" msgstr[1] "기사가 첨부를 포함하고 있지 않습니다" #: ../pan/gui/gui.cc:1865 ../pan/gui/header-pane.cc:1190 #, fuzzy msgid "Message-ID" msgstr "메시지-번호(_M):" #: ../pan/gui/gui.cc:1866 ../pan/gui/header-pane.cc:1665 #: ../pan/gui/prefs-ui.cc:830 msgid "Lines" msgstr "줄 수" #: ../pan/gui/gui.cc:1866 msgid "Size" msgstr "" #: ../pan/gui/gui.cc:1867 ../pan/gui/header-pane.cc:1680 #: ../pan/gui/prefs-ui.cc:828 msgid "Bytes" msgstr "" #: ../pan/gui/gui.cc:1917 msgid "" "Error loading iconv library. Some Charsets in the GUI will not be able to be " "encoded." msgstr "" #: ../pan/gui/gui.cc:2059 #, fuzzy msgid "Body Pane Encoding" msgstr "본문 창" #: ../pan/gui/gui.cc:2090 ../pan/gui/task-pane.cc:569 #, c-format msgid "Offline" msgstr "연결안됨" #: ../pan/gui/gui.cc:2094 #, fuzzy, c-format msgid "Closing %d connection" msgid_plural "Closing %d connections" msgstr[0] "%d 연결을 끊습니다" msgstr[1] "%d 연결을 끊습니다" #: ../pan/gui/gui.cc:2096 ../pan/gui/gui.cc:2126 #, c-format msgid "No Connections" msgstr "연결없음" #: ../pan/gui/gui.cc:2100 #, c-format msgid "Connecting" msgstr "연결중" #: ../pan/gui/gui.cc:2113 #, c-format msgid "%s: %d idle, %d active @ %.1f KiBps" msgstr "" #: ../pan/gui/gui.cc:2169 #, c-format msgid "No Tasks" msgstr "작업없음" #: ../pan/gui/gui.cc:2171 ../pan/gui/prefs-ui.cc:1047 msgid "Tasks" msgstr "작업" #: ../pan/gui/gui.cc:2182 ../pan/gui/task-pane.cc:435 #, c-format msgid "%lu tasks, %s, %.1f KiBps, ETA %d:%02d:%02d" msgstr "" #: ../pan/gui/gui.cc:2234 msgid "" "Pan is now offline. Please see \"File|Event Log\" and correct the problem, " "then use \"File|Work Online\" to continue." msgstr "" #: ../pan/gui/header-pane.cc:1186 msgid "Subject or Author" msgstr "" #: ../pan/gui/header-pane.cc:1187 msgid "Sub or Auth (regex)" msgstr "" #: ../pan/gui/header-pane.cc:1189 ../pan/gui/header-pane.cc:1649 #: ../pan/gui/prefs-ui.cc:827 ../pan/gui/score-add-ui.cc:140 msgid "Author" msgstr "보낸이" #: ../pan/gui/header-pane.cc:1634 ../pan/gui/prefs-ui.cc:831 msgid "Score" msgstr "" #: ../pan/gui/log-ui.cc:103 msgid "Save Event List" msgstr "" #: ../pan/gui/log-ui.cc:256 #, fuzzy msgid "Pan: Events" msgstr "판: 서버" #: ../pan/gui/log-ui.cc:315 msgid "Message" msgstr "메시지" #: ../pan/gui/pan.cc:330 msgid "Maximize" msgstr "" #: ../pan/gui/pan.cc:383 msgid "An Error has occurred!" msgstr "" #: ../pan/gui/pan.cc:397 #, fuzzy msgid "New Articles!" msgstr "/_Go/다음 기사(_x)" #: ../pan/gui/pan.cc:398 msgid "" "There are new\n" "articles available." msgstr "" #: ../pan/gui/pan.cc:465 msgid "Toggle on/offline" msgstr "" #: ../pan/gui/pan.cc:513 msgid "" "Thank you for trying Pan!\n" " \n" "To start newsreading, first Add a Server." msgstr "" #: ../pan/gui/pan.cc:595 msgid "" "General Options\n" " -h, --help Show this usage page.\n" " --verbose Be verbose (in non-GUI mode).\n" "\n" "URL Options\n" " --no-gui On news:message-id, dump the article to stdout.\n" "\n" "NZB Batch Options\n" " --nzb file1 file2 ... Process nzb files without launching all of Pan.\n" " -o path, --output=path Path to save attachments listed in the nzb " "files.\n" " --no-gui Only show console output, not the download " "queue.\n" msgstr "" #: ../pan/gui/pan.cc:867 msgid "Error: --no-gui used without nzb files or news:message-id." msgstr "" #: ../pan/gui/pan.cc:871 #, fuzzy, c-format msgid "Pan %s started" msgstr "판 %s 시작" #: ../pan/gui/pan.cc:890 msgid "Please configure Pan's news servers before using it as an nzb client." msgstr "" #: ../pan/gui/pan.cc:1009 msgid "Pan notification" msgstr "" #: ../pan/gui/post-ui.cc:186 #, c-format msgid "Upload Queue : %ld Tasks, %ld KB (~ %.2f MB) total ." msgstr "" #: ../pan/gui/post-ui.cc:286 #, fuzzy, c-format msgid "Error setting custom spellchecker: %s" msgstr "소켓에 쓰다가 오류가 났습니다: %s" #: ../pan/gui/post-ui.cc:291 ../pan/gui/post-ui.cc:300 #, fuzzy, c-format msgid "Error setting spellchecker: %s" msgstr "소켓에 쓰다가 오류가 났습니다: %s" #: ../pan/gui/post-ui.cc:419 #, fuzzy msgid "_Profile" msgstr "프로필" #: ../pan/gui/post-ui.cc:420 #, fuzzy msgid "Set Editor" msgstr "편집기" #: ../pan/gui/post-ui.cc:422 #, fuzzy msgid "_Send Article" msgstr "/_Go/부모 기사(_P)" #: ../pan/gui/post-ui.cc:422 #, fuzzy msgid "Send Article Now" msgstr "지금 보내기" #: ../pan/gui/post-ui.cc:423 #, fuzzy msgid "_Send and Save Articles to NZB" msgstr "...로 기사 저장" #: ../pan/gui/post-ui.cc:423 #, fuzzy msgid "Send and Save Articles to NZB" msgstr "...로 기사 저장" #: ../pan/gui/post-ui.cc:424 msgid "Set Character _Encoding..." msgstr "" #: ../pan/gui/post-ui.cc:425 msgid "Set Content _Transfer Encoding..." msgstr "" #: ../pan/gui/post-ui.cc:426 #, fuzzy msgid "Sa_ve Draft" msgstr "기사를 저장합니다" #: ../pan/gui/post-ui.cc:426 msgid "Save as a Draft for Future Posting" msgstr "" #: ../pan/gui/post-ui.cc:427 #, fuzzy msgid "_Open Draft..." msgstr "/기사 읽기(_R)" #: ../pan/gui/post-ui.cc:427 #, fuzzy msgid "Open an Article Draft" msgstr "/기사 읽기(_R)" #: ../pan/gui/post-ui.cc:432 #, fuzzy msgid "_Rot13" msgstr "Rot13" #: ../pan/gui/post-ui.cc:432 msgid "Rot13 Selected Text" msgstr "선택된 텍스트 Rot13" #: ../pan/gui/post-ui.cc:433 #, fuzzy msgid "Run _Editor" msgstr "편집기" #: ../pan/gui/post-ui.cc:433 #, fuzzy msgid "Run Editor" msgstr "편집기" #: ../pan/gui/post-ui.cc:435 msgid "Add _Files to Queue" msgstr "" #: ../pan/gui/post-ui.cc:435 msgid "Add Files to Queue" msgstr "" #: ../pan/gui/post-ui.cc:450 ../pan/gui/post-ui.cc:451 #, fuzzy msgid "Remove from Queue" msgstr "새 서버" #: ../pan/gui/post-ui.cc:455 ../pan/gui/post-ui.cc:456 #, fuzzy msgid "Clear List" msgstr "거르개 선택:" #: ../pan/gui/post-ui.cc:460 ../pan/gui/post-ui.cc:461 #, fuzzy msgid "Select Needed Parts" msgstr "글꼴 선택" #: ../pan/gui/post-ui.cc:465 ../pan/gui/post-ui.cc:466 #: ../pan/gui/task-pane.cc:636 ../pan/gui/task-pane.cc:637 msgid "Move Up" msgstr "" #: ../pan/gui/post-ui.cc:470 ../pan/gui/post-ui.cc:471 #: ../pan/gui/task-pane.cc:641 ../pan/gui/task-pane.cc:642 msgid "Move Down" msgstr "" #: ../pan/gui/post-ui.cc:475 ../pan/gui/post-ui.cc:476 msgid "Move to Top" msgstr "" #: ../pan/gui/post-ui.cc:480 ../pan/gui/post-ui.cc:481 #, fuzzy msgid "Move to Bottom" msgstr "고른 작업 맨아래로 옮김" #: ../pan/gui/post-ui.cc:488 #, fuzzy msgid "_Wrap Text" msgstr "텍스트 줄바꿈" #: ../pan/gui/post-ui.cc:488 #, fuzzy msgid "Wrap Text" msgstr "텍스트 줄바꿈" #: ../pan/gui/post-ui.cc:489 #, fuzzy msgid "Always Run Editor" msgstr "편집기" #: ../pan/gui/post-ui.cc:490 msgid "Remember Character Encoding for this Group" msgstr "" #: ../pan/gui/post-ui.cc:491 #, fuzzy msgid "Thread Attached Replies" msgstr "쓰레드를 지켜보거나 무시합니다" #: ../pan/gui/post-ui.cc:492 msgid "PGP-Encrypt the Message" msgstr "" #: ../pan/gui/post-ui.cc:493 msgid "PGP-Sign the Message" msgstr "" #: ../pan/gui/post-ui.cc:494 msgid "Check _Spelling" msgstr "" #: ../pan/gui/post-ui.cc:520 #, fuzzy msgid "New Article's Encoding:" msgstr "판: 다른 이름으로 기사 저장" #: ../pan/gui/post-ui.cc:530 #, fuzzy msgid "Content Transfer Encoding" msgstr "본문 창" #: ../pan/gui/post-ui.cc:531 #, fuzzy msgid "New Article's Content Transfer Encoding:" msgstr "판: 다른 이름으로 기사 저장" #: ../pan/gui/post-ui.cc:711 msgid "Your changes will be lost!" msgstr "" #: ../pan/gui/post-ui.cc:712 msgid "Close this window and lose your changes?" msgstr "" #: ../pan/gui/post-ui.cc:757 ../pan/gui/post-ui.cc:796 msgid "There were problems with this post." msgstr "" #: ../pan/gui/post-ui.cc:759 ../pan/gui/post-ui.cc:798 #: ../pan/gui/post-ui.cc:861 #, fuzzy msgid "Go Back" msgstr "/_Go/Read Back" #: ../pan/gui/post-ui.cc:761 msgid "Post Anyway" msgstr "" #. Prompt the user #: ../pan/gui/post-ui.cc:790 #, fuzzy, c-format msgid "" "Message uses characters not specified in charset '%s' - possibly use '%s' " msgstr "" "메시지가 문자셋 '%s'에 없는 문자를 사용합니다 - 대신 '%s'를 사용할까요?" #: ../pan/gui/post-ui.cc:813 #, fuzzy msgid "Go _Online" msgstr "온라인" #: ../pan/gui/post-ui.cc:860 msgid "The file queue is empty, so no files can be saved." msgstr "" #: ../pan/gui/post-ui.cc:1019 msgid "" "No posting server is set for this posting profile.\n" "Please edit the profile via Edit|Manage Posting Profiles." msgstr "" #: ../pan/gui/post-ui.cc:1054 #, fuzzy msgid "Pan is Offline." msgstr "판은 연결안된 상태입니다" #: ../pan/gui/post-ui.cc:1055 msgid "Go online to post the article?" msgstr "" #: ../pan/gui/post-ui.cc:1102 #, c-format msgid "" "Error signing/encrypting your message. Perhaps you misspelled your email-" "address (%s) ?" msgstr "" #: ../pan/gui/post-ui.cc:1267 #, fuzzy msgid "Error opening temporary file" msgstr "임시파일을 열다가 에러가 발생했습니다: \"%s\"" #: ../pan/gui/post-ui.cc:1279 #, c-format msgid "Error writing article to temporary file: %s" msgstr "임시파일에 기사 저장 에러: %s" #: ../pan/gui/post-ui.cc:1298 #, fuzzy, c-format msgid "Error parsing \"external editor\" command line: %s (Command was: %s)" msgstr "\"외부 편집기\" 명령행 해석 에러: %s" #: ../pan/gui/post-ui.cc:1339 #, c-format msgid "Error starting external editor: %s" msgstr "외부 편집기 시작 에러: %s" #: ../pan/gui/post-ui.cc:1395 #, fuzzy msgid "Open Draft Article" msgstr "/기사 읽기(_R)" #: ../pan/gui/post-ui.cc:1606 #, fuzzy msgid "Save Draft Article" msgstr "기사를 저장합니다" #: ../pan/gui/post-ui.cc:1803 #, fuzzy, c-format msgid "Couldn't parse signature command \"%s\": %s" msgstr "\"%s\" 서명 프로그램을 실행할 수 없습니다: %s" #: ../pan/gui/post-ui.cc:1839 #, fuzzy msgid "Couldn't convert signature to UTF-8." msgstr "서명파일 '%s'를 UTF-8로 바꿀 수 없습니다. 서명은 '%s'에 있어야 합니다" #: ../pan/gui/post-ui.cc:2334 msgid "F_rom" msgstr "" #: ../pan/gui/post-ui.cc:2352 #, fuzzy msgid "_Subject" msgstr "제목(_S):" #: ../pan/gui/post-ui.cc:2365 #, fuzzy msgid "_Newsgroups" msgstr "/뉴스그룹(_N)" #: ../pan/gui/post-ui.cc:2379 #, fuzzy msgid "Mail _To" msgstr "편지(_M)" #: ../pan/gui/post-ui.cc:2481 msgid "Delete from Queue" msgstr "" #: ../pan/gui/post-ui.cc:2494 msgid "No." msgstr "" #: ../pan/gui/post-ui.cc:2498 ../pan/gui/post-ui.cc:2592 #: ../pan/gui/post-ui.cc:2633 msgid "Filename" msgstr "파일명" #: ../pan/gui/post-ui.cc:2500 msgid "Size (kB)" msgstr "" #: ../pan/gui/post-ui.cc:2600 msgid "The current filename" msgstr "" #: ../pan/gui/post-ui.cc:2604 #, fuzzy msgid "Subject Line" msgstr "제목" #: ../pan/gui/post-ui.cc:2612 msgid "The current Subject Line" msgstr "" #: ../pan/gui/post-ui.cc:2626 msgid "No. " msgstr "" #: ../pan/gui/post-ui.cc:2630 msgid "Enable/Disable" msgstr "" #: ../pan/gui/post-ui.cc:2664 msgid "Follo_wup-To" msgstr "" #. i18n: "poster" is a key used by many newsreaders. probably safest to keep this key in english. #: ../pan/gui/post-ui.cc:2673 #, fuzzy msgid "" "The newsgroups where replies to your message should go. This is only needed " "if it differs from the \"Newsgroups\" header.\n" "\n" "To direct all replies to your email address, use \"Followup-To: poster\"" msgstr "" "부친 메시지에 보낸 답장이 갈 뉴스그룹. 이건 \"부칠 그룹\" 헤더와 다를 때만 " "필요합니다. \n" "모든 답장을 메일 주소로 돌리고 싶으면, \"따라올리기: poster\"를 쓰세요." #: ../pan/gui/post-ui.cc:2679 #, fuzzy msgid "_Reply-To" msgstr "답장 헤더(_R):" #: ../pan/gui/post-ui.cc:2687 msgid "" "The email account where mail replies to your posted message should go. This " "is only needed if it differs from the \"From\" header." msgstr "" "부친 메시지에 보낸 답장이 갈 메일 계정. 이건 \"보낸이\" 헤더와 다를 때만 필요" "합니다." #: ../pan/gui/post-ui.cc:2693 #, fuzzy msgid "_Custom Headers" msgstr "사용자 헤더" #: ../pan/gui/post-ui.cc:2717 #, fuzzy msgid "Add \"_User-Agent\" header" msgstr "\"User-Agent\" 헤더를 추가하지 않습니다" #: ../pan/gui/post-ui.cc:2724 #, fuzzy msgid "Add \"Message-_Id\" header" msgstr "메시지-번호" #: ../pan/gui/post-ui.cc:2855 #, fuzzy msgid "Select Parts" msgstr "글꼴 선택" #: ../pan/gui/post-ui.cc:2866 msgid "_Parts" msgstr "" #: ../pan/gui/post-ui.cc:3022 #, fuzzy msgid "Post Article" msgstr "기사를 정렬합니다" #: ../pan/gui/post-ui.cc:3043 #, fuzzy msgid "_Message" msgstr "메시지" #: ../pan/gui/post-ui.cc:3044 #, fuzzy msgid "More _Headers" msgstr "더 많은 헤더" #: ../pan/gui/post-ui.cc:3045 #, fuzzy msgid "File _Queue" msgstr "/파일(_F)/종료(_Q)" #: ../pan/gui/post-ui.cc:3077 ../pan/gui/profiles-dialog.cc:478 #, no-c-format msgid "On %d, %n wrote:" msgstr "%d에, %n 썼습니다:" #: ../pan/gui/post-ui.cc:3106 msgid "Add files to queue" msgstr "" #: ../pan/gui/post-ui.cc:3184 msgid "Save Upload Queue as NZB File" msgstr "" #: ../pan/gui/prefs.cc:343 #, fuzzy, c-format msgid "Couldn't parse %s color \"%s\"" msgstr "\"%s\" 서명 명령을 해석할 수 없습니다" #: ../pan/gui/prefs-ui.cc:120 msgid "Grab Key" msgstr "" #: ../pan/gui/prefs-ui.cc:126 #, c-format msgid "" "Press the combination of the keys\n" "you want to use for \"%s\"." msgstr "" #: ../pan/gui/prefs-ui.cc:166 #, fuzzy msgid "Edit Hotkey" msgstr "거르개 편집" #: ../pan/gui/prefs-ui.cc:228 msgid "Error: Shortkey is invalid!" msgstr "" #: ../pan/gui/prefs-ui.cc:244 #, fuzzy msgid "Error: Shortkey already exists!" msgstr "폴더 \"%s\"이(가) 이미 존재합니다." #: ../pan/gui/prefs-ui.cc:535 #, fuzzy msgid "Show only icons" msgstr "프로필 정보" #: ../pan/gui/prefs-ui.cc:536 #, fuzzy msgid "Show only text" msgstr "/보기(_V)/본문 창 보기(_y)" #: ../pan/gui/prefs-ui.cc:537 #, fuzzy msgid "Show icons and text" msgstr "디렉토리에 첨부 저장(_d):" #: ../pan/gui/prefs-ui.cc:576 #, fuzzy msgid "Use GNOME Preferences" msgstr "판 기본설정" #: ../pan/gui/prefs-ui.cc:577 #, fuzzy msgid "Use KDE Preferences" msgstr "판 기본설정" #: ../pan/gui/prefs-ui.cc:578 #, fuzzy msgid "Use OS X Preferences" msgstr "판 기본설정" #: ../pan/gui/prefs-ui.cc:579 #, fuzzy msgid "Use Windows Preferences" msgstr "판 기본설정" #: ../pan/gui/prefs-ui.cc:580 #, fuzzy msgid "Custom Command:" msgstr "인쇄 명령:" #: ../pan/gui/prefs-ui.cc:632 msgid "Disabled" msgstr "" #: ../pan/gui/prefs-ui.cc:633 msgid "Only new (Score == 0)" msgstr "" #: ../pan/gui/prefs-ui.cc:634 msgid "9999 or more" msgstr "" #: ../pan/gui/prefs-ui.cc:635 msgid "5000 to 9998" msgstr "" #: ../pan/gui/prefs-ui.cc:636 msgid "1 to 4999" msgstr "" #: ../pan/gui/prefs-ui.cc:637 msgid "-9998 to -1" msgstr "" #: ../pan/gui/prefs-ui.cc:638 msgid "-9999 or less" msgstr "" #: ../pan/gui/prefs-ui.cc:702 #, c-format msgid "Select default global charset. Current setting : %s ." msgstr "" #: ../pan/gui/prefs-ui.cc:738 msgid "Global Charset Settings" msgstr "" #: ../pan/gui/prefs-ui.cc:832 ../pan/gui/task-pane.cc:770 #, fuzzy msgid "State" msgstr "상태" #: ../pan/gui/prefs-ui.cc:866 msgid "Enabled" msgstr "" #: ../pan/gui/prefs-ui.cc:870 #, fuzzy msgid "Column Name" msgstr "그룹목록 창(_G):" #: ../pan/gui/prefs-ui.cc:908 #, fuzzy msgid "Pan: Preferences" msgstr "판 기본설정" #: ../pan/gui/prefs-ui.cc:923 msgid "Mouse" msgstr "" #: ../pan/gui/prefs-ui.cc:925 msgid "Single-click activates, rather than selects, _groups" msgstr "" #: ../pan/gui/prefs-ui.cc:927 msgid "Single-click activates, rather than selects, _articles" msgstr "" #: ../pan/gui/prefs-ui.cc:930 #, fuzzy msgid "Groups" msgstr "그룹" #: ../pan/gui/prefs-ui.cc:932 #, fuzzy msgid "Get new headers in subscribed groups on _startup" msgstr "받아보는 그룹 모두에서 새 헤더 받기" #: ../pan/gui/prefs-ui.cc:934 #, fuzzy msgid "Get new headers when _entering group" msgstr "그룹을 읽어들일을 때 새 헤더 내려받기(_g)" #: ../pan/gui/prefs-ui.cc:936 #, fuzzy msgid "Mark entire group _read when leaving group" msgstr "그룹을 읽어들일을 때 새 헤더 내려받기(_g)" #: ../pan/gui/prefs-ui.cc:938 #, fuzzy msgid "Mark entire group read before getting _new headers" msgstr "그룹을 읽어들일을 때 새 헤더 내려받기(_g)" #: ../pan/gui/prefs-ui.cc:940 #, fuzzy msgid "E_xpand all threads when entering group" msgstr "그룹을 읽어들일을 때 새 헤더 내려받기(_g)" #: ../pan/gui/prefs-ui.cc:945 #, fuzzy msgid "Articles" msgstr "/기사(_A)" #: ../pan/gui/prefs-ui.cc:947 msgid "Space selects next article rather than next unread" msgstr "" #: ../pan/gui/prefs-ui.cc:949 #, fuzzy msgid "Expand threads upon selection" msgstr "/편집(_E)/선택에 쓰레드 추가(_T)" #: ../pan/gui/prefs-ui.cc:951 msgid "Always show article deletion confirmation dialog" msgstr "" #: ../pan/gui/prefs-ui.cc:953 #, fuzzy msgid "Smooth scrolling" msgstr "다음 속도에서 부드러운 스크롤(_s):" #: ../pan/gui/prefs-ui.cc:958 #, fuzzy msgid "Article Cache" msgstr "기사 캐쉬" #: ../pan/gui/prefs-ui.cc:959 msgid "Clear article cache on shutdown" msgstr "" #: ../pan/gui/prefs-ui.cc:962 msgid "Size of article cache (in MiB) :" msgstr "" #: ../pan/gui/prefs-ui.cc:967 #, fuzzy msgid "File extension for Cached Articles: " msgstr "/거르개(_r)/맞는 읽은 기사(_R)" #: ../pan/gui/prefs-ui.cc:972 msgid "Tabs" msgstr "" #: ../pan/gui/prefs-ui.cc:977 #, fuzzy msgid "_Behavior" msgstr "마우스 동작" #: ../pan/gui/prefs-ui.cc:977 #, fuzzy msgid "Behavior" msgstr "마우스 동작" #: ../pan/gui/prefs-ui.cc:983 #, fuzzy msgid "Language Settings" msgstr "\"%s\" 받습니다" #. systray and notify popup #: ../pan/gui/prefs-ui.cc:992 #, fuzzy msgid "System Tray Behavior" msgstr "마우스 동작" #: ../pan/gui/prefs-ui.cc:994 msgid "Hide to system tray" msgstr "" #: ../pan/gui/prefs-ui.cc:996 #, fuzzy msgid "Start Pan minimized" msgstr "판을 온라인 모드로 시작(_o)" #: ../pan/gui/prefs-ui.cc:999 #, fuzzy msgid "Show notifications" msgstr "프로필 정보" #. allow multiple instances (seperate, not communicating with dbus) #: ../pan/gui/prefs-ui.cc:1004 #, fuzzy msgid "Startup Behavior" msgstr "마우스 동작" #: ../pan/gui/prefs-ui.cc:1006 msgid "Allow multiple instances of Pan" msgstr "" #: ../pan/gui/prefs-ui.cc:1011 #, fuzzy msgid "Autosave Article Draft" msgstr "/기사 읽기(_R)" #: ../pan/gui/prefs-ui.cc:1013 #, fuzzy msgid "Minutes to autosave the current Article Draft: " msgstr "/기사 읽기(_R)" #: ../pan/gui/prefs-ui.cc:1018 #, fuzzy msgid "Autosave Articles" msgstr "...로 기사 저장" #: ../pan/gui/prefs-ui.cc:1020 msgid "Minutes to autosave newsrc files: " msgstr "" #: ../pan/gui/prefs-ui.cc:1026 msgid "_Miscellaneous" msgstr "" #: ../pan/gui/prefs-ui.cc:1026 msgid "Miscellaneous" msgstr "" #: ../pan/gui/prefs-ui.cc:1031 msgid "Pane Layout" msgstr "창 배치" #: ../pan/gui/prefs-ui.cc:1050 msgid "1=Groups, 2=Headers, 3=Body" msgstr "" #: ../pan/gui/prefs-ui.cc:1052 msgid "1=Groups, 2=Body, 3=Headers" msgstr "" #: ../pan/gui/prefs-ui.cc:1054 msgid "1=Headers, 2=Groups, 3=Body" msgstr "" #: ../pan/gui/prefs-ui.cc:1056 msgid "1=Headers, 2=Body, 3=Groups" msgstr "" #: ../pan/gui/prefs-ui.cc:1058 msgid "1=Body, 2=Groups, 3=Headers" msgstr "" #: ../pan/gui/prefs-ui.cc:1060 msgid "1=Body, 2=Headers, 3=Groups" msgstr "" #: ../pan/gui/prefs-ui.cc:1064 #, fuzzy msgid "Layout" msgstr "배치(_L)" #: ../pan/gui/prefs-ui.cc:1069 #, fuzzy msgid "Header Pane Columns" msgstr "헤더 창(_H):" #: ../pan/gui/prefs-ui.cc:1073 #, fuzzy msgid "_Headers" msgstr "헤더" #: ../pan/gui/prefs-ui.cc:1073 #, fuzzy msgid "Headers" msgstr "헤더" #: ../pan/gui/prefs-ui.cc:1079 msgid "" "This menu lets you configure Pan to take certain actions on your behalf " "automatically, based on a post's score." msgstr "" #: ../pan/gui/prefs-ui.cc:1082 msgid "_Delete posts scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1084 msgid "Mark posts _read scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1086 msgid "_Cache posts scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1088 msgid "Download _attachments of posts scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1091 #, fuzzy msgid "Actions" msgstr "동작" #: ../pan/gui/prefs-ui.cc:1096 ../pan/gui/prefs-ui.cc:1117 msgid "Fonts" msgstr "글꼴" #: ../pan/gui/prefs-ui.cc:1098 #, fuzzy msgid "Use custom font in Group Pane:" msgstr "사용자 글꼴 사용(_f)" #: ../pan/gui/prefs-ui.cc:1103 #, fuzzy msgid "Use custom font in Header Pane:" msgstr "사용자 글꼴 사용(_f)" #: ../pan/gui/prefs-ui.cc:1108 #, fuzzy msgid "Use custom font in Body Pane:" msgstr "사용자 글꼴 사용(_f)" #: ../pan/gui/prefs-ui.cc:1113 msgid "Monospace font:" msgstr "" #: ../pan/gui/prefs-ui.cc:1117 #, fuzzy msgid "_Fonts" msgstr "글꼴" #: ../pan/gui/prefs-ui.cc:1122 #, fuzzy msgid "Header Pane" msgstr "헤더 창(_H):" #: ../pan/gui/prefs-ui.cc:1125 ../pan/gui/prefs-ui.cc:1131 #: ../pan/gui/prefs-ui.cc:1137 ../pan/gui/prefs-ui.cc:1143 #: ../pan/gui/prefs-ui.cc:1149 ../pan/gui/prefs-ui.cc:1155 #, fuzzy msgid "Text:" msgstr "인용문 1(_1):" #: ../pan/gui/prefs-ui.cc:1127 ../pan/gui/prefs-ui.cc:1133 #: ../pan/gui/prefs-ui.cc:1139 ../pan/gui/prefs-ui.cc:1145 #: ../pan/gui/prefs-ui.cc:1151 ../pan/gui/prefs-ui.cc:1157 msgid "Background:" msgstr "" #: ../pan/gui/prefs-ui.cc:1129 msgid "Scores of 9999 or more:" msgstr "" #: ../pan/gui/prefs-ui.cc:1135 msgid "Scores from 5000 to 9998:" msgstr "" #: ../pan/gui/prefs-ui.cc:1141 msgid "Scores from 1 to 4999:" msgstr "" #: ../pan/gui/prefs-ui.cc:1147 msgid "Scores from -9998 to -1:" msgstr "" #: ../pan/gui/prefs-ui.cc:1153 msgid "Scores of -9999 or less:" msgstr "" #: ../pan/gui/prefs-ui.cc:1159 #, fuzzy msgid "Read collapsed thread:" msgstr "지켜보는 쓰레드(_h):" #: ../pan/gui/prefs-ui.cc:1161 #, fuzzy msgid "Body Pane" msgstr "본문 창" #: ../pan/gui/prefs-ui.cc:1167 #, fuzzy msgid "Quoted text:" msgstr "인용문 3(_3):" #: ../pan/gui/prefs-ui.cc:1168 #, fuzzy msgid "URL:" msgstr "URLs(_U):" #: ../pan/gui/prefs-ui.cc:1169 #, fuzzy msgid "Signature:" msgstr "서명" #: ../pan/gui/prefs-ui.cc:1171 #, fuzzy msgid "_Colors" msgstr "색상" #: ../pan/gui/prefs-ui.cc:1171 #, fuzzy msgid "Colors" msgstr "색상" #: ../pan/gui/prefs-ui.cc:1176 #, fuzzy msgid "Preferred Applications" msgstr "응용프로그램(_p)" #: ../pan/gui/prefs-ui.cc:1180 #, fuzzy msgid "_Web browser:" msgstr "웹 브라우저 (%s은(는) URL)(_B):" #: ../pan/gui/prefs-ui.cc:1183 #, fuzzy msgid "_Mail reader:" msgstr "편지 서버" #: ../pan/gui/prefs-ui.cc:1185 #, fuzzy msgid "_Text editor:" msgstr "편집기" #: ../pan/gui/prefs-ui.cc:1187 #, fuzzy msgid "_Applications" msgstr "응용프로그램(_p)" #: ../pan/gui/prefs-ui.cc:1187 #, fuzzy msgid "Applications" msgstr "응용프로그램(_p)" #: ../pan/gui/prefs-ui.cc:1192 ../pan/gui/task-pane.cc:512 msgid "Encoding" msgstr "" #: ../pan/gui/prefs-ui.cc:1196 msgid "Default bytes per file (for encoder): " msgstr "" #: ../pan/gui/prefs-ui.cc:1201 #, fuzzy msgid "_Upload" msgstr "응용프로그램(_p)" #: ../pan/gui/prefs-ui.cc:1201 msgid "Upload" msgstr "" #: ../pan/gui/prefs-ui.cc:1219 msgid "_Hotkeys" msgstr "" #: ../pan/gui/prefs-ui.cc:1219 msgid "Hotkeys" msgstr "" #: ../pan/gui/profiles-dialog.cc:83 msgid "Please choose your Email Address according to your PGP key's user id." msgstr "" #: ../pan/gui/profiles-dialog.cc:131 #, fuzzy msgid "Posting Profile" msgstr "판: 프로필" #: ../pan/gui/profiles-dialog.cc:143 msgid "Profile Information" msgstr "프로필 정보" #: ../pan/gui/profiles-dialog.cc:147 #, fuzzy msgid "_Profile Name:" msgstr "프로필 이름(_P):" #: ../pan/gui/profiles-dialog.cc:150 msgid "Required Information" msgstr "필요한 정보" #: ../pan/gui/profiles-dialog.cc:154 msgid "_Full Name:" msgstr "성/이름(_F):" #: ../pan/gui/profiles-dialog.cc:158 msgid "" "Your Email Address.\n" "Note that this has to match your PGP Signature's Address\n" "if you want to PGP-Sign or Encrypt your messages correctly." msgstr "" #: ../pan/gui/profiles-dialog.cc:162 msgid "_Email Address:" msgstr "전자우편 주소(_E):" #: ../pan/gui/profiles-dialog.cc:164 #, fuzzy msgid "_Post Articles via:" msgstr "기사(_A)" #: ../pan/gui/profiles-dialog.cc:167 #, fuzzy msgid "Signature" msgstr "서명" #: ../pan/gui/profiles-dialog.cc:170 #, fuzzy msgid "_Use a Signature" msgstr "서명" #: ../pan/gui/profiles-dialog.cc:174 #, fuzzy msgid "Signature File" msgstr "서명 파일(_S):" #: ../pan/gui/profiles-dialog.cc:184 #, fuzzy msgid "Text File" msgstr "/_Go/다음 기사(_x)" #: ../pan/gui/profiles-dialog.cc:186 #, fuzzy msgid "Text" msgstr "인용문 1(_1):" #: ../pan/gui/profiles-dialog.cc:188 #, fuzzy msgid "Command" msgstr "인쇄 명령:" #: ../pan/gui/profiles-dialog.cc:191 #, fuzzy msgid "PGP Signature" msgstr "서명" #: ../pan/gui/profiles-dialog.cc:196 #, fuzzy msgid "Signature Type : " msgstr "서명" #: ../pan/gui/profiles-dialog.cc:223 msgid "X-Face (Avatar)" msgstr "" #: ../pan/gui/profiles-dialog.cc:226 msgid "" "You can add an avatar icon to your articles with a unique X-Face code. \n" "Add the code without the trailing \"X-Face:\" \n" " if it was generated by a helper program (for example http://www.dairiki.org/" "xface/xface.php)." msgstr "" #: ../pan/gui/profiles-dialog.cc:229 msgid "_X-Face:" msgstr "" #: ../pan/gui/profiles-dialog.cc:231 msgid "Optional Information" msgstr "기타 정보" #: ../pan/gui/profiles-dialog.cc:236 msgid "" "When posting to Usenet, your article's Message-ID contains a domain name. \n" "You can set a custom domain name here, or leave it blank to let Pan use the " "domain name from your email address." msgstr "" #: ../pan/gui/profiles-dialog.cc:239 msgid "Message-ID _Domain Name:" msgstr "메시지-번호 도메인 이름(_D):" #: ../pan/gui/profiles-dialog.cc:243 #, c-format msgid "" "%i for Message-ID\n" "%a for Author and Address\n" "%n for Author name\n" "%d for Date" msgstr "" #: ../pan/gui/profiles-dialog.cc:244 msgid "_Attribution:" msgstr "속성(_A):" #: ../pan/gui/profiles-dialog.cc:268 msgid "" "Extra headers to be included in your posts, such as\n" "Reply-To: \"Your Name\"\n" "Organization: Your Organization\n" msgstr "" #: ../pan/gui/profiles-dialog.cc:278 #, fuzzy msgid "E_xtra Headers:" msgstr "추가 헤더" #: ../pan/gui/profiles-dialog.cc:323 msgid "Invalid email address." msgstr "" #: ../pan/gui/profiles-dialog.cc:324 msgid "Please use an address of the form joe@somewhere.org" msgstr "" #: ../pan/gui/profiles-dialog.cc:479 msgid "New Profile" msgstr "새 프로필" #: ../pan/gui/profiles-dialog.cc:525 #, fuzzy msgid "Posting Profiles" msgstr "/도구(_T)/프로필 부치기(_P)..." #: ../pan/gui/profiles-dialog.cc:541 #, fuzzy msgid "Profiles" msgstr "프로필" #: ../pan/gui/save-attach-ui.cc:77 ../pan/gui/save-ui.cc:77 #, c-format msgid "" "%g - group as one directory (alt.binaries.pictures.trains)\n" "%G - group as nested directory (/alt/binaries/pictures/trains)\n" "%s - subject line excerpt\n" "%S - subject line\n" " \n" "\"/home/user/News/Pan/%g\" becomes\n" "\"/home/user/News/Pan/alt.binaries.pictures.trains\", and\n" "\"/home/user/News/Pan/%G\" becomes\n" "\"/home/user/News/Pan/alt/binaries/pictures/trains\"," msgstr "" #: ../pan/gui/save-attach-ui.cc:223 ../pan/gui/save-ui.cc:242 msgid "Add to the queue sorted by date posted" msgstr "" #: ../pan/gui/save-attach-ui.cc:224 ../pan/gui/save-ui.cc:243 #, fuzzy msgid "Add to the front of the queue" msgstr "작업 관리 목록의 마지막에 작업 추가(_o)" #: ../pan/gui/save-attach-ui.cc:225 ../pan/gui/save-ui.cc:244 #, fuzzy msgid "Add to the back of the queue" msgstr "작업 관리 목록의 마지막에 작업 추가(_o)" #: ../pan/gui/save-attach-ui.cc:257 #, fuzzy msgid "Pan: Save Attachments" msgstr "기사 첨부를 저장합니다" #: ../pan/gui/save-attach-ui.cc:282 ../pan/gui/save-attach-ui.cc:300 #: ../pan/gui/save-ui.cc:296 ../pan/gui/save-ui.cc:314 #, fuzzy msgid "_Location:" msgstr "동작" #: ../pan/gui/save-attach-ui.cc:286 ../pan/gui/save-ui.cc:300 #, fuzzy msgid "Save Articles" msgstr "...로 기사 저장" #: ../pan/gui/save-attach-ui.cc:303 ../pan/gui/save-ui.cc:317 #, c-format msgid "_Group's path: %s" msgstr "" #: ../pan/gui/save-attach-ui.cc:314 ../pan/gui/save-ui.cc:332 msgid "_Priority:" msgstr "" #: ../pan/gui/save-ui.cc:233 #, fuzzy msgid "Save attachments" msgstr "기사 첨부를 저장합니다" #: ../pan/gui/save-ui.cc:234 #, fuzzy msgid "Save text" msgstr "텍스트 줄바꿈" #: ../pan/gui/save-ui.cc:235 #, fuzzy msgid "Save attachments and text" msgstr "디렉토리에 첨부 저장(_d):" #: ../pan/gui/save-ui.cc:271 #, fuzzy msgid "Pan: Save Articles" msgstr "...로 기사 저장" #: ../pan/gui/save-ui.cc:328 #, fuzzy msgid "_Action:" msgstr "동작" #: ../pan/gui/score-add-ui.cc:89 msgid "is more than" msgstr "" #: ../pan/gui/score-add-ui.cc:90 msgid "is at most" msgstr "" #: ../pan/gui/score-add-ui.cc:112 #, fuzzy msgid "increase the article's score by" msgstr "/보기(_V)/기사 본문을 줄바꿈(_W)" #: ../pan/gui/score-add-ui.cc:113 #, fuzzy msgid "decrease the article's score by" msgstr "/보기(_V)/기사 본문을 줄바꿈(_W)" #: ../pan/gui/score-add-ui.cc:114 msgid "set the article's score to" msgstr "" #: ../pan/gui/score-add-ui.cc:115 msgid "watch the article (set its score to 9999)" msgstr "" #: ../pan/gui/score-add-ui.cc:116 msgid "ignore the article (set its score to -9999)" msgstr "" #: ../pan/gui/score-add-ui.cc:141 #, fuzzy msgid "References" msgstr "기본설정" #: ../pan/gui/score-add-ui.cc:142 msgid "Line Count" msgstr "" #: ../pan/gui/score-add-ui.cc:143 msgid "Byte Count" msgstr "" #: ../pan/gui/score-add-ui.cc:144 msgid "Crosspost Group Count" msgstr "" #: ../pan/gui/score-add-ui.cc:145 msgid "Age (in days)" msgstr "" #: ../pan/gui/score-add-ui.cc:167 msgid "for the next month" msgstr "" #: ../pan/gui/score-add-ui.cc:168 msgid "for the next six months" msgstr "" #: ../pan/gui/score-add-ui.cc:169 #, fuzzy msgid "forever" msgstr "서버" #: ../pan/gui/score-add-ui.cc:194 #, fuzzy msgid "contains" msgstr "연결" #: ../pan/gui/score-add-ui.cc:195 msgid "doesn't contain" msgstr "" #: ../pan/gui/score-add-ui.cc:196 msgid "is" msgstr "" #: ../pan/gui/score-add-ui.cc:197 msgid "isn't" msgstr "" #: ../pan/gui/score-add-ui.cc:198 msgid "starts with" msgstr "" #: ../pan/gui/score-add-ui.cc:199 msgid "ends with" msgstr "" #: ../pan/gui/score-add-ui.cc:200 msgid "matches regex" msgstr "" #: ../pan/gui/score-add-ui.cc:481 #, fuzzy msgid "Another rule already sets this article's score." msgstr "/보기(_V)/기사 본문을 줄바꿈(_W)" #: ../pan/gui/score-add-ui.cc:482 msgid "You may want to go back or delete the old rule." msgstr "" #: ../pan/gui/score-add-ui.cc:553 #, fuzzy msgid "Add and Re_score" msgstr "새 서버를 추가합니다" #: ../pan/gui/score-add-ui.cc:604 ../pan/gui/score-add-ui.cc:624 #, fuzzy msgid "New Scoring Rule" msgstr "새 규칙" #: ../pan/gui/score-add-ui.cc:635 msgid "If the group name" msgstr "" #: ../pan/gui/score-add-ui.cc:642 #, fuzzy msgid "And the article's" msgstr "기사당 라인:" #: ../pan/gui/score-view-ui.cc:56 #, fuzzy msgid "Close and Re_score" msgstr "기록 보기를 닫습니다." #: ../pan/gui/score-view-ui.cc:154 #, c-format msgid "File %s, Lines %d - %d" msgstr "" #: ../pan/gui/score-view-ui.cc:182 #, fuzzy msgid "Pan: Article's Scores" msgstr "판: 다른 이름으로 기사 저장" #: ../pan/gui/score-view-ui.cc:208 msgid "Add" msgstr "" #: ../pan/gui/score-view-ui.cc:213 #, fuzzy msgid "New Score" msgstr "뉴스 서버" #: ../pan/gui/score-view-ui.cc:218 msgid "Criteria" msgstr "" #: ../pan/gui/score-view-ui.cc:241 #, fuzzy msgid "Add a New Scoring Rule" msgstr "새 폴더를 만듭니다" #: ../pan/gui/score-view-ui.cc:248 #, fuzzy msgid "Remove the Selected Scoring Rule" msgstr "고른 프로필을 삭제합니다" #: ../pan/gui/server-ui.cc:221 msgid "Please specify the server's address." msgstr "" #: ../pan/gui/server-ui.cc:264 msgid "Import SSL certificate (PEM format) from File" msgstr "" #. create the dialog #: ../pan/gui/server-ui.cc:290 ../pan/gui/server-ui.cc:869 #, fuzzy msgid "Add a Server" msgstr "새 서버를 추가합니다" #: ../pan/gui/server-ui.cc:290 ../pan/gui/server-ui.cc:875 msgid "Edit a Server's Settings" msgstr "" #: ../pan/gui/server-ui.cc:310 #, fuzzy msgid "Location" msgstr "동작" #: ../pan/gui/server-ui.cc:314 msgid "The news server's actual address, e.g. \"news.mynewsserver.com\"" msgstr "" #: ../pan/gui/server-ui.cc:315 msgid "_Address:" msgstr "주소(_A):" #: ../pan/gui/server-ui.cc:319 msgid "The news server's port number. Typically 119." msgstr "" #: ../pan/gui/server-ui.cc:320 msgid "Por_t:" msgstr "포트(_t):" #: ../pan/gui/server-ui.cc:323 msgid "Login (if Required)" msgstr "" #: ../pan/gui/server-ui.cc:327 msgid "_Username:" msgstr "사용자 이름(_U):" #: ../pan/gui/server-ui.cc:328 msgid "" "The username to give the server when asked. If your server doesn't require " "authentication, you can leave this blank." msgstr "" #: ../pan/gui/server-ui.cc:332 msgid "_Password:" msgstr "암호(_P):" #: ../pan/gui/server-ui.cc:333 msgid "" "The password to give the server when asked. If your server doesn't require " "authentication, you can leave this blank." msgstr "" #: ../pan/gui/server-ui.cc:336 #, fuzzy msgid "Settings" msgstr "\"%s\" 받습니다" #: ../pan/gui/server-ui.cc:343 msgid "Connection _Limit:" msgstr "연결 한계(_L):" #: ../pan/gui/server-ui.cc:347 msgid "After Two Weeks" msgstr "" #: ../pan/gui/server-ui.cc:348 msgid "After One Month" msgstr "" #: ../pan/gui/server-ui.cc:349 msgid "After Two Months" msgstr "" #: ../pan/gui/server-ui.cc:350 msgid "After Three Months" msgstr "" #: ../pan/gui/server-ui.cc:351 msgid "After Six Months" msgstr "" #: ../pan/gui/server-ui.cc:352 #, fuzzy msgid "Never Expire Old Articles" msgstr "고른 기사 받기" #: ../pan/gui/server-ui.cc:366 #, fuzzy msgid "E_xpire Old Articles:" msgstr "고른 기사 받기" #: ../pan/gui/server-ui.cc:370 #, fuzzy msgid "Primary" msgstr "우선순위" #: ../pan/gui/server-ui.cc:371 msgid "Fallback" msgstr "" #: ../pan/gui/server-ui.cc:385 #, fuzzy msgid "Server Rank:" msgstr "서버" #: ../pan/gui/server-ui.cc:389 msgid "" "Fallback servers are used for articles that can't be found on the " "primaries. One common approach is to use free servers as primaries and " "subscription servers as fallbacks." msgstr "" #: ../pan/gui/server-ui.cc:396 msgid "Security" msgstr "" #: ../pan/gui/server-ui.cc:401 msgid "Use Plaintext (Unsecured) Connections" msgstr "" #: ../pan/gui/server-ui.cc:402 #, fuzzy msgid "Use Secure SSL Connections" msgstr "연결없음" #: ../pan/gui/server-ui.cc:418 msgid "TLS (SSL) Options:" msgstr "" #: ../pan/gui/server-ui.cc:423 msgid "" "You can set the option for using/disabling secure SSL/TLS connections here. " "If you enable SSL/TLS, your data is encrypted and secure. It is encouraged " "to use this option for privacy reasons." msgstr "" #: ../pan/gui/server-ui.cc:428 msgid "Always trust this server's certificate" msgstr "" #: ../pan/gui/server-ui.cc:602 #, c-format msgid "Really delete \"%s\"?" msgstr "" #: ../pan/gui/server-ui.cc:691 msgid "No information available." msgstr "" #: ../pan/gui/server-ui.cc:697 #, c-format msgid "Server Certificate for '%s'" msgstr "" #: ../pan/gui/server-ui.cc:795 #, c-format msgid "Really delete certificate for \"%s\"?" msgstr "" #. dialog #: ../pan/gui/server-ui.cc:822 ../pan/gui/server-ui.cc:843 #: ../pan/gui/server-ui.cc:941 msgid "Servers" msgstr "서버" #: ../pan/gui/server-ui.cc:882 #, fuzzy msgid "Remove a Server" msgstr "새 서버" #. dialog #: ../pan/gui/server-ui.cc:915 msgid "SSL Certificates" msgstr "" #: ../pan/gui/server-ui.cc:936 msgid "Certificates" msgstr "" #: ../pan/gui/server-ui.cc:967 msgid "Import Certificate" msgstr "" #: ../pan/gui/server-ui.cc:973 msgid "Inspect Certificate" msgstr "" #: ../pan/gui/server-ui.cc:980 #, fuzzy msgid "Remove Certificate" msgstr "새 서버" #: ../pan/gui/task-pane.cc:143 #, c-format msgid "" "\n" "Upload\n" "\n" "Subject: \"%s\"\n" "From: %s\n" "Groups: %s\n" "Sourcefile: %s\n" msgstr "" #: ../pan/gui/task-pane.cc:155 #, c-format msgid "" "\n" "Download\n" "\n" "Subject: \"%s\"\n" "From: %s\n" "Date: %s\n" "Groups: %s\n" "Save Path: %s\n" msgstr "" #: ../pan/gui/task-pane.cc:157 #, fuzzy msgid "unknown" msgstr "모름" #: ../pan/gui/task-pane.cc:263 msgid "Choose new destination for selected Tasks" msgstr "" #: ../pan/gui/task-pane.cc:417 #, fuzzy, c-format msgid "Pan: Tasks (%d Queued, %d Running, %d Stopped)" msgstr "판 %s 작업 관리자 (%d 대기, %d 실행중, %d 멈춤)" #: ../pan/gui/task-pane.cc:419 #, fuzzy, c-format msgid "Pan: Tasks (%d Queued, %d Running)" msgstr "판 %s 작업 관리자 (%d 대기, %d 실행중)" #: ../pan/gui/task-pane.cc:421 #, fuzzy, c-format msgid "Pan: Tasks" msgstr "판: 작업 관리자" #: ../pan/gui/task-pane.cc:446 #, fuzzy, c-format msgid "%lu selected, %s" msgstr "(%u 선택됨)" #: ../pan/gui/task-pane.cc:510 msgid "Running" msgstr "작동중" #: ../pan/gui/task-pane.cc:511 #, fuzzy msgid "Decoding" msgstr "\"%s\"을(를) 해독합니다" #: ../pan/gui/task-pane.cc:513 msgid "Queued for Decode" msgstr "" #: ../pan/gui/task-pane.cc:514 msgid "Queued for Encode" msgstr "" #: ../pan/gui/task-pane.cc:515 msgid "Queued" msgstr "예약됨" #: ../pan/gui/task-pane.cc:516 msgid "Stopped" msgstr "멈춤" #: ../pan/gui/task-pane.cc:517 msgid "Removing" msgstr "지우는 중" #: ../pan/gui/task-pane.cc:546 #, fuzzy, c-format msgid "%d%% Done" msgstr "% 됨" #: ../pan/gui/task-pane.cc:552 #, fuzzy, c-format msgid "%d:%02d:%02d Remaining (%d @ %lu KiB/s)" msgstr "%d:%02d:%02d (%.2f KB/s)" #: ../pan/gui/task-pane.cc:646 ../pan/gui/task-pane.cc:647 #, fuzzy msgid "Move To Top" msgstr "고른 작업 맨아래로 옮김" #: ../pan/gui/task-pane.cc:651 ../pan/gui/task-pane.cc:652 #, fuzzy msgid "Move To Bottom" msgstr "고른 작업 맨아래로 옮김" #: ../pan/gui/task-pane.cc:656 ../pan/gui/task-pane.cc:657 #, fuzzy msgid "Stop Task" msgstr "작업없음" #: ../pan/gui/task-pane.cc:661 ../pan/gui/task-pane.cc:662 #, fuzzy msgid "Delete Task" msgstr "스팸 지우기" #: ../pan/gui/task-pane.cc:666 ../pan/gui/task-pane.cc:667 #, fuzzy msgid "Restart Task" msgstr "고른 작업 재시작" #: ../pan/gui/task-pane.cc:671 ../pan/gui/task-pane.cc:672 msgid "Change Download Destination" msgstr "" #: ../pan/gui/task-pane.cc:729 #, fuzzy msgid "_Online" msgstr "온라인" #: ../pan/gui/task-pane.cc:746 #, fuzzy msgid "Restart Tasks" msgstr "고른 작업 재시작" #: ../pan/gui/task-pane.cc:748 #, fuzzy msgid "Stop Tasks" msgstr "작업없음" #: ../pan/gui/task-pane.cc:750 #, fuzzy msgid "Delete Tasks" msgstr "스팸 지우기" #: ../pan/gui/url.cc:123 #, fuzzy, c-format msgid "Error starting URL: %s (Command was: %s)" msgstr "\"외부 편집기\" 명령행 해석 에러: %s" #: ../pan/tasks/decoder.cc:115 #, fuzzy, c-format msgid "Couldn't save file \"%s\": %s" msgstr "\"%s\" 서명 파일을 읽을 수 없습니다: %s" #: ../pan/tasks/decoder.cc:137 ../pan/tasks/encoder.cc:136 msgid "Error initializing uulib" msgstr "" #: ../pan/tasks/decoder.cc:152 ../pan/tasks/socket-impl-gio.cc:352 #: ../pan/tasks/socket-impl-openssl.cc:634 #, fuzzy, c-format msgid "Error reading from %s: %s" msgstr "소켓에서 읽다가 오류가 났습니다: %s" #: ../pan/tasks/decoder.cc:192 #, c-format msgid "Saved \"%s\"" msgstr "\"%s\"을(를) 저장했습니다" #: ../pan/tasks/decoder.cc:199 #, fuzzy, c-format msgid "" "Error saving \"%s\":\n" "%s." msgstr "\"%s\" 파일을 읽기 에러: %s" #: ../pan/tasks/decoder.cc:314 ../pan/tasks/task-article.cc:350 #, fuzzy, c-format msgid "Decoding %s" msgstr "\"%s\"을(를) 해독합니다" #: ../pan/tasks/encoder.cc:102 ../pan/tasks/encoder.cc:155 #, fuzzy, c-format msgid "Error loading %s from cache." msgstr "소켓에서 읽다가 오류가 났습니다." #: ../pan/tasks/encoder.cc:177 #, fuzzy, c-format msgid "Error encoding %s: %s" msgstr "\"%s\" 파일을 읽기 에러: %s" #: ../pan/tasks/encoder.cc:269 #, fuzzy, c-format msgid "Encoding %s" msgstr "\"%s\"을(를) 해독합니다" #: ../pan/tasks/nntp.cc:126 #, c-format msgid "%s requires a username, but none is set." msgstr "" #: ../pan/tasks/nntp.cc:139 #, c-format msgid "%s requires a password, but none is set." msgstr "" #: ../pan/tasks/nntp.cc:205 #, c-format msgid "Sending \"%s\" to %s returned an error: %s" msgstr "" #: ../pan/tasks/nntp.cc:228 #, c-format msgid "Sending \"%s\" to %s returned an unrecognized response: \"%s\"" msgstr "" #: ../pan/tasks/nntp-pool.cc:222 #, fuzzy, c-format msgid "Unable to connect to \"%s\"" msgstr "\"%s\" 메일 서버에 연결할 수 없습니다" #: ../pan/tasks/socket-impl-gio.cc:173 ../pan/tasks/socket-impl-gio.cc:211 #: ../pan/tasks/socket-impl-openssl.cc:214 #: ../pan/tasks/socket-impl-openssl.cc:252 #, fuzzy, c-format msgid "Error connecting to \"%s\"" msgstr "\"%s\" 파일을 읽기 에러: %s" #: ../pan/tasks/socket-impl-gio.cc:351 ../pan/tasks/socket-impl-openssl.cc:633 #, fuzzy msgid "Unknown Error" msgstr "모름" #: ../pan/tasks/task-article.cc:61 ../pan/tasks/task-article.cc:156 #: ../pan/tasks/task-article.cc:159 #, fuzzy, c-format msgid "Saving %s" msgstr "\"%s\"을(를) 저장합니다" #: ../pan/tasks/task-article.cc:63 #, fuzzy, c-format msgid "Reading %s" msgstr "읽음" #: ../pan/tasks/task-article.cc:322 #, c-format msgid "Article \"%s\" is incomplete -- the news server(s) don't have part %s" msgstr "" #: ../pan/tasks/task-groups.cc:40 #, fuzzy, c-format msgid "Getting group list from \"%s\"" msgstr "\"%s\" 서버에서 새 그룹을 받습니다." #: ../pan/tasks/task-groups.cc:122 #, fuzzy, c-format msgid "Fetched %lu Groups" msgstr "%u 헤더를 \"%s\"에서 가져왔습니다" #: ../pan/tasks/task-post.cc:35 #, fuzzy, c-format msgid "Posting \"%s\"" msgstr "\"%s\" 받습니다" #: ../pan/tasks/task-post.cc:76 #, fuzzy, c-format msgid "Posting of \"%s\" failed: %s" msgstr "기사 \"%s\" 본문 받기가 실패했습니다: %s" #: ../pan/tasks/task-post.cc:81 #, c-format msgid "Posting of \"%s\" succesful: %s" msgstr "" #: ../pan/tasks/task-upload.cc:51 #, fuzzy, c-format msgid "Uploading %s" msgstr "읽음" #: ../pan/tasks/task-upload.cc:249 #, c-format msgid "Uploading %s - Part %d of %d" msgstr "" #: ../pan/tasks/task-upload.cc:251 #, c-format msgid "Uploading Message body with Subject \"%s\"" msgstr "" #: ../pan/tasks/task-upload.cc:308 #, c-format msgid "Posting of File %s (Part %d of %d) failed: No Posts allowed by server." msgstr "" #: ../pan/tasks/task-upload.cc:316 #, fuzzy, c-format msgid "Posting of File %s (Part %d of %d) failed: %s" msgstr "기사 \"%s\" 본문 받기가 실패했습니다: %s" #: ../pan/tasks/task-upload.cc:326 ../pan/tasks/task-upload.cc:333 #, c-format msgid "Posting of file %s (Part %d of %d) succesful: %s" msgstr "" #: ../pan/tasks/task-upload.cc:343 #, fuzzy, c-format msgid "Posting of file %s succesful: %s" msgstr "기사 \"%s\" 본문 받기가 실패했습니다: %s" #: ../pan/tasks/task-upload.cc:347 #, c-format msgid "" "Posting of file %s not completely successful: Check the log (right-click on " "list item) !" msgstr "" #: ../pan/tasks/task-upload.cc:364 #, c-format msgid "" "Posting of file %s not successful: Check the log (right-click on list item) !" msgstr "" #: ../pan/tasks/task-xover.cc:79 #, c-format msgid "Getting all headers for \"%s\"" msgstr "\"%s\"에서 모든 헤더를 받습니다" #: ../pan/tasks/task-xover.cc:81 #, c-format msgid "Getting new headers for \"%s\"" msgstr "\"%s\"에서 새 헤더를 받습니다" #. SAMPLE #: ../pan/tasks/task-xover.cc:83 #, fuzzy, c-format msgid "Sampling headers for \"%s\"" msgstr "\"%s\"에서 모든 헤더를 받습니다" #: ../pan/tasks/task-xover.cc:369 #, fuzzy, c-format msgid "%s (%lu parts, %lu articles)" msgstr " (%lu 라인 / %lu 기사)" #: ../pan/tasks/task-xoverinfo.cc:78 #, fuzzy, c-format msgid "Getting header counts for \"%s\"" msgstr "\"%s\"에서 모든 헤더를 받습니다" #: ../pan/usenet-utils/filter-info.cc:163 #, fuzzy msgid "article doesn't have attachments" msgstr "기사가 완전한 첨부를 포함하고 있지 않습니다" #: ../pan/usenet-utils/filter-info.cc:167 #, fuzzy msgid "the article has attachments" msgstr "기사가 첨부를 포함하고 있지 않습니다" #: ../pan/usenet-utils/filter-info.cc:171 #, fuzzy msgid "the article isn't cached locally" msgstr "기사 본문이 여기에 캐쉬되어 있지 않습니다" #: ../pan/usenet-utils/filter-info.cc:175 #, fuzzy msgid "the article is cached locally" msgstr "기사 본문이 여기에 캐쉬되어 있습니다" #: ../pan/usenet-utils/filter-info.cc:179 #, fuzzy msgid "the article wasn't posted by you" msgstr "본인에 의해 투고되지 않은 기사" #: ../pan/usenet-utils/filter-info.cc:183 #, fuzzy msgid "the article was posted by you" msgstr "본인에 의해 투고되었던 기사" #: ../pan/usenet-utils/filter-info.cc:187 #, fuzzy msgid "the article has been read" msgstr "안읽은 기사입니다" #: ../pan/usenet-utils/filter-info.cc:191 #, fuzzy msgid "the article hasn't been read" msgstr "기사가 저장되거나 해독되지 않았습니다" #: ../pan/usenet-utils/filter-info.cc:195 #, fuzzy, c-format msgid "the article is less than %ld bytes long" msgstr "기사가 %d 라인 이상입니다" #: ../pan/usenet-utils/filter-info.cc:200 #, fuzzy, c-format msgid "the article is at least %ld bytes long" msgstr "기사가 N 일 이상 오래되었습니다(_o)" #: ../pan/usenet-utils/filter-info.cc:205 #, fuzzy, c-format msgid "the article is less than %ld lines long" msgstr "기사가 %d 라인 이상입니다" #: ../pan/usenet-utils/filter-info.cc:210 #, fuzzy, c-format msgid "the article is at least %ld lines long" msgstr "기사가 %d 라인 이상입니다" #: ../pan/usenet-utils/filter-info.cc:215 #, fuzzy, c-format msgid "the article is less than %ld days old" msgstr "기사가 %d일 이상 오래되었습니다" #: ../pan/usenet-utils/filter-info.cc:220 #, fuzzy, c-format msgid "the article is at least %ld days old" msgstr "기사가 N 일 이상 오래되었습니다(_o)" #: ../pan/usenet-utils/filter-info.cc:225 #, fuzzy, c-format msgid "the article was posted to less than %ld groups" msgstr "기사가 %d 그룹보다 더 적게 투고되었습니다" #: ../pan/usenet-utils/filter-info.cc:230 #, fuzzy, c-format msgid "the article was posted to at least %ld groups" msgstr "기사가 적어도 N 그룹에 투고되었습니다(_p):" #: ../pan/usenet-utils/filter-info.cc:235 #, fuzzy, c-format msgid "the article's score is less than %ld" msgstr "기사의 점수가 %d보다 낮습니다" #: ../pan/usenet-utils/filter-info.cc:240 #, fuzzy, c-format msgid "the article's score is %ld or higher" msgstr "기사의 점수가 %d 이상입니다" #: ../pan/usenet-utils/filter-info.cc:249 #: ../pan/usenet-utils/filter-info.cc:259 #, c-format msgid "%s doesn't contain \"%s\"" msgstr "" #: ../pan/usenet-utils/filter-info.cc:250 #: ../pan/usenet-utils/filter-info.cc:260 #, c-format msgid "%s isn't \"%s\"" msgstr "" #: ../pan/usenet-utils/filter-info.cc:251 #: ../pan/usenet-utils/filter-info.cc:261 #, c-format msgid "%s doesn't begin with \"%s\"" msgstr "" #: ../pan/usenet-utils/filter-info.cc:252 #: ../pan/usenet-utils/filter-info.cc:262 #, c-format msgid "%s doesn't end with \"%s\"" msgstr "" #: ../pan/usenet-utils/filter-info.cc:253 #: ../pan/usenet-utils/filter-info.cc:263 #, c-format msgid "%s doesn't match the regex \"%s\"" msgstr "" #: ../pan/usenet-utils/filter-info.cc:275 #, fuzzy, c-format msgid "%s contains \"%s\"" msgstr "연결" #: ../pan/usenet-utils/filter-info.cc:276 #, c-format msgid "%s is \"%s\"" msgstr "" #: ../pan/usenet-utils/filter-info.cc:277 #, c-format msgid "%s begins with \"%s\"" msgstr "" #: ../pan/usenet-utils/filter-info.cc:278 #, c-format msgid "%s ends with \"%s\"" msgstr "" #: ../pan/usenet-utils/filter-info.cc:279 #, fuzzy, c-format msgid "%s matches the regex \"%s\"" msgstr "%u개의 기사가 규칙 %s와 맞습니다" #: ../pan/usenet-utils/filter-info.cc:285 msgid "Any of these tests fail:" msgstr "" #: ../pan/usenet-utils/filter-info.cc:292 msgid "All of these tests pass:" msgstr "" #: ../pan/usenet-utils/filter-info.cc:299 msgid "None of these tests pass:" msgstr "" #: ../pan/usenet-utils/filter-info.cc:306 msgid "Any of these tests pass:" msgstr "" #: ../pan/usenet-utils/gnksa.cc:878 #, c-format msgid "No email address provided; generating message-id with domain \"%s\"" msgstr "전자메일주소가 없습니다; 도메인 \"%s\"(으)로 메시지-번호를 만듭니다" #: ../pan/usenet-utils/message-check.cc:124 msgid "Warning: Reply seems to be top-posted." msgstr "" #: ../pan/usenet-utils/message-check.cc:145 msgid "Warning: The signature marker should be \"-- \", not \"--\"." msgstr "" #: ../pan/usenet-utils/message-check.cc:162 #, fuzzy msgid "Warning: Signature prefix with no signature." msgstr "경고: 서명없이 서명 프리픽스만 있습니다." #: ../pan/usenet-utils/message-check.cc:167 #, fuzzy msgid "Warning: Signature is more than 4 lines long." msgstr "경고: 서명이 4 줄보다 깁니다." #: ../pan/usenet-utils/message-check.cc:172 #, fuzzy msgid "Warning: Signature is more than 80 characters wide." msgstr "경고: 서명이 80 문자보다 깁니다." #: ../pan/usenet-utils/message-check.cc:198 #, fuzzy, c-format msgid "Warning: %d line is more than 80 characters wide." msgid_plural "Warning: %d lines are more than 80 characters wide." msgstr[0] "경고: 메시지의 %d 줄이 80 문자보다 깁니다." msgstr[1] "경고: 메시지의 %d 줄이 80 문자보다 깁니다." #: ../pan/usenet-utils/message-check.cc:223 #, fuzzy msgid "Error: Message is empty." msgstr "에러: 메시지가 비었습니다." #: ../pan/usenet-utils/message-check.cc:258 #, fuzzy msgid "Warning: The message is entirely quoted text!" msgstr "경고: 메시지 전체가 인용문입니다." #: ../pan/usenet-utils/message-check.cc:259 #, fuzzy msgid "Warning: The message is mostly quoted text." msgstr "경고: 메시지가 거의 인용문입니다." #: ../pan/usenet-utils/message-check.cc:309 #, fuzzy msgid "Error: Message appears to have no new content." msgstr "에러: 메시지가 내용이 없는 것 같습니다." #: ../pan/usenet-utils/message-check.cc:344 #: ../pan/usenet-utils/message-check.cc:383 #, c-format msgid "" "Warning: The posting profile's server doesn't carry newsgroup\n" "\t\"%s\".\n" "\tIf the group name is correct, switch profiles in the \"From:\"\n" "\tline or edit the profile with \"Edit|Manage Posting Profiles\"." msgstr "" #: ../pan/usenet-utils/message-check.cc:355 #, fuzzy msgid "Warning: Following-Up to too many groups." msgstr "경고: 따라올릴 그룹이 너무 많습니다." #: ../pan/usenet-utils/message-check.cc:366 #, fuzzy msgid "Error: No Subject specified." msgstr "오류: 제목이 없습니다." #: ../pan/usenet-utils/message-check.cc:395 #, fuzzy, c-format msgid "Warning: Group \"%s\" is read-only." msgstr "경고: \"%s\" 그룹이 읽기 전용입니다." #: ../pan/usenet-utils/message-check.cc:404 #, fuzzy msgid "Error: Posting to a very large number of groups." msgstr "에러: 부치는 그룹이 너무 많습니다." #: ../pan/usenet-utils/message-check.cc:409 #, fuzzy msgid "Warning: Posting to a large number of groups." msgstr "경고: 부치는 그룹이 너무 많습니다." #: ../pan/usenet-utils/message-check.cc:416 #, fuzzy msgid "Warning: Crossposting without setting Followup-To header." msgstr "경고: 따라올리기를 두지 않고 그룹에 교차투고합니다." #: ../pan/usenet-utils/message-check.cc:441 #, fuzzy msgid "Error: Bad email address." msgstr "전자우편 주소(_E):" #: ../pan/usenet-utils/message-check.cc:450 msgid "Warning: Most newsgroups frown upon HTML posts." msgstr "" #: ../pan/usenet-utils/message-check.cc:486 #, fuzzy msgid "Error: No Recipients." msgstr "오류: 제목이 없습니다." #: ../pan/usenet-utils/scorefile.cc:304 #, c-format msgid "" "Error reading score in %*.*s, line %d: expected 'Expires: MM/DD/YYYY' or " "'Expires: DD-MM-YYYY'." msgstr "" #: ../pan/usenet-utils/scorefile.cc:307 #, c-format msgid "Expired old score from %*.*s, line %d" msgstr "" #: ../pan/usenet-utils/scorefile.cc:380 #, c-format msgid "Error reading score in %*.*s, line %d: unexpected line." msgstr "" #: ../pan/usenet-utils/scorefile.cc:428 #, c-format msgid "Read %lu scoring rules in %lu sections from \"%s\"" msgstr "" #: ../pan/usenet-utils/ssl-utils.h:199 #, fuzzy, c-format msgid "Error printing the server certificate for '%s'" msgstr "외부 편집기 시작 에러: %s" #: ../pan/usenet-utils/ssl-utils.h:216 #, c-format msgid "" "The current server '%s' sent this security certificate :\n" "\n" msgstr "" #: ../pan/usenet-utils/ssl-utils.h:217 #, c-format msgid "" "Certificate information for server '%s' :\n" "\n" msgstr "" #: ../pan/usenet-utils/ssl-utils.h:219 #, c-format msgid "" "%sIssuer information:\n" "%s\n" "Valid until : %s\n" "\n" "Not valid before : %s\n" "\n" msgstr "" #: ../pan/usenet-utils/text-massager.cc:397 msgid "> [quoted text muted]" msgstr "" #~ msgid "Read News from Usenet" #~ msgstr "유스넷에서 뉴스 읽기" #, fuzzy #~ msgid "_Toggle Flag on for Thread" #~ msgstr "/쓰레드 지켜보기(_W)" #, fuzzy #~ msgid "Error!" #~ msgstr "에러" #, fuzzy #~ msgid "Signer : " #~ msgstr "서명" #, fuzzy #~ msgid "_Signature:" #~ msgstr "서명" #, fuzzy #~ msgid "Creating directory \"%s\"" #~ msgstr "\"%s\" 디렉토리를 열 수 없습니다: %s)" #~ msgid "Couldn't create directory \"%s\": %s" #~ msgstr "\"%s\" 디렉토리를 만들 수 없습니다: %s" #, fuzzy #~ msgid "_Groups" #~ msgstr "그룹" #, fuzzy #~ msgid "Read Selected Group" #~ msgstr "다음 안 읽은 그룹 보기" #, fuzzy #~ msgid "_Mark Group _Read" #~ msgstr "/그룹을 읽은 것으로 표시(_R)" #, fuzzy #~ msgid "_Delete Group's Articles" #~ msgstr "/그룹의 모든 기사 지우기(_D)" #, fuzzy #~ msgid "Get New Headers for Selected Groups" #~ msgstr "선택된 그룹 모두에서 새 헤더 받기" #, fuzzy #~ msgid "Get New Headers for Subscribed Groups" #~ msgstr "받아보는 그룹 모두에서 새 헤더 받기" #, fuzzy #~ msgid "Get Headers from Server" #~ msgstr "%d 그룹을 \"%s\" 서버에서 받았습니다" #, fuzzy #~ msgid "Get a new Group list from the Server" #~ msgstr "%d개 새 그룹을 \"%s\" 서버에서 받습니다" #, fuzzy #~ msgid "Subscribe to Selected Groups" #~ msgstr "받아보는 그룹" #, fuzzy #~ msgid "Unsubscribe from Selected Groups" #~ msgstr "받아보는 그룹" #, fuzzy #~ msgid "Save Selected Articles..." #~ msgstr "기사 첨부 저장" #~ msgid "Cancel Last Task" #~ msgstr "마지막 작업 취소" #, fuzzy #~ msgid "Clear Header Pane" #~ msgstr "헤더 창(_H):" #, fuzzy #~ msgid "Clear Body Pane" #~ msgstr "본문 창" #, fuzzy #~ msgid "Download _Selected Article" #~ msgstr "고른 기사 받기" #, fuzzy #~ msgid "Download Selected Article" #~ msgstr "고른 기사 받기" #, fuzzy #~ msgid "Read _Selected Article" #~ msgstr "고른 기사 받기" #, fuzzy #~ msgid "Next Unread Group" #~ msgstr "/_Go/다음 안 읽은 그룹(_G)" #, fuzzy #~ msgid "Next Group" #~ msgstr "/_Go/다음 그룹(_e)" #, fuzzy #~ msgid "Next Watched Article" #~ msgstr "고른 기사 받기" #, fuzzy #~ msgid "Next Thread" #~ msgstr "/_Go/다음 쓰레드(_d)" #, fuzzy #~ msgid "Previous Article" #~ msgstr "/_Go/이전 기사(_v)" #, fuzzy #~ msgid "Previous Thread" #~ msgstr "/_Go/이전 쓰레드(_u)" #, fuzzy #~ msgid "Parent Article" #~ msgstr "/_Go/부모 기사(_P)" #, fuzzy #~ msgid "_Plonk Author" #~ msgstr "보낸이(_A):" #, fuzzy #~ msgid "Mark Article as Read" #~ msgstr "읽은 기사입니다" #, fuzzy #~ msgid "Mark Article as Unread" #~ msgstr "안읽은 기사입니다" #, fuzzy #~ msgid "Reply to Author" #~ msgstr "보낸이(_A):" #, fuzzy #~ msgid "_About..." #~ msgstr "/도움말(_H)/이 프로그램은(_A)..." #, fuzzy #~ msgid "Abbreviate _Names in Group Pane" #~ msgstr "/보기(_V)/그룹 창에 약어 이름(_N)" #, fuzzy #~ msgid "Match Only Articles Posted by Me" #~ msgstr "본인에 의해 투고되었던 기사" #, fuzzy #~ msgid "Central European (ISO-8859-2)" #~ msgstr "중부 유럽" #, fuzzy #~ msgid "Central European (Windows-1250)" #~ msgstr "중부 유럽" #, fuzzy #~ msgid "Chinese Simplified (gb2312)" #~ msgstr "중국 Simplified" #, fuzzy #~ msgid "Chinese Traditional (big5)" #~ msgstr "중국 Traditional" #, fuzzy #~ msgid "Cyrillic (KOI8-R)" #~ msgstr "키릴" #, fuzzy #~ msgid "Cyrillic, Ukrainian (KOI8-U)" #~ msgstr "키릴, 우크라이나" #, fuzzy #~ msgid "Western, New (ISO-8859-15)" #~ msgstr "Western, New" #, fuzzy #~ msgid "Unicode (UTF-8)" #~ msgstr "Unicode, UTF-8" #, fuzzy #~ msgid "Pan: " #~ msgstr "판 " #, fuzzy #~ msgid "Pan: %s" #~ msgstr "판 " #~ msgid "Tasks: %u/%u" #~ msgstr "작업: %u/%u" #~ msgid "%u Tasks Running, %u Tasks Total" #~ msgstr "%u 작업 실행중, 총 %u 작업" #, fuzzy #~ msgid "Wrap the Article Body to 80 Columns" #~ msgstr "/보기(_V)/기사 본문을 줄바꿈(_W)" #, fuzzy #~ msgid "_Close" #~ msgstr "색상" #, fuzzy #~ msgid "Close Window" #~ msgstr "기록 보기를 닫습니다." #, fuzzy #~ msgid "Cut Text" #~ msgstr "인용문 1(_1):" #, fuzzy #~ msgid "Copy Text" #~ msgstr "텍스트 줄바꿈" #, fuzzy #~ msgid "_Paste" #~ msgstr "/부치기(_P)" #, fuzzy #~ msgid "Paste Text" #~ msgstr "텍스트 줄바꿈" #, fuzzy #~ msgid "Manage Posting Pr_ofiles..." #~ msgstr "/도구(_T)/프로필 부치기(_P)..." #~ msgid "Western" #~ msgstr "Western" #, fuzzy #~ msgid "Error loading post.ui: \"%s\"" #~ msgstr "소켓에서 읽다가 오류가 났습니다: %s" #, fuzzy #~ msgid "Editors" #~ msgstr "편집기" #, fuzzy #~ msgid "Posting Article" #~ msgstr "기사를 정렬합니다" #, fuzzy #~ msgid "Add a New Profile" #~ msgstr "새 프로필 추가" #~ msgid "Edit the selected profile" #~ msgstr "고른 프로필 편집" #~ msgid "Remove the selected profile" #~ msgstr "고른 프로필을 삭제합니다" #, fuzzy #~ msgid "Threads" #~ msgstr "읽은 쓰레드(_R):" #, fuzzy #~ msgid "Path" #~ msgstr "보낸이" #, fuzzy #~ msgid "Save Files to Path" #~ msgstr "기사 첨부를 저장합니다" #, fuzzy #~ msgid "_Path:" #~ msgstr "/부치기(_P)" #, fuzzy #~ msgid "Group Management" #~ msgstr "그룹목록 창(_G):" #, fuzzy #~ msgid "Pan: New Scoring Rule" #~ msgstr "판: 규칙 편집" #, fuzzy #~ msgid "Then" #~ msgstr "고맙습니다" #, fuzzy #~ msgid "For" #~ msgstr "폴더" #, fuzzy #~ msgid "Name: \"%s\"" #~ msgstr "\"%s\"을(를) 저장했습니다" #, fuzzy #~ msgid "Pan: Add a Server" #~ msgstr "판: 서버 편집" #, fuzzy #~ msgid "Pan: Edit a Server's Settings" #~ msgstr "판: 서버 편집" #~ msgid "Pan: Servers" #~ msgstr "판: 서버" #, fuzzy #~ msgid "to %s" #~ msgstr "%s 이란" #~ msgid "Status" #~ msgstr "상태" #, fuzzy #~ msgid "Unable to set group: %s" #~ msgstr "그룹 \"%s\" 설정 불가: %s" #, fuzzy #~ msgid "Couldn't load \"%s\": %s" #~ msgstr "\"%s\" 디렉토리를 만들 수 없습니다: %s" #, fuzzy #~ msgid "" #~ "Error saving \"%s\":\n" #~ "%s. %s" #~ msgstr "\"%s\" 파일을 읽기 에러: %s" #, fuzzy #~ msgid "Warning: Unknown group \"%s\"." #~ msgstr "경고: 모르는 그룹: \"%s\"." #, fuzzy #~ msgid "_Posting" #~ msgstr "/부치기(_P)" #, fuzzy #~ msgid "Post New Article" #~ msgstr "기사를 정렬합니다" #, fuzzy #~ msgid "Follow-up to Article" #~ msgstr "뉴스그룹에 따라올리기" #, fuzzy #~ msgid "_Post Article" #~ msgstr "기사(_A)" #, fuzzy #~ msgid "Post this Article Now" #~ msgstr "기사 \"%s\"을(를) 부칩니다" #, fuzzy #~ msgid "Error: No Newsgroups specified." #~ msgstr "오류: 받는이가 없습니다." #, fuzzy #~ msgid "Saved newsrc files in %.1f seconds" #~ msgstr "%d개의 기사를 그룹 %s에서 %.1f 초동안 저장했습니다 (%.0f 기사/초)" #~ msgid "Or_ganization Header:" #~ msgstr "소속 헤더(_g):" #~ msgid "Select Signature File" #~ msgstr "서명 파일 선택" #~ msgid "Automatic Downloads" #~ msgstr "자동 내려받기" #, fuzzy #~ msgid "Save a_ttachments to path:" #~ msgstr "첨부 저장:" #~ msgid "UNKNOWN" #~ msgstr "모름" #, fuzzy #~ msgid "Decode can't access directory \"%s\"" #~ msgstr "해석기가 경로 \"%s\"에 접근할 수 없습니다" #~ msgid "Could not decode article - file may be corrupt/incomplete" #~ msgstr "기사 해석 불가 - 파일이 깨졌거나 불완전한 것 같습니다" #~ msgid "Checksum for `%s' part %d failed - file is corrupt" #~ msgstr "`%s'의 부분 %d에 대한 첵섬 실패 - 파일이 깨졌습니다" #~ msgid "Checksum for `%s' failed - file may be corrupt" #~ msgstr "`%s'의 첵섬 실패 - 파일이 깨진 것 같습니다" #, fuzzy #~ msgid "Header Pane background:" #~ msgstr "헤더 창" #, fuzzy #~ msgid "Unread articles:" #~ msgstr "않읽은 쓰레드(_T):" #, fuzzy #~ msgid "" #~ "Unsupported data version (%d) for server properties. Are you running an " #~ "old version of Pan by accident?" #~ msgstr "" #~ "%s 헤더에 대한 데이타 버전이 지원되지 않습니다: %d.\n" #~ "이전 버전의 판을 실행하셨습니까?" #, fuzzy #~ msgid "Couldn't create temporary file: %s" #~ msgstr "임시파일을 생성할 수 없습니다: %s" #~ msgid "Error renaming \"%s\" as \"%s\": %s." #~ msgstr "\"%s\"을(를) \"%s\"(으)로 이름바꾸기 에러: %s." #, fuzzy #~ msgid "Can't backup \"%s\" as \"%s\": %s" #~ msgstr "\"%s\"을(를) \"%s\"(으)로 이름바꾸기 에러: %s." #~ msgid "Can't write to \"%s\": %s" #~ msgstr "\"%s\"에 쓸 수 없습니다: %s" #~ msgid "Body" #~ msgstr "본문" #, fuzzy #~ msgid "Open a Draft Article from Disk" #~ msgstr "%u개의 기사를 %s 그룹에서 지웠습니다" #, fuzzy #~ msgid "Editor Applications" #~ msgstr "응용프로그램" #, fuzzy #~ msgid "subject" #~ msgstr "제목" #, fuzzy #~ msgid "Change" #~ msgstr "문자셋" #~ msgid "Connections" #~ msgstr "연결" #, fuzzy #~ msgid "Active" #~ msgstr "동작" #~ msgid "" #~ "Unable to cancel article: Couldn't find matching article in folder `pan." #~ "sent'!" #~ msgstr "" #~ "기사를 취소할 수 없습니다: `pan.sent' 폴더에서 같은 기사를 찾을 수 없습니" #~ "다!" #~ msgid "" #~ "Unable to supersede article: Couldn't find matching article in folder " #~ "`pan.sent'!" #~ msgstr "" #~ "기사를 바꿀 수 없습니다: `pan.sent' 폴더에서 같은 기사를 찾을 수 없습니다!" #~ msgid "Pan: Filter Out Articles" #~ msgstr "판: 기사를 거릅니다" #~ msgid "Add Author to Bozo Filter" #~ msgstr "저자를 Bozo 거르개에 추가" #~ msgid "Add Author to Spam Filter" #~ msgstr "저자를 스팸 거르개에 추가" #~ msgid "Add Subject to Spam Filter" #~ msgstr "제목을 스팸 거르개에 추가" #~ msgid "Pan: Find Message" #~ msgstr "판: 메시지 찾기" #~ msgid "Case Sensiti_ve" #~ msgstr "대소문자 구별(_v)" #~ msgid "_Unread Only" #~ msgstr "안 읽은 것만(_U)" #~ msgid "Find:" #~ msgstr "찾기:" #~ msgid "" #~ "Type in a search string and press ENTER.\n" #~ "Wildcards are allowed." #~ msgstr "" #~ "그룹 찾기에 문자열을 치고 엔터를 누르세요.\n" #~ "만능문자도 됩니다." #~ msgid "You must download the article before you can cancel it." #~ msgstr "취소하기 전에 기사를 내려받아야 합니다." #~ msgid "You must download the article before you can supersede it." #~ msgstr "폐지하기 전에 기사를 내려받아야 합니다." #~ msgid "/---" #~ msgstr "/---" #~ msgid "/Save Article A_ttachments" #~ msgstr "/기사의 첨부 저장(_t)" #~ msgid "/D_ownload Flagged" #~ msgstr "/표시된 기사를 내려받기(_o)" #~ msgid "/_Flag" #~ msgstr "/표시(_F)" #~ msgid "/_Unflag" #~ msgstr "/표시삭제" #~ msgid "/Add to Bo_zo or Spam Filter..." #~ msgstr "/Bozo 혹은 스팸 거르개에 추가(_z)..." #~ msgid "/_Copy to Folder" #~ msgstr "/폴더로 복사(_C)" #~ msgid "/_Delete" #~ msgstr "/지우기(_D)" #~ msgid "Loading group \"%s\"" #~ msgstr "\"%s\" 그룹을 읽어들입니다" #~ msgid "Filtering Articles" #~ msgstr "기사를 거릅니다" #~ msgid "Updating Header Pane..." #~ msgstr "헤더 창 갱신..." #~ msgid "Flushing article cache... " #~ msgstr "기사 캐쉬를 지웁니다..." #~ msgid "%d files erased." #~ msgstr "%d 파일이 지워졌습니다." #~ msgid "Error saving article \"%s\" (is %s full?)" #~ msgstr "기사 \"%s\" 저장 에러 (%s이(가) 꽉찼나요?)" #~ msgid "Directory \"%s\" contains %.1f MB in %d files" #~ msgstr "\"%s\" 디렉토리는 %.1f MB에 %d개의 파일을 포함하고 있습니다" #~ msgid "Don't know what to do with header \"%s\"" #~ msgstr "\"%s\" 헤더로 무엇을 할 수 있는 지 모르겠습니다" #~ msgid "Couldn't parse a Message-ID from the raw message!" #~ msgstr "원래 메시지에서 메시지-번호를 해석해 낼 수 없습니다!" #~ msgid "Unparseable Subject" #~ msgstr "제목 해석 불가" #~ msgid "unknown@spammesenseless.com" #~ msgstr "unknown@spammesenseless.com" #~ msgid "Can't create file \"%s\" %s" #~ msgstr "파일 \"%s\"을(를) 만들 수 없습니다: %s" #~ msgid "Error saving file \"%s\" - is the disk full?" #~ msgstr "\"%s\" 파일 저장 에러 - 디스크가 꽉 찼나요?" #~ msgid "Decoded \"%s\" from group \"%s\", \"%s\"" #~ msgstr "\"%s\"을(를) 그룹 \"%s\"에서 해석, \"%s\"" #~ msgid "Loading %u of %d groups" #~ msgstr "%u개가 %d 그룹에서 읽히는 중" #~ msgid "" #~ "Skipped %d groups due to possible corruption in \"%s\" and \"%s\". You " #~ "may want to delete these files and get a new grouplist from your news " #~ "server." #~ msgstr "" #~ "%d 그룹을 건너뜁니다. \"%s\"와 \"%s\"이(가) 깨진 것 같기 때문입니다. 이 파" #~ "일들을 지우고 뉴스 서버에서 새 그룹 목록을 받으시는 게 좋겠습니다." #~ msgid "Loaded %d groups for server \"%s\" in %.1f seconds (%.0f groups/sec)" #~ msgstr "%d개의 그룹을 \"%s\" 서버에서 %.1f 초동안 받았습니다 (%.0f 그룹/초)" #~ msgid "Saved %d of %u groups" #~ msgstr "그룹 %d / %u 개를 저장했습니다" #~ msgid "Error saving list of groups to \"%s\" - is the disk full?" #~ msgstr "그룹 목록을 \"%s\"에 저장 에러 - 디스크가 꽉 찼나요?" #~ msgid "Saved %d groups in \"%s\" in %.1f seconds (%.0f groups/sec)" #~ msgstr "%d 그룹이 \"%s\"에서 %.1f 초동안 저장되었습니다 (%.0f 그룹/초)" #~ msgid "Loaded %d of %d articles" #~ msgstr "기사 %d / %d 개를 읽어들였습니다" #~ msgid "" #~ "Pan skipped %d corrupt headers from the local cache for group \"%s\"." #~ msgstr "판이 %d개의 깨진 헤러를 \"%s\" 그룹 캐쉬에서 건너뛰었습니다." #~ msgid "You may want to empty this group and download fresh headers." #~ msgstr "원하시면 이 그룹을 비우고 깨끗한 헤더를 내려받으세요." #~ msgid "The group will not be saved -- can't create file \"%s\"" #~ msgstr "그룹이 저장되지 않을 겁니다 -- \"%s\"을(를) 만들 수 없습니다" #~ msgid "Unable to save headers for group \"%s\" - is the disk full?" #~ msgstr "\"%s\" 그룹에 헤더를 저장할 수 없습니다 - 디스크가 꽉 찼나요?" #~ msgid "(No Group)" #~ msgstr "(그룹없음)" #~ msgid "" #~ "INFORMATION: Please be aware that posts to \"%s\" will not appear until " #~ "approved by the group's moderator." #~ msgstr "" #~ "정보: \"%s\"(으)로 부친 메시지는 그룹 관리자가 승인할 때까지 보이지 않습니" #~ "다." #~ msgid "ERROR: invalid address \"%s\"" #~ msgstr "오류: 이상한 주소 \"%s\"" #~ msgid "ERROR: Must have one author in From: line" #~ msgstr "오류: \"보낸이:\" 줄에 꼭 한 사람만 있어야 합니다" #~ msgid "Imported %d groups (%d new) from \"%s\"" #~ msgstr "%d 그룹(%d 새것)을 \"%s\"에서 가져왔습니다" #~ msgid "Exported %d groups (%d subscribed) to \"%s\"" #~ msgstr "%d 그룹(%d개 구독)을 \"%s\"(으)로 보냈습니다" #~ msgid "Imported %d lines from Gnome config file" #~ msgstr "그놈 설정 파일에서 %d 라인을 가져왔습니다" #~ msgid "%s does not appear to be a valid datafile" #~ msgstr "%s은(는) 잘못된 데이타 파일인 것 같습니다" #~ msgid "Error converting string \"%*s\" to utf8: %d - %s" #~ msgstr "\"%*s\" 문자열을 utf8로 바꿀 수 없습니다: %d - %s" #~ msgid "A newsreader for GNOME" #~ msgstr "그놈에서 쓰는 뉴스 읽개" #~ msgid "Programmer" #~ msgstr "프로그래머" #~ msgid "Programmer & Documentation" #~ msgstr "프로그래머와 문서작업" #~ msgid "Project Originator, Programmer" #~ msgstr "프로젝트 창시자, 프로그래머" #~ msgid "Programmer, 0.6 - 0.7" #~ msgstr "프로그래머, 0.6 - 0.7" #~ msgid "" #~ "Pan %s Translations\n" #~ "%s\n" #~ "\n" #~ "Pan %s Code or Patches\n" #~ "%s\n" #~ "\n" #~ "Pan %s Suggestions and Testing\n" #~ "%s\n" #~ "\n" #~ "Contributors to previous versions are listed at\n" #~ "http://pan.rebelbase.com/CREDITS" #~ msgstr "" #~ "판 %s 번역\n" #~ "%s\n" #~ "\n" #~ "판 %s 코드 혹은 패치\n" #~ "%s\n" #~ "\n" #~ "판 %s 제안 및 시험\n" #~ "%s\n" #~ "\n" #~ "http://pan.rebelbase.com/CREDITS에 이전 버전에\n" #~ "대한 공헌자들이 나열되어 있습니다" #~ msgid "Default charse_t:" #~ msgstr "기본 문자셋(_t):" #~ msgid "Pan: Download Headers for group `%s'" #~ msgstr "판: 헤더를 `%s' 그룹에서 내려받습니다" #~ msgid "Pan: Download Headers" #~ msgstr "판: 새 헤더 내려받기" #~ msgid "Download _new headers" #~ msgstr "새 헤더 내려받기(_n)" #~ msgid "_Download bodies too" #~ msgstr "기사 본문도 내려받습니다(_D)" #~ msgid "/_File/_Save..." #~ msgstr "/파일(_F)/저장(_S)..." #~ msgid "/_File/Clea_r" #~ msgstr "/파일(_F)/지움(_r)" #~ msgid "/_File/---" #~ msgstr "/파일(_F)/---" #~ msgid "/_File/_Close" #~ msgstr "/파일(_F)/닫기(_C)" #~ msgid "Pan: Status Log" #~ msgstr "판: 상태 로그" #~ msgid "Clear the log window" #~ msgstr "기록창의 내용을 지웁니다." #~ msgid "Time" #~ msgstr "시간" #~ msgid "Log Entry" #~ msgstr "기록 항목" #~ msgid "How should you appear when posting articles?" #~ msgstr "기사를 부칠 때 어떻게 보이고 싶으세요?" #~ msgid "Your _Name:" #~ msgstr "이름(_N):" #~ msgid "Email _Address:" #~ msgstr "전자우편 주소(_A):" #~ msgid "_Organization:" #~ msgstr "소속(_O):" #~ msgid "default" #~ msgstr "기본" #~ msgid "What mail server should Pan use?" #~ msgstr "판이 어떤 메일 서버를 사용해야 합니까?" #~ msgid "What news server should Pan use?" #~ msgstr "판이 어떤 뉴스 서버를 사용해야 합니까?" #~ msgid "Short _name for Pan to show:" #~ msgstr "보여줄 짧은 이름(_n):" #~ msgid "Login" #~ msgstr "로그인" #~ msgid "Server requires authori_zation" #~ msgstr "서버가 인증을 요청합니다(_z)" #~ msgid "Pan Setup Wizard" #~ msgstr "판 구성 마법사" #~ msgid "Thank you for trying Pan!" #~ msgstr "판을 사용해 주셔서 고맙습니다!" #~ msgid "" #~ "Thank you for trying Pan!\n" #~ " \n" #~ "If you are new to Usenet,\n" #~ "%s\n" #~ "is a starting point to see what Usenet is,\n" #~ "where to find a free news server,\n" #~ "and how to use Pan.\n" #~ " \n" #~ "Since this is your first time running Pan,\n" #~ "we'll need to gather some information.\n" #~ msgstr "" #~ "판을 사용해 주셔서 고맙습니다!\n" #~ " \n" #~ "유즈넷을 처음 접하신 경우라면,\n" #~ "%s\n" #~ "에서 유즈넷이 무엇인지 알 수 있고,\n" #~ "공짜 뉴스 서버를 어디에서 찾을 것인지,\n" #~ "판을 어떻게 사용할 건지도 배울 수 있을 것입니다.\n" #~ " \n" #~ "지금 판을 처음 실행하셨기 때문에\n" #~ "몇몇 정보가 필요합니다.\n" #~ msgid "About You" #~ msgstr "당신은" #~ msgid "Ready!" #~ msgstr "준비되었습니다!" #~ msgid "" #~ "You have successfully entered all of\n" #~ "the information required to set up Pan.\n" #~ "\n" #~ "To save these settings, click Save." #~ msgstr "" #~ "판을 구성하는 데 필요한 모든 정보를\n" #~ "성공적으로 입력했습니다.\n" #~ "\n" #~ "이 설정을 저장하려면, 저장을 누르세요." #~ msgid "License" #~ msgstr "라이센스" #~ msgid "Authors" #~ msgstr "저자" #~ msgid "Thanks to" #~ msgstr "Thanks to" #~ msgid " (No conditions -- no articles will match)" #~ msgstr " (조건없음 -- 맞는 기사 없음)" #~ msgid " (No conditions -- all articles will match)" #~ msgstr " (조건없음 - 모든 기사가 맞음)" #~ msgid "Pan: Edit Filter" #~ msgstr "판: 거르개 편집" #~ msgid "Filter name: " #~ msgstr "거르개 이름: " #~ msgid "Show in Filter Menu" #~ msgstr "거르개 메뉴에서 보기" #~ msgid "Move the selected line up one line" #~ msgstr "고른 라인을 한 줄 위로 이동" #~ msgid "Move the selected line down one line" #~ msgstr "고른 라인을 한 줄 아래로 이동" #~ msgid "Invert" #~ msgstr "반전" #~ msgid "Delete the selected line" #~ msgstr "고른 라인을 지웁니다" #~ msgid "Add New Line to the Filter" #~ msgstr "거르개에 새 라인 추가" #~ msgid "New Filter Line" #~ msgstr "새로운 거르개 라인" #~ msgid "does not match regular expression" #~ msgstr "정규표현식과 맞지 않습니다" #~ msgid "Watched" #~ msgstr "지켜보기" #~ msgid "Ignored" #~ msgstr "무시됨" #~ msgid "Neither Watched nor Ignored" #~ msgstr "지켜보지도 무시되지도 않음" #~ msgid "Article has at _least N lines:" #~ msgstr "기사가 적어도 N lines(_l):" #~ msgid "" #~ "This filter is still used by the following rules:\n" #~ "%s\n" #~ "Please remove this dependency first." #~ msgstr "" #~ "이 거르개는 다음 규칙에 의해 아직 사용되고 있습니다:\n" #~ "%s\n" #~ "먼저 이 종속성을 제거하십시요." #~ msgid "Pan: Filters" #~ msgstr "판: 거르개" #~ msgid "Filters" #~ msgstr "거르개" #~ msgid "Edit the selected filter" #~ msgstr "고른 거르개를 편집합니다" #~ msgid "Remove the selected filter" #~ msgstr "고른 거르개를 삭제합니다" #~ msgid "NONE OF:" #~ msgstr "NONE OF:" #~ msgid "ALL OF:" #~ msgstr "ALL OF:" #~ msgid "ANY OF:" #~ msgstr "ANY OF:" #~ msgid "Article has complete attachments" #~ msgstr "기사가 완전한 첨부를 포함하고 있습니다" #~ msgid "Article does not have incomplete attachments" #~ msgstr "기사가 불완전한 첨부를 포함하고 있지 않습니다" #~ msgid "Article has incomplete attachments" #~ msgstr "기사가 불완전한 첨부를 포함하고 있습니다" #~ msgid "Article has complete or incomplete attachments" #~ msgstr "기사가 완전 혹은 불완전한 첨부를 포함하고 있습니다" #~ msgid "Article is crossposted to at least %d groups" #~ msgstr "기사가 적어도 %d 그룹에 투고되었습니다" #~ msgid "Article was posted in the last %d days" #~ msgstr "기사가 최근 %d일 안에 투고되었습니다" #~ msgid "Article is %d or more lines long" #~ msgstr "기사가 %d 라인 혹은 그 이상입니다" #~ msgid "Bozos" #~ msgstr "Bozos" #~ msgid "Spam" #~ msgstr "스팸" #~ msgid "Article is unread or old" #~ msgstr "안읽거나 오래된 기사입니다" #~ msgid "Article is new" #~ msgstr "새 기사입니다" #~ msgid "Article is new or read" #~ msgstr "새로운 혹은 읽은 기사입니다" #~ msgid "Article is new or unread" #~ msgstr "새로운 혹은 안읽은 기사입니다" #~ msgid "Xref" #~ msgstr "Xref" #~ msgid "Article has been saved or decoded" #~ msgstr "기사가 저장되거나 해독되었습니다" #~ msgid "Article is not queued for saving or decoding" #~ msgstr "기사가 저장 혹은 해독을 위해 큐에 저장되지 않았습니다" #~ msgid "Article is queued for saving or decoding" #~ msgstr "기사가 저장 혹은 해독을 위해 큐에 저장되었습니다" #~ msgid "Thread isn't watched" #~ msgstr "쓰레드를 지켜보지 않습니다" #~ msgid "Thread is watched" #~ msgstr "쓰레드를 지켜봅니다" #~ msgid "Thread isn't ignored" #~ msgstr "쓰레드가 무시되지 않았습니다" #~ msgid "Thread is ignored" #~ msgstr "쓰레드가 무시되었습니다" #~ msgid "Thread is neither watched nor ignored" #~ msgstr "쓰레드를 지켜보지도 무시하지도 않습니다" #~ msgid "Wrote filters to \"%s\"" #~ msgstr "거르개를 \"%s\"(으)로 기록하였습니다." #~ msgid "Invalid folder name: \"%s\"" #~ msgstr "이상한 폴더 이름: \"%s\"" #~ msgid "Please don't begin folders with \"pan.\"; it confuses me." #~ msgstr "폴더이름을 \"pan.\"으로 시작하지 마세요; 저를 혼란스럽게 만듭니다." #~ msgid "Create New Folder" #~ msgstr "새 폴더를 만듭니다" #~ msgid "New Folder Name:" #~ msgstr "새 폴더 이름:" #~ msgid "/Get New Headers and _Bodies" #~ msgstr "/새 헤더와 본문 받기(_B)" #~ msgid "/More Download _Options..." #~ msgstr "/추가 내려받기 옵션(_O)..." #~ msgid "/Refresh Article _Counts" #~ msgstr "/기사 갯수 갱신(_C)" #~ msgid "/Group _Properties..." #~ msgstr "/그룹 등록정보(_P)..." #~ msgid " (Moderated)" #~ msgstr " (Moderated)" #~ msgid " (Read-Only)" #~ msgstr " (읽기전용)" #~ msgid "Subscribed" #~ msgstr "받아보는 것" #~ msgid "All Groups" #~ msgstr "모든 그룹" #~ msgid "" #~ "We don't have a list of groups for \"%s\".\n" #~ "Shall we get download it?" #~ msgstr "" #~ "\"%s\"의 그룹 목록이 없습니다.\n" #~ "받을까요?" #~ msgid "Total" #~ msgstr "모두" #~ msgid "Description" #~ msgstr "설명" #~ msgid "" #~ "Type in a group search string and press ENTER. Wildcards are allowed." #~ msgstr "그룹 찾기에 문자열을 치고 엔터를 누르세요. 만능문자도 됩니다." #~ msgid "" #~ msgstr "<더>" #~ msgid "X-Newsreader" #~ msgstr "X-Newsreader" #~ msgid "X-Mailer" #~ msgstr "X-Mailer" #~ msgid "User-Agent" #~ msgstr "User-Agent" #~ msgid "News server connection count: %d" #~ msgstr "뉴스 서버 연결 횟수: %d" #~ msgid "The Task Manager is Empty" #~ msgstr "작업 관리자가 비었습니다" #~ msgid "Pan is Online" #~ msgstr "판이 연결된 상태입니다" #~ msgid "Connection" #~ msgstr "연결" #~ msgid "Post" #~ msgstr "부치기" #~ msgid "Get" #~ msgstr "받기" #~ msgid "Show Only Replies to My Articles" #~ msgstr "내 기사에 대한 답변만 보기" #~ msgid "Show Only Watched Threads" #~ msgstr "지켜보는 쓰레드만 보기" #~ msgid "Net" #~ msgstr "넷" #~ msgid "/_File/_Save Article As..." #~ msgstr "/파일(_F)/...로 기사 저장(_S)" #~ msgid "/_File/Save Article A_ttachments" #~ msgstr "/파일(_F)/기사 첨부 저장(_t)" #~ msgid "/_File/_Cancel Last Task" #~ msgstr "/파일(_F)/마지막 작업 취소(_C)" #~ msgid "/_File/_Print Article..." #~ msgstr "/파일(_F)/기사 인쇄(_P)..." #~ msgid "/_File/_New Folder..." #~ msgstr "/파일(_F)/새 폴더(_N)..." #~ msgid "/_File/Delete _Folder..." #~ msgstr "/파일(_F)/폴더 삭제(_F)..." #~ msgid "/_File/_Edit Article in Folder" #~ msgstr "/파일(_F)/폴더의 기사 편집(_E)" #~ msgid "/_Edit/Select all" #~ msgstr "/편집(_E)/모두 선택" #~ msgid "/_Edit/Deselect all" #~ msgstr "/편집(_E)/모두 선택 해제" #~ msgid "/_Edit/---" #~ msgstr "/편집(_E)/---" #~ msgid "/_Edit/Select all _Groups" #~ msgstr "/편집(_E)/모든 그룹 선택(_G)" #~ msgid "/_Edit/Add S_ubscribed to Selection" #~ msgstr "/편집(_E)/선택에 받아보기 추가(_u)" #~ msgid "/_Edit/Deselect all G_roups" #~ msgstr "/편집(_E)/모든 그룹 선택 해제(_r)" #~ msgid "/_Edit/_Find..." #~ msgstr "/편집(_E)/찾기(_F)..." #~ msgid "/_Edit/Find _Next" #~ msgstr "/편집(_E)/다음 찾기(_N)" #~ msgid "/_View/---" #~ msgstr "/보기(_V)/---" #~ msgid "/_View/Thr_ead Header Pane" #~ msgstr "/보기(_V)/쓰레드 헤더 창(_e)" #~ msgid "/_View/_Rot13 Selected Text" #~ msgstr "/보기(_V)/선택된 텍스트 Rot13(_R)" #~ msgid "/_View/E_xpand Selected Threads" #~ msgstr "/보기(_V)/고른 쓰레드 펴기(_x)" #~ msgid "/_View/C_ollapse Selected Threads" #~ msgstr "/보기(_V)/고른 쓰레드 접기(_o)" #~ msgid "/Filte_r/Show Matching Articles and References" #~ msgstr "/거르개(_r)/맞는 기사와 참조 보기" #~ msgid "/Filte_r/Show Threads with Matching Articles" #~ msgstr "/거르개(_r)/맞는 기사가 있는 쓰레드 보기" #~ msgid "/Filte_r/---" #~ msgstr "/거르개(_r)/---" #~ msgid "/Filte_r/Match _New Articles" #~ msgstr "/거르개(_r)/맞는 새 기사(_N)" #~ msgid "/Filte_r/Match Articles which are _Cached" #~ msgstr "/거르개(_r)/캐쉬된 맞는 기사(_C)" #~ msgid "/Filte_r/Match Articles which are not Cache_d" #~ msgstr "/거르개(_r)/캐쉬되지않은 기사를 보기(_d)" #~ msgid "/Filte_r/Match Articles with Complete _Attachments" #~ msgstr "/거르개(_r)/완전한 첨부를 포함한 맞는 기사(_A)" #~ msgid "/Filte_r/Match Articles with I_ncomplete Attachments" #~ msgstr "/거르개(_r)/불완전한 첨부를 포함한 맞는 기사(_n)" #~ msgid "/Filte_r/Match Articles with No A_ttachments" #~ msgstr "/거르개(_r)/첨부가 없는 맞는 기사(_t)" #~ msgid "/Filte_r/Match Articles Written by _Me" #~ msgstr "/거르개(_r)/본인이 쓴 맞는 기사(_M)" #~ msgid "/Filte_r/Match Articles Written by _Other People" #~ msgstr "/거르개(_r)/다른 사람이 쓴 맞는 기사(_O)" #~ msgid "/Filte_r/Match _Watched Threads" #~ msgstr "/거르개(_r)/지켜보는 맞는 쓰레드(_W)" #~ msgid "/Filte_r/Match _Ignored Threads" #~ msgstr "/거르개(_r)/걸러진 맞는 쓰레드(_I)" #~ msgid "/Filte_r/Match Threads N_either Watched nor Ignored" #~ msgstr "/거르개(_r)/지켜보지도 걸러지지도 않은 쓰레드 보기(_e)" #~ msgid "/_Go/Read More" #~ msgstr "/_Go/더 읽기" #~ msgid "/_Go/---" #~ msgstr "/_Go/---" #~ msgid "/_Go/_Next Unread Article" #~ msgstr "/_Go/다음 안 읽은 기사 보기(_N)" #~ msgid "/_Go/Previous Article _Read" #~ msgstr "/_Go/읽은 이전 기사(_R)" #~ msgid "/_Go/T_op of Thread" #~ msgstr "/_Go/쓰레드의 처음(_o)" #~ msgid "/_Servers" #~ msgstr "/서버(_S)" #~ msgid "/_Servers/Get List of _All Groups" #~ msgstr "/서버(_S)/모든 그룹 목록 받기(_A)" #~ msgid "/_Servers/Get List of _New Groups" #~ msgstr "/서버(_S)/새 그룹 목록 받기(_N)" #~ msgid "/_Servers/---" #~ msgstr "/서버(_S)/---" #~ msgid "/_Newsgroups/Mark Group _Read" #~ msgstr "/뉴스그룹(_N)/그룹을 읽은 것으로 표시(_R)" #~ msgid "/_Newsgroups/_Delete Group's Articles" #~ msgstr "/뉴스그룹(_N)/그룹의 기사 삭제(_D)" #~ msgid "/_Newsgroups/---" #~ msgstr "뉴스그룹(_N)/---" #~ msgid "/_Newsgroups/Get New _Headers" #~ msgstr "/뉴스그룹(_N)/새 헤더 받기(_H)" #~ msgid "/_Newsgroups/Get New Headers and _Bodies" #~ msgstr "/뉴스그룹(_N)/새 헤더와 본문 받기(_B)" #~ msgid "/_Newsgroups/More Download _Options..." #~ msgstr "/뉴스그룹(_N)/추가 내려받기 옵션(_O)..." #~ msgid "/_Newsgroups/Refresh Article _Counts" #~ msgstr "/뉴스그룹(_N)/기사 갯수 갱신(_C)" #~ msgid "/_Newsgroups/Get New Headers in Subscribed _Groups" #~ msgstr "/뉴스그룹(_N)/받아보는 그룹 모두에서 새 헤더 받기(_G)" #~ msgid "/_Newsgroups/_Subscribe" #~ msgstr "/뉴스그룹(_N)/받아보기(_S)" #~ msgid "/_Newsgroups/_Unsubscribe" #~ msgstr "/뉴스그룹(_N)/안받아보기(_U)" #~ msgid "/_Newsgroups/Group _Properties..." #~ msgstr "/뉴스그룹(_N)/그룹 등록정보(_P)..." #~ msgid "/_Newsgroups/Dele_te Group" #~ msgstr "/뉴스그룹(_N)/그룹 삭제(_t)" #~ msgid "/_Articles/Mark _Read" #~ msgstr "/기사(_A)/읽은 걸로 표시(_R)" #~ msgid "/_Articles/Mark _Unread" #~ msgstr "/기사(_A)/안읽은 걸로 표시(_U)" #~ msgid "/_Articles/---" #~ msgstr "/기사(_A)/---" #~ msgid "/_Articles/D_ownload Flagged" #~ msgstr "/기사(_A)/표시된 기사를 내려받기(_o)" #~ msgid "/_Articles/_Flag" #~ msgstr "/기사(_A)/표시(_F)" #~ msgid "/_Articles/U_nflag" #~ msgstr "/기사(_A)/표시 취소(_n)" #~ msgid "/_Articles/Down_load" #~ msgstr "/기사(_A)/내려받기(_l)" #~ msgid "/_Articles/_Watch Thread" #~ msgstr "/기사(_A)/쓰레드 지켜보기(_W)" #~ msgid "/_Articles/_Ignore Thread" #~ msgstr "/기사(_A)/쓰레드 무시(_I)" #~ msgid "/_Articles/Add to Bo_zo or Spam Filter..." #~ msgstr "/기사(_A)/저자를 Bozo나 스팸 거르개에 추가(_z)..." #~ msgid "/_Articles/_Cancel..." #~ msgstr "/기사(_A)/취소(_C)..." #~ msgid "/_Articles/_Supersede..." #~ msgstr "/기사(_A)/폐기(_S)..." #~ msgid "/_Articles/_Delete" #~ msgstr "/기사(_A)/삭제(_D)" #~ msgid "/_Post/_Post to Newsgroup" #~ msgstr "/부치기(_P)/뉴스그룹에 부치기(_P)" #~ msgid "/_Post/_Reply by Email" #~ msgstr "/부치기(_P)/메일로 답장(_R)" #~ msgid "/_Post/Followup _and Reply" #~ msgstr "/부치기(_P)/따라올리고 답장(_a)" #~ msgid "/_Post/For_ward Article by Email" #~ msgstr "/부치기(_P)/기사를 메일로 전달(_w)" #~ msgid "/_Post/---" #~ msgstr "/부치기(_P)/---" #~ msgid "/_Post/Send Pending _Messages" #~ msgstr "/부치기(_P)/보내려던 메시지 지금 보내기(_M)" #~ msgid "/_Tools" #~ msgstr "/도구(_T)" #~ msgid "/_Tools/---" #~ msgstr "/도구(_T)/---" #~ msgid "/_Tools/Custom _Filters..." #~ msgstr "/도구(_T)/사용자 거르개(_F)..." #~ msgid "/_Tools/_Rules..." #~ msgstr "/도구(_T)/규칙(_R)..." #~ msgid "/_Tools/_Log Viewer..." #~ msgstr "/도구(_T)/기록 보기(_L)..." #~ msgid "/_Help" #~ msgstr "/도움말(_H)" #~ msgid "/_Help/Online Users` _Manual..." #~ msgstr "/도움말(_H)/온라인 사용자 매뉴얼(_M)..." #~ msgid "/_Help/---" #~ msgstr "/도움말(_H)/---" #~ msgid "/_Help/_Feedback..." #~ msgstr "/도움말(_H)/피드백(_F)..." #~ msgid "Make this the default profile for _news" #~ msgstr "이것을 뉴스의 기본 프로필로 만듭니다(_n)" #~ msgid "Make this the default profile for _mail" #~ msgstr "이것을 편지의 기본 프로필로 만듭니다(_m)" #~ msgid "The domain name to use for Message-ID generation" #~ msgstr "메시지 번호 생성에 사용할 도메인 이름" #~ msgid "Pan: Edit Profile" #~ msgstr "판: 프로필 편집" #~ msgid "_User Profile" #~ msgstr "사용자 프로필(_U)" #~ msgid "Cus_tom Headers" #~ msgstr "사용자 헤더(_t)" #~ msgid "" #~ "Your real name contained double quotes.\n" #~ "Converting into single quotes." #~ msgstr "" #~ "이름이 쌍따옴표를 포함하고 있습니다.\n" #~ "따옴표로 바꿉니다." #~ msgid "You need at least one profile" #~ msgstr "적어도 하나의 프로필이 필요합니다" #~ msgid "Incomplete Profile." #~ msgstr "미완성 프로필" #~ msgid "Use the selected profile to create a new profile" #~ msgstr "새 프로필을 생성하기 위해 선택한 프로필 사용" #~ msgid "Wrote profiles to \"%s\"" #~ msgstr "\"%s\"에 프로필을 기록하였습니다" #~ msgid "Post anyway, despite these problems?" #~ msgstr "이 경고들을 무시하고, 그냥 부치시겠습니까?" #~ msgid "Post anyway, despite this problem?" #~ msgstr "이 문제에도 불구하고 그냥 부치시겠습니까?" #~ msgid "/_File/_Save Changes" #~ msgstr "/파일(_F)/바뀐 내용 저장(_S)" #~ msgid "/_File/Save _As..." #~ msgstr "/파일(_F)/...로 저장(_A)" #~ msgid "/_Edit/Cu_t" #~ msgstr "/편집(_E)/잘라내기(_t)" #~ msgid "/_Edit/_Copy" #~ msgstr "/편집(_E)/복사(_C)" #~ msgid "/_Edit/_Paste" #~ msgstr "/편집(_E)/붙여 넣기(_P)" #~ msgid "/_Edit/_Rot13 Selected Text" #~ msgstr "/편집(_E)/선택된 텍스트 Rot13(_R)" #~ msgid "/_Edit/Edit with E_xternal Editor" #~ msgstr "/편집(_E)/외부 편집기로 편집(_x)" #~ msgid "/_File/Send Now" #~ msgstr "/파일(_F)/지금 보내기" #~ msgid "/_File/Send Later" #~ msgstr "/파일(_F)/나중에 보내기" #~ msgid "Send Later" #~ msgstr "나중에 보내기" #~ msgid "Turn line wrap on/off" #~ msgstr "라인 줄바꿈 허용 켜기/끄기" #~ msgid "Edit with an External Editor" #~ msgstr "외부 편집기로 편집" #~ msgid " (%lu lines in 1 article)" #~ msgstr " (%lu 라인 / 1 기사)" #~ msgid "Select the file to attach." #~ msgstr "첨부할 파일을 선택하세요." #~ msgid "Files to Attach" #~ msgstr "첨부할 파일" #~ msgid "Kilobytes" #~ msgstr "Kilobytes" #~ msgid "Add a File to the Attachment List" #~ msgstr "첨부 목록에 파일 추가" #~ msgid "Remove a File from the Attachment List" #~ msgstr "첨부 목록에서 파일 삭제" #~ msgid "Estimated Article Size" #~ msgstr "추측된 기사 크기" #~ msgid "Organization" #~ msgstr "소속" #~ msgid "The organization you're associated with." #~ msgstr "당신이 소속된 단체." #~ msgid "" #~ "Could not convert \"%s\" to UTF-8. Article may not display correctly." #~ msgstr "" #~ "\"%s\"을(를) UTF-8로 바꿀 수 없습니다. 기사가 제대로 표시되지 않을 것입니" #~ "다." #~ msgid "\"Followup-To: poster\": sending email to author." #~ msgstr "\"따라올리기: poster\"; 보낸이에게 메일을 보냅니다." #~ msgid "\"Followup-To:\" contains an email address: sending email to author." #~ msgstr "\"따라올리기:\"에 메일주소가 있습니다: 보낸이에게 메일을 보냅니다." #~ msgid "New Message" #~ msgstr "새 메시지" #~ msgid "" #~ "ERROR: message uses characters not specified in charset '%s' - possibly " #~ "use '%s' instead?" #~ msgstr "" #~ "에러: 메시지가 문자셋 '%s'에 없는 문자들을 사용하고 있습니다 - 대신 " #~ "'%s'를 사용할까요?" #~ msgid "Save message to file" #~ msgstr "메시지를 파일에 저장합니다" #~ msgid "The command line was: %s" #~ msgstr "명령행 라인은: %s" #~ msgid "Handshake: %s" #~ msgstr "핸드쉐이크: %s" #~ msgid "NNTP handshake failed: %s" #~ msgstr "NNTP 핸드쉐이크 실패: %s" #~ msgid "Handshake failed: %s" #~ msgstr "핸드쉐이크 실패: %s" #~ msgid "Authentication failed: bad handshake for SPA password" #~ msgstr "인증 실패: SPA 비밀번호에 대한 잘못된 핸드쉐이크" #~ msgid "Bad SPA handshake: %s" #~ msgstr "잘못된 SPA 핸드쉐이크: %s" #~ msgid "Authentication failed: need a password" #~ msgstr "인증 실패: 비밀번호가 필요합니다" #~ msgid "Authentication failed: %s" #~ msgstr "인증 실패: %s" #~ msgid "Unsupported authentication mechanism: %s" #~ msgstr "지원하지 않는 인증 메카니즘: %s" #~ msgid "No supported authentication mechanism" #~ msgstr "지원하지 않는 인증 메카니즘" #~ msgid "MODE READER check failed: %s" #~ msgstr "MODE READER 확인 실패: %s" #~ msgid "Posting failed. Server said: %s" #~ msgstr "투고 실패. 서버 말하길: %s" #~ msgid "Posting complete. Server said: %s" #~ msgstr "투고 완료. 서버 말하길: %s" #~ msgid "\"stay connected\" sent to %s" #~ msgstr "\"stay connected\"를 %s로 보냈습니다" #~ msgid "No articles found for group \"%s\"" #~ msgstr "\"%s\" 그룹에 기사가 없습니다" #~ msgid "Getting header list failed: %s" #~ msgstr "헤더 목록 받기가 실패했습니다: %s" #~ msgid "Corrupt header skipped: %s" #~ msgstr "부서진 헤더 건너뜀: %s" #~ msgid "Getting %d of %d" #~ msgstr "%d / %d를 받습니다" #~ msgid "Select Color" #~ msgstr "색상 선택" #~ msgid "_Browse..." #~ msgstr "브라우즈(_B)..." #~ msgid "Font Family" #~ msgstr "글꼴 패밀리" #~ msgid "" #~ "\n" #~ "\n" #~ " --version Prints Pan's version number\n" #~ " --help Prints this message and exits\n" #~ " --debug Turns on the most commonly-useful options for a bug " #~ "report\n" #~ "\n" #~ " --mute Debugging tool to send new posts to console, not the " #~ "server\n" #~ " --debug-cache Print debugging messages for the article cache\n" #~ " --debug-sockets Print debugging messages when talking to the news " #~ "server\n" #~ " --debug-queue Print debugging messages related to managing tasks\n" #~ " --debug-decode Print debugging messages related to decoding " #~ "attachments\n" #~ " --debug-newsrc Print debugging messages related to .newsrc files\n" #~ " --debug-gnksa Print debugging messages related to gnksa correctness\n" #~ " --debug-trace Print debugging messages when entering/leaving " #~ "functions\n" #~ " --debug-lock Print debugging messages related to threaded gui " #~ "locks\n" #~ " --debug-object Print debugging messages related to refcounted " #~ "objects\n" #~ "\n" #~ msgstr "" #~ "\n" #~ "\n" #~ " --version 판의 버전 번호 출력\n" #~ " --help 이 메시지 출력 후 종료\n" #~ " --debug 버그 레포트를 위해 대부분의 유용한 옵션들을 켬\n" #~ "\n" #~ " --mute 새 메시지를 서버로 보내지 않고 콘솔로 보냄\n" #~ " --debug-cache 기사 캐쉬에 대한 디버깅 메시지 출력\n" #~ " --debug-sockets 새 서버와의 통신 내용에 대한 디버깅 메시지 출력\n" #~ " --debug-queue 작업 관리와 관련된 디버깅 메시지 출력\n" #~ " --debug-decode 첨부 해독과 관련된 디버깅 메시지 출력\n" #~ " --debug-newsrc .newsrc 파일과 관련된 디버깅 메시지 출력\n" #~ " --debug-gnksa gnksa와 관련된 디버깅 메시지 출력\n" #~ " --debug-trace 불려지는 함수들에 대한 디버깅 메시지 출력\n" #~ " --debug-lock 쓰레드 GUI 잠금과 관련된 디버깅 메시지 출력\n" #~ " --debug-object 참조 카운터를 가진 오브젝트와 관련된 디버깅 메시지 출" #~ "력\n" #~ "\n" #~ msgid "Error writing to socket." #~ msgstr "소켓에 쓰다가 오류가 났습니다." #~ msgid "pan.sent" #~ msgstr "pan.sent" #~ msgid "pan.sendlater" #~ msgstr "pan.sendlater" #~ msgid "Spellchecking disabled: gtkspell_init() failed with status %d" #~ msgstr "" #~ "철자검사를 하지 않습니다: gtkspell_init()이 상태 %d(으)로 실패했습니다" #~ msgid "Restored %d tasks from \"%s\"" #~ msgstr "%d 작업이 \"%s\"에서 복구되었습니다" #~ msgid "" #~ "Pan appears to have crashed or been killed the last time it was run. Do " #~ "you want to revert to the last session's task list?" #~ msgstr "" #~ "판이 지난 번에 비정상적으로 종료되었던 것으로 보입니다. 마지막 세션의 작업" #~ "목록으로 되돌릴까요?" #~ msgid "" #~ "%a - abbreviated weekday name\n" #~ "%A - full weekday name\n" #~ "%b - abbreviated month name\n" #~ "%B - full month name\n" #~ "%c - local date & time\n" #~ "%d - day of the month\n" #~ "%H - hour (24-hour clock)\n" #~ "%I - hour (12-hour clock)\n" #~ "%j - day of the year (001-366)\n" #~ "%m - month (01-12)\n" #~ "%M - minute (00-59)\n" #~ "%p - local equivalent of AM/PM\n" #~ "%S - second (00-61)\n" #~ "%x - local date\n" #~ "%X - local time\n" #~ "%y - two-digit year\n" #~ "%Y - four-digit year\n" #~ "%% - %" #~ msgstr "" #~ "%a - 짧은 요일 이름\n" #~ "%A - 긴 요일 이름\n" #~ "%b - 짧은 월 이름\n" #~ "%B - 긴 월 이름\n" #~ "%c - 지역 날짜 및 시간\n" #~ "%d - day of the month\n" #~ "%H - 시간 (24-시간 형식)\n" #~ "%I - 시간 (12-시간 형식)\n" #~ "%j - day of the year (001-366)\n" #~ "%m - 월 (01-12)\n" #~ "%M - 분 (00-59)\n" #~ "%p - local equivalent of AM/PM\n" #~ "%S - 초 (00-61)\n" #~ "%x - 지역 날짜\n" #~ "%X - 지역 시간\n" #~ "%y - two-digit year\n" #~ "%Y - four-digit year\n" #~ "%% - %" #~ msgid "Download new headers from _subscribed groups when starting Pan" #~ msgstr "판을 시작할 때 구독하는 그룹에서 새 헤더 내려받기(_s)" #~ msgid "" #~ "Download new headers and bod_ies from subscribed groups when starting Pan" #~ msgstr "판을 시작할 때 구독하는 그룹에서 새 헤더와 본문 내려받기(_i)" #~ msgid "Download Directory" #~ msgstr "내려받기 디렉토리" #~ msgid "Automatically remove _failed tasks from the task manager" #~ msgstr "작업 관리자에서 실패한 작업을 자동으로 삭제(_f)" #~ msgid "When a _Followup subject header changes, show as new thread" #~ msgstr "따라올린 기사 제목이 바뀐 경우 새 쓰레드로 표시(_F)" #~ msgid "E_xpand all threads by default" #~ msgstr "기본적으로 모든 쓰레드 펴기(_x)" #~ msgid "_Date Format:" #~ msgstr "날짜 형식(_D):" #~ msgid "Show \"%s\" header" #~ msgstr "\"%s\" 헤더 보기" #~ msgid "Newsreader" #~ msgstr "뉴스리더" #~ msgid "Message _Body:" #~ msgstr "메시지 본문(_B):" #~ msgid "Message Body (_Monospace):" #~ msgstr "메시지 본문 (Monospace)(_M):" #~ msgid "Quoted Text _2:" #~ msgstr "인용문 2(_2):" #~ msgid "E_ditor (%t is filename):" #~ msgstr "편집기 (%t은(는) 파일명)(_d):" #~ msgid "Pane Order" #~ msgstr "창 순서" #~ msgid "Ma_ximum Cache Size (Megs):" #~ msgstr "최대 캐쉬 크기 (Megs)(_x):" #~ msgid "_Flush cache when exiting Pan" #~ msgstr "판을 마칠 때 캐쉬 지우기(_F)" #~ msgid "Sending Mail" #~ msgstr "편지를 보냅니다" #~ msgid "Mail Server A_ddress:" #~ msgstr "편지 서버 주소(_d):" #~ msgid "Ma_il Server Port:" #~ msgstr "편지 서버 포트(_i):" #~ msgid "Appea_rance" #~ msgstr "모양(_r)" #~ msgid "Displa_y" #~ msgstr "표시(_y)" #~ msgid "_Downloads" #~ msgstr "내려받기(_D)" #~ msgid "Cach_e" #~ msgstr "캐쉬(_e)" #~ msgid "You haven't loaded an article to print." #~ msgstr "출력할 기사를 읽지 않았습니다." #~ msgid "" #~ "%s\n" #~ "\n" #~ "Matches: %u\n" #~ "Group: %s\n" #~ "Rule: %s" #~ msgstr "" #~ "%s\n" #~ "\n" #~ "맞음: %u\n" #~ "그룹: %s\n" #~ "규칙: %s" #~ msgid "Mark as" #~ msgstr "Mark as" #~ msgid "_Flag body for download" #~ msgstr "내려받기 위해 본문 표시(_F)" #~ msgid "_Retrieve Body" #~ msgstr "본문 받아오기(_R)" #~ msgid "_Watch thread (highlights the thread)" #~ msgstr "쓰레드 감시(_W) (쓰레드 강조)" #~ msgid "_Ignore thread (hides the thread by default)" #~ msgstr "쓰레드 무시(_I) (기본적으로 쓰레드 숨김)" #~ msgid "Rule applies to all newsgroups" #~ msgstr "규칙을 모든 뉴스그룹에 적용" #~ msgid "Wildcard group specification:" #~ msgstr "와일드카드 그룹 명시:" #~ msgid "(e.g., *anime*)" #~ msgstr "(가령, *anime*)" #~ msgid "Rule applies to specific newsgroups:" #~ msgstr "규칙을 특정 뉴스그룹에 적용" #~ msgid "Rule applies to:" #~ msgstr "...에 규칙 적용:" #~ msgid "Rule Name:" #~ msgstr "규칙 이름:" #~ msgid "" #~ "If enabled, this rule will be applied to headers when they are downloaded." #~ msgstr "사용될 경우 이 규칙이 내려받아질 헤더에 적용될 겁니다." #~ msgid "Delete Articles by Bozos" #~ msgstr "Bozo로 기사 삭제" #~ msgid "Applying rule to selected groups" #~ msgstr "고른 그룹에 규칙 적용" #~ msgid "Applying rule \"%s\" to group \"%s\"" #~ msgstr "\"%s\" 규칙을 \"%s\" 그룹에 적용합니다" #~ msgid "Pan: Rules" #~ msgstr "판: 규칙" #~ msgid "Rules" #~ msgstr "규칙" #~ msgid "Hit Ratio" #~ msgstr "히트 비율" #~ msgid "" #~ "Apply to\n" #~ "Selected\n" #~ "Groups" #~ msgstr "" #~ "선택된\n" #~ "그룹에\n" #~ "적용" #~ msgid "" #~ "Apply to\n" #~ "Subscribed\n" #~ "Groups" #~ msgstr "" #~ "받아보는\n" #~ "그룹에\n" #~ "적용" #~ msgid "Wrote rules to \"%s\"" #~ msgstr "규칙이 \"%s\"에 기록되었습니다" #~ msgid "Save Article _Attachments" #~ msgstr "기사 첨부 저장(_A)" #~ msgid "_Directory:" #~ msgstr "디렉토리(_D):" #~ msgid "Save Files in Directory" #~ msgstr "디렉토리에 파일 저장" #~ msgid "Add to the _top of the Task Manager's List" #~ msgstr "작업 관리 목록의 처음에 작업 추가(_t)" #~ msgid "Newsrc" #~ msgstr "Newsrc" #~ msgid "Us_e .newsrc file" #~ msgstr ".newsrc 파일 사용(_e)" #~ msgid "_Filename:" #~ msgstr "파일명(_F):" #~ msgid "Select .newsrc File" #~ msgstr ".newsrc 파일 선택" #~ msgid "Edit the selected server" #~ msgstr "고른 서버를 편집합니다" #~ msgid "Remove the selected server" #~ msgstr "고른 서버를 삭제합니다" #~ msgid "Got unexpected response from mail server: expected %d; got %s" #~ msgstr "메일 서버에서 원하지 않는 응답을 받음: %d 원하는 데 %s 받음" #~ msgid "Sending mail" #~ msgstr "메일을 보냅니다" #~ msgid "No known recipients" #~ msgstr "받는이가 없습니다" #~ msgid "Mail sent!" #~ msgstr "메일을 보냈습니다!" #~ msgid "Handshaking with mail server" #~ msgstr "메일 서버와 교신하고 있습니다" #~ msgid "Connecting to mail server" #~ msgstr "메일 서버에 연결합니다" #~ msgid "Mail server not ready" #~ msgstr "메일 서버가 준비되지 않았습니다" #~ msgid "Sending Keepalive" #~ msgstr "Keepalive를 보냅니다" #~ msgid "Disconnecting Idle" #~ msgstr "아무 일 없는 연결 끊는중" #~ msgid "Disconnecting one connection from `%s' after %d seconds idle" #~ msgstr "%s에서 %d 초 동안 아무 일 없는 경우 연결 끊기" #~ msgid "Connection to %s, port %d failed: %s" #~ msgstr "%s 포트 %d로의 연결 실패: %s" #~ msgid "Downloading %d" #~ msgstr "%d 기사를 내려받습니다" #~ msgid "\"%s\"" #~ msgstr "\"%s\"" #~ msgid "Downloading %u articles" #~ msgstr "%u 기사를 내려받습니다" #~ msgid "Article %s (%s) canceled" #~ msgstr "기사 %s (%s)가 취소되었습니다" #~ msgid "Updating article counts for %u groups from server \"%s\"" #~ msgstr "%u 그룹의 기사갯수를 \"%s\" 서버에서 받고 있습니다" #~ msgid "Unable to update counts for group \"%s\"" #~ msgstr "\"%s\" 그룹의 갯수를 갱신할 수 없습니다" #~ msgid "Getting all groups from server \"%s\"" #~ msgstr "모든 그룹을 \"%s\" 서버에서 받습니다" #~ msgid "Adding groups to server \"%s\"" #~ msgstr "\"%s\" 서버에 그룹을 더합니다" #~ msgid "List Newsgroups failed: %s" #~ msgstr "뉴스그룹 목록표시 실패: %s" #~ msgid "Got %d descriptions from server \"%s\"" #~ msgstr "%d 설명을 \"%s\" 서버에서 받았습니다" #~ msgid "New groups retrieval failed: %s" #~ msgstr "새 그룹 받기 실패: %s" #~ msgid "No new articles in group \"%s\"" #~ msgstr "\"%s\" 그룹에 새 기사가 없습니다" #~ msgid "Not Queued" #~ msgstr "예약 안됨" #~ msgid "Stopping" #~ msgstr "멈추는 중" #~ msgid "Pan %s Task Manager" #~ msgstr "판 %s 작업 관리자" #~ msgid "Move Selected Task(s) Up" #~ msgstr "고른 작업 위로 옮김" #~ msgid "Move Selected Task(s) to Top" #~ msgstr "고른 작업 맨위로 옮김" #~ msgid "Move Selected Task(s) Down" #~ msgstr "고른 작업 아래로 옮김" #~ msgid "Stop Selected Task(s)" #~ msgstr "고른 작업 멈춤" #~ msgid "Delete Selected Task(s)" #~ msgstr "고른 작업 삭제" #~ msgid "Time Remaining" #~ msgstr "남은 시간" #~ msgid "[This is an email copy of a Usenet post to \"%s\"]" #~ msgstr "[이건 \"%s\"에 부쳐진 유즈넷의 복사본 메일입니다]" #~ msgid "Email \"%s\" sent." #~ msgstr "전자메일 \"%s\"을(를) 보냈습니다." #~ msgid "Email \"%s\" not sent." #~ msgstr "전자메일 \"%s\"을(를) 못 보냈습니다." #~ msgid "Article \"%s\" posted." #~ msgstr "기사 \"%s\"을(를) 부쳤습니다." #~ msgid "Article \"%s\" not posted." #~ msgstr "기사 \"%s\"을(를) 못 부쳤습니다." #~ msgid "Posting and mailing article \"%s\"" #~ msgstr "기사 \"%s\"을(를) 투고 및 메일로 보냅니다" #~ msgid "Mailing article \"%s\"" #~ msgstr "기사 \"%s\"을(를) 편지로 보냅니다" #~ msgid "Email send failed.\n" #~ msgstr "메일을 보내지 못했습니다.\n" #~ msgid "Usenet posting failed.\n" #~ msgstr "유즈넷에 부치지 못했습니다.\n" #~ msgid "Check Tools|Log Viewer for more information.\n" #~ msgstr "더 많은 정보를 얻으시려면 도구|기록 보기를 확인하세요.\n" #~ msgid "Your message was saved in the folder \"pan.sendlater\"" #~ msgstr "메시지가 폴더 \"pan.sendlater\"에 저장되었습니다" #~ msgid "Saving `%s'" #~ msgstr "`%s'을(를) 저장합니다" #~ msgid "Save Article can't access path \"%s\"" #~ msgstr "기사저장이 경로 \"%s\"에 접근할 수 없습니다" #~ msgid "Saved article body to \"%s\"" #~ msgstr "\"%s\"에 기사 본문을 저장했습니다" pan-0.162/po/lt.po000066400000000000000000004526571475412772400137350ustar00rootroot00000000000000# Lithuanian translation of pan # Copyright (C) 2000 Free Software Foundation, Inc. # Gediminas Paulauskas , 2000-2001. # msgid "" msgstr "" "Project-Id-Version: pan 0.9.3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-04-04 20:58+0200\n" "PO-Revision-Date: 2002-04-29 11:43+0800\n" "Last-Translator: Gediminas Paulauskas \n" "Language-Team: Lithuanian \n" "Language: lt\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../pan.desktop.in.h:1 #, fuzzy msgid "Pan Newsreader" msgstr "Pimp Ass Naujienų skaityklė" #: ../pan.desktop.in.h:2 #, fuzzy msgid "Read and Post Usenet Articles" msgstr "Pažymėtus laiškus" #: ../pan/data/article-cache.cc:143 ../pan/data/encode-cache.cc:62 #, fuzzy, c-format msgid "Error opening directory: \"%s\": %s" msgstr "Klaida skaitant iš lizdo." #: ../pan/data/article-cache.cc:231 ../pan/data/article-cache.cc:242 #: ../pan/data-impl/data-io.cc:187 ../pan/data-impl/data-io.cc:211 #: ../pan/gui/post-ui.cc:1639 #, fuzzy, c-format msgid "Unable to save \"%s\" %s" msgstr "Negaliu nurodyti grupės: %s" #: ../pan/data/article-cache.cc:355 #, fuzzy, c-format msgid "Error opening file \"%s\" %s" msgstr "Klaida skaitant iš lizdo." #: ../pan/data/article-cache.cc:386 ../pan/data-impl/profiles.cc:174 #: ../pan/data-impl/server.cc:436 ../pan/general/file-util.cc:298 #: ../pan/gui/post-ui.cc:609 ../pan/gui/task-pane.cc:691 #, fuzzy, c-format msgid "Error reading file \"%s\": %s" msgstr "Klaida skaitant iš lizdo." #: ../pan/data/cert-store.cc:238 #, fuzzy, c-format msgid "Error opening SSL certificate directory: \"%s\": %s" msgstr "Klaida skaitant iš lizdo." #: ../pan/data/cert-store.cc:270 #, c-format msgid "Succesfully added %d SSL PEM certificate(s) to Certificate Store." msgstr "" #. load_group_descriptions (*_data_io); #: ../pan/data-impl/data-impl.cc:109 #, c-format msgid "Loaded data backend in %.1f seconds" msgstr "" #: ../pan/data-impl/data-impl.cc:140 msgid "Pan newsreader server passwords" msgstr "" #: ../pan/data-impl/groups.cc:94 #, fuzzy, c-format msgid "Skipping newsrc file for server \"%s\"" msgstr "Prisijungti dėl serverio „%s“?" #: ../pan/data-impl/headers.cc:606 #, fuzzy, c-format msgid "Expired %lu old articles from \"%s\"" msgstr "Ištrinti %d laiškai iš grupės %s" #: ../pan/data-impl/headers.cc:613 #, fuzzy, c-format msgid "" "Unsupported data version for %s headers: %d.\n" "Are you running an old version of Pan by accident?" msgstr "Nepalaikoma duomenų versija %s antraštėse: %d" #: ../pan/data-impl/headers.cc:628 #, fuzzy, c-format msgid "Loaded %lu articles for \"%s\" in %.1f seconds (%.0f per second)" msgstr "Išsaugoti %d laiškai per %.1f sekundes (%.0f laiškų/s)" #: ../pan/data-impl/headers.cc:857 #, fuzzy, c-format msgid "" "Saved %lu parts, %lu articles in \"%s\" in %.1f seconds (%.0f articles/sec)" msgstr "Išsaugoti %d laiškai per %.1f sekundes (%.0f laiškų/s)" #: ../pan/data-impl/headers.cc:1173 #, fuzzy, c-format msgid "Added %lu articles to %s." msgstr "Ištrinti %d laiškai iš grupės %s" #: ../pan/data-impl/server.cc:234 #, c-format msgid "There seems to be no Password set for Server %s." msgstr "" #: ../pan/data-impl/server.cc:238 msgid "The Gnome keyring denied access to the Passwords." msgstr "" #: ../pan/data-impl/xover.cc:239 #, fuzzy, c-format msgid "Error reading from %s: unknown group \"%s\"" msgstr "Klaida skaitant iš lizdo." #. build the locale strings #: ../pan/general/e-util.cc:213 msgid "%l:%M %p" msgstr "" #: ../pan/general/e-util.cc:214 msgid "Today %l:%M %p" msgstr "" #: ../pan/general/e-util.cc:215 msgid "%a %l:%M %p" msgstr "" #: ../pan/general/e-util.cc:216 msgid "%b %d %l:%M %p" msgstr "" #: ../pan/general/e-util.cc:217 msgid "%b %d %Y" msgstr "" #: ../pan/general/e-util.cc:242 msgid "?" msgstr "?" #: ../pan/general/text-match.cc:193 #, fuzzy, c-format msgid "Can't use regular expression \"%s\": %s" msgstr "Nepavyko sukurti katalogo „%s“: %s" #: ../pan/general/utf8-utils.cc:213 msgid "Couldn't determine article encoding. Non-UTF8 characters were removed." msgstr "" #: ../pan/gui/actions.cc:274 ../pan/gui/post-ui.cc:417 #, fuzzy msgid "_File" msgstr "Nepavyko" #: ../pan/gui/actions.cc:275 ../pan/gui/post-ui.cc:418 msgid "_Edit" msgstr "_Keisti" #: ../pan/gui/actions.cc:276 ../pan/gui/prefs-ui.cc:1064 #, fuzzy msgid "_Layout" msgstr "Išdėstymas" #: ../pan/gui/actions.cc:277 #, fuzzy msgid "_Group Pane" msgstr "Grupių sąrašo skydelis" #: ../pan/gui/actions.cc:278 #, fuzzy msgid "_Header Pane" msgstr "Gijų skydelis" #: ../pan/gui/actions.cc:279 msgid "_Body Pane" msgstr "" #: ../pan/gui/actions.cc:280 #, fuzzy msgid "_View" msgstr "_Rodinys" #: ../pan/gui/actions.cc:281 #, fuzzy msgid "Filte_r" msgstr "Filtras" #: ../pan/gui/actions.cc:282 #, fuzzy msgid "_Go" msgstr "_Grupė" #: ../pan/gui/actions.cc:283 ../pan/gui/prefs-ui.cc:1091 #, fuzzy msgid "_Actions" msgstr "Veiksmai" #: ../pan/gui/actions.cc:284 #, fuzzy msgid "_Articles" msgstr "Laiškai" #: ../pan/gui/actions.cc:285 #, fuzzy msgid "G_roups" msgstr "Grupės" #: ../pan/gui/actions.cc:286 ../pan/gui/actions.cc:287 #, fuzzy msgid "_Post" msgstr "_Rašymas" #: ../pan/gui/actions.cc:288 msgid "_Help" msgstr "" #: ../pan/gui/actions.cc:291 #, fuzzy msgid "_Read Group" msgstr "Įkeliamos grupės" #: ../pan/gui/actions.cc:292 #, fuzzy msgid "Read Group" msgstr "Įkeliamos grupės" #: ../pan/gui/actions.cc:296 #, fuzzy msgid "_Mark Selected Groups Read" msgstr "Pažymėtą grupę pažymėti skaityta" #: ../pan/gui/actions.cc:297 #, fuzzy msgid "Mark Selected Groups Read" msgstr "Pažymėtą grupę pažymėti skaityta" #: ../pan/gui/actions.cc:301 #, fuzzy msgid "_Delete Selected Groups' Articles" msgstr "Ištrinti senus laiškus" #: ../pan/gui/actions.cc:302 #, fuzzy msgid "Delete Selected Groups' Articles" msgstr "Ištrinti senus laiškus" #: ../pan/gui/actions.cc:306 #, fuzzy msgid "Get New _Headers in Selected Groups" msgstr "Gauti visas antraštes iš pažymėtų grupių" #: ../pan/gui/actions.cc:307 #, fuzzy msgid "Get New Headers in Selected Groups" msgstr "Gauti visas antraštes iš pažymėtų grupių" #: ../pan/gui/actions.cc:311 ../pan/gui/actions.cc:316 #, fuzzy msgid "Get New _Headers in Subscribed Groups" msgstr "Gauti naujas antraštes ir tekstus iš pažymėtų grupių" #: ../pan/gui/actions.cc:312 ../pan/gui/actions.cc:317 #, fuzzy msgid "Get New Headers in Subscribed Groups" msgstr "Gauti naujas antraštes ir tekstus iš pažymėtų grupių" #: ../pan/gui/actions.cc:321 #, fuzzy msgid "Get _Headers..." msgstr "Parsiųsti naujas antraštes" #: ../pan/gui/actions.cc:322 #, fuzzy msgid "Get Headers..." msgstr "Parsiųsti naujas antraštes" #: ../pan/gui/actions.cc:326 ../pan/gui/actions.cc:327 #, fuzzy msgid "Refresh Group List" msgstr "Pervadinti grupę „%s“" #: ../pan/gui/actions.cc:331 #, fuzzy msgid "_Subscribe" msgstr "Užsisakyti" #: ../pan/gui/actions.cc:332 #, fuzzy msgid "Subscribe" msgstr "Užsisakyti" #: ../pan/gui/actions.cc:336 #, fuzzy msgid "_Unsubscribe" msgstr "Atsisakyti" #: ../pan/gui/actions.cc:337 #, fuzzy msgid "Unsubscribe" msgstr "Atsisakyti" #: ../pan/gui/actions.cc:341 #, fuzzy msgid "_Save Articles..." msgstr "Iš_saugoti laišką kaip..." #: ../pan/gui/actions.cc:342 #, fuzzy msgid "Save Articles..." msgstr "Iš_saugoti laišką kaip..." #: ../pan/gui/actions.cc:346 #, fuzzy msgid "Save Articles from Selected _NZB..." msgstr "Iš_saugoti laišką kaip..." #: ../pan/gui/actions.cc:347 #, fuzzy msgid "Save Articles from Selected NZB" msgstr "Išsaugoti priedą kaip" #: ../pan/gui/actions.cc:351 #, fuzzy msgid "Save Articles to an NZB _File..." msgstr "Iš_saugoti laišką kaip..." #: ../pan/gui/actions.cc:352 #, fuzzy msgid "Save Articles to an NZB File" msgstr "Išsaugoti šį logą į bylą." #: ../pan/gui/actions.cc:356 ../pan/gui/actions.cc:357 #, fuzzy msgid "Print" msgstr "Spausdinti" #: ../pan/gui/actions.cc:361 msgid "_Import NZB Files..." msgstr "" #: ../pan/gui/actions.cc:366 #, fuzzy msgid "_Cancel Last Task" msgstr "Nutraukti pažymėtas užduotis" #: ../pan/gui/actions.cc:371 #, fuzzy msgid "_Task Manager" msgstr "_Užduočių tvarkyklė" #: ../pan/gui/actions.cc:376 #, fuzzy msgid "_Event Log" msgstr "Atidaryti Užduočių tvarkyklę" #: ../pan/gui/actions.cc:381 #, fuzzy msgid "_Quit" msgstr "_Keisti" #: ../pan/gui/actions.cc:386 #, fuzzy msgid "Select _All Articles" msgstr "Pažymėtus laiškus" #: ../pan/gui/actions.cc:391 #, fuzzy msgid "_Deselect All Articles" msgstr "Pažymėti visus laiškus" #: ../pan/gui/actions.cc:396 msgid "Add Su_bthreads to Selection" msgstr "" #: ../pan/gui/actions.cc:401 msgid "Add _Threads to Selection" msgstr "" #: ../pan/gui/actions.cc:406 msgid "Add _Similar Articles to Selection" msgstr "" #: ../pan/gui/actions.cc:411 #, fuzzy msgid "Select Article _Body" msgstr "Taisyti pažymėtą laišką" #: ../pan/gui/actions.cc:416 #, fuzzy msgid "Edit _Preferences" msgstr "Pan: Nuostatos" #: ../pan/gui/actions.cc:421 #, fuzzy msgid "Edit Selected _Group's Preferences" msgstr "Pan: Nuostatos" #: ../pan/gui/actions.cc:426 ../pan/gui/post-ui.cc:434 #, fuzzy msgid "Edit P_osting Profiles" msgstr "Skelbiamas laiškas „%s“" #: ../pan/gui/actions.cc:431 #, fuzzy msgid "Edit _News Servers" msgstr "Naujienų serverio vardas" #: ../pan/gui/actions.cc:436 msgid "Jump to _Group Tab" msgstr "" #: ../pan/gui/actions.cc:441 #, fuzzy msgid "Jump to _Header Tab" msgstr "Papildomos antraštės" #: ../pan/gui/actions.cc:446 #, fuzzy msgid "Jump to _Body Tab" msgstr "Papildomos antraštės" #: ../pan/gui/actions.cc:451 #, fuzzy msgid "_Rot13 Selected Text" msgstr "Pritaikyti Rot13 kodavimą pažymėtam tekstui" #: ../pan/gui/actions.cc:456 #, fuzzy msgid "Clear _Header Pane" msgstr "Gijų skydelis" #: ../pan/gui/actions.cc:461 #, fuzzy msgid "Clear _Body Pane" msgstr "Grupių sąrašo skydelis" #: ../pan/gui/actions.cc:466 #, fuzzy msgid "Cache Article" msgstr "Mėginami %d laiškus" #: ../pan/gui/actions.cc:471 #, fuzzy msgid "Read Article" msgstr "Rodyti skaitytus laiškus" #: ../pan/gui/actions.cc:476 #, fuzzy msgid "Show Article Information" msgstr "Serveri informacija" #: ../pan/gui/actions.cc:481 #, fuzzy msgid "Read _More" msgstr "Skaityti laiškai" #: ../pan/gui/actions.cc:482 #, fuzzy msgid "Read More" msgstr "Skaityti laiškai" #: ../pan/gui/actions.cc:486 msgid "Read _Back" msgstr "" #: ../pan/gui/actions.cc:487 #, fuzzy msgid "Read Back" msgstr "Skaitytas" #: ../pan/gui/actions.cc:491 #, fuzzy msgid "Next _Unread Group" msgstr "Kita neskaityta _grupė" #: ../pan/gui/actions.cc:496 #, fuzzy msgid "Next _Group" msgstr "Kita grupė" #: ../pan/gui/actions.cc:501 #, fuzzy msgid "Next _Unread Article" msgstr "Rodyti neskaitytus laiškus" #: ../pan/gui/actions.cc:502 #, fuzzy msgid "Next Unread Article" msgstr "Rodyti neskaitytus laiškus" #: ../pan/gui/actions.cc:506 #, fuzzy msgid "Next _Article" msgstr "Rikiuoti laiškus" #: ../pan/gui/actions.cc:507 #, fuzzy msgid "Next Article" msgstr "Rikiuoti laiškus" #: ../pan/gui/actions.cc:511 #, fuzzy msgid "Next _Watched Article" msgstr "Keše esantis laiškas „%s“" #: ../pan/gui/actions.cc:516 #, fuzzy msgid "Next Unread _Thread" msgstr "Kita neskaityta _grupė" #: ../pan/gui/actions.cc:517 #, fuzzy msgid "Next Unread Thread" msgstr "Kita neskaityta _grupė" #: ../pan/gui/actions.cc:521 #, fuzzy msgid "Next Threa_d" msgstr "Ignoruoti giją" #: ../pan/gui/actions.cc:526 #, fuzzy msgid "Pre_vious Article" msgstr "_Aukštyn pažymėti praeitą laišką" #: ../pan/gui/actions.cc:531 #, fuzzy msgid "Previous _Thread" msgstr "Aukštyn pažymėti praeitą giją" #: ../pan/gui/actions.cc:536 #, fuzzy msgid "_Parent Article" msgstr "Rikiuoti laiškus" #: ../pan/gui/actions.cc:541 #, fuzzy msgid "Ignore _Author" msgstr "Ignoruojamos gijos" #: ../pan/gui/actions.cc:545 #, fuzzy msgid "_Watch Thread" msgstr "Stebimos gijos" #: ../pan/gui/actions.cc:550 #, fuzzy msgid "_Ignore Thread" msgstr "Ignoruojamos gijos" #: ../pan/gui/actions.cc:555 ../pan/gui/actions.cc:556 #, fuzzy msgid "_Toggle Flag On/Off for Thread" msgstr "Stebimos gijos" #: ../pan/gui/actions.cc:560 ../pan/gui/actions.cc:561 #, fuzzy msgid "_Turn Flag Off for Thread" msgstr "Stebimos gijos" #: ../pan/gui/actions.cc:565 ../pan/gui/actions.cc:566 #, fuzzy msgid "_Select All Flagged Threads" msgstr "Kita neskaityta _grupė" #: ../pan/gui/actions.cc:570 ../pan/gui/actions.cc:571 #, fuzzy msgid "_Go to Next Flagged Thread" msgstr "Kita neskaityta _grupė" #: ../pan/gui/actions.cc:575 ../pan/gui/actions.cc:576 #, fuzzy msgid "_Go to Last Flagged Thread" msgstr "Kita neskaityta _grupė" #: ../pan/gui/actions.cc:580 ../pan/gui/actions.cc:581 #, fuzzy msgid "_Invert Selection" msgstr "Pažymėjimas" #: ../pan/gui/actions.cc:585 msgid "Edit Article's Watch/Ignore/Score..." msgstr "" #: ../pan/gui/actions.cc:590 #, fuzzy msgid "Add a _Scoring Rule..." msgstr "Sukurti naują aplanką" #: ../pan/gui/actions.cc:595 #, fuzzy msgid "Cance_l Article..." msgstr "Mėginami %d laiškus" #: ../pan/gui/actions.cc:600 #, fuzzy msgid "_Supersede Article..." msgstr "Iš_saugoti laišką kaip..." #: ../pan/gui/actions.cc:605 #, fuzzy msgid "_Delete Article" msgstr "Iš_trinti laišką" #: ../pan/gui/actions.cc:610 #, fuzzy msgid "Clear Article Cache" msgstr "Laiškų kešas" #: ../pan/gui/actions.cc:615 #, fuzzy msgid "_Mark Article as Read" msgstr "Laiškas _yra " #: ../pan/gui/actions.cc:620 #, fuzzy msgid "Mark Article as _Unread" msgstr "Laiškas _yra " #: ../pan/gui/actions.cc:626 #, fuzzy msgid "_Mark Thread as Read" msgstr "Laiškas _yra " #: ../pan/gui/actions.cc:631 #, fuzzy msgid "Mark Thread as _Unread" msgstr "Laiškas _yra " #: ../pan/gui/actions.cc:636 #, fuzzy msgid "_Post to Newsgroup" msgstr "_Skelbti naujienų grupėje" #: ../pan/gui/actions.cc:637 #, fuzzy msgid "Post to Newsgroup" msgstr "_Skelbti naujienų grupėje" #: ../pan/gui/actions.cc:641 #, fuzzy msgid "_Followup to Newsgroup" msgstr "_Tęsti naujienų grupėje" #: ../pan/gui/actions.cc:642 #, fuzzy msgid "Followup to Newsgroup" msgstr "_Tęsti naujienų grupėje" #: ../pan/gui/actions.cc:646 #, fuzzy msgid "_Reply to Author in Mail" msgstr "- Autorius" #: ../pan/gui/actions.cc:651 #, fuzzy msgid "_Pan Home Page" msgstr "Pan _tinklapis" #: ../pan/gui/actions.cc:656 msgid "Give _Feedback or Report a Bug..." msgstr "" #: ../pan/gui/actions.cc:661 msgid "_Tip Jar..." msgstr "" #: ../pan/gui/actions.cc:666 #, fuzzy msgid "_About" msgstr "Apie" #: ../pan/gui/actions.cc:671 msgid "Edit _SSL Certificates" msgstr "" #: ../pan/gui/actions.cc:685 #, fuzzy msgid "_Thread Headers" msgstr "Daugiau antraščių" #: ../pan/gui/actions.cc:686 #, fuzzy msgid "_Wrap Article Body" msgstr "Užpildyti/Sulaužyti laiško tekstą" #: ../pan/gui/actions.cc:687 #, fuzzy msgid "Mute _Quoted Text" msgstr "Paslėpti cituojamą tekstą" #: ../pan/gui/actions.cc:688 #, fuzzy msgid "Show All _Headers in Body Pane" msgstr "Rodyti visas antraštes tekste" #: ../pan/gui/actions.cc:689 #, fuzzy msgid "Show _Smilies as Graphics" msgstr "Rodyti įspė_jimą:" #: ../pan/gui/actions.cc:690 msgid "Show *Bold*, __Underlined__, and /Italic/" msgstr "" #: ../pan/gui/actions.cc:691 msgid "Size Pictures to _Fit" msgstr "" #: ../pan/gui/actions.cc:692 msgid "Use _Monospace Font" msgstr "" #: ../pan/gui/actions.cc:693 msgid "Set Focus to Images" msgstr "" #: ../pan/gui/actions.cc:694 msgid "Highlight _URLs" msgstr "" #: ../pan/gui/actions.cc:697 #, fuzzy msgid "_Work Online" msgstr "_Jungtis" #: ../pan/gui/actions.cc:698 #, fuzzy msgid "_Tabbed Layout" msgstr "Išdėstymas" #: ../pan/gui/actions.cc:699 #, fuzzy msgid "Show Group _Pane" msgstr "Grupių sąrašo skydelis" #: ../pan/gui/actions.cc:700 #, fuzzy msgid "Show Hea_der Pane" msgstr "Gijų skydelis" #: ../pan/gui/actions.cc:701 msgid "Show Bod_y Pane" msgstr "" #: ../pan/gui/actions.cc:702 msgid "Show _Toolbar" msgstr "" #: ../pan/gui/actions.cc:703 #, fuzzy msgid "Abbreviate Group Names" msgstr "Užsakytos grupės:" #: ../pan/gui/actions.cc:705 #, fuzzy msgid "Match Only _Unread Articles" msgstr "Rūšiuojami laiškai" #: ../pan/gui/actions.cc:705 #, fuzzy msgid "Match Only Unread Articles" msgstr "Rūšiuojami laiškai" #: ../pan/gui/actions.cc:706 #, fuzzy msgid "Match Only _Cached Articles" msgstr "Rūšiuojami laiškai" #: ../pan/gui/actions.cc:706 #, fuzzy msgid "Match Only Cached Articles" msgstr "Rūšiuojami laiškai" #: ../pan/gui/actions.cc:707 #, fuzzy msgid "Match Only _Complete Articles" msgstr "Rodyti pilnus dvejetainius laiškus" #: ../pan/gui/actions.cc:707 #, fuzzy msgid "Match Only Complete Articles" msgstr "Rodyti pilnus dvejetainius laiškus" #: ../pan/gui/actions.cc:708 #, fuzzy msgid "Match Only _My Articles" msgstr "Rūšiuojami laiškai" #: ../pan/gui/actions.cc:708 #, fuzzy msgid "Match Only My Articles" msgstr "Rūšiuojami laiškai" #: ../pan/gui/actions.cc:709 #, fuzzy msgid "Match Only _Watched Articles" msgstr "Rūšiuojami laiškai" #: ../pan/gui/actions.cc:709 #, fuzzy msgid "Match Only Watched Articles" msgstr "Rūšiuojami laiškai" #: ../pan/gui/actions.cc:711 msgid "Match Scores of 9999 (_Watched)" msgstr "" #: ../pan/gui/actions.cc:712 msgid "Match Scores of 5000...9998 (_High)" msgstr "" #: ../pan/gui/actions.cc:713 msgid "Match Scores of 1...4999 (Me_dium)" msgstr "" #: ../pan/gui/actions.cc:714 msgid "Match Scores of 0 (_Normal)" msgstr "" #: ../pan/gui/actions.cc:715 msgid "Match Scores of -9998...-1 (_Low)" msgstr "" #: ../pan/gui/actions.cc:716 msgid "Match Scores of -9999 (_Ignored)" msgstr "" #: ../pan/gui/actions.cc:718 msgid "Enable/Disable All _Rules" msgstr "" #: ../pan/gui/actions.cc:744 #, fuzzy msgid "Show Matching _Articles" msgstr "Rūšiuojami laiškai" #: ../pan/gui/actions.cc:745 #, fuzzy msgid "Show Matching Articles' _Threads" msgstr "Rūšiuojami laiškai" #: ../pan/gui/actions.cc:746 #, fuzzy msgid "Show Matching Articles' _Subthreads" msgstr "Pažymėtus laiškus ir atsakymus" #: ../pan/gui/body-pane.cc:1011 #, fuzzy, c-format msgid "Unnamed File" msgstr "Parašo byla:" #: ../pan/gui/body-pane.cc:1092 ../pan/gui/gui.cc:1864 #: ../pan/gui/header-pane.cc:1188 ../pan/gui/header-pane.cc:1617 #: ../pan/gui/post-ui.cc:2496 ../pan/gui/prefs-ui.cc:833 #: ../pan/gui/score-add-ui.cc:139 msgid "Subject" msgstr "Tema" #: ../pan/gui/body-pane.cc:1094 ../pan/gui/gui.cc:1864 #, fuzzy msgid "From" msgstr "Nuo:" #: ../pan/gui/body-pane.cc:1096 ../pan/gui/gui.cc:1865 #: ../pan/gui/header-pane.cc:1695 ../pan/gui/log-ui.cc:305 #: ../pan/gui/prefs-ui.cc:829 msgid "Date" msgstr "Data" #: ../pan/gui/body-pane.cc:1103 msgid "Newsgroups" msgstr "Naujienų grupės" #: ../pan/gui/body-pane.cc:1108 #, fuzzy msgid "Followup-To" msgstr "Pratęsimas-į:" #: ../pan/gui/body-pane.cc:1118 #, fuzzy msgid "Reply-To" msgstr "Atsakyti-kam:" #: ../pan/gui/body-pane.cc:1160 #, fuzzy msgid " from " msgstr "Nuo:" #: ../pan/gui/body-pane.cc:1162 #, fuzzy msgid " at " msgstr "- Data" #: ../pan/gui/body-pane.cc:1264 #, c-format msgid "" "This is a PGP-Signed message.\n" "\n" "Signer : %s ('%s')\n" "Valid until : %s\n" "Created on : %s" msgstr "" #: ../pan/gui/body-pane.cc:1269 msgid "always" msgstr "" #: ../pan/gui/body-pane.cc:1485 msgid "Copy _URL" msgstr "" #: ../pan/gui/body-pane.cc:1680 #, fuzzy msgid "Save attachment as ...." msgstr "Išsaugoti dvejetainį priedą kaip..." #: ../pan/gui/body-pane.cc:1683 #, fuzzy msgid "Save all attachments" msgstr "Išsaugoti priedą kaip" #. add a toolbar for attachments #: ../pan/gui/body-pane.cc:1753 #, fuzzy msgid "Attachments" msgstr "Išsaugoti priedą kaip" #. update the titlebar #: ../pan/gui/dl-headers-ui.cc:106 ../pan/gui/gui.cc:973 #: ../pan/gui/gui.cc:1592 ../pan/gui/gui.cc:1893 #: ../pan/gui/score-add-ui.cc:602 msgid "Pan" msgstr "Pan" #: ../pan/gui/dl-headers-ui.cc:112 #, fuzzy, c-format msgid "%d Group" msgid_plural "%d Groups" msgstr[0] "Grupės" msgstr[1] "Grupės" #: ../pan/gui/dl-headers-ui.cc:135 #, fuzzy msgid "Get the last N _days' headers: " msgstr "naujausias antraštes" #: ../pan/gui/dl-headers-ui.cc:143 #, fuzzy msgid "Get _new headers" msgstr "naujos antraštės" #: ../pan/gui/dl-headers-ui.cc:147 #, fuzzy msgid "Get _all headers" msgstr "visos antraštės" #: ../pan/gui/dl-headers-ui.cc:151 #, fuzzy msgid "Get the _latest N headers: " msgstr "naujausias antraštes" #: ../pan/gui/e-action-combo-box.c:388 ../pan/gui/prefs-ui.cc:826 #, fuzzy msgid "Action" msgstr "Veiksmai" #: ../pan/gui/e-action-combo-box.c:389 msgid "A GtkRadioAction" msgstr "" #: ../pan/gui/e-charset.c:51 ../pan/gui/task-pane.cc:518 #, fuzzy msgid "Unknown" msgstr "Nežinomas domenas" #: ../pan/gui/e-charset.c:52 msgid "Arabic" msgstr "" #: ../pan/gui/e-charset.c:53 msgid "Baltic" msgstr "" #: ../pan/gui/e-charset.c:54 #, fuzzy msgid "Central European" msgstr "Vidinė klaida" #: ../pan/gui/e-charset.c:55 #, fuzzy msgid "Chinese" msgstr "Eilutės" #: ../pan/gui/e-charset.c:56 msgid "Cyrillic" msgstr "" #: ../pan/gui/e-charset.c:57 msgid "Greek" msgstr "" #: ../pan/gui/e-charset.c:58 msgid "Hebrew" msgstr "" #: ../pan/gui/e-charset.c:59 #, fuzzy msgid "Japanese" msgstr "pan.sent" #: ../pan/gui/e-charset.c:60 #, fuzzy msgid "Korean" msgstr "skaitytu" #: ../pan/gui/e-charset.c:61 msgid "Thai" msgstr "" #: ../pan/gui/e-charset.c:62 msgid "Turkish" msgstr "" #: ../pan/gui/e-charset.c:63 msgid "Unicode" msgstr "" #: ../pan/gui/e-charset.c:64 #, fuzzy msgid "Western European" msgstr "Vidinė klaida" #: ../pan/gui/e-charset.c:65 #, fuzzy msgid "Western European, New" msgstr "Vidinė klaida" #: ../pan/gui/e-charset.c:84 ../pan/gui/e-charset.c:85 #: ../pan/gui/e-charset.c:86 msgid "Traditional" msgstr "" #: ../pan/gui/e-charset.c:87 ../pan/gui/e-charset.c:88 #: ../pan/gui/e-charset.c:89 ../pan/gui/e-charset.c:90 msgid "Simplified" msgstr "" #: ../pan/gui/e-charset.c:93 msgid "Ukrainian" msgstr "" #: ../pan/gui/e-charset.c:96 msgid "Visual" msgstr "" #: ../pan/gui/e-charset-combo-box.c:93 ../pan/gui/gui.cc:2058 #: ../pan/gui/post-ui.cc:519 ../pan/gui/prefs-ui.cc:737 msgid "Character Encoding" msgstr "" #: ../pan/gui/e-charset-combo-box.c:117 msgid "Enter the character set to use" msgstr "" #: ../pan/gui/e-charset-combo-box.c:336 msgid "Other..." msgstr "" #: ../pan/gui/e-cte-dialog.c:78 #, fuzzy msgid "Default encoding" msgstr "Iškoduojamas „%s“" #: ../pan/gui/e-cte-dialog.c:80 #, fuzzy msgid "7Bit Encoding" msgstr "Nežinomas kodavimas" #: ../pan/gui/e-cte-dialog.c:82 #, fuzzy msgid "8Bit Encoding" msgstr "Nežinomas kodavimas" #: ../pan/gui/e-cte-dialog.c:84 #, fuzzy msgid "BASE64 Encoding" msgstr "Nežinomas kodavimas" #: ../pan/gui/e-cte-dialog.c:86 #, fuzzy msgid "Quoted-Printable Encoding" msgstr "Grupių sąrašo skydelis" #: ../pan/gui/group-pane.cc:500 #, fuzzy msgid "Group" msgstr "Grupės" #: ../pan/gui/group-pane.cc:501 #, fuzzy msgid "Group (regex)" msgstr "Tavo vardas" #: ../pan/gui/group-pane.cc:913 msgid "Subscribed Groups" msgstr "Užsakytos grupės" #: ../pan/gui/group-pane.cc:914 #, fuzzy msgid "Other Groups" msgstr "Naujos grupės" #: ../pan/gui/group-pane.cc:954 ../pan/gui/score-view-ui.cc:157 msgid "Name" msgstr "Vardas" #: ../pan/gui/group-prefs-dialog.cc:156 #, fuzzy msgid "No Profiles defined in Edit|Posting Profiles." msgstr "Skelbiamas laiškas „%s“" #: ../pan/gui/group-prefs-dialog.cc:231 #, fuzzy msgid "Pan: Group Preferences" msgstr "Pan: Nuostatos" #: ../pan/gui/group-prefs-dialog.cc:247 #, fuzzy, c-format msgid "Properties for Groups" msgstr "Skelbiamas laiškas „%s“" #: ../pan/gui/group-prefs-dialog.cc:249 #, fuzzy, c-format msgid "Properties for %s" msgstr "Skelbiamas laiškas „%s“" #: ../pan/gui/group-prefs-dialog.cc:257 msgid "Character _encoding:" msgstr "" #: ../pan/gui/group-prefs-dialog.cc:259 #, fuzzy msgid "Directory for Saving Attachments" msgstr "Katalogas, į kurį saugoti prisegtas bylas" #: ../pan/gui/group-prefs-dialog.cc:269 #, fuzzy msgid "Directory for _saving attachments:" msgstr "Katalogas, į kurį saugoti prisegtas bylas" #: ../pan/gui/group-prefs-dialog.cc:271 #, fuzzy msgid "Posting _profile:" msgstr "Išsaugoti profilį" #: ../pan/gui/group-prefs-dialog.cc:277 msgid "Spellchecker _language:" msgstr "" #: ../pan/gui/gui.cc:273 msgid "Open the Task Manager" msgstr "Atidaryti Užduočių tvarkyklę" #: ../pan/gui/gui.cc:301 #, fuzzy msgid "Open the Event Log" msgstr "Atidaryti Užduočių tvarkyklę" #: ../pan/gui/gui.cc:561 msgid "Save NZB's Files" msgstr "" #: ../pan/gui/gui.cc:588 msgid "Untitled.nzb" msgstr "" #: ../pan/gui/gui.cc:590 #, fuzzy msgid "Save NZB File as..." msgstr "Iš_saugoti laišką kaip..." #: ../pan/gui/gui.cc:757 #, fuzzy msgid "Import NZB Files" msgstr "Importuoti bylą .newsrc" #: ../pan/gui/gui.cc:765 ../pan/gui/post-ui.cc:3197 #, fuzzy msgid "NZB Files" msgstr "Filtrai:" #: ../pan/gui/gui.cc:770 #, fuzzy msgid "All Files" msgstr "Filtrai:" #: ../pan/gui/gui.cc:1258 #, fuzzy msgid "Unable to supersede article." msgstr "Iš_saugoti laišką kaip..." #: ../pan/gui/gui.cc:1259 ../pan/gui/gui.cc:1333 msgid "The article doesn't match any of your posting profiles." msgstr "" #: ../pan/gui/gui.cc:1306 msgid "Revise and send this article to replace the old one." msgstr "" #: ../pan/gui/gui.cc:1307 ../pan/gui/gui.cc:1370 msgid "Be patient! It will take time for your changes to take effect." msgstr "" #: ../pan/gui/gui.cc:1332 #, fuzzy msgid "Unable to cancel article." msgstr "Mėginami %d laiškus" #: ../pan/gui/gui.cc:1369 msgid "Send this article to ask your server to cancel your other one." msgstr "" #: ../pan/gui/gui.cc:1387 #, fuzzy msgid "You marked some articles for deletion" msgstr "Tu pirmiausia turi įkelti laišką." #: ../pan/gui/gui.cc:1388 msgid "Are you sure you want to delete them?" msgstr "" #: ../pan/gui/gui.cc:1413 #, fuzzy msgid "Always trust" msgstr "_Keisti" #: ../pan/gui/gui.cc:1416 msgid "Do you want to accept it permanently (deletable afterwards) ?" msgstr "" #: ../pan/gui/gui.cc:1595 msgid "Copyright \\u00A9 2002-2012 Charles Kerr and others" msgstr "" #: ../pan/gui/gui.cc:1600 msgid "translator-credits" msgstr "" #: ../pan/gui/gui.cc:1709 #, fuzzy msgid "_1. Group Pane" msgstr "Grupių sąrašo skydelis" #: ../pan/gui/gui.cc:1710 #, fuzzy msgid "_2. Header Pane" msgstr "Gijų skydelis" #: ../pan/gui/gui.cc:1711 msgid "_3. Body Pane" msgstr "" #: ../pan/gui/gui.cc:1800 ../pan/gui/gui.cc:1815 msgid " Bytes" msgstr "" #: ../pan/gui/gui.cc:1803 msgid " KB" msgstr "" #: ../pan/gui/gui.cc:1806 msgid " MB" msgstr "" #: ../pan/gui/gui.cc:1809 msgid " GB" msgstr "" #: ../pan/gui/gui.cc:1812 msgid " TB" msgstr "" #: ../pan/gui/gui.cc:1844 #, fuzzy, c-format msgid "This article is complete with %d part." msgid_plural "This article has all %d parts." msgstr[0] "laiške yra %s dvejetainių priedų" msgstr[1] "laiške yra %s dvejetainių priedų" #: ../pan/gui/gui.cc:1846 #, fuzzy, c-format msgid "This article is missing %d part." msgid_plural "This article is missing %d of its %d parts:" msgstr[0] "laiške yra %s dvejetainių priedų" msgstr[1] "laiške yra %s dvejetainių priedų" #: ../pan/gui/gui.cc:1865 ../pan/gui/header-pane.cc:1190 #, fuzzy msgid "Message-ID" msgstr "Laiško ID:" #: ../pan/gui/gui.cc:1866 ../pan/gui/header-pane.cc:1665 #: ../pan/gui/prefs-ui.cc:830 msgid "Lines" msgstr "Eilutės" #: ../pan/gui/gui.cc:1866 msgid "Size" msgstr "" #: ../pan/gui/gui.cc:1867 ../pan/gui/header-pane.cc:1680 #: ../pan/gui/prefs-ui.cc:828 msgid "Bytes" msgstr "" #: ../pan/gui/gui.cc:1917 msgid "" "Error loading iconv library. Some Charsets in the GUI will not be able to be " "encoded." msgstr "" #: ../pan/gui/gui.cc:2059 #, fuzzy msgid "Body Pane Encoding" msgstr "Grupių sąrašo skydelis" #: ../pan/gui/gui.cc:2090 ../pan/gui/task-pane.cc:569 #, c-format msgid "Offline" msgstr "Atsijungęs" #: ../pan/gui/gui.cc:2094 #, fuzzy, c-format msgid "Closing %d connection" msgid_plural "Closing %d connections" msgstr[0] "Jungiasi" msgstr[1] "Jungiasi" #: ../pan/gui/gui.cc:2096 ../pan/gui/gui.cc:2126 #, fuzzy, c-format msgid "No Connections" msgstr "Jungiasi" #: ../pan/gui/gui.cc:2100 #, fuzzy, c-format msgid "Connecting" msgstr "Jungiasi" #: ../pan/gui/gui.cc:2113 #, c-format msgid "%s: %d idle, %d active @ %.1f KiBps" msgstr "" #: ../pan/gui/gui.cc:2169 #, c-format msgid "No Tasks" msgstr "Nėra užduočių" #: ../pan/gui/gui.cc:2171 ../pan/gui/prefs-ui.cc:1047 #, fuzzy msgid "Tasks" msgstr "Nėra užduočių" #: ../pan/gui/gui.cc:2182 ../pan/gui/task-pane.cc:435 #, c-format msgid "%lu tasks, %s, %.1f KiBps, ETA %d:%02d:%02d" msgstr "" #: ../pan/gui/gui.cc:2234 msgid "" "Pan is now offline. Please see \"File|Event Log\" and correct the problem, " "then use \"File|Work Online\" to continue." msgstr "" #: ../pan/gui/header-pane.cc:1186 #, fuzzy msgid "Subject or Author" msgstr "Tema:" #: ../pan/gui/header-pane.cc:1187 #, fuzzy msgid "Sub or Auth (regex)" msgstr "Tema:" #: ../pan/gui/header-pane.cc:1189 ../pan/gui/header-pane.cc:1649 #: ../pan/gui/prefs-ui.cc:827 ../pan/gui/score-add-ui.cc:140 msgid "Author" msgstr "Autorius" #: ../pan/gui/header-pane.cc:1634 ../pan/gui/prefs-ui.cc:831 msgid "Score" msgstr "" #: ../pan/gui/log-ui.cc:103 msgid "Save Event List" msgstr "" #: ../pan/gui/log-ui.cc:256 #, fuzzy msgid "Pan: Events" msgstr "Taisyklės" #: ../pan/gui/log-ui.cc:315 msgid "Message" msgstr "Laiškas" #: ../pan/gui/pan.cc:330 msgid "Maximize" msgstr "" #: ../pan/gui/pan.cc:383 msgid "An Error has occurred!" msgstr "" #: ../pan/gui/pan.cc:397 #, fuzzy msgid "New Articles!" msgstr "Rodyti naujus laiškus" #: ../pan/gui/pan.cc:398 msgid "" "There are new\n" "articles available." msgstr "" #: ../pan/gui/pan.cc:465 msgid "Toggle on/offline" msgstr "" #: ../pan/gui/pan.cc:513 msgid "" "Thank you for trying Pan!\n" " \n" "To start newsreading, first Add a Server." msgstr "" #: ../pan/gui/pan.cc:595 msgid "" "General Options\n" " -h, --help Show this usage page.\n" " --verbose Be verbose (in non-GUI mode).\n" "\n" "URL Options\n" " --no-gui On news:message-id, dump the article to stdout.\n" "\n" "NZB Batch Options\n" " --nzb file1 file2 ... Process nzb files without launching all of Pan.\n" " -o path, --output=path Path to save attachments listed in the nzb " "files.\n" " --no-gui Only show console output, not the download " "queue.\n" msgstr "" #: ../pan/gui/pan.cc:867 msgid "Error: --no-gui used without nzb files or news:message-id." msgstr "" #: ../pan/gui/pan.cc:871 #, fuzzy, c-format msgid "Pan %s started" msgstr "Pan %s paleista\n" #: ../pan/gui/pan.cc:890 msgid "Please configure Pan's news servers before using it as an nzb client." msgstr "" #: ../pan/gui/pan.cc:1009 msgid "Pan notification" msgstr "" #: ../pan/gui/post-ui.cc:186 #, c-format msgid "Upload Queue : %ld Tasks, %ld KB (~ %.2f MB) total ." msgstr "" #: ../pan/gui/post-ui.cc:286 #, fuzzy, c-format msgid "Error setting custom spellchecker: %s" msgstr "Klaida: skaitant iš lizdo gauta %d: %s" #: ../pan/gui/post-ui.cc:291 ../pan/gui/post-ui.cc:300 #, fuzzy, c-format msgid "Error setting spellchecker: %s" msgstr "Klaida: skaitant iš lizdo gauta %d: %s" #: ../pan/gui/post-ui.cc:419 #, fuzzy msgid "_Profile" msgstr "Profilio pavadinimas" #: ../pan/gui/post-ui.cc:420 #, fuzzy msgid "Set Editor" msgstr "_Keisti" #: ../pan/gui/post-ui.cc:422 #, fuzzy msgid "_Send Article" msgstr "Rikiuoti laiškus" #: ../pan/gui/post-ui.cc:422 #, fuzzy msgid "Send Article Now" msgstr "Išsiųsti dabar" #: ../pan/gui/post-ui.cc:423 #, fuzzy msgid "_Send and Save Articles to NZB" msgstr "Rodyti išsaugotus laiškus" #: ../pan/gui/post-ui.cc:423 #, fuzzy msgid "Send and Save Articles to NZB" msgstr "Rodyti išsaugotus laiškus" #: ../pan/gui/post-ui.cc:424 msgid "Set Character _Encoding..." msgstr "" #: ../pan/gui/post-ui.cc:425 msgid "Set Content _Transfer Encoding..." msgstr "" #: ../pan/gui/post-ui.cc:426 #, fuzzy msgid "Sa_ve Draft" msgstr "Pažymi laišką" #: ../pan/gui/post-ui.cc:426 msgid "Save as a Draft for Future Posting" msgstr "" #: ../pan/gui/post-ui.cc:427 #, fuzzy msgid "_Open Draft..." msgstr "Skirstyti į gijas" #: ../pan/gui/post-ui.cc:427 #, fuzzy msgid "Open an Article Draft" msgstr "Skirstyti į gijas" #: ../pan/gui/post-ui.cc:432 msgid "_Rot13" msgstr "" #: ../pan/gui/post-ui.cc:432 msgid "Rot13 Selected Text" msgstr "Pritaikyti Rot13 kodavimą pažymėtam tekstui" #: ../pan/gui/post-ui.cc:433 #, fuzzy msgid "Run _Editor" msgstr "_Keisti" #: ../pan/gui/post-ui.cc:433 #, fuzzy msgid "Run Editor" msgstr "_Keisti" #: ../pan/gui/post-ui.cc:435 msgid "Add _Files to Queue" msgstr "" #: ../pan/gui/post-ui.cc:435 msgid "Add Files to Queue" msgstr "" #: ../pan/gui/post-ui.cc:450 ../pan/gui/post-ui.cc:451 #, fuzzy msgid "Remove from Queue" msgstr "Naujienų serveris" #: ../pan/gui/post-ui.cc:455 ../pan/gui/post-ui.cc:456 #, fuzzy msgid "Clear List" msgstr "Išvalyti" #: ../pan/gui/post-ui.cc:460 ../pan/gui/post-ui.cc:461 #, fuzzy msgid "Select Needed Parts" msgstr "Pažymėtas gijas" #: ../pan/gui/post-ui.cc:465 ../pan/gui/post-ui.cc:466 #: ../pan/gui/task-pane.cc:636 ../pan/gui/task-pane.cc:637 #, fuzzy msgid "Move Up" msgstr "Eilute ž_emyn" #: ../pan/gui/post-ui.cc:470 ../pan/gui/post-ui.cc:471 #: ../pan/gui/task-pane.cc:641 ../pan/gui/task-pane.cc:642 #, fuzzy msgid "Move Down" msgstr "Eilute ž_emyn" #: ../pan/gui/post-ui.cc:475 ../pan/gui/post-ui.cc:476 #, fuzzy msgid "Move to Top" msgstr "Eilute ž_emyn" #: ../pan/gui/post-ui.cc:480 ../pan/gui/post-ui.cc:481 #, fuzzy msgid "Move to Bottom" msgstr "Perkelti pažymėtas užduotis į apačią" #: ../pan/gui/post-ui.cc:488 #, fuzzy msgid "_Wrap Text" msgstr "Laužyti tekstą" #: ../pan/gui/post-ui.cc:488 #, fuzzy msgid "Wrap Text" msgstr "Laužyti tekstą" #: ../pan/gui/post-ui.cc:489 #, fuzzy msgid "Always Run Editor" msgstr "_Keisti" #: ../pan/gui/post-ui.cc:490 msgid "Remember Character Encoding for this Group" msgstr "" #: ../pan/gui/post-ui.cc:491 #, fuzzy msgid "Thread Attached Replies" msgstr "Rodyti laiškus, kurie nei stebimi, nei ignoruojami" #: ../pan/gui/post-ui.cc:492 #, fuzzy msgid "PGP-Encrypt the Message" msgstr "Spausdinti šį laišką" #: ../pan/gui/post-ui.cc:493 #, fuzzy msgid "PGP-Sign the Message" msgstr "Spausdinti šį laišką" #: ../pan/gui/post-ui.cc:494 msgid "Check _Spelling" msgstr "" #: ../pan/gui/post-ui.cc:520 #, fuzzy msgid "New Article's Encoding:" msgstr "Iš_saugoti laišką kaip..." #: ../pan/gui/post-ui.cc:530 #, fuzzy msgid "Content Transfer Encoding" msgstr "Grupių sąrašo skydelis" #: ../pan/gui/post-ui.cc:531 #, fuzzy msgid "New Article's Content Transfer Encoding:" msgstr "Iš_saugoti laišką kaip..." #: ../pan/gui/post-ui.cc:711 msgid "Your changes will be lost!" msgstr "" #: ../pan/gui/post-ui.cc:712 msgid "Close this window and lose your changes?" msgstr "" #: ../pan/gui/post-ui.cc:757 ../pan/gui/post-ui.cc:796 msgid "There were problems with this post." msgstr "" #: ../pan/gui/post-ui.cc:759 ../pan/gui/post-ui.cc:798 #: ../pan/gui/post-ui.cc:861 msgid "Go Back" msgstr "" #: ../pan/gui/post-ui.cc:761 msgid "Post Anyway" msgstr "" #. Prompt the user #: ../pan/gui/post-ui.cc:790 #, c-format msgid "" "Message uses characters not specified in charset '%s' - possibly use '%s' " msgstr "" #: ../pan/gui/post-ui.cc:813 #, fuzzy msgid "Go _Online" msgstr "_Jungtis" #: ../pan/gui/post-ui.cc:860 msgid "The file queue is empty, so no files can be saved." msgstr "" #: ../pan/gui/post-ui.cc:1019 msgid "" "No posting server is set for this posting profile.\n" "Please edit the profile via Edit|Manage Posting Profiles." msgstr "" #: ../pan/gui/post-ui.cc:1054 #, fuzzy msgid "Pan is Offline." msgstr "Atsijungęs" #: ../pan/gui/post-ui.cc:1055 msgid "Go online to post the article?" msgstr "" #: ../pan/gui/post-ui.cc:1102 #, c-format msgid "" "Error signing/encrypting your message. Perhaps you misspelled your email-" "address (%s) ?" msgstr "" #: ../pan/gui/post-ui.cc:1267 #, fuzzy msgid "Error opening temporary file" msgstr "Nepavyko gauti laiško iš serverio: %s" #: ../pan/gui/post-ui.cc:1279 #, fuzzy, c-format msgid "Error writing article to temporary file: %s" msgstr "Nepavyko gauti laiško iš serverio: %s" #: ../pan/gui/post-ui.cc:1298 #, c-format msgid "Error parsing \"external editor\" command line: %s (Command was: %s)" msgstr "" #: ../pan/gui/post-ui.cc:1339 #, c-format msgid "Error starting external editor: %s" msgstr "" #: ../pan/gui/post-ui.cc:1395 #, fuzzy msgid "Open Draft Article" msgstr "Skirstyti į gijas" #: ../pan/gui/post-ui.cc:1606 #, fuzzy msgid "Save Draft Article" msgstr "Pažymi laišką" #: ../pan/gui/post-ui.cc:1803 #, fuzzy, c-format msgid "Couldn't parse signature command \"%s\": %s" msgstr "Nepavyko sukurti katalogo „%s“: %s" #: ../pan/gui/post-ui.cc:1839 #, fuzzy msgid "Couldn't convert signature to UTF-8." msgstr "Nepavyko sukurti katalogo „%s“: %s" #: ../pan/gui/post-ui.cc:2334 #, fuzzy msgid "F_rom" msgstr "Nuo" #: ../pan/gui/post-ui.cc:2352 #, fuzzy msgid "_Subject" msgstr "Tema" #: ../pan/gui/post-ui.cc:2365 #, fuzzy msgid "_Newsgroups" msgstr "Naujienų grupės" #: ../pan/gui/post-ui.cc:2379 #, fuzzy msgid "Mail _To" msgstr "Siųsti kam:" #: ../pan/gui/post-ui.cc:2481 #, fuzzy msgid "Delete from Queue" msgstr "Pažymi grupę" #: ../pan/gui/post-ui.cc:2494 msgid "No." msgstr "" #: ../pan/gui/post-ui.cc:2498 ../pan/gui/post-ui.cc:2592 #: ../pan/gui/post-ui.cc:2633 msgid "Filename" msgstr "Bylos vardas" #: ../pan/gui/post-ui.cc:2500 msgid "Size (kB)" msgstr "" #: ../pan/gui/post-ui.cc:2600 #, fuzzy msgid "The current filename" msgstr "Naudoti norimą bylos vardą" #: ../pan/gui/post-ui.cc:2604 #, fuzzy msgid "Subject Line" msgstr "Tema" #: ../pan/gui/post-ui.cc:2612 msgid "The current Subject Line" msgstr "" #: ../pan/gui/post-ui.cc:2626 msgid "No. " msgstr "" #: ../pan/gui/post-ui.cc:2630 msgid "Enable/Disable" msgstr "" #: ../pan/gui/post-ui.cc:2664 #, fuzzy msgid "Follo_wup-To" msgstr "Pratęsimas-į:" #. i18n: "poster" is a key used by many newsreaders. probably safest to keep this key in english. #: ../pan/gui/post-ui.cc:2673 #, fuzzy msgid "" "The newsgroups where replies to your message should go. This is only needed " "if it differs from the \"Newsgroups\" header.\n" "\n" "To direct all replies to your email address, use \"Followup-To: poster\"" msgstr "" "Naujienų grupė ar grupės, kur turėtų eiti atsakymai į tavo paskelbtą laišką. " "Tai reikalinga tik tada, jei skiriasi nuo „Skelbti grupėse“ lauko.\n" "Kad visi atsakymai eitų į tavo el. paštą, naudok „Skelbti-kur: poster“" #: ../pan/gui/post-ui.cc:2679 #, fuzzy msgid "_Reply-To" msgstr "Atsakyti-kam:" #: ../pan/gui/post-ui.cc:2687 #, fuzzy msgid "" "The email account where mail replies to your posted message should go. This " "is only needed if it differs from the \"From\" header." msgstr "" "El. pašto adresas, kur turėtų eiti atsakymai paštu į tavo paskelbtą laišką. " "Tai reikalinga tik tuomet, jei skiriasi nuo „Nuo“ lauko." #: ../pan/gui/post-ui.cc:2693 #, fuzzy msgid "_Custom Headers" msgstr "Daugiau antraščių" #: ../pan/gui/post-ui.cc:2717 #, fuzzy msgid "Add \"_User-Agent\" header" msgstr "Nepridėti „User-Agent“ atpažinimo antraštės" #: ../pan/gui/post-ui.cc:2724 #, fuzzy msgid "Add \"Message-_Id\" header" msgstr "Laiško Id:" #: ../pan/gui/post-ui.cc:2855 #, fuzzy msgid "Select Parts" msgstr "Pažymėjimas" #: ../pan/gui/post-ui.cc:2866 msgid "_Parts" msgstr "" #: ../pan/gui/post-ui.cc:3022 #, fuzzy msgid "Post Article" msgstr "Įkelia laišką" #: ../pan/gui/post-ui.cc:3043 msgid "_Message" msgstr "_Laiškas" #: ../pan/gui/post-ui.cc:3044 #, fuzzy msgid "More _Headers" msgstr "Daugiau antraščių" #: ../pan/gui/post-ui.cc:3045 #, fuzzy msgid "File _Queue" msgstr "Išvalyti eilę" #: ../pan/gui/post-ui.cc:3077 ../pan/gui/profiles-dialog.cc:478 #, fuzzy, no-c-format msgid "On %d, %n wrote:" msgstr "Laiške %i, %a rašė:" #: ../pan/gui/post-ui.cc:3106 msgid "Add files to queue" msgstr "" #: ../pan/gui/post-ui.cc:3184 msgid "Save Upload Queue as NZB File" msgstr "" #: ../pan/gui/prefs.cc:343 #, fuzzy, c-format msgid "Couldn't parse %s color \"%s\"" msgstr "Negalėjau pasirinkti grupės „%s“" #: ../pan/gui/prefs-ui.cc:120 msgid "Grab Key" msgstr "" #: ../pan/gui/prefs-ui.cc:126 #, c-format msgid "" "Press the combination of the keys\n" "you want to use for \"%s\"." msgstr "" #: ../pan/gui/prefs-ui.cc:166 #, fuzzy msgid "Edit Hotkey" msgstr "Filtrai:" #: ../pan/gui/prefs-ui.cc:228 msgid "Error: Shortkey is invalid!" msgstr "" #: ../pan/gui/prefs-ui.cc:244 #, fuzzy msgid "Error: Shortkey already exists!" msgstr "Jau yra toks aplankas „%s“" #: ../pan/gui/prefs-ui.cc:535 #, fuzzy msgid "Show only icons" msgstr "Serveri informacija" #: ../pan/gui/prefs-ui.cc:536 msgid "Show only text" msgstr "" #: ../pan/gui/prefs-ui.cc:537 #, fuzzy msgid "Show icons and text" msgstr "Išsaugoti priedą kaip" #: ../pan/gui/prefs-ui.cc:576 #, fuzzy msgid "Use GNOME Preferences" msgstr "Pan: Nuostatos" #: ../pan/gui/prefs-ui.cc:577 #, fuzzy msgid "Use KDE Preferences" msgstr "Nuorodos:" #: ../pan/gui/prefs-ui.cc:578 #, fuzzy msgid "Use OS X Preferences" msgstr "Nuorodos:" #: ../pan/gui/prefs-ui.cc:579 #, fuzzy msgid "Use Windows Preferences" msgstr "Pan: Nuostatos" #: ../pan/gui/prefs-ui.cc:580 #, fuzzy msgid "Custom Command:" msgstr "Spausdinimo komanda:" #: ../pan/gui/prefs-ui.cc:632 #, fuzzy msgid "Disabled" msgstr "Nepavyko" #: ../pan/gui/prefs-ui.cc:633 msgid "Only new (Score == 0)" msgstr "" #: ../pan/gui/prefs-ui.cc:634 msgid "9999 or more" msgstr "" #: ../pan/gui/prefs-ui.cc:635 msgid "5000 to 9998" msgstr "" #: ../pan/gui/prefs-ui.cc:636 msgid "1 to 4999" msgstr "" #: ../pan/gui/prefs-ui.cc:637 msgid "-9998 to -1" msgstr "" #: ../pan/gui/prefs-ui.cc:638 msgid "-9999 or less" msgstr "" #: ../pan/gui/prefs-ui.cc:702 #, c-format msgid "Select default global charset. Current setting : %s ." msgstr "" #: ../pan/gui/prefs-ui.cc:738 #, fuzzy msgid "Global Charset Settings" msgstr "Bendros nuostatos" #: ../pan/gui/prefs-ui.cc:832 ../pan/gui/task-pane.cc:770 #, fuzzy msgid "State" msgstr "Būsena" #: ../pan/gui/prefs-ui.cc:866 #, fuzzy msgid "Enabled" msgstr "Nepavyko" #: ../pan/gui/prefs-ui.cc:870 #, fuzzy msgid "Column Name" msgstr "Tavo vardas" #: ../pan/gui/prefs-ui.cc:908 msgid "Pan: Preferences" msgstr "Pan: Nuostatos" #: ../pan/gui/prefs-ui.cc:923 msgid "Mouse" msgstr "" #: ../pan/gui/prefs-ui.cc:925 msgid "Single-click activates, rather than selects, _groups" msgstr "" #: ../pan/gui/prefs-ui.cc:927 msgid "Single-click activates, rather than selects, _articles" msgstr "" #: ../pan/gui/prefs-ui.cc:930 #, fuzzy msgid "Groups" msgstr "Grupės" #: ../pan/gui/prefs-ui.cc:932 #, fuzzy msgid "Get new headers in subscribed groups on _startup" msgstr "Gauti naujas antraštes ir tekstus iš pažymėtų grupių" #: ../pan/gui/prefs-ui.cc:934 #, fuzzy msgid "Get new headers when _entering group" msgstr "Gauti naujas antraštes ir tekstus pažymėtose grupėse" #: ../pan/gui/prefs-ui.cc:936 msgid "Mark entire group _read when leaving group" msgstr "" #: ../pan/gui/prefs-ui.cc:938 msgid "Mark entire group read before getting _new headers" msgstr "" #: ../pan/gui/prefs-ui.cc:940 #, fuzzy msgid "E_xpand all threads when entering group" msgstr "Gauti naujas antraštes ir tekstus pažymėtose grupėse" #: ../pan/gui/prefs-ui.cc:945 msgid "Articles" msgstr "Laiškai" #: ../pan/gui/prefs-ui.cc:947 msgid "Space selects next article rather than next unread" msgstr "" #: ../pan/gui/prefs-ui.cc:949 #, fuzzy msgid "Expand threads upon selection" msgstr "Išplėsti visas gijas" #: ../pan/gui/prefs-ui.cc:951 msgid "Always show article deletion confirmation dialog" msgstr "" #: ../pan/gui/prefs-ui.cc:953 msgid "Smooth scrolling" msgstr "" #: ../pan/gui/prefs-ui.cc:958 #, fuzzy msgid "Article Cache" msgstr "Laiškų kešas" #: ../pan/gui/prefs-ui.cc:959 msgid "Clear article cache on shutdown" msgstr "" #: ../pan/gui/prefs-ui.cc:962 msgid "Size of article cache (in MiB) :" msgstr "" #: ../pan/gui/prefs-ui.cc:967 #, fuzzy msgid "File extension for Cached Articles: " msgstr "Keše esantis laiškas „%s“" #: ../pan/gui/prefs-ui.cc:972 msgid "Tabs" msgstr "" #: ../pan/gui/prefs-ui.cc:977 msgid "_Behavior" msgstr "" #: ../pan/gui/prefs-ui.cc:977 msgid "Behavior" msgstr "" #: ../pan/gui/prefs-ui.cc:983 #, fuzzy msgid "Language Settings" msgstr "Ryšio nuostatos" #. systray and notify popup #: ../pan/gui/prefs-ui.cc:992 msgid "System Tray Behavior" msgstr "" #: ../pan/gui/prefs-ui.cc:994 msgid "Hide to system tray" msgstr "" #: ../pan/gui/prefs-ui.cc:996 msgid "Start Pan minimized" msgstr "" #: ../pan/gui/prefs-ui.cc:999 #, fuzzy msgid "Show notifications" msgstr "Serveri informacija" #. allow multiple instances (seperate, not communicating with dbus) #: ../pan/gui/prefs-ui.cc:1004 msgid "Startup Behavior" msgstr "" #: ../pan/gui/prefs-ui.cc:1006 msgid "Allow multiple instances of Pan" msgstr "" #: ../pan/gui/prefs-ui.cc:1011 #, fuzzy msgid "Autosave Article Draft" msgstr "Skirstyti į gijas" #: ../pan/gui/prefs-ui.cc:1013 #, fuzzy msgid "Minutes to autosave the current Article Draft: " msgstr "Skirstyti į gijas" #: ../pan/gui/prefs-ui.cc:1018 #, fuzzy msgid "Autosave Articles" msgstr "Iš_saugoti laišką kaip..." #: ../pan/gui/prefs-ui.cc:1020 msgid "Minutes to autosave newsrc files: " msgstr "" #: ../pan/gui/prefs-ui.cc:1026 msgid "_Miscellaneous" msgstr "" #: ../pan/gui/prefs-ui.cc:1026 msgid "Miscellaneous" msgstr "" #: ../pan/gui/prefs-ui.cc:1031 #, fuzzy msgid "Pane Layout" msgstr "Išdėstymas" #: ../pan/gui/prefs-ui.cc:1050 msgid "1=Groups, 2=Headers, 3=Body" msgstr "" #: ../pan/gui/prefs-ui.cc:1052 msgid "1=Groups, 2=Body, 3=Headers" msgstr "" #: ../pan/gui/prefs-ui.cc:1054 msgid "1=Headers, 2=Groups, 3=Body" msgstr "" #: ../pan/gui/prefs-ui.cc:1056 msgid "1=Headers, 2=Body, 3=Groups" msgstr "" #: ../pan/gui/prefs-ui.cc:1058 #, fuzzy msgid "1=Body, 2=Groups, 3=Headers" msgstr "Įkeliamos grupės antraštės" #: ../pan/gui/prefs-ui.cc:1060 msgid "1=Body, 2=Headers, 3=Groups" msgstr "" #: ../pan/gui/prefs-ui.cc:1064 #, fuzzy msgid "Layout" msgstr "Išdėstymas" #: ../pan/gui/prefs-ui.cc:1069 #, fuzzy msgid "Header Pane Columns" msgstr "Gijų skydelis" #: ../pan/gui/prefs-ui.cc:1073 #, fuzzy msgid "_Headers" msgstr "Daugiau antraščių" #: ../pan/gui/prefs-ui.cc:1073 #, fuzzy msgid "Headers" msgstr "Daugiau antraščių" #: ../pan/gui/prefs-ui.cc:1079 msgid "" "This menu lets you configure Pan to take certain actions on your behalf " "automatically, based on a post's score." msgstr "" #: ../pan/gui/prefs-ui.cc:1082 msgid "_Delete posts scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1084 msgid "Mark posts _read scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1086 msgid "_Cache posts scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1088 msgid "Download _attachments of posts scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1091 #, fuzzy msgid "Actions" msgstr "Veiksmai" #: ../pan/gui/prefs-ui.cc:1096 ../pan/gui/prefs-ui.cc:1117 msgid "Fonts" msgstr "Šriftai" #: ../pan/gui/prefs-ui.cc:1098 msgid "Use custom font in Group Pane:" msgstr "" #: ../pan/gui/prefs-ui.cc:1103 msgid "Use custom font in Header Pane:" msgstr "" #: ../pan/gui/prefs-ui.cc:1108 msgid "Use custom font in Body Pane:" msgstr "" #: ../pan/gui/prefs-ui.cc:1113 msgid "Monospace font:" msgstr "" #: ../pan/gui/prefs-ui.cc:1117 #, fuzzy msgid "_Fonts" msgstr "Šriftai" #: ../pan/gui/prefs-ui.cc:1122 #, fuzzy msgid "Header Pane" msgstr "Gijų skydelis" #: ../pan/gui/prefs-ui.cc:1125 ../pan/gui/prefs-ui.cc:1131 #: ../pan/gui/prefs-ui.cc:1137 ../pan/gui/prefs-ui.cc:1143 #: ../pan/gui/prefs-ui.cc:1149 ../pan/gui/prefs-ui.cc:1155 #, fuzzy msgid "Text:" msgstr "Cituojamas tekstas" #: ../pan/gui/prefs-ui.cc:1127 ../pan/gui/prefs-ui.cc:1133 #: ../pan/gui/prefs-ui.cc:1139 ../pan/gui/prefs-ui.cc:1145 #: ../pan/gui/prefs-ui.cc:1151 ../pan/gui/prefs-ui.cc:1157 #, fuzzy msgid "Background:" msgstr "Laiško fonas" #: ../pan/gui/prefs-ui.cc:1129 msgid "Scores of 9999 or more:" msgstr "" #: ../pan/gui/prefs-ui.cc:1135 msgid "Scores from 5000 to 9998:" msgstr "" #: ../pan/gui/prefs-ui.cc:1141 msgid "Scores from 1 to 4999:" msgstr "" #: ../pan/gui/prefs-ui.cc:1147 msgid "Scores from -9998 to -1:" msgstr "" #: ../pan/gui/prefs-ui.cc:1153 msgid "Scores of -9999 or less:" msgstr "" #: ../pan/gui/prefs-ui.cc:1159 msgid "Read collapsed thread:" msgstr "" #: ../pan/gui/prefs-ui.cc:1161 #, fuzzy msgid "Body Pane" msgstr "Grupių sąrašo skydelis" #: ../pan/gui/prefs-ui.cc:1167 #, fuzzy msgid "Quoted text:" msgstr "Cituojamas tekstas" #: ../pan/gui/prefs-ui.cc:1168 msgid "URL:" msgstr "" #: ../pan/gui/prefs-ui.cc:1169 msgid "Signature:" msgstr "" #: ../pan/gui/prefs-ui.cc:1171 #, fuzzy msgid "_Colors" msgstr "Spalvos" #: ../pan/gui/prefs-ui.cc:1171 msgid "Colors" msgstr "Spalvos" #: ../pan/gui/prefs-ui.cc:1176 msgid "Preferred Applications" msgstr "" #: ../pan/gui/prefs-ui.cc:1180 msgid "_Web browser:" msgstr "" #: ../pan/gui/prefs-ui.cc:1183 #, fuzzy msgid "_Mail reader:" msgstr "El. pašto adresas:" #: ../pan/gui/prefs-ui.cc:1185 #, fuzzy msgid "_Text editor:" msgstr "_Keisti" #: ../pan/gui/prefs-ui.cc:1187 #, fuzzy msgid "_Applications" msgstr "Veiksmai" #: ../pan/gui/prefs-ui.cc:1187 #, fuzzy msgid "Applications" msgstr "Veiksmai" #: ../pan/gui/prefs-ui.cc:1192 ../pan/gui/task-pane.cc:512 #, fuzzy msgid "Encoding" msgstr "Nežinomas kodavimas" #: ../pan/gui/prefs-ui.cc:1196 msgid "Default bytes per file (for encoder): " msgstr "" #: ../pan/gui/prefs-ui.cc:1201 #, fuzzy msgid "_Upload" msgstr "Veiksmai" #: ../pan/gui/prefs-ui.cc:1201 msgid "Upload" msgstr "" #: ../pan/gui/prefs-ui.cc:1219 msgid "_Hotkeys" msgstr "" #: ../pan/gui/prefs-ui.cc:1219 msgid "Hotkeys" msgstr "" #: ../pan/gui/profiles-dialog.cc:83 msgid "Please choose your Email Address according to your PGP key's user id." msgstr "" #: ../pan/gui/profiles-dialog.cc:131 #, fuzzy msgid "Posting Profile" msgstr "Išsaugoti profilį" #: ../pan/gui/profiles-dialog.cc:143 #, fuzzy msgid "Profile Information" msgstr "Serveri informacija" #: ../pan/gui/profiles-dialog.cc:147 #, fuzzy msgid "_Profile Name:" msgstr "Profilio pavadinimas:" #: ../pan/gui/profiles-dialog.cc:150 #, fuzzy msgid "Required Information" msgstr "Serveri informacija" #: ../pan/gui/profiles-dialog.cc:154 #, fuzzy msgid "_Full Name:" msgstr "Visas vardas:" #: ../pan/gui/profiles-dialog.cc:158 msgid "" "Your Email Address.\n" "Note that this has to match your PGP Signature's Address\n" "if you want to PGP-Sign or Encrypt your messages correctly." msgstr "" #: ../pan/gui/profiles-dialog.cc:162 #, fuzzy msgid "_Email Address:" msgstr "El. pašto adresas:" #: ../pan/gui/profiles-dialog.cc:164 #, fuzzy msgid "_Post Articles via:" msgstr "Įkelia laišką" #: ../pan/gui/profiles-dialog.cc:167 #, fuzzy msgid "Signature" msgstr "ignoruojamoje" #: ../pan/gui/profiles-dialog.cc:170 msgid "_Use a Signature" msgstr "" #: ../pan/gui/profiles-dialog.cc:174 #, fuzzy msgid "Signature File" msgstr "Parašo byla:" #: ../pan/gui/profiles-dialog.cc:184 #, fuzzy msgid "Text File" msgstr "Rikiuoti laiškus" #: ../pan/gui/profiles-dialog.cc:186 #, fuzzy msgid "Text" msgstr "Cituojamas tekstas" #: ../pan/gui/profiles-dialog.cc:188 #, fuzzy msgid "Command" msgstr "Spausdinimo komanda:" #: ../pan/gui/profiles-dialog.cc:191 #, fuzzy msgid "PGP Signature" msgstr "ignoruojamoje" #: ../pan/gui/profiles-dialog.cc:196 #, fuzzy msgid "Signature Type : " msgstr "Parašo byla:" #: ../pan/gui/profiles-dialog.cc:223 msgid "X-Face (Avatar)" msgstr "" #: ../pan/gui/profiles-dialog.cc:226 msgid "" "You can add an avatar icon to your articles with a unique X-Face code. \n" "Add the code without the trailing \"X-Face:\" \n" " if it was generated by a helper program (for example http://www.dairiki.org/" "xface/xface.php)." msgstr "" #: ../pan/gui/profiles-dialog.cc:229 msgid "_X-Face:" msgstr "" #: ../pan/gui/profiles-dialog.cc:231 #, fuzzy msgid "Optional Information" msgstr "Serveri informacija" #: ../pan/gui/profiles-dialog.cc:236 msgid "" "When posting to Usenet, your article's Message-ID contains a domain name. \n" "You can set a custom domain name here, or leave it blank to let Pan use the " "domain name from your email address." msgstr "" #: ../pan/gui/profiles-dialog.cc:239 #, fuzzy msgid "Message-ID _Domain Name:" msgstr "Laiško ID:" #: ../pan/gui/profiles-dialog.cc:243 #, c-format msgid "" "%i for Message-ID\n" "%a for Author and Address\n" "%n for Author name\n" "%d for Date" msgstr "" #: ../pan/gui/profiles-dialog.cc:244 #, fuzzy msgid "_Attribution:" msgstr "Autorizacija" #: ../pan/gui/profiles-dialog.cc:268 msgid "" "Extra headers to be included in your posts, such as\n" "Reply-To: \"Your Name\"\n" "Organization: Your Organization\n" msgstr "" #: ../pan/gui/profiles-dialog.cc:278 #, fuzzy msgid "E_xtra Headers:" msgstr "Daugiau antraščių" #: ../pan/gui/profiles-dialog.cc:323 #, fuzzy msgid "Invalid email address." msgstr "Blogas tikrasis vardas" #: ../pan/gui/profiles-dialog.cc:324 msgid "Please use an address of the form joe@somewhere.org" msgstr "" #: ../pan/gui/profiles-dialog.cc:479 #, fuzzy msgid "New Profile" msgstr "Išsaugoti profilį" #: ../pan/gui/profiles-dialog.cc:525 #, fuzzy msgid "Posting Profiles" msgstr "Skelbiamas laiškas „%s“" #: ../pan/gui/profiles-dialog.cc:541 #, fuzzy msgid "Profiles" msgstr "Profilio pavadinimas" #: ../pan/gui/save-attach-ui.cc:77 ../pan/gui/save-ui.cc:77 #, c-format msgid "" "%g - group as one directory (alt.binaries.pictures.trains)\n" "%G - group as nested directory (/alt/binaries/pictures/trains)\n" "%s - subject line excerpt\n" "%S - subject line\n" " \n" "\"/home/user/News/Pan/%g\" becomes\n" "\"/home/user/News/Pan/alt.binaries.pictures.trains\", and\n" "\"/home/user/News/Pan/%G\" becomes\n" "\"/home/user/News/Pan/alt/binaries/pictures/trains\"," msgstr "" #: ../pan/gui/save-attach-ui.cc:223 ../pan/gui/save-ui.cc:242 msgid "Add to the queue sorted by date posted" msgstr "" #: ../pan/gui/save-attach-ui.cc:224 ../pan/gui/save-ui.cc:243 #, fuzzy msgid "Add to the front of the queue" msgstr "Pridėti užduotį eilės pradžioje" #: ../pan/gui/save-attach-ui.cc:225 ../pan/gui/save-ui.cc:244 #, fuzzy msgid "Add to the back of the queue" msgstr "Pridėti užduotį eilės pabaigoje" #: ../pan/gui/save-attach-ui.cc:257 #, fuzzy msgid "Pan: Save Attachments" msgstr "Išsaugoti priedą kaip" #: ../pan/gui/save-attach-ui.cc:282 ../pan/gui/save-attach-ui.cc:300 #: ../pan/gui/save-ui.cc:296 ../pan/gui/save-ui.cc:314 #, fuzzy msgid "_Location:" msgstr "Vieta" #: ../pan/gui/save-attach-ui.cc:286 ../pan/gui/save-ui.cc:300 #, fuzzy msgid "Save Articles" msgstr "Iš_saugoti laišką kaip..." #: ../pan/gui/save-attach-ui.cc:303 ../pan/gui/save-ui.cc:317 #, c-format msgid "_Group's path: %s" msgstr "" #: ../pan/gui/save-attach-ui.cc:314 ../pan/gui/save-ui.cc:332 msgid "_Priority:" msgstr "" #: ../pan/gui/save-ui.cc:233 #, fuzzy msgid "Save attachments" msgstr "Išsaugoti priedą kaip" #: ../pan/gui/save-ui.cc:234 #, fuzzy msgid "Save text" msgstr "Cituojamas tekstas" #: ../pan/gui/save-ui.cc:235 #, fuzzy msgid "Save attachments and text" msgstr "Išsaugoti priedą kaip" #: ../pan/gui/save-ui.cc:271 #, fuzzy msgid "Pan: Save Articles" msgstr "Rodyti išsaugotus laiškus" #: ../pan/gui/save-ui.cc:328 #, fuzzy msgid "_Action:" msgstr "Veiksmai" #: ../pan/gui/score-add-ui.cc:89 msgid "is more than" msgstr "" #: ../pan/gui/score-add-ui.cc:90 msgid "is at most" msgstr "" #: ../pan/gui/score-add-ui.cc:112 #, fuzzy msgid "increase the article's score by" msgstr "Užpildyti/Sulaužyti laiško tekstą" #: ../pan/gui/score-add-ui.cc:113 #, fuzzy msgid "decrease the article's score by" msgstr "Užpildyti/Sulaužyti laiško tekstą" #: ../pan/gui/score-add-ui.cc:114 msgid "set the article's score to" msgstr "" #: ../pan/gui/score-add-ui.cc:115 msgid "watch the article (set its score to 9999)" msgstr "" #: ../pan/gui/score-add-ui.cc:116 msgid "ignore the article (set its score to -9999)" msgstr "" #: ../pan/gui/score-add-ui.cc:141 #, fuzzy msgid "References" msgstr "Nuorodos:" #: ../pan/gui/score-add-ui.cc:142 #, fuzzy msgid "Line Count" msgstr "- Eilučių skaičius" #: ../pan/gui/score-add-ui.cc:143 #, fuzzy msgid "Byte Count" msgstr "- Eilučių skaičius" #: ../pan/gui/score-add-ui.cc:144 msgid "Crosspost Group Count" msgstr "" #: ../pan/gui/score-add-ui.cc:145 msgid "Age (in days)" msgstr "" #: ../pan/gui/score-add-ui.cc:167 msgid "for the next month" msgstr "" #: ../pan/gui/score-add-ui.cc:168 msgid "for the next six months" msgstr "" #: ../pan/gui/score-add-ui.cc:169 msgid "forever" msgstr "" #: ../pan/gui/score-add-ui.cc:194 msgid "contains" msgstr "turi" #: ../pan/gui/score-add-ui.cc:195 #, fuzzy msgid "doesn't contain" msgstr "neturi" #: ../pan/gui/score-add-ui.cc:196 #, fuzzy msgid "is" msgstr "Tinka" #: ../pan/gui/score-add-ui.cc:197 msgid "isn't" msgstr "" #: ../pan/gui/score-add-ui.cc:198 msgid "starts with" msgstr "" #: ../pan/gui/score-add-ui.cc:199 msgid "ends with" msgstr "" #: ../pan/gui/score-add-ui.cc:200 msgid "matches regex" msgstr "" #: ../pan/gui/score-add-ui.cc:481 #, fuzzy msgid "Another rule already sets this article's score." msgstr "Užpildyti/Sulaužyti laiško tekstą" #: ../pan/gui/score-add-ui.cc:482 msgid "You may want to go back or delete the old rule." msgstr "" #: ../pan/gui/score-add-ui.cc:553 #, fuzzy msgid "Add and Re_score" msgstr "Pašto serveris" #: ../pan/gui/score-add-ui.cc:604 ../pan/gui/score-add-ui.cc:624 #, fuzzy msgid "New Scoring Rule" msgstr "Naujos taisyklės pavadinimas" #: ../pan/gui/score-add-ui.cc:635 #, fuzzy msgid "If the group name" msgstr "Pritraukti Naujienų grupių sritį" #: ../pan/gui/score-add-ui.cc:642 #, fuzzy msgid "And the article's" msgstr "Rodyti stebimus laiškus" #: ../pan/gui/score-view-ui.cc:56 #, fuzzy msgid "Close and Re_score" msgstr "Uždaryti šį langą" #: ../pan/gui/score-view-ui.cc:154 #, c-format msgid "File %s, Lines %d - %d" msgstr "" #: ../pan/gui/score-view-ui.cc:182 #, fuzzy msgid "Pan: Article's Scores" msgstr "Iš_saugoti laišką kaip..." #: ../pan/gui/score-view-ui.cc:208 #, fuzzy msgid "Add" msgstr "Pri_dėti" #: ../pan/gui/score-view-ui.cc:213 #, fuzzy msgid "New Score" msgstr "Naujienų serveriai" #: ../pan/gui/score-view-ui.cc:218 msgid "Criteria" msgstr "" #: ../pan/gui/score-view-ui.cc:241 #, fuzzy msgid "Add a New Scoring Rule" msgstr "Sukurti naują aplanką" #: ../pan/gui/score-view-ui.cc:248 #, fuzzy msgid "Remove the Selected Scoring Rule" msgstr "Pervadinti pažymėtą grupę" #: ../pan/gui/server-ui.cc:221 msgid "Please specify the server's address." msgstr "" #: ../pan/gui/server-ui.cc:264 msgid "Import SSL certificate (PEM format) from File" msgstr "" #. create the dialog #: ../pan/gui/server-ui.cc:290 ../pan/gui/server-ui.cc:869 #, fuzzy msgid "Add a Server" msgstr "Pašto serveris" #: ../pan/gui/server-ui.cc:290 ../pan/gui/server-ui.cc:875 #, fuzzy msgid "Edit a Server's Settings" msgstr "Kiekvieno serverio nuostatos" #: ../pan/gui/server-ui.cc:310 msgid "Location" msgstr "Vieta" #: ../pan/gui/server-ui.cc:314 msgid "The news server's actual address, e.g. \"news.mynewsserver.com\"" msgstr "" #: ../pan/gui/server-ui.cc:315 #, fuzzy msgid "_Address:" msgstr "Adresas:" #: ../pan/gui/server-ui.cc:319 msgid "The news server's port number. Typically 119." msgstr "" #: ../pan/gui/server-ui.cc:320 #, fuzzy msgid "Por_t:" msgstr "Prievadas:" #: ../pan/gui/server-ui.cc:323 msgid "Login (if Required)" msgstr "" #: ../pan/gui/server-ui.cc:327 #, fuzzy msgid "_Username:" msgstr "Vartotojas" #: ../pan/gui/server-ui.cc:328 msgid "" "The username to give the server when asked. If your server doesn't require " "authentication, you can leave this blank." msgstr "" #: ../pan/gui/server-ui.cc:332 #, fuzzy msgid "_Password:" msgstr "Slaptažodis:" #: ../pan/gui/server-ui.cc:333 msgid "" "The password to give the server when asked. If your server doesn't require " "authentication, you can leave this blank." msgstr "" #: ../pan/gui/server-ui.cc:336 #, fuzzy msgid "Settings" msgstr "Ryšio nuostatos" #: ../pan/gui/server-ui.cc:343 #, fuzzy msgid "Connection _Limit:" msgstr "Jungiasi" #: ../pan/gui/server-ui.cc:347 msgid "After Two Weeks" msgstr "" #: ../pan/gui/server-ui.cc:348 msgid "After One Month" msgstr "" #: ../pan/gui/server-ui.cc:349 msgid "After Two Months" msgstr "" #: ../pan/gui/server-ui.cc:350 msgid "After Three Months" msgstr "" #: ../pan/gui/server-ui.cc:351 msgid "After Six Months" msgstr "" #: ../pan/gui/server-ui.cc:352 #, fuzzy msgid "Never Expire Old Articles" msgstr "Perkelti pažymėtus laiškus" #: ../pan/gui/server-ui.cc:366 #, fuzzy msgid "E_xpire Old Articles:" msgstr "Pažymėtus laiškus" #: ../pan/gui/server-ui.cc:370 #, fuzzy msgid "Primary" msgstr "Prioritetas" #: ../pan/gui/server-ui.cc:371 msgid "Fallback" msgstr "" #: ../pan/gui/server-ui.cc:385 #, fuzzy msgid "Server Rank:" msgstr "Serveris" #: ../pan/gui/server-ui.cc:389 msgid "" "Fallback servers are used for articles that can't be found on the " "primaries. One common approach is to use free servers as primaries and " "subscription servers as fallbacks." msgstr "" #: ../pan/gui/server-ui.cc:396 msgid "Security" msgstr "" #: ../pan/gui/server-ui.cc:401 msgid "Use Plaintext (Unsecured) Connections" msgstr "" #: ../pan/gui/server-ui.cc:402 #, fuzzy msgid "Use Secure SSL Connections" msgstr "Nustatyti jungčių ribas kiekvienam serveriui" #: ../pan/gui/server-ui.cc:418 msgid "TLS (SSL) Options:" msgstr "" #: ../pan/gui/server-ui.cc:423 msgid "" "You can set the option for using/disabling secure SSL/TLS connections here. " "If you enable SSL/TLS, your data is encrypted and secure. It is encouraged " "to use this option for privacy reasons." msgstr "" #: ../pan/gui/server-ui.cc:428 msgid "Always trust this server's certificate" msgstr "" #: ../pan/gui/server-ui.cc:602 #, c-format msgid "Really delete \"%s\"?" msgstr "" #: ../pan/gui/server-ui.cc:691 msgid "No information available." msgstr "" #: ../pan/gui/server-ui.cc:697 #, c-format msgid "Server Certificate for '%s'" msgstr "" #: ../pan/gui/server-ui.cc:795 #, c-format msgid "Really delete certificate for \"%s\"?" msgstr "" #. dialog #: ../pan/gui/server-ui.cc:822 ../pan/gui/server-ui.cc:843 #: ../pan/gui/server-ui.cc:941 #, fuzzy msgid "Servers" msgstr "Serveris" #: ../pan/gui/server-ui.cc:882 #, fuzzy msgid "Remove a Server" msgstr "Naujienų serveris" #. dialog #: ../pan/gui/server-ui.cc:915 msgid "SSL Certificates" msgstr "" #: ../pan/gui/server-ui.cc:936 msgid "Certificates" msgstr "" #: ../pan/gui/server-ui.cc:967 msgid "Import Certificate" msgstr "" #: ../pan/gui/server-ui.cc:973 msgid "Inspect Certificate" msgstr "" #: ../pan/gui/server-ui.cc:980 #, fuzzy msgid "Remove Certificate" msgstr "Naujienų serveris" #: ../pan/gui/task-pane.cc:143 #, c-format msgid "" "\n" "Upload\n" "\n" "Subject: \"%s\"\n" "From: %s\n" "Groups: %s\n" "Sourcefile: %s\n" msgstr "" #: ../pan/gui/task-pane.cc:155 #, c-format msgid "" "\n" "Download\n" "\n" "Subject: \"%s\"\n" "From: %s\n" "Date: %s\n" "Groups: %s\n" "Save Path: %s\n" msgstr "" #: ../pan/gui/task-pane.cc:157 #, fuzzy msgid "unknown" msgstr "Nežinomas domenas" #: ../pan/gui/task-pane.cc:263 msgid "Choose new destination for selected Tasks" msgstr "" #: ../pan/gui/task-pane.cc:417 #, fuzzy, c-format msgid "Pan: Tasks (%d Queued, %d Running, %d Stopped)" msgstr "Pan %s Užduočių tvarkyklė (%d Eilėje, %d Vykdoma, %d Nepavyko)" #: ../pan/gui/task-pane.cc:419 #, fuzzy, c-format msgid "Pan: Tasks (%d Queued, %d Running)" msgstr "Pan %s Užduočių tvarkyklė (%d Eilėje, %d Vykdoma)" #: ../pan/gui/task-pane.cc:421 #, fuzzy, c-format msgid "Pan: Tasks" msgstr "Nėra užduočių" #: ../pan/gui/task-pane.cc:446 #, c-format msgid "%lu selected, %s" msgstr "" #: ../pan/gui/task-pane.cc:510 msgid "Running" msgstr "Vykdoma" #: ../pan/gui/task-pane.cc:511 #, fuzzy msgid "Decoding" msgstr "Iškoduojamas „%s“" #: ../pan/gui/task-pane.cc:513 msgid "Queued for Decode" msgstr "" #: ../pan/gui/task-pane.cc:514 msgid "Queued for Encode" msgstr "" #: ../pan/gui/task-pane.cc:515 msgid "Queued" msgstr "Yra eilėje" #: ../pan/gui/task-pane.cc:516 msgid "Stopped" msgstr "" #: ../pan/gui/task-pane.cc:517 #, fuzzy msgid "Removing" msgstr "Pe_rvadinti" #: ../pan/gui/task-pane.cc:546 #, fuzzy, c-format msgid "%d%% Done" msgstr "% Atlikta" #: ../pan/gui/task-pane.cc:552 #, fuzzy, c-format msgid "%d:%02d:%02d Remaining (%d @ %lu KiB/s)" msgstr "%.2f kBps, liko %d:%02d:%02d" #: ../pan/gui/task-pane.cc:646 ../pan/gui/task-pane.cc:647 #, fuzzy msgid "Move To Top" msgstr "Eilute ž_emyn" #: ../pan/gui/task-pane.cc:651 ../pan/gui/task-pane.cc:652 #, fuzzy msgid "Move To Bottom" msgstr "Perkelti pažymėtas užduotis į apačią" #: ../pan/gui/task-pane.cc:656 ../pan/gui/task-pane.cc:657 #, fuzzy msgid "Stop Task" msgstr "Nėra užduočių" #: ../pan/gui/task-pane.cc:661 ../pan/gui/task-pane.cc:662 #, fuzzy msgid "Delete Task" msgstr "Ištrinti" #: ../pan/gui/task-pane.cc:666 ../pan/gui/task-pane.cc:667 msgid "Restart Task" msgstr "" #: ../pan/gui/task-pane.cc:671 ../pan/gui/task-pane.cc:672 msgid "Change Download Destination" msgstr "" #: ../pan/gui/task-pane.cc:729 #, fuzzy msgid "_Online" msgstr "Prisijungęs" #: ../pan/gui/task-pane.cc:746 msgid "Restart Tasks" msgstr "" #: ../pan/gui/task-pane.cc:748 #, fuzzy msgid "Stop Tasks" msgstr "Nėra užduočių" #: ../pan/gui/task-pane.cc:750 #, fuzzy msgid "Delete Tasks" msgstr "Ištrinti" #: ../pan/gui/url.cc:123 #, c-format msgid "Error starting URL: %s (Command was: %s)" msgstr "" #: ../pan/tasks/decoder.cc:115 #, fuzzy, c-format msgid "Couldn't save file \"%s\": %s" msgstr "Nepavyko sukurti katalogo „%s“: %s" #: ../pan/tasks/decoder.cc:137 ../pan/tasks/encoder.cc:136 msgid "Error initializing uulib" msgstr "" #: ../pan/tasks/decoder.cc:152 ../pan/tasks/socket-impl-gio.cc:352 #: ../pan/tasks/socket-impl-openssl.cc:634 #, fuzzy, c-format msgid "Error reading from %s: %s" msgstr "Klaida skaitant iš lizdo." #: ../pan/tasks/decoder.cc:192 #, c-format msgid "Saved \"%s\"" msgstr "Išsaugotas „%s“" #: ../pan/tasks/decoder.cc:199 #, fuzzy, c-format msgid "" "Error saving \"%s\":\n" "%s." msgstr "Klaida skaitant iš lizdo." #: ../pan/tasks/decoder.cc:314 ../pan/tasks/task-article.cc:350 #, fuzzy, c-format msgid "Decoding %s" msgstr "Iškoduojamas „%s“" #: ../pan/tasks/encoder.cc:102 ../pan/tasks/encoder.cc:155 #, fuzzy, c-format msgid "Error loading %s from cache." msgstr "Klaida skaitant iš lizdo." #: ../pan/tasks/encoder.cc:177 #, fuzzy, c-format msgid "Error encoding %s: %s" msgstr "Klaida skaitant iš lizdo." #: ../pan/tasks/encoder.cc:269 #, fuzzy, c-format msgid "Encoding %s" msgstr "Nežinomas kodavimas" #: ../pan/tasks/nntp.cc:126 #, fuzzy, c-format msgid "%s requires a username, but none is set." msgstr "Mano serveris reikalauja vartotojo vardo ir slaptažodžio" #: ../pan/tasks/nntp.cc:139 #, fuzzy, c-format msgid "%s requires a password, but none is set." msgstr "Mano serveris reikalauja vartotojo vardo ir slaptažodžio" #: ../pan/tasks/nntp.cc:205 #, c-format msgid "Sending \"%s\" to %s returned an error: %s" msgstr "" #: ../pan/tasks/nntp.cc:228 #, c-format msgid "Sending \"%s\" to %s returned an unrecognized response: \"%s\"" msgstr "" #: ../pan/tasks/nntp-pool.cc:222 #, fuzzy, c-format msgid "Unable to connect to \"%s\"" msgstr "Nepavyko prisijungti prie pašto serverio „%s“" #: ../pan/tasks/socket-impl-gio.cc:173 ../pan/tasks/socket-impl-gio.cc:211 #: ../pan/tasks/socket-impl-openssl.cc:214 #: ../pan/tasks/socket-impl-openssl.cc:252 #, fuzzy, c-format msgid "Error connecting to \"%s\"" msgstr "Klaida skaitant iš lizdo." #: ../pan/tasks/socket-impl-gio.cc:351 ../pan/tasks/socket-impl-openssl.cc:633 #, fuzzy msgid "Unknown Error" msgstr "Nežinomas domenas" #: ../pan/tasks/task-article.cc:61 ../pan/tasks/task-article.cc:156 #: ../pan/tasks/task-article.cc:159 #, fuzzy, c-format msgid "Saving %s" msgstr "Saugomas „%s“" #: ../pan/tasks/task-article.cc:63 #, fuzzy, c-format msgid "Reading %s" msgstr "Įkeliamas %s" #: ../pan/tasks/task-article.cc:322 #, c-format msgid "Article \"%s\" is incomplete -- the news server(s) don't have part %s" msgstr "" #: ../pan/tasks/task-groups.cc:40 #, fuzzy, c-format msgid "Getting group list from \"%s\"" msgstr "Gaunu %s iš %s" #: ../pan/tasks/task-groups.cc:122 #, c-format msgid "Fetched %lu Groups" msgstr "" #: ../pan/tasks/task-post.cc:35 #, fuzzy, c-format msgid "Posting \"%s\"" msgstr "Apdorojamas „%s“" #: ../pan/tasks/task-post.cc:76 #, fuzzy, c-format msgid "Posting of \"%s\" failed: %s" msgstr "Skelbiamas laiškas „%s“" #: ../pan/tasks/task-post.cc:81 #, c-format msgid "Posting of \"%s\" succesful: %s" msgstr "" #: ../pan/tasks/task-upload.cc:51 #, fuzzy, c-format msgid "Uploading %s" msgstr "Įkeliamas %s" #: ../pan/tasks/task-upload.cc:249 #, fuzzy, c-format msgid "Uploading %s - Part %d of %d" msgstr "Skelbiu laiško „%s“ %d dalį iš %d." #: ../pan/tasks/task-upload.cc:251 #, c-format msgid "Uploading Message body with Subject \"%s\"" msgstr "" #: ../pan/tasks/task-upload.cc:308 #, c-format msgid "Posting of File %s (Part %d of %d) failed: No Posts allowed by server." msgstr "" #: ../pan/tasks/task-upload.cc:316 #, fuzzy, c-format msgid "Posting of File %s (Part %d of %d) failed: %s" msgstr "Skelbiamas laiškas „%s“" #: ../pan/tasks/task-upload.cc:326 ../pan/tasks/task-upload.cc:333 #, fuzzy, c-format msgid "Posting of file %s (Part %d of %d) succesful: %s" msgstr "Skelbiu laiško „%s“ %d dalį iš %d." #: ../pan/tasks/task-upload.cc:343 #, fuzzy, c-format msgid "Posting of file %s succesful: %s" msgstr "Skelbiamas laiškas „%s“" #: ../pan/tasks/task-upload.cc:347 #, c-format msgid "" "Posting of file %s not completely successful: Check the log (right-click on " "list item) !" msgstr "" #: ../pan/tasks/task-upload.cc:364 #, c-format msgid "" "Posting of file %s not successful: Check the log (right-click on list item) !" msgstr "" #: ../pan/tasks/task-xover.cc:79 #, fuzzy, c-format msgid "Getting all headers for \"%s\"" msgstr "Gaunamos %s į „%s“" #: ../pan/tasks/task-xover.cc:81 #, fuzzy, c-format msgid "Getting new headers for \"%s\"" msgstr "Gaunamos %s į „%s“" #. SAMPLE #: ../pan/tasks/task-xover.cc:83 #, fuzzy, c-format msgid "Sampling headers for \"%s\"" msgstr "Gaunamos %s į „%s“" #: ../pan/tasks/task-xover.cc:369 #, fuzzy, c-format msgid "%s (%lu parts, %lu articles)" msgstr "Skirstoma į gijas %u laiškų" #: ../pan/tasks/task-xoverinfo.cc:78 #, fuzzy, c-format msgid "Getting header counts for \"%s\"" msgstr "Gaunamos %s į „%s“" #: ../pan/usenet-utils/filter-info.cc:163 #, fuzzy msgid "article doesn't have attachments" msgstr "laiške yra %s dvejetainių priedų" #: ../pan/usenet-utils/filter-info.cc:167 #, fuzzy msgid "the article has attachments" msgstr "laiške yra %s dvejetainių priedų" #: ../pan/usenet-utils/filter-info.cc:171 #, fuzzy msgid "the article isn't cached locally" msgstr "Laiškas y_ra pažymėtas" #: ../pan/usenet-utils/filter-info.cc:175 #, fuzzy msgid "the article is cached locally" msgstr "Laiškas y_ra pažymėtas" #: ../pan/usenet-utils/filter-info.cc:179 #, fuzzy msgid "the article wasn't posted by you" msgstr "Laiškas _buvo paskelbtas prieš daugiau nei" #: ../pan/usenet-utils/filter-info.cc:183 #, fuzzy msgid "the article was posted by you" msgstr "Laiškas _buvo paskelbtas prieš daugiau nei" #: ../pan/usenet-utils/filter-info.cc:187 #, fuzzy msgid "the article has been read" msgstr "La_iške yra" #: ../pan/usenet-utils/filter-info.cc:191 #, fuzzy msgid "the article hasn't been read" msgstr "La_iške yra" #: ../pan/usenet-utils/filter-info.cc:195 #, fuzzy, c-format msgid "the article is less than %ld bytes long" msgstr "laiškas yra daugiau nei %d dienų senumo" #: ../pan/usenet-utils/filter-info.cc:200 #, fuzzy, c-format msgid "the article is at least %ld bytes long" msgstr "laiškas yra daugiau nei %d dienų senumo" #: ../pan/usenet-utils/filter-info.cc:205 #, fuzzy, c-format msgid "the article is less than %ld lines long" msgstr "laiškas yra daugiau nei %d dienų senumo" #: ../pan/usenet-utils/filter-info.cc:210 #, fuzzy, c-format msgid "the article is at least %ld lines long" msgstr "laiškas yra daugiau nei %d dienų senumo" #: ../pan/usenet-utils/filter-info.cc:215 #, fuzzy, c-format msgid "the article is less than %ld days old" msgstr "laiškas yra daugiau nei %d dienų senumo" #: ../pan/usenet-utils/filter-info.cc:220 #, fuzzy, c-format msgid "the article is at least %ld days old" msgstr "laiškas yra daugiau nei %d dienų senumo" #: ../pan/usenet-utils/filter-info.cc:225 #, fuzzy, c-format msgid "the article was posted to less than %ld groups" msgstr "laiškas buvo paskelbtas daugiau nei %d grupėse" #: ../pan/usenet-utils/filter-info.cc:230 #, fuzzy, c-format msgid "the article was posted to at least %ld groups" msgstr "laiškas buvo paskelbtas daugiau nei %d grupėse" #: ../pan/usenet-utils/filter-info.cc:235 #, fuzzy, c-format msgid "the article's score is less than %ld" msgstr "Laiške yra _daugiau nei" #: ../pan/usenet-utils/filter-info.cc:240 #, fuzzy, c-format msgid "the article's score is %ld or higher" msgstr "Laiške yra _daugiau nei" #: ../pan/usenet-utils/filter-info.cc:249 #: ../pan/usenet-utils/filter-info.cc:259 #, fuzzy, c-format msgid "%s doesn't contain \"%s\"" msgstr "%s neturi %s \"%s\"" #: ../pan/usenet-utils/filter-info.cc:250 #: ../pan/usenet-utils/filter-info.cc:260 #, fuzzy, c-format msgid "%s isn't \"%s\"" msgstr "%s turi %s \"%s\"" #: ../pan/usenet-utils/filter-info.cc:251 #: ../pan/usenet-utils/filter-info.cc:261 #, fuzzy, c-format msgid "%s doesn't begin with \"%s\"" msgstr "%s neturi %s \"%s\"" #: ../pan/usenet-utils/filter-info.cc:252 #: ../pan/usenet-utils/filter-info.cc:262 #, fuzzy, c-format msgid "%s doesn't end with \"%s\"" msgstr "%s neturi %s \"%s\"" #: ../pan/usenet-utils/filter-info.cc:253 #: ../pan/usenet-utils/filter-info.cc:263 #, fuzzy, c-format msgid "%s doesn't match the regex \"%s\"" msgstr "%s neturi %s \"%s\"" #: ../pan/usenet-utils/filter-info.cc:275 #, fuzzy, c-format msgid "%s contains \"%s\"" msgstr "%s turi %s \"%s\"" #: ../pan/usenet-utils/filter-info.cc:276 #, fuzzy, c-format msgid "%s is \"%s\"" msgstr "%s turi %s \"%s\"" #: ../pan/usenet-utils/filter-info.cc:277 #, fuzzy, c-format msgid "%s begins with \"%s\"" msgstr "%s turi %s \"%s\"" #: ../pan/usenet-utils/filter-info.cc:278 #, fuzzy, c-format msgid "%s ends with \"%s\"" msgstr "%s turi %s \"%s\"" #: ../pan/usenet-utils/filter-info.cc:279 #, fuzzy, c-format msgid "%s matches the regex \"%s\"" msgstr "laiškas yra pažymėtas %s" #: ../pan/usenet-utils/filter-info.cc:285 msgid "Any of these tests fail:" msgstr "" #: ../pan/usenet-utils/filter-info.cc:292 msgid "All of these tests pass:" msgstr "" #: ../pan/usenet-utils/filter-info.cc:299 msgid "None of these tests pass:" msgstr "" #: ../pan/usenet-utils/filter-info.cc:306 msgid "Any of these tests pass:" msgstr "" #: ../pan/usenet-utils/gnksa.cc:878 #, c-format msgid "No email address provided; generating message-id with domain \"%s\"" msgstr "" #: ../pan/usenet-utils/message-check.cc:124 msgid "Warning: Reply seems to be top-posted." msgstr "" #: ../pan/usenet-utils/message-check.cc:145 msgid "Warning: The signature marker should be \"-- \", not \"--\"." msgstr "" #: ../pan/usenet-utils/message-check.cc:162 #, fuzzy msgid "Warning: Signature prefix with no signature." msgstr "DĖMESIO: Parašo skyriklis be paties parašo." #: ../pan/usenet-utils/message-check.cc:167 #, fuzzy msgid "Warning: Signature is more than 4 lines long." msgstr "DĖMESIO: parašas yra ilgesnis nei 4 eilutės" #: ../pan/usenet-utils/message-check.cc:172 #, fuzzy msgid "Warning: Signature is more than 80 characters wide." msgstr "DĖMESIO: parašas yra ilgesnis nei 4 eilutės" #: ../pan/usenet-utils/message-check.cc:198 #, fuzzy, c-format msgid "Warning: %d line is more than 80 characters wide." msgid_plural "Warning: %d lines are more than 80 characters wide." msgstr[0] "DĖMESIO: parašas yra ilgesnis nei 4 eilutės" msgstr[1] "DĖMESIO: parašas yra ilgesnis nei 4 eilutės" #: ../pan/usenet-utils/message-check.cc:223 #, fuzzy msgid "Error: Message is empty." msgstr "KLAIDA: Laiškas yra tuščias." #: ../pan/usenet-utils/message-check.cc:258 #, fuzzy msgid "Warning: The message is entirely quoted text!" msgstr "DĖMESIO: Laiške yra vien tik cituojamas tekstas!" #: ../pan/usenet-utils/message-check.cc:259 #, fuzzy msgid "Warning: The message is mostly quoted text." msgstr "DĖMESIO: Laiške yra beveik tik cituojamas tekstas." #: ../pan/usenet-utils/message-check.cc:309 #, fuzzy msgid "Error: Message appears to have no new content." msgstr "KLAIDA: Atrodo, kad laiške nėra nieko naujo." #: ../pan/usenet-utils/message-check.cc:344 #: ../pan/usenet-utils/message-check.cc:383 #, c-format msgid "" "Warning: The posting profile's server doesn't carry newsgroup\n" "\t\"%s\".\n" "\tIf the group name is correct, switch profiles in the \"From:\"\n" "\tline or edit the profile with \"Edit|Manage Posting Profiles\"." msgstr "" #: ../pan/usenet-utils/message-check.cc:355 #, fuzzy msgid "Warning: Following-Up to too many groups." msgstr "DĖMESIO: Dalyvaujama-kur daugelyje grupių." #: ../pan/usenet-utils/message-check.cc:366 #, fuzzy msgid "Error: No Subject specified." msgstr "KLAIDA: Nenurodyta jokia tema." #: ../pan/usenet-utils/message-check.cc:395 #, fuzzy, c-format msgid "Warning: Group \"%s\" is read-only." msgstr "DĖMESIO: Grupė „%s“ yra tik skaitymui." #: ../pan/usenet-utils/message-check.cc:404 #, fuzzy msgid "Error: Posting to a very large number of groups." msgstr "KLAIDA: Siunčiama į labai didelį kiekį grupių." #: ../pan/usenet-utils/message-check.cc:409 #, fuzzy msgid "Warning: Posting to a large number of groups." msgstr "DĖMESIO: Siunčiama į labai didelį kiekį grupių." #: ../pan/usenet-utils/message-check.cc:416 #, fuzzy msgid "Warning: Crossposting without setting Followup-To header." msgstr "DĖMESIO: Kryžminis skelbimas nenurodant Pratęsimas-į:" #: ../pan/usenet-utils/message-check.cc:441 #, fuzzy msgid "Error: Bad email address." msgstr "El. pašto adresas:" #: ../pan/usenet-utils/message-check.cc:450 msgid "Warning: Most newsgroups frown upon HTML posts." msgstr "" #: ../pan/usenet-utils/message-check.cc:486 #, fuzzy msgid "Error: No Recipients." msgstr "Nėra gavėjų!" #: ../pan/usenet-utils/scorefile.cc:304 #, c-format msgid "" "Error reading score in %*.*s, line %d: expected 'Expires: MM/DD/YYYY' or " "'Expires: DD-MM-YYYY'." msgstr "" #: ../pan/usenet-utils/scorefile.cc:307 #, c-format msgid "Expired old score from %*.*s, line %d" msgstr "" #: ../pan/usenet-utils/scorefile.cc:380 #, c-format msgid "Error reading score in %*.*s, line %d: unexpected line." msgstr "" #: ../pan/usenet-utils/scorefile.cc:428 #, c-format msgid "Read %lu scoring rules in %lu sections from \"%s\"" msgstr "" #: ../pan/usenet-utils/ssl-utils.h:199 #, c-format msgid "Error printing the server certificate for '%s'" msgstr "" #: ../pan/usenet-utils/ssl-utils.h:216 #, c-format msgid "" "The current server '%s' sent this security certificate :\n" "\n" msgstr "" #: ../pan/usenet-utils/ssl-utils.h:217 #, c-format msgid "" "Certificate information for server '%s' :\n" "\n" msgstr "" #: ../pan/usenet-utils/ssl-utils.h:219 #, c-format msgid "" "%sIssuer information:\n" "%s\n" "Valid until : %s\n" "\n" "Not valid before : %s\n" "\n" msgstr "" #: ../pan/usenet-utils/text-massager.cc:397 msgid "> [quoted text muted]" msgstr "> [cituojamas tekstas paslėptas]" #, fuzzy #~ msgid "_Toggle Flag on for Thread" #~ msgstr "Stebimos gijos" #, fuzzy #~ msgid "Attachment not shown: MIME type %s/%s\n" #~ msgstr "Priedas: %s - %s - %s\n" #, fuzzy #~ msgid "Error!" #~ msgstr "Klaida" #, fuzzy #~ msgid "An error has occured. Maximize Pan to investigate." #~ msgstr "Įvyko klaida rašant į serverį" #, fuzzy #~ msgid "Encoding Options" #~ msgstr "Sąlygos" #, fuzzy #~ msgid "Creating directory \"%s\"" #~ msgstr "Nepavyko sukurti katalogo „%s“: %s" #, fuzzy #~ msgid "Couldn't create directory \"%s\": %s" #~ msgstr "Nepavyko sukurti katalogo „%s“: %s" #, fuzzy #~ msgid "_Groups" #~ msgstr "Grupės" #, fuzzy #~ msgid "Read Selected Group" #~ msgstr "Pažymi grupę" #, fuzzy #~ msgid "_Mark Group _Read" #~ msgstr "Pažymėti skaitytais" #, fuzzy #~ msgid "_Delete Group's Articles" #~ msgstr "Ištrinti senus laiškus" #, fuzzy #~ msgid "Get New Headers for Selected Groups" #~ msgstr "Gauti naujas antraštes ir tekstus pažymėtose grupėse" #, fuzzy #~ msgid "Get New Headers for Subscribed Groups" #~ msgstr "Gauti naujas antraštes ir tekstus iš pažymėtų grupių" #, fuzzy #~ msgid "Get Headers from Server" #~ msgstr "Mėginti antraštes iš pažymėtų grupių" #, fuzzy #~ msgid "Get a new Group list from the Server" #~ msgstr "Mėginti antraštes iš pažymėtų grupių" #, fuzzy #~ msgid "Subscribe to Selected Groups" #~ msgstr "Užsisakyti pažymėtą grupę (es)" #, fuzzy #~ msgid "Unsubscribe from Selected Groups" #~ msgstr "Atsisakyti pažymėtos grupės (ių)" #, fuzzy #~ msgid "Save Selected Articles..." #~ msgstr "Pažymėti laiškus vėliavėlėmis" #, fuzzy #~ msgid "Cancel Last Task" #~ msgstr "Nutraukti pažymėtas užduotis" #, fuzzy #~ msgid "Clear Header Pane" #~ msgstr "Gijų skydelis" #, fuzzy #~ msgid "Clear Body Pane" #~ msgstr "Grupių sąrašo skydelis" #, fuzzy #~ msgid "Download _Selected Article" #~ msgstr "Atžymėti laiškų vėliavėles" #, fuzzy #~ msgid "Download Selected Article" #~ msgstr "Atžymėti laiškų vėliavėles" #, fuzzy #~ msgid "Read _Selected Article" #~ msgstr "Pažymėtus laiškus" #, fuzzy #~ msgid "Next Unread Group" #~ msgstr "Kita neskaityta _grupė" #, fuzzy #~ msgid "Next Group" #~ msgstr "Kita grupė" #, fuzzy #~ msgid "Next Thread" #~ msgstr "Ignoruoti giją" #, fuzzy #~ msgid "Previous Article" #~ msgstr "_Aukštyn pažymėti praeitą laišką" #, fuzzy #~ msgid "Previous Thread" #~ msgstr "Aukštyn pažymėti praeitą giją" #, fuzzy #~ msgid "Parent Article" #~ msgstr "Rikiuoti laiškus" #, fuzzy #~ msgid "_Plonk Author" #~ msgstr "- Autorius" #, fuzzy #~ msgid "Mark Article as Read" #~ msgstr "Laiškas _yra " #, fuzzy #~ msgid "Mark Article as Unread" #~ msgstr "Laiškas _yra " #, fuzzy #~ msgid "Reply to Author" #~ msgstr "- Autorius" #, fuzzy #~ msgid "Match Only Articles Posted by Me" #~ msgstr "Laiškas _buvo paskelbtas prieš daugiau nei" #, fuzzy #~ msgid "Pan: " #~ msgstr "Pan %s" #, fuzzy #~ msgid "Clear the Filter" #~ msgstr "Išvalyti šį logą." #, fuzzy #~ msgid "Pan: %s" #~ msgstr "Pan %s" #, fuzzy #~ msgid "Tasks: %u/%u" #~ msgstr "Užduotys: %d/%d" #, fuzzy #~ msgid "%.1f KiB" #~ msgstr "%d @ %.1f kB/s" #, fuzzy #~ msgid "Wrap the Article Body to 80 Columns" #~ msgstr "Užpildyti/Sulaužyti laiško tekstą" #, fuzzy #~ msgid "_Close" #~ msgstr "Uždaryti" #, fuzzy #~ msgid "Close Window" #~ msgstr "Uždaryti šį langą" #, fuzzy #~ msgid "Cut Text" #~ msgstr "Cituojamas tekstas" #, fuzzy #~ msgid "_Copy" #~ msgstr "_Kopijuoti" #, fuzzy #~ msgid "Copy Text" #~ msgstr "Laužyti tekstą" #, fuzzy #~ msgid "_Paste" #~ msgstr "_Rašymas" #, fuzzy #~ msgid "Paste Text" #~ msgstr "Cituojamas tekstas" #, fuzzy #~ msgid "Manage Posting Pr_ofiles..." #~ msgstr "Nepavyko paskelbti naujienų grupėse.\n" #, fuzzy #~ msgid "Error loading post.ui: \"%s\"" #~ msgstr "Klaida skaitant iš lizdo." #, fuzzy #~ msgid "Editors" #~ msgstr "_Keisti" #, fuzzy #~ msgid "Posting Article" #~ msgstr "Rūšiuojami laiškai" #, fuzzy #~ msgid "Add a New Profile" #~ msgstr "Išsaugoti profilį" #, fuzzy #~ msgid "Edit the selected profile" #~ msgstr "Taisyti pažymėtą laišką" #, fuzzy #~ msgid "Remove the selected profile" #~ msgstr "Pervadinti pažymėtą aplanką" #, fuzzy #~ msgid "Threads" #~ msgstr "gijoje" #, fuzzy #~ msgid "Path" #~ msgstr "Spausdinti" #, fuzzy #~ msgid "_Path:" #~ msgstr "_Rašymas" #, fuzzy #~ msgid "Group Management" #~ msgstr "Kaliausių tvarkymas." #, fuzzy #~ msgid "Pan: New Scoring Rule" #~ msgstr "Keisti taisyklę" #, fuzzy #~ msgid "Then" #~ msgstr "Dėkojame" #, fuzzy #~ msgid "For" #~ msgstr "_Aplankas" #, fuzzy #~ msgid "Name: \"%s\"" #~ msgstr "Išsaugotas „%s“" #, fuzzy #~ msgid "Pan: Add a Server" #~ msgstr "Pridėti/Keisti serverį" #, fuzzy #~ msgid "Pan: Edit a Server's Settings" #~ msgstr "Kiekvieno serverio nuostatos" #, fuzzy #~ msgid "Pan: Servers" #~ msgstr "Pašto serveris" #, fuzzy #~ msgid "to %s" #~ msgstr "Apie %s" #~ msgid "Status" #~ msgstr "Būsena" #, fuzzy #~ msgid "Unable to set group: %s" #~ msgstr "Negaliu nurodyti grupės: %s" #, fuzzy #~ msgid "Couldn't load \"%s\": %s" #~ msgstr "Negaliu įkelti šrifto „%s“" #, fuzzy #~ msgid "" #~ "Error saving \"%s\":\n" #~ "%s. %s" #~ msgstr "Klaida skaitant iš lizdo." #, fuzzy #~ msgid "Warning: Unknown group \"%s\"." #~ msgstr "DĖMESIO: Nežinoma grupė: „%s“." #, fuzzy #~ msgid "_Posting" #~ msgstr "_Rašymas" #, fuzzy #~ msgid "Save Selected Articles' Attachments..." #~ msgstr "Išsaugoti priedą kaip" #, fuzzy #~ msgid "Post New Article" #~ msgstr "Įkelia laišką" #, fuzzy #~ msgid "_Follow-up" #~ msgstr "Pratęsimas-į" #, fuzzy #~ msgid "Follow-up to Article" #~ msgstr "Tęsti naujienų grupėje" #, fuzzy #~ msgid "_Post Article" #~ msgstr "Įkelia laišką" #, fuzzy #~ msgid "Post this Article Now" #~ msgstr "Skelbiamas laiškas „%s“" #, fuzzy #~ msgid "Error: No Newsgroups specified." #~ msgstr "KLAIDA: Nenurodytas joks gavėjas." #~ msgid "Message-Id" #~ msgstr "Laiško-Id" #, fuzzy #~ msgid "Saved newsrc files in %.1f seconds" #~ msgstr "Išsaugotos %d taisyklės per %.1f sekundžių (%.0f laiškų/s)" #, fuzzy #~ msgid "Pan: Get Headers from Server" #~ msgstr "Mėginti antraštes iš pažymėtų grupių" #, fuzzy #~ msgid "_Reply-To Header:" #~ msgstr "Atsakyti-kam:" #, fuzzy #~ msgid "Or_ganization Header:" #~ msgstr "Organizacija:" #, fuzzy #~ msgid "Automatic Downloads" #~ msgstr "_Parsiųsti" #~ msgid "UNKNOWN" #~ msgstr "NEŽINOMAS" #, fuzzy #~ msgid "Decode can't access directory \"%s\"" #~ msgstr "Nepavyko sukurti katalogo „%s“: %s" #, fuzzy #~ msgid "Header Pane background:" #~ msgstr "Gijų skydelis" #, fuzzy #~ msgid "Unread articles:" #~ msgstr "Rodyti stebimus laiškus" #, fuzzy #~ msgid "" #~ "Unsupported data version (%d) for server properties. Are you running an " #~ "old version of Pan by accident?" #~ msgstr "Nepalaikoma duomenų versija %d duomenų bylai „%s“" #, fuzzy #~ msgid "Couldn't create temporary file: %s" #~ msgstr "Nepavyko sukurti paveikslėlio iš bylos: %s" #, fuzzy #~ msgid "Error renaming \"%s\" as \"%s\": %s." #~ msgstr "Klaida skaitant iš lizdo." #, fuzzy #~ msgid "Can't write to \"%s\": %s" #~ msgstr "Nepavyko sukurti katalogo „%s“: %s" #, fuzzy #~ msgid "Open a Draft Article from Disk" #~ msgstr "Ištrinti %d laiškai iš grupės %s" #~ msgid "subject" #~ msgstr "tema" #~ msgid "author" #~ msgstr "autorius" #, fuzzy #~ msgid "line count" #~ msgstr "+ Eilučių skaičius" #, fuzzy #~ msgid "Active" #~ msgstr "Veiksmai" #, fuzzy #~ msgid "/Get New Headers and _Bodies" #~ msgstr "Gauti naujas antraštes iš pažymėtų grupių" #, fuzzy #~ msgid "/Refresh Article _Counts" #~ msgstr "Atnaujinti laiškų _skaitliuką" #, fuzzy #~ msgid "/Group _Properties..." #~ msgstr "_Savybės..." #~ msgid " (Moderated)" #~ msgstr " (Moderuojama)" #~ msgid " (Read-Only)" #~ msgstr " (Tik skaitymui)" #~ msgid "All Groups" #~ msgstr "Visos grupės" #~ msgid "Subscribed" #~ msgstr "Užsakytos" #~ msgid "Folders" #~ msgstr "Aplankai" #~ msgid "Unread" #~ msgstr "Nauji" #~ msgid "Total" #~ msgstr "Iš viso" #~ msgid "Description" #~ msgstr "Aprašymas" #~ msgid "Find:" #~ msgstr "Rasti:" #~ msgid "" #~ "Type in a group search string and press ENTER. Wildcards are allowed." #~ msgstr "" #~ "Įvesk grupės paieškos eilutę ir spausk ENTER. Leidžiami pakaitos " #~ "simboliai." #~ msgid "Bug in Code" #~ msgstr "Klaida kode" #, fuzzy #~ msgid "" #~ "We don't have a list of groups for \"%s\".\n" #~ "Shall we get download it?" #~ msgstr "" #~ "Mes neturime grupių sąrašo iš serverio „%s“.\n" #~ "Ar parsiųsti jį?" #, fuzzy #~ msgid "Pan: Find Message" #~ msgstr "Rasti laišką" #~ msgid "Subject:" #~ msgstr "Tema:" #~ msgid "Author:" #~ msgstr "Autorius:" #~ msgid "Message-ID:" #~ msgstr "Laiško ID:" #~ msgid "Unread Only" #~ msgstr "Tik neskaitytus" #~ msgid "Case Sensitive" #~ msgstr "Skirti raidžių dydį" #, fuzzy #~ msgid "Pan: Filter Out Articles" #~ msgstr "Filtruojami laiškai" #, fuzzy #~ msgid "Add Author to Bozo Filter" #~ msgstr "Pridėti autorių prie _kaliausių" #, fuzzy #~ msgid "regexp" #~ msgstr "reg. išraiška" #, fuzzy #~ msgid "Add Author to Spam Filter" #~ msgstr "Pridėti autorių prie _kaliausių" #, fuzzy #~ msgid "" #~ "Type in a search string and press ENTER. Wildcards are allowed; see " #~ "http://pan.rebelbase.com/wildmat.html for more information." #~ msgstr "" #~ "Įvesk grupės paieškos eilutę ir spausk ENTER. Leidžiami pakaitos " #~ "simboliai." #~ msgid "BUG!!" #~ msgstr "KLAIDA!" #~ msgid "Please Select a Folder from the Group list." #~ msgstr "Prašau, pasirink aplanką iš Grupių sąrašo." #, fuzzy #~ msgid "/D_ownload Flagged" #~ msgstr "Parsiųsti laiškus su vėliavėlėmis" #, fuzzy #~ msgid "/_Delete" #~ msgstr "_Pašalinti" #, fuzzy #~ msgid "Resorting Articles" #~ msgstr "Rūšiuojami laiškai" #, fuzzy #~ msgid "Refiltering Articles" #~ msgstr "Filtruojami laiškai" #~ msgid "Filtering Articles" #~ msgstr "Filtruojami laiškai" #, fuzzy #~ msgid "Loading Group \"%s\"" #~ msgstr "Įkeliamos grupės" #~ msgid "Invalid folder name: \"%s\"" #~ msgstr "Blogas aplanko vardas: „%s“" #~ msgid "Please don't begin folders with \"pan.\"; it confuses me terribly." #~ msgstr "Prašau, nepradėk aplankų su „pan.“; tai mane baisiai trikdo." #, fuzzy #~ msgid "Create New Folder" #~ msgstr "Sukurti naują aplanką" #~ msgid "New Folder Name:" #~ msgstr "Naujo aplanko pavadinimas:" #~ msgid "Post anyway, despite these problems?" #~ msgstr "Vistiek siųsti, nekreipiant dėmesio į šias bėdas?" #~ msgid "Post anyway, despite this problem?" #~ msgstr "Vistiek siųsti, nekreipiant dėmesio į šią bėdą?" #~ msgid "" #~ msgstr "" #~ msgid "Newsgroups: " #~ msgstr "Naujienų grupės:" #~ msgid "Date: " #~ msgstr "Data:" #, fuzzy #~ msgid "Newsreader:" #~ msgstr "Pimp Ass Naujienų skaityklė" #~ msgid "Open the Connection Manager" #~ msgstr "Atidaryti Užduočių tvarkyklę" #~ msgid "" #~ "1 task still active or queued.\n" #~ "Are you sure you want to exit Pan?" #~ msgstr "" #~ "1 užduotis dar aktyvi arba laukia eilės.\n" #~ "Ar tikrai nori išeiti iš Pan?" #~ msgid "" #~ "%d tasks still active or queued.\n" #~ "Are you sure you want to exit Pan?" #~ msgstr "" #~ "%d užduočių dar aktyvios arba laukia eilės.\n" #~ "Ar tikrai nori išeiti iš Pan?" #, fuzzy #~ msgid "The Task Manager is Empty" #~ msgstr "Atidaryti Užduočių tvarkyklę" #, fuzzy #~ msgid "/_File/Save Article A_ttachments" #~ msgstr "Išsaugoti dvejetainį priedą" #, fuzzy #~ msgid "/_File/_Print Article..." #~ msgstr "Filtruojami laiškai" #, fuzzy #~ msgid "/_File/_New Folder..." #~ msgstr "Naujas aplankas..." #, fuzzy #~ msgid "/_File/_Delete Folder..." #~ msgstr "Ištrinti aplanką..." #, fuzzy #~ msgid "/_Edit" #~ msgstr "_Keisti" #, fuzzy #~ msgid "/_Edit/---" #~ msgstr "_Keisti" #, fuzzy #~ msgid "/_Edit/Select all _Groups" #~ msgstr "Pažymi grupę" #, fuzzy #~ msgid "/_Edit/Select all _Articles" #~ msgstr "Pažymėti visus laiškus" #, fuzzy #~ msgid "/_Edit/_Find..." #~ msgstr "Keisti..." #, fuzzy #~ msgid "/_View/---" #~ msgstr "_Rodinys" #, fuzzy #~ msgid "/_View/Show Art_icle Pane" #~ msgstr "Laiškų skydelis" #, fuzzy #~ msgid "/_View/_Rot13 Selected Text" #~ msgstr "_Rot13 pažymėtą tekstą" #, fuzzy #~ msgid "/_View/Show All _Headers in Article Pane" #~ msgstr "Rodyti _visas antraštes laiško tekste" #, fuzzy #~ msgid "/_View/E_xpand Selected Threads" #~ msgstr "Pažymėtas gijas" #, fuzzy #~ msgid "/_View/Expand all Thread_s" #~ msgstr "Išplėsti visas gijas" #, fuzzy #~ msgid "/_View/C_ollapse Selected Threads" #~ msgstr "Suskleisti visas gijas" #, fuzzy #~ msgid "/_View/Colla_pse all Thread_s" #~ msgstr "Suskleisti visas gijas" #, fuzzy #~ msgid "/_Servers" #~ msgstr "Serveris" #, fuzzy #~ msgid "/_Servers/---" #~ msgstr "Serveris" #, fuzzy #~ msgid "/_Servers/Get List of _All Groups..." #~ msgstr "Gauti _visų grupių sąrašą" #, fuzzy #~ msgid "/_Servers/Get List of _New Groups..." #~ msgstr "Gauti _naujų grupių sąrašą" #, fuzzy #~ msgid "/_Servers/_Import .newsrc..." #~ msgstr "Importuoti .newsrc..." #, fuzzy #~ msgid "/_Servers/_Export .newsrc..." #~ msgstr "Eksportuoti .newsrc..." #, fuzzy #~ msgid "/_Newsgroups/---" #~ msgstr "Naujienų grupės" #, fuzzy #~ msgid "/_Newsgroups/Refresh Article _Counts" #~ msgstr "Atnaujinti laiškų _skaitliuką" #, fuzzy #~ msgid "/_Newsgroups/_Subscribe" #~ msgstr "Naujienų grupės" #, fuzzy #~ msgid "/_Newsgroups/_Unsubscribe" #~ msgstr "Atsisakyti" #, fuzzy #~ msgid "/_Articles/---" #~ msgstr "_Laiško" #, fuzzy #~ msgid "/_Articles/Mark _Read" #~ msgstr "Laiškas y_ra pažymėtas" #, fuzzy #~ msgid "/_Articles/Mark _Unread" #~ msgstr "Laiškas _yra " #, fuzzy #~ msgid "/_Articles/D_ownload Flagged" #~ msgstr "Parsiųsti laiškus su vėliavėlėmis" #, fuzzy #~ msgid "/_Articles/_Flag" #~ msgstr "Laiškai" #, fuzzy #~ msgid "/_Articles/U_nflag" #~ msgstr "Laiškas _yra " #, fuzzy #~ msgid "/_Articles/_Watch Thread" #~ msgstr "Stebėti giją" #, fuzzy #~ msgid "/_Articles/_Ignore Thread" #~ msgstr "Ignoruoti giją" #, fuzzy #~ msgid "/_Articles/Cop_y to Folder" #~ msgstr "Laiškų filtrai" #, fuzzy #~ msgid "/_Articles/_Cancel..." #~ msgstr "Laiškų kešas" #, fuzzy #~ msgid "/_Articles/_Delete" #~ msgstr "Laiškų filtrai" #, fuzzy #~ msgid "/_Post/---" #~ msgstr "_Rašymas" #, fuzzy #~ msgid "/_Post/_Reply by E-Mail" #~ msgstr "Atsakyti _el. paštu" #, fuzzy #~ msgid "/_Post/For_ward Article by E-Mail" #~ msgstr "_Persiųsti laišką el. paštu" #, fuzzy #~ msgid "/_Tools/_Rules..." #~ msgstr "_Taisyklės..." #, fuzzy #~ msgid "/_Tools/_Online Settings..." #~ msgstr "Ryšio nuostatos..." #, fuzzy #~ msgid "/_Tools/_Log Viewer..." #~ msgstr "_Logų peržiūra" #, fuzzy #~ msgid "/_Help/Online Users` _Manual..." #~ msgstr "Tinkle esantis Vartotojo žinynas" #, fuzzy #~ msgid "Filter Name: " #~ msgstr "Visas vardas:" #, fuzzy #~ msgid "Move the selected line up one line" #~ msgstr "Perkelti pažymėtus laiškus ir atsakymus" #, fuzzy #~ msgid "Move the selected line down one line" #~ msgstr "Perkelti pažymėtus laiškus ir atsakymus" #, fuzzy #~ msgid "Negate" #~ msgstr "_Judesiai" #, fuzzy #~ msgid "Negate the selected line" #~ msgstr "Pervadinti pažymėtą aplanką" #~ msgid "AND" #~ msgstr "IR" #~ msgid "OR" #~ msgstr "ARBA" #, fuzzy #~ msgid "Delete Line" #~ msgstr "Iš_trinti eilutę" #, fuzzy #~ msgid "Delete the selected line" #~ msgstr "Ištrinti pažymėtą aplanką" #, fuzzy #~ msgid "New Filter Line" #~ msgstr "Iš_trinti eilutę" #~ msgid "_Article" #~ msgstr "_Laiško" #, fuzzy #~ msgid "contains the phrase" #~ msgstr "frazę" #~ msgid "Regular Expression" #~ msgstr "Reguliari išraiška" #, fuzzy #~ msgid "" #~ "See http://pan.rebelbase.com/regexp.txt for a tutorial on how to use " #~ "regular expressions. If regular expressions are turned off, a simple " #~ "case-insensitive wildcard match is used." #~ msgstr "" #~ "Žiūrėk http://www.linux-learn.org/regexp.tut -- tenai rasi tutorial'ą, " #~ "kaip naudoti reguliarias išraiškas. Jei reguliarios išraiškos išjungtos, " #~ "atliekama paprasta paieška, nepaisant raidžių dydžio." #~ msgid "(%s for user-specified text)" #~ msgstr "(%s -- vartotojo nurodytas tekstas)" #, fuzzy #~ msgid "Saved" #~ msgstr "Išsaugoti" #, fuzzy #~ msgid "Neither Saved nor Queued" #~ msgstr "Rodyti laiškus, kurie nei išsaugoti, nei eilėje" #, fuzzy #~ msgid "Article _thread is" #~ msgstr "La_iške yra" #~ msgid "Watched" #~ msgstr "Stebimoje" #~ msgid "Ignored" #~ msgstr "Ignoruojamoje" #, fuzzy #~ msgid "Neither Watched nor Ignored" #~ msgstr "Rodyti laiškus, kurie nei stebimi, nei ignoruojami" #, fuzzy #~ msgid "Article h_as" #~ msgstr "La_iške yra" #, fuzzy #~ msgid "Incomplete Attachments" #~ msgstr "Nepilnas dvejetainis priedas" #, fuzzy #~ msgid "No Attachments" #~ msgstr "Nėra dvejetainių priedų" #, fuzzy #~ msgid "Article _is" #~ msgstr "Laiškai" #~ msgid "New" #~ msgstr "Naujas" #, fuzzy #~ msgid "Article has at _least N lines:" #~ msgstr "Laiške yra _daugiau nei" #, fuzzy #~ msgid "Article _score is at least" #~ msgstr "Laiškas y_ra pažymėtas" #, fuzzy #~ msgid "Match Author:" #~ msgstr "Autorius:" #, fuzzy #~ msgid "_New" #~ msgstr "Naujas" #, fuzzy #~ msgid "_Unread" #~ msgstr "Nauji" #, fuzzy #~ msgid "Match Attachments:" #~ msgstr "Išsaugoti priedą kaip" #, fuzzy #~ msgid "Complete _Binary" #~ msgstr "Pilnas dvejetainis priedas" #, fuzzy #~ msgid "Incomple_te Binary" #~ msgstr "Nepilnas dvejetainis priedas" #, fuzzy #~ msgid "Match Action:" #~ msgstr "Veiksmai" #, fuzzy #~ msgid "_Saved" #~ msgstr "Išsaugoti" #, fuzzy #~ msgid "_Watched" #~ msgstr "Stebimoje" #, fuzzy #~ msgid "Igno_red" #~ msgstr "Ignoruojamoje" #, fuzzy #~ msgid "Matching Articles and References" #~ msgstr "Pažymėtus laiškus ir atsakymus" #, fuzzy #~ msgid "Threads with Matching Articles" #~ msgstr "Laiškai skiriami į gijas" #, fuzzy #~ msgid "Pan: Filters" #~ msgstr "Filtrai:" #, fuzzy #~ msgid "Add New" #~ msgstr "Naujas" #, fuzzy #~ msgid "Edit the selected filter" #~ msgstr "Ištrinti pažymėtą aplanką" #, fuzzy #~ msgid "Remove the selected filter" #~ msgstr "Pervadinti pažymėtą aplanką" #~ msgid "Posting and Mailing Article ``%s''" #~ msgstr "Skelbiamas ir siunčiamas laiškas „%s“" #~ msgid "Mailing Article ``%s''" #~ msgstr "Siunčiamas laiškas „%s“" #~ msgid "I have no idea what I'm doing with Article ``%s''" #~ msgstr "Visai nesuprantu, kas daroma su laišku „%s“" #~ msgid "E-Mail send failed.\n" #~ msgstr "Nepavyko išsiųsti el. paštu.\n" #~ msgid "Your message was saved in the folder ``pan.sendlater''" #~ msgstr "Tavo laiškas buvo išsaugotas aplanke „pan.sendlater“" #~ msgid "[This is an email copy of a Usenet post to \"%s\"]" #~ msgstr "[Tai yra kopija laiško, paskelbto Usenet grupėje „%s“]" #~ msgid "E-mail Message \"%s\" sent." #~ msgstr "El. laiškas „%s“ išsiųstas." #~ msgid "E-mail Message \"%s\" not sent." #~ msgstr "El. laiškas „%s“ neišsiųstas." #~ msgid "NNTP Article \"%s\" (%d of %d) posted." #~ msgstr "NNTP laiškas „%s“ (%d iš %d) paskelbtas." #~ msgid "NNTP Article \"%s\" (%d of %d) not posted." #~ msgstr "NNTP laiškas „%s“ (%d iš %d) nepaskelbtas." #~ msgid "Article \"%s\" not flagged for any particular server; using current" #~ msgstr "" #~ "Laiškas „%s“ nebuvo pažymėtas jokio serverio vėliavėle, naudoju esamą" #, fuzzy #~ msgid "German" #~ msgstr "Bendra" #, fuzzy #~ msgid "Latvian" #~ msgstr "Vieta" #, fuzzy #~ msgid "/_File/Save Changes" #~ msgstr "Išsaugoti pakeitimus" #, fuzzy #~ msgid "/_File/Save As..." #~ msgstr "Išsaugoti kaip..." #, fuzzy #~ msgid "/_Edit/Cu_t" #~ msgstr "_Keisti" #, fuzzy #~ msgid "/_Edit/_Rot13 Selected Text" #~ msgstr "_Rot13 pažymėtą tekstą" #, fuzzy #~ msgid "/_File/Send Now" #~ msgstr "Išsiųsti dabar" #, fuzzy #~ msgid "/_File/Send Later" #~ msgstr "Išsiųsti vėliau" #~ msgid "Send this Message Now" #~ msgstr "Išsiųsti šį laišką dabar" #~ msgid "Send Later" #~ msgstr "Išsiųsti vėliau" #~ msgid "Send this Message Later" #~ msgstr "Išsiųsti šį laišką vėliau" #~ msgid "Rewrap" #~ msgstr "Iš naujo laužyti" #, fuzzy #~ msgid "Rewrap all the text in the Message Body" #~ msgstr "Iš naujo sulaužyti visą laiško tekstą." #, fuzzy #~ msgid "Turn line wrap on/off" #~ msgstr "Perjungti laiškų rodymą gijomis" #, fuzzy #~ msgid "Edit with an External Editor" #~ msgstr "Atsakyti mėgstama pašto programa" #, fuzzy #~ msgid "Select the file to attach." #~ msgstr "Pasirink, kurią .newsrc bylą nuskaityti:" #, fuzzy #~ msgid "Remove a File from the Attachment List" #~ msgstr "Ištrinti visas laiškus iš pažymėtos grupės(ių)" #, fuzzy #~ msgid "Lines Per Article:" #~ msgstr "Įkelia laišką" #, fuzzy #~ msgid "Estimated Article Size" #~ msgstr "Naudoti laiško temą" #, fuzzy #~ msgid "Followup-To:" #~ msgstr "Pratęsimas-į:" #, fuzzy #~ msgid "Reply-To:" #~ msgstr "Atsakyti-kam:" #, fuzzy #~ msgid "Organization:" #~ msgstr "Organizacija:" #~ msgid "The organization you're associated with." #~ msgstr "Organizacija, kuriai tu priklausai" #, fuzzy #~ msgid "Subject:" #~ msgstr "Tema:" #, fuzzy #~ msgid "Post To Groups:" #~ msgstr "Skelbti grupėse:" #~ msgid "``Followup-To: poster'': sending email to author." #~ msgstr "„Pratęsimas-į: poster“: siunčiamas el. laiškas autoriui." #, fuzzy #~ msgid "``Followup-To:'' contains an email address: sending email to author." #~ msgstr "„Pratęsimas-į: poster“: siunčiamas el. laiškas autoriui." #, fuzzy #~ msgid "New Message" #~ msgstr "Nauji laiškai" #~ msgid "Save message to file" #~ msgstr "Išsaugoti laišką į bylą" #~ msgid "Select .newsrc File to Read:" #~ msgstr "Pasirink, kurią .newsrc bylą nuskaityti:" #, fuzzy #~ msgid "Pan: Export .newsrc File" #~ msgstr "Eksportuoti bylą .newsrc" #~ msgid "Select .newsrc File to Write:" #~ msgstr "Pasirink, į kurią .newsrc bylą įrašyti:" #~ msgid "QUIT failed: %s" #~ msgstr "Nepavyko QUIT: %s" #, fuzzy #~ msgid "Handshake: %s" #~ msgstr "Nepavyko NNTP handshake: %s" #~ msgid "NNTP handshake failed: %s" #~ msgstr "Nepavyko NNTP handshake: %s" #, fuzzy #~ msgid "Handshake failed: %s" #~ msgstr "Nepavyko NNTP handshake: %s" #, fuzzy #~ msgid "Authentication failed: bad handshake for SPA password" #~ msgstr "Autentikacija nepavyko: reikia slaptažodžio" #, fuzzy #~ msgid "Bad SPA handshake: %s" #~ msgstr "Nepavyko NNTP handshake: %s" #~ msgid "Authentication failed: need a password" #~ msgstr "Autentikacija nepavyko: reikia slaptažodžio" #~ msgid "Authentication failed: %s" #~ msgstr "Autentikacija nepavyko: %s" #, fuzzy #~ msgid "Unsupported authentication mechanism: %s" #~ msgstr "Nepalaikoma duomenų versija: %d" #~ msgid "MODE READER check failed: %s" #~ msgstr "MODE READER patikrinimas nepavyko: %s" #, fuzzy #~ msgid "Posting complete: %s" #~ msgstr " nepilnų " #~ msgid "\"stay connected\" sent to %s" #~ msgstr "\"stay connected\" nusiųsta į %s" #, fuzzy #~ msgid "Getting article `%s' (Message-ID: %s) body failed: %s" #~ msgstr "Nepavyko gauti laiško iš serverio: %s" #~ msgid "No articles found for group \"%s\"" #~ msgstr "Grupėje „%s“ laiškų nerasta" #~ msgid "Getting header list failed: %s" #~ msgstr "Nepavyko gauti antraščių sąrašo: %s" #, fuzzy #~ msgid "Corrupt header skipped: %s" #~ msgstr "Praleista sugadinta antraštė -- nėra datos: %s" #, fuzzy #~ msgid "Getting %d of %d: \"%s\"" #~ msgstr "Gaunamos %s į „%s“" #~ msgid "Cancelling message \"%s\"" #~ msgstr "Atšaukiamas laiškas „%s“" #~ msgid "Error writing to socket." #~ msgstr "Klaida rašant į lizdą." #~ msgid "pan.sent" #~ msgstr "pan.sent" #~ msgid "pan.sendlater" #~ msgstr "pan.sendlater" #, fuzzy #~ msgid "Select Color" #~ msgstr "Pažymėjimas" #, fuzzy #~ msgid "Browse..." #~ msgstr "_Kaliausės..." #, fuzzy #~ msgid "Family" #~ msgstr "Nepavyko" #~ msgid "Not Named" #~ msgstr "Neįvardintas" #~ msgid "No Address" #~ msgstr "Nėra adreso" #~ msgid "Server Information" #~ msgstr "Serveri informacija" #~ msgid "Profile Name" #~ msgstr "Profilio pavadinimas" #~ msgid "Server Address" #~ msgstr "Serverio adresas" #~ msgid "Server Port" #~ msgstr "Serverio prievadas" #~ msgid "Authorization" #~ msgstr "Autorizacija" #~ msgid "Password" #~ msgstr "Slaptažodis" #~ msgid "Misc" #~ msgstr "Įvairūs" #~ msgid "Idle Seconds Before Timeout:" #~ msgstr "Neveiklos sekundės iki laiko ribos:" #~ msgid "Generate Message-ID" #~ msgstr "Sugeneruoti Message-ID" #, fuzzy #~ msgid "Download New Headers from Subscribed Groups when starting Pan" #~ msgstr "Gauti naujas antraštes iš užsakytų grupių" #, fuzzy #~ msgid "External Editor (%t will be replaced with filename)" #~ msgstr "Išorinis redaktorius (%t -- laikinos bylos vardas)" #~ msgid "Newsgroups (if more than one group)" #~ msgstr "Naujienų grupės (jei daugiau nei viena grupė)" #~ msgid "References (if article is a reply)" #~ msgstr "Nuorodos (jei laiškas yra atsakymas)" #~ msgid "Reply-To (if different from Author)" #~ msgstr "Atsakyti-kam (jei skiriasi nuo Autoriaus)" #, fuzzy #~ msgid "Newsreader" #~ msgstr "Pimp Ass Naujienų skaityklė" #~ msgid "Headers to Show" #~ msgstr "Rodomos antraštės" #~ msgid "Message Body" #~ msgstr "Laiško tekstas" #, fuzzy #~ msgid "Message Body (Monospace)" #~ msgstr "Laiško tekstas" #, fuzzy #~ msgid "Use System Background" #~ msgstr "Laiško fonas" #~ msgid "Body Foreground" #~ msgstr "Laiško tekstas" #, fuzzy #~ msgid "Use System Foreground" #~ msgstr "Laiško tekstas" #, fuzzy #~ msgid "Quoted Text 2" #~ msgstr "Cituojamas tekstas" #, fuzzy #~ msgid "Quoted Text 3" #~ msgstr "Cituojamas tekstas" #, fuzzy #~ msgid "Article date format:" #~ msgstr "Laiškų sąrašo šriftas" #~ msgid "Fill articles for reading at column" #~ msgstr "Užpildyti laiškus skaitymui stulpelyje" #~ msgid "Options" #~ msgstr "Nuostatos" #, fuzzy #~ msgid "Left Mouse Button:" #~ msgstr "Pelės mygtukas 2:" #, fuzzy #~ msgid "Middle Mouse Button:" #~ msgstr "Pelės mygtukas 1:" #, fuzzy #~ msgid "Old Articles with no New Replies" #~ msgstr "Pažymėtus laiškus ir atsakymus" #, fuzzy #~ msgid "New Articles / Articles with New Replies" #~ msgstr "Pažymėtus laiškus ir atsakymus" #, fuzzy #~ msgid "Unread Articles / Articles with Unread Replies" #~ msgstr "Atžymėti laiškų ir atsakymų vėliavėles" #, fuzzy #~ msgid "Read Articles with no Unread Replies" #~ msgstr "Pažymėtus laiškus ir atsakymus" #~ msgid "When a followup changes the subject, show as new thread" #~ msgstr "Kai pratęsime pakeičiama tema, rodyti lyg naują giją" #~ msgid "Show only the first part of complete multipart binary posts" #~ msgstr "Rodyti tik pirmąją pilnų kelių dalių dvejetainių skelbimų dalį." #~ msgid "Display article dates in local time instead of UTC" #~ msgstr "Rodyti laiškų datas vietiniu laiku, o ne UTC." #~ msgid "Article Pane" #~ msgstr "Laiškų skydelis" #~ msgid "Loads Group" #~ msgstr "Įkelia grupę" #~ msgid "Group list font" #~ msgstr "Grupių sąrašo šriftas" #~ msgid "Download New Headers when the Group is Loaded" #~ msgstr "Parsiųsti naujas antraštes įkeliama grupę" #~ msgid "Server \"%s\" is Online" #~ msgstr "Prisijungta prie serverio „%s“" #~ msgid "Server \"%s\" is Offline; no new tasks will be processed" #~ msgstr "" #~ "Neprisijungta prie serverio „%s“; jokios naujos užduotys nebus vykdomos" #~ msgid "Maximum Total Number of Connections" #~ msgstr "Didžiausias bendras jungčių skaičius" #~ msgid "Maximum Number of Task Retries before Giving Up" #~ msgstr "Didžiausias užduoties bandymų skaičius prieš nutraukiant" #~ msgid "Pan should ask before going online" #~ msgstr "Pan turi paklausti prieš prisijungdama" #~ msgid "Pan should go online as needed without asking" #~ msgstr "Pan turi neklausdama prisijungti, kai reikia" #~ msgid "Pan should quietly stay offline until told otherwise" #~ msgstr "Pan turi tyliai būti atsijungusi, kol nepaliepta kitaip" #~ msgid "" #~ "Maximum\n" #~ "Connections" #~ msgstr "Jungčių maksimumas" #~ msgid "Online Status" #~ msgstr "Prisijungimo būsena" #, fuzzy #~ msgid "" #~ "Reserve a connection\n" #~ "for reading articles" #~ msgstr "" #~ "Rezervuoti vieną jungtį\n" #~ "ne dekodavimo užduotims" #~ msgid "Reserve" #~ msgstr "Rezervuoti" #~ msgid "Download Directory:" #~ msgstr "Parsiuntimo katalogas:" #~ msgid "Download Directory" #~ msgstr "Parsiuntimo katalogas" #~ msgid "" #~ "The cache is used to keep local copies of articles\n" #~ "to reduce the time connected to the network." #~ msgstr "" #~ "Kešas yra naudojamas laikyti vietinėms laiškų kopijoms,\n" #~ "taip sumažinant prisijungimo prie tinklo laiką." #~ msgid "Disk Cache:" #~ msgstr "Disko kešas:" #~ msgid "Megs" #~ msgstr "MB" #~ msgid "Clear Disk Cache" #~ msgstr "Išvalyti disko kešą" #~ msgid "Delete Cache when exiting Pan" #~ msgstr "Išvalyti kešą išeinant iš Pan" #, fuzzy #~ msgid "Import/Export .newsrc files automatically" #~ msgstr "Eksportuoti bylą .newsrc" #, fuzzy #~ msgid ".newsrc filename:" #~ msgstr "Importuoti bylą .newsrc" #, fuzzy #~ msgid "read/write subscribed groups only" #~ msgstr "Gauti naujas antraštes iš užsakytų grupių" #, fuzzy #~ msgid ".Newsrc Files" #~ msgstr "Importuoti bylą .newsrc" #~ msgid "Address" #~ msgstr "Adresas" #~ msgid "New..." #~ msgstr "Naujas..." #~ msgid "Edit..." #~ msgstr "Keisti..." #~ msgid "Delete" #~ msgstr "Ištrinti" #~ msgid "Cache" #~ msgstr "Kešas" #~ msgid "Directories" #~ msgstr "Katalogai" #, fuzzy #~ msgid "Display - Layout" #~ msgstr "Rodymas - Grupės" #~ msgid "Display - Groups" #~ msgstr "Rodymas - Grupės" #~ msgid "Display - Threads" #~ msgstr "Rodymas - Gijos" #, fuzzy #~ msgid "Display - Articles" #~ msgstr "Rodymas - Laiškas" #, fuzzy #~ msgid "Display - Headers" #~ msgstr "Rodymas - Gijos" #~ msgid "General" #~ msgstr "Bendra" #, fuzzy #~ msgid "Servers - News" #~ msgstr "Serverio adresas" #, fuzzy #~ msgid "Servers - Mail" #~ msgstr "Serveris" #~ msgid "You haven't loaded an article to print." #~ msgstr "Tu neįkėlei laiško, kurį spausdinti." #~ msgid "Connect Failure" #~ msgstr "Prisijungimo nesėkmė" #~ msgid "Sending 'stay connected' request" #~ msgstr "Siunčiama 'stay connected' užklausa" #~ msgid "Disconnecting" #~ msgstr "Atsijungiama" #, fuzzy #~ msgid "Save In Directory" #~ msgstr "Duomenų katalogas" #~ msgid "Add ``/%s'' to path" #~ msgstr "Pridėti „/%s“ prie kelio" #, fuzzy #~ msgid "Article Text" #~ msgstr "Laiškų skydelis" #, fuzzy #~ msgid "Don't Save Article Text" #~ msgstr "Iš_saugoti laiško tekstą..." #, fuzzy #~ msgid "Use Message-ID" #~ msgstr "Laiško ID:" #, fuzzy #~ msgid "Use Subject" #~ msgstr "+ Tema" #, fuzzy #~ msgid "Specify Filename" #~ msgstr "Nėra bylos vardo" #~ msgid "Use Encoded Filename" #~ msgstr "Naudoti užkoduotą bylos vardą" #~ msgid "Use Article Subject" #~ msgstr "Naudoti laiško temą" #~ msgid "Got unexpected response from mail server: expected %d; got %s" #~ msgstr "Gavau netikėtą atsakymą iš pašto serverio: tikėjausi %d; gavau %s" #~ msgid "Preparing to Send Mail" #~ msgstr "Ruošiuosi siųsti paštą" #~ msgid "Can't parse the From: line; hope for the best." #~ msgstr "Nepavyko išnagrinėti Nuo: eilutės; tikėkis geriausio." #~ msgid "No Sender Specified!" #~ msgstr "Nenurodytas siuntėjas!" #~ msgid "Sending Mail" #~ msgstr "Siunčiamas paštas" #~ msgid "No Known Recipients" #~ msgstr "Nėra žinomų gavėjų" #~ msgid "Mail Sent!" #~ msgstr "Paštas išsiųstas!" #~ msgid "Handshaking with mail server" #~ msgstr "Pasisveikinu su pašto serveriu" #~ msgid "Connecting to mail server" #~ msgstr "Jungiuosi prie pašto serverio" #~ msgid "Unable to open connection to mail server \"%s\"" #~ msgstr "Nepavyko prisijungti prie pašto serverio „%s“" #~ msgid "Mail Server Not Ready" #~ msgstr "Pašto serveris nepasiruošęs" #, fuzzy #~ msgid "Can't connect to %s: %s" #~ msgstr "Nepavyko sukurti katalogo „%s“: %s" #~ msgid "Timed out waiting to read from the server." #~ msgstr "Baigėsi laikas laukiant skaityti iš serverio." #~ msgid "Lost connection to server" #~ msgstr "Prarastas ryšys su serveriu" #, fuzzy #~ msgid "Error: reading from socket returned %d." #~ msgstr "Klaida: skaitant iš lizdo gauta %d" #~ msgid "" #~ "socket [%p] failed its read:\n" #~ "%s" #~ msgstr "" #~ "lizdas [%p] nesugebėjo perskaityti:\n" #~ "%s" #~ msgid "socket [%p] failed its read" #~ msgstr "lizdas [%p] nesugebėjo perskaityti" #~ msgid "Timed out waiting for the goahead to write to the server: %s" #~ msgstr "Baigėsi laikas laukiant, kada serveris leis rašyti: %s" #~ msgid "Timed out waiting for the goahead to write to the server." #~ msgstr "Baigėsi laikas laukiant, kada serveris leis rašyti." #, fuzzy #~ msgid "Error saving article \"%s\" (is %s full?)" #~ msgstr "Skelbiu laiško „%s“ %d dalį iš %d." #, fuzzy #~ msgid "Removed %d articles from local cache" #~ msgstr "Ištrinti %d laiškai iš grupės %s" #~ msgid "WARNING: %d lines too wide in signature" #~ msgstr "DĖMESIO: paraše %d eilutės yra per ilgos" #~ msgid "WARNING: %d lines >80 characters in the message." #~ msgstr "DĖMESIO: laiško %d eilutės yra ilgesnės nei 80 ženklų." #~ msgid "" #~ "INFORMATION: Please be aware that posts to \"%s\" will not appear until " #~ "approved by the group's moderator." #~ msgstr "" #~ "INFORMACIJA: žinok, kad skelbimai į „%s“ pasirodys tik tuomet, kai " #~ "moderatorius patvirtins juos." #, fuzzy #~ msgid "ERROR: invalid address ``%s''" #~ msgstr "KLAIDA: %s „%s“" #~ msgid "ERROR: Must have one author in From: line" #~ msgstr "KLAIDA: Turi būti vienas autorius eilutėje Nuo:" #, fuzzy #~ msgid "Unparseable Subject" #~ msgstr "Naudoti laiško temą" #~ msgid "Waiting to decode \"%s\"" #~ msgstr "Laukiu kol galėsiu iškoduoti „%s“" #, fuzzy #~ msgid "Decode unable to create file \"%s\" %s" #~ msgstr "Negaliu sukurti bylos „%s“" #, fuzzy #~ msgid "Decoded \"%s\" from group \"%s\", \"%s\"" #~ msgstr "Iškoduotas „%s“ iš grupės „%s“, „%s“ dalis #%d" #~ msgid "Loading %u of %d groups" #~ msgstr "Įkeliama %u iš %d grupių" #, fuzzy #~ msgid "Loaded %d groups for server `%s' in %.1f seconds (%.0f groups/sec)" #~ msgstr "Išsaugotos %d grupės iš „%s“ per %.1f sekundes (%.0f grupių/sek.)" #, fuzzy #~ msgid "Saved %d of %u groups" #~ msgstr "Išsaugoti %d iš %d laiškų" #~ msgid "Saved %d groups in \"%s\" in %.1f seconds (%.0f groups/sec)" #~ msgstr "Išsaugotos %d grupės iš „%s“ per %.1f sekundes (%.0f grupių/sek.)" #~ msgid "Loaded %d of %d articles" #~ msgstr "Įkelta %d iš %d laiškų" #, fuzzy #~ msgid "(No Group)" #~ msgstr "Kita grupė" #, fuzzy #~ msgid "Can't write config to '%s': %s" #~ msgstr "Nepavyko sukurti katalogo „%s“: %s" #, fuzzy #~ msgid "Error reading file `%s'" #~ msgstr "Klaida skaitant iš lizdo." #, fuzzy #~ msgid "Couldn't create file `%s' to export newsrc file %s" #~ msgstr "Nepavyko sukurti paveikslėlio iš bylos: %s" #, fuzzy #~ msgid "Exported %d groups (%d subscribed) to `%s'" #~ msgstr "%d grupių įrašyta į „%s“" #~ msgid "Articles/Mail queued for posting via the \"Send Later\" button" #~ msgstr "Laiškai, padėti į siuntimo eilę per „Siųsti vėliau“ mygtuką" #~ msgid "Created folder pan.sendlater" #~ msgstr "Sukurtas aplankas pan.sendlater" #~ msgid "Articles/Mail posted before" #~ msgstr "Laiškai, išsiųsti anksčiau" #~ msgid "Created folder pan.sent" #~ msgstr "Sukurtas aplankas pan.sent" #, fuzzy #~ msgid "Unable to access or create directory \"%s\"" #~ msgstr "Negaliu sukurti bylos „%s“" #~ msgid "A newsreader for GNOME" #~ msgstr "GNOME naujienų skaityklė" #~ msgid "Copyright (C) 1999-2001, Pan Development Team" #~ msgstr "Copyright (C) 1999-2001, Pan Development Team" #~ msgid "Lead Programmer" #~ msgstr "Pagrindinis programuotojas" #, fuzzy #~ msgid "Programmer" #~ msgstr "Pagrindinis programuotojas" #, fuzzy #~ msgid "Programmer & Documentation" #~ msgstr "Programuotojas ir projekto įkūrėjas" #~ msgid "Programmer, 0.6 - 0.7" #~ msgstr "Programuotojas, 0.6 - 0.7" #, fuzzy #~ msgid "" #~ "Many thanks to the following people, whose contributions\n" #~ "are a large part of why Open Source software development\n" #~ "is so fun.\n" #~ "\n" #~ "Pan %s Translations\n" #~ "%s\n" #~ "\n" #~ "Pan %s Code or Patches\n" #~ "%s\n" #~ "\n" #~ "Pan %s Suggestions and Testing\n" #~ "%s\n" #~ "\n" #~ "If you should have been in this list but you're not,\n" #~ "send us mail and we'll add you next time.\n" #~ "\n" #~ "Contributors to previous versions are listed at\n" #~ "http://pan.rebelbase.com/CREDITS" #~ msgstr "" #~ "Labai dėkojame šiems žmonėms, kurių įnašai yra pavyzdžiai,\n" #~ "kodėl Open Source programų vystymas yra toks smagus.\n" #~ "\n" #~ "Pan %s pasiūlymai ir testavimas\n" #~ "%s\n" #~ "\n" #~ "Jei tu turėtum būti šiame sąraše, bet tavęs nėra,\n" #~ "atsiųsk mums laišką ir mes pridėsime kitą kartą." #~ msgid "Save the log to file" #~ msgstr "Išsaugoti logą į bylą." #~ msgid "Pan - Log Viewer" #~ msgstr "Pan - Logų peržiūra" #~ msgid "Time" #~ msgstr "Laikas" #~ msgid "Log Entry" #~ msgstr "Logo įrašas" #, fuzzy #~ msgid "Pan: Download Headers for group `%s'" #~ msgstr "Parsiųsti antraštes grupei „%s“" #~ msgid "Download New Headers" #~ msgstr "Parsiųsti naujas antraštes" #~ msgid "Download All Headers" #~ msgstr "Parsiųsti visas antraštes" #~ msgid "Download" #~ msgstr "Parsiųsti" #~ msgid "Most Recent Headers" #~ msgstr "naujausias antraštes" #~ msgid "Also Download Article Bodies" #~ msgstr "Taip pat parsiųsti laiškų tekstus" #~ msgid "" #~ "When you post a message to a newsgroup, your display name will appear in " #~ "the From field. Type your name in as you would like it to appear." #~ msgstr "" #~ "Kai tu siunti laišką į naujienų grupę, tavo vardas bus matomas „Nuo“ " #~ "lauke. Įrašyk savo vardą taip, kaip nori, kad jis matytųsi." #~ msgid "Display Name:" #~ msgstr "Rodomas vardas:" #~ msgid "For example: John Doe" #~ msgstr "Pavyzdžiui: Petras Kubilius" #~ msgid "" #~ "If you belong to an organization and would like for your organization's " #~ "name to appear with your posts, type in your organization name below. " #~ "This information is optional, you may leave it blank." #~ msgstr "" #~ "Jei tu priklausai organizacijai, ir norėtum, kad organizacijos " #~ "pavadinimas būtų matomas visuose laiškuose, įrašyk pavadinimą žemiau. Ši " #~ "informacija nebūtina, gali ją palikti tuščią." #~ msgid "" #~ "People can reply to your posts by sending you an e-mail message at the " #~ "following address." #~ msgstr "" #~ "Žmonės gali atsakyti į tavo laiškus, siųsdami el. laišką šiuo adresu." #~ msgid "For example: user@host.com" #~ msgstr "Pavyzdžiui: kazkas@bendrove.lt" #~ msgid "" #~ "Please enter the name of the mail server to use when sending e-mail " #~ "messages." #~ msgstr "" #~ "Įvesk pavadinimą pašto serverio, kuris bus naudojamas siųsti laiškams el. " #~ "paštu." #~ msgid "SMTP Server:" #~ msgstr "SMTP serveris:" #~ msgid "SMTP Port:" #~ msgstr "SMTP prievadas:" #~ msgid "Type the name of your Internet news server." #~ msgstr "Įrašyk savo naujienų serverio pavadinimą." #~ msgid "News (NNTP) server:" #~ msgstr "Naujienų (NNTP) serveris:" #~ msgid "" #~ "If you must log on to your news (NNTP) server, then select the check box " #~ "below." #~ msgstr "" #~ "Jei tu turi užsiregistruoti savo naujienų (NNTP) serveryje, uždėk varnelę " #~ "žemiau." #~ msgid "Account name:" #~ msgstr "Sąskaitos vardas:" #~ msgid "" #~ "Type in the name you would like Pan to show when referring to this " #~ "profile you have just setup. You can name the profile anything you want " #~ "to." #~ msgstr "" #~ "Įrašyk pavadinimą, kurį norėtum, kad Pan rodytų, kai nurodomas šis ką tik " #~ "sutvarkytas profilis. Tu gali pavadinti profilį kaip tik nori." #~ msgid "For example: UUNET Server" #~ msgstr "Pavyzdžiui: omnitel serveris" #~ msgid "Pan Setup Wizard" #~ msgstr "Pan nustatymo žynys" #, fuzzy #~ msgid "E-Mail" #~ msgstr "El. paštas" #, fuzzy #~ msgid "" #~ "You have successfully entered all of\n" #~ "the information required to set up Pan.\n" #~ "\n" #~ "To save these settings, click Save." #~ msgstr "" #~ "Tu sėkmingai įvedei visą informaciją,\n" #~ "reikalingą Pan sutvarkyti.\n" #~ "\n" #~ "Kad išsaugotum šias nuostatas,\n" #~ "spausk Baigti" #, fuzzy #~ msgid "License" #~ msgstr "Eilutės" #~ msgid "Authors" #~ msgstr "Autoriai" #~ msgid "Thanks to" #~ msgstr "Dėkojame" #~ msgid "Downloading %d articles from group %s" #~ msgstr "Parsiunčiami %d laiškai iš grupės %s" #, fuzzy #~ msgid "Downloading body of \"%s\" (%s) from group %s" #~ msgstr "Parsiunčiamas laiško „%s“ tekstas iš grupės %s" #, fuzzy #~ msgid "Cached article \"%s\" (%s) from group %s" #~ msgstr "Keše esantis laiškas „%s“ iš grupės %s" #~ msgid "Downloading article \"%s\" failed." #~ msgstr "Nepavyko parsiųsti laiško „%s“." #, fuzzy #~ msgid "Unable to open file `%s' %s" #~ msgstr "Negaliu sukurti bylos „%s“" #, fuzzy #~ msgid "Saved article body to `%s'" #~ msgstr "Ištrinti %d laiškai iš grupės %s" #~ msgid "Updating article counts for %u groups from server `%s'" #~ msgstr "Atnaujinami laiškų skaitliukai %u grupėms iš serverio „%s“" #~ msgid "Updated counts for %u groups out of %u" #~ msgstr "Atnaujinami skaitliukai %u grupėms iš %u" #, fuzzy #~ msgid "Unable to update counts for group `%s'" #~ msgstr "Negaliu nurodyti grupės: %s" #~ msgid "all groups" #~ msgstr "visos grupės" #~ msgid "new groups" #~ msgstr "naujos grupės" #~ msgid "BUG IN CODE" #~ msgstr "KLAIDA KODE" #~ msgid "Got %u groups for \"%s\"" #~ msgstr "Gauta %u grupių į „%s“" #, fuzzy #~ msgid "Adding groups to \"%s\"" #~ msgstr "Suliejamos grupės į „%s“" #~ msgid "Got %s groups for \"%s\"" #~ msgstr "Gauta %s grupių į „%s“" #~ msgid "List Newsgroups failed: %s" #~ msgstr "Nepavyko gauti naujienų grupių sąrašo: %s" #~ msgid "Got %s descriptions for \"%s\"" #~ msgstr "Gauta %s grupių aprašymų iš „%s“" #, fuzzy #~ msgid "Got %d groups for server `%s'" #~ msgstr "Gauta %u grupių į „%s“" #~ msgid "Retrieving 0 new groups for \"%s\"" #~ msgstr "Gaunama 0 naujų grupių iš „%s“" #~ msgid "New groups retrieval failed: %s" #~ msgstr "Nepavyko gauti naujų grupių sąrašo: %s" #~ msgid "Retrieving %d new groups for \"%s\"" #~ msgstr "Gaunama %d naujų grupių iš „%s“" #~ msgid "Got %d new groups" #~ msgstr "Gauta %d naujų grupių" #~ msgid "Got %d news groups for \"%s\"" #~ msgstr "Gauta %d naujų grupių iš „%s“" #~ msgid "No new articles in group \"%s\"" #~ msgstr "Nei vieno naujo laiško grupėje „%s“" #~ msgid "Sampling %d articles" #~ msgstr "Mėginami %d laiškus" #, fuzzy #~ msgid "Sampling %lu of %lu" #~ msgstr "Mėginama laiško antraštė %lu iš %lu" #~ msgid "sample" #~ msgstr "mėginiai" #, fuzzy #~ msgid "The Task Manager is Paused" #~ msgstr "Atidaryti Užduočių tvarkyklę" #~ msgid "Not Queued" #~ msgstr "Nėra eilėje" #~ msgid "Aborting" #~ msgstr "Nutraukiama" #~ msgid "???" #~ msgstr "???" #~ msgid "%s (%d tries)" #~ msgstr "%s (%d bandymų)" #~ msgid "Pan %s Task Manager" #~ msgstr "Pan %s Užduočių tvarkyklė" #~ msgid "Move Selected Task(s) Up" #~ msgstr "Perkelti pažymėtas užduotis aukštyn" #, fuzzy #~ msgid "Move Selected Task(s) to Top" #~ msgstr "Perkelti pažymėtas užduotis į viršų" #~ msgid "Move Selected Task(s) Down" #~ msgstr "Perkelti pažymėtas užduotis žemyn" #~ msgid "Requeue selected failed Task(s)" #~ msgstr "Iš naujo įdėti į eilę nepavykusias užduotis" #, fuzzy #~ msgid "Pause the Task Manager" #~ msgstr "Atidaryti Užduočių tvarkyklę" #~ msgid "Cancel Selected Task(s)" #~ msgstr "Nutraukti pažymėtas užduotis" #~ msgid "Transfer Rate" #~ msgstr "Siuntimo greitis" #~ msgid "Pan - Task Manager" #~ msgstr "Pan - Užduočių tvarkyklė" #, fuzzy #~ msgid "ALL OF:" #~ msgstr "VISUS iš:" #, fuzzy #~ msgid "ANY OF:" #~ msgstr "BET KĄ iš:" #, fuzzy #~ msgid "Article has complete attachments" #~ msgstr "laiške yra %s dvejetainių priedų" #, fuzzy #~ msgid "Article does not have incomplete attachments" #~ msgstr "laiške yra %s dvejetainių priedų" #, fuzzy #~ msgid "Article has incomplete attachments" #~ msgstr "laiške yra %s dvejetainių priedų" #, fuzzy #~ msgid "Article has complete or incomplete attachments" #~ msgstr "laiške yra %s dvejetainių priedų" #, fuzzy #~ msgid "Article is crossposted to at least %d groups" #~ msgstr "laiškas buvo paskelbtas daugiau nei %d grupėse" #, fuzzy #~ msgid "Article was posted in the last %d days" #~ msgstr "Laiškas _buvo paskelbtas prieš daugiau nei" #, fuzzy #~ msgid "Article is %d or more lines long" #~ msgstr "laiškas yra daugiau nei" #~ msgid "Bozos" #~ msgstr "Kaliausės" #, fuzzy #~ msgid "Article is Unread or Old" #~ msgstr "Laiškas y_ra pažymėtas" #, fuzzy #~ msgid "Aricle is New" #~ msgstr "Laiškas _yra " #, fuzzy #~ msgid "Article is New or Read" #~ msgstr "Laiškas _yra " #, fuzzy #~ msgid "Article is New or Unread" #~ msgstr "laiškas yra %s gijoje" #, fuzzy #~ msgid "Article is Old" #~ msgstr "Laiškas _yra " #, fuzzy #~ msgid "Article has not been saved or decoded" #~ msgstr "Rodyti laiškus, kurie nei išsaugoti, nei eilėje" #, fuzzy #~ msgid "Article has been saved or decoded" #~ msgstr "Rodyti laiškus, kurie nei išsaugoti, nei eilėje" #, fuzzy #~ msgid "Article is queued for saving or decoding" #~ msgstr "Laiškai, padėti į siuntimo eilę per „Siųsti vėliau“ mygtuką" #, fuzzy #~ msgid "Article is neither saved nor queued for saving" #~ msgstr "Rodyti laiškus, kurie nei stebimi, nei ignoruojami" #, fuzzy #~ msgid "Thread isn't watched" #~ msgstr "Skirstoma į gijas %u laiškų" #, fuzzy #~ msgid "Thread is watched" #~ msgstr "Gijų skydelis" #, fuzzy #~ msgid "Thread is ignored" #~ msgstr "Gijų skydelis" #, fuzzy #~ msgid "Thread is neither watched nor ignored" #~ msgstr "Rodyti laiškus, kurie nei stebimi, nei ignoruojami" #, fuzzy #~ msgid "Wrote filters to `%s'" #~ msgstr "%d grupių įrašyta į „%s“" #, fuzzy #~ msgid "Can't write filters to `%s': %s" #~ msgstr "Nepavyko sukurti katalogo „%s“: %s" #~ msgid "HEY you forgot to put a message here! :)" #~ msgstr "Ėė, tu užmiršai čia įrašyti laišką! :)" #~ msgid "" #~ "%s\n" #~ "\n" #~ "Matches: %u\n" #~ "Group: %s\n" #~ "Rule: %s" #~ msgstr "" #~ "%s\n" #~ "\n" #~ "Tenkina: %u\n" #~ "Grupė: %s\n" #~ "Taisyklė: %s" #~ msgid "Mark as" #~ msgstr "Pažymėti kaip" #, fuzzy #~ msgid "_Flag body for download" #~ msgstr "_Uždėti vėliavėlę parsiuntimui" #~ msgid "_Watch thread (highlights the thread)" #~ msgstr "_Stebėti giją (paryškina giją)" #, fuzzy #~ msgid "_Ignore thread (hides the thread by default)" #~ msgstr "_Ignoruoti giją (įprasta paslėpti giją)" #, fuzzy #~ msgid "Select Filter:" #~ msgstr "Pažymi laišką" #~ msgid "Rule applies to all newsgroups" #~ msgstr "Taisyklė taikoma visoms grupėms" #~ msgid "Wildcard group specification:" #~ msgstr "Grupės nurodomos pakaitos simboliais:" #~ msgid "(e.g., *anime*)" #~ msgstr "(pvz. *autos*)" #~ msgid "Rule applies to specific newsgroups:" #~ msgstr "Taisyklė taikoma nurodytoms grupėms:" #~ msgid "Rule applies to:" #~ msgstr "Taisyklė taikoma šioms:" #, fuzzy #~ msgid "Rule Name:" #~ msgstr "Tikras vardas:" #, fuzzy #~ msgid "Delete Articles by Bozos" #~ msgstr "Ištrinti senus laiškus" #~ msgid "Applying Rule to Selected Groups" #~ msgstr "Pažymėtoms grupėms pritaikoma taisyklė" #~ msgid "Loading group `%s'" #~ msgstr "Įkeliama grupė „%s“" #~ msgid "Applying rule `%s' to Group `%s'" #~ msgstr "Pritaikoma taisyklė „%s“ grupei „%s“" #~ msgid "Saving group `%s'" #~ msgstr "Išsaugoma grupė „%s“" #, fuzzy #~ msgid "Refreshing group `%s'" #~ msgstr "Išsaugoma grupė „%s“" #~ msgid "Rules" #~ msgstr "Taisyklės" #, fuzzy #~ msgid "Edit the selected rule." #~ msgstr "Taisyti pažymėtą laišką" #, fuzzy #~ msgid "" #~ "Apply to\n" #~ "Selected\n" #~ "Groups" #~ msgstr "Pritaikyti pažymėtoms _grupėms" #, fuzzy #~ msgid "Apply the Selected Rule to the Selected Groups." #~ msgstr "Pažymėtoms grupėms pritaikoma taisyklė" #, fuzzy #~ msgid "" #~ "Apply to\n" #~ "Subscribed\n" #~ "Groups" #~ msgstr "Pritaikyti _užsakytoms grupėms" #, fuzzy #~ msgid "Apply the Selected Rule to all Subscribed Groups." #~ msgstr "Pritaikyti _užsakytoms grupėms" #, fuzzy #~ msgid "Pan: Edit Profile" #~ msgstr "Išsaugoti profilį" #, fuzzy #~ msgid "User Profile" #~ msgstr "Išsaugoti profilį" #, fuzzy #~ msgid "Incomplete Profile." #~ msgstr " nepilnų " #, fuzzy #~ msgid "Can't write profiles to `%s': %s" #~ msgstr "Nepavyko sukurti katalogo „%s“: %s" #~ msgid "Search for user on deja" #~ msgstr "Ieškoti vartotojo deja.com" #~ msgid "Search for other postings by this use on deja.com" #~ msgstr "Ieškoti kitų šio žmogaus rašinių deja.com" #~ msgid "Bozoize Author" #~ msgstr "Priskirti autorių kaliausėms" #~ msgid "Save the article headers and body to a text file." #~ msgstr "Išsaugoti laiško antraštes ir tekstą į tekstinę bylą." #~ msgid "Open Binary Attachment" #~ msgstr "Atidaryti dvejetainį priedą" #~ msgid "Delete Decoded Binary Attachment" #~ msgstr "Ištrinti iškoduotą dvejetainį priedą" #~ msgid "Entire Group" #~ msgstr "Visą grupę" #~ msgid "Copy Selected Articles" #~ msgstr "Kopijuoti pažymėtus laiškus" #~ msgid "Copy Selected Articles and Replies" #~ msgstr "Kopijuoti pažymėtus laiškus ir atsakymus" #~ msgid "Flag Selected Articles and Replies" #~ msgstr "Pažymėti laiškus ir atsakymus vėliavėlėmis" #~ msgid "Read Selected Message" #~ msgstr "Skaityti pažymėtą laišką" #~ msgid "Read Selected Message in New Window" #~ msgstr "Skaityti pažymėtą laišką naujame lange" #~ msgid "Search Offsite" #~ msgstr "Ieškoti kitur" #~ msgid "Mark as Unread" #~ msgstr "Pažymėti neskaitytais" #~ msgid "Download Bodies" #~ msgstr "Parsiųsti tekstus" #~ msgid "Folder Tools" #~ msgstr "Aplanko įrankiai" #~ msgid "Date (Time)" #~ msgstr "Data (Laikas)" #~ msgid "" #~ "Unable to delete attachment file: \"%s\n" #~ "\n" #~ "Errno says: %s" #~ msgstr "" #~ "Negaliu ištrinti priedo bylos: %s\n" #~ "\n" #~ "Errno sako: %s" #~ msgid "Updating article display" #~ msgstr "Atnaujinamas laiškų vaizdas" #~ msgid "Displaying article list" #~ msgstr "Rodomas laiškų sąrašas" #~ msgid "Threaded %u of %u articles" #~ msgstr "Išskirstyta į gijas %u iš %u laiškų" #~ msgid "Show Ignored Articles" #~ msgstr "Rodyti ignoruojamas laiškus" #~ msgid "Show Incomplete Binary Articles" #~ msgstr "Rodyti nepilnus dvejetainius laiškus" #~ msgid "Show Non-Binary Articles" #~ msgstr "Rodyti ne dvejetainius laiškus" #~ msgid "Show Queued Articles" #~ msgstr "Rodyti eilėje laukiančius laiškus" #~ msgid "" #~ "Type in a subject search string and press ENTER. Wildcards are allowed." #~ msgstr "" #~ "Įrašyk temos paieškos eilutę ir spausk ENTER. Leidžiami pakaitos " #~ "simboliai." #~ msgid "Found %d bozos in %s" #~ msgstr "Rastos %d kaliausės %s" #~ msgid "Using filename [%s]" #~ msgstr "Naudojamas bylos vardas [%s]" #~ msgid "" #~ "Add Bozo in the form\n" #~ "\"J. Random Bozo\" " #~ msgstr "" #~ "Pridėti kaliausę pavidalu\n" #~ "„J. Kažkokia Kaliausė “" #~ msgid "Translations & PR" #~ msgstr "Vertimai ir spauda" #~ msgid "Close the Log Viewer." #~ msgstr "Uždaryti logų peržiūrą." #~ msgid "My server requires me to log on." #~ msgstr "mano serveris reikalauja registracijos." #~ msgid "Type your user name and password for your news server." #~ msgstr "Įrašyk vartotojo vardą ir slaptažodį savo naujienų serveriui." #~ msgid "Welcome to Pan" #~ msgstr "Sveikinu pasileidus Pan" #~ msgid "" #~ "Welcome to Pan!\n" #~ "Since this is your first time running Pan,\n" #~ "we'll need to gather some information.\n" #~ msgstr "" #~ "Sveiki pamatę Pan!\n" #~ "Kadangi tai pirmas kartas, kai tu pasileidai Pan,\n" #~ "mes turime surinkti šiek tiek informacijos.\n" #~ msgid "News Server Logon" #~ msgstr "Registracija naujienų serveryje" #~ msgid "Congratulations" #~ msgstr "Sveikinu" #~ msgid "License agreement" #~ msgstr "Licenzija" #~ msgid "Yes" #~ msgstr "Taip" #~ msgid "Does Not" #~ msgstr "Neturi" #~ msgid "Does" #~ msgstr "Turi" #~ msgid "ERROR: No conditions specified!" #~ msgstr "KLAIDA: Nenurodyta jokia sąlyga!" #~ msgid "New Condition Component" #~ msgstr "Nauja sąlygos dalis" #~ msgid "Cross-_Posted to more than" #~ msgstr "Kr_yžmiškai paskelbtas daugiau nei" #~ msgid "days ago" #~ msgstr "dienų" #~ msgid "groups" #~ msgstr "grupėse" #~ msgid "lines" #~ msgstr "eilučių" #~ msgid "Author is a _Bozo" #~ msgstr "Autorius yra _kaliausė" #~ msgid "Add _Condition" #~ msgstr "Pridėti _sąlygą" #~ msgid "NOT" #~ msgstr "NE" #~ msgid "label21" #~ msgstr "label21" #~ msgid "Line_Up" #~ msgstr "Eilute _aukštyn" #~ msgid "_Play a Sound:" #~ msgstr "_Groti garsą:" #~ msgid "Dec_ode article(s) in" #~ msgstr "Išk_oduoti laišką (us) į" #~ msgid "_Retrieve body (tag for retrieval if offline)" #~ msgstr "Pa_rsiųsti tekstą (uždėti vėliavėlę jei atsijungta)" #~ msgid "Test Sound" #~ msgstr "Bandyti garsą" #~ msgid "Apply to Incoming?" #~ msgstr "Taikyti gautiems?" #~ msgid "A_pply to Incoming?" #~ msgstr "Taikyti _gautiems?" #~ msgid "Real Name" #~ msgstr "Tikras vardas" #~ msgid "Mail Address" #~ msgstr "El. pašto adresas" #~ msgid "_Add Bozo" #~ msgstr "_Pridėti kaliausę" #~ msgid "_Edit Bozo" #~ msgstr "_Taisyti kaliausę" #~ msgid "_Delete Bozo" #~ msgstr "_Pašalinti kaliausę" #~ msgid "Edit Bozo" #~ msgstr "Taisyti kaliausę" #~ msgid "" #~ "Enter the Bozo's Real Name,\n" #~ "or mail address, or both." #~ msgstr "" #~ "Įrašyk kaliausės tikrą vardą,\n" #~ "arba pašto adresą, arba abu." #~ msgid "Download Headers" #~ msgstr "Parsiųsti antraštes" #~ msgid "Download _New Headers" #~ msgstr "Parsiųsti _naujas antraštes" #~ msgid "Download _All Headers" #~ msgstr "Parsiųsti _visas antraštes" #~ msgid "Also Download Article _Bodies" #~ msgstr "Taip pat parsiųsti laiškų _tekstus" #~ msgid "Couldn't find pixmap file: %s" #~ msgstr "Negalėjau rasti paveikslėlio bylos: %s" #~ msgid "Deleting file \"%s\"" #~ msgstr "Ištrinama byla „%s“" #~ msgid "Got %d groups in %.1f seconds (%.0f groups/sec), format %d" #~ msgstr "Gautos %d grupės per %.1f sekundes (%.0f grupių/sek.), formatas %d" #~ msgid "Couldn't load mbox for %s; trying old-style folders..." #~ msgstr "Negalėjau įkelti mbox %s; bandau seno stiliaus aplankus..." #~ msgid "Got %d articles in %.1f seconds (%.0f art/sec)" #~ msgstr "Gauti %d laiškai per %.1f sekundžių (%.0f laiškų/s)" #~ msgid "Status: %s\n" #~ msgstr "Būsena: %s\n" #~ msgid "Loaded %u of %d rules" #~ msgstr "Įkelta %u iš %d taisyklių" #~ msgid "Got %d rules in %.1f seconds (%.0f rules/sec)" #~ msgstr "Gautos %d taisyklės per %.1f sekundžių (%.0f laiškų/s)" #~ msgid "Okay" #~ msgstr "Gerai" #~ msgid "'<' Missing" #~ msgstr "Trūksta '<'" #~ msgid "'>' Missing" #~ msgstr "Trūksta '>'" #~ msgid "'(' Missing" #~ msgstr "Trūksta ')'" #~ msgid "')' Missing" #~ msgstr "Trūksta ')'" #~ msgid "'@' Missing" #~ msgstr "Trūksta '@'" #~ msgid "Single Domain" #~ msgstr "Vienišas domenas" #~ msgid "Invalid Domain" #~ msgstr "Blogas domenas" #~ msgid "Illegal Domain" #~ msgstr "Neleistinas domenas" #~ msgid "Invalid char in domain" #~ msgstr "Blogas ženklas domene" #~ msgid "Zero Length Label" #~ msgstr "Nulinio ilgio užrašas" #~ msgid "Illegal label length" #~ msgstr "Neleistinas užrašo ilgis" #~ msgid "Hyphen in label" #~ msgstr "Brūkšnelis užraše" #~ msgid "fully-qualified domain names must not begin with a digit." #~ msgstr "visas sudėtinis vardas negali prasidėti skaitmeniu." #~ msgid "Bad domain literal" #~ msgstr "Blogas ženklas domene" #~ msgid "Local domain literal" #~ msgstr "Vietinis ženklas domene" #~ msgid "Right bracket missing" #~ msgstr "Trūksta dešinio skliausto" #~ msgid "Local part missing" #~ msgstr "Trūksta vietinės dalies" #~ msgid "Invalid localpart" #~ msgstr "Bloga vietinė dalis" #~ msgid "Zero length local word" #~ msgstr "Nulinio ilgio vietinis žodis" #~ msgid "Illegal unquoted character" #~ msgstr "Neleistinas ženklas ne kabutėse" #~ msgid "Illegal quoted character" #~ msgstr "Neleistinas ženklas kabutėse" #~ msgid "Illegal encoded character" #~ msgstr "Neleistinas užkoduotas ženklas" #~ msgid "Bad encode syntax" #~ msgstr "Bloga kodavimo sintaksė" #~ msgid "Illegal parenthesis phrase" #~ msgstr "Neleistina frazė skliaustuose" #~ msgid "Illegal parenthesis" #~ msgstr "Neleistini skliaustai" #~ msgid "Illegal plain phrase" #~ msgstr "Neleistina tekstinė frazė" #~ msgid "Clean group \"%s\"" #~ msgstr "Išvalyti grupę „%s“" #~ msgid "" #~ "Remove all messages from group: \n" #~ "%s ?" #~ msgstr "" #~ "Ištrinti visus laiškus iš grupės:\n" #~ "%s ?" #~ msgid "Reset new message counter" #~ msgstr "Atnaujinti naujų laiškų skaitiklį" #~ msgid "Rename Folder \"%s\"" #~ msgstr "Pervadinti aplanką „%s“" #~ msgid "" #~ "This operation will delete the folders/groups and their articles!\n" #~ " \n" #~ "Do you REALLY want to do this?" #~ msgstr "" #~ "Šis veiksmas ištrins aplankus/grupes bei juose esančius laiškus!\n" #~ "\n" #~ "Ar tu TIKRAI nori tai padaryti?" #~ msgid "Delete Groups/Folders" #~ msgstr "Ištrinti grupes/aplankus" #~ msgid "Updating Group List" #~ msgstr "Atnaujinamas grupių sąrašas" #~ msgid "Download and decode attachments in the selected messages." #~ msgstr "Parsiųsti ir iškoduoti priedus iš pažymėtų laiškų" #~ msgid "Save Binary Attachment _As..." #~ msgstr "Išs_augoti dvejetainį priedą kaip..." #~ msgid "" #~ "Download and decode attachments in the selected messages, and save as..." #~ msgstr "" #~ "Parsiųsti ir iškoduoti priedus iš pažymėtų laiškų, ir išsaugoti kaip..." #~ msgid "Open Binary Attachment..." #~ msgstr "Atidaryti dvejetainį priedą..." #~ msgid "Rules Tool." #~ msgstr "Taisyklių įrankis." #~ msgid "Post a new message to the current group." #~ msgstr "Skelbti naują laišką esamoje grupėje" #~ msgid "Post a reply to the message on the news server." #~ msgstr "Rašyti atsakymą į laišką naujienų serveryje" #~ msgid "Create a mail reply to the sender." #~ msgstr "Atsakyti laiško siuntėjui el. paštu" #~ msgid "Followup to newsgroup _and Reply by E-mail" #~ msgstr "Tęsti naujienų grupėje _ir atsakyti el. paštu" #~ msgid "Send a reply both to the author in mail, and to the news server." #~ msgstr "Siųsti atsakymą ir laiško autoriui paštu, ir į naujienų serverį." #~ msgid "Forward article by E-mail" #~ msgstr "Persiųsti laišką el. paštu" #~ msgid "Mail/Post messages from folder \"pan.sendlater\"" #~ msgstr "Siųsti/Skelbti laiškus iš aplanko „pan.sendlater“" #~ msgid "Cancel Selected Article you Posted" #~ msgstr "Atšaukti pažymėtą tavo siųstą laišką" #~ msgid "Supersede Selected Article you Posted" #~ msgstr "Pakeisti pažymėtą tavo siųstą laišką" #~ msgid "Move to the Next Group with Unread Messages." #~ msgstr "Pereiti prie kitos grupės su neskaitytais laiškais" #~ msgid "Move to the Next Group." #~ msgstr "Pereiti prie kitos grupės." #~ msgid "Up to Select the Previous Article" #~ msgstr "Aukštyn pažymėti praeitą laišką" #~ msgid "_Down to Select the Next Article" #~ msgstr "Ž_emyn pažymėti kitą laišką" #~ msgid "Down to Select the Next Article" #~ msgstr "Žemyn pažymėti kitą laišką" #~ msgid "Select the _Next Unread Message" #~ msgstr "Pažymėti _kitą neskaitytą laišką" #~ msgid "Select the Next Unread Message" #~ msgstr "Pažymėti kitą neskaitytą laišką" #~ msgid "Select the Next Unread Message _Body" #~ msgstr "Pažymėti kito neskaityto laiško _tekstą" #~ msgid "Select the Next Unread Message Body" #~ msgstr "Pažymėti kito neskaityto laiško tekstą" #~ msgid "Up to Read the Previous Article" #~ msgstr "Aukštyn skaityti praeitą laišką" #~ msgid "Down to Read the Next Article" #~ msgstr "Žemyn skaityti kitą laišką" #~ msgid "Read the Next Unread Message" #~ msgstr "Skaityti kitą neskaitytą laišką" #~ msgid "Read the Next Unread Message Body" #~ msgstr "Skaityti kito neskaityto laiško tekstą" #~ msgid "Down to Select the Next Thread" #~ msgstr "Žemyn pažymėti kitą giją" #~ msgid "Refresh a list of groups from the selected servers." #~ msgstr "Atnaujinti grupių sąrašus iš pažymėtų serverių" #~ msgid "Download a list of new groups from the selected servers." #~ msgstr "Parsiųsti naujų grupių sąrašą iš pažymėtų serverių" #~ msgid "Send Feedback" #~ msgstr "Siųsti atsiliepimus" #~ msgid "+ Author" #~ msgstr "+ Autorius" #~ msgid "+ Date" #~ msgstr "+ Data" #~ msgid "- Subject" #~ msgstr "- Tema" #~ msgid "+ Unread Count" #~ msgstr "+ Neskaitytų skaičius" #~ msgid "- Unread Count" #~ msgstr "- Neskaitytų skaičius" #~ msgid "Show New Messages" #~ msgstr "Rodyti naujus laiškus" #~ msgid "Show Unread Messages" #~ msgstr "Rodyti neskaitytus laiškus" #~ msgid "Show Read Messages" #~ msgstr "Rodyti skaitytus laiškus" #~ msgid "Show Watched Threads" #~ msgstr "Rodyti stebimas gijas" #~ msgid "Show Killfiled Messages" #~ msgstr "Rodyti pražudytus laiškus" #~ msgid "Show Others" #~ msgstr "Rodyti kitas" #~ msgid "_Zoom/Unzoom Window" #~ msgstr "_Pritraukti/atitraukti langą" #~ msgid "Zoom/Unzoom Window" #~ msgstr "Pritraukti/atitraukti langą" #~ msgid "Zoom the Message Pane" #~ msgstr "Pritraukti laiško sritį" #~ msgid "Zoom the Message Body Pane" #~ msgstr "Pritraukti laiško teksto sritį" #~ msgid "Rot13 the Message Body" #~ msgstr "Rot13 laiško tekstą" #~ msgid "Show All Headers in the Message Body" #~ msgstr "Rodyti visas antraštes laiško tekste" #~ msgid "Open up the Log Viewer." #~ msgstr "Atidaryti Logų peržiūrą." #~ msgid "Open up the Task Manager." #~ msgstr "Atidaryti Užduočių tvarkyklę." #~ msgid "Download..." #~ msgstr "Parsiųsti..." #~ msgid "Get All Headers & Bodies in Selected Groups" #~ msgstr "Gauti visas antraštes ir tekstus pažymėtose grupėse" #~ msgid "Sample Headers & Bodies in Selected Groups" #~ msgstr "Mėginti antraštes ir tekstus iš pažymėtų grupių" #~ msgid "Refresh Article Count" #~ msgstr "Atnaujinti laiškų skaitliuką" #~ msgid "Delete..." #~ msgstr "Ištrinti..." #~ msgid "Delete the selected group(s) from Pan." #~ msgstr "Pašalinti pažymėtą grupę(es) iš Pan" #~ msgid "Empty" #~ msgstr "Ištuštinti" #~ msgid "Rename..." #~ msgstr "Pervadinti..." #~ msgid "Set the properties for the selected group." #~ msgstr "Nurodyti pažymėtos grupės savybes" #~ msgid "Rename Folder..." #~ msgstr "Pervadinti aplanką..." #~ msgid "_Messages" #~ msgstr "_Laiškai" #~ msgid "Unable to parse the geometry string \"%s\"" #~ msgstr "Negaliu išnagrinėti geometrijos eilutės „%s“" #~ msgid " - %s" #~ msgstr " - %s" #~ msgid "Show Status Bar" #~ msgstr "Rodyti būsenos juostą" #~ msgid "Reply by _E-mail" #~ msgstr "Atsakyti _el. paštu" #~ msgid "Create a mail reply to the sender with your favorite MUA." #~ msgstr "Atsakyti siuntėjui el. paštu, naudojant tavo mėgstamą MUA." #~ msgid "Post Followup" #~ msgstr "Skelbti atsakymą" #~ msgid "E-mail Reply" #~ msgstr "Atsakymas el. paštu" #~ msgid "Turn line wrap on/off in the Message Body" #~ msgstr "Įjungti/Išjungti eilučių laužymą laiško tekste" #~ msgid "Groups to Post this message to" #~ msgstr "Grupės, kuriose paskelbti šį laišką" #~ msgid "Users to Mail this message to" #~ msgstr "Vartotojai, kuriems siųsti šį laišką" #~ msgid "Corrupt header skipped - no subject: %s" #~ msgstr "Praleista sugadinta antraštė -- nėra temos: %s" #~ msgid "Corrupt header skipped - no msg id: %s" #~ msgstr "Praleista sugadinta antraštė -- nėra msg id: %s" #~ msgid "Corrupt header skipped - no author: %s" #~ msgstr "Praleista sugadinta antraštė -- nėra autoriaus: %s" #~ msgid "Getting article %d of %d" #~ msgstr "Gaunamas laiškas %d iš %d" #~ msgid "Specify the geometry of the window." #~ msgstr "Nurodyti lango geometriją." #~ msgid "GEOMETRY" #~ msgstr "GEOMETRIJA" #~ msgid "" #~ "Send outgoing messages to stdout instead of smtp/nntp servers for " #~ "debugging purposes." #~ msgstr "" #~ "Siųsti laiškus į stdout, o ne į SMTP/NNTP serverius (derinimo tikslais)" #~ msgid "Turn on article cache debugging messages." #~ msgstr "Įjungti kešo derinimo žinutes." #~ msgid "Turn on database debugging messages." #~ msgstr "Įjungti duombazės derinimo žinutes." #~ msgid "Turn on socket input debugging messages." #~ msgstr "Įjungti lizdo įvesties derinimo žinutes." #~ msgid "Turn on socket output debugging messages." #~ msgstr "Įjungti lizdo išvesties derinimo žinutes." #~ msgid "Turn on socket input/output debugging messages." #~ msgstr "Įjungti lizdo įvesties/išvesties derinimo žinutes." #~ msgid "Same as --debug-socket" #~ msgstr "Tas pats kaip --debug-socket" #~ msgid "Turn on task scheduler debugging messages." #~ msgstr "Įjungti užduočių tvarkyklės derinimo žinutes." #~ msgid "Turn on attachment decoding debugging messages." #~ msgstr "Įjungti priedų dekodavimo derinimo žinutes." #~ msgid "Turn on newsrc decoding debugging messages." #~ msgstr "Įjungti newsrc dekodavimo derinimo žinutes." #~ msgid "Turn on gui thread lock debugging messages." #~ msgstr "Įjungti GUI gijų užrakinimo derinimo žinutes." #~ msgid "Turn on pan object system debugging messages." #~ msgstr "Įjungti pan objektų sistemos derinimo žinutes." #~ msgid "Turn on ALL debugging messages." #~ msgstr "Įjungti VISAS derinimo žinutes." #~ msgid "Run regression tests for the Pan programmers." #~ msgstr "Paleisti atgalinius testus, skirtus Pan programuotojams." #~ msgid "Maximum Connections:" #~ msgstr "Jungčių maksimumas:" #~ msgid "Use gdk_fontset_load instead of gdk_font_load" #~ msgstr "Naudoti gdk_fontset_load vietoj gdk_font_load" #~ msgid "" #~ "Toggling this and restarting Pan is a good idea if your fonts aren't " #~ "being displayed properly." #~ msgstr "Jei šriftai rodomi prastai, gal padės šios parinkties perjungimas." #~ msgid "" #~ "Automatically guess a part when duplicate parts appear in a multipart post" #~ msgstr "" #~ "Savaime atspėti dalį, kai pasikartojančios dalys yra kelių dalių skelbime." #~ msgid "Attribution Line (%i for message-id, %a for author, %d for date)" #~ msgstr "" #~ "Citavimo priešdėlio eilutė (%i -- message-id, %a -- autorius, %d -- data)" #~ msgid "" #~ "External Mail Program (%r for recipient, %s for subject, %t for body " #~ "filename)" #~ msgstr "" #~ "Išorinė pašto programa (%r -- gavėjas, %s -- tema, %t -- teksto bylos " #~ "vardas)" #~ msgid "Text Wrapping" #~ msgstr "Teksto laužymas" #~ msgid "Unread Messages" #~ msgstr "Neskaityti laiškai" #~ msgid "Display" #~ msgstr "Rodymas" #~ msgid "Temporary Directory:" #~ msgstr "Laikinas katalogas:" #~ msgid "Temporary Directory" #~ msgstr "Laikinas katalogas" #~ msgid "Data Directory:" #~ msgstr "Duomenų katalogas:" #~ msgid "Placeholder" #~ msgstr "Tuštuma" #~ msgid "User Identity" #~ msgstr "Vartotojo tapatybė" #~ msgid "Posting - Headers" #~ msgstr "Siuntimas - Antraštės" #~ msgid "Posting - Identity" #~ msgstr "Siuntimas - Asmenybė" #~ msgid "NOT " #~ msgstr "NE" #~ msgid "binary attachments" #~ msgstr "dvejetainių priedų" #~ msgid " complete " #~ msgstr " pilnų " #~ msgid " no " #~ msgstr " jokių" #~ msgid "is a reply to an article I posted" #~ msgstr "yra atsakymas į mano paskelbtą laišką" #~ msgid "incomplete" #~ msgstr "nepilnų" #~ msgid "complete" #~ msgstr "pilnų" #~ msgid "no" #~ msgstr "jokių" #~ msgid "article exceeds" #~ msgstr "laiškas viršija" #~ msgid "article was posted to more than" #~ msgstr "laiškas buvo paskelbtas daugiau nei " #~ msgid "article is in a" #~ msgstr "laiškas yra " #~ msgid "watched" #~ msgstr "stebimoje" #~ msgid "author is a bozo" #~ msgstr "autorius yra kaliausė" #~ msgid "article is marked as" #~ msgstr "laiškas yra pažymėtas" #~ msgid "unread" #~ msgstr "neskaitytu" #~ msgid "Hello frob!" #~ msgstr "Labas frob!" #~ msgid "phrase" #~ msgstr "frazę" #~ msgid "article exceeds %d lines" #~ msgstr "laiškas viršija %d eilutes" #~ msgid "Hello kail!" #~ msgstr "Labas, kail!" #~ msgid "hello tov!" #~ msgstr "labas, tov!" #~ msgid "Hello minmax!" #~ msgstr "Labas, minmax!" #~ msgid "NOT %s" #~ msgstr "NE %s" #~ msgid "Delete Bozos" #~ msgstr "Pašalinti kaliauses" #~ msgid "File Exists. Overwrite this file?" #~ msgstr "Jau yra tokia byla. Užrašyti ant viršaus?" #~ msgid "No Servers Defined" #~ msgstr "Nėra apibrėžtų serverių" #~ msgid "Timed out waiting to read from the server: %s" #~ msgstr "Baigėsi laikas laukiant skaityti iš serverio: %s" #~ msgid "Opening \"%s\"" #~ msgstr "Atidaroma „%s“" #~ msgid "Decode Multipart Message" #~ msgstr "Dekoduoti kelių dalių laišką" #~ msgid "" #~ "Pan found multiple copies of some of the parts of this post.\n" #~ "Please select the parts to use for this decode." #~ msgstr "" #~ "Rastos kelios tos pačios šio skelbimo dalies kopijos.\n" #~ "Prašau, pasirink, kurias iš jų naudoti dekodavimui." #~ msgid "Got %d groups" #~ msgstr "Gauta %d grupių" #~ msgid "Getting new Article Header %lu of %lu" #~ msgstr "Gaunama naujo laiško antraštė %lu iš %lu" #~ msgid "Getting Article Header %lu of %lu" #~ msgstr "Gaunama laiško antraštė %lu iš %lu" #~ msgid "Reply by E-mail" #~ msgstr "Atsakyti el. paštu" #~ msgid "Followup to newsgroup and Reply by E-mail" #~ msgstr "Tęsti naujienų grupėje ir atsakyti el. paštu" #~ msgid "Open in New Window" #~ msgstr "Atidaryti naujame lange" #~ msgid "Open this message for reading." #~ msgstr "Atidaryti šį laišką skaitymui" #~ msgid "Respond" #~ msgstr "Atsakyti" #~ msgid "Rot13 the Body" #~ msgstr "Rot13 tekstą" #~ msgid "No Body Found" #~ msgstr "Nerastas laiško tekstas" #~ msgid "FollowUp-To:" #~ msgstr "Pratęsimas-į:" #~ msgid "Newsgroups:" #~ msgstr "Naujienų grupės:" #~ msgid "Date:" #~ msgstr "Data:" #~ msgid "Unknown Content Type" #~ msgstr "Nežinomas turinio tipas" #~ msgid "couldn't allocate \"headers\" color" #~ msgstr "nepavyko paskirti „antraščių“ spalvos" #~ msgid "ERROR thread %lu attempted double lock! %s:%d" #~ msgstr "KLAIDA gija %lu bandė dukart užrakinti! %s: %d" #~ msgid "" #~ "Thanks for upgrading to Pan %s!\n" #~ "\n" #~ "The database formats changed in version %s of Pan.\n" #~ "You need to delete your Pan database files (located in the directory\n" #~ "``.pan/data'' in your home directory, by default) before using this\n" #~ "version of Pan.\n" #~ "\n" #~ "For more information, see the installation section of the\n" #~ "Pan FAQ at ." #~ msgstr "" #~ "Ačiū, kad atnaujinai iki Pan %s!\n" #~ "\n" #~ "Duomenų bazių formatai pasikeitė %s Pan versijoje.\n" #~ "Tu privalai ištrinti savo Pan duombazių bylas (jos įprastai yra \n" #~ "kataloge „.~/.pan/data“), tik tada galėsi naudotis šia Pan versija.\n" #~ "\n" #~ "Išsamesnės informacijos ieškok Pan FAQ „installation“ skyriuje\n" #~ "." pan-0.162/po/lv.po000066400000000000000000004075211475412772400137250ustar00rootroot00000000000000# pan for Latvian. # Copyright (C) 2002 Charles Kerr # This file is distributed under the same license as the pan package. # Artis Trops , 2002. # msgid "" msgstr "" "Project-Id-Version: pan\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-04-04 20:58+0200\n" "PO-Revision-Date: 2003-02-09 22:40--300\n" "Last-Translator: Artis Trops \n" "Language-Team: Latvian \n" "Language: lv\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../pan.desktop.in.h:1 msgid "Pan Newsreader" msgstr "Pan Jaunumlasītājs" #: ../pan.desktop.in.h:2 #, fuzzy msgid "Read and Post Usenet Articles" msgstr "Saņemt Izvēlētos Rakstus" #: ../pan/data/article-cache.cc:143 ../pan/data/encode-cache.cc:62 #, fuzzy, c-format msgid "Error opening directory: \"%s\": %s" msgstr "Kļūda atverot direktoriju \"%s\": %s)" #: ../pan/data/article-cache.cc:231 ../pan/data/article-cache.cc:242 #: ../pan/data-impl/data-io.cc:187 ../pan/data-impl/data-io.cc:211 #: ../pan/gui/post-ui.cc:1639 #, fuzzy, c-format msgid "Unable to save \"%s\" %s" msgstr "Nespēju iestatīt kopu \"%s\": %s" #: ../pan/data/article-cache.cc:355 #, fuzzy, c-format msgid "Error opening file \"%s\" %s" msgstr "Kļūda atverot failu \"%s\": %s" #: ../pan/data/article-cache.cc:386 ../pan/data-impl/profiles.cc:174 #: ../pan/data-impl/server.cc:436 ../pan/general/file-util.cc:298 #: ../pan/gui/post-ui.cc:609 ../pan/gui/task-pane.cc:691 #, c-format msgid "Error reading file \"%s\": %s" msgstr "Kļūda lasot failu \"%s\": %s" #: ../pan/data/cert-store.cc:238 #, fuzzy, c-format msgid "Error opening SSL certificate directory: \"%s\": %s" msgstr "Kļūda atverot direktoriju \"%s\": %s)" #: ../pan/data/cert-store.cc:270 #, c-format msgid "Succesfully added %d SSL PEM certificate(s) to Certificate Store." msgstr "" #. load_group_descriptions (*_data_io); #: ../pan/data-impl/data-impl.cc:109 #, c-format msgid "Loaded data backend in %.1f seconds" msgstr "" #: ../pan/data-impl/data-impl.cc:140 msgid "Pan newsreader server passwords" msgstr "" #: ../pan/data-impl/groups.cc:94 #, fuzzy, c-format msgid "Skipping newsrc file for server \"%s\"" msgstr "Saņemu %d jaunas kopas no servera \"%s\"" #: ../pan/data-impl/headers.cc:606 #, fuzzy, c-format msgid "Expired %lu old articles from \"%s\"" msgstr "Izdzēsti %u raksti no \"%s\"" #: ../pan/data-impl/headers.cc:613 #, c-format msgid "" "Unsupported data version for %s headers: %d.\n" "Are you running an old version of Pan by accident?" msgstr "" "Neatbalstīta datu versija priekš %s galvenēm: %d.\n" "Vai jūs gadījumā nelietojat vecu Pan versiju?" #: ../pan/data-impl/headers.cc:628 #, fuzzy, c-format msgid "Loaded %lu articles for \"%s\" in %.1f seconds (%.0f per second)" msgstr "Ielādēti %d raksti kopai \"%s\" %.1f sekundēs (%.0f rakasts/sek)" #: ../pan/data-impl/headers.cc:857 #, fuzzy, c-format msgid "" "Saved %lu parts, %lu articles in \"%s\" in %.1f seconds (%.0f articles/sec)" msgstr "Saglbāti %d raksti iekš \"%s\" %.1f sekundēs (%.0f raksti/sek)" #: ../pan/data-impl/headers.cc:1173 #, fuzzy, c-format msgid "Added %lu articles to %s." msgstr "Izdzēsti %u raksti no \"%s\"" #: ../pan/data-impl/server.cc:234 #, c-format msgid "There seems to be no Password set for Server %s." msgstr "" #: ../pan/data-impl/server.cc:238 msgid "The Gnome keyring denied access to the Passwords." msgstr "" #: ../pan/data-impl/xover.cc:239 #, fuzzy, c-format msgid "Error reading from %s: unknown group \"%s\"" msgstr "Kļūda lasot no ligzdas: %s" #. build the locale strings #: ../pan/general/e-util.cc:213 msgid "%l:%M %p" msgstr "" #: ../pan/general/e-util.cc:214 msgid "Today %l:%M %p" msgstr "" #: ../pan/general/e-util.cc:215 msgid "%a %l:%M %p" msgstr "" #: ../pan/general/e-util.cc:216 msgid "%b %d %l:%M %p" msgstr "" #: ../pan/general/e-util.cc:217 msgid "%b %d %Y" msgstr "" #: ../pan/general/e-util.cc:242 msgid "?" msgstr "" #: ../pan/general/text-match.cc:193 #, fuzzy, c-format msgid "Can't use regular expression \"%s\": %s" msgstr "atbilst parastai izteiksmei" #: ../pan/general/utf8-utils.cc:213 msgid "Couldn't determine article encoding. Non-UTF8 characters were removed." msgstr "" #: ../pan/gui/actions.cc:274 ../pan/gui/post-ui.cc:417 #, fuzzy msgid "_File" msgstr "/_Fails" #: ../pan/gui/actions.cc:275 ../pan/gui/post-ui.cc:418 #, fuzzy msgid "_Edit" msgstr "/_Rediģēt" #: ../pan/gui/actions.cc:276 ../pan/gui/prefs-ui.cc:1064 msgid "_Layout" msgstr "_Izkārtojums" #: ../pan/gui/actions.cc:277 #, fuzzy msgid "_Group Pane" msgstr "_Kopas Rūts:" #: ../pan/gui/actions.cc:278 #, fuzzy msgid "_Header Pane" msgstr "_Galvenes Rūts:" #: ../pan/gui/actions.cc:279 #, fuzzy msgid "_Body Pane" msgstr "Rumpja Rūts" #: ../pan/gui/actions.cc:280 #, fuzzy msgid "_View" msgstr "/_Skats" #: ../pan/gui/actions.cc:281 #, fuzzy msgid "Filte_r" msgstr "/Filt_rs" #: ../pan/gui/actions.cc:282 #, fuzzy msgid "_Go" msgstr "/_Iet" #: ../pan/gui/actions.cc:283 ../pan/gui/prefs-ui.cc:1091 #, fuzzy msgid "_Actions" msgstr "Darbības" #: ../pan/gui/actions.cc:284 #, fuzzy msgid "_Articles" msgstr "/_Raksti" #: ../pan/gui/actions.cc:285 #, fuzzy msgid "G_roups" msgstr "Grupas" #: ../pan/gui/actions.cc:286 ../pan/gui/actions.cc:287 #, fuzzy msgid "_Post" msgstr "/_Publicēt" #: ../pan/gui/actions.cc:288 msgid "_Help" msgstr "_Palīdzība" #: ../pan/gui/actions.cc:291 #, fuzzy msgid "_Read Group" msgstr "/Dzē_st Grupu" #: ../pan/gui/actions.cc:292 #, fuzzy msgid "Read Group" msgstr "/Dzē_st Grupu" #: ../pan/gui/actions.cc:296 #, fuzzy msgid "_Mark Selected Groups Read" msgstr "/Marķēt Grupu _Lasītu" #: ../pan/gui/actions.cc:297 #, fuzzy msgid "Mark Selected Groups Read" msgstr "/Marķēt Grupu _Lasītu" #: ../pan/gui/actions.cc:301 #, fuzzy msgid "_Delete Selected Groups' Articles" msgstr "/_Dzēst Grupas Rakstus" #: ../pan/gui/actions.cc:302 #, fuzzy msgid "Delete Selected Groups' Articles" msgstr "/_Dzēst Grupas Rakstus" #: ../pan/gui/actions.cc:306 #, fuzzy msgid "Get New _Headers in Selected Groups" msgstr "Saņemt Jaunās Galvenes Izvēlētajās Grupās" #: ../pan/gui/actions.cc:307 #, fuzzy msgid "Get New Headers in Selected Groups" msgstr "Saņemt Jaunās Galvenes Izvēlētajās Grupās" #: ../pan/gui/actions.cc:311 ../pan/gui/actions.cc:316 #, fuzzy msgid "Get New _Headers in Subscribed Groups" msgstr "Saņemt Jaunās Galvenes Pierakstītajās Grupās" #: ../pan/gui/actions.cc:312 ../pan/gui/actions.cc:317 #, fuzzy msgid "Get New Headers in Subscribed Groups" msgstr "Saņemt Jaunās Galvenes Pierakstītajās Grupās" #: ../pan/gui/actions.cc:321 #, fuzzy msgid "Get _Headers..." msgstr "/Saņemt Jaunas _Galvenes" #: ../pan/gui/actions.cc:322 #, fuzzy msgid "Get Headers..." msgstr "/Saņemt Jaunas _Galvenes" #: ../pan/gui/actions.cc:326 ../pan/gui/actions.cc:327 #, fuzzy msgid "Refresh Group List" msgstr "Atsvaidzinu Kopu \"%s\"" #: ../pan/gui/actions.cc:331 #, fuzzy msgid "_Subscribe" msgstr "/_Pierakstīties" #: ../pan/gui/actions.cc:332 #, fuzzy msgid "Subscribe" msgstr "/_Pierakstīties" #: ../pan/gui/actions.cc:336 #, fuzzy msgid "_Unsubscribe" msgstr "/_Atrakstīties" #: ../pan/gui/actions.cc:337 #, fuzzy msgid "Unsubscribe" msgstr "/_Atrakstīties" #: ../pan/gui/actions.cc:341 #, fuzzy msgid "_Save Articles..." msgstr "Saglabāt Rakstu Kā..." #: ../pan/gui/actions.cc:342 #, fuzzy msgid "Save Articles..." msgstr "Saglabāt Rakstu Kā..." #: ../pan/gui/actions.cc:346 #, fuzzy msgid "Save Articles from Selected _NZB..." msgstr "Saglabāt Rakstu Kā..." #: ../pan/gui/actions.cc:347 #, fuzzy msgid "Save Articles from Selected NZB" msgstr "Saglabāt Raksta _Tekstu" #: ../pan/gui/actions.cc:351 #, fuzzy msgid "Save Articles to an NZB _File..." msgstr "Saglabāt Rakstu Kā..." #: ../pan/gui/actions.cc:352 #, fuzzy msgid "Save Articles to an NZB File" msgstr "Saglabāt žurnālu failā" #: ../pan/gui/actions.cc:356 ../pan/gui/actions.cc:357 #, fuzzy msgid "Print" msgstr "Pan: Druka" #: ../pan/gui/actions.cc:361 msgid "_Import NZB Files..." msgstr "" #: ../pan/gui/actions.cc:366 #, fuzzy msgid "_Cancel Last Task" msgstr "Atcelt Pēdējo Uzdevumu" #: ../pan/gui/actions.cc:371 #, fuzzy msgid "_Task Manager" msgstr "/Rī_ki/_Uzvedevumu Pārvaldnieks..." #: ../pan/gui/actions.cc:376 #, fuzzy msgid "_Event Log" msgstr "Atvērt Statusa Žurnālu" #: ../pan/gui/actions.cc:381 #, fuzzy msgid "_Quit" msgstr "/_Rediģēt" #: ../pan/gui/actions.cc:386 #, fuzzy msgid "Select _All Articles" msgstr "/_Rediģēt/Izvēlēties visus _Rakstus" #: ../pan/gui/actions.cc:391 #, fuzzy msgid "_Deselect All Articles" msgstr "/_Rediģēt/Neizvēlēties _nevienu Rakstu" #: ../pan/gui/actions.cc:396 #, fuzzy msgid "Add Su_bthreads to Selection" msgstr "/_Rediģēt/Pievienot _Apakšpavedienus Izvēlei" #: ../pan/gui/actions.cc:401 #, fuzzy msgid "Add _Threads to Selection" msgstr "/_Rediģēt/Pievienot Pa_vedienus Izvēlei" #: ../pan/gui/actions.cc:406 #, fuzzy msgid "Add _Similar Articles to Selection" msgstr "/_Rediģēt/Pievienot Pa_vedienus Izvēlei" #: ../pan/gui/actions.cc:411 #, fuzzy msgid "Select Article _Body" msgstr "/_Rediģēt/Izvēlēties Raksta Ru_mpi" #: ../pan/gui/actions.cc:416 #, fuzzy msgid "Edit _Preferences" msgstr "/_Rediģēt/_Preferences..." #: ../pan/gui/actions.cc:421 #, fuzzy msgid "Edit Selected _Group's Preferences" msgstr "/_Rediģēt/_Preferences..." #: ../pan/gui/actions.cc:426 ../pan/gui/post-ui.cc:434 #, fuzzy msgid "Edit P_osting Profiles" msgstr "/Rī_ki/_Publicēšanas Profīli..." #: ../pan/gui/actions.cc:431 #, fuzzy msgid "Edit _News Servers" msgstr "/Rī_ki/Ziņu _Serveri..." #: ../pan/gui/actions.cc:436 #, fuzzy msgid "Jump to _Group Tab" msgstr "/_Skats/Pārlekt uz _Kopas Sadaļu" #: ../pan/gui/actions.cc:441 #, fuzzy msgid "Jump to _Header Tab" msgstr "/_Skats/Pārlekt uz _Galvenes Sadaļu" #: ../pan/gui/actions.cc:446 #, fuzzy msgid "Jump to _Body Tab" msgstr "/_Skats/Pārlekt uz _Rumpja Sadaļu" #: ../pan/gui/actions.cc:451 #, fuzzy msgid "_Rot13 Selected Text" msgstr "Rot13 Izvēlētais Teksts" #: ../pan/gui/actions.cc:456 #, fuzzy msgid "Clear _Header Pane" msgstr "_Galvenes Rūts:" #: ../pan/gui/actions.cc:461 #, fuzzy msgid "Clear _Body Pane" msgstr "Rumpja Rūts" #: ../pan/gui/actions.cc:466 #, fuzzy msgid "Cache Article" msgstr "Atceļu rakstu" #: ../pan/gui/actions.cc:471 #, fuzzy msgid "Read Article" msgstr "Iztveru %d rakstus" #: ../pan/gui/actions.cc:476 #, fuzzy msgid "Show Article Information" msgstr "Profīla Informācija" #: ../pan/gui/actions.cc:481 #, fuzzy msgid "Read _More" msgstr "Lasīt Vairāk" #: ../pan/gui/actions.cc:482 msgid "Read More" msgstr "Lasīt Vairāk" #: ../pan/gui/actions.cc:486 msgid "Read _Back" msgstr "" #: ../pan/gui/actions.cc:487 #, fuzzy msgid "Read Back" msgstr "/_Iet/Lasīt Atpakaļ" #: ../pan/gui/actions.cc:491 #, fuzzy msgid "Next _Unread Group" msgstr "/_Iet/Nākamā Nelasītā _Kopa" #: ../pan/gui/actions.cc:496 #, fuzzy msgid "Next _Group" msgstr "/_Iet/_Nākamā Kopa" #: ../pan/gui/actions.cc:501 #, fuzzy msgid "Next _Unread Article" msgstr "Lasīt Nākamo Nelasīto Rakstu" #: ../pan/gui/actions.cc:502 #, fuzzy msgid "Next Unread Article" msgstr "Lasīt Nākamo Nelasīto Rakstu" #: ../pan/gui/actions.cc:506 #, fuzzy msgid "Next _Article" msgstr "/_Iet/Nā_kamais Raksts" #: ../pan/gui/actions.cc:507 #, fuzzy msgid "Next Article" msgstr "/_Iet/Nā_kamais Raksts" #: ../pan/gui/actions.cc:511 #, fuzzy msgid "Next _Watched Article" msgstr "Lasīt Nākamo Nelasīto Rakstu" #: ../pan/gui/actions.cc:516 #, fuzzy msgid "Next Unread _Thread" msgstr "/_Iet/Nākamais Nelasītais _Pavediens" #: ../pan/gui/actions.cc:517 #, fuzzy msgid "Next Unread Thread" msgstr "Lasīt Nākamo Nelasīto Pavedienu" #: ../pan/gui/actions.cc:521 #, fuzzy msgid "Next Threa_d" msgstr "/_Iet/Nākamais Pa_vediens" #: ../pan/gui/actions.cc:526 #, fuzzy msgid "Pre_vious Article" msgstr "/_Iet/Iep_riekšējais Raksts" #: ../pan/gui/actions.cc:531 #, fuzzy msgid "Previous _Thread" msgstr "/_Iet/Ieprie_kšējais Pavediens" #: ../pan/gui/actions.cc:536 #, fuzzy msgid "_Parent Article" msgstr "/_Iet/_Pirmavota Raksts" #: ../pan/gui/actions.cc:541 #, fuzzy msgid "Ignore _Author" msgstr "/_Ignorēt Pavedienu" #: ../pan/gui/actions.cc:545 #, fuzzy msgid "_Watch Thread" msgstr "/_Uzraudzīt Pavedienu" #: ../pan/gui/actions.cc:550 #, fuzzy msgid "_Ignore Thread" msgstr "_Ignorētie Pavedieni:" #: ../pan/gui/actions.cc:555 ../pan/gui/actions.cc:556 #, fuzzy msgid "_Toggle Flag On/Off for Thread" msgstr "/_Uzraudzīt Pavedienu" #: ../pan/gui/actions.cc:560 ../pan/gui/actions.cc:561 #, fuzzy msgid "_Turn Flag Off for Thread" msgstr "/_Uzraudzīt Pavedienu" #: ../pan/gui/actions.cc:565 ../pan/gui/actions.cc:566 #, fuzzy msgid "_Select All Flagged Threads" msgstr "Lasīt Nākamo Nelasīto Pavedienu" #: ../pan/gui/actions.cc:570 ../pan/gui/actions.cc:571 #, fuzzy msgid "_Go to Next Flagged Thread" msgstr "Lasīt Nākamo Nelasīto Pavedienu" #: ../pan/gui/actions.cc:575 ../pan/gui/actions.cc:576 #, fuzzy msgid "_Go to Last Flagged Thread" msgstr "Lasīt Nākamo Nelasīto Pavedienu" #: ../pan/gui/actions.cc:580 ../pan/gui/actions.cc:581 #, fuzzy msgid "_Invert Selection" msgstr "Apgriezt izvēlēto rindiņu" #: ../pan/gui/actions.cc:585 msgid "Edit Article's Watch/Ignore/Score..." msgstr "" #: ../pan/gui/actions.cc:590 #, fuzzy msgid "Add a _Scoring Rule..." msgstr "Pievienot jaunu filtru" #: ../pan/gui/actions.cc:595 #, fuzzy msgid "Cance_l Article..." msgstr "Atceļu rakstu" #: ../pan/gui/actions.cc:600 #, fuzzy msgid "_Supersede Article..." msgstr "/_Saglabāt Rakstu Kā..." #: ../pan/gui/actions.cc:605 #, fuzzy msgid "_Delete Article" msgstr "_Dzēst rakstu" #: ../pan/gui/actions.cc:610 #, fuzzy msgid "Clear Article Cache" msgstr "Rakstu Kešs" #: ../pan/gui/actions.cc:615 #, fuzzy msgid "_Mark Article as Read" msgstr "Raksts ir lasīts" #: ../pan/gui/actions.cc:620 #, fuzzy msgid "Mark Article as _Unread" msgstr "Raksts ir nelasīts" #: ../pan/gui/actions.cc:626 #, fuzzy msgid "_Mark Thread as Read" msgstr "Raksts ir lasīts" #: ../pan/gui/actions.cc:631 #, fuzzy msgid "Mark Thread as _Unread" msgstr "Raksts ir nelasīts" #: ../pan/gui/actions.cc:636 #, fuzzy msgid "_Post to Newsgroup" msgstr "Publicēt Intreškopā" #: ../pan/gui/actions.cc:637 msgid "Post to Newsgroup" msgstr "Publicēt Intreškopā" #: ../pan/gui/actions.cc:641 #, fuzzy msgid "_Followup to Newsgroup" msgstr "/_Publicēt/_Sekot Intreškopā" #: ../pan/gui/actions.cc:642 #, fuzzy msgid "Followup to Newsgroup" msgstr "/_Publicēt/_Sekot Intreškopā" #: ../pan/gui/actions.cc:646 #, fuzzy msgid "_Reply to Author in Mail" msgstr "_Autors:" #: ../pan/gui/actions.cc:651 #, fuzzy msgid "_Pan Home Page" msgstr "/_Palīdzība/Pan _Mājas Lapa..." #: ../pan/gui/actions.cc:656 #, fuzzy msgid "Give _Feedback or Report a Bug..." msgstr "/_Palīdzība/Paziņot par _Blusu..." #: ../pan/gui/actions.cc:661 msgid "_Tip Jar..." msgstr "" #: ../pan/gui/actions.cc:666 #, fuzzy msgid "_About" msgstr "Par" #: ../pan/gui/actions.cc:671 msgid "Edit _SSL Certificates" msgstr "" #: ../pan/gui/actions.cc:685 #, fuzzy msgid "_Thread Headers" msgstr "Vairāk Galvenes" #: ../pan/gui/actions.cc:686 #, fuzzy msgid "_Wrap Article Body" msgstr "/_Skats/Ap_lauzt Raksta Rumpi" #: ../pan/gui/actions.cc:687 #, fuzzy msgid "Mute _Quoted Text" msgstr "/_Skats/Apklusināt _Citēto Tekstu" #: ../pan/gui/actions.cc:688 #, fuzzy msgid "Show All _Headers in Body Pane" msgstr "/_Skats/Parādīt Visas _Galvenes Rumpja Rūtī" #: ../pan/gui/actions.cc:689 #, fuzzy msgid "Show _Smilies as Graphics" msgstr "Parādīt _trauksmi:" #: ../pan/gui/actions.cc:690 msgid "Show *Bold*, __Underlined__, and /Italic/" msgstr "" #: ../pan/gui/actions.cc:691 msgid "Size Pictures to _Fit" msgstr "" #: ../pan/gui/actions.cc:692 #, fuzzy msgid "Use _Monospace Font" msgstr "/_Skats/Lietot _Vienādplatuma Fontu Rumja Rūtī" #: ../pan/gui/actions.cc:693 msgid "Set Focus to Images" msgstr "" #: ../pan/gui/actions.cc:694 msgid "Highlight _URLs" msgstr "" #: ../pan/gui/actions.cc:697 #, fuzzy msgid "_Work Online" msgstr "/_Fails/Strādāt Tieš_saistē" #: ../pan/gui/actions.cc:698 #, fuzzy msgid "_Tabbed Layout" msgstr "/_Skats/_Sadaļu Izkārtojums" #: ../pan/gui/actions.cc:699 #, fuzzy msgid "Show Group _Pane" msgstr "/_Skats/Parādīt Kopas _Rūti" #: ../pan/gui/actions.cc:700 #, fuzzy msgid "Show Hea_der Pane" msgstr "/_Skats/Parādīt _Galvenes Rūti" #: ../pan/gui/actions.cc:701 #, fuzzy msgid "Show Bod_y Pane" msgstr "/_Skats/Parādīt Ru_mpja Rūti" #: ../pan/gui/actions.cc:702 msgid "Show _Toolbar" msgstr "" #: ../pan/gui/actions.cc:703 #, fuzzy msgid "Abbreviate Group Names" msgstr "/_Skats/Saīsināti _Nosaukumi Kopas Rūtī" #: ../pan/gui/actions.cc:705 #, fuzzy msgid "Match Only _Unread Articles" msgstr "/Filt_rs/Atbilst _Nelasītie Raksti" #: ../pan/gui/actions.cc:705 #, fuzzy msgid "Match Only Unread Articles" msgstr "/Filt_rs/Atbilst _Nelasītie Raksti" #: ../pan/gui/actions.cc:706 #, fuzzy msgid "Match Only _Cached Articles" msgstr "Parādīt Tikai Kešotos Rakstus" #: ../pan/gui/actions.cc:706 #, fuzzy msgid "Match Only Cached Articles" msgstr "Parādīt Tikai Kešotos Rakstus" #: ../pan/gui/actions.cc:707 #, fuzzy msgid "Match Only _Complete Articles" msgstr "Parādīt Tikai Pilnīgas Piesaistes" #: ../pan/gui/actions.cc:707 #, fuzzy msgid "Match Only Complete Articles" msgstr "Parādīt Tikai Pilnīgas Piesaistes" #: ../pan/gui/actions.cc:708 #, fuzzy msgid "Match Only _My Articles" msgstr "Parādīt Tikai Jaunos Rakstus" #: ../pan/gui/actions.cc:708 #, fuzzy msgid "Match Only My Articles" msgstr "Parādīt Tikai Jaunos Rakstus" #: ../pan/gui/actions.cc:709 #, fuzzy msgid "Match Only _Watched Articles" msgstr "Parādīt Tikai Kešotos Rakstus" #: ../pan/gui/actions.cc:709 #, fuzzy msgid "Match Only Watched Articles" msgstr "Parādīt Tikai Kešotos Rakstus" #: ../pan/gui/actions.cc:711 msgid "Match Scores of 9999 (_Watched)" msgstr "" #: ../pan/gui/actions.cc:712 msgid "Match Scores of 5000...9998 (_High)" msgstr "" #: ../pan/gui/actions.cc:713 msgid "Match Scores of 1...4999 (Me_dium)" msgstr "" #: ../pan/gui/actions.cc:714 msgid "Match Scores of 0 (_Normal)" msgstr "" #: ../pan/gui/actions.cc:715 msgid "Match Scores of -9998...-1 (_Low)" msgstr "" #: ../pan/gui/actions.cc:716 msgid "Match Scores of -9999 (_Ignored)" msgstr "" #: ../pan/gui/actions.cc:718 msgid "Enable/Disable All _Rules" msgstr "" #: ../pan/gui/actions.cc:744 #, fuzzy msgid "Show Matching _Articles" msgstr "/Filt_rs/Parādīt Atbilstošos Rakstus" #: ../pan/gui/actions.cc:745 #, fuzzy msgid "Show Matching Articles' _Threads" msgstr "/Filt_rs/Parādīt Atbilstošos Rakstus" #: ../pan/gui/actions.cc:746 #, fuzzy msgid "Show Matching Articles' _Subthreads" msgstr "/Filt_rs/Parādīt Atbilstošos Rakstus un Atbildes" #: ../pan/gui/body-pane.cc:1011 #, fuzzy, c-format msgid "Unnamed File" msgstr "Pa_raksta Fails:" #: ../pan/gui/body-pane.cc:1092 ../pan/gui/gui.cc:1864 #: ../pan/gui/header-pane.cc:1188 ../pan/gui/header-pane.cc:1617 #: ../pan/gui/post-ui.cc:2496 ../pan/gui/prefs-ui.cc:833 #: ../pan/gui/score-add-ui.cc:139 msgid "Subject" msgstr "Temats" #: ../pan/gui/body-pane.cc:1094 ../pan/gui/gui.cc:1864 #, fuzzy msgid "From" msgstr "No" #: ../pan/gui/body-pane.cc:1096 ../pan/gui/gui.cc:1865 #: ../pan/gui/header-pane.cc:1695 ../pan/gui/log-ui.cc:305 #: ../pan/gui/prefs-ui.cc:829 msgid "Date" msgstr "Datums" #: ../pan/gui/body-pane.cc:1103 msgid "Newsgroups" msgstr "Interškopas" #: ../pan/gui/body-pane.cc:1108 #, fuzzy msgid "Followup-To" msgstr "Sekojums-Uz" #: ../pan/gui/body-pane.cc:1118 msgid "Reply-To" msgstr "Atbildēt-Uz" #: ../pan/gui/body-pane.cc:1160 msgid " from " msgstr "" #: ../pan/gui/body-pane.cc:1162 msgid " at " msgstr "" #: ../pan/gui/body-pane.cc:1264 #, c-format msgid "" "This is a PGP-Signed message.\n" "\n" "Signer : %s ('%s')\n" "Valid until : %s\n" "Created on : %s" msgstr "" #: ../pan/gui/body-pane.cc:1269 msgid "always" msgstr "" #: ../pan/gui/body-pane.cc:1485 msgid "Copy _URL" msgstr "" #: ../pan/gui/body-pane.cc:1680 #, fuzzy msgid "Save attachment as ...." msgstr "Saglabāt Piesaistnes" #: ../pan/gui/body-pane.cc:1683 #, fuzzy msgid "Save all attachments" msgstr "Saglabāt Piesaistnes" #. add a toolbar for attachments #: ../pan/gui/body-pane.cc:1753 msgid "Attachments" msgstr "Piesaistes" #. update the titlebar #: ../pan/gui/dl-headers-ui.cc:106 ../pan/gui/gui.cc:973 #: ../pan/gui/gui.cc:1592 ../pan/gui/gui.cc:1893 #: ../pan/gui/score-add-ui.cc:602 #, fuzzy msgid "Pan" msgstr "Pan " #: ../pan/gui/dl-headers-ui.cc:112 #, fuzzy, c-format msgid "%d Group" msgid_plural "%d Groups" msgstr[0] "Grupas" msgstr[1] "Grupas" #: ../pan/gui/dl-headers-ui.cc:135 #, fuzzy msgid "Get the last N _days' headers: " msgstr "Lejupielādēt _nesenās galvenes" #: ../pan/gui/dl-headers-ui.cc:143 #, fuzzy msgid "Get _new headers" msgstr "/Saņemt Jaunas _Galvenes" #: ../pan/gui/dl-headers-ui.cc:147 #, fuzzy msgid "Get _all headers" msgstr "Lejupielādēt _visas galvenes" #: ../pan/gui/dl-headers-ui.cc:151 #, fuzzy msgid "Get the _latest N headers: " msgstr "Lejupielādēt _nesenās galvenes" #: ../pan/gui/e-action-combo-box.c:388 ../pan/gui/prefs-ui.cc:826 #, fuzzy msgid "Action" msgstr "Darbības" #: ../pan/gui/e-action-combo-box.c:389 msgid "A GtkRadioAction" msgstr "" #: ../pan/gui/e-charset.c:51 ../pan/gui/task-pane.cc:518 msgid "Unknown" msgstr "Nezināms" #: ../pan/gui/e-charset.c:52 msgid "Arabic" msgstr "" #: ../pan/gui/e-charset.c:53 msgid "Baltic" msgstr "Baltu" #: ../pan/gui/e-charset.c:54 msgid "Central European" msgstr "Centrāleiropas" #: ../pan/gui/e-charset.c:55 #, fuzzy msgid "Chinese" msgstr "Līnijas" #: ../pan/gui/e-charset.c:56 msgid "Cyrillic" msgstr "Kirilica" #: ../pan/gui/e-charset.c:57 msgid "Greek" msgstr "Grieķu" #: ../pan/gui/e-charset.c:58 msgid "Hebrew" msgstr "" #: ../pan/gui/e-charset.c:59 msgid "Japanese" msgstr "Japāņu" #: ../pan/gui/e-charset.c:60 msgid "Korean" msgstr "Korejiešu" #: ../pan/gui/e-charset.c:61 msgid "Thai" msgstr "" #: ../pan/gui/e-charset.c:62 msgid "Turkish" msgstr "Turku" #: ../pan/gui/e-charset.c:63 #, fuzzy msgid "Unicode" msgstr "Unicode, UTF-8" #: ../pan/gui/e-charset.c:64 #, fuzzy msgid "Western European" msgstr "Centrāleiropas" #: ../pan/gui/e-charset.c:65 #, fuzzy msgid "Western European, New" msgstr "Rietumu, Jaunā" #: ../pan/gui/e-charset.c:84 ../pan/gui/e-charset.c:85 #: ../pan/gui/e-charset.c:86 #, fuzzy msgid "Traditional" msgstr "Ķīniešu Tradicionālā" #: ../pan/gui/e-charset.c:87 ../pan/gui/e-charset.c:88 #: ../pan/gui/e-charset.c:89 ../pan/gui/e-charset.c:90 #, fuzzy msgid "Simplified" msgstr "Ķīniešu Vienkāršotā" #: ../pan/gui/e-charset.c:93 #, fuzzy msgid "Ukrainian" msgstr "Kirilica, Ukraiņu" #: ../pan/gui/e-charset.c:96 msgid "Visual" msgstr "" #: ../pan/gui/e-charset-combo-box.c:93 ../pan/gui/gui.cc:2058 #: ../pan/gui/post-ui.cc:519 ../pan/gui/prefs-ui.cc:737 msgid "Character Encoding" msgstr "" #: ../pan/gui/e-charset-combo-box.c:117 msgid "Enter the character set to use" msgstr "" #: ../pan/gui/e-charset-combo-box.c:336 msgid "Other..." msgstr "" #: ../pan/gui/e-cte-dialog.c:78 #, fuzzy msgid "Default encoding" msgstr "Dekodēju \"%s\"" #: ../pan/gui/e-cte-dialog.c:80 #, fuzzy msgid "7Bit Encoding" msgstr "Rumpja Rūts" #: ../pan/gui/e-cte-dialog.c:82 #, fuzzy msgid "8Bit Encoding" msgstr "Rumpja Rūts" #: ../pan/gui/e-cte-dialog.c:84 #, fuzzy msgid "BASE64 Encoding" msgstr "Rumpja Rūts" #: ../pan/gui/e-cte-dialog.c:86 #, fuzzy msgid "Quoted-Printable Encoding" msgstr "Rumpja Rūts" #: ../pan/gui/group-pane.cc:500 msgid "Group" msgstr "Kopa" #: ../pan/gui/group-pane.cc:501 #, fuzzy msgid "Group (regex)" msgstr "_Kopas Rūts:" #: ../pan/gui/group-pane.cc:913 #, fuzzy msgid "Subscribed Groups" msgstr "Pierakstītajām Intreškopām" #: ../pan/gui/group-pane.cc:914 #, fuzzy msgid "Other Groups" msgstr "Jaunas Grupas" #: ../pan/gui/group-pane.cc:954 ../pan/gui/score-view-ui.cc:157 #, fuzzy msgid "Name" msgstr "_Nosaukums:" #: ../pan/gui/group-prefs-dialog.cc:156 #, fuzzy msgid "No Profiles defined in Edit|Posting Profiles." msgstr "/Rī_ki/_Publicēšanas Profīli..." #: ../pan/gui/group-prefs-dialog.cc:231 #, fuzzy msgid "Pan: Group Preferences" msgstr "Pan Preferences" #: ../pan/gui/group-prefs-dialog.cc:247 #, fuzzy, c-format msgid "Properties for Groups" msgstr "Rekvizīti priekš \"%s\"" #: ../pan/gui/group-prefs-dialog.cc:249 #, fuzzy, c-format msgid "Properties for %s" msgstr "Rekvizīti priekš \"%s\"" #: ../pan/gui/group-prefs-dialog.cc:257 #, fuzzy msgid "Character _encoding:" msgstr "Rakstzīmes, kas norāda uz _citētu tekstu:" #: ../pan/gui/group-prefs-dialog.cc:259 #, fuzzy msgid "Directory for Saving Attachments" msgstr "Direktorija _piesaistu saglabāšanai:" #: ../pan/gui/group-prefs-dialog.cc:269 #, fuzzy msgid "Directory for _saving attachments:" msgstr "Direktorija _piesaistu saglabāšanai:" #: ../pan/gui/group-prefs-dialog.cc:271 #, fuzzy msgid "Posting _profile:" msgstr "Pan: Profīls" #: ../pan/gui/group-prefs-dialog.cc:277 msgid "Spellchecker _language:" msgstr "" #: ../pan/gui/gui.cc:273 msgid "Open the Task Manager" msgstr "Atvērt Uzdevumu Pārvaldnieku" #: ../pan/gui/gui.cc:301 #, fuzzy msgid "Open the Event Log" msgstr "Atvērt Statusa Žurnālu" #: ../pan/gui/gui.cc:561 msgid "Save NZB's Files" msgstr "" #: ../pan/gui/gui.cc:588 msgid "Untitled.nzb" msgstr "" #: ../pan/gui/gui.cc:590 #, fuzzy msgid "Save NZB File as..." msgstr "Saglabāt Rakstu Kā..." #: ../pan/gui/gui.cc:757 msgid "Import NZB Files" msgstr "" #: ../pan/gui/gui.cc:765 ../pan/gui/post-ui.cc:3197 #, fuzzy msgid "NZB Files" msgstr "Faili" #: ../pan/gui/gui.cc:770 #, fuzzy msgid "All Files" msgstr "Faili" #: ../pan/gui/gui.cc:1258 #, fuzzy msgid "Unable to supersede article." msgstr "/_Saglabāt Rakstu Kā..." #: ../pan/gui/gui.cc:1259 ../pan/gui/gui.cc:1333 msgid "The article doesn't match any of your posting profiles." msgstr "" #: ../pan/gui/gui.cc:1306 msgid "Revise and send this article to replace the old one." msgstr "" #: ../pan/gui/gui.cc:1307 ../pan/gui/gui.cc:1370 msgid "Be patient! It will take time for your changes to take effect." msgstr "" #: ../pan/gui/gui.cc:1332 #, fuzzy msgid "Unable to cancel article." msgstr "Nespēju izveidot pavedienu: %s" #: ../pan/gui/gui.cc:1369 msgid "Send this article to ask your server to cancel your other one." msgstr "" #: ../pan/gui/gui.cc:1387 msgid "You marked some articles for deletion" msgstr "" #: ../pan/gui/gui.cc:1388 #, fuzzy msgid "Are you sure you want to delete them?" msgstr "Vai esat drošs, ka vēlaties dzēst šīs %d grupas/mapes un to rakstus?" #: ../pan/gui/gui.cc:1413 #, fuzzy msgid "Always trust" msgstr "Redaktors" #: ../pan/gui/gui.cc:1416 msgid "Do you want to accept it permanently (deletable afterwards) ?" msgstr "" #: ../pan/gui/gui.cc:1595 #, fuzzy msgid "Copyright \\u00A9 2002-2012 Charles Kerr and others" msgstr "Autortiesības © 2002 Charles Kerr" #: ../pan/gui/gui.cc:1600 msgid "translator-credits" msgstr "" #: ../pan/gui/gui.cc:1709 #, fuzzy msgid "_1. Group Pane" msgstr "_Kopas Rūts:" #: ../pan/gui/gui.cc:1710 #, fuzzy msgid "_2. Header Pane" msgstr "_Galvenes Rūts:" #: ../pan/gui/gui.cc:1711 #, fuzzy msgid "_3. Body Pane" msgstr "Rumpja Rūts" #: ../pan/gui/gui.cc:1800 ../pan/gui/gui.cc:1815 msgid " Bytes" msgstr "" #: ../pan/gui/gui.cc:1803 msgid " KB" msgstr "" #: ../pan/gui/gui.cc:1806 msgid " MB" msgstr "" #: ../pan/gui/gui.cc:1809 msgid " GB" msgstr "" #: ../pan/gui/gui.cc:1812 msgid " TB" msgstr "" #: ../pan/gui/gui.cc:1844 #, fuzzy, c-format msgid "This article is complete with %d part." msgid_plural "This article has all %d parts." msgstr[0] "Rakstam nav piesaistnes" msgstr[1] "Rakstam nav piesaistnes" #: ../pan/gui/gui.cc:1846 #, fuzzy, c-format msgid "This article is missing %d part." msgid_plural "This article is missing %d of its %d parts:" msgstr[0] "Rakstam nav piesaistnes" msgstr[1] "Rakstam nav piesaistnes" #: ../pan/gui/gui.cc:1865 ../pan/gui/header-pane.cc:1190 #, fuzzy msgid "Message-ID" msgstr "_Ziņas-ID:" #: ../pan/gui/gui.cc:1866 ../pan/gui/header-pane.cc:1665 #: ../pan/gui/prefs-ui.cc:830 msgid "Lines" msgstr "Līnijas" #: ../pan/gui/gui.cc:1866 msgid "Size" msgstr "" #: ../pan/gui/gui.cc:1867 ../pan/gui/header-pane.cc:1680 #: ../pan/gui/prefs-ui.cc:828 msgid "Bytes" msgstr "" #: ../pan/gui/gui.cc:1917 msgid "" "Error loading iconv library. Some Charsets in the GUI will not be able to be " "encoded." msgstr "" #: ../pan/gui/gui.cc:2059 #, fuzzy msgid "Body Pane Encoding" msgstr "Rumpja Rūts" #: ../pan/gui/gui.cc:2090 ../pan/gui/task-pane.cc:569 #, c-format msgid "Offline" msgstr "Bezsaistē" #: ../pan/gui/gui.cc:2094 #, fuzzy, c-format msgid "Closing %d connection" msgid_plural "Closing %d connections" msgstr[0] "Aizveru %d savienojumus" msgstr[1] "Aizveru %d savienojumus" #: ../pan/gui/gui.cc:2096 ../pan/gui/gui.cc:2126 #, c-format msgid "No Connections" msgstr "Nav Savienojumu" #: ../pan/gui/gui.cc:2100 #, c-format msgid "Connecting" msgstr "Savienojos" #: ../pan/gui/gui.cc:2113 #, c-format msgid "%s: %d idle, %d active @ %.1f KiBps" msgstr "" #: ../pan/gui/gui.cc:2169 #, c-format msgid "No Tasks" msgstr "Nav Uzdevumu" #: ../pan/gui/gui.cc:2171 ../pan/gui/prefs-ui.cc:1047 msgid "Tasks" msgstr "Uzdevumi" #: ../pan/gui/gui.cc:2182 ../pan/gui/task-pane.cc:435 #, c-format msgid "%lu tasks, %s, %.1f KiBps, ETA %d:%02d:%02d" msgstr "" #: ../pan/gui/gui.cc:2234 msgid "" "Pan is now offline. Please see \"File|Event Log\" and correct the problem, " "then use \"File|Work Online\" to continue." msgstr "" #: ../pan/gui/header-pane.cc:1186 msgid "Subject or Author" msgstr "" #: ../pan/gui/header-pane.cc:1187 msgid "Sub or Auth (regex)" msgstr "" #: ../pan/gui/header-pane.cc:1189 ../pan/gui/header-pane.cc:1649 #: ../pan/gui/prefs-ui.cc:827 ../pan/gui/score-add-ui.cc:140 msgid "Author" msgstr "Autors" #: ../pan/gui/header-pane.cc:1634 ../pan/gui/prefs-ui.cc:831 msgid "Score" msgstr "" #: ../pan/gui/log-ui.cc:103 msgid "Save Event List" msgstr "" #: ../pan/gui/log-ui.cc:256 #, fuzzy msgid "Pan: Events" msgstr "Pan: Serveri" #: ../pan/gui/log-ui.cc:315 msgid "Message" msgstr "Ziņa" #: ../pan/gui/pan.cc:330 msgid "Maximize" msgstr "" #: ../pan/gui/pan.cc:383 msgid "An Error has occurred!" msgstr "" #: ../pan/gui/pan.cc:397 #, fuzzy msgid "New Articles!" msgstr "/_Iet/Nā_kamais Raksts" #: ../pan/gui/pan.cc:398 msgid "" "There are new\n" "articles available." msgstr "" #: ../pan/gui/pan.cc:465 msgid "Toggle on/offline" msgstr "" #: ../pan/gui/pan.cc:513 msgid "" "Thank you for trying Pan!\n" " \n" "To start newsreading, first Add a Server." msgstr "" #: ../pan/gui/pan.cc:595 msgid "" "General Options\n" " -h, --help Show this usage page.\n" " --verbose Be verbose (in non-GUI mode).\n" "\n" "URL Options\n" " --no-gui On news:message-id, dump the article to stdout.\n" "\n" "NZB Batch Options\n" " --nzb file1 file2 ... Process nzb files without launching all of Pan.\n" " -o path, --output=path Path to save attachments listed in the nzb " "files.\n" " --no-gui Only show console output, not the download " "queue.\n" msgstr "" #: ../pan/gui/pan.cc:867 msgid "Error: --no-gui used without nzb files or news:message-id." msgstr "" #: ../pan/gui/pan.cc:871 #, fuzzy, c-format msgid "Pan %s started" msgstr "Pan %s Sāknēts" #: ../pan/gui/pan.cc:890 msgid "Please configure Pan's news servers before using it as an nzb client." msgstr "" #: ../pan/gui/pan.cc:1009 msgid "Pan notification" msgstr "" #: ../pan/gui/post-ui.cc:186 #, c-format msgid "Upload Queue : %ld Tasks, %ld KB (~ %.2f MB) total ." msgstr "" #: ../pan/gui/post-ui.cc:286 #, fuzzy, c-format msgid "Error setting custom spellchecker: %s" msgstr "Kļūda rakstot ligzdā: %s" #: ../pan/gui/post-ui.cc:291 ../pan/gui/post-ui.cc:300 #, fuzzy, c-format msgid "Error setting spellchecker: %s" msgstr "Kļūda rakstot ligzdā: %s" #: ../pan/gui/post-ui.cc:419 #, fuzzy msgid "_Profile" msgstr "Profīls" #: ../pan/gui/post-ui.cc:420 #, fuzzy msgid "Set Editor" msgstr "Redaktors" #: ../pan/gui/post-ui.cc:422 #, fuzzy msgid "_Send Article" msgstr "/_Iet/_Pirmavota Raksts" #: ../pan/gui/post-ui.cc:422 #, fuzzy msgid "Send Article Now" msgstr "Sūtīt Tagad" #: ../pan/gui/post-ui.cc:423 #, fuzzy msgid "_Send and Save Articles to NZB" msgstr "Saglabāt Rakstu Kā..." #: ../pan/gui/post-ui.cc:423 #, fuzzy msgid "Send and Save Articles to NZB" msgstr "Saglabāt Rakstu Kā..." #: ../pan/gui/post-ui.cc:424 #, fuzzy msgid "Set Character _Encoding..." msgstr "Rakstzīmes, kas norāda uz _citētu tekstu:" #: ../pan/gui/post-ui.cc:425 #, fuzzy msgid "Set Content _Transfer Encoding..." msgstr "Rakstzīmes, kas norāda uz _citētu tekstu:" #: ../pan/gui/post-ui.cc:426 #, fuzzy msgid "Sa_ve Draft" msgstr "Saglabāju Rakstus" #: ../pan/gui/post-ui.cc:426 msgid "Save as a Draft for Future Posting" msgstr "" #: ../pan/gui/post-ui.cc:427 #, fuzzy msgid "_Open Draft..." msgstr "/_Lasīt Rakstu" #: ../pan/gui/post-ui.cc:427 #, fuzzy msgid "Open an Article Draft" msgstr "/_Lasīt Rakstu" #: ../pan/gui/post-ui.cc:432 #, fuzzy msgid "_Rot13" msgstr "Rot13" #: ../pan/gui/post-ui.cc:432 msgid "Rot13 Selected Text" msgstr "Rot13 Izvēlētais Teksts" #: ../pan/gui/post-ui.cc:433 #, fuzzy msgid "Run _Editor" msgstr "Redaktors" #: ../pan/gui/post-ui.cc:433 #, fuzzy msgid "Run Editor" msgstr "Redaktors" #: ../pan/gui/post-ui.cc:435 msgid "Add _Files to Queue" msgstr "" #: ../pan/gui/post-ui.cc:435 msgid "Add Files to Queue" msgstr "" #: ../pan/gui/post-ui.cc:450 ../pan/gui/post-ui.cc:451 #, fuzzy msgid "Remove from Queue" msgstr "Jauns Serveris" #: ../pan/gui/post-ui.cc:455 ../pan/gui/post-ui.cc:456 #, fuzzy msgid "Clear List" msgstr "Izvēlēties Filtru:" #: ../pan/gui/post-ui.cc:460 ../pan/gui/post-ui.cc:461 #, fuzzy msgid "Select Needed Parts" msgstr "Izvēlieties Fontu" #: ../pan/gui/post-ui.cc:465 ../pan/gui/post-ui.cc:466 #: ../pan/gui/task-pane.cc:636 ../pan/gui/task-pane.cc:637 msgid "Move Up" msgstr "" #: ../pan/gui/post-ui.cc:470 ../pan/gui/post-ui.cc:471 #: ../pan/gui/task-pane.cc:641 ../pan/gui/task-pane.cc:642 msgid "Move Down" msgstr "" #: ../pan/gui/post-ui.cc:475 ../pan/gui/post-ui.cc:476 msgid "Move to Top" msgstr "" #: ../pan/gui/post-ui.cc:480 ../pan/gui/post-ui.cc:481 #, fuzzy msgid "Move to Bottom" msgstr "Pārvietot Izvēlēto(s) Uzdevumu(s) uz Apakšu" #: ../pan/gui/post-ui.cc:488 #, fuzzy msgid "_Wrap Text" msgstr "Aplauzt Tekstu" #: ../pan/gui/post-ui.cc:488 #, fuzzy msgid "Wrap Text" msgstr "Aplauzt Tekstu" #: ../pan/gui/post-ui.cc:489 #, fuzzy msgid "Always Run Editor" msgstr "Redaktors" #: ../pan/gui/post-ui.cc:490 msgid "Remember Character Encoding for this Group" msgstr "" #: ../pan/gui/post-ui.cc:491 #, fuzzy msgid "Thread Attached Replies" msgstr "Pavedies tiek uzraudzīts vai ignorēts" #: ../pan/gui/post-ui.cc:492 msgid "PGP-Encrypt the Message" msgstr "" #: ../pan/gui/post-ui.cc:493 msgid "PGP-Sign the Message" msgstr "" #: ../pan/gui/post-ui.cc:494 msgid "Check _Spelling" msgstr "" #: ../pan/gui/post-ui.cc:520 #, fuzzy msgid "New Article's Encoding:" msgstr "Pan: Saglabāt Rakstu Kā" #: ../pan/gui/post-ui.cc:530 #, fuzzy msgid "Content Transfer Encoding" msgstr "Rumpja Rūts" #: ../pan/gui/post-ui.cc:531 #, fuzzy msgid "New Article's Content Transfer Encoding:" msgstr "Pan: Saglabāt Rakstu Kā" #: ../pan/gui/post-ui.cc:711 msgid "Your changes will be lost!" msgstr "" #: ../pan/gui/post-ui.cc:712 msgid "Close this window and lose your changes?" msgstr "" #: ../pan/gui/post-ui.cc:757 ../pan/gui/post-ui.cc:796 msgid "There were problems with this post." msgstr "" #: ../pan/gui/post-ui.cc:759 ../pan/gui/post-ui.cc:798 #: ../pan/gui/post-ui.cc:861 #, fuzzy msgid "Go Back" msgstr "/_Iet/Lasīt Atpakaļ" #: ../pan/gui/post-ui.cc:761 msgid "Post Anyway" msgstr "" #. Prompt the user #: ../pan/gui/post-ui.cc:790 #, fuzzy, c-format msgid "" "Message uses characters not specified in charset '%s' - possibly use '%s' " msgstr "" "Ziņa satur rakstzīmes, kas neietilpst rakstzīmjkopā '%s' - drīzāk tā vietā " "lietot '%s' ?" #: ../pan/gui/post-ui.cc:813 #, fuzzy msgid "Go _Online" msgstr "Tiešsaistē" #: ../pan/gui/post-ui.cc:860 msgid "The file queue is empty, so no files can be saved." msgstr "" #: ../pan/gui/post-ui.cc:1019 msgid "" "No posting server is set for this posting profile.\n" "Please edit the profile via Edit|Manage Posting Profiles." msgstr "" #: ../pan/gui/post-ui.cc:1054 #, fuzzy msgid "Pan is Offline." msgstr "Pan ir Bezsaistē" #: ../pan/gui/post-ui.cc:1055 msgid "Go online to post the article?" msgstr "" #: ../pan/gui/post-ui.cc:1102 #, c-format msgid "" "Error signing/encrypting your message. Perhaps you misspelled your email-" "address (%s) ?" msgstr "" #: ../pan/gui/post-ui.cc:1267 #, fuzzy msgid "Error opening temporary file" msgstr "Kļūda atverot pagaidu failu: \"%s\"" #: ../pan/gui/post-ui.cc:1279 #, c-format msgid "Error writing article to temporary file: %s" msgstr "Kļūda rakstot rakstu pagaidu failā: %s" #: ../pan/gui/post-ui.cc:1298 #, fuzzy, c-format msgid "Error parsing \"external editor\" command line: %s (Command was: %s)" msgstr "Kļūda parsējot \"ārējais redaktors\" komandas rindu: %s" #: ../pan/gui/post-ui.cc:1339 #, c-format msgid "Error starting external editor: %s" msgstr "Kļūda sāknējot ārējo redaktoru: %s" #: ../pan/gui/post-ui.cc:1395 #, fuzzy msgid "Open Draft Article" msgstr "/_Lasīt Rakstu" #: ../pan/gui/post-ui.cc:1606 #, fuzzy msgid "Save Draft Article" msgstr "Saglabāju Rakstus" #: ../pan/gui/post-ui.cc:1803 #, fuzzy, c-format msgid "Couldn't parse signature command \"%s\": %s" msgstr "Nevarēju izpildīt paraksta programmu \"%s\": %s" #: ../pan/gui/post-ui.cc:1839 #, fuzzy msgid "Couldn't convert signature to UTF-8." msgstr "Nevarēju konvertēt paraksta failu '%s' uz UTF-8. Parakstam jābūt '%s'" #: ../pan/gui/post-ui.cc:2334 #, fuzzy msgid "F_rom" msgstr "No" #: ../pan/gui/post-ui.cc:2352 #, fuzzy msgid "_Subject" msgstr "_Temats:" #: ../pan/gui/post-ui.cc:2365 #, fuzzy msgid "_Newsgroups" msgstr "/In_treškopas" #: ../pan/gui/post-ui.cc:2379 #, fuzzy msgid "Mail _To" msgstr "Pasts Uz" #: ../pan/gui/post-ui.cc:2481 msgid "Delete from Queue" msgstr "" #: ../pan/gui/post-ui.cc:2494 msgid "No." msgstr "" #: ../pan/gui/post-ui.cc:2498 ../pan/gui/post-ui.cc:2592 #: ../pan/gui/post-ui.cc:2633 msgid "Filename" msgstr "Faila nosaukums" #: ../pan/gui/post-ui.cc:2500 msgid "Size (kB)" msgstr "" #: ../pan/gui/post-ui.cc:2600 msgid "The current filename" msgstr "" #: ../pan/gui/post-ui.cc:2604 #, fuzzy msgid "Subject Line" msgstr "Temats" #: ../pan/gui/post-ui.cc:2612 msgid "The current Subject Line" msgstr "" #: ../pan/gui/post-ui.cc:2626 msgid "No. " msgstr "" #: ../pan/gui/post-ui.cc:2630 msgid "Enable/Disable" msgstr "" #: ../pan/gui/post-ui.cc:2664 #, fuzzy msgid "Follo_wup-To" msgstr "Sekojums-Uz" #. i18n: "poster" is a key used by many newsreaders. probably safest to keep this key in english. #: ../pan/gui/post-ui.cc:2673 #, fuzzy msgid "" "The newsgroups where replies to your message should go. This is only needed " "if it differs from the \"Newsgroups\" header.\n" "\n" "To direct all replies to your email address, use \"Followup-To: poster\"" msgstr "" "Intreškopas, uz kurām būtu jāiet atbildēm uz jūsu ziņu. Šis nepieciešams " "tikai tad, ja tas atšķiras no \"Publicēt Kopās\" galvenes. \n" "Lai novirzītu visas atbildes uz jūsu epasta adresi, lietojiet \"Sekojums-Uz: " "publicētājs\"" #: ../pan/gui/post-ui.cc:2679 #, fuzzy msgid "_Reply-To" msgstr "Atbildēt-Uz" #: ../pan/gui/post-ui.cc:2687 msgid "" "The email account where mail replies to your posted message should go. This " "is only needed if it differs from the \"From\" header." msgstr "" "Epasta konts, uz kuru jāiet pasta atbildēm uz jūsu publicēto ziņu. Tas " "nepieciešams tikai tad, ja tas atšķiras no \"No\" galvenes." #: ../pan/gui/post-ui.cc:2693 #, fuzzy msgid "_Custom Headers" msgstr "Pašnoteiktās Galvenes" #: ../pan/gui/post-ui.cc:2717 #, fuzzy msgid "Add \"_User-Agent\" header" msgstr "Nepievieot \"Lietotāja-Aģents\" galveni" #: ../pan/gui/post-ui.cc:2724 #, fuzzy msgid "Add \"Message-_Id\" header" msgstr "Ziņas-ID" #: ../pan/gui/post-ui.cc:2855 #, fuzzy msgid "Select Parts" msgstr "Izvēlieties Fontu" #: ../pan/gui/post-ui.cc:2866 msgid "_Parts" msgstr "" #: ../pan/gui/post-ui.cc:3022 #, fuzzy msgid "Post Article" msgstr "Kārtoju Rakstus" #: ../pan/gui/post-ui.cc:3043 #, fuzzy msgid "_Message" msgstr "Ziņa" #: ../pan/gui/post-ui.cc:3044 #, fuzzy msgid "More _Headers" msgstr "Vairāk Galvenes" #: ../pan/gui/post-ui.cc:3045 #, fuzzy msgid "File _Queue" msgstr "/_Fails/_Iziet" #: ../pan/gui/post-ui.cc:3077 ../pan/gui/profiles-dialog.cc:478 #, no-c-format msgid "On %d, %n wrote:" msgstr "%d, %n rakstīja:" #: ../pan/gui/post-ui.cc:3106 msgid "Add files to queue" msgstr "" #: ../pan/gui/post-ui.cc:3184 msgid "Save Upload Queue as NZB File" msgstr "" #: ../pan/gui/prefs.cc:343 #, fuzzy, c-format msgid "Couldn't parse %s color \"%s\"" msgstr "Nevarēju parsēt paraksta komandu \"%s\"" #: ../pan/gui/prefs-ui.cc:120 msgid "Grab Key" msgstr "" #: ../pan/gui/prefs-ui.cc:126 #, c-format msgid "" "Press the combination of the keys\n" "you want to use for \"%s\"." msgstr "" #: ../pan/gui/prefs-ui.cc:166 #, fuzzy msgid "Edit Hotkey" msgstr "Rediģēt Filtrus" #: ../pan/gui/prefs-ui.cc:228 msgid "Error: Shortkey is invalid!" msgstr "" #: ../pan/gui/prefs-ui.cc:244 #, fuzzy msgid "Error: Shortkey already exists!" msgstr "Mape \"%s\" jau eksistē." #: ../pan/gui/prefs-ui.cc:535 #, fuzzy msgid "Show only icons" msgstr "Profīla Informācija" #: ../pan/gui/prefs-ui.cc:536 #, fuzzy msgid "Show only text" msgstr "/_Skats/Parādīt Ru_mpja Rūti" #: ../pan/gui/prefs-ui.cc:537 #, fuzzy msgid "Show icons and text" msgstr "Saglabāt piesaistnes _direktorijā:" #: ../pan/gui/prefs-ui.cc:576 #, fuzzy msgid "Use GNOME Preferences" msgstr "Pan Preferences" #: ../pan/gui/prefs-ui.cc:577 #, fuzzy msgid "Use KDE Preferences" msgstr "Pan Preferences" #: ../pan/gui/prefs-ui.cc:578 #, fuzzy msgid "Use OS X Preferences" msgstr "Pan Preferences" #: ../pan/gui/prefs-ui.cc:579 #, fuzzy msgid "Use Windows Preferences" msgstr "Pan Preferences" #: ../pan/gui/prefs-ui.cc:580 #, fuzzy msgid "Custom Command:" msgstr "Drukas Komanda:" #: ../pan/gui/prefs-ui.cc:632 msgid "Disabled" msgstr "" #: ../pan/gui/prefs-ui.cc:633 msgid "Only new (Score == 0)" msgstr "" #: ../pan/gui/prefs-ui.cc:634 msgid "9999 or more" msgstr "" #: ../pan/gui/prefs-ui.cc:635 msgid "5000 to 9998" msgstr "" #: ../pan/gui/prefs-ui.cc:636 msgid "1 to 4999" msgstr "" #: ../pan/gui/prefs-ui.cc:637 msgid "-9998 to -1" msgstr "" #: ../pan/gui/prefs-ui.cc:638 msgid "-9999 or less" msgstr "" #: ../pan/gui/prefs-ui.cc:702 #, c-format msgid "Select default global charset. Current setting : %s ." msgstr "" #: ../pan/gui/prefs-ui.cc:738 msgid "Global Charset Settings" msgstr "" #: ../pan/gui/prefs-ui.cc:832 ../pan/gui/task-pane.cc:770 #, fuzzy msgid "State" msgstr "Statuss" #: ../pan/gui/prefs-ui.cc:866 msgid "Enabled" msgstr "" #: ../pan/gui/prefs-ui.cc:870 #, fuzzy msgid "Column Name" msgstr "_Kopas Rūts:" #: ../pan/gui/prefs-ui.cc:908 #, fuzzy msgid "Pan: Preferences" msgstr "Pan Preferences" #: ../pan/gui/prefs-ui.cc:923 msgid "Mouse" msgstr "" #: ../pan/gui/prefs-ui.cc:925 #, fuzzy msgid "Single-click activates, rather than selects, _groups" msgstr "viens _klikšķis dzīzāk izvēlas, nevis ielādē grupas" #: ../pan/gui/prefs-ui.cc:927 #, fuzzy msgid "Single-click activates, rather than selects, _articles" msgstr "_viens klikšķis dzīzāk izvēlas, nevis nevis ielādē galvenes" #: ../pan/gui/prefs-ui.cc:930 #, fuzzy msgid "Groups" msgstr "Grupas" #: ../pan/gui/prefs-ui.cc:932 #, fuzzy msgid "Get new headers in subscribed groups on _startup" msgstr "Saņemt Jaunās Galvenes Pierakstītajās Grupās" #: ../pan/gui/prefs-ui.cc:934 #, fuzzy msgid "Get new headers when _entering group" msgstr "Lejupielādēt jaunās galvenes, kad ielādē _kopu" #: ../pan/gui/prefs-ui.cc:936 #, fuzzy msgid "Mark entire group _read when leaving group" msgstr "Lejupielādēt jaunās galvenes, kad ielādē _kopu" #: ../pan/gui/prefs-ui.cc:938 #, fuzzy msgid "Mark entire group read before getting _new headers" msgstr "Lejupielādēt jaunās galvenes, kad ielādē _kopu" #: ../pan/gui/prefs-ui.cc:940 #, fuzzy msgid "E_xpand all threads when entering group" msgstr "Lejupielādēt jaunās galvenes, kad ielādē _kopu" #: ../pan/gui/prefs-ui.cc:945 #, fuzzy msgid "Articles" msgstr "/_Raksti" #: ../pan/gui/prefs-ui.cc:947 msgid "Space selects next article rather than next unread" msgstr "" #: ../pan/gui/prefs-ui.cc:949 #, fuzzy msgid "Expand threads upon selection" msgstr "/_Rediģēt/Pievienot Pa_vedienus Izvēlei" #: ../pan/gui/prefs-ui.cc:951 msgid "Always show article deletion confirmation dialog" msgstr "" #: ../pan/gui/prefs-ui.cc:953 #, fuzzy msgid "Smooth scrolling" msgstr "Plūstoša _ritināšana ātrumā:" #: ../pan/gui/prefs-ui.cc:958 #, fuzzy msgid "Article Cache" msgstr "Rakstu Kešs" #: ../pan/gui/prefs-ui.cc:959 msgid "Clear article cache on shutdown" msgstr "" #: ../pan/gui/prefs-ui.cc:962 msgid "Size of article cache (in MiB) :" msgstr "" #: ../pan/gui/prefs-ui.cc:967 #, fuzzy msgid "File extension for Cached Articles: " msgstr "/Filt_rs/Atbilst _Lasītie Raksti" #: ../pan/gui/prefs-ui.cc:972 msgid "Tabs" msgstr "" #: ../pan/gui/prefs-ui.cc:977 #, fuzzy msgid "_Behavior" msgstr "Peles Uzvedība" #: ../pan/gui/prefs-ui.cc:977 #, fuzzy msgid "Behavior" msgstr "Peles Uzvedība" #: ../pan/gui/prefs-ui.cc:983 #, fuzzy msgid "Language Settings" msgstr "Saņemu \"%s\"" #. systray and notify popup #: ../pan/gui/prefs-ui.cc:992 #, fuzzy msgid "System Tray Behavior" msgstr "Peles Uzvedība" #: ../pan/gui/prefs-ui.cc:994 msgid "Hide to system tray" msgstr "" #: ../pan/gui/prefs-ui.cc:996 #, fuzzy msgid "Start Pan minimized" msgstr "Sāknēt Pan _tiešsaistes režīmā" #: ../pan/gui/prefs-ui.cc:999 #, fuzzy msgid "Show notifications" msgstr "Profīla Informācija" #. allow multiple instances (seperate, not communicating with dbus) #: ../pan/gui/prefs-ui.cc:1004 #, fuzzy msgid "Startup Behavior" msgstr "Peles Uzvedība" #: ../pan/gui/prefs-ui.cc:1006 msgid "Allow multiple instances of Pan" msgstr "" #: ../pan/gui/prefs-ui.cc:1011 #, fuzzy msgid "Autosave Article Draft" msgstr "/_Lasīt Rakstu" #: ../pan/gui/prefs-ui.cc:1013 #, fuzzy msgid "Minutes to autosave the current Article Draft: " msgstr "/_Lasīt Rakstu" #: ../pan/gui/prefs-ui.cc:1018 #, fuzzy msgid "Autosave Articles" msgstr "Saglabāt Rakstu Kā..." #: ../pan/gui/prefs-ui.cc:1020 msgid "Minutes to autosave newsrc files: " msgstr "" #: ../pan/gui/prefs-ui.cc:1026 msgid "_Miscellaneous" msgstr "" #: ../pan/gui/prefs-ui.cc:1026 msgid "Miscellaneous" msgstr "" #: ../pan/gui/prefs-ui.cc:1031 msgid "Pane Layout" msgstr "Rūts Izkārtojums" #: ../pan/gui/prefs-ui.cc:1050 msgid "1=Groups, 2=Headers, 3=Body" msgstr "" #: ../pan/gui/prefs-ui.cc:1052 msgid "1=Groups, 2=Body, 3=Headers" msgstr "" #: ../pan/gui/prefs-ui.cc:1054 msgid "1=Headers, 2=Groups, 3=Body" msgstr "" #: ../pan/gui/prefs-ui.cc:1056 msgid "1=Headers, 2=Body, 3=Groups" msgstr "" #: ../pan/gui/prefs-ui.cc:1058 msgid "1=Body, 2=Groups, 3=Headers" msgstr "" #: ../pan/gui/prefs-ui.cc:1060 msgid "1=Body, 2=Headers, 3=Groups" msgstr "" #: ../pan/gui/prefs-ui.cc:1064 #, fuzzy msgid "Layout" msgstr "_Izkārtojums" #: ../pan/gui/prefs-ui.cc:1069 #, fuzzy msgid "Header Pane Columns" msgstr "_Galvenes Rūts:" #: ../pan/gui/prefs-ui.cc:1073 #, fuzzy msgid "_Headers" msgstr "Galvenes" #: ../pan/gui/prefs-ui.cc:1073 #, fuzzy msgid "Headers" msgstr "Galvenes" #: ../pan/gui/prefs-ui.cc:1079 msgid "" "This menu lets you configure Pan to take certain actions on your behalf " "automatically, based on a post's score." msgstr "" #: ../pan/gui/prefs-ui.cc:1082 msgid "_Delete posts scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1084 msgid "Mark posts _read scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1086 msgid "_Cache posts scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1088 msgid "Download _attachments of posts scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1091 #, fuzzy msgid "Actions" msgstr "Darbības" #: ../pan/gui/prefs-ui.cc:1096 ../pan/gui/prefs-ui.cc:1117 msgid "Fonts" msgstr "Fonti" #: ../pan/gui/prefs-ui.cc:1098 #, fuzzy msgid "Use custom font in Group Pane:" msgstr "Lietot pašizvēlētus _fontus" #: ../pan/gui/prefs-ui.cc:1103 #, fuzzy msgid "Use custom font in Header Pane:" msgstr "Lietot pašizvēlētus _fontus" #: ../pan/gui/prefs-ui.cc:1108 #, fuzzy msgid "Use custom font in Body Pane:" msgstr "Lietot pašizvēlētus _fontus" #: ../pan/gui/prefs-ui.cc:1113 msgid "Monospace font:" msgstr "" #: ../pan/gui/prefs-ui.cc:1117 #, fuzzy msgid "_Fonts" msgstr "Fonti" #: ../pan/gui/prefs-ui.cc:1122 #, fuzzy msgid "Header Pane" msgstr "_Galvenes Rūts:" #: ../pan/gui/prefs-ui.cc:1125 ../pan/gui/prefs-ui.cc:1131 #: ../pan/gui/prefs-ui.cc:1137 ../pan/gui/prefs-ui.cc:1143 #: ../pan/gui/prefs-ui.cc:1149 ../pan/gui/prefs-ui.cc:1155 #, fuzzy msgid "Text:" msgstr "Citēts Teksts _1:" #: ../pan/gui/prefs-ui.cc:1127 ../pan/gui/prefs-ui.cc:1133 #: ../pan/gui/prefs-ui.cc:1139 ../pan/gui/prefs-ui.cc:1145 #: ../pan/gui/prefs-ui.cc:1151 ../pan/gui/prefs-ui.cc:1157 msgid "Background:" msgstr "" #: ../pan/gui/prefs-ui.cc:1129 msgid "Scores of 9999 or more:" msgstr "" #: ../pan/gui/prefs-ui.cc:1135 msgid "Scores from 5000 to 9998:" msgstr "" #: ../pan/gui/prefs-ui.cc:1141 msgid "Scores from 1 to 4999:" msgstr "" #: ../pan/gui/prefs-ui.cc:1147 msgid "Scores from -9998 to -1:" msgstr "" #: ../pan/gui/prefs-ui.cc:1153 msgid "Scores of -9999 or less:" msgstr "" #: ../pan/gui/prefs-ui.cc:1159 #, fuzzy msgid "Read collapsed thread:" msgstr "Uzra_udzītie Pavedieni:" #: ../pan/gui/prefs-ui.cc:1161 #, fuzzy msgid "Body Pane" msgstr "Rumpja Rūts" #: ../pan/gui/prefs-ui.cc:1167 #, fuzzy msgid "Quoted text:" msgstr "Citēts Teksts _3:" #: ../pan/gui/prefs-ui.cc:1168 #, fuzzy msgid "URL:" msgstr "_URLi:" #: ../pan/gui/prefs-ui.cc:1169 #, fuzzy msgid "Signature:" msgstr "Paraksts" #: ../pan/gui/prefs-ui.cc:1171 #, fuzzy msgid "_Colors" msgstr "Krāsas" #: ../pan/gui/prefs-ui.cc:1171 #, fuzzy msgid "Colors" msgstr "Krāsas" #: ../pan/gui/prefs-ui.cc:1176 #, fuzzy msgid "Preferred Applications" msgstr "A_plikācijas" #: ../pan/gui/prefs-ui.cc:1180 #, fuzzy msgid "_Web browser:" msgstr "Tīmekļa Pā_rlūks (%s ir URL):" #: ../pan/gui/prefs-ui.cc:1183 #, fuzzy msgid "_Mail reader:" msgstr "Pasta Serveris" #: ../pan/gui/prefs-ui.cc:1185 #, fuzzy msgid "_Text editor:" msgstr "Redaktors" #: ../pan/gui/prefs-ui.cc:1187 #, fuzzy msgid "_Applications" msgstr "A_plikācijas" #: ../pan/gui/prefs-ui.cc:1187 #, fuzzy msgid "Applications" msgstr "A_plikācijas" #: ../pan/gui/prefs-ui.cc:1192 ../pan/gui/task-pane.cc:512 msgid "Encoding" msgstr "" #: ../pan/gui/prefs-ui.cc:1196 msgid "Default bytes per file (for encoder): " msgstr "" #: ../pan/gui/prefs-ui.cc:1201 #, fuzzy msgid "_Upload" msgstr "A_plikācijas" #: ../pan/gui/prefs-ui.cc:1201 msgid "Upload" msgstr "" #: ../pan/gui/prefs-ui.cc:1219 msgid "_Hotkeys" msgstr "" #: ../pan/gui/prefs-ui.cc:1219 msgid "Hotkeys" msgstr "" #: ../pan/gui/profiles-dialog.cc:83 msgid "Please choose your Email Address according to your PGP key's user id." msgstr "" #: ../pan/gui/profiles-dialog.cc:131 #, fuzzy msgid "Posting Profile" msgstr "Pan: Profīls" #: ../pan/gui/profiles-dialog.cc:143 msgid "Profile Information" msgstr "Profīla Informācija" #: ../pan/gui/profiles-dialog.cc:147 #, fuzzy msgid "_Profile Name:" msgstr "_Profīla nosaukums:" #: ../pan/gui/profiles-dialog.cc:150 msgid "Required Information" msgstr "Nepieciešamā Informācija" #: ../pan/gui/profiles-dialog.cc:154 msgid "_Full Name:" msgstr "_Pilns Vārds:" #: ../pan/gui/profiles-dialog.cc:158 msgid "" "Your Email Address.\n" "Note that this has to match your PGP Signature's Address\n" "if you want to PGP-Sign or Encrypt your messages correctly." msgstr "" #: ../pan/gui/profiles-dialog.cc:162 msgid "_Email Address:" msgstr "_Epasta Adrese:" #: ../pan/gui/profiles-dialog.cc:164 #, fuzzy msgid "_Post Articles via:" msgstr "_Raksts" #: ../pan/gui/profiles-dialog.cc:167 #, fuzzy msgid "Signature" msgstr "Paraksts" #: ../pan/gui/profiles-dialog.cc:170 #, fuzzy msgid "_Use a Signature" msgstr "Paraksts" #: ../pan/gui/profiles-dialog.cc:174 #, fuzzy msgid "Signature File" msgstr "Pa_raksta Fails:" #: ../pan/gui/profiles-dialog.cc:184 #, fuzzy msgid "Text File" msgstr "/_Iet/Nā_kamais Raksts" #: ../pan/gui/profiles-dialog.cc:186 #, fuzzy msgid "Text" msgstr "Citēts Teksts _1:" #: ../pan/gui/profiles-dialog.cc:188 #, fuzzy msgid "Command" msgstr "Drukas Komanda:" #: ../pan/gui/profiles-dialog.cc:191 #, fuzzy msgid "PGP Signature" msgstr "Paraksts" #: ../pan/gui/profiles-dialog.cc:196 #, fuzzy msgid "Signature Type : " msgstr "Paraksts" #: ../pan/gui/profiles-dialog.cc:223 msgid "X-Face (Avatar)" msgstr "" #: ../pan/gui/profiles-dialog.cc:226 msgid "" "You can add an avatar icon to your articles with a unique X-Face code. \n" "Add the code without the trailing \"X-Face:\" \n" " if it was generated by a helper program (for example http://www.dairiki.org/" "xface/xface.php)." msgstr "" #: ../pan/gui/profiles-dialog.cc:229 msgid "_X-Face:" msgstr "" #: ../pan/gui/profiles-dialog.cc:231 msgid "Optional Information" msgstr "Fakultatīva Informācija" #: ../pan/gui/profiles-dialog.cc:236 msgid "" "When posting to Usenet, your article's Message-ID contains a domain name. \n" "You can set a custom domain name here, or leave it blank to let Pan use the " "domain name from your email address." msgstr "" #: ../pan/gui/profiles-dialog.cc:239 msgid "Message-ID _Domain Name:" msgstr "Ziņas-ID _Domēna Vārds:" #: ../pan/gui/profiles-dialog.cc:243 #, c-format msgid "" "%i for Message-ID\n" "%a for Author and Address\n" "%n for Author name\n" "%d for Date" msgstr "" #: ../pan/gui/profiles-dialog.cc:244 msgid "_Attribution:" msgstr "_Attiecinājums:" #: ../pan/gui/profiles-dialog.cc:268 msgid "" "Extra headers to be included in your posts, such as\n" "Reply-To: \"Your Name\"\n" "Organization: Your Organization\n" msgstr "" #: ../pan/gui/profiles-dialog.cc:278 #, fuzzy msgid "E_xtra Headers:" msgstr "Papildus Galvenes" #: ../pan/gui/profiles-dialog.cc:323 msgid "Invalid email address." msgstr "" #: ../pan/gui/profiles-dialog.cc:324 msgid "Please use an address of the form joe@somewhere.org" msgstr "" #: ../pan/gui/profiles-dialog.cc:479 msgid "New Profile" msgstr "Jauns Profīls" #: ../pan/gui/profiles-dialog.cc:525 #, fuzzy msgid "Posting Profiles" msgstr "/Rī_ki/_Publicēšanas Profīli..." #: ../pan/gui/profiles-dialog.cc:541 #, fuzzy msgid "Profiles" msgstr "Profīls" #: ../pan/gui/save-attach-ui.cc:77 ../pan/gui/save-ui.cc:77 #, fuzzy, c-format msgid "" "%g - group as one directory (alt.binaries.pictures.trains)\n" "%G - group as nested directory (/alt/binaries/pictures/trains)\n" "%s - subject line excerpt\n" "%S - subject line\n" " \n" "\"/home/user/News/Pan/%g\" becomes\n" "\"/home/user/News/Pan/alt.binaries.pictures.trains\", and\n" "\"/home/user/News/Pan/%G\" becomes\n" "\"/home/user/News/Pan/alt/binaries/pictures/trains\"," msgstr "" "%g - kopa kā viena direktorija (alt.binaries.pictures.trains)\n" "%G - kopa kā ligzdota direktorija (/alt/binaries/pictures/trains)\n" " \n" "\"/home/user/News/Pan/%g\" kļūst\n" "\"/home/user/News/Pan/alt.binaries.pictures.trains\", un\n" "\"/home/user/News/Pan/%G\" kļūst\n" "\"/home/user/News/Pan/alt/binaries/pictures/trains\"," #: ../pan/gui/save-attach-ui.cc:223 ../pan/gui/save-ui.cc:242 msgid "Add to the queue sorted by date posted" msgstr "" #: ../pan/gui/save-attach-ui.cc:224 ../pan/gui/save-ui.cc:243 #, fuzzy msgid "Add to the front of the queue" msgstr "Pievienot Uzdevumu Pārvaldnieka Saraksta _apakšā" #: ../pan/gui/save-attach-ui.cc:225 ../pan/gui/save-ui.cc:244 #, fuzzy msgid "Add to the back of the queue" msgstr "Pievienot Uzdevumu Pārvaldnieka Saraksta _apakšā" #: ../pan/gui/save-attach-ui.cc:257 #, fuzzy msgid "Pan: Save Attachments" msgstr "Saglabāt Piesaistnes" #: ../pan/gui/save-attach-ui.cc:282 ../pan/gui/save-attach-ui.cc:300 #: ../pan/gui/save-ui.cc:296 ../pan/gui/save-ui.cc:314 #, fuzzy msgid "_Location:" msgstr "Darbības" #: ../pan/gui/save-attach-ui.cc:286 ../pan/gui/save-ui.cc:300 #, fuzzy msgid "Save Articles" msgstr "Saglabāt Rakstu Kā..." #: ../pan/gui/save-attach-ui.cc:303 ../pan/gui/save-ui.cc:317 #, c-format msgid "_Group's path: %s" msgstr "" #: ../pan/gui/save-attach-ui.cc:314 ../pan/gui/save-ui.cc:332 msgid "_Priority:" msgstr "" #: ../pan/gui/save-ui.cc:233 #, fuzzy msgid "Save attachments" msgstr "Saglabāt Piesaistnes" #: ../pan/gui/save-ui.cc:234 #, fuzzy msgid "Save text" msgstr "Aplauzt Tekstu" #: ../pan/gui/save-ui.cc:235 #, fuzzy msgid "Save attachments and text" msgstr "Saglabāt piesaistnes _direktorijā:" #: ../pan/gui/save-ui.cc:271 #, fuzzy msgid "Pan: Save Articles" msgstr "Saglabāt Rakstu Kā..." #: ../pan/gui/save-ui.cc:328 #, fuzzy msgid "_Action:" msgstr "Darbības" #: ../pan/gui/score-add-ui.cc:89 msgid "is more than" msgstr "" #: ../pan/gui/score-add-ui.cc:90 msgid "is at most" msgstr "" #: ../pan/gui/score-add-ui.cc:112 #, fuzzy msgid "increase the article's score by" msgstr "/_Skats/Ap_lauzt Raksta Rumpi" #: ../pan/gui/score-add-ui.cc:113 #, fuzzy msgid "decrease the article's score by" msgstr "/_Skats/Ap_lauzt Raksta Rumpi" #: ../pan/gui/score-add-ui.cc:114 msgid "set the article's score to" msgstr "" #: ../pan/gui/score-add-ui.cc:115 msgid "watch the article (set its score to 9999)" msgstr "" #: ../pan/gui/score-add-ui.cc:116 msgid "ignore the article (set its score to -9999)" msgstr "" #: ../pan/gui/score-add-ui.cc:141 #, fuzzy msgid "References" msgstr "Atsauces" #: ../pan/gui/score-add-ui.cc:142 msgid "Line Count" msgstr "" #: ../pan/gui/score-add-ui.cc:143 msgid "Byte Count" msgstr "" #: ../pan/gui/score-add-ui.cc:144 msgid "Crosspost Group Count" msgstr "" #: ../pan/gui/score-add-ui.cc:145 msgid "Age (in days)" msgstr "" #: ../pan/gui/score-add-ui.cc:167 msgid "for the next month" msgstr "" #: ../pan/gui/score-add-ui.cc:168 msgid "for the next six months" msgstr "" #: ../pan/gui/score-add-ui.cc:169 #, fuzzy msgid "forever" msgstr "Serveris" #: ../pan/gui/score-add-ui.cc:194 msgid "contains" msgstr "satur" #: ../pan/gui/score-add-ui.cc:195 #, fuzzy msgid "doesn't contain" msgstr "nesatur" #: ../pan/gui/score-add-ui.cc:196 msgid "is" msgstr "ir" #: ../pan/gui/score-add-ui.cc:197 #, fuzzy msgid "isn't" msgstr "nav" #: ../pan/gui/score-add-ui.cc:198 msgid "starts with" msgstr "sākas ar" #: ../pan/gui/score-add-ui.cc:199 msgid "ends with" msgstr "beidzas ar" #: ../pan/gui/score-add-ui.cc:200 msgid "matches regex" msgstr "" #: ../pan/gui/score-add-ui.cc:481 #, fuzzy msgid "Another rule already sets this article's score." msgstr "/_Skats/Ap_lauzt Raksta Rumpi" #: ../pan/gui/score-add-ui.cc:482 msgid "You may want to go back or delete the old rule." msgstr "" #: ../pan/gui/score-add-ui.cc:553 #, fuzzy msgid "Add and Re_score" msgstr "Pievienot jaunu serveri" #: ../pan/gui/score-add-ui.cc:604 ../pan/gui/score-add-ui.cc:624 #, fuzzy msgid "New Scoring Rule" msgstr "Jauna Kārtula" #: ../pan/gui/score-add-ui.cc:635 msgid "If the group name" msgstr "" #: ../pan/gui/score-add-ui.cc:642 #, fuzzy msgid "And the article's" msgstr "Rindiņas rakstā:" #: ../pan/gui/score-view-ui.cc:56 #, fuzzy msgid "Close and Re_score" msgstr "Aizvērt žurnāla logu" #: ../pan/gui/score-view-ui.cc:154 #, c-format msgid "File %s, Lines %d - %d" msgstr "" #: ../pan/gui/score-view-ui.cc:182 #, fuzzy msgid "Pan: Article's Scores" msgstr "Pan: Saglabāt Rakstu Kā" #: ../pan/gui/score-view-ui.cc:208 msgid "Add" msgstr "" #: ../pan/gui/score-view-ui.cc:213 #, fuzzy msgid "New Score" msgstr "Ziņu Serveris" #: ../pan/gui/score-view-ui.cc:218 msgid "Criteria" msgstr "" #: ../pan/gui/score-view-ui.cc:241 #, fuzzy msgid "Add a New Scoring Rule" msgstr "Pievienot jaunu filtru" #: ../pan/gui/score-view-ui.cc:248 #, fuzzy msgid "Remove the Selected Scoring Rule" msgstr "Izņemt izvēlēto profīlu" #: ../pan/gui/server-ui.cc:221 msgid "Please specify the server's address." msgstr "" #: ../pan/gui/server-ui.cc:264 msgid "Import SSL certificate (PEM format) from File" msgstr "" #. create the dialog #: ../pan/gui/server-ui.cc:290 ../pan/gui/server-ui.cc:869 #, fuzzy msgid "Add a Server" msgstr "Pievienot jaunu serveri" #: ../pan/gui/server-ui.cc:290 ../pan/gui/server-ui.cc:875 msgid "Edit a Server's Settings" msgstr "" #: ../pan/gui/server-ui.cc:310 #, fuzzy msgid "Location" msgstr "Darbības" #: ../pan/gui/server-ui.cc:314 msgid "The news server's actual address, e.g. \"news.mynewsserver.com\"" msgstr "" #: ../pan/gui/server-ui.cc:315 msgid "_Address:" msgstr "_Adrese:" #: ../pan/gui/server-ui.cc:319 msgid "The news server's port number. Typically 119." msgstr "" #: ../pan/gui/server-ui.cc:320 msgid "Por_t:" msgstr "P_orts:" #: ../pan/gui/server-ui.cc:323 msgid "Login (if Required)" msgstr "" #: ../pan/gui/server-ui.cc:327 msgid "_Username:" msgstr "_Lietotājvārds:" #: ../pan/gui/server-ui.cc:328 msgid "" "The username to give the server when asked. If your server doesn't require " "authentication, you can leave this blank." msgstr "" #: ../pan/gui/server-ui.cc:332 msgid "_Password:" msgstr "_Parole:" #: ../pan/gui/server-ui.cc:333 msgid "" "The password to give the server when asked. If your server doesn't require " "authentication, you can leave this blank." msgstr "" #: ../pan/gui/server-ui.cc:336 #, fuzzy msgid "Settings" msgstr "Saņemu \"%s\"" #: ../pan/gui/server-ui.cc:343 msgid "Connection _Limit:" msgstr "Savienojuma _Limits:" #: ../pan/gui/server-ui.cc:347 msgid "After Two Weeks" msgstr "" #: ../pan/gui/server-ui.cc:348 msgid "After One Month" msgstr "" #: ../pan/gui/server-ui.cc:349 msgid "After Two Months" msgstr "" #: ../pan/gui/server-ui.cc:350 msgid "After Three Months" msgstr "" #: ../pan/gui/server-ui.cc:351 msgid "After Six Months" msgstr "" #: ../pan/gui/server-ui.cc:352 #, fuzzy msgid "Never Expire Old Articles" msgstr "Saņemt Izvēlētos Rakstus" #: ../pan/gui/server-ui.cc:366 #, fuzzy msgid "E_xpire Old Articles:" msgstr "Saņemt Izvēlētos Rakstus" #: ../pan/gui/server-ui.cc:370 #, fuzzy msgid "Primary" msgstr "Prioritāte" #: ../pan/gui/server-ui.cc:371 msgid "Fallback" msgstr "" #: ../pan/gui/server-ui.cc:385 #, fuzzy msgid "Server Rank:" msgstr "Serveri" #: ../pan/gui/server-ui.cc:389 msgid "" "Fallback servers are used for articles that can't be found on the " "primaries. One common approach is to use free servers as primaries and " "subscription servers as fallbacks." msgstr "" #: ../pan/gui/server-ui.cc:396 msgid "Security" msgstr "" #: ../pan/gui/server-ui.cc:401 msgid "Use Plaintext (Unsecured) Connections" msgstr "" #: ../pan/gui/server-ui.cc:402 #, fuzzy msgid "Use Secure SSL Connections" msgstr "Nav Savienojumu" #: ../pan/gui/server-ui.cc:418 msgid "TLS (SSL) Options:" msgstr "" #: ../pan/gui/server-ui.cc:423 msgid "" "You can set the option for using/disabling secure SSL/TLS connections here. " "If you enable SSL/TLS, your data is encrypted and secure. It is encouraged " "to use this option for privacy reasons." msgstr "" #: ../pan/gui/server-ui.cc:428 msgid "Always trust this server's certificate" msgstr "" #: ../pan/gui/server-ui.cc:602 #, c-format msgid "Really delete \"%s\"?" msgstr "" #: ../pan/gui/server-ui.cc:691 msgid "No information available." msgstr "" #: ../pan/gui/server-ui.cc:697 #, c-format msgid "Server Certificate for '%s'" msgstr "" #: ../pan/gui/server-ui.cc:795 #, c-format msgid "Really delete certificate for \"%s\"?" msgstr "" #. dialog #: ../pan/gui/server-ui.cc:822 ../pan/gui/server-ui.cc:843 #: ../pan/gui/server-ui.cc:941 msgid "Servers" msgstr "Serveri" #: ../pan/gui/server-ui.cc:882 #, fuzzy msgid "Remove a Server" msgstr "Jauns Serveris" #. dialog #: ../pan/gui/server-ui.cc:915 msgid "SSL Certificates" msgstr "" #: ../pan/gui/server-ui.cc:936 msgid "Certificates" msgstr "" #: ../pan/gui/server-ui.cc:967 msgid "Import Certificate" msgstr "" #: ../pan/gui/server-ui.cc:973 msgid "Inspect Certificate" msgstr "" #: ../pan/gui/server-ui.cc:980 #, fuzzy msgid "Remove Certificate" msgstr "Jauns Serveris" #: ../pan/gui/task-pane.cc:143 #, c-format msgid "" "\n" "Upload\n" "\n" "Subject: \"%s\"\n" "From: %s\n" "Groups: %s\n" "Sourcefile: %s\n" msgstr "" #: ../pan/gui/task-pane.cc:155 #, c-format msgid "" "\n" "Download\n" "\n" "Subject: \"%s\"\n" "From: %s\n" "Date: %s\n" "Groups: %s\n" "Save Path: %s\n" msgstr "" #: ../pan/gui/task-pane.cc:157 #, fuzzy msgid "unknown" msgstr "Nezināms" #: ../pan/gui/task-pane.cc:263 msgid "Choose new destination for selected Tasks" msgstr "" #: ../pan/gui/task-pane.cc:417 #, fuzzy, c-format msgid "Pan: Tasks (%d Queued, %d Running, %d Stopped)" msgstr "Pan %s Uzdevumu Pārvaldnieks (%d Rindā, %d Palaisti, %d Apturēti)" #: ../pan/gui/task-pane.cc:419 #, fuzzy, c-format msgid "Pan: Tasks (%d Queued, %d Running)" msgstr "Pan %s Uzdevumu Pārvaldnieks (%d Rindā, %d Palaisti)" #: ../pan/gui/task-pane.cc:421 #, fuzzy, c-format msgid "Pan: Tasks" msgstr "Pan: Uzdevumu Pārvaldnieks" #: ../pan/gui/task-pane.cc:446 #, fuzzy, c-format msgid "%lu selected, %s" msgstr "(%u izvēlēti)" #: ../pan/gui/task-pane.cc:510 msgid "Running" msgstr "Palaists" #: ../pan/gui/task-pane.cc:511 #, fuzzy msgid "Decoding" msgstr "Dekodēju \"%s\"" #: ../pan/gui/task-pane.cc:513 #, fuzzy msgid "Queued for Decode" msgstr "Rindot Saglabāšanai" #: ../pan/gui/task-pane.cc:514 #, fuzzy msgid "Queued for Encode" msgstr "Rindot Saglabāšanai" #: ../pan/gui/task-pane.cc:515 msgid "Queued" msgstr "Rindā" #: ../pan/gui/task-pane.cc:516 msgid "Stopped" msgstr "Apturēts" #: ../pan/gui/task-pane.cc:517 msgid "Removing" msgstr "Izņemu" #: ../pan/gui/task-pane.cc:546 #, fuzzy, c-format msgid "%d%% Done" msgstr "% Darīts" #: ../pan/gui/task-pane.cc:552 #, fuzzy, c-format msgid "%d:%02d:%02d Remaining (%d @ %lu KiB/s)" msgstr "%d:%02d:%02d (%.2f KB/s)" #: ../pan/gui/task-pane.cc:646 ../pan/gui/task-pane.cc:647 #, fuzzy msgid "Move To Top" msgstr "Pārvietot Izvēlēto(s) Uzdevumu(s) uz Apakšu" #: ../pan/gui/task-pane.cc:651 ../pan/gui/task-pane.cc:652 #, fuzzy msgid "Move To Bottom" msgstr "Pārvietot Izvēlēto(s) Uzdevumu(s) uz Apakšu" #: ../pan/gui/task-pane.cc:656 ../pan/gui/task-pane.cc:657 #, fuzzy msgid "Stop Task" msgstr "Nav Uzdevumu" #: ../pan/gui/task-pane.cc:661 ../pan/gui/task-pane.cc:662 #, fuzzy msgid "Delete Task" msgstr "Dzēst Surogātpastu" #: ../pan/gui/task-pane.cc:666 ../pan/gui/task-pane.cc:667 #, fuzzy msgid "Restart Task" msgstr "Pārsāknēt Izvēlēto(s) Uzdevumu(s)" #: ../pan/gui/task-pane.cc:671 ../pan/gui/task-pane.cc:672 msgid "Change Download Destination" msgstr "" #: ../pan/gui/task-pane.cc:729 #, fuzzy msgid "_Online" msgstr "Tiešsaistē" #: ../pan/gui/task-pane.cc:746 #, fuzzy msgid "Restart Tasks" msgstr "Pārsāknēt Izvēlēto(s) Uzdevumu(s)" #: ../pan/gui/task-pane.cc:748 #, fuzzy msgid "Stop Tasks" msgstr "Nav Uzdevumu" #: ../pan/gui/task-pane.cc:750 #, fuzzy msgid "Delete Tasks" msgstr "Dzēst Surogātpastu" #: ../pan/gui/url.cc:123 #, fuzzy, c-format msgid "Error starting URL: %s (Command was: %s)" msgstr "Kļūda parsējot \"ārējais redaktors\" komandas rindu: %s" #: ../pan/tasks/decoder.cc:115 #, fuzzy, c-format msgid "Couldn't save file \"%s\": %s" msgstr "Nevarēju nolasīt paraksta failu \"%s\": %s" #: ../pan/tasks/decoder.cc:137 ../pan/tasks/encoder.cc:136 msgid "Error initializing uulib" msgstr "" #: ../pan/tasks/decoder.cc:152 ../pan/tasks/socket-impl-gio.cc:352 #: ../pan/tasks/socket-impl-openssl.cc:634 #, fuzzy, c-format msgid "Error reading from %s: %s" msgstr "Kļūda lasot no ligzdas: %s" #: ../pan/tasks/decoder.cc:192 #, c-format msgid "Saved \"%s\"" msgstr "Saglabāts \"%s\"" #: ../pan/tasks/decoder.cc:199 #, fuzzy, c-format msgid "" "Error saving \"%s\":\n" "%s." msgstr "Kļūda lasot failu \"%s\": %s" #: ../pan/tasks/decoder.cc:314 ../pan/tasks/task-article.cc:350 #, fuzzy, c-format msgid "Decoding %s" msgstr "Dekodēju \"%s\"" #: ../pan/tasks/encoder.cc:102 ../pan/tasks/encoder.cc:155 #, fuzzy, c-format msgid "Error loading %s from cache." msgstr "Kļūda lasot no ligzdas." #: ../pan/tasks/encoder.cc:177 #, fuzzy, c-format msgid "Error encoding %s: %s" msgstr "Kļūda lasot failu \"%s\": %s" #: ../pan/tasks/encoder.cc:269 #, fuzzy, c-format msgid "Encoding %s" msgstr "Dekodēju \"%s\"" #: ../pan/tasks/nntp.cc:126 #, c-format msgid "%s requires a username, but none is set." msgstr "" #: ../pan/tasks/nntp.cc:139 #, c-format msgid "%s requires a password, but none is set." msgstr "" #: ../pan/tasks/nntp.cc:205 #, c-format msgid "Sending \"%s\" to %s returned an error: %s" msgstr "" #: ../pan/tasks/nntp.cc:228 #, c-format msgid "Sending \"%s\" to %s returned an unrecognized response: \"%s\"" msgstr "" #: ../pan/tasks/nntp-pool.cc:222 #, fuzzy, c-format msgid "Unable to connect to \"%s\"" msgstr "Nespēju pieslēgties pasta serverim \"%s\"" #: ../pan/tasks/socket-impl-gio.cc:173 ../pan/tasks/socket-impl-gio.cc:211 #: ../pan/tasks/socket-impl-openssl.cc:214 #: ../pan/tasks/socket-impl-openssl.cc:252 #, fuzzy, c-format msgid "Error connecting to \"%s\"" msgstr "Kļūda lasot failu \"%s\": %s" #: ../pan/tasks/socket-impl-gio.cc:351 ../pan/tasks/socket-impl-openssl.cc:633 #, fuzzy msgid "Unknown Error" msgstr "Nezināms" #: ../pan/tasks/task-article.cc:61 ../pan/tasks/task-article.cc:156 #: ../pan/tasks/task-article.cc:159 #, fuzzy, c-format msgid "Saving %s" msgstr "Saglabāju \"%s\"" #: ../pan/tasks/task-article.cc:63 #, fuzzy, c-format msgid "Reading %s" msgstr "Lasu" #: ../pan/tasks/task-article.cc:322 #, c-format msgid "Article \"%s\" is incomplete -- the news server(s) don't have part %s" msgstr "" #: ../pan/tasks/task-groups.cc:40 #, fuzzy, c-format msgid "Getting group list from \"%s\"" msgstr "Saņemu jaunas kopas no servera \"%s\"" #: ../pan/tasks/task-groups.cc:122 #, fuzzy, c-format msgid "Fetched %lu Groups" msgstr "Ieņemtas %u galvenes priekš \"%s\"" #: ../pan/tasks/task-post.cc:35 #, fuzzy, c-format msgid "Posting \"%s\"" msgstr "Saņemu \"%s\"" #: ../pan/tasks/task-post.cc:76 #, fuzzy, c-format msgid "Posting of \"%s\" failed: %s" msgstr "Raksta \"%s\" rumpja saņemšana neizdevās: %s" #: ../pan/tasks/task-post.cc:81 #, c-format msgid "Posting of \"%s\" succesful: %s" msgstr "" #: ../pan/tasks/task-upload.cc:51 #, fuzzy, c-format msgid "Uploading %s" msgstr "Lasu" #: ../pan/tasks/task-upload.cc:249 #, c-format msgid "Uploading %s - Part %d of %d" msgstr "" #: ../pan/tasks/task-upload.cc:251 #, c-format msgid "Uploading Message body with Subject \"%s\"" msgstr "" #: ../pan/tasks/task-upload.cc:308 #, c-format msgid "Posting of File %s (Part %d of %d) failed: No Posts allowed by server." msgstr "" #: ../pan/tasks/task-upload.cc:316 #, fuzzy, c-format msgid "Posting of File %s (Part %d of %d) failed: %s" msgstr "Raksta \"%s\" rumpja saņemšana neizdevās: %s" #: ../pan/tasks/task-upload.cc:326 ../pan/tasks/task-upload.cc:333 #, c-format msgid "Posting of file %s (Part %d of %d) succesful: %s" msgstr "" #: ../pan/tasks/task-upload.cc:343 #, fuzzy, c-format msgid "Posting of file %s succesful: %s" msgstr "Raksta \"%s\" rumpja saņemšana neizdevās: %s" #: ../pan/tasks/task-upload.cc:347 #, c-format msgid "" "Posting of file %s not completely successful: Check the log (right-click on " "list item) !" msgstr "" #: ../pan/tasks/task-upload.cc:364 #, c-format msgid "" "Posting of file %s not successful: Check the log (right-click on list item) !" msgstr "" #: ../pan/tasks/task-xover.cc:79 #, c-format msgid "Getting all headers for \"%s\"" msgstr "Saņemu visas galvenes priekš \"%s\"" #: ../pan/tasks/task-xover.cc:81 #, c-format msgid "Getting new headers for \"%s\"" msgstr "Saņemu jaunas galvenes priekš \"%s\"" #. SAMPLE #: ../pan/tasks/task-xover.cc:83 #, c-format msgid "Sampling headers for \"%s\"" msgstr "Iztveru galvenes priekš \"%s\"" #: ../pan/tasks/task-xover.cc:369 #, fuzzy, c-format msgid "%s (%lu parts, %lu articles)" msgstr " (%lu rindiņas %lu rakstos)" #: ../pan/tasks/task-xoverinfo.cc:78 #, fuzzy, c-format msgid "Getting header counts for \"%s\"" msgstr "Saņemu visas galvenes priekš \"%s\"" #: ../pan/usenet-utils/filter-info.cc:163 #, fuzzy msgid "article doesn't have attachments" msgstr "Rakstam nav pilnīgas piesaistnes" #: ../pan/usenet-utils/filter-info.cc:167 #, fuzzy msgid "the article has attachments" msgstr "Rakstam nav piesaistnes" #: ../pan/usenet-utils/filter-info.cc:171 #, fuzzy msgid "the article isn't cached locally" msgstr "Raksta rumpis nav kešots lokāli" #: ../pan/usenet-utils/filter-info.cc:175 #, fuzzy msgid "the article is cached locally" msgstr "Raksta rumpis ir kešots lokāli" #: ../pan/usenet-utils/filter-info.cc:179 #, fuzzy msgid "the article wasn't posted by you" msgstr "Rakstu nepublicēju es" #: ../pan/usenet-utils/filter-info.cc:183 #, fuzzy msgid "the article was posted by you" msgstr "Rakstu publicēju es" #: ../pan/usenet-utils/filter-info.cc:187 #, fuzzy msgid "the article has been read" msgstr "Raksts ir ticis" #: ../pan/usenet-utils/filter-info.cc:191 #, fuzzy msgid "the article hasn't been read" msgstr "Raksts ir ticis" #: ../pan/usenet-utils/filter-info.cc:195 #, fuzzy, c-format msgid "the article is less than %ld bytes long" msgstr "Raksts ir mazāk kā %d rindiņas garš" #: ../pan/usenet-utils/filter-info.cc:200 #, fuzzy, c-format msgid "the article is at least %ld bytes long" msgstr "Raksts ir vismaz N dienas _vecs" #: ../pan/usenet-utils/filter-info.cc:205 #, fuzzy, c-format msgid "the article is less than %ld lines long" msgstr "Raksts ir mazāk kā %d rindiņas garš" #: ../pan/usenet-utils/filter-info.cc:210 #, fuzzy, c-format msgid "the article is at least %ld lines long" msgstr "Raksts ir mazāk kā %d rindiņas garš" #: ../pan/usenet-utils/filter-info.cc:215 #, fuzzy, c-format msgid "the article is less than %ld days old" msgstr "Raksts ir vairāk kā %d dienas vecs" #: ../pan/usenet-utils/filter-info.cc:220 #, fuzzy, c-format msgid "the article is at least %ld days old" msgstr "Raksts ir vismaz N dienas _vecs" #: ../pan/usenet-utils/filter-info.cc:225 #, fuzzy, c-format msgid "the article was posted to less than %ld groups" msgstr "Raksts ir pārpublicēts mazāk kā %d grupās" #: ../pan/usenet-utils/filter-info.cc:230 #, fuzzy, c-format msgid "the article was posted to at least %ld groups" msgstr "Raksts ticis _publicēts vismaz N grupās:" #: ../pan/usenet-utils/filter-info.cc:235 #, fuzzy, c-format msgid "the article's score is less than %ld" msgstr "Raksta rezultāts ir mazāks par %d" #: ../pan/usenet-utils/filter-info.cc:240 #, fuzzy, c-format msgid "the article's score is %ld or higher" msgstr "Raksta rezultāts ir %d vai augstāks" #: ../pan/usenet-utils/filter-info.cc:249 #: ../pan/usenet-utils/filter-info.cc:259 #, fuzzy, c-format msgid "%s doesn't contain \"%s\"" msgstr "nesatur" #: ../pan/usenet-utils/filter-info.cc:250 #: ../pan/usenet-utils/filter-info.cc:260 #, c-format msgid "%s isn't \"%s\"" msgstr "" #: ../pan/usenet-utils/filter-info.cc:251 #: ../pan/usenet-utils/filter-info.cc:261 #, fuzzy, c-format msgid "%s doesn't begin with \"%s\"" msgstr "nebeidzas ar" #: ../pan/usenet-utils/filter-info.cc:252 #: ../pan/usenet-utils/filter-info.cc:262 #, fuzzy, c-format msgid "%s doesn't end with \"%s\"" msgstr "nebeidzas ar" #: ../pan/usenet-utils/filter-info.cc:253 #: ../pan/usenet-utils/filter-info.cc:263 #, c-format msgid "%s doesn't match the regex \"%s\"" msgstr "" #: ../pan/usenet-utils/filter-info.cc:275 #, fuzzy, c-format msgid "%s contains \"%s\"" msgstr "satur" #: ../pan/usenet-utils/filter-info.cc:276 #, c-format msgid "%s is \"%s\"" msgstr "" #: ../pan/usenet-utils/filter-info.cc:277 #, c-format msgid "%s begins with \"%s\"" msgstr "" #: ../pan/usenet-utils/filter-info.cc:278 #, fuzzy, c-format msgid "%s ends with \"%s\"" msgstr "beidzas ar" #: ../pan/usenet-utils/filter-info.cc:279 #, fuzzy, c-format msgid "%s matches the regex \"%s\"" msgstr "%u raksti atbilst kārtulai %s" #: ../pan/usenet-utils/filter-info.cc:285 msgid "Any of these tests fail:" msgstr "" #: ../pan/usenet-utils/filter-info.cc:292 msgid "All of these tests pass:" msgstr "" #: ../pan/usenet-utils/filter-info.cc:299 msgid "None of these tests pass:" msgstr "" #: ../pan/usenet-utils/filter-info.cc:306 msgid "Any of these tests pass:" msgstr "" #: ../pan/usenet-utils/gnksa.cc:878 #, c-format msgid "No email address provided; generating message-id with domain \"%s\"" msgstr "Epasta adrese nav norādīta; ģenerēju ziņas-id ar domēnu \"%s\"" #: ../pan/usenet-utils/message-check.cc:124 #, fuzzy msgid "Warning: Reply seems to be top-posted." msgstr "BRĪDINĀJUMS: Izskatās, ka atbilde ir augš-publicēta." #: ../pan/usenet-utils/message-check.cc:145 msgid "Warning: The signature marker should be \"-- \", not \"--\"." msgstr "" #: ../pan/usenet-utils/message-check.cc:162 #, fuzzy msgid "Warning: Signature prefix with no signature." msgstr "BRĪDINĀJUMS: Paraksta priedēklis bez paraksta." #: ../pan/usenet-utils/message-check.cc:167 #, fuzzy msgid "Warning: Signature is more than 4 lines long." msgstr "BRĪDINĀJUMS: Paraksts ir vairāk kā 4 rindiņas garš." #: ../pan/usenet-utils/message-check.cc:172 #, fuzzy msgid "Warning: Signature is more than 80 characters wide." msgstr "BRĪDINĀJUMS: Paraksts ir vairāk kā 80 rakstzīmes liels." #: ../pan/usenet-utils/message-check.cc:198 #, fuzzy, c-format msgid "Warning: %d line is more than 80 characters wide." msgid_plural "Warning: %d lines are more than 80 characters wide." msgstr[0] "BRĪDINĀJUMS: %d rindiņas ir vairāk kā 80 rakstzīmes garas." msgstr[1] "BRĪDINĀJUMS: %d rindiņas ir vairāk kā 80 rakstzīmes garas." #: ../pan/usenet-utils/message-check.cc:223 #, fuzzy msgid "Error: Message is empty." msgstr "KĻŪDA: Ziņa ir tukša." #: ../pan/usenet-utils/message-check.cc:258 #, fuzzy msgid "Warning: The message is entirely quoted text!" msgstr "BRĪDINĀJUMS: Ziņa ir viscaur citēts teksts!" #: ../pan/usenet-utils/message-check.cc:259 #, fuzzy msgid "Warning: The message is mostly quoted text." msgstr "BRĪDINĀJUMS: Ziņa vairumā ir citēts teksts." #: ../pan/usenet-utils/message-check.cc:309 #, fuzzy msgid "Error: Message appears to have no new content." msgstr "KĻŪDA: Izskatās, ka ziņai nav jauns saturs." #: ../pan/usenet-utils/message-check.cc:344 #: ../pan/usenet-utils/message-check.cc:383 #, c-format msgid "" "Warning: The posting profile's server doesn't carry newsgroup\n" "\t\"%s\".\n" "\tIf the group name is correct, switch profiles in the \"From:\"\n" "\tline or edit the profile with \"Edit|Manage Posting Profiles\"." msgstr "" #: ../pan/usenet-utils/message-check.cc:355 #, fuzzy msgid "Warning: Following-Up to too many groups." msgstr "BRĪDINĀJUMS: Sekojumā-Uz pārāk daudz kopu." #: ../pan/usenet-utils/message-check.cc:366 #, fuzzy msgid "Error: No Subject specified." msgstr "KĻŪDA: Temats nav norādīts." #: ../pan/usenet-utils/message-check.cc:395 #, fuzzy, c-format msgid "Warning: Group \"%s\" is read-only." msgstr "BRĪDINĀJUMS: Kopa \"%s\" ir tikai lasāma." #: ../pan/usenet-utils/message-check.cc:404 #, fuzzy msgid "Error: Posting to a very large number of groups." msgstr "KĻŪDA: Publicēju uz lielam intreškopu skaitam." #: ../pan/usenet-utils/message-check.cc:409 #, fuzzy msgid "Warning: Posting to a large number of groups." msgstr "BRĪDINĀJUMS: Publicēju lielam skaitam grupu." #: ../pan/usenet-utils/message-check.cc:416 #, fuzzy msgid "Warning: Crossposting without setting Followup-To header." msgstr "BRĪDINĀJUMS: Pārpublicējums bez Sekojums-Uz iestatīšanas." #: ../pan/usenet-utils/message-check.cc:441 #, fuzzy msgid "Error: Bad email address." msgstr "_Epasta Adrese:" #: ../pan/usenet-utils/message-check.cc:450 msgid "Warning: Most newsgroups frown upon HTML posts." msgstr "" #: ../pan/usenet-utils/message-check.cc:486 #, fuzzy msgid "Error: No Recipients." msgstr "KĻŪDA: Temats nav norādīts." #: ../pan/usenet-utils/scorefile.cc:304 #, c-format msgid "" "Error reading score in %*.*s, line %d: expected 'Expires: MM/DD/YYYY' or " "'Expires: DD-MM-YYYY'." msgstr "" #: ../pan/usenet-utils/scorefile.cc:307 #, c-format msgid "Expired old score from %*.*s, line %d" msgstr "" #: ../pan/usenet-utils/scorefile.cc:380 #, c-format msgid "Error reading score in %*.*s, line %d: unexpected line." msgstr "" #: ../pan/usenet-utils/scorefile.cc:428 #, c-format msgid "Read %lu scoring rules in %lu sections from \"%s\"" msgstr "" #: ../pan/usenet-utils/ssl-utils.h:199 #, fuzzy, c-format msgid "Error printing the server certificate for '%s'" msgstr "Kļūda sāknējot ārējo redaktoru: %s" #: ../pan/usenet-utils/ssl-utils.h:216 #, c-format msgid "" "The current server '%s' sent this security certificate :\n" "\n" msgstr "" #: ../pan/usenet-utils/ssl-utils.h:217 #, c-format msgid "" "Certificate information for server '%s' :\n" "\n" msgstr "" #: ../pan/usenet-utils/ssl-utils.h:219 #, c-format msgid "" "%sIssuer information:\n" "%s\n" "Valid until : %s\n" "\n" "Not valid before : %s\n" "\n" msgstr "" #: ../pan/usenet-utils/text-massager.cc:397 msgid "> [quoted text muted]" msgstr "> [citētais teksts neuzrādīts]" #~ msgid "Read News from Usenet" #~ msgstr "Lasīt Jaunumus no Usenet" #, fuzzy #~ msgid "_Toggle Flag on for Thread" #~ msgstr "/_Uzraudzīt Pavedienu" #, fuzzy #~ msgid "Error!" #~ msgstr "Kļūda" #, fuzzy #~ msgid "Signer : " #~ msgstr "Paraksts" #, fuzzy #~ msgid "_Signature:" #~ msgstr "Paraksts" #, fuzzy #~ msgid "Creating directory \"%s\"" #~ msgstr "Kļūda atverot direktoriju \"%s\": %s)" #~ msgid "Couldn't create directory \"%s\": %s" #~ msgstr "Nevarēju izveidot direktoriju \"%s\": %s" #, fuzzy #~ msgid "_Groups" #~ msgstr "Grupas" #, fuzzy #~ msgid "Read Selected Group" #~ msgstr "Lasīt Nākamo Nelasīto Grupu" #, fuzzy #~ msgid "_Mark Group _Read" #~ msgstr "/Marķēt Grupu _Lasītu" #, fuzzy #~ msgid "_Delete Group's Articles" #~ msgstr "/_Dzēst Grupas Rakstus" #, fuzzy #~ msgid "Get New Headers for Selected Groups" #~ msgstr "Saņemt Jaunās Galvenes Izvēlētajās Grupās" #, fuzzy #~ msgid "Get New Headers for Subscribed Groups" #~ msgstr "Saņemt Jaunās Galvenes Pierakstītajās Grupās" #, fuzzy #~ msgid "Get Headers from Server" #~ msgstr "Saņēmu %d kopas no servera \"%s\"" #, fuzzy #~ msgid "Get a new Group list from the Server" #~ msgstr "Saņemu %d jaunas kopas no servera \"%s\"" #, fuzzy #~ msgid "Subscribe to Selected Groups" #~ msgstr "Pierakstītajām Intreškopām" #, fuzzy #~ msgid "Unsubscribe from Selected Groups" #~ msgstr "Pierakstītajām Intreškopām" #, fuzzy #~ msgid "Save Selected Articles..." #~ msgstr "Saglabāt Raksta Piesaistes" #~ msgid "Cancel Last Task" #~ msgstr "Atcelt Pēdējo Uzdevumu" #, fuzzy #~ msgid "Clear Header Pane" #~ msgstr "_Galvenes Rūts:" #, fuzzy #~ msgid "Clear Body Pane" #~ msgstr "Rumpja Rūts" #, fuzzy #~ msgid "Download _Selected Article" #~ msgstr "Saņemt Izvēlētos Rakstus" #, fuzzy #~ msgid "Download Selected Article" #~ msgstr "Saņemt Izvēlētos Rakstus" #, fuzzy #~ msgid "Read _Selected Article" #~ msgstr "Saņemt Izvēlētos Rakstus" #, fuzzy #~ msgid "Next Unread Group" #~ msgstr "/_Iet/Nākamā Nelasītā _Kopa" #, fuzzy #~ msgid "Next Group" #~ msgstr "/_Iet/_Nākamā Kopa" #, fuzzy #~ msgid "Next Watched Article" #~ msgstr "Saņemt Izvēlētos Rakstus" #, fuzzy #~ msgid "Next Thread" #~ msgstr "/_Iet/Nākamais Pa_vediens" #, fuzzy #~ msgid "Previous Article" #~ msgstr "/_Iet/Iep_riekšējais Raksts" #, fuzzy #~ msgid "Previous Thread" #~ msgstr "/_Iet/Ieprie_kšējais Pavediens" #, fuzzy #~ msgid "Parent Article" #~ msgstr "/_Iet/_Pirmavota Raksts" #, fuzzy #~ msgid "_Plonk Author" #~ msgstr "_Autors:" #, fuzzy #~ msgid "Mark Article as Read" #~ msgstr "Raksts ir lasīts" #, fuzzy #~ msgid "Mark Article as Unread" #~ msgstr "Raksts ir nelasīts" #, fuzzy #~ msgid "Reply to Author" #~ msgstr "_Autors:" #, fuzzy #~ msgid "_About..." #~ msgstr "/_Palīdzība/_Par..." #, fuzzy #~ msgid "Abbreviate _Names in Group Pane" #~ msgstr "/_Skats/Saīsināti _Nosaukumi Kopas Rūtī" #, fuzzy #~ msgid "Match Only Articles Posted by Me" #~ msgstr "Rakstu publicēju es" #, fuzzy #~ msgid "Central European (ISO-8859-2)" #~ msgstr "Centrāleiropas" #, fuzzy #~ msgid "Central European (Windows-1250)" #~ msgstr "Centrāleiropas" #, fuzzy #~ msgid "Chinese Simplified (gb2312)" #~ msgstr "Ķīniešu Vienkāršotā" #, fuzzy #~ msgid "Chinese Traditional (big5)" #~ msgstr "Ķīniešu Tradicionālā" #, fuzzy #~ msgid "Cyrillic (KOI8-R)" #~ msgstr "Kirilica" #, fuzzy #~ msgid "Cyrillic, Ukrainian (KOI8-U)" #~ msgstr "Kirilica, Ukraiņu" #, fuzzy #~ msgid "Western, New (ISO-8859-15)" #~ msgstr "Rietumu, Jaunā" #, fuzzy #~ msgid "Unicode (UTF-8)" #~ msgstr "Unicode, UTF-8" #, fuzzy #~ msgid "Pan: " #~ msgstr "Pan " #, fuzzy #~ msgid "Pan: %s" #~ msgstr "Pan " #~ msgid "Tasks: %u/%u" #~ msgstr "Uzdevumi: %u/%u" #~ msgid "%u Tasks Running, %u Tasks Total" #~ msgstr "%u Uzdevumi Palaisti, %u Uzdevumi Kopā" #, fuzzy #~ msgid "Wrap the Article Body to 80 Columns" #~ msgstr "/_Skats/Ap_lauzt Raksta Rumpi" #, fuzzy #~ msgid "_Close" #~ msgstr "Krāsas" #, fuzzy #~ msgid "Close Window" #~ msgstr "Aizvērt žurnāla logu" #, fuzzy #~ msgid "Cut Text" #~ msgstr "Citēts Teksts _1:" #, fuzzy #~ msgid "Copy Text" #~ msgstr "Aplauzt Tekstu" #, fuzzy #~ msgid "_Paste" #~ msgstr "/_Publicēt" #, fuzzy #~ msgid "Paste Text" #~ msgstr "Aplauzt Tekstu" #, fuzzy #~ msgid "Manage Posting Pr_ofiles..." #~ msgstr "/Rī_ki/_Publicēšanas Profīli..." #~ msgid "Western" #~ msgstr "Rietumu" #, fuzzy #~ msgid "Error loading post.ui: \"%s\"" #~ msgstr "Kļūda lasot no ligzdas: %s" #, fuzzy #~ msgid "Editors" #~ msgstr "Redaktors" #, fuzzy #~ msgid "Posting Article" #~ msgstr "Kārtoju Rakstus" #, fuzzy #~ msgid "Add a New Profile" #~ msgstr "Pievienot jaunu profīlu" #~ msgid "Edit the selected profile" #~ msgstr "Rediģēt izvēlēto profīlu" #~ msgid "Remove the selected profile" #~ msgstr "Izņemt izvēlēto profīlu" #, fuzzy #~ msgid "Threads" #~ msgstr "_Lasītie Pavedieni:" #, fuzzy #~ msgid "Path" #~ msgstr "Daļas" #, fuzzy #~ msgid "Save Files to Path" #~ msgstr "Saglabāt Piesaistnes" #, fuzzy #~ msgid "_Path:" #~ msgstr "/_Publicēt" #, fuzzy #~ msgid "Group Management" #~ msgstr "_Kopas Rūts:" #, fuzzy #~ msgid "Pan: New Scoring Rule" #~ msgstr "Pan: Rediģēt Kārtulu" #, fuzzy #~ msgid "Then" #~ msgstr "Paldies" #, fuzzy #~ msgid "For" #~ msgstr "Mapes" #, fuzzy #~ msgid "Name: \"%s\"" #~ msgstr "Saglabāts \"%s\"" #, fuzzy #~ msgid "Pan: Add a Server" #~ msgstr "Pan: Rediģēt Serveri" #, fuzzy #~ msgid "Pan: Edit a Server's Settings" #~ msgstr "Pan: Rediģēt Serveri" #~ msgid "Pan: Servers" #~ msgstr "Pan: Serveri" #, fuzzy #~ msgid "to %s" #~ msgstr "Par %s" #~ msgid "Status" #~ msgstr "Statuss" #, fuzzy #~ msgid "Unable to set group: %s" #~ msgstr "Nespēju iestatīt kopu \"%s\": %s" #, fuzzy #~ msgid "Couldn't load \"%s\": %s" #~ msgstr "Nevarēju izveidot direktoriju \"%s\": %s" #, fuzzy #~ msgid "" #~ "Error saving \"%s\":\n" #~ "%s. %s" #~ msgstr "Kļūda lasot failu \"%s\": %s" #, fuzzy #~ msgid "Warning: Unknown group \"%s\"." #~ msgstr "BRĪDINĀJUMS: Nezināma kopa: \"%s\"." #, fuzzy #~ msgid "_Posting" #~ msgstr "/_Publicēt" #, fuzzy #~ msgid "Post New Article" #~ msgstr "Kārtoju Rakstus" #, fuzzy #~ msgid "Follow-up to Article" #~ msgstr "Sekot Intreškopai" #, fuzzy #~ msgid "_Post Article" #~ msgstr "_Raksts" #, fuzzy #~ msgid "Post this Article Now" #~ msgstr "Publicēju rakstu \"%s\"" #, fuzzy #~ msgid "Error: No Newsgroups specified." #~ msgstr "KĻŪDA: Saņēmējs nav norādīts." #, fuzzy #~ msgid "Saved newsrc files in %.1f seconds" #~ msgstr "Saglbāti %d raksti iekš \"%s\" %.1f sekundēs (%.0f raksti/sek)" #, fuzzy #~ msgid "%d connections totaling %.1f KiB per second" #~ msgstr "%d savienojumi kopā %.1f KB sekundē" #~ msgid "_Reply-To Header:" #~ msgstr "_Atbildēt-Uz Galvene:" #~ msgid "Or_ganization Header:" #~ msgstr "Or_ganizācijas Galvene:" #~ msgid "Select Signature File" #~ msgstr "Izvēlaties Paraksta Failu" #~ msgid "Automatic Downloads" #~ msgstr "Automātiskās Lejupielādes" #, fuzzy #~ msgid "Save a_ttachments to path:" #~ msgstr "Saglabāt pielikumus iekš:" #~ msgid "UNKNOWN" #~ msgstr "NEZINĀMS" #, fuzzy #~ msgid "Decode can't access directory \"%s\"" #~ msgstr "Dekodētājs nevar piekļūt ceļam \"%s\"" #~ msgid "Could not decode article - file may be corrupt/incomplete" #~ msgstr "Nevarēju dekodēt rakstu - fails var būt sabeigts/nepilnīgs" #~ msgid "Checksum for `%s' part %d failed - file is corrupt" #~ msgstr "Kontrolsumma priekš `%s' daļā %d neizdevās - fails ir sabeigts" #~ msgid "Checksum for `%s' failed - file may be corrupt" #~ msgstr "Kontrolsumma priekš `%s' neizdevās - fails var būt sabeigts" #, fuzzy #~ msgid "Header Pane background:" #~ msgstr "Galvenes Rūts" #, fuzzy #~ msgid "Unread articles:" #~ msgstr "Nela_sītie Pavedieni:" #, fuzzy #~ msgid "" #~ "Unsupported data version (%d) for server properties. Are you running an " #~ "old version of Pan by accident?" #~ msgstr "" #~ "Neatbalstīta datu versija %d priekš \"%s\" datu faila.\n" #~ "Vai jūs gadījumā nelietojat vecu Pan versiju?" #, fuzzy #~ msgid "Couldn't create temporary file: %s" #~ msgstr "Nevarēju izveidot pagaidu failu: %s" #~ msgid "Error renaming \"%s\" as \"%s\": %s." #~ msgstr "Kļūda pārsaucot \"%s\" par \"%s\": %s." #, fuzzy #~ msgid "Can't backup \"%s\" as \"%s\": %s" #~ msgstr "Kļūda pārsaucot \"%s\" par \"%s\": %s." #~ msgid "Can't write to \"%s\": %s" #~ msgstr "Nevaru ierakstīt \"%s\": %s" #~ msgid "Body" #~ msgstr "Rumpis" #, fuzzy #~ msgid "Open a Draft Article from Disk" #~ msgstr "Beigušies %u raksti no `%s'" #, fuzzy #~ msgid "Editor Applications" #~ msgstr "Aplikācijas" #, fuzzy #~ msgid "subject" #~ msgstr "Temats" #, fuzzy #~ msgid "author" #~ msgstr "Autors" #, fuzzy #~ msgid "Change" #~ msgstr "Rakstzīmjkopa" #~ msgid "Connections" #~ msgstr "Savienojumi" #, fuzzy #~ msgid "Active" #~ msgstr "Darbības" #~ msgid "" #~ "Unable to cancel article: Couldn't find matching article in folder `pan." #~ "sent'!" #~ msgstr "" #~ "Nespēju atcelt rakstu: Nevarēju atcelt atbilstošo rakstu mapē `pan.sent'!" #~ msgid "" #~ "Unable to supersede article: Couldn't find matching article in folder " #~ "`pan.sent'!" #~ msgstr "" #~ "Nespēju aizstāt rakstu: Nevarēju atcelt atbilstošo rakstu mapē `pan.sent'!" #~ msgid "Pan: Filter Out Articles" #~ msgstr "Pan: Izfiltrēt Rakstus" #~ msgid "Add Author to Bozo Filter" #~ msgstr "Pievienot Autoru Bozo Filtram" #~ msgid "Add Author to Spam Filter" #~ msgstr "Pievienot Autoru Surogātpasta Filtram" #~ msgid "Add Subject to Spam Filter" #~ msgstr "Pievienot Tematu Surogātpasta Filtram" #~ msgid "Pan: Find Message" #~ msgstr "Pan: Atrast Ziņu" #~ msgid "Case Sensiti_ve" #~ msgstr "_Reģistrjūtīgs" #~ msgid "_Unread Only" #~ msgstr "_Nelasītās Tikai" #~ msgid "Find:" #~ msgstr "Atrast:" #~ msgid "" #~ "Type in a search string and press ENTER.\n" #~ "Wildcards are allowed." #~ msgstr "" #~ "Ievadiet meklējamo virkni un nospiediet ENTER.\n" #~ "Aizstājzīmes ir atļautas." #~ msgid "You must download the article before you can cancel it." #~ msgstr "Jums jālejupielādē raksts pirms jūs to varat atcelt." #~ msgid "You must download the article before you can supersede it." #~ msgstr "Jums jālejupielādē raksts pirms jūs to varat aizstāt." #~ msgid "/---" #~ msgstr "/---" #~ msgid "/Save Article A_ttachments" #~ msgstr "/Saglabāt Raksta _Piesaistes" #~ msgid "/D_ownload Flagged" #~ msgstr "/Lej_upielādēt Karogotās" #~ msgid "/_Flag" #~ msgstr "/Kar_ogot" #~ msgid "/_Unflag" #~ msgstr "/Atkaro_got" #~ msgid "/Add to Bo_zo or Spam Filter..." #~ msgstr "/Pievienot Bo_zo vai Surogātpasta Filtram..." #~ msgid "/_Copy to Folder" #~ msgstr "/_Kopēt uz Mapi" #~ msgid "/_Delete" #~ msgstr "/_Dzēst" #~ msgid "Loading group \"%s\"" #~ msgstr "Lādēju kopu \"%s\"" #~ msgid "Filtering Articles" #~ msgstr "Filtrēju Rakstus" #~ msgid "Updating Header Pane..." #~ msgstr "Atjauninu Galvenes Rūti..." #~ msgid "Flushing article cache... " #~ msgstr "Iztramdu raksta kešu..." #~ msgid "%d files erased." #~ msgstr "%d faili izdzēsti." #~ msgid "Error saving article \"%s\" (is %s full?)" #~ msgstr "Kļūda saglabājot rakstu \"%s\" (vai %s ir pilns?)" #~ msgid "Directory \"%s\" contains %.1f MB in %d files" #~ msgstr "Direktorija \"%s\" satur %.1f MB %d failos" #~ msgid "Don't know what to do with header \"%s\"" #~ msgstr "Nezinu, ko darīt ar galveni \"%s\"" #~ msgid "Couldn't parse a Message-ID from the raw message!" #~ msgstr "Nevarēju parsēt Ziņas-ID no jēlās ziņas!" #~ msgid "Unparseable Subject" #~ msgstr "Neparsējams Temats" #~ msgid "unknown@spammesenseless.com" #~ msgstr "unknown@spammesenseless.com" #~ msgid "Can't create file \"%s\" %s" #~ msgstr "Nevaru izveidot failu \"%s\" %s" #~ msgid "Error saving file \"%s\" - is the disk full?" #~ msgstr "Kļūda saglabājot failu \"%s\" - vai disks ir pilns?" #~ msgid "Decoded \"%s\" from group \"%s\", \"%s\"" #~ msgstr "Dekodēta \"%s\" no kopas \"%s\", \"%s\"" #~ msgid "Loading %u of %d groups" #~ msgstr "Lādēju %u no %d kopām" #~ msgid "" #~ "Skipped %d groups due to possible corruption in \"%s\" and \"%s\". You " #~ "may want to delete these files and get a new grouplist from your news " #~ "server." #~ msgstr "" #~ "Izlaistas %d kopas iespējamā kropļojuma dēļ iekš \"%s\" un \"%s\". Jūs " #~ "varētu vēlēties dzēst šos failus un saņemt jaunu kopsarakstu no ziņu " #~ "servera." #~ msgid "Loaded %d groups for server \"%s\" in %.1f seconds (%.0f groups/sec)" #~ msgstr "Ielādētas %d kopas no servera \"%s\" %.1f sekundēs (%.0f kopas/sek)" #~ msgid "Saved %d of %u groups" #~ msgstr "Saglabātas %d no %u kopām" #~ msgid "Error saving list of groups to \"%s\" - is the disk full?" #~ msgstr "Kļūda saglabājot kopu sarakstu iekš \"%s\" - pilns disks?" #~ msgid "Saved %d groups in \"%s\" in %.1f seconds (%.0f groups/sec)" #~ msgstr "Sagabātas %d kopas iekš \"%s\" %.1f sekundēs (%.0f kopas/sek)" #~ msgid "Loaded %d of %d articles" #~ msgstr "Ielādēti %d raksti no %d" #~ msgid "" #~ "Pan skipped %d corrupt headers from the local cache for group \"%s\"." #~ msgstr "Pan izlaida %d sabeigtas galvenes no lokālā keša kopai \"%s\"." #~ msgid "You may want to empty this group and download fresh headers." #~ msgstr "" #~ "Jūs varētu vēlēties tukšot šo kopu un lejupielādēt svaigas galvenes." #~ msgid "The group will not be saved -- can't create file \"%s\"" #~ msgstr "Kopa netiks saglabāta -- nevaru izveidot failu \"%s\"" #~ msgid "Unable to save headers for group \"%s\" - is the disk full?" #~ msgstr "Nespēju saglabāt kopas \"%s\" galvenes - pilns disks?" #~ msgid "(No Group)" #~ msgstr "(Nav Kopas)" #~ msgid "" #~ "INFORMATION: Please be aware that posts to \"%s\" will not appear until " #~ "approved by the group's moderator." #~ msgstr "" #~ "INFORMĀCIJA: Ziniet, ka publikācijas uz \"%s\" neparādīsies līdz tās būs " #~ "apstiprinājies kopas uzraugs." #~ msgid "ERROR: invalid address \"%s\"" #~ msgstr "KĻŪDA: nederīga adrese \"%s\"" #~ msgid "ERROR: Must have one author in From: line" #~ msgstr "KĻŪDA: Jābūt vienam autoram No: laukā" #~ msgid "Imported %d groups (%d new) from \"%s\"" #~ msgstr "Importētas %d kopas (%d jaunas) no \"%s\"" #~ msgid "Exported %d groups (%d subscribed) to \"%s\"" #~ msgstr "Eksportētas %d grupas (%d pierakstītās) uz \"%s\"" #~ msgid "Imported %d lines from Gnome config file" #~ msgstr "Importētas %d rindiņas no Gnome config faila" #~ msgid "%s does not appear to be a valid datafile" #~ msgstr "%s neizskatās, ka būtu derīgs datu fails" #~ msgid "Error converting string \"%*s\" to utf8: %d - %s" #~ msgstr "Kļūda konvertējot virkni \"%*s\" uz utf8: %d - %s" #~ msgid "A newsreader for GNOME" #~ msgstr "GNOME jaunumlasītājs" #~ msgid "Programmer" #~ msgstr "Programmētājs" #~ msgid "Programmer & Documentation" #~ msgstr "Programmētājs & Dokumentētājs" #~ msgid "Project Originator, Programmer" #~ msgstr "Projekta Originizators, Programmētājs" #~ msgid "Programmer, 0.6 - 0.7" #~ msgstr "Programmētājs, 0.6 - 0.7" #~ msgid "" #~ "Pan %s Translations\n" #~ "%s\n" #~ "\n" #~ "Pan %s Code or Patches\n" #~ "%s\n" #~ "\n" #~ "Pan %s Suggestions and Testing\n" #~ "%s\n" #~ "\n" #~ "Contributors to previous versions are listed at\n" #~ "http://pan.rebelbase.com/CREDITS" #~ msgstr "" #~ "Pan %s Tulkojumi\n" #~ "%s\n" #~ "\n" #~ "Pan %s Kods vai Ielāpi\n" #~ "%s\n" #~ "\n" #~ "Pan %s Ieteikumi un Testēšana\n" #~ "%s\n" #~ "\n" #~ "Līdzstrādnieki iepriekšējām versijām atrodami\n" #~ "http://pan.rebelbase.com/CREDITS" #~ msgid "Default charse_t:" #~ msgstr "Noklusētā _rakstzīmjkopa:" #~ msgid "Pan: Download Headers for group `%s'" #~ msgstr "Pan: Lejupielādēt Galvenes kopai `%s'" #~ msgid "Pan: Download Headers" #~ msgstr "Pan: Lejupielādēt Galvenes" #~ msgid "Download _new headers" #~ msgstr "Lejupielādēt j_aunās galvenes" #~ msgid "_Download bodies too" #~ msgstr "_Lejupielādēt arī rumpjus" #~ msgid "/_File/_Save..." #~ msgstr "/_Fails/_Saglabāt..." #~ msgid "/_File/Clea_r" #~ msgstr "/_Fails/A_ttīrīt" #~ msgid "/_File/---" #~ msgstr "/_Fails/---" #~ msgid "/_File/_Close" #~ msgstr "/_Fails/_Aizvērt" #~ msgid "Pan: Status Log" #~ msgstr "Pan: Statusa Žurnāls" #~ msgid "Clear the log window" #~ msgstr "Attīrīt žurnāla logu" #~ msgid "Time" #~ msgstr "Laiks" #~ msgid "Log Entry" #~ msgstr "Žurnāla Ieraksts" #~ msgid "How should you appear when posting articles?" #~ msgstr "Jā jums uzrādīties, kad publicējat rakstus?" #~ msgid "Your _Name:" #~ msgstr "Jūsu _Vārds:" #~ msgid "Email _Address:" #~ msgstr "Epasta _Adrese:" #~ msgid "_Organization:" #~ msgstr "_Organizācija:" #~ msgid "default" #~ msgstr "noklusētais" #~ msgid "What mail server should Pan use?" #~ msgstr "Kādu pasta serveri Pan būtu jālieto?" #~ msgid "What news server should Pan use?" #~ msgstr "Kādu ziņu serveri Pan būtu jālieto?" #~ msgid "Short _name for Pan to show:" #~ msgstr "Īsais vārds, kuru parādīt Pan:" #~ msgid "Login" #~ msgstr "Pieteikšamās" #~ msgid "Server requires authori_zation" #~ msgstr "Serverim nepieciešama autori_zācija" #~ msgid "Pan Setup Wizard" #~ msgstr "Pan Uzstādīšanas Vednis" #~ msgid "Thank you for trying Pan!" #~ msgstr "Paldies, ka izmēģinājāt Pan!" #~ msgid "" #~ "Thank you for trying Pan!\n" #~ " \n" #~ "If you are new to Usenet,\n" #~ "%s\n" #~ "is a starting point to see what Usenet is,\n" #~ "where to find a free news server,\n" #~ "and how to use Pan.\n" #~ " \n" #~ "Since this is your first time running Pan,\n" #~ "we'll need to gather some information.\n" #~ msgstr "" #~ "Paldies, ka izmēģinājāt Pan!\n" #~ " \n" #~ "Ja Usenet jums ir jaunums,\n" #~ "%s\n" #~ "ir labs sākumpunkts, lai uzzinātu, kas ir Usenet,\n" #~ "kur atrast brīvos ziņu serverus\n" #~ "un kā lietot Pan.\n" #~ " \n" #~ "Tā kā šī ir jūsu pirmā Pan sāknēšanas reize,\n" #~ "mums būs nepieciešams ievākt nedaudz informācijas.\n" #~ msgid "About You" #~ msgstr "Par Jums" #~ msgid "Ready!" #~ msgstr "Gatavs!" #~ msgid "" #~ "You have successfully entered all of\n" #~ "the information required to set up Pan.\n" #~ "\n" #~ "To save these settings, click Save." #~ msgstr "" #~ "Jūs esat veiksmīgi ievadījis visu nepieciešamo\n" #~ "informāciju, lai uzstādītu Pan.\n" #~ "\n" #~ "Lai saglabātu uzstādījumus, klikšķiniet Saglabāt." #~ msgid "License" #~ msgstr "Licence" #~ msgid "Authors" #~ msgstr "Autori" #~ msgid "Thanks to" #~ msgstr "Paldies" #~ msgid " (No conditions -- no articles will match)" #~ msgstr " (Nav nosacījumu -- neatbildīs neviens raksts)" #~ msgid " (No conditions -- all articles will match)" #~ msgstr " (Nav nosacījumu -- atbildīs visi raksti)" #~ msgid "Pan: Edit Filter" #~ msgstr "Pan: Rediģēt Filtru" #~ msgid "Filter name: " #~ msgstr "Filtra nosaukums: " #~ msgid "Show in Filter Menu" #~ msgstr "Parādīt Filtra Izvēlnē" #~ msgid "Move the selected line up one line" #~ msgstr "Pārvietot izvēlēto rindiņu augšup par vienu līniju" #~ msgid "Move the selected line down one line" #~ msgstr "Pārvietot izvēlēto rindiņu lejup par vienu līniju" #~ msgid "Invert" #~ msgstr "Apgriezt" #~ msgid "All Of" #~ msgstr "Viss no" #~ msgid "Any Of" #~ msgstr "Jebkas no" #~ msgid "Delete the selected line" #~ msgstr "Dzēst izvēlēto rindiņu" #~ msgid "Add New Line to the Filter" #~ msgstr "Pievienot Filtram Jaunu Rindiņu" #~ msgid "New Filter Line" #~ msgstr "Jauna Filtra Rindiņa" #~ msgid "does not start with" #~ msgstr "nesākas ar" #~ msgid "does not match regular expression" #~ msgstr "neatbilst parastai izteiksmei" #~ msgid "Saved" #~ msgstr "Saglabāts" #~ msgid "Neither Saved nor Queued" #~ msgstr "Ne Saglabāta ne Rindota" #~ msgid "Article _thread is" #~ msgstr "Raksta pav_ediens ir" #~ msgid "Watched" #~ msgstr "Uzraudzīts" #~ msgid "Ignored" #~ msgstr "Ignorēts" #~ msgid "Neither Watched nor Ignored" #~ msgstr "Ne Uzraudzīts ne Ignorēts" #~ msgid "Article h_as" #~ msgstr "Rakstam _ir" #~ msgid "Incomplete Attachments" #~ msgstr "Nepilnīgas Piesaistes" #~ msgid "No Attachments" #~ msgstr "Nav Piesaistu" #~ msgid "Article _is" #~ msgstr "Raksts i_r" #~ msgid "New" #~ msgstr "Jauns" #~ msgid "Unread" #~ msgstr "Nelasīts" #~ msgid "Read" #~ msgstr "Lasīts" #~ msgid "Cached" #~ msgstr "Atķeksēts" #~ msgid "Posted by Me" #~ msgstr "Manis Publicēts" #~ msgid "Article has at _least N lines:" #~ msgstr "Rakstam ir _vismaz N rindiņas:" #~ msgid "Article _score is at least" #~ msgstr "Raksta _rezultāts ir vismaz" #~ msgid "" #~ "This filter is still used by the following rules:\n" #~ "%s\n" #~ "Please remove this dependency first." #~ msgstr "" #~ "Šo filtru joprojām lieto sekojošā kārtula:\n" #~ "%s\n" #~ "Lūdzu vispirms izņemiet šo atkarību vispirms." #~ msgid "Pan: Filters" #~ msgstr "Pan: Fliltri" #~ msgid "Filters" #~ msgstr "Fliltri" #~ msgid "Edit the selected filter" #~ msgstr "Rediģēt izvēlēto filtru" #~ msgid "Remove the selected filter" #~ msgstr "Izņemt izvēlēto filtru" #~ msgid "NONE OF:" #~ msgstr "NEVIENS NO:" #~ msgid "ALL OF:" #~ msgstr "VISI NO:" #~ msgid "ANY OF:" #~ msgstr "JEBKAS NO:" #~ msgid "Article has complete attachments" #~ msgstr "Rakstam ir pilnīgas piesaistnes" #~ msgid "Article does not have incomplete attachments" #~ msgstr "Rakstam nav nepilnīgas piesaistnes" #~ msgid "Article has incomplete attachments" #~ msgstr "Rakstam ir nepilnīgas piesaistnes" #~ msgid "Article has complete or incomplete attachments" #~ msgstr "Rakstam ir pilnīgas vai nepilnīgas piesaistnes" #~ msgid "Article is crossposted to at least %d groups" #~ msgstr "Raksts ir pārpublicēts vairāk kā %d grupās" #~ msgid "Article was posted in the last %d days" #~ msgstr "Raksts tika publicēts pēdējās %d dienās" #~ msgid "Article is %d or more lines long" #~ msgstr "Raksts ir %d vai vairāk rindiņas garš" #~ msgid "Bozos" #~ msgstr "Bozos" #~ msgid "Spam" #~ msgstr "Surogātpasts" #~ msgid "Article is unread or old" #~ msgstr "Raksts ir nelasīts vai vecs" #~ msgid "Article is new" #~ msgstr "Raksts ir jauns" #~ msgid "Article is new or read" #~ msgstr "Raksts ir jauns vai lasīts" #~ msgid "Article is new or unread" #~ msgstr "Raksts ir jauns vai nelasīts" #~ msgid "Xref" #~ msgstr "Xref" #~ msgid "Article has not been saved or decoded" #~ msgstr "Raksts nav ticis saglabāts vai dekodēts" #~ msgid "Article has been saved or decoded" #~ msgstr "Raksts ir ticis saglabāts vai dekodēts" #~ msgid "Article is not queued for saving or decoding" #~ msgstr "Raksts nav rindots saglabāšanai vai dekodēšanai" #~ msgid "Article is queued for saving or decoding" #~ msgstr "Raksts ir rindots saglabāšanai vai dekodēšanai" #~ msgid "Article is either saved or queued for saving" #~ msgstr "Raksts ir vai nu saglabāts vai dekodēts" #~ msgid "Article is neither saved nor queued for saving" #~ msgstr "Raksts nav ne saglabāts ne rindots saglabāšanai" #~ msgid "Thread isn't watched" #~ msgstr "Pavediens netiek uzraudzīts" #~ msgid "Thread is watched" #~ msgstr "Pavediens tiek uzraudzīts" #~ msgid "Thread isn't ignored" #~ msgstr "Pavediens netiek ignorēts" #~ msgid "Thread is ignored" #~ msgstr "Pavediens tiek ignorēts" #~ msgid "Thread is neither watched nor ignored" #~ msgstr "Pavediens nav ne uzraudzīts ne ignorēts" #~ msgid "Wrote filters to \"%s\"" #~ msgstr "Ierakstīju filtrus iekš \"%s\"" #~ msgid "Invalid folder name: \"%s\"" #~ msgstr "Nederīgs mapes nosaukums: \"%s\"" #~ msgid "Please don't begin folders with \"pan.\"; it confuses me." #~ msgstr "Lūdzu nesākiet mapes ar \"pan.\"; tas mani mulsina." #~ msgid "Create New Folder" #~ msgstr "Izveidot Jaunu Mapi" #~ msgid "New Folder Name:" #~ msgstr "Jaunās Mapes Nosaukums:" #~ msgid "/Get New Headers and _Bodies" #~ msgstr "/Saņemt Jaunas Galvenes un _Rumpjus" #~ msgid "/More Download _Options..." #~ msgstr "/Papildus Lejupielādes _Opcijas..." #~ msgid "/Refresh Article _Counts" #~ msgstr "/Atsvaidzināt Rakstu _Skaitu" #~ msgid "/Group _Properties..." #~ msgstr "/Kopas _Rekvizīti..." #~ msgid " (Moderated)" #~ msgstr " (Apvaldīts)" #~ msgid " (Read-Only)" #~ msgstr " (Tikai-Lasīt)" #~ msgid "Subscribed" #~ msgstr "Pierastītās" #~ msgid "All Groups" #~ msgstr "Visas Grupas" #~ msgid "" #~ "We don't have a list of groups for \"%s\".\n" #~ "Shall we get download it?" #~ msgstr "" #~ "Mums nav kopu saraksta priekš \"%s\".\n" #~ "Vai mums to lejupielādēt?" #~ msgid "Total" #~ msgstr "Kopā" #~ msgid "Description" #~ msgstr "Apraksts" #~ msgid "" #~ "Type in a group search string and press ENTER. Wildcards are allowed." #~ msgstr "" #~ "Ierakstiet kopas meklēšanas virkni un nospiediet ENTER. Aizstājējzīmes " #~ "ir atļautas." #~ msgid "" #~ msgstr "" #~ msgid "X-Newsreader" #~ msgstr "X-Jaunumlasītājs" #~ msgid "X-Mailer" #~ msgstr "X-Pasta sūtītājs" #~ msgid "User-Agent" #~ msgstr "Lietotāja-Aģents" #~ msgid "News server connection count: %d" #~ msgstr "Ziņu servera savienojumu skaits: %d" #~ msgid "The Task Manager is Empty" #~ msgstr "Uzdevumu Pārvaldnieks ir Tukšs" #~ msgid "Pan is Online" #~ msgstr "Pan ir Tiešsaistē" #~ msgid "Connection" #~ msgstr "Savienojums" #~ msgid "Post" #~ msgstr "Publicēt" #~ msgid "Get" #~ msgstr "Saņemt" #~ msgid "Mine" #~ msgstr "Mans" #~ msgid "Show Only Replies to My Articles" #~ msgstr "Parādīt Tikai Atbildes uz Maniem Rakstiem" #~ msgid "Show Only Watched Threads" #~ msgstr "Parādīt Tikai Uzraudzītos Pavedienus" #~ msgid "Net" #~ msgstr "Tīkls" #~ msgid "/_File/_Save Article As..." #~ msgstr "/_Fails/_Saglabāt Rakstu Kā..." #~ msgid "/_File/Save Article A_ttachments" #~ msgstr "/_Fails/Saglabāt Raksta Piesais_tes" #~ msgid "/_File/_Cancel Last Task" #~ msgstr "/_Fails/At_celt Pēdējo Uzdevumu" #~ msgid "/_File/_Print Article..." #~ msgstr "/_Fails/_Drukāt Rakstu..." #~ msgid "/_File/_New Folder..." #~ msgstr "/_Fails/_Jauna Mape..." #~ msgid "/_File/Delete _Folder..." #~ msgstr "/_Fails/Dzēst _Mapi..." #~ msgid "/_File/_Edit Article in Folder" #~ msgstr "/_Fails/_Rediģēt Rakstu Mapē" #~ msgid "/_Edit/Select all" #~ msgstr "/_Rediģēt/Izvēties visu" #~ msgid "/_Edit/Deselect all" #~ msgstr "/_Rediģēt/Neizvēlēties neko" #~ msgid "/_Edit/---" #~ msgstr "/_Rediģēt/---" #~ msgid "/_Edit/Select all _Groups" #~ msgstr "/_Rediģēt/Izvēlēties visas _Kopas" #~ msgid "/_Edit/Add S_ubscribed to Selection" #~ msgstr "/_Rediģēt/Pievienot _Pierakstītās Izvēlei" #~ msgid "/_Edit/Deselect all G_roups" #~ msgstr "/_Rediģēt/Neizvēlēties nevienu K_opu" #~ msgid "/_Edit/_Find..." #~ msgstr "/_Rediģēt/_Atrast..." #~ msgid "/_Edit/Find _Next" #~ msgstr "/_Rediģēt/Atrast _Nākošo" #~ msgid "/_View/---" #~ msgstr "/_Skats/---" #~ msgid "/_View/Thr_ead Header Pane" #~ msgstr "/_Skats/Pa_vediena Galvenes Rūts" #~ msgid "/_View/_Rot13 Selected Text" #~ msgstr "/_Skats/_Rot13 Izvēlēts Teksts" #~ msgid "/_View/E_xpand Selected Threads" #~ msgstr "/_Skats/_Izvērst Izvēlētos Pavedienus" #~ msgid "/_View/C_ollapse Selected Threads" #~ msgstr "/_Skats/_Sakļaut Izvēlētos Pavedienus" #~ msgid "/Filte_r/Show Matching Articles and References" #~ msgstr "/Filt_rs/Parādīt Atbilstošos Rakstus un Atsauces" #~ msgid "/Filte_r/Show Threads with Matching Articles" #~ msgstr "/Filt_rs/Parādīt Pavedienus ar Atbilsošajiem Rakstiem" #~ msgid "/Filte_r/---" #~ msgstr "/Filt_rs/---" #~ msgid "/Filte_r/Match _New Articles" #~ msgstr "/Filt_rs/Atbilst _Jaunie Raksti" #~ msgid "/Filte_r/Match Articles which are _Cached" #~ msgstr "/Filt_rs/Atbilst Raksti, kas ir _Kešoti" #~ msgid "/Filte_r/Match Articles which are not Cache_d" #~ msgstr "/Filt_rs/Atbilst Raksti, kas nav Keš_oti" #~ msgid "/Filte_r/Match Articles with Complete _Attachments" #~ msgstr "/Filt_rs/Atbilst Raksti ar Pilnīgām P_iesaistnēm" #~ msgid "/Filte_r/Match Articles with I_ncomplete Attachments" #~ msgstr "/Filt_rs/Atbilst Raksti ar nepilnīgām Pie_saistnēm" #~ msgid "/Filte_r/Match Articles with No A_ttachments" #~ msgstr "/Filt_rs/Atbilst Raksti _bez Piesaistnēm" #~ msgid "/Filte_r/Match Articles Written by _Me" #~ msgstr "/Filt_rs/Atbilst Raksti, kurus rakstījis es_mu Es" #~ msgid "/Filte_r/Match Articles Written by _Other People" #~ msgstr "/Filt_rs/Atbilst Raksti, kurus Rakstījuši Citi Cilvēki" #~ msgid "/Filte_r/Match _Watched Threads" #~ msgstr "/Filt_rs/Atbilst _Uzraudzītie Pavedieni" #~ msgid "/Filte_r/Match _Ignored Threads" #~ msgstr "/Filt_rs/Atbilst _Ignorētie Pavedieni" #~ msgid "/Filte_r/Match Threads N_either Watched nor Ignored" #~ msgstr "/Filt_rs/Atbilst Pavedieni, kas Nav ne Uzraudzīti ne Ignorēti" #~ msgid "/_Go/Read More" #~ msgstr "/_Iet/Lasīt Tālāk" #~ msgid "/_Go/---" #~ msgstr "/_Iet/---" #~ msgid "/_Go/_Next Unread Article" #~ msgstr "/_Iet/_Nākamais Nelasītais Raksts" #~ msgid "/_Go/Previous Article _Read" #~ msgstr "/_Iet/Iepriekšēj_ais Lasītais Raksts" #~ msgid "/_Go/T_op of Thread" #~ msgstr "/_Iet/Pavediena _Sākums" #~ msgid "/_Servers" #~ msgstr "/_Serveri" #~ msgid "/_Servers/Get List of _All Groups" #~ msgstr "/_Serveri/Saņemt _Visu Kopu Sarakstu" #~ msgid "/_Servers/Get List of _New Groups" #~ msgstr "/_Serveri/Saņemt _Jauno Kopu Sarakstu" #~ msgid "/_Servers/---" #~ msgstr "/_Serveri/---" #~ msgid "/_Newsgroups/Mark Group _Read" #~ msgstr "/In_treškopas/Marķēt Kopu kā _Lasītu" #~ msgid "/_Newsgroups/_Delete Group's Articles" #~ msgstr "/In_treškopas/_Dzēst Kopas Rakstus" #~ msgid "/_Newsgroups/---" #~ msgstr "/In_treškopas/---" #~ msgid "/_Newsgroups/Get New _Headers" #~ msgstr "/In_treškopas/Saņemt Jaunās _Galvenes" #~ msgid "/_Newsgroups/Get New Headers and _Bodies" #~ msgstr "/In_treškopas/Saņemt Jaunās Galvenes un _Rumpjus" #~ msgid "/_Newsgroups/More Download _Options..." #~ msgstr "/In_treškopas/Papildus Lejuplielādes _Opcijas..." #~ msgid "/_Newsgroups/Refresh Article _Counts" #~ msgstr "/In_treškopas/Atsvaidzināt Rakstu _Skaitus" #~ msgid "/_Newsgroups/Get New Headers in Subscribed _Groups" #~ msgstr "/In_treškopas/Saņemt Jaunās Galvenes Pierakstītajās _Kopās" #~ msgid "/_Newsgroups/_Subscribe" #~ msgstr "/In_treškopas/_Pierakstīties" #~ msgid "/_Newsgroups/_Unsubscribe" #~ msgstr "/In_treškopas/_Atrakstīties" #~ msgid "/_Newsgroups/Group _Properties..." #~ msgstr "/In_treškopas/Kopas _Rekvizīti..." #~ msgid "/_Newsgroups/Dele_te Group" #~ msgstr "/In_treškopas/D_zēst Kopu" #~ msgid "/_Articles/Mark _Read" #~ msgstr "/_Raksti/Marķēt kā _Lasītu" #~ msgid "/_Articles/Mark _Unread" #~ msgstr "/_Raksti/Marķēt kā _Nelasītu" #~ msgid "/_Articles/---" #~ msgstr "/_Raksti/---" #~ msgid "/_Articles/D_ownload Flagged" #~ msgstr "/_Raksti/Le_jupielādēt Karogotās" #~ msgid "/_Articles/_Flag" #~ msgstr "/_Raksti/_Karogot" #~ msgid "/_Articles/U_nflag" #~ msgstr "/_Raksti/A_tkarogot" #~ msgid "/_Articles/Down_load" #~ msgstr "/_Raksti/Lej_upielādēt" #~ msgid "/_Articles/_Watch Thread" #~ msgstr "/_Raksti/_Uzraudzīt Pavedienu" #~ msgid "/_Articles/_Ignore Thread" #~ msgstr "/_Raksti/I_gnorēt Pavedienu" #~ msgid "/_Articles/Add to Bo_zo or Spam Filter..." #~ msgstr "/_Raksti/Pievienot Bo_zo vai Surogātpasta Filtram..." #~ msgid "/_Articles/_Cancel..." #~ msgstr "/_Raksti/At_celt..." #~ msgid "/_Articles/_Supersede..." #~ msgstr "/_Raksti/A_izstāt..." #~ msgid "/_Articles/_Delete" #~ msgstr "/_Raksti/_Dzēst" #~ msgid "/_Post/_Post to Newsgroup" #~ msgstr "/_Publicēt/_Publicēt Intreškopā" #~ msgid "/_Post/_Reply by Email" #~ msgstr "/_Publicēt/_Atbildēt ar Epastu" #~ msgid "/_Post/Followup _and Reply" #~ msgstr "/_Publicēt/Sekot _un Atbildēt" #~ msgid "/_Post/For_ward Article by Email" #~ msgstr "/_Publicēt/Pā_rsūtīt Rakstu ar Epastu" #~ msgid "/_Post/---" #~ msgstr "/_Publicēt/---" #~ msgid "/_Post/Send Pending _Messages" #~ msgstr "/_Publicēt/Sūtīt _Gaidošās _Ziņas" #~ msgid "/_Tools" #~ msgstr "/Rī_ki" #~ msgid "/_Tools/---" #~ msgstr "/Rī_ki/---" #~ msgid "/_Tools/Custom _Filters..." #~ msgstr "/Rī_ki/Pašnoteiktie _Filtri..." #~ msgid "/_Tools/_Rules..." #~ msgstr "/Rī_ki/Kār_tulas..." #~ msgid "/_Tools/_Log Viewer..." #~ msgstr "/_Rīki/_Žurnālu Skatītājs..." #~ msgid "/_Help" #~ msgstr "/_Palīdzība" #~ msgid "/_Help/Online Users` _Manual..." #~ msgstr "/_Palīdzība/Lietotāja Tiešsaistes _Rokasgrāmata..." #~ msgid "/_Help/---" #~ msgstr "/_Palīdzība/---" #~ msgid "/_Help/_Feedback..." #~ msgstr "/_Palīdzība/_Atgriezeniskā saite..." #~ msgid "Make this the default profile for _news" #~ msgstr "Padārīt šo par noklusēto ja_unumu profīlu" #~ msgid "Make this the default profile for _mail" #~ msgstr "Padārīt šo par noklusēto _pasta profīlu" #~ msgid "The domain name to use for Message-ID generation" #~ msgstr "Domēna vārds, ko lietot Ziņas-ID veidošanā" #~ msgid "Pan: Edit Profile" #~ msgstr "Pan: Rediģēt Profīlu" #~ msgid "_User Profile" #~ msgstr "_Lietotāja Profīls" #~ msgid "Cus_tom Headers" #~ msgstr "_Pašrocīgas Galvenes" #~ msgid "" #~ "Your real name contained double quotes.\n" #~ "Converting into single quotes." #~ msgstr "" #~ "Jūsu īstais vārds satur dubultpēdiņas.\n" #~ "Konvertēju uz vienkāršām pēdiņām." #~ msgid "You need at least one profile" #~ msgstr "Jums nepieciešams vismaz viens profīls" #~ msgid "Incomplete Profile." #~ msgstr "Nepilnīgs Profīls." #~ msgid "Use the selected profile to create a new profile" #~ msgstr "Lietot izvēlēto profīlu, lai izveidotu jaunu profīlu" #~ msgid "Wrote profiles to \"%s\"" #~ msgstr "Ierakstīju profīlus iekš \"%s\"" #~ msgid "Post anyway, despite these problems?" #~ msgstr "Vienalga publicēt, neskatoties uz šīm problēmām?" #~ msgid "Post anyway, despite this problem?" #~ msgstr "Vienalga publicēt, neskatoties uz šo problēmu?" #~ msgid "/_File/_Save Changes" #~ msgstr "/_Fails/_Saglabāt Izmaiņas" #~ msgid "/_File/Save _As..." #~ msgstr "/_Fails/Saglabāt _Kā..." #~ msgid "/_Edit/Cu_t" #~ msgstr "/_Reiģēt/_Griezt" #~ msgid "/_Edit/_Copy" #~ msgstr "/_Rediģēt/_Kopēt" #~ msgid "/_Edit/_Paste" #~ msgstr "/_Rediģēt/_Ievietot" #~ msgid "/_Edit/_Rot13 Selected Text" #~ msgstr "/_Rediģēt/_Rot13 Izvēlēts Teksts" #~ msgid "/_Edit/Edit with E_xternal Editor" #~ msgstr "/_Rediģēt/Rediģēt ar Ā_rējo Redaktoru" #~ msgid "/_File/Send Now" #~ msgstr "/_Fails/Sūtīt Tagad" #~ msgid "/_File/Send Later" #~ msgstr "/_Fails/Sūtīt Vēlāk" #~ msgid "Send Later" #~ msgstr "Sūtīt Vēlāk" #~ msgid "Rewrap" #~ msgstr "Pāraplauzt" #~ msgid "Turn line wrap on/off" #~ msgstr "Ieslēgt/Izslēgt rindiņu aplaušanu" #~ msgid "Edit with an External Editor" #~ msgstr "Rediģēt ar Ārējo Redaktoru" #~ msgid "Mime (single-part posts only)" #~ msgstr "Mime (tikai viendaļu publikācijas)" #~ msgid " (%lu lines in 1 article)" #~ msgstr " (%lu rindiņas 1 rakstā)" #~ msgid "UUEncoded (universally accepted)" #~ msgstr "UUKodēts (vispārēji pieņemts)" #~ msgid "yEnc (30 percent smaller than UUEnc but less universal)" #~ msgstr "yEnc (30 procentus mazāks par UUKod, bet mazāk universāls)" #~ msgid "Select the file to attach." #~ msgstr "Izvēlaties piesaistāmo failu." #~ msgid "Files to Attach" #~ msgstr "Piesaistāmais Fails" #~ msgid "Kilobytes" #~ msgstr "Kilobaiti" #~ msgid "Add a File to the Attachment List" #~ msgstr "Pievienot Failu Piesaistu Sarakstam" #~ msgid "Remove a File from the Attachment List" #~ msgstr "Izņemt Failu no Piesaistu Saraksta" #~ msgid "Estimated Article Size" #~ msgstr "Atlikušais Raksta Izmērs" #~ msgid "Organization" #~ msgstr "Organizācija" #~ msgid "The organization you're associated with." #~ msgstr "Organizācija, ar kurā darbojaties." #~ msgid "" #~ "Could not convert \"%s\" to UTF-8. Article may not display correctly." #~ msgstr "" #~ "Nevarēju konvertēt \"%s\" uz UTF-8. Raksts var neparādīties pareizi." #~ msgid "\"Followup-To: poster\": sending email to author." #~ msgstr "\"Sekojums-Uz: publicētājs\": sūtu epastu autoram." #~ msgid "\"Followup-To:\" contains an email address: sending email to author." #~ msgstr "" #~ "\"Sekojums-Uz: publicētājs\" satur epasta adresi: sūtu epastu autoram." #~ msgid "New Message" #~ msgstr "Jauna Ziņa" #~ msgid "" #~ "ERROR: message uses characters not specified in charset '%s' - possibly " #~ "use '%s' instead?" #~ msgstr "" #~ "KĻŪDA: ziņa satur rakstzīmes, kas neietilpst rakstzīmjkopā '%s' - drīzāk " #~ "tā vietā lietot '%s' ?" #~ msgid "Save message to file" #~ msgstr "Saglabāt ziņu failā" #~ msgid "The command line was: %s" #~ msgstr "Komandrinda bija: %s" #~ msgid "Handshake: %s" #~ msgstr "Rokasspiediens: %s" #~ msgid "NNTP handshake failed: %s" #~ msgstr "NNTP rokasspiediens neizdevās: %s" #~ msgid "Handshake failed: %s" #~ msgstr "Rokasspiediens neizdevās: %s" #~ msgid "Authentication failed: bad handshake for SPA password" #~ msgstr "Autentifikācija neveiksmīga: slikts rokasspiediens SPA parolei" #~ msgid "Bad SPA handshake: %s" #~ msgstr "Slikts SPA rokasspiediens: %s" #~ msgid "Authentication failed: need a password" #~ msgstr "Autentifikācija neizdevās: nepieciešama parole" #~ msgid "Authentication failed: %s" #~ msgstr "Autentifikācija neizdevās: %s" #~ msgid "Unsupported authentication mechanism: %s" #~ msgstr "Neatbalstīts autentifikācijas mehānisms: %s" #~ msgid "No supported authentication mechanism" #~ msgstr "Nav atbalstīta autentifikācijas mehānisma" #~ msgid "MODE READER check failed: %s" #~ msgstr "REŽĪMA LASĪTĀJS pārbaude neizdevās: %s" #~ msgid "Posting failed. Server said: %s" #~ msgstr "Publicēšana neizdevās. Serveris teica: %s" #~ msgid "Posting complete. Server said: %s" #~ msgstr "Publicēšana pabeigta. Serveris teica: %s" #~ msgid "\"stay connected\" sent to %s" #~ msgstr "\"palikt pieslēgtam\" nosūtīts uz %s" #~ msgid "No articles found for group \"%s\"" #~ msgstr "Neviens raksts nav atrasts kopai \"%s\"" #~ msgid "Getting header list failed: %s" #~ msgstr "Galveņu saraksta saņemšana neizdevās: %s" #~ msgid "Corrupt header skipped: %s" #~ msgstr "Sabeigta galvene izlaista: %s" #~ msgid "Getting %d of %d" #~ msgstr "Saņemu %d no %d" #~ msgid "Select Color" #~ msgstr "Izvēlieties Krāsu" #~ msgid "_Browse..." #~ msgstr "_Pārlūkot" #~ msgid "Font Family" #~ msgstr "Fontu Saime" #~ msgid "" #~ "\n" #~ "\n" #~ " --version Prints Pan's version number\n" #~ " --help Prints this message and exits\n" #~ " --debug Turns on the most commonly-useful options for a bug " #~ "report\n" #~ "\n" #~ " --mute Debugging tool to send new posts to console, not the " #~ "server\n" #~ " --debug-cache Print debugging messages for the article cache\n" #~ " --debug-sockets Print debugging messages when talking to the news " #~ "server\n" #~ " --debug-queue Print debugging messages related to managing tasks\n" #~ " --debug-decode Print debugging messages related to decoding " #~ "attachments\n" #~ " --debug-newsrc Print debugging messages related to .newsrc files\n" #~ " --debug-gnksa Print debugging messages related to gnksa correctness\n" #~ " --debug-trace Print debugging messages when entering/leaving " #~ "functions\n" #~ " --debug-lock Print debugging messages related to threaded gui " #~ "locks\n" #~ " --debug-object Print debugging messages related to refcounted " #~ "objects\n" #~ "\n" #~ msgstr "" #~ "\n" #~ "\n" #~ " --version Parāda Pan versijas numuru\n" #~ " --help Parāda šo ziņu un iziet\n" #~ " --debug Ieslēdz visbiežāk noderīgākās opcijas kļūdas " #~ "paziņojumam\n" #~ "\n" #~ " --mute Atkļūdošanas rīks, lai sūtītu jauas publikācijas uz " #~ "konsoli, nevis serveri\n" #~ " --debug-cache Parādīt atkļūdošanas ziņas raksta kešam\n" #~ " --debug-sockets Parādīt atkļūdošanas ziņas, kad sazinās ar ziņu " #~ "serveri\n" #~ " --debug-queue Parādīt atkļūdošanas ziņas saistībā ar pārvaldāmajiem " #~ "uzdevumiem\n" #~ " --debug-decode Parādīt atkļūdošanas ziņas saistībā ar peisaisņu " #~ "dekodēšanu\n" #~ " --debug-newsrc Parādīt atkļūdošanas ziņas saistībā ar .newsrc " #~ "failiem\n" #~ " --debug-gnksa Parādīt atkļūdošanas ziņas saistībā ar gnksa " #~ "pareizību\n" #~ " --debug-trace Parādīt atkļūdošanas ziņas, kad ieiet/pamet funkcijas\n" #~ " --debug-lock Parādīt atkļūdošanas ziņas saistībā ar sazarotajām gui " #~ "slēgšanām\n" #~ " --debug-object Parādīt atkļūdošanas ziņas saistībā ar refcount " #~ "objektiem\n" #~ "\n" #~ msgid "Error writing to socket." #~ msgstr "Kļūda rakstot ligzdā." #~ msgid "pan.sent" #~ msgstr "pan.sent" #~ msgid "pan.sendlater" #~ msgstr "pan.sendlater" #~ msgid "Spellchecking disabled: gtkspell_init() failed with status %d" #~ msgstr "" #~ "Pareizrakstības pārbaude deaktivizēta: gtkspell_init() neizdevās ar " #~ "statusu %d" #~ msgid "Restored %d tasks from \"%s\"" #~ msgstr "Atjaunoti %d uzdevumi no \"%s\"" #~ msgid "" #~ "Pan appears to have crashed or been killed the last time it was run. Do " #~ "you want to revert to the last session's task list?" #~ msgstr "" #~ "Izskatās, ka Pan avarēja vai ticis nokauts pēdējoreiz, kad tas tika " #~ "palaists. Vai vēlaties atgriezties pie pēdējās sesijas uzdevumu saraksta?" #~ msgid "" #~ "%a - abbreviated weekday name\n" #~ "%A - full weekday name\n" #~ "%b - abbreviated month name\n" #~ "%B - full month name\n" #~ "%c - local date & time\n" #~ "%d - day of the month\n" #~ "%H - hour (24-hour clock)\n" #~ "%I - hour (12-hour clock)\n" #~ "%j - day of the year (001-366)\n" #~ "%m - month (01-12)\n" #~ "%M - minute (00-59)\n" #~ "%p - local equivalent of AM/PM\n" #~ "%S - second (00-61)\n" #~ "%x - local date\n" #~ "%X - local time\n" #~ "%y - two-digit year\n" #~ "%Y - four-digit year\n" #~ "%% - %" #~ msgstr "" #~ "%a - saīsināts dienas nosaukums\n" #~ "%A - pilns dienas nosaukums\n" #~ "%b - saīsināts mēneša nosaukums\n" #~ "%B - pilns mēneša nosaukums\n" #~ "%c - vietējais datums un laiks\n" #~ "%d - mēneša diena\n" #~ "%H - stunda (24-stundu pulkstenis)\n" #~ "%I - stunda (12-stundu pulkstenis)\n" #~ "%j - gada diena (001-366)\n" #~ "%m - mēnesis (01-12)\n" #~ "%M - minūte (00-59)\n" #~ "%p - lokālais ekvivalents AM/PM\n" #~ "%S - sekonde (00-61)\n" #~ "%x - lokālais datums\n" #~ "%X - lokālais laiks\n" #~ "%y - divu ciparu gads\n" #~ "%Y - četru ciparu gads\n" #~ "%% - %" #~ msgid "Download new headers from _subscribed groups when starting Pan" #~ msgstr "" #~ "Lejupielādēt _jaunās galvenes no pierakstītajām kopām, kad sāknē Pan" #~ msgid "" #~ "Download new headers and bod_ies from subscribed groups when starting Pan" #~ msgstr "" #~ "Lejupielādēt _jaunās galvenes un rumpjus no pierakstītajām kopām, kad " #~ "sāknē Pan" #~ msgid "Download Directory" #~ msgstr "Lejupielādes Direktorija" #~ msgid "Automatically remove _failed tasks from the task manager" #~ msgstr "Automātiski izņemt _neizdevušos uzdevumus no uzdevumu pārvaldnieka" #~ msgid "When a _Followup subject header changes, show as new thread" #~ msgstr "Kad _Sekojama temata galvene mainās, parādīt kā jaunu pavedienu" #~ msgid "E_xpand all threads by default" #~ msgstr "Iz_vērst visus pavedienus pēc noklusējuma" #~ msgid "Show complete m_ultipart posts as a single article" #~ msgstr "Parādīt pilnīgu _vairākdaļu publikāciju kā vienu rakstu" #~ msgid "_Date Format:" #~ msgstr "_Datuma Formāts:" #~ msgid "Show \"%s\" header" #~ msgstr "Parādīt \"%s\" galveni" #~ msgid "Newsreader" #~ msgstr "Jaunumlasītājs" #~ msgid "Message _Body:" #~ msgstr "Vēstules _Rumpis:" #~ msgid "Message Body (_Monospace):" #~ msgstr "Vēstules Rumpis (_Vienplatuma):" #~ msgid "Quoted Text _2:" #~ msgstr "Citēts Teksts _2:" #~ msgid "E_ditor (%t is filename):" #~ msgstr "Re_daktors (%t ir faila nosaukums):" #~ msgid "Pane Order" #~ msgstr "Rūts Kārtība" #~ msgid "Ma_ximum Cache Size (Megs):" #~ msgstr "Ma_ksimālais Keša Izmērs (MB):" #~ msgid "_Flush cache when exiting Pan" #~ msgstr "Iz_tramdīt kešu pie iziešanas no Pan" #~ msgid "Sending Mail" #~ msgstr "Sūtu Pastu" #~ msgid "Mail Server A_ddress:" #~ msgstr "Pasta Servera A_drese:" #~ msgid "Ma_il Server Port:" #~ msgstr "Pa_sta Servera Ports:" #~ msgid "Appea_rance" #~ msgstr "Izs_kats" #~ msgid "Displa_y" #~ msgstr "Displej_s" #~ msgid "_Downloads" #~ msgstr "_Lejupielādes" #~ msgid "Cach_e" #~ msgstr "_Kešs" #~ msgid "_Mail" #~ msgstr "_Pasts" #~ msgid "You haven't loaded an article to print." #~ msgstr "Jūs neesat ielādējis drukājamo rakstu." #~ msgid "" #~ "%s\n" #~ "\n" #~ "Matches: %u\n" #~ "Group: %s\n" #~ "Rule: %s" #~ msgstr "" #~ "%s\n" #~ "\n" #~ "Atbilst: %u\n" #~ "Kopa: %s\n" #~ "Kārtula: %s" #~ msgid "Mark as" #~ msgstr "Marķēt kā" #~ msgid "_Flag body for download" #~ msgstr "_Karogot rumpi lejupielādēšanai" #~ msgid "_Retrieve Body" #~ msgstr "_Saņemt Rumpi" #~ msgid "_Watch thread (highlights the thread)" #~ msgstr "_Uzraudzīt pavedienu (izgaismo pavedienu)" #~ msgid "_Ignore thread (hides the thread by default)" #~ msgstr "_Ignorēt pavedienu (paslēpj pavedienu pēc noklusējuma)" #~ msgid "Rule applies to all newsgroups" #~ msgstr "Kārtula attiecas uz visām intreškopām" #~ msgid "Wildcard group specification:" #~ msgstr "Aizstājzīmju grupas specifikācija:" #~ msgid "(e.g., *anime*)" #~ msgstr "(piem., *linux*)" #~ msgid "Rule applies to specific newsgroups:" #~ msgstr "Kārtula attiecas uz specifiskām intreškopām:" #~ msgid "Rule applies to:" #~ msgstr "Kārtula attiecas uz:" #~ msgid "Rule Name:" #~ msgstr "Kārtulas Nosaukums:" #~ msgid "Apply to Incoming" #~ msgstr "Pielietot Ienākošajam" #~ msgid "" #~ "If enabled, this rule will be applied to headers when they are downloaded." #~ msgstr "" #~ "Ja aktivizēts, kārtula tiks pielietota galvenēm, kad tās tiek ielādētas." #~ msgid "Delete Articles by Bozos" #~ msgstr "Dzēst Rakstus ar Bozo" #~ msgid "Applying rule to selected groups" #~ msgstr "Pielietot kārtulu izvēlētajām grupām" #~ msgid "Applying rule \"%s\" to group \"%s\"" #~ msgstr "Pielietoju kārtulu \"%s\" grupai \"%s\"" #~ msgid "Pan: Rules" #~ msgstr "Pan: Kārtulas" #~ msgid "Rules" #~ msgstr "Kārtulas" #~ msgid "Hit Ratio" #~ msgstr "Trāpījumu Proporcija" #~ msgid "" #~ "Apply to\n" #~ "Selected\n" #~ "Groups" #~ msgstr "" #~ "Pielietot\n" #~ "Izvēlētajām\n" #~ "Grupām" #~ msgid "" #~ "Apply to\n" #~ "Subscribed\n" #~ "Groups" #~ msgstr "" #~ "Pielietot\n" #~ "Pierakstītajām\n" #~ "Grupām" #~ msgid "Wrote rules to \"%s\"" #~ msgstr "Ierakstīju kārtulas \"%s\"" #~ msgid "" #~ "Can't find filter \"%s\" needed by rule \"%s\", so no articles match." #~ msgstr "" #~ "Nevaru atrast filtru \"%s\", kas nepieciešams kārtulai \"%s\", tāpēc " #~ "neviens raksts neatbilst." #~ msgid "Save Article _Attachments" #~ msgstr "Saglabāt Raksta _Piesaistnes" #~ msgid "_Directory:" #~ msgstr "_Direktorija:" #~ msgid "Save Files in Directory" #~ msgstr "Saglabāt Failus Direktorijā" #~ msgid "Add to the _top of the Task Manager's List" #~ msgstr "Pievienot Uzdevumu Pārvaldnieka Saraksta _augšā" #~ msgid "Newsrc" #~ msgstr "Newsrc" #~ msgid "Us_e .newsrc file" #~ msgstr "Lie_tot .newsrc failu" #~ msgid "_Filename:" #~ msgstr "_Faila nosaukums:" #~ msgid "Select .newsrc File" #~ msgstr "Izvēlieties .newsrc Failu" #~ msgid "Edit the selected server" #~ msgstr "Rediģēt iezvēlēto serveri" #~ msgid "Remove the selected server" #~ msgstr "Izņemt iezvēlēto serveri" #~ msgid "Got unexpected response from mail server: expected %d; got %s" #~ msgstr "Saņemta negaidīta atbilde no pasta servera: gaidīts %d; saņemts %s" #~ msgid "Sending mail" #~ msgstr "Sūtu pastu" #~ msgid "No known recipients" #~ msgstr "Nav zināmu saņēmēju" #~ msgid "Mail sent!" #~ msgstr "Pasts nosūtīts!" #~ msgid "Handshaking with mail server" #~ msgstr "Rokaspiediens ar pasta serveri" #~ msgid "Connecting to mail server" #~ msgstr "Pieslēdzos pasta serverim" #~ msgid "Mail server not ready" #~ msgstr "Pasta serveris nav gatavs" #~ msgid "Sending Keepalive" #~ msgstr "Sūtu Palikt-nomodā" #~ msgid "Disconnecting Idle" #~ msgstr "Atslēdzu Dīkstāvē" #~ msgid "Disconnecting one connection from `%s' after %d seconds idle" #~ msgstr "Atslēdzu vienu savienojumu no `%s' pēc %d sekundēm dīkstāvē" #~ msgid "Connection to %s, port %d failed: %s" #~ msgstr "Savienojums ar %s, portu %d neizdevās: %s" #~ msgid "New connection %p for %s, port %d" #~ msgstr "Jauns savienojums %p priekš %s, ports %d" #~ msgid "Downloading %d" #~ msgstr "Lejupielādēju %d" #~ msgid "\"%s\"" #~ msgstr "\"%s\"" #~ msgid "Downloading %u articles" #~ msgstr "Lejupielādēju %u rakstus" #~ msgid "Article %s (%s) canceled" #~ msgstr "Raksts %s (%s) atcelts" #~ msgid "Updating article counts for %u groups from server \"%s\"" #~ msgstr "Atjauninu rakstu skaitu %u grupām no servera \"%s\"" #~ msgid "Updated counts for %u groups out of %u" #~ msgstr "Atjaunots skaits %u grupām no %u" #~ msgid "Unable to update counts for group \"%s\"" #~ msgstr "Nespēju atjaunot skaitu grupai \"%s\"" #~ msgid "Getting all groups from server \"%s\"" #~ msgstr "Saņemu visas kopas no servera \"%s\"" #~ msgid "Adding groups to server \"%s\"" #~ msgstr "Pievienoju kopas serverim \"%s\"" #~ msgid "List Newsgroups failed: %s" #~ msgstr "Intreškopu saraksts neizdevās: %s" #~ msgid "Got %d descriptions from server \"%s\"" #~ msgstr "Saņēmu %d aprakstus no servera \"%s\"" #~ msgid "New groups retrieval failed: %s" #~ msgstr "Jaunu kopu saņemšana neizdevās: %s" #~ msgid "No new articles in group \"%s\"" #~ msgstr "Kopā \"%s\" nav jaunu rakstu" #~ msgid "New %lu of %lu" #~ msgstr "Jaunas %lu no %lu" #~ msgid "Sampling %lu of %lu" #~ msgstr "Iztveru %lu no %lu" #~ msgid "All %lu of %lu" #~ msgstr "Visas %lu no %lu" #~ msgid "Not Queued" #~ msgstr "Nav Rindā" #~ msgid "Stopping" #~ msgstr "Apturu" #~ msgid "Pan %s Task Manager" #~ msgstr "Pan %s Uzdevumu Pārvaldnieks" #~ msgid "Move Selected Task(s) Up" #~ msgstr "Pārvietot Izvēlēto(s) Uzdevumu(s) Augšup" #~ msgid "Move Selected Task(s) to Top" #~ msgstr "Pārvietot Izvēlēto(s) Uzdevumu(s) uz Augšu" #~ msgid "Move Selected Task(s) Down" #~ msgstr "Pārvietot Izvēlēto(s) Uzdevumu(s) Lejup" #~ msgid "Stop Selected Task(s)" #~ msgstr "Apturēt Izvēlēto(s) Uzdevumu(s)" #~ msgid "Delete Selected Task(s)" #~ msgstr "Dzēst Izvēlēto(s) Uzdevumu(s)" #~ msgid "Time Remaining" #~ msgstr "Laiks Atlicis" #~ msgid "[This is an email copy of a Usenet post to \"%s\"]" #~ msgstr "[Šī ir epasta kopija Usenet publikācijai uz \"%s\"]" #~ msgid "Email \"%s\" sent." #~ msgstr "Epasts \"%s\" nosūtīts." #~ msgid "Email \"%s\" not sent." #~ msgstr "Epasts \"%s\" nenosūtīts." #~ msgid "Article \"%s\" posted." #~ msgstr "Raksts \"%s\" publicēts." #~ msgid "Article \"%s\" not posted." #~ msgstr "Raksts \"%s\" nepublicēts." #~ msgid "Posting and mailing article \"%s\"" #~ msgstr "Publicēju un sūtu rakstu \"%s\"" #~ msgid "Mailing article \"%s\"" #~ msgstr "Sūtu rakstu \"%s\"" #~ msgid "Email send failed.\n" #~ msgstr "Epasta nosūtīšana neizdevās.\n" #~ msgid "Usenet posting failed.\n" #~ msgstr "Usenet publicēšana neizdevās.\n" #~ msgid "Check Tools|Log Viewer for more information.\n" #~ msgstr "Pārbaudiet Rīki|Žurnālu Skatītājs papildus informācijai.\n" #~ msgid "Your message was saved in the folder \"pan.sendlater\"" #~ msgstr "Jūsu ziņa tika saglabāta mapē \"pan.sendlater\"" #~ msgid "Saving `%s'" #~ msgstr "Saglabāju `%s'" #~ msgid "Save Article can't access path \"%s\"" #~ msgstr "Raksta Saglabāšana nevar piekļūt ceļam \"%s\"" #~ msgid "Saved article body to \"%s\"" #~ msgstr "Saglabāts raksta rumpis iekš \"%s\"" pan-0.162/po/ms.po000066400000000000000000004303721475412772400137230ustar00rootroot00000000000000# Malay Translation of Pan HEAD. # Copyright (C) 2003 MIMOS Open Source Developement Group # This file is distributed under the same license as the PACKAGE package. # MIMOS Open Source Development Group , 2003. # msgid "" msgstr "" "Project-Id-Version: Pan HEAD\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-04-04 20:58+0200\n" "PO-Revision-Date: 2003-10-31 11:16+0800\n" "Last-Translator: MIMOS Open Source Development Group \n" "Language-Team: Projek Gabai \n" "Language: ms\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../pan.desktop.in.h:1 msgid "Pan Newsreader" msgstr "Pembaca berita Pan" #: ../pan.desktop.in.h:2 #, fuzzy msgid "Read and Post Usenet Articles" msgstr "Baca Artikel Seterusnya yang Belum Dibaca" #: ../pan/data/article-cache.cc:143 ../pan/data/encode-cache.cc:62 #, fuzzy, c-format msgid "Error opening directory: \"%s\": %s" msgstr "Ralat membuka direktori \"%s\": %s)" #: ../pan/data/article-cache.cc:231 ../pan/data/article-cache.cc:242 #: ../pan/data-impl/data-io.cc:187 ../pan/data-impl/data-io.cc:211 #: ../pan/gui/post-ui.cc:1639 #, fuzzy, c-format msgid "Unable to save \"%s\" %s" msgstr "Tidak dapat mengesetkan kumpulan \"%*.*s\": %s" #: ../pan/data/article-cache.cc:355 #, fuzzy, c-format msgid "Error opening file \"%s\" %s" msgstr "Ralat membuka fail \"%s\": %s" #: ../pan/data/article-cache.cc:386 ../pan/data-impl/profiles.cc:174 #: ../pan/data-impl/server.cc:436 ../pan/general/file-util.cc:298 #: ../pan/gui/post-ui.cc:609 ../pan/gui/task-pane.cc:691 #, c-format msgid "Error reading file \"%s\": %s" msgstr "Ralat membaca fail \"%s\": %s" #: ../pan/data/cert-store.cc:238 #, fuzzy, c-format msgid "Error opening SSL certificate directory: \"%s\": %s" msgstr "Ralat membuka direktori \"%s\": %s)" #: ../pan/data/cert-store.cc:270 #, c-format msgid "Succesfully added %d SSL PEM certificate(s) to Certificate Store." msgstr "" #. load_group_descriptions (*_data_io); #: ../pan/data-impl/data-impl.cc:109 #, c-format msgid "Loaded data backend in %.1f seconds" msgstr "" #: ../pan/data-impl/data-impl.cc:140 msgid "Pan newsreader server passwords" msgstr "" #: ../pan/data-impl/groups.cc:94 #, fuzzy, c-format msgid "Skipping newsrc file for server \"%s\"" msgstr "Mendapatkan %d kumpulan baru dari pelayan \"%s\"" #: ../pan/data-impl/headers.cc:606 #, fuzzy, c-format msgid "Expired %lu old articles from \"%s\"" msgstr "Artikel %u telah tamat tempoh dari `%s'" #: ../pan/data-impl/headers.cc:613 #, c-format msgid "" "Unsupported data version for %s headers: %d.\n" "Are you running an old version of Pan by accident?" msgstr "" "Versi data yang tak disokong bagi pengepala %s: %d.\n" "Adakah anda menjalankan versi lama Pan secara tidak sengaja?" #: ../pan/data-impl/headers.cc:628 #, fuzzy, c-format msgid "Loaded %lu articles for \"%s\" in %.1f seconds (%.0f per second)" msgstr "" "Memuatkan artikel %u bagi kumpulan \"%s\" dalam %.1f saat (%.0f art/saat)" #: ../pan/data-impl/headers.cc:857 #, fuzzy, c-format msgid "" "Saved %lu parts, %lu articles in \"%s\" in %.1f seconds (%.0f articles/sec)" msgstr "Menyimpan artikel %d dalam \"%s\" dalam %.1f saat (%.0f art/saat)" #: ../pan/data-impl/headers.cc:1173 #, fuzzy, c-format msgid "Added %lu articles to %s." msgstr "Artikel %u telah tamat tempoh dari `%s'" #: ../pan/data-impl/server.cc:234 #, c-format msgid "There seems to be no Password set for Server %s." msgstr "" #: ../pan/data-impl/server.cc:238 msgid "The Gnome keyring denied access to the Passwords." msgstr "" #: ../pan/data-impl/xover.cc:239 #, fuzzy, c-format msgid "Error reading from %s: unknown group \"%s\"" msgstr "Ralat membaca dari soket: %s" #. build the locale strings #: ../pan/general/e-util.cc:213 msgid "%l:%M %p" msgstr "" #: ../pan/general/e-util.cc:214 msgid "Today %l:%M %p" msgstr "" #: ../pan/general/e-util.cc:215 msgid "%a %l:%M %p" msgstr "" #: ../pan/general/e-util.cc:216 msgid "%b %d %l:%M %p" msgstr "" #: ../pan/general/e-util.cc:217 msgid "%b %d %Y" msgstr "" #: ../pan/general/e-util.cc:242 msgid "?" msgstr "" #: ../pan/general/text-match.cc:193 #, c-format msgid "Can't use regular expression \"%s\": %s" msgstr "Tidak boleh menggunakan ungkapan biasa \"%s\": %s" #: ../pan/general/utf8-utils.cc:213 msgid "Couldn't determine article encoding. Non-UTF8 characters were removed." msgstr "" #: ../pan/gui/actions.cc:274 ../pan/gui/post-ui.cc:417 #, fuzzy msgid "_File" msgstr "/_Fail" #: ../pan/gui/actions.cc:275 ../pan/gui/post-ui.cc:418 #, fuzzy msgid "_Edit" msgstr "/_Edit" #: ../pan/gui/actions.cc:276 ../pan/gui/prefs-ui.cc:1064 #, fuzzy msgid "_Layout" msgstr "_Bentangan Anak Tetingkap" #: ../pan/gui/actions.cc:277 #, fuzzy msgid "_Group Pane" msgstr "Kumpulan Anak Tetingkap" #: ../pan/gui/actions.cc:278 #, fuzzy msgid "_Header Pane" msgstr "Anak Tetingkap Pengepala" #: ../pan/gui/actions.cc:279 #, fuzzy msgid "_Body Pane" msgstr "Anak Tetingkap Badan" #: ../pan/gui/actions.cc:280 #, fuzzy msgid "_View" msgstr "/_Lihat" #: ../pan/gui/actions.cc:281 #, fuzzy msgid "Filte_r" msgstr "/Penapi_s" #: ../pan/gui/actions.cc:282 #, fuzzy msgid "_Go" msgstr "/_Pergi" #: ../pan/gui/actions.cc:283 ../pan/gui/prefs-ui.cc:1091 #, fuzzy msgid "_Actions" msgstr "Tindakan" #: ../pan/gui/actions.cc:284 #, fuzzy msgid "_Articles" msgstr "/_Artikel" #: ../pan/gui/actions.cc:285 #, fuzzy msgid "G_roups" msgstr "Kumpulan" #: ../pan/gui/actions.cc:286 ../pan/gui/actions.cc:287 msgid "_Post" msgstr "_Pos" #: ../pan/gui/actions.cc:288 msgid "_Help" msgstr "_Bantuan" #: ../pan/gui/actions.cc:291 #, fuzzy msgid "_Read Group" msgstr "/Hapu_skan Kumpulan " #: ../pan/gui/actions.cc:292 #, fuzzy msgid "Read Group" msgstr "/Hapu_skan Kumpulan " #: ../pan/gui/actions.cc:296 #, fuzzy msgid "_Mark Selected Groups Read" msgstr "/Tandakan _Bacaan Kumpulan" #: ../pan/gui/actions.cc:297 #, fuzzy msgid "Mark Selected Groups Read" msgstr "/Tandakan _Bacaan Kumpulan" #: ../pan/gui/actions.cc:301 #, fuzzy msgid "_Delete Selected Groups' Articles" msgstr "/_Hapuskan Artikel Kumpulan" #: ../pan/gui/actions.cc:302 #, fuzzy msgid "Delete Selected Groups' Articles" msgstr "/_Hapuskan Artikel Kumpulan" #: ../pan/gui/actions.cc:306 #, fuzzy msgid "Get New _Headers in Selected Groups" msgstr "Dapatkan Pengepala Baru dalam Kumpulan yang Dipilih" #: ../pan/gui/actions.cc:307 #, fuzzy msgid "Get New Headers in Selected Groups" msgstr "Dapatkan Pengepala Baru dalam Kumpulan yang Dipilih" #: ../pan/gui/actions.cc:311 ../pan/gui/actions.cc:316 #, fuzzy msgid "Get New _Headers in Subscribed Groups" msgstr "Dapatkan Pengepala Baru dalam Kumpulan Terlanggan" #: ../pan/gui/actions.cc:312 ../pan/gui/actions.cc:317 #, fuzzy msgid "Get New Headers in Subscribed Groups" msgstr "Dapatkan Pengepala Baru dalam Kumpulan Terlanggan" #: ../pan/gui/actions.cc:321 #, fuzzy msgid "Get _Headers..." msgstr "/Dapatkan _Pengepala Baru" #: ../pan/gui/actions.cc:322 #, fuzzy msgid "Get Headers..." msgstr "/Dapatkan _Pengepala Baru" #: ../pan/gui/actions.cc:326 ../pan/gui/actions.cc:327 #, fuzzy msgid "Refresh Group List" msgstr "Memuatkan semula kumpulan \"%s\"" #: ../pan/gui/actions.cc:331 #, fuzzy msgid "_Subscribe" msgstr "/_Langgan" #: ../pan/gui/actions.cc:332 #, fuzzy msgid "Subscribe" msgstr "/_Langgan" #: ../pan/gui/actions.cc:336 #, fuzzy msgid "_Unsubscribe" msgstr "/_Tidak melanggan" #: ../pan/gui/actions.cc:337 #, fuzzy msgid "Unsubscribe" msgstr "/_Tidak melanggan" #: ../pan/gui/actions.cc:341 #, fuzzy msgid "_Save Articles..." msgstr "/_Simpan Lampiran Sebagai" #: ../pan/gui/actions.cc:342 #, fuzzy msgid "Save Articles..." msgstr "/_Simpan Lampiran Sebagai" #: ../pan/gui/actions.cc:346 #, fuzzy msgid "Save Articles from Selected _NZB..." msgstr "/_Simpan Lampiran Sebagai" #: ../pan/gui/actions.cc:347 #, fuzzy msgid "Save Articles from Selected NZB" msgstr "Simpan Lampiran" #: ../pan/gui/actions.cc:351 #, fuzzy msgid "Save Articles to an NZB _File..." msgstr "/_Simpan Lampiran Sebagai" #: ../pan/gui/actions.cc:352 #, fuzzy msgid "Save Articles to an NZB File" msgstr "Menyimpan log ke fail" #: ../pan/gui/actions.cc:356 ../pan/gui/actions.cc:357 #, fuzzy msgid "Print" msgstr "Pan: Cetak" #: ../pan/gui/actions.cc:361 msgid "_Import NZB Files..." msgstr "" #: ../pan/gui/actions.cc:366 #, fuzzy msgid "_Cancel Last Task" msgstr "Batalkan Tugas Akhir" #: ../pan/gui/actions.cc:371 #, fuzzy msgid "_Task Manager" msgstr "/_Alat/_Pengurus tugas..." #: ../pan/gui/actions.cc:376 #, fuzzy msgid "_Event Log" msgstr "Buka Log Status" #: ../pan/gui/actions.cc:381 #, fuzzy msgid "_Quit" msgstr "/_Edit" #: ../pan/gui/actions.cc:386 #, fuzzy msgid "Select _All Articles" msgstr "/_Edit/Pilih semua _Artikel" #: ../pan/gui/actions.cc:391 #, fuzzy msgid "_Deselect All Articles" msgstr "/_Edit/Nyahpilih s_emua Artikel" #: ../pan/gui/actions.cc:396 #, fuzzy msgid "Add Su_bthreads to Selection" msgstr "/_Edit/Tambahkan _Subbebenang ke Pemilihan" #: ../pan/gui/actions.cc:401 #, fuzzy msgid "Add _Threads to Selection" msgstr "/_Edit/Tambahkan _Bebenang ke Pemilihan" #: ../pan/gui/actions.cc:406 #, fuzzy msgid "Add _Similar Articles to Selection" msgstr "/_Edit/Tambahkan _Bebenang ke Pemilihan" #: ../pan/gui/actions.cc:411 #, fuzzy msgid "Select Article _Body" msgstr "/_Edit/Pilih _Badan Artikel" #: ../pan/gui/actions.cc:416 #, fuzzy msgid "Edit _Preferences" msgstr "/_Edit/_Keutamaan" #: ../pan/gui/actions.cc:421 #, fuzzy msgid "Edit Selected _Group's Preferences" msgstr "/_Edit/_Keutamaan" #: ../pan/gui/actions.cc:426 ../pan/gui/post-ui.cc:434 #, fuzzy msgid "Edit P_osting Profiles" msgstr "/_Alat/_Mengepos Profil..." #: ../pan/gui/actions.cc:431 #, fuzzy msgid "Edit _News Servers" msgstr "/_Alat/Pelayan _Berita..." #: ../pan/gui/actions.cc:436 #, fuzzy msgid "Jump to _Group Tab" msgstr "/_Lihat/Beralih ke _Tab Kumpulan" #: ../pan/gui/actions.cc:441 #, fuzzy msgid "Jump to _Header Tab" msgstr "/_Lihat/Beralih ke _Tab Pengepala" #: ../pan/gui/actions.cc:446 #, fuzzy msgid "Jump to _Body Tab" msgstr "/_Lihat/Beralih ke _Tab Badan" #: ../pan/gui/actions.cc:451 #, fuzzy msgid "_Rot13 Selected Text" msgstr "Rot13 Tek yang Dipilih" #: ../pan/gui/actions.cc:456 #, fuzzy msgid "Clear _Header Pane" msgstr "Anak Tetingkap Pengepala" #: ../pan/gui/actions.cc:461 #, fuzzy msgid "Clear _Body Pane" msgstr "Anak Tetingkap Badan" #: ../pan/gui/actions.cc:466 #, fuzzy msgid "Cache Article" msgstr "Membatalkan artikel" #: ../pan/gui/actions.cc:471 #, fuzzy msgid "Read Article" msgstr "Membuat sampel artikel %d" #: ../pan/gui/actions.cc:476 #, fuzzy msgid "Show Article Information" msgstr "Maklumat Profil" #: ../pan/gui/actions.cc:481 #, fuzzy msgid "Read _More" msgstr "Baca Lagi" #: ../pan/gui/actions.cc:482 msgid "Read More" msgstr "Baca Lagi" #: ../pan/gui/actions.cc:486 msgid "Read _Back" msgstr "" #: ../pan/gui/actions.cc:487 #, fuzzy msgid "Read Back" msgstr "/_Pergi/Baca Semula" #: ../pan/gui/actions.cc:491 #, fuzzy msgid "Next _Unread Group" msgstr "/_Pergi/Kumpulan Belum Dibaca Seterusnya" #: ../pan/gui/actions.cc:496 #, fuzzy msgid "Next _Group" msgstr "/_Pergi/Kumpulan Seterusnya" #: ../pan/gui/actions.cc:501 #, fuzzy msgid "Next _Unread Article" msgstr "/_Pergi/Artikel _Belum Dibaca Seterusnya" #: ../pan/gui/actions.cc:502 #, fuzzy msgid "Next Unread Article" msgstr "Baca Artikel Seterusnya yang Belum Dibaca" #: ../pan/gui/actions.cc:506 #, fuzzy msgid "Next _Article" msgstr "/_Pergi/_Artikel Seterusnya" #: ../pan/gui/actions.cc:507 #, fuzzy msgid "Next Article" msgstr "/_Pergi/_Artikel Seterusnya" #: ../pan/gui/actions.cc:511 #, fuzzy msgid "Next _Watched Article" msgstr "/_Pergi/Artikel Yang _Diperhatikan Seterusnya" #: ../pan/gui/actions.cc:516 #, fuzzy msgid "Next Unread _Thread" msgstr "/_Pergi/_Bebenang Belum Dibaca Seterusnya" #: ../pan/gui/actions.cc:517 #, fuzzy msgid "Next Unread Thread" msgstr "Baca Bebenang Seterusnya yang Belum Dibaca" #: ../pan/gui/actions.cc:521 #, fuzzy msgid "Next Threa_d" msgstr "/_Pergi/Bebenang Seterus_nya" #: ../pan/gui/actions.cc:526 #, fuzzy msgid "Pre_vious Article" msgstr "/_Pergi/Artikel Sebelumnya" #: ../pan/gui/actions.cc:531 #, fuzzy msgid "Previous _Thread" msgstr "/_Pergi/Bebenang Sebelumnya" #: ../pan/gui/actions.cc:536 #, fuzzy msgid "_Parent Article" msgstr "/_Pergi/Artikel Ibu" #: ../pan/gui/actions.cc:541 #, fuzzy msgid "Ignore _Author" msgstr "/_Abaikan Bebenang" #: ../pan/gui/actions.cc:545 #, fuzzy msgid "_Watch Thread" msgstr "/_Perhatikan Bebenang" #: ../pan/gui/actions.cc:550 #, fuzzy msgid "_Ignore Thread" msgstr "/_Abaikan Bebenang" #: ../pan/gui/actions.cc:555 ../pan/gui/actions.cc:556 #, fuzzy msgid "_Toggle Flag On/Off for Thread" msgstr "/_Perhatikan Bebenang" #: ../pan/gui/actions.cc:560 ../pan/gui/actions.cc:561 #, fuzzy msgid "_Turn Flag Off for Thread" msgstr "/_Perhatikan Bebenang" #: ../pan/gui/actions.cc:565 ../pan/gui/actions.cc:566 #, fuzzy msgid "_Select All Flagged Threads" msgstr "/_Pergi/Bebenang B_aru Seterus_nya" #: ../pan/gui/actions.cc:570 ../pan/gui/actions.cc:571 #, fuzzy msgid "_Go to Next Flagged Thread" msgstr "/_Pergi/Bebenang B_aru Seterus_nya" #: ../pan/gui/actions.cc:575 ../pan/gui/actions.cc:576 #, fuzzy msgid "_Go to Last Flagged Thread" msgstr "/_Pergi/Bebenang B_aru Seterus_nya" #: ../pan/gui/actions.cc:580 ../pan/gui/actions.cc:581 #, fuzzy msgid "_Invert Selection" msgstr "Songsangkan baris yang dipilih" #: ../pan/gui/actions.cc:585 #, fuzzy msgid "Edit Article's Watch/Ignore/Score..." msgstr "/_Artikel/_Wujudkan Skor..." #: ../pan/gui/actions.cc:590 #, fuzzy msgid "Add a _Scoring Rule..." msgstr "Tambahkan skor baru" #: ../pan/gui/actions.cc:595 #, fuzzy msgid "Cance_l Article..." msgstr "Membatalkan artikel" #: ../pan/gui/actions.cc:600 #, fuzzy msgid "_Supersede Article..." msgstr "/_Fail/_Cetak Artikel..." #: ../pan/gui/actions.cc:605 #, fuzzy msgid "_Delete Article" msgstr "_Hapuskan artikel" #: ../pan/gui/actions.cc:610 #, fuzzy msgid "Clear Article Cache" msgstr "Cache Artikel" #: ../pan/gui/actions.cc:615 #, fuzzy msgid "_Mark Article as Read" msgstr "Artikel perlu dibaca" #: ../pan/gui/actions.cc:620 #, fuzzy msgid "Mark Article as _Unread" msgstr "Artikel belum dibaca" #: ../pan/gui/actions.cc:626 #, fuzzy msgid "_Mark Thread as Read" msgstr "Artikel perlu dibaca" #: ../pan/gui/actions.cc:631 #, fuzzy msgid "Mark Thread as _Unread" msgstr "Artikel belum dibaca" #: ../pan/gui/actions.cc:636 #, fuzzy msgid "_Post to Newsgroup" msgstr "Pos ke Kumpulan berita" #: ../pan/gui/actions.cc:637 msgid "Post to Newsgroup" msgstr "Pos ke Kumpulan berita" #: ../pan/gui/actions.cc:641 #, fuzzy msgid "_Followup to Newsgroup" msgstr "/_Pos/_Susulan ke Kumpulan berita..." #: ../pan/gui/actions.cc:642 #, fuzzy msgid "Followup to Newsgroup" msgstr "/_Pos/_Susulan ke Kumpulan berita..." #: ../pan/gui/actions.cc:646 #, fuzzy msgid "_Reply to Author in Mail" msgstr "/_Artikel/_Masukkan Pengarang" #: ../pan/gui/actions.cc:651 #, fuzzy msgid "_Pan Home Page" msgstr "/_Bantuan/Laman Web _Pan..." #: ../pan/gui/actions.cc:656 #, fuzzy msgid "Give _Feedback or Report a Bug..." msgstr "/_Bantuan/Melaporkan tentang _Pepijat..." #: ../pan/gui/actions.cc:661 msgid "_Tip Jar..." msgstr "" #: ../pan/gui/actions.cc:666 #, fuzzy msgid "_About" msgstr "Tentang" #: ../pan/gui/actions.cc:671 msgid "Edit _SSL Certificates" msgstr "" #: ../pan/gui/actions.cc:685 #, fuzzy msgid "_Thread Headers" msgstr "Lagi Pengepala" #: ../pan/gui/actions.cc:686 #, fuzzy msgid "_Wrap Article Body" msgstr "/_Lihat/Lipat Badan Artikel" #: ../pan/gui/actions.cc:687 #, fuzzy msgid "Mute _Quoted Text" msgstr "/_Lihat/Bisukan _Teks yang Dipetik" #: ../pan/gui/actions.cc:688 #, fuzzy msgid "Show All _Headers in Body Pane" msgstr "/_Lihat/Tunjukkan Semua _Pengepala dalam Anak Tetingkap Badan" #: ../pan/gui/actions.cc:689 #, fuzzy msgid "Show _Smilies as Graphics" msgstr "Tunjukkan per_ingatan" #: ../pan/gui/actions.cc:690 msgid "Show *Bold*, __Underlined__, and /Italic/" msgstr "" #: ../pan/gui/actions.cc:691 msgid "Size Pictures to _Fit" msgstr "" #: ../pan/gui/actions.cc:692 #, fuzzy msgid "Use _Monospace Font" msgstr "Fon Monospac_e:" #: ../pan/gui/actions.cc:693 msgid "Set Focus to Images" msgstr "" #: ../pan/gui/actions.cc:694 msgid "Highlight _URLs" msgstr "" #: ../pan/gui/actions.cc:697 #, fuzzy msgid "_Work Online" msgstr "/_Fail/Kerja Dalam_Talian" #: ../pan/gui/actions.cc:698 #, fuzzy msgid "_Tabbed Layout" msgstr "/_Lihat/_Bentangan Ditab" #: ../pan/gui/actions.cc:699 #, fuzzy msgid "Show Group _Pane" msgstr "/_Lihat/Tunjukkan _Anak Tetingkap Kumpulan" #: ../pan/gui/actions.cc:700 #, fuzzy msgid "Show Hea_der Pane" msgstr "/_Lihat/Tunjukkan Anak Tetingkap Pe_ngepala" #: ../pan/gui/actions.cc:701 #, fuzzy msgid "Show Bod_y Pane" msgstr "/_Lihat/Tunjukkan Anak Tetingkap Ba_dan" #: ../pan/gui/actions.cc:702 msgid "Show _Toolbar" msgstr "" #: ../pan/gui/actions.cc:703 #, fuzzy msgid "Abbreviate Group Names" msgstr "/_Lihat/Ringkaskan _Nama dalam Anak Tetingkap Kumpulan" #: ../pan/gui/actions.cc:705 #, fuzzy msgid "Match Only _Unread Articles" msgstr "Padankan Artikel Baru Sahaja" #: ../pan/gui/actions.cc:705 #, fuzzy msgid "Match Only Unread Articles" msgstr "Padankan Artikel Baru Sahaja" #: ../pan/gui/actions.cc:706 #, fuzzy msgid "Match Only _Cached Articles" msgstr "Padankan Artikel Cache Sahaja" #: ../pan/gui/actions.cc:706 #, fuzzy msgid "Match Only Cached Articles" msgstr "Padankan Artikel Cache Sahaja" #: ../pan/gui/actions.cc:707 #, fuzzy msgid "Match Only _Complete Articles" msgstr "Padankan Lampiran Lengkap Sahaja" #: ../pan/gui/actions.cc:707 #, fuzzy msgid "Match Only Complete Articles" msgstr "Padankan Lampiran Lengkap Sahaja" #: ../pan/gui/actions.cc:708 #, fuzzy msgid "Match Only _My Articles" msgstr "Padankan Artikel Saya Sahaja" #: ../pan/gui/actions.cc:708 #, fuzzy msgid "Match Only My Articles" msgstr "Padankan Artikel Saya Sahaja" #: ../pan/gui/actions.cc:709 #, fuzzy msgid "Match Only _Watched Articles" msgstr "Padankan Artikel Yang Diperhatikan Sahaja" #: ../pan/gui/actions.cc:709 msgid "Match Only Watched Articles" msgstr "Padankan Artikel Yang Diperhatikan Sahaja" #: ../pan/gui/actions.cc:711 #, fuzzy msgid "Match Scores of 9999 (_Watched)" msgstr "/Penapi_s/Padankan Skor 9999 (Diperhatikan)" #: ../pan/gui/actions.cc:712 #, fuzzy msgid "Match Scores of 5000...9998 (_High)" msgstr "/Penapi_s/Padankan Skor dalam 5000...9998 (Tinggi)" #: ../pan/gui/actions.cc:713 #, fuzzy msgid "Match Scores of 1...4999 (Me_dium)" msgstr "/Penapi_s/Padankan Skor dalam 1...4999 (Medium)" #: ../pan/gui/actions.cc:714 #, fuzzy msgid "Match Scores of 0 (_Normal)" msgstr "/Penapi_s/Padankan Skor 0 (Normal)" #: ../pan/gui/actions.cc:715 #, fuzzy msgid "Match Scores of -9998...-1 (_Low)" msgstr "/Penapi_s/Padankan Skor dalam -9998...-1 (Rendah)" #: ../pan/gui/actions.cc:716 #, fuzzy msgid "Match Scores of -9999 (_Ignored)" msgstr "/Penapi_s/Padankan Skor -9999 (Diabaikan)" #: ../pan/gui/actions.cc:718 msgid "Enable/Disable All _Rules" msgstr "" #: ../pan/gui/actions.cc:744 #, fuzzy msgid "Show Matching _Articles" msgstr "/Penapi_s/Tunjukkan Artikel yang Sepadan" #: ../pan/gui/actions.cc:745 #, fuzzy msgid "Show Matching Articles' _Threads" msgstr "/Penapi_s/Tunjukkan Artikel yang Sepadan' Bebenang" #: ../pan/gui/actions.cc:746 #, fuzzy msgid "Show Matching Articles' _Subthreads" msgstr "/Penapi_s/Tunjukkan Artikel yang Sepadan' Subbebenang" #: ../pan/gui/body-pane.cc:1011 #, fuzzy, c-format msgid "Unnamed File" msgstr "Pilih Fail Tandatangan" #: ../pan/gui/body-pane.cc:1092 ../pan/gui/gui.cc:1864 #: ../pan/gui/header-pane.cc:1188 ../pan/gui/header-pane.cc:1617 #: ../pan/gui/post-ui.cc:2496 ../pan/gui/prefs-ui.cc:833 #: ../pan/gui/score-add-ui.cc:139 msgid "Subject" msgstr "Subjek" #: ../pan/gui/body-pane.cc:1094 ../pan/gui/gui.cc:1864 #, fuzzy msgid "From" msgstr "Dari" #: ../pan/gui/body-pane.cc:1096 ../pan/gui/gui.cc:1865 #: ../pan/gui/header-pane.cc:1695 ../pan/gui/log-ui.cc:305 #: ../pan/gui/prefs-ui.cc:829 msgid "Date" msgstr "Tarikh" #: ../pan/gui/body-pane.cc:1103 msgid "Newsgroups" msgstr "Kumpulan berita" #: ../pan/gui/body-pane.cc:1108 #, fuzzy msgid "Followup-To" msgstr "Susulan Ke" #: ../pan/gui/body-pane.cc:1118 msgid "Reply-To" msgstr "Balasan Kepada" #: ../pan/gui/body-pane.cc:1160 msgid " from " msgstr "" #: ../pan/gui/body-pane.cc:1162 msgid " at " msgstr "" #: ../pan/gui/body-pane.cc:1264 #, c-format msgid "" "This is a PGP-Signed message.\n" "\n" "Signer : %s ('%s')\n" "Valid until : %s\n" "Created on : %s" msgstr "" #: ../pan/gui/body-pane.cc:1269 msgid "always" msgstr "" #: ../pan/gui/body-pane.cc:1485 msgid "Copy _URL" msgstr "" #: ../pan/gui/body-pane.cc:1680 #, fuzzy msgid "Save attachment as ...." msgstr "Simpan Lampiran Sebagai" #: ../pan/gui/body-pane.cc:1683 #, fuzzy msgid "Save all attachments" msgstr "Simpan Lampiran" #. add a toolbar for attachments #: ../pan/gui/body-pane.cc:1753 msgid "Attachments" msgstr "Lampiran" #. update the titlebar #: ../pan/gui/dl-headers-ui.cc:106 ../pan/gui/gui.cc:973 #: ../pan/gui/gui.cc:1592 ../pan/gui/gui.cc:1893 #: ../pan/gui/score-add-ui.cc:602 msgid "Pan" msgstr "" #: ../pan/gui/dl-headers-ui.cc:112 #, fuzzy, c-format msgid "%d Group" msgid_plural "%d Groups" msgstr[0] "Kumpulan" msgstr[1] "Kumpulan" #: ../pan/gui/dl-headers-ui.cc:135 #, fuzzy msgid "Get the last N _days' headers: " msgstr "Memuatturunkan pengepala _terbaru" #: ../pan/gui/dl-headers-ui.cc:143 #, fuzzy msgid "Get _new headers" msgstr "/Dapatkan _Pengepala Baru" #: ../pan/gui/dl-headers-ui.cc:147 #, fuzzy msgid "Get _all headers" msgstr "Memuatturunkan _semua pengepala" #: ../pan/gui/dl-headers-ui.cc:151 #, fuzzy msgid "Get the _latest N headers: " msgstr "Memuatturunkan pengepala _terbaru" #: ../pan/gui/e-action-combo-box.c:388 ../pan/gui/prefs-ui.cc:826 #, fuzzy msgid "Action" msgstr "Tindakan" #: ../pan/gui/e-action-combo-box.c:389 msgid "A GtkRadioAction" msgstr "" #: ../pan/gui/e-charset.c:51 ../pan/gui/task-pane.cc:518 msgid "Unknown" msgstr "Tak Diketahui" #: ../pan/gui/e-charset.c:52 msgid "Arabic" msgstr "" #: ../pan/gui/e-charset.c:53 msgid "Baltic" msgstr "Baltik" #: ../pan/gui/e-charset.c:54 msgid "Central European" msgstr "Eropah Tengah" #: ../pan/gui/e-charset.c:55 #, fuzzy msgid "Chinese" msgstr "Garis" #: ../pan/gui/e-charset.c:56 msgid "Cyrillic" msgstr "Siril" #: ../pan/gui/e-charset.c:57 msgid "Greek" msgstr "Greek" #: ../pan/gui/e-charset.c:58 msgid "Hebrew" msgstr "" #: ../pan/gui/e-charset.c:59 msgid "Japanese" msgstr "Jepun" #: ../pan/gui/e-charset.c:60 msgid "Korean" msgstr "Korea" #: ../pan/gui/e-charset.c:61 msgid "Thai" msgstr "" #: ../pan/gui/e-charset.c:62 msgid "Turkish" msgstr "Turki" #: ../pan/gui/e-charset.c:63 #, fuzzy msgid "Unicode" msgstr "Unikod, UTF-8" #: ../pan/gui/e-charset.c:64 #, fuzzy msgid "Western European" msgstr "Eropah Tengah" #: ../pan/gui/e-charset.c:65 #, fuzzy msgid "Western European, New" msgstr "Barat, Baru" #: ../pan/gui/e-charset.c:84 ../pan/gui/e-charset.c:85 #: ../pan/gui/e-charset.c:86 #, fuzzy msgid "Traditional" msgstr "Bahasa Cina Tradisional" #: ../pan/gui/e-charset.c:87 ../pan/gui/e-charset.c:88 #: ../pan/gui/e-charset.c:89 ../pan/gui/e-charset.c:90 #, fuzzy msgid "Simplified" msgstr "Bahasa Cina Mudah" #: ../pan/gui/e-charset.c:93 #, fuzzy msgid "Ukrainian" msgstr "Siril, Ukraine" #: ../pan/gui/e-charset.c:96 msgid "Visual" msgstr "" #: ../pan/gui/e-charset-combo-box.c:93 ../pan/gui/gui.cc:2058 #: ../pan/gui/post-ui.cc:519 ../pan/gui/prefs-ui.cc:737 #, fuzzy msgid "Character Encoding" msgstr "S_et Aksara:" #: ../pan/gui/e-charset-combo-box.c:117 msgid "Enter the character set to use" msgstr "" #: ../pan/gui/e-charset-combo-box.c:336 msgid "Other..." msgstr "" #: ../pan/gui/e-cte-dialog.c:78 #, fuzzy msgid "Default encoding" msgstr "Menyahkod \"%s\"" #: ../pan/gui/e-cte-dialog.c:80 #, fuzzy msgid "7Bit Encoding" msgstr "S_et Aksara:" #: ../pan/gui/e-cte-dialog.c:82 #, fuzzy msgid "8Bit Encoding" msgstr "S_et Aksara:" #: ../pan/gui/e-cte-dialog.c:84 #, fuzzy msgid "BASE64 Encoding" msgstr "S_et Aksara:" #: ../pan/gui/e-cte-dialog.c:86 #, fuzzy msgid "Quoted-Printable Encoding" msgstr "Anak Tetingkap Bada_n" #: ../pan/gui/group-pane.cc:500 msgid "Group" msgstr "Kumpulan" #: ../pan/gui/group-pane.cc:501 #, fuzzy msgid "Group (regex)" msgstr "Ciri Kumpulan" #: ../pan/gui/group-pane.cc:913 #, fuzzy msgid "Subscribed Groups" msgstr "Kumpulan berita yang Dilanggan" #: ../pan/gui/group-pane.cc:914 #, fuzzy msgid "Other Groups" msgstr "Kumpulan Baru" #: ../pan/gui/group-pane.cc:954 ../pan/gui/score-view-ui.cc:157 #, fuzzy msgid "Name" msgstr "_Nama:" #: ../pan/gui/group-prefs-dialog.cc:156 #, fuzzy msgid "No Profiles defined in Edit|Posting Profiles." msgstr "/_Alat/_Mengepos Profil..." #: ../pan/gui/group-prefs-dialog.cc:231 #, fuzzy msgid "Pan: Group Preferences" msgstr "Keutamaan Pan" #: ../pan/gui/group-prefs-dialog.cc:247 #, fuzzy, c-format msgid "Properties for Groups" msgstr "Ciri bagi \"%s\"" #: ../pan/gui/group-prefs-dialog.cc:249 #, fuzzy, c-format msgid "Properties for %s" msgstr "Ciri bagi \"%s\"" #: ../pan/gui/group-prefs-dialog.cc:257 #, fuzzy msgid "Character _encoding:" msgstr "S_et Aksara:" #: ../pan/gui/group-prefs-dialog.cc:259 #, fuzzy msgid "Directory for Saving Attachments" msgstr "Direktori untuk menyimpan lampiran" #: ../pan/gui/group-prefs-dialog.cc:269 #, fuzzy msgid "Directory for _saving attachments:" msgstr "Direktori untuk menyimpan lampiran" #: ../pan/gui/group-prefs-dialog.cc:271 #, fuzzy msgid "Posting _profile:" msgstr "Pan: Profil" #: ../pan/gui/group-prefs-dialog.cc:277 msgid "Spellchecker _language:" msgstr "" #: ../pan/gui/gui.cc:273 msgid "Open the Task Manager" msgstr "Buka Pengurus Tugas" #: ../pan/gui/gui.cc:301 #, fuzzy msgid "Open the Event Log" msgstr "Buka Log Status" #: ../pan/gui/gui.cc:561 msgid "Save NZB's Files" msgstr "" #: ../pan/gui/gui.cc:588 msgid "Untitled.nzb" msgstr "" #: ../pan/gui/gui.cc:590 #, fuzzy msgid "Save NZB File as..." msgstr "/_Simpan Lampiran Sebagai" #: ../pan/gui/gui.cc:757 msgid "Import NZB Files" msgstr "" #: ../pan/gui/gui.cc:765 ../pan/gui/post-ui.cc:3197 #, fuzzy msgid "NZB Files" msgstr "Fail" #: ../pan/gui/gui.cc:770 #, fuzzy msgid "All Files" msgstr "Fail" #: ../pan/gui/gui.cc:1258 #, fuzzy msgid "Unable to supersede article." msgstr "/_Fail/_Cetak Artikel..." #: ../pan/gui/gui.cc:1259 ../pan/gui/gui.cc:1333 msgid "The article doesn't match any of your posting profiles." msgstr "" #: ../pan/gui/gui.cc:1306 msgid "Revise and send this article to replace the old one." msgstr "" #: ../pan/gui/gui.cc:1307 ../pan/gui/gui.cc:1370 msgid "Be patient! It will take time for your changes to take effect." msgstr "" #: ../pan/gui/gui.cc:1332 #, fuzzy msgid "Unable to cancel article." msgstr "Tidak dapat mewujudkan bebenang: %s" #: ../pan/gui/gui.cc:1369 msgid "Send this article to ask your server to cancel your other one." msgstr "" #: ../pan/gui/gui.cc:1387 msgid "You marked some articles for deletion" msgstr "" #: ../pan/gui/gui.cc:1388 #, fuzzy msgid "Are you sure you want to delete them?" msgstr "" "Adakah anda pasti anda ingin menghapuskan %d kumpulan/folder ini dan " "artikelnya?" #: ../pan/gui/gui.cc:1413 #, fuzzy msgid "Always trust" msgstr "Editor" #: ../pan/gui/gui.cc:1416 msgid "Do you want to accept it permanently (deletable afterwards) ?" msgstr "" #: ../pan/gui/gui.cc:1595 #, fuzzy msgid "Copyright \\u00A9 2002-2012 Charles Kerr and others" msgstr "Hak cipta (C) 2003 Charles Kerr" #: ../pan/gui/gui.cc:1600 msgid "translator-credits" msgstr "" #: ../pan/gui/gui.cc:1709 #, fuzzy msgid "_1. Group Pane" msgstr "Kumpulan Anak Tetingkap" #: ../pan/gui/gui.cc:1710 #, fuzzy msgid "_2. Header Pane" msgstr "Anak Tetingkap Pengepala" #: ../pan/gui/gui.cc:1711 #, fuzzy msgid "_3. Body Pane" msgstr "Anak Tetingkap Badan" #: ../pan/gui/gui.cc:1800 ../pan/gui/gui.cc:1815 msgid " Bytes" msgstr "" #: ../pan/gui/gui.cc:1803 msgid " KB" msgstr "" #: ../pan/gui/gui.cc:1806 msgid " MB" msgstr "" #: ../pan/gui/gui.cc:1809 msgid " GB" msgstr "" #: ../pan/gui/gui.cc:1812 msgid " TB" msgstr "" #: ../pan/gui/gui.cc:1844 #, fuzzy, c-format msgid "This article is complete with %d part." msgid_plural "This article has all %d parts." msgstr[0] "Artikel tidak mempunyai lampiran" msgstr[1] "Artikel tidak mempunyai lampiran" #: ../pan/gui/gui.cc:1846 #, fuzzy, c-format msgid "This article is missing %d part." msgid_plural "This article is missing %d of its %d parts:" msgstr[0] "Artikel tidak mempunyai lampiran" msgstr[1] "Artikel tidak mempunyai lampiran" #: ../pan/gui/gui.cc:1865 ../pan/gui/header-pane.cc:1190 #, fuzzy msgid "Message-ID" msgstr "_ID Mesej" #: ../pan/gui/gui.cc:1866 ../pan/gui/header-pane.cc:1665 #: ../pan/gui/prefs-ui.cc:830 msgid "Lines" msgstr "Garis" #: ../pan/gui/gui.cc:1866 msgid "Size" msgstr "" #: ../pan/gui/gui.cc:1867 ../pan/gui/header-pane.cc:1680 #: ../pan/gui/prefs-ui.cc:828 msgid "Bytes" msgstr "" #: ../pan/gui/gui.cc:1917 msgid "" "Error loading iconv library. Some Charsets in the GUI will not be able to be " "encoded." msgstr "" #: ../pan/gui/gui.cc:2059 #, fuzzy msgid "Body Pane Encoding" msgstr "Anak Tetingkap Bada_n" #: ../pan/gui/gui.cc:2090 ../pan/gui/task-pane.cc:569 #, c-format msgid "Offline" msgstr "Luar talian" #: ../pan/gui/gui.cc:2094 #, fuzzy, c-format msgid "Closing %d connection" msgid_plural "Closing %d connections" msgstr[0] "Menutup sambungan %d" msgstr[1] "Menutup sambungan %d" #: ../pan/gui/gui.cc:2096 ../pan/gui/gui.cc:2126 #, c-format msgid "No Connections" msgstr "Tiada Sambungan" #: ../pan/gui/gui.cc:2100 #, c-format msgid "Connecting" msgstr "Menyambungkan" #: ../pan/gui/gui.cc:2113 #, c-format msgid "%s: %d idle, %d active @ %.1f KiBps" msgstr "" #: ../pan/gui/gui.cc:2169 #, c-format msgid "No Tasks" msgstr "Tiada Tugas" #: ../pan/gui/gui.cc:2171 ../pan/gui/prefs-ui.cc:1047 msgid "Tasks" msgstr "Tugas" #: ../pan/gui/gui.cc:2182 ../pan/gui/task-pane.cc:435 #, c-format msgid "%lu tasks, %s, %.1f KiBps, ETA %d:%02d:%02d" msgstr "" #: ../pan/gui/gui.cc:2234 msgid "" "Pan is now offline. Please see \"File|Event Log\" and correct the problem, " "then use \"File|Work Online\" to continue." msgstr "" #: ../pan/gui/header-pane.cc:1186 msgid "Subject or Author" msgstr "" #: ../pan/gui/header-pane.cc:1187 msgid "Sub or Auth (regex)" msgstr "" #: ../pan/gui/header-pane.cc:1189 ../pan/gui/header-pane.cc:1649 #: ../pan/gui/prefs-ui.cc:827 ../pan/gui/score-add-ui.cc:140 msgid "Author" msgstr "Pengarang" #: ../pan/gui/header-pane.cc:1634 ../pan/gui/prefs-ui.cc:831 msgid "Score" msgstr "Skor" #: ../pan/gui/log-ui.cc:103 msgid "Save Event List" msgstr "" #: ../pan/gui/log-ui.cc:256 #, fuzzy msgid "Pan: Events" msgstr "Pan: Pelayan" #: ../pan/gui/log-ui.cc:315 msgid "Message" msgstr "Mesej" #: ../pan/gui/pan.cc:330 msgid "Maximize" msgstr "" #: ../pan/gui/pan.cc:383 msgid "An Error has occurred!" msgstr "" #: ../pan/gui/pan.cc:397 #, fuzzy msgid "New Articles!" msgstr "/_Pergi/_Artikel Seterusnya" #: ../pan/gui/pan.cc:398 msgid "" "There are new\n" "articles available." msgstr "" #: ../pan/gui/pan.cc:465 msgid "Toggle on/offline" msgstr "" #: ../pan/gui/pan.cc:513 msgid "" "Thank you for trying Pan!\n" " \n" "To start newsreading, first Add a Server." msgstr "" #: ../pan/gui/pan.cc:595 msgid "" "General Options\n" " -h, --help Show this usage page.\n" " --verbose Be verbose (in non-GUI mode).\n" "\n" "URL Options\n" " --no-gui On news:message-id, dump the article to stdout.\n" "\n" "NZB Batch Options\n" " --nzb file1 file2 ... Process nzb files without launching all of Pan.\n" " -o path, --output=path Path to save attachments listed in the nzb " "files.\n" " --no-gui Only show console output, not the download " "queue.\n" msgstr "" #: ../pan/gui/pan.cc:867 msgid "Error: --no-gui used without nzb files or news:message-id." msgstr "" #: ../pan/gui/pan.cc:871 #, fuzzy, c-format msgid "Pan %s started" msgstr "Pan %s Bermula" #: ../pan/gui/pan.cc:890 msgid "Please configure Pan's news servers before using it as an nzb client." msgstr "" #: ../pan/gui/pan.cc:1009 msgid "Pan notification" msgstr "" #: ../pan/gui/post-ui.cc:186 #, c-format msgid "Upload Queue : %ld Tasks, %ld KB (~ %.2f MB) total ." msgstr "" #: ../pan/gui/post-ui.cc:286 #, fuzzy, c-format msgid "Error setting custom spellchecker: %s" msgstr "Ralat menulis dari soket: %s" #: ../pan/gui/post-ui.cc:291 ../pan/gui/post-ui.cc:300 #, fuzzy, c-format msgid "Error setting spellchecker: %s" msgstr "Ralat menulis dari soket: %s" #: ../pan/gui/post-ui.cc:419 #, fuzzy msgid "_Profile" msgstr "Profil" #: ../pan/gui/post-ui.cc:420 #, fuzzy msgid "Set Editor" msgstr "Editor" #: ../pan/gui/post-ui.cc:422 #, fuzzy msgid "_Send Article" msgstr "/_Pergi/Artikel Ibu" #: ../pan/gui/post-ui.cc:422 #, fuzzy msgid "Send Article Now" msgstr "Hantar Sekarang" #: ../pan/gui/post-ui.cc:423 #, fuzzy msgid "_Send and Save Articles to NZB" msgstr "Pan: Simpan Artikel Sebagai" #: ../pan/gui/post-ui.cc:423 #, fuzzy msgid "Send and Save Articles to NZB" msgstr "Pan: Simpan Artikel Sebagai" #: ../pan/gui/post-ui.cc:424 #, fuzzy msgid "Set Character _Encoding..." msgstr "S_et Aksara:" #: ../pan/gui/post-ui.cc:425 #, fuzzy msgid "Set Content _Transfer Encoding..." msgstr "S_et Aksara:" #: ../pan/gui/post-ui.cc:426 #, fuzzy msgid "Sa_ve Draft" msgstr "Menyimpan Artikel" #: ../pan/gui/post-ui.cc:426 msgid "Save as a Draft for Future Posting" msgstr "" #: ../pan/gui/post-ui.cc:427 #, fuzzy msgid "_Open Draft..." msgstr "/_Baca Artikel" #: ../pan/gui/post-ui.cc:427 #, fuzzy msgid "Open an Article Draft" msgstr "/_Baca Artikel" #: ../pan/gui/post-ui.cc:432 #, fuzzy msgid "_Rot13" msgstr "Rot13" #: ../pan/gui/post-ui.cc:432 msgid "Rot13 Selected Text" msgstr "Rot13 Tek yang Dipilih" #: ../pan/gui/post-ui.cc:433 #, fuzzy msgid "Run _Editor" msgstr "Editor" #: ../pan/gui/post-ui.cc:433 #, fuzzy msgid "Run Editor" msgstr "Editor" #: ../pan/gui/post-ui.cc:435 msgid "Add _Files to Queue" msgstr "" #: ../pan/gui/post-ui.cc:435 msgid "Add Files to Queue" msgstr "" #: ../pan/gui/post-ui.cc:450 ../pan/gui/post-ui.cc:451 #, fuzzy msgid "Remove from Queue" msgstr "Pelayan Baru" #: ../pan/gui/post-ui.cc:455 ../pan/gui/post-ui.cc:456 #, fuzzy msgid "Clear List" msgstr "Pilih Penapis:" #: ../pan/gui/post-ui.cc:460 ../pan/gui/post-ui.cc:461 #, fuzzy msgid "Select Needed Parts" msgstr "Pilih Fon" #: ../pan/gui/post-ui.cc:465 ../pan/gui/post-ui.cc:466 #: ../pan/gui/task-pane.cc:636 ../pan/gui/task-pane.cc:637 msgid "Move Up" msgstr "" #: ../pan/gui/post-ui.cc:470 ../pan/gui/post-ui.cc:471 #: ../pan/gui/task-pane.cc:641 ../pan/gui/task-pane.cc:642 msgid "Move Down" msgstr "" #: ../pan/gui/post-ui.cc:475 ../pan/gui/post-ui.cc:476 msgid "Move to Top" msgstr "" #: ../pan/gui/post-ui.cc:480 ../pan/gui/post-ui.cc:481 #, fuzzy msgid "Move to Bottom" msgstr "Alihkan Tugas yang Dipilih Ke bawah" #: ../pan/gui/post-ui.cc:488 #, fuzzy msgid "_Wrap Text" msgstr "Lipat Teks" #: ../pan/gui/post-ui.cc:488 #, fuzzy msgid "Wrap Text" msgstr "Lipat Teks" #: ../pan/gui/post-ui.cc:489 #, fuzzy msgid "Always Run Editor" msgstr "Editor" #: ../pan/gui/post-ui.cc:490 #, fuzzy msgid "Remember Character Encoding for this Group" msgstr "S_et Aksara:" #: ../pan/gui/post-ui.cc:491 msgid "Thread Attached Replies" msgstr "" #: ../pan/gui/post-ui.cc:492 msgid "PGP-Encrypt the Message" msgstr "" #: ../pan/gui/post-ui.cc:493 msgid "PGP-Sign the Message" msgstr "" #: ../pan/gui/post-ui.cc:494 msgid "Check _Spelling" msgstr "" #: ../pan/gui/post-ui.cc:520 #, fuzzy msgid "New Article's Encoding:" msgstr "/_Lihat Skor Artikel" #: ../pan/gui/post-ui.cc:530 #, fuzzy msgid "Content Transfer Encoding" msgstr "S_et Aksara:" #: ../pan/gui/post-ui.cc:531 #, fuzzy msgid "New Article's Content Transfer Encoding:" msgstr "/_Lihat Skor Artikel" #: ../pan/gui/post-ui.cc:711 msgid "Your changes will be lost!" msgstr "" #: ../pan/gui/post-ui.cc:712 msgid "Close this window and lose your changes?" msgstr "" #: ../pan/gui/post-ui.cc:757 ../pan/gui/post-ui.cc:796 msgid "There were problems with this post." msgstr "" #: ../pan/gui/post-ui.cc:759 ../pan/gui/post-ui.cc:798 #: ../pan/gui/post-ui.cc:861 #, fuzzy msgid "Go Back" msgstr "/_Pergi/Baca Semula" #: ../pan/gui/post-ui.cc:761 msgid "Post Anyway" msgstr "" #. Prompt the user #: ../pan/gui/post-ui.cc:790 #, fuzzy, c-format msgid "" "Message uses characters not specified in charset '%s' - possibly use '%s' " msgstr "" "Mesej menggunakan aksara yang tidak ditetapkan dalam set aksara '%s' - " "mungkin menggunakan '%s'?" #: ../pan/gui/post-ui.cc:813 #, fuzzy msgid "Go _Online" msgstr "Dalam talian" #: ../pan/gui/post-ui.cc:860 msgid "The file queue is empty, so no files can be saved." msgstr "" #: ../pan/gui/post-ui.cc:1019 msgid "" "No posting server is set for this posting profile.\n" "Please edit the profile via Edit|Manage Posting Profiles." msgstr "" #: ../pan/gui/post-ui.cc:1054 #, fuzzy msgid "Pan is Offline." msgstr "Pan Luar Talian" #: ../pan/gui/post-ui.cc:1055 msgid "Go online to post the article?" msgstr "" #: ../pan/gui/post-ui.cc:1102 #, c-format msgid "" "Error signing/encrypting your message. Perhaps you misspelled your email-" "address (%s) ?" msgstr "" #: ../pan/gui/post-ui.cc:1267 #, fuzzy msgid "Error opening temporary file" msgstr "Ralat membuka fail sementara: \"%s\"" #: ../pan/gui/post-ui.cc:1279 #, c-format msgid "Error writing article to temporary file: %s" msgstr "Ralat menulis artikel ke fail sementara: %s" #: ../pan/gui/post-ui.cc:1298 #, fuzzy, c-format msgid "Error parsing \"external editor\" command line: %s (Command was: %s)" msgstr "Ralat menghuraikan baris arahan \"editor luaran\": %s" #: ../pan/gui/post-ui.cc:1339 #, c-format msgid "Error starting external editor: %s" msgstr "Ralat memulakan editor luaran: %s" #: ../pan/gui/post-ui.cc:1395 #, fuzzy msgid "Open Draft Article" msgstr "/_Baca Artikel" #: ../pan/gui/post-ui.cc:1606 #, fuzzy msgid "Save Draft Article" msgstr "Menyimpan Artikel" #: ../pan/gui/post-ui.cc:1803 #, fuzzy, c-format msgid "Couldn't parse signature command \"%s\": %s" msgstr "Tidak dapat membaca fail tandatangan \"%s\": %s" #: ../pan/gui/post-ui.cc:1839 #, fuzzy msgid "Couldn't convert signature to UTF-8." msgstr "" "Tidak dapat menukarkan fail tandatangan '%s' ke UTF-8. Tandatangan mestilah " "dalam '%s'" #: ../pan/gui/post-ui.cc:2334 #, fuzzy msgid "F_rom" msgstr "Dari" #: ../pan/gui/post-ui.cc:2352 #, fuzzy msgid "_Subject" msgstr "_Subjek:" #: ../pan/gui/post-ui.cc:2365 #, fuzzy msgid "_Newsgroups" msgstr "/_Kumpulan berita" #: ../pan/gui/post-ui.cc:2379 #, fuzzy msgid "Mail _To" msgstr "Mel Kepada" #: ../pan/gui/post-ui.cc:2481 msgid "Delete from Queue" msgstr "" #: ../pan/gui/post-ui.cc:2494 msgid "No." msgstr "" #: ../pan/gui/post-ui.cc:2498 ../pan/gui/post-ui.cc:2592 #: ../pan/gui/post-ui.cc:2633 msgid "Filename" msgstr "Nama fail" #: ../pan/gui/post-ui.cc:2500 msgid "Size (kB)" msgstr "" #: ../pan/gui/post-ui.cc:2600 msgid "The current filename" msgstr "" #: ../pan/gui/post-ui.cc:2604 #, fuzzy msgid "Subject Line" msgstr "Subjek" #: ../pan/gui/post-ui.cc:2612 msgid "The current Subject Line" msgstr "" #: ../pan/gui/post-ui.cc:2626 msgid "No. " msgstr "" #: ../pan/gui/post-ui.cc:2630 msgid "Enable/Disable" msgstr "" #: ../pan/gui/post-ui.cc:2664 #, fuzzy msgid "Follo_wup-To" msgstr "Susulan Ke" #. i18n: "poster" is a key used by many newsreaders. probably safest to keep this key in english. #: ../pan/gui/post-ui.cc:2673 #, fuzzy msgid "" "The newsgroups where replies to your message should go. This is only needed " "if it differs from the \"Newsgroups\" header.\n" "\n" "To direct all replies to your email address, use \"Followup-To: poster\"" msgstr "" "Kumpulan berita yang membalas mesej anda. Ini diperlukan hanya jika ia " "berbeza daripada pengepala \"Pos Ke Kumpulan\".\n" "Untuk mengarahkan semua balasan ke alamat e-mel anda, gunakan \"Susulan Ke: " "pengepos\"" #: ../pan/gui/post-ui.cc:2679 #, fuzzy msgid "_Reply-To" msgstr "Balasan Kepada" #: ../pan/gui/post-ui.cc:2687 msgid "" "The email account where mail replies to your posted message should go. This " "is only needed if it differs from the \"From\" header." msgstr "" "Akaun e-mel yang digunakan untuk membalas mel bagi mesej yang anda hantar. " "Akaun ini diperlukan hanya jika ia berbeza daripada pengepala \"Daripada\"." #: ../pan/gui/post-ui.cc:2693 #, fuzzy msgid "_Custom Headers" msgstr "Pengepala Biasa" #: ../pan/gui/post-ui.cc:2717 #, fuzzy msgid "Add \"_User-Agent\" header" msgstr "Tambahkan pengepala \"Pengguna-Ejen\"" #: ../pan/gui/post-ui.cc:2724 #, fuzzy msgid "Add \"Message-_Id\" header" msgstr "Tambahkan pengepala \"Id-Mesej\"" #: ../pan/gui/post-ui.cc:2855 #, fuzzy msgid "Select Parts" msgstr "Pilih Fon" #: ../pan/gui/post-ui.cc:2866 msgid "_Parts" msgstr "" #: ../pan/gui/post-ui.cc:3022 #, fuzzy msgid "Post Article" msgstr "Mengisih Artikel" #: ../pan/gui/post-ui.cc:3043 #, fuzzy msgid "_Message" msgstr "Mesej" #: ../pan/gui/post-ui.cc:3044 #, fuzzy msgid "More _Headers" msgstr "Lagi Pengepala" #: ../pan/gui/post-ui.cc:3045 #, fuzzy msgid "File _Queue" msgstr "/_Fail/_Keluar" #: ../pan/gui/post-ui.cc:3077 ../pan/gui/profiles-dialog.cc:478 #, no-c-format msgid "On %d, %n wrote:" msgstr "Pada %d, %n menulis:" #: ../pan/gui/post-ui.cc:3106 msgid "Add files to queue" msgstr "" #: ../pan/gui/post-ui.cc:3184 msgid "Save Upload Queue as NZB File" msgstr "" #: ../pan/gui/prefs.cc:343 #, fuzzy, c-format msgid "Couldn't parse %s color \"%s\"" msgstr "Tidak dapat menghuraikan arahan tandatangan \"%s\"" #: ../pan/gui/prefs-ui.cc:120 msgid "Grab Key" msgstr "" #: ../pan/gui/prefs-ui.cc:126 #, c-format msgid "" "Press the combination of the keys\n" "you want to use for \"%s\"." msgstr "" #: ../pan/gui/prefs-ui.cc:166 #, fuzzy msgid "Edit Hotkey" msgstr "Edit Penapis" #: ../pan/gui/prefs-ui.cc:228 msgid "Error: Shortkey is invalid!" msgstr "" #: ../pan/gui/prefs-ui.cc:244 #, fuzzy msgid "Error: Shortkey already exists!" msgstr "Pelayan dengan nama yang telah wujud." #: ../pan/gui/prefs-ui.cc:535 #, fuzzy msgid "Show only icons" msgstr "Maklumat Profil" #: ../pan/gui/prefs-ui.cc:536 #, fuzzy msgid "Show only text" msgstr "/_Lihat/Tunjukkan Anak Tetingkap Ba_dan" #: ../pan/gui/prefs-ui.cc:537 #, fuzzy msgid "Show icons and text" msgstr "Simpan l_ampiran dalam direktori" #: ../pan/gui/prefs-ui.cc:576 #, fuzzy msgid "Use GNOME Preferences" msgstr "Keutamaan Pan" #: ../pan/gui/prefs-ui.cc:577 #, fuzzy msgid "Use KDE Preferences" msgstr "Rujukan" #: ../pan/gui/prefs-ui.cc:578 #, fuzzy msgid "Use OS X Preferences" msgstr "Rujukan" #: ../pan/gui/prefs-ui.cc:579 #, fuzzy msgid "Use Windows Preferences" msgstr "Keutamaan Pan" #: ../pan/gui/prefs-ui.cc:580 #, fuzzy msgid "Custom Command:" msgstr "Arahan Cetak:" #: ../pan/gui/prefs-ui.cc:632 msgid "Disabled" msgstr "" #: ../pan/gui/prefs-ui.cc:633 msgid "Only new (Score == 0)" msgstr "" #: ../pan/gui/prefs-ui.cc:634 #, fuzzy msgid "9999 or more" msgstr "/Penapi_s/Padankan Skor -9999 (Diabaikan)" #: ../pan/gui/prefs-ui.cc:635 msgid "5000 to 9998" msgstr "" #: ../pan/gui/prefs-ui.cc:636 msgid "1 to 4999" msgstr "" #: ../pan/gui/prefs-ui.cc:637 msgid "-9998 to -1" msgstr "" #: ../pan/gui/prefs-ui.cc:638 #, fuzzy msgid "-9999 or less" msgstr "/Penapi_s/Padankan Skor -9999 (Diabaikan)" #: ../pan/gui/prefs-ui.cc:702 #, c-format msgid "Select default global charset. Current setting : %s ." msgstr "" #: ../pan/gui/prefs-ui.cc:738 msgid "Global Charset Settings" msgstr "" #: ../pan/gui/prefs-ui.cc:832 ../pan/gui/task-pane.cc:770 #, fuzzy msgid "State" msgstr "Status" #: ../pan/gui/prefs-ui.cc:866 msgid "Enabled" msgstr "" #: ../pan/gui/prefs-ui.cc:870 #, fuzzy msgid "Column Name" msgstr "Lajur" #: ../pan/gui/prefs-ui.cc:908 #, fuzzy msgid "Pan: Preferences" msgstr "Keutamaan Pan" #: ../pan/gui/prefs-ui.cc:923 msgid "Mouse" msgstr "Tetikus" #: ../pan/gui/prefs-ui.cc:925 #, fuzzy msgid "Single-click activates, rather than selects, _groups" msgstr "Kli_k sekali memilih, bukan memuatkan, kumpulan" #: ../pan/gui/prefs-ui.cc:927 #, fuzzy msgid "Single-click activates, rather than selects, _articles" msgstr "Klik sekali memilih, bukan memuatkan, pengepa_la" #: ../pan/gui/prefs-ui.cc:930 #, fuzzy msgid "Groups" msgstr "Kumpulan" #: ../pan/gui/prefs-ui.cc:932 #, fuzzy msgid "Get new headers in subscribed groups on _startup" msgstr "Dapatkan Pengepala Baru dalam Kumpulan Terlanggan" #: ../pan/gui/prefs-ui.cc:934 #, fuzzy msgid "Get new headers when _entering group" msgstr "Muat turun pengepala baru apabila memuatkan _kumpulan" #: ../pan/gui/prefs-ui.cc:936 #, fuzzy msgid "Mark entire group _read when leaving group" msgstr "Muat turun pengepala baru apabila memuatkan _kumpulan" #: ../pan/gui/prefs-ui.cc:938 #, fuzzy msgid "Mark entire group read before getting _new headers" msgstr "Muat turun pengepala baru apabila memuatkan _kumpulan" #: ../pan/gui/prefs-ui.cc:940 #, fuzzy msgid "E_xpand all threads when entering group" msgstr "Muat turun pengepala baru apabila memuatkan _kumpulan" #: ../pan/gui/prefs-ui.cc:945 #, fuzzy msgid "Articles" msgstr "/_Artikel" #: ../pan/gui/prefs-ui.cc:947 msgid "Space selects next article rather than next unread" msgstr "" #: ../pan/gui/prefs-ui.cc:949 #, fuzzy msgid "Expand threads upon selection" msgstr "/_Edit/Tambahkan _Bebenang ke Pemilihan" #: ../pan/gui/prefs-ui.cc:951 msgid "Always show article deletion confirmation dialog" msgstr "" #: ../pan/gui/prefs-ui.cc:953 #, fuzzy msgid "Smooth scrolling" msgstr "Menatal licin pada kelajuan:" #: ../pan/gui/prefs-ui.cc:958 #, fuzzy msgid "Article Cache" msgstr "Cache Artikel" #: ../pan/gui/prefs-ui.cc:959 msgid "Clear article cache on shutdown" msgstr "" #: ../pan/gui/prefs-ui.cc:962 msgid "Size of article cache (in MiB) :" msgstr "" #: ../pan/gui/prefs-ui.cc:967 #, fuzzy msgid "File extension for Cached Articles: " msgstr "/Penapi_s/Padankan _Artikel yang Dibaca" #: ../pan/gui/prefs-ui.cc:972 msgid "Tabs" msgstr "" #: ../pan/gui/prefs-ui.cc:977 #, fuzzy msgid "_Behavior" msgstr "Peri L_aku" #: ../pan/gui/prefs-ui.cc:977 #, fuzzy msgid "Behavior" msgstr "Peri L_aku" #: ../pan/gui/prefs-ui.cc:983 #, fuzzy msgid "Language Settings" msgstr "Mendapatkan \"%s\"" #. systray and notify popup #: ../pan/gui/prefs-ui.cc:992 #, fuzzy msgid "System Tray Behavior" msgstr "Peri L_aku" #: ../pan/gui/prefs-ui.cc:994 msgid "Hide to system tray" msgstr "" #: ../pan/gui/prefs-ui.cc:996 #, fuzzy msgid "Start Pan minimized" msgstr "Mulakan Pan dalam mod d_alam talian" #: ../pan/gui/prefs-ui.cc:999 #, fuzzy msgid "Show notifications" msgstr "Maklumat Profil" #. allow multiple instances (seperate, not communicating with dbus) #: ../pan/gui/prefs-ui.cc:1004 #, fuzzy msgid "Startup Behavior" msgstr "Peri L_aku" #: ../pan/gui/prefs-ui.cc:1006 msgid "Allow multiple instances of Pan" msgstr "" #: ../pan/gui/prefs-ui.cc:1011 #, fuzzy msgid "Autosave Article Draft" msgstr "/_Baca Artikel" #: ../pan/gui/prefs-ui.cc:1013 #, fuzzy msgid "Minutes to autosave the current Article Draft: " msgstr "/_Baca Artikel" #: ../pan/gui/prefs-ui.cc:1018 #, fuzzy msgid "Autosave Articles" msgstr "/_Simpan Lampiran Sebagai" #: ../pan/gui/prefs-ui.cc:1020 msgid "Minutes to autosave newsrc files: " msgstr "" #: ../pan/gui/prefs-ui.cc:1026 msgid "_Miscellaneous" msgstr "" #: ../pan/gui/prefs-ui.cc:1026 msgid "Miscellaneous" msgstr "" #: ../pan/gui/prefs-ui.cc:1031 msgid "Pane Layout" msgstr "Bentangan Anak Tetingkap" #: ../pan/gui/prefs-ui.cc:1050 msgid "1=Groups, 2=Headers, 3=Body" msgstr "" #: ../pan/gui/prefs-ui.cc:1052 msgid "1=Groups, 2=Body, 3=Headers" msgstr "" #: ../pan/gui/prefs-ui.cc:1054 msgid "1=Headers, 2=Groups, 3=Body" msgstr "" #: ../pan/gui/prefs-ui.cc:1056 msgid "1=Headers, 2=Body, 3=Groups" msgstr "" #: ../pan/gui/prefs-ui.cc:1058 msgid "1=Body, 2=Groups, 3=Headers" msgstr "" #: ../pan/gui/prefs-ui.cc:1060 msgid "1=Body, 2=Headers, 3=Groups" msgstr "" #: ../pan/gui/prefs-ui.cc:1064 #, fuzzy msgid "Layout" msgstr "_Bentangan Anak Tetingkap" #: ../pan/gui/prefs-ui.cc:1069 #, fuzzy msgid "Header Pane Columns" msgstr "Anak Tetingkap Pengepala" #: ../pan/gui/prefs-ui.cc:1073 #, fuzzy msgid "_Headers" msgstr "Pengepala" #: ../pan/gui/prefs-ui.cc:1073 #, fuzzy msgid "Headers" msgstr "Pengepala" #: ../pan/gui/prefs-ui.cc:1079 msgid "" "This menu lets you configure Pan to take certain actions on your behalf " "automatically, based on a post's score." msgstr "" #: ../pan/gui/prefs-ui.cc:1082 msgid "_Delete posts scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1084 msgid "Mark posts _read scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1086 msgid "_Cache posts scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1088 msgid "Download _attachments of posts scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1091 #, fuzzy msgid "Actions" msgstr "Tindakan" #: ../pan/gui/prefs-ui.cc:1096 ../pan/gui/prefs-ui.cc:1117 msgid "Fonts" msgstr "Fon" #: ../pan/gui/prefs-ui.cc:1098 msgid "Use custom font in Group Pane:" msgstr "Gunakan fon biasa dalam Anak Tetingkap Kumpulan:" #: ../pan/gui/prefs-ui.cc:1103 msgid "Use custom font in Header Pane:" msgstr "Gunakan fon biasa dalam Anak Tetingkap Pengepala:" #: ../pan/gui/prefs-ui.cc:1108 msgid "Use custom font in Body Pane:" msgstr "Gunakan fon biasa dalam Anak Tetingkap Badan:" #: ../pan/gui/prefs-ui.cc:1113 #, fuzzy msgid "Monospace font:" msgstr "Fon Monospac_e:" #: ../pan/gui/prefs-ui.cc:1117 #, fuzzy msgid "_Fonts" msgstr "Fon" #: ../pan/gui/prefs-ui.cc:1122 #, fuzzy msgid "Header Pane" msgstr "Anak Tetingkap Pengepala" #: ../pan/gui/prefs-ui.cc:1125 ../pan/gui/prefs-ui.cc:1131 #: ../pan/gui/prefs-ui.cc:1137 ../pan/gui/prefs-ui.cc:1143 #: ../pan/gui/prefs-ui.cc:1149 ../pan/gui/prefs-ui.cc:1155 msgid "Text:" msgstr "Teks:" #: ../pan/gui/prefs-ui.cc:1127 ../pan/gui/prefs-ui.cc:1133 #: ../pan/gui/prefs-ui.cc:1139 ../pan/gui/prefs-ui.cc:1145 #: ../pan/gui/prefs-ui.cc:1151 ../pan/gui/prefs-ui.cc:1157 msgid "Background:" msgstr "Latar belakang:" #: ../pan/gui/prefs-ui.cc:1129 #, fuzzy msgid "Scores of 9999 or more:" msgstr "/Penapi_s/Padankan Skor -9999 (Diabaikan)" #: ../pan/gui/prefs-ui.cc:1135 msgid "Scores from 5000 to 9998:" msgstr "" #: ../pan/gui/prefs-ui.cc:1141 msgid "Scores from 1 to 4999:" msgstr "" #: ../pan/gui/prefs-ui.cc:1147 msgid "Scores from -9998 to -1:" msgstr "" #: ../pan/gui/prefs-ui.cc:1153 #, fuzzy msgid "Scores of -9999 or less:" msgstr "/Penapi_s/Padankan Skor -9999 (Diabaikan)" #: ../pan/gui/prefs-ui.cc:1159 msgid "Read collapsed thread:" msgstr "" #: ../pan/gui/prefs-ui.cc:1161 #, fuzzy msgid "Body Pane" msgstr "Anak Tetingkap Bada_n" #: ../pan/gui/prefs-ui.cc:1167 #, fuzzy msgid "Quoted text:" msgstr "Teks yang Dipetik _3:" #: ../pan/gui/prefs-ui.cc:1168 #, fuzzy msgid "URL:" msgstr "URL:" #: ../pan/gui/prefs-ui.cc:1169 #, fuzzy msgid "Signature:" msgstr "_Fail Tandatangan:" #: ../pan/gui/prefs-ui.cc:1171 #, fuzzy msgid "_Colors" msgstr "Warna" #: ../pan/gui/prefs-ui.cc:1171 #, fuzzy msgid "Colors" msgstr "Warna" #: ../pan/gui/prefs-ui.cc:1176 #, fuzzy msgid "Preferred Applications" msgstr "Aplikasi" #: ../pan/gui/prefs-ui.cc:1180 #, fuzzy msgid "_Web browser:" msgstr "Pelayan _Web (%s ialah URL):" #: ../pan/gui/prefs-ui.cc:1183 #, fuzzy msgid "_Mail reader:" msgstr "Pelayan Mel" #: ../pan/gui/prefs-ui.cc:1185 #, fuzzy msgid "_Text editor:" msgstr "Editor" #: ../pan/gui/prefs-ui.cc:1187 #, fuzzy msgid "_Applications" msgstr "Aplikasi" #: ../pan/gui/prefs-ui.cc:1187 #, fuzzy msgid "Applications" msgstr "Aplikasi" #: ../pan/gui/prefs-ui.cc:1192 ../pan/gui/task-pane.cc:512 #, fuzzy msgid "Encoding" msgstr "S_et Aksara:" #: ../pan/gui/prefs-ui.cc:1196 msgid "Default bytes per file (for encoder): " msgstr "" #: ../pan/gui/prefs-ui.cc:1201 #, fuzzy msgid "_Upload" msgstr "Aplikasi" #: ../pan/gui/prefs-ui.cc:1201 msgid "Upload" msgstr "" #: ../pan/gui/prefs-ui.cc:1219 msgid "_Hotkeys" msgstr "" #: ../pan/gui/prefs-ui.cc:1219 msgid "Hotkeys" msgstr "" #: ../pan/gui/profiles-dialog.cc:83 msgid "Please choose your Email Address according to your PGP key's user id." msgstr "" #: ../pan/gui/profiles-dialog.cc:131 #, fuzzy msgid "Posting Profile" msgstr "Pan: Profil" #: ../pan/gui/profiles-dialog.cc:143 msgid "Profile Information" msgstr "Maklumat Profil" #: ../pan/gui/profiles-dialog.cc:147 msgid "_Profile Name:" msgstr "_Nama Profil:" #: ../pan/gui/profiles-dialog.cc:150 msgid "Required Information" msgstr "Maklumat diperlukan" #: ../pan/gui/profiles-dialog.cc:154 msgid "_Full Name:" msgstr "_Nama Penuh:" #: ../pan/gui/profiles-dialog.cc:158 msgid "" "Your Email Address.\n" "Note that this has to match your PGP Signature's Address\n" "if you want to PGP-Sign or Encrypt your messages correctly." msgstr "" #: ../pan/gui/profiles-dialog.cc:162 msgid "_Email Address:" msgstr "_Alamat E-mel" #: ../pan/gui/profiles-dialog.cc:164 #, fuzzy msgid "_Post Articles via:" msgstr "_Artikel" #: ../pan/gui/profiles-dialog.cc:167 #, fuzzy msgid "Signature" msgstr "_Fail Tandatangan:" #: ../pan/gui/profiles-dialog.cc:170 #, fuzzy msgid "_Use a Signature" msgstr "_Fail Tandatangan:" #: ../pan/gui/profiles-dialog.cc:174 #, fuzzy msgid "Signature File" msgstr "Pilih Fail Tandatangan" #: ../pan/gui/profiles-dialog.cc:184 #, fuzzy msgid "Text File" msgstr "/_Pergi/_Artikel Seterusnya" #: ../pan/gui/profiles-dialog.cc:186 #, fuzzy msgid "Text" msgstr "Teks:" #: ../pan/gui/profiles-dialog.cc:188 #, fuzzy msgid "Command" msgstr "Arahan Cetak:" #: ../pan/gui/profiles-dialog.cc:191 #, fuzzy msgid "PGP Signature" msgstr "_Fail Tandatangan:" #: ../pan/gui/profiles-dialog.cc:196 #, fuzzy msgid "Signature Type : " msgstr "_Fail Tandatangan:" #: ../pan/gui/profiles-dialog.cc:223 msgid "X-Face (Avatar)" msgstr "" #: ../pan/gui/profiles-dialog.cc:226 msgid "" "You can add an avatar icon to your articles with a unique X-Face code. \n" "Add the code without the trailing \"X-Face:\" \n" " if it was generated by a helper program (for example http://www.dairiki.org/" "xface/xface.php)." msgstr "" #: ../pan/gui/profiles-dialog.cc:229 msgid "_X-Face:" msgstr "" #: ../pan/gui/profiles-dialog.cc:231 msgid "Optional Information" msgstr "Maklumat Opsyenal" #: ../pan/gui/profiles-dialog.cc:236 #, fuzzy msgid "" "When posting to Usenet, your article's Message-ID contains a domain name. \n" "You can set a custom domain name here, or leave it blank to let Pan use the " "domain name from your email address." msgstr "" "Apabila posting ke Usenet, ID-mesej artikel anda mengandungi nama domain. " "Anda boleh setkan nama domain biasa di sini, atau tinggalkannya kosong " "supaya Pan menggunakan nama domain daripada alamat e-mel anda." #: ../pan/gui/profiles-dialog.cc:239 msgid "Message-ID _Domain Name:" msgstr "Nama Domain _Id Mesej:" #: ../pan/gui/profiles-dialog.cc:243 #, c-format msgid "" "%i for Message-ID\n" "%a for Author and Address\n" "%n for Author name\n" "%d for Date" msgstr "" "%i untuk ID-Mesej\n" "%a untuk Pengarang dan Alamat\n" "%n untuk nama Pengarang\n" "%d untuk Tarikh" #: ../pan/gui/profiles-dialog.cc:244 msgid "_Attribution:" msgstr "_Atribut:" #: ../pan/gui/profiles-dialog.cc:268 msgid "" "Extra headers to be included in your posts, such as\n" "Reply-To: \"Your Name\"\n" "Organization: Your Organization\n" msgstr "" #: ../pan/gui/profiles-dialog.cc:278 #, fuzzy msgid "E_xtra Headers:" msgstr "Pengepala Tambahan" #: ../pan/gui/profiles-dialog.cc:323 msgid "Invalid email address." msgstr "" #: ../pan/gui/profiles-dialog.cc:324 msgid "Please use an address of the form joe@somewhere.org" msgstr "" #: ../pan/gui/profiles-dialog.cc:479 msgid "New Profile" msgstr "Profil Baru" #: ../pan/gui/profiles-dialog.cc:525 #, fuzzy msgid "Posting Profiles" msgstr "/_Alat/_Mengepos Profil..." #: ../pan/gui/profiles-dialog.cc:541 #, fuzzy msgid "Profiles" msgstr "Profil" #: ../pan/gui/save-attach-ui.cc:77 ../pan/gui/save-ui.cc:77 #, fuzzy, c-format msgid "" "%g - group as one directory (alt.binaries.pictures.trains)\n" "%G - group as nested directory (/alt/binaries/pictures/trains)\n" "%s - subject line excerpt\n" "%S - subject line\n" " \n" "\"/home/user/News/Pan/%g\" becomes\n" "\"/home/user/News/Pan/alt.binaries.pictures.trains\", and\n" "\"/home/user/News/Pan/%G\" becomes\n" "\"/home/user/News/Pan/alt/binaries/pictures/trains\"," msgstr "" "%g - kumpulan sebagai satu direktori (alt.binaries.pictures.trains)\n" "%G - kumpulan sebagai direktori bersarang (/alt/binaries/pictures/trains)\n" " \n" "\"/home/user/News/Pan/%g\" menjadi\n" "\"/home/user/News/Pan/alt.binaries.pictures.trains\", dan\n" "\"/home/user/News/Pan/%G\" menjadi\n" "\"/home/user/News/Pan/alt/binaries/pictures/trains\"," #: ../pan/gui/save-attach-ui.cc:223 ../pan/gui/save-ui.cc:242 msgid "Add to the queue sorted by date posted" msgstr "" #: ../pan/gui/save-attach-ui.cc:224 ../pan/gui/save-ui.cc:243 #, fuzzy msgid "Add to the front of the queue" msgstr "Tambahkan di bawah senarai Pengurus Tugas" #: ../pan/gui/save-attach-ui.cc:225 ../pan/gui/save-ui.cc:244 #, fuzzy msgid "Add to the back of the queue" msgstr "Tambahkan di bawah senarai Pengurus Tugas" #: ../pan/gui/save-attach-ui.cc:257 #, fuzzy msgid "Pan: Save Attachments" msgstr "Simpan _Lampiran" #: ../pan/gui/save-attach-ui.cc:282 ../pan/gui/save-attach-ui.cc:300 #: ../pan/gui/save-ui.cc:296 ../pan/gui/save-ui.cc:314 #, fuzzy msgid "_Location:" msgstr "Tindakan" #: ../pan/gui/save-attach-ui.cc:286 ../pan/gui/save-ui.cc:300 #, fuzzy msgid "Save Articles" msgstr "/_Simpan Lampiran Sebagai" #: ../pan/gui/save-attach-ui.cc:303 ../pan/gui/save-ui.cc:317 #, c-format msgid "_Group's path: %s" msgstr "" #: ../pan/gui/save-attach-ui.cc:314 ../pan/gui/save-ui.cc:332 msgid "_Priority:" msgstr "" #: ../pan/gui/save-ui.cc:233 #, fuzzy msgid "Save attachments" msgstr "Simpan Lampiran" #: ../pan/gui/save-ui.cc:234 #, fuzzy msgid "Save text" msgstr "Simpan Teks" #: ../pan/gui/save-ui.cc:235 #, fuzzy msgid "Save attachments and text" msgstr "Simpan l_ampiran dalam direktori" #: ../pan/gui/save-ui.cc:271 #, fuzzy msgid "Pan: Save Articles" msgstr "Pan: Simpan Artikel Sebagai" #: ../pan/gui/save-ui.cc:328 #, fuzzy msgid "_Action:" msgstr "Tindakan" #: ../pan/gui/score-add-ui.cc:89 msgid "is more than" msgstr "" #: ../pan/gui/score-add-ui.cc:90 msgid "is at most" msgstr "" #: ../pan/gui/score-add-ui.cc:112 #, fuzzy msgid "increase the article's score by" msgstr "/_Lihat/Lipat Badan Artikel" #: ../pan/gui/score-add-ui.cc:113 #, fuzzy msgid "decrease the article's score by" msgstr "/_Lihat/Lipat Badan Artikel" #: ../pan/gui/score-add-ui.cc:114 #, fuzzy msgid "set the article's score to" msgstr "setkan skor kepada" #: ../pan/gui/score-add-ui.cc:115 #, fuzzy msgid "watch the article (set its score to 9999)" msgstr "_Perhatikan (setkan skor kepada -9999)" #: ../pan/gui/score-add-ui.cc:116 #, fuzzy msgid "ignore the article (set its score to -9999)" msgstr "_Abaikan (setkan skor kepada -9999)" #: ../pan/gui/score-add-ui.cc:141 #, fuzzy msgid "References" msgstr "_Rujukan" #: ../pan/gui/score-add-ui.cc:142 #, fuzzy msgid "Line Count" msgstr "Baris %d, Lajur %d" #: ../pan/gui/score-add-ui.cc:143 msgid "Byte Count" msgstr "" #: ../pan/gui/score-add-ui.cc:144 msgid "Crosspost Group Count" msgstr "" #: ../pan/gui/score-add-ui.cc:145 msgid "Age (in days)" msgstr "" #: ../pan/gui/score-add-ui.cc:167 msgid "for the next month" msgstr "" #: ../pan/gui/score-add-ui.cc:168 msgid "for the next six months" msgstr "" #: ../pan/gui/score-add-ui.cc:169 #, fuzzy msgid "forever" msgstr "Pelayan" #: ../pan/gui/score-add-ui.cc:194 msgid "contains" msgstr "mengandungi" #: ../pan/gui/score-add-ui.cc:195 #, fuzzy msgid "doesn't contain" msgstr "tidak mengandungi" #: ../pan/gui/score-add-ui.cc:196 msgid "is" msgstr "ialah" #: ../pan/gui/score-add-ui.cc:197 #, fuzzy msgid "isn't" msgstr "bukan" #: ../pan/gui/score-add-ui.cc:198 msgid "starts with" msgstr "bermula dengan" #: ../pan/gui/score-add-ui.cc:199 msgid "ends with" msgstr "berakhir dengan" #: ../pan/gui/score-add-ui.cc:200 #, fuzzy msgid "matches regex" msgstr "sepadan dengan ungkapan biasa" #: ../pan/gui/score-add-ui.cc:481 #, fuzzy msgid "Another rule already sets this article's score." msgstr "/_Lihat/Lipat Badan Artikel" #: ../pan/gui/score-add-ui.cc:482 msgid "You may want to go back or delete the old rule." msgstr "" #: ../pan/gui/score-add-ui.cc:553 msgid "Add and Re_score" msgstr "Tambahkan dan Skor semula" #: ../pan/gui/score-add-ui.cc:604 ../pan/gui/score-add-ui.cc:624 #, fuzzy msgid "New Scoring Rule" msgstr "Skor Baru" #: ../pan/gui/score-add-ui.cc:635 msgid "If the group name" msgstr "" #: ../pan/gui/score-add-ui.cc:642 #, fuzzy msgid "And the article's" msgstr "Baris per artikel" #: ../pan/gui/score-view-ui.cc:56 msgid "Close and Re_score" msgstr "Tutup dan Sko_r semula" #: ../pan/gui/score-view-ui.cc:154 #, fuzzy, c-format msgid "File %s, Lines %d - %d" msgstr "fail skor %s, baris %d: %s (%s)" #: ../pan/gui/score-view-ui.cc:182 #, fuzzy msgid "Pan: Article's Scores" msgstr "Pan: Lihat Skor Artikel" #: ../pan/gui/score-view-ui.cc:208 #, fuzzy msgid "Add" msgstr "tambah" #: ../pan/gui/score-view-ui.cc:213 msgid "New Score" msgstr "Skor Baru" #: ../pan/gui/score-view-ui.cc:218 msgid "Criteria" msgstr "Kriteria" #: ../pan/gui/score-view-ui.cc:241 #, fuzzy msgid "Add a New Scoring Rule" msgstr "Tambahkan skor baru" #: ../pan/gui/score-view-ui.cc:248 #, fuzzy msgid "Remove the Selected Scoring Rule" msgstr "Keluarkan skor yang dipilih" #: ../pan/gui/server-ui.cc:221 msgid "Please specify the server's address." msgstr "" #: ../pan/gui/server-ui.cc:264 msgid "Import SSL certificate (PEM format) from File" msgstr "" #. create the dialog #: ../pan/gui/server-ui.cc:290 ../pan/gui/server-ui.cc:869 #, fuzzy msgid "Add a Server" msgstr "Tambahkan pelayan baru" #: ../pan/gui/server-ui.cc:290 ../pan/gui/server-ui.cc:875 #, fuzzy msgid "Edit a Server's Settings" msgstr "Seting Lain" #: ../pan/gui/server-ui.cc:310 #, fuzzy msgid "Location" msgstr "Tindakan" #: ../pan/gui/server-ui.cc:314 msgid "The news server's actual address, e.g. \"news.mynewsserver.com\"" msgstr "Alamat sebenar pelayan berita, cth. \"news.mynewsserver.com\"" #: ../pan/gui/server-ui.cc:315 msgid "_Address:" msgstr "_Alamat:" #: ../pan/gui/server-ui.cc:319 #, fuzzy msgid "The news server's port number. Typically 119." msgstr "Port pelayan berita. Kebanyakannya sentiasa 119." #: ../pan/gui/server-ui.cc:320 msgid "Por_t:" msgstr "Por_t:" #: ../pan/gui/server-ui.cc:323 msgid "Login (if Required)" msgstr "" #: ../pan/gui/server-ui.cc:327 msgid "_Username:" msgstr "_Nama pengguna:" #: ../pan/gui/server-ui.cc:328 msgid "" "The username to give the server when asked. If your server doesn't require " "authentication, you can leave this blank." msgstr "" #: ../pan/gui/server-ui.cc:332 msgid "_Password:" msgstr "_Kata laluan:" #: ../pan/gui/server-ui.cc:333 msgid "" "The password to give the server when asked. If your server doesn't require " "authentication, you can leave this blank." msgstr "" #: ../pan/gui/server-ui.cc:336 #, fuzzy msgid "Settings" msgstr "Mendapatkan \"%s\"" #: ../pan/gui/server-ui.cc:343 msgid "Connection _Limit:" msgstr "H_ad Sambungan:" #: ../pan/gui/server-ui.cc:347 msgid "After Two Weeks" msgstr "" #: ../pan/gui/server-ui.cc:348 msgid "After One Month" msgstr "" #: ../pan/gui/server-ui.cc:349 msgid "After Two Months" msgstr "" #: ../pan/gui/server-ui.cc:350 msgid "After Three Months" msgstr "" #: ../pan/gui/server-ui.cc:351 msgid "After Six Months" msgstr "" #: ../pan/gui/server-ui.cc:352 #, fuzzy msgid "Never Expire Old Articles" msgstr "Tidak pernah Tamat Tempoh" #: ../pan/gui/server-ui.cc:366 msgid "E_xpire Old Articles:" msgstr "" #: ../pan/gui/server-ui.cc:370 #, fuzzy msgid "Primary" msgstr "Keutamaan" #: ../pan/gui/server-ui.cc:371 msgid "Fallback" msgstr "" #: ../pan/gui/server-ui.cc:385 #, fuzzy msgid "Server Rank:" msgstr "Pelayan" #: ../pan/gui/server-ui.cc:389 msgid "" "Fallback servers are used for articles that can't be found on the " "primaries. One common approach is to use free servers as primaries and " "subscription servers as fallbacks." msgstr "" #: ../pan/gui/server-ui.cc:396 msgid "Security" msgstr "" #: ../pan/gui/server-ui.cc:401 msgid "Use Plaintext (Unsecured) Connections" msgstr "" #: ../pan/gui/server-ui.cc:402 #, fuzzy msgid "Use Secure SSL Connections" msgstr "Tiada Sambungan" #: ../pan/gui/server-ui.cc:418 msgid "TLS (SSL) Options:" msgstr "" #: ../pan/gui/server-ui.cc:423 msgid "" "You can set the option for using/disabling secure SSL/TLS connections here. " "If you enable SSL/TLS, your data is encrypted and secure. It is encouraged " "to use this option for privacy reasons." msgstr "" #: ../pan/gui/server-ui.cc:428 msgid "Always trust this server's certificate" msgstr "" #: ../pan/gui/server-ui.cc:602 #, c-format msgid "Really delete \"%s\"?" msgstr "" #: ../pan/gui/server-ui.cc:691 msgid "No information available." msgstr "" #: ../pan/gui/server-ui.cc:697 #, c-format msgid "Server Certificate for '%s'" msgstr "" #: ../pan/gui/server-ui.cc:795 #, c-format msgid "Really delete certificate for \"%s\"?" msgstr "" #. dialog #: ../pan/gui/server-ui.cc:822 ../pan/gui/server-ui.cc:843 #: ../pan/gui/server-ui.cc:941 msgid "Servers" msgstr "Pelayan" #: ../pan/gui/server-ui.cc:882 #, fuzzy msgid "Remove a Server" msgstr "Pelayan Baru" #. dialog #: ../pan/gui/server-ui.cc:915 msgid "SSL Certificates" msgstr "" #: ../pan/gui/server-ui.cc:936 msgid "Certificates" msgstr "" #: ../pan/gui/server-ui.cc:967 msgid "Import Certificate" msgstr "" #: ../pan/gui/server-ui.cc:973 msgid "Inspect Certificate" msgstr "" #: ../pan/gui/server-ui.cc:980 #, fuzzy msgid "Remove Certificate" msgstr "Pelayan Baru" #: ../pan/gui/task-pane.cc:143 #, c-format msgid "" "\n" "Upload\n" "\n" "Subject: \"%s\"\n" "From: %s\n" "Groups: %s\n" "Sourcefile: %s\n" msgstr "" #: ../pan/gui/task-pane.cc:155 #, c-format msgid "" "\n" "Download\n" "\n" "Subject: \"%s\"\n" "From: %s\n" "Date: %s\n" "Groups: %s\n" "Save Path: %s\n" msgstr "" #: ../pan/gui/task-pane.cc:157 #, fuzzy msgid "unknown" msgstr "Tak Diketahui" #: ../pan/gui/task-pane.cc:263 msgid "Choose new destination for selected Tasks" msgstr "" #: ../pan/gui/task-pane.cc:417 #, fuzzy, c-format msgid "Pan: Tasks (%d Queued, %d Running, %d Stopped)" msgstr "Pengurus Tugas %s Pan (%d Dibaris gilir, %d Dijalankan, %d Dihentikan)" #: ../pan/gui/task-pane.cc:419 #, fuzzy, c-format msgid "Pan: Tasks (%d Queued, %d Running)" msgstr "Pengurus Tugas %s Pan (%d Dibaris gilir, %d Dijalankan)" #: ../pan/gui/task-pane.cc:421 #, fuzzy, c-format msgid "Pan: Tasks" msgstr "Pan: Pengurus Tugas" #: ../pan/gui/task-pane.cc:446 #, fuzzy, c-format msgid "%lu selected, %s" msgstr "(%u dipilih)" #: ../pan/gui/task-pane.cc:510 msgid "Running" msgstr "Dijalankan" #: ../pan/gui/task-pane.cc:511 #, fuzzy msgid "Decoding" msgstr "Menyahkod \"%s\"" #: ../pan/gui/task-pane.cc:513 msgid "Queued for Decode" msgstr "" #: ../pan/gui/task-pane.cc:514 msgid "Queued for Encode" msgstr "" #: ../pan/gui/task-pane.cc:515 msgid "Queued" msgstr "Dibaris gilir" #: ../pan/gui/task-pane.cc:516 msgid "Stopped" msgstr "Dihentikan" #: ../pan/gui/task-pane.cc:517 msgid "Removing" msgstr "Mengeluarkan" #: ../pan/gui/task-pane.cc:546 #, fuzzy, c-format msgid "%d%% Done" msgstr "% Selesai" #: ../pan/gui/task-pane.cc:552 #, fuzzy, c-format msgid "%d:%02d:%02d Remaining (%d @ %lu KiB/s)" msgstr "%d:%02d:%02d (%.2f KB/s)" #: ../pan/gui/task-pane.cc:646 ../pan/gui/task-pane.cc:647 #, fuzzy msgid "Move To Top" msgstr "Alihkan Tugas yang Dipilih Ke bawah" #: ../pan/gui/task-pane.cc:651 ../pan/gui/task-pane.cc:652 #, fuzzy msgid "Move To Bottom" msgstr "Alihkan Tugas yang Dipilih Ke bawah" #: ../pan/gui/task-pane.cc:656 ../pan/gui/task-pane.cc:657 #, fuzzy msgid "Stop Task" msgstr "Tiada Tugas" #: ../pan/gui/task-pane.cc:661 ../pan/gui/task-pane.cc:662 #, fuzzy msgid "Delete Task" msgstr "Hapuskan Spam" #: ../pan/gui/task-pane.cc:666 ../pan/gui/task-pane.cc:667 #, fuzzy msgid "Restart Task" msgstr "Memulakan semula Tugas yang Dipilih" #: ../pan/gui/task-pane.cc:671 ../pan/gui/task-pane.cc:672 msgid "Change Download Destination" msgstr "" #: ../pan/gui/task-pane.cc:729 #, fuzzy msgid "_Online" msgstr "Dalam talian" #: ../pan/gui/task-pane.cc:746 #, fuzzy msgid "Restart Tasks" msgstr "Memulakan semula Tugas yang Dipilih" #: ../pan/gui/task-pane.cc:748 #, fuzzy msgid "Stop Tasks" msgstr "Tiada Tugas" #: ../pan/gui/task-pane.cc:750 #, fuzzy msgid "Delete Tasks" msgstr "Hapuskan Spam" #: ../pan/gui/url.cc:123 #, fuzzy, c-format msgid "Error starting URL: %s (Command was: %s)" msgstr "Ralat menghuraikan baris arahan \"pelayar web\": %s" #: ../pan/tasks/decoder.cc:115 #, fuzzy, c-format msgid "Couldn't save file \"%s\": %s" msgstr "Tidak dapat membaca fail tandatangan \"%s\": %s" #: ../pan/tasks/decoder.cc:137 ../pan/tasks/encoder.cc:136 msgid "Error initializing uulib" msgstr "" #: ../pan/tasks/decoder.cc:152 ../pan/tasks/socket-impl-gio.cc:352 #: ../pan/tasks/socket-impl-openssl.cc:634 #, fuzzy, c-format msgid "Error reading from %s: %s" msgstr "Ralat membaca dari soket: %s" #: ../pan/tasks/decoder.cc:192 #, c-format msgid "Saved \"%s\"" msgstr "Simpan \"%s\"" #: ../pan/tasks/decoder.cc:199 #, fuzzy, c-format msgid "" "Error saving \"%s\":\n" "%s." msgstr "Ralat membaca fail \"%s\": %s" #: ../pan/tasks/decoder.cc:314 ../pan/tasks/task-article.cc:350 #, fuzzy, c-format msgid "Decoding %s" msgstr "Menyahkod \"%s\"" #: ../pan/tasks/encoder.cc:102 ../pan/tasks/encoder.cc:155 #, fuzzy, c-format msgid "Error loading %s from cache." msgstr "Ralat membaca dari soket." #: ../pan/tasks/encoder.cc:177 #, fuzzy, c-format msgid "Error encoding %s: %s" msgstr "Ralat membaca fail \"%s\": %s" #: ../pan/tasks/encoder.cc:269 #, fuzzy, c-format msgid "Encoding %s" msgstr "S_et Aksara:" #: ../pan/tasks/nntp.cc:126 #, c-format msgid "%s requires a username, but none is set." msgstr "" #: ../pan/tasks/nntp.cc:139 #, c-format msgid "%s requires a password, but none is set." msgstr "" #: ../pan/tasks/nntp.cc:205 #, c-format msgid "Sending \"%s\" to %s returned an error: %s" msgstr "" #: ../pan/tasks/nntp.cc:228 #, c-format msgid "Sending \"%s\" to %s returned an unrecognized response: \"%s\"" msgstr "" #: ../pan/tasks/nntp-pool.cc:222 #, fuzzy, c-format msgid "Unable to connect to \"%s\"" msgstr "Tidak dapat disambungkan ke pelayan mel \"%*.*s\"" #: ../pan/tasks/socket-impl-gio.cc:173 ../pan/tasks/socket-impl-gio.cc:211 #: ../pan/tasks/socket-impl-openssl.cc:214 #: ../pan/tasks/socket-impl-openssl.cc:252 #, fuzzy, c-format msgid "Error connecting to \"%s\"" msgstr "Ralat membaca fail \"%s\": %s" #: ../pan/tasks/socket-impl-gio.cc:351 ../pan/tasks/socket-impl-openssl.cc:633 #, fuzzy msgid "Unknown Error" msgstr "Tak Diketahui" #: ../pan/tasks/task-article.cc:61 ../pan/tasks/task-article.cc:156 #: ../pan/tasks/task-article.cc:159 #, fuzzy, c-format msgid "Saving %s" msgstr "Menyimpan \"%s\"" #: ../pan/tasks/task-article.cc:63 #, fuzzy, c-format msgid "Reading %s" msgstr "Membaca" #: ../pan/tasks/task-article.cc:322 #, c-format msgid "Article \"%s\" is incomplete -- the news server(s) don't have part %s" msgstr "" #: ../pan/tasks/task-groups.cc:40 #, fuzzy, c-format msgid "Getting group list from \"%s\"" msgstr "Mendapatkan kumpulan baru dari pelayan \"%s\"" #: ../pan/tasks/task-groups.cc:122 #, fuzzy, c-format msgid "Fetched %lu Groups" msgstr "Mengambil pengepala %u untuk \"%s\"" #: ../pan/tasks/task-post.cc:35 #, fuzzy, c-format msgid "Posting \"%s\"" msgstr "Mendapatkan \"%s\"" #: ../pan/tasks/task-post.cc:76 #, fuzzy, c-format msgid "Posting of \"%s\" failed: %s" msgstr "Gagal mendapatkan badan artikel \"%s\": %s" #: ../pan/tasks/task-post.cc:81 #, c-format msgid "Posting of \"%s\" succesful: %s" msgstr "" #: ../pan/tasks/task-upload.cc:51 #, fuzzy, c-format msgid "Uploading %s" msgstr "Membaca" #: ../pan/tasks/task-upload.cc:249 #, c-format msgid "Uploading %s - Part %d of %d" msgstr "" #: ../pan/tasks/task-upload.cc:251 #, c-format msgid "Uploading Message body with Subject \"%s\"" msgstr "" #: ../pan/tasks/task-upload.cc:308 #, c-format msgid "Posting of File %s (Part %d of %d) failed: No Posts allowed by server." msgstr "" #: ../pan/tasks/task-upload.cc:316 #, fuzzy, c-format msgid "Posting of File %s (Part %d of %d) failed: %s" msgstr "Gagal mendapatkan badan artikel \"%s\": %s" #: ../pan/tasks/task-upload.cc:326 ../pan/tasks/task-upload.cc:333 #, c-format msgid "Posting of file %s (Part %d of %d) succesful: %s" msgstr "" #: ../pan/tasks/task-upload.cc:343 #, fuzzy, c-format msgid "Posting of file %s succesful: %s" msgstr "Gagal mendapatkan badan artikel \"%s\": %s" #: ../pan/tasks/task-upload.cc:347 #, c-format msgid "" "Posting of file %s not completely successful: Check the log (right-click on " "list item) !" msgstr "" #: ../pan/tasks/task-upload.cc:364 #, c-format msgid "" "Posting of file %s not successful: Check the log (right-click on list item) !" msgstr "" #: ../pan/tasks/task-xover.cc:79 #, c-format msgid "Getting all headers for \"%s\"" msgstr "Mendapatkan semua pengepala untuk \"%s\"" #: ../pan/tasks/task-xover.cc:81 #, c-format msgid "Getting new headers for \"%s\"" msgstr "Mendapatkan pengepala baru untuk \"%s\"" #. SAMPLE #: ../pan/tasks/task-xover.cc:83 #, c-format msgid "Sampling headers for \"%s\"" msgstr "Membuat sampel pengepala untuk \"%s\"" #: ../pan/tasks/task-xover.cc:369 #, fuzzy, c-format msgid "%s (%lu parts, %lu articles)" msgstr " (%lu baris dalam %lu artikel)" #: ../pan/tasks/task-xoverinfo.cc:78 #, fuzzy, c-format msgid "Getting header counts for \"%s\"" msgstr "Mendapatkan semua pengepala untuk \"%s\"" #: ../pan/usenet-utils/filter-info.cc:163 #, fuzzy msgid "article doesn't have attachments" msgstr "Artikel tidak mempunyai lampiran lengkap" #: ../pan/usenet-utils/filter-info.cc:167 #, fuzzy msgid "the article has attachments" msgstr "Artikel tidak mempunyai lampiran" #: ../pan/usenet-utils/filter-info.cc:171 #, fuzzy msgid "the article isn't cached locally" msgstr "Badan artikel tidak dicache secara setempat" #: ../pan/usenet-utils/filter-info.cc:175 #, fuzzy msgid "the article is cached locally" msgstr "Badan artikel dicache setempat" #: ../pan/usenet-utils/filter-info.cc:179 #, fuzzy msgid "the article wasn't posted by you" msgstr "Saya tidak mengeposkan artikel" #: ../pan/usenet-utils/filter-info.cc:183 #, fuzzy msgid "the article was posted by you" msgstr "Saya yang mengeposkan artikel" #: ../pan/usenet-utils/filter-info.cc:187 #, fuzzy msgid "the article has been read" msgstr "Artikel belum dibaca" #: ../pan/usenet-utils/filter-info.cc:191 #, fuzzy msgid "the article hasn't been read" msgstr "Artikel belum dibaca" #: ../pan/usenet-utils/filter-info.cc:195 #, fuzzy, c-format msgid "the article is less than %ld bytes long" msgstr "Panjang artikel kurang daripada %d bait" #: ../pan/usenet-utils/filter-info.cc:200 #, fuzzy, c-format msgid "the article is at least %ld bytes long" msgstr "Panjang artikel kurang daripada %d bait" #: ../pan/usenet-utils/filter-info.cc:205 #, fuzzy, c-format msgid "the article is less than %ld lines long" msgstr "Panjang artikel kurang daripada %d baris" #: ../pan/usenet-utils/filter-info.cc:210 #, fuzzy, c-format msgid "the article is at least %ld lines long" msgstr "Panjang artikel kurang daripada %d baris" #: ../pan/usenet-utils/filter-info.cc:215 #, fuzzy, c-format msgid "the article is less than %ld days old" msgstr "Artikel telah ada lebih daripada %d hari" #: ../pan/usenet-utils/filter-info.cc:220 #, fuzzy, c-format msgid "the article is at least %ld days old" msgstr "Artikel sekurang-kurangnya sudah N _hari" #: ../pan/usenet-utils/filter-info.cc:225 #, fuzzy, c-format msgid "the article was posted to less than %ld groups" msgstr "Artikel dipos silang kepada kurang daripada %d kumpulan" #: ../pan/usenet-utils/filter-info.cc:230 #, fuzzy, c-format msgid "the article was posted to at least %ld groups" msgstr "Artikel diposkan sekurang-kuranngya N kumpulan:" #: ../pan/usenet-utils/filter-info.cc:235 #, fuzzy, c-format msgid "the article's score is less than %ld" msgstr "setkan skor kepada" #: ../pan/usenet-utils/filter-info.cc:240 #, fuzzy, c-format msgid "the article's score is %ld or higher" msgstr "setkan skor kepada" #: ../pan/usenet-utils/filter-info.cc:249 #: ../pan/usenet-utils/filter-info.cc:259 #, fuzzy, c-format msgid "%s doesn't contain \"%s\"" msgstr "tidak mengandungi" #: ../pan/usenet-utils/filter-info.cc:250 #: ../pan/usenet-utils/filter-info.cc:260 #, c-format msgid "%s isn't \"%s\"" msgstr "" #: ../pan/usenet-utils/filter-info.cc:251 #: ../pan/usenet-utils/filter-info.cc:261 #, fuzzy, c-format msgid "%s doesn't begin with \"%s\"" msgstr "tidak berakhir dengan" #: ../pan/usenet-utils/filter-info.cc:252 #: ../pan/usenet-utils/filter-info.cc:262 #, fuzzy, c-format msgid "%s doesn't end with \"%s\"" msgstr "tidak berakhir dengan" #: ../pan/usenet-utils/filter-info.cc:253 #: ../pan/usenet-utils/filter-info.cc:263 #, c-format msgid "%s doesn't match the regex \"%s\"" msgstr "" #: ../pan/usenet-utils/filter-info.cc:275 #, fuzzy, c-format msgid "%s contains \"%s\"" msgstr "mengandungi" #: ../pan/usenet-utils/filter-info.cc:276 #, c-format msgid "%s is \"%s\"" msgstr "" #: ../pan/usenet-utils/filter-info.cc:277 #, c-format msgid "%s begins with \"%s\"" msgstr "" #: ../pan/usenet-utils/filter-info.cc:278 #, fuzzy, c-format msgid "%s ends with \"%s\"" msgstr "berakhir dengan" #: ../pan/usenet-utils/filter-info.cc:279 #, fuzzy, c-format msgid "%s matches the regex \"%s\"" msgstr "sepadan dengan ungkapan biasa" #: ../pan/usenet-utils/filter-info.cc:285 msgid "Any of these tests fail:" msgstr "" #: ../pan/usenet-utils/filter-info.cc:292 msgid "All of these tests pass:" msgstr "" #: ../pan/usenet-utils/filter-info.cc:299 msgid "None of these tests pass:" msgstr "" #: ../pan/usenet-utils/filter-info.cc:306 msgid "Any of these tests pass:" msgstr "" #: ../pan/usenet-utils/gnksa.cc:878 #, c-format msgid "No email address provided; generating message-id with domain \"%s\"" msgstr "" "Alamat e-mel tidak diberikan, menghasilkan id mesej dengan domain \"%s\"" #: ../pan/usenet-utils/message-check.cc:124 #, fuzzy msgid "Warning: Reply seems to be top-posted." msgstr "AMARAN: Balasan nampaknya diposkan ke atas." #: ../pan/usenet-utils/message-check.cc:145 #, fuzzy msgid "Warning: The signature marker should be \"-- \", not \"--\"." msgstr "AMARAN: Penanda tanda tangan sepatutnya \"-- \", bukan \"--\"." #: ../pan/usenet-utils/message-check.cc:162 #, fuzzy msgid "Warning: Signature prefix with no signature." msgstr "AMARAN: Awalan tandatangan tidak ada tandatangan." #: ../pan/usenet-utils/message-check.cc:167 #, fuzzy msgid "Warning: Signature is more than 4 lines long." msgstr "AMARAN: Tandatangan lebih daripada 4 baris panjang" #: ../pan/usenet-utils/message-check.cc:172 #, fuzzy msgid "Warning: Signature is more than 80 characters wide." msgstr "AMARAN: Tandatangan lebih daripada 80 aksara lebar" #: ../pan/usenet-utils/message-check.cc:198 #, fuzzy, c-format msgid "Warning: %d line is more than 80 characters wide." msgid_plural "Warning: %d lines are more than 80 characters wide." msgstr[0] "AMARAN: Baris %d lebih daripada 80 aksara lebar." msgstr[1] "AMARAN: Baris %d lebih daripada 80 aksara lebar." #: ../pan/usenet-utils/message-check.cc:223 #, fuzzy msgid "Error: Message is empty." msgstr "RALAT: Mesej kosong." #: ../pan/usenet-utils/message-check.cc:258 #, fuzzy msgid "Warning: The message is entirely quoted text!" msgstr "AMARAN: Seluruh mesej ialah teks yang dipetik!" #: ../pan/usenet-utils/message-check.cc:259 #, fuzzy msgid "Warning: The message is mostly quoted text." msgstr "AMARAN: Sebahagian mesej ialah tek yang dipetik." #: ../pan/usenet-utils/message-check.cc:309 #, fuzzy msgid "Error: Message appears to have no new content." msgstr "RALAT: Mesej tidak mempunyai kandungan baru" #: ../pan/usenet-utils/message-check.cc:344 #: ../pan/usenet-utils/message-check.cc:383 #, c-format msgid "" "Warning: The posting profile's server doesn't carry newsgroup\n" "\t\"%s\".\n" "\tIf the group name is correct, switch profiles in the \"From:\"\n" "\tline or edit the profile with \"Edit|Manage Posting Profiles\"." msgstr "" #: ../pan/usenet-utils/message-check.cc:355 #, fuzzy msgid "Warning: Following-Up to too many groups." msgstr "AMARAN: Membuat susulan terlalu banyak kumpulan." #: ../pan/usenet-utils/message-check.cc:366 #, fuzzy msgid "Error: No Subject specified." msgstr "RALAT: Subjek tidak ditentukan" #: ../pan/usenet-utils/message-check.cc:395 #, fuzzy, c-format msgid "Warning: Group \"%s\" is read-only." msgstr "AMARAN: Kumpulan \"%*.*s\" dalam format baca sahaja" #: ../pan/usenet-utils/message-check.cc:404 #, fuzzy msgid "Error: Posting to a very large number of groups." msgstr "RALAT: Mengepos ke terlalu banyak kumpulan." #: ../pan/usenet-utils/message-check.cc:409 #, fuzzy msgid "Warning: Posting to a large number of groups." msgstr "AMARAN: Mengepos ke terlalu banyak kumpulan." #: ../pan/usenet-utils/message-check.cc:416 #, fuzzy msgid "Warning: Crossposting without setting Followup-To header." msgstr "AMARAN: Mengepos silang tanpa seting Susulan-Ke" #: ../pan/usenet-utils/message-check.cc:441 #, fuzzy msgid "Error: Bad email address." msgstr "_Alamat E-mel" #: ../pan/usenet-utils/message-check.cc:450 msgid "Warning: Most newsgroups frown upon HTML posts." msgstr "" #: ../pan/usenet-utils/message-check.cc:486 #, fuzzy msgid "Error: No Recipients." msgstr "RALAT: Subjek tidak ditentukan" #: ../pan/usenet-utils/scorefile.cc:304 #, fuzzy, c-format msgid "" "Error reading score in %*.*s, line %d: expected 'Expires: MM/DD/YYYY' or " "'Expires: DD-MM-YYYY'." msgstr "" "menjangkakan 'Tamat tempoh: BB/HH/TTTT' atau 'Tamat tempoh: BB/HH/TTTT'" #: ../pan/usenet-utils/scorefile.cc:307 #, c-format msgid "Expired old score from %*.*s, line %d" msgstr "" #: ../pan/usenet-utils/scorefile.cc:380 #, c-format msgid "Error reading score in %*.*s, line %d: unexpected line." msgstr "" #: ../pan/usenet-utils/scorefile.cc:428 #, c-format msgid "Read %lu scoring rules in %lu sections from \"%s\"" msgstr "" #: ../pan/usenet-utils/ssl-utils.h:199 #, fuzzy, c-format msgid "Error printing the server certificate for '%s'" msgstr "Ralat menghuraikan baris arahan \"pelayar web\": %s" #: ../pan/usenet-utils/ssl-utils.h:216 #, c-format msgid "" "The current server '%s' sent this security certificate :\n" "\n" msgstr "" #: ../pan/usenet-utils/ssl-utils.h:217 #, c-format msgid "" "Certificate information for server '%s' :\n" "\n" msgstr "" #: ../pan/usenet-utils/ssl-utils.h:219 #, c-format msgid "" "%sIssuer information:\n" "%s\n" "Valid until : %s\n" "\n" "Not valid before : %s\n" "\n" msgstr "" #: ../pan/usenet-utils/text-massager.cc:397 msgid "> [quoted text muted]" msgstr "> [teks yang dipetik dibisukan]" #~ msgid "Read News from Usenet" #~ msgstr "Membaca Berita dari Usenet" #, fuzzy #~ msgid "_Toggle Flag on for Thread" #~ msgstr "/_Perhatikan Bebenang" #, fuzzy #~ msgid "Error!" #~ msgstr "Ralat" #, fuzzy #~ msgid "Signer : " #~ msgstr "_Fail Tandatangan:" #, fuzzy #~ msgid "_Signature:" #~ msgstr "_Fail Tandatangan:" #, fuzzy #~ msgid "Creating directory \"%s\"" #~ msgstr "Ralat membuka direktori \"%s\": %s)" #~ msgid "Couldn't create directory \"%s\": %s" #~ msgstr "Tidak dapat mewujudkan direktori \"%s\": %s" #, fuzzy #~ msgid "Can't use regular expression \"%s\": %s at position %d" #~ msgstr "Tidak boleh menggunakan ungkapan biasa \"%s\": %s" #, fuzzy #~ msgid "_Groups" #~ msgstr "Kumpulan" #, fuzzy #~ msgid "Read Selected Group" #~ msgstr "Baca Kumpulan Seterusnya yang Belum Dibaca" #, fuzzy #~ msgid "_Mark Group _Read" #~ msgstr "/Tandakan _Bacaan Kumpulan" #, fuzzy #~ msgid "_Delete Group's Articles" #~ msgstr "/_Hapuskan Artikel Kumpulan" #, fuzzy #~ msgid "Get New Headers for Selected Groups" #~ msgstr "Dapatkan Pengepala Baru dalam Kumpulan yang Dipilih" #, fuzzy #~ msgid "Get New Headers for Subscribed Groups" #~ msgstr "Dapatkan Pengepala Baru dalam Kumpulan Terlanggan" #, fuzzy #~ msgid "Get Headers from Server" #~ msgstr "Mendapatkan kumpulan %d dari pelayan \"%s\"" #, fuzzy #~ msgid "Get a new Group list from the Server" #~ msgstr "Mendapatkan %d kumpulan baru dari pelayan \"%s\"" #, fuzzy #~ msgid "Subscribe to Selected Groups" #~ msgstr "Kumpulan berita yang Dilanggan" #, fuzzy #~ msgid "Unsubscribe from Selected Groups" #~ msgstr "Kumpulan berita yang Dilanggan" #, fuzzy #~ msgid "Save Selected Articles..." #~ msgstr "Dapatkan Artikel yang Dipilih" #~ msgid "Cancel Last Task" #~ msgstr "Batalkan Tugas Akhir" #, fuzzy #~ msgid "Clear Header Pane" #~ msgstr "Anak Tetingkap Pengepala" #, fuzzy #~ msgid "Clear Body Pane" #~ msgstr "Anak Tetingkap Bada_n" #, fuzzy #~ msgid "Download _Selected Article" #~ msgstr "Memuatturunkan 1 artikel" #, fuzzy #~ msgid "Download Selected Article" #~ msgstr "Memuatturunkan 1 artikel" #, fuzzy #~ msgid "Read _Selected Article" #~ msgstr "Baca Artikel Seterusnya yang Belum Dibaca" #, fuzzy #~ msgid "Next Unread Group" #~ msgstr "/_Pergi/Kumpulan Belum Dibaca Seterusnya" #, fuzzy #~ msgid "Next Group" #~ msgstr "/_Pergi/Kumpulan Seterusnya" #, fuzzy #~ msgid "Next Watched Article" #~ msgstr "/_Pergi/Artikel Yang _Diperhatikan Seterusnya" #, fuzzy #~ msgid "Next Thread" #~ msgstr "/_Pergi/Bebenang Seterus_nya" #, fuzzy #~ msgid "Previous Article" #~ msgstr "/_Pergi/Artikel Sebelumnya" #, fuzzy #~ msgid "Previous Thread" #~ msgstr "/_Pergi/Bebenang Sebelumnya" #, fuzzy #~ msgid "Parent Article" #~ msgstr "/_Pergi/Artikel Ibu" #, fuzzy #~ msgid "_Plonk Author" #~ msgstr "/_Artikel/_Masukkan Pengarang" #, fuzzy #~ msgid "Mark Article as Read" #~ msgstr "Artikel perlu dibaca" #, fuzzy #~ msgid "Mark Article as Unread" #~ msgstr "Artikel belum dibaca" #, fuzzy #~ msgid "Reply to Author" #~ msgstr "/_Artikel/_Masukkan Pengarang" #, fuzzy #~ msgid "_About..." #~ msgstr "/_Bantuan/_Tentang..." #, fuzzy #~ msgid "Abbreviate _Names in Group Pane" #~ msgstr "/_Lihat/Ringkaskan _Nama dalam Anak Tetingkap Kumpulan" #, fuzzy #~ msgid "Match Only Articles Posted by Me" #~ msgstr "Padankan Artikel Saya Sahaja" #, fuzzy #~ msgid "Central European (ISO-8859-2)" #~ msgstr "Eropah Tengah" #, fuzzy #~ msgid "Central European (Windows-1250)" #~ msgstr "Eropah Tengah" #, fuzzy #~ msgid "Chinese Simplified (gb2312)" #~ msgstr "Bahasa Cina Mudah" #, fuzzy #~ msgid "Chinese Traditional (big5)" #~ msgstr "Bahasa Cina Tradisional" #, fuzzy #~ msgid "Cyrillic (KOI8-R)" #~ msgstr "Siril" #, fuzzy #~ msgid "Cyrillic, Ukrainian (KOI8-U)" #~ msgstr "Siril, Ukraine" #, fuzzy #~ msgid "Western, New (ISO-8859-15)" #~ msgstr "Barat, Baru" #, fuzzy #~ msgid "Unicode (UTF-8)" #~ msgstr "Unikod, UTF-8" #, fuzzy #~ msgid "Pan: " #~ msgstr "Pan: Peraturan" #, fuzzy #~ msgid "Group Name" #~ msgstr "Kumpulan Anak Tetingkap" #, fuzzy #~ msgid "Pan: %s" #~ msgstr "Pan: Peraturan" #~ msgid "Tasks: %u/%u" #~ msgstr "Tugas: %u/%u" #~ msgid "%u Tasks Running, %u Tasks Total" #~ msgstr "Tugas %u Dijalankan, Jumlah Tugas %u" #, fuzzy #~ msgid "Wrap the Article Body to 80 Columns" #~ msgstr "/_Lihat/Lipat Badan Artikel" #, fuzzy #~ msgid "_Close" #~ msgstr "Warna" #, fuzzy #~ msgid "Close Window" #~ msgstr "Tutup tetingkap log" #, fuzzy #~ msgid "Cut Text" #~ msgstr "Teks yang Dipetik:" #, fuzzy #~ msgid "Copy Text" #~ msgstr "Lipat Teks" #, fuzzy #~ msgid "_Paste" #~ msgstr "_Pos" #, fuzzy #~ msgid "Paste Text" #~ msgstr "Simpan Teks" #, fuzzy #~ msgid "Manage Posting Pr_ofiles..." #~ msgstr "/_Alat/_Mengepos Profil..." #~ msgid "Western" #~ msgstr "Barat" #, fuzzy #~ msgid "Error loading post.ui: \"%s\"" #~ msgstr "Ralat membaca dari soket: %s" #, fuzzy #~ msgid "Editors" #~ msgstr "Editor" #, fuzzy #~ msgid "Posting Article" #~ msgstr "Mengisih Artikel" #, fuzzy #~ msgid "Add a New Profile" #~ msgstr "Tambahkan profil baru" #~ msgid "Edit the selected profile" #~ msgstr "Edit profil yang dipilih" #~ msgid "Remove the selected profile" #~ msgstr "Keluarkan profil yang dipilih" #, fuzzy #~ msgid "Threads" #~ msgstr "_Baca Bebenang:" #, fuzzy #~ msgid "Path" #~ msgstr "Bahagian" #, fuzzy #~ msgid "_Path:" #~ msgstr "_Pos" #, fuzzy #~ msgid "Group Management" #~ msgstr "Kumpulan Anak Tetingkap" #, fuzzy #~ msgid "Pan: New Scoring Rule" #~ msgstr "Pan: Edit Peraturan" #, fuzzy #~ msgid "Then" #~ msgstr "Terima kasih" #, fuzzy #~ msgid "For" #~ msgstr "Folder" #, fuzzy #~ msgid "Name: \"%s\"" #~ msgstr "Simpan \"%s\"" #, fuzzy #~ msgid "Pan: Add a Server" #~ msgstr "Pan: Edit Pelayan" #, fuzzy #~ msgid "Pan: Edit a Server's Settings" #~ msgstr "Pan: Edit Pelayan" #~ msgid "Pan: Servers" #~ msgstr "Pan: Pelayan" #, fuzzy #~ msgid "to %s" #~ msgstr "Tentang %s" #~ msgid "Status" #~ msgstr "Status" #, fuzzy #~ msgid "Unable to set group: %s" #~ msgstr "Tidak dapat mengesetkan kumpulan \"%*.*s\": %s" #, fuzzy #~ msgid "Making a new connection to %*.*s" #~ msgstr "Sambungan baru %p bagi %*.*s, port %d" #, fuzzy #~ msgid "Couldn't load \"%s\": %s" #~ msgstr "Tidak dapat mewujudkan direktori \"%s\": %s" #, fuzzy #~ msgid "" #~ "Error saving \"%s\":\n" #~ "%s. %s" #~ msgstr "Ralat membaca fail \"%s\": %s" #, fuzzy #~ msgid "Warning: Unknown group \"%s\"." #~ msgstr "AMARAN: Kumpulan tak diketahui: \"%*.*s\"." #, fuzzy #~ msgid "_Posting" #~ msgstr "_Pos" #, fuzzy #~ msgid "Post New Article" #~ msgstr "Mengisih Artikel" #, fuzzy #~ msgid "Follow-up to Article" #~ msgstr "Susulan ke Kumpulan berita" #, fuzzy #~ msgid "_Post Article" #~ msgstr "_Artikel" #, fuzzy #~ msgid "Post this Article Now" #~ msgstr "Mengepos artikel \"%s\"" #, fuzzy #~ msgid "Error: No Newsgroups specified." #~ msgstr "RALAT: Penerima tidak ditentukan" #, fuzzy #~ msgid "Message-Id" #~ msgstr "ID Mesej" #, fuzzy #~ msgid "Saved newsrc files in %.1f seconds" #~ msgstr "Menyimpan artikel %d dalam \"%s\" dalam %.1f saat (%.0f art/saat)" #, fuzzy #~ msgid "Use _Monospace Font in Body Pane" #~ msgstr "/_Lihat/Gunakan Fon Monospace dalam Anak Tetingkap Badan" #, fuzzy #~ msgid "%d connections totaling %.1f KiB per second" #~ msgstr "Sambungan %d berjumlah %.1f KB setiap saat" #~ msgid "" #~ "Used when email replies to your posts should go somewhere other than the " #~ "email address above. Because Reply-To: is relatively difficult for " #~ "spammers to harvest, it's polite give your email address here if you gave " #~ "an invalid email address above." #~ msgstr "" #~ "Digunakan apabila e-mel membalas pos anda perlu pergi ke tempat lain " #~ "selain daripada alamat e-mel di atas. Kerana Balas-Kepada: sukar untuk " #~ "spammers membiak secara relatifnya, adalah lebih baik anda berikan alamat " #~ "e-mel anda di sini jika anda beri alamat e-mel yang tak sah di atas." #~ msgid "_Reply-To Header:" #~ msgstr "_Balasan Kepada Pengepala:" #~ msgid "Or_ganization Header:" #~ msgstr "Pe_ngepala Organisasi" #, fuzzy #~ msgid "Attach this _Signature:" #~ msgstr "Tandatangan:" #~ msgid "Automatic Downloads" #~ msgstr "Muat turun Automatik" #, fuzzy #~ msgid "Save a_ttachments to path:" #~ msgstr "Simpan lampiran dalam:" #~ msgid "UNKNOWN" #~ msgstr "UNKNOWN" #, fuzzy #~ msgid "Decode can't access directory \"%s\"" #~ msgstr "Menyahkod tidak dapat mencapai laluan \"%s\"" #~ msgid "Could not decode article - file may be corrupt/incomplete" #~ msgstr "Tidak dapat menyahkod artikel - fail mungkin rosak/tak lengkap" #~ msgid "Checksum for `%s' part %d failed - file is corrupt" #~ msgstr "Hasil tambah semak bagi bahagian `%s' gagal %d - fail rosak" #~ msgid "Checksum for `%s' failed - file may be corrupt" #~ msgstr "Hasil tambah semak bagi `%s' gagal - fail mungkin rosak" #, fuzzy #~ msgid "Use custom colors in _Header Pane" #~ msgstr "Gunakan fon biasa dalam Anak Tetingkap Pengepala:" #, fuzzy #~ msgid "Header Pane background:" #~ msgstr "Skor Anak Tetingkap Pengepala" #, fuzzy #~ msgid "Unread articles:" #~ msgstr "_Bebenang Belum Dibaca:" #, fuzzy #~ msgid "" #~ "Unsupported data version (%d) for server properties. Are you running an " #~ "old version of Pan by accident?" #~ msgstr "" #~ "Versi data yang tak disokong %d bagi fail data \"%s\".\n" #~ "Adakah anda menjalankan versi lama Pan secara tidak sengaja?" #, fuzzy #~ msgid "Couldn't create temporary file: %s" #~ msgstr "Tidak dapat mewujudkan fail sementara: %s" #~ msgid "Error renaming \"%s\" as \"%s\": %s." #~ msgstr "Ralat menamakan semula \"%s\" as \"%s\": %s." #~ msgid "Can't backup \"%s\" as \"%s\": %s" #~ msgstr "Tidak dapat membuat sandaran \"%s\" sebagai \"%s\": %s" #~ msgid "Can't write to \"%s\": %s" #~ msgstr "Tidak dapat menulis ke \"%s\": %s" #~ msgid "Body" #~ msgstr "Badan" #, fuzzy #~ msgid "Open a Draft Article from Disk" #~ msgstr "Artikel %u telah tamat tempoh dari `%s'" #, fuzzy #~ msgid "subject" #~ msgstr "Subjek" #, fuzzy #~ msgid "author" #~ msgstr "Pengarang" #~ msgid "Change" #~ msgstr "Ubah" #~ msgid "Connections" #~ msgstr "Sambungan" #, fuzzy #~ msgid "Active" #~ msgstr "Tindakan" #~ msgid "" #~ "Unable to cancel article: Couldn't find matching article in folder `pan." #~ "sent'!" #~ msgstr "" #~ "Tidak dapat membatalkan artikel: Tidak dapat mencari artikel yang sepadan " #~ "dalam folder 'pan.sent'!" #~ msgid "" #~ "Unable to supersede article: Couldn't find matching article in folder " #~ "`pan.sent'!" #~ msgstr "" #~ "Tidak dapat menggantikan artikel: Tidak dapat mencari artikel yang " #~ "sepadan dalam folder `pan.sent'!" #~ msgid "You must download the article before you can cancel it." #~ msgstr "" #~ "Anda mestilah memuatturunkan artikel sebelum anda boleh membatalkannya." #~ msgid "You must download the article before you can supersede it." #~ msgstr "" #~ "Anda mestilah memuatturunkan artikel sebelum anda boleh menggantikannya." #~ msgid "Pan: Find Article" #~ msgstr "Pan: Cari Artikel" #~ msgid "_Author:" #~ msgstr "_Pengarang:" #~ msgid "Case Sensiti_ve" #~ msgstr "Peka Hur_uf" #~ msgid "_Unread Only" #~ msgstr "_Belum Dibaca Sahaja" #~ msgid "Fin_d:" #~ msgstr "Car_i:" #~ msgid "" #~ "Type in a search string and press ENTER.\n" #~ "Wildcards are allowed." #~ msgstr "" #~ "Masukkan rentetan carian dan tekan ENTER.\n" #~ "Kad bebas dibenarkan." #~ msgid "/---" #~ msgstr "/---" #~ msgid "/Save A_ttachments" #~ msgstr "/Simpan L_ampiran" #~ msgid "/D_ownload Flagged" #~ msgstr "/Muat turun Ditandakan" #~ msgid "/_Flag" #~ msgstr "/_Bendera" #~ msgid "/_Unflag" #~ msgstr "/_Buang bendera" #~ msgid "/_Create Score" #~ msgstr "/_Wujudkan Skor" #~ msgid "/_Copy to Folder" #~ msgstr "/_Salin ke Folder" #~ msgid "/_Delete" #~ msgstr "/_Hapus" #~ msgid "Scoring Articles" #~ msgstr "Membuat skor Artikel" #~ msgid "Filtering Articles" #~ msgstr "Menapis Artikel" #~ msgid "Updating Header Pane..." #~ msgstr "Mengemas kini Anak Tetingkap Pengepala..." #~ msgid "Loading group \"%s\"" #~ msgstr "Memuatkan kumpulan \"%s\"" #~ msgid "Flushing article cache... " #~ msgstr "Mengosongkan cache artikel" #~ msgid "%d files erased." #~ msgstr "%d fail dipadamkan" #~ msgid "Error saving article \"%s\" (is %s full?)" #~ msgstr "Ralat menyimpan artikel \"%s\" (%s penuh?)" #~ msgid "Directory \"%s\" contains %.1f MB in %d files" #~ msgstr "Direktori \"%s\" mengandungi %.1f MB dalam %d fail" #~ msgid "Unparseable Subject" #~ msgstr "Subjek tidak boleh hurai" #~ msgid "Couldn't parse a Message-ID from the raw message!" #~ msgstr "Tidak dapat menghuraikan ID Mesej dari mesej mentah!" #~ msgid "unknown@spammesenseless.com" #~ msgstr "unknown@spammesenseless.com" #~ msgid "Can't create file \"%s\" %s" #~ msgstr "Tidak dapat mewujudkan fail \"%s\" %s" #~ msgid "Error saving file \"%s\" - is the disk full?" #~ msgstr "Ralat menyimpan fail \"%s\" - cakera penuh?" #~ msgid "Decoded \"%s\" from group \"%*.*s\", \"%s\"" #~ msgstr "Dinyahkod \"%s\" dari kumpulan \"%*.*s\", \"%s\"" #~ msgid "Loading %u of %d groups" #~ msgstr "Memuatkan %u dari kumpulan %d" #~ msgid "" #~ "Skipped %d groups due to possible corruption in \"%s\" and \"%s\". You " #~ "may want to delete these files and get a new grouplist from your news " #~ "server." #~ msgstr "" #~ "Langkau ke kumpulan %d kerana mungkin ada kerosakan dalam \"%s\" dan \"%s" #~ "\". Anda mungkin ingin menghapuskan fail ini dan mendapatkan senarai " #~ "kumpulan baru dari pelayan berita anda." #~ msgid "Loaded %d groups for server \"%s\" in %.1f seconds (%.0f groups/sec)" #~ msgstr "" #~ "Memuatkan %d kumpulan untuk pelayan \"%s\" dalam %.1f saat (%.0f kumpulan/" #~ "saat)" #~ msgid "Saved %d of %u groups" #~ msgstr "Menyimpan %d bagi %u kumpulan" #~ msgid "Error saving list of groups to \"%s\" - is the disk full?" #~ msgstr "Ralat menyimpan senarai kumpulan ke \"%s\" - cakera penuh?" #~ msgid "Saved %d groups in \"%s\" in %.1f seconds (%.0f groups/sec)" #~ msgstr "" #~ "Menyimpan kumpulan %d dalam \"%s\" dalam %.1f saat (%.0f kumpulan/saat)" #~ msgid "Loaded %d of %d articles" #~ msgstr "Memuatkan %d bagi artikel %d" #~ msgid "" #~ "Pan skipped %d corrupt headers from the local cache for group \"%*.*s\"." #~ msgstr "" #~ "Pan melangkau %d pengepala yang rosak dari cache setempat bagi kumpulan " #~ "\"%*.*s\"." #~ msgid "You may want to empty this group and download fresh headers." #~ msgstr "" #~ "Anda mungkin ingin mengosongkan kumpulan ini dan memuatturunkan pengepala " #~ "baru." #~ msgid "The group will not be saved -- can't create file \"%s\"" #~ msgstr "Kumpulan tidak akan disimpan -- tidak boleh mewujudkan fail \"%s\"" #~ msgid "Unable to save headers for group \"%*.*s\" - is the disk full?" #~ msgstr "" #~ "Tidak dapat menyimpan pengepala bagi kumpulan \"%*.*s\" - adakah cakera " #~ "penuh?" #~ msgid "(No Group)" #~ msgstr "(Tiada Kumpulan)" #~ msgid "ERROR: invalid address \"%s\"" #~ msgstr "RALAT: Alamat tak sah \"%s\"" #~ msgid "ERROR: Must have one author in From: line" #~ msgstr "RALAT: Mestilah mempunyai satu pengarah dalam Dari: baris" #~ msgid "Imported %d groups (%d new) from \"%s\"" #~ msgstr "Mengimport kumpulan %d (baru %d) dari \"%s\"" #~ msgid "Exported %d groups (%d subscribed) to \"%s\"" #~ msgstr "Mengeksport kumpulan %d (langganan %d) ke \"%s\"" #~ msgid "Imported %d lines from Gnome config file" #~ msgstr "Mengimport baris %d dari fail konfig Gnome" #~ msgid "%s does not appear to be a valid datafile" #~ msgstr "%s tidak muncul sebagai fail data yang sah" #~ msgid "Error converting string \"%*s\" to utf8: %d - %s" #~ msgstr "Ralat menukarkan rentetan \"%*s\" ke utf8: %d - %s" #~ msgid "No name specified!" #~ msgstr "Tiada nama ditentukan!" #~ msgid "Server is corrupt" #~ msgstr "Pelayan telah rosak" #~ msgid "A newsreader for GNOME" #~ msgstr "Pembaca berita bagi GNOME" #~ msgid "Programmer" #~ msgstr "Pengatur cara" #~ msgid "Project Originator, Programmer" #~ msgstr "Pemula Projek, Pengatur cara" #~ msgid "Programmer, 0.6 - 0.7" #~ msgstr "Pengatur cara, 0.6 - 0.7" #~ msgid "" #~ "Pan %s Translations\n" #~ "%s\n" #~ "\n" #~ "Pan %s Code or Patches\n" #~ "%s\n" #~ "\n" #~ "Pan %s Suggestions and Testing\n" #~ "%s\n" #~ msgstr "" #~ "Terjemahan %s Pan\n" #~ "%s\n" #~ "\n" #~ "Kod atau Tampalan %s Pan\n" #~ "%s\n" #~ "\n" #~ "Cadangan dan Ujian %s Pan\n" #~ "%s\n" #~ msgid "_Directory for saving articles:" #~ msgstr "_Direktori untuk menyimpan artikel:" #~ msgid "Default charse_t:" #~ msgstr "Set aksar_t piawai:" #~ msgid "Pan: Download Headers for group `%s'" #~ msgstr "Pan: Memuatturunkan Pengepala untuk kumpulan `%s'" #~ msgid "Pan: Download Headers" #~ msgstr "Pan: Memuatturunkan Pengepala" #~ msgid "Download _new headers" #~ msgstr "Memuatturunkan pengepala _baru" #~ msgid "_Download bodies too" #~ msgstr "_Memuatturunkan badan juga" #~ msgid "How should you appear when posting articles?" #~ msgstr "Bagaimana rupa bentuk anda apabila mengepos artikel?" #~ msgid "Your _Name:" #~ msgstr "Nama _Anda:" #~ msgid "Email _Address:" #~ msgstr "Alamat _E-mel" #~ msgid "_Organization:" #~ msgstr "_Organisasi" #~ msgid "default" #~ msgstr "piawai" #~ msgid "What mail server should Pan use?" #~ msgstr "Apakah pelayan mel yang harus digunakan oleh Pan?" #~ msgid "What news server should Pan use?" #~ msgstr "Apakah pelayan berita yang harus digunakan oleh Pan?" #~ msgid "Short name for Pan to show, e.g. \"mynewsserver\"" #~ msgstr "Nama pendek bagi Pan untuk ditunjukkan, cth. \"mynewsserver\"" #~ msgid "Short _name for Pan to show:" #~ msgstr "Nama _pendek bagi Pan untuk ditunjukkan:" #~ msgid "Login" #~ msgstr "Log masuk" #~ msgid "Server requires authori_zation" #~ msgstr "Pelayan memerlukan pengesahan" #~ msgid "Pan Setup Wizard" #~ msgstr "Wizard Persediaan Pan" #~ msgid "Thank you for trying Pan!" #~ msgstr "Terima kasih kerana mencuba Pan!" #~ msgid "" #~ "Thank you for trying Pan!\n" #~ " \n" #~ "If you are new to Usenet,\n" #~ "%s\n" #~ "is a starting point to see what Usenet is,\n" #~ "where to find a free news server,\n" #~ "and how to use Pan.\n" #~ " \n" #~ "Since this is your first time running Pan,\n" #~ "we'll need to gather some information.\n" #~ msgstr "" #~ "Terima kasih kerana mencuba Pan!\n" #~ " \n" #~ "Jika anda baru menggunakan Usenet,\n" #~ "%s\n" #~ "ia merupakan titik permulaan untuk melihat apakah itu Usenet,\n" #~ "di manakah untuk mencari pelayan berita percuma,\n" #~ "dan bagaimanakah menggunakan Pan.\n" #~ " \n" #~ "Memandangkan ini kali pertama anda menjalankan Pan,\n" #~ "kita perlu mendapatkan beberapa maklumat.\n" #~ msgid "About You" #~ msgstr "Tentang Anda" #~ msgid "News Server" #~ msgstr "Pelayan Berita" #~ msgid "Ready!" #~ msgstr "Sedia!" #~ msgid "" #~ "You have successfully entered all of\n" #~ "the information required to set up Pan.\n" #~ "\n" #~ "To save these settings, click Save." #~ msgstr "" #~ "Anda telah berjaya memasukkan semua\n" #~ "maklumat yang diperlukan untuk menyediakan Pan.\n" #~ "\n" #~ "Untuk menyimpan seting ini, klik Simpan." #~ msgid "License" #~ msgstr "Lesen" #~ msgid "Authors" #~ msgstr "Pengarang" #~ msgid "Thanks to" #~ msgstr "Terima kasih kepada" #~ msgid " (No conditions -- no articles will match)" #~ msgstr " (Tiada keadaan -- tiada artikel akan padan)" #~ msgid " (No conditions -- all articles will match)" #~ msgstr " (Tiada keadaan -- tiada artikel akan padan)" #~ msgid "Pan: Edit Filter" #~ msgstr "Pan: Edit Penapis" #~ msgid "Filter name: " #~ msgstr "Nama penapis:" #~ msgid "Show in Filter Menu" #~ msgstr "Tunjukkan dalam Menu Penapis" #~ msgid "Move the selected line up one line" #~ msgstr "Alihkan baris yang dipilih ke atas satu baris" #~ msgid "Move the selected line down one line" #~ msgstr "Alihkan baris yang dipilih ke bawah satu baris" #~ msgid "Invert" #~ msgstr "Songsang" #~ msgid "All Of" #~ msgstr "Semua" #~ msgid "Any Of" #~ msgstr "Sebarang" #~ msgid "Delete the selected line" #~ msgstr "Hapuskan baris yang dipilih" #~ msgid "Add New Line to the Filter" #~ msgstr "Tambahkan Baris Baru ke Penapis" #~ msgid "New Filter Line" #~ msgstr "Baris Penapis Baru" #~ msgid "does not start with" #~ msgstr "tidak bermula dengan" #~ msgid "does not match regular expression" #~ msgstr "tidak sepadan dengan ungkapan biasa" #~ msgid "Article h_as" #~ msgstr "Artikel m_empunyai" #~ msgid "Incomplete Attachments" #~ msgstr "Lampiran tidak lengkap" #~ msgid "No Attachments" #~ msgstr "Tiada Lampiran" #~ msgid "Article _is" #~ msgstr "Artikel _ialah" #~ msgid "New" #~ msgstr "Baru" #~ msgid "Unread" #~ msgstr "Belum dibaca" #~ msgid "Read" #~ msgstr "Baca" #~ msgid "Cached" #~ msgstr "Cache" #~ msgid "Posted by Me" #~ msgstr "Saya mengeposkannya" #~ msgid "Article has at _least N lines:" #~ msgstr "Artikel mempunyai _sekurang-kurangnya N baris:" #~ msgid "Article _score is at least" #~ msgstr "Skor _artikel sekurang-kurangnya" #~ msgid "Watched" #~ msgstr "Diperhatikan" #~ msgid "High" #~ msgstr "Tinggi" #~ msgid "Medium" #~ msgstr "Sederhana" #~ msgid "Zero" #~ msgstr "Sifar" #~ msgid "Low" #~ msgstr "Rendah" #~ msgid "Ignored" #~ msgstr "Abaikan" #~ msgid "" #~ "This filter is still used by the following rules:\n" #~ "%s\n" #~ "Please remove this dependency first." #~ msgstr "" #~ "Penapis ini masih digunakan mengikut peraturan berikut:\n" #~ "%s\n" #~ "Sila keluarkan kebersandaran ini terlebih dahulu." #~ msgid "Pan: Filters" #~ msgstr "Pan: Penapis" #~ msgid "Filters" #~ msgstr "Penapis" #~ msgid "Add a new filter" #~ msgstr "Tambahkan penapis baru" #~ msgid "Edit the selected filter" #~ msgstr "Edit penapis yang dipilih" #~ msgid "Remove the selected filter" #~ msgstr "Keluarkan penapis yang dipilih" #~ msgid "NONE OF:" #~ msgstr "TIADA SATUPUN:" #~ msgid "ALL OF:" #~ msgstr "SEMUA" #~ msgid "ANY OF:" #~ msgstr "SEBARANG" #~ msgid "Article has complete attachments" #~ msgstr "Artikel mempunyai lampiran lengkap" #~ msgid "Article does not have incomplete attachments" #~ msgstr "Artikel tidak mempunyai lampiran yang tidak lengkap" #~ msgid "Article has incomplete attachments" #~ msgstr "Artikel mempunyai lampiran yang tidak lengkap" #~ msgid "Article has complete or incomplete attachments" #~ msgstr "Artikel mempunyai lampiran yang lengkap dan tidak lengkap" #~ msgid "Article is %d or more bytes long" #~ msgstr "Panjang artikel ialah %d bait atau lebih" #~ msgid "Article is crossposted to at least %d groups" #~ msgstr "Artikel dipos silang kepada sekurang-kurangnya %d kumpulan" #~ msgid "Article was posted in the last %d days" #~ msgstr "Artikel diposkan sejak %d hari yang lalu" #~ msgid "Article is %d or more lines long" #~ msgstr "Panjang artikel ialah %d baris atau lebih" #~ msgid "Article is unread or old" #~ msgstr "Artikel belum dibaca atau telah lama" #~ msgid "Article is new" #~ msgstr "Artikel masih baru" #~ msgid "Article is new or read" #~ msgstr "Artikel baru atau perlu dibaca" #~ msgid "Article is new or unread" #~ msgstr "Artikel baru atau belum dibaca" #~ msgid "Xref" #~ msgstr "Xruj" #~ msgid "watched" #~ msgstr "diperhatikan" #~ msgid "high" #~ msgstr "tinggi" #~ msgid "medium" #~ msgstr "sederhana" #~ msgid "zero" #~ msgstr "sifar" #~ msgid "low" #~ msgstr "rendah" #~ msgid "ignored" #~ msgstr "abaikan" #~ msgid "Score filter will match anything" #~ msgstr "Penapis skor akan padan dengan apa sahaja" #~ msgid "Score filter will match nothing" #~ msgstr "Penapis skor tidak padan dengan kesemuanya" #~ msgid "Article score one of: " #~ msgstr "Artikel skor satu daripada: " #~ msgid "Wrote filters to \"%s\"" #~ msgstr "Tulis penapis ke \"%s\"" #~ msgid "Can't use regular expression \"%s\" from file \"%s\", line %d: %s" #~ msgstr "" #~ "Tidak boleh guna ungkapan biasa \"%s\" dari fail \"%s\", baris %d: %s" #~ msgid "expired old score" #~ msgstr "skor lama tamat tempoh" #~ msgid "skipping unsupported criteria" #~ msgstr "melangkau kriteria yang tidak disokong" #~ msgid "unexpected line." #~ msgstr "baris yang tidak dijangkakan" #~ msgid "Error reading file: " #~ msgstr "Ralat membaca fail" #~ msgid "skipping score because it has no criteria" #~ msgstr "melangkau skor kerana tidak ada kriteria" #~ msgid "" #~ "Loaded %d score entries in %d sections in %.1f seconds (%.0f entries/sec)" #~ msgstr "" #~ "Muatkan %d entri skor dalam %d bahagian dalam %.1f saat (%.0f entri/saat)" #~ msgid "Error score to file \"%s\": %s" #~ msgstr "Ralat skor ke fail \"%s\": %s" #~ msgid "Scored %d entries in %.1f seconds (%.0f articles/sec)" #~ msgstr "Skor %d entri dalam %.1f saat (%.0f artikel/saat)" #~ msgid "Error removing scorefile entry: %s" #~ msgstr "Ralat mengeluarkan entri fail skor: %s" #~ msgid "Scorefile entry removed -- old scorefile \"%s\" backed up as \"%s\"" #~ msgstr "" #~ "Entri fail skor dikeluarkan -- fail skor lama \"%s\" disandarkan sebagai " #~ "\"%s\"" #~ msgid "Folder \"%*.*s\" already exists." #~ msgstr "Folder \"%*.*s\" telah wujud" #~ msgid "Please don't begin folders with \"pan.\"; it confuses me." #~ msgstr "Jangan mulakan folder dengan \"pan.\";, ia mengelirukan saya" #~ msgid "Create New Folder" #~ msgstr "Wujudkan Folder Baru" #~ msgid "New Folder Name:" #~ msgstr "Nama Folder Baru" #~ msgid "/Get New Headers and _Bodies" #~ msgstr "/Dapatkan Pengepala dan Badan Baru" #~ msgid "/More Download _Options..." #~ msgstr "/Lebih banyak _Opsyen Muat turun..." #~ msgid "/Refresh Article _Counts" #~ msgstr "/Muatkan semula _Bilangan Artikel" #~ msgid "/Group _Properties..." #~ msgstr "/_Ciri Kumpulan" #~ msgid " (Moderated)" #~ msgstr " (Sederhana)" #~ msgid " (Read-Only)" #~ msgstr " (Baca Sahaja)" #~ msgid "Subscribed" #~ msgstr "Melanggan" #~ msgid "All Groups" #~ msgstr "Semua Kumpulan" #~ msgid "" #~ "We don't have a list of groups for \"%*.*s\".\n" #~ "Shall we download one?" #~ msgstr "" #~ "Kami tidak mempunyai senarai kumpulan bagi \"%*.*s\".\n" #~ "Bolehkah kami memuatturunkannya?" #~ msgid "Total" #~ msgstr "Jumlah" #~ msgid "Description" #~ msgstr "Huraian" #~ msgid "F_ind:" #~ msgstr "C_ari:" #~ msgid "" #~ "Type in a group search string and press ENTER. Wildcards are allowed." #~ msgstr "" #~ "Masukkan rentetan carian kumpulan dan tekan ENTER. Kad bebas dibenarkan." #~ msgid "" #~ msgstr "" #~ msgid "X-Newsreader" #~ msgstr "X-Pembaca berita" #~ msgid "X-Mailer" #~ msgstr "X-Penghantar mel" #~ msgid "User-Agent" #~ msgstr "Pengguna-Ejen" #~ msgid "News server connection count: %d" #~ msgstr "Bilangan sambungan pelayan berita: %d" #~ msgid "The Task Manager is Empty" #~ msgstr "Pengurus Tugas Kosong" #~ msgid "Pan is Online" #~ msgstr "Pan Dalam Talian" #~ msgid "Connection" #~ msgstr "Sambungan" #~ msgid "Post" #~ msgstr "Pos" #~ msgid "Get" #~ msgstr "Dapatkan" #~ msgid "Mine" #~ msgstr "Kepunyaan Saya" #~ msgid "Net" #~ msgstr "Jaringan" #~ msgid "/_File/Save A_ttachments" #~ msgstr "/_Fail/Simpan L_ampiran" #~ msgid "/_File/_Save Attachments As..." #~ msgstr "/_Fail/Simpan L_ampiran Sebagai..." #~ msgid "/_File/---" #~ msgstr "/_Fail/---" #~ msgid "/_File/_Cancel Last Task" #~ msgstr "/_Fail/_Batalkan Tugas Akhir" #~ msgid "/_File/_New Folder..." #~ msgstr "/_Fail/_Folder Baru..." #~ msgid "/_File/Delete _Folder..." #~ msgstr "/_Fail/Hapuskan _Folder..." #~ msgid "/_File/_Edit Article in Folder" #~ msgstr "/_Fail/Edit Artikel dalam Folder" #~ msgid "/_File/E_xit" #~ msgstr "/_Fail/K_eluar" #~ msgid "/_Edit/Select all" #~ msgstr "/_Edit/Pilih semua" #~ msgid "/_Edit/Deselect all" #~ msgstr "/_Edit/Nyahpilih semua" #~ msgid "/_Edit/---" #~ msgstr "/_Edit/---" #~ msgid "/_Edit/Select all _Groups" #~ msgstr "/_Edit/Pilih semua _Kumpulan" #~ msgid "/_Edit/Add S_ubscribed to Selection" #~ msgstr "/_Edit/Tambahkan L_angganan ke Pemilihan" #~ msgid "/_Edit/Deselect all G_roups" #~ msgstr "/_Edit/Nyahpilih semua K_umpulan" #~ msgid "/_Edit/_Find..." #~ msgstr "/_Edit/_Cari..." #~ msgid "/_Edit/Find _Next" #~ msgstr "/_Edit/Cari _Seterusnya" #~ msgid "/_View/---" #~ msgstr "/_Lihat/---" #~ msgid "/_View/Thr_ead Header Pane" #~ msgstr "/_Lihat/Anak Tetingkap Pengepala Bebenang" #~ msgid "/_View/_Rot13 Selected Text" #~ msgstr "/_Lihat/_Rot13 Teks yang Dipilih" #~ msgid "/_View/E_xpand Selected Threads" #~ msgstr "/_Lihat/Tambahkan Bebenang yang Dipilih" #~ msgid "/_View/C_ollapse Selected Threads" #~ msgstr "/_Lihat/Runtuhkan Bebenang yang Dipilih" #~ msgid "/Filte_r/---" #~ msgstr "/Penapi_s/---" #~ msgid "/Filte_r/Match Only _Cached Articles" #~ msgstr "/Penapi_s/Padankan _Artikel Cache Sahaja" #~ msgid "/Filte_r/Match Only _Text Articles" #~ msgstr "/Penapi_s/Padankan Artikel _Teks Sahaja" #~ msgid "/Filte_r/Match Only _Binary Attachment Articles" #~ msgstr "/Penapi_s/Padankan Artikel Lampiran _Binari Sahaja" #~ msgid "/Filte_r/Match Only _My Articles" #~ msgstr "/Penapi_s/Padankan Artikel _Saya Sahaja" #~ msgid "/Filte_r/Match _New Articles" #~ msgstr "/Penapi_s/Padankan _Artikel Baru" #~ msgid "/Filte_r/Match _Unread Articles" #~ msgstr "/Penapi_s/Padankan _Artikel yang Belum Dibaca" #~ msgid "/_Go/Read More" #~ msgstr "/_Pergi/Baca Lagi" #~ msgid "/_Go/---" #~ msgstr "/_Pergi/---" #~ msgid "/_Go/Next _New Article" #~ msgstr "/_Pergi/Artikel _Baru Seterusnya" #~ msgid "/_Go/Previous Article _Read" #~ msgstr "/_Pergi/Artikel yang Dibaca Sebelumnya" #~ msgid "/_Servers" #~ msgstr "/_Pelayan" #~ msgid "/_Servers/Get List of _All Groups" #~ msgstr "/_Pelayan/Dapatkan Senarai _Semua Kumpulan" #~ msgid "/_Servers/Get List of _New Groups" #~ msgstr "/_Pelayan/Dapatkan Senarai _Kumpulan Baru" #~ msgid "/_Servers/---" #~ msgstr "/_Pelayan/---" #~ msgid "/_Newsgroups/Mark Group _Read" #~ msgstr "/_Kumpulan berita/Tandakan _Bacaan Kumpulan" #~ msgid "/_Newsgroups/_Delete Group's Articles" #~ msgstr "/_Kumpulan berita/Hapuskan Artikel Kumpulan" #~ msgid "/_Newsgroups/---" #~ msgstr "/_Kumpulan berita/---" #~ msgid "/_Newsgroups/Get New _Headers" #~ msgstr "/_Kumpulan berita/Dapatkan Pengepala _Baru" #~ msgid "/_Newsgroups/Get New Headers and _Bodies" #~ msgstr "/_Kumpulan berita/Dapatkan Pengepala dan Badan _Baru" #~ msgid "/_Newsgroups/More Download _Options..." #~ msgstr "/_Kumpulan berita/Lebih banyak _Opsyen Muat turun" #~ msgid "/_Newsgroups/Refresh Article _Counts" #~ msgstr "/_Kumpulan berita/Muatkan semula _Bilangan Artikel" #~ msgid "/_Newsgroups/Get New Headers in Subscribed _Groups" #~ msgstr "" #~ "/_Kumpulan berita/Dapatkan Pengepala Baru dalam _Kumpulan Terlanggan" #~ msgid "/_Newsgroups/_Subscribe" #~ msgstr "/_Kumpulan berita/_Langgan" #~ msgid "/_Newsgroups/_Unsubscribe" #~ msgstr "/_Kumpulan berita/_Tidak Melanggan" #~ msgid "/_Newsgroups/Group _Properties..." #~ msgstr "/_Kumpulan berita/_Ciri Kumpulan..." #~ msgid "/_Newsgroups/Dele_te Group" #~ msgstr "/_Kumpulan berita/Hapuskan Kumpulan" #~ msgid "/_Articles/Mark _Read" #~ msgstr "/_Artikel/Tandakan _Dibaca" #~ msgid "/_Articles/Mark _Unread" #~ msgstr "/_Artikel/Tandakan _Belum Dibaca" #~ msgid "/_Articles/---" #~ msgstr "/_Artikel/---" #~ msgid "/_Articles/D_ownload Flagged" #~ msgstr "/_Artikel/Muat turun Bendera" #~ msgid "/_Articles/_Flag" #~ msgstr "/_Artikel/_Bendera" #~ msgid "/_Articles/U_nflag" #~ msgstr "/_Artikel/_Buang Bendera" #~ msgid "/_Articles/Down_load" #~ msgstr "/_Artikel/Muat_turun" #~ msgid "/_Articles/_Watch Thread" #~ msgstr "/_Artikel/_Perhatikan Bebenang" #~ msgid "/_Articles/_Ignore Thread" #~ msgstr "/_Artikel/_Abaikan Bebenang" #~ msgid "/_Articles/_View Article's Scores" #~ msgstr "/_Artikel/_Lihat Skor Artikel" #~ msgid "/_Articles/Cancel..." #~ msgstr "/_Artikel/Batal..." #~ msgid "/_Articles/Supersed_e..." #~ msgstr "/_Artikel/Menggantika_n" #~ msgid "/_Articles/_Delete" #~ msgstr "/_Artikel/_Hapuskan" #~ msgid "/_Post" #~ msgstr "/_Pos" #~ msgid "/_Post/_Post to Newsgroup..." #~ msgstr "/_Pos/_Pos ke Kumpulan berita..." #~ msgid "/_Post/_Reply by Email..." #~ msgstr "/_Pos/_Balas melalui E-Mel..." #~ msgid "/_Post/For_ward by Email..." #~ msgstr "/_Pos/Sam_paikan melalui E-mel..." #~ msgid "/_Post/---" #~ msgstr "/_Pos/---" #~ msgid "/_Post/Send Pending _Messages" #~ msgstr "/_Pos/Menghantar _Mesej yang Tergantung" #~ msgid "/_Tools" #~ msgstr "/_Alat" #~ msgid "/_Tools/---" #~ msgstr "/_Alat/---" #~ msgid "/_Tools/Custom _Filters..." #~ msgstr "/_Alat/Penapis _Biasa" #~ msgid "/_Tools/_Rules..." #~ msgstr "/_Alat/_Peraturan..." #~ msgid "/_Tools/_Edit Scorefile..." #~ msgstr "/_Alat/_Edit Fail skor..." #~ msgid "/_Tools/_Log Viewer..." #~ msgstr "/_Alat/_Log Pemerhati..." #~ msgid "/_Help" #~ msgstr "/_Bantuan" #~ msgid "/_Help/---" #~ msgstr "/_Bantuan/---" #~ msgid "The default charset set for articles posted with this profile" #~ msgstr "" #~ "Set bagi set aksara piawai untuk artikel yang dipos dengan profil ini" #~ msgid "Pan: Edit Profile" #~ msgstr "Pan: Edit Profil" #~ msgid "_User Profile" #~ msgstr "_Profil Pengguna" #~ msgid "Cus_tom Headers" #~ msgstr "Pe_ngepala Biasa" #~ msgid "" #~ "Your real name contained double quotes.\n" #~ "Converting into single quotes." #~ msgstr "" #~ "Nama sebenar anda mengandungi tanda petik.\n" #~ "Menukarkan kepada tanda petik tunggal." #~ msgid "You need at least one profile" #~ msgstr "Anda memerlukan sekurang-kurangnya satu profil" #~ msgid "Incomplete Profile." #~ msgstr "Profil Tidak Lengkap." #~ msgid "Use the selected profile to create a new profile" #~ msgstr "Gunakan profil yang dipilih untuk mewujudkan profil baru" #~ msgid "Wrote profiles to \"%s\"" #~ msgstr "Tulis profil ke \"%s\"" #~ msgid "/_File/_Save..." #~ msgstr "/_Fail/_Simpan..." #~ msgid "/_File/Clea_r" #~ msgstr "/_Fail/Koson_g" #~ msgid "/_File/_Close" #~ msgstr "/_Fail/_Tutup" #~ msgid "Pan: Status Log" #~ msgstr "Pan: Log Status" #~ msgid "Clear the log window" #~ msgstr "Kosongkan tetingkap log" #~ msgid "Time" #~ msgstr "Masa" #~ msgid "Log Entry" #~ msgstr "Entri Log" #~ msgid "Post anyway, despite these problems?" #~ msgstr "Poskan juga, walaupun ada masalah ini?" #~ msgid "Post anyway, despite this problem?" #~ msgstr "Poskan juga, walaupun ada masalah ini" #~ msgid "/_File/_Save Changes" #~ msgstr "/_Fail/Simpan Perubahan" #~ msgid "/_File/Save _As..." #~ msgstr "/_Fail/Simpan _Sebagai..." #~ msgid "/_Edit/Cu_t" #~ msgstr "/_Edit/Po_tong" #~ msgid "/_Edit/_Copy" #~ msgstr "/_Edit/_Salin" #~ msgid "/_Edit/_Paste" #~ msgstr "/_Edit/_Tampal" #~ msgid "/_Edit/_Rot13 Selected Text" #~ msgstr "/_Edit/_Rot13 Teks yang Dipilih" #~ msgid "/_Edit/Edit with E_xternal Editor" #~ msgstr "/_Edit/Edit dengan Editor L_uaran" #~ msgid "/_File/Send Now" #~ msgstr "/_Fail/Hantar Sekarang" #~ msgid "/_File/Send Later" #~ msgstr "/_Fail/Hantar Kemudian" #~ msgid "Send Later" #~ msgstr "Hantar Kemudian" #~ msgid "Rewrap" #~ msgstr "Lipat semula" #~ msgid "Turn line wrap on/off" #~ msgstr "Buka/tutup lipatan baris" #~ msgid "Edit with an External Editor" #~ msgstr "Edit dengan Editor Luaran" #~ msgid "Mime (single-part posts only)" #~ msgstr "Tiru (satu bahagian pos sahaja)" #~ msgid " (%lu lines in 1 article)" #~ msgstr " (%lu baris dalam 1 artikel)" #~ msgid "UUEncoded (universally accepted)" #~ msgstr "UUPengekod (diterima menyeluruh)" #~ msgid "yEnc (30 percent smaller than UUEnc but less universal)" #~ msgstr "" #~ "yEnc (30 peratus lebih kecil daripada UUEnc tetapi kurang menyeluruh)" #~ msgid "Select the file to attach." #~ msgstr "Pilih fail untuk dilampirkan" #~ msgid "Files to Attach" #~ msgstr "Fail Dilampirkan" #~ msgid "Kilobytes" #~ msgstr "Kilobait" #~ msgid "Add a File to the Attachment List" #~ msgstr "Tambahkan Fail ke Senarai Lampiran" #~ msgid "Remove a File from the Attachment List" #~ msgstr "Keluarkan Fail dari Senarai Lampiran" #~ msgid "Estimated Article Size" #~ msgstr "Anggaran Saiz Artikel" #~ msgid "Organization" #~ msgstr "Organisasi" #~ msgid "The organization you're associated with." #~ msgstr "Organisasi yang dikaitkan dengan anda." #~ msgid "Charset" #~ msgstr "Set aksara" #~ msgid "" #~ "Could not convert \"%s\" to UTF-8. Article may not display correctly." #~ msgstr "" #~ "Tidak dapat menukarkan \"%s\" ke UTF-8. Artikel mungkin tidak dipaparkan " #~ "dengan betul." #~ msgid "\"Followup-To: poster\": sending email to author." #~ msgstr "\"Susulan Kepada: pengepos\": menghantar e-mel kepada pengarang" #~ msgid "\"Followup-To:\" contains an email address: sending email to author." #~ msgstr "" #~ "\"Susulan Kepada:\" mengandungi alamat e-mel: menghantar e-mel kepada " #~ "pengarang." #~ msgid "New Message" #~ msgstr "Mesej Baru" #~ msgid "" #~ "ERROR: line %d, column %d uses a character not specified in charset \"%s" #~ "\" -- possibly change your charset in \"More Headers\" to \"%s\" instead?" #~ msgstr "" #~ "RALAT: baris %d, lajur %d menggunakan aksara yang tidak ditetapkan dalam " #~ "set aksara \"%s\" - mungkin ubah set aksara anda dalam \"Lagi Pengepala\" " #~ "kepada \"%s\"?" #~ msgid "Save message to file" #~ msgstr "Simpan mesej ke fail" #~ msgid "The command line was: %s" #~ msgstr "Baris arahan ialah: %s" #~ msgid "NNTP handshake failed: %s" #~ msgstr "Jabat tangan NNTP gagal: %s" #~ msgid "Handshake failed: %s" #~ msgstr "Jabat tangan gagal: %s" #~ msgid "Handshake: %s" #~ msgstr "Jabat tangan: %s" #~ msgid "Authentication failed: bad handshake for SPA password" #~ msgstr "Pengesahan gagal: jabat tangan yang salah bagi kata laluan SPA" #~ msgid "Bad SPA handshake: %s" #~ msgstr "Jabat tangan SPA salah: %s" #~ msgid "Authentication failed: need a password" #~ msgstr "Pengesahan gagal: memerlukan kata laluan" #~ msgid "Authentication failed: %s" #~ msgstr "Pengesahan gagal: %s" #~ msgid "%*.*s handshake failed: %s" #~ msgstr "%*.*s jabat tangan gagal: %s" #~ msgid "No supported authentication mechanism" #~ msgstr "Mekanisme pengesahan tidak disokong" #~ msgid "No password found!" #~ msgstr "Tiada kata laluan dijumpai!" #~ msgid "MODE READER check failed: %s" #~ msgstr "Semakan MODE READER gagal: %s" #~ msgid "Posting failed. Server said: %s" #~ msgstr "Pos gagal. Pelayan menunjukkan: %s" #~ msgid "Posting complete. Server said: %s" #~ msgstr "Pos berjaya. Pelayan menunjukkan: %s" #~ msgid "\"stay connected\" sent to %*.*s" #~ msgstr "\"terus disambungkan\" dihantar kepada %*.*s" #~ msgid "No articles found for group \"%s\"" #~ msgstr "Artikel tidak dijumpai bagi kumpulan \"%s\"" #~ msgid "Getting header list failed: %s" #~ msgstr "Gagal mendapatkan senarai pengepala: %s" #~ msgid "Corrupt header skipped: %s" #~ msgstr "Pengepala rosak dilangkau: %s" #~ msgid "Getting %d of %d" #~ msgstr "Mendapatkan %d daripada %d" #~ msgid "Select Color" #~ msgstr "Pilih Warna" #~ msgid "_Browse..." #~ msgstr "_Layari..." #~ msgid "Font Family" #~ msgstr "Keluarga Fon" #~ msgid " --version Prints Pan's version number" #~ msgstr " --versi Mencetak nombor versi Pan" #~ msgid " --help Prints this message and exits" #~ msgstr " --bantuan Mencetak mesej ini dan keluar" #~ msgid "" #~ " --debug Turns on the most commonly-used options for a bug " #~ "report" #~ msgstr "" #~ " --nyahpepijat Membuka opsyen yang paling kerap digunakan bagi " #~ "laporan pepijat" #~ msgid "" #~ " --mute Debugging tool to send new posts to console, not the " #~ "server" #~ msgstr "" #~ " --bisu Alat menyahpepijat untuk menghantar pos baru ke " #~ "konsol, bukan pelayan" #~ msgid " --debug-cache Print debugging messages for the article cache" #~ msgstr "" #~ " --pepijat-cache Mencetak mesej menyahpepijat bagi cache artikel" #~ msgid "" #~ " --debug-sockets Print debugging messages when talking to the news " #~ "server" #~ msgstr "" #~ " --nyahpepijat-soket Mencetak mesej menyahpepijat semasa berhubung " #~ "dengan pelayan berita" #~ msgid "" #~ " --debug-queue Print debugging messages related to managing tasks" #~ msgstr "" #~ " --nyahpepijat-baris gilir Mencetak mesej menyahpepijat berkaitan " #~ "dengan tugas pengurusan" #~ msgid "" #~ " --debug-decode Print debugging messages related to decoding " #~ "attachments" #~ msgstr "" #~ " --nyahpepijat-nyahkod Mencetak mesej menyahpepihat berkaitan dengan " #~ "menyahkod lampiran" #~ msgid " --debug-newsrc Print debugging messages related to .newsrc files" #~ msgstr "" #~ " --nyahpepijat-newsrc Mencetak mesej menyahpepihat berkaitan dengan " #~ "fail .newsrc" #~ msgid "" #~ " --debug-gnksa Print debugging messages related to gnksa correctness" #~ msgstr "" #~ " --nyahpepijat-gnksa Mencetak mesej menyahpepihat berkaitan dengan " #~ "ketepatan gnksa" #~ msgid "" #~ " --debug-trace Print debugging messages when entering/leaving " #~ "functions" #~ msgstr "" #~ " --nyahpepijat-surih Mencetak mesej menyahpepihat apabila memasuki/" #~ "meninggalkan fungsi" #~ msgid "" #~ " --debug-lock Print debugging messages related to threaded gui locks" #~ msgstr "" #~ " --nyahpepijat-kunci Mencetak mesej menyahpepihat berkaitan dengan " #~ "kunci gui bebenang" #~ msgid "" #~ " --debug-object Print debugging messages related to refcounted objects" #~ msgstr "" #~ " --nyahpepijat-objek Mencetak mesej menyahpepihat berkaitan dengan " #~ "objek pengiraan rujukan" #~ msgid "Error writing to socket." #~ msgstr "Ralat menulis dari soket." #~ msgid "pan.sent" #~ msgstr "pan.sent" #~ msgid "pan.sendlater" #~ msgstr "pan.sendlater" #~ msgid "Spellchecking disabled: gtkspell_init() failed with status %d" #~ msgstr "Semakan ejaan dilumpuhkan: gtkspell_init() gagal dengan status %d" #~ msgid "Restored %d tasks from last session" #~ msgstr "Menyimpan semula %d tugas dari sesi terakhir" #~ msgid "" #~ "Some tasks were still queued the last time Pan exited. Do you want to " #~ "resume those tasks?" #~ msgstr "" #~ "Beberapa tugas masih dibaris gilir pada kali semasa keluar dari Pan. " #~ "Adakah anda mahu menyambung semua tugas tersebut?" #~ msgid "_Resume" #~ msgstr "_Sambung semula" #~ msgid "" #~ "%a - abbreviated weekday name\n" #~ "%A - full weekday name\n" #~ "%b - abbreviated month name\n" #~ "%B - full month name\n" #~ "%c - local date & time\n" #~ "%d - day of the month\n" #~ "%H - hour (24-hour clock)\n" #~ "%I - hour (12-hour clock)\n" #~ "%j - day of the year (001-366)\n" #~ "%m - month (01-12)\n" #~ "%M - minute (00-59)\n" #~ "%p - local equivalent of AM/PM\n" #~ "%S - second (00-61)\n" #~ "%x - local date\n" #~ "%X - local time\n" #~ "%y - two-digit year\n" #~ "%Y - four-digit year\n" #~ "%% - %" #~ msgstr "" #~ "%a - nama ringkas hari Isnin hingga Jumaat\n" #~ "%A - nama penuh hari Isnin hingga Jumaat\n" #~ "%b - nama ringkas bulan\n" #~ "%B - nama penuh bulan\n" #~ "%c - tarikh dan masa setempat\n" #~ "%d - hari bagi bulan\n" #~ "%H - jam (masa 24-jam)\n" #~ "%I - jam (masa 12-jam)\n" #~ "%j - hari bagi tahun (001-366)\n" #~ "%m - bulan (01-12)\n" #~ "%M - minit (00-59)\n" #~ "%p - persamaan setempat bagi AM/PM\n" #~ "%S - saat (00-61)\n" #~ "%x - tarikh setempat\n" #~ "%X - masa setempat\n" #~ "%y - tahun dua digit\n" #~ "%Y - tahun empat digit\n" #~ "%% - %" #~ msgid "Color the \"sub_ject\" column" #~ msgstr "Warnakan lajur \"per_kara\"" #~ msgid "Articles with a Score of 9999 or higher:" #~ msgstr "Artikel dengan Skor 9999 atau lebih:" #~ msgid "Articles with a Score between 5000 and 9998:" #~ msgstr "Artikel dengan Skor antara 5000 dengan 9998:" #~ msgid "Articles with a Score between 1 and 4999:" #~ msgstr "Artikel dengan Skor antara 1 dengan 4999:" #~ msgid "Articles with a Score between -9998 and -1:" #~ msgstr "Artikel dengan Skor antara -9998 dengan -1:" #~ msgid "Articles with a Score of -9999 or lower:" #~ msgstr "Artikel dengan Skor antara -9999 atau ke bawah:" #~ msgid "_1:" #~ msgstr "_1:" #~ msgid "_2:" #~ msgstr "_2:" #~ msgid "_3:" #~ msgstr "_3:" #~ msgid "Pane Order" #~ msgstr "Tertib Anak Tetingkap" #~ msgid "Action State" #~ msgstr "Keadaan Tindakan" #~ msgid "Article State" #~ msgstr "Keadaan Artikel" #~ msgid "Column Layout" #~ msgstr "Bentangan Lajur" #~ msgid "When a Followup subject header changes, show as _new thread" #~ msgstr "" #~ "Apabila pengepala subjek Susulan berubah, tunjukkan sebagai bebenang _baru" #~ msgid "E_xpand all threads by default" #~ msgstr "Tambahkan semua bebenang secara piawai" #~ msgid "Show complete _multipart posts as a single article" #~ msgstr "Tunjukkan pos _berbilang bahagian yang lengkap sebagai satu artikel" #~ msgid "Date Forma_t:" #~ msgstr "Forma_t Tarikh:" #~ msgid "Show \"%s\" header" #~ msgstr "Tunjukkan pengepala \"%s\"" #~ msgid "Newsreader" #~ msgstr "Pembaca berita" #~ msgid "Characters denoting _quoted text:" #~ msgstr "Aksara menunjukkan _teks yang dipetik:" #~ msgid "Download new headers from s_ubscribed groups when starting Pan" #~ msgstr "" #~ "Muat turun pengepala baru dari kumpulan yang dilanggan apabila memulakan " #~ "Pan" #~ msgid "" #~ "Download new headers and bod_ies from subscribed groups when starting Pan" #~ msgstr "" #~ "Muat turun pengepala dan bad_an baru dari kumpulan yang dilanggan apabila " #~ "memulakan Pan" #~ msgid "Download Directory" #~ msgstr "Muat turun Direktori" #~ msgid "Automatically remove _failed tasks from the task manager" #~ msgstr "Mengeluarkan secara automatik tugas yang gagal dari pengurus tugas" #~ msgid "_Erase cache when exiting Pan" #~ msgstr "_Padam cache apabila keluar dari Pan" #~ msgid "Ma_ximum Cache Size (Megs):" #~ msgstr "Saiz Ma_ksmimum Cache (Megs):" #~ msgid "_Editor (%t is filename):" #~ msgstr "_Editor (%t ialah nama fail):" #~ msgid "" #~ "Scorefile _Editor:\n" #~ "(%t is filename, %n is line number)" #~ msgstr "" #~ "_Editor fail skor:\n" #~ "(%t ialah nama fail, %n ialah nombor baris)" #~ msgid "Scorefile" #~ msgstr "Fail skor" #~ msgid "Score_file" #~ msgstr "Fail_skor" #~ msgid "Sending Mail" #~ msgstr "Menghantar Mel" #~ msgid "Mail Server Add_ress:" #~ msgstr "Ala_mat Pelayan Mel:" #~ msgid "Mail Server Por_t:" #~ msgstr "Por_t Pelayan M_el:" #~ msgid "Hea_der Pane" #~ msgstr "Anak Tetingkap Peng_epala" #~ msgid "A_pps & Mail" #~ msgstr "Aplikasi & Mel" #~ msgid "You haven't loaded an article to print." #~ msgstr "Anda belum memuatkan artikel untuk dicetak." #~ msgid "" #~ "%s\n" #~ "\n" #~ "Matches: %u\n" #~ "Group: %s\n" #~ "Rule: %s" #~ msgstr "" #~ "%s\n" #~ "\n" #~ "Padanan: %u\n" #~ "Kumpulan: %s\n" #~ "Peraturan: %s" #~ msgid "Mark as" #~ msgstr "Tandakan sebagai" #~ msgid "_Flag body for download" #~ msgstr "_Badan bendera untuk dimuatturunkan" #~ msgid "_Retrieve Body" #~ msgstr "_Dapatkan semula Badan" #~ msgid "_Watch thread (highlights the thread)" #~ msgstr "_Perhatikan bebenang(tonjolkan bebenang)" #~ msgid "_Ignore thread (hides the thread by default)" #~ msgstr "_Abaikan bebenang (sembunyikan bebenang secara piawai)" #~ msgid "Rule applies to all newsgroups" #~ msgstr "Peraturan digunakan untuk semua kumpulan berita" #~ msgid "Wildcard group specification:" #~ msgstr "Spesifikasi kad bebas kumpulan:" #~ msgid "(e.g., *anime*)" #~ msgstr "(contohnya *anime*)" #~ msgid "Rule applies to specific newsgroups:" #~ msgstr "Peraturan digunakan untuk semua kumpulan berita yang khusus" #~ msgid "Rule applies to:" #~ msgstr "Peraturan digunakan untuk:" #~ msgid "Rule Name:" #~ msgstr "Nama Peraturan:" #~ msgid "Apply to Incoming" #~ msgstr "Gunakan untuk Masuk" #~ msgid "" #~ "If enabled, this rule will be applied to headers when they are downloaded." #~ msgstr "" #~ "Jika dibolehkan, peraturan ini akan digunakan untuk pengepala apabila " #~ "dimuatturunkan." #~ msgid "New Rule" #~ msgstr "Peraturan Baru" #~ msgid "Delete Articles by Bozos" #~ msgstr "Hapuskan Artikel dengan Bozos" #~ msgid "Applying rule to selected groups" #~ msgstr "Menggunakan peraturan kepada kumpulan yang dipilih" #~ msgid "Applying rule \"%s\" to group \"%s\"" #~ msgstr "Menggunakan peraturan \"%s\" kepada kumpulan \"%s\"" #~ msgid "Rules" #~ msgstr "Peraturan" #~ msgid "Hit Ratio" #~ msgstr "Nisbah Kena" #~ msgid "" #~ "Apply to\n" #~ "Selected\n" #~ "Groups" #~ msgstr "" #~ "Digunakan untuk\n" #~ "Dipilih\n" #~ "Kumpulan" #~ msgid "" #~ "Apply to\n" #~ "Subscribed\n" #~ "Groups" #~ msgstr "" #~ "Digunakan untuk\n" #~ "Dilanggan\n" #~ "Kumpulan" #~ msgid "Wrote rules to \"%s\"" #~ msgstr "Menulis peraturan untuk \"%s\"" #~ msgid "" #~ "Can't find filter \"%s\" needed by rule \"%s\", so no articles match." #~ msgstr "" #~ "Tidak dapat mencari penapis \"%s\" yang diperlukan melalui peraturan \"%s" #~ "\", oleh itu tiada artikel yang padan" #~ msgid "%u articles match rule %s" #~ msgstr "%u artikel padan dengan peraturan %s" #~ msgid "Pan: Save As" #~ msgstr "Pan: Simpan Sebagai" #~ msgid "Save Files in Directory" #~ msgstr "Simpan Fail dalam Direktori" #~ msgid "_Directory:" #~ msgstr "_Directori:" #~ msgid "Add to the _top of the Task Manager's List" #~ msgstr "Tambahkan ke atas senarai Pengurus Tugas" #~ msgid "Criterion \"%s\" is selected, but empty." #~ msgstr "Kriteria \"%s\" dipilih, tetapi kosong." #~ msgid "No criteria are selected." #~ msgstr "Tiada kriteria dipilih." #~ msgid "Pan: Add to Scorefile" #~ msgstr "Pan: Tambahkan ke Fail skor" #~ msgid "Su_bject:" #~ msgstr "Su_bjek:" #~ msgid "A_uthor:" #~ msgstr "P_engarang" #~ msgid "_Lines:" #~ msgstr "_Baris:" #~ msgid "at least N lines long" #~ msgstr "sekurang-kurangnya N baris panjang" #~ msgid "less than N lines long" #~ msgstr "kurang daripada N baris panjang" #~ msgid "Chan_ge Score:" #~ msgstr "Ub_ah Skor:" #~ msgid "subtract" #~ msgstr "tolak" #~ msgid "Expire in N _days:" #~ msgstr "Tamat tempoh dalam N _hari" #~ msgid "Edit the selected score" #~ msgstr "Edit skor yang dipilih" #~ msgid "You must specify an address." #~ msgstr "Anda mesti tentukan alamat." #~ msgid "You must specify a username or disable authorization." #~ msgstr "Anda mesti tentukan nama pengguna atau nyahaktifkan pengesahan." #~ msgid "You must specify a password or disable authorization." #~ msgstr "Anda mesti tentukan kata laluan atau nyahaktifkan pengesahan." #~ msgid "You must specify a .newsrc filename or disable newsrc support." #~ msgstr "" #~ "Anda mesti tentukan nama fail .newsrc atau nyahaktifkan sokongan newsrc." #~ msgid "Newsrc" #~ msgstr "Newsrc" #~ msgid "Us_e .newsrc file" #~ msgstr "Gunakan fail .newsrc" #~ msgid "Select .newsrc File" #~ msgstr "Pilih Fail .newsrc" #~ msgid "_Filename:" #~ msgstr "_Nama fail:" #~ msgid "Edit the selected server" #~ msgstr "Edit pelayan yang dipilih" #~ msgid "Remove the selected server" #~ msgstr "Keluarkan pelayan yang dipilih" #~ msgid "Got unexpected response from mail server: expected %d; got %s" #~ msgstr "" #~ "Mendapat maklum balas tak dijangkakan dari pelayan mel: menjangkakan %d; " #~ "dapat %s" #~ msgid "Sending mail" #~ msgstr "Menghantar mel" #~ msgid "No known recipients" #~ msgstr "Penerima tak diketahui" #~ msgid "Mail sent!" #~ msgstr "Mel dihantar!" #~ msgid "Handshaking with mail server" #~ msgstr "Berjabat tangan dengan pelayan mel" #~ msgid "Connecting to mail server" #~ msgstr "Menyambungkan ke pelayan mel" #~ msgid "Mail server not ready" #~ msgstr "Pelayan mel belum sedia" #~ msgid "Sending Keepalive" #~ msgstr "Menghantar Keepalive" #~ msgid "Disconnecting Idle" #~ msgstr "Memutuskan keadaan melahu" #~ msgid "Disconnecting one connection from `%s' after %d seconds idle" #~ msgstr "Memutuskan satu sambungan dari `%s' selepas %d saat melahu" #~ msgid "Connection to %*.*s, port %d failed: %s" #~ msgstr "Sambungan ke %*.*s, port %d gagal: %s" #~ msgid "Downloading %d" #~ msgstr "Memuatturunkan %d" #~ msgid "\"%s\"" #~ msgstr "\"%s\"" #~ msgid "Downloading %u articles" #~ msgstr "Memuatturunkan %u artikel" #~ msgid "Article %s (%s) canceled" #~ msgstr "Artikel %s (%s) dibatalkan" #~ msgid "Updating article counts for %u groups from server \"%s\"" #~ msgstr "Mengemas kini bilangan artikel bagi kumpulan %u dari pelayan \"%s\"" #~ msgid "Updated counts for %u groups out of %u" #~ msgstr "Mengemas kini bilangan untuk kumpulan %u daripada %u" #~ msgid "Unable to update counts for group \"%s\"" #~ msgstr "Tidak dapat mengemas kini bilangan bagi kumpulan \"%s\"" #~ msgid "Getting all groups from server \"%s\"" #~ msgstr "Mendapatkan semua kumpulan dari pelayan \"%s\"" #~ msgid "Adding groups to server \"%s\"" #~ msgstr "Menambahkan kumpulan ke pelayan \"%s\"" #~ msgid "List Newsgroups failed: %s" #~ msgstr "Senarai Kumpulan berita gagal: %s" #~ msgid "Got %d descriptions from server \"%s\"" #~ msgstr "Mendapatkan huraian %d dari pelayan \"%s\"" #~ msgid "New groups retrieval failed: %s" #~ msgstr "Gagal mendapatkan semula kumpulan baru: %s" #~ msgid "No new articles in group \"%s\"" #~ msgstr "Tiada artikel baru dalam kumpulan \"%s\"" #~ msgid "New %lu of %lu" #~ msgstr "%lu baru daripada %lu" #~ msgid "Sampling %lu of %lu" #~ msgstr "Membuat sampel %lu daripada %lu" #~ msgid "All %lu of %lu" #~ msgstr "Semua %lu daripada %lu" #~ msgid "Not Queued" #~ msgstr "Tidak Dibaris gilir" #~ msgid "Stopping" #~ msgstr "Berhenti" #~ msgid "Pan %s Task Manager" #~ msgstr "engurus Tugas %s Pan" #~ msgid "Move Selected Task(s) Up" #~ msgstr "Alihkan Tugas yang Dipilih Ke atas" #~ msgid "Move Selected Task(s) to Top" #~ msgstr "Alihkan Tugas yang Dipilih Ke atas" #~ msgid "Move Selected Task(s) Down" #~ msgstr "Alihkan Tugas yang Dipilih Ke bawah" #~ msgid "Stop Selected Task(s)" #~ msgstr "Tamatkan Tugas yang Dipilih" #~ msgid "Delete Selected Task(s)" #~ msgstr "Hapuskan Tugas yang Dipilih" #~ msgid "Time Remaining" #~ msgstr "Baki Masa" #~ msgid "[This is an email copy of a Usenet post to \"%s\"]" #~ msgstr "[Ini ialah salinan e-mel daripada pos Usenet ke \"%s\"]" #~ msgid "Email \"%s\" sent." #~ msgstr "E-mel \"%s\" dihantar." #~ msgid "Email \"%s\" not sent." #~ msgstr "E-mel \"%s\" tidak dihantar." #~ msgid "Article \"%s\" posted." #~ msgstr "Artikel \"%s\" dipos." #~ msgid "Article \"%s\" not posted." #~ msgstr "Artikel \"%s\" tidak dipos." #~ msgid "Posting and mailing article \"%s\"" #~ msgstr "Mengepos dan menghantar mel artikel \"%s\"" #~ msgid "Mailing article \"%s\"" #~ msgstr "Menghantar mel artikel \"%s\"" #~ msgid "Email send failed. " #~ msgstr "Gagal menghantar E-mel. " #~ msgid "Usenet posting failed. " #~ msgstr "Gagal mengepos Usenet. " #~ msgid "Check Tools|Log Viewer for more information. " #~ msgstr "Semak Alat|Pelihat Log untuk maklumat lanjut. " #~ msgid "Your message was saved in the folder \"pan.sendlater\"" #~ msgstr "Mesej anda disimpan dalam folder \"pan.sendlater\"" #~ msgid "Saving `%s'" #~ msgstr "Menyimpan `%s'" #~ msgid "Saving Attachments" #~ msgstr "Menyimpan Lampiran" #~ msgid "Save Article can't access path \"%s\"" #~ msgstr "Artikel yang disimpan tidak dapat mencapai laluan \"%s\"" #~ msgid "Saved article body to \"%s\"" #~ msgstr "Simpan badan artikel ke \"%s\"" #~ msgid "" #~ "Pan %s\n" #~ "Copyright (c) %d by Charles Kerr\n" #~ "\n" #~ "If you find a bug, please report it.\n" #~ "\n" #~ msgstr "" #~ "Pan %s\n" #~ "Hak cipta (c) %d oleh Charles Kerr\n" #~ "\n" #~ "Jika anda menjumpai pepijat, sila laporkan.\n" #~ "\n" #~ msgid "" #~ "http://pan.rebelbase.com/ - Pan Homepage\n" #~ "http://pan.rebelbase.com/bugs/ - Report a Bug\n" #~ "http://pan.rebelbase.com/download/ - Upgrade\n" #~ "\n" #~ msgstr "" #~ "http://pan.rebelbase.com/ - Laman web Pan\n" #~ "http://pan.rebelbase.com/bugs/ - Laporkan Pepijat\n" #~ "http://pan.rebelbase.com/download/ - Peningkatan keupayaan\n" #~ "\n" #~ msgid "" #~ "This program is free software; you can redistribute it\n" #~ "and/or modify it under the terms of the GNU General Public\n" #~ "License as published by the Free Software Foundation;\n" #~ "version 2 of the License.\n" #~ "\n" #~ "This program is distributed in the hope that it will be\n" #~ "useful, but WITHOUT ANY WARRANTY; without even the implied\n" #~ "warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\n" #~ "PURPOSE. See the GNU General Public License for more\n" #~ "details.\n" #~ "\n" #~ "The GNU Public License can be found from the menu above\n" #~ "in Help|About|License." #~ msgstr "" #~ "Atur cara ini ialah perisian bebas, anda boleh mengagihkannya semula\n" #~ "dan/atau mengubah suainya di bawah syarat Lesen Awam Am GNU\n" #~ "seperti dikeluarkan oleh Yayasan Perisian Bebas;\n" #~ "versi 2 bagi Lesen tersebut.\n" #~ "\n" #~ "Atur cara ini diagihkan dengan harapan atur cara dapat\n" #~ "digunakan, tetapi TANPA SEBARANG JAMINAN, walaupun tanpa\n" #~ "jaminan BOLEH DAGANG atau SESUAI UNTUK TUJUAN\n" #~ "TERTENTU. Lihat Lesen Awam Am GNU untuk maklumat\n" #~ "lanjut.\n" #~ "Lesen Awam Am GNU boleh didapati dari menu di atas\n" #~ "dalam Bantuan|Tentang|Lesen." #~ msgid "Error starting external browser: %s" #~ msgstr "Ralat memulakan pelayar luaran: %s" #~ msgid "Error starting external scorefile editor: %s" #~ msgstr "Ralat memulakan editor fail skor luaran: %s" #~ msgid "Pan: Find Message" #~ msgstr "Pan: Cari Mesej" #~ msgid "" #~ "INFORMATION: Please be aware that posts to \"%s\" will not appear until " #~ "approved by the group's moderator." #~ msgstr "" #~ "MAKLUMAT: Sila pastikan bahawa mengepos ke \"%s\" tidak akan muncul " #~ "sehingga diluluskan oleh moderator kumpulan." #~ msgid "Programmer & Documentation" #~ msgstr "Pengatur cara & Dokumentasi" #~ msgid "Invalid folder name: \"%s\"" #~ msgstr "Nama folder tak sah: \"%s\"" #~ msgid "Show Only Replies to My Articles" #~ msgstr "Tunjukkan Balasan kepada Artikel Saya Sahaja" #~ msgid "/Filte_r/Show Matching Articles and Replies" #~ msgstr "/Penapi_s/Tunjukkan Artikel dan Balasan yang Sepadan" #~ msgid "/Filte_r/Show Matching Articles and References" #~ msgstr "/Penapi_s/Tunjukkan Artikel dan Rujukan yang Sepadan" #~ msgid "/Filte_r/Show Threads with Matching Articles" #~ msgstr "/Penapi_s/Tunjukkan Bebenang dengan Artikel yang Sepadan" #~ msgid "/Filte_r/Match Articles which are _Cached" #~ msgstr "/Penapi_s/Padankan Artikel yang _Dicache" #~ msgid "/Filte_r/Match Articles which are not Cache_d" #~ msgstr "/Penapi_s/Padankan Artikel yang tidak Dicach_e" #~ msgid "/Filte_r/Match Articles with Complete _Attachments" #~ msgstr "/Penapi_s/Padankan Artikel dengan Lampiran _Lengkap" #~ msgid "/Filte_r/Match Articles with I_ncomplete Attachments" #~ msgstr "/Penapi_s/Padankan Artikel dengan L_ampiran Tidak Lengkap" #~ msgid "/Filte_r/Match Articles with No A_ttachments" #~ msgstr "/Penapi_s/Padankan Artikel yang Tiada L_ampiran" #~ msgid "/Filte_r/Match Articles Written by _Other People" #~ msgstr "/Penapi_s/Padankan Artikel yang Ditulis oleh _Orang Lain" #~ msgid "/Filte_r/Match Articles with a Score between 1 and 4999" #~ msgstr "/Penapi_s/Padankan Artikel dengan Skor antara 1 dengan 4999" #~ msgid "/_Go/Next High-_Score Article" #~ msgstr "/_Pergi/Artikel Skor Tertinggi Seterusnya" #~ msgid "/_Go/T_op of Thread" #~ msgstr "/_Pergi/A_tas Bebenang" #~ msgid "/_Post/Followup _and Reply" #~ msgstr "/_Pos/Susulan _dan Balasan" #~ msgid "/_Help/Online Users` _Manual..." #~ msgstr "/_Bantuan/Manual Pengguna _Dalam Talian..." #~ msgid "/_Help/_Feedback..." #~ msgstr "/_Bantuan/Suap balik..." #~ msgid "Make this the default profile for _news" #~ msgstr "Jadikan ini profil piawai bagi _berita" #~ msgid "Make this the default profile for _mail" #~ msgstr "Jadikan ini profil piawai bagi _mel" #~ msgid "The domain name to use for Message-ID generation" #~ msgstr "Nama domain yang digunakan bagi penghasilan ID Mesej" #~ msgid "Unsupported authentication mechanism: %s" #~ msgstr "Mekanisme pengesahan tidak disokong: %s" #~ msgid "Quoted Text _2:" #~ msgstr "Teks yang Dipetik _2:" #~ msgid "Lifespan" #~ msgstr "Jangka hayat" pan-0.162/po/nb.po000066400000000000000000002406501475412772400137010ustar00rootroot00000000000000# Norwegian translation of the Pan newsreader # Copyright (C) 2000 Pan Develelopment Team (pan@superpimp.org) # Tov Are Jacobsen , 2000. # Kjartan Maraas , 2001-2008. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, along with this program; if not, see # . # # Bugs: # # If you find any translation bugs or suggestions for better word usage, # please contact: Tov Are Jacobsen # # Suggestions and typo-fixes: # Håvard Lygre # msgid "" msgstr "" "Project-Id-Version: pan 1.2\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-04-04 20:58+0200\n" "PO-Revision-Date: 2008-06-07 17:37+0200\n" "Last-Translator: Espen A. Stefansen \n" "Language-Team: Norwegian bokmål \n" "Language: nb\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../pan.desktop.in.h:1 msgid "Pan Newsreader" msgstr "Pan newsleser" #: ../pan.desktop.in.h:2 msgid "Read and Post Usenet Articles" msgstr "" #: ../pan/data/article-cache.cc:143 ../pan/data/encode-cache.cc:62 #, c-format msgid "Error opening directory: \"%s\": %s" msgstr "Feil under åpning av mappe: «%s»: %s" #: ../pan/data/article-cache.cc:231 ../pan/data/article-cache.cc:242 #: ../pan/data-impl/data-io.cc:187 ../pan/data-impl/data-io.cc:211 #: ../pan/gui/post-ui.cc:1639 #, c-format msgid "Unable to save \"%s\" %s" msgstr "Kan ikke lagre «%s» %s" #: ../pan/data/article-cache.cc:355 #, c-format msgid "Error opening file \"%s\" %s" msgstr "Feil under åpning av fil «%s» %s" #: ../pan/data/article-cache.cc:386 ../pan/data-impl/profiles.cc:174 #: ../pan/data-impl/server.cc:436 ../pan/general/file-util.cc:298 #: ../pan/gui/post-ui.cc:609 ../pan/gui/task-pane.cc:691 #, c-format msgid "Error reading file \"%s\": %s" msgstr "Feil under lesing av fil «%s»: %s" #: ../pan/data/cert-store.cc:238 #, fuzzy, c-format msgid "Error opening SSL certificate directory: \"%s\": %s" msgstr "Feil under åpning av mappe: «%s»: %s" #: ../pan/data/cert-store.cc:270 #, c-format msgid "Succesfully added %d SSL PEM certificate(s) to Certificate Store." msgstr "" #. load_group_descriptions (*_data_io); #: ../pan/data-impl/data-impl.cc:109 #, c-format msgid "Loaded data backend in %.1f seconds" msgstr "" #: ../pan/data-impl/data-impl.cc:140 msgid "Pan newsreader server passwords" msgstr "" #: ../pan/data-impl/groups.cc:94 #, c-format msgid "Skipping newsrc file for server \"%s\"" msgstr "Hopper over newsrc-fil for tjener «%s»" #: ../pan/data-impl/headers.cc:606 #, c-format msgid "Expired %lu old articles from \"%s\"" msgstr "Fjernet %lu gamle artikler fra «%s»" #: ../pan/data-impl/headers.cc:613 #, c-format msgid "" "Unsupported data version for %s headers: %d.\n" "Are you running an old version of Pan by accident?" msgstr "" "Formatet til filen «%s» støttes ikke, versjon: %d.\n" "Kjører du en gammel versjon av Pan ved en feiltagelse?" #: ../pan/data-impl/headers.cc:628 #, c-format msgid "Loaded %lu articles for \"%s\" in %.1f seconds (%.0f per second)" msgstr "Lastet %lu artikler for «%s» på %.1f sekunder (%.0f per sekund)" #: ../pan/data-impl/headers.cc:857 #, fuzzy, c-format msgid "" "Saved %lu parts, %lu articles in \"%s\" in %.1f seconds (%.0f articles/sec)" msgstr "Lagret %lu deler, %lu artikler i «%s» på %.1f sekunder (%.0f art/sek)" #: ../pan/data-impl/headers.cc:1173 #, c-format msgid "Added %lu articles to %s." msgstr "La til %lu artikler i «%s»." #: ../pan/data-impl/server.cc:234 #, c-format msgid "There seems to be no Password set for Server %s." msgstr "" #: ../pan/data-impl/server.cc:238 msgid "The Gnome keyring denied access to the Passwords." msgstr "" #: ../pan/data-impl/xover.cc:239 #, c-format msgid "Error reading from %s: unknown group \"%s\"" msgstr "Feil ved lesing fra %s: ukjent gruppe «%s»" #. build the locale strings #: ../pan/general/e-util.cc:213 msgid "%l:%M %p" msgstr "" #: ../pan/general/e-util.cc:214 msgid "Today %l:%M %p" msgstr "" #: ../pan/general/e-util.cc:215 msgid "%a %l:%M %p" msgstr "" #: ../pan/general/e-util.cc:216 msgid "%b %d %l:%M %p" msgstr "" #: ../pan/general/e-util.cc:217 msgid "%b %d %Y" msgstr "" #: ../pan/general/e-util.cc:242 msgid "?" msgstr "?" #: ../pan/general/text-match.cc:193 #, c-format msgid "Can't use regular expression \"%s\": %s" msgstr "Kan ikke bruke vanlig uttrykk «%s»: %s" #: ../pan/general/utf8-utils.cc:213 msgid "Couldn't determine article encoding. Non-UTF8 characters were removed." msgstr "" #: ../pan/gui/actions.cc:274 ../pan/gui/post-ui.cc:417 msgid "_File" msgstr "_Fil" #: ../pan/gui/actions.cc:275 ../pan/gui/post-ui.cc:418 msgid "_Edit" msgstr "R_ediger" #: ../pan/gui/actions.cc:276 ../pan/gui/prefs-ui.cc:1064 msgid "_Layout" msgstr "_Utforming" #: ../pan/gui/actions.cc:277 msgid "_Group Pane" msgstr "_Gruppeområde" #: ../pan/gui/actions.cc:278 msgid "_Header Pane" msgstr "_Hodeområde" #: ../pan/gui/actions.cc:279 msgid "_Body Pane" msgstr "_Område for kropp" #: ../pan/gui/actions.cc:280 msgid "_View" msgstr "_Vis" #: ../pan/gui/actions.cc:281 msgid "Filte_r" msgstr "Filte_r" #: ../pan/gui/actions.cc:282 msgid "_Go" msgstr "_Gå" #: ../pan/gui/actions.cc:283 ../pan/gui/prefs-ui.cc:1091 msgid "_Actions" msgstr "H_andlinger" #: ../pan/gui/actions.cc:284 msgid "_Articles" msgstr "_Artikler" #: ../pan/gui/actions.cc:285 msgid "G_roups" msgstr "G_rupper" #: ../pan/gui/actions.cc:286 ../pan/gui/actions.cc:287 msgid "_Post" msgstr "_Publiser" #: ../pan/gui/actions.cc:288 msgid "_Help" msgstr "_Hjelp" #: ../pan/gui/actions.cc:291 msgid "_Read Group" msgstr "_Les gruppe" #: ../pan/gui/actions.cc:292 #, fuzzy msgid "Read Group" msgstr "_Les gruppe" #: ../pan/gui/actions.cc:296 #, fuzzy msgid "_Mark Selected Groups Read" msgstr "_Merk valgt gruppe som lest" #: ../pan/gui/actions.cc:297 #, fuzzy msgid "Mark Selected Groups Read" msgstr "_Merk valgt gruppe som lest" #: ../pan/gui/actions.cc:301 msgid "_Delete Selected Groups' Articles" msgstr "_Slett valgt gruppes artikler" #: ../pan/gui/actions.cc:302 #, fuzzy msgid "Delete Selected Groups' Articles" msgstr "_Slett valgt gruppes artikler" #: ../pan/gui/actions.cc:306 msgid "Get New _Headers in Selected Groups" msgstr "_Hent nye artikkelhoder fra valgte grupper" #: ../pan/gui/actions.cc:307 #, fuzzy msgid "Get New Headers in Selected Groups" msgstr "_Hent nye artikkelhoder fra valgte grupper" #: ../pan/gui/actions.cc:311 ../pan/gui/actions.cc:316 msgid "Get New _Headers in Subscribed Groups" msgstr "_Hent nye artikkelhoder fra abonnerte grupper" #: ../pan/gui/actions.cc:312 ../pan/gui/actions.cc:317 #, fuzzy msgid "Get New Headers in Subscribed Groups" msgstr "_Hent nye artikkelhoder fra abonnerte grupper" #: ../pan/gui/actions.cc:321 msgid "Get _Headers..." msgstr "_Hent artikkelhoder..." #: ../pan/gui/actions.cc:322 #, fuzzy msgid "Get Headers..." msgstr "_Hent artikkelhoder..." #: ../pan/gui/actions.cc:326 ../pan/gui/actions.cc:327 msgid "Refresh Group List" msgstr "Oppdaterer gruppeliste" #: ../pan/gui/actions.cc:331 msgid "_Subscribe" msgstr "_Abonner" #: ../pan/gui/actions.cc:332 #, fuzzy msgid "Subscribe" msgstr "_Abonner" #: ../pan/gui/actions.cc:336 msgid "_Unsubscribe" msgstr "_Kanseller" #: ../pan/gui/actions.cc:337 #, fuzzy msgid "Unsubscribe" msgstr "_Kanseller" #: ../pan/gui/actions.cc:341 msgid "_Save Articles..." msgstr "_Lagre artikler..." #: ../pan/gui/actions.cc:342 #, fuzzy msgid "Save Articles..." msgstr "_Lagre artikler..." #: ../pan/gui/actions.cc:346 #, fuzzy msgid "Save Articles from Selected _NZB..." msgstr "_Lagre artikler fra denne NZBen..." #: ../pan/gui/actions.cc:347 #, fuzzy msgid "Save Articles from Selected NZB" msgstr "_Lagre artikler fra denne NZBen..." #: ../pan/gui/actions.cc:351 #, fuzzy msgid "Save Articles to an NZB _File..." msgstr "_Lagre artikler fra denne NZBen..." #: ../pan/gui/actions.cc:352 #, fuzzy msgid "Save Articles to an NZB File" msgstr "_Lagre artikler fra denne NZBen..." #: ../pan/gui/actions.cc:356 ../pan/gui/actions.cc:357 msgid "Print" msgstr "" #: ../pan/gui/actions.cc:361 msgid "_Import NZB Files..." msgstr "_Importer NZB-filer..." #: ../pan/gui/actions.cc:366 msgid "_Cancel Last Task" msgstr "_Avbryt siste oppgave" #: ../pan/gui/actions.cc:371 msgid "_Task Manager" msgstr "_Oppgavehåndterer" #: ../pan/gui/actions.cc:376 msgid "_Event Log" msgstr "H_endelseslogg" #: ../pan/gui/actions.cc:381 msgid "_Quit" msgstr "A_vslutt" #: ../pan/gui/actions.cc:386 msgid "Select _All Articles" msgstr "Velg _alle artikler" #: ../pan/gui/actions.cc:391 msgid "_Deselect All Articles" msgstr "Velg bort a_lle artikler" #: ../pan/gui/actions.cc:396 msgid "Add Su_bthreads to Selection" msgstr "Legg til _undertråder i utvalget" #: ../pan/gui/actions.cc:401 msgid "Add _Threads to Selection" msgstr "Legg til _tråder i utvalget" #: ../pan/gui/actions.cc:406 msgid "Add _Similar Articles to Selection" msgstr "_Legg til lignende artikler i utvalget" #: ../pan/gui/actions.cc:411 msgid "Select Article _Body" msgstr "Velg artikkel_kroppen" #: ../pan/gui/actions.cc:416 msgid "Edit _Preferences" msgstr "Rediger _brukervalg" #: ../pan/gui/actions.cc:421 msgid "Edit Selected _Group's Preferences" msgstr "Rediger brukervalg for valgt _gruppe" #: ../pan/gui/actions.cc:426 ../pan/gui/post-ui.cc:434 msgid "Edit P_osting Profiles" msgstr "Rediger pr_ofiler for publisering" #: ../pan/gui/actions.cc:431 msgid "Edit _News Servers" msgstr "Rediger _nyhetstjenere" #: ../pan/gui/actions.cc:436 msgid "Jump to _Group Tab" msgstr "Gå til _gruppefanen" #: ../pan/gui/actions.cc:441 msgid "Jump to _Header Tab" msgstr "Gå til _artikkelhodefanen" #: ../pan/gui/actions.cc:446 msgid "Jump to _Body Tab" msgstr "Gå til fanen for _kropp" #: ../pan/gui/actions.cc:451 msgid "_Rot13 Selected Text" msgstr "_Rot13 valgt tekst" #: ../pan/gui/actions.cc:456 msgid "Clear _Header Pane" msgstr "Tøm _hodeområde" #: ../pan/gui/actions.cc:461 #, fuzzy msgid "Clear _Body Pane" msgstr "Område for kropp" #: ../pan/gui/actions.cc:466 #, fuzzy msgid "Cache Article" msgstr "Kansellerer artikkel" #: ../pan/gui/actions.cc:471 msgid "Read Article" msgstr "Les artikkel" #: ../pan/gui/actions.cc:476 msgid "Show Article Information" msgstr "Vis informasjon om artikkel" #: ../pan/gui/actions.cc:481 msgid "Read _More" msgstr "Les _mer" #: ../pan/gui/actions.cc:482 #, fuzzy msgid "Read More" msgstr "Les _mer" #: ../pan/gui/actions.cc:486 msgid "Read _Back" msgstr "Les til_bake" #: ../pan/gui/actions.cc:487 #, fuzzy msgid "Read Back" msgstr "Les til_bake" #: ../pan/gui/actions.cc:491 msgid "Next _Unread Group" msgstr "Neste _uleste gruppe" #: ../pan/gui/actions.cc:496 msgid "Next _Group" msgstr "Neste _gruppe" #: ../pan/gui/actions.cc:501 msgid "Next _Unread Article" msgstr "Neste _uleste artikkel" #: ../pan/gui/actions.cc:502 #, fuzzy msgid "Next Unread Article" msgstr "Neste _uleste artikkel" #: ../pan/gui/actions.cc:506 msgid "Next _Article" msgstr "Neste _artikkel" #: ../pan/gui/actions.cc:507 #, fuzzy msgid "Next Article" msgstr "Neste _artikkel" #: ../pan/gui/actions.cc:511 msgid "Next _Watched Article" msgstr "Neste _observerte artikkel" #: ../pan/gui/actions.cc:516 msgid "Next Unread _Thread" msgstr "Neste uleste _tråd" #: ../pan/gui/actions.cc:517 #, fuzzy msgid "Next Unread Thread" msgstr "Neste uleste _tråd" #: ../pan/gui/actions.cc:521 msgid "Next Threa_d" msgstr "Neste trå_d" #: ../pan/gui/actions.cc:526 msgid "Pre_vious Article" msgstr "_Forrige artikkel" #: ../pan/gui/actions.cc:531 msgid "Previous _Thread" msgstr "Forrige _tråd" #: ../pan/gui/actions.cc:536 msgid "_Parent Article" msgstr "Artikkelens o_pphav" #: ../pan/gui/actions.cc:541 msgid "Ignore _Author" msgstr "Ignorer forfatter" #: ../pan/gui/actions.cc:545 msgid "_Watch Thread" msgstr "_Overvåk tråd" #: ../pan/gui/actions.cc:550 msgid "_Ignore Thread" msgstr "_Ignorer tråd" #: ../pan/gui/actions.cc:555 ../pan/gui/actions.cc:556 #, fuzzy msgid "_Toggle Flag On/Off for Thread" msgstr "_Overvåk tråd" #: ../pan/gui/actions.cc:560 ../pan/gui/actions.cc:561 #, fuzzy msgid "_Turn Flag Off for Thread" msgstr "_Overvåk tråd" #: ../pan/gui/actions.cc:565 ../pan/gui/actions.cc:566 #, fuzzy msgid "_Select All Flagged Threads" msgstr "Neste uleste _tråd" #: ../pan/gui/actions.cc:570 ../pan/gui/actions.cc:571 #, fuzzy msgid "_Go to Next Flagged Thread" msgstr "Neste uleste _tråd" #: ../pan/gui/actions.cc:575 ../pan/gui/actions.cc:576 #, fuzzy msgid "_Go to Last Flagged Thread" msgstr "Neste uleste _tråd" #: ../pan/gui/actions.cc:580 ../pan/gui/actions.cc:581 #, fuzzy msgid "_Invert Selection" msgstr "Legg til _tråder i utvalget" #: ../pan/gui/actions.cc:585 msgid "Edit Article's Watch/Ignore/Score..." msgstr "" #: ../pan/gui/actions.cc:590 #, fuzzy msgid "Add a _Scoring Rule..." msgstr "Legg til ny poengsum" #: ../pan/gui/actions.cc:595 msgid "Cance_l Article..." msgstr "Avbryt artikke_l..." #: ../pan/gui/actions.cc:600 #, fuzzy msgid "_Supersede Article..." msgstr "/_Lagre artikkel som..." #: ../pan/gui/actions.cc:605 msgid "_Delete Article" msgstr "_Slett artikkel" #: ../pan/gui/actions.cc:610 #, fuzzy msgid "Clear Article Cache" msgstr "Merk artikkel som lest" #: ../pan/gui/actions.cc:615 msgid "_Mark Article as Read" msgstr "_Merk artikkel som lest" #: ../pan/gui/actions.cc:620 msgid "Mark Article as _Unread" msgstr "Merk artikkel som _ulest" #: ../pan/gui/actions.cc:626 #, fuzzy msgid "_Mark Thread as Read" msgstr "_Merk artikkel som lest" #: ../pan/gui/actions.cc:631 #, fuzzy msgid "Mark Thread as _Unread" msgstr "Merk artikkel som _ulest" #: ../pan/gui/actions.cc:636 msgid "_Post to Newsgroup" msgstr "_Publiser til nyhetsgruppe" #: ../pan/gui/actions.cc:637 #, fuzzy msgid "Post to Newsgroup" msgstr "_Publiser til nyhetsgruppe" #: ../pan/gui/actions.cc:641 msgid "_Followup to Newsgroup" msgstr "_Følg opp til nyhetsgruppe" #: ../pan/gui/actions.cc:642 #, fuzzy msgid "Followup to Newsgroup" msgstr "_Følg opp til nyhetsgruppe" #: ../pan/gui/actions.cc:646 msgid "_Reply to Author in Mail" msgstr "" #: ../pan/gui/actions.cc:651 msgid "_Pan Home Page" msgstr "Pan hjemmeside" #: ../pan/gui/actions.cc:656 msgid "Give _Feedback or Report a Bug..." msgstr "" #: ../pan/gui/actions.cc:661 msgid "_Tip Jar..." msgstr "" #: ../pan/gui/actions.cc:666 msgid "_About" msgstr "_Om" #: ../pan/gui/actions.cc:671 msgid "Edit _SSL Certificates" msgstr "" #: ../pan/gui/actions.cc:685 msgid "_Thread Headers" msgstr "Flere rubrikker" #: ../pan/gui/actions.cc:686 msgid "_Wrap Article Body" msgstr "_Bryt meldingskroppen" #: ../pan/gui/actions.cc:687 msgid "Mute _Quoted Text" msgstr "Skjul _sitert tekst" #: ../pan/gui/actions.cc:688 msgid "Show All _Headers in Body Pane" msgstr "Vis alle _hoder i området for kroppen" #: ../pan/gui/actions.cc:689 msgid "Show _Smilies as Graphics" msgstr "" #: ../pan/gui/actions.cc:690 msgid "Show *Bold*, __Underlined__, and /Italic/" msgstr "" #: ../pan/gui/actions.cc:691 msgid "Size Pictures to _Fit" msgstr "" #: ../pan/gui/actions.cc:692 #, fuzzy msgid "Use _Monospace Font" msgstr "_Enhetlig skrift:" #: ../pan/gui/actions.cc:693 msgid "Set Focus to Images" msgstr "" #: ../pan/gui/actions.cc:694 msgid "Highlight _URLs" msgstr "" #: ../pan/gui/actions.cc:697 msgid "_Work Online" msgstr "Ar_beid tilkoblet" #: ../pan/gui/actions.cc:698 #, fuzzy msgid "_Tabbed Layout" msgstr "/_Vis/_Faner" #: ../pan/gui/actions.cc:699 #, fuzzy msgid "Show Group _Pane" msgstr "/_Vis/Vis gruppe_område" #: ../pan/gui/actions.cc:700 #, fuzzy msgid "Show Hea_der Pane" msgstr "/_Vis/Vis _topptekstfane" #: ../pan/gui/actions.cc:701 #, fuzzy msgid "Show Bod_y Pane" msgstr "/_Vis/Vis område for kropp" #: ../pan/gui/actions.cc:702 msgid "Show _Toolbar" msgstr "Vis verk_tøylinje" #: ../pan/gui/actions.cc:703 msgid "Abbreviate Group Names" msgstr "Forkort gruppenavn" #: ../pan/gui/actions.cc:705 #, fuzzy msgid "Match Only _Unread Articles" msgstr "Vis kun _uleste artikler" #: ../pan/gui/actions.cc:705 #, fuzzy msgid "Match Only Unread Articles" msgstr "Vis kun _uleste artikler" #: ../pan/gui/actions.cc:706 #, fuzzy msgid "Match Only _Cached Articles" msgstr "Vis kun _mellomlagrede artikler" #: ../pan/gui/actions.cc:706 #, fuzzy msgid "Match Only Cached Articles" msgstr "Vis kun _mellomlagrede artikler" #: ../pan/gui/actions.cc:707 #, fuzzy msgid "Match Only _Complete Articles" msgstr "Vis kun _komplette artikler" #: ../pan/gui/actions.cc:707 #, fuzzy msgid "Match Only Complete Articles" msgstr "Vis kun _komplette artikler" #: ../pan/gui/actions.cc:708 #, fuzzy msgid "Match Only _My Articles" msgstr "Vis kun _mine artikler" #: ../pan/gui/actions.cc:708 #, fuzzy msgid "Match Only My Articles" msgstr "Vis kun _mine artikler" #: ../pan/gui/actions.cc:709 #, fuzzy msgid "Match Only _Watched Articles" msgstr "Vis kun observerte artikler" #: ../pan/gui/actions.cc:709 #, fuzzy msgid "Match Only Watched Articles" msgstr "Vis kun observerte artikler" #: ../pan/gui/actions.cc:711 #, fuzzy msgid "Match Scores of 9999 (_Watched)" msgstr "/Filte_r/Vis artikler med poengsum 9999 (observert)" #: ../pan/gui/actions.cc:712 #, fuzzy msgid "Match Scores of 5000...9998 (_High)" msgstr "/Filte_r/Vis artikler med poengsum mellom 5000 og 9998 (høy)" #: ../pan/gui/actions.cc:713 #, fuzzy msgid "Match Scores of 1...4999 (Me_dium)" msgstr "/Filte_r/Vis artikler med poengsum mellom 1 og 4999 (middels)" #: ../pan/gui/actions.cc:714 #, fuzzy msgid "Match Scores of 0 (_Normal)" msgstr "/Filte_r/Vis artikler med poengsum lik 0 (normal)" #: ../pan/gui/actions.cc:715 #, fuzzy msgid "Match Scores of -9998...-1 (_Low)" msgstr "/Filte_r/Vis artikler med poengsum mellom -9998 og -1 (lav)" #: ../pan/gui/actions.cc:716 #, fuzzy msgid "Match Scores of -9999 (_Ignored)" msgstr "/Filte_r/Vis artikler med poengsum -9999 eller lavere (ignorert)" #: ../pan/gui/actions.cc:718 msgid "Enable/Disable All _Rules" msgstr "" #: ../pan/gui/actions.cc:744 #, fuzzy msgid "Show Matching _Articles" msgstr "/Filte_r/Vis artikler med treff" #: ../pan/gui/actions.cc:745 #, fuzzy msgid "Show Matching Articles' _Threads" msgstr "/Filte_r/Vis tråder for artikler med treff" #: ../pan/gui/actions.cc:746 #, fuzzy msgid "Show Matching Articles' _Subthreads" msgstr "/Filte_r/Vis undertråder for artikler med treff" #: ../pan/gui/body-pane.cc:1011 #, fuzzy, c-format msgid "Unnamed File" msgstr "Signaturfil" #: ../pan/gui/body-pane.cc:1092 ../pan/gui/gui.cc:1864 #: ../pan/gui/header-pane.cc:1188 ../pan/gui/header-pane.cc:1617 #: ../pan/gui/post-ui.cc:2496 ../pan/gui/prefs-ui.cc:833 #: ../pan/gui/score-add-ui.cc:139 msgid "Subject" msgstr "Tittel" #: ../pan/gui/body-pane.cc:1094 ../pan/gui/gui.cc:1864 msgid "From" msgstr "Fra" #: ../pan/gui/body-pane.cc:1096 ../pan/gui/gui.cc:1865 #: ../pan/gui/header-pane.cc:1695 ../pan/gui/log-ui.cc:305 #: ../pan/gui/prefs-ui.cc:829 msgid "Date" msgstr "Dato" #: ../pan/gui/body-pane.cc:1103 msgid "Newsgroups" msgstr "Nyhetsgrupper" #: ../pan/gui/body-pane.cc:1108 msgid "Followup-To" msgstr "Svargrupper:" #: ../pan/gui/body-pane.cc:1118 msgid "Reply-To" msgstr "Svar-til" #: ../pan/gui/body-pane.cc:1160 msgid " from " msgstr " fra " #: ../pan/gui/body-pane.cc:1162 msgid " at " msgstr " kl " #: ../pan/gui/body-pane.cc:1264 #, c-format msgid "" "This is a PGP-Signed message.\n" "\n" "Signer : %s ('%s')\n" "Valid until : %s\n" "Created on : %s" msgstr "" #: ../pan/gui/body-pane.cc:1269 msgid "always" msgstr "" #: ../pan/gui/body-pane.cc:1485 msgid "Copy _URL" msgstr "Kopier _URL" #: ../pan/gui/body-pane.cc:1680 #, fuzzy msgid "Save attachment as ...." msgstr "Lagre vedlegg" #: ../pan/gui/body-pane.cc:1683 #, fuzzy msgid "Save all attachments" msgstr "Lagre vedlegg" #. add a toolbar for attachments #: ../pan/gui/body-pane.cc:1753 #, fuzzy msgid "Attachments" msgstr "Lagre vedlegg" #. update the titlebar #: ../pan/gui/dl-headers-ui.cc:106 ../pan/gui/gui.cc:973 #: ../pan/gui/gui.cc:1592 ../pan/gui/gui.cc:1893 #: ../pan/gui/score-add-ui.cc:602 msgid "Pan" msgstr "Pan" #: ../pan/gui/dl-headers-ui.cc:112 #, fuzzy, c-format msgid "%d Group" msgid_plural "%d Groups" msgstr[0] "%d grupper" msgstr[1] "%d grupper" #: ../pan/gui/dl-headers-ui.cc:135 msgid "Get the last N _days' headers: " msgstr "" #: ../pan/gui/dl-headers-ui.cc:143 #, fuzzy msgid "Get _new headers" msgstr "/_Hent nye artikkelhoder" #: ../pan/gui/dl-headers-ui.cc:147 #, fuzzy msgid "Get _all headers" msgstr "Last ned _alle artikkelhoder" #: ../pan/gui/dl-headers-ui.cc:151 msgid "Get the _latest N headers: " msgstr "Hent de _siste N artikkelhodene:" #: ../pan/gui/e-action-combo-box.c:388 ../pan/gui/prefs-ui.cc:826 msgid "Action" msgstr "Handling" #: ../pan/gui/e-action-combo-box.c:389 msgid "A GtkRadioAction" msgstr "" #: ../pan/gui/e-charset.c:51 ../pan/gui/task-pane.cc:518 msgid "Unknown" msgstr "Ukjent" #: ../pan/gui/e-charset.c:52 msgid "Arabic" msgstr "" #: ../pan/gui/e-charset.c:53 msgid "Baltic" msgstr "Baltisk" #: ../pan/gui/e-charset.c:54 msgid "Central European" msgstr "Sentraleuropeisk" #: ../pan/gui/e-charset.c:55 msgid "Chinese" msgstr "Kinesisk" #: ../pan/gui/e-charset.c:56 msgid "Cyrillic" msgstr "Kyrillisk" #: ../pan/gui/e-charset.c:57 msgid "Greek" msgstr "Gresk" #: ../pan/gui/e-charset.c:58 msgid "Hebrew" msgstr "Hebraisk" #: ../pan/gui/e-charset.c:59 msgid "Japanese" msgstr "Japansk" #: ../pan/gui/e-charset.c:60 msgid "Korean" msgstr "Koreansk" #: ../pan/gui/e-charset.c:61 msgid "Thai" msgstr "Thai" #: ../pan/gui/e-charset.c:62 msgid "Turkish" msgstr "Tyrkisk" #: ../pan/gui/e-charset.c:63 msgid "Unicode" msgstr "Unicode" #: ../pan/gui/e-charset.c:64 msgid "Western European" msgstr "Vesteuropeisk" #: ../pan/gui/e-charset.c:65 msgid "Western European, New" msgstr "Vesteuropeisk, ny" #: ../pan/gui/e-charset.c:84 ../pan/gui/e-charset.c:85 #: ../pan/gui/e-charset.c:86 msgid "Traditional" msgstr "Tradisjonell" #: ../pan/gui/e-charset.c:87 ../pan/gui/e-charset.c:88 #: ../pan/gui/e-charset.c:89 ../pan/gui/e-charset.c:90 msgid "Simplified" msgstr "Forenklet" #: ../pan/gui/e-charset.c:93 msgid "Ukrainian" msgstr "Ukrainsk" #: ../pan/gui/e-charset.c:96 msgid "Visual" msgstr "Visuell" #: ../pan/gui/e-charset-combo-box.c:93 ../pan/gui/gui.cc:2058 #: ../pan/gui/post-ui.cc:519 ../pan/gui/prefs-ui.cc:737 msgid "Character Encoding" msgstr "Tegnkoding" #: ../pan/gui/e-charset-combo-box.c:117 msgid "Enter the character set to use" msgstr "" #: ../pan/gui/e-charset-combo-box.c:336 msgid "Other..." msgstr "Andre..." #: ../pan/gui/e-cte-dialog.c:78 #, fuzzy msgid "Default encoding" msgstr "Fjerner" #: ../pan/gui/e-cte-dialog.c:80 #, fuzzy msgid "7Bit Encoding" msgstr "Fjerner" #: ../pan/gui/e-cte-dialog.c:82 #, fuzzy msgid "8Bit Encoding" msgstr "Fjerner" #: ../pan/gui/e-cte-dialog.c:84 #, fuzzy msgid "BASE64 Encoding" msgstr "Fjerner" #: ../pan/gui/e-cte-dialog.c:86 #, fuzzy msgid "Quoted-Printable Encoding" msgstr "Område for kropp" #: ../pan/gui/group-pane.cc:500 #, fuzzy msgid "Group" msgstr "Grupper" #: ../pan/gui/group-pane.cc:501 #, fuzzy msgid "Group (regex)" msgstr "Gruppenavn" #: ../pan/gui/group-pane.cc:913 #, fuzzy msgid "Subscribed Groups" msgstr "Abonnerte nyhetsgrupper" #: ../pan/gui/group-pane.cc:914 msgid "Other Groups" msgstr "Andre grupper" #: ../pan/gui/group-pane.cc:954 ../pan/gui/score-view-ui.cc:157 msgid "Name" msgstr "Navn" #: ../pan/gui/group-prefs-dialog.cc:156 msgid "No Profiles defined in Edit|Posting Profiles." msgstr "" #: ../pan/gui/group-prefs-dialog.cc:231 #, fuzzy msgid "Pan: Group Preferences" msgstr "Brukervalg for Pan" #: ../pan/gui/group-prefs-dialog.cc:247 #, fuzzy, c-format msgid "Properties for Groups" msgstr "Egenskaper for «%s»" #: ../pan/gui/group-prefs-dialog.cc:249 #, fuzzy, c-format msgid "Properties for %s" msgstr "Egenskaper for «%s»" #: ../pan/gui/group-prefs-dialog.cc:257 msgid "Character _encoding:" msgstr "T_egnkoding:" #: ../pan/gui/group-prefs-dialog.cc:259 msgid "Directory for Saving Attachments" msgstr "Katalog for lagring av vedlegg" #: ../pan/gui/group-prefs-dialog.cc:269 msgid "Directory for _saving attachments:" msgstr "Katalog for _lagring av vedlegg" #: ../pan/gui/group-prefs-dialog.cc:271 #, fuzzy msgid "Posting _profile:" msgstr "Publiserer artikkel «%s»" #: ../pan/gui/group-prefs-dialog.cc:277 msgid "Spellchecker _language:" msgstr "" #: ../pan/gui/gui.cc:273 msgid "Open the Task Manager" msgstr "Åpne køstyreren" #: ../pan/gui/gui.cc:301 msgid "Open the Event Log" msgstr "Åpne hendelsesloggen" #: ../pan/gui/gui.cc:561 msgid "Save NZB's Files" msgstr "" #: ../pan/gui/gui.cc:588 msgid "Untitled.nzb" msgstr "" #: ../pan/gui/gui.cc:590 #, fuzzy msgid "Save NZB File as..." msgstr "_Importer NZB-filer..." #: ../pan/gui/gui.cc:757 msgid "Import NZB Files" msgstr "Importer NZB-filer" #: ../pan/gui/gui.cc:765 ../pan/gui/post-ui.cc:3197 msgid "NZB Files" msgstr "NZB-filer" #: ../pan/gui/gui.cc:770 msgid "All Files" msgstr "Alle filer" #: ../pan/gui/gui.cc:1258 #, fuzzy msgid "Unable to supersede article." msgstr "Linjer per artikkel:" #: ../pan/gui/gui.cc:1259 ../pan/gui/gui.cc:1333 msgid "The article doesn't match any of your posting profiles." msgstr "" #: ../pan/gui/gui.cc:1306 msgid "Revise and send this article to replace the old one." msgstr "" #: ../pan/gui/gui.cc:1307 ../pan/gui/gui.cc:1370 msgid "Be patient! It will take time for your changes to take effect." msgstr "Vær tålmodig! Det vil ta tid før endringene tar effekt." #: ../pan/gui/gui.cc:1332 #, fuzzy msgid "Unable to cancel article." msgstr "Kansellerer artikkel" #: ../pan/gui/gui.cc:1369 msgid "Send this article to ask your server to cancel your other one." msgstr "" #: ../pan/gui/gui.cc:1387 #, fuzzy msgid "You marked some articles for deletion" msgstr "_Legg til lignende artikler i utvalget" #: ../pan/gui/gui.cc:1388 msgid "Are you sure you want to delete them?" msgstr "" #: ../pan/gui/gui.cc:1413 #, fuzzy msgid "Always trust" msgstr "Kjør r_edigering" #: ../pan/gui/gui.cc:1416 msgid "Do you want to accept it permanently (deletable afterwards) ?" msgstr "" #: ../pan/gui/gui.cc:1595 #, fuzzy msgid "Copyright \\u00A9 2002-2012 Charles Kerr and others" msgstr "Opphavsrett © 2003-2007 Charles Kerr" #: ../pan/gui/gui.cc:1600 msgid "translator-credits" msgstr "Kjartan Maraas " #: ../pan/gui/gui.cc:1709 #, fuzzy msgid "_1. Group Pane" msgstr "Gruppeområde" #: ../pan/gui/gui.cc:1710 #, fuzzy msgid "_2. Header Pane" msgstr "Hodeområde" #: ../pan/gui/gui.cc:1711 #, fuzzy msgid "_3. Body Pane" msgstr "Område for kropp" #: ../pan/gui/gui.cc:1800 ../pan/gui/gui.cc:1815 #, fuzzy msgid " Bytes" msgstr "Byte" #: ../pan/gui/gui.cc:1803 msgid " KB" msgstr "" #: ../pan/gui/gui.cc:1806 msgid " MB" msgstr "" #: ../pan/gui/gui.cc:1809 msgid " GB" msgstr "" #: ../pan/gui/gui.cc:1812 msgid " TB" msgstr "" #: ../pan/gui/gui.cc:1844 #, fuzzy, c-format msgid "This article is complete with %d part." msgid_plural "This article has all %d parts." msgstr[0] "artikkelen har vedlegg" msgstr[1] "artikkelen har vedlegg" #: ../pan/gui/gui.cc:1846 #, fuzzy, c-format msgid "This article is missing %d part." msgid_plural "This article is missing %d of its %d parts:" msgstr[0] "artikkelen har vedlegg" msgstr[1] "artikkelen har vedlegg" #: ../pan/gui/gui.cc:1865 ../pan/gui/header-pane.cc:1190 msgid "Message-ID" msgstr "Artikkel-ID" #: ../pan/gui/gui.cc:1866 ../pan/gui/header-pane.cc:1665 #: ../pan/gui/prefs-ui.cc:830 msgid "Lines" msgstr "Linjer" #: ../pan/gui/gui.cc:1866 msgid "Size" msgstr "" #: ../pan/gui/gui.cc:1867 ../pan/gui/header-pane.cc:1680 #: ../pan/gui/prefs-ui.cc:828 msgid "Bytes" msgstr "Byte" #: ../pan/gui/gui.cc:1917 msgid "" "Error loading iconv library. Some Charsets in the GUI will not be able to be " "encoded." msgstr "" #: ../pan/gui/gui.cc:2059 #, fuzzy msgid "Body Pane Encoding" msgstr "Område for kropp" #: ../pan/gui/gui.cc:2090 ../pan/gui/task-pane.cc:569 #, c-format msgid "Offline" msgstr "Frakoblet" #: ../pan/gui/gui.cc:2094 #, fuzzy, c-format msgid "Closing %d connection" msgid_plural "Closing %d connections" msgstr[0] "Lukker %d tilkoblinger" msgstr[1] "Lukker %d tilkoblinger" #: ../pan/gui/gui.cc:2096 ../pan/gui/gui.cc:2126 #, c-format msgid "No Connections" msgstr "Ingen tilkoblinger" #: ../pan/gui/gui.cc:2100 #, c-format msgid "Connecting" msgstr "kobler til" #: ../pan/gui/gui.cc:2113 #, c-format msgid "%s: %d idle, %d active @ %.1f KiBps" msgstr "" #: ../pan/gui/gui.cc:2169 #, c-format msgid "No Tasks" msgstr "Ingen oppgaver" #: ../pan/gui/gui.cc:2171 ../pan/gui/prefs-ui.cc:1047 msgid "Tasks" msgstr "Oppgaver" #: ../pan/gui/gui.cc:2182 ../pan/gui/task-pane.cc:435 #, c-format msgid "%lu tasks, %s, %.1f KiBps, ETA %d:%02d:%02d" msgstr "" #: ../pan/gui/gui.cc:2234 msgid "" "Pan is now offline. Please see \"File|Event Log\" and correct the problem, " "then use \"File|Work Online\" to continue." msgstr "" #: ../pan/gui/header-pane.cc:1186 msgid "Subject or Author" msgstr "Emne eller forfatter" #: ../pan/gui/header-pane.cc:1187 #, fuzzy msgid "Sub or Auth (regex)" msgstr "Emne eller forfatter" #: ../pan/gui/header-pane.cc:1189 ../pan/gui/header-pane.cc:1649 #: ../pan/gui/prefs-ui.cc:827 ../pan/gui/score-add-ui.cc:140 msgid "Author" msgstr "Forfatter" #: ../pan/gui/header-pane.cc:1634 ../pan/gui/prefs-ui.cc:831 msgid "Score" msgstr "Poengsum" #: ../pan/gui/log-ui.cc:103 msgid "Save Event List" msgstr "Lagre hendelseslisten" #: ../pan/gui/log-ui.cc:256 msgid "Pan: Events" msgstr "Pan: hendelser" #: ../pan/gui/log-ui.cc:315 msgid "Message" msgstr "Artikkel" #: ../pan/gui/pan.cc:330 msgid "Maximize" msgstr "" #: ../pan/gui/pan.cc:383 msgid "An Error has occurred!" msgstr "" #: ../pan/gui/pan.cc:397 #, fuzzy msgid "New Articles!" msgstr "Neste _artikkel" #: ../pan/gui/pan.cc:398 msgid "" "There are new\n" "articles available." msgstr "" #: ../pan/gui/pan.cc:465 msgid "Toggle on/offline" msgstr "" #: ../pan/gui/pan.cc:513 msgid "" "Thank you for trying Pan!\n" " \n" "To start newsreading, first Add a Server." msgstr "" "Takk for at du prøver Pan!\n" "\n" "Før du starter må du legge til en tjener." #: ../pan/gui/pan.cc:595 msgid "" "General Options\n" " -h, --help Show this usage page.\n" " --verbose Be verbose (in non-GUI mode).\n" "\n" "URL Options\n" " --no-gui On news:message-id, dump the article to stdout.\n" "\n" "NZB Batch Options\n" " --nzb file1 file2 ... Process nzb files without launching all of Pan.\n" " -o path, --output=path Path to save attachments listed in the nzb " "files.\n" " --no-gui Only show console output, not the download " "queue.\n" msgstr "" #: ../pan/gui/pan.cc:867 msgid "Error: --no-gui used without nzb files or news:message-id." msgstr "" #: ../pan/gui/pan.cc:871 #, c-format msgid "Pan %s started" msgstr "Pan %s startet" #: ../pan/gui/pan.cc:890 msgid "Please configure Pan's news servers before using it as an nzb client." msgstr "" #: ../pan/gui/pan.cc:1009 msgid "Pan notification" msgstr "" #: ../pan/gui/post-ui.cc:186 #, c-format msgid "Upload Queue : %ld Tasks, %ld KB (~ %.2f MB) total ." msgstr "" #: ../pan/gui/post-ui.cc:286 #, fuzzy, c-format msgid "Error setting custom spellchecker: %s" msgstr "Feil under setting av stavekontroll: %s" #: ../pan/gui/post-ui.cc:291 ../pan/gui/post-ui.cc:300 #, c-format msgid "Error setting spellchecker: %s" msgstr "Feil under setting av stavekontroll: %s" #: ../pan/gui/post-ui.cc:419 msgid "_Profile" msgstr "_Profil" #: ../pan/gui/post-ui.cc:420 msgid "Set Editor" msgstr "Sett redigeringsprogram" #: ../pan/gui/post-ui.cc:422 msgid "_Send Article" msgstr "_Send artikkel" #: ../pan/gui/post-ui.cc:422 msgid "Send Article Now" msgstr "Send artikkel nå" #: ../pan/gui/post-ui.cc:423 #, fuzzy msgid "_Send and Save Articles to NZB" msgstr "Pan: lagre artikler" #: ../pan/gui/post-ui.cc:423 #, fuzzy msgid "Send and Save Articles to NZB" msgstr "Pan: lagre artikler" #: ../pan/gui/post-ui.cc:424 msgid "Set Character _Encoding..." msgstr "Sett t_egnkoding..." #: ../pan/gui/post-ui.cc:425 #, fuzzy msgid "Set Content _Transfer Encoding..." msgstr "Sett t_egnkoding..." #: ../pan/gui/post-ui.cc:426 msgid "Sa_ve Draft" msgstr "La_gre skisse" #: ../pan/gui/post-ui.cc:426 msgid "Save as a Draft for Future Posting" msgstr "" #: ../pan/gui/post-ui.cc:427 msgid "_Open Draft..." msgstr "_Åpne skisse..." #: ../pan/gui/post-ui.cc:427 msgid "Open an Article Draft" msgstr "" #: ../pan/gui/post-ui.cc:432 msgid "_Rot13" msgstr "_Rot13" #: ../pan/gui/post-ui.cc:432 msgid "Rot13 Selected Text" msgstr "Rot13 valgt tekst" #: ../pan/gui/post-ui.cc:433 msgid "Run _Editor" msgstr "Kjør r_edigering" #: ../pan/gui/post-ui.cc:433 #, fuzzy msgid "Run Editor" msgstr "Kjør r_edigering" #: ../pan/gui/post-ui.cc:435 msgid "Add _Files to Queue" msgstr "" #: ../pan/gui/post-ui.cc:435 msgid "Add Files to Queue" msgstr "" #: ../pan/gui/post-ui.cc:450 ../pan/gui/post-ui.cc:451 #, fuzzy msgid "Remove from Queue" msgstr "Fjern en tjener" #: ../pan/gui/post-ui.cc:455 ../pan/gui/post-ui.cc:456 msgid "Clear List" msgstr "" #: ../pan/gui/post-ui.cc:460 ../pan/gui/post-ui.cc:461 #, fuzzy msgid "Select Needed Parts" msgstr "Velg _alle artikler" #: ../pan/gui/post-ui.cc:465 ../pan/gui/post-ui.cc:466 #: ../pan/gui/task-pane.cc:636 ../pan/gui/task-pane.cc:637 msgid "Move Up" msgstr "" #: ../pan/gui/post-ui.cc:470 ../pan/gui/post-ui.cc:471 #: ../pan/gui/task-pane.cc:641 ../pan/gui/task-pane.cc:642 msgid "Move Down" msgstr "" #: ../pan/gui/post-ui.cc:475 ../pan/gui/post-ui.cc:476 msgid "Move to Top" msgstr "" #: ../pan/gui/post-ui.cc:480 ../pan/gui/post-ui.cc:481 msgid "Move to Bottom" msgstr "" #: ../pan/gui/post-ui.cc:488 msgid "_Wrap Text" msgstr "_Bryt tekst" #: ../pan/gui/post-ui.cc:488 #, fuzzy msgid "Wrap Text" msgstr "_Bryt tekst" #: ../pan/gui/post-ui.cc:489 #, fuzzy msgid "Always Run Editor" msgstr "Kjør r_edigering" #: ../pan/gui/post-ui.cc:490 #, fuzzy msgid "Remember Character Encoding for this Group" msgstr "Tegnkoding" #: ../pan/gui/post-ui.cc:491 msgid "Thread Attached Replies" msgstr "" #: ../pan/gui/post-ui.cc:492 msgid "PGP-Encrypt the Message" msgstr "" #: ../pan/gui/post-ui.cc:493 msgid "PGP-Sign the Message" msgstr "" #: ../pan/gui/post-ui.cc:494 msgid "Check _Spelling" msgstr "Sjekk _staving" #: ../pan/gui/post-ui.cc:520 msgid "New Article's Encoding:" msgstr "" #: ../pan/gui/post-ui.cc:530 #, fuzzy msgid "Content Transfer Encoding" msgstr "Tegnkoding" #: ../pan/gui/post-ui.cc:531 msgid "New Article's Content Transfer Encoding:" msgstr "" #: ../pan/gui/post-ui.cc:711 msgid "Your changes will be lost!" msgstr "Dine endringer vil gå tapt!" #: ../pan/gui/post-ui.cc:712 msgid "Close this window and lose your changes?" msgstr "" #: ../pan/gui/post-ui.cc:757 ../pan/gui/post-ui.cc:796 msgid "There were problems with this post." msgstr "" #: ../pan/gui/post-ui.cc:759 ../pan/gui/post-ui.cc:798 #: ../pan/gui/post-ui.cc:861 msgid "Go Back" msgstr "Gå tilbake" #: ../pan/gui/post-ui.cc:761 msgid "Post Anyway" msgstr "Publiser uansett" #. Prompt the user #: ../pan/gui/post-ui.cc:790 #, fuzzy, c-format msgid "" "Message uses characters not specified in charset '%s' - possibly use '%s' " msgstr "" "Artikkelen bruker tegn som ikke er spesifisert i tegnsettet «%s» - bruk " "«%s» i stedet?" #: ../pan/gui/post-ui.cc:813 msgid "Go _Online" msgstr "Start tilk_oblet modus" #: ../pan/gui/post-ui.cc:860 msgid "The file queue is empty, so no files can be saved." msgstr "" #: ../pan/gui/post-ui.cc:1019 msgid "" "No posting server is set for this posting profile.\n" "Please edit the profile via Edit|Manage Posting Profiles." msgstr "" #: ../pan/gui/post-ui.cc:1054 msgid "Pan is Offline." msgstr "Pan er frakoblet." #: ../pan/gui/post-ui.cc:1055 msgid "Go online to post the article?" msgstr "" #: ../pan/gui/post-ui.cc:1102 #, c-format msgid "" "Error signing/encrypting your message. Perhaps you misspelled your email-" "address (%s) ?" msgstr "" #: ../pan/gui/post-ui.cc:1267 msgid "Error opening temporary file" msgstr "Feil ved åpning av midlertidig fil" #: ../pan/gui/post-ui.cc:1279 #, c-format msgid "Error writing article to temporary file: %s" msgstr "Feil ved skriving av artikkel til midlertidig fil: %s" #: ../pan/gui/post-ui.cc:1298 #, fuzzy, c-format msgid "Error parsing \"external editor\" command line: %s (Command was: %s)" msgstr "Feil ved lesing av kommandolinjen for ekstern redigering: %s" #: ../pan/gui/post-ui.cc:1339 #, c-format msgid "Error starting external editor: %s" msgstr "Feil ved oppstart av ekstern redigering: %s" #: ../pan/gui/post-ui.cc:1395 #, fuzzy msgid "Open Draft Article" msgstr " artikkel" #: ../pan/gui/post-ui.cc:1606 #, fuzzy msgid "Save Draft Article" msgstr "Lagre artikkel som..." #: ../pan/gui/post-ui.cc:1803 #, fuzzy, c-format msgid "Couldn't parse signature command \"%s\": %s" msgstr "Kunne ikke lese signaturkommando «%s»" #: ../pan/gui/post-ui.cc:1839 #, fuzzy msgid "Couldn't convert signature to UTF-8." msgstr "" "Kunne ikke konvertere signaturfil «%s» til UTF-8. Signatur må være i «%s»" #: ../pan/gui/post-ui.cc:2334 msgid "F_rom" msgstr "F_ra" #: ../pan/gui/post-ui.cc:2352 msgid "_Subject" msgstr "_Emne" #: ../pan/gui/post-ui.cc:2365 msgid "_Newsgroups" msgstr "_Nyhetsgrupper" #: ../pan/gui/post-ui.cc:2379 msgid "Mail _To" msgstr "E-post _til" #: ../pan/gui/post-ui.cc:2481 msgid "Delete from Queue" msgstr "" #: ../pan/gui/post-ui.cc:2494 msgid "No." msgstr "" #: ../pan/gui/post-ui.cc:2498 ../pan/gui/post-ui.cc:2592 #: ../pan/gui/post-ui.cc:2633 #, fuzzy msgid "Filename" msgstr "_Fil" #: ../pan/gui/post-ui.cc:2500 msgid "Size (kB)" msgstr "" #: ../pan/gui/post-ui.cc:2600 msgid "The current filename" msgstr "" #: ../pan/gui/post-ui.cc:2604 #, fuzzy msgid "Subject Line" msgstr "Tittel" #: ../pan/gui/post-ui.cc:2612 msgid "The current Subject Line" msgstr "" #: ../pan/gui/post-ui.cc:2626 msgid "No. " msgstr "" #: ../pan/gui/post-ui.cc:2630 msgid "Enable/Disable" msgstr "" #: ../pan/gui/post-ui.cc:2664 msgid "Follo_wup-To" msgstr "_Oppfølging-til" #. i18n: "poster" is a key used by many newsreaders. probably safest to keep this key in english. #: ../pan/gui/post-ui.cc:2673 msgid "" "The newsgroups where replies to your message should go. This is only needed " "if it differs from the \"Newsgroups\" header.\n" "\n" "To direct all replies to your email address, use \"Followup-To: poster\"" msgstr "" #: ../pan/gui/post-ui.cc:2679 msgid "_Reply-To" msgstr "_Svar-til" #: ../pan/gui/post-ui.cc:2687 msgid "" "The email account where mail replies to your posted message should go. This " "is only needed if it differs from the \"From\" header." msgstr "" #: ../pan/gui/post-ui.cc:2693 #, fuzzy msgid "_Custom Headers" msgstr "_Flere hoder" #: ../pan/gui/post-ui.cc:2717 msgid "Add \"_User-Agent\" header" msgstr "" #: ../pan/gui/post-ui.cc:2724 msgid "Add \"Message-_Id\" header" msgstr "" #: ../pan/gui/post-ui.cc:2855 #, fuzzy msgid "Select Parts" msgstr "Velg _alle artikler" #: ../pan/gui/post-ui.cc:2866 msgid "_Parts" msgstr "" #: ../pan/gui/post-ui.cc:3022 msgid "Post Article" msgstr "Publiser artikkel" #: ../pan/gui/post-ui.cc:3043 msgid "_Message" msgstr "_Beskjed" #: ../pan/gui/post-ui.cc:3044 #, fuzzy msgid "More _Headers" msgstr "_Flere hoder" #: ../pan/gui/post-ui.cc:3045 msgid "File _Queue" msgstr "" #: ../pan/gui/post-ui.cc:3077 ../pan/gui/profiles-dialog.cc:478 #, no-c-format msgid "On %d, %n wrote:" msgstr "Den %d, skrev %n:" #: ../pan/gui/post-ui.cc:3106 msgid "Add files to queue" msgstr "" #: ../pan/gui/post-ui.cc:3184 msgid "Save Upload Queue as NZB File" msgstr "" #: ../pan/gui/prefs.cc:343 #, fuzzy, c-format msgid "Couldn't parse %s color \"%s\"" msgstr "Kunne ikke lese signaturkommando «%s»" #: ../pan/gui/prefs-ui.cc:120 msgid "Grab Key" msgstr "" #: ../pan/gui/prefs-ui.cc:126 #, c-format msgid "" "Press the combination of the keys\n" "you want to use for \"%s\"." msgstr "" #: ../pan/gui/prefs-ui.cc:166 msgid "Edit Hotkey" msgstr "" #: ../pan/gui/prefs-ui.cc:228 msgid "Error: Shortkey is invalid!" msgstr "" #: ../pan/gui/prefs-ui.cc:244 msgid "Error: Shortkey already exists!" msgstr "" #: ../pan/gui/prefs-ui.cc:535 #, fuzzy msgid "Show only icons" msgstr "Vis informasjon om artikkel" #: ../pan/gui/prefs-ui.cc:536 #, fuzzy msgid "Show only text" msgstr "/_Vis/Vis område for kropp" #: ../pan/gui/prefs-ui.cc:537 #, fuzzy msgid "Show icons and text" msgstr "Lagre vedlegg og tekst" #: ../pan/gui/prefs-ui.cc:576 msgid "Use GNOME Preferences" msgstr "Bruk brukervalg for GNOME" #: ../pan/gui/prefs-ui.cc:577 msgid "Use KDE Preferences" msgstr "Bruk brukervalg for KDE" #: ../pan/gui/prefs-ui.cc:578 msgid "Use OS X Preferences" msgstr "Bruk brukervalg for OS X" #: ../pan/gui/prefs-ui.cc:579 msgid "Use Windows Preferences" msgstr "Bruk brukervalg for Windows" #: ../pan/gui/prefs-ui.cc:580 msgid "Custom Command:" msgstr "Egendefinert kommando:" #: ../pan/gui/prefs-ui.cc:632 #, fuzzy msgid "Disabled" msgstr "Aktiv" #: ../pan/gui/prefs-ui.cc:633 msgid "Only new (Score == 0)" msgstr "" #: ../pan/gui/prefs-ui.cc:634 #, fuzzy msgid "9999 or more" msgstr "Poengsum på 9999 eller høyere:" #: ../pan/gui/prefs-ui.cc:635 #, fuzzy msgid "5000 to 9998" msgstr "Poengsum fra 5000 til 9998:" #: ../pan/gui/prefs-ui.cc:636 msgid "1 to 4999" msgstr "" #: ../pan/gui/prefs-ui.cc:637 #, fuzzy msgid "-9998 to -1" msgstr "Poengsum fra -9998 til -1:" #: ../pan/gui/prefs-ui.cc:638 #, fuzzy msgid "-9999 or less" msgstr "Poengsum på -9999 eller lavere:" #: ../pan/gui/prefs-ui.cc:702 #, c-format msgid "Select default global charset. Current setting : %s ." msgstr "" #: ../pan/gui/prefs-ui.cc:738 msgid "Global Charset Settings" msgstr "" #: ../pan/gui/prefs-ui.cc:832 ../pan/gui/task-pane.cc:770 msgid "State" msgstr "Tilstand" #: ../pan/gui/prefs-ui.cc:866 msgid "Enabled" msgstr "Aktiv" #: ../pan/gui/prefs-ui.cc:870 msgid "Column Name" msgstr "Kolonnenavn" #: ../pan/gui/prefs-ui.cc:908 msgid "Pan: Preferences" msgstr "Pan: Brukervalg" #: ../pan/gui/prefs-ui.cc:923 msgid "Mouse" msgstr "Mus" #: ../pan/gui/prefs-ui.cc:925 #, fuzzy msgid "Single-click activates, rather than selects, _groups" msgstr "En_keltklikk velger grupper i stedet for å laste dem" #: ../pan/gui/prefs-ui.cc:927 #, fuzzy msgid "Single-click activates, rather than selects, _articles" msgstr "Enkeltklikk velger hode_r i stedet for å laste dem" #: ../pan/gui/prefs-ui.cc:930 msgid "Groups" msgstr "Grupper" #: ../pan/gui/prefs-ui.cc:932 #, fuzzy msgid "Get new headers in subscribed groups on _startup" msgstr "Hent nye artikkelhoder fra abonnerte grupper" #: ../pan/gui/prefs-ui.cc:934 #, fuzzy msgid "Get new headers when _entering group" msgstr "Last ned nye artikkelhoder når en _gruppe lastes" #: ../pan/gui/prefs-ui.cc:936 #, fuzzy msgid "Mark entire group _read when leaving group" msgstr "_Merk artikler i en gruppe som lest når gruppen forlates" #: ../pan/gui/prefs-ui.cc:938 #, fuzzy msgid "Mark entire group read before getting _new headers" msgstr "_Merk artikler i en gruppe som lest når gruppen forlates" #: ../pan/gui/prefs-ui.cc:940 #, fuzzy msgid "E_xpand all threads when entering group" msgstr "Last ned nye artikkelhoder når en _gruppe lastes" #: ../pan/gui/prefs-ui.cc:945 msgid "Articles" msgstr "Artikler" #: ../pan/gui/prefs-ui.cc:947 msgid "Space selects next article rather than next unread" msgstr "" #: ../pan/gui/prefs-ui.cc:949 #, fuzzy msgid "Expand threads upon selection" msgstr "Legg til _tråder i utvalget" #: ../pan/gui/prefs-ui.cc:951 msgid "Always show article deletion confirmation dialog" msgstr "" #: ../pan/gui/prefs-ui.cc:953 msgid "Smooth scrolling" msgstr "Myk rulling" #: ../pan/gui/prefs-ui.cc:958 #, fuzzy msgid "Article Cache" msgstr "Merk artikkel som lest" #: ../pan/gui/prefs-ui.cc:959 msgid "Clear article cache on shutdown" msgstr "" #: ../pan/gui/prefs-ui.cc:962 msgid "Size of article cache (in MiB) :" msgstr "" #: ../pan/gui/prefs-ui.cc:967 msgid "File extension for Cached Articles: " msgstr "" #: ../pan/gui/prefs-ui.cc:972 msgid "Tabs" msgstr "" #: ../pan/gui/prefs-ui.cc:977 msgid "_Behavior" msgstr "_Oppførsel" #: ../pan/gui/prefs-ui.cc:977 #, fuzzy msgid "Behavior" msgstr "_Oppførsel" #: ../pan/gui/prefs-ui.cc:983 #, fuzzy msgid "Language Settings" msgstr "Innstillinger" #. systray and notify popup #: ../pan/gui/prefs-ui.cc:992 #, fuzzy msgid "System Tray Behavior" msgstr "_Oppførsel" #: ../pan/gui/prefs-ui.cc:994 msgid "Hide to system tray" msgstr "" #: ../pan/gui/prefs-ui.cc:996 msgid "Start Pan minimized" msgstr "" #: ../pan/gui/prefs-ui.cc:999 #, fuzzy msgid "Show notifications" msgstr "Vis informasjon om artikkel" #. allow multiple instances (seperate, not communicating with dbus) #: ../pan/gui/prefs-ui.cc:1004 #, fuzzy msgid "Startup Behavior" msgstr "_Oppførsel" #: ../pan/gui/prefs-ui.cc:1006 msgid "Allow multiple instances of Pan" msgstr "" #: ../pan/gui/prefs-ui.cc:1011 #, fuzzy msgid "Autosave Article Draft" msgstr "Lagre artikler" #: ../pan/gui/prefs-ui.cc:1013 #, fuzzy msgid "Minutes to autosave the current Article Draft: " msgstr "Lagre artikler" #: ../pan/gui/prefs-ui.cc:1018 #, fuzzy msgid "Autosave Articles" msgstr "Lagre artikler" #: ../pan/gui/prefs-ui.cc:1020 msgid "Minutes to autosave newsrc files: " msgstr "" #: ../pan/gui/prefs-ui.cc:1026 msgid "_Miscellaneous" msgstr "" #: ../pan/gui/prefs-ui.cc:1026 msgid "Miscellaneous" msgstr "" #: ../pan/gui/prefs-ui.cc:1031 msgid "Pane Layout" msgstr "Områdelayout" #: ../pan/gui/prefs-ui.cc:1050 msgid "1=Groups, 2=Headers, 3=Body" msgstr "" #: ../pan/gui/prefs-ui.cc:1052 msgid "1=Groups, 2=Body, 3=Headers" msgstr "" #: ../pan/gui/prefs-ui.cc:1054 msgid "1=Headers, 2=Groups, 3=Body" msgstr "" #: ../pan/gui/prefs-ui.cc:1056 msgid "1=Headers, 2=Body, 3=Groups" msgstr "" #: ../pan/gui/prefs-ui.cc:1058 msgid "1=Body, 2=Groups, 3=Headers" msgstr "" #: ../pan/gui/prefs-ui.cc:1060 msgid "1=Body, 2=Headers, 3=Groups" msgstr "" #: ../pan/gui/prefs-ui.cc:1064 #, fuzzy msgid "Layout" msgstr "_Utforming" #: ../pan/gui/prefs-ui.cc:1069 #, fuzzy msgid "Header Pane Columns" msgstr "Poengsummer for hoder" #: ../pan/gui/prefs-ui.cc:1073 msgid "_Headers" msgstr "_Hoder" #: ../pan/gui/prefs-ui.cc:1073 #, fuzzy msgid "Headers" msgstr "_Hoder" #: ../pan/gui/prefs-ui.cc:1079 msgid "" "This menu lets you configure Pan to take certain actions on your behalf " "automatically, based on a post's score." msgstr "" #: ../pan/gui/prefs-ui.cc:1082 msgid "_Delete posts scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1084 msgid "Mark posts _read scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1086 msgid "_Cache posts scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1088 msgid "Download _attachments of posts scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1091 #, fuzzy msgid "Actions" msgstr "H_andlinger" #: ../pan/gui/prefs-ui.cc:1096 ../pan/gui/prefs-ui.cc:1117 msgid "Fonts" msgstr "Skrifttyper" #: ../pan/gui/prefs-ui.cc:1098 msgid "Use custom font in Group Pane:" msgstr "Bruk egnendefinert skrift i gruppefeltet:" #: ../pan/gui/prefs-ui.cc:1103 msgid "Use custom font in Header Pane:" msgstr "Bruk egendefinert skrifter for hoder:" #: ../pan/gui/prefs-ui.cc:1108 msgid "Use custom font in Body Pane:" msgstr "Bruk egendefinert skrift for meldingskropp:" #: ../pan/gui/prefs-ui.cc:1113 #, fuzzy msgid "Monospace font:" msgstr "_Enhetlig skrift:" #: ../pan/gui/prefs-ui.cc:1117 msgid "_Fonts" msgstr "Skri_fttyper" #: ../pan/gui/prefs-ui.cc:1122 msgid "Header Pane" msgstr "Hodeområde" #: ../pan/gui/prefs-ui.cc:1125 ../pan/gui/prefs-ui.cc:1131 #: ../pan/gui/prefs-ui.cc:1137 ../pan/gui/prefs-ui.cc:1143 #: ../pan/gui/prefs-ui.cc:1149 ../pan/gui/prefs-ui.cc:1155 msgid "Text:" msgstr "Tekst:" #: ../pan/gui/prefs-ui.cc:1127 ../pan/gui/prefs-ui.cc:1133 #: ../pan/gui/prefs-ui.cc:1139 ../pan/gui/prefs-ui.cc:1145 #: ../pan/gui/prefs-ui.cc:1151 ../pan/gui/prefs-ui.cc:1157 msgid "Background:" msgstr "Bakgrunn:" #: ../pan/gui/prefs-ui.cc:1129 msgid "Scores of 9999 or more:" msgstr "Poengsum på 9999 eller høyere:" #: ../pan/gui/prefs-ui.cc:1135 msgid "Scores from 5000 to 9998:" msgstr "Poengsum fra 5000 til 9998:" #: ../pan/gui/prefs-ui.cc:1141 msgid "Scores from 1 to 4999:" msgstr "Poengsum fra 1 til 4999:" #: ../pan/gui/prefs-ui.cc:1147 msgid "Scores from -9998 to -1:" msgstr "Poengsum fra -9998 til -1:" #: ../pan/gui/prefs-ui.cc:1153 msgid "Scores of -9999 or less:" msgstr "Poengsum på -9999 eller lavere:" #: ../pan/gui/prefs-ui.cc:1159 msgid "Read collapsed thread:" msgstr "" #: ../pan/gui/prefs-ui.cc:1161 msgid "Body Pane" msgstr "Område for kropp" #: ../pan/gui/prefs-ui.cc:1167 #, fuzzy msgid "Quoted text:" msgstr "Sitert tekst:" #: ../pan/gui/prefs-ui.cc:1168 msgid "URL:" msgstr "URL:" #: ../pan/gui/prefs-ui.cc:1169 msgid "Signature:" msgstr "Signatur:" #: ../pan/gui/prefs-ui.cc:1171 msgid "_Colors" msgstr "_Farger" #: ../pan/gui/prefs-ui.cc:1171 #, fuzzy msgid "Colors" msgstr "_Farger" #: ../pan/gui/prefs-ui.cc:1176 msgid "Preferred Applications" msgstr "Foretrukne programmer" #: ../pan/gui/prefs-ui.cc:1180 #, fuzzy msgid "_Web browser:" msgstr "_Nettleser:" #: ../pan/gui/prefs-ui.cc:1183 #, fuzzy msgid "_Mail reader:" msgstr "_E-postklient" #: ../pan/gui/prefs-ui.cc:1185 #, fuzzy msgid "_Text editor:" msgstr "Sett redigeringsprogram" #: ../pan/gui/prefs-ui.cc:1187 #, fuzzy msgid "_Applications" msgstr "_Programmer" #: ../pan/gui/prefs-ui.cc:1187 #, fuzzy msgid "Applications" msgstr "_Programmer" #: ../pan/gui/prefs-ui.cc:1192 ../pan/gui/task-pane.cc:512 #, fuzzy msgid "Encoding" msgstr "Fjerner" #: ../pan/gui/prefs-ui.cc:1196 msgid "Default bytes per file (for encoder): " msgstr "" #: ../pan/gui/prefs-ui.cc:1201 #, fuzzy msgid "_Upload" msgstr "_Programmer" #: ../pan/gui/prefs-ui.cc:1201 msgid "Upload" msgstr "" #: ../pan/gui/prefs-ui.cc:1219 msgid "_Hotkeys" msgstr "" #: ../pan/gui/prefs-ui.cc:1219 msgid "Hotkeys" msgstr "" #: ../pan/gui/profiles-dialog.cc:83 msgid "Please choose your Email Address according to your PGP key's user id." msgstr "" #: ../pan/gui/profiles-dialog.cc:131 #, fuzzy msgid "Posting Profile" msgstr "Pan: Profil" #: ../pan/gui/profiles-dialog.cc:143 msgid "Profile Information" msgstr "Profilinformasjon" #: ../pan/gui/profiles-dialog.cc:147 msgid "_Profile Name:" msgstr "_Profilnavn:" #: ../pan/gui/profiles-dialog.cc:150 msgid "Required Information" msgstr "Krevet informasjon" #: ../pan/gui/profiles-dialog.cc:154 msgid "_Full Name:" msgstr "_Fullt navn:" #: ../pan/gui/profiles-dialog.cc:158 msgid "" "Your Email Address.\n" "Note that this has to match your PGP Signature's Address\n" "if you want to PGP-Sign or Encrypt your messages correctly." msgstr "" #: ../pan/gui/profiles-dialog.cc:162 msgid "_Email Address:" msgstr "_E-post adresse:" #: ../pan/gui/profiles-dialog.cc:164 msgid "_Post Articles via:" msgstr "_Publiser artikler via:" #: ../pan/gui/profiles-dialog.cc:167 msgid "Signature" msgstr "Signatur" #: ../pan/gui/profiles-dialog.cc:170 msgid "_Use a Signature" msgstr "Br_uk en signatur" #: ../pan/gui/profiles-dialog.cc:174 msgid "Signature File" msgstr "Signaturfil" #: ../pan/gui/profiles-dialog.cc:184 msgid "Text File" msgstr "Tekstfil:" #: ../pan/gui/profiles-dialog.cc:186 msgid "Text" msgstr "Tekst" #: ../pan/gui/profiles-dialog.cc:188 msgid "Command" msgstr "Kommando" #: ../pan/gui/profiles-dialog.cc:191 #, fuzzy msgid "PGP Signature" msgstr "Signatur" #: ../pan/gui/profiles-dialog.cc:196 #, fuzzy msgid "Signature Type : " msgstr "_Type signatur:" #: ../pan/gui/profiles-dialog.cc:223 msgid "X-Face (Avatar)" msgstr "" #: ../pan/gui/profiles-dialog.cc:226 msgid "" "You can add an avatar icon to your articles with a unique X-Face code. \n" "Add the code without the trailing \"X-Face:\" \n" " if it was generated by a helper program (for example http://www.dairiki.org/" "xface/xface.php)." msgstr "" #: ../pan/gui/profiles-dialog.cc:229 msgid "_X-Face:" msgstr "" #: ../pan/gui/profiles-dialog.cc:231 msgid "Optional Information" msgstr "Tilleggsinformasjon" #: ../pan/gui/profiles-dialog.cc:236 msgid "" "When posting to Usenet, your article's Message-ID contains a domain name. \n" "You can set a custom domain name here, or leave it blank to let Pan use the " "domain name from your email address." msgstr "" #: ../pan/gui/profiles-dialog.cc:239 msgid "Message-ID _Domain Name:" msgstr "" #: ../pan/gui/profiles-dialog.cc:243 #, c-format msgid "" "%i for Message-ID\n" "%a for Author and Address\n" "%n for Author name\n" "%d for Date" msgstr "" "%i for meldings-ID\n" "%a for forfatter og adresse\n" "%n for forfatters navn\n" "%d for dato" #: ../pan/gui/profiles-dialog.cc:244 msgid "_Attribution:" msgstr "_Tilegning:" #: ../pan/gui/profiles-dialog.cc:268 msgid "" "Extra headers to be included in your posts, such as\n" "Reply-To: \"Your Name\"\n" "Organization: Your Organization\n" msgstr "" #: ../pan/gui/profiles-dialog.cc:278 #, fuzzy msgid "E_xtra Headers:" msgstr "Flere hoder" #: ../pan/gui/profiles-dialog.cc:323 msgid "Invalid email address." msgstr "Ugyldig e-postadresse." #: ../pan/gui/profiles-dialog.cc:324 msgid "Please use an address of the form joe@somewhere.org" msgstr "Vennligst bruk en adresse på formen joe@etellerannetsted.no" #: ../pan/gui/profiles-dialog.cc:479 msgid "New Profile" msgstr "Ny profil" #: ../pan/gui/profiles-dialog.cc:525 #, fuzzy msgid "Posting Profiles" msgstr "/_Publiser/Pr_ofiler for publisering..." #: ../pan/gui/profiles-dialog.cc:541 msgid "Profiles" msgstr "Profiler" #: ../pan/gui/save-attach-ui.cc:77 ../pan/gui/save-ui.cc:77 #, fuzzy, c-format msgid "" "%g - group as one directory (alt.binaries.pictures.trains)\n" "%G - group as nested directory (/alt/binaries/pictures/trains)\n" "%s - subject line excerpt\n" "%S - subject line\n" " \n" "\"/home/user/News/Pan/%g\" becomes\n" "\"/home/user/News/Pan/alt.binaries.pictures.trains\", and\n" "\"/home/user/News/Pan/%G\" becomes\n" "\"/home/user/News/Pan/alt/binaries/pictures/trains\"," msgstr "" "%g - gruppe som en katalog (alt.binaries.pictures.trains)\n" "%G - gruppe som et kataloghierarki (/alt/binaries/pictures/trains)\n" "\n" "«/home/user/News/Pan/%g» blir\n" "«/home/user/News/Pan/alt.binaries.pictures.trains», og\n" "«/home/user/News/Pan/%G» blir\n" "«/home/user/News/Pan/alt/binaries/pictures/trains»," #: ../pan/gui/save-attach-ui.cc:223 ../pan/gui/save-ui.cc:242 msgid "Add to the queue sorted by date posted" msgstr "" #: ../pan/gui/save-attach-ui.cc:224 ../pan/gui/save-ui.cc:243 #, fuzzy msgid "Add to the front of the queue" msgstr "Legg til oppgave _sist i køen hos oppgavehåndtereren" #: ../pan/gui/save-attach-ui.cc:225 ../pan/gui/save-ui.cc:244 #, fuzzy msgid "Add to the back of the queue" msgstr "Legg til oppgave _sist i køen hos oppgavehåndtereren" #: ../pan/gui/save-attach-ui.cc:257 #, fuzzy msgid "Pan: Save Attachments" msgstr "Lagre vedlegg" #: ../pan/gui/save-attach-ui.cc:282 ../pan/gui/save-attach-ui.cc:300 #: ../pan/gui/save-ui.cc:296 ../pan/gui/save-ui.cc:314 msgid "_Location:" msgstr "_Lokasjon:" #: ../pan/gui/save-attach-ui.cc:286 ../pan/gui/save-ui.cc:300 msgid "Save Articles" msgstr "Lagre artikler" #: ../pan/gui/save-attach-ui.cc:303 ../pan/gui/save-ui.cc:317 #, c-format msgid "_Group's path: %s" msgstr "" #: ../pan/gui/save-attach-ui.cc:314 ../pan/gui/save-ui.cc:332 msgid "_Priority:" msgstr "_Prioritet:" #: ../pan/gui/save-ui.cc:233 msgid "Save attachments" msgstr "Lagre vedlegg" #: ../pan/gui/save-ui.cc:234 msgid "Save text" msgstr "Lagre tekst" #: ../pan/gui/save-ui.cc:235 msgid "Save attachments and text" msgstr "Lagre vedlegg og tekst" #: ../pan/gui/save-ui.cc:271 msgid "Pan: Save Articles" msgstr "Pan: lagre artikler" #: ../pan/gui/save-ui.cc:328 msgid "_Action:" msgstr "H_andling:" #: ../pan/gui/score-add-ui.cc:89 msgid "is more than" msgstr "er mer enn" #: ../pan/gui/score-add-ui.cc:90 #, fuzzy msgid "is at most" msgstr "er ikke" #: ../pan/gui/score-add-ui.cc:112 msgid "increase the article's score by" msgstr "øk artikkelens poengsum med" #: ../pan/gui/score-add-ui.cc:113 msgid "decrease the article's score by" msgstr "senk artikkelens poengsum med" #: ../pan/gui/score-add-ui.cc:114 msgid "set the article's score to" msgstr "sett artikkelens poengsum til" #: ../pan/gui/score-add-ui.cc:115 #, fuzzy msgid "watch the article (set its score to 9999)" msgstr "_Observer (set poengsum til 9999)" #: ../pan/gui/score-add-ui.cc:116 msgid "ignore the article (set its score to -9999)" msgstr "ignorer artikkelen (sett poengsummen til -9999)" #: ../pan/gui/score-add-ui.cc:141 msgid "References" msgstr "Referanser" #: ../pan/gui/score-add-ui.cc:142 #, fuzzy msgid "Line Count" msgstr "Linje %d, kolonne %d" #: ../pan/gui/score-add-ui.cc:143 msgid "Byte Count" msgstr "" #: ../pan/gui/score-add-ui.cc:144 msgid "Crosspost Group Count" msgstr "" #: ../pan/gui/score-add-ui.cc:145 msgid "Age (in days)" msgstr "Alder (i dager)" #: ../pan/gui/score-add-ui.cc:167 msgid "for the next month" msgstr "for den neste måneden" #: ../pan/gui/score-add-ui.cc:168 msgid "for the next six months" msgstr "for de neste seks månedene" #: ../pan/gui/score-add-ui.cc:169 msgid "forever" msgstr "for alltid" #: ../pan/gui/score-add-ui.cc:194 msgid "contains" msgstr "inneholder" #: ../pan/gui/score-add-ui.cc:195 msgid "doesn't contain" msgstr "inneholder ikke" #: ../pan/gui/score-add-ui.cc:196 msgid "is" msgstr "er" #: ../pan/gui/score-add-ui.cc:197 msgid "isn't" msgstr "er ikke" #: ../pan/gui/score-add-ui.cc:198 msgid "starts with" msgstr "begynner med" #: ../pan/gui/score-add-ui.cc:199 msgid "ends with" msgstr "slutter med" #: ../pan/gui/score-add-ui.cc:200 #, fuzzy msgid "matches regex" msgstr "er i vanlig uttrykk" #: ../pan/gui/score-add-ui.cc:481 msgid "Another rule already sets this article's score." msgstr "" #: ../pan/gui/score-add-ui.cc:482 msgid "You may want to go back or delete the old rule." msgstr "Du kan gå tilbake eller slette den gamle regelen." #: ../pan/gui/score-add-ui.cc:553 msgid "Add and Re_score" msgstr "Legg til og gi ny poeng_sum" #: ../pan/gui/score-add-ui.cc:604 ../pan/gui/score-add-ui.cc:624 #, fuzzy msgid "New Scoring Rule" msgstr "Ny poengsum" #: ../pan/gui/score-add-ui.cc:635 msgid "If the group name" msgstr "Hvis gruppenavnet" #: ../pan/gui/score-add-ui.cc:642 msgid "And the article's" msgstr "Og artiklenes" #: ../pan/gui/score-view-ui.cc:56 msgid "Close and Re_score" msgstr "Lukk og gi ny poeng_sum" #: ../pan/gui/score-view-ui.cc:154 #, c-format msgid "File %s, Lines %d - %d" msgstr "Fil %s, linjene %d - %d" #: ../pan/gui/score-view-ui.cc:182 #, fuzzy msgid "Pan: Article's Scores" msgstr "Pan: Vis poengsummer for artikler" #: ../pan/gui/score-view-ui.cc:208 msgid "Add" msgstr "legg til" #: ../pan/gui/score-view-ui.cc:213 msgid "New Score" msgstr "Ny poengsum" #: ../pan/gui/score-view-ui.cc:218 msgid "Criteria" msgstr "Kriterie" #: ../pan/gui/score-view-ui.cc:241 #, fuzzy msgid "Add a New Scoring Rule" msgstr "Legg til ny poengsum" #: ../pan/gui/score-view-ui.cc:248 #, fuzzy msgid "Remove the Selected Scoring Rule" msgstr " Fjern valgt poengsum" #: ../pan/gui/server-ui.cc:221 msgid "Please specify the server's address." msgstr "" #: ../pan/gui/server-ui.cc:264 msgid "Import SSL certificate (PEM format) from File" msgstr "" #. create the dialog #: ../pan/gui/server-ui.cc:290 ../pan/gui/server-ui.cc:869 msgid "Add a Server" msgstr "Legg til en tjener" #: ../pan/gui/server-ui.cc:290 ../pan/gui/server-ui.cc:875 #, fuzzy msgid "Edit a Server's Settings" msgstr "Andre innstillinger" #: ../pan/gui/server-ui.cc:310 msgid "Location" msgstr "Lokasjon" #: ../pan/gui/server-ui.cc:314 msgid "The news server's actual address, e.g. \"news.mynewsserver.com\"" msgstr "Usenet-tjenerens faktiske adresse, f.eks. «news.mintjener.no»" #: ../pan/gui/server-ui.cc:315 msgid "_Address:" msgstr "_Adresse:" #: ../pan/gui/server-ui.cc:319 #, fuzzy msgid "The news server's port number. Typically 119." msgstr "Usenet-tjenerens port. Dette er nesten alltid 119." #: ../pan/gui/server-ui.cc:320 msgid "Por_t:" msgstr "Por_t:" #: ../pan/gui/server-ui.cc:323 msgid "Login (if Required)" msgstr "" #: ../pan/gui/server-ui.cc:327 msgid "_Username:" msgstr "Br_ukernavn:" #: ../pan/gui/server-ui.cc:328 msgid "" "The username to give the server when asked. If your server doesn't require " "authentication, you can leave this blank." msgstr "" #: ../pan/gui/server-ui.cc:332 msgid "_Password:" msgstr "_Passord:" #: ../pan/gui/server-ui.cc:333 msgid "" "The password to give the server when asked. If your server doesn't require " "authentication, you can leave this blank." msgstr "" #: ../pan/gui/server-ui.cc:336 msgid "Settings" msgstr "Innstillinger" #: ../pan/gui/server-ui.cc:343 msgid "Connection _Limit:" msgstr "_Tilkoblingsgrense:" #: ../pan/gui/server-ui.cc:347 msgid "After Two Weeks" msgstr "Etter to uker" #: ../pan/gui/server-ui.cc:348 msgid "After One Month" msgstr "Etter en måned" #: ../pan/gui/server-ui.cc:349 msgid "After Two Months" msgstr "Etter to måneder" #: ../pan/gui/server-ui.cc:350 msgid "After Three Months" msgstr "Etter tre måneder" #: ../pan/gui/server-ui.cc:351 msgid "After Six Months" msgstr "Etter seks måneder" #: ../pan/gui/server-ui.cc:352 #, fuzzy msgid "Never Expire Old Articles" msgstr "Utgår _aldri" #: ../pan/gui/server-ui.cc:366 #, fuzzy msgid "E_xpire Old Articles:" msgstr "/_Les artikkel" #: ../pan/gui/server-ui.cc:370 #, fuzzy msgid "Primary" msgstr "Prioritet" #: ../pan/gui/server-ui.cc:371 msgid "Fallback" msgstr "" #: ../pan/gui/server-ui.cc:385 #, fuzzy msgid "Server Rank:" msgstr "Tjener" #: ../pan/gui/server-ui.cc:389 msgid "" "Fallback servers are used for articles that can't be found on the " "primaries. One common approach is to use free servers as primaries and " "subscription servers as fallbacks." msgstr "" #: ../pan/gui/server-ui.cc:396 msgid "Security" msgstr "" #: ../pan/gui/server-ui.cc:401 msgid "Use Plaintext (Unsecured) Connections" msgstr "" #: ../pan/gui/server-ui.cc:402 #, fuzzy msgid "Use Secure SSL Connections" msgstr "Ingen tilkoblinger" #: ../pan/gui/server-ui.cc:418 msgid "TLS (SSL) Options:" msgstr "" #: ../pan/gui/server-ui.cc:423 msgid "" "You can set the option for using/disabling secure SSL/TLS connections here. " "If you enable SSL/TLS, your data is encrypted and secure. It is encouraged " "to use this option for privacy reasons." msgstr "" #: ../pan/gui/server-ui.cc:428 msgid "Always trust this server's certificate" msgstr "" #: ../pan/gui/server-ui.cc:602 #, c-format msgid "Really delete \"%s\"?" msgstr "Virkelig slette «%s»?" #: ../pan/gui/server-ui.cc:691 msgid "No information available." msgstr "" #: ../pan/gui/server-ui.cc:697 #, c-format msgid "Server Certificate for '%s'" msgstr "" #: ../pan/gui/server-ui.cc:795 #, fuzzy, c-format msgid "Really delete certificate for \"%s\"?" msgstr "Virkelig slette «%s»?" #. dialog #: ../pan/gui/server-ui.cc:822 ../pan/gui/server-ui.cc:843 #: ../pan/gui/server-ui.cc:941 msgid "Servers" msgstr "Tjenere" #: ../pan/gui/server-ui.cc:882 msgid "Remove a Server" msgstr "Fjern en tjener" #. dialog #: ../pan/gui/server-ui.cc:915 msgid "SSL Certificates" msgstr "" #: ../pan/gui/server-ui.cc:936 msgid "Certificates" msgstr "" #: ../pan/gui/server-ui.cc:967 msgid "Import Certificate" msgstr "" #: ../pan/gui/server-ui.cc:973 msgid "Inspect Certificate" msgstr "" #: ../pan/gui/server-ui.cc:980 #, fuzzy msgid "Remove Certificate" msgstr "Fjern en tjener" #: ../pan/gui/task-pane.cc:143 #, c-format msgid "" "\n" "Upload\n" "\n" "Subject: \"%s\"\n" "From: %s\n" "Groups: %s\n" "Sourcefile: %s\n" msgstr "" #: ../pan/gui/task-pane.cc:155 #, c-format msgid "" "\n" "Download\n" "\n" "Subject: \"%s\"\n" "From: %s\n" "Date: %s\n" "Groups: %s\n" "Save Path: %s\n" msgstr "" #: ../pan/gui/task-pane.cc:157 #, fuzzy msgid "unknown" msgstr "Ukjent" #: ../pan/gui/task-pane.cc:263 msgid "Choose new destination for selected Tasks" msgstr "" #: ../pan/gui/task-pane.cc:417 #, fuzzy, c-format msgid "Pan: Tasks (%d Queued, %d Running, %d Stopped)" msgstr "Pan %s oppgavehåndterer (%d kølagt, %d kjører, %d stoppet)" #: ../pan/gui/task-pane.cc:419 #, fuzzy, c-format msgid "Pan: Tasks (%d Queued, %d Running)" msgstr "Pan %s oppgave styrer (%d kølagt, %d kjører)" #: ../pan/gui/task-pane.cc:421 #, c-format msgid "Pan: Tasks" msgstr "Pan: Oppgaver" #: ../pan/gui/task-pane.cc:446 #, c-format msgid "%lu selected, %s" msgstr "%lu valgt, %s" #: ../pan/gui/task-pane.cc:510 msgid "Running" msgstr "Kjører" #: ../pan/gui/task-pane.cc:511 #, fuzzy msgid "Decoding" msgstr "Fjerner" #: ../pan/gui/task-pane.cc:513 msgid "Queued for Decode" msgstr "" #: ../pan/gui/task-pane.cc:514 msgid "Queued for Encode" msgstr "" #: ../pan/gui/task-pane.cc:515 msgid "Queued" msgstr "Kølagt" #: ../pan/gui/task-pane.cc:516 msgid "Stopped" msgstr "Stoppet" #: ../pan/gui/task-pane.cc:517 msgid "Removing" msgstr "Fjerner" #: ../pan/gui/task-pane.cc:546 #, c-format msgid "%d%% Done" msgstr "%d%% ferdigstilt" #: ../pan/gui/task-pane.cc:552 #, fuzzy, c-format msgid "%d:%02d:%02d Remaining (%d @ %lu KiB/s)" msgstr "%d:%02d:%02d (%lu KB/s)" #: ../pan/gui/task-pane.cc:646 ../pan/gui/task-pane.cc:647 msgid "Move To Top" msgstr "" #: ../pan/gui/task-pane.cc:651 ../pan/gui/task-pane.cc:652 msgid "Move To Bottom" msgstr "" #: ../pan/gui/task-pane.cc:656 ../pan/gui/task-pane.cc:657 #, fuzzy msgid "Stop Task" msgstr "Stopp oppgaver" #: ../pan/gui/task-pane.cc:661 ../pan/gui/task-pane.cc:662 #, fuzzy msgid "Delete Task" msgstr "Slett oppgaver" #: ../pan/gui/task-pane.cc:666 ../pan/gui/task-pane.cc:667 #, fuzzy msgid "Restart Task" msgstr "Start oppgaver på nytt" #: ../pan/gui/task-pane.cc:671 ../pan/gui/task-pane.cc:672 msgid "Change Download Destination" msgstr "" #: ../pan/gui/task-pane.cc:729 #, fuzzy msgid "_Online" msgstr "Start tilk_oblet modus" #: ../pan/gui/task-pane.cc:746 msgid "Restart Tasks" msgstr "Start oppgaver på nytt" #: ../pan/gui/task-pane.cc:748 msgid "Stop Tasks" msgstr "Stopp oppgaver" #: ../pan/gui/task-pane.cc:750 msgid "Delete Tasks" msgstr "Slett oppgaver" #: ../pan/gui/url.cc:123 #, fuzzy, c-format msgid "Error starting URL: %s (Command was: %s)" msgstr "Feil ved lesing av kommandolinjen for «nettleser»: %s" #: ../pan/tasks/decoder.cc:115 #, c-format msgid "Couldn't save file \"%s\": %s" msgstr "Kunne ikke lagre file «%s»: %s" #: ../pan/tasks/decoder.cc:137 ../pan/tasks/encoder.cc:136 msgid "Error initializing uulib" msgstr "" #: ../pan/tasks/decoder.cc:152 ../pan/tasks/socket-impl-gio.cc:352 #: ../pan/tasks/socket-impl-openssl.cc:634 #, fuzzy, c-format msgid "Error reading from %s: %s" msgstr "Feil ved lesing fra socket: %s" #: ../pan/tasks/decoder.cc:192 #, c-format msgid "Saved \"%s\"" msgstr "Lagret \"%s\"" #: ../pan/tasks/decoder.cc:199 #, fuzzy, c-format msgid "" "Error saving \"%s\":\n" "%s." msgstr "Feil under lesing av fil «%s»: %s" #: ../pan/tasks/decoder.cc:314 ../pan/tasks/task-article.cc:350 #, fuzzy, c-format msgid "Decoding %s" msgstr "Leser %s" #: ../pan/tasks/encoder.cc:102 ../pan/tasks/encoder.cc:155 #, fuzzy, c-format msgid "Error loading %s from cache." msgstr "Feil ved lesing fra socket: %s" #: ../pan/tasks/encoder.cc:177 #, fuzzy, c-format msgid "Error encoding %s: %s" msgstr "Feil ved lesing fra socket: %s" #: ../pan/tasks/encoder.cc:269 #, fuzzy, c-format msgid "Encoding %s" msgstr "Fjerner" #: ../pan/tasks/nntp.cc:126 #, c-format msgid "%s requires a username, but none is set." msgstr "" #: ../pan/tasks/nntp.cc:139 #, c-format msgid "%s requires a password, but none is set." msgstr "" #: ../pan/tasks/nntp.cc:205 #, c-format msgid "Sending \"%s\" to %s returned an error: %s" msgstr "" #: ../pan/tasks/nntp.cc:228 #, c-format msgid "Sending \"%s\" to %s returned an unrecognized response: \"%s\"" msgstr "" #: ../pan/tasks/nntp-pool.cc:222 #, fuzzy, c-format msgid "Unable to connect to \"%s\"" msgstr "Kan ikke sette gruppe: %s" #: ../pan/tasks/socket-impl-gio.cc:173 ../pan/tasks/socket-impl-gio.cc:211 #: ../pan/tasks/socket-impl-openssl.cc:214 #: ../pan/tasks/socket-impl-openssl.cc:252 #, fuzzy, c-format msgid "Error connecting to \"%s\"" msgstr "Feil under åpning av fil «%s» %s" #: ../pan/tasks/socket-impl-gio.cc:351 ../pan/tasks/socket-impl-openssl.cc:633 msgid "Unknown Error" msgstr "Ukjent feil" #: ../pan/tasks/task-article.cc:61 ../pan/tasks/task-article.cc:156 #: ../pan/tasks/task-article.cc:159 #, c-format msgid "Saving %s" msgstr "Lagrer %s" #: ../pan/tasks/task-article.cc:63 #, c-format msgid "Reading %s" msgstr "Leser %s" #: ../pan/tasks/task-article.cc:322 #, c-format msgid "Article \"%s\" is incomplete -- the news server(s) don't have part %s" msgstr "" #: ../pan/tasks/task-groups.cc:40 #, c-format msgid "Getting group list from \"%s\"" msgstr "Hentet gruppeliste fra «%s»" #: ../pan/tasks/task-groups.cc:122 #, c-format msgid "Fetched %lu Groups" msgstr "Hentet %lu grupper" #: ../pan/tasks/task-post.cc:35 #, c-format msgid "Posting \"%s\"" msgstr "Publiserer «%s»" #: ../pan/tasks/task-post.cc:76 #, fuzzy, c-format msgid "Posting of \"%s\" failed: %s" msgstr "/_Publiser/Pr_ofiler for publisering..." #: ../pan/tasks/task-post.cc:81 #, c-format msgid "Posting of \"%s\" succesful: %s" msgstr "" #: ../pan/tasks/task-upload.cc:51 #, fuzzy, c-format msgid "Uploading %s" msgstr "Leser %s" #: ../pan/tasks/task-upload.cc:249 #, c-format msgid "Uploading %s - Part %d of %d" msgstr "" #: ../pan/tasks/task-upload.cc:251 #, c-format msgid "Uploading Message body with Subject \"%s\"" msgstr "" #: ../pan/tasks/task-upload.cc:308 #, c-format msgid "Posting of File %s (Part %d of %d) failed: No Posts allowed by server." msgstr "" #: ../pan/tasks/task-upload.cc:316 #, fuzzy, c-format msgid "Posting of File %s (Part %d of %d) failed: %s" msgstr "/_Publiser/Pr_ofiler for publisering..." #: ../pan/tasks/task-upload.cc:326 ../pan/tasks/task-upload.cc:333 #, c-format msgid "Posting of file %s (Part %d of %d) succesful: %s" msgstr "" #: ../pan/tasks/task-upload.cc:343 #, fuzzy, c-format msgid "Posting of file %s succesful: %s" msgstr "/_Publiser/Pr_ofiler for publisering..." #: ../pan/tasks/task-upload.cc:347 #, c-format msgid "" "Posting of file %s not completely successful: Check the log (right-click on " "list item) !" msgstr "" #: ../pan/tasks/task-upload.cc:364 #, c-format msgid "" "Posting of file %s not successful: Check the log (right-click on list item) !" msgstr "" #: ../pan/tasks/task-xover.cc:79 #, c-format msgid "Getting all headers for \"%s\"" msgstr "Henter alle hoder for «%s»" #: ../pan/tasks/task-xover.cc:81 #, c-format msgid "Getting new headers for \"%s\"" msgstr "Henter nye hoder for «%s»" #. SAMPLE #: ../pan/tasks/task-xover.cc:83 #, c-format msgid "Sampling headers for \"%s\"" msgstr "Utvalg av hoder for «%s»" #: ../pan/tasks/task-xover.cc:369 #, c-format msgid "%s (%lu parts, %lu articles)" msgstr "%s (%lu deler, %lu artikler)" #: ../pan/tasks/task-xoverinfo.cc:78 #, fuzzy, c-format msgid "Getting header counts for \"%s\"" msgstr "Henter alle hoder for «%s»" #: ../pan/usenet-utils/filter-info.cc:163 msgid "article doesn't have attachments" msgstr "artikkelen har ikke vedlegg" #: ../pan/usenet-utils/filter-info.cc:167 msgid "the article has attachments" msgstr "artikkelen har vedlegg" #: ../pan/usenet-utils/filter-info.cc:171 msgid "the article isn't cached locally" msgstr "artikkel er ikke mellomlagret lokalt" #: ../pan/usenet-utils/filter-info.cc:175 msgid "the article is cached locally" msgstr "artikkelen er mellomlagret lokalt" #: ../pan/usenet-utils/filter-info.cc:179 msgid "the article wasn't posted by you" msgstr "artikkelen var ikke publisert av deg" #: ../pan/usenet-utils/filter-info.cc:183 msgid "the article was posted by you" msgstr "artikkelen var publisert av deg" #: ../pan/usenet-utils/filter-info.cc:187 msgid "the article has been read" msgstr "artikkelen har blitt lest" #: ../pan/usenet-utils/filter-info.cc:191 msgid "the article hasn't been read" msgstr "artikkelen har ikke blitt lest" #: ../pan/usenet-utils/filter-info.cc:195 #, c-format msgid "the article is less than %ld bytes long" msgstr "artikkelen er mindre enn %ld bytes lang" #: ../pan/usenet-utils/filter-info.cc:200 #, c-format msgid "the article is at least %ld bytes long" msgstr "artikkelen er minimum %ld bytes lang" #: ../pan/usenet-utils/filter-info.cc:205 #, c-format msgid "the article is less than %ld lines long" msgstr "artikkelen er mindre enn %ld linjer lang" #: ../pan/usenet-utils/filter-info.cc:210 #, c-format msgid "the article is at least %ld lines long" msgstr "artikkelen er minimum %ld linjer lang" #: ../pan/usenet-utils/filter-info.cc:215 #, c-format msgid "the article is less than %ld days old" msgstr "artikkelen er mindre enn %ld dager gammel" #: ../pan/usenet-utils/filter-info.cc:220 #, c-format msgid "the article is at least %ld days old" msgstr "artikkelen er minst %ld dager gammel" #: ../pan/usenet-utils/filter-info.cc:225 #, c-format msgid "the article was posted to less than %ld groups" msgstr "artikkelen ble publisert til færre enn %ld grupper" #: ../pan/usenet-utils/filter-info.cc:230 #, c-format msgid "the article was posted to at least %ld groups" msgstr "artikkelen ble publisert til minst %ld grupper" #: ../pan/usenet-utils/filter-info.cc:235 #, c-format msgid "the article's score is less than %ld" msgstr "artikkelens poengsum er mindre enn %ld" #: ../pan/usenet-utils/filter-info.cc:240 #, c-format msgid "the article's score is %ld or higher" msgstr "artikkelens poengsum er %ld eller høyere:" #: ../pan/usenet-utils/filter-info.cc:249 #: ../pan/usenet-utils/filter-info.cc:259 #, c-format msgid "%s doesn't contain \"%s\"" msgstr "%s inneholder ikke \"%s\"" #: ../pan/usenet-utils/filter-info.cc:250 #: ../pan/usenet-utils/filter-info.cc:260 #, c-format msgid "%s isn't \"%s\"" msgstr "%s er ikke \"%s\"" #: ../pan/usenet-utils/filter-info.cc:251 #: ../pan/usenet-utils/filter-info.cc:261 #, c-format msgid "%s doesn't begin with \"%s\"" msgstr "%s starter ikke med «%s»" #: ../pan/usenet-utils/filter-info.cc:252 #: ../pan/usenet-utils/filter-info.cc:262 #, c-format msgid "%s doesn't end with \"%s\"" msgstr "%s slutter ikke med «%s»" #: ../pan/usenet-utils/filter-info.cc:253 #: ../pan/usenet-utils/filter-info.cc:263 #, c-format msgid "%s doesn't match the regex \"%s\"" msgstr "" #: ../pan/usenet-utils/filter-info.cc:275 #, c-format msgid "%s contains \"%s\"" msgstr "%s inneholder «%s»" #: ../pan/usenet-utils/filter-info.cc:276 #, c-format msgid "%s is \"%s\"" msgstr "%s er «%s»" #: ../pan/usenet-utils/filter-info.cc:277 #, c-format msgid "%s begins with \"%s\"" msgstr "%s starter med «%s»" #: ../pan/usenet-utils/filter-info.cc:278 #, c-format msgid "%s ends with \"%s\"" msgstr "%s slutter med «%s»" #: ../pan/usenet-utils/filter-info.cc:279 #, fuzzy, c-format msgid "%s matches the regex \"%s\"" msgstr "%u artikler matcher regel %s" #: ../pan/usenet-utils/filter-info.cc:285 msgid "Any of these tests fail:" msgstr "Alle disse testene feiler:" #: ../pan/usenet-utils/filter-info.cc:292 msgid "All of these tests pass:" msgstr "" #: ../pan/usenet-utils/filter-info.cc:299 msgid "None of these tests pass:" msgstr "" #: ../pan/usenet-utils/filter-info.cc:306 msgid "Any of these tests pass:" msgstr "" #: ../pan/usenet-utils/gnksa.cc:878 #, c-format msgid "No email address provided; generating message-id with domain \"%s\"" msgstr "Ingen e-postadresse oppgitt; genererer artikkel-ID med domene «%s»" #: ../pan/usenet-utils/message-check.cc:124 msgid "Warning: Reply seems to be top-posted." msgstr "Advarsel: Svar ser ut til å være topp-postet." #: ../pan/usenet-utils/message-check.cc:145 msgid "Warning: The signature marker should be \"-- \", not \"--\"." msgstr "Advarsel: Signaturmarkøren skal være «-- », ikke «--»." #: ../pan/usenet-utils/message-check.cc:162 #, fuzzy msgid "Warning: Signature prefix with no signature." msgstr "ADVARSEL: Signaturskille uten signatur." #: ../pan/usenet-utils/message-check.cc:167 msgid "Warning: Signature is more than 4 lines long." msgstr "Advarsel: Signaturen er lenger enn 4 linjer." #: ../pan/usenet-utils/message-check.cc:172 msgid "Warning: Signature is more than 80 characters wide." msgstr "Advarsel: Signaturen er mer enn 80 tegn bred." #: ../pan/usenet-utils/message-check.cc:198 #, fuzzy, c-format msgid "Warning: %d line is more than 80 characters wide." msgid_plural "Warning: %d lines are more than 80 characters wide." msgstr[0] "Advarsel: %d linjer er mer enn 80 tegn bred." msgstr[1] "Advarsel: %d linjer er mer enn 80 tegn bred." #: ../pan/usenet-utils/message-check.cc:223 msgid "Error: Message is empty." msgstr "Feil: Beskjeden er tom." #: ../pan/usenet-utils/message-check.cc:258 msgid "Warning: The message is entirely quoted text!" msgstr "Advarsel: Denne artikkelen er bare sitert tekst!" #: ../pan/usenet-utils/message-check.cc:259 msgid "Warning: The message is mostly quoted text." msgstr "Advarsel: Denne artikkelen er nesten bare sitert tekst." #: ../pan/usenet-utils/message-check.cc:309 msgid "Error: Message appears to have no new content." msgstr "Feil: Det ser ikke ut som om beskjeden har noe nytt innhold." #: ../pan/usenet-utils/message-check.cc:344 #: ../pan/usenet-utils/message-check.cc:383 #, c-format msgid "" "Warning: The posting profile's server doesn't carry newsgroup\n" "\t\"%s\".\n" "\tIf the group name is correct, switch profiles in the \"From:\"\n" "\tline or edit the profile with \"Edit|Manage Posting Profiles\"." msgstr "" #: ../pan/usenet-utils/message-check.cc:355 #, fuzzy msgid "Warning: Following-Up to too many groups." msgstr "ADVARSEL: Oppfølging til flere grupper enn tillatt." #: ../pan/usenet-utils/message-check.cc:366 #, fuzzy msgid "Error: No Subject specified." msgstr "FEIL: Du har ikke satt tittel på artikkelen." #: ../pan/usenet-utils/message-check.cc:395 #, c-format msgid "Warning: Group \"%s\" is read-only." msgstr "Advarsel: Gruppen «%s» er skrivebeskyttet." #: ../pan/usenet-utils/message-check.cc:404 msgid "Error: Posting to a very large number of groups." msgstr "Feil: Publisering til et meget stort antall grupper." #: ../pan/usenet-utils/message-check.cc:409 #, fuzzy msgid "Warning: Posting to a large number of groups." msgstr "ADVARSEL: Du publiserer til et stort antall grupper." #: ../pan/usenet-utils/message-check.cc:416 #, fuzzy msgid "Warning: Crossposting without setting Followup-To header." msgstr "ADVARSEL: Kryssposting uten å sette oppfølging." #: ../pan/usenet-utils/message-check.cc:441 msgid "Error: Bad email address." msgstr "Feil: ugyldig e-postadresse." #: ../pan/usenet-utils/message-check.cc:450 msgid "Warning: Most newsgroups frown upon HTML posts." msgstr "" #: ../pan/usenet-utils/message-check.cc:486 msgid "Error: No Recipients." msgstr "Feil: Ingen mottakere." #: ../pan/usenet-utils/scorefile.cc:304 #, fuzzy, c-format msgid "" "Error reading score in %*.*s, line %d: expected 'Expires: MM/DD/YYYY' or " "'Expires: DD-MM-YYYY'." msgstr "forventer «Expires: MM/DD/YYY» eller «Expires: DD-MM-YYYY»" #: ../pan/usenet-utils/scorefile.cc:307 #, c-format msgid "Expired old score from %*.*s, line %d" msgstr "" #: ../pan/usenet-utils/scorefile.cc:380 #, c-format msgid "Error reading score in %*.*s, line %d: unexpected line." msgstr "" #: ../pan/usenet-utils/scorefile.cc:428 #, c-format msgid "Read %lu scoring rules in %lu sections from \"%s\"" msgstr "" #: ../pan/usenet-utils/ssl-utils.h:199 #, fuzzy, c-format msgid "Error printing the server certificate for '%s'" msgstr "Feil ved oppstart av ekstern redigering: %s" #: ../pan/usenet-utils/ssl-utils.h:216 #, c-format msgid "" "The current server '%s' sent this security certificate :\n" "\n" msgstr "" #: ../pan/usenet-utils/ssl-utils.h:217 #, c-format msgid "" "Certificate information for server '%s' :\n" "\n" msgstr "" #: ../pan/usenet-utils/ssl-utils.h:219 #, c-format msgid "" "%sIssuer information:\n" "%s\n" "Valid until : %s\n" "\n" "Not valid before : %s\n" "\n" msgstr "" #: ../pan/usenet-utils/text-massager.cc:397 msgid "> [quoted text muted]" msgstr "> [sitert tekst er skjult]" #~ msgid "Read News from Usenet" #~ msgstr "Les nyheter fra Usenet" #, fuzzy #~ msgid "_Toggle Flag on for Thread" #~ msgstr "_Overvåk tråd" #, fuzzy #~ msgid "Signer : " #~ msgstr "Signatur:" #~ msgid "_Signature:" #~ msgstr "_Signatur:" #~ msgid "Creating directory \"%s\"" #~ msgstr "Oppretter katalog «%s»" #~ msgid "Couldn't create directory \"%s\": %s" #~ msgstr "Kunne ikke opprette katalogen «%s»: %s" #~ msgid "" #~ "Your copy of libpcre doesn't support UTF-8. UTF-8 regular expressions " #~ "may fail." #~ msgstr "" #~ "Versjonen av libpcre på ditt system støtter ikke UTF-8. UTF-8-kodete " #~ "Regulære uttrykk kan feile." #~ msgid "Can't use regular expression \"%s\": %s at position %d" #~ msgstr "Kan ikke bruke regulært uttrykk «%s»: %s i posisjon %d" #~ msgid "Posting Article" #~ msgstr "Publiserer artikkel" #~ msgid "Posting..." #~ msgstr "Publiserer..." pan-0.162/po/nl.po000066400000000000000000004312051475412772400137110ustar00rootroot00000000000000# Pan nl.po # Copyright (C) 2000 Free Software Foundation, Inc. # mendel , 2000. (This dude is Thaaaaa mannn) # Dennis Smit , 2000. # Almer S. Tigelaar , 2000. # Reinout van Schouwen , 2002, 2003 # Tino Meinen , 2003, 2004, 2005 # msgid "" msgstr "" "Project-Id-Version: pan\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-04-04 20:58+0200\n" "PO-Revision-Date: 2005-02-17 21:03+0100\n" "Last-Translator: Tino Meinen \n" "Language-Team: Dutch \n" "Language: nl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../pan.desktop.in.h:1 msgid "Pan Newsreader" msgstr "Pan nieuwslezer" #: ../pan.desktop.in.h:2 #, fuzzy msgid "Read and Post Usenet Articles" msgstr "Geselecteerde artikelen ophalen" #: ../pan/data/article-cache.cc:143 ../pan/data/encode-cache.cc:62 #, fuzzy, c-format msgid "Error opening directory: \"%s\": %s" msgstr "Er is een fout opgetreden bij het openen van de map \"%s\": %s)" #: ../pan/data/article-cache.cc:231 ../pan/data/article-cache.cc:242 #: ../pan/data-impl/data-io.cc:187 ../pan/data-impl/data-io.cc:211 #: ../pan/gui/post-ui.cc:1639 #, fuzzy, c-format msgid "Unable to save \"%s\" %s" msgstr "Kan groep niet instellen: %s" #: ../pan/data/article-cache.cc:355 #, fuzzy, c-format msgid "Error opening file \"%s\" %s" msgstr "Er is een fout opgetreden bij het openen van bestand \"%s\": %s" #: ../pan/data/article-cache.cc:386 ../pan/data-impl/profiles.cc:174 #: ../pan/data-impl/server.cc:436 ../pan/general/file-util.cc:298 #: ../pan/gui/post-ui.cc:609 ../pan/gui/task-pane.cc:691 #, c-format msgid "Error reading file \"%s\": %s" msgstr "Er is een fout opgetreden bij het lezen van bestand \"%s\": %s" #: ../pan/data/cert-store.cc:238 #, fuzzy, c-format msgid "Error opening SSL certificate directory: \"%s\": %s" msgstr "Er is een fout opgetreden bij het openen van de map \"%s\": %s)" #: ../pan/data/cert-store.cc:270 #, c-format msgid "Succesfully added %d SSL PEM certificate(s) to Certificate Store." msgstr "" #. load_group_descriptions (*_data_io); #: ../pan/data-impl/data-impl.cc:109 #, c-format msgid "Loaded data backend in %.1f seconds" msgstr "" #: ../pan/data-impl/data-impl.cc:140 msgid "Pan newsreader server passwords" msgstr "" #: ../pan/data-impl/groups.cc:94 #, fuzzy, c-format msgid "Skipping newsrc file for server \"%s\"" msgstr "Bezig met ophalen nieuwe groepen an server \"%s\"" #: ../pan/data-impl/headers.cc:606 #, fuzzy, c-format msgid "Expired %lu old articles from \"%s\"" msgstr "%u Artikelen uit `%s' verlopen" #: ../pan/data-impl/headers.cc:613 #, c-format msgid "" "Unsupported data version for %s headers: %d.\n" "Are you running an old version of Pan by accident?" msgstr "" "Niet ondersteunde gegevensversie voor %s kopteksten: %d.\n" "Draait u per ongeluk een oude versie van Pan?" #: ../pan/data-impl/headers.cc:628 #, fuzzy, c-format msgid "Loaded %lu articles for \"%s\" in %.1f seconds (%.0f per second)" msgstr "%u artikelen geladen voor groep \"%s\" in %.1f seconden (%.0f art/sec)" #: ../pan/data-impl/headers.cc:857 #, fuzzy, c-format msgid "" "Saved %lu parts, %lu articles in \"%s\" in %.1f seconds (%.0f articles/sec)" msgstr "%d Artikelen in \"%s\" opgeslagen in %.1f seconden (%.0f art/sec)" #: ../pan/data-impl/headers.cc:1173 #, fuzzy, c-format msgid "Added %lu articles to %s." msgstr "%u Artikelen uit `%s' verlopen" #: ../pan/data-impl/server.cc:234 #, c-format msgid "There seems to be no Password set for Server %s." msgstr "" #: ../pan/data-impl/server.cc:238 msgid "The Gnome keyring denied access to the Passwords." msgstr "" #: ../pan/data-impl/xover.cc:239 #, fuzzy, c-format msgid "Error reading from %s: unknown group \"%s\"" msgstr "Er is een fout opgetreden bij het lezen van de socket: %s" #. build the locale strings #: ../pan/general/e-util.cc:213 msgid "%l:%M %p" msgstr "" #: ../pan/general/e-util.cc:214 msgid "Today %l:%M %p" msgstr "" #: ../pan/general/e-util.cc:215 msgid "%a %l:%M %p" msgstr "" #: ../pan/general/e-util.cc:216 msgid "%b %d %l:%M %p" msgstr "" #: ../pan/general/e-util.cc:217 msgid "%b %d %Y" msgstr "" #: ../pan/general/e-util.cc:242 msgid "?" msgstr "" #: ../pan/general/text-match.cc:193 #, c-format msgid "Can't use regular expression \"%s\": %s" msgstr "Kan reguliere expressie \"%s\" niet gebruiken: %s" #: ../pan/general/utf8-utils.cc:213 msgid "Couldn't determine article encoding. Non-UTF8 characters were removed." msgstr "" #: ../pan/gui/actions.cc:274 ../pan/gui/post-ui.cc:417 #, fuzzy msgid "_File" msgstr "/_Bestand" #: ../pan/gui/actions.cc:275 ../pan/gui/post-ui.cc:418 #, fuzzy msgid "_Edit" msgstr "/Be_werken" #: ../pan/gui/actions.cc:276 ../pan/gui/prefs-ui.cc:1064 #, fuzzy msgid "_Layout" msgstr "Paneel-i_ndeling" #: ../pan/gui/actions.cc:277 #, fuzzy msgid "_Group Pane" msgstr "Groepenpaneel" #: ../pan/gui/actions.cc:278 #, fuzzy msgid "_Header Pane" msgstr "Kopteksten-paneel" #: ../pan/gui/actions.cc:279 #, fuzzy msgid "_Body Pane" msgstr "Inhoud-paneel" #: ../pan/gui/actions.cc:280 #, fuzzy msgid "_View" msgstr "/Beel_d" #: ../pan/gui/actions.cc:281 #, fuzzy msgid "Filte_r" msgstr "/_Filter" #: ../pan/gui/actions.cc:282 #, fuzzy msgid "_Go" msgstr "/_Ga naar" #: ../pan/gui/actions.cc:283 ../pan/gui/prefs-ui.cc:1091 #, fuzzy msgid "_Actions" msgstr "Acties" #: ../pan/gui/actions.cc:284 #, fuzzy msgid "_Articles" msgstr "/_Artikelen" #: ../pan/gui/actions.cc:285 #, fuzzy msgid "G_roups" msgstr "Groepen" #: ../pan/gui/actions.cc:286 ../pan/gui/actions.cc:287 msgid "_Post" msgstr "_Plaatsen" #: ../pan/gui/actions.cc:288 msgid "_Help" msgstr "_Hulp" #: ../pan/gui/actions.cc:291 #, fuzzy msgid "_Read Group" msgstr "/Groep ver_wijderen" #: ../pan/gui/actions.cc:292 #, fuzzy msgid "Read Group" msgstr "/Groep ver_wijderen" #: ../pan/gui/actions.cc:296 #, fuzzy msgid "_Mark Selected Groups Read" msgstr "/Groep markeren als ge_lezen" #: ../pan/gui/actions.cc:297 #, fuzzy msgid "Mark Selected Groups Read" msgstr "/Groep markeren als ge_lezen" #: ../pan/gui/actions.cc:301 #, fuzzy msgid "_Delete Selected Groups' Articles" msgstr "/Artikelen in groep _verwijderen" #: ../pan/gui/actions.cc:302 #, fuzzy msgid "Delete Selected Groups' Articles" msgstr "/Artikelen in groep _verwijderen" #: ../pan/gui/actions.cc:306 #, fuzzy msgid "Get New _Headers in Selected Groups" msgstr "Nieuwe kopteksten in geselecteerde groepen ophalen" #: ../pan/gui/actions.cc:307 #, fuzzy msgid "Get New Headers in Selected Groups" msgstr "Nieuwe kopteksten in geselecteerde groepen ophalen" #: ../pan/gui/actions.cc:311 ../pan/gui/actions.cc:316 #, fuzzy msgid "Get New _Headers in Subscribed Groups" msgstr "Nieuwe kopteksten in geabonneerde groepen ophalen" #: ../pan/gui/actions.cc:312 ../pan/gui/actions.cc:317 #, fuzzy msgid "Get New Headers in Subscribed Groups" msgstr "/Nieuwe kopteksten in geabonneerde groepen ophalen" #: ../pan/gui/actions.cc:321 #, fuzzy msgid "Get _Headers..." msgstr "/Nieuwe _kopteksten ophalen" #: ../pan/gui/actions.cc:322 #, fuzzy msgid "Get Headers..." msgstr "/Nieuwe _kopteksten ophalen" #: ../pan/gui/actions.cc:326 ../pan/gui/actions.cc:327 #, fuzzy msgid "Refresh Group List" msgstr "Bezig met verversen van groep \"%s\"" #: ../pan/gui/actions.cc:331 #, fuzzy msgid "_Subscribe" msgstr "/_Abonneren" #: ../pan/gui/actions.cc:332 #, fuzzy msgid "Subscribe" msgstr "/_Abonneren" #: ../pan/gui/actions.cc:336 #, fuzzy msgid "_Unsubscribe" msgstr "/A_fmelden" #: ../pan/gui/actions.cc:337 #, fuzzy msgid "Unsubscribe" msgstr "/A_fmelden" #: ../pan/gui/actions.cc:341 #, fuzzy msgid "_Save Articles..." msgstr "Artikel opslaan als..." #: ../pan/gui/actions.cc:342 #, fuzzy msgid "Save Articles..." msgstr "Artikel opslaan als..." #: ../pan/gui/actions.cc:346 #, fuzzy msgid "Save Articles from Selected _NZB..." msgstr "Artikel opslaan als..." #: ../pan/gui/actions.cc:347 #, fuzzy msgid "Save Articles from Selected NZB" msgstr "Bijlagen op_slaan" #: ../pan/gui/actions.cc:351 #, fuzzy msgid "Save Articles to an NZB _File..." msgstr "Artikel opslaan als..." #: ../pan/gui/actions.cc:352 #, fuzzy msgid "Save Articles to an NZB File" msgstr "Het logboek in een bestand opslaan" #: ../pan/gui/actions.cc:356 ../pan/gui/actions.cc:357 #, fuzzy msgid "Print" msgstr "Pan: Afdrukken" #: ../pan/gui/actions.cc:361 msgid "_Import NZB Files..." msgstr "" #: ../pan/gui/actions.cc:366 #, fuzzy msgid "_Cancel Last Task" msgstr "Laatste taak annuleren" #: ../pan/gui/actions.cc:371 #, fuzzy msgid "_Task Manager" msgstr "/_Bestand/_Taakbeheer..." #: ../pan/gui/actions.cc:376 #, fuzzy msgid "_Event Log" msgstr "Statuslogboek openen" #: ../pan/gui/actions.cc:381 #, fuzzy msgid "_Quit" msgstr "/Be_werken" #: ../pan/gui/actions.cc:386 #, fuzzy msgid "Select _All Articles" msgstr "/Be_werken/Alle _artikelen selecteren" #: ../pan/gui/actions.cc:391 #, fuzzy msgid "_Deselect All Articles" msgstr "/Be_werken/Alle artikelen _deselecteren" #: ../pan/gui/actions.cc:396 #, fuzzy msgid "Add Su_bthreads to Selection" msgstr "/Be_werken/_Subdiscussies aan selectie toevoegen" #: ../pan/gui/actions.cc:401 #, fuzzy msgid "Add _Threads to Selection" msgstr "/Be_werken/_Discussies aan selectie toevoegen" #: ../pan/gui/actions.cc:406 #, fuzzy msgid "Add _Similar Articles to Selection" msgstr "/Be_werken/_Discussies aan selectie toevoegen" #: ../pan/gui/actions.cc:411 #, fuzzy msgid "Select Article _Body" msgstr "/Be_werken/Artikel_inhoud selecteren" #: ../pan/gui/actions.cc:416 #, fuzzy msgid "Edit _Preferences" msgstr "/Be_werken/_Voorkeuren..." #: ../pan/gui/actions.cc:421 #, fuzzy msgid "Edit Selected _Group's Preferences" msgstr "/Be_werken/_Voorkeuren..." #: ../pan/gui/actions.cc:426 ../pan/gui/post-ui.cc:434 #, fuzzy msgid "Edit P_osting Profiles" msgstr "/_Plaatsen/_Profielen voor plaatsing..." #: ../pan/gui/actions.cc:431 #, fuzzy msgid "Edit _News Servers" msgstr "Newsserver" #: ../pan/gui/actions.cc:436 #, fuzzy msgid "Jump to _Group Tab" msgstr "/Beel_d/Naar _groepen-tabblad springen" #: ../pan/gui/actions.cc:441 #, fuzzy msgid "Jump to _Header Tab" msgstr "/Beel_d/Naar _kopteksten-tabblad springen" #: ../pan/gui/actions.cc:446 #, fuzzy msgid "Jump to _Body Tab" msgstr "/B_eeld/Naar _inhoud-tabblad springen" #: ../pan/gui/actions.cc:451 #, fuzzy msgid "_Rot13 Selected Text" msgstr "Geselecteerde tekst Rot13-coderen" #: ../pan/gui/actions.cc:456 #, fuzzy msgid "Clear _Header Pane" msgstr "Kopteksten-paneel" #: ../pan/gui/actions.cc:461 #, fuzzy msgid "Clear _Body Pane" msgstr "Inhoud-paneel" #: ../pan/gui/actions.cc:466 #, fuzzy msgid "Cache Article" msgstr "Bezig met annuleren artikel" #: ../pan/gui/actions.cc:471 #, fuzzy msgid "Read Article" msgstr "Bezig met klaarmaken %d berichten" #: ../pan/gui/actions.cc:476 #, fuzzy msgid "Show Article Information" msgstr "Profielinformatie" #: ../pan/gui/actions.cc:481 #, fuzzy msgid "Read _More" msgstr "Meer lezen" #: ../pan/gui/actions.cc:482 msgid "Read More" msgstr "Meer lezen" #: ../pan/gui/actions.cc:486 msgid "Read _Back" msgstr "" #: ../pan/gui/actions.cc:487 #, fuzzy msgid "Read Back" msgstr "/_Ga naar/Teruglezen" #: ../pan/gui/actions.cc:491 #, fuzzy msgid "Next _Unread Group" msgstr "/_Ga naar/Volgende ongelezen _groep" #: ../pan/gui/actions.cc:496 #, fuzzy msgid "Next _Group" msgstr "/_Ga naar/Volge_nde groep" #: ../pan/gui/actions.cc:501 #, fuzzy msgid "Next _Unread Article" msgstr "/_Ga naar/_Volgende ongelezen artikel" #: ../pan/gui/actions.cc:502 #, fuzzy msgid "Next Unread Article" msgstr "Volgend ongelezen artikel lezen" #: ../pan/gui/actions.cc:506 #, fuzzy msgid "Next _Article" msgstr "/_Ga naar/Volgende _artikel" #: ../pan/gui/actions.cc:507 #, fuzzy msgid "Next Article" msgstr "/_Ga naar/Volgende _artikel" #: ../pan/gui/actions.cc:511 #, fuzzy msgid "Next _Watched Article" msgstr "/_Ga naar/Volgende be_waakte artikel" #: ../pan/gui/actions.cc:516 #, fuzzy msgid "Next Unread _Thread" msgstr "/_Ga naar/Volgende ongelezen _discussie" #: ../pan/gui/actions.cc:517 #, fuzzy msgid "Next Unread Thread" msgstr "Volgende ongelezen discussie lezen" #: ../pan/gui/actions.cc:521 #, fuzzy msgid "Next Threa_d" msgstr "/_Ga naar/Volgende dis_cussie" #: ../pan/gui/actions.cc:526 #, fuzzy msgid "Pre_vious Article" msgstr "/_Ga naar/_Vorig artikel" #: ../pan/gui/actions.cc:531 #, fuzzy msgid "Previous _Thread" msgstr "/_Ga naar/Vo_rige discussie" #: ../pan/gui/actions.cc:536 #, fuzzy msgid "_Parent Article" msgstr "/_Ga naar/_Ouder-artikel" #: ../pan/gui/actions.cc:541 #, fuzzy msgid "Ignore _Author" msgstr "/Discussie _negeren" #: ../pan/gui/actions.cc:545 #, fuzzy msgid "_Watch Thread" msgstr "/Discussie be_waken" #: ../pan/gui/actions.cc:550 #, fuzzy msgid "_Ignore Thread" msgstr "/Discussie _negeren" #: ../pan/gui/actions.cc:555 ../pan/gui/actions.cc:556 #, fuzzy msgid "_Toggle Flag On/Off for Thread" msgstr "/Discussie be_waken" #: ../pan/gui/actions.cc:560 ../pan/gui/actions.cc:561 #, fuzzy msgid "_Turn Flag Off for Thread" msgstr "/Discussie be_waken" #: ../pan/gui/actions.cc:565 ../pan/gui/actions.cc:566 #, fuzzy msgid "_Select All Flagged Threads" msgstr "/_Ga naar/Volgende _nieuwe discussie" #: ../pan/gui/actions.cc:570 ../pan/gui/actions.cc:571 #, fuzzy msgid "_Go to Next Flagged Thread" msgstr "/_Ga naar/Volgende _nieuwe discussie" #: ../pan/gui/actions.cc:575 ../pan/gui/actions.cc:576 #, fuzzy msgid "_Go to Last Flagged Thread" msgstr "/_Ga naar/Volgende _nieuwe discussie" #: ../pan/gui/actions.cc:580 ../pan/gui/actions.cc:581 #, fuzzy msgid "_Invert Selection" msgstr "De geselecteerde regel omkeren" #: ../pan/gui/actions.cc:585 #, fuzzy msgid "Edit Article's Watch/Ignore/Score..." msgstr "/_Artikelen/Score _aanmaken..." #: ../pan/gui/actions.cc:590 #, fuzzy msgid "Add a _Scoring Rule..." msgstr "Een nieuwe score toevoegen" #: ../pan/gui/actions.cc:595 #, fuzzy msgid "Cance_l Article..." msgstr "Bezig met annuleren artikel" #: ../pan/gui/actions.cc:600 #, fuzzy msgid "_Supersede Article..." msgstr "/Artikel opslaan _als..." #: ../pan/gui/actions.cc:605 #, fuzzy msgid "_Delete Article" msgstr "Artikel _verwijderen" #: ../pan/gui/actions.cc:610 #, fuzzy msgid "Clear Article Cache" msgstr "Artikelbuffer" #: ../pan/gui/actions.cc:615 #, fuzzy msgid "_Mark Article as Read" msgstr "Artikel is gelezen" #: ../pan/gui/actions.cc:620 #, fuzzy msgid "Mark Article as _Unread" msgstr "Artikel is ongelezen" #: ../pan/gui/actions.cc:626 #, fuzzy msgid "_Mark Thread as Read" msgstr "Artikel is gelezen" #: ../pan/gui/actions.cc:631 #, fuzzy msgid "Mark Thread as _Unread" msgstr "Artikel is ongelezen" #: ../pan/gui/actions.cc:636 #, fuzzy msgid "_Post to Newsgroup" msgstr "In nieuwsgroep plaatsen" #: ../pan/gui/actions.cc:637 msgid "Post to Newsgroup" msgstr "In nieuwsgroep plaatsen" #: ../pan/gui/actions.cc:641 #, fuzzy msgid "_Followup to Newsgroup" msgstr "/_Plaatsen/_Opvolgen naar nieuwsgroep..." #: ../pan/gui/actions.cc:642 #, fuzzy msgid "Followup to Newsgroup" msgstr "/_Plaatsen/_Opvolgen naar nieuwsgroep..." #: ../pan/gui/actions.cc:646 #, fuzzy msgid "_Reply to Author in Mail" msgstr "/_Artikelen/_Auteur niet meer tonen (Plonk)" #: ../pan/gui/actions.cc:651 #, fuzzy msgid "_Pan Home Page" msgstr "/_Hulp/Pan _homepage..." #: ../pan/gui/actions.cc:656 #, fuzzy msgid "Give _Feedback or Report a Bug..." msgstr "/_Hulp/Rapporteer een _programmafout..." #: ../pan/gui/actions.cc:661 msgid "_Tip Jar..." msgstr "" #: ../pan/gui/actions.cc:666 #, fuzzy msgid "_About" msgstr "Info" #: ../pan/gui/actions.cc:671 msgid "Edit _SSL Certificates" msgstr "" #: ../pan/gui/actions.cc:685 #, fuzzy msgid "_Thread Headers" msgstr "Meer Koppen" #: ../pan/gui/actions.cc:686 #, fuzzy msgid "_Wrap Article Body" msgstr "/Beel_d/Regels in artikel a_fbreken" #: ../pan/gui/actions.cc:687 #, fuzzy msgid "Mute _Quoted Text" msgstr "/Beel_d/Ge_citeerde tekst onderdrukken" #: ../pan/gui/actions.cc:688 #, fuzzy msgid "Show All _Headers in Body Pane" msgstr "/Beel_d/Alle kopteksten in in_houd-paneel tonen" #: ../pan/gui/actions.cc:689 #, fuzzy msgid "Show _Smilies as Graphics" msgstr "_Waarschuwing tonen:" #: ../pan/gui/actions.cc:690 msgid "Show *Bold*, __Underlined__, and /Italic/" msgstr "" #: ../pan/gui/actions.cc:691 msgid "Size Pictures to _Fit" msgstr "" #: ../pan/gui/actions.cc:692 #, fuzzy msgid "Use _Monospace Font" msgstr "Monospac_e lettertype:" #: ../pan/gui/actions.cc:693 msgid "Set Focus to Images" msgstr "" #: ../pan/gui/actions.cc:694 msgid "Highlight _URLs" msgstr "" #: ../pan/gui/actions.cc:697 #, fuzzy msgid "_Work Online" msgstr "/_Bestand/On-_line werken" #: ../pan/gui/actions.cc:698 #, fuzzy msgid "_Tabbed Layout" msgstr "/Beel_d/_Tabbladen-indeling" #: ../pan/gui/actions.cc:699 #, fuzzy msgid "Show Group _Pane" msgstr "/Beel_d/Groe_pen-paneel tonen" #: ../pan/gui/actions.cc:700 #, fuzzy msgid "Show Hea_der Pane" msgstr "/Beel_d/K_opteksten-paneel tonen" #: ../pan/gui/actions.cc:701 #, fuzzy msgid "Show Bod_y Pane" msgstr "/Beel_d/I_nhoud-paneel tonen" #: ../pan/gui/actions.cc:702 msgid "Show _Toolbar" msgstr "" #: ../pan/gui/actions.cc:703 #, fuzzy msgid "Abbreviate Group Names" msgstr "/Beel_d/N_amen in groepen-paneel afkorten" # Mogelijk: iets met 'doorlaten' toevoegen #: ../pan/gui/actions.cc:705 #, fuzzy msgid "Match Only _Unread Articles" msgstr "Alleen bij nieuwe artikelen" # Mogelijk: iets met 'doorlaten' toevoegen #: ../pan/gui/actions.cc:705 #, fuzzy msgid "Match Only Unread Articles" msgstr "Alleen bij nieuwe artikelen" #: ../pan/gui/actions.cc:706 #, fuzzy msgid "Match Only _Cached Articles" msgstr "Alleen bij gebufferde artikelen" #: ../pan/gui/actions.cc:706 #, fuzzy msgid "Match Only Cached Articles" msgstr "Alleen bij gebufferde artikelen" #: ../pan/gui/actions.cc:707 #, fuzzy msgid "Match Only _Complete Articles" msgstr "Alleen bij complete bijlagen" #: ../pan/gui/actions.cc:707 #, fuzzy msgid "Match Only Complete Articles" msgstr "Alleen bij complete bijlagen" #: ../pan/gui/actions.cc:708 #, fuzzy msgid "Match Only _My Articles" msgstr "Alleen bij mijn artikelen" #: ../pan/gui/actions.cc:708 #, fuzzy msgid "Match Only My Articles" msgstr "Alleen bij mijn artikelen" #: ../pan/gui/actions.cc:709 #, fuzzy msgid "Match Only _Watched Articles" msgstr "Alleen bij bewaakte artikelen" #: ../pan/gui/actions.cc:709 msgid "Match Only Watched Articles" msgstr "Alleen bij bewaakte artikelen" #: ../pan/gui/actions.cc:711 #, fuzzy msgid "Match Scores of 9999 (_Watched)" msgstr "/_Filter/Scores van 9999 (Bewaakt)" #: ../pan/gui/actions.cc:712 #, fuzzy msgid "Match Scores of 5000...9998 (_High)" msgstr "/_Filter/Scores van 5000...9998 (Hoog)" #: ../pan/gui/actions.cc:713 #, fuzzy msgid "Match Scores of 1...4999 (Me_dium)" msgstr "/_Filter/Scores van 1...4999 (Middel)" #: ../pan/gui/actions.cc:714 #, fuzzy msgid "Match Scores of 0 (_Normal)" msgstr "/_Filter/Scores van 0 (Normaal)" #: ../pan/gui/actions.cc:715 #, fuzzy msgid "Match Scores of -9998...-1 (_Low)" msgstr "/_Filter/Scores van -9998...-1 (Laag)" #: ../pan/gui/actions.cc:716 #, fuzzy msgid "Match Scores of -9999 (_Ignored)" msgstr "/_Filter/Scores van -9999 (Genegeerd)" #: ../pan/gui/actions.cc:718 msgid "Enable/Disable All _Rules" msgstr "" #: ../pan/gui/actions.cc:744 #, fuzzy msgid "Show Matching _Articles" msgstr "/_Filter/Overeenkomende artikelen tonen" #: ../pan/gui/actions.cc:745 #, fuzzy msgid "Show Matching Articles' _Threads" msgstr "/_Filter/Overeenkomende artikel-discussies tonen" #: ../pan/gui/actions.cc:746 #, fuzzy msgid "Show Matching Articles' _Subthreads" msgstr "/_Filter/Overeenkomende artikel-subdiscussies tonen" #: ../pan/gui/body-pane.cc:1011 #, fuzzy, c-format msgid "Unnamed File" msgstr "Ondertekeningsbestand selecteren" #: ../pan/gui/body-pane.cc:1092 ../pan/gui/gui.cc:1864 #: ../pan/gui/header-pane.cc:1188 ../pan/gui/header-pane.cc:1617 #: ../pan/gui/post-ui.cc:2496 ../pan/gui/prefs-ui.cc:833 #: ../pan/gui/score-add-ui.cc:139 msgid "Subject" msgstr "Onderwerp" #: ../pan/gui/body-pane.cc:1094 ../pan/gui/gui.cc:1864 #, fuzzy msgid "From" msgstr "Van" #: ../pan/gui/body-pane.cc:1096 ../pan/gui/gui.cc:1865 #: ../pan/gui/header-pane.cc:1695 ../pan/gui/log-ui.cc:305 #: ../pan/gui/prefs-ui.cc:829 msgid "Date" msgstr "Datum" #: ../pan/gui/body-pane.cc:1103 msgid "Newsgroups" msgstr "Nieuwsgroepen" #: ../pan/gui/body-pane.cc:1108 #, fuzzy msgid "Followup-To" msgstr "Opvolgen-naar" #: ../pan/gui/body-pane.cc:1118 msgid "Reply-To" msgstr "Antwoord-naar" #: ../pan/gui/body-pane.cc:1160 msgid " from " msgstr "" #: ../pan/gui/body-pane.cc:1162 msgid " at " msgstr "" #: ../pan/gui/body-pane.cc:1264 #, c-format msgid "" "This is a PGP-Signed message.\n" "\n" "Signer : %s ('%s')\n" "Valid until : %s\n" "Created on : %s" msgstr "" #: ../pan/gui/body-pane.cc:1269 msgid "always" msgstr "" #: ../pan/gui/body-pane.cc:1485 msgid "Copy _URL" msgstr "" #: ../pan/gui/body-pane.cc:1680 #, fuzzy msgid "Save attachment as ...." msgstr "Bijlagen op_slaan" #: ../pan/gui/body-pane.cc:1683 #, fuzzy msgid "Save all attachments" msgstr "Bijlagen op_slaan" #. add a toolbar for attachments #: ../pan/gui/body-pane.cc:1753 msgid "Attachments" msgstr "Bijlagen" #. update the titlebar #: ../pan/gui/dl-headers-ui.cc:106 ../pan/gui/gui.cc:973 #: ../pan/gui/gui.cc:1592 ../pan/gui/gui.cc:1893 #: ../pan/gui/score-add-ui.cc:602 msgid "Pan" msgstr "" #: ../pan/gui/dl-headers-ui.cc:112 #, fuzzy, c-format msgid "%d Group" msgid_plural "%d Groups" msgstr[0] "Groepen" msgstr[1] "Groepen" #: ../pan/gui/dl-headers-ui.cc:135 #, fuzzy msgid "Get the last N _days' headers: " msgstr "_Recente kopteksten ophalen: " #: ../pan/gui/dl-headers-ui.cc:143 #, fuzzy msgid "Get _new headers" msgstr "/Nieuwe _kopteksten ophalen" #: ../pan/gui/dl-headers-ui.cc:147 #, fuzzy msgid "Get _all headers" msgstr "_Alle kopteksten ophalen" #: ../pan/gui/dl-headers-ui.cc:151 #, fuzzy msgid "Get the _latest N headers: " msgstr "_Recente kopteksten ophalen: " #: ../pan/gui/e-action-combo-box.c:388 ../pan/gui/prefs-ui.cc:826 #, fuzzy msgid "Action" msgstr "Acties" #: ../pan/gui/e-action-combo-box.c:389 msgid "A GtkRadioAction" msgstr "" #: ../pan/gui/e-charset.c:51 ../pan/gui/task-pane.cc:518 msgid "Unknown" msgstr "Onbekend" #: ../pan/gui/e-charset.c:52 msgid "Arabic" msgstr "" #: ../pan/gui/e-charset.c:53 msgid "Baltic" msgstr "Baltisch" #: ../pan/gui/e-charset.c:54 msgid "Central European" msgstr "Centraal-Europees" #: ../pan/gui/e-charset.c:55 #, fuzzy msgid "Chinese" msgstr "Regels" #: ../pan/gui/e-charset.c:56 msgid "Cyrillic" msgstr "Cyrillisch" #: ../pan/gui/e-charset.c:57 msgid "Greek" msgstr "Grieks" #: ../pan/gui/e-charset.c:58 msgid "Hebrew" msgstr "" #: ../pan/gui/e-charset.c:59 msgid "Japanese" msgstr "Japans" #: ../pan/gui/e-charset.c:60 msgid "Korean" msgstr "Koreaans" #: ../pan/gui/e-charset.c:61 msgid "Thai" msgstr "" #: ../pan/gui/e-charset.c:62 msgid "Turkish" msgstr "Turks" #: ../pan/gui/e-charset.c:63 #, fuzzy msgid "Unicode" msgstr "Unicode, UTF-8" #: ../pan/gui/e-charset.c:64 #, fuzzy msgid "Western European" msgstr "Centraal-Europees" #: ../pan/gui/e-charset.c:65 #, fuzzy msgid "Western European, New" msgstr "Westers, nieuw" #: ../pan/gui/e-charset.c:84 ../pan/gui/e-charset.c:85 #: ../pan/gui/e-charset.c:86 #, fuzzy msgid "Traditional" msgstr "Traditioneel Chinees" #: ../pan/gui/e-charset.c:87 ../pan/gui/e-charset.c:88 #: ../pan/gui/e-charset.c:89 ../pan/gui/e-charset.c:90 #, fuzzy msgid "Simplified" msgstr "Vereenvoudigd Chinees" #: ../pan/gui/e-charset.c:93 #, fuzzy msgid "Ukrainian" msgstr "Cyrillisch, Oekraïens" #: ../pan/gui/e-charset.c:96 msgid "Visual" msgstr "" #: ../pan/gui/e-charset-combo-box.c:93 ../pan/gui/gui.cc:2058 #: ../pan/gui/post-ui.cc:519 ../pan/gui/prefs-ui.cc:737 #, fuzzy msgid "Character Encoding" msgstr "_Codering:" #: ../pan/gui/e-charset-combo-box.c:117 msgid "Enter the character set to use" msgstr "" #: ../pan/gui/e-charset-combo-box.c:336 msgid "Other..." msgstr "" #: ../pan/gui/e-cte-dialog.c:78 #, fuzzy msgid "Default encoding" msgstr "Decoderen van \"%s\"" #: ../pan/gui/e-cte-dialog.c:80 #, fuzzy msgid "7Bit Encoding" msgstr "_Codering:" #: ../pan/gui/e-cte-dialog.c:82 #, fuzzy msgid "8Bit Encoding" msgstr "_Codering:" #: ../pan/gui/e-cte-dialog.c:84 #, fuzzy msgid "BASE64 Encoding" msgstr "_Codering:" #: ../pan/gui/e-cte-dialog.c:86 #, fuzzy msgid "Quoted-Printable Encoding" msgstr "_Inhoud-paneel" #: ../pan/gui/group-pane.cc:500 msgid "Group" msgstr "Groep" #: ../pan/gui/group-pane.cc:501 #, fuzzy msgid "Group (regex)" msgstr "Groepseigenschappen" #: ../pan/gui/group-pane.cc:913 #, fuzzy msgid "Subscribed Groups" msgstr "Geabonneerde nieuwsgroepen" #: ../pan/gui/group-pane.cc:914 #, fuzzy msgid "Other Groups" msgstr "Nieuwe groepen" #: ../pan/gui/group-pane.cc:954 ../pan/gui/score-view-ui.cc:157 #, fuzzy msgid "Name" msgstr "_Naam:" #: ../pan/gui/group-prefs-dialog.cc:156 #, fuzzy msgid "No Profiles defined in Edit|Posting Profiles." msgstr "/_Plaatsen/_Profielen voor plaatsing..." #: ../pan/gui/group-prefs-dialog.cc:231 #, fuzzy msgid "Pan: Group Preferences" msgstr "Pan-voorkeuren" #: ../pan/gui/group-prefs-dialog.cc:247 #, fuzzy, c-format msgid "Properties for Groups" msgstr "Eigenschappen van \"%s\"" #: ../pan/gui/group-prefs-dialog.cc:249 #, fuzzy, c-format msgid "Properties for %s" msgstr "Eigenschappen van \"%s\"" #: ../pan/gui/group-prefs-dialog.cc:257 #, fuzzy msgid "Character _encoding:" msgstr "_Codering:" #: ../pan/gui/group-prefs-dialog.cc:259 #, fuzzy msgid "Directory for Saving Attachments" msgstr "Map voor opslaan bijlagen" #: ../pan/gui/group-prefs-dialog.cc:269 #, fuzzy msgid "Directory for _saving attachments:" msgstr "Map voor opslaan bijlagen" #: ../pan/gui/group-prefs-dialog.cc:271 #, fuzzy msgid "Posting _profile:" msgstr "Pan: Profiel" #: ../pan/gui/group-prefs-dialog.cc:277 msgid "Spellchecker _language:" msgstr "" #: ../pan/gui/gui.cc:273 msgid "Open the Task Manager" msgstr "Taakbeheer openen." #: ../pan/gui/gui.cc:301 #, fuzzy msgid "Open the Event Log" msgstr "Statuslogboek openen" #: ../pan/gui/gui.cc:561 msgid "Save NZB's Files" msgstr "" #: ../pan/gui/gui.cc:588 msgid "Untitled.nzb" msgstr "" #: ../pan/gui/gui.cc:590 #, fuzzy msgid "Save NZB File as..." msgstr "Artikel opslaan als..." #: ../pan/gui/gui.cc:757 msgid "Import NZB Files" msgstr "" #: ../pan/gui/gui.cc:765 ../pan/gui/post-ui.cc:3197 #, fuzzy msgid "NZB Files" msgstr "Bestanden" #: ../pan/gui/gui.cc:770 #, fuzzy msgid "All Files" msgstr "Bestanden" #: ../pan/gui/gui.cc:1258 #, fuzzy msgid "Unable to supersede article." msgstr "/Artikel opslaan _als..." #: ../pan/gui/gui.cc:1259 ../pan/gui/gui.cc:1333 msgid "The article doesn't match any of your posting profiles." msgstr "" #: ../pan/gui/gui.cc:1306 msgid "Revise and send this article to replace the old one." msgstr "" #: ../pan/gui/gui.cc:1307 ../pan/gui/gui.cc:1370 msgid "Be patient! It will take time for your changes to take effect." msgstr "" #: ../pan/gui/gui.cc:1332 #, fuzzy msgid "Unable to cancel article." msgstr "Niet in staat thread te maken: %s" #: ../pan/gui/gui.cc:1369 msgid "Send this article to ask your server to cancel your other one." msgstr "" #: ../pan/gui/gui.cc:1387 msgid "You marked some articles for deletion" msgstr "" #: ../pan/gui/gui.cc:1388 #, fuzzy msgid "Are you sure you want to delete them?" msgstr "" "Weet u zeker dat u deze %d groepen/mappen en hun artikelen wilt verwijderen?" #: ../pan/gui/gui.cc:1413 #, fuzzy msgid "Always trust" msgstr "Editor" #: ../pan/gui/gui.cc:1416 msgid "Do you want to accept it permanently (deletable afterwards) ?" msgstr "" #: ../pan/gui/gui.cc:1595 #, fuzzy msgid "Copyright \\u00A9 2002-2012 Charles Kerr and others" msgstr "Copyright (C) 2003 Charles Kerr" #: ../pan/gui/gui.cc:1600 msgid "translator-credits" msgstr "" #: ../pan/gui/gui.cc:1709 #, fuzzy msgid "_1. Group Pane" msgstr "Groepenpaneel" #: ../pan/gui/gui.cc:1710 #, fuzzy msgid "_2. Header Pane" msgstr "Kopteksten-paneel" #: ../pan/gui/gui.cc:1711 #, fuzzy msgid "_3. Body Pane" msgstr "Inhoud-paneel" #: ../pan/gui/gui.cc:1800 ../pan/gui/gui.cc:1815 msgid " Bytes" msgstr "" #: ../pan/gui/gui.cc:1803 msgid " KB" msgstr "" #: ../pan/gui/gui.cc:1806 msgid " MB" msgstr "" #: ../pan/gui/gui.cc:1809 msgid " GB" msgstr "" #: ../pan/gui/gui.cc:1812 msgid " TB" msgstr "" #: ../pan/gui/gui.cc:1844 #, fuzzy, c-format msgid "This article is complete with %d part." msgid_plural "This article has all %d parts." msgstr[0] "Artikel heeft geen bijlagen" msgstr[1] "Artikel heeft geen bijlagen" #: ../pan/gui/gui.cc:1846 #, fuzzy, c-format msgid "This article is missing %d part." msgid_plural "This article is missing %d of its %d parts:" msgstr[0] "Artikel heeft geen bijlagen" msgstr[1] "Artikel heeft geen bijlagen" #: ../pan/gui/gui.cc:1865 ../pan/gui/header-pane.cc:1190 #, fuzzy msgid "Message-ID" msgstr "_Bericht-ID:" #: ../pan/gui/gui.cc:1866 ../pan/gui/header-pane.cc:1665 #: ../pan/gui/prefs-ui.cc:830 msgid "Lines" msgstr "Regels" #: ../pan/gui/gui.cc:1866 msgid "Size" msgstr "" #: ../pan/gui/gui.cc:1867 ../pan/gui/header-pane.cc:1680 #: ../pan/gui/prefs-ui.cc:828 msgid "Bytes" msgstr "" #: ../pan/gui/gui.cc:1917 msgid "" "Error loading iconv library. Some Charsets in the GUI will not be able to be " "encoded." msgstr "" #: ../pan/gui/gui.cc:2059 #, fuzzy msgid "Body Pane Encoding" msgstr "_Inhoud-paneel" #: ../pan/gui/gui.cc:2090 ../pan/gui/task-pane.cc:569 #, c-format msgid "Offline" msgstr "Off-line" #: ../pan/gui/gui.cc:2094 #, fuzzy, c-format msgid "Closing %d connection" msgid_plural "Closing %d connections" msgstr[0] "Bezig met sluiten van %d verbindingen" msgstr[1] "Bezig met sluiten van %d verbindingen" #: ../pan/gui/gui.cc:2096 ../pan/gui/gui.cc:2126 #, c-format msgid "No Connections" msgstr "Geen verbindingen" #: ../pan/gui/gui.cc:2100 #, c-format msgid "Connecting" msgstr "Bezig met verbinden" #: ../pan/gui/gui.cc:2113 #, c-format msgid "%s: %d idle, %d active @ %.1f KiBps" msgstr "" #: ../pan/gui/gui.cc:2169 #, c-format msgid "No Tasks" msgstr "Geen taken" #: ../pan/gui/gui.cc:2171 ../pan/gui/prefs-ui.cc:1047 msgid "Tasks" msgstr "Taken" #: ../pan/gui/gui.cc:2182 ../pan/gui/task-pane.cc:435 #, c-format msgid "%lu tasks, %s, %.1f KiBps, ETA %d:%02d:%02d" msgstr "" #: ../pan/gui/gui.cc:2234 msgid "" "Pan is now offline. Please see \"File|Event Log\" and correct the problem, " "then use \"File|Work Online\" to continue." msgstr "" #: ../pan/gui/header-pane.cc:1186 msgid "Subject or Author" msgstr "" #: ../pan/gui/header-pane.cc:1187 msgid "Sub or Auth (regex)" msgstr "" #: ../pan/gui/header-pane.cc:1189 ../pan/gui/header-pane.cc:1649 #: ../pan/gui/prefs-ui.cc:827 ../pan/gui/score-add-ui.cc:140 msgid "Author" msgstr "Auteur" #: ../pan/gui/header-pane.cc:1634 ../pan/gui/prefs-ui.cc:831 msgid "Score" msgstr "Score" #: ../pan/gui/log-ui.cc:103 msgid "Save Event List" msgstr "" #: ../pan/gui/log-ui.cc:256 #, fuzzy msgid "Pan: Events" msgstr "Pan: Servers" #: ../pan/gui/log-ui.cc:315 msgid "Message" msgstr "Bericht" #: ../pan/gui/pan.cc:330 msgid "Maximize" msgstr "" #: ../pan/gui/pan.cc:383 msgid "An Error has occurred!" msgstr "" #: ../pan/gui/pan.cc:397 #, fuzzy msgid "New Articles!" msgstr "/_Ga naar/Volgende _artikel" #: ../pan/gui/pan.cc:398 msgid "" "There are new\n" "articles available." msgstr "" #: ../pan/gui/pan.cc:465 msgid "Toggle on/offline" msgstr "" #: ../pan/gui/pan.cc:513 msgid "" "Thank you for trying Pan!\n" " \n" "To start newsreading, first Add a Server." msgstr "" #: ../pan/gui/pan.cc:595 msgid "" "General Options\n" " -h, --help Show this usage page.\n" " --verbose Be verbose (in non-GUI mode).\n" "\n" "URL Options\n" " --no-gui On news:message-id, dump the article to stdout.\n" "\n" "NZB Batch Options\n" " --nzb file1 file2 ... Process nzb files without launching all of Pan.\n" " -o path, --output=path Path to save attachments listed in the nzb " "files.\n" " --no-gui Only show console output, not the download " "queue.\n" msgstr "" #: ../pan/gui/pan.cc:867 msgid "Error: --no-gui used without nzb files or news:message-id." msgstr "" #: ../pan/gui/pan.cc:871 #, fuzzy, c-format msgid "Pan %s started" msgstr "Pan %s gestart" #: ../pan/gui/pan.cc:890 msgid "Please configure Pan's news servers before using it as an nzb client." msgstr "" #: ../pan/gui/pan.cc:1009 msgid "Pan notification" msgstr "" #: ../pan/gui/post-ui.cc:186 #, c-format msgid "Upload Queue : %ld Tasks, %ld KB (~ %.2f MB) total ." msgstr "" #: ../pan/gui/post-ui.cc:286 #, fuzzy, c-format msgid "Error setting custom spellchecker: %s" msgstr "Er is een fout opgetreden bij het schrijven naar de socket: %s" #: ../pan/gui/post-ui.cc:291 ../pan/gui/post-ui.cc:300 #, fuzzy, c-format msgid "Error setting spellchecker: %s" msgstr "Er is een fout opgetreden bij het schrijven naar de socket: %s" #: ../pan/gui/post-ui.cc:419 #, fuzzy msgid "_Profile" msgstr "Profiel" #: ../pan/gui/post-ui.cc:420 #, fuzzy msgid "Set Editor" msgstr "Editor" #: ../pan/gui/post-ui.cc:422 #, fuzzy msgid "_Send Article" msgstr "/_Ga naar/_Ouder-artikel" #: ../pan/gui/post-ui.cc:422 #, fuzzy msgid "Send Article Now" msgstr "Nu verzenden" #: ../pan/gui/post-ui.cc:423 #, fuzzy msgid "_Send and Save Articles to NZB" msgstr "Pan: Opslaan als" #: ../pan/gui/post-ui.cc:423 #, fuzzy msgid "Send and Save Articles to NZB" msgstr "Pan: Opslaan als" #: ../pan/gui/post-ui.cc:424 #, fuzzy msgid "Set Character _Encoding..." msgstr "_Codering:" #: ../pan/gui/post-ui.cc:425 #, fuzzy msgid "Set Content _Transfer Encoding..." msgstr "_Codering:" #: ../pan/gui/post-ui.cc:426 #, fuzzy msgid "Sa_ve Draft" msgstr "Bezig met opslaan artikelen" #: ../pan/gui/post-ui.cc:426 msgid "Save as a Draft for Future Posting" msgstr "" #: ../pan/gui/post-ui.cc:427 #, fuzzy msgid "_Open Draft..." msgstr "/Artikel _lezen" #: ../pan/gui/post-ui.cc:427 #, fuzzy msgid "Open an Article Draft" msgstr "/Artikel _lezen" #: ../pan/gui/post-ui.cc:432 #, fuzzy msgid "_Rot13" msgstr "Rot13" #: ../pan/gui/post-ui.cc:432 msgid "Rot13 Selected Text" msgstr "Geselecteerde tekst Rot13-coderen" #: ../pan/gui/post-ui.cc:433 #, fuzzy msgid "Run _Editor" msgstr "Editor" #: ../pan/gui/post-ui.cc:433 #, fuzzy msgid "Run Editor" msgstr "Editor" #: ../pan/gui/post-ui.cc:435 msgid "Add _Files to Queue" msgstr "" #: ../pan/gui/post-ui.cc:435 msgid "Add Files to Queue" msgstr "" #: ../pan/gui/post-ui.cc:450 ../pan/gui/post-ui.cc:451 #, fuzzy msgid "Remove from Queue" msgstr "Nieuwe server" #: ../pan/gui/post-ui.cc:455 ../pan/gui/post-ui.cc:456 #, fuzzy msgid "Clear List" msgstr "Selecteer een filter:" #: ../pan/gui/post-ui.cc:460 ../pan/gui/post-ui.cc:461 #, fuzzy msgid "Select Needed Parts" msgstr "Selecteer een lettertype" #: ../pan/gui/post-ui.cc:465 ../pan/gui/post-ui.cc:466 #: ../pan/gui/task-pane.cc:636 ../pan/gui/task-pane.cc:637 msgid "Move Up" msgstr "" #: ../pan/gui/post-ui.cc:470 ../pan/gui/post-ui.cc:471 #: ../pan/gui/task-pane.cc:641 ../pan/gui/task-pane.cc:642 msgid "Move Down" msgstr "" #: ../pan/gui/post-ui.cc:475 ../pan/gui/post-ui.cc:476 msgid "Move to Top" msgstr "" #: ../pan/gui/post-ui.cc:480 ../pan/gui/post-ui.cc:481 #, fuzzy msgid "Move to Bottom" msgstr "Geselecteerde taken onderaan zetten" #: ../pan/gui/post-ui.cc:488 #, fuzzy msgid "_Wrap Text" msgstr "Tekstregels afbreken" #: ../pan/gui/post-ui.cc:488 #, fuzzy msgid "Wrap Text" msgstr "Tekstregels afbreken" #: ../pan/gui/post-ui.cc:489 #, fuzzy msgid "Always Run Editor" msgstr "Editor" #: ../pan/gui/post-ui.cc:490 #, fuzzy msgid "Remember Character Encoding for this Group" msgstr "_Codering:" #: ../pan/gui/post-ui.cc:491 msgid "Thread Attached Replies" msgstr "" #: ../pan/gui/post-ui.cc:492 msgid "PGP-Encrypt the Message" msgstr "" #: ../pan/gui/post-ui.cc:493 msgid "PGP-Sign the Message" msgstr "" #: ../pan/gui/post-ui.cc:494 msgid "Check _Spelling" msgstr "" #: ../pan/gui/post-ui.cc:520 #, fuzzy msgid "New Article's Encoding:" msgstr "/_Artikelscores tonen" #: ../pan/gui/post-ui.cc:530 #, fuzzy msgid "Content Transfer Encoding" msgstr "_Codering:" #: ../pan/gui/post-ui.cc:531 #, fuzzy msgid "New Article's Content Transfer Encoding:" msgstr "/_Artikelscores tonen" #: ../pan/gui/post-ui.cc:711 msgid "Your changes will be lost!" msgstr "" #: ../pan/gui/post-ui.cc:712 msgid "Close this window and lose your changes?" msgstr "" #: ../pan/gui/post-ui.cc:757 ../pan/gui/post-ui.cc:796 msgid "There were problems with this post." msgstr "" #: ../pan/gui/post-ui.cc:759 ../pan/gui/post-ui.cc:798 #: ../pan/gui/post-ui.cc:861 #, fuzzy msgid "Go Back" msgstr "/_Ga naar/Teruglezen" #: ../pan/gui/post-ui.cc:761 msgid "Post Anyway" msgstr "" #. Prompt the user #: ../pan/gui/post-ui.cc:790 #, fuzzy, c-format msgid "" "Message uses characters not specified in charset '%s' - possibly use '%s' " msgstr "" "Er komen karakters voor in dit bericht die niet gespecificeerd zijn in " "karakterset '%s' - mogelijk kunt u '%s' in plaats ervan gebruiken?" #: ../pan/gui/post-ui.cc:813 #, fuzzy msgid "Go _Online" msgstr "Pan is on-line" #: ../pan/gui/post-ui.cc:860 msgid "The file queue is empty, so no files can be saved." msgstr "" #: ../pan/gui/post-ui.cc:1019 msgid "" "No posting server is set for this posting profile.\n" "Please edit the profile via Edit|Manage Posting Profiles." msgstr "" #: ../pan/gui/post-ui.cc:1054 #, fuzzy msgid "Pan is Offline." msgstr "Pan is off-line" #: ../pan/gui/post-ui.cc:1055 msgid "Go online to post the article?" msgstr "" #: ../pan/gui/post-ui.cc:1102 #, c-format msgid "" "Error signing/encrypting your message. Perhaps you misspelled your email-" "address (%s) ?" msgstr "" #: ../pan/gui/post-ui.cc:1267 msgid "Error opening temporary file" msgstr "Er is een fout opgetreden bij het openen van een tijdelijk bestand" #: ../pan/gui/post-ui.cc:1279 #, c-format msgid "Error writing article to temporary file: %s" msgstr "" "Er is een fout opgetreden bij het schrijven van het artikel naar een " "tijdelijk bestand: %s" #: ../pan/gui/post-ui.cc:1298 #, fuzzy, c-format msgid "Error parsing \"external editor\" command line: %s (Command was: %s)" msgstr "" "Er is een fout opgetreden bij het interpreteren van de opdrachtregel voor " "\"externe editor\": %s" #: ../pan/gui/post-ui.cc:1339 #, c-format msgid "Error starting external editor: %s" msgstr "Er is een fout opgetreden bij het starten van de externe editor: %s" #: ../pan/gui/post-ui.cc:1395 #, fuzzy msgid "Open Draft Article" msgstr "/Artikel _lezen" #: ../pan/gui/post-ui.cc:1606 #, fuzzy msgid "Save Draft Article" msgstr "Bezig met opslaan artikelen" #: ../pan/gui/post-ui.cc:1803 #, fuzzy, c-format msgid "Couldn't parse signature command \"%s\": %s" msgstr "Kon ondertekeningsbestand \"%s\" niet lezen: %s" #: ../pan/gui/post-ui.cc:1839 #, fuzzy msgid "Couldn't convert signature to UTF-8." msgstr "" "Het ondertekeningsbestand '%s' kon niet worden omgezet naar UTF-8. De " "ondertekening moet in '%s' zijn" #: ../pan/gui/post-ui.cc:2334 #, fuzzy msgid "F_rom" msgstr "Van" #: ../pan/gui/post-ui.cc:2352 #, fuzzy msgid "_Subject" msgstr "_Onderwerp:" #: ../pan/gui/post-ui.cc:2365 #, fuzzy msgid "_Newsgroups" msgstr "/_Nieuwsgroepen" #: ../pan/gui/post-ui.cc:2379 #, fuzzy msgid "Mail _To" msgstr "E-mail naar" #: ../pan/gui/post-ui.cc:2481 msgid "Delete from Queue" msgstr "" #: ../pan/gui/post-ui.cc:2494 msgid "No." msgstr "" #: ../pan/gui/post-ui.cc:2498 ../pan/gui/post-ui.cc:2592 #: ../pan/gui/post-ui.cc:2633 msgid "Filename" msgstr "Bestandsnaam" #: ../pan/gui/post-ui.cc:2500 msgid "Size (kB)" msgstr "" #: ../pan/gui/post-ui.cc:2600 msgid "The current filename" msgstr "" #: ../pan/gui/post-ui.cc:2604 #, fuzzy msgid "Subject Line" msgstr "Onderwerp" #: ../pan/gui/post-ui.cc:2612 msgid "The current Subject Line" msgstr "" #: ../pan/gui/post-ui.cc:2626 msgid "No. " msgstr "" #: ../pan/gui/post-ui.cc:2630 msgid "Enable/Disable" msgstr "" #: ../pan/gui/post-ui.cc:2664 #, fuzzy msgid "Follo_wup-To" msgstr "Opvolgen-naar" #. i18n: "poster" is a key used by many newsreaders. probably safest to keep this key in english. #: ../pan/gui/post-ui.cc:2673 #, fuzzy msgid "" "The newsgroups where replies to your message should go. This is only needed " "if it differs from the \"Newsgroups\" header.\n" "\n" "To direct all replies to your email address, use \"Followup-To: poster\"" msgstr "" "De nieuwsgroepen waar antwoorden op uw bericht naartoe moeten. Dit is " "slechts nodig wanneer het verschilt van de\n" "\"Nieuwsgroepen\"-koptekst.\n" "Om alle antwoorden naar uw e-mailadres door te verwijzen gebruikt u " "\"Antwoord-naar: poster\"" #: ../pan/gui/post-ui.cc:2679 #, fuzzy msgid "_Reply-To" msgstr "Antwoord-naar" #: ../pan/gui/post-ui.cc:2687 msgid "" "The email account where mail replies to your posted message should go. This " "is only needed if it differs from the \"From\" header." msgstr "" "Het e-mailaccount waar e-mailantwoorden naartoe moeten. Dit is slechts " "nodig wanneer het verschilt van de \"Van\"-koptekst." #: ../pan/gui/post-ui.cc:2693 #, fuzzy msgid "_Custom Headers" msgstr "Aangepaste kopteksten" #: ../pan/gui/post-ui.cc:2717 #, fuzzy msgid "Add \"_User-Agent\" header" msgstr "\"Gebruikersagent\"-koptekst toevoegen" #: ../pan/gui/post-ui.cc:2724 #, fuzzy msgid "Add \"Message-_Id\" header" msgstr "\"Bericht-Id\"-koptekst toevoegen " #: ../pan/gui/post-ui.cc:2855 #, fuzzy msgid "Select Parts" msgstr "Selecteer een lettertype" #: ../pan/gui/post-ui.cc:2866 msgid "_Parts" msgstr "" #: ../pan/gui/post-ui.cc:3022 #, fuzzy msgid "Post Article" msgstr "_Artikel" #: ../pan/gui/post-ui.cc:3043 #, fuzzy msgid "_Message" msgstr "Bericht" #: ../pan/gui/post-ui.cc:3044 #, fuzzy msgid "More _Headers" msgstr "Meer Koppen" #: ../pan/gui/post-ui.cc:3045 #, fuzzy msgid "File _Queue" msgstr "/_Bestand/Sl_uiten" #: ../pan/gui/post-ui.cc:3077 ../pan/gui/profiles-dialog.cc:478 #, no-c-format msgid "On %d, %n wrote:" msgstr "Op %d, schreef %n:" #: ../pan/gui/post-ui.cc:3106 msgid "Add files to queue" msgstr "" #: ../pan/gui/post-ui.cc:3184 msgid "Save Upload Queue as NZB File" msgstr "" #: ../pan/gui/prefs.cc:343 #, fuzzy, c-format msgid "Couldn't parse %s color \"%s\"" msgstr "Kon ondertekeningsopdracht \"%s\" niet interpreteren" #: ../pan/gui/prefs-ui.cc:120 msgid "Grab Key" msgstr "" #: ../pan/gui/prefs-ui.cc:126 #, c-format msgid "" "Press the combination of the keys\n" "you want to use for \"%s\"." msgstr "" #: ../pan/gui/prefs-ui.cc:166 #, fuzzy msgid "Edit Hotkey" msgstr "Filters bewerken" #: ../pan/gui/prefs-ui.cc:228 msgid "Error: Shortkey is invalid!" msgstr "" #: ../pan/gui/prefs-ui.cc:244 #, fuzzy msgid "Error: Shortkey already exists!" msgstr "Een server met die naam bestaat reeds." #: ../pan/gui/prefs-ui.cc:535 #, fuzzy msgid "Show only icons" msgstr "Profielinformatie" #: ../pan/gui/prefs-ui.cc:536 #, fuzzy msgid "Show only text" msgstr "/Beel_d/I_nhoud-paneel tonen" #: ../pan/gui/prefs-ui.cc:537 #, fuzzy msgid "Show icons and text" msgstr "Bijlagen opslaan in _map:" #: ../pan/gui/prefs-ui.cc:576 #, fuzzy msgid "Use GNOME Preferences" msgstr "Pan-voorkeuren" #: ../pan/gui/prefs-ui.cc:577 #, fuzzy msgid "Use KDE Preferences" msgstr "Referenties" #: ../pan/gui/prefs-ui.cc:578 #, fuzzy msgid "Use OS X Preferences" msgstr "Referenties" #: ../pan/gui/prefs-ui.cc:579 #, fuzzy msgid "Use Windows Preferences" msgstr "Pan-voorkeuren" #: ../pan/gui/prefs-ui.cc:580 #, fuzzy msgid "Custom Command:" msgstr "Afdrukopdracht:" #: ../pan/gui/prefs-ui.cc:632 msgid "Disabled" msgstr "" #: ../pan/gui/prefs-ui.cc:633 msgid "Only new (Score == 0)" msgstr "" #: ../pan/gui/prefs-ui.cc:634 #, fuzzy msgid "9999 or more" msgstr "/_Filter/Scores van -9999 (Genegeerd)" #: ../pan/gui/prefs-ui.cc:635 msgid "5000 to 9998" msgstr "" #: ../pan/gui/prefs-ui.cc:636 msgid "1 to 4999" msgstr "" #: ../pan/gui/prefs-ui.cc:637 msgid "-9998 to -1" msgstr "" #: ../pan/gui/prefs-ui.cc:638 #, fuzzy msgid "-9999 or less" msgstr "/_Filter/Scores van -9999 (Genegeerd)" #: ../pan/gui/prefs-ui.cc:702 #, c-format msgid "Select default global charset. Current setting : %s ." msgstr "" #: ../pan/gui/prefs-ui.cc:738 msgid "Global Charset Settings" msgstr "" # queue list #: ../pan/gui/prefs-ui.cc:832 ../pan/gui/task-pane.cc:770 #, fuzzy msgid "State" msgstr "Status" #: ../pan/gui/prefs-ui.cc:866 msgid "Enabled" msgstr "" #: ../pan/gui/prefs-ui.cc:870 #, fuzzy msgid "Column Name" msgstr "Kolom" #: ../pan/gui/prefs-ui.cc:908 #, fuzzy msgid "Pan: Preferences" msgstr "Pan-voorkeuren" #: ../pan/gui/prefs-ui.cc:923 msgid "Mouse" msgstr "Muis" #: ../pan/gui/prefs-ui.cc:925 #, fuzzy msgid "Single-click activates, rather than selects, _groups" msgstr "Een enkele klik selecteert _groepen, maar laadt ze niet" #: ../pan/gui/prefs-ui.cc:927 #, fuzzy msgid "Single-click activates, rather than selects, _articles" msgstr "Een enkele klik selecteert _koppen, maar laadt ze niet" #: ../pan/gui/prefs-ui.cc:930 #, fuzzy msgid "Groups" msgstr "Groepen" #: ../pan/gui/prefs-ui.cc:932 #, fuzzy msgid "Get new headers in subscribed groups on _startup" msgstr "Nieuwe kopteksten in geabonneerde groepen ophalen" #: ../pan/gui/prefs-ui.cc:934 #, fuzzy msgid "Get new headers when _entering group" msgstr "Nieuwe kopteksten ophalen bij het laden van een groe_p" #: ../pan/gui/prefs-ui.cc:936 #, fuzzy msgid "Mark entire group _read when leaving group" msgstr "" "Artikelen van een groep als gele_zen markeren bij het verlaten van de groep" #: ../pan/gui/prefs-ui.cc:938 #, fuzzy msgid "Mark entire group read before getting _new headers" msgstr "" "Artikelen van een groep als gele_zen markeren bij het verlaten van de groep" #: ../pan/gui/prefs-ui.cc:940 #, fuzzy msgid "E_xpand all threads when entering group" msgstr "Nieuwe kopteksten ophalen bij het laden van een groe_p" #: ../pan/gui/prefs-ui.cc:945 #, fuzzy msgid "Articles" msgstr "/_Artikelen" #: ../pan/gui/prefs-ui.cc:947 msgid "Space selects next article rather than next unread" msgstr "" #: ../pan/gui/prefs-ui.cc:949 #, fuzzy msgid "Expand threads upon selection" msgstr "/Be_werken/_Discussies aan selectie toevoegen" #: ../pan/gui/prefs-ui.cc:951 msgid "Always show article deletion confirmation dialog" msgstr "" #: ../pan/gui/prefs-ui.cc:953 #, fuzzy msgid "Smooth scrolling" msgstr "Vloeiend _schuiven met snelheid:" #: ../pan/gui/prefs-ui.cc:958 #, fuzzy msgid "Article Cache" msgstr "Artikelbuffer" #: ../pan/gui/prefs-ui.cc:959 msgid "Clear article cache on shutdown" msgstr "" #: ../pan/gui/prefs-ui.cc:962 msgid "Size of article cache (in MiB) :" msgstr "" #: ../pan/gui/prefs-ui.cc:967 #, fuzzy msgid "File extension for Cached Articles: " msgstr "/_Filter/Ge_lezen artikelen" #: ../pan/gui/prefs-ui.cc:972 msgid "Tabs" msgstr "" #: ../pan/gui/prefs-ui.cc:977 #, fuzzy msgid "_Behavior" msgstr "_Gedrag" #: ../pan/gui/prefs-ui.cc:977 #, fuzzy msgid "Behavior" msgstr "_Gedrag" #: ../pan/gui/prefs-ui.cc:983 #, fuzzy msgid "Language Settings" msgstr "Bezig met ophalen \"%s\"" #. systray and notify popup #: ../pan/gui/prefs-ui.cc:992 #, fuzzy msgid "System Tray Behavior" msgstr "_Gedrag" #: ../pan/gui/prefs-ui.cc:994 msgid "Hide to system tray" msgstr "" #: ../pan/gui/prefs-ui.cc:996 msgid "Start Pan minimized" msgstr "" #: ../pan/gui/prefs-ui.cc:999 #, fuzzy msgid "Show notifications" msgstr "Profielinformatie" #. allow multiple instances (seperate, not communicating with dbus) #: ../pan/gui/prefs-ui.cc:1004 #, fuzzy msgid "Startup Behavior" msgstr "_Gedrag" #: ../pan/gui/prefs-ui.cc:1006 msgid "Allow multiple instances of Pan" msgstr "" #: ../pan/gui/prefs-ui.cc:1011 #, fuzzy msgid "Autosave Article Draft" msgstr "/Artikel _lezen" #: ../pan/gui/prefs-ui.cc:1013 #, fuzzy msgid "Minutes to autosave the current Article Draft: " msgstr "/Artikel _lezen" #: ../pan/gui/prefs-ui.cc:1018 #, fuzzy msgid "Autosave Articles" msgstr "Artikel opslaan als..." #: ../pan/gui/prefs-ui.cc:1020 msgid "Minutes to autosave newsrc files: " msgstr "" #: ../pan/gui/prefs-ui.cc:1026 msgid "_Miscellaneous" msgstr "" #: ../pan/gui/prefs-ui.cc:1026 msgid "Miscellaneous" msgstr "" #: ../pan/gui/prefs-ui.cc:1031 msgid "Pane Layout" msgstr "Paneel-indeling" #: ../pan/gui/prefs-ui.cc:1050 msgid "1=Groups, 2=Headers, 3=Body" msgstr "" #: ../pan/gui/prefs-ui.cc:1052 msgid "1=Groups, 2=Body, 3=Headers" msgstr "" #: ../pan/gui/prefs-ui.cc:1054 msgid "1=Headers, 2=Groups, 3=Body" msgstr "" #: ../pan/gui/prefs-ui.cc:1056 msgid "1=Headers, 2=Body, 3=Groups" msgstr "" #: ../pan/gui/prefs-ui.cc:1058 msgid "1=Body, 2=Groups, 3=Headers" msgstr "" #: ../pan/gui/prefs-ui.cc:1060 msgid "1=Body, 2=Headers, 3=Groups" msgstr "" #: ../pan/gui/prefs-ui.cc:1064 #, fuzzy msgid "Layout" msgstr "Paneel-i_ndeling" #: ../pan/gui/prefs-ui.cc:1069 #, fuzzy msgid "Header Pane Columns" msgstr "Kopteksten-paneel" #: ../pan/gui/prefs-ui.cc:1073 #, fuzzy msgid "_Headers" msgstr "Kopteksten" #: ../pan/gui/prefs-ui.cc:1073 #, fuzzy msgid "Headers" msgstr "Kopteksten" #: ../pan/gui/prefs-ui.cc:1079 msgid "" "This menu lets you configure Pan to take certain actions on your behalf " "automatically, based on a post's score." msgstr "" #: ../pan/gui/prefs-ui.cc:1082 msgid "_Delete posts scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1084 msgid "Mark posts _read scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1086 msgid "_Cache posts scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1088 msgid "Download _attachments of posts scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1091 #, fuzzy msgid "Actions" msgstr "Acties" #: ../pan/gui/prefs-ui.cc:1096 ../pan/gui/prefs-ui.cc:1117 msgid "Fonts" msgstr "Lettertypen" #: ../pan/gui/prefs-ui.cc:1098 msgid "Use custom font in Group Pane:" msgstr "Aangepast lettertype gebruiken in Groeps-paneel:" #: ../pan/gui/prefs-ui.cc:1103 msgid "Use custom font in Header Pane:" msgstr "Aangepast lettertype gebruiken in Koptekst-paneel:" #: ../pan/gui/prefs-ui.cc:1108 msgid "Use custom font in Body Pane:" msgstr "Aangepast lettertype gebruiken in Inhouds-paneel:" #: ../pan/gui/prefs-ui.cc:1113 #, fuzzy msgid "Monospace font:" msgstr "Monospac_e lettertype:" #: ../pan/gui/prefs-ui.cc:1117 #, fuzzy msgid "_Fonts" msgstr "Lettertypen" #: ../pan/gui/prefs-ui.cc:1122 #, fuzzy msgid "Header Pane" msgstr "Kopteksten-paneel" #: ../pan/gui/prefs-ui.cc:1125 ../pan/gui/prefs-ui.cc:1131 #: ../pan/gui/prefs-ui.cc:1137 ../pan/gui/prefs-ui.cc:1143 #: ../pan/gui/prefs-ui.cc:1149 ../pan/gui/prefs-ui.cc:1155 msgid "Text:" msgstr "Tekst:" #: ../pan/gui/prefs-ui.cc:1127 ../pan/gui/prefs-ui.cc:1133 #: ../pan/gui/prefs-ui.cc:1139 ../pan/gui/prefs-ui.cc:1145 #: ../pan/gui/prefs-ui.cc:1151 ../pan/gui/prefs-ui.cc:1157 msgid "Background:" msgstr "Achtergrond:" #: ../pan/gui/prefs-ui.cc:1129 #, fuzzy msgid "Scores of 9999 or more:" msgstr "/_Filter/Scores van -9999 (Genegeerd)" #: ../pan/gui/prefs-ui.cc:1135 msgid "Scores from 5000 to 9998:" msgstr "" #: ../pan/gui/prefs-ui.cc:1141 msgid "Scores from 1 to 4999:" msgstr "" #: ../pan/gui/prefs-ui.cc:1147 msgid "Scores from -9998 to -1:" msgstr "" #: ../pan/gui/prefs-ui.cc:1153 #, fuzzy msgid "Scores of -9999 or less:" msgstr "/_Filter/Scores van -9999 (Genegeerd)" #: ../pan/gui/prefs-ui.cc:1159 msgid "Read collapsed thread:" msgstr "" #: ../pan/gui/prefs-ui.cc:1161 #, fuzzy msgid "Body Pane" msgstr "_Inhoud-paneel" #: ../pan/gui/prefs-ui.cc:1167 #, fuzzy msgid "Quoted text:" msgstr "/Beel_d/Ge_citeerde tekst onderdrukken" #: ../pan/gui/prefs-ui.cc:1168 #, fuzzy msgid "URL:" msgstr "URLs:" #: ../pan/gui/prefs-ui.cc:1169 #, fuzzy msgid "Signature:" msgstr "_Ondertekeningsbestand:" #: ../pan/gui/prefs-ui.cc:1171 #, fuzzy msgid "_Colors" msgstr "Kleuren" #: ../pan/gui/prefs-ui.cc:1171 #, fuzzy msgid "Colors" msgstr "Kleuren" #: ../pan/gui/prefs-ui.cc:1176 #, fuzzy msgid "Preferred Applications" msgstr "Toepassingen" #: ../pan/gui/prefs-ui.cc:1180 #, fuzzy msgid "_Web browser:" msgstr "_Webbrowser (%s is een URL):" #: ../pan/gui/prefs-ui.cc:1183 #, fuzzy msgid "_Mail reader:" msgstr "E-mailserver" #: ../pan/gui/prefs-ui.cc:1185 #, fuzzy msgid "_Text editor:" msgstr "Editor" #: ../pan/gui/prefs-ui.cc:1187 #, fuzzy msgid "_Applications" msgstr "Toepassingen" #: ../pan/gui/prefs-ui.cc:1187 #, fuzzy msgid "Applications" msgstr "Toepassingen" #: ../pan/gui/prefs-ui.cc:1192 ../pan/gui/task-pane.cc:512 #, fuzzy msgid "Encoding" msgstr "_Codering:" #: ../pan/gui/prefs-ui.cc:1196 msgid "Default bytes per file (for encoder): " msgstr "" #: ../pan/gui/prefs-ui.cc:1201 #, fuzzy msgid "_Upload" msgstr "Toepassingen" #: ../pan/gui/prefs-ui.cc:1201 msgid "Upload" msgstr "" #: ../pan/gui/prefs-ui.cc:1219 msgid "_Hotkeys" msgstr "" #: ../pan/gui/prefs-ui.cc:1219 msgid "Hotkeys" msgstr "" #: ../pan/gui/profiles-dialog.cc:83 msgid "Please choose your Email Address according to your PGP key's user id." msgstr "" #: ../pan/gui/profiles-dialog.cc:131 #, fuzzy msgid "Posting Profile" msgstr "Pan: Profiel" #: ../pan/gui/profiles-dialog.cc:143 msgid "Profile Information" msgstr "Profielinformatie" #: ../pan/gui/profiles-dialog.cc:147 msgid "_Profile Name:" msgstr "_Profielnaam:" #: ../pan/gui/profiles-dialog.cc:150 msgid "Required Information" msgstr "Vereiste informatie" #: ../pan/gui/profiles-dialog.cc:154 msgid "_Full Name:" msgstr "_Volledige naam:" #: ../pan/gui/profiles-dialog.cc:158 msgid "" "Your Email Address.\n" "Note that this has to match your PGP Signature's Address\n" "if you want to PGP-Sign or Encrypt your messages correctly." msgstr "" #: ../pan/gui/profiles-dialog.cc:162 msgid "_Email Address:" msgstr "_E-mailadres:" #: ../pan/gui/profiles-dialog.cc:164 #, fuzzy msgid "_Post Articles via:" msgstr "_Artikel" #: ../pan/gui/profiles-dialog.cc:167 #, fuzzy msgid "Signature" msgstr "_Ondertekeningsbestand:" #: ../pan/gui/profiles-dialog.cc:170 #, fuzzy msgid "_Use a Signature" msgstr "_Ondertekeningsbestand:" #: ../pan/gui/profiles-dialog.cc:174 #, fuzzy msgid "Signature File" msgstr "Ondertekeningsbestand selecteren" #: ../pan/gui/profiles-dialog.cc:184 #, fuzzy msgid "Text File" msgstr "/_Ga naar/Volgende _artikel" #: ../pan/gui/profiles-dialog.cc:186 #, fuzzy msgid "Text" msgstr "Tekst:" #: ../pan/gui/profiles-dialog.cc:188 #, fuzzy msgid "Command" msgstr "Afdrukopdracht:" #: ../pan/gui/profiles-dialog.cc:191 #, fuzzy msgid "PGP Signature" msgstr "_Ondertekeningsbestand:" #: ../pan/gui/profiles-dialog.cc:196 #, fuzzy msgid "Signature Type : " msgstr "_Ondertekeningsbestand:" #: ../pan/gui/profiles-dialog.cc:223 msgid "X-Face (Avatar)" msgstr "" #: ../pan/gui/profiles-dialog.cc:226 msgid "" "You can add an avatar icon to your articles with a unique X-Face code. \n" "Add the code without the trailing \"X-Face:\" \n" " if it was generated by a helper program (for example http://www.dairiki.org/" "xface/xface.php)." msgstr "" #: ../pan/gui/profiles-dialog.cc:229 msgid "_X-Face:" msgstr "" #: ../pan/gui/profiles-dialog.cc:231 msgid "Optional Information" msgstr "Optionele infomatie" #: ../pan/gui/profiles-dialog.cc:236 #, fuzzy msgid "" "When posting to Usenet, your article's Message-ID contains a domain name. \n" "You can set a custom domain name here, or leave it blank to let Pan use the " "domain name from your email address." msgstr "" "Als u Usenet gebruikt, bevat uw Bericht-ID een domeinnaam. U kunt hier een " "aanpaste domeinnaam instellen, of het leeg laten zodat Pan het domeinnaam " "van uw emailadres gebruikt." #: ../pan/gui/profiles-dialog.cc:239 msgid "Message-ID _Domain Name:" msgstr "Bericht-ID _domeinnaam:" #: ../pan/gui/profiles-dialog.cc:243 #, c-format msgid "" "%i for Message-ID\n" "%a for Author and Address\n" "%n for Author name\n" "%d for Date" msgstr "" "%i voor Bericht-ID\n" "%a voor Auteur en adres\n" "%n voor Auteurnaam\n" "%d voor Datum" #: ../pan/gui/profiles-dialog.cc:244 msgid "_Attribution:" msgstr "_Toeschrijving:" #: ../pan/gui/profiles-dialog.cc:268 msgid "" "Extra headers to be included in your posts, such as\n" "Reply-To: \"Your Name\"\n" "Organization: Your Organization\n" msgstr "" #: ../pan/gui/profiles-dialog.cc:278 #, fuzzy msgid "E_xtra Headers:" msgstr "Meer kopteksten" #: ../pan/gui/profiles-dialog.cc:323 #, fuzzy msgid "Invalid email address." msgstr "Ongeldig adres \"%s\"" #: ../pan/gui/profiles-dialog.cc:324 msgid "Please use an address of the form joe@somewhere.org" msgstr "" #: ../pan/gui/profiles-dialog.cc:479 msgid "New Profile" msgstr "Nieuw profiel" #: ../pan/gui/profiles-dialog.cc:525 #, fuzzy msgid "Posting Profiles" msgstr "/_Plaatsen/_Profielen voor plaatsing..." #: ../pan/gui/profiles-dialog.cc:541 #, fuzzy msgid "Profiles" msgstr "Profiel" #: ../pan/gui/save-attach-ui.cc:77 ../pan/gui/save-ui.cc:77 #, fuzzy, c-format msgid "" "%g - group as one directory (alt.binaries.pictures.trains)\n" "%G - group as nested directory (/alt/binaries/pictures/trains)\n" "%s - subject line excerpt\n" "%S - subject line\n" " \n" "\"/home/user/News/Pan/%g\" becomes\n" "\"/home/user/News/Pan/alt.binaries.pictures.trains\", and\n" "\"/home/user/News/Pan/%G\" becomes\n" "\"/home/user/News/Pan/alt/binaries/pictures/trains\"," msgstr "" "%g - groep als één map (alt.binaries.pictures.trains)\n" "%G - groep als geneste map (/alt/binaries/pictures/trains)\n" " \n" "\"/home/gebruiker/News/Pan/%g\" wordt\n" "\"/home/gebruiker/News/Pan/alt.binaries.pictures.trains\", and\n" "\"/home/gebruiker/News/Pan/%G\" wordt\n" "\"/home/gebruiker/News/Pan/alt/binaries/pictures/trains\"," #: ../pan/gui/save-attach-ui.cc:223 ../pan/gui/save-ui.cc:242 msgid "Add to the queue sorted by date posted" msgstr "" #: ../pan/gui/save-attach-ui.cc:224 ../pan/gui/save-ui.cc:243 #, fuzzy msgid "Add to the front of the queue" msgstr "Taak toevoegen _onderaan het taakoverzicht" #: ../pan/gui/save-attach-ui.cc:225 ../pan/gui/save-ui.cc:244 #, fuzzy msgid "Add to the back of the queue" msgstr "Taak toevoegen _onderaan het taakoverzicht" #: ../pan/gui/save-attach-ui.cc:257 #, fuzzy msgid "Pan: Save Attachments" msgstr "Bijlagen op_slaan" #: ../pan/gui/save-attach-ui.cc:282 ../pan/gui/save-attach-ui.cc:300 #: ../pan/gui/save-ui.cc:296 ../pan/gui/save-ui.cc:314 #, fuzzy msgid "_Location:" msgstr "Acties" #: ../pan/gui/save-attach-ui.cc:286 ../pan/gui/save-ui.cc:300 #, fuzzy msgid "Save Articles" msgstr "Artikel opslaan als..." #: ../pan/gui/save-attach-ui.cc:303 ../pan/gui/save-ui.cc:317 #, c-format msgid "_Group's path: %s" msgstr "" #: ../pan/gui/save-attach-ui.cc:314 ../pan/gui/save-ui.cc:332 msgid "_Priority:" msgstr "" #: ../pan/gui/save-ui.cc:233 #, fuzzy msgid "Save attachments" msgstr "Bijlagen op_slaan" #: ../pan/gui/save-ui.cc:234 #, fuzzy msgid "Save text" msgstr "Te_kst opslaan" #: ../pan/gui/save-ui.cc:235 #, fuzzy msgid "Save attachments and text" msgstr "Bijlagen opslaan in _map:" #: ../pan/gui/save-ui.cc:271 #, fuzzy msgid "Pan: Save Articles" msgstr "Pan: Opslaan als" #: ../pan/gui/save-ui.cc:328 #, fuzzy msgid "_Action:" msgstr "Acties" #: ../pan/gui/score-add-ui.cc:89 msgid "is more than" msgstr "" #: ../pan/gui/score-add-ui.cc:90 msgid "is at most" msgstr "" #: ../pan/gui/score-add-ui.cc:112 #, fuzzy msgid "increase the article's score by" msgstr "/Beel_d/Regels in artikel a_fbreken" #: ../pan/gui/score-add-ui.cc:113 #, fuzzy msgid "decrease the article's score by" msgstr "/Beel_d/Regels in artikel a_fbreken" #: ../pan/gui/score-add-ui.cc:114 #, fuzzy msgid "set the article's score to" msgstr "score zetten op" #: ../pan/gui/score-add-ui.cc:115 #, fuzzy msgid "watch the article (set its score to 9999)" msgstr "_Bewaken (zet score op 9999)" #: ../pan/gui/score-add-ui.cc:116 #, fuzzy msgid "ignore the article (set its score to -9999)" msgstr "_Negeren (zet score op -9999)" #: ../pan/gui/score-add-ui.cc:141 #, fuzzy msgid "References" msgstr "_Referenties:" #: ../pan/gui/score-add-ui.cc:142 #, fuzzy msgid "Line Count" msgstr "Regel %d, Kolom %d" #: ../pan/gui/score-add-ui.cc:143 msgid "Byte Count" msgstr "" #: ../pan/gui/score-add-ui.cc:144 msgid "Crosspost Group Count" msgstr "" #: ../pan/gui/score-add-ui.cc:145 msgid "Age (in days)" msgstr "" #: ../pan/gui/score-add-ui.cc:167 msgid "for the next month" msgstr "" #: ../pan/gui/score-add-ui.cc:168 msgid "for the next six months" msgstr "" #: ../pan/gui/score-add-ui.cc:169 #, fuzzy msgid "forever" msgstr "Server" #: ../pan/gui/score-add-ui.cc:194 msgid "contains" msgstr "bevat" #: ../pan/gui/score-add-ui.cc:195 #, fuzzy msgid "doesn't contain" msgstr "bevat niet" #: ../pan/gui/score-add-ui.cc:196 msgid "is" msgstr "is" #: ../pan/gui/score-add-ui.cc:197 #, fuzzy msgid "isn't" msgstr "is niet" #: ../pan/gui/score-add-ui.cc:198 msgid "starts with" msgstr "begint met" #: ../pan/gui/score-add-ui.cc:199 msgid "ends with" msgstr "eindigt met" #: ../pan/gui/score-add-ui.cc:200 #, fuzzy msgid "matches regex" msgstr "komt overeen met de reguliere expressie" #: ../pan/gui/score-add-ui.cc:481 #, fuzzy msgid "Another rule already sets this article's score." msgstr "/Beel_d/Regels in artikel a_fbreken" #: ../pan/gui/score-add-ui.cc:482 msgid "You may want to go back or delete the old rule." msgstr "" #: ../pan/gui/score-add-ui.cc:553 msgid "Add and Re_score" msgstr "Toevoegen en _herscoren" #: ../pan/gui/score-add-ui.cc:604 ../pan/gui/score-add-ui.cc:624 #, fuzzy msgid "New Scoring Rule" msgstr "Nieuwe score" #: ../pan/gui/score-add-ui.cc:635 msgid "If the group name" msgstr "" #: ../pan/gui/score-add-ui.cc:642 #, fuzzy msgid "And the article's" msgstr "Regels per artikel:" #: ../pan/gui/score-view-ui.cc:56 msgid "Close and Re_score" msgstr "Sluiten en _herscoren" #: ../pan/gui/score-view-ui.cc:154 #, fuzzy, c-format msgid "File %s, Lines %d - %d" msgstr "scorebestand %s, regel %d: %s (%s)" #: ../pan/gui/score-view-ui.cc:182 #, fuzzy msgid "Pan: Article's Scores" msgstr "Pan: Artikelscores tonen" #: ../pan/gui/score-view-ui.cc:208 #, fuzzy msgid "Add" msgstr "toevoegen" #: ../pan/gui/score-view-ui.cc:213 msgid "New Score" msgstr "Nieuwe score" #: ../pan/gui/score-view-ui.cc:218 msgid "Criteria" msgstr "Criteria" #: ../pan/gui/score-view-ui.cc:241 #, fuzzy msgid "Add a New Scoring Rule" msgstr "Een nieuwe score toevoegen" #: ../pan/gui/score-view-ui.cc:248 #, fuzzy msgid "Remove the Selected Scoring Rule" msgstr "De geselecteerde score verwijderen" #: ../pan/gui/server-ui.cc:221 msgid "Please specify the server's address." msgstr "" #: ../pan/gui/server-ui.cc:264 msgid "Import SSL certificate (PEM format) from File" msgstr "" #. create the dialog #: ../pan/gui/server-ui.cc:290 ../pan/gui/server-ui.cc:869 #, fuzzy msgid "Add a Server" msgstr "Nieuwe server toevoegen" #: ../pan/gui/server-ui.cc:290 ../pan/gui/server-ui.cc:875 #, fuzzy msgid "Edit a Server's Settings" msgstr "Andere instellingen" #: ../pan/gui/server-ui.cc:310 #, fuzzy msgid "Location" msgstr "Acties" #: ../pan/gui/server-ui.cc:314 msgid "The news server's actual address, e.g. \"news.mynewsserver.com\"" msgstr "" "Het feitelijke adres van de nieuwsserver, bijv \"niews.mijnnieuwsserver.com\"" #: ../pan/gui/server-ui.cc:315 msgid "_Address:" msgstr "_Adres:" #: ../pan/gui/server-ui.cc:319 #, fuzzy msgid "The news server's port number. Typically 119." msgstr "De poort van de nieuwsserver. Dit is bijna alijd 119." #: ../pan/gui/server-ui.cc:320 msgid "Por_t:" msgstr "Poor_t:" #: ../pan/gui/server-ui.cc:323 msgid "Login (if Required)" msgstr "" #: ../pan/gui/server-ui.cc:327 msgid "_Username:" msgstr "_Gebruikersnaam:" #: ../pan/gui/server-ui.cc:328 msgid "" "The username to give the server when asked. If your server doesn't require " "authentication, you can leave this blank." msgstr "" #: ../pan/gui/server-ui.cc:332 msgid "_Password:" msgstr "_Wachtwoord:" #: ../pan/gui/server-ui.cc:333 msgid "" "The password to give the server when asked. If your server doesn't require " "authentication, you can leave this blank." msgstr "" #: ../pan/gui/server-ui.cc:336 #, fuzzy msgid "Settings" msgstr "Bezig met ophalen \"%s\"" #: ../pan/gui/server-ui.cc:343 msgid "Connection _Limit:" msgstr "Verbindings_limiet:" #: ../pan/gui/server-ui.cc:347 msgid "After Two Weeks" msgstr "" #: ../pan/gui/server-ui.cc:348 msgid "After One Month" msgstr "" #: ../pan/gui/server-ui.cc:349 msgid "After Two Months" msgstr "" #: ../pan/gui/server-ui.cc:350 msgid "After Three Months" msgstr "" #: ../pan/gui/server-ui.cc:351 msgid "After Six Months" msgstr "" #: ../pan/gui/server-ui.cc:352 #, fuzzy msgid "Never Expire Old Articles" msgstr "Nooit _verlopen" #: ../pan/gui/server-ui.cc:366 #, fuzzy msgid "E_xpire Old Articles:" msgstr "Geselecteerde artikelen ophalen" #: ../pan/gui/server-ui.cc:370 #, fuzzy msgid "Primary" msgstr "Prioriteit" #: ../pan/gui/server-ui.cc:371 msgid "Fallback" msgstr "" #: ../pan/gui/server-ui.cc:385 #, fuzzy msgid "Server Rank:" msgstr "Servers" #: ../pan/gui/server-ui.cc:389 msgid "" "Fallback servers are used for articles that can't be found on the " "primaries. One common approach is to use free servers as primaries and " "subscription servers as fallbacks." msgstr "" #: ../pan/gui/server-ui.cc:396 msgid "Security" msgstr "" #: ../pan/gui/server-ui.cc:401 msgid "Use Plaintext (Unsecured) Connections" msgstr "" #: ../pan/gui/server-ui.cc:402 #, fuzzy msgid "Use Secure SSL Connections" msgstr "Geen verbindingen" #: ../pan/gui/server-ui.cc:418 msgid "TLS (SSL) Options:" msgstr "" #: ../pan/gui/server-ui.cc:423 msgid "" "You can set the option for using/disabling secure SSL/TLS connections here. " "If you enable SSL/TLS, your data is encrypted and secure. It is encouraged " "to use this option for privacy reasons." msgstr "" #: ../pan/gui/server-ui.cc:428 msgid "Always trust this server's certificate" msgstr "" #: ../pan/gui/server-ui.cc:602 #, c-format msgid "Really delete \"%s\"?" msgstr "" #: ../pan/gui/server-ui.cc:691 msgid "No information available." msgstr "" #: ../pan/gui/server-ui.cc:697 #, c-format msgid "Server Certificate for '%s'" msgstr "" #: ../pan/gui/server-ui.cc:795 #, c-format msgid "Really delete certificate for \"%s\"?" msgstr "" #. dialog #: ../pan/gui/server-ui.cc:822 ../pan/gui/server-ui.cc:843 #: ../pan/gui/server-ui.cc:941 msgid "Servers" msgstr "Servers" #: ../pan/gui/server-ui.cc:882 #, fuzzy msgid "Remove a Server" msgstr "Nieuwe server" #. dialog #: ../pan/gui/server-ui.cc:915 msgid "SSL Certificates" msgstr "" #: ../pan/gui/server-ui.cc:936 msgid "Certificates" msgstr "" #: ../pan/gui/server-ui.cc:967 msgid "Import Certificate" msgstr "" #: ../pan/gui/server-ui.cc:973 msgid "Inspect Certificate" msgstr "" #: ../pan/gui/server-ui.cc:980 #, fuzzy msgid "Remove Certificate" msgstr "Nieuwe server" #: ../pan/gui/task-pane.cc:143 #, c-format msgid "" "\n" "Upload\n" "\n" "Subject: \"%s\"\n" "From: %s\n" "Groups: %s\n" "Sourcefile: %s\n" msgstr "" #: ../pan/gui/task-pane.cc:155 #, c-format msgid "" "\n" "Download\n" "\n" "Subject: \"%s\"\n" "From: %s\n" "Date: %s\n" "Groups: %s\n" "Save Path: %s\n" msgstr "" #: ../pan/gui/task-pane.cc:157 #, fuzzy msgid "unknown" msgstr "Onbekend" #: ../pan/gui/task-pane.cc:263 msgid "Choose new destination for selected Tasks" msgstr "" #: ../pan/gui/task-pane.cc:417 #, fuzzy, c-format msgid "Pan: Tasks (%d Queued, %d Running, %d Stopped)" msgstr "Pan %s Taakbeheer (%d in wachtrij, %d draaiende, %d gestopt)" #: ../pan/gui/task-pane.cc:419 #, fuzzy, c-format msgid "Pan: Tasks (%d Queued, %d Running)" msgstr "Pan %s Taakbeheer (%d in wachtrij, %d draaiende)" #: ../pan/gui/task-pane.cc:421 #, fuzzy, c-format msgid "Pan: Tasks" msgstr "Pan: Taakbeheer" #: ../pan/gui/task-pane.cc:446 #, fuzzy, c-format msgid "%lu selected, %s" msgstr "(%u geselecteerd)" #: ../pan/gui/task-pane.cc:510 msgid "Running" msgstr "Draaiende" #: ../pan/gui/task-pane.cc:511 #, fuzzy msgid "Decoding" msgstr "Decoderen van \"%s\"" #: ../pan/gui/task-pane.cc:513 msgid "Queued for Decode" msgstr "" #: ../pan/gui/task-pane.cc:514 msgid "Queued for Encode" msgstr "" #: ../pan/gui/task-pane.cc:515 msgid "Queued" msgstr "In de wachtrij" #: ../pan/gui/task-pane.cc:516 msgid "Stopped" msgstr "Gestopt" #: ../pan/gui/task-pane.cc:517 msgid "Removing" msgstr "Verwijderen" #: ../pan/gui/task-pane.cc:546 #, fuzzy, c-format msgid "%d%% Done" msgstr "% Klaar" #: ../pan/gui/task-pane.cc:552 #, fuzzy, c-format msgid "%d:%02d:%02d Remaining (%d @ %lu KiB/s)" msgstr "%d:%02d:%02d (%lu KiB/s)" #: ../pan/gui/task-pane.cc:646 ../pan/gui/task-pane.cc:647 #, fuzzy msgid "Move To Top" msgstr "Geselecteerde taken onderaan zetten" #: ../pan/gui/task-pane.cc:651 ../pan/gui/task-pane.cc:652 #, fuzzy msgid "Move To Bottom" msgstr "Geselecteerde taken onderaan zetten" #: ../pan/gui/task-pane.cc:656 ../pan/gui/task-pane.cc:657 #, fuzzy msgid "Stop Task" msgstr "Geen taken" #: ../pan/gui/task-pane.cc:661 ../pan/gui/task-pane.cc:662 #, fuzzy msgid "Delete Task" msgstr "Spam verwijderen" #: ../pan/gui/task-pane.cc:666 ../pan/gui/task-pane.cc:667 #, fuzzy msgid "Restart Task" msgstr "Geselecteerde taken herstarten" #: ../pan/gui/task-pane.cc:671 ../pan/gui/task-pane.cc:672 msgid "Change Download Destination" msgstr "" #: ../pan/gui/task-pane.cc:729 #, fuzzy msgid "_Online" msgstr "Pan is on-line" #: ../pan/gui/task-pane.cc:746 #, fuzzy msgid "Restart Tasks" msgstr "Geselecteerde taken herstarten" #: ../pan/gui/task-pane.cc:748 #, fuzzy msgid "Stop Tasks" msgstr "Geen taken" #: ../pan/gui/task-pane.cc:750 #, fuzzy msgid "Delete Tasks" msgstr "Spam verwijderen" #: ../pan/gui/url.cc:123 #, fuzzy, c-format msgid "Error starting URL: %s (Command was: %s)" msgstr "" "Er is een fout opgetreden bij het interpreteren van de opdrachtregel voor " "\"web-browser\": %s" #: ../pan/tasks/decoder.cc:115 #, fuzzy, c-format msgid "Couldn't save file \"%s\": %s" msgstr "Kon ondertekeningsbestand \"%s\" niet lezen: %s" #: ../pan/tasks/decoder.cc:137 ../pan/tasks/encoder.cc:136 msgid "Error initializing uulib" msgstr "" #: ../pan/tasks/decoder.cc:152 ../pan/tasks/socket-impl-gio.cc:352 #: ../pan/tasks/socket-impl-openssl.cc:634 #, fuzzy, c-format msgid "Error reading from %s: %s" msgstr "Er is een fout opgetreden bij het lezen van de socket: %s" #: ../pan/tasks/decoder.cc:192 #, c-format msgid "Saved \"%s\"" msgstr "\"%s\" Bewaard" #: ../pan/tasks/decoder.cc:199 #, fuzzy, c-format msgid "" "Error saving \"%s\":\n" "%s." msgstr "Er is een fout opgetreden bij het lezen van bestand \"%s\": %s" #: ../pan/tasks/decoder.cc:314 ../pan/tasks/task-article.cc:350 #, fuzzy, c-format msgid "Decoding %s" msgstr "Decoderen van \"%s\"" #: ../pan/tasks/encoder.cc:102 ../pan/tasks/encoder.cc:155 #, fuzzy, c-format msgid "Error loading %s from cache." msgstr "Fout bij lezen van socket." #: ../pan/tasks/encoder.cc:177 #, fuzzy, c-format msgid "Error encoding %s: %s" msgstr "Er is een fout opgetreden bij het lezen van bestand \"%s\": %s" #: ../pan/tasks/encoder.cc:269 #, fuzzy, c-format msgid "Encoding %s" msgstr "_Codering:" #: ../pan/tasks/nntp.cc:126 #, c-format msgid "%s requires a username, but none is set." msgstr "" #: ../pan/tasks/nntp.cc:139 #, c-format msgid "%s requires a password, but none is set." msgstr "" #: ../pan/tasks/nntp.cc:205 #, c-format msgid "Sending \"%s\" to %s returned an error: %s" msgstr "" #: ../pan/tasks/nntp.cc:228 #, c-format msgid "Sending \"%s\" to %s returned an unrecognized response: \"%s\"" msgstr "" #: ../pan/tasks/nntp-pool.cc:222 #, fuzzy, c-format msgid "Unable to connect to \"%s\"" msgstr "Kan niet verbinden met e-mailserver \"%*.*s\"" #: ../pan/tasks/socket-impl-gio.cc:173 ../pan/tasks/socket-impl-gio.cc:211 #: ../pan/tasks/socket-impl-openssl.cc:214 #: ../pan/tasks/socket-impl-openssl.cc:252 #, fuzzy, c-format msgid "Error connecting to \"%s\"" msgstr "Er is een fout opgetreden bij het lezen van bestand \"%s\": %s" #: ../pan/tasks/socket-impl-gio.cc:351 ../pan/tasks/socket-impl-openssl.cc:633 #, fuzzy msgid "Unknown Error" msgstr "Onbekend" #: ../pan/tasks/task-article.cc:61 ../pan/tasks/task-article.cc:156 #: ../pan/tasks/task-article.cc:159 #, fuzzy, c-format msgid "Saving %s" msgstr "Bewaren \"%s\"" #: ../pan/tasks/task-article.cc:63 #, fuzzy, c-format msgid "Reading %s" msgstr "Lezen" #: ../pan/tasks/task-article.cc:322 #, c-format msgid "Article \"%s\" is incomplete -- the news server(s) don't have part %s" msgstr "" #: ../pan/tasks/task-groups.cc:40 #, fuzzy, c-format msgid "Getting group list from \"%s\"" msgstr "Bezig met ophalen van groepen van server \"%s\"" # binnengehaald/opgehaald/verkregen/opgeslagen #: ../pan/tasks/task-groups.cc:122 #, fuzzy, c-format msgid "Fetched %lu Groups" msgstr "%u groepen opgehaald" #: ../pan/tasks/task-post.cc:35 #, fuzzy, c-format msgid "Posting \"%s\"" msgstr "Bezig met ophalen \"%s\"" #: ../pan/tasks/task-post.cc:76 #, fuzzy, c-format msgid "Posting of \"%s\" failed: %s" msgstr "Ophalen van inhoud van artikel \"%s\" mislukt: %s" #: ../pan/tasks/task-post.cc:81 #, c-format msgid "Posting of \"%s\" succesful: %s" msgstr "" #: ../pan/tasks/task-upload.cc:51 #, fuzzy, c-format msgid "Uploading %s" msgstr "Lezen" #: ../pan/tasks/task-upload.cc:249 #, c-format msgid "Uploading %s - Part %d of %d" msgstr "" #: ../pan/tasks/task-upload.cc:251 #, c-format msgid "Uploading Message body with Subject \"%s\"" msgstr "" #: ../pan/tasks/task-upload.cc:308 #, c-format msgid "Posting of File %s (Part %d of %d) failed: No Posts allowed by server." msgstr "" #: ../pan/tasks/task-upload.cc:316 #, fuzzy, c-format msgid "Posting of File %s (Part %d of %d) failed: %s" msgstr "Ophalen van inhoud van artikel \"%s\" mislukt: %s" #: ../pan/tasks/task-upload.cc:326 ../pan/tasks/task-upload.cc:333 #, c-format msgid "Posting of file %s (Part %d of %d) succesful: %s" msgstr "" #: ../pan/tasks/task-upload.cc:343 #, fuzzy, c-format msgid "Posting of file %s succesful: %s" msgstr "Ophalen van inhoud van artikel \"%s\" mislukt: %s" #: ../pan/tasks/task-upload.cc:347 #, c-format msgid "" "Posting of file %s not completely successful: Check the log (right-click on " "list item) !" msgstr "" #: ../pan/tasks/task-upload.cc:364 #, c-format msgid "" "Posting of file %s not successful: Check the log (right-click on list item) !" msgstr "" #: ../pan/tasks/task-xover.cc:79 #, c-format msgid "Getting all headers for \"%s\"" msgstr "Bezig met ophalen alle kopteksten voor \"%s\"" #: ../pan/tasks/task-xover.cc:81 #, c-format msgid "Getting new headers for \"%s\"" msgstr "Bezig met ophalen nieuwe kopteksten voor \"%s\"" #. SAMPLE #: ../pan/tasks/task-xover.cc:83 #, c-format msgid "Sampling headers for \"%s\"" msgstr "Bezig met ophalen klaarmaken van kopteksten voor \"%s\"" #: ../pan/tasks/task-xover.cc:369 #, fuzzy, c-format msgid "%s (%lu parts, %lu articles)" msgstr " (%lu regels in %lu artikelen)" #: ../pan/tasks/task-xoverinfo.cc:78 #, fuzzy, c-format msgid "Getting header counts for \"%s\"" msgstr "Bezig met ophalen alle kopteksten voor \"%s\"" #: ../pan/usenet-utils/filter-info.cc:163 #, fuzzy msgid "article doesn't have attachments" msgstr "Artikel heeft geen complete bijlagen" #: ../pan/usenet-utils/filter-info.cc:167 #, fuzzy msgid "the article has attachments" msgstr "Artikel heeft geen bijlagen" #: ../pan/usenet-utils/filter-info.cc:171 #, fuzzy msgid "the article isn't cached locally" msgstr "Artikelinhoud niet lokaal gebufferd" #: ../pan/usenet-utils/filter-info.cc:175 #, fuzzy msgid "the article is cached locally" msgstr "Artikelinhoud is lokaal gebufferd" #: ../pan/usenet-utils/filter-info.cc:179 #, fuzzy msgid "the article wasn't posted by you" msgstr "Artikel is niet door mij geplaatst" #: ../pan/usenet-utils/filter-info.cc:183 #, fuzzy msgid "the article was posted by you" msgstr "Artikel is door mij geplaatst" #: ../pan/usenet-utils/filter-info.cc:187 #, fuzzy msgid "the article has been read" msgstr "Artikel is ongelezen" #: ../pan/usenet-utils/filter-info.cc:191 #, fuzzy msgid "the article hasn't been read" msgstr "Artikel is ongelezen" #: ../pan/usenet-utils/filter-info.cc:195 #, fuzzy, c-format msgid "the article is less than %ld bytes long" msgstr "Artikel is minder dan %d byte lang" #: ../pan/usenet-utils/filter-info.cc:200 #, fuzzy, c-format msgid "the article is at least %ld bytes long" msgstr "Artikel is minder dan %d byte lang" #: ../pan/usenet-utils/filter-info.cc:205 #, fuzzy, c-format msgid "the article is less than %ld lines long" msgstr "Artikel is minder dan %d regels lang" #: ../pan/usenet-utils/filter-info.cc:210 #, fuzzy, c-format msgid "the article is at least %ld lines long" msgstr "Artikel is minder dan %d regels lang" #: ../pan/usenet-utils/filter-info.cc:215 #, fuzzy, c-format msgid "the article is less than %ld days old" msgstr "Artikel is meer dan %d dagen oud" #: ../pan/usenet-utils/filter-info.cc:220 #, fuzzy, c-format msgid "the article is at least %ld days old" msgstr "Artikel is tenminste N dagen _oud:" #: ../pan/usenet-utils/filter-info.cc:225 #, fuzzy, c-format msgid "the article was posted to less than %ld groups" msgstr "Artikel is geplaatst in minder dan %d groepen" #: ../pan/usenet-utils/filter-info.cc:230 #, fuzzy, c-format msgid "the article was posted to at least %ld groups" msgstr "Artikel is in meer dan N groepen ge_plaatst:" #: ../pan/usenet-utils/filter-info.cc:235 #, fuzzy, c-format msgid "the article's score is less than %ld" msgstr "score zetten op" #: ../pan/usenet-utils/filter-info.cc:240 #, fuzzy, c-format msgid "the article's score is %ld or higher" msgstr "score zetten op" #: ../pan/usenet-utils/filter-info.cc:249 #: ../pan/usenet-utils/filter-info.cc:259 #, fuzzy, c-format msgid "%s doesn't contain \"%s\"" msgstr "bevat niet" #: ../pan/usenet-utils/filter-info.cc:250 #: ../pan/usenet-utils/filter-info.cc:260 #, c-format msgid "%s isn't \"%s\"" msgstr "" #: ../pan/usenet-utils/filter-info.cc:251 #: ../pan/usenet-utils/filter-info.cc:261 #, fuzzy, c-format msgid "%s doesn't begin with \"%s\"" msgstr "eindigt niet met" #: ../pan/usenet-utils/filter-info.cc:252 #: ../pan/usenet-utils/filter-info.cc:262 #, fuzzy, c-format msgid "%s doesn't end with \"%s\"" msgstr "eindigt niet met" #: ../pan/usenet-utils/filter-info.cc:253 #: ../pan/usenet-utils/filter-info.cc:263 #, c-format msgid "%s doesn't match the regex \"%s\"" msgstr "" #: ../pan/usenet-utils/filter-info.cc:275 #, fuzzy, c-format msgid "%s contains \"%s\"" msgstr "bevat" #: ../pan/usenet-utils/filter-info.cc:276 #, c-format msgid "%s is \"%s\"" msgstr "" #: ../pan/usenet-utils/filter-info.cc:277 #, c-format msgid "%s begins with \"%s\"" msgstr "" #: ../pan/usenet-utils/filter-info.cc:278 #, fuzzy, c-format msgid "%s ends with \"%s\"" msgstr "eindigt met" #: ../pan/usenet-utils/filter-info.cc:279 #, fuzzy, c-format msgid "%s matches the regex \"%s\"" msgstr "komt overeen met de reguliere expressie" #: ../pan/usenet-utils/filter-info.cc:285 msgid "Any of these tests fail:" msgstr "" #: ../pan/usenet-utils/filter-info.cc:292 msgid "All of these tests pass:" msgstr "" #: ../pan/usenet-utils/filter-info.cc:299 msgid "None of these tests pass:" msgstr "" #: ../pan/usenet-utils/filter-info.cc:306 msgid "Any of these tests pass:" msgstr "" #: ../pan/usenet-utils/gnksa.cc:878 #, c-format msgid "No email address provided; generating message-id with domain \"%s\"" msgstr "" "Geen e-mailadres opgegeven; bericht-ID met domein \"%s\" wordt gegenereerd" #: ../pan/usenet-utils/message-check.cc:124 #, fuzzy msgid "Warning: Reply seems to be top-posted." msgstr "WAARSCHUWING: Het antwoord lijkt boven het citaat te staan." #: ../pan/usenet-utils/message-check.cc:145 #, fuzzy msgid "Warning: The signature marker should be \"-- \", not \"--\"." msgstr "WAARSCHUWING: Ondertekening-markering moet zijn \"-- \", niet \"--\"." #: ../pan/usenet-utils/message-check.cc:162 #, fuzzy msgid "Warning: Signature prefix with no signature." msgstr "WAARSCHUWING: Ondertekening-voorvoegsel zonder ondertekening" #: ../pan/usenet-utils/message-check.cc:167 #, fuzzy msgid "Warning: Signature is more than 4 lines long." msgstr "WAARSCHUWING: ondertekening is langer dan 4 regels" #: ../pan/usenet-utils/message-check.cc:172 #, fuzzy msgid "Warning: Signature is more than 80 characters wide." msgstr "WAARSCHUWING: ondertekening is meer dan 80 tekens breed." #: ../pan/usenet-utils/message-check.cc:198 #, fuzzy, c-format msgid "Warning: %d line is more than 80 characters wide." msgid_plural "Warning: %d lines are more than 80 characters wide." msgstr[0] "WAARSCHUWING: %d regels zijn meer dan 80 tekens breed." msgstr[1] "WAARSCHUWING: %d regels zijn meer dan 80 tekens breed." #: ../pan/usenet-utils/message-check.cc:223 #, fuzzy msgid "Error: Message is empty." msgstr "FOUT: bericht is leeg." #: ../pan/usenet-utils/message-check.cc:258 #, fuzzy msgid "Warning: The message is entirely quoted text!" msgstr "WAARSCHUWING: Het bericht is volledig geciteerd!" #: ../pan/usenet-utils/message-check.cc:259 #, fuzzy msgid "Warning: The message is mostly quoted text." msgstr "WAARSCHUWING: Het grootste deel van de tekst is geciteerd" #: ../pan/usenet-utils/message-check.cc:309 #, fuzzy msgid "Error: Message appears to have no new content." msgstr "FOUT: Bericht heeft geen nieuwe inhoud." #: ../pan/usenet-utils/message-check.cc:344 #: ../pan/usenet-utils/message-check.cc:383 #, c-format msgid "" "Warning: The posting profile's server doesn't carry newsgroup\n" "\t\"%s\".\n" "\tIf the group name is correct, switch profiles in the \"From:\"\n" "\tline or edit the profile with \"Edit|Manage Posting Profiles\"." msgstr "" #: ../pan/usenet-utils/message-check.cc:355 #, fuzzy msgid "Warning: Following-Up to too many groups." msgstr "WAARSCHUWING: U volgt op naar te veel groepen." #: ../pan/usenet-utils/message-check.cc:366 #, fuzzy msgid "Error: No Subject specified." msgstr "FOUT: Geen onderwerp aangegeven" #: ../pan/usenet-utils/message-check.cc:395 #, fuzzy, c-format msgid "Warning: Group \"%s\" is read-only." msgstr "WAARSCHUWING: Groep \"%*.*s\" is alleen-lezen." #: ../pan/usenet-utils/message-check.cc:404 #, fuzzy msgid "Error: Posting to a very large number of groups." msgstr "FOUT: U plaatst in een zeer groot aantal groepen." #: ../pan/usenet-utils/message-check.cc:409 #, fuzzy msgid "Warning: Posting to a large number of groups." msgstr "WAARSCHUWING: U plaatst in een groot aantal groepen." #: ../pan/usenet-utils/message-check.cc:416 #, fuzzy msgid "Warning: Crossposting without setting Followup-To header." msgstr "" "WAARSCHUWING: U plaatst in meerdere groepen zonder Opvolgen-naar in te " "stellen." #: ../pan/usenet-utils/message-check.cc:441 #, fuzzy msgid "Error: Bad email address." msgstr "_E-mailadres:" #: ../pan/usenet-utils/message-check.cc:450 msgid "Warning: Most newsgroups frown upon HTML posts." msgstr "" #: ../pan/usenet-utils/message-check.cc:486 #, fuzzy msgid "Error: No Recipients." msgstr "FOUT: Geen onderwerp aangegeven" #: ../pan/usenet-utils/scorefile.cc:304 #, fuzzy, c-format msgid "" "Error reading score in %*.*s, line %d: expected 'Expires: MM/DD/YYYY' or " "'Expires: DD-MM-YYYY'." msgstr "ik verwacht: 'Verloopt: MM/DD/YYYY' of 'Verloopt: DD-MM-YYYY'" #: ../pan/usenet-utils/scorefile.cc:307 #, c-format msgid "Expired old score from %*.*s, line %d" msgstr "" #: ../pan/usenet-utils/scorefile.cc:380 #, c-format msgid "Error reading score in %*.*s, line %d: unexpected line." msgstr "" #: ../pan/usenet-utils/scorefile.cc:428 #, c-format msgid "Read %lu scoring rules in %lu sections from \"%s\"" msgstr "" #: ../pan/usenet-utils/ssl-utils.h:199 #, fuzzy, c-format msgid "Error printing the server certificate for '%s'" msgstr "" "Er is een fout opgetreden bij het interpreteren van de opdrachtregel voor " "\"web-browser\": %s" #: ../pan/usenet-utils/ssl-utils.h:216 #, c-format msgid "" "The current server '%s' sent this security certificate :\n" "\n" msgstr "" #: ../pan/usenet-utils/ssl-utils.h:217 #, c-format msgid "" "Certificate information for server '%s' :\n" "\n" msgstr "" #: ../pan/usenet-utils/ssl-utils.h:219 #, c-format msgid "" "%sIssuer information:\n" "%s\n" "Valid until : %s\n" "\n" "Not valid before : %s\n" "\n" msgstr "" #: ../pan/usenet-utils/text-massager.cc:397 msgid "> [quoted text muted]" msgstr "> [geciteerde tekst onderdrukt]" #~ msgid "Read News from Usenet" #~ msgstr "Nieuws van Usenet lezen" #, fuzzy #~ msgid "_Toggle Flag on for Thread" #~ msgstr "/Discussie be_waken" #, fuzzy #~ msgid "Error!" #~ msgstr "Fout" #, fuzzy #~ msgid "Signer : " #~ msgstr "_Ondertekeningsbestand:" #, fuzzy #~ msgid "_Signature:" #~ msgstr "_Ondertekeningsbestand:" #, fuzzy #~ msgid "Creating directory \"%s\"" #~ msgstr "Er is een fout opgetreden bij het openen van de map \"%s\": %s)" #~ msgid "Couldn't create directory \"%s\": %s" #~ msgstr "Kon map \"%s\" niet aanmaken: %s" #, fuzzy #~ msgid "" #~ "Your copy of libpcre doesn't support UTF-8. UTF-8 regular expressions " #~ "may fail." #~ msgstr "" #~ "De versie van libpcre op uw systeem ondersteunt geen UTF-8. Reguliere " #~ "expressies in UTF-8 kunnen mislukken." #~ msgid "Can't use regular expression \"%s\": %s at position %d" #~ msgstr "Kan reguliere expressie \"%s\" niet gebruiken: %s op positie %d" #, fuzzy #~ msgid "_Groups" #~ msgstr "Groepen" #, fuzzy #~ msgid "Read Selected Group" #~ msgstr "Volgende ongelezen groep lezen" #, fuzzy #~ msgid "_Mark Group _Read" #~ msgstr "/Groep markeren als ge_lezen" #, fuzzy #~ msgid "_Delete Group's Articles" #~ msgstr "/Artikelen in groep _verwijderen" #, fuzzy #~ msgid "Get New Headers for Selected Groups" #~ msgstr "Nieuwe kopteksten in geselecteerde groepen ophalen" #, fuzzy #~ msgid "Get New Headers for Subscribed Groups" #~ msgstr "Nieuwe kopteksten in geabonneerde groepen ophalen" #, fuzzy #~ msgid "Get Headers from Server" #~ msgstr "%d Groepen van server \"%s\" opgehaald" #, fuzzy #~ msgid "Get a new Group list from the Server" #~ msgstr "Bezig met ophalen nieuwe groepen an server \"%s\"" #, fuzzy #~ msgid "Subscribe to Selected Groups" #~ msgstr "Geabonneerde nieuwsgroepen" #, fuzzy #~ msgid "Unsubscribe from Selected Groups" #~ msgstr "Geabonneerde nieuwsgroepen" #, fuzzy #~ msgid "Save Selected Articles..." #~ msgstr "Bijlagen opslaan" #~ msgid "Cancel Last Task" #~ msgstr "Laatste taak annuleren" #, fuzzy #~ msgid "Clear Header Pane" #~ msgstr "Kopteksten-paneel" #, fuzzy #~ msgid "Clear Body Pane" #~ msgstr "_Inhoud-paneel" #, fuzzy #~ msgid "Download _Selected Article" #~ msgstr "Geselecteerde artikelen ophalen" #, fuzzy #~ msgid "Download Selected Article" #~ msgstr "Geselecteerde artikelen ophalen" #, fuzzy #~ msgid "Read _Selected Article" #~ msgstr "Geselecteerde artikelen ophalen" #, fuzzy #~ msgid "Next Unread Group" #~ msgstr "/_Ga naar/Volgende ongelezen _groep" #, fuzzy #~ msgid "Next Group" #~ msgstr "/_Ga naar/Volge_nde groep" #, fuzzy #~ msgid "Next Watched Article" #~ msgstr "/_Ga naar/Volgende be_waakte artikel" #, fuzzy #~ msgid "Next Thread" #~ msgstr "/_Ga naar/Volgende dis_cussie" #, fuzzy #~ msgid "Previous Article" #~ msgstr "/_Ga naar/_Vorig artikel" #, fuzzy #~ msgid "Previous Thread" #~ msgstr "/_Ga naar/Vo_rige discussie" #, fuzzy #~ msgid "Parent Article" #~ msgstr "/_Ga naar/_Ouder-artikel" #, fuzzy #~ msgid "_Plonk Author" #~ msgstr "/_Artikelen/_Auteur niet meer tonen (Plonk)" #, fuzzy #~ msgid "Mark Article as Read" #~ msgstr "Artikel is gelezen" #, fuzzy #~ msgid "Mark Article as Unread" #~ msgstr "Artikel is ongelezen" #, fuzzy #~ msgid "Reply to Author" #~ msgstr "/_Artikelen/_Auteur niet meer tonen (Plonk)" #, fuzzy #~ msgid "_About..." #~ msgstr "/_Hulp/_Info..." #, fuzzy #~ msgid "Abbreviate _Names in Group Pane" #~ msgstr "/Beel_d/N_amen in groepen-paneel afkorten" #, fuzzy #~ msgid "Match Only Articles Posted by Me" #~ msgstr "Alleen bij mijn artikelen" #, fuzzy #~ msgid "Central European (ISO-8859-2)" #~ msgstr "Centraal-Europees" #, fuzzy #~ msgid "Central European (Windows-1250)" #~ msgstr "Centraal-Europees" #, fuzzy #~ msgid "Chinese Simplified (gb2312)" #~ msgstr "Vereenvoudigd Chinees" #, fuzzy #~ msgid "Chinese Traditional (big5)" #~ msgstr "Traditioneel Chinees" #, fuzzy #~ msgid "Cyrillic (KOI8-R)" #~ msgstr "Cyrillisch" #, fuzzy #~ msgid "Cyrillic, Ukrainian (KOI8-U)" #~ msgstr "Cyrillisch, Oekraïens" #, fuzzy #~ msgid "Western, New (ISO-8859-15)" #~ msgstr "Westers, nieuw" #, fuzzy #~ msgid "Unicode (UTF-8)" #~ msgstr "Unicode, UTF-8" #, fuzzy #~ msgid "Pan: " #~ msgstr "Pan: Regels" #, fuzzy #~ msgid "Group Name" #~ msgstr "Groepenpaneel" #, fuzzy #~ msgid "Pan: %s" #~ msgstr "Pan: Regels" #~ msgid "Tasks: %u/%u" #~ msgstr "Taken: %u/%u" #~ msgid "%u Tasks Running, %u Tasks Total" #~ msgstr "%u Taken draaiend, %u taken in totaal" #, fuzzy #~ msgid "Wrap the Article Body to 80 Columns" #~ msgstr "/Beel_d/Regels in artikel a_fbreken" #, fuzzy #~ msgid "_Close" #~ msgstr "Kleuren" #, fuzzy #~ msgid "Close Window" #~ msgstr "Logvenster sluiten" #, fuzzy #~ msgid "Cut Text" #~ msgstr "Geciteerde tekst:" #, fuzzy #~ msgid "Copy Text" #~ msgstr "Tekstregels afbreken" #, fuzzy #~ msgid "_Paste" #~ msgstr "_Plaatsen" #, fuzzy #~ msgid "Paste Text" #~ msgstr "Te_kst opslaan" #, fuzzy #~ msgid "Manage Posting Pr_ofiles..." #~ msgstr "/_Plaatsen/_Profielen voor plaatsing..." #~ msgid "Western" #~ msgstr "Westers" #, fuzzy #~ msgid "Error loading post.ui: \"%s\"" #~ msgstr "Er is een fout opgetreden bij het lezen van de socket: %s" #, fuzzy #~ msgid "Editors" #~ msgstr "Editor" #, fuzzy #~ msgid "Posting Article" #~ msgstr "Bezig met plaatsen van artikel \"%s\"" #, fuzzy #~ msgid "Add a New Profile" #~ msgstr "Nieuw profiel toevoegen" #~ msgid "Edit the selected profile" #~ msgstr "Geselecteerd profiel bewerken" #~ msgid "Remove the selected profile" #~ msgstr "Geselecteerd profiel verwijderen" #, fuzzy #~ msgid "Threads" #~ msgstr "Ge_lezen discussies:" #, fuzzy #~ msgid "Path" #~ msgstr "Delen" #, fuzzy #~ msgid "_Path:" #~ msgstr "_Plaatsen" #, fuzzy #~ msgid "Group Management" #~ msgstr "Groepenpaneel" #, fuzzy #~ msgid "Pan: New Scoring Rule" #~ msgstr "Pan: Regel bewerken" #, fuzzy #~ msgid "Then" #~ msgstr "Met dank aan" #, fuzzy #~ msgid "For" #~ msgstr "Mappen" #, fuzzy #~ msgid "Name: \"%s\"" #~ msgstr "\"%s\" Bewaard" #, fuzzy #~ msgid "Pan: Add a Server" #~ msgstr "Pan: Server aanpassen" #, fuzzy #~ msgid "Pan: Edit a Server's Settings" #~ msgstr "Pan: Server aanpassen" #~ msgid "Pan: Servers" #~ msgstr "Pan: Servers" #, fuzzy #~ msgid "to %s" #~ msgstr "%s - Info" # queue list #~ msgid "Status" #~ msgstr "Status" #~ msgid "Unable to set group: %s" #~ msgstr "Kan groep niet instellen: %s" #~ msgid "Error: %s" #~ msgstr "Fout: %s" #, fuzzy #~ msgid "Making a new connection to %*.*s" #~ msgstr "\"blijf verbonden\" verstuurd naar %*.*s" #, fuzzy #~ msgid "Couldn't load \"%s\": %s" #~ msgstr "Kon map \"%s\" niet aanmaken: %s" #, fuzzy #~ msgid "" #~ "Error saving \"%s\":\n" #~ "%s. %s" #~ msgstr "Er is een fout opgetreden bij het lezen van bestand \"%s\": %s" #, fuzzy #~ msgid "Warning: Unknown group \"%s\"." #~ msgstr "WAAARSCHUWING: Onbekende groep: \"%*.*s\"." #, fuzzy #~ msgid "_Posting" #~ msgstr "_Plaatsen" #, fuzzy #~ msgid "Post New Article" #~ msgstr "_Artikel" #, fuzzy #~ msgid "Follow-up to Article" #~ msgstr "Opvolgen naar nieuwsgroep" #, fuzzy #~ msgid "_Post Article" #~ msgstr "_Artikel" #, fuzzy #~ msgid "Post this Article Now" #~ msgstr "Bezig met plaatsen van artikel \"%s\"" #, fuzzy #~ msgid "Error: No Newsgroups specified." #~ msgstr "FOUT: Geen ontvangers aangegeven." #, fuzzy #~ msgid "Message-Id" #~ msgstr "Bericht-ID" #, fuzzy #~ msgid "Saved newsrc files in %.1f seconds" #~ msgstr "%d Artikelen in \"%s\" opgeslagen in %.1f seconden (%.0f art/sec)" #, fuzzy #~ msgid "Use _Monospace Font in Body Pane" #~ msgstr "/Beel_d/Artikelinhoud in _monospatiëring-letter weergeven" #~ msgid "%d connections totaling %.1f KiB per second" #~ msgstr "%d verbindingen, bij elkaar %.1f KiB per seconde" #~ msgid "" #~ "Used when email replies to your posts should go somewhere other than the " #~ "email address above. Because Reply-To: is relatively difficult for " #~ "spammers to harvest, it's polite give your email address here if you gave " #~ "an invalid email address above." #~ msgstr "" #~ "Wordt gebruikt als een antwoord-email op uw bericht ergens anders naar " #~ "toe moet worden gestuurd dan het bovenstaande emailadres. Omdat Reply-" #~ "To: relatief moeilijk door spammers te misbruiken is, is het netjes om uw " #~ "emailadres hier te geven als u hierboven een ongeldig emailadres heeft " #~ "opgegeven." #~ msgid "_Reply-To Header:" #~ msgstr "_Antwoord-naar koptekst:" #~ msgid "Or_ganization Header:" #~ msgstr "Or_ganisatie-koptekst:" #, fuzzy #~ msgid "Attach this _Signature:" #~ msgstr "Ondertekening:" #~ msgid "Automatic Downloads" #~ msgstr "Automatisch ophalen" #, fuzzy #~ msgid "Save a_ttachments to path:" #~ msgstr "Bijlagen opslaan in:" #~ msgid "UNKNOWN" #~ msgstr "ONBEKEND" #, fuzzy #~ msgid "Decode can't access directory \"%s\"" #~ msgstr "Decodering kan geen toegang krijgen tot pad \"%s\"" #~ msgid "Could not decode article - file may be corrupt/incomplete" #~ msgstr "Kon artikel niet decoderen - bestand is wellicht corrupt/incompleet" #~ msgid "Checksum for `%s' part %d failed - file is corrupt" #~ msgstr "Controlesom voor `%s'-deel van %d klopt niet - bestand is corrupt" #~ msgid "Checksum for `%s' failed - file may be corrupt" #~ msgstr "Controlesom voor `%s' klopt niet - bestand is wellicht corrupt" #, fuzzy #~ msgid "Use custom colors in _Header Pane" #~ msgstr "Aangepast lettertype gebruiken in Koptekst-paneel:" #, fuzzy #~ msgid "Header Pane background:" #~ msgstr "Kopteksten-paneel scoren" #, fuzzy #~ msgid "Unread articles:" #~ msgstr "_Ongelezen discussies:" #, fuzzy #~ msgid "" #~ "Unsupported data version (%d) for server properties. Are you running an " #~ "old version of Pan by accident?" #~ msgstr "" #~ "Niet ondersteunde versie %d voor gegevensbestand \"%s\".\n" #~ "Draait u per ongeluk een oude versie van Pan?" #, fuzzy #~ msgid "Couldn't create temporary file: %s" #~ msgstr "Kon tijdelijk bestand niet creëren: %s" #~ msgid "Error renaming \"%s\" as \"%s\": %s." #~ msgstr "" #~ "Er is een fout opgetreden bij het hernoemen van \"%s\" naar \"%s\": %s." #~ msgid "Can't backup \"%s\" as \"%s\": %s" #~ msgstr "Kan geen backup maken van \"%s\" als \"%s\": %s" #~ msgid "Can't write to \"%s\": %s" #~ msgstr "Kan niet schrijven naar \"%s\": %s" #~ msgid "Body" #~ msgstr "Inhoud" #, fuzzy #~ msgid "Open a Draft Article from Disk" #~ msgstr "%u Artikelen uit `%s' verlopen" #, fuzzy #~ msgid "subject" #~ msgstr "Onderwerp" #, fuzzy #~ msgid "author" #~ msgstr "Auteur" #~ msgid "Change" #~ msgstr "Wijzigen" #~ msgid "Connections" #~ msgstr "Verbindingen" #, fuzzy #~ msgid "Active" #~ msgstr "Acties" #~ msgid "" #~ "Unable to cancel article: Couldn't find matching article in folder `pan." #~ "sent'!" #~ msgstr "" #~ "Niet in staat om artikel te annuleren: Kon geen overeenkomend artikel " #~ "vinden in map `pan.sent'!" #~ msgid "" #~ "Unable to supersede article: Couldn't find matching article in folder " #~ "`pan.sent'!" #~ msgstr "" #~ "Niet in staat om artikel te vervangen: Kon geen overeenkomend artikel " #~ "vinden in map `pan.sent'!" #~ msgid "You must download the article before you can cancel it." #~ msgstr "U dient een artikel eerst op te halen voordat u het kunt annuleren." #~ msgid "You must download the article before you can supersede it." #~ msgstr "U dient een artikel eerst op te halen voordat u het kunt vervangen." #~ msgid "Pan: Find Article" #~ msgstr "Pan: Artikel zoeken" #~ msgid "_Author:" #~ msgstr "_Auteur:" #~ msgid "Case Sensiti_ve" #~ msgstr "Hoofdletterge_voelig" #~ msgid "_Unread Only" #~ msgstr "Alleen _ongelezen" #~ msgid "Fin_d:" #~ msgstr "_Zoeken:" #~ msgid "" #~ "Type in a search string and press ENTER.\n" #~ "Wildcards are allowed." #~ msgstr "" #~ "Geef een zoeksleutel in en druk op ENTER.\n" #~ "Jokers zijn toegestaan." #~ msgid "/---" #~ msgstr "/---" #~ msgid "/Save Article A_ttachments" #~ msgstr "/_Bijlagen opslaan" #~ msgid "/_Manual Decode..." #~ msgstr "/_Handmatig decoderen..." #~ msgid "/D_ownload Flagged" #~ msgstr "/Gemarkeerde artikelen _ophalen" #~ msgid "/_Flag" #~ msgstr "/_Markeren" #~ msgid "/_Unflag" #~ msgstr "/_Demarkeren" #~ msgid "/_Create Score" #~ msgstr "/_Score aanmaken" #~ msgid "/Add S_et to Selection" #~ msgstr "/_Verzameling aan selectie toevoegen" #~ msgid "/_Copy to Folder" #~ msgstr "/_Kopiëren naar map" #~ msgid "/_Delete" #~ msgstr "/Verwij_deren" #~ msgid "Scoring Articles" #~ msgstr "Artikelen scoren" # filtreren/filteren #~ msgid "Filtering Articles" #~ msgstr "Berichten filteren" #~ msgid "Updating Header Pane..." #~ msgstr "Bezig met verversen kopteksten-paneel..." #~ msgid "Loading group \"%s\"" #~ msgstr "Bezig met laden van groep \"%s\"" #~ msgid "Flushing article cache... " #~ msgstr "Bezig met legen artikelbuffer... " #~ msgid "%d files erased." #~ msgstr "%d bestanden verwijderd." #~ msgid "Error saving article \"%s\" (is %s full?)" #~ msgstr "" #~ "Er is een fout opgetreden bij het opslaan van artikel \"%s\" (is %s vol?)" #~ msgid "Directory \"%s\" contains %.1f MB in %d files" #~ msgstr "De map \"%s\" bevat %.1f MB in %d bestanden" #~ msgid "Unparseable Subject" #~ msgstr "Onderwerp niet interpreteerbaar" #~ msgid "Couldn't parse a Message-ID from the raw message!" #~ msgstr "Geen bericht-ID aangetroffen bij de ontleding van het bericht!" #~ msgid "unknown@spammesenseless.com" #~ msgstr "onbekend@spammijmaarsuf.com" #~ msgid "Can't create file \"%s\" %s" #~ msgstr "Kan bestand \"%s\" niet creëren %s" #~ msgid "Error saving file \"%s\" - is the disk full?" #~ msgstr "" #~ "Er is een fout opgetreden bij het opslaan van \"%s\" - is de schijf vol?" #~ msgid "Decoded \"%s\" from group \"%*.*s\", \"%s\"" #~ msgstr "\"%s\" uit groep \"%*.*s\" gedecodeerd, \"%s\"" #~ msgid "Loading %u of %d groups" #~ msgstr "Laden %u van %d groepen" #~ msgid "" #~ "Skipped %d groups due to possible corruption in \"%s\" and \"%s\". You " #~ "may want to delete these files and get a new grouplist from your news " #~ "server." #~ msgstr "" #~ "%d Groepen overgeslagen vanwege mogelijke corruptie in \"%s\" en \"%s\". " #~ "U wilt deze bestanden misschien verwijderen en een nieuwe groepenlijst " #~ "ophalen van uw newsserver." #~ msgid "Loaded %d groups for server \"%s\" in %.1f seconds (%.0f groups/sec)" #~ msgstr "" #~ "%d Groepen geladen voor server \"%s\" in %.1f seconden (%.0f groepen/sec)" #~ msgid "Saved %d of %u groups" #~ msgstr "%d van %u groepen opgeslagen" #~ msgid "Error saving list of groups to \"%s\" - is the disk full?" #~ msgstr "" #~ "Er is een fout opgetreden bij het opslaan van de groepenlijst naar \"%s\" " #~ "- is de schijf vol?" #~ msgid "Saved %d groups in \"%s\" in %.1f seconds (%.0f groups/sec)" #~ msgstr "Bewaard %d groepen in \"%s\" in %.1f seconden (%.0f groepen/sec)" #~ msgid "Loaded %d of %d articles" #~ msgstr "Laden %d van %d berichten" #~ msgid "" #~ "Pan skipped %d corrupt headers from the local cache for group \"%*.*s\"." #~ msgstr "" #~ "%d corrupte kopteksten uit de lokale buffer overgeslagen voor groep \"%*." #~ "*s\"." #~ msgid "You may want to empty this group and download fresh headers." #~ msgstr "U wilt misschien deze groep legen en nieuwe kopteksten ophalen." #~ msgid "The group will not be saved -- can't create file \"%s\"" #~ msgstr "" #~ "De groep zal niet worden opgeslagen -- kan bestand \"%s\" niet creëren" #~ msgid "Unable to save headers for group \"%*.*s\" - is the disk full?" #~ msgstr "" #~ "Niet in staat om kopteksten voor groep \"%*.*s\" op te slaan - is de " #~ "schijf vol?" #~ msgid "(No Group)" #~ msgstr "(Geen groep)" #~ msgid "ERROR: invalid address \"%s\"" #~ msgstr "FOUT: ongeldig adres \"%s\"" #~ msgid "ERROR: Must have one author in From: line" #~ msgstr "FOUT: U dient één auteur in te vullen in de Van:-regel" #~ msgid "Imported %d groups (%d new) from \"%s\"" #~ msgstr "%d Groepen (%d nieuw) van \"%s\" geïmporteerd" #~ msgid "Exported %d groups (%d subscribed) to \"%s\"" #~ msgstr "%d Groepen (%d geabonneerd) geëxporteerd naar \"%s\"" #~ msgid "Imported %d lines from Gnome config file" #~ msgstr "%d Regels geïmporteerd vanuit Gnome-configuratiebestand" #~ msgid "%s does not appear to be a valid datafile" #~ msgstr "%s lijkt geen geldig gegevensbestand te zijn" #~ msgid "Error converting string \"%*s\" to utf8: %d - %s" #~ msgstr "" #~ "Er is een fout opgetreden bij het converteren van tekenreeks \"%*s\": " #~ "naar utf8: %d - %s" #~ msgid "No name specified!" #~ msgstr "Geen naam opgegeven!" #~ msgid "Server is corrupt" #~ msgstr "Server is corrupt" #~ msgid "A newsreader for GNOME" #~ msgstr "Een nieuwslezer voor Gnome." #~ msgid "Programmer" #~ msgstr "Hoofdprogrammeur" #~ msgid "Project Originator, Programmer" #~ msgstr "Projectstichter, programmeur" #~ msgid "Programmer, 0.6 - 0.7" #~ msgstr "Programmeur, 0.6 - 0.7" #~ msgid "" #~ "Pan %s Translations\n" #~ "%s\n" #~ "\n" #~ "Pan %s Code or Patches\n" #~ "%s\n" #~ "\n" #~ "Pan %s Suggestions and Testing\n" #~ "%s\n" #~ msgstr "" #~ "Pan %s vertalingen\n" #~ "%s\n" #~ "\n" #~ "Pan %s code of patches\n" #~ "%s\n" #~ "\n" #~ "Pan %s suggesties en tests\n" #~ "%s\n" #~ msgid "_Directory for saving articles:" #~ msgstr "_Map voor opslaan bijlagen:" #~ msgid "Default charse_t:" #~ msgstr "Standaard _codering:" #~ msgid "Pan: Download Headers for group `%s'" #~ msgstr "Pan: Kopteksten ophalen voor groep '%s'" #~ msgid "Pan: Download Headers" #~ msgstr "Pan: Kopteksten ophalen" #~ msgid "Download _new headers" #~ msgstr "_Nieuwe kopteksten ophalen" #~ msgid "_Download bodies too" #~ msgstr "Ook artikel_inhoud ophalen" #~ msgid "How should you appear when posting articles?" #~ msgstr "Hoe zou u moeten verschijnen bij het plaatsen van artikelen?" #~ msgid "Your _Name:" #~ msgstr "Uw _naam:" #~ msgid "Email _Address:" #~ msgstr "E-mail_adres:" #~ msgid "_Organization:" #~ msgstr "_Organisatie:" #~ msgid "default" #~ msgstr "standaard" #~ msgid "What mail server should Pan use?" #~ msgstr "Welke e-mailserver dient Pan te gebruiken?" #~ msgid "What news server should Pan use?" #~ msgstr "Welke newsserver dient Pan te gebruiken?" #~ msgid "Short name for Pan to show, e.g. \"mynewsserver\"" #~ msgstr "Verkorte naam om te tonen, bijv. \"mijnnewsserver\"" #~ msgid "Short _name for Pan to show:" #~ msgstr "Verkorte _naam om te tonen:" #~ msgid "Login" #~ msgstr "Aanmelden" #~ msgid "Server requires authori_zation" #~ msgstr "Mijn server vereist aanmelding" #~ msgid "Pan Setup Wizard" #~ msgstr "Pan Instellingen-wizard" #~ msgid "Thank you for trying Pan!" #~ msgstr "Bedankt dat u Pan uitprobeert!" #~ msgid "" #~ "Thank you for trying Pan!\n" #~ " \n" #~ "If you are new to Usenet,\n" #~ "%s\n" #~ "is a starting point to see what Usenet is,\n" #~ "where to find a free news server,\n" #~ "and how to use Pan.\n" #~ " \n" #~ "Since this is your first time running Pan,\n" #~ "we'll need to gather some information.\n" #~ msgstr "" #~ "Bedankt dat u Pan uitprobeert!\n" #~ "\n" #~ "Indien u onbekend bent met Usenet, is\n" #~ "%s\n" #~ "een startpunt om te zien wat Usenet is,\n" #~ "waar u een vrije newsserver kunt vinden,\n" #~ "en hoe u Pan gebruikt.\n" #~ " \n" #~ "Omdat dit de eerste keer is dat u Pan gebruikt,\n" #~ "is het nodig om wat informatie te verzamelen.\n" #~ msgid "About You" #~ msgstr "Info over u" #~ msgid "Ready!" #~ msgstr "Klaar!" #~ msgid "" #~ "You have successfully entered all of\n" #~ "the information required to set up Pan.\n" #~ "\n" #~ "To save these settings, click Save." #~ msgstr "" #~ "U heeft alle informatie ingevuld die\n" #~ "nodig is om Pan in te stellen.\n" #~ "\n" #~ "Om deze instellingen op te slaan klikt u op Opslaan." #~ msgid "License" #~ msgstr "Licentie" #~ msgid "Authors" #~ msgstr "Auteurs" #~ msgid "Thanks to" #~ msgstr "Met dank aan" #~ msgid " (No conditions -- no articles will match)" #~ msgstr " (Geen voorwaarden -- geen artikelen zullen overeenkomen)" #~ msgid " (No conditions -- all articles will match)" #~ msgstr " (Geen voorwaarden -- alle artikelen zullen overeenkomen)" #~ msgid "Pan: Edit Filter" #~ msgstr "Pan: Filter bewerken" #~ msgid "Filter name: " #~ msgstr "Filternaam:" #~ msgid "Show in Filter Menu" #~ msgstr "In Filter-menu tonen" #~ msgid "Move the selected line up one line" #~ msgstr "De geselecteerde regel een positie naar boven verplaatsen" #~ msgid "Move the selected line down one line" #~ msgstr "De geselecteerde regel een positie naar beneden verplaatsen" #~ msgid "Invert" #~ msgstr "Omkeren" #~ msgid "All Of" #~ msgstr "Alle van" #~ msgid "Any Of" #~ msgstr "Eender welke van" #~ msgid "Delete the selected line" #~ msgstr "De geselecteerde regel verwijderen" #~ msgid "Add New Line to the Filter" #~ msgstr "Nieuwe regel toevoegen aan de filter" #~ msgid "New Filter Line" #~ msgstr "Nieuwe filterregel" #~ msgid "does not start with" #~ msgstr "begint niet met" #~ msgid "does not match regular expression" #~ msgstr "komt niet overeen met de reguliere expressie" #~ msgid "Article h_as" #~ msgstr "Artikel _heeft" #~ msgid "Incomplete Attachments" #~ msgstr "Incomplete bijlagen" #~ msgid "No Attachments" #~ msgstr "Geen bijlagen" #~ msgid "Article _is" #~ msgstr "Artikel _is" #~ msgid "New" #~ msgstr "Nieuw" #~ msgid "Unread" #~ msgstr "Ongelezen" #~ msgid "Read" #~ msgstr "Gelezen" #~ msgid "Cached" #~ msgstr "Gebufferd" #~ msgid "Posted by Me" #~ msgstr "Door mij geplaatst" #~ msgid "Article has at _least N lines:" #~ msgstr "Artikel heeft _tenminste N regels:" #~ msgid "Article _score is at least" #~ msgstr "Artikel_score is tenminste" #~ msgid "Watched" #~ msgstr "Bewaakt" #~ msgid "High" #~ msgstr "Hoog" #~ msgid "Medium" #~ msgstr "Middel" # In overeenstemming met het menu waar ipv Zero: 'Normal' wordt gebruikt #~ msgid "Zero" #~ msgstr "Normaal" #~ msgid "Low" #~ msgstr "Laag" #~ msgid "Ignored" #~ msgstr "Genegeerd" #~ msgid "" #~ "This filter is still used by the following rules:\n" #~ "%s\n" #~ "Please remove this dependency first." #~ msgstr "" #~ "Deze filter wordt nog steeds gebruikt door de volgende regels:\n" #~ "%s\n" #~ "Verwijdert u eerst deze afhankelijkheid." #~ msgid "Pan: Filters" #~ msgstr "Pan: Filters" #~ msgid "Filters" #~ msgstr "Filters" #~ msgid "Add a new filter" #~ msgstr "Nieuwe filter toevoegen" #~ msgid "Edit the selected filter" #~ msgstr "De geselecteerde filter bewerken" #~ msgid "Remove the selected filter" #~ msgstr "De geselecteerde filter verwijderen" #~ msgid "NONE OF:" #~ msgstr "GEEN VAN:" #~ msgid "ALL OF:" #~ msgstr "ALLE UIT:" #~ msgid "ANY OF:" #~ msgstr "WILLEKEURIGE UIT:" #~ msgid "Article has complete attachments" #~ msgstr "Artikel heeft complete bijlagen" #~ msgid "Article does not have incomplete attachments" #~ msgstr "Artikel heeft geen incomplete bijlagen" #~ msgid "Article has incomplete attachments" #~ msgstr "Artikel heeft incomplete bijlagen" #~ msgid "Article has complete or incomplete attachments" #~ msgstr "Artikel heeft complete of incomplete bijlagen" #~ msgid "Article is %d or more bytes long" #~ msgstr "Artikel is %d of meer byte lang" #~ msgid "Article is crossposted to at least %d groups" #~ msgstr "Artikel is geplaatst in tenminste %d groepen" #~ msgid "Article was posted in the last %d days" #~ msgstr "Artikel is geplaatst in de laatste %d dagen" #~ msgid "Article is %d or more lines long" #~ msgstr "Artikel is %d of meer regels lang" #~ msgid "Article is unread or old" #~ msgstr "Artikel is ongelezen of oud" #~ msgid "Article is new" #~ msgstr "Artikel is nieuw" #~ msgid "Article is new or read" #~ msgstr "Artikel is nieuw of gelezen" #~ msgid "Article is new or unread" #~ msgstr "Artikel is nieuw of ongelezen" #~ msgid "Xref" #~ msgstr "Xref" #~ msgid "watched" #~ msgstr "bewaakt" #~ msgid "high" #~ msgstr "hoog" #~ msgid "medium" #~ msgstr "medium" #~ msgid "zero" #~ msgstr "nul" #~ msgid "low" #~ msgstr "laag" #~ msgid "ignored" #~ msgstr "genegeerd" #~ msgid "Score filter will match anything" #~ msgstr "Scorefilter laat alles door" #~ msgid "Score filter will match nothing" #~ msgstr "Scorefilter laat niets door" #~ msgid "Article score one of: " #~ msgstr "Artikelscore een van: " #~ msgid "Wrote filters to \"%s\"" #~ msgstr "Filters weggeschreven naar \"%s\"" #~ msgid "Can't use regular expression \"%s\" from file \"%s\", line %d: %s" #~ msgstr "" #~ "Kan reguliere expressie \"%s\" niet gebruiken van bestand \"%s\", regel " #~ "%d: %s" #~ msgid "expired old score" #~ msgstr "verlopen oude score" #~ msgid "skipping unsupported criteria" #~ msgstr "niet ondersteunde criteria overslaan" #~ msgid "unexpected line." #~ msgstr "onverwachte regel." #~ msgid "Error reading file: " #~ msgstr "Fout bij lezen bestand :" #~ msgid "skipping score because it has no criteria" #~ msgstr "score wordt overgeslagen omdat het geen criteria bevat" #~ msgid "" #~ "Loaded %d score entries in %d sections in %.1f seconds (%.0f entries/sec)" #~ msgstr "%d scores in %d secties geladen in %.1f seconden (%.0f scores/sec)" #~ msgid "Error score to file \"%s\": %s" #~ msgstr "Fout bij score voor bestand \"%s\": %s" #~ msgid "Scored %d entries in %.1f seconds (%.0f articles/sec)" #~ msgstr "%d scores gemaakt in %.1f seconden (%.0f artikelen/sec)" #~ msgid "Error removing scorefile entry: %s" #~ msgstr "Er is een fout opgetreden bij het verwijderen van een score: %s" #~ msgid "Scorefile entry removed -- old scorefile \"%s\" backed up as \"%s\"" #~ msgstr "" #~ "Score verwijderd -- Backup gemaakt van oud scorebestand \"%s\" in \"%s\"" #~ msgid "Folder \"%*.*s\" already exists." #~ msgstr "Map \"%*.*s\" bestaat reeds." #~ msgid "Please don't begin folders with \"pan.\"; it confuses me." #~ msgstr "" #~ "Gelieve mapnamen niet met \"pan.\" te beginnen; dat vind ik niet lief." #~ msgid "Create New Folder" #~ msgstr "Nieuwe map creëren" #~ msgid "New Folder Name:" #~ msgstr "Naam voor nieuwe map:" #~ msgid "/Get New Headers and _Bodies" #~ msgstr "/Nieuwe kopteksten en _inhoud ophalen" #~ msgid "/More Download _Options..." #~ msgstr "/Meer download-_opties..." #~ msgid "/Refresh Article _Counts" #~ msgstr "/Artikelte_llers verversen" #~ msgid "/Group _Properties..." #~ msgstr "/Groeps_eigenschappen..." #~ msgid " (Moderated)" #~ msgstr " (Gemodereerd)" #~ msgid " (Read-Only)" #~ msgstr " (Alleen-lezen)" #~ msgid "Subscribed" #~ msgstr "Geabonneerd" #~ msgid "All Groups" #~ msgstr "Alle groepen" #~ msgid "" #~ "We don't have a list of groups for \"%*.*s\".\n" #~ "Shall we download one?" #~ msgstr "" #~ "Er is geen groepenlijst van \"%*.*s\".\n" #~ "Wilt u deze ophalen?" #~ msgid "Total" #~ msgstr "Totaal" #~ msgid "Description" #~ msgstr "Omschrijving" #~ msgid "F_ind:" #~ msgstr "_Zoeken:" #~ msgid "" #~ "Type in a group search string and press ENTER. Wildcards are allowed." #~ msgstr "" #~ "Geef een groep-zoeksleutel in en druk op ENTER. Jokers zijn toegestaan." #~ msgid "News server connection count: %d" #~ msgstr "Aantal verbindingen met newsserver: %d" #~ msgid "The Task Manager is Empty" #~ msgstr "Het taakbeheer is leeg" #~ msgid "Connection" #~ msgstr "Verbinding" #~ msgid "Post" #~ msgstr "Plaatsen" #~ msgid "Get" #~ msgstr "Ophalen" #~ msgid "Mine" #~ msgstr "Mijn" #~ msgid "Net" #~ msgstr "Net" #~ msgid "/_File/_Save Article As..." #~ msgstr "/_Bestand/Artikel opslaan _als..." #~ msgid "/_File/Save Article A_ttachments" #~ msgstr "/_Bestand/_Bijlagen opslaan" #~ msgid "/_File/Manual _Decode..." #~ msgstr "/_Bestand/_Handmatig decoderen..." #~ msgid "/_File/_Print Article..." #~ msgstr "/_Bestand/Artikel a_fdrukken..." #~ msgid "/_File/---" #~ msgstr "/_Bestand/---" #~ msgid "/_File/_Cancel Last Task" #~ msgstr "/_Bestand/_Laatste taak annuleren" #~ msgid "/_File/Log _Viewer..." #~ msgstr "/_Bestand/_Logboek-weergave..." #~ msgid "/_File/_New Folder..." #~ msgstr "/_Bestand/_Nieuwe map..." #~ msgid "/_File/Delete _Folder..." #~ msgstr "/_Bestand/Map _verwijderen..." #~ msgid "/_File/_Edit Article in Folder" #~ msgstr "/_Bestand/Artikel in _map bewerken" #~ msgid "/_File/E_xit" #~ msgstr "/_Bestand/A_fsluiten" #~ msgid "/_Edit/Select all" #~ msgstr "/Be_werken/Alles selecteren" #~ msgid "/_Edit/Deselect all" #~ msgstr "/Be_werken/Alles deselecteren" #~ msgid "/_Edit/---" #~ msgstr "/Be_werken/---" #~ msgid "/_Edit/Select all _Groups" #~ msgstr "/Be_werken/Alle _groepen selecteren" #~ msgid "/_Edit/Add S_ubscribed to Selection" #~ msgstr "/Be_werken/Gea_bonneerde toevoegen aan selectie" #~ msgid "/_Edit/Deselect all G_roups" #~ msgstr "/Be_werken/Alle g_roepen deselecteren" #~ msgid "/_Edit/Add S_et to Selection" #~ msgstr "/Be_werken/_Verzameling aan selectie toevoegen" #~ msgid "/_Edit/_Find..." #~ msgstr "/Be_werken/_Zoeken..." #~ msgid "/_Edit/Find _Next" #~ msgstr "/Be_werken/Volgende z_oeken" #~ msgid "/_View/---" #~ msgstr "/Beel_d/---" #~ msgid "/_View/Thr_ead Header Pane" #~ msgstr "/Beel_d/D_iscussies vormen in kopteksten-paneel" #~ msgid "/_View/_Rot13 Selected Text" #~ msgstr "/Beel_d/Geselecteerde tekst _Rot13" #~ msgid "/_View/E_xpand Selected Threads" #~ msgstr "/Beel_d/Geselecteerde discussies _uitklappen" #~ msgid "/_View/C_ollapse Selected Threads" #~ msgstr "/Beel_d/Ge_selecteerde discussies inklappen" #~ msgid "/Filte_r/Custom _Filters..." #~ msgstr "/_Filter/_Eigen filters..." #~ msgid "/Filte_r/_Rules..." #~ msgstr "/_Filter/_Regels..." #~ msgid "/Filte_r/_Edit Scorefile..." #~ msgstr "/_Filter/Scorebestand be_werken..." #~ msgid "/Filte_r/---" #~ msgstr "/_Filter/---" #~ msgid "/Filte_r/Match Only _Cached Articles" #~ msgstr "/_Filter/Alleen ge_bufferde artikelen" #~ msgid "/Filte_r/Match Only _Text Articles" #~ msgstr "/_Filter/Alleen artikelen met _tekst" #~ msgid "/Filte_r/Match Only _Binary Attachment Articles" #~ msgstr "/_Filter/Alleen artikelen met _binaire bijlagen" #~ msgid "/Filte_r/Match Only _My Articles" #~ msgstr "/_Filter/Alleen _mijn artikelen" #~ msgid "/Filte_r/Match _New Articles" #~ msgstr "/_Filter/_Nieuwe artikelen" #~ msgid "/Filte_r/Match _Unread Articles" #~ msgstr "/_Filter/_Ongelezen artikelen" #~ msgid "/_Go/Read More" #~ msgstr "/_Ga naar/Meer lezen" #~ msgid "/_Go/---" #~ msgstr "/_Ga naar/---" #~ msgid "/_Go/Next _New Article" #~ msgstr "/_Ga naar/Volgende _nieuwe artikel" #~ msgid "/_Go/Previous Article _Read" #~ msgstr "/_Ga naar/Vorige ge_lezen artikel" #~ msgid "/_Servers" #~ msgstr "/_Servers" #~ msgid "/_Servers/News _Servers..." #~ msgstr "/_Servers/_Nieuwsservers..." #~ msgid "/_Servers/---" #~ msgstr "/_Servers/---" #~ msgid "/_Servers/Get List of Groups" #~ msgstr "/_Servers/Lijst van alle groepen ophalen" #~ msgid "/_Newsgroups/Mark Group _Read" #~ msgstr "/_Nieuwsgroepen/Groep markeren als ge_lezen" #~ msgid "/_Newsgroups/_Delete Group's Articles" #~ msgstr "/_Nieuwsgroepen/Artikelen in groep _verwijderen" #~ msgid "/_Newsgroups/---" #~ msgstr "/_Nieuwsgroepen/---" #~ msgid "/_Newsgroups/Get New _Headers" #~ msgstr "/_Nieuwsgroepen/Nieuwe _kopteksten ophalen" #~ msgid "/_Newsgroups/Get New Headers and _Bodies" #~ msgstr "/_Nieuwsgroepen/Nieuwe kopteksten en _inhoud ophalen" #~ msgid "/_Newsgroups/More Download _Options..." #~ msgstr "/_Nieuwsgroepen/Meer download-_opties..." #~ msgid "/_Newsgroups/Refresh Article _Counts" #~ msgstr "/_Nieuwsgroepen/Artikel_tellers verversen" #~ msgid "/_Newsgroups/Get New Headers in Subscribed _Groups" #~ msgstr "/_Nieuwsgroepen/Nieuwe kopteksten in _geabonneerde groepen ophalen" #~ msgid "/_Newsgroups/_Subscribe" #~ msgstr "/_Nieuwsgroepen/_Abonneren" #~ msgid "/_Newsgroups/_Unsubscribe" #~ msgstr "/_Nieuwsgroepen/Af_melden" #~ msgid "/_Newsgroups/Group _Properties..." #~ msgstr "/_Nieuwsgroepen/Groeps_eigenschappen..." #~ msgid "/_Newsgroups/Dele_te Group" #~ msgstr "/_Nieuwsgroepen/Groep ver_wijderen" #~ msgid "/_Articles/Mark _Read" #~ msgstr "/_Artikelen/Markeren als ge_lezen" #~ msgid "/_Articles/Mark _Unread" #~ msgstr "/_Artikelen/Markeren als _ongelezen" #~ msgid "/_Articles/---" #~ msgstr "/_Artikelen/---" #~ msgid "/_Articles/D_ownload Flagged" #~ msgstr "/_Artikelen/Gemarkeerde artikelen _ophalen" #~ msgid "/_Articles/_Flag" #~ msgstr "/_Artikelen/_Markeren" #~ msgid "/_Articles/U_nflag" #~ msgstr "/_Artikelen/_Demarkeren" #~ msgid "/_Articles/Down_load" #~ msgstr "/_Artikelen/Op_halen" #~ msgid "/_Articles/_Watch Thread" #~ msgstr "/_Artikelen/Discussie be_waken" #~ msgid "/_Articles/_Ignore Thread" #~ msgstr "/_Artikelen/Discussie ne_geren" #~ msgid "/_Articles/_View Article's Scores" #~ msgstr "/_Artikelen/Artikel_scores tonen" #~ msgid "/_Articles/Cancel..." #~ msgstr "/_Artikelen/Annuleren..." #~ msgid "/_Articles/Supersed_e..." #~ msgstr "/_Artikelen/_Vervangen..." #~ msgid "/_Articles/_Delete" #~ msgstr "/_Artikelen/Verwij_deren" #~ msgid "/_Post" #~ msgstr "/_Plaatsen" #~ msgid "/_Post/_Post to Newsgroup..." #~ msgstr "/_Plaatsen/In nieuwsgroep _plaatsen..." #~ msgid "/_Post/_Reply by Email..." #~ msgstr "/_Plaatsen/_Antwoorden per e-mail..." #~ msgid "/_Post/For_ward by Email..." #~ msgstr "/_Plaatsen/Doo_rsturen per e-mail..." #~ msgid "/_Post/---" #~ msgstr "/_Plaatsen/---" #~ msgid "/_Post/Send Pending _Messages" #~ msgstr "/_Plaatsen/Wachtende _berichten verzenden" #~ msgid "/_Help" #~ msgstr "/_Hulp" #~ msgid "/_Help/---" #~ msgstr "/_Hulp/---" #~ msgid "The default charset set for articles posted with this profile" #~ msgstr "" #~ "De standaard teken-codering voor artikelen geplaatst met dit profiel" #~ msgid "Pan: Edit Profile" #~ msgstr "Pan: Profiel bewerken" #~ msgid "_User Profile" #~ msgstr "_Gebruikersprofiel" #~ msgid "Cus_tom Headers" #~ msgstr "_Aangepaste kopteksten" #~ msgid "You must specify a username or disable authorization." #~ msgstr "U moet een gebruikersnaam opgeven of geen autorisatie gebruiken." #~ msgid "" #~ "Your real name contained double quotes.\n" #~ "Converting into single quotes." #~ msgstr "" #~ "Uw echte naam bevatte dubbele aanhalingstekens.\n" #~ "Deze worden omgezet naar enkele aanhalingstekens." #~ msgid "You need at least one profile" #~ msgstr "U heeft tenminste één profiel nodig" #~ msgid "Use the selected profile to create a new profile" #~ msgstr "Een nieuw profiel creëren gebaseerd op het geselecteerde profiel" #~ msgid "Wrote profiles to \"%s\"" #~ msgstr "Profielen naar \"%s\" weggeschreven" #~ msgid "/_File/_Save..." #~ msgstr "/_Bestand/_Opslaan..." #~ msgid "/_File/Clea_r" #~ msgstr "/_Bestand/Wi_ssen" #~ msgid "/_File/_Close" #~ msgstr "/_Bestand/S_luiten" #~ msgid "Pan: Status Log" #~ msgstr "Pan: Status-logboek" #~ msgid "Clear the log window" #~ msgstr "Logvenster wissen" #~ msgid "Time" #~ msgstr "Tijd" #~ msgid "Log Entry" #~ msgstr "Log melding" #~ msgid "Post anyway, despite these problems?" #~ msgstr "Toch plaatsen, ondanks deze problemen?" #~ msgid "Post anyway, despite this problem?" #~ msgstr "Toch plaatsen, ondanks dit probleem?" #~ msgid "/_File/_Save Changes" #~ msgstr "/_Bestand/Veranderingen _opslaan" #~ msgid "/_File/Save _As..." #~ msgstr "/_Bestand/Opslaan _als..." #~ msgid "/_Edit/Cu_t" #~ msgstr "/Be_werken/K_nippen" #~ msgid "/_Edit/_Copy" #~ msgstr "/Be_werken/_Kopiëren" #~ msgid "/_Edit/_Paste" #~ msgstr "/Be_werken/_Plakken" #~ msgid "/_Edit/_Rot13 Selected Text" #~ msgstr "/Be_werken/Geselecteerde tekst _Rot13-coderen" #~ msgid "/_Edit/Edit with E_xternal Editor" #~ msgstr "/Be_werken/Met e_xterne editor bewerken" #~ msgid "/_File/Send Now" #~ msgstr "/_Bestand/Nu verzenden" #~ msgid "/_File/Send Later" #~ msgstr "/_Bestand/Later verzenden" #~ msgid "Send Later" #~ msgstr "Later verzenden" #~ msgid "Rewrap" #~ msgstr "Regels opnieuw afbreken" #~ msgid "Turn line wrap on/off" #~ msgstr "Regelafbreking in-/uitschakelen" #~ msgid "Edit with an External Editor" #~ msgstr "Bewerken met externe editor" #~ msgid "Mime (single-part posts only)" #~ msgstr "Mime (alleen enkeldelige artikelen)" #~ msgid " (%lu lines in 1 article)" #~ msgstr "(%lu regels in 1 artikel)" #~ msgid "UUEncoded (universally accepted)" #~ msgstr "UUEncoded (algemeen geaccepteerd)" #~ msgid "yEnc (30 percent smaller than UUEnc but less universal)" #~ msgstr "yEnc (30 procent kleiner dan UUEnc maar minder gebruikelijk)" #~ msgid "Select the file to attach." #~ msgstr "Selecteert u het bij te voegen bestand." #~ msgid "Files to Attach" #~ msgstr "Bij te voegen bestanden" #~ msgid "Kilobytes" #~ msgstr "Kilobytes" #~ msgid "Add a File to the Attachment List" #~ msgstr "Bestand toevoegen aan bijlagenlijst" #~ msgid "Remove a File from the Attachment List" #~ msgstr "Een bestand uit de bijlagenlijst verwijderen" #~ msgid "Estimated Article Size" #~ msgstr "Geschatte artikelgrootte" #~ msgid "Organization" #~ msgstr "Organisatie" #~ msgid "The organization you're associated with." #~ msgstr "De organisatie waarvoor u werkt." #~ msgid "Charset" #~ msgstr "Karakterset" #~ msgid "" #~ "Could not convert \"%s\" to UTF-8. Article may not display correctly." #~ msgstr "" #~ "Het is onmogelijk \"%s\" naar UTF-8 te converteren. Het artikel is " #~ "wellicht niet correct leesbaar." #~ msgid "\"Followup-To: poster\": sending email to author." #~ msgstr "\"Opvolgen-naar: poster\": e-mail wordt naar auteur verzonden." #~ msgid "\"Followup-To:\" contains an email address: sending email to author." #~ msgstr "" #~ "\"Opvolgen-naar:\" bevat een e-mailadres: e-mail wordt naar auteur " #~ "verzonden." #~ msgid "New Message" #~ msgstr "Nieuw bericht" #~ msgid "" #~ "ERROR: line %d, column %d uses a character not specified in charset \"%s" #~ "\" -- possibly change your charset in \"More Headers\" to \"%s\" instead?" #~ msgstr "" #~ "FOUT: regel %d, kolom %d gebruikt een teken die niet in de codering \"%s" #~ "\" is gespecificeerd - wellicht kunt u de codering in \"Meer Koptekst\" " #~ "in \"%s\" veranderen?" #~ msgid "Save message to file" #~ msgstr "Bewaar bericht in bestand" #~ msgid "The command line was: %s" #~ msgstr "De opdrachtregel was: %s" #~ msgid "Select Color" #~ msgstr "Selecteer een kleur" #~ msgid "_Browse..." #~ msgstr "_Bladeren..." #~ msgid "Font Family" #~ msgstr "Lettertypefamilie" #~ msgid " --resume Resume tasks from last session without prompting" #~ msgstr "" #~ " --resume Taken van de vorige sessie hervatten zonder vragen" #~ msgid " --version Prints Pan's version number" #~ msgstr " --version Geeft Pan's versienummer" #~ msgid " --help Prints this message and exits" #~ msgstr " --help Geeft dit bericht en sluit af" #~ msgid "" #~ " --debug Turns on the most commonly-used options for a bug " #~ "report" #~ msgstr "" #~ " --debug Zet de meestgebruikte opties aan voor het maken van " #~ "een foutrapport" #~ msgid "" #~ " --mute Debugging tool to send new posts to console, not the " #~ "server" #~ msgstr "" #~ " --mute Debug-tool waarmee nieuwe beichten naar het console " #~ "worden gestuurd in plaats van de server" #~ msgid " --debug-cache Print debugging messages for the article cache" #~ msgstr " --debug-cache Geeft debug-berichten voor de artikelcache" #~ msgid "" #~ " --debug-sockets Print debugging messages when talking to the news " #~ "server" #~ msgstr "" #~ " --debug-sockets Geeft debug-berichten bij het communiceren met de " #~ "server" #~ msgid "" #~ " --debug-queue Print debugging messages related to managing tasks" #~ msgstr "" #~ " --debug-queue Geeft debug-berichten met betrekking to beheers-taken" #~ msgid "" #~ " --debug-decode Print debugging messages related to decoding " #~ "attachments" #~ msgstr "" #~ " --debug-decode Geeft debug-berichten met betrekking tot het decoderen " #~ "van bijlagen" #~ msgid " --debug-newsrc Print debugging messages related to .newsrc files" #~ msgstr "" #~ " --debug-newsrc Geeft debug-berichten met betrekking tot .newsrc " #~ "bestanden" #~ msgid "" #~ " --debug-gnksa Print debugging messages related to gnksa correctness" #~ msgstr "" #~ " --debug-gnksa Geeft debug-berichten met betrekking to gnksa " #~ "correctheid" #~ msgid "" #~ " --debug-trace Print debugging messages when entering/leaving " #~ "functions" #~ msgstr "" #~ " --debug-trace Geeft debug-berichten bij het binnengaan/verlaten van " #~ "functies" #~ msgid "" #~ " --debug-lock Print debugging messages related to threaded gui locks" #~ msgstr "" #~ " --debug-lock Geeft debug-berichten met betrekking tot 'threaded gui " #~ "locks'" #~ msgid "" #~ " --debug-object Print debugging messages related to refcounted objects" #~ msgstr "" #~ " --debug-object Geeft debug-berichten met betrekking tot 'refcounted' " #~ "objecten" #~ msgid "Error writing to socket." #~ msgstr "Fout bij schrijven naar socket." #~ msgid "pan.sent" #~ msgstr "pan.sent" #~ msgid "pan.sendlater" #~ msgstr "pan.sendlater" #~ msgid "Spellchecking disabled: gtkspell_init() failed with status %d" #~ msgstr "" #~ "Spellingscontrole uitgeschakeld: gtkspell_init() mislukte met status %d" #~ msgid "Restored %d tasks from last session" #~ msgstr "%d taken van de vorige sessie hersteld" #~ msgid "" #~ "Some tasks were still queued the last time Pan exited. Do you want to " #~ "resume those tasks?" #~ msgstr "" #~ "Bepaalde taken stonden nog in de wachtrij bij de laatste keer dat Pan " #~ "werd afgesloten. Wilt u deze taken hervatten?" #~ msgid "_Resume" #~ msgstr "_Doorgaan" #~ msgid "" #~ "%a - abbreviated weekday name\n" #~ "%A - full weekday name\n" #~ "%b - abbreviated month name\n" #~ "%B - full month name\n" #~ "%c - local date & time\n" #~ "%d - day of the month\n" #~ "%H - hour (24-hour clock)\n" #~ "%I - hour (12-hour clock)\n" #~ "%j - day of the year (001-366)\n" #~ "%m - month (01-12)\n" #~ "%M - minute (00-59)\n" #~ "%p - local equivalent of AM/PM\n" #~ "%S - second (00-61)\n" #~ "%x - local date\n" #~ "%X - local time\n" #~ "%y - two-digit year\n" #~ "%Y - four-digit year\n" #~ "%% - %" #~ msgstr "" #~ "%a - afgekorte naam van de dag van de week\n" #~ "%A - volledige naam van de dag van de week\n" #~ "%b - afgekorte naam van de maand\n" #~ "%B - volledige naam van de maand\n" #~ "%c - lokale datum & tijd\n" #~ "%d - dag van de maand\n" #~ "%H - uur (24-uurs klok)\n" #~ "%I - uur (12-uurs klok)\n" #~ "%j - dag van het jaar (001-366)\n" #~ "%m - maand (01-12)\n" #~ "%M - minuut (00-59)\n" #~ "%p - lokaal equivalent van AM/PM\n" #~ "%S - seconde (00-61)\n" #~ "%x - lokale datum\n" #~ "%X - lokale tijd\n" #~ "%y - tweecijferig jaar\n" #~ "%Y - viercijferig jaar\n" #~ "%% - %" #~ msgid "Color the \"sub_ject\" column" #~ msgstr "De \"_onderwerp\" kolom kleuren" #~ msgid "Articles with a Score of 9999 or higher:" #~ msgstr "Artikelen met een score van 9999 of hoger:" #~ msgid "Articles with a Score between 5000 and 9998:" #~ msgstr "Artikelen met een score tussen de 5000 en 9998:" #~ msgid "Articles with a Score between 1 and 4999:" #~ msgstr "Artikelen met een score tussen de 1 en 4999:" #~ msgid "Articles with a Score between -9998 and -1:" #~ msgstr "Artikelen met een score tussen de -9998 en -1:" #~ msgid "Articles with a Score of -9999 or lower:" #~ msgstr "Artikelen met een score van -9999 of lager:" #~ msgid "_1:" #~ msgstr "_1:" #~ msgid "_2:" #~ msgstr "_2:" #~ msgid "_3:" #~ msgstr "_3:" #~ msgid "Pane Order" #~ msgstr "Paneelvolgorde" #~ msgid "Action State" #~ msgstr "Actiestatus" #~ msgid "Article State" #~ msgstr "Artikelstatus" #~ msgid "Column Layout" #~ msgstr "Kolomindeling" #~ msgid "When a Followup subject header changes, show as _new thread" #~ msgstr "" #~ "Als een opvolgartikel het onderwerp verandert, weergeven als _nieuwe " #~ "discussie" #~ msgid "E_xpand all threads by default" #~ msgstr "Alle discussies standaard uit_klappen" # samengestelde ipv meerdelige? #~ msgid "Show complete _multipart posts as a single article" #~ msgstr "Complete _meerdelige artikelen als enkel artikel tonen" #~ msgid "Date Forma_t:" #~ msgstr "_Datumformaat:" #~ msgid "Show \"%s\" header" #~ msgstr "\"%s\"-koptekst tonen" #~ msgid "Newsreader" #~ msgstr "Nieuwslezer" #~ msgid "Characters denoting _quoted text:" #~ msgstr "Karakters die ge_citeerde tekst aangeven:" #~ msgid "Download new headers from s_ubscribed groups when starting Pan" #~ msgstr "" #~ "Nieuwe kopteksten ophalen vanuit de geabonneerde groepen bij het _starten " #~ "van Pan" #~ msgid "" #~ "Download new headers and bod_ies from subscribed groups when starting Pan" #~ msgstr "" #~ "Nieuwe kopteksten en a_rtikelinhoud ophalen vanuit de geabonneerde " #~ "groepen bij het starten van Pan" #~ msgid "Download Directory" #~ msgstr "Downloadmap" #~ msgid "Automatically remove _failed tasks from the task manager" #~ msgstr "Automatisch mi_slukte taken uit het taakbeheer verwijderen" #~ msgid "_Erase cache when exiting Pan" #~ msgstr "Buffer _legen wanneer Pan wordt afgesloten" #~ msgid "Ma_ximum Cache Size (Megs):" #~ msgstr "Ma_ximum buffergrootte (MB's):" #~ msgid "_Editor (%t is filename):" #~ msgstr "_Editor (%t is een bestandsnaam):" #~ msgid "" #~ "Scorefile _Editor:\n" #~ "(%t is filename, %n is line number)" #~ msgstr "" #~ "Scorebestand _editor:\n" #~ "(%t is een bestandsnaam, %n is een regelnummer)" #~ msgid "Scorefile" #~ msgstr "Scorebestand" #~ msgid "Score_file" #~ msgstr "Score_bestand" #~ msgid "Sending Mail" #~ msgstr "Versturen van e-mail" #~ msgid "Mail Server Add_ress:" #~ msgstr "A_dres van e-mailserver:" #~ msgid "Mail Server Por_t:" #~ msgstr "_Poort van e-mailserver:" #~ msgid "Hea_der Pane" #~ msgstr "_Kopteksten-paneel" #~ msgid "A_pps & Mail" #~ msgstr "Toepassingen & mail" #~ msgid "You haven't loaded an article to print." #~ msgstr "U heeft geen artikel geladen om af te drukken." #~ msgid "" #~ "%s\n" #~ "\n" #~ "Matches: %u\n" #~ "Group: %s\n" #~ "Rule: %s" #~ msgstr "" #~ "%s\n" #~ "\n" #~ "Overeenkomsten: %u\n" #~ "Groep: %s\n" #~ "Regel: %s" #~ msgid "Mark as" #~ msgstr "Markeren als" #~ msgid "_Flag body for download" #~ msgstr "Inhoud _vlaggen om op te halen" #~ msgid "_Retrieve Body" #~ msgstr "_Inhoud ophalen" #~ msgid "_Watch thread (highlights the thread)" #~ msgstr "Discussie _bewaken (laat discussie oplichten)" #~ msgid "_Ignore thread (hides the thread by default)" #~ msgstr "Discussie _negeren (verbergt discussie standaard)" #~ msgid "Rule applies to all newsgroups" #~ msgstr "Regel geldt voor alle nieuwsgroepen" #~ msgid "Wildcard group specification:" #~ msgstr "Joker-groepspecificatie:" #~ msgid "(e.g., *anime*)" #~ msgstr "(bijv., *anime*)" #~ msgid "Rule applies to specific newsgroups:" #~ msgstr "Regel geldt voor specifieke nieuwsgroepen:" #~ msgid "Rule applies to:" #~ msgstr "Regel geldt voor:" #~ msgid "Rule Name:" #~ msgstr "Regelnaam:" #~ msgid "Apply to Incoming" #~ msgstr "Toepassen op binnenkomende" #~ msgid "" #~ "If enabled, this rule will be applied to headers when they are downloaded." #~ msgstr "" #~ "Indien ingeschakeld zal deze regel toegepast worden op kopteksten wanneer " #~ "deze worden opgehaald." #~ msgid "New Rule" #~ msgstr "Nieuwe regel" #~ msgid "Delete Articles by Bozos" #~ msgstr "Artikelen van sukkels verwijderen" #~ msgid "Applying rule to selected groups" #~ msgstr "Bezig met toepassen van de regel op de geselecteerde groepen" #~ msgid "Applying rule \"%s\" to group \"%s\"" #~ msgstr "Bezig met toepassen regel \"%s\" op groep \"%s\"" #~ msgid "Rules" #~ msgstr "Regels" #~ msgid "Hit Ratio" #~ msgstr "Treffers" #~ msgid "" #~ "Apply to\n" #~ "Selected\n" #~ "Groups" #~ msgstr "" #~ "Toepassen op\n" #~ "geselecteerde\n" #~ "groepen" #~ msgid "" #~ "Apply to\n" #~ "Subscribed\n" #~ "Groups" #~ msgstr "" #~ "Toepassen op\n" #~ "geabonneerde\n" #~ "groepen" #~ msgid "Wrote rules to \"%s\"" #~ msgstr "Regels naar \"%s\" weggeschreven" #~ msgid "" #~ "Can't find filter \"%s\" needed by rule \"%s\", so no articles match." #~ msgstr "" #~ "Kan filter \"%s\" niet vinden, welke benodigd is door regel \"%s\", dus " #~ "er komen geen artikelen overeen." #~ msgid "%u articles match rule %s" #~ msgstr "%u artikelen voldoen aan regel %s" #~ msgid "Pan: Manual Decode" #~ msgstr "Pan: Handmatig decoderen" #~ msgid "Save Files in Directory" #~ msgstr "Bestanden opslaan in map" #~ msgid "_Directory:" #~ msgstr "_Map:" #~ msgid "Add to the _top of the Task Manager's List" #~ msgstr "Taak toevoegen _bovenaan het taakoverzicht" #~ msgid "Criterion \"%s\" is selected, but empty." #~ msgstr "Criterium \"%s\" is geselecteerd, maar leeg." #~ msgid "No criteria are selected." #~ msgstr "Geen criteria geselecteerd." #~ msgid "Pan: Add to Scorefile" #~ msgstr "Pan: Aan scorebestand toevoegen" #~ msgid "Su_bject:" #~ msgstr "_Onderwerp:" #~ msgid "A_uthor:" #~ msgstr "_Auteur:" #~ msgid "_Lines:" #~ msgstr "Re_gels_" #~ msgid "at least N lines long" #~ msgstr "tenminste N regels lang" #~ msgid "less than N lines long" #~ msgstr "minder dan N regels lang" # Veranderen #~ msgid "Chan_ge Score:" #~ msgstr "Score _aanpassen:" #~ msgid "subtract" #~ msgstr "aftrekken" #~ msgid "Expire in N _days:" #~ msgstr "Verlopen in N _dagen:" # aanpassen hier beter dan bewerken #~ msgid "Edit the selected score" #~ msgstr "De geselecteerde score aanpassen" #~ msgid "You must specify an address." #~ msgstr "U moet een adres opgeven." #~ msgid "You must specify a password or disable authorization." #~ msgstr "U moet een wachtwoord opgeven of geen autorisatie gebruiken." #~ msgid "You must specify a .newsrc filename or disable newsrc support." #~ msgstr "" #~ "U moet een .newsrc bestandsnaam opgeven of ondersteuning voor newsrc " #~ "uitzetten." #~ msgid "Newsrc" #~ msgstr "Newsrc" #~ msgid "Us_e .newsrc file" #~ msgstr ".newsrc-bestand gebruiken" #~ msgid "Select .newsrc File" #~ msgstr "Selecteer het .newsrc-bestand" #~ msgid "_Filename:" #~ msgstr "_Bestandsnaam:" #~ msgid "Edit the selected server" #~ msgstr "De geselecteerde server bewerken" #~ msgid "Remove the selected server" #~ msgstr "De geselecteerde server verwijderen" #~ msgid "Got unexpected response from mail server: expected %d; got %s" #~ msgstr "Onbekend antwoord van mailserver: verwacht %d; krijg %s" #~ msgid "Sending mail" #~ msgstr "Bezig met verzenden e-mail" #~ msgid "No known recipients" #~ msgstr "Geen bekende ontvangers" #~ msgid "Mail sent!" #~ msgstr "E-mail verzonden!" #~ msgid "Handshaking with mail server" #~ msgstr "Bezig met e-mailserver handshake" #~ msgid "Connecting to mail server" #~ msgstr "Bezig met verbinden met e-mailserver" #~ msgid "Mail server not ready" #~ msgstr "E-mailserver niet gereed" #~ msgid "New connection %p for %s, port %d" #~ msgstr "Nieuwe verbinding %p voor %s, poort %d" #~ msgid "Downloading %u articles" #~ msgstr "Bezig met ophalen van %u artikelen" #~ msgid "Downloading 1 article" #~ msgstr "Bezig met ophalen van 1 artikel" #~ msgid "Downloading %d articles" #~ msgstr "Downloaden van %d artikelen" #~ msgid "\"%s\"" #~ msgstr "\"%s\"" #~ msgid "Article %s (%s) canceled" #~ msgstr "Artikel %s (%s) geannuleerd" #~ msgid "Updating article counts for %u groups from server \"%s\"" #~ msgstr "" #~ "Bezig met vernieuwen artikeltellers voor %u groepen van server \"%s\"" #~ msgid "Got %d group descriptions" #~ msgstr "%d groepsomschrijvingen opgehaald" #~ msgid "Fetching group descriptions" #~ msgstr "Ophalen groepsomschrijvingen" #~ msgid "Getting %d new groups from server \"%s\"" #~ msgstr "Bezig met ophalen van %d nieuwe groepen van server \"%s\"" #~ msgid "Corrupt header skipped: %s" #~ msgstr "Corrupte koptekst overgeslagen: %s" #~ msgid "Fetched %u headers for \"%s\"" #~ msgstr "%u Kopteksten voor \"%s\" opgehaald" #~ msgid "New %lu of %lu" #~ msgstr "Nieuw %lu uit %lu" #~ msgid "Sampling %lu of %lu" #~ msgstr "Bezig met klaarmaken berichtkop %lu van %lu" #~ msgid "All %lu of %lu" #~ msgstr "Alle %lu uit %lu" #~ msgid "Not Queued" #~ msgstr "Niet in de wachtrij" #~ msgid "Stopping" #~ msgstr "Stoppende" #~ msgid "Pan %s Task Manager" #~ msgstr "Pan %s Taakbeheer" #~ msgid "Move Selected Task(s) Up" #~ msgstr "Geselecteerde taken omhoog verplaatsen" #~ msgid "Move Selected Task(s) to Top" #~ msgstr "Geselecteerde taken bovenaan zetten" #~ msgid "Move Selected Task(s) Down" #~ msgstr "Geselecteerde taken omlaag verplaatsen" #~ msgid "Stop Selected Task(s)" #~ msgstr "Geselecteerde taken afbreken" #~ msgid "Delete Selected Task(s)" #~ msgstr "Geselecteerde taken verwijderen" #~ msgid "Time Remaining" #~ msgstr "Overblijvende tijd" #~ msgid "Article \"%s\" posted." #~ msgstr "Artikel \"%s\" is geplaatst." #~ msgid "Article \"%s\" not posted." #~ msgstr "Artikel \"%s\" is niet geplaatst." #~ msgid "Usenet posting failed. " #~ msgstr "Verzenden van nieuwsgroepbericht mislukt. " #~ msgid "Check Tools|Log Viewer for more information. " #~ msgstr "Zie Extra|Logboek-weergave voor meer informatie. " #~ msgid "Your message was saved in the folder \"pan.sendlater\"" #~ msgstr "Uw bericht is opgeslagen in de map \"pan.sendlater\"" #~ msgid "Saving Attachments" #~ msgstr "Bezig met opslaan bijlagen" #~ msgid "Save Article can't access path \"%s\"" #~ msgstr "Artikel opslaan heeft geen toegang tot het pad \"%s\"" #~ msgid "Saved article body to \"%s\"" #~ msgstr "Artikelinhoud opgeslagen naar \"%s\"" #~ msgid "X-Newsreader" #~ msgstr "X-Nieuwslezer" #~ msgid "X-Mailer" #~ msgstr "X-Mailprogramma" #~ msgid "User-Agent" #~ msgstr "Gebruikersagent" #~ msgid "" #~ "Pan %s\n" #~ "Copyright (c) %d by Charles Kerr\n" #~ "\n" #~ "If you find a bug, please report it.\n" #~ "\n" #~ msgstr "" #~ "Pan %s\n" #~ "Copyright © %d Charles Kerr\n" #~ "\n" #~ "Als u een fout ontdekt, rapporteer deze dan aub.\n" #~ "\n" #~ msgid "" #~ "http://pan.rebelbase.com/ - Pan Homepage\n" #~ "http://pan.rebelbase.com/bugs/ - Report a Bug\n" #~ "http://pan.rebelbase.com/download/ - Upgrade\n" #~ "\n" #~ msgstr "" #~ "http://pan.rebelbase.com/ - Pan Homepage\n" #~ "http://pan.rebelbase.com/bugs/ - Een fout rapporteren\n" #~ "http://pan.rebelbase.com/download/ - Upgraden\n" #~ "\n" #~ msgid "" #~ "This program is free software; you can redistribute it\n" #~ "and/or modify it under the terms of the GNU General Public\n" #~ "License as published by the Free Software Foundation;\n" #~ "version 2 of the License.\n" #~ "\n" #~ "This program is distributed in the hope that it will be\n" #~ "useful, but WITHOUT ANY WARRANTY; without even the implied\n" #~ "warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\n" #~ "PURPOSE. See the GNU General Public License for more\n" #~ "details.\n" #~ "\n" #~ "The GNU Public License can be found from the menu above\n" #~ "in Help|About|License." #~ msgstr "" #~ "Dit programma is vrije software; u kunt het verspreiden\n" #~ "en/of veranderen onder de voorwaarden die gesteld zijn in de\n" #~ "GNU General Public License die gepubliceerd is bij de \n" #~ "Free Software Foundation; versie 2 van de licentie.\n" #~ "\n" #~ "Dit programma is verspreid in de hoop dat het nuttig zal\n" #~ "zijn, maar ZONDER ENIGE GARANTIE; zonder zelfs een\n" #~ "geïmliceerde garantie van VERKOOPBAARHEID of GESCHIKTHEID\n" #~ "VOOR EEN BEPAALD DOEL. Zie de GNU General Public License\n" #~ "voor verdere details.\n" #~ "\n" #~ "De GNU Public License vindt u via het menu hierboven in \n" #~ "Hulp|Info|Licentie." #~ msgid "Error starting external browser: %s" #~ msgstr "" #~ "Er is een fout opgetreden bij het starten van de externe browser: %s" #~ msgid "Error starting external scorefile editor: %s" #~ msgstr "" #~ "Er is een fout opgetreden bij het starten van de externe editor voor het " #~ "scorebestand: %s" #~ msgid "" #~ msgstr "" #~ msgid "/_Tools" #~ msgstr "/E_xtra" #~ msgid "/_Tools/---" #~ msgstr "/E_xtra/---" #~ msgid "/_Servers/Get List of _New Groups" #~ msgstr "/_Servers/Lijst van _nieuwe nieuwsgroepen ophalen" #~ msgid "NNTP handshake failed: %s" #~ msgstr "NNTP 'handshake' mislukt: %s" #~ msgid "Handshake failed: %s" #~ msgstr "Handshake mislukt: %s" #~ msgid "Handshake: %s" #~ msgstr "Handshake: %s" #~ msgid "Authentication failed: bad handshake for SPA password" #~ msgstr "Aanmelding mislukt: ongeldige handshake voor SPA-wachtwoord" #~ msgid "Bad SPA handshake: %s" #~ msgstr "Ongeldige SPA-handshake: %s" #~ msgid "Authentication failed: need a password" #~ msgstr "Authenticatie mislukt: Een wachtwoord is vereist" #~ msgid "Authentication failed: %s" #~ msgstr "Authenticatie mislukt: %s" #~ msgid "%*.*s handshake failed: %s" #~ msgstr "%*.*s handshake mislukt: %s" #~ msgid "No supported authentication mechanism" #~ msgstr "Geen ondersteund aanmeldingsmechanisme" #~ msgid "No password found!" #~ msgstr "Geen wachtwoord gevonden!" #~ msgid "MODE READER check failed: %s" #~ msgstr "MODE LEZER controle mislukt: %s" #~ msgid "Posting failed. Server said: %s" #~ msgstr "Plaatsing is mislukt. De server zei: %s" #~ msgid "Posting complete. Server said: %s" #~ msgstr "Plaatsing compleet. De server zei: %s" #~ msgid "Getting header list failed: %s" #~ msgstr "Koppen lijst ophalen mislukt: %s" #~ msgid "Getting %d of %d" #~ msgstr "Bezig met ophalen %d van %d" #~ msgid "Sending Keepalive" #~ msgstr "Bezig met verzenden 'blijf leven'" #~ msgid "Disconnecting Idle" #~ msgstr "Bezig met verbreken van inactieve verbinding" #~ msgid "Disconnecting one connection from `%s' after %d seconds idle" #~ msgstr "" #~ "Bezig met verbreken van een verbinding van `%s' na %d seconden " #~ "inactiviteit" #~ msgid "Connection to %*.*s, port %d failed: %s" #~ msgstr "Verbinding met %*.*s, poort %d mislukt: %s" #~ msgid "Downloading %d" #~ msgstr "Bezig met ophalen %d" #~ msgid "Updated counts for %u groups out of %u" #~ msgstr "Totalen voor %u uit %u groepen vernieuwd" #~ msgid "Unable to update counts for group \"%s\"" #~ msgstr "Niet in staat de artikeltellers te vernieuwen voor groep \"%s\"" #~ msgid "Adding groups to server \"%s\"" #~ msgstr "Bezig met toevoegen van groepen bij server \"%s\"" #~ msgid "List Newsgroups failed: %s" #~ msgstr "Vergaren van Lijst van Nieuwsgroepen mislukt: %s" #~ msgid "New groups retrieval failed: %s" #~ msgstr "Ophalen van nieuwe groepen mislukt: %s" #~ msgid "No new articles in group \"%s\"" #~ msgstr "Geen nieuwe berichten in groep \"%s\"" #~ msgid "[This is an email copy of a Usenet post to \"%s\"]" #~ msgstr "[Dit is een e-mailkopie van een nieuwsgroepbericht naar \"%s\"]" #~ msgid "Email \"%s\" sent." #~ msgstr "E-mailbericht \"%s\" is verzonden." #~ msgid "Email \"%s\" not sent." #~ msgstr "E-mailbericht \"%s\" is niet verzonden." #~ msgid "Posting and mailing article \"%s\"" #~ msgstr "Bezig met plaatsen en e-mailen van artikel \"%s\"" #~ msgid "Mailing article \"%s\"" #~ msgstr "Bezig met e-mailen van artikel \"%s\"" #~ msgid "Email send failed. " #~ msgstr "Verzenden van e-mail mislukt. " #~ msgid "Saving `%s'" #~ msgstr "Bezig met bewaren `%s'" #~ msgid "Incomplete Profile." #~ msgstr "Incompleet profiel" #~ msgid "No articles found for group \"%s\"" #~ msgstr "Geen berichten gevonden voor groep \"%s\"" pan-0.162/po/oc.po000066400000000000000000002140121475412772400136740ustar00rootroot00000000000000# Translation of oc.po to Occitan # Occitan translation of pan2. # Copyright (C) 2007 Free Software Foundation, Inc. # This file is distributed under the same license as the pan2 package. # # Yannig Marchegay (Kokoyaya) , 2007. msgid "" msgstr "" "Project-Id-Version: oc\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-04-04 20:58+0200\n" "PO-Revision-Date: 2007-12-29 17:07+0100\n" "Last-Translator: Yannig Marchegay (Kokoyaya) \n" "Language-Team: Occitan \n" "Language: oc\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: ../pan.desktop.in.h:1 msgid "Pan Newsreader" msgstr "Legidor de novèlas Pan" #: ../pan.desktop.in.h:2 msgid "Read and Post Usenet Articles" msgstr "" #: ../pan/data/article-cache.cc:143 ../pan/data/encode-cache.cc:62 #, c-format msgid "Error opening directory: \"%s\": %s" msgstr "" #: ../pan/data/article-cache.cc:231 ../pan/data/article-cache.cc:242 #: ../pan/data-impl/data-io.cc:187 ../pan/data-impl/data-io.cc:211 #: ../pan/gui/post-ui.cc:1639 #, c-format msgid "Unable to save \"%s\" %s" msgstr "" #: ../pan/data/article-cache.cc:355 #, c-format msgid "Error opening file \"%s\" %s" msgstr "Error al moment de dobrir lo fichièr \"%s\" %s" #: ../pan/data/article-cache.cc:386 ../pan/data-impl/profiles.cc:174 #: ../pan/data-impl/server.cc:436 ../pan/general/file-util.cc:298 #: ../pan/gui/post-ui.cc:609 ../pan/gui/task-pane.cc:691 #, c-format msgid "Error reading file \"%s\": %s" msgstr "Error al moment de legir lo fichièr \"%s\" : %s" #: ../pan/data/cert-store.cc:238 #, fuzzy, c-format msgid "Error opening SSL certificate directory: \"%s\": %s" msgstr "Error al moment de dobrir lo fichièr \"%s\" %s" #: ../pan/data/cert-store.cc:270 #, c-format msgid "Succesfully added %d SSL PEM certificate(s) to Certificate Store." msgstr "" #. load_group_descriptions (*_data_io); #: ../pan/data-impl/data-impl.cc:109 #, c-format msgid "Loaded data backend in %.1f seconds" msgstr "" #: ../pan/data-impl/data-impl.cc:140 msgid "Pan newsreader server passwords" msgstr "" #: ../pan/data-impl/groups.cc:94 #, c-format msgid "Skipping newsrc file for server \"%s\"" msgstr "" #: ../pan/data-impl/headers.cc:606 #, c-format msgid "Expired %lu old articles from \"%s\"" msgstr "" #: ../pan/data-impl/headers.cc:613 #, c-format msgid "" "Unsupported data version for %s headers: %d.\n" "Are you running an old version of Pan by accident?" msgstr "" #: ../pan/data-impl/headers.cc:628 #, c-format msgid "Loaded %lu articles for \"%s\" in %.1f seconds (%.0f per second)" msgstr "" #: ../pan/data-impl/headers.cc:857 #, c-format msgid "" "Saved %lu parts, %lu articles in \"%s\" in %.1f seconds (%.0f articles/sec)" msgstr "" #: ../pan/data-impl/headers.cc:1173 #, c-format msgid "Added %lu articles to %s." msgstr "" #: ../pan/data-impl/server.cc:234 #, c-format msgid "There seems to be no Password set for Server %s." msgstr "" #: ../pan/data-impl/server.cc:238 msgid "The Gnome keyring denied access to the Passwords." msgstr "" #: ../pan/data-impl/xover.cc:239 #, c-format msgid "Error reading from %s: unknown group \"%s\"" msgstr "" #. build the locale strings #: ../pan/general/e-util.cc:213 msgid "%l:%M %p" msgstr "%l:%M %p" #: ../pan/general/e-util.cc:214 msgid "Today %l:%M %p" msgstr "Uèi %l:%M %p" #: ../pan/general/e-util.cc:215 msgid "%a %l:%M %p" msgstr "%a %l:%M %p" #: ../pan/general/e-util.cc:216 msgid "%b %d %l:%M %p" msgstr "%b %d %l:%M %p" #: ../pan/general/e-util.cc:217 msgid "%b %d %Y" msgstr "%b %d %Y" #: ../pan/general/e-util.cc:242 msgid "?" msgstr "?" #: ../pan/general/text-match.cc:193 #, c-format msgid "Can't use regular expression \"%s\": %s" msgstr "" #: ../pan/general/utf8-utils.cc:213 msgid "Couldn't determine article encoding. Non-UTF8 characters were removed." msgstr "" #: ../pan/gui/actions.cc:274 ../pan/gui/post-ui.cc:417 msgid "_File" msgstr "_Fichièr" #: ../pan/gui/actions.cc:275 ../pan/gui/post-ui.cc:418 msgid "_Edit" msgstr "_Edicion" #: ../pan/gui/actions.cc:276 ../pan/gui/prefs-ui.cc:1064 msgid "_Layout" msgstr "" #: ../pan/gui/actions.cc:277 msgid "_Group Pane" msgstr "" #: ../pan/gui/actions.cc:278 msgid "_Header Pane" msgstr "" #: ../pan/gui/actions.cc:279 msgid "_Body Pane" msgstr "" #: ../pan/gui/actions.cc:280 msgid "_View" msgstr "_Visualizacion" #: ../pan/gui/actions.cc:281 msgid "Filte_r" msgstr "" #: ../pan/gui/actions.cc:282 msgid "_Go" msgstr "_Anar" #: ../pan/gui/actions.cc:283 ../pan/gui/prefs-ui.cc:1091 msgid "_Actions" msgstr "_Accions" #: ../pan/gui/actions.cc:284 msgid "_Articles" msgstr "_Articles" #: ../pan/gui/actions.cc:285 msgid "G_roups" msgstr "G_rops" #: ../pan/gui/actions.cc:286 ../pan/gui/actions.cc:287 msgid "_Post" msgstr "" #: ../pan/gui/actions.cc:288 msgid "_Help" msgstr "_Ajuda" #: ../pan/gui/actions.cc:291 msgid "_Read Group" msgstr "" #: ../pan/gui/actions.cc:292 #, fuzzy msgid "Read Group" msgstr "%d grops" #: ../pan/gui/actions.cc:296 msgid "_Mark Selected Groups Read" msgstr "" #: ../pan/gui/actions.cc:297 msgid "Mark Selected Groups Read" msgstr "" #: ../pan/gui/actions.cc:301 msgid "_Delete Selected Groups' Articles" msgstr "" #: ../pan/gui/actions.cc:302 #, fuzzy msgid "Delete Selected Groups' Articles" msgstr "Seleccionar _totes los articles" #: ../pan/gui/actions.cc:306 msgid "Get New _Headers in Selected Groups" msgstr "" #: ../pan/gui/actions.cc:307 msgid "Get New Headers in Selected Groups" msgstr "" #: ../pan/gui/actions.cc:311 ../pan/gui/actions.cc:316 msgid "Get New _Headers in Subscribed Groups" msgstr "" #: ../pan/gui/actions.cc:312 ../pan/gui/actions.cc:317 msgid "Get New Headers in Subscribed Groups" msgstr "" #: ../pan/gui/actions.cc:321 msgid "Get _Headers..." msgstr "Obténer los _encaps..." #: ../pan/gui/actions.cc:322 #, fuzzy msgid "Get Headers..." msgstr "Obténer los _encaps..." #: ../pan/gui/actions.cc:326 ../pan/gui/actions.cc:327 msgid "Refresh Group List" msgstr "" #: ../pan/gui/actions.cc:331 msgid "_Subscribe" msgstr "_S'inscriure" #: ../pan/gui/actions.cc:332 #, fuzzy msgid "Subscribe" msgstr "_S'inscriure" #: ../pan/gui/actions.cc:336 msgid "_Unsubscribe" msgstr "" #: ../pan/gui/actions.cc:337 #, fuzzy msgid "Unsubscribe" msgstr "_S'inscriure" #: ../pan/gui/actions.cc:341 msgid "_Save Articles..." msgstr "_Enregistrar los articles..." #: ../pan/gui/actions.cc:342 #, fuzzy msgid "Save Articles..." msgstr "_Enregistrar los articles..." #: ../pan/gui/actions.cc:346 #, fuzzy msgid "Save Articles from Selected _NZB..." msgstr "_Enregistrar los articles..." #: ../pan/gui/actions.cc:347 #, fuzzy msgid "Save Articles from Selected NZB" msgstr "Enregistrar los articles" #: ../pan/gui/actions.cc:351 #, fuzzy msgid "Save Articles to an NZB _File..." msgstr "_Enregistrar los articles..." #: ../pan/gui/actions.cc:352 #, fuzzy msgid "Save Articles to an NZB File" msgstr "Enregistrar los articles" #: ../pan/gui/actions.cc:356 ../pan/gui/actions.cc:357 msgid "Print" msgstr "" #: ../pan/gui/actions.cc:361 msgid "_Import NZB Files..." msgstr "" #: ../pan/gui/actions.cc:366 msgid "_Cancel Last Task" msgstr "_Anullar lo darrièr prètzfach" #: ../pan/gui/actions.cc:371 msgid "_Task Manager" msgstr "" #: ../pan/gui/actions.cc:376 msgid "_Event Log" msgstr "" #: ../pan/gui/actions.cc:381 msgid "_Quit" msgstr "_Sortir" #: ../pan/gui/actions.cc:386 msgid "Select _All Articles" msgstr "Seleccionar _totes los articles" #: ../pan/gui/actions.cc:391 msgid "_Deselect All Articles" msgstr "" #: ../pan/gui/actions.cc:396 msgid "Add Su_bthreads to Selection" msgstr "" #: ../pan/gui/actions.cc:401 msgid "Add _Threads to Selection" msgstr "" #: ../pan/gui/actions.cc:406 msgid "Add _Similar Articles to Selection" msgstr "" #: ../pan/gui/actions.cc:411 msgid "Select Article _Body" msgstr "" #: ../pan/gui/actions.cc:416 msgid "Edit _Preferences" msgstr "Modificar las _preferéncias" #: ../pan/gui/actions.cc:421 msgid "Edit Selected _Group's Preferences" msgstr "" #: ../pan/gui/actions.cc:426 ../pan/gui/post-ui.cc:434 msgid "Edit P_osting Profiles" msgstr "" #: ../pan/gui/actions.cc:431 msgid "Edit _News Servers" msgstr "Modificar los servidors de _novèlas" #: ../pan/gui/actions.cc:436 msgid "Jump to _Group Tab" msgstr "" #: ../pan/gui/actions.cc:441 msgid "Jump to _Header Tab" msgstr "" #: ../pan/gui/actions.cc:446 msgid "Jump to _Body Tab" msgstr "" #: ../pan/gui/actions.cc:451 msgid "_Rot13 Selected Text" msgstr "" #: ../pan/gui/actions.cc:456 msgid "Clear _Header Pane" msgstr "" #: ../pan/gui/actions.cc:461 msgid "Clear _Body Pane" msgstr "" #: ../pan/gui/actions.cc:466 msgid "Cache Article" msgstr "" #: ../pan/gui/actions.cc:471 msgid "Read Article" msgstr "" #: ../pan/gui/actions.cc:476 msgid "Show Article Information" msgstr "" #: ../pan/gui/actions.cc:481 msgid "Read _More" msgstr "" #: ../pan/gui/actions.cc:482 msgid "Read More" msgstr "" #: ../pan/gui/actions.cc:486 msgid "Read _Back" msgstr "" #: ../pan/gui/actions.cc:487 #, fuzzy msgid "Read Back" msgstr "Tornar" #: ../pan/gui/actions.cc:491 msgid "Next _Unread Group" msgstr "" #: ../pan/gui/actions.cc:496 msgid "Next _Group" msgstr "_Grop seguent" #: ../pan/gui/actions.cc:501 msgid "Next _Unread Article" msgstr "" #: ../pan/gui/actions.cc:502 #, fuzzy msgid "Next Unread Article" msgstr "_Article seguent" #: ../pan/gui/actions.cc:506 msgid "Next _Article" msgstr "_Article seguent" #: ../pan/gui/actions.cc:507 #, fuzzy msgid "Next Article" msgstr "_Article seguent" #: ../pan/gui/actions.cc:511 msgid "Next _Watched Article" msgstr "" #: ../pan/gui/actions.cc:516 msgid "Next Unread _Thread" msgstr "" #: ../pan/gui/actions.cc:517 msgid "Next Unread Thread" msgstr "" #: ../pan/gui/actions.cc:521 msgid "Next Threa_d" msgstr "" #: ../pan/gui/actions.cc:526 msgid "Pre_vious Article" msgstr "" #: ../pan/gui/actions.cc:531 msgid "Previous _Thread" msgstr "" #: ../pan/gui/actions.cc:536 msgid "_Parent Article" msgstr "" #: ../pan/gui/actions.cc:541 msgid "Ignore _Author" msgstr "" #: ../pan/gui/actions.cc:545 msgid "_Watch Thread" msgstr "" #: ../pan/gui/actions.cc:550 msgid "_Ignore Thread" msgstr "" #: ../pan/gui/actions.cc:555 ../pan/gui/actions.cc:556 msgid "_Toggle Flag On/Off for Thread" msgstr "" #: ../pan/gui/actions.cc:560 ../pan/gui/actions.cc:561 msgid "_Turn Flag Off for Thread" msgstr "" #: ../pan/gui/actions.cc:565 ../pan/gui/actions.cc:566 msgid "_Select All Flagged Threads" msgstr "" #: ../pan/gui/actions.cc:570 ../pan/gui/actions.cc:571 msgid "_Go to Next Flagged Thread" msgstr "" #: ../pan/gui/actions.cc:575 ../pan/gui/actions.cc:576 msgid "_Go to Last Flagged Thread" msgstr "" #: ../pan/gui/actions.cc:580 ../pan/gui/actions.cc:581 msgid "_Invert Selection" msgstr "" #: ../pan/gui/actions.cc:585 msgid "Edit Article's Watch/Ignore/Score..." msgstr "" #: ../pan/gui/actions.cc:590 msgid "Add a _Scoring Rule..." msgstr "" #: ../pan/gui/actions.cc:595 msgid "Cance_l Article..." msgstr "Anul_lar l'article..." #: ../pan/gui/actions.cc:600 msgid "_Supersede Article..." msgstr "" #: ../pan/gui/actions.cc:605 msgid "_Delete Article" msgstr "_Suprimir l'article" #: ../pan/gui/actions.cc:610 msgid "Clear Article Cache" msgstr "Voidar l'escondedor de l'article" #: ../pan/gui/actions.cc:615 msgid "_Mark Article as Read" msgstr "" #: ../pan/gui/actions.cc:620 msgid "Mark Article as _Unread" msgstr "" #: ../pan/gui/actions.cc:626 msgid "_Mark Thread as Read" msgstr "" #: ../pan/gui/actions.cc:631 msgid "Mark Thread as _Unread" msgstr "" #: ../pan/gui/actions.cc:636 msgid "_Post to Newsgroup" msgstr "" #: ../pan/gui/actions.cc:637 msgid "Post to Newsgroup" msgstr "" #: ../pan/gui/actions.cc:641 msgid "_Followup to Newsgroup" msgstr "" #: ../pan/gui/actions.cc:642 msgid "Followup to Newsgroup" msgstr "" #: ../pan/gui/actions.cc:646 msgid "_Reply to Author in Mail" msgstr "" #: ../pan/gui/actions.cc:651 msgid "_Pan Home Page" msgstr "" #: ../pan/gui/actions.cc:656 msgid "Give _Feedback or Report a Bug..." msgstr "" #: ../pan/gui/actions.cc:661 msgid "_Tip Jar..." msgstr "" #: ../pan/gui/actions.cc:666 msgid "_About" msgstr "_A prepaus" #: ../pan/gui/actions.cc:671 msgid "Edit _SSL Certificates" msgstr "" #: ../pan/gui/actions.cc:685 msgid "_Thread Headers" msgstr "" #: ../pan/gui/actions.cc:686 msgid "_Wrap Article Body" msgstr "" #: ../pan/gui/actions.cc:687 msgid "Mute _Quoted Text" msgstr "" #: ../pan/gui/actions.cc:688 msgid "Show All _Headers in Body Pane" msgstr "" #: ../pan/gui/actions.cc:689 msgid "Show _Smilies as Graphics" msgstr "" #: ../pan/gui/actions.cc:690 msgid "Show *Bold*, __Underlined__, and /Italic/" msgstr "" #: ../pan/gui/actions.cc:691 msgid "Size Pictures to _Fit" msgstr "" #: ../pan/gui/actions.cc:692 msgid "Use _Monospace Font" msgstr "" #: ../pan/gui/actions.cc:693 msgid "Set Focus to Images" msgstr "" #: ../pan/gui/actions.cc:694 msgid "Highlight _URLs" msgstr "" #: ../pan/gui/actions.cc:697 msgid "_Work Online" msgstr "_Trabalhar connectat" #: ../pan/gui/actions.cc:698 msgid "_Tabbed Layout" msgstr "" #: ../pan/gui/actions.cc:699 msgid "Show Group _Pane" msgstr "" #: ../pan/gui/actions.cc:700 msgid "Show Hea_der Pane" msgstr "" #: ../pan/gui/actions.cc:701 msgid "Show Bod_y Pane" msgstr "" #: ../pan/gui/actions.cc:702 msgid "Show _Toolbar" msgstr "Visualizar la _barra d'espleches" #: ../pan/gui/actions.cc:703 msgid "Abbreviate Group Names" msgstr "" #: ../pan/gui/actions.cc:705 msgid "Match Only _Unread Articles" msgstr "" #: ../pan/gui/actions.cc:705 msgid "Match Only Unread Articles" msgstr "" #: ../pan/gui/actions.cc:706 msgid "Match Only _Cached Articles" msgstr "" #: ../pan/gui/actions.cc:706 #, fuzzy msgid "Match Only Cached Articles" msgstr "Pan : Enregistrar d'articles" #: ../pan/gui/actions.cc:707 msgid "Match Only _Complete Articles" msgstr "" #: ../pan/gui/actions.cc:707 msgid "Match Only Complete Articles" msgstr "" #: ../pan/gui/actions.cc:708 msgid "Match Only _My Articles" msgstr "" #: ../pan/gui/actions.cc:708 #, fuzzy msgid "Match Only My Articles" msgstr "Pan : Enregistrar d'articles" #: ../pan/gui/actions.cc:709 msgid "Match Only _Watched Articles" msgstr "" #: ../pan/gui/actions.cc:709 #, fuzzy msgid "Match Only Watched Articles" msgstr "Pan : Enregistrar d'articles" #: ../pan/gui/actions.cc:711 msgid "Match Scores of 9999 (_Watched)" msgstr "" #: ../pan/gui/actions.cc:712 msgid "Match Scores of 5000...9998 (_High)" msgstr "" #: ../pan/gui/actions.cc:713 msgid "Match Scores of 1...4999 (Me_dium)" msgstr "" #: ../pan/gui/actions.cc:714 msgid "Match Scores of 0 (_Normal)" msgstr "" #: ../pan/gui/actions.cc:715 msgid "Match Scores of -9998...-1 (_Low)" msgstr "" #: ../pan/gui/actions.cc:716 msgid "Match Scores of -9999 (_Ignored)" msgstr "" #: ../pan/gui/actions.cc:718 msgid "Enable/Disable All _Rules" msgstr "" #: ../pan/gui/actions.cc:744 msgid "Show Matching _Articles" msgstr "" #: ../pan/gui/actions.cc:745 msgid "Show Matching Articles' _Threads" msgstr "" #: ../pan/gui/actions.cc:746 msgid "Show Matching Articles' _Subthreads" msgstr "" #: ../pan/gui/body-pane.cc:1011 #, fuzzy, c-format msgid "Unnamed File" msgstr "Fichièr de signatura" #: ../pan/gui/body-pane.cc:1092 ../pan/gui/gui.cc:1864 #: ../pan/gui/header-pane.cc:1188 ../pan/gui/header-pane.cc:1617 #: ../pan/gui/post-ui.cc:2496 ../pan/gui/prefs-ui.cc:833 #: ../pan/gui/score-add-ui.cc:139 msgid "Subject" msgstr "Subjècte" #: ../pan/gui/body-pane.cc:1094 ../pan/gui/gui.cc:1864 msgid "From" msgstr "De" #: ../pan/gui/body-pane.cc:1096 ../pan/gui/gui.cc:1865 #: ../pan/gui/header-pane.cc:1695 ../pan/gui/log-ui.cc:305 #: ../pan/gui/prefs-ui.cc:829 msgid "Date" msgstr "Data" #: ../pan/gui/body-pane.cc:1103 msgid "Newsgroups" msgstr "" #: ../pan/gui/body-pane.cc:1108 msgid "Followup-To" msgstr "" #: ../pan/gui/body-pane.cc:1118 msgid "Reply-To" msgstr "" #: ../pan/gui/body-pane.cc:1160 msgid " from " msgstr "" #: ../pan/gui/body-pane.cc:1162 msgid " at " msgstr "" #: ../pan/gui/body-pane.cc:1264 #, c-format msgid "" "This is a PGP-Signed message.\n" "\n" "Signer : %s ('%s')\n" "Valid until : %s\n" "Created on : %s" msgstr "" #: ../pan/gui/body-pane.cc:1269 msgid "always" msgstr "" #: ../pan/gui/body-pane.cc:1485 msgid "Copy _URL" msgstr "Copiar l'_URL" #: ../pan/gui/body-pane.cc:1680 #, fuzzy msgid "Save attachment as ...." msgstr "Enregistrar los fichièrs junts" #: ../pan/gui/body-pane.cc:1683 #, fuzzy msgid "Save all attachments" msgstr "Enregistrar los fichièrs junts" #. add a toolbar for attachments #: ../pan/gui/body-pane.cc:1753 #, fuzzy msgid "Attachments" msgstr "Enregistrar los fichièrs junts" #. update the titlebar #: ../pan/gui/dl-headers-ui.cc:106 ../pan/gui/gui.cc:973 #: ../pan/gui/gui.cc:1592 ../pan/gui/gui.cc:1893 #: ../pan/gui/score-add-ui.cc:602 msgid "Pan" msgstr "Pan" #: ../pan/gui/dl-headers-ui.cc:112 #, fuzzy, c-format msgid "%d Group" msgid_plural "%d Groups" msgstr[0] "%d grops" msgstr[1] "%d grops" #: ../pan/gui/dl-headers-ui.cc:135 msgid "Get the last N _days' headers: " msgstr "" #: ../pan/gui/dl-headers-ui.cc:143 msgid "Get _new headers" msgstr "Obténer los encaps _novèls" #: ../pan/gui/dl-headers-ui.cc:147 msgid "Get _all headers" msgstr "Obténer _totes los encaps" #: ../pan/gui/dl-headers-ui.cc:151 msgid "Get the _latest N headers: " msgstr "" #: ../pan/gui/e-action-combo-box.c:388 ../pan/gui/prefs-ui.cc:826 msgid "Action" msgstr "Accion" #: ../pan/gui/e-action-combo-box.c:389 msgid "A GtkRadioAction" msgstr "" #: ../pan/gui/e-charset.c:51 ../pan/gui/task-pane.cc:518 msgid "Unknown" msgstr "Desconegut" #: ../pan/gui/e-charset.c:52 msgid "Arabic" msgstr "" #: ../pan/gui/e-charset.c:53 msgid "Baltic" msgstr "Baltic" #: ../pan/gui/e-charset.c:54 msgid "Central European" msgstr "European central" #: ../pan/gui/e-charset.c:55 msgid "Chinese" msgstr "Chinés" #: ../pan/gui/e-charset.c:56 msgid "Cyrillic" msgstr "Cirillic" #: ../pan/gui/e-charset.c:57 msgid "Greek" msgstr "Grèc" #: ../pan/gui/e-charset.c:58 msgid "Hebrew" msgstr "Ebrèu" #: ../pan/gui/e-charset.c:59 msgid "Japanese" msgstr "Japonés" #: ../pan/gui/e-charset.c:60 msgid "Korean" msgstr "Corean" #: ../pan/gui/e-charset.c:61 msgid "Thai" msgstr "Tailandés" #: ../pan/gui/e-charset.c:62 msgid "Turkish" msgstr "Turc" #: ../pan/gui/e-charset.c:63 msgid "Unicode" msgstr "Unicode" #: ../pan/gui/e-charset.c:64 msgid "Western European" msgstr "" #: ../pan/gui/e-charset.c:65 msgid "Western European, New" msgstr "" #: ../pan/gui/e-charset.c:84 ../pan/gui/e-charset.c:85 #: ../pan/gui/e-charset.c:86 msgid "Traditional" msgstr "Tradicional" #: ../pan/gui/e-charset.c:87 ../pan/gui/e-charset.c:88 #: ../pan/gui/e-charset.c:89 ../pan/gui/e-charset.c:90 msgid "Simplified" msgstr "Simplificat" #: ../pan/gui/e-charset.c:93 msgid "Ukrainian" msgstr "Ucraïnian" #: ../pan/gui/e-charset.c:96 msgid "Visual" msgstr "Visual" #: ../pan/gui/e-charset-combo-box.c:93 ../pan/gui/gui.cc:2058 #: ../pan/gui/post-ui.cc:519 ../pan/gui/prefs-ui.cc:737 msgid "Character Encoding" msgstr "" #: ../pan/gui/e-charset-combo-box.c:117 msgid "Enter the character set to use" msgstr "" #: ../pan/gui/e-charset-combo-box.c:336 msgid "Other..." msgstr "Autre..." #: ../pan/gui/e-cte-dialog.c:78 msgid "Default encoding" msgstr "" #: ../pan/gui/e-cte-dialog.c:80 msgid "7Bit Encoding" msgstr "" #: ../pan/gui/e-cte-dialog.c:82 msgid "8Bit Encoding" msgstr "" #: ../pan/gui/e-cte-dialog.c:84 msgid "BASE64 Encoding" msgstr "" #: ../pan/gui/e-cte-dialog.c:86 msgid "Quoted-Printable Encoding" msgstr "" #: ../pan/gui/group-pane.cc:500 #, fuzzy msgid "Group" msgstr "Grops" #: ../pan/gui/group-pane.cc:501 #, fuzzy msgid "Group (regex)" msgstr "Nom de grop" #: ../pan/gui/group-pane.cc:913 msgid "Subscribed Groups" msgstr "" #: ../pan/gui/group-pane.cc:914 msgid "Other Groups" msgstr "Autres grops" #: ../pan/gui/group-pane.cc:954 ../pan/gui/score-view-ui.cc:157 msgid "Name" msgstr "Nom" #: ../pan/gui/group-prefs-dialog.cc:156 msgid "No Profiles defined in Edit|Posting Profiles." msgstr "" #: ../pan/gui/group-prefs-dialog.cc:231 msgid "Pan: Group Preferences" msgstr "" #: ../pan/gui/group-prefs-dialog.cc:247 #, fuzzy, c-format msgid "Properties for Groups" msgstr "Autres grops" #: ../pan/gui/group-prefs-dialog.cc:249 #, c-format msgid "Properties for %s" msgstr "" #: ../pan/gui/group-prefs-dialog.cc:257 msgid "Character _encoding:" msgstr "" #: ../pan/gui/group-prefs-dialog.cc:259 msgid "Directory for Saving Attachments" msgstr "Repertòri ont enregistrar los fichièrs junts" #: ../pan/gui/group-prefs-dialog.cc:269 msgid "Directory for _saving attachments:" msgstr "Repertòri ont _enregistrar los fichièrs junts :" #: ../pan/gui/group-prefs-dialog.cc:271 msgid "Posting _profile:" msgstr "" #: ../pan/gui/group-prefs-dialog.cc:277 msgid "Spellchecker _language:" msgstr "" #: ../pan/gui/gui.cc:273 msgid "Open the Task Manager" msgstr "" #: ../pan/gui/gui.cc:301 msgid "Open the Event Log" msgstr "" #: ../pan/gui/gui.cc:561 msgid "Save NZB's Files" msgstr "" #: ../pan/gui/gui.cc:588 msgid "Untitled.nzb" msgstr "" #: ../pan/gui/gui.cc:590 #, fuzzy msgid "Save NZB File as..." msgstr "_Enregistrar los articles..." #: ../pan/gui/gui.cc:757 msgid "Import NZB Files" msgstr "" #: ../pan/gui/gui.cc:765 ../pan/gui/post-ui.cc:3197 msgid "NZB Files" msgstr "" #: ../pan/gui/gui.cc:770 msgid "All Files" msgstr "Totes los fichièrs" #: ../pan/gui/gui.cc:1258 msgid "Unable to supersede article." msgstr "" #: ../pan/gui/gui.cc:1259 ../pan/gui/gui.cc:1333 msgid "The article doesn't match any of your posting profiles." msgstr "" #: ../pan/gui/gui.cc:1306 msgid "Revise and send this article to replace the old one." msgstr "" #: ../pan/gui/gui.cc:1307 ../pan/gui/gui.cc:1370 msgid "Be patient! It will take time for your changes to take effect." msgstr "" #: ../pan/gui/gui.cc:1332 msgid "Unable to cancel article." msgstr "" #: ../pan/gui/gui.cc:1369 msgid "Send this article to ask your server to cancel your other one." msgstr "" #: ../pan/gui/gui.cc:1387 msgid "You marked some articles for deletion" msgstr "" #: ../pan/gui/gui.cc:1388 msgid "Are you sure you want to delete them?" msgstr "" #: ../pan/gui/gui.cc:1413 msgid "Always trust" msgstr "" #: ../pan/gui/gui.cc:1416 msgid "Do you want to accept it permanently (deletable afterwards) ?" msgstr "" #: ../pan/gui/gui.cc:1595 #, fuzzy msgid "Copyright \\u00A9 2002-2012 Charles Kerr and others" msgstr "Copyright © 2002-2007 Charles Kerr" #: ../pan/gui/gui.cc:1600 msgid "translator-credits" msgstr "Yannig Marchegay (Kokoyaya) " #: ../pan/gui/gui.cc:1709 msgid "_1. Group Pane" msgstr "_1. Panèl de grops" #: ../pan/gui/gui.cc:1710 msgid "_2. Header Pane" msgstr "_2. Panèl d'encaps" #: ../pan/gui/gui.cc:1711 msgid "_3. Body Pane" msgstr "_3. Panèl de còs" #: ../pan/gui/gui.cc:1800 ../pan/gui/gui.cc:1815 #, fuzzy msgid " Bytes" msgstr "Octets" #: ../pan/gui/gui.cc:1803 msgid " KB" msgstr "" #: ../pan/gui/gui.cc:1806 msgid " MB" msgstr "" #: ../pan/gui/gui.cc:1809 msgid " GB" msgstr "" #: ../pan/gui/gui.cc:1812 msgid " TB" msgstr "" #: ../pan/gui/gui.cc:1844 #, c-format msgid "This article is complete with %d part." msgid_plural "This article has all %d parts." msgstr[0] "" msgstr[1] "" #: ../pan/gui/gui.cc:1846 #, c-format msgid "This article is missing %d part." msgid_plural "This article is missing %d of its %d parts:" msgstr[0] "" msgstr[1] "" #: ../pan/gui/gui.cc:1865 ../pan/gui/header-pane.cc:1190 msgid "Message-ID" msgstr "Message-ID" #: ../pan/gui/gui.cc:1866 ../pan/gui/header-pane.cc:1665 #: ../pan/gui/prefs-ui.cc:830 msgid "Lines" msgstr "Linhas" #: ../pan/gui/gui.cc:1866 msgid "Size" msgstr "" #: ../pan/gui/gui.cc:1867 ../pan/gui/header-pane.cc:1680 #: ../pan/gui/prefs-ui.cc:828 msgid "Bytes" msgstr "Octets" #: ../pan/gui/gui.cc:1917 msgid "" "Error loading iconv library. Some Charsets in the GUI will not be able to be " "encoded." msgstr "" #: ../pan/gui/gui.cc:2059 msgid "Body Pane Encoding" msgstr "" #: ../pan/gui/gui.cc:2090 ../pan/gui/task-pane.cc:569 #, c-format msgid "Offline" msgstr "Desconnectat" #: ../pan/gui/gui.cc:2094 #, fuzzy, c-format msgid "Closing %d connection" msgid_plural "Closing %d connections" msgstr[0] "Pas de connexion" msgstr[1] "Pas de connexion" #: ../pan/gui/gui.cc:2096 ../pan/gui/gui.cc:2126 #, c-format msgid "No Connections" msgstr "Pas de connexion" #: ../pan/gui/gui.cc:2100 #, c-format msgid "Connecting" msgstr "Connexion" #: ../pan/gui/gui.cc:2113 #, c-format msgid "%s: %d idle, %d active @ %.1f KiBps" msgstr "" #: ../pan/gui/gui.cc:2169 #, c-format msgid "No Tasks" msgstr "" #: ../pan/gui/gui.cc:2171 ../pan/gui/prefs-ui.cc:1047 msgid "Tasks" msgstr "Prètzfaches" #: ../pan/gui/gui.cc:2182 ../pan/gui/task-pane.cc:435 #, c-format msgid "%lu tasks, %s, %.1f KiBps, ETA %d:%02d:%02d" msgstr "" #: ../pan/gui/gui.cc:2234 msgid "" "Pan is now offline. Please see \"File|Event Log\" and correct the problem, " "then use \"File|Work Online\" to continue." msgstr "" #: ../pan/gui/header-pane.cc:1186 msgid "Subject or Author" msgstr "" #: ../pan/gui/header-pane.cc:1187 msgid "Sub or Auth (regex)" msgstr "" #: ../pan/gui/header-pane.cc:1189 ../pan/gui/header-pane.cc:1649 #: ../pan/gui/prefs-ui.cc:827 ../pan/gui/score-add-ui.cc:140 msgid "Author" msgstr "Autor" #: ../pan/gui/header-pane.cc:1634 ../pan/gui/prefs-ui.cc:831 msgid "Score" msgstr "Marca" #: ../pan/gui/log-ui.cc:103 msgid "Save Event List" msgstr "" #: ../pan/gui/log-ui.cc:256 msgid "Pan: Events" msgstr "Pan : Eveniments" #: ../pan/gui/log-ui.cc:315 msgid "Message" msgstr "Messatge" #: ../pan/gui/pan.cc:330 msgid "Maximize" msgstr "" #: ../pan/gui/pan.cc:383 msgid "An Error has occurred!" msgstr "" #: ../pan/gui/pan.cc:397 #, fuzzy msgid "New Articles!" msgstr "_Article seguent" #: ../pan/gui/pan.cc:398 msgid "" "There are new\n" "articles available." msgstr "" #: ../pan/gui/pan.cc:465 msgid "Toggle on/offline" msgstr "" #: ../pan/gui/pan.cc:513 msgid "" "Thank you for trying Pan!\n" " \n" "To start newsreading, first Add a Server." msgstr "" #: ../pan/gui/pan.cc:595 msgid "" "General Options\n" " -h, --help Show this usage page.\n" " --verbose Be verbose (in non-GUI mode).\n" "\n" "URL Options\n" " --no-gui On news:message-id, dump the article to stdout.\n" "\n" "NZB Batch Options\n" " --nzb file1 file2 ... Process nzb files without launching all of Pan.\n" " -o path, --output=path Path to save attachments listed in the nzb " "files.\n" " --no-gui Only show console output, not the download " "queue.\n" msgstr "" #: ../pan/gui/pan.cc:867 msgid "Error: --no-gui used without nzb files or news:message-id." msgstr "" #: ../pan/gui/pan.cc:871 #, c-format msgid "Pan %s started" msgstr "" #: ../pan/gui/pan.cc:890 msgid "Please configure Pan's news servers before using it as an nzb client." msgstr "" #: ../pan/gui/pan.cc:1009 msgid "Pan notification" msgstr "" #: ../pan/gui/post-ui.cc:186 #, c-format msgid "Upload Queue : %ld Tasks, %ld KB (~ %.2f MB) total ." msgstr "" #: ../pan/gui/post-ui.cc:286 #, fuzzy, c-format msgid "Error setting custom spellchecker: %s" msgstr "Error al moment d'aviar l'editor extèrn : %s" #: ../pan/gui/post-ui.cc:291 ../pan/gui/post-ui.cc:300 #, c-format msgid "Error setting spellchecker: %s" msgstr "" #: ../pan/gui/post-ui.cc:419 msgid "_Profile" msgstr "_Perfil" #: ../pan/gui/post-ui.cc:420 msgid "Set Editor" msgstr "" #: ../pan/gui/post-ui.cc:422 msgid "_Send Article" msgstr "_Enviar l'article" #: ../pan/gui/post-ui.cc:422 msgid "Send Article Now" msgstr "Enviar l'article ara" #: ../pan/gui/post-ui.cc:423 #, fuzzy msgid "_Send and Save Articles to NZB" msgstr "Pan : Enregistrar d'articles" #: ../pan/gui/post-ui.cc:423 #, fuzzy msgid "Send and Save Articles to NZB" msgstr "Pan : Enregistrar d'articles" #: ../pan/gui/post-ui.cc:424 msgid "Set Character _Encoding..." msgstr "" #: ../pan/gui/post-ui.cc:425 msgid "Set Content _Transfer Encoding..." msgstr "" #: ../pan/gui/post-ui.cc:426 msgid "Sa_ve Draft" msgstr "Enre_gistrar lo borrolhon" #: ../pan/gui/post-ui.cc:426 msgid "Save as a Draft for Future Posting" msgstr "" #: ../pan/gui/post-ui.cc:427 msgid "_Open Draft..." msgstr "_Dobrir un borrolhon..." #: ../pan/gui/post-ui.cc:427 msgid "Open an Article Draft" msgstr "" #: ../pan/gui/post-ui.cc:432 msgid "_Rot13" msgstr "" #: ../pan/gui/post-ui.cc:432 msgid "Rot13 Selected Text" msgstr "" #: ../pan/gui/post-ui.cc:433 msgid "Run _Editor" msgstr "" #: ../pan/gui/post-ui.cc:433 msgid "Run Editor" msgstr "" #: ../pan/gui/post-ui.cc:435 msgid "Add _Files to Queue" msgstr "" #: ../pan/gui/post-ui.cc:435 msgid "Add Files to Queue" msgstr "" #: ../pan/gui/post-ui.cc:450 ../pan/gui/post-ui.cc:451 #, fuzzy msgid "Remove from Queue" msgstr "Suprimir un servidor" #: ../pan/gui/post-ui.cc:455 ../pan/gui/post-ui.cc:456 msgid "Clear List" msgstr "" #: ../pan/gui/post-ui.cc:460 ../pan/gui/post-ui.cc:461 #, fuzzy msgid "Select Needed Parts" msgstr "Seleccionar _totes los articles" #: ../pan/gui/post-ui.cc:465 ../pan/gui/post-ui.cc:466 #: ../pan/gui/task-pane.cc:636 ../pan/gui/task-pane.cc:637 msgid "Move Up" msgstr "" #: ../pan/gui/post-ui.cc:470 ../pan/gui/post-ui.cc:471 #: ../pan/gui/task-pane.cc:641 ../pan/gui/task-pane.cc:642 msgid "Move Down" msgstr "" #: ../pan/gui/post-ui.cc:475 ../pan/gui/post-ui.cc:476 msgid "Move to Top" msgstr "" #: ../pan/gui/post-ui.cc:480 ../pan/gui/post-ui.cc:481 msgid "Move to Bottom" msgstr "" #: ../pan/gui/post-ui.cc:488 msgid "_Wrap Text" msgstr "" #: ../pan/gui/post-ui.cc:488 #, fuzzy msgid "Wrap Text" msgstr "Tèxt" #: ../pan/gui/post-ui.cc:489 msgid "Always Run Editor" msgstr "" #: ../pan/gui/post-ui.cc:490 msgid "Remember Character Encoding for this Group" msgstr "" #: ../pan/gui/post-ui.cc:491 msgid "Thread Attached Replies" msgstr "" #: ../pan/gui/post-ui.cc:492 msgid "PGP-Encrypt the Message" msgstr "" #: ../pan/gui/post-ui.cc:493 msgid "PGP-Sign the Message" msgstr "" #: ../pan/gui/post-ui.cc:494 msgid "Check _Spelling" msgstr "" #: ../pan/gui/post-ui.cc:520 msgid "New Article's Encoding:" msgstr "" #: ../pan/gui/post-ui.cc:530 msgid "Content Transfer Encoding" msgstr "" #: ../pan/gui/post-ui.cc:531 msgid "New Article's Content Transfer Encoding:" msgstr "" #: ../pan/gui/post-ui.cc:711 msgid "Your changes will be lost!" msgstr "" #: ../pan/gui/post-ui.cc:712 msgid "Close this window and lose your changes?" msgstr "" #: ../pan/gui/post-ui.cc:757 ../pan/gui/post-ui.cc:796 msgid "There were problems with this post." msgstr "" #: ../pan/gui/post-ui.cc:759 ../pan/gui/post-ui.cc:798 #: ../pan/gui/post-ui.cc:861 msgid "Go Back" msgstr "Tornar" #: ../pan/gui/post-ui.cc:761 msgid "Post Anyway" msgstr "" #. Prompt the user #: ../pan/gui/post-ui.cc:790 #, c-format msgid "" "Message uses characters not specified in charset '%s' - possibly use '%s' " msgstr "" #: ../pan/gui/post-ui.cc:813 msgid "Go _Online" msgstr "" #: ../pan/gui/post-ui.cc:860 msgid "The file queue is empty, so no files can be saved." msgstr "" #: ../pan/gui/post-ui.cc:1019 msgid "" "No posting server is set for this posting profile.\n" "Please edit the profile via Edit|Manage Posting Profiles." msgstr "" #: ../pan/gui/post-ui.cc:1054 msgid "Pan is Offline." msgstr "Pan es desconnectat." #: ../pan/gui/post-ui.cc:1055 msgid "Go online to post the article?" msgstr "" #: ../pan/gui/post-ui.cc:1102 #, c-format msgid "" "Error signing/encrypting your message. Perhaps you misspelled your email-" "address (%s) ?" msgstr "" #: ../pan/gui/post-ui.cc:1267 msgid "Error opening temporary file" msgstr "Error al moment de dobrir lo fichièr temporari" #: ../pan/gui/post-ui.cc:1279 #, c-format msgid "Error writing article to temporary file: %s" msgstr "" #: ../pan/gui/post-ui.cc:1298 #, c-format msgid "Error parsing \"external editor\" command line: %s (Command was: %s)" msgstr "" #: ../pan/gui/post-ui.cc:1339 #, c-format msgid "Error starting external editor: %s" msgstr "Error al moment d'aviar l'editor extèrn : %s" #: ../pan/gui/post-ui.cc:1395 msgid "Open Draft Article" msgstr "" #: ../pan/gui/post-ui.cc:1606 msgid "Save Draft Article" msgstr "" #: ../pan/gui/post-ui.cc:1803 #, c-format msgid "Couldn't parse signature command \"%s\": %s" msgstr "" #: ../pan/gui/post-ui.cc:1839 msgid "Couldn't convert signature to UTF-8." msgstr "Impossible de convertir la signatura en UTF-8." #: ../pan/gui/post-ui.cc:2334 msgid "F_rom" msgstr "" #: ../pan/gui/post-ui.cc:2352 msgid "_Subject" msgstr "_Tèma" #: ../pan/gui/post-ui.cc:2365 msgid "_Newsgroups" msgstr "" #: ../pan/gui/post-ui.cc:2379 msgid "Mail _To" msgstr "" #: ../pan/gui/post-ui.cc:2481 msgid "Delete from Queue" msgstr "" #: ../pan/gui/post-ui.cc:2494 msgid "No." msgstr "" #: ../pan/gui/post-ui.cc:2498 ../pan/gui/post-ui.cc:2592 #: ../pan/gui/post-ui.cc:2633 #, fuzzy msgid "Filename" msgstr "_Fichièr" #: ../pan/gui/post-ui.cc:2500 msgid "Size (kB)" msgstr "" #: ../pan/gui/post-ui.cc:2600 msgid "The current filename" msgstr "" #: ../pan/gui/post-ui.cc:2604 #, fuzzy msgid "Subject Line" msgstr "Subjècte" #: ../pan/gui/post-ui.cc:2612 msgid "The current Subject Line" msgstr "" #: ../pan/gui/post-ui.cc:2626 msgid "No. " msgstr "" #: ../pan/gui/post-ui.cc:2630 msgid "Enable/Disable" msgstr "" #: ../pan/gui/post-ui.cc:2664 msgid "Follo_wup-To" msgstr "" #. i18n: "poster" is a key used by many newsreaders. probably safest to keep this key in english. #: ../pan/gui/post-ui.cc:2673 msgid "" "The newsgroups where replies to your message should go. This is only needed " "if it differs from the \"Newsgroups\" header.\n" "\n" "To direct all replies to your email address, use \"Followup-To: poster\"" msgstr "" #: ../pan/gui/post-ui.cc:2679 msgid "_Reply-To" msgstr "" #: ../pan/gui/post-ui.cc:2687 msgid "" "The email account where mail replies to your posted message should go. This " "is only needed if it differs from the \"From\" header." msgstr "" #: ../pan/gui/post-ui.cc:2693 msgid "_Custom Headers" msgstr "Encaps _personalizats" #: ../pan/gui/post-ui.cc:2717 msgid "Add \"_User-Agent\" header" msgstr "" #: ../pan/gui/post-ui.cc:2724 msgid "Add \"Message-_Id\" header" msgstr "" #: ../pan/gui/post-ui.cc:2855 #, fuzzy msgid "Select Parts" msgstr "Seleccionar _totes los articles" #: ../pan/gui/post-ui.cc:2866 msgid "_Parts" msgstr "" #: ../pan/gui/post-ui.cc:3022 msgid "Post Article" msgstr "" #: ../pan/gui/post-ui.cc:3043 msgid "_Message" msgstr "_Messatge" #: ../pan/gui/post-ui.cc:3044 msgid "More _Headers" msgstr "" #: ../pan/gui/post-ui.cc:3045 msgid "File _Queue" msgstr "" #: ../pan/gui/post-ui.cc:3077 ../pan/gui/profiles-dialog.cc:478 #, no-c-format msgid "On %d, %n wrote:" msgstr "Lo %d, %n escriguèt :" #: ../pan/gui/post-ui.cc:3106 msgid "Add files to queue" msgstr "" #: ../pan/gui/post-ui.cc:3184 msgid "Save Upload Queue as NZB File" msgstr "" #: ../pan/gui/prefs.cc:343 #, c-format msgid "Couldn't parse %s color \"%s\"" msgstr "" #: ../pan/gui/prefs-ui.cc:120 msgid "Grab Key" msgstr "" #: ../pan/gui/prefs-ui.cc:126 #, c-format msgid "" "Press the combination of the keys\n" "you want to use for \"%s\"." msgstr "" #: ../pan/gui/prefs-ui.cc:166 msgid "Edit Hotkey" msgstr "" #: ../pan/gui/prefs-ui.cc:228 msgid "Error: Shortkey is invalid!" msgstr "" #: ../pan/gui/prefs-ui.cc:244 msgid "Error: Shortkey already exists!" msgstr "" #: ../pan/gui/prefs-ui.cc:535 msgid "Show only icons" msgstr "" #: ../pan/gui/prefs-ui.cc:536 msgid "Show only text" msgstr "" #: ../pan/gui/prefs-ui.cc:537 msgid "Show icons and text" msgstr "" #: ../pan/gui/prefs-ui.cc:576 msgid "Use GNOME Preferences" msgstr "Utilizar las preferéncias de GNOME" #: ../pan/gui/prefs-ui.cc:577 msgid "Use KDE Preferences" msgstr "Utilizar las preferéncias de KDE" #: ../pan/gui/prefs-ui.cc:578 msgid "Use OS X Preferences" msgstr "Utilizar las preferéncias d'OS X" #: ../pan/gui/prefs-ui.cc:579 msgid "Use Windows Preferences" msgstr "Utilizar las preferéncias de Windows" #: ../pan/gui/prefs-ui.cc:580 msgid "Custom Command:" msgstr "Comanda personalizada :" #: ../pan/gui/prefs-ui.cc:632 #, fuzzy msgid "Disabled" msgstr "Activat" #: ../pan/gui/prefs-ui.cc:633 msgid "Only new (Score == 0)" msgstr "" #: ../pan/gui/prefs-ui.cc:634 msgid "9999 or more" msgstr "" #: ../pan/gui/prefs-ui.cc:635 msgid "5000 to 9998" msgstr "" #: ../pan/gui/prefs-ui.cc:636 msgid "1 to 4999" msgstr "" #: ../pan/gui/prefs-ui.cc:637 msgid "-9998 to -1" msgstr "" #: ../pan/gui/prefs-ui.cc:638 msgid "-9999 or less" msgstr "" #: ../pan/gui/prefs-ui.cc:702 #, c-format msgid "Select default global charset. Current setting : %s ." msgstr "" #: ../pan/gui/prefs-ui.cc:738 msgid "Global Charset Settings" msgstr "" #: ../pan/gui/prefs-ui.cc:832 ../pan/gui/task-pane.cc:770 msgid "State" msgstr "Estat" #: ../pan/gui/prefs-ui.cc:866 msgid "Enabled" msgstr "Activat" #: ../pan/gui/prefs-ui.cc:870 msgid "Column Name" msgstr "Nom de colomna" #: ../pan/gui/prefs-ui.cc:908 msgid "Pan: Preferences" msgstr "Pan : Preferéncias" #: ../pan/gui/prefs-ui.cc:923 msgid "Mouse" msgstr "Mirga" #: ../pan/gui/prefs-ui.cc:925 msgid "Single-click activates, rather than selects, _groups" msgstr "" #: ../pan/gui/prefs-ui.cc:927 msgid "Single-click activates, rather than selects, _articles" msgstr "" #: ../pan/gui/prefs-ui.cc:930 msgid "Groups" msgstr "Grops" #: ../pan/gui/prefs-ui.cc:932 msgid "Get new headers in subscribed groups on _startup" msgstr "" #: ../pan/gui/prefs-ui.cc:934 msgid "Get new headers when _entering group" msgstr "" #: ../pan/gui/prefs-ui.cc:936 msgid "Mark entire group _read when leaving group" msgstr "" #: ../pan/gui/prefs-ui.cc:938 msgid "Mark entire group read before getting _new headers" msgstr "" #: ../pan/gui/prefs-ui.cc:940 msgid "E_xpand all threads when entering group" msgstr "" #: ../pan/gui/prefs-ui.cc:945 msgid "Articles" msgstr "Articles" #: ../pan/gui/prefs-ui.cc:947 msgid "Space selects next article rather than next unread" msgstr "" #: ../pan/gui/prefs-ui.cc:949 msgid "Expand threads upon selection" msgstr "" #: ../pan/gui/prefs-ui.cc:951 msgid "Always show article deletion confirmation dialog" msgstr "" #: ../pan/gui/prefs-ui.cc:953 msgid "Smooth scrolling" msgstr "" #: ../pan/gui/prefs-ui.cc:958 #, fuzzy msgid "Article Cache" msgstr "Voidar l'escondedor de l'article" #: ../pan/gui/prefs-ui.cc:959 msgid "Clear article cache on shutdown" msgstr "" #: ../pan/gui/prefs-ui.cc:962 msgid "Size of article cache (in MiB) :" msgstr "" #: ../pan/gui/prefs-ui.cc:967 msgid "File extension for Cached Articles: " msgstr "" #: ../pan/gui/prefs-ui.cc:972 msgid "Tabs" msgstr "" #: ../pan/gui/prefs-ui.cc:977 msgid "_Behavior" msgstr "_Compòrtament" #: ../pan/gui/prefs-ui.cc:977 #, fuzzy msgid "Behavior" msgstr "_Compòrtament" #: ../pan/gui/prefs-ui.cc:983 #, fuzzy msgid "Language Settings" msgstr "Paramètres" #. systray and notify popup #: ../pan/gui/prefs-ui.cc:992 #, fuzzy msgid "System Tray Behavior" msgstr "_Compòrtament" #: ../pan/gui/prefs-ui.cc:994 msgid "Hide to system tray" msgstr "" #: ../pan/gui/prefs-ui.cc:996 msgid "Start Pan minimized" msgstr "" #: ../pan/gui/prefs-ui.cc:999 msgid "Show notifications" msgstr "" #. allow multiple instances (seperate, not communicating with dbus) #: ../pan/gui/prefs-ui.cc:1004 #, fuzzy msgid "Startup Behavior" msgstr "_Compòrtament" #: ../pan/gui/prefs-ui.cc:1006 msgid "Allow multiple instances of Pan" msgstr "" #: ../pan/gui/prefs-ui.cc:1011 #, fuzzy msgid "Autosave Article Draft" msgstr "Enregistrar los articles" #: ../pan/gui/prefs-ui.cc:1013 #, fuzzy msgid "Minutes to autosave the current Article Draft: " msgstr "Enregistrar los articles" #: ../pan/gui/prefs-ui.cc:1018 #, fuzzy msgid "Autosave Articles" msgstr "Enregistrar los articles" #: ../pan/gui/prefs-ui.cc:1020 msgid "Minutes to autosave newsrc files: " msgstr "" #: ../pan/gui/prefs-ui.cc:1026 msgid "_Miscellaneous" msgstr "" #: ../pan/gui/prefs-ui.cc:1026 msgid "Miscellaneous" msgstr "" #: ../pan/gui/prefs-ui.cc:1031 msgid "Pane Layout" msgstr "" #: ../pan/gui/prefs-ui.cc:1050 msgid "1=Groups, 2=Headers, 3=Body" msgstr "1=Grops, 2=Encaps, 3=Còs" #: ../pan/gui/prefs-ui.cc:1052 msgid "1=Groups, 2=Body, 3=Headers" msgstr "1=Grops, 2=Còs, 3=Encaps" #: ../pan/gui/prefs-ui.cc:1054 msgid "1=Headers, 2=Groups, 3=Body" msgstr "1=Encaps, 2=Grops, 3=Còs" #: ../pan/gui/prefs-ui.cc:1056 msgid "1=Headers, 2=Body, 3=Groups" msgstr "1=Encaps, 2=Còs, 3=Grops" #: ../pan/gui/prefs-ui.cc:1058 msgid "1=Body, 2=Groups, 3=Headers" msgstr "1=Còs, 2=Grops, 3=Encaps" #: ../pan/gui/prefs-ui.cc:1060 msgid "1=Body, 2=Headers, 3=Groups" msgstr "1=Còs, 2=Encaps, 3=Grops" #: ../pan/gui/prefs-ui.cc:1064 msgid "Layout" msgstr "" #: ../pan/gui/prefs-ui.cc:1069 msgid "Header Pane Columns" msgstr "" #: ../pan/gui/prefs-ui.cc:1073 msgid "_Headers" msgstr "_Encaps" #: ../pan/gui/prefs-ui.cc:1073 #, fuzzy msgid "Headers" msgstr "_Encaps" #: ../pan/gui/prefs-ui.cc:1079 msgid "" "This menu lets you configure Pan to take certain actions on your behalf " "automatically, based on a post's score." msgstr "" #: ../pan/gui/prefs-ui.cc:1082 msgid "_Delete posts scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1084 msgid "Mark posts _read scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1086 msgid "_Cache posts scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1088 msgid "Download _attachments of posts scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1091 #, fuzzy msgid "Actions" msgstr "_Accions" #: ../pan/gui/prefs-ui.cc:1096 ../pan/gui/prefs-ui.cc:1117 msgid "Fonts" msgstr "Poliças" #: ../pan/gui/prefs-ui.cc:1098 msgid "Use custom font in Group Pane:" msgstr "" #: ../pan/gui/prefs-ui.cc:1103 msgid "Use custom font in Header Pane:" msgstr "" #: ../pan/gui/prefs-ui.cc:1108 msgid "Use custom font in Body Pane:" msgstr "" #: ../pan/gui/prefs-ui.cc:1113 msgid "Monospace font:" msgstr "" #: ../pan/gui/prefs-ui.cc:1117 msgid "_Fonts" msgstr "_Poliças" #: ../pan/gui/prefs-ui.cc:1122 msgid "Header Pane" msgstr "" #: ../pan/gui/prefs-ui.cc:1125 ../pan/gui/prefs-ui.cc:1131 #: ../pan/gui/prefs-ui.cc:1137 ../pan/gui/prefs-ui.cc:1143 #: ../pan/gui/prefs-ui.cc:1149 ../pan/gui/prefs-ui.cc:1155 msgid "Text:" msgstr "Tèxt :" #: ../pan/gui/prefs-ui.cc:1127 ../pan/gui/prefs-ui.cc:1133 #: ../pan/gui/prefs-ui.cc:1139 ../pan/gui/prefs-ui.cc:1145 #: ../pan/gui/prefs-ui.cc:1151 ../pan/gui/prefs-ui.cc:1157 msgid "Background:" msgstr "Fons :" #: ../pan/gui/prefs-ui.cc:1129 msgid "Scores of 9999 or more:" msgstr "" #: ../pan/gui/prefs-ui.cc:1135 msgid "Scores from 5000 to 9998:" msgstr "" #: ../pan/gui/prefs-ui.cc:1141 msgid "Scores from 1 to 4999:" msgstr "" #: ../pan/gui/prefs-ui.cc:1147 msgid "Scores from -9998 to -1:" msgstr "" #: ../pan/gui/prefs-ui.cc:1153 msgid "Scores of -9999 or less:" msgstr "" #: ../pan/gui/prefs-ui.cc:1159 msgid "Read collapsed thread:" msgstr "" #: ../pan/gui/prefs-ui.cc:1161 msgid "Body Pane" msgstr "" #: ../pan/gui/prefs-ui.cc:1167 msgid "Quoted text:" msgstr "" #: ../pan/gui/prefs-ui.cc:1168 msgid "URL:" msgstr "URL :" #: ../pan/gui/prefs-ui.cc:1169 msgid "Signature:" msgstr "Signatura :" #: ../pan/gui/prefs-ui.cc:1171 msgid "_Colors" msgstr "_Colors" #: ../pan/gui/prefs-ui.cc:1171 #, fuzzy msgid "Colors" msgstr "_Colors" #: ../pan/gui/prefs-ui.cc:1176 msgid "Preferred Applications" msgstr "Aplicacions preferidas" #: ../pan/gui/prefs-ui.cc:1180 #, fuzzy msgid "_Web browser:" msgstr "Navegaire _web :" #: ../pan/gui/prefs-ui.cc:1183 #, fuzzy msgid "_Mail reader:" msgstr "Obténer _totes los encaps" #: ../pan/gui/prefs-ui.cc:1185 msgid "_Text editor:" msgstr "" #: ../pan/gui/prefs-ui.cc:1187 #, fuzzy msgid "_Applications" msgstr "A_plicacions" #: ../pan/gui/prefs-ui.cc:1187 #, fuzzy msgid "Applications" msgstr "A_plicacions" #: ../pan/gui/prefs-ui.cc:1192 ../pan/gui/task-pane.cc:512 msgid "Encoding" msgstr "" #: ../pan/gui/prefs-ui.cc:1196 msgid "Default bytes per file (for encoder): " msgstr "" #: ../pan/gui/prefs-ui.cc:1201 #, fuzzy msgid "_Upload" msgstr "A_plicacions" #: ../pan/gui/prefs-ui.cc:1201 msgid "Upload" msgstr "" #: ../pan/gui/prefs-ui.cc:1219 msgid "_Hotkeys" msgstr "" #: ../pan/gui/prefs-ui.cc:1219 msgid "Hotkeys" msgstr "" #: ../pan/gui/profiles-dialog.cc:83 msgid "Please choose your Email Address according to your PGP key's user id." msgstr "" #: ../pan/gui/profiles-dialog.cc:131 msgid "Posting Profile" msgstr "" #: ../pan/gui/profiles-dialog.cc:143 msgid "Profile Information" msgstr "" #: ../pan/gui/profiles-dialog.cc:147 msgid "_Profile Name:" msgstr "Nom de _perfil :" #: ../pan/gui/profiles-dialog.cc:150 msgid "Required Information" msgstr "" #: ../pan/gui/profiles-dialog.cc:154 msgid "_Full Name:" msgstr "_Nom complet :" #: ../pan/gui/profiles-dialog.cc:158 msgid "" "Your Email Address.\n" "Note that this has to match your PGP Signature's Address\n" "if you want to PGP-Sign or Encrypt your messages correctly." msgstr "" #: ../pan/gui/profiles-dialog.cc:162 msgid "_Email Address:" msgstr "Adreça _electronica :" #: ../pan/gui/profiles-dialog.cc:164 msgid "_Post Articles via:" msgstr "" #: ../pan/gui/profiles-dialog.cc:167 msgid "Signature" msgstr "Signatura" #: ../pan/gui/profiles-dialog.cc:170 msgid "_Use a Signature" msgstr "_Utilizar una signatura" #: ../pan/gui/profiles-dialog.cc:174 msgid "Signature File" msgstr "Fichièr de signatura" #: ../pan/gui/profiles-dialog.cc:184 msgid "Text File" msgstr "Fichièr tèxt" #: ../pan/gui/profiles-dialog.cc:186 msgid "Text" msgstr "Tèxt" #: ../pan/gui/profiles-dialog.cc:188 msgid "Command" msgstr "Comanda" #: ../pan/gui/profiles-dialog.cc:191 #, fuzzy msgid "PGP Signature" msgstr "Signatura" #: ../pan/gui/profiles-dialog.cc:196 #, fuzzy msgid "Signature Type : " msgstr "Signatura :" #: ../pan/gui/profiles-dialog.cc:223 msgid "X-Face (Avatar)" msgstr "" #: ../pan/gui/profiles-dialog.cc:226 msgid "" "You can add an avatar icon to your articles with a unique X-Face code. \n" "Add the code without the trailing \"X-Face:\" \n" " if it was generated by a helper program (for example http://www.dairiki.org/" "xface/xface.php)." msgstr "" #: ../pan/gui/profiles-dialog.cc:229 msgid "_X-Face:" msgstr "" #: ../pan/gui/profiles-dialog.cc:231 msgid "Optional Information" msgstr "Entresenhas opcionalas" #: ../pan/gui/profiles-dialog.cc:236 msgid "" "When posting to Usenet, your article's Message-ID contains a domain name. \n" "You can set a custom domain name here, or leave it blank to let Pan use the " "domain name from your email address." msgstr "" #: ../pan/gui/profiles-dialog.cc:239 msgid "Message-ID _Domain Name:" msgstr "" #: ../pan/gui/profiles-dialog.cc:243 #, c-format msgid "" "%i for Message-ID\n" "%a for Author and Address\n" "%n for Author name\n" "%d for Date" msgstr "" "%i per Message-ID\n" "%a per autor e adreça\n" "%n per nom d'autor\n" "%d per data" #: ../pan/gui/profiles-dialog.cc:244 msgid "_Attribution:" msgstr "" #: ../pan/gui/profiles-dialog.cc:268 msgid "" "Extra headers to be included in your posts, such as\n" "Reply-To: \"Your Name\"\n" "Organization: Your Organization\n" msgstr "" #: ../pan/gui/profiles-dialog.cc:278 msgid "E_xtra Headers:" msgstr "" #: ../pan/gui/profiles-dialog.cc:323 msgid "Invalid email address." msgstr "" #: ../pan/gui/profiles-dialog.cc:324 msgid "Please use an address of the form joe@somewhere.org" msgstr "" #: ../pan/gui/profiles-dialog.cc:479 msgid "New Profile" msgstr "Perfil novèl" #: ../pan/gui/profiles-dialog.cc:525 msgid "Posting Profiles" msgstr "" #: ../pan/gui/profiles-dialog.cc:541 msgid "Profiles" msgstr "Perfils" #: ../pan/gui/save-attach-ui.cc:77 ../pan/gui/save-ui.cc:77 #, c-format msgid "" "%g - group as one directory (alt.binaries.pictures.trains)\n" "%G - group as nested directory (/alt/binaries/pictures/trains)\n" "%s - subject line excerpt\n" "%S - subject line\n" " \n" "\"/home/user/News/Pan/%g\" becomes\n" "\"/home/user/News/Pan/alt.binaries.pictures.trains\", and\n" "\"/home/user/News/Pan/%G\" becomes\n" "\"/home/user/News/Pan/alt/binaries/pictures/trains\"," msgstr "" #: ../pan/gui/save-attach-ui.cc:223 ../pan/gui/save-ui.cc:242 msgid "Add to the queue sorted by date posted" msgstr "" #: ../pan/gui/save-attach-ui.cc:224 ../pan/gui/save-ui.cc:243 msgid "Add to the front of the queue" msgstr "" #: ../pan/gui/save-attach-ui.cc:225 ../pan/gui/save-ui.cc:244 msgid "Add to the back of the queue" msgstr "" #: ../pan/gui/save-attach-ui.cc:257 #, fuzzy msgid "Pan: Save Attachments" msgstr "Enregistrar los fichièrs junts" #: ../pan/gui/save-attach-ui.cc:282 ../pan/gui/save-attach-ui.cc:300 #: ../pan/gui/save-ui.cc:296 ../pan/gui/save-ui.cc:314 msgid "_Location:" msgstr "_Emplaçament :" #: ../pan/gui/save-attach-ui.cc:286 ../pan/gui/save-ui.cc:300 msgid "Save Articles" msgstr "Enregistrar los articles" #: ../pan/gui/save-attach-ui.cc:303 ../pan/gui/save-ui.cc:317 #, c-format msgid "_Group's path: %s" msgstr "" #: ../pan/gui/save-attach-ui.cc:314 ../pan/gui/save-ui.cc:332 msgid "_Priority:" msgstr "_Prioritat :" #: ../pan/gui/save-ui.cc:233 msgid "Save attachments" msgstr "Enregistrar los fichièrs junts" #: ../pan/gui/save-ui.cc:234 msgid "Save text" msgstr "" #: ../pan/gui/save-ui.cc:235 msgid "Save attachments and text" msgstr "" #: ../pan/gui/save-ui.cc:271 msgid "Pan: Save Articles" msgstr "Pan : Enregistrar d'articles" #: ../pan/gui/save-ui.cc:328 msgid "_Action:" msgstr "_Accion :" #: ../pan/gui/score-add-ui.cc:89 msgid "is more than" msgstr "" #: ../pan/gui/score-add-ui.cc:90 msgid "is at most" msgstr "" #: ../pan/gui/score-add-ui.cc:112 msgid "increase the article's score by" msgstr "" #: ../pan/gui/score-add-ui.cc:113 msgid "decrease the article's score by" msgstr "" #: ../pan/gui/score-add-ui.cc:114 msgid "set the article's score to" msgstr "" #: ../pan/gui/score-add-ui.cc:115 msgid "watch the article (set its score to 9999)" msgstr "" #: ../pan/gui/score-add-ui.cc:116 msgid "ignore the article (set its score to -9999)" msgstr "" #: ../pan/gui/score-add-ui.cc:141 msgid "References" msgstr "Referéncias" #: ../pan/gui/score-add-ui.cc:142 msgid "Line Count" msgstr "" #: ../pan/gui/score-add-ui.cc:143 msgid "Byte Count" msgstr "" #: ../pan/gui/score-add-ui.cc:144 msgid "Crosspost Group Count" msgstr "" #: ../pan/gui/score-add-ui.cc:145 msgid "Age (in days)" msgstr "Temps (en jorns)" #: ../pan/gui/score-add-ui.cc:167 msgid "for the next month" msgstr "" #: ../pan/gui/score-add-ui.cc:168 msgid "for the next six months" msgstr "" #: ../pan/gui/score-add-ui.cc:169 msgid "forever" msgstr "per totjorn" #: ../pan/gui/score-add-ui.cc:194 msgid "contains" msgstr "conten" #: ../pan/gui/score-add-ui.cc:195 msgid "doesn't contain" msgstr "conten pas" #: ../pan/gui/score-add-ui.cc:196 msgid "is" msgstr "es" #: ../pan/gui/score-add-ui.cc:197 msgid "isn't" msgstr "es pas" #: ../pan/gui/score-add-ui.cc:198 msgid "starts with" msgstr "comença per" #: ../pan/gui/score-add-ui.cc:199 msgid "ends with" msgstr "finís per" #: ../pan/gui/score-add-ui.cc:200 msgid "matches regex" msgstr "" #: ../pan/gui/score-add-ui.cc:481 msgid "Another rule already sets this article's score." msgstr "" #: ../pan/gui/score-add-ui.cc:482 msgid "You may want to go back or delete the old rule." msgstr "" #: ../pan/gui/score-add-ui.cc:553 msgid "Add and Re_score" msgstr "" #: ../pan/gui/score-add-ui.cc:604 ../pan/gui/score-add-ui.cc:624 msgid "New Scoring Rule" msgstr "" #: ../pan/gui/score-add-ui.cc:635 msgid "If the group name" msgstr "" #: ../pan/gui/score-add-ui.cc:642 msgid "And the article's" msgstr "" #: ../pan/gui/score-view-ui.cc:56 msgid "Close and Re_score" msgstr "" #: ../pan/gui/score-view-ui.cc:154 #, c-format msgid "File %s, Lines %d - %d" msgstr "Fichièr %s, Linhas %d - %d" #: ../pan/gui/score-view-ui.cc:182 msgid "Pan: Article's Scores" msgstr "" #: ../pan/gui/score-view-ui.cc:208 msgid "Add" msgstr "Apondre" #: ../pan/gui/score-view-ui.cc:213 msgid "New Score" msgstr "" #: ../pan/gui/score-view-ui.cc:218 msgid "Criteria" msgstr "Critèris" #: ../pan/gui/score-view-ui.cc:241 msgid "Add a New Scoring Rule" msgstr "" #: ../pan/gui/score-view-ui.cc:248 msgid "Remove the Selected Scoring Rule" msgstr "" #: ../pan/gui/server-ui.cc:221 msgid "Please specify the server's address." msgstr "" #: ../pan/gui/server-ui.cc:264 msgid "Import SSL certificate (PEM format) from File" msgstr "" #. create the dialog #: ../pan/gui/server-ui.cc:290 ../pan/gui/server-ui.cc:869 msgid "Add a Server" msgstr "Apondre un servidor" #: ../pan/gui/server-ui.cc:290 ../pan/gui/server-ui.cc:875 msgid "Edit a Server's Settings" msgstr "Modificar los paramètres d'un servidor" #: ../pan/gui/server-ui.cc:310 msgid "Location" msgstr "Emplaçament" #: ../pan/gui/server-ui.cc:314 msgid "The news server's actual address, e.g. \"news.mynewsserver.com\"" msgstr "" #: ../pan/gui/server-ui.cc:315 msgid "_Address:" msgstr "_Adreça :" #: ../pan/gui/server-ui.cc:319 msgid "The news server's port number. Typically 119." msgstr "" #: ../pan/gui/server-ui.cc:320 msgid "Por_t:" msgstr "Pòr_t :" #: ../pan/gui/server-ui.cc:323 msgid "Login (if Required)" msgstr "" #: ../pan/gui/server-ui.cc:327 msgid "_Username:" msgstr "_Nom d'utilizaire :" #: ../pan/gui/server-ui.cc:328 msgid "" "The username to give the server when asked. If your server doesn't require " "authentication, you can leave this blank." msgstr "" #: ../pan/gui/server-ui.cc:332 msgid "_Password:" msgstr "Mot de _pas :" #: ../pan/gui/server-ui.cc:333 msgid "" "The password to give the server when asked. If your server doesn't require " "authentication, you can leave this blank." msgstr "" #: ../pan/gui/server-ui.cc:336 msgid "Settings" msgstr "Paramètres" #: ../pan/gui/server-ui.cc:343 msgid "Connection _Limit:" msgstr "" #: ../pan/gui/server-ui.cc:347 msgid "After Two Weeks" msgstr "Aprèp doas setmanas" #: ../pan/gui/server-ui.cc:348 msgid "After One Month" msgstr "Aprèp un mes" #: ../pan/gui/server-ui.cc:349 msgid "After Two Months" msgstr "Aprèp dos meses" #: ../pan/gui/server-ui.cc:350 msgid "After Three Months" msgstr "Aprèp tres meses" #: ../pan/gui/server-ui.cc:351 msgid "After Six Months" msgstr "Aprèp sièis meses" #: ../pan/gui/server-ui.cc:352 msgid "Never Expire Old Articles" msgstr "" #: ../pan/gui/server-ui.cc:366 msgid "E_xpire Old Articles:" msgstr "" #: ../pan/gui/server-ui.cc:370 msgid "Primary" msgstr "Primari" #: ../pan/gui/server-ui.cc:371 msgid "Fallback" msgstr "" #: ../pan/gui/server-ui.cc:385 msgid "Server Rank:" msgstr "" #: ../pan/gui/server-ui.cc:389 msgid "" "Fallback servers are used for articles that can't be found on the " "primaries. One common approach is to use free servers as primaries and " "subscription servers as fallbacks." msgstr "" #: ../pan/gui/server-ui.cc:396 msgid "Security" msgstr "" #: ../pan/gui/server-ui.cc:401 msgid "Use Plaintext (Unsecured) Connections" msgstr "" #: ../pan/gui/server-ui.cc:402 #, fuzzy msgid "Use Secure SSL Connections" msgstr "Pas de connexion" #: ../pan/gui/server-ui.cc:418 msgid "TLS (SSL) Options:" msgstr "" #: ../pan/gui/server-ui.cc:423 msgid "" "You can set the option for using/disabling secure SSL/TLS connections here. " "If you enable SSL/TLS, your data is encrypted and secure. It is encouraged " "to use this option for privacy reasons." msgstr "" #: ../pan/gui/server-ui.cc:428 msgid "Always trust this server's certificate" msgstr "" #: ../pan/gui/server-ui.cc:602 #, c-format msgid "Really delete \"%s\"?" msgstr "Suprimir vertadièrament \"%s\" ?" #: ../pan/gui/server-ui.cc:691 msgid "No information available." msgstr "" #: ../pan/gui/server-ui.cc:697 #, c-format msgid "Server Certificate for '%s'" msgstr "" #: ../pan/gui/server-ui.cc:795 #, fuzzy, c-format msgid "Really delete certificate for \"%s\"?" msgstr "Suprimir vertadièrament \"%s\" ?" #. dialog #: ../pan/gui/server-ui.cc:822 ../pan/gui/server-ui.cc:843 #: ../pan/gui/server-ui.cc:941 msgid "Servers" msgstr "Servidors" #: ../pan/gui/server-ui.cc:882 msgid "Remove a Server" msgstr "Suprimir un servidor" #. dialog #: ../pan/gui/server-ui.cc:915 msgid "SSL Certificates" msgstr "" #: ../pan/gui/server-ui.cc:936 msgid "Certificates" msgstr "" #: ../pan/gui/server-ui.cc:967 msgid "Import Certificate" msgstr "" #: ../pan/gui/server-ui.cc:973 msgid "Inspect Certificate" msgstr "" #: ../pan/gui/server-ui.cc:980 #, fuzzy msgid "Remove Certificate" msgstr "Suprimir un servidor" #: ../pan/gui/task-pane.cc:143 #, c-format msgid "" "\n" "Upload\n" "\n" "Subject: \"%s\"\n" "From: %s\n" "Groups: %s\n" "Sourcefile: %s\n" msgstr "" #: ../pan/gui/task-pane.cc:155 #, c-format msgid "" "\n" "Download\n" "\n" "Subject: \"%s\"\n" "From: %s\n" "Date: %s\n" "Groups: %s\n" "Save Path: %s\n" msgstr "" #: ../pan/gui/task-pane.cc:157 #, fuzzy msgid "unknown" msgstr "Desconegut" #: ../pan/gui/task-pane.cc:263 msgid "Choose new destination for selected Tasks" msgstr "" #: ../pan/gui/task-pane.cc:417 #, c-format msgid "Pan: Tasks (%d Queued, %d Running, %d Stopped)" msgstr "" #: ../pan/gui/task-pane.cc:419 #, c-format msgid "Pan: Tasks (%d Queued, %d Running)" msgstr "" #: ../pan/gui/task-pane.cc:421 #, c-format msgid "Pan: Tasks" msgstr "Pan : Prètzfaches" #: ../pan/gui/task-pane.cc:446 #, c-format msgid "%lu selected, %s" msgstr "" #: ../pan/gui/task-pane.cc:510 msgid "Running" msgstr "En foncionament" #: ../pan/gui/task-pane.cc:511 msgid "Decoding" msgstr "" #: ../pan/gui/task-pane.cc:513 msgid "Queued for Decode" msgstr "" #: ../pan/gui/task-pane.cc:514 msgid "Queued for Encode" msgstr "" #: ../pan/gui/task-pane.cc:515 msgid "Queued" msgstr "" #: ../pan/gui/task-pane.cc:516 msgid "Stopped" msgstr "Arrestat" #: ../pan/gui/task-pane.cc:517 msgid "Removing" msgstr "Supression" #: ../pan/gui/task-pane.cc:546 #, c-format msgid "%d%% Done" msgstr "%d%% acabat" #: ../pan/gui/task-pane.cc:552 #, c-format msgid "%d:%02d:%02d Remaining (%d @ %lu KiB/s)" msgstr "Demòra(n) %d:%02d:%02d (%d @ %lu ko/s)" #: ../pan/gui/task-pane.cc:646 ../pan/gui/task-pane.cc:647 msgid "Move To Top" msgstr "" #: ../pan/gui/task-pane.cc:651 ../pan/gui/task-pane.cc:652 msgid "Move To Bottom" msgstr "" #: ../pan/gui/task-pane.cc:656 ../pan/gui/task-pane.cc:657 msgid "Stop Task" msgstr "" #: ../pan/gui/task-pane.cc:661 ../pan/gui/task-pane.cc:662 #, fuzzy msgid "Delete Task" msgstr "Suprimir de prètzfaches" #: ../pan/gui/task-pane.cc:666 ../pan/gui/task-pane.cc:667 msgid "Restart Task" msgstr "" #: ../pan/gui/task-pane.cc:671 ../pan/gui/task-pane.cc:672 msgid "Change Download Destination" msgstr "" #: ../pan/gui/task-pane.cc:729 msgid "_Online" msgstr "_Connectat" #: ../pan/gui/task-pane.cc:746 msgid "Restart Tasks" msgstr "" #: ../pan/gui/task-pane.cc:748 msgid "Stop Tasks" msgstr "" #: ../pan/gui/task-pane.cc:750 msgid "Delete Tasks" msgstr "Suprimir de prètzfaches" #: ../pan/gui/url.cc:123 #, c-format msgid "Error starting URL: %s (Command was: %s)" msgstr "" #: ../pan/tasks/decoder.cc:115 #, c-format msgid "Couldn't save file \"%s\": %s" msgstr "Impossible d'enregistrar lo fichièr \"%s\" : %s" #: ../pan/tasks/decoder.cc:137 ../pan/tasks/encoder.cc:136 msgid "Error initializing uulib" msgstr "" #: ../pan/tasks/decoder.cc:152 ../pan/tasks/socket-impl-gio.cc:352 #: ../pan/tasks/socket-impl-openssl.cc:634 #, c-format msgid "Error reading from %s: %s" msgstr "" #: ../pan/tasks/decoder.cc:192 #, c-format msgid "Saved \"%s\"" msgstr "" #: ../pan/tasks/decoder.cc:199 #, c-format msgid "" "Error saving \"%s\":\n" "%s." msgstr "" "Error al moment d'enregistrar \"%s\" :\n" "%s." #: ../pan/tasks/decoder.cc:314 ../pan/tasks/task-article.cc:350 #, c-format msgid "Decoding %s" msgstr "" #: ../pan/tasks/encoder.cc:102 ../pan/tasks/encoder.cc:155 #, c-format msgid "Error loading %s from cache." msgstr "" #: ../pan/tasks/encoder.cc:177 #, fuzzy, c-format msgid "Error encoding %s: %s" msgstr "Error al moment de legir lo fichièr \"%s\" : %s" #: ../pan/tasks/encoder.cc:269 #, fuzzy, c-format msgid "Encoding %s" msgstr "Lectura de %s" #: ../pan/tasks/nntp.cc:126 #, c-format msgid "%s requires a username, but none is set." msgstr "" #: ../pan/tasks/nntp.cc:139 #, c-format msgid "%s requires a password, but none is set." msgstr "" #: ../pan/tasks/nntp.cc:205 #, c-format msgid "Sending \"%s\" to %s returned an error: %s" msgstr "" # # #: ../pan/tasks/nntp.cc:228 #, c-format msgid "Sending \"%s\" to %s returned an unrecognized response: \"%s\"" msgstr "" #: ../pan/tasks/nntp-pool.cc:222 #, c-format msgid "Unable to connect to \"%s\"" msgstr "" #: ../pan/tasks/socket-impl-gio.cc:173 ../pan/tasks/socket-impl-gio.cc:211 #: ../pan/tasks/socket-impl-openssl.cc:214 #: ../pan/tasks/socket-impl-openssl.cc:252 #, c-format msgid "Error connecting to \"%s\"" msgstr "" #: ../pan/tasks/socket-impl-gio.cc:351 ../pan/tasks/socket-impl-openssl.cc:633 msgid "Unknown Error" msgstr "Error desconeguda" #: ../pan/tasks/task-article.cc:61 ../pan/tasks/task-article.cc:156 #: ../pan/tasks/task-article.cc:159 #, c-format msgid "Saving %s" msgstr "Enregistrament de %s" #: ../pan/tasks/task-article.cc:63 #, c-format msgid "Reading %s" msgstr "Lectura de %s" #: ../pan/tasks/task-article.cc:322 #, c-format msgid "Article \"%s\" is incomplete -- the news server(s) don't have part %s" msgstr "" #: ../pan/tasks/task-groups.cc:40 #, c-format msgid "Getting group list from \"%s\"" msgstr "" #: ../pan/tasks/task-groups.cc:122 #, c-format msgid "Fetched %lu Groups" msgstr "" #: ../pan/tasks/task-post.cc:35 #, c-format msgid "Posting \"%s\"" msgstr "" #: ../pan/tasks/task-post.cc:76 #, c-format msgid "Posting of \"%s\" failed: %s" msgstr "" #: ../pan/tasks/task-post.cc:81 #, c-format msgid "Posting of \"%s\" succesful: %s" msgstr "" #: ../pan/tasks/task-upload.cc:51 #, fuzzy, c-format msgid "Uploading %s" msgstr "Lectura de %s" #: ../pan/tasks/task-upload.cc:249 #, c-format msgid "Uploading %s - Part %d of %d" msgstr "" #: ../pan/tasks/task-upload.cc:251 #, c-format msgid "Uploading Message body with Subject \"%s\"" msgstr "" #: ../pan/tasks/task-upload.cc:308 #, c-format msgid "Posting of File %s (Part %d of %d) failed: No Posts allowed by server." msgstr "" #: ../pan/tasks/task-upload.cc:316 #, c-format msgid "Posting of File %s (Part %d of %d) failed: %s" msgstr "" #: ../pan/tasks/task-upload.cc:326 ../pan/tasks/task-upload.cc:333 #, c-format msgid "Posting of file %s (Part %d of %d) succesful: %s" msgstr "" #: ../pan/tasks/task-upload.cc:343 #, c-format msgid "Posting of file %s succesful: %s" msgstr "" #: ../pan/tasks/task-upload.cc:347 #, c-format msgid "" "Posting of file %s not completely successful: Check the log (right-click on " "list item) !" msgstr "" #: ../pan/tasks/task-upload.cc:364 #, c-format msgid "" "Posting of file %s not successful: Check the log (right-click on list item) !" msgstr "" #: ../pan/tasks/task-xover.cc:79 #, c-format msgid "Getting all headers for \"%s\"" msgstr "" #: ../pan/tasks/task-xover.cc:81 #, c-format msgid "Getting new headers for \"%s\"" msgstr "" #. SAMPLE #: ../pan/tasks/task-xover.cc:83 #, c-format msgid "Sampling headers for \"%s\"" msgstr "" #: ../pan/tasks/task-xover.cc:369 #, c-format msgid "%s (%lu parts, %lu articles)" msgstr "" #: ../pan/tasks/task-xoverinfo.cc:78 #, fuzzy, c-format msgid "Getting header counts for \"%s\"" msgstr "Creacion del repertòri \"%s\"" #: ../pan/usenet-utils/filter-info.cc:163 msgid "article doesn't have attachments" msgstr "" #: ../pan/usenet-utils/filter-info.cc:167 msgid "the article has attachments" msgstr "l'article a de fichièrs junts" #: ../pan/usenet-utils/filter-info.cc:171 msgid "the article isn't cached locally" msgstr "" #: ../pan/usenet-utils/filter-info.cc:175 msgid "the article is cached locally" msgstr "" #: ../pan/usenet-utils/filter-info.cc:179 msgid "the article wasn't posted by you" msgstr "" #: ../pan/usenet-utils/filter-info.cc:183 msgid "the article was posted by you" msgstr "" #: ../pan/usenet-utils/filter-info.cc:187 msgid "the article has been read" msgstr "l'article es estat legit" #: ../pan/usenet-utils/filter-info.cc:191 msgid "the article hasn't been read" msgstr "l'article es pas estat legit" #: ../pan/usenet-utils/filter-info.cc:195 #, c-format msgid "the article is less than %ld bytes long" msgstr "" #: ../pan/usenet-utils/filter-info.cc:200 #, c-format msgid "the article is at least %ld bytes long" msgstr "" #: ../pan/usenet-utils/filter-info.cc:205 #, c-format msgid "the article is less than %ld lines long" msgstr "" #: ../pan/usenet-utils/filter-info.cc:210 #, c-format msgid "the article is at least %ld lines long" msgstr "" #: ../pan/usenet-utils/filter-info.cc:215 #, c-format msgid "the article is less than %ld days old" msgstr "" #: ../pan/usenet-utils/filter-info.cc:220 #, c-format msgid "the article is at least %ld days old" msgstr "" #: ../pan/usenet-utils/filter-info.cc:225 #, c-format msgid "the article was posted to less than %ld groups" msgstr "" #: ../pan/usenet-utils/filter-info.cc:230 #, c-format msgid "the article was posted to at least %ld groups" msgstr "" #: ../pan/usenet-utils/filter-info.cc:235 #, c-format msgid "the article's score is less than %ld" msgstr "" #: ../pan/usenet-utils/filter-info.cc:240 #, c-format msgid "the article's score is %ld or higher" msgstr "" #: ../pan/usenet-utils/filter-info.cc:249 #: ../pan/usenet-utils/filter-info.cc:259 #, c-format msgid "%s doesn't contain \"%s\"" msgstr "%s conten pas \"%s\"" #: ../pan/usenet-utils/filter-info.cc:250 #: ../pan/usenet-utils/filter-info.cc:260 #, c-format msgid "%s isn't \"%s\"" msgstr "%s es pas \"%s\"" #: ../pan/usenet-utils/filter-info.cc:251 #: ../pan/usenet-utils/filter-info.cc:261 #, c-format msgid "%s doesn't begin with \"%s\"" msgstr "%s comença pas per \"%s\"" #: ../pan/usenet-utils/filter-info.cc:252 #: ../pan/usenet-utils/filter-info.cc:262 #, c-format msgid "%s doesn't end with \"%s\"" msgstr "%s s'acaba pas per \"%s\"" #: ../pan/usenet-utils/filter-info.cc:253 #: ../pan/usenet-utils/filter-info.cc:263 #, c-format msgid "%s doesn't match the regex \"%s\"" msgstr "" #: ../pan/usenet-utils/filter-info.cc:275 #, c-format msgid "%s contains \"%s\"" msgstr "%s conten \"%s\"" #: ../pan/usenet-utils/filter-info.cc:276 #, c-format msgid "%s is \"%s\"" msgstr "%s es \"%s\"" #: ../pan/usenet-utils/filter-info.cc:277 #, c-format msgid "%s begins with \"%s\"" msgstr "%s comença per \"%s\"" #: ../pan/usenet-utils/filter-info.cc:278 #, c-format msgid "%s ends with \"%s\"" msgstr "%s s'acaba per \"%s\"" #: ../pan/usenet-utils/filter-info.cc:279 #, c-format msgid "%s matches the regex \"%s\"" msgstr "" #: ../pan/usenet-utils/filter-info.cc:285 msgid "Any of these tests fail:" msgstr "" #: ../pan/usenet-utils/filter-info.cc:292 msgid "All of these tests pass:" msgstr "" #: ../pan/usenet-utils/filter-info.cc:299 msgid "None of these tests pass:" msgstr "" #: ../pan/usenet-utils/filter-info.cc:306 msgid "Any of these tests pass:" msgstr "" #: ../pan/usenet-utils/gnksa.cc:878 #, c-format msgid "No email address provided; generating message-id with domain \"%s\"" msgstr "" #: ../pan/usenet-utils/message-check.cc:124 msgid "Warning: Reply seems to be top-posted." msgstr "" #: ../pan/usenet-utils/message-check.cc:145 msgid "Warning: The signature marker should be \"-- \", not \"--\"." msgstr "" #: ../pan/usenet-utils/message-check.cc:162 msgid "Warning: Signature prefix with no signature." msgstr "" #: ../pan/usenet-utils/message-check.cc:167 msgid "Warning: Signature is more than 4 lines long." msgstr "" #: ../pan/usenet-utils/message-check.cc:172 msgid "Warning: Signature is more than 80 characters wide." msgstr "" #: ../pan/usenet-utils/message-check.cc:198 #, c-format msgid "Warning: %d line is more than 80 characters wide." msgid_plural "Warning: %d lines are more than 80 characters wide." msgstr[0] "" msgstr[1] "" #: ../pan/usenet-utils/message-check.cc:223 msgid "Error: Message is empty." msgstr "Error : lo messatge es void." #: ../pan/usenet-utils/message-check.cc:258 msgid "Warning: The message is entirely quoted text!" msgstr "" #: ../pan/usenet-utils/message-check.cc:259 msgid "Warning: The message is mostly quoted text." msgstr "" #: ../pan/usenet-utils/message-check.cc:309 msgid "Error: Message appears to have no new content." msgstr "" #: ../pan/usenet-utils/message-check.cc:344 #: ../pan/usenet-utils/message-check.cc:383 #, c-format msgid "" "Warning: The posting profile's server doesn't carry newsgroup\n" "\t\"%s\".\n" "\tIf the group name is correct, switch profiles in the \"From:\"\n" "\tline or edit the profile with \"Edit|Manage Posting Profiles\"." msgstr "" #: ../pan/usenet-utils/message-check.cc:355 msgid "Warning: Following-Up to too many groups." msgstr "" #: ../pan/usenet-utils/message-check.cc:366 msgid "Error: No Subject specified." msgstr "" #: ../pan/usenet-utils/message-check.cc:395 #, c-format msgid "Warning: Group \"%s\" is read-only." msgstr "" #: ../pan/usenet-utils/message-check.cc:404 msgid "Error: Posting to a very large number of groups." msgstr "" #: ../pan/usenet-utils/message-check.cc:409 msgid "Warning: Posting to a large number of groups." msgstr "" #: ../pan/usenet-utils/message-check.cc:416 msgid "Warning: Crossposting without setting Followup-To header." msgstr "" #: ../pan/usenet-utils/message-check.cc:441 msgid "Error: Bad email address." msgstr "" #: ../pan/usenet-utils/message-check.cc:450 msgid "Warning: Most newsgroups frown upon HTML posts." msgstr "" #: ../pan/usenet-utils/message-check.cc:486 msgid "Error: No Recipients." msgstr "" #: ../pan/usenet-utils/scorefile.cc:304 #, c-format msgid "" "Error reading score in %*.*s, line %d: expected 'Expires: MM/DD/YYYY' or " "'Expires: DD-MM-YYYY'." msgstr "" #: ../pan/usenet-utils/scorefile.cc:307 #, c-format msgid "Expired old score from %*.*s, line %d" msgstr "" #: ../pan/usenet-utils/scorefile.cc:380 #, c-format msgid "Error reading score in %*.*s, line %d: unexpected line." msgstr "" #: ../pan/usenet-utils/scorefile.cc:428 #, c-format msgid "Read %lu scoring rules in %lu sections from \"%s\"" msgstr "" #: ../pan/usenet-utils/ssl-utils.h:199 #, fuzzy, c-format msgid "Error printing the server certificate for '%s'" msgstr "Error al moment d'aviar l'editor extèrn : %s" #: ../pan/usenet-utils/ssl-utils.h:216 #, c-format msgid "" "The current server '%s' sent this security certificate :\n" "\n" msgstr "" #: ../pan/usenet-utils/ssl-utils.h:217 #, c-format msgid "" "Certificate information for server '%s' :\n" "\n" msgstr "" #: ../pan/usenet-utils/ssl-utils.h:219 #, c-format msgid "" "%sIssuer information:\n" "%s\n" "Valid until : %s\n" "\n" "Not valid before : %s\n" "\n" msgstr "" #: ../pan/usenet-utils/text-massager.cc:397 msgid "> [quoted text muted]" msgstr "" #~ msgid "Read News from Usenet" #~ msgstr "Legir las novèlas de Usenet" #, fuzzy #~ msgid "Signer : " #~ msgstr "Signatura :" #~ msgid "_Signature:" #~ msgstr "_Signatura :" #~ msgid "Couldn't create directory \"%s\": %s" #~ msgstr "Impossible de crear lo repertòri \"%s\" : %s" pan-0.162/po/pl.po000066400000000000000000003043741475412772400137210ustar00rootroot00000000000000# Polish translation for pan. # Copyright © 2016-2024 the pan authors. # This file is distributed under the same license as the pan package. # Piotr Drąg , 2016-2024. # Aviary.pl , 2016-2024. # msgid "" msgstr "" "Project-Id-Version: pan\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/pan/issues/\n" "POT-Creation-Date: 2024-08-24 13:09+0000\n" "PO-Revision-Date: 2024-09-15 18:54+0200\n" "Last-Translator: Piotr Drąg \n" "Language-Team: Polish \n" "Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2);\n" #. update the titlebar #: org.gnome.pan.desktop.in:3 org.gnome.pan.metainfo.xml.in:27 #: pan/gui/dl-headers-ui.cc:119 pan/gui/gui.cc:1041 pan/gui/gui.cc:1666 #: pan/gui/gui.cc:1986 pan/gui/score-add-ui.cc:600 msgid "Pan" msgstr "Pan" #: org.gnome.pan.desktop.in:4 msgid "Newsreader" msgstr "Czytnik grup dyskusyjnych" #: org.gnome.pan.desktop.in:5 org.gnome.pan.metainfo.xml.in:7 msgid "Read and post Usenet articles" msgstr "Czytanie i wysyłanie wiadomości w sieci Usenet" #. Translators: Search terms to find this application. Do NOT translate or localise the semicolons! The list MUST also end with a semicolon! #: org.gnome.pan.desktop.in:7 msgid "usenet;news;newsreader;newsgroup;article;yenc;nzb;" msgstr "usenet;grupy;dyskusyjne;czytnik;wiadomość;artykuł;post;yenc;nzb;" #: org.gnome.pan.metainfo.xml.in:6 msgid "Pan Newsreader" msgstr "Czytnik grup dyskusyjnych Pan" #: org.gnome.pan.metainfo.xml.in:9 msgid "" "Pan is a Usenet newsreader that is good at both text and binaries. It " "supports offline reading, scoring and killfiles, yEnc, NZB, PGP handling, " "multiple servers, and secure connections." msgstr "" "Pan jest czytnikiem sieci Usenet z dobrą obsługą tekstu i plików binarnych. " "Obsługuje czytanie w trybie offline, punktację i listy blokowania, yEnc, " "NZB, PGP, wiele serwerów i bezpieczne połączenia." #: org.gnome.pan.metainfo.xml.in:12 msgid "" "It is also the only Unix newsreader to get a perfect score on the Good Net-" "Keeping Seal of Approval evaluations." msgstr "" "Jest także jedynym czytnikiem grup dyskusyjnych dla systemu UNIX, który " "uzyskał idealny wynik w badaniach „Good Net-Keeping Seal of Approval”." #: pan/data/article-cache.cc:144 pan/data/encode-cache.cc:62 #, c-format msgid "Error opening directory: \"%s\": %s" msgstr "Błąd podczas otwierania katalogu: „%s”: %s" #: pan/data/article-cache.cc:235 pan/data/article-cache.cc:244 #: pan/data-impl/data-io.cc:278 pan/data-impl/data-io.cc:310 #: pan/gui/post-ui.cc:1698 #, c-format msgid "Unable to save \"%s\" %s" msgstr "Nie można zapisać „%s” %s" #: pan/data/article-cache.cc:362 #, c-format msgid "Error opening file \"%s\" %s" msgstr "Błąd podczas otwierania pliku „%s” %s" #: pan/data/article-cache.cc:393 pan/data-impl/profiles.cc:175 #: pan/data-impl/server.cc:478 pan/general/file-util.cc:311 #: pan/gui/post-ui.cc:567 pan/gui/task-pane.cc:740 #, c-format msgid "Error reading file \"%s\": %s" msgstr "Błąd podczas odczytywania pliku „%s”: %s" #: pan/data/cert-store.cc:259 #, c-format msgid "Error opening SSL certificate directory: \"%s\": %s" msgstr "Błąd podczas otwierania katalogu certyfikatu SSL: „%s”: %s" #: pan/data/cert-store.cc:290 #, c-format msgid "Successfully added %d SSL PEM certificate(s) to Certificate Store." msgstr "" "Liczba pomyślnie dodanych certyfikatów PEM SSL do przechowalni certyfikatów: " "%d." #: pan/data/cert-store.cc:310 msgid "" "Error initializing Certificate Store. Check that the permissions for the " "folders ~/.pan2 and ~/.pan2/ssl_certs are set correctly. Fatal, exiting." msgstr "" "Błąd podczas inicjowania przechowalni certyfikatów. Proszę sprawdzić " "poprawność uprawnień do katalogów ~/.pan2 i ~/.pan2/ssl_certs. Krytyczne, " "kończenie działania." #: pan/data/cert-store.cc:359 #, c-format msgid "Could not export certificate for server: %s" msgstr "Nie można wyeksportować certyfikatu dla serwera: %s" #. load_group_descriptions (*_data_io); #: pan/data-impl/data-impl.cc:119 #, c-format msgid "Loaded data backend in %.1f seconds" msgstr "Wczytano mechanizm danych w %.1f s" #: pan/data-impl/data-impl.cc:155 msgid "Pan Newsreader's server passwords" msgstr "Hasła serwerów czytnika grup dyskusyjnych Pan" #: pan/data-impl/groups.cc:104 #, c-format msgid "Skipping newsrc file for server \"%s\"" msgstr "Pomijanie pliku newsrc dla serwera „%s”" #: pan/data-impl/headers.cc:618 #, c-format msgid "Expired %lu old articles from \"%s\"" msgstr "Wygasło %lu starych wiadomości z „%s”" #: pan/data-impl/headers.cc:625 #, c-format msgid "" "Unsupported data version for %s headers: %d.\n" "Are you running an old version of Pan by accident?" msgstr "" "Nieobsługiwana wersja danych dla nagłówków %s: %d.\n" "Czy przez przypadek jest uruchomiona poprzednia wersja programu Pan?" #: pan/data-impl/headers.cc:640 #, c-format msgid "Loaded %llu articles for \"%s\" in %.1f seconds (%.0f per second)" msgstr "Wczytano %llu wiadomości dla „%s” w %.1f s (%.0f na sekundę)" #: pan/data-impl/headers.cc:869 #, c-format msgid "" "Saved %lu parts, %lu articles in \"%s\" in %.1f seconds (%.0f articles/sec)" msgstr "Zapisano %lu części i %lu wiadomości w „%s” w %.1f s (%.0f na sekundę)" #: pan/data-impl/headers.cc:1202 #, c-format msgid "Added %lu articles to %s." msgstr "Dodano %lu wiadomości do %s." #: pan/data-impl/server.cc:250 #, c-format msgid "Received no password from libsecret for server %s." msgstr "Nie otrzymano hasła z biblioteki libsecret dla serwera %s." #: pan/data-impl/xover.cc:241 #, c-format msgid "Error reading from %s: unknown group \"%s\"" msgstr "Błąd podczas odczytywania z %s: nieznana grupa „%s”" #: pan/general/e-util.cc:164 msgid "%l:%M %p" msgstr "%H∶%M" #: pan/general/e-util.cc:165 msgid "Today %l:%M %p" msgstr "Dzisiaj o %H∶%M" #: pan/general/e-util.cc:166 msgid "%a %l:%M %p" msgstr "%a, %H∶%M" #: pan/general/e-util.cc:167 msgid "%b %d %l:%M %p" msgstr "%-d %b, %H∶%M" #: pan/general/e-util.cc:168 msgid "%b %d %Y" msgstr "%-d %b %Y" #: pan/general/e-util.cc:200 msgid "?" msgstr "?" #: pan/general/text-match.cc:194 #, c-format msgid "Can't use regular expression \"%s\": %s" msgstr "Nie można użyć wyrażenia regularnego „%s”: %s" #: pan/general/utf8-utils.cc:212 msgid "Couldn't determine article encoding. Non-UTF8 characters were removed." msgstr "" "Nie można ustalić kodowania wiadomości. Znaki spoza zestawu UTF-8 zostały " "usunięte." #: pan/gui/actions.cc:306 pan/gui/post-ui.cc:382 msgid "_File" msgstr "_Plik" #: pan/gui/actions.cc:307 pan/gui/post-ui.cc:383 msgid "_Edit" msgstr "_Edycja" #: pan/gui/actions.cc:308 pan/gui/prefs-ui.cc:1157 msgid "_Layout" msgstr "_Układ" #: pan/gui/actions.cc:309 msgid "_Group Pane" msgstr "Panel g_rupy" #: pan/gui/actions.cc:310 msgid "_Header Pane" msgstr "Panel _nagłówka" #: pan/gui/actions.cc:311 msgid "_Body Pane" msgstr "Panel _treści" #: pan/gui/actions.cc:312 msgid "_View" msgstr "_Widok" #: pan/gui/actions.cc:313 msgid "Filte_r" msgstr "_Filtr" #: pan/gui/actions.cc:314 msgid "_Go" msgstr "P_rzejdź" #: pan/gui/actions.cc:315 pan/gui/prefs-ui.cc:1207 msgid "_Actions" msgstr "_Działania" #: pan/gui/actions.cc:316 msgid "_Articles" msgstr "W_iadomości" #: pan/gui/actions.cc:317 msgid "G_roups" msgstr "_Grupy" #: pan/gui/actions.cc:318 pan/gui/actions.cc:319 msgid "_Post" msgstr "_Wyślij" #: pan/gui/actions.cc:320 msgid "_Help" msgstr "Pomo_c" #: pan/gui/actions.cc:323 msgid "_Read Group" msgstr "_Przeczytana grupa" #: pan/gui/actions.cc:324 msgid "Read Group" msgstr "Przeczytana grupa" #: pan/gui/actions.cc:328 msgid "_Mark Selected Groups Read" msgstr "_Oznacz zaznaczone grupy jako przeczytane" #: pan/gui/actions.cc:329 msgid "Mark Selected Groups Read" msgstr "Oznacz zaznaczone grupy jako przeczytane" #: pan/gui/actions.cc:333 msgid "_Delete Selected Groups' Articles" msgstr "_Usuń wiadomości zaznaczonych grup" #: pan/gui/actions.cc:334 msgid "Delete Selected Groups' Articles" msgstr "Usuń wiadomości zaznaczonych grup" #: pan/gui/actions.cc:338 msgid "Get New _Headers in Selected Groups" msgstr "_Pobierz nowe nagłówki w zaznaczonych grupach" #: pan/gui/actions.cc:339 msgid "Get New Headers in Selected Groups" msgstr "Pobierz nowe nagłówki w zaznaczonych grupach" #: pan/gui/actions.cc:343 pan/gui/actions.cc:348 msgid "Get New _Headers in Subscribed Groups" msgstr "_Pobierz nowe nagłówki w subskrybowanych grupach" #: pan/gui/actions.cc:344 pan/gui/actions.cc:349 msgid "Get New Headers in Subscribed Groups" msgstr "Pobierz nowe nagłówki w subskrybowanych grupach" #: pan/gui/actions.cc:353 msgid "Get _Headers..." msgstr "_Pobierz nagłówki…" #: pan/gui/actions.cc:354 msgid "Get Headers..." msgstr "Pobierz nagłówki…" #: pan/gui/actions.cc:358 pan/gui/actions.cc:359 msgid "Refresh Group List" msgstr "Odśwież listę grup" #: pan/gui/actions.cc:363 msgid "_Subscribe" msgstr "_Subskrybuj" #: pan/gui/actions.cc:364 msgid "Subscribe" msgstr "Subskrybuj" #: pan/gui/actions.cc:368 msgid "_Unsubscribe" msgstr "_Zrezygnuj z subskrypcji" #: pan/gui/actions.cc:369 msgid "Unsubscribe" msgstr "Zrezygnuj z subskrypcji" #: pan/gui/actions.cc:373 msgid "_Save Articles..." msgstr "_Zapisz wiadomości…" #: pan/gui/actions.cc:374 msgid "Save Articles..." msgstr "Zapisz wiadomości…" #: pan/gui/actions.cc:378 msgid "Save Articles from Selected _NZB..." msgstr "Zapisz wiadomości z zaznaczonego pliku _NZB…" #: pan/gui/actions.cc:379 msgid "Save Articles from Selected NZB" msgstr "Zapisz wiadomości z zaznaczonego pliku NZB" #: pan/gui/actions.cc:383 msgid "Save Articles to an NZB _File..." msgstr "Z_apisz wiadomości do pliku NZB…" #: pan/gui/actions.cc:384 msgid "Save Articles to an NZB File" msgstr "Zapisz wiadomości do pliku NZB" #: pan/gui/actions.cc:388 pan/gui/actions.cc:389 msgid "Print" msgstr "Wydrukuj" #: pan/gui/actions.cc:393 msgid "_Import NZB Files..." msgstr "Za_importuj pliki NZB…" #: pan/gui/actions.cc:398 msgid "_Cancel Last Task" msgstr "_Anuluj ostatnie zadanie" #: pan/gui/actions.cc:403 msgid "_Task Manager" msgstr "_Menedżer zadań" #: pan/gui/actions.cc:408 msgid "_Event Log" msgstr "_Dziennik zdarzeń" #: pan/gui/actions.cc:413 msgid "_Quit" msgstr "Za_kończ" #: pan/gui/actions.cc:418 msgid "Select _All Articles" msgstr "Zaznacz _wszystkie wiadomości" #: pan/gui/actions.cc:423 msgid "_Deselect All Articles" msgstr "_Odznacz wszystkie wiadomości" #: pan/gui/actions.cc:428 msgid "Add Su_bthreads to Selection" msgstr "_Dodaj podwątki do zaznaczenia" #: pan/gui/actions.cc:433 msgid "Add _Threads to Selection" msgstr "Dod_aj wątki do zaznaczenia" #: pan/gui/actions.cc:438 msgid "Add _Similar Articles to Selection" msgstr "Dodaj podo_bne wiadomości do zaznaczenia" #: pan/gui/actions.cc:443 msgid "Select Article _Body" msgstr "Wybierz _treść wiadomości" #: pan/gui/actions.cc:448 msgid "Edit _Preferences" msgstr "_Modyfikuj preferencje" #: pan/gui/actions.cc:453 msgid "Edit Selected _Group's Preferences" msgstr "Modyfi_kuj preferencje zaznaczonej grupy" #: pan/gui/actions.cc:458 msgid "Edit S_core File" msgstr "Mo_dyfikuj plik punktów" #: pan/gui/actions.cc:463 pan/gui/post-ui.cc:399 msgid "Edit P_osting Profiles" msgstr "Modyfik_uj profile wysyłania" #: pan/gui/actions.cc:468 msgid "Edit _News Servers" msgstr "Modyfikuj _serwery grup dyskusyjnych" #: pan/gui/actions.cc:473 msgid "Jump to _Group Tab" msgstr "P_rzejdź do karty grup" #: pan/gui/actions.cc:478 msgid "Jump to _Header Tab" msgstr "Przejdź do karty _nagłówka" #: pan/gui/actions.cc:483 msgid "Jump to _Body Tab" msgstr "Pr_zejdź do karty treści" #: pan/gui/actions.cc:488 msgid "_Rot13 Selected Text" msgstr "Zaszyf_ruj zaznaczony tekst za pomocą ROT13" #: pan/gui/actions.cc:493 msgid "Clear _Header Pane" msgstr "Wyczyść panel _nagłówka" #: pan/gui/actions.cc:498 msgid "Clear _Body Pane" msgstr "Wy_czyść panel treści" #: pan/gui/actions.cc:503 msgid "Cache Article" msgstr "Umieść wiadomość w pamięci podręcznej" #: pan/gui/actions.cc:508 msgid "Read Article" msgstr "Czytaj wiadomość" #: pan/gui/actions.cc:513 msgid "Show Article Information" msgstr "Wyświetl informacje o wiadomości" #: pan/gui/actions.cc:518 msgid "Read _More" msgstr "_Czytaj dalej" #: pan/gui/actions.cc:519 msgid "Read More" msgstr "Czytaj dalej" #: pan/gui/actions.cc:523 msgid "Read _Back" msgstr "C_zytaj poprzednie" #: pan/gui/actions.cc:524 msgid "Read Back" msgstr "Czytaj poprzednie" #: pan/gui/actions.cc:528 msgid "Next _Unread Group" msgstr "_Następna nieprzeczytana grupa" #: pan/gui/actions.cc:533 msgid "Next _Group" msgstr "N_astępna grupa" #: pan/gui/actions.cc:538 msgid "Next _Unread Article" msgstr "Na_stępna nieprzeczytana wiadomość" #: pan/gui/actions.cc:539 msgid "Next Unread Article" msgstr "Następna nieprzeczytana wiadomość" #: pan/gui/actions.cc:543 msgid "Next _Article" msgstr "Nas_tępna wiadomość" #: pan/gui/actions.cc:544 msgid "Next Article" msgstr "Następna wiadomość" #: pan/gui/actions.cc:548 msgid "Next _Watched Article" msgstr "Następna _obserwowana wiadomość" #: pan/gui/actions.cc:553 msgid "Next Unread _Thread" msgstr "Następny nieprzeczytany _wątek" #: pan/gui/actions.cc:554 msgid "Next Unread Thread" msgstr "Następny nieprzeczytany wątek" #: pan/gui/actions.cc:558 msgid "Next Threa_d" msgstr "Nas_tępny wątek" #: pan/gui/actions.cc:563 msgid "Pre_vious Article" msgstr "_Poprzednia wiadomość" #: pan/gui/actions.cc:568 msgid "Previous _Thread" msgstr "Poprzedni _wątek" #: pan/gui/actions.cc:573 msgid "_Parent Article" msgstr "_Nadrzędna wiadomość" #: pan/gui/actions.cc:578 msgid "Ignore _Author" msgstr "Ignoruj _autora" #: pan/gui/actions.cc:582 msgid "_Watch Thread" msgstr "_Obserwuj wątek" #: pan/gui/actions.cc:587 msgid "_Ignore Thread" msgstr "_Ignoruj wątek" #: pan/gui/actions.cc:592 pan/gui/actions.cc:593 msgid "_Toggle Flag On/Off for Thread" msgstr "_Przełącz oznaczenie dla wątku" #: pan/gui/actions.cc:597 pan/gui/actions.cc:598 msgid "_Turn Flag Off for Thread" msgstr "_Wyłącz oznaczenie dla wątku" #: pan/gui/actions.cc:602 pan/gui/actions.cc:603 msgid "_Select All Flagged Threads" msgstr "_Zaznacz wszystkie oznaczone wątki" #: pan/gui/actions.cc:607 pan/gui/actions.cc:608 msgid "_Go to Next Flagged Thread" msgstr "_Przejdź do następnego oznaczonego wątku" #: pan/gui/actions.cc:612 pan/gui/actions.cc:613 msgid "_Go to Last Flagged Thread" msgstr "_Przejdź do ostatniego oznaczonego wątku" #: pan/gui/actions.cc:617 pan/gui/actions.cc:618 msgid "_Invert Selection" msgstr "_Odwróć zaznaczenie" #: pan/gui/actions.cc:622 msgid "Edit Article's Watch/Ignore/Score..." msgstr "Modyfikuj obserwację/ignorowanie/punkty wiadomości…" #: pan/gui/actions.cc:627 msgid "Add a _Scoring Rule..." msgstr "_Dodaj regułę punktacji…" #: pan/gui/actions.cc:632 msgid "Cance_l Article..." msgstr "_Anuluj wiadomość…" #: pan/gui/actions.cc:637 msgid "_Supersede Article..." msgstr "_Zastąp wiadomość…" #: pan/gui/actions.cc:642 msgid "_Delete Article" msgstr "_Usuń wiadomość" #: pan/gui/actions.cc:647 msgid "Clear Article Cache" msgstr "Wyczyść pamięć podręczną wiadomości" #: pan/gui/actions.cc:652 msgid "_Mark Article as Read" msgstr "_Oznacz wiadomość jako przeczytaną" #: pan/gui/actions.cc:657 msgid "Mark Article as _Unread" msgstr "O_znacz wiadomość jako nieprzeczytaną" #: pan/gui/actions.cc:663 msgid "_Mark Thread as Read" msgstr "_Oznacz wątek jako przeczytany" #: pan/gui/actions.cc:668 msgid "Mark Thread as _Unread" msgstr "O_znacz wątek jako nieprzeczytany" #: pan/gui/actions.cc:673 msgid "_Post to Newsgroup" msgstr "_Wyślij na grupę dyskusyjną" #: pan/gui/actions.cc:674 msgid "Post to Newsgroup" msgstr "Wyślij na grupę dyskusyjną" #: pan/gui/actions.cc:678 msgid "_Followup to Newsgroup" msgstr "_Odpowiedz na grupie dyskusyjnej" #: pan/gui/actions.cc:679 msgid "Followup to Newsgroup" msgstr "Odpowiedz na grupie dyskusyjnej" #: pan/gui/actions.cc:683 msgid "_Reply to Author in Mail" msgstr "O_dpowiedz autorowi pocztą" #: pan/gui/actions.cc:689 msgid "_Contents" msgstr "_Spis treści" #: pan/gui/actions.cc:695 msgid "_Pan Home Page" msgstr "Strona programu _Pan" #: pan/gui/actions.cc:700 msgid "Give _Feedback or Report a Bug..." msgstr "_Wyślij opinię lub zgłoś błąd…" #: pan/gui/actions.cc:705 msgid "_About" msgstr "_O programie" #: pan/gui/actions.cc:710 msgid "Edit _SSL Certificates" msgstr "Modyfikuj certyfikaty _SSL" #: pan/gui/actions.cc:725 msgid "_Thread Headers" msgstr "_Nagłówki wątków" #: pan/gui/actions.cc:726 msgid "Wrap Article Body" msgstr "Zawijanie treści wiadomości" #: pan/gui/actions.cc:727 msgid "Show Article Signature" msgstr "Podpis wiadomości" #: pan/gui/actions.cc:728 msgid "Mute _Quoted Text" msgstr "Chowanie _cytowanego tekstu" #: pan/gui/actions.cc:729 msgid "Show All _Headers in Body Pane" msgstr "_Wszystkie nagłówki w panelu treści" #: pan/gui/actions.cc:730 msgid "Show _Smilies as Graphics" msgstr "_Uśmieszki jako grafiki" #: pan/gui/actions.cc:731 msgid "Show *Bold*, __Underlined__, and /Italic/" msgstr "Wyświetlanie *pogrubienia, __podkreślenia__ i /pochylenia/" #: pan/gui/actions.cc:732 msgid "Size Pictures to _Fit" msgstr "_Dopasowywanie obrazów" #: pan/gui/actions.cc:733 msgid "Use _Monospace Font" msgstr "_Czcionka o stałej szerokości znaków" #: pan/gui/actions.cc:734 msgid "Set Focus to Images" msgstr "Aktywowanie obrazów" #: pan/gui/actions.cc:735 msgid "Highlight _URLs" msgstr "Wyróżnianie adresów _URL" #: pan/gui/actions.cc:738 msgid "_Work Online" msgstr "_Działanie w trybie online" #: pan/gui/actions.cc:739 msgid "_Tabbed Layout" msgstr "_Karty" #: pan/gui/actions.cc:740 msgid "Show Group _Pane" msgstr "_Panel grup" #: pan/gui/actions.cc:741 msgid "Show Hea_der Pane" msgstr "Panel _nagłówka" #: pan/gui/actions.cc:742 msgid "Show Bod_y Pane" msgstr "Panel _treści" #: pan/gui/actions.cc:743 msgid "Show _Toolbar" msgstr "Pa_sek narzędziowy" #: pan/gui/actions.cc:744 msgid "Abbreviate Group Names" msgstr "Skracanie nazw grup" #: pan/gui/actions.cc:746 msgid "Match Only _Read Articles" msgstr "_Dopasowywanie tylko przeczytanych wiadomości" #: pan/gui/actions.cc:746 msgid "Match Only Read Articles" msgstr "Dopasowywanie tylko przeczytanych wiadomości" #: pan/gui/actions.cc:747 msgid "Match Only _Unread Articles" msgstr "Dopasowywanie tylko _nieprzeczytanych wiadomości" #: pan/gui/actions.cc:747 msgid "Match Only Unread Articles" msgstr "Dopasowywanie tylko nieprzeczytanych wiadomości" #: pan/gui/actions.cc:748 msgid "Match Only _Cached Articles" msgstr "D_opasowywanie tylko wiadomości w pamięci podręcznej" #: pan/gui/actions.cc:748 msgid "Match Only Cached Articles" msgstr "Dopasowywanie tylko wiadomości w pamięci podręcznej" #: pan/gui/actions.cc:749 msgid "Match Only _Complete Articles" msgstr "Dop_asowywanie tylko pełnych wiadomości" #: pan/gui/actions.cc:749 msgid "Match Only Complete Articles" msgstr "Dopasowywanie tylko pełnych wiadomości" #: pan/gui/actions.cc:750 msgid "Match Only _My Articles" msgstr "Dopasowywanie tylko _moich wiadomości" #: pan/gui/actions.cc:750 msgid "Match Only My Articles" msgstr "Dopasowywanie tylko moich wiadomości" #: pan/gui/actions.cc:751 msgid "Match Only _Watched Articles" msgstr "Dopasowywanie tylko _obserwowanych wiadomości" #: pan/gui/actions.cc:751 msgid "Match Only Watched Articles" msgstr "Dopasowywanie tylko obserwowanych wiadomości" #: pan/gui/actions.cc:753 msgid "Match Scores of 9999 (_Watched)" msgstr "Dopasowywanie punktów 9999 (_obserwowane)" #: pan/gui/actions.cc:754 msgid "Match Scores of 5000...9998 (_High)" msgstr "Dopasowywanie punktów 5000…9998 (_wysokie)" #: pan/gui/actions.cc:755 msgid "Match Scores of 1...4999 (Me_dium)" msgstr "Dopasowywanie punktów 1…4999 (ś_rednie)" #: pan/gui/actions.cc:756 msgid "Match Scores of 0 (_Normal)" msgstr "Dopasowywanie punktów 0 (_zwykłe)" #: pan/gui/actions.cc:757 msgid "Match Scores of -9998...-1 (_Low)" msgstr "Dopasowywanie punktów -9998…-1 (_niskie)" #: pan/gui/actions.cc:758 msgid "Match Scores of -9999 (_Ignored)" msgstr "Dopasowywanie punktów -9999 (_ignorowane)" #: pan/gui/actions.cc:760 msgid "Enable/Disable All _Rules" msgstr "Włącz/wyłącz wszystkie _reguły" #: pan/gui/actions.cc:788 msgid "Show Matching _Articles" msgstr "Wyświetl pasujące _wiadomości" #: pan/gui/actions.cc:789 msgid "Show Matching Articles' _Threads" msgstr "Wyświetl wą_tki pasujących wiadomości" #: pan/gui/actions.cc:790 msgid "Show Matching Articles' _Subthreads" msgstr "Wyświetl po_dwątki pasujących wiadomości" #: pan/gui/body-pane.cc:1040 msgid "Unnamed File" msgstr "Plik bez nazwy" #: pan/gui/body-pane.cc:1121 pan/gui/gui.cc:1957 pan/gui/header-pane.cc:1306 #: pan/gui/header-pane.cc:1735 pan/gui/post-ui.cc:2572 pan/gui/prefs-ui.cc:896 #: pan/gui/score-add-ui.cc:139 pan/gui/task-pane.cc:795 msgid "Subject" msgstr "Temat" #: pan/gui/body-pane.cc:1123 pan/gui/gui.cc:1957 msgid "From" msgstr "Od" #: pan/gui/body-pane.cc:1125 pan/gui/gui.cc:1958 pan/gui/header-pane.cc:1814 #: pan/gui/log-ui.cc:308 pan/gui/prefs-ui.cc:892 msgid "Date" msgstr "Data" #: pan/gui/body-pane.cc:1132 msgid "Newsgroups" msgstr "Grupy dyskusyjne" #: pan/gui/body-pane.cc:1139 pan/gui/body-pane.cc:1147 #: pan/gui/body-pane.cc:1154 msgid "User-Agent" msgstr "Identyfikator programu" #: pan/gui/body-pane.cc:1160 msgid "Followup-To" msgstr "Odpowiedź grupie do" #: pan/gui/body-pane.cc:1170 msgid "Reply-To" msgstr "Odpowiedź do" #: pan/gui/body-pane.cc:1218 msgid " from " msgstr " od " #: pan/gui/body-pane.cc:1220 msgid " at " msgstr " w " #: pan/gui/body-pane.cc:1309 #, c-format msgid "" "This is a PGP-Signed message.\n" "\n" "Signer: %s ('%s')\n" "Valid until: %s\n" "Created on: %s" msgstr "" "To wiadomość podpisana za pomocą PGP.\n" "\n" "Podpisujący: %s („%s”)\n" "Ważny do: %s\n" "Utworzony dnia: %s" #: pan/gui/body-pane.cc:1314 msgid "always" msgstr "zawsze" #: pan/gui/body-pane.cc:1533 msgid "Copy _URL" msgstr "Skopiuj adres _URL" #: pan/gui/body-pane.cc:1720 msgid "Save Attachment As..." msgstr "Zapisz załącznik jako…" #: pan/gui/body-pane.cc:1723 msgid "Save All Attachments" msgstr "Zapisz wszystkie załączniki" #: pan/gui/body-pane.cc:1794 msgid "Attachments:" msgstr "Załączniki:" #: pan/gui/body-pane.cc:1814 msgid "Text View" msgstr "Widok tekstu" #: pan/gui/body-pane.cc:1823 msgid "HTML View" msgstr "Widok HTML" #: pan/gui/dl-headers-ui.cc:125 #, c-format msgid "%d Group" msgid_plural "%d Groups" msgstr[0] "%d grupa" msgstr[1] "%d grupy" msgstr[2] "%d grup" #: pan/gui/dl-headers-ui.cc:148 msgid "Get the last N _days' headers: " msgstr "Li_czba ostatnich dni, dla których pobierać nagłówki: " #: pan/gui/dl-headers-ui.cc:156 msgid "Get _new headers" msgstr "Pobierz _nowe nagłówki" #: pan/gui/dl-headers-ui.cc:160 msgid "Get _all headers" msgstr "Pobierz _wszystkie nagłówki" #: pan/gui/dl-headers-ui.cc:164 msgid "Get the _latest N headers: " msgstr "L_iczba ostatnich nagłówków, które pobierać: " #: pan/gui/e-action-combo-box.c:386 pan/gui/prefs-ui.cc:889 msgid "Action" msgstr "Działanie" #: pan/gui/e-action-combo-box.c:387 msgid "A GtkRadioAction" msgstr "Widżet GtkRadioAction" #: pan/gui/e-charset.c:51 pan/gui/task-pane.cc:561 msgid "Unknown" msgstr "Nieznane" #: pan/gui/e-charset.c:52 msgid "Arabic" msgstr "arabskie" #: pan/gui/e-charset.c:53 msgid "Baltic" msgstr "bałtyckie" #: pan/gui/e-charset.c:54 msgid "Central European" msgstr "środkowoeuropejskie" #: pan/gui/e-charset.c:55 msgid "Chinese" msgstr "chińskie" #: pan/gui/e-charset.c:56 msgid "Cyrillic" msgstr "cyrylica" #: pan/gui/e-charset.c:57 msgid "Greek" msgstr "greckie" #: pan/gui/e-charset.c:58 msgid "Hebrew" msgstr "hebrajskie" #: pan/gui/e-charset.c:59 msgid "Japanese" msgstr "japońskie" #: pan/gui/e-charset.c:60 msgid "Korean" msgstr "koreańskie" #: pan/gui/e-charset.c:61 msgid "Thai" msgstr "tajskie" #: pan/gui/e-charset.c:62 msgid "Turkish" msgstr "tureckie" #: pan/gui/e-charset.c:63 msgid "Unicode" msgstr "Unicode" #: pan/gui/e-charset.c:64 msgid "Western European" msgstr "zachodnioeuropejskie" #: pan/gui/e-charset.c:65 msgid "Western European, New" msgstr "zachodnioeuropejskie, nowe" #: pan/gui/e-charset.c:84 pan/gui/e-charset.c:85 pan/gui/e-charset.c:86 msgid "Traditional" msgstr "tradycyjne" #: pan/gui/e-charset.c:87 pan/gui/e-charset.c:88 pan/gui/e-charset.c:89 #: pan/gui/e-charset.c:90 msgid "Simplified" msgstr "uproszczone" #: pan/gui/e-charset.c:93 msgid "Ukrainian" msgstr "ukraińskie" #: pan/gui/e-charset.c:96 msgid "Visual" msgstr "wizualne" #: pan/gui/e-charset-combo-box.c:95 pan/gui/gui.cc:2155 pan/gui/post-ui.cc:477 #: pan/gui/prefs-ui.cc:800 msgid "Character Encoding" msgstr "Kodowanie znaków" #: pan/gui/e-charset-combo-box.c:97 pan/gui/e-charset-dialog.c:51 #: pan/gui/score-add-ui.cc:606 pan/gui/task-pane.cc:309 msgid "Cancel" msgstr "Anuluj" #: pan/gui/e-charset-combo-box.c:98 pan/gui/e-charset-dialog.c:52 msgid "OK" msgstr "OK" #: pan/gui/e-charset-combo-box.c:119 msgid "Enter the character set to use" msgstr "Używany zestaw znaków" #: pan/gui/e-charset-combo-box.c:338 msgid "Other..." msgstr "Inny…" #: pan/gui/e-cte-dialog.c:76 msgid "Default Encoding" msgstr "Domyślne kodowanie" #: pan/gui/e-cte-dialog.c:78 msgid "7-Bit Encoding" msgstr "Kodowanie 7-bitowe" #: pan/gui/e-cte-dialog.c:80 msgid "8-Bit Encoding" msgstr "Kodowanie 8-bitowe" #: pan/gui/e-cte-dialog.c:82 msgid "Base64 Encoding" msgstr "Kodowanie Base64" #: pan/gui/e-cte-dialog.c:84 msgid "Quoted-Printable Encoding" msgstr "Kodowanie Quoted-Printable" #: pan/gui/editor-spawner.cc:66 #, c-format msgid "Error parsing \"external editor\" command line: %s (Command was: %s)" msgstr "" "Błąd podczas przetwarzania wiersza poleceń „zewnętrznego edytora”: %s " "(polecenie: %s)" #: pan/gui/editor-spawner.cc:110 #, c-format msgid "Error starting external editor: %s" msgstr "Błąd podczas uruchamiania zewnętrznego edytora: %s" #. Local folders #: pan/gui/group-pane.cc:330 msgid "Sent" msgstr "Wysłane" #: pan/gui/group-pane.cc:330 msgid "Drafts" msgstr "Szkice" #: pan/gui/group-pane.cc:540 msgid "Group" msgstr "Grupa" #: pan/gui/group-pane.cc:540 msgid "Group (regex)" msgstr "Grupa (wyrażenie regularne)" #: pan/gui/group-pane.cc:985 msgid "Local Folders" msgstr "Lokalne katalogi" #: pan/gui/group-pane.cc:986 msgid "Subscribed Groups" msgstr "Subskrybowane grupy" #: pan/gui/group-pane.cc:987 msgid "Other Groups" msgstr "Inne grupy" #: pan/gui/group-pane.cc:1028 pan/gui/score-view-ui.cc:156 msgid "Name" msgstr "Nazwa" #: pan/gui/group-prefs-dialog.cc:161 msgid "No Profiles defined in Edit|Posting Profiles." msgstr "Nie określono żadnych profili w Modyfikuj → Profile wysyłania." #: pan/gui/group-prefs-dialog.cc:264 msgid "Pan: Group Preferences" msgstr "Pan: preferencje grupy" #: pan/gui/group-prefs-dialog.cc:279 msgid "Properties for Groups" msgstr "Właściwości dla grup" #: pan/gui/group-prefs-dialog.cc:281 #, c-format msgid "Properties for %s" msgstr "Właściwości dla „%s”" #: pan/gui/group-prefs-dialog.cc:292 msgid "Character _encoding:" msgstr "_Kodowanie znaków:" #: pan/gui/group-prefs-dialog.cc:294 msgid "Directory for Saving Attachments" msgstr "Katalog do zapisywania załączników" #: pan/gui/group-prefs-dialog.cc:302 msgid "Directory for _saving attachments:" msgstr "Katalog do _zapisywania załączników:" #: pan/gui/group-prefs-dialog.cc:304 msgid "Posting _profile:" msgstr "_Profil wysyłania:" #: pan/gui/group-prefs-dialog.cc:309 msgid "Spellchecker _language:" msgstr "_Język sprawdzania pisowni:" #: pan/gui/group-prefs-dialog.cc:312 msgid "Group color:" msgstr "Kolor grupy:" #: pan/gui/gui.cc:312 msgid "Open the Task Manager" msgstr "Otwórz menedżer zadań" #: pan/gui/gui.cc:335 msgid "Open the Event Log" msgstr "Otwórz dziennik zdarzeń" #: pan/gui/gui.cc:611 msgid "Save NZB's Files" msgstr "Zapisz pliki NZB" #: pan/gui/gui.cc:638 msgid "Untitled.nzb" msgstr "Bez tytułu.nzb" #: pan/gui/gui.cc:640 msgid "Save NZB File as..." msgstr "Zapisz plik NZB jako…" #: pan/gui/gui.cc:809 msgid "Import NZB Files" msgstr "Zaimportuj pliki NZB" #: pan/gui/gui.cc:817 pan/gui/post-ui.cc:3280 msgid "NZB Files" msgstr "Pliki NZB" #: pan/gui/gui.cc:822 msgid "All Files" msgstr "Wszystkie pliki" #: pan/gui/gui.cc:1336 msgid "Unable to supersede article." msgstr "Nie można zastąpić wiadomości." #: pan/gui/gui.cc:1337 pan/gui/gui.cc:1413 msgid "The article doesn't match any of your posting profiles." msgstr "Wiadomość nie pasuje do żadnego profilu wysyłania." #: pan/gui/gui.cc:1386 msgid "Revise and send this article to replace the old one." msgstr "Poprawia i wysyła tę wiadomość, aby zastąpić poprzednią." #: pan/gui/gui.cc:1387 pan/gui/gui.cc:1451 msgid "Be patient! It will take time for your changes to take effect." msgstr "Proszę o cierpliwość. Uwzględnienie zmian zajmie trochę czasu." #: pan/gui/gui.cc:1412 msgid "Unable to cancel article." msgstr "Nie można anulować wiadomości." #: pan/gui/gui.cc:1450 msgid "Send this article to ask your server to cancel your other one." msgstr "Wysyła tę wiadomość, aby poprosić serwer o anulowanie drugiej." #: pan/gui/gui.cc:1468 msgid "You have marked some articles for deletion." msgstr "Oznaczono wiadomości do usunięcia." #: pan/gui/gui.cc:1469 msgid "Are you sure you want to delete them?" msgstr "Na pewno je usunąć?" #: pan/gui/gui.cc:1495 msgid "Do you want to accept it permanently? (You can change this later.)" msgstr "Usunąć je trwale (można to zmienić później)?" #: pan/gui/gui.cc:1641 msgid "Unable to open help file." msgstr "Nie można otworzyć pliku pomocy." #: pan/gui/gui.cc:1669 msgid "Copyright © 2002-2021 Charles Kerr and others" msgstr "Copyright © 2002-2021 Charles Kerr i inni" #: pan/gui/gui.cc:1674 msgid "translator-credits" msgstr "" "Piotr Drąg , 2016-2024\n" "Aviary.pl , 2016-2024" #: pan/gui/gui.cc:1802 msgid "_1. Group Pane" msgstr "_1. Panel grup" #: pan/gui/gui.cc:1803 msgid "_2. Header Pane" msgstr "_2. Panel nagłówka" #: pan/gui/gui.cc:1804 msgid "_3. Body Pane" msgstr "_3. Panel treści" #: pan/gui/gui.cc:1894 pan/gui/gui.cc:1909 msgid " Bytes" msgstr " B" #: pan/gui/gui.cc:1897 msgid " KB" msgstr " KB" #: pan/gui/gui.cc:1900 msgid " MB" msgstr " MB" #: pan/gui/gui.cc:1903 msgid " GB" msgstr " GB" #: pan/gui/gui.cc:1906 msgid " TB" msgstr " TB" #: pan/gui/gui.cc:1938 #, c-format msgid "This article is complete with %d part." msgid_plural "This article has all %d parts." msgstr[0] "Ta wiadomość jest pełna z %d częścią." msgstr[1] "Ta wiadomość ma wszystkie %d części." msgstr[2] "Ta wiadomość ma wszystkie %d części." #: pan/gui/gui.cc:1940 #, c-format msgid "This article is missing %d part." msgid_plural "This article is missing %d of its %d parts:" msgstr[0] "Tej wiadomości brakuje %d części." msgstr[1] "Tej wiadomości brakuje %d części z %d:" msgstr[2] "Tej wiadomości brakuje %d części z %d:" #: pan/gui/gui.cc:1958 pan/gui/header-pane.cc:1308 pan/gui/task-pane.cc:797 msgid "Message-ID" msgstr "Identyfikator wiadomości" #: pan/gui/gui.cc:1959 pan/gui/header-pane.cc:1783 pan/gui/prefs-ui.cc:893 msgid "Lines" msgstr "Wiersze" #: pan/gui/gui.cc:1959 msgid "Size" msgstr "Rozmiar" #: pan/gui/gui.cc:1960 pan/gui/header-pane.cc:1799 pan/gui/prefs-ui.cc:891 msgid "Bytes" msgstr "B" #: pan/gui/gui.cc:2010 msgid "" "Error loading iconv library. Encoding certain character sets will not work " "in GUI." msgstr "" "Błąd podczas wczytywania biblioteki iconv. Niektóre zestawy znaków nie będą " "działały w interfejsie użytkownika." #: pan/gui/gui.cc:2156 msgid "Body Pane Encoding" msgstr "Kodowanie panelu treści" #: pan/gui/gui.cc:2187 pan/gui/task-pane.cc:612 msgid "Offline" msgstr "Offline" #: pan/gui/gui.cc:2191 #, c-format msgid "Closing %d connection" msgid_plural "Closing %d connections" msgstr[0] "Zamykanie %d połączenia" msgstr[1] "Zamykanie %d połączeń" msgstr[2] "Zamykanie %d połączeń" #: pan/gui/gui.cc:2193 pan/gui/gui.cc:2223 msgid "No Connections" msgstr "Brak połączeń" #: pan/gui/gui.cc:2197 msgid "Connecting" msgstr "Łączenie" #: pan/gui/gui.cc:2210 #, c-format msgid "%s: %d idle, %d active @ %.1f KiBps" msgstr "%s: bezczynne: %d, aktywne: %d przy %.1f KiB/s" #: pan/gui/gui.cc:2266 msgid "No Tasks" msgstr "Brak zadań" #: pan/gui/gui.cc:2268 pan/gui/prefs-ui.cc:1140 msgid "Tasks" msgstr "Zadania" #: pan/gui/gui.cc:2285 pan/gui/task-pane.cc:478 #, c-format msgid "%lu tasks, %s, %.1f KiBps, ETA %d:%02d:%02d" msgstr "Zadania: %lu, %s, %.1f KiB/s, szacowany czas ukończenia: %d∶%02d∶%02d" #: pan/gui/gui.cc:2337 msgid "" "Pan is now offline. Please see \"File|Event Log\" and correct the problem, " "then use \"File|Work Online\" to continue." msgstr "" "Program Pan jest teraz w trybie offline. Proszę zobaczyć „Plik → Dziennik " "zdarzeń” i naprawić problem, a następnie użyć „Plik → Działanie w trybie " "online”, aby kontynuować." #: pan/gui/header-pane.cc:1304 pan/gui/task-pane.cc:793 msgid "Subject or Author" msgstr "Temat lub autor" #: pan/gui/header-pane.cc:1305 pan/gui/task-pane.cc:794 msgid "Sub or Auth (regex)" msgstr "Subskrypcja lub uwierzytelnienie (wyrażenie regularne)" #: pan/gui/header-pane.cc:1307 pan/gui/header-pane.cc:1767 #: pan/gui/prefs-ui.cc:890 pan/gui/score-add-ui.cc:140 pan/gui/task-pane.cc:796 msgid "Author" msgstr "Autor" #: pan/gui/header-pane.cc:1752 pan/gui/prefs-ui.cc:894 msgid "Score" msgstr "Punkty" #: pan/gui/log-ui.cc:105 msgid "Save Event List" msgstr "Zapisz listę zdarzeń" #: pan/gui/log-ui.cc:259 msgid "Pan: Events" msgstr "Pan: zdarzenia" #: pan/gui/log-ui.cc:318 msgid "Message" msgstr "Wiadomość" #: pan/gui/pan.cc:336 msgid "Maximize" msgstr "Zmaksymalizuj" #: pan/gui/pan.cc:376 msgid "An error has occurred!" msgstr "Wystąpił błąd." #: pan/gui/pan.cc:389 msgid "New Articles!" msgstr "Nowe wiadomości." #: pan/gui/pan.cc:390 msgid "" "There are new\n" "articles available." msgstr "" "Dostępne są\n" "nowe wiadomości." #: pan/gui/pan.cc:470 msgid "" "Thank you for trying Pan!\n" " \n" "To start newsreading, first Add a Server." msgstr "" "Dziękujemy za używanie programu Pan!\n" " \n" "Aby zacząć, należy najpierw dodać serwer." #: pan/gui/pan.cc:552 msgid "" "General Options\n" " -h, --help Show this usage information and exit.\n" " -v, --version Print release version and exit.\n" " --verbose Be verbose (in non-GUI mode).\n" " --debug Run in debug mode. Use --debug twice for verbose " "debug.\n" " --debug-ssl Run in TLS (aka SSL) debug mode.\n" "\n" "URL Options\n" " headers:group.name Download new headers for the specified " "newsgroup.\n" " news:message-id When specified together with --no-gui, dump\n" " the message-id article to standard output.\n" "\n" "NZB Batch Options\n" " --nzb file1 file2 ... Process NZB files in non-GUI mode.\n" " -o path, --output=path Path to save attachments listed in the NZB " "file(s).\n" " --no-gui Only show console output, not the download " "queue.\n" msgstr "" "Ogólne opcje\n" " -h, --help Wyświetla tę stronę pomocy i kończy działanie.\n" " -v, --version Wyświetla wersję i kończy działanie.\n" " --verbose Więcej informacji (w trybie tekstowym).\n" " --debug Uruchamia w trybie debugowania. Użycie --debug\n" " dwa razy wyświetla więcej informacji " "debugowania.\n" " --debug-ssl Uruchamia w trybie debugowania TLS (znanym także\n" " jako SSL).\n" "\n" "Opcje adresów URL\n" " headers:nazwa.grupy Pobiera nowe nagłówki dla podanej\n" " grupy dyskusyjnej.\n" " news:id-wiadomości Podanie z opcją --no-gui zrzuca wiadomość " "o podanym\n" " identyfikatorze do standardowego wyjścia.\n" "\n" "Opcje plików NZB\n" " --nzb plik1 plik2 … Przetwarza pliki NZB w trybie tekstowym.\n" " -o ścieżka, --output=ścieżka Ścieżka do zapisania załączników zawartych\n" " w plikach NZB.\n" " --no-gui Tylko wyjście konsoli, bez kolejki pobierania.\n" #: pan/gui/pan.cc:887 msgid "Error: --no-gui used without nzb files or news:message-id." msgstr "" "Błąd: opcja --no-gui została użyta bez plików NZB lub news:id-wiadomości." #: pan/gui/pan.cc:891 #, c-format msgid "Pan %s started" msgstr "Uruchomiono program Pan %s" #: pan/gui/pan.cc:911 msgid "Please configure Pan's news servers before using it as an nzb client." msgstr "" "Proszę skonfigurować serwery grup dyskusyjnych programu Pan przed użyciem go " "jako klient NZB." #: pan/gui/pan.cc:1031 msgid "Pan notification" msgstr "Powiadomienie programu Pan" #: pan/gui/post-ui.cc:175 #, c-format msgid "Upload queue: %llu tasks, %ld KB (~ %.2f MB) total." msgstr "Kolejka wysyłania: zadania: %llu, razem %ld KB (~%.2f MB)." #: pan/gui/post-ui.cc:384 msgid "_Profile" msgstr "_Profil" #: pan/gui/post-ui.cc:385 msgid "Set Editor" msgstr "Ustaw edytor" #: pan/gui/post-ui.cc:387 msgid "_Send Article" msgstr "_Wyślij wiadomość" #: pan/gui/post-ui.cc:387 msgid "Send Article Now" msgstr "Wyślij wiadomość" #: pan/gui/post-ui.cc:388 msgid "_Send and Save Articles to NZB" msgstr "_Wyślij i zapisz wiadomości do pliku NZB" #: pan/gui/post-ui.cc:388 msgid "Send and Save Articles to NZB" msgstr "Wyślij i zapisz wiadomości do pliku NZB" #: pan/gui/post-ui.cc:389 msgid "Set Character _Encoding..." msgstr "Ustaw _kodowanie znaków…" #: pan/gui/post-ui.cc:390 msgid "Set Content _Transfer Encoding..." msgstr "_Ustaw kodowanie przesyłania treści…" #: pan/gui/post-ui.cc:391 msgid "Sa_ve Draft" msgstr "_Zapisz szkic" #: pan/gui/post-ui.cc:391 msgid "Save as a Draft for Future Posting" msgstr "Zapisz jako szkic do późniejszego wysłania" #: pan/gui/post-ui.cc:392 msgid "_Open Draft..." msgstr "_Otwórz szkic…" #: pan/gui/post-ui.cc:392 msgid "Open an Article Draft" msgstr "Otwórz szkic wiadomości" #: pan/gui/post-ui.cc:397 msgid "_Rot13" msgstr "Zaszyf_ruj za pomocą ROT13" #: pan/gui/post-ui.cc:397 msgid "Rot13 Selected Text" msgstr "Zaszyfruj zaznaczony tekst za pomocą ROT13" #: pan/gui/post-ui.cc:398 msgid "Run _Editor" msgstr "Uruchom _edytor" #: pan/gui/post-ui.cc:398 msgid "Run Editor" msgstr "Uruchom edytor" #: pan/gui/post-ui.cc:400 msgid "Add _Files to Queue" msgstr "_Dodaj pliki do kolejki" #: pan/gui/post-ui.cc:400 msgid "Add Files to Queue" msgstr "Dodaj pliki do kolejki" #: pan/gui/post-ui.cc:415 pan/gui/post-ui.cc:416 msgid "Remove from Queue" msgstr "Usuń z kolejki" #: pan/gui/post-ui.cc:420 pan/gui/post-ui.cc:421 msgid "Clear List" msgstr "Wyczyść listę" #: pan/gui/post-ui.cc:425 pan/gui/post-ui.cc:426 msgid "Select Needed Parts" msgstr "Zaznacz wymagane części" #: pan/gui/post-ui.cc:430 pan/gui/post-ui.cc:431 pan/gui/task-pane.cc:680 #: pan/gui/task-pane.cc:681 msgid "Move Up" msgstr "Przenieś w górę" #: pan/gui/post-ui.cc:435 pan/gui/post-ui.cc:436 pan/gui/task-pane.cc:685 #: pan/gui/task-pane.cc:686 msgid "Move Down" msgstr "Przenieś w dół" #: pan/gui/post-ui.cc:440 pan/gui/post-ui.cc:441 msgid "Move to Top" msgstr "Przenieś na górę" #: pan/gui/post-ui.cc:445 pan/gui/post-ui.cc:446 msgid "Move to Bottom" msgstr "Przenieś na dół" #: pan/gui/post-ui.cc:453 msgid "_Wrap Text" msgstr "_Zawijanie tekstu" #: pan/gui/post-ui.cc:453 msgid "Wrap Text" msgstr "Zawijanie tekstu" #: pan/gui/post-ui.cc:454 msgid "Always Run Editor" msgstr "Uruchamianie edytora za każdym razem" #: pan/gui/post-ui.cc:455 msgid "Remember Character Encoding for This Group" msgstr "Zapamiętanie kodowania znaków dla tej grupy" #: pan/gui/post-ui.cc:456 msgid "Thread Attached Replies" msgstr "Wątek załączonych odpowiedzi" #: pan/gui/post-ui.cc:457 msgid "PGP-Encrypt the Article" msgstr "Zaszyfruj wiadomość za pomocą PGP" #: pan/gui/post-ui.cc:458 msgid "PGP-Sign the Article" msgstr "Podpisz wiadomość za pomocą PGP" #: pan/gui/post-ui.cc:459 msgid "Check _Spelling" msgstr "_Sprawdź pisownię" #: pan/gui/post-ui.cc:478 msgid "New Article's Encoding:" msgstr "Kodowanie nowej wiadomości:" #: pan/gui/post-ui.cc:488 msgid "Content Transfer Encoding" msgstr "Kodowanie przesyłania treści" #: pan/gui/post-ui.cc:489 msgid "New Article's Content Transfer Encoding:" msgstr "Kodowanie przesyłania treści nowej wiadomości:" #: pan/gui/post-ui.cc:673 msgid "Your changes will be lost!" msgstr "Zmiany zostaną utracone." #: pan/gui/post-ui.cc:674 msgid "Close this window and lose your changes?" msgstr "Zamknąć to okno i utracić zmiany?" #: pan/gui/post-ui.cc:719 pan/gui/post-ui.cc:758 msgid "There were problems with this post." msgstr "Wystąpiły problemy z tą wiadomością." #: pan/gui/post-ui.cc:721 pan/gui/post-ui.cc:760 pan/gui/post-ui.cc:825 msgid "Go Back" msgstr "Wstecz" #: pan/gui/post-ui.cc:723 msgid "Continue Anyway" msgstr "Kontynuuj mimo to" #. Prompt the user #: pan/gui/post-ui.cc:752 #, c-format msgid "" "Message uses characters not specified in charset '%s' - possibly use '%s' " msgstr "" "Wiadomość używa znaków nieokreślonych w kodowaniu „%s” — może używa „%s” " #: pan/gui/post-ui.cc:775 msgid "Go _Online" msgstr "Przejdź do trybu _online" #: pan/gui/post-ui.cc:824 msgid "The file queue is empty, so no files can be saved." msgstr "Kolejka plików jest pusta, więc nie można zapisać żadnych plików." #: pan/gui/post-ui.cc:1004 msgid "IO Error" msgstr "Błąd wejścia/wyjścia" #: pan/gui/post-ui.cc:1004 msgid "No space left on device" msgstr "Nie ma miejsca na urządzeniu" #: pan/gui/post-ui.cc:1005 #, c-format msgid "Error copying message to %s folder. Reason: %s" msgstr "Błąd podczas kopiowania wiadomości do katalogu %s. Przyczyna: %s" #: pan/gui/post-ui.cc:1011 #, c-format msgid "Error creating message in %s mail folder: Invalid article." msgstr "" "Błąd podczas tworzenia wiadomości w katalogu poczty %s: nieprawidłowa " "wiadomość." #: pan/gui/post-ui.cc:1033 msgid "" "No posting server is set for this posting profile.\n" "Please edit the profile via Edit|Manage Posting Profiles." msgstr "" "Dla tego profilu wysyłania nie ustawiono żadnego serwera wysyłania.\n" "Proszę zmodyfikować profil przez Edycja → Zarządzaj profilami wysyłania." #: pan/gui/post-ui.cc:1038 msgid "" "The selected posting server is currently disabled. Please choose an " "appropriate alternative." msgstr "" "Wybrany serwer wysyłania jest obecnie wyłączony. Proszę wybrać odpowiedni " "alternatywny serwer." #: pan/gui/post-ui.cc:1080 msgid "Pan is Offline." msgstr "Program Pan jest w trybie offline." #: pan/gui/post-ui.cc:1081 msgid "Go online to post the article?" msgstr "Przejść do trybu online, aby wysłać wiadomość?" #: pan/gui/post-ui.cc:1130 #, c-format msgid "" "Error signing/encrypting your message. Perhaps you misspelled your email " "address (%s)?" msgstr "" "Błąd podczas podpisywania/szyfrowania wiadomości. Być może błędnie wpisano " "adres e-mail (%s)?" #: pan/gui/post-ui.cc:1280 msgid "Error opening temporary file" msgstr "Błąd podczas otwierania pliku tymczasowego" #: pan/gui/post-ui.cc:1291 #, c-format msgid "Error creating temporary file: %s" msgstr "Błąd podczas tworzenia pliku tymczasowego: %s" #: pan/gui/post-ui.cc:1299 #, c-format msgid "Error writing article to temporary file: %s" msgstr "Błąd podczas zapisywania wiadomości do pliku tymczasowego: %s" #: pan/gui/post-ui.cc:1372 msgid "Open Draft Article" msgstr "Otwórz szkic wiadomości" #: pan/gui/post-ui.cc:1614 msgid "Save Draft Article" msgstr "Zapisz szkic wiadomości" #: pan/gui/post-ui.cc:1652 msgid "File already exists." msgstr "Plik już istnieje." #: pan/gui/post-ui.cc:1653 msgid "Overwrite it?" msgstr "Zastąpić go?" #: pan/gui/post-ui.cc:1862 #, c-format msgid "Couldn't parse signature command \"%s\": %s" msgstr "Nie można przetworzyć polecenia podpisu „%s”: %s" #: pan/gui/post-ui.cc:1898 msgid "Couldn't convert signature to UTF-8." msgstr "Nie można skonwertować podpisu do kodowania UTF-8." #: pan/gui/post-ui.cc:2410 msgid "F_rom" msgstr "_Od" #: pan/gui/post-ui.cc:2427 msgid "_Subject" msgstr "_Temat" #: pan/gui/post-ui.cc:2440 msgid "_Newsgroups" msgstr "_Grupa dyskusyjna" #: pan/gui/post-ui.cc:2454 msgid "Mail _To" msgstr "Wiadomość _do" #: pan/gui/post-ui.cc:2557 msgid "Delete from Queue" msgstr "Usuń z kolejki" #: pan/gui/post-ui.cc:2570 msgid "No." msgstr "Nr" #: pan/gui/post-ui.cc:2574 pan/gui/post-ui.cc:2666 pan/gui/post-ui.cc:2707 msgid "Filename" msgstr "Nazwa pliku" #: pan/gui/post-ui.cc:2576 msgid "Size (KB)" msgstr "Rozmiar (KB)" #: pan/gui/post-ui.cc:2674 msgid "The current filename" msgstr "Obecna nazwa pliku" #: pan/gui/post-ui.cc:2678 msgid "Subject Line" msgstr "Wiersz tematu" #: pan/gui/post-ui.cc:2686 msgid "The current subject line" msgstr "Obecny wiersz tematu" #: pan/gui/post-ui.cc:2700 msgid "No. " msgstr "Nr " #: pan/gui/post-ui.cc:2704 msgid "Enable/Disable" msgstr "Włącz/wyłącz" #: pan/gui/post-ui.cc:2738 msgid "Follo_wup-To" msgstr "_Odpowiedź grupie do" #. i18n: "poster" is a key used by many newsreaders. probably safest to keep this key in english. #: pan/gui/post-ui.cc:2747 msgid "" "The newsgroups where replies to your message should go. This is only needed " "if it differs from the \"Newsgroups\" header.\n" "\n" "To direct all replies to your email address, use \"Followup-To: poster\"" msgstr "" "Grupa dyskusyjna, do której mają trafiać odpowiedzi na wiadomości " "użytkownika. Jest to wymagane tylko, jeśli różni się od nagłówka „Grupy " "dyskusyjne”.\n" "\n" "Aby przekazywać wszystkie odpowiedzi na adres e-mail, należy użyć „Odpowiedź " "grupie do: poster”" #: pan/gui/post-ui.cc:2754 msgid "_Reply-To" msgstr "O_dpowiedź do" #: pan/gui/post-ui.cc:2762 msgid "" "The email account where mail replies to your posted message should go. This " "is only needed if it differs from the \"From\" header." msgstr "" "Konto e-mail, do którego mają trafiać odpowiedzi na wysłane wiadomości. Jest " "to wymagane tylko, jeśli różni się od nagłówka „Od”." #: pan/gui/post-ui.cc:2769 msgid "_Custom Headers" msgstr "_Niestandardowe nagłówki" #: pan/gui/post-ui.cc:2793 msgid "Add \"_User-Agent\" header" msgstr "Dodaj nagłówek „_Identyfikator programu”" #: pan/gui/post-ui.cc:2800 msgid "Add \"Message-_ID\" header" msgstr "_Dodaj nagłówek „Identyfikator wiadomości”" #: pan/gui/post-ui.cc:2928 msgid "Select Parts" msgstr "Wybierz części" #: pan/gui/post-ui.cc:2941 msgid "_Parts" msgstr "_Części" #: pan/gui/post-ui.cc:3108 msgid "Post Article" msgstr "Wyślij wiadomość" #: pan/gui/post-ui.cc:3129 msgid "_Message" msgstr "_Wiadomość" #: pan/gui/post-ui.cc:3130 msgid "More _Headers" msgstr "Więcej _nagłówków" #: pan/gui/post-ui.cc:3131 msgid "File _Queue" msgstr "_Kolejka plików" #: pan/gui/post-ui.cc:3162 pan/gui/profiles-dialog.cc:490 #, no-c-format msgid "On %d, %n wrote:" msgstr "W dniu %d, użytkownik %n napisał:" #: pan/gui/post-ui.cc:3191 msgid "Add files to queue" msgstr "Dodaj pliki do kolejki" #: pan/gui/post-ui.cc:3267 msgid "Save Upload Queue as NZB File" msgstr "Zapisz kolejkę wysyłania jako plik NZB" #: pan/gui/prefs.cc:368 #, c-format msgid "Couldn't parse %s color \"%s\"" msgstr "Nie można przetworzyć %s o kolorze „%s”" #: pan/gui/prefs-ui.cc:140 msgid "Grab Key" msgstr "Przechwyć klawisz" #: pan/gui/prefs-ui.cc:146 #, c-format msgid "" "Press the combination of the keys\n" "you want to use for \"%s\"." msgstr "" "Proszę nacisnąć kombinację klawiszy,\n" "która ma być użyta dla „%s”." #: pan/gui/prefs-ui.cc:183 msgid "Edit Shortcut" msgstr "Modyfikuj skrót" #: pan/gui/prefs-ui.cc:244 msgid "Error: Shortcut key is invalid!" msgstr "Błąd: klawisz skrótu jest nieprawidłowy." #: pan/gui/prefs-ui.cc:260 msgid "Error: Shortcut key already exists!" msgstr "Błąd: klawisz skrótu już istnieje." #: pan/gui/prefs-ui.cc:601 msgid "Show only icons" msgstr "Tylko ikony" #: pan/gui/prefs-ui.cc:602 msgid "Show only text" msgstr "Tylko tekst" #: pan/gui/prefs-ui.cc:603 msgid "Show icons and text" msgstr "Ikony i tekst" #: pan/gui/prefs-ui.cc:642 msgid "Use GNOME Preferences" msgstr "Użycie preferencji środowiska GNOME" #: pan/gui/prefs-ui.cc:643 msgid "Use KDE Preferences" msgstr "Użycie preferencji środowiska KDE" #: pan/gui/prefs-ui.cc:644 msgid "Use OS X Preferences" msgstr "Użycie preferencji systemu OS X" #: pan/gui/prefs-ui.cc:645 msgid "Use Windows Preferences" msgstr "Użycie preferencji systemu Windows" #: pan/gui/prefs-ui.cc:646 msgid "Custom Command:" msgstr "Niestandardowe polecenie:" #: pan/gui/prefs-ui.cc:698 msgid "Disabled" msgstr "Wyłączone" #: pan/gui/prefs-ui.cc:699 msgid "Only new (score == 0)" msgstr "Tylko nowe (punkty == 0)" #: pan/gui/prefs-ui.cc:700 msgid "9999 or more" msgstr "9999 lub więcej" #: pan/gui/prefs-ui.cc:701 msgid "5000 to 9998" msgstr "5000 do 9998" #: pan/gui/prefs-ui.cc:702 msgid "1 to 4999" msgstr "1 do 4999" #: pan/gui/prefs-ui.cc:703 msgid "-9998 to -1" msgstr "-9998 do -1" #: pan/gui/prefs-ui.cc:704 msgid "-9999 or less" msgstr "-9999 lub mniej" #: pan/gui/prefs-ui.cc:770 #, c-format msgid "Select default global character set. Current setting: %s." msgstr "" "Wybór domyślnego globalnego zestawu znaków. Obecne ustawienie: %s." #: pan/gui/prefs-ui.cc:801 msgid "Global Character Set Settings" msgstr "Ustawienia globalnego zestawu znaków" #: pan/gui/prefs-ui.cc:895 pan/gui/task-pane.cc:1067 msgid "State" msgstr "Stan" #: pan/gui/prefs-ui.cc:929 msgid "Enabled" msgstr "Włączone" #: pan/gui/prefs-ui.cc:933 msgid "Column Name" msgstr "Nazwa kolumny" #: pan/gui/prefs-ui.cc:981 msgid "Pan: Preferences" msgstr "Pan: preferencje" #: pan/gui/prefs-ui.cc:996 msgid "Mouse" msgstr "Mysz" #: pan/gui/prefs-ui.cc:998 msgid "Single-click activates, rather than selects, _groups" msgstr "_Pojedyncze kliknięcie aktywuje grypy, zamiast zaznaczać" #: pan/gui/prefs-ui.cc:1000 msgid "Single-click activates, rather than selects, _articles" msgstr "P_ojedyncze kliknięcie aktywuje wiadomości, zamiast zaznaczać" #: pan/gui/prefs-ui.cc:1003 msgid "Groups" msgstr "Grupy" #: pan/gui/prefs-ui.cc:1005 msgid "Get new headers in subscribed groups on _startup" msgstr "Po_bieranie nowych nagłówków subskrybowanych grup podczas uruchamiania" #: pan/gui/prefs-ui.cc:1007 msgid "Get new headers when _entering group" msgstr "Pob_ieranie nowych nagłówków podczas wchodzenia do grupy" #: pan/gui/prefs-ui.cc:1009 msgid "Mark entire group _read when leaving group" msgstr "O_znaczanie całej grupy jako przeczytana podczas jej opuszczania" #: pan/gui/prefs-ui.cc:1011 msgid "Mark entire group read before getting _new headers" msgstr "" "Oz_naczanie całej grupy jako przeczytana przed pobraniem nowych nagłówków" #: pan/gui/prefs-ui.cc:1013 msgid "E_xpand all threads when entering group" msgstr "_Rozwijanie wszystkich wątków podczas wchodzenia do grupy" #: pan/gui/prefs-ui.cc:1018 msgid "Articles" msgstr "Wiadomości" #: pan/gui/prefs-ui.cc:1020 msgid "Mark downloaded articles read" msgstr "Oznaczanie pobranych wiadomości jako przeczytane" #: pan/gui/prefs-ui.cc:1022 msgid "Space selects next article rather than next unread" msgstr "Spacja zaznacza następną wiadomość zamiast następnej nieprzeczytanej" #: pan/gui/prefs-ui.cc:1024 msgid "Expand threads upon selection" msgstr "Rozwijanie wątków podczas zaznaczania" #: pan/gui/prefs-ui.cc:1026 msgid "Always ask before deleting an article" msgstr "Pytanie przed usunięciem wiadomości za każdym razem" #: pan/gui/prefs-ui.cc:1028 msgid "Smooth scrolling" msgstr "Płynne przewijanie" #: pan/gui/prefs-ui.cc:1033 msgid "Article Cache" msgstr "Pamięć podręczna wiadomości" #: pan/gui/prefs-ui.cc:1034 msgid "Clear article cache on shutdown" msgstr "Czyszczenie pamięci podręcznej wiadomości podczas wyłączania programu" #: pan/gui/prefs-ui.cc:1037 msgid "Size of article cache (in MiB):" msgstr "Rozmiar pamięci podręcznej wiadomości (w MiB):" #: pan/gui/prefs-ui.cc:1041 msgid "File extension for cached articles: " msgstr "Rozszerzenie pliku dla wiadomości w pamięci podręcznej: " #: pan/gui/prefs-ui.cc:1045 msgid "Tabs" msgstr "Karty" #: pan/gui/prefs-ui.cc:1050 msgid "_Behavior" msgstr "_Zachowanie" #: pan/gui/prefs-ui.cc:1050 msgid "Behavior" msgstr "Zachowanie" #: pan/gui/prefs-ui.cc:1056 msgid "Task Pane" msgstr "Panel zadań" #: pan/gui/prefs-ui.cc:1057 msgid "Show task pane popups" msgstr "Wyskakujące okna panelu zadań" #: pan/gui/prefs-ui.cc:1059 msgid "Show Download Meter" msgstr "Pasek postępu pobierania" #: pan/gui/prefs-ui.cc:1063 msgid "_Panes" msgstr "_Panele" #: pan/gui/prefs-ui.cc:1063 msgid "Panes" msgstr "Panele" #: pan/gui/prefs-ui.cc:1069 msgid "Language Settings" msgstr "Ustawienia języka" #: pan/gui/prefs-ui.cc:1070 msgid "Font" msgstr "Czcionka" #. systray and notify popup #: pan/gui/prefs-ui.cc:1077 msgid "System Tray Behavior" msgstr "Zachowanie obszaru powiadamiania" #: pan/gui/prefs-ui.cc:1079 msgid "Start Pan minimized" msgstr "Uruchamianie w stanie zminimalizowanym" #: pan/gui/prefs-ui.cc:1082 msgid "Show notifications" msgstr "Powiadomienia" #. allow multiple instances (seperate, not communicating with dbus) #: pan/gui/prefs-ui.cc:1087 msgid "Startup Behavior" msgstr "Zachowanie podczas uruchamiania" #: pan/gui/prefs-ui.cc:1089 msgid "Allow multiple instances of Pan" msgstr "Można uruchamiać wiele kopii programu" #: pan/gui/prefs-ui.cc:1094 msgid "Autosave Article Draft" msgstr "Automatyczne zapisywanie szkiców wiadomości" #: pan/gui/prefs-ui.cc:1096 msgid "Minutes to autosave the current Article Draft: " msgstr "Minuty do automatycznego zapisania bieżącego szkicu wiadomości: " #: pan/gui/prefs-ui.cc:1101 msgid "Autosave Articles" msgstr "Automatyczne zapisywanie wiadomości" #: pan/gui/prefs-ui.cc:1103 msgid "Minutes to autosave newsrc files: " msgstr "Minuty do automatycznego zapisywania plików „newsrc”: " #: pan/gui/prefs-ui.cc:1110 msgid "Password Storage" msgstr "Baza haseł" #: pan/gui/prefs-ui.cc:1112 msgid "Save passwords in password storage" msgstr "Zapisywanie haseł w bazie haseł" #: pan/gui/prefs-ui.cc:1119 msgid "_Miscellaneous" msgstr "_Różne" #: pan/gui/prefs-ui.cc:1119 msgid "Miscellaneous" msgstr "Różne" #: pan/gui/prefs-ui.cc:1124 msgid "Pane Layout" msgstr "Układ paneli" #: pan/gui/prefs-ui.cc:1143 msgid "1=Groups, 2=Headers, 3=Body" msgstr "1=grupy, 2=nagłówki, 3=treść" #: pan/gui/prefs-ui.cc:1145 msgid "1=Groups, 2=Body, 3=Headers" msgstr "1=grupy, 2=treść, 3=nagłówki" #: pan/gui/prefs-ui.cc:1147 msgid "1=Headers, 2=Groups, 3=Body" msgstr "1=nagłówki, 2=grupy, 3=treść" #: pan/gui/prefs-ui.cc:1149 msgid "1=Headers, 2=Body, 3=Groups" msgstr "1=nagłówki, 2=treść, 3=grupy" #: pan/gui/prefs-ui.cc:1151 msgid "1=Body, 2=Groups, 3=Headers" msgstr "1=treść, 2=grupy, 3=nagłówki" #: pan/gui/prefs-ui.cc:1153 msgid "1=Body, 2=Headers, 3=Groups" msgstr "1=treść, 2=nagłówki, 3=grupy" #: pan/gui/prefs-ui.cc:1157 msgid "Layout" msgstr "Układ" #: pan/gui/prefs-ui.cc:1162 msgid "Header Pane Columns" msgstr "Kolumny panelu nagłówka" #: pan/gui/prefs-ui.cc:1166 msgid "_Headers" msgstr "_Nagłówki" #: pan/gui/prefs-ui.cc:1166 msgid "Headers" msgstr "Nagłówki" #: pan/gui/prefs-ui.cc:1172 msgid "" "This menu lets you configure Pan to take certain actions on your behalf " "automatically, based on an article's score." msgstr "" "To menu umożliwia skonfigurowanie programu Pan do wykonywania pewnych " "czynności automatycznie na podstawie punktów wiadomości." #: pan/gui/prefs-ui.cc:1177 msgid "Mark affected articles read" msgstr "Oznaczanie artykułów jako przeczytane" #: pan/gui/prefs-ui.cc:1186 msgid "_Delete articles scoring at: " msgstr "_Usuwanie wiadomości z punktami: " #: pan/gui/prefs-ui.cc:1192 msgid "Mark articles read scoring at: " msgstr "Oznaczanie wiadomości jako przeczytane z punktami: " #: pan/gui/prefs-ui.cc:1198 msgid "_Cache articles scoring at: " msgstr "U_mieszczanie wiadomości w pamięci podręcznej z punktami: " #: pan/gui/prefs-ui.cc:1204 msgid "Download attachments of articles scoring at: " msgstr "Pobieranie załączników wiadomości z punktami: " #: pan/gui/prefs-ui.cc:1207 msgid "Actions" msgstr "Działania" #: pan/gui/prefs-ui.cc:1212 pan/gui/prefs-ui.cc:1233 msgid "Fonts" msgstr "Czcionki" #: pan/gui/prefs-ui.cc:1214 msgid "Use custom font in Group Pane:" msgstr "Niestandardowa czcionka w panelu grup:" #: pan/gui/prefs-ui.cc:1219 msgid "Use custom font in Header Pane:" msgstr "Niestandardowa czcionka w panelu nagłówka:" #: pan/gui/prefs-ui.cc:1224 msgid "Use custom font in Body Pane:" msgstr "Niestandardowa czcionka w panelu treści:" #: pan/gui/prefs-ui.cc:1229 msgid "Monospace font:" msgstr "Czcionka o stałej szerokości znaków:" #: pan/gui/prefs-ui.cc:1233 msgid "_Fonts" msgstr "_Czcionki" #: pan/gui/prefs-ui.cc:1242 msgid "Header Pane" msgstr "Panel nagłówka" #: pan/gui/prefs-ui.cc:1245 pan/gui/prefs-ui.cc:1251 pan/gui/prefs-ui.cc:1257 #: pan/gui/prefs-ui.cc:1263 pan/gui/prefs-ui.cc:1269 pan/gui/prefs-ui.cc:1275 #: pan/gui/prefs-ui.cc:1284 pan/gui/prefs-ui.cc:1290 pan/gui/prefs-ui.cc:1296 #: pan/gui/prefs-ui.cc:1302 pan/gui/prefs-ui.cc:1308 pan/gui/prefs-ui.cc:1318 #: pan/gui/prefs-ui.cc:1328 msgid "Text:" msgstr "Tekst:" #: pan/gui/prefs-ui.cc:1247 pan/gui/prefs-ui.cc:1253 pan/gui/prefs-ui.cc:1259 #: pan/gui/prefs-ui.cc:1265 pan/gui/prefs-ui.cc:1271 pan/gui/prefs-ui.cc:1277 #: pan/gui/prefs-ui.cc:1286 pan/gui/prefs-ui.cc:1292 pan/gui/prefs-ui.cc:1298 #: pan/gui/prefs-ui.cc:1304 pan/gui/prefs-ui.cc:1310 pan/gui/prefs-ui.cc:1320 #: pan/gui/prefs-ui.cc:1330 msgid "Background:" msgstr "Tło:" #: pan/gui/prefs-ui.cc:1249 msgid "Scores of 9999 or more:" msgstr "9999 punktów lub więcej:" #: pan/gui/prefs-ui.cc:1255 msgid "Scores from 5000 to 9998:" msgstr "Od 5000 do 9998 punktów:" #: pan/gui/prefs-ui.cc:1261 msgid "Scores from 1 to 4999:" msgstr "Od 1 do 4999 punktów:" #: pan/gui/prefs-ui.cc:1267 msgid "Scores from -9998 to -1:" msgstr "Od -9998 do -1 punktów:" #: pan/gui/prefs-ui.cc:1273 msgid "Scores of -9999 or less:" msgstr "-9999 punktów lub mniej:" #: pan/gui/prefs-ui.cc:1279 msgid "Collapsed thread with unread articles:" msgstr "Zwinięty wątek z nieprzeczytanymi wiadomościami:" #: pan/gui/prefs-ui.cc:1281 msgid "Body Pane" msgstr "Panel treści" #: pan/gui/prefs-ui.cc:1288 msgid "First level of quoted text:" msgstr "Pierwszy poziom cytowanego tekstu:" #: pan/gui/prefs-ui.cc:1294 msgid "Second level of quoted text:" msgstr "Drugi poziom cytowanego tekstu:" #: pan/gui/prefs-ui.cc:1300 msgid "Third level of quoted text:" msgstr "Trzeci poziom cytowanego tekstu:" #. #: pan/gui/prefs-ui.cc:1306 msgid "URL:" msgstr "Adres URL:" #. #: pan/gui/prefs-ui.cc:1312 msgid "Signature:" msgstr "Podpis:" #: pan/gui/prefs-ui.cc:1315 msgid "Group Pane" msgstr "Panel grup" #. #: pan/gui/prefs-ui.cc:1322 msgid "Group Color:" msgstr "Kolor grupy:" #: pan/gui/prefs-ui.cc:1326 msgid "Other Text" msgstr "Inny tekst" #: pan/gui/prefs-ui.cc:1332 msgid "Text Color:" msgstr "Kolor tekstu:" #: pan/gui/prefs-ui.cc:1335 msgid "_Colors" msgstr "_Kolory" #: pan/gui/prefs-ui.cc:1335 msgid "Colors" msgstr "Kolory" #: pan/gui/prefs-ui.cc:1340 msgid "Preferred Applications" msgstr "Preferowane programy" #: pan/gui/prefs-ui.cc:1344 msgid "_Web browser:" msgstr "Przeglądarka _WWW:" #: pan/gui/prefs-ui.cc:1347 msgid "_Gemini client:" msgstr "Klient _Gemini:" #: pan/gui/prefs-ui.cc:1350 msgid "_Mail reader:" msgstr "_Klient poczty:" #: pan/gui/prefs-ui.cc:1352 msgid "_Text editor:" msgstr "_Edytor tekstu:" #: pan/gui/prefs-ui.cc:1354 msgid "_HTML previewer:" msgstr "Podgląd plików _HTML:" #: pan/gui/prefs-ui.cc:1356 msgid "_Applications" msgstr "_Programy" #: pan/gui/prefs-ui.cc:1356 msgid "Applications" msgstr "Programy" #: pan/gui/prefs-ui.cc:1361 pan/gui/task-pane.cc:555 msgid "Encoding" msgstr "Kodowanie" #: pan/gui/prefs-ui.cc:1365 msgid "Default bytes per file (for encoder): " msgstr "Domyślna liczba bajtów na plik (dla kodera): " #: pan/gui/prefs-ui.cc:1370 msgid "_Upload" msgstr "_Wyślij" #: pan/gui/prefs-ui.cc:1370 msgid "Upload" msgstr "Wyślij" #: pan/gui/prefs-ui.cc:1379 msgid "_Shortcuts" msgstr "_Skróty" #: pan/gui/prefs-ui.cc:1379 msgid "Shortcuts" msgstr "Skróty" #: pan/gui/profiles-dialog.cc:83 msgid "Please choose your email address according to your PGP key's user id." msgstr "" "Proszę wybrać adres e-mail zgodny z identyfikatorem użytkownika klucza PGP." #: pan/gui/profiles-dialog.cc:131 msgid "Posting Profile" msgstr "Profil wysyłania" #: pan/gui/profiles-dialog.cc:143 msgid "Profile Information" msgstr "Informacje o profilu" #: pan/gui/profiles-dialog.cc:147 msgid "_Profile Name:" msgstr "_Nazwa profilu:" #: pan/gui/profiles-dialog.cc:150 msgid "Required Information" msgstr "Wymagane informacje" #: pan/gui/profiles-dialog.cc:154 msgid "_Full Name:" msgstr "_Imię i nazwisko:" #: pan/gui/profiles-dialog.cc:158 msgid "" "Your email address.\n" "Note that this has to match your PGP signature's address\n" "if you want your messages to be PGP-signed or encrypted correctly." msgstr "" "Adres e-mail użytkownika.\n" "Proszę zauważyć, że musi pasować do adresu podpisu PGP,\n" "aby poprawnie podpisywać lub szyfrować wiadomości za pomocą PGP." #: pan/gui/profiles-dialog.cc:162 msgid "_Email Address:" msgstr "_Adres e-mail:" #: pan/gui/profiles-dialog.cc:164 msgid "_Post Articles via:" msgstr "_Wysyłanie wiadomości przez:" #: pan/gui/profiles-dialog.cc:167 msgid "Signature" msgstr "Podpis" #: pan/gui/profiles-dialog.cc:170 msgid "_Use a Signature" msgstr "_Użycie podpisu" #: pan/gui/profiles-dialog.cc:174 msgid "Signature File" msgstr "Plik podpisu" #: pan/gui/profiles-dialog.cc:184 msgid "Text File" msgstr "Plik tekstowy" #: pan/gui/profiles-dialog.cc:186 msgid "Text" msgstr "Tekst" #: pan/gui/profiles-dialog.cc:188 msgid "Command" msgstr "Polecenie" #: pan/gui/profiles-dialog.cc:191 msgid "PGP Signature" msgstr "Podpis PGP" #: pan/gui/profiles-dialog.cc:196 msgid "Signature Type: " msgstr "Typ podpisu: " #: pan/gui/profiles-dialog.cc:227 msgid "Avatars" msgstr "Awatary" #: pan/gui/profiles-dialog.cc:230 msgid "" "You can add an avatar icon to your articles with a Base64-encoded PNG.\n" "Add the Base64-encoded picture without the trailing “Face:”." msgstr "" "Można dodać ikonę awatara do wiadomości za pomocą pliku PNG zakodowanego " "przez Base64.\n" "Należy dodać obraz zakodowany przez Base64 bez „Face:” na końcu." #: pan/gui/profiles-dialog.cc:232 msgid "_Face:" msgstr "_Obraz:" #: pan/gui/profiles-dialog.cc:236 msgid "" "You can add an avatar icon to your articles with a unique X-Face code.\n" "Add the code without the trailing \"X-Face:\" \n" " if it was generated by a helper program (for example http://www.dairiki.org/" "xface/xface.php)." msgstr "" "Można dodać ikonę awatara do wiadomości za pomocą unikalnego kodu X-Face.\n" "Należy dodać kod bez „X-Face:” na końcu,\n" "jeśli został utworzony przez program pomocniczy (na przykład http://www." "dairiki.org/xface/xface.php)." #: pan/gui/profiles-dialog.cc:239 msgid "_X-Face:" msgstr "_X-Face:" #: pan/gui/profiles-dialog.cc:241 msgid "Optional Information" msgstr "Opcjonalne informacje" #: pan/gui/profiles-dialog.cc:246 msgid "" "When posting to Usenet, your article's Message-ID contains a domain name.\n" "You can set a custom domain name here, or leave it blank to let Pan use the " "domain name from your email address." msgstr "" "Podczas wysyłania do grup dyskusyjnych identyfikator wiadomości zawiera " "nazwę domeny.\n" "Tutaj można ustawić niestandardową nazwę domeny lub zostawić puste pole, aby " "program Pan użył nazwy domeny z adresu e-mail." #: pan/gui/profiles-dialog.cc:249 msgid "Message-ID _Domain Name:" msgstr "Nazwa _domeny identyfikatora wiadomości:" #: pan/gui/profiles-dialog.cc:253 #, c-format msgid "" "%i for Message-ID\n" "%a for Author and Address\n" "%n for Author name\n" "%d for Date" msgstr "" "%i oznacza identyfikator wiadomości\n" "%a oznacza autora i adres\n" "%n oznacza imię i nazwisko autora\n" "%d oznacza datę" #: pan/gui/profiles-dialog.cc:254 msgid "_Attribution:" msgstr "_Autorstwo:" #. Translators: Do not localize Reply-To and the quote marks in \"Your Name\". #: pan/gui/profiles-dialog.cc:279 msgid "" "Extra headers to be included in your articles, such as\n" "Reply-To: \"Your Name\" \n" "Organization: Your Organization\n" msgstr "" "Dodatkowe nagłówki dołączane do wiadomości, takie jak\n" "Reply-To: \"Imię i nazwisko\" \n" "Organizacja: organizacja użytkownika\n" #: pan/gui/profiles-dialog.cc:289 msgid "E_xtra Headers:" msgstr "_Dodatkowe nagłówki:" #: pan/gui/profiles-dialog.cc:334 msgid "Invalid email address." msgstr "Nieprawidłowy adres e-mail." #: pan/gui/profiles-dialog.cc:335 msgid "Please use an address of the form joe@somewhere.org" msgstr "Proszę użyć adresu w formie jan@example.com" #: pan/gui/profiles-dialog.cc:491 msgid "New Profile" msgstr "Nowy profil" #: pan/gui/profiles-dialog.cc:537 msgid "Posting Profiles" msgstr "Profile wysyłania" #: pan/gui/profiles-dialog.cc:553 msgid "Profiles" msgstr "Profile" #: pan/gui/save-attach-ui.cc:44 #, c-format msgid "" "%g - group as one directory (alt.binaries.pictures.trains)\n" "%G - group as nested directory (/alt/binaries/pictures/trains)\n" "%s - Subject line excerpt\n" "%S - Subject line\n" "%n - Poster display name\n" "%e - Poster email address\n" "%d - Article timestamp\n" "\"/home/user/News/Pan/%g\" becomes\n" "\"/home/user/News/Pan/alt.binaries.pictures.trains\", and\n" "\"/home/user/News/Pan/%G\" becomes\n" "\"/home/user/News/Pan/alt/binaries/pictures/trains\"," msgstr "" "%g — grupa jako jeden katalog (alt.binaries.pictures.trains)\n" "%G — grupa jako osadzony katalog (/alt/binaries/pictures/trains)\n" "%s — wypis z wiersza tematu\n" "%S — wiersz tematu\n" "%n — wyświetlana nazwa wysyłającego\n" "%e — adres e-mail wysyłającego\n" "%d — czas wysłania wiadomości\n" "„/home/użytkownik/Grupy dyskusyjne/Pan/%g” staje się\n" "„/home/użytkownik/Grupy dyskusyjne/Pan/alt.binaries.pictures.trains”,\n" "a „/home/użytkownik/Grupy dyskusyjne/Pan/%G” staje się\n" "„/home/użytkownik/Grupy dyskusyjne/Pan/alt/binaries/pictures/trains”," #: pan/gui/save-attach-ui.cc:196 pan/gui/save-ui.cc:216 msgid "Add to the queue sorted by date posted" msgstr "Dodawanie do kolejki w kolejności dat wysłania" #: pan/gui/save-attach-ui.cc:197 pan/gui/save-ui.cc:217 msgid "Add to the front of the queue" msgstr "Dodawanie na początek kolejki" #: pan/gui/save-attach-ui.cc:198 pan/gui/save-ui.cc:218 msgid "Add to the back of the queue" msgstr "Dodawanie na koniec kolejki" #: pan/gui/save-attach-ui.cc:230 msgid "Pan: Save Attachments" msgstr "Pan: zapisywanie załączników" #: pan/gui/save-attach-ui.cc:255 pan/gui/save-attach-ui.cc:273 #: pan/gui/save-ui.cc:270 pan/gui/save-ui.cc:291 msgid "_Location:" msgstr "_Położenie:" #: pan/gui/save-attach-ui.cc:259 pan/gui/save-ui.cc:274 msgid "Save Articles" msgstr "Zapisz wiadomości" #: pan/gui/save-attach-ui.cc:276 pan/gui/save-ui.cc:294 #, c-format msgid "_Group's path: %s" msgstr "Ś_cieżka do grupy: %s" #: pan/gui/save-attach-ui.cc:287 pan/gui/save-ui.cc:309 msgid "_Priority:" msgstr "_Priorytet:" #: pan/gui/save-ui.cc:44 #, c-format msgid "" "%g - group as one directory (alt.binaries.pictures.trains)\n" "%G - group as nested directory (/alt/binaries/pictures/trains)\n" "%s - subject line excerpt\n" "%S - subject line\n" "%n - Poster display name\n" "%e - Poster email address\n" "%d - Article timestamp\n" " \n" "\"/home/user/News/Pan/%g\" becomes\n" "\"/home/user/News/Pan/alt.binaries.pictures.trains\", and\n" "\"/home/user/News/Pan/%G\" becomes\n" "\"/home/user/News/Pan/alt/binaries/pictures/trains\"," msgstr "" "%g — grupa jako jeden katalog (alt.binaries.pictures.trains)\n" "%G — grupa jako osadzony katalog (/alt/binaries/pictures/trains)\n" "%s — wypis z wiersza tematu\n" "%S — wiersz tematu\n" "%n — wyświetlana nazwa wysyłającego\n" "%e — adres e-mail wysyłającego\n" "%d — czas wysłania wiadomości\n" " \n" "„/home/użytkownik/Grupy dyskusyjne/Pan/%g” staje się\n" "„/home/użytkownik/Grupy dyskusyjne/Pan/alt.binaries.pictures.trains”,\n" "a „/home/użytkownik/Grupy dyskusyjne/Pan/%G” staje się\n" "„/home/użytkownik/Grupy dyskusyjne/Pan/alt/binaries/pictures/trains”," #: pan/gui/save-ui.cc:207 msgid "Save attachments" msgstr "Zapisz załączniki" #: pan/gui/save-ui.cc:208 msgid "Save text" msgstr "Zapisz tekst" #: pan/gui/save-ui.cc:209 msgid "Save attachments and text" msgstr "Zapisz załączniki i tekst" #: pan/gui/save-ui.cc:245 msgid "Pan: Save Articles" msgstr "Pan: zapisywanie wiadomości" #: pan/gui/save-ui.cc:305 msgid "_Action:" msgstr "_Działanie:" #: pan/gui/score-add-ui.cc:89 msgid "is more than" msgstr "jest większe niż" #: pan/gui/score-add-ui.cc:90 msgid "is at most" msgstr "jest nie większe niż" #: pan/gui/score-add-ui.cc:112 msgid "increase the article's score by" msgstr "zwiększenie punktów wiadomości o" #: pan/gui/score-add-ui.cc:113 msgid "decrease the article's score by" msgstr "zmniejszenie punktów wiadomości o" #: pan/gui/score-add-ui.cc:114 msgid "set the article's score to" msgstr "ustawienie punktów wiadomości na" #: pan/gui/score-add-ui.cc:115 msgid "watch the article (set its score to 9999)" msgstr "obserwowanie wiadomości (ustawienie jej punktów na 9999)" #: pan/gui/score-add-ui.cc:116 msgid "ignore the article (set its score to -9999)" msgstr "ignorowanie wiadomości (ustawienie jej punktów na -9999)" #: pan/gui/score-add-ui.cc:141 msgid "References" msgstr "Odwołania" #: pan/gui/score-add-ui.cc:142 msgid "Line Count" msgstr "Liczba wierszy" #: pan/gui/score-add-ui.cc:143 msgid "Byte Count" msgstr "Liczba bajtów" #: pan/gui/score-add-ui.cc:144 msgid "Crosspost Group Count" msgstr "Liczba grup wiadomości" #: pan/gui/score-add-ui.cc:145 msgid "Age (in days)" msgstr "Wiek (w dniach)" #: pan/gui/score-add-ui.cc:167 msgid "for the next month" msgstr "przez następny miesiąc" #: pan/gui/score-add-ui.cc:168 msgid "for the next six months" msgstr "przez następne pół roku" #: pan/gui/score-add-ui.cc:169 msgid "forever" msgstr "zawsze" #: pan/gui/score-add-ui.cc:194 msgid "contains" msgstr "zawiera" #: pan/gui/score-add-ui.cc:195 msgid "doesn't contain" msgstr "nie zawiera" #: pan/gui/score-add-ui.cc:196 msgid "is" msgstr "wynosi" #: pan/gui/score-add-ui.cc:197 msgid "isn't" msgstr "nie wynosi" #: pan/gui/score-add-ui.cc:198 msgid "starts with" msgstr "zaczyna się od" #: pan/gui/score-add-ui.cc:199 msgid "ends with" msgstr "kończy się" #: pan/gui/score-add-ui.cc:200 msgid "matches regex" msgstr "pasuje do wyrażenia regularnego" #: pan/gui/score-add-ui.cc:481 msgid "Another rule already sets this article's score." msgstr "Inna reguła już ustawia punkty tej wiadomości." #: pan/gui/score-add-ui.cc:482 msgid "You may want to go back or delete the old rule." msgstr "Można wrócić i usunąć poprzednią regułę." #: pan/gui/score-add-ui.cc:484 msgid "Back" msgstr "Wstecz" #: pan/gui/score-add-ui.cc:485 pan/gui/task-pane.cc:1040 msgid "Delete" msgstr "Usuń" #: pan/gui/score-add-ui.cc:486 pan/gui/score-add-ui.cc:607 #: pan/gui/score-view-ui.cc:207 msgid "Add" msgstr "Dodaj" #: pan/gui/score-add-ui.cc:553 msgid "Add and Re_score" msgstr "_Dodaj i ponownie nadaj punkty" #: pan/gui/score-add-ui.cc:602 pan/gui/score-add-ui.cc:622 msgid "New Scoring Rule" msgstr "Nowa reguła punktacji" #: pan/gui/score-add-ui.cc:633 msgid "Group name" msgstr "Nazwa grupy" #: pan/gui/score-add-ui.cc:640 msgid "and" msgstr "i" #: pan/gui/score-view-ui.cc:55 msgid "Close and Re_score" msgstr "_Zamknij i ponownie nadaj punkty" #: pan/gui/score-view-ui.cc:153 #, c-format msgid "File %s, Lines %d - %d" msgstr "Plik %s, wiersze %d-%d" #: pan/gui/score-view-ui.cc:181 msgid "Pan: Article's Scores" msgstr "Pan: punkty wiadomości" #: pan/gui/score-view-ui.cc:212 msgid "New Score" msgstr "Nowe punkty" #: pan/gui/score-view-ui.cc:217 msgid "Criteria" msgstr "Kryteria" #: pan/gui/score-view-ui.cc:240 msgid "Add a New Scoring Rule" msgstr "Dodaj nową regułę punktacji" #: pan/gui/score-view-ui.cc:247 msgid "Remove the Selected Scoring Rule" msgstr "Usuń zaznaczoną regułę punktacji" #: pan/gui/server-ui.cc:292 msgid "Please specify the server's address." msgstr "Proszę podać adres serwera." #: pan/gui/server-ui.cc:344 msgid "Import SSL Certificate (PEM Format) From File" msgstr "Zaimportuj certyfikat SSL (format PEM) z pliku" #. create the dialog #: pan/gui/server-ui.cc:381 pan/gui/server-ui.cc:996 msgid "Add a Server" msgstr "Dodaj serwer" #: pan/gui/server-ui.cc:381 pan/gui/server-ui.cc:1002 msgid "Edit a Server's Settings" msgstr "Modyfikuj ustawienia serwera" #: pan/gui/server-ui.cc:401 msgid "Location" msgstr "Położenie" #: pan/gui/server-ui.cc:405 msgid "The news server's actual address, e.g. \"news.mynewsserver.com\"." msgstr "Właściwy adres serwera grup dyskusyjnych, np. „news.mynewsserver.com”" #: pan/gui/server-ui.cc:406 msgid "_Address:" msgstr "_Adres:" #: pan/gui/server-ui.cc:411 msgid "" "The news server's port number. Typically 119 for unencrypted and 563 for " "encrypted connections (SSL/TLS)." msgstr "" "Numer portu serwera grup dyskusyjnych. Zwykle 119 dla niezaszyfrowanych " "i 563 dla zaszyfrowanych połączeń (SSL/TLS)." #: pan/gui/server-ui.cc:412 msgid "Por_t:" msgstr "Por_t:" #: pan/gui/server-ui.cc:415 msgid "Login (if Required)" msgstr "Logowanie (jeśli jest wymagane)" #: pan/gui/server-ui.cc:419 msgid "_Username:" msgstr "_Nazwa użytkownika:" #: pan/gui/server-ui.cc:420 msgid "" "The username to give the server when asked. If your server doesn't require " "authentication, you can leave this blank." msgstr "" "Nazwa użytkownika podawana serwerowi. Jeśli serwer nie wymaga " "uwierzytelnianie, należy zostawić to pole puste." #: pan/gui/server-ui.cc:424 msgid "_Password:" msgstr "_Hasło:" #: pan/gui/server-ui.cc:425 msgid "" "The password to give the server when asked. If your server doesn't require " "authentication, you can leave this blank." msgstr "" "Hasło podawane serwerowi. Jeśli serwer nie wymaga uwierzytelnianie, należy " "zostawić to pole puste." #: pan/gui/server-ui.cc:428 msgid "Settings" msgstr "Ustawienia" #: pan/gui/server-ui.cc:435 msgid "Connection _Limit:" msgstr "_Ograniczenie połączenia:" #: pan/gui/server-ui.cc:439 msgid "After Two Weeks" msgstr "Po dwóch tygodniach" #: pan/gui/server-ui.cc:440 msgid "After One Month" msgstr "Po miesiącu" #: pan/gui/server-ui.cc:441 msgid "After Two Months" msgstr "Po dwóch miesiącach" #: pan/gui/server-ui.cc:442 msgid "After Three Months" msgstr "Po trzech miesiącach" #: pan/gui/server-ui.cc:443 msgid "After Six Months" msgstr "Po sześciu miesiącach" #: pan/gui/server-ui.cc:444 msgid "Never Expire Old Articles" msgstr "Bez wygasania starych wiadomości" #: pan/gui/server-ui.cc:458 msgid "E_xpire Old Articles:" msgstr "_Wygasanie starych wiadomości:" #: pan/gui/server-ui.cc:462 msgid "Primary" msgstr "Główny" #: pan/gui/server-ui.cc:463 msgid "Fallback" msgstr "Zapasowy" #: pan/gui/server-ui.cc:477 msgid "Server Rank:" msgstr "Ranga serwera:" #: pan/gui/server-ui.cc:481 msgid "" "Fallback servers are used for articles that can't be found on the " "primaries. One common approach is to use free servers as primaries and " "subscription servers as fallbacks." msgstr "" "Serwery zapasowe są używane dla wiadomości, których nie można odnaleźć na " "głównych. Często używanym sposobem jest ustawianie bezpłatnych serwerów jako " "główne i serwerów subskrypcji jako zapasowe." #: pan/gui/server-ui.cc:486 msgid "Disable Compression (N/A)" msgstr "Wyłączenie kompresji (nie dotyczy)" #: pan/gui/server-ui.cc:487 msgid "XZVER Compression (Astraweb)" msgstr "Kompresja XZVER (Astraweb)" #: pan/gui/server-ui.cc:488 msgid "GZIP Compression (Giganews etc.)" msgstr "Kompresja GZIP (Giganews itp.)" #: pan/gui/server-ui.cc:502 msgid "Header Compression:" msgstr "Kompresja nagłówków:" #: pan/gui/server-ui.cc:508 msgid "Security" msgstr "Bezpieczeństwo" #: pan/gui/server-ui.cc:513 msgid "Use Unsecure (Plaintext) Connections" msgstr "Niezabezpieczone połączenia (zwykły tekst)" #: pan/gui/server-ui.cc:514 msgid "Use Secure SSL Connections" msgstr "Zabezpieczone połączenia SSL" #: pan/gui/server-ui.cc:529 msgid "TLS (SSL) Settings:" msgstr "Ustawienia TLS (SSL):" #: pan/gui/server-ui.cc:534 msgid "" "You can enable/disable secure SSL/TLS connections here. If you enable SSL/" "TLS, your data is encrypted and secure. It is encouraged to enable SSL/TLS " "for privacy reasons." msgstr "" "Tutaj można włączyć/wyłączyć zabezpieczone połączenia SSL/TLS. Po włączeniu " "SSL/TLS dane są zaszyfrowane i zabezpieczone. Zalecane jest włączenie SSL/" "TLS w celu ochrony prywatności." #: pan/gui/server-ui.cc:539 msgid "Always trust this server's certificate" msgstr "Ufanie certyfikatowi tego serwera za każdym razem" #: pan/gui/server-ui.cc:724 #, c-format msgid "Really delete \"%s\"?" msgstr "Na pewno usunąć „%s”?" #: pan/gui/server-ui.cc:813 msgid "No information available." msgstr "Brak dostępnych informacji." #: pan/gui/server-ui.cc:823 #, c-format msgid "Server Certificate for '%s'" msgstr "Certyfikat serwera dla „%s”" #: pan/gui/server-ui.cc:922 #, c-format msgid "Really delete certificate for \"%s\"?" msgstr "Na pewno usunąć certyfikat dla „%s”?" #. dialog #: pan/gui/server-ui.cc:949 pan/gui/server-ui.cc:970 pan/gui/server-ui.cc:1068 msgid "Servers" msgstr "Serwery" #: pan/gui/server-ui.cc:1009 msgid "Remove a Server" msgstr "Usuń serwer" #. dialog #: pan/gui/server-ui.cc:1042 msgid "SSL Certificates" msgstr "Certyfikaty SSL" #: pan/gui/server-ui.cc:1063 msgid "Certificates" msgstr "Certyfikaty" #: pan/gui/server-ui.cc:1094 msgid "Import Certificate" msgstr "Zaimportuj certyfikat" #: pan/gui/server-ui.cc:1100 msgid "Inspect Certificate" msgstr "Zbadaj certyfikat" #: pan/gui/server-ui.cc:1107 msgid "Remove Certificate" msgstr "Usuń certyfikat" #: pan/gui/task-pane.cc:124 #, c-format msgid "" "\n" "Upload\n" "\n" "Subject: \"%s\"\n" "From: %s\n" "Groups: %s\n" "Sourcefile: %s\n" msgstr "" "\n" "Wysyłanie\n" "\n" "Temat: „%s”\n" "Od: %s\n" "Grupy: %s\n" "Plik źródłowy: %s\n" #: pan/gui/task-pane.cc:136 #, c-format msgid "" "\n" "Download\n" "\n" "Subject: \"%s\"\n" "From: %s\n" "Date: %s\n" "Groups: %s\n" "Save Path: %s\n" msgstr "" "\n" "Pobieranie\n" "\n" "Temat: „%s”\n" "Od: %s\n" "Data: %s\n" "Grupy: %s\n" "Ścieżka do zapisu: %s\n" #: pan/gui/task-pane.cc:138 msgid "unknown" msgstr "nieznane" #: pan/gui/task-pane.cc:306 msgid "Choose New Destination for Selected Tasks" msgstr "Wybór nowego miejsca docelowego dla zaznaczonych zadań" #: pan/gui/task-pane.cc:310 msgid "Save" msgstr "Zapisz" #: pan/gui/task-pane.cc:460 #, c-format msgid "Pan: Tasks (%d Queued, %d Running, %d Stopped)" msgstr "Pan: zadania (w kolejce: %d, uruchomione: %d, zatrzymane: %d)" #: pan/gui/task-pane.cc:462 #, c-format msgid "Pan: Tasks (%d Queued, %d Running)" msgstr "Pan: zadania (w kolejce: %d, uruchomione: %d)" #: pan/gui/task-pane.cc:464 msgid "Pan: Tasks" msgstr "Pan: zadania" #: pan/gui/task-pane.cc:489 #, c-format msgid "%lu selected, %s" msgstr "Zaznaczone: %lu, %s" #: pan/gui/task-pane.cc:553 msgid "Running" msgstr "Uruchamianie" #: pan/gui/task-pane.cc:554 msgid "Decoding" msgstr "Dekodowanie" #: pan/gui/task-pane.cc:556 msgid "Queued for Decode" msgstr "W kolejce do dekodowania" #: pan/gui/task-pane.cc:557 msgid "Queued for Encode" msgstr "W kolejce do kodowania" #: pan/gui/task-pane.cc:558 msgid "Queued" msgstr "W kolejce" #: pan/gui/task-pane.cc:559 msgid "Stopped" msgstr "Zatrzymano" #: pan/gui/task-pane.cc:560 msgid "Removing" msgstr "Usuwanie" #: pan/gui/task-pane.cc:589 #, c-format msgid "%d%% Done" msgstr "Ukończono %d%%" #: pan/gui/task-pane.cc:595 #, c-format msgid "%d:%02d:%02d Remaining (%d @ %lu KiB/s)" msgstr "Pozostało %d∶%02d∶%02d (%d przy %lu KiB/s)" #: pan/gui/task-pane.cc:690 pan/gui/task-pane.cc:691 msgid "Move To Top" msgstr "Przenieś na górę" #: pan/gui/task-pane.cc:695 pan/gui/task-pane.cc:696 msgid "Move To Bottom" msgstr "Przenieś na dół" #: pan/gui/task-pane.cc:700 pan/gui/task-pane.cc:701 msgid "Show Task Information" msgstr "Wyświetl informacje o zadaniu" #: pan/gui/task-pane.cc:705 pan/gui/task-pane.cc:706 msgid "Stop Task" msgstr "Zatrzymaj zadanie" #: pan/gui/task-pane.cc:710 pan/gui/task-pane.cc:711 msgid "Delete Task" msgstr "Usuń zadanie" #: pan/gui/task-pane.cc:715 pan/gui/task-pane.cc:716 msgid "Restart Task" msgstr "Ponownie uruchom zadanie" #: pan/gui/task-pane.cc:720 pan/gui/task-pane.cc:721 msgid "Change Download Destination" msgstr "Zmień miejsce docelowe pobierania" #: pan/gui/task-pane.cc:1016 msgid "_Online" msgstr "_Online" #: pan/gui/task-pane.cc:1026 msgid "Move up" msgstr "Przenieś w górę" #: pan/gui/task-pane.cc:1027 msgid "Move task up" msgstr "Przenosi zadanie w górę" #: pan/gui/task-pane.cc:1028 msgid "Move to top" msgstr "Przenieś na górę" #: pan/gui/task-pane.cc:1029 msgid "Move task to top of the download queue" msgstr "Przenosi zadanie na górę kolejki pobierania" #: pan/gui/task-pane.cc:1031 msgid "Move down" msgstr "Przenieś w dół" #: pan/gui/task-pane.cc:1032 msgid "Move task down" msgstr "Przenosi zadanie w dół" #: pan/gui/task-pane.cc:1033 msgid "Move to bottom" msgstr "Przenieś na dół" #: pan/gui/task-pane.cc:1034 msgid "Move task to the bottom of the download queue" msgstr "Przenosi zadanie na dół kolejki pobierania" #: pan/gui/task-pane.cc:1036 msgid "Restart" msgstr "Uruchom ponownie" #: pan/gui/task-pane.cc:1037 msgid "Restart Tasks" msgstr "Ponownie uruchamia zadania" #: pan/gui/task-pane.cc:1038 msgid "Stop" msgstr "Zatrzymaj" #: pan/gui/task-pane.cc:1039 msgid "Stop Tasks" msgstr "Zatrzymuje zadania" #: pan/gui/task-pane.cc:1041 msgid "Delete Tasks" msgstr "Usuń zadania" #: pan/gui/task-pane.cc:1043 msgid "Close" msgstr "Zamknij" #: pan/gui/task-pane.cc:1047 msgid "Show popups" msgstr "Wyskakujące okna" #: pan/gui/url.cc:143 #, c-format msgid "Error starting URL: %s (Command was: %s)" msgstr "Błąd podczas uruchamiania adresu URL: %s (polecenie: %s)" #: pan/tasks/decoder.cc:124 #, c-format msgid "Couldn't save file \"%s\": %s" msgstr "Nie można zapisać pliku „%s”: %s" #: pan/tasks/decoder.cc:146 pan/tasks/encoder.cc:146 msgid "Error initializing uulib" msgstr "Błąd podczas inicjowania biblioteki uulib" #: pan/tasks/decoder.cc:166 pan/tasks/socket-impl-gio.cc:360 #: pan/tasks/socket-impl-openssl.cc:641 #, c-format msgid "Error reading from %s: %s" msgstr "Błąd podczas odczytywania z %s: %s" #: pan/tasks/decoder.cc:206 #, c-format msgid "Saved \"%s\"" msgstr "Zapisano „%s”" #: pan/tasks/decoder.cc:213 #, c-format msgid "" "Error saving \"%s\":\n" "%s." msgstr "" "Błąd podczas zapisywania „%s”:\n" "%s." #: pan/tasks/decoder.cc:326 pan/tasks/task-article.cc:351 #, c-format msgid "Decoding %s" msgstr "Dekodowanie %s" #: pan/tasks/encoder.cc:113 pan/tasks/encoder.cc:164 #, c-format msgid "Error loading %s from cache." msgstr "Błąd podczas wczytywania %s z pamięci podręcznej." #: pan/tasks/encoder.cc:186 #, c-format msgid "Error encoding %s: %s" msgstr "Błąd podczas kodowania %s: %s" #: pan/tasks/encoder.cc:276 #, c-format msgid "Encoding %s" msgstr "Kodowanie %s" #: pan/tasks/nntp.cc:176 #, c-format msgid "%s requires a username, but none is set." msgstr "%s wymaga nazwy użytkownika, ale żadnej nie ustawiono." #: pan/tasks/nntp.cc:189 #, c-format msgid "%s requires a password, but none is set." msgstr "%s wymaga hasła, ale żadnego nie ustawiono." #: pan/tasks/nntp.cc:275 #, c-format msgid "Sending \"%s\" to %s returned an error: %s" msgstr "Wysyłanie „%s” do %s zwróciło błąd: %s" #: pan/tasks/nntp.cc:298 #, c-format msgid "Sending \"%s\" to %s returned an unrecognized response: \"%s\"" msgstr "Wysyłanie „%s” do %s zwróciło nieznaną odpowiedź: „%s”" #: pan/tasks/nntp-pool.cc:241 #, c-format msgid "Unable to connect to \"%s\"" msgstr "Nie można połączyć z „%s”" #: pan/tasks/queue.cc:778 pan/tasks/queue.cc:806 pan/tasks/queue.cc:833 msgid "No space left on device." msgstr "Nie ma miejsca na urządzeniu." #: pan/tasks/socket-impl-gio.cc:173 pan/tasks/socket-impl-gio.cc:211 #: pan/tasks/socket-impl-openssl.cc:213 pan/tasks/socket-impl-openssl.cc:251 #, c-format msgid "Error connecting to \"%s\"" msgstr "Błąd podczas łączenia z „%s”" #: pan/tasks/socket-impl-gio.cc:359 pan/tasks/socket-impl-openssl.cc:640 msgid "Unknown Error" msgstr "Nieznany błąd" #: pan/tasks/task-article.cc:59 pan/tasks/task-article.cc:157 #, c-format msgid "Saving %s" msgstr "Zapisywanie %s" #: pan/tasks/task-article.cc:61 #, c-format msgid "Reading %s" msgstr "Odczytywanie %s" #: pan/tasks/task-article.cc:323 #, c-format msgid "Article \"%s\" is incomplete -- the news server(s) don't have part %s" msgstr "" "Wiadomość „%s” jest niepełna — serwery grup dyskusyjnych nie mają części „%s”" #: pan/tasks/task-groups.cc:41 #, c-format msgid "Getting group list from \"%s\"" msgstr "Pobieranie listy grup z „%s”" #: pan/tasks/task-groups.cc:134 #, c-format msgid "Fetched %lu Groups" msgstr "Pobrano grupy: %lu" #: pan/tasks/task-post.cc:33 #, c-format msgid "Posting \"%s\"" msgstr "Wysyłanie „%s”" #: pan/tasks/task-post.cc:74 #, c-format msgid "Posting of \"%s\" failed: %s" msgstr "Wysłanie „%s” się nie powiodło: %s" #: pan/tasks/task-post.cc:79 #, c-format msgid "Posting of \"%s\" successful: %s" msgstr "Pomyślnie wysłano „%s”: %s" #: pan/tasks/task-upload.cc:55 #, c-format msgid "Uploading %s" msgstr "Wysyłanie %s" #: pan/tasks/task-upload.cc:249 #, c-format msgid "Uploading %s - Part %d of %d" msgstr "Wysyłanie %s — %d. część z %d" #: pan/tasks/task-upload.cc:251 #, c-format msgid "Uploading message body with subject \"%s\"" msgstr "Wysyłanie treści wiadomości o temacie „%s”" #: pan/tasks/task-upload.cc:308 #, c-format msgid "Posting of file %s (part %d of %d) failed: No posts allowed by server." msgstr "" "Wysłanie pliku „%s” (%d. część z %d) się nie powiodło: wiadomości są " "niedozwolone przez serwer." #: pan/tasks/task-upload.cc:317 #, c-format msgid "Posting of file %s (part %d of %d) failed: %s" msgstr "Wysłanie pliku „%s” (%d. część z %d) się nie powiodło: %s" #: pan/tasks/task-upload.cc:328 pan/tasks/task-upload.cc:335 #, c-format msgid "Posting of file %s (part %d of %d) successful: %s" msgstr "Pomyślnie wysłano plik „%s” (%d. część z %d): %s" #: pan/tasks/task-upload.cc:345 #, c-format msgid "Posting of file %s successful: %s" msgstr "Pomyślnie wysłano plik „%s”: %s" #: pan/tasks/task-upload.cc:349 #, c-format msgid "" "Posting of file %s not completely successful: Check the log (right-click " "list item)." msgstr "" "Wysłanie pliku „%s” nie całkiem się powiodło: proszę zobaczyć dziennik " "(kliknięcie prawym przyciskiem myszy wyświetli element)." #: pan/tasks/task-upload.cc:368 #, c-format msgid "" "Posting of file %s not successful: Check the log (right-click list item)." msgstr "" "Wysłanie pliku „%s” się nie powiodło: proszę zobaczyć dziennik (kliknięcie " "prawym przyciskiem myszy wyświetli element)." #: pan/tasks/task-xover.cc:82 #, c-format msgid "Getting all headers for \"%s\"" msgstr "Pobieranie wszystkich nagłówków dla „%s”" #: pan/tasks/task-xover.cc:85 #, c-format msgid "Getting new headers for \"%s\"" msgstr "Pobieranie nowych nagłówków dla „%s”" #. SAMPLE #: pan/tasks/task-xover.cc:89 #, c-format msgid "Sampling headers for \"%s\"" msgstr "Próbowanie nagłówków dla „%s”" #: pan/tasks/task-xover.cc:454 #, c-format msgid "%s (%lu parts, %lu articles)" msgstr "%s (części: %lu, wiadomości: %lu)" #: pan/tasks/task-xover.cc:528 #, c-format msgid "Getting new headers for \"%s\" done." msgstr "Ukończono pobieranie nowych nagłówków dla „%s”." #: pan/usenet-utils/filter-info.cc:215 msgid "article doesn't have attachments" msgstr "wiadomość nie ma załączników" #: pan/usenet-utils/filter-info.cc:219 msgid "the article has attachments" msgstr "wiadomość ma załączniki" #: pan/usenet-utils/filter-info.cc:223 msgid "the article isn't cached locally" msgstr "wiadomość nie jest w lokalnej pamięci podręcznej" #: pan/usenet-utils/filter-info.cc:227 msgid "the article is cached locally" msgstr "wiadomość jest w lokalnej pamięci podręcznej" #: pan/usenet-utils/filter-info.cc:231 msgid "the article wasn't posted by you" msgstr "wiadomość została wysłana przez kogoś innego" #: pan/usenet-utils/filter-info.cc:235 msgid "the article was posted by you" msgstr "wiadomość nie została wysłana przez kogoś innego" #: pan/usenet-utils/filter-info.cc:239 msgid "the article has been read" msgstr "wiadomość została przeczytana" #: pan/usenet-utils/filter-info.cc:243 msgid "the article hasn't been read" msgstr "wiadomość nie została przeczytana" #: pan/usenet-utils/filter-info.cc:247 #, c-format msgid "the article is less than %ld bytes long" msgstr "wiadomość ma mniej niż %ld B" #: pan/usenet-utils/filter-info.cc:252 #, c-format msgid "the article is at least %ld bytes long" msgstr "wiadomość ma co najmniej %ld B" #: pan/usenet-utils/filter-info.cc:257 #, c-format msgid "the article is less than %ld lines long" msgstr "wiadomość ma mniej niż %ld wierszy" #: pan/usenet-utils/filter-info.cc:262 #, c-format msgid "the article is at least %ld lines long" msgstr "wiadomość ma co najmniej %ld wierszy" #: pan/usenet-utils/filter-info.cc:267 #, c-format msgid "the article is less than %ld days old" msgstr "wiadomość jest starsza niż %ld dni" #: pan/usenet-utils/filter-info.cc:272 #, c-format msgid "the article is at least %ld days old" msgstr "wiadomość ma co najmniej %ld dni" #: pan/usenet-utils/filter-info.cc:277 #, c-format msgid "the article was posted to less than %ld groups" msgstr "wiadomość została wysłana na mniej niż %ld grup" #: pan/usenet-utils/filter-info.cc:282 #, c-format msgid "the article was posted to at least %ld groups" msgstr "wiadomość została wysłana na co najmniej %ld grup" #: pan/usenet-utils/filter-info.cc:287 #, c-format msgid "the article's score is less than %ld" msgstr "wiadomość ma mniej niż %ld punktów" #: pan/usenet-utils/filter-info.cc:292 #, c-format msgid "the article's score is %ld or higher" msgstr "wiadomość ma co najmniej %ld punktów" #: pan/usenet-utils/filter-info.cc:301 pan/usenet-utils/filter-info.cc:311 #, c-format msgid "%s doesn't contain \"%s\"" msgstr "%s nie zawiera „%s”" #: pan/usenet-utils/filter-info.cc:302 pan/usenet-utils/filter-info.cc:312 #, c-format msgid "%s isn't \"%s\"" msgstr "%s nie wynosi „%s”" #: pan/usenet-utils/filter-info.cc:303 pan/usenet-utils/filter-info.cc:313 #, c-format msgid "%s doesn't begin with \"%s\"" msgstr "%s nie zaczyna się od „%s”" #: pan/usenet-utils/filter-info.cc:304 pan/usenet-utils/filter-info.cc:314 #, c-format msgid "%s doesn't end with \"%s\"" msgstr "%s nie kończy się „%s”" #: pan/usenet-utils/filter-info.cc:305 pan/usenet-utils/filter-info.cc:315 #, c-format msgid "%s doesn't match the regex \"%s\"" msgstr "%s nie pasuje do wyrażenia regularnego „%s”" #: pan/usenet-utils/filter-info.cc:327 #, c-format msgid "%s contains \"%s\"" msgstr "%s zawiera „%s”" #: pan/usenet-utils/filter-info.cc:328 #, c-format msgid "%s is \"%s\"" msgstr "%s wynosi „%s”" #: pan/usenet-utils/filter-info.cc:329 #, c-format msgid "%s begins with \"%s\"" msgstr "%s zaczyna się od „%s”" #: pan/usenet-utils/filter-info.cc:330 #, c-format msgid "%s ends with \"%s\"" msgstr "%s kończy się „%s”" #: pan/usenet-utils/filter-info.cc:331 #, c-format msgid "%s matches the regex \"%s\"" msgstr "%s pasuje do wyrażenia regularnego „%s”" #: pan/usenet-utils/filter-info.cc:337 msgid "Any of these tests fail:" msgstr "Dowolne z poniższych testów się nie powiodą:" #: pan/usenet-utils/filter-info.cc:344 msgid "All of these tests pass:" msgstr "Wszystkie poniższe testy się powiodą:" #: pan/usenet-utils/filter-info.cc:351 msgid "None of these tests pass:" msgstr "Żadne z poniższych testów się nie powiodą:" #: pan/usenet-utils/filter-info.cc:358 msgid "Any of these tests pass:" msgstr "Dowolne z poniższych testów się powiodą:" #: pan/usenet-utils/gnksa.cc:880 #, c-format msgid "No email address provided; generating message-id with domain \"%s\"" msgstr "" "Nie podano adresu e-mail. Tworzenie identyfikatora wiadomości o domenie „%s”" #: pan/usenet-utils/message-check.cc:122 msgid "Warning: Reply seems to be top-posted." msgstr "Ostrzeżenie: odpowiedź jest na górze wiadomości." #: pan/usenet-utils/message-check.cc:143 msgid "Warning: The signature marker should be \"-- \", not \"--\"." msgstr "Ostrzeżenie: podpis powinien być oznaczony „-- ”, nie „--”." #: pan/usenet-utils/message-check.cc:160 msgid "Warning: Signature prefix with no signature." msgstr "Ostrzeżenie: przedrostek podpisu nie ma podpisu." #: pan/usenet-utils/message-check.cc:165 msgid "Warning: Signature is more than 4 lines long." msgstr "Ostrzeżenie: podpis ma więcej niż cztery wiersze." #: pan/usenet-utils/message-check.cc:170 msgid "Warning: Signature is more than 80 characters wide." msgstr "Ostrzeżenie: podpis ma więcej niż 80 znaków szerokości." #: pan/usenet-utils/message-check.cc:196 #, c-format msgid "Warning: %d line is more than 80 characters wide." msgid_plural "Warning: %d lines are more than 80 characters wide." msgstr[0] "Ostrzeżenie: %d. wiersz ma więcej niż 80 znaków szerokości." msgstr[1] "Ostrzeżenie: %d. wiersz ma więcej niż 80 znaków szerokości." msgstr[2] "Ostrzeżenie: %d. wiersz ma więcej niż 80 znaków szerokości." #: pan/usenet-utils/message-check.cc:221 msgid "Error: Message is empty." msgstr "Błąd: pusta wiadomość." #: pan/usenet-utils/message-check.cc:256 msgid "Warning: The message is entirely quoted text!" msgstr "Ostrzeżenie: wiadomość zawiera tylko cytowany tekst." #: pan/usenet-utils/message-check.cc:257 msgid "Warning: The message is mostly quoted text." msgstr "Ostrzeżenie: wiadomość to głównie cytowany tekst." #: pan/usenet-utils/message-check.cc:307 msgid "Error: Message appears to have no new content." msgstr "Błąd: wiadomość nie ma żadnej nowej treści." #: pan/usenet-utils/message-check.cc:342 pan/usenet-utils/message-check.cc:381 #, c-format msgid "" "Warning: The posting profile's server doesn't carry newsgroup\n" "\t\"%s\".\n" "\tIf the group name is correct, switch profiles in the \"From:\"\n" "\tline or edit the profile with \"Edit|Manage Posting Profiles\"." msgstr "" "Ostrzeżenie: serwer profilu wysyłania nie ma grupy dyskusyjnej\n" "\t„%s”.\n" "\tJeśli nazwa grupy jest poprawna, to należy przełączyć profil w wierszu " "„Od:”\n" "\tlub zmodyfikować profil za pomocą „Edycja → Zarządzaj profilami wysyłania”." #: pan/usenet-utils/message-check.cc:353 msgid "Warning: Following-Up to too many groups." msgstr "Ostrzeżenie: wysyłanie do za dużej liczby grup." #: pan/usenet-utils/message-check.cc:364 msgid "Error: No Subject specified." msgstr "Błąd: nie podano tematu." #: pan/usenet-utils/message-check.cc:393 #, c-format msgid "Warning: Group \"%s\" is read-only." msgstr "Ostrzeżenie: grupa „%s” jest tylko do odczytu." #: pan/usenet-utils/message-check.cc:402 msgid "Error: Posting to a very large number of groups." msgstr "Błąd: wysyłanie do bardzo dużej liczby grup." #: pan/usenet-utils/message-check.cc:407 msgid "Warning: Posting to a large number of groups." msgstr "Ostrzeżenie: wysyłanie do dużej liczby grup." #: pan/usenet-utils/message-check.cc:414 msgid "Warning: Crossposting without setting Followup-To header." msgstr "" "Ostrzeżenie: wysyłanie do wielu grup bez ustawienia nagłówka „Odpowiedź " "grupie do”." #: pan/usenet-utils/message-check.cc:439 msgid "Error: Bad email address." msgstr "Błąd: błędny adres e-mail." #: pan/usenet-utils/message-check.cc:448 msgid "Warning: Most newsgroups frown upon HTML posts." msgstr "" "Ostrzeżenie: większość grup dyskusyjnych nie akceptuje wiadomości w formacie " "HTML." #: pan/usenet-utils/message-check.cc:484 msgid "Error: No Recipients." msgstr "Błąd: brak odbiorców." #: pan/usenet-utils/scorefile.cc:310 #, c-format msgid "Error reading score in %*.*s, line %d: unexpected line." msgstr "" "Błąd podczas odczytywania punktacji w %*.*s, %d. wiersz: nieoczekiwany " "wiersz." #: pan/usenet-utils/scorefile.cc:442 #, c-format msgid "" "Error reading score in %*.*s, line %d: expected 'Expires: MM/DD/YYYY' or " "'Expires: DD-MM-YYYY'." msgstr "" "Błąd podczas odczytywania punktacji w %*.*s, %d. wiersz: oczekiwano „Wygasa: " "MM/DD/RRRR” lub „Wygasa: DD-MM-RRRR”." #: pan/usenet-utils/scorefile.cc:452 #, c-format msgid "Expired old score from %*.*s, line %d" msgstr "Poprzednia punktacja z %*.*s, %d. wiersza wygasła" #: pan/usenet-utils/scorefile.cc:589 #, c-format msgid "Read %lu scoring rules in %lu sections from \"%s\"" msgstr "Odczytano %lu reguł punktacji w %lu sekcjach z „%s”" #: pan/usenet-utils/ssl-utils.cc:172 #, c-format msgid "Error printing the server certificate for '%s'" msgstr "Błąd podczas wyświetlania certyfikatu serwera dla „%s”" #: pan/usenet-utils/ssl-utils.cc:191 #, c-format msgid "" "The current server '%s' sent this security certificate:\n" "\n" msgstr "" "Bieżący serwer „%s” wysłał ten certyfikat bezpieczeństwa:\n" "\n" #: pan/usenet-utils/ssl-utils.cc:197 #, c-format msgid "" "Certificate information for server '%s':\n" "\n" msgstr "" "Informacje o certyfikacie dla serwera „%s”:\n" "\n" #: pan/usenet-utils/ssl-utils.cc:202 #, c-format msgid "" "%sIssuer information:\n" "%s\n" "Valid until: %s\n" "\n" "Not valid before: %s\n" "\n" msgstr "" "%sInformacje o wystawiającym:\n" "%s\n" "Ważne do: %s\n" "\n" "Nieważne przed: %s\n" "\n" #: pan/usenet-utils/text-massager.cc:397 msgid "> [quoted text muted]" msgstr "> [schowano cytowany tekst]" #: pan/usenet-utils/text-massager.cc:579 msgid "no_name" msgstr "brak nazwy" #: pan/usenet-utils/text-massager.cc:580 msgid "no_mail" msgstr "brak poczty" pan-0.162/po/pt.po000066400000000000000000003031331475412772400137210ustar00rootroot00000000000000# Pan's Portuguese Translation # Copyright © 2001, 2002, 2003, 2004, 2005, 2007, 2008 pan # Distributed under the same licence as the pan package # Filipe Gomes , 2007. # Duarte Loreto , 2001, 2002, 2003, 2004, 2005, 2008. # Pedro Albuquerque , 2015. # msgid "" msgstr "" "Project-Id-Version: 2.24\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/pan/issues\n" "POT-Creation-Date: 2015-09-19 23:49+0000\n" "PO-Revision-Date: 2015-11-15 09:27+0000\n" "Last-Translator: Pedro Albuquerque \n" "Language-Team: European Portuguese \n" "Language: pt\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Gtranslator 2.91.6\n" "X-Language: pt_PT\n" "X-Source-Language: C\n" # 48x48/emblems/emblem-plan.icon.in.h:1 # 48x48/emblems/emblem-plan.icon.in.h:1 #. update the titlebar #: ../pan.desktop.in.h:1 ../pan/gui/dl-headers-ui.cc:106 #: ../pan/gui/gui.cc:1040 ../pan/gui/gui.cc:1667 ../pan/gui/gui.cc:2009 #: ../pan/gui/score-add-ui.cc:602 msgid "Pan" msgstr "Pan" #: ../pan.desktop.in.h:2 #| msgid "Pan Newsreader" msgid "Newsreader" msgstr "Leitor de notícias" #: ../pan.desktop.in.h:3 msgid "Read and Post Usenet Articles" msgstr "Leia e publique artigos Usenet" #: ../pan/data/article-cache.cc:144 ../pan/data/encode-cache.cc:62 #, c-format msgid "Error opening directory: \"%s\": %s" msgstr "Erro ao abrir a pasta: \"%s\": %s" #: ../pan/data/article-cache.cc:235 ../pan/data/article-cache.cc:244 #: ../pan/data-impl/data-io.cc:199 ../pan/data-impl/data-io.cc:231 #: ../pan/gui/post-ui.cc:1723 #, c-format msgid "Unable to save \"%s\" %s" msgstr "Impossível gravar \"%s\" %s" #: ../pan/data/article-cache.cc:362 #, c-format msgid "Error opening file \"%s\" %s" msgstr "Erro ao abrir o ficheiro \"%s\" %s" #: ../pan/data/article-cache.cc:393 ../pan/data-impl/profiles.cc:174 #: ../pan/data-impl/server.cc:500 ../pan/general/file-util.cc:311 #: ../pan/gui/post-ui.cc:638 ../pan/gui/task-pane.cc:737 #, c-format msgid "Error reading file \"%s\": %s" msgstr "Erro ao ler o ficheiro \"%s\": %s" #: ../pan/data/cert-store.cc:262 #, c-format msgid "Error opening SSL certificate directory: \"%s\": %s" msgstr "Erro ao abrir a pasta de certificados SSL: \"%s\": %s" #: ../pan/data/cert-store.cc:293 #, c-format msgid "Successfully added %d SSL PEM certificate(s) to Certificate Store." msgstr "" "Certificado %d SSL PEM adicionado com sucesso ao armazém de certificados." #: ../pan/data/cert-store.cc:313 msgid "" "Error initializing Certificate Store. Check that the permissions for the " "folders ~/.pan2 and ~/.pan2/ssl_certs are set correctly. Fatal, exiting." msgstr "" "Erro ao inicializar o armazém de certificados. Verifique se as permissões " "das pastas ~/pan2 e ~/pan2/sss_certs estão corretas. Fatal, a sair." #. load_group_descriptions (*_data_io); #: ../pan/data-impl/data-impl.cc:113 #, c-format msgid "Loaded data backend in %.1f seconds" msgstr "Motor de dados carregado em %.1f segundos" #: ../pan/data-impl/data-impl.cc:143 msgid "Pan Newsreader's server passwords" msgstr "Senhas do servidor do leitor de notícias Pan" #: ../pan/data-impl/groups.cc:94 #, c-format msgid "Skipping newsrc file for server \"%s\"" msgstr "A saltar ficheiro newsrc para o servidor \"%s\"" #: ../pan/data-impl/headers.cc:606 #, c-format msgid "Expired %lu old articles from \"%s\"" msgstr "Expirados %lu artigos antigos de \"%s\"" #: ../pan/data-impl/headers.cc:613 #, c-format msgid "" "Unsupported data version for %s headers: %d.\n" "Are you running an old version of Pan by accident?" msgstr "" "Versão de dados não suportada para cabeçalhos %s: %d.\n" "Poderá estar, por acidente, a usar uma versão antiga do Pan?" #: ../pan/data-impl/headers.cc:628 #, c-format msgid "Loaded %lu articles for \"%s\" in %.1f seconds (%.0f per second)" msgstr "Carregados %lu artigos para \"%s\" em %.1f segundos (%.0f por segundo)" #: ../pan/data-impl/headers.cc:857 #, c-format msgid "" "Saved %lu parts, %lu articles in \"%s\" in %.1f seconds (%.0f articles/sec)" msgstr "" "Gravadas %lu partes, %lu artigos em \"%s\" em %.1f segundos (%.0f art/seg)" #: ../pan/data-impl/headers.cc:1191 #, c-format msgid "Added %lu articles to %s." msgstr "Adicionados %lu artigos em %s." #: ../pan/data-impl/server.cc:261 #, c-format msgid "There seems to be no password set for server %s." msgstr "Parece não haver senha definida para o servidor %s." #: ../pan/data-impl/server.cc:265 msgid "GNOME Keyring denied access to the passwords." msgstr "O chaveiro GNOME negou acesso às senhas." #: ../pan/data-impl/xover.cc:243 #, c-format msgid "Error reading from %s: unknown group \"%s\"" msgstr "Erro ao ler de %s: grupo \"%s\" desconhecido" #. build the locale strings #: ../pan/general/e-util.cc:211 msgid "%l:%M %p" msgstr "%l:%M %p" #: ../pan/general/e-util.cc:212 msgid "Today %l:%M %p" msgstr "Hoje %l:%M %p" #: ../pan/general/e-util.cc:213 msgid "%a %l:%M %p" msgstr "%a %l:%M %p" #: ../pan/general/e-util.cc:214 msgid "%b %d %l:%M %p" msgstr "%b %d %l:%M %p" #: ../pan/general/e-util.cc:215 msgid "%b %d %Y" msgstr "%b %d %Y" #: ../pan/general/e-util.cc:240 msgid "?" msgstr "?" #: ../pan/general/text-match.cc:193 #, c-format msgid "Can't use regular expression \"%s\": %s" msgstr "Impossível usar a expressão regular \"%s\": %s" #: ../pan/general/utf8-utils.cc:213 msgid "Couldn't determine article encoding. Non-UTF8 characters were removed." msgstr "" "Impossível determinar a codificação do artigo. Caracteres não-UTF8 foram " "removidos." #: ../pan/gui/actions.cc:303 ../pan/gui/post-ui.cc:446 msgid "_File" msgstr "_Ficheiro" #: ../pan/gui/actions.cc:304 ../pan/gui/post-ui.cc:447 msgid "_Edit" msgstr "_Editar" #: ../pan/gui/actions.cc:305 ../pan/gui/prefs-ui.cc:1107 msgid "_Layout" msgstr "_Disposição" #: ../pan/gui/actions.cc:306 msgid "_Group Pane" msgstr "Painel de _Grupos" #: ../pan/gui/actions.cc:307 msgid "_Header Pane" msgstr "Painel de _Cabeçalhos" #: ../pan/gui/actions.cc:308 msgid "_Body Pane" msgstr "Painel de _Artigos" #: ../pan/gui/actions.cc:309 msgid "_View" msgstr "_Ver" #: ../pan/gui/actions.cc:310 msgid "Filte_r" msgstr "Filt_Ro" #: ../pan/gui/actions.cc:311 msgid "_Go" msgstr "_Ir" #: ../pan/gui/actions.cc:312 ../pan/gui/prefs-ui.cc:1157 msgid "_Actions" msgstr "_Ações" #: ../pan/gui/actions.cc:313 msgid "_Articles" msgstr "_Artigos" #: ../pan/gui/actions.cc:314 msgid "G_roups" msgstr "G_Rupos" #: ../pan/gui/actions.cc:315 ../pan/gui/actions.cc:316 msgid "_Post" msgstr "_Publicar" #: ../pan/gui/actions.cc:317 msgid "_Help" msgstr "A_Juda" #: ../pan/gui/actions.cc:320 msgid "_Read Group" msgstr "_Ler o grupo" #: ../pan/gui/actions.cc:321 msgid "Read Group" msgstr "Ler o grupo" #: ../pan/gui/actions.cc:325 msgid "_Mark Selected Groups Read" msgstr "_Marcar os grupos selecionados como lidos" #: ../pan/gui/actions.cc:326 msgid "Mark Selected Groups Read" msgstr "Marcar os grupos selecionados como lidos" #: ../pan/gui/actions.cc:330 msgid "_Delete Selected Groups' Articles" msgstr "_Eliminar artigos dos grupos selecionados" #: ../pan/gui/actions.cc:331 msgid "Delete Selected Groups' Articles" msgstr "Eliminar os artigos dos grupos selecionados" #: ../pan/gui/actions.cc:335 msgid "Get New _Headers in Selected Groups" msgstr "Obter novos cabeçal_Hos nos grupos selecionados" #: ../pan/gui/actions.cc:336 msgid "Get New Headers in Selected Groups" msgstr "Obter novos cabeçalhos nos grupos selecionados" #: ../pan/gui/actions.cc:340 ../pan/gui/actions.cc:345 msgid "Get New _Headers in Subscribed Groups" msgstr "Obter novos cabeçal_Hos nos grupos subscritos" #: ../pan/gui/actions.cc:341 ../pan/gui/actions.cc:346 msgid "Get New Headers in Subscribed Groups" msgstr "Obter novos cabeçalhos nos grupos subscritos" #: ../pan/gui/actions.cc:350 msgid "Get _Headers..." msgstr "Obter cabeçal_Hos..." #: ../pan/gui/actions.cc:351 msgid "Get Headers..." msgstr "Obter cabeçalhos..." #: ../pan/gui/actions.cc:355 ../pan/gui/actions.cc:356 msgid "Refresh Group List" msgstr "Atualizar a lista de grupos" #: ../pan/gui/actions.cc:360 msgid "_Subscribe" msgstr "_Subscrever" #: ../pan/gui/actions.cc:361 msgid "Subscribe" msgstr "Subscrever" #: ../pan/gui/actions.cc:365 msgid "_Unsubscribe" msgstr "_Remover a subscrição" #: ../pan/gui/actions.cc:366 msgid "Unsubscribe" msgstr "Remover a subscrição" #: ../pan/gui/actions.cc:370 msgid "_Save Articles..." msgstr "_Gravar artigos..." #: ../pan/gui/actions.cc:371 msgid "Save Articles..." msgstr "Gravar os artigos..." #: ../pan/gui/actions.cc:375 msgid "Save Articles from Selected _NZB..." msgstr "_Gravar artigos do NZB selecionado..." #: ../pan/gui/actions.cc:376 msgid "Save Articles from Selected NZB" msgstr "Gravar os artigos do NZB selecionado" #: ../pan/gui/actions.cc:380 msgid "Save Articles to an NZB _File..." msgstr "_Gravar artigos num ficheiro NZB..." #: ../pan/gui/actions.cc:381 msgid "Save Articles to an NZB File" msgstr "Gravar os artigos num ficheiro NZB" #: ../pan/gui/actions.cc:385 ../pan/gui/actions.cc:386 msgid "Print" msgstr "Imprimir" #: ../pan/gui/actions.cc:390 msgid "_Import NZB Files..." msgstr "_Importar ficheiros NZB..." #: ../pan/gui/actions.cc:395 msgid "_Cancel Last Task" msgstr "_Cancelar a última tarefa" #: ../pan/gui/actions.cc:400 msgid "_Task Manager" msgstr "Gestor de _Tarefas" #: ../pan/gui/actions.cc:405 msgid "_Event Log" msgstr "Diário de _Eventos" #: ../pan/gui/actions.cc:410 msgid "_Quit" msgstr "_Sair" #: ../pan/gui/actions.cc:415 msgid "Select _All Articles" msgstr "Selecionar todos os _Artigos" #: ../pan/gui/actions.cc:420 msgid "_Deselect All Articles" msgstr "_Remover a seleção de todos os artigos" #: ../pan/gui/actions.cc:425 msgid "Add Su_bthreads to Selection" msgstr "Adicionar _Subtemas à seleção" #: ../pan/gui/actions.cc:430 msgid "Add _Threads to Selection" msgstr "Adicionar _Temas à seleção" #: ../pan/gui/actions.cc:435 msgid "Add _Similar Articles to Selection" msgstr "Adicionar artigos _Semelhantes à seleção" #: ../pan/gui/actions.cc:440 msgid "Select Article _Body" msgstr "Selecionar o _Corpo do artigo" #: ../pan/gui/actions.cc:445 msgid "Edit _Preferences" msgstr "Editar _Preferências" #: ../pan/gui/actions.cc:450 msgid "Edit Selected _Group's Preferences" msgstr "Editar as preferências dos _Grupos selecionados" #: ../pan/gui/actions.cc:455 ../pan/gui/post-ui.cc:463 msgid "Edit P_osting Profiles" msgstr "Editar perfis de publicaçã_O" #: ../pan/gui/actions.cc:460 msgid "Edit _News Servers" msgstr "Editar servidores de _Notícias" #: ../pan/gui/actions.cc:465 msgid "Jump to _Group Tab" msgstr "Ir para separador de _Grupo" #: ../pan/gui/actions.cc:470 msgid "Jump to _Header Tab" msgstr "Ir para separador de Cabeçal_Ho" #: ../pan/gui/actions.cc:475 msgid "Jump to _Body Tab" msgstr "Ir para separador de _Corpo" #: ../pan/gui/actions.cc:480 msgid "_Rot13 Selected Text" msgstr "_Rot13 do texto selecionado" #: ../pan/gui/actions.cc:485 msgid "Clear _Header Pane" msgstr "Limpar painel de cabeçal_Hos" #: ../pan/gui/actions.cc:490 msgid "Clear _Body Pane" msgstr "Limpar painel de _Corpo" #: ../pan/gui/actions.cc:495 msgid "Cache Article" msgstr "Colocar o artigo em cache" #: ../pan/gui/actions.cc:500 msgid "Read Article" msgstr "Ler artigo" #: ../pan/gui/actions.cc:505 msgid "Show Article Information" msgstr "Mostrar informação do artigo" #: ../pan/gui/actions.cc:510 msgid "Read _More" msgstr "Ler _Mais" #: ../pan/gui/actions.cc:511 msgid "Read More" msgstr "Ler mais" #: ../pan/gui/actions.cc:515 msgid "Read _Back" msgstr "Ler _Anterior" #: ../pan/gui/actions.cc:516 msgid "Read Back" msgstr "Ler anterior" #: ../pan/gui/actions.cc:520 msgid "Next _Unread Group" msgstr "Grupo Por ler _Seguinte" #: ../pan/gui/actions.cc:525 msgid "Next _Group" msgstr "_Grupo seguinte" #: ../pan/gui/actions.cc:530 msgid "Next _Unread Article" msgstr "Artigo por ler _Seguinte" #: ../pan/gui/actions.cc:531 msgid "Next Unread Article" msgstr "Artigo por ler seguinte" #: ../pan/gui/actions.cc:535 msgid "Next _Article" msgstr "_Artigo seguinte" #: ../pan/gui/actions.cc:536 msgid "Next Article" msgstr "Artigo seguinte" #: ../pan/gui/actions.cc:540 msgid "Next _Watched Article" msgstr "Arti_Go acompanhado seguinte" #: ../pan/gui/actions.cc:545 msgid "Next Unread _Thread" msgstr "_Tema por ler seguinte" #: ../pan/gui/actions.cc:546 msgid "Next Unread Thread" msgstr "Tema por ler seguinte" #: ../pan/gui/actions.cc:550 msgid "Next Threa_d" msgstr "Tema seg_Uinte" #: ../pan/gui/actions.cc:555 msgid "Pre_vious Article" msgstr "Artigo ant_Erior" #: ../pan/gui/actions.cc:560 msgid "Previous _Thread" msgstr "_Tema anterior" #: ../pan/gui/actions.cc:565 msgid "_Parent Article" msgstr "Artigo _Pai" #: ../pan/gui/actions.cc:570 msgid "Ignore _Author" msgstr "Ignorar _Autor" #: ../pan/gui/actions.cc:574 msgid "_Watch Thread" msgstr "_Acompanhar tema" #: ../pan/gui/actions.cc:579 msgid "_Ignore Thread" msgstr "_Ignorar tema" #: ../pan/gui/actions.cc:584 ../pan/gui/actions.cc:585 msgid "_Toggle Flag On/Off for Thread" msgstr "_Alternar marca Ligar/Desligar do tema" #: ../pan/gui/actions.cc:589 ../pan/gui/actions.cc:590 msgid "_Turn Flag Off for Thread" msgstr "__Desligar o tema" #: ../pan/gui/actions.cc:594 ../pan/gui/actions.cc:595 msgid "_Select All Flagged Threads" msgstr "_Selecionar todos os temas marcados" #: ../pan/gui/actions.cc:599 ../pan/gui/actions.cc:600 msgid "_Go to Next Flagged Thread" msgstr "_Ir para tema marcado seguinte" #: ../pan/gui/actions.cc:604 ../pan/gui/actions.cc:605 msgid "_Go to Last Flagged Thread" msgstr "_Ir para último tema marcado" #: ../pan/gui/actions.cc:609 ../pan/gui/actions.cc:610 msgid "_Invert Selection" msgstr "_Inverter seleção" #: ../pan/gui/actions.cc:614 msgid "Edit Article's Watch/Ignore/Score..." msgstr "Editar Acompanhar/Ignorar/Pontuação dos artigos..." #: ../pan/gui/actions.cc:619 msgid "Add a _Scoring Rule..." msgstr "Adicionar uma regra de _Pontuação..." #: ../pan/gui/actions.cc:624 msgid "Cance_l Article..." msgstr "Cance_Lar artigo..." #: ../pan/gui/actions.cc:629 msgid "_Supersede Article..." msgstr "_Substituir artigo..." #: ../pan/gui/actions.cc:634 msgid "_Delete Article" msgstr "_Eliminar artigo" #: ../pan/gui/actions.cc:639 msgid "Clear Article Cache" msgstr "Limpar cache de artigos" #: ../pan/gui/actions.cc:644 msgid "_Mark Article as Read" msgstr "_Marcar artigo como lido" #: ../pan/gui/actions.cc:649 msgid "Mark Article as _Unread" msgstr "Marcar artigo como _Não lido" #: ../pan/gui/actions.cc:655 msgid "_Mark Thread as Read" msgstr "_Marcar tema como lido" #: ../pan/gui/actions.cc:660 msgid "Mark Thread as _Unread" msgstr "Marcar tema como _Não lido" #: ../pan/gui/actions.cc:665 msgid "_Post to Newsgroup" msgstr "_Publicar no grupo" #: ../pan/gui/actions.cc:666 msgid "Post to Newsgroup" msgstr "Publicar no grupo" #: ../pan/gui/actions.cc:670 msgid "_Followup to Newsgroup" msgstr "_Dar seguimento no grupo" #: ../pan/gui/actions.cc:671 msgid "Followup to Newsgroup" msgstr "Dar seguimento no grupo" #: ../pan/gui/actions.cc:675 msgid "_Reply to Author in Mail" msgstr "_Responder ao autor por email" #: ../pan/gui/actions.cc:680 msgid "_Pan Home Page" msgstr "_Página web do Pan" #: ../pan/gui/actions.cc:685 msgid "Give _Feedback or Report a Bug..." msgstr "Comentar ou reportar um _Erro..." #: ../pan/gui/actions.cc:690 msgid "_Tip Jar..." msgstr "Jarro das _Gorjetas..." #: ../pan/gui/actions.cc:695 msgid "_About" msgstr "_Sobre" #: ../pan/gui/actions.cc:700 msgid "Edit _SSL Certificates" msgstr "Editar certificados _SSL" #: ../pan/gui/actions.cc:715 msgid "_Thread Headers" msgstr "Cabeçalhos do _Tema" #: ../pan/gui/actions.cc:716 #| msgid "_Wrap Article Body" msgid "Wrap Article Body" msgstr "Ajustar corpo do artigo" #: ../pan/gui/actions.cc:717 #| msgid "Show Article Information" msgid "Show Article Signature" msgstr "Mostrar assinatura do artigo" #: ../pan/gui/actions.cc:718 msgid "Mute _Quoted Text" msgstr "Silenciar te_Xto citado" #: ../pan/gui/actions.cc:719 msgid "Show All _Headers in Body Pane" msgstr "Mostrar todos os cabeçal_Hos no painel de corpo" #: ../pan/gui/actions.cc:720 msgid "Show _Smilies as Graphics" msgstr "Mostrar _Risonhos como imagens" #: ../pan/gui/actions.cc:721 msgid "Show *Bold*, __Underlined__, and /Italic/" msgstr "Mostrar *Negrito*, __Sublinhado__ e /Itálico/" #: ../pan/gui/actions.cc:722 msgid "Size Pictures to _Fit" msgstr "Dimensionar imagens para _Caber" #: ../pan/gui/actions.cc:723 msgid "Use _Monospace Font" msgstr "Usar letra _Monoespaçada" #: ../pan/gui/actions.cc:724 msgid "Set Focus to Images" msgstr "Atribuir foco a imagens" #: ../pan/gui/actions.cc:725 msgid "Highlight _URLs" msgstr "Realçar _URLs" #: ../pan/gui/actions.cc:728 msgid "_Work Online" msgstr "Trabalhar _Online" #: ../pan/gui/actions.cc:729 msgid "_Tabbed Layout" msgstr "_Disposição em separadores" #: ../pan/gui/actions.cc:730 msgid "Show Group _Pane" msgstr "Mostrar painel de _Grupo" #: ../pan/gui/actions.cc:731 msgid "Show Hea_der Pane" msgstr "Mostrar painel de _Cabeçalho" #: ../pan/gui/actions.cc:732 msgid "Show Bod_y Pane" msgstr "Mostrar painel de _Artigo" #: ../pan/gui/actions.cc:733 msgid "Show _Toolbar" msgstr "Mostrar barra de ferramen_Tas" #: ../pan/gui/actions.cc:734 msgid "Abbreviate Group Names" msgstr "Abreviar nomes de grupos" #: ../pan/gui/actions.cc:736 #| msgid "Match Only _Unread Articles" msgid "Match Only _Read Articles" msgstr "Comparar só artigos _Lidos" #: ../pan/gui/actions.cc:736 #| msgid "Match Only Unread Articles" msgid "Match Only Read Articles" msgstr "Comparar só artigos lidos" #: ../pan/gui/actions.cc:737 msgid "Match Only _Unread Articles" msgstr "Comparar só artigos _Não lidos" #: ../pan/gui/actions.cc:737 msgid "Match Only Unread Articles" msgstr "Comparar só artigos não lidos" #: ../pan/gui/actions.cc:738 msgid "Match Only _Cached Articles" msgstr "Comparar só artigos _Em cache" #: ../pan/gui/actions.cc:738 msgid "Match Only Cached Articles" msgstr "Comparar só artigos em cache" #: ../pan/gui/actions.cc:739 msgid "Match Only _Complete Articles" msgstr "Comparar só artigos _Completos" #: ../pan/gui/actions.cc:739 msgid "Match Only Complete Articles" msgstr "Comparar só artigos completos" #: ../pan/gui/actions.cc:740 msgid "Match Only _My Articles" msgstr "Comparar só os _Meus artigos" #: ../pan/gui/actions.cc:740 msgid "Match Only My Articles" msgstr "Comparar só os meus artigos" #: ../pan/gui/actions.cc:741 msgid "Match Only _Watched Articles" msgstr "Comparar só artigos _Acompanhados" #: ../pan/gui/actions.cc:741 msgid "Match Only Watched Articles" msgstr "Comparar só artigos acompanhados" #: ../pan/gui/actions.cc:743 msgid "Match Scores of 9999 (_Watched)" msgstr "Comparar pontuações de 9999 (_Acompanhados)" #: ../pan/gui/actions.cc:744 msgid "Match Scores of 5000...9998 (_High)" msgstr "Comparar pontuações entre 5000...9998 (A_Lta)" #: ../pan/gui/actions.cc:745 msgid "Match Scores of 1...4999 (Me_dium)" msgstr "Comparar pontuações entre 1 e 4999 (_Média)" #: ../pan/gui/actions.cc:746 msgid "Match Scores of 0 (_Normal)" msgstr "Comparar pontuações de 0 (_Normal)" #: ../pan/gui/actions.cc:747 msgid "Match Scores of -9998...-1 (_Low)" msgstr "Comparar pontuações entre -9998...-1 (_Baixa)" #: ../pan/gui/actions.cc:748 msgid "Match Scores of -9999 (_Ignored)" msgstr "Comparar pontuações de -9999 (_Ignorados)" #: ../pan/gui/actions.cc:750 msgid "Enable/Disable All _Rules" msgstr "Ativar desativar todas as _Regras" #: ../pan/gui/actions.cc:778 msgid "Show Matching _Articles" msgstr "Mostrar _Artigos coincidentes" #: ../pan/gui/actions.cc:779 msgid "Show Matching Articles' _Threads" msgstr "Mostrar _Temas dos artigos coincidentes" #: ../pan/gui/actions.cc:780 msgid "Show Matching Articles' _Subthreads" msgstr "Mostrar _Subtemas dos artigos coincidentes" #: ../pan/gui/body-pane.cc:1056 #, c-format msgid "Unnamed File" msgstr "Ficheiro sem nome" #: ../pan/gui/body-pane.cc:1137 ../pan/gui/gui.cc:1980 #: ../pan/gui/header-pane.cc:1313 ../pan/gui/header-pane.cc:1748 #: ../pan/gui/post-ui.cc:2588 ../pan/gui/prefs-ui.cc:855 #: ../pan/gui/score-add-ui.cc:139 ../pan/gui/task-pane.cc:797 msgid "Subject" msgstr "Assunto" #: ../pan/gui/body-pane.cc:1139 ../pan/gui/gui.cc:1980 msgid "From" msgstr "De" #: ../pan/gui/body-pane.cc:1141 ../pan/gui/gui.cc:1981 #: ../pan/gui/header-pane.cc:1827 ../pan/gui/log-ui.cc:307 #: ../pan/gui/prefs-ui.cc:851 msgid "Date" msgstr "Data" #: ../pan/gui/body-pane.cc:1148 msgid "Newsgroups" msgstr "Grupo de notícias" #: ../pan/gui/body-pane.cc:1155 ../pan/gui/body-pane.cc:1163 #: ../pan/gui/body-pane.cc:1170 msgid "User-Agent" msgstr "Utilizador-Agente" #: ../pan/gui/body-pane.cc:1176 msgid "Followup-To" msgstr "DarSeguimento-Para" #: ../pan/gui/body-pane.cc:1186 msgid "Reply-To" msgstr "Responder-A" #: ../pan/gui/body-pane.cc:1229 msgid " from " msgstr " de " #: ../pan/gui/body-pane.cc:1231 msgid " at " msgstr " em " #: ../pan/gui/body-pane.cc:1318 #, c-format msgid "" "This is a PGP-Signed message.\n" "\n" "Signer: %s ('%s')\n" "Valid until: %s\n" "Created on: %s" msgstr "" "Esta é uma mensagem com assinatura PGP.\n" "\n" "Assinante: %s (\"%s\")\n" "Válida até: %s\n" "Criada a: %s" #: ../pan/gui/body-pane.cc:1323 msgid "always" msgstr "sempre" #: ../pan/gui/body-pane.cc:1543 msgid "Copy _URL" msgstr "Copiar _URL" #: ../pan/gui/body-pane.cc:1748 msgid "Save Attachment As..." msgstr "Gravar anexo como..." #: ../pan/gui/body-pane.cc:1751 msgid "Save All Attachments" msgstr "Gravar todos os anexos" #. add a toolbar for attachments #: ../pan/gui/body-pane.cc:1821 msgid "Attachments" msgstr "Anexos" #: ../pan/gui/body-pane.cc:1836 #| msgid "Text File" msgid "Text View" msgstr "Vista de texto" #: ../pan/gui/body-pane.cc:1845 msgid "HTML View" msgstr "Vista HTML" #: ../pan/gui/dl-headers-ui.cc:112 #, c-format msgid "%d Group" msgid_plural "%d Groups" msgstr[0] "%d grupo" msgstr[1] "%d grupos" #: ../pan/gui/dl-headers-ui.cc:135 msgid "Get the last N _days' headers: " msgstr "Obter os cabeçalhos dos últimos N _Dias: " #: ../pan/gui/dl-headers-ui.cc:143 msgid "Get _new headers" msgstr "Obter _Novos cabeçalhos" #: ../pan/gui/dl-headers-ui.cc:147 msgid "Get _all headers" msgstr "Obter _Todos os cabeçalhos" #: ../pan/gui/dl-headers-ui.cc:151 msgid "Get the _latest N headers: " msgstr "Obter os ú_Ltimos N cabeçalhos: " #: ../pan/gui/e-action-combo-box.c:386 ../pan/gui/prefs-ui.cc:848 msgid "Action" msgstr "Ação" #: ../pan/gui/e-action-combo-box.c:387 msgid "A GtkRadioAction" msgstr "Uma GtkRadioAtion" #: ../pan/gui/e-charset.c:51 ../pan/gui/task-pane.cc:558 msgid "Unknown" msgstr "Desconhecido" #: ../pan/gui/e-charset.c:52 msgid "Arabic" msgstr "Árabe" #: ../pan/gui/e-charset.c:53 msgid "Baltic" msgstr "Báltico" #: ../pan/gui/e-charset.c:54 msgid "Central European" msgstr "Europeu Central" #: ../pan/gui/e-charset.c:55 msgid "Chinese" msgstr "Chinês" #: ../pan/gui/e-charset.c:56 msgid "Cyrillic" msgstr "Cirílico" #: ../pan/gui/e-charset.c:57 msgid "Greek" msgstr "Grego" #: ../pan/gui/e-charset.c:58 msgid "Hebrew" msgstr "Hebreu" #: ../pan/gui/e-charset.c:59 msgid "Japanese" msgstr "Japonês" #: ../pan/gui/e-charset.c:60 msgid "Korean" msgstr "Coreano" #: ../pan/gui/e-charset.c:61 msgid "Thai" msgstr "Tailandês" #: ../pan/gui/e-charset.c:62 msgid "Turkish" msgstr "Turco" #: ../pan/gui/e-charset.c:63 msgid "Unicode" msgstr "Unicode" #: ../pan/gui/e-charset.c:64 msgid "Western European" msgstr "Europeu Ocidental" #: ../pan/gui/e-charset.c:65 msgid "Western European, New" msgstr "Europeu Ocidental, novo" #: ../pan/gui/e-charset.c:84 ../pan/gui/e-charset.c:85 #: ../pan/gui/e-charset.c:86 msgid "Traditional" msgstr "Tradicional" #: ../pan/gui/e-charset.c:87 ../pan/gui/e-charset.c:88 #: ../pan/gui/e-charset.c:89 ../pan/gui/e-charset.c:90 msgid "Simplified" msgstr "Simplificado" #: ../pan/gui/e-charset.c:93 msgid "Ukrainian" msgstr "Ucraniano" #: ../pan/gui/e-charset.c:96 msgid "Visual" msgstr "Visual" #: ../pan/gui/e-charset-combo-box.c:93 ../pan/gui/gui.cc:2178 #: ../pan/gui/post-ui.cc:548 ../pan/gui/prefs-ui.cc:759 msgid "Character Encoding" msgstr "Codificação de caracteres" #: ../pan/gui/e-charset-combo-box.c:117 msgid "Enter the character set to use" msgstr "Insira o conjunto de caracteres a usar" #: ../pan/gui/e-charset-combo-box.c:336 msgid "Other..." msgstr "Outro..." #: ../pan/gui/e-cte-dialog.c:76 msgid "Default Encoding" msgstr "Codificação predefinida" #: ../pan/gui/e-cte-dialog.c:78 msgid "7-Bit Encoding" msgstr "Codificação 7-bit" #: ../pan/gui/e-cte-dialog.c:80 msgid "8-Bit Encoding" msgstr "Codificação 8-bit" #: ../pan/gui/e-cte-dialog.c:82 msgid "Base64 Encoding" msgstr "Codificação Base64" #: ../pan/gui/e-cte-dialog.c:84 msgid "Quoted-Printable Encoding" msgstr "Codificação citada imprimível" #: ../pan/gui/group-pane.cc:330 msgid "Sent" msgstr "Enviado" #: ../pan/gui/group-pane.cc:331 msgid "Drafts" msgstr "Rascunhos" #: ../pan/gui/group-pane.cc:537 msgid "Group" msgstr "Grupo" #: ../pan/gui/group-pane.cc:538 msgid "Group (regex)" msgstr "Grupo (expreg)" #: ../pan/gui/group-pane.cc:1010 msgid "Local Folders" msgstr "Pastas locais" #: ../pan/gui/group-pane.cc:1011 msgid "Subscribed Groups" msgstr "Grupos subscritos" #: ../pan/gui/group-pane.cc:1012 msgid "Other Groups" msgstr "Outros grupos" #: ../pan/gui/group-pane.cc:1052 ../pan/gui/score-view-ui.cc:157 msgid "Name" msgstr "Nome" #: ../pan/gui/group-prefs-dialog.cc:162 msgid "No Profiles defined in Edit|Posting Profiles." msgstr "Nenhum perfil definido em Editar|Perfis de publicação." #: ../pan/gui/group-prefs-dialog.cc:273 msgid "Pan: Group Preferences" msgstr "Pan: preferências de grupo" #: ../pan/gui/group-prefs-dialog.cc:288 #, c-format msgid "Properties for Groups" msgstr "Propriedades de grupos" #: ../pan/gui/group-prefs-dialog.cc:290 #, c-format msgid "Properties for %s" msgstr "Propriedades de %s" #: ../pan/gui/group-prefs-dialog.cc:298 msgid "Character _encoding:" msgstr "Codificação de carat_Eres:" #: ../pan/gui/group-prefs-dialog.cc:300 msgid "Directory for Saving Attachments" msgstr "Pasta onde gravar os anexos" #: ../pan/gui/group-prefs-dialog.cc:308 msgid "Directory for _saving attachments:" msgstr "Pasta onde _Gravar os anexos:" #: ../pan/gui/group-prefs-dialog.cc:310 msgid "Posting _profile:" msgstr "_Perfis de publicação:" #: ../pan/gui/group-prefs-dialog.cc:315 msgid "Spellchecker _language:" msgstr "_Idioma de verificação ortográfica:" #: ../pan/gui/group-prefs-dialog.cc:318 msgid "Group color:" msgstr "Cor do grupo:" #: ../pan/gui/gui.cc:312 msgid "Open the Task Manager" msgstr "Abrir o gestor de tarefas" #: ../pan/gui/gui.cc:335 msgid "Open the Event Log" msgstr "Abrir o diário de eventos" #: ../pan/gui/gui.cc:611 msgid "Save NZB's Files" msgstr "Gravar ficheiros NZB" #: ../pan/gui/gui.cc:638 msgid "Untitled.nzb" msgstr "Sem título.nzb" #: ../pan/gui/gui.cc:640 msgid "Save NZB File as..." msgstr "Gravar ficheiro NZB como..." #: ../pan/gui/gui.cc:809 msgid "Import NZB Files" msgstr "Importar Ficheiros NZB" #: ../pan/gui/gui.cc:817 ../pan/gui/post-ui.cc:3287 msgid "NZB Files" msgstr "Ficheiros NZB" #: ../pan/gui/gui.cc:822 msgid "All Files" msgstr "Todos os ficheiros" #: ../pan/gui/gui.cc:1334 msgid "Unable to supersede article." msgstr "Impossível substituir o artigo." #: ../pan/gui/gui.cc:1335 ../pan/gui/gui.cc:1409 msgid "The article doesn't match any of your posting profiles." msgstr "O artigo não corresponde a nenhum dos seus perfis de publicação." #: ../pan/gui/gui.cc:1382 msgid "Revise and send this article to replace the old one." msgstr "Rever e enviar este artigo para substituir o antigo." #: ../pan/gui/gui.cc:1383 ../pan/gui/gui.cc:1446 msgid "Be patient! It will take time for your changes to take effect." msgstr "" "Seja paciente! Demorará algum tempo até que as suas alterações tenham efeito." #: ../pan/gui/gui.cc:1408 msgid "Unable to cancel article." msgstr "Impossível cancelar o artigo." #: ../pan/gui/gui.cc:1445 msgid "Send this article to ask your server to cancel your other one." msgstr "Enviar este artigo para pedir ao servidor que cancele o seu outro." #: ../pan/gui/gui.cc:1463 msgid "You have marked some articles for deletion." msgstr "Marcou alguns artigos para eliminação." #: ../pan/gui/gui.cc:1464 msgid "Are you sure you want to delete them?" msgstr "Tem a certeza que os quer eliminar?" #: ../pan/gui/gui.cc:1490 msgid "Do you want to accept it permanently? (You can change this later.)" msgstr "Quer aceitar permanentemente (pode alterar isto mais tarde)?" #: ../pan/gui/gui.cc:1670 msgid "Copyright © 2002-2012 Charles Kerr and others" msgstr "Copyright © 2002-2012 Charles Kerr e outros" #: ../pan/gui/gui.cc:1675 msgid "translator-credits" msgstr "" "Duarte Loreto ,\n" "Filipe Gomes ,\n" "Pedro Albuquerque " #: ../pan/gui/gui.cc:1808 #| msgid "_2. Header Pane" msgid "_1. Header Pane" msgstr "_1. Painel de cabeçalho" #: ../pan/gui/gui.cc:1809 #| msgid "_2. Header Pane" msgid "_2. Search Pane" msgstr "_2. Painel de procura" #: ../pan/gui/gui.cc:1815 msgid "_1. Group Pane" msgstr "_1. Painel de grupo" #: ../pan/gui/gui.cc:1817 ../pan/gui/gui.cc:1819 msgid "_2. Header Pane" msgstr "_2. Painel de cabeçalho" #: ../pan/gui/gui.cc:1821 msgid "_3. Body Pane" msgstr "_3. Painel de corpo" #: ../pan/gui/gui.cc:1917 ../pan/gui/gui.cc:1932 msgid " Bytes" msgstr " Bytes" #: ../pan/gui/gui.cc:1920 msgid " KB" msgstr " KB" #: ../pan/gui/gui.cc:1923 msgid " MB" msgstr " MB" #: ../pan/gui/gui.cc:1926 msgid " GB" msgstr " GB" #: ../pan/gui/gui.cc:1929 msgid " TB" msgstr " TB" #: ../pan/gui/gui.cc:1961 #, c-format msgid "This article is complete with %d part." msgid_plural "This article has all %d parts." msgstr[0] "Este artigo está completo com a parte %d." msgstr[1] "Este artigo possui todas as %d partes." #: ../pan/gui/gui.cc:1963 #, c-format msgid "This article is missing %d part." msgid_plural "This article is missing %d of its %d parts:" msgstr[0] "Falta a este artigo %d parte." msgstr[1] "Faltam a este artigo %d das suas %d partes:" #: ../pan/gui/gui.cc:1981 ../pan/gui/header-pane.cc:1315 #: ../pan/gui/task-pane.cc:799 msgid "Message-ID" msgstr "ID-Mensagem" #: ../pan/gui/gui.cc:1982 ../pan/gui/header-pane.cc:1796 #: ../pan/gui/prefs-ui.cc:852 msgid "Lines" msgstr "Linhas" #: ../pan/gui/gui.cc:1982 msgid "Size" msgstr "Tamanho" #: ../pan/gui/gui.cc:1983 ../pan/gui/header-pane.cc:1812 #: ../pan/gui/prefs-ui.cc:850 msgid "Bytes" msgstr "Bytes" #: ../pan/gui/gui.cc:2033 msgid "" "Error loading iconv library. Encoding certain character sets will not work " "in GUI." msgstr "" "Erro ao carregar a biblioteca iconv. A codificação de certos conjuntos de " "caracteres não funcionará no GUI." #: ../pan/gui/gui.cc:2179 msgid "Body Pane Encoding" msgstr "Codificação do painel de corpo" #: ../pan/gui/gui.cc:2210 ../pan/gui/task-pane.cc:609 #, c-format msgid "Offline" msgstr "Offline" #: ../pan/gui/gui.cc:2214 #, c-format msgid "Closing %d connection" msgid_plural "Closing %d connections" msgstr[0] "A fechar %d ligação" msgstr[1] "A fechar %d ligações" #: ../pan/gui/gui.cc:2216 ../pan/gui/gui.cc:2246 #, c-format msgid "No Connections" msgstr "Sem ligações" #: ../pan/gui/gui.cc:2220 #, c-format msgid "Connecting" msgstr "A ligar" #: ../pan/gui/gui.cc:2233 #, c-format msgid "%s: %d idle, %d active @ %.1f KiBps" msgstr "%s: %d inativo, %d ativo @ %.1f KiBps" #: ../pan/gui/gui.cc:2289 #, c-format msgid "No Tasks" msgstr "Sem tarefas" #: ../pan/gui/gui.cc:2291 ../pan/gui/prefs-ui.cc:1090 msgid "Tasks" msgstr "Tarefas" #: ../pan/gui/gui.cc:2308 ../pan/gui/task-pane.cc:475 #, c-format msgid "%lu tasks, %s, %.1f KiBps, ETA %d:%02d:%02d" msgstr "%lu tarefas, %s, %.1f KiBps, TEC %d:%02d:%02d" #: ../pan/gui/gui.cc:2360 msgid "" "Pan is now offline. Please see \"File|Event Log\" and correct the problem, " "then use \"File|Work Online\" to continue." msgstr "" "O Pan está offline. Consulte \"Ficheiro|Diário de eventos\" e corrija o " "problema. Em seguida, use \"Ficheiro|Trabalhar online\" para continuar." #: ../pan/gui/header-pane.cc:1311 ../pan/gui/task-pane.cc:795 msgid "Subject or Author" msgstr "Assunto ou Autor" #: ../pan/gui/header-pane.cc:1312 ../pan/gui/task-pane.cc:796 msgid "Sub or Auth (regex)" msgstr "Ass. ou Aut. (expreg)" #: ../pan/gui/header-pane.cc:1314 ../pan/gui/header-pane.cc:1780 #: ../pan/gui/prefs-ui.cc:849 ../pan/gui/score-add-ui.cc:140 #: ../pan/gui/task-pane.cc:798 msgid "Author" msgstr "Autor" #: ../pan/gui/header-pane.cc:1765 ../pan/gui/prefs-ui.cc:853 msgid "Score" msgstr "Pontuação" #: ../pan/gui/log-ui.cc:104 msgid "Save Event List" msgstr "Gravar lista de eventos" #: ../pan/gui/log-ui.cc:258 msgid "Pan: Events" msgstr "Pan: eventos" #: ../pan/gui/log-ui.cc:317 msgid "Message" msgstr "Mensagem" #: ../pan/gui/pan.cc:359 msgid "Maximize" msgstr "Maximizar" #: ../pan/gui/pan.cc:412 msgid "An error has occurred!" msgstr "Ocorreu um erro!" #: ../pan/gui/pan.cc:426 msgid "New Articles!" msgstr "Novos artigos!" #: ../pan/gui/pan.cc:427 msgid "" "There are new\n" "articles available." msgstr "" "Há novos artigos\n" "disponíveis." #: ../pan/gui/pan.cc:494 msgid "Toggle on/offline" msgstr "Alternar online/offline" #: ../pan/gui/pan.cc:542 msgid "" "Thank you for trying Pan!\n" " \n" "To start newsreading, first Add a Server." msgstr "" "Obrigado por experimentar o Pan!\n" " \n" "Para começar a ler notícias, adicione um servidor." #: ../pan/gui/pan.cc:624 msgid "" "General Options\n" " -h, --help Show this usage page.\n" " --verbose Be verbose (in non-GUI mode).\n" "\n" "URL Options\n" " headers:group.name Download new headers for the specified " "newsgroup.\n" " --no-gui On news:message-id, dump the article to stdout.\n" "\n" "NZB Batch Options\n" " --nzb file1 file2 ... Process nzb files without launching all of Pan.\n" " -o path, --output=path Path to save attachments listed in the nzb " "files.\n" " --no-gui Only show console output, not the download " "queue.\n" msgstr "" "Opções gerais\n" " -h, --help Mostrar esta página de apoio à utilização.\n" "\n" "Opções de URL\n" " headers:group.name Transferir novos cabeçalhos do grupo " "especificado.\n" " --no-gui Em news:message-id, despejar o artigo no stdout.\n" "\n" "Opções de Batch NZB\n" " --nzb file1 file2 ... Processar ficheiros nzb sem iniciar todo o Pan.\n" " -o path, --output=path Caminho onde gravar os anexos listados nos " "ficheiros nzb.\n" " --no-gui Mostrar só o resultado na consola, não a fila a " "transferir.\n" #: ../pan/gui/pan.cc:958 msgid "Error: --no-gui used without nzb files or news:message-id." msgstr "Erro: --no-gui usado sem ficheiros nzb nem news:message-id." #: ../pan/gui/pan.cc:962 #, c-format msgid "Pan %s started" msgstr "Pan %s iniciado" #: ../pan/gui/pan.cc:982 msgid "Please configure Pan's news servers before using it as an nzb client." msgstr "" "Configure os servidores de notícias do Pan antes de o usar como cliente nzb." #: ../pan/gui/pan.cc:1100 msgid "Pan notification" msgstr "Notificação Pan" #: ../pan/gui/post-ui.cc:163 #, c-format msgid "Upload queue: %lu tasks, %ld KB (~ %.2f MB) total." msgstr "Fila de envio: %lu tarefas, %ld KB (~ %.2f MB) total." #: ../pan/gui/post-ui.cc:266 ../pan/gui/post-ui.cc:297 #, c-format msgid "Error setting custom spellchecker: %s" msgstr "Erro ao definir o corretor ortográfico: %s" #: ../pan/gui/post-ui.cc:270 ../pan/gui/post-ui.cc:278 #: ../pan/gui/post-ui.cc:301 ../pan/gui/post-ui.cc:309 #, c-format msgid "Error setting spellchecker: %s" msgstr "Erro ao definir o corretor ortográfico: %s" #: ../pan/gui/post-ui.cc:448 msgid "_Profile" msgstr "_Perfil" #: ../pan/gui/post-ui.cc:449 msgid "Set Editor" msgstr "Definir editor" #: ../pan/gui/post-ui.cc:451 msgid "_Send Article" msgstr "_Enviar artigo" #: ../pan/gui/post-ui.cc:451 msgid "Send Article Now" msgstr "Enviar artigo agora" #: ../pan/gui/post-ui.cc:452 msgid "_Send and Save Articles to NZB" msgstr "_Enviar e gravar artigos ao NZB" #: ../pan/gui/post-ui.cc:452 msgid "Send and Save Articles to NZB" msgstr "Enviar e gravar artigos ao NZB" #: ../pan/gui/post-ui.cc:453 msgid "Set Character _Encoding..." msgstr "Definir codificação de _Caracteres..." #: ../pan/gui/post-ui.cc:454 msgid "Set Content _Transfer Encoding..." msgstr "Definir codificação do conteúdo _Transferido..." #: ../pan/gui/post-ui.cc:455 msgid "Sa_ve Draft" msgstr "Gravar _Rascunho" #: ../pan/gui/post-ui.cc:455 msgid "Save as a Draft for Future Posting" msgstr "Gravar como rascunho para posterior publicação" #: ../pan/gui/post-ui.cc:456 msgid "_Open Draft..." msgstr "_Abrir rascunho..." #: ../pan/gui/post-ui.cc:456 msgid "Open an Article Draft" msgstr "Abrir o rascunho de um artigo" #: ../pan/gui/post-ui.cc:461 msgid "_Rot13" msgstr "_Rot13" #: ../pan/gui/post-ui.cc:461 msgid "Rot13 Selected Text" msgstr "Rot13 do texto selecionado" #: ../pan/gui/post-ui.cc:462 msgid "Run _Editor" msgstr "Executar _Editor" #: ../pan/gui/post-ui.cc:462 msgid "Run Editor" msgstr "Executar o editor" #: ../pan/gui/post-ui.cc:464 msgid "Add _Files to Queue" msgstr "Adicionar _Ficheiros à fila" #: ../pan/gui/post-ui.cc:464 msgid "Add Files to Queue" msgstr "Adicionar ficheiros à fila" #: ../pan/gui/post-ui.cc:479 ../pan/gui/post-ui.cc:480 msgid "Remove from Queue" msgstr "Remover da fila" #: ../pan/gui/post-ui.cc:484 ../pan/gui/post-ui.cc:485 msgid "Clear List" msgstr "Limpar lista" #: ../pan/gui/post-ui.cc:489 ../pan/gui/post-ui.cc:490 msgid "Select Needed Parts" msgstr "Selecionar partes necessárias" #: ../pan/gui/post-ui.cc:494 ../pan/gui/post-ui.cc:495 #: ../pan/gui/task-pane.cc:677 ../pan/gui/task-pane.cc:678 msgid "Move Up" msgstr "Mover acima" #: ../pan/gui/post-ui.cc:499 ../pan/gui/post-ui.cc:500 #: ../pan/gui/task-pane.cc:682 ../pan/gui/task-pane.cc:683 msgid "Move Down" msgstr "Mover abaixo" #: ../pan/gui/post-ui.cc:504 ../pan/gui/post-ui.cc:505 msgid "Move to Top" msgstr "Mover para o topo" #: ../pan/gui/post-ui.cc:509 ../pan/gui/post-ui.cc:510 msgid "Move to Bottom" msgstr "Mover para o fundo" #: ../pan/gui/post-ui.cc:517 msgid "_Wrap Text" msgstr "_Ajustar texto" #: ../pan/gui/post-ui.cc:517 msgid "Wrap Text" msgstr "Ajustar texto" #: ../pan/gui/post-ui.cc:518 msgid "Always Run Editor" msgstr "Executar sempre o editor" #: ../pan/gui/post-ui.cc:519 #| msgid "Remember Character Encoding for this Group" msgid "Remember Character Encoding for This Group" msgstr "Lembrar a codificação de caracteres deste grupo" #: ../pan/gui/post-ui.cc:520 msgid "Thread Attached Replies" msgstr "Respostas anexadas do tema" #: ../pan/gui/post-ui.cc:521 #| msgid "Cache Article" msgid "PGP-Encrypt the Article" msgstr "Encriptar artigo com PGP" #: ../pan/gui/post-ui.cc:522 #| msgid "And the article's" msgid "PGP-Sign the Article" msgstr "Assinar artigo com PGP" #: ../pan/gui/post-ui.cc:523 msgid "Check _Spelling" msgstr "_Verificar ortografia" #: ../pan/gui/post-ui.cc:549 msgid "New Article's Encoding:" msgstr "Codificação do novo artigo:" #: ../pan/gui/post-ui.cc:559 msgid "Content Transfer Encoding" msgstr "Codificação de conteúdo transferido" #: ../pan/gui/post-ui.cc:560 msgid "New Article's Content Transfer Encoding:" msgstr "Codificação do conteúdo transferido do novo artigo:" #: ../pan/gui/post-ui.cc:740 msgid "Your changes will be lost!" msgstr "As suas alterações serão perdidas!" #: ../pan/gui/post-ui.cc:741 msgid "Close this window and lose your changes?" msgstr "Fechar esta janela e perder as suas alterações?" #: ../pan/gui/post-ui.cc:786 ../pan/gui/post-ui.cc:825 msgid "There were problems with this post." msgstr "Ocorreram problemas com esta publicação." #: ../pan/gui/post-ui.cc:788 ../pan/gui/post-ui.cc:827 #: ../pan/gui/post-ui.cc:892 msgid "Go Back" msgstr "Recuar" #: ../pan/gui/post-ui.cc:790 #| msgid "Post Anyway" msgid "Continue Anyway" msgstr "Continuar mesmo assim" #. Prompt the user #: ../pan/gui/post-ui.cc:819 #, c-format msgid "" "Message uses characters not specified in charset '%s' - possibly use '%s' " msgstr "" "A mensagem usa caracteres não especificados no conjunto de caracteres \"%s\" " "- possivelmente usa \"%s\" " #: ../pan/gui/post-ui.cc:842 msgid "Go _Online" msgstr "_Ligar à rede" #: ../pan/gui/post-ui.cc:891 msgid "The file queue is empty, so no files can be saved." msgstr "A fila de ficheiros está vazia, não há ficheiros a gravar." #: ../pan/gui/post-ui.cc:1070 msgid "IO Error" msgstr "Erro de E/S" #: ../pan/gui/post-ui.cc:1070 msgid "No space left on device" msgstr "Sem espaço livre no dispositivo" #: ../pan/gui/post-ui.cc:1071 #, c-format msgid "Error copying message to %s folder. Reason: %s" msgstr "Erro ao copiar a mensagem para a pasta %s. Motivo: %s" #: ../pan/gui/post-ui.cc:1077 #, c-format msgid "Error creating message in %s mail folder: Invalid article." msgstr "Erro ao criar mensagem na pasta de correio %s: artigo inválido." #: ../pan/gui/post-ui.cc:1099 msgid "" "No posting server is set for this posting profile.\n" "Please edit the profile via Edit|Manage Posting Profiles." msgstr "" "Não está definido nenhum servidor de publicação neste perfil.\n" "Edite o perfil em Editar|Gerir perfis de publicação." #: ../pan/gui/post-ui.cc:1104 msgid "" "The selected posting server is currently disabled. Please choose an " "appropriate alternative." msgstr "" "O servidor de publicação selecionado está atualmente desativado. Por favor, " "escolha uma alternativa apropriada." #: ../pan/gui/post-ui.cc:1146 msgid "Pan is Offline." msgstr "O Pan está offline." #: ../pan/gui/post-ui.cc:1147 msgid "Go online to post the article?" msgstr "Ligar à rede para publicar o artigo?" #: ../pan/gui/post-ui.cc:1196 #, c-format msgid "" "Error signing/encrypting your message. Perhaps you misspelled your email " "address (%s)?" msgstr "" "Erro ao assinar/encriptar a sua mensagem. Talvez se tenha enganado no " "endereço eletrónico (%s)?" #: ../pan/gui/post-ui.cc:1344 msgid "Error opening temporary file" msgstr "Erro ao abrir o ficheiro temporário" #: ../pan/gui/post-ui.cc:1356 #, c-format msgid "Error writing article to temporary file: %s" msgstr "Erro ao escrever o artigo no ficheiro temporário: %s" #: ../pan/gui/post-ui.cc:1375 #, c-format msgid "Error parsing \"external editor\" command line: %s (Command was: %s)" msgstr "" "Erro ao processar a linha de comando de \"editor externo\": %s (comando era: " "%s)" #: ../pan/gui/post-ui.cc:1416 #, c-format msgid "Error starting external editor: %s" msgstr "Erro ao iniciar o editor externo: %s" #: ../pan/gui/post-ui.cc:1479 msgid "Open Draft Article" msgstr "Abrir o rascunho de artigo" #: ../pan/gui/post-ui.cc:1691 msgid "Save Draft Article" msgstr "Gravar o rascunho de artigo" #: ../pan/gui/post-ui.cc:1889 #, c-format msgid "Couldn't parse signature command \"%s\": %s" msgstr "Impossível processar o comando de assinatura \"%s\": %s" #: ../pan/gui/post-ui.cc:1925 msgid "Couldn't convert signature to UTF-8." msgstr "Impossível converter a assinatura em UTF-8." #: ../pan/gui/post-ui.cc:2427 msgid "F_rom" msgstr "_De" #: ../pan/gui/post-ui.cc:2444 msgid "_Subject" msgstr "_Assunto" #: ../pan/gui/post-ui.cc:2457 msgid "_Newsgroups" msgstr "_Grupos" #: ../pan/gui/post-ui.cc:2471 msgid "Mail _To" msgstr "Email _Para" #: ../pan/gui/post-ui.cc:2573 msgid "Delete from Queue" msgstr "Eliminar da fila" #: ../pan/gui/post-ui.cc:2586 msgid "No." msgstr "Nº." #: ../pan/gui/post-ui.cc:2590 ../pan/gui/post-ui.cc:2682 #: ../pan/gui/post-ui.cc:2723 msgid "Filename" msgstr "Nome de ficheiro" #: ../pan/gui/post-ui.cc:2592 msgid "Size (KB)" msgstr "Tamanho (KB)" #: ../pan/gui/post-ui.cc:2690 msgid "The current filename" msgstr "O atual nome de ficheiro" #: ../pan/gui/post-ui.cc:2694 msgid "Subject Line" msgstr "Linha de assunto" #: ../pan/gui/post-ui.cc:2702 msgid "The current subject line" msgstr "A atual linha de assunto" #: ../pan/gui/post-ui.cc:2716 msgid "No. " msgstr "Nº." #: ../pan/gui/post-ui.cc:2720 msgid "Enable/Disable" msgstr "Ativar/Desativar" #: ../pan/gui/post-ui.cc:2754 msgid "Follo_wup-To" msgstr "_DarSeguimento-Para" #. i18n: "poster" is a key used by many newsreaders. probably safest to keep this key in english. #: ../pan/gui/post-ui.cc:2763 msgid "" "The newsgroups where replies to your message should go. This is only needed " "if it differs from the \"Newsgroups\" header.\n" "\n" "To direct all replies to your email address, use \"Followup-To: poster\"" msgstr "" "Os grupos de notícias para onde as respostas à sua mensagem deverão ir. Só " "é necessário se diferir do cabeçalho \"Grupos\".\n" "\n" "Para redirecionar todas as respostas para o seu endereço de email, utilize " "\"DarSeguimento-Para: autor\"" #: ../pan/gui/post-ui.cc:2770 msgid "_Reply-To" msgstr "_Responder-A:" #: ../pan/gui/post-ui.cc:2778 #| msgid "" #| "The email account where mail replies to your posted message should go. " #| "This is only needed if it differs from the \"From\" header." msgid "" "The email account where mail replies to your posted message should go. This " "is only needed if it differs from the \"From\" header." msgstr "" "A conta de email para onde deverão ir as respostas por email às suas " "mensagens. Só é necessário se diferir do cabeçalho \"De\"." #: ../pan/gui/post-ui.cc:2785 msgid "_Custom Headers" msgstr "_Cabeçalhos personalizados" #: ../pan/gui/post-ui.cc:2809 msgid "Add \"_User-Agent\" header" msgstr "Adicionar cabeçalho \"_Utilizador-Agente\"" #: ../pan/gui/post-ui.cc:2816 msgid "Add \"Message-_ID\" header" msgstr "Adicionar cabeçalho \"_ID-Mensagem\"" #: ../pan/gui/post-ui.cc:2947 msgid "Select Parts" msgstr "Selecionar partes" #: ../pan/gui/post-ui.cc:2960 msgid "_Parts" msgstr "_Partes" #: ../pan/gui/post-ui.cc:3114 msgid "Post Article" msgstr "Publicar artigo" #: ../pan/gui/post-ui.cc:3135 msgid "_Message" msgstr "_Mensagem" #: ../pan/gui/post-ui.cc:3136 msgid "More _Headers" msgstr "Mais cabeçal_Hos" #: ../pan/gui/post-ui.cc:3137 msgid "File _Queue" msgstr "_Fila de ficheiros" #: ../pan/gui/post-ui.cc:3169 ../pan/gui/profiles-dialog.cc:481 #, no-c-format msgid "On %d, %n wrote:" msgstr "Em %d, %n escreveu:" #: ../pan/gui/post-ui.cc:3198 msgid "Add files to queue" msgstr "Adicionar ficheiros à fila" #: ../pan/gui/post-ui.cc:3274 msgid "Save Upload Queue as NZB File" msgstr "Gravar fila de envio como ficheiro NZB" #: ../pan/gui/prefs.cc:364 #, c-format msgid "Couldn't parse %s color \"%s\"" msgstr "Impossível processar a cor %s \"%s\"" #: ../pan/gui/prefs-ui.cc:123 msgid "Grab Key" msgstr "Capturar teclas" #: ../pan/gui/prefs-ui.cc:129 #, c-format msgid "" "Press the combination of the keys\n" "you want to use for \"%s\"." msgstr "" "Prima a combinação de teclas\n" "que quer usar para \"%s\"." #: ../pan/gui/prefs-ui.cc:169 msgid "Edit Shortcut" msgstr "Editar atalho" #: ../pan/gui/prefs-ui.cc:231 msgid "Error: Shortcut key is invalid!" msgstr "Erro: tecla de atalho inválida!" #: ../pan/gui/prefs-ui.cc:247 msgid "Error: Shortcut key already exists!" msgstr "Erro: tecla de atalho já existe!" #: ../pan/gui/prefs-ui.cc:561 msgid "Show only icons" msgstr "Mostrar só ícones" #: ../pan/gui/prefs-ui.cc:562 msgid "Show only text" msgstr "Mostrar só texto" #: ../pan/gui/prefs-ui.cc:563 msgid "Show icons and text" msgstr "Mostrar ícones e texto" #: ../pan/gui/prefs-ui.cc:602 msgid "Use GNOME Preferences" msgstr "Usar preferências do GNOME" #: ../pan/gui/prefs-ui.cc:603 msgid "Use KDE Preferences" msgstr "Usar preferências do KDE" #: ../pan/gui/prefs-ui.cc:604 msgid "Use OS X Preferences" msgstr "Usar preferências do OS X" #: ../pan/gui/prefs-ui.cc:605 msgid "Use Windows Preferences" msgstr "Usar preferências do Windows" #: ../pan/gui/prefs-ui.cc:606 msgid "Custom Command:" msgstr "Comando personalizado:" #: ../pan/gui/prefs-ui.cc:658 msgid "Disabled" msgstr "Desativado" #: ../pan/gui/prefs-ui.cc:659 msgid "Only new (score == 0)" msgstr "Só novo (pontuação == 0)" #: ../pan/gui/prefs-ui.cc:660 msgid "9999 or more" msgstr "9999 ou mais" #: ../pan/gui/prefs-ui.cc:661 msgid "5000 to 9998" msgstr "5000 a 9998" #: ../pan/gui/prefs-ui.cc:662 msgid "1 to 4999" msgstr "1 a 4999" #: ../pan/gui/prefs-ui.cc:663 msgid "-9998 to -1" msgstr "-9998 a -1" #: ../pan/gui/prefs-ui.cc:664 msgid "-9999 or less" msgstr "-9999 ou menos" #: ../pan/gui/prefs-ui.cc:728 #, c-format msgid "Select default global character set. Current setting: %s." msgstr "" "Selecionar conjunto de caracteres global predefinido. Definição " "atual: %s." #: ../pan/gui/prefs-ui.cc:760 msgid "Global Character Set Settings" msgstr "Definições globais de conjunto de caracteres" #: ../pan/gui/prefs-ui.cc:854 ../pan/gui/task-pane.cc:1076 msgid "State" msgstr "Estado" #: ../pan/gui/prefs-ui.cc:888 msgid "Enabled" msgstr "Ativo" #: ../pan/gui/prefs-ui.cc:892 msgid "Column Name" msgstr "Nome da coluna" #: ../pan/gui/prefs-ui.cc:930 msgid "Pan: Preferences" msgstr "Pan: preferências" #: ../pan/gui/prefs-ui.cc:945 msgid "Mouse" msgstr "Rato" #: ../pan/gui/prefs-ui.cc:947 msgid "Single-click activates, rather than selects, _groups" msgstr "Clique único ativa os _Grupos, em vez de os selecionar" #: ../pan/gui/prefs-ui.cc:949 msgid "Single-click activates, rather than selects, _articles" msgstr "Clique único ativa os _Artigos, em vez de os selecionar" #: ../pan/gui/prefs-ui.cc:952 msgid "Groups" msgstr "Grupos" #: ../pan/gui/prefs-ui.cc:954 msgid "Get new headers in subscribed groups on _startup" msgstr "Obter novos cabeçalhos nos grupos subscritos ao _Iniciar" #: ../pan/gui/prefs-ui.cc:956 msgid "Get new headers when _entering group" msgstr "Obter os novos cabeçalhos ao _Entrar num grupo" #: ../pan/gui/prefs-ui.cc:958 msgid "Mark entire group _read when leaving group" msgstr "Marcar todo o grupo como _Lido ao sair de um grupo" #: ../pan/gui/prefs-ui.cc:960 msgid "Mark entire group read before getting _new headers" msgstr "Marcar todo o grupo como lido antes de obter _Novos cabeçalhos" #: ../pan/gui/prefs-ui.cc:962 msgid "E_xpand all threads when entering group" msgstr "E_Xpandir todos os temas ao entrar num grupo" #: ../pan/gui/prefs-ui.cc:967 msgid "Articles" msgstr "Artigos" #: ../pan/gui/prefs-ui.cc:969 #| msgid "Mark Article as _Unread" msgid "Mark downloaded articles read" msgstr "Marcar artigos transferidos como lidos" #: ../pan/gui/prefs-ui.cc:971 msgid "Space selects next article rather than next unread" msgstr "Espaço seleciona o artigo seguinte em vez do seguinte por ler" #: ../pan/gui/prefs-ui.cc:973 msgid "Expand threads upon selection" msgstr "Expandir temas ao selecionar" #: ../pan/gui/prefs-ui.cc:975 msgid "Always ask before deleting an article" msgstr "Perguntar sempre antes de eliminar um artigo" #: ../pan/gui/prefs-ui.cc:977 msgid "Smooth scrolling" msgstr "Rolamento suave" #: ../pan/gui/prefs-ui.cc:982 msgid "Article Cache" msgstr "Cache de artigos" #: ../pan/gui/prefs-ui.cc:983 msgid "Clear article cache on shutdown" msgstr "Limpar a cache de artigos ao encerrar" #: ../pan/gui/prefs-ui.cc:986 msgid "Size of article cache (in MiB):" msgstr "Tamanho da cache de artigos (em MiB):" #: ../pan/gui/prefs-ui.cc:991 msgid "File extension for cached articles: " msgstr "Extensão de ficheiro para artigos em cache:" #: ../pan/gui/prefs-ui.cc:996 msgid "Tabs" msgstr "Separadores" #: ../pan/gui/prefs-ui.cc:1001 msgid "_Behavior" msgstr "_Comportamento" #: ../pan/gui/prefs-ui.cc:1001 msgid "Behavior" msgstr "Comportamento" #: ../pan/gui/prefs-ui.cc:1007 #| msgid "_Task Manager" msgid "Task Pane" msgstr "Painel de tarefas" #: ../pan/gui/prefs-ui.cc:1008 msgid "Show Task Pane info popups" msgstr "Mostrar balões informativos no painel de tarefas" #: ../pan/gui/prefs-ui.cc:1010 msgid "Show Download Meter" msgstr "Mostrar medidor de transferências" #: ../pan/gui/prefs-ui.cc:1014 #| msgid "_Body Pane" msgid "_Panes" msgstr "_Painéis" #: ../pan/gui/prefs-ui.cc:1014 #| msgid "Japanese" msgid "Panes" msgstr "Painéis" #: ../pan/gui/prefs-ui.cc:1020 msgid "Language Settings" msgstr "Definições de idioma" #. systray and notify popup #: ../pan/gui/prefs-ui.cc:1029 msgid "System Tray Behavior" msgstr "Comportamento da bandeja de sistema" #: ../pan/gui/prefs-ui.cc:1031 msgid "Minimize to tray" msgstr "Minimizar para a bandeja" #: ../pan/gui/prefs-ui.cc:1033 msgid "Start Pan minimized" msgstr "Iniciar o Pan minimizado" #: ../pan/gui/prefs-ui.cc:1036 msgid "Show notifications" msgstr "Mostrar notificações" #. allow multiple instances (seperate, not communicating with dbus) #: ../pan/gui/prefs-ui.cc:1041 msgid "Startup Behavior" msgstr "Comportamento de arranque" #: ../pan/gui/prefs-ui.cc:1043 msgid "Allow multiple instances of Pan" msgstr "Permitir múltiplas instâncias do Pan" #: ../pan/gui/prefs-ui.cc:1048 msgid "Autosave Article Draft" msgstr "Gravar automaticamente o rascunho do artigo" #: ../pan/gui/prefs-ui.cc:1050 msgid "Minutes to autosave the current Article Draft: " msgstr "Minutos para gravação automática do rascunho: " #: ../pan/gui/prefs-ui.cc:1055 msgid "Autosave Articles" msgstr "Gravar artigos automaticamente" #: ../pan/gui/prefs-ui.cc:1057 msgid "Minutes to autosave newsrc files: " msgstr "Minutos para gravação automática de ficheiros newsrc: " #: ../pan/gui/prefs-ui.cc:1064 msgid "GNOME Keyring" msgstr "Chaveiro GNOME" #: ../pan/gui/prefs-ui.cc:1065 msgid "Store passwords in GNOME Keyring" msgstr "Armazenar senhas no chaveiro GNOME" #: ../pan/gui/prefs-ui.cc:1069 msgid "_Miscellaneous" msgstr "_Vários" #: ../pan/gui/prefs-ui.cc:1069 msgid "Miscellaneous" msgstr "Vários" #: ../pan/gui/prefs-ui.cc:1074 msgid "Pane Layout" msgstr "Disposição do painel" #: ../pan/gui/prefs-ui.cc:1093 msgid "1=Groups, 2=Headers, 3=Body" msgstr "1=Grupos, 2=Cabeçalhos, 3=Corpo" #: ../pan/gui/prefs-ui.cc:1095 msgid "1=Groups, 2=Body, 3=Headers" msgstr "1=Grupos, 2=Corpo, 3=Cabeçalhos" #: ../pan/gui/prefs-ui.cc:1097 msgid "1=Headers, 2=Groups, 3=Body" msgstr "1=Cabeçalhos, 2=Grupos, 3=Corpo" #: ../pan/gui/prefs-ui.cc:1099 msgid "1=Headers, 2=Body, 3=Groups" msgstr "1=Cabeçalhos, 2=Corpo, 3=Grupos" #: ../pan/gui/prefs-ui.cc:1101 msgid "1=Body, 2=Groups, 3=Headers" msgstr "1=Corpo, 2=Grupos, 3=Cabeçalhos" #: ../pan/gui/prefs-ui.cc:1103 msgid "1=Body, 2=Headers, 3=Groups" msgstr "1=Corpo, 2=Cabeçalhos, 3=Grupos" #: ../pan/gui/prefs-ui.cc:1107 msgid "Layout" msgstr "Disposição" #: ../pan/gui/prefs-ui.cc:1112 msgid "Header Pane Columns" msgstr "Colunas do painel de cabeçalhos" #: ../pan/gui/prefs-ui.cc:1116 msgid "_Headers" msgstr "Cabeçal_Hos" #: ../pan/gui/prefs-ui.cc:1116 msgid "Headers" msgstr "Cabeçalhos" #: ../pan/gui/prefs-ui.cc:1122 msgid "" "This menu lets you configure Pan to take certain actions on your behalf " "automatically, based on an article's score." msgstr "" "Este menu permite configurar o Pan para efetuar certas ações por si de forma " "automática, baseado na pontuação do artigo." #: ../pan/gui/prefs-ui.cc:1127 #| msgid "Mark Article as _Unread" msgid "Mark affected articles read" msgstr "Marcar artigos afetados como lidos" #: ../pan/gui/prefs-ui.cc:1136 #| msgid "set the article's score to" msgid "_Delete articles scoring at: " msgstr "_Eliminar artigos com a pontuação: " #: ../pan/gui/prefs-ui.cc:1142 #| msgid "Mark Article as _Unread" msgid "Mark articles read scoring at: " msgstr "Marcar artigos como lidos com a pontuação: " #: ../pan/gui/prefs-ui.cc:1148 #| msgid "set the article's score to" msgid "_Cache articles scoring at: " msgstr "_Pôr em cache artigos com a pontuação: " #: ../pan/gui/prefs-ui.cc:1154 msgid "Download attachments of articles scoring at: " msgstr "Transferir anexos de artigos com a pontuação: " #: ../pan/gui/prefs-ui.cc:1157 msgid "Actions" msgstr "Ações" #: ../pan/gui/prefs-ui.cc:1162 ../pan/gui/prefs-ui.cc:1183 msgid "Fonts" msgstr "Letras" #: ../pan/gui/prefs-ui.cc:1164 msgid "Use custom font in Group Pane:" msgstr "Usar letra personalizada no painel de grupo:" #: ../pan/gui/prefs-ui.cc:1169 msgid "Use custom font in Header Pane:" msgstr "Usar letra personalizada no painel de cabeçalhos:" #: ../pan/gui/prefs-ui.cc:1174 msgid "Use custom font in Body Pane:" msgstr "Usar letra personalizada no painel de corpo:" #: ../pan/gui/prefs-ui.cc:1179 msgid "Monospace font:" msgstr "Fonte monoespaçada:" #: ../pan/gui/prefs-ui.cc:1183 msgid "_Fonts" msgstr "_Letras" #: ../pan/gui/prefs-ui.cc:1192 msgid "Header Pane" msgstr "Painel de cabeçalhos" #: ../pan/gui/prefs-ui.cc:1195 ../pan/gui/prefs-ui.cc:1201 #: ../pan/gui/prefs-ui.cc:1207 ../pan/gui/prefs-ui.cc:1213 #: ../pan/gui/prefs-ui.cc:1219 ../pan/gui/prefs-ui.cc:1225 #: ../pan/gui/prefs-ui.cc:1234 ../pan/gui/prefs-ui.cc:1240 #: ../pan/gui/prefs-ui.cc:1246 ../pan/gui/prefs-ui.cc:1252 #: ../pan/gui/prefs-ui.cc:1258 ../pan/gui/prefs-ui.cc:1268 #: ../pan/gui/prefs-ui.cc:1278 msgid "Text:" msgstr "Texto:" #: ../pan/gui/prefs-ui.cc:1197 ../pan/gui/prefs-ui.cc:1203 #: ../pan/gui/prefs-ui.cc:1209 ../pan/gui/prefs-ui.cc:1215 #: ../pan/gui/prefs-ui.cc:1221 ../pan/gui/prefs-ui.cc:1227 #: ../pan/gui/prefs-ui.cc:1236 ../pan/gui/prefs-ui.cc:1242 #: ../pan/gui/prefs-ui.cc:1248 ../pan/gui/prefs-ui.cc:1254 #: ../pan/gui/prefs-ui.cc:1260 ../pan/gui/prefs-ui.cc:1270 #: ../pan/gui/prefs-ui.cc:1280 msgid "Background:" msgstr "Fundo:" #: ../pan/gui/prefs-ui.cc:1199 msgid "Scores of 9999 or more:" msgstr "Pontuação de 9999 ou superior:" #: ../pan/gui/prefs-ui.cc:1205 msgid "Scores from 5000 to 9998:" msgstr "Pontuação entre 5000 e 9998:" #: ../pan/gui/prefs-ui.cc:1211 msgid "Scores from 1 to 4999:" msgstr "Pontuação entre 1 e 4999:" #: ../pan/gui/prefs-ui.cc:1217 msgid "Scores from -9998 to -1:" msgstr "Pontuação entre -9998 e -1:" #: ../pan/gui/prefs-ui.cc:1223 msgid "Scores of -9999 or less:" msgstr "Pontuação de -9999 ou inferior:" #: ../pan/gui/prefs-ui.cc:1229 msgid "Collapsed thread with unread articles:" msgstr "Tema colapsado com artigos não lidos:" #: ../pan/gui/prefs-ui.cc:1231 msgid "Body Pane" msgstr "Painel de corpo" #: ../pan/gui/prefs-ui.cc:1238 msgid "First level of quoted text:" msgstr "1º nível de texto citado:" #: ../pan/gui/prefs-ui.cc:1244 msgid "Second level of quoted text:" msgstr "2º nível de texto citado:" #: ../pan/gui/prefs-ui.cc:1250 msgid "Third level of quoted text:" msgstr "3º nível de texto citado:" #. #: ../pan/gui/prefs-ui.cc:1256 msgid "URL:" msgstr "URL:" #. #: ../pan/gui/prefs-ui.cc:1262 msgid "Signature:" msgstr "Assinatura:" #: ../pan/gui/prefs-ui.cc:1265 #| msgid "_Group Pane" msgid "Group Pane" msgstr "Painel de grupos" #. #: ../pan/gui/prefs-ui.cc:1272 msgid "Group Color:" msgstr "Cor do grupo:" #: ../pan/gui/prefs-ui.cc:1276 msgid "Other Text" msgstr "Outro texto" #: ../pan/gui/prefs-ui.cc:1282 msgid "Text Color:" msgstr "Cor do texto:" #: ../pan/gui/prefs-ui.cc:1285 msgid "_Colors" msgstr "_Cores" #: ../pan/gui/prefs-ui.cc:1285 msgid "Colors" msgstr "Cores" #: ../pan/gui/prefs-ui.cc:1290 msgid "Preferred Applications" msgstr "Aplicações preferidas" #: ../pan/gui/prefs-ui.cc:1294 msgid "_Web browser:" msgstr "Navegador _Web:" #: ../pan/gui/prefs-ui.cc:1297 msgid "_Mail reader:" msgstr "Leitor de _Correio:" #: ../pan/gui/prefs-ui.cc:1299 msgid "_Text editor:" msgstr "Editor de _Texto:" #: ../pan/gui/prefs-ui.cc:1301 msgid "_HTML previewer:" msgstr "Antevisão de _HTML:" #: ../pan/gui/prefs-ui.cc:1303 msgid "_Applications" msgstr "_Aplicações" #: ../pan/gui/prefs-ui.cc:1303 msgid "Applications" msgstr "Aplicações" #: ../pan/gui/prefs-ui.cc:1308 ../pan/gui/task-pane.cc:552 msgid "Encoding" msgstr "Codificação" #: ../pan/gui/prefs-ui.cc:1312 msgid "Default bytes per file (for encoder): " msgstr "Bytes predefinidos por ficheiro (para codificador): " #: ../pan/gui/prefs-ui.cc:1317 msgid "_Upload" msgstr "_Enviar" #: ../pan/gui/prefs-ui.cc:1317 msgid "Upload" msgstr "Enviar" #: ../pan/gui/prefs-ui.cc:1326 msgid "_Shortcuts" msgstr "_Atalhos" #: ../pan/gui/prefs-ui.cc:1326 msgid "Shortcuts" msgstr "Atalhos" #: ../pan/gui/profiles-dialog.cc:83 msgid "Please choose your email address according to your PGP key's user id." msgstr "" "Por favor, escolha o seu endereço eletrónico de acordo com ID de utilizador " "da sua chave PGP." #: ../pan/gui/profiles-dialog.cc:131 msgid "Posting Profile" msgstr "Perfil de publicação" #: ../pan/gui/profiles-dialog.cc:143 msgid "Profile Information" msgstr "Informação de perfil" #: ../pan/gui/profiles-dialog.cc:147 msgid "_Profile Name:" msgstr "Nome de _Perfil:" #: ../pan/gui/profiles-dialog.cc:150 msgid "Required Information" msgstr "Informação necessária" #: ../pan/gui/profiles-dialog.cc:154 msgid "_Full Name:" msgstr "Nome _Completo:" #: ../pan/gui/profiles-dialog.cc:158 msgid "" "Your email address.\n" "Note that this has to match your PGP signature's address\n" "if you want your messages to be PGP-signed or encrypted correctly." msgstr "" "O seu endereço eletrónico.\n" "Note que isto tem de corresponder ao endereço da sua assinatura PGP\n" "se quiser que as suas mensagens sejam assinadas ou encriptadas corretamente " "como PGP." #: ../pan/gui/profiles-dialog.cc:162 msgid "_Email Address:" msgstr "_Endereço de email:" #: ../pan/gui/profiles-dialog.cc:164 msgid "_Post Articles via:" msgstr "_Publicar artigos via:" #: ../pan/gui/profiles-dialog.cc:167 msgid "Signature" msgstr "Assinatura" #: ../pan/gui/profiles-dialog.cc:170 msgid "_Use a Signature" msgstr "_Usar uma assinatura" #: ../pan/gui/profiles-dialog.cc:174 msgid "Signature File" msgstr "Ficheiro de assinatura" #: ../pan/gui/profiles-dialog.cc:184 msgid "Text File" msgstr "Ficheiro de texto" #: ../pan/gui/profiles-dialog.cc:186 msgid "Text" msgstr "Texto" #: ../pan/gui/profiles-dialog.cc:188 msgid "Command" msgstr "Comando" #: ../pan/gui/profiles-dialog.cc:191 msgid "PGP Signature" msgstr "Assinatura PGP" #: ../pan/gui/profiles-dialog.cc:196 msgid "Signature Type: " msgstr "Tipo de assinatura:" #: ../pan/gui/profiles-dialog.cc:226 msgid "X-Face (Avatar)" msgstr "X-Face (Avatar)" #: ../pan/gui/profiles-dialog.cc:229 msgid "" "You can add an avatar icon to your articles with a unique X-Face code.\n" "Add the code without the trailing \"X-Face:\" \n" " if it was generated by a helper program (for example http://www.dairiki.org/" "xface/xface.php)." msgstr "" "Pode adicionar um avatar aos seus artigos com um código único X-Face.\n" "Adicione o código sem a parte final \"X-Face:\" \n" "se foi gerado por um programa auxiliar (por exemplo http://www.dairiki.org/" "xface/xface.php)." #: ../pan/gui/profiles-dialog.cc:232 msgid "_X-Face:" msgstr "_X-Face:" #: ../pan/gui/profiles-dialog.cc:234 msgid "Optional Information" msgstr "Informação opcional" #: ../pan/gui/profiles-dialog.cc:239 msgid "" "When posting to Usenet, your article's Message-ID contains a domain name.\n" "You can set a custom domain name here, or leave it blank to let Pan use the " "domain name from your email address." msgstr "" "Ao afixar artigos na Usenet, a ID-Mensagem do seu artigo contém um nome de " "domínio.\n" "Pode definir aqui um nome de domínio personalizado ou deixá-lo em branco " "para que o Pan utilize o nome de domínio do seu endereço de email." #: ../pan/gui/profiles-dialog.cc:242 msgid "Message-ID _Domain Name:" msgstr "Nome de _Domínio da ID-Mensagem:" #: ../pan/gui/profiles-dialog.cc:246 #, c-format msgid "" "%i for Message-ID\n" "%a for Author and Address\n" "%n for Author name\n" "%d for Date" msgstr "" "%i para ID-Mensagem\n" "%a para autor e endereço\n" "%n para nome do autor\n" "%d para data" #: ../pan/gui/profiles-dialog.cc:247 msgid "_Attribution:" msgstr "_Atribuição:" #: ../pan/gui/profiles-dialog.cc:271 msgid "" "Extra headers to be included in your articles, such as\n" "Reply-To: \"Your Name\"\n" "Organization: Your Organization\n" msgstr "" "Cabeçalhos adicionais a serem incluídos nos seus artigos, tais como\n" "Responder-A: \"O seu nome\" \n" "Organização: A sua organização\n" #: ../pan/gui/profiles-dialog.cc:281 msgid "E_xtra Headers:" msgstr "Cabeçalhos e_Xtra:" #: ../pan/gui/profiles-dialog.cc:326 msgid "Invalid email address." msgstr "Endereço de email inválido." #: ../pan/gui/profiles-dialog.cc:327 msgid "Please use an address of the form joe@somewhere.org" msgstr "Por favor, use um endereço no formato jose@algures.pt" #: ../pan/gui/profiles-dialog.cc:482 msgid "New Profile" msgstr "Novo perfil" #: ../pan/gui/profiles-dialog.cc:528 msgid "Posting Profiles" msgstr "Perfis de publicação" #: ../pan/gui/profiles-dialog.cc:544 msgid "Profiles" msgstr "Perfis" #: ../pan/gui/save-attach-ui.cc:46 #, c-format msgid "" "%g - group as one directory (alt.binaries.pictures.trains)\n" "%G - group as nested directory (/alt/binaries/pictures/trains)\n" "%s - Subject line excerpt\n" "%S - Subject line\n" "%n - Poster display name\n" "%e - Poster email address\n" "%d - Article timestamp\n" "\"/home/user/News/Pan/%g\" becomes\n" "\"/home/user/News/Pan/alt.binaries.pictures.trains\", and\n" "\"/home/user/News/Pan/%G\" becomes\n" "\"/home/user/News/Pan/alt/binaries/pictures/trains\"," msgstr "" "%g - agrupar como uma pasta (alt.binaries.pitures.trains)\n" "%G - agrupar como pasta encadeada (/alt/binaries/pitures/trains)\n" "%s - excerto da linha de assunto\n" "%S - linha de assunto\n" "%n - nome mostrado do autor\n" "%e - email do autor\n" "%d - carimbo do artigo\n" "\"/home/user/News/Pan/%g\" torna-se em\n" "\"/home/user/News/Pan/alt.binaries.pitures.trains\", e\n" "\"/home/user/News/Pan/%G\" torna-se em\n" "\"/home/user/News/Pan/alt/binaries/pitures/trains\"," #: ../pan/gui/save-attach-ui.cc:197 ../pan/gui/save-ui.cc:217 msgid "Add to the queue sorted by date posted" msgstr "Adicionar à fila ordenado por data de publicação" #: ../pan/gui/save-attach-ui.cc:198 ../pan/gui/save-ui.cc:218 msgid "Add to the front of the queue" msgstr "Adicionar ao início da fila" #: ../pan/gui/save-attach-ui.cc:199 ../pan/gui/save-ui.cc:219 msgid "Add to the back of the queue" msgstr "Adicionar ao final da fila" #: ../pan/gui/save-attach-ui.cc:231 msgid "Pan: Save Attachments" msgstr "Pan: gravar anexos" #: ../pan/gui/save-attach-ui.cc:256 ../pan/gui/save-attach-ui.cc:274 #: ../pan/gui/save-ui.cc:271 ../pan/gui/save-ui.cc:289 msgid "_Location:" msgstr "_Localização:" #: ../pan/gui/save-attach-ui.cc:260 ../pan/gui/save-ui.cc:275 msgid "Save Articles" msgstr "Gravar artigos" #: ../pan/gui/save-attach-ui.cc:277 ../pan/gui/save-ui.cc:292 #, c-format msgid "_Group's path: %s" msgstr "_Caminho do grupo: %s" #: ../pan/gui/save-attach-ui.cc:288 ../pan/gui/save-ui.cc:307 msgid "_Priority:" msgstr "_Prioridade:" #: ../pan/gui/save-ui.cc:46 #, c-format msgid "" "%g - group as one directory (alt.binaries.pictures.trains)\n" "%G - group as nested directory (/alt/binaries/pictures/trains)\n" "%s - subject line excerpt\n" "%S - subject line\n" "%n - Poster display name\n" "%e - Poster email address\n" "%d - Article timestamp\n" " \n" "\"/home/user/News/Pan/%g\" becomes\n" "\"/home/user/News/Pan/alt.binaries.pictures.trains\", and\n" "\"/home/user/News/Pan/%G\" becomes\n" "\"/home/user/News/Pan/alt/binaries/pictures/trains\"," msgstr "" "%g - agrupar como uma pasta (alt.binaries.pitures.trains)\n" "%G - agrupar como pasta encadeada (/alt/binaries/pitures/trains)\n" "%s - excerto da linha de assunto\n" "%S - linha de assunto\n" "%n - nome mostrado do autor\n" "%e - email do autor\n" "%d - carimbo do artigo\n" "\"/home/user/News/Pan/%g\" torna-se em\n" "\"/home/user/News/Pan/alt.binaries.pitures.trains\", e\n" "\"/home/user/News/Pan/%G\" torna-se em\n" "\"/home/user/News/Pan/alt/binaries/pitures/trains\"," #: ../pan/gui/save-ui.cc:208 msgid "Save attachments" msgstr "Gravar anexos" #: ../pan/gui/save-ui.cc:209 msgid "Save text" msgstr "Gravar texto" #: ../pan/gui/save-ui.cc:210 msgid "Save attachments and text" msgstr "Gravar anexos e texto" #: ../pan/gui/save-ui.cc:246 msgid "Pan: Save Articles" msgstr "Pan: gravar artigos" #: ../pan/gui/save-ui.cc:303 msgid "_Action:" msgstr "_Ação:" #: ../pan/gui/score-add-ui.cc:89 msgid "is more than" msgstr "é mais que" #: ../pan/gui/score-add-ui.cc:90 msgid "is at most" msgstr "é no máximo" #: ../pan/gui/score-add-ui.cc:112 msgid "increase the article's score by" msgstr "aumentar a pontuação do artigo por" #: ../pan/gui/score-add-ui.cc:113 msgid "decrease the article's score by" msgstr "reduzir a pontuação do artigo por" #: ../pan/gui/score-add-ui.cc:114 msgid "set the article's score to" msgstr "definir a pontuação do artigo em" #: ../pan/gui/score-add-ui.cc:115 msgid "watch the article (set its score to 9999)" msgstr "acompanhar o artigo (define a pontuação como 9999)" #: ../pan/gui/score-add-ui.cc:116 msgid "ignore the article (set its score to -9999)" msgstr "ignorar o artigo (define a pontuação como -9999)" #: ../pan/gui/score-add-ui.cc:141 msgid "References" msgstr "Referências" #: ../pan/gui/score-add-ui.cc:142 msgid "Line Count" msgstr "Número de linhas" #: ../pan/gui/score-add-ui.cc:143 msgid "Byte Count" msgstr "Número de Bytes" #: ../pan/gui/score-add-ui.cc:144 msgid "Crosspost Group Count" msgstr "Número de publicações cruzadas" #: ../pan/gui/score-add-ui.cc:145 msgid "Age (in days)" msgstr "Idade (em dias)" #: ../pan/gui/score-add-ui.cc:167 msgid "for the next month" msgstr "para o próximo mês" #: ../pan/gui/score-add-ui.cc:168 msgid "for the next six months" msgstr "para os próximos seis meses" #: ../pan/gui/score-add-ui.cc:169 msgid "forever" msgstr "para sempre" #: ../pan/gui/score-add-ui.cc:194 msgid "contains" msgstr "contém" #: ../pan/gui/score-add-ui.cc:195 msgid "doesn't contain" msgstr "não contém" #: ../pan/gui/score-add-ui.cc:196 msgid "is" msgstr "é" #: ../pan/gui/score-add-ui.cc:197 msgid "isn't" msgstr "não é" #: ../pan/gui/score-add-ui.cc:198 msgid "starts with" msgstr "começa por" #: ../pan/gui/score-add-ui.cc:199 msgid "ends with" msgstr "termina em" #: ../pan/gui/score-add-ui.cc:200 msgid "matches regex" msgstr "cumpre a expresão regular" #: ../pan/gui/score-add-ui.cc:481 msgid "Another rule already sets this article's score." msgstr "Outra regra já define a pontuação deste artigo." #: ../pan/gui/score-add-ui.cc:482 msgid "You may want to go back or delete the old rule." msgstr "Poderá desejar recuar ou eliminar a regra antiga." #: ../pan/gui/score-add-ui.cc:553 msgid "Add and Re_score" msgstr "Adicionar e _Voltar a pontuar" #: ../pan/gui/score-add-ui.cc:604 ../pan/gui/score-add-ui.cc:624 msgid "New Scoring Rule" msgstr "Nova regra de pontuação" #: ../pan/gui/score-add-ui.cc:635 #| msgid "_Group Pane" msgid "Group name" msgstr "Nome do grupo" # 48x48/emblems/emblem-plan.icon.in.h:1 # 48x48/emblems/emblem-plan.icon.in.h:1 #: ../pan/gui/score-add-ui.cc:642 #| msgid "Pan" msgid "and" msgstr "e" #: ../pan/gui/score-view-ui.cc:56 msgid "Close and Re_score" msgstr "Fechar e _Voltar a pontuar" #: ../pan/gui/score-view-ui.cc:154 #, c-format msgid "File %s, Lines %d - %d" msgstr "Ficheiro %s, linha %d - %d" #: ../pan/gui/score-view-ui.cc:182 msgid "Pan: Article's Scores" msgstr "Pan: pontuações dos artigos" #: ../pan/gui/score-view-ui.cc:208 msgid "Add" msgstr "Adicionar" #: ../pan/gui/score-view-ui.cc:213 msgid "New Score" msgstr "Nova pontuação" #: ../pan/gui/score-view-ui.cc:218 msgid "Criteria" msgstr "Critério" #: ../pan/gui/score-view-ui.cc:241 msgid "Add a New Scoring Rule" msgstr "Adicionar nova regra de pontuação" #: ../pan/gui/score-view-ui.cc:248 msgid "Remove the Selected Scoring Rule" msgstr "Remover regra de pontuação selecionada" #: ../pan/gui/server-ui.cc:259 msgid "Please specify the server's address." msgstr "Especifique o endereço do servidor." #: ../pan/gui/server-ui.cc:305 msgid "Import SSL Certificate (PEM Format) From File" msgstr "Importar certificado SSL (formato PEM) de ficheiro" #. create the dialog #: ../pan/gui/server-ui.cc:342 ../pan/gui/server-ui.cc:948 msgid "Add a Server" msgstr "Adicionar um servidor" #: ../pan/gui/server-ui.cc:342 ../pan/gui/server-ui.cc:954 msgid "Edit a Server's Settings" msgstr "Editar as definições de um servidor" #: ../pan/gui/server-ui.cc:362 msgid "Location" msgstr "Localização" #: ../pan/gui/server-ui.cc:366 msgid "The news server's actual address, e.g. \"news.mynewsserver.com\"" msgstr "" "O endereço real do servidor de notícias, por ex. \"noticias." "meuservidordenoticias.pt\"" #: ../pan/gui/server-ui.cc:367 msgid "_Address:" msgstr "_Endereço:" #: ../pan/gui/server-ui.cc:372 #| msgid "The news server's port number. Typically 119." msgid "" "The news server's port number. Typically 119 for unencrypted and 563 for " "encrypted connections (SSL/TLS)." msgstr "" "O número de porta do servidor de notícias. Normalmente 119 para ligações não " "encriptadas e 563 para encriptadas (SSL/TLS)." #: ../pan/gui/server-ui.cc:373 msgid "Por_t:" msgstr "Por_ta:" #: ../pan/gui/server-ui.cc:376 msgid "Login (if Required)" msgstr "Iniciar sessão (se necessário)" #: ../pan/gui/server-ui.cc:380 msgid "_Username:" msgstr "_Utilizador:" #: ../pan/gui/server-ui.cc:381 msgid "" "The username to give the server when asked. If your server doesn't require " "authentication, you can leave this blank." msgstr "" "O utilizador a indicar ao servidor quando pedido. Se o seu servidor não " "requerer autenticação, pode deixar em branco." #: ../pan/gui/server-ui.cc:385 msgid "_Password:" msgstr "_Senha:" #: ../pan/gui/server-ui.cc:386 msgid "" "The password to give the server when asked. If your server doesn't require " "authentication, you can leave this blank." msgstr "" "A senha a indicar ao servidor quando pedido. Se o seu servidor não requerer " "autenticação, pode deixar em branco." #: ../pan/gui/server-ui.cc:389 msgid "Settings" msgstr "Definições" #: ../pan/gui/server-ui.cc:396 msgid "Connection _Limit:" msgstr "_Limite de ligação:" #: ../pan/gui/server-ui.cc:400 msgid "After Two Weeks" msgstr "Após duas semanas" #: ../pan/gui/server-ui.cc:401 msgid "After One Month" msgstr "Após um mês" #: ../pan/gui/server-ui.cc:402 msgid "After Two Months" msgstr "Após dois meses" #: ../pan/gui/server-ui.cc:403 msgid "After Three Months" msgstr "Após três meses" #: ../pan/gui/server-ui.cc:404 msgid "After Six Months" msgstr "Após seis meses" #: ../pan/gui/server-ui.cc:405 msgid "Never Expire Old Articles" msgstr "Nunca expirar artigos antigos" #: ../pan/gui/server-ui.cc:419 msgid "E_xpire Old Articles:" msgstr "E_Xpirar artigos antigos:" #: ../pan/gui/server-ui.cc:423 msgid "Primary" msgstr "Primário" #: ../pan/gui/server-ui.cc:424 msgid "Fallback" msgstr "De recurso" #: ../pan/gui/server-ui.cc:438 msgid "Server Rank:" msgstr "Nível do servidor:" #: ../pan/gui/server-ui.cc:442 msgid "" "Fallback servers are used for articles that can't be found on the " "primaries. One common approach is to use free servers as primaries and " "subscription servers as fallbacks." msgstr "" "Servidores de recurso são usados para artigos que não são encontrados nos " "primários. Uma metodologia comum é usar servidores gratuitos como primários " "e servidores por subscrição como recurso." #: ../pan/gui/server-ui.cc:447 msgid "Disable Compression (N/A)" msgstr "Desativar compressão (N/A)" #: ../pan/gui/server-ui.cc:448 msgid "XZVER Compression (Astraweb)" msgstr "Compressão XZVER (Astraweb)" #: ../pan/gui/server-ui.cc:449 msgid "GZIP Compression (Giganews etc.)" msgstr "Compressão GZIP (Giganews etc.)" #: ../pan/gui/server-ui.cc:463 msgid "Header Compression:" msgstr "Compressão de cabeçalho:" #: ../pan/gui/server-ui.cc:469 msgid "Security" msgstr "Segurança" #: ../pan/gui/server-ui.cc:474 msgid "Use Unsecure (Plaintext) Connections" msgstr "Usar ligações não seguras (Plaintext)" #: ../pan/gui/server-ui.cc:475 msgid "Use Secure SSL Connections" msgstr "Usar ligações SSL seguras" #: ../pan/gui/server-ui.cc:490 msgid "TLS (SSL) Settings:" msgstr "Definições TLS (SSL):" #: ../pan/gui/server-ui.cc:495 msgid "" "You can enable/disable secure SSL/TLS connections here. If you enable SSL/" "TLS, your data is encrypted and secure. It is encouraged to enable SSL/TLS " "for privacy reasons." msgstr "" "Pode ativar desativar ligações seguras SSL/TLS aqui. Se as ativar, os seus " "dados são encriptados e seguros. É aconselhável ativar SSL/TLS por motivos " "de privacidade." #: ../pan/gui/server-ui.cc:500 msgid "Always trust this server's certificate" msgstr "Confiar sempre no certificado deste servidor" #: ../pan/gui/server-ui.cc:676 #, c-format msgid "Really delete \"%s\"?" msgstr "Eliminar realmente \"%s\"?" #: ../pan/gui/server-ui.cc:765 msgid "No information available." msgstr "Sem informação disponível." #: ../pan/gui/server-ui.cc:775 #, c-format msgid "Server Certificate for '%s'" msgstr "Certificado do servidor para \"%s\"" #: ../pan/gui/server-ui.cc:874 #, c-format msgid "Really delete certificate for \"%s\"?" msgstr "Eliminar realmente o certificado para \"%s\"?" #. dialog #: ../pan/gui/server-ui.cc:901 ../pan/gui/server-ui.cc:922 #: ../pan/gui/server-ui.cc:1020 msgid "Servers" msgstr "Servidores" #: ../pan/gui/server-ui.cc:961 msgid "Remove a Server" msgstr "Remover um servidor" #. dialog #: ../pan/gui/server-ui.cc:994 msgid "SSL Certificates" msgstr "Certificados SSL" #: ../pan/gui/server-ui.cc:1015 msgid "Certificates" msgstr "Certificados" #: ../pan/gui/server-ui.cc:1046 msgid "Import Certificate" msgstr "Importar certificado" #: ../pan/gui/server-ui.cc:1052 msgid "Inspect Certificate" msgstr "Inspecionar certificado" #: ../pan/gui/server-ui.cc:1059 msgid "Remove Certificate" msgstr "Remover certificado" #: ../pan/gui/task-pane.cc:121 #, c-format msgid "" "\n" "Upload\n" "\n" "Subject: \"%s\"\n" "From: %s\n" "Groups: %s\n" "Sourcefile: %s\n" msgstr "" "\n" "Enviar\n" "\n" "Assunto: \"%s\"\n" "De: %s\n" "Grupos: %s\n" "Ficheiro origem: %s\n" #: ../pan/gui/task-pane.cc:133 #, c-format msgid "" "\n" "Download\n" "\n" "Subject: \"%s\"\n" "From: %s\n" "Date: %s\n" "Groups: %s\n" "Save Path: %s\n" msgstr "" "\n" "Transferir\n" "\n" "Assunto: \"%s\"\n" "De: %s\n" "Data: %s\n" "Grupos: %s\n" "Caminho de gravação: %s\n" #: ../pan/gui/task-pane.cc:135 msgid "unknown" msgstr "desconhecido" #: ../pan/gui/task-pane.cc:303 msgid "Choose New Destination for Selected Tasks" msgstr "Escolha o novo destino para as tarefas selecionadas" #: ../pan/gui/task-pane.cc:457 #, c-format msgid "Pan: Tasks (%d Queued, %d Running, %d Stopped)" msgstr "Pan: tarefas (%d em fila, %d em execução, %d paradas)" #: ../pan/gui/task-pane.cc:459 #, c-format msgid "Pan: Tasks (%d Queued, %d Running)" msgstr "Pan: tarefas (%d em fila, %d em execução)" #: ../pan/gui/task-pane.cc:461 #, c-format msgid "Pan: Tasks" msgstr "Pan: tarefas" #: ../pan/gui/task-pane.cc:486 #, c-format msgid "%lu selected, %s" msgstr "%lu selecionadas, %s" #: ../pan/gui/task-pane.cc:550 msgid "Running" msgstr "Em execução" #: ../pan/gui/task-pane.cc:551 msgid "Decoding" msgstr "A descodificar" #: ../pan/gui/task-pane.cc:553 msgid "Queued for Decode" msgstr "Em fila para descodificar" #: ../pan/gui/task-pane.cc:554 msgid "Queued for Encode" msgstr "Em fila para codificar" #: ../pan/gui/task-pane.cc:555 msgid "Queued" msgstr "Em fila" #: ../pan/gui/task-pane.cc:556 msgid "Stopped" msgstr "Parada" #: ../pan/gui/task-pane.cc:557 msgid "Removing" msgstr "A remover" #: ../pan/gui/task-pane.cc:586 #, c-format msgid "%d%% Done" msgstr "%d%% terminado" #: ../pan/gui/task-pane.cc:592 #, c-format msgid "%d:%02d:%02d Remaining (%d @ %lu KiB/s)" msgstr "%d:%02d:%02d restante (%d @ %lu KiB/s)" #: ../pan/gui/task-pane.cc:687 ../pan/gui/task-pane.cc:688 msgid "Move To Top" msgstr "Mover para o topo" #: ../pan/gui/task-pane.cc:692 ../pan/gui/task-pane.cc:693 msgid "Move To Bottom" msgstr "Mover para o fundo" #: ../pan/gui/task-pane.cc:697 ../pan/gui/task-pane.cc:698 #| msgid "Show Article Information" msgid "Show Task Information" msgstr "Mostrar informação da tarefa" #: ../pan/gui/task-pane.cc:702 ../pan/gui/task-pane.cc:703 msgid "Stop Task" msgstr "Parar tarefa" #: ../pan/gui/task-pane.cc:707 ../pan/gui/task-pane.cc:708 msgid "Delete Task" msgstr "Eliminar tarefa" #: ../pan/gui/task-pane.cc:712 ../pan/gui/task-pane.cc:713 msgid "Restart Task" msgstr "Reiniciar tarefa" #: ../pan/gui/task-pane.cc:717 ../pan/gui/task-pane.cc:718 msgid "Change Download Destination" msgstr "Alterar destino da trnsferência" #: ../pan/gui/task-pane.cc:1028 msgid "_Online" msgstr "_Online" #: ../pan/gui/task-pane.cc:1045 msgid "Restart Tasks" msgstr "Reiniciar tarefas" #: ../pan/gui/task-pane.cc:1047 msgid "Stop Tasks" msgstr "Parar tarefas" #: ../pan/gui/task-pane.cc:1049 msgid "Delete Tasks" msgstr "Eliminar tarefas" #: ../pan/gui/task-pane.cc:1055 msgid "Show info popups" msgstr "Mostrar balões informativos" #: ../pan/gui/url.cc:123 #, c-format msgid "Error starting URL: %s (Command was: %s)" msgstr "Erro ao iniciar o URL: %s (comando era: %s)" #: ../pan/tasks/decoder.cc:117 #, c-format msgid "Couldn't save file \"%s\": %s" msgstr "Impossível gravar o ficheiro \"%s\": %s" #: ../pan/tasks/decoder.cc:139 ../pan/tasks/encoder.cc:136 msgid "Error initializing uulib" msgstr "Erro ao inicializar a uulib" #: ../pan/tasks/decoder.cc:154 ../pan/tasks/socket-impl-gio.cc:360 #: ../pan/tasks/socket-impl-openssl.cc:642 #, c-format msgid "Error reading from %s: %s" msgstr "Erro ao ler de %s: %s" #: ../pan/tasks/decoder.cc:194 #, c-format msgid "Saved \"%s\"" msgstr "\"%s\" gravada" #: ../pan/tasks/decoder.cc:201 #, c-format msgid "" "Error saving \"%s\":\n" "%s." msgstr "" "Erro ao gravar \"%s\":\n" "%s." #: ../pan/tasks/decoder.cc:314 ../pan/tasks/task-article.cc:354 #, c-format msgid "Decoding %s" msgstr "A descodificar %s" #: ../pan/tasks/encoder.cc:103 ../pan/tasks/encoder.cc:154 #, c-format msgid "Error loading %s from cache." msgstr "Erro ao ler %s da cache." #: ../pan/tasks/encoder.cc:176 #, c-format msgid "Error encoding %s: %s" msgstr "Erro ao codificar %s: %s" #: ../pan/tasks/encoder.cc:266 #, c-format msgid "Encoding %s" msgstr "A codificar %s" #: ../pan/tasks/nntp.cc:148 #, c-format msgid "%s requires a username, but none is set." msgstr "%s requer um utilizador, mas nenhum está definido." #: ../pan/tasks/nntp.cc:161 #, c-format msgid "%s requires a password, but none is set." msgstr "%s requer uma senha, mas nenhuma está definida." #: ../pan/tasks/nntp.cc:239 #, c-format msgid "Sending \"%s\" to %s returned an error: %s" msgstr "Ao enviar \"%s\" para %s foi devolvido um erro: %s" #: ../pan/tasks/nntp.cc:262 #, c-format msgid "Sending \"%s\" to %s returned an unrecognized response: \"%s\"" msgstr "" "Ao enviar \"%s\" para %s foi devolvida uma resposta desconhecida: \"%s\"" #: ../pan/tasks/nntp-pool.cc:235 #, c-format msgid "Unable to connect to \"%s\"" msgstr "Impossível ligar a \"%s\"" #: ../pan/tasks/queue.cc:772 ../pan/tasks/queue.cc:800 #: ../pan/tasks/queue.cc:827 msgid "No space left on device." msgstr "Sem espaço livre no dispositivo." #: ../pan/tasks/socket-impl-gio.cc:173 ../pan/tasks/socket-impl-gio.cc:211 #: ../pan/tasks/socket-impl-openssl.cc:214 #: ../pan/tasks/socket-impl-openssl.cc:252 #, c-format msgid "Error connecting to \"%s\"" msgstr "Erro ao ligar a \"%s\"" #: ../pan/tasks/socket-impl-gio.cc:359 ../pan/tasks/socket-impl-openssl.cc:641 msgid "Unknown Error" msgstr "Erro desconhecido" #: ../pan/tasks/task-article.cc:62 ../pan/tasks/task-article.cc:160 #, c-format msgid "Saving %s" msgstr "A gravar %s" #: ../pan/tasks/task-article.cc:64 #, c-format msgid "Reading %s" msgstr "A ler %s" #: ../pan/tasks/task-article.cc:326 #, c-format msgid "Article \"%s\" is incomplete -- the news server(s) don't have part %s" msgstr "" "O artigo \"%s\" está incompleto -- o(s) servidor(es) de notícias não têm a " "parte %s" #: ../pan/tasks/task-groups.cc:41 #, c-format msgid "Getting group list from \"%s\"" msgstr "A obter a lista de grupos de \"%s\"" #: ../pan/tasks/task-groups.cc:134 #, c-format msgid "Fetched %lu Groups" msgstr "Obtidos %lu grupos" #: ../pan/tasks/task-post.cc:35 #, c-format msgid "Posting \"%s\"" msgstr "A publicar \"%s\"" #: ../pan/tasks/task-post.cc:76 #, c-format msgid "Posting of \"%s\" failed: %s" msgstr "Falha ao publicar \"%s\": %s" #: ../pan/tasks/task-post.cc:81 #, c-format msgid "Posting of \"%s\" successful: %s" msgstr "Sucesso ao publicar \"%s\": %s" #: ../pan/tasks/task-upload.cc:51 #, c-format msgid "Uploading %s" msgstr "A enviar %s" #: ../pan/tasks/task-upload.cc:244 #, c-format msgid "Uploading %s - Part %d of %d" msgstr "A enviar %s - parte %d de %d" #: ../pan/tasks/task-upload.cc:246 #, c-format msgid "Uploading message body with subject \"%s\"" msgstr "A enviar corpo da mensagem com assunto \"%s\"" #: ../pan/tasks/task-upload.cc:303 #, c-format msgid "Posting of file %s (part %d of %d) failed: No posts allowed by server." msgstr "" "Falha ao publicar ficheiro %s (parte %d de %d): o servidor não permite " "publicações." #: ../pan/tasks/task-upload.cc:311 #, c-format msgid "Posting of file %s (part %d of %d) failed: %s" msgstr "Falha ao publicar ficheiro %s (parte %d de %d): %s" #: ../pan/tasks/task-upload.cc:321 ../pan/tasks/task-upload.cc:328 #, c-format msgid "Posting of file %s (part %d of %d) successful: %s" msgstr "Sucesso ao publicar ficheiro %s (parte %d de %d): %s" #: ../pan/tasks/task-upload.cc:338 #, c-format msgid "Posting of file %s successful: %s" msgstr "Sucesso ao publicar ficheiro %s: %s" #: ../pan/tasks/task-upload.cc:342 #, c-format msgid "" "Posting of file %s not completely successful: Check the log (right-click " "list item)." msgstr "" "Sucesso incompleto ao publicar ficheiro %s: veja o diário (clique direito no " "item da lista)." #: ../pan/tasks/task-upload.cc:358 #, c-format msgid "" "Posting of file %s not successful: Check the log (right-click list item)." msgstr "" "Sem sucesso ao publicar ficheiro %s: veja o diário (clique direito no item " "da lista)." #: ../pan/tasks/task-xover.cc:83 #, c-format msgid "Getting all headers for \"%s\"" msgstr "A obter todos os cabeçalhos de \"%s\"" #: ../pan/tasks/task-xover.cc:86 #, c-format msgid "Getting new headers for \"%s\"" msgstr "A obter os novos cabeçalhos de \"%s\"" #. SAMPLE #: ../pan/tasks/task-xover.cc:90 #, c-format msgid "Sampling headers for \"%s\"" msgstr "A preparar amostras de cabeçalhos de \"%s\"" #: ../pan/tasks/task-xover.cc:426 #, c-format msgid "%s (%lu parts, %lu articles)" msgstr "%s (%lu partes, %lu artigos)" #: ../pan/tasks/task-xover.cc:500 #, c-format #| msgid "Getting new headers for \"%s\"" msgid "Getting new headers for \"%s\" done." msgstr "Obteção de novos cabeçalhos de \"%s\" terminada." #: ../pan/tasks/task-xoverinfo.cc:78 #, c-format msgid "Getting header counts for \"%s\"" msgstr "A obter total de cabeçalhos de \"%s\"" #: ../pan/usenet-utils/filter-info.cc:168 msgid "article doesn't have attachments" msgstr "artigo não possui anexos" #: ../pan/usenet-utils/filter-info.cc:172 msgid "the article has attachments" msgstr "o artigo possui anexos" #: ../pan/usenet-utils/filter-info.cc:176 msgid "the article isn't cached locally" msgstr "o artigo não está em cache local" #: ../pan/usenet-utils/filter-info.cc:180 msgid "the article is cached locally" msgstr "o artigo está em cache local" #: ../pan/usenet-utils/filter-info.cc:184 msgid "the article wasn't posted by you" msgstr "o artigo não foi publicado por si" #: ../pan/usenet-utils/filter-info.cc:188 msgid "the article was posted by you" msgstr "o artigo foi publicado por si" #: ../pan/usenet-utils/filter-info.cc:192 msgid "the article has been read" msgstr "o artigo foi lido" #: ../pan/usenet-utils/filter-info.cc:196 msgid "the article hasn't been read" msgstr "o artigo não foi lido" #: ../pan/usenet-utils/filter-info.cc:200 #, c-format msgid "the article is less than %ld bytes long" msgstr "o artigo tem menos de %ld bytes de tamanho" #: ../pan/usenet-utils/filter-info.cc:205 #, c-format msgid "the article is at least %ld bytes long" msgstr "o artigo tem pelo menos %ld bytes de tamanho" #: ../pan/usenet-utils/filter-info.cc:210 #, c-format msgid "the article is less than %ld lines long" msgstr "o artigo tem menos de %ld linhas de tamanho" #: ../pan/usenet-utils/filter-info.cc:215 #, c-format msgid "the article is at least %ld lines long" msgstr "o artigo tem pelo menos %ld linhas de tamanho" #: ../pan/usenet-utils/filter-info.cc:220 #, c-format msgid "the article is less than %ld days old" msgstr "o artigo tem menos de %ld dias de idade" #: ../pan/usenet-utils/filter-info.cc:225 #, c-format msgid "the article is at least %ld days old" msgstr "o artigo tem pelo menos %ld dias de idade" #: ../pan/usenet-utils/filter-info.cc:230 #, c-format msgid "the article was posted to less than %ld groups" msgstr "o artigo foi afixado em menos de %ld grupos" #: ../pan/usenet-utils/filter-info.cc:235 #, c-format msgid "the article was posted to at least %ld groups" msgstr "o artigo foi afixado em pelo menos %ld grupos" #: ../pan/usenet-utils/filter-info.cc:240 #, c-format msgid "the article's score is less than %ld" msgstr "a pontuação do artigo é menor que %ld" #: ../pan/usenet-utils/filter-info.cc:245 #, c-format msgid "the article's score is %ld or higher" msgstr "a pontuação do artigo é %ld ou superior" #: ../pan/usenet-utils/filter-info.cc:254 #: ../pan/usenet-utils/filter-info.cc:264 #, c-format msgid "%s doesn't contain \"%s\"" msgstr "%s não contém \"%s\"" #: ../pan/usenet-utils/filter-info.cc:255 #: ../pan/usenet-utils/filter-info.cc:265 #, c-format msgid "%s isn't \"%s\"" msgstr "%s não é \"%s\"" #: ../pan/usenet-utils/filter-info.cc:256 #: ../pan/usenet-utils/filter-info.cc:266 #, c-format msgid "%s doesn't begin with \"%s\"" msgstr "%s não começa por \"%s\"" #: ../pan/usenet-utils/filter-info.cc:257 #: ../pan/usenet-utils/filter-info.cc:267 #, c-format msgid "%s doesn't end with \"%s\"" msgstr "%s não termina em \"%s\"" #: ../pan/usenet-utils/filter-info.cc:258 #: ../pan/usenet-utils/filter-info.cc:268 #, c-format msgid "%s doesn't match the regex \"%s\"" msgstr "%s não cumpre a expressão regular \"%s\"" #: ../pan/usenet-utils/filter-info.cc:280 #, c-format msgid "%s contains \"%s\"" msgstr "%s contém \"%s\"" #: ../pan/usenet-utils/filter-info.cc:281 #, c-format msgid "%s is \"%s\"" msgstr "%s é \"%s\"" #: ../pan/usenet-utils/filter-info.cc:282 #, c-format msgid "%s begins with \"%s\"" msgstr "%s começa por \"%s\"" #: ../pan/usenet-utils/filter-info.cc:283 #, c-format msgid "%s ends with \"%s\"" msgstr "%s termina em \"%s\"" #: ../pan/usenet-utils/filter-info.cc:284 #, c-format msgid "%s matches the regex \"%s\"" msgstr "%s cumpre a expressão regular \"%s\"" #: ../pan/usenet-utils/filter-info.cc:290 msgid "Any of these tests fail:" msgstr "Qualquer um destes testes falha:" #: ../pan/usenet-utils/filter-info.cc:297 msgid "All of these tests pass:" msgstr "Todos estes testes passam:" #: ../pan/usenet-utils/filter-info.cc:304 msgid "None of these tests pass:" msgstr "Nenhum destes testes passa:" #: ../pan/usenet-utils/filter-info.cc:311 msgid "Any of these tests pass:" msgstr "Qualquer um destes testes passa:" #: ../pan/usenet-utils/gnksa.cc:880 #, c-format msgid "No email address provided; generating message-id with domain \"%s\"" msgstr "" "Nenhum endereço de email indicado; a gerar id-mensagem com o domínio \"%s\"" #: ../pan/usenet-utils/message-check.cc:124 msgid "Warning: Reply seems to be top-posted." msgstr "Aviso: resposta parece estar no início da mensagem." #: ../pan/usenet-utils/message-check.cc:145 msgid "Warning: The signature marker should be \"-- \", not \"--\"." msgstr "Aviso: a marca de assinatura deveria ser \"-- \", não \"--\"." #: ../pan/usenet-utils/message-check.cc:162 msgid "Warning: Signature prefix with no signature." msgstr "Aviso: prefixo de assinatura sem assinatura." #: ../pan/usenet-utils/message-check.cc:167 msgid "Warning: Signature is more than 4 lines long." msgstr "Aviso: assinatura tem mais de 4 linhas de comprimento." #: ../pan/usenet-utils/message-check.cc:172 msgid "Warning: Signature is more than 80 characters wide." msgstr "Aviso: assinatura tem mais de 80 caracteres de largura." #: ../pan/usenet-utils/message-check.cc:198 #, c-format msgid "Warning: %d line is more than 80 characters wide." msgid_plural "Warning: %d lines are more than 80 characters wide." msgstr[0] "Aviso: %d linha têm mais que 80 caracteres de largura." msgstr[1] "Aviso: %d linhas têm mais que 80 caracteres de largura." #: ../pan/usenet-utils/message-check.cc:223 msgid "Error: Message is empty." msgstr "Erro: mensagem vazia." #: ../pan/usenet-utils/message-check.cc:258 msgid "Warning: The message is entirely quoted text!" msgstr "Aviso: a mensagem é, na sua totalidade, texto citado!" #: ../pan/usenet-utils/message-check.cc:259 msgid "Warning: The message is mostly quoted text." msgstr "Aviso: a mensagem é, na sua maioria, texto citado." #: ../pan/usenet-utils/message-check.cc:309 msgid "Error: Message appears to have no new content." msgstr "Erro: Mensagem aparenta não ter conteúdo novo." #: ../pan/usenet-utils/message-check.cc:344 #: ../pan/usenet-utils/message-check.cc:383 #, c-format msgid "" "Warning: The posting profile's server doesn't carry newsgroup\n" "\t\"%s\".\n" "\tIf the group name is correct, switch profiles in the \"From:\"\n" "\tline or edit the profile with \"Edit|Manage Posting Profiles\"." msgstr "" "Aviso: O servidor do perfil de publicação não suporta o grupo\n" "\t\"%s\".\n" "\tSe o nome do grupo estiver correto, altere o perfil na linha\n" "\"De:\" ou edite o perfil em \"Editar|Gerir perfis de publicação\"." #: ../pan/usenet-utils/message-check.cc:355 msgid "Warning: Following-Up to too many groups." msgstr "Aviso: DarSeguimento-Para a demasiados grupos." #: ../pan/usenet-utils/message-check.cc:366 msgid "Error: No Subject specified." msgstr "Erro: nenhum assunto especificado." #: ../pan/usenet-utils/message-check.cc:395 #, c-format msgid "Warning: Group \"%s\" is read-only." msgstr "Aviso: grupo \"%s\" é só de leitura." #: ../pan/usenet-utils/message-check.cc:404 msgid "Error: Posting to a very large number of groups." msgstr "Erro: a publicar num número muito grande de grupos." #: ../pan/usenet-utils/message-check.cc:409 msgid "Warning: Posting to a large number of groups." msgstr "Aviso: a publicar num número grande de grupos." #: ../pan/usenet-utils/message-check.cc:416 msgid "Warning: Crossposting without setting Followup-To header." msgstr "Aviso: mensagens cruzadas sem definir cabeçalho DarSeguimento-Para." #: ../pan/usenet-utils/message-check.cc:441 msgid "Error: Bad email address." msgstr "Erro: endereço de email inválido." #: ../pan/usenet-utils/message-check.cc:450 msgid "Warning: Most newsgroups frown upon HTML posts." msgstr "Aviso: mensagens em HTML desagradam à maioria dos grupos de notícias." #: ../pan/usenet-utils/message-check.cc:486 msgid "Error: No Recipients." msgstr "Erro: nenhum destinatário." #: ../pan/usenet-utils/scorefile.cc:304 #, c-format msgid "" "Error reading score in %*.*s, line %d: expected 'Expires: MM/DD/YYYY' or " "'Expires: DD-MM-YYYY'." msgstr "" "Erro ao ler a pontuação em %*.*s, linha %d: esperado \"Expira: MM/DD/YYYY\" " "ou \"Expira: DD-MM-YYYY\"." #: ../pan/usenet-utils/scorefile.cc:307 #, c-format msgid "Expired old score from %*.*s, line %d" msgstr "Pontuação antiga de %*.*s expirada, linha %d" #: ../pan/usenet-utils/scorefile.cc:380 #, c-format msgid "Error reading score in %*.*s, line %d: unexpected line." msgstr "Erro ao ler a pontuação em %*.*s, linha %d: linha inesperada." #: ../pan/usenet-utils/scorefile.cc:428 #, c-format msgid "Read %lu scoring rules in %lu sections from \"%s\"" msgstr "Ler %lu regras de pontuação em %lu seções de \"%s\"" #: ../pan/usenet-utils/ssl-utils.h:189 #, c-format msgid "Error printing the server certificate for '%s'" msgstr "Erro ao imprimir certificado de servidor para \"%s\"" #: ../pan/usenet-utils/ssl-utils.h:205 #, c-format msgid "" "The current server '%s' sent this security certificate:\n" "\n" msgstr "" "O servidor atual \"%s\" enviou este certificado de segurança:\n" "\n" #: ../pan/usenet-utils/ssl-utils.h:206 #, c-format msgid "" "Certificate information for server '%s':\n" "\n" msgstr "" "Informação de certificado para o servidor \"%s\":\n" "\n" #: ../pan/usenet-utils/ssl-utils.h:208 #, c-format msgid "" "%sIssuer information:\n" "%s\n" "Valid until: %s\n" "\n" "Not valid before: %s\n" "\n" msgstr "" "%sInformação do emissor:\n" "%s\n" "Válida até: %s\n" "\n" "Não válida antes de: %s\n" "\n" #: ../pan/usenet-utils/text-massager.cc:399 msgid "> [quoted text muted]" msgstr "> [texto citado silenciado]" #: ../pan/usenet-utils/text-massager.cc:579 msgid "no_name" msgstr "sem_nome" #: ../pan/usenet-utils/text-massager.cc:580 msgid "no_mail" msgstr "sem_mail" #~ msgid "Quoted text:" #~ msgstr "Texto Citado:" #~ msgid "Always trust" #~ msgstr "Executar Sempre o Editor" #~ msgid "If the group name" #~ msgstr "Se o nome do grupo" #~ msgid "Read News from Usenet" #~ msgstr "Leia Notícias da Usenet" #~ msgid "_Toggle Flag on for Thread" #~ msgstr "_Acompanhar a Árvore" #~ msgid "Attachment not shown: MIME type %s/%s; filename %s\n" #~ msgstr "Anexo não apresentado: Tipo MIME %s/%s; nome do ficheiro %s\n" #~ msgid "Attachment not shown: MIME type %s/%s\n" #~ msgstr "Anexo não apresentado: Tipo MIME %s/%s\n" #~ msgid "" #~ "Spellchecker not found!\n" #~ " \n" #~ "Was this copy of Pan compiled with GtkSpell enabled?" #~ msgstr "" #~ "Não foi encontrado o corrector ortográfico!\n" #~ " \n" #~ "Esta cópia do Pan foi compilada com o GtkSpell activo?" #~ msgid "Signer : " #~ msgstr "Assinatura:" #~ msgid "_Signature:" #~ msgstr "A_ssinatura:" #~ msgid "Creating directory \"%s\"" #~ msgstr "A criar o directório \"%s\"" #~ msgid "Couldn't create directory \"%s\": %s" #~ msgstr "Incapaz de criar o directório \"%s\": %s" #~ msgid "" #~ "Your copy of libpcre doesn't support UTF-8. UTF-8 regular expressions " #~ "may fail." #~ msgstr "" #~ "A sua cópia da libpcre não suporta UTF-8. Expressões regulares UTF-8 " #~ "poderão falhar." #~ msgid "Can't use regular expression \"%s\": %s at position %d" #~ msgstr "Incapaz de utilizar a expressão regular \"%s\": %s na posição %d" #~ msgid "Posting Article" #~ msgstr "A Afixar o Artigo" #~ msgid "Posting..." #~ msgstr "A Afixar..." pan-0.162/po/pt_BR.po000066400000000000000000003042531475412772400143100ustar00rootroot00000000000000# Brazilian Portuguese translation for pan # Copyright (C) 2022 Free Software Foundation, Inc. # This file is distributed under the same license as the pan2 package. # Douglas Moura Ferreira # Evandro Fernandes Giovanini # Afonso Celso Medina , 2004 # Júnior Pires , 2013. # Rafael Fontenelle , 2013-2021. # Enrico Nicoletto , 2016-2017, 2021-2022. # Juliano de Souza Camargo , 2024. # msgid "" msgstr "" "Project-Id-Version: pan\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/pan/issues/\n" "POT-Creation-Date: 2024-09-24 11:51+0000\n" "PO-Revision-Date: 2024-09-24 08:49-0300\n" "Last-Translator: Juliano de Souza Camargo \n" "Language-Team: Brazilian Portuguese \n" "Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" "X-Generator: Gtranslator 46.1\n" "X-Project-Style: gnome\n" #. update the titlebar #: org.gnome.pan.desktop.in:3 org.gnome.pan.metainfo.xml.in:27 #: pan/gui/dl-headers-ui.cc:119 pan/gui/gui.cc:1041 pan/gui/gui.cc:1666 #: pan/gui/gui.cc:1986 pan/gui/score-add-ui.cc:600 msgid "Pan" msgstr "Pan" #: org.gnome.pan.desktop.in:4 msgid "Newsreader" msgstr "Leitor de notícias" #: org.gnome.pan.desktop.in:5 org.gnome.pan.metainfo.xml.in:7 msgid "Read and post Usenet articles" msgstr "Leia e envie artigos na usenet" #. Translators: Search terms to find this application. Do NOT translate or localise the semicolons! The list MUST also end with a semicolon! #: org.gnome.pan.desktop.in:7 msgid "usenet;news;newsreader;newsgroup;article;yenc;nzb;" msgstr "" "usenet;notícias;news;leitor de notícias;newsreader;newsgroup;artigo;article;" "yenc;nzb;" #: org.gnome.pan.metainfo.xml.in:6 msgid "Pan Newsreader" msgstr "Leitor de Notícias Pan" #: org.gnome.pan.metainfo.xml.in:9 msgid "" "Pan is a Usenet newsreader that is good at both text and binaries. It " "supports offline reading, scoring and killfiles, yEnc, NZB, PGP handling, " "multiple servers, and secure connections." msgstr "" "Pan é um leitor de notícias Usenet que é bom em texto e em binários. Ele " "oferece suporte a leitura offline, marcando e killfiles, yEnc, NZB, PGP " "manipulação, vários servidores e conexões seguras." #: org.gnome.pan.metainfo.xml.in:12 msgid "" "It is also the only Unix newsreader to get a perfect score on the Good Net-" "Keeping Seal of Approval evaluations." msgstr "" "É também o único leitor de notícias de Unix para obter uma pontuação " "perfeita sobre as avaliações do Good Net-Keeping Seal of Approval." #: pan/data/article-cache.cc:144 pan/data/encode-cache.cc:62 #, c-format msgid "Error opening directory: \"%s\": %s" msgstr "Erro ao abrir o diretório: “%s”: %s" #: pan/data/article-cache.cc:235 pan/data/article-cache.cc:244 #: pan/data-impl/data-io.cc:278 pan/data-impl/data-io.cc:310 #: pan/gui/post-ui.cc:1698 #, c-format msgid "Unable to save \"%s\" %s" msgstr "Não foi possível salvar “%s” %s" #: pan/data/article-cache.cc:362 #, c-format msgid "Error opening file \"%s\" %s" msgstr "Erro ao abrir o arquivo “%s” %s" #: pan/data/article-cache.cc:393 pan/data-impl/profiles.cc:175 #: pan/data-impl/server.cc:478 pan/general/file-util.cc:311 #: pan/gui/post-ui.cc:567 pan/gui/task-pane.cc:740 #, c-format msgid "Error reading file \"%s\": %s" msgstr "Erro ao ler o arquivo “%s”: %s" #: pan/data/cert-store.cc:259 #, c-format msgid "Error opening SSL certificate directory: \"%s\": %s" msgstr "Erro ao abrir diretório de certificado SSL: “%s”: %s" #: pan/data/cert-store.cc:290 #, c-format msgid "Successfully added %d SSL PEM certificate(s) to Certificate Store." msgstr "" "%d certificado(s) PEM SSL adicionados ao armazenamento de certificados." #: pan/data/cert-store.cc:310 msgid "" "Error initializing Certificate Store. Check that the permissions for the " "folders ~/.pan2 and ~/.pan2/ssl_certs are set correctly. Fatal, exiting." msgstr "" "Erro ao inicializar o armazenamento de certificados. Certifique-se de que as " "permissões para as pastas ~/.pan2 e ~/.pan2/ssl_certs estão definidas " "corretamente. Fatal, saindo." #: pan/data/cert-store.cc:359 #, c-format msgid "Could not export certificate for server: %s" msgstr "Não foi possível exportar certificado do servidor: %s" #. load_group_descriptions (*_data_io); #: pan/data-impl/data-impl.cc:119 #, c-format msgid "Loaded data backend in %.1f seconds" msgstr "Backend de dados carregado em %.1f segundos" #: pan/data-impl/data-impl.cc:155 msgid "Pan Newsreader's server passwords" msgstr "Senhas do servidor do leitor de notícias Pan" #: pan/data-impl/groups.cc:104 #, c-format msgid "Skipping newsrc file for server \"%s\"" msgstr "Pulando arquivo newsrc do servidor “%s”" #: pan/data-impl/headers.cc:713 #, c-format msgid "Expired %lu old articles from \"%s\"" msgstr "%lu artigos antigos de “%s” expirados" #: pan/data-impl/headers.cc:722 #, c-format msgid "" "Unsupported data version for %s headers: %d.\n" "Are you running an old version of Pan by accident?" msgstr "" "A versão de dados não tem suporte para cabeçalhos %s: %d.\n" "Você está executando uma versão antiga do Pan acidentalmente?" #: pan/data-impl/headers.cc:740 #, c-format msgid "Loaded %llu articles for \"%s\" in %.1f seconds (%.0f per second)" msgstr "Carregados %llu artigos de “%s” em %.1f segundos (%.0f por segundo)" #: pan/data-impl/headers.cc:1009 #, c-format msgid "" "Saved %lu parts, %lu articles in \"%s\" in %.1f seconds (%.0f articles/sec)" msgstr "Salvos %lu partes, %lu artigos em “%s” em %.1f segundos (%.0f art/seg)" #: pan/data-impl/headers.cc:1399 #, c-format msgid "Added %lu articles to %s." msgstr "Adicionados %lu artigos para %s." #: pan/data-impl/server.cc:250 #, c-format msgid "Received no password from libsecret for server %s." msgstr "Nenhuma senha recebida do libsecret para o servidor %s." #: pan/data-impl/xover.cc:241 #, c-format msgid "Error reading from %s: unknown group \"%s\"" msgstr "Erro ao ler de %s: grupo desconhecido “%s”" # Traduzido com sistema 24hs #: pan/general/e-util.cc:164 msgid "%l:%M %p" msgstr "%H:%M" # Traduzido com sistema 24hs #: pan/general/e-util.cc:165 msgid "Today %l:%M %p" msgstr "Hoje, %H:%M" # Traduzido com sistema 24hs #: pan/general/e-util.cc:166 msgid "%a %l:%M %p" msgstr "%A às %H:%M" # Traduzido com sistema 24hs #: pan/general/e-util.cc:167 msgid "%b %d %l:%M %p" msgstr "%e de %b, %H:%M" # Traduzido com sistema 24hs #: pan/general/e-util.cc:168 msgid "%b %d %Y" msgstr "%e de %b de %Y" #: pan/general/e-util.cc:200 msgid "?" msgstr "?" #: pan/general/text-match.cc:194 #, c-format msgid "Can't use regular expression \"%s\": %s" msgstr "Não foi possível usar a expressão regular “%s”: %s" #: pan/general/utf8-utils.cc:212 msgid "Couldn't determine article encoding. Non-UTF8 characters were removed." msgstr "" "Não foi possível determinar codificação do artigo. Caracteres não-UTF8 foram " "removidos." #: pan/gui/actions.cc:306 pan/gui/post-ui.cc:382 msgid "_File" msgstr "_Arquivo" #: pan/gui/actions.cc:307 pan/gui/post-ui.cc:383 msgid "_Edit" msgstr "_Editar" #: pan/gui/actions.cc:308 pan/gui/prefs-ui.cc:1157 msgid "_Layout" msgstr "_Disposição" #: pan/gui/actions.cc:309 msgid "_Group Pane" msgstr "Painel de _grupos" #: pan/gui/actions.cc:310 msgid "_Header Pane" msgstr "Painel de cabeçal_hos" #: pan/gui/actions.cc:311 msgid "_Body Pane" msgstr "Painel de _corpo" #: pan/gui/actions.cc:312 msgid "_View" msgstr "_Ver" #: pan/gui/actions.cc:313 msgid "Filte_r" msgstr "Filtra_r" #: pan/gui/actions.cc:314 msgid "_Go" msgstr "_Ir" #: pan/gui/actions.cc:315 pan/gui/prefs-ui.cc:1207 msgid "_Actions" msgstr "_Ações" #: pan/gui/actions.cc:316 msgid "_Articles" msgstr "_Artigos" #: pan/gui/actions.cc:317 msgid "G_roups" msgstr "G_rupos" #: pan/gui/actions.cc:318 pan/gui/actions.cc:319 msgid "_Post" msgstr "En_viar" #: pan/gui/actions.cc:320 msgid "_Help" msgstr "Aj_uda" #: pan/gui/actions.cc:323 msgid "_Read Group" msgstr "_Ler grupo" #: pan/gui/actions.cc:324 msgid "Read Group" msgstr "Ler grupo" #: pan/gui/actions.cc:328 msgid "_Mark Selected Groups Read" msgstr "_Marcar grupos selecionados como lidos" #: pan/gui/actions.cc:329 msgid "Mark Selected Groups Read" msgstr "Marcar grupos selecionados como lidos" #: pan/gui/actions.cc:333 msgid "_Delete Selected Groups' Articles" msgstr "E_xcluir artigos do grupo selecionado" #: pan/gui/actions.cc:334 msgid "Delete Selected Groups' Articles" msgstr "Exclui artigos de artigos de grupos" #: pan/gui/actions.cc:338 msgid "Get New _Headers in Selected Groups" msgstr "Obter novos cabeçal_hos nos grupos selecionados" #: pan/gui/actions.cc:339 msgid "Get New Headers in Selected Groups" msgstr "Obtém novos cabeçalhos nos grupos selecionados" #: pan/gui/actions.cc:343 pan/gui/actions.cc:348 msgid "Get New _Headers in Subscribed Groups" msgstr "Obter novos cabeçal_hos nos grupos inscritos" #: pan/gui/actions.cc:344 pan/gui/actions.cc:349 msgid "Get New Headers in Subscribed Groups" msgstr "Obtém novos cabeçalhos nos grupos inscritos" #: pan/gui/actions.cc:353 msgid "Get _Headers..." msgstr "Obter cabeçal_hos…" #: pan/gui/actions.cc:354 msgid "Get Headers..." msgstr "Obtém cabeçalhos…" #: pan/gui/actions.cc:358 pan/gui/actions.cc:359 msgid "Refresh Group List" msgstr "Atualizar lista de grupo" #: pan/gui/actions.cc:363 msgid "_Subscribe" msgstr "In_screver-se" #: pan/gui/actions.cc:364 msgid "Subscribe" msgstr "Inscreve" #: pan/gui/actions.cc:368 msgid "_Unsubscribe" msgstr "_Desinscrever-se" #: pan/gui/actions.cc:369 msgid "Unsubscribe" msgstr "Cancela inscrição" #: pan/gui/actions.cc:373 msgid "_Save Articles..." msgstr "_Salvar artigos..." #: pan/gui/actions.cc:374 msgid "Save Articles..." msgstr "Salva artigos..." #: pan/gui/actions.cc:378 msgid "Save Articles from Selected _NZB..." msgstr "Salvar artigos do _NZB selecionado..." #: pan/gui/actions.cc:379 msgid "Save Articles from Selected NZB" msgstr "Salva artigos do NZB selecionado" #: pan/gui/actions.cc:383 msgid "Save Articles to an NZB _File..." msgstr "Salvar artigos em um arquivo _NZB..." #: pan/gui/actions.cc:384 msgid "Save Articles to an NZB File" msgstr "Salva artigos em um arquivo NZB" #: pan/gui/actions.cc:388 pan/gui/actions.cc:389 msgid "Print" msgstr "Imprimir" #: pan/gui/actions.cc:393 msgid "_Import NZB Files..." msgstr "_Importar arquivos NZB..." #: pan/gui/actions.cc:398 msgid "_Cancel Last Task" msgstr "_Cancelar última tarefa" #: pan/gui/actions.cc:403 msgid "_Task Manager" msgstr "_Gerenciador de tarefas" #: pan/gui/actions.cc:408 msgid "_Event Log" msgstr "Registro de _eventos" #: pan/gui/actions.cc:413 msgid "_Quit" msgstr "_Sair" #: pan/gui/actions.cc:418 msgid "Select _All Articles" msgstr "Selecionar _todos os artigos" #: pan/gui/actions.cc:423 msgid "_Deselect All Articles" msgstr "_Desmarcar todos os artigos" #: pan/gui/actions.cc:428 msgid "Add Su_bthreads to Selection" msgstr "Adicionar su_bdiscussões à seleção" #: pan/gui/actions.cc:433 msgid "Add _Threads to Selection" msgstr "Adicionar d_iscussões à seleção" #: pan/gui/actions.cc:438 msgid "Add _Similar Articles to Selection" msgstr "Adicionar discussões _semelhantes à seleção" #: pan/gui/actions.cc:443 msgid "Select Article _Body" msgstr "Selecionar _corpo do artigo" #: pan/gui/actions.cc:448 msgid "Edit _Preferences" msgstr "Editar _preferências" #: pan/gui/actions.cc:453 msgid "Edit Selected _Group's Preferences" msgstr "Editar preferências do _grupo selecionado" #: pan/gui/actions.cc:458 msgid "Edit S_core File" msgstr "Editar arquivo de _Pontuação" #: pan/gui/actions.cc:463 pan/gui/post-ui.cc:399 msgid "Edit P_osting Profiles" msgstr "Editar perfis de envi_o" #: pan/gui/actions.cc:468 msgid "Edit _News Servers" msgstr "Editar _servidores de notícias" #: pan/gui/actions.cc:473 msgid "Jump to _Group Tab" msgstr "Ir para a aba de _grupos" #: pan/gui/actions.cc:478 msgid "Jump to _Header Tab" msgstr "Ir para a aba de cabeçal_hos" #: pan/gui/actions.cc:483 msgid "Jump to _Body Tab" msgstr "Ir para a aba de _corpo" #: pan/gui/actions.cc:488 msgid "_Rot13 Selected Text" msgstr "Aplicar _Rot13 no texto selecionado" #: pan/gui/actions.cc:493 msgid "Clear _Header Pane" msgstr "Limpar _painel de cabeçalhos" #: pan/gui/actions.cc:498 msgid "Clear _Body Pane" msgstr "Limpar painel do _corpo" #: pan/gui/actions.cc:503 msgid "Cache Article" msgstr "Efetuar cache do artigo" #: pan/gui/actions.cc:508 msgid "Read Article" msgstr "Ler artigo" #: pan/gui/actions.cc:513 msgid "Show Article Information" msgstr "Mostrar informações do artigo" #: pan/gui/actions.cc:518 msgid "Read _More" msgstr "Ler _mais" #: pan/gui/actions.cc:519 msgid "Read More" msgstr "Leia Mais" #: pan/gui/actions.cc:523 msgid "Read _Back" msgstr "Ler a_trás" #: pan/gui/actions.cc:524 msgid "Read Back" msgstr "Ler atrás" #: pan/gui/actions.cc:528 msgid "Next _Unread Group" msgstr "Próximo grupo não _lido" #: pan/gui/actions.cc:533 msgid "Next _Group" msgstr "Próximo _grupo" #: pan/gui/actions.cc:538 msgid "Next _Unread Article" msgstr "Próximo artigo _não lido" #: pan/gui/actions.cc:539 msgid "Next Unread Article" msgstr "Próximo artigo não lido" #: pan/gui/actions.cc:543 msgid "Next _Article" msgstr "Próximo _artigo" #: pan/gui/actions.cc:544 msgid "Next Article" msgstr "Próximo artigo" #: pan/gui/actions.cc:548 msgid "Next _Watched Article" msgstr "Próximo a_rtigo monitorado" #: pan/gui/actions.cc:553 msgid "Next Unread _Thread" msgstr "Pró_xima discussão não lida" #: pan/gui/actions.cc:554 msgid "Next Unread Thread" msgstr "Próxima discussão não lida" #: pan/gui/actions.cc:558 msgid "Next Threa_d" msgstr "Próxima dis_cussão" #: pan/gui/actions.cc:563 msgid "Pre_vious Article" msgstr "Artigo ant_erior" #: pan/gui/actions.cc:568 msgid "Previous _Thread" msgstr "_Discussão anterior" #: pan/gui/actions.cc:573 msgid "_Parent Article" msgstr "Artigo _pai" #: pan/gui/actions.cc:578 msgid "Ignore _Author" msgstr "Ignorar _autor" #: pan/gui/actions.cc:582 msgid "_Watch Thread" msgstr "_Monitorar discussão" #: pan/gui/actions.cc:587 msgid "_Ignore Thread" msgstr "_Ignorar discussão" #: pan/gui/actions.cc:592 pan/gui/actions.cc:593 msgid "_Toggle Flag On/Off for Thread" msgstr "Mar_car/desmarcar discussão" #: pan/gui/actions.cc:597 pan/gui/actions.cc:598 msgid "_Turn Flag Off for Thread" msgstr "Desa_tivar marcação na discussão" #: pan/gui/actions.cc:602 pan/gui/actions.cc:603 msgid "_Select All Flagged Threads" msgstr "_Selecionar todas as discussões marcadas" #: pan/gui/actions.cc:607 pan/gui/actions.cc:608 msgid "_Go to Next Flagged Thread" msgstr "_Ir para a próxima discussão marcada" #: pan/gui/actions.cc:612 pan/gui/actions.cc:613 msgid "_Go to Last Flagged Thread" msgstr "I_r para a discussão marcada anterior" #: pan/gui/actions.cc:617 pan/gui/actions.cc:618 msgid "_Invert Selection" msgstr "_Inverter seleção" #: pan/gui/actions.cc:622 msgid "Edit Article's Watch/Ignore/Score..." msgstr "Editar monitorar/ignorar/pontuar do artigo…" #: pan/gui/actions.cc:627 msgid "Add a _Scoring Rule..." msgstr "Adicionar uma regra de _pontuação…" #: pan/gui/actions.cc:632 msgid "Cance_l Article..." msgstr "Cance_lar artigo…" #: pan/gui/actions.cc:637 msgid "_Supersede Article..." msgstr "_Substituir artigo…" #: pan/gui/actions.cc:642 msgid "_Delete Article" msgstr "E_xcluir artigo" #: pan/gui/actions.cc:647 msgid "Clear Article Cache" msgstr "Limpar cache de artigos" #: pan/gui/actions.cc:652 msgid "_Mark Article as Read" msgstr "_Marcar arquivo como lido" #: pan/gui/actions.cc:657 msgid "Mark Article as _Unread" msgstr "Marcar artigo como _não lido" #: pan/gui/actions.cc:663 msgid "_Mark Thread as Read" msgstr "_Marcar discussão como lida" #: pan/gui/actions.cc:668 msgid "Mark Thread as _Unread" msgstr "Marcar discussão como _não lida" #: pan/gui/actions.cc:673 msgid "_Post to Newsgroup" msgstr "_Enviar ao grupo de notícias" #: pan/gui/actions.cc:674 msgid "Post to Newsgroup" msgstr "Envia para grupo de notícias" #: pan/gui/actions.cc:678 msgid "_Followup to Newsgroup" msgstr "_Encaminhar para grupo de notícias" #: pan/gui/actions.cc:679 msgid "Followup to Newsgroup" msgstr "Encaminha para grupo de notícias" #: pan/gui/actions.cc:683 msgid "_Reply to Author in Mail" msgstr "_Responder para o autor no e-mail" #: pan/gui/actions.cc:689 msgid "_Contents" msgstr "S_umário" #: pan/gui/actions.cc:695 msgid "_Pan Home Page" msgstr "Página web do _Pan" #: pan/gui/actions.cc:700 msgid "Give _Feedback or Report a Bug..." msgstr "Dar _feedback ou relatar um erro…" #: pan/gui/actions.cc:705 msgid "_About" msgstr "_Sobre" #: pan/gui/actions.cc:710 msgid "Edit _SSL Certificates" msgstr "Editar certificados _SSL" #: pan/gui/actions.cc:725 msgid "_Thread Headers" msgstr "_Cabeçalhos de discussão" #: pan/gui/actions.cc:726 msgid "Wrap Article Body" msgstr "Quebrar linha do corpo do artigo" #: pan/gui/actions.cc:727 msgid "Show Article Signature" msgstr "Mostrar assinatura de artigo" #: pan/gui/actions.cc:728 msgid "Mute _Quoted Text" msgstr "Omitir texto _citado" #: pan/gui/actions.cc:729 msgid "Show All _Headers in Body Pane" msgstr "Mostrar todos os cabeçal_hos no painel de corpo" #: pan/gui/actions.cc:730 msgid "Show _Smilies as Graphics" msgstr "Mostrar emoticon_s como gráficos" #: pan/gui/actions.cc:731 msgid "Show *Bold*, __Underlined__, and /Italic/" msgstr "Mostrar *negrito*, __sublinhado__, e /itálico/" #: pan/gui/actions.cc:732 msgid "Size Pictures to _Fit" msgstr "Dimensionar imagens para _caber" #: pan/gui/actions.cc:733 msgid "Use _Monospace Font" msgstr "Usar fonte _monoespaçada" #: pan/gui/actions.cc:734 msgid "Set Focus to Images" msgstr "Definir foco para imagens" #: pan/gui/actions.cc:735 msgid "Highlight _URLs" msgstr "Destacar _URLs" #: pan/gui/actions.cc:738 msgid "_Work Online" msgstr "_Trabalhar conectado" #: pan/gui/actions.cc:739 msgid "_Tabbed Layout" msgstr "Visão com a_bas" #: pan/gui/actions.cc:740 msgid "Show Group _Pane" msgstr "Mostrar _painel de grupos" #: pan/gui/actions.cc:741 msgid "Show Hea_der Pane" msgstr "Mostrar painel _de cabeçalhos" #: pan/gui/actions.cc:742 msgid "Show Bod_y Pane" msgstr "Mos_trar painel de corpo" #: pan/gui/actions.cc:743 msgid "Show _Toolbar" msgstr "Mostrar _barra de ferramentas" #: pan/gui/actions.cc:744 msgid "Abbreviate Group Names" msgstr "Abreviar nomes de grupo" #: pan/gui/actions.cc:746 msgid "Match Only _Read Articles" msgstr "Coincidir apenas artig_os lidos" #: pan/gui/actions.cc:746 msgid "Match Only Read Articles" msgstr "Coincidir apenas artigos lidos" #: pan/gui/actions.cc:747 msgid "Match Only _Unread Articles" msgstr "Coincidir apenas arti_gos não lidos" #: pan/gui/actions.cc:747 msgid "Match Only Unread Articles" msgstr "Coincidir apenas artigos não lidos" #: pan/gui/actions.cc:748 msgid "Match Only _Cached Articles" msgstr "Coincidir a_penas artigos no cache" #: pan/gui/actions.cc:748 msgid "Match Only Cached Articles" msgstr "Coincidir apenas artigos no cache" #: pan/gui/actions.cc:749 msgid "Match Only _Complete Articles" msgstr "Coincidir apenas artigos comp_letos" #: pan/gui/actions.cc:749 msgid "Match Only Complete Articles" msgstr "Coincidir apenas artigos completos" #: pan/gui/actions.cc:750 msgid "Match Only _My Articles" msgstr "Coincidir apenas _meus artigos" #: pan/gui/actions.cc:750 msgid "Match Only My Articles" msgstr "Coincidir apenas meus artigos" #: pan/gui/actions.cc:751 msgid "Match Only _Watched Articles" msgstr "Coincidir apenas artigos mo_nitorados" #: pan/gui/actions.cc:751 msgid "Match Only Watched Articles" msgstr "Coincidir somente artigos monitorados" #: pan/gui/actions.cc:753 msgid "Match Scores of 9999 (_Watched)" msgstr "Coincidir pontuações de 9999 (_monitorado)" #: pan/gui/actions.cc:754 msgid "Match Scores of 5000...9998 (_High)" msgstr "Coincidir pontuações entre 5000…9998 (_alta)" #: pan/gui/actions.cc:755 msgid "Match Scores of 1...4999 (Me_dium)" msgstr "Coincidir pontuações entre 1…4999 (mé_dia)" #: pan/gui/actions.cc:756 msgid "Match Scores of 0 (_Normal)" msgstr "Coincidir pontuações de 0 (_normal)" #: pan/gui/actions.cc:757 msgid "Match Scores of -9998...-1 (_Low)" msgstr "Coincidir pontuações entre -9998…-1 (_baixa)" #: pan/gui/actions.cc:758 msgid "Match Scores of -9999 (_Ignored)" msgstr "Coincidir pontuações de -9999 (_ignorado)" #: pan/gui/actions.cc:760 msgid "Enable/Disable All _Rules" msgstr "Habilitar/desabilitar todas as _regras" #: pan/gui/actions.cc:788 msgid "Show Matching _Articles" msgstr "Mostrar _artigos coincidentes" #: pan/gui/actions.cc:789 msgid "Show Matching Articles' _Threads" msgstr "Mostrar discussões de artigos _coincidentes" #: pan/gui/actions.cc:790 msgid "Show Matching Articles' _Subthreads" msgstr "Mostrar _subdiscussões de artigos coincidentes" #: pan/gui/body-pane.cc:1040 msgid "Unnamed File" msgstr "Arquivo sem nome" #: pan/gui/body-pane.cc:1121 pan/gui/gui.cc:1957 pan/gui/header-pane.cc:1306 #: pan/gui/header-pane.cc:1735 pan/gui/post-ui.cc:2572 pan/gui/prefs-ui.cc:896 #: pan/gui/score-add-ui.cc:139 pan/gui/task-pane.cc:795 msgid "Subject" msgstr "Assunto" #: pan/gui/body-pane.cc:1123 pan/gui/gui.cc:1957 msgid "From" msgstr "De" #: pan/gui/body-pane.cc:1125 pan/gui/gui.cc:1958 pan/gui/header-pane.cc:1814 #: pan/gui/log-ui.cc:308 pan/gui/prefs-ui.cc:892 msgid "Date" msgstr "Data" #: pan/gui/body-pane.cc:1132 msgid "Newsgroups" msgstr "Grupos de notícias" #: pan/gui/body-pane.cc:1139 pan/gui/body-pane.cc:1147 #: pan/gui/body-pane.cc:1154 msgid "User-Agent" msgstr "Agente do usuário" #: pan/gui/body-pane.cc:1160 msgid "Followup-To" msgstr "Encaminhar-para" #: pan/gui/body-pane.cc:1170 msgid "Reply-To" msgstr "Responder-para" #: pan/gui/body-pane.cc:1218 msgid " from " msgstr " de " #: pan/gui/body-pane.cc:1220 msgid " at " msgstr " em " #: pan/gui/body-pane.cc:1309 #, c-format msgid "" "This is a PGP-Signed message.\n" "\n" "Signer: %s ('%s')\n" "Valid until: %s\n" "Created on: %s" msgstr "" "Essa é uma mensagem assinada com PGP.\n" "\n" "Assinante: %s (“%s”)\n" "Válido até: %s\n" "Criado em: %s" #: pan/gui/body-pane.cc:1314 msgid "always" msgstr "sempre" #: pan/gui/body-pane.cc:1533 msgid "Copy _URL" msgstr "Copiar _URL" #: pan/gui/body-pane.cc:1720 msgid "Save Attachment As..." msgstr "Salvar anexo como…" #: pan/gui/body-pane.cc:1723 msgid "Save All Attachments" msgstr "Salvar todos os anexos" #: pan/gui/body-pane.cc:1794 msgid "Attachments:" msgstr "Anexos:" #: pan/gui/body-pane.cc:1814 msgid "Text View" msgstr "Visão de texto" #: pan/gui/body-pane.cc:1823 msgid "HTML View" msgstr "Visão de HTML" #: pan/gui/dl-headers-ui.cc:125 #, c-format msgid "%d Group" msgid_plural "%d Groups" msgstr[0] "%d grupo" msgstr[1] "%d grupos" #: pan/gui/dl-headers-ui.cc:148 msgid "Get the last N _days' headers: " msgstr "Obter cabeçalhos dos últimos N _dias: " #: pan/gui/dl-headers-ui.cc:156 msgid "Get _new headers" msgstr "Obter _novos cabeçalhos" #: pan/gui/dl-headers-ui.cc:160 msgid "Get _all headers" msgstr "Obter _todos os cabeçalhos" #: pan/gui/dl-headers-ui.cc:164 msgid "Get the _latest N headers: " msgstr "Obter cabeçalhos _recentes: " #: pan/gui/e-action-combo-box.c:386 pan/gui/prefs-ui.cc:889 msgid "Action" msgstr "Ação" #: pan/gui/e-action-combo-box.c:387 msgid "A GtkRadioAction" msgstr "Um GtkRadioAction" #: pan/gui/e-charset.c:51 pan/gui/task-pane.cc:561 msgid "Unknown" msgstr "Desconhecido" #: pan/gui/e-charset.c:52 msgid "Arabic" msgstr "Árabe" #: pan/gui/e-charset.c:53 msgid "Baltic" msgstr "Báltico" #: pan/gui/e-charset.c:54 msgid "Central European" msgstr "Europa Central" #: pan/gui/e-charset.c:55 msgid "Chinese" msgstr "Chinês" #: pan/gui/e-charset.c:56 msgid "Cyrillic" msgstr "Cirílico" #: pan/gui/e-charset.c:57 msgid "Greek" msgstr "Grego" #: pan/gui/e-charset.c:58 msgid "Hebrew" msgstr "Hebreu" #: pan/gui/e-charset.c:59 msgid "Japanese" msgstr "Japonês" #: pan/gui/e-charset.c:60 msgid "Korean" msgstr "Coreano" #: pan/gui/e-charset.c:61 msgid "Thai" msgstr "Tailandês" #: pan/gui/e-charset.c:62 msgid "Turkish" msgstr "Turco" #: pan/gui/e-charset.c:63 msgid "Unicode" msgstr "Unicode" #: pan/gui/e-charset.c:64 msgid "Western European" msgstr "Europeu Ocidental" #: pan/gui/e-charset.c:65 msgid "Western European, New" msgstr "Europeu Ocidental, Novo" #: pan/gui/e-charset.c:84 pan/gui/e-charset.c:85 pan/gui/e-charset.c:86 msgid "Traditional" msgstr "Tradicional" #: pan/gui/e-charset.c:87 pan/gui/e-charset.c:88 pan/gui/e-charset.c:89 #: pan/gui/e-charset.c:90 msgid "Simplified" msgstr "Simplificado" #: pan/gui/e-charset.c:93 msgid "Ukrainian" msgstr "Ucraniano" #: pan/gui/e-charset.c:96 msgid "Visual" msgstr "Visual" #: pan/gui/e-charset-combo-box.c:95 pan/gui/gui.cc:2155 pan/gui/post-ui.cc:477 #: pan/gui/prefs-ui.cc:800 msgid "Character Encoding" msgstr "Codificação de caracteres" #: pan/gui/e-charset-combo-box.c:97 pan/gui/e-charset-dialog.c:51 #: pan/gui/score-add-ui.cc:606 pan/gui/task-pane.cc:309 msgid "Cancel" msgstr "Cancelar" #: pan/gui/e-charset-combo-box.c:98 pan/gui/e-charset-dialog.c:52 msgid "OK" msgstr "OK" #: pan/gui/e-charset-combo-box.c:119 msgid "Enter the character set to use" msgstr "Digite o conjunto de caracteres para usar" #: pan/gui/e-charset-combo-box.c:338 msgid "Other..." msgstr "Outro…" #: pan/gui/e-cte-dialog.c:76 msgid "Default Encoding" msgstr "Codificação padrão" #: pan/gui/e-cte-dialog.c:78 msgid "7-Bit Encoding" msgstr "Codificação 7-Bit" #: pan/gui/e-cte-dialog.c:80 msgid "8-Bit Encoding" msgstr "Codificação 8-Bit" #: pan/gui/e-cte-dialog.c:82 msgid "Base64 Encoding" msgstr "Codificação Base64" #: pan/gui/e-cte-dialog.c:84 msgid "Quoted-Printable Encoding" msgstr "Codificação citável-imprimível" #: pan/gui/editor-spawner.cc:66 #, c-format msgid "Error parsing \"external editor\" command line: %s (Command was: %s)" msgstr "" "Erro ao analisar a linha de comando do “editor externo”: %s (o comando era: " "%s)" #: pan/gui/editor-spawner.cc:110 #, c-format msgid "Error starting external editor: %s" msgstr "Erro ao iniciar o editor externo: %s" #. Local folders #: pan/gui/group-pane.cc:330 msgid "Sent" msgstr "Enviadas" #: pan/gui/group-pane.cc:330 msgid "Drafts" msgstr "Rascunhos" #: pan/gui/group-pane.cc:540 msgid "Group" msgstr "Grupos" #: pan/gui/group-pane.cc:540 msgid "Group (regex)" msgstr "Grupo (regex)" #: pan/gui/group-pane.cc:985 msgid "Local Folders" msgstr "Pastas locais" #: pan/gui/group-pane.cc:986 msgid "Subscribed Groups" msgstr "Grupos inscritos" #: pan/gui/group-pane.cc:987 msgid "Other Groups" msgstr "Outros grupos" #: pan/gui/group-pane.cc:1028 pan/gui/score-view-ui.cc:156 msgid "Name" msgstr "Nome" #: pan/gui/group-prefs-dialog.cc:161 msgid "No Profiles defined in Edit|Posting Profiles." msgstr "Nenhum perfil definido em Editar|Perfis de envio." #: pan/gui/group-prefs-dialog.cc:264 msgid "Pan: Group Preferences" msgstr "Pan: Preferências de grupo" #: pan/gui/group-prefs-dialog.cc:279 msgid "Properties for Groups" msgstr "Propriedades de grupos" #: pan/gui/group-prefs-dialog.cc:281 #, c-format msgid "Properties for %s" msgstr "Propriedades de %s" #: pan/gui/group-prefs-dialog.cc:292 msgid "Character _encoding:" msgstr "Codificação d_e caracteres:" #: pan/gui/group-prefs-dialog.cc:294 msgid "Directory for Saving Attachments" msgstr "Diretório onde salvar anexos" #: pan/gui/group-prefs-dialog.cc:302 msgid "Directory for _saving attachments:" msgstr "Diretório onde _salvar anexos:" #: pan/gui/group-prefs-dialog.cc:304 msgid "Posting _profile:" msgstr "_Perfis de envio:" #: pan/gui/group-prefs-dialog.cc:309 msgid "Spellchecker _language:" msgstr "_Idioma do verificador ortográfico:" #: pan/gui/group-prefs-dialog.cc:312 msgid "Group color:" msgstr "Cor do grupo:" #: pan/gui/gui.cc:312 msgid "Open the Task Manager" msgstr "Abrir o gerenciador de tarefas" #: pan/gui/gui.cc:335 msgid "Open the Event Log" msgstr "Abrir o registro de eventos" #: pan/gui/gui.cc:611 msgid "Save NZB's Files" msgstr "Salvar arquivos NZB" #: pan/gui/gui.cc:638 msgid "Untitled.nzb" msgstr "Sem-nome.nzb" #: pan/gui/gui.cc:640 msgid "Save NZB File as..." msgstr "Salvar arquivo NZB como…" #: pan/gui/gui.cc:809 msgid "Import NZB Files" msgstr "Importar arquivos NZB" #: pan/gui/gui.cc:817 pan/gui/post-ui.cc:3280 msgid "NZB Files" msgstr "Arquivos NZB" #: pan/gui/gui.cc:822 msgid "All Files" msgstr "Todos os arquivos" #: pan/gui/gui.cc:1336 msgid "Unable to supersede article." msgstr "Não foi possível substituir o artigo." #: pan/gui/gui.cc:1337 pan/gui/gui.cc:1413 msgid "The article doesn't match any of your posting profiles." msgstr "O artigo não coincide com nenhum dos seus perfis de envio." #: pan/gui/gui.cc:1386 msgid "Revise and send this article to replace the old one." msgstr "Reenviar e enviar este artigo para substituir o anterior." #: pan/gui/gui.cc:1387 pan/gui/gui.cc:1451 msgid "Be patient! It will take time for your changes to take effect." msgstr "" "Seja paciente! Levará algum tempo para que suas alterações tenham efeito." #: pan/gui/gui.cc:1412 msgid "Unable to cancel article." msgstr "Não foi possível cancelar o artigo." #: pan/gui/gui.cc:1450 msgid "Send this article to ask your server to cancel your other one." msgstr "" "Enviar este artigo para perguntar ao seu servidor para cancelar seu anterior." #: pan/gui/gui.cc:1468 msgid "You have marked some articles for deletion." msgstr "Você marcou alguns artigos para exclusão." #: pan/gui/gui.cc:1469 msgid "Are you sure you want to delete them?" msgstr "Você tem certeza de que deseja exclui-los?" #: pan/gui/gui.cc:1495 msgid "Do you want to accept it permanently? (You can change this later.)" msgstr "" "Você deseja aceitá-lo permanentemente? (Você pode mudar isso mais tarde.)" #: pan/gui/gui.cc:1641 msgid "Unable to open help file." msgstr "Não foi possível abrir o arquivo de ajuda." #: pan/gui/gui.cc:1669 msgid "Copyright © 2002-2021 Charles Kerr and others" msgstr "Copyright © 2002-2021 Charles Kerr e outros" #: pan/gui/gui.cc:1674 msgid "translator-credits" msgstr "" "------ Tradutores da versão antiga: ------------------\n" "Douglas Moura Ferreira \n" "Evandro Fernandes Giovanini \n" "Afonso Celso Medina , 2004\n" "------ Tradutores da versão recente: ------------------\n" "Júnior Pires , 2013\n" "Enrico Nicoletto , 2016, 2017, 2021, 2022\n" "Rafael Fontenelle , 2013, 2014, 2016, 2017\n" "Juliano de Souza Camargo " #: pan/gui/gui.cc:1802 msgid "_1. Group Pane" msgstr "_1. Painel de grupo" #: pan/gui/gui.cc:1803 msgid "_2. Header Pane" msgstr "_2. Painel de cabeçalho" #: pan/gui/gui.cc:1804 msgid "_3. Body Pane" msgstr "_3. Painel de corpo" #: pan/gui/gui.cc:1894 pan/gui/gui.cc:1909 msgid " Bytes" msgstr " Bytes" #: pan/gui/gui.cc:1897 msgid " KB" msgstr " KB" #: pan/gui/gui.cc:1900 msgid " MB" msgstr " MB" #: pan/gui/gui.cc:1903 msgid " GB" msgstr " GB" #: pan/gui/gui.cc:1906 msgid " TB" msgstr " TB" #: pan/gui/gui.cc:1938 #, c-format msgid "This article is complete with %d part." msgid_plural "This article has all %d parts." msgstr[0] "Este artigo está completo com %d parte." msgstr[1] "Este artigo está completo com todas as %d partes." #: pan/gui/gui.cc:1940 #, c-format msgid "This article is missing %d part." msgid_plural "This article is missing %d of its %d parts:" msgstr[0] "Este artigo está com %d parte faltando." msgstr[1] "Este artigo está com %d de suas %d partes faltando:" #: pan/gui/gui.cc:1958 pan/gui/header-pane.cc:1308 pan/gui/task-pane.cc:797 msgid "Message-ID" msgstr "Mensagem-ID" #: pan/gui/gui.cc:1959 pan/gui/header-pane.cc:1783 pan/gui/prefs-ui.cc:893 msgid "Lines" msgstr "Linhas" #: pan/gui/gui.cc:1959 msgid "Size" msgstr "Tamanho" #: pan/gui/gui.cc:1960 pan/gui/header-pane.cc:1799 pan/gui/prefs-ui.cc:891 msgid "Bytes" msgstr "Bytes" #: pan/gui/gui.cc:2010 msgid "" "Error loading iconv library. Encoding certain character sets will not work " "in GUI." msgstr "" "Erro ao carregar a biblioteca iconv. Não será possível fazer a codificação " "de certas codificações de caracteres na interface gráfica." #: pan/gui/gui.cc:2156 msgid "Body Pane Encoding" msgstr "Codificação do painel do corpo" #: pan/gui/gui.cc:2187 pan/gui/task-pane.cc:612 msgid "Offline" msgstr "Desconectado" #: pan/gui/gui.cc:2191 #, c-format msgid "Closing %d connection" msgid_plural "Closing %d connections" msgstr[0] "Fechando %d conexão" msgstr[1] "Fechando %d conexões" #: pan/gui/gui.cc:2193 pan/gui/gui.cc:2223 msgid "No Connections" msgstr "Nenhuma conexão" #: pan/gui/gui.cc:2197 msgid "Connecting" msgstr "Conectando" #: pan/gui/gui.cc:2210 #, c-format msgid "%s: %d idle, %d active @ %.1f KiBps" msgstr "%s: %d ocioso, %d ativo @ %.1f KiBps" #: pan/gui/gui.cc:2266 msgid "No Tasks" msgstr "Nenhuma tarefa" #: pan/gui/gui.cc:2268 pan/gui/prefs-ui.cc:1140 msgid "Tasks" msgstr "Tarefas" #: pan/gui/gui.cc:2285 pan/gui/task-pane.cc:478 #, c-format msgid "%lu tasks, %s, %.1f KiBps, ETA %d:%02d:%02d" msgstr "%lu tarefas, %s, %.1f KiBps, ETA %d∶%02d∶%02d" #: pan/gui/gui.cc:2337 msgid "" "Pan is now offline. Please see \"File|Event Log\" and correct the problem, " "then use \"File|Work Online\" to continue." msgstr "" "Pan está agora desconectado. Por favor, veja “Arquivo|Registro de eventos” e " "corrija o problema. Então, use “Arquivo|Trabalhar conectado” para continuar." #: pan/gui/header-pane.cc:1304 pan/gui/task-pane.cc:793 msgid "Subject or Author" msgstr "Título ou autor" #: pan/gui/header-pane.cc:1305 pan/gui/task-pane.cc:794 msgid "Sub or Auth (regex)" msgstr "Sub ou autenticação (expressão regular)" #: pan/gui/header-pane.cc:1307 pan/gui/header-pane.cc:1767 #: pan/gui/prefs-ui.cc:890 pan/gui/score-add-ui.cc:140 pan/gui/task-pane.cc:796 msgid "Author" msgstr "Autor" #: pan/gui/header-pane.cc:1752 pan/gui/prefs-ui.cc:894 msgid "Score" msgstr "Pontuação" #: pan/gui/log-ui.cc:105 msgid "Save Event List" msgstr "Salvar lista de eventos" #: pan/gui/log-ui.cc:259 msgid "Pan: Events" msgstr "Pan: Eventos" #: pan/gui/log-ui.cc:318 msgid "Message" msgstr "Mensagem" #: pan/gui/pan.cc:336 msgid "Maximize" msgstr "Maximizar" #: pan/gui/pan.cc:376 msgid "An error has occurred!" msgstr "Ocorreu um erro!" #: pan/gui/pan.cc:389 msgid "New Articles!" msgstr "Novos artigos!" #: pan/gui/pan.cc:390 msgid "" "There are new\n" "articles available." msgstr "" "Existem novos\n" "artigos disponíveis." #: pan/gui/pan.cc:470 msgid "" "Thank you for trying Pan!\n" " \n" "To start newsreading, first Add a Server." msgstr "" "Obrigado por testar o Pan!\n" " \n" "Para começar a ler notícias, primeiro adicione um servidor." #: pan/gui/pan.cc:552 msgid "" "General Options\n" " -h, --help Show this usage information and exit.\n" " -v, --version Print release version and exit.\n" " --verbose Be verbose (in non-GUI mode).\n" " --debug Run in debug mode. Use --debug twice for verbose " "debug.\n" " --debug-ssl Run in TLS (aka SSL) debug mode.\n" "\n" "URL Options\n" " headers:group.name Download new headers for the specified " "newsgroup.\n" " news:message-id When specified together with --no-gui, dump\n" " the message-id article to standard output.\n" "\n" "NZB Batch Options\n" " --nzb file1 file2 ... Process NZB files in non-GUI mode.\n" " -o path, --output=path Path to save attachments listed in the NZB " "file(s).\n" " --no-gui Only show console output, not the download " "queue.\n" msgstr "" "Opções gerais\n" " -h, --help Mostra estas informações e sai.\n" " -v, --version Exibe a versão de lançamento e sai.\n" " --verbose Exibe saída detalhista (em modo não GUI).\n" " --debug Executa em modo de depuração. Para depuração " "detalhada use --debug twice.\n" " --debug-ssl Executa em modo de depuração TLS (aka SSL).\n" "\n" "Opções de URL\n" " headers:nome.grupo Baixa os novos cabeçalhos para as newsgroup " "especificadas.\n" " news:message-id Quando especificado junto com --no-gui, despeja\n" " o artigo message-id para a saída padrão.\n" "\n" "Opções em lote NZB\n" " --nzb arquivo1 arquivo2 … Processa arquivos NZB em modo não-GUI.\n" " -o caminho, --output=caminho Caminho para salvar anexos listados nos " "arquivos NZB.\n" " --no-gui Mostra somente a saída do console sem fila de " "download.\n" #: pan/gui/pan.cc:887 msgid "Error: --no-gui used without nzb files or news:message-id." msgstr "Erro: --no-gui usado sem arquivos nzb ou news:message-id." #: pan/gui/pan.cc:891 #, c-format msgid "Pan %s started" msgstr "Pan %s iniciou" #: pan/gui/pan.cc:911 msgid "Please configure Pan's news servers before using it as an nzb client." msgstr "" "Por favor, configure os servidores de notícias do Pan, antes de usá-lo como " "um cliente nzb." #: pan/gui/pan.cc:1031 msgid "Pan notification" msgstr "Notificação do Pan" #: pan/gui/post-ui.cc:175 #, c-format msgid "Upload queue: %llu tasks, %ld KB (~ %.2f MB) total." msgstr "Fila de envio: %llu tarefas, %ld KB (~ %.2f MB) total." #: pan/gui/post-ui.cc:384 msgid "_Profile" msgstr "_Perfil" #: pan/gui/post-ui.cc:385 msgid "Set Editor" msgstr "Definir editor" #: pan/gui/post-ui.cc:387 msgid "_Send Article" msgstr "_Enviar artigo" #: pan/gui/post-ui.cc:387 msgid "Send Article Now" msgstr "Enviar agora" #: pan/gui/post-ui.cc:388 msgid "_Send and Save Articles to NZB" msgstr "_Enviar e salvar artigos em NZB" #: pan/gui/post-ui.cc:388 msgid "Send and Save Articles to NZB" msgstr "Enviar e salvar artigos em NZB" #: pan/gui/post-ui.cc:389 msgid "Set Character _Encoding..." msgstr "Definir _codificação de caracteres…" #: pan/gui/post-ui.cc:390 msgid "Set Content _Transfer Encoding..." msgstr "Definir codificação de _transferência de conteúdo…" #: pan/gui/post-ui.cc:391 msgid "Sa_ve Draft" msgstr "Sal_var rascunho" #: pan/gui/post-ui.cc:391 msgid "Save as a Draft for Future Posting" msgstr "Salvar como um rascunho para envio futuro" #: pan/gui/post-ui.cc:392 msgid "_Open Draft..." msgstr "_Abrir rascunho…" #: pan/gui/post-ui.cc:392 msgid "Open an Article Draft" msgstr "Abre um rascunho de artigo" #: pan/gui/post-ui.cc:397 msgid "_Rot13" msgstr "_Rot13" #: pan/gui/post-ui.cc:397 msgid "Rot13 Selected Text" msgstr "Aplicar Rot13 no texto selecionado" #: pan/gui/post-ui.cc:398 msgid "Run _Editor" msgstr "Executar _editor" #: pan/gui/post-ui.cc:398 msgid "Run Editor" msgstr "Executar editor" #: pan/gui/post-ui.cc:400 msgid "Add _Files to Queue" msgstr "Adicionar arquivos à _fila" #: pan/gui/post-ui.cc:400 msgid "Add Files to Queue" msgstr "Adicionar arquivos à fila" #: pan/gui/post-ui.cc:415 pan/gui/post-ui.cc:416 msgid "Remove from Queue" msgstr "Remover da fila" #: pan/gui/post-ui.cc:420 pan/gui/post-ui.cc:421 msgid "Clear List" msgstr "Limpar lista" #: pan/gui/post-ui.cc:425 pan/gui/post-ui.cc:426 msgid "Select Needed Parts" msgstr "Selecionar partes necessárias" #: pan/gui/post-ui.cc:430 pan/gui/post-ui.cc:431 pan/gui/task-pane.cc:680 #: pan/gui/task-pane.cc:681 msgid "Move Up" msgstr "Mover para cima" #: pan/gui/post-ui.cc:435 pan/gui/post-ui.cc:436 pan/gui/task-pane.cc:685 #: pan/gui/task-pane.cc:686 msgid "Move Down" msgstr "Mover para baixo" #: pan/gui/post-ui.cc:440 pan/gui/post-ui.cc:441 msgid "Move to Top" msgstr "Mover para o início" #: pan/gui/post-ui.cc:445 pan/gui/post-ui.cc:446 msgid "Move to Bottom" msgstr "Mover para o fim" #: pan/gui/post-ui.cc:453 msgid "_Wrap Text" msgstr "_Quebrar texto" #: pan/gui/post-ui.cc:453 msgid "Wrap Text" msgstr "Quebrar texto" #: pan/gui/post-ui.cc:454 msgid "Always Run Editor" msgstr "Sempre executar o editor" #: pan/gui/post-ui.cc:455 msgid "Remember Character Encoding for This Group" msgstr "Lembrar da codificação de caracteres deste grupo" #: pan/gui/post-ui.cc:456 msgid "Thread Attached Replies" msgstr "Respostas com discussão em anexo" #: pan/gui/post-ui.cc:457 msgid "PGP-Encrypt the Article" msgstr "Criptografar este artigo com PGP" #: pan/gui/post-ui.cc:458 msgid "PGP-Sign the Article" msgstr "Assinar o artigo com PGP" #: pan/gui/post-ui.cc:459 msgid "Check _Spelling" msgstr "Verificar _ortografia" #: pan/gui/post-ui.cc:478 msgid "New Article's Encoding:" msgstr "Nova codificação do artigo:" #: pan/gui/post-ui.cc:488 msgid "Content Transfer Encoding" msgstr "Codificação de transferência de conteúdo" #: pan/gui/post-ui.cc:489 msgid "New Article's Content Transfer Encoding:" msgstr "Codificação de transferência de conteúdo do novo artigo:" #: pan/gui/post-ui.cc:673 msgid "Your changes will be lost!" msgstr "Suas alterações serão perdidas!" #: pan/gui/post-ui.cc:674 msgid "Close this window and lose your changes?" msgstr "Fechar esta janela e perder suas alterações?" #: pan/gui/post-ui.cc:719 pan/gui/post-ui.cc:758 msgid "There were problems with this post." msgstr "Ocorreram problemas com este envio." #: pan/gui/post-ui.cc:721 pan/gui/post-ui.cc:760 pan/gui/post-ui.cc:825 msgid "Go Back" msgstr "Voltar" #: pan/gui/post-ui.cc:723 msgid "Continue Anyway" msgstr "Continuar mesmo assim" #. Prompt the user #: pan/gui/post-ui.cc:752 #, c-format msgid "" "Message uses characters not specified in charset '%s' - possibly use '%s' " msgstr "" "Mensagem usa caracteres não especificados no conjunto de caracteres “%s” - " "talvez você deva usar “%s” " #: pan/gui/post-ui.cc:775 msgid "Go _Online" msgstr "C_onectar" #: pan/gui/post-ui.cc:824 msgid "The file queue is empty, so no files can be saved." msgstr "" "A fila de arquivos está vazia e, portanto, nenhum arquivo pode ser salvo." #: pan/gui/post-ui.cc:1004 msgid "IO Error" msgstr "Erro de E/S" #: pan/gui/post-ui.cc:1004 msgid "No space left on device" msgstr "Não há espaço disponível no dispositivo" #: pan/gui/post-ui.cc:1005 #, c-format msgid "Error copying message to %s folder. Reason: %s" msgstr "Erro ao copiar mensagem para a pasta %s. Motivo: %s" #: pan/gui/post-ui.cc:1011 #, c-format msgid "Error creating message in %s mail folder: Invalid article." msgstr "Erro ao criar mensagem na pasta de correio %s: artigo inválido." #: pan/gui/post-ui.cc:1033 msgid "" "No posting server is set for this posting profile.\n" "Please edit the profile via Edit|Manage Posting Profiles." msgstr "" "Nenhum servidor de envio está definido para este perfil de envio.\n" "Por favor, edite o perfil via Editar|Gerenciar perfis de envio." #: pan/gui/post-ui.cc:1038 msgid "" "The selected posting server is currently disabled. Please choose an " "appropriate alternative." msgstr "" "O servidor selecionado para envio está desabilitado no momento. Por favor, " "escolha uma alternativa apropriada." #: pan/gui/post-ui.cc:1080 msgid "Pan is Offline." msgstr "Pan está desconectado." #: pan/gui/post-ui.cc:1081 msgid "Go online to post the article?" msgstr "Conectar-se para enviar o artigo?" #: pan/gui/post-ui.cc:1130 #, c-format msgid "" "Error signing/encrypting your message. Perhaps you misspelled your email " "address (%s)?" msgstr "" "Erro ao assinar/criptografar sua mensagem. Talvez você tenha errado seu " "endereço de e-mail (%s)?" #: pan/gui/post-ui.cc:1280 msgid "Error opening temporary file" msgstr "Erro ao abrir arquivo temporário" #: pan/gui/post-ui.cc:1291 #, c-format msgid "Error creating temporary file: %s" msgstr "Erro ao criar arquivo temporário: %s" #: pan/gui/post-ui.cc:1299 #, c-format msgid "Error writing article to temporary file: %s" msgstr "Erro ao escrever o artigo para um arquivo temporário: %s" #: pan/gui/post-ui.cc:1372 msgid "Open Draft Article" msgstr "Abrir de rascunho de artigo" #: pan/gui/post-ui.cc:1614 msgid "Save Draft Article" msgstr "Salvar rascunho de artigo" #: pan/gui/post-ui.cc:1652 msgid "File already exists." msgstr "O arquivo já existe." #: pan/gui/post-ui.cc:1653 msgid "Overwrite it?" msgstr "Sobrescrevê-lo?" #: pan/gui/post-ui.cc:1862 #, c-format msgid "Couldn't parse signature command \"%s\": %s" msgstr "Não foi possível analisar o comando “%s” da assinatura: %s" #: pan/gui/post-ui.cc:1898 msgid "Couldn't convert signature to UTF-8." msgstr "Não foi possível converter a assinatura para UTF-8." #: pan/gui/post-ui.cc:2410 msgid "F_rom" msgstr "D_e" #: pan/gui/post-ui.cc:2427 msgid "_Subject" msgstr "_Assunto" #: pan/gui/post-ui.cc:2440 msgid "_Newsgroups" msgstr "Grupos de _notícias" #: pan/gui/post-ui.cc:2454 msgid "Mail _To" msgstr "Enviar _para" #: pan/gui/post-ui.cc:2557 msgid "Delete from Queue" msgstr "Excluir da fila" #: pan/gui/post-ui.cc:2570 msgid "No." msgstr "Núm." #: pan/gui/post-ui.cc:2574 pan/gui/post-ui.cc:2666 pan/gui/post-ui.cc:2707 msgid "Filename" msgstr "Nome do Arquivo" #: pan/gui/post-ui.cc:2576 msgid "Size (KB)" msgstr "Tamanho (KB)" #: pan/gui/post-ui.cc:2674 msgid "The current filename" msgstr "O nome do arquivo atual" #: pan/gui/post-ui.cc:2678 msgid "Subject Line" msgstr "Linha de assunto" #: pan/gui/post-ui.cc:2686 msgid "The current subject line" msgstr "A linha de assunto atual" #: pan/gui/post-ui.cc:2700 msgid "No. " msgstr "Núm. " #: pan/gui/post-ui.cc:2704 msgid "Enable/Disable" msgstr "Habilitar/desabilitar" #: pan/gui/post-ui.cc:2738 msgid "Follo_wup-To" msgstr "Enca_minhar para" #. i18n: "poster" is a key used by many newsreaders. probably safest to keep this key in english. #: pan/gui/post-ui.cc:2747 msgid "" "The newsgroups where replies to your message should go. This is only needed " "if it differs from the \"Newsgroups\" header.\n" "\n" "To direct all replies to your email address, use \"Followup-To: poster\"" msgstr "" "Grupos de notícias para os quais as respostas da sua mensagem devem ser " "enviadas. Necessário apenas se for diferente do cabeçalho “Grupos de " "notícias”.\n" "\n" "Para encaminhar todas as respostas para seu endereço de e-mail, use " "“Encaminhar para: remetente”" #: pan/gui/post-ui.cc:2754 msgid "_Reply-To" msgstr "_Responder para" #: pan/gui/post-ui.cc:2762 msgid "" "The email account where mail replies to your posted message should go. This " "is only needed if it differs from the \"From\" header." msgstr "" "A conta de e-mail para onde devem ser enviadas todas as respostas à sua " "mensagem. Isto é necessário apenas se for diferente do cabeçalho “De”." #: pan/gui/post-ui.cc:2769 msgid "_Custom Headers" msgstr "_Cabeçalhos personalizados" #: pan/gui/post-ui.cc:2793 msgid "Add \"_User-Agent\" header" msgstr "Adicionar cabeçalho “_User-Agent”" #: pan/gui/post-ui.cc:2800 msgid "Add \"Message-_ID\" header" msgstr "Adicionar o cabeçalho “Message-_ID”" #: pan/gui/post-ui.cc:2928 msgid "Select Parts" msgstr "Selecionar partes" #: pan/gui/post-ui.cc:2941 msgid "_Parts" msgstr "_Partes" #: pan/gui/post-ui.cc:3108 msgid "Post Article" msgstr "Enviar artigo" #: pan/gui/post-ui.cc:3129 msgid "_Message" msgstr "_Mensagem" #: pan/gui/post-ui.cc:3130 msgid "More _Headers" msgstr "Mais cabeçal_hos" #: pan/gui/post-ui.cc:3131 msgid "File _Queue" msgstr "Fila de ar_quivos" #: pan/gui/post-ui.cc:3162 pan/gui/profiles-dialog.cc:490 #, no-c-format msgid "On %d, %n wrote:" msgstr "Em %d, %n escreveu:" #: pan/gui/post-ui.cc:3191 msgid "Add files to queue" msgstr "Adicionar arquivos à fila" #: pan/gui/post-ui.cc:3267 msgid "Save Upload Queue as NZB File" msgstr "Salvar fila de envio em um arquivo NZB" #: pan/gui/prefs.cc:368 #, c-format msgid "Couldn't parse %s color \"%s\"" msgstr "Não foi possível analisar de %s a cor “%s”" # Relacionado a atalho de teclado. Obter é o melhor verbo? #: pan/gui/prefs-ui.cc:140 msgid "Grab Key" msgstr "Obter tecla" #: pan/gui/prefs-ui.cc:146 #, c-format msgid "" "Press the combination of the keys\n" "you want to use for \"%s\"." msgstr "" "Pressione a combinação de teclas\n" "que você deseja usar para “%s”." #: pan/gui/prefs-ui.cc:183 msgid "Edit Shortcut" msgstr "Editar atalho" #: pan/gui/prefs-ui.cc:244 msgid "Error: Shortcut key is invalid!" msgstr "Erro: Tecla de atalho é inválida!" #: pan/gui/prefs-ui.cc:260 msgid "Error: Shortcut key already exists!" msgstr "Erro: Tecla de atalho já existe!" #: pan/gui/prefs-ui.cc:601 msgid "Show only icons" msgstr "Mostrar apenas ícones" #: pan/gui/prefs-ui.cc:602 msgid "Show only text" msgstr "Mostrar apenas texto" #: pan/gui/prefs-ui.cc:603 msgid "Show icons and text" msgstr "Mostrar ícones e texto" #: pan/gui/prefs-ui.cc:642 msgid "Use GNOME Preferences" msgstr "Usar as preferências do GNOME" #: pan/gui/prefs-ui.cc:643 msgid "Use KDE Preferences" msgstr "Usar as preferências do KDE" #: pan/gui/prefs-ui.cc:644 msgid "Use OS X Preferences" msgstr "Usar as preferências do OS X" #: pan/gui/prefs-ui.cc:645 msgid "Use Windows Preferences" msgstr "Usar as preferências do Windows" #: pan/gui/prefs-ui.cc:646 msgid "Custom Command:" msgstr "Comando personalizado:" #: pan/gui/prefs-ui.cc:698 msgid "Disabled" msgstr "Desabilitado" #: pan/gui/prefs-ui.cc:699 msgid "Only new (score == 0)" msgstr "Apenas novos (pontuação == 0)" #: pan/gui/prefs-ui.cc:700 msgid "9999 or more" msgstr "9999 ou mais" #: pan/gui/prefs-ui.cc:701 msgid "5000 to 9998" msgstr "5000 a 9998" #: pan/gui/prefs-ui.cc:702 msgid "1 to 4999" msgstr "1 a 4999" #: pan/gui/prefs-ui.cc:703 msgid "-9998 to -1" msgstr "-9998 a -1" #: pan/gui/prefs-ui.cc:704 msgid "-9999 or less" msgstr "-9999 ou menos" #: pan/gui/prefs-ui.cc:770 #, c-format msgid "Select default global character set. Current setting: %s." msgstr "" "Selecione um conjunto de caracteres global padrão. Definição atual: " "%s." #: pan/gui/prefs-ui.cc:801 msgid "Global Character Set Settings" msgstr "Configuração de conjunto de caracteres global" #: pan/gui/prefs-ui.cc:895 pan/gui/task-pane.cc:1067 msgid "State" msgstr "Estado" #: pan/gui/prefs-ui.cc:929 msgid "Enabled" msgstr "Habilitado" #: pan/gui/prefs-ui.cc:933 msgid "Column Name" msgstr "Nome da coluna" #: pan/gui/prefs-ui.cc:981 msgid "Pan: Preferences" msgstr "Pan: Preferências" #: pan/gui/prefs-ui.cc:996 msgid "Mouse" msgstr "Mouse" #: pan/gui/prefs-ui.cc:998 msgid "Single-click activates, rather than selects, _groups" msgstr "Clique único ativa, ao invés de selecionar, _grupos" #: pan/gui/prefs-ui.cc:1000 msgid "Single-click activates, rather than selects, _articles" msgstr "Clique único ativa, ao invés de selecionar, _artigos" #: pan/gui/prefs-ui.cc:1003 msgid "Groups" msgstr "Grupos" #: pan/gui/prefs-ui.cc:1005 msgid "Get new headers in subscribed groups on _startup" msgstr "Obter novos cabeçalhos nos grupos inscrito_s ao inicializar" #: pan/gui/prefs-ui.cc:1007 msgid "Get new headers when _entering group" msgstr "Obter novos cabeçalhos ao _entrar em um grupo" #: pan/gui/prefs-ui.cc:1009 msgid "Mark entire group _read when leaving group" msgstr "Ma_rcar todo o grupo como lido ao deixá-lo" #: pan/gui/prefs-ui.cc:1011 msgid "Mark entire group read before getting _new headers" msgstr "Marcar todo o grupo como lido antes de obter _novos cabeçalhos" #: pan/gui/prefs-ui.cc:1013 msgid "E_xpand all threads when entering group" msgstr "E_xpandir todas as discussões ao entrar em um grupo" #: pan/gui/prefs-ui.cc:1018 msgid "Articles" msgstr "Artigos" #: pan/gui/prefs-ui.cc:1020 msgid "Mark downloaded articles read" msgstr "Marcar artigos baixados como lidos" #: pan/gui/prefs-ui.cc:1022 msgid "Space selects next article rather than next unread" msgstr "" "Espaço seleciona o próximo artigo ao invés da próxima mensagem não lida" #: pan/gui/prefs-ui.cc:1024 msgid "Expand threads upon selection" msgstr "Expandir discussões ao selecionar" #: pan/gui/prefs-ui.cc:1026 msgid "Always ask before deleting an article" msgstr "Sempre perguntar antes de excluir um artigo" #: pan/gui/prefs-ui.cc:1028 msgid "Smooth scrolling" msgstr "Rolagem macia" #: pan/gui/prefs-ui.cc:1033 msgid "Article Cache" msgstr "Cache de artigos" #: pan/gui/prefs-ui.cc:1034 msgid "Clear article cache on shutdown" msgstr "Limpar cache de artigos ao desligar" #: pan/gui/prefs-ui.cc:1037 msgid "Size of article cache (in MiB):" msgstr "Tamanho do cache de artigos (em MiB):" #: pan/gui/prefs-ui.cc:1041 msgid "File extension for cached articles: " msgstr "Extensão de arquivo para artigos no cache: " #: pan/gui/prefs-ui.cc:1045 msgid "Tabs" msgstr "Abas" #: pan/gui/prefs-ui.cc:1050 msgid "_Behavior" msgstr "C_omportamento" #: pan/gui/prefs-ui.cc:1050 msgid "Behavior" msgstr "Comportamento" #: pan/gui/prefs-ui.cc:1056 msgid "Task Pane" msgstr "Painel de tarefas" #: pan/gui/prefs-ui.cc:1057 msgid "Show task pane popups" msgstr "Mostrar janelas no painel de tarefas" #: pan/gui/prefs-ui.cc:1059 msgid "Show Download Meter" msgstr "Mostrar medida de download" #: pan/gui/prefs-ui.cc:1063 msgid "_Panes" msgstr "_Painéis" #: pan/gui/prefs-ui.cc:1063 msgid "Panes" msgstr "Painéis" #: pan/gui/prefs-ui.cc:1069 msgid "Language Settings" msgstr "Configurações de idioma" #: pan/gui/prefs-ui.cc:1070 msgid "Font" msgstr "Fonte" #. systray and notify popup #: pan/gui/prefs-ui.cc:1077 msgid "System Tray Behavior" msgstr "Comportamento da área de notificação" #: pan/gui/prefs-ui.cc:1079 msgid "Start Pan minimized" msgstr "Iniciar Pan minimizado" #: pan/gui/prefs-ui.cc:1082 msgid "Show notifications" msgstr "Mostrar notificações" #. allow multiple instances (seperate, not communicating with dbus) #: pan/gui/prefs-ui.cc:1087 msgid "Startup Behavior" msgstr "Comportamento de inicialização" #: pan/gui/prefs-ui.cc:1089 msgid "Allow multiple instances of Pan" msgstr "Permitir múltiplas instâncias do Pan" #: pan/gui/prefs-ui.cc:1094 msgid "Autosave Article Draft" msgstr "Salvamento automático de rascunho de artigos" #: pan/gui/prefs-ui.cc:1096 msgid "Minutes to autosave the current Article Draft: " msgstr "Minutos até salvar automaticamente o rascunho de artigo: " #: pan/gui/prefs-ui.cc:1101 msgid "Autosave Articles" msgstr "Salvamento automático de artigos" #: pan/gui/prefs-ui.cc:1103 msgid "Minutes to autosave newsrc files: " msgstr "Minutos até salvar automaticamente os arquivos newsrc: " #: pan/gui/prefs-ui.cc:1110 msgid "Password Storage" msgstr "Armazenamento de senha" #: pan/gui/prefs-ui.cc:1112 msgid "Save passwords in password storage" msgstr "Salve senhas no armazenamento de senha" #: pan/gui/prefs-ui.cc:1119 msgid "_Miscellaneous" msgstr "_Miscelânea" #: pan/gui/prefs-ui.cc:1119 msgid "Miscellaneous" msgstr "Miscelânea" #: pan/gui/prefs-ui.cc:1124 msgid "Pane Layout" msgstr "Disposição dos painéis" #: pan/gui/prefs-ui.cc:1143 msgid "1=Groups, 2=Headers, 3=Body" msgstr "1=Grupos, 2=Cabeçalhos, 3=Corpo" #: pan/gui/prefs-ui.cc:1145 msgid "1=Groups, 2=Body, 3=Headers" msgstr "1=Grupos, 2=Corpo, 3=Cabeçalhos" #: pan/gui/prefs-ui.cc:1147 msgid "1=Headers, 2=Groups, 3=Body" msgstr "1=Cabeçalhos, 2=Grupos, 3=Corpo" #: pan/gui/prefs-ui.cc:1149 msgid "1=Headers, 2=Body, 3=Groups" msgstr "1=Cabeçalhos, 2=Corpo, 3=Grupos" #: pan/gui/prefs-ui.cc:1151 msgid "1=Body, 2=Groups, 3=Headers" msgstr "1=Corpo, 2=Grupos, 3=Cabeçalhos" #: pan/gui/prefs-ui.cc:1153 msgid "1=Body, 2=Headers, 3=Groups" msgstr "1=Corpo, 2=Cabeçalhos, 3=Grupos" #: pan/gui/prefs-ui.cc:1157 msgid "Layout" msgstr "Disposição" #: pan/gui/prefs-ui.cc:1162 msgid "Header Pane Columns" msgstr "Colunas do painel de cabeçalhos" #: pan/gui/prefs-ui.cc:1166 msgid "_Headers" msgstr "Cabeçal_hos" #: pan/gui/prefs-ui.cc:1166 msgid "Headers" msgstr "Cabeçalhos" #: pan/gui/prefs-ui.cc:1172 msgid "" "This menu lets you configure Pan to take certain actions on your behalf " "automatically, based on an article's score." msgstr "" "Este menu permite que você configure Pan para tomar certas ações por você " "automaticamente, baseado em uma pontuação do artigo." #: pan/gui/prefs-ui.cc:1177 msgid "Mark affected articles read" msgstr "Marcar artigos afetados como lidos" #: pan/gui/prefs-ui.cc:1186 msgid "_Delete articles scoring at: " msgstr "_Excluir artigos com pontuações em: " #: pan/gui/prefs-ui.cc:1192 msgid "Mark articles read scoring at: " msgstr "Marcar como lidos artigos com pontuações em: " #: pan/gui/prefs-ui.cc:1198 msgid "_Cache articles scoring at: " msgstr "Armazenar no _cache artigos com pontuações em: " #: pan/gui/prefs-ui.cc:1204 msgid "Download attachments of articles scoring at: " msgstr "Baixar anexos de artigos com pontuações em: " #: pan/gui/prefs-ui.cc:1207 msgid "Actions" msgstr "Ações" #: pan/gui/prefs-ui.cc:1212 pan/gui/prefs-ui.cc:1233 msgid "Fonts" msgstr "Fontes" #: pan/gui/prefs-ui.cc:1214 msgid "Use custom font in Group Pane:" msgstr "Usar fonte personalizada no painel de grupos:" #: pan/gui/prefs-ui.cc:1219 msgid "Use custom font in Header Pane:" msgstr "Usar fonte personalizada no painel de cabeçalhos:" #: pan/gui/prefs-ui.cc:1224 msgid "Use custom font in Body Pane:" msgstr "Usar fonte personalizada no painel de corpo:" #: pan/gui/prefs-ui.cc:1229 msgid "Monospace font:" msgstr "Fonte monoespaçada:" #: pan/gui/prefs-ui.cc:1233 msgid "_Fonts" msgstr "_Fontes" #: pan/gui/prefs-ui.cc:1242 msgid "Header Pane" msgstr "Painel de cabeçalhos" #: pan/gui/prefs-ui.cc:1245 pan/gui/prefs-ui.cc:1251 pan/gui/prefs-ui.cc:1257 #: pan/gui/prefs-ui.cc:1263 pan/gui/prefs-ui.cc:1269 pan/gui/prefs-ui.cc:1275 #: pan/gui/prefs-ui.cc:1284 pan/gui/prefs-ui.cc:1290 pan/gui/prefs-ui.cc:1296 #: pan/gui/prefs-ui.cc:1302 pan/gui/prefs-ui.cc:1308 pan/gui/prefs-ui.cc:1318 #: pan/gui/prefs-ui.cc:1328 msgid "Text:" msgstr "Texto:" #: pan/gui/prefs-ui.cc:1247 pan/gui/prefs-ui.cc:1253 pan/gui/prefs-ui.cc:1259 #: pan/gui/prefs-ui.cc:1265 pan/gui/prefs-ui.cc:1271 pan/gui/prefs-ui.cc:1277 #: pan/gui/prefs-ui.cc:1286 pan/gui/prefs-ui.cc:1292 pan/gui/prefs-ui.cc:1298 #: pan/gui/prefs-ui.cc:1304 pan/gui/prefs-ui.cc:1310 pan/gui/prefs-ui.cc:1320 #: pan/gui/prefs-ui.cc:1330 msgid "Background:" msgstr "Plano de fundo:" #: pan/gui/prefs-ui.cc:1249 msgid "Scores of 9999 or more:" msgstr "Pontuações em 9999 ou mais:" #: pan/gui/prefs-ui.cc:1255 msgid "Scores from 5000 to 9998:" msgstr "Pontuações de 5000 até 9998:" #: pan/gui/prefs-ui.cc:1261 msgid "Scores from 1 to 4999:" msgstr "Pontuações de 1 até 4999:" #: pan/gui/prefs-ui.cc:1267 msgid "Scores from -9998 to -1:" msgstr "Pontuações de -9998 até -1:" #: pan/gui/prefs-ui.cc:1273 msgid "Scores of -9999 or less:" msgstr "Pontuações de -9999 ou menos:" #: pan/gui/prefs-ui.cc:1279 msgid "Collapsed thread with unread articles:" msgstr "Discussão recolhida com artigos não lidos:" #: pan/gui/prefs-ui.cc:1281 msgid "Body Pane" msgstr "Painel de corpo" #: pan/gui/prefs-ui.cc:1288 msgid "First level of quoted text:" msgstr "Primeiro nível de texto citado:" #: pan/gui/prefs-ui.cc:1294 msgid "Second level of quoted text:" msgstr "Segundo nível de texto citado:" #: pan/gui/prefs-ui.cc:1300 msgid "Third level of quoted text:" msgstr "Terceiro nível de texto citado:" #. #: pan/gui/prefs-ui.cc:1306 msgid "URL:" msgstr "URL:" #. #: pan/gui/prefs-ui.cc:1312 msgid "Signature:" msgstr "Assinatura:" #: pan/gui/prefs-ui.cc:1315 msgid "Group Pane" msgstr "Painel de grupos" #. #: pan/gui/prefs-ui.cc:1322 msgid "Group Color:" msgstr "Painel de cores:" #: pan/gui/prefs-ui.cc:1326 msgid "Other Text" msgstr "Outro texto" #: pan/gui/prefs-ui.cc:1332 msgid "Text Color:" msgstr "Cor do texto:" #: pan/gui/prefs-ui.cc:1335 msgid "_Colors" msgstr "_Cores" #: pan/gui/prefs-ui.cc:1335 msgid "Colors" msgstr "Cores" #: pan/gui/prefs-ui.cc:1340 msgid "Preferred Applications" msgstr "Aplicativos preferidos" #: pan/gui/prefs-ui.cc:1344 msgid "_Web browser:" msgstr "Navegador da _web:" #: pan/gui/prefs-ui.cc:1347 msgid "_Gemini client:" msgstr "Cliente _Gemini:" #: pan/gui/prefs-ui.cc:1350 msgid "_Mail reader:" msgstr "Leitor de e-_mail:" #: pan/gui/prefs-ui.cc:1352 msgid "_Text editor:" msgstr "Editor de _texto:" #: pan/gui/prefs-ui.cc:1354 msgid "_HTML previewer:" msgstr "Visualizador de _HTML:" #: pan/gui/prefs-ui.cc:1356 msgid "_Applications" msgstr "_Aplicativos" #: pan/gui/prefs-ui.cc:1356 msgid "Applications" msgstr "Aplicativos" #: pan/gui/prefs-ui.cc:1361 pan/gui/task-pane.cc:555 msgid "Encoding" msgstr "Codificação" #: pan/gui/prefs-ui.cc:1365 msgid "Default bytes per file (for encoder): " msgstr "Bytes por arquivo padrão (para codificador): " #: pan/gui/prefs-ui.cc:1370 msgid "_Upload" msgstr "_Envio" #: pan/gui/prefs-ui.cc:1370 msgid "Upload" msgstr "Envio" #: pan/gui/prefs-ui.cc:1379 msgid "_Shortcuts" msgstr "Atalho_s" #: pan/gui/prefs-ui.cc:1379 msgid "Shortcuts" msgstr "Atalhos" #: pan/gui/profiles-dialog.cc:83 msgid "Please choose your email address according to your PGP key's user id." msgstr "" "Por favor, escolha seu endereço de e-mail de acordo com seu id de usuário da " "chave PGP." #: pan/gui/profiles-dialog.cc:131 msgid "Posting Profile" msgstr "Perfil de envio" #: pan/gui/profiles-dialog.cc:143 msgid "Profile Information" msgstr "Informação do perfil" #: pan/gui/profiles-dialog.cc:147 msgid "_Profile Name:" msgstr "Nome do _perfil:" #: pan/gui/profiles-dialog.cc:150 msgid "Required Information" msgstr "Informação requerida" #: pan/gui/profiles-dialog.cc:154 msgid "_Full Name:" msgstr "Nome _completo:" #: pan/gui/profiles-dialog.cc:158 msgid "" "Your email address.\n" "Note that this has to match your PGP signature's address\n" "if you want your messages to be PGP-signed or encrypted correctly." msgstr "" "Seu endereço de e-mail.\n" "Note que ele deve corresponder ao endereço da sua assinatura PGP,\n" "se deseja que suas mensagens sejam criptografadas ou assinadas em PGP " "corretamente." #: pan/gui/profiles-dialog.cc:162 msgid "_Email Address:" msgstr "_Endereço de e-mail:" #: pan/gui/profiles-dialog.cc:164 msgid "_Post Articles via:" msgstr "_Enviar artigos via:" #: pan/gui/profiles-dialog.cc:167 msgid "Signature" msgstr "Assinatura" #: pan/gui/profiles-dialog.cc:170 msgid "_Use a Signature" msgstr "_Usar uma assinatura" #: pan/gui/profiles-dialog.cc:174 msgid "Signature File" msgstr "Arquivo de assinatura" #: pan/gui/profiles-dialog.cc:184 msgid "Text File" msgstr "Arquivo de texto" #: pan/gui/profiles-dialog.cc:186 msgid "Text" msgstr "Texto" #: pan/gui/profiles-dialog.cc:188 msgid "Command" msgstr "Comando" #: pan/gui/profiles-dialog.cc:191 msgid "PGP Signature" msgstr "Assinatura PGP" #: pan/gui/profiles-dialog.cc:196 msgid "Signature Type: " msgstr "Tipo de assinatura: " #: pan/gui/profiles-dialog.cc:227 msgid "Avatars" msgstr "Avatares" #: pan/gui/profiles-dialog.cc:230 msgid "" "You can add an avatar icon to your articles with a Base64-encoded PNG.\n" "Add the Base64-encoded picture without the trailing “Face:”." msgstr "" "Você pode adicionar um ícone de avatar aos seus artigos com um PNG " "codificado em Base64.\n" "Adicione a imagem codificada em Base64 sem o “Face:” inicial." #: pan/gui/profiles-dialog.cc:232 msgid "_Face:" msgstr "_Face:" #: pan/gui/profiles-dialog.cc:236 msgid "" "You can add an avatar icon to your articles with a unique X-Face code.\n" "Add the code without the trailing \"X-Face:\" \n" " if it was generated by a helper program (for example http://www.dairiki.org/" "xface/xface.php)." msgstr "" "Você pode adicionar um ícone de avatar aos seus artigos com um código X-Face " "único.\n" "Adicione o código sem “X-Face:” à direita\n" "se ele foi gerado por um programa auxiliar (ex.: http://www.dairiki.org/" "xface/xface.php)." #: pan/gui/profiles-dialog.cc:239 msgid "_X-Face:" msgstr "_X-Face:" #: pan/gui/profiles-dialog.cc:241 msgid "Optional Information" msgstr "Informação opcional" #: pan/gui/profiles-dialog.cc:246 msgid "" "When posting to Usenet, your article's Message-ID contains a domain name.\n" "You can set a custom domain name here, or leave it blank to let Pan use the " "domain name from your email address." msgstr "" "Ao enviar para Usenet, o Message-ID do artigo contém um nome de domínio.\n" "Você pode definir um domínio personalizado aqui, ou deixá-lo em branco para " "deixar que o Pan use o nome de domínio do seu endereço de e-mail." #: pan/gui/profiles-dialog.cc:249 msgid "Message-ID _Domain Name:" msgstr "Nome do _domínio da message-ID:" #: pan/gui/profiles-dialog.cc:253 #, c-format msgid "" "%i for Message-ID\n" "%a for Author and Address\n" "%n for Author name\n" "%d for Date" msgstr "" "%i pada ID da mensagem\n" "%a para autor e endereço\n" "%n para nome do autor\n" "%d para data" #: pan/gui/profiles-dialog.cc:254 msgid "_Attribution:" msgstr "_Atribuição:" #. Translators: Do not localize Reply-To and the quote marks in \"Your Name\". #: pan/gui/profiles-dialog.cc:279 msgid "" "Extra headers to be included in your articles, such as\n" "Reply-To: \"Your Name\" \n" "Organization: Your Organization\n" msgstr "" "Cabeçalhos extras para serem incluídos aos seus artigos, como\n" "Responder a: \"Seu Nome\" \n" "Organização: Sua organização\n" #: pan/gui/profiles-dialog.cc:289 msgid "E_xtra Headers:" msgstr "Cabeçalhos e_xtras:" #: pan/gui/profiles-dialog.cc:334 msgid "Invalid email address." msgstr "Endereço de e-mail inválido." #: pan/gui/profiles-dialog.cc:335 msgid "Please use an address of the form joe@somewhere.org" msgstr "Por favor, use um endereço no formato joao@algumlugar.org" #: pan/gui/profiles-dialog.cc:491 msgid "New Profile" msgstr "Novo perfil" #: pan/gui/profiles-dialog.cc:537 msgid "Posting Profiles" msgstr "Perfis de envio" #: pan/gui/profiles-dialog.cc:553 msgid "Profiles" msgstr "Perfis" #: pan/gui/save-attach-ui.cc:44 #, c-format msgid "" "%g - group as one directory (alt.binaries.pictures.trains)\n" "%G - group as nested directory (/alt/binaries/pictures/trains)\n" "%s - Subject line excerpt\n" "%S - Subject line\n" "%n - Poster display name\n" "%e - Poster email address\n" "%d - Article timestamp\n" "\"/home/user/News/Pan/%g\" becomes\n" "\"/home/user/News/Pan/alt.binaries.pictures.trains\", and\n" "\"/home/user/News/Pan/%G\" becomes\n" "\"/home/user/News/Pan/alt/binaries/pictures/trains\"," msgstr "" "%g - grupo como um diretório (alt.binaries.pictures.trains)\n" "%G - grupo como diretórios aninhados (/alt/binaries/pictures/trains)\n" "%s - fragmento de linha de assunto\n" "%S - linha de assunto\n" "%n - nome de exibição de quem enviou\n" "%e - endereço de e-mail de quem enviou\n" "%d - marca temporal do artigo\n" "“/home/user/News/Pan/%g” é convertido em\n" "“/home/user/News/Pan/alt.binaries.pictures.trains”, e\n" "“/home/user/News/Pan/%G” é convertido em\n" "“/home/user/News/Pan/alt/binaries/pictures/trains”," #: pan/gui/save-attach-ui.cc:196 pan/gui/save-ui.cc:216 msgid "Add to the queue sorted by date posted" msgstr "Adicionar à fila classificado por data de envio" #: pan/gui/save-attach-ui.cc:197 pan/gui/save-ui.cc:217 msgid "Add to the front of the queue" msgstr "Adicionar ao início da fila" #: pan/gui/save-attach-ui.cc:198 pan/gui/save-ui.cc:218 msgid "Add to the back of the queue" msgstr "Adicionar ao final da fila" #: pan/gui/save-attach-ui.cc:230 msgid "Pan: Save Attachments" msgstr "Pan: Salvar os anexos" #: pan/gui/save-attach-ui.cc:255 pan/gui/save-attach-ui.cc:273 #: pan/gui/save-ui.cc:270 pan/gui/save-ui.cc:291 msgid "_Location:" msgstr "_Local:" #: pan/gui/save-attach-ui.cc:259 pan/gui/save-ui.cc:274 msgid "Save Articles" msgstr "Salvar artigos" #: pan/gui/save-attach-ui.cc:276 pan/gui/save-ui.cc:294 #, c-format msgid "_Group's path: %s" msgstr "Caminho do _grupo: %s" #: pan/gui/save-attach-ui.cc:287 pan/gui/save-ui.cc:309 msgid "_Priority:" msgstr "_Prioridade:" #: pan/gui/save-ui.cc:44 #, c-format msgid "" "%g - group as one directory (alt.binaries.pictures.trains)\n" "%G - group as nested directory (/alt/binaries/pictures/trains)\n" "%s - subject line excerpt\n" "%S - subject line\n" "%n - Poster display name\n" "%e - Poster email address\n" "%d - Article timestamp\n" " \n" "\"/home/user/News/Pan/%g\" becomes\n" "\"/home/user/News/Pan/alt.binaries.pictures.trains\", and\n" "\"/home/user/News/Pan/%G\" becomes\n" "\"/home/user/News/Pan/alt/binaries/pictures/trains\"," msgstr "" "%g - grupo como um diretório (alt.binaries.pictures.trains)\n" "%G - grupo como diretórios aninhados (/alt/binaries/pictures/trains)\n" "%s - fragmento de linha de assunto\n" "%S - linha de assunto\n" "%n - nome de exibição de quem enviou\n" "%e - endereço de e-mail de quem enviou\n" "%d - marca temporal do artigo\n" "“/home/user/News/Pan/%g” é convertido em\n" "“/home/user/News/Pan/alt.binaries.pictures.trains”, e\n" "“/home/user/News/Pan/%G” é convertido em\n" "“/home/user/News/Pan/alt/binaries/pictures/trains”," #: pan/gui/save-ui.cc:207 msgid "Save attachments" msgstr "Salvar anexos" #: pan/gui/save-ui.cc:208 msgid "Save text" msgstr "Salvar texto" #: pan/gui/save-ui.cc:209 msgid "Save attachments and text" msgstr "Salvar anexos e texto" #: pan/gui/save-ui.cc:245 msgid "Pan: Save Articles" msgstr "Pan: Salvar artigos" #: pan/gui/save-ui.cc:305 msgid "_Action:" msgstr "_Ação:" #: pan/gui/score-add-ui.cc:89 msgid "is more than" msgstr "é maior que" #: pan/gui/score-add-ui.cc:90 msgid "is at most" msgstr "é no máximo" #: pan/gui/score-add-ui.cc:112 msgid "increase the article's score by" msgstr "aumentar a pontuação do artigo em" #: pan/gui/score-add-ui.cc:113 msgid "decrease the article's score by" msgstr "diminuir a pontuação do artigo em" #: pan/gui/score-add-ui.cc:114 msgid "set the article's score to" msgstr "definir a pontuação do artigo para" #: pan/gui/score-add-ui.cc:115 msgid "watch the article (set its score to 9999)" msgstr "monitorar o artigo (define sua pontuação para 9999)" #: pan/gui/score-add-ui.cc:116 msgid "ignore the article (set its score to -9999)" msgstr "ignora o artigo (define sua pontuação para -9999)" #: pan/gui/score-add-ui.cc:141 msgid "References" msgstr "Referências" #: pan/gui/score-add-ui.cc:142 msgid "Line Count" msgstr "Número de linhas" #: pan/gui/score-add-ui.cc:143 msgid "Byte Count" msgstr "Número de bytes" #: pan/gui/score-add-ui.cc:144 msgid "Crosspost Group Count" msgstr "Número de grupos de envio cruzado" #: pan/gui/score-add-ui.cc:145 msgid "Age (in days)" msgstr "Antiguidade (em dias)" #: pan/gui/score-add-ui.cc:167 msgid "for the next month" msgstr "para o próximo mês" #: pan/gui/score-add-ui.cc:168 msgid "for the next six months" msgstr "para os próximos seis meses" #: pan/gui/score-add-ui.cc:169 msgid "forever" msgstr "para sempre" #: pan/gui/score-add-ui.cc:194 msgid "contains" msgstr "contém" #: pan/gui/score-add-ui.cc:195 msgid "doesn't contain" msgstr "não contém" #: pan/gui/score-add-ui.cc:196 msgid "is" msgstr "é" #: pan/gui/score-add-ui.cc:197 msgid "isn't" msgstr "não é" #: pan/gui/score-add-ui.cc:198 msgid "starts with" msgstr "inicia com" #: pan/gui/score-add-ui.cc:199 msgid "ends with" msgstr "termina com" #: pan/gui/score-add-ui.cc:200 msgid "matches regex" msgstr "corresponde à expressão regular" #: pan/gui/score-add-ui.cc:481 msgid "Another rule already sets this article's score." msgstr "Outra regra já define a pontuação deste artigo." #: pan/gui/score-add-ui.cc:482 msgid "You may want to go back or delete the old rule." msgstr "Talvez você queira voltar ou excluir a regra antiga." #: pan/gui/score-add-ui.cc:484 msgid "Back" msgstr "Voltar" #: pan/gui/score-add-ui.cc:485 pan/gui/task-pane.cc:1040 msgid "Delete" msgstr "Excluir" #: pan/gui/score-add-ui.cc:486 pan/gui/score-add-ui.cc:607 #: pan/gui/score-view-ui.cc:207 msgid "Add" msgstr "Adicionar" #: pan/gui/score-add-ui.cc:553 msgid "Add and Re_score" msgstr "Adicionar e _pontuar de novo" #: pan/gui/score-add-ui.cc:602 pan/gui/score-add-ui.cc:622 msgid "New Scoring Rule" msgstr "Nova regra de pontuação" #: pan/gui/score-add-ui.cc:633 msgid "Group name" msgstr "Nome do grupo" #: pan/gui/score-add-ui.cc:640 msgid "and" msgstr "e" #: pan/gui/score-view-ui.cc:55 msgid "Close and Re_score" msgstr "Fechar e p_ontuar de novo" #: pan/gui/score-view-ui.cc:153 #, c-format msgid "File %s, Lines %d - %d" msgstr "Arquivo %s, linhas %d - %d" #: pan/gui/score-view-ui.cc:181 msgid "Pan: Article's Scores" msgstr "Pan: Pontuações do artigo" #: pan/gui/score-view-ui.cc:212 msgid "New Score" msgstr "Nova pontuação" #: pan/gui/score-view-ui.cc:217 msgid "Criteria" msgstr "Critérios" #: pan/gui/score-view-ui.cc:240 msgid "Add a New Scoring Rule" msgstr "Adiciona uma nova regra de pontuação" #: pan/gui/score-view-ui.cc:247 msgid "Remove the Selected Scoring Rule" msgstr "Remover a regra de pontuação selecionada" #: pan/gui/server-ui.cc:292 msgid "Please specify the server's address." msgstr "Por favor, especifique o endereço do servidor." #: pan/gui/server-ui.cc:344 msgid "Import SSL Certificate (PEM Format) From File" msgstr "Importar certificado SSL (formato PEM) a partir de um arquivo" #. create the dialog #: pan/gui/server-ui.cc:381 pan/gui/server-ui.cc:996 msgid "Add a Server" msgstr "Adiciona um servidor" #: pan/gui/server-ui.cc:381 pan/gui/server-ui.cc:1002 msgid "Edit a Server's Settings" msgstr "Edita as configurações do servidor" #: pan/gui/server-ui.cc:401 msgid "Location" msgstr "Local" #: pan/gui/server-ui.cc:405 msgid "The news server's actual address, e.g. \"news.mynewsserver.com\"." msgstr "O endereço do servidor de notícias, como “news.meuservidor.com”." #: pan/gui/server-ui.cc:406 msgid "_Address:" msgstr "_Endereço:" #: pan/gui/server-ui.cc:411 msgid "" "The news server's port number. Typically 119 for unencrypted and 563 for " "encrypted connections (SSL/TLS)." msgstr "" "O número da porta do servidor de notícias. Normalmente 119 para conexões " "descriptografadas e 563 para criptografadas (SSL/TLS)." #: pan/gui/server-ui.cc:412 msgid "Por_t:" msgstr "Por_ta:" #: pan/gui/server-ui.cc:415 msgid "Login (if Required)" msgstr "Autenticação (se necessária)" #: pan/gui/server-ui.cc:419 msgid "_Username:" msgstr "Nome de _usuário:" #: pan/gui/server-ui.cc:420 msgid "" "The username to give the server when asked. If your server doesn't require " "authentication, you can leave this blank." msgstr "" "O nome de usuário para fornecer ao servidor quando exigido. Se o seu " "servidor não requer autenticação, você pode deixar isso em branco." #: pan/gui/server-ui.cc:424 msgid "_Password:" msgstr "_Senha:" #: pan/gui/server-ui.cc:425 msgid "" "The password to give the server when asked. If your server doesn't require " "authentication, you can leave this blank." msgstr "" "A senha para fornecer ao servidor quando exigido. Se o seu servidor não " "requer autenticação, você pode deixar isso em branco." #: pan/gui/server-ui.cc:428 msgid "Settings" msgstr "Configurações" #: pan/gui/server-ui.cc:435 msgid "Connection _Limit:" msgstr "_Limite de conexão:" #: pan/gui/server-ui.cc:439 msgid "After Two Weeks" msgstr "Após duas semanas" #: pan/gui/server-ui.cc:440 msgid "After One Month" msgstr "Após um mês" #: pan/gui/server-ui.cc:441 msgid "After Two Months" msgstr "Após dois meses" #: pan/gui/server-ui.cc:442 msgid "After Three Months" msgstr "Após três meses" #: pan/gui/server-ui.cc:443 msgid "After Six Months" msgstr "Após seis meses" #: pan/gui/server-ui.cc:444 msgid "Never Expire Old Articles" msgstr "Artigos antigos nunca expiram" #: pan/gui/server-ui.cc:458 msgid "E_xpire Old Articles:" msgstr "E_xpiração de artigos antigos:" #: pan/gui/server-ui.cc:462 msgid "Primary" msgstr "Primário" #: pan/gui/server-ui.cc:463 msgid "Fallback" msgstr "Reserva" #: pan/gui/server-ui.cc:477 msgid "Server Rank:" msgstr "Classificação do servidor:" #: pan/gui/server-ui.cc:481 msgid "" "Fallback servers are used for articles that can't be found on the " "primaries. One common approach is to use free servers as primaries and " "subscription servers as fallbacks." msgstr "" "Servidores reservas são usados para artigos que não podem ser encontrados " "nos primários. Uma abordagem comum é usar servidores gratuitos como " "primários e servidores por inscrição como reservas." #: pan/gui/server-ui.cc:486 msgid "Disable Compression (N/A)" msgstr "Desabilitar compressão (N/D)" #: pan/gui/server-ui.cc:487 msgid "XZVER Compression (Astraweb)" msgstr "Compressão XZVER (Astraweb)" #: pan/gui/server-ui.cc:488 msgid "GZIP Compression (Giganews etc.)" msgstr "Compressão GZIP (Giganews etc.)" #: pan/gui/server-ui.cc:502 msgid "Header Compression:" msgstr "Compressão de cabeçalho:" #: pan/gui/server-ui.cc:508 msgid "Security" msgstr "Segurança" #: pan/gui/server-ui.cc:513 msgid "Use Unsecure (Plaintext) Connections" msgstr "Usar conexões inseguras (texto simples)" #: pan/gui/server-ui.cc:514 msgid "Use Secure SSL Connections" msgstr "Usar conexões SSL seguras" #: pan/gui/server-ui.cc:529 msgid "TLS (SSL) Settings:" msgstr "Configurações TLS (SSL):" #: pan/gui/server-ui.cc:534 msgid "" "You can enable/disable secure SSL/TLS connections here. If you enable SSL/" "TLS, your data is encrypted and secure. It is encouraged to enable SSL/TLS " "for privacy reasons." msgstr "" "Você pode habilitar/desabilitar conexões SSL/TLS seguras aqui. Se você " "habilitar SSL/TLS, seus dados são criptografados e seguros. Encoraja-se a " "habilitar SSL/TLS por motivos de privacidade." #: pan/gui/server-ui.cc:539 msgid "Always trust this server's certificate" msgstr "Sempre confiar no certificado deste servidor" #: pan/gui/server-ui.cc:724 #, c-format msgid "Really delete \"%s\"?" msgstr "Você realmente deseja excluir “%s”?" #: pan/gui/server-ui.cc:813 msgid "No information available." msgstr "Nenhuma informação disponível." #: pan/gui/server-ui.cc:823 #, c-format msgid "Server Certificate for '%s'" msgstr "Certificado do servidor para “%s”" #: pan/gui/server-ui.cc:922 #, c-format msgid "Really delete certificate for \"%s\"?" msgstr "Você realmente deseja excluir o certificado de “%s”?" #. dialog #: pan/gui/server-ui.cc:949 pan/gui/server-ui.cc:970 pan/gui/server-ui.cc:1068 msgid "Servers" msgstr "Servidores" #: pan/gui/server-ui.cc:1009 msgid "Remove a Server" msgstr "Remove o servidor" #. dialog #: pan/gui/server-ui.cc:1042 msgid "SSL Certificates" msgstr "Certificados SSL" #: pan/gui/server-ui.cc:1063 msgid "Certificates" msgstr "Certificados" #: pan/gui/server-ui.cc:1094 msgid "Import Certificate" msgstr "Importar certificado" #: pan/gui/server-ui.cc:1100 msgid "Inspect Certificate" msgstr "Inspecionar certificado" #: pan/gui/server-ui.cc:1107 msgid "Remove Certificate" msgstr "Remover certificado" #: pan/gui/task-pane.cc:124 #, c-format msgid "" "\n" "Upload\n" "\n" "Subject: \"%s\"\n" "From: %s\n" "Groups: %s\n" "Sourcefile: %s\n" msgstr "" "\n" "Envio\n" "\n" "Assunto: “%s”\n" "De: %s\n" "Grupos: %s\n" "Arquivo fonte: %s\n" #: pan/gui/task-pane.cc:136 #, c-format msgid "" "\n" "Download\n" "\n" "Subject: \"%s\"\n" "From: %s\n" "Date: %s\n" "Groups: %s\n" "Save Path: %s\n" msgstr "" "\n" "Download\n" "\n" "Assunto: “%s”\n" "De: %s\n" "Data: %s\n" "Grupos: %s\n" "Caminho para salvar: %s\n" #: pan/gui/task-pane.cc:138 msgid "unknown" msgstr "desconhecido" #: pan/gui/task-pane.cc:306 msgid "Choose New Destination for Selected Tasks" msgstr "Escolher nova destinação para as tarefas selecionadas" #: pan/gui/task-pane.cc:310 msgid "Save" msgstr "Salvar" #: pan/gui/task-pane.cc:460 #, c-format msgid "Pan: Tasks (%d Queued, %d Running, %d Stopped)" msgstr "Pan: Tarefas (%d em fila, %d executando, %d parados)" #: pan/gui/task-pane.cc:462 #, c-format msgid "Pan: Tasks (%d Queued, %d Running)" msgstr "Pan: Tarefas (%d em fila, %d executando)" #: pan/gui/task-pane.cc:464 msgid "Pan: Tasks" msgstr "Pan: Tarefas" # %lu = número de tarefas #: pan/gui/task-pane.cc:489 #, c-format msgid "%lu selected, %s" msgstr "%lu selecionadas, %s" #: pan/gui/task-pane.cc:553 msgid "Running" msgstr "Executando" #: pan/gui/task-pane.cc:554 msgid "Decoding" msgstr "Decodificando" #: pan/gui/task-pane.cc:556 msgid "Queued for Decode" msgstr "Em fila para decodificação" #: pan/gui/task-pane.cc:557 msgid "Queued for Encode" msgstr "Em fila para codificação" #: pan/gui/task-pane.cc:558 msgid "Queued" msgstr "Em fila" #: pan/gui/task-pane.cc:559 msgid "Stopped" msgstr "Parado" #: pan/gui/task-pane.cc:560 msgid "Removing" msgstr "Removendo" #: pan/gui/task-pane.cc:589 #, c-format msgid "%d%% Done" msgstr "%d%% pronto" #: pan/gui/task-pane.cc:595 #, c-format msgid "%d:%02d:%02d Remaining (%d @ %lu KiB/s)" msgstr "%d∶%02d∶%02d restantes (%d @ %lu KiB/s)" #: pan/gui/task-pane.cc:690 pan/gui/task-pane.cc:691 msgid "Move To Top" msgstr "Mover para o início" #: pan/gui/task-pane.cc:695 pan/gui/task-pane.cc:696 msgid "Move To Bottom" msgstr "Mover para o fim" #: pan/gui/task-pane.cc:700 pan/gui/task-pane.cc:701 msgid "Show Task Information" msgstr "Mostrar informação de tarefa" #: pan/gui/task-pane.cc:705 pan/gui/task-pane.cc:706 msgid "Stop Task" msgstr "Parar tarefa" #: pan/gui/task-pane.cc:710 pan/gui/task-pane.cc:711 msgid "Delete Task" msgstr "Excluir tarefa" #: pan/gui/task-pane.cc:715 pan/gui/task-pane.cc:716 msgid "Restart Task" msgstr "Reiniciar tarefa" #: pan/gui/task-pane.cc:720 pan/gui/task-pane.cc:721 msgid "Change Download Destination" msgstr "Alterar destino de download" #: pan/gui/task-pane.cc:1016 msgid "_Online" msgstr "C_onectado" #: pan/gui/task-pane.cc:1026 msgid "Move up" msgstr "Mover para cima" #: pan/gui/task-pane.cc:1027 msgid "Move task up" msgstr "Mover tarefa para cima" #: pan/gui/task-pane.cc:1028 msgid "Move to top" msgstr "Mover para o topo" #: pan/gui/task-pane.cc:1029 msgid "Move task to top of the download queue" msgstr "Mover tarefa para o topo da fila de download" #: pan/gui/task-pane.cc:1031 msgid "Move down" msgstr "Mover para baixo" #: pan/gui/task-pane.cc:1032 msgid "Move task down" msgstr "Move a tarefa para baixo" #: pan/gui/task-pane.cc:1033 msgid "Move to bottom" msgstr "Mover para o fim" #: pan/gui/task-pane.cc:1034 msgid "Move task to the bottom of the download queue" msgstr "Mover tarefa para o fim da fila de download" #: pan/gui/task-pane.cc:1036 msgid "Restart" msgstr "Reiniciar" #: pan/gui/task-pane.cc:1037 msgid "Restart Tasks" msgstr "Reiniciar tarefas" #: pan/gui/task-pane.cc:1038 msgid "Stop" msgstr "Parar" #: pan/gui/task-pane.cc:1039 msgid "Stop Tasks" msgstr "Parar tarefas" #: pan/gui/task-pane.cc:1041 msgid "Delete Tasks" msgstr "Excluir tarefas" #: pan/gui/task-pane.cc:1043 msgid "Close" msgstr "Fechar" #: pan/gui/task-pane.cc:1047 msgid "Show popups" msgstr "Mostrar janelas" #: pan/gui/url.cc:143 #, c-format msgid "Error starting URL: %s (Command was: %s)" msgstr "Erro ao iniciar URL: %s (comando foi: %s)" #: pan/tasks/decoder.cc:124 #, c-format msgid "Couldn't save file \"%s\": %s" msgstr "Não foi possível salvar arquivo “%s”: %s" #: pan/tasks/decoder.cc:146 pan/tasks/encoder.cc:146 msgid "Error initializing uulib" msgstr "Erro ao inicializar uulib" #: pan/tasks/decoder.cc:166 pan/tasks/socket-impl-gio.cc:360 #: pan/tasks/socket-impl-openssl.cc:641 #, c-format msgid "Error reading from %s: %s" msgstr "Erro ao ler de %s: %s" #: pan/tasks/decoder.cc:206 #, c-format msgid "Saved \"%s\"" msgstr "“%s” salvo" #: pan/tasks/decoder.cc:213 #, c-format msgid "" "Error saving \"%s\":\n" "%s." msgstr "" "Erro ao salvar “%s”:\n" "%s." #: pan/tasks/decoder.cc:326 pan/tasks/task-article.cc:351 #, c-format msgid "Decoding %s" msgstr "Decodificando %s" #: pan/tasks/encoder.cc:113 pan/tasks/encoder.cc:164 #, c-format msgid "Error loading %s from cache." msgstr "Erro ao carregar %s do cache." #: pan/tasks/encoder.cc:186 #, c-format msgid "Error encoding %s: %s" msgstr "Erro ao codificar %s: %s" #: pan/tasks/encoder.cc:276 #, c-format msgid "Encoding %s" msgstr "Codificando %s" #: pan/tasks/nntp.cc:176 #, c-format msgid "%s requires a username, but none is set." msgstr "%s require um nome de usuário, mas nenhum está definido." #: pan/tasks/nntp.cc:189 #, c-format msgid "%s requires a password, but none is set." msgstr "%s requer uma senha, mas nenhuma está definida." #: pan/tasks/nntp.cc:275 #, c-format msgid "Sending \"%s\" to %s returned an error: %s" msgstr "Envio de “%s” para %s retornou um erro: %s" #: pan/tasks/nntp.cc:298 #, c-format msgid "Sending \"%s\" to %s returned an unrecognized response: \"%s\"" msgstr "O envio “%s” para %s retornou uma resposta não reconhecida: “%s”" #: pan/tasks/nntp-pool.cc:241 #, c-format msgid "Unable to connect to \"%s\"" msgstr "Não foi possível conectar a “%s”" #: pan/tasks/queue.cc:778 pan/tasks/queue.cc:806 pan/tasks/queue.cc:833 msgid "No space left on device." msgstr "Não há espaço disponível no dispositivo." #: pan/tasks/socket-impl-gio.cc:173 pan/tasks/socket-impl-gio.cc:211 #: pan/tasks/socket-impl-openssl.cc:213 pan/tasks/socket-impl-openssl.cc:251 #, c-format msgid "Error connecting to \"%s\"" msgstr "Erro ao conectar a “%s”" #: pan/tasks/socket-impl-gio.cc:359 pan/tasks/socket-impl-openssl.cc:640 msgid "Unknown Error" msgstr "Erro desconhecido" #: pan/tasks/task-article.cc:59 pan/tasks/task-article.cc:157 #, c-format msgid "Saving %s" msgstr "Salvando %s" #: pan/tasks/task-article.cc:61 #, c-format msgid "Reading %s" msgstr "Lendo %s" #: pan/tasks/task-article.cc:323 #, c-format msgid "Article \"%s\" is incomplete -- the news server(s) don't have part %s" msgstr "" "O artigo “%s” está incompleto — servidores de notícias não têm a parte %s" #: pan/tasks/task-groups.cc:41 #, c-format msgid "Getting group list from \"%s\"" msgstr "Obtendo lista de grupos de “%s”" #: pan/tasks/task-groups.cc:134 #, c-format msgid "Fetched %lu Groups" msgstr "Obteve %lu grupos" #: pan/tasks/task-post.cc:33 #, c-format msgid "Posting \"%s\"" msgstr "Enviando “%s”" #: pan/tasks/task-post.cc:74 #, c-format msgid "Posting of \"%s\" failed: %s" msgstr "Envio de “%s” falhou: %s" #: pan/tasks/task-post.cc:79 #, c-format msgid "Posting of \"%s\" successful: %s" msgstr "Envio do arquivo %s realizado com sucesso: %s" #: pan/tasks/task-upload.cc:55 #, c-format msgid "Uploading %s" msgstr "Enviando %s" #: pan/tasks/task-upload.cc:249 #, c-format msgid "Uploading %s - Part %d of %d" msgstr "Enviando %s - Parte %d de %d" #: pan/tasks/task-upload.cc:251 #, c-format msgid "Uploading message body with subject \"%s\"" msgstr "Enviando corpo de mensagem com assunto “%s”" #: pan/tasks/task-upload.cc:308 #, c-format msgid "Posting of file %s (part %d of %d) failed: No posts allowed by server." msgstr "" "Envio do arquivo %s (parte %d de %d) falhou: nenhum envio permitido pelo " "servidor." #: pan/tasks/task-upload.cc:317 #, c-format msgid "Posting of file %s (part %d of %d) failed: %s" msgstr "Envio do arquivo %s (parte %d de %d) falhou: %s" #: pan/tasks/task-upload.cc:328 pan/tasks/task-upload.cc:335 #, c-format msgid "Posting of file %s (part %d of %d) successful: %s" msgstr "Envio do arquivo %s (parte %d de %d) realizado com sucesso: %s" #: pan/tasks/task-upload.cc:345 #, c-format msgid "Posting of file %s successful: %s" msgstr "Envio do arquivo %s realizado com sucesso: %s" #: pan/tasks/task-upload.cc:349 #, c-format msgid "" "Posting of file %s not completely successful: Check the log (right-click " "list item)." msgstr "" "Envio do arquivo %s não concluído com sucesso: verifique o registro (item da " "lista de clique com botão direito)." #: pan/tasks/task-upload.cc:368 #, c-format msgid "" "Posting of file %s not successful: Check the log (right-click list item)." msgstr "" "Envio do arquivo %s não concluído com sucesso: verifique o registro (item da " "lista de clique com botão direito)." #: pan/tasks/task-xover.cc:82 #, c-format msgid "Getting all headers for \"%s\"" msgstr "Obtendo todos os cabeçalhos de “%s”" #: pan/tasks/task-xover.cc:85 #, c-format msgid "Getting new headers for \"%s\"" msgstr "Obtendo novos cabeçalhos de “%s”" #. SAMPLE #: pan/tasks/task-xover.cc:89 #, c-format msgid "Sampling headers for \"%s\"" msgstr "Gerando amostras de cabeçalhos para “%s”" #: pan/tasks/task-xover.cc:454 #, c-format msgid "%s (%lu parts, %lu articles)" msgstr "%s (%lu partes, %lu artigos)" #: pan/tasks/task-xover.cc:528 #, c-format msgid "Getting new headers for \"%s\" done." msgstr "Obtenção de novos cabeçalhos de “%s” concluída." #: pan/usenet-utils/filter-info.cc:215 msgid "article doesn't have attachments" msgstr "artigo não possui anexos" #: pan/usenet-utils/filter-info.cc:219 msgid "the article has attachments" msgstr "p artigo possui anexos" #: pan/usenet-utils/filter-info.cc:223 msgid "the article isn't cached locally" msgstr "o artigo não tem cache local" #: pan/usenet-utils/filter-info.cc:227 msgid "the article is cached locally" msgstr "o artigo está cache local" #: pan/usenet-utils/filter-info.cc:231 msgid "the article wasn't posted by you" msgstr "o artigo não foi enviado por você" #: pan/usenet-utils/filter-info.cc:235 msgid "the article was posted by you" msgstr "o artigo foi enviado por você" #: pan/usenet-utils/filter-info.cc:239 msgid "the article has been read" msgstr "o artigo foi lido" #: pan/usenet-utils/filter-info.cc:243 msgid "the article hasn't been read" msgstr "o artigo não foi lido" #: pan/usenet-utils/filter-info.cc:247 #, c-format msgid "the article is less than %ld bytes long" msgstr "o artigo tem menos de %ld bytes de tamanho" #: pan/usenet-utils/filter-info.cc:252 #, c-format msgid "the article is at least %ld bytes long" msgstr "o artigo tem menos de %ld bytes de tamanho" #: pan/usenet-utils/filter-info.cc:257 #, c-format msgid "the article is less than %ld lines long" msgstr "o artigo tem menos de %ld linhas" #: pan/usenet-utils/filter-info.cc:262 #, c-format msgid "the article is at least %ld lines long" msgstr "o artigo tem menos de %ld linhas" #: pan/usenet-utils/filter-info.cc:267 #, c-format msgid "the article is less than %ld days old" msgstr "o artigo tem mais de %ld dias" #: pan/usenet-utils/filter-info.cc:272 #, c-format msgid "the article is at least %ld days old" msgstr "o artigo tem no mínimo %ld dias" #: pan/usenet-utils/filter-info.cc:277 #, c-format msgid "the article was posted to less than %ld groups" msgstr "o artigo foi enviado para menos de %ld grupos" #: pan/usenet-utils/filter-info.cc:282 #, c-format msgid "the article was posted to at least %ld groups" msgstr "o artigo foi enviado para pelo menos %ld grupos" #: pan/usenet-utils/filter-info.cc:287 #, c-format msgid "the article's score is less than %ld" msgstr "a pontuação do artigo é menor que %ld" #: pan/usenet-utils/filter-info.cc:292 #, c-format msgid "the article's score is %ld or higher" msgstr "a pontuação do artigo é %ld ou maior" #: pan/usenet-utils/filter-info.cc:301 pan/usenet-utils/filter-info.cc:311 #, c-format msgid "%s doesn't contain \"%s\"" msgstr "%s não contém “%s”" #: pan/usenet-utils/filter-info.cc:302 pan/usenet-utils/filter-info.cc:312 #, c-format msgid "%s isn't \"%s\"" msgstr "%s não é “%s”" #: pan/usenet-utils/filter-info.cc:303 pan/usenet-utils/filter-info.cc:313 #, c-format msgid "%s doesn't begin with \"%s\"" msgstr "%s não começa com “%s”" #: pan/usenet-utils/filter-info.cc:304 pan/usenet-utils/filter-info.cc:314 #, c-format msgid "%s doesn't end with \"%s\"" msgstr "%s não termina com “%s”" #: pan/usenet-utils/filter-info.cc:305 pan/usenet-utils/filter-info.cc:315 #, c-format msgid "%s doesn't match the regex \"%s\"" msgstr "%s não coincide com a expressão regular “%s”" #: pan/usenet-utils/filter-info.cc:327 #, c-format msgid "%s contains \"%s\"" msgstr "%s contém “%s”" #: pan/usenet-utils/filter-info.cc:328 #, c-format msgid "%s is \"%s\"" msgstr "%s é “%s”" #: pan/usenet-utils/filter-info.cc:329 #, c-format msgid "%s begins with \"%s\"" msgstr "%s começa com “%s”" #: pan/usenet-utils/filter-info.cc:330 #, c-format msgid "%s ends with \"%s\"" msgstr "%s termina com “%s”" #: pan/usenet-utils/filter-info.cc:331 #, c-format msgid "%s matches the regex \"%s\"" msgstr "%s coincide a expressão regular “%s”" #: pan/usenet-utils/filter-info.cc:337 msgid "Any of these tests fail:" msgstr "Alguns desses testes falharam:" #: pan/usenet-utils/filter-info.cc:344 msgid "All of these tests pass:" msgstr "Todos esses testes passaram:" #: pan/usenet-utils/filter-info.cc:351 msgid "None of these tests pass:" msgstr "Nenhum desses testes passaram:" #: pan/usenet-utils/filter-info.cc:358 msgid "Any of these tests pass:" msgstr "Alguns desses testes passaram:" #: pan/usenet-utils/gnksa.cc:880 #, c-format msgid "No email address provided; generating message-id with domain \"%s\"" msgstr "" "Nenhum endereço de e-mail fornecido; gerando message-id com domínio “%s”" #: pan/usenet-utils/message-check.cc:122 msgid "Warning: Reply seems to be top-posted." msgstr "Aviso: A resposta parece estar em cima da citação." #: pan/usenet-utils/message-check.cc:143 msgid "Warning: The signature marker should be \"-- \", not \"--\"." msgstr "Aviso: O marcador de assinatura deve ser “-- ”, não “--”." #: pan/usenet-utils/message-check.cc:160 msgid "Warning: Signature prefix with no signature." msgstr "Aviso: Prefixo de assinatura sem assinatura." #: pan/usenet-utils/message-check.cc:165 msgid "Warning: Signature is more than 4 lines long." msgstr "Aviso: Assinatura com mais de 4 linhas." #: pan/usenet-utils/message-check.cc:170 msgid "Warning: Signature is more than 80 characters wide." msgstr "Aviso: Assinatura com mais que 80 caracteres de largura." #: pan/usenet-utils/message-check.cc:196 #, c-format msgid "Warning: %d line is more than 80 characters wide." msgid_plural "Warning: %d lines are more than 80 characters wide." msgstr[0] "Aviso: %d linha tem mais que 80 caracteres." msgstr[1] "Aviso: %d linhas têm mais que 80 caracteres." #: pan/usenet-utils/message-check.cc:221 msgid "Error: Message is empty." msgstr "Erro: Mensagem está vazia." #: pan/usenet-utils/message-check.cc:256 msgid "Warning: The message is entirely quoted text!" msgstr "Aviso: A mensagem contém somente texto citado!" #: pan/usenet-utils/message-check.cc:257 msgid "Warning: The message is mostly quoted text." msgstr "Aviso: A mensagem contém maioria de texto citado." #: pan/usenet-utils/message-check.cc:307 msgid "Error: Message appears to have no new content." msgstr "Erro: Mensagem parece não ter conteúdo." #: pan/usenet-utils/message-check.cc:342 pan/usenet-utils/message-check.cc:381 #, c-format msgid "" "Warning: The posting profile's server doesn't carry newsgroup\n" "\t\"%s\".\n" "\tIf the group name is correct, switch profiles in the \"From:\"\n" "\tline or edit the profile with \"Edit|Manage Posting Profiles\"." msgstr "" "Aviso: O servidor do perfil de postagem não tem suporte a newsgroup\n" "\t“%s”.\n" "\tSe o nome do grupo está correto, troque de perfil na linha “De:”\n" "\tou edite o perfil em “Editar|Gerenciar perfis de envio”." #: pan/usenet-utils/message-check.cc:353 msgid "Warning: Following-Up to too many groups." msgstr "Aviso: Encaminhando para grupos demais." #: pan/usenet-utils/message-check.cc:364 msgid "Error: No Subject specified." msgstr "Erro: Nenhum assunto especificado." #: pan/usenet-utils/message-check.cc:393 #, c-format msgid "Warning: Group \"%s\" is read-only." msgstr "Aviso: Grupo “%s” é somente leitura." #: pan/usenet-utils/message-check.cc:402 msgid "Error: Posting to a very large number of groups." msgstr "Erro: Enviando para um número muito grande de grupos." #: pan/usenet-utils/message-check.cc:407 msgid "Warning: Posting to a large number of groups." msgstr "Aviso: Enviando para um número grande de grupos." #: pan/usenet-utils/message-check.cc:414 msgid "Warning: Crossposting without setting Followup-To header." msgstr "Aviso: Envio cruzado sem cabeçalho “Encaminhar para”." #: pan/usenet-utils/message-check.cc:439 msgid "Error: Bad email address." msgstr "Erro: Endereço de e-mail inválido." # "frown" seria franzir a testa, com jeito de crítica, de não gostar de mensagem HTML. #: pan/usenet-utils/message-check.cc:448 msgid "Warning: Most newsgroups frown upon HTML posts." msgstr "" "Aviso: A maioria dos grupos de notícias não gostam de mensagens em HTML." #: pan/usenet-utils/message-check.cc:484 msgid "Error: No Recipients." msgstr "Erro: Sem destinatário." #: pan/usenet-utils/scorefile.cc:310 #, c-format msgid "Error reading score in %*.*s, line %d: unexpected line." msgstr "Erro ao ler pontuação em %*.*s, linha %d: linha inesperada." #: pan/usenet-utils/scorefile.cc:442 #, c-format msgid "" "Error reading score in %*.*s, line %d: expected 'Expires: MM/DD/YYYY' or " "'Expires: DD-MM-YYYY'." msgstr "" "Erro ao ler pontuação em %*.*s, linha %d: esperava “Expires: MM/DD/YYYY” ou " "“Expires: DD-MM-YYYY”." #: pan/usenet-utils/scorefile.cc:452 #, c-format msgid "Expired old score from %*.*s, line %d" msgstr "Expirou a pontuação antiga de %*.*s, linha %d" #: pan/usenet-utils/scorefile.cc:589 #, c-format msgid "Read %lu scoring rules in %lu sections from \"%s\"" msgstr "%lu regras de pontuação lidas nas %lu seções de “%s”" #: pan/usenet-utils/ssl-utils.cc:172 #, c-format msgid "Error printing the server certificate for '%s'" msgstr "Erro ao mostrar o certificado do servidor para “%s”" #: pan/usenet-utils/ssl-utils.cc:191 #, c-format msgid "" "The current server '%s' sent this security certificate:\n" "\n" msgstr "" "O servidor atual “%s” enviou este certificado de segurança:\n" "\n" #: pan/usenet-utils/ssl-utils.cc:197 #, c-format msgid "" "Certificate information for server '%s':\n" "\n" msgstr "" "Informação do certificado do servidor “%s”:\n" "\n" #: pan/usenet-utils/ssl-utils.cc:202 #, c-format msgid "" "%sIssuer information:\n" "%s\n" "Valid until: %s\n" "\n" "Not valid before: %s\n" "\n" msgstr "" "%sInformação do emissor:\n" "%s\n" "Válido até: %s\n" "\n" "Não válido antes de: %s\n" "\n" #: pan/usenet-utils/text-massager.cc:397 msgid "> [quoted text muted]" msgstr "> [texto citado omitido]" #: pan/usenet-utils/text-massager.cc:579 msgid "no_name" msgstr "nenhum_nome" #: pan/usenet-utils/text-massager.cc:580 msgid "no_mail" msgstr "nenhum_correio" #, c-format #~ msgid "There seems to be no password set for server %s." #~ msgstr "Parece não haver senha alguma definida para o servidor %s." #~ msgid "GNOME Keyring denied access to the passwords." #~ msgstr "O chaveiro do GNOME negou acesso às senhas." #~ msgid "_Tip Jar..." #~ msgstr "_Dica…" #~ msgid "Toggle on/offline" #~ msgstr "Conectar/desconectar" #, c-format #~ msgid "Error setting custom spellchecker: %s" #~ msgstr "Erro ao definir um verificador ortográfico personalizado: %s" #, c-format #~ msgid "Error setting spellchecker: %s" #~ msgstr "Erro ao definir um verificador ortográfico: %s" #~ msgid "Minimize to tray" #~ msgstr "Minimizar para a área de notificação" #, c-format #~ msgid "Getting header counts for \"%s\"" #~ msgstr "Obtendo quantidades de cabeçalhos de “%s”" pan-0.162/po/ro.po000066400000000000000000004461521475412772400137270ustar00rootroot00000000000000# Traducerea pan în română # Copyright (C) 2003 Free Software Foundation, Inc. # This file is distributed under the same license as the pan package. # Alina Valea , 2003. # # msgid "" msgstr "" "Project-Id-Version: pan 0.14.2\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/pan/issues\n" "POT-Creation-Date: 2014-03-23 17:15+0000\n" "PO-Revision-Date: 2004-05-09 21:42+0300\n" "Last-Translator: Alina Valea \n" "Language-Team: Romanian \n" "Language: ro\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #. update the titlebar #: ../pan.desktop.in.h:1 ../pan/gui/dl-headers-ui.cc:106 #: ../pan/gui/gui.cc:1040 ../pan/gui/gui.cc:1667 ../pan/gui/gui.cc:2009 #: ../pan/gui/score-add-ui.cc:602 msgid "Pan" msgstr "" #: ../pan.desktop.in.h:2 msgid "Newsreader" msgstr "Cititor de știri" #: ../pan.desktop.in.h:3 #, fuzzy msgid "Read and Post Usenet Articles" msgstr "Citește următorul articol necitit" #: ../pan/data/article-cache.cc:144 ../pan/data/encode-cache.cc:62 #, fuzzy, c-format msgid "Error opening directory: \"%s\": %s" msgstr "Eroare la deschiderea directorului \"%s\": %s" #: ../pan/data/article-cache.cc:235 ../pan/data/article-cache.cc:244 #: ../pan/data-impl/data-io.cc:199 ../pan/data-impl/data-io.cc:231 #: ../pan/gui/post-ui.cc:1723 #, fuzzy, c-format msgid "Unable to save \"%s\" %s" msgstr "Nu pot defini grupul \"%*.*s\": %s" #: ../pan/data/article-cache.cc:362 #, fuzzy, c-format msgid "Error opening file \"%s\" %s" msgstr "Eroare la deschiderea fișierului \"%s\": %s" #: ../pan/data/article-cache.cc:393 ../pan/data-impl/profiles.cc:174 #: ../pan/data-impl/server.cc:500 ../pan/general/file-util.cc:311 #: ../pan/gui/post-ui.cc:638 ../pan/gui/task-pane.cc:737 #, c-format msgid "Error reading file \"%s\": %s" msgstr "Eroare la deschiderea fișierului \"%s\": %s" #: ../pan/data/cert-store.cc:262 #, fuzzy, c-format msgid "Error opening SSL certificate directory: \"%s\": %s" msgstr "Eroare la deschiderea directorului \"%s\": %s" #: ../pan/data/cert-store.cc:293 #, c-format msgid "Successfully added %d SSL PEM certificate(s) to Certificate Store." msgstr "" #: ../pan/data/cert-store.cc:313 msgid "" "Error initializing Certificate Store. Check that the permissions for the " "folders ~/.pan2 and ~/.pan2/ssl_certs are set correctly. Fatal, exiting." msgstr "" #. load_group_descriptions (*_data_io); #: ../pan/data-impl/data-impl.cc:113 #, c-format msgid "Loaded data backend in %.1f seconds" msgstr "" #: ../pan/data-impl/data-impl.cc:143 msgid "Pan Newsreader's server passwords" msgstr "" #: ../pan/data-impl/groups.cc:94 #, fuzzy, c-format msgid "Skipping newsrc file for server \"%s\"" msgstr "Descarc %d grupuri noi de la serverul \"%s\"" #: ../pan/data-impl/headers.cc:606 #, fuzzy, c-format msgid "Expired %lu old articles from \"%s\"" msgstr "%u articole din `%s' au expirat." #: ../pan/data-impl/headers.cc:613 #, c-format msgid "" "Unsupported data version for %s headers: %d.\n" "Are you running an old version of Pan by accident?" msgstr "" "Versiune de date nesuportată pentru antetele \"%s\": %d.\n" "Rulați cumva o versiune mai veche de Pan?" #: ../pan/data-impl/headers.cc:628 #, fuzzy, c-format msgid "Loaded %lu articles for \"%s\" in %.1f seconds (%.0f per second)" msgstr "" "Am încărcat %u articole pentru grupul \"%s\" în %.1f secunde (%.0f articole/" "sec)" #: ../pan/data-impl/headers.cc:857 #, fuzzy, c-format msgid "" "Saved %lu parts, %lu articles in \"%s\" in %.1f seconds (%.0f articles/sec)" msgstr "Am salvat %d articole în \"%s\" în %.1f secunde (%.0f articole/sec)" #: ../pan/data-impl/headers.cc:1191 #, fuzzy, c-format msgid "Added %lu articles to %s." msgstr "%u articole din `%s' au expirat." #: ../pan/data-impl/server.cc:261 #, c-format msgid "There seems to be no password set for server %s." msgstr "" #: ../pan/data-impl/server.cc:265 msgid "GNOME Keyring denied access to the passwords." msgstr "" #: ../pan/data-impl/xover.cc:243 #, fuzzy, c-format msgid "Error reading from %s: unknown group \"%s\"" msgstr "Eroare la citirea soclului %s" #. build the locale strings #: ../pan/general/e-util.cc:211 msgid "%l:%M %p" msgstr "" #: ../pan/general/e-util.cc:212 msgid "Today %l:%M %p" msgstr "" #: ../pan/general/e-util.cc:213 msgid "%a %l:%M %p" msgstr "" #: ../pan/general/e-util.cc:214 msgid "%b %d %l:%M %p" msgstr "" #: ../pan/general/e-util.cc:215 msgid "%b %d %Y" msgstr "" #: ../pan/general/e-util.cc:240 msgid "?" msgstr "" #: ../pan/general/text-match.cc:193 #, c-format msgid "Can't use regular expression \"%s\": %s" msgstr "Nu pot folosi expresia regulată \"%s\": %s" #: ../pan/general/utf8-utils.cc:213 msgid "Couldn't determine article encoding. Non-UTF8 characters were removed." msgstr "" #: ../pan/gui/actions.cc:303 ../pan/gui/post-ui.cc:446 #, fuzzy msgid "_File" msgstr "/_Fișier" #: ../pan/gui/actions.cc:304 ../pan/gui/post-ui.cc:447 #, fuzzy msgid "_Edit" msgstr "/_Editare" #: ../pan/gui/actions.cc:305 ../pan/gui/prefs-ui.cc:1107 #, fuzzy msgid "_Layout" msgstr "Aran_jare panouri" #: ../pan/gui/actions.cc:306 #, fuzzy msgid "_Group Pane" msgstr "Panou cu grupuri" #: ../pan/gui/actions.cc:307 #, fuzzy msgid "_Header Pane" msgstr "Panou cu antete" #: ../pan/gui/actions.cc:308 #, fuzzy msgid "_Body Pane" msgstr "Panou cu conținut" #: ../pan/gui/actions.cc:309 #, fuzzy msgid "_View" msgstr "/_Vizualizare" #: ../pan/gui/actions.cc:310 #, fuzzy msgid "Filte_r" msgstr "/Filtra_re" #: ../pan/gui/actions.cc:311 #, fuzzy msgid "_Go" msgstr "/_Citire" #: ../pan/gui/actions.cc:312 ../pan/gui/prefs-ui.cc:1157 #, fuzzy msgid "_Actions" msgstr "Acțiuni" #: ../pan/gui/actions.cc:313 #, fuzzy msgid "_Articles" msgstr "/_Articole" #: ../pan/gui/actions.cc:314 #, fuzzy msgid "G_roups" msgstr "Grupuri" #: ../pan/gui/actions.cc:315 ../pan/gui/actions.cc:316 msgid "_Post" msgstr "_Trimite" #: ../pan/gui/actions.cc:317 msgid "_Help" msgstr "_Ajutor" #: ../pan/gui/actions.cc:320 #, fuzzy msgid "_Read Group" msgstr "/Ș_terge grupul" #: ../pan/gui/actions.cc:321 #, fuzzy msgid "Read Group" msgstr "/Ș_terge grupul" #: ../pan/gui/actions.cc:325 #, fuzzy msgid "_Mark Selected Groups Read" msgstr "/Marchează grupul ca c_itit" #: ../pan/gui/actions.cc:326 #, fuzzy msgid "Mark Selected Groups Read" msgstr "/Marchează grupul ca c_itit" #: ../pan/gui/actions.cc:330 #, fuzzy msgid "_Delete Selected Groups' Articles" msgstr "/Șter_ge articolele grupului" #: ../pan/gui/actions.cc:331 #, fuzzy msgid "Delete Selected Groups' Articles" msgstr "/Șter_ge articolele grupului" #: ../pan/gui/actions.cc:335 #, fuzzy msgid "Get New _Headers in Selected Groups" msgstr "Descarcă antete noi de la grupurile selecționate" #: ../pan/gui/actions.cc:336 #, fuzzy msgid "Get New Headers in Selected Groups" msgstr "Descarcă antete noi de la grupurile selecționate" #: ../pan/gui/actions.cc:340 ../pan/gui/actions.cc:345 #, fuzzy msgid "Get New _Headers in Subscribed Groups" msgstr "Descarcă antete noi de la grupurile abonate" #: ../pan/gui/actions.cc:341 ../pan/gui/actions.cc:346 #, fuzzy msgid "Get New Headers in Subscribed Groups" msgstr "/Descarcă antete noi de la grupurile abonate" #: ../pan/gui/actions.cc:350 #, fuzzy msgid "Get _Headers..." msgstr "/Descarcă _antete noi" #: ../pan/gui/actions.cc:351 #, fuzzy msgid "Get Headers..." msgstr "/Descarcă _antete noi" #: ../pan/gui/actions.cc:355 ../pan/gui/actions.cc:356 #, fuzzy msgid "Refresh Group List" msgstr "Actualizez grupul \"%s\"" #: ../pan/gui/actions.cc:360 #, fuzzy msgid "_Subscribe" msgstr "/A_bonează" #: ../pan/gui/actions.cc:361 #, fuzzy msgid "Subscribe" msgstr "/A_bonează" #: ../pan/gui/actions.cc:365 #, fuzzy msgid "_Unsubscribe" msgstr "/_Dezabonează" #: ../pan/gui/actions.cc:366 #, fuzzy msgid "Unsubscribe" msgstr "/_Dezabonează" #: ../pan/gui/actions.cc:370 #, fuzzy msgid "_Save Articles..." msgstr "/_Salvează atașamentele ca..." #: ../pan/gui/actions.cc:371 #, fuzzy msgid "Save Articles..." msgstr "/_Salvează atașamentele ca..." #: ../pan/gui/actions.cc:375 #, fuzzy msgid "Save Articles from Selected _NZB..." msgstr "/_Salvează atașamentele ca..." #: ../pan/gui/actions.cc:376 #, fuzzy msgid "Save Articles from Selected NZB" msgstr "Salvează atașamentele" #: ../pan/gui/actions.cc:380 #, fuzzy msgid "Save Articles to an NZB _File..." msgstr "/_Salvează atașamentele ca..." #: ../pan/gui/actions.cc:381 #, fuzzy msgid "Save Articles to an NZB File" msgstr "Salvare jurnal în fișier" #: ../pan/gui/actions.cc:385 ../pan/gui/actions.cc:386 #, fuzzy msgid "Print" msgstr "Pan: Tipărire" #: ../pan/gui/actions.cc:390 msgid "_Import NZB Files..." msgstr "" #: ../pan/gui/actions.cc:395 #, fuzzy msgid "_Cancel Last Task" msgstr "Oprește ultimul proces" #: ../pan/gui/actions.cc:400 #, fuzzy msgid "_Task Manager" msgstr "/_Unelte/Administrator de _procese..." #: ../pan/gui/actions.cc:405 #, fuzzy msgid "_Event Log" msgstr "Deschide jurnalul de stare" #: ../pan/gui/actions.cc:410 #, fuzzy msgid "_Quit" msgstr "/_Editare" #: ../pan/gui/actions.cc:415 #, fuzzy msgid "Select _All Articles" msgstr "/_Editare/Selectează toate articolele" #: ../pan/gui/actions.cc:420 #, fuzzy msgid "_Deselect All Articles" msgstr "/_Editare/Deselectează _toate articolele" #: ../pan/gui/actions.cc:425 #, fuzzy msgid "Add Su_bthreads to Selection" msgstr "/_Editare/Adaugă _sub-firele de discuție la selecție" #: ../pan/gui/actions.cc:430 #, fuzzy msgid "Add _Threads to Selection" msgstr "/_Editare/Adaugă _firele de discuție la selecție" #: ../pan/gui/actions.cc:435 #, fuzzy msgid "Add _Similar Articles to Selection" msgstr "/_Editare/Adaugă _firele de discuție la selecție" #: ../pan/gui/actions.cc:440 #, fuzzy msgid "Select Article _Body" msgstr "/_Editare/Selectează c_onținutul articolului" #: ../pan/gui/actions.cc:445 #, fuzzy msgid "Edit _Preferences" msgstr "/_Editare/_Preferințe..." #: ../pan/gui/actions.cc:450 #, fuzzy msgid "Edit Selected _Group's Preferences" msgstr "/_Editare/_Preferințe..." #: ../pan/gui/actions.cc:455 ../pan/gui/post-ui.cc:463 #, fuzzy msgid "Edit P_osting Profiles" msgstr "/_Unelte/Identități..." #: ../pan/gui/actions.cc:460 #, fuzzy msgid "Edit _News Servers" msgstr "/_Unelte/_Servere de știri" #: ../pan/gui/actions.cc:465 #, fuzzy msgid "Jump to _Group Tab" msgstr "/_Vizualizare/Afișează tabul cu _grupuri" #: ../pan/gui/actions.cc:470 #, fuzzy msgid "Jump to _Header Tab" msgstr "/_Vizualizare/Afișează tabul cu _antete" #: ../pan/gui/actions.cc:475 #, fuzzy msgid "Jump to _Body Tab" msgstr "/_Vizualizare/Afișează tabul cu _conținut" #: ../pan/gui/actions.cc:480 #, fuzzy msgid "_Rot13 Selected Text" msgstr "Aplică Rot13 textului selectat" #: ../pan/gui/actions.cc:485 #, fuzzy msgid "Clear _Header Pane" msgstr "Panou cu antete" #: ../pan/gui/actions.cc:490 #, fuzzy msgid "Clear _Body Pane" msgstr "Panou cu conținut" #: ../pan/gui/actions.cc:495 #, fuzzy msgid "Cache Article" msgstr "Anulez articolul" #: ../pan/gui/actions.cc:500 #, fuzzy msgid "Read Article" msgstr "Triez %d articole" #: ../pan/gui/actions.cc:505 #, fuzzy msgid "Show Article Information" msgstr "Informații despre identitate" #: ../pan/gui/actions.cc:510 #, fuzzy msgid "Read _More" msgstr "Citește mai mult" #: ../pan/gui/actions.cc:511 msgid "Read More" msgstr "Citește mai mult" #: ../pan/gui/actions.cc:515 msgid "Read _Back" msgstr "" #: ../pan/gui/actions.cc:516 #, fuzzy msgid "Read Back" msgstr "/_Citire/Citește înapoi" #: ../pan/gui/actions.cc:520 #, fuzzy msgid "Next _Unread Group" msgstr "/_Citire/Următorul grup nec_itit" #: ../pan/gui/actions.cc:525 #, fuzzy msgid "Next _Group" msgstr "/_Citire/Următorul _grup" #: ../pan/gui/actions.cc:530 #, fuzzy msgid "Next _Unread Article" msgstr "/_Citire/Următorul articol _necitit" #: ../pan/gui/actions.cc:531 #, fuzzy msgid "Next Unread Article" msgstr "Citește următorul articol necitit" #: ../pan/gui/actions.cc:535 #, fuzzy msgid "Next _Article" msgstr "/_Citire/Următorul _articol" #: ../pan/gui/actions.cc:536 #, fuzzy msgid "Next Article" msgstr "/_Citire/Următorul _articol" #: ../pan/gui/actions.cc:540 #, fuzzy msgid "Next _Watched Article" msgstr "/_Citire/Următorul articol u_rmărit" #: ../pan/gui/actions.cc:545 #, fuzzy msgid "Next Unread _Thread" msgstr "/_Citire/Următorul fir de discuție n_ecitit" #: ../pan/gui/actions.cc:546 #, fuzzy msgid "Next Unread Thread" msgstr "Citește următorul fir de discuție necitit" #: ../pan/gui/actions.cc:550 #, fuzzy msgid "Next Threa_d" msgstr "/_Citire/Următorul _fir de discuție" #: ../pan/gui/actions.cc:555 #, fuzzy msgid "Pre_vious Article" msgstr "/_Citire/Artico_lul precedent" #: ../pan/gui/actions.cc:560 #, fuzzy msgid "Previous _Thread" msgstr "/_Citire/Firul de discuție prece_dent" #: ../pan/gui/actions.cc:565 #, fuzzy msgid "_Parent Article" msgstr "/_Citire/Articolul _părinte" #: ../pan/gui/actions.cc:570 #, fuzzy msgid "Ignore _Author" msgstr "/_Ignoră firul de discuție" #: ../pan/gui/actions.cc:574 #, fuzzy msgid "_Watch Thread" msgstr "/_Urmărește firul de discuție" #: ../pan/gui/actions.cc:579 #, fuzzy msgid "_Ignore Thread" msgstr "/_Ignoră firul de discuție" #: ../pan/gui/actions.cc:584 ../pan/gui/actions.cc:585 #, fuzzy msgid "_Toggle Flag On/Off for Thread" msgstr "/_Urmărește firul de discuție" #: ../pan/gui/actions.cc:589 ../pan/gui/actions.cc:590 #, fuzzy msgid "_Turn Flag Off for Thread" msgstr "/_Urmărește firul de discuție" #: ../pan/gui/actions.cc:594 ../pan/gui/actions.cc:595 #, fuzzy msgid "_Select All Flagged Threads" msgstr "/_Citire/Următorul fir de discuție no_u" #: ../pan/gui/actions.cc:599 ../pan/gui/actions.cc:600 #, fuzzy msgid "_Go to Next Flagged Thread" msgstr "/_Citire/Următorul fir de discuție no_u" #: ../pan/gui/actions.cc:604 ../pan/gui/actions.cc:605 #, fuzzy msgid "_Go to Last Flagged Thread" msgstr "/_Citire/Următorul fir de discuție no_u" #: ../pan/gui/actions.cc:609 ../pan/gui/actions.cc:610 #, fuzzy msgid "_Invert Selection" msgstr "Inversează linia selectată" #: ../pan/gui/actions.cc:614 #, fuzzy msgid "Edit Article's Watch/Ignore/Score..." msgstr "/_Articole/Acordă _punctaj..." #: ../pan/gui/actions.cc:619 #, fuzzy msgid "Add a _Scoring Rule..." msgstr "Adaugă un nou punctaj" #: ../pan/gui/actions.cc:624 #, fuzzy msgid "Cance_l Article..." msgstr "Anulez articolul" #: ../pan/gui/actions.cc:629 #, fuzzy msgid "_Supersede Article..." msgstr "/_Fișier/_Tipărește articolul..." #: ../pan/gui/actions.cc:634 #, fuzzy msgid "_Delete Article" msgstr "Ș_terge articol" #: ../pan/gui/actions.cc:639 #, fuzzy msgid "Clear Article Cache" msgstr "Cache de articole" #: ../pan/gui/actions.cc:644 #, fuzzy msgid "_Mark Article as Read" msgstr "Articolul este citit" #: ../pan/gui/actions.cc:649 #, fuzzy msgid "Mark Article as _Unread" msgstr "Articolul este necitit" #: ../pan/gui/actions.cc:655 #, fuzzy msgid "_Mark Thread as Read" msgstr "Articolul este citit" #: ../pan/gui/actions.cc:660 #, fuzzy msgid "Mark Thread as _Unread" msgstr "Articolul este necitit" #: ../pan/gui/actions.cc:665 #, fuzzy msgid "_Post to Newsgroup" msgstr "Trimite către grupul de știri" #: ../pan/gui/actions.cc:666 msgid "Post to Newsgroup" msgstr "Trimite către grupul de știri" #: ../pan/gui/actions.cc:670 #, fuzzy msgid "_Followup to Newsgroup" msgstr "/_Trimite/Trimite _răspuns..." #: ../pan/gui/actions.cc:671 #, fuzzy msgid "Followup to Newsgroup" msgstr "/_Trimite/Trimite _răspuns..." #: ../pan/gui/actions.cc:675 #, fuzzy msgid "_Reply to Author in Mail" msgstr "/_Articole/_Ignoră articolele autorului" #: ../pan/gui/actions.cc:680 #, fuzzy msgid "_Pan Home Page" msgstr "/A_jutor/_Pagina web Pan" #: ../pan/gui/actions.cc:685 #, fuzzy msgid "Give _Feedback or Report a Bug..." msgstr "/A_jutor/_Raportează o problemă.." #: ../pan/gui/actions.cc:690 msgid "_Tip Jar..." msgstr "" #: ../pan/gui/actions.cc:695 #, fuzzy msgid "_About" msgstr "Despre" #: ../pan/gui/actions.cc:700 msgid "Edit _SSL Certificates" msgstr "" #: ../pan/gui/actions.cc:715 #, fuzzy msgid "_Thread Headers" msgstr "Mai multe antete" #: ../pan/gui/actions.cc:716 #, fuzzy msgid "Wrap Article Body" msgstr "/_Vizualizare/R_earanjează conținutul articolului" #: ../pan/gui/actions.cc:717 #, fuzzy msgid "Show Article Signature" msgstr "Informații despre identitate" #: ../pan/gui/actions.cc:718 #, fuzzy msgid "Mute _Quoted Text" msgstr "/_Vizualizare/Ascun_de textul citat" #: ../pan/gui/actions.cc:719 #, fuzzy msgid "Show All _Headers in Body Pane" msgstr "/_Vizualizare/Afișea_ză toate antetele în panoul cu conținut" #: ../pan/gui/actions.cc:720 #, fuzzy msgid "Show _Smilies as Graphics" msgstr "Afișează a_lertă:" #: ../pan/gui/actions.cc:721 msgid "Show *Bold*, __Underlined__, and /Italic/" msgstr "" #: ../pan/gui/actions.cc:722 msgid "Size Pictures to _Fit" msgstr "" #: ../pan/gui/actions.cc:723 #, fuzzy msgid "Use _Monospace Font" msgstr "Caractere mo_nospațiate:" #: ../pan/gui/actions.cc:724 msgid "Set Focus to Images" msgstr "" #: ../pan/gui/actions.cc:725 msgid "Highlight _URLs" msgstr "" #: ../pan/gui/actions.cc:728 #, fuzzy msgid "_Work Online" msgstr "/_Fișier/Lucrează co_nectat" #: ../pan/gui/actions.cc:729 #, fuzzy msgid "_Tabbed Layout" msgstr "/_Vizualizare/Paginare cu _taburi" #: ../pan/gui/actions.cc:730 #, fuzzy msgid "Show Group _Pane" msgstr "/_Vizualizare/Afișează panoul cu g_rupuri" #: ../pan/gui/actions.cc:731 #, fuzzy msgid "Show Hea_der Pane" msgstr "/_Vizualizare/Afișează panoul cu a_ntete" #: ../pan/gui/actions.cc:732 #, fuzzy msgid "Show Bod_y Pane" msgstr "/_Vizualizare/Afișează panoul cu c_onținut" #: ../pan/gui/actions.cc:733 msgid "Show _Toolbar" msgstr "" #: ../pan/gui/actions.cc:734 #, fuzzy msgid "Abbreviate Group Names" msgstr "/_Vizualizare/_Prescurtează numele din panoul cu grupuri" #: ../pan/gui/actions.cc:736 #, fuzzy msgid "Match Only _Read Articles" msgstr "Afișează doar articolele noi" #: ../pan/gui/actions.cc:736 #, fuzzy msgid "Match Only Read Articles" msgstr "Afișează doar articolele noi" #: ../pan/gui/actions.cc:737 #, fuzzy msgid "Match Only _Unread Articles" msgstr "Afișează doar articolele noi" #: ../pan/gui/actions.cc:737 #, fuzzy msgid "Match Only Unread Articles" msgstr "Afișează doar articolele noi" #: ../pan/gui/actions.cc:738 #, fuzzy msgid "Match Only _Cached Articles" msgstr "Afișează doar articolele din cache" #: ../pan/gui/actions.cc:738 #, fuzzy msgid "Match Only Cached Articles" msgstr "Afișează doar articolele din cache" #: ../pan/gui/actions.cc:739 #, fuzzy msgid "Match Only _Complete Articles" msgstr "Afișează doar articolele cu atașamentele complete" #: ../pan/gui/actions.cc:739 #, fuzzy msgid "Match Only Complete Articles" msgstr "Afișează doar articolele cu atașamentele complete" #: ../pan/gui/actions.cc:740 #, fuzzy msgid "Match Only _My Articles" msgstr "Afișează doar articolele mele" #: ../pan/gui/actions.cc:740 #, fuzzy msgid "Match Only My Articles" msgstr "Afișează doar articolele mele" #: ../pan/gui/actions.cc:741 #, fuzzy msgid "Match Only _Watched Articles" msgstr "Afișează doar articolele urmărite" #: ../pan/gui/actions.cc:741 msgid "Match Only Watched Articles" msgstr "Afișează doar articolele urmărite" #: ../pan/gui/actions.cc:743 #, fuzzy msgid "Match Scores of 9999 (_Watched)" msgstr "/Filt_rare/Afișează articolele cu punctaj 9999 (Urmărit)" #: ../pan/gui/actions.cc:744 #, fuzzy msgid "Match Scores of 5000...9998 (_High)" msgstr "/Filt_rare/Afișează articolele cu punctaj între 5000 și 9998 (Mare)" #: ../pan/gui/actions.cc:745 #, fuzzy msgid "Match Scores of 1...4999 (Me_dium)" msgstr "/Filt_rare/Afișează articolele cu punctaj între 1 și 4999 (Mediu)" #: ../pan/gui/actions.cc:746 #, fuzzy msgid "Match Scores of 0 (_Normal)" msgstr "/Filt_rare/Afișează articolele cu punctaj 0 (Normal)" #: ../pan/gui/actions.cc:747 #, fuzzy msgid "Match Scores of -9998...-1 (_Low)" msgstr "/Filt_rare/Afișează articolele cu punctaj între -9998 și -1 (Mic)" #: ../pan/gui/actions.cc:748 #, fuzzy msgid "Match Scores of -9999 (_Ignored)" msgstr "/Filt_rare/Afișează articolele cu punctaj -9999 (Ignorat)" #: ../pan/gui/actions.cc:750 msgid "Enable/Disable All _Rules" msgstr "" #: ../pan/gui/actions.cc:778 #, fuzzy msgid "Show Matching _Articles" msgstr "/Filt_rare/Afișează articolele care corespund" #: ../pan/gui/actions.cc:779 #, fuzzy msgid "Show Matching Articles' _Threads" msgstr "/Filt_rare/Afișează firele de discuție ale articolelor care corespund" #: ../pan/gui/actions.cc:780 #, fuzzy msgid "Show Matching Articles' _Subthreads" msgstr "" "/Filt_rare/Afișează sub-firele de discuție ale articolelor care corespund" #: ../pan/gui/body-pane.cc:1056 #, fuzzy, c-format msgid "Unnamed File" msgstr "Selectați fișierul cu semnătura" #: ../pan/gui/body-pane.cc:1137 ../pan/gui/gui.cc:1980 #: ../pan/gui/header-pane.cc:1313 ../pan/gui/header-pane.cc:1748 #: ../pan/gui/post-ui.cc:2588 ../pan/gui/prefs-ui.cc:855 #: ../pan/gui/score-add-ui.cc:139 ../pan/gui/task-pane.cc:797 msgid "Subject" msgstr "Subiect" #: ../pan/gui/body-pane.cc:1139 ../pan/gui/gui.cc:1980 #, fuzzy msgid "From" msgstr "De la" #: ../pan/gui/body-pane.cc:1141 ../pan/gui/gui.cc:1981 #: ../pan/gui/header-pane.cc:1827 ../pan/gui/log-ui.cc:307 #: ../pan/gui/prefs-ui.cc:851 msgid "Date" msgstr "Data" #: ../pan/gui/body-pane.cc:1148 msgid "Newsgroups" msgstr "Grupuri de știri" #: ../pan/gui/body-pane.cc:1155 ../pan/gui/body-pane.cc:1163 #: ../pan/gui/body-pane.cc:1170 msgid "User-Agent" msgstr "Agent utilizator" #: ../pan/gui/body-pane.cc:1176 #, fuzzy msgid "Followup-To" msgstr "Continuare la" #: ../pan/gui/body-pane.cc:1186 msgid "Reply-To" msgstr "Răspunsuri la" #: ../pan/gui/body-pane.cc:1229 msgid " from " msgstr "" #: ../pan/gui/body-pane.cc:1231 msgid " at " msgstr "" #: ../pan/gui/body-pane.cc:1318 #, c-format msgid "" "This is a PGP-Signed message.\n" "\n" "Signer: %s ('%s')\n" "Valid until: %s\n" "Created on: %s" msgstr "" #: ../pan/gui/body-pane.cc:1323 msgid "always" msgstr "" #: ../pan/gui/body-pane.cc:1543 msgid "Copy _URL" msgstr "" #: ../pan/gui/body-pane.cc:1748 #, fuzzy msgid "Save Attachment As..." msgstr "Salvează atașamentele ca..." #: ../pan/gui/body-pane.cc:1751 #, fuzzy msgid "Save All Attachments" msgstr "Salvează atașamentele" #. add a toolbar for attachments #: ../pan/gui/body-pane.cc:1821 msgid "Attachments" msgstr "Atașamente" #: ../pan/gui/body-pane.cc:1836 #, fuzzy msgid "Text View" msgstr "/_Citire/Următorul _articol" #: ../pan/gui/body-pane.cc:1845 msgid "HTML View" msgstr "" #: ../pan/gui/dl-headers-ui.cc:112 #, fuzzy, c-format msgid "%d Group" msgid_plural "%d Groups" msgstr[0] "Grupuri" msgstr[1] "Grupuri" #: ../pan/gui/dl-headers-ui.cc:135 #, fuzzy msgid "Get the last N _days' headers: " msgstr "Descarcă antetele _recente" #: ../pan/gui/dl-headers-ui.cc:143 #, fuzzy msgid "Get _new headers" msgstr "/Descarcă _antete noi" #: ../pan/gui/dl-headers-ui.cc:147 #, fuzzy msgid "Get _all headers" msgstr "Descarcă to_ate antetele" #: ../pan/gui/dl-headers-ui.cc:151 #, fuzzy msgid "Get the _latest N headers: " msgstr "Descarcă antetele _recente" #: ../pan/gui/e-action-combo-box.c:386 ../pan/gui/prefs-ui.cc:848 #, fuzzy msgid "Action" msgstr "Acțiuni" #: ../pan/gui/e-action-combo-box.c:387 msgid "A GtkRadioAction" msgstr "" #: ../pan/gui/e-charset.c:51 ../pan/gui/task-pane.cc:558 msgid "Unknown" msgstr "Anonim" #: ../pan/gui/e-charset.c:52 msgid "Arabic" msgstr "" #: ../pan/gui/e-charset.c:53 msgid "Baltic" msgstr "Baltic" #: ../pan/gui/e-charset.c:54 msgid "Central European" msgstr "Central European" #: ../pan/gui/e-charset.c:55 #, fuzzy msgid "Chinese" msgstr "Număr linii" #: ../pan/gui/e-charset.c:56 msgid "Cyrillic" msgstr "Chirilic" #: ../pan/gui/e-charset.c:57 msgid "Greek" msgstr "Grec" #: ../pan/gui/e-charset.c:58 msgid "Hebrew" msgstr "" #: ../pan/gui/e-charset.c:59 msgid "Japanese" msgstr "Japonez" #: ../pan/gui/e-charset.c:60 msgid "Korean" msgstr "Coreean" #: ../pan/gui/e-charset.c:61 msgid "Thai" msgstr "" #: ../pan/gui/e-charset.c:62 msgid "Turkish" msgstr "Turc" #: ../pan/gui/e-charset.c:63 #, fuzzy msgid "Unicode" msgstr "Unicode, UTF-8" #: ../pan/gui/e-charset.c:64 #, fuzzy msgid "Western European" msgstr "Central European" #: ../pan/gui/e-charset.c:65 #, fuzzy msgid "Western European, New" msgstr "Occidental, Nou" #: ../pan/gui/e-charset.c:84 ../pan/gui/e-charset.c:85 #: ../pan/gui/e-charset.c:86 #, fuzzy msgid "Traditional" msgstr "Chineza tradițională" #: ../pan/gui/e-charset.c:87 ../pan/gui/e-charset.c:88 #: ../pan/gui/e-charset.c:89 ../pan/gui/e-charset.c:90 #, fuzzy msgid "Simplified" msgstr "Chineza simplificată" #: ../pan/gui/e-charset.c:93 #, fuzzy msgid "Ukrainian" msgstr "Chirilic, Ucrainian" #: ../pan/gui/e-charset.c:96 msgid "Visual" msgstr "" #: ../pan/gui/e-charset-combo-box.c:93 ../pan/gui/gui.cc:2178 #: ../pan/gui/post-ui.cc:548 ../pan/gui/prefs-ui.cc:759 #, fuzzy msgid "Character Encoding" msgstr "Set de _caractere:" #: ../pan/gui/e-charset-combo-box.c:117 msgid "Enter the character set to use" msgstr "" #: ../pan/gui/e-charset-combo-box.c:336 msgid "Other..." msgstr "" #: ../pan/gui/e-cte-dialog.c:76 #, fuzzy msgid "Default Encoding" msgstr "Decodific \"%s\"" #: ../pan/gui/e-cte-dialog.c:78 #, fuzzy msgid "7-Bit Encoding" msgstr "Set de _caractere:" #: ../pan/gui/e-cte-dialog.c:80 #, fuzzy msgid "8-Bit Encoding" msgstr "Set de _caractere:" #: ../pan/gui/e-cte-dialog.c:82 #, fuzzy msgid "Base64 Encoding" msgstr "Set de _caractere:" #: ../pan/gui/e-cte-dialog.c:84 #, fuzzy msgid "Quoted-Printable Encoding" msgstr "Panou cu _conținut" #: ../pan/gui/group-pane.cc:330 msgid "Sent" msgstr "" #: ../pan/gui/group-pane.cc:331 msgid "Drafts" msgstr "" #: ../pan/gui/group-pane.cc:537 msgid "Group" msgstr "Grup" #: ../pan/gui/group-pane.cc:538 #, fuzzy msgid "Group (regex)" msgstr "Proprietățile grupului" #: ../pan/gui/group-pane.cc:1010 msgid "Local Folders" msgstr "" #: ../pan/gui/group-pane.cc:1011 #, fuzzy msgid "Subscribed Groups" msgstr "Grupuri abonate" #: ../pan/gui/group-pane.cc:1012 #, fuzzy msgid "Other Groups" msgstr "Grupuri noi" #: ../pan/gui/group-pane.cc:1052 ../pan/gui/score-view-ui.cc:157 #, fuzzy msgid "Name" msgstr "_Nume:" #: ../pan/gui/group-prefs-dialog.cc:162 #, fuzzy msgid "No Profiles defined in Edit|Posting Profiles." msgstr "/_Unelte/Identități..." #: ../pan/gui/group-prefs-dialog.cc:273 #, fuzzy msgid "Pan: Group Preferences" msgstr "Preferințe Pan" #: ../pan/gui/group-prefs-dialog.cc:288 #, fuzzy, c-format msgid "Properties for Groups" msgstr "Proprietățile pentru \"%s\"" #: ../pan/gui/group-prefs-dialog.cc:290 #, fuzzy, c-format msgid "Properties for %s" msgstr "Proprietățile pentru \"%s\"" #: ../pan/gui/group-prefs-dialog.cc:298 #, fuzzy msgid "Character _encoding:" msgstr "Set de _caractere:" #: ../pan/gui/group-prefs-dialog.cc:300 #, fuzzy msgid "Directory for Saving Attachments" msgstr "Directorul pentru salvarea atașamentelor" #: ../pan/gui/group-prefs-dialog.cc:308 #, fuzzy msgid "Directory for _saving attachments:" msgstr "Directorul pentru salvarea atașamentelor" #: ../pan/gui/group-prefs-dialog.cc:310 #, fuzzy msgid "Posting _profile:" msgstr "Pan: Identitate" #: ../pan/gui/group-prefs-dialog.cc:315 msgid "Spellchecker _language:" msgstr "" #: ../pan/gui/group-prefs-dialog.cc:318 msgid "Group color:" msgstr "" #: ../pan/gui/gui.cc:312 msgid "Open the Task Manager" msgstr "Deschide administratorul de procese" #: ../pan/gui/gui.cc:335 #, fuzzy msgid "Open the Event Log" msgstr "Deschide jurnalul de stare" #: ../pan/gui/gui.cc:611 msgid "Save NZB's Files" msgstr "" #: ../pan/gui/gui.cc:638 msgid "Untitled.nzb" msgstr "" #: ../pan/gui/gui.cc:640 #, fuzzy msgid "Save NZB File as..." msgstr "/_Salvează atașamentele ca..." #: ../pan/gui/gui.cc:809 msgid "Import NZB Files" msgstr "" #: ../pan/gui/gui.cc:817 ../pan/gui/post-ui.cc:3287 #, fuzzy msgid "NZB Files" msgstr "Fișiere" #: ../pan/gui/gui.cc:822 #, fuzzy msgid "All Files" msgstr "Fișiere" #: ../pan/gui/gui.cc:1334 #, fuzzy msgid "Unable to supersede article." msgstr "/_Fișier/_Tipărește articolul..." #: ../pan/gui/gui.cc:1335 ../pan/gui/gui.cc:1409 msgid "The article doesn't match any of your posting profiles." msgstr "" #: ../pan/gui/gui.cc:1382 msgid "Revise and send this article to replace the old one." msgstr "" #: ../pan/gui/gui.cc:1383 ../pan/gui/gui.cc:1446 msgid "Be patient! It will take time for your changes to take effect." msgstr "" #: ../pan/gui/gui.cc:1408 #, fuzzy msgid "Unable to cancel article." msgstr "Nu pot crea firul de discuție: %s" #: ../pan/gui/gui.cc:1445 msgid "Send this article to ask your server to cancel your other one." msgstr "" #: ../pan/gui/gui.cc:1463 #, fuzzy #| msgid "You haven't loaded an article to print." msgid "You have marked some articles for deletion." msgstr "Nu ați descărcat articolul pe care vreți să-l tipăriți." #: ../pan/gui/gui.cc:1464 #, fuzzy msgid "Are you sure you want to delete them?" msgstr "Sigur doriți să ștergeți cele %d grupuri/directoare și articolele lor?" #: ../pan/gui/gui.cc:1490 msgid "Do you want to accept it permanently? (You can change this later.)" msgstr "" #: ../pan/gui/gui.cc:1670 #, fuzzy msgid "Copyright \\u00A9 2002-2012 Charles Kerr and others" msgstr "Copyright (C) 2003 Charles Kerr" #: ../pan/gui/gui.cc:1675 msgid "translator-credits" msgstr "" #: ../pan/gui/gui.cc:1808 #, fuzzy msgid "_1. Header Pane" msgstr "Panou cu antete" #: ../pan/gui/gui.cc:1809 #, fuzzy msgid "_2. Search Pane" msgstr "Panou cu antete" #: ../pan/gui/gui.cc:1815 #, fuzzy msgid "_1. Group Pane" msgstr "Panou cu grupuri" #: ../pan/gui/gui.cc:1817 ../pan/gui/gui.cc:1819 #, fuzzy msgid "_2. Header Pane" msgstr "Panou cu antete" #: ../pan/gui/gui.cc:1821 #, fuzzy msgid "_3. Body Pane" msgstr "Panou cu conținut" #: ../pan/gui/gui.cc:1917 ../pan/gui/gui.cc:1932 msgid " Bytes" msgstr "" #: ../pan/gui/gui.cc:1920 msgid " KB" msgstr "" #: ../pan/gui/gui.cc:1923 msgid " MB" msgstr "" #: ../pan/gui/gui.cc:1926 msgid " GB" msgstr "" #: ../pan/gui/gui.cc:1929 msgid " TB" msgstr "" #: ../pan/gui/gui.cc:1961 #, fuzzy, c-format msgid "This article is complete with %d part." msgid_plural "This article has all %d parts." msgstr[0] "Articolul nu are atașamente" msgstr[1] "Articolul nu are atașamente" #: ../pan/gui/gui.cc:1963 #, fuzzy, c-format msgid "This article is missing %d part." msgid_plural "This article is missing %d of its %d parts:" msgstr[0] "Articolul nu are atașamente" msgstr[1] "Articolul nu are atașamente" #: ../pan/gui/gui.cc:1981 ../pan/gui/header-pane.cc:1315 #: ../pan/gui/task-pane.cc:799 #, fuzzy msgid "Message-ID" msgstr "Identificator _mesaj" #: ../pan/gui/gui.cc:1982 ../pan/gui/header-pane.cc:1796 #: ../pan/gui/prefs-ui.cc:852 msgid "Lines" msgstr "Număr linii" #: ../pan/gui/gui.cc:1982 msgid "Size" msgstr "" #: ../pan/gui/gui.cc:1983 ../pan/gui/header-pane.cc:1812 #: ../pan/gui/prefs-ui.cc:850 msgid "Bytes" msgstr "" #: ../pan/gui/gui.cc:2033 msgid "" "Error loading iconv library. Encoding certain character sets will not work " "in GUI." msgstr "" #: ../pan/gui/gui.cc:2179 #, fuzzy msgid "Body Pane Encoding" msgstr "Panou cu _conținut" #: ../pan/gui/gui.cc:2210 ../pan/gui/task-pane.cc:609 #, c-format msgid "Offline" msgstr "Deconectat" #: ../pan/gui/gui.cc:2214 #, fuzzy, c-format msgid "Closing %d connection" msgid_plural "Closing %d connections" msgstr[0] "Închid %d conexiuni" msgstr[1] "Închid %d conexiuni" #: ../pan/gui/gui.cc:2216 ../pan/gui/gui.cc:2246 #, c-format msgid "No Connections" msgstr "Nici o conexiune" #: ../pan/gui/gui.cc:2220 #, c-format msgid "Connecting" msgstr "Conectare în curs" #: ../pan/gui/gui.cc:2233 #, c-format msgid "%s: %d idle, %d active @ %.1f KiBps" msgstr "" #: ../pan/gui/gui.cc:2289 #, c-format msgid "No Tasks" msgstr "Nici un proces" #: ../pan/gui/gui.cc:2291 ../pan/gui/prefs-ui.cc:1090 msgid "Tasks" msgstr "Procese" #: ../pan/gui/gui.cc:2308 ../pan/gui/task-pane.cc:475 #, c-format msgid "%lu tasks, %s, %.1f KiBps, ETA %d:%02d:%02d" msgstr "" #: ../pan/gui/gui.cc:2360 msgid "" "Pan is now offline. Please see \"File|Event Log\" and correct the problem, " "then use \"File|Work Online\" to continue." msgstr "" #: ../pan/gui/header-pane.cc:1311 ../pan/gui/task-pane.cc:795 msgid "Subject or Author" msgstr "" #: ../pan/gui/header-pane.cc:1312 ../pan/gui/task-pane.cc:796 msgid "Sub or Auth (regex)" msgstr "" #: ../pan/gui/header-pane.cc:1314 ../pan/gui/header-pane.cc:1780 #: ../pan/gui/prefs-ui.cc:849 ../pan/gui/score-add-ui.cc:140 #: ../pan/gui/task-pane.cc:798 msgid "Author" msgstr "Autor" #: ../pan/gui/header-pane.cc:1765 ../pan/gui/prefs-ui.cc:853 msgid "Score" msgstr "Punctaj" #: ../pan/gui/log-ui.cc:104 msgid "Save Event List" msgstr "" #: ../pan/gui/log-ui.cc:258 #, fuzzy msgid "Pan: Events" msgstr "Pan: Servere" #: ../pan/gui/log-ui.cc:317 msgid "Message" msgstr "Mesaj" #: ../pan/gui/pan.cc:359 msgid "Maximize" msgstr "" #: ../pan/gui/pan.cc:412 msgid "An error has occurred!" msgstr "" #: ../pan/gui/pan.cc:426 #, fuzzy msgid "New Articles!" msgstr "/_Citire/Următorul _articol" #: ../pan/gui/pan.cc:427 msgid "" "There are new\n" "articles available." msgstr "" #: ../pan/gui/pan.cc:494 msgid "Toggle on/offline" msgstr "" #: ../pan/gui/pan.cc:542 msgid "" "Thank you for trying Pan!\n" " \n" "To start newsreading, first Add a Server." msgstr "" #: ../pan/gui/pan.cc:624 msgid "" "General Options\n" " -h, --help Show this usage page.\n" " --verbose Be verbose (in non-GUI mode).\n" "\n" "URL Options\n" " headers:group.name Download new headers for the specified " "newsgroup.\n" " --no-gui On news:message-id, dump the article to stdout.\n" "\n" "NZB Batch Options\n" " --nzb file1 file2 ... Process nzb files without launching all of Pan.\n" " -o path, --output=path Path to save attachments listed in the nzb " "files.\n" " --no-gui Only show console output, not the download " "queue.\n" msgstr "" #: ../pan/gui/pan.cc:958 msgid "Error: --no-gui used without nzb files or news:message-id." msgstr "" #: ../pan/gui/pan.cc:962 #, fuzzy, c-format msgid "Pan %s started" msgstr "Pan %s a pornit" #: ../pan/gui/pan.cc:982 msgid "Please configure Pan's news servers before using it as an nzb client." msgstr "" #: ../pan/gui/pan.cc:1100 msgid "Pan notification" msgstr "" #: ../pan/gui/post-ui.cc:163 #, c-format msgid "Upload queue: %lu tasks, %ld KB (~ %.2f MB) total." msgstr "" #: ../pan/gui/post-ui.cc:266 ../pan/gui/post-ui.cc:297 #, fuzzy, c-format msgid "Error setting custom spellchecker: %s" msgstr "Eroare la scrierea soclului %s" #: ../pan/gui/post-ui.cc:270 ../pan/gui/post-ui.cc:278 #: ../pan/gui/post-ui.cc:301 ../pan/gui/post-ui.cc:309 #, fuzzy, c-format msgid "Error setting spellchecker: %s" msgstr "Eroare la scrierea soclului %s" #: ../pan/gui/post-ui.cc:448 #, fuzzy msgid "_Profile" msgstr "Identitate" #: ../pan/gui/post-ui.cc:449 #, fuzzy msgid "Set Editor" msgstr "Editor" #: ../pan/gui/post-ui.cc:451 #, fuzzy msgid "_Send Article" msgstr "/_Citire/Articolul _părinte" #: ../pan/gui/post-ui.cc:451 #, fuzzy msgid "Send Article Now" msgstr "Trimite acum" #: ../pan/gui/post-ui.cc:452 #, fuzzy msgid "_Send and Save Articles to NZB" msgstr "Pan: Salvare atașamente" #: ../pan/gui/post-ui.cc:452 #, fuzzy msgid "Send and Save Articles to NZB" msgstr "Pan: Salvare atașamente" #: ../pan/gui/post-ui.cc:453 #, fuzzy msgid "Set Character _Encoding..." msgstr "Set de _caractere:" #: ../pan/gui/post-ui.cc:454 #, fuzzy msgid "Set Content _Transfer Encoding..." msgstr "Set de _caractere:" #: ../pan/gui/post-ui.cc:455 #, fuzzy msgid "Sa_ve Draft" msgstr "Salvez articolele" #: ../pan/gui/post-ui.cc:455 msgid "Save as a Draft for Future Posting" msgstr "" #: ../pan/gui/post-ui.cc:456 #, fuzzy msgid "_Open Draft..." msgstr "/_Citește articol" #: ../pan/gui/post-ui.cc:456 #, fuzzy msgid "Open an Article Draft" msgstr "/_Citește articol" #: ../pan/gui/post-ui.cc:461 #, fuzzy msgid "_Rot13" msgstr "Aplică Rot13" #: ../pan/gui/post-ui.cc:461 msgid "Rot13 Selected Text" msgstr "Aplică Rot13 textului selectat" #: ../pan/gui/post-ui.cc:462 #, fuzzy msgid "Run _Editor" msgstr "Editor" #: ../pan/gui/post-ui.cc:462 #, fuzzy msgid "Run Editor" msgstr "Editor" #: ../pan/gui/post-ui.cc:464 msgid "Add _Files to Queue" msgstr "" #: ../pan/gui/post-ui.cc:464 msgid "Add Files to Queue" msgstr "" #: ../pan/gui/post-ui.cc:479 ../pan/gui/post-ui.cc:480 #, fuzzy msgid "Remove from Queue" msgstr "Server nou" #: ../pan/gui/post-ui.cc:484 ../pan/gui/post-ui.cc:485 #, fuzzy msgid "Clear List" msgstr "Selectare filtru:" #: ../pan/gui/post-ui.cc:489 ../pan/gui/post-ui.cc:490 #, fuzzy msgid "Select Needed Parts" msgstr "Alege tipul de caractere" #: ../pan/gui/post-ui.cc:494 ../pan/gui/post-ui.cc:495 #: ../pan/gui/task-pane.cc:677 ../pan/gui/task-pane.cc:678 msgid "Move Up" msgstr "" #: ../pan/gui/post-ui.cc:499 ../pan/gui/post-ui.cc:500 #: ../pan/gui/task-pane.cc:682 ../pan/gui/task-pane.cc:683 msgid "Move Down" msgstr "" #: ../pan/gui/post-ui.cc:504 ../pan/gui/post-ui.cc:505 msgid "Move to Top" msgstr "" #: ../pan/gui/post-ui.cc:509 ../pan/gui/post-ui.cc:510 #, fuzzy msgid "Move to Bottom" msgstr "Mută procesele selectate la sfârșit" #: ../pan/gui/post-ui.cc:517 #, fuzzy msgid "_Wrap Text" msgstr "Rearanjează text" #: ../pan/gui/post-ui.cc:517 #, fuzzy msgid "Wrap Text" msgstr "Rearanjează text" #: ../pan/gui/post-ui.cc:518 #, fuzzy msgid "Always Run Editor" msgstr "Editor" #: ../pan/gui/post-ui.cc:519 #, fuzzy msgid "Remember Character Encoding for This Group" msgstr "Set de _caractere:" #: ../pan/gui/post-ui.cc:520 msgid "Thread Attached Replies" msgstr "" #: ../pan/gui/post-ui.cc:521 #, fuzzy msgid "PGP-Encrypt the Article" msgstr "_Articol" #: ../pan/gui/post-ui.cc:522 #, fuzzy msgid "PGP-Sign the Article" msgstr "Linii pe articol:" #: ../pan/gui/post-ui.cc:523 msgid "Check _Spelling" msgstr "" #: ../pan/gui/post-ui.cc:549 #, fuzzy msgid "New Article's Encoding:" msgstr "/_Vizualizează punctajul articolului" #: ../pan/gui/post-ui.cc:559 #, fuzzy msgid "Content Transfer Encoding" msgstr "Set de _caractere:" #: ../pan/gui/post-ui.cc:560 #, fuzzy msgid "New Article's Content Transfer Encoding:" msgstr "/_Vizualizează punctajul articolului" #: ../pan/gui/post-ui.cc:740 msgid "Your changes will be lost!" msgstr "" #: ../pan/gui/post-ui.cc:741 msgid "Close this window and lose your changes?" msgstr "" #: ../pan/gui/post-ui.cc:786 ../pan/gui/post-ui.cc:825 msgid "There were problems with this post." msgstr "" #: ../pan/gui/post-ui.cc:788 ../pan/gui/post-ui.cc:827 #: ../pan/gui/post-ui.cc:892 #, fuzzy msgid "Go Back" msgstr "/_Citire/Citește înapoi" #: ../pan/gui/post-ui.cc:790 msgid "Continue Anyway" msgstr "" #. Prompt the user #: ../pan/gui/post-ui.cc:819 #, fuzzy, c-format msgid "" "Message uses characters not specified in charset '%s' - possibly use '%s' " msgstr "" "Mesajul folosește caractere inexistente în setul de caractere '%s' -- pot să " "folosesc setul de caractere '%s'?" #: ../pan/gui/post-ui.cc:842 #, fuzzy msgid "Go _Online" msgstr "Pan este conectat" #: ../pan/gui/post-ui.cc:891 msgid "The file queue is empty, so no files can be saved." msgstr "" #: ../pan/gui/post-ui.cc:1070 #, fuzzy msgid "IO Error" msgstr "Eroare" #: ../pan/gui/post-ui.cc:1070 msgid "No space left on device" msgstr "" #: ../pan/gui/post-ui.cc:1071 #, c-format msgid "Error copying message to %s folder. Reason: %s" msgstr "" #: ../pan/gui/post-ui.cc:1077 #, c-format msgid "Error creating message in %s mail folder: Invalid article." msgstr "" #: ../pan/gui/post-ui.cc:1099 msgid "" "No posting server is set for this posting profile.\n" "Please edit the profile via Edit|Manage Posting Profiles." msgstr "" #: ../pan/gui/post-ui.cc:1104 msgid "" "The selected posting server is currently disabled. Please choose an " "appropriate alternative." msgstr "" #: ../pan/gui/post-ui.cc:1146 #, fuzzy msgid "Pan is Offline." msgstr "Pan este deconectat" #: ../pan/gui/post-ui.cc:1147 msgid "Go online to post the article?" msgstr "" #: ../pan/gui/post-ui.cc:1196 #, c-format msgid "" "Error signing/encrypting your message. Perhaps you misspelled your email " "address (%s)?" msgstr "" #: ../pan/gui/post-ui.cc:1344 #, fuzzy msgid "Error opening temporary file" msgstr "Eroare la deschiderea fișierului temporar: \"%s\"" #: ../pan/gui/post-ui.cc:1356 #, c-format msgid "Error writing article to temporary file: %s" msgstr "Eroare la salvarea articolului în fișierul temporar: %s" #: ../pan/gui/post-ui.cc:1375 #, fuzzy, c-format msgid "Error parsing \"external editor\" command line: %s (Command was: %s)" msgstr "Eroare la procesarea comenzii \"editor extern\": %s" #: ../pan/gui/post-ui.cc:1416 #, c-format msgid "Error starting external editor: %s" msgstr "Eroare la pornirea editorului extern: %s" #: ../pan/gui/post-ui.cc:1479 #, fuzzy msgid "Open Draft Article" msgstr "/_Citește articol" #: ../pan/gui/post-ui.cc:1691 #, fuzzy msgid "Save Draft Article" msgstr "Salvez articolele" #: ../pan/gui/post-ui.cc:1889 #, fuzzy, c-format msgid "Couldn't parse signature command \"%s\": %s" msgstr "Nu am putut citi fișierul cu semnătura \"%s\": %s" #: ../pan/gui/post-ui.cc:1925 #, fuzzy msgid "Couldn't convert signature to UTF-8." msgstr "" "Nu am putut converti fișierul cu semnătura '%s' la UTF-8. Semnătura trebuie " "să fie în '%s'." #: ../pan/gui/post-ui.cc:2427 #, fuzzy msgid "F_rom" msgstr "De la" #: ../pan/gui/post-ui.cc:2444 #, fuzzy msgid "_Subject" msgstr "_Subiect" #: ../pan/gui/post-ui.cc:2457 #, fuzzy msgid "_Newsgroups" msgstr "/_Grupuri" #: ../pan/gui/post-ui.cc:2471 #, fuzzy msgid "Mail _To" msgstr "Trimite mail către" #: ../pan/gui/post-ui.cc:2573 msgid "Delete from Queue" msgstr "" #: ../pan/gui/post-ui.cc:2586 msgid "No." msgstr "" #: ../pan/gui/post-ui.cc:2590 ../pan/gui/post-ui.cc:2682 #: ../pan/gui/post-ui.cc:2723 msgid "Filename" msgstr "Nume fișier" #: ../pan/gui/post-ui.cc:2592 msgid "Size (KB)" msgstr "" #: ../pan/gui/post-ui.cc:2690 msgid "The current filename" msgstr "" #: ../pan/gui/post-ui.cc:2694 #, fuzzy msgid "Subject Line" msgstr "Subiect" #: ../pan/gui/post-ui.cc:2702 msgid "The current subject line" msgstr "" #: ../pan/gui/post-ui.cc:2716 msgid "No. " msgstr "" #: ../pan/gui/post-ui.cc:2720 msgid "Enable/Disable" msgstr "" #: ../pan/gui/post-ui.cc:2754 #, fuzzy msgid "Follo_wup-To" msgstr "Continuare la" #. i18n: "poster" is a key used by many newsreaders. probably safest to keep this key in english. #: ../pan/gui/post-ui.cc:2763 #, fuzzy msgid "" "The newsgroups where replies to your message should go. This is only needed " "if it differs from the \"Newsgroups\" header.\n" "\n" "To direct all replies to your email address, use \"Followup-To: poster\"" msgstr "" "Grupurile de știri la care se vor primi răspunsurile la articolul " "dumneavoastră. Se completează doar dacă diferă de cele din antetul \"Grupuri " "de știri\". \n" "Pentru a direcționa toate răspunsurile la adresa dumneavoastră de email, " "completați \"poster\" în acest câmp." #: ../pan/gui/post-ui.cc:2770 #, fuzzy msgid "_Reply-To" msgstr "Răspunsuri la" #: ../pan/gui/post-ui.cc:2778 #, fuzzy #| msgid "" #| "The email account where mail replies to your posted message should go. " #| "This is only needed if it differs from the \"From\" header." msgid "" "The email account where mail replies to your posted message should go. This " "is only needed if it differs from the \"From\" header." msgstr "" "Adresa de email la care veți primi răspunsurile la articolul dumneavoastră. " "E necesară doar dacă diferă de cea din antetul \"De la\"." #: ../pan/gui/post-ui.cc:2785 #, fuzzy msgid "_Custom Headers" msgstr "Antete personalizate" #: ../pan/gui/post-ui.cc:2809 #, fuzzy msgid "Add \"_User-Agent\" header" msgstr "Adaugă antetul \"Agent utilizator\"" #: ../pan/gui/post-ui.cc:2816 #, fuzzy msgid "Add \"Message-_ID\" header" msgstr "Adaugă antetul \"Identificator mesaj\"" #: ../pan/gui/post-ui.cc:2947 #, fuzzy msgid "Select Parts" msgstr "Alege tipul de caractere" #: ../pan/gui/post-ui.cc:2960 msgid "_Parts" msgstr "" #: ../pan/gui/post-ui.cc:3114 #, fuzzy msgid "Post Article" msgstr "_Articol" #: ../pan/gui/post-ui.cc:3135 #, fuzzy msgid "_Message" msgstr "Mesaj" #: ../pan/gui/post-ui.cc:3136 #, fuzzy msgid "More _Headers" msgstr "Mai multe antete" #: ../pan/gui/post-ui.cc:3137 #, fuzzy msgid "File _Queue" msgstr "/_Fișier/_Ieșire" #: ../pan/gui/post-ui.cc:3169 ../pan/gui/profiles-dialog.cc:481 #, no-c-format msgid "On %d, %n wrote:" msgstr "În %d, %n a scris:" #: ../pan/gui/post-ui.cc:3198 msgid "Add files to queue" msgstr "" #: ../pan/gui/post-ui.cc:3274 msgid "Save Upload Queue as NZB File" msgstr "" #: ../pan/gui/prefs.cc:364 #, fuzzy, c-format msgid "Couldn't parse %s color \"%s\"" msgstr "Nu am putut procesa semnătura \"%s\"" #: ../pan/gui/prefs-ui.cc:123 msgid "Grab Key" msgstr "" #: ../pan/gui/prefs-ui.cc:129 #, c-format msgid "" "Press the combination of the keys\n" "you want to use for \"%s\"." msgstr "" #: ../pan/gui/prefs-ui.cc:169 #, fuzzy msgid "Edit Shortcut" msgstr "Editor" #: ../pan/gui/prefs-ui.cc:231 #, fuzzy msgid "Error: Shortcut key is invalid!" msgstr "Există deja un server cu același nume." #: ../pan/gui/prefs-ui.cc:247 #, fuzzy msgid "Error: Shortcut key already exists!" msgstr "Există deja un server cu același nume." #: ../pan/gui/prefs-ui.cc:561 #, fuzzy msgid "Show only icons" msgstr "Informații despre identitate" #: ../pan/gui/prefs-ui.cc:562 #, fuzzy msgid "Show only text" msgstr "/_Vizualizare/Afișează panoul cu c_onținut" #: ../pan/gui/prefs-ui.cc:563 #, fuzzy msgid "Show icons and text" msgstr "Salvează a_tașamentele în directorul:" #: ../pan/gui/prefs-ui.cc:602 #, fuzzy msgid "Use GNOME Preferences" msgstr "Preferințe Pan" #: ../pan/gui/prefs-ui.cc:603 #, fuzzy msgid "Use KDE Preferences" msgstr "Referințe" #: ../pan/gui/prefs-ui.cc:604 #, fuzzy msgid "Use OS X Preferences" msgstr "Referințe" #: ../pan/gui/prefs-ui.cc:605 #, fuzzy msgid "Use Windows Preferences" msgstr "Preferințe Pan" #: ../pan/gui/prefs-ui.cc:606 #, fuzzy msgid "Custom Command:" msgstr "Comandă de tipărire:" #: ../pan/gui/prefs-ui.cc:658 msgid "Disabled" msgstr "" #: ../pan/gui/prefs-ui.cc:659 msgid "Only new (score == 0)" msgstr "" #: ../pan/gui/prefs-ui.cc:660 #, fuzzy msgid "9999 or more" msgstr "/Filt_rare/Afișează articolele cu punctaj -9999 (Ignorat)" #: ../pan/gui/prefs-ui.cc:661 msgid "5000 to 9998" msgstr "" #: ../pan/gui/prefs-ui.cc:662 msgid "1 to 4999" msgstr "" #: ../pan/gui/prefs-ui.cc:663 msgid "-9998 to -1" msgstr "" #: ../pan/gui/prefs-ui.cc:664 #, fuzzy msgid "-9999 or less" msgstr "/Filt_rare/Afișează articolele cu punctaj -9999 (Ignorat)" #: ../pan/gui/prefs-ui.cc:728 #, c-format msgid "Select default global character set. Current setting: %s." msgstr "" #: ../pan/gui/prefs-ui.cc:760 msgid "Global Character Set Settings" msgstr "" #: ../pan/gui/prefs-ui.cc:854 ../pan/gui/task-pane.cc:1076 #, fuzzy msgid "State" msgstr "Stare" #: ../pan/gui/prefs-ui.cc:888 msgid "Enabled" msgstr "" #: ../pan/gui/prefs-ui.cc:892 #, fuzzy msgid "Column Name" msgstr "Coloana" #: ../pan/gui/prefs-ui.cc:930 #, fuzzy msgid "Pan: Preferences" msgstr "Preferințe Pan" #: ../pan/gui/prefs-ui.cc:945 msgid "Mouse" msgstr "Mouse" #: ../pan/gui/prefs-ui.cc:947 #, fuzzy msgid "Single-click activates, rather than selects, _groups" msgstr "Single-clic_k selectează în loc să descarce grupurile" #: ../pan/gui/prefs-ui.cc:949 #, fuzzy msgid "Single-click activates, rather than selects, _articles" msgstr "Single-clic_k selectează în loc să descarce _antetele" #: ../pan/gui/prefs-ui.cc:952 #, fuzzy msgid "Groups" msgstr "Grupuri" #: ../pan/gui/prefs-ui.cc:954 #, fuzzy msgid "Get new headers in subscribed groups on _startup" msgstr "Descarcă antete noi de la grupurile abonate" #: ../pan/gui/prefs-ui.cc:956 #, fuzzy msgid "Get new headers when _entering group" msgstr "Descarcă antete noi la accesarea unui _grup" #: ../pan/gui/prefs-ui.cc:958 #, fuzzy msgid "Mark entire group _read when leaving group" msgstr "La părăsirea grupului, _marchează articolele grupului ca citite" #: ../pan/gui/prefs-ui.cc:960 #, fuzzy msgid "Mark entire group read before getting _new headers" msgstr "La părăsirea grupului, _marchează articolele grupului ca citite" #: ../pan/gui/prefs-ui.cc:962 #, fuzzy msgid "E_xpand all threads when entering group" msgstr "Descarcă antete noi la accesarea unui _grup" #: ../pan/gui/prefs-ui.cc:967 #, fuzzy msgid "Articles" msgstr "/_Articole" #: ../pan/gui/prefs-ui.cc:969 #, fuzzy msgid "Mark downloaded articles read" msgstr "Articolul este necitit" #: ../pan/gui/prefs-ui.cc:971 msgid "Space selects next article rather than next unread" msgstr "" #: ../pan/gui/prefs-ui.cc:973 #, fuzzy msgid "Expand threads upon selection" msgstr "/_Editare/Adaugă _firele de discuție la selecție" #: ../pan/gui/prefs-ui.cc:975 msgid "Always ask before deleting an article" msgstr "" #: ../pan/gui/prefs-ui.cc:977 #, fuzzy msgid "Smooth scrolling" msgstr "De_rulare continuă la viteza:" #: ../pan/gui/prefs-ui.cc:982 #, fuzzy msgid "Article Cache" msgstr "Cache de articole" #: ../pan/gui/prefs-ui.cc:983 msgid "Clear article cache on shutdown" msgstr "" #: ../pan/gui/prefs-ui.cc:986 msgid "Size of article cache (in MiB):" msgstr "" #: ../pan/gui/prefs-ui.cc:991 #, fuzzy msgid "File extension for cached articles: " msgstr "/Filt_rare/Afișează articolele c_itite" #: ../pan/gui/prefs-ui.cc:996 msgid "Tabs" msgstr "" #: ../pan/gui/prefs-ui.cc:1001 #, fuzzy msgid "_Behavior" msgstr "Com_portament" #: ../pan/gui/prefs-ui.cc:1001 #, fuzzy msgid "Behavior" msgstr "Com_portament" #: ../pan/gui/prefs-ui.cc:1007 #, fuzzy msgid "Task Pane" msgstr "/_Unelte/Administrator de _procese..." #: ../pan/gui/prefs-ui.cc:1008 msgid "Show Task Pane info popups" msgstr "" #: ../pan/gui/prefs-ui.cc:1010 #, fuzzy msgid "Show Download Meter" msgstr "/_Vizualizare/Afișează panoul cu c_onținut" #: ../pan/gui/prefs-ui.cc:1014 #, fuzzy msgid "_Panes" msgstr "Panou cu conținut" #: ../pan/gui/prefs-ui.cc:1014 #, fuzzy #| msgid "Japanese" msgid "Panes" msgstr "Japonez" #: ../pan/gui/prefs-ui.cc:1020 #, fuzzy msgid "Language Settings" msgstr "Descarc \"%s\"" #. systray and notify popup #: ../pan/gui/prefs-ui.cc:1029 #, fuzzy msgid "System Tray Behavior" msgstr "Com_portament" #: ../pan/gui/prefs-ui.cc:1031 msgid "Minimize to tray" msgstr "" #: ../pan/gui/prefs-ui.cc:1033 msgid "Start Pan minimized" msgstr "" #: ../pan/gui/prefs-ui.cc:1036 #, fuzzy msgid "Show notifications" msgstr "Informații despre identitate" #. allow multiple instances (seperate, not communicating with dbus) #: ../pan/gui/prefs-ui.cc:1041 #, fuzzy msgid "Startup Behavior" msgstr "Com_portament" #: ../pan/gui/prefs-ui.cc:1043 msgid "Allow multiple instances of Pan" msgstr "" #: ../pan/gui/prefs-ui.cc:1048 #, fuzzy msgid "Autosave Article Draft" msgstr "/_Citește articol" #: ../pan/gui/prefs-ui.cc:1050 #, fuzzy msgid "Minutes to autosave the current Article Draft: " msgstr "/_Citește articol" #: ../pan/gui/prefs-ui.cc:1055 #, fuzzy msgid "Autosave Articles" msgstr "/_Salvează atașamentele ca..." #: ../pan/gui/prefs-ui.cc:1057 msgid "Minutes to autosave newsrc files: " msgstr "" #: ../pan/gui/prefs-ui.cc:1064 msgid "GNOME Keyring" msgstr "" #: ../pan/gui/prefs-ui.cc:1065 msgid "Store passwords in GNOME Keyring" msgstr "" #: ../pan/gui/prefs-ui.cc:1069 msgid "_Miscellaneous" msgstr "" #: ../pan/gui/prefs-ui.cc:1069 msgid "Miscellaneous" msgstr "" #: ../pan/gui/prefs-ui.cc:1074 msgid "Pane Layout" msgstr "Aranjare panouri" #: ../pan/gui/prefs-ui.cc:1093 msgid "1=Groups, 2=Headers, 3=Body" msgstr "" #: ../pan/gui/prefs-ui.cc:1095 msgid "1=Groups, 2=Body, 3=Headers" msgstr "" #: ../pan/gui/prefs-ui.cc:1097 msgid "1=Headers, 2=Groups, 3=Body" msgstr "" #: ../pan/gui/prefs-ui.cc:1099 msgid "1=Headers, 2=Body, 3=Groups" msgstr "" #: ../pan/gui/prefs-ui.cc:1101 msgid "1=Body, 2=Groups, 3=Headers" msgstr "" #: ../pan/gui/prefs-ui.cc:1103 msgid "1=Body, 2=Headers, 3=Groups" msgstr "" #: ../pan/gui/prefs-ui.cc:1107 #, fuzzy msgid "Layout" msgstr "Aran_jare panouri" #: ../pan/gui/prefs-ui.cc:1112 #, fuzzy msgid "Header Pane Columns" msgstr "Panou cu antete" #: ../pan/gui/prefs-ui.cc:1116 #, fuzzy msgid "_Headers" msgstr "Antete" #: ../pan/gui/prefs-ui.cc:1116 #, fuzzy msgid "Headers" msgstr "Antete" #: ../pan/gui/prefs-ui.cc:1122 msgid "" "This menu lets you configure Pan to take certain actions on your behalf " "automatically, based on an article's score." msgstr "" #: ../pan/gui/prefs-ui.cc:1127 #, fuzzy msgid "Mark affected articles read" msgstr "Articolul este necitit" #: ../pan/gui/prefs-ui.cc:1136 #, fuzzy msgid "_Delete articles scoring at: " msgstr "acordă punctajul de" #: ../pan/gui/prefs-ui.cc:1142 #, fuzzy msgid "Mark articles read scoring at: " msgstr "Articolul este necitit" #: ../pan/gui/prefs-ui.cc:1148 #, fuzzy msgid "_Cache articles scoring at: " msgstr "acordă punctajul de" #: ../pan/gui/prefs-ui.cc:1154 msgid "Download attachments of articles scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1157 #, fuzzy msgid "Actions" msgstr "Acțiuni" #: ../pan/gui/prefs-ui.cc:1162 ../pan/gui/prefs-ui.cc:1183 msgid "Fonts" msgstr "Caractere" #: ../pan/gui/prefs-ui.cc:1164 msgid "Use custom font in Group Pane:" msgstr "Folosește caractere personalizate în panoul cu grupuri" #: ../pan/gui/prefs-ui.cc:1169 msgid "Use custom font in Header Pane:" msgstr "Folosește caractere personalizate în panoul cu antete" #: ../pan/gui/prefs-ui.cc:1174 msgid "Use custom font in Body Pane:" msgstr "Folosește caractere personalizate în panoul cu conținut" #: ../pan/gui/prefs-ui.cc:1179 #, fuzzy msgid "Monospace font:" msgstr "Caractere mo_nospațiate:" #: ../pan/gui/prefs-ui.cc:1183 #, fuzzy msgid "_Fonts" msgstr "Caractere" #: ../pan/gui/prefs-ui.cc:1192 #, fuzzy msgid "Header Pane" msgstr "Panou cu antete" #: ../pan/gui/prefs-ui.cc:1195 ../pan/gui/prefs-ui.cc:1201 #: ../pan/gui/prefs-ui.cc:1207 ../pan/gui/prefs-ui.cc:1213 #: ../pan/gui/prefs-ui.cc:1219 ../pan/gui/prefs-ui.cc:1225 #: ../pan/gui/prefs-ui.cc:1234 ../pan/gui/prefs-ui.cc:1240 #: ../pan/gui/prefs-ui.cc:1246 ../pan/gui/prefs-ui.cc:1252 #: ../pan/gui/prefs-ui.cc:1258 ../pan/gui/prefs-ui.cc:1268 #: ../pan/gui/prefs-ui.cc:1278 msgid "Text:" msgstr "Text:" #: ../pan/gui/prefs-ui.cc:1197 ../pan/gui/prefs-ui.cc:1203 #: ../pan/gui/prefs-ui.cc:1209 ../pan/gui/prefs-ui.cc:1215 #: ../pan/gui/prefs-ui.cc:1221 ../pan/gui/prefs-ui.cc:1227 #: ../pan/gui/prefs-ui.cc:1236 ../pan/gui/prefs-ui.cc:1242 #: ../pan/gui/prefs-ui.cc:1248 ../pan/gui/prefs-ui.cc:1254 #: ../pan/gui/prefs-ui.cc:1260 ../pan/gui/prefs-ui.cc:1270 #: ../pan/gui/prefs-ui.cc:1280 msgid "Background:" msgstr "Fundal:" #: ../pan/gui/prefs-ui.cc:1199 #, fuzzy msgid "Scores of 9999 or more:" msgstr "/Filt_rare/Afișează articolele cu punctaj -9999 (Ignorat)" #: ../pan/gui/prefs-ui.cc:1205 msgid "Scores from 5000 to 9998:" msgstr "" #: ../pan/gui/prefs-ui.cc:1211 msgid "Scores from 1 to 4999:" msgstr "" #: ../pan/gui/prefs-ui.cc:1217 msgid "Scores from -9998 to -1:" msgstr "" #: ../pan/gui/prefs-ui.cc:1223 #, fuzzy msgid "Scores of -9999 or less:" msgstr "/Filt_rare/Afișează articolele cu punctaj -9999 (Ignorat)" #: ../pan/gui/prefs-ui.cc:1229 msgid "Collapsed thread with unread articles:" msgstr "" #: ../pan/gui/prefs-ui.cc:1231 #, fuzzy msgid "Body Pane" msgstr "Panou cu _conținut" #: ../pan/gui/prefs-ui.cc:1238 #, fuzzy #| msgid "Characters denoting _quoted text:" msgid "First level of quoted text:" msgstr "Ghilimele pentru textul _citat:" #: ../pan/gui/prefs-ui.cc:1244 msgid "Second level of quoted text:" msgstr "" #: ../pan/gui/prefs-ui.cc:1250 #, fuzzy #| msgid "Characters denoting _quoted text:" msgid "Third level of quoted text:" msgstr "Ghilimele pentru textul _citat:" #. #: ../pan/gui/prefs-ui.cc:1256 #, fuzzy msgid "URL:" msgstr "URL-uri:" #. #: ../pan/gui/prefs-ui.cc:1262 #, fuzzy msgid "Signature:" msgstr "Fișier cu _semnătură:" #: ../pan/gui/prefs-ui.cc:1265 #, fuzzy msgid "Group Pane" msgstr "Panou cu grupuri" #. #: ../pan/gui/prefs-ui.cc:1272 msgid "Group Color:" msgstr "" #: ../pan/gui/prefs-ui.cc:1276 #, fuzzy msgid "Other Text" msgstr "Salvează te_xt" #: ../pan/gui/prefs-ui.cc:1282 #, fuzzy #| msgid "Select Color" msgid "Text Color:" msgstr "Selectează culoarea" #: ../pan/gui/prefs-ui.cc:1285 #, fuzzy msgid "_Colors" msgstr "Culori" #: ../pan/gui/prefs-ui.cc:1285 #, fuzzy msgid "Colors" msgstr "Culori" #: ../pan/gui/prefs-ui.cc:1290 #, fuzzy msgid "Preferred Applications" msgstr "Aplicații" #: ../pan/gui/prefs-ui.cc:1294 #, fuzzy msgid "_Web browser:" msgstr "Navigator web (%s este un URL):" #: ../pan/gui/prefs-ui.cc:1297 #, fuzzy msgid "_Mail reader:" msgstr "Server de mail" #: ../pan/gui/prefs-ui.cc:1299 #, fuzzy msgid "_Text editor:" msgstr "Editor" #: ../pan/gui/prefs-ui.cc:1301 msgid "_HTML previewer:" msgstr "" #: ../pan/gui/prefs-ui.cc:1303 #, fuzzy msgid "_Applications" msgstr "Aplicații" #: ../pan/gui/prefs-ui.cc:1303 #, fuzzy msgid "Applications" msgstr "Aplicații" #: ../pan/gui/prefs-ui.cc:1308 ../pan/gui/task-pane.cc:552 #, fuzzy msgid "Encoding" msgstr "Set de _caractere:" #: ../pan/gui/prefs-ui.cc:1312 msgid "Default bytes per file (for encoder): " msgstr "" #: ../pan/gui/prefs-ui.cc:1317 #, fuzzy msgid "_Upload" msgstr "Aplicații" #: ../pan/gui/prefs-ui.cc:1317 msgid "Upload" msgstr "" #: ../pan/gui/prefs-ui.cc:1326 msgid "_Shortcuts" msgstr "" #: ../pan/gui/prefs-ui.cc:1326 msgid "Shortcuts" msgstr "" #: ../pan/gui/profiles-dialog.cc:83 msgid "Please choose your email address according to your PGP key's user id." msgstr "" #: ../pan/gui/profiles-dialog.cc:131 #, fuzzy msgid "Posting Profile" msgstr "Pan: Identitate" #: ../pan/gui/profiles-dialog.cc:143 msgid "Profile Information" msgstr "Informații despre identitate" #: ../pan/gui/profiles-dialog.cc:147 msgid "_Profile Name:" msgstr "_Nume:" #: ../pan/gui/profiles-dialog.cc:150 msgid "Required Information" msgstr "Informații obligatorii" #: ../pan/gui/profiles-dialog.cc:154 msgid "_Full Name:" msgstr "Nume _complet:" #: ../pan/gui/profiles-dialog.cc:158 msgid "" "Your email address.\n" "Note that this has to match your PGP signature's address\n" "if you want your messages to be PGP-signed or encrypted correctly." msgstr "" #: ../pan/gui/profiles-dialog.cc:162 msgid "_Email Address:" msgstr "Adresă _email:" #: ../pan/gui/profiles-dialog.cc:164 #, fuzzy msgid "_Post Articles via:" msgstr "_Articol" #: ../pan/gui/profiles-dialog.cc:167 #, fuzzy msgid "Signature" msgstr "Fișier cu _semnătură:" #: ../pan/gui/profiles-dialog.cc:170 #, fuzzy msgid "_Use a Signature" msgstr "Fișier cu _semnătură:" #: ../pan/gui/profiles-dialog.cc:174 #, fuzzy msgid "Signature File" msgstr "Selectați fișierul cu semnătura" #: ../pan/gui/profiles-dialog.cc:184 #, fuzzy msgid "Text File" msgstr "/_Citire/Următorul _articol" #: ../pan/gui/profiles-dialog.cc:186 #, fuzzy msgid "Text" msgstr "Text:" #: ../pan/gui/profiles-dialog.cc:188 #, fuzzy msgid "Command" msgstr "Comandă de tipărire:" #: ../pan/gui/profiles-dialog.cc:191 #, fuzzy msgid "PGP Signature" msgstr "Fișier cu _semnătură:" #: ../pan/gui/profiles-dialog.cc:196 #, fuzzy msgid "Signature Type: " msgstr "Fișier cu _semnătură:" #: ../pan/gui/profiles-dialog.cc:226 msgid "X-Face (Avatar)" msgstr "" #: ../pan/gui/profiles-dialog.cc:229 msgid "" "You can add an avatar icon to your articles with a unique X-Face code.\n" "Add the code without the trailing \"X-Face:\" \n" " if it was generated by a helper program (for example http://www.dairiki.org/" "xface/xface.php)." msgstr "" #: ../pan/gui/profiles-dialog.cc:232 msgid "_X-Face:" msgstr "" #: ../pan/gui/profiles-dialog.cc:234 msgid "Optional Information" msgstr "Informații opționale" #: ../pan/gui/profiles-dialog.cc:239 #, fuzzy msgid "" "When posting to Usenet, your article's Message-ID contains a domain name.\n" "You can set a custom domain name here, or leave it blank to let Pan use the " "domain name from your email address." msgstr "" "Când trimiteți un articol către Usenet, identificatorul de mesaj al " "articolului conține un nume de domeniu. Puteți configura aici un nume de " "domeniu explicit sau să lăsați câmpul gol pentru ca Pan să folosească numele " "de domeniu din adresa dumneavoastră de email." #: ../pan/gui/profiles-dialog.cc:242 msgid "Message-ID _Domain Name:" msgstr "Nume _domeniu:" #: ../pan/gui/profiles-dialog.cc:246 #, c-format msgid "" "%i for Message-ID\n" "%a for Author and Address\n" "%n for Author name\n" "%d for Date" msgstr "" "%i pentru identificator mesaj\n" "%a pentru autor și adresă\n" "%n pentru numele autorului\n" "%d pentru dată" #: ../pan/gui/profiles-dialog.cc:247 msgid "_Attribution:" msgstr "_Atribuire:" #: ../pan/gui/profiles-dialog.cc:271 msgid "" "Extra headers to be included in your articles, such as\n" "Reply-To: \"Your Name\"\n" "Organization: Your Organization\n" msgstr "" #: ../pan/gui/profiles-dialog.cc:281 #, fuzzy msgid "E_xtra Headers:" msgstr "Antete suplimentare" #: ../pan/gui/profiles-dialog.cc:326 #, fuzzy msgid "Invalid email address." msgstr "Adresă incorectă \"%s\"" #: ../pan/gui/profiles-dialog.cc:327 msgid "Please use an address of the form joe@somewhere.org" msgstr "" #: ../pan/gui/profiles-dialog.cc:482 msgid "New Profile" msgstr "Identitate nouă" #: ../pan/gui/profiles-dialog.cc:528 #, fuzzy msgid "Posting Profiles" msgstr "/_Unelte/Identități..." #: ../pan/gui/profiles-dialog.cc:544 #, fuzzy msgid "Profiles" msgstr "Identitate" #: ../pan/gui/save-attach-ui.cc:46 #, fuzzy, c-format msgid "" "%g - group as one directory (alt.binaries.pictures.trains)\n" "%G - group as nested directory (/alt/binaries/pictures/trains)\n" "%s - Subject line excerpt\n" "%S - Subject line\n" "%n - Poster display name\n" "%e - Poster email address\n" "%d - Article timestamp\n" "\"/home/user/News/Pan/%g\" becomes\n" "\"/home/user/News/Pan/alt.binaries.pictures.trains\", and\n" "\"/home/user/News/Pan/%G\" becomes\n" "\"/home/user/News/Pan/alt/binaries/pictures/trains\"," msgstr "" "%g - grupează într-un singur director (alt.binaries.poze.trenuri)\n" "%G - grupează într-un director imbricat (alt/binaries/poze/trenuri)\n" "\n" "\"/home/utilizator/News/Pan/%g\" devine\n" "\"/home/utilizator/News/Pan/alt.binaries.poze.trenuri\", iar\n" "\"/home/utilizator/News/Pan/%G\" devine\n" "\"/home/utilizator/New/Pan/alt/binaries/poze/trenuri\"." #: ../pan/gui/save-attach-ui.cc:197 ../pan/gui/save-ui.cc:217 msgid "Add to the queue sorted by date posted" msgstr "" #: ../pan/gui/save-attach-ui.cc:198 ../pan/gui/save-ui.cc:218 #, fuzzy msgid "Add to the front of the queue" msgstr "Adaugă la _sfârșitul listei administratorului de procese" #: ../pan/gui/save-attach-ui.cc:199 ../pan/gui/save-ui.cc:219 #, fuzzy msgid "Add to the back of the queue" msgstr "Adaugă la _sfârșitul listei administratorului de procese" #: ../pan/gui/save-attach-ui.cc:231 #, fuzzy msgid "Pan: Save Attachments" msgstr "Salvează _atașamente" #: ../pan/gui/save-attach-ui.cc:256 ../pan/gui/save-attach-ui.cc:274 #: ../pan/gui/save-ui.cc:271 ../pan/gui/save-ui.cc:289 #, fuzzy msgid "_Location:" msgstr "Acțiuni" #: ../pan/gui/save-attach-ui.cc:260 ../pan/gui/save-ui.cc:275 #, fuzzy msgid "Save Articles" msgstr "/_Salvează atașamentele ca..." #: ../pan/gui/save-attach-ui.cc:277 ../pan/gui/save-ui.cc:292 #, c-format msgid "_Group's path: %s" msgstr "" #: ../pan/gui/save-attach-ui.cc:288 ../pan/gui/save-ui.cc:307 msgid "_Priority:" msgstr "" #: ../pan/gui/save-ui.cc:46 #, fuzzy, c-format msgid "" "%g - group as one directory (alt.binaries.pictures.trains)\n" "%G - group as nested directory (/alt/binaries/pictures/trains)\n" "%s - subject line excerpt\n" "%S - subject line\n" "%n - Poster display name\n" "%e - Poster email address\n" "%d - Article timestamp\n" " \n" "\"/home/user/News/Pan/%g\" becomes\n" "\"/home/user/News/Pan/alt.binaries.pictures.trains\", and\n" "\"/home/user/News/Pan/%G\" becomes\n" "\"/home/user/News/Pan/alt/binaries/pictures/trains\"," msgstr "" "%g - grupează într-un singur director (alt.binaries.poze.trenuri)\n" "%G - grupează într-un director imbricat (alt/binaries/poze/trenuri)\n" "\n" "\"/home/utilizator/News/Pan/%g\" devine\n" "\"/home/utilizator/News/Pan/alt.binaries.poze.trenuri\", iar\n" "\"/home/utilizator/News/Pan/%G\" devine\n" "\"/home/utilizator/New/Pan/alt/binaries/poze/trenuri\"." #: ../pan/gui/save-ui.cc:208 #, fuzzy msgid "Save attachments" msgstr "Salvează atașamentele" #: ../pan/gui/save-ui.cc:209 #, fuzzy msgid "Save text" msgstr "Salvează te_xt" #: ../pan/gui/save-ui.cc:210 #, fuzzy msgid "Save attachments and text" msgstr "Salvează a_tașamentele în directorul:" #: ../pan/gui/save-ui.cc:246 #, fuzzy msgid "Pan: Save Articles" msgstr "Pan: Salvare atașamente" #: ../pan/gui/save-ui.cc:303 #, fuzzy msgid "_Action:" msgstr "Acțiuni" #: ../pan/gui/score-add-ui.cc:89 msgid "is more than" msgstr "" #: ../pan/gui/score-add-ui.cc:90 msgid "is at most" msgstr "" #: ../pan/gui/score-add-ui.cc:112 #, fuzzy msgid "increase the article's score by" msgstr "/_Vizualizare/R_earanjează conținutul articolului" #: ../pan/gui/score-add-ui.cc:113 #, fuzzy msgid "decrease the article's score by" msgstr "/_Vizualizare/R_earanjează conținutul articolului" #: ../pan/gui/score-add-ui.cc:114 #, fuzzy msgid "set the article's score to" msgstr "acordă punctajul de" #: ../pan/gui/score-add-ui.cc:115 #, fuzzy msgid "watch the article (set its score to 9999)" msgstr "_Urmărește (acordă un punctaj de 9999)" #: ../pan/gui/score-add-ui.cc:116 #, fuzzy msgid "ignore the article (set its score to -9999)" msgstr "_Ignoră (acordă un punctaj de -9999)" #: ../pan/gui/score-add-ui.cc:141 #, fuzzy msgid "References" msgstr "_Referințe:" #: ../pan/gui/score-add-ui.cc:142 #, fuzzy msgid "Line Count" msgstr "Linia %d, coloana %d" #: ../pan/gui/score-add-ui.cc:143 msgid "Byte Count" msgstr "" #: ../pan/gui/score-add-ui.cc:144 msgid "Crosspost Group Count" msgstr "" #: ../pan/gui/score-add-ui.cc:145 msgid "Age (in days)" msgstr "" #: ../pan/gui/score-add-ui.cc:167 msgid "for the next month" msgstr "" #: ../pan/gui/score-add-ui.cc:168 msgid "for the next six months" msgstr "" #: ../pan/gui/score-add-ui.cc:169 #, fuzzy msgid "forever" msgstr "Server" #: ../pan/gui/score-add-ui.cc:194 msgid "contains" msgstr "conține" #: ../pan/gui/score-add-ui.cc:195 #, fuzzy msgid "doesn't contain" msgstr "nu conține" #: ../pan/gui/score-add-ui.cc:196 msgid "is" msgstr "este" #: ../pan/gui/score-add-ui.cc:197 #, fuzzy msgid "isn't" msgstr "nu este" #: ../pan/gui/score-add-ui.cc:198 msgid "starts with" msgstr "începe cu" #: ../pan/gui/score-add-ui.cc:199 msgid "ends with" msgstr "se termină cu" #: ../pan/gui/score-add-ui.cc:200 #, fuzzy msgid "matches regex" msgstr "corespunde expresiei regulate" #: ../pan/gui/score-add-ui.cc:481 #, fuzzy msgid "Another rule already sets this article's score." msgstr "/_Vizualizare/R_earanjează conținutul articolului" #: ../pan/gui/score-add-ui.cc:482 msgid "You may want to go back or delete the old rule." msgstr "" #: ../pan/gui/score-add-ui.cc:553 msgid "Add and Re_score" msgstr "Adaugă și _recalculează" #: ../pan/gui/score-add-ui.cc:604 ../pan/gui/score-add-ui.cc:624 #, fuzzy msgid "New Scoring Rule" msgstr "Punctaj nou" #: ../pan/gui/score-add-ui.cc:635 #, fuzzy msgid "Group name" msgstr "Panou cu grupuri" #: ../pan/gui/score-add-ui.cc:642 #, fuzzy msgid "and" msgstr "Comandă de tipărire:" #: ../pan/gui/score-view-ui.cc:56 msgid "Close and Re_score" msgstr "Închide și re_puncteză" #: ../pan/gui/score-view-ui.cc:154 #, fuzzy, c-format msgid "File %s, Lines %d - %d" msgstr "fișierul cu punctaje %s, linia %d: %s (%s)" #: ../pan/gui/score-view-ui.cc:182 #, fuzzy msgid "Pan: Article's Scores" msgstr "Pan: Vizualizare punctaje" #: ../pan/gui/score-view-ui.cc:208 #, fuzzy msgid "Add" msgstr "adaugă" #: ../pan/gui/score-view-ui.cc:213 msgid "New Score" msgstr "Punctaj nou" #: ../pan/gui/score-view-ui.cc:218 msgid "Criteria" msgstr "Criterii" #: ../pan/gui/score-view-ui.cc:241 #, fuzzy msgid "Add a New Scoring Rule" msgstr "Adaugă un nou punctaj" #: ../pan/gui/score-view-ui.cc:248 #, fuzzy msgid "Remove the Selected Scoring Rule" msgstr "Șterge punctajul selectat" #: ../pan/gui/server-ui.cc:259 msgid "Please specify the server's address." msgstr "" #: ../pan/gui/server-ui.cc:305 msgid "Import SSL Certificate (PEM Format) From File" msgstr "" #. create the dialog #: ../pan/gui/server-ui.cc:342 ../pan/gui/server-ui.cc:948 #, fuzzy msgid "Add a Server" msgstr "Adaugă un nou server" #: ../pan/gui/server-ui.cc:342 ../pan/gui/server-ui.cc:954 #, fuzzy msgid "Edit a Server's Settings" msgstr "Alte setări" #: ../pan/gui/server-ui.cc:362 #, fuzzy msgid "Location" msgstr "Acțiuni" #: ../pan/gui/server-ui.cc:366 msgid "The news server's actual address, e.g. \"news.mynewsserver.com\"" msgstr "Adresa serverului de știri, e.g. \"news.mynewsserver.com\"" #: ../pan/gui/server-ui.cc:367 msgid "_Address:" msgstr "_Adresă:" #: ../pan/gui/server-ui.cc:372 #, fuzzy msgid "" "The news server's port number. Typically 119 for unencrypted and 563 for " "encrypted connections (SSL/TLS)." msgstr "Portul serverului de știri. Acesta e aproape întotdeauna 119." #: ../pan/gui/server-ui.cc:373 msgid "Por_t:" msgstr "Por_t:" #: ../pan/gui/server-ui.cc:376 msgid "Login (if Required)" msgstr "" #: ../pan/gui/server-ui.cc:380 msgid "_Username:" msgstr "Nume _utilizator:" #: ../pan/gui/server-ui.cc:381 msgid "" "The username to give the server when asked. If your server doesn't require " "authentication, you can leave this blank." msgstr "" #: ../pan/gui/server-ui.cc:385 msgid "_Password:" msgstr "_Parolă:" #: ../pan/gui/server-ui.cc:386 msgid "" "The password to give the server when asked. If your server doesn't require " "authentication, you can leave this blank." msgstr "" #: ../pan/gui/server-ui.cc:389 #, fuzzy msgid "Settings" msgstr "Descarc \"%s\"" #: ../pan/gui/server-ui.cc:396 msgid "Connection _Limit:" msgstr "Număr _maxim de conexiuni:" #: ../pan/gui/server-ui.cc:400 msgid "After Two Weeks" msgstr "" #: ../pan/gui/server-ui.cc:401 msgid "After One Month" msgstr "" #: ../pan/gui/server-ui.cc:402 msgid "After Two Months" msgstr "" #: ../pan/gui/server-ui.cc:403 msgid "After Three Months" msgstr "" #: ../pan/gui/server-ui.cc:404 msgid "After Six Months" msgstr "" #: ../pan/gui/server-ui.cc:405 #, fuzzy msgid "Never Expire Old Articles" msgstr "Nu expiră _niciodată" #: ../pan/gui/server-ui.cc:419 msgid "E_xpire Old Articles:" msgstr "" #: ../pan/gui/server-ui.cc:423 #, fuzzy msgid "Primary" msgstr "Prioritate" #: ../pan/gui/server-ui.cc:424 msgid "Fallback" msgstr "" #: ../pan/gui/server-ui.cc:438 #, fuzzy msgid "Server Rank:" msgstr "Servere" #: ../pan/gui/server-ui.cc:442 msgid "" "Fallback servers are used for articles that can't be found on the " "primaries. One common approach is to use free servers as primaries and " "subscription servers as fallbacks." msgstr "" #: ../pan/gui/server-ui.cc:447 msgid "Disable Compression (N/A)" msgstr "" #: ../pan/gui/server-ui.cc:448 msgid "XZVER Compression (Astraweb)" msgstr "" #: ../pan/gui/server-ui.cc:449 msgid "GZIP Compression (Giganews etc.)" msgstr "" #: ../pan/gui/server-ui.cc:463 msgid "Header Compression:" msgstr "" #: ../pan/gui/server-ui.cc:469 msgid "Security" msgstr "" #: ../pan/gui/server-ui.cc:474 #, fuzzy msgid "Use Unsecure (Plaintext) Connections" msgstr "Nici o conexiune" #: ../pan/gui/server-ui.cc:475 #, fuzzy msgid "Use Secure SSL Connections" msgstr "Nici o conexiune" #: ../pan/gui/server-ui.cc:490 msgid "TLS (SSL) Settings:" msgstr "" #: ../pan/gui/server-ui.cc:495 msgid "" "You can enable/disable secure SSL/TLS connections here. If you enable SSL/" "TLS, your data is encrypted and secure. It is encouraged to enable SSL/TLS " "for privacy reasons." msgstr "" #: ../pan/gui/server-ui.cc:500 msgid "Always trust this server's certificate" msgstr "" #: ../pan/gui/server-ui.cc:676 #, c-format msgid "Really delete \"%s\"?" msgstr "" #: ../pan/gui/server-ui.cc:765 msgid "No information available." msgstr "" #: ../pan/gui/server-ui.cc:775 #, c-format msgid "Server Certificate for '%s'" msgstr "" #: ../pan/gui/server-ui.cc:874 #, c-format msgid "Really delete certificate for \"%s\"?" msgstr "" #. dialog #: ../pan/gui/server-ui.cc:901 ../pan/gui/server-ui.cc:922 #: ../pan/gui/server-ui.cc:1020 msgid "Servers" msgstr "Servere" #: ../pan/gui/server-ui.cc:961 #, fuzzy msgid "Remove a Server" msgstr "Server nou" #. dialog #: ../pan/gui/server-ui.cc:994 msgid "SSL Certificates" msgstr "" #: ../pan/gui/server-ui.cc:1015 msgid "Certificates" msgstr "" #: ../pan/gui/server-ui.cc:1046 msgid "Import Certificate" msgstr "" #: ../pan/gui/server-ui.cc:1052 msgid "Inspect Certificate" msgstr "" #: ../pan/gui/server-ui.cc:1059 #, fuzzy msgid "Remove Certificate" msgstr "Server nou" #: ../pan/gui/task-pane.cc:121 #, c-format msgid "" "\n" "Upload\n" "\n" "Subject: \"%s\"\n" "From: %s\n" "Groups: %s\n" "Sourcefile: %s\n" msgstr "" #: ../pan/gui/task-pane.cc:133 #, c-format msgid "" "\n" "Download\n" "\n" "Subject: \"%s\"\n" "From: %s\n" "Date: %s\n" "Groups: %s\n" "Save Path: %s\n" msgstr "" #: ../pan/gui/task-pane.cc:135 #, fuzzy msgid "unknown" msgstr "Anonim" #: ../pan/gui/task-pane.cc:303 #, fuzzy msgid "Choose New Destination for Selected Tasks" msgstr "Descarcă antete noi de la grupurile selecționate" #: ../pan/gui/task-pane.cc:457 #, fuzzy, c-format msgid "Pan: Tasks (%d Queued, %d Running, %d Stopped)" msgstr "" "Pan %s Administrator de Procese (%d în coadă, %d în execuție, %d oprite)" #: ../pan/gui/task-pane.cc:459 #, fuzzy, c-format msgid "Pan: Tasks (%d Queued, %d Running)" msgstr "Pan %s Administrator de Procese (%d în coadă, %d în execuție)" #: ../pan/gui/task-pane.cc:461 #, fuzzy, c-format msgid "Pan: Tasks" msgstr "Pan: Administrator de Procese" #: ../pan/gui/task-pane.cc:486 #, fuzzy, c-format msgid "%lu selected, %s" msgstr "(%u selectate)" #: ../pan/gui/task-pane.cc:550 msgid "Running" msgstr "În execuție" #: ../pan/gui/task-pane.cc:551 #, fuzzy msgid "Decoding" msgstr "Decodific \"%s\"" #: ../pan/gui/task-pane.cc:553 msgid "Queued for Decode" msgstr "" #: ../pan/gui/task-pane.cc:554 msgid "Queued for Encode" msgstr "" #: ../pan/gui/task-pane.cc:555 msgid "Queued" msgstr "În coadă" #: ../pan/gui/task-pane.cc:556 msgid "Stopped" msgstr "Oprit" #: ../pan/gui/task-pane.cc:557 msgid "Removing" msgstr "În curs de ștergere" #: ../pan/gui/task-pane.cc:586 #, fuzzy, c-format msgid "%d%% Done" msgstr "% Terminate" #: ../pan/gui/task-pane.cc:592 #, fuzzy, c-format msgid "%d:%02d:%02d Remaining (%d @ %lu KiB/s)" msgstr "%d:%02d:%02d (%.2f KB/s)" #: ../pan/gui/task-pane.cc:687 ../pan/gui/task-pane.cc:688 #, fuzzy msgid "Move To Top" msgstr "Mută procesele selectate la sfârșit" #: ../pan/gui/task-pane.cc:692 ../pan/gui/task-pane.cc:693 #, fuzzy msgid "Move To Bottom" msgstr "Mută procesele selectate la sfârșit" #: ../pan/gui/task-pane.cc:697 ../pan/gui/task-pane.cc:698 #, fuzzy msgid "Show Task Information" msgstr "Informații despre identitate" #: ../pan/gui/task-pane.cc:702 ../pan/gui/task-pane.cc:703 #, fuzzy msgid "Stop Task" msgstr "Nici un proces" #: ../pan/gui/task-pane.cc:707 ../pan/gui/task-pane.cc:708 #, fuzzy msgid "Delete Task" msgstr "Șterge mesajele spam" #: ../pan/gui/task-pane.cc:712 ../pan/gui/task-pane.cc:713 #, fuzzy msgid "Restart Task" msgstr "Repornește procesele selectate" #: ../pan/gui/task-pane.cc:717 ../pan/gui/task-pane.cc:718 msgid "Change Download Destination" msgstr "" #: ../pan/gui/task-pane.cc:1028 #, fuzzy msgid "_Online" msgstr "Pan este conectat" #: ../pan/gui/task-pane.cc:1045 #, fuzzy msgid "Restart Tasks" msgstr "Repornește procesele selectate" #: ../pan/gui/task-pane.cc:1047 #, fuzzy msgid "Stop Tasks" msgstr "Nici un proces" #: ../pan/gui/task-pane.cc:1049 #, fuzzy msgid "Delete Tasks" msgstr "Șterge mesajele spam" #: ../pan/gui/task-pane.cc:1055 msgid "Show info popups" msgstr "" #: ../pan/gui/url.cc:123 #, fuzzy, c-format msgid "Error starting URL: %s (Command was: %s)" msgstr "Eroare la procesarea comenzii \"Navigator web\": %s" #: ../pan/tasks/decoder.cc:117 #, fuzzy, c-format msgid "Couldn't save file \"%s\": %s" msgstr "Nu am putut citi fișierul cu semnătura \"%s\": %s" #: ../pan/tasks/decoder.cc:139 ../pan/tasks/encoder.cc:136 msgid "Error initializing uulib" msgstr "" #: ../pan/tasks/decoder.cc:154 ../pan/tasks/socket-impl-gio.cc:360 #: ../pan/tasks/socket-impl-openssl.cc:642 #, fuzzy, c-format msgid "Error reading from %s: %s" msgstr "Eroare la citirea soclului %s" #: ../pan/tasks/decoder.cc:194 #, c-format msgid "Saved \"%s\"" msgstr "Am salvat \"%s\"" #: ../pan/tasks/decoder.cc:201 #, fuzzy, c-format msgid "" "Error saving \"%s\":\n" "%s." msgstr "Eroare la deschiderea fișierului \"%s\": %s" #: ../pan/tasks/decoder.cc:314 ../pan/tasks/task-article.cc:354 #, fuzzy, c-format msgid "Decoding %s" msgstr "Decodific \"%s\"" #: ../pan/tasks/encoder.cc:103 ../pan/tasks/encoder.cc:154 #, fuzzy, c-format msgid "Error loading %s from cache." msgstr "Eroare la citirea soclului" #: ../pan/tasks/encoder.cc:176 #, fuzzy, c-format msgid "Error encoding %s: %s" msgstr "Eroare la deschiderea fișierului \"%s\": %s" #: ../pan/tasks/encoder.cc:266 #, fuzzy, c-format msgid "Encoding %s" msgstr "Set de _caractere:" #: ../pan/tasks/nntp.cc:148 #, c-format msgid "%s requires a username, but none is set." msgstr "" #: ../pan/tasks/nntp.cc:161 #, c-format msgid "%s requires a password, but none is set." msgstr "" #: ../pan/tasks/nntp.cc:239 #, c-format msgid "Sending \"%s\" to %s returned an error: %s" msgstr "" #: ../pan/tasks/nntp.cc:262 #, c-format msgid "Sending \"%s\" to %s returned an unrecognized response: \"%s\"" msgstr "" #: ../pan/tasks/nntp-pool.cc:235 #, fuzzy, c-format msgid "Unable to connect to \"%s\"" msgstr "Nu mă pot conecta la serverul de mail \"%*.*s\"" #: ../pan/tasks/queue.cc:772 ../pan/tasks/queue.cc:800 #: ../pan/tasks/queue.cc:827 msgid "No space left on device." msgstr "" #: ../pan/tasks/socket-impl-gio.cc:173 ../pan/tasks/socket-impl-gio.cc:211 #: ../pan/tasks/socket-impl-openssl.cc:214 #: ../pan/tasks/socket-impl-openssl.cc:252 #, fuzzy, c-format msgid "Error connecting to \"%s\"" msgstr "Eroare la deschiderea fișierului \"%s\": %s" #: ../pan/tasks/socket-impl-gio.cc:359 ../pan/tasks/socket-impl-openssl.cc:641 #, fuzzy msgid "Unknown Error" msgstr "Anonim" #: ../pan/tasks/task-article.cc:62 ../pan/tasks/task-article.cc:160 #, fuzzy, c-format msgid "Saving %s" msgstr "Salvez \"%s\"" #: ../pan/tasks/task-article.cc:64 #, fuzzy, c-format msgid "Reading %s" msgstr "Citește" #: ../pan/tasks/task-article.cc:326 #, c-format msgid "Article \"%s\" is incomplete -- the news server(s) don't have part %s" msgstr "" #: ../pan/tasks/task-groups.cc:41 #, fuzzy, c-format msgid "Getting group list from \"%s\"" msgstr "Descarc grupurile noi de la serverul \"%s\"" #: ../pan/tasks/task-groups.cc:134 #, fuzzy, c-format msgid "Fetched %lu Groups" msgstr "Am descărcat %u antete pentru \"%s\"" #: ../pan/tasks/task-post.cc:35 #, fuzzy, c-format msgid "Posting \"%s\"" msgstr "Descarc \"%s\"" #: ../pan/tasks/task-post.cc:76 #, fuzzy, c-format msgid "Posting of \"%s\" failed: %s" msgstr "Descărcarea conținutului articolului \"%s\" a eșuat: %s" #: ../pan/tasks/task-post.cc:81 #, fuzzy, c-format msgid "Posting of \"%s\" successful: %s" msgstr "Descărcarea conținutului articolului \"%s\" a eșuat: %s" #: ../pan/tasks/task-upload.cc:51 #, fuzzy, c-format msgid "Uploading %s" msgstr "Citește" #: ../pan/tasks/task-upload.cc:244 #, c-format msgid "Uploading %s - Part %d of %d" msgstr "" #: ../pan/tasks/task-upload.cc:246 #, c-format msgid "Uploading message body with subject \"%s\"" msgstr "" #: ../pan/tasks/task-upload.cc:303 #, fuzzy, c-format msgid "Posting of file %s (part %d of %d) failed: No posts allowed by server." msgstr "Descărcarea conținutului articolului \"%s\" a eșuat: %s" #: ../pan/tasks/task-upload.cc:311 #, fuzzy, c-format msgid "Posting of file %s (part %d of %d) failed: %s" msgstr "Descărcarea conținutului articolului \"%s\" a eșuat: %s" #: ../pan/tasks/task-upload.cc:321 ../pan/tasks/task-upload.cc:328 #, fuzzy, c-format msgid "Posting of file %s (part %d of %d) successful: %s" msgstr "Descărcarea conținutului articolului \"%s\" a eșuat: %s" #: ../pan/tasks/task-upload.cc:338 #, fuzzy, c-format msgid "Posting of file %s successful: %s" msgstr "Descărcarea conținutului articolului \"%s\" a eșuat: %s" #: ../pan/tasks/task-upload.cc:342 #, c-format msgid "" "Posting of file %s not completely successful: Check the log (right-click " "list item)." msgstr "" #: ../pan/tasks/task-upload.cc:358 #, c-format msgid "" "Posting of file %s not successful: Check the log (right-click list item)." msgstr "" #: ../pan/tasks/task-xover.cc:83 #, c-format msgid "Getting all headers for \"%s\"" msgstr "Descarc toate antetele pentru \"%s\"" #: ../pan/tasks/task-xover.cc:86 #, c-format msgid "Getting new headers for \"%s\"" msgstr "Descarc antetele noi pentru \"%s\"" #. SAMPLE #: ../pan/tasks/task-xover.cc:90 #, c-format msgid "Sampling headers for \"%s\"" msgstr "Triez antetele pentru \"%s\"" #: ../pan/tasks/task-xover.cc:426 #, fuzzy, c-format msgid "%s (%lu parts, %lu articles)" msgstr " (%lu linii în %lu articole)" #: ../pan/tasks/task-xover.cc:500 #, fuzzy, c-format #| msgid "Getting new headers for \"%s\"" msgid "Getting new headers for \"%s\" done." msgstr "Descarc antetele noi pentru \"%s\"" #: ../pan/tasks/task-xoverinfo.cc:78 #, fuzzy, c-format msgid "Getting header counts for \"%s\"" msgstr "Descarc toate antetele pentru \"%s\"" #: ../pan/usenet-utils/filter-info.cc:168 #, fuzzy msgid "article doesn't have attachments" msgstr "Articolul nu are atașamente complete" #: ../pan/usenet-utils/filter-info.cc:172 #, fuzzy msgid "the article has attachments" msgstr "Articolul nu are atașamente" #: ../pan/usenet-utils/filter-info.cc:176 #, fuzzy msgid "the article isn't cached locally" msgstr "Conținutul articolului nu se găsește în cache-ul local" #: ../pan/usenet-utils/filter-info.cc:180 #, fuzzy msgid "the article is cached locally" msgstr "Conținutul articolului se găsește în cache-ul local." #: ../pan/usenet-utils/filter-info.cc:184 #, fuzzy msgid "the article wasn't posted by you" msgstr "Articolul nu a fost trimis de mine" #: ../pan/usenet-utils/filter-info.cc:188 #, fuzzy msgid "the article was posted by you" msgstr "Articolul a fost trimis de mine" #: ../pan/usenet-utils/filter-info.cc:192 #, fuzzy msgid "the article has been read" msgstr "Articolul este necitit" #: ../pan/usenet-utils/filter-info.cc:196 #, fuzzy msgid "the article hasn't been read" msgstr "Articolul este necitit" #: ../pan/usenet-utils/filter-info.cc:200 #, fuzzy, c-format msgid "the article is less than %ld bytes long" msgstr "Articolul e mai mic de %d octeți" #: ../pan/usenet-utils/filter-info.cc:205 #, fuzzy, c-format msgid "the article is at least %ld bytes long" msgstr "Articolul e mai mic de %d octeți" #: ../pan/usenet-utils/filter-info.cc:210 #, fuzzy, c-format msgid "the article is less than %ld lines long" msgstr "Articolul are mai puțin de %d linii" #: ../pan/usenet-utils/filter-info.cc:215 #, fuzzy, c-format msgid "the article is at least %ld lines long" msgstr "Articolul are mai puțin de %d linii" #: ../pan/usenet-utils/filter-info.cc:220 #, fuzzy, c-format msgid "the article is less than %ld days old" msgstr "Articolul e mai vechi de %d zile" #: ../pan/usenet-utils/filter-info.cc:225 #, fuzzy, c-format msgid "the article is at least %ld days old" msgstr "Articolul este _vechi de cel puțin N zile" #: ../pan/usenet-utils/filter-info.cc:230 #, fuzzy, c-format msgid "the article was posted to less than %ld groups" msgstr "Articolul este trimis la mai puțin de %d grupuri" #: ../pan/usenet-utils/filter-info.cc:235 #, fuzzy, c-format msgid "the article was posted to at least %ld groups" msgstr "Articolul a fost tr_imis către cel puțin N grupuri:" #: ../pan/usenet-utils/filter-info.cc:240 #, fuzzy, c-format msgid "the article's score is less than %ld" msgstr "acordă punctajul de" #: ../pan/usenet-utils/filter-info.cc:245 #, fuzzy, c-format msgid "the article's score is %ld or higher" msgstr "acordă punctajul de" #: ../pan/usenet-utils/filter-info.cc:254 #: ../pan/usenet-utils/filter-info.cc:264 #, fuzzy, c-format msgid "%s doesn't contain \"%s\"" msgstr "nu conține" #: ../pan/usenet-utils/filter-info.cc:255 #: ../pan/usenet-utils/filter-info.cc:265 #, c-format msgid "%s isn't \"%s\"" msgstr "" #: ../pan/usenet-utils/filter-info.cc:256 #: ../pan/usenet-utils/filter-info.cc:266 #, fuzzy, c-format msgid "%s doesn't begin with \"%s\"" msgstr "nu se termină cu" #: ../pan/usenet-utils/filter-info.cc:257 #: ../pan/usenet-utils/filter-info.cc:267 #, fuzzy, c-format msgid "%s doesn't end with \"%s\"" msgstr "nu se termină cu" #: ../pan/usenet-utils/filter-info.cc:258 #: ../pan/usenet-utils/filter-info.cc:268 #, c-format msgid "%s doesn't match the regex \"%s\"" msgstr "" #: ../pan/usenet-utils/filter-info.cc:280 #, fuzzy, c-format msgid "%s contains \"%s\"" msgstr "conține" #: ../pan/usenet-utils/filter-info.cc:281 #, c-format msgid "%s is \"%s\"" msgstr "" #: ../pan/usenet-utils/filter-info.cc:282 #, c-format msgid "%s begins with \"%s\"" msgstr "" #: ../pan/usenet-utils/filter-info.cc:283 #, fuzzy, c-format msgid "%s ends with \"%s\"" msgstr "se termină cu" #: ../pan/usenet-utils/filter-info.cc:284 #, fuzzy, c-format msgid "%s matches the regex \"%s\"" msgstr "corespunde expresiei regulate" #: ../pan/usenet-utils/filter-info.cc:290 msgid "Any of these tests fail:" msgstr "" #: ../pan/usenet-utils/filter-info.cc:297 msgid "All of these tests pass:" msgstr "" #: ../pan/usenet-utils/filter-info.cc:304 msgid "None of these tests pass:" msgstr "" #: ../pan/usenet-utils/filter-info.cc:311 msgid "Any of these tests pass:" msgstr "" #: ../pan/usenet-utils/gnksa.cc:880 #, c-format msgid "No email address provided; generating message-id with domain \"%s\"" msgstr "" "Nu a fost furnizată nici o adresă de email; generez un identificator de " "mesaj cu domeniul \"%s\"" #: ../pan/usenet-utils/message-check.cc:124 #, fuzzy msgid "Warning: Reply seems to be top-posted." msgstr "ATENȚIE: Răspunsul pare a iniția un nou fir de discuție." #: ../pan/usenet-utils/message-check.cc:145 #, fuzzy msgid "Warning: The signature marker should be \"-- \", not \"--\"." msgstr "ATENȚIE: Marcajul semnăturii ar trebui să fie \"-- \", nu \"--\"." #: ../pan/usenet-utils/message-check.cc:162 #, fuzzy msgid "Warning: Signature prefix with no signature." msgstr "ATENȚIE: Prefix de semnătură fără semnătură." #: ../pan/usenet-utils/message-check.cc:167 #, fuzzy msgid "Warning: Signature is more than 4 lines long." msgstr "ATENȚIE: Semnătura e mai lungă de 4 linii" #: ../pan/usenet-utils/message-check.cc:172 #, fuzzy msgid "Warning: Signature is more than 80 characters wide." msgstr "ATENȚIE: Semnătura e mai lată de 80 de caractere." #: ../pan/usenet-utils/message-check.cc:198 #, fuzzy, c-format msgid "Warning: %d line is more than 80 characters wide." msgid_plural "Warning: %d lines are more than 80 characters wide." msgstr[0] "ATENȚIE: %d linii sunt mai late de 80 de caractere." msgstr[1] "ATENȚIE: %d linii sunt mai late de 80 de caractere." #: ../pan/usenet-utils/message-check.cc:223 #, fuzzy msgid "Error: Message is empty." msgstr "EROARE: Mesajul este gol." #: ../pan/usenet-utils/message-check.cc:258 #, fuzzy msgid "Warning: The message is entirely quoted text!" msgstr "ATENȚIE: Mesajul conține doar text citat!" #: ../pan/usenet-utils/message-check.cc:259 #, fuzzy msgid "Warning: The message is mostly quoted text." msgstr "ATENȚIE: Mesajul conține aproape numai text citat." #: ../pan/usenet-utils/message-check.cc:309 #, fuzzy msgid "Error: Message appears to have no new content." msgstr "EROARE: Mesajul pare a nu conține nimic nou." #: ../pan/usenet-utils/message-check.cc:344 #: ../pan/usenet-utils/message-check.cc:383 #, c-format msgid "" "Warning: The posting profile's server doesn't carry newsgroup\n" "\t\"%s\".\n" "\tIf the group name is correct, switch profiles in the \"From:\"\n" "\tline or edit the profile with \"Edit|Manage Posting Profiles\"." msgstr "" #: ../pan/usenet-utils/message-check.cc:355 #, fuzzy msgid "Warning: Following-Up to too many groups." msgstr "ATENȚIE: S-au indicat prea multe grupuri de continure a discuției." #: ../pan/usenet-utils/message-check.cc:366 #, fuzzy msgid "Error: No Subject specified." msgstr "EROARE: Nu e specificat nici un subiect." #: ../pan/usenet-utils/message-check.cc:395 #, fuzzy, c-format msgid "Warning: Group \"%s\" is read-only." msgstr "ATENȚIE: Grupul \"%*.*s\" se poate doar citi." #: ../pan/usenet-utils/message-check.cc:404 #, fuzzy msgid "Error: Posting to a very large number of groups." msgstr "EROARE: Trimiterea se face către un număr foarte mare de grupuri." #: ../pan/usenet-utils/message-check.cc:409 #, fuzzy msgid "Warning: Posting to a large number of groups." msgstr "ATENȚIE: Trimiterea se face către un număr mare de grupuri." #: ../pan/usenet-utils/message-check.cc:416 #, fuzzy msgid "Warning: Crossposting without setting Followup-To header." msgstr "" "ATENȚIE: Trimiterea se face la mai multe grupuri fără a specifica grupurile " "de continuare a discuției." #: ../pan/usenet-utils/message-check.cc:441 #, fuzzy msgid "Error: Bad email address." msgstr "Adresă _email:" #: ../pan/usenet-utils/message-check.cc:450 msgid "Warning: Most newsgroups frown upon HTML posts." msgstr "" #: ../pan/usenet-utils/message-check.cc:486 #, fuzzy msgid "Error: No Recipients." msgstr "EROARE: Nu e specificat nici un subiect." #: ../pan/usenet-utils/scorefile.cc:304 #, fuzzy, c-format msgid "" "Error reading score in %*.*s, line %d: expected 'Expires: MM/DD/YYYY' or " "'Expires: DD-MM-YYYY'." msgstr "aștept 'Expiră la: LL/ZZ/AAAA' sau 'Expiră la: ZZ-LL-AAAA'" #: ../pan/usenet-utils/scorefile.cc:307 #, c-format msgid "Expired old score from %*.*s, line %d" msgstr "" #: ../pan/usenet-utils/scorefile.cc:380 #, c-format msgid "Error reading score in %*.*s, line %d: unexpected line." msgstr "" #: ../pan/usenet-utils/scorefile.cc:428 #, c-format msgid "Read %lu scoring rules in %lu sections from \"%s\"" msgstr "" #: ../pan/usenet-utils/ssl-utils.h:189 #, fuzzy, c-format msgid "Error printing the server certificate for '%s'" msgstr "Eroare la procesarea comenzii \"Navigator web\": %s" #: ../pan/usenet-utils/ssl-utils.h:205 #, c-format msgid "" "The current server '%s' sent this security certificate:\n" "\n" msgstr "" #: ../pan/usenet-utils/ssl-utils.h:206 #, c-format msgid "" "Certificate information for server '%s':\n" "\n" msgstr "" #: ../pan/usenet-utils/ssl-utils.h:208 #, c-format msgid "" "%sIssuer information:\n" "%s\n" "Valid until: %s\n" "\n" "Not valid before: %s\n" "\n" msgstr "" #: ../pan/usenet-utils/text-massager.cc:399 msgid "> [quoted text muted]" msgstr "> [textul citat e ascuns]" #: ../pan/usenet-utils/text-massager.cc:579 msgid "no_name" msgstr "" #: ../pan/usenet-utils/text-massager.cc:580 msgid "no_mail" msgstr "" #~ msgid "Pan Newsreader" #~ msgstr "Cititorul de știri Pan " #, fuzzy #~ msgid "Always trust" #~ msgstr "Editor" #, fuzzy #~ msgid "Edit Hotkey" #~ msgstr "Editare filtre" #, fuzzy #~ msgid "Quoted text:" #~ msgstr "/_Vizualizare/Ascun_de textul citat" #~ msgid "Read News from Usenet" #~ msgstr "Citește articole de pe Usenet" #, fuzzy #~ msgid "_Toggle Flag on for Thread" #~ msgstr "/_Urmărește firul de discuție" #, fuzzy #~ msgid "Signer : " #~ msgstr "Fișier cu _semnătură:" #, fuzzy #~ msgid "_Signature:" #~ msgstr "Fișier cu _semnătură:" #, fuzzy #~ msgid "Creating directory \"%s\"" #~ msgstr "Eroare la deschiderea directorului \"%s\": %s" #~ msgid "Couldn't create directory \"%s\": %s" #~ msgstr "Nu am putut crea directorul \"%s\": %s" #, fuzzy #~ msgid "" #~ "Your copy of libpcre doesn't support UTF-8. UTF-8 regular expressions " #~ "may fail." #~ msgstr "" #~ "Versiunea libpcre pe care o folosiți nu oferă suport pentru UTF-8. Este " #~ "posibil să nu puteți folosi expresii regulate UTF-8." #~ msgid "Can't use regular expression \"%s\": %s at position %d" #~ msgstr "Nu pot folosi expresia regulată \"%s\": %s în poziția %d" #, fuzzy #~ msgid "_Groups" #~ msgstr "Grupuri" #, fuzzy #~ msgid "Read Selected Group" #~ msgstr "Citește următorul grup necitit" #, fuzzy #~ msgid "_Mark Group _Read" #~ msgstr "/Marchează grupul ca c_itit" #, fuzzy #~ msgid "_Delete Group's Articles" #~ msgstr "/Șter_ge articolele grupului" #, fuzzy #~ msgid "Get New Headers for Subscribed Groups" #~ msgstr "Descarcă antete noi de la grupurile abonate" #, fuzzy #~ msgid "Get Headers from Server" #~ msgstr "Am descărcat %d grupuri de la serverul \"%s\"" #, fuzzy #~ msgid "Get a new Group list from the Server" #~ msgstr "Descarc %d grupuri noi de la serverul \"%s\"" #, fuzzy #~ msgid "Subscribe to Selected Groups" #~ msgstr "Grupuri abonate" #, fuzzy #~ msgid "Unsubscribe from Selected Groups" #~ msgstr "Grupuri abonate" #, fuzzy #~ msgid "Save Selected Articles..." #~ msgstr "Descarcă articolele selecționate" #~ msgid "Cancel Last Task" #~ msgstr "Oprește ultimul proces" #, fuzzy #~ msgid "Clear Header Pane" #~ msgstr "Panou cu antete" #, fuzzy #~ msgid "Clear Body Pane" #~ msgstr "Panou cu _conținut" #, fuzzy #~ msgid "Download _Selected Article" #~ msgstr "Descarc 1 articol" #, fuzzy #~ msgid "Download Selected Article" #~ msgstr "Descarc 1 articol" #, fuzzy #~ msgid "Read _Selected Article" #~ msgstr "Citește următorul articol necitit" #, fuzzy #~ msgid "Next Unread Group" #~ msgstr "/_Citire/Următorul grup nec_itit" #, fuzzy #~ msgid "Next Group" #~ msgstr "/_Citire/Următorul _grup" #, fuzzy #~ msgid "Next Watched Article" #~ msgstr "/_Citire/Următorul articol u_rmărit" #, fuzzy #~ msgid "Next Thread" #~ msgstr "/_Citire/Următorul _fir de discuție" #, fuzzy #~ msgid "Previous Article" #~ msgstr "/_Citire/Artico_lul precedent" #, fuzzy #~ msgid "Previous Thread" #~ msgstr "/_Citire/Firul de discuție prece_dent" #, fuzzy #~ msgid "Parent Article" #~ msgstr "/_Citire/Articolul _părinte" #, fuzzy #~ msgid "_Plonk Author" #~ msgstr "/_Articole/_Ignoră articolele autorului" #, fuzzy #~ msgid "Mark Article as Read" #~ msgstr "Articolul este citit" #, fuzzy #~ msgid "Reply to Author" #~ msgstr "/_Articole/_Ignoră articolele autorului" #, fuzzy #~ msgid "_About..." #~ msgstr "/A_jutor/Despre..." #, fuzzy #~ msgid "Abbreviate _Names in Group Pane" #~ msgstr "/_Vizualizare/_Prescurtează numele din panoul cu grupuri" #, fuzzy #~ msgid "Match Only Articles Posted by Me" #~ msgstr "Afișează doar articolele mele" #, fuzzy #~ msgid "Central European (ISO-8859-2)" #~ msgstr "Central European" #, fuzzy #~ msgid "Central European (Windows-1250)" #~ msgstr "Central European" #, fuzzy #~ msgid "Chinese Simplified (gb2312)" #~ msgstr "Chineza simplificată" #, fuzzy #~ msgid "Chinese Traditional (big5)" #~ msgstr "Chineza tradițională" #, fuzzy #~ msgid "Cyrillic (KOI8-R)" #~ msgstr "Chirilic" #, fuzzy #~ msgid "Cyrillic, Ukrainian (KOI8-U)" #~ msgstr "Chirilic, Ucrainian" #, fuzzy #~ msgid "Western, New (ISO-8859-15)" #~ msgstr "Occidental, Nou" #, fuzzy #~ msgid "Unicode (UTF-8)" #~ msgstr "Unicode, UTF-8" #, fuzzy #~ msgid "Pan: " #~ msgstr "Pan: Reguli" #, fuzzy #~ msgid "Pan: %s" #~ msgstr "Pan: Reguli" #~ msgid "Tasks: %u/%u" #~ msgstr "Procese: %u/%u" #~ msgid "%u Tasks Running, %u Tasks Total" #~ msgstr "%u procese în execuție, %u procese în total" #, fuzzy #~ msgid "Wrap the Article Body to 80 Columns" #~ msgstr "/_Vizualizare/R_earanjează conținutul articolului" #, fuzzy #~ msgid "_Close" #~ msgstr "Culori" #, fuzzy #~ msgid "Close Window" #~ msgstr "Închide fereastra de jurnal." #, fuzzy #~ msgid "Cut Text" #~ msgstr "Text citat:" #, fuzzy #~ msgid "Copy Text" #~ msgstr "Rearanjează text" #, fuzzy #~ msgid "_Paste" #~ msgstr "_Trimite" #, fuzzy #~ msgid "Manage Posting Pr_ofiles..." #~ msgstr "/_Unelte/Identități..." #~ msgid "Western" #~ msgstr "Occidental" #, fuzzy #~ msgid "Error loading post.ui: \"%s\"" #~ msgstr "Eroare la citirea soclului %s" #, fuzzy #~ msgid "Posting Article" #~ msgstr "Trimit articolul \"%s\"" #, fuzzy #~ msgid "Add a New Profile" #~ msgstr "Adaugă o nouă identitate" #~ msgid "Edit the selected profile" #~ msgstr "Editează datele din identitatea selectată" #~ msgid "Remove the selected profile" #~ msgstr "Șterge identitatea selectată" #, fuzzy #~ msgid "Threads" #~ msgstr "Fire de discuție _citite:" #, fuzzy #~ msgid "Path" #~ msgstr "Părți" #, fuzzy #~ msgid "_Path:" #~ msgstr "_Trimite" #, fuzzy #~ msgid "Group Management" #~ msgstr "Panou cu grupuri" #, fuzzy #~ msgid "Pan: New Scoring Rule" #~ msgstr "Pan: Editare regulă " #, fuzzy #~ msgid "Then" #~ msgstr "Mulțumiri" #, fuzzy #~ msgid "For" #~ msgstr "Directoare" #, fuzzy #~ msgid "Name: \"%s\"" #~ msgstr "Am salvat \"%s\"" #, fuzzy #~ msgid "Pan: Add a Server" #~ msgstr "Pan: Editare server" #, fuzzy #~ msgid "Pan: Edit a Server's Settings" #~ msgstr "Pan: Editare server" #~ msgid "Pan: Servers" #~ msgstr "Pan: Servere" #, fuzzy #~ msgid "to %s" #~ msgstr "Despre %s" #~ msgid "Status" #~ msgstr "Stare" #, fuzzy #~ msgid "Unable to set group: %s" #~ msgstr "Nu pot defini grupul \"%*.*s\": %s" #, fuzzy #~ msgid "Making a new connection to %*.*s" #~ msgstr "Conexiune nouă %p pentru %*.*s, portul %d" #, fuzzy #~ msgid "Couldn't load \"%s\": %s" #~ msgstr "Nu am putut crea directorul \"%s\": %s" #, fuzzy #~ msgid "" #~ "Error saving \"%s\":\n" #~ "%s. %s" #~ msgstr "Eroare la deschiderea fișierului \"%s\": %s" #, fuzzy #~ msgid "Warning: Unknown group \"%s\"." #~ msgstr "ATENȚIE: Grup necunoscut: \"%*.*s\"." #, fuzzy #~ msgid "_Posting" #~ msgstr "_Trimite" #, fuzzy #~ msgid "Follow-up to Article" #~ msgstr "Trimite răspuns" #, fuzzy #~ msgid "_Post Article" #~ msgstr "_Articol" #, fuzzy #~ msgid "Post this Article Now" #~ msgstr "Trimit articolul \"%s\"" #, fuzzy #~ msgid "Error: No Newsgroups specified." #~ msgstr "EROARE: Nu s-a specificat nici un destinatar." #, fuzzy #~ msgid "Message-Id" #~ msgstr "Identificator mesaj" #, fuzzy #~ msgid "Saved newsrc files in %.1f seconds" #~ msgstr "Am salvat %d articole în \"%s\" în %.1f secunde (%.0f articole/sec)" #, fuzzy #~ msgid "Use _Monospace Font in Body Pane" #~ msgstr "" #~ "/_Vizualizare/Folosește caractere _monospațiate în panoul cu conținut" #, fuzzy #~ msgid "%d connections totaling %.1f KiB per second" #~ msgstr "%d conexiuni însumând %.1f KB pe secundă" #~ msgid "" #~ "Used when email replies to your posts should go somewhere other than the " #~ "email address above. Because Reply-To: is relatively difficult for " #~ "spammers to harvest, it's polite give your email address here if you gave " #~ "an invalid email address above." #~ msgstr "" #~ "Se folosește când nu doriți să primiți răspunsuri prin email la adresa de " #~ "mai sus. Deoarece informațiile din antetul \"Răspunsuri la:\" sunt mai " #~ "greu de colectat de către spammeri, e politicos să completați aici adresa " #~ "reală de email, dacă cea de mai sus e invalidă. " #~ msgid "_Reply-To Header:" #~ msgstr "_Răspunsuri la:" #~ msgid "Or_ganization Header:" #~ msgstr "Or_ganizație" #, fuzzy #~ msgid "Attach this _Signature:" #~ msgstr "Semnătură:" #~ msgid "Automatic Downloads" #~ msgstr "Descărcare automată" #, fuzzy #~ msgid "Save a_ttachments to path:" #~ msgstr "Salvează atașamentele în:" #~ msgid "UNKNOWN" #~ msgstr "NECUNOSCUT" #, fuzzy #~ msgid "Decode can't access directory \"%s\"" #~ msgstr "Decodificarea nu poate accesa calea \"%s\"" #~ msgid "Could not decode article - file may be corrupt/incomplete" #~ msgstr "" #~ "Nu am putut decodifica articolul - fișierul poate fi corupt/incomplet" #~ msgid "Checksum for `%s' part %d failed - file is corrupt" #~ msgstr "" #~ "Suma de control pentru `%s' partea %d e incorectă - fișierul e corupt" #~ msgid "Checksum for `%s' failed - file may be corrupt" #~ msgstr "Suma de control pentru `%s' e incorectă - fișierul poate fi corupt" #, fuzzy #~ msgid "Use custom colors in _Header Pane" #~ msgstr "Folosește caractere personalizate în panoul cu antete" #, fuzzy #~ msgid "Header Pane background:" #~ msgstr "Panou cu punctaje" #, fuzzy #~ msgid "Unread articles:" #~ msgstr "Fire de discuție _necitite:" #, fuzzy #~ msgid "" #~ "Unsupported data version (%d) for server properties. Are you running an " #~ "old version of Pan by accident?" #~ msgstr "" #~ "Versiune de date %d nesuportată pentru fișierul de date \"%s\".\n" #~ "Rulați cumva o versiune mai veche de Pan?" #, fuzzy #~ msgid "Couldn't create temporary file: %s" #~ msgstr "Nu am putut crea fișierul temporar \"%s\"" #~ msgid "Error renaming \"%s\" as \"%s\": %s." #~ msgstr "Eroare la redenumirea fișierului \"%s\" în \"%s\": %s. " #~ msgid "Can't backup \"%s\" as \"%s\": %s" #~ msgstr "Nu pot salva \"%s\" ca \"%s\": %s" #~ msgid "Can't write to \"%s\": %s" #~ msgstr "Nu pot scrie în \"%s\": %s" #~ msgid "Body" #~ msgstr "Conținut" #, fuzzy #~ msgid "Open a Draft Article from Disk" #~ msgstr "%u articole din `%s' au expirat." #, fuzzy #~ msgid "subject" #~ msgstr "Subiect" #, fuzzy #~ msgid "author" #~ msgstr "Autor" #~ msgid "Change" #~ msgstr "Schimbă" #~ msgid "Connections" #~ msgstr "Conexiuni" #, fuzzy #~ msgid "Active" #~ msgstr "Acțiuni" #~ msgid "" #~ "Unable to cancel article: Couldn't find matching article in folder `pan." #~ "sent'!" #~ msgstr "" #~ "Nu pot anula articolul: nu am găsit articolul corespunzător în directorul " #~ "`pan.sent'!" #~ msgid "" #~ "Unable to supersede article: Couldn't find matching article in folder " #~ "`pan.sent'!" #~ msgstr "" #~ "Nu pot actualiza articolul: nu am găsit articolul corespunzător în " #~ "directorul `pan.sent'!" #~ msgid "You must download the article before you can cancel it." #~ msgstr "Trebuie să descărcați articolul înainte de a-l anula" #~ msgid "You must download the article before you can supersede it." #~ msgstr "Trebuie să descărcați articolul înainte de a-l putea actualiza" #~ msgid "Pan: Find Article" #~ msgstr "Pan: Căutare articol" #~ msgid "_Author:" #~ msgstr "_Autor" #~ msgid "Case Sensiti_ve" #~ msgstr "Ține cont de ma_juscule" #~ msgid "_Unread Only" #~ msgstr "Doar cele _necitite" #~ msgid "Fin_d:" #~ msgstr "Cau_tă:" #~ msgid "" #~ "Type in a search string and press ENTER.\n" #~ "Wildcards are allowed." #~ msgstr "" #~ "Introduceți un șir de căutare și apăsați ENTER.\n" #~ "Metacaracterele sunt permise." #~ msgid "/---" #~ msgstr "/---" #~ msgid "/Save A_ttachments" #~ msgstr "/Salvează a_tașamentele" #~ msgid "/_Manual Decode..." #~ msgstr "/D_ecodificare manuală..." #~ msgid "/D_ownload Flagged" #~ msgstr "/_Descarcă mesajele marcate" #~ msgid "/_Flag" #~ msgstr "/_Marchează" #~ msgid "/_Unflag" #~ msgstr "/Șterge marca_j" #~ msgid "/_Create Score" #~ msgstr "/_Acordă punctaj" #~ msgid "/Add S_et to Selection" #~ msgstr "/Selectea_ză tot firul de discuție" #~ msgid "/_Copy to Folder" #~ msgstr "/_Copiază în directorul" #~ msgid "/_Delete" #~ msgstr "/Ște_rge" #~ msgid "Scoring Articles" #~ msgstr "Punctez articolele" #~ msgid "Filtering Articles" #~ msgstr "Filtrez articolele" #~ msgid "Updating Header Pane..." #~ msgstr "Actualizez panoul cu antete..." #~ msgid "Loading group \"%s\"" #~ msgstr "Încarc grupul \"%s\"" #~ msgid "Flushing article cache... " #~ msgstr "Golesc cache-ul de articole..." #~ msgid "%d files erased." #~ msgstr "%d fișiere șterse" #~ msgid "Error saving article \"%s\" (is %s full?)" #~ msgstr "Eroare la salvarea articolului \"%s\" (este %s plin?)" #~ msgid "Directory \"%s\" contains %.1f MB in %d files" #~ msgstr "Directorul \"%s\" conține %.1f MB în %d fișiere" #~ msgid "Unparseable Subject" #~ msgstr "Subiect imposibil de procesat" #~ msgid "Couldn't parse a Message-ID from the raw message!" #~ msgstr "Nu am putut obține un identificator de mesaj din mesajul original!" #~ msgid "unknown@spammesenseless.com" #~ msgstr "anonim@spammesenseless.com" #~ msgid "Can't create file \"%s\" %s" #~ msgstr "Nu pot crea fișierul \"%s\" %s" #~ msgid "Error saving file \"%s\" - is the disk full?" #~ msgstr "Eroare la salvarea fișierului \"%s\" - este discul plin?" #~ msgid "Decoded \"%s\" from group \"%*.*s\", \"%s\"" #~ msgstr "Am decodificat \"%s\" din grupul \"%*.*s\",\"%s\"" #~ msgid "Loading %u of %d groups" #~ msgstr "Descarc %u din %d grupuri" #~ msgid "" #~ "Skipped %d groups due to possible corruption in \"%s\" and \"%s\". You " #~ "may want to delete these files and get a new grouplist from your news " #~ "server." #~ msgstr "" #~ "Am ignorat %d grupuri din cauza unei posibile coruperi în \"%s\" și \"%s" #~ "\". Ar fi bine să ștergeți aceste fișiere și să obțineti o nouă listă de " #~ "grupuri de la serverul de știri." #~ msgid "Loaded %d groups for server \"%s\" in %.1f seconds (%.0f groups/sec)" #~ msgstr "" #~ "Am încărcat %d grupuri de pe serverul \"%s\" în %.1f secunde (%.0f " #~ "grupuri/sec)" #~ msgid "Saved %d of %u groups" #~ msgstr "Am salvat %d din %u grupuri" #~ msgid "Error saving list of groups to \"%s\" - is the disk full?" #~ msgstr "Eroare la salvarea listei de grupuri în \"%s\" - este discul plin?" #~ msgid "Saved %d groups in \"%s\" in %.1f seconds (%.0f groups/sec)" #~ msgstr "Am salvat %d grupuri în \"%s\" în %.1f secunde (%.0f grupuri/sec)" #~ msgid "Loaded %d of %d articles" #~ msgstr "Am descărcat %d din %d articole" #~ msgid "" #~ "Pan skipped %d corrupt headers from the local cache for group \"%*.*s\"." #~ msgstr "" #~ "Am ignorat %d antete corupte din cache-ul local al grupului \"%*.*s\"." #~ msgid "You may want to empty this group and download fresh headers." #~ msgstr "Ar fi bine să goliți acest grup și să descărcați antete noi." #~ msgid "The group will not be saved -- can't create file \"%s\"" #~ msgstr "Grupul nu va fi salvat -- nu pot crea fișierul \"%s\"" #~ msgid "Unable to save headers for group \"%*.*s\" - is the disk full?" #~ msgstr "Nu pot salva antetele pentru grupul \"%*.*s\" - este discul plin?" #~ msgid "(No Group)" #~ msgstr "(Nici un grup)" #~ msgid "ERROR: invalid address \"%s\"" #~ msgstr "EROARE: adresă incorectă \"%s\"" #~ msgid "ERROR: Must have one author in From: line" #~ msgstr "EROARE: Trebuie să existe un autor în câmpul De la:" #~ msgid "Imported %d groups (%d new) from \"%s\"" #~ msgstr "Am importat %d grupuri (%d noi) din \"%s\"" #~ msgid "Exported %d groups (%d subscribed) to \"%s\"" #~ msgstr "Am salvat %d grupuri (%d abonate) în \"%s\"" #~ msgid "Imported %d lines from Gnome config file" #~ msgstr "Am importat %d linii din fișierul de configurare Gnome" #~ msgid "%s does not appear to be a valid datafile" #~ msgstr "%s nu pare a fi un fișier de date valid" #~ msgid "Error converting string \"%*s\" to utf8: %d - %s" #~ msgstr "Eroare la conversia șirului \"%*s\" la utf8: %d - %s" #~ msgid "No name specified!" #~ msgstr "Nu e specificat nici un nume!" #~ msgid "Server is corrupt" #~ msgstr "Serverul e corupt" #~ msgid "A newsreader for GNOME" #~ msgstr "Un cititor de știri pentru GNOME" #~ msgid "Programmer" #~ msgstr "Programator" #~ msgid "Project Originator, Programmer" #~ msgstr "Inițiatorul proiectului, programator" #~ msgid "Programmer, 0.6 - 0.7" #~ msgstr "Programator, 0.6 - 0.7" #~ msgid "" #~ "Pan %s Translations\n" #~ "%s\n" #~ "\n" #~ "Pan %s Code or Patches\n" #~ "%s\n" #~ "\n" #~ "Pan %s Suggestions and Testing\n" #~ "%s\n" #~ msgstr "" #~ "Pan %s Traduceri\n" #~ "%s\n" #~ "\n" #~ "Pan %s Cod\n" #~ "%s\n" #~ "\n" #~ "Pan %s Sugestii și testare\n" #~ "%s\n" #~ msgid "_Directory for saving articles:" #~ msgstr "_Directorul pentru salvarea articolelor:" #~ msgid "Default charse_t:" #~ msgstr "Se_tul de caractere implicit:" #~ msgid "Pan: Download Headers for group `%s'" #~ msgstr "Pan: Descărcare antete pentru grupul `%s'" #~ msgid "Pan: Download Headers" #~ msgstr "Pan: Descărcare antete" #~ msgid "Download _new headers" #~ msgstr "Descarcă antete _noi" #~ msgid "_Download bodies too" #~ msgstr "_Descarcă și conținutul mesajelor" #~ msgid "How should you appear when posting articles?" #~ msgstr "Cum doriți să apăreți când trimiteți articolele?" #~ msgid "Your _Name:" #~ msgstr "_Numele dumnevoastră:" #~ msgid "Email _Address:" #~ msgstr "_Adresă de email:" #~ msgid "_Organization:" #~ msgstr "_Organizație:" #~ msgid "default" #~ msgstr "implicit" #~ msgid "What mail server should Pan use?" #~ msgstr "Ce server de mail ar trebui Pan să folosească?" #~ msgid "What news server should Pan use?" #~ msgstr "Ce server de știri ar trebui Pan să folosească?" #~ msgid "Short name for Pan to show, e.g. \"mynewsserver\"" #~ msgstr "Numele prescurtat al serverului, e.g. \"serverulmeudeștiri\"" #~ msgid "Short _name for Pan to show:" #~ msgstr "Numele _prescurtat al serverului:" #~ msgid "Login" #~ msgstr "Login" #~ msgid "Server requires authori_zation" #~ msgstr "Serverul necesită autori_zare" #~ msgid "Pan Setup Wizard" #~ msgstr "Vrăjitor configurare Pan" #~ msgid "Thank you for trying Pan!" #~ msgstr "Vă mulțumim că ați încercat Pan!" #~ msgid "" #~ "Thank you for trying Pan!\n" #~ " \n" #~ "If you are new to Usenet,\n" #~ "%s\n" #~ "is a starting point to see what Usenet is,\n" #~ "where to find a free news server,\n" #~ "and how to use Pan.\n" #~ " \n" #~ "Since this is your first time running Pan,\n" #~ "we'll need to gather some information.\n" #~ msgstr "" #~ "Vă mulțumim că folosiți Pan!\n" #~ "\n" #~ "Dacă nu ați mai folosit Usenet,\n" #~ "%s\n" #~ "este un punct de plecare pentru a vedea ce este Usenet,\n" #~ "cum să găsiți un server de știri gratuit\n" #~ "și cum să folosiți Pan.\n" #~ "\n" #~ "Deoarece acum folosiți Pan pentru prima dată,\n" #~ "avem nevoie de unele informații.\n" #~ msgid "About You" #~ msgstr "Despre dumneavoastră" #~ msgid "News Server" #~ msgstr "Server de știri" #~ msgid "Ready!" #~ msgstr "Gata!" #~ msgid "" #~ "You have successfully entered all of\n" #~ "the information required to set up Pan.\n" #~ "\n" #~ "To save these settings, click Save." #~ msgstr "" #~ "Ați introdus cu succes toate\n" #~ "informațiile necesare pentru a\n" #~ "configura Pan.\n" #~ "\n" #~ "Pentru a salva aceste configurări, apăsați Salvează." #~ msgid "License" #~ msgstr "Licență" #~ msgid "Authors" #~ msgstr "Autori" #~ msgid "Thanks to" #~ msgstr "Mulțumiri" #~ msgid " (No conditions -- no articles will match)" #~ msgstr " (Nici o condiție -- nici un articol nu va corespunde)" #~ msgid " (No conditions -- all articles will match)" #~ msgstr " (Nici o condiție -- toate articolele vor corespunde)" #~ msgid "Pan: Edit Filter" #~ msgstr "Pan: Editare filtru" #~ msgid "Filter name: " #~ msgstr "Nume filtru:" #~ msgid "Show in Filter Menu" #~ msgstr "Arată în meniul Filtrare" #~ msgid "Move the selected line up one line" #~ msgstr "Mută linia selectată mai sus cu o linie" #~ msgid "Move the selected line down one line" #~ msgstr "Mută linia selectată mai jos cu o linie" #~ msgid "Invert" #~ msgstr "Inversează" #~ msgid "All Of" #~ msgstr "Toate" #~ msgid "Any Of" #~ msgstr "Oricare" #~ msgid "Delete the selected line" #~ msgstr "Șterge linia selectată" #~ msgid "Add New Line to the Filter" #~ msgstr "Adaugă un nou filtru" #~ msgid "New Filter Line" #~ msgstr "Filtru nou" #~ msgid "does not start with" #~ msgstr "nu începe cu" #~ msgid "does not match regular expression" #~ msgstr "nu corespunde expresiei regulate" #~ msgid "Article h_as" #~ msgstr "Articolul a_re" #~ msgid "Incomplete Attachments" #~ msgstr "Atașamente incomplete" #~ msgid "No Attachments" #~ msgstr "Nici un atașament" #~ msgid "Article _is" #~ msgstr "Articolul _este" #~ msgid "New" #~ msgstr "Nou" #~ msgid "Unread" #~ msgstr "Necitit" #~ msgid "Read" #~ msgstr "Citit" #~ msgid "Cached" #~ msgstr "Aflat în cache" #~ msgid "Posted by Me" #~ msgstr "Trimis de mine" #~ msgid "Article has at _least N lines:" #~ msgstr "Articolul are cel puțin N li_nii:" #~ msgid "Article _score is at least" #~ msgstr "Puncta_jul articolului este cel puțin" #~ msgid "Watched" #~ msgstr "Urmărit" #~ msgid "High" #~ msgstr "Mare" #~ msgid "Medium" #~ msgstr "Mediu" #~ msgid "Zero" #~ msgstr "Zero" #~ msgid "Low" #~ msgstr "Mic" #~ msgid "Ignored" #~ msgstr "Ignorat" #~ msgid "" #~ "This filter is still used by the following rules:\n" #~ "%s\n" #~ "Please remove this dependency first." #~ msgstr "" #~ "Acest filtru este încă folosit de următoarele reguli:\n" #~ "%s\n" #~ "Ștergeți, vă rog, această dependință mai întâi." #~ msgid "Pan: Filters" #~ msgstr "Pan: Filtre" #~ msgid "Filters" #~ msgstr "Filtre" #~ msgid "Add a new filter" #~ msgstr "Adaugă un nou filtru" #~ msgid "Edit the selected filter" #~ msgstr "Editează filtrul selectat" #~ msgid "Remove the selected filter" #~ msgstr "Șterge filtrul selectat" #~ msgid "NONE OF:" #~ msgstr "NICI UNUL:" #~ msgid "ALL OF:" #~ msgstr "TOATE:" #~ msgid "ANY OF:" #~ msgstr "ORICARE:" #~ msgid "Article has complete attachments" #~ msgstr "Articolul are atașamente complete" #~ msgid "Article does not have incomplete attachments" #~ msgstr "Articolul nu are atașamente incomplete" #~ msgid "Article has incomplete attachments" #~ msgstr "Articolul are atașamente incomplete" #~ msgid "Article has complete or incomplete attachments" #~ msgstr "Articolul are atașamente complete sau incomplete" #~ msgid "Article is %d or more bytes long" #~ msgstr "Articolul e mai mare de %d octeți" #~ msgid "Article is crossposted to at least %d groups" #~ msgstr "Articolul este trimis la cel puțin %d grupuri" #~ msgid "Article was posted in the last %d days" #~ msgstr "Articolul a fost trimis în ultimele %d zile" #~ msgid "Article is %d or more lines long" #~ msgstr "Articolul are mai mult de %d linii" #~ msgid "Article is unread or old" #~ msgstr "Articolul este necitit sau vechi" #~ msgid "Article is new" #~ msgstr "Articolul este nou" #~ msgid "Article is new or read" #~ msgstr "Articolul este nou sau citit" #~ msgid "Article is new or unread" #~ msgstr "Articolul este nou sau necitit" #~ msgid "Xref" #~ msgstr "Xref" #~ msgid "watched" #~ msgstr "urmărit" #~ msgid "high" #~ msgstr "mare" #~ msgid "medium" #~ msgstr "mediu" #~ msgid "zero" #~ msgstr "zero" #~ msgid "low" #~ msgstr "mic" #~ msgid "ignored" #~ msgstr "ignorat" #~ msgid "Score filter will match anything" #~ msgstr "Toate articolele corespund filtrului de punctaj" #~ msgid "Score filter will match nothing" #~ msgstr "Nici un articol nu corespunde filtrului de punctaj" #~ msgid "Article score one of: " #~ msgstr "Punctajul articolului este unul dintre:" #~ msgid "Wrote filters to \"%s\"" #~ msgstr "Am salvat filtrele în \"%s\"" #~ msgid "Can't use regular expression \"%s\" from file \"%s\", line %d: %s" #~ msgstr "" #~ "Nu pot folosi expresia regulată \"%s\" din fișierul \"%s\", linia %d: %s" #~ msgid "expired old score" #~ msgstr "punctaj vechi expirat" #~ msgid "skipping unsupported criteria" #~ msgstr "ignor criteriile nesuportate" #~ msgid "unexpected line." #~ msgstr "linie neașteptată." #~ msgid "Error reading file: " #~ msgstr "Eroare la citirea fișierului:" #~ msgid "skipping score because it has no criteria" #~ msgstr "ignor punctajul pentru că nu are nici un criteriu" #~ msgid "" #~ "Loaded %d score entries in %d sections in %.1f seconds (%.0f entries/sec)" #~ msgstr "" #~ "Am încărcat %d punctaje în %d secțiuni în %.1f secunde (%.0f punctaje/sec)" #~ msgid "Error score to file \"%s\": %s" #~ msgstr "Punctaj eronat în fișierul \"%s\": %s" #~ msgid "Scored %d entries in %.1f seconds (%.0f articles/sec)" #~ msgstr "Am punctat %d articole în %.1f secunde (%.0f articole/sec)" #~ msgid "Error removing scorefile entry: %s" #~ msgstr "Eroare la ștergerea intrării din fișierul cu punctaje %s" #~ msgid "Scorefile entry removed -- old scorefile \"%s\" backed up as \"%s\"" #~ msgstr "" #~ "Am șters intrarea din fișierul cu punctaje -- fișierul vechi \"%s\" a " #~ "fost salvat ca \"%s\"" #~ msgid "Folder \"%*.*s\" already exists." #~ msgstr "Directorul \"%*.*s\" există deja." #~ msgid "Please don't begin folders with \"pan.\"; it confuses me." #~ msgstr "" #~ "Vă rog să nu începeți numele fișierelor cu \"pan.\"; acest lucru îmi " #~ "creează probleme." #~ msgid "Create New Folder" #~ msgstr "Creare director nou" #~ msgid "New Folder Name:" #~ msgstr "Nume director nou:" #~ msgid "/Get New Headers and _Bodies" #~ msgstr "/Descarcă antete și _conținuturi noi" #~ msgid "/More Download _Options..." #~ msgstr "/Mai multe _opțiuni de descărcare..." #~ msgid "/Refresh Article _Counts" #~ msgstr "/Actualizează _numărul de articole" #~ msgid "/Group _Properties..." #~ msgstr "/_Proprietăți grup" #~ msgid " (Moderated)" #~ msgstr "(Moderat)" #~ msgid " (Read-Only)" #~ msgstr "(Doar citire)" #~ msgid "Subscribed" #~ msgstr "Grupuri abonate" #~ msgid "All Groups" #~ msgstr "Toate grupurile" #~ msgid "" #~ "We don't have a list of groups for \"%*.*s\".\n" #~ "Shall we download one?" #~ msgstr "" #~ "Nu există o listă de grupuri pentru \"%*.*s\".\n" #~ "Să o descarc?" #~ msgid "Total" #~ msgstr "Total" #~ msgid "Description" #~ msgstr "Descriere" #~ msgid "F_ind:" #~ msgstr "Cau_tă:" #~ msgid "" #~ "Type in a group search string and press ENTER. Wildcards are allowed." #~ msgstr "" #~ "Introduceți un șir de căutare a grupului și apăsați ENTER. " #~ "Metacaracterele sunt permise." #~ msgid "" #~ msgstr "" #~ msgid "X-Newsreader" #~ msgstr "X-Newsreader" #~ msgid "X-Mailer" #~ msgstr "X-Mailer" #~ msgid "News server connection count: %d" #~ msgstr "Număr de conexiuni la serverul de știri: %d" #~ msgid "The Task Manager is Empty" #~ msgstr "Administratorul de procese este gol" #~ msgid "Connection" #~ msgstr "Conexiune" #~ msgid "Post" #~ msgstr "Trimite" #~ msgid "Get" #~ msgstr "Descarcă" #~ msgid "Mine" #~ msgstr "Ale mele" #~ msgid "Net" #~ msgstr "Rețea" #~ msgid "/_File/Save A_ttachments" #~ msgstr "/_Fișier/Salvează a_tașamentele" #~ msgid "/_File/_Save Attachments As..." #~ msgstr "/_Fișier/_Salvează atașamentele ca..." #~ msgid "/_File/_Manual Decode..." #~ msgstr "/_Fișier/Decodificare _manuală..." #~ msgid "/_File/---" #~ msgstr "/_Fișier/---" #~ msgid "/_File/_Cancel Last Task" #~ msgstr "/_Fișier/_Oprește ultimul proces" #~ msgid "/_File/_New Folder..." #~ msgstr "/_Fișier/_Director nou..." #~ msgid "/_File/Delete _Folder..." #~ msgstr "/_File/Șter_ge directorul..." #~ msgid "/_File/_Edit Article in Folder" #~ msgstr "/_Fișier/_Editează articolul într-un director" #~ msgid "/_File/E_xit" #~ msgstr "/_Fișier/_Ieșire" #~ msgid "/_Edit/Select all" #~ msgstr "/_Editare/Selectează tot" #~ msgid "/_Edit/Deselect all" #~ msgstr "/_Editare/Deselectează tot" #~ msgid "/_Edit/---" #~ msgstr "/_Editare/---" #~ msgid "/_Edit/Select all _Groups" #~ msgstr "/_Editare/Selectează toate _grupurile" #~ msgid "/_Edit/Add S_ubscribed to Selection" #~ msgstr "/_Editare/Adaugă grupurile _abonate la selecție" #~ msgid "/_Edit/Deselect all G_roups" #~ msgstr "/_Editare/Deselectează toate g_rupurile" #~ msgid "/_Edit/Add S_et to Selection" #~ msgstr "/_Editare/Adaugă _setul la selecție" #~ msgid "/_Edit/_Find..." #~ msgstr "/_Editare/_Caută..." #~ msgid "/_Edit/Find _Next" #~ msgstr "/_Editare/Caută _următorul" #~ msgid "/_View/---" #~ msgstr "/_Vizualizare/---" #~ msgid "/_View/Thr_ead Header Pane" #~ msgstr "/_Vizualizare/_Grupează articolele în panoul cu antete" #~ msgid "/_View/_Rot13 Selected Text" #~ msgstr "/_Vizualizare/Aplică _Rot13 textului selectat" #~ msgid "/_View/E_xpand Selected Threads" #~ msgstr "/_Vizualizare/E_xpandează firele de discuție selectate " #~ msgid "/_View/C_ollapse Selected Threads" #~ msgstr "/_Vizualizare/Compactează _firele de discuție selectate" #~ msgid "/Filte_r/---" #~ msgstr "/Filt_rare/---" #~ msgid "/Filte_r/Match Only _Cached Articles" #~ msgstr "/Filt_rare/Afișează numai articolele din _cache" #~ msgid "/Filte_r/Match Only _Text Articles" #~ msgstr "/Filt_rare/Afișează numai articolele în format _text" #~ msgid "/Filte_r/Match Only _Binary Attachment Articles" #~ msgstr "/Filt_rare/Afișează numai articolele cu atașamente _binare" #~ msgid "/Filte_r/Match Only _My Articles" #~ msgstr "/Filt_rare/Afișează numai articolele _mele" #~ msgid "/Filte_r/Match _New Articles" #~ msgstr "/Filt_rare/Afișează articolele n_oi" #~ msgid "/Filte_r/Match _Unread Articles" #~ msgstr "/Filtr_rare/Afișează articolele n_ecitite" #~ msgid "/_Go/Read More" #~ msgstr "/_Citire/Citește înainte" #~ msgid "/_Go/---" #~ msgstr "/_Citire/---" #~ msgid "/_Go/Next _New Article" #~ msgstr "/_Citire/Următorul articol n_ou" #~ msgid "/_Go/Previous Article _Read" #~ msgstr "/_Citire/Precedentul articol _citit" #~ msgid "/_Servers" #~ msgstr "/_Servere" #~ msgid "/_Servers/Get List of _All Groups" #~ msgstr "/_Servere/Descarcă o listă cu _toate grupurile" #~ msgid "/_Servers/Get List of _New Groups" #~ msgstr "/_Servere/Descarcă o listă cu grupurile _noi" #~ msgid "/_Servers/---" #~ msgstr "/_Servere/---" #~ msgid "/_Newsgroups/Mark Group _Read" #~ msgstr "/_Grupuri/Marchează grupul ca _citit" #~ msgid "/_Newsgroups/_Delete Group's Articles" #~ msgstr "/_Grupuri/Șter_ge articolele grupului" #~ msgid "/_Newsgroups/---" #~ msgstr "/_Grupuri/---" #~ msgid "/_Newsgroups/Get New _Headers" #~ msgstr "/_Grupuri/Descarcă _antete noi" #~ msgid "/_Newsgroups/Get New Headers and _Bodies" #~ msgstr "/_Grupuri/Descarcă antete și _conținuturi noi" #~ msgid "/_Newsgroups/More Download _Options..." #~ msgstr "/_Grupuri/Mai multe _opțiuni de descărcare..." #~ msgid "/_Newsgroups/Refresh Article _Counts" #~ msgstr "/_Grupuri/Actualizează _numărul de articole" #~ msgid "/_Newsgroups/Get New Headers in Subscribed _Groups" #~ msgstr "/_Grupuri/Descarcă antete noi de la grupurile a_bonate" #~ msgid "/_Newsgroups/_Subscribe" #~ msgstr "/_Grupuri/Abonea_ză" #~ msgid "/_Newsgroups/_Unsubscribe" #~ msgstr "/_Grupuri/_Dezabonează" #~ msgid "/_Newsgroups/Group _Properties..." #~ msgstr "/_Grupuri/_Proprietățile grupului..." #~ msgid "/_Newsgroups/Dele_te Group" #~ msgstr "/_Grupuri/Ște_rge grupul" #~ msgid "/_Articles/Mark _Read" #~ msgstr "/_Articole/Marchează ca _citit" #~ msgid "/_Articles/Mark _Unread" #~ msgstr "/_Articole/Marchează ca _necitit" #~ msgid "/_Articles/---" #~ msgstr "/_Articole/---" #~ msgid "/_Articles/D_ownload Flagged" #~ msgstr "/_Articole/Descarcă articolele _marcate" #~ msgid "/_Articles/_Flag" #~ msgstr "/_Articole/Marc_hează" #~ msgid "/_Articles/U_nflag" #~ msgstr "/_Articole/Șter_ge marcaj" #~ msgid "/_Articles/Down_load" #~ msgstr "/_Articole/De_scarcă" #~ msgid "/_Articles/_Watch Thread" #~ msgstr "/_Articole/Urmărește _firul de discuție" #~ msgid "/_Articles/_Ignore Thread" #~ msgstr "/_Articole/_Ignoră firul de discu‪ție" #~ msgid "/_Articles/_View Article's Scores" #~ msgstr "/_Articole/_Afișează punctajul articolului" #~ msgid "/_Articles/Cancel..." #~ msgstr "/_Articole/Anulează..." #~ msgid "/_Articles/Supersed_e..." #~ msgstr "/_Articole/Actualizea_ză..." #~ msgid "/_Articles/_Delete" #~ msgstr "/_Articole/Șt_erge" #~ msgid "/_Post" #~ msgstr "/_Trimite" #~ msgid "/_Post/_Post to Newsgroup..." #~ msgstr "/_Trimite/Trimite un nou _articol..." #~ msgid "/_Post/_Reply by Email..." #~ msgstr "/_Trimite/Ră_spunde prin email..." #~ msgid "/_Post/For_ward by Email..." #~ msgstr "/_Trimite/Î_naintează prin email..." #~ msgid "/_Post/---" #~ msgstr "/_Trimite/---" #~ msgid "/_Post/Send Pending _Messages" #~ msgstr "/_Trimite/Trimite _mesajele în așteptare" #~ msgid "/_Tools" #~ msgstr "/_Unelte" #~ msgid "/_Tools/---" #~ msgstr "/_Unelte/---" #~ msgid "/_Tools/Custom _Filters..." #~ msgstr "/_Unelte/Personalizare _filtre..." #~ msgid "/_Tools/_Rules..." #~ msgstr "/_Unelte/_Reguli..." #~ msgid "/_Tools/_Edit Scorefile..." #~ msgstr "/_Unelte/_Editează fișierul cu punctaje..." #~ msgid "/_Tools/_Log Viewer..." #~ msgstr "/_Unelte/Vizualizare _jurnal..." #~ msgid "/_Help" #~ msgstr "/A_jutor" #~ msgid "/_Help/---" #~ msgstr "/A_jutor/---" #~ msgid "The default charset set for articles posted with this profile" #~ msgstr "" #~ "Setul de caractere implicit pentru articolele trimise cu această " #~ "identitate" #~ msgid "Pan: Edit Profile" #~ msgstr "Pan: Editare identitate" #~ msgid "_User Profile" #~ msgstr "Identitate _utilizator:" #~ msgid "Cus_tom Headers" #~ msgstr "Personali_zare antete" #~ msgid "You must specify a username or disable authorization." #~ msgstr "" #~ "Trebuie specificat un nume de utilizator sau dezactivată autorizarea." #~ msgid "" #~ "Your real name contained double quotes.\n" #~ "Converting into single quotes." #~ msgstr "" #~ "Numele dumneavoastră real conținea ghilimele duble. Convertesc în " #~ "ghilimele simple." #~ msgid "You need at least one profile" #~ msgstr "Este necesară cel puțin o identitate" #~ msgid "Use the selected profile to create a new profile" #~ msgstr "" #~ "Folosește datele din identitatea selectată pentru a crea o nouă identitate" #~ msgid "Wrote profiles to \"%s\"" #~ msgstr "Am salvat identitățile în \\\"%s\\\"" #~ msgid "/_File/_Save..." #~ msgstr "/_Fișier/_Salvează..." #~ msgid "/_File/Clea_r" #~ msgstr "/_Fișier/Go_lește" #~ msgid "/_File/_Close" #~ msgstr "/_Fișier/Î_nchide" #~ msgid "Pan: Status Log" #~ msgstr "Pan: Jurnal de stare" #~ msgid "Clear the log window" #~ msgstr "Golește fereastra de jurnal." #~ msgid "Time" #~ msgstr "Ora" #~ msgid "Log Entry" #~ msgstr "Intrare jurnal" #~ msgid "Post anyway, despite these problems?" #~ msgstr "Trimit oricum, în ciuda acestor probleme?" #~ msgid "Post anyway, despite this problem?" #~ msgstr "Trimit oricum, în ciuda acestei probleme?" #~ msgid "/_File/_Save Changes" #~ msgstr "/_Fișier/_Salvează schimbările" #~ msgid "/_File/Save _As..." #~ msgstr "/_Fișier/Salvează _ca..." #~ msgid "/_Edit/Cu_t" #~ msgstr "/_Editare/_Taie" #~ msgid "/_Edit/_Copy" #~ msgstr "/_Editare/_Copiază" #~ msgid "/_Edit/_Paste" #~ msgstr "/_Editare/_Lipește" #~ msgid "/_Edit/_Rot13 Selected Text" #~ msgstr "/_Editare/Aplică _Rot13 textului selectat" #~ msgid "/_Edit/Edit with E_xternal Editor" #~ msgstr "/_Editare/Editează cu un editor e_xtern" #~ msgid "/_File/Send Now" #~ msgstr "/_Fișier/Trimite acum" #~ msgid "/_File/Send Later" #~ msgstr "/_Fișier/Trimite mai târziu" #~ msgid "Send Later" #~ msgstr "Trimite mai târziu" #~ msgid "Rewrap" #~ msgstr "Mergi la sfârșitul liniei" #~ msgid "Turn line wrap on/off" #~ msgstr "(Dez)activează rearanjarea textului" #~ msgid "Edit with an External Editor" #~ msgstr "Editează cu un editor extern" #~ msgid "Mime (single-part posts only)" #~ msgstr "Mime (doar articolele single-part)" #~ msgid " (%lu lines in 1 article)" #~ msgstr " (%lu linii în 1 articol)" #~ msgid "UUEncoded (universally accepted)" #~ msgstr "UUEncoded (acceptat universal)" #~ msgid "yEnc (30 percent smaller than UUEnc but less universal)" #~ msgstr "yEnc (cu 30 procente mai mic decât UUEnc, dar mai puțin universal)" #~ msgid "Select the file to attach." #~ msgstr "Selectează fișierul de atașat." #~ msgid "Files to Attach" #~ msgstr "Fișiere de atașat" #~ msgid "Kilobytes" #~ msgstr "Kiloocteți" #~ msgid "Add a File to the Attachment List" #~ msgstr "Adaugă un fișier la lista de atașamente" #~ msgid "Remove a File from the Attachment List" #~ msgstr "Șterge un fișier din lista de atașamente" #~ msgid "Estimated Article Size" #~ msgstr "Dimensiunea estimată a fișierului" #~ msgid "Organization" #~ msgstr "Organizație" #~ msgid "The organization you're associated with." #~ msgstr "Organizația din care faceți parte" #~ msgid "Charset" #~ msgstr "Set de caractere" #~ msgid "" #~ "Could not convert \"%s\" to UTF-8. Article may not display correctly." #~ msgstr "" #~ "Nu am putut converti \"%s\" la UTF-8. Articolul poate fi afișat incorect." #~ msgid "\"Followup-To: poster\": sending email to author." #~ msgstr "" #~ "\"Continuare la:\" conține cuvântul \"poster\": trimit email autorului." #~ msgid "\"Followup-To:\" contains an email address: sending email to author." #~ msgstr "" #~ "\"Continuare la:\" conține o adresă de email: trimit email autorului." #~ msgid "New Message" #~ msgstr "Mesaj nou" #~ msgid "" #~ "ERROR: line %d, column %d uses a character not specified in charset \"%s" #~ "\" -- possibly change your charset in \"More Headers\" to \"%s\" instead?" #~ msgstr "" #~ "EROARE: linia %d, coloana %d folosește un caracter inexistent în setul de " #~ "caractere \"%s\" -- pot să înlocuiesc setul de caractere din \"Mai multe " #~ "antete\" cu \"%s\"?" #~ msgid "Save message to file" #~ msgstr "Salvează mesajul într-un fișier" #~ msgid "The command line was: %s" #~ msgstr "Linia de comandă a fost: %s" #~ msgid "NNTP handshake failed: %s" #~ msgstr "Negocierea cu serverul NNTP a eșuat: %s" #~ msgid "Handshake failed: %s" #~ msgstr "Negocierea cu serverul a eșuat: %s" #~ msgid "Handshake: %s" #~ msgstr "Negocierea cu serverul: %s" #~ msgid "Authentication failed: bad handshake for SPA password" #~ msgstr "Autentificarea a eșuat: negociere greșită a parolei SPA" #~ msgid "Bad SPA handshake: %s" #~ msgstr "Negociere SPA greșită: %s" #~ msgid "Authentication failed: need a password" #~ msgstr "Autentificarea a eșuat: e necesară o parolă" #~ msgid "Authentication failed: %s" #~ msgstr "Autentificarea a eșuat: %s" #~ msgid "%*.*s handshake failed: %s" #~ msgstr "Negocierea %*.*s a eșuat: %s" #~ msgid "No supported authentication mechanism" #~ msgstr "Nu există nici un mecanism cunoscut de autentificare" #~ msgid "No password found!" #~ msgstr "Nu am găsit nici o parolă!" #~ msgid "MODE READER check failed: %s" #~ msgstr "Verificarea MODE READER a eșuat: %s" #~ msgid "Posting failed. Server said: %s" #~ msgstr "Trimiterea a eșuat. Serverul a spus: %s" #~ msgid "Posting complete. Server said: %s" #~ msgstr "Trimiterea s-a încheiat. Serverul a zis: %s" #~ msgid "\"stay connected\" sent to %*.*s" #~ msgstr "Comanda \"rămâi conectat\" a fost trimisă la %*.*s" #~ msgid "Getting header list failed: %s" #~ msgstr "Descărcarea listei de antete a eșuat: %s" #~ msgid "Corrupt header skipped: %s" #~ msgstr "Antet corupt ignorat: %s" #~ msgid "Getting %d of %d" #~ msgstr "Descarc %d din %d" #~ msgid "_Browse..." #~ msgstr "_Navighează..." #~ msgid "Font Family" #~ msgstr "Familia de caractere" #~ msgid " --version Prints Pan's version number" #~ msgstr " --version Afișează versiunea Pan" #~ msgid " --help Prints this message and exits" #~ msgstr " --help Afișează acest mesaj" #~ msgid "" #~ " --debug Turns on the most commonly-used options for a bug " #~ "report" #~ msgstr "" #~ " --debug Activează opțiunile pentru raportarea unei probleme" #~ msgid "" #~ " --mute Debugging tool to send new posts to console, not the " #~ "server" #~ msgstr "" #~ " --mute Unealta de depanare va trimite articolele noi la " #~ "consolă, nu la server" #~ msgid " --debug-cache Print debugging messages for the article cache" #~ msgstr "" #~ " --debug-cache Afișează mesajele de depanare pentru cache-ul de " #~ "articole" #~ msgid "" #~ " --debug-sockets Print debugging messages when talking to the news " #~ "server" #~ msgstr "" #~ " --debug-sockets Afișează mesajele de depanare din timpul comunicării " #~ "cu serverul de știri" #~ msgid "" #~ " --debug-queue Print debugging messages related to managing tasks" #~ msgstr "" #~ " --debug-queue Afișează mesajele de depanare legate de administrarea " #~ "proceselor" #~ msgid "" #~ " --debug-decode Print debugging messages related to decoding " #~ "attachments" #~ msgstr "" #~ " --debug-decode Afișează mesajele de depanare legate de decodificarea " #~ "atașamentelor" #~ msgid " --debug-newsrc Print debugging messages related to .newsrc files" #~ msgstr "" #~ " --debug-newsrc Afișează mesajele de depanare legate de fișierele ." #~ "newsrc" #~ msgid "" #~ " --debug-gnksa Print debugging messages related to gnksa correctness" #~ msgstr "" #~ " --debug-gnksa Afișează mesajele de depanare legate de " #~ "corectitudinea gnksa" #~ msgid "" #~ " --debug-trace Print debugging messages when entering/leaving " #~ "functions" #~ msgstr "" #~ " --debug-trace Afișează mesajele de depanare la intrarea/ieșirea din " #~ "funcții" #~ msgid "" #~ " --debug-lock Print debugging messages related to threaded gui locks" #~ msgstr "" #~ " --debug-lock Afișează mesajele de depanare legate de blocarea " #~ "firelor de \n" #~ " execuție ale interfeței grafice" #~ msgid "" #~ " --debug-object Print debugging messages related to refcounted objects" #~ msgstr "" #~ " --debug-object Afișează mesajele de depanare legate de obiectele " #~ "refcounted" #~ msgid "Error writing to socket." #~ msgstr "Eroare la scrierea soclului" #~ msgid "pan.sent" #~ msgstr "pan.sent" #~ msgid "pan.sendlater" #~ msgstr "pan.sendlater" #~ msgid "Spellchecking disabled: gtkspell_init() failed with status %d" #~ msgstr "" #~ "Verificarea ortografiei dezactivată: gtkspell_init() a eșuat cu statusul " #~ "%d" #~ msgid "Restored %d tasks from last session" #~ msgstr "Am restaurat %d procese din ultima sesiune" #~ msgid "" #~ "Some tasks were still queued the last time Pan exited. Do you want to " #~ "resume those tasks?" #~ msgstr "" #~ "Unele procese au rămas activate la ultima folosire a Pan. Doriți să le " #~ "reactivați?" #~ msgid "_Resume" #~ msgstr "_Reactivează" #~ msgid "" #~ "%a - abbreviated weekday name\n" #~ "%A - full weekday name\n" #~ "%b - abbreviated month name\n" #~ "%B - full month name\n" #~ "%c - local date & time\n" #~ "%d - day of the month\n" #~ "%H - hour (24-hour clock)\n" #~ "%I - hour (12-hour clock)\n" #~ "%j - day of the year (001-366)\n" #~ "%m - month (01-12)\n" #~ "%M - minute (00-59)\n" #~ "%p - local equivalent of AM/PM\n" #~ "%S - second (00-61)\n" #~ "%x - local date\n" #~ "%X - local time\n" #~ "%y - two-digit year\n" #~ "%Y - four-digit year\n" #~ "%% - %" #~ msgstr "" #~ "%a - numele prescurtat al săptămânii\n" #~ "%A - numele întreg al săptămânii\n" #~ "%b - numele prescurtat al lunii\n" #~ "%B - numele întreg al lunii\n" #~ "%c - data și ora locale\n" #~ "%d - ziua lunii\n" #~ "%H - ora (de la 0 la 24)\n" #~ "%I - ora (de la 0 la 12)\n" #~ "%j - ziua anului (001-366)\n" #~ "%m - luna (01-12)\n" #~ "%M - minutul (00-59)\n" #~ "%p - echivalentul local al AM/PM\n" #~ "%S - secunda (00-60)\n" #~ "%x - data locală\n" #~ "%X - ora locală\n" #~ "%y - anul format din două cifre\n" #~ "%Y - anul format din patru cifre\n" #~ "%% - %" #~ msgid "Color the \"sub_ject\" column" #~ msgstr "Colorează coloana \"sub_iect\"" #~ msgid "Articles with a Score of 9999 or higher:" #~ msgstr "Articole cu un punctaj de 9999 sau mai mare:" #~ msgid "Articles with a Score between 5000 and 9998:" #~ msgstr "Articole cu un punctaj între 5000 și 9998:" #~ msgid "Articles with a Score between 1 and 4999:" #~ msgstr "Articole cu punctaj între 1 și 4999:" #~ msgid "Articles with a Score between -9998 and -1:" #~ msgstr "Articole cu punctaj între -9998 și -1:" #~ msgid "Articles with a Score of -9999 or lower:" #~ msgstr "Articole cu punctaj de -9999 sau mai mic:" #~ msgid "_1:" #~ msgstr "_1:" #~ msgid "_2:" #~ msgstr "_2:" #~ msgid "_3:" #~ msgstr "_3:" #~ msgid "Pane Order" #~ msgstr "Ordine panouri" #~ msgid "Action State" #~ msgstr "Starea acțiunilor" #~ msgid "Article State" #~ msgstr "Starea articolelor" #~ msgid "Column Layout" #~ msgstr "Aranjarea coloanelor" #~ msgid "When a Followup subject header changes, show as _new thread" #~ msgstr "" #~ "Când subiectul unui răspuns se schimbă, afișează ca un _nou fir de " #~ "discuție" #~ msgid "E_xpand all threads by default" #~ msgstr "E_xpandează implicit toate firele de discuție" #~ msgid "Show complete _multipart posts as a single article" #~ msgstr "Afișează articolele _multipart complete ca un singur articol" #~ msgid "Date Forma_t:" #~ msgstr "Forma_t dată:" #~ msgid "Show \"%s\" header" #~ msgstr "Afișează antetul \"%s\"" #~ msgid "Download new headers from s_ubscribed groups when starting Pan" #~ msgstr "La pornirea Pan, descarcă antete noi de la grupurile a_bonate" #~ msgid "" #~ "Download new headers and bod_ies from subscribed groups when starting Pan" #~ msgstr "" #~ "La pornirea Pan, descarcă antete și conținuturi noi de la grupurile " #~ "abonate" #~ msgid "Download Directory" #~ msgstr "Director de descărcare" #~ msgid "Automatically remove _failed tasks from the task manager" #~ msgstr "" #~ "Șterge automat din administratorul de procese procesele care au eșuat" #~ msgid "_Erase cache when exiting Pan" #~ msgstr "Ș_terge cache-ul la ieșirea din Pan" #~ msgid "Ma_ximum Cache Size (Megs):" #~ msgstr "Dimensiunea m_aximă a cache-ului (megaocteți):" #~ msgid "_Editor (%t is filename):" #~ msgstr "_Editor (%t este un nume de fișier):" #~ msgid "" #~ "Scorefile _Editor:\n" #~ "(%t is filename, %n is line number)" #~ msgstr "" #~ "_Editor de punctaje:\n" #~ "(%t este un nume de fișier, %n este numărul unei linii)" #~ msgid "Scorefile" #~ msgstr "Fișier cu punctaje" #~ msgid "Score_file" #~ msgstr "_Fișier cu punctaje" #~ msgid "Sending Mail" #~ msgstr "Email" #~ msgid "Mail Server Add_ress:" #~ msgstr "Ad_resă server de mail:" #~ msgid "Mail Server Por_t:" #~ msgstr "Por_t server de mail:" #~ msgid "Hea_der Pane" #~ msgstr "Panou cu _antete" #~ msgid "A_pps & Mail" #~ msgstr "A_plicații & Mail" #~ msgid "" #~ "%s\n" #~ "\n" #~ "Matches: %u\n" #~ "Group: %s\n" #~ "Rule: %s" #~ msgstr "" #~ "%s\n" #~ "\n" #~ "Articole găsite: %u\n" #~ "Grup: %s\n" #~ "Regulă: %s" #~ msgid "Mark as" #~ msgstr "Marchează ca" #~ msgid "_Flag body for download" #~ msgstr "_Marchează conținutul pentru descărcare" #~ msgid "_Retrieve Body" #~ msgstr "_Descarcă conținut" #~ msgid "_Watch thread (highlights the thread)" #~ msgstr "_Urmărește firul de discuție (marchează firul de discuție)" #~ msgid "_Ignore thread (hides the thread by default)" #~ msgstr "_Ignoră firul de discuție (ascunde implicit firul de discuție)" #~ msgid "Rule applies to all newsgroups" #~ msgstr "Regula se aplică tuturor grupurilor" #~ msgid "Wildcard group specification:" #~ msgstr "Specificare grup cu metacaractere" #~ msgid "(e.g., *anime*)" #~ msgstr "(e.g., *anime*)" #~ msgid "Rule applies to specific newsgroups:" #~ msgstr "Regula se aplică unor grupuri specifice:" #~ msgid "Rule applies to:" #~ msgstr "Regula se aplică la:" #~ msgid "Rule Name:" #~ msgstr "Nume regulă:" #~ msgid "Apply to Incoming" #~ msgstr "Aplică mesajelor care vin" #~ msgid "" #~ "If enabled, this rule will be applied to headers when they are downloaded." #~ msgstr "" #~ "Dacă e activată, această regulă va fi aplicată antetelor la descărcare." #~ msgid "New Rule" #~ msgstr "Regulă nouă" #~ msgid "Delete Articles by Bozos" #~ msgstr "Șterge articolele de la proști" #~ msgid "Applying rule to selected groups" #~ msgstr "Aplic regula grupurilor selectate" #~ msgid "Applying rule \"%s\" to group \"%s\"" #~ msgstr "Aplic regula \"%s\" grupului \"%s\"" #~ msgid "Rules" #~ msgstr "Reguli" #~ msgid "Hit Ratio" #~ msgstr "Nivel de succes" #~ msgid "" #~ "Apply to\n" #~ "Selected\n" #~ "Groups" #~ msgstr "" #~ "Aplică\n" #~ "grupurilor\n" #~ "selectate" #~ msgid "" #~ "Apply to\n" #~ "Subscribed\n" #~ "Groups" #~ msgstr "" #~ "Aplică\n" #~ "grupurilor\n" #~ "abonate" #~ msgid "Wrote rules to \"%s\"" #~ msgstr "Am salvat regulile în \"%s\"" #~ msgid "" #~ "Can't find filter \"%s\" needed by rule \"%s\", so no articles match." #~ msgstr "" #~ "Nu găsesc filtrul \"%s\" de care are nevoie regula \"%s\", astfel că nici " #~ "un articol nu corespunde." #~ msgid "%u articles match rule %s" #~ msgstr "%u articole corespund regulii %s" #~ msgid "Pan: Manual Decode" #~ msgstr "Pan: Decodificare manuală" #~ msgid "Save Files in Directory" #~ msgstr "Salvează fișierele într-un director" #~ msgid "_Directory:" #~ msgstr "_Director:" #~ msgid "Add to the _top of the Task Manager's List" #~ msgstr "Adaugă la î_nceputul listei administratorului de procese" #~ msgid "Criterion \"%s\" is selected, but empty." #~ msgstr "Criteriul \"%s\" este selectat, dar este gol." #~ msgid "No criteria are selected." #~ msgstr "Nici un criteriu selectat." #~ msgid "Pan: Add to Scorefile" #~ msgstr "Pan: Adăugare punctaj" #~ msgid "Su_bject:" #~ msgstr "Su_biect" #~ msgid "A_uthor:" #~ msgstr "A_utor:" #~ msgid "_Lines:" #~ msgstr "_Linii:" #~ msgid "at least N lines long" #~ msgstr "lung de cel puțin N linii" #~ msgid "less than N lines long" #~ msgstr "lung de mai puțin de N linii" #~ msgid "Chan_ge Score:" #~ msgstr "Schim_bă punctaj:" #~ msgid "subtract" #~ msgstr "scade" #~ msgid "Expire in N _days:" #~ msgstr "Expiră în N _zile:" #~ msgid "Edit the selected score" #~ msgstr "Editează punctajul selectat" #~ msgid "You must specify an address." #~ msgstr "Trebuie specificată o adresă." #~ msgid "You must specify a password or disable authorization." #~ msgstr "Trebui specificată o parolă sau dezactivată autorizarea." #~ msgid "You must specify a .newsrc filename or disable newsrc support." #~ msgstr "" #~ "Trebuie specificat un nume de fișier .newsrc sau dezactivat suportul " #~ "newsrc." #~ msgid "Newsrc" #~ msgstr "Newsrc" #~ msgid "Us_e .newsrc file" #~ msgstr "Folo_sește fișierul .newsrc" #~ msgid "Select .newsrc File" #~ msgstr "Selectează fișierul .newsrc" #~ msgid "_Filename:" #~ msgstr "_Nume fișier:" #~ msgid "Edit the selected server" #~ msgstr "Editează serverul selectat" #~ msgid "Remove the selected server" #~ msgstr "Șterge serverul selectat" #~ msgid "Got unexpected response from mail server: expected %d; got %s" #~ msgstr "" #~ "Am primit un răspuns neașteptat de la serverul de mail: am așteptat %d; " #~ "am primit %s" #~ msgid "Sending mail" #~ msgstr "Trimit mail" #~ msgid "No known recipients" #~ msgstr "Nici un destinatar cunoscut" #~ msgid "Mail sent!" #~ msgstr "Mail trimis!" #~ msgid "Handshaking with mail server" #~ msgstr "Negociez cu serverul de mail" #~ msgid "Connecting to mail server" #~ msgstr "Mă conectez la serverul de mail" #~ msgid "Mail server not ready" #~ msgstr "Serverul de mail nu e pregătit" #~ msgid "Sending Keepalive" #~ msgstr "Trimit notificarea de prezență" #~ msgid "Disconnecting Idle" #~ msgstr "Închid conexiunile inactive" #~ msgid "Disconnecting one connection from `%s' after %d seconds idle" #~ msgstr "Închid conexiunea de la `%s' după %d secunde de inactivitate" #~ msgid "Connection to %*.*s, port %d failed: %s" #~ msgstr "Conectarea la %*.*s, portul %d a eșuat: %s" #~ msgid "Downloading %d" #~ msgstr "Descarc %d" #~ msgid "\"%s\"" #~ msgstr "\"%s\"" #~ msgid "Downloading %u articles" #~ msgstr "Descarc %u articole" #~ msgid "Article %s (%s) canceled" #~ msgstr "Articol %s (%s) anulat" #~ msgid "Updating article counts for %u groups from server \"%s\"" #~ msgstr "" #~ "Actualizez numărul de articole pentru %u grupuri de la serverul \"%s\"" #~ msgid "Updated counts for %u groups out of %u" #~ msgstr "Am actualizat numărul de articole pentru %u din %u grupuri" #~ msgid "Unable to update counts for group \"%s\"" #~ msgstr "Nu pot actualiza numărul de articole pentru grupul \"%s\"" #~ msgid "Getting all groups from server \"%s\"" #~ msgstr "Descarc toate grupurile de la serverul \"%s\"" #~ msgid "Adding groups to server \"%s\"" #~ msgstr "Adaug grupuri la serverul \"%s\"" #~ msgid "List Newsgroups failed: %s" #~ msgstr "Nu s-a putut obține lista de grupuri: %s" #~ msgid "Got %d descriptions from server \"%s\"" #~ msgstr "Am descărcat %d descrieri de la serverul \"%s\"" #~ msgid "New groups retrieval failed: %s" #~ msgstr "Descărcarea grupurilor noi a eșuat: %s" #~ msgid "No new articles in group \"%s\"" #~ msgstr "Nici un articol nou în grupul \"%s\"" #~ msgid "New %lu of %lu" #~ msgstr "%lu noi din %lu" #~ msgid "Sampling %lu of %lu" #~ msgstr "Triez %lu din %lu" #~ msgid "All %lu of %lu" #~ msgstr "Toate %lu din %lu" #~ msgid "Not Queued" #~ msgstr "Nu e în coadă" #~ msgid "Stopping" #~ msgstr "În curs de oprire" #~ msgid "Pan %s Task Manager" #~ msgstr "Pan %s Administrator de Procese" #~ msgid "Move Selected Task(s) Up" #~ msgstr "Mută procesele selectate în sus" #~ msgid "Move Selected Task(s) to Top" #~ msgstr "Mută procesele selectate la început" #~ msgid "Move Selected Task(s) Down" #~ msgstr "Mută procesele selectate în jos" #~ msgid "Stop Selected Task(s)" #~ msgstr "Oprește procesele selectate" #~ msgid "Delete Selected Task(s)" #~ msgstr "Șterge procesele selectate" #~ msgid "Time Remaining" #~ msgstr "Timp rămas" #~ msgid "[This is an email copy of a Usenet post to \"%s\"]" #~ msgstr "[Aceasta este o copie email a unui articol trimis la \"%s\"]" #~ msgid "Email \"%s\" sent." #~ msgstr "Emailul \"%s\" a fost trimis." #~ msgid "Email \"%s\" not sent." #~ msgstr "Emailul \"%s\" nu a fost trimis." #~ msgid "Article \"%s\" posted." #~ msgstr "Articolul \"%s\" a fost trimis." #~ msgid "Article \"%s\" not posted." #~ msgstr "Articolul \"%s\" nu a fost trimis." #~ msgid "Posting and mailing article \"%s\"" #~ msgstr "Trimit articolul \"%s\", inclusiv prin email" #~ msgid "Mailing article \"%s\"" #~ msgstr "Trimit articolul \"%s\" prin email" #~ msgid "Email send failed. " #~ msgstr "Trimiterea prin email a eșuat." #~ msgid "Usenet posting failed. " #~ msgstr "Trimiterea către Usenet a eșuat." #~ msgid "Check Tools|Log Viewer for more information. " #~ msgstr "Verificați Unelte|Vizualizare jurnal pentru mai multe informații." #~ msgid "Your message was saved in the folder \"pan.sendlater\"" #~ msgstr "Mesajul dumneavoastră a fost salvat în directorul \"pan.sendlater\"" #~ msgid "Saving `%s'" #~ msgstr "Salvez `%s'" #~ msgid "Saving Attachments" #~ msgstr "Salvez atașamentele" #~ msgid "Save Article can't access path \"%s\"" #~ msgstr "Salvarea articolului nu poate accesa calea \"%s\"" #~ msgid "Saved article body to \"%s\"" #~ msgstr "Am salvat conținutul articolului în \"%s\"" #~ msgid "" #~ "Pan %s\n" #~ "Copyright (c) %d by Charles Kerr\n" #~ "\n" #~ "If you find a bug, please report it.\n" #~ "\n" #~ msgstr "" #~ "Pan %s\n" #~ "Copyright (c) %d de Charles Kerr\n" #~ "\n" #~ "Dacă întâmpinați vreo problemă, vă rugăm să o raportați.\n" #~ "\n" #~ msgid "" #~ "http://pan.rebelbase.com/ - Pan Homepage\n" #~ "http://pan.rebelbase.com/bugs/ - Report a Bug\n" #~ "http://pan.rebelbase.com/download/ - Upgrade\n" #~ "\n" #~ msgstr "" #~ "http://pan.rebelbase.com/ - Pagina web Pan\n" #~ "http://pan.rebelbase.com/bugs/ - Raportați o problemă\n" #~ "http://pan.rebelbase.com/download/ - Upgrade\n" #~ "\n" #~ msgid "" #~ "This program is free software; you can redistribute it\n" #~ "and/or modify it under the terms of the GNU General Public\n" #~ "License as published by the Free Software Foundation;\n" #~ "version 2 of the License.\n" #~ "\n" #~ "This program is distributed in the hope that it will be\n" #~ "useful, but WITHOUT ANY WARRANTY; without even the implied\n" #~ "warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\n" #~ "PURPOSE. See the GNU General Public License for more\n" #~ "details.\n" #~ "\n" #~ "The GNU Public License can be found from the menu above\n" #~ "in Help|About|License." #~ msgstr "" #~ "Acest program este liber; îl puteți redistribui și/sau modifica în\n" #~ "conformitate cu termenii Licenței Publice Generale GNU așa cum\n" #~ "este publicată de Free Software Foundation; versiunea 2 a\n" #~ "Licenței.\n" #~ "\n" #~ "Acest program este distribuit cu speranța că va fi util, dar FĂRĂ\n" #~ "NICI O GARANȚIE, fără garanție implicită de vandabilitate sau\n" #~ "conformitate unui anumit scop. Citiți Licența Publică Generală\n" #~ "GNU pentru detalii.\n" #~ "\n" #~ "Licența Publică GNU se află în meniul Ajutor|Despre|Licență." #~ msgid "Error starting external browser: %s" #~ msgstr "Eroare la pornirea navigatorului extern: %s" #~ msgid "Error starting external scorefile editor: %s" #~ msgstr "Eroare la pornirea editorului de punctaje extern: %s" #~ msgid "Incomplete Profile." #~ msgstr "Date identitate incomplete." #~ msgid "No articles found for group \"%s\"" #~ msgstr "Grupul \"%s\" nu conține nici un articol" pan-0.162/po/ru.po000066400000000000000000004617441475412772400137410ustar00rootroot00000000000000# Copyright (C) 1999-2001 Free Software Foundation, Inc. # Valek Filippov , 2001. msgid "" msgstr "" "Project-Id-Version: PAN\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-04-04 20:58+0200\n" "PO-Revision-Date: 2001-10-28 18:01+0300\n" "Last-Translator: Valek Filippov \n" "Language-Team: Russian \n" "Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8-bit\n" #: ../pan.desktop.in.h:1 #, fuzzy msgid "Pan Newsreader" msgstr "новые заголовки" #: ../pan.desktop.in.h:2 #, fuzzy msgid "Read and Post Usenet Articles" msgstr "Отметить выбранные статьи" #: ../pan/data/article-cache.cc:143 ../pan/data/encode-cache.cc:62 #, c-format msgid "Error opening directory: \"%s\": %s" msgstr "" #: ../pan/data/article-cache.cc:231 ../pan/data/article-cache.cc:242 #: ../pan/data-impl/data-io.cc:187 ../pan/data-impl/data-io.cc:211 #: ../pan/gui/post-ui.cc:1639 #, fuzzy, c-format msgid "Unable to save \"%s\" %s" msgstr "Не удалось установить группу \"%s\": %s" #: ../pan/data/article-cache.cc:355 #, fuzzy, c-format msgid "Error opening file \"%s\" %s" msgstr "Ошибка чтения файла \"%s\"" #: ../pan/data/article-cache.cc:386 ../pan/data-impl/profiles.cc:174 #: ../pan/data-impl/server.cc:436 ../pan/general/file-util.cc:298 #: ../pan/gui/post-ui.cc:609 ../pan/gui/task-pane.cc:691 #, fuzzy, c-format msgid "Error reading file \"%s\": %s" msgstr "Ошибка чтения файла \"%s\"" #: ../pan/data/cert-store.cc:238 #, fuzzy, c-format msgid "Error opening SSL certificate directory: \"%s\": %s" msgstr "Ошибка чтения файла \"%s\"" #: ../pan/data/cert-store.cc:270 #, c-format msgid "Succesfully added %d SSL PEM certificate(s) to Certificate Store." msgstr "" #. load_group_descriptions (*_data_io); #: ../pan/data-impl/data-impl.cc:109 #, c-format msgid "Loaded data backend in %.1f seconds" msgstr "" #: ../pan/data-impl/data-impl.cc:140 msgid "Pan newsreader server passwords" msgstr "" #: ../pan/data-impl/groups.cc:94 #, fuzzy, c-format msgid "Skipping newsrc file for server \"%s\"" msgstr "Подключиться к серверу \"%s\"?" #: ../pan/data-impl/headers.cc:606 #, fuzzy, c-format msgid "Expired %lu old articles from \"%s\"" msgstr "Удалено %u статей из %s" #: ../pan/data-impl/headers.cc:613 #, fuzzy, c-format msgid "" "Unsupported data version for %s headers: %d.\n" "Are you running an old version of Pan by accident?" msgstr "Неподдерживаемая версия данных для заголовков %s: %d" #: ../pan/data-impl/headers.cc:628 #, fuzzy, c-format msgid "Loaded %lu articles for \"%s\" in %.1f seconds (%.0f per second)" msgstr "Сохранено %d статей за %.1f секунд (%.0f статей/сек)" #: ../pan/data-impl/headers.cc:857 #, fuzzy, c-format msgid "" "Saved %lu parts, %lu articles in \"%s\" in %.1f seconds (%.0f articles/sec)" msgstr "Сохранено %d статей за %.1f секунд (%.0f статей/сек)" #: ../pan/data-impl/headers.cc:1173 #, fuzzy, c-format msgid "Added %lu articles to %s." msgstr "Удалено %u статей из %s" #: ../pan/data-impl/server.cc:234 #, c-format msgid "There seems to be no Password set for Server %s." msgstr "" #: ../pan/data-impl/server.cc:238 msgid "The Gnome keyring denied access to the Passwords." msgstr "" #: ../pan/data-impl/xover.cc:239 #, fuzzy, c-format msgid "Error reading from %s: unknown group \"%s\"" msgstr "Ошибка чтения из сокета." #. build the locale strings #: ../pan/general/e-util.cc:213 msgid "%l:%M %p" msgstr "" #: ../pan/general/e-util.cc:214 msgid "Today %l:%M %p" msgstr "" #: ../pan/general/e-util.cc:215 msgid "%a %l:%M %p" msgstr "" #: ../pan/general/e-util.cc:216 msgid "%b %d %l:%M %p" msgstr "" #: ../pan/general/e-util.cc:217 msgid "%b %d %Y" msgstr "" #: ../pan/general/e-util.cc:242 msgid "?" msgstr "" #: ../pan/general/text-match.cc:193 #, fuzzy, c-format msgid "Can't use regular expression \"%s\": %s" msgstr "Автор совпадает с рег.выражением \"%s\"" #: ../pan/general/utf8-utils.cc:213 msgid "Couldn't determine article encoding. Non-UTF8 characters were removed." msgstr "" #: ../pan/gui/actions.cc:274 ../pan/gui/post-ui.cc:417 #, fuzzy msgid "_File" msgstr "Не удалось" #: ../pan/gui/actions.cc:275 ../pan/gui/post-ui.cc:418 #, fuzzy msgid "_Edit" msgstr "Правка" #: ../pan/gui/actions.cc:276 ../pan/gui/prefs-ui.cc:1064 #, fuzzy msgid "_Layout" msgstr "Выравнивание" #: ../pan/gui/actions.cc:277 #, fuzzy msgid "_Group Pane" msgstr "Показать панель группы" #: ../pan/gui/actions.cc:278 #, fuzzy msgid "_Header Pane" msgstr "Показать панель заголовка" #: ../pan/gui/actions.cc:279 msgid "_Body Pane" msgstr "" #: ../pan/gui/actions.cc:280 msgid "_View" msgstr "Просмотр" #: ../pan/gui/actions.cc:281 #, fuzzy msgid "Filte_r" msgstr "Фильтры" #: ../pan/gui/actions.cc:282 #, fuzzy msgid "_Go" msgstr "Группы" #: ../pan/gui/actions.cc:283 ../pan/gui/prefs-ui.cc:1091 #, fuzzy msgid "_Actions" msgstr "Действия" #: ../pan/gui/actions.cc:284 msgid "_Articles" msgstr "Статьи" #: ../pan/gui/actions.cc:285 #, fuzzy msgid "G_roups" msgstr "Группы" #: ../pan/gui/actions.cc:286 ../pan/gui/actions.cc:287 msgid "_Post" msgstr "Послать" #: ../pan/gui/actions.cc:288 msgid "_Help" msgstr "" #: ../pan/gui/actions.cc:291 #, fuzzy msgid "_Read Group" msgstr "Перезагрузка групп" #: ../pan/gui/actions.cc:292 #, fuzzy msgid "Read Group" msgstr "Перезагрузка групп" #: ../pan/gui/actions.cc:296 #, fuzzy msgid "_Mark Selected Groups Read" msgstr "Пометить выбранные статьи как прочитанные" #: ../pan/gui/actions.cc:297 #, fuzzy msgid "Mark Selected Groups Read" msgstr "Пометить выбранные статьи как прочитанные" #: ../pan/gui/actions.cc:301 #, fuzzy msgid "_Delete Selected Groups' Articles" msgstr "Отметить выбранные статьи" #: ../pan/gui/actions.cc:302 #, fuzzy msgid "Delete Selected Groups' Articles" msgstr "Отметить выбранные статьи" #: ../pan/gui/actions.cc:306 #, fuzzy msgid "Get New _Headers in Selected Groups" msgstr "Получить новые статьи в выбранных группах" #: ../pan/gui/actions.cc:307 #, fuzzy msgid "Get New Headers in Selected Groups" msgstr "Получить новые статьи в выбранных группах" #: ../pan/gui/actions.cc:311 ../pan/gui/actions.cc:316 #, fuzzy msgid "Get New _Headers in Subscribed Groups" msgstr "Получить новые статьи во всех группах подписки" #: ../pan/gui/actions.cc:312 ../pan/gui/actions.cc:317 #, fuzzy msgid "Get New Headers in Subscribed Groups" msgstr "Получить новые статьи во всех группах подписки" #: ../pan/gui/actions.cc:321 #, fuzzy msgid "Get _Headers..." msgstr "Еще заголовки" #: ../pan/gui/actions.cc:322 #, fuzzy msgid "Get Headers..." msgstr "Еще заголовки" #: ../pan/gui/actions.cc:326 ../pan/gui/actions.cc:327 #, fuzzy msgid "Refresh Group List" msgstr "Обновление группы \"%s\"" #: ../pan/gui/actions.cc:331 msgid "_Subscribe" msgstr "Подписаться" #: ../pan/gui/actions.cc:332 msgid "Subscribe" msgstr "Подписаться" #: ../pan/gui/actions.cc:336 msgid "_Unsubscribe" msgstr "Отписаться" #: ../pan/gui/actions.cc:337 msgid "Unsubscribe" msgstr "Отписаться" #: ../pan/gui/actions.cc:341 #, fuzzy msgid "_Save Articles..." msgstr "Сохранить статьи как..." #: ../pan/gui/actions.cc:342 #, fuzzy msgid "Save Articles..." msgstr "Сохранить статьи как..." #: ../pan/gui/actions.cc:346 #, fuzzy msgid "Save Articles from Selected _NZB..." msgstr "Сохранить статьи как..." #: ../pan/gui/actions.cc:347 #, fuzzy msgid "Save Articles from Selected NZB" msgstr "Не сохранять вложения" #: ../pan/gui/actions.cc:351 #, fuzzy msgid "Save Articles to an NZB _File..." msgstr "Сохранить статьи как..." #: ../pan/gui/actions.cc:352 #, fuzzy msgid "Save Articles to an NZB File" msgstr "Сохранить этот журнал в файле." #: ../pan/gui/actions.cc:356 ../pan/gui/actions.cc:357 #, fuzzy msgid "Print" msgstr "Pan: Печать" #: ../pan/gui/actions.cc:361 #, fuzzy msgid "_Import NZB Files..." msgstr "Импортирование .newsrc..." #: ../pan/gui/actions.cc:366 #, fuzzy msgid "_Cancel Last Task" msgstr "Отменить выбранные задачи" #: ../pan/gui/actions.cc:371 #, fuzzy msgid "_Task Manager" msgstr "Диспетчер задач..." #: ../pan/gui/actions.cc:376 #, fuzzy msgid "_Event Log" msgstr "Открыть журнал состояния" #: ../pan/gui/actions.cc:381 #, fuzzy msgid "_Quit" msgstr "Правка" #: ../pan/gui/actions.cc:386 #, fuzzy msgid "Select _All Articles" msgstr "Выделить все статьи" #: ../pan/gui/actions.cc:391 #, fuzzy msgid "_Deselect All Articles" msgstr "Снять выделение со всех статей" #: ../pan/gui/actions.cc:396 #, fuzzy msgid "Add Su_bthreads to Selection" msgstr "Добавить подшивки к выделению" #: ../pan/gui/actions.cc:401 msgid "Add _Threads to Selection" msgstr "Добавить подшивки к выделению" #: ../pan/gui/actions.cc:406 #, fuzzy msgid "Add _Similar Articles to Selection" msgstr "Добавить ответы к выделению" #: ../pan/gui/actions.cc:411 msgid "Select Article _Body" msgstr "Выделить содержимое статьи" #: ../pan/gui/actions.cc:416 #, fuzzy msgid "Edit _Preferences" msgstr "Pan: Настройки" #: ../pan/gui/actions.cc:421 #, fuzzy msgid "Edit Selected _Group's Preferences" msgstr "Pan: Настройки" #: ../pan/gui/actions.cc:426 ../pan/gui/post-ui.cc:434 #, fuzzy msgid "Edit P_osting Profiles" msgstr "Сбой отправки статьи: %s" #: ../pan/gui/actions.cc:431 #, fuzzy msgid "Edit _News Servers" msgstr "Правка других фильтров..." #: ../pan/gui/actions.cc:436 msgid "Jump to _Group Tab" msgstr "" #: ../pan/gui/actions.cc:441 #, fuzzy msgid "Jump to _Header Tab" msgstr "Другие заголовки" #: ../pan/gui/actions.cc:446 #, fuzzy msgid "Jump to _Body Tab" msgstr "Другие заголовки" #: ../pan/gui/actions.cc:451 msgid "_Rot13 Selected Text" msgstr "\"Закодировать\" выбранный текст с помощью Rot13" #: ../pan/gui/actions.cc:456 #, fuzzy msgid "Clear _Header Pane" msgstr "Показать панель заголовка" #: ../pan/gui/actions.cc:461 #, fuzzy msgid "Clear _Body Pane" msgstr "Показать панель группы" #: ../pan/gui/actions.cc:466 #, fuzzy msgid "Cache Article" msgstr "Кэшированная статья \"%s\"" #: ../pan/gui/actions.cc:471 #, fuzzy msgid "Read Article" msgstr "Показать прочитанные статьи" #: ../pan/gui/actions.cc:476 #, fuzzy msgid "Show Article Information" msgstr "Информация о профиле" #: ../pan/gui/actions.cc:481 msgid "Read _More" msgstr "" #: ../pan/gui/actions.cc:482 #, fuzzy msgid "Read More" msgstr "Читать" #: ../pan/gui/actions.cc:486 msgid "Read _Back" msgstr "" #: ../pan/gui/actions.cc:487 #, fuzzy msgid "Read Back" msgstr "Читать" #: ../pan/gui/actions.cc:491 #, fuzzy msgid "Next _Unread Group" msgstr "След. непрочитанная группа" #: ../pan/gui/actions.cc:496 #, fuzzy msgid "Next _Group" msgstr "След. группа" #: ../pan/gui/actions.cc:501 #, fuzzy msgid "Next _Unread Article" msgstr "След. непрочитанная статья" #: ../pan/gui/actions.cc:502 msgid "Next Unread Article" msgstr "След. непрочитанная статья" #: ../pan/gui/actions.cc:506 msgid "Next _Article" msgstr "След. статья" #: ../pan/gui/actions.cc:507 #, fuzzy msgid "Next Article" msgstr "След. статья" #: ../pan/gui/actions.cc:511 #, fuzzy msgid "Next _Watched Article" msgstr "След. статья" #: ../pan/gui/actions.cc:516 msgid "Next Unread _Thread" msgstr "След. непрочитанная подшивка" #: ../pan/gui/actions.cc:517 msgid "Next Unread Thread" msgstr "След. непрочитанная подшивка" #: ../pan/gui/actions.cc:521 msgid "Next Threa_d" msgstr "След. подшивка" #: ../pan/gui/actions.cc:526 msgid "Pre_vious Article" msgstr "Пред. статья" #: ../pan/gui/actions.cc:531 #, fuzzy msgid "Previous _Thread" msgstr "Пред. подшивка" #: ../pan/gui/actions.cc:536 #, fuzzy msgid "_Parent Article" msgstr "Печать статьи..." #: ../pan/gui/actions.cc:541 #, fuzzy msgid "Ignore _Author" msgstr "Игнорировать подшивки" #: ../pan/gui/actions.cc:545 #, fuzzy msgid "_Watch Thread" msgstr "Ожидаемые подшивки" #: ../pan/gui/actions.cc:550 #, fuzzy msgid "_Ignore Thread" msgstr "Игнорируемые подшивки" #: ../pan/gui/actions.cc:555 ../pan/gui/actions.cc:556 #, fuzzy msgid "_Toggle Flag On/Off for Thread" msgstr "Снять отметку с подшивок" #: ../pan/gui/actions.cc:560 ../pan/gui/actions.cc:561 #, fuzzy msgid "_Turn Flag Off for Thread" msgstr "Снять отметку с подшивок" #: ../pan/gui/actions.cc:565 ../pan/gui/actions.cc:566 #, fuzzy msgid "_Select All Flagged Threads" msgstr "Свернуть выбранные подшивки" #: ../pan/gui/actions.cc:570 ../pan/gui/actions.cc:571 #, fuzzy msgid "_Go to Next Flagged Thread" msgstr "След. непрочитанная подшивка" #: ../pan/gui/actions.cc:575 ../pan/gui/actions.cc:576 #, fuzzy msgid "_Go to Last Flagged Thread" msgstr "Свернуть выбранные подшивки" #: ../pan/gui/actions.cc:580 ../pan/gui/actions.cc:581 #, fuzzy msgid "_Invert Selection" msgstr "Выделение" #: ../pan/gui/actions.cc:585 msgid "Edit Article's Watch/Ignore/Score..." msgstr "" #: ../pan/gui/actions.cc:590 #, fuzzy msgid "Add a _Scoring Rule..." msgstr "Добавить новое правило." #: ../pan/gui/actions.cc:595 #, fuzzy msgid "Cance_l Article..." msgstr "Отмена статьи" #: ../pan/gui/actions.cc:600 #, fuzzy msgid "_Supersede Article..." msgstr "Правила..." #: ../pan/gui/actions.cc:605 #, fuzzy msgid "_Delete Article" msgstr "Удалить статью" #: ../pan/gui/actions.cc:610 #, fuzzy msgid "Clear Article Cache" msgstr "Кэш статей" #: ../pan/gui/actions.cc:615 #, fuzzy msgid "_Mark Article as Read" msgstr "Пометить выбранные статьи как прочитанные" #: ../pan/gui/actions.cc:620 #, fuzzy msgid "Mark Article as _Unread" msgstr "Пометить как непрочитанное" #: ../pan/gui/actions.cc:626 #, fuzzy msgid "_Mark Thread as Read" msgstr "Пометить подшивки как прочитанные" #: ../pan/gui/actions.cc:631 #, fuzzy msgid "Mark Thread as _Unread" msgstr "Пометить подшивки как непрочитанные" #: ../pan/gui/actions.cc:636 #, fuzzy msgid "_Post to Newsgroup" msgstr "Послать в группу новостей" #: ../pan/gui/actions.cc:637 #, fuzzy msgid "Post to Newsgroup" msgstr "Послать в группу новостей" #: ../pan/gui/actions.cc:641 #, fuzzy msgid "_Followup to Newsgroup" msgstr "Ответить в группу новостей" #: ../pan/gui/actions.cc:642 #, fuzzy msgid "Followup to Newsgroup" msgstr "Ответить в группу новостей" #: ../pan/gui/actions.cc:646 #, fuzzy msgid "_Reply to Author in Mail" msgstr "Автор" #: ../pan/gui/actions.cc:651 #, fuzzy msgid "_Pan Home Page" msgstr "Домашняя страница Pan..." #: ../pan/gui/actions.cc:656 #, fuzzy msgid "Give _Feedback or Report a Bug..." msgstr "Сообщить об ошибке..." #: ../pan/gui/actions.cc:661 msgid "_Tip Jar..." msgstr "" #: ../pan/gui/actions.cc:666 #, fuzzy msgid "_About" msgstr "О программе" #: ../pan/gui/actions.cc:671 msgid "Edit _SSL Certificates" msgstr "" #: ../pan/gui/actions.cc:685 #, fuzzy msgid "_Thread Headers" msgstr "Еще заголовки" #: ../pan/gui/actions.cc:686 #, fuzzy msgid "_Wrap Article Body" msgstr "Заполнение/Перенос строк в теле сообщения" #: ../pan/gui/actions.cc:687 msgid "Mute _Quoted Text" msgstr "Подавить цитируемый текст" #: ../pan/gui/actions.cc:688 #, fuzzy msgid "Show All _Headers in Body Pane" msgstr "Показывать все заголовки в панели статьи" #: ../pan/gui/actions.cc:689 #, fuzzy msgid "Show _Smilies as Graphics" msgstr "Показать предупреждение:" #: ../pan/gui/actions.cc:690 msgid "Show *Bold*, __Underlined__, and /Italic/" msgstr "" #: ../pan/gui/actions.cc:691 msgid "Size Pictures to _Fit" msgstr "" #: ../pan/gui/actions.cc:692 msgid "Use _Monospace Font" msgstr "" #: ../pan/gui/actions.cc:693 msgid "Set Focus to Images" msgstr "" #: ../pan/gui/actions.cc:694 msgid "Highlight _URLs" msgstr "" #: ../pan/gui/actions.cc:697 msgid "_Work Online" msgstr "" #: ../pan/gui/actions.cc:698 #, fuzzy msgid "_Tabbed Layout" msgstr "Выравнивание" #: ../pan/gui/actions.cc:699 #, fuzzy msgid "Show Group _Pane" msgstr "Показать панель группы" #: ../pan/gui/actions.cc:700 msgid "Show Hea_der Pane" msgstr "Показать панель заголовка" #: ../pan/gui/actions.cc:701 #, fuzzy msgid "Show Bod_y Pane" msgstr "Показать панель группы" #: ../pan/gui/actions.cc:702 msgid "Show _Toolbar" msgstr "" #: ../pan/gui/actions.cc:703 #, fuzzy msgid "Abbreviate Group Names" msgstr "Подписанные группы новостей" #: ../pan/gui/actions.cc:705 #, fuzzy msgid "Match Only _Unread Articles" msgstr "Показать непрочитанные статьи" #: ../pan/gui/actions.cc:705 #, fuzzy msgid "Match Only Unread Articles" msgstr "Показать непрочитанные статьи" #: ../pan/gui/actions.cc:706 #, fuzzy msgid "Match Only _Cached Articles" msgstr "Показать ожидаемые статьи" #: ../pan/gui/actions.cc:706 #, fuzzy msgid "Match Only Cached Articles" msgstr "Показать ожидаемые статьи" #: ../pan/gui/actions.cc:707 #, fuzzy msgid "Match Only _Complete Articles" msgstr "Показать полные двоичные статьи" #: ../pan/gui/actions.cc:707 #, fuzzy msgid "Match Only Complete Articles" msgstr "Показать полные двоичные статьи" #: ../pan/gui/actions.cc:708 #, fuzzy msgid "Match Only _My Articles" msgstr "Показать совпадающие статьи" #: ../pan/gui/actions.cc:708 #, fuzzy msgid "Match Only My Articles" msgstr "Показать совпадающие статьи" #: ../pan/gui/actions.cc:709 #, fuzzy msgid "Match Only _Watched Articles" msgstr "Показать ожидаемые статьи" #: ../pan/gui/actions.cc:709 #, fuzzy msgid "Match Only Watched Articles" msgstr "Показать ожидаемые статьи" #: ../pan/gui/actions.cc:711 msgid "Match Scores of 9999 (_Watched)" msgstr "" #: ../pan/gui/actions.cc:712 msgid "Match Scores of 5000...9998 (_High)" msgstr "" #: ../pan/gui/actions.cc:713 msgid "Match Scores of 1...4999 (Me_dium)" msgstr "" #: ../pan/gui/actions.cc:714 msgid "Match Scores of 0 (_Normal)" msgstr "" #: ../pan/gui/actions.cc:715 msgid "Match Scores of -9998...-1 (_Low)" msgstr "" #: ../pan/gui/actions.cc:716 msgid "Match Scores of -9999 (_Ignored)" msgstr "" #: ../pan/gui/actions.cc:718 msgid "Enable/Disable All _Rules" msgstr "" #: ../pan/gui/actions.cc:744 #, fuzzy msgid "Show Matching _Articles" msgstr "Показать совпадающие статьи" #: ../pan/gui/actions.cc:745 #, fuzzy msgid "Show Matching Articles' _Threads" msgstr "Показать совпадающие статьи" #: ../pan/gui/actions.cc:746 #, fuzzy msgid "Show Matching Articles' _Subthreads" msgstr "Показать совпадающие статьи" #: ../pan/gui/body-pane.cc:1011 #, fuzzy, c-format msgid "Unnamed File" msgstr "Файл подписи:" #: ../pan/gui/body-pane.cc:1092 ../pan/gui/gui.cc:1864 #: ../pan/gui/header-pane.cc:1188 ../pan/gui/header-pane.cc:1617 #: ../pan/gui/post-ui.cc:2496 ../pan/gui/prefs-ui.cc:833 #: ../pan/gui/score-add-ui.cc:139 msgid "Subject" msgstr "Тема" #: ../pan/gui/body-pane.cc:1094 ../pan/gui/gui.cc:1864 #, fuzzy msgid "From" msgstr "От:" #: ../pan/gui/body-pane.cc:1096 ../pan/gui/gui.cc:1865 #: ../pan/gui/header-pane.cc:1695 ../pan/gui/log-ui.cc:305 #: ../pan/gui/prefs-ui.cc:829 msgid "Date" msgstr "Дата" #: ../pan/gui/body-pane.cc:1103 #, fuzzy msgid "Newsgroups" msgstr "Группа новостей" #: ../pan/gui/body-pane.cc:1108 #, fuzzy msgid "Followup-To" msgstr "Ответить в группу:" #: ../pan/gui/body-pane.cc:1118 #, fuzzy msgid "Reply-To" msgstr "Обратный адрес:" #: ../pan/gui/body-pane.cc:1160 #, fuzzy msgid " from " msgstr "От:" #: ../pan/gui/body-pane.cc:1162 #, fuzzy msgid " at " msgstr "Дата: " #: ../pan/gui/body-pane.cc:1264 #, c-format msgid "" "This is a PGP-Signed message.\n" "\n" "Signer : %s ('%s')\n" "Valid until : %s\n" "Created on : %s" msgstr "" #: ../pan/gui/body-pane.cc:1269 msgid "always" msgstr "" #: ../pan/gui/body-pane.cc:1485 msgid "Copy _URL" msgstr "" #: ../pan/gui/body-pane.cc:1680 #, fuzzy msgid "Save attachment as ...." msgstr "Открыть вложения..." #: ../pan/gui/body-pane.cc:1683 #, fuzzy msgid "Save all attachments" msgstr "Не сохранять вложения" #. add a toolbar for attachments #: ../pan/gui/body-pane.cc:1753 msgid "Attachments" msgstr "Вложения" #. update the titlebar #: ../pan/gui/dl-headers-ui.cc:106 ../pan/gui/gui.cc:973 #: ../pan/gui/gui.cc:1592 ../pan/gui/gui.cc:1893 #: ../pan/gui/score-add-ui.cc:602 msgid "Pan" msgstr "" #: ../pan/gui/dl-headers-ui.cc:112 #, fuzzy, c-format msgid "%d Group" msgid_plural "%d Groups" msgstr[0] "Группы" msgstr[1] "Группы" #: ../pan/gui/dl-headers-ui.cc:135 #, fuzzy msgid "Get the last N _days' headers: " msgstr "Наиболее свежие заголовки" #: ../pan/gui/dl-headers-ui.cc:143 #, fuzzy msgid "Get _new headers" msgstr "новые заголовки" #: ../pan/gui/dl-headers-ui.cc:147 #, fuzzy msgid "Get _all headers" msgstr "все заголовки" #: ../pan/gui/dl-headers-ui.cc:151 #, fuzzy msgid "Get the _latest N headers: " msgstr "Наиболее свежие заголовки" #: ../pan/gui/e-action-combo-box.c:388 ../pan/gui/prefs-ui.cc:826 #, fuzzy msgid "Action" msgstr "Действия" #: ../pan/gui/e-action-combo-box.c:389 msgid "A GtkRadioAction" msgstr "" #: ../pan/gui/e-charset.c:51 ../pan/gui/task-pane.cc:518 msgid "Unknown" msgstr "Неизвестно" #: ../pan/gui/e-charset.c:52 msgid "Arabic" msgstr "" #: ../pan/gui/e-charset.c:53 msgid "Baltic" msgstr "" #: ../pan/gui/e-charset.c:54 msgid "Central European" msgstr "" #: ../pan/gui/e-charset.c:55 #, fuzzy msgid "Chinese" msgstr "Строки" #: ../pan/gui/e-charset.c:56 msgid "Cyrillic" msgstr "" #: ../pan/gui/e-charset.c:57 msgid "Greek" msgstr "" #: ../pan/gui/e-charset.c:58 msgid "Hebrew" msgstr "" #: ../pan/gui/e-charset.c:59 #, fuzzy msgid "Japanese" msgstr "pan.sent" #: ../pan/gui/e-charset.c:60 msgid "Korean" msgstr "" #: ../pan/gui/e-charset.c:61 msgid "Thai" msgstr "" #: ../pan/gui/e-charset.c:62 msgid "Turkish" msgstr "" #: ../pan/gui/e-charset.c:63 msgid "Unicode" msgstr "" #: ../pan/gui/e-charset.c:64 msgid "Western European" msgstr "" #: ../pan/gui/e-charset.c:65 msgid "Western European, New" msgstr "" #: ../pan/gui/e-charset.c:84 ../pan/gui/e-charset.c:85 #: ../pan/gui/e-charset.c:86 msgid "Traditional" msgstr "" #: ../pan/gui/e-charset.c:87 ../pan/gui/e-charset.c:88 #: ../pan/gui/e-charset.c:89 ../pan/gui/e-charset.c:90 msgid "Simplified" msgstr "" #: ../pan/gui/e-charset.c:93 msgid "Ukrainian" msgstr "" #: ../pan/gui/e-charset.c:96 msgid "Visual" msgstr "" #: ../pan/gui/e-charset-combo-box.c:93 ../pan/gui/gui.cc:2058 #: ../pan/gui/post-ui.cc:519 ../pan/gui/prefs-ui.cc:737 msgid "Character Encoding" msgstr "" #: ../pan/gui/e-charset-combo-box.c:117 msgid "Enter the character set to use" msgstr "" #: ../pan/gui/e-charset-combo-box.c:336 msgid "Other..." msgstr "" #: ../pan/gui/e-cte-dialog.c:78 #, fuzzy msgid "Default encoding" msgstr "Декодирование \"%s\"" #: ../pan/gui/e-cte-dialog.c:80 #, fuzzy msgid "7Bit Encoding" msgstr "Неизвестное кодирование" #: ../pan/gui/e-cte-dialog.c:82 #, fuzzy msgid "8Bit Encoding" msgstr "Неизвестное кодирование" #: ../pan/gui/e-cte-dialog.c:84 #, fuzzy msgid "BASE64 Encoding" msgstr "Неизвестное кодирование" #: ../pan/gui/e-cte-dialog.c:86 #, fuzzy msgid "Quoted-Printable Encoding" msgstr "Показать панель группы" #: ../pan/gui/group-pane.cc:500 #, fuzzy msgid "Group" msgstr "Группы" #: ../pan/gui/group-pane.cc:501 #, fuzzy msgid "Group (regex)" msgstr "Свойства группы" #: ../pan/gui/group-pane.cc:913 msgid "Subscribed Groups" msgstr "Подписанные группы" #: ../pan/gui/group-pane.cc:914 #, fuzzy msgid "Other Groups" msgstr "Новые группы" #: ../pan/gui/group-pane.cc:954 ../pan/gui/score-view-ui.cc:157 msgid "Name" msgstr "Имя" #: ../pan/gui/group-prefs-dialog.cc:156 #, fuzzy msgid "No Profiles defined in Edit|Posting Profiles." msgstr "Сбой отправки статьи: %s" #: ../pan/gui/group-prefs-dialog.cc:231 #, fuzzy msgid "Pan: Group Preferences" msgstr "Pan: Настройки" #: ../pan/gui/group-prefs-dialog.cc:247 #, fuzzy, c-format msgid "Properties for Groups" msgstr "Свойства..." #: ../pan/gui/group-prefs-dialog.cc:249 #, fuzzy, c-format msgid "Properties for %s" msgstr "Свойства..." #: ../pan/gui/group-prefs-dialog.cc:257 msgid "Character _encoding:" msgstr "" #: ../pan/gui/group-prefs-dialog.cc:259 #, fuzzy msgid "Directory for Saving Attachments" msgstr "Каталог для сохранения вложенных файлов" #: ../pan/gui/group-prefs-dialog.cc:269 #, fuzzy msgid "Directory for _saving attachments:" msgstr "Каталог для сохранения вложенных файлов" #: ../pan/gui/group-prefs-dialog.cc:271 #, fuzzy msgid "Posting _profile:" msgstr "Pan: Профиль" #: ../pan/gui/group-prefs-dialog.cc:277 msgid "Spellchecker _language:" msgstr "" #: ../pan/gui/gui.cc:273 msgid "Open the Task Manager" msgstr "Открыть окно диспетчера задач." #: ../pan/gui/gui.cc:301 #, fuzzy msgid "Open the Event Log" msgstr "Открыть журнал состояния" #: ../pan/gui/gui.cc:561 msgid "Save NZB's Files" msgstr "" #: ../pan/gui/gui.cc:588 msgid "Untitled.nzb" msgstr "" #: ../pan/gui/gui.cc:590 #, fuzzy msgid "Save NZB File as..." msgstr "Импортирование .newsrc..." #: ../pan/gui/gui.cc:757 #, fuzzy msgid "Import NZB Files" msgstr "Импортирование .newsrc..." #: ../pan/gui/gui.cc:765 ../pan/gui/post-ui.cc:3197 #, fuzzy msgid "NZB Files" msgstr "Не удалось" #: ../pan/gui/gui.cc:770 #, fuzzy msgid "All Files" msgstr "Не удалось" #: ../pan/gui/gui.cc:1258 #, fuzzy msgid "Unable to supersede article." msgstr "Правила..." #: ../pan/gui/gui.cc:1259 ../pan/gui/gui.cc:1333 msgid "The article doesn't match any of your posting profiles." msgstr "" #: ../pan/gui/gui.cc:1306 msgid "Revise and send this article to replace the old one." msgstr "" #: ../pan/gui/gui.cc:1307 ../pan/gui/gui.cc:1370 msgid "Be patient! It will take time for your changes to take effect." msgstr "" #: ../pan/gui/gui.cc:1332 #, fuzzy msgid "Unable to cancel article." msgstr "Не удалось изменить режим файла" #: ../pan/gui/gui.cc:1369 msgid "Send this article to ask your server to cancel your other one." msgstr "" #: ../pan/gui/gui.cc:1387 msgid "You marked some articles for deletion" msgstr "" #: ../pan/gui/gui.cc:1388 msgid "Are you sure you want to delete them?" msgstr "" #: ../pan/gui/gui.cc:1413 #, fuzzy msgid "Always trust" msgstr "Внутренняя ошибка" #: ../pan/gui/gui.cc:1416 msgid "Do you want to accept it permanently (deletable afterwards) ?" msgstr "" #: ../pan/gui/gui.cc:1595 msgid "Copyright \\u00A9 2002-2012 Charles Kerr and others" msgstr "" #: ../pan/gui/gui.cc:1600 msgid "translator-credits" msgstr "" #: ../pan/gui/gui.cc:1709 #, fuzzy msgid "_1. Group Pane" msgstr "Показать панель группы" #: ../pan/gui/gui.cc:1710 #, fuzzy msgid "_2. Header Pane" msgstr "Показать панель заголовка" #: ../pan/gui/gui.cc:1711 msgid "_3. Body Pane" msgstr "" #: ../pan/gui/gui.cc:1800 ../pan/gui/gui.cc:1815 msgid " Bytes" msgstr "" #: ../pan/gui/gui.cc:1803 msgid " KB" msgstr "" #: ../pan/gui/gui.cc:1806 msgid " MB" msgstr "" #: ../pan/gui/gui.cc:1809 msgid " GB" msgstr "" #: ../pan/gui/gui.cc:1812 msgid " TB" msgstr "" #: ../pan/gui/gui.cc:1844 #, fuzzy, c-format msgid "This article is complete with %d part." msgid_plural "This article has all %d parts." msgstr[0] "статья содержит %s двоичных вложений" msgstr[1] "статья содержит %s двоичных вложений" #: ../pan/gui/gui.cc:1846 #, fuzzy, c-format msgid "This article is missing %d part." msgid_plural "This article is missing %d of its %d parts:" msgstr[0] "статья содержит %s двоичных вложений" msgstr[1] "статья содержит %s двоичных вложений" #: ../pan/gui/gui.cc:1865 ../pan/gui/header-pane.cc:1190 msgid "Message-ID" msgstr "ID cообщения" #: ../pan/gui/gui.cc:1866 ../pan/gui/header-pane.cc:1665 #: ../pan/gui/prefs-ui.cc:830 msgid "Lines" msgstr "Строки" #: ../pan/gui/gui.cc:1866 msgid "Size" msgstr "" #: ../pan/gui/gui.cc:1867 ../pan/gui/header-pane.cc:1680 #: ../pan/gui/prefs-ui.cc:828 msgid "Bytes" msgstr "" #: ../pan/gui/gui.cc:1917 msgid "" "Error loading iconv library. Some Charsets in the GUI will not be able to be " "encoded." msgstr "" #: ../pan/gui/gui.cc:2059 #, fuzzy msgid "Body Pane Encoding" msgstr "Показать панель группы" #: ../pan/gui/gui.cc:2090 ../pan/gui/task-pane.cc:569 #, c-format msgid "Offline" msgstr "Отключиться" #: ../pan/gui/gui.cc:2094 #, fuzzy, c-format msgid "Closing %d connection" msgid_plural "Closing %d connections" msgstr[0] "Нет подключений" msgstr[1] "Нет подключений" #: ../pan/gui/gui.cc:2096 ../pan/gui/gui.cc:2126 #, c-format msgid "No Connections" msgstr "Нет подключений" #: ../pan/gui/gui.cc:2100 #, fuzzy, c-format msgid "Connecting" msgstr "Нет подключений" #: ../pan/gui/gui.cc:2113 #, c-format msgid "%s: %d idle, %d active @ %.1f KiBps" msgstr "" #: ../pan/gui/gui.cc:2169 #, c-format msgid "No Tasks" msgstr "Нет задач" #: ../pan/gui/gui.cc:2171 ../pan/gui/prefs-ui.cc:1047 #, fuzzy msgid "Tasks" msgstr "Нет задач" #: ../pan/gui/gui.cc:2182 ../pan/gui/task-pane.cc:435 #, c-format msgid "%lu tasks, %s, %.1f KiBps, ETA %d:%02d:%02d" msgstr "" #: ../pan/gui/gui.cc:2234 msgid "" "Pan is now offline. Please see \"File|Event Log\" and correct the problem, " "then use \"File|Work Online\" to continue." msgstr "" #: ../pan/gui/header-pane.cc:1186 #, fuzzy msgid "Subject or Author" msgstr "Тема: " #: ../pan/gui/header-pane.cc:1187 #, fuzzy msgid "Sub or Auth (regex)" msgstr "Тема: " #: ../pan/gui/header-pane.cc:1189 ../pan/gui/header-pane.cc:1649 #: ../pan/gui/prefs-ui.cc:827 ../pan/gui/score-add-ui.cc:140 msgid "Author" msgstr "Автор" #: ../pan/gui/header-pane.cc:1634 ../pan/gui/prefs-ui.cc:831 msgid "Score" msgstr "" #: ../pan/gui/log-ui.cc:103 msgid "Save Event List" msgstr "" #: ../pan/gui/log-ui.cc:256 #, fuzzy msgid "Pan: Events" msgstr "Pan: Правила" #: ../pan/gui/log-ui.cc:315 msgid "Message" msgstr "Сообщение" #: ../pan/gui/pan.cc:330 msgid "Maximize" msgstr "" #: ../pan/gui/pan.cc:383 msgid "An Error has occurred!" msgstr "" #: ../pan/gui/pan.cc:397 #, fuzzy msgid "New Articles!" msgstr "Показать новые статьи" #: ../pan/gui/pan.cc:398 msgid "" "There are new\n" "articles available." msgstr "" #: ../pan/gui/pan.cc:465 msgid "Toggle on/offline" msgstr "" #: ../pan/gui/pan.cc:513 msgid "" "Thank you for trying Pan!\n" " \n" "To start newsreading, first Add a Server." msgstr "" #: ../pan/gui/pan.cc:595 msgid "" "General Options\n" " -h, --help Show this usage page.\n" " --verbose Be verbose (in non-GUI mode).\n" "\n" "URL Options\n" " --no-gui On news:message-id, dump the article to stdout.\n" "\n" "NZB Batch Options\n" " --nzb file1 file2 ... Process nzb files without launching all of Pan.\n" " -o path, --output=path Path to save attachments listed in the nzb " "files.\n" " --no-gui Only show console output, not the download " "queue.\n" msgstr "" #: ../pan/gui/pan.cc:867 msgid "Error: --no-gui used without nzb files or news:message-id." msgstr "" #: ../pan/gui/pan.cc:871 #, fuzzy, c-format msgid "Pan %s started" msgstr "Pan %s запущен" #: ../pan/gui/pan.cc:890 msgid "Please configure Pan's news servers before using it as an nzb client." msgstr "" #: ../pan/gui/pan.cc:1009 msgid "Pan notification" msgstr "" #: ../pan/gui/post-ui.cc:186 #, c-format msgid "Upload Queue : %ld Tasks, %ld KB (~ %.2f MB) total ." msgstr "" #: ../pan/gui/post-ui.cc:286 #, fuzzy, c-format msgid "Error setting custom spellchecker: %s" msgstr "Ошибка чтения файла \"%s\"" #: ../pan/gui/post-ui.cc:291 ../pan/gui/post-ui.cc:300 #, fuzzy, c-format msgid "Error setting spellchecker: %s" msgstr "Ошибка чтения файла \"%s\"" #: ../pan/gui/post-ui.cc:419 #, fuzzy msgid "_Profile" msgstr "Профиль" #: ../pan/gui/post-ui.cc:420 #, fuzzy msgid "Set Editor" msgstr "Внутренняя ошибка" #: ../pan/gui/post-ui.cc:422 #, fuzzy msgid "_Send Article" msgstr "Печать статьи..." #: ../pan/gui/post-ui.cc:422 #, fuzzy msgid "Send Article Now" msgstr "Отправить сейчас" #: ../pan/gui/post-ui.cc:423 #, fuzzy msgid "_Send and Save Articles to NZB" msgstr "Показать сохраненные статьи" #: ../pan/gui/post-ui.cc:423 #, fuzzy msgid "Send and Save Articles to NZB" msgstr "Показать сохраненные статьи" #: ../pan/gui/post-ui.cc:424 msgid "Set Character _Encoding..." msgstr "" #: ../pan/gui/post-ui.cc:425 msgid "Set Content _Transfer Encoding..." msgstr "" #: ../pan/gui/post-ui.cc:426 #, fuzzy msgid "Sa_ve Draft" msgstr "Сохранить профиль" #: ../pan/gui/post-ui.cc:426 msgid "Save as a Draft for Future Posting" msgstr "" #: ../pan/gui/post-ui.cc:427 #, fuzzy msgid "_Open Draft..." msgstr "Сохранить профиль" #: ../pan/gui/post-ui.cc:427 #, fuzzy msgid "Open an Article Draft" msgstr "Сортировать статьи" #: ../pan/gui/post-ui.cc:432 msgid "_Rot13" msgstr "" #: ../pan/gui/post-ui.cc:432 msgid "Rot13 Selected Text" msgstr "\"Закодировать\" выбранный текст с помощью Rot13" #: ../pan/gui/post-ui.cc:433 #, fuzzy msgid "Run _Editor" msgstr "Внутренняя ошибка" #: ../pan/gui/post-ui.cc:433 #, fuzzy msgid "Run Editor" msgstr "Внутренняя ошибка" #: ../pan/gui/post-ui.cc:435 msgid "Add _Files to Queue" msgstr "" #: ../pan/gui/post-ui.cc:435 msgid "Add Files to Queue" msgstr "" #: ../pan/gui/post-ui.cc:450 ../pan/gui/post-ui.cc:451 #, fuzzy msgid "Remove from Queue" msgstr "Сервер новостей" #: ../pan/gui/post-ui.cc:455 ../pan/gui/post-ui.cc:456 #, fuzzy msgid "Clear List" msgstr "Очистить" #: ../pan/gui/post-ui.cc:460 ../pan/gui/post-ui.cc:461 #, fuzzy msgid "Select Needed Parts" msgstr "Выбрать все группы" #: ../pan/gui/post-ui.cc:465 ../pan/gui/post-ui.cc:466 #: ../pan/gui/task-pane.cc:636 ../pan/gui/task-pane.cc:637 msgid "Move Up" msgstr "Поднять" #: ../pan/gui/post-ui.cc:470 ../pan/gui/post-ui.cc:471 #: ../pan/gui/task-pane.cc:641 ../pan/gui/task-pane.cc:642 msgid "Move Down" msgstr "Опустить" #: ../pan/gui/post-ui.cc:475 ../pan/gui/post-ui.cc:476 #, fuzzy msgid "Move to Top" msgstr "Переместить в папку" #: ../pan/gui/post-ui.cc:480 ../pan/gui/post-ui.cc:481 #, fuzzy msgid "Move to Bottom" msgstr "Переместить в папку" #: ../pan/gui/post-ui.cc:488 #, fuzzy msgid "_Wrap Text" msgstr "Перенос строк" #: ../pan/gui/post-ui.cc:488 #, fuzzy msgid "Wrap Text" msgstr "Перенос строк" #: ../pan/gui/post-ui.cc:489 #, fuzzy msgid "Always Run Editor" msgstr "Внутренняя ошибка" #: ../pan/gui/post-ui.cc:490 msgid "Remember Character Encoding for this Group" msgstr "" #: ../pan/gui/post-ui.cc:491 #, fuzzy msgid "Thread Attached Replies" msgstr "Показать статьи, не являющиеся ни ожидаемыми ни игнорируемыми" #: ../pan/gui/post-ui.cc:492 #, fuzzy msgid "PGP-Encrypt the Message" msgstr "Создать Message-ID" #: ../pan/gui/post-ui.cc:493 #, fuzzy msgid "PGP-Sign the Message" msgstr "Отправить это сообщение сейчас" #: ../pan/gui/post-ui.cc:494 msgid "Check _Spelling" msgstr "" #: ../pan/gui/post-ui.cc:520 #, fuzzy msgid "New Article's Encoding:" msgstr "Статья прочитана" #: ../pan/gui/post-ui.cc:530 #, fuzzy msgid "Content Transfer Encoding" msgstr "Показать панель группы" #: ../pan/gui/post-ui.cc:531 #, fuzzy msgid "New Article's Content Transfer Encoding:" msgstr "Статья прочитана" #: ../pan/gui/post-ui.cc:711 msgid "Your changes will be lost!" msgstr "" #: ../pan/gui/post-ui.cc:712 msgid "Close this window and lose your changes?" msgstr "" #: ../pan/gui/post-ui.cc:757 ../pan/gui/post-ui.cc:796 msgid "There were problems with this post." msgstr "" #: ../pan/gui/post-ui.cc:759 ../pan/gui/post-ui.cc:798 #: ../pan/gui/post-ui.cc:861 msgid "Go Back" msgstr "" #: ../pan/gui/post-ui.cc:761 msgid "Post Anyway" msgstr "" #. Prompt the user #: ../pan/gui/post-ui.cc:790 #, c-format msgid "" "Message uses characters not specified in charset '%s' - possibly use '%s' " msgstr "" #: ../pan/gui/post-ui.cc:813 msgid "Go _Online" msgstr "" #: ../pan/gui/post-ui.cc:860 msgid "The file queue is empty, so no files can be saved." msgstr "" #: ../pan/gui/post-ui.cc:1019 msgid "" "No posting server is set for this posting profile.\n" "Please edit the profile via Edit|Manage Posting Profiles." msgstr "" #: ../pan/gui/post-ui.cc:1054 #, fuzzy msgid "Pan is Offline." msgstr "Отключиться" #: ../pan/gui/post-ui.cc:1055 msgid "Go online to post the article?" msgstr "" #: ../pan/gui/post-ui.cc:1102 #, c-format msgid "" "Error signing/encrypting your message. Perhaps you misspelled your email-" "address (%s) ?" msgstr "" #: ../pan/gui/post-ui.cc:1267 msgid "Error opening temporary file" msgstr "" #: ../pan/gui/post-ui.cc:1279 #, c-format msgid "Error writing article to temporary file: %s" msgstr "" #: ../pan/gui/post-ui.cc:1298 #, c-format msgid "Error parsing \"external editor\" command line: %s (Command was: %s)" msgstr "" #: ../pan/gui/post-ui.cc:1339 #, c-format msgid "Error starting external editor: %s" msgstr "" #: ../pan/gui/post-ui.cc:1395 #, fuzzy msgid "Open Draft Article" msgstr "Сортировать статьи" #: ../pan/gui/post-ui.cc:1606 #, fuzzy msgid "Save Draft Article" msgstr "Сохранить статьи" #: ../pan/gui/post-ui.cc:1803 #, fuzzy, c-format msgid "Couldn't parse signature command \"%s\": %s" msgstr "Не удалось создать каталог \"%s\": %s" #: ../pan/gui/post-ui.cc:1839 #, fuzzy msgid "Couldn't convert signature to UTF-8." msgstr "Не удалось создать каталог \"%s\": %s" #: ../pan/gui/post-ui.cc:2334 #, fuzzy msgid "F_rom" msgstr "От:" #: ../pan/gui/post-ui.cc:2352 #, fuzzy msgid "_Subject" msgstr "Тема" #: ../pan/gui/post-ui.cc:2365 #, fuzzy msgid "_Newsgroups" msgstr "Группа новостей" #: ../pan/gui/post-ui.cc:2379 #, fuzzy msgid "Mail _To" msgstr "Отправить:" #: ../pan/gui/post-ui.cc:2481 #, fuzzy msgid "Delete from Queue" msgstr "Очистить очередь" #: ../pan/gui/post-ui.cc:2494 msgid "No." msgstr "" #: ../pan/gui/post-ui.cc:2498 ../pan/gui/post-ui.cc:2592 #: ../pan/gui/post-ui.cc:2633 #, fuzzy msgid "Filename" msgstr "Нет имени файла" #: ../pan/gui/post-ui.cc:2500 msgid "Size (kB)" msgstr "" #: ../pan/gui/post-ui.cc:2600 #, fuzzy msgid "The current filename" msgstr "Использовать другое имя файла" #: ../pan/gui/post-ui.cc:2604 #, fuzzy msgid "Subject Line" msgstr "Тема" #: ../pan/gui/post-ui.cc:2612 msgid "The current Subject Line" msgstr "" #: ../pan/gui/post-ui.cc:2626 msgid "No. " msgstr "" #: ../pan/gui/post-ui.cc:2630 msgid "Enable/Disable" msgstr "" #: ../pan/gui/post-ui.cc:2664 #, fuzzy msgid "Follo_wup-To" msgstr "Ответить в группу:" #. i18n: "poster" is a key used by many newsreaders. probably safest to keep this key in english. #: ../pan/gui/post-ui.cc:2673 #, fuzzy msgid "" "The newsgroups where replies to your message should go. This is only needed " "if it differs from the \"Newsgroups\" header.\n" "\n" "To direct all replies to your email address, use \"Followup-To: poster\"" msgstr "" "Почтовый адрес куда должны приходить ответы на ваше сообщение. Нужен только " "если отличается от поля \"От:\" заголовка." #: ../pan/gui/post-ui.cc:2679 #, fuzzy msgid "_Reply-To" msgstr "Обратный адрес:" #: ../pan/gui/post-ui.cc:2687 #, fuzzy msgid "" "The email account where mail replies to your posted message should go. This " "is only needed if it differs from the \"From\" header." msgstr "" "Почтовый адрес куда должны приходить ответы на ваше сообщение. Нужен только " "если отличается от поля \"От:\" заголовка." #: ../pan/gui/post-ui.cc:2693 #, fuzzy msgid "_Custom Headers" msgstr "Еще заголовки" #: ../pan/gui/post-ui.cc:2717 #, fuzzy msgid "Add \"_User-Agent\" header" msgstr "Не добавлять заголовок идентификации \"User-Agent\"" #: ../pan/gui/post-ui.cc:2724 #, fuzzy msgid "Add \"Message-_Id\" header" msgstr "Сообщение: " #: ../pan/gui/post-ui.cc:2855 #, fuzzy msgid "Select Parts" msgstr "Выбрать все группы" #: ../pan/gui/post-ui.cc:2866 msgid "_Parts" msgstr "" #: ../pan/gui/post-ui.cc:3022 #, fuzzy msgid "Post Article" msgstr "Загружает статью" #: ../pan/gui/post-ui.cc:3043 #, fuzzy msgid "_Message" msgstr "Сообщение" #: ../pan/gui/post-ui.cc:3044 #, fuzzy msgid "More _Headers" msgstr "Еще заголовки" #: ../pan/gui/post-ui.cc:3045 #, fuzzy msgid "File _Queue" msgstr "Очистить очередь" #: ../pan/gui/post-ui.cc:3077 ../pan/gui/profiles-dialog.cc:478 #, no-c-format msgid "On %d, %n wrote:" msgstr "В письме %d, %n написал:" #: ../pan/gui/post-ui.cc:3106 msgid "Add files to queue" msgstr "" #: ../pan/gui/post-ui.cc:3184 msgid "Save Upload Queue as NZB File" msgstr "" #: ../pan/gui/prefs.cc:343 #, fuzzy, c-format msgid "Couldn't parse %s color \"%s\"" msgstr "Невозможно выбрать группу \"%s\"" #: ../pan/gui/prefs-ui.cc:120 msgid "Grab Key" msgstr "" #: ../pan/gui/prefs-ui.cc:126 #, c-format msgid "" "Press the combination of the keys\n" "you want to use for \"%s\"." msgstr "" #: ../pan/gui/prefs-ui.cc:166 #, fuzzy msgid "Edit Hotkey" msgstr "Правка фильтров" #: ../pan/gui/prefs-ui.cc:228 msgid "Error: Shortkey is invalid!" msgstr "" #: ../pan/gui/prefs-ui.cc:244 #, fuzzy msgid "Error: Shortkey already exists!" msgstr "Папка \"%s\" уже существует." #: ../pan/gui/prefs-ui.cc:535 #, fuzzy msgid "Show only icons" msgstr "Информация о профиле" #: ../pan/gui/prefs-ui.cc:536 #, fuzzy msgid "Show only text" msgstr "Показать панель группы" #: ../pan/gui/prefs-ui.cc:537 #, fuzzy msgid "Show icons and text" msgstr "Сохранить вложение в:" #: ../pan/gui/prefs-ui.cc:576 #, fuzzy msgid "Use GNOME Preferences" msgstr "Pan: Настройки" #: ../pan/gui/prefs-ui.cc:577 #, fuzzy msgid "Use KDE Preferences" msgstr "Pan: Настройки" #: ../pan/gui/prefs-ui.cc:578 #, fuzzy msgid "Use OS X Preferences" msgstr "Pan: Настройки" #: ../pan/gui/prefs-ui.cc:579 #, fuzzy msgid "Use Windows Preferences" msgstr "Pan: Настройки" #: ../pan/gui/prefs-ui.cc:580 #, fuzzy msgid "Custom Command:" msgstr "Команда печати:" #: ../pan/gui/prefs-ui.cc:632 msgid "Disabled" msgstr "" #: ../pan/gui/prefs-ui.cc:633 msgid "Only new (Score == 0)" msgstr "" #: ../pan/gui/prefs-ui.cc:634 msgid "9999 or more" msgstr "" #: ../pan/gui/prefs-ui.cc:635 msgid "5000 to 9998" msgstr "" #: ../pan/gui/prefs-ui.cc:636 msgid "1 to 4999" msgstr "" #: ../pan/gui/prefs-ui.cc:637 msgid "-9998 to -1" msgstr "" #: ../pan/gui/prefs-ui.cc:638 msgid "-9999 or less" msgstr "" #: ../pan/gui/prefs-ui.cc:702 #, c-format msgid "Select default global charset. Current setting : %s ." msgstr "" #: ../pan/gui/prefs-ui.cc:738 #, fuzzy msgid "Global Charset Settings" msgstr "Глобальные настройки" #: ../pan/gui/prefs-ui.cc:832 ../pan/gui/task-pane.cc:770 #, fuzzy msgid "State" msgstr "Состояние" #: ../pan/gui/prefs-ui.cc:866 msgid "Enabled" msgstr "" #: ../pan/gui/prefs-ui.cc:870 #, fuzzy msgid "Column Name" msgstr "Ваше имя" #: ../pan/gui/prefs-ui.cc:908 msgid "Pan: Preferences" msgstr "Pan: Настройки" #: ../pan/gui/prefs-ui.cc:923 msgid "Mouse" msgstr "" #: ../pan/gui/prefs-ui.cc:925 msgid "Single-click activates, rather than selects, _groups" msgstr "" #: ../pan/gui/prefs-ui.cc:927 msgid "Single-click activates, rather than selects, _articles" msgstr "" #: ../pan/gui/prefs-ui.cc:930 #, fuzzy msgid "Groups" msgstr "Группы" #: ../pan/gui/prefs-ui.cc:932 #, fuzzy msgid "Get new headers in subscribed groups on _startup" msgstr "Получить новые заголовки в группах подписки" #: ../pan/gui/prefs-ui.cc:934 #, fuzzy msgid "Get new headers when _entering group" msgstr "Получить новые статьи в выбранных группах" #: ../pan/gui/prefs-ui.cc:936 msgid "Mark entire group _read when leaving group" msgstr "" #: ../pan/gui/prefs-ui.cc:938 msgid "Mark entire group read before getting _new headers" msgstr "" #: ../pan/gui/prefs-ui.cc:940 #, fuzzy msgid "E_xpand all threads when entering group" msgstr "Получить новые статьи в выбранных группах" #: ../pan/gui/prefs-ui.cc:945 #, fuzzy msgid "Articles" msgstr "Статьи" #: ../pan/gui/prefs-ui.cc:947 #, fuzzy msgid "Space selects next article rather than next unread" msgstr "Сохранить выбранные статьи и их вложения" #: ../pan/gui/prefs-ui.cc:949 #, fuzzy msgid "Expand threads upon selection" msgstr "Добавить подшивки к выделению" #: ../pan/gui/prefs-ui.cc:951 msgid "Always show article deletion confirmation dialog" msgstr "" #: ../pan/gui/prefs-ui.cc:953 msgid "Smooth scrolling" msgstr "" #: ../pan/gui/prefs-ui.cc:958 #, fuzzy msgid "Article Cache" msgstr "Кэш статей" #: ../pan/gui/prefs-ui.cc:959 msgid "Clear article cache on shutdown" msgstr "" #: ../pan/gui/prefs-ui.cc:962 msgid "Size of article cache (in MiB) :" msgstr "" #: ../pan/gui/prefs-ui.cc:967 #, fuzzy msgid "File extension for Cached Articles: " msgstr "След. непрочитанная статья" #: ../pan/gui/prefs-ui.cc:972 msgid "Tabs" msgstr "" #: ../pan/gui/prefs-ui.cc:977 msgid "_Behavior" msgstr "" #: ../pan/gui/prefs-ui.cc:977 msgid "Behavior" msgstr "" #: ../pan/gui/prefs-ui.cc:983 #, fuzzy msgid "Language Settings" msgstr "Настройки \"в сети\"" #. systray and notify popup #: ../pan/gui/prefs-ui.cc:992 msgid "System Tray Behavior" msgstr "" #: ../pan/gui/prefs-ui.cc:994 msgid "Hide to system tray" msgstr "" #: ../pan/gui/prefs-ui.cc:996 msgid "Start Pan minimized" msgstr "" #: ../pan/gui/prefs-ui.cc:999 #, fuzzy msgid "Show notifications" msgstr "Информация о профиле" #. allow multiple instances (seperate, not communicating with dbus) #: ../pan/gui/prefs-ui.cc:1004 msgid "Startup Behavior" msgstr "" #: ../pan/gui/prefs-ui.cc:1006 msgid "Allow multiple instances of Pan" msgstr "" #: ../pan/gui/prefs-ui.cc:1011 #, fuzzy msgid "Autosave Article Draft" msgstr "Сортировать статьи" #: ../pan/gui/prefs-ui.cc:1013 #, fuzzy msgid "Minutes to autosave the current Article Draft: " msgstr "Сортировать статьи" #: ../pan/gui/prefs-ui.cc:1018 #, fuzzy msgid "Autosave Articles" msgstr "Сохранить статьи как..." #: ../pan/gui/prefs-ui.cc:1020 msgid "Minutes to autosave newsrc files: " msgstr "" #: ../pan/gui/prefs-ui.cc:1026 msgid "_Miscellaneous" msgstr "" #: ../pan/gui/prefs-ui.cc:1026 msgid "Miscellaneous" msgstr "" #: ../pan/gui/prefs-ui.cc:1031 #, fuzzy msgid "Pane Layout" msgstr "Выравнивание" #: ../pan/gui/prefs-ui.cc:1050 msgid "1=Groups, 2=Headers, 3=Body" msgstr "" #: ../pan/gui/prefs-ui.cc:1052 msgid "1=Groups, 2=Body, 3=Headers" msgstr "" #: ../pan/gui/prefs-ui.cc:1054 msgid "1=Headers, 2=Groups, 3=Body" msgstr "" #: ../pan/gui/prefs-ui.cc:1056 msgid "1=Headers, 2=Body, 3=Groups" msgstr "" #: ../pan/gui/prefs-ui.cc:1058 msgid "1=Body, 2=Groups, 3=Headers" msgstr "" #: ../pan/gui/prefs-ui.cc:1060 msgid "1=Body, 2=Headers, 3=Groups" msgstr "" #: ../pan/gui/prefs-ui.cc:1064 #, fuzzy msgid "Layout" msgstr "Выравнивание" #: ../pan/gui/prefs-ui.cc:1069 #, fuzzy msgid "Header Pane Columns" msgstr "Показать панель заголовка" #: ../pan/gui/prefs-ui.cc:1073 #, fuzzy msgid "_Headers" msgstr "Еще заголовки" #: ../pan/gui/prefs-ui.cc:1073 #, fuzzy msgid "Headers" msgstr "Еще заголовки" #: ../pan/gui/prefs-ui.cc:1079 msgid "" "This menu lets you configure Pan to take certain actions on your behalf " "automatically, based on a post's score." msgstr "" #: ../pan/gui/prefs-ui.cc:1082 msgid "_Delete posts scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1084 msgid "Mark posts _read scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1086 msgid "_Cache posts scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1088 msgid "Download _attachments of posts scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1091 #, fuzzy msgid "Actions" msgstr "Действия" #: ../pan/gui/prefs-ui.cc:1096 ../pan/gui/prefs-ui.cc:1117 msgid "Fonts" msgstr "Шрифты" #: ../pan/gui/prefs-ui.cc:1098 msgid "Use custom font in Group Pane:" msgstr "" #: ../pan/gui/prefs-ui.cc:1103 msgid "Use custom font in Header Pane:" msgstr "" #: ../pan/gui/prefs-ui.cc:1108 msgid "Use custom font in Body Pane:" msgstr "" #: ../pan/gui/prefs-ui.cc:1113 msgid "Monospace font:" msgstr "" #: ../pan/gui/prefs-ui.cc:1117 #, fuzzy msgid "_Fonts" msgstr "Шрифты" #: ../pan/gui/prefs-ui.cc:1122 #, fuzzy msgid "Header Pane" msgstr "Показать панель заголовка" #: ../pan/gui/prefs-ui.cc:1125 ../pan/gui/prefs-ui.cc:1131 #: ../pan/gui/prefs-ui.cc:1137 ../pan/gui/prefs-ui.cc:1143 #: ../pan/gui/prefs-ui.cc:1149 ../pan/gui/prefs-ui.cc:1155 #, fuzzy msgid "Text:" msgstr "Цитируемый текст 3" #: ../pan/gui/prefs-ui.cc:1127 ../pan/gui/prefs-ui.cc:1133 #: ../pan/gui/prefs-ui.cc:1139 ../pan/gui/prefs-ui.cc:1145 #: ../pan/gui/prefs-ui.cc:1151 ../pan/gui/prefs-ui.cc:1157 #, fuzzy msgid "Background:" msgstr "Фон статьи" #: ../pan/gui/prefs-ui.cc:1129 msgid "Scores of 9999 or more:" msgstr "" #: ../pan/gui/prefs-ui.cc:1135 msgid "Scores from 5000 to 9998:" msgstr "" #: ../pan/gui/prefs-ui.cc:1141 msgid "Scores from 1 to 4999:" msgstr "" #: ../pan/gui/prefs-ui.cc:1147 msgid "Scores from -9998 to -1:" msgstr "" #: ../pan/gui/prefs-ui.cc:1153 msgid "Scores of -9999 or less:" msgstr "" #: ../pan/gui/prefs-ui.cc:1159 #, fuzzy msgid "Read collapsed thread:" msgstr "Свернуть все подшивки" #: ../pan/gui/prefs-ui.cc:1161 #, fuzzy msgid "Body Pane" msgstr "Показать панель группы" #: ../pan/gui/prefs-ui.cc:1167 #, fuzzy msgid "Quoted text:" msgstr "Цитируемый текст 1" #: ../pan/gui/prefs-ui.cc:1168 #, fuzzy msgid "URL:" msgstr "URL" #: ../pan/gui/prefs-ui.cc:1169 msgid "Signature:" msgstr "" #: ../pan/gui/prefs-ui.cc:1171 #, fuzzy msgid "_Colors" msgstr "Цвета" #: ../pan/gui/prefs-ui.cc:1171 msgid "Colors" msgstr "Цвета" #: ../pan/gui/prefs-ui.cc:1176 msgid "Preferred Applications" msgstr "" #: ../pan/gui/prefs-ui.cc:1180 msgid "_Web browser:" msgstr "" #: ../pan/gui/prefs-ui.cc:1183 #, fuzzy msgid "_Mail reader:" msgstr "Еще заголовки" #: ../pan/gui/prefs-ui.cc:1185 #, fuzzy msgid "_Text editor:" msgstr "Внутренняя ошибка" #: ../pan/gui/prefs-ui.cc:1187 #, fuzzy msgid "_Applications" msgstr "Действия" #: ../pan/gui/prefs-ui.cc:1187 #, fuzzy msgid "Applications" msgstr "Действия" #: ../pan/gui/prefs-ui.cc:1192 ../pan/gui/task-pane.cc:512 #, fuzzy msgid "Encoding" msgstr "Неизвестное кодирование" #: ../pan/gui/prefs-ui.cc:1196 msgid "Default bytes per file (for encoder): " msgstr "" #: ../pan/gui/prefs-ui.cc:1201 #, fuzzy msgid "_Upload" msgstr "Действия" #: ../pan/gui/prefs-ui.cc:1201 msgid "Upload" msgstr "" #: ../pan/gui/prefs-ui.cc:1219 msgid "_Hotkeys" msgstr "" #: ../pan/gui/prefs-ui.cc:1219 msgid "Hotkeys" msgstr "" #: ../pan/gui/profiles-dialog.cc:83 msgid "Please choose your Email Address according to your PGP key's user id." msgstr "" #: ../pan/gui/profiles-dialog.cc:131 #, fuzzy msgid "Posting Profile" msgstr "Pan: Профиль" #: ../pan/gui/profiles-dialog.cc:143 msgid "Profile Information" msgstr "Информация о профиле" #: ../pan/gui/profiles-dialog.cc:147 #, fuzzy msgid "_Profile Name:" msgstr "Имя профиля:" #: ../pan/gui/profiles-dialog.cc:150 msgid "Required Information" msgstr "Требуемая информация" #: ../pan/gui/profiles-dialog.cc:154 #, fuzzy msgid "_Full Name:" msgstr "Полное имя пользователя:" #: ../pan/gui/profiles-dialog.cc:158 msgid "" "Your Email Address.\n" "Note that this has to match your PGP Signature's Address\n" "if you want to PGP-Sign or Encrypt your messages correctly." msgstr "" #: ../pan/gui/profiles-dialog.cc:162 #, fuzzy msgid "_Email Address:" msgstr "Электронный адрес:" #: ../pan/gui/profiles-dialog.cc:164 #, fuzzy msgid "_Post Articles via:" msgstr "Сортировать статьи" #: ../pan/gui/profiles-dialog.cc:167 #, fuzzy msgid "Signature" msgstr "Файл подписи:" #: ../pan/gui/profiles-dialog.cc:170 msgid "_Use a Signature" msgstr "" #: ../pan/gui/profiles-dialog.cc:174 #, fuzzy msgid "Signature File" msgstr "Файл подписи:" #: ../pan/gui/profiles-dialog.cc:184 #, fuzzy msgid "Text File" msgstr "След. статья" #: ../pan/gui/profiles-dialog.cc:186 #, fuzzy msgid "Text" msgstr "Цитируемый текст 3" #: ../pan/gui/profiles-dialog.cc:188 #, fuzzy msgid "Command" msgstr "Команда печати:" #: ../pan/gui/profiles-dialog.cc:191 #, fuzzy msgid "PGP Signature" msgstr "Файл подписи:" #: ../pan/gui/profiles-dialog.cc:196 #, fuzzy msgid "Signature Type : " msgstr "Навигация" #: ../pan/gui/profiles-dialog.cc:223 msgid "X-Face (Avatar)" msgstr "" #: ../pan/gui/profiles-dialog.cc:226 msgid "" "You can add an avatar icon to your articles with a unique X-Face code. \n" "Add the code without the trailing \"X-Face:\" \n" " if it was generated by a helper program (for example http://www.dairiki.org/" "xface/xface.php)." msgstr "" #: ../pan/gui/profiles-dialog.cc:229 msgid "_X-Face:" msgstr "" #: ../pan/gui/profiles-dialog.cc:231 msgid "Optional Information" msgstr "Дополнительная информация" #: ../pan/gui/profiles-dialog.cc:236 msgid "" "When posting to Usenet, your article's Message-ID contains a domain name. \n" "You can set a custom domain name here, or leave it blank to let Pan use the " "domain name from your email address." msgstr "" #: ../pan/gui/profiles-dialog.cc:239 msgid "Message-ID _Domain Name:" msgstr "" #: ../pan/gui/profiles-dialog.cc:243 #, c-format msgid "" "%i for Message-ID\n" "%a for Author and Address\n" "%n for Author name\n" "%d for Date" msgstr "" #: ../pan/gui/profiles-dialog.cc:244 #, fuzzy msgid "_Attribution:" msgstr "Авторизация" #: ../pan/gui/profiles-dialog.cc:268 msgid "" "Extra headers to be included in your posts, such as\n" "Reply-To: \"Your Name\"\n" "Organization: Your Organization\n" msgstr "" #: ../pan/gui/profiles-dialog.cc:278 #, fuzzy msgid "E_xtra Headers:" msgstr "Еще заголовки" #: ../pan/gui/profiles-dialog.cc:323 #, fuzzy msgid "Invalid email address." msgstr "Электронный адрес:" #: ../pan/gui/profiles-dialog.cc:324 msgid "Please use an address of the form joe@somewhere.org" msgstr "" #: ../pan/gui/profiles-dialog.cc:479 msgid "New Profile" msgstr "Новый профиль" #: ../pan/gui/profiles-dialog.cc:525 #, fuzzy msgid "Posting Profiles" msgstr "Сбой отправки статьи: %s" #: ../pan/gui/profiles-dialog.cc:541 #, fuzzy msgid "Profiles" msgstr "Профиль" #: ../pan/gui/save-attach-ui.cc:77 ../pan/gui/save-ui.cc:77 #, c-format msgid "" "%g - group as one directory (alt.binaries.pictures.trains)\n" "%G - group as nested directory (/alt/binaries/pictures/trains)\n" "%s - subject line excerpt\n" "%S - subject line\n" " \n" "\"/home/user/News/Pan/%g\" becomes\n" "\"/home/user/News/Pan/alt.binaries.pictures.trains\", and\n" "\"/home/user/News/Pan/%G\" becomes\n" "\"/home/user/News/Pan/alt/binaries/pictures/trains\"," msgstr "" #: ../pan/gui/save-attach-ui.cc:223 ../pan/gui/save-ui.cc:242 msgid "Add to the queue sorted by date posted" msgstr "" #: ../pan/gui/save-attach-ui.cc:224 ../pan/gui/save-ui.cc:243 #, fuzzy msgid "Add to the front of the queue" msgstr "Добавить задачу в начало очереди" #: ../pan/gui/save-attach-ui.cc:225 ../pan/gui/save-ui.cc:244 #, fuzzy msgid "Add to the back of the queue" msgstr "Добавить задачу в конец очереди" #: ../pan/gui/save-attach-ui.cc:257 #, fuzzy msgid "Pan: Save Attachments" msgstr "Pan: Сохранить вложение как" #: ../pan/gui/save-attach-ui.cc:282 ../pan/gui/save-attach-ui.cc:300 #: ../pan/gui/save-ui.cc:296 ../pan/gui/save-ui.cc:314 #, fuzzy msgid "_Location:" msgstr "Расположение" #: ../pan/gui/save-attach-ui.cc:286 ../pan/gui/save-ui.cc:300 #, fuzzy msgid "Save Articles" msgstr "Сохранить статьи как..." #: ../pan/gui/save-attach-ui.cc:303 ../pan/gui/save-ui.cc:317 #, c-format msgid "_Group's path: %s" msgstr "" #: ../pan/gui/save-attach-ui.cc:314 ../pan/gui/save-ui.cc:332 msgid "_Priority:" msgstr "" #: ../pan/gui/save-ui.cc:233 #, fuzzy msgid "Save attachments" msgstr "Не сохранять вложения" #: ../pan/gui/save-ui.cc:234 #, fuzzy msgid "Save text" msgstr "Текст статьи" #: ../pan/gui/save-ui.cc:235 #, fuzzy msgid "Save attachments and text" msgstr "Сохранить вложение в:" #: ../pan/gui/save-ui.cc:271 #, fuzzy msgid "Pan: Save Articles" msgstr "Показать сохраненные статьи" #: ../pan/gui/save-ui.cc:328 #, fuzzy msgid "_Action:" msgstr "Действия" #: ../pan/gui/score-add-ui.cc:89 msgid "is more than" msgstr "" #: ../pan/gui/score-add-ui.cc:90 #, fuzzy msgid "is at most" msgstr "Статья содержит по крайней мере" #: ../pan/gui/score-add-ui.cc:112 #, fuzzy msgid "increase the article's score by" msgstr "Заполнение/Перенос строк в теле сообщения" #: ../pan/gui/score-add-ui.cc:113 #, fuzzy msgid "decrease the article's score by" msgstr "Заполнение/Перенос строк в теле сообщения" #: ../pan/gui/score-add-ui.cc:114 msgid "set the article's score to" msgstr "" #: ../pan/gui/score-add-ui.cc:115 msgid "watch the article (set its score to 9999)" msgstr "" #: ../pan/gui/score-add-ui.cc:116 msgid "ignore the article (set its score to -9999)" msgstr "" #: ../pan/gui/score-add-ui.cc:141 #, fuzzy msgid "References" msgstr "Ссылки:" #: ../pan/gui/score-add-ui.cc:142 msgid "Line Count" msgstr "" #: ../pan/gui/score-add-ui.cc:143 msgid "Byte Count" msgstr "" #: ../pan/gui/score-add-ui.cc:144 msgid "Crosspost Group Count" msgstr "" #: ../pan/gui/score-add-ui.cc:145 msgid "Age (in days)" msgstr "" #: ../pan/gui/score-add-ui.cc:167 msgid "for the next month" msgstr "" #: ../pan/gui/score-add-ui.cc:168 msgid "for the next six months" msgstr "" #: ../pan/gui/score-add-ui.cc:169 #, fuzzy msgid "forever" msgstr "Сервер" #: ../pan/gui/score-add-ui.cc:194 #, fuzzy msgid "contains" msgstr "Нет подключений" #: ../pan/gui/score-add-ui.cc:195 msgid "doesn't contain" msgstr "" #: ../pan/gui/score-add-ui.cc:196 #, fuzzy msgid "is" msgstr "Разное" #: ../pan/gui/score-add-ui.cc:197 #, fuzzy msgid "isn't" msgstr "Печать" #: ../pan/gui/score-add-ui.cc:198 msgid "starts with" msgstr "" #: ../pan/gui/score-add-ui.cc:199 msgid "ends with" msgstr "" #: ../pan/gui/score-add-ui.cc:200 #, fuzzy msgid "matches regex" msgstr "Тема совпадает с рег.выражением \"%s\"" #: ../pan/gui/score-add-ui.cc:481 #, fuzzy msgid "Another rule already sets this article's score." msgstr "Заполнение/Перенос строк в теле сообщения" #: ../pan/gui/score-add-ui.cc:482 msgid "You may want to go back or delete the old rule." msgstr "" #: ../pan/gui/score-add-ui.cc:553 #, fuzzy msgid "Add and Re_score" msgstr "Почтовый сервер" #: ../pan/gui/score-add-ui.cc:604 ../pan/gui/score-add-ui.cc:624 #, fuzzy msgid "New Scoring Rule" msgstr "Новое правило" #: ../pan/gui/score-add-ui.cc:635 msgid "If the group name" msgstr "" #: ../pan/gui/score-add-ui.cc:642 #, fuzzy msgid "And the article's" msgstr "Статьи" #: ../pan/gui/score-view-ui.cc:56 msgid "Close and Re_score" msgstr "" #: ../pan/gui/score-view-ui.cc:154 #, c-format msgid "File %s, Lines %d - %d" msgstr "" #: ../pan/gui/score-view-ui.cc:182 #, fuzzy msgid "Pan: Article's Scores" msgstr "Статья прочитана" #: ../pan/gui/score-view-ui.cc:208 #, fuzzy msgid "Add" msgstr "Добавить новый" #: ../pan/gui/score-view-ui.cc:213 #, fuzzy msgid "New Score" msgstr "Сервера новостей" #: ../pan/gui/score-view-ui.cc:218 msgid "Criteria" msgstr "" #: ../pan/gui/score-view-ui.cc:241 #, fuzzy msgid "Add a New Scoring Rule" msgstr "Добавить новое правило." #: ../pan/gui/score-view-ui.cc:248 #, fuzzy msgid "Remove the Selected Scoring Rule" msgstr "Удалить выбранное правило." #: ../pan/gui/server-ui.cc:221 msgid "Please specify the server's address." msgstr "" #: ../pan/gui/server-ui.cc:264 msgid "Import SSL certificate (PEM format) from File" msgstr "" #. create the dialog #: ../pan/gui/server-ui.cc:290 ../pan/gui/server-ui.cc:869 #, fuzzy msgid "Add a Server" msgstr "Почтовый сервер" #: ../pan/gui/server-ui.cc:290 ../pan/gui/server-ui.cc:875 #, fuzzy msgid "Edit a Server's Settings" msgstr "Настройки по-серверно" #: ../pan/gui/server-ui.cc:310 msgid "Location" msgstr "Расположение" #: ../pan/gui/server-ui.cc:314 msgid "The news server's actual address, e.g. \"news.mynewsserver.com\"" msgstr "" #: ../pan/gui/server-ui.cc:315 #, fuzzy msgid "_Address:" msgstr "Адрес:" #: ../pan/gui/server-ui.cc:319 msgid "The news server's port number. Typically 119." msgstr "" #: ../pan/gui/server-ui.cc:320 #, fuzzy msgid "Por_t:" msgstr "Порт:" #: ../pan/gui/server-ui.cc:323 msgid "Login (if Required)" msgstr "" #: ../pan/gui/server-ui.cc:327 #, fuzzy msgid "_Username:" msgstr "Имя пользователя" #: ../pan/gui/server-ui.cc:328 msgid "" "The username to give the server when asked. If your server doesn't require " "authentication, you can leave this blank." msgstr "" #: ../pan/gui/server-ui.cc:332 #, fuzzy msgid "_Password:" msgstr "Пароль:" #: ../pan/gui/server-ui.cc:333 msgid "" "The password to give the server when asked. If your server doesn't require " "authentication, you can leave this blank." msgstr "" #: ../pan/gui/server-ui.cc:336 #, fuzzy msgid "Settings" msgstr "Настройки \"в сети\"" #: ../pan/gui/server-ui.cc:343 #, fuzzy msgid "Connection _Limit:" msgstr "Подключение" #: ../pan/gui/server-ui.cc:347 msgid "After Two Weeks" msgstr "" #: ../pan/gui/server-ui.cc:348 msgid "After One Month" msgstr "" #: ../pan/gui/server-ui.cc:349 msgid "After Two Months" msgstr "" #: ../pan/gui/server-ui.cc:350 msgid "After Three Months" msgstr "" #: ../pan/gui/server-ui.cc:351 msgid "After Six Months" msgstr "" #: ../pan/gui/server-ui.cc:352 #, fuzzy msgid "Never Expire Old Articles" msgstr "След. непрочитанная статья" #: ../pan/gui/server-ui.cc:366 #, fuzzy msgid "E_xpire Old Articles:" msgstr "Показать старые статьи" #: ../pan/gui/server-ui.cc:370 #, fuzzy msgid "Primary" msgstr "Приоритет" #: ../pan/gui/server-ui.cc:371 msgid "Fallback" msgstr "" #: ../pan/gui/server-ui.cc:385 #, fuzzy msgid "Server Rank:" msgstr "Серверы" #: ../pan/gui/server-ui.cc:389 msgid "" "Fallback servers are used for articles that can't be found on the " "primaries. One common approach is to use free servers as primaries and " "subscription servers as fallbacks." msgstr "" #: ../pan/gui/server-ui.cc:396 msgid "Security" msgstr "" #: ../pan/gui/server-ui.cc:401 msgid "Use Plaintext (Unsecured) Connections" msgstr "" #: ../pan/gui/server-ui.cc:402 #, fuzzy msgid "Use Secure SSL Connections" msgstr "Установить ограничения соединений по серверам" #: ../pan/gui/server-ui.cc:418 msgid "TLS (SSL) Options:" msgstr "" #: ../pan/gui/server-ui.cc:423 msgid "" "You can set the option for using/disabling secure SSL/TLS connections here. " "If you enable SSL/TLS, your data is encrypted and secure. It is encouraged " "to use this option for privacy reasons." msgstr "" #: ../pan/gui/server-ui.cc:428 msgid "Always trust this server's certificate" msgstr "" #: ../pan/gui/server-ui.cc:602 #, c-format msgid "Really delete \"%s\"?" msgstr "" #: ../pan/gui/server-ui.cc:691 msgid "No information available." msgstr "" #: ../pan/gui/server-ui.cc:697 #, c-format msgid "Server Certificate for '%s'" msgstr "" #: ../pan/gui/server-ui.cc:795 #, c-format msgid "Really delete certificate for \"%s\"?" msgstr "" #. dialog #: ../pan/gui/server-ui.cc:822 ../pan/gui/server-ui.cc:843 #: ../pan/gui/server-ui.cc:941 msgid "Servers" msgstr "Серверы" #: ../pan/gui/server-ui.cc:882 #, fuzzy msgid "Remove a Server" msgstr "Сервер новостей" #. dialog #: ../pan/gui/server-ui.cc:915 msgid "SSL Certificates" msgstr "" #: ../pan/gui/server-ui.cc:936 msgid "Certificates" msgstr "" #: ../pan/gui/server-ui.cc:967 msgid "Import Certificate" msgstr "" #: ../pan/gui/server-ui.cc:973 msgid "Inspect Certificate" msgstr "" #: ../pan/gui/server-ui.cc:980 #, fuzzy msgid "Remove Certificate" msgstr "Сервер новостей" #: ../pan/gui/task-pane.cc:143 #, c-format msgid "" "\n" "Upload\n" "\n" "Subject: \"%s\"\n" "From: %s\n" "Groups: %s\n" "Sourcefile: %s\n" msgstr "" #: ../pan/gui/task-pane.cc:155 #, c-format msgid "" "\n" "Download\n" "\n" "Subject: \"%s\"\n" "From: %s\n" "Date: %s\n" "Groups: %s\n" "Save Path: %s\n" msgstr "" #: ../pan/gui/task-pane.cc:157 #, fuzzy msgid "unknown" msgstr "Неизвестно" #: ../pan/gui/task-pane.cc:263 msgid "Choose new destination for selected Tasks" msgstr "" #: ../pan/gui/task-pane.cc:417 #, fuzzy, c-format msgid "Pan: Tasks (%d Queued, %d Running, %d Stopped)" msgstr "Диспетчер задач Pan %s (%d в очереди, %d запущено, %d сбоев)" #: ../pan/gui/task-pane.cc:419 #, fuzzy, c-format msgid "Pan: Tasks (%d Queued, %d Running)" msgstr "Диспетчер задач Pan %s (%d в очереди, %d запущено)" #: ../pan/gui/task-pane.cc:421 #, fuzzy, c-format msgid "Pan: Tasks" msgstr "Нет задач" #: ../pan/gui/task-pane.cc:446 #, c-format msgid "%lu selected, %s" msgstr "" #: ../pan/gui/task-pane.cc:510 msgid "Running" msgstr "Запущено" #: ../pan/gui/task-pane.cc:511 #, fuzzy msgid "Decoding" msgstr "Декодирование \"%s\"" #: ../pan/gui/task-pane.cc:513 #, fuzzy msgid "Queued for Decode" msgstr "Сохранено и декодировано" #: ../pan/gui/task-pane.cc:514 #, fuzzy msgid "Queued for Encode" msgstr "Поставлено в очередь для сохранения и декодирования" #: ../pan/gui/task-pane.cc:515 msgid "Queued" msgstr "Поставлено в очередь" #: ../pan/gui/task-pane.cc:516 msgid "Stopped" msgstr "" #: ../pan/gui/task-pane.cc:517 #, fuzzy msgid "Removing" msgstr "Удалить" #: ../pan/gui/task-pane.cc:546 #, fuzzy, c-format msgid "%d%% Done" msgstr "% Выполнено" #: ../pan/gui/task-pane.cc:552 #, fuzzy, c-format msgid "%d:%02d:%02d Remaining (%d @ %lu KiB/s)" msgstr "%.2f Кб/с, %d:%02d:%02d осталось" #: ../pan/gui/task-pane.cc:646 ../pan/gui/task-pane.cc:647 #, fuzzy msgid "Move To Top" msgstr "Переместить в папку" #: ../pan/gui/task-pane.cc:651 ../pan/gui/task-pane.cc:652 #, fuzzy msgid "Move To Bottom" msgstr "Переместить в папку" #: ../pan/gui/task-pane.cc:656 ../pan/gui/task-pane.cc:657 #, fuzzy msgid "Stop Task" msgstr "Нет задач" #: ../pan/gui/task-pane.cc:661 ../pan/gui/task-pane.cc:662 #, fuzzy msgid "Delete Task" msgstr "Удалить выбранные подшивки" #: ../pan/gui/task-pane.cc:666 ../pan/gui/task-pane.cc:667 msgid "Restart Task" msgstr "" #: ../pan/gui/task-pane.cc:671 ../pan/gui/task-pane.cc:672 msgid "Change Download Destination" msgstr "" #: ../pan/gui/task-pane.cc:729 #, fuzzy msgid "_Online" msgstr "Отключиться" #: ../pan/gui/task-pane.cc:746 msgid "Restart Tasks" msgstr "" #: ../pan/gui/task-pane.cc:748 #, fuzzy msgid "Stop Tasks" msgstr "Нет задач" #: ../pan/gui/task-pane.cc:750 #, fuzzy msgid "Delete Tasks" msgstr "Удалить выбранные подшивки" #: ../pan/gui/url.cc:123 #, c-format msgid "Error starting URL: %s (Command was: %s)" msgstr "" #: ../pan/tasks/decoder.cc:115 #, fuzzy, c-format msgid "Couldn't save file \"%s\": %s" msgstr "Не удалось создать каталог \"%s\": %s" #: ../pan/tasks/decoder.cc:137 ../pan/tasks/encoder.cc:136 msgid "Error initializing uulib" msgstr "" #: ../pan/tasks/decoder.cc:152 ../pan/tasks/socket-impl-gio.cc:352 #: ../pan/tasks/socket-impl-openssl.cc:634 #, fuzzy, c-format msgid "Error reading from %s: %s" msgstr "Ошибка чтения из сокета." #: ../pan/tasks/decoder.cc:192 #, c-format msgid "Saved \"%s\"" msgstr "Сохранение \"%s\"" #: ../pan/tasks/decoder.cc:199 #, fuzzy, c-format msgid "" "Error saving \"%s\":\n" "%s." msgstr "Ошибка чтения файла \"%s\"" #: ../pan/tasks/decoder.cc:314 ../pan/tasks/task-article.cc:350 #, fuzzy, c-format msgid "Decoding %s" msgstr "Декодирование \"%s\"" #: ../pan/tasks/encoder.cc:102 ../pan/tasks/encoder.cc:155 #, fuzzy, c-format msgid "Error loading %s from cache." msgstr "Ошибка чтения из сокета." #: ../pan/tasks/encoder.cc:177 #, fuzzy, c-format msgid "Error encoding %s: %s" msgstr "Ошибка чтения файла \"%s\"" #: ../pan/tasks/encoder.cc:269 #, fuzzy, c-format msgid "Encoding %s" msgstr "Неизвестное кодирование" #: ../pan/tasks/nntp.cc:126 #, fuzzy, c-format msgid "%s requires a username, but none is set." msgstr "Мой сервер требует имя пользователя и пароль" #: ../pan/tasks/nntp.cc:139 #, fuzzy, c-format msgid "%s requires a password, but none is set." msgstr "Мой сервер требует пароль" #: ../pan/tasks/nntp.cc:205 #, c-format msgid "Sending \"%s\" to %s returned an error: %s" msgstr "" #: ../pan/tasks/nntp.cc:228 #, c-format msgid "Sending \"%s\" to %s returned an unrecognized response: \"%s\"" msgstr "" #: ../pan/tasks/nntp-pool.cc:222 #, fuzzy, c-format msgid "Unable to connect to \"%s\"" msgstr "Не удалось открыть соединение с почтовым сервером \"%s\"" #: ../pan/tasks/socket-impl-gio.cc:173 ../pan/tasks/socket-impl-gio.cc:211 #: ../pan/tasks/socket-impl-openssl.cc:214 #: ../pan/tasks/socket-impl-openssl.cc:252 #, fuzzy, c-format msgid "Error connecting to \"%s\"" msgstr "Ошибка чтения файла \"%s\"" #: ../pan/tasks/socket-impl-gio.cc:351 ../pan/tasks/socket-impl-openssl.cc:633 #, fuzzy msgid "Unknown Error" msgstr "Неизвестно" #: ../pan/tasks/task-article.cc:61 ../pan/tasks/task-article.cc:156 #: ../pan/tasks/task-article.cc:159 #, fuzzy, c-format msgid "Saving %s" msgstr "Сохранение \"%s\"" #: ../pan/tasks/task-article.cc:63 #, fuzzy, c-format msgid "Reading %s" msgstr "Загрузка %s" #: ../pan/tasks/task-article.cc:322 #, c-format msgid "Article \"%s\" is incomplete -- the news server(s) don't have part %s" msgstr "" #: ../pan/tasks/task-groups.cc:40 #, fuzzy, c-format msgid "Getting group list from \"%s\"" msgstr "Объединение групп для \"%s\"" #: ../pan/tasks/task-groups.cc:122 #, fuzzy, c-format msgid "Fetched %lu Groups" msgstr "Получено %u заголовков для \"%s\"" #: ../pan/tasks/task-post.cc:35 #, fuzzy, c-format msgid "Posting \"%s\"" msgstr "Обработка \"%s\"" #: ../pan/tasks/task-post.cc:76 #, fuzzy, c-format msgid "Posting of \"%s\" failed: %s" msgstr "Сбой отправки статьи: %s" #: ../pan/tasks/task-post.cc:81 #, c-format msgid "Posting of \"%s\" succesful: %s" msgstr "" #: ../pan/tasks/task-upload.cc:51 #, fuzzy, c-format msgid "Uploading %s" msgstr "Загрузка %s" #: ../pan/tasks/task-upload.cc:249 #, fuzzy, c-format msgid "Uploading %s - Part %d of %d" msgstr "Отправка статьи %s часть %d из %d." #: ../pan/tasks/task-upload.cc:251 #, c-format msgid "Uploading Message body with Subject \"%s\"" msgstr "" #: ../pan/tasks/task-upload.cc:308 #, c-format msgid "Posting of File %s (Part %d of %d) failed: No Posts allowed by server." msgstr "" #: ../pan/tasks/task-upload.cc:316 #, fuzzy, c-format msgid "Posting of File %s (Part %d of %d) failed: %s" msgstr "Сбой отправки статьи: %s" #: ../pan/tasks/task-upload.cc:326 ../pan/tasks/task-upload.cc:333 #, fuzzy, c-format msgid "Posting of file %s (Part %d of %d) succesful: %s" msgstr "Отправка статьи %s часть %d из %d." #: ../pan/tasks/task-upload.cc:343 #, fuzzy, c-format msgid "Posting of file %s succesful: %s" msgstr "Сбой отправки статьи: %s" #: ../pan/tasks/task-upload.cc:347 #, c-format msgid "" "Posting of file %s not completely successful: Check the log (right-click on " "list item) !" msgstr "" #: ../pan/tasks/task-upload.cc:364 #, c-format msgid "" "Posting of file %s not successful: Check the log (right-click on list item) !" msgstr "" #: ../pan/tasks/task-xover.cc:79 #, fuzzy, c-format msgid "Getting all headers for \"%s\"" msgstr "Получение %s для \"%s\"" #: ../pan/tasks/task-xover.cc:81 #, fuzzy, c-format msgid "Getting new headers for \"%s\"" msgstr "Получение %s для \"%s\"" #. SAMPLE #: ../pan/tasks/task-xover.cc:83 #, fuzzy, c-format msgid "Sampling headers for \"%s\"" msgstr "Получение образцов заголовков статей %lu из %lu" #: ../pan/tasks/task-xover.cc:369 #, c-format msgid "%s (%lu parts, %lu articles)" msgstr "" #: ../pan/tasks/task-xoverinfo.cc:78 #, fuzzy, c-format msgid "Getting header counts for \"%s\"" msgstr "Получение %s для \"%s\"" #: ../pan/usenet-utils/filter-info.cc:163 #, fuzzy msgid "article doesn't have attachments" msgstr "статья содержит %s двоичных вложений" #: ../pan/usenet-utils/filter-info.cc:167 #, fuzzy msgid "the article has attachments" msgstr "статья содержит %s двоичных вложений" #: ../pan/usenet-utils/filter-info.cc:171 #, fuzzy msgid "the article isn't cached locally" msgstr "Статья помечена как" #: ../pan/usenet-utils/filter-info.cc:175 #, fuzzy msgid "the article is cached locally" msgstr "Статья помечена как" #: ../pan/usenet-utils/filter-info.cc:179 #, fuzzy msgid "the article wasn't posted by you" msgstr "Статья была послана по крайней мере в" #: ../pan/usenet-utils/filter-info.cc:183 #, fuzzy msgid "the article was posted by you" msgstr "Статья была послана по крайней мере в" #: ../pan/usenet-utils/filter-info.cc:187 #, fuzzy msgid "the article has been read" msgstr "Статья содержит" #: ../pan/usenet-utils/filter-info.cc:191 #, fuzzy msgid "the article hasn't been read" msgstr "Статья содержит" #: ../pan/usenet-utils/filter-info.cc:195 #, fuzzy, c-format msgid "the article is less than %ld bytes long" msgstr "Статья не меньше чем %d строк" #: ../pan/usenet-utils/filter-info.cc:200 #, fuzzy, c-format msgid "the article is at least %ld bytes long" msgstr "Статья не меньше чем %d строк" #: ../pan/usenet-utils/filter-info.cc:205 #, fuzzy, c-format msgid "the article is less than %ld lines long" msgstr "Статья не меньше чем %d строк" #: ../pan/usenet-utils/filter-info.cc:210 #, fuzzy, c-format msgid "the article is at least %ld lines long" msgstr "Статья не меньше чем %d строк" #: ../pan/usenet-utils/filter-info.cc:215 #, fuzzy, c-format msgid "the article is less than %ld days old" msgstr "статья старее %d дней" #: ../pan/usenet-utils/filter-info.cc:220 #, fuzzy, c-format msgid "the article is at least %ld days old" msgstr "статья старее %d дней" #: ../pan/usenet-utils/filter-info.cc:225 #, fuzzy, c-format msgid "the article was posted to less than %ld groups" msgstr "статья была послана более чем в %d групп" #: ../pan/usenet-utils/filter-info.cc:230 #, fuzzy, c-format msgid "the article was posted to at least %ld groups" msgstr "статья была послана более чем в %d групп" #: ../pan/usenet-utils/filter-info.cc:235 #, fuzzy, c-format msgid "the article's score is less than %ld" msgstr "Статья имеет больше чем" #: ../pan/usenet-utils/filter-info.cc:240 #, fuzzy, c-format msgid "the article's score is %ld or higher" msgstr "Статья имеет больше чем" #: ../pan/usenet-utils/filter-info.cc:249 #: ../pan/usenet-utils/filter-info.cc:259 #, c-format msgid "%s doesn't contain \"%s\"" msgstr "" #: ../pan/usenet-utils/filter-info.cc:250 #: ../pan/usenet-utils/filter-info.cc:260 #, c-format msgid "%s isn't \"%s\"" msgstr "" #: ../pan/usenet-utils/filter-info.cc:251 #: ../pan/usenet-utils/filter-info.cc:261 #, c-format msgid "%s doesn't begin with \"%s\"" msgstr "" #: ../pan/usenet-utils/filter-info.cc:252 #: ../pan/usenet-utils/filter-info.cc:262 #, c-format msgid "%s doesn't end with \"%s\"" msgstr "" #: ../pan/usenet-utils/filter-info.cc:253 #: ../pan/usenet-utils/filter-info.cc:263 #, fuzzy, c-format msgid "%s doesn't match the regex \"%s\"" msgstr "Тема не совпадает с рег.выражением \"%s\"" #: ../pan/usenet-utils/filter-info.cc:275 #, fuzzy, c-format msgid "%s contains \"%s\"" msgstr "Нет подключений" #: ../pan/usenet-utils/filter-info.cc:276 #, c-format msgid "%s is \"%s\"" msgstr "" #: ../pan/usenet-utils/filter-info.cc:277 #, c-format msgid "%s begins with \"%s\"" msgstr "" #: ../pan/usenet-utils/filter-info.cc:278 #, c-format msgid "%s ends with \"%s\"" msgstr "" #: ../pan/usenet-utils/filter-info.cc:279 #, fuzzy, c-format msgid "%s matches the regex \"%s\"" msgstr "Тема совпадает с рег.выражением \"%s\"" #: ../pan/usenet-utils/filter-info.cc:285 msgid "Any of these tests fail:" msgstr "" #: ../pan/usenet-utils/filter-info.cc:292 msgid "All of these tests pass:" msgstr "" #: ../pan/usenet-utils/filter-info.cc:299 msgid "None of these tests pass:" msgstr "" #: ../pan/usenet-utils/filter-info.cc:306 msgid "Any of these tests pass:" msgstr "" #: ../pan/usenet-utils/gnksa.cc:878 #, c-format msgid "No email address provided; generating message-id with domain \"%s\"" msgstr "" #: ../pan/usenet-utils/message-check.cc:124 msgid "Warning: Reply seems to be top-posted." msgstr "" #: ../pan/usenet-utils/message-check.cc:145 msgid "Warning: The signature marker should be \"-- \", not \"--\"." msgstr "" #: ../pan/usenet-utils/message-check.cc:162 #, fuzzy msgid "Warning: Signature prefix with no signature." msgstr "ВНИМАНИЕ: Префикс подписи без подписи." #: ../pan/usenet-utils/message-check.cc:167 #, fuzzy msgid "Warning: Signature is more than 4 lines long." msgstr "Внимание: подпись длиннее 4 строк" #: ../pan/usenet-utils/message-check.cc:172 #, fuzzy msgid "Warning: Signature is more than 80 characters wide." msgstr "Внимание: подпись длиннее 4 строк" #: ../pan/usenet-utils/message-check.cc:198 #, fuzzy, c-format msgid "Warning: %d line is more than 80 characters wide." msgid_plural "Warning: %d lines are more than 80 characters wide." msgstr[0] "Внимание: подпись длиннее 4 строк" msgstr[1] "Внимание: подпись длиннее 4 строк" #: ../pan/usenet-utils/message-check.cc:223 #, fuzzy msgid "Error: Message is empty." msgstr "ОШИБКА: Это пустое сообщение." #: ../pan/usenet-utils/message-check.cc:258 #, fuzzy msgid "Warning: The message is entirely quoted text!" msgstr "Внимание: это сообщение состоит только из процитированного текста!" #: ../pan/usenet-utils/message-check.cc:259 #, fuzzy msgid "Warning: The message is mostly quoted text." msgstr "Внимание: это сообщение в основном процитированный текст." #: ../pan/usenet-utils/message-check.cc:309 #, fuzzy msgid "Error: Message appears to have no new content." msgstr "ОШИБКА: Похоже в сообщении нет нового содержимого." #: ../pan/usenet-utils/message-check.cc:344 #: ../pan/usenet-utils/message-check.cc:383 #, c-format msgid "" "Warning: The posting profile's server doesn't carry newsgroup\n" "\t\"%s\".\n" "\tIf the group name is correct, switch profiles in the \"From:\"\n" "\tline or edit the profile with \"Edit|Manage Posting Profiles\"." msgstr "" #: ../pan/usenet-utils/message-check.cc:355 #, fuzzy msgid "Warning: Following-Up to too many groups." msgstr "Внимание: отправка в большое число групп." #: ../pan/usenet-utils/message-check.cc:366 #, fuzzy msgid "Error: No Subject specified." msgstr "ОШИБКА: не указана тема." #: ../pan/usenet-utils/message-check.cc:395 #, fuzzy, c-format msgid "Warning: Group \"%s\" is read-only." msgstr "ВНИМАНИЕ: группа \"%s\" только для чтения." #: ../pan/usenet-utils/message-check.cc:404 #, fuzzy msgid "Error: Posting to a very large number of groups." msgstr "Ошибка: Отправка в слишком большое число групп." #: ../pan/usenet-utils/message-check.cc:409 #, fuzzy msgid "Warning: Posting to a large number of groups." msgstr "Внимание: отправка в большое число групп." #: ../pan/usenet-utils/message-check.cc:416 #, fuzzy msgid "Warning: Crossposting without setting Followup-To header." msgstr "" "Внимание: Перекрестная отправка в несколько групп без установки Followup-To." #: ../pan/usenet-utils/message-check.cc:441 #, fuzzy msgid "Error: Bad email address." msgstr "Электронный адрес:" #: ../pan/usenet-utils/message-check.cc:450 msgid "Warning: Most newsgroups frown upon HTML posts." msgstr "" #: ../pan/usenet-utils/message-check.cc:486 #, fuzzy msgid "Error: No Recipients." msgstr "Нет получателей!" #: ../pan/usenet-utils/scorefile.cc:304 #, c-format msgid "" "Error reading score in %*.*s, line %d: expected 'Expires: MM/DD/YYYY' or " "'Expires: DD-MM-YYYY'." msgstr "" #: ../pan/usenet-utils/scorefile.cc:307 #, c-format msgid "Expired old score from %*.*s, line %d" msgstr "" #: ../pan/usenet-utils/scorefile.cc:380 #, c-format msgid "Error reading score in %*.*s, line %d: unexpected line." msgstr "" #: ../pan/usenet-utils/scorefile.cc:428 #, c-format msgid "Read %lu scoring rules in %lu sections from \"%s\"" msgstr "" #: ../pan/usenet-utils/ssl-utils.h:199 #, c-format msgid "Error printing the server certificate for '%s'" msgstr "" #: ../pan/usenet-utils/ssl-utils.h:216 #, c-format msgid "" "The current server '%s' sent this security certificate :\n" "\n" msgstr "" #: ../pan/usenet-utils/ssl-utils.h:217 #, c-format msgid "" "Certificate information for server '%s' :\n" "\n" msgstr "" #: ../pan/usenet-utils/ssl-utils.h:219 #, c-format msgid "" "%sIssuer information:\n" "%s\n" "Valid until : %s\n" "\n" "Not valid before : %s\n" "\n" msgstr "" #: ../pan/usenet-utils/text-massager.cc:397 msgid "> [quoted text muted]" msgstr "" #, fuzzy #~ msgid "_Toggle Flag on for Thread" #~ msgstr "Снять отметку с подшивок" #, fuzzy #~ msgid "Attachment not shown: MIME type %s/%s\n" #~ msgstr "Вложение: %s - %s - %s\n" #, fuzzy #~ msgid "Error!" #~ msgstr "Ошибка" #, fuzzy #~ msgid "An error has occured. Maximize Pan to investigate." #~ msgstr "При записи на сервер возникла ошибка." #, fuzzy #~ msgid "Signer : " #~ msgstr "Навигация" #, fuzzy #~ msgid "Encoding Options" #~ msgstr "Параметры" #, fuzzy #~ msgid "Creating directory \"%s\"" #~ msgstr "Ожидание декодирования \"%s\"" #, fuzzy #~ msgid "Couldn't create directory \"%s\": %s" #~ msgstr "Не удалось создать каталог \"%s\": %s" #, fuzzy #~ msgid "_Groups" #~ msgstr "Группы" #, fuzzy #~ msgid "Read Selected Group" #~ msgstr "Выбирает группу" #, fuzzy #~ msgid "_Mark Group _Read" #~ msgstr "Пометить группу как прочитанную" #, fuzzy #~ msgid "_Delete Group's Articles" #~ msgstr "Удалить все статьи" #, fuzzy #~ msgid "Get New Headers for Selected Groups" #~ msgstr "Получить новые статьи в выбранных группах" #, fuzzy #~ msgid "Get New Headers for Subscribed Groups" #~ msgstr "Получить новые статьи во всех группах подписки" #, fuzzy #~ msgid "Get a new Group list from the Server" #~ msgstr "Объединение групп для \"%s\"" #, fuzzy #~ msgid "Subscribe to Selected Groups" #~ msgstr "Подписанные группы" #, fuzzy #~ msgid "Unsubscribe from Selected Groups" #~ msgstr "Применение правила к выбранным группам" #, fuzzy #~ msgid "Save Selected Articles..." #~ msgstr "Сохранить вложения к выделенным статьям" #, fuzzy #~ msgid "Cancel Last Task" #~ msgstr "Отменить выбранные задачи" #, fuzzy #~ msgid "Clear Header Pane" #~ msgstr "Показать панель заголовка" #, fuzzy #~ msgid "Clear Body Pane" #~ msgstr "Показать панель группы" #, fuzzy #~ msgid "Download _Selected Article" #~ msgstr "Скачать выбранные статьи" #, fuzzy #~ msgid "Download Selected Article" #~ msgstr "Скачать выбранные статьи" #, fuzzy #~ msgid "Read _Selected Article" #~ msgstr "Отметить выбранные статьи" #, fuzzy #~ msgid "Next Unread Group" #~ msgstr "След. непрочитанная группа" #, fuzzy #~ msgid "Next Group" #~ msgstr "След. группа" #~ msgid "Next Thread" #~ msgstr "След. подшивка" #~ msgid "Previous Article" #~ msgstr "Пред. статья" #~ msgid "Previous Thread" #~ msgstr "Пред. подшивка" #, fuzzy #~ msgid "Parent Article" #~ msgstr "Печать статьи..." #, fuzzy #~ msgid "_Plonk Author" #~ msgstr "Автор" #, fuzzy #~ msgid "Mark Article as Read" #~ msgstr "Пометить выбранные статьи как прочитанные" #, fuzzy #~ msgid "Mark Article as Unread" #~ msgstr "Пометить как непрочитанное" #, fuzzy #~ msgid "Reply to Author" #~ msgstr "Автор" #, fuzzy #~ msgid "Pan: " #~ msgstr "Pan: Правила" #~ msgid "Group Name" #~ msgstr "Название группы" #, fuzzy #~ msgid "Clear the Filter" #~ msgstr "Выбрать фильтр:" #, fuzzy #~ msgid "Pan: %s" #~ msgstr "Pan: Правила" #, fuzzy #~ msgid "Tasks: %u/%u" #~ msgstr "Задачи: %d/%d" #, fuzzy #~ msgid "%.1f KiB" #~ msgstr "%d @ %.1f Кб/с" #, fuzzy #~ msgid "Wrap the Article Body to 80 Columns" #~ msgstr "Заполнение/Перенос строк в теле сообщения" #, fuzzy #~ msgid "_Close" #~ msgstr "Закрыть" #, fuzzy #~ msgid "Cut Text" #~ msgstr "Цитируемый текст 3" #, fuzzy #~ msgid "Copy Text" #~ msgstr "Перенос строк" #, fuzzy #~ msgid "_Paste" #~ msgstr "Послать" #, fuzzy #~ msgid "Paste Text" #~ msgstr "Текст статьи" #, fuzzy #~ msgid "Manage Posting Pr_ofiles..." #~ msgstr "Профили..." #, fuzzy #~ msgid "Error loading post.ui: \"%s\"" #~ msgstr "Ошибка чтения из сокета." #, fuzzy #~ msgid "Editors" #~ msgstr "Внутренняя ошибка" #, fuzzy #~ msgid "Posting Article" #~ msgstr "Сортировка статей" #, fuzzy #~ msgid "Add a New Profile" #~ msgstr "Добавить новый профиль" #~ msgid "Edit the selected profile" #~ msgstr "Правка выбранного профиля" #~ msgid "Remove the selected profile" #~ msgstr "Удалить выбранный профиль" #, fuzzy #~ msgid "Threads" #~ msgstr "Отметить подшивки" #, fuzzy #~ msgid "Save _Attachments" #~ msgstr "Не сохранять вложения" #, fuzzy #~ msgid "Path" #~ msgstr "Автор" #, fuzzy #~ msgid "_Path:" #~ msgstr "Послать" #, fuzzy #~ msgid "Group Management" #~ msgstr "Название группы" #, fuzzy #~ msgid "Pan: New Scoring Rule" #~ msgstr "Pan: Правка правила" #, fuzzy #~ msgid "Then" #~ msgstr "Благодарности" #, fuzzy #~ msgid "For" #~ msgstr "Папки" #, fuzzy #~ msgid "Name: \"%s\"" #~ msgstr "Сохранение \"%s\"" #, fuzzy #~ msgid "Pan: Add a Server" #~ msgstr "Pan: Новый/Правка сервера" #, fuzzy #~ msgid "Pan: Edit a Server's Settings" #~ msgstr "Настройки по-серверно" #, fuzzy #~ msgid "Pan: Servers" #~ msgstr "Серверы" #, fuzzy #~ msgid "to %s" #~ msgstr "О программе \"%s\"" #~ msgid "Status" #~ msgstr "Состояние" #, fuzzy #~ msgid "Unable to set group: %s" #~ msgstr "Не удалось установить группу \"%s\": %s" #, fuzzy #~ msgid "Couldn't load \"%s\": %s" #~ msgstr "Невозможно загрузить шрифт \"%s\"" #, fuzzy #~ msgid "" #~ "Error saving \"%s\":\n" #~ "%s. %s" #~ msgstr "Ошибка чтения файла \"%s\"" #, fuzzy #~ msgid "Warning: Unknown group \"%s\"." #~ msgstr "ВНИМАНИЕ: неизвестная группа: \"%s\"." #, fuzzy #~ msgid "_Posting" #~ msgstr "Послать" #, fuzzy #~ msgid "Post New Article" #~ msgstr "Загружает статью" #, fuzzy #~ msgid "_Follow-up" #~ msgstr "Ответить в группу:" #, fuzzy #~ msgid "Follow-up to Article" #~ msgstr "Показать текстовые статьи" #, fuzzy #~ msgid "_Post Article" #~ msgstr "Сортировать статьи" #, fuzzy #~ msgid "Post this Article Now" #~ msgstr "Отправка статьи в конференцию \"%s\"" #, fuzzy #~ msgid "Error: No Newsgroups specified." #~ msgstr "ОШИБКА: не указаны получатели." #~ msgid "Message-Id" #~ msgstr "Message-Id" #, fuzzy #~ msgid "Saved newsrc files in %.1f seconds" #~ msgstr "Сохранено %d статей за %.1f секунд (%.0f статей/сек)" #, fuzzy #~ msgid "_Reply-To Header:" #~ msgstr "Обратный адрес:" #, fuzzy #~ msgid "Or_ganization Header:" #~ msgstr "Организация:" #~ msgid "UNKNOWN" #~ msgstr "НЕИЗВЕСТНО" #, fuzzy #~ msgid "Decode can't access directory \"%s\"" #~ msgstr "Не удалось создать каталог \"%s\": %s" #, fuzzy #~ msgid "_Watch Subthread" #~ msgstr "Просмотреть подшивку" #, fuzzy #~ msgid "Header Pane background:" #~ msgstr "Показать панель заголовка" #, fuzzy #~ msgid "Unread articles:" #~ msgstr "Показать непрочитанные статьи" #, fuzzy #~ msgid "" #~ "Unsupported data version (%d) for server properties. Are you running an " #~ "old version of Pan by accident?" #~ msgstr "Неподдерживаемая версия данных %d для файла данных %s" #, fuzzy #~ msgid "Couldn't create temporary file: %s" #~ msgstr "Не удалось создать каталог \"%s\": %s" #, fuzzy #~ msgid "Can't write to \"%s\": %s" #~ msgstr "Не удалось записать правило в \"%s\": %s" #, fuzzy #~ msgid "Open a Draft Article from Disk" #~ msgstr "Устарело %u статей из %s" #, fuzzy #~ msgid "subject" #~ msgstr "Тема" #, fuzzy #~ msgid "Change" #~ msgstr "Сохранить изменения" #, fuzzy #~ msgid "Active" #~ msgstr "Действия" #~ msgid " (Moderated)" #~ msgstr " (Модерируемое)" #~ msgid " (Read-Only)" #~ msgstr " (Только чтение)" #~ msgid "" #~ "We don't have a group list for server \"%s\".\n" #~ "Shall we get one?" #~ msgstr "" #~ "У нас нет списка групп для сервера \"%s\".\n" #~ "Надо ли его получать?" #~ msgid "All Groups" #~ msgstr "Все группы" #~ msgid "Subscribed" #~ msgstr "Подписанные" #~ msgid "Unread" #~ msgstr "Непрочтенные" #~ msgid "Total" #~ msgstr "Всего" #~ msgid "Description" #~ msgstr "Описание" #~ msgid "Find:" #~ msgstr "Искать:" #~ msgid "" #~ "Type in a group search string and press ENTER. Wildcards are allowed." #~ msgstr "" #~ "Наберите строку для поиска группы и нажмите \"Enter\". Допустимы символы " #~ "шаблонов." #~ msgid "Bug in Code" #~ msgstr "Ошибка в коде" #~ msgid "Pan: Find Message" #~ msgstr "Pan: Поиск сообщения" #~ msgid "Subject:" #~ msgstr "Тема:" #~ msgid "Author:" #~ msgstr "Автор:" #~ msgid "Unread Only" #~ msgstr "Только непрочтенные" #~ msgid "Case Sensitive" #~ msgstr "Чувствительное к регистру" #~ msgid "Pan: Filter Out Articles" #~ msgstr "Pan: Фильтрация статей" #~ msgid "Add Author to Bozo Filter" #~ msgstr "Добавить автора в Bozo фильтр" #~ msgid "regexp" #~ msgstr "рег. выражение" #~ msgid "Add Author to Spam Filter" #~ msgstr "Добавить автора в фильтр спама" #~ msgid "Add Subject to Spam Filter" #~ msgstr "Добавить тему в фильтр спама" #~ msgid "No Custom Filter" #~ msgstr "Нет другого фильтра" #~ msgid "Edit \"%s\" Filter" #~ msgstr "Правка фильтра \"%s\"" #~ msgid "Which Articles to Show" #~ msgstr "Какие статьи показывать" #~ msgid "Show Matching Articles and Replies" #~ msgstr "Показать совпадающие статьи и ответы" #~ msgid "Show Matching Articles and References" #~ msgstr "Показать совпадающие статьи и ссылки" #~ msgid "Show Threads with Matching Articles" #~ msgstr "Показать подшивки с совпадающими статьями" #~ msgid "Custom Filters" #~ msgstr "Другие фильтры" #~ msgid "Show Watched Threads" #~ msgstr "Показать ожидаемые подшивки" #~ msgid "Show Ignored Threads" #~ msgstr "Показать игнорируемые подшивки" #~ msgid "Show Threads Neither Watched nor Ignored" #~ msgstr "Показать подшивки не являющиеся ни ожидаемыми ни игнорируемыми" #~ msgid "Show Incomplete Binary Articles" #~ msgstr "Показать неполные двоичные статьи" #~ msgid "Show Queued Articles" #~ msgstr "Показать очередные статьи" #~ msgid "Show Articles Neither Queued nor Saved" #~ msgstr "Показать статьи не являющиеся ни очередными ни сохранёными" #~ msgid "Show Articles which are Cached Locally" #~ msgstr "Показать локально кэшированные статьи" #~ msgid "Show Articles which are not Cached Locally" #~ msgstr "Показать статьи не кэшированные локально" #~ msgid "" #~ "Type in a search string and press ENTER. Wildcards are allowed; see " #~ "http://pan.rebelbase.com/wildmat.html for more information." #~ msgstr "" #~ "Наберите строку для поиска и нажмите \"Enter\". Допустимы символы " #~ "шаблонов; см. http://pan.rebelbase.com/wildmat.html для справки." #~ msgid "BUG!!" #~ msgstr "ОШИБКА!!" #~ msgid "Please Select a Folder from the Group list." #~ msgstr "Пожалуйста выберите папку из списка групп." #~ msgid "_Mark as Read" #~ msgstr "Пометить как прочитанное" #~ msgid "Mark _Threads as Read" #~ msgstr "Пометить подшивки как прочитанные" #~ msgid "Mark Threads as U_nread" #~ msgstr "Пометить подшивки как непрочитанные" #~ msgid "D_ownload Flagged" #~ msgstr "Загрузить отмеченные" #~ msgid "Download Flagged Articles" #~ msgstr "Загрузить отмеченные статьи" #~ msgid "_Flag" #~ msgstr "Отметка" #~ msgid "Flag Selected Threads" #~ msgstr "Отметить выбранные подшивки" #~ msgid "Unflag" #~ msgstr "Снять отметку" #~ msgid "Unf_lag Selected Articles" #~ msgstr "Снять отметку с выбранных статей" #~ msgid "Unflag Selected Threads" #~ msgstr "Снять отметку с выбранных подшивок" #~ msgid "Download" #~ msgstr "Скачать" #~ msgid "Download Threads" #~ msgstr "Скачать подшивки" #~ msgid "Download Selected Threads" #~ msgstr "Скачать выбранные подшивки" #, fuzzy #~ msgid "Watch Selected Threads" #~ msgstr "Выбранные подшивки" #~ msgid "Ignore Selected Threads" #~ msgstr "Игнорировать выбранные подшивки" #~ msgid "Add to Bo_zo or Spam Filter" #~ msgstr "Добавить в фильтр спама или Bozo" #~ msgid "Add to Bozo or Spam Filter" #~ msgstr "Добавить в фильтр спама или Bozo" #~ msgid "Cop_y to Folder" #~ msgstr "Скопировать в папку" #~ msgid "Copy to Folder" #~ msgstr "Скопировать в папку" #~ msgid "Co_py Threads to Folder" #~ msgstr "Скопировать подшивку в папку" #~ msgid "Copy Threads to Folder" #~ msgstr "Скопировать подшивку в папку" #~ msgid "Mo_ve to Folder" #~ msgstr "Переместить в папку" #~ msgid "Move Thread to Folder" #~ msgstr "Переместить подшивку в папку" #~ msgid "_Cancel..." #~ msgstr "Отмена..." #, fuzzy #~ msgid "Cancel Selected Article which you Posted" #~ msgstr "Снять отметку с выбранных статей, которые послали вы" #, fuzzy #~ msgid "Supersede Selected Article which you Posted" #~ msgstr "Снять отметку с выбранных статей, которые послали вы" #~ msgid "_Delete" #~ msgstr "Удалить" #~ msgid "Delete" #~ msgstr "Удалить" #~ msgid "Delete Th_reads" #~ msgstr "Удалить подшивки" #~ msgid "Save Articles (A_ttachments only)" #~ msgstr "Сохранить статьи (только вложения)" #~ msgid "Resorting Articles" #~ msgstr "Восстановление статей" #~ msgid "Rethreading Articles" #~ msgstr "Перераскладка статей" #~ msgid "Refiltering Articles" #~ msgstr "Перефильтрация статей" #~ msgid "Rebuilding Header Pane..." #~ msgstr "Перестроение панели заголовка..." #~ msgid "Threading Articles" #~ msgstr "Раскладка статей" #~ msgid "Filtering Articles" #~ msgstr "Фильтрация статей" #~ msgid "Updating Header Pane..." #~ msgstr "Обновление панели заголовка..." #~ msgid "Loading Group \"%s\"" #~ msgstr "Загрузка группы \"%s\"" #~ msgid "Clean group \"%s\"" #~ msgstr "Очистить группу \"%s\"" #~ msgid "" #~ "Remove all messages from group: \n" #~ "%s ?" #~ msgstr "" #~ "Удалить все статьи из группы:\n" #~ "%s ?" #~ msgid "Reset new message counter" #~ msgstr "Сбросить счетчик новых сообщений" #~ msgid "Invalid folder name: \"%s\"" #~ msgstr "Неправильное название папки: \"%s\"" #~ msgid "Please don't begin folders with \"pan.\"; it confuses me terribly." #~ msgstr "" #~ "Пожалуйста, не начинайте названия папок с \"pan.\"; это смущает меня." #~ msgid "New Folder Name:" #~ msgstr "Название новой папки:" #~ msgid "Post anyway, despite these problems?" #~ msgstr "Отправить в любом случае, игнорируя эти проблемы?" #~ msgid "Post anyway, despite this problem?" #~ msgstr "Отправить в любом случае, игнорируя эту проблему?" #~ msgid "" #~ msgstr "<Далее>" #~ msgid "Newsgroups: " #~ msgstr "Группа новостей: " #~ msgid "Open Attachment..." #~ msgstr "Открыть вложение..." #~ msgid "_New Folder..." #~ msgstr "Новая папка..." #~ msgid "Create a new folder." #~ msgstr "Создать новую папку." #~ msgid "_Delete Folder..." #~ msgstr "Удалить папку..." #~ msgid "Delete the selected folder." #~ msgstr "Удалить выбранную папку." #~ msgid "_Edit Article in Folder" #~ msgstr "Правка статьи в папке" #~ msgid "Edit Selected Article in Folder" #~ msgstr "Правка выбранной статьи в папке" #~ msgid "Select all Groups in the Group List" #~ msgstr "Выбрать все группы из списка групп" #~ msgid "_Deselect all Groups" #~ msgstr "Снять выделение со всех групп" #~ msgid "Deselect all Groups in the Group List" #~ msgstr "Снять выделение со всех групп из списка" #~ msgid "Select all Articles in the Article List" #~ msgstr "Выделить все статьи в списке статей" #~ msgid "Add replies to the Article List selection" #~ msgstr "Добавить ответы к выделению списка статей" #~ msgid "Add Thread to the Article List selection" #~ msgstr "Добавить подшивки к выделению списка статей" #~ msgid "Deselect all Articles in the Article List" #~ msgstr "Снять выделение со всех статей в списке" #~ msgid "Filter_s..." #~ msgstr "Фильтры..." #~ msgid "Filter Tool." #~ msgstr "Инструмент \"Фильтр\"." #~ msgid "_Rules..." #~ msgstr "Правила..." #~ msgid "Rules Tool." #~ msgstr "Инструменты правил" #~ msgid "Profiles Tool." #~ msgstr "Инструменты \"Профиль\"." #~ msgid "_Online/Offline Settings..." #~ msgstr "Установки \"в сети\"/\"вне сети\"..." #~ msgid "Online/Offline Settings..." #~ msgstr "Установки \"в сети\"/\"вне сети\"..." #~ msgid "Post a new message to the current group." #~ msgstr "Послать новое сообщение в текущую группу." #~ msgid "Post a reply to the message on the news server." #~ msgstr "Послать ответное сообщение на сервер новостей." #~ msgid "_Reply by E-mail" #~ msgstr "Ответить по почте" #~ msgid "Create a mail reply to the sender." #~ msgstr "Создать почтовый ответ отправителю." #~ msgid "Send a reply both to the author in mail, and to the news server." #~ msgstr "Послать ответное сообщение автору и на сервер новостей." #~ msgid "For_ward article by E-mail" #~ msgstr "Переслать статью по эл.почте" #~ msgid "Forward article by E-mail" #~ msgstr "Переслать статью по эл.почте" #, fuzzy #~ msgid "Send Pending _Messages" #~ msgstr "Отправить это сообщение сейчас" #~ msgid "Send Messages Queued in \"pan.sendlater\"" #~ msgstr "Послать сообщения из папки \"pan.sendlater\"" #~ msgid "_Next Unread Article" #~ msgstr "След. непрочитанная статья" #~ msgid "Previo_us Thread" #~ msgstr "Пред. подшивка" #~ msgid "T_op of Thread" #~ msgstr "Начало подшивки" #~ msgid "Top of Thread" #~ msgstr "Начало подшивки" #~ msgid "Move to the Next Group with Unread Messages." #~ msgstr "Перейти к след. группе с непрочитанными сообщениями." #~ msgid "Move to the Next Group." #~ msgstr "Перейти к след. группе." #~ msgid "Get List of _All Groups" #~ msgstr "Получить список всех групп" #~ msgid "Refresh a list of groups from the selected servers." #~ msgstr "Обновить список групп c выбранных серверов." #~ msgid "Get List of _New Groups" #~ msgstr "Получить список новых групп" #~ msgid "Download a list of new groups from the selected servers." #~ msgstr "Загрузить список новых групп c выбранных серверов." #~ msgid "Import .newsrc..." #~ msgstr "Импортирование .newsrc..." #~ msgid "_Export .newsrc..." #~ msgstr "Экспортирование .newsrc..." #~ msgid "Export .newsrc..." #~ msgstr "Экспортирование .newsrc..." #~ msgid "Pan _Homepage" #~ msgstr "Домашняя страница Pan" #~ msgid "Online Users _Manual..." #~ msgstr "Он-лайн руководство пользователя..." #~ msgid "Online Users _Manual" #~ msgstr "Он-лайн руководство пользователя" #~ msgid "_Feedback..." #~ msgstr "Отзыв..." #~ msgid "Mail Feedback to the Pan Authors" #~ msgstr "Отправить отзыв авторам Pan" #~ msgid "Submit a Pan Bug Report to the GNOME Bug Tracker" #~ msgstr "" #~ "Отправить сообщение об ошибке в Pan в систему отслеживания ошибок GNOME" #~ msgid "_Log Viewer..." #~ msgstr "Просмотр журнала..." #~ msgid "Open the Log Viewer" #~ msgstr "Открыть программу просмотра журнала" #~ msgid "_Zoom/Unzoom Window" #~ msgstr "Масштабировать окно" #~ msgid "Zoom/Unzoom" #~ msgstr "Масштабировать" #~ msgid "Zoom _Group Pane" #~ msgstr "Масштабировать панель групп новостей" #~ msgid "Zoom Group Pane" #~ msgstr "Масштабировать панель групп новостей" #~ msgid "Zoom Header Pa_ne" #~ msgstr "Масштабировать панель заголовка" #~ msgid "Zoom Header Pane" #~ msgstr "Масштабировать панель заголовка" #~ msgid "Zoo_m Article Pane" #~ msgstr "Масштабировать панель статьи" #~ msgid "Zoom Article Pane" #~ msgstr "Масштабировать панель статьи" #~ msgid "Show Art_icle Pane" #~ msgstr "Показать панель статьи" #~ msgid "Show Article Pane" #~ msgstr "Показать панель статьи" #~ msgid "_Rot13 Article Body" #~ msgstr "Закодировать сообщение с помощью Rot13" #~ msgid "Rot13 Article Body" #~ msgstr "Закодировать сообщение с помощью Rot13" #~ msgid "Fill/Wr_ap Article Body" #~ msgstr "Заполнение/Перенос строк в теле сообщения" #~ msgid "Mute Quoted Text" #~ msgstr "Подавить цитируемый текст" #~ msgid "Show All Headers in Article Pane" #~ msgstr "Показывать все заголовки в панели статьи" #~ msgid "E_xpand Selected Threads" #~ msgstr "Развернуть выбранные подшивки" #~ msgid "Expand Selected Threads" #~ msgstr "Развернуть выбранные подшивки" #~ msgid "Expand all Thread_s" #~ msgstr "Развернуть все подшивки" #~ msgid "Expand all Threads" #~ msgstr "Развернуть все подшивки" #~ msgid "Collapse Selected Threads" #~ msgstr "Свернуть выбранные подшивки" #~ msgid "Colla_pse all Threads" #~ msgstr "Свернуть все подшивки" #~ msgid "Mark All Articles in Selected Groups as Read" #~ msgstr "Пометить все статьи в выбранных группах как прочитанные" #~ msgid "Delete all Articles in Selected Groups" #~ msgstr "Удалить все статьи в выбранных группах" #, fuzzy #~ msgid "Get Bodies along with Articles" #~ msgstr "Нет идей, что надо сделать со статьей \"%s\"" #~ msgid "Get _New Articles in Selected Groups" #~ msgstr "Получить новые статьи в выбранных группах" #~ msgid "Get A_ll Articles in Selected Groups" #~ msgstr "Получить все статьи в выбранных группах" #~ msgid "Get All Articles in Selected Groups" #~ msgstr "Получить все статьи в выбранных группах" #~ msgid "Get New Articles in all Su_bscribed Groups" #~ msgstr "Получить новые статьи в группах подписки" #, fuzzy #~ msgid "Get Speci_fic Articles in Selected Groups..." #~ msgstr "Получить все заголовки в выбранных группах" #, fuzzy #~ msgid "Get Specific Articles in Selected Groups" #~ msgstr "Получить все заголовки в выбранных группах" #~ msgid "Refresh Article _Counts" #~ msgstr "Обновить счетчик статей" #~ msgid "Refresh Article Counts" #~ msgstr "Обновить счетчик статей" #~ msgid "Set the properties for the selected group." #~ msgstr "Установить свойства для выбранной группы." #~ msgid "Dele_te..." #~ msgstr "Удалить..." #~ msgid "Delete the selected group(s) from Pan." #~ msgstr "Удалить выбранные группы из Pan." #~ msgid "_Servers" #~ msgstr "Серверы" #~ msgid "Open the Connection Manager" #~ msgstr "Открыть окно диспетчера соединений." #~ msgid "" #~ "1 task still active or queued.\n" #~ "Are you sure you want to exit Pan?" #~ msgstr "" #~ "1 задача еще активна или в очереди.\n" #~ "Вы уверены, что хотите выйти из Pan?" #~ msgid "" #~ "%d tasks still active or queued.\n" #~ "Are you sure you want to exit Pan?" #~ msgstr "" #~ "%d задач еще активны или в очереди.\n" #~ "Вы уверены, что хотите выйти из Pan?" #~ msgid "Unable to parse the geometry string \"%s\"" #~ msgstr "Не удалось разобрать строку геометрии \"%s\"" #, fuzzy #~ msgid "The Task Manager is Empty" #~ msgstr "Открыть окно диспетчера задач." #~ msgid "No Servers Defined" #~ msgstr "Серверы не определены" #~ msgid "Posting and Mailing Article ``%s''" #~ msgstr "Отправка статьи \"%s\" почтой и в группу" #~ msgid "Mailing Article ``%s''" #~ msgstr "Отправка статьи почтой \"%s\"" #~ msgid "I have no idea what I'm doing with Article ``%s''" #~ msgstr "Нет идей, что надо сделать со статьей \"%s\"" #~ msgid "E-Mail send failed.\n" #~ msgstr "Не удалось отправить письмо.\n" #~ msgid "Usenet posting failed.\n" #~ msgstr "Не удалось отправить статью.\n" #~ msgid "Your message was saved in the folder ``pan.sendlater''" #~ msgstr "Ваше сообщение сохранено в папке pan.sendlater" #~ msgid "E-mail Message \"%s\" sent." #~ msgstr "Почтовое сообщение \"%s\" отправлено." #~ msgid "E-mail Message \"%s\" not sent." #~ msgstr "Почтовое сообщение \"%s\" не отправлено." #~ msgid "NNTP Article \"%s\" (%d of %d) posted." #~ msgstr "NNTP статья \"%s\" (часть %d из %d) отправлена." #~ msgid "NNTP Article \"%s\" (%d of %d) not posted." #~ msgstr "NNTP статья \"%s\" (часть %d из %d) не отправлена." #~ msgid "Send Later" #~ msgstr "Отправить позже" #, fuzzy #~ msgid "Edit with E_xternal Editor" #~ msgstr "Ответить с помощью внешнего почтового клиента" #, fuzzy #~ msgid "Edit with External Editor" #~ msgstr "Ответить с помощью внешнего почтового клиента" #~ msgid "Send this Message Later" #~ msgstr "Отправить это сообщение позже" #~ msgid "Rewrap" #~ msgstr "Переразметить" #~ msgid "Rewrap all the text in the Message Body." #~ msgstr "Переразметить весь текст в теле сообщения." #~ msgid "Turn line wrap on/off in the Message Body" #~ msgstr "Включить/Выключить перенос строк в теле сообщения" #~ msgid "The organization you're associated with." #~ msgstr "Организация, с которой вы связаны." #~ msgid "Post To Groups:" #~ msgstr "Отправить в группу:" #~ msgid "Save message to file" #~ msgstr "Сохранить сообщение в файле" #, fuzzy #~ msgid "Couldn't open file `%s'" #~ msgstr "Не удалось найти файл картинки: %s" #, fuzzy #~ msgid "Couldn't exec external editor" #~ msgstr "Не удалось создать каталог \"%s\": %s" #, fuzzy #~ msgid "Couldn't write to file" #~ msgstr "Не удалось создать картинку из файла: %s " #, fuzzy #~ msgid "Pipe read failed" #~ msgstr "Не удалось отправить письмо.\n" #, fuzzy #~ msgid "Unable to open file `%s'" #~ msgstr "Не удалось создать файл \"%s\"" #~ msgid "Unable to write to temp file" #~ msgstr "Не удалось записать во временный файл" #~ msgid "Pan: Import .newsrc File" #~ msgstr "Pan: Импорт файла .newsrc" #~ msgid "Select .newsrc File to Read:" #~ msgstr "Выберите файл .newsrc для чтения:" #~ msgid "Pan: Export .newsrc File" #~ msgstr "Pan: Экспорт файла .newsrc" #~ msgid "Select .newsrc File to Write:" #~ msgstr "Выберите файл .newsrc для записи:" #~ msgid "QUIT failed: %s" #~ msgstr "Сбой команды QUIT: %s" #, fuzzy #~ msgid "Handshake: %s" #~ msgstr "Сбой обмена приветствиями: %s" #~ msgid "NNTP handshake failed: %s" #~ msgstr "Сбой обмена по NNTP: %s" #~ msgid "Handshake failed: %s" #~ msgstr "Сбой обмена приветствиями: %s" #~ msgid "Authentication failed: %s" #~ msgstr "Сбой идентификации: %s" #~ msgid "Authentication failed: need a password" #~ msgstr "Сбой идентификации: необходим пароль" #~ msgid "MODE READER check failed: %s" #~ msgstr "Сбой проверки MODE READE: %s" #, fuzzy #~ msgid "Posting complete: %s" #~ msgstr " неполное " #, fuzzy #~ msgid "Getting article `%s' (Message-ID: %s) body failed: %s" #~ msgstr "Сбой получения статьи с сервера: %s" #~ msgid "No articles found for group \"%s\"" #~ msgstr "В группе \"%s\" статьи не найдены" #~ msgid "Getting header list failed: %s" #~ msgstr "Сбой получения списка заголовков: %s" #, fuzzy #~ msgid "Corrupt header skipped: %s" #~ msgstr "Поврежденный заголовок пропущен - нет даты: %s" #, fuzzy #~ msgid "Getting %d of %d: \"%s\"" #~ msgstr "Получение %s для \"%s\"" #~ msgid "Cancelling message \"%s\"" #~ msgstr "Отмена сообщения \"%s\"" #~ msgid "Specify the geometry of the window." #~ msgstr "Указать геометрию окна." #~ msgid "GEOMETRY" #~ msgstr "Геометрия" #~ msgid "" #~ "Send outgoing messages to stdout instead of smtp/nntp servers for " #~ "debugging purposes." #~ msgstr "" #~ "Отправить исходящие сообщения в stdout вместо smtp/nntp для отладки." #~ msgid "Turn on article cache debugging messages." #~ msgstr "Включить отладочные сообщения кэша статей." #~ msgid "Turn on socket input debugging messages." #~ msgstr "Включить отладочные сообщения ввода сокета" #~ msgid "Turn on socket output debugging messages." #~ msgstr "Включить отладочные сообщения вывода сокета." #~ msgid "Turn on socket input/output debugging messages." #~ msgstr "Включить отладочные сообщения ввода/вывода сокетов." #~ msgid "Same as --debug-socket" #~ msgstr "Тоже что и --debug-socket" #~ msgid "Trace function calls" #~ msgstr "Отследить вызовы функций" #~ msgid "Turn on task scheduler debugging messages." #~ msgstr "Включить отладочные сообщения планировщика заданий." #~ msgid "Turn on attachment decoding debugging messages." #~ msgstr "Включить отладочные сообщения декодирования вложений." #~ msgid "Turn on newsrc decoding debugging messages." #~ msgstr "Включить отладочные сообщения декодирования newsrc." #~ msgid "Turn on gui thread lock debugging messages." #~ msgstr "Включить отладочные сообщения gui thread lock." #~ msgid "Turn on pan object system debugging messages." #~ msgstr "Включить отладочные сообщения системы объектов pan" #~ msgid "" #~ "Turn on most of the generally-useful debug flags. A good first choice " #~ "when preparing a bug report." #~ msgstr "" #~ "Включить большинство обычно полезных флагов отладки. Хороший " #~ "первоначальный выбор при подготовке сообщения об ошибке." #~ msgid "Error writing to socket." #~ msgstr "Ошибка записи в сокет." #~ msgid "pan.sendlater" #~ msgstr "pan.sendlater" #~ msgid "" #~ "%a - abbreviated weekday name\n" #~ "%A - full weekday name\n" #~ "%b - abbreviated month name\n" #~ "%B - full month name\n" #~ "%c - local date & time\n" #~ "%d - day of the month\n" #~ "%H - hour (24-hour clock)\n" #~ "%I - hour (12-hour clock)\n" #~ "%j - day of the year (001-366)\n" #~ "%m - month (01-12)\n" #~ "%M - minute (00-59)\n" #~ "%p - local equivalent of AM/PM\n" #~ "%S - second (00-61)\n" #~ "%x - local date\n" #~ "%X - local time\n" #~ "%y - two-digit year\n" #~ "%Y - four-digit year\n" #~ "%% - %" #~ msgstr "" #~ "%a - сокращенный день недели\n" #~ "%A - полное название дня недели\n" #~ "%b - сокращенное название месяца\n" #~ "%B - полное название месяца\n" #~ "%c - местные дата и время\n" #~ "%d - день месяца\n" #~ "%H - час (24-часовой)\n" #~ "%I - час (12-часовой)\n" #~ "%j - день года (001-366)\n" #~ "%m - месяц (01-12)\n" #~ "%M - минута (00-59)\n" #~ "%p - местный эквивалент для ДП/ПП\n" #~ "%S - секунда (00-61)\n" #~ "%x - местная дата\n" #~ "%X - местное время\n" #~ "%y - две цифры года\n" #~ "%Y - четыре цифры года\n" #~ "%% - %" #~ msgid "Not Named" #~ msgstr "Безымянное" #~ msgid "No Address" #~ msgstr "Нет адреса" #~ msgid "Server Information" #~ msgstr "Информация о сервере" #~ msgid "Profile Name" #~ msgstr "Название профиля" #~ msgid "Server Address" #~ msgstr "Адрес сервера" #~ msgid "Server Port" #~ msgstr "Порт сервера" #~ msgid "Password" #~ msgstr "Пароль" #~ msgid "Maximum Connections:" #~ msgstr "Максимум соединений:" #~ msgid "Idle Seconds Before Timeout:" #~ msgstr "Секунд бездействия до таймаута:" #~ msgid "Use gdk_fontset_load instead of gdk_font_load" #~ msgstr "Использовать gdk_fontset_load вместо gdk_font_load" #~ msgid "" #~ "Toggling this and restarting Pan is a good idea if your fonts aren't " #~ "being displayed properly." #~ msgstr "" #~ "Переключить это и перезапустить Pan -- хорошая идея если ваши шрифты не " #~ "отображаются правильно." #~ msgid "External Editor (%t will be replaced with filename)" #~ msgstr "Внешний редактор (%t будет заменено на имя файла)" #~ msgid "Fill articles for reading at column" #~ msgstr "Заполнить статьи для чтения по столбцу" #~ msgid "Article date format:" #~ msgstr "Формат даты статьи:" #~ msgid "Message Body" #~ msgstr "Тело сообщения" #, fuzzy #~ msgid "Message Body (Monospace)" #~ msgstr "Тело сообщения" #~ msgid "Use System Background" #~ msgstr "Использовать системный фон" #~ msgid "Body Foreground" #~ msgstr "Цвет текста статьи" #~ msgid "Use System Foreground" #~ msgstr "Использовать системный цвет текста" #~ msgid "Quoted Text 2" #~ msgstr "Цитируемый текст 2" #~ msgid "Newsgroups (if more than one group)" #~ msgstr "Группа новостей (если больше одной группы)" #~ msgid "References (if article is a reply)" #~ msgstr "Ссылки (если статья является ответом)" #~ msgid "Reply-To (if different from Author)" #~ msgstr "Обратный адрес (если отличается от автора)" #~ msgid "Headers to Show" #~ msgstr "Показываемые заголовки" #~ msgid "Mouse Button 1:" #~ msgstr "Первая кнопка мыши:" #~ msgid "Selects Article" #~ msgstr "Выбирает статью" #~ msgid "Mouse Button 2:" #~ msgstr "Вторая кнопка мыши:" #~ msgid "Old Articles with no New Replies" #~ msgstr "Старые статьи без новых ответов" #~ msgid "New Articles / Articles with New Replies" #~ msgstr "Новые статьи / статьи с новыми ответами" #~ msgid "Unread Articles / Articles with Unread Replies" #~ msgstr "Непрочитанные статьи / статьи с непрочитанными ответами" #~ msgid "Display article dates in local time instead of UTC" #~ msgstr "Показывать дату статьи в локальном времени вместо UTC" #~ msgid "Grouplist Pane" #~ msgstr "Панель списка групп" #~ msgid "Article Pane" #~ msgstr "Панель статьи" #~ msgid "Thread Pane" #~ msgstr "Панель подшивок" #~ msgid "Loads Group" #~ msgstr "Загружает группу" #~ msgid "Group list font" #~ msgstr "Шрифт списка групп" #~ msgid "Download New Headers when the Group is Loaded" #~ msgstr "Скачать заголовки статей когда группа загружена" #~ msgid "Server \"%s\" is Online" #~ msgstr "Сервер \"%s\" в сети" #~ msgid "Server \"%s\" is Offline; no new tasks will be processed" #~ msgstr "Сервер \"%s\" вне сети; новые задания не будут обработаны" #~ msgid "Maximum Total Number of Connections" #~ msgstr "Максимальное общее число соединений" #~ msgid "Pan should ask before going online" #~ msgstr "Pan должен спрашивать, прежде чем подключиться" #~ msgid "Pan should go online as needed without asking" #~ msgstr "Pan должен при необходимости подключаться к сети не спрашивая" #~ msgid "Pan should quietly stay offline until told otherwise" #~ msgstr "Pan должен оставаться вне сети пока ему не скажут иное" #~ msgid "" #~ "Maximum\n" #~ "Connections" #~ msgstr "" #~ "Максимум\n" #~ "соединений" #~ msgid "Online Status" #~ msgstr "Состояние \"в сети\"" #~ msgid "Reserve" #~ msgstr "Резервировать" #~ msgid "Download Directory:" #~ msgstr "Каталог для скачивания:" #~ msgid "Download Directory" #~ msgstr "Каталог для скачивания" #~ msgid "Data Directory:" #~ msgstr "Каталог данных:" #~ msgid "Data Directory" #~ msgstr "Каталог данных" #~ msgid "" #~ "The cache is used to keep local copies of articles\n" #~ "to reduce the time connected to the network." #~ msgstr "" #~ "Кэш используется для хранения локальной копии статей\n" #~ "и таким образом уменьшает время соединения с сетью." #~ msgid "Disk Cache:" #~ msgstr "Дисковый кэш:" #~ msgid "Megs" #~ msgstr "Мегабайт" #~ msgid "Clear Disk Cache" #~ msgstr "Очистить дисковый кэш" #~ msgid "Delete Cache when exiting Pan" #~ msgstr "Очищать кэш при выходе из Pan" #~ msgid "Import/Export .newsrc files automatically" #~ msgstr "Автоматически импортировать/экспортировать файл .newsrc" #~ msgid "Newsrc Files" #~ msgstr "Файлы .newsrc" #~ msgid "Address" #~ msgstr "Адрес" #~ msgid "New..." #~ msgstr "Новый..." #~ msgid "Edit..." #~ msgstr "Правка..." #~ msgid "Cache" #~ msgstr "Кэш" #~ msgid "Directories" #~ msgstr "Каталоги" #~ msgid "Display - Groups" #~ msgstr "Отобразить - группы" #~ msgid "Display - Threads" #~ msgstr "Отобразить - подшивки" #~ msgid "Display - Article" #~ msgstr "Отобразить - Статью" #~ msgid "General" #~ msgstr "Общие" #~ msgid ".Newsrc Files" #~ msgstr "Файлы .newsrc" #~ msgid "You haven't loaded an article to print." #~ msgstr "Вы не загрузили статью для печати." #~ msgid "Connect Failure" #~ msgstr "Сбой соединения" #~ msgid "Disconnecting" #~ msgstr "Отключение" #~ msgid "Add ``/%s'' to path" #~ msgstr "Добавить `/%s' к пути" #~ msgid "Don't Save Article Text" #~ msgstr "Не сохранять текст статьи" #~ msgid "Use Message-ID" #~ msgstr "Использовать ID cообщения" #~ msgid "Use Subject" #~ msgstr "Использовать тему" #~ msgid "Use Encoded Filename" #~ msgstr "Использовать кодированное имя файла" #~ msgid "Use Article Subject" #~ msgstr "Использовать тему статьи" #~ msgid "Got unexpected response from mail server: expected %d; got %s" #~ msgstr "" #~ "Получен неожиданный ответ от почтового сервера: ожидалось %d; получено %s" #~ msgid "Preparing to Send Mail" #~ msgstr "Подготовка к отправке почты" #~ msgid "Can't parse the From: line; hope for the best." #~ msgstr "Невозможно проанализировать строку \"От:\"; надеюсь на лучшее." #~ msgid "No Sender Specified!" #~ msgstr "Не указан отправитель!" #~ msgid "Sending Mail" #~ msgstr "Отправка почты" #~ msgid "No Known Recipients" #~ msgstr "Неизвестные получатели" #~ msgid "Mail Sent!" #~ msgstr "Почта отправлена!" #~ msgid "Handshaking with mail server" #~ msgstr "Рукопожатие с почтовым сервером" #~ msgid "Connecting to mail server" #~ msgstr "Подключение к почтовому серверу" #~ msgid "Mail Server Not Ready" #~ msgstr "Почтовый сервер не готов" #, fuzzy #~ msgid "Can't connect to %s: %s" #~ msgstr "Не удалось создать каталог \"%s\": %s" #, fuzzy #~ msgid "Socket keepalive option failed: %s" #~ msgstr "Сбой идентификации: %s" #~ msgid "Timed out waiting to read from the server." #~ msgstr "Превышено время ожидания для чтения с сервера." #~ msgid "Lost connection to server" #~ msgstr "Утрачено подключение к серверу" #~ msgid "Error: reading from socket returned %d." #~ msgstr "Ошибка: при чтении из сокета получено %d." #~ msgid "Threading %u articles" #~ msgstr "Раскладка %u статей" #~ msgid "Threaded %u of %u articles" #~ msgstr "Разложено %u статей из %u" #~ msgid "Removed %d articles from local cache" #~ msgstr "Удалено %d статей из локального кэша" #~ msgid "WARNING: %d lines too wide in signature" #~ msgstr "ВНИМАНИЕ: %d слишком широких строк в подписи" #~ msgid "WARNING: %d lines >80 characters in the message." #~ msgstr "Внимание: %d строк содержат больше чем 80 символов." #, fuzzy #~ msgid "ERROR: invalid address ``%s''" #~ msgstr "ОШИБКА: %s \"%s\"" #~ msgid "ERROR: Must have one author in From: line" #~ msgstr "ОШИБКА: в поле \"От:\" должен быть только один автор" #, fuzzy #~ msgid "Unparseable Subject" #~ msgstr "Использовать тему статьи" #~ msgid "unknown@spammesenseless.net" #~ msgstr "unknown@spammesenseless.net" #~ msgid "Decoded \"%s\" from group \"%s\", \"%s\" part #%d" #~ msgstr "Декодировано \"%s\" из группы \"%s\", \"%s\" часть #%d" #~ msgid "Loading %u of %d groups" #~ msgstr "Загрузка %u групп из %d" #, fuzzy #~ msgid "Loaded %d groups for server `%s' in %.1f seconds (%.0f groups/sec)" #~ msgstr "Сохранено %d групп в \"%s\" за %.1f секунд (%.0f групп/сек)" #, fuzzy #~ msgid "Saved %d of %u groups" #~ msgstr "Сохранено %d статей из %u" #~ msgid "Saved %d groups in \"%s\" in %.1f seconds (%.0f groups/sec)" #~ msgstr "Сохранено %d групп в \"%s\" за %.1f секунд (%.0f групп/сек)" #~ msgid "Loaded %d of %d articles" #~ msgstr "Загружено %d статей из %d" #~ msgid "(No Group)" #~ msgstr "(Нет группы)" #, fuzzy #~ msgid "Imported %d groups (%d new) from `%s'" #~ msgstr "Получено %d групп с сервера \"%s\"" #, fuzzy #~ msgid "Couldn't create file `%s' to export newsrc file %s" #~ msgstr "Не удалось создать картинку из файла: %s " #, fuzzy #~ msgid "Exported %d groups (%d subscribed) to `%s'" #~ msgstr "%d групп записано в \"%s\"" #~ msgid "Loading Groups" #~ msgstr "Загрузка групп" #~ msgid "Articles/Mail queued for posting via the \"Send Later\" button" #~ msgstr "" #~ "Статьи/почта поставленные в очередь для отправки с помощью кнопки " #~ "\"Послать позже\"" #~ msgid "Created folder pan.sendlater" #~ msgstr "Создана папка pan.sendlater" #~ msgid "Articles/Mail posted before" #~ msgstr "Статьи/почта посланные раньше" #~ msgid "Created folder pan.sent" #~ msgstr "Создана папка pan.sent" #~ msgid "A newsreader for GNOME" #~ msgstr "Программа чтения новостей для Gnome." #~ msgid "Copyright (C) 1999-2001, Pan Development Team" #~ msgstr "Авторское право (С) 1999-2001, команда разработки Pan" #~ msgid "Lead Programmer" #~ msgstr "Ведущий программист" #~ msgid "Programmer" #~ msgstr "Программист" #~ msgid "Programmer & Documentation" #~ msgstr "Программист и автор документации" #~ msgid "Translation Coordinator" #~ msgstr "Координатор перевода" #~ msgid "Programmer, 0.6 - 0.7" #~ msgstr "Программист, 0.6 - 0.7" #~ msgid "Save" #~ msgstr "Сохранить" #~ msgid "Clear this log." #~ msgstr "Очистить этот журнал." #~ msgid "Close the Log Viewer." #~ msgstr "Закрыть программу просмотра журнала." #~ msgid "Save the log to file" #~ msgstr "Сохранить журнал в файле" #~ msgid "Pan - Log Viewer" #~ msgstr "Pan - Просмотр журнала" #~ msgid "Time" #~ msgstr "Время" #~ msgid "Log Entry" #~ msgstr "Журнальная запись" #~ msgid "Pan: Download Headers for group `%s'" #~ msgstr "Pan: Скачивание заголовков статей группы \"%s\"" #~ msgid "Download New Headers" #~ msgstr "Скачать новые заголовки" #~ msgid "Download All Headers" #~ msgstr "Скачать все заголовки" #~ msgid "Also Download Article Bodies" #~ msgstr "Скачивать также содержимое статьи" #~ msgid "" #~ "When you post a message to a newsgroup, your display name will appear in " #~ "the From field. Type your name in as you would like it to appear." #~ msgstr "" #~ "Когда вы отправляете сообщение в группу новостей, ваше отображаемое имя " #~ "будет появляться в поле \"От:\". Введите ваше имя если вы хотите, чтобы " #~ "оно появлялось." #~ msgid "Display Name:" #~ msgstr "Отображаемое имя:" #~ msgid "For example: John Doe" #~ msgstr "Например: Вася Пупкин" #~ msgid "" #~ "If you belong to an organization and would like for your organization's " #~ "name to appear with your posts, type in your organization name below. " #~ "This information is optional, you may leave it blank." #~ msgstr "" #~ "Если вы член какой-либо организации и хотите чтобы название вашей " #~ "организации появлялось в ваших сообщениях, введите ниже название вашей " #~ "организации. Эта информация не обязательная, вы можете оставить это поле " #~ "пустым." #~ msgid "" #~ "People can reply to your posts by sending you an e-mail message at the " #~ "following address." #~ msgstr "" #~ "Люди смогут отвечать на ваше сообщение посылая вам почту по адресу " #~ "указанному ниже." #~ msgid "For example: user@host.com" #~ msgstr "Например: user@df.ru" #~ msgid "" #~ "Please enter the name of the mail server to use when sending e-mail " #~ "messages." #~ msgstr "" #~ "Пожалуйста введите название почтового сервера для исходящих сообщений" #~ msgid "SMTP Server:" #~ msgstr "SMTP сервер:" #~ msgid "SMTP Port:" #~ msgstr "Порт:" #~ msgid "Type the name of your Internet news server." #~ msgstr "Введите название вашего сервера новостей Интернет." #~ msgid "News (NNTP) server:" #~ msgstr "Сервер новостей (NNTP):" #~ msgid "" #~ "If you must log on to your news (NNTP) server, then select the check box " #~ "below." #~ msgstr "" #~ "Если вы должны регистрироваться на вашем сервере новостей (NNTP), то " #~ "поставьте отметку в поле ниже." #~ msgid "Account name:" #~ msgstr "Учетное имя:" #~ msgid "" #~ "Type in the name you would like Pan to show when referring to this " #~ "profile you have just setup. You can name the profile anything you want " #~ "to." #~ msgstr "" #~ "Введите имя, на которое вы хотелось бы, чтобы ссылался Pan относительно " #~ "этого профиля. Вы можете назвать профиль как угодно. " #~ msgid "For example: UUNET Server" #~ msgstr "Например: UUNET сервер" #~ msgid "Pan Setup Wizard" #~ msgstr "Помощник установки PAN" #~ msgid "Welcome to Pan" #~ msgstr "Добро пожаловать в Pan" #~ msgid "E-mail" #~ msgstr "Эл.почта" #~ msgid "Congratulations" #~ msgstr "Поздравляем" #~ msgid "" #~ "You have successfully entered all of\n" #~ "the information required to set up Pan.\n" #~ "\n" #~ "To save these settings, click Finish." #~ msgstr "" #~ "Вы успешно ввели всю информацию\n" #~ "необходимую для установки Пана.\n" #~ "\n" #~ "Чтобы сохранить эти настройки нажмите \"Финиш!\"." #~ msgid "License" #~ msgstr "Лицензия" #~ msgid "Authors" #~ msgstr "Авторы" #~ msgid "Thanks to" #~ msgstr "Благодарности" #~ msgid "Downloading %d articles from group %s" #~ msgstr "Скачивание %d статей из группы %s" #, fuzzy #~ msgid "Downloading body of \"%s\" (%s) from group %s" #~ msgstr "Загрузка содержимого \"%s\" из группы %s" #, fuzzy #~ msgid "Cached article \"%s\" (%s) from group %s" #~ msgstr "Кэшированная статья \"%s\" из группы %s" #~ msgid "Downloading article \"%s\" failed." #~ msgstr "Загрузка статьи \"%s\" не удалась." #, fuzzy #~ msgid "Saved article body to `%s'" #~ msgstr "Устарело %u статей из %s" #, fuzzy #~ msgid "Pan: Save Multipart Message" #~ msgstr "Декодировать сообщение" #, fuzzy #~ msgid "Updating article counts for %u groups from server `%s'" #~ msgstr "Получено %d групп с сервера \"%s\"" #, fuzzy #~ msgid "Unable to update counts for group `%s'" #~ msgstr "Не удалось установить группу: %s" #~ msgid "all groups" #~ msgstr "все группы" #~ msgid "new groups" #~ msgstr "новые группы" #~ msgid "BUG IN CODE" #~ msgstr "ОШИБКА В КОДЕ" #~ msgid "Getting %s from %s" #~ msgstr "Получение %s из %s" #~ msgid "Got %u groups for \"%s\"" #~ msgstr "Получено %u групп для \"%s\"" #~ msgid "Got %s groups for \"%s\"" #~ msgstr "Получено %s групп для \"%s\"" #~ msgid "List Newsgroups failed: %s" #~ msgstr "Сбой списка группы новостей: %s" #~ msgid "Got %s descriptions for \"%s\"" #~ msgstr "Получено %s описаний групп для \"%s\"" #~ msgid "Got %d groups for server `%s'" #~ msgstr "Получено %d групп с сервера \"%s\"" #~ msgid "Retrieving 0 new groups for \"%s\"" #~ msgstr "Получено 0 новых групп от \"%s\"" #~ msgid "New groups retrieval failed: %s" #~ msgstr "Сбой запроса новых групп: %s" #~ msgid "Retrieving %d new groups for \"%s\"" #~ msgstr "Получено %d новых групп от \"%s\"" #~ msgid "Got %d new groups" #~ msgstr "Получено %d новых групп" #~ msgid "Got %d news groups for \"%s\"" #~ msgstr "Получено %d групп для \"%s\"" #~ msgid "No new articles in group \"%s\"" #~ msgstr "Нет новых статей в группе \"%s\"" #, fuzzy #~ msgid "Getting new Headers %lu of %lu" #~ msgstr "Получение заголовки новых статей %lu из %lu" #~ msgid "Sampling %d articles" #~ msgstr "Выборка %d статей" #, fuzzy #~ msgid "Getting Headers %lu of %lu" #~ msgstr "Получение заголовков статей %lu из %lu" #~ msgid "sample" #~ msgstr "образец" #~ msgid "Not Queued" #~ msgstr "Не поставлено в очередь" #~ msgid "Aborting" #~ msgstr "Прервано" #~ msgid "???" #~ msgstr "???" #~ msgid "%s (%d tries)" #~ msgstr "%s (%d попыток)" #~ msgid "Pan %s Task Manager" #~ msgstr "Pan %s - диспетчер задач" #~ msgid "Move Selected Task(s) Up" #~ msgstr "Переместить выбранные задачи вверх" #~ msgid "Move Selected Task(s) To Top" #~ msgstr "Переместить выбранные задачи доверху" #~ msgid "Move Selected Task(s) Down" #~ msgstr "Переместить выбранные задачи вниз" #~ msgid "Move Selected Task(s) To Bottom" #~ msgstr "Переместить выбранные задачи донизу" #~ msgid "Transfer Rate" #~ msgstr "Скорость передачи" #~ msgid "Pan - Task Manager" #~ msgstr "Pan - диспетчер задач" #~ msgid "Unknown Content Type" #~ msgstr "Неизвестный тип контента" #~ msgid "NONE OF:" #~ msgstr "НИЧЕГО ИЗ:" #~ msgid "ALL OF:" #~ msgstr "ВСЕ ИЗ:" #~ msgid "ANY OF:" #~ msgstr "ЛЮБОЙ ИЗ:" #, fuzzy #~ msgid "Article has complete attachments" #~ msgstr "статья содержит %s двоичных вложений" #, fuzzy #~ msgid "Article does not have incomplete attachments" #~ msgstr "статья содержит %s двоичных вложений" #, fuzzy #~ msgid "Article has incomplete attachments" #~ msgstr "статья содержит %s двоичных вложений" #, fuzzy #~ msgid "Article has complete or incomplete attachments" #~ msgstr "статья содержит %s двоичных вложений" #, fuzzy #~ msgid "Article was posted in the last %d days" #~ msgstr "Статья была послана более чем" #~ msgid "Pan: Edit Filter" #~ msgstr "Pan: Правка фильтра" #~ msgid "Filter Name: " #~ msgstr "Название фильтра: " #~ msgid "Show in Filter Menu" #~ msgstr "Показать в меню фильтров" #~ msgid "Move the selected line up one line" #~ msgstr "Переместить выбранную строку на одну вверх" #~ msgid "Move the selected line down one line" #~ msgstr "Переместить выбранную строку на одну вниз" #~ msgid "Negate" #~ msgstr "Исключить" #~ msgid "Negate the selected line" #~ msgstr "Исключить выбранную строку" #~ msgid "AND" #~ msgstr "И" #~ msgid "OR" #~ msgstr "ИЛИ" #~ msgid "Delete Line" #~ msgstr "Удалить строку" #~ msgid "Delete the selected line" #~ msgstr "Удалить выбранную строку" #~ msgid "Add new Component to Filter." #~ msgstr "Добавить новый компонент к фильтру." #~ msgid "New Filter Component" #~ msgstr "Новый компонент фильтр" #~ msgid "_Article" #~ msgstr "Статья" #~ msgid "contains the phrase" #~ msgstr "содержит фразу" #~ msgid "(%s for user-specified text)" #~ msgstr "(%s для указанного пользователем текста)" #~ msgid "" #~ "See http://pan.rebelbase.com/regexp.txt for a tutorial on how to use " #~ "regular expressions. If regular expressions are turned off, a simple " #~ "case-insensitive wildcard match is used." #~ msgstr "" #~ "См. справочник по использованию регулярных выражений на http://www.linux-" #~ "learn.org/regexp.tut. Если регулярные выражения отключены, используется " #~ "простое не чувствительное к регистру совпадение шаблона." #~ msgid "Regular Expression" #~ msgstr "Регулярное выражение" #~ msgid "lines" #~ msgstr "cтроки" #~ msgid "newsgroups" #~ msgstr "групп новостей" #~ msgid "Article _was at least" #~ msgstr "Статья была по крайней мере" #~ msgid "days old" #~ msgstr "дней назад" #, fuzzy #~ msgid "Article _thread is" #~ msgstr "Статья содержит" #~ msgid "Watched" #~ msgstr "Ожидалась" #~ msgid "Ignored" #~ msgstr "Проигнорирована" #, fuzzy #~ msgid "Neither Watched nor Ignored" #~ msgstr "Показать статьи, не являющиеся ни ожидаемыми ни игнорируемыми" #, fuzzy #~ msgid "Article is _read" #~ msgstr "Статья в" #~ msgid "Article h_as" #~ msgstr "Статья содержит" #~ msgid "Incomplete Attachments" #~ msgstr "Неполное вложение" #~ msgid "No Attachments" #~ msgstr "Нет вложений" #, fuzzy #~ msgid "Article body is _cached locally" #~ msgstr "Статья помечена как" #~ msgid "Article is _new" #~ msgstr "Статья новая" #, fuzzy #~ msgid "Article _score is at least" #~ msgstr "Статья помечена как" #~ msgid "Article is %d or more lines long" #~ msgstr "Cтатья имеет %d или больше строк" #~ msgid "Bozos" #~ msgstr "Bozos" #~ msgid "Spam" #~ msgstr "Спам" #~ msgid "Article is old" #~ msgstr "Статья старая" #~ msgid "Article is new" #~ msgstr "Статья новая" #~ msgid "Subject doesn't match the phrase `%s'" #~ msgstr "Тема не совпадает с фразой \"%s\"" #~ msgid "Subject matches the phrase `%s'" #~ msgstr "Тема совпадает с фразой \"%s\"" #~ msgid "Author doesn't match regular expression `%s'" #~ msgstr "Автор не совпадает с рег.выражением \"%s\"" #~ msgid "Author doesn't match phrase `%s'" #~ msgstr "Автор не совпадает со строкой \"%s\"" #~ msgid "Author matches phrase `%s'" #~ msgstr "Автор совпадает со строкой \"%s\"" #~ msgid "Message-ID doesn't match regular expression `%s'" #~ msgstr "ID сообщения не совпадает с рег.выражением \"%s\"" #~ msgid "Message-ID matches regular expression `%s'" #~ msgstr "ID сообщения совпадает с рег.выражением \"%s\"" #~ msgid "Message-ID doesn't match phrase `%s'" #~ msgstr "ID сообщения не совпадает со строкой \"%s\"" #~ msgid "Message-ID matches phrase `%s'" #~ msgstr "ID сообщения совпадает со строкой \"%s\"" #~ msgid "Article is unread" #~ msgstr "Статья непрочитана" #~ msgid "Article has not been saved or decoded" #~ msgstr "Статья не была сохранена или декодирована" #~ msgid "Article has been saved or decoded" #~ msgstr "Статья была сохранена или декодирована" #, fuzzy #~ msgid "Article is queued for saving or decoding" #~ msgstr "" #~ "Статьи/почта поставленные в очередь для отправки с помощью кнопки " #~ "\"Послать позже\"" #, fuzzy #~ msgid "Article is neither saved nor queued for saving" #~ msgstr "Показать статьи, не являющиеся ни ожидаемыми ни игнорируемыми" #, fuzzy #~ msgid "Thread isn't watched" #~ msgstr "Раскладка %u статей" #, fuzzy #~ msgid "Thread is watched" #~ msgstr "Панель подшивок" #, fuzzy #~ msgid "Thread is ignored" #~ msgstr "Панель подшивок" #, fuzzy #~ msgid "Thread is neither watched nor ignored" #~ msgstr "Показать статьи, не являющиеся ни ожидаемыми ни игнорируемыми" #~ msgid "Pan: Filters" #~ msgstr "Pan: Фильтры" #~ msgid "Add a new filter" #~ msgstr "Добавить новый фильтр" #~ msgid "Edit the selected filter" #~ msgstr "Правка выбранного фильтра" #~ msgid "Remove the selected filter" #~ msgstr "Удалить выбранный фильтр" #~ msgid "Can't write filters to `%s': %s" #~ msgstr "Не удалось записать фильтры в \"%s\": %s" #, fuzzy #~ msgid "Wrote filters to `%s'" #~ msgstr "%d групп записано в \"%s\"" #~ msgid "HEY you forgot to put a message here! :)" #~ msgstr "ЭЙ! Вы забыли вставить сюда сообщение! :)" #~ msgid "" #~ "%s\n" #~ "\n" #~ "Matches: %u\n" #~ "Group: %s\n" #~ "Rule: %s" #~ msgstr "" #~ "%s\n" #~ "\n" #~ "Совпадения: %u\n" #~ "Группа: %s\n" #~ "Правило: %s" #~ msgid "_Play a Sound:" #~ msgstr "Воспроизвести звук:" #~ msgid "Test Sound" #~ msgstr "Проверить звук" #~ msgid "Mark as" #~ msgstr "Пометить как" #~ msgid "_Flag body for download" #~ msgstr "Пометить содержимое для получения" #~ msgid "_Watch thread (highlights the thread)" #~ msgstr "Ожидаемая подшивка (подсвечивает подшивку)" #~ msgid "_Ignore thread (hides the thread by default)" #~ msgstr "Игнорировать подшивку (по умолчанию скрывает подшивку)" #~ msgid "Rule applies to all newsgroups" #~ msgstr "Правило применяется ко всем группам новостей" #~ msgid "Wildcard group specification:" #~ msgstr "Шаблон спецификации группы:" #~ msgid "(e.g., *anime*)" #~ msgstr "(например *anime*)" #~ msgid "Rule applies to specific newsgroups:" #~ msgstr "Правило применяется к указанной группе новостей:" #~ msgid "Rule applies to:" #~ msgstr "Правило применяется к:" #~ msgid "Rule Name:" #~ msgstr "Название правила:" #, fuzzy #~ msgid "Delete Articles by Bozos" #~ msgstr "Выбранные статьи" #~ msgid "Delete Spam" #~ msgstr "Удалить спам" #~ msgid "Loading group `%s'" #~ msgstr "Загрузка группы \"%s\"" #~ msgid "Applying rule `%s' to Group `%s'" #~ msgstr "Применение правила \"%s\" к группе \"%s\"" #~ msgid "Saving group `%s'" #~ msgstr "Сохранение группы \"%s\"" #~ msgid "Refreshing group `%s'" #~ msgstr "Обновление группы \"%s\"" #~ msgid "Rules" #~ msgstr "Правила" #~ msgid "Edit the selected rule." #~ msgstr "Правка выбранного правила." #~ msgid "" #~ "Apply to\n" #~ "Selected\n" #~ "Groups" #~ msgstr "" #~ "Применить\n" #~ "к выбранным\n" #~ "группам" #~ msgid "Apply the Selected Rule to the Selected Groups." #~ msgstr "Применить выбранное правило к выбранным группам" #~ msgid "" #~ "Apply to\n" #~ "Subscribed\n" #~ "Groups" #~ msgstr "" #~ "Применить\n" #~ "к подписанным\n" #~ "группам" #~ msgid "Apply the Selected Rule to all Subscribed Groups." #~ msgstr "Применить выбранное правило к подписанным группам" #~ msgid "%u articles match rule %s" #~ msgstr "%u статей удовлетворяют правилу %s" #~ msgid "Reply To:" #~ msgstr "Обратный адрес:" #~ msgid "Pan: Edit Profile" #~ msgstr "Pan: Правка профиля" #~ msgid "User Profile" #~ msgstr "Профиль пользователя" #~ msgid "You need at least one profile" #~ msgstr "Вам необходим хотя бы один профиль" #~ msgid "Incomplete Profile." #~ msgstr "Неполный профиль." #~ msgid "Copy From" #~ msgstr "Скопировать из" #~ msgid "Use the selected profile to create a new profile" #~ msgstr "Использовать выбранный профиль для создания нового профиля" #~ msgid "Can't write profiles to `%s': %s" #~ msgstr "Не удалось записать профиль в \"%s\": %s" pan-0.162/po/sk.po000066400000000000000000004231541475412772400137210ustar00rootroot00000000000000# Slovak messages for Pan # Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. # Marcel Telka , 2001, 2002, 2003, 2004, 2005. # # $Id$ # msgid "" msgstr "" "Project-Id-Version: pan\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-04-04 20:58+0200\n" "PO-Revision-Date: 2005-03-14 20:52+0100\n" "Last-Translator: Marcel Telka \n" "Language-Team: Slovak \n" "Language: sk\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../pan.desktop.in.h:1 msgid "Pan Newsreader" msgstr "Pan - Program pre prácu s diskusnými skupinami" #: ../pan.desktop.in.h:2 #, fuzzy msgid "Read and Post Usenet Articles" msgstr "Stiahnuť označené príspevky" #: ../pan/data/article-cache.cc:143 ../pan/data/encode-cache.cc:62 #, fuzzy, c-format msgid "Error opening directory: \"%s\": %s" msgstr "Chyba pri otváraní priečinka \"%s\": %s)" #: ../pan/data/article-cache.cc:231 ../pan/data/article-cache.cc:242 #: ../pan/data-impl/data-io.cc:187 ../pan/data-impl/data-io.cc:211 #: ../pan/gui/post-ui.cc:1639 #, fuzzy, c-format msgid "Unable to save \"%s\" %s" msgstr "Nemôžem nastaviť skupinu: %s" #: ../pan/data/article-cache.cc:355 #, fuzzy, c-format msgid "Error opening file \"%s\" %s" msgstr "Chyba pri otváraní súboru \"%s\": %s" #: ../pan/data/article-cache.cc:386 ../pan/data-impl/profiles.cc:174 #: ../pan/data-impl/server.cc:436 ../pan/general/file-util.cc:298 #: ../pan/gui/post-ui.cc:609 ../pan/gui/task-pane.cc:691 #, c-format msgid "Error reading file \"%s\": %s" msgstr "Chyba pri čítaní súboru \"%s\": %s" #: ../pan/data/cert-store.cc:238 #, fuzzy, c-format msgid "Error opening SSL certificate directory: \"%s\": %s" msgstr "Chyba pri otváraní priečinka \"%s\": %s)" #: ../pan/data/cert-store.cc:270 #, c-format msgid "Succesfully added %d SSL PEM certificate(s) to Certificate Store." msgstr "" #. load_group_descriptions (*_data_io); #: ../pan/data-impl/data-impl.cc:109 #, c-format msgid "Loaded data backend in %.1f seconds" msgstr "" #: ../pan/data-impl/data-impl.cc:140 msgid "Pan newsreader server passwords" msgstr "" #: ../pan/data-impl/groups.cc:94 #, fuzzy, c-format msgid "Skipping newsrc file for server \"%s\"" msgstr "Získavam %d nových skupín zo servera \"%s\"" #: ../pan/data-impl/headers.cc:606 #, fuzzy, c-format msgid "Expired %lu old articles from \"%s\"" msgstr "Pridaných %lu častí, %lu príspevkov v \"%s\"" #: ../pan/data-impl/headers.cc:613 #, c-format msgid "" "Unsupported data version for %s headers: %d.\n" "Are you running an old version of Pan by accident?" msgstr "" "Nepodporovaná verzia dát pre hlavičky %s: %d.\n" "Nemáte náhodou spustenú staršiu verziu programu Pan?" #: ../pan/data-impl/headers.cc:628 #, fuzzy, c-format msgid "Loaded %lu articles for \"%s\" in %.1f seconds (%.0f per second)" msgstr "" "Načítaných %lu častí, %lu príspevkov v \"%s\" za %.1f sekúnd (%.0f prísp/s)" #: ../pan/data-impl/headers.cc:857 #, fuzzy, c-format msgid "" "Saved %lu parts, %lu articles in \"%s\" in %.1f seconds (%.0f articles/sec)" msgstr "" "Uložených %lu častí, %d príspevkov v \"%s\" za %.1f sekúnd (%.0f prísp/s)" #: ../pan/data-impl/headers.cc:1173 #, fuzzy, c-format msgid "Added %lu articles to %s." msgstr "Pridaných %lu častí, %lu príspevkov v \"%s\"" #: ../pan/data-impl/server.cc:234 #, c-format msgid "There seems to be no Password set for Server %s." msgstr "" #: ../pan/data-impl/server.cc:238 msgid "The Gnome keyring denied access to the Passwords." msgstr "" #: ../pan/data-impl/xover.cc:239 #, fuzzy, c-format msgid "Error reading from %s: unknown group \"%s\"" msgstr "Chyba pri čítaní zo zásuvky: %s" #. build the locale strings #: ../pan/general/e-util.cc:213 msgid "%l:%M %p" msgstr "" #: ../pan/general/e-util.cc:214 msgid "Today %l:%M %p" msgstr "" #: ../pan/general/e-util.cc:215 msgid "%a %l:%M %p" msgstr "" #: ../pan/general/e-util.cc:216 msgid "%b %d %l:%M %p" msgstr "" #: ../pan/general/e-util.cc:217 msgid "%b %d %Y" msgstr "" #: ../pan/general/e-util.cc:242 msgid "?" msgstr "" #: ../pan/general/text-match.cc:193 #, c-format msgid "Can't use regular expression \"%s\": %s" msgstr "Nemôžem použiť regulárny výraz \"%s\": %s" #: ../pan/general/utf8-utils.cc:213 msgid "Couldn't determine article encoding. Non-UTF8 characters were removed." msgstr "" #: ../pan/gui/actions.cc:274 ../pan/gui/post-ui.cc:417 #, fuzzy msgid "_File" msgstr "/_Súbor" #: ../pan/gui/actions.cc:275 ../pan/gui/post-ui.cc:418 #, fuzzy msgid "_Edit" msgstr "/_Upraviť" #: ../pan/gui/actions.cc:276 ../pan/gui/prefs-ui.cc:1064 #, fuzzy msgid "_Layout" msgstr "_Usporiadanie panelov" #: ../pan/gui/actions.cc:277 #, fuzzy msgid "_Group Pane" msgstr "Panel skupiny" #: ../pan/gui/actions.cc:278 #, fuzzy msgid "_Header Pane" msgstr "Panel hlavičiek" #: ../pan/gui/actions.cc:279 #, fuzzy msgid "_Body Pane" msgstr "Panel tela" #: ../pan/gui/actions.cc:280 #, fuzzy msgid "_View" msgstr "/_Zobraziť" #: ../pan/gui/actions.cc:281 #, fuzzy msgid "Filte_r" msgstr "/Filte_r" #: ../pan/gui/actions.cc:282 #, fuzzy msgid "_Go" msgstr "/_Prejsť na" #: ../pan/gui/actions.cc:283 ../pan/gui/prefs-ui.cc:1091 #, fuzzy msgid "_Actions" msgstr "Akcie" #: ../pan/gui/actions.cc:284 #, fuzzy msgid "_Articles" msgstr "/Príspe_vky" #: ../pan/gui/actions.cc:285 #, fuzzy msgid "G_roups" msgstr "Skupiny" #: ../pan/gui/actions.cc:286 ../pan/gui/actions.cc:287 msgid "_Post" msgstr "P_oslať" #: ../pan/gui/actions.cc:288 msgid "_Help" msgstr "_Pomocník" #: ../pan/gui/actions.cc:291 #, fuzzy msgid "_Read Group" msgstr "/Vy_mazať skupinu" #: ../pan/gui/actions.cc:292 #, fuzzy msgid "Read Group" msgstr "/Vy_mazať skupinu" #: ../pan/gui/actions.cc:296 #, fuzzy msgid "_Mark Selected Groups Read" msgstr "/Označiť skupinu ako p_rečítanú" #: ../pan/gui/actions.cc:297 #, fuzzy msgid "Mark Selected Groups Read" msgstr "/Označiť skupinu ako p_rečítanú" #: ../pan/gui/actions.cc:301 #, fuzzy msgid "_Delete Selected Groups' Articles" msgstr "/_Vymazať príspevky zo skupiny" #: ../pan/gui/actions.cc:302 #, fuzzy msgid "Delete Selected Groups' Articles" msgstr "/_Vymazať príspevky zo skupiny" #: ../pan/gui/actions.cc:306 #, fuzzy msgid "Get New _Headers in Selected Groups" msgstr "Stiahnuť nové hlavičky v označených skupinách" #: ../pan/gui/actions.cc:307 #, fuzzy msgid "Get New Headers in Selected Groups" msgstr "Stiahnuť nové hlavičky v označených skupinách" #: ../pan/gui/actions.cc:311 ../pan/gui/actions.cc:316 #, fuzzy msgid "Get New _Headers in Subscribed Groups" msgstr "Stiahnuť nové hlavičky v prihlásených skupinách" #: ../pan/gui/actions.cc:312 ../pan/gui/actions.cc:317 #, fuzzy msgid "Get New Headers in Subscribed Groups" msgstr "/Stiahnuť nové hlavičky v prihlásených skupinách" #: ../pan/gui/actions.cc:321 #, fuzzy msgid "Get _Headers..." msgstr "/Stiahnuť nové _hlavičky" #: ../pan/gui/actions.cc:322 #, fuzzy msgid "Get Headers..." msgstr "/Stiahnuť nové _hlavičky" #: ../pan/gui/actions.cc:326 ../pan/gui/actions.cc:327 #, fuzzy msgid "Refresh Group List" msgstr "Obnovovanie skupiny \"%s\"" #: ../pan/gui/actions.cc:331 #, fuzzy msgid "_Subscribe" msgstr "/Prihlá_siť" #: ../pan/gui/actions.cc:332 #, fuzzy msgid "Subscribe" msgstr "/Prihlá_siť" #: ../pan/gui/actions.cc:336 #, fuzzy msgid "_Unsubscribe" msgstr "/_Odhlásiť" #: ../pan/gui/actions.cc:337 #, fuzzy msgid "Unsubscribe" msgstr "/_Odhlásiť" #: ../pan/gui/actions.cc:341 #, fuzzy msgid "_Save Articles..." msgstr "Uložiť príspevok ako..." #: ../pan/gui/actions.cc:342 #, fuzzy msgid "Save Articles..." msgstr "Uložiť príspevok ako..." #: ../pan/gui/actions.cc:346 #, fuzzy msgid "Save Articles from Selected _NZB..." msgstr "Uložiť príspevok ako..." #: ../pan/gui/actions.cc:347 #, fuzzy msgid "Save Articles from Selected NZB" msgstr "Uložiť _prílohy" #: ../pan/gui/actions.cc:351 #, fuzzy msgid "Save Articles to an NZB _File..." msgstr "Uložiť príspevok ako..." #: ../pan/gui/actions.cc:352 #, fuzzy msgid "Save Articles to an NZB File" msgstr "Uložiť záznamy do súboru" #: ../pan/gui/actions.cc:356 ../pan/gui/actions.cc:357 #, fuzzy msgid "Print" msgstr "Pan: Tlačiť" #: ../pan/gui/actions.cc:361 msgid "_Import NZB Files..." msgstr "" #: ../pan/gui/actions.cc:366 #, fuzzy msgid "_Cancel Last Task" msgstr "Zrušiť poslednú úlohu" #: ../pan/gui/actions.cc:371 #, fuzzy msgid "_Task Manager" msgstr "/_Súbor/Správca úlo_h..." #: ../pan/gui/actions.cc:376 #, fuzzy msgid "_Event Log" msgstr "Otvoriť Záznamy stavu" #: ../pan/gui/actions.cc:381 #, fuzzy msgid "_Quit" msgstr "/_Upraviť" #: ../pan/gui/actions.cc:386 #, fuzzy msgid "Select _All Articles" msgstr "/_Upraviť/Ozn_ačiť všetky príspevky" #: ../pan/gui/actions.cc:391 #, fuzzy msgid "_Deselect All Articles" msgstr "/_Upraviť/Odznačiť vše_tky príspevky" #: ../pan/gui/actions.cc:396 #, fuzzy msgid "Add Su_bthreads to Selection" msgstr "/_Upraviť/Pridať _podvlákna do výberu" #: ../pan/gui/actions.cc:401 #, fuzzy msgid "Add _Threads to Selection" msgstr "/_Upraviť/Pridať _vlákna do výberu" #: ../pan/gui/actions.cc:406 #, fuzzy msgid "Add _Similar Articles to Selection" msgstr "/_Upraviť/Pridať _vlákna do výberu" #: ../pan/gui/actions.cc:411 #, fuzzy msgid "Select Article _Body" msgstr "/_Upraviť/Vy_brať telo príspevku" #: ../pan/gui/actions.cc:416 #, fuzzy msgid "Edit _Preferences" msgstr "/_Upraviť/_Predvoľby..." #: ../pan/gui/actions.cc:421 #, fuzzy msgid "Edit Selected _Group's Preferences" msgstr "/_Upraviť/_Predvoľby..." #: ../pan/gui/actions.cc:426 ../pan/gui/post-ui.cc:434 #, fuzzy msgid "Edit P_osting Profiles" msgstr "/P_oslať/_Profily posielania..." #: ../pan/gui/actions.cc:431 #, fuzzy msgid "Edit _News Servers" msgstr "Server diskusných skupín" #: ../pan/gui/actions.cc:436 #, fuzzy msgid "Jump to _Group Tab" msgstr "/_Zobraziť/Pre_jsť na záložku skupín" #: ../pan/gui/actions.cc:441 #, fuzzy msgid "Jump to _Header Tab" msgstr "/_Zobraziť/Prejsť na záložku _hlavičiek" #: ../pan/gui/actions.cc:446 #, fuzzy msgid "Jump to _Body Tab" msgstr "/_Zobraziť/Prejsť na záložku _tela" #: ../pan/gui/actions.cc:451 #, fuzzy msgid "_Rot13 Selected Text" msgstr "Rot13 označený text" #: ../pan/gui/actions.cc:456 #, fuzzy msgid "Clear _Header Pane" msgstr "Panel hlavičiek" #: ../pan/gui/actions.cc:461 #, fuzzy msgid "Clear _Body Pane" msgstr "Panel tela" #: ../pan/gui/actions.cc:466 #, fuzzy msgid "Cache Article" msgstr "Zrušovanie príspevku" #: ../pan/gui/actions.cc:471 #, fuzzy msgid "Read Article" msgstr "Získavanie príspevkov" #: ../pan/gui/actions.cc:476 #, fuzzy msgid "Show Article Information" msgstr "Informácie o profile" #: ../pan/gui/actions.cc:481 #, fuzzy msgid "Read _More" msgstr "Prečítať viac" #: ../pan/gui/actions.cc:482 msgid "Read More" msgstr "Prečítať viac" #: ../pan/gui/actions.cc:486 msgid "Read _Back" msgstr "" #: ../pan/gui/actions.cc:487 #, fuzzy msgid "Read Back" msgstr "/_Prejsť na/Prečítať späť" #: ../pan/gui/actions.cc:491 #, fuzzy msgid "Next _Unread Group" msgstr "/_Prejsť na/Nasledujúca _neprečítaná skupina" #: ../pan/gui/actions.cc:496 #, fuzzy msgid "Next _Group" msgstr "/_Prejsť na/Nasled_ujúca skupina" #: ../pan/gui/actions.cc:501 #, fuzzy msgid "Next _Unread Article" msgstr "/_Prejsť na/Nasled_ujúci neprečítaný príspevok" #: ../pan/gui/actions.cc:502 #, fuzzy msgid "Next Unread Article" msgstr "Prečítať nasledujúci neprečítaný príspevok" #: ../pan/gui/actions.cc:506 #, fuzzy msgid "Next _Article" msgstr "/_Prejsť na/N_asledujúci príspevok" #: ../pan/gui/actions.cc:507 #, fuzzy msgid "Next Article" msgstr "/_Prejsť na/N_asledujúci príspevok" #: ../pan/gui/actions.cc:511 #, fuzzy msgid "Next _Watched Article" msgstr "/_Prejsť na/Nasledujúci _sledovaný príspevok" #: ../pan/gui/actions.cc:516 #, fuzzy msgid "Next Unread _Thread" msgstr "/_Prejsť na/Nasledujúce neprečí_tané vlákno" #: ../pan/gui/actions.cc:517 #, fuzzy msgid "Next Unread Thread" msgstr "Prečítať nasledujúce neprečítané vlákno" #: ../pan/gui/actions.cc:521 #, fuzzy msgid "Next Threa_d" msgstr "/_Prejsť na/Nasle_dujúce vlákno" #: ../pan/gui/actions.cc:526 #, fuzzy msgid "Pre_vious Article" msgstr "/_Prejsť na/Pre_dchádzajúci príspevok" #: ../pan/gui/actions.cc:531 #, fuzzy msgid "Previous _Thread" msgstr "/_Prejsť na/Predchádzajúce vlákno" #: ../pan/gui/actions.cc:536 #, fuzzy msgid "_Parent Article" msgstr "/_Prejsť na/Rodičovský _príspevok" #: ../pan/gui/actions.cc:541 #, fuzzy msgid "Ignore _Author" msgstr "/_Ignorovať vlákno" #: ../pan/gui/actions.cc:545 #, fuzzy msgid "_Watch Thread" msgstr "/_Sledovať vlákno" #: ../pan/gui/actions.cc:550 #, fuzzy msgid "_Ignore Thread" msgstr "/_Ignorovať vlákno" #: ../pan/gui/actions.cc:555 ../pan/gui/actions.cc:556 #, fuzzy msgid "_Toggle Flag On/Off for Thread" msgstr "/_Sledovať vlákno" #: ../pan/gui/actions.cc:560 ../pan/gui/actions.cc:561 #, fuzzy msgid "_Turn Flag Off for Thread" msgstr "/_Sledovať vlákno" #: ../pan/gui/actions.cc:565 ../pan/gui/actions.cc:566 #, fuzzy msgid "_Select All Flagged Threads" msgstr "/_Prejsť na/Nasl_edujúce nové vlákno" #: ../pan/gui/actions.cc:570 ../pan/gui/actions.cc:571 #, fuzzy msgid "_Go to Next Flagged Thread" msgstr "/_Prejsť na/Nasl_edujúce nové vlákno" #: ../pan/gui/actions.cc:575 ../pan/gui/actions.cc:576 #, fuzzy msgid "_Go to Last Flagged Thread" msgstr "/_Prejsť na/Nasl_edujúce nové vlákno" #: ../pan/gui/actions.cc:580 ../pan/gui/actions.cc:581 #, fuzzy msgid "_Invert Selection" msgstr "Invertovať vybraný riadok" #: ../pan/gui/actions.cc:585 #, fuzzy msgid "Edit Article's Watch/Ignore/Score..." msgstr "/Príspe_vky/_Vytvoriť bodovanie..." #: ../pan/gui/actions.cc:590 #, fuzzy msgid "Add a _Scoring Rule..." msgstr "Pridať nové bodovanie" #: ../pan/gui/actions.cc:595 #, fuzzy msgid "Cance_l Article..." msgstr "Zrušovanie príspevku" #: ../pan/gui/actions.cc:600 #, fuzzy msgid "_Supersede Article..." msgstr "/_Uložiť príspevok ako..." #: ../pan/gui/actions.cc:605 #, fuzzy msgid "_Delete Article" msgstr "_Vymazať príspevok" #: ../pan/gui/actions.cc:610 #, fuzzy msgid "Clear Article Cache" msgstr "Vyrovnávacia pamäť príspevkov" #: ../pan/gui/actions.cc:615 #, fuzzy msgid "_Mark Article as Read" msgstr "Príspevok je prečítaný" #: ../pan/gui/actions.cc:620 #, fuzzy msgid "Mark Article as _Unread" msgstr "Príspevok je neprečítaný" #: ../pan/gui/actions.cc:626 #, fuzzy msgid "_Mark Thread as Read" msgstr "Príspevok je prečítaný" #: ../pan/gui/actions.cc:631 #, fuzzy msgid "Mark Thread as _Unread" msgstr "Príspevok je neprečítaný" #: ../pan/gui/actions.cc:636 #, fuzzy msgid "_Post to Newsgroup" msgstr "Poslať do diskusnej skupiny" #: ../pan/gui/actions.cc:637 msgid "Post to Newsgroup" msgstr "Poslať do diskusnej skupiny" #: ../pan/gui/actions.cc:641 #, fuzzy msgid "_Followup to Newsgroup" msgstr "/P_oslať/_Prispieť do diskusnej skupiny..." #: ../pan/gui/actions.cc:642 #, fuzzy msgid "Followup to Newsgroup" msgstr "/P_oslať/_Prispieť do diskusnej skupiny..." #: ../pan/gui/actions.cc:646 #, fuzzy msgid "_Reply to Author in Mail" msgstr "/Príspe_vky/_Nezaujímavý autor" #: ../pan/gui/actions.cc:651 #, fuzzy msgid "_Pan Home Page" msgstr "/_Pomocník/Domo_vská stránka programu Pan..." #: ../pan/gui/actions.cc:656 #, fuzzy msgid "Give _Feedback or Report a Bug..." msgstr "/_Pomocník/Oznámiť chy_bu..." #: ../pan/gui/actions.cc:661 msgid "_Tip Jar..." msgstr "" #: ../pan/gui/actions.cc:666 #, fuzzy msgid "_About" msgstr "O programe" #: ../pan/gui/actions.cc:671 msgid "Edit _SSL Certificates" msgstr "" #: ../pan/gui/actions.cc:685 #, fuzzy msgid "_Thread Headers" msgstr "Viac hlavičiek" #: ../pan/gui/actions.cc:686 #, fuzzy msgid "_Wrap Article Body" msgstr "/_Zobraziť/_Zalomiť telo príspevku" #: ../pan/gui/actions.cc:687 #, fuzzy msgid "Mute _Quoted Text" msgstr "/_Zobraziť/Potlačiť _citovaný text" #: ../pan/gui/actions.cc:688 #, fuzzy msgid "Show All _Headers in Body Pane" msgstr "/_Zobraziť/Zobraziť všetky _hlavičky v paneli tela" #: ../pan/gui/actions.cc:689 #, fuzzy msgid "Show _Smilies as Graphics" msgstr "Zobraziť _výstrahu:" #: ../pan/gui/actions.cc:690 msgid "Show *Bold*, __Underlined__, and /Italic/" msgstr "" #: ../pan/gui/actions.cc:691 msgid "Size Pictures to _Fit" msgstr "" #: ../pan/gui/actions.cc:692 #, fuzzy msgid "Use _Monospace Font" msgstr "Neproporcionáln_e písmo:" #: ../pan/gui/actions.cc:693 msgid "Set Focus to Images" msgstr "" #: ../pan/gui/actions.cc:694 msgid "Highlight _URLs" msgstr "" #: ../pan/gui/actions.cc:697 #, fuzzy msgid "_Work Online" msgstr "/_Súbor/Pracovať _pripojený" #: ../pan/gui/actions.cc:698 #, fuzzy msgid "_Tabbed Layout" msgstr "/_Zobraziť/_Vzhľad so záložkami" #: ../pan/gui/actions.cc:699 #, fuzzy msgid "Show Group _Pane" msgstr "/_Zobraziť/Zobraziť _panel skupín" #: ../pan/gui/actions.cc:700 #, fuzzy msgid "Show Hea_der Pane" msgstr "/_Zobraziť/Zobraziť panel hla_vičiek" #: ../pan/gui/actions.cc:701 #, fuzzy msgid "Show Bod_y Pane" msgstr "/_Zobraziť/Zobraziť _panel tela" #: ../pan/gui/actions.cc:702 msgid "Show _Toolbar" msgstr "" #: ../pan/gui/actions.cc:703 #, fuzzy msgid "Abbreviate Group Names" msgstr "/_Zobraziť/Skrátiť _názvy v paneli skupín" #: ../pan/gui/actions.cc:705 #, fuzzy msgid "Match Only _Unread Articles" msgstr "Zobraziť len nové príspevky" #: ../pan/gui/actions.cc:705 #, fuzzy msgid "Match Only Unread Articles" msgstr "Zobraziť len nové príspevky" #: ../pan/gui/actions.cc:706 #, fuzzy msgid "Match Only _Cached Articles" msgstr "Zobraziť len príspevky uložené vo vyrovnávacej pamäti" #: ../pan/gui/actions.cc:706 #, fuzzy msgid "Match Only Cached Articles" msgstr "Zobraziť len príspevky uložené vo vyrovnávacej pamäti" #: ../pan/gui/actions.cc:707 #, fuzzy msgid "Match Only _Complete Articles" msgstr "Zobraziť len úplné prílohy" #: ../pan/gui/actions.cc:707 #, fuzzy msgid "Match Only Complete Articles" msgstr "Zobraziť len úplné prílohy" #: ../pan/gui/actions.cc:708 #, fuzzy msgid "Match Only _My Articles" msgstr "Zobraziť len moje príspevky" #: ../pan/gui/actions.cc:708 #, fuzzy msgid "Match Only My Articles" msgstr "Zobraziť len moje príspevky" #: ../pan/gui/actions.cc:709 #, fuzzy msgid "Match Only _Watched Articles" msgstr "Zobraziť len sledované príspevky" #: ../pan/gui/actions.cc:709 msgid "Match Only Watched Articles" msgstr "Zobraziť len sledované príspevky" #: ../pan/gui/actions.cc:711 #, fuzzy msgid "Match Scores of 9999 (_Watched)" msgstr "/Filte_r/Vyhovujú príspevky s bodovaním 9999 (sledované)" #: ../pan/gui/actions.cc:712 #, fuzzy msgid "Match Scores of 5000...9998 (_High)" msgstr "/Filte_r/Vyhovujú príspevky s bodovaním medzi 5000 a 9998 (vysoké)" #: ../pan/gui/actions.cc:713 #, fuzzy msgid "Match Scores of 1...4999 (Me_dium)" msgstr "/Filte_r/Vyhovujú príspevky s bodovaním medzi 1 a 4999 (stredné)" #: ../pan/gui/actions.cc:714 #, fuzzy msgid "Match Scores of 0 (_Normal)" msgstr "/Filte_r/Vyhovujú príspevky s bodovaním 0 (bežné)" #: ../pan/gui/actions.cc:715 #, fuzzy msgid "Match Scores of -9998...-1 (_Low)" msgstr "/Filte_r/Vyhovujú príspevky s bodovaním medzi -9998 a -1 (nízke)" #: ../pan/gui/actions.cc:716 #, fuzzy msgid "Match Scores of -9999 (_Ignored)" msgstr "/Filte_r/Vyhovujú príspevky s bodovaním -9999 (ignorované)" #: ../pan/gui/actions.cc:718 msgid "Enable/Disable All _Rules" msgstr "" #: ../pan/gui/actions.cc:744 #, fuzzy msgid "Show Matching _Articles" msgstr "/Filte_r/Zobraziť zodpovedajúce príspevky" #: ../pan/gui/actions.cc:745 #, fuzzy msgid "Show Matching Articles' _Threads" msgstr "/Filte_r/Zobraziť vlákna zodpovedajúcich príspevkov" #: ../pan/gui/actions.cc:746 #, fuzzy msgid "Show Matching Articles' _Subthreads" msgstr "/Filte_r/Zobraziť podvlákna zodpovedajúcich príspevkov" #: ../pan/gui/body-pane.cc:1011 #, fuzzy, c-format msgid "Unnamed File" msgstr "Vybrať súbor s podpisom" #: ../pan/gui/body-pane.cc:1092 ../pan/gui/gui.cc:1864 #: ../pan/gui/header-pane.cc:1188 ../pan/gui/header-pane.cc:1617 #: ../pan/gui/post-ui.cc:2496 ../pan/gui/prefs-ui.cc:833 #: ../pan/gui/score-add-ui.cc:139 msgid "Subject" msgstr "Predmet" #: ../pan/gui/body-pane.cc:1094 ../pan/gui/gui.cc:1864 #, fuzzy msgid "From" msgstr "Od" #: ../pan/gui/body-pane.cc:1096 ../pan/gui/gui.cc:1865 #: ../pan/gui/header-pane.cc:1695 ../pan/gui/log-ui.cc:305 #: ../pan/gui/prefs-ui.cc:829 msgid "Date" msgstr "Dátum" #: ../pan/gui/body-pane.cc:1103 msgid "Newsgroups" msgstr "Diskusné skupiny" #: ../pan/gui/body-pane.cc:1108 #, fuzzy msgid "Followup-To" msgstr "Prispieť-do" #: ../pan/gui/body-pane.cc:1118 msgid "Reply-To" msgstr "Odpoveď-pre" #: ../pan/gui/body-pane.cc:1160 msgid " from " msgstr "" #: ../pan/gui/body-pane.cc:1162 msgid " at " msgstr "" #: ../pan/gui/body-pane.cc:1264 #, c-format msgid "" "This is a PGP-Signed message.\n" "\n" "Signer : %s ('%s')\n" "Valid until : %s\n" "Created on : %s" msgstr "" #: ../pan/gui/body-pane.cc:1269 msgid "always" msgstr "" #: ../pan/gui/body-pane.cc:1485 msgid "Copy _URL" msgstr "" #: ../pan/gui/body-pane.cc:1680 #, fuzzy msgid "Save attachment as ...." msgstr "Uložiť _prílohy" #: ../pan/gui/body-pane.cc:1683 #, fuzzy msgid "Save all attachments" msgstr "Uložiť _prílohy" #. add a toolbar for attachments #: ../pan/gui/body-pane.cc:1753 msgid "Attachments" msgstr "Prílohy" #. update the titlebar #: ../pan/gui/dl-headers-ui.cc:106 ../pan/gui/gui.cc:973 #: ../pan/gui/gui.cc:1592 ../pan/gui/gui.cc:1893 #: ../pan/gui/score-add-ui.cc:602 msgid "Pan" msgstr "" #: ../pan/gui/dl-headers-ui.cc:112 #, fuzzy, c-format msgid "%d Group" msgid_plural "%d Groups" msgstr[0] "Skupiny" msgstr[1] "Skupiny" #: ../pan/gui/dl-headers-ui.cc:135 #, fuzzy msgid "Get the last N _days' headers: " msgstr "Stiahnuť na_jnovšie hlavičky: " #: ../pan/gui/dl-headers-ui.cc:143 #, fuzzy msgid "Get _new headers" msgstr "/Stiahnuť nové _hlavičky" #: ../pan/gui/dl-headers-ui.cc:147 #, fuzzy msgid "Get _all headers" msgstr "Stiahnuť _všetky hlavičky" #: ../pan/gui/dl-headers-ui.cc:151 #, fuzzy msgid "Get the _latest N headers: " msgstr "Stiahnuť na_jnovšie hlavičky: " #: ../pan/gui/e-action-combo-box.c:388 ../pan/gui/prefs-ui.cc:826 #, fuzzy msgid "Action" msgstr "Akcie" #: ../pan/gui/e-action-combo-box.c:389 msgid "A GtkRadioAction" msgstr "" #: ../pan/gui/e-charset.c:51 ../pan/gui/task-pane.cc:518 msgid "Unknown" msgstr "Neznámy" #: ../pan/gui/e-charset.c:52 msgid "Arabic" msgstr "" #: ../pan/gui/e-charset.c:53 msgid "Baltic" msgstr "Pobaltské" #: ../pan/gui/e-charset.c:54 msgid "Central European" msgstr "Stredoeurópske" #: ../pan/gui/e-charset.c:55 #, fuzzy msgid "Chinese" msgstr "Riadkov" #: ../pan/gui/e-charset.c:56 msgid "Cyrillic" msgstr "Azbuka" #: ../pan/gui/e-charset.c:57 msgid "Greek" msgstr "Grécky" #: ../pan/gui/e-charset.c:58 msgid "Hebrew" msgstr "" #: ../pan/gui/e-charset.c:59 msgid "Japanese" msgstr "Japonsky" #: ../pan/gui/e-charset.c:60 msgid "Korean" msgstr "Kórejsky" #: ../pan/gui/e-charset.c:61 msgid "Thai" msgstr "" #: ../pan/gui/e-charset.c:62 msgid "Turkish" msgstr "Turecky" #: ../pan/gui/e-charset.c:63 #, fuzzy msgid "Unicode" msgstr "Unikód, UTF-8" #: ../pan/gui/e-charset.c:64 #, fuzzy msgid "Western European" msgstr "Stredoeurópske" #: ../pan/gui/e-charset.c:65 #, fuzzy msgid "Western European, New" msgstr "Západné, Nové" #: ../pan/gui/e-charset.c:84 ../pan/gui/e-charset.c:85 #: ../pan/gui/e-charset.c:86 #, fuzzy msgid "Traditional" msgstr "Čínsky (tradične)" #: ../pan/gui/e-charset.c:87 ../pan/gui/e-charset.c:88 #: ../pan/gui/e-charset.c:89 ../pan/gui/e-charset.c:90 #, fuzzy msgid "Simplified" msgstr "Čínsky (zjednodušene)" #: ../pan/gui/e-charset.c:93 #, fuzzy msgid "Ukrainian" msgstr "Azbuka, Ukrajinská" #: ../pan/gui/e-charset.c:96 msgid "Visual" msgstr "" #: ../pan/gui/e-charset-combo-box.c:93 ../pan/gui/gui.cc:2058 #: ../pan/gui/post-ui.cc:519 ../pan/gui/prefs-ui.cc:737 #, fuzzy msgid "Character Encoding" msgstr "_Znaková sada:" #: ../pan/gui/e-charset-combo-box.c:117 msgid "Enter the character set to use" msgstr "" #: ../pan/gui/e-charset-combo-box.c:336 msgid "Other..." msgstr "" #: ../pan/gui/e-cte-dialog.c:78 #, fuzzy msgid "Default encoding" msgstr "_Znaková sada:" #: ../pan/gui/e-cte-dialog.c:80 #, fuzzy msgid "7Bit Encoding" msgstr "_Znaková sada:" #: ../pan/gui/e-cte-dialog.c:82 #, fuzzy msgid "8Bit Encoding" msgstr "_Znaková sada:" #: ../pan/gui/e-cte-dialog.c:84 #, fuzzy msgid "BASE64 Encoding" msgstr "_Znaková sada:" #: ../pan/gui/e-cte-dialog.c:86 #, fuzzy msgid "Quoted-Printable Encoding" msgstr "Panel _tela" #: ../pan/gui/group-pane.cc:500 msgid "Group" msgstr "Skupina" #: ../pan/gui/group-pane.cc:501 #, fuzzy msgid "Group (regex)" msgstr "Vlastnosti skupiny" #: ../pan/gui/group-pane.cc:913 #, fuzzy msgid "Subscribed Groups" msgstr "Prihlásené diskusné skupiny" #: ../pan/gui/group-pane.cc:914 #, fuzzy msgid "Other Groups" msgstr "Nové skupiny" #: ../pan/gui/group-pane.cc:954 ../pan/gui/score-view-ui.cc:157 #, fuzzy msgid "Name" msgstr "_Meno:" #: ../pan/gui/group-prefs-dialog.cc:156 #, fuzzy msgid "No Profiles defined in Edit|Posting Profiles." msgstr "/P_oslať/_Profily posielania..." #: ../pan/gui/group-prefs-dialog.cc:231 #, fuzzy msgid "Pan: Group Preferences" msgstr "Pan predvoľby" #: ../pan/gui/group-prefs-dialog.cc:247 #, fuzzy, c-format msgid "Properties for Groups" msgstr "Vlastnosti pre \"%s\"" #: ../pan/gui/group-prefs-dialog.cc:249 #, fuzzy, c-format msgid "Properties for %s" msgstr "Vlastnosti pre \"%s\"" #: ../pan/gui/group-prefs-dialog.cc:257 #, fuzzy msgid "Character _encoding:" msgstr "_Znaková sada:" #: ../pan/gui/group-prefs-dialog.cc:259 #, fuzzy msgid "Directory for Saving Attachments" msgstr "Priečinok pre ukladanie príloh" #: ../pan/gui/group-prefs-dialog.cc:269 #, fuzzy msgid "Directory for _saving attachments:" msgstr "Priečinok pre ukladanie príloh" #: ../pan/gui/group-prefs-dialog.cc:271 #, fuzzy msgid "Posting _profile:" msgstr "Pan: Profil" #: ../pan/gui/group-prefs-dialog.cc:277 msgid "Spellchecker _language:" msgstr "" #: ../pan/gui/gui.cc:273 msgid "Open the Task Manager" msgstr "Otvoriť správcu úloh" #: ../pan/gui/gui.cc:301 #, fuzzy msgid "Open the Event Log" msgstr "Otvoriť Záznamy stavu" #: ../pan/gui/gui.cc:561 msgid "Save NZB's Files" msgstr "" #: ../pan/gui/gui.cc:588 msgid "Untitled.nzb" msgstr "" #: ../pan/gui/gui.cc:590 #, fuzzy msgid "Save NZB File as..." msgstr "Uložiť príspevok ako..." #: ../pan/gui/gui.cc:757 msgid "Import NZB Files" msgstr "" #: ../pan/gui/gui.cc:765 ../pan/gui/post-ui.cc:3197 #, fuzzy msgid "NZB Files" msgstr "Súbory" #: ../pan/gui/gui.cc:770 #, fuzzy msgid "All Files" msgstr "Súbory" #: ../pan/gui/gui.cc:1258 #, fuzzy msgid "Unable to supersede article." msgstr "/_Uložiť príspevok ako..." #: ../pan/gui/gui.cc:1259 ../pan/gui/gui.cc:1333 msgid "The article doesn't match any of your posting profiles." msgstr "" #: ../pan/gui/gui.cc:1306 msgid "Revise and send this article to replace the old one." msgstr "" #: ../pan/gui/gui.cc:1307 ../pan/gui/gui.cc:1370 msgid "Be patient! It will take time for your changes to take effect." msgstr "" #: ../pan/gui/gui.cc:1332 #, fuzzy msgid "Unable to cancel article." msgstr "Zrušovanie príspevku" #: ../pan/gui/gui.cc:1369 msgid "Send this article to ask your server to cancel your other one." msgstr "" #: ../pan/gui/gui.cc:1387 msgid "You marked some articles for deletion" msgstr "" #: ../pan/gui/gui.cc:1388 #, fuzzy msgid "Are you sure you want to delete them?" msgstr "" "Ste si istý, že chcete odstrániť týchto %d skupín/priečinkov a ich príspevky?" #: ../pan/gui/gui.cc:1413 #, fuzzy msgid "Always trust" msgstr "Editor" #: ../pan/gui/gui.cc:1416 msgid "Do you want to accept it permanently (deletable afterwards) ?" msgstr "" #: ../pan/gui/gui.cc:1595 #, fuzzy msgid "Copyright \\u00A9 2002-2012 Charles Kerr and others" msgstr "Autorské práva © 2003 Charles Kerr" #: ../pan/gui/gui.cc:1600 msgid "translator-credits" msgstr "" #: ../pan/gui/gui.cc:1709 #, fuzzy msgid "_1. Group Pane" msgstr "Panel skupiny" #: ../pan/gui/gui.cc:1710 #, fuzzy msgid "_2. Header Pane" msgstr "Panel hlavičiek" #: ../pan/gui/gui.cc:1711 #, fuzzy msgid "_3. Body Pane" msgstr "Panel tela" #: ../pan/gui/gui.cc:1800 ../pan/gui/gui.cc:1815 msgid " Bytes" msgstr "" #: ../pan/gui/gui.cc:1803 msgid " KB" msgstr "" #: ../pan/gui/gui.cc:1806 msgid " MB" msgstr "" #: ../pan/gui/gui.cc:1809 msgid " GB" msgstr "" #: ../pan/gui/gui.cc:1812 msgid " TB" msgstr "" #: ../pan/gui/gui.cc:1844 #, fuzzy, c-format msgid "This article is complete with %d part." msgid_plural "This article has all %d parts." msgstr[0] "Príspevok nemá prílohy" msgstr[1] "Príspevok nemá prílohy" #: ../pan/gui/gui.cc:1846 #, fuzzy, c-format msgid "This article is missing %d part." msgid_plural "This article is missing %d of its %d parts:" msgstr[0] "Príspevok nemá prílohy" msgstr[1] "Príspevok nemá prílohy" #: ../pan/gui/gui.cc:1865 ../pan/gui/header-pane.cc:1190 #, fuzzy msgid "Message-ID" msgstr "_ID-správy:" #: ../pan/gui/gui.cc:1866 ../pan/gui/header-pane.cc:1665 #: ../pan/gui/prefs-ui.cc:830 msgid "Lines" msgstr "Riadkov" #: ../pan/gui/gui.cc:1866 msgid "Size" msgstr "" #: ../pan/gui/gui.cc:1867 ../pan/gui/header-pane.cc:1680 #: ../pan/gui/prefs-ui.cc:828 msgid "Bytes" msgstr "" #: ../pan/gui/gui.cc:1917 msgid "" "Error loading iconv library. Some Charsets in the GUI will not be able to be " "encoded." msgstr "" #: ../pan/gui/gui.cc:2059 #, fuzzy msgid "Body Pane Encoding" msgstr "Panel _tela" #: ../pan/gui/gui.cc:2090 ../pan/gui/task-pane.cc:569 #, c-format msgid "Offline" msgstr "Nepripojený" #: ../pan/gui/gui.cc:2094 #, fuzzy, c-format msgid "Closing %d connection" msgid_plural "Closing %d connections" msgstr[0] "Zatváram %d spojení" msgstr[1] "Zatváram %d spojení" #: ../pan/gui/gui.cc:2096 ../pan/gui/gui.cc:2126 #, c-format msgid "No Connections" msgstr "Bez spojení" #: ../pan/gui/gui.cc:2100 #, fuzzy, c-format msgid "Connecting" msgstr "Spojenie" #: ../pan/gui/gui.cc:2113 #, c-format msgid "%s: %d idle, %d active @ %.1f KiBps" msgstr "" #: ../pan/gui/gui.cc:2169 #, c-format msgid "No Tasks" msgstr "Bez úloh" #: ../pan/gui/gui.cc:2171 ../pan/gui/prefs-ui.cc:1047 msgid "Tasks" msgstr "Úlohy" #: ../pan/gui/gui.cc:2182 ../pan/gui/task-pane.cc:435 #, c-format msgid "%lu tasks, %s, %.1f KiBps, ETA %d:%02d:%02d" msgstr "" #: ../pan/gui/gui.cc:2234 msgid "" "Pan is now offline. Please see \"File|Event Log\" and correct the problem, " "then use \"File|Work Online\" to continue." msgstr "" #: ../pan/gui/header-pane.cc:1186 msgid "Subject or Author" msgstr "" #: ../pan/gui/header-pane.cc:1187 msgid "Sub or Auth (regex)" msgstr "" #: ../pan/gui/header-pane.cc:1189 ../pan/gui/header-pane.cc:1649 #: ../pan/gui/prefs-ui.cc:827 ../pan/gui/score-add-ui.cc:140 msgid "Author" msgstr "Autor" #: ../pan/gui/header-pane.cc:1634 ../pan/gui/prefs-ui.cc:831 msgid "Score" msgstr "Bodovanie" #: ../pan/gui/log-ui.cc:103 msgid "Save Event List" msgstr "" #: ../pan/gui/log-ui.cc:256 #, fuzzy msgid "Pan: Events" msgstr "Pan: Servery" #: ../pan/gui/log-ui.cc:315 msgid "Message" msgstr "Správa" #: ../pan/gui/pan.cc:330 msgid "Maximize" msgstr "" #: ../pan/gui/pan.cc:383 msgid "An Error has occurred!" msgstr "" #: ../pan/gui/pan.cc:397 #, fuzzy msgid "New Articles!" msgstr "/_Prejsť na/N_asledujúci príspevok" #: ../pan/gui/pan.cc:398 msgid "" "There are new\n" "articles available." msgstr "" #: ../pan/gui/pan.cc:465 msgid "Toggle on/offline" msgstr "" #: ../pan/gui/pan.cc:513 msgid "" "Thank you for trying Pan!\n" " \n" "To start newsreading, first Add a Server." msgstr "" #: ../pan/gui/pan.cc:595 msgid "" "General Options\n" " -h, --help Show this usage page.\n" " --verbose Be verbose (in non-GUI mode).\n" "\n" "URL Options\n" " --no-gui On news:message-id, dump the article to stdout.\n" "\n" "NZB Batch Options\n" " --nzb file1 file2 ... Process nzb files without launching all of Pan.\n" " -o path, --output=path Path to save attachments listed in the nzb " "files.\n" " --no-gui Only show console output, not the download " "queue.\n" msgstr "" #: ../pan/gui/pan.cc:867 msgid "Error: --no-gui used without nzb files or news:message-id." msgstr "" #: ../pan/gui/pan.cc:871 #, fuzzy, c-format msgid "Pan %s started" msgstr "Pan %s spustený" #: ../pan/gui/pan.cc:890 msgid "Please configure Pan's news servers before using it as an nzb client." msgstr "" #: ../pan/gui/pan.cc:1009 msgid "Pan notification" msgstr "" #: ../pan/gui/post-ui.cc:186 #, c-format msgid "Upload Queue : %ld Tasks, %ld KB (~ %.2f MB) total ." msgstr "" #: ../pan/gui/post-ui.cc:286 #, fuzzy, c-format msgid "Error setting custom spellchecker: %s" msgstr "Chyba pri odstraňovaní položky z bodovacieho súboru: %s" #: ../pan/gui/post-ui.cc:291 ../pan/gui/post-ui.cc:300 #, fuzzy, c-format msgid "Error setting spellchecker: %s" msgstr "Chyba pri odstraňovaní položky z bodovacieho súboru: %s" #: ../pan/gui/post-ui.cc:419 #, fuzzy msgid "_Profile" msgstr "Profil" #: ../pan/gui/post-ui.cc:420 #, fuzzy msgid "Set Editor" msgstr "Editor" #: ../pan/gui/post-ui.cc:422 #, fuzzy msgid "_Send Article" msgstr "/_Prejsť na/Rodičovský _príspevok" #: ../pan/gui/post-ui.cc:422 #, fuzzy msgid "Send Article Now" msgstr "Poslať teraz" #: ../pan/gui/post-ui.cc:423 #, fuzzy msgid "_Send and Save Articles to NZB" msgstr "Pan: Uložiť ako" #: ../pan/gui/post-ui.cc:423 #, fuzzy msgid "Send and Save Articles to NZB" msgstr "Pan: Uložiť ako" #: ../pan/gui/post-ui.cc:424 #, fuzzy msgid "Set Character _Encoding..." msgstr "_Znaková sada:" #: ../pan/gui/post-ui.cc:425 #, fuzzy msgid "Set Content _Transfer Encoding..." msgstr "_Znaková sada:" #: ../pan/gui/post-ui.cc:426 #, fuzzy msgid "Sa_ve Draft" msgstr "Ukladanie príspevkov" #: ../pan/gui/post-ui.cc:426 msgid "Save as a Draft for Future Posting" msgstr "" #: ../pan/gui/post-ui.cc:427 #, fuzzy msgid "_Open Draft..." msgstr "/P_rečítať príspevok" #: ../pan/gui/post-ui.cc:427 #, fuzzy msgid "Open an Article Draft" msgstr "/P_rečítať príspevok" #: ../pan/gui/post-ui.cc:432 #, fuzzy msgid "_Rot13" msgstr "Rot13" #: ../pan/gui/post-ui.cc:432 msgid "Rot13 Selected Text" msgstr "Rot13 označený text" #: ../pan/gui/post-ui.cc:433 #, fuzzy msgid "Run _Editor" msgstr "Editor" #: ../pan/gui/post-ui.cc:433 #, fuzzy msgid "Run Editor" msgstr "Editor" #: ../pan/gui/post-ui.cc:435 msgid "Add _Files to Queue" msgstr "" #: ../pan/gui/post-ui.cc:435 msgid "Add Files to Queue" msgstr "" #: ../pan/gui/post-ui.cc:450 ../pan/gui/post-ui.cc:451 #, fuzzy msgid "Remove from Queue" msgstr "Nový server" #: ../pan/gui/post-ui.cc:455 ../pan/gui/post-ui.cc:456 #, fuzzy msgid "Clear List" msgstr "Vybrať filter:" #: ../pan/gui/post-ui.cc:460 ../pan/gui/post-ui.cc:461 #, fuzzy msgid "Select Needed Parts" msgstr "Vybrať písmo" #: ../pan/gui/post-ui.cc:465 ../pan/gui/post-ui.cc:466 #: ../pan/gui/task-pane.cc:636 ../pan/gui/task-pane.cc:637 msgid "Move Up" msgstr "" #: ../pan/gui/post-ui.cc:470 ../pan/gui/post-ui.cc:471 #: ../pan/gui/task-pane.cc:641 ../pan/gui/task-pane.cc:642 msgid "Move Down" msgstr "" #: ../pan/gui/post-ui.cc:475 ../pan/gui/post-ui.cc:476 msgid "Move to Top" msgstr "" #: ../pan/gui/post-ui.cc:480 ../pan/gui/post-ui.cc:481 #, fuzzy msgid "Move to Bottom" msgstr "Presunúť vybrané úlohy na spodok" #: ../pan/gui/post-ui.cc:488 #, fuzzy msgid "_Wrap Text" msgstr "Zalomiť text" #: ../pan/gui/post-ui.cc:488 #, fuzzy msgid "Wrap Text" msgstr "Zalomiť text" #: ../pan/gui/post-ui.cc:489 #, fuzzy msgid "Always Run Editor" msgstr "Editor" #: ../pan/gui/post-ui.cc:490 #, fuzzy msgid "Remember Character Encoding for this Group" msgstr "_Znaková sada:" #: ../pan/gui/post-ui.cc:491 msgid "Thread Attached Replies" msgstr "" #: ../pan/gui/post-ui.cc:492 msgid "PGP-Encrypt the Message" msgstr "" #: ../pan/gui/post-ui.cc:493 msgid "PGP-Sign the Message" msgstr "" #: ../pan/gui/post-ui.cc:494 msgid "Check _Spelling" msgstr "" #: ../pan/gui/post-ui.cc:520 #, fuzzy msgid "New Article's Encoding:" msgstr "/_Zobraziť bodovania príspevkov" #: ../pan/gui/post-ui.cc:530 #, fuzzy msgid "Content Transfer Encoding" msgstr "_Znaková sada:" #: ../pan/gui/post-ui.cc:531 #, fuzzy msgid "New Article's Content Transfer Encoding:" msgstr "/_Zobraziť bodovania príspevkov" #: ../pan/gui/post-ui.cc:711 msgid "Your changes will be lost!" msgstr "" #: ../pan/gui/post-ui.cc:712 msgid "Close this window and lose your changes?" msgstr "" #: ../pan/gui/post-ui.cc:757 ../pan/gui/post-ui.cc:796 msgid "There were problems with this post." msgstr "" #: ../pan/gui/post-ui.cc:759 ../pan/gui/post-ui.cc:798 #: ../pan/gui/post-ui.cc:861 #, fuzzy msgid "Go Back" msgstr "/_Prejsť na/Prečítať späť" #: ../pan/gui/post-ui.cc:761 msgid "Post Anyway" msgstr "" #. Prompt the user #: ../pan/gui/post-ui.cc:790 #, fuzzy, c-format msgid "" "Message uses characters not specified in charset '%s' - possibly use '%s' " msgstr "" "V správe sú použité znaky, ktoré nie sú uvedené v znakovej sade '%s' - " "použiť '%s' namiesto nej?" #: ../pan/gui/post-ui.cc:813 #, fuzzy msgid "Go _Online" msgstr "Pan je pripojený" #: ../pan/gui/post-ui.cc:860 msgid "The file queue is empty, so no files can be saved." msgstr "" #: ../pan/gui/post-ui.cc:1019 msgid "" "No posting server is set for this posting profile.\n" "Please edit the profile via Edit|Manage Posting Profiles." msgstr "" #: ../pan/gui/post-ui.cc:1054 #, fuzzy msgid "Pan is Offline." msgstr "Pan je nepripojený" #: ../pan/gui/post-ui.cc:1055 msgid "Go online to post the article?" msgstr "" #: ../pan/gui/post-ui.cc:1102 #, c-format msgid "" "Error signing/encrypting your message. Perhaps you misspelled your email-" "address (%s) ?" msgstr "" #: ../pan/gui/post-ui.cc:1267 msgid "Error opening temporary file" msgstr "Chyba pri otváraní dočasného súboru" #: ../pan/gui/post-ui.cc:1279 #, c-format msgid "Error writing article to temporary file: %s" msgstr "Chyba pri zápise príspevku do dočasného súboru: %s" #: ../pan/gui/post-ui.cc:1298 #, fuzzy, c-format msgid "Error parsing \"external editor\" command line: %s (Command was: %s)" msgstr "Chyba pri analýze príkazového riadku \"externý editor\": %s" #: ../pan/gui/post-ui.cc:1339 #, c-format msgid "Error starting external editor: %s" msgstr "Chyba pri spúšťaní externého editora: %s" #: ../pan/gui/post-ui.cc:1395 #, fuzzy msgid "Open Draft Article" msgstr "/P_rečítať príspevok" #: ../pan/gui/post-ui.cc:1606 #, fuzzy msgid "Save Draft Article" msgstr "Ukladanie príspevkov" #: ../pan/gui/post-ui.cc:1803 #, fuzzy, c-format msgid "Couldn't parse signature command \"%s\": %s" msgstr "Nemohol som načítať súbor s podpisom \"%s\": %s" #: ../pan/gui/post-ui.cc:1839 #, fuzzy msgid "Couldn't convert signature to UTF-8." msgstr "" "Nepodarilo sa konvertovať súbor ss podpisom '%s' do UTF-8. Podpis musí byť v " "'%s'" #: ../pan/gui/post-ui.cc:2334 #, fuzzy msgid "F_rom" msgstr "Od" #: ../pan/gui/post-ui.cc:2352 #, fuzzy msgid "_Subject" msgstr "_Predmet:" #: ../pan/gui/post-ui.cc:2365 #, fuzzy msgid "_Newsgroups" msgstr "/_Diskusné skupiny" #: ../pan/gui/post-ui.cc:2379 #, fuzzy msgid "Mail _To" msgstr "Pošta pre" #: ../pan/gui/post-ui.cc:2481 msgid "Delete from Queue" msgstr "" #: ../pan/gui/post-ui.cc:2494 msgid "No." msgstr "" #: ../pan/gui/post-ui.cc:2498 ../pan/gui/post-ui.cc:2592 #: ../pan/gui/post-ui.cc:2633 msgid "Filename" msgstr "Názov súboru" #: ../pan/gui/post-ui.cc:2500 msgid "Size (kB)" msgstr "" #: ../pan/gui/post-ui.cc:2600 msgid "The current filename" msgstr "" #: ../pan/gui/post-ui.cc:2604 #, fuzzy msgid "Subject Line" msgstr "Predmet" #: ../pan/gui/post-ui.cc:2612 msgid "The current Subject Line" msgstr "" #: ../pan/gui/post-ui.cc:2626 msgid "No. " msgstr "" #: ../pan/gui/post-ui.cc:2630 msgid "Enable/Disable" msgstr "" #: ../pan/gui/post-ui.cc:2664 #, fuzzy msgid "Follo_wup-To" msgstr "Prispieť-do" #. i18n: "poster" is a key used by many newsreaders. probably safest to keep this key in english. #: ../pan/gui/post-ui.cc:2673 #, fuzzy msgid "" "The newsgroups where replies to your message should go. This is only needed " "if it differs from the \"Newsgroups\" header.\n" "\n" "To direct all replies to your email address, use \"Followup-To: poster\"" msgstr "" "Diskusné skupiny, do ktorých majú ísť odpovede na vaše správy. Toto je " "potrebné len vtedy, ak sa to odlišuje od hlavičky \"Poslať do skupín\". \n" "Ak chcete nasmerovať všetky odpovede na vašu adresu elektronickej pošty, " "použite \"Prispieť-do: prispievateľ\"" #: ../pan/gui/post-ui.cc:2679 #, fuzzy msgid "_Reply-To" msgstr "Odpoveď-pre" #: ../pan/gui/post-ui.cc:2687 msgid "" "The email account where mail replies to your posted message should go. This " "is only needed if it differs from the \"From\" header." msgstr "" "Adresa elektronickej pošty, na ktorú majú ísť poštové odpovede na vami " "poslané správy. Toto je potrebné len vtedy, ak sa to odlišuje od hlavičky " "\"Od\"." #: ../pan/gui/post-ui.cc:2693 #, fuzzy msgid "_Custom Headers" msgstr "Prispôsobiť hlavičky" #: ../pan/gui/post-ui.cc:2717 #, fuzzy msgid "Add \"_User-Agent\" header" msgstr "Pridať hlavičku \"User-Agent\"" #: ../pan/gui/post-ui.cc:2724 #, fuzzy msgid "Add \"Message-_Id\" header" msgstr "Pridať hlavičku \"Message-Id\"" #: ../pan/gui/post-ui.cc:2855 #, fuzzy msgid "Select Parts" msgstr "Vybrať písmo" #: ../pan/gui/post-ui.cc:2866 msgid "_Parts" msgstr "" #: ../pan/gui/post-ui.cc:3022 #, fuzzy msgid "Post Article" msgstr "_Príspevok" #: ../pan/gui/post-ui.cc:3043 #, fuzzy msgid "_Message" msgstr "Správa" #: ../pan/gui/post-ui.cc:3044 #, fuzzy msgid "More _Headers" msgstr "Viac hlavičiek" #: ../pan/gui/post-ui.cc:3045 #, fuzzy msgid "File _Queue" msgstr "/_Súbor/_Koniec" #: ../pan/gui/post-ui.cc:3077 ../pan/gui/profiles-dialog.cc:478 #, no-c-format msgid "On %d, %n wrote:" msgstr "V %d, %n napísal(a):" #: ../pan/gui/post-ui.cc:3106 msgid "Add files to queue" msgstr "" #: ../pan/gui/post-ui.cc:3184 msgid "Save Upload Queue as NZB File" msgstr "" #: ../pan/gui/prefs.cc:343 #, fuzzy, c-format msgid "Couldn't parse %s color \"%s\"" msgstr "Nemohol som analyzovať príkaz podpisu \"%s\"" #: ../pan/gui/prefs-ui.cc:120 msgid "Grab Key" msgstr "" #: ../pan/gui/prefs-ui.cc:126 #, c-format msgid "" "Press the combination of the keys\n" "you want to use for \"%s\"." msgstr "" #: ../pan/gui/prefs-ui.cc:166 #, fuzzy msgid "Edit Hotkey" msgstr "Upraviť filtre" #: ../pan/gui/prefs-ui.cc:228 msgid "Error: Shortkey is invalid!" msgstr "" #: ../pan/gui/prefs-ui.cc:244 #, fuzzy msgid "Error: Shortkey already exists!" msgstr "Priečinok \"%*s\" už existuje." #: ../pan/gui/prefs-ui.cc:535 #, fuzzy msgid "Show only icons" msgstr "Informácie o profile" #: ../pan/gui/prefs-ui.cc:536 #, fuzzy msgid "Show only text" msgstr "/_Zobraziť/Zobraziť _panel tela" #: ../pan/gui/prefs-ui.cc:537 #, fuzzy msgid "Show icons and text" msgstr "Uložiť prílohy do _priečinka:" #: ../pan/gui/prefs-ui.cc:576 #, fuzzy msgid "Use GNOME Preferences" msgstr "Pan predvoľby" #: ../pan/gui/prefs-ui.cc:577 #, fuzzy msgid "Use KDE Preferences" msgstr "Odkazy" #: ../pan/gui/prefs-ui.cc:578 #, fuzzy msgid "Use OS X Preferences" msgstr "Odkazy" #: ../pan/gui/prefs-ui.cc:579 #, fuzzy msgid "Use Windows Preferences" msgstr "Pan predvoľby" #: ../pan/gui/prefs-ui.cc:580 #, fuzzy msgid "Custom Command:" msgstr "Príkaz na tlač:" #: ../pan/gui/prefs-ui.cc:632 msgid "Disabled" msgstr "" #: ../pan/gui/prefs-ui.cc:633 msgid "Only new (Score == 0)" msgstr "" #: ../pan/gui/prefs-ui.cc:634 #, fuzzy msgid "9999 or more" msgstr "/Filte_r/Vyhovujú príspevky s bodovaním -9999 (ignorované)" #: ../pan/gui/prefs-ui.cc:635 msgid "5000 to 9998" msgstr "" #: ../pan/gui/prefs-ui.cc:636 msgid "1 to 4999" msgstr "" #: ../pan/gui/prefs-ui.cc:637 msgid "-9998 to -1" msgstr "" #: ../pan/gui/prefs-ui.cc:638 #, fuzzy msgid "-9999 or less" msgstr "/Filte_r/Vyhovujú príspevky s bodovaním -9999 (ignorované)" #: ../pan/gui/prefs-ui.cc:702 #, c-format msgid "Select default global charset. Current setting : %s ." msgstr "" #: ../pan/gui/prefs-ui.cc:738 msgid "Global Charset Settings" msgstr "" #: ../pan/gui/prefs-ui.cc:832 ../pan/gui/task-pane.cc:770 #, fuzzy msgid "State" msgstr "Stav" #: ../pan/gui/prefs-ui.cc:866 msgid "Enabled" msgstr "" #: ../pan/gui/prefs-ui.cc:870 #, fuzzy msgid "Column Name" msgstr "Stĺpec" #: ../pan/gui/prefs-ui.cc:908 #, fuzzy msgid "Pan: Preferences" msgstr "Pan predvoľby" #: ../pan/gui/prefs-ui.cc:923 msgid "Mouse" msgstr "Myš" #: ../pan/gui/prefs-ui.cc:925 #, fuzzy msgid "Single-click activates, rather than selects, _groups" msgstr "Jednoduché _kliknutie myšou nenahrá, len zvolí skupiny" #: ../pan/gui/prefs-ui.cc:927 #, fuzzy msgid "Single-click activates, rather than selects, _articles" msgstr "Jednoduché kliknutie myšou nenah_rá, len zvolí hlavičky" #: ../pan/gui/prefs-ui.cc:930 #, fuzzy msgid "Groups" msgstr "Skupiny" #: ../pan/gui/prefs-ui.cc:932 #, fuzzy msgid "Get new headers in subscribed groups on _startup" msgstr "Stiahnuť nové hlavičky v prihlásených skupinách" #: ../pan/gui/prefs-ui.cc:934 #, fuzzy msgid "Get new headers when _entering group" msgstr "Stiahnuť nové hlavičky pri príchode do _skupiny" #: ../pan/gui/prefs-ui.cc:936 #, fuzzy msgid "Mark entire group _read when leaving group" msgstr "_Označiť príspevky v skupine ako prečítané pri odchode zo skupiny" #: ../pan/gui/prefs-ui.cc:938 #, fuzzy msgid "Mark entire group read before getting _new headers" msgstr "_Označiť príspevky v skupine ako prečítané pri odchode zo skupiny" #: ../pan/gui/prefs-ui.cc:940 #, fuzzy msgid "E_xpand all threads when entering group" msgstr "Stiahnuť nové hlavičky pri príchode do _skupiny" #: ../pan/gui/prefs-ui.cc:945 #, fuzzy msgid "Articles" msgstr "/Príspe_vky" #: ../pan/gui/prefs-ui.cc:947 msgid "Space selects next article rather than next unread" msgstr "" #: ../pan/gui/prefs-ui.cc:949 #, fuzzy msgid "Expand threads upon selection" msgstr "/_Upraviť/Pridať _vlákna do výberu" #: ../pan/gui/prefs-ui.cc:951 msgid "Always show article deletion confirmation dialog" msgstr "" #: ../pan/gui/prefs-ui.cc:953 #, fuzzy msgid "Smooth scrolling" msgstr "Hladké _posúvanie rýchlosťou:" #: ../pan/gui/prefs-ui.cc:958 #, fuzzy msgid "Article Cache" msgstr "Vyrovnávacia pamäť príspevkov" #: ../pan/gui/prefs-ui.cc:959 msgid "Clear article cache on shutdown" msgstr "" #: ../pan/gui/prefs-ui.cc:962 msgid "Size of article cache (in MiB) :" msgstr "" #: ../pan/gui/prefs-ui.cc:967 #, fuzzy msgid "File extension for Cached Articles: " msgstr "/Filte_r/Vyhovujú p_rečítané príspevky" #: ../pan/gui/prefs-ui.cc:972 msgid "Tabs" msgstr "" #: ../pan/gui/prefs-ui.cc:977 #, fuzzy msgid "_Behavior" msgstr "Sprá_vanie sa" #: ../pan/gui/prefs-ui.cc:977 #, fuzzy msgid "Behavior" msgstr "Sprá_vanie sa" #: ../pan/gui/prefs-ui.cc:983 #, fuzzy msgid "Language Settings" msgstr "Zastavovanie" #. systray and notify popup #: ../pan/gui/prefs-ui.cc:992 #, fuzzy msgid "System Tray Behavior" msgstr "Sprá_vanie sa" #: ../pan/gui/prefs-ui.cc:994 msgid "Hide to system tray" msgstr "" #: ../pan/gui/prefs-ui.cc:996 msgid "Start Pan minimized" msgstr "" #: ../pan/gui/prefs-ui.cc:999 #, fuzzy msgid "Show notifications" msgstr "Informácie o profile" #. allow multiple instances (seperate, not communicating with dbus) #: ../pan/gui/prefs-ui.cc:1004 #, fuzzy msgid "Startup Behavior" msgstr "Sprá_vanie sa" #: ../pan/gui/prefs-ui.cc:1006 msgid "Allow multiple instances of Pan" msgstr "" #: ../pan/gui/prefs-ui.cc:1011 #, fuzzy msgid "Autosave Article Draft" msgstr "/P_rečítať príspevok" #: ../pan/gui/prefs-ui.cc:1013 #, fuzzy msgid "Minutes to autosave the current Article Draft: " msgstr "/P_rečítať príspevok" #: ../pan/gui/prefs-ui.cc:1018 #, fuzzy msgid "Autosave Articles" msgstr "Uložiť príspevok ako..." #: ../pan/gui/prefs-ui.cc:1020 msgid "Minutes to autosave newsrc files: " msgstr "" #: ../pan/gui/prefs-ui.cc:1026 msgid "_Miscellaneous" msgstr "" #: ../pan/gui/prefs-ui.cc:1026 msgid "Miscellaneous" msgstr "" #: ../pan/gui/prefs-ui.cc:1031 msgid "Pane Layout" msgstr "Usporiadanie panelov" #: ../pan/gui/prefs-ui.cc:1050 msgid "1=Groups, 2=Headers, 3=Body" msgstr "" #: ../pan/gui/prefs-ui.cc:1052 msgid "1=Groups, 2=Body, 3=Headers" msgstr "" #: ../pan/gui/prefs-ui.cc:1054 msgid "1=Headers, 2=Groups, 3=Body" msgstr "" #: ../pan/gui/prefs-ui.cc:1056 msgid "1=Headers, 2=Body, 3=Groups" msgstr "" #: ../pan/gui/prefs-ui.cc:1058 msgid "1=Body, 2=Groups, 3=Headers" msgstr "" #: ../pan/gui/prefs-ui.cc:1060 msgid "1=Body, 2=Headers, 3=Groups" msgstr "" #: ../pan/gui/prefs-ui.cc:1064 #, fuzzy msgid "Layout" msgstr "_Usporiadanie panelov" #: ../pan/gui/prefs-ui.cc:1069 #, fuzzy msgid "Header Pane Columns" msgstr "Panel hlavičiek" #: ../pan/gui/prefs-ui.cc:1073 #, fuzzy msgid "_Headers" msgstr "Hlavičky" #: ../pan/gui/prefs-ui.cc:1073 #, fuzzy msgid "Headers" msgstr "Hlavičky" #: ../pan/gui/prefs-ui.cc:1079 msgid "" "This menu lets you configure Pan to take certain actions on your behalf " "automatically, based on a post's score." msgstr "" #: ../pan/gui/prefs-ui.cc:1082 msgid "_Delete posts scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1084 msgid "Mark posts _read scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1086 msgid "_Cache posts scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1088 msgid "Download _attachments of posts scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1091 #, fuzzy msgid "Actions" msgstr "Akcie" #: ../pan/gui/prefs-ui.cc:1096 ../pan/gui/prefs-ui.cc:1117 msgid "Fonts" msgstr "Typy písma" #: ../pan/gui/prefs-ui.cc:1098 msgid "Use custom font in Group Pane:" msgstr "Použiť vlastné písmo v paneli skupín:" #: ../pan/gui/prefs-ui.cc:1103 msgid "Use custom font in Header Pane:" msgstr "Použiť vlastné písmo v paneli hlavičiek:" #: ../pan/gui/prefs-ui.cc:1108 msgid "Use custom font in Body Pane:" msgstr "Použiť vlastné písmo v paneli tela:" #: ../pan/gui/prefs-ui.cc:1113 #, fuzzy msgid "Monospace font:" msgstr "Neproporcionáln_e písmo:" #: ../pan/gui/prefs-ui.cc:1117 #, fuzzy msgid "_Fonts" msgstr "Typy písma" #: ../pan/gui/prefs-ui.cc:1122 #, fuzzy msgid "Header Pane" msgstr "Panel hlavičiek" #: ../pan/gui/prefs-ui.cc:1125 ../pan/gui/prefs-ui.cc:1131 #: ../pan/gui/prefs-ui.cc:1137 ../pan/gui/prefs-ui.cc:1143 #: ../pan/gui/prefs-ui.cc:1149 ../pan/gui/prefs-ui.cc:1155 msgid "Text:" msgstr "Text:" #: ../pan/gui/prefs-ui.cc:1127 ../pan/gui/prefs-ui.cc:1133 #: ../pan/gui/prefs-ui.cc:1139 ../pan/gui/prefs-ui.cc:1145 #: ../pan/gui/prefs-ui.cc:1151 ../pan/gui/prefs-ui.cc:1157 msgid "Background:" msgstr "Pozadie:" #: ../pan/gui/prefs-ui.cc:1129 #, fuzzy msgid "Scores of 9999 or more:" msgstr "/Filte_r/Vyhovujú príspevky s bodovaním -9999 (ignorované)" #: ../pan/gui/prefs-ui.cc:1135 msgid "Scores from 5000 to 9998:" msgstr "" #: ../pan/gui/prefs-ui.cc:1141 msgid "Scores from 1 to 4999:" msgstr "" #: ../pan/gui/prefs-ui.cc:1147 msgid "Scores from -9998 to -1:" msgstr "" #: ../pan/gui/prefs-ui.cc:1153 #, fuzzy msgid "Scores of -9999 or less:" msgstr "/Filte_r/Vyhovujú príspevky s bodovaním -9999 (ignorované)" #: ../pan/gui/prefs-ui.cc:1159 msgid "Read collapsed thread:" msgstr "" #: ../pan/gui/prefs-ui.cc:1161 #, fuzzy msgid "Body Pane" msgstr "Panel _tela" #: ../pan/gui/prefs-ui.cc:1167 #, fuzzy msgid "Quoted text:" msgstr "/_Zobraziť/Potlačiť _citovaný text" #: ../pan/gui/prefs-ui.cc:1168 #, fuzzy msgid "URL:" msgstr "Linky (_URL):" #: ../pan/gui/prefs-ui.cc:1169 #, fuzzy msgid "Signature:" msgstr "_Súbor s podpisom:" #: ../pan/gui/prefs-ui.cc:1171 #, fuzzy msgid "_Colors" msgstr "Farby" #: ../pan/gui/prefs-ui.cc:1171 #, fuzzy msgid "Colors" msgstr "Farby" #: ../pan/gui/prefs-ui.cc:1176 #, fuzzy msgid "Preferred Applications" msgstr "Aplikácie" #: ../pan/gui/prefs-ui.cc:1180 #, fuzzy msgid "_Web browser:" msgstr "Prehliadač _www stránok (%s je URL):" #: ../pan/gui/prefs-ui.cc:1183 #, fuzzy msgid "_Mail reader:" msgstr "Poštový server" #: ../pan/gui/prefs-ui.cc:1185 #, fuzzy msgid "_Text editor:" msgstr "Editor" #: ../pan/gui/prefs-ui.cc:1187 #, fuzzy msgid "_Applications" msgstr "Aplikácie" #: ../pan/gui/prefs-ui.cc:1187 #, fuzzy msgid "Applications" msgstr "Aplikácie" #: ../pan/gui/prefs-ui.cc:1192 ../pan/gui/task-pane.cc:512 #, fuzzy msgid "Encoding" msgstr "_Znaková sada:" #: ../pan/gui/prefs-ui.cc:1196 msgid "Default bytes per file (for encoder): " msgstr "" #: ../pan/gui/prefs-ui.cc:1201 #, fuzzy msgid "_Upload" msgstr "Aplikácie" #: ../pan/gui/prefs-ui.cc:1201 msgid "Upload" msgstr "" #: ../pan/gui/prefs-ui.cc:1219 msgid "_Hotkeys" msgstr "" #: ../pan/gui/prefs-ui.cc:1219 msgid "Hotkeys" msgstr "" #: ../pan/gui/profiles-dialog.cc:83 msgid "Please choose your Email Address according to your PGP key's user id." msgstr "" #: ../pan/gui/profiles-dialog.cc:131 #, fuzzy msgid "Posting Profile" msgstr "Pan: Profil" #: ../pan/gui/profiles-dialog.cc:143 msgid "Profile Information" msgstr "Informácie o profile" #: ../pan/gui/profiles-dialog.cc:147 msgid "_Profile Name:" msgstr "Názov _profilu:" #: ../pan/gui/profiles-dialog.cc:150 msgid "Required Information" msgstr "Povinné informácie" #: ../pan/gui/profiles-dialog.cc:154 msgid "_Full Name:" msgstr "_Celé meno:" #: ../pan/gui/profiles-dialog.cc:158 msgid "" "Your Email Address.\n" "Note that this has to match your PGP Signature's Address\n" "if you want to PGP-Sign or Encrypt your messages correctly." msgstr "" #: ../pan/gui/profiles-dialog.cc:162 msgid "_Email Address:" msgstr "Adresa _elektronickej pošty:" #: ../pan/gui/profiles-dialog.cc:164 #, fuzzy msgid "_Post Articles via:" msgstr "_Príspevok" #: ../pan/gui/profiles-dialog.cc:167 #, fuzzy msgid "Signature" msgstr "_Súbor s podpisom:" #: ../pan/gui/profiles-dialog.cc:170 #, fuzzy msgid "_Use a Signature" msgstr "_Súbor s podpisom:" #: ../pan/gui/profiles-dialog.cc:174 #, fuzzy msgid "Signature File" msgstr "Vybrať súbor s podpisom" #: ../pan/gui/profiles-dialog.cc:184 #, fuzzy msgid "Text File" msgstr "/_Prejsť na/N_asledujúci príspevok" #: ../pan/gui/profiles-dialog.cc:186 #, fuzzy msgid "Text" msgstr "Text:" #: ../pan/gui/profiles-dialog.cc:188 #, fuzzy msgid "Command" msgstr "Príkaz na tlač:" #: ../pan/gui/profiles-dialog.cc:191 #, fuzzy msgid "PGP Signature" msgstr "_Súbor s podpisom:" #: ../pan/gui/profiles-dialog.cc:196 #, fuzzy msgid "Signature Type : " msgstr "_Súbor s podpisom:" #: ../pan/gui/profiles-dialog.cc:223 msgid "X-Face (Avatar)" msgstr "" #: ../pan/gui/profiles-dialog.cc:226 msgid "" "You can add an avatar icon to your articles with a unique X-Face code. \n" "Add the code without the trailing \"X-Face:\" \n" " if it was generated by a helper program (for example http://www.dairiki.org/" "xface/xface.php)." msgstr "" #: ../pan/gui/profiles-dialog.cc:229 msgid "_X-Face:" msgstr "" #: ../pan/gui/profiles-dialog.cc:231 msgid "Optional Information" msgstr "Voliteľné informácie" #: ../pan/gui/profiles-dialog.cc:236 #, fuzzy msgid "" "When posting to Usenet, your article's Message-ID contains a domain name. \n" "You can set a custom domain name here, or leave it blank to let Pan use the " "domain name from your email address." msgstr "" "Pri posielaní do Usenetu, ID-správy vášho príspevku obsahuje názov domény. " "Môžete si tu nastaviť vlastný názov domény, alebo ponechať ho prázdny a Pan " "použije názov domény z vašej adresy elektronickej pošty." #: ../pan/gui/profiles-dialog.cc:239 msgid "Message-ID _Domain Name:" msgstr "Názov _domény ID-správy:" #: ../pan/gui/profiles-dialog.cc:243 #, c-format msgid "" "%i for Message-ID\n" "%a for Author and Address\n" "%n for Author name\n" "%d for Date" msgstr "" "%i je ID-správy\n" "%a je autor a adresa\n" "%n je meno autora\n" "%d je dátum" #: ../pan/gui/profiles-dialog.cc:244 msgid "_Attribution:" msgstr "_Priradenie:" #: ../pan/gui/profiles-dialog.cc:268 msgid "" "Extra headers to be included in your posts, such as\n" "Reply-To: \"Your Name\"\n" "Organization: Your Organization\n" msgstr "" #: ../pan/gui/profiles-dialog.cc:278 #, fuzzy msgid "E_xtra Headers:" msgstr "Ďalšie hlavičky" #: ../pan/gui/profiles-dialog.cc:323 #, fuzzy msgid "Invalid email address." msgstr "Neplatná adresa \"%s\"" #: ../pan/gui/profiles-dialog.cc:324 msgid "Please use an address of the form joe@somewhere.org" msgstr "" #: ../pan/gui/profiles-dialog.cc:479 msgid "New Profile" msgstr "Nový profil" #: ../pan/gui/profiles-dialog.cc:525 #, fuzzy msgid "Posting Profiles" msgstr "/P_oslať/_Profily posielania..." #: ../pan/gui/profiles-dialog.cc:541 #, fuzzy msgid "Profiles" msgstr "Profil" #: ../pan/gui/save-attach-ui.cc:77 ../pan/gui/save-ui.cc:77 #, fuzzy, c-format msgid "" "%g - group as one directory (alt.binaries.pictures.trains)\n" "%G - group as nested directory (/alt/binaries/pictures/trains)\n" "%s - subject line excerpt\n" "%S - subject line\n" " \n" "\"/home/user/News/Pan/%g\" becomes\n" "\"/home/user/News/Pan/alt.binaries.pictures.trains\", and\n" "\"/home/user/News/Pan/%G\" becomes\n" "\"/home/user/News/Pan/alt/binaries/pictures/trains\"," msgstr "" "%g - skupina ako jeden priečinok (alt.binaries.pictures.trains)\n" "%G - skupina ako vnorené priečinky (/alt/binaries/pictures/trains)\n" " \n" "\"/home/user/News/Pan/%g\" bude\n" "\"/home/user/News/Pan/alt.binaries.pictures.trains\"\n" "a \"/home/user/News/Pan/%G\" bude\n" "\"/home/user/News/Pan/alt/binaries/pictures/trains\"," #: ../pan/gui/save-attach-ui.cc:223 ../pan/gui/save-ui.cc:242 msgid "Add to the queue sorted by date posted" msgstr "" #: ../pan/gui/save-attach-ui.cc:224 ../pan/gui/save-ui.cc:243 #, fuzzy msgid "Add to the front of the queue" msgstr "Pridať na k_oniec zoznamu správcu úloh" #: ../pan/gui/save-attach-ui.cc:225 ../pan/gui/save-ui.cc:244 #, fuzzy msgid "Add to the back of the queue" msgstr "Pridať na k_oniec zoznamu správcu úloh" #: ../pan/gui/save-attach-ui.cc:257 #, fuzzy msgid "Pan: Save Attachments" msgstr "Uložiť _prílohy" #: ../pan/gui/save-attach-ui.cc:282 ../pan/gui/save-attach-ui.cc:300 #: ../pan/gui/save-ui.cc:296 ../pan/gui/save-ui.cc:314 #, fuzzy msgid "_Location:" msgstr "Akcie" #: ../pan/gui/save-attach-ui.cc:286 ../pan/gui/save-ui.cc:300 #, fuzzy msgid "Save Articles" msgstr "Uložiť príspevok ako..." #: ../pan/gui/save-attach-ui.cc:303 ../pan/gui/save-ui.cc:317 #, c-format msgid "_Group's path: %s" msgstr "" #: ../pan/gui/save-attach-ui.cc:314 ../pan/gui/save-ui.cc:332 msgid "_Priority:" msgstr "" #: ../pan/gui/save-ui.cc:233 #, fuzzy msgid "Save attachments" msgstr "Uložiť _prílohy" #: ../pan/gui/save-ui.cc:234 #, fuzzy msgid "Save text" msgstr "Uložiť te_xt" #: ../pan/gui/save-ui.cc:235 #, fuzzy msgid "Save attachments and text" msgstr "Uložiť prílohy do _priečinka:" #: ../pan/gui/save-ui.cc:271 #, fuzzy msgid "Pan: Save Articles" msgstr "Pan: Uložiť ako" #: ../pan/gui/save-ui.cc:328 #, fuzzy msgid "_Action:" msgstr "Akcie" #: ../pan/gui/score-add-ui.cc:89 msgid "is more than" msgstr "" #: ../pan/gui/score-add-ui.cc:90 msgid "is at most" msgstr "" #: ../pan/gui/score-add-ui.cc:112 #, fuzzy msgid "increase the article's score by" msgstr "/_Zobraziť/_Zalomiť telo príspevku" #: ../pan/gui/score-add-ui.cc:113 #, fuzzy msgid "decrease the article's score by" msgstr "/_Zobraziť/_Zalomiť telo príspevku" #: ../pan/gui/score-add-ui.cc:114 #, fuzzy msgid "set the article's score to" msgstr "nastaviť bodovanie na" #: ../pan/gui/score-add-ui.cc:115 #, fuzzy msgid "watch the article (set its score to 9999)" msgstr "_Sledovať (nastaviť bodovanie na 9999)" #: ../pan/gui/score-add-ui.cc:116 #, fuzzy msgid "ignore the article (set its score to -9999)" msgstr "_Ignorovať (nastaviť bodovanie na -9999)" #: ../pan/gui/score-add-ui.cc:141 #, fuzzy msgid "References" msgstr "_Odkazy:" #: ../pan/gui/score-add-ui.cc:142 #, fuzzy msgid "Line Count" msgstr "Riadok %d, stĺpec %d" #: ../pan/gui/score-add-ui.cc:143 msgid "Byte Count" msgstr "" #: ../pan/gui/score-add-ui.cc:144 msgid "Crosspost Group Count" msgstr "" #: ../pan/gui/score-add-ui.cc:145 msgid "Age (in days)" msgstr "" #: ../pan/gui/score-add-ui.cc:167 msgid "for the next month" msgstr "" #: ../pan/gui/score-add-ui.cc:168 msgid "for the next six months" msgstr "" #: ../pan/gui/score-add-ui.cc:169 #, fuzzy msgid "forever" msgstr "Server" #: ../pan/gui/score-add-ui.cc:194 msgid "contains" msgstr "obsahuje" #: ../pan/gui/score-add-ui.cc:195 #, fuzzy msgid "doesn't contain" msgstr "neobsahuje" #: ../pan/gui/score-add-ui.cc:196 msgid "is" msgstr "je" #: ../pan/gui/score-add-ui.cc:197 #, fuzzy msgid "isn't" msgstr "nie je" #: ../pan/gui/score-add-ui.cc:198 msgid "starts with" msgstr "začína na" #: ../pan/gui/score-add-ui.cc:199 msgid "ends with" msgstr "končí na" #: ../pan/gui/score-add-ui.cc:200 #, fuzzy msgid "matches regex" msgstr "vyhovuje regulárnemu výrazu" #: ../pan/gui/score-add-ui.cc:481 #, fuzzy msgid "Another rule already sets this article's score." msgstr "/_Zobraziť/_Zalomiť telo príspevku" #: ../pan/gui/score-add-ui.cc:482 msgid "You may want to go back or delete the old rule." msgstr "" #: ../pan/gui/score-add-ui.cc:553 msgid "Add and Re_score" msgstr "Pridať a opätovne o_bodovať" #: ../pan/gui/score-add-ui.cc:604 ../pan/gui/score-add-ui.cc:624 #, fuzzy msgid "New Scoring Rule" msgstr "Nové bodovanie" #: ../pan/gui/score-add-ui.cc:635 msgid "If the group name" msgstr "" #: ../pan/gui/score-add-ui.cc:642 #, fuzzy msgid "And the article's" msgstr "Získavanie príspevkov" #: ../pan/gui/score-view-ui.cc:56 msgid "Close and Re_score" msgstr "Zatvoriť a opätovne obo_dovať" #: ../pan/gui/score-view-ui.cc:154 #, fuzzy, c-format msgid "File %s, Lines %d - %d" msgstr "bodovací súbor %s, riadok %d: %s (%s)" #: ../pan/gui/score-view-ui.cc:182 #, fuzzy msgid "Pan: Article's Scores" msgstr "Pan: Zobraziť bodovanie príspevkov" #: ../pan/gui/score-view-ui.cc:208 #, fuzzy msgid "Add" msgstr "pridať" #: ../pan/gui/score-view-ui.cc:213 msgid "New Score" msgstr "Nové bodovanie" #: ../pan/gui/score-view-ui.cc:218 msgid "Criteria" msgstr "Kritériá" #: ../pan/gui/score-view-ui.cc:241 #, fuzzy msgid "Add a New Scoring Rule" msgstr "Pridať nové bodovanie" #: ../pan/gui/score-view-ui.cc:248 #, fuzzy msgid "Remove the Selected Scoring Rule" msgstr "Odstrániť vybrané bodovanie" #: ../pan/gui/server-ui.cc:221 msgid "Please specify the server's address." msgstr "" #: ../pan/gui/server-ui.cc:264 msgid "Import SSL certificate (PEM format) from File" msgstr "" #. create the dialog #: ../pan/gui/server-ui.cc:290 ../pan/gui/server-ui.cc:869 #, fuzzy msgid "Add a Server" msgstr "Pridať nový server" #: ../pan/gui/server-ui.cc:290 ../pan/gui/server-ui.cc:875 #, fuzzy msgid "Edit a Server's Settings" msgstr "Ostatné nastavenia" #: ../pan/gui/server-ui.cc:310 #, fuzzy msgid "Location" msgstr "Akcie" #: ../pan/gui/server-ui.cc:314 msgid "The news server's actual address, e.g. \"news.mynewsserver.com\"" msgstr "" "Aktuálna adresa servera diskusných skupín, napr. \"news.mynewsserver.com\"" #: ../pan/gui/server-ui.cc:315 msgid "_Address:" msgstr "_Adresa:" #: ../pan/gui/server-ui.cc:319 #, fuzzy msgid "The news server's port number. Typically 119." msgstr "Port servera diskusných skupín. Toto je takmer vždy 119." #: ../pan/gui/server-ui.cc:320 msgid "Por_t:" msgstr "Por_t:" #: ../pan/gui/server-ui.cc:323 msgid "Login (if Required)" msgstr "" #: ../pan/gui/server-ui.cc:327 msgid "_Username:" msgstr "_Prihlasovacie meno:" #: ../pan/gui/server-ui.cc:328 msgid "" "The username to give the server when asked. If your server doesn't require " "authentication, you can leave this blank." msgstr "" #: ../pan/gui/server-ui.cc:332 msgid "_Password:" msgstr "_Heslo:" #: ../pan/gui/server-ui.cc:333 msgid "" "The password to give the server when asked. If your server doesn't require " "authentication, you can leave this blank." msgstr "" #: ../pan/gui/server-ui.cc:336 #, fuzzy msgid "Settings" msgstr "Zastavovanie" #: ../pan/gui/server-ui.cc:343 msgid "Connection _Limit:" msgstr "_Limit spojenia:" #: ../pan/gui/server-ui.cc:347 msgid "After Two Weeks" msgstr "" #: ../pan/gui/server-ui.cc:348 msgid "After One Month" msgstr "" #: ../pan/gui/server-ui.cc:349 msgid "After Two Months" msgstr "" #: ../pan/gui/server-ui.cc:350 msgid "After Three Months" msgstr "" #: ../pan/gui/server-ui.cc:351 msgid "After Six Months" msgstr "" #: ../pan/gui/server-ui.cc:352 #, fuzzy msgid "Never Expire Old Articles" msgstr "Platnosť _nikdy nevyprší" #: ../pan/gui/server-ui.cc:366 #, fuzzy msgid "E_xpire Old Articles:" msgstr "Stiahnuť označené príspevky" #: ../pan/gui/server-ui.cc:370 #, fuzzy msgid "Primary" msgstr "Priorita" #: ../pan/gui/server-ui.cc:371 msgid "Fallback" msgstr "" #: ../pan/gui/server-ui.cc:385 #, fuzzy msgid "Server Rank:" msgstr "Servery" #: ../pan/gui/server-ui.cc:389 msgid "" "Fallback servers are used for articles that can't be found on the " "primaries. One common approach is to use free servers as primaries and " "subscription servers as fallbacks." msgstr "" #: ../pan/gui/server-ui.cc:396 msgid "Security" msgstr "" #: ../pan/gui/server-ui.cc:401 msgid "Use Plaintext (Unsecured) Connections" msgstr "" #: ../pan/gui/server-ui.cc:402 #, fuzzy msgid "Use Secure SSL Connections" msgstr "Bez spojení" #: ../pan/gui/server-ui.cc:418 msgid "TLS (SSL) Options:" msgstr "" #: ../pan/gui/server-ui.cc:423 msgid "" "You can set the option for using/disabling secure SSL/TLS connections here. " "If you enable SSL/TLS, your data is encrypted and secure. It is encouraged " "to use this option for privacy reasons." msgstr "" #: ../pan/gui/server-ui.cc:428 msgid "Always trust this server's certificate" msgstr "" #: ../pan/gui/server-ui.cc:602 #, c-format msgid "Really delete \"%s\"?" msgstr "" #: ../pan/gui/server-ui.cc:691 msgid "No information available." msgstr "" #: ../pan/gui/server-ui.cc:697 #, c-format msgid "Server Certificate for '%s'" msgstr "" #: ../pan/gui/server-ui.cc:795 #, c-format msgid "Really delete certificate for \"%s\"?" msgstr "" #. dialog #: ../pan/gui/server-ui.cc:822 ../pan/gui/server-ui.cc:843 #: ../pan/gui/server-ui.cc:941 msgid "Servers" msgstr "Servery" #: ../pan/gui/server-ui.cc:882 #, fuzzy msgid "Remove a Server" msgstr "Nový server" #. dialog #: ../pan/gui/server-ui.cc:915 msgid "SSL Certificates" msgstr "" #: ../pan/gui/server-ui.cc:936 msgid "Certificates" msgstr "" #: ../pan/gui/server-ui.cc:967 msgid "Import Certificate" msgstr "" #: ../pan/gui/server-ui.cc:973 msgid "Inspect Certificate" msgstr "" #: ../pan/gui/server-ui.cc:980 #, fuzzy msgid "Remove Certificate" msgstr "Nový server" #: ../pan/gui/task-pane.cc:143 #, c-format msgid "" "\n" "Upload\n" "\n" "Subject: \"%s\"\n" "From: %s\n" "Groups: %s\n" "Sourcefile: %s\n" msgstr "" #: ../pan/gui/task-pane.cc:155 #, c-format msgid "" "\n" "Download\n" "\n" "Subject: \"%s\"\n" "From: %s\n" "Date: %s\n" "Groups: %s\n" "Save Path: %s\n" msgstr "" #: ../pan/gui/task-pane.cc:157 #, fuzzy msgid "unknown" msgstr "Neznámy" #: ../pan/gui/task-pane.cc:263 msgid "Choose new destination for selected Tasks" msgstr "" #: ../pan/gui/task-pane.cc:417 #, fuzzy, c-format msgid "Pan: Tasks (%d Queued, %d Running, %d Stopped)" msgstr "Správca úloh programu Pan %s (%d v rade, %d beží, %d zastavených)" #: ../pan/gui/task-pane.cc:419 #, fuzzy, c-format msgid "Pan: Tasks (%d Queued, %d Running)" msgstr "Správca úloh programu Pan %s (%d v rade, %d beží)" #: ../pan/gui/task-pane.cc:421 #, fuzzy, c-format msgid "Pan: Tasks" msgstr "Pan: Správca úloh" #: ../pan/gui/task-pane.cc:446 #, fuzzy, c-format msgid "%lu selected, %s" msgstr "(%u vybraných)" #: ../pan/gui/task-pane.cc:510 msgid "Running" msgstr "Beží" #: ../pan/gui/task-pane.cc:511 msgid "Decoding" msgstr "" #: ../pan/gui/task-pane.cc:513 msgid "Queued for Decode" msgstr "" #: ../pan/gui/task-pane.cc:514 msgid "Queued for Encode" msgstr "" #: ../pan/gui/task-pane.cc:515 msgid "Queued" msgstr "V rade" #: ../pan/gui/task-pane.cc:516 msgid "Stopped" msgstr "Zastavené" #: ../pan/gui/task-pane.cc:517 msgid "Removing" msgstr "Odstraňovanie" #: ../pan/gui/task-pane.cc:546 #, fuzzy, c-format msgid "%d%% Done" msgstr "% hotových" #: ../pan/gui/task-pane.cc:552 #, fuzzy, c-format msgid "%d:%02d:%02d Remaining (%d @ %lu KiB/s)" msgstr "%d:%02d:%02d (%lu KiB/s)" #: ../pan/gui/task-pane.cc:646 ../pan/gui/task-pane.cc:647 #, fuzzy msgid "Move To Top" msgstr "Presunúť vybrané úlohy na spodok" #: ../pan/gui/task-pane.cc:651 ../pan/gui/task-pane.cc:652 #, fuzzy msgid "Move To Bottom" msgstr "Presunúť vybrané úlohy na spodok" #: ../pan/gui/task-pane.cc:656 ../pan/gui/task-pane.cc:657 #, fuzzy msgid "Stop Task" msgstr "Bez úloh" #: ../pan/gui/task-pane.cc:661 ../pan/gui/task-pane.cc:662 #, fuzzy msgid "Delete Task" msgstr "Vymazať spam" #: ../pan/gui/task-pane.cc:666 ../pan/gui/task-pane.cc:667 #, fuzzy msgid "Restart Task" msgstr "Reštartovať vybrané úlohy" #: ../pan/gui/task-pane.cc:671 ../pan/gui/task-pane.cc:672 msgid "Change Download Destination" msgstr "" #: ../pan/gui/task-pane.cc:729 #, fuzzy msgid "_Online" msgstr "Pan je pripojený" #: ../pan/gui/task-pane.cc:746 #, fuzzy msgid "Restart Tasks" msgstr "Reštartovať vybrané úlohy" #: ../pan/gui/task-pane.cc:748 #, fuzzy msgid "Stop Tasks" msgstr "Bez úloh" #: ../pan/gui/task-pane.cc:750 #, fuzzy msgid "Delete Tasks" msgstr "Vymazať spam" #: ../pan/gui/url.cc:123 #, fuzzy, c-format msgid "Error starting URL: %s (Command was: %s)" msgstr "Chyba pri analýze príkazového riadku \"www prehliadač\": %s" #: ../pan/tasks/decoder.cc:115 #, fuzzy, c-format msgid "Couldn't save file \"%s\": %s" msgstr "Nemohol som načítať súbor s podpisom \"%s\": %s" #: ../pan/tasks/decoder.cc:137 ../pan/tasks/encoder.cc:136 msgid "Error initializing uulib" msgstr "" #: ../pan/tasks/decoder.cc:152 ../pan/tasks/socket-impl-gio.cc:352 #: ../pan/tasks/socket-impl-openssl.cc:634 #, fuzzy, c-format msgid "Error reading from %s: %s" msgstr "Chyba pri čítaní zo zásuvky: %s" #: ../pan/tasks/decoder.cc:192 #, c-format msgid "Saved \"%s\"" msgstr "Uložené \"%s\"" #: ../pan/tasks/decoder.cc:199 #, fuzzy, c-format msgid "" "Error saving \"%s\":\n" "%s." msgstr "Chyba pri čítaní súboru \"%s\": %s" #: ../pan/tasks/decoder.cc:314 ../pan/tasks/task-article.cc:350 #, fuzzy, c-format msgid "Decoding %s" msgstr "Čítam" #: ../pan/tasks/encoder.cc:102 ../pan/tasks/encoder.cc:155 #, fuzzy, c-format msgid "Error loading %s from cache." msgstr "Chyba pri čítaní zo zásuvky." #: ../pan/tasks/encoder.cc:177 #, fuzzy, c-format msgid "Error encoding %s: %s" msgstr "Chyba pri čítaní súboru \"%s\": %s" #: ../pan/tasks/encoder.cc:269 #, fuzzy, c-format msgid "Encoding %s" msgstr "_Znaková sada:" #: ../pan/tasks/nntp.cc:126 #, c-format msgid "%s requires a username, but none is set." msgstr "" #: ../pan/tasks/nntp.cc:139 #, c-format msgid "%s requires a password, but none is set." msgstr "" #: ../pan/tasks/nntp.cc:205 #, c-format msgid "Sending \"%s\" to %s returned an error: %s" msgstr "" #: ../pan/tasks/nntp.cc:228 #, c-format msgid "Sending \"%s\" to %s returned an unrecognized response: \"%s\"" msgstr "" #: ../pan/tasks/nntp-pool.cc:222 #, fuzzy, c-format msgid "Unable to connect to \"%s\"" msgstr "Nemôžem sa spojiť s poštovým serverom \"%*.*s\"" #: ../pan/tasks/socket-impl-gio.cc:173 ../pan/tasks/socket-impl-gio.cc:211 #: ../pan/tasks/socket-impl-openssl.cc:214 #: ../pan/tasks/socket-impl-openssl.cc:252 #, fuzzy, c-format msgid "Error connecting to \"%s\"" msgstr "Chyba pri čítaní súboru \"%s\": %s" #: ../pan/tasks/socket-impl-gio.cc:351 ../pan/tasks/socket-impl-openssl.cc:633 #, fuzzy msgid "Unknown Error" msgstr "Neznámy" #: ../pan/tasks/task-article.cc:61 ../pan/tasks/task-article.cc:156 #: ../pan/tasks/task-article.cc:159 #, fuzzy, c-format msgid "Saving %s" msgstr "Ukladám \"%s\"" #: ../pan/tasks/task-article.cc:63 #, fuzzy, c-format msgid "Reading %s" msgstr "Čítam" #: ../pan/tasks/task-article.cc:322 #, c-format msgid "Article \"%s\" is incomplete -- the news server(s) don't have part %s" msgstr "" #: ../pan/tasks/task-groups.cc:40 #, fuzzy, c-format msgid "Getting group list from \"%s\"" msgstr "Získavam skupiny zo servera \"%s\"" #: ../pan/tasks/task-groups.cc:122 #, fuzzy, c-format msgid "Fetched %lu Groups" msgstr "Získaných %u skupín" #: ../pan/tasks/task-post.cc:35 #, fuzzy, c-format msgid "Posting \"%s\"" msgstr "Dekódujem \"%s\"" #: ../pan/tasks/task-post.cc:76 #, fuzzy, c-format msgid "Posting of \"%s\" failed: %s" msgstr "/P_oslať/_Profily posielania..." #: ../pan/tasks/task-post.cc:81 #, c-format msgid "Posting of \"%s\" succesful: %s" msgstr "" #: ../pan/tasks/task-upload.cc:51 #, fuzzy, c-format msgid "Uploading %s" msgstr "Čítam" #: ../pan/tasks/task-upload.cc:249 #, c-format msgid "Uploading %s - Part %d of %d" msgstr "" #: ../pan/tasks/task-upload.cc:251 #, c-format msgid "Uploading Message body with Subject \"%s\"" msgstr "" #: ../pan/tasks/task-upload.cc:308 #, c-format msgid "Posting of File %s (Part %d of %d) failed: No Posts allowed by server." msgstr "" #: ../pan/tasks/task-upload.cc:316 #, fuzzy, c-format msgid "Posting of File %s (Part %d of %d) failed: %s" msgstr "/P_oslať/_Profily posielania..." #: ../pan/tasks/task-upload.cc:326 ../pan/tasks/task-upload.cc:333 #, c-format msgid "Posting of file %s (Part %d of %d) succesful: %s" msgstr "" #: ../pan/tasks/task-upload.cc:343 #, fuzzy, c-format msgid "Posting of file %s succesful: %s" msgstr "/P_oslať/_Profily posielania..." #: ../pan/tasks/task-upload.cc:347 #, c-format msgid "" "Posting of file %s not completely successful: Check the log (right-click on " "list item) !" msgstr "" #: ../pan/tasks/task-upload.cc:364 #, c-format msgid "" "Posting of file %s not successful: Check the log (right-click on list item) !" msgstr "" #: ../pan/tasks/task-xover.cc:79 #, c-format msgid "Getting all headers for \"%s\"" msgstr "Získavam všetky hlavičky pre \"%s\"" #: ../pan/tasks/task-xover.cc:81 #, c-format msgid "Getting new headers for \"%s\"" msgstr "Získavam nové hlavičky pre \"%s\"" #. SAMPLE #: ../pan/tasks/task-xover.cc:83 #, c-format msgid "Sampling headers for \"%s\"" msgstr "Vzorkujem hlavičky pre \"%s\"" #: ../pan/tasks/task-xover.cc:369 #, fuzzy, c-format msgid "%s (%lu parts, %lu articles)" msgstr "%lu častí, %lu príspevkov" #: ../pan/tasks/task-xoverinfo.cc:78 #, fuzzy, c-format msgid "Getting header counts for \"%s\"" msgstr "Získavam všetky hlavičky pre \"%s\"" #: ../pan/usenet-utils/filter-info.cc:163 #, fuzzy msgid "article doesn't have attachments" msgstr "Príspevok nemá úplné prílohy" #: ../pan/usenet-utils/filter-info.cc:167 #, fuzzy msgid "the article has attachments" msgstr "Príspevok nemá prílohy" #: ../pan/usenet-utils/filter-info.cc:171 #, fuzzy msgid "the article isn't cached locally" msgstr "Telo príspevku nie je dočasne uložené lokálne" #: ../pan/usenet-utils/filter-info.cc:175 #, fuzzy msgid "the article is cached locally" msgstr "Telo príspevku je dočasne uložené lokálne" #: ../pan/usenet-utils/filter-info.cc:179 #, fuzzy msgid "the article wasn't posted by you" msgstr "Príspevok nebol poslaný odo mňa" #: ../pan/usenet-utils/filter-info.cc:183 #, fuzzy msgid "the article was posted by you" msgstr "Príspevok bol poslaný odo mňa" #: ../pan/usenet-utils/filter-info.cc:187 #, fuzzy msgid "the article has been read" msgstr "Príspevok je neprečítaný" #: ../pan/usenet-utils/filter-info.cc:191 #, fuzzy msgid "the article hasn't been read" msgstr "Príspevok je neprečítaný" #: ../pan/usenet-utils/filter-info.cc:195 #, fuzzy, c-format msgid "the article is less than %ld bytes long" msgstr "Príspevok je kratší ako %d bajtov" #: ../pan/usenet-utils/filter-info.cc:200 #, fuzzy, c-format msgid "the article is at least %ld bytes long" msgstr "Príspevok je kratší ako %d bajtov" #: ../pan/usenet-utils/filter-info.cc:205 #, fuzzy, c-format msgid "the article is less than %ld lines long" msgstr "Príspevok je kratší ako %d riadkov" #: ../pan/usenet-utils/filter-info.cc:210 #, fuzzy, c-format msgid "the article is at least %ld lines long" msgstr "Príspevok je kratší ako %d riadkov" #: ../pan/usenet-utils/filter-info.cc:215 #, fuzzy, c-format msgid "the article is less than %ld days old" msgstr "Príspevok je starší viac ako %d dní" #: ../pan/usenet-utils/filter-info.cc:220 #, fuzzy, c-format msgid "the article is at least %ld days old" msgstr "Príspevok je starý aspoň N dní" #: ../pan/usenet-utils/filter-info.cc:225 #, fuzzy, c-format msgid "the article was posted to less than %ld groups" msgstr "Príspevok je poslaný do menej ako %d skupín" #: ../pan/usenet-utils/filter-info.cc:230 #, fuzzy, c-format msgid "the article was posted to at least %ld groups" msgstr "Príspevok bol _poslaný aspoň do N diskusných skupín:" #: ../pan/usenet-utils/filter-info.cc:235 #, fuzzy, c-format msgid "the article's score is less than %ld" msgstr "nastaviť bodovanie na" #: ../pan/usenet-utils/filter-info.cc:240 #, fuzzy, c-format msgid "the article's score is %ld or higher" msgstr "nastaviť bodovanie na" #: ../pan/usenet-utils/filter-info.cc:249 #: ../pan/usenet-utils/filter-info.cc:259 #, fuzzy, c-format msgid "%s doesn't contain \"%s\"" msgstr "neobsahuje" #: ../pan/usenet-utils/filter-info.cc:250 #: ../pan/usenet-utils/filter-info.cc:260 #, c-format msgid "%s isn't \"%s\"" msgstr "" #: ../pan/usenet-utils/filter-info.cc:251 #: ../pan/usenet-utils/filter-info.cc:261 #, fuzzy, c-format msgid "%s doesn't begin with \"%s\"" msgstr "nekončí na" #: ../pan/usenet-utils/filter-info.cc:252 #: ../pan/usenet-utils/filter-info.cc:262 #, fuzzy, c-format msgid "%s doesn't end with \"%s\"" msgstr "nekončí na" #: ../pan/usenet-utils/filter-info.cc:253 #: ../pan/usenet-utils/filter-info.cc:263 #, c-format msgid "%s doesn't match the regex \"%s\"" msgstr "" #: ../pan/usenet-utils/filter-info.cc:275 #, fuzzy, c-format msgid "%s contains \"%s\"" msgstr "obsahuje" #: ../pan/usenet-utils/filter-info.cc:276 #, c-format msgid "%s is \"%s\"" msgstr "" #: ../pan/usenet-utils/filter-info.cc:277 #, c-format msgid "%s begins with \"%s\"" msgstr "" #: ../pan/usenet-utils/filter-info.cc:278 #, fuzzy, c-format msgid "%s ends with \"%s\"" msgstr "končí na" #: ../pan/usenet-utils/filter-info.cc:279 #, fuzzy, c-format msgid "%s matches the regex \"%s\"" msgstr "vyhovuje regulárnemu výrazu" #: ../pan/usenet-utils/filter-info.cc:285 msgid "Any of these tests fail:" msgstr "" #: ../pan/usenet-utils/filter-info.cc:292 msgid "All of these tests pass:" msgstr "" #: ../pan/usenet-utils/filter-info.cc:299 msgid "None of these tests pass:" msgstr "" #: ../pan/usenet-utils/filter-info.cc:306 msgid "Any of these tests pass:" msgstr "" #: ../pan/usenet-utils/gnksa.cc:878 #, c-format msgid "No email address provided; generating message-id with domain \"%s\"" msgstr "" "Nebola poskytnutá adresa elektronickej pošty; generujem message-id s doménou " "\"%s\"" #: ../pan/usenet-utils/message-check.cc:124 #, fuzzy msgid "Warning: Reply seems to be top-posted." msgstr "UPOZORNENIE: Odpoveď vyzerá poslaná na vrch." #: ../pan/usenet-utils/message-check.cc:145 #, fuzzy msgid "Warning: The signature marker should be \"-- \", not \"--\"." msgstr "UPOZORNENIE: Značka podpisu by mala byť \"-- \" a nie \"--\"." #: ../pan/usenet-utils/message-check.cc:162 #, fuzzy msgid "Warning: Signature prefix with no signature." msgstr "UPOZORNENIE: Oddeľovač podpisu bez podpisu." #: ../pan/usenet-utils/message-check.cc:167 #, fuzzy msgid "Warning: Signature is more than 4 lines long." msgstr "UPOZORNENIE: Podpis je dlhší ako 4 riadky" #: ../pan/usenet-utils/message-check.cc:172 #, fuzzy msgid "Warning: Signature is more than 80 characters wide." msgstr "UPOZORNENIE: Podpis má viac ako 80 znakov na riadok" #: ../pan/usenet-utils/message-check.cc:198 #, fuzzy, c-format msgid "Warning: %d line is more than 80 characters wide." msgid_plural "Warning: %d lines are more than 80 characters wide." msgstr[0] "UPOZORNENIE: %d riadkov je dlhších ako 80 znakov." msgstr[1] "UPOZORNENIE: %d riadkov je dlhších ako 80 znakov." #: ../pan/usenet-utils/message-check.cc:223 #, fuzzy msgid "Error: Message is empty." msgstr "CHYBA: Správa je prázdna." #: ../pan/usenet-utils/message-check.cc:258 #, fuzzy msgid "Warning: The message is entirely quoted text!" msgstr "UPOZORNENIE: Správa obsahuje len citovaný text!" #: ../pan/usenet-utils/message-check.cc:259 #, fuzzy msgid "Warning: The message is mostly quoted text." msgstr "UPOZORNENIE: Väčšina správy je len citovaný text." #: ../pan/usenet-utils/message-check.cc:309 #, fuzzy msgid "Error: Message appears to have no new content." msgstr "CHYBA: Zdá sa, že správa nemá žiaden nový obsah." #: ../pan/usenet-utils/message-check.cc:344 #: ../pan/usenet-utils/message-check.cc:383 #, c-format msgid "" "Warning: The posting profile's server doesn't carry newsgroup\n" "\t\"%s\".\n" "\tIf the group name is correct, switch profiles in the \"From:\"\n" "\tline or edit the profile with \"Edit|Manage Posting Profiles\"." msgstr "" #: ../pan/usenet-utils/message-check.cc:355 #, fuzzy msgid "Warning: Following-Up to too many groups." msgstr "UPOZORNENIE: Prispievanie do príliš veľa skupín." #: ../pan/usenet-utils/message-check.cc:366 #, fuzzy msgid "Error: No Subject specified." msgstr "CHYBA: Nebol zadaný predmet." #: ../pan/usenet-utils/message-check.cc:395 #, fuzzy, c-format msgid "Warning: Group \"%s\" is read-only." msgstr "UPOZORNENIE: Skupina \"%s\" je len na čítanie." #: ../pan/usenet-utils/message-check.cc:404 #, fuzzy msgid "Error: Posting to a very large number of groups." msgstr "CHYBA: Posielate do veľmi veľkého počtu skupín." #: ../pan/usenet-utils/message-check.cc:409 #, fuzzy msgid "Warning: Posting to a large number of groups." msgstr "UPOZORNENIE: Posielate do veľkého počtu skupín." #: ../pan/usenet-utils/message-check.cc:416 #, fuzzy msgid "Warning: Crossposting without setting Followup-To header." msgstr "" "UPOZORNENIE: Posielanie do viacerých diskusných skupín bez nastavenia " "Prispieť-do." #: ../pan/usenet-utils/message-check.cc:441 #, fuzzy msgid "Error: Bad email address." msgstr "Adresa _elektronickej pošty:" #: ../pan/usenet-utils/message-check.cc:450 msgid "Warning: Most newsgroups frown upon HTML posts." msgstr "" #: ../pan/usenet-utils/message-check.cc:486 #, fuzzy msgid "Error: No Recipients." msgstr "CHYBA: Nebol zadaný predmet." #: ../pan/usenet-utils/scorefile.cc:304 #, fuzzy, c-format msgid "" "Error reading score in %*.*s, line %d: expected 'Expires: MM/DD/YYYY' or " "'Expires: DD-MM-YYYY'." msgstr "očakávané 'Expires: MM/DD/RRRR' alebo 'Expires: DD-MM-RRRR'" #: ../pan/usenet-utils/scorefile.cc:307 #, c-format msgid "Expired old score from %*.*s, line %d" msgstr "" #: ../pan/usenet-utils/scorefile.cc:380 #, c-format msgid "Error reading score in %*.*s, line %d: unexpected line." msgstr "" #: ../pan/usenet-utils/scorefile.cc:428 #, c-format msgid "Read %lu scoring rules in %lu sections from \"%s\"" msgstr "" #: ../pan/usenet-utils/ssl-utils.h:199 #, fuzzy, c-format msgid "Error printing the server certificate for '%s'" msgstr "Chyba pri analýze príkazového riadku \"www prehliadač\": %s" #: ../pan/usenet-utils/ssl-utils.h:216 #, c-format msgid "" "The current server '%s' sent this security certificate :\n" "\n" msgstr "" #: ../pan/usenet-utils/ssl-utils.h:217 #, c-format msgid "" "Certificate information for server '%s' :\n" "\n" msgstr "" #: ../pan/usenet-utils/ssl-utils.h:219 #, c-format msgid "" "%sIssuer information:\n" "%s\n" "Valid until : %s\n" "\n" "Not valid before : %s\n" "\n" msgstr "" #: ../pan/usenet-utils/text-massager.cc:397 msgid "> [quoted text muted]" msgstr "> [citovaný text potlačený]" #~ msgid "Read News from Usenet" #~ msgstr "Prečítať správy z Usenetu" #, fuzzy #~ msgid "_Toggle Flag on for Thread" #~ msgstr "/_Sledovať vlákno" #, fuzzy #~ msgid "Error!" #~ msgstr "Chyba" #, fuzzy #~ msgid "Signer : " #~ msgstr "_Súbor s podpisom:" #, fuzzy #~ msgid "_Signature:" #~ msgstr "_Súbor s podpisom:" #, fuzzy #~ msgid "Creating directory \"%s\"" #~ msgstr "Chyba pri otváraní priečinka \"%s\": %s)" #~ msgid "Couldn't create directory \"%s\": %s" #~ msgstr "Nemôžem vytvoriť priečinok \"%s\": %s" #, fuzzy #~ msgid "" #~ "Your copy of libpcre doesn't support UTF-8. UTF-8 regular expressions " #~ "may fail." #~ msgstr "" #~ "Kópia libpcre vo vašom systéme nepodporuje UTF-8. Regulárne výrazy s " #~ "UTF-8 môžu zlyhať." #~ msgid "Can't use regular expression \"%s\": %s at position %d" #~ msgstr "Nemôžem použiť regulárny výraz \"%s\": %s na pozícii %d" #, fuzzy #~ msgid "_Groups" #~ msgstr "Skupiny" #, fuzzy #~ msgid "Read Selected Group" #~ msgstr "Prečítať nasledujúcu neprečítanú skupina" #, fuzzy #~ msgid "_Mark Group _Read" #~ msgstr "/Označiť skupinu ako p_rečítanú" #, fuzzy #~ msgid "_Delete Group's Articles" #~ msgstr "/_Vymazať príspevky zo skupiny" #, fuzzy #~ msgid "Get New Headers for Selected Groups" #~ msgstr "Stiahnuť nové hlavičky v označených skupinách" #, fuzzy #~ msgid "Get New Headers for Subscribed Groups" #~ msgstr "Stiahnuť nové hlavičky v prihlásených skupinách" #, fuzzy #~ msgid "Get Headers from Server" #~ msgstr "Získaných %d skupín zo servera \"%s\"" #, fuzzy #~ msgid "Get a new Group list from the Server" #~ msgstr "Získavam %d nových skupín zo servera \"%s\"" #, fuzzy #~ msgid "Subscribe to Selected Groups" #~ msgstr "Prihlásené diskusné skupiny" #, fuzzy #~ msgid "Unsubscribe from Selected Groups" #~ msgstr "Prihlásené diskusné skupiny" #, fuzzy #~ msgid "Save Selected Articles..." #~ msgstr "Uložiť prílohy príspevku" #~ msgid "Cancel Last Task" #~ msgstr "Zrušiť poslednú úlohu" #, fuzzy #~ msgid "Clear Header Pane" #~ msgstr "Panel hlavičiek" #, fuzzy #~ msgid "Clear Body Pane" #~ msgstr "Panel _tela" #, fuzzy #~ msgid "Download _Selected Article" #~ msgstr "Stiahnuť označené príspevky" #, fuzzy #~ msgid "Download Selected Article" #~ msgstr "Stiahnuť označené príspevky" #, fuzzy #~ msgid "Read _Selected Article" #~ msgstr "Stiahnuť označené príspevky" #, fuzzy #~ msgid "Next Unread Group" #~ msgstr "/_Prejsť na/Nasledujúca _neprečítaná skupina" #, fuzzy #~ msgid "Next Group" #~ msgstr "/_Prejsť na/Nasled_ujúca skupina" #, fuzzy #~ msgid "Next Watched Article" #~ msgstr "/_Prejsť na/Nasledujúci _sledovaný príspevok" #, fuzzy #~ msgid "Next Thread" #~ msgstr "/_Prejsť na/Nasle_dujúce vlákno" #, fuzzy #~ msgid "Previous Article" #~ msgstr "/_Prejsť na/Pre_dchádzajúci príspevok" #, fuzzy #~ msgid "Previous Thread" #~ msgstr "/_Prejsť na/Predchádzajúce vlákno" #, fuzzy #~ msgid "Parent Article" #~ msgstr "/_Prejsť na/Rodičovský _príspevok" #, fuzzy #~ msgid "_Plonk Author" #~ msgstr "/Príspe_vky/_Nezaujímavý autor" #, fuzzy #~ msgid "Mark Article as Read" #~ msgstr "Príspevok je prečítaný" #, fuzzy #~ msgid "Mark Article as Unread" #~ msgstr "Príspevok je neprečítaný" #, fuzzy #~ msgid "Reply to Author" #~ msgstr "/Príspe_vky/_Nezaujímavý autor" #, fuzzy #~ msgid "_About..." #~ msgstr "/_Pomocník/_O programe..." #, fuzzy #~ msgid "Abbreviate _Names in Group Pane" #~ msgstr "/_Zobraziť/Skrátiť _názvy v paneli skupín" #, fuzzy #~ msgid "Match Only Articles Posted by Me" #~ msgstr "Zobraziť len moje príspevky" #, fuzzy #~ msgid "Central European (ISO-8859-2)" #~ msgstr "Stredoeurópske" #, fuzzy #~ msgid "Central European (Windows-1250)" #~ msgstr "Stredoeurópske" #, fuzzy #~ msgid "Chinese Simplified (gb2312)" #~ msgstr "Čínsky (zjednodušene)" #, fuzzy #~ msgid "Chinese Traditional (big5)" #~ msgstr "Čínsky (tradične)" #, fuzzy #~ msgid "Cyrillic (KOI8-R)" #~ msgstr "Azbuka" #, fuzzy #~ msgid "Cyrillic, Ukrainian (KOI8-U)" #~ msgstr "Azbuka, Ukrajinská" #, fuzzy #~ msgid "Western, New (ISO-8859-15)" #~ msgstr "Západné, Nové" #, fuzzy #~ msgid "Unicode (UTF-8)" #~ msgstr "Unikód, UTF-8" #, fuzzy #~ msgid "Pan: " #~ msgstr "Pan: Pravidlá" #, fuzzy #~ msgid "Group Name" #~ msgstr "Panel skupiny" #, fuzzy #~ msgid "Pan: %s" #~ msgstr "Pan: Pravidlá" #~ msgid "Tasks: %u/%u" #~ msgstr "Úlohy: %u/%u" #~ msgid "%u Tasks Running, %u Tasks Total" #~ msgstr "%u bežiacich úloh, %u úloh celkom" #, fuzzy #~ msgid "Wrap the Article Body to 80 Columns" #~ msgstr "/_Zobraziť/_Zalomiť telo príspevku" #, fuzzy #~ msgid "_Close" #~ msgstr "Farby" #, fuzzy #~ msgid "Close Window" #~ msgstr "Zatvoriť okno záznamov" #, fuzzy #~ msgid "Cut Text" #~ msgstr "Citovaný text:" #, fuzzy #~ msgid "Copy Text" #~ msgstr "Zalomiť text" #, fuzzy #~ msgid "_Paste" #~ msgstr "P_oslať" #, fuzzy #~ msgid "Paste Text" #~ msgstr "Uložiť te_xt" #, fuzzy #~ msgid "Manage Posting Pr_ofiles..." #~ msgstr "/P_oslať/_Profily posielania..." #~ msgid "Western" #~ msgstr "Západné" #, fuzzy #~ msgid "Error loading post.ui: \"%s\"" #~ msgstr "Chyba pri čítaní zo zásuvky: %s" #, fuzzy #~ msgid "Editors" #~ msgstr "Editor" #, fuzzy #~ msgid "Posting Article" #~ msgstr "Posielam príspevok \"%s\"" #, fuzzy #~ msgid "Add a New Profile" #~ msgstr "Pridať nový profil" #~ msgid "Edit the selected profile" #~ msgstr "Upraviť vybraný profil" #~ msgid "Remove the selected profile" #~ msgstr "Odstrániť vybraný profil" #, fuzzy #~ msgid "Threads" #~ msgstr "_Prečítané vlákna:" #, fuzzy #~ msgid "Path" #~ msgstr "Časti" #, fuzzy #~ msgid "_Path:" #~ msgstr "P_oslať" #, fuzzy #~ msgid "Group Management" #~ msgstr "Panel skupiny" #, fuzzy #~ msgid "Pan: New Scoring Rule" #~ msgstr "Pan: Upraviť pravidlo" #, fuzzy #~ msgid "Then" #~ msgstr "Poďakovanie" #, fuzzy #~ msgid "For" #~ msgstr "Priečinky" #, fuzzy #~ msgid "Name: \"%s\"" #~ msgstr "Uložené \"%s\"" #, fuzzy #~ msgid "Pan: Add a Server" #~ msgstr "Pan: Upraviť server" #, fuzzy #~ msgid "Pan: Edit a Server's Settings" #~ msgstr "Pan: Upraviť server" #~ msgid "Pan: Servers" #~ msgstr "Pan: Servery" #, fuzzy #~ msgid "to %s" #~ msgstr "O programe %s" #~ msgid "Status" #~ msgstr "Stav" #~ msgid "Unable to set group: %s" #~ msgstr "Nemôžem nastaviť skupinu: %s" #~ msgid "Error: %s" #~ msgstr "Chyba: %s" #, fuzzy #~ msgid "Couldn't load \"%s\": %s" #~ msgstr "Nemôžem vytvoriť priečinok \"%s\": %s" #, fuzzy #~ msgid "" #~ "Error saving \"%s\":\n" #~ "%s. %s" #~ msgstr "Chyba pri čítaní súboru \"%s\": %s" #, fuzzy #~ msgid "Warning: Unknown group \"%s\"." #~ msgstr "UPOZORNENIE: Neznáma skupina: \"%s\"." #, fuzzy #~ msgid "_Posting" #~ msgstr "P_oslať" #, fuzzy #~ msgid "Post New Article" #~ msgstr "_Príspevok" #, fuzzy #~ msgid "Follow-up to Article" #~ msgstr "Prispieť do diskusnej skupiny" #, fuzzy #~ msgid "_Post Article" #~ msgstr "_Príspevok" #, fuzzy #~ msgid "Post this Article Now" #~ msgstr "Posielam príspevok \"%s\"" #, fuzzy #~ msgid "Error: No Newsgroups specified." #~ msgstr "CHYBA: Neboli zadaní príjemcovia." #, fuzzy #~ msgid "Message-Id" #~ msgstr "ID-správy" #, fuzzy #~ msgid "Saved newsrc files in %.1f seconds" #~ msgstr "Obodovaných %d príspevkov za %.1f sekúnd (%.0f prísp/s)" #, fuzzy #~ msgid "Use _Monospace Font in Body Pane" #~ msgstr "/_Zobraziť/Použiť nepropor_cionálne písmo v paneli tela" #~ msgid "%d connections totaling %.1f KiB per second" #~ msgstr "%d spojení pri rýchlosti spolu %.1f KiB za sekundu" #~ msgid "" #~ "Used when email replies to your posts should go somewhere other than the " #~ "email address above. Because Reply-To: is relatively difficult for " #~ "spammers to harvest, it's polite give your email address here if you gave " #~ "an invalid email address above." #~ msgstr "" #~ "Použité, keď odpovede elektronickou poštou na vaše príspevky majú " #~ "smerovať niekde inde ako je adresa elektronickej pošty vyššie. Pretože " #~ "Odpoveď-pre: je relatívne obtiažne získať spammermi, je zdvorilé zadať " #~ "svoju adresu sem, ak zadávate neplatnú adresu vyššie." #~ msgid "_Reply-To Header:" #~ msgstr "Hlavička _Odpoveď-pre:" #~ msgid "Or_ganization Header:" #~ msgstr "Hlavička Or_ganizácia:" #, fuzzy #~ msgid "Attach this _Signature:" #~ msgstr "Podpis:" #~ msgid "Automatic Downloads" #~ msgstr "Automatické sťahovania" #, fuzzy #~ msgid "Save a_ttachments to path:" #~ msgstr "Uložiť prílohy do:" #~ msgid "UNKNOWN" #~ msgstr "NEZNÁMY" #, fuzzy #~ msgid "Decode can't access directory \"%s\"" #~ msgstr "Dekódovanie nemôže pristupovať k ceste \"%s\"" #~ msgid "Could not decode article - file may be corrupt/incomplete" #~ msgstr "Nemôžem dekódovať príspevok - súbor môže byť poškodený/nekompletný" #~ msgid "Checksum for `%s' part %d failed - file is corrupt" #~ msgstr "Kontrolný súčet pre \"%s\", časť %d zlyhal - súbor je poškodený" #~ msgid "Checksum for `%s' failed - file may be corrupt" #~ msgstr "Kontrolný súčet pre \"%s\" zlyhal - súbor môže byť poškodený" #, fuzzy #~ msgid "Use custom colors in _Header Pane" #~ msgstr "Použiť vlastné písmo v paneli hlavičiek:" #, fuzzy #~ msgid "Header Pane background:" #~ msgstr "Bodovanie panela hlavičiek" #, fuzzy #~ msgid "Unread articles:" #~ msgstr "Neprečítané _vlákna:" #, fuzzy #~ msgid "" #~ "Unsupported data version (%d) for server properties. Are you running an " #~ "old version of Pan by accident?" #~ msgstr "" #~ "Nepodporovaná verzia dát %d pre dátový súbor \"%s\".\n" #~ "Nemáte náhodou spustenú staršiu verziu programu Pan?" #, fuzzy #~ msgid "Couldn't create temporary file: %s" #~ msgstr "Nemôžem vytvoriť dočasný súbor: %s" #~ msgid "Error renaming \"%s\" as \"%s\": %s." #~ msgstr "Chyba pri premenovaní \"%s\" na \"%s\": %s." #~ msgid "Can't backup \"%s\" as \"%s\": %s" #~ msgstr "Nemôžem zálohovať \"%s\" ako \"%s\": %s" #~ msgid "Can't write to \"%s\": %s" #~ msgstr "Nemôžem zapísať do \"%s\": %s" #~ msgid "Body" #~ msgstr "Telo" #, fuzzy #~ msgid "Open a Draft Article from Disk" #~ msgstr "Vypršala platnosť %u príspevkom z \"%s\"" #, fuzzy #~ msgid "subject" #~ msgstr "Predmet" #, fuzzy #~ msgid "author" #~ msgstr "Autor" #~ msgid "Change" #~ msgstr "Zmeniť" #~ msgid "Connections" #~ msgstr "Spojenia" #, fuzzy #~ msgid "Active" #~ msgstr "Akcie" #~ msgid "" #~ "Unable to cancel article: Couldn't find matching article in folder `pan." #~ "sent'!" #~ msgstr "" #~ "Nemôžem zrušiť príspevok: Nemôžem nájsť zodpovedajúci príspevok v " #~ "priečinku `pan.odoslané'!" #~ msgid "" #~ "Unable to supersede article: Couldn't find matching article in folder " #~ "`pan.sent'!" #~ msgstr "" #~ "Nemôžem nahradiť príspevok: Nemôžem nájsť príslušný príspevok v priečinku " #~ "\"pan.odoslané\"!" #~ msgid "You must download the article before you can cancel it." #~ msgstr "Musíte stiahnuť príspevok predtým ako ho môžete zrušiť." #~ msgid "You must download the article before you can supersede it." #~ msgstr "Musíte stiahnuť príspevok predtým ako ho môžete nahradiť." #~ msgid "Pan: Find Article" #~ msgstr "Pan: Nájsť príspevok" #~ msgid "_Author:" #~ msgstr "_Autor:" #~ msgid "Case Sensiti_ve" #~ msgstr "_Rozlišovať veľké a malé písmená" #~ msgid "_Unread Only" #~ msgstr "Len _neprečítané" #~ msgid "Fin_d:" #~ msgstr "Hľa_dať:" #~ msgid "" #~ "Type in a search string and press ENTER.\n" #~ "Wildcards are allowed." #~ msgstr "" #~ "Zadajte reťazec, ktorý chcete vyhľadať, a stlačte ENTER.\n" #~ "Môžete použiť žolíky (? a *)." #~ msgid "/---" #~ msgstr "/---" #~ msgid "/Save Article A_ttachments" #~ msgstr "/Uložiť _prílohy príspevku" #~ msgid "/_Manual Decode..." #~ msgstr "/_Manuálne dekódovanie..." #~ msgid "/D_ownload Flagged" #~ msgstr "/Stiahnuť _označené" #~ msgid "/_Flag" #~ msgstr "/_Príznak" #~ msgid "/_Unflag" #~ msgstr "/Od_značiť" #~ msgid "/_Create Score" #~ msgstr "/_Vytvoriť bodovanie" #~ msgid "/Add S_et to Selection" #~ msgstr "/Pridať _množinu do výberu" #~ msgid "/_Copy to Folder" #~ msgstr "/_Kopírovať do priečinka" #~ msgid "/_Delete" #~ msgstr "/_Vymazať" #~ msgid "Scoring Articles" #~ msgstr "Bodovanie príspevkov" #~ msgid "Filtering Articles" #~ msgstr "Filtrovanie príspevkov" #~ msgid "Updating Header Pane..." #~ msgstr "Aktualizácia panelu hlavičiek..." #~ msgid "Loading group \"%s\"" #~ msgstr "Nahrávam skupinu \"%s\"" #~ msgid "Flushing article cache... " #~ msgstr "Čistenie vyrovnávacej pamäte príspevkov... " #~ msgid "%d files erased." #~ msgstr "%d súborov vymazaných." #~ msgid "Error saving article \"%s\" (is %s full?)" #~ msgstr "Chyba pri ukladaní príspevku \"%s\" (%s je plný?)" #~ msgid "Directory \"%s\" contains %.1f MB in %d files" #~ msgstr "Priečinok \"%s\" zaberá %.1f MB (%d súborov)" #~ msgid "Unparseable Subject" #~ msgstr "Neanalyzovateľný predmet" #~ msgid "Couldn't parse a Message-ID from the raw message!" #~ msgstr "Nemôžem analyzovať ID-správy z nespracovanej správy!" #~ msgid "unknown@spammesenseless.com" #~ msgstr "neznamy@neotravuj.sk" #~ msgid "Can't create file \"%s\" %s" #~ msgstr "Nemôžem vytvoriť súbor \"%s\" %s" #~ msgid "Error saving file \"%s\" - is the disk full?" #~ msgstr "Chyba pri ukladaní súboru \"%s\" - disk je plný?" #~ msgid "Decoded \"%s\" from group \"%s\", \"%s\"" #~ msgstr "Dekódované \"%s\" zo skupiny \"%s\", \"%s\"" #~ msgid "Loading %u of %d groups" #~ msgstr "Načítavam %u z %d skupín" #~ msgid "" #~ "Skipped %d groups due to possible corruption in \"%s\" and \"%s\". You " #~ "may want to delete these files and get a new grouplist from your news " #~ "server." #~ msgstr "" #~ "Preskočených %d skupín kvôli možnému poškodeniu v \"%s\" a \"%s\". Možno " #~ "by ste mali vymazať tieto súbory a získať nový zoznam skupín z vášho " #~ "servera diskusných skupín." #~ msgid "Loaded %d groups for server \"%s\" in %.1f seconds (%.0f groups/sec)" #~ msgstr "" #~ "Načítaných %d skupín pre server \"%s\" za %.1f sekúnd (%.0f skupín/s)" #~ msgid "Saved %d of %u groups" #~ msgstr "Uložených %d z %u skupín" #~ msgid "Error saving list of groups to \"%s\" - is the disk full?" #~ msgstr "Chyba pri ukladaní zoznamu skupín do \"%s\" - disk je plný?" #~ msgid "Saved %d groups in \"%s\" in %.1f seconds (%.0f groups/sec)" #~ msgstr "Uložených %d skupín v \"%s\" za %.1f sekúnd (%.0f skupín/s)" #~ msgid "Skipped unsupported old data file for group \"%s\"." #~ msgstr "Preskočený nepodporovaný starý dátový súbor pre skupinu \"%s\"." #~ msgid "Loaded %d of %d articles" #~ msgstr "Načítaných %d z %d príspevkov" #~ msgid "" #~ "Pan skipped %d corrupt headers from the local cache for group \"%*.*s\"." #~ msgstr "" #~ "Pan preskočil %d poškodených hlavičiek v lokálnej vyrovnávacej pamäti pre " #~ "skupinu \"%*.*s\"." #~ msgid "You may want to empty this group and download fresh headers." #~ msgstr "Asi by ste mali vyprázdniť túto skupinu a stiahnuť hlavičky znovu." #~ msgid "The group will not be saved -- can't create file \"%s\"" #~ msgstr "Skupina nebude uložená -- nemôžem vytvoriť súbor \"%s\"" #~ msgid "Unable to save headers for group \"%*.*s\" - is the disk full?" #~ msgstr "Nemôžem uložiť hlavičky pre skupinu \"%*.*s\" - disk je plný?" #~ msgid "(No Group)" #~ msgstr "(Bez skupiny)" #~ msgid "ERROR: invalid address \"%s\"" #~ msgstr "CHYBA: neplatná adresa \"%s\"" #~ msgid "ERROR: Must have one author in From: line" #~ msgstr "CHYBA: Musíte zadať jedného autora v riadku Od:" #~ msgid "Imported %d groups (%d new) from \"%s\"" #~ msgstr "Importovaných %d skupín (%d nových) z \"%s\"" #~ msgid "Exported %d groups (%d subscribed) to \"%s\"" #~ msgstr "Exportovaných %d skupín (%d prihlásených) do \"%s\"" #~ msgid "Imported %d lines from Gnome config file" #~ msgstr "Importovaných %d riadkov z konfiguračného súboru Gnome" #~ msgid "%s does not appear to be a valid datafile" #~ msgstr "%s nevyzerá ako platný dátový súbor" #~ msgid "Error converting string \"%*s\" to utf8: %d - %s" #~ msgstr "Chyba pri konvertovaní reťazca \"%*s\" na utf8: %d - %s" #~ msgid "No name specified!" #~ msgstr "Nebolo zadané meno!" #~ msgid "pan.sent" #~ msgstr "pan.odoslané" #~ msgid "pan.sendlater" #~ msgstr "pan.poslaťneskôr" #~ msgid "Server is corrupt" #~ msgstr "Server je poškodený" #~ msgid "A Server with that name already exists." #~ msgstr "Server s takýmto menom už existuje." #~ msgid "A newsreader for GNOME" #~ msgstr "Klient diskusných skupín pre GNOME" #~ msgid "Programmer" #~ msgstr "Programátor" #~ msgid "Project Originator, Programmer" #~ msgstr "Pôvodca projektu, programátor" #~ msgid "Programmer, 0.6 - 0.7" #~ msgstr "Programátor, 0.6 - 0.7" #~ msgid "" #~ "Pan %s Translations\n" #~ "%s\n" #~ "\n" #~ "Pan %s Code or Patches\n" #~ "%s\n" #~ "\n" #~ "Pan %s Suggestions and Testing\n" #~ "%s\n" #~ msgstr "" #~ "Pan %s preklady\n" #~ "%s\n" #~ "\n" #~ "Pan %s kód alebo opravy\n" #~ "%s\n" #~ "\n" #~ "Pan %s nápady a testvanie\n" #~ "%s\n" #~ msgid "_Directory for saving articles:" #~ msgstr "_Priečinok pre ukladanie príspevkov:" #~ msgid "Default charse_t:" #~ msgstr "Predvolená znaková _sada:" #~ msgid "Pan: Download Headers for group `%s'" #~ msgstr "Pan: Stiahnuť hlavičky pre skupinu \"%s\"" #~ msgid "Pan: Download Headers" #~ msgstr "Pan: Stiahnuť hlavičky" #~ msgid "Download _new headers" #~ msgstr "Stiahnuť _nové hlavičky" #~ msgid "_Download bodies too" #~ msgstr "_Stiahnuť tiež telá príspevkov" #~ msgid "How should you appear when posting articles?" #~ msgstr "Ako sa máte zobraziť pri posielaní príspevkov?" #~ msgid "Your _Name:" #~ msgstr "Vaše _meno:" #~ msgid "Email _Address:" #~ msgstr "Adresa _elektronickej pošty:" #~ msgid "_Organization:" #~ msgstr "_Organizácia:" #~ msgid "default" #~ msgstr "predvolené" #~ msgid "What mail server should Pan use?" #~ msgstr "Ktorý poštový server má používať Pan?" #~ msgid "What news server should Pan use?" #~ msgstr "Ktorý server diskusných skupín má používať Pan?" #~ msgid "Short name for Pan to show, e.g. \"mynewsserver\"" #~ msgstr "Krátky názov, ktorý má zobrazovať Pan, napr. \"môjserver\"" #~ msgid "Short _name for Pan to show:" #~ msgstr "Krátky _názov, ktorý má zobrazovať Pan:" #~ msgid "Login" #~ msgstr "Prihlasovanie" #~ msgid "Server requires authori_zation" #~ msgstr "Server vyžaduje autori_záciu" #~ msgid "Pan Setup Wizard" #~ msgstr "Sprievodca nastavením programu Pan" #~ msgid "Thank you for trying Pan!" #~ msgstr "Ďakujeme, že ste vyskúšali Pan!" #~ msgid "" #~ "Thank you for trying Pan!\n" #~ " \n" #~ "If you are new to Usenet,\n" #~ "%s\n" #~ "is a starting point to see what Usenet is,\n" #~ "where to find a free news server,\n" #~ "and how to use Pan.\n" #~ " \n" #~ "Since this is your first time running Pan,\n" #~ "we'll need to gather some information.\n" #~ msgstr "" #~ "Ďakujeme za vyskúšanie programu Pan!\n" #~ " \n" #~ "Ak ste nováčikom v Usenete, na adrese\n" #~ "%s\n" #~ "si možete pozrieť čo Usenet je, kde nájsť\n" #~ "voľne dostupný server diskusných skupín\n" #~ "a ako používať program Pan.\n" #~ " \n" #~ "Pokiaľ je toto vaše prvé spustenie programu Pan,\n" #~ "budeme potrebovať získať nejaké informácie.\n" #~ msgid "About You" #~ msgstr "O vás" #~ msgid "Ready!" #~ msgstr "Pripravený!" #~ msgid "" #~ "You have successfully entered all of\n" #~ "the information required to set up Pan.\n" #~ "\n" #~ "To save these settings, click Save." #~ msgstr "" #~ "Úspešne ste zadali všetky informácie\n" #~ "potrebné na nastavenie programu Pan.\n" #~ "\n" #~ "Aby sa tieto nastavenia uložili stlačte Uložiť." #~ msgid "License" #~ msgstr "Licencia" #~ msgid "Authors" #~ msgstr "Autori" #~ msgid "Thanks to" #~ msgstr "Poďakovanie pre" #~ msgid " (No conditions -- no articles will match)" #~ msgstr " (Bez podmienok -- žiadne príspevky nevyhovejú)" #~ msgid " (No conditions -- all articles will match)" #~ msgstr " (Bez podmienok -- všetky príspevky vyhovejú)" #~ msgid "Pan: Edit Filter" #~ msgstr "Pan: Upraviť filter" #~ msgid "Filter name: " #~ msgstr "Názov filtra: " #~ msgid "Show in Filter Menu" #~ msgstr "Zobraziť v menu Filter" #~ msgid "Move the selected line up one line" #~ msgstr "Presunúť vybraný riadok o jeden vyššie" #~ msgid "Move the selected line down one line" #~ msgstr "Presunúť vybraný riadok o jeden nižšie" #~ msgid "Invert" #~ msgstr "Invertovať" #~ msgid "All Of" #~ msgstr "Všetko z" #~ msgid "Any Of" #~ msgstr "Niečo z" #~ msgid "Delete the selected line" #~ msgstr "Vymazať vybraný riadok" #~ msgid "Add New Line to the Filter" #~ msgstr "Pridať nový riadok do filtra" #~ msgid "New Filter Line" #~ msgstr "Nový riadok filtra" #~ msgid "does not start with" #~ msgstr "nezačína na" #~ msgid "does not match regular expression" #~ msgstr "nevyhovuje regulárnemu výrazu" #~ msgid "Article h_as" #~ msgstr "Príspevok m_al" #~ msgid "Incomplete Attachments" #~ msgstr "Neúplné prílohy" #~ msgid "No Attachments" #~ msgstr "Bez príloh" #~ msgid "Article _is" #~ msgstr "Príspevok _je" #~ msgid "New" #~ msgstr "Nový" #~ msgid "Unread" #~ msgstr "Neprečítané" #~ msgid "Read" #~ msgstr "Čítať" #~ msgid "Cached" #~ msgstr "Vo vyrovnávacej pamäti" #~ msgid "Posted by Me" #~ msgstr "Poslaný odo mňa" #~ msgid "Article has at _least N lines:" #~ msgstr "Príspevok má a_spoň N riadkov:" #~ msgid "Article _score is at least" #~ msgstr "Obodovanie prí_spevku je aspoň" #~ msgid "Watched" #~ msgstr "Sledované" #~ msgid "High" #~ msgstr "Vysoké" #~ msgid "Medium" #~ msgstr "Stredné" #~ msgid "Zero" #~ msgstr "Nula" #~ msgid "Low" #~ msgstr "Nízke" #~ msgid "Ignored" #~ msgstr "Ignorované" #~ msgid "" #~ "This filter is still used by the following rules:\n" #~ "%s\n" #~ "Please remove this dependency first." #~ msgstr "" #~ "Tento filter je ešte použitý v týchto pravidlách:\n" #~ "%s\n" #~ "Najskôr, prosím, odstráňte tútu závislosť." #~ msgid "Pan: Filters" #~ msgstr "Pan: Filtre" #~ msgid "Filters" #~ msgstr "Filtre" #~ msgid "Add a new filter" #~ msgstr "Pridať nový filter" #~ msgid "Edit the selected filter" #~ msgstr "Upraviť vybraný filter" #~ msgid "Remove the selected filter" #~ msgstr "Odstrániť vybraný filter" #~ msgid "NONE OF:" #~ msgstr "NIČ Z:" #~ msgid "ALL OF:" #~ msgstr "VŠETKY Z:" #~ msgid "ANY OF:" #~ msgstr "NEJAKÉ Z:" #~ msgid "Article has complete attachments" #~ msgstr "Príspevok má úplné prílohy" #~ msgid "Article does not have incomplete attachments" #~ msgstr "Príspevok nemá neúplné prílohy" #~ msgid "Article has incomplete attachments" #~ msgstr "Príspevok má neúplné prílohy" #~ msgid "Article has complete or incomplete attachments" #~ msgstr "Príspevok má úplné alebo neúplné prílohy" #~ msgid "Article is %d or more bytes long" #~ msgstr "Príspevok má %d alebo viac bajtov" #~ msgid "Article is crossposted to at least %d groups" #~ msgstr "Príspevok je poslaný do viac ako %d skupín" #~ msgid "Article was posted in the last %d days" #~ msgstr "Príspevok bol poslaný za posledných %d dní" #~ msgid "Article is %d or more lines long" #~ msgstr "Príspevok má %d alebo viac riadkov" #~ msgid "Article is unread or old" #~ msgstr "Príspevok je neprečítaný alebo starý" #~ msgid "Article is new" #~ msgstr "Príspevok je nový" #~ msgid "Article is new or read" #~ msgstr "Príspevok je nový alebo prečítaný" #~ msgid "Article is new or unread" #~ msgstr "Príspevok je nový alebo neprečítaný" #~ msgid "Xref" #~ msgstr "krížový odkaz" #~ msgid "watched" #~ msgstr "sledované" #~ msgid "high" #~ msgstr "vysoké" #~ msgid "medium" #~ msgstr "stredné" #~ msgid "zero" #~ msgstr "nula" #~ msgid "low" #~ msgstr "nízke" #~ msgid "ignored" #~ msgstr "ignorované" #~ msgid "Score filter will match anything" #~ msgstr "Filter bodovania bude vyhovovať pre všetko" #~ msgid "Score filter will match nothing" #~ msgstr "Filter bodovania bude vyhovovať pre nič" #~ msgid "Article score one of: " #~ msgstr "Bodovanie príspevku je jedno z: " #~ msgid "Wrote filters to \"%s\"" #~ msgstr "Filtre zapísané do \"%s\"" #~ msgid "Can't use regular expression \"%s\" from file \"%s\", line %d: %s" #~ msgstr "" #~ "Nemôžem použiť regulárny výraz \"%s\" zo súboru \"%s\", riadok %d: %s" #~ msgid "expired old score" #~ msgstr "staré bodovanie stratilo platnosť" #~ msgid "skipping unsupported criteria" #~ msgstr "preskakujem nepodporované kritériá" #~ msgid "unexpected line." #~ msgstr "neočakávaný riadok." #~ msgid "Error reading file: " #~ msgstr "Chyba pri čítaní súboru: " #~ msgid "skipping score because it has no criteria" #~ msgstr "preskakujem bodovanie, pretože nemá kritérium" #~ msgid "" #~ "Loaded %d score entries in %d sections in %.1f seconds (%.0f entries/sec)" #~ msgstr "" #~ "Načítaných %d bodovacích položiek v %d sekciách za %.1f sekúnd (%.0f " #~ "položiek/s)" #~ msgid "Error score to file \"%s\": %s" #~ msgstr "Chyba bodovania do súboru \"%s\": %s" #~ msgid "Scorefile entry removed -- old scorefile \"%s\" backed up as \"%s\"" #~ msgstr "" #~ "Položka bodovacieho súboru odstránená -- starý bodovací súbor \"%s\" " #~ "zálohovaný ako \"%s\"" #~ msgid "Please don't begin folders with \"pan.\"; it confuses me." #~ msgstr "Prosím nezačínajte názvy priečinkov s \"pan.\". Mätie ma to." #~ msgid "Create New Folder" #~ msgstr "Vytvoriť nový priečinok" #~ msgid "New Folder Name:" #~ msgstr "Názov nového priečinka:" #~ msgid "/Get New Headers and _Bodies" #~ msgstr "/Stiahnuť nové hlavičky a _telá" #~ msgid "/More Download _Options..." #~ msgstr "/Viac v_olieb pre sťahovanie..." #~ msgid "/Refresh Article _Counts" #~ msgstr "/Obnoviť počty príspevko_v" #~ msgid "/Group _Properties..." #~ msgstr "/V_lastnosti skupiny..." #~ msgid " (Moderated)" #~ msgstr " (Moderovaná)" #~ msgid " (Read-Only)" #~ msgstr " (len na čítanie)" #~ msgid "Subscribed" #~ msgstr "Prihlásené" #~ msgid "All Groups" #~ msgstr "Všetky skupiny" #~ msgid "" #~ "We don't have a list of groups for \"%*.*s\".\n" #~ "Shall we download one?" #~ msgstr "" #~ "Nemáme zoznam skupín pre \"%*.*s\".\n" #~ "Mám ho stiahnuť?" #~ msgid "Total" #~ msgstr "Celkom" #~ msgid "Description" #~ msgstr "Popis" #~ msgid "F_ind:" #~ msgstr "Hľa_dať:" #~ msgid "" #~ "Type in a group search string and press ENTER. Wildcards are allowed." #~ msgstr "" #~ "Zadajte reťazec, ktorý chcete vyhľadať v skupinách a stlačte ENTER. " #~ "Môžete použiť žolíky (? a *)." #~ msgid "We now have %d connections to news servers" #~ msgstr "Teraz máme %d spojení so servermi diskusných skupín" #~ msgid "The Task Manager is Empty" #~ msgstr "Správca úloh je prázdny" #~ msgid "Post" #~ msgstr "Poslať" #~ msgid "Get" #~ msgstr "Stiahnuť" #~ msgid "Mine" #~ msgstr "Moje" #~ msgid "Net" #~ msgstr "Sieť" #~ msgid "/_File/_Save Article As..." #~ msgstr "/_Súbor/_Uložiť príspevok ako..." #~ msgid "/_File/Save Article A_ttachments" #~ msgstr "/_Súbor/Uložiť p_rílohy príspevku" #~ msgid "/_File/Manual _Decode..." #~ msgstr "/_Súbor/Manuálne _dekódovanie..." #~ msgid "/_File/_Print Article..." #~ msgstr "/_Súbor/Vytlačiť _príspevok..." #~ msgid "/_File/---" #~ msgstr "/_Súbor/---" #~ msgid "/_File/_Cancel Last Task" #~ msgstr "/_Súbor/_Zrušiť poslednú úlohu" #~ msgid "/_File/Log _Viewer..." #~ msgstr "/_Súbor/Preh_liadač záznamov..." #~ msgid "/_File/_New Folder..." #~ msgstr "/_Súbor/_Nový priečinok..." #~ msgid "/_File/Delete _Folder..." #~ msgstr "/_Súbor/Vymazať priečino_k..." #~ msgid "/_File/_Edit Article in Folder" #~ msgstr "/Súbor/Upraviť prísp_evok v priečinku" #~ msgid "/_File/E_xit" #~ msgstr "/_Súbor/_Koniec" #~ msgid "/_Edit/Select all" #~ msgstr "/_Upraviť/Vybrať všetky" #~ msgid "/_Edit/Deselect all" #~ msgstr "/_Upraviť/Odznačiť všetky" #~ msgid "/_Edit/---" #~ msgstr "/_Upraviť/---" #~ msgid "/_Edit/Select all _Groups" #~ msgstr "/_Upraviť/Vybrať všetky _skupiny" #~ msgid "/_Edit/Add S_ubscribed to Selection" #~ msgstr "/_Upraviť/Pridať prihlásené do výber_u" #~ msgid "/_Edit/Deselect all G_roups" #~ msgstr "/_Upraviť/O_dznačiť všetky skupiny" #~ msgid "/_Edit/Add S_et to Selection" #~ msgstr "/_Upraviť/Pridať _množinu do výberu" #~ msgid "/_Edit/_Find..." #~ msgstr "/_Upraviť/Ná_jsť..." #~ msgid "/_Edit/Find _Next" #~ msgstr "/_Upraviť/_Nájsť ďalšie" #~ msgid "/_View/---" #~ msgstr "/_Zobraziť/---" #~ msgid "/_View/Thr_ead Header Pane" #~ msgstr "/_Zobraziť/Pan_el hlavičiek vláken" #~ msgid "/_View/_Rot13 Selected Text" #~ msgstr "/_Upraviť/_Rot13 označený text" #~ msgid "/_View/E_xpand Selected Threads" #~ msgstr "/_Zobraziť/Ro_zbaliť označené vlákna" #~ msgid "/_View/C_ollapse Selected Threads" #~ msgstr "/_Zobraziť/Zbaliť _označené vlákna" #~ msgid "/Filte_r/Custom _Filters..." #~ msgstr "/Filte_r/_Vlastné filtre..." #~ msgid "/Filte_r/_Rules..." #~ msgstr "/Filte_r/P_ravidlá..." #~ msgid "/Filte_r/_Edit Scorefile..." #~ msgstr "/Filte_r/_Upraviť súbor s bodovaním..." #~ msgid "/Filte_r/---" #~ msgstr "/Filte_r/---" #~ msgid "/Filte_r/Match Only _Cached Articles" #~ msgstr "/Filte_r/Vyhovujú len príspevky uložené vo _vyrovnávacej pamäti" #~ msgid "/Filte_r/Match Only _Text Articles" #~ msgstr "/Filte_r/Vyhovujú len _textové príspevky" #~ msgid "/Filte_r/Match Only _Binary Attachment Articles" #~ msgstr "/Filte_r/Vyhovujú len príspevky s _binárnymi prílohami" #~ msgid "/Filte_r/Match Only _My Articles" #~ msgstr "/Filte_r/Vyhovujú len _moje príspevky" #~ msgid "/Filte_r/Match _New Articles" #~ msgstr "/Filte_r/Vyhovujú _nové príspevky" #~ msgid "/Filte_r/Match _Unread Articles" #~ msgstr "/Filte_r/Vyhovujú _neprečítané príspevky" #~ msgid "/_Go/Read More" #~ msgstr "/_Prejsť na/Prečítať viac" #~ msgid "/_Go/---" #~ msgstr "/_Prejsť na/---" #~ msgid "/_Go/Next _New Article" #~ msgstr "/_Prejsť na/Nasledujúci _nový príspevok" #~ msgid "/_Go/Previous Article _Read" #~ msgstr "/_Prejsť na/Prečítať pre_dchádzajúci príspevok" #~ msgid "/_Servers" #~ msgstr "/Se_rvery" #~ msgid "/_Servers/News _Servers..." #~ msgstr "/Se_rvery/_Servery diskusných skupín..." #~ msgid "/_Servers/---" #~ msgstr "/Se_rvery/---" #~ msgid "/_Servers/Get List of Groups" #~ msgstr "/Se_rvery/Získ_ať zoznam skupín" #~ msgid "/_Newsgroups/Mark Group _Read" #~ msgstr "/_Diskusné skupiny/Označiť skupinu ako p_rečítanú" #~ msgid "/_Newsgroups/_Delete Group's Articles" #~ msgstr "/_Diskusné skupiny/_Vymazať príspevky zo skupiny" #~ msgid "/_Newsgroups/---" #~ msgstr "/_Diskusné skupiny/---" #~ msgid "/_Newsgroups/Get New _Headers" #~ msgstr "/_Diskusné skupiny/Získať nové _hlavičky" #~ msgid "/_Newsgroups/Get New Headers and _Bodies" #~ msgstr "/_Diskusné skupiny/Získať _nové hlavičky a telá" #~ msgid "/_Newsgroups/More Download _Options..." #~ msgstr "/_Diskusné skupiny/Viac v_olieb sťahovania..." #~ msgid "/_Newsgroups/Refresh Article _Counts" #~ msgstr "/_Diskusné skupiny/Obnoviť počty príspevko_v" #~ msgid "/_Newsgroups/Get New Headers in Subscribed _Groups" #~ msgstr "/_Diskusné skupiny/Stiahnuť nové hlavičky v prihlásených _skupinách" #~ msgid "/_Newsgroups/_Subscribe" #~ msgstr "/_Diskusné skupiny/Prihlá_siť" #~ msgid "/_Newsgroups/_Unsubscribe" #~ msgstr "/_Diskusné skupiny/_Odhlásiť" #~ msgid "/_Newsgroups/Group _Properties..." #~ msgstr "/_Diskusné skupiny/_Vlastnosti skupiny..." #~ msgid "/_Newsgroups/Dele_te Group" #~ msgstr "/_Diskusné skupiny/_Vymazať skupinu" #~ msgid "/_Articles/Mark _Read" #~ msgstr "/Príspe_vky/Označiť ako p_rečítané" #~ msgid "/_Articles/Mark _Unread" #~ msgstr "/Príspe_vky/Označiť ako _neprečítané" #~ msgid "/_Articles/---" #~ msgstr "/Príspe_vky/---" #~ msgid "/_Articles/D_ownload Flagged" #~ msgstr "/Príspe_vky/Stiahnuť _označené" #~ msgid "/_Articles/_Flag" #~ msgstr "/Príspe_vky/_Označiť" #~ msgid "/_Articles/U_nflag" #~ msgstr "/Príspe_vky/Odz_načiť" #~ msgid "/_Articles/Down_load" #~ msgstr "/Príspe_vky/St_iahnuť" #~ msgid "/_Articles/_Watch Thread" #~ msgstr "/Príspe_vky/_Sledovať vlákno" #~ msgid "/_Articles/_Ignore Thread" #~ msgstr "/Príspe_vky/_Ignorovať vlákno" #~ msgid "/_Articles/_View Article's Scores" #~ msgstr "/Príspe_vky/_Zobraziť bodovania príspevkov" #~ msgid "/_Articles/Cancel..." #~ msgstr "/Príspe_vky/Zrušiť..." #~ msgid "/_Articles/Supersed_e..." #~ msgstr "/Príspe_vky/Na_hradiť..." #~ msgid "/_Articles/_Delete" #~ msgstr "/Príspe_vky/_Vymazať" #~ msgid "/_Post" #~ msgstr "/P_oslať" #~ msgid "/_Post/_Post to Newsgroup..." #~ msgstr "/P_oslať/_Poslať do diskusnej skupiny..." #~ msgid "/_Post/_Reply by Email..." #~ msgstr "/P_oslať/Odpovedať elekt_ronickou poštou..." #~ msgid "/_Post/For_ward by Email..." #~ msgstr "/P_oslať/Poslať ďale_j príspevok elektronickou poštou..." #~ msgid "/_Post/---" #~ msgstr "/P_oslať/---" #~ msgid "/_Post/Send Pending _Messages" #~ msgstr "/P_oslať/Poslať ulože_né správy" #~ msgid "/_Help" #~ msgstr "/_Pomocník" #~ msgid "/_Help/---" #~ msgstr "/_Pomocník/---" #~ msgid "%s (%u) [%d missing pieces]" #~ msgstr "%s (%u) [%d chýbajúcich kúskov]" #~ msgid "%s [%d missing pieces]" #~ msgstr "%s [%d chýbajúcich kúskov]" #~ msgid "The default charset set for articles posted with this profile" #~ msgstr "Predvolená znaková sada pre príspevky odoslané s týmto profilom" #~ msgid "Pan: Edit Profile" #~ msgstr "Pan: Upraviť profil" #~ msgid "_User Profile" #~ msgstr "_Profil používateľa" #~ msgid "Cus_tom Headers" #~ msgstr "_Vlastné hlavičky" #~ msgid "You must specify a username or disable authorization." #~ msgstr "" #~ "Musíte zadať prihlasovacie meno alebo deaktivovať overenie totožnosti." #~ msgid "" #~ "Your real name contained double quotes.\n" #~ "Converting into single quotes." #~ msgstr "" #~ "Vaše meno obsahuje úvodzovky.\n" #~ "Konvertujem ich na apostrofy." #~ msgid "You need at least one profile" #~ msgstr "Potrebujete aspoň jeden profil" #~ msgid "Use the selected profile to create a new profile" #~ msgstr "Použiť vybraný profil na vytvorenie nového profilu" #~ msgid "Wrote profiles to \"%s\"" #~ msgstr "Profily zapísané do \"%s\"" #~ msgid "/_File/_Save..." #~ msgstr "/_Súbor/_Uložiť..." #~ msgid "/_File/Clea_r" #~ msgstr "/_Súbor/Vyčis_tiť" #~ msgid "/_File/_Close" #~ msgstr "/_Súbor/_Zatvoriť" #~ msgid "Pan: Status Log" #~ msgstr "Pan: Záznamy stavu" #~ msgid "Clear the log window" #~ msgstr "Vyčistiť okno záznamov" #~ msgid "Time" #~ msgstr "Čas" #~ msgid "Log Entry" #~ msgstr "Položka záznamov" #~ msgid "Post anyway, despite these problems?" #~ msgstr "Poslať aj napriek týmto problémom?" #~ msgid "Post anyway, despite this problem?" #~ msgstr "Poslať aj napriek tomuto problému?" #~ msgid "/_File/_Save Changes" #~ msgstr "/_Súbor/_Uložiť zmeny" #~ msgid "/_File/Save _As..." #~ msgstr "/_Súbor/Uložiť _ako..." #~ msgid "/_Edit/Cu_t" #~ msgstr "/_Upraviť/V_ystrihnúť" #~ msgid "/_Edit/_Copy" #~ msgstr "/_Upraviť/_Kopírovať" #~ msgid "/_Edit/_Paste" #~ msgstr "/_Upraviť/_Vlepiť" #~ msgid "/_Edit/_Rot13 Selected Text" #~ msgstr "/_Upraviť/_Rot13 označený text" #~ msgid "/_Edit/Edit with E_xternal Editor" #~ msgstr "/_Upraviť/Upraviť e_xterným editorom" #~ msgid "/_File/Send Now" #~ msgstr "/_Súbor/Poslať teraz" #~ msgid "/_File/Send Later" #~ msgstr "/_Súbor/Poslať neskôr" #~ msgid "Send Later" #~ msgstr "Poslať neskôr" #~ msgid "Rewrap" #~ msgstr "Znovu zalomiť" #~ msgid "Turn line wrap on/off" #~ msgstr "Zapnúť/vypnúť zalamovanie riadkov" #~ msgid "Edit with an External Editor" #~ msgstr "Upraviť externým editorom" #~ msgid "Mime (single-part posts only)" #~ msgstr "Mime (len jednodielne príspevky)" #~ msgid " (%lu lines in 1 article)" #~ msgstr "(%lu riadkov v 1 príspevku)" #~ msgid " (%lu lines in %lu articles)" #~ msgstr "(%lu riadkov v %lu príspevkoch)" #~ msgid "UUEncoded (universally accepted)" #~ msgstr "UU kódované (všeobecne používané)" #~ msgid "yEnc (30 percent smaller than UUEnc but less universal)" #~ msgstr "yEnc (o 30 percent menšie ako UU kódovanie, ale menej používané)" #~ msgid "Select the file to attach." #~ msgstr "Vybrať súbor na pripojenie." #~ msgid "Files to Attach" #~ msgstr "Súbory na pripojenie" #~ msgid "Kilobytes" #~ msgstr "Kilobajty" #~ msgid "Add a File to the Attachment List" #~ msgstr "Pridať súbor do zoznamu príloh" #~ msgid "Remove a File from the Attachment List" #~ msgstr "Odstrániť súbor zo zoznamu príloh" #~ msgid "Lines per article:" #~ msgstr "Riadkov v príspevku:" #~ msgid "Estimated Article Size" #~ msgstr "Odhadovaná veľkosť príspevku" #~ msgid "Organization" #~ msgstr "Organizácia" #~ msgid "The organization you're associated with." #~ msgstr "Organizácia, ktorej ste členom." #~ msgid "Charset" #~ msgstr "Znaková sada" #~ msgid "" #~ "Could not convert \"%s\" to UTF-8. Article may not display correctly." #~ msgstr "" #~ "Nepodarilo sa konvertovať \"%s\" na UTF-8. Príspevok sa nemusí zobraziť " #~ "správne." #~ msgid "\"Followup-To: poster\": sending email to author." #~ msgstr "" #~ "\"Prispieť-do: prispievateľ\": posielam elektronickú poštu autorovi." #~ msgid "\"Followup-To:\" contains an email address: sending email to author." #~ msgstr "" #~ "\"Prispieť-do:\": obsahuje adresu elektronickej pošty: posielam " #~ "elektronickú poštu autorovi." #~ msgid "New Message" #~ msgstr "Nová správa" #~ msgid "" #~ "ERROR: line %d, column %d uses a character not specified in charset \"%s" #~ "\" -- possibly change your charset in \"More Headers\" to \"%s\" instead?" #~ msgstr "" #~ "CHYBA: riadok %d, stĺpec %d používa znak, ktorý nie je uvedený v znakovej " #~ "sade \"%s\" -- možem zmeniť vašu znakovú sadu vo \"Viac hlavičiek\" na " #~ "\"%s\" namiesto nej?" #~ msgid "Save message to file" #~ msgstr "Uložiť správu do súboru" #~ msgid "The command line was: %s" #~ msgstr "Príkazový riadok bol: %s" #~ msgid "Select Color" #~ msgstr "Vybrať farbu" #~ msgid "_Browse..." #~ msgstr "_Prezerať..." #~ msgid "Font Family" #~ msgstr "Rodina písma" #~ msgid " --resume Resume tasks from last session without prompting" #~ msgstr " --resume Obnoviť úlohy z posledného sedenia bez pýtania" #~ msgid " --version Prints Pan's version number" #~ msgstr " --version Vypísať číslo verzie programu Pan" #~ msgid " --help Prints this message and exits" #~ msgstr " --help Vypísať túto správu a skončiť" #~ msgid "" #~ " --debug Turns on the most commonly-used options for a bug " #~ "report" #~ msgstr " --debug Zapnúť často používané voľby pre hlásenie chýb" #~ msgid "" #~ " --mute Debugging tool to send new posts to console, not the " #~ "server" #~ msgstr "" #~ " --mute Ladiaci nástroj na posielanie nových príspevkov na " #~ "konzolu a nie na server" #~ msgid " --debug-cache Print debugging messages for the article cache" #~ msgstr "" #~ " --debug-cache Vypísať ladiace správy pre vyrovnávaciu pamäť " #~ "príspevkov" #~ msgid "" #~ " --debug-sockets Print debugging messages when talking to the news " #~ "server" #~ msgstr "" #~ " --debug-sockets Vypísať ladiace správy pri komunikácii so serverom " #~ "diskusných skupín" #~ msgid "" #~ " --debug-queue Print debugging messages related to managing tasks" #~ msgstr " --debug-queue Vypísať ladiace správy súvisiace so správou úloh" #~ msgid "" #~ " --debug-decode Print debugging messages related to decoding " #~ "attachments" #~ msgstr "" #~ " --debug-decode Vypísať ladiace správy súvisiace s dekódovaním príloh" #~ msgid " --debug-newsrc Print debugging messages related to .newsrc files" #~ msgstr "" #~ " --debug-newsrc Vypísať ladiace správy súvisiace so súbormi .newsrc" #~ msgid "" #~ " --debug-gnksa Print debugging messages related to gnksa correctness" #~ msgstr "" #~ " --debug-gnksa Vypísať ladiace správy súvisiace so sprívnosťou gnksa" #~ msgid "" #~ " --debug-trace Print debugging messages when entering/leaving " #~ "functions" #~ msgstr "" #~ " --debug-trace Vypísať ladiace správy pri volaní funkcií a návrate z " #~ "funkcií" #~ msgid "" #~ " --debug-lock Print debugging messages related to threaded gui locks" #~ msgstr "" #~ " --debug-lock Vypísať ladiace správy súvisiace so zámkami vláken gui" #~ msgid "" #~ " --debug-object Print debugging messages related to refcounted objects" #~ msgstr "" #~ " --debug-object Vypísať ladiace správy súvisiace s počtami odkazov na " #~ "objekty" #~ msgid "Error writing to socket." #~ msgstr "Chyba pri zápise do zásuvky." #~ msgid "Spellchecking disabled: gtkspell_init() failed with status %d" #~ msgstr "" #~ "Kontrola pravopisu neaktívna: gtkspell_init() zlyhalo s výsledkom %d" #~ msgid "Restored %d tasks from last session" #~ msgstr "Obnovených %d úloh z posledného sedenia" #~ msgid "" #~ "Some tasks were still queued the last time Pan exited. Do you want to " #~ "resume those tasks?" #~ msgstr "" #~ "Nejaké úlohy boli uložené v rade pri poslednom ukončení programu Pan. " #~ "Chcete tie úlohy obnoviť?" #~ msgid "_Resume" #~ msgstr "_Obnoviť" #~ msgid "" #~ "%a - abbreviated weekday name\n" #~ "%A - full weekday name\n" #~ "%b - abbreviated month name\n" #~ "%B - full month name\n" #~ "%c - local date & time\n" #~ "%d - day of the month\n" #~ "%H - hour (24-hour clock)\n" #~ "%I - hour (12-hour clock)\n" #~ "%j - day of the year (001-366)\n" #~ "%m - month (01-12)\n" #~ "%M - minute (00-59)\n" #~ "%p - local equivalent of AM/PM\n" #~ "%S - second (00-61)\n" #~ "%x - local date\n" #~ "%X - local time\n" #~ "%y - two-digit year\n" #~ "%Y - four-digit year\n" #~ "%% - %" #~ msgstr "" #~ "%a - skrátený názov dňa v týždni\n" #~ "%A - celý názov dňa v týždni\n" #~ "%b - skrátený názov mesiaca\n" #~ "%B - celý názov mesiaca\n" #~ "%c - miestny dátum a čas\n" #~ "%d - deň v mesiaci\n" #~ "%H - hodina (24-hodinvý čas)\n" #~ "%I - hodina (12-hodinový čas)\n" #~ "%j - deň v roku (001-366)\n" #~ "%m - mesiac (01-12)\n" #~ "%M - minúta (00-59)\n" #~ "%p - miestny ekvivalent skratiek AM/PM\n" #~ "%S - sekunda (00-61)\n" #~ "%x - miestny dátum\n" #~ "%X - miestny čas\n" #~ "%y - dvojciferný rok\n" #~ "%Y - štvorciferný rok\n" #~ "%% - %" #~ msgid "Color the \"sub_ject\" column" #~ msgstr "Zafarbiť stĺpec s predmetom" #~ msgid "Articles with a Score of 9999 or higher:" #~ msgstr "Príspevky s bodovaním 9999 alebo viac:" #~ msgid "Articles with a Score between 5000 and 9998:" #~ msgstr "Príspevky s bodovaním medzi 5000 a 9998:" #~ msgid "Articles with a Score between 1 and 4999:" #~ msgstr "Príspevky s bodovaním medzi 1 a 4999:" #~ msgid "Articles with a Score between -9998 and -1:" #~ msgstr "Príspevky s bodovaním medzi -9998 a -1:" #~ msgid "Articles with a Score of -9999 or lower:" #~ msgstr "Príspevky s bodovaním -9999 alebo menej:" #~ msgid "_1:" #~ msgstr "_1:" #~ msgid "_2:" #~ msgstr "_2:" #~ msgid "_3:" #~ msgstr "3_:" #~ msgid "Pane Order" #~ msgstr "Poradie panelov" #~ msgid "Action State" #~ msgstr "Stav akcie" #~ msgid "Article State" #~ msgstr "Stav príspevku" #~ msgid "Column Layout" #~ msgstr "Usporiadanie stĺpcov" #~ msgid "When a Followup subject header changes, show as _new thread" #~ msgstr "Keď sa zmení predmet v odpovedi, zobraziť ako _nové vlákno" #~ msgid "E_xpand all threads by default" #~ msgstr "Štandardne _rozbaliť všetky vlákna" #~ msgid "Date Forma_t:" #~ msgstr "Formát _dátumu:" #~ msgid "Show \"%s\" header" #~ msgstr "Zobraziť hlavičku \"%s\"" #~ msgid "Newsreader" #~ msgstr "Klient diskusných skupín" #~ msgid "Characters denoting _quoted text:" #~ msgstr "Znaky, ktoré označujú _citovaný text:" #~ msgid "Download new headers from s_ubscribed groups when starting Pan" #~ msgstr "" #~ "Stiahnuť nové hlavičky z _prihlásených skupín pri štarte programu Pan" #~ msgid "" #~ "Download new headers and bod_ies from subscribed groups when starting Pan" #~ msgstr "" #~ "Stiahnuť nové hlavičky a _telá z prihlásených skupín pri štarte programu " #~ "Pan" #~ msgid "Download Directory" #~ msgstr "Priečinok pre sťahovanie" #~ msgid "Automatically remove _failed tasks from the task manager" #~ msgstr "Automaticky odstrániť _zlyhané úlohy zo správcu úloh" #~ msgid "_Erase cache when exiting Pan" #~ msgstr "V_yčistiť vyrovnávaciu pamäť pri ukončení programu Pan" #~ msgid "Ma_ximum Cache Size (Megs):" #~ msgstr "Ma_ximálna veľkosť vyrovnávacej pamäte (v megabajtoch):" #~ msgid "_Editor (%t is filename):" #~ msgstr "_Editor (%t je názov súboru):" #~ msgid "" #~ "Scorefile _Editor:\n" #~ "(%t is filename, %n is line number)" #~ msgstr "" #~ "_Editor bodovacieho súboru:\n" #~ "(%t je názov súboru, %n je číslo riadku)" #~ msgid "Scorefile" #~ msgstr "Bodovací súbor" #~ msgid "Score_file" #~ msgstr "Bodovací _súbor" #~ msgid "Sending Mail" #~ msgstr "Posielam poštu" #~ msgid "Mail Server Add_ress:" #~ msgstr "Ad_resa poštového servera:" #~ msgid "Mail Server Por_t:" #~ msgstr "Por_t poštového servera:" #~ msgid "Hea_der Pane" #~ msgstr "Panel _hlavičiek" #~ msgid "A_pps & Mail" #~ msgstr "A_plikácie a pošta" #~ msgid "You haven't loaded an article to print." #~ msgstr "Nemáte načítaný príspevok určený na tlač." #~ msgid "" #~ "%s\n" #~ "\n" #~ "Matches: %u\n" #~ "Group: %s\n" #~ "Rule: %s" #~ msgstr "" #~ "%s\n" #~ "\n" #~ "Vyhovuje: %u\n" #~ "Skupina: %s\n" #~ "Pravidlo: %s" #~ msgid "Mark as" #~ msgstr "Označiť ako" #~ msgid "_Flag body for download" #~ msgstr "_Označiť telo na stiahnutie" #~ msgid "_Retrieve Body" #~ msgstr "_Získať telo" #~ msgid "_Watch thread (highlights the thread)" #~ msgstr "_Sledovať vlákno (zvýrazní vlákno)" #~ msgid "_Ignore thread (hides the thread by default)" #~ msgstr "_Ignorovať vlákno (štandardne skryje vlákno)" #~ msgid "Rule applies to all newsgroups" #~ msgstr "Pravidlo sa použije na všetky diskusné skupiny" #~ msgid "Wildcard group specification:" #~ msgstr "Určenie skupín pomocou žolíkov (? a *):" #~ msgid "(e.g., *anime*)" #~ msgstr "(napr. *skus*)" #~ msgid "Rule applies to specific newsgroups:" #~ msgstr "Pravidlo sa použije na vybrané diskusné skupiny:" #~ msgid "Rule applies to:" #~ msgstr "Pravidlo použité na:" #~ msgid "Rule Name:" #~ msgstr "Názov pravidla:" #~ msgid "Apply to Incoming" #~ msgstr "Použiť na prijaté" #~ msgid "" #~ "If enabled, this rule will be applied to headers when they are downloaded." #~ msgstr "" #~ "Toto pravidlo, ak je povolené, sa použije na hlavičky pri ich sťahovaní." #~ msgid "New Rule" #~ msgstr "Nové pravidlo" #~ msgid "Delete Articles by Bozos" #~ msgstr "Vymazať príspevky od šašov" #~ msgid "Applying rule to selected groups" #~ msgstr "Aplikujem pravidlo na vybrané skupiny" #~ msgid "Applying rule \"%s\" to group \"%s\"" #~ msgstr "Aplikujem pravidlo \"%s\" na skupinu \"%s\"" #~ msgid "Rules" #~ msgstr "Pravidlá" #~ msgid "Hit Ratio" #~ msgstr "Pomer zásahov" #~ msgid "" #~ "Apply to\n" #~ "Selected\n" #~ "Groups" #~ msgstr "" #~ "Použiť na\n" #~ "vybrané\n" #~ "skupiny" #~ msgid "" #~ "Apply to\n" #~ "Subscribed\n" #~ "Groups" #~ msgstr "" #~ "Použiť na\n" #~ "prihlásené\n" #~ "skupiny" #~ msgid "Wrote rules to \"%s\"" #~ msgstr "Pravidlá zapísané do \"%s\"" #~ msgid "" #~ "Can't find filter \"%s\" needed by rule \"%s\", so no articles match." #~ msgstr "" #~ "Nemôžem nájsť filter \"%s\" potrebný pre pravidlo \"%s\", a preto žiadne " #~ "príspevky nevyhovujú." #~ msgid "%u articles match rule %s" #~ msgstr "%u príspevkov vyhovuje pravidlu %s" #~ msgid "Pan: Manual Decode" #~ msgstr "Pan: Manuálne dekódovanie" #~ msgid "Save Files in Directory" #~ msgstr "Uložiť súbory do priečinka" #~ msgid "_Directory:" #~ msgstr "_Priečinok:" #~ msgid "Add to the _top of the Task Manager's List" #~ msgstr "Pridať na _začiatok zoznamu správcu úloh" #~ msgid "Criterion \"%s\" is selected, but empty." #~ msgstr "Kritérium \"%s\" je zvolené, ale je prázdne." #~ msgid "No criteria are selected." #~ msgstr "Neboli zvolené žiadne kritériá." #~ msgid "Pan: Add to Scorefile" #~ msgstr "Pan: Pridať do bodovacieho súboru" #~ msgid "Su_bject:" #~ msgstr "_Predmet:" #~ msgid "A_uthor:" #~ msgstr "A_utor:" #~ msgid "_Lines:" #~ msgstr "_Riadkov:" #~ msgid "at least N lines long" #~ msgstr "aspoň N riadkov dlhý" #~ msgid "less than N lines long" #~ msgstr "menej ako N riadkov dlhý" #~ msgid "Chan_ge Score:" #~ msgstr "Z_meniť bodovanie:" #~ msgid "subtract" #~ msgstr "odrátať" #~ msgid "Expire in N _days:" #~ msgstr "Platnosť vyprší za N _dní:" #~ msgid "Edit the selected score" #~ msgstr "Upraviť vybrané bodovanie" #~ msgid "You must specify an address." #~ msgstr "Musíte zadať adresu." #~ msgid "You must specify a password or disable authorization." #~ msgstr "Musíte zadať heslo alebo deaktivovať overenie totožnosti." #~ msgid "You must specify a .newsrc filename or disable newsrc support." #~ msgstr "" #~ "Musíte zadať názov súboru .newsrc alebo deaktivovať podporu pre newsrc." #~ msgid "Newsrc" #~ msgstr "Súbor newsrc" #~ msgid "Us_e .newsrc file" #~ msgstr "Po_užiť súbor .newsrc" #~ msgid "Select .newsrc File" #~ msgstr "Zvoliť súbor .newsrc" #~ msgid "_Filename:" #~ msgstr "Názov _súboru:" #~ msgid "Edit the selected server" #~ msgstr "Upraviť vybraný server" #~ msgid "Remove the selected server" #~ msgstr "Odstrániť vybraný server" #~ msgid "Got unexpected response from mail server: expected %d; got %s" #~ msgstr "" #~ "Prijatá neočakávaná odpoveď z poštového servera: očakávané %d; prijaté %s" #~ msgid "Sending mail" #~ msgstr "Posielam poštu" #~ msgid "No known recipients" #~ msgstr "Nie su známi príjemcovia" #~ msgid "Mail sent!" #~ msgstr "Pošta odoslaná!" #~ msgid "Handshaking with mail server" #~ msgstr "Nadväzovanie spojenia s poštovým serverom" #~ msgid "Connecting to mail server" #~ msgstr "Pripájam sa k poštovému serveru" #~ msgid "Mail server not ready" #~ msgstr "Poštový server nie je pripravený" #~ msgid "New connection %p for %s, port %d" #~ msgstr "Nové spojenie %p s %s, port %d" #~ msgid "Downloading %u articles" #~ msgstr "Sťahovanie %u príspevkov" #~ msgid "Downloading 1 article" #~ msgstr "Sťahujem 1 príspevok" #~ msgid "Downloading %d articles" #~ msgstr "Sťahovanie %d príspevkov" #~ msgid "\"%s\"" #~ msgstr "\"%s\"" #~ msgid "Article %s (%s) canceled" #~ msgstr "Príspevok %s (%s) zrušený" #~ msgid "Updating article counts for %u groups from server \"%s\"" #~ msgstr "Aktualizujem počty príspevkov pre %u skupín zo servera \"%s\"" #~ msgid "Got %d group descriptions" #~ msgstr "Získaných %d popisov skupín" #~ msgid "Fetching group descriptions" #~ msgstr "Získavanie popisov skupín" #~ msgid "Corrupt header skipped: " #~ msgstr "Preskočená poškodená hlavička: " #~ msgid "%lu Articles" #~ msgstr "%lu príspevkov" #~ msgid "Not Queued" #~ msgstr "Nie je v rade" #~ msgid "Pan %s Task Manager" #~ msgstr "Správca úloh programu Pan %s" #~ msgid "Move Selected Task(s) Up" #~ msgstr "Presunúť vybrané úlohy vyššie" #~ msgid "Move Selected Task(s) to Top" #~ msgstr "Presunúť vybrané úlohy navrch" #~ msgid "Move Selected Task(s) Down" #~ msgstr "Presunúť vybrané úlohy nižšie" #~ msgid "Stop Selected Task(s)" #~ msgstr "Zastaviť vybrané úlohy" #~ msgid "Delete Selected Task(s)" #~ msgstr "Vymazať vybrané úlohy" #~ msgid "Time Remaining" #~ msgstr "Zostávajúci čas" #~ msgid "Article \"%s\" posted." #~ msgstr "Príspevok \"%s\" poslaný." #~ msgid "Article \"%s\" not posted." #~ msgstr "Príspevok \"%s\" nebol poslaný." #~ msgid "Usenet posting failed. " #~ msgstr "Usenet posielanie zlyhalo. " #~ msgid "Check Tools|Log Viewer for more information. " #~ msgstr "Pozrite Nástroje|Prehliadač záznamov pre viac informácií. " #~ msgid "Your message was saved in the folder \"pan.sendlater\"" #~ msgstr "Vaša správa bola uložená v priečinku \"pan.poslaťneskôr\"" #~ msgid "Saving Attachments" #~ msgstr "Ukladanie príloh" #~ msgid "Save Article can't access path \"%s\"" #~ msgstr "Ukladanie príspevku nemôže pristupovať k ceste \"%s\"" #~ msgid "Saved article body to \"%s\"" #~ msgstr "Telo príspevku uložené v \"%s\"" #~ msgid "X-Newsreader" #~ msgstr "X-Klient-diskusných-skupín" #~ msgid "X-Mailer" #~ msgstr "X-Klient-elektronickej-pošty" #~ msgid "User-Agent" #~ msgstr "Agent-používateľa" #~ msgid "" #~ "Pan %s\n" #~ "Copyright (c) %d by Charles Kerr\n" #~ "\n" #~ "If you find a bug, please report it.\n" #~ "\n" #~ msgstr "" #~ "Pan %s\n" #~ "Autorské práva © %d Charles Kerr\n" #~ "\n" #~ "Ak nájdete chybu, oznámte ju, prosím.\n" #~ "\n" #~ msgid "" #~ "http://pan.rebelbase.com/ - Pan Homepage\n" #~ "http://pan.rebelbase.com/bugs/ - Report a Bug\n" #~ "http://pan.rebelbase.com/download/ - Upgrade\n" #~ "\n" #~ msgstr "" #~ "http://pan.rebelbase.com/ - domovská stránka programu Pan\n" #~ "http://pan.rebelbase.com/bugs/ - oznámenia o chybách\n" #~ "http://pan.rebelbase.com/download/ - aktualizácie\n" #~ msgid "" #~ "This program is free software; you can redistribute it\n" #~ "and/or modify it under the terms of the GNU General Public\n" #~ "License as published by the Free Software Foundation;\n" #~ "version 2 of the License.\n" #~ "\n" #~ "This program is distributed in the hope that it will be\n" #~ "useful, but WITHOUT ANY WARRANTY; without even the implied\n" #~ "warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\n" #~ "PURPOSE. See the GNU General Public License for more\n" #~ "details.\n" #~ "\n" #~ "The GNU Public License can be found from the menu above\n" #~ "in Help|About|License." #~ msgstr "" #~ "Tento program je voľne šíriteľný softvér. Môžete ho šíriť\n" #~ "a modifikovať podľa ustanovení Všeobecnej verejnej licencie\n" #~ "GNU, vydávanej nadáciou Free Software Foundation a to\n" #~ "verzie 2 tejto licencie.\n" #~ "\n" #~ "Tento program je rozširovaný v nádeji, že bude užitočný,\n" #~ "avšak BEZ AKEJKOĽVEK ZÁRUKY. Neposkytujú sa ani odvodené\n" #~ "záruky PREDAJNOSTI alebo VHODNOSTI PRE URČITÝ ÚČEL. Ďalšie\n" #~ "podrobnosti hľadajte vo Všeobecnej verejnej licencii GNU.\n" #~ "\n" #~ "Všeobecnú verejnú licenciu GNU môžete nájsť v menu v položke\n" #~ "Pomocník|O programe|Licencia." #~ msgid "Error starting external browser: %s" #~ msgstr "Chyba pri spúšťaní externého prehliadača: %s" #~ msgid "Error starting external scorefile editor: %s" #~ msgstr "Chyba pri spúšťaní externého editora bodovacieho súboru: %s" pan-0.162/po/sl.po000066400000000000000000002777621475412772400137360ustar00rootroot00000000000000# Slovenian translation for pan2. # Copyright (C) 2002-2007 Free Software Foundation, Inc. # This file is distributed under the same license as the pan2 package. # # Andraž Tori , 2000. # Andrej Žnidaršič , 2009-2010. # Matej Urbančič , 2006-2015. # Martin Srebotnjak , 2022-2023. # msgid "" msgstr "" "Project-Id-Version: pan2 master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/pan/issues/\n" "POT-Creation-Date: 2024-05-08 17:14+0000\n" "PO-Revision-Date: 2024-05-09 07:40+0200\n" "Last-Translator: Martin Srebotnjak \n" "Language-Team: Slovenian GNOME Translation Team \n" "Language: sl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || n" "%100==4 ? 3 : 0);\n" "X-Poedit-SourceCharset: utf-8\n" "X-Generator: Poedit 2.2.1\n" #. update the titlebar #: org.gnome.pan.desktop.in:3 org.gnome.pan.metainfo.xml.in:27 #: pan/gui/dl-headers-ui.cc:119 pan/gui/gui.cc:1040 pan/gui/gui.cc:1665 #: pan/gui/gui.cc:1985 pan/gui/score-add-ui.cc:600 msgid "Pan" msgstr "Pan" #: org.gnome.pan.desktop.in:4 msgid "Newsreader" msgstr "Bralnik novic" #: org.gnome.pan.desktop.in:5 org.gnome.pan.metainfo.xml.in:7 msgid "Read and post Usenet articles" msgstr "Berite in objavljajte članke Usenet" #. Translators: Search terms to find this application. Do NOT translate or localise the semicolons! The list MUST also end with a semicolon! #: org.gnome.pan.desktop.in:7 msgid "usenet;news;newsreader;newsgroup;article;yenc;nzb;" msgstr "usenet;novice;bralnik novic;novičarski seznam;članek;yenc;nzb;" #: org.gnome.pan.metainfo.xml.in:6 msgid "Pan Newsreader" msgstr "Bralnik novic Pan" #: org.gnome.pan.metainfo.xml.in:9 msgid "" "Pan is a Usenet newsreader that is good at both text and binaries. It " "supports offline reading, scoring and killfiles, yEnc, NZB, PGP handling, " "multiple servers, and secure connections." msgstr "" "Pan je bralnik novic Usenet, ki je dober tako z besedili kot z dvojiškimi " "datotekami. Podpira branje brez povezave, točkovanje in killfiles, yEnc, " "NZB, obravnavo PGP, več strežnikov in varne povezave." #: org.gnome.pan.metainfo.xml.in:12 msgid "" "It is also the only Unix newsreader to get a perfect score on the Good Net-" "Keeping Seal of Approval evaluations." msgstr "" "To je tudi edini bralnik novic z Unixa, ki je dobil odlično oceno na " "ocenjevanju Good Net-Keeping Seal of Approval." #: pan/data/article-cache.cc:144 pan/data/encode-cache.cc:62 #, c-format msgid "Error opening directory: \"%s\": %s" msgstr "Napaka pri odpiranju mape »%s«: %s" #: pan/data/article-cache.cc:235 pan/data/article-cache.cc:244 #: pan/data-impl/data-io.cc:278 pan/data-impl/data-io.cc:310 #: pan/gui/post-ui.cc:1767 #, c-format msgid "Unable to save \"%s\" %s" msgstr "Ni mogoče shraniti »%s« %s" #: pan/data/article-cache.cc:362 #, c-format msgid "Error opening file \"%s\" %s" msgstr "Napaka pri odpiranju datoteke »%s« %s" #: pan/data/article-cache.cc:393 pan/data-impl/profiles.cc:175 #: pan/data-impl/server.cc:495 pan/general/file-util.cc:311 #: pan/gui/post-ui.cc:636 pan/gui/task-pane.cc:740 #, c-format msgid "Error reading file \"%s\": %s" msgstr "Napaka pri branju datoteke »%s«: %s" #: pan/data/cert-store.cc:261 #, c-format msgid "Error opening SSL certificate directory: \"%s\": %s" msgstr "Napaka med odpiranjem mape potrdila SSL: »%s«: %s" #: pan/data/cert-store.cc:292 #, c-format msgid "Successfully added %d SSL PEM certificate(s) to Certificate Store." msgstr "Dodajanje %d potrdil SSL PEM v shrambo potrdil je uspelo." #: pan/data/cert-store.cc:312 msgid "" "Error initializing Certificate Store. Check that the permissions for the " "folders ~/.pan2 and ~/.pan2/ssl_certs are set correctly. Fatal, exiting." msgstr "" "Prišlo je do napake med začenjanjem shrambe potrdil. Preveriti je treba " "dovoljenja podmap ~/.pan2 in ~/.pan2/ssl_certs! Napaka je usodna, zato se bo " "program končal." #: pan/data/cert-store.cc:361 #, c-format msgid "Could not export certificate for server: %s" msgstr "Potrdila za strežnik ni bilo mogoče izvoziti: %s" # multiple_plural #. load_group_descriptions (*_data_io); #: pan/data-impl/data-impl.cc:115 #, c-format msgid "Loaded data backend in %.1f seconds" msgstr "Zaledje podatkov je bilo naloženo v %.1f sekundah" #: pan/data-impl/data-impl.cc:151 msgid "Pan Newsreader's server passwords" msgstr "Strežniška gesla bralnika novic Pan" #: pan/data-impl/groups.cc:102 #, c-format msgid "Skipping newsrc file for server \"%s\"" msgstr "Preskok datoteke newsrc za strežnik \"%s\"" #: pan/data-impl/headers.cc:618 #, c-format msgid "Expired %lu old articles from \"%s\"" msgstr "Preteklo je %lu starih prispevkov iz \"%s\"" #: pan/data-impl/headers.cc:625 #, c-format msgid "" "Unsupported data version for %s headers: %d.\n" "Are you running an old version of Pan by accident?" msgstr "" "Nepodprta različica podatkov za glave %s: %d.\n" "Ali je zagnana starejša različica programa Pan?" #: pan/data-impl/headers.cc:640 #, c-format msgid "Loaded %llu articles for \"%s\" in %.1f seconds (%.0f per second)" msgstr "Naloženih je bilo %llu prispevkov za »%s« v %.1f s (%.0f prisp./s)" #: pan/data-impl/headers.cc:869 #, c-format msgid "" "Saved %lu parts, %lu articles in \"%s\" in %.1f seconds (%.0f articles/sec)" msgstr "" "Shranjenih je %lu delov, %lu prispevkov v \"%s\" v %.1f sekundah (%.0f " "prisp./sek.)" #: pan/data-impl/headers.cc:1202 #, c-format msgid "Added %lu articles to %s." msgstr "Dodajanje %lu prispevkov v %s." #: pan/data-impl/server.cc:263 #, c-format msgid "Received no password from libsecret for server %s." msgstr "Nobeno geslo ni podano iz libsecret za strežnik %s." #: pan/data-impl/xover.cc:241 #, c-format msgid "Error reading from %s: unknown group \"%s\"" msgstr "Napaka med branjem iz %s: neznana skupina \"%s\"" #: pan/general/editor-spawner.cc:66 #, c-format msgid "Error parsing \"external editor\" command line: %s (Command was: %s)" msgstr "" "Napaka razčlenjevanja vrstice ukaza \"zunanji urejevalnik\": %s (Ukaz je " "bil: %s)" #: pan/general/editor-spawner.cc:110 #, c-format msgid "Error starting external editor: %s" msgstr "Napaka med začenjanjem zunanjega urejevalnika: %s" #: pan/general/e-util.cc:164 msgid "%l:%M %p" msgstr "%H.%M" #: pan/general/e-util.cc:165 msgid "Today %l:%M %p" msgstr "Danes ob %H.%M" #: pan/general/e-util.cc:166 msgid "%a %l:%M %p" msgstr "%a %H.%M" #: pan/general/e-util.cc:167 msgid "%b %d %l:%M %p" msgstr "%d. %m. %H.%M" #: pan/general/e-util.cc:168 msgid "%b %d %Y" msgstr "%d. %m. %Y" #: pan/general/e-util.cc:200 msgid "?" msgstr "?" #: pan/general/text-match.cc:194 #, c-format msgid "Can't use regular expression \"%s\": %s" msgstr "Logičnega izraza \"%s\" ni mogoče uporabiti: %s" #: pan/general/utf8-utils.cc:212 msgid "Couldn't determine article encoding. Non-UTF8 characters were removed." msgstr "" "Kodiranja prispevka ni mogoče določiti. Znaki, ki niso v naboru UTF8 so " "odstranjeni." #: pan/gui/actions.cc:306 pan/gui/post-ui.cc:451 msgid "_File" msgstr "_Datoteka" #: pan/gui/actions.cc:307 pan/gui/post-ui.cc:452 msgid "_Edit" msgstr "_Uredi" #: pan/gui/actions.cc:308 pan/gui/prefs-ui.cc:1138 msgid "_Layout" msgstr "_Razporeditev" #: pan/gui/actions.cc:309 msgid "_Group Pane" msgstr "Pladenj _skupin" #: pan/gui/actions.cc:310 msgid "_Header Pane" msgstr "_Pladenj glave" #: pan/gui/actions.cc:311 msgid "_Body Pane" msgstr "Pladenj _telesa" #: pan/gui/actions.cc:312 msgid "_View" msgstr "_Pogled" #: pan/gui/actions.cc:313 msgid "Filte_r" msgstr "Filt_riraj" #: pan/gui/actions.cc:314 msgid "_Go" msgstr "Po_jdi" #: pan/gui/actions.cc:315 pan/gui/prefs-ui.cc:1188 msgid "_Actions" msgstr "_Dejanja" #: pan/gui/actions.cc:316 msgid "_Articles" msgstr "_Prispevki" #: pan/gui/actions.cc:317 msgid "G_roups" msgstr "S_kupine" #: pan/gui/actions.cc:318 pan/gui/actions.cc:319 msgid "_Post" msgstr "Po_šlji" #: pan/gui/actions.cc:320 msgid "_Help" msgstr "Pomo_č" #: pan/gui/actions.cc:323 msgid "_Read Group" msgstr "_Preberi skupino" #: pan/gui/actions.cc:324 msgid "Read Group" msgstr "Prebere skupino" #: pan/gui/actions.cc:328 msgid "_Mark Selected Groups Read" msgstr "_Označi izbrane skupine kot prebrane" #: pan/gui/actions.cc:329 msgid "Mark Selected Groups Read" msgstr "Označi izbrane skupine kot prebrane" #: pan/gui/actions.cc:333 msgid "_Delete Selected Groups' Articles" msgstr "_Izbriši prispevke izbranih skupin" #: pan/gui/actions.cc:334 msgid "Delete Selected Groups' Articles" msgstr "Izbriši prispevke izbranih skupin" #: pan/gui/actions.cc:338 msgid "Get New _Headers in Selected Groups" msgstr "Pridobi nove _glave v izbranih skupinah" #: pan/gui/actions.cc:339 msgid "Get New Headers in Selected Groups" msgstr "Pridobi nove glave v izbranih skupinah" #: pan/gui/actions.cc:343 pan/gui/actions.cc:348 msgid "Get New _Headers in Subscribed Groups" msgstr "Pridobi nove _glave v naročenih skupinah" #: pan/gui/actions.cc:344 pan/gui/actions.cc:349 msgid "Get New Headers in Subscribed Groups" msgstr "Pridobi nove glave v naročenih skupinah" #: pan/gui/actions.cc:353 msgid "Get _Headers..." msgstr "Pridobi _glave ..." #: pan/gui/actions.cc:354 msgid "Get Headers..." msgstr "Pridobi glave ..." #: pan/gui/actions.cc:358 pan/gui/actions.cc:359 msgid "Refresh Group List" msgstr "Osveži seznam skupin" #: pan/gui/actions.cc:363 msgid "_Subscribe" msgstr "_Naroči se" #: pan/gui/actions.cc:364 msgid "Subscribe" msgstr "Naroči se" #: pan/gui/actions.cc:368 msgid "_Unsubscribe" msgstr "P_rekliči naročnino" #: pan/gui/actions.cc:369 msgid "Unsubscribe" msgstr "Prekliče naročnino" #: pan/gui/actions.cc:373 msgid "_Save Articles..." msgstr "_Shrani prispevke ..." #: pan/gui/actions.cc:374 msgid "Save Articles..." msgstr "Shrani prispevke ..." #: pan/gui/actions.cc:378 msgid "Save Articles from Selected _NZB..." msgstr "Shrani prispevke iz izbrane datoteke _NZB ..." #: pan/gui/actions.cc:379 msgid "Save Articles from Selected NZB" msgstr "Shrani prispevke iz izbrane datoteke NZB" #: pan/gui/actions.cc:383 msgid "Save Articles to an NZB _File..." msgstr "Shrani prispevke v _datoteko NZB ..." #: pan/gui/actions.cc:384 msgid "Save Articles to an NZB File" msgstr "Shrani prispevke v datoteko NZB" #: pan/gui/actions.cc:388 pan/gui/actions.cc:389 msgid "Print" msgstr "Natisni" #: pan/gui/actions.cc:393 msgid "_Import NZB Files..." msgstr "_Uvozi datoteke NZB ..." #: pan/gui/actions.cc:398 msgid "_Cancel Last Task" msgstr "_Prekliči zadnjo nalogo" #: pan/gui/actions.cc:403 msgid "_Task Manager" msgstr "_Upravljalnik nalog" #: pan/gui/actions.cc:408 msgid "_Event Log" msgstr "Dn_evnik dogodkov" #: pan/gui/actions.cc:413 msgid "_Quit" msgstr "_Končaj" #: pan/gui/actions.cc:418 msgid "Select _All Articles" msgstr "Izberi _vse prispevke" #: pan/gui/actions.cc:423 msgid "_Deselect All Articles" msgstr "_Odstrani izbor vseh prispevkov" #: pan/gui/actions.cc:428 msgid "Add Su_bthreads to Selection" msgstr "Dodaj po_dniti v izbor " #: pan/gui/actions.cc:433 msgid "Add _Threads to Selection" msgstr "Dodaj _niti v izbor" #: pan/gui/actions.cc:438 msgid "Add _Similar Articles to Selection" msgstr "Dodaj _podobne prispevke v izbor" #: pan/gui/actions.cc:443 msgid "Select Article _Body" msgstr "Izberi _telo prispevka" #: pan/gui/actions.cc:448 msgid "Edit _Preferences" msgstr "Uredi _možnosti" #: pan/gui/actions.cc:453 msgid "Edit Selected _Group's Preferences" msgstr "Uredi možnosti izbrane _skupine" #: pan/gui/actions.cc:458 msgid "Edit S_core File" msgstr "Uredi datoteko S_core" #: pan/gui/actions.cc:463 pan/gui/post-ui.cc:468 msgid "Edit P_osting Profiles" msgstr "Uredi p_rofile pošiljanja" #: pan/gui/actions.cc:468 msgid "Edit _News Servers" msgstr "_Uredi strežnike novic" #: pan/gui/actions.cc:473 msgid "Jump to _Group Tab" msgstr "Skok na zavihek _skupine" #: pan/gui/actions.cc:478 msgid "Jump to _Header Tab" msgstr "Skok na zavihek _glave" #: pan/gui/actions.cc:483 msgid "Jump to _Body Tab" msgstr "Skok na zavihek _telesa" #: pan/gui/actions.cc:488 msgid "_Rot13 Selected Text" msgstr "Izbrano besedilo _Rot13" #: pan/gui/actions.cc:493 msgid "Clear _Header Pane" msgstr "Počisti pladenj _glave" #: pan/gui/actions.cc:498 msgid "Clear _Body Pane" msgstr "Počisti _pladenj telesa" #: pan/gui/actions.cc:503 msgid "Cache Article" msgstr "Zapiši prispevek v predpomnilnik" #: pan/gui/actions.cc:508 msgid "Read Article" msgstr "Preberi prispevek" #: pan/gui/actions.cc:513 msgid "Show Article Information" msgstr "Prikaz podrobnosti prispevka" #: pan/gui/actions.cc:518 msgid "Read _More" msgstr "Preberi _več" #: pan/gui/actions.cc:519 msgid "Read More" msgstr "Preberi več" #: pan/gui/actions.cc:523 msgid "Read _Back" msgstr "Pre_beri nazaj" #: pan/gui/actions.cc:524 msgid "Read Back" msgstr "Preberi nazaj" #: pan/gui/actions.cc:528 msgid "Next _Unread Group" msgstr "Naslednja _neprebrana skupina" #: pan/gui/actions.cc:533 msgid "Next _Group" msgstr "Naslednja _skupina" #: pan/gui/actions.cc:538 msgid "Next _Unread Article" msgstr "Naslednji _neprebran prispevek" #: pan/gui/actions.cc:539 msgid "Next Unread Article" msgstr "Naslednji neprebran prispevek" #: pan/gui/actions.cc:543 msgid "Next _Article" msgstr "Naslednji _prispevek" #: pan/gui/actions.cc:544 msgid "Next Article" msgstr "Naslednji prispevek" #: pan/gui/actions.cc:548 msgid "Next _Watched Article" msgstr "Naslednji _gledani prispevek" #: pan/gui/actions.cc:553 msgid "Next Unread _Thread" msgstr "Naslednja neprebrana n_it" #: pan/gui/actions.cc:554 msgid "Next Unread Thread" msgstr "Naslednja neprebrana nit" #: pan/gui/actions.cc:558 msgid "Next Threa_d" msgstr "Na_slednja nit" #: pan/gui/actions.cc:563 msgid "Pre_vious Article" msgstr "Pre_dhodni prispevek" #: pan/gui/actions.cc:568 msgid "Previous _Thread" msgstr "P_redhodna nit" #: pan/gui/actions.cc:573 msgid "_Parent Article" msgstr "Nadr_ejeni prispevek" #: pan/gui/actions.cc:578 msgid "Ignore _Author" msgstr "Prezri _avtorja" #: pan/gui/actions.cc:582 msgid "_Watch Thread" msgstr "_Oglej si nit" #: pan/gui/actions.cc:587 msgid "_Ignore Thread" msgstr "_Prezri nit" #: pan/gui/actions.cc:592 pan/gui/actions.cc:593 msgid "_Toggle Flag On/Off for Thread" msgstr "_Preklopi označbo niti" #: pan/gui/actions.cc:597 pan/gui/actions.cc:598 msgid "_Turn Flag Off for Thread" msgstr "_Odstrani označbo niti" #: pan/gui/actions.cc:602 pan/gui/actions.cc:603 msgid "_Select All Flagged Threads" msgstr "Iz_beri vse označene niti" #: pan/gui/actions.cc:607 pan/gui/actions.cc:608 msgid "_Go to Next Flagged Thread" msgstr "Poj_di na naslednjo označeno nit" #: pan/gui/actions.cc:612 pan/gui/actions.cc:613 msgid "_Go to Last Flagged Thread" msgstr "Poj_di na zadnjo označeno nit" #: pan/gui/actions.cc:617 pan/gui/actions.cc:618 msgid "_Invert Selection" msgstr "Obrni _izbor" #: pan/gui/actions.cc:622 msgid "Edit Article's Watch/Ignore/Score..." msgstr "Uredi stanje prispevka ogled/prezri/točke ..." #: pan/gui/actions.cc:627 msgid "Add a _Scoring Rule..." msgstr "Dodaj pravilo _točkovanja ..." #: pan/gui/actions.cc:632 msgid "Cance_l Article..." msgstr "Prek_liči prispevek ..." #: pan/gui/actions.cc:637 msgid "_Supersede Article..." msgstr "N_adomesti prispevek ..." #: pan/gui/actions.cc:642 msgid "_Delete Article" msgstr "_Izbriši prispevek" #: pan/gui/actions.cc:647 msgid "Clear Article Cache" msgstr "Počisti predpomnilnik prispevka" #: pan/gui/actions.cc:652 msgid "_Mark Article as Read" msgstr "_Označi prispevek kot prebran" #: pan/gui/actions.cc:657 msgid "Mark Article as _Unread" msgstr "Označi prispevek kot _neprebran" #: pan/gui/actions.cc:663 msgid "_Mark Thread as Read" msgstr "Označi kot p_rebrano" #: pan/gui/actions.cc:668 msgid "Mark Thread as _Unread" msgstr "Označi kot _neprebrano" #: pan/gui/actions.cc:673 msgid "_Post to Newsgroup" msgstr "_Objavi v novičarsko skupino" #: pan/gui/actions.cc:674 msgid "Post to Newsgroup" msgstr "Objavi v novičarsko skupino" #: pan/gui/actions.cc:678 msgid "_Followup to Newsgroup" msgstr "_Navezava v novičarsko skupino" #: pan/gui/actions.cc:679 msgid "Followup to Newsgroup" msgstr "Navezava na novičarsko skupino" #: pan/gui/actions.cc:683 msgid "_Reply to Author in Mail" msgstr "_Odgovori avtorju preko elektronske pošte" #: pan/gui/actions.cc:689 msgid "_Contents" msgstr "_Vsebina" #: pan/gui/actions.cc:695 msgid "_Pan Home Page" msgstr "Domača stran _programa" #: pan/gui/actions.cc:700 msgid "Give _Feedback or Report a Bug..." msgstr "Pošiljanje _odziva ali poročila o hrošču ..." #: pan/gui/actions.cc:705 msgid "_About" msgstr "_O Programu" #: pan/gui/actions.cc:710 msgid "Edit _SSL Certificates" msgstr "Uredi potrdila _SSL" #: pan/gui/actions.cc:725 msgid "_Thread Headers" msgstr "Glave _niti" #: pan/gui/actions.cc:726 msgid "Wrap Article Body" msgstr "Prelomi telo prispevka" #: pan/gui/actions.cc:727 msgid "Show Article Signature" msgstr "Pokaži podpis prispevka" #: pan/gui/actions.cc:728 msgid "Mute _Quoted Text" msgstr "Utišaj _navedeno besedilo" #: pan/gui/actions.cc:729 msgid "Show All _Headers in Body Pane" msgstr "Pokaži vse gl_ave v pultu telesa" #: pan/gui/actions.cc:730 msgid "Show _Smilies as Graphics" msgstr "Pokaži _smeške kot slike" #: pan/gui/actions.cc:731 msgid "Show *Bold*, __Underlined__, and /Italic/" msgstr "Pokaži *Krepko*, __Podčrtano__, in /Poševno/" #: pan/gui/actions.cc:732 msgid "Size Pictures to _Fit" msgstr "Prilag_odi velikost slik" #: pan/gui/actions.cc:733 msgid "Use _Monospace Font" msgstr "Uporabi pisavo _monospace" #: pan/gui/actions.cc:734 msgid "Set Focus to Images" msgstr "Nastavi žarišče na slike" #: pan/gui/actions.cc:735 msgid "Highlight _URLs" msgstr "Poudari_URL-je" #: pan/gui/actions.cc:738 msgid "_Work Online" msgstr "_Delo s povezavo" #: pan/gui/actions.cc:739 msgid "_Tabbed Layout" msgstr "Razporeditev _zavihkov" #: pan/gui/actions.cc:740 msgid "Show Group _Pane" msgstr "Pokaži _pladenj skupine" #: pan/gui/actions.cc:741 msgid "Show Hea_der Pane" msgstr "Pokaži pladenj gl_ave" #: pan/gui/actions.cc:742 msgid "Show Bod_y Pane" msgstr "Pokaži pladenj te_lesa" #: pan/gui/actions.cc:743 msgid "Show _Toolbar" msgstr "Pokaži orodno vrs_tico" #: pan/gui/actions.cc:744 msgid "Abbreviate Group Names" msgstr "Okrajšaj imena skupin" #: pan/gui/actions.cc:746 msgid "Match Only _Read Articles" msgstr "Skladanje le _prebranih prispevkov" #: pan/gui/actions.cc:746 msgid "Match Only Read Articles" msgstr "Skladanje le prebranih prispevkov" #: pan/gui/actions.cc:747 msgid "Match Only _Unread Articles" msgstr "Upoštevaj le n_eprebrane prispevke" #: pan/gui/actions.cc:747 msgid "Match Only Unread Articles" msgstr "Upoštevaj le neprebrane prispevke" #: pan/gui/actions.cc:748 msgid "Match Only _Cached Articles" msgstr "Upoštevaj le p_redpomjene prispevke" #: pan/gui/actions.cc:748 msgid "Match Only Cached Articles" msgstr "Upoštevaj le predpomjene prispevke" #: pan/gui/actions.cc:749 msgid "Match Only _Complete Articles" msgstr "Upoštevaj le _celotne prispevke" #: pan/gui/actions.cc:749 msgid "Match Only Complete Articles" msgstr "Upoštevaj le celotne prispevke" #: pan/gui/actions.cc:750 msgid "Match Only _My Articles" msgstr "Upoštevaj le _moje prispevke" #: pan/gui/actions.cc:750 msgid "Match Only My Articles" msgstr "Upoštevaj le moje prispevke" #: pan/gui/actions.cc:751 msgid "Match Only _Watched Articles" msgstr "Upoštevaj le _gledane prispevke" #: pan/gui/actions.cc:751 msgid "Match Only Watched Articles" msgstr "Upoštevaj le gledane prispevke" #: pan/gui/actions.cc:753 msgid "Match Scores of 9999 (_Watched)" msgstr "Upoštevaj točke na 9999 (_gledano)" #: pan/gui/actions.cc:754 msgid "Match Scores of 5000...9998 (_High)" msgstr "Upoštevaj točke med 5000 in 9998 (_visoko)" #: pan/gui/actions.cc:755 msgid "Match Scores of 1...4999 (Me_dium)" msgstr "Upoštevaj točke med 1 in 4999 (sre_dnje)" #: pan/gui/actions.cc:756 msgid "Match Scores of 0 (_Normal)" msgstr "Upoštevaj 0 točk (_običajno)" #: pan/gui/actions.cc:757 msgid "Match Scores of -9998...-1 (_Low)" msgstr "Upoštevaj točke med -9998 in -1 (n_izko)" #: pan/gui/actions.cc:758 msgid "Match Scores of -9999 (_Ignored)" msgstr "Upoštevaj točke na -9999 (Pre_zrto)" #: pan/gui/actions.cc:760 msgid "Enable/Disable All _Rules" msgstr "Omogoči/onemogoči vsa p_ravila" #: pan/gui/actions.cc:788 msgid "Show Matching _Articles" msgstr "Pokaži skladajoče _prispevke" #: pan/gui/actions.cc:789 msgid "Show Matching Articles' _Threads" msgstr "Pokaži _niti, ki se skladajo s prispevkom" #: pan/gui/actions.cc:790 msgid "Show Matching Articles' _Subthreads" msgstr "Pokaži _podniti, ki se skladajo s prispevkom" #: pan/gui/body-pane.cc:1038 msgid "Unnamed File" msgstr "Neimenovana datoteka" #: pan/gui/body-pane.cc:1119 pan/gui/gui.cc:1956 pan/gui/header-pane.cc:1309 #: pan/gui/header-pane.cc:1738 pan/gui/post-ui.cc:2641 pan/gui/prefs-ui.cc:887 #: pan/gui/score-add-ui.cc:139 pan/gui/task-pane.cc:795 msgid "Subject" msgstr "Zadeva" #: pan/gui/body-pane.cc:1121 pan/gui/gui.cc:1956 msgid "From" msgstr "Od" #: pan/gui/body-pane.cc:1123 pan/gui/gui.cc:1957 pan/gui/header-pane.cc:1817 #: pan/gui/log-ui.cc:308 pan/gui/prefs-ui.cc:883 msgid "Date" msgstr "Datum" #: pan/gui/body-pane.cc:1130 msgid "Newsgroups" msgstr "Novičarske skupine" #: pan/gui/body-pane.cc:1137 pan/gui/body-pane.cc:1145 #: pan/gui/body-pane.cc:1152 msgid "User-Agent" msgstr "Uporabniški agent" #: pan/gui/body-pane.cc:1158 msgid "Followup-To" msgstr "Navezava-na" #: pan/gui/body-pane.cc:1168 msgid "Reply-To" msgstr "Odgovori-na" #: pan/gui/body-pane.cc:1216 msgid " from " msgstr " od" #: pan/gui/body-pane.cc:1218 msgid " at " msgstr " ob" #: pan/gui/body-pane.cc:1307 #, c-format msgid "" "This is a PGP-Signed message.\n" "\n" "Signer: %s ('%s')\n" "Valid until: %s\n" "Created on: %s" msgstr "" "To sporočilo je podpisano s PGP.\n" "\n" "Podpisnik: %s ('%s')\n" "Veljavnost: %s\n" "Ustvarjeno: %s" #: pan/gui/body-pane.cc:1312 msgid "always" msgstr "vedno" #: pan/gui/body-pane.cc:1532 msgid "Copy _URL" msgstr "_Kopiraj URL" #: pan/gui/body-pane.cc:1720 msgid "Save Attachment As..." msgstr "Shrani prilogo kot ..." #: pan/gui/body-pane.cc:1723 msgid "Save All Attachments" msgstr "Shrani vse priloge" #: pan/gui/body-pane.cc:1794 msgid "Attachments:" msgstr "Priponke:" #: pan/gui/body-pane.cc:1814 msgid "Text View" msgstr "Besedilni pogled" #: pan/gui/body-pane.cc:1823 msgid "HTML View" msgstr "Pogled HTML" #: pan/gui/dl-headers-ui.cc:125 #, c-format msgid "%d Group" msgid_plural "%d Groups" msgstr[0] "%d skupin" msgstr[1] "%d skupina" msgstr[2] "%d skupini" msgstr[3] "%d skupine" #: pan/gui/dl-headers-ui.cc:148 msgid "Get the last N _days' headers: " msgstr "Dobi glave zadnjih N _dni:" #: pan/gui/dl-headers-ui.cc:156 msgid "Get _new headers" msgstr "Dobi _nove glave" #: pan/gui/dl-headers-ui.cc:160 msgid "Get _all headers" msgstr "Dobi _vse glave" #: pan/gui/dl-headers-ui.cc:164 msgid "Get the _latest N headers: " msgstr "Dobi _zadnjih N glav:" #: pan/gui/e-action-combo-box.c:386 pan/gui/prefs-ui.cc:880 msgid "Action" msgstr "Dejanje" #: pan/gui/e-action-combo-box.c:387 msgid "A GtkRadioAction" msgstr "GtkRadioAction" #: pan/gui/e-charset.c:51 pan/gui/task-pane.cc:561 msgid "Unknown" msgstr "Neznano" #: pan/gui/e-charset.c:52 msgid "Arabic" msgstr "Arabščina" #: pan/gui/e-charset.c:53 msgid "Baltic" msgstr "Baltsko" #: pan/gui/e-charset.c:54 msgid "Central European" msgstr "Srednjeevropsko" #: pan/gui/e-charset.c:55 msgid "Chinese" msgstr "Kitajščina" #: pan/gui/e-charset.c:56 msgid "Cyrillic" msgstr "Cirilica" #: pan/gui/e-charset.c:57 msgid "Greek" msgstr "Grščina" #: pan/gui/e-charset.c:58 msgid "Hebrew" msgstr "Hebrejščina" #: pan/gui/e-charset.c:59 msgid "Japanese" msgstr "Japonščina" #: pan/gui/e-charset.c:60 msgid "Korean" msgstr "Korejščina" #: pan/gui/e-charset.c:61 msgid "Thai" msgstr "Tajščina" #: pan/gui/e-charset.c:62 msgid "Turkish" msgstr "Turščina" #: pan/gui/e-charset.c:63 msgid "Unicode" msgstr "Unicode" #: pan/gui/e-charset.c:64 msgid "Western European" msgstr "Zahodnoevropsko" #: pan/gui/e-charset.c:65 msgid "Western European, New" msgstr "Zahodnoevropsko, novo" #: pan/gui/e-charset.c:84 pan/gui/e-charset.c:85 pan/gui/e-charset.c:86 msgid "Traditional" msgstr "Tradicionalna" #: pan/gui/e-charset.c:87 pan/gui/e-charset.c:88 pan/gui/e-charset.c:89 #: pan/gui/e-charset.c:90 msgid "Simplified" msgstr "Poenostavljena" #: pan/gui/e-charset.c:93 msgid "Ukrainian" msgstr "Ukrajinščina" #: pan/gui/e-charset.c:96 msgid "Visual" msgstr "Vidno" #: pan/gui/e-charset-combo-box.c:95 pan/gui/gui.cc:2154 pan/gui/post-ui.cc:546 #: pan/gui/prefs-ui.cc:791 msgid "Character Encoding" msgstr "Znakovno kodiranje" #: pan/gui/e-charset-combo-box.c:97 pan/gui/e-charset-dialog.c:51 #: pan/gui/score-add-ui.cc:606 pan/gui/task-pane.cc:309 msgid "Cancel" msgstr "Prekliči" #: pan/gui/e-charset-combo-box.c:98 pan/gui/e-charset-dialog.c:52 msgid "OK" msgstr "V redu" #: pan/gui/e-charset-combo-box.c:119 msgid "Enter the character set to use" msgstr "Vnesite znakovno kodiranje za uporabo" #: pan/gui/e-charset-combo-box.c:338 msgid "Other..." msgstr "Drugo ..." #: pan/gui/e-cte-dialog.c:76 msgid "Default Encoding" msgstr "Privzet nabor znakov" #: pan/gui/e-cte-dialog.c:78 msgid "7-Bit Encoding" msgstr "7-bitno kodiranje" #: pan/gui/e-cte-dialog.c:80 msgid "8-Bit Encoding" msgstr "8-bitno kodiranje" #: pan/gui/e-cte-dialog.c:82 msgid "Base64 Encoding" msgstr "Kodiranje Base64" #: pan/gui/e-cte-dialog.c:84 msgid "Quoted-Printable Encoding" msgstr "Kodiranje Quoted-Printable" #: pan/gui/group-pane.cc:331 msgid "Sent" msgstr "Poslano" #: pan/gui/group-pane.cc:332 msgid "Drafts" msgstr "Osnutki" #: pan/gui/group-pane.cc:543 msgid "Group" msgstr "Skupina" #: pan/gui/group-pane.cc:544 msgid "Group (regex)" msgstr "Skupina (logični izraz)" #: pan/gui/group-pane.cc:987 msgid "Local Folders" msgstr "Krajevne mape" #: pan/gui/group-pane.cc:988 msgid "Subscribed Groups" msgstr "Naročene skupine" #: pan/gui/group-pane.cc:989 msgid "Other Groups" msgstr "Druge skupine" #: pan/gui/group-pane.cc:1029 pan/gui/score-view-ui.cc:156 msgid "Name" msgstr "Ime" #: pan/gui/group-prefs-dialog.cc:161 msgid "No Profiles defined in Edit|Posting Profiles." msgstr "V Uredi|Profili pošiljanja ni določen noben profil." #: pan/gui/group-prefs-dialog.cc:264 msgid "Pan: Group Preferences" msgstr "Pan: Možnosti skupine" #: pan/gui/group-prefs-dialog.cc:279 msgid "Properties for Groups" msgstr "Lastnosti za skupine" #: pan/gui/group-prefs-dialog.cc:281 #, c-format msgid "Properties for %s" msgstr "Lastnosti %s" #: pan/gui/group-prefs-dialog.cc:292 msgid "Character _encoding:" msgstr "Znakovno _kodiranje:" #: pan/gui/group-prefs-dialog.cc:294 msgid "Directory for Saving Attachments" msgstr "Mapa za shranjevanje prilog" #: pan/gui/group-prefs-dialog.cc:302 msgid "Directory for _saving attachments:" msgstr "Mapa za _shranjevanje prilog:" #: pan/gui/group-prefs-dialog.cc:304 msgid "Posting _profile:" msgstr "Pošiljanje _profila:" #: pan/gui/group-prefs-dialog.cc:309 msgid "Spellchecker _language:" msgstr "Jezik _črkovalnika:" #: pan/gui/group-prefs-dialog.cc:312 msgid "Group color:" msgstr "Barva skupine:" #: pan/gui/gui.cc:311 msgid "Open the Task Manager" msgstr "Odpri upravljalnika nalog" #: pan/gui/gui.cc:334 msgid "Open the Event Log" msgstr "Odpri dnevnik dogodkov" #: pan/gui/gui.cc:610 msgid "Save NZB's Files" msgstr "Shrani datoteke NZB" #: pan/gui/gui.cc:637 msgid "Untitled.nzb" msgstr "Neimenovano.nzb" #: pan/gui/gui.cc:639 msgid "Save NZB File as..." msgstr "Shrani datoteko NZB kot ..." #: pan/gui/gui.cc:808 msgid "Import NZB Files" msgstr "Uvozi datoteke NZB" #: pan/gui/gui.cc:816 pan/gui/post-ui.cc:3349 msgid "NZB Files" msgstr "Datoteke NZB" #: pan/gui/gui.cc:821 msgid "All Files" msgstr "Vse datoteke" #: pan/gui/gui.cc:1335 msgid "Unable to supersede article." msgstr "Prispevka ni mogoče nadomestiti." #: pan/gui/gui.cc:1336 pan/gui/gui.cc:1412 msgid "The article doesn't match any of your posting profiles." msgstr "Prispevek ni skladen z nobenim od vaših profilov pošiljanja." #: pan/gui/gui.cc:1385 msgid "Revise and send this article to replace the old one." msgstr "Preglejte in pošljite ta prispevek za zamenjavo starega." #: pan/gui/gui.cc:1386 pan/gui/gui.cc:1450 msgid "Be patient! It will take time for your changes to take effect." msgstr "" "Bodite potrpežljivi! Vaše spremembe bodo imele učinek šele čez nekaj časa." #: pan/gui/gui.cc:1411 msgid "Unable to cancel article." msgstr "Prispevka ni mogoče preklicati." #: pan/gui/gui.cc:1449 msgid "Send this article to ask your server to cancel your other one." msgstr "Pošljite ta prispevek s prošnjo strežniku za preklic drugega." #: pan/gui/gui.cc:1467 msgid "You have marked some articles for deletion." msgstr "Nekaj prispevkov je označenih za brisanje." #: pan/gui/gui.cc:1468 msgid "Are you sure you want to delete them?" msgstr "Ali ste prepričani, da jih želite izbrisati?" #: pan/gui/gui.cc:1494 msgid "Do you want to accept it permanently? (You can change this later.)" msgstr "" "Ali naj se sprejme za stalno (še vedno ga je mogoče kasneje izbrisati)?" #: pan/gui/gui.cc:1640 msgid "Unable to open help file." msgstr "Datoteke pomoči ni mogoče odpreti." #: pan/gui/gui.cc:1668 msgid "Copyright © 2002-2021 Charles Kerr and others" msgstr "Avtorske pravice © 2002-2021 Charles Kerr in drugi" #: pan/gui/gui.cc:1673 msgid "translator-credits" msgstr "" "Matej Urbančič \n" "Andrej Žnidaršič " #: pan/gui/gui.cc:1801 msgid "_1. Group Pane" msgstr "_1. Pladenj skupine" #: pan/gui/gui.cc:1802 msgid "_2. Header Pane" msgstr "_2. Pladenj glave" #: pan/gui/gui.cc:1803 msgid "_3. Body Pane" msgstr "_3. Pladenj telesa" #: pan/gui/gui.cc:1893 pan/gui/gui.cc:1908 msgid " Bytes" msgstr " Bajti" #: pan/gui/gui.cc:1896 msgid " KB" msgstr " KB" #: pan/gui/gui.cc:1899 msgid " MB" msgstr " MB" #: pan/gui/gui.cc:1902 msgid " GB" msgstr " GB" #: pan/gui/gui.cc:1905 msgid " TB" msgstr " TB" #: pan/gui/gui.cc:1937 #, c-format msgid "This article is complete with %d part." msgid_plural "This article has all %d parts." msgstr[0] "Prispevek je popoln s skupno %d deli." msgstr[1] "Prispevek je popoln s skupno %d delom." msgstr[2] "Prispevek je popoln s skupno %d deloma." msgstr[3] "Prispevek je popoln s skupno %d deli." #: pan/gui/gui.cc:1939 #, c-format msgid "This article is missing %d part." msgid_plural "This article is missing %d of its %d parts:" msgstr[0] "Prispevku manjka %d od skupno %d delov:" msgstr[1] "Prispevku manjka %d od skupno %d dela:" msgstr[2] "Prispevku manjka %d od skupno %d delov:" msgstr[3] "Prispevku manjka %d od skupno %d delov:" #: pan/gui/gui.cc:1957 pan/gui/header-pane.cc:1311 pan/gui/task-pane.cc:797 msgid "Message-ID" msgstr "ID sporočila" #: pan/gui/gui.cc:1958 pan/gui/header-pane.cc:1786 pan/gui/prefs-ui.cc:884 msgid "Lines" msgstr "Vrstic" #: pan/gui/gui.cc:1958 msgid "Size" msgstr "Velikost" #: pan/gui/gui.cc:1959 pan/gui/header-pane.cc:1802 pan/gui/prefs-ui.cc:882 msgid "Bytes" msgstr "Bajtov" #: pan/gui/gui.cc:2009 msgid "" "Error loading iconv library. Encoding certain character sets will not work " "in GUI." msgstr "" "Napaka med nalaganjem knjižnice iconv. Nekaterih naborov znakov v grafičnem " "vmesniku ne bo mogoče kodirati." #: pan/gui/gui.cc:2155 msgid "Body Pane Encoding" msgstr "Kodiranje pladnja telesa" #: pan/gui/gui.cc:2186 pan/gui/task-pane.cc:612 msgid "Offline" msgstr "Brez povezave" #: pan/gui/gui.cc:2190 #, c-format msgid "Closing %d connection" msgid_plural "Closing %d connections" msgstr[0] "Zapiranje %d povezav" msgstr[1] "Zapiranje %d povezave" msgstr[2] "Zapiranje %d povezav" msgstr[3] "Zapiranje %d povezav" #: pan/gui/gui.cc:2192 pan/gui/gui.cc:2222 msgid "No Connections" msgstr "Ni povezav" #: pan/gui/gui.cc:2196 msgid "Connecting" msgstr "Povezovanje" #: pan/gui/gui.cc:2209 #, c-format msgid "%s: %d idle, %d active @ %.1f KiBps" msgstr "%s: %d nedejavno, %d dejavno pri %.1f KiBps" #: pan/gui/gui.cc:2265 msgid "No Tasks" msgstr "Ni nalog" #: pan/gui/gui.cc:2267 pan/gui/prefs-ui.cc:1121 msgid "Tasks" msgstr "Naloge" #: pan/gui/gui.cc:2284 pan/gui/task-pane.cc:478 #, c-format msgid "%lu tasks, %s, %.1f KiBps, ETA %d:%02d:%02d" msgstr "%lu nalog, %s, %.1f KiBps, PČP %d:%02d:%02d" #: pan/gui/gui.cc:2336 msgid "" "Pan is now offline. Please see \"File|Event Log\" and correct the problem, " "then use \"File|Work Online\" to continue." msgstr "" "Pan je v načinu brez povezave. Oglejte si \"Datoteka|Dnevnik dogodkov\" in " "popravite napako ter nato uporabite \"Datoteka|Delaj povezano\" za " "nadaljevanje." #: pan/gui/header-pane.cc:1307 pan/gui/task-pane.cc:793 msgid "Subject or Author" msgstr "Zadeva ali avtor" #: pan/gui/header-pane.cc:1308 pan/gui/task-pane.cc:794 msgid "Sub or Auth (regex)" msgstr "Zadeva ali avtor (logični izraz)" #: pan/gui/header-pane.cc:1310 pan/gui/header-pane.cc:1770 #: pan/gui/prefs-ui.cc:881 pan/gui/score-add-ui.cc:140 pan/gui/task-pane.cc:796 msgid "Author" msgstr "Avtor" #: pan/gui/header-pane.cc:1755 pan/gui/prefs-ui.cc:885 msgid "Score" msgstr "Točke" #: pan/gui/log-ui.cc:105 msgid "Save Event List" msgstr "Shrani seznam dogodkov" #: pan/gui/log-ui.cc:259 msgid "Pan: Events" msgstr "Pan: dogodki" #: pan/gui/log-ui.cc:318 msgid "Message" msgstr "Sporočilo" #: pan/gui/pan.cc:336 msgid "Maximize" msgstr "Razpni" #: pan/gui/pan.cc:376 msgid "An error has occurred!" msgstr "Prišlo je do napake!" #: pan/gui/pan.cc:389 msgid "New Articles!" msgstr "Novi prispevki!" #: pan/gui/pan.cc:390 msgid "" "There are new\n" "articles available." msgstr "" "Na voljo so novi\n" "prispevki." #: pan/gui/pan.cc:470 msgid "" "Thank you for trying Pan!\n" " \n" "To start newsreading, first Add a Server." msgstr "" "Hvala za preizkus programa Pan!\n" " \n" "Za začetek branja novic najprej dodajte strežnik." #: pan/gui/pan.cc:552 msgid "" "General Options\n" " -h, --help Show this usage information and exit.\n" " -v, --version Print release version and exit.\n" " --verbose Be verbose (in non-GUI mode).\n" " --debug Run in debug mode. Use --debug twice for verbose " "debug.\n" " --debug-ssl Run in TLS (aka SSL) debug mode.\n" "\n" "URL Options\n" " headers:group.name Download new headers for the specified " "newsgroup.\n" " news:message-id When specified together with --no-gui, dump\n" " the message-id article to standard output.\n" "\n" "NZB Batch Options\n" " --nzb file1 file2 ... Process NZB files in non-GUI mode.\n" " -o path, --output=path Path to save attachments listed in the NZB " "file(s).\n" " --no-gui Only show console output, not the download " "queue.\n" msgstr "" "Splošne možnosti\n" " -h, --help Pokaže to stran o uporabi.\n" " -v, —version Izpiše različico izdaje in zapre program.\n" " --verbose Izpiše vsa sporočila (v načinu ukazne vrstice).\n" " --debug Zaženite v razhroščevalnem načinu. Uporabite --" "debug dvakrat za razhroščevanje z opisi.\n" " --debug-ssl Zaženite v razhroščevalnem načinu TLS (aka SSL).\n" "\n" "Možnosti naslova URL\n" " headers:ime.skupine Prejme nove glave za posamezno novičarsko " "skupino.\n" " news:id-sporočila Če je navedeno skupaj z --no-gui, izpiše\n" " prispevek id-sporočila na standardni odvod.\n" "\n" "Paketne možnosti NZB\n" " --nzd datoteka1 datoteka2 ... Obdela datoteke nzb brez zagona celotnega " "programa.\n" " -o pot, --output=pot Pot za shranjevanje prilog, naštetih v datotekah " "nzb.\n" " --no-gui Prikaže le odvod konzole, ne pa vrste prejemanj.\n" #: pan/gui/pan.cc:885 msgid "Error: --no-gui used without nzb files or news:message-id." msgstr "Napaka: --no-gui je uporabljen brez datotek nzb ali novic:id-sporočila" #: pan/gui/pan.cc:889 #, c-format msgid "Pan %s started" msgstr "Pan %s je zagnan" #: pan/gui/pan.cc:909 msgid "Please configure Pan's news servers before using it as an nzb client." msgstr "" "Pred uporabo programa kot privzetega odjemalca je treba nastaviti strežnike " "novic." #: pan/gui/pan.cc:1029 msgid "Pan notification" msgstr "Obvestilo Pan" #: pan/gui/post-ui.cc:175 #, c-format msgid "Upload queue: %llu tasks, %ld KB (~ %.2f MB) total." msgstr "Vrsta za pošiljanje: %llu nalog, skupaj %ld KB (~ %.2f MB)." #: pan/gui/post-ui.cc:281 pan/gui/post-ui.cc:312 #, c-format msgid "Error setting custom spellchecker: %s" msgstr "Napaka med nastavljanjem črkovalnika po meri: %s" #: pan/gui/post-ui.cc:285 pan/gui/post-ui.cc:293 pan/gui/post-ui.cc:316 #: pan/gui/post-ui.cc:324 #, c-format msgid "Error setting spellchecker: %s" msgstr "Napaka med nastavljanjem črkovalnika: %s" #: pan/gui/post-ui.cc:453 msgid "_Profile" msgstr "_Profil" #: pan/gui/post-ui.cc:454 msgid "Set Editor" msgstr "Nastavi urejevalnik" #: pan/gui/post-ui.cc:456 msgid "_Send Article" msgstr "_Pošlji prispevek" #: pan/gui/post-ui.cc:456 msgid "Send Article Now" msgstr "Pošlje prispevek takoj" #: pan/gui/post-ui.cc:457 msgid "_Send and Save Articles to NZB" msgstr "_Pošlji in shrani prispevke v datoteko NZB" #: pan/gui/post-ui.cc:457 msgid "Send and Save Articles to NZB" msgstr "Pošlji in shrani prispevke v datoteko NZB" #: pan/gui/post-ui.cc:458 msgid "Set Character _Encoding..." msgstr "Nastavi _znakovno kodiranje ..." #: pan/gui/post-ui.cc:459 msgid "Set Content _Transfer Encoding..." msgstr "Določi _kodiranje prenosa vsebine ..." #: pan/gui/post-ui.cc:460 msgid "Sa_ve Draft" msgstr "Shra_ni osnutek" #: pan/gui/post-ui.cc:460 msgid "Save as a Draft for Future Posting" msgstr "Shrani kot osnutek za kasnejše objavljanje" #: pan/gui/post-ui.cc:461 msgid "_Open Draft..." msgstr "_Odpri osnutek ..." #: pan/gui/post-ui.cc:461 msgid "Open an Article Draft" msgstr "Odpre osnutek prispevka" #: pan/gui/post-ui.cc:466 msgid "_Rot13" msgstr "_Rot13" #: pan/gui/post-ui.cc:466 msgid "Rot13 Selected Text" msgstr "Izbrano besedilo Rot13" #: pan/gui/post-ui.cc:467 msgid "Run _Editor" msgstr "_Zaženi urejevalnik" #: pan/gui/post-ui.cc:467 msgid "Run Editor" msgstr "Zažene urejevalnik" #: pan/gui/post-ui.cc:469 msgid "Add _Files to Queue" msgstr "Dodaj _datoteke v čakalno vrsto" #: pan/gui/post-ui.cc:469 msgid "Add Files to Queue" msgstr "Dodaj v čakalno vrsto" #: pan/gui/post-ui.cc:484 pan/gui/post-ui.cc:485 msgid "Remove from Queue" msgstr "Odstrani iz čakalne vrste" #: pan/gui/post-ui.cc:489 pan/gui/post-ui.cc:490 msgid "Clear List" msgstr "Počisti seznam" #: pan/gui/post-ui.cc:494 pan/gui/post-ui.cc:495 msgid "Select Needed Parts" msgstr "Izbor zahtevanih delov" #: pan/gui/post-ui.cc:499 pan/gui/post-ui.cc:500 pan/gui/task-pane.cc:680 #: pan/gui/task-pane.cc:681 msgid "Move Up" msgstr "Premakni navzgor" #: pan/gui/post-ui.cc:504 pan/gui/post-ui.cc:505 pan/gui/task-pane.cc:685 #: pan/gui/task-pane.cc:686 msgid "Move Down" msgstr "Premakni navzdol" #: pan/gui/post-ui.cc:509 pan/gui/post-ui.cc:510 msgid "Move to Top" msgstr "Premakni na vrh" #: pan/gui/post-ui.cc:514 pan/gui/post-ui.cc:515 msgid "Move to Bottom" msgstr "Premakni na dno" #: pan/gui/post-ui.cc:522 msgid "_Wrap Text" msgstr "_Prelomi besedilo" #: pan/gui/post-ui.cc:522 msgid "Wrap Text" msgstr "Prelomi besedil" #: pan/gui/post-ui.cc:523 msgid "Always Run Editor" msgstr "Vedno zaženi urejevalnik" #: pan/gui/post-ui.cc:524 msgid "Remember Character Encoding for This Group" msgstr "Zapomni si znakovno kodiranje za to skupino" #: pan/gui/post-ui.cc:525 msgid "Thread Attached Replies" msgstr "Postavi priložene odgovore v niti" #: pan/gui/post-ui.cc:526 msgid "PGP-Encrypt the Article" msgstr "Šifriranje prispevka s PGP" #: pan/gui/post-ui.cc:527 msgid "PGP-Sign the Article" msgstr "Podpisovanje prispevka s PGP" #: pan/gui/post-ui.cc:528 msgid "Check _Spelling" msgstr "_Preveri črkovanje" #: pan/gui/post-ui.cc:547 msgid "New Article's Encoding:" msgstr "Kodiranje novega prispevka:" #: pan/gui/post-ui.cc:557 msgid "Content Transfer Encoding" msgstr "Kodiranje prenosa vsebine" #: pan/gui/post-ui.cc:558 msgid "New Article's Content Transfer Encoding:" msgstr "Kodiranje prenosa vsebine novega prispevka:" #: pan/gui/post-ui.cc:742 msgid "Your changes will be lost!" msgstr "Vaše spremembe bodo izgubljene!" #: pan/gui/post-ui.cc:743 msgid "Close this window and lose your changes?" msgstr "Ali naj se to okno zapre in naj se prezrejo vse vaše spremembe?" #: pan/gui/post-ui.cc:788 pan/gui/post-ui.cc:827 msgid "There were problems with this post." msgstr "Prišlo je do težav s to objavo." #: pan/gui/post-ui.cc:790 pan/gui/post-ui.cc:829 pan/gui/post-ui.cc:894 msgid "Go Back" msgstr "Pojdi nazaj " #: pan/gui/post-ui.cc:792 msgid "Continue Anyway" msgstr "Vseeno nadaljuj" #. Prompt the user #: pan/gui/post-ui.cc:821 #, c-format msgid "" "Message uses characters not specified in charset '%s' - possibly use '%s' " msgstr "" "Sporočilo uporablja znake, ki niso navedeni v naboru znakov '%s' - poskusite " "z uporabo '%s'" #: pan/gui/post-ui.cc:844 msgid "Go _Online" msgstr "_Poveži se" #: pan/gui/post-ui.cc:893 msgid "The file queue is empty, so no files can be saved." msgstr "Vrsta datotek je prazna, zato ni mogoče shraniti nobene datoteke." #: pan/gui/post-ui.cc:1073 msgid "IO Error" msgstr "V/I napaka" #: pan/gui/post-ui.cc:1073 msgid "No space left on device" msgstr "Na napravi ni več prostora" #: pan/gui/post-ui.cc:1074 #, c-format msgid "Error copying message to %s folder. Reason: %s" msgstr "Prišlo je do napake med kopiranjem sporočila v mapo %s. Vzrok: %s" #: pan/gui/post-ui.cc:1080 #, c-format msgid "Error creating message in %s mail folder: Invalid article." msgstr "" "Prišlo je do napake med ustvarjanjem sporočila v poštni mapi %s: neveljaven " "prispevek." #: pan/gui/post-ui.cc:1102 msgid "" "No posting server is set for this posting profile.\n" "Please edit the profile via Edit|Manage Posting Profiles." msgstr "" "V tem profilu objavljanja ni določen strežnik objavljanja.\n" "Uredite profil preko Uredi|Upravljanje profilov objavljanja." #: pan/gui/post-ui.cc:1107 msgid "" "The selected posting server is currently disabled. Please choose an " "appropriate alternative." msgstr "" "Trenutno izbrani strežnik za pošiljanje je onemogočen. Izbrati je treba " "ustrezno zamenjavo." #: pan/gui/post-ui.cc:1149 msgid "Pan is Offline." msgstr "Pan ni povezan." #: pan/gui/post-ui.cc:1150 msgid "Go online to post the article?" msgstr "Ali naj se računalnik poveže za pošiljanje prispevka?" #: pan/gui/post-ui.cc:1199 #, c-format msgid "" "Error signing/encrypting your message. Perhaps you misspelled your email " "address (%s)?" msgstr "" "Prišlo je do napake pri podpisovanju oziroma šifriranju sporočila. Morda je " "napačno vnesen elektronski naslov (%s)?" #: pan/gui/post-ui.cc:1349 msgid "Error opening temporary file" msgstr "Napaka med odpiranjem začasne datoteke" #: pan/gui/post-ui.cc:1360 #, c-format msgid "Error creating temporary file: %s" msgstr "Napaka pri ustvarjanju začasne datoteke: %s" #: pan/gui/post-ui.cc:1368 #, c-format msgid "Error writing article to temporary file: %s" msgstr "Napaka med pisanjem prispevka v začasno datoteko: %s" #: pan/gui/post-ui.cc:1441 msgid "Open Draft Article" msgstr "Odpri osnutek prispevka" #: pan/gui/post-ui.cc:1683 msgid "Save Draft Article" msgstr "Shrani osnutek prispevka" #: pan/gui/post-ui.cc:1721 msgid "File already exists." msgstr "Datoteka že obstaja." #: pan/gui/post-ui.cc:1722 msgid "Overwrite it?" msgstr "Ali jo želite prepisati?" #: pan/gui/post-ui.cc:1931 #, c-format msgid "Couldn't parse signature command \"%s\": %s" msgstr "Ukaza podpisa \"%s\" ni mogoče razčleniti: %s" #: pan/gui/post-ui.cc:1967 msgid "Couldn't convert signature to UTF-8." msgstr "Podpisa ni mogoče pretvoriti v UTF-8." #: pan/gui/post-ui.cc:2479 msgid "F_rom" msgstr "O_d" #: pan/gui/post-ui.cc:2496 msgid "_Subject" msgstr "_Zadeva" #: pan/gui/post-ui.cc:2509 msgid "_Newsgroups" msgstr "_Novičarske skupine" #: pan/gui/post-ui.cc:2523 msgid "Mail _To" msgstr "Pošlji pošto _k" #: pan/gui/post-ui.cc:2626 msgid "Delete from Queue" msgstr "Izbriši iz vrste" #: pan/gui/post-ui.cc:2639 msgid "No." msgstr "Št." #: pan/gui/post-ui.cc:2643 pan/gui/post-ui.cc:2735 pan/gui/post-ui.cc:2776 msgid "Filename" msgstr "Ime datoteke" #: pan/gui/post-ui.cc:2645 msgid "Size (KB)" msgstr "Velikost (kB)" #: pan/gui/post-ui.cc:2743 msgid "The current filename" msgstr "Trenutno ime datoteke" #: pan/gui/post-ui.cc:2747 msgid "Subject Line" msgstr "Vrstica zadeve" #: pan/gui/post-ui.cc:2755 msgid "The current subject line" msgstr "Trenutna vrstica zadeve" #: pan/gui/post-ui.cc:2769 msgid "No. " msgstr "Št." #: pan/gui/post-ui.cc:2773 msgid "Enable/Disable" msgstr "Omogoči/Onemogoči" #: pan/gui/post-ui.cc:2807 msgid "Follo_wup-To" msgstr "Nave_zava-na" #. i18n: "poster" is a key used by many newsreaders. probably safest to keep this key in english. #: pan/gui/post-ui.cc:2816 msgid "" "The newsgroups where replies to your message should go. This is only needed " "if it differs from the \"Newsgroups\" header.\n" "\n" "To direct all replies to your email address, use \"Followup-To: poster\"" msgstr "" "Novičarske skupine kamor bodo poslani odgovori na vaše sporočilo. Skupine je " "treba vnesti le, če se razlikujejo od glave \"Novičarske skupine\". \n" "\n" "Za usmeritev vseh odgovorov na vaš naslov elektronske pošte uporabite " "\"Navezava na: pošiljatelj\"" #: pan/gui/post-ui.cc:2823 msgid "_Reply-To" msgstr "_Odgovori na" #: pan/gui/post-ui.cc:2831 msgid "" "The email account where mail replies to your posted message should go. This " "is only needed if it differs from the \"From\" header." msgstr "" "Elektronski naslov, kamor bodo poslani odgovori na vaše sporočilo. Naslov " "je treba vnesti le, če se ta razlikuje od podatkov pošiljatelja \"Od\"." #: pan/gui/post-ui.cc:2838 msgid "_Custom Headers" msgstr "Glave po _meri" #: pan/gui/post-ui.cc:2862 msgid "Add \"_User-Agent\" header" msgstr "Dodaj glavo \"_User-Agent\"" #: pan/gui/post-ui.cc:2869 msgid "Add \"Message-_ID\" header" msgstr "Dodaj glavo \"_ID sporočila\"" #: pan/gui/post-ui.cc:2997 msgid "Select Parts" msgstr "Izberi dele" #: pan/gui/post-ui.cc:3010 msgid "_Parts" msgstr "_Deli" #: pan/gui/post-ui.cc:3177 msgid "Post Article" msgstr "Pošlji prispevek" #: pan/gui/post-ui.cc:3198 msgid "_Message" msgstr "_Sporočilo" #: pan/gui/post-ui.cc:3199 msgid "More _Headers" msgstr "Več _glav" #: pan/gui/post-ui.cc:3200 msgid "File _Queue" msgstr "_Čakalna vrsta datotek" #: pan/gui/post-ui.cc:3231 pan/gui/profiles-dialog.cc:490 #, no-c-format msgid "On %d, %n wrote:" msgstr "Na %d je %n napisal:" #: pan/gui/post-ui.cc:3260 msgid "Add files to queue" msgstr "Dodaj datoteke v čakalno vrsto" #: pan/gui/post-ui.cc:3336 msgid "Save Upload Queue as NZB File" msgstr "Shrani vrsto za pošiljanje na strežnik kot datoteko NZB" #: pan/gui/prefs.cc:366 #, c-format msgid "Couldn't parse %s color \"%s\"" msgstr "Ni mogoče razčleniti %s barve \"%s\"" #: pan/gui/prefs-ui.cc:139 msgid "Grab Key" msgstr "Zgrabi izbor tipk" #: pan/gui/prefs-ui.cc:145 #, c-format msgid "" "Press the combination of the keys\n" "you want to use for \"%s\"." msgstr "" "Pritisnite kombinacijo tipk,\n" "ki jo želite nastaviti za \"%s\"." #: pan/gui/prefs-ui.cc:182 msgid "Edit Shortcut" msgstr "Uredi tipkovno bližnjico" #: pan/gui/prefs-ui.cc:243 msgid "Error: Shortcut key is invalid!" msgstr "Napaka: ključ tipkovne bližnjice ni veljaven!" #: pan/gui/prefs-ui.cc:259 msgid "Error: Shortcut key already exists!" msgstr "Napaka: ključ tipkovne bližnjice že obstaja!" #: pan/gui/prefs-ui.cc:593 msgid "Show only icons" msgstr "Pokaži le ikone" #: pan/gui/prefs-ui.cc:594 msgid "Show only text" msgstr "Pokaži le besedilo" #: pan/gui/prefs-ui.cc:595 msgid "Show icons and text" msgstr "Pokaži ikone in besedilo" #: pan/gui/prefs-ui.cc:634 msgid "Use GNOME Preferences" msgstr "Uporabi možnosti GNOME" #: pan/gui/prefs-ui.cc:635 msgid "Use KDE Preferences" msgstr "Uporabi možnosti KDE" #: pan/gui/prefs-ui.cc:636 msgid "Use OS X Preferences" msgstr "Uporabi možnosti OS X" #: pan/gui/prefs-ui.cc:637 msgid "Use Windows Preferences" msgstr "Uporabi možnosti Windows" #: pan/gui/prefs-ui.cc:638 msgid "Custom Command:" msgstr "Ukaz po meri:" #: pan/gui/prefs-ui.cc:690 msgid "Disabled" msgstr "Onemogočeno" #: pan/gui/prefs-ui.cc:691 msgid "Only new (score == 0)" msgstr "Samo novi (točke == 0)" #: pan/gui/prefs-ui.cc:692 msgid "9999 or more" msgstr "9999 ali več" #: pan/gui/prefs-ui.cc:693 msgid "5000 to 9998" msgstr "med 5000 in 9998" #: pan/gui/prefs-ui.cc:694 msgid "1 to 4999" msgstr "med 1 in 4999" #: pan/gui/prefs-ui.cc:695 msgid "-9998 to -1" msgstr "med -9998 in -1" #: pan/gui/prefs-ui.cc:696 msgid "-9999 or less" msgstr "-9999 ali manj" #: pan/gui/prefs-ui.cc:760 #, c-format msgid "Select default global character set. Current setting: %s." msgstr "" "Izbran privzet splošni nabor znakov. Trenutno je izbran: %s." #: pan/gui/prefs-ui.cc:792 msgid "Global Character Set Settings" msgstr "Splošne nastavitve kodnega nabora" #: pan/gui/prefs-ui.cc:886 pan/gui/task-pane.cc:1067 msgid "State" msgstr "Stanje" #: pan/gui/prefs-ui.cc:920 msgid "Enabled" msgstr "Omogočeno" #: pan/gui/prefs-ui.cc:924 msgid "Column Name" msgstr "Ime stolpca" #: pan/gui/prefs-ui.cc:962 msgid "Pan: Preferences" msgstr "Pan: Možnosti" #: pan/gui/prefs-ui.cc:977 msgid "Mouse" msgstr "Miška" #: pan/gui/prefs-ui.cc:979 msgid "Single-click activates, rather than selects, _groups" msgstr "Enojni klik zažene namesto izbere, _skupine" #: pan/gui/prefs-ui.cc:981 msgid "Single-click activates, rather than selects, _articles" msgstr "Enojni klik zažene namesto izbere, _prispevke" #: pan/gui/prefs-ui.cc:984 msgid "Groups" msgstr "Skupine" #: pan/gui/prefs-ui.cc:986 msgid "Get new headers in subscribed groups on _startup" msgstr "Ob _zagonu dobi nove glave v naročenih skupinah" #: pan/gui/prefs-ui.cc:988 msgid "Get new headers when _entering group" msgstr "Ob _vstopu v skupino dobi nove glave" #: pan/gui/prefs-ui.cc:990 msgid "Mark entire group _read when leaving group" msgstr "Ob zapuščanju skupine označi celotno skupino kot _prebrano" #: pan/gui/prefs-ui.cc:992 msgid "Mark entire group read before getting _new headers" msgstr "Označi celotno skupino kot prebrano pred pridobivanjem _novih glav" #: pan/gui/prefs-ui.cc:994 msgid "E_xpand all threads when entering group" msgstr "Ob vstopu v skupino _razširi vse niti" #: pan/gui/prefs-ui.cc:999 msgid "Articles" msgstr "Prispevki" #: pan/gui/prefs-ui.cc:1001 msgid "Mark downloaded articles read" msgstr "Označi prenesene prispevke kot prebrane" #: pan/gui/prefs-ui.cc:1003 msgid "Space selects next article rather than next unread" msgstr "" "S preslednico se izbere naslednji prispevek namesto naslednjega neprebranega " "prispevka" #: pan/gui/prefs-ui.cc:1005 msgid "Expand threads upon selection" msgstr "Razširi niti ob izboru" #: pan/gui/prefs-ui.cc:1007 msgid "Always ask before deleting an article" msgstr "Vprašaj pred brisanjem prispevka" #: pan/gui/prefs-ui.cc:1009 msgid "Smooth scrolling" msgstr "Gladko drsenje" #: pan/gui/prefs-ui.cc:1014 msgid "Article Cache" msgstr "Predpomnilnik prispevkov" #: pan/gui/prefs-ui.cc:1015 msgid "Clear article cache on shutdown" msgstr "Ob zaustavitvi počisti predpomnilnik prispevka " #: pan/gui/prefs-ui.cc:1018 msgid "Size of article cache (in MiB):" msgstr "Velikost predpomnilnika prispevkov (v MiB):" #: pan/gui/prefs-ui.cc:1022 msgid "File extension for cached articles: " msgstr "Pripona datotek za predpomnjene prispevke:" #: pan/gui/prefs-ui.cc:1026 msgid "Tabs" msgstr "Zavihki" #: pan/gui/prefs-ui.cc:1031 msgid "_Behavior" msgstr "_Obnašanje" #: pan/gui/prefs-ui.cc:1031 msgid "Behavior" msgstr "Obnašanje" #: pan/gui/prefs-ui.cc:1037 msgid "Task Pane" msgstr "Pladenj nalog" #: pan/gui/prefs-ui.cc:1038 msgid "Show task pane popups" msgstr "Pokaži pojavna sporočila pladnja nalog" #: pan/gui/prefs-ui.cc:1040 msgid "Show Download Meter" msgstr "Pokaži števec prejemanja" #: pan/gui/prefs-ui.cc:1044 msgid "_Panes" msgstr "_Pladnji" #: pan/gui/prefs-ui.cc:1044 msgid "Panes" msgstr "Pladnji" #: pan/gui/prefs-ui.cc:1050 msgid "Language Settings" msgstr "Jezikovne nastavitve" #: pan/gui/prefs-ui.cc:1051 msgid "Font" msgstr "Pisava" #. systray and notify popup #: pan/gui/prefs-ui.cc:1058 msgid "System Tray Behavior" msgstr "Obnašanje programa v sistemski vrstici" #: pan/gui/prefs-ui.cc:1060 msgid "Start Pan minimized" msgstr "Zaženi Pan pomanjšano" #: pan/gui/prefs-ui.cc:1063 msgid "Show notifications" msgstr "Pokaži obvestila" #. allow multiple instances (seperate, not communicating with dbus) #: pan/gui/prefs-ui.cc:1068 msgid "Startup Behavior" msgstr "Obnašanje ob zagonu" #: pan/gui/prefs-ui.cc:1070 msgid "Allow multiple instances of Pan" msgstr "Dovoli več odprtih primerkov programa Pan" #: pan/gui/prefs-ui.cc:1075 msgid "Autosave Article Draft" msgstr "Samodejno shrani osnutek prispevka" #: pan/gui/prefs-ui.cc:1077 msgid "Minutes to autosave the current Article Draft: " msgstr "" "Časovni razmik samodejnega shranjevanja osnutka trenutnega prispevka " "(minute):" #: pan/gui/prefs-ui.cc:1082 msgid "Autosave Articles" msgstr "Samodejno shrani prispevke" #: pan/gui/prefs-ui.cc:1084 msgid "Minutes to autosave newsrc files: " msgstr "Časovni razmik samodejnega shranjevanja datoteke newsrc (minute):" #: pan/gui/prefs-ui.cc:1091 msgid "Password Storage" msgstr "Shramba gesel" #: pan/gui/prefs-ui.cc:1093 msgid "Save passwords in password storage" msgstr "Shrani gesla v shrambi gesel" #: pan/gui/prefs-ui.cc:1100 msgid "_Miscellaneous" msgstr "_Razno" #: pan/gui/prefs-ui.cc:1100 msgid "Miscellaneous" msgstr "Razno" #: pan/gui/prefs-ui.cc:1105 msgid "Pane Layout" msgstr "Postavitev pladnja" #: pan/gui/prefs-ui.cc:1124 msgid "1=Groups, 2=Headers, 3=Body" msgstr "1=Skupine, 2=Glave, 3=Telo" #: pan/gui/prefs-ui.cc:1126 msgid "1=Groups, 2=Body, 3=Headers" msgstr "1=Skupine, 2=Telo, 3=Glave" #: pan/gui/prefs-ui.cc:1128 msgid "1=Headers, 2=Groups, 3=Body" msgstr "1=Glave, 2=Skupine, 3=Telo" #: pan/gui/prefs-ui.cc:1130 msgid "1=Headers, 2=Body, 3=Groups" msgstr "1=Glave, 2=Telo, 3=Skupine" #: pan/gui/prefs-ui.cc:1132 msgid "1=Body, 2=Groups, 3=Headers" msgstr "1=Telo, 2=Skupine, 3=Glave" #: pan/gui/prefs-ui.cc:1134 msgid "1=Body, 2=Headers, 3=Groups" msgstr "1=Telo, 2=Glave, 3=Skupine" #: pan/gui/prefs-ui.cc:1138 msgid "Layout" msgstr "Postavitev" #: pan/gui/prefs-ui.cc:1143 msgid "Header Pane Columns" msgstr "Stolpci pladnja glave" #: pan/gui/prefs-ui.cc:1147 msgid "_Headers" msgstr "_Glave" #: pan/gui/prefs-ui.cc:1147 msgid "Headers" msgstr "Glave" #: pan/gui/prefs-ui.cc:1153 msgid "" "This menu lets you configure Pan to take certain actions on your behalf " "automatically, based on an article's score." msgstr "" "Ta meni omogoča prilagajanje programa Pan za samodejno izvajanje opravil " "glede na točkovanje prispevka." #: pan/gui/prefs-ui.cc:1158 msgid "Mark affected articles read" msgstr "Označi ustrezne prispevke kot prebrane" #: pan/gui/prefs-ui.cc:1167 msgid "_Delete articles scoring at: " msgstr "_Izbriši prispevke z rezultatom:" #: pan/gui/prefs-ui.cc:1173 msgid "Mark articles read scoring at: " msgstr "Za prebrane označi prispevke z oceno:" #: pan/gui/prefs-ui.cc:1179 msgid "_Cache articles scoring at: " msgstr "Predpomni _prispevke z rezultatom:" #: pan/gui/prefs-ui.cc:1185 msgid "Download attachments of articles scoring at: " msgstr "Prejmi _priloge prispevkov s točkami:" #: pan/gui/prefs-ui.cc:1188 msgid "Actions" msgstr "Dejanja" #: pan/gui/prefs-ui.cc:1193 pan/gui/prefs-ui.cc:1214 msgid "Fonts" msgstr "Pisave" #: pan/gui/prefs-ui.cc:1195 msgid "Use custom font in Group Pane:" msgstr "Uporabi pisavo po meri v pladnju skupine" #: pan/gui/prefs-ui.cc:1200 msgid "Use custom font in Header Pane:" msgstr "Uporabi pisavo po meri v pladnju glave:" #: pan/gui/prefs-ui.cc:1205 msgid "Use custom font in Body Pane:" msgstr "Uporabi pisavo po meri v pladnju telesa:" #: pan/gui/prefs-ui.cc:1210 msgid "Monospace font:" msgstr "Pisava Monospace:" #: pan/gui/prefs-ui.cc:1214 msgid "_Fonts" msgstr "P_isave" #: pan/gui/prefs-ui.cc:1223 msgid "Header Pane" msgstr "Pladenj glave" #: pan/gui/prefs-ui.cc:1226 pan/gui/prefs-ui.cc:1232 pan/gui/prefs-ui.cc:1238 #: pan/gui/prefs-ui.cc:1244 pan/gui/prefs-ui.cc:1250 pan/gui/prefs-ui.cc:1256 #: pan/gui/prefs-ui.cc:1265 pan/gui/prefs-ui.cc:1271 pan/gui/prefs-ui.cc:1277 #: pan/gui/prefs-ui.cc:1283 pan/gui/prefs-ui.cc:1289 pan/gui/prefs-ui.cc:1299 #: pan/gui/prefs-ui.cc:1309 msgid "Text:" msgstr "Besedilo:" #: pan/gui/prefs-ui.cc:1228 pan/gui/prefs-ui.cc:1234 pan/gui/prefs-ui.cc:1240 #: pan/gui/prefs-ui.cc:1246 pan/gui/prefs-ui.cc:1252 pan/gui/prefs-ui.cc:1258 #: pan/gui/prefs-ui.cc:1267 pan/gui/prefs-ui.cc:1273 pan/gui/prefs-ui.cc:1279 #: pan/gui/prefs-ui.cc:1285 pan/gui/prefs-ui.cc:1291 pan/gui/prefs-ui.cc:1301 #: pan/gui/prefs-ui.cc:1311 msgid "Background:" msgstr "Ozadje:" #: pan/gui/prefs-ui.cc:1230 msgid "Scores of 9999 or more:" msgstr "9999 točk ali več:" #: pan/gui/prefs-ui.cc:1236 msgid "Scores from 5000 to 9998:" msgstr "Med 5000 in 9998 točk:" #: pan/gui/prefs-ui.cc:1242 msgid "Scores from 1 to 4999:" msgstr "Med 1 in 4999 točk:" #: pan/gui/prefs-ui.cc:1248 msgid "Scores from -9998 to -1:" msgstr "Med -9998 in -1 točko:" #: pan/gui/prefs-ui.cc:1254 msgid "Scores of -9999 or less:" msgstr "-9999 točk ali manj:" #: pan/gui/prefs-ui.cc:1260 msgid "Collapsed thread with unread articles:" msgstr "Zloži nit z neprebranimi sporočili:" #: pan/gui/prefs-ui.cc:1262 msgid "Body Pane" msgstr "Pladenj telesa" #: pan/gui/prefs-ui.cc:1269 msgid "First level of quoted text:" msgstr "Prva raven navajanje besedila:" #: pan/gui/prefs-ui.cc:1275 msgid "Second level of quoted text:" msgstr "Druga raven navajanje besedila:" #: pan/gui/prefs-ui.cc:1281 msgid "Third level of quoted text:" msgstr "Tretja raven navajanje besedila:" #. #: pan/gui/prefs-ui.cc:1287 msgid "URL:" msgstr "Naslov URL:" #. #: pan/gui/prefs-ui.cc:1293 msgid "Signature:" msgstr "Podpis:" #: pan/gui/prefs-ui.cc:1296 msgid "Group Pane" msgstr "Pladenj skupin" #. #: pan/gui/prefs-ui.cc:1303 msgid "Group Color:" msgstr "Barva skupine:" #: pan/gui/prefs-ui.cc:1307 msgid "Other Text" msgstr "Drugo besedilo" #: pan/gui/prefs-ui.cc:1313 msgid "Text Color:" msgstr "Barva besedila:" #: pan/gui/prefs-ui.cc:1316 msgid "_Colors" msgstr "_Barve" #: pan/gui/prefs-ui.cc:1316 msgid "Colors" msgstr "Barve" #: pan/gui/prefs-ui.cc:1321 msgid "Preferred Applications" msgstr "Prednostni programi" #: pan/gui/prefs-ui.cc:1325 msgid "_Web browser:" msgstr "_Spletni brskalnik:" #: pan/gui/prefs-ui.cc:1328 msgid "_Gemini client:" msgstr "Odjemalec _Gemini:" #: pan/gui/prefs-ui.cc:1331 msgid "_Mail reader:" msgstr "_Bralnik pošte:" #: pan/gui/prefs-ui.cc:1333 msgid "_Text editor:" msgstr "_Urejevalnik besedil:" #: pan/gui/prefs-ui.cc:1335 msgid "_HTML previewer:" msgstr "_Predoglednik HTML:" #: pan/gui/prefs-ui.cc:1337 msgid "_Applications" msgstr "_Programi" #: pan/gui/prefs-ui.cc:1337 msgid "Applications" msgstr "Programi" #: pan/gui/prefs-ui.cc:1342 pan/gui/task-pane.cc:555 msgid "Encoding" msgstr "Nabor znakov" #: pan/gui/prefs-ui.cc:1346 msgid "Default bytes per file (for encoder): " msgstr "Privzeto bajtov na datoteko (za kodirnik):" #: pan/gui/prefs-ui.cc:1351 msgid "_Upload" msgstr "_Pošlji" #: pan/gui/prefs-ui.cc:1351 msgid "Upload" msgstr "Pošlji" #: pan/gui/prefs-ui.cc:1360 msgid "_Shortcuts" msgstr "_Tipkovne bližnjice" #: pan/gui/prefs-ui.cc:1360 msgid "Shortcuts" msgstr "Tipkovne bližnjice" #: pan/gui/profiles-dialog.cc:83 msgid "Please choose your email address according to your PGP key's user id." msgstr "" "Izberite elektronski poštni naslov glede na uporabniški ID svojega ključa " "PGP." #: pan/gui/profiles-dialog.cc:131 msgid "Posting Profile" msgstr "Pošiljanje profila" #: pan/gui/profiles-dialog.cc:143 msgid "Profile Information" msgstr "Podatki profila" #: pan/gui/profiles-dialog.cc:147 msgid "_Profile Name:" msgstr "_Ime profila:" #: pan/gui/profiles-dialog.cc:150 msgid "Required Information" msgstr "Zahtevani podatki" #: pan/gui/profiles-dialog.cc:154 msgid "_Full Name:" msgstr "_Polno Ime:" #: pan/gui/profiles-dialog.cc:158 msgid "" "Your email address.\n" "Note that this has to match your PGP signature's address\n" "if you want your messages to be PGP-signed or encrypted correctly." msgstr "" "Elektronski poštni naslov.\n" "Ujemati se mora z naslovom podpisa PGP, če naj\n" "bodo sporočila pravilno podpisana ali šifrirana." #: pan/gui/profiles-dialog.cc:162 msgid "_Email Address:" msgstr "Naslov _elektronske pošte:" #: pan/gui/profiles-dialog.cc:164 msgid "_Post Articles via:" msgstr "P_ošilji prispevke preko:" #: pan/gui/profiles-dialog.cc:167 msgid "Signature" msgstr "Podpis" #: pan/gui/profiles-dialog.cc:170 msgid "_Use a Signature" msgstr "_Uporabi podpis" #: pan/gui/profiles-dialog.cc:174 msgid "Signature File" msgstr "Datoteka podpisa" #: pan/gui/profiles-dialog.cc:184 msgid "Text File" msgstr "Besedilna datoteka" #: pan/gui/profiles-dialog.cc:186 msgid "Text" msgstr "Besedilo" #: pan/gui/profiles-dialog.cc:188 msgid "Command" msgstr "Ukaz" #: pan/gui/profiles-dialog.cc:191 msgid "PGP Signature" msgstr "Podpis PGP" #: pan/gui/profiles-dialog.cc:196 msgid "Signature Type: " msgstr "Vrsta podpisa:" #: pan/gui/profiles-dialog.cc:227 msgid "Avatars" msgstr "Avatarji" #: pan/gui/profiles-dialog.cc:230 msgid "" "You can add an avatar icon to your articles with a Base64-encoded PNG.\n" "Add the Base64-encoded picture without the trailing “Face:”." msgstr "" "V članke lahko dodate ikono avatarja kot PNG, kodiran z Base64.\n" "Dodajte sliko, kodirano z Base64 brez sledilnega “Face:“." #: pan/gui/profiles-dialog.cc:232 msgid "_Face:" msgstr "_Obraz:" #: pan/gui/profiles-dialog.cc:236 msgid "" "You can add an avatar icon to your articles with a unique X-Face code.\n" "Add the code without the trailing \"X-Face:\" \n" " if it was generated by a helper program (for example http://www.dairiki.org/" "xface/xface.php)." msgstr "" "Prispevkom je mogoče dodati posebne podobe. Dodati je treba\n" "kodo s končnim \"X-Face:\", v kolikor je bila podoba ustvarjena\n" "s pomožnim programom (na primer http://www.dairiki.org/xface/xface.php)." #: pan/gui/profiles-dialog.cc:239 msgid "_X-Face:" msgstr "_Obraz:" #: pan/gui/profiles-dialog.cc:241 msgid "Optional Information" msgstr "Dodatni podatki" #: pan/gui/profiles-dialog.cc:246 msgid "" "When posting to Usenet, your article's Message-ID contains a domain name.\n" "You can set a custom domain name here, or leave it blank to let Pan use the " "domain name from your email address." msgstr "" "Pri pošiljanju na Usenet, ID sporočila prispevka pridobi ime domene. Na tem\n" "mestu je mogoče nastaviti ime po meri, ali pa pustiti polje prazno in " "prepustiti\n" "programu, da uporabi ime v obliki naslova elektronske pošte." #: pan/gui/profiles-dialog.cc:249 msgid "Message-ID _Domain Name:" msgstr "Ime _domene ID sporočila:" #: pan/gui/profiles-dialog.cc:253 #, c-format msgid "" "%i for Message-ID\n" "%a for Author and Address\n" "%n for Author name\n" "%d for Date" msgstr "" "%i za ID sporočila\n" "%a za avtorja in naslov\n" "%n za ime avtorja\n" "%d za datum" #: pan/gui/profiles-dialog.cc:254 msgid "_Attribution:" msgstr "P_ripis:" #. Translators: Do not localize Reply-To and the quote marks in \"Your Name\". #: pan/gui/profiles-dialog.cc:279 msgid "" "Extra headers to be included in your articles, such as\n" "Reply-To: \"Your Name\" \n" "Organization: Your Organization\n" msgstr "" "Dodatne glave, ki bodo vključene v vaše prispevke, kot npr.\n" "Reply-To: \"Vaše Ime\" \n" "Organization: Vaša organizacija\n" "\n" #: pan/gui/profiles-dialog.cc:289 msgid "E_xtra Headers:" msgstr "_Dodatne glave:" #: pan/gui/profiles-dialog.cc:334 msgid "Invalid email address." msgstr "Neveljaven naslov elektronske pošte." #: pan/gui/profiles-dialog.cc:335 msgid "Please use an address of the form joe@somewhere.org" msgstr "Uporabite naslov v obliki janez@nekje.org" #: pan/gui/profiles-dialog.cc:491 msgid "New Profile" msgstr "Nov profil" #: pan/gui/profiles-dialog.cc:537 msgid "Posting Profiles" msgstr "Pošiljanje profilov" #: pan/gui/profiles-dialog.cc:553 msgid "Profiles" msgstr "Profili" #: pan/gui/save-attach-ui.cc:44 #, c-format msgid "" "%g - group as one directory (alt.binaries.pictures.trains)\n" "%G - group as nested directory (/alt/binaries/pictures/trains)\n" "%s - Subject line excerpt\n" "%S - Subject line\n" "%n - Poster display name\n" "%e - Poster email address\n" "%d - Article timestamp\n" "\"/home/user/News/Pan/%g\" becomes\n" "\"/home/user/News/Pan/alt.binaries.pictures.trains\", and\n" "\"/home/user/News/Pan/%G\" becomes\n" "\"/home/user/News/Pan/alt/binaries/pictures/trains\"," msgstr "" "%g - skupina kot ena mapa (alt.binaries.pictures.trains)\n" "%G - skupina kot gnezdena mapa (/alt/binaries/pictures/trains)\n" "%s - odlomek vrstice zadeve\n" "%S - vrstica zadeve\n" "%n - pojavno ime pošiljatelja\n" "%e - elektronski naslov pošiljatelja\n" "%d - časovni žig prispevka\n" "\"/home/uporabnik/News/Pan/%g\" postane\n" "\"/home/uporabnik/News/Pan/alt.binaries.pictures.trains\" in\n" "\"/home/uporabnik/News/Pan/%G\" postane\n" "\"/home/uporabnik/News/Pan/alt/binaries/pictures/trains\"," #: pan/gui/save-attach-ui.cc:196 pan/gui/save-ui.cc:216 msgid "Add to the queue sorted by date posted" msgstr "Dodaj v vrsto razvrščeno po datumu pošiljanja" #: pan/gui/save-attach-ui.cc:197 pan/gui/save-ui.cc:217 msgid "Add to the front of the queue" msgstr "Dodaj na začetek vrste" #: pan/gui/save-attach-ui.cc:198 pan/gui/save-ui.cc:218 msgid "Add to the back of the queue" msgstr "Dodaj na konec vrste" #: pan/gui/save-attach-ui.cc:230 msgid "Pan: Save Attachments" msgstr "Pan: shrani priponke" #: pan/gui/save-attach-ui.cc:255 pan/gui/save-attach-ui.cc:273 #: pan/gui/save-ui.cc:270 pan/gui/save-ui.cc:291 msgid "_Location:" msgstr "_Mesto:" #: pan/gui/save-attach-ui.cc:259 pan/gui/save-ui.cc:274 msgid "Save Articles" msgstr "Shrani prispevke" #: pan/gui/save-attach-ui.cc:276 pan/gui/save-ui.cc:294 #, c-format msgid "_Group's path: %s" msgstr "Pot _skupine: %s" #: pan/gui/save-attach-ui.cc:287 pan/gui/save-ui.cc:309 msgid "_Priority:" msgstr "_Prednost:" #: pan/gui/save-ui.cc:44 #, c-format msgid "" "%g - group as one directory (alt.binaries.pictures.trains)\n" "%G - group as nested directory (/alt/binaries/pictures/trains)\n" "%s - subject line excerpt\n" "%S - subject line\n" "%n - Poster display name\n" "%e - Poster email address\n" "%d - Article timestamp\n" " \n" "\"/home/user/News/Pan/%g\" becomes\n" "\"/home/user/News/Pan/alt.binaries.pictures.trains\", and\n" "\"/home/user/News/Pan/%G\" becomes\n" "\"/home/user/News/Pan/alt/binaries/pictures/trains\"," msgstr "" "%g - skupina kot ena mapa (alt.binaries.pictures.trains)\n" "%G - skupina kot gnezdena mapa (/alt/binaries/pictures/trains)\n" "%s - odlomek vrstice zadeve\n" "%S - vrstica zadeve\n" "%n - pojavno ime pošiljatelja\n" "%e - elektronski naslov pošiljatelja\n" "%d - časovni žig prispevka\n" " \n" "\"/home/uporabnik/News/Pan/%g\" postane\n" "\"/home/uporabnik/News/Pan/alt.binaries.pictures.trains\" in\n" "\"/home/uporabnik/News/Pan/%G\" postane\n" "\"/home/uporabnik/News/Pan/alt/binaries/pictures/trains\"," #: pan/gui/save-ui.cc:207 msgid "Save attachments" msgstr "Shrani priloge" #: pan/gui/save-ui.cc:208 msgid "Save text" msgstr "Shrani besedilo" #: pan/gui/save-ui.cc:209 msgid "Save attachments and text" msgstr "Shrani priloge in besedilo" #: pan/gui/save-ui.cc:245 msgid "Pan: Save Articles" msgstr "Pan: Shrani prispevke" #: pan/gui/save-ui.cc:305 msgid "_Action:" msgstr "_Dejanje:" #: pan/gui/score-add-ui.cc:89 msgid "is more than" msgstr "je več kot" #: pan/gui/score-add-ui.cc:90 msgid "is at most" msgstr "je največ" #: pan/gui/score-add-ui.cc:112 msgid "increase the article's score by" msgstr "povečaj točke prispevka za" #: pan/gui/score-add-ui.cc:113 msgid "decrease the article's score by" msgstr "zmanjšaj točke prispevka za" #: pan/gui/score-add-ui.cc:114 msgid "set the article's score to" msgstr "nastavi točke prispevka na" #: pan/gui/score-add-ui.cc:115 msgid "watch the article (set its score to 9999)" msgstr "oglej si prispevek (nastavi točke na 9999)" #: pan/gui/score-add-ui.cc:116 msgid "ignore the article (set its score to -9999)" msgstr "prezri prispevek (nastavi točke na -9999)" #: pan/gui/score-add-ui.cc:141 msgid "References" msgstr "Sklici" #: pan/gui/score-add-ui.cc:142 msgid "Line Count" msgstr "Štetje vrstic" #: pan/gui/score-add-ui.cc:143 msgid "Byte Count" msgstr "Štetje bajtov" #: pan/gui/score-add-ui.cc:144 msgid "Crosspost Group Count" msgstr "Štetje navzkrižnih pošiljanj" #: pan/gui/score-add-ui.cc:145 msgid "Age (in days)" msgstr "Starost (v dneh)" #: pan/gui/score-add-ui.cc:167 msgid "for the next month" msgstr "za naslednji mesec" #: pan/gui/score-add-ui.cc:168 msgid "for the next six months" msgstr "za naslednjih šest mesecev" #: pan/gui/score-add-ui.cc:169 msgid "forever" msgstr "trajno" #: pan/gui/score-add-ui.cc:194 msgid "contains" msgstr "vsebuje" #: pan/gui/score-add-ui.cc:195 msgid "doesn't contain" msgstr "ne vsebuje" #: pan/gui/score-add-ui.cc:196 msgid "is" msgstr "je" #: pan/gui/score-add-ui.cc:197 msgid "isn't" msgstr "ni" #: pan/gui/score-add-ui.cc:198 msgid "starts with" msgstr "se začne z" #: pan/gui/score-add-ui.cc:199 msgid "ends with" msgstr "se konča z" #: pan/gui/score-add-ui.cc:200 msgid "matches regex" msgstr "se sklada z logičnim izrazom" #: pan/gui/score-add-ui.cc:481 msgid "Another rule already sets this article's score." msgstr "Drugo pravilo že določa točke tega prispevka." #: pan/gui/score-add-ui.cc:482 msgid "You may want to go back or delete the old rule." msgstr "Morda želite iti nazaj ali izbrisati staro pravilo." #: pan/gui/score-add-ui.cc:484 msgid "Back" msgstr "Nazaj" #: pan/gui/score-add-ui.cc:485 pan/gui/task-pane.cc:1040 msgid "Delete" msgstr "Izbriši" #: pan/gui/score-add-ui.cc:486 pan/gui/score-add-ui.cc:607 #: pan/gui/score-view-ui.cc:207 msgid "Add" msgstr "Dodaj" #: pan/gui/score-add-ui.cc:553 msgid "Add and Re_score" msgstr "Dodaj in _ponovno točkuj" #: pan/gui/score-add-ui.cc:602 pan/gui/score-add-ui.cc:622 msgid "New Scoring Rule" msgstr "Novo pravilo točkovanja" #: pan/gui/score-add-ui.cc:633 msgid "Group name" msgstr "Ime skupine" #: pan/gui/score-add-ui.cc:640 msgid "and" msgstr "in" #: pan/gui/score-view-ui.cc:55 msgid "Close and Re_score" msgstr "Zapri in _ponovno točkuj" #: pan/gui/score-view-ui.cc:153 #, c-format msgid "File %s, Lines %d - %d" msgstr "Datoteka %s, vrstice %d - %d" #: pan/gui/score-view-ui.cc:181 msgid "Pan: Article's Scores" msgstr "Pan: Točke prispevka" #: pan/gui/score-view-ui.cc:212 msgid "New Score" msgstr "Nove točke" #: pan/gui/score-view-ui.cc:217 msgid "Criteria" msgstr "Kriterij" #: pan/gui/score-view-ui.cc:240 msgid "Add a New Scoring Rule" msgstr "Dodaj novo pravilo točkovanja" #: pan/gui/score-view-ui.cc:247 msgid "Remove the Selected Scoring Rule" msgstr "Odstrani izbrano pravilo točkovanja" #: pan/gui/server-ui.cc:292 msgid "Please specify the server's address." msgstr "Navedite naslov strežnika." #: pan/gui/server-ui.cc:344 msgid "Import SSL Certificate (PEM Format) From File" msgstr "Uvozi potrdilo SSL (zapis PEM) iz datoteke" #. create the dialog #: pan/gui/server-ui.cc:381 pan/gui/server-ui.cc:996 msgid "Add a Server" msgstr "Dodaj strežnik" #: pan/gui/server-ui.cc:381 pan/gui/server-ui.cc:1002 msgid "Edit a Server's Settings" msgstr "Urejanje nastavitev strežnika" #: pan/gui/server-ui.cc:401 msgid "Location" msgstr "Mesto" #: pan/gui/server-ui.cc:405 msgid "The news server's actual address, e.g. \"news.mynewsserver.com\"." msgstr "Dejanski naslov strežnika novic, npr. »novice.mojstrežniknovic.com«." #: pan/gui/server-ui.cc:406 msgid "_Address:" msgstr "_Naslov:" #: pan/gui/server-ui.cc:411 msgid "" "The news server's port number. Typically 119 for unencrypted and 563 for " "encrypted connections (SSL/TLS)." msgstr "" "Številka vrat strežnika novic. Običajno je ta 119 za nešifrirane in 563 za " "šifrirane povezave (SSL/TLS)." #: pan/gui/server-ui.cc:412 msgid "Por_t:" msgstr "Vra_ta:" #: pan/gui/server-ui.cc:415 msgid "Login (if Required)" msgstr "Prijava (če je zahtevana)" #: pan/gui/server-ui.cc:419 msgid "_Username:" msgstr "_Uporabniško ime:" #: pan/gui/server-ui.cc:420 msgid "" "The username to give the server when asked. If your server doesn't require " "authentication, you can leave this blank." msgstr "" "Uporabniško ime za strežnik. V primeru, da vaš strežnik ne zahteva overitve, " "lahko to pustite prazno." #: pan/gui/server-ui.cc:424 msgid "_Password:" msgstr "_Geslo:" #: pan/gui/server-ui.cc:425 msgid "" "The password to give the server when asked. If your server doesn't require " "authentication, you can leave this blank." msgstr "" "Geslo za strežnik. V primeru, da vaš strežnik ne zahteva overitve, lahko to " "pustite prazno." #: pan/gui/server-ui.cc:428 msgid "Settings" msgstr "Nastavitve" #: pan/gui/server-ui.cc:435 msgid "Connection _Limit:" msgstr "_Omejitev povezav:" #: pan/gui/server-ui.cc:439 msgid "After Two Weeks" msgstr "Po dveh tednih" #: pan/gui/server-ui.cc:440 msgid "After One Month" msgstr "Po enem mesecu" #: pan/gui/server-ui.cc:441 msgid "After Two Months" msgstr "Po dveh mesecih" #: pan/gui/server-ui.cc:442 msgid "After Three Months" msgstr "Po treh mesecih" #: pan/gui/server-ui.cc:443 msgid "After Six Months" msgstr "Po šestih mesecih" #: pan/gui/server-ui.cc:444 msgid "Never Expire Old Articles" msgstr "Stari prispevki nikoli ne pretečejo" #: pan/gui/server-ui.cc:458 msgid "E_xpire Old Articles:" msgstr "P_retek starih prispevkov:" #: pan/gui/server-ui.cc:462 msgid "Primary" msgstr "Osnovni" #: pan/gui/server-ui.cc:463 msgid "Fallback" msgstr "Povratni" #: pan/gui/server-ui.cc:477 msgid "Server Rank:" msgstr "Stopnja strežnika:" #: pan/gui/server-ui.cc:481 msgid "" "Fallback servers are used for articles that can't be found on the " "primaries. One common approach is to use free servers as primaries and " "subscription servers as fallbacks." msgstr "" "Povratni strežniki so uporabljeni za prispevke, ki jih ni mogoče najti na " "osnovnih strežnikih. Pogost pristop je uporaba brezplačnih strežnikov kot " "osnovne in plačljivih strežnikov kot povratne." #: pan/gui/server-ui.cc:486 msgid "Disable Compression (N/A)" msgstr "Onemogoči stiskanje (N/A)" #: pan/gui/server-ui.cc:487 msgid "XZVER Compression (Astraweb)" msgstr "Stiskanje XZVER (Astraweb)" #: pan/gui/server-ui.cc:488 msgid "GZIP Compression (Giganews etc.)" msgstr "Stiskanje GZIP (Giganews itd.)" #: pan/gui/server-ui.cc:502 msgid "Header Compression:" msgstr "Stiskanje glave:" #: pan/gui/server-ui.cc:508 msgid "Security" msgstr "Varnost" #: pan/gui/server-ui.cc:513 msgid "Use Unsecure (Plaintext) Connections" msgstr "Uporabi nezavarovane povezave (navadno besedilo)" #: pan/gui/server-ui.cc:514 msgid "Use Secure SSL Connections" msgstr "Uporabi varne povezave SSL" #: pan/gui/server-ui.cc:529 msgid "TLS (SSL) Settings:" msgstr "Nastavitve TLS (SSL):" #: pan/gui/server-ui.cc:534 msgid "" "You can enable/disable secure SSL/TLS connections here. If you enable SSL/" "TLS, your data is encrypted and secure. It is encouraged to enable SSL/TLS " "for privacy reasons." msgstr "" "Določiti je mogoče uporabo/neuporabo varne povezave SSL/TLS. V kolikor je " "možnost SSL/TLS omogočena, so podatki šifrirani in varni. Priporočeno je " "uporabiti to možnost zaradi zagotavljanja zasebnosti." #: pan/gui/server-ui.cc:539 msgid "Always trust this server's certificate" msgstr "Vedno zaupaj potrdilu tega strežnika" #: pan/gui/server-ui.cc:724 #, c-format msgid "Really delete \"%s\"?" msgstr "Ali naj se \"%s\" resnično izbriše?" #: pan/gui/server-ui.cc:813 msgid "No information available." msgstr "Podatki niso na voljo." #: pan/gui/server-ui.cc:823 #, c-format msgid "Server Certificate for '%s'" msgstr "Strežniško potrdilo za '%s'" #: pan/gui/server-ui.cc:922 #, c-format msgid "Really delete certificate for \"%s\"?" msgstr "Ali res želite izbrisati potrdilo za \"%s\"?" #. dialog #: pan/gui/server-ui.cc:949 pan/gui/server-ui.cc:970 pan/gui/server-ui.cc:1068 msgid "Servers" msgstr "Strežniki" #: pan/gui/server-ui.cc:1009 msgid "Remove a Server" msgstr "Odstrani strežnik" #. dialog #: pan/gui/server-ui.cc:1042 msgid "SSL Certificates" msgstr "Potrdila SSL" #: pan/gui/server-ui.cc:1063 msgid "Certificates" msgstr "Potrdila" #: pan/gui/server-ui.cc:1094 msgid "Import Certificate" msgstr "Uvozi potrdilo" #: pan/gui/server-ui.cc:1100 msgid "Inspect Certificate" msgstr "Preuči potrdilo" #: pan/gui/server-ui.cc:1107 msgid "Remove Certificate" msgstr "Odstrani potrdilo" #: pan/gui/task-pane.cc:124 #, c-format msgid "" "\n" "Upload\n" "\n" "Subject: \"%s\"\n" "From: %s\n" "Groups: %s\n" "Sourcefile: %s\n" msgstr "" "\n" "Pošlji\n" "\n" "Zadeva: \"%s\"\n" "Od: %s\n" "Skupine: %s\n" "Izvorna datoteka: %s\n" #: pan/gui/task-pane.cc:136 #, c-format msgid "" "\n" "Download\n" "\n" "Subject: \"%s\"\n" "From: %s\n" "Date: %s\n" "Groups: %s\n" "Save Path: %s\n" msgstr "" "\n" "Prejmi\n" "\n" "Zadeva: \"%s\"\n" "Od: %s\n" "Datum: %s\n" "Skupine: %s\n" "Pot shranjevanja: %s\n" #: pan/gui/task-pane.cc:138 msgid "unknown" msgstr "neznano" #: pan/gui/task-pane.cc:306 msgid "Choose New Destination for Selected Tasks" msgstr "Izberite nov cilj za izbrane naloge" #: pan/gui/task-pane.cc:310 msgid "Save" msgstr "Shrani" #: pan/gui/task-pane.cc:460 #, c-format msgid "Pan: Tasks (%d Queued, %d Running, %d Stopped)" msgstr "Pan: naloge (%d v vrsti, %d v teku, %d zaustavljenih)" #: pan/gui/task-pane.cc:462 #, c-format msgid "Pan: Tasks (%d Queued, %d Running)" msgstr "Pan: naloge (%d v vrsti, %d v teku)" #: pan/gui/task-pane.cc:464 msgid "Pan: Tasks" msgstr "Pan: naloge" #: pan/gui/task-pane.cc:489 #, c-format msgid "%lu selected, %s" msgstr "%lu izbrano, %s" #: pan/gui/task-pane.cc:553 msgid "Running" msgstr "Teče" #: pan/gui/task-pane.cc:554 msgid "Decoding" msgstr "Dekodiranje" #: pan/gui/task-pane.cc:556 msgid "Queued for Decode" msgstr "V vrsti za dekodiranje" #: pan/gui/task-pane.cc:557 msgid "Queued for Encode" msgstr "V vrsti za kodiranje" #: pan/gui/task-pane.cc:558 msgid "Queued" msgstr "V vrsti" #: pan/gui/task-pane.cc:559 msgid "Stopped" msgstr "Zaustavljeno" #: pan/gui/task-pane.cc:560 msgid "Removing" msgstr "Odstranjevanje" #: pan/gui/task-pane.cc:589 #, c-format msgid "%d%% Done" msgstr "%d%% Končano" #: pan/gui/task-pane.cc:595 #, c-format msgid "%d:%02d:%02d Remaining (%d @ %lu KiB/s)" msgstr "%d:%02d:%02d Preostalo (%d pri %lu KiB/s)" #: pan/gui/task-pane.cc:690 pan/gui/task-pane.cc:691 msgid "Move To Top" msgstr "Premakni na vrh" #: pan/gui/task-pane.cc:695 pan/gui/task-pane.cc:696 msgid "Move To Bottom" msgstr "Premakni na dno" #: pan/gui/task-pane.cc:700 pan/gui/task-pane.cc:701 msgid "Show Task Information" msgstr "Prikaz podrobnosti naloge" #: pan/gui/task-pane.cc:705 pan/gui/task-pane.cc:706 msgid "Stop Task" msgstr "Zaustavi nalogo" #: pan/gui/task-pane.cc:710 pan/gui/task-pane.cc:711 msgid "Delete Task" msgstr "Izbriši nalogo" #: pan/gui/task-pane.cc:715 pan/gui/task-pane.cc:716 msgid "Restart Task" msgstr "Ponovno zaženi nalogo" #: pan/gui/task-pane.cc:720 pan/gui/task-pane.cc:721 msgid "Change Download Destination" msgstr "Spremeni cilj prejema s strežnika" #: pan/gui/task-pane.cc:1016 msgid "_Online" msgstr "_Povezano" #: pan/gui/task-pane.cc:1026 msgid "Move up" msgstr "Premakni navzgor" #: pan/gui/task-pane.cc:1027 msgid "Move task up" msgstr "Pomakni nalogo navzgor" #: pan/gui/task-pane.cc:1028 msgid "Move to top" msgstr "Premakni na vrh" #: pan/gui/task-pane.cc:1029 msgid "Move task to top of the download queue" msgstr "Premakni nalogo na vrh čakalne vrste za prenos" #: pan/gui/task-pane.cc:1031 msgid "Move down" msgstr "Premakni navzdol" #: pan/gui/task-pane.cc:1032 msgid "Move task down" msgstr "Pomakni nalogo navzdol" #: pan/gui/task-pane.cc:1033 msgid "Move to bottom" msgstr "Premakni na dno" #: pan/gui/task-pane.cc:1034 msgid "Move task to the bottom of the download queue" msgstr "Premakni nalogo na dno čakalne vrste za prenos" #: pan/gui/task-pane.cc:1036 msgid "Restart" msgstr "Ponovno zaženi" #: pan/gui/task-pane.cc:1037 msgid "Restart Tasks" msgstr "Znova začni naloge" #: pan/gui/task-pane.cc:1038 msgid "Stop" msgstr "Ustavi" #: pan/gui/task-pane.cc:1039 msgid "Stop Tasks" msgstr "Zaustavi naloge" #: pan/gui/task-pane.cc:1041 msgid "Delete Tasks" msgstr "Izbriši naloge" #: pan/gui/task-pane.cc:1043 msgid "Close" msgstr "Zapri" #: pan/gui/task-pane.cc:1047 msgid "Show popups" msgstr "Pokaži pojavna okna" #: pan/gui/url.cc:143 #, c-format msgid "Error starting URL: %s (Command was: %s)" msgstr "Napaka začenjanja URLja: %s (Ukaz je bil %s)" #: pan/tasks/decoder.cc:124 #, c-format msgid "Couldn't save file \"%s\": %s" msgstr "Datoteke \"%s\" ni mogoče shraniti: %s" #: pan/tasks/decoder.cc:146 pan/tasks/encoder.cc:146 msgid "Error initializing uulib" msgstr "Napaka med zaganjanjem uulib" #: pan/tasks/decoder.cc:166 pan/tasks/socket-impl-gio.cc:360 #: pan/tasks/socket-impl-openssl.cc:641 #, c-format msgid "Error reading from %s: %s" msgstr "Napaka med branjem iz %s: %s" #: pan/tasks/decoder.cc:206 #, c-format msgid "Saved \"%s\"" msgstr "Shranjeno \"%s\"" #: pan/tasks/decoder.cc:213 #, c-format msgid "" "Error saving \"%s\":\n" "%s." msgstr "" "Napaka med shranjevanjem \"%s\":\n" "%s" #: pan/tasks/decoder.cc:326 pan/tasks/task-article.cc:351 #, c-format msgid "Decoding %s" msgstr "Dekodiranje %s" #: pan/tasks/encoder.cc:113 pan/tasks/encoder.cc:164 #, c-format msgid "Error loading %s from cache." msgstr "Prišlo je do napake med nalaganjem %s iz predpomnilnika." #: pan/tasks/encoder.cc:186 #, c-format msgid "Error encoding %s: %s" msgstr "Napaka pri kodiranju %s: %s" #: pan/tasks/encoder.cc:276 #, c-format msgid "Encoding %s" msgstr "Kodiranje %s" #: pan/tasks/nntp.cc:176 #, c-format msgid "%s requires a username, but none is set." msgstr "%s zahteva uporabniško ime, a ni nastavljeno." #: pan/tasks/nntp.cc:189 #, c-format msgid "%s requires a password, but none is set." msgstr "%s zahteva geslo, a ni nastavljeno." #: pan/tasks/nntp.cc:275 #, c-format msgid "Sending \"%s\" to %s returned an error: %s" msgstr "Pošiljanje \"%s\" %s je vrnilo napako: %s" #: pan/tasks/nntp.cc:298 #, c-format msgid "Sending \"%s\" to %s returned an unrecognized response: \"%s\"" msgstr "Pošiljanje \"%s\" %s je vrnilo nepoznan odziv: \"%s\"" #: pan/tasks/nntp-pool.cc:241 #, c-format msgid "Unable to connect to \"%s\"" msgstr "Z \"%s\" se ni mogoče povezati" #: pan/tasks/queue.cc:778 pan/tasks/queue.cc:806 pan/tasks/queue.cc:833 msgid "No space left on device." msgstr "Na napravi primanjkuje prostora." #: pan/tasks/socket-impl-gio.cc:173 pan/tasks/socket-impl-gio.cc:211 #: pan/tasks/socket-impl-openssl.cc:213 pan/tasks/socket-impl-openssl.cc:251 #, c-format msgid "Error connecting to \"%s\"" msgstr "Napaka med povezovanjem z \"%s\"" #: pan/tasks/socket-impl-gio.cc:359 pan/tasks/socket-impl-openssl.cc:640 msgid "Unknown Error" msgstr "Neznana napaka" #: pan/tasks/task-article.cc:59 pan/tasks/task-article.cc:157 #, c-format msgid "Saving %s" msgstr "Shranjevanje %s" #: pan/tasks/task-article.cc:61 #, c-format msgid "Reading %s" msgstr "Branje %s" #: pan/tasks/task-article.cc:323 #, c-format msgid "Article \"%s\" is incomplete -- the news server(s) don't have part %s" msgstr "Prispevek \"%s\" je nepopoln -- strežnik novic nima dela %s" #: pan/tasks/task-groups.cc:41 #, c-format msgid "Getting group list from \"%s\"" msgstr "Pridobivanje seznama skupin od \"%s\"" #: pan/tasks/task-groups.cc:134 #, c-format msgid "Fetched %lu Groups" msgstr "Prejetih je bilo %lu skupin" #: pan/tasks/task-post.cc:33 #, c-format msgid "Posting \"%s\"" msgstr "Pošiljanje \"%s\"" #: pan/tasks/task-post.cc:74 #, c-format msgid "Posting of \"%s\" failed: %s" msgstr "Objava \"%s\" ni uspela: %s" #: pan/tasks/task-post.cc:79 #, c-format msgid "Posting of \"%s\" successful: %s" msgstr "Objava \"%s\" je uspela: %s" #: pan/tasks/task-upload.cc:55 #, c-format msgid "Uploading %s" msgstr "Pošiljanje %s" #: pan/tasks/task-upload.cc:249 #, c-format msgid "Uploading %s - Part %d of %d" msgstr "Prenašanje %s na strežnik - %d. del od %d" #: pan/tasks/task-upload.cc:251 #, c-format msgid "Uploading message body with subject \"%s\"" msgstr "Pošiljanje besedila sporočila z zadevo \"%s\"" #: pan/tasks/task-upload.cc:308 #, c-format msgid "Posting of file %s (part %d of %d) failed: No posts allowed by server." msgstr "" "Objava datoteke %s (%d. del %d) ni uspela: strežnik ne dovoljuje objav." #: pan/tasks/task-upload.cc:317 #, c-format msgid "Posting of file %s (part %d of %d) failed: %s" msgstr "Objava datoteke %s (%d. del od %d) ni uspela: %s" #: pan/tasks/task-upload.cc:328 pan/tasks/task-upload.cc:335 #, c-format msgid "Posting of file %s (part %d of %d) successful: %s" msgstr "Objava datoteke %s (%d. del od %d) je uspela: %s" #: pan/tasks/task-upload.cc:345 #, c-format msgid "Posting of file %s successful: %s" msgstr "Objava datoteke %s je uspela: %s" #: pan/tasks/task-upload.cc:349 #, c-format msgid "" "Posting of file %s not completely successful: Check the log (right-click " "list item)." msgstr "" "Objava datoteke %s ni v celoti uspela: preverite dnevnik (z desnim klikom na " "element)." #: pan/tasks/task-upload.cc:368 #, c-format msgid "" "Posting of file %s not successful: Check the log (right-click list item)." msgstr "" "Objava datoteke %s ni uspela: preverite dnevnik (z desnim klikom na element)." #: pan/tasks/task-xover.cc:82 #, c-format msgid "Getting all headers for \"%s\"" msgstr "Pridobivanje vseh glav za \"%s\"" #: pan/tasks/task-xover.cc:85 #, c-format msgid "Getting new headers for \"%s\"" msgstr "Pridobivanje novih glav za \"%s\"" #. SAMPLE #: pan/tasks/task-xover.cc:89 #, c-format msgid "Sampling headers for \"%s\"" msgstr "Vzorčenje glav za \"%s\"" #: pan/tasks/task-xover.cc:454 #, c-format msgid "%s (%lu parts, %lu articles)" msgstr "%s (%lu delov, %lu prispevkov)" #: pan/tasks/task-xover.cc:528 #, c-format msgid "Getting new headers for \"%s\" done." msgstr "Pridobivanje glav za \"%s\" je končano." #: pan/usenet-utils/filter-info.cc:215 msgid "article doesn't have attachments" msgstr "prispevek ne vsebuje prilog" #: pan/usenet-utils/filter-info.cc:219 msgid "the article has attachments" msgstr "prispevek vsebuje priloge" #: pan/usenet-utils/filter-info.cc:223 msgid "the article isn't cached locally" msgstr "prispevek ni krajevno predpomnjen" #: pan/usenet-utils/filter-info.cc:227 msgid "the article is cached locally" msgstr "prispevek je krajevno predpomnjen" #: pan/usenet-utils/filter-info.cc:231 msgid "the article wasn't posted by you" msgstr "prispevka niste objavili vi" #: pan/usenet-utils/filter-info.cc:235 msgid "the article was posted by you" msgstr "prispevek ste objavili vi" #: pan/usenet-utils/filter-info.cc:239 msgid "the article has been read" msgstr "prispevek je bil prebran" #: pan/usenet-utils/filter-info.cc:243 msgid "the article hasn't been read" msgstr "prispevek ni bil prebran" # multiple_plural #: pan/usenet-utils/filter-info.cc:247 #, c-format msgid "the article is less than %ld bytes long" msgstr "prispevek je dolg manj kot %ld bajtov" # multiple_plural #: pan/usenet-utils/filter-info.cc:252 #, c-format msgid "the article is at least %ld bytes long" msgstr "prispevek je dolg vsaj %ld bajtov" # multiple_plural #: pan/usenet-utils/filter-info.cc:257 #, c-format msgid "the article is less than %ld lines long" msgstr "prispevek je dolg manj kot %ld vrstic" # multiple_plural #: pan/usenet-utils/filter-info.cc:262 #, c-format msgid "the article is at least %ld lines long" msgstr "prispevek je dolg več kot %ld vrstic" # multiple_plural #: pan/usenet-utils/filter-info.cc:267 #, c-format msgid "the article is less than %ld days old" msgstr "prispevek je star manj kot %ld dni" # multiple_plural #: pan/usenet-utils/filter-info.cc:272 #, c-format msgid "the article is at least %ld days old" msgstr "prispevek je star vsaj %ld dni" # multiple_plural #: pan/usenet-utils/filter-info.cc:277 #, c-format msgid "the article was posted to less than %ld groups" msgstr "prispevek je bil objavljen v manj kot %ld skupinah" # multiple_plural #: pan/usenet-utils/filter-info.cc:282 #, c-format msgid "the article was posted to at least %ld groups" msgstr "prispevek je bil objavljen vsaj v %ld skupinah" # multiple_plural #: pan/usenet-utils/filter-info.cc:287 #, c-format msgid "the article's score is less than %ld" msgstr "prispevek ima manj kot %ld točk" # multiple_plural #: pan/usenet-utils/filter-info.cc:292 #, c-format msgid "the article's score is %ld or higher" msgstr "prispevek ima %ld ali več točk" #: pan/usenet-utils/filter-info.cc:301 pan/usenet-utils/filter-info.cc:311 #, c-format msgid "%s doesn't contain \"%s\"" msgstr "%s ne vsebuje \"%s\"" #: pan/usenet-utils/filter-info.cc:302 pan/usenet-utils/filter-info.cc:312 #, c-format msgid "%s isn't \"%s\"" msgstr "%s ni \"%s\"" #: pan/usenet-utils/filter-info.cc:303 pan/usenet-utils/filter-info.cc:313 #, c-format msgid "%s doesn't begin with \"%s\"" msgstr "%s se ne začne z \"%s\"" #: pan/usenet-utils/filter-info.cc:304 pan/usenet-utils/filter-info.cc:314 #, c-format msgid "%s doesn't end with \"%s\"" msgstr "%s se ne konča z \"%s\"" #: pan/usenet-utils/filter-info.cc:305 pan/usenet-utils/filter-info.cc:315 #, c-format msgid "%s doesn't match the regex \"%s\"" msgstr "%s se ne ujema z logičnim izrazom \"%s\"" #: pan/usenet-utils/filter-info.cc:327 #, c-format msgid "%s contains \"%s\"" msgstr "%s vsebuje \"%s\"" #: pan/usenet-utils/filter-info.cc:328 #, c-format msgid "%s is \"%s\"" msgstr "%s je \"%s\"" #: pan/usenet-utils/filter-info.cc:329 #, c-format msgid "%s begins with \"%s\"" msgstr "%s se začne z \"%s\"" #: pan/usenet-utils/filter-info.cc:330 #, c-format msgid "%s ends with \"%s\"" msgstr "% se konča z \"%s\"" #: pan/usenet-utils/filter-info.cc:331 #, c-format msgid "%s matches the regex \"%s\"" msgstr " %s se sklada z logičnim izrazom \"%s\"" #: pan/usenet-utils/filter-info.cc:337 msgid "Any of these tests fail:" msgstr "Katerikoli od teh preizkusov je spodletel:" #: pan/usenet-utils/filter-info.cc:344 msgid "All of these tests pass:" msgstr "Vsi preizkusi so bili uspešno opravljeni:" #: pan/usenet-utils/filter-info.cc:351 msgid "None of these tests pass:" msgstr "Noben od teh preizkusov ni bil uspešno opravljen:" #: pan/usenet-utils/filter-info.cc:358 msgid "Any of these tests pass:" msgstr "Katerikoli od teh preizkusov je bil uspešno opravljen:" #: pan/usenet-utils/gnksa.cc:880 #, c-format msgid "No email address provided; generating message-id with domain \"%s\"" msgstr "" "Naslov elektronske pošte ni bil podan; ustvarjanje id sporočila z domeno \"%s" "\"" #: pan/usenet-utils/message-check.cc:122 msgid "Warning: Reply seems to be top-posted." msgstr "Opozorilo: videti je, da je odgovor visoko objavljen." #: pan/usenet-utils/message-check.cc:143 msgid "Warning: The signature marker should be \"-- \", not \"--\"." msgstr "Opozorilo: označevalnik podpisa bi moral biti \"-- \" , ne \"--\"." #: pan/usenet-utils/message-check.cc:160 msgid "Warning: Signature prefix with no signature." msgstr "Opozorilo: predpona podpisa brez podpisa." #: pan/usenet-utils/message-check.cc:165 msgid "Warning: Signature is more than 4 lines long." msgstr "Opozorilo: podpis je daljši kot 4 vrstice." #: pan/usenet-utils/message-check.cc:170 msgid "Warning: Signature is more than 80 characters wide." msgstr "Opozorilo: podpis je širok več kot 80 znakov." #: pan/usenet-utils/message-check.cc:196 #, c-format msgid "Warning: %d line is more than 80 characters wide." msgid_plural "Warning: %d lines are more than 80 characters wide." msgstr[0] "Opozorilo: %d vrstic je širokih več kot 80 znakov." msgstr[1] "Opozorilo: %d vrstica je široka več kot 80 znakov." msgstr[2] "Opozorilo: %d vrstici sta široki več kot 80 znakov." msgstr[3] "Opozorilo: %d vrstice so široke več kot 80 znakov." #: pan/usenet-utils/message-check.cc:221 msgid "Error: Message is empty." msgstr "Napaka: sporočilo je prazno." #: pan/usenet-utils/message-check.cc:256 msgid "Warning: The message is entirely quoted text!" msgstr "Opozorilo: sporočilo je v celoti citirano besedilo!" #: pan/usenet-utils/message-check.cc:257 msgid "Warning: The message is mostly quoted text." msgstr "Opozorilo: sporočilo je večinoma citirano besedilo." #: pan/usenet-utils/message-check.cc:307 msgid "Error: Message appears to have no new content." msgstr "Napaka: videti je, da sporočilo nima nove vsebine." #: pan/usenet-utils/message-check.cc:342 pan/usenet-utils/message-check.cc:381 #, c-format msgid "" "Warning: The posting profile's server doesn't carry newsgroup\n" "\t\"%s\".\n" "\tIf the group name is correct, switch profiles in the \"From:\"\n" "\tline or edit the profile with \"Edit|Manage Posting Profiles\"." msgstr "" "Opozorilo: strežnik profila objavljanja ne vsebuje novičarske skupine\n" "\t\"%s\".\n" "\t V primeru, da je ime skupine pravilo, zamenjajte profila v vrstici\n" "\t\"Od:\" ali uredite profil z \"Uredi|Upravljanje profilov pošiljanja\"." #: pan/usenet-utils/message-check.cc:353 msgid "Warning: Following-Up to too many groups." msgstr "Opozorilo: navezovanje na preveliko število skupin." #: pan/usenet-utils/message-check.cc:364 msgid "Error: No Subject specified." msgstr "Napaka: zadeva ni določena." #: pan/usenet-utils/message-check.cc:393 #, c-format msgid "Warning: Group \"%s\" is read-only." msgstr "Opozorilo: skupina \"%s\" je le za branje." #: pan/usenet-utils/message-check.cc:402 msgid "Error: Posting to a very large number of groups." msgstr "Napaka: pošiljanje v zelo veliko število skupin." #: pan/usenet-utils/message-check.cc:407 msgid "Warning: Posting to a large number of groups." msgstr "Opozorilo: pošiljanje v veliko število skupin." #: pan/usenet-utils/message-check.cc:414 msgid "Warning: Crossposting without setting Followup-To header." msgstr "Opozorilo: navzkrižno pošiljanje brez nastavitve glave navezave." #: pan/usenet-utils/message-check.cc:439 msgid "Error: Bad email address." msgstr "Napaka: slab naslov elektronske pošte." #: pan/usenet-utils/message-check.cc:448 msgid "Warning: Most newsgroups frown upon HTML posts." msgstr "" "Opozorilo: večina novičarskih skupin zavrača objavo HTML oblikovanih novic." #: pan/usenet-utils/message-check.cc:484 msgid "Error: No Recipients." msgstr "Napaka: ni prejemnikov." #: pan/usenet-utils/scorefile.cc:310 #, c-format msgid "Error reading score in %*.*s, line %d: unexpected line." msgstr "Napaka med branjem točk v %*.*s, vrstica %d: nepričakovana vrstica." #: pan/usenet-utils/scorefile.cc:442 #, c-format msgid "" "Error reading score in %*.*s, line %d: expected 'Expires: MM/DD/YYYY' or " "'Expires: DD-MM-YYYY'." msgstr "" "Napaka med branjem točk v %*.*s, vrstica %d: pričakovano 'Preteče: MM/DD/" "YYYY' ali 'Preteče: DD-MM-YYYY'." #: pan/usenet-utils/scorefile.cc:452 #, c-format msgid "Expired old score from %*.*s, line %d" msgstr "Pretečene stare točke iz %*.*s, vrstica %d" #: pan/usenet-utils/scorefile.cc:589 #, c-format msgid "Read %lu scoring rules in %lu sections from \"%s\"" msgstr "Prebranih je bilo %lu pravil točkovanja v %lu odsekih iz \"%s\"" #: pan/usenet-utils/ssl-utils.cc:172 #, c-format msgid "Error printing the server certificate for '%s'" msgstr "Napaka pri tiskanju strežniškega potrdila za '%s'" #: pan/usenet-utils/ssl-utils.cc:191 #, c-format msgid "" "The current server '%s' sent this security certificate:\n" "\n" msgstr "" "Trenutni strežnik '%s' je poslal varnostno potrdilo:\n" "\n" #: pan/usenet-utils/ssl-utils.cc:197 #, c-format msgid "" "Certificate information for server '%s':\n" "\n" msgstr "" "Podatki o potrdilu za strežnik '%s':\n" "\n" #: pan/usenet-utils/ssl-utils.cc:202 #, c-format msgid "" "%sIssuer information:\n" "%s\n" "Valid until: %s\n" "\n" "Not valid before: %s\n" "\n" msgstr "" "%sPodatki o izdajatelju\n" "%s\n" "Veljavno do: %s\n" "\n" "Neveljavno pred: %s\n" "\n" #: pan/usenet-utils/text-massager.cc:397 msgid "> [quoted text muted]" msgstr "> [navedeno besedilo je utišano]" #: pan/usenet-utils/text-massager.cc:579 msgid "no_name" msgstr "brez_imena" #: pan/usenet-utils/text-massager.cc:580 msgid "no_mail" msgstr "brez_elektronskega_naslova" pan-0.162/po/sq.po000066400000000000000000003543341475412772400137320ustar00rootroot00000000000000# Përkthimi i mesazheve të pan në shqip # This file is distributed under the same license as the Pan package. # Copyright (C) 2004 Free Software Foundation, Inc. # Laurent Dhima , 2004. # msgid "" msgstr "" "Project-Id-Version: pan HEAD\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-04-04 20:58+0200\n" "PO-Revision-Date: 2004-09-03 13:13+0200\n" "Last-Translator: Laurent Dhima \n" "Language-Team: Albanian \n" "Language: sq\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../pan.desktop.in.h:1 msgid "Pan Newsreader" msgstr "Pan - Lexuesi i Lajmeve" #: ../pan.desktop.in.h:2 #, fuzzy msgid "Read and Post Usenet Articles" msgstr "Lexo Vazhdo Artikull" #: ../pan/data/article-cache.cc:143 ../pan/data/encode-cache.cc:62 #, fuzzy, c-format msgid "Error opening directory: \"%s\": %s" msgstr "Gabim" #: ../pan/data/article-cache.cc:231 ../pan/data/article-cache.cc:242 #: ../pan/data-impl/data-io.cc:187 ../pan/data-impl/data-io.cc:211 #: ../pan/gui/post-ui.cc:1639 #, fuzzy, c-format msgid "Unable to save \"%s\" %s" msgstr "grupi" #: ../pan/data/article-cache.cc:355 #, fuzzy, c-format msgid "Error opening file \"%s\" %s" msgstr "Gabim" #: ../pan/data/article-cache.cc:386 ../pan/data-impl/profiles.cc:174 #: ../pan/data-impl/server.cc:436 ../pan/general/file-util.cc:298 #: ../pan/gui/post-ui.cc:609 ../pan/gui/task-pane.cc:691 #, fuzzy, c-format msgid "Error reading file \"%s\": %s" msgstr "Gabim" #: ../pan/data/cert-store.cc:238 #, fuzzy, c-format msgid "Error opening SSL certificate directory: \"%s\": %s" msgstr "Gabim" #: ../pan/data/cert-store.cc:270 #, c-format msgid "Succesfully added %d SSL PEM certificate(s) to Certificate Store." msgstr "" #. load_group_descriptions (*_data_io); #: ../pan/data-impl/data-impl.cc:109 #, c-format msgid "Loaded data backend in %.1f seconds" msgstr "" #: ../pan/data-impl/data-impl.cc:140 msgid "Pan newsreader server passwords" msgstr "" #: ../pan/data-impl/groups.cc:94 #, fuzzy, c-format msgid "Skipping newsrc file for server \"%s\"" msgstr "i ri server" #: ../pan/data-impl/headers.cc:606 #, fuzzy, c-format msgid "Expired %lu old articles from \"%s\"" msgstr "Skaduar" #: ../pan/data-impl/headers.cc:613 #, fuzzy, c-format msgid "" "Unsupported data version for %s headers: %d.\n" "Are you running an old version of Pan by accident?" msgstr "versioni për në punim e sipër versioni nga Pan nga?" #: ../pan/data-impl/headers.cc:628 #, fuzzy, c-format msgid "Loaded %lu articles for \"%s\" in %.1f seconds (%.0f per second)" msgstr "për grupi në sekonda" #: ../pan/data-impl/headers.cc:857 #, fuzzy, c-format msgid "" "Saved %lu parts, %lu articles in \"%s\" in %.1f seconds (%.0f articles/sec)" msgstr "në në sekonda" #: ../pan/data-impl/headers.cc:1173 #, fuzzy, c-format msgid "Added %lu articles to %s." msgstr "Skaduar" #: ../pan/data-impl/server.cc:234 #, c-format msgid "There seems to be no Password set for Server %s." msgstr "" #: ../pan/data-impl/server.cc:238 msgid "The Gnome keyring denied access to the Passwords." msgstr "" #: ../pan/data-impl/xover.cc:239 #, fuzzy, c-format msgid "Error reading from %s: unknown group \"%s\"" msgstr "Gabim socket" #. build the locale strings #: ../pan/general/e-util.cc:213 msgid "%l:%M %p" msgstr "" #: ../pan/general/e-util.cc:214 msgid "Today %l:%M %p" msgstr "" #: ../pan/general/e-util.cc:215 msgid "%a %l:%M %p" msgstr "" #: ../pan/general/e-util.cc:216 msgid "%b %d %l:%M %p" msgstr "" #: ../pan/general/e-util.cc:217 msgid "%b %d %Y" msgstr "" #: ../pan/general/e-util.cc:242 msgid "?" msgstr "" #: ../pan/general/text-match.cc:193 #, fuzzy, c-format msgid "Can't use regular expression \"%s\": %s" msgstr "i rregullt shprehje" #: ../pan/general/utf8-utils.cc:213 msgid "Couldn't determine article encoding. Non-UTF8 characters were removed." msgstr "" #: ../pan/gui/actions.cc:274 ../pan/gui/post-ui.cc:417 #, fuzzy msgid "_File" msgstr "/_File" #: ../pan/gui/actions.cc:275 ../pan/gui/post-ui.cc:418 #, fuzzy msgid "_Edit" msgstr "/_Ndrysho" #: ../pan/gui/actions.cc:276 ../pan/gui/prefs-ui.cc:1064 #, fuzzy msgid "_Layout" msgstr "Planimetria" #: ../pan/gui/actions.cc:277 #, fuzzy msgid "_Group Pane" msgstr "Grupi" #: ../pan/gui/actions.cc:278 #, fuzzy msgid "_Header Pane" msgstr "Kreu i faqes" #: ../pan/gui/actions.cc:279 #, fuzzy msgid "_Body Pane" msgstr "Trupi" #: ../pan/gui/actions.cc:280 #, fuzzy msgid "_View" msgstr "/_Paraqitja" #: ../pan/gui/actions.cc:281 #, fuzzy msgid "Filte_r" msgstr "Filtrat" #: ../pan/gui/actions.cc:282 #, fuzzy msgid "_Go" msgstr "/_Shko" #: ../pan/gui/actions.cc:283 ../pan/gui/prefs-ui.cc:1091 #, fuzzy msgid "_Actions" msgstr "Veprimet" #: ../pan/gui/actions.cc:284 #, fuzzy msgid "_Articles" msgstr "Artikull është" #: ../pan/gui/actions.cc:285 #, fuzzy msgid "G_roups" msgstr "Grupet" #: ../pan/gui/actions.cc:286 ../pan/gui/actions.cc:287 msgid "_Post" msgstr "" #: ../pan/gui/actions.cc:288 #, fuzzy msgid "_Help" msgstr "_Ndihmë" #: ../pan/gui/actions.cc:291 #, fuzzy msgid "_Read Group" msgstr "Grupi" #: ../pan/gui/actions.cc:292 #, fuzzy msgid "Read Group" msgstr "Grupi" #: ../pan/gui/actions.cc:296 #, fuzzy msgid "_Mark Selected Groups Read" msgstr "Lexo" #: ../pan/gui/actions.cc:297 #, fuzzy msgid "Mark Selected Groups Read" msgstr "Lexo" #: ../pan/gui/actions.cc:301 #, fuzzy msgid "_Delete Selected Groups' Articles" msgstr "Elemino" #: ../pan/gui/actions.cc:302 #, fuzzy msgid "Delete Selected Groups' Articles" msgstr "Elemino" #: ../pan/gui/actions.cc:306 #, fuzzy msgid "Get New _Headers in Selected Groups" msgstr "E re në I zgjedhur" #: ../pan/gui/actions.cc:307 #, fuzzy msgid "Get New Headers in Selected Groups" msgstr "E re në I zgjedhur" #: ../pan/gui/actions.cc:311 ../pan/gui/actions.cc:316 #, fuzzy msgid "Get New _Headers in Subscribed Groups" msgstr "E re në I regjistruar" #: ../pan/gui/actions.cc:312 ../pan/gui/actions.cc:317 #, fuzzy msgid "Get New Headers in Subscribed Groups" msgstr "E re në I regjistruar" #: ../pan/gui/actions.cc:321 #, fuzzy msgid "Get _Headers..." msgstr "E re" #: ../pan/gui/actions.cc:322 #, fuzzy msgid "Get Headers..." msgstr "E re" #: ../pan/gui/actions.cc:326 ../pan/gui/actions.cc:327 #, fuzzy msgid "Refresh Group List" msgstr "Grupi" #: ../pan/gui/actions.cc:331 #, fuzzy msgid "_Subscribe" msgstr "Regjistrimi" #: ../pan/gui/actions.cc:332 #, fuzzy msgid "Subscribe" msgstr "Regjistrimi" #: ../pan/gui/actions.cc:336 #, fuzzy msgid "_Unsubscribe" msgstr "Ç'regjistrohu" #: ../pan/gui/actions.cc:337 #, fuzzy msgid "Unsubscribe" msgstr "Ç'regjistrohu" #: ../pan/gui/actions.cc:341 #, fuzzy msgid "_Save Articles..." msgstr "Ruaj Të bashkangjitur." #: ../pan/gui/actions.cc:342 #, fuzzy msgid "Save Articles..." msgstr "Ruaj Të bashkangjitur." #: ../pan/gui/actions.cc:346 #, fuzzy msgid "Save Articles from Selected _NZB..." msgstr "Ruaj Të bashkangjitur." #: ../pan/gui/actions.cc:347 #, fuzzy msgid "Save Articles from Selected NZB" msgstr "Ruaj Të bashkangjitur" #: ../pan/gui/actions.cc:351 #, fuzzy msgid "Save Articles to an NZB _File..." msgstr "Ruaj Të bashkangjitur." #: ../pan/gui/actions.cc:352 #, fuzzy msgid "Save Articles to an NZB File" msgstr "Ruaj a" #: ../pan/gui/actions.cc:356 ../pan/gui/actions.cc:357 #, fuzzy msgid "Print" msgstr "Pan Printo" #: ../pan/gui/actions.cc:361 msgid "_Import NZB Files..." msgstr "" #: ../pan/gui/actions.cc:366 #, fuzzy msgid "_Cancel Last Task" msgstr "Anullo E fundit Aktiviteti" #: ../pan/gui/actions.cc:371 #, fuzzy msgid "_Task Manager" msgstr "Veglat Aktiviteti Manazhuesi." #: ../pan/gui/actions.cc:376 #, fuzzy msgid "_Event Log" msgstr "Hap Gjendja Log" #: ../pan/gui/actions.cc:381 #, fuzzy msgid "_Quit" msgstr "/_Ndrysho" #: ../pan/gui/actions.cc:386 #, fuzzy msgid "Select _All Articles" msgstr "Ndrysho Zgjidh" #: ../pan/gui/actions.cc:391 #, fuzzy msgid "_Deselect All Articles" msgstr "Ndrysho a" #: ../pan/gui/actions.cc:396 #, fuzzy msgid "Add Su_bthreads to Selection" msgstr "Ndrysho Shto Zgjedhja" #: ../pan/gui/actions.cc:401 #, fuzzy msgid "Add _Threads to Selection" msgstr "Ndrysho Shto Zgjedhja" #: ../pan/gui/actions.cc:406 #, fuzzy msgid "Add _Similar Articles to Selection" msgstr "Ndrysho Shto Zgjedhja" #: ../pan/gui/actions.cc:411 #, fuzzy msgid "Select Article _Body" msgstr "Ndrysho Zgjidh Artikull Trupi" #: ../pan/gui/actions.cc:416 #, fuzzy msgid "Edit _Preferences" msgstr "Ndrysho Preferimet." #: ../pan/gui/actions.cc:421 #, fuzzy msgid "Edit Selected _Group's Preferences" msgstr "Ndrysho Preferimet." #: ../pan/gui/actions.cc:426 ../pan/gui/post-ui.cc:434 #, fuzzy msgid "Edit P_osting Profiles" msgstr "Veglat Profilet." #: ../pan/gui/actions.cc:431 #, fuzzy msgid "Edit _News Servers" msgstr "Veglat Lajme Serverët." #: ../pan/gui/actions.cc:436 #, fuzzy msgid "Jump to _Group Tab" msgstr "Paraqitja Kalo Tab" #: ../pan/gui/actions.cc:441 #, fuzzy msgid "Jump to _Header Tab" msgstr "Paraqitja Kalo Tab" #: ../pan/gui/actions.cc:446 #, fuzzy msgid "Jump to _Body Tab" msgstr "Paraqitja Kalo Trupi Tab" #: ../pan/gui/actions.cc:451 #, fuzzy msgid "_Rot13 Selected Text" msgstr "I zgjedhur Teksti" #: ../pan/gui/actions.cc:456 #, fuzzy msgid "Clear _Header Pane" msgstr "Kreu i faqes" #: ../pan/gui/actions.cc:461 #, fuzzy msgid "Clear _Body Pane" msgstr "Trupi" #: ../pan/gui/actions.cc:466 #, fuzzy msgid "Cache Article" msgstr "File Printo Artikull." #: ../pan/gui/actions.cc:471 #, fuzzy msgid "Read Article" msgstr "Rreshta:" #: ../pan/gui/actions.cc:476 #, fuzzy msgid "Show Article Information" msgstr "Profili Informacione" #: ../pan/gui/actions.cc:481 #, fuzzy msgid "Read _More" msgstr "Lexo Më shumë" #: ../pan/gui/actions.cc:482 #, fuzzy msgid "Read More" msgstr "Lexo Më shumë" #: ../pan/gui/actions.cc:486 msgid "Read _Back" msgstr "" #: ../pan/gui/actions.cc:487 #, fuzzy msgid "Read Back" msgstr "Lexo Mbrapa" #: ../pan/gui/actions.cc:491 #, fuzzy msgid "Next _Unread Group" msgstr "Vazhdo" #: ../pan/gui/actions.cc:496 #, fuzzy msgid "Next _Group" msgstr "N" #: ../pan/gui/actions.cc:501 #, fuzzy msgid "Next _Unread Article" msgstr "Vazhdo Artikull" #: ../pan/gui/actions.cc:502 #, fuzzy msgid "Next Unread Article" msgstr "Lexo Vazhdo Artikull" #: ../pan/gui/actions.cc:506 #, fuzzy msgid "Next _Article" msgstr "Vazhdo Artikull" #: ../pan/gui/actions.cc:507 #, fuzzy msgid "Next Article" msgstr "Vazhdo Artikull" #: ../pan/gui/actions.cc:511 #, fuzzy msgid "Next _Watched Article" msgstr "Vazhdo Artikull" #: ../pan/gui/actions.cc:516 #, fuzzy msgid "Next Unread _Thread" msgstr "Vazhdo" #: ../pan/gui/actions.cc:517 #, fuzzy msgid "Next Unread Thread" msgstr "Lexo Vazhdo" #: ../pan/gui/actions.cc:521 #, fuzzy msgid "Next Threa_d" msgstr "Vazhdo" #: ../pan/gui/actions.cc:526 #, fuzzy msgid "Pre_vious Article" msgstr "Artikull" #: ../pan/gui/actions.cc:531 #, fuzzy msgid "Previous _Thread" msgstr "Paraardhëse" #: ../pan/gui/actions.cc:536 #, fuzzy msgid "_Parent Article" msgstr "Prindi Artikull" #: ../pan/gui/actions.cc:541 #, fuzzy msgid "Ignore _Author" msgstr "Shpërfill" #: ../pan/gui/actions.cc:545 #, fuzzy msgid "_Watch Thread" msgstr "Lexo:" #: ../pan/gui/actions.cc:550 #, fuzzy msgid "_Ignore Thread" msgstr "Shpërfill" #: ../pan/gui/actions.cc:555 ../pan/gui/actions.cc:556 #, fuzzy msgid "_Toggle Flag On/Off for Thread" msgstr "Lexo:" #: ../pan/gui/actions.cc:560 ../pan/gui/actions.cc:561 #, fuzzy msgid "_Turn Flag Off for Thread" msgstr "Lexo:" #: ../pan/gui/actions.cc:565 ../pan/gui/actions.cc:566 #, fuzzy msgid "_Select All Flagged Threads" msgstr "Vazhdo N" #: ../pan/gui/actions.cc:570 ../pan/gui/actions.cc:571 #, fuzzy msgid "_Go to Next Flagged Thread" msgstr "Vazhdo N" #: ../pan/gui/actions.cc:575 ../pan/gui/actions.cc:576 #, fuzzy msgid "_Go to Last Flagged Thread" msgstr "Vazhdo N" #: ../pan/gui/actions.cc:580 ../pan/gui/actions.cc:581 #, fuzzy msgid "_Invert Selection" msgstr "Shto S Zgjedhja" #: ../pan/gui/actions.cc:585 #, fuzzy msgid "Edit Article's Watch/Ignore/Score..." msgstr "Krijo Pikë." #: ../pan/gui/actions.cc:590 #, fuzzy msgid "Add a _Scoring Rule..." msgstr "Shto a i ri" #: ../pan/gui/actions.cc:595 #, fuzzy msgid "Cance_l Article..." msgstr "File Printo Artikull." #: ../pan/gui/actions.cc:600 #, fuzzy msgid "_Supersede Article..." msgstr "File Printo Artikull." #: ../pan/gui/actions.cc:605 #, fuzzy msgid "_Delete Article" msgstr "Elemino" #: ../pan/gui/actions.cc:610 #, fuzzy msgid "Clear Article Cache" msgstr "Artikull Cache" #: ../pan/gui/actions.cc:615 #, fuzzy msgid "_Mark Article as Read" msgstr "Artikull është" #: ../pan/gui/actions.cc:620 #, fuzzy msgid "Mark Article as _Unread" msgstr "Artikull është" #: ../pan/gui/actions.cc:626 #, fuzzy msgid "_Mark Thread as Read" msgstr "Artikull është" #: ../pan/gui/actions.cc:631 #, fuzzy msgid "Mark Thread as _Unread" msgstr "Artikull është" #: ../pan/gui/actions.cc:636 #, fuzzy msgid "_Post to Newsgroup" msgstr "E re" #: ../pan/gui/actions.cc:637 #, fuzzy msgid "Post to Newsgroup" msgstr "E re" #: ../pan/gui/actions.cc:641 #, fuzzy msgid "_Followup to Newsgroup" msgstr "Artikull" #: ../pan/gui/actions.cc:642 #, fuzzy msgid "Followup to Newsgroup" msgstr "Artikull" #: ../pan/gui/actions.cc:646 #, fuzzy msgid "_Reply to Author in Mail" msgstr "Autori" #: ../pan/gui/actions.cc:651 #, fuzzy msgid "_Pan Home Page" msgstr "Pan Faqja." #: ../pan/gui/actions.cc:656 #, fuzzy msgid "Give _Feedback or Report a Bug..." msgstr "Raporti a." #: ../pan/gui/actions.cc:661 msgid "_Tip Jar..." msgstr "" #: ../pan/gui/actions.cc:666 #, fuzzy msgid "_About" msgstr "Informacione" #: ../pan/gui/actions.cc:671 msgid "Edit _SSL Certificates" msgstr "" #: ../pan/gui/actions.cc:685 #, fuzzy msgid "_Thread Headers" msgstr "Më shumë" #: ../pan/gui/actions.cc:686 #, fuzzy msgid "_Wrap Article Body" msgstr "Paraqitja Mbështill Artikull Trupi" #: ../pan/gui/actions.cc:687 #, fuzzy msgid "Mute _Quoted Text" msgstr "Paraqitja Pa zë Teksti" #: ../pan/gui/actions.cc:688 #, fuzzy msgid "Show All _Headers in Body Pane" msgstr "Paraqitja Shfaq Gjithçka në Trupi" #: ../pan/gui/actions.cc:689 #, fuzzy msgid "Show _Smilies as Graphics" msgstr "Shfaq a:" #: ../pan/gui/actions.cc:690 msgid "Show *Bold*, __Underlined__, and /Italic/" msgstr "" #: ../pan/gui/actions.cc:691 msgid "Size Pictures to _Fit" msgstr "" #: ../pan/gui/actions.cc:692 #, fuzzy msgid "Use _Monospace Font" msgstr "e gërmë:" #: ../pan/gui/actions.cc:693 msgid "Set Focus to Images" msgstr "" #: ../pan/gui/actions.cc:694 msgid "Highlight _URLs" msgstr "" #: ../pan/gui/actions.cc:697 #, fuzzy msgid "_Work Online" msgstr "File Punë Në" #: ../pan/gui/actions.cc:698 #, fuzzy msgid "_Tabbed Layout" msgstr "Paraqitja Planimetria" #: ../pan/gui/actions.cc:699 #, fuzzy msgid "Show Group _Pane" msgstr "Paraqitja Shfaq" #: ../pan/gui/actions.cc:700 #, fuzzy msgid "Show Hea_der Pane" msgstr "Paraqitja Shfaq" #: ../pan/gui/actions.cc:701 #, fuzzy msgid "Show Bod_y Pane" msgstr "Paraqitja Shfaq p" #: ../pan/gui/actions.cc:702 msgid "Show _Toolbar" msgstr "" #: ../pan/gui/actions.cc:703 #, fuzzy msgid "Abbreviate Group Names" msgstr "Paraqitja në" #: ../pan/gui/actions.cc:705 #, fuzzy msgid "Match Only _Unread Articles" msgstr "Vetëm E re" #: ../pan/gui/actions.cc:705 #, fuzzy msgid "Match Only Unread Articles" msgstr "Vetëm E re" #: ../pan/gui/actions.cc:706 #, fuzzy msgid "Match Only _Cached Articles" msgstr "Vetëm Në cache" #: ../pan/gui/actions.cc:706 #, fuzzy msgid "Match Only Cached Articles" msgstr "Vetëm Në cache" #: ../pan/gui/actions.cc:707 #, fuzzy msgid "Match Only _Complete Articles" msgstr "Vetëm U plotësua Të bashkangjitur" #: ../pan/gui/actions.cc:707 #, fuzzy msgid "Match Only Complete Articles" msgstr "Vetëm U plotësua Të bashkangjitur" #: ../pan/gui/actions.cc:708 #, fuzzy msgid "Match Only _My Articles" msgstr "Vetëm" #: ../pan/gui/actions.cc:708 #, fuzzy msgid "Match Only My Articles" msgstr "Vetëm" #: ../pan/gui/actions.cc:709 #, fuzzy msgid "Match Only _Watched Articles" msgstr "Vetëm" #: ../pan/gui/actions.cc:709 #, fuzzy msgid "Match Only Watched Articles" msgstr "Vetëm" #: ../pan/gui/actions.cc:711 #, fuzzy msgid "Match Scores of 9999 (_Watched)" msgstr "Rezultatet nga" #: ../pan/gui/actions.cc:712 #, fuzzy msgid "Match Scores of 5000...9998 (_High)" msgstr "Rezultatet në" #: ../pan/gui/actions.cc:713 #, fuzzy msgid "Match Scores of 1...4999 (Me_dium)" msgstr "Rezultatet në Mesatare" #: ../pan/gui/actions.cc:714 #, fuzzy msgid "Match Scores of 0 (_Normal)" msgstr "Rezultatet nga Normal" #: ../pan/gui/actions.cc:715 #, fuzzy msgid "Match Scores of -9998...-1 (_Low)" msgstr "Rezultatet në E ulët" #: ../pan/gui/actions.cc:716 #, fuzzy msgid "Match Scores of -9999 (_Ignored)" msgstr "Rezultatet nga" #: ../pan/gui/actions.cc:718 msgid "Enable/Disable All _Rules" msgstr "" #: ../pan/gui/actions.cc:744 #, fuzzy msgid "Show Matching _Articles" msgstr "Shfaq Përputhja" #: ../pan/gui/actions.cc:745 #, fuzzy msgid "Show Matching Articles' _Threads" msgstr "Shfaq Përputhja" #: ../pan/gui/actions.cc:746 #, fuzzy msgid "Show Matching Articles' _Subthreads" msgstr "Shfaq Përputhja" #: ../pan/gui/body-pane.cc:1011 #, fuzzy, c-format msgid "Unnamed File" msgstr "Zgjidh Firma File" #: ../pan/gui/body-pane.cc:1092 ../pan/gui/gui.cc:1864 #: ../pan/gui/header-pane.cc:1188 ../pan/gui/header-pane.cc:1617 #: ../pan/gui/post-ui.cc:2496 ../pan/gui/prefs-ui.cc:833 #: ../pan/gui/score-add-ui.cc:139 #, fuzzy msgid "Subject" msgstr "Subjekti" #: ../pan/gui/body-pane.cc:1094 ../pan/gui/gui.cc:1864 #, fuzzy msgid "From" msgstr "Nga" #: ../pan/gui/body-pane.cc:1096 ../pan/gui/gui.cc:1865 #: ../pan/gui/header-pane.cc:1695 ../pan/gui/log-ui.cc:305 #: ../pan/gui/prefs-ui.cc:829 #, fuzzy msgid "Date" msgstr "Data" #: ../pan/gui/body-pane.cc:1103 #, fuzzy msgid "Newsgroups" msgstr "E re" #: ../pan/gui/body-pane.cc:1108 #, fuzzy msgid "Followup-To" msgstr "Për" #: ../pan/gui/body-pane.cc:1118 #, fuzzy msgid "Reply-To" msgstr "Përgjigju Për" #: ../pan/gui/body-pane.cc:1160 msgid " from " msgstr "" #: ../pan/gui/body-pane.cc:1162 msgid " at " msgstr "" #: ../pan/gui/body-pane.cc:1264 #, c-format msgid "" "This is a PGP-Signed message.\n" "\n" "Signer : %s ('%s')\n" "Valid until : %s\n" "Created on : %s" msgstr "" #: ../pan/gui/body-pane.cc:1269 msgid "always" msgstr "" #: ../pan/gui/body-pane.cc:1485 msgid "Copy _URL" msgstr "" #: ../pan/gui/body-pane.cc:1680 #, fuzzy msgid "Save attachment as ...." msgstr "Ruaj Të bashkangjitur." #: ../pan/gui/body-pane.cc:1683 #, fuzzy msgid "Save all attachments" msgstr "Ruaj Të bashkangjitur" #. add a toolbar for attachments #: ../pan/gui/body-pane.cc:1753 #, fuzzy msgid "Attachments" msgstr "Të bashkangjitur" #. update the titlebar #: ../pan/gui/dl-headers-ui.cc:106 ../pan/gui/gui.cc:973 #: ../pan/gui/gui.cc:1592 ../pan/gui/gui.cc:1893 #: ../pan/gui/score-add-ui.cc:602 msgid "Pan" msgstr "" #: ../pan/gui/dl-headers-ui.cc:112 #, fuzzy, c-format msgid "%d Group" msgid_plural "%d Groups" msgstr[0] "Grupet" msgstr[1] "Grupet" #: ../pan/gui/dl-headers-ui.cc:135 #, fuzzy msgid "Get the last N _days' headers: " msgstr "Shkarkimi " #: ../pan/gui/dl-headers-ui.cc:143 #, fuzzy msgid "Get _new headers" msgstr "E re" #: ../pan/gui/dl-headers-ui.cc:147 #, fuzzy msgid "Get _all headers" msgstr "Shkarkimi" #: ../pan/gui/dl-headers-ui.cc:151 #, fuzzy msgid "Get the _latest N headers: " msgstr "Shkarkimi " #: ../pan/gui/e-action-combo-box.c:388 ../pan/gui/prefs-ui.cc:826 #, fuzzy msgid "Action" msgstr "Veprimet" #: ../pan/gui/e-action-combo-box.c:389 msgid "A GtkRadioAction" msgstr "" #: ../pan/gui/e-charset.c:51 ../pan/gui/task-pane.cc:518 #, fuzzy msgid "Unknown" msgstr "Nuk njihet" #: ../pan/gui/e-charset.c:52 msgid "Arabic" msgstr "" #: ../pan/gui/e-charset.c:53 #, fuzzy msgid "Baltic" msgstr "Balltike" #: ../pan/gui/e-charset.c:54 #, fuzzy msgid "Central European" msgstr "Europa Qendrore" #: ../pan/gui/e-charset.c:55 #, fuzzy msgid "Chinese" msgstr "Rreshta" #: ../pan/gui/e-charset.c:56 #, fuzzy msgid "Cyrillic" msgstr "Cyrillic" #: ../pan/gui/e-charset.c:57 #, fuzzy msgid "Greek" msgstr "Greqisht" #: ../pan/gui/e-charset.c:58 msgid "Hebrew" msgstr "" #: ../pan/gui/e-charset.c:59 #, fuzzy msgid "Japanese" msgstr "Japonisht" #: ../pan/gui/e-charset.c:60 #, fuzzy msgid "Korean" msgstr "Koreane" #: ../pan/gui/e-charset.c:61 msgid "Thai" msgstr "" #: ../pan/gui/e-charset.c:62 #, fuzzy msgid "Turkish" msgstr "Turqisht" #: ../pan/gui/e-charset.c:63 #, fuzzy msgid "Unicode" msgstr "Unicode 8" #: ../pan/gui/e-charset.c:64 #, fuzzy msgid "Western European" msgstr "Europa Qendrore" #: ../pan/gui/e-charset.c:65 #, fuzzy msgid "Western European, New" msgstr "Perëndimore E re" #: ../pan/gui/e-charset.c:84 ../pan/gui/e-charset.c:85 #: ../pan/gui/e-charset.c:86 #, fuzzy msgid "Traditional" msgstr "Kineze tradicionale" #: ../pan/gui/e-charset.c:87 ../pan/gui/e-charset.c:88 #: ../pan/gui/e-charset.c:89 ../pan/gui/e-charset.c:90 #, fuzzy msgid "Simplified" msgstr "Kineze e thjeshtëzuar" #: ../pan/gui/e-charset.c:93 #, fuzzy msgid "Ukrainian" msgstr "Cyrillic Ukrahinase" #: ../pan/gui/e-charset.c:96 msgid "Visual" msgstr "" #: ../pan/gui/e-charset-combo-box.c:93 ../pan/gui/gui.cc:2058 #: ../pan/gui/post-ui.cc:519 ../pan/gui/prefs-ui.cc:737 #, fuzzy msgid "Character Encoding" msgstr "C:" #: ../pan/gui/e-charset-combo-box.c:117 msgid "Enter the character set to use" msgstr "" #: ../pan/gui/e-charset-combo-box.c:336 msgid "Other..." msgstr "" #: ../pan/gui/e-cte-dialog.c:78 #, fuzzy msgid "Default encoding" msgstr "C:" #: ../pan/gui/e-cte-dialog.c:80 #, fuzzy msgid "7Bit Encoding" msgstr "C:" #: ../pan/gui/e-cte-dialog.c:82 #, fuzzy msgid "8Bit Encoding" msgstr "C:" #: ../pan/gui/e-cte-dialog.c:84 #, fuzzy msgid "BASE64 Encoding" msgstr "C:" #: ../pan/gui/e-cte-dialog.c:86 #, fuzzy msgid "Quoted-Printable Encoding" msgstr "p" #: ../pan/gui/group-pane.cc:500 #, fuzzy msgid "Group" msgstr "Grupi" #: ../pan/gui/group-pane.cc:501 #, fuzzy msgid "Group (regex)" msgstr "Pronësitë" #: ../pan/gui/group-pane.cc:913 #, fuzzy msgid "Subscribed Groups" msgstr "I regjistruar" #: ../pan/gui/group-pane.cc:914 #, fuzzy msgid "Other Groups" msgstr "E re" #: ../pan/gui/group-pane.cc:954 ../pan/gui/score-view-ui.cc:157 #, fuzzy msgid "Name" msgstr "_Emri:" #: ../pan/gui/group-prefs-dialog.cc:156 #, fuzzy msgid "No Profiles defined in Edit|Posting Profiles." msgstr "Veglat Profilet." #: ../pan/gui/group-prefs-dialog.cc:231 #, fuzzy msgid "Pan: Group Preferences" msgstr "Pan Preferimet" #: ../pan/gui/group-prefs-dialog.cc:247 #, fuzzy, c-format msgid "Properties for Groups" msgstr "Pronësitë për" #: ../pan/gui/group-prefs-dialog.cc:249 #, fuzzy, c-format msgid "Properties for %s" msgstr "Pronësitë për" #: ../pan/gui/group-prefs-dialog.cc:257 #, fuzzy msgid "Character _encoding:" msgstr "C:" #: ../pan/gui/group-prefs-dialog.cc:259 #, fuzzy msgid "Directory for Saving Attachments" msgstr "Directory për" #: ../pan/gui/group-prefs-dialog.cc:269 #, fuzzy msgid "Directory for _saving attachments:" msgstr "Directory për" #: ../pan/gui/group-prefs-dialog.cc:271 #, fuzzy msgid "Posting _profile:" msgstr "Pan Profili" #: ../pan/gui/group-prefs-dialog.cc:277 msgid "Spellchecker _language:" msgstr "" #: ../pan/gui/gui.cc:273 #, fuzzy msgid "Open the Task Manager" msgstr "Hap Aktiviteti Manazhuesi" #: ../pan/gui/gui.cc:301 #, fuzzy msgid "Open the Event Log" msgstr "Hap Gjendja Log" #: ../pan/gui/gui.cc:561 msgid "Save NZB's Files" msgstr "" #: ../pan/gui/gui.cc:588 msgid "Untitled.nzb" msgstr "" #: ../pan/gui/gui.cc:590 #, fuzzy msgid "Save NZB File as..." msgstr "Ruaj Të bashkangjitur." #: ../pan/gui/gui.cc:757 msgid "Import NZB Files" msgstr "" #: ../pan/gui/gui.cc:765 ../pan/gui/post-ui.cc:3197 #, fuzzy msgid "NZB Files" msgstr "Files" #: ../pan/gui/gui.cc:770 #, fuzzy msgid "All Files" msgstr "Files" #: ../pan/gui/gui.cc:1258 #, fuzzy msgid "Unable to supersede article." msgstr "File Printo Artikull." #: ../pan/gui/gui.cc:1259 ../pan/gui/gui.cc:1333 msgid "The article doesn't match any of your posting profiles." msgstr "" #: ../pan/gui/gui.cc:1306 msgid "Revise and send this article to replace the old one." msgstr "" #: ../pan/gui/gui.cc:1307 ../pan/gui/gui.cc:1370 msgid "Be patient! It will take time for your changes to take effect." msgstr "" #: ../pan/gui/gui.cc:1332 #, fuzzy msgid "Unable to cancel article." msgstr "File Printo Artikull." #: ../pan/gui/gui.cc:1369 msgid "Send this article to ask your server to cancel your other one." msgstr "" #: ../pan/gui/gui.cc:1387 msgid "You marked some articles for deletion" msgstr "" #: ../pan/gui/gui.cc:1388 #, fuzzy msgid "Are you sure you want to delete them?" msgstr "elemino dhe?" #: ../pan/gui/gui.cc:1413 #, fuzzy msgid "Always trust" msgstr "Editori" #: ../pan/gui/gui.cc:1416 msgid "Do you want to accept it permanently (deletable afterwards) ?" msgstr "" #: ../pan/gui/gui.cc:1595 #, fuzzy msgid "Copyright \\u00A9 2002-2012 Charles Kerr and others" msgstr "Copyright C" #: ../pan/gui/gui.cc:1600 msgid "translator-credits" msgstr "" #: ../pan/gui/gui.cc:1709 #, fuzzy msgid "_1. Group Pane" msgstr "Grupi" #: ../pan/gui/gui.cc:1710 #, fuzzy msgid "_2. Header Pane" msgstr "Kreu i faqes" #: ../pan/gui/gui.cc:1711 #, fuzzy msgid "_3. Body Pane" msgstr "Trupi" #: ../pan/gui/gui.cc:1800 ../pan/gui/gui.cc:1815 msgid " Bytes" msgstr "" #: ../pan/gui/gui.cc:1803 msgid " KB" msgstr "" #: ../pan/gui/gui.cc:1806 msgid " MB" msgstr "" #: ../pan/gui/gui.cc:1809 msgid " GB" msgstr "" #: ../pan/gui/gui.cc:1812 msgid " TB" msgstr "" #: ../pan/gui/gui.cc:1844 #, fuzzy, c-format msgid "This article is complete with %d part." msgid_plural "This article has all %d parts." msgstr[0] "Artikull jo" msgstr[1] "Artikull jo" #: ../pan/gui/gui.cc:1846 #, fuzzy, c-format msgid "This article is missing %d part." msgid_plural "This article is missing %d of its %d parts:" msgstr[0] "Artikull jo" msgstr[1] "Artikull jo" #: ../pan/gui/gui.cc:1865 ../pan/gui/header-pane.cc:1190 #, fuzzy msgid "Message-ID" msgstr "ID e _Mesazhit:" #: ../pan/gui/gui.cc:1866 ../pan/gui/header-pane.cc:1665 #: ../pan/gui/prefs-ui.cc:830 #, fuzzy msgid "Lines" msgstr "Rreshta" #: ../pan/gui/gui.cc:1866 msgid "Size" msgstr "" #: ../pan/gui/gui.cc:1867 ../pan/gui/header-pane.cc:1680 #: ../pan/gui/prefs-ui.cc:828 msgid "Bytes" msgstr "" #: ../pan/gui/gui.cc:1917 msgid "" "Error loading iconv library. Some Charsets in the GUI will not be able to be " "encoded." msgstr "" #: ../pan/gui/gui.cc:2059 #, fuzzy msgid "Body Pane Encoding" msgstr "p" #: ../pan/gui/gui.cc:2090 ../pan/gui/task-pane.cc:569 #, fuzzy, c-format msgid "Offline" msgstr "Jashtë linje" #: ../pan/gui/gui.cc:2094 #, fuzzy, c-format msgid "Closing %d connection" msgid_plural "Closing %d connections" msgstr[0] "Jo Lidhjet" msgstr[1] "Jo Lidhjet" #: ../pan/gui/gui.cc:2096 ../pan/gui/gui.cc:2126 #, fuzzy, c-format msgid "No Connections" msgstr "Jo Lidhjet" #: ../pan/gui/gui.cc:2100 #, fuzzy, c-format msgid "Connecting" msgstr "Lidhja" #: ../pan/gui/gui.cc:2113 #, c-format msgid "%s: %d idle, %d active @ %.1f KiBps" msgstr "" #: ../pan/gui/gui.cc:2169 #, fuzzy, c-format msgid "No Tasks" msgstr "Jo Aktivitete" #: ../pan/gui/gui.cc:2171 ../pan/gui/prefs-ui.cc:1047 #, fuzzy msgid "Tasks" msgstr "Aktivitete" #: ../pan/gui/gui.cc:2182 ../pan/gui/task-pane.cc:435 #, c-format msgid "%lu tasks, %s, %.1f KiBps, ETA %d:%02d:%02d" msgstr "" #: ../pan/gui/gui.cc:2234 msgid "" "Pan is now offline. Please see \"File|Event Log\" and correct the problem, " "then use \"File|Work Online\" to continue." msgstr "" #: ../pan/gui/header-pane.cc:1186 msgid "Subject or Author" msgstr "" #: ../pan/gui/header-pane.cc:1187 msgid "Sub or Auth (regex)" msgstr "" #: ../pan/gui/header-pane.cc:1189 ../pan/gui/header-pane.cc:1649 #: ../pan/gui/prefs-ui.cc:827 ../pan/gui/score-add-ui.cc:140 #, fuzzy msgid "Author" msgstr "Autori" #: ../pan/gui/header-pane.cc:1634 ../pan/gui/prefs-ui.cc:831 #, fuzzy msgid "Score" msgstr "Pikë" #: ../pan/gui/log-ui.cc:103 msgid "Save Event List" msgstr "" #: ../pan/gui/log-ui.cc:256 #, fuzzy msgid "Pan: Events" msgstr "Pan Serverët" #: ../pan/gui/log-ui.cc:315 #, fuzzy msgid "Message" msgstr "Mesazh" #: ../pan/gui/pan.cc:330 msgid "Maximize" msgstr "" #: ../pan/gui/pan.cc:383 msgid "An Error has occurred!" msgstr "" #: ../pan/gui/pan.cc:397 #, fuzzy msgid "New Articles!" msgstr "Vazhdo Artikull" #: ../pan/gui/pan.cc:398 msgid "" "There are new\n" "articles available." msgstr "" #: ../pan/gui/pan.cc:465 msgid "Toggle on/offline" msgstr "" #: ../pan/gui/pan.cc:513 msgid "" "Thank you for trying Pan!\n" " \n" "To start newsreading, first Add a Server." msgstr "" #: ../pan/gui/pan.cc:595 msgid "" "General Options\n" " -h, --help Show this usage page.\n" " --verbose Be verbose (in non-GUI mode).\n" "\n" "URL Options\n" " --no-gui On news:message-id, dump the article to stdout.\n" "\n" "NZB Batch Options\n" " --nzb file1 file2 ... Process nzb files without launching all of Pan.\n" " -o path, --output=path Path to save attachments listed in the nzb " "files.\n" " --no-gui Only show console output, not the download " "queue.\n" msgstr "" #: ../pan/gui/pan.cc:867 msgid "Error: --no-gui used without nzb files or news:message-id." msgstr "" #: ../pan/gui/pan.cc:871 #, fuzzy, c-format msgid "Pan %s started" msgstr "Pan" #: ../pan/gui/pan.cc:890 msgid "Please configure Pan's news servers before using it as an nzb client." msgstr "" #: ../pan/gui/pan.cc:1009 msgid "Pan notification" msgstr "" #: ../pan/gui/post-ui.cc:186 #, c-format msgid "Upload Queue : %ld Tasks, %ld KB (~ %.2f MB) total ." msgstr "" #: ../pan/gui/post-ui.cc:286 #, fuzzy, c-format msgid "Error setting custom spellchecker: %s" msgstr "Gabim socket" #: ../pan/gui/post-ui.cc:291 ../pan/gui/post-ui.cc:300 #, fuzzy, c-format msgid "Error setting spellchecker: %s" msgstr "Gabim socket" #: ../pan/gui/post-ui.cc:419 #, fuzzy msgid "_Profile" msgstr "Profili" #: ../pan/gui/post-ui.cc:420 #, fuzzy msgid "Set Editor" msgstr "Editori" #: ../pan/gui/post-ui.cc:422 #, fuzzy msgid "_Send Article" msgstr "Prindi Artikull" #: ../pan/gui/post-ui.cc:422 #, fuzzy msgid "Send Article Now" msgstr "Dërgo Tani" #: ../pan/gui/post-ui.cc:423 #, fuzzy msgid "_Send and Save Articles to NZB" msgstr "Pan Ruaj" #: ../pan/gui/post-ui.cc:423 #, fuzzy msgid "Send and Save Articles to NZB" msgstr "Pan Ruaj" #: ../pan/gui/post-ui.cc:424 #, fuzzy msgid "Set Character _Encoding..." msgstr "C:" #: ../pan/gui/post-ui.cc:425 #, fuzzy msgid "Set Content _Transfer Encoding..." msgstr "C:" #: ../pan/gui/post-ui.cc:426 #, fuzzy msgid "Sa_ve Draft" msgstr "Duke ruajtur" #: ../pan/gui/post-ui.cc:426 msgid "Save as a Draft for Future Posting" msgstr "" #: ../pan/gui/post-ui.cc:427 #, fuzzy msgid "_Open Draft..." msgstr "Lexo Artikull" #: ../pan/gui/post-ui.cc:427 #, fuzzy msgid "Open an Article Draft" msgstr "Lexo Artikull" #: ../pan/gui/post-ui.cc:432 msgid "_Rot13" msgstr "" #: ../pan/gui/post-ui.cc:432 #, fuzzy msgid "Rot13 Selected Text" msgstr "I zgjedhur Teksti" #: ../pan/gui/post-ui.cc:433 #, fuzzy msgid "Run _Editor" msgstr "Editori" #: ../pan/gui/post-ui.cc:433 #, fuzzy msgid "Run Editor" msgstr "Editori" #: ../pan/gui/post-ui.cc:435 msgid "Add _Files to Queue" msgstr "" #: ../pan/gui/post-ui.cc:435 msgid "Add Files to Queue" msgstr "" #: ../pan/gui/post-ui.cc:450 ../pan/gui/post-ui.cc:451 #, fuzzy msgid "Remove from Queue" msgstr "E re Serveri" #: ../pan/gui/post-ui.cc:455 ../pan/gui/post-ui.cc:456 #, fuzzy msgid "Clear List" msgstr "Zgjidh Filtri:" #: ../pan/gui/post-ui.cc:460 ../pan/gui/post-ui.cc:461 #, fuzzy msgid "Select Needed Parts" msgstr "Zgjidh gërmat" #: ../pan/gui/post-ui.cc:465 ../pan/gui/post-ui.cc:466 #: ../pan/gui/task-pane.cc:636 ../pan/gui/task-pane.cc:637 msgid "Move Up" msgstr "" #: ../pan/gui/post-ui.cc:470 ../pan/gui/post-ui.cc:471 #: ../pan/gui/task-pane.cc:641 ../pan/gui/task-pane.cc:642 msgid "Move Down" msgstr "" #: ../pan/gui/post-ui.cc:475 ../pan/gui/post-ui.cc:476 msgid "Move to Top" msgstr "" #: ../pan/gui/post-ui.cc:480 ../pan/gui/post-ui.cc:481 #, fuzzy msgid "Move to Bottom" msgstr "Lëvize I zgjedhur Aktiviteti Poshtë" #: ../pan/gui/post-ui.cc:488 #, fuzzy msgid "_Wrap Text" msgstr "Mbështill Teksti" #: ../pan/gui/post-ui.cc:488 #, fuzzy msgid "Wrap Text" msgstr "Mbështill Teksti" #: ../pan/gui/post-ui.cc:489 #, fuzzy msgid "Always Run Editor" msgstr "Editori" #: ../pan/gui/post-ui.cc:490 #, fuzzy msgid "Remember Character Encoding for this Group" msgstr "C:" #: ../pan/gui/post-ui.cc:491 msgid "Thread Attached Replies" msgstr "" #: ../pan/gui/post-ui.cc:492 msgid "PGP-Encrypt the Message" msgstr "" #: ../pan/gui/post-ui.cc:493 msgid "PGP-Sign the Message" msgstr "" #: ../pan/gui/post-ui.cc:494 msgid "Check _Spelling" msgstr "" #: ../pan/gui/post-ui.cc:520 #, fuzzy msgid "New Article's Encoding:" msgstr "Pan Paraqitja Artikull Rezultatet" #: ../pan/gui/post-ui.cc:530 #, fuzzy msgid "Content Transfer Encoding" msgstr "C:" #: ../pan/gui/post-ui.cc:531 #, fuzzy msgid "New Article's Content Transfer Encoding:" msgstr "Pan Paraqitja Artikull Rezultatet" #: ../pan/gui/post-ui.cc:711 msgid "Your changes will be lost!" msgstr "" #: ../pan/gui/post-ui.cc:712 msgid "Close this window and lose your changes?" msgstr "" #: ../pan/gui/post-ui.cc:757 ../pan/gui/post-ui.cc:796 msgid "There were problems with this post." msgstr "" #: ../pan/gui/post-ui.cc:759 ../pan/gui/post-ui.cc:798 #: ../pan/gui/post-ui.cc:861 #, fuzzy msgid "Go Back" msgstr "Lexo Mbrapa" #: ../pan/gui/post-ui.cc:761 msgid "Post Anyway" msgstr "" #. Prompt the user #: ../pan/gui/post-ui.cc:790 #, fuzzy, c-format msgid "" "Message uses characters not specified in charset '%s' - possibly use '%s' " msgstr "Mesazh nuk në?" #: ../pan/gui/post-ui.cc:813 #, fuzzy msgid "Go _Online" msgstr "Pan është Në linjë" #: ../pan/gui/post-ui.cc:860 msgid "The file queue is empty, so no files can be saved." msgstr "" #: ../pan/gui/post-ui.cc:1019 msgid "" "No posting server is set for this posting profile.\n" "Please edit the profile via Edit|Manage Posting Profiles." msgstr "" #: ../pan/gui/post-ui.cc:1054 #, fuzzy msgid "Pan is Offline." msgstr "Pan është Jashtë linje" #: ../pan/gui/post-ui.cc:1055 msgid "Go online to post the article?" msgstr "" #: ../pan/gui/post-ui.cc:1102 #, c-format msgid "" "Error signing/encrypting your message. Perhaps you misspelled your email-" "address (%s) ?" msgstr "" #: ../pan/gui/post-ui.cc:1267 #, fuzzy msgid "Error opening temporary file" msgstr "Gabim" #: ../pan/gui/post-ui.cc:1279 #, fuzzy, c-format msgid "Error writing article to temporary file: %s" msgstr "Gabim" #: ../pan/gui/post-ui.cc:1298 #, fuzzy, c-format msgid "Error parsing \"external editor\" command line: %s (Command was: %s)" msgstr "Gabim i jashtëm" #: ../pan/gui/post-ui.cc:1339 #, fuzzy, c-format msgid "Error starting external editor: %s" msgstr "Gabim i jashtëm" #: ../pan/gui/post-ui.cc:1395 #, fuzzy msgid "Open Draft Article" msgstr "Lexo Artikull" #: ../pan/gui/post-ui.cc:1606 #, fuzzy msgid "Save Draft Article" msgstr "Duke ruajtur" #: ../pan/gui/post-ui.cc:1803 #, c-format msgid "Couldn't parse signature command \"%s\": %s" msgstr "" #: ../pan/gui/post-ui.cc:1839 #, fuzzy msgid "Couldn't convert signature to UTF-8." msgstr "nuk konvertoje Firma në" #: ../pan/gui/post-ui.cc:2334 #, fuzzy msgid "F_rom" msgstr "Nga" #: ../pan/gui/post-ui.cc:2352 #, fuzzy msgid "_Subject" msgstr "_Subjekti:" #: ../pan/gui/post-ui.cc:2365 #, fuzzy msgid "_Newsgroups" msgstr "E re" #: ../pan/gui/post-ui.cc:2379 #, fuzzy msgid "Mail _To" msgstr "Posta Për" #: ../pan/gui/post-ui.cc:2481 msgid "Delete from Queue" msgstr "" #: ../pan/gui/post-ui.cc:2494 msgid "No." msgstr "" #: ../pan/gui/post-ui.cc:2498 ../pan/gui/post-ui.cc:2592 #: ../pan/gui/post-ui.cc:2633 #, fuzzy msgid "Filename" msgstr "Emri i file" #: ../pan/gui/post-ui.cc:2500 msgid "Size (kB)" msgstr "" #: ../pan/gui/post-ui.cc:2600 msgid "The current filename" msgstr "" #: ../pan/gui/post-ui.cc:2604 #, fuzzy msgid "Subject Line" msgstr "Subjekti" #: ../pan/gui/post-ui.cc:2612 msgid "The current Subject Line" msgstr "" #: ../pan/gui/post-ui.cc:2626 msgid "No. " msgstr "" #: ../pan/gui/post-ui.cc:2630 msgid "Enable/Disable" msgstr "" #: ../pan/gui/post-ui.cc:2664 #, fuzzy msgid "Follo_wup-To" msgstr "Për" #. i18n: "poster" is a key used by many newsreaders. probably safest to keep this key in english. #: ../pan/gui/post-ui.cc:2673 #, fuzzy msgid "" "The newsgroups where replies to your message should go. This is only needed " "if it differs from the \"Newsgroups\" header.\n" "\n" "To direct all replies to your email address, use \"Followup-To: poster\"" msgstr "mesazh është Për titull Për" #: ../pan/gui/post-ui.cc:2679 #, fuzzy msgid "_Reply-To" msgstr "Përgjigju Për" #: ../pan/gui/post-ui.cc:2687 #, fuzzy msgid "" "The email account where mail replies to your posted message should go. This " "is only needed if it differs from the \"From\" header." msgstr "mail mesazh është Nga titull." #: ../pan/gui/post-ui.cc:2693 #, fuzzy msgid "_Custom Headers" msgstr "E personalizuar" #: ../pan/gui/post-ui.cc:2717 #, fuzzy msgid "Add \"_User-Agent\" header" msgstr "Shto Përdoruesi Agjenti titull" #: ../pan/gui/post-ui.cc:2724 #, fuzzy msgid "Add \"Message-_Id\" header" msgstr "Shto Mesazh titull" #: ../pan/gui/post-ui.cc:2855 #, fuzzy msgid "Select Parts" msgstr "Zgjidh gërmat" #: ../pan/gui/post-ui.cc:2866 msgid "_Parts" msgstr "" #: ../pan/gui/post-ui.cc:3022 #, fuzzy msgid "Post Article" msgstr "Artikull" #: ../pan/gui/post-ui.cc:3043 #, fuzzy msgid "_Message" msgstr "Mesazh" #: ../pan/gui/post-ui.cc:3044 #, fuzzy msgid "More _Headers" msgstr "Më shumë" #: ../pan/gui/post-ui.cc:3045 #, fuzzy msgid "File _Queue" msgstr "File Dalja" #: ../pan/gui/post-ui.cc:3077 ../pan/gui/profiles-dialog.cc:478 #, fuzzy, no-c-format msgid "On %d, %n wrote:" msgstr "Në j:" #: ../pan/gui/post-ui.cc:3106 msgid "Add files to queue" msgstr "" #: ../pan/gui/post-ui.cc:3184 msgid "Save Upload Queue as NZB File" msgstr "" #: ../pan/gui/prefs.cc:343 #, c-format msgid "Couldn't parse %s color \"%s\"" msgstr "" #: ../pan/gui/prefs-ui.cc:120 msgid "Grab Key" msgstr "" #: ../pan/gui/prefs-ui.cc:126 #, c-format msgid "" "Press the combination of the keys\n" "you want to use for \"%s\"." msgstr "" #: ../pan/gui/prefs-ui.cc:166 #, fuzzy msgid "Edit Hotkey" msgstr "Ndrysho Filtrat" #: ../pan/gui/prefs-ui.cc:228 msgid "Error: Shortkey is invalid!" msgstr "" #: ../pan/gui/prefs-ui.cc:244 #, fuzzy msgid "Error: Shortkey already exists!" msgstr "A Serveri me emri ekziston." #: ../pan/gui/prefs-ui.cc:535 #, fuzzy msgid "Show only icons" msgstr "Profili Informacione" #: ../pan/gui/prefs-ui.cc:536 #, fuzzy msgid "Show only text" msgstr "Paraqitja Shfaq p" #: ../pan/gui/prefs-ui.cc:537 #, fuzzy msgid "Show icons and text" msgstr "Ruaj a në:" #: ../pan/gui/prefs-ui.cc:576 #, fuzzy msgid "Use GNOME Preferences" msgstr "Pan Preferimet" #: ../pan/gui/prefs-ui.cc:577 #, fuzzy msgid "Use KDE Preferences" msgstr "Pan Preferimet" #: ../pan/gui/prefs-ui.cc:578 #, fuzzy msgid "Use OS X Preferences" msgstr "Pan Preferimet" #: ../pan/gui/prefs-ui.cc:579 #, fuzzy msgid "Use Windows Preferences" msgstr "Pan Preferimet" #: ../pan/gui/prefs-ui.cc:580 #, fuzzy msgid "Custom Command:" msgstr "Printo Komanda:" #: ../pan/gui/prefs-ui.cc:632 msgid "Disabled" msgstr "" #: ../pan/gui/prefs-ui.cc:633 msgid "Only new (Score == 0)" msgstr "" #: ../pan/gui/prefs-ui.cc:634 #, fuzzy msgid "9999 or more" msgstr "Rezultatet nga" #: ../pan/gui/prefs-ui.cc:635 msgid "5000 to 9998" msgstr "" #: ../pan/gui/prefs-ui.cc:636 msgid "1 to 4999" msgstr "" #: ../pan/gui/prefs-ui.cc:637 msgid "-9998 to -1" msgstr "" #: ../pan/gui/prefs-ui.cc:638 #, fuzzy msgid "-9999 or less" msgstr "Rezultatet nga" #: ../pan/gui/prefs-ui.cc:702 #, c-format msgid "Select default global charset. Current setting : %s ." msgstr "" #: ../pan/gui/prefs-ui.cc:738 msgid "Global Charset Settings" msgstr "" #: ../pan/gui/prefs-ui.cc:832 ../pan/gui/task-pane.cc:770 #, fuzzy msgid "State" msgstr "Gjendja" #: ../pan/gui/prefs-ui.cc:866 msgid "Enabled" msgstr "" #: ../pan/gui/prefs-ui.cc:870 #, fuzzy msgid "Column Name" msgstr "Kollonë" #: ../pan/gui/prefs-ui.cc:908 #, fuzzy msgid "Pan: Preferences" msgstr "Pan Preferimet" #: ../pan/gui/prefs-ui.cc:923 #, fuzzy msgid "Mouse" msgstr "Miu" #: ../pan/gui/prefs-ui.cc:925 #, fuzzy msgid "Single-click activates, rather than selects, _groups" msgstr "E vetme" #: ../pan/gui/prefs-ui.cc:927 #, fuzzy msgid "Single-click activates, rather than selects, _articles" msgstr "E vetme" #: ../pan/gui/prefs-ui.cc:930 #, fuzzy msgid "Groups" msgstr "Grupet" #: ../pan/gui/prefs-ui.cc:932 #, fuzzy msgid "Get new headers in subscribed groups on _startup" msgstr "E re në I regjistruar" #: ../pan/gui/prefs-ui.cc:934 #, fuzzy msgid "Get new headers when _entering group" msgstr "Shkarkimi i ri a grupi" #: ../pan/gui/prefs-ui.cc:936 #, fuzzy msgid "Mark entire group _read when leaving group" msgstr "grupi a grupi" #: ../pan/gui/prefs-ui.cc:938 #, fuzzy msgid "Mark entire group read before getting _new headers" msgstr "grupi a grupi" #: ../pan/gui/prefs-ui.cc:940 #, fuzzy msgid "E_xpand all threads when entering group" msgstr "Shkarkimi i ri a grupi" #: ../pan/gui/prefs-ui.cc:945 #, fuzzy msgid "Articles" msgstr "Artikull është" #: ../pan/gui/prefs-ui.cc:947 msgid "Space selects next article rather than next unread" msgstr "" #: ../pan/gui/prefs-ui.cc:949 #, fuzzy msgid "Expand threads upon selection" msgstr "Ndrysho Shto Zgjedhja" #: ../pan/gui/prefs-ui.cc:951 msgid "Always show article deletion confirmation dialog" msgstr "" #: ../pan/gui/prefs-ui.cc:953 #, fuzzy msgid "Smooth scrolling" msgstr "S:" #: ../pan/gui/prefs-ui.cc:958 #, fuzzy msgid "Article Cache" msgstr "Artikull Cache" #: ../pan/gui/prefs-ui.cc:959 msgid "Clear article cache on shutdown" msgstr "" #: ../pan/gui/prefs-ui.cc:962 msgid "Size of article cache (in MiB) :" msgstr "" #: ../pan/gui/prefs-ui.cc:967 #, fuzzy msgid "File extension for Cached Articles: " msgstr "Lexo" #: ../pan/gui/prefs-ui.cc:972 msgid "Tabs" msgstr "" #: ../pan/gui/prefs-ui.cc:977 msgid "_Behavior" msgstr "" #: ../pan/gui/prefs-ui.cc:977 msgid "Behavior" msgstr "" #: ../pan/gui/prefs-ui.cc:983 msgid "Language Settings" msgstr "" #. systray and notify popup #: ../pan/gui/prefs-ui.cc:992 msgid "System Tray Behavior" msgstr "" #: ../pan/gui/prefs-ui.cc:994 msgid "Hide to system tray" msgstr "" #: ../pan/gui/prefs-ui.cc:996 msgid "Start Pan minimized" msgstr "" #: ../pan/gui/prefs-ui.cc:999 #, fuzzy msgid "Show notifications" msgstr "Profili Informacione" #. allow multiple instances (seperate, not communicating with dbus) #: ../pan/gui/prefs-ui.cc:1004 msgid "Startup Behavior" msgstr "" #: ../pan/gui/prefs-ui.cc:1006 msgid "Allow multiple instances of Pan" msgstr "" #: ../pan/gui/prefs-ui.cc:1011 #, fuzzy msgid "Autosave Article Draft" msgstr "Lexo Artikull" #: ../pan/gui/prefs-ui.cc:1013 #, fuzzy msgid "Minutes to autosave the current Article Draft: " msgstr "Lexo Artikull" #: ../pan/gui/prefs-ui.cc:1018 #, fuzzy msgid "Autosave Articles" msgstr "Ruaj Të bashkangjitur." #: ../pan/gui/prefs-ui.cc:1020 msgid "Minutes to autosave newsrc files: " msgstr "" #: ../pan/gui/prefs-ui.cc:1026 msgid "_Miscellaneous" msgstr "" #: ../pan/gui/prefs-ui.cc:1026 msgid "Miscellaneous" msgstr "" #: ../pan/gui/prefs-ui.cc:1031 #, fuzzy msgid "Pane Layout" msgstr "Planimetria" #: ../pan/gui/prefs-ui.cc:1050 msgid "1=Groups, 2=Headers, 3=Body" msgstr "" #: ../pan/gui/prefs-ui.cc:1052 msgid "1=Groups, 2=Body, 3=Headers" msgstr "" #: ../pan/gui/prefs-ui.cc:1054 msgid "1=Headers, 2=Groups, 3=Body" msgstr "" #: ../pan/gui/prefs-ui.cc:1056 msgid "1=Headers, 2=Body, 3=Groups" msgstr "" #: ../pan/gui/prefs-ui.cc:1058 msgid "1=Body, 2=Groups, 3=Headers" msgstr "" #: ../pan/gui/prefs-ui.cc:1060 msgid "1=Body, 2=Headers, 3=Groups" msgstr "" #: ../pan/gui/prefs-ui.cc:1064 #, fuzzy msgid "Layout" msgstr "Planimetria" #: ../pan/gui/prefs-ui.cc:1069 #, fuzzy msgid "Header Pane Columns" msgstr "Kreu i faqes" #: ../pan/gui/prefs-ui.cc:1073 #, fuzzy msgid "_Headers" msgstr "Headers" #: ../pan/gui/prefs-ui.cc:1073 #, fuzzy msgid "Headers" msgstr "Headers" #: ../pan/gui/prefs-ui.cc:1079 msgid "" "This menu lets you configure Pan to take certain actions on your behalf " "automatically, based on a post's score." msgstr "" #: ../pan/gui/prefs-ui.cc:1082 msgid "_Delete posts scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1084 msgid "Mark posts _read scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1086 msgid "_Cache posts scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1088 msgid "Download _attachments of posts scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1091 #, fuzzy msgid "Actions" msgstr "Veprimet" #: ../pan/gui/prefs-ui.cc:1096 ../pan/gui/prefs-ui.cc:1117 #, fuzzy msgid "Fonts" msgstr "Gërmat" #: ../pan/gui/prefs-ui.cc:1098 #, fuzzy msgid "Use custom font in Group Pane:" msgstr "e personalizuar gërmë në:" #: ../pan/gui/prefs-ui.cc:1103 #, fuzzy msgid "Use custom font in Header Pane:" msgstr "e personalizuar gërmë në:" #: ../pan/gui/prefs-ui.cc:1108 #, fuzzy msgid "Use custom font in Body Pane:" msgstr "e personalizuar gërmë në Trupi:" #: ../pan/gui/prefs-ui.cc:1113 #, fuzzy msgid "Monospace font:" msgstr "e gërmë:" #: ../pan/gui/prefs-ui.cc:1117 #, fuzzy msgid "_Fonts" msgstr "Gërmat" #: ../pan/gui/prefs-ui.cc:1122 #, fuzzy msgid "Header Pane" msgstr "Kreu i faqes" #: ../pan/gui/prefs-ui.cc:1125 ../pan/gui/prefs-ui.cc:1131 #: ../pan/gui/prefs-ui.cc:1137 ../pan/gui/prefs-ui.cc:1143 #: ../pan/gui/prefs-ui.cc:1149 ../pan/gui/prefs-ui.cc:1155 #, fuzzy msgid "Text:" msgstr "Teksti:" #: ../pan/gui/prefs-ui.cc:1127 ../pan/gui/prefs-ui.cc:1133 #: ../pan/gui/prefs-ui.cc:1139 ../pan/gui/prefs-ui.cc:1145 #: ../pan/gui/prefs-ui.cc:1151 ../pan/gui/prefs-ui.cc:1157 #, fuzzy msgid "Background:" msgstr "Sfondi:" #: ../pan/gui/prefs-ui.cc:1129 #, fuzzy msgid "Scores of 9999 or more:" msgstr "Rezultatet nga" #: ../pan/gui/prefs-ui.cc:1135 msgid "Scores from 5000 to 9998:" msgstr "" #: ../pan/gui/prefs-ui.cc:1141 msgid "Scores from 1 to 4999:" msgstr "" #: ../pan/gui/prefs-ui.cc:1147 msgid "Scores from -9998 to -1:" msgstr "" #: ../pan/gui/prefs-ui.cc:1153 #, fuzzy msgid "Scores of -9999 or less:" msgstr "Rezultatet nga" #: ../pan/gui/prefs-ui.cc:1159 msgid "Read collapsed thread:" msgstr "" #: ../pan/gui/prefs-ui.cc:1161 #, fuzzy msgid "Body Pane" msgstr "p" #: ../pan/gui/prefs-ui.cc:1167 #, fuzzy msgid "Quoted text:" msgstr "Paraqitja Pa zë Teksti" #: ../pan/gui/prefs-ui.cc:1168 msgid "URL:" msgstr "" #: ../pan/gui/prefs-ui.cc:1169 #, fuzzy msgid "Signature:" msgstr "Firma File:" #: ../pan/gui/prefs-ui.cc:1171 #, fuzzy msgid "_Colors" msgstr "Ngjyrat" #: ../pan/gui/prefs-ui.cc:1171 #, fuzzy msgid "Colors" msgstr "Ngjyrat" #: ../pan/gui/prefs-ui.cc:1176 #, fuzzy msgid "Preferred Applications" msgstr "Programe" #: ../pan/gui/prefs-ui.cc:1180 #, fuzzy msgid "_Web browser:" msgstr "Web Shfletuesi është URL:" #: ../pan/gui/prefs-ui.cc:1183 #, fuzzy msgid "_Mail reader:" msgstr "Serveri Mail" #: ../pan/gui/prefs-ui.cc:1185 #, fuzzy msgid "_Text editor:" msgstr "Editori" #: ../pan/gui/prefs-ui.cc:1187 #, fuzzy msgid "_Applications" msgstr "Programe" #: ../pan/gui/prefs-ui.cc:1187 #, fuzzy msgid "Applications" msgstr "Programe" #: ../pan/gui/prefs-ui.cc:1192 ../pan/gui/task-pane.cc:512 #, fuzzy msgid "Encoding" msgstr "C:" #: ../pan/gui/prefs-ui.cc:1196 msgid "Default bytes per file (for encoder): " msgstr "" #: ../pan/gui/prefs-ui.cc:1201 #, fuzzy msgid "_Upload" msgstr "Programe" #: ../pan/gui/prefs-ui.cc:1201 msgid "Upload" msgstr "" #: ../pan/gui/prefs-ui.cc:1219 msgid "_Hotkeys" msgstr "" #: ../pan/gui/prefs-ui.cc:1219 msgid "Hotkeys" msgstr "" #: ../pan/gui/profiles-dialog.cc:83 msgid "Please choose your Email Address according to your PGP key's user id." msgstr "" #: ../pan/gui/profiles-dialog.cc:131 #, fuzzy msgid "Posting Profile" msgstr "Pan Profili" #: ../pan/gui/profiles-dialog.cc:143 #, fuzzy msgid "Profile Information" msgstr "Profili Informacione" #: ../pan/gui/profiles-dialog.cc:147 #, fuzzy msgid "_Profile Name:" msgstr "Profili Emri:" #: ../pan/gui/profiles-dialog.cc:150 #, fuzzy msgid "Required Information" msgstr "Kërkohet Informacione" #: ../pan/gui/profiles-dialog.cc:154 #, fuzzy msgid "_Full Name:" msgstr "Emri dhe _mbiemri:" #: ../pan/gui/profiles-dialog.cc:158 msgid "" "Your Email Address.\n" "Note that this has to match your PGP Signature's Address\n" "if you want to PGP-Sign or Encrypt your messages correctly." msgstr "" #: ../pan/gui/profiles-dialog.cc:162 #, fuzzy msgid "_Email Address:" msgstr "Adresa _Email:" #: ../pan/gui/profiles-dialog.cc:164 #, fuzzy msgid "_Post Articles via:" msgstr "Artikull" #: ../pan/gui/profiles-dialog.cc:167 #, fuzzy msgid "Signature" msgstr "Firma File:" #: ../pan/gui/profiles-dialog.cc:170 #, fuzzy msgid "_Use a Signature" msgstr "Firma File:" #: ../pan/gui/profiles-dialog.cc:174 #, fuzzy msgid "Signature File" msgstr "Zgjidh Firma File" #: ../pan/gui/profiles-dialog.cc:184 #, fuzzy msgid "Text File" msgstr "Vazhdo Artikull" #: ../pan/gui/profiles-dialog.cc:186 #, fuzzy msgid "Text" msgstr "Teksti:" #: ../pan/gui/profiles-dialog.cc:188 #, fuzzy msgid "Command" msgstr "Printo Komanda:" #: ../pan/gui/profiles-dialog.cc:191 #, fuzzy msgid "PGP Signature" msgstr "Firma File:" #: ../pan/gui/profiles-dialog.cc:196 #, fuzzy msgid "Signature Type : " msgstr "Firma File:" #: ../pan/gui/profiles-dialog.cc:223 msgid "X-Face (Avatar)" msgstr "" #: ../pan/gui/profiles-dialog.cc:226 msgid "" "You can add an avatar icon to your articles with a unique X-Face code. \n" "Add the code without the trailing \"X-Face:\" \n" " if it was generated by a helper program (for example http://www.dairiki.org/" "xface/xface.php)." msgstr "" #: ../pan/gui/profiles-dialog.cc:229 msgid "_X-Face:" msgstr "" #: ../pan/gui/profiles-dialog.cc:231 #, fuzzy msgid "Optional Information" msgstr "Me dëshirë Informacione" #: ../pan/gui/profiles-dialog.cc:236 #, fuzzy msgid "" "When posting to Usenet, your article's Message-ID contains a domain name. \n" "You can set a custom domain name here, or leave it blank to let Pan use the " "domain name from your email address." msgstr "" "Kur Mesazh përmban a emri Ti a e personalizuar emri në të bardhë Pan emri." #: ../pan/gui/profiles-dialog.cc:239 #, fuzzy msgid "Message-ID _Domain Name:" msgstr "Mesazh Domain Emri:" #: ../pan/gui/profiles-dialog.cc:243 #, fuzzy, c-format msgid "" "%i for Message-ID\n" "%a for Author and Address\n" "%n for Author name\n" "%d for Date" msgstr "për Mesazh j a për Autori dhe Adresa j j për Autori emri j për Data" #: ../pan/gui/profiles-dialog.cc:244 msgid "_Attribution:" msgstr "" #: ../pan/gui/profiles-dialog.cc:268 msgid "" "Extra headers to be included in your posts, such as\n" "Reply-To: \"Your Name\"\n" "Organization: Your Organization\n" msgstr "" #: ../pan/gui/profiles-dialog.cc:278 #, fuzzy msgid "E_xtra Headers:" msgstr "Shtesë" #: ../pan/gui/profiles-dialog.cc:323 #, fuzzy msgid "Invalid email address." msgstr "E pavlefshme" #: ../pan/gui/profiles-dialog.cc:324 msgid "Please use an address of the form joe@somewhere.org" msgstr "" #: ../pan/gui/profiles-dialog.cc:479 #, fuzzy msgid "New Profile" msgstr "Profil i Ri" #: ../pan/gui/profiles-dialog.cc:525 #, fuzzy msgid "Posting Profiles" msgstr "Veglat Profilet." #: ../pan/gui/profiles-dialog.cc:541 #, fuzzy msgid "Profiles" msgstr "Profili" #: ../pan/gui/save-attach-ui.cc:77 ../pan/gui/save-ui.cc:77 #, fuzzy, c-format msgid "" "%g - group as one directory (alt.binaries.pictures.trains)\n" "%G - group as nested directory (/alt/binaries/pictures/trains)\n" "%s - subject line excerpt\n" "%S - subject line\n" " \n" "\"/home/user/News/Pan/%g\" becomes\n" "\"/home/user/News/Pan/alt.binaries.pictures.trains\", and\n" "\"/home/user/News/Pan/%G\" becomes\n" "\"/home/user/News/Pan/alt/binaries/pictures/trains\"," msgstr "" "grupi alt j G grupi alt\n" " j shtëpia përdorues Lajme Pan j shtëpia përdorues Lajme Pan alt dhe j " "shtëpia përdorues Lajme Pan G j shtëpia përdorues Lajme Pan alt" #: ../pan/gui/save-attach-ui.cc:223 ../pan/gui/save-ui.cc:242 msgid "Add to the queue sorted by date posted" msgstr "" #: ../pan/gui/save-attach-ui.cc:224 ../pan/gui/save-ui.cc:243 #, fuzzy msgid "Add to the front of the queue" msgstr "Shto nga Aktiviteti Manazhuesi Lista" #: ../pan/gui/save-attach-ui.cc:225 ../pan/gui/save-ui.cc:244 #, fuzzy msgid "Add to the back of the queue" msgstr "Shto nga Aktiviteti Manazhuesi Lista" #: ../pan/gui/save-attach-ui.cc:257 #, fuzzy msgid "Pan: Save Attachments" msgstr "Ruaj Të bashkangjitur" #: ../pan/gui/save-attach-ui.cc:282 ../pan/gui/save-attach-ui.cc:300 #: ../pan/gui/save-ui.cc:296 ../pan/gui/save-ui.cc:314 #, fuzzy msgid "_Location:" msgstr "Veprimet" #: ../pan/gui/save-attach-ui.cc:286 ../pan/gui/save-ui.cc:300 #, fuzzy msgid "Save Articles" msgstr "Ruaj Të bashkangjitur." #: ../pan/gui/save-attach-ui.cc:303 ../pan/gui/save-ui.cc:317 #, c-format msgid "_Group's path: %s" msgstr "" #: ../pan/gui/save-attach-ui.cc:314 ../pan/gui/save-ui.cc:332 msgid "_Priority:" msgstr "" #: ../pan/gui/save-ui.cc:233 #, fuzzy msgid "Save attachments" msgstr "Ruaj Të bashkangjitur" #: ../pan/gui/save-ui.cc:234 #, fuzzy msgid "Save text" msgstr "Ruaj" #: ../pan/gui/save-ui.cc:235 #, fuzzy msgid "Save attachments and text" msgstr "Ruaj a në:" #: ../pan/gui/save-ui.cc:271 #, fuzzy msgid "Pan: Save Articles" msgstr "Pan Ruaj" #: ../pan/gui/save-ui.cc:328 #, fuzzy msgid "_Action:" msgstr "Veprimet" #: ../pan/gui/score-add-ui.cc:89 msgid "is more than" msgstr "" #: ../pan/gui/score-add-ui.cc:90 msgid "is at most" msgstr "" #: ../pan/gui/score-add-ui.cc:112 #, fuzzy msgid "increase the article's score by" msgstr "Paraqitja Mbështill Artikull Trupi" #: ../pan/gui/score-add-ui.cc:113 #, fuzzy msgid "decrease the article's score by" msgstr "Paraqitja Mbështill Artikull Trupi" #: ../pan/gui/score-add-ui.cc:114 #, fuzzy msgid "set the article's score to" msgstr "Paraqitja Artikull Rezultatet" #: ../pan/gui/score-add-ui.cc:115 #, fuzzy msgid "watch the article (set its score to 9999)" msgstr "Shpërfill" #: ../pan/gui/score-add-ui.cc:116 #, fuzzy msgid "ignore the article (set its score to -9999)" msgstr "Shpërfill" #: ../pan/gui/score-add-ui.cc:141 #, fuzzy msgid "References" msgstr "Pan Preferimet" #: ../pan/gui/score-add-ui.cc:142 #, fuzzy msgid "Line Count" msgstr "Linja Kollonë" #: ../pan/gui/score-add-ui.cc:143 msgid "Byte Count" msgstr "" #: ../pan/gui/score-add-ui.cc:144 msgid "Crosspost Group Count" msgstr "" #: ../pan/gui/score-add-ui.cc:145 msgid "Age (in days)" msgstr "" #: ../pan/gui/score-add-ui.cc:167 msgid "for the next month" msgstr "" #: ../pan/gui/score-add-ui.cc:168 msgid "for the next six months" msgstr "" #: ../pan/gui/score-add-ui.cc:169 #, fuzzy msgid "forever" msgstr "Serveri" #: ../pan/gui/score-add-ui.cc:194 #, fuzzy msgid "contains" msgstr "përmban" #: ../pan/gui/score-add-ui.cc:195 #, fuzzy msgid "doesn't contain" msgstr "nuk përmban" #: ../pan/gui/score-add-ui.cc:196 #, fuzzy msgid "is" msgstr "është" #: ../pan/gui/score-add-ui.cc:197 #, fuzzy msgid "isn't" msgstr "nuk është" #: ../pan/gui/score-add-ui.cc:198 #, fuzzy msgid "starts with" msgstr "fillon me" #: ../pan/gui/score-add-ui.cc:199 #, fuzzy msgid "ends with" msgstr "mbaron me" #: ../pan/gui/score-add-ui.cc:200 #, fuzzy msgid "matches regex" msgstr "i rregullt shprehje" #: ../pan/gui/score-add-ui.cc:481 #, fuzzy msgid "Another rule already sets this article's score." msgstr "Paraqitja Mbështill Artikull Trupi" #: ../pan/gui/score-add-ui.cc:482 msgid "You may want to go back or delete the old rule." msgstr "" #: ../pan/gui/score-add-ui.cc:553 #, fuzzy msgid "Add and Re_score" msgstr "Shto dhe" #: ../pan/gui/score-add-ui.cc:604 ../pan/gui/score-add-ui.cc:624 #, fuzzy msgid "New Scoring Rule" msgstr "E re Pikë" #: ../pan/gui/score-add-ui.cc:635 msgid "If the group name" msgstr "" #: ../pan/gui/score-add-ui.cc:642 #, fuzzy msgid "And the article's" msgstr "Rreshta:" #: ../pan/gui/score-view-ui.cc:56 #, fuzzy msgid "Close and Re_score" msgstr "Mbyll dhe" #: ../pan/gui/score-view-ui.cc:154 #, c-format msgid "File %s, Lines %d - %d" msgstr "" #: ../pan/gui/score-view-ui.cc:182 #, fuzzy msgid "Pan: Article's Scores" msgstr "Pan Paraqitja Artikull Rezultatet" #: ../pan/gui/score-view-ui.cc:208 #, fuzzy msgid "Add" msgstr "shto" #: ../pan/gui/score-view-ui.cc:213 #, fuzzy msgid "New Score" msgstr "E re Pikë" #: ../pan/gui/score-view-ui.cc:218 msgid "Criteria" msgstr "" #: ../pan/gui/score-view-ui.cc:241 #, fuzzy msgid "Add a New Scoring Rule" msgstr "Shto a i ri" #: ../pan/gui/score-view-ui.cc:248 #, fuzzy msgid "Remove the Selected Scoring Rule" msgstr "Hiq" #: ../pan/gui/server-ui.cc:221 msgid "Please specify the server's address." msgstr "" #: ../pan/gui/server-ui.cc:264 msgid "Import SSL certificate (PEM format) from File" msgstr "" #. create the dialog #: ../pan/gui/server-ui.cc:290 ../pan/gui/server-ui.cc:869 #, fuzzy msgid "Add a Server" msgstr "Shto a i ri server" #: ../pan/gui/server-ui.cc:290 ../pan/gui/server-ui.cc:875 #, fuzzy msgid "Edit a Server's Settings" msgstr "Tjetër Rregullimet" #: ../pan/gui/server-ui.cc:310 #, fuzzy msgid "Location" msgstr "Veprimet" #: ../pan/gui/server-ui.cc:314 #, fuzzy msgid "The news server's actual address, e.g. \"news.mynewsserver.com\"" msgstr "server e" #: ../pan/gui/server-ui.cc:315 #, fuzzy msgid "_Address:" msgstr "_Adresa:" #: ../pan/gui/server-ui.cc:319 #, fuzzy msgid "The news server's port number. Typically 119." msgstr "server është gjithmonë." #: ../pan/gui/server-ui.cc:320 msgid "Por_t:" msgstr "" #: ../pan/gui/server-ui.cc:323 msgid "Login (if Required)" msgstr "" #: ../pan/gui/server-ui.cc:327 #, fuzzy msgid "_Username:" msgstr "_Përdoruesi:" #: ../pan/gui/server-ui.cc:328 msgid "" "The username to give the server when asked. If your server doesn't require " "authentication, you can leave this blank." msgstr "" #: ../pan/gui/server-ui.cc:332 #, fuzzy msgid "_Password:" msgstr "_Fjalëkalimi:" #: ../pan/gui/server-ui.cc:333 msgid "" "The password to give the server when asked. If your server doesn't require " "authentication, you can leave this blank." msgstr "" #: ../pan/gui/server-ui.cc:336 msgid "Settings" msgstr "" #: ../pan/gui/server-ui.cc:343 #, fuzzy msgid "Connection _Limit:" msgstr "Lidhja Kufiri:" #: ../pan/gui/server-ui.cc:347 msgid "After Two Weeks" msgstr "" #: ../pan/gui/server-ui.cc:348 msgid "After One Month" msgstr "" #: ../pan/gui/server-ui.cc:349 msgid "After Two Months" msgstr "" #: ../pan/gui/server-ui.cc:350 msgid "After Three Months" msgstr "" #: ../pan/gui/server-ui.cc:351 msgid "After Six Months" msgstr "" #: ../pan/gui/server-ui.cc:352 msgid "Never Expire Old Articles" msgstr "" #: ../pan/gui/server-ui.cc:366 msgid "E_xpire Old Articles:" msgstr "" #: ../pan/gui/server-ui.cc:370 #, fuzzy msgid "Primary" msgstr "Prioriteti" #: ../pan/gui/server-ui.cc:371 msgid "Fallback" msgstr "" #: ../pan/gui/server-ui.cc:385 #, fuzzy msgid "Server Rank:" msgstr "Serverët" #: ../pan/gui/server-ui.cc:389 msgid "" "Fallback servers are used for articles that can't be found on the " "primaries. One common approach is to use free servers as primaries and " "subscription servers as fallbacks." msgstr "" #: ../pan/gui/server-ui.cc:396 msgid "Security" msgstr "" #: ../pan/gui/server-ui.cc:401 msgid "Use Plaintext (Unsecured) Connections" msgstr "" #: ../pan/gui/server-ui.cc:402 #, fuzzy msgid "Use Secure SSL Connections" msgstr "Jo Lidhjet" #: ../pan/gui/server-ui.cc:418 msgid "TLS (SSL) Options:" msgstr "" #: ../pan/gui/server-ui.cc:423 msgid "" "You can set the option for using/disabling secure SSL/TLS connections here. " "If you enable SSL/TLS, your data is encrypted and secure. It is encouraged " "to use this option for privacy reasons." msgstr "" #: ../pan/gui/server-ui.cc:428 msgid "Always trust this server's certificate" msgstr "" #: ../pan/gui/server-ui.cc:602 #, c-format msgid "Really delete \"%s\"?" msgstr "" #: ../pan/gui/server-ui.cc:691 msgid "No information available." msgstr "" #: ../pan/gui/server-ui.cc:697 #, c-format msgid "Server Certificate for '%s'" msgstr "" #: ../pan/gui/server-ui.cc:795 #, c-format msgid "Really delete certificate for \"%s\"?" msgstr "" #. dialog #: ../pan/gui/server-ui.cc:822 ../pan/gui/server-ui.cc:843 #: ../pan/gui/server-ui.cc:941 #, fuzzy msgid "Servers" msgstr "Serverët" #: ../pan/gui/server-ui.cc:882 #, fuzzy msgid "Remove a Server" msgstr "E re Serveri" #. dialog #: ../pan/gui/server-ui.cc:915 msgid "SSL Certificates" msgstr "" #: ../pan/gui/server-ui.cc:936 msgid "Certificates" msgstr "" #: ../pan/gui/server-ui.cc:967 msgid "Import Certificate" msgstr "" #: ../pan/gui/server-ui.cc:973 msgid "Inspect Certificate" msgstr "" #: ../pan/gui/server-ui.cc:980 #, fuzzy msgid "Remove Certificate" msgstr "E re Serveri" #: ../pan/gui/task-pane.cc:143 #, c-format msgid "" "\n" "Upload\n" "\n" "Subject: \"%s\"\n" "From: %s\n" "Groups: %s\n" "Sourcefile: %s\n" msgstr "" #: ../pan/gui/task-pane.cc:155 #, c-format msgid "" "\n" "Download\n" "\n" "Subject: \"%s\"\n" "From: %s\n" "Date: %s\n" "Groups: %s\n" "Save Path: %s\n" msgstr "" #: ../pan/gui/task-pane.cc:157 #, fuzzy msgid "unknown" msgstr "Nuk njihet" #: ../pan/gui/task-pane.cc:263 msgid "Choose new destination for selected Tasks" msgstr "" #: ../pan/gui/task-pane.cc:417 #, fuzzy, c-format msgid "Pan: Tasks (%d Queued, %d Running, %d Stopped)" msgstr "Pan Aktiviteti Manazhuesi Në ekzekutim U ndërpre" #: ../pan/gui/task-pane.cc:419 #, fuzzy, c-format msgid "Pan: Tasks (%d Queued, %d Running)" msgstr "Pan Aktiviteti Manazhuesi Në ekzekutim" #: ../pan/gui/task-pane.cc:421 #, fuzzy, c-format msgid "Pan: Tasks" msgstr "Pan Aktiviteti Manazhuesi" #: ../pan/gui/task-pane.cc:446 #, c-format msgid "%lu selected, %s" msgstr "" #: ../pan/gui/task-pane.cc:510 #, fuzzy msgid "Running" msgstr "Në ekzekutim" #: ../pan/gui/task-pane.cc:511 msgid "Decoding" msgstr "" #: ../pan/gui/task-pane.cc:513 msgid "Queued for Decode" msgstr "" #: ../pan/gui/task-pane.cc:514 msgid "Queued for Encode" msgstr "" #: ../pan/gui/task-pane.cc:515 msgid "Queued" msgstr "" #: ../pan/gui/task-pane.cc:516 #, fuzzy msgid "Stopped" msgstr "U ndërpre" #: ../pan/gui/task-pane.cc:517 #, fuzzy msgid "Removing" msgstr "Duke hequr" #: ../pan/gui/task-pane.cc:546 #, fuzzy, c-format msgid "%d%% Done" msgstr "U plotësua" #: ../pan/gui/task-pane.cc:552 #, fuzzy, c-format msgid "%d:%02d:%02d Remaining (%d @ %lu KiB/s)" msgstr "KB" #: ../pan/gui/task-pane.cc:646 ../pan/gui/task-pane.cc:647 #, fuzzy msgid "Move To Top" msgstr "Lëvize I zgjedhur Aktiviteti Poshtë" #: ../pan/gui/task-pane.cc:651 ../pan/gui/task-pane.cc:652 #, fuzzy msgid "Move To Bottom" msgstr "Lëvize I zgjedhur Aktiviteti Poshtë" #: ../pan/gui/task-pane.cc:656 ../pan/gui/task-pane.cc:657 #, fuzzy msgid "Stop Task" msgstr "Jo Aktivitete" #: ../pan/gui/task-pane.cc:661 ../pan/gui/task-pane.cc:662 #, fuzzy msgid "Delete Task" msgstr "Elemino" #: ../pan/gui/task-pane.cc:666 ../pan/gui/task-pane.cc:667 #, fuzzy msgid "Restart Task" msgstr "Rifillo I zgjedhur Aktiviteti" #: ../pan/gui/task-pane.cc:671 ../pan/gui/task-pane.cc:672 msgid "Change Download Destination" msgstr "" #: ../pan/gui/task-pane.cc:729 #, fuzzy msgid "_Online" msgstr "Pan është Në linjë" #: ../pan/gui/task-pane.cc:746 #, fuzzy msgid "Restart Tasks" msgstr "Rifillo I zgjedhur Aktiviteti" #: ../pan/gui/task-pane.cc:748 #, fuzzy msgid "Stop Tasks" msgstr "Jo Aktivitete" #: ../pan/gui/task-pane.cc:750 #, fuzzy msgid "Delete Tasks" msgstr "Elemino" #: ../pan/gui/url.cc:123 #, fuzzy, c-format msgid "Error starting URL: %s (Command was: %s)" msgstr "Gabim" #: ../pan/tasks/decoder.cc:115 #, fuzzy, c-format msgid "Couldn't save file \"%s\": %s" msgstr "Gabim" #: ../pan/tasks/decoder.cc:137 ../pan/tasks/encoder.cc:136 msgid "Error initializing uulib" msgstr "" #: ../pan/tasks/decoder.cc:152 ../pan/tasks/socket-impl-gio.cc:352 #: ../pan/tasks/socket-impl-openssl.cc:634 #, fuzzy, c-format msgid "Error reading from %s: %s" msgstr "Gabim socket" #: ../pan/tasks/decoder.cc:192 #, c-format msgid "Saved \"%s\"" msgstr "" #: ../pan/tasks/decoder.cc:199 #, fuzzy, c-format msgid "" "Error saving \"%s\":\n" "%s." msgstr "Gabim" #: ../pan/tasks/decoder.cc:314 ../pan/tasks/task-article.cc:350 #, fuzzy, c-format msgid "Decoding %s" msgstr "Shi" #: ../pan/tasks/encoder.cc:102 ../pan/tasks/encoder.cc:155 #, fuzzy, c-format msgid "Error loading %s from cache." msgstr "Gabim socket." #: ../pan/tasks/encoder.cc:177 #, fuzzy, c-format msgid "Error encoding %s: %s" msgstr "Gabim" #: ../pan/tasks/encoder.cc:269 #, fuzzy, c-format msgid "Encoding %s" msgstr "C:" #: ../pan/tasks/nntp.cc:126 #, c-format msgid "%s requires a username, but none is set." msgstr "" #: ../pan/tasks/nntp.cc:139 #, c-format msgid "%s requires a password, but none is set." msgstr "" #: ../pan/tasks/nntp.cc:205 #, c-format msgid "Sending \"%s\" to %s returned an error: %s" msgstr "" #: ../pan/tasks/nntp.cc:228 #, c-format msgid "Sending \"%s\" to %s returned an unrecognized response: \"%s\"" msgstr "" #: ../pan/tasks/nntp-pool.cc:222 #, fuzzy, c-format msgid "Unable to connect to \"%s\"" msgstr "mail server" #: ../pan/tasks/socket-impl-gio.cc:173 ../pan/tasks/socket-impl-gio.cc:211 #: ../pan/tasks/socket-impl-openssl.cc:214 #: ../pan/tasks/socket-impl-openssl.cc:252 #, fuzzy, c-format msgid "Error connecting to \"%s\"" msgstr "Gabim" #: ../pan/tasks/socket-impl-gio.cc:351 ../pan/tasks/socket-impl-openssl.cc:633 #, fuzzy msgid "Unknown Error" msgstr "Nuk njihet" #: ../pan/tasks/task-article.cc:61 ../pan/tasks/task-article.cc:156 #: ../pan/tasks/task-article.cc:159 #, fuzzy, c-format msgid "Saving %s" msgstr "Duke ruajtur" #: ../pan/tasks/task-article.cc:63 #, fuzzy, c-format msgid "Reading %s" msgstr "Shi" #: ../pan/tasks/task-article.cc:322 #, c-format msgid "Article \"%s\" is incomplete -- the news server(s) don't have part %s" msgstr "" #: ../pan/tasks/task-groups.cc:40 #, fuzzy, c-format msgid "Getting group list from \"%s\"" msgstr "i ri server" #: ../pan/tasks/task-groups.cc:122 #, fuzzy, c-format msgid "Fetched %lu Groups" msgstr "për" #: ../pan/tasks/task-post.cc:35 #, fuzzy, c-format msgid "Posting \"%s\"" msgstr "Veglat Profilet." #: ../pan/tasks/task-post.cc:76 #, fuzzy, c-format msgid "Posting of \"%s\" failed: %s" msgstr "trupi" #: ../pan/tasks/task-post.cc:81 #, c-format msgid "Posting of \"%s\" succesful: %s" msgstr "" #: ../pan/tasks/task-upload.cc:51 #, fuzzy, c-format msgid "Uploading %s" msgstr "Shi" #: ../pan/tasks/task-upload.cc:249 #, c-format msgid "Uploading %s - Part %d of %d" msgstr "" #: ../pan/tasks/task-upload.cc:251 #, c-format msgid "Uploading Message body with Subject \"%s\"" msgstr "" #: ../pan/tasks/task-upload.cc:308 #, c-format msgid "Posting of File %s (Part %d of %d) failed: No Posts allowed by server." msgstr "" #: ../pan/tasks/task-upload.cc:316 #, fuzzy, c-format msgid "Posting of File %s (Part %d of %d) failed: %s" msgstr "trupi" #: ../pan/tasks/task-upload.cc:326 ../pan/tasks/task-upload.cc:333 #, c-format msgid "Posting of file %s (Part %d of %d) succesful: %s" msgstr "" #: ../pan/tasks/task-upload.cc:343 #, fuzzy, c-format msgid "Posting of file %s succesful: %s" msgstr "trupi" #: ../pan/tasks/task-upload.cc:347 #, c-format msgid "" "Posting of file %s not completely successful: Check the log (right-click on " "list item) !" msgstr "" #: ../pan/tasks/task-upload.cc:364 #, c-format msgid "" "Posting of file %s not successful: Check the log (right-click on list item) !" msgstr "" #: ../pan/tasks/task-xover.cc:79 #, fuzzy, c-format msgid "Getting all headers for \"%s\"" msgstr "për" #: ../pan/tasks/task-xover.cc:81 #, fuzzy, c-format msgid "Getting new headers for \"%s\"" msgstr "i ri për" #. SAMPLE #: ../pan/tasks/task-xover.cc:83 #, fuzzy, c-format msgid "Sampling headers for \"%s\"" msgstr "për" #: ../pan/tasks/task-xover.cc:369 #, fuzzy, c-format msgid "%s (%lu parts, %lu articles)" msgstr "rreshta në" #: ../pan/tasks/task-xoverinfo.cc:78 #, fuzzy, c-format msgid "Getting header counts for \"%s\"" msgstr "për" #: ../pan/usenet-utils/filter-info.cc:163 #, fuzzy msgid "article doesn't have attachments" msgstr "Artikull nuk" #: ../pan/usenet-utils/filter-info.cc:167 #, fuzzy msgid "the article has attachments" msgstr "Artikull jo" #: ../pan/usenet-utils/filter-info.cc:171 #, fuzzy msgid "the article isn't cached locally" msgstr "Artikull trupi" #: ../pan/usenet-utils/filter-info.cc:175 #, fuzzy msgid "the article is cached locally" msgstr "Artikull trupi është" #: ../pan/usenet-utils/filter-info.cc:179 #, fuzzy msgid "the article wasn't posted by you" msgstr "Artikull nuk nga" #: ../pan/usenet-utils/filter-info.cc:183 #, fuzzy msgid "the article was posted by you" msgstr "Artikull nga" #: ../pan/usenet-utils/filter-info.cc:187 #, fuzzy msgid "the article has been read" msgstr "Artikull është" #: ../pan/usenet-utils/filter-info.cc:191 #, fuzzy msgid "the article hasn't been read" msgstr "Artikull është" #: ../pan/usenet-utils/filter-info.cc:195 #, fuzzy, c-format msgid "the article is less than %ld bytes long" msgstr "Artikull është bytes" #: ../pan/usenet-utils/filter-info.cc:200 #, fuzzy, c-format msgid "the article is at least %ld bytes long" msgstr "Artikull është bytes" #: ../pan/usenet-utils/filter-info.cc:205 #, fuzzy, c-format msgid "the article is less than %ld lines long" msgstr "Artikull është rreshta" #: ../pan/usenet-utils/filter-info.cc:210 #, fuzzy, c-format msgid "the article is at least %ld lines long" msgstr "Artikull është rreshta" #: ../pan/usenet-utils/filter-info.cc:215 #, fuzzy, c-format msgid "the article is less than %ld days old" msgstr "Artikull është tjetër ditë" #: ../pan/usenet-utils/filter-info.cc:220 #, fuzzy, c-format msgid "the article is at least %ld days old" msgstr "Artikull është N ditë" #: ../pan/usenet-utils/filter-info.cc:225 #, fuzzy, c-format msgid "the article was posted to less than %ld groups" msgstr "Artikull është" #: ../pan/usenet-utils/filter-info.cc:230 #, fuzzy, c-format msgid "the article was posted to at least %ld groups" msgstr "Artikull N:" #: ../pan/usenet-utils/filter-info.cc:235 #, fuzzy, c-format msgid "the article's score is less than %ld" msgstr "Paraqitja Artikull Rezultatet" #: ../pan/usenet-utils/filter-info.cc:240 #, fuzzy, c-format msgid "the article's score is %ld or higher" msgstr "Paraqitja Artikull Rezultatet" #: ../pan/usenet-utils/filter-info.cc:249 #: ../pan/usenet-utils/filter-info.cc:259 #, fuzzy, c-format msgid "%s doesn't contain \"%s\"" msgstr "nuk përmban" #: ../pan/usenet-utils/filter-info.cc:250 #: ../pan/usenet-utils/filter-info.cc:260 #, c-format msgid "%s isn't \"%s\"" msgstr "" #: ../pan/usenet-utils/filter-info.cc:251 #: ../pan/usenet-utils/filter-info.cc:261 #, fuzzy, c-format msgid "%s doesn't begin with \"%s\"" msgstr "nuk përfundon me" #: ../pan/usenet-utils/filter-info.cc:252 #: ../pan/usenet-utils/filter-info.cc:262 #, fuzzy, c-format msgid "%s doesn't end with \"%s\"" msgstr "nuk përfundon me" #: ../pan/usenet-utils/filter-info.cc:253 #: ../pan/usenet-utils/filter-info.cc:263 #, c-format msgid "%s doesn't match the regex \"%s\"" msgstr "" #: ../pan/usenet-utils/filter-info.cc:275 #, fuzzy, c-format msgid "%s contains \"%s\"" msgstr "përmban" #: ../pan/usenet-utils/filter-info.cc:276 #, c-format msgid "%s is \"%s\"" msgstr "" #: ../pan/usenet-utils/filter-info.cc:277 #, c-format msgid "%s begins with \"%s\"" msgstr "" #: ../pan/usenet-utils/filter-info.cc:278 #, fuzzy, c-format msgid "%s ends with \"%s\"" msgstr "mbaron me" #: ../pan/usenet-utils/filter-info.cc:279 #, fuzzy, c-format msgid "%s matches the regex \"%s\"" msgstr "i rregullt shprehje" #: ../pan/usenet-utils/filter-info.cc:285 msgid "Any of these tests fail:" msgstr "" #: ../pan/usenet-utils/filter-info.cc:292 msgid "All of these tests pass:" msgstr "" #: ../pan/usenet-utils/filter-info.cc:299 msgid "None of these tests pass:" msgstr "" #: ../pan/usenet-utils/filter-info.cc:306 msgid "Any of these tests pass:" msgstr "" #: ../pan/usenet-utils/gnksa.cc:878 #, fuzzy, c-format msgid "No email address provided; generating message-id with domain \"%s\"" msgstr "Jo mesazh me" #: ../pan/usenet-utils/message-check.cc:124 #, fuzzy msgid "Warning: Reply seems to be top-posted." msgstr "KUJDES Përgjigju sipër." #: ../pan/usenet-utils/message-check.cc:145 #, fuzzy msgid "Warning: The signature marker should be \"-- \", not \"--\"." msgstr "KUJDES nuk." #: ../pan/usenet-utils/message-check.cc:162 #, fuzzy msgid "Warning: Signature prefix with no signature." msgstr "KUJDES Firma me jo." #: ../pan/usenet-utils/message-check.cc:167 #, fuzzy msgid "Warning: Signature is more than 4 lines long." msgstr "KUJDES Firma është tjetër rreshta" #: ../pan/usenet-utils/message-check.cc:172 #, fuzzy msgid "Warning: Signature is more than 80 characters wide." msgstr "KUJDES Firma është tjetër." #: ../pan/usenet-utils/message-check.cc:198 #, fuzzy, c-format msgid "Warning: %d line is more than 80 characters wide." msgid_plural "Warning: %d lines are more than 80 characters wide." msgstr[0] "KUJDES rreshta tjetër." msgstr[1] "KUJDES rreshta tjetër." #: ../pan/usenet-utils/message-check.cc:223 #, fuzzy msgid "Error: Message is empty." msgstr "GABIM Mesazh është." #: ../pan/usenet-utils/message-check.cc:258 #, fuzzy msgid "Warning: The message is entirely quoted text!" msgstr "KUJDES mesazh është tekst!" #: ../pan/usenet-utils/message-check.cc:259 #, fuzzy msgid "Warning: The message is mostly quoted text." msgstr "KUJDES mesazh është tekst." #: ../pan/usenet-utils/message-check.cc:309 #, fuzzy msgid "Error: Message appears to have no new content." msgstr "GABIM Mesazh jo i ri përmbajtja." #: ../pan/usenet-utils/message-check.cc:344 #: ../pan/usenet-utils/message-check.cc:383 #, c-format msgid "" "Warning: The posting profile's server doesn't carry newsgroup\n" "\t\"%s\".\n" "\tIf the group name is correct, switch profiles in the \"From:\"\n" "\tline or edit the profile with \"Edit|Manage Posting Profiles\"." msgstr "" #: ../pan/usenet-utils/message-check.cc:355 #, fuzzy msgid "Warning: Following-Up to too many groups." msgstr "KUJDES Sipër." #: ../pan/usenet-utils/message-check.cc:366 #, fuzzy msgid "Error: No Subject specified." msgstr "GABIM Jo." #: ../pan/usenet-utils/message-check.cc:395 #, fuzzy, c-format msgid "Warning: Group \"%s\" is read-only." msgstr "KUJDES është." #: ../pan/usenet-utils/message-check.cc:404 #, fuzzy msgid "Error: Posting to a very large number of groups." msgstr "GABIM a nga." #: ../pan/usenet-utils/message-check.cc:409 #, fuzzy msgid "Warning: Posting to a large number of groups." msgstr "KUJDES a nga." #: ../pan/usenet-utils/message-check.cc:416 #, fuzzy msgid "Warning: Crossposting without setting Followup-To header." msgstr "KUJDES Për." #: ../pan/usenet-utils/message-check.cc:441 #, fuzzy msgid "Error: Bad email address." msgstr "Adresa _Email:" #: ../pan/usenet-utils/message-check.cc:450 msgid "Warning: Most newsgroups frown upon HTML posts." msgstr "" #: ../pan/usenet-utils/message-check.cc:486 #, fuzzy msgid "Error: No Recipients." msgstr "GABIM Jo." #: ../pan/usenet-utils/scorefile.cc:304 #, c-format msgid "" "Error reading score in %*.*s, line %d: expected 'Expires: MM/DD/YYYY' or " "'Expires: DD-MM-YYYY'." msgstr "" #: ../pan/usenet-utils/scorefile.cc:307 #, c-format msgid "Expired old score from %*.*s, line %d" msgstr "" #: ../pan/usenet-utils/scorefile.cc:380 #, c-format msgid "Error reading score in %*.*s, line %d: unexpected line." msgstr "" #: ../pan/usenet-utils/scorefile.cc:428 #, c-format msgid "Read %lu scoring rules in %lu sections from \"%s\"" msgstr "" #: ../pan/usenet-utils/ssl-utils.h:199 #, fuzzy, c-format msgid "Error printing the server certificate for '%s'" msgstr "Gabim" #: ../pan/usenet-utils/ssl-utils.h:216 #, c-format msgid "" "The current server '%s' sent this security certificate :\n" "\n" msgstr "" #: ../pan/usenet-utils/ssl-utils.h:217 #, c-format msgid "" "Certificate information for server '%s' :\n" "\n" msgstr "" #: ../pan/usenet-utils/ssl-utils.h:219 #, c-format msgid "" "%sIssuer information:\n" "%s\n" "Valid until : %s\n" "\n" "Not valid before : %s\n" "\n" msgstr "" #: ../pan/usenet-utils/text-massager.cc:397 #, fuzzy msgid "> [quoted text muted]" msgstr "tekst" #~ msgid "Read News from Usenet" #~ msgstr "Lexon lajmet nga Usenet" #, fuzzy #~ msgid "_Toggle Flag on for Thread" #~ msgstr "Lexo:" #, fuzzy #~ msgid "Error!" #~ msgstr "Gabim" #, fuzzy #~ msgid "Signer : " #~ msgstr "Firma File:" #, fuzzy #~ msgid "_Signature:" #~ msgstr "Firma File:" #, fuzzy #~ msgid "Creating directory \"%s\"" #~ msgstr "Gabim" #, fuzzy #~ msgid "" #~ "Your copy of libpcre doesn't support UTF-8. UTF-8 regular expressions " #~ "may fail." #~ msgstr "sistemi kopjo nga i rregullt." #, fuzzy #~ msgid "Can't use regular expression \"%s\": %s at position %d" #~ msgstr "i rregullt shprehje" #, fuzzy #~ msgid "_Groups" #~ msgstr "Grupet" #, fuzzy #~ msgid "Read Selected Group" #~ msgstr "Lexo Vazhdo" #, fuzzy #~ msgid "_Mark Group _Read" #~ msgstr "Lexo" #, fuzzy #~ msgid "_Delete Group's Articles" #~ msgstr "Elemino" #, fuzzy #~ msgid "Get New Headers for Selected Groups" #~ msgstr "E re në I zgjedhur" #, fuzzy #~ msgid "Get New Headers for Subscribed Groups" #~ msgstr "E re në I regjistruar" #, fuzzy #~ msgid "Get Headers from Server" #~ msgstr "server" #, fuzzy #~ msgid "Get a new Group list from the Server" #~ msgstr "i ri server" #, fuzzy #~ msgid "Subscribe to Selected Groups" #~ msgstr "I regjistruar" #, fuzzy #~ msgid "Unsubscribe from Selected Groups" #~ msgstr "I regjistruar" #, fuzzy #~ msgid "Save Selected Articles..." #~ msgstr "I zgjedhur" #, fuzzy #~ msgid "Cancel Last Task" #~ msgstr "Anullo E fundit Aktiviteti" #, fuzzy #~ msgid "Clear Header Pane" #~ msgstr "Kreu i faqes" #, fuzzy #~ msgid "Clear Body Pane" #~ msgstr "p" #, fuzzy #~ msgid "Download _Selected Article" #~ msgstr "Elemino" #, fuzzy #~ msgid "Download Selected Article" #~ msgstr "Elemino" #, fuzzy #~ msgid "Read _Selected Article" #~ msgstr "Lexo Vazhdo Artikull" #, fuzzy #~ msgid "Next Unread Group" #~ msgstr "Vazhdo" #, fuzzy #~ msgid "Next Group" #~ msgstr "N" #, fuzzy #~ msgid "Next Watched Article" #~ msgstr "Vazhdo Artikull" #, fuzzy #~ msgid "Next Thread" #~ msgstr "Vazhdo" #, fuzzy #~ msgid "Previous Article" #~ msgstr "Artikull" #, fuzzy #~ msgid "Previous Thread" #~ msgstr "Paraardhëse" #, fuzzy #~ msgid "Parent Article" #~ msgstr "Prindi Artikull" #, fuzzy #~ msgid "_Plonk Author" #~ msgstr "Autori" #, fuzzy #~ msgid "Mark Article as Read" #~ msgstr "Artikull është" #, fuzzy #~ msgid "Mark Article as Unread" #~ msgstr "Artikull është" #, fuzzy #~ msgid "Reply to Author" #~ msgstr "Autori" #, fuzzy #~ msgid "_About..." #~ msgstr "Informacione." #, fuzzy #~ msgid "Abbreviate _Names in Group Pane" #~ msgstr "Paraqitja në" #, fuzzy #~ msgid "Match Only Articles Posted by Me" #~ msgstr "Vetëm" #, fuzzy #~ msgid "Central European (ISO-8859-2)" #~ msgstr "Europa Qendrore" #, fuzzy #~ msgid "Central European (Windows-1250)" #~ msgstr "Europa Qendrore" #, fuzzy #~ msgid "Chinese Simplified (gb2312)" #~ msgstr "Kineze e thjeshtëzuar" #, fuzzy #~ msgid "Chinese Traditional (big5)" #~ msgstr "Kineze tradicionale" #, fuzzy #~ msgid "Cyrillic (KOI8-R)" #~ msgstr "Cyrillic" #, fuzzy #~ msgid "Cyrillic, Ukrainian (KOI8-U)" #~ msgstr "Cyrillic Ukrahinase" #, fuzzy #~ msgid "Western, New (ISO-8859-15)" #~ msgstr "Perëndimore E re" #, fuzzy #~ msgid "Unicode (UTF-8)" #~ msgstr "Unicode 8" #, fuzzy #~ msgid "Pan: " #~ msgstr "Pan Rregullat" #, fuzzy #~ msgid "Group Name" #~ msgstr "Grupi" #, fuzzy #~ msgid "Pan: %s" #~ msgstr "Pan Rregullat" #, fuzzy #~ msgid "Tasks: %u/%u" #~ msgstr "Aktivitete" #, fuzzy #~ msgid "%u Tasks Running, %u Tasks Total" #~ msgstr "Aktivitete Në ekzekutim Aktivitete Gjithsej" #, fuzzy #~ msgid "Wrap the Article Body to 80 Columns" #~ msgstr "Paraqitja Mbështill Artikull Trupi" #, fuzzy #~ msgid "_Close" #~ msgstr "Ngjyrat" #, fuzzy #~ msgid "Close Window" #~ msgstr "Mbyll dritare" #, fuzzy #~ msgid "Cut Text" #~ msgstr "Teksti:" #, fuzzy #~ msgid "Copy Text" #~ msgstr "Mbështill Teksti" #, fuzzy #~ msgid "_Paste" #~ msgstr "Ndrysho Ngjite" #, fuzzy #~ msgid "Paste Text" #~ msgstr "Ruaj" #, fuzzy #~ msgid "Manage Posting Pr_ofiles..." #~ msgstr "Veglat Profilet." #, fuzzy #~ msgid "Western" #~ msgstr "Perëndimore" #, fuzzy #~ msgid "Error loading post.ui: \"%s\"" #~ msgstr "Gabim socket" #, fuzzy #~ msgid "Editors" #~ msgstr "Editori" #, fuzzy #~ msgid "Posting Article" #~ msgstr "Duke ruajtur" #, fuzzy #~ msgid "Add a New Profile" #~ msgstr "Shto a i ri profili" #, fuzzy #~ msgid "Edit the selected profile" #~ msgstr "Ndrysho profili" #, fuzzy #~ msgid "Remove the selected profile" #~ msgstr "Hiq profili" #, fuzzy #~ msgid "Threads" #~ msgstr "Vazhdo" #, fuzzy #~ msgid "Path" #~ msgstr "Autori" #, fuzzy #~ msgid "_Path:" #~ msgstr "Ndrysho Ngjite" #, fuzzy #~ msgid "Group Management" #~ msgstr "Grupi" #, fuzzy #~ msgid "Pan: New Scoring Rule" #~ msgstr "Pan Ndrysho Rregulla" #, fuzzy #~ msgid "For" #~ msgstr "Kartelat" #, fuzzy #~ msgid "Pan: Add a Server" #~ msgstr "Pan Ndrysho Serveri" #, fuzzy #~ msgid "Pan: Edit a Server's Settings" #~ msgstr "Pan Ndrysho Serveri" #, fuzzy #~ msgid "Pan: Servers" #~ msgstr "Pan Serverët" #, fuzzy #~ msgid "to %s" #~ msgstr "Informacione mbi %s" #, fuzzy #~ msgid "Status" #~ msgstr "Gjendja" #, fuzzy #~ msgid "Unable to set group: %s" #~ msgstr "grupi" #, fuzzy #~ msgid "Making a new connection to %*.*s" #~ msgstr "E re për" #, fuzzy #~ msgid "" #~ "Error saving \"%s\":\n" #~ "%s. %s" #~ msgstr "Gabim" #, fuzzy #~ msgid "Warning: Unknown group \"%s\"." #~ msgstr "KUJDES Nuk njihet grupi." #, fuzzy #~ msgid "_Posting" #~ msgstr "Duke ruajtur" #, fuzzy #~ msgid "Post New Article" #~ msgstr "Artikull" #, fuzzy #~ msgid "_Post Article" #~ msgstr "Artikull" #, fuzzy #~ msgid "Error: No Newsgroups specified." #~ msgstr "GABIM Jo." #, fuzzy #~ msgid "Message-Id" #~ msgstr "Mesazh" #, fuzzy #~ msgid "Saved newsrc files in %.1f seconds" #~ msgstr "në në sekonda" #, fuzzy #~ msgid "Use _Monospace Font in Body Pane" #~ msgstr "Paraqitja Gërmat në Trupi" #, fuzzy #~ msgid "%d connections totaling %.1f KiB per second" #~ msgstr "KB sekondë" #, fuzzy #~ msgid "" #~ "Used when email replies to your posts should go somewhere other than the " #~ "email address above. Because Reply-To: is relatively difficult for " #~ "spammers to harvest, it's polite give your email address here if you gave " #~ "an invalid email address above." #~ msgstr "Në përdorim dërgime tjetër Përgjigju Për është për I pavlefshëm." #, fuzzy #~ msgid "_Reply-To Header:" #~ msgstr "Përgjigju Për:" #, fuzzy #~ msgid "Or_ganization Header:" #~ msgstr "Or:" #, fuzzy #~ msgid "Attach this _Signature:" #~ msgstr "Firma:" #, fuzzy #~ msgid "Automatic Downloads" #~ msgstr "Në menyrë automatike Shkarkime" #, fuzzy #~ msgid "Save a_ttachments to path:" #~ msgstr "Ruaj në:" #, fuzzy #~ msgid "UNKNOWN" #~ msgstr "PANJOHUR" #, fuzzy #~ msgid "Decode can't access directory \"%s\"" #~ msgstr "hyrje shtegu" #, fuzzy #~ msgid "Could not decode article - file may be corrupt/incomplete" #~ msgstr "nuk" #, fuzzy #~ msgid "Checksum for `%s' part %d failed - file is corrupt" #~ msgstr "Checksum për është" #, fuzzy #~ msgid "Checksum for `%s' failed - file may be corrupt" #~ msgstr "Checksum për" #, fuzzy #~ msgid "Use custom colors in _Header Pane" #~ msgstr "e personalizuar gërmë në:" #, fuzzy #~ msgid "Header Pane background:" #~ msgstr "Kreu i faqes" #, fuzzy #~ msgid "Unread articles:" #~ msgstr "Rreshta:" #, fuzzy #~ msgid "" #~ "Unsupported data version (%d) for server properties. Are you running an " #~ "old version of Pan by accident?" #~ msgstr "versioni për në punim e sipër versioni nga Pan nga?" #, fuzzy #~ msgid "Couldn't create temporary file: %s" #~ msgstr "nuk" #, fuzzy #~ msgid "Error renaming \"%s\" as \"%s\": %s." #~ msgstr "Gabim." #, fuzzy #~ msgid "Body" #~ msgstr "Trupi" #, fuzzy #~ msgid "Open a Draft Article from Disk" #~ msgstr "Skaduar" #, fuzzy #~ msgid "subject" #~ msgstr "Subjekti" #, fuzzy #~ msgid "Change" #~ msgstr "Ndrysho" #, fuzzy #~ msgid "Connections" #~ msgstr "Lidhjet" #, fuzzy #~ msgid "Active" #~ msgstr "Veprimet" #, fuzzy #~ msgid "" #~ "Unable to cancel article: Couldn't find matching article in folder `pan." #~ "sent'!" #~ msgstr "anullo gjej në kartelë!" #, fuzzy #~ msgid "" #~ "Unable to supersede article: Couldn't find matching article in folder " #~ "`pan.sent'!" #~ msgstr "gjej në kartelë!" #, fuzzy #~ msgid "You must download the article before you can cancel it." #~ msgstr "Ti përpara anullo." #, fuzzy #~ msgid "You must download the article before you can supersede it." #~ msgstr "Ti përpara." #~ msgid "Pan: Find Article" #~ msgstr "Pan: Gjej Artikull" #~ msgid "_Author:" #~ msgstr "_Autori:" #~ msgid "_Unread Only" #~ msgstr "Vetëm të _Palexuarit" #, fuzzy #~ msgid "" #~ "Type in a search string and press ENTER.\n" #~ "Wildcards are allowed." #~ msgstr "Lloji në a kërko dhe." #, fuzzy #~ msgid "/Save A_ttachments" #~ msgstr "Ruaj A" #, fuzzy #~ msgid "/_Manual Decode..." #~ msgstr "Manual." #, fuzzy #~ msgid "/D_ownload Flagged" #~ msgstr "D" #, fuzzy #~ msgid "/_Flag" #~ msgstr "Flamur" #, fuzzy #~ msgid "/_Create Score" #~ msgstr "Krijo Pikë" #, fuzzy #~ msgid "/_Copy to Folder" #~ msgstr "Kopjo Kartelë" #, fuzzy #~ msgid "/_Delete" #~ msgstr "/_Elemino" #, fuzzy #~ msgid "Updating Header Pane..." #~ msgstr "Kreu i faqes." #, fuzzy #~ msgid "Loading group \"%s\"" #~ msgstr "grupi" #, fuzzy #~ msgid "Error saving article \"%s\" (is %s full?)" #~ msgstr "Gabim është" #, fuzzy #~ msgid "Directory \"%s\" contains %.1f MB in %d files" #~ msgstr "Directory përmban MB në" #, fuzzy #~ msgid "Unparseable Subject" #~ msgstr "Subjekti" #, fuzzy #~ msgid "Couldn't parse a Message-ID from the raw message!" #~ msgstr "a Mesazh mesazh!" #, fuzzy #~ msgid "Error saving file \"%s\" - is the disk full?" #~ msgstr "Gabim është disk?" #, fuzzy #~ msgid "Decoded \"%s\" from group \"%*.*s\", \"%s\"" #~ msgstr "grupi" #, fuzzy #~ msgid "Loading %u of %d groups" #~ msgstr "nga" #, fuzzy #~ msgid "" #~ "Skipped %d groups due to possible corruption in \"%s\" and \"%s\". You " #~ "may want to delete these files and get a new grouplist from your news " #~ "server." #~ msgstr "në dhe Ti elemino dhe merr a i ri server." #, fuzzy #~ msgid "Loaded %d groups for server \"%s\" in %.1f seconds (%.0f groups/sec)" #~ msgstr "për server në sekonda" #, fuzzy #~ msgid "Saved %d of %u groups" #~ msgstr "nga" #, fuzzy #~ msgid "Error saving list of groups to \"%s\" - is the disk full?" #~ msgstr "Gabim lista nga është disk?" #, fuzzy #~ msgid "Saved %d groups in \"%s\" in %.1f seconds (%.0f groups/sec)" #~ msgstr "në në sekonda" #, fuzzy #~ msgid "Loaded %d of %d articles" #~ msgstr "nga" #, fuzzy #~ msgid "" #~ "Pan skipped %d corrupt headers from the local cache for group \"%*.*s\"." #~ msgstr "Pan lokal për grupi." #, fuzzy #~ msgid "You may want to empty this group and download fresh headers." #~ msgstr "Ti grupi dhe." #, fuzzy #~ msgid "The group will not be saved -- can't create file \"%s\"" #~ msgstr "grupi nuk" #, fuzzy #~ msgid "Unable to save headers for group \"%*.*s\" - is the disk full?" #~ msgstr "ruaj për grupi është disk?" #, fuzzy #~ msgid "(No Group)" #~ msgstr "Jo" #, fuzzy #~ msgid "ERROR: invalid address \"%s\"" #~ msgstr "GABIM I pavlefshëm" #, fuzzy #~ msgid "ERROR: Must have one author in From: line" #~ msgstr "GABIM autori në Nga" #, fuzzy #~ msgid "Imported %d groups (%d new) from \"%s\"" #~ msgstr "i ri" #, fuzzy #~ msgid "Imported %d lines from Gnome config file" #~ msgstr "rreshta" #, fuzzy #~ msgid "%s does not appear to be a valid datafile" #~ msgstr "nuk a" #, fuzzy #~ msgid "Error converting string \"%*s\" to utf8: %d - %s" #~ msgstr "Gabim" #, fuzzy #~ msgid "No name specified!" #~ msgstr "Jo emri!" #, fuzzy #~ msgid "Server is corrupt" #~ msgstr "Serveri është" #, fuzzy #~ msgid "A newsreader for GNOME" #~ msgstr "A për GNOME" #, fuzzy #~ msgid "Project Originator, Programmer" #~ msgstr "Projekti" #, fuzzy #~ msgid "Programmer, 0.6 - 0.7" #~ msgstr "7" #, fuzzy #~ msgid "" #~ "Pan %s Translations\n" #~ "%s\n" #~ "\n" #~ "Pan %s Code or Patches\n" #~ "%s\n" #~ "\n" #~ "Pan %s Suggestions and Testing\n" #~ "%s\n" #~ msgstr "Pan j j Kodi Korrigjime j j Propozime dhe j j" #, fuzzy #~ msgid "_Directory for saving articles:" #~ msgstr "Directory për:" #, fuzzy #~ msgid "Default charse_t:" #~ msgstr "E prezgjedhur:" #, fuzzy #~ msgid "Pan: Download Headers for group `%s'" #~ msgstr "Pan Shkarkimi për grupi" #, fuzzy #~ msgid "Pan: Download Headers" #~ msgstr "Pan Shkarkimi" #, fuzzy #~ msgid "Download _new headers" #~ msgstr "Shkarkimi i ri" #, fuzzy #~ msgid "_Download bodies too" #~ msgstr "Shkarkimi" #, fuzzy #~ msgid "Your _Name:" #~ msgstr "Emri:" #, fuzzy #~ msgid "Email _Address:" #~ msgstr "_Adresa Email:" #, fuzzy #~ msgid "_Organization:" #~ msgstr "Organizata:" #, fuzzy #~ msgid "default" #~ msgstr "prezgjedhur" #, fuzzy #~ msgid "What mail server should Pan use?" #~ msgstr "Çfarë mail server Pan?" #, fuzzy #~ msgid "What news server should Pan use?" #~ msgstr "Çfarë server Pan?" #, fuzzy #~ msgid "Short name for Pan to show, e.g. \"mynewsserver\"" #~ msgstr "emri për Pan e" #, fuzzy #~ msgid "Short _name for Pan to show:" #~ msgstr "emri për Pan:" #, fuzzy #~ msgid "Login" #~ msgstr "Futu" #, fuzzy #~ msgid "Server requires authori_zation" #~ msgstr "Serveri" #, fuzzy #~ msgid "Pan Setup Wizard" #~ msgstr "Pan Rregullimi Asistenti" #, fuzzy #~ msgid "Thank you for trying Pan!" #~ msgstr "për Pan!" #, fuzzy #~ msgid "" #~ "Thank you for trying Pan!\n" #~ " \n" #~ "If you are new to Usenet,\n" #~ "%s\n" #~ "is a starting point to see what Usenet is,\n" #~ "where to find a free news server,\n" #~ "and how to use Pan.\n" #~ " \n" #~ "Since this is your first time running Pan,\n" #~ "we'll need to gather some information.\n" #~ msgstr "" #~ "për Pan\n" #~ " i ri j a pikë është gjej a server Pan\n" #~ " është i pari ora në punim e sipër Pan j" #, fuzzy #~ msgid "About You" #~ msgstr "Informacione Ti" #, fuzzy #~ msgid "News Server" #~ msgstr "Lajme Serveri" #, fuzzy #~ msgid "Ready!" #~ msgstr "Gati!" #, fuzzy #~ msgid "" #~ "You have successfully entered all of\n" #~ "the information required to set up Pan.\n" #~ "\n" #~ "To save these settings, click Save." #~ msgstr "Ti nga kërkohet sipër Pan j ruaj rregullimet Ruaj." #, fuzzy #~ msgid "License" #~ msgstr "Liçenca" #, fuzzy #~ msgid "Authors" #~ msgstr "Autorët" #, fuzzy #~ msgid " (No conditions -- no articles will match)" #~ msgstr "Jo jo" #, fuzzy #~ msgid " (No conditions -- all articles will match)" #~ msgstr "Jo" #, fuzzy #~ msgid "Pan: Edit Filter" #~ msgstr "Pan Ndrysho Filtri" #, fuzzy #~ msgid "Filter name: " #~ msgstr "Filtri emri " #, fuzzy #~ msgid "Show in Filter Menu" #~ msgstr "Shfaq në Filtri Menu" #, fuzzy #~ msgid "Move the selected line up one line" #~ msgstr "Lëvize sipër" #, fuzzy #~ msgid "Move the selected line down one line" #~ msgstr "Lëvize poshtë" #, fuzzy #~ msgid "All Of" #~ msgstr "Gjithçka" #, fuzzy #~ msgid "Delete the selected line" #~ msgstr "Elemino" #, fuzzy #~ msgid "Add New Line to the Filter" #~ msgstr "Shto E re Linja Filtri" #, fuzzy #~ msgid "New Filter Line" #~ msgstr "E re Filtri Linja" #, fuzzy #~ msgid "does not start with" #~ msgstr "nuk fillon me" #, fuzzy #~ msgid "does not match regular expression" #~ msgstr "nuk i rregullt shprehje" #, fuzzy #~ msgid "Article h_as" #~ msgstr "Artikull" #, fuzzy #~ msgid "Incomplete Attachments" #~ msgstr "Të bashkangjitur" #, fuzzy #~ msgid "No Attachments" #~ msgstr "Jo Të bashkangjitur" #, fuzzy #~ msgid "New" #~ msgstr "E re" #, fuzzy #~ msgid "Read" #~ msgstr "Lexo" #, fuzzy #~ msgid "Cached" #~ msgstr "Në cache" #, fuzzy #~ msgid "Posted by Me" #~ msgstr "nga Unë" #, fuzzy #~ msgid "Article has at _least N lines:" #~ msgstr "Artikull N rreshta:" #, fuzzy #~ msgid "Article _score is at least" #~ msgstr "Artikull është" #, fuzzy #~ msgid "High" #~ msgstr "E lartë" #, fuzzy #~ msgid "Medium" #~ msgstr "Mesatare" #, fuzzy #~ msgid "Low" #~ msgstr "E ulët" #, fuzzy #~ msgid "" #~ "This filter is still used by the following rules:\n" #~ "%s\n" #~ "Please remove this dependency first." #~ msgstr "filtro është nga j hiq i pari." #, fuzzy #~ msgid "Pan: Filters" #~ msgstr "Pan Filtrat" #, fuzzy #~ msgid "Add a new filter" #~ msgstr "Shto a i ri filtro" #, fuzzy #~ msgid "Edit the selected filter" #~ msgstr "Ndrysho filtro" #, fuzzy #~ msgid "Remove the selected filter" #~ msgstr "Hiq filtro" #, fuzzy #~ msgid "NONE OF:" #~ msgstr "ASNJË:" #, fuzzy #~ msgid "ALL OF:" #~ msgstr "GJITHÇKA:" #, fuzzy #~ msgid "Article has complete attachments" #~ msgstr "Artikull" #, fuzzy #~ msgid "Article does not have incomplete attachments" #~ msgstr "Artikull nuk" #, fuzzy #~ msgid "Article has incomplete attachments" #~ msgstr "Artikull" #, fuzzy #~ msgid "Article has complete or incomplete attachments" #~ msgstr "Artikull" #, fuzzy #~ msgid "Article is %d or more bytes long" #~ msgstr "Artikull është tjetër bytes" #, fuzzy #~ msgid "Article is crossposted to at least %d groups" #~ msgstr "Artikull është" #, fuzzy #~ msgid "Article was posted in the last %d days" #~ msgstr "Artikull në e fundit ditë" #, fuzzy #~ msgid "Article is %d or more lines long" #~ msgstr "Artikull është tjetër rreshta" #, fuzzy #~ msgid "Article is unread or old" #~ msgstr "Artikull është" #, fuzzy #~ msgid "Article is new" #~ msgstr "Artikull është i ri" #, fuzzy #~ msgid "Article is new or read" #~ msgstr "Artikull është i ri" #, fuzzy #~ msgid "Article is new or unread" #~ msgstr "Artikull është i ri" #, fuzzy #~ msgid "high" #~ msgstr "e lartë" #, fuzzy #~ msgid "zero" #~ msgstr "zero" #, fuzzy #~ msgid "low" #~ msgstr "e ulët" #, fuzzy #~ msgid "Score filter will match anything" #~ msgstr "Pikë filtro" #, fuzzy #~ msgid "Score filter will match nothing" #~ msgstr "Pikë filtro asgjë" #, fuzzy #~ msgid "Article score one of: " #~ msgstr "Artikull nga " #, fuzzy #~ msgid "Can't use regular expression \"%s\" from file \"%s\", line %d: %s" #~ msgstr "i rregullt shprehje" #, fuzzy #~ msgid "Error reading file: " #~ msgstr "Gabim " #, fuzzy #~ msgid "skipping score because it has no criteria" #~ msgstr "jo" #, fuzzy #~ msgid "" #~ "Loaded %d score entries in %d sections in %.1f seconds (%.0f entries/sec)" #~ msgstr "në në sekonda" #, fuzzy #~ msgid "Error score to file \"%s\": %s" #~ msgstr "Gabim" #, fuzzy #~ msgid "Scored %d entries in %.1f seconds (%.0f articles/sec)" #~ msgstr "në sekonda" #, fuzzy #~ msgid "Error removing scorefile entry: %s" #~ msgstr "Gabim" #, fuzzy #~ msgid "Scorefile entry removed -- old scorefile \"%s\" backed up as \"%s\"" #~ msgstr "sipër" #, fuzzy #~ msgid "Folder \"%*.*s\" already exists." #~ msgstr "Kartelë ekziston." #, fuzzy #~ msgid "Please don't begin folders with \"pan.\"; it confuses me." #~ msgstr "me." #, fuzzy #~ msgid "Create New Folder" #~ msgstr "Krijo një Kartelë të Re" #, fuzzy #~ msgid "New Folder Name:" #~ msgstr "E re Kartelë Emri:" #, fuzzy #~ msgid "/Get New Headers and _Bodies" #~ msgstr "E re dhe" #, fuzzy #~ msgid "/More Download _Options..." #~ msgstr "Më shumë Shkarkimi Mundësitë." #, fuzzy #~ msgid "/Refresh Article _Counts" #~ msgstr "Rifresko Artikull" #, fuzzy #~ msgid "/Group _Properties..." #~ msgstr "Pronësitë." #, fuzzy #~ msgid " (Read-Only)" #~ msgstr "Lexo Vetëm" #, fuzzy #~ msgid "Subscribed" #~ msgstr "I regjistruar" #, fuzzy #~ msgid "All Groups" #~ msgstr "Gjithçka" #, fuzzy #~ msgid "" #~ "We don't have a list of groups for \"%*.*s\".\n" #~ "Shall we download one?" #~ msgstr "Më a lista nga për?" #, fuzzy #~ msgid "Total" #~ msgstr "Gjithsej" #, fuzzy #~ msgid "Description" #~ msgstr "Përshkrimi" #, fuzzy #~ msgid "F_ind:" #~ msgstr "F:" #, fuzzy #~ msgid "" #~ "Type in a group search string and press ENTER. Wildcards are allowed." #~ msgstr "Lloji në a grupi kërko dhe." #, fuzzy #~ msgid "X-Newsreader" #~ msgstr "X" #, fuzzy #~ msgid "X-Mailer" #~ msgstr "X Trajtuesi i postës" #, fuzzy #~ msgid "User-Agent" #~ msgstr "Përdoruesi Agjenti" #, fuzzy #~ msgid "News server connection count: %d" #~ msgstr "Lajme server" #, fuzzy #~ msgid "The Task Manager is Empty" #~ msgstr "Aktiviteti Manazhuesi është Bosh" #, fuzzy #~ msgid "/_File/Save A_ttachments" #~ msgstr "File Ruaj A" #, fuzzy #~ msgid "/_File/_Save Attachments As..." #~ msgstr "File Ruaj Të bashkangjitur." #, fuzzy #~ msgid "/_File/_Manual Decode..." #~ msgstr "File Manual." #, fuzzy #~ msgid "/_File/---" #~ msgstr "File" #, fuzzy #~ msgid "/_File/_Cancel Last Task" #~ msgstr "File Anullo E fundit Aktiviteti" #, fuzzy #~ msgid "/_File/_New Folder..." #~ msgstr "File E re Kartelë." #, fuzzy #~ msgid "/_File/Delete _Folder..." #~ msgstr "File Elemino Kartelë." #, fuzzy #~ msgid "/_File/_Edit Article in Folder" #~ msgstr "File Ndrysho Artikull në Kartelë" #, fuzzy #~ msgid "/_File/E_xit" #~ msgstr "File E" #, fuzzy #~ msgid "/_Edit/Select all" #~ msgstr "Ndrysho Zgjidh" #, fuzzy #~ msgid "/_Edit/Deselect all" #~ msgstr "Ndrysho" #, fuzzy #~ msgid "/_Edit/---" #~ msgstr "Ndrysho" #, fuzzy #~ msgid "/_Edit/Select all _Groups" #~ msgstr "Ndrysho Zgjidh" #, fuzzy #~ msgid "/_Edit/Add S_ubscribed to Selection" #~ msgstr "Ndrysho Shto S Zgjedhja" #, fuzzy #~ msgid "/_Edit/Deselect all G_roups" #~ msgstr "Ndrysho G" #, fuzzy #~ msgid "/_Edit/Add S_et to Selection" #~ msgstr "Ndrysho Shto S Zgjedhja" #, fuzzy #~ msgid "/_Edit/_Find..." #~ msgstr "Ndrysho Gjej." #, fuzzy #~ msgid "/_Edit/Find _Next" #~ msgstr "Ndrysho Gjej Vazhdo" #, fuzzy #~ msgid "/_View/---" #~ msgstr "Paraqitja" #, fuzzy #~ msgid "/_View/Thr_ead Header Pane" #~ msgstr "Paraqitja" #, fuzzy #~ msgid "/_View/_Rot13 Selected Text" #~ msgstr "Paraqitja I zgjedhur Teksti" #, fuzzy #~ msgid "/_View/E_xpand Selected Threads" #~ msgstr "Paraqitja E I zgjedhur" #, fuzzy #~ msgid "/_View/C_ollapse Selected Threads" #~ msgstr "Paraqitja C I zgjedhur" #, fuzzy #~ msgid "/Filte_r/Match Only _Cached Articles" #~ msgstr "Vetëm Në cache" #, fuzzy #~ msgid "/Filte_r/Match Only _Text Articles" #~ msgstr "Vetëm Teksti" #, fuzzy #~ msgid "/Filte_r/Match Only _Binary Attachment Articles" #~ msgstr "Vetëm Binar Bashkangjitur" #, fuzzy #~ msgid "/Filte_r/Match Only _My Articles" #~ msgstr "Vetëm" #, fuzzy #~ msgid "/Filte_r/Match _New Articles" #~ msgstr "E re" #, fuzzy #~ msgid "/_Go/Read More" #~ msgstr "Lexo Më shumë" #, fuzzy #~ msgid "/_Go/---" #~ msgstr "Shko" #, fuzzy #~ msgid "/_Go/Next _New Article" #~ msgstr "Vazhdo E re Artikull" #, fuzzy #~ msgid "/_Go/Previous Article _Read" #~ msgstr "Paraardhëse Artikull Lexo" #, fuzzy #~ msgid "/_Servers" #~ msgstr "Serverët" #, fuzzy #~ msgid "/_Servers/Get List of _All Groups" #~ msgstr "Serverët Lista nga Gjithçka" #, fuzzy #~ msgid "/_Servers/Get List of _New Groups" #~ msgstr "Serverët Lista nga E re" #, fuzzy #~ msgid "/_Servers/---" #~ msgstr "Serverët" #, fuzzy #~ msgid "/_Newsgroups/Mark Group _Read" #~ msgstr "Lexo" #, fuzzy #~ msgid "/_Newsgroups/_Delete Group's Articles" #~ msgstr "Elemino" #, fuzzy #~ msgid "/_Newsgroups/Get New _Headers" #~ msgstr "E re" #, fuzzy #~ msgid "/_Newsgroups/Get New Headers and _Bodies" #~ msgstr "E re dhe" #, fuzzy #~ msgid "/_Newsgroups/More Download _Options..." #~ msgstr "Më shumë Shkarkimi Mundësitë." #, fuzzy #~ msgid "/_Newsgroups/Refresh Article _Counts" #~ msgstr "Rifresko Artikull" #, fuzzy #~ msgid "/_Newsgroups/Get New Headers in Subscribed _Groups" #~ msgstr "E re në I regjistruar" #, fuzzy #~ msgid "/_Newsgroups/_Subscribe" #~ msgstr "Regjistrimi" #, fuzzy #~ msgid "/_Newsgroups/_Unsubscribe" #~ msgstr "Ç'regjistrohu" #, fuzzy #~ msgid "/_Newsgroups/Group _Properties..." #~ msgstr "Pronësitë." #, fuzzy #~ msgid "/_Newsgroups/Dele_te Group" #~ msgstr "Grupi" #, fuzzy #~ msgid "/_Articles/Mark _Read" #~ msgstr "Lexo" #, fuzzy #~ msgid "/_Articles/D_ownload Flagged" #~ msgstr "D" #, fuzzy #~ msgid "/_Articles/_Flag" #~ msgstr "Flamur" #, fuzzy #~ msgid "/_Articles/U_nflag" #~ msgstr "U" #, fuzzy #~ msgid "/_Articles/Down_load" #~ msgstr "Poshtë ngarkoje" #, fuzzy #~ msgid "/_Articles/_Ignore Thread" #~ msgstr "Shpërfill" #, fuzzy #~ msgid "/_Articles/_View Article's Scores" #~ msgstr "Paraqitja Artikull Rezultatet" #, fuzzy #~ msgid "/_Articles/Cancel..." #~ msgstr "Anullo." #, fuzzy #~ msgid "/_Articles/Supersed_e..." #~ msgstr "e." #, fuzzy #~ msgid "/_Articles/_Delete" #~ msgstr "Elemino" #, fuzzy #~ msgid "/_Post/_Reply by Email..." #~ msgstr "Përgjigju nga Email." #, fuzzy #~ msgid "/_Post/For_ward by Email..." #~ msgstr "nga Email." #, fuzzy #~ msgid "/_Post/Send Pending _Messages" #~ msgstr "Dërgo" #, fuzzy #~ msgid "/_Tools" #~ msgstr "/_Instrumentë" #, fuzzy #~ msgid "/_Tools/---" #~ msgstr "Veglat" #, fuzzy #~ msgid "/_Tools/Custom _Filters..." #~ msgstr "Veglat E personalizuar Filtrat." #, fuzzy #~ msgid "/_Tools/_Rules..." #~ msgstr "Veglat Rregullat." #, fuzzy #~ msgid "/_Tools/_Edit Scorefile..." #~ msgstr "Veglat Ndrysho." #, fuzzy #~ msgid "/_Tools/_Log Viewer..." #~ msgstr "Veglat Log." #, fuzzy #~ msgid "/_Help" #~ msgstr "/_Ndihmë" #, fuzzy #~ msgid "/_Help/---" #~ msgstr "Ndihmë" #, fuzzy #~ msgid "The default charset set for articles posted with this profile" #~ msgstr "prezgjedhur për me profili" #, fuzzy #~ msgid "Pan: Edit Profile" #~ msgstr "Pan Ndrysho Profili" #, fuzzy #~ msgid "_User Profile" #~ msgstr "Përdoruesi Profili" #, fuzzy #~ msgid "Cus_tom Headers" #~ msgstr "Headers" #, fuzzy #~ msgid "You must specify a username or disable authorization." #~ msgstr "Ti a përdoruesi ç'aktivo." #, fuzzy #~ msgid "" #~ "Your real name contained double quotes.\n" #~ "Converting into single quotes." #~ msgstr "emri." #, fuzzy #~ msgid "You need at least one profile" #~ msgstr "Ti profili" #, fuzzy #~ msgid "Use the selected profile to create a new profile" #~ msgstr "profili a i ri profili" #, fuzzy #~ msgid "Wrote profiles to \"%s\"" #~ msgstr "profilet" #, fuzzy #~ msgid "/_File/_Save..." #~ msgstr "File Ruaj." #, fuzzy #~ msgid "/_File/Clea_r" #~ msgstr "File" #, fuzzy #~ msgid "/_File/_Close" #~ msgstr "File Mbyll" #, fuzzy #~ msgid "Pan: Status Log" #~ msgstr "Pan Gjendja Log" #, fuzzy #~ msgid "Clear the log window" #~ msgstr "Pastro dritare" #, fuzzy #~ msgid "Time" #~ msgstr "Ora" #, fuzzy #~ msgid "Log Entry" #~ msgstr "Log" #, fuzzy #~ msgid "/_File/_Save Changes" #~ msgstr "File Ruaj" #, fuzzy #~ msgid "/_File/Save _As..." #~ msgstr "File Ruaj." #, fuzzy #~ msgid "/_Edit/Cu_t" #~ msgstr "Ndrysho" #, fuzzy #~ msgid "/_Edit/_Copy" #~ msgstr "Ndrysho Kopjo" #, fuzzy #~ msgid "/_Edit/_Rot13 Selected Text" #~ msgstr "Ndrysho I zgjedhur Teksti" #, fuzzy #~ msgid "/_Edit/Edit with E_xternal Editor" #~ msgstr "Ndrysho Ndrysho me E Editori" #, fuzzy #~ msgid "/_File/Send Now" #~ msgstr "File Dërgo Tani" #, fuzzy #~ msgid "/_File/Send Later" #~ msgstr "File Dërgo Më vonë" #, fuzzy #~ msgid "Send Later" #~ msgstr "Dërgo Më vonë" #, fuzzy #~ msgid "Turn line wrap on/off" #~ msgstr "në" #, fuzzy #~ msgid "Edit with an External Editor" #~ msgstr "Ndrysho me Editori" #, fuzzy #~ msgid "Mime (single-part posts only)" #~ msgstr "dërgime" #, fuzzy #~ msgid " (%lu lines in 1 article)" #~ msgstr "rreshta në" #, fuzzy #~ msgid "Select the file to attach." #~ msgstr "Zgjidh bashkangjit." #, fuzzy #~ msgid "Files to Attach" #~ msgstr "Files Bashkangjit" #, fuzzy #~ msgid "Add a File to the Attachment List" #~ msgstr "Shto a File Bashkangjitur Lista" #, fuzzy #~ msgid "Remove a File from the Attachment List" #~ msgstr "Hiq a File Bashkangjitur Lista" #, fuzzy #~ msgid "Estimated Article Size" #~ msgstr "Artikull Madhësia" #, fuzzy #~ msgid "Organization" #~ msgstr "Organizata" #, fuzzy #~ msgid "The organization you're associated with." #~ msgstr "organizata me." #, fuzzy #~ msgid "" #~ "Could not convert \"%s\" to UTF-8. Article may not display correctly." #~ msgstr "nuk konvertoje Artikull nuk." #, fuzzy #~ msgid "\"Followup-To: poster\": sending email to author." #~ msgstr "Për autori." #, fuzzy #~ msgid "\"Followup-To:\" contains an email address: sending email to author." #~ msgstr "Për përmban autori." #, fuzzy #~ msgid "New Message" #~ msgstr "E re Mesazh" #, fuzzy #~ msgid "" #~ "ERROR: line %d, column %d uses a character not specified in charset \"%s" #~ "\" -- possibly change your charset in \"More Headers\" to \"%s\" instead?" #~ msgstr "GABIM a nuk në në Më shumë?" #, fuzzy #~ msgid "Save message to file" #~ msgstr "Ruaj mesazh" #, fuzzy #~ msgid "Handshake failed: %s" #~ msgstr "Dorëdhënie" #, fuzzy #~ msgid "Handshake: %s" #~ msgstr "Dorëdhënie" #, fuzzy #~ msgid "Authentication failed: bad handshake for SPA password" #~ msgstr "Identifikimi për password" #, fuzzy #~ msgid "Authentication failed: need a password" #~ msgstr "Identifikimi a password" #, fuzzy #~ msgid "Authentication failed: %s" #~ msgstr "Identifikimi" #, fuzzy #~ msgid "No supported authentication mechanism" #~ msgstr "Jo autentifikimi" #, fuzzy #~ msgid "No password found!" #~ msgstr "Jo password!" #, fuzzy #~ msgid "Posting failed. Server said: %s" #~ msgstr "Serveri" #, fuzzy #~ msgid "Posting complete. Server said: %s" #~ msgstr "Serveri" #, fuzzy #~ msgid "Getting header list failed: %s" #~ msgstr "titull lista" #, fuzzy #~ msgid "Corrupt header skipped: %s" #~ msgstr "titull" #, fuzzy #~ msgid "Getting %d of %d" #~ msgstr "nga" #, fuzzy #~ msgid "Select Color" #~ msgstr "Zgjidh ngjyrën" #, fuzzy #~ msgid "_Browse..." #~ msgstr "_Shfleto..." #, fuzzy #~ msgid "Font Family" #~ msgstr "Familja e gërmave" #, fuzzy #~ msgid " --version Prints Pan's version number" #~ msgstr "versioni Pan versioni" #, fuzzy #~ msgid " --help Prints this message and exits" #~ msgstr "ndihmë mesazh dhe" #, fuzzy #~ msgid "" #~ " --debug Turns on the most commonly-used options for a bug " #~ "report" #~ msgstr "në për a difekt" #, fuzzy #~ msgid "" #~ " --mute Debugging tool to send new posts to console, not the " #~ "server" #~ msgstr "i ri dërgime nuk server" #, fuzzy #~ msgid " --debug-cache Print debugging messages for the article cache" #~ msgstr "Printo për" #, fuzzy #~ msgid "" #~ " --debug-sockets Print debugging messages when talking to the news " #~ "server" #~ msgstr "Printo server" #, fuzzy #~ msgid "" #~ " --debug-queue Print debugging messages related to managing tasks" #~ msgstr "në pritje Printo" #, fuzzy #~ msgid "" #~ " --debug-decode Print debugging messages related to decoding " #~ "attachments" #~ msgstr "Printo" #, fuzzy #~ msgid " --debug-newsrc Print debugging messages related to .newsrc files" #~ msgstr "Printo" #, fuzzy #~ msgid "" #~ " --debug-gnksa Print debugging messages related to gnksa correctness" #~ msgstr "Printo" #, fuzzy #~ msgid "" #~ " --debug-trace Print debugging messages when entering/leaving " #~ "functions" #~ msgstr "Printo" #, fuzzy #~ msgid "" #~ " --debug-lock Print debugging messages related to threaded gui locks" #~ msgstr "Printo" #, fuzzy #~ msgid "" #~ " --debug-object Print debugging messages related to refcounted objects" #~ msgstr "Printo" #, fuzzy #~ msgid "Error writing to socket." #~ msgstr "Gabim socket." #, fuzzy #~ msgid "Spellchecking disabled: gtkspell_init() failed with status %d" #~ msgstr "jo aktiv me gjendja" #, fuzzy #~ msgid "Restored %d tasks from last session" #~ msgstr "e fundit" #, fuzzy #~ msgid "" #~ "Some tasks were still queued the last time Pan exited. Do you want to " #~ "resume those tasks?" #~ msgstr "e fundit ora Pan Bëje?" #, fuzzy #~ msgid "_Resume" #~ msgstr "_Vazhdo" #, fuzzy #~ msgid "" #~ "%a - abbreviated weekday name\n" #~ "%A - full weekday name\n" #~ "%b - abbreviated month name\n" #~ "%B - full month name\n" #~ "%c - local date & time\n" #~ "%d - day of the month\n" #~ "%H - hour (24-hour clock)\n" #~ "%I - hour (12-hour clock)\n" #~ "%j - day of the year (001-366)\n" #~ "%m - month (01-12)\n" #~ "%M - minute (00-59)\n" #~ "%p - local equivalent of AM/PM\n" #~ "%S - second (00-61)\n" #~ "%x - local date\n" #~ "%X - local time\n" #~ "%y - two-digit year\n" #~ "%Y - four-digit year\n" #~ "%% - %" #~ msgstr "" #~ "a emri j A emri j emri j B emri j lokal data ora j ditë nga j orë orë j " #~ "orë orë j ditë nga j m j M minutë j lokal nga j S sekondë j x lokal data " #~ "j X lokal ora j p dy j Y katër j" #, fuzzy #~ msgid "Color the \"sub_ject\" column" #~ msgstr "Ngjyra" #, fuzzy #~ msgid "Articles with a Score of 9999 or higher:" #~ msgstr "me a Pikë nga:" #, fuzzy #~ msgid "Articles with a Score between 5000 and 9998:" #~ msgstr "me a Pikë dhe:" #, fuzzy #~ msgid "Articles with a Score between 1 and 4999:" #~ msgstr "me a Pikë dhe:" #, fuzzy #~ msgid "Articles with a Score between -9998 and -1:" #~ msgstr "me a Pikë dhe:" #, fuzzy #~ msgid "Articles with a Score of -9999 or lower:" #~ msgstr "me a Pikë nga:" #, fuzzy #~ msgid "Pane Order" #~ msgstr "Renditja" #, fuzzy #~ msgid "Action State" #~ msgstr "Veprimi Gjendja" #, fuzzy #~ msgid "Article State" #~ msgstr "Artikull Gjendja" #, fuzzy #~ msgid "Column Layout" #~ msgstr "Kollonë Planimetria" #, fuzzy #~ msgid "When a Followup subject header changes, show as _new thread" #~ msgstr "Kur a titull i ri" #, fuzzy #~ msgid "E_xpand all threads by default" #~ msgstr "E nga prezgjedhur" #, fuzzy #~ msgid "Show complete _multipart posts as a single article" #~ msgstr "Shfaq dërgime a" #, fuzzy #~ msgid "Date Forma_t:" #~ msgstr "Data:" #, fuzzy #~ msgid "Show \"%s\" header" #~ msgstr "Shfaq titull" #, fuzzy #~ msgid "Characters denoting _quoted text:" #~ msgstr "Simbolet tekst:" #, fuzzy #~ msgid "Download new headers from s_ubscribed groups when starting Pan" #~ msgstr "Shkarkimi i ri Pan" #, fuzzy #~ msgid "" #~ "Download new headers and bod_ies from subscribed groups when starting Pan" #~ msgstr "Shkarkimi i ri dhe Pan" #, fuzzy #~ msgid "Download Directory" #~ msgstr "Shkarkimi Directory" #, fuzzy #~ msgid "Automatically remove _failed tasks from the task manager" #~ msgstr "hiq" #, fuzzy #~ msgid "_Erase cache when exiting Pan" #~ msgstr "Fshi Pan" #, fuzzy #~ msgid "Ma_ximum Cache Size (Megs):" #~ msgstr "Cache Madhësia:" #, fuzzy #~ msgid "_Editor (%t is filename):" #~ msgstr "Editori është:" #, fuzzy #~ msgid "" #~ "Scorefile _Editor:\n" #~ "(%t is filename, %n is line number)" #~ msgstr "Editori j është j është" #, fuzzy #~ msgid "Score_file" #~ msgstr "Pikë" #, fuzzy #~ msgid "Sending Mail" #~ msgstr "Duke dërguar Posta" #, fuzzy #~ msgid "Mail Server Add_ress:" #~ msgstr "Posta Serveri Shto:" #, fuzzy #~ msgid "Mail Server Por_t:" #~ msgstr "Posta Serveri:" #, fuzzy #~ msgid "A_pps & Mail" #~ msgstr "A Posta" #, fuzzy #~ msgid "You haven't loaded an article to print." #~ msgstr "Ti printo." #, fuzzy #~ msgid "" #~ "%s\n" #~ "\n" #~ "Matches: %u\n" #~ "Group: %s\n" #~ "Rule: %s" #~ msgstr "j" #, fuzzy #~ msgid "_Flag body for download" #~ msgstr "Flamur trupi për" #, fuzzy #~ msgid "_Retrieve Body" #~ msgstr "Trupi" #, fuzzy #~ msgid "_Ignore thread (hides the thread by default)" #~ msgstr "nga prezgjedhur" #, fuzzy #~ msgid "Rule applies to all newsgroups" #~ msgstr "Rregulla" #, fuzzy #~ msgid "Wildcard group specification:" #~ msgstr "grupi:" #, fuzzy #~ msgid "(e.g., *anime*)" #~ msgstr "e" #, fuzzy #~ msgid "Rule applies to specific newsgroups:" #~ msgstr "Rregulla:" #, fuzzy #~ msgid "Rule applies to:" #~ msgstr "Rregulla:" #, fuzzy #~ msgid "Rule Name:" #~ msgstr "Rregulla Emri:" #, fuzzy #~ msgid "Apply to Incoming" #~ msgstr "Apliko Në ardhje" #, fuzzy #~ msgid "" #~ "If enabled, this rule will be applied to headers when they are downloaded." #~ msgstr "aktiv." #, fuzzy #~ msgid "New Rule" #~ msgstr "Rregull i ri" #, fuzzy #~ msgid "Delete Articles by Bozos" #~ msgstr "Elemino nga" #, fuzzy #~ msgid "Applying rule \"%s\" to group \"%s\"" #~ msgstr "grupi" #, fuzzy #~ msgid "Rules" #~ msgstr "Rregullat" #, fuzzy #~ msgid "Hit Ratio" #~ msgstr "Përpjestimi" #, fuzzy #~ msgid "" #~ "Apply to\n" #~ "Selected\n" #~ "Groups" #~ msgstr "Apliko" #, fuzzy #~ msgid "" #~ "Apply to\n" #~ "Subscribed\n" #~ "Groups" #~ msgstr "Apliko" #, fuzzy #~ msgid "" #~ "Can't find filter \"%s\" needed by rule \"%s\", so no articles match." #~ msgstr "gjej filtro nga jo." #, fuzzy #~ msgid "Pan: Manual Decode" #~ msgstr "Pan Manual" #, fuzzy #~ msgid "Save Files in Directory" #~ msgstr "Ruaj Files në Directory" #, fuzzy #~ msgid "_Directory:" #~ msgstr "Directory:" #, fuzzy #~ msgid "Add to the _top of the Task Manager's List" #~ msgstr "Shto sipër nga Aktiviteti Manazhuesi Lista" #, fuzzy #~ msgid "Criterion \"%s\" is selected, but empty." #~ msgstr "është." #, fuzzy #~ msgid "No criteria are selected." #~ msgstr "Jo." #, fuzzy #~ msgid "Pan: Add to Scorefile" #~ msgstr "Pan Shto" #, fuzzy #~ msgid "Su_bject:" #~ msgstr "Dj:" #, fuzzy #~ msgid "A_uthor:" #~ msgstr "A:" #, fuzzy #~ msgid "_Lines:" #~ msgstr "_Rreshtat:" #, fuzzy #~ msgid "at least N lines long" #~ msgstr "N rreshta" #, fuzzy #~ msgid "less than N lines long" #~ msgstr "N rreshta" #, fuzzy #~ msgid "Chan_ge Score:" #~ msgstr "Pikë:" #, fuzzy #~ msgid "Expire in N _days:" #~ msgstr "në N ditë:" #, fuzzy #~ msgid "Edit the selected score" #~ msgstr "Ndrysho" #, fuzzy #~ msgid "You must specify an address." #~ msgstr "Ti." #, fuzzy #~ msgid "You must specify a password or disable authorization." #~ msgstr "Ti a password ç'aktivo." #, fuzzy #~ msgid "You must specify a .newsrc filename or disable newsrc support." #~ msgstr "Ti a ç'aktivo." #, fuzzy #~ msgid "Us_e .newsrc file" #~ msgstr "e" #, fuzzy #~ msgid "Select .newsrc File" #~ msgstr "Zgjidh File" #, fuzzy #~ msgid "_Filename:" #~ msgstr "Emri i file:" #, fuzzy #~ msgid "Edit the selected server" #~ msgstr "Ndrysho server" #, fuzzy #~ msgid "Remove the selected server" #~ msgstr "Hiq server" #, fuzzy #~ msgid "Got unexpected response from mail server: expected %d; got %s" #~ msgstr "mail server" #, fuzzy #~ msgid "Sending mail" #~ msgstr "Duke dërguar mail" #, fuzzy #~ msgid "No known recipients" #~ msgstr "Jo" #, fuzzy #~ msgid "Mail sent!" #~ msgstr "Posta!" #, fuzzy #~ msgid "Handshaking with mail server" #~ msgstr "me mail server" #, fuzzy #~ msgid "Connecting to mail server" #~ msgstr "mail server" #, fuzzy #~ msgid "Mail server not ready" #~ msgstr "Posta server nuk" #, fuzzy #~ msgid "Sending Keepalive" #~ msgstr "Duke dërguar" #, fuzzy #~ msgid "Disconnecting Idle" #~ msgstr "Joaktiv" #, fuzzy #~ msgid "Disconnecting one connection from `%s' after %d seconds idle" #~ msgstr "mbas sekonda" #, fuzzy #~ msgid "Connection to %*.*s, port %d failed: %s" #~ msgstr "Lidhja" #, fuzzy #~ msgid "\"%s\"" #~ msgstr "\"%s\"" #, fuzzy #~ msgid "Article %s (%s) canceled" #~ msgstr "Artikull" #, fuzzy #~ msgid "Updating article counts for %u groups from server \"%s\"" #~ msgstr "për server" #, fuzzy #~ msgid "Updated counts for %u groups out of %u" #~ msgstr "U rifreskua për nga" #, fuzzy #~ msgid "Unable to update counts for group \"%s\"" #~ msgstr "për grupi" #, fuzzy #~ msgid "Getting all groups from server \"%s\"" #~ msgstr "server" #, fuzzy #~ msgid "Adding groups to server \"%s\"" #~ msgstr "server" #, fuzzy #~ msgid "List Newsgroups failed: %s" #~ msgstr "Lista" #, fuzzy #~ msgid "Got %d descriptions from server \"%s\"" #~ msgstr "server" #, fuzzy #~ msgid "New groups retrieval failed: %s" #~ msgstr "E re" #, fuzzy #~ msgid "No new articles in group \"%s\"" #~ msgstr "Jo i ri në grupi" #, fuzzy #~ msgid "New %lu of %lu" #~ msgstr "E re nga" #, fuzzy #~ msgid "Sampling %lu of %lu" #~ msgstr "nga" #, fuzzy #~ msgid "All %lu of %lu" #~ msgstr "Gjithçka nga" #, fuzzy #~ msgid "Not Queued" #~ msgstr "Not" #, fuzzy #~ msgid "Pan %s Task Manager" #~ msgstr "Pan Aktiviteti Manazhuesi" #, fuzzy #~ msgid "Move Selected Task(s) Up" #~ msgstr "Lëvize I zgjedhur Aktiviteti Sipër" #, fuzzy #~ msgid "Move Selected Task(s) to Top" #~ msgstr "Lëvize I zgjedhur Aktiviteti Sipër" #, fuzzy #~ msgid "Move Selected Task(s) Down" #~ msgstr "Lëvize I zgjedhur Aktiviteti Poshtë" #, fuzzy #~ msgid "Stop Selected Task(s)" #~ msgstr "Ndal I zgjedhur Aktiviteti" #, fuzzy #~ msgid "Delete Selected Task(s)" #~ msgstr "Elemino I zgjedhur Aktiviteti" #, fuzzy #~ msgid "Time Remaining" #~ msgstr "Ora E mbetur" #, fuzzy #~ msgid "[This is an email copy of a Usenet post to \"%s\"]" #~ msgstr "është kopjo nga a" #, fuzzy #~ msgid "Email \"%s\" sent." #~ msgstr "Email." #, fuzzy #~ msgid "Email \"%s\" not sent." #~ msgstr "Email nuk." #, fuzzy #~ msgid "Article \"%s\" posted." #~ msgstr "Artikull." #, fuzzy #~ msgid "Article \"%s\" not posted." #~ msgstr "Artikull nuk." #, fuzzy #~ msgid "Posting and mailing article \"%s\"" #~ msgstr "dhe" #, fuzzy #~ msgid "Email send failed. " #~ msgstr "Email " #, fuzzy #~ msgid "Check Tools|Log Viewer for more information. " #~ msgstr "Kontrolli Veglat Log për tjetër " #, fuzzy #~ msgid "Your message was saved in the folder \"pan.sendlater\"" #~ msgstr "mesazh në kartelë" #, fuzzy #~ msgid "Saving `%s'" #~ msgstr "Duke ruajtur" #, fuzzy #~ msgid "Saving Attachments" #~ msgstr "Duke ruajtur Të bashkangjitur" #, fuzzy #~ msgid "Save Article can't access path \"%s\"" #~ msgstr "Ruaj Artikull hyrje shtegu" #, fuzzy #~ msgid "Saved article body to \"%s\"" #~ msgstr "trupi" #, fuzzy #~ msgid "" #~ "Pan %s\n" #~ "Copyright (c) %d by Charles Kerr\n" #~ "\n" #~ "If you find a bug, please report it.\n" #~ "\n" #~ msgstr "Pan nga j gjej a difekt j j" #, fuzzy #~ msgid "" #~ "http://pan.rebelbase.com/ - Pan Homepage\n" #~ "http://pan.rebelbase.com/bugs/ - Report a Bug\n" #~ "http://pan.rebelbase.com/download/ - Upgrade\n" #~ "\n" #~ msgstr "" #~ "http://pan.rebelbase.com/ Pan\n" #~ "http://pan.rebelbase.com/bugs/ Raporti a\n" #~ "http://pan.rebelbase.com/download/ Përditëso j j" #, fuzzy #~ msgid "" #~ "This program is free software; you can redistribute it\n" #~ "and/or modify it under the terms of the GNU General Public\n" #~ "License as published by the Free Software Foundation;\n" #~ "version 2 of the License.\n" #~ "\n" #~ "This program is distributed in the hope that it will be\n" #~ "useful, but WITHOUT ANY WARRANTY; without even the implied\n" #~ "warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\n" #~ "PURPOSE. See the GNU General Public License for more\n" #~ "details.\n" #~ "\n" #~ "The GNU Public License can be found from the menu above\n" #~ "in Help|About|License." #~ msgstr "" #~ "programi është nga GNU Të përgjithshme Publik nga I lirë Software nga " #~ "Liçenca j programi është në nga A Shiko GNU Të përgjithshme Publik " #~ "Liçenca për tjetër j GNU Publik Liçenca menuja Informacione Liçenca." #, fuzzy #~ msgid "Error starting external browser: %s" #~ msgstr "Gabim i jashtëm" #, fuzzy #~ msgid "Error starting external scorefile editor: %s" #~ msgstr "Gabim i jashtëm" pan-0.162/po/sr.po000066400000000000000000004274111475412772400137300ustar00rootroot00000000000000# Serbian translation of pan # Courtesy of Prevod.org team (http://prevod.org/) -- 2003–2025. # This file is distributed under the same license as the pan package. # Translators: # Александар Урошевић , 2003–2004 # Мирослав Николић , 2012–2025. # msgid "" msgstr "" "Project-Id-Version: pan\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/pan/issues/\n" "POT-Creation-Date: 2024-10-31 18:20+0000\n" "PO-Revision-Date: 2025-01-26 08:56+0100\n" "Last-Translator: Мирослав Николић \n" "Language-Team: Serbian <српски >\n" "Language: sr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=4; plural=n==1? 3 : n%10==1 && n%100!=11 ? 0 : " "n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" "X-Project-Style: gnome\n" "X-Generator: Poedit 3.5\n" #. update the titlebar #: org.gnome.pan.desktop.in:3 org.gnome.pan.metainfo.xml.in:27 #: pan/gui/dl-headers-ui.cc:119 pan/gui/gui.cc:1041 pan/gui/gui.cc:1666 #: pan/gui/gui.cc:1986 pan/gui/score-add-ui.cc:600 msgid "Pan" msgstr "Пан" #: org.gnome.pan.desktop.in:4 msgid "Newsreader" msgstr "Читач вести" #: org.gnome.pan.desktop.in:5 org.gnome.pan.metainfo.xml.in:7 msgid "Read and post Usenet articles" msgstr "Читајте и објављујте чланке на Јузнету" #. Translators: Search terms to find this application. Do NOT translate or localise the semicolons! The list MUST also end with a semicolon! #: org.gnome.pan.desktop.in:7 msgid "usenet;news;newsreader;newsgroup;article;yenc;nzb;" msgstr "вести;читач;јузнет;читач вести;групе вести;чланак;уенц;нзб;" #: org.gnome.pan.metainfo.xml.in:6 msgid "Pan Newsreader" msgstr "Читач вести Пан" #: org.gnome.pan.metainfo.xml.in:9 msgid "" "Pan is a Usenet newsreader that is good at both text and binaries. It " "supports offline reading, scoring and killfiles, yEnc, NZB, PGP handling, " "multiple servers, and secure connections." msgstr "" "Пан је Јузнетов читач вести који је добар како са текстом тако и са " "извршнима. Подржава читање ван мреже, бодовање и убијање датотека, уЕнц, " "НЗБ, ПГП руковање, више сервера и безбедне везе." #: org.gnome.pan.metainfo.xml.in:12 msgid "" "It is also the only Unix newsreader to get a perfect score on the Good Net-" "Keeping Seal of Approval evaluations." msgstr "" "Такође је једини Јуниксов читач вести који је добио одличну оцену на " "вредновањима печата одобравања доброг одржавања мреже (GNKSA)." #: pan/data/article-cache.cc:144 pan/data/encode-cache.cc:62 #, c-format msgid "Error opening directory: \"%s\": %s" msgstr "Грешка отварања директоријума: „%s“: %s" #: pan/data/article-cache.cc:235 pan/data/article-cache.cc:244 #: pan/data-impl/data-io.cc:278 pan/data-impl/data-io.cc:310 #: pan/gui/post-ui.cc:1699 #, c-format msgid "Unable to save \"%s\" %s" msgstr "Не могу да сачувам „%s“ %s" #: pan/data/article-cache.cc:362 #, c-format msgid "Error opening file \"%s\" %s" msgstr "Грешка отварања датотеке „%s“ %s" #: pan/data/article-cache.cc:393 pan/data-impl/profiles.cc:175 #: pan/data-impl/server.cc:478 pan/general/file-util.cc:311 #: pan/gui/post-ui.cc:567 pan/gui/task-pane.cc:740 #, c-format msgid "Error reading file \"%s\": %s" msgstr "Грешка читања датотеке „%s“: %s" #: pan/data/cert-store.cc:259 #, c-format msgid "Error opening SSL certificate directory: \"%s\": %s" msgstr "Грешка отварања директоријума ССЛ уверења: „%s“: %s" #: pan/data/cert-store.cc:290 #, c-format msgid "Successfully added %d SSL PEM certificate(s) to Certificate Store." msgstr "Успешно сам додао %d ССЛ ПЕМ уверење у складиште уверења." #: pan/data/cert-store.cc:310 msgid "" "Error initializing Certificate Store. Check that the permissions for the " "folders ~/.pan2 and ~/.pan2/ssl_certs are set correctly. Fatal, exiting." msgstr "" "Грешка покретања складишта уверења. Проверите да ли су исправно подешена " "овлашћења за фасцикле „~/.pan2“ и „~/.pan2/ssl_certs“. Кобно, излазим." #: pan/data/cert-store.cc:359 #, c-format msgid "Could not export certificate for server: %s" msgstr "Не могу да извезем уверење за сервер: %s" # bug: plural-forms #. load_group_descriptions (*_data_io); #: pan/data-impl/data-impl.cc:119 #, c-format msgid "Loaded data backend in %.1f seconds" msgstr "Учитан је позадинац података за %.1f секунде" #: pan/data-impl/data-impl.cc:155 msgid "Pan Newsreader's server passwords" msgstr "Лозинке сервера Пана читача вести" #: pan/data-impl/groups.cc:104 #, c-format msgid "Skipping newsrc file for server \"%s\"" msgstr "Прескачем датотеку „newsrc“ за сервер „%s“" #: pan/data-impl/headers.cc:713 #, c-format msgid "Expired %lu old articles from \"%s\"" msgstr "Истекла су %lu стара чланка са „%s“" #: pan/data-impl/headers.cc:722 #, c-format msgid "" "Unsupported data version for %s headers: %d.\n" "Are you running an old version of Pan by accident?" msgstr "" "Неподржано издање података за %s заглавља: %d.\n" "Да ли можда грешком користите старо издање ПАН-а?" #: pan/data-impl/headers.cc:740 #, c-format msgid "Loaded %llu articles for \"%s\" in %.1f seconds (%.0f per second)" msgstr "Учитаних чланака – %llu, за „%s“ за %.1f секунде (%.0f по секунди)" #: pan/data-impl/headers.cc:1009 #, c-format msgid "" "Saved %lu parts, %lu articles in \"%s\" in %.1f seconds (%.0f articles/sec)" msgstr "" "Сачуваних делова – %lu, %lu чланка у „%s“ за %.1f секунде (%.0f чланка по " "секунди)" #: pan/data-impl/headers.cc:1399 #, c-format msgid "Added %lu articles to %s." msgstr "Додах %lu чланка у %s." #: pan/data-impl/server.cc:250 #, c-format msgid "Received no password from libsecret for server %s." msgstr "Нисам примио лозинку са „libsecret“-а за сервер „%s“." #: pan/data-impl/xover.cc:241 #, c-format msgid "Error reading from %s: unknown group \"%s\"" msgstr "Грешка читања из „%s“: непозната група „%s“" #: pan/general/e-util.cc:164 msgid "%l:%M %p" msgstr "%l:%M %p" #: pan/general/e-util.cc:165 msgid "Today %l:%M %p" msgstr "Данас у %l:%M %p" #: pan/general/e-util.cc:166 msgid "%a %l:%M %p" msgstr "%a, у %l:%M %p" #: pan/general/e-util.cc:167 msgid "%b %d %l:%M %p" msgstr "%d. %B у %l:%M %p" #: pan/general/e-util.cc:168 msgid "%b %d %Y" msgstr "%d. %b. %Y." #: pan/general/e-util.cc:200 msgid "?" msgstr "?" #: pan/general/text-match.cc:194 #, c-format msgid "Can't use regular expression \"%s\": %s" msgstr "Не могу да користим регуларни израз „%s“: %s" #: pan/general/utf8-utils.cc:212 msgid "Couldn't determine article encoding. Non-UTF8 characters were removed." msgstr "" "Не могу да одредим кодирање чланка. Уклоњени су знаци који нису УТФ-8." #: pan/gui/actions.cc:306 pan/gui/post-ui.cc:382 msgid "_File" msgstr "_Датотека" #: pan/gui/actions.cc:307 pan/gui/post-ui.cc:383 msgid "_Edit" msgstr "_Уреди" #: pan/gui/actions.cc:308 pan/gui/prefs-ui.cc:1155 msgid "_Layout" msgstr "Ра_според" #: pan/gui/actions.cc:309 msgid "_Group Pane" msgstr "Површ _групе" #: pan/gui/actions.cc:310 msgid "_Header Pane" msgstr "Површ _заглавља" #: pan/gui/actions.cc:311 msgid "_Body Pane" msgstr "Површ _разраде" #: pan/gui/actions.cc:312 msgid "_View" msgstr "_Преглед" #: pan/gui/actions.cc:313 msgid "Filte_r" msgstr "Филте_р" #: pan/gui/actions.cc:314 msgid "_Go" msgstr "_Иди" #: pan/gui/actions.cc:315 pan/gui/prefs-ui.cc:1205 msgid "_Actions" msgstr "Ра_дње" #: pan/gui/actions.cc:316 msgid "_Articles" msgstr "_Чланци" #: pan/gui/actions.cc:317 msgid "G_roups" msgstr "_Групе" #: pan/gui/actions.cc:318 pan/gui/actions.cc:319 msgid "_Post" msgstr "_Објави" #: pan/gui/actions.cc:320 msgid "_Help" msgstr "По_моћ" #: pan/gui/actions.cc:323 msgid "_Read Group" msgstr "_Читај групу" #: pan/gui/actions.cc:324 msgid "Read Group" msgstr "Читајте групу" #: pan/gui/actions.cc:328 msgid "_Mark Selected Groups Read" msgstr "Означи изабране групе _прочитаним" #: pan/gui/actions.cc:329 msgid "Mark Selected Groups Read" msgstr "Означите изабране групе прочитаним" #: pan/gui/actions.cc:333 msgid "_Delete Selected Groups' Articles" msgstr "Обриши чланке изабраних _група" #: pan/gui/actions.cc:334 msgid "Delete Selected Groups' Articles" msgstr "Обришите чланке изабраних група" #: pan/gui/actions.cc:338 msgid "Get New _Headers in Selected Groups" msgstr "Добави нова _заглавља у изабраним групама" #: pan/gui/actions.cc:339 msgid "Get New Headers in Selected Groups" msgstr "Добавите нова заглавља у изабраним групама" #: pan/gui/actions.cc:343 pan/gui/actions.cc:348 msgid "Get New _Headers in Subscribed Groups" msgstr "Добави нова _заглавља у праћеним групама" #: pan/gui/actions.cc:344 pan/gui/actions.cc:349 msgid "Get New Headers in Subscribed Groups" msgstr "Добавите нова заглавља у праћеним групама" #: pan/gui/actions.cc:353 msgid "Get _Headers..." msgstr "Добави _заглавља..." #: pan/gui/actions.cc:354 msgid "Get Headers..." msgstr "Добавите заглавља..." #: pan/gui/actions.cc:358 pan/gui/actions.cc:359 msgid "Refresh Group List" msgstr "Освежи списак група" #: pan/gui/actions.cc:363 msgid "_Subscribe" msgstr "_Прати" #: pan/gui/actions.cc:364 msgid "Subscribe" msgstr "Пратите групу" #: pan/gui/actions.cc:368 msgid "_Unsubscribe" msgstr "_Прекини праћење" #: pan/gui/actions.cc:369 msgid "Unsubscribe" msgstr "Прекините праћење групе" #: pan/gui/actions.cc:373 msgid "_Save Articles..." msgstr "_Сачувај чланке..." #: pan/gui/actions.cc:374 msgid "Save Articles..." msgstr "Сачувајте чланке..." #: pan/gui/actions.cc:378 msgid "Save Articles from Selected _NZB..." msgstr "Сачувај чланке из изабраних _НЗБ-а..." #: pan/gui/actions.cc:379 msgid "Save Articles from Selected NZB" msgstr "Сачувајте чланке из изабраних НЗБ-а" #: pan/gui/actions.cc:383 msgid "Save Articles to an NZB _File..." msgstr "Сачувај чланке у НЗБ _датотеку..." #: pan/gui/actions.cc:384 msgid "Save Articles to an NZB File" msgstr "Сачувајте чланке у НЗБ датотеку" #: pan/gui/actions.cc:388 pan/gui/actions.cc:389 msgid "Print" msgstr "Штампај" #: pan/gui/actions.cc:393 msgid "_Import NZB Files..." msgstr "_Увези НЗБ датотеке..." #: pan/gui/actions.cc:398 msgid "_Cancel Last Task" msgstr "_Откажи последњи задатак" #: pan/gui/actions.cc:403 msgid "_Task Manager" msgstr "_Управник задатака" #: pan/gui/actions.cc:408 msgid "_Event Log" msgstr "_Дневник догађаја" #: pan/gui/actions.cc:413 msgid "_Quit" msgstr "_Изађи" #: pan/gui/actions.cc:418 msgid "Select _All Articles" msgstr "Изабери _све чланке" #: pan/gui/actions.cc:423 msgid "_Deselect All Articles" msgstr "_Поништи избор свих чланака" #: pan/gui/actions.cc:428 msgid "Add Su_bthreads to Selection" msgstr "Додај по_драсправе у избор" #: pan/gui/actions.cc:433 msgid "Add _Threads to Selection" msgstr "Додај _расправе у избор" #: pan/gui/actions.cc:438 msgid "Add _Similar Articles to Selection" msgstr "Додај _сличне чланке у избор" #: pan/gui/actions.cc:443 msgid "Select Article _Body" msgstr "Изабери разраду _чланка" #: pan/gui/actions.cc:448 msgid "Edit _Preferences" msgstr "Уреди _поставке" #: pan/gui/actions.cc:453 msgid "Edit Selected _Group's Preferences" msgstr "Уреди поставке изабраних _група" #: pan/gui/actions.cc:458 msgid "Edit S_core File" msgstr "Уреди датотеку _збира" #: pan/gui/actions.cc:463 pan/gui/post-ui.cc:399 msgid "Edit P_osting Profiles" msgstr "Уреди профиле _објављивања" # table header #: pan/gui/actions.cc:468 msgid "Edit _News Servers" msgstr "Уреди _сервере вести" #: pan/gui/actions.cc:473 msgid "Jump to _Group Tab" msgstr "Иди на језичак _групе" #: pan/gui/actions.cc:478 msgid "Jump to _Header Tab" msgstr "Иди на језичак _заглавља" #: pan/gui/actions.cc:483 msgid "Jump to _Body Tab" msgstr "Иди на језичак _разраде" #: pan/gui/actions.cc:488 msgid "_Rot13 Selected Text" msgstr "Примени _РОТ13 на изабраном тексту" #: pan/gui/actions.cc:493 msgid "Clear _Header Pane" msgstr "Очисти површ _заглавља" #: pan/gui/actions.cc:498 msgid "Clear _Body Pane" msgstr "Очисти површ _разраде" #: pan/gui/actions.cc:503 msgid "Cache Article" msgstr "Причувајте чланак" #: pan/gui/actions.cc:508 msgid "Read Article" msgstr "Прочитајте чланак" #: pan/gui/actions.cc:513 msgid "Show Article Information" msgstr "Прикажи податке о чланку" #: pan/gui/actions.cc:518 msgid "Read _More" msgstr "Читај _следеће" #: pan/gui/actions.cc:519 msgid "Read More" msgstr "Прочитајте следеће" #: pan/gui/actions.cc:523 msgid "Read _Back" msgstr "Читај _претходно" #: pan/gui/actions.cc:524 msgid "Read Back" msgstr "Прочитајте претходно" #: pan/gui/actions.cc:528 msgid "Next _Unread Group" msgstr "Следећа _непрочитана група" #: pan/gui/actions.cc:533 msgid "Next _Group" msgstr "Нова _група" #: pan/gui/actions.cc:538 msgid "Next _Unread Article" msgstr "Следећи _непрочитани чланак" #: pan/gui/actions.cc:539 msgid "Next Unread Article" msgstr "Следећи непрочитани чланак" #: pan/gui/actions.cc:543 msgid "Next _Article" msgstr "Следећи _чланак" #: pan/gui/actions.cc:544 msgid "Next Article" msgstr "Следећи чланак" #: pan/gui/actions.cc:548 msgid "Next _Watched Article" msgstr "Следећи _праћени чланак" #: pan/gui/actions.cc:553 msgid "Next Unread _Thread" msgstr "Следећа непрочитана _расправа" #: pan/gui/actions.cc:554 msgid "Next Unread Thread" msgstr "Следећа непрочитана расправа" #: pan/gui/actions.cc:558 msgid "Next Threa_d" msgstr "_Следећа расправа" #: pan/gui/actions.cc:563 msgid "Pre_vious Article" msgstr "_Претходни чланак" #: pan/gui/actions.cc:568 msgid "Previous _Thread" msgstr "_Претходна расправа" #: pan/gui/actions.cc:573 msgid "_Parent Article" msgstr "_Главни чланак" #: pan/gui/actions.cc:578 msgid "Ignore _Author" msgstr "Занемари _аутора" #: pan/gui/actions.cc:582 msgid "_Watch Thread" msgstr "_Прати расправу" #: pan/gui/actions.cc:587 msgid "_Ignore Thread" msgstr "_Занемари расправу" #: pan/gui/actions.cc:592 pan/gui/actions.cc:593 msgid "_Toggle Flag On/Off for Thread" msgstr "_Укључи/искључи обележје за расправу" #: pan/gui/actions.cc:597 pan/gui/actions.cc:598 msgid "_Turn Flag Off for Thread" msgstr "_Искључи обележје за расправу" #: pan/gui/actions.cc:602 pan/gui/actions.cc:603 msgid "_Select All Flagged Threads" msgstr "Изабери _све обележене расправе" #: pan/gui/actions.cc:607 pan/gui/actions.cc:608 msgid "_Go to Next Flagged Thread" msgstr "Иди на _следећу обележену расправу" #: pan/gui/actions.cc:612 pan/gui/actions.cc:613 msgid "_Go to Last Flagged Thread" msgstr "Иди на _последњу обележену расправу" #: pan/gui/actions.cc:617 pan/gui/actions.cc:618 msgid "_Invert Selection" msgstr "_Преокрени избор" #: pan/gui/actions.cc:622 msgid "Edit Article's Watch/Ignore/Score..." msgstr "Уреди праћење/занемаривање/бодовање чланка..." #: pan/gui/actions.cc:627 msgid "Add a _Scoring Rule..." msgstr "Додај правило _бодовања..." #: pan/gui/actions.cc:632 msgid "Cance_l Article..." msgstr "_Обриши чланак..." #: pan/gui/actions.cc:637 msgid "_Supersede Article..." msgstr "_Надомести чланак..." #: pan/gui/actions.cc:642 msgid "_Delete Article" msgstr "_Обриши чланак" #: pan/gui/actions.cc:647 msgid "Clear Article Cache" msgstr "Очисти оставу чланка" #: pan/gui/actions.cc:652 msgid "_Mark Article as Read" msgstr "Означи чланак _прочитаним" #: pan/gui/actions.cc:657 msgid "Mark Article as _Unread" msgstr "Означи чланак _непрочитаним" #: pan/gui/actions.cc:663 msgid "_Mark Thread as Read" msgstr "Означи расправу _прочитаном" #: pan/gui/actions.cc:668 msgid "Mark Thread as _Unread" msgstr "Означи расправу _непрочитаном" #: pan/gui/actions.cc:673 msgid "_Post to Newsgroup" msgstr "_Објави у причаоници" #: pan/gui/actions.cc:674 msgid "Post to Newsgroup" msgstr "Објавите у причаоници" #: pan/gui/actions.cc:678 msgid "_Followup to Newsgroup" msgstr "_Испрати у причаоници" #: pan/gui/actions.cc:679 msgid "Followup to Newsgroup" msgstr "Испратите у причаоници" #: pan/gui/actions.cc:683 msgid "_Reply to Author in Mail" msgstr "_Одговори аутору поштом" #: pan/gui/actions.cc:689 msgid "_Contents" msgstr "_Садржај" #: pan/gui/actions.cc:695 msgid "_Pan Home Page" msgstr "_Матична страница Пана" #: pan/gui/actions.cc:700 msgid "Give _Feedback or Report a Bug..." msgstr "Дајте _мишљење или пријавите грешку..." #: pan/gui/actions.cc:705 msgid "_About" msgstr "_О програму" #: pan/gui/actions.cc:710 msgid "Edit _SSL Certificates" msgstr "Уреди _ССЛ уверења" #: pan/gui/actions.cc:725 msgid "_Thread Headers" msgstr "Заглавља _теме" #: pan/gui/actions.cc:726 msgid "Wrap Article Body" msgstr "Преломи редове у поруци" #: pan/gui/actions.cc:727 msgid "Show Article Signature" msgstr "Прикажи потпис чланка" #: pan/gui/actions.cc:728 msgid "Mute _Quoted Text" msgstr "Одзначи _цитирани текст" #: pan/gui/actions.cc:729 msgid "Show All _Headers in Body Pane" msgstr "Прикажи сва _заглавља у површи разраде" #: pan/gui/actions.cc:730 msgid "Show _Smilies as Graphics" msgstr "Прикажи слике _смешака" #: pan/gui/actions.cc:731 msgid "Show *Bold*, __Underlined__, and /Italic/" msgstr "Прикажи *Подебљано*, __Подвучено__, и /Искошено/" #: pan/gui/actions.cc:732 msgid "Size Pictures to _Fit" msgstr "Подеси слике да _стану" #: pan/gui/actions.cc:733 msgid "Use _Monospace Font" msgstr "Користи словни лик _утврђене ширине" #: pan/gui/actions.cc:734 msgid "Set Focus to Images" msgstr "Постави први план на слике" #: pan/gui/actions.cc:735 msgid "Highlight _URLs" msgstr "Истакни _адресе" #: pan/gui/actions.cc:738 msgid "_Work Online" msgstr "_Ради на мрежи" #: pan/gui/actions.cc:739 msgid "_Tabbed Layout" msgstr "Распоред _језичцима" #: pan/gui/actions.cc:740 msgid "Show Group _Pane" msgstr "Прикажи површ _групе" #: pan/gui/actions.cc:741 msgid "Show Hea_der Pane" msgstr "Прикажи површ _заглавља" #: pan/gui/actions.cc:742 msgid "Show Bod_y Pane" msgstr "Прикажи површ _разраде" #: pan/gui/actions.cc:743 msgid "Show _Toolbar" msgstr "Прикажи траку _алата" #: pan/gui/actions.cc:744 msgid "Abbreviate Group Names" msgstr "Скрати називе група" #: pan/gui/actions.cc:746 msgid "Match Only _Read Articles" msgstr "Издвој само _прочитане чланке" #: pan/gui/actions.cc:746 msgid "Match Only Read Articles" msgstr "Издвојте само прочитане чланке" #: pan/gui/actions.cc:747 msgid "Match Only _Unread Articles" msgstr "Издвој само _непрочитане чланке" #: pan/gui/actions.cc:747 msgid "Match Only Unread Articles" msgstr "Издвојте само непрочитане чланке" #: pan/gui/actions.cc:748 msgid "Match Only _Cached Articles" msgstr "Издвој само _причуване чланке" #: pan/gui/actions.cc:748 msgid "Match Only Cached Articles" msgstr "Издвојте само причуване чланке" #: pan/gui/actions.cc:749 msgid "Match Only _Complete Articles" msgstr "Издвој само _завршене чланке" #: pan/gui/actions.cc:749 msgid "Match Only Complete Articles" msgstr "Издвојте само завршене чланке" #: pan/gui/actions.cc:750 msgid "Match Only _My Articles" msgstr "Издвој само _моје чланке" #: pan/gui/actions.cc:750 msgid "Match Only My Articles" msgstr "Издвојте само своје чланке" #: pan/gui/actions.cc:751 msgid "Match Only _Watched Articles" msgstr "Издвој само _праћене чланке" #: pan/gui/actions.cc:751 msgid "Match Only Watched Articles" msgstr "Издвојте само праћене чланке" #: pan/gui/actions.cc:753 msgid "Match Scores of 9999 (_Watched)" msgstr "Издвој поруке са 9999 бодова (_Праћене)" #: pan/gui/actions.cc:754 msgid "Match Scores of 5000...9998 (_High)" msgstr "Издвој поруке од 5000 до 9998 бодова (_Врло важне)" #: pan/gui/actions.cc:755 msgid "Match Scores of 1...4999 (Me_dium)" msgstr "Издвој поруке од 1 до 4999 бода (_Средње важне)" #: pan/gui/actions.cc:756 msgid "Match Scores of 0 (_Normal)" msgstr "Издвој поруке са 0 бодова (_Обичне)" #: pan/gui/actions.cc:757 msgid "Match Scores of -9998...-1 (_Low)" msgstr "Издвој поруке од -9999 до -1 бода (_Слабо важне)" #: pan/gui/actions.cc:758 msgid "Match Scores of -9999 (_Ignored)" msgstr "Издвој поруке од -9999 бодова (_Занемарене)" #: pan/gui/actions.cc:760 msgid "Enable/Disable All _Rules" msgstr "Укључи/искључи сва _правила" #: pan/gui/actions.cc:788 msgid "Show Matching _Articles" msgstr "Прикажи одговарајуће _чланке" #: pan/gui/actions.cc:789 msgid "Show Matching Articles' _Threads" msgstr "Прикажи _теме чланка које испуњавају услов" #: pan/gui/actions.cc:790 msgid "Show Matching Articles' _Subthreads" msgstr "Прикажи _подтеме чланка које испуњавају услов" #: pan/gui/body-pane.cc:1040 msgid "Unnamed File" msgstr "Неименована датотека" #: pan/gui/body-pane.cc:1121 pan/gui/gui.cc:1957 pan/gui/header-pane.cc:1306 #: pan/gui/header-pane.cc:1737 pan/gui/post-ui.cc:2573 pan/gui/prefs-ui.cc:896 #: pan/gui/score-add-ui.cc:139 pan/gui/task-pane.cc:795 msgid "Subject" msgstr "Тема" #: pan/gui/body-pane.cc:1123 pan/gui/gui.cc:1957 msgid "From" msgstr "Шаље" #: pan/gui/body-pane.cc:1125 pan/gui/gui.cc:1958 pan/gui/header-pane.cc:1816 #: pan/gui/log-ui.cc:308 pan/gui/prefs-ui.cc:892 msgid "Date" msgstr "Датум" #: pan/gui/body-pane.cc:1132 msgid "Newsgroups" msgstr "Причаонице" #: pan/gui/body-pane.cc:1139 pan/gui/body-pane.cc:1147 #: pan/gui/body-pane.cc:1154 msgid "User-Agent" msgstr "Читач" #: pan/gui/body-pane.cc:1160 msgid "Followup-To" msgstr "Испрати-до" #: pan/gui/body-pane.cc:1170 msgid "Reply-To" msgstr "Одговори" #: pan/gui/body-pane.cc:1218 msgid " from " msgstr " шаље " #: pan/gui/body-pane.cc:1220 msgid " at " msgstr " на " #: pan/gui/body-pane.cc:1309 #, c-format msgid "" "This is a PGP-Signed message.\n" "\n" "Signer: %s ('%s')\n" "Valid until: %s\n" "Created on: %s" msgstr "" "Ово је порука Потписана ПГП-ом.\n" "\n" "Потписник: %s („%s“)\n" "Важи до: %s\n" "Направљена: %s" #: pan/gui/body-pane.cc:1314 msgid "always" msgstr "увек" #: pan/gui/body-pane.cc:1533 msgid "Copy _URL" msgstr "Умножи _адресу" #: pan/gui/body-pane.cc:1720 msgid "Save Attachment As..." msgstr "Сачувај прилог као..." #: pan/gui/body-pane.cc:1723 msgid "Save All Attachments" msgstr "Сачувај све прилоге" #: pan/gui/body-pane.cc:1794 msgid "Attachments:" msgstr "Прилози:" #: pan/gui/body-pane.cc:1814 msgid "Text View" msgstr "Приказ текста" #: pan/gui/body-pane.cc:1823 msgid "HTML View" msgstr "ХТМЛ приказ" #: pan/gui/dl-headers-ui.cc:125 #, c-format msgid "%d Group" msgid_plural "%d Groups" msgstr[0] "%d група" msgstr[1] "%d групе" msgstr[2] "%d група" msgstr[3] "%d група" #: pan/gui/dl-headers-ui.cc:148 msgid "Get the last N _days' headers: " msgstr "Добави заглавља последња N _дана: " #: pan/gui/dl-headers-ui.cc:156 msgid "Get _new headers" msgstr "Добави _нова заглавља" #: pan/gui/dl-headers-ui.cc:160 msgid "Get _all headers" msgstr "Добави _сва заглавља" #: pan/gui/dl-headers-ui.cc:164 msgid "Get the _latest N headers: " msgstr "Добави _последња N заглавља: " #: pan/gui/e-action-combo-box.c:386 pan/gui/prefs-ui.cc:889 msgid "Action" msgstr "Радња" #: pan/gui/e-action-combo-box.c:387 msgid "A GtkRadioAction" msgstr "Радња ГТК једноизборника" #: pan/gui/e-charset.c:51 pan/gui/task-pane.cc:561 msgid "Unknown" msgstr "Непознато" #: pan/gui/e-charset.c:52 msgid "Arabic" msgstr "Арапски" #: pan/gui/e-charset.c:53 msgid "Baltic" msgstr "Балтички" #: pan/gui/e-charset.c:54 msgid "Central European" msgstr "Средњоевропски" #: pan/gui/e-charset.c:55 msgid "Chinese" msgstr "Кинески" #: pan/gui/e-charset.c:56 msgid "Cyrillic" msgstr "Ћирилични" #: pan/gui/e-charset.c:57 msgid "Greek" msgstr "Грчки" #: pan/gui/e-charset.c:58 msgid "Hebrew" msgstr "Јеврејски" #: pan/gui/e-charset.c:59 msgid "Japanese" msgstr "Јапански" #: pan/gui/e-charset.c:60 msgid "Korean" msgstr "Корејски" #: pan/gui/e-charset.c:61 msgid "Thai" msgstr "Тајландски" #: pan/gui/e-charset.c:62 msgid "Turkish" msgstr "Турски" #: pan/gui/e-charset.c:63 msgid "Unicode" msgstr "Уникод" #: pan/gui/e-charset.c:64 msgid "Western European" msgstr "Западноевропски" #: pan/gui/e-charset.c:65 msgid "Western European, New" msgstr "Западноевропски, нови" #: pan/gui/e-charset.c:84 pan/gui/e-charset.c:85 pan/gui/e-charset.c:86 msgid "Traditional" msgstr "Традиционални" #: pan/gui/e-charset.c:87 pan/gui/e-charset.c:88 pan/gui/e-charset.c:89 #: pan/gui/e-charset.c:90 msgid "Simplified" msgstr "Поједностављени" #: pan/gui/e-charset.c:93 msgid "Ukrainian" msgstr "Украјински" #: pan/gui/e-charset.c:96 msgid "Visual" msgstr "Визуелни" #: pan/gui/e-charset-combo-box.c:95 pan/gui/gui.cc:2155 pan/gui/post-ui.cc:477 #: pan/gui/prefs-ui.cc:800 msgid "Character Encoding" msgstr "Кодна страна" #: pan/gui/e-charset-combo-box.c:97 pan/gui/e-charset-dialog.c:51 #: pan/gui/score-add-ui.cc:606 pan/gui/task-pane.cc:309 msgid "Cancel" msgstr "Откажи" #: pan/gui/e-charset-combo-box.c:98 pan/gui/e-charset-dialog.c:52 msgid "OK" msgstr "У реду" #: pan/gui/e-charset-combo-box.c:119 msgid "Enter the character set to use" msgstr "Изаберите кодну страну за коришћење" #: pan/gui/e-charset-combo-box.c:338 msgid "Other..." msgstr "Друго..." #: pan/gui/e-cte-dialog.c:76 msgid "Default Encoding" msgstr "Основно кодирање" #: pan/gui/e-cte-dialog.c:78 msgid "7-Bit Encoding" msgstr "7-битно кодирање" #: pan/gui/e-cte-dialog.c:80 msgid "8-Bit Encoding" msgstr "8-битно кодирање" #: pan/gui/e-cte-dialog.c:82 msgid "Base64 Encoding" msgstr "Кодирање у основи 64" #: pan/gui/e-cte-dialog.c:84 msgid "Quoted-Printable Encoding" msgstr "Кодирање цитирано-за_штампање" #: pan/gui/editor-spawner.cc:66 #, c-format msgid "Error parsing \"external editor\" command line: %s (Command was: %s)" msgstr "Грешка обраде линије наредбе „external editor“: %s (Наредба беше: %s)" #: pan/gui/editor-spawner.cc:110 #, c-format msgid "Error starting external editor: %s" msgstr "Грешка покретања спољног уређивача: %s" #. Local folders #: pan/gui/group-pane.cc:330 msgid "Sent" msgstr "Послато" #: pan/gui/group-pane.cc:330 msgid "Drafts" msgstr "Нацрти" #: pan/gui/group-pane.cc:540 msgid "Group" msgstr "Група" #: pan/gui/group-pane.cc:540 msgid "Group (regex)" msgstr "Група (регуларни израз)" #: pan/gui/group-pane.cc:985 msgid "Local Folders" msgstr "Месне фасцикле" #: pan/gui/group-pane.cc:986 msgid "Subscribed Groups" msgstr "Праћене групе" #: pan/gui/group-pane.cc:987 msgid "Other Groups" msgstr "Друге групе" #: pan/gui/group-pane.cc:1028 pan/gui/score-view-ui.cc:156 msgid "Name" msgstr "Назив" #: pan/gui/group-prefs-dialog.cc:161 msgid "No Profiles defined in Edit|Posting Profiles." msgstr "Профили нису одређени у „Уреди|Профили објављивања“." #: pan/gui/group-prefs-dialog.cc:264 msgid "Pan: Group Preferences" msgstr "Пан: Поставке групе" #: pan/gui/group-prefs-dialog.cc:279 msgid "Properties for Groups" msgstr "Својства за групе" #: pan/gui/group-prefs-dialog.cc:281 #, c-format msgid "Properties for %s" msgstr "Својства за „%s“" #: pan/gui/group-prefs-dialog.cc:292 msgid "Character _encoding:" msgstr "Кодирање _знакова:" #: pan/gui/group-prefs-dialog.cc:294 msgid "Directory for Saving Attachments" msgstr "Директоријум за чување прилога" #: pan/gui/group-prefs-dialog.cc:302 msgid "Directory for _saving attachments:" msgstr "Директоријум за _чување прилога:" #: pan/gui/group-prefs-dialog.cc:304 msgid "Posting _profile:" msgstr "Профил _објављивања:" #: pan/gui/group-prefs-dialog.cc:309 msgid "Spellchecker _language:" msgstr "Језик за _проверу писања:" #: pan/gui/group-prefs-dialog.cc:312 msgid "Group color:" msgstr "Боја групе:" #: pan/gui/gui.cc:312 msgid "Open the Task Manager" msgstr "Отворите управника задатака" #: pan/gui/gui.cc:335 msgid "Open the Event Log" msgstr "Отворите дневник догађаја" #: pan/gui/gui.cc:611 msgid "Save NZB's Files" msgstr "Сачувајте НЗБ датотеке" #: pan/gui/gui.cc:638 msgid "Untitled.nzb" msgstr "Неименована.nzb" #: pan/gui/gui.cc:640 msgid "Save NZB File as..." msgstr "Сачувај НЗБ датотеку као..." #: pan/gui/gui.cc:809 msgid "Import NZB Files" msgstr "Увезите НЗБ датотеке" #: pan/gui/gui.cc:817 pan/gui/post-ui.cc:3281 msgid "NZB Files" msgstr "НЗБ датотеке" #: pan/gui/gui.cc:822 msgid "All Files" msgstr "Све датотеке" #: pan/gui/gui.cc:1336 msgid "Unable to supersede article." msgstr "Не могу да надоместим чланак." #: pan/gui/gui.cc:1337 pan/gui/gui.cc:1413 msgid "The article doesn't match any of your posting profiles." msgstr "Чланак не одговара ниједном од ваших профила објављивања." #: pan/gui/gui.cc:1386 msgid "Revise and send this article to replace the old one." msgstr "Прегледајте и пошаљите овај чланак да замените стари." #: pan/gui/gui.cc:1387 pan/gui/gui.cc:1451 msgid "Be patient! It will take time for your changes to take effect." msgstr "" "Будите стрпљиви! Потребно је време мало времена да би измене ступиле у " "дејство." #: pan/gui/gui.cc:1412 msgid "Unable to cancel article." msgstr "Не могу да откажем чланак." #: pan/gui/gui.cc:1450 msgid "Send this article to ask your server to cancel your other one." msgstr "Пошаљите овај чланак да питате ваш сервер да откаже онај други." #: pan/gui/gui.cc:1468 msgid "You have marked some articles for deletion." msgstr "Означили сте неке чланке за брисање." #: pan/gui/gui.cc:1469 msgid "Are you sure you want to delete them?" msgstr "Да ли сигурно желите да их обришете?" #: pan/gui/gui.cc:1495 msgid "Do you want to accept it permanently? (You can change this later.)" msgstr "Да ли желите да га прихватите трајно? (Касније можете изменити ово.)" #: pan/gui/gui.cc:1641 msgid "Unable to open help file." msgstr "Не могу да отворим датотеку помоћи." #: pan/gui/gui.cc:1669 msgid "Copyright © 2002-2021 Charles Kerr and others" msgstr "Ауторска права © 2002-2021 Чарлс Кер и остали" #: pan/gui/gui.cc:1674 msgid "translator-credits" msgstr "" "Александар Урошевић \n" "Мирослав Николић \n" "\n" "http://prevod.org — превод на српски језик" #: pan/gui/gui.cc:1802 msgid "_1. Group Pane" msgstr "_1. Површ групе" #: pan/gui/gui.cc:1803 msgid "_2. Header Pane" msgstr "_2. Површ заглавља" #: pan/gui/gui.cc:1804 msgid "_3. Body Pane" msgstr "_3. Површ разраде" #: pan/gui/gui.cc:1894 pan/gui/gui.cc:1909 msgid " Bytes" msgstr " Бајта" #: pan/gui/gui.cc:1897 msgid " KB" msgstr " KB" #: pan/gui/gui.cc:1900 msgid " MB" msgstr " MB" #: pan/gui/gui.cc:1903 msgid " GB" msgstr " GB" #: pan/gui/gui.cc:1906 msgid " TB" msgstr " TB" #: pan/gui/gui.cc:1938 #, c-format msgid "This article is complete with %d part." msgid_plural "This article has all %d parts." msgstr[0] "Овај чланак садржи %d део." msgstr[1] "Овај чланак садржи сва %d дела." msgstr[2] "Овај чланак садржи свих %d делова." msgstr[3] "Овај чланак садржи један део." #: pan/gui/gui.cc:1940 #, c-format msgid "This article is missing %d part." msgid_plural "This article is missing %d of its %d parts:" msgstr[0] "Овом чланку недостаје %d део од %d дела." msgstr[1] "Овом чланку недостају %d од његова %d дела:" msgstr[2] "Овом чланку недостају %d од његових %d делова:" msgstr[3] "Овом чланку недостаје један део." #: pan/gui/gui.cc:1958 pan/gui/header-pane.cc:1308 pan/gui/task-pane.cc:797 msgid "Message-ID" msgstr "ИБ поруке" #: pan/gui/gui.cc:1959 pan/gui/header-pane.cc:1785 pan/gui/prefs-ui.cc:893 msgid "Lines" msgstr "Редови" #: pan/gui/gui.cc:1959 msgid "Size" msgstr "Величина" #: pan/gui/gui.cc:1960 pan/gui/header-pane.cc:1801 pan/gui/prefs-ui.cc:891 msgid "Bytes" msgstr "Бајтова" #: pan/gui/gui.cc:2010 msgid "" "Error loading iconv library. Encoding certain character sets will not work " "in GUI." msgstr "" "Грешка учитавања библиотеке иконв-а. Кодирање неких скупова знакова неће " "радити у ГКС-у." #: pan/gui/gui.cc:2156 msgid "Body Pane Encoding" msgstr "Кодирање површи разраде" #: pan/gui/gui.cc:2187 pan/gui/task-pane.cc:612 msgid "Offline" msgstr "Ван мреже" #: pan/gui/gui.cc:2191 #, c-format msgid "Closing %d connection" msgid_plural "Closing %d connections" msgstr[0] "Затварам %d везу" msgstr[1] "Затварам %d везе" msgstr[2] "Затварам %d веза" msgstr[3] "Затварам једну везу" #: pan/gui/gui.cc:2193 pan/gui/gui.cc:2223 msgid "No Connections" msgstr "Нема веза" #: pan/gui/gui.cc:2197 msgid "Connecting" msgstr "Повезујем се" #: pan/gui/gui.cc:2210 #, c-format msgid "%s: %d idle, %d active @ %.1f KiBps" msgstr "%s: %d мирује, %d ради @ %.1f KiB/s" #: pan/gui/gui.cc:2266 msgid "No Tasks" msgstr "Нема задатака" #: pan/gui/gui.cc:2268 pan/gui/prefs-ui.cc:1138 msgid "Tasks" msgstr "Задаци" #: pan/gui/gui.cc:2285 pan/gui/task-pane.cc:478 #, c-format msgid "%lu tasks, %s, %.1f KiBps, ETA %d:%02d:%02d" msgstr "Укупно задатака: %lu, %s, %.1f KiB/s, ЕТА %d:%02d:%02d" #: pan/gui/gui.cc:2337 msgid "" "Pan is now offline. Please see \"File|Event Log\" and correct the problem, " "then use \"File|Work Online\" to continue." msgstr "" "Пан је сада ван мреже. Погледајте „Датотека|Дневник догађаја“ и исправите " "проблем, затим користите „Датотека|Ради на мрежи“ да наставите." #: pan/gui/header-pane.cc:1304 pan/gui/task-pane.cc:793 msgid "Subject or Author" msgstr "Тема или аутор" #: pan/gui/header-pane.cc:1305 pan/gui/task-pane.cc:794 msgid "Sub or Auth (regex)" msgstr "Тема или аутор (регизр)" #: pan/gui/header-pane.cc:1307 pan/gui/header-pane.cc:1769 #: pan/gui/prefs-ui.cc:890 pan/gui/score-add-ui.cc:140 pan/gui/task-pane.cc:796 msgid "Author" msgstr "Аутор" #: pan/gui/header-pane.cc:1754 pan/gui/prefs-ui.cc:894 msgid "Score" msgstr "Бодовање" #: pan/gui/log-ui.cc:105 msgid "Save Event List" msgstr "Сачувајте списак догађаја" #: pan/gui/log-ui.cc:259 msgid "Pan: Events" msgstr "Пан: Догађаји" #: pan/gui/log-ui.cc:318 msgid "Message" msgstr "Порука" #: pan/gui/pan.cc:306 msgid "Maximize" msgstr "Увећај" #: pan/gui/pan.cc:346 msgid "An error has occurred!" msgstr "Дошло је до грешке!" #: pan/gui/pan.cc:359 msgid "New Articles!" msgstr "Нови чланак!" #: pan/gui/pan.cc:360 msgid "" "There are new\n" "articles available." msgstr "" "Доступни су\n" "нови чланци." #: pan/gui/pan.cc:435 msgid "" "Thank you for trying Pan!\n" " \n" "To start newsreading, first Add a Server." msgstr "" "Хвала вам што користите Пана!\n" " \n" "Да започнете читање вести, прво додајте сервер." #: pan/gui/pan.cc:517 msgid "" "General Options\n" " -h, --help Show this usage information and exit.\n" " -v, --version Print release version and exit.\n" " --verbose Be verbose (in non-GUI mode).\n" " --debug Run in debug mode. Use --debug twice for verbose " "debug.\n" " --debug-ssl Run in TLS (aka SSL) debug mode.\n" "\n" "URL Options\n" " headers:group.name Download new headers for the specified " "newsgroup.\n" " news:message-id When specified together with --no-gui, dump\n" " the message-id article to standard output.\n" "\n" "NZB Batch Options\n" " --nzb file1 file2 ... Process NZB files in non-GUI mode.\n" " -o path, --output=path Path to save attachments listed in the NZB " "file(s).\n" " --no-gui Only show console output, not the download " "queue.\n" msgstr "" "Опште опције\n" " -h, --help Приказује податке о коришћењу и излази.\n" " -v, --version Исписује број издања и излази.\n" " --verbose Бива опширан (у режиму без графичког " "сучеља).\n" " --debug Ради у режиму прочишћавања. Користите „--" "debug“ два пута за опширно прочишћавање\n" " --debug-ssl Ради у ТЛС (тј. ССЛ) режиму прочишћавања.\n" "\n" "Опције адресе\n" " headers:group.name Преузима нова заглавља за наведене " "причаонице.\n" " news:message-id Када је наведено заједно са „--no-gui“, " "избацује\n" " члан иб-а поруке на стандардни излаз.\n" "\n" "Опције групних НЗБ-а\n" " --nzb датотека1 датотека2 ... Обрађује НЗБ датотеке у режиму без " "графичког сучеља.\n" " -o путања, --output=путања Путања за чување прилога исписаних у НЗБ " "датотекама.\n" " --no-gui Приказује само излаз конзоле, а не заказано " "преузимања.\n" #: pan/gui/pan.cc:852 msgid "Error: --no-gui used without nzb files or news:message-id." msgstr "Грешка: „--no-gui“ се користи без нзб датотека или „вести:иб-поруке“." #: pan/gui/pan.cc:856 #, c-format msgid "Pan %s started" msgstr "Пан %s је покренут" #: pan/gui/pan.cc:876 msgid "Please configure Pan's news servers before using it as an nzb client." msgstr "" "Подесите Панове сервере вести пре него ли га користите као нзб клијента." #: pan/gui/pan.cc:996 msgid "Pan notification" msgstr "Панова обавештења" #: pan/gui/post-ui.cc:175 #, c-format msgid "Upload queue: %llu tasks, %ld KB (~ %.2f MB) total." msgstr "Ред слања: %llu задатка, %ld KB (~ %.2f MB) укупно." #: pan/gui/post-ui.cc:384 msgid "_Profile" msgstr "_Профил" #: pan/gui/post-ui.cc:385 msgid "Set Editor" msgstr "Покрените уређивача" #: pan/gui/post-ui.cc:387 msgid "_Send Article" msgstr "_Пођаљи чланак" #: pan/gui/post-ui.cc:387 msgid "Send Article Now" msgstr "Пошаљите чланак сада" #: pan/gui/post-ui.cc:388 msgid "_Send and Save Articles to NZB" msgstr "_Пошаљи и сачувај чланке у НЗБ" #: pan/gui/post-ui.cc:388 msgid "Send and Save Articles to NZB" msgstr "Пошаљите и сачувајте чланке у НЗБ-у" #: pan/gui/post-ui.cc:389 msgid "Set Character _Encoding..." msgstr "Подеси _кодирање знакова..." #: pan/gui/post-ui.cc:390 msgid "Set Content _Transfer Encoding..." msgstr "Подеси кодирање _преноса садржаја..." #: pan/gui/post-ui.cc:391 msgid "Sa_ve Draft" msgstr "_Сачувај нацрт" #: pan/gui/post-ui.cc:391 msgid "Save as a Draft for Future Posting" msgstr "Сачувајте као нацрт за будућа објављивања" #: pan/gui/post-ui.cc:392 msgid "_Open Draft..." msgstr "_Отвори нацрт..." #: pan/gui/post-ui.cc:392 msgid "Open an Article Draft" msgstr "Отворите нацрт чланка" #: pan/gui/post-ui.cc:397 msgid "_Rot13" msgstr "_Рот13" #: pan/gui/post-ui.cc:397 msgid "Rot13 Selected Text" msgstr "Рот13 на изабраном тексту" #: pan/gui/post-ui.cc:398 msgid "Run _Editor" msgstr "Покрени _уређивача" #: pan/gui/post-ui.cc:398 msgid "Run Editor" msgstr "Покрените уређивача" #: pan/gui/post-ui.cc:400 msgid "Add _Files to Queue" msgstr "Додај _датотеке у заказано" #: pan/gui/post-ui.cc:400 msgid "Add Files to Queue" msgstr "Додајте датотеке у заказано" #: pan/gui/post-ui.cc:415 pan/gui/post-ui.cc:416 msgid "Remove from Queue" msgstr "Уклони из заказаних" #: pan/gui/post-ui.cc:420 pan/gui/post-ui.cc:421 msgid "Clear List" msgstr "Очисти списак" #: pan/gui/post-ui.cc:425 pan/gui/post-ui.cc:426 msgid "Select Needed Parts" msgstr "Изабери потребне делове" #: pan/gui/post-ui.cc:430 pan/gui/post-ui.cc:431 pan/gui/task-pane.cc:680 #: pan/gui/task-pane.cc:681 msgid "Move Up" msgstr "Премести горе" #: pan/gui/post-ui.cc:435 pan/gui/post-ui.cc:436 pan/gui/task-pane.cc:685 #: pan/gui/task-pane.cc:686 msgid "Move Down" msgstr "Помери доле" #: pan/gui/post-ui.cc:440 pan/gui/post-ui.cc:441 msgid "Move to Top" msgstr "Преместите на врх" #: pan/gui/post-ui.cc:445 pan/gui/post-ui.cc:446 msgid "Move to Bottom" msgstr "Преместите на крај" #: pan/gui/post-ui.cc:453 msgid "_Wrap Text" msgstr "_Преломи текст" #: pan/gui/post-ui.cc:453 msgid "Wrap Text" msgstr "Преломите текст" #: pan/gui/post-ui.cc:454 msgid "Always Run Editor" msgstr "Увек покрени уређивача" #: pan/gui/post-ui.cc:455 msgid "Remember Character Encoding for This Group" msgstr "Запамти кодирање знакова за ову групу" #: pan/gui/post-ui.cc:456 msgid "Thread Attached Replies" msgstr "Прикачени одговори расправе" #: pan/gui/post-ui.cc:457 msgid "PGP-Encrypt the Article" msgstr "Шифруј ПГП-ом чланак" #: pan/gui/post-ui.cc:458 msgid "PGP-Sign the Article" msgstr "Потпиши ПГП-ом чланак" #: pan/gui/post-ui.cc:459 msgid "Check _Spelling" msgstr "Провери _писање" #: pan/gui/post-ui.cc:478 msgid "New Article's Encoding:" msgstr "Кодирање новог чланка:" #: pan/gui/post-ui.cc:488 msgid "Content Transfer Encoding" msgstr "Кодирање преноса садржаја" #: pan/gui/post-ui.cc:489 msgid "New Article's Content Transfer Encoding:" msgstr "Кодирање преноса садржаја новог чланка:" #: pan/gui/post-ui.cc:673 msgid "Your changes will be lost!" msgstr "Ваше измене ће бити изгубљене!" #: pan/gui/post-ui.cc:674 msgid "Close this window and lose your changes?" msgstr "Да затворим прозор и одбацим ваше измене?" #: pan/gui/post-ui.cc:719 pan/gui/post-ui.cc:758 msgid "There were problems with this post." msgstr "Дошло је до проблема са овом објавом." #: pan/gui/post-ui.cc:721 pan/gui/post-ui.cc:760 pan/gui/post-ui.cc:825 msgid "Go Back" msgstr "Иди назад" #: pan/gui/post-ui.cc:723 msgid "Continue Anyway" msgstr "Ипак настави" #. Prompt the user #: pan/gui/post-ui.cc:752 #, c-format msgid "" "Message uses characters not specified in charset '%s' - possibly use '%s' " msgstr "" "Порука садржи знаке који нису наведени у скупу знакова „%s“ — вероватно " "користи „%s“ " #: pan/gui/post-ui.cc:775 msgid "Go _Online" msgstr "Иди _на мрежу" #: pan/gui/post-ui.cc:824 msgid "The file queue is empty, so no files can be saved." msgstr "" "Нема датотека на чекању, тако да никакве датотеке не могу бити сачуване." #: pan/gui/post-ui.cc:1004 msgid "IO Error" msgstr "УИ грешка" #: pan/gui/post-ui.cc:1004 msgid "No space left on device" msgstr "Нема више места на уређају" #: pan/gui/post-ui.cc:1005 #, c-format msgid "Error copying message to %s folder. Reason: %s" msgstr "Грешка умножавања поруке у фасциклу „%s“. Разлог: %s" #: pan/gui/post-ui.cc:1011 #, c-format msgid "Error creating message in %s mail folder: Invalid article." msgstr "Грешка стварања поруке у фасцикли поште „%s“: Неисправан чланак." #: pan/gui/post-ui.cc:1033 msgid "" "No posting server is set for this posting profile.\n" "Please edit the profile via Edit|Manage Posting Profiles." msgstr "" "Није подешен сервер објављивања за овај профил објављивања.\n" "Уредите профил у изборнику „Уреди|Управљај профилима објављивања“." #: pan/gui/post-ui.cc:1038 msgid "" "The selected posting server is currently disabled. Please choose an " "appropriate alternative." msgstr "" "Изабрани сервер објављивања је тренутно искључен. Изаберите одговарајућу " "замену." #: pan/gui/post-ui.cc:1080 msgid "Pan is Offline." msgstr "Пан је ван мреже." #: pan/gui/post-ui.cc:1081 msgid "Go online to post the article?" msgstr "Да идем на мрежу да објавим чланак?" #: pan/gui/post-ui.cc:1130 #, c-format msgid "" "Error signing/encrypting your message. Perhaps you misspelled your email " "address (%s)?" msgstr "" "Грешка потписивања/шифровања ваше поруке. Можда сте погрешно написали адресу " "ваше ел. поште (%s)?" #: pan/gui/post-ui.cc:1280 msgid "Error opening temporary file" msgstr "Грешка отварања привремене датотеке" #: pan/gui/post-ui.cc:1291 #, c-format msgid "Error creating temporary file: %s" msgstr "Грешка стварања привремене датотеке: %s" #: pan/gui/post-ui.cc:1299 #, c-format msgid "Error writing article to temporary file: %s" msgstr "Грешка писања чланка у привремену датотеку: %s" #: pan/gui/post-ui.cc:1372 msgid "Open Draft Article" msgstr "Отвори нацрт чланка" #: pan/gui/post-ui.cc:1615 msgid "Save Draft Article" msgstr "Сачувај нацрт чланка" #: pan/gui/post-ui.cc:1653 msgid "File already exists." msgstr "Датотека већ постоји." #: pan/gui/post-ui.cc:1654 msgid "Overwrite it?" msgstr "Да препишем преко ње?" #: pan/gui/post-ui.cc:1863 #, c-format msgid "Couldn't parse signature command \"%s\": %s" msgstr "Не могу да обрадим наредбу потписа „%s“: %s" #: pan/gui/post-ui.cc:1899 msgid "Couldn't convert signature to UTF-8." msgstr "Не могу да претворим потпис у УТФ-8." #: pan/gui/post-ui.cc:2411 msgid "F_rom" msgstr "_Шаље" #: pan/gui/post-ui.cc:2428 msgid "_Subject" msgstr "_Тема" #: pan/gui/post-ui.cc:2441 msgid "_Newsgroups" msgstr "_Причаонице" #: pan/gui/post-ui.cc:2455 msgid "Mail _To" msgstr "_Прима" #: pan/gui/post-ui.cc:2558 msgid "Delete from Queue" msgstr "Обриши из заказаних" #: pan/gui/post-ui.cc:2571 msgid "No." msgstr "Бр." #: pan/gui/post-ui.cc:2575 pan/gui/post-ui.cc:2667 pan/gui/post-ui.cc:2708 msgid "Filename" msgstr "Датотека" #: pan/gui/post-ui.cc:2577 msgid "Size (KB)" msgstr "Величина (kB)" #: pan/gui/post-ui.cc:2675 msgid "The current filename" msgstr "Тренутна датотека" #: pan/gui/post-ui.cc:2679 msgid "Subject Line" msgstr "Ред теме" #: pan/gui/post-ui.cc:2687 msgid "The current subject line" msgstr "Ред тренутне теме" #: pan/gui/post-ui.cc:2701 msgid "No. " msgstr "Бр. " #: pan/gui/post-ui.cc:2705 msgid "Enable/Disable" msgstr "Укључи/Искључи" #: pan/gui/post-ui.cc:2739 msgid "Follo_wup-To" msgstr "_Испрати-до" #. i18n: "poster" is a key used by many newsreaders. probably safest to keep this key in english. #: pan/gui/post-ui.cc:2748 msgid "" "The newsgroups where replies to your message should go. This is only needed " "if it differs from the \"Newsgroups\" header.\n" "\n" "To direct all replies to your email address, use \"Followup-To: poster\"" msgstr "" "Причаонице на које ће се слати одговори на вашу поруку. Потребно је само у " "случају да се разликује од заглавља „Причаонице“.\n" "\n" "За преусмеравање свих одговора на адресу ваше ел. поште, користите „Прати: " "објављивач“" # * # * Create this before we call create_from_optionmenu, # * because that causes from_changed to be called, which # * expects the reply_to fields to be initialized. #: pan/gui/post-ui.cc:2755 msgid "_Reply-To" msgstr "_Одговори" #: pan/gui/post-ui.cc:2763 msgid "" "The email account where mail replies to your posted message should go. This " "is only needed if it differs from the \"From\" header." msgstr "" "Налог ел. поште на који ће се слати одговори на ваше поруке. Потребно је " "само у случају да се разликује од заглавља „Шаље“." #: pan/gui/post-ui.cc:2770 msgid "_Custom Headers" msgstr "_Произвољно заглавље" #: pan/gui/post-ui.cc:2794 msgid "Add \"_User-Agent\" header" msgstr "Додај заглавље „_Читач“" #: pan/gui/post-ui.cc:2801 msgid "Add \"Message-_ID\" header" msgstr "Додај заглавље „_ИБ-Поруке“" #: pan/gui/post-ui.cc:2929 msgid "Select Parts" msgstr "Изаберите делове" #: pan/gui/post-ui.cc:2942 msgid "_Parts" msgstr "_Делови" #: pan/gui/post-ui.cc:3109 msgid "Post Article" msgstr "Објавите чланак" #: pan/gui/post-ui.cc:3130 msgid "_Message" msgstr "_Порука" #: pan/gui/post-ui.cc:3131 msgid "More _Headers" msgstr "Још _заглавља" #: pan/gui/post-ui.cc:3132 msgid "File _Queue" msgstr "_Заказане датотеке" #: pan/gui/post-ui.cc:3163 pan/gui/profiles-dialog.cc:490 #, no-c-format msgid "On %d, %n wrote:" msgstr "%d, %n пише:" #: pan/gui/post-ui.cc:3192 msgid "Add files to queue" msgstr "Додај датотеке у заказано" #: pan/gui/post-ui.cc:3268 msgid "Save Upload Queue as NZB File" msgstr "Сачувај ред слања као НЗБ датотеку" #: pan/gui/prefs.cc:368 #, c-format msgid "Couldn't parse %s color \"%s\"" msgstr "Не могу да обрадим %s боју „%s“" #: pan/gui/prefs-ui.cc:140 msgid "Grab Key" msgstr "Притисни тастер" #: pan/gui/prefs-ui.cc:146 #, c-format msgid "" "Press the combination of the keys\n" "you want to use for \"%s\"." msgstr "" "Притисните комбинацију тастера које\n" "желите да користите за „%s“." #: pan/gui/prefs-ui.cc:183 msgid "Edit Shortcut" msgstr "Уредие пречицу" #: pan/gui/prefs-ui.cc:244 msgid "Error: Shortcut key is invalid!" msgstr "Грешка: Тастер пречице је неисправан!" #: pan/gui/prefs-ui.cc:260 msgid "Error: Shortcut key already exists!" msgstr "Грешка: Тастер пречице већ постоји!" #: pan/gui/prefs-ui.cc:601 msgid "Show only icons" msgstr "Прикажи само иконице" #: pan/gui/prefs-ui.cc:602 msgid "Show only text" msgstr "Прикажи само текст" #: pan/gui/prefs-ui.cc:603 msgid "Show icons and text" msgstr "Прикажи иконице и текст" #: pan/gui/prefs-ui.cc:642 msgid "Use GNOME Preferences" msgstr "Користи поставке Гнома" #: pan/gui/prefs-ui.cc:643 msgid "Use KDE Preferences" msgstr "Користи поставке КДЕ-а" #: pan/gui/prefs-ui.cc:644 msgid "Use OS X Preferences" msgstr "Користи поставке ОС Х-а" #: pan/gui/prefs-ui.cc:645 msgid "Use Windows Preferences" msgstr "Користи поставке Виндоуза" #: pan/gui/prefs-ui.cc:646 msgid "Custom Command:" msgstr "Произвољна наредба:" #: pan/gui/prefs-ui.cc:698 msgid "Disabled" msgstr "Искључено" #: pan/gui/prefs-ui.cc:699 msgid "Only new (score == 0)" msgstr "Само нове (учинак == 0)" #: pan/gui/prefs-ui.cc:700 msgid "9999 or more" msgstr "од 9999 или више" #: pan/gui/prefs-ui.cc:701 msgid "5000 to 9998" msgstr "од 5000 до 9998" #: pan/gui/prefs-ui.cc:702 msgid "1 to 4999" msgstr "од 1 до 4999" #: pan/gui/prefs-ui.cc:703 msgid "-9998 to -1" msgstr "од -9998 до -1" #: pan/gui/prefs-ui.cc:704 msgid "-9999 or less" msgstr "од -9999 или мање" #: pan/gui/prefs-ui.cc:770 #, c-format msgid "Select default global character set. Current setting: %s." msgstr "" "Изаберите основни општи скуп знакова. Текуће подешавање: %s." #: pan/gui/prefs-ui.cc:801 msgid "Global Character Set Settings" msgstr "Општа подешавања скупа знакова" #: pan/gui/prefs-ui.cc:895 pan/gui/task-pane.cc:1067 msgid "State" msgstr "Стање" #: pan/gui/prefs-ui.cc:929 msgid "Enabled" msgstr "Укључено" #: pan/gui/prefs-ui.cc:933 msgid "Column Name" msgstr "Назив колоне" #: pan/gui/prefs-ui.cc:981 msgid "Pan: Preferences" msgstr "Пан: Поставке" #: pan/gui/prefs-ui.cc:996 msgid "Mouse" msgstr "Миш" #: pan/gui/prefs-ui.cc:998 msgid "Single-click activates, rather than selects, _groups" msgstr "Један притисак покреће _групе, уместо да их бира" #: pan/gui/prefs-ui.cc:1000 msgid "Single-click activates, rather than selects, _articles" msgstr "Један притисак покреће _чланке, уместо да их бира" #: pan/gui/prefs-ui.cc:1003 msgid "Groups" msgstr "Групе" #: pan/gui/prefs-ui.cc:1005 msgid "Get new headers in subscribed groups on _startup" msgstr "Преузми нова заглавља у праћеним групама по _покретању" #: pan/gui/prefs-ui.cc:1007 msgid "Get new headers when _entering group" msgstr "Преузми нова заглавља при учитавању _групе" #: pan/gui/prefs-ui.cc:1009 msgid "Mark entire group _read when leaving group" msgstr "Означи читаву групу прочитаном приликом _напуштања" #: pan/gui/prefs-ui.cc:1011 msgid "Mark entire group read before getting _new headers" msgstr "Означи читаву групу прочитаном пре _добављања нових заглавља" #: pan/gui/prefs-ui.cc:1013 msgid "E_xpand all threads when entering group" msgstr "_Рашири све теме приликом уласка у групу" #: pan/gui/prefs-ui.cc:1018 msgid "Articles" msgstr "Чланци" #: pan/gui/prefs-ui.cc:1020 msgid "Mark downloaded articles read" msgstr "Означи преузете чланке прочитаним" #: pan/gui/prefs-ui.cc:1022 msgid "Space selects next article rather than next unread" msgstr "Размак бира нови чланак уместо следећег непрочитаног" #: pan/gui/prefs-ui.cc:1024 msgid "Expand threads upon selection" msgstr "Рашири теме изнад избора" #: pan/gui/prefs-ui.cc:1026 msgid "Always ask before deleting an article" msgstr "Увек питај пре брисања чланка" #: pan/gui/prefs-ui.cc:1028 msgid "Smooth scrolling" msgstr "Глатко клизање" #: pan/gui/prefs-ui.cc:1033 msgid "Article Cache" msgstr "Остава чланка" #: pan/gui/prefs-ui.cc:1034 msgid "Clear article cache on shutdown" msgstr "Очисти оставу приликом искључивања" #: pan/gui/prefs-ui.cc:1037 msgid "Size of article cache (in MiB):" msgstr "Величина оставе (у MiB):" #: pan/gui/prefs-ui.cc:1041 msgid "File extension for cached articles: " msgstr "Проширење датотеке за причуване чланке: " #: pan/gui/prefs-ui.cc:1045 msgid "Tabs" msgstr "Језичци" #: pan/gui/prefs-ui.cc:1050 msgid "_Behavior" msgstr "По_нашање" #: pan/gui/prefs-ui.cc:1050 msgid "Behavior" msgstr "Подешавања понашања" #: pan/gui/prefs-ui.cc:1056 msgid "Task Pane" msgstr "Површ задатка" #: pan/gui/prefs-ui.cc:1057 msgid "Show task pane popups" msgstr "Прикажи облачиће површи задатака" #: pan/gui/prefs-ui.cc:1059 msgid "Show Download Meter" msgstr "Прикажи мерач преузимања" #: pan/gui/prefs-ui.cc:1063 msgid "_Panes" msgstr "_Површи" #: pan/gui/prefs-ui.cc:1063 msgid "Panes" msgstr "Површи" #: pan/gui/prefs-ui.cc:1069 msgid "Language Settings" msgstr "Подешавање језика" #: pan/gui/prefs-ui.cc:1070 msgid "Font" msgstr "Фонт" #: pan/gui/prefs-ui.cc:1078 msgid "System Tray Behavior" msgstr "Понашање системске касете" #: pan/gui/prefs-ui.cc:1080 msgid "Show notifications" msgstr "Прикажи обавештења" #. allow multiple instances (seperate, not communicating with dbus) #: pan/gui/prefs-ui.cc:1085 msgid "Startup Behavior" msgstr "Понашање при покретању" #: pan/gui/prefs-ui.cc:1087 msgid "Allow multiple instances of Pan" msgstr "Допусти више примерака Пана" #: pan/gui/prefs-ui.cc:1092 msgid "Autosave Article Draft" msgstr "Самостално чување нацрта чланка" #: pan/gui/prefs-ui.cc:1094 msgid "Minutes to autosave the current Article Draft: " msgstr "Време за самостално чување текућег нацрта чланка: " #: pan/gui/prefs-ui.cc:1099 msgid "Autosave Articles" msgstr "Самостално чување чланка" #: pan/gui/prefs-ui.cc:1101 msgid "Minutes to autosave newsrc files: " msgstr "Време за самостално чување датотека „newsrc“: " #: pan/gui/prefs-ui.cc:1108 msgid "Password Storage" msgstr "Смештање лозинке" #: pan/gui/prefs-ui.cc:1110 msgid "Save passwords in password storage" msgstr "Сачувај лозинке у смештај за лозинке" #: pan/gui/prefs-ui.cc:1117 msgid "_Miscellaneous" msgstr "Ра_зно" #: pan/gui/prefs-ui.cc:1117 msgid "Miscellaneous" msgstr "Разна подешавања" #: pan/gui/prefs-ui.cc:1122 msgid "Pane Layout" msgstr "Распоред површи" #: pan/gui/prefs-ui.cc:1141 msgid "1=Groups, 2=Headers, 3=Body" msgstr "1=Групе, 2=Заглавља, 3=Разрада" #: pan/gui/prefs-ui.cc:1143 msgid "1=Groups, 2=Body, 3=Headers" msgstr "1=Групе, 2=Разрада, 3=Заглавља" #: pan/gui/prefs-ui.cc:1145 msgid "1=Headers, 2=Groups, 3=Body" msgstr "1=Заглавља, 2=Групе, 3=Разрада" #: pan/gui/prefs-ui.cc:1147 msgid "1=Headers, 2=Body, 3=Groups" msgstr "1=Заглавља, 2=Разрада, 3=Групе" #: pan/gui/prefs-ui.cc:1149 msgid "1=Body, 2=Groups, 3=Headers" msgstr "1=Разрада, 2=Групе, 3=Заглавља" #: pan/gui/prefs-ui.cc:1151 msgid "1=Body, 2=Headers, 3=Groups" msgstr "1=Разрада, 2=Заглавља, 3=Групе" #: pan/gui/prefs-ui.cc:1155 msgid "Layout" msgstr "Подешавања распореда" #: pan/gui/prefs-ui.cc:1160 msgid "Header Pane Columns" msgstr "Колоне површи заглавља" #: pan/gui/prefs-ui.cc:1164 msgid "_Headers" msgstr "За_главља" #: pan/gui/prefs-ui.cc:1164 msgid "Headers" msgstr "Подешавања заглавља" #: pan/gui/prefs-ui.cc:1170 msgid "" "This menu lets you configure Pan to take certain actions on your behalf " "automatically, based on an article's score." msgstr "" "Помоћу овог изборника можете да подесите да Пан сам обави одређене радње по " "вашој жељи, на основу бодовања чланка." #: pan/gui/prefs-ui.cc:1175 msgid "Mark affected articles read" msgstr "Означи дотицајне чланке прочитаним" #: pan/gui/prefs-ui.cc:1184 msgid "_Delete articles scoring at: " msgstr "_Обриши чланке са учинком: " #: pan/gui/prefs-ui.cc:1190 msgid "Mark articles read scoring at: " msgstr "Означи чланке прочитаним са учинком од: " #: pan/gui/prefs-ui.cc:1196 msgid "_Cache articles scoring at: " msgstr "_Причувај чланке са учинком: " #: pan/gui/prefs-ui.cc:1202 msgid "Download attachments of articles scoring at: " msgstr "Преузми прилоге чланака са учинком од: " #: pan/gui/prefs-ui.cc:1205 msgid "Actions" msgstr "Подешавања радњи" #: pan/gui/prefs-ui.cc:1210 pan/gui/prefs-ui.cc:1231 msgid "Fonts" msgstr "Облик слова" #: pan/gui/prefs-ui.cc:1212 msgid "Use custom font in Group Pane:" msgstr "Користи произвољна слова у површи групе:" #: pan/gui/prefs-ui.cc:1217 msgid "Use custom font in Header Pane:" msgstr "Користи произвољна слова у површи заглавља:" #: pan/gui/prefs-ui.cc:1222 msgid "Use custom font in Body Pane:" msgstr "Користи произвољна слова у површи разраде:" #: pan/gui/prefs-ui.cc:1227 msgid "Monospace font:" msgstr "Слова утврђене ширине:" #: pan/gui/prefs-ui.cc:1231 msgid "_Fonts" msgstr "_Слова" #: pan/gui/prefs-ui.cc:1240 msgid "Header Pane" msgstr "Површ заглавља" #: pan/gui/prefs-ui.cc:1243 pan/gui/prefs-ui.cc:1249 pan/gui/prefs-ui.cc:1255 #: pan/gui/prefs-ui.cc:1261 pan/gui/prefs-ui.cc:1267 pan/gui/prefs-ui.cc:1273 #: pan/gui/prefs-ui.cc:1282 pan/gui/prefs-ui.cc:1288 pan/gui/prefs-ui.cc:1294 #: pan/gui/prefs-ui.cc:1300 pan/gui/prefs-ui.cc:1306 pan/gui/prefs-ui.cc:1316 #: pan/gui/prefs-ui.cc:1326 msgid "Text:" msgstr "Текст:" #: pan/gui/prefs-ui.cc:1245 pan/gui/prefs-ui.cc:1251 pan/gui/prefs-ui.cc:1257 #: pan/gui/prefs-ui.cc:1263 pan/gui/prefs-ui.cc:1269 pan/gui/prefs-ui.cc:1275 #: pan/gui/prefs-ui.cc:1284 pan/gui/prefs-ui.cc:1290 pan/gui/prefs-ui.cc:1296 #: pan/gui/prefs-ui.cc:1302 pan/gui/prefs-ui.cc:1308 pan/gui/prefs-ui.cc:1318 #: pan/gui/prefs-ui.cc:1328 msgid "Background:" msgstr "Позадина:" #: pan/gui/prefs-ui.cc:1247 msgid "Scores of 9999 or more:" msgstr "Учинци од 9999 или више:" #: pan/gui/prefs-ui.cc:1253 msgid "Scores from 5000 to 9998:" msgstr "Учинци од 5000 до 9998:" #: pan/gui/prefs-ui.cc:1259 msgid "Scores from 1 to 4999:" msgstr "Учинци од 1 до 4999:" #: pan/gui/prefs-ui.cc:1265 msgid "Scores from -9998 to -1:" msgstr "Учинци од -9998 до -1:" #: pan/gui/prefs-ui.cc:1271 msgid "Scores of -9999 or less:" msgstr "Учинци од -9999 или мање:" #: pan/gui/prefs-ui.cc:1277 msgid "Collapsed thread with unread articles:" msgstr "Скупљена тема са непрочитаним чланцима:" #: pan/gui/prefs-ui.cc:1279 msgid "Body Pane" msgstr "Површ разраде" #: pan/gui/prefs-ui.cc:1286 msgid "First level of quoted text:" msgstr "Први ниво цитираног текста:" #: pan/gui/prefs-ui.cc:1292 msgid "Second level of quoted text:" msgstr "Други ниво цитираног текста:" #: pan/gui/prefs-ui.cc:1298 msgid "Third level of quoted text:" msgstr "Трећи ниво цитираног текста:" #. #: pan/gui/prefs-ui.cc:1304 msgid "URL:" msgstr "Адреса:" #. #: pan/gui/prefs-ui.cc:1310 msgid "Signature:" msgstr "Потпис:" #: pan/gui/prefs-ui.cc:1313 msgid "Group Pane" msgstr "Површ групе" #. #: pan/gui/prefs-ui.cc:1320 msgid "Group Color:" msgstr "Боја групе:" #: pan/gui/prefs-ui.cc:1324 msgid "Other Text" msgstr "Други текст" #: pan/gui/prefs-ui.cc:1330 msgid "Text Color:" msgstr "Боја текста:" #: pan/gui/prefs-ui.cc:1333 msgid "_Colors" msgstr "_Боје" #: pan/gui/prefs-ui.cc:1333 msgid "Colors" msgstr "Подешавања боја" #: pan/gui/prefs-ui.cc:1338 msgid "Preferred Applications" msgstr "Омиљени програми" #: pan/gui/prefs-ui.cc:1342 msgid "_Web browser:" msgstr "_Веб прегледник:" #: pan/gui/prefs-ui.cc:1345 msgid "_Gemini client:" msgstr "_Џемини клијент" #: pan/gui/prefs-ui.cc:1348 msgid "_Mail reader:" msgstr "_Читач поште:" #: pan/gui/prefs-ui.cc:1350 msgid "_Text editor:" msgstr "_Уређивач текста:" #: pan/gui/prefs-ui.cc:1352 msgid "_HTML previewer:" msgstr "_ХТМЛ претпрегледач:" #: pan/gui/prefs-ui.cc:1354 msgid "_Applications" msgstr "Про_грами" #: pan/gui/prefs-ui.cc:1354 msgid "Applications" msgstr "Подешавања програма" #: pan/gui/prefs-ui.cc:1359 pan/gui/task-pane.cc:555 msgid "Encoding" msgstr "Кодирање" #: pan/gui/prefs-ui.cc:1363 msgid "Default bytes per file (for encoder): " msgstr "Основних бајтова по датотеци (за кодера): " #: pan/gui/prefs-ui.cc:1368 msgid "_Upload" msgstr "_Отпремање" #: pan/gui/prefs-ui.cc:1368 msgid "Upload" msgstr "Подешавања отпремања" #: pan/gui/prefs-ui.cc:1377 msgid "_Shortcuts" msgstr "Пре_чице" #: pan/gui/prefs-ui.cc:1377 msgid "Shortcuts" msgstr "Подешавања пречица" #: pan/gui/profiles-dialog.cc:83 msgid "Please choose your email address according to your PGP key's user id." msgstr "" "Изаберите адресу ваше ел. поште у складу са вашим корисничким иб-ом ПГП " "кључа." #: pan/gui/profiles-dialog.cc:131 msgid "Posting Profile" msgstr "Профил објављивања" #: pan/gui/profiles-dialog.cc:143 msgid "Profile Information" msgstr "Подаци о профилу" #: pan/gui/profiles-dialog.cc:147 msgid "_Profile Name:" msgstr "Назив _профила:" #: pan/gui/profiles-dialog.cc:150 msgid "Required Information" msgstr "Обавезни подаци" #: pan/gui/profiles-dialog.cc:154 msgid "_Full Name:" msgstr "_Име и презиме:" #: pan/gui/profiles-dialog.cc:158 msgid "" "Your email address.\n" "Note that this has to match your PGP signature's address\n" "if you want your messages to be PGP-signed or encrypted correctly." msgstr "" "Адреса ваше ел. поште.\n" "Ово треба да одговара адреси вашег ПГП\n" "потписа ако желите да ваше поруке буду ПГП-потписане или исправно шифроване." #: pan/gui/profiles-dialog.cc:162 msgid "_Email Address:" msgstr "Адреса _ел. поште:" #: pan/gui/profiles-dialog.cc:164 msgid "_Post Articles via:" msgstr "_Објави чланке путем:" #: pan/gui/profiles-dialog.cc:167 msgid "Signature" msgstr "Потпис" #: pan/gui/profiles-dialog.cc:170 msgid "_Use a Signature" msgstr "_Користи потпис" #: pan/gui/profiles-dialog.cc:174 msgid "Signature File" msgstr "Датотека потписа" #: pan/gui/profiles-dialog.cc:184 msgid "Text File" msgstr "Текстуална датотека" #: pan/gui/profiles-dialog.cc:186 msgid "Text" msgstr "Текст" #: pan/gui/profiles-dialog.cc:188 msgid "Command" msgstr "Наредба" #: pan/gui/profiles-dialog.cc:191 msgid "PGP Signature" msgstr "ПГП потпис" #: pan/gui/profiles-dialog.cc:196 msgid "Signature Type: " msgstr "Врста потписа: " #: pan/gui/profiles-dialog.cc:227 msgid "Avatars" msgstr "Аватари" #: pan/gui/profiles-dialog.cc:230 msgid "" "You can add an avatar icon to your articles with a Base64-encoded PNG.\n" "Add the Base64-encoded picture without the trailing “Face:”." msgstr "" "Можете да додате иконицу аватара вашим чланцима са ПНГ кодираној у " "Основи64.\n" "Додајте слику кодирану у Основи64 без пратећег „Лице:“." #: pan/gui/profiles-dialog.cc:232 msgid "_Face:" msgstr "_Лице:" #: pan/gui/profiles-dialog.cc:236 msgid "" "You can add an avatar icon to your articles with a unique X-Face code.\n" "Add the code without the trailing \"X-Face:\" \n" " if it was generated by a helper program (for example http://www.dairiki.org/" "xface/xface.php)." msgstr "" "Можете да додате иконицу аватара вашим чланцима јединственим кодом Х-лица.\n" "Додајте код без пратећег „Х-лице:“ \n" " ако је створен помоћничким програмом (на пример „http://www.dairiki.org/" "xface/xface.php“)." #: pan/gui/profiles-dialog.cc:239 msgid "_X-Face:" msgstr "_Х-лице:" #: pan/gui/profiles-dialog.cc:241 msgid "Optional Information" msgstr "Изборни подаци" #: pan/gui/profiles-dialog.cc:246 msgid "" "When posting to Usenet, your article's Message-ID contains a domain name.\n" "You can set a custom domain name here, or leave it blank to let Pan use the " "domain name from your email address." msgstr "" "Када шаљете на Јузнет, ИБ поруке вашег чланка садржи назив домена.\n" "Овде можете да подесите прилагођени назив домена, или да оставите празним " "како би Пан користио назив домена из адресе ваше ел. поште." #: pan/gui/profiles-dialog.cc:249 msgid "Message-ID _Domain Name:" msgstr "Назив _домена ИБ-а поруке:" #: pan/gui/profiles-dialog.cc:253 #, c-format msgid "" "%i for Message-ID\n" "%a for Author and Address\n" "%n for Author name\n" "%d for Date" msgstr "" "%i за ИБ поруке\n" "%a за аутора и адресу\n" "%n за име аутора\n" "%d за датум" #: pan/gui/profiles-dialog.cc:254 msgid "_Attribution:" msgstr "_Уводни текст:" #. Translators: Do not localize Reply-To and the quote marks in \"Your Name\". #: pan/gui/profiles-dialog.cc:279 msgid "" "Extra headers to be included in your articles, such as\n" "Reply-To: \"Your Name\" \n" "Organization: Your Organization\n" msgstr "" "Додатна заглавља која ће бити укључена у ваше чланке, као што је\n" "Одговори: „Ваше име“\n" "Удружење: Ваше удружење\n" #: pan/gui/profiles-dialog.cc:289 msgid "E_xtra Headers:" msgstr "_Додатна заглавља:" #: pan/gui/profiles-dialog.cc:334 msgid "Invalid email address." msgstr "Неисправна адреса ел. поште." #: pan/gui/profiles-dialog.cc:335 msgid "Please use an address of the form joe@somewhere.org" msgstr "Користите адресу у облику „pera@nešto.org“" #: pan/gui/profiles-dialog.cc:491 msgid "New Profile" msgstr "Нови профил" #: pan/gui/profiles-dialog.cc:537 msgid "Posting Profiles" msgstr "Профили објављивања" #: pan/gui/profiles-dialog.cc:553 msgid "Profiles" msgstr "Профили" #: pan/gui/save-attach-ui.cc:44 #, c-format msgid "" "%g - group as one directory (alt.binaries.pictures.trains)\n" "%G - group as nested directory (/alt/binaries/pictures/trains)\n" "%s - Subject line excerpt\n" "%S - Subject line\n" "%n - Poster display name\n" "%e - Poster email address\n" "%d - Article timestamp\n" "\"/home/user/News/Pan/%g\" becomes\n" "\"/home/user/News/Pan/alt.binaries.pictures.trains\", and\n" "\"/home/user/News/Pan/%G\" becomes\n" "\"/home/user/News/Pan/alt/binaries/pictures/trains\"," msgstr "" "%g — група као један директоријум (alt.binaries.pictures.trains)\n" "%G — група као угнеждени директоријум (/alt/binaries/pictures/trains)\n" "%s — Извадак реда за тему\n" "%S — Ред за тему\n" "%n — Приказано име објављивача\n" "%e — Адреса ел. поште објављивача\n" "%d — Временска ознака чланка\n" "„/home/user/News/Pan/%g“ постаје\n" "„/home/user/News/Pan/alt.binaries.pictures.trains“, а\n" "„/home/user/News/Pan/%G“ постаје\n" "„/home/user/News/Pan/alt/binaries/pictures/trains“," #: pan/gui/save-attach-ui.cc:196 pan/gui/save-ui.cc:216 msgid "Add to the queue sorted by date posted" msgstr "Дода у заказано према датуму објављивања" #: pan/gui/save-attach-ui.cc:197 pan/gui/save-ui.cc:217 msgid "Add to the front of the queue" msgstr "Додај прочеље заказаног" #: pan/gui/save-attach-ui.cc:198 pan/gui/save-ui.cc:218 msgid "Add to the back of the queue" msgstr "Додај зачеље заказаног" #: pan/gui/save-attach-ui.cc:230 msgid "Pan: Save Attachments" msgstr "Пан: Сачувај прилоге" #: pan/gui/save-attach-ui.cc:255 pan/gui/save-attach-ui.cc:273 #: pan/gui/save-ui.cc:270 pan/gui/save-ui.cc:291 msgid "_Location:" msgstr "_Место:" #: pan/gui/save-attach-ui.cc:259 pan/gui/save-ui.cc:274 msgid "Save Articles" msgstr "Сачувајте чланке" #: pan/gui/save-attach-ui.cc:276 pan/gui/save-ui.cc:294 #, c-format msgid "_Group's path: %s" msgstr "_Путања групе: %s" #: pan/gui/save-attach-ui.cc:287 pan/gui/save-ui.cc:309 msgid "_Priority:" msgstr "_Важност:" #: pan/gui/save-ui.cc:44 #, c-format msgid "" "%g - group as one directory (alt.binaries.pictures.trains)\n" "%G - group as nested directory (/alt/binaries/pictures/trains)\n" "%s - subject line excerpt\n" "%S - subject line\n" "%n - Poster display name\n" "%e - Poster email address\n" "%d - Article timestamp\n" " \n" "\"/home/user/News/Pan/%g\" becomes\n" "\"/home/user/News/Pan/alt.binaries.pictures.trains\", and\n" "\"/home/user/News/Pan/%G\" becomes\n" "\"/home/user/News/Pan/alt/binaries/pictures/trains\"," msgstr "" "%g — група као један директоријум (alt.binaries.pictures.trains)\n" "%G — група као угнеждени директоријум (/alt/binaries/pictures/trains)\n" "%s — извадак реда за тему\n" "%S — ред за тему\n" "%n — Приказано име објављивача\n" "%e — Адреса е-поште објављивача\n" "%d — Временска ознака чланка\n" " \n" "„/home/user/News/Pan/%g“ постаје\n" "„/home/user/News/Pan/alt.binaries.pictures.trains“, а\n" "„/home/user/News/Pan/%G“ постаје\n" "„/home/user/News/Pan/alt/binaries/pictures/trains“," #: pan/gui/save-ui.cc:207 msgid "Save attachments" msgstr "Сачувај прилоге" #: pan/gui/save-ui.cc:208 msgid "Save text" msgstr "Сачувај текст" #: pan/gui/save-ui.cc:209 msgid "Save attachments and text" msgstr "Сачувај прилоге и текст" #: pan/gui/save-ui.cc:245 msgid "Pan: Save Articles" msgstr "Пан: Сачувај чланке" #: pan/gui/save-ui.cc:305 msgid "_Action:" msgstr "_Радња:" #: pan/gui/score-add-ui.cc:89 msgid "is more than" msgstr "је више од" #: pan/gui/score-add-ui.cc:90 msgid "is at most" msgstr "је барем" #: pan/gui/score-add-ui.cc:112 msgid "increase the article's score by" msgstr "увећај учинак чланка за" #: pan/gui/score-add-ui.cc:113 msgid "decrease the article's score by" msgstr "умањи учинак чланка за" #: pan/gui/score-add-ui.cc:114 msgid "set the article's score to" msgstr "подеси учинак чланка на" #: pan/gui/score-add-ui.cc:115 msgid "watch the article (set its score to 9999)" msgstr "прати чланак (постави му учинак на 9999)" #: pan/gui/score-add-ui.cc:116 msgid "ignore the article (set its score to -9999)" msgstr "занемари чланак (постави му учинак на -9999)" #: pan/gui/score-add-ui.cc:141 msgid "References" msgstr "Упуте" #: pan/gui/score-add-ui.cc:142 msgid "Line Count" msgstr "Број редова" #: pan/gui/score-add-ui.cc:143 msgid "Byte Count" msgstr "Број бајта" #: pan/gui/score-add-ui.cc:144 msgid "Crosspost Group Count" msgstr "Број група унакрсног објављивања" #: pan/gui/score-add-ui.cc:145 msgid "Age (in days)" msgstr "Старост (у данима)" #: pan/gui/score-add-ui.cc:167 msgid "for the next month" msgstr "за следећи месец" #: pan/gui/score-add-ui.cc:168 msgid "for the next six months" msgstr "за следећих шест месеци" #: pan/gui/score-add-ui.cc:169 msgid "forever" msgstr "заувек" #: pan/gui/score-add-ui.cc:194 msgid "contains" msgstr "садржи" #: pan/gui/score-add-ui.cc:195 msgid "doesn't contain" msgstr "не садржи" #: pan/gui/score-add-ui.cc:196 msgid "is" msgstr "је" #: pan/gui/score-add-ui.cc:197 msgid "isn't" msgstr "није" #: pan/gui/score-add-ui.cc:198 msgid "starts with" msgstr "почиње са" #: pan/gui/score-add-ui.cc:199 msgid "ends with" msgstr "завршава се са" #: pan/gui/score-add-ui.cc:200 msgid "matches regex" msgstr "одговара регуларном изразу" #: pan/gui/score-add-ui.cc:481 msgid "Another rule already sets this article's score." msgstr "Друго правило већ подешава учинак овог чланка." #: pan/gui/score-add-ui.cc:482 msgid "You may want to go back or delete the old rule." msgstr "Можда желите да се вратите или да обришете старо правило." #: pan/gui/score-add-ui.cc:484 msgid "Back" msgstr "Назад" #: pan/gui/score-add-ui.cc:485 pan/gui/task-pane.cc:1040 msgid "Delete" msgstr "Обриши" #: pan/gui/score-add-ui.cc:486 pan/gui/score-add-ui.cc:607 #: pan/gui/score-view-ui.cc:207 msgid "Add" msgstr "Додај" #: pan/gui/score-add-ui.cc:553 msgid "Add and Re_score" msgstr "Додај и поново израчунај _учинак" #: pan/gui/score-add-ui.cc:602 pan/gui/score-add-ui.cc:622 msgid "New Scoring Rule" msgstr "Ново правило бодовања" #: pan/gui/score-add-ui.cc:633 msgid "Group name" msgstr "Назив групе" #: pan/gui/score-add-ui.cc:640 msgid "and" msgstr "и" # shell:noshell-reason title #: pan/gui/score-view-ui.cc:55 msgid "Close and Re_score" msgstr "Затвори и поново израчунај _учинак" #: pan/gui/score-view-ui.cc:153 #, c-format msgid "File %s, Lines %d - %d" msgstr "Датотека „%s“, редова %d — %d" #: pan/gui/score-view-ui.cc:181 msgid "Pan: Article's Scores" msgstr "Пан: Учинци чланка" #: pan/gui/score-view-ui.cc:212 msgid "New Score" msgstr "Нови учинак" #: pan/gui/score-view-ui.cc:217 msgid "Criteria" msgstr "Мерило" #: pan/gui/score-view-ui.cc:240 msgid "Add a New Scoring Rule" msgstr "Додајте ново правило бодовања" #: pan/gui/score-view-ui.cc:247 msgid "Remove the Selected Scoring Rule" msgstr "Уклоните изабрано правило бодовања" #: pan/gui/server-ui.cc:292 msgid "Please specify the server's address." msgstr "Наведите адресу сервера." #: pan/gui/server-ui.cc:344 msgid "Import SSL Certificate (PEM Format) From File" msgstr "Увезите ССЛ уверење (у ПЕМ облику) из датотеке" #. create the dialog #: pan/gui/server-ui.cc:381 pan/gui/server-ui.cc:996 msgid "Add a Server" msgstr "Додајте сервер" #: pan/gui/server-ui.cc:381 pan/gui/server-ui.cc:1002 msgid "Edit a Server's Settings" msgstr "Уредите подешавања сервера" #: pan/gui/server-ui.cc:401 msgid "Location" msgstr "Место" #: pan/gui/server-ui.cc:405 msgid "The news server's actual address, e.g. \"news.mynewsserver.com\"." msgstr "Адреса сервера дискусионих група, нпр. „news.mojserver.cs“." #: pan/gui/server-ui.cc:406 msgid "_Address:" msgstr "_Адреса:" #: pan/gui/server-ui.cc:411 msgid "" "The news server's port number. Typically 119 for unencrypted and 563 for " "encrypted connections (SSL/TLS)." msgstr "" "Прикључник сервера дискусионих група. Обично је 119 за нешифроване и 563 за " "шифроване везе(ССЛ/ТЛС)." #: pan/gui/server-ui.cc:412 msgid "Por_t:" msgstr "_Прикључник:" #: pan/gui/server-ui.cc:415 msgid "Login (if Required)" msgstr "Пријава (ако је потребна)" #: pan/gui/server-ui.cc:419 msgid "_Username:" msgstr "_Корисник:" #: pan/gui/server-ui.cc:420 msgid "" "The username to give the server when asked. If your server doesn't require " "authentication, you can leave this blank." msgstr "" "Корисничко име које се даје серверу када затражи. Ако ваш сервер не захтева " "потврђивање идентитета можете оставити празним." #: pan/gui/server-ui.cc:424 msgid "_Password:" msgstr "_Лозинка:" #: pan/gui/server-ui.cc:425 msgid "" "The password to give the server when asked. If your server doesn't require " "authentication, you can leave this blank." msgstr "" "Лозинка која се даје серверу када затражи. Ако ваш сервер не захтева " "потврђивање идентитета можете оставити празним." #: pan/gui/server-ui.cc:428 msgid "Settings" msgstr "Подешавања" #: pan/gui/server-ui.cc:435 msgid "Connection _Limit:" msgstr "Ограничење _везе:" #: pan/gui/server-ui.cc:439 msgid "After Two Weeks" msgstr "Након две недеље" #: pan/gui/server-ui.cc:440 msgid "After One Month" msgstr "Након једног месеца" #: pan/gui/server-ui.cc:441 msgid "After Two Months" msgstr "Након два месеца" #: pan/gui/server-ui.cc:442 msgid "After Three Months" msgstr "Након три месеца" #: pan/gui/server-ui.cc:443 msgid "After Six Months" msgstr "Након шест месеци" #: pan/gui/server-ui.cc:444 msgid "Never Expire Old Articles" msgstr "Никада" #: pan/gui/server-ui.cc:458 msgid "E_xpire Old Articles:" msgstr "Стари чланци _застаревају:" #: pan/gui/server-ui.cc:462 msgid "Primary" msgstr "Главни" #: pan/gui/server-ui.cc:463 msgid "Fallback" msgstr "Резервни" #: pan/gui/server-ui.cc:477 msgid "Server Rank:" msgstr "Ранг сервера:" #: pan/gui/server-ui.cc:481 msgid "" "Fallback servers are used for articles that can't be found on the " "primaries. One common approach is to use free servers as primaries and " "subscription servers as fallbacks." msgstr "" "Резервни сервери се користе за чланке који не могу бити пронађени на " "главнима. Уобичајен приступ је да се као главни користе слободни сервери а " "сервери са претплатама као резервни." #: pan/gui/server-ui.cc:486 msgid "Disable Compression (N/A)" msgstr "Искључи сажимање (Н/Д)" #: pan/gui/server-ui.cc:487 msgid "XZVER Compression (Astraweb)" msgstr "ХЗВЕР сажимање (Astraweb)" #: pan/gui/server-ui.cc:488 msgid "GZIP Compression (Giganews etc.)" msgstr "ГЗИП сажимање (Гигањуз итд.)" #: pan/gui/server-ui.cc:502 msgid "Header Compression:" msgstr "Сажимање заглавља:" #: pan/gui/server-ui.cc:508 msgid "Security" msgstr "Безбедност" #: pan/gui/server-ui.cc:513 msgid "Use Unsecure (Plaintext) Connections" msgstr "Користи несигурне везе (обичан текст)" #: pan/gui/server-ui.cc:514 msgid "Use Secure SSL Connections" msgstr "Користи безбедне ССЛ везе" #: pan/gui/server-ui.cc:529 msgid "TLS (SSL) Settings:" msgstr "Подешавања ТЛС-а (ССЛ):" #: pan/gui/server-ui.cc:534 msgid "" "You can enable/disable secure SSL/TLS connections here. If you enable SSL/" "TLS, your data is encrypted and secure. It is encouraged to enable SSL/TLS " "for privacy reasons." msgstr "" "Овде можете да укључите/искључите безбедне ССЛ/ТЛС везе. Ако укључите ССЛ/" "ТЛС, ваши подаци су шифровани и безбедни. Саветује вам се да укључите ССЛ/" "ТЛС из личних разлога." #: pan/gui/server-ui.cc:539 msgid "Always trust this server's certificate" msgstr "Увек веруј уверењу са овог сервера" #: pan/gui/server-ui.cc:724 #, c-format msgid "Really delete \"%s\"?" msgstr "Да обришем „%s“?" #: pan/gui/server-ui.cc:813 msgid "No information available." msgstr "Нема доступних података." #: pan/gui/server-ui.cc:823 #, c-format msgid "Server Certificate for '%s'" msgstr "Уверење сервера за „%s“" #: pan/gui/server-ui.cc:922 #, c-format msgid "Really delete certificate for \"%s\"?" msgstr "Да обришем уверење за „%s“?" #. dialog #: pan/gui/server-ui.cc:949 pan/gui/server-ui.cc:970 pan/gui/server-ui.cc:1068 msgid "Servers" msgstr "Сервери" #: pan/gui/server-ui.cc:1009 msgid "Remove a Server" msgstr "Уклони сервер" #. dialog #: pan/gui/server-ui.cc:1042 msgid "SSL Certificates" msgstr "ССЛ уверења" #: pan/gui/server-ui.cc:1063 msgid "Certificates" msgstr "Уверења" #: pan/gui/server-ui.cc:1094 msgid "Import Certificate" msgstr "Увези уверење" #: pan/gui/server-ui.cc:1100 msgid "Inspect Certificate" msgstr "Испитај уверење" #: pan/gui/server-ui.cc:1107 msgid "Remove Certificate" msgstr "Уклони уверење" #: pan/gui/task-pane.cc:124 #, c-format msgid "" "\n" "Upload\n" "\n" "Subject: \"%s\"\n" "From: %s\n" "Groups: %s\n" "Sourcefile: %s\n" msgstr "" "\n" "Отпреми\n" "\n" "Тема: „%s“\n" "Шаље: %s\n" "Групе: %s\n" "Извор: %s\n" #: pan/gui/task-pane.cc:136 #, c-format msgid "" "\n" "Download\n" "\n" "Subject: \"%s\"\n" "From: %s\n" "Date: %s\n" "Groups: %s\n" "Save Path: %s\n" msgstr "" "\n" "Преузми\n" "\n" "Тема: \"%s\"\n" "Шаље: %s\n" "Датум: %s\n" "Групе: %s\n" "Путања чувања: %s\n" #: pan/gui/task-pane.cc:138 msgid "unknown" msgstr "непознато" #: pan/gui/task-pane.cc:306 msgid "Choose New Destination for Selected Tasks" msgstr "Изаберите ново одредиште за изабране задатке" #: pan/gui/task-pane.cc:310 msgid "Save" msgstr "Сачувај" #: pan/gui/task-pane.cc:460 #, c-format msgid "Pan: Tasks (%d Queued, %d Running, %d Stopped)" msgstr "Пан: Задаци (заказаних: %d, покретнутих: %d, заустављених: %d)" #: pan/gui/task-pane.cc:462 #, c-format msgid "Pan: Tasks (%d Queued, %d Running)" msgstr "Пан: Задаци (заказаних: %d, покретнутих: %d)" #: pan/gui/task-pane.cc:464 msgid "Pan: Tasks" msgstr "Пан: Задаци" #: pan/gui/task-pane.cc:489 #, c-format msgid "%lu selected, %s" msgstr "изабраних: %lu, %s" #: pan/gui/task-pane.cc:553 msgid "Running" msgstr "Радим" #: pan/gui/task-pane.cc:554 msgid "Decoding" msgstr "Декодирам" #: pan/gui/task-pane.cc:556 msgid "Queued for Decode" msgstr "Заказано за декодирање" #: pan/gui/task-pane.cc:557 msgid "Queued for Encode" msgstr "Заказано за кодирање" #: pan/gui/task-pane.cc:558 msgid "Queued" msgstr "Заказано" #: pan/gui/task-pane.cc:559 msgid "Stopped" msgstr "Заустављено" #: pan/gui/task-pane.cc:560 msgid "Removing" msgstr "Уклањам" #: pan/gui/task-pane.cc:589 #, c-format msgid "%d%% Done" msgstr "Урађено је %d%%" #: pan/gui/task-pane.cc:595 #, c-format msgid "%d:%02d:%02d Remaining (%d @ %lu KiB/s)" msgstr "%d∶%02d∶%02d Преостаје (%d @ %lu KiB/s)" #: pan/gui/task-pane.cc:690 pan/gui/task-pane.cc:691 msgid "Move To Top" msgstr "Премести на врх" #: pan/gui/task-pane.cc:695 pan/gui/task-pane.cc:696 msgid "Move To Bottom" msgstr "Премести на крај" #: pan/gui/task-pane.cc:700 pan/gui/task-pane.cc:701 msgid "Show Task Information" msgstr "Прикажите податке о задатку" #: pan/gui/task-pane.cc:705 pan/gui/task-pane.cc:706 msgid "Stop Task" msgstr "Зауставите задатак" #: pan/gui/task-pane.cc:710 pan/gui/task-pane.cc:711 msgid "Delete Task" msgstr "Обришите задатак" #: pan/gui/task-pane.cc:715 pan/gui/task-pane.cc:716 msgid "Restart Task" msgstr "Поново покрените задатак" #: pan/gui/task-pane.cc:720 pan/gui/task-pane.cc:721 msgid "Change Download Destination" msgstr "Промени одредиште преузимања" #: pan/gui/task-pane.cc:1016 msgid "_Online" msgstr "_Повежи се" #: pan/gui/task-pane.cc:1026 msgid "Move up" msgstr "Преместите горе" #: pan/gui/task-pane.cc:1027 msgid "Move task up" msgstr "Преместите задатак горе" #: pan/gui/task-pane.cc:1028 msgid "Move to top" msgstr "Преместите на врх" #: pan/gui/task-pane.cc:1029 msgid "Move task to top of the download queue" msgstr "Преместите задатак на почетак реда за преузимање" #: pan/gui/task-pane.cc:1031 msgid "Move down" msgstr "Премести доле" #: pan/gui/task-pane.cc:1032 msgid "Move task down" msgstr "Преместите задатак доле" #: pan/gui/task-pane.cc:1033 msgid "Move to bottom" msgstr "Преместите на крај" #: pan/gui/task-pane.cc:1034 msgid "Move task to the bottom of the download queue" msgstr "Преместите задатак на крај реда за преузимање" #: pan/gui/task-pane.cc:1036 msgid "Restart" msgstr "Поново покрени" #: pan/gui/task-pane.cc:1037 msgid "Restart Tasks" msgstr "Поново покрените задатке" #: pan/gui/task-pane.cc:1038 msgid "Stop" msgstr "Заустави" #: pan/gui/task-pane.cc:1039 msgid "Stop Tasks" msgstr "Зауставите задатке" #: pan/gui/task-pane.cc:1041 msgid "Delete Tasks" msgstr "Обришите задатке" #: pan/gui/task-pane.cc:1043 msgid "Close" msgstr "Затвори" #: pan/gui/task-pane.cc:1047 msgid "Show popups" msgstr "Прикажи облачиће" #: pan/gui/url.cc:143 #, c-format msgid "Error starting URL: %s (Command was: %s)" msgstr "Грешка покретања адресе: %s (Наредба беше: %s)" #: pan/tasks/decoder.cc:124 #, c-format msgid "Couldn't save file \"%s\": %s" msgstr "Не могу да сачувам датотеку „%s“: %s" #: pan/tasks/decoder.cc:146 pan/tasks/encoder.cc:146 msgid "Error initializing uulib" msgstr "Грешка покретања „uulib“-а" #: pan/tasks/decoder.cc:166 pan/tasks/socket-impl-gio.cc:360 #: pan/tasks/socket-impl-openssl.cc:641 #, c-format msgid "Error reading from %s: %s" msgstr "Грешка читања из „%s“: %s" #: pan/tasks/decoder.cc:206 #, c-format msgid "Saved \"%s\"" msgstr "Сачувао сам „%s“" #: pan/tasks/decoder.cc:213 #, c-format msgid "" "Error saving \"%s\":\n" "%s." msgstr "" "Грешка чувања „%s“:\n" "%s." #: pan/tasks/decoder.cc:326 pan/tasks/task-article.cc:351 #, c-format msgid "Decoding %s" msgstr "Декодирам „%s“" #: pan/tasks/encoder.cc:113 pan/tasks/encoder.cc:164 #, c-format msgid "Error loading %s from cache." msgstr "Грешка учитавања „%s“ из оставе." #: pan/tasks/encoder.cc:186 #, c-format msgid "Error encoding %s: %s" msgstr "Грешка кодирања „%s“: %s" #: pan/tasks/encoder.cc:276 #, c-format msgid "Encoding %s" msgstr "Кодирам „%s“" #: pan/tasks/nntp.cc:176 #, c-format msgid "%s requires a username, but none is set." msgstr "„%s“ захтева корисничко име, али оно није подешено." #: pan/tasks/nntp.cc:189 #, c-format msgid "%s requires a password, but none is set." msgstr "„%s“ захтева лозинку, али она није подешена." #: pan/tasks/nntp.cc:275 #, c-format msgid "Sending \"%s\" to %s returned an error: %s" msgstr "Слање „%s“ на %s је дало грешку: %s" #: pan/tasks/nntp.cc:298 #, c-format msgid "Sending \"%s\" to %s returned an unrecognized response: \"%s\"" msgstr "Слање „%s“ на %s је дало непознат одговор: \"%s\"" #: pan/tasks/nntp-pool.cc:241 #, c-format msgid "Unable to connect to \"%s\"" msgstr "Не могу да се повежем са „%s“" #: pan/tasks/queue.cc:778 pan/tasks/queue.cc:806 pan/tasks/queue.cc:833 msgid "No space left on device." msgstr "Нема више места на уређају." #: pan/tasks/socket-impl-gio.cc:173 pan/tasks/socket-impl-gio.cc:211 #: pan/tasks/socket-impl-openssl.cc:213 pan/tasks/socket-impl-openssl.cc:251 #, c-format msgid "Error connecting to \"%s\"" msgstr "Грешка повезивања са „%s“" #: pan/tasks/socket-impl-gio.cc:359 pan/tasks/socket-impl-openssl.cc:640 msgid "Unknown Error" msgstr "Непозната грешка" #: pan/tasks/task-article.cc:59 pan/tasks/task-article.cc:157 #, c-format msgid "Saving %s" msgstr "Чувам „%s“" #: pan/tasks/task-article.cc:61 #, c-format msgid "Reading %s" msgstr "Читам „%s“" #: pan/tasks/task-article.cc:323 #, c-format msgid "Article \"%s\" is incomplete -- the news server(s) don't have part %s" msgstr "Чланак „%s“ није потпун — сервер нема део „%s“" #: pan/tasks/task-groups.cc:41 #, c-format msgid "Getting group list from \"%s\"" msgstr "Добављам списак групе са „%s“" #: pan/tasks/task-groups.cc:134 #, c-format msgid "Fetched %lu Groups" msgstr "Довукао сам %lu групе" #: pan/tasks/task-post.cc:33 #, c-format msgid "Posting \"%s\"" msgstr "Објављујем „%s“" #: pan/tasks/task-post.cc:74 #, c-format msgid "Posting of \"%s\" failed: %s" msgstr "Није успело објављивање „%s“: %s" #: pan/tasks/task-post.cc:79 #, c-format msgid "Posting of \"%s\" successful: %s" msgstr "Објављивање датотеке „%s“ је успело: %s" #: pan/tasks/task-upload.cc:55 #, c-format msgid "Uploading %s" msgstr "Отпремам „%s“" #: pan/tasks/task-upload.cc:249 #, c-format msgid "Uploading %s - Part %d of %d" msgstr "Отпремам „%s“ — %d. део од %d" #: pan/tasks/task-upload.cc:251 #, c-format msgid "Uploading message body with subject \"%s\"" msgstr "Отпремам разраду поруке са темом „%s“" #: pan/tasks/task-upload.cc:308 #, c-format msgid "Posting of file %s (part %d of %d) failed: No posts allowed by server." msgstr "" "Није успело објављивање датотеке „%s“ (%d. део од %d): Сервер не дозвољава " "објављивања." #: pan/tasks/task-upload.cc:317 #, c-format msgid "Posting of file %s (part %d of %d) failed: %s" msgstr "Није успело објављивање датотеке „%s“ (%d. део од %d): %s" #: pan/tasks/task-upload.cc:328 pan/tasks/task-upload.cc:335 #, c-format msgid "Posting of file %s (part %d of %d) successful: %s" msgstr "Успело је објављивање датотеке „%s“ (%d. део од %d): %s" #: pan/tasks/task-upload.cc:345 #, c-format msgid "Posting of file %s successful: %s" msgstr "Објављивање датотеке „%s“ је успело: %s" #: pan/tasks/task-upload.cc:349 #, c-format msgid "" "Posting of file %s not completely successful: Check the log (right-click " "list item)." msgstr "" "Објављивање датотеке „%s“ није у потпуности успело: Проверите дневник " "(десним тастером миша на ставку списка)." #: pan/tasks/task-upload.cc:368 #, c-format msgid "" "Posting of file %s not successful: Check the log (right-click list item)." msgstr "" "Објављивање датотеке „%s“ није успешно: Проверите дневник (десним тастером " "миша на ставку списка)." #: pan/tasks/task-xover.cc:82 #, c-format msgid "Getting all headers for \"%s\"" msgstr "Добављам сва заглавља за „%s“" #: pan/tasks/task-xover.cc:85 #, c-format msgid "Getting new headers for \"%s\"" msgstr "Добављам нова заглавља за „%s“" #. SAMPLE #: pan/tasks/task-xover.cc:89 #, c-format msgid "Sampling headers for \"%s\"" msgstr "Узоркујем заглавља за „%s“" #: pan/tasks/task-xover.cc:454 #, c-format msgid "%s (%lu parts, %lu articles)" msgstr "%s (бр. делова: %lu, бр. чланака: %lu)" #: pan/tasks/task-xover.cc:528 #, c-format msgid "Getting new headers for \"%s\" done." msgstr "Добављање нових заглавља за „%s“ је обављено." #: pan/usenet-utils/filter-info.cc:215 msgid "article doesn't have attachments" msgstr "чланак нема прилоге" #: pan/usenet-utils/filter-info.cc:219 msgid "the article has attachments" msgstr "чланак има прилоге" #: pan/usenet-utils/filter-info.cc:223 msgid "the article isn't cached locally" msgstr "чланак је причуван локално" #: pan/usenet-utils/filter-info.cc:227 msgid "the article is cached locally" msgstr "чланак је причуван локално" #: pan/usenet-utils/filter-info.cc:231 msgid "the article wasn't posted by you" msgstr "чланак сте ви објавили" #: pan/usenet-utils/filter-info.cc:235 msgid "the article was posted by you" msgstr "чланак сте ви објавили" #: pan/usenet-utils/filter-info.cc:239 msgid "the article has been read" msgstr "чланак је прочитан" #: pan/usenet-utils/filter-info.cc:243 msgid "the article hasn't been read" msgstr "чланак је прочитан" #: pan/usenet-utils/filter-info.cc:247 #, c-format msgid "the article is less than %ld bytes long" msgstr "дужина чланка је мања од %ld бајта" #: pan/usenet-utils/filter-info.cc:252 #, c-format msgid "the article is at least %ld bytes long" msgstr "дужина чланка је барем %ld бајта" #: pan/usenet-utils/filter-info.cc:257 #, c-format msgid "the article is less than %ld lines long" msgstr "дужина чланка је мања од %ld реда" #: pan/usenet-utils/filter-info.cc:262 #, c-format msgid "the article is at least %ld lines long" msgstr "дужина чланка је барем %ld реда" #: pan/usenet-utils/filter-info.cc:267 #, c-format msgid "the article is less than %ld days old" msgstr "чланак је млађи од %ld дана" #: pan/usenet-utils/filter-info.cc:272 #, c-format msgid "the article is at least %ld days old" msgstr "чланак је стар барем %ld дана" #: pan/usenet-utils/filter-info.cc:277 #, c-format msgid "the article was posted to less than %ld groups" msgstr "чланак је објављен на мање од %ld групе" #: pan/usenet-utils/filter-info.cc:282 #, c-format msgid "the article was posted to at least %ld groups" msgstr "чланак је објављен барем на %ld групе" #: pan/usenet-utils/filter-info.cc:287 #, c-format msgid "the article's score is less than %ld" msgstr "учинак чланка је мањи од %ld" #: pan/usenet-utils/filter-info.cc:292 #, c-format msgid "the article's score is %ld or higher" msgstr "учинак чланка је %ld или већи" #: pan/usenet-utils/filter-info.cc:301 pan/usenet-utils/filter-info.cc:311 #, c-format msgid "%s doesn't contain \"%s\"" msgstr "„%s“ не садржи „%s“" #: pan/usenet-utils/filter-info.cc:302 pan/usenet-utils/filter-info.cc:312 #, c-format msgid "%s isn't \"%s\"" msgstr "„%s“ није „%s“" #: pan/usenet-utils/filter-info.cc:303 pan/usenet-utils/filter-info.cc:313 #, c-format msgid "%s doesn't begin with \"%s\"" msgstr "„%s“ не почиње са „%s“" #: pan/usenet-utils/filter-info.cc:304 pan/usenet-utils/filter-info.cc:314 #, c-format msgid "%s doesn't end with \"%s\"" msgstr "„%s“ се не завршава са „%s“" #: pan/usenet-utils/filter-info.cc:305 pan/usenet-utils/filter-info.cc:315 #, c-format msgid "%s doesn't match the regex \"%s\"" msgstr "„%s“ не одговара регуларном изразу „%s“" #: pan/usenet-utils/filter-info.cc:327 #, c-format msgid "%s contains \"%s\"" msgstr "„%s“ садржи „%s“" #: pan/usenet-utils/filter-info.cc:328 #, c-format msgid "%s is \"%s\"" msgstr "„%s“ јесте „%s“" #: pan/usenet-utils/filter-info.cc:329 #, c-format msgid "%s begins with \"%s\"" msgstr "„%s“ почиње са „%s“" #: pan/usenet-utils/filter-info.cc:330 #, c-format msgid "%s ends with \"%s\"" msgstr "„%s“ се завршава са „%s“" #: pan/usenet-utils/filter-info.cc:331 #, c-format msgid "%s matches the regex \"%s\"" msgstr "„%s“ одговара регуларном изразу „%s“" #: pan/usenet-utils/filter-info.cc:337 msgid "Any of these tests fail:" msgstr "Нека од ових проба није успела:" #: pan/usenet-utils/filter-info.cc:344 msgid "All of these tests pass:" msgstr "Све ове пробе су прошле:" #: pan/usenet-utils/filter-info.cc:351 msgid "None of these tests pass:" msgstr "Ниједна од ових проба није прошла:" #: pan/usenet-utils/filter-info.cc:358 msgid "Any of these tests pass:" msgstr "Нека од ових проба је прошла:" #: pan/usenet-utils/gnksa.cc:880 #, c-format msgid "No email address provided; generating message-id with domain \"%s\"" msgstr "Нисте доставили адресу ел. поште; стварам иб поруке са доменом „%s“" #: pan/usenet-utils/message-check.cc:122 msgid "Warning: Reply seems to be top-posted." msgstr "Упозорење: Изгледа да је одговор објављен поруке." #: pan/usenet-utils/message-check.cc:143 msgid "Warning: The signature marker should be \"-- \", not \"--\"." msgstr "Упозорење: Раздвајач потписа треба да буде „-- “ а не „--“." #: pan/usenet-utils/message-check.cc:160 msgid "Warning: Signature prefix with no signature." msgstr "Упозорење: Префикс потписа нема потпис." #: pan/usenet-utils/message-check.cc:165 msgid "Warning: Signature is more than 4 lines long." msgstr "Упозорење: Потпис је дужи од 4 реда." #: pan/usenet-utils/message-check.cc:170 msgid "Warning: Signature is more than 80 characters wide." msgstr "Упозорење: Потпис је дужи од 80 знакова." #: pan/usenet-utils/message-check.cc:196 #, c-format msgid "Warning: %d line is more than 80 characters wide." msgid_plural "Warning: %d lines are more than 80 characters wide." msgstr[0] "Упозорење: %d ред је дужи од 80 знакова." msgstr[1] "Упозорење: %d реда су дужа од 80 знакова." msgstr[2] "Упозорење: %d редова је дуже од 80 знакова." msgstr[3] "Упозорење: Један ред је дужи од 80 знакова." #: pan/usenet-utils/message-check.cc:221 msgid "Error: Message is empty." msgstr "Грешка: Порука је празна." #: pan/usenet-utils/message-check.cc:256 msgid "Warning: The message is entirely quoted text!" msgstr "Упозорење: Порука је у потпуности цитирани текст!" #: pan/usenet-utils/message-check.cc:257 msgid "Warning: The message is mostly quoted text." msgstr "Упозорење: Порука је већим делом цитирани текст." #: pan/usenet-utils/message-check.cc:307 msgid "Error: Message appears to have no new content." msgstr "Грешка: Порука изгледа као да не садржи нови садржај." #: pan/usenet-utils/message-check.cc:342 pan/usenet-utils/message-check.cc:381 #, c-format msgid "" "Warning: The posting profile's server doesn't carry newsgroup\n" "\t\"%s\".\n" "\tIf the group name is correct, switch profiles in the \"From:\"\n" "\tline or edit the profile with \"Edit|Manage Posting Profiles\"." msgstr "" "Упозорење: Сервер профила објављивања не преноси причаоницу\n" "\t„%s“.\n" "\tАко је назив групе исправан, промените профиле у реду „Шаље:“\n" "\tили уредите профил у изборнику „Уреди|Уреди профиле објављивања“." #: pan/usenet-utils/message-check.cc:353 msgid "Warning: Following-Up to too many groups." msgstr "Упозорење: Превише група за праћење." #: pan/usenet-utils/message-check.cc:364 msgid "Error: No Subject specified." msgstr "Грешка: Није наведена тема." #: pan/usenet-utils/message-check.cc:393 #, c-format msgid "Warning: Group \"%s\" is read-only." msgstr "Упозорење: Група „%s“ је само за читање." #: pan/usenet-utils/message-check.cc:402 msgid "Error: Posting to a very large number of groups." msgstr "Грешка: Објављујем на врло велики број група." # bug(slobo): вероватно извештај о достави #: pan/usenet-utils/message-check.cc:407 msgid "Warning: Posting to a large number of groups." msgstr "Упозорење: Објављујем на велики број група." #: pan/usenet-utils/message-check.cc:414 msgid "Warning: Crossposting without setting Followup-To header." msgstr "Упозорење: Унакрсно објављивање без подешавања заглавља „Прати“." #: pan/usenet-utils/message-check.cc:439 msgid "Error: Bad email address." msgstr "Грешка: Лоша адреса ел. поште." #: pan/usenet-utils/message-check.cc:448 msgid "Warning: Most newsgroups frown upon HTML posts." msgstr "Упозорење: Већина причаоница из ХТМЛ објава." #: pan/usenet-utils/message-check.cc:484 msgid "Error: No Recipients." msgstr "Грешка: Нема прималаца." #: pan/usenet-utils/scorefile.cc:310 #, c-format msgid "Error reading score in %*.*s, line %d: unexpected line." msgstr "Грешка читања учинка у %*.*s, %d. ред: неочекивани ред." #: pan/usenet-utils/scorefile.cc:442 #, c-format msgid "" "Error reading score in %*.*s, line %d: expected 'Expires: MM/DD/YYYY' or " "'Expires: DD-MM-YYYY'." msgstr "" "Грешка читања учинка у %*.*s, %d. ред: очекивах „Истиче: ММ/ДД/ГГГГ“ или " "„Истиче: ДД-ММ-ГГГГ“." #: pan/usenet-utils/scorefile.cc:452 #, c-format msgid "Expired old score from %*.*s, line %d" msgstr "Стари учинак је истекао од %*.*s, %d. ред" #: pan/usenet-utils/scorefile.cc:589 #, c-format msgid "Read %lu scoring rules in %lu sections from \"%s\"" msgstr "Читам %lu правила оцењивања у %lu одељка из „%s“" #: pan/usenet-utils/ssl-utils.cc:172 #, c-format msgid "Error printing the server certificate for '%s'" msgstr "Грешка исписивања уверења сервера за „%s“" #: pan/usenet-utils/ssl-utils.cc:191 #, c-format msgid "" "The current server '%s' sent this security certificate:\n" "\n" msgstr "" "Текући сервер „%s“ је послао ово безбедносно уверење:\n" "\n" #: pan/usenet-utils/ssl-utils.cc:197 #, c-format msgid "" "Certificate information for server '%s':\n" "\n" msgstr "" "Подаци уверења за сервер „%s“:\n" "\n" #: pan/usenet-utils/ssl-utils.cc:202 #, c-format msgid "" "%sIssuer information:\n" "%s\n" "Valid until: %s\n" "\n" "Not valid before: %s\n" "\n" msgstr "" "%sПодаци о издавачу:\n" "%s\n" "Важи до: %s\n" "\n" "Не важи пре: %s\n" "\n" #: pan/usenet-utils/text-massager.cc:397 msgid "> [quoted text muted]" msgstr "> [цитирани текст утишан]" #: pan/usenet-utils/text-massager.cc:579 msgid "no_name" msgstr "без_имена" #: pan/usenet-utils/text-massager.cc:580 msgid "no_mail" msgstr "нема_поште" #, c-format #~ msgid "There seems to be no password set for server %s." #~ msgstr "Изгледа да лозинка није подешена за сервер „%s“." #~ msgid "GNOME Keyring denied access to the passwords." #~ msgstr "Гномов привезак кључева одија приступ лозинкама." #~ msgid "_Tip Jar..." #~ msgstr "_Добровољан прилог..." #~ msgid "Toggle on/offline" #~ msgstr "На мрежи/ван мреже" #, c-format #~ msgid "Error setting custom spellchecker: %s" #~ msgstr "Грешка подешавања произвољне провере правописа: %s" #, c-format #~ msgid "Error setting spellchecker: %s" #~ msgstr "Грешка подешавања провере правописа: %s" #~ msgid "Minimize to tray" #~ msgstr "Спусти у системску касету" #~ msgid "Start Pan minimized" #~ msgstr "Покрени Пана умањеним" #~ msgid "Getting header counts for \"%s\"" #~ msgstr "Добављам број заглавља за „%s“" #~ msgid "pan" #~ msgstr "pan" #~| msgid "Save Articles" #~ msgid "_Save Articles…" #~ msgstr "_Сачувајте чланке…" #~| msgid "Save Articles" #~ msgid "Save Articles…" #~ msgstr "Сачувајте чланке…" #~| msgid "Save Articles from Selected NZB" #~ msgid "Save Articles from Selected _NZB…" #~ msgstr "Сачувајте чланке из изабраних _НЗБ-а…" #~| msgid "Save Articles to an NZB File" #~ msgid "Save Articles to an NZB _File…" #~ msgstr "Сачувајте чланке у НЗБ _датотеку…" #~| msgid "Import NZB Files" #~ msgid "_Import NZB Files…" #~ msgstr "_Увезите НЗБ датотеке…" #~ msgid "X-Face (Avatar)" #~ msgstr "Х-лице (Аватар)" #~ msgid "isn’t" #~ msgstr "није" #~| msgid "Posting of \"%s\" successful: %s" #~ msgid "Posting of “%s” successful: %s" #~ msgstr "Објављивање „%s“ је успело: %s" #~| msgid "the article isn't cached locally" #~ msgid "the article isn’t cached locally" #~ msgstr "чланак није причуван локално" #~| msgid "the article wasn't posted by you" #~ msgid "the article wasn’t posted by you" #~ msgstr "чланак нисте ви објавили" #~| msgid "the article hasn't been read" #~ msgid "the article hasn’t been read" #~ msgstr "чланак није прочитан" #~ msgid "GNOME Keyring" #~ msgstr "Гномов привезак кључева" #~ msgid "Store passwords in GNOME Keyring" #~ msgstr "Сачувај лозинке у Гномовом привеску кључева" #~ msgid "_1. Header Pane" #~ msgstr "_1. Површ заглавља" #~ msgid "_2. Search Pane" #~ msgstr "_2. Површ претраге" #~ msgid "" #~ "Your copy of libpcre doesn't support UTF-8. UTF-8 regular expressions " #~ "may fail." #~ msgstr "" #~ "Ваш „libpcre“ примерак не подржава УТФ-8. УТФ-8 регуларни изрази могу " #~ "бити неуспешни." #~ msgid "Get New Headers for Subscribed Groups" #~ msgstr "Добавите нова заглавља за праћене групе" #~ msgid "Abbreviate _Names in Group Pane" #~ msgstr "Скрати _називе у површи групе" #~ msgid "Match Only Articles Posted by Me" #~ msgstr "Поклопи само чланке које сам ја објавио" #~ msgid "%u Tasks Running, %u Tasks Total" #~ msgstr "Покренутих задатака: %u, укупно задатака: %u" #~ msgid "Wrap the Article Body to 80 Columns" #~ msgstr "Прелиоми разраду члана на 80 стубаца" #~ msgid "Use _Monospace Font in Body Pane" #~ msgstr "Користи слова сталне _ширине у површи разраде" #~ msgid "%d connections totaling %.1f KiB per second" #~ msgstr "%d везе са укупно %.1f KiB у секунди" #~ msgid "" #~ "Used when email replies to your posts should go somewhere other than the " #~ "email address above. Because Reply-To: is relatively difficult for " #~ "spammers to harvest, it's polite give your email address here if you gave " #~ "an invalid email address above." #~ msgstr "" #~ "Користи се када одговори на вашу поруку треба да буду послати на неку " #~ "другу адресу уместо на горе наведену. Зато што је спамерима теже да " #~ "искористе поље „Одговори“, а ипак би било учтиво са ваше стране да " #~ "прикажете праву адресу у овом пољу ако сте горе навели нетачну." #~ msgid "Could not decode article - file may be corrupt/incomplete" #~ msgstr "" #~ "Не могу да декодирам поруку — датотека је можда оштећна или непотпуна" #~ msgid "Checksum for `%s' part %d failed - file is corrupt" #~ msgstr "Провера збира за „%s“ %d. део није успела — датотека је оштећна" #~ msgid "Checksum for `%s' failed - file may be corrupt" #~ msgstr "Провера збира за „%s“ није успела — датотека је можда оштећна" #~ msgid "" #~ "Unsupported data version (%d) for server properties. Are you running an " #~ "old version of Pan by accident?" #~ msgstr "" #~ "Неподржано издање података (%d) за својства сервера. Да ли можда грешком " #~ "користите старо издање ПАН-а?" #~ msgid "" #~ "Unable to cancel article: Couldn't find matching article in folder `pan." #~ "sent'!" #~ msgstr "" #~ "Не могу да откажем чланак: Не могу да нађем одговарајући чланак у " #~ "фасцикли „pan.sent“!" #~ msgid "" #~ "Unable to supersede article: Couldn't find matching article in folder " #~ "`pan.sent'!" #~ msgstr "" #~ "Не могу да надоместим чланак: Не могу да нађем одговарајући чланак у " #~ "фасцикли „pan.sent“!" #~ msgid "" #~ "Type in a search string and press ENTER.\n" #~ "Wildcards are allowed." #~ msgstr "" #~ "Укуцајте у поље за претрагу и притисните УНЕСИ.\n" #~ "Дозвољена је употреба џокерских знакова." #~ msgid "/---" #~ msgstr "/---" #~ msgid "unknown@spammesenseless.com" #~ msgstr "nepoznato@spammesenseless.com" #~ msgid "Decoded \"%s\" from group \"%*.*s\", \"%s\"" #~ msgstr "Декодирано „%s“ из групе „%*.*s“, „%s“" #~ msgid "" #~ "Skipped %d groups due to possible corruption in \"%s\" and \"%s\". You " #~ "may want to delete these files and get a new grouplist from your news " #~ "server." #~ msgstr "" #~ "Прескочих %d групе због могућег оштећења у „%s“ и „%s“. Вероватно желите " #~ "да обришете ове датотеке и преузмете нови списак група са сервера." #~ msgid "Loaded %d groups for server \"%s\" in %.1f seconds (%.0f groups/sec)" #~ msgstr "Учитах %d групе са сервера „%s“ за %.1f секунде (%.0f групе/сек.)" #~ msgid "Error saving list of groups to \"%s\" - is the disk full?" #~ msgstr "Грешка чувања списка група у „%s“ — да ли је диск пун?" #~ msgid "Saved %d groups in \"%s\" in %.1f seconds (%.0f groups/sec)" #~ msgstr "Сачувах %d групе у „%s“ за %.1f секунде (%.0f групе/сек.)" #~ msgid "" #~ "Pan skipped %d corrupt headers from the local cache for group \"%*.*s\"." #~ msgstr "" #~ "Пан је прескочио %d оштећена заглавља из локалне оставе за групу „%*.*s“." #~ msgid "You may want to empty this group and download fresh headers." #~ msgstr "Можда желите да испразните ову групу и преузмете свежа заглавља." #~ msgid "Unable to save headers for group \"%*.*s\" - is the disk full?" #~ msgstr "Не могу да сачувам заглавља за групу „%*.*s“ — да ли је диск пун?" #~ msgid "ERROR: Must have one author in From: line" #~ msgstr "ГРЕШКА: Мора да постоји аутор у реду „Шаље:“" #~ msgid "Exported %d groups (%d subscribed) to \"%s\"" #~ msgstr "Извезох %d групе (%d које пратите) у „%s“" #~ msgid "" #~ "Pan %s Translations\n" #~ "%s\n" #~ "\n" #~ "Pan %s Code or Patches\n" #~ "%s\n" #~ "\n" #~ "Pan %s Suggestions and Testing\n" #~ "%s\n" #~ msgstr "" #~ "Локализација издања %s\n" #~ "%s\n" #~ "\n" #~ "Кôд и/или закрпе издања %s\n" #~ "%s\n" #~ "\n" #~ "Предлози и тестирање издања %s\n" #~ "%s\n" #~ msgid "Pan: Download Headers for group `%s'" #~ msgstr "Пан: Преузимам заглавља за групу „%s“" #~ msgid "How should you appear when posting articles?" #~ msgstr "Како желите да будете пријављени када шаљете чланке?" #~ msgid "Short name for Pan to show, e.g. \"mynewsserver\"" #~ msgstr "Кратак назив који ће Пан приказивати, нпр. „мојсервер“" #~ msgid "Short _name for Pan to show:" #~ msgstr "Кратак _назив за приказивање:" #~ msgid "" #~ "Thank you for trying Pan!\n" #~ " \n" #~ "If you are new to Usenet,\n" #~ "%s\n" #~ "is a starting point to see what Usenet is,\n" #~ "where to find a free news server,\n" #~ "and how to use Pan.\n" #~ " \n" #~ "Since this is your first time running Pan,\n" #~ "we'll need to gather some information.\n" #~ msgstr "" #~ "Хвала вам што испробавате Пана!\n" #~ "\n" #~ "Ако по први пут користите Јузнет,\n" #~ "%s је\n" #~ "право место за упознавање са Јузнетом,\n" #~ "за проналажење бесплатних сервера вести,\n" #~ "и за учење рада са Паном.\n" #~ "\n" #~ "Како је ово први пут да сте покренули Пана,\n" #~ "треба да унесете неке податке.\n" #~ msgid "" #~ "You have successfully entered all of\n" #~ "the information required to set up Pan.\n" #~ "\n" #~ "To save these settings, click Save." #~ msgstr "" #~ "Успешно сте унели све податке\n" #~ "потребне за подешавање Пана.\n" #~ "\n" #~ "Да сачувате ова подешавања, притисните „Сачувај“." #~ msgid " (No conditions -- no articles will match)" #~ msgstr " (Без услова —> неће одговарати ниједна порука)" #~ msgid " (No conditions -- all articles will match)" #~ msgstr " (Без услова —> све поруке ће одговарати)" #~ msgid "Any Of" #~ msgstr "Било који услов" #~ msgid "Article has at _least N lines:" #~ msgstr "Порука има најмање Н _линија:" #~ msgid "" #~ "This filter is still used by the following rules:\n" #~ "%s\n" #~ "Please remove this dependency first." #~ msgstr "" #~ "Овај пропусник се још увек користи правилом:\n" #~ "%s\n" #~ "Прво уклоните ову зависност." #~ msgid "ALL OF:" #~ msgstr "СВАКА:" #~ msgid "ANY OF:" #~ msgstr "НЕКА:" #~ msgid "Article has complete or incomplete attachments" #~ msgstr "Порука садржи потпуне или непотпуне прилоге" #~ msgid "Article is %d or more bytes long" #~ msgstr "Порука је величине %d или више бајта" #~ msgid "Article is crossposted to at least %d groups" #~ msgstr "Порука је објављена барем на %d групе" #~ msgid "Article was posted in the last %d days" #~ msgstr "Порука је објављена у последња %d дана" #~ msgid "Article is %d or more lines long" #~ msgstr "Порука је дужине %d или више реда" #~ msgid "Article is unread or old" #~ msgstr "Порука је непрочитана или стара" #~ msgid "Xref" #~ msgstr "Хупута" #~ msgid "Score filter will match anything" #~ msgstr "Пропуснику бодовања ће одговарати било шта" #~ msgid "Score filter will match nothing" #~ msgstr "Пропуснику бодовања неће одговарати ништа" #~ msgid "" #~ "Loaded %d score entries in %d sections in %.1f seconds (%.0f entries/sec)" #~ msgstr "" #~ "Учитах %d уноса бодовања у %d одељка за %.1f секунде (%.0f уноса/сек.)" #~ msgid "Scored %d entries in %.1f seconds (%.0f articles/sec)" #~ msgstr "Бодовао сам %d поруке за %.1f секунде (%.0f поруке/сек.)" #~ msgid "Scorefile entry removed -- old scorefile \"%s\" backed up as \"%s\"" #~ msgstr "" #~ "Ставка датотеке бодовање је уклоњена —— од старе датотеке бодовања „%s“ " #~ "направљена је резерва као „%s“" #~ msgid "" #~ "We don't have a list of groups for \"%*.*s\".\n" #~ "Shall we download one?" #~ msgstr "" #~ "Немамо списак група на серверу „%*.*s“.\n" #~ "Да ли да преузмем један?" #~ msgid "" #~ "Type in a group search string and press ENTER. Wildcards are allowed." #~ msgstr "" #~ "Укуцајте у претрагу групе и притисните УНЕСИ. Дозвољена је употерба " #~ "џокерских знакова." #~ msgid "/_File/_Manual Decode..." #~ msgstr "/_Датотека/_Ручно декодирање..." #~ msgid "/_File/_Cancel Last Task" #~ msgstr "/_Датотека/_Откажи последњи задатак" #~ msgid "/Filte_r/Match Only _Cached Articles" #~ msgstr "/_Пропусник/Прикажи само поруке у _остави" #~ msgid "/Filte_r/Match Only _Text Articles" #~ msgstr "/_Пропусник/Прикажи само _текстуалне поруке" #~ msgid "/Filte_r/Match Only _Binary Attachment Articles" #~ msgstr "/_Пропусник/Прикажи само поруке са _бинарним прилозима" #~ msgid "/Filte_r/Match Only _My Articles" #~ msgstr "/_Пропусник/Прикажи само _моје поруке" #~ msgid "/Filte_r/Match _Unread Articles" #~ msgstr "/_Пропусник/Прикажи _непрочитане поруке" #~ msgid "/_Go/---" #~ msgstr "/_Иди/---" #~ msgid "/_Servers/Get List of _All Groups" #~ msgstr "/_Сервери/Добави списак _свих група" #~ msgid "/_Servers/Get List of _New Groups" #~ msgstr "/_Сервери/Добави списак _нових група" #~ msgid "/_Newsgroups/Mark Group _Read" #~ msgstr "/_Причаонице/Означи групу _прочитаном" #~ msgid "/_Newsgroups/_Delete Group's Articles" #~ msgstr "/_Причаонице/_Обриши поруке групе" #~ msgid "/_Newsgroups/Get New _Headers" #~ msgstr "/_Причаонице/Добави нова _заглавља" #~ msgid "/_Newsgroups/Get New Headers and _Bodies" #~ msgstr "/_Причаонице/Добави нова заглавља и _разраде" #~ msgid "/_Newsgroups/More Download _Options..." #~ msgstr "/_Причаонице/Још _опција преузимања..." #~ msgid "/_Newsgroups/Refresh Article _Counts" #~ msgstr "/_Причаонице/Освежи _број чланака" #~ msgid "/_Newsgroups/Get New Headers in Subscribed _Groups" #~ msgstr "/_Причаонице/Добави нова заглавља у праћеним _групама" #~ msgid "/_Articles/Mark _Read" #~ msgstr "/_Поруке/Обележи _прочитаном" #~ msgid "/_Articles/D_ownload Flagged" #~ msgstr "/_Поруке/Преузми _обележене за преузимање" #~ msgid "/_Articles/U_nflag" #~ msgstr "/_Поруке/Уклони _ознаку" #~ msgid "/_Articles/_Watch Thread" #~ msgstr "/_Поруке/Прати _расправу" #~ msgid "/_Articles/_Ignore Thread" #~ msgstr "/_Поруке/_Занемари расправе" #~ msgid "/_Articles/_View Article's Scores" #~ msgstr "/_Поруке/Прегледај _бодовања поруке" #~ msgid "/_Articles/Supersed_e..." #~ msgstr "/_Поруке/_Смени поруку..." #~ msgid "/_Post/_Post to Newsgroup..." #~ msgstr "/_Објава/_Објави у причаоници..." #~ msgid "/_Post/_Reply by Email..." #~ msgstr "/_Објава/Одговори _ел. поштом..." #~ msgid "/_Post/For_ward by Email..." #~ msgstr "/_Објава/Пре_усмери ел. поштом..." #~ msgid "/_Post/---" #~ msgstr "/_Објава/---" #~ msgid "" #~ "Your real name contained double quotes.\n" #~ "Converting into single quotes." #~ msgstr "" #~ "Ваше име и презиме садржи двоструке знаке навода.\n" #~ "Претварам их у једноструке." #~ msgid "Post anyway, despite these problems?" #~ msgstr "Да ипак објавим, упркос овим проблемима?" #~ msgid "Post anyway, despite this problem?" #~ msgstr "Да ипак објавим, упркос овом проблему?" #~ msgid "Mime (single-part posts only)" #~ msgstr "Миме (само појединачне поруке)" #~ msgid " (%lu lines in 1 article)" #~ msgstr " (%lu реда у једној поруци)" #~ msgid "yEnc (30 percent smaller than UUEnc but less universal)" #~ msgstr "„yEnc“ (30 процената је мањи од „UUEnc“ али мање универзалан)" #~ msgid "\"Followup-To: poster\": sending email to author." #~ msgstr "„Прати: објављивач“: шаљем поруку аутору ел. поштом." #~ msgid "\"Followup-To:\" contains an email address: sending email to author." #~ msgstr "„Прати:“ садржи адресу ел. поште: шаљем ел. пошту аутору." #~ msgid "" #~ "ERROR: line %d, column %d uses a character not specified in charset " #~ "\"%s\" -- possibly change your charset in \"More Headers\" to \"%s\" " #~ "instead?" #~ msgstr "" #~ "ГРЕШКА: %d. ред, %d. стубац садржи знак који није наведен у скупу знакова " #~ "„%s“. Да ли желите да промените скуп знакова у „Више заглавља“ на „%s“?" #~ msgid "" #~ " --debug Turns on the most commonly-used options for a bug " #~ "report" #~ msgstr "" #~ " --debug Укључује најчешће коришћене опције за извештај о " #~ "грешкама" #~ msgid "" #~ " --mute Debugging tool to send new posts to console, not the " #~ "server" #~ msgstr "" #~ " --mute Алат за проналажење грешака који шаље поруке у " #~ "конзолу, уместо на сервер" #~ msgid " --debug-cache Print debugging messages for the article cache" #~ msgstr " --debug-cache Исписује поруке прочишћавања за оставу порука" #~ msgid "" #~ " --debug-sockets Print debugging messages when talking to the news " #~ "server" #~ msgstr "" #~ " --debug-sockets Исписује поруке прочишћавања при комуникацији са " #~ "сервером дискусионих група" #~ msgid "" #~ " --debug-queue Print debugging messages related to managing tasks" #~ msgstr "" #~ " --debug-queue Исписује поруке прочишћавања у вези са дневником " #~ "задатака" #~ msgid "" #~ " --debug-decode Print debugging messages related to decoding " #~ "attachments" #~ msgstr "" #~ " --debug-decode Исписује поруке прочишћавања у вези са декодирањем " #~ "прилога" #~ msgid " --debug-newsrc Print debugging messages related to .newsrc files" #~ msgstr "" #~ " --debug-newsrc Исписује поруке прочишћавања у вези са „.newsrc“ " #~ "датотекама" #~ msgid "" #~ " --debug-gnksa Print debugging messages related to gnksa correctness" #~ msgstr "" #~ " --debug-gnksa Исписује поруке прочишћавања у вези са „gnksa“ " #~ "исправкама" #~ msgid "" #~ " --debug-trace Print debugging messages when entering/leaving " #~ "functions" #~ msgstr "" #~ " --debug-trace Исписује поруке прочишћавања при покретању/завршавању " #~ "функција" #~ msgid "" #~ " --debug-lock Print debugging messages related to threaded gui locks" #~ msgstr "" #~ " --debug-lock Исписује поруке прочишћавања у вези са низовима " #~ "закључавања графичког сучеља" #~ msgid "" #~ " --debug-object Print debugging messages related to refcounted objects" #~ msgstr "" #~ " --debug-object Исписује поруке прочишћавања у вези са пребројавањем " #~ "објеката" #~ msgid "pan.sent" #~ msgstr "pan.sent" #~ msgid "Spellchecking disabled: gtkspell_init() failed with status %d" #~ msgstr "" #~ "Правописна провера је искључена: функција „gtkspell_init()“ није успела " #~ "са стањем %d" #~ msgid "" #~ "Some tasks were still queued the last time Pan exited. Do you want to " #~ "resume those tasks?" #~ msgstr "" #~ "Неки задаци су остали недовршени при последњем напуштању Пана. Да ли " #~ "желите ли да их покренете?" #~ msgid "" #~ "%a - abbreviated weekday name\n" #~ "%A - full weekday name\n" #~ "%b - abbreviated month name\n" #~ "%B - full month name\n" #~ "%c - local date & time\n" #~ "%d - day of the month\n" #~ "%H - hour (24-hour clock)\n" #~ "%I - hour (12-hour clock)\n" #~ "%j - day of the year (001-366)\n" #~ "%m - month (01-12)\n" #~ "%M - minute (00-59)\n" #~ "%p - local equivalent of AM/PM\n" #~ "%S - second (00-61)\n" #~ "%x - local date\n" #~ "%X - local time\n" #~ "%y - two-digit year\n" #~ "%Y - four-digit year\n" #~ "%% - %" #~ msgstr "" #~ "%a — скраћени назив дана у седмици\n" #~ "%A — пун назив дана у седмици\n" #~ "%b — скраћени назив месеца\n" #~ "%B — пун назив месеца\n" #~ "%c — локално време и датум\n" #~ "%d — дан у месецу\n" #~ "%H — сати (24-часовни запис)\n" #~ "%I — сати (12-часовни запис)\n" #~ "%j — дан у години (001-366)\n" #~ "%m — месец (01-12)\n" #~ "%M — минут (00-59)\n" #~ "%p — локални еквивалент за ПрП/ПоП\n" #~ "%S — секунде (00-59)\n" #~ "%x — локални датум\n" #~ "%X — локално време\n" #~ "%y — двоцифрена година (ГГ)\n" #~ "%Y — четвороцифрена година (ГГГГ)\n" #~ "%% — %" #~ msgid "Articles with a Score of 9999 or higher:" #~ msgstr "Поруке које имају 9999 и више бодова:" #~ msgid "Articles with a Score between 5000 and 9998:" #~ msgstr "Поруке које имају од 5000 до 9998 бодова:" #~ msgid "Articles with a Score of -9999 or lower:" #~ msgstr "Поруке које имају -9999 и мање бодова:" #~ msgid "When a Followup subject header changes, show as _new thread" #~ msgstr "Направи _нову расправу када се промени назив праћене теме" #~ msgid "Show complete _multipart posts as a single article" #~ msgstr "Прикажи завршене _вишеделне поруке као једну целину" #~ msgid "Download new headers from s_ubscribed groups when starting Pan" #~ msgstr "Преузми нова заглавља из пра_ћених група при покретању Пана" #~ msgid "" #~ "Download new headers and bod_ies from subscribed groups when starting Pan" #~ msgstr "" #~ "Преузми нова заглавља и _разраде из праћених група при покретању Пана" #~ msgid "" #~ "Scorefile _Editor:\n" #~ "(%t is filename, %n is line number)" #~ msgstr "" #~ "Уређивач датотеке _бодовања:\n" #~ "(%t је назив датотеке, %n је број реда)" #~ msgid "" #~ "%s\n" #~ "\n" #~ "Matches: %u\n" #~ "Group: %s\n" #~ "Rule: %s" #~ msgstr "" #~ "%s\n" #~ "\n" #~ "Пронађено: %u\n" #~ "Група: %s\n" #~ "Правило: %s" #~ msgid "_Watch thread (highlights the thread)" #~ msgstr "_Прати расправу (истакни расправе)" #~ msgid "Rule applies to all newsgroups" #~ msgstr "Правило важи за све причаонице" #~ msgid "(e.g., *anime*)" #~ msgstr "(нпр. *anime*)" #~ msgid "" #~ "If enabled, this rule will be applied to headers when they are downloaded." #~ msgstr "" #~ "Ако је укључено, ово правило ће се применити на заглавља при самом " #~ "преузимању." #~ msgid "" #~ "Can't find filter \"%s\" needed by rule \"%s\", so no articles match." #~ msgstr "" #~ "Не могу да пронађем пропусник „%s“ потребан правилу „%s“, тако да нема " #~ "резултата." #~ msgid "Disconnecting one connection from `%s' after %d seconds idle" #~ msgstr "Прекидам везу са „%s“ након %d секунде мировања" #~ msgid "Updating article counts for %u groups from server \"%s\"" #~ msgstr "Освежавам број порука за %u групе са сервера „%s“" #~ msgid "Updated counts for %u groups out of %u" #~ msgstr "Освежен је број порука за %u групе од %u" #~ msgid "[This is an email copy of a Usenet post to \"%s\"]" #~ msgstr "[Ово је умножак поруке вашег објављивања на „%s“]" #~ msgid "Save Article can't access path \"%s\"" #~ msgstr "Не могу да приступим путањи „%s“ за чување поруке" #~ msgid "" #~ "Pan %s\n" #~ "Copyright (c) %d by Charles Kerr\n" #~ "\n" #~ "If you find a bug, please report it.\n" #~ "\n" #~ msgstr "" #~ "Пан %s\n" #~ "Ауторска права (c) %d Чарлс Кер\n" #~ "\n" #~ "Ако наиђете на грешку, обавестите нас о томе.\n" #~ "\n" #~ msgid "" #~ "http://pan.rebelbase.com/ - Pan Homepage\n" #~ "http://pan.rebelbase.com/bugs/ - Report a Bug\n" #~ "http://pan.rebelbase.com/download/ - Upgrade\n" #~ "\n" #~ msgstr "" #~ "http://pan.rebelbase.com/ — Матична страница Пана\n" #~ "http://pan.rebelbase.com/bugs/ — Пријава грешака\n" #~ "http://pan.rebelbase.com/download/ — Надоградња\n" #~ "\n" pan-0.162/po/sr@latin.po000066400000000000000000003715441475412772400150650ustar00rootroot00000000000000# Serbian translation of pan # Courtesy of Prevod.org team (http://prevod.org/) -- 2003—2018. # This file is distributed under the same license as the pan package. # Translators: # Aleksandar Urošević , 2003—2004 # Miroslav Nikolić , 2012—2018. msgid "" msgstr "" "Project-Id-Version: pan\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/pan/issues\n" "POT-Creation-Date: 2017-12-19 21:34+0000\n" "PO-Revision-Date: 2018-02-24 09:50+0200\n" "Last-Translator: Miroslav Nikolić \n" "Language-Team: srpski \n" "Language: sr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=4; plural=n==1? 3 : n%10==1 && n%100!=11 ? 0 : " "n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" "X-Project-Style: gnome\n" #: pan.appdata.xml.in:5 msgid "Pan Newsreader" msgstr "Čitač vesti Pan" #: pan.appdata.xml.in:6 pan.desktop.in:5 msgid "Read and post Usenet articles" msgstr "Čitajte i objavljujte članke na Juznetu" #: pan.appdata.xml.in:8 msgid "" "Pan is a Usenet newsreader that is good at both text and binaries. It " "supports offline reading, scoring and killfiles, yEnc, NZB, PGP handling, " "multiple servers, and secure connections." msgstr "" "Pan je Juznetov čitač vesti koji je dobar kako sa tekstom tako i sa " "izvršnima. Podržava čitanje van mreže, bodovanje i ubijanje datoteka, uEnc, " "NZB, PGP rukovanje, više servera i bezbedne veze." #: pan.appdata.xml.in:11 msgid "" "It is also the only Unix newsreader to get a perfect score on the Good Net-" "Keeping Seal of Approval evaluations." msgstr "" "Takođe je jedini Juniksov čitač vesti koji je dobio odličnu ocenu na " "vrednovanjima pečata odobravanja dobrog održavanja mreže (GNKSA)." #. update the titlebar #: pan.appdata.xml.in:22 pan.desktop.in:3 pan/gui/dl-headers-ui.cc:106 #: pan/gui/gui.cc:1045 pan/gui/gui.cc:1718 pan/gui/gui.cc:2038 #: pan/gui/score-add-ui.cc:602 msgid "Pan" msgstr "Pan" #: pan.desktop.in:4 msgid "Newsreader" msgstr "Čitač vesti" #. Translators: Search terms to find this application. Do NOT translate or localise the semicolons! The list MUST also end with a semicolon! #: pan.desktop.in:7 msgid "usenet;news;newsreader;newsgroup;article;yenc;nzb;" msgstr "vesti;čitač;juznet;čitač vesti;grupe vesti;članak;uenc;nzb;" #. Translators: Do NOT translate or transliterate this text (this is an icon file name)! #: pan.desktop.in:11 msgid "pan" msgstr "pan" #: pan/data/article-cache.cc:144 pan/data/encode-cache.cc:62 #, c-format #| msgid "Error opening directory: \"%s\": %s" msgid "Error opening directory: “%s”: %s" msgstr "Greška otvaranja direktorijuma „%s“: %s" #: pan/data/article-cache.cc:235 pan/data/article-cache.cc:244 #: pan/data-impl/data-io.cc:199 pan/data-impl/data-io.cc:231 #: pan/gui/post-ui.cc:1851 #, c-format #| msgid "Unable to save \"%s\" %s" msgid "Unable to save “%s” %s" msgstr "Ne mogu da sačuvam „%s“ %s" #: pan/data/article-cache.cc:362 #, c-format #| msgid "Error opening file \"%s\" %s" msgid "Error opening file “%s” %s" msgstr "Greška otvaranja datoteke „%s“ %s" #: pan/data/article-cache.cc:393 pan/data-impl/profiles.cc:174 #: pan/data-impl/server.cc:527 pan/general/file-util.cc:311 #: pan/gui/post-ui.cc:644 pan/gui/task-pane.cc:737 #, c-format #| msgid "Error reading file \"%s\": %s" msgid "Error reading file “%s”: %s" msgstr "Greška čitanja datoteke „%s“: %s" #: pan/data/cert-store.cc:263 #, c-format #| msgid "Error opening SSL certificate directory: \"%s\": %s" msgid "Error opening SSL certificate directory: “%s”: %s" msgstr "Greška otvaranja direktorijuma SSL uverenja: „%s“: %s" #: pan/data/cert-store.cc:294 #, c-format msgid "Successfully added %d SSL PEM certificate(s) to Certificate Store." msgstr "Uspešno sam dodao %d SSL PEM uverenje u skladište uverenja." #: pan/data/cert-store.cc:314 msgid "" "Error initializing Certificate Store. Check that the permissions for the " "folders ~/.pan2 and ~/.pan2/ssl_certs are set correctly. Fatal, exiting." msgstr "" "Greška pokretanja skladišta uverenja. Proverite da li su ispravno podešena " "ovlašćenja za fascikle „~/.pan2“ i „~/.pan2/ssl_certs“. Kobno, izlazim." #: pan/data/cert-store.cc:363 #, c-format msgid "Could not export certificate for server: %s" msgstr "Ne mogu da izvezem uverenje za server: %s" # bug: plural-forms #. load_group_descriptions (*_data_io); #: pan/data-impl/data-impl.cc:120 #, c-format msgid "Loaded data backend in %.1f seconds" msgstr "Učitan je pozadinac podataka za %.1f sekunde" #: pan/data-impl/data-impl.cc:151 pan/data-impl/data-impl.cc:198 #| msgid "Pan Newsreader's server passwords" msgid "Pan Newsreader’s server passwords" msgstr "Lozinke servera Pana čitača vesti" #: pan/data-impl/groups.cc:102 #, c-format #| msgid "Skipping newsrc file for server \"%s\"" msgid "Skipping newsrc file for server “%s”" msgstr "Preskačem datoteku „newsrc“ za server „%s“" #: pan/data-impl/headers.cc:606 #, c-format #| msgid "Expired %lu old articles from \"%s\"" msgid "Expired %lu old articles from “%s”" msgstr "Istekla %lu stara članka sa „%s“" #: pan/data-impl/headers.cc:613 #, c-format msgid "" "Unsupported data version for %s headers: %d.\n" "Are you running an old version of Pan by accident?" msgstr "" "Nepodržano izdanje podataka za %s zaglavlja: %d.\n" "Da li možda greškom koristite staro izdanje PAN-a?" #: pan/data-impl/headers.cc:628 #, c-format #| msgid "Loaded %lu articles for \"%s\" in %.1f seconds (%.0f per second)" msgid "Loaded %lu articles for “%s” in %.1f seconds (%.0f per second)" msgstr "" "Učitah %lu poruke za grupu „%s“ za %.1f sekunde (%.0f poruka po sekundi)" #: pan/data-impl/headers.cc:857 #, c-format #| msgid "" #| "Saved %lu parts, %lu articles in \"%s\" in %.1f seconds (%.0f articles/" #| "sec)" msgid "" "Saved %lu parts, %lu articles in “%s” in %.1f seconds (%.0f articles/sec)" msgstr "" "Sačuvah %lu dela, %lu članka u „%s“ za %.1f sekunde (%.0f članka po sekundi)" #: pan/data-impl/headers.cc:1190 #, c-format msgid "Added %lu articles to %s." msgstr "Dodah %lu članka u %s." #: pan/data-impl/server.cc:262 #, c-format msgid "Received no password from libsecret for server %s." msgstr "Nisam primio lozinku sa „libsecret“-a za server „%s“." #: pan/data-impl/server.cc:287 #, c-format msgid "There seems to be no password set for server %s." msgstr "Izgleda da lozinka nije podešena za server „%s“." #: pan/data-impl/server.cc:291 msgid "GNOME Keyring denied access to the passwords." msgstr "Gnomov privezak ključeva odija pristup lozinkama." #: pan/data-impl/xover.cc:243 #, c-format #| msgid "Error reading from %s: unknown group \"%s\"" msgid "Error reading from %s: unknown group “%s”" msgstr "Greška čitanja iz „%s“: nepoznata grupa „%s“" #. build the locale strings #: pan/general/e-util.cc:211 #| msgid "%l:%M %p" msgid "%l∶%M %p" msgstr "%l:%M" #: pan/general/e-util.cc:212 #| msgid "Today %l:%M %p" msgid "Today %l∶%M %p" msgstr "Danas u %l:%M" #: pan/general/e-util.cc:213 #| msgid "%a %l:%M %p" msgid "%a %l∶%M %p" msgstr "%a, u %l:%M" #: pan/general/e-util.cc:214 #| msgid "%b %d %l:%M %p" msgid "%b %d %l∶%M %p" msgstr "%d. %B u %l:%M" #: pan/general/e-util.cc:215 msgid "%b %d %Y" msgstr "%d. %b. %Y." #: pan/general/e-util.cc:240 msgid "?" msgstr "?" #: pan/general/text-match.cc:193 #, c-format #| msgid "Can't use regular expression \"%s\": %s" msgid "Can’t use regular expression “%s”: %s" msgstr "Ne mogu da koristim regularni izraz „%s“: %s" #: pan/general/utf8-utils.cc:234 #| msgid "" #| "Couldn't determine article encoding. Non-UTF8 characters were removed." msgid "Couldn’t determine article encoding. Non-UTF8 characters were removed." msgstr "Ne mogu da odredim kodiranje članka. Uklonjeni su znaci koji nisu UTF-8." #: pan/gui/actions.cc:306 pan/gui/post-ui.cc:452 msgid "_File" msgstr "_Datoteka" #: pan/gui/actions.cc:307 pan/gui/post-ui.cc:453 msgid "_Edit" msgstr "_Uredi" #: pan/gui/actions.cc:308 pan/gui/prefs-ui.cc:1107 msgid "_Layout" msgstr "Ra_spored" #: pan/gui/actions.cc:309 msgid "_Group Pane" msgstr "Površ _grupe" #: pan/gui/actions.cc:310 msgid "_Header Pane" msgstr "Površ _zaglavlja" #: pan/gui/actions.cc:311 msgid "_Body Pane" msgstr "Površ _razrade" #: pan/gui/actions.cc:312 msgid "_View" msgstr "_Pregled" #: pan/gui/actions.cc:313 msgid "Filte_r" msgstr "Filte_r" #: pan/gui/actions.cc:314 msgid "_Go" msgstr "_Idi" #: pan/gui/actions.cc:315 pan/gui/prefs-ui.cc:1157 msgid "_Actions" msgstr "Ra_dnje" #: pan/gui/actions.cc:316 msgid "_Articles" msgstr "_Članci" #: pan/gui/actions.cc:317 msgid "G_roups" msgstr "_Grupe" #: pan/gui/actions.cc:318 pan/gui/actions.cc:319 msgid "_Post" msgstr "_Objavi" #: pan/gui/actions.cc:320 msgid "_Help" msgstr "Po_moć" #: pan/gui/actions.cc:323 msgid "_Read Group" msgstr "_Čitaj grupu" #: pan/gui/actions.cc:324 msgid "Read Group" msgstr "Čitajte grupu" #: pan/gui/actions.cc:328 msgid "_Mark Selected Groups Read" msgstr "Označi izabrane grupe _pročitanim" #: pan/gui/actions.cc:329 msgid "Mark Selected Groups Read" msgstr "Označite izabrane grupe pročitanim" #: pan/gui/actions.cc:333 #| msgid "_Delete Selected Groups' Articles" msgid "_Delete Selected Groups’ Articles" msgstr "Obriši članke izabranih _grupa" #: pan/gui/actions.cc:334 #| msgid "Delete Selected Groups' Articles" msgid "Delete Selected Groups’ Articles" msgstr "Obrišite članke izabranih grupa" #: pan/gui/actions.cc:338 msgid "Get New _Headers in Selected Groups" msgstr "Dobavi nova _zaglavlja u izabranim grupama" #: pan/gui/actions.cc:339 msgid "Get New Headers in Selected Groups" msgstr "Dobavite nova zaglavlja u izabranim grupama" #: pan/gui/actions.cc:343 pan/gui/actions.cc:348 msgid "Get New _Headers in Subscribed Groups" msgstr "Dobavi nova _zaglavlja u praćenim grupama" #: pan/gui/actions.cc:344 pan/gui/actions.cc:349 msgid "Get New Headers in Subscribed Groups" msgstr "Dobavite nova zaglavlja u praćenim grupama" #: pan/gui/actions.cc:353 #| msgid "Get _Headers..." msgid "Get _Headers…" msgstr "Dobavi _zaglavlja…" #: pan/gui/actions.cc:354 #| msgid "Get Headers..." msgid "Get Headers…" msgstr "Dobavite zaglavlja…" #: pan/gui/actions.cc:358 pan/gui/actions.cc:359 msgid "Refresh Group List" msgstr "Osveži spisak grupa" #: pan/gui/actions.cc:363 msgid "_Subscribe" msgstr "_Prati" #: pan/gui/actions.cc:364 msgid "Subscribe" msgstr "Pratite grupu" #: pan/gui/actions.cc:368 msgid "_Unsubscribe" msgstr "_Prekini praćenje" #: pan/gui/actions.cc:369 msgid "Unsubscribe" msgstr "Prekinite praćenje grupe" #: pan/gui/actions.cc:373 #| msgid "Save Articles" msgid "_Save Articles…" msgstr "_Sačuvajte članke…" #: pan/gui/actions.cc:374 #| msgid "Save Articles" msgid "Save Articles…" msgstr "Sačuvajte članke…" #: pan/gui/actions.cc:378 #| msgid "Save Articles from Selected NZB" msgid "Save Articles from Selected _NZB…" msgstr "Sačuvajte članke iz izabranih _NZB-a…" #: pan/gui/actions.cc:379 msgid "Save Articles from Selected NZB" msgstr "Sačuvajte članke iz izabranih NZB-a" #: pan/gui/actions.cc:383 #| msgid "Save Articles to an NZB File" msgid "Save Articles to an NZB _File…" msgstr "Sačuvajte članke u NZB _datoteku…" #: pan/gui/actions.cc:384 msgid "Save Articles to an NZB File" msgstr "Sačuvajte članke u NZB datoteku" #: pan/gui/actions.cc:388 pan/gui/actions.cc:389 msgid "Print" msgstr "Štampaj" #: pan/gui/actions.cc:393 #| msgid "Import NZB Files" msgid "_Import NZB Files…" msgstr "_Uvezite NZB datoteke…" #: pan/gui/actions.cc:398 msgid "_Cancel Last Task" msgstr "_Otkaži poslednji zadatak" #: pan/gui/actions.cc:403 msgid "_Task Manager" msgstr "_Upravnik zadataka" #: pan/gui/actions.cc:408 msgid "_Event Log" msgstr "_Dnevnik događaja" #: pan/gui/actions.cc:413 msgid "_Quit" msgstr "_Izađi" #: pan/gui/actions.cc:418 msgid "Select _All Articles" msgstr "Izaberi _sve članke" #: pan/gui/actions.cc:423 msgid "_Deselect All Articles" msgstr "_Poništi izbor svih članaka" #: pan/gui/actions.cc:428 msgid "Add Su_bthreads to Selection" msgstr "Dodaj po_drasprave u izbor" #: pan/gui/actions.cc:433 msgid "Add _Threads to Selection" msgstr "Dodaj _rasprave u izbor" #: pan/gui/actions.cc:438 msgid "Add _Similar Articles to Selection" msgstr "Dodaj _slične članke u izbor" #: pan/gui/actions.cc:443 msgid "Select Article _Body" msgstr "Izaberi razradu _članka" #: pan/gui/actions.cc:448 msgid "Edit _Preferences" msgstr "Uredi _postavke" #: pan/gui/actions.cc:453 #| msgid "Edit Selected _Group's Preferences" msgid "Edit Selected _Group’s Preferences" msgstr "Uredi postavke izabranih _grupa" #: pan/gui/actions.cc:458 pan/gui/post-ui.cc:469 msgid "Edit P_osting Profiles" msgstr "Uredi profile _objavljivanja" # table header #: pan/gui/actions.cc:463 msgid "Edit _News Servers" msgstr "Uredi _servere vesti" #: pan/gui/actions.cc:468 msgid "Jump to _Group Tab" msgstr "Idi na jezičak _grupe" #: pan/gui/actions.cc:473 msgid "Jump to _Header Tab" msgstr "Idi na jezičak _zaglavlja" #: pan/gui/actions.cc:478 msgid "Jump to _Body Tab" msgstr "Idi na jezičak _razrade" #: pan/gui/actions.cc:483 msgid "_Rot13 Selected Text" msgstr "Primeni _ROT13 na izabranom tekstu" #: pan/gui/actions.cc:488 msgid "Clear _Header Pane" msgstr "Očisti površ _zaglavlja" #: pan/gui/actions.cc:493 msgid "Clear _Body Pane" msgstr "Očisti površ _razrade" #: pan/gui/actions.cc:498 msgid "Cache Article" msgstr "Pričuvajte članak" #: pan/gui/actions.cc:503 msgid "Read Article" msgstr "Pročitajte članak" #: pan/gui/actions.cc:508 msgid "Show Article Information" msgstr "Prikaži podatke o članku" #: pan/gui/actions.cc:513 msgid "Read _More" msgstr "Čitaj _sledeće" #: pan/gui/actions.cc:514 msgid "Read More" msgstr "Pročitajte sledeće" #: pan/gui/actions.cc:518 msgid "Read _Back" msgstr "Čitaj _prethodno" #: pan/gui/actions.cc:519 msgid "Read Back" msgstr "Pročitajte prethodno" #: pan/gui/actions.cc:523 msgid "Next _Unread Group" msgstr "Sledeća _nepročitana grupa" #: pan/gui/actions.cc:528 msgid "Next _Group" msgstr "Nova _grupa" #: pan/gui/actions.cc:533 msgid "Next _Unread Article" msgstr "Sledeći _nepročitani članak" #: pan/gui/actions.cc:534 msgid "Next Unread Article" msgstr "Sledeći nepročitani članak" #: pan/gui/actions.cc:538 msgid "Next _Article" msgstr "Sledeći _članak" #: pan/gui/actions.cc:539 msgid "Next Article" msgstr "Sledeći članak" #: pan/gui/actions.cc:543 msgid "Next _Watched Article" msgstr "Sledeći _praćeni članak" #: pan/gui/actions.cc:548 msgid "Next Unread _Thread" msgstr "Sledeća nepročitana _rasprava" #: pan/gui/actions.cc:549 msgid "Next Unread Thread" msgstr "Sledeća nepročitana rasprava" #: pan/gui/actions.cc:553 msgid "Next Threa_d" msgstr "_Sledeća rasprava" #: pan/gui/actions.cc:558 msgid "Pre_vious Article" msgstr "_Prethodni članak" #: pan/gui/actions.cc:563 msgid "Previous _Thread" msgstr "_Prethodna rasprava" #: pan/gui/actions.cc:568 msgid "_Parent Article" msgstr "_Glavni članak" #: pan/gui/actions.cc:573 msgid "Ignore _Author" msgstr "Zanemari _autora" #: pan/gui/actions.cc:577 msgid "_Watch Thread" msgstr "_Prati raspravu" #: pan/gui/actions.cc:582 msgid "_Ignore Thread" msgstr "_Zanemari raspravu" #: pan/gui/actions.cc:587 pan/gui/actions.cc:588 msgid "_Toggle Flag On/Off for Thread" msgstr "_Uključi/isključi obeležje za raspravu" #: pan/gui/actions.cc:592 pan/gui/actions.cc:593 msgid "_Turn Flag Off for Thread" msgstr "_Isključi obeležje za raspravu" #: pan/gui/actions.cc:597 pan/gui/actions.cc:598 msgid "_Select All Flagged Threads" msgstr "Izaberi _sve obeležene rasprave" #: pan/gui/actions.cc:602 pan/gui/actions.cc:603 msgid "_Go to Next Flagged Thread" msgstr "Idi na _sledeću obeleženu raspravu" #: pan/gui/actions.cc:607 pan/gui/actions.cc:608 msgid "_Go to Last Flagged Thread" msgstr "Idi na _poslednju obeleženu raspravu" #: pan/gui/actions.cc:612 pan/gui/actions.cc:613 msgid "_Invert Selection" msgstr "_Preokreni izbor" #: pan/gui/actions.cc:617 #| msgid "Edit Article's Watch/Ignore/Score..." msgid "Edit Article’s Watch/Ignore/Score…" msgstr "Uredi praćenje/zanemarivanje/bodovanje članka…" #: pan/gui/actions.cc:622 #| msgid "Add a _Scoring Rule..." msgid "Add a _Scoring Rule…" msgstr "Dodaj pravilo _bodovanja…" #: pan/gui/actions.cc:627 #| msgid "Cance_l Article..." msgid "Cance_l Article…" msgstr "_Obriši članak…" #: pan/gui/actions.cc:632 #| msgid "_Supersede Article..." msgid "_Supersede Article…" msgstr "_Nadomesti članak…" #: pan/gui/actions.cc:637 msgid "_Delete Article" msgstr "_Obriši članak" #: pan/gui/actions.cc:642 msgid "Clear Article Cache" msgstr "Očisti ostavu članka" #: pan/gui/actions.cc:647 msgid "_Mark Article as Read" msgstr "Označi članak _pročitanim" #: pan/gui/actions.cc:652 msgid "Mark Article as _Unread" msgstr "Označi članak _nepročitanim" #: pan/gui/actions.cc:658 msgid "_Mark Thread as Read" msgstr "Označi raspravu _pročitanom" #: pan/gui/actions.cc:663 msgid "Mark Thread as _Unread" msgstr "Označi raspravu _nepročitanom" #: pan/gui/actions.cc:668 msgid "_Post to Newsgroup" msgstr "_Objavi u pričaonici" #: pan/gui/actions.cc:669 msgid "Post to Newsgroup" msgstr "Objavite u pričaonici" #: pan/gui/actions.cc:673 msgid "_Followup to Newsgroup" msgstr "_Isprati u pričaonici" #: pan/gui/actions.cc:674 msgid "Followup to Newsgroup" msgstr "Ispratite u pričaonici" #: pan/gui/actions.cc:678 msgid "_Reply to Author in Mail" msgstr "_Odgovori autoru poštom" #: pan/gui/actions.cc:684 msgid "_Contents" msgstr "_Sadržaj" #: pan/gui/actions.cc:690 msgid "_Pan Home Page" msgstr "_Matična stranica Pana" #: pan/gui/actions.cc:695 #| msgid "Give _Feedback or Report a Bug..." msgid "Give _Feedback or Report a Bug…" msgstr "Dajte _mišljenje ili prijavite grešku…" #: pan/gui/actions.cc:700 #| msgid "_Tip Jar..." msgid "_Tip Jar…" msgstr "_Dobrovoljan prilog…" #: pan/gui/actions.cc:705 msgid "_About" msgstr "_O programu" #: pan/gui/actions.cc:710 msgid "Edit _SSL Certificates" msgstr "Uredi _SSL uverenja" #: pan/gui/actions.cc:725 msgid "_Thread Headers" msgstr "Zaglavlja _teme" #: pan/gui/actions.cc:726 msgid "Wrap Article Body" msgstr "Prelomi redove u poruci" #: pan/gui/actions.cc:727 msgid "Show Article Signature" msgstr "Prikaži potpis članka" #: pan/gui/actions.cc:728 msgid "Mute _Quoted Text" msgstr "Odznači _citirani tekst" #: pan/gui/actions.cc:729 msgid "Show All _Headers in Body Pane" msgstr "Prikaži sva _zaglavlja u površi razrade" #: pan/gui/actions.cc:730 msgid "Show _Smilies as Graphics" msgstr "Prikaži slike _smešaka" #: pan/gui/actions.cc:731 msgid "Show *Bold*, __Underlined__, and /Italic/" msgstr "Prikaži *Podebljano*, __Podvučeno__, i /Iskošeno/" #: pan/gui/actions.cc:732 msgid "Size Pictures to _Fit" msgstr "Podesi slike da _stanu" #: pan/gui/actions.cc:733 msgid "Use _Monospace Font" msgstr "Koristi slovni lik _utvrđene širine" #: pan/gui/actions.cc:734 msgid "Set Focus to Images" msgstr "Postavi prvi plan na slike" #: pan/gui/actions.cc:735 msgid "Highlight _URLs" msgstr "Istakni _adrese" #: pan/gui/actions.cc:738 msgid "_Work Online" msgstr "_Radi na mreži" #: pan/gui/actions.cc:739 msgid "_Tabbed Layout" msgstr "Raspored _jezičcima" #: pan/gui/actions.cc:740 msgid "Show Group _Pane" msgstr "Prikaži površ _grupe" #: pan/gui/actions.cc:741 msgid "Show Hea_der Pane" msgstr "Prikaži površ _zaglavlja" #: pan/gui/actions.cc:742 msgid "Show Bod_y Pane" msgstr "Prikaži površ _razrade" #: pan/gui/actions.cc:743 msgid "Show _Toolbar" msgstr "Prikaži traku _alata" #: pan/gui/actions.cc:744 msgid "Abbreviate Group Names" msgstr "Skrati nazive grupa" #: pan/gui/actions.cc:746 msgid "Match Only _Read Articles" msgstr "Izdvoj samo _pročitane članke" #: pan/gui/actions.cc:746 msgid "Match Only Read Articles" msgstr "Izdvojte samo pročitane članke" #: pan/gui/actions.cc:747 msgid "Match Only _Unread Articles" msgstr "Izdvoj samo _nepročitane članke" #: pan/gui/actions.cc:747 msgid "Match Only Unread Articles" msgstr "Izdvojte samo nepročitane članke" #: pan/gui/actions.cc:748 msgid "Match Only _Cached Articles" msgstr "Izdvoj samo _pričuvane članke" #: pan/gui/actions.cc:748 msgid "Match Only Cached Articles" msgstr "Izdvojte samo pričuvane članke" #: pan/gui/actions.cc:749 msgid "Match Only _Complete Articles" msgstr "Izdvoj samo _završene članke" #: pan/gui/actions.cc:749 msgid "Match Only Complete Articles" msgstr "Izdvojte samo završene članke" #: pan/gui/actions.cc:750 msgid "Match Only _My Articles" msgstr "Izdvoj samo _moje članke" #: pan/gui/actions.cc:750 msgid "Match Only My Articles" msgstr "Izdvojte samo svoje članke" #: pan/gui/actions.cc:751 msgid "Match Only _Watched Articles" msgstr "Izdvoj samo _praćene članke" #: pan/gui/actions.cc:751 msgid "Match Only Watched Articles" msgstr "Izdvojte samo praćene članke" #: pan/gui/actions.cc:753 msgid "Match Scores of 9999 (_Watched)" msgstr "Izdvoj poruke sa 9999 bodova (_Praćene)" #: pan/gui/actions.cc:754 #| msgid "Match Scores of 5000...9998 (_High)" msgid "Match Scores of 5000…9998 (_High)" msgstr "Izdvoj poruke od 5000 do 9998 bodova (_Vrlo važne)" #: pan/gui/actions.cc:755 #| msgid "Match Scores of 1...4999 (Me_dium)" msgid "Match Scores of 1…4999 (Me_dium)" msgstr "Izdvoj poruke od 1 do 4999 boda (_Srednje važne)" #: pan/gui/actions.cc:756 msgid "Match Scores of 0 (_Normal)" msgstr "Izdvoj poruke sa 0 bodova (_Obične)" #: pan/gui/actions.cc:757 #| msgid "Match Scores of -9998...-1 (_Low)" msgid "Match Scores of -9998…-1 (_Low)" msgstr "Izdvoj poruke od -9999 do -1 boda (_Slabo važne)" #: pan/gui/actions.cc:758 msgid "Match Scores of -9999 (_Ignored)" msgstr "Izdvoj poruke od -9999 bodova (_Zanemarene)" #: pan/gui/actions.cc:760 msgid "Enable/Disable All _Rules" msgstr "Uključi/isključi sva _pravila" #: pan/gui/actions.cc:788 msgid "Show Matching _Articles" msgstr "Prikaži odgovarajuće _članke" #: pan/gui/actions.cc:789 #| msgid "Show Matching Articles' _Threads" msgid "Show Matching Articles’ _Threads" msgstr "Prikaži _teme članka koje ispunjavaju uslov" #: pan/gui/actions.cc:790 #| msgid "Show Matching Articles' _Subthreads" msgid "Show Matching Articles’ _Subthreads" msgstr "Prikaži _podteme članka koje ispunjavaju uslov" #: pan/gui/body-pane.cc:1056 msgid "Unnamed File" msgstr "Neimenovana datoteka" #: pan/gui/body-pane.cc:1137 pan/gui/gui.cc:2009 pan/gui/header-pane.cc:1314 #: pan/gui/header-pane.cc:1754 pan/gui/post-ui.cc:2752 pan/gui/prefs-ui.cc:855 #: pan/gui/score-add-ui.cc:139 pan/gui/task-pane.cc:797 msgid "Subject" msgstr "Tema" #: pan/gui/body-pane.cc:1139 pan/gui/gui.cc:2009 msgid "From" msgstr "Šalje" #: pan/gui/body-pane.cc:1141 pan/gui/gui.cc:2010 pan/gui/header-pane.cc:1833 #: pan/gui/log-ui.cc:307 pan/gui/prefs-ui.cc:851 msgid "Date" msgstr "Datum" #: pan/gui/body-pane.cc:1148 msgid "Newsgroups" msgstr "Pričaonice" #: pan/gui/body-pane.cc:1155 pan/gui/body-pane.cc:1163 #: pan/gui/body-pane.cc:1170 msgid "User-Agent" msgstr "Čitač" #: pan/gui/body-pane.cc:1176 msgid "Followup-To" msgstr "Isprati-do" #: pan/gui/body-pane.cc:1186 msgid "Reply-To" msgstr "Odgovori" #: pan/gui/body-pane.cc:1238 msgid " from " msgstr " šalje " #: pan/gui/body-pane.cc:1240 msgid " at " msgstr " na " #: pan/gui/body-pane.cc:1333 #, c-format #| msgid "" #| "This is a PGP-Signed message.\n" #| "\n" #| "Signer: %s ('%s')\n" #| "Valid until: %s\n" #| "Created on: %s" msgid "" "This is a PGP-Signed message.\n" "\n" "Signer: %s (“%s”)\n" "Valid until: %s\n" "Created on: %s" msgstr "" "Ovo je poruka Potpisana PGP-om.\n" "\n" "Potpisnik: %s („%s“)\n" "Važi do: %s\n" "Napravljena: %s" #: pan/gui/body-pane.cc:1338 msgid "always" msgstr "uvek" #: pan/gui/body-pane.cc:1558 msgid "Copy _URL" msgstr "Umnoži _adresu" #: pan/gui/body-pane.cc:1768 #| msgid "Save Attachment As..." msgid "Save Attachment As…" msgstr "Sačuvaj prilog kao…" #: pan/gui/body-pane.cc:1771 msgid "Save All Attachments" msgstr "Sačuvaj sve priloge" #: pan/gui/body-pane.cc:1846 #| msgid "Attachments" msgid "Attachments:" msgstr "Prilozi:" #: pan/gui/body-pane.cc:1874 msgid "Text View" msgstr "Prikaz teksta" #: pan/gui/body-pane.cc:1883 msgid "HTML View" msgstr "HTML prikaz" #: pan/gui/dl-headers-ui.cc:112 #, c-format msgid "%d Group" msgid_plural "%d Groups" msgstr[0] "%d grupa" msgstr[1] "%d grupe" msgstr[2] "%d grupa" msgstr[3] "%d grupa" #: pan/gui/dl-headers-ui.cc:135 #| msgid "Get the last N _days' headers: " msgid "Get the last N _days’ headers: " msgstr "Dobavi zaglavlja poslednja N _dana: " #: pan/gui/dl-headers-ui.cc:143 msgid "Get _new headers" msgstr "Dobavi _nova zaglavlja" #: pan/gui/dl-headers-ui.cc:147 msgid "Get _all headers" msgstr "Dobavi _sva zaglavlja" #: pan/gui/dl-headers-ui.cc:151 msgid "Get the _latest N headers: " msgstr "Dobavi _poslednja N zaglavlja: " #: pan/gui/e-action-combo-box.c:386 pan/gui/prefs-ui.cc:848 msgid "Action" msgstr "Radnja" #: pan/gui/e-action-combo-box.c:387 msgid "A GtkRadioAction" msgstr "Radnja GTK jednoizbornika" #: pan/gui/e-charset.c:51 pan/gui/task-pane.cc:558 msgid "Unknown" msgstr "Nepoznato" #: pan/gui/e-charset.c:52 msgid "Arabic" msgstr "Arapski" #: pan/gui/e-charset.c:53 msgid "Baltic" msgstr "Baltički" #: pan/gui/e-charset.c:54 msgid "Central European" msgstr "Srednjoevropski" #: pan/gui/e-charset.c:55 msgid "Chinese" msgstr "Kineski" #: pan/gui/e-charset.c:56 msgid "Cyrillic" msgstr "Ćirilični" #: pan/gui/e-charset.c:57 msgid "Greek" msgstr "Grčki" #: pan/gui/e-charset.c:58 msgid "Hebrew" msgstr "Jevrejski" #: pan/gui/e-charset.c:59 msgid "Japanese" msgstr "Japanski" #: pan/gui/e-charset.c:60 msgid "Korean" msgstr "Korejski" #: pan/gui/e-charset.c:61 msgid "Thai" msgstr "Tajlandski" #: pan/gui/e-charset.c:62 msgid "Turkish" msgstr "Turski" #: pan/gui/e-charset.c:63 msgid "Unicode" msgstr "Unikod" #: pan/gui/e-charset.c:64 msgid "Western European" msgstr "Zapadnoevropski" #: pan/gui/e-charset.c:65 msgid "Western European, New" msgstr "Zapadnoevropski, novi" #: pan/gui/e-charset.c:84 pan/gui/e-charset.c:85 pan/gui/e-charset.c:86 msgid "Traditional" msgstr "Tradicionalni" #: pan/gui/e-charset.c:87 pan/gui/e-charset.c:88 pan/gui/e-charset.c:89 #: pan/gui/e-charset.c:90 msgid "Simplified" msgstr "Pojednostavljeni" #: pan/gui/e-charset.c:93 msgid "Ukrainian" msgstr "Ukrajinski" #: pan/gui/e-charset.c:96 msgid "Visual" msgstr "Vizuelni" #: pan/gui/e-charset-combo-box.c:93 pan/gui/gui.cc:2207 pan/gui/post-ui.cc:554 #: pan/gui/prefs-ui.cc:759 msgid "Character Encoding" msgstr "Kodna strana" #: pan/gui/e-charset-combo-box.c:117 msgid "Enter the character set to use" msgstr "Izaberite kodnu stranu za korišćenje" #: pan/gui/e-charset-combo-box.c:336 #| msgid "Other..." msgid "Other…" msgstr "Drugo…" #: pan/gui/e-cte-dialog.c:76 msgid "Default Encoding" msgstr "Osnovno kodiranje" #: pan/gui/e-cte-dialog.c:78 msgid "7-Bit Encoding" msgstr "7-bitno kodiranje" #: pan/gui/e-cte-dialog.c:80 msgid "8-Bit Encoding" msgstr "8-bitno kodiranje" #: pan/gui/e-cte-dialog.c:82 msgid "Base64 Encoding" msgstr "Kodiranje u osnovi 64" #: pan/gui/e-cte-dialog.c:84 msgid "Quoted-Printable Encoding" msgstr "Kodiranje citirano-za_štampanje" #: pan/gui/group-pane.cc:330 msgid "Sent" msgstr "Poslato" #: pan/gui/group-pane.cc:331 msgid "Drafts" msgstr "Nacrti" #: pan/gui/group-pane.cc:537 msgid "Group" msgstr "Grupa" #: pan/gui/group-pane.cc:538 msgid "Group (regex)" msgstr "Grupa (regularni izraz)" #: pan/gui/group-pane.cc:1016 msgid "Local Folders" msgstr "Mesne fascikle" #: pan/gui/group-pane.cc:1017 msgid "Subscribed Groups" msgstr "Praćene grupe" #: pan/gui/group-pane.cc:1018 msgid "Other Groups" msgstr "Druge grupe" #: pan/gui/group-pane.cc:1058 pan/gui/score-view-ui.cc:157 msgid "Name" msgstr "Naziv" #: pan/gui/group-prefs-dialog.cc:162 #| msgid "No Profiles defined in Edit|Posting Profiles." msgid "No Profiles defined in Edit → Posting Profiles." msgstr "Profili nisu određeni u Uredi → Profili objavljivanja." #: pan/gui/group-prefs-dialog.cc:273 msgid "Pan: Group Preferences" msgstr "Pan: Postavke grupe" #: pan/gui/group-prefs-dialog.cc:288 msgid "Properties for Groups" msgstr "Svojstva za grupe" #: pan/gui/group-prefs-dialog.cc:290 #, c-format msgid "Properties for %s" msgstr "Svojstva za „%s“" #: pan/gui/group-prefs-dialog.cc:298 msgid "Character _encoding:" msgstr "Kodiranje _znakova:" #: pan/gui/group-prefs-dialog.cc:300 msgid "Directory for Saving Attachments" msgstr "Direktorijum za čuvanje priloga" #: pan/gui/group-prefs-dialog.cc:308 msgid "Directory for _saving attachments:" msgstr "Direktorijum za _čuvanje priloga:" #: pan/gui/group-prefs-dialog.cc:310 msgid "Posting _profile:" msgstr "Profil _objavljivanja:" #: pan/gui/group-prefs-dialog.cc:315 msgid "Spellchecker _language:" msgstr "Jezik za _proveru pisanja:" #: pan/gui/group-prefs-dialog.cc:318 msgid "Group color:" msgstr "Boja grupe:" #: pan/gui/gui.cc:312 msgid "Open the Task Manager" msgstr "Otvorite upravnika zadataka" #: pan/gui/gui.cc:335 msgid "Open the Event Log" msgstr "Otvorite dnevnik događaja" #: pan/gui/gui.cc:611 #| msgid "Save NZB's Files" msgid "Save NZB’s Files" msgstr "Sačuvajte NZB datoteke" #: pan/gui/gui.cc:638 msgid "Untitled.nzb" msgstr "Neimenovana.nzb" #: pan/gui/gui.cc:640 #| msgid "Save NZB File as..." msgid "Save NZB File as…" msgstr "Sačuvaj NZB datoteku kao…" #: pan/gui/gui.cc:813 msgid "Import NZB Files" msgstr "Uvezite NZB datoteke" #: pan/gui/gui.cc:821 pan/gui/post-ui.cc:3455 msgid "NZB Files" msgstr "NZB datoteke" #: pan/gui/gui.cc:826 msgid "All Files" msgstr "Sve datoteke" #: pan/gui/gui.cc:1344 msgid "Unable to supersede article." msgstr "Ne mogu da nadomestim članak." #: pan/gui/gui.cc:1345 pan/gui/gui.cc:1441 #| msgid "The article doesn't match any of your posting profiles." msgid "The article doesn’t match any of your posting profiles." msgstr "Članak ne odgovara nijednom od vaših profila objavljivanja." #: pan/gui/gui.cc:1410 msgid "Revise and send this article to replace the old one." msgstr "Pregledajte i pošaljite ovaj članak da zamenite stari." #: pan/gui/gui.cc:1411 pan/gui/gui.cc:1491 msgid "Be patient! It will take time for your changes to take effect." msgstr "" "Budite strpljivi! Potrebno je vreme malo vremena da bi izmene stupile u " "dejstvo." #: pan/gui/gui.cc:1440 msgid "Unable to cancel article." msgstr "Ne mogu da otkažem članak." #: pan/gui/gui.cc:1490 msgid "Send this article to ask your server to cancel your other one." msgstr "Pošaljite ovaj članak da pitate vaš server da otkaže onaj drugi." #: pan/gui/gui.cc:1508 msgid "You have marked some articles for deletion." msgstr "Označili ste neke članke za brisanje." #: pan/gui/gui.cc:1509 msgid "Are you sure you want to delete them?" msgstr "Da li sigurno želite da ih obrišete?" #: pan/gui/gui.cc:1535 msgid "Do you want to accept it permanently? (You can change this later.)" msgstr "Da li želite da ga prihvatite trajno? (Kasnije možete izmeniti ovo.)" #: pan/gui/gui.cc:1689 msgid "Unable to open help file." msgstr "Ne mogu da otvorim datoteku pomoći." #: pan/gui/gui.cc:1721 msgid "Copyright © 2002-2017 Charles Kerr and others" msgstr "Autorska prava © 2002-2017 Čarls Ker i ostali" #: pan/gui/gui.cc:1726 msgid "translator-credits" msgstr "" "Aleksandar Urošević \n" "Miroslav Nikolić \n" "\n" "http://prevod.org — prevod na srpski jezik" #: pan/gui/gui.cc:1854 msgid "_1. Group Pane" msgstr "_1. Površ grupe" #: pan/gui/gui.cc:1855 msgid "_2. Header Pane" msgstr "_2. Površ zaglavlja" #: pan/gui/gui.cc:1856 msgid "_3. Body Pane" msgstr "_3. Površ razrade" #: pan/gui/gui.cc:1946 pan/gui/gui.cc:1961 msgid " Bytes" msgstr " Bajta" #: pan/gui/gui.cc:1949 msgid " KB" msgstr " KB" #: pan/gui/gui.cc:1952 msgid " MB" msgstr " MB" #: pan/gui/gui.cc:1955 msgid " GB" msgstr " GB" #: pan/gui/gui.cc:1958 msgid " TB" msgstr " TB" #: pan/gui/gui.cc:1990 #, c-format msgid "This article is complete with %d part." msgid_plural "This article has all %d parts." msgstr[0] "Ovaj članak sadrži %d deo." msgstr[1] "Ovaj članak sadrži sva %d dela." msgstr[2] "Ovaj članak sadrži svih %d delova." msgstr[3] "Ovaj članak sadrži jedan deo." #: pan/gui/gui.cc:1992 #, c-format msgid "This article is missing %d part." msgid_plural "This article is missing %d of its %d parts:" msgstr[0] "Ovom članku nedostaje %d deo od %d dela." msgstr[1] "Ovom članku nedostaju %d od njegova %d dela:" msgstr[2] "Ovom članku nedostaju %d od njegovih %d delova:" msgstr[3] "Ovom članku nedostaje jedan deo." #: pan/gui/gui.cc:2010 pan/gui/header-pane.cc:1316 pan/gui/task-pane.cc:799 msgid "Message-ID" msgstr "IB poruke" #: pan/gui/gui.cc:2011 pan/gui/header-pane.cc:1802 pan/gui/prefs-ui.cc:852 msgid "Lines" msgstr "Redovi" #: pan/gui/gui.cc:2011 msgid "Size" msgstr "Veličina" #: pan/gui/gui.cc:2012 pan/gui/header-pane.cc:1818 pan/gui/prefs-ui.cc:850 msgid "Bytes" msgstr "Bajtova" #: pan/gui/gui.cc:2062 msgid "" "Error loading iconv library. Encoding certain character sets will not work " "in GUI." msgstr "" "Greška učitavanja biblioteke ikonv-a. Kodiranje nekih skupova znakova neće " "raditi u GKS-u." #: pan/gui/gui.cc:2208 msgid "Body Pane Encoding" msgstr "Kodiranje površi razrade" #: pan/gui/gui.cc:2239 pan/gui/task-pane.cc:609 msgid "Offline" msgstr "Van mreže" #: pan/gui/gui.cc:2243 #, c-format msgid "Closing %d connection" msgid_plural "Closing %d connections" msgstr[0] "Zatvaram %d vezu" msgstr[1] "Zatvaram %d veze" msgstr[2] "Zatvaram %d veza" msgstr[3] "Zatvaram jednu vezu" #: pan/gui/gui.cc:2245 pan/gui/gui.cc:2275 msgid "No Connections" msgstr "Nema veza" #: pan/gui/gui.cc:2249 msgid "Connecting" msgstr "Povezujem se" #: pan/gui/gui.cc:2262 #, c-format msgid "%s: %d idle, %d active @ %.1f KiBps" msgstr "%s: %d miruje, %d radi @ %.1f KiB/s" #: pan/gui/gui.cc:2318 msgid "No Tasks" msgstr "Nema zadataka" #: pan/gui/gui.cc:2320 pan/gui/prefs-ui.cc:1090 msgid "Tasks" msgstr "Zadaci" #: pan/gui/gui.cc:2337 pan/gui/task-pane.cc:475 #, c-format #| msgid "%lu tasks, %s, %.1f KiBps, ETA %d:%02d:%02d" msgid "%lu tasks, %s, %.1f KiBps, ETA %d∶%02d∶%02d" msgstr "Ukupno zadataka: %lu, %s, %.1f KiB/s, ETA %d:%02d:%02d" #: pan/gui/gui.cc:2389 #| msgid "" #| "Pan is now offline. Please see \"File|Event Log\" and correct the " #| "problem, then use \"File|Work Online\" to continue." msgid "" "Pan is now offline. Please see “File → Event Log” and correct the problem, " "then use “File → Work Online” to continue." msgstr "" "Pan je sada van mreže. Pogledajte „Datoteka → Dnevnik događaja“ i ispravite " "problem, zatim koristite „Datoteka → Radi na mreži“ da nastavite." #: pan/gui/header-pane.cc:1312 pan/gui/task-pane.cc:795 msgid "Subject or Author" msgstr "Tema ili autor" #: pan/gui/header-pane.cc:1313 pan/gui/task-pane.cc:796 msgid "Sub or Auth (regex)" msgstr "Tema ili autor (regizr)" #: pan/gui/header-pane.cc:1315 pan/gui/header-pane.cc:1786 #: pan/gui/prefs-ui.cc:849 pan/gui/score-add-ui.cc:140 pan/gui/task-pane.cc:798 msgid "Author" msgstr "Autor" #: pan/gui/header-pane.cc:1771 pan/gui/prefs-ui.cc:853 msgid "Score" msgstr "Bodovanje" #: pan/gui/log-ui.cc:104 msgid "Save Event List" msgstr "Sačuvajte spisak događaja" #: pan/gui/log-ui.cc:258 msgid "Pan: Events" msgstr "Pan: Događaji" #: pan/gui/log-ui.cc:317 msgid "Message" msgstr "Poruka" #: pan/gui/pan.cc:368 msgid "Maximize" msgstr "Uvećaj" #: pan/gui/pan.cc:421 msgid "An error has occurred!" msgstr "Došlo je do greške!" #: pan/gui/pan.cc:435 msgid "New Articles!" msgstr "Novi članak!" #: pan/gui/pan.cc:436 msgid "" "There are new\n" "articles available." msgstr "" "Dostupni su\n" "novi članci." #: pan/gui/pan.cc:503 msgid "Toggle on/offline" msgstr "Na mreži/van mreže" #: pan/gui/pan.cc:551 msgid "" "Thank you for trying Pan!\n" " \n" "To start newsreading, first Add a Server." msgstr "" "Hvala vam što koristite Pana!\n" " \n" "Da započnete čitanje vesti, prvo dodajte server." #: pan/gui/pan.cc:633 #| msgid "" #| "General Options\n" #| " -h, --help Show this usage page.\n" #| " --verbose Be verbose (in non-GUI mode).\n" #| "\n" #| "URL Options\n" #| " headers:group.name Download new headers for the specified " #| "newsgroup.\n" #| " --no-gui On news:message-id, dump the article to " #| "stdout.\n" #| "\n" #| "NZB Batch Options\n" #| " --nzb file1 file2 ... Process nzb files without launching all of " #| "Pan.\n" #| " -o path, --output=path Path to save attachments listed in the nzb " #| "files.\n" #| " --no-gui Only show console output, not the download " #| "queue.\n" msgid "" "General Options\n" " -h, --help Show this usage information and exit.\n" " -v, --version Print release version and exit.\n" " --verbose Be verbose (in non-GUI mode).\n" " --debug Run in debug mode.\n" "\n" "URL Options\n" " headers:group.name Download new headers for the specified " "newsgroup.\n" " news:message-id When specified together with --no-gui, dump\n" " the message-id article to standard output.\n" "\n" "NZB Batch Options\n" " --nzb file1 file2 … Process NZB files in non-GUI mode.\n" " -o path, --output=path Path to save attachments listed in the NZB " "file(s).\n" " --no-gui Only show console output, not the download " "queue.\n" msgstr "" "Opšte opcije\n" " -h, --help Prikazuje podatke o korišćenju i izlazi.\n" " -v, --version Ispisuje broj izdanja i izlazi.\n" " --verbose Biva opširan (u režimu bez grafičkog " "sučelja).\n" " --debug Radi u režimu pročišćavanja.\n" "\n" "Opcije adrese\n" " headers:group.name Preuzima nova zaglavlja za navedene " "pričaonice.\n" " news:message-id Kada je navedeno zajedno sa „--no-gui“, " "izbacuje\n" " član ib-a poruke na standardni izlaz.\n" "\n" "Opcije grupnih NZB-a\n" " --nzb datoteka1 datoteka2 … Obrađuje NZB datoteke u režimu bez " "grafičkog sučelja.\n" " -o putanja, --output=putanja Putanja za čuvanje priloga ispisanih u NZB " "datotekama.\n" " --no-gui Prikazuje samo izlaz konzole, a ne zakazano " "preuzimanja.\n" #: pan/gui/pan.cc:978 msgid "Error: --no-gui used without nzb files or news:message-id." msgstr "Greška: „--no-gui“ se koristi bez nzb datoteka ili „vesti:ib-poruke“." #: pan/gui/pan.cc:982 #, c-format msgid "Pan %s started" msgstr "Pan %s je pokrenut" #: pan/gui/pan.cc:1002 #| msgid "" #| "Please configure Pan's news servers before using it as an nzb client." msgid "Please configure Pan’s news servers before using it as an nzb client." msgstr "" "Podesite Panove servere vesti pre nego li ga koristite kao nzb klijenta." #: pan/gui/pan.cc:1120 msgid "Pan notification" msgstr "Panova obaveštenja" #: pan/gui/post-ui.cc:169 #, c-format msgid "Upload queue: %lu tasks, %ld KB (~ %.2f MB) total." msgstr "Red slanja: %lu zadatka, %ld KB (~ %.2f MB) ukupno." #: pan/gui/post-ui.cc:272 pan/gui/post-ui.cc:303 #, c-format msgid "Error setting custom spellchecker: %s" msgstr "Greška podešavanja proizvoljne provere pravopisa: %s" #: pan/gui/post-ui.cc:276 pan/gui/post-ui.cc:284 pan/gui/post-ui.cc:307 #: pan/gui/post-ui.cc:315 #, c-format msgid "Error setting spellchecker: %s" msgstr "Greška podešavanja provere pravopisa: %s" #: pan/gui/post-ui.cc:454 msgid "_Profile" msgstr "_Profil" #: pan/gui/post-ui.cc:455 msgid "Set Editor" msgstr "Pokrenite uređivača" #: pan/gui/post-ui.cc:457 msgid "_Send Article" msgstr "_Pođalji članak" #: pan/gui/post-ui.cc:457 msgid "Send Article Now" msgstr "Pošaljite članak sada" #: pan/gui/post-ui.cc:458 msgid "_Send and Save Articles to NZB" msgstr "_Pošalji i sačuvaj članke u NZB" #: pan/gui/post-ui.cc:458 msgid "Send and Save Articles to NZB" msgstr "Pošaljite i sačuvajte članke u NZB-u" #: pan/gui/post-ui.cc:459 #| msgid "Set Character _Encoding..." msgid "Set Character _Encoding…" msgstr "Podesi _kodiranje znakova…" #: pan/gui/post-ui.cc:460 #| msgid "Set Content _Transfer Encoding..." msgid "Set Content _Transfer Encoding…" msgstr "Podesi kodiranje _prenosa sadržaja…" #: pan/gui/post-ui.cc:461 msgid "Sa_ve Draft" msgstr "_Sačuvaj nacrt" #: pan/gui/post-ui.cc:461 msgid "Save as a Draft for Future Posting" msgstr "Sačuvajte kao nacrt za buduća objavljivanja" #: pan/gui/post-ui.cc:462 #| msgid "_Open Draft..." msgid "_Open Draft…" msgstr "_Otvori nacrt…" #: pan/gui/post-ui.cc:462 msgid "Open an Article Draft" msgstr "Otvorite nacrt članka" #: pan/gui/post-ui.cc:467 msgid "_Rot13" msgstr "_Rot13" #: pan/gui/post-ui.cc:467 msgid "Rot13 Selected Text" msgstr "Rot13 na izabranom tekstu" #: pan/gui/post-ui.cc:468 msgid "Run _Editor" msgstr "Pokreni _uređivača" #: pan/gui/post-ui.cc:468 msgid "Run Editor" msgstr "Pokrenite uređivača" #: pan/gui/post-ui.cc:470 msgid "Add _Files to Queue" msgstr "Dodaj _datoteke u zakazano" #: pan/gui/post-ui.cc:470 msgid "Add Files to Queue" msgstr "Dodajte datoteke u zakazano" #: pan/gui/post-ui.cc:485 pan/gui/post-ui.cc:486 msgid "Remove from Queue" msgstr "Ukloni iz zakazanih" #: pan/gui/post-ui.cc:490 pan/gui/post-ui.cc:491 msgid "Clear List" msgstr "Očisti spisak" #: pan/gui/post-ui.cc:495 pan/gui/post-ui.cc:496 msgid "Select Needed Parts" msgstr "Izaberi potrebne delove" #: pan/gui/post-ui.cc:500 pan/gui/post-ui.cc:501 pan/gui/task-pane.cc:677 #: pan/gui/task-pane.cc:678 msgid "Move Up" msgstr "Pomeri gore" #: pan/gui/post-ui.cc:505 pan/gui/post-ui.cc:506 pan/gui/task-pane.cc:682 #: pan/gui/task-pane.cc:683 msgid "Move Down" msgstr "Pomeri dole" #: pan/gui/post-ui.cc:510 pan/gui/post-ui.cc:511 msgid "Move to Top" msgstr "Premestite na vrh" #: pan/gui/post-ui.cc:515 pan/gui/post-ui.cc:516 msgid "Move to Bottom" msgstr "Premestite na dno" #: pan/gui/post-ui.cc:523 msgid "_Wrap Text" msgstr "_Prelomi tekst" #: pan/gui/post-ui.cc:523 msgid "Wrap Text" msgstr "Prelomite tekst" #: pan/gui/post-ui.cc:524 msgid "Always Run Editor" msgstr "Uvek pokreni uređivača" #: pan/gui/post-ui.cc:525 msgid "Remember Character Encoding for This Group" msgstr "Zapamti kodiranje znakova za ovu grupu" #: pan/gui/post-ui.cc:526 msgid "Thread Attached Replies" msgstr "Prikačeni odgovori rasprave" #: pan/gui/post-ui.cc:527 msgid "PGP-Encrypt the Article" msgstr "Šifruj PGP-om članak" #: pan/gui/post-ui.cc:528 msgid "PGP-Sign the Article" msgstr "Potpiši PGP-om članak" #: pan/gui/post-ui.cc:529 msgid "Check _Spelling" msgstr "Proveri _pisanje" #: pan/gui/post-ui.cc:555 #| msgid "New Article's Encoding:" msgid "New Article’s Encoding:" msgstr "Kodiranje novog članka:" #: pan/gui/post-ui.cc:565 msgid "Content Transfer Encoding" msgstr "Kodiranje prenosa sadržaja" #: pan/gui/post-ui.cc:566 #| msgid "New Article's Content Transfer Encoding:" msgid "New Article’s Content Transfer Encoding:" msgstr "Kodiranje prenosa sadržaja novog članka:" #: pan/gui/post-ui.cc:746 msgid "Your changes will be lost!" msgstr "Vaše izmene će biti izgubljene!" #: pan/gui/post-ui.cc:747 msgid "Close this window and lose your changes?" msgstr "Da zatvorim prozor i odbacim vaše izmene?" #: pan/gui/post-ui.cc:792 pan/gui/post-ui.cc:831 msgid "There were problems with this post." msgstr "Došlo je do problema sa ovom objavom." #: pan/gui/post-ui.cc:794 pan/gui/post-ui.cc:833 pan/gui/post-ui.cc:898 msgid "Go Back" msgstr "Idi nazad" #: pan/gui/post-ui.cc:796 msgid "Continue Anyway" msgstr "Ipak nastavi" #. Prompt the user #: pan/gui/post-ui.cc:825 #, c-format #| msgid "" #| "Message uses characters not specified in charset '%s' - possibly use '%s' " msgid "" "Message uses characters not specified in charset “%s” — possibly use “%s” " msgstr "" "Poruka sadrži znake koji nisu navedeni u skupu znakova „%s“ — verovatno " "koristi „%s“ " #: pan/gui/post-ui.cc:848 msgid "Go _Online" msgstr "Idi _na mrežu" #: pan/gui/post-ui.cc:897 msgid "The file queue is empty, so no files can be saved." msgstr "" "Nema datoteka na čekanju, tako da nikakve datoteke ne mogu biti sačuvane." #: pan/gui/post-ui.cc:1093 msgid "IO Error" msgstr "UI greška" #: pan/gui/post-ui.cc:1093 msgid "No space left on device" msgstr "Nema više mesta na uređaju" #: pan/gui/post-ui.cc:1094 #, c-format msgid "Error copying message to %s folder. Reason: %s" msgstr "Greška umnožavanja poruke u fasciklu „%s“. Razlog: %s" #: pan/gui/post-ui.cc:1100 #, c-format msgid "Error creating message in %s mail folder: Invalid article." msgstr "Greška stvaranja poruke u fascikli pošte „%s“: Neispravan članak." #: pan/gui/post-ui.cc:1122 #| msgid "" #| "No posting server is set for this posting profile.\n" #| "Please edit the profile via Edit|Manage Posting Profiles." msgid "" "No posting server is set for this posting profile.\n" "Please edit the profile via Edit → Manage Posting Profiles." msgstr "" "Nije podešen server objavljivanja za ovaj profil objavljivanja.\n" "Uredite profil u izborniku „Uredi → Upravljaj profilima objavljivanja“." #: pan/gui/post-ui.cc:1127 msgid "" "The selected posting server is currently disabled. Please choose an " "appropriate alternative." msgstr "" "Izabrani server objavljivanja je trenutno isključen. Izaberite odgovarajuću " "zamenu." #: pan/gui/post-ui.cc:1169 msgid "Pan is Offline." msgstr "Pan je van mreže." #: pan/gui/post-ui.cc:1170 msgid "Go online to post the article?" msgstr "Da idem na mrežu da objavim članak?" #: pan/gui/post-ui.cc:1219 #, c-format msgid "" "Error signing/encrypting your message. Perhaps you misspelled your email " "address (%s)?" msgstr "" "Greška potpisivanja/šifrovanja vaše poruke. Možda ste pogrešno napisali adresu " "vaše el. pošte (%s)?" #: pan/gui/post-ui.cc:1367 msgid "Error opening temporary file" msgstr "Greška otvaranja privremene datoteke" #: pan/gui/post-ui.cc:1379 #, c-format msgid "Error writing article to temporary file: %s" msgstr "Greška pisanja članka u privremenu datoteku: %s" #: pan/gui/post-ui.cc:1398 #, c-format #| msgid "Error parsing \"external editor\" command line: %s (Command was: %s)" msgid "Error parsing “external editor” command line: %s (Command was: %s)" msgstr "Greška obrade linije naredbe „external editor“: %s (Naredba beše: %s)" #: pan/gui/post-ui.cc:1439 #, c-format msgid "Error starting external editor: %s" msgstr "Greška pokretanja spoljnog uređivača: %s" #: pan/gui/post-ui.cc:1502 msgid "Open Draft Article" msgstr "Otvori nacrt članka" #: pan/gui/post-ui.cc:1767 msgid "Save Draft Article" msgstr "Sačuvaj nacrt članka" #: pan/gui/post-ui.cc:1804 msgid "File already exists." msgstr "Datoteka već postoji." #: pan/gui/post-ui.cc:1805 msgid "Overwrite it?" msgstr "Da prepišem preko nje?" #: pan/gui/post-ui.cc:2015 #, c-format #| msgid "Couldn't parse signature command \"%s\": %s" msgid "Couldn’t parse signature command “%s”: %s" msgstr "Ne mogu da obradim naredbu potpisa „%s“: %s" #: pan/gui/post-ui.cc:2051 #| msgid "Couldn't convert signature to UTF-8." msgid "Couldn’t convert signature to UTF-8." msgstr "Ne mogu da pretvorim potpis u UTF-8." #: pan/gui/post-ui.cc:2591 msgid "F_rom" msgstr "_Šalje" #: pan/gui/post-ui.cc:2608 msgid "_Subject" msgstr "_Tema" #: pan/gui/post-ui.cc:2621 msgid "_Newsgroups" msgstr "_Pričaonice" #: pan/gui/post-ui.cc:2635 msgid "Mail _To" msgstr "_Prima" #: pan/gui/post-ui.cc:2737 msgid "Delete from Queue" msgstr "Obriši iz zakazanih" #: pan/gui/post-ui.cc:2750 msgid "No." msgstr "Br." #: pan/gui/post-ui.cc:2754 pan/gui/post-ui.cc:2846 pan/gui/post-ui.cc:2887 msgid "Filename" msgstr "Datoteka" #: pan/gui/post-ui.cc:2756 msgid "Size (KB)" msgstr "Veličina (kB)" #: pan/gui/post-ui.cc:2854 msgid "The current filename" msgstr "Trenutna datoteka" #: pan/gui/post-ui.cc:2858 msgid "Subject Line" msgstr "Red teme" #: pan/gui/post-ui.cc:2866 msgid "The current subject line" msgstr "Red trenutne teme" #: pan/gui/post-ui.cc:2880 msgid "No. " msgstr "Br. " #: pan/gui/post-ui.cc:2884 msgid "Enable/Disable" msgstr "Uključi/Isključi" #: pan/gui/post-ui.cc:2918 msgid "Follo_wup-To" msgstr "_Isprati-do" #. i18n: "poster" is a key used by many newsreaders. probably safest to keep this key in english. #: pan/gui/post-ui.cc:2927 #| msgid "" #| "The newsgroups where replies to your message should go. This is only " #| "needed if it differs from the \"Newsgroups\" header.\n" #| "\n" #| "To direct all replies to your email address, use \"Followup-To: poster\"" msgid "" "The newsgroups where replies to your message should go. This is only needed " "if it differs from the “Newsgroups” header.\n" "\n" "To direct all replies to your email address, use “Followup-To: poster”" msgstr "" "Pričaonice na koje će se slati odgovori na vašu poruku. Potrebno je samo u " "slučaju da se razlikuje od zaglavlja „Pričaonice“.\n" "\n" "Za preusmeravanje svih odgovora na adresu vaše el. pošte, koristite „Prati: " "objavljivač“" # * # * Create this before we call create_from_optionmenu, # * because that causes from_changed to be called, which # * expects the reply_to fields to be initialized. #: pan/gui/post-ui.cc:2934 msgid "_Reply-To" msgstr "_Odgovori" #: pan/gui/post-ui.cc:2942 #| msgid "" #| "The email account where mail replies to your posted message should go. " #| "This is only needed if it differs from the \"From\" header." msgid "" "The email account where mail replies to your posted message should go. This " "is only needed if it differs from the “From” header." msgstr "" "Nalog el. pošte na koji će se slati odgovori na vaše poruke. Potrebno je " "samo u slučaju da se razlikuje od zaglavlja „Šalje“." #: pan/gui/post-ui.cc:2949 msgid "_Custom Headers" msgstr "_Proizvoljno zaglavlje" #: pan/gui/post-ui.cc:2973 #| msgid "Add \"_User-Agent\" header" msgid "Add “_User-Agent” header" msgstr "Dodaj zaglavlje „_Čitač“" #: pan/gui/post-ui.cc:2980 #| msgid "Add \"Message-_ID\" header" msgid "Add “Message-_ID” header" msgstr "Dodaj zaglavlje „_IB-Poruke“" #: pan/gui/post-ui.cc:3111 msgid "Select Parts" msgstr "Izaberite delove" #: pan/gui/post-ui.cc:3124 msgid "_Parts" msgstr "_Delovi" #: pan/gui/post-ui.cc:3282 msgid "Post Article" msgstr "Objavite članak" #: pan/gui/post-ui.cc:3303 msgid "_Message" msgstr "_Poruka" #: pan/gui/post-ui.cc:3304 msgid "More _Headers" msgstr "Još _zaglavlja" #: pan/gui/post-ui.cc:3305 msgid "File _Queue" msgstr "_Zakazane datoteke" #: pan/gui/post-ui.cc:3337 pan/gui/profiles-dialog.cc:482 #, no-c-format msgid "On %d, %n wrote:" msgstr "%d, %n piše:" #: pan/gui/post-ui.cc:3366 msgid "Add files to queue" msgstr "Dodaj datoteke u zakazano" #: pan/gui/post-ui.cc:3442 msgid "Save Upload Queue as NZB File" msgstr "Sačuvaj red slanja kao NZB datoteku" #: pan/gui/prefs.cc:366 #, c-format #| msgid "Couldn't parse %s color \"%s\"" msgid "Couldn’t parse %s color “%s”" msgstr "Ne mogu da obradim %s boju „%s“" #: pan/gui/prefs-ui.cc:123 msgid "Grab Key" msgstr "Pritisni taster" #: pan/gui/prefs-ui.cc:129 #, c-format #| msgid "" #| "Press the combination of the keys\n" #| "you want to use for \"%s\"." msgid "" "Press the combination of the keys\n" "you want to use for “%s”." msgstr "" "Pritisnite kombinaciju tastera koje\n" "želite da koristite za „%s“." #: pan/gui/prefs-ui.cc:169 msgid "Edit Shortcut" msgstr "Uredie prečicu" #: pan/gui/prefs-ui.cc:231 msgid "Error: Shortcut key is invalid!" msgstr "Greška: Taster prečice je neispravan!" #: pan/gui/prefs-ui.cc:247 msgid "Error: Shortcut key already exists!" msgstr "Greška: Taster prečice već postoji!" #: pan/gui/prefs-ui.cc:561 msgid "Show only icons" msgstr "Prikaži samo ikonice" #: pan/gui/prefs-ui.cc:562 msgid "Show only text" msgstr "Prikaži samo tekst" #: pan/gui/prefs-ui.cc:563 msgid "Show icons and text" msgstr "Prikaži ikonice i tekst" #: pan/gui/prefs-ui.cc:602 msgid "Use GNOME Preferences" msgstr "Koristi postavke Gnoma" #: pan/gui/prefs-ui.cc:603 msgid "Use KDE Preferences" msgstr "Koristi postavke KDE-a" #: pan/gui/prefs-ui.cc:604 msgid "Use OS X Preferences" msgstr "Koristi postavke OS H-a" #: pan/gui/prefs-ui.cc:605 msgid "Use Windows Preferences" msgstr "Koristi postavke Vindouza" #: pan/gui/prefs-ui.cc:606 msgid "Custom Command:" msgstr "Proizvoljna naredba:" #: pan/gui/prefs-ui.cc:658 msgid "Disabled" msgstr "Isključeno" #: pan/gui/prefs-ui.cc:659 msgid "Only new (score == 0)" msgstr "Samo nove (učinak == 0)" #: pan/gui/prefs-ui.cc:660 msgid "9999 or more" msgstr "od 9999 ili više" #: pan/gui/prefs-ui.cc:661 msgid "5000 to 9998" msgstr "od 5000 do 9998" #: pan/gui/prefs-ui.cc:662 msgid "1 to 4999" msgstr "od 1 do 4999" #: pan/gui/prefs-ui.cc:663 msgid "-9998 to -1" msgstr "od -9998 do -1" #: pan/gui/prefs-ui.cc:664 msgid "-9999 or less" msgstr "od -9999 ili manje" #: pan/gui/prefs-ui.cc:728 #, c-format msgid "Select default global character set. Current setting: %s." msgstr "" "Izaberite osnovni opšti skup znakova. Tekuće podešavanje: %s." #: pan/gui/prefs-ui.cc:760 msgid "Global Character Set Settings" msgstr "Opšta podešavanja skupa znakova" #: pan/gui/prefs-ui.cc:854 pan/gui/task-pane.cc:1076 msgid "State" msgstr "Stanje" #: pan/gui/prefs-ui.cc:888 msgid "Enabled" msgstr "Uključeno" #: pan/gui/prefs-ui.cc:892 msgid "Column Name" msgstr "Naziv kolone" #: pan/gui/prefs-ui.cc:930 msgid "Pan: Preferences" msgstr "Pan: Postavke" #: pan/gui/prefs-ui.cc:945 msgid "Mouse" msgstr "Miš" #: pan/gui/prefs-ui.cc:947 msgid "Single-click activates, rather than selects, _groups" msgstr "Jedan pritisak pokreće _grupe, umesto da ih bira" #: pan/gui/prefs-ui.cc:949 msgid "Single-click activates, rather than selects, _articles" msgstr "Jedan pritisak pokreće _članke, umesto da ih bira" #: pan/gui/prefs-ui.cc:952 msgid "Groups" msgstr "Grupe" #: pan/gui/prefs-ui.cc:954 msgid "Get new headers in subscribed groups on _startup" msgstr "Preuzmi nova zaglavlja u praćenim grupama po _pokretanju" #: pan/gui/prefs-ui.cc:956 msgid "Get new headers when _entering group" msgstr "Preuzmi nova zaglavlja pri učitavanju _grupe" #: pan/gui/prefs-ui.cc:958 msgid "Mark entire group _read when leaving group" msgstr "Označi čitavu grupu pročitanom prilikom _napuštanja" #: pan/gui/prefs-ui.cc:960 msgid "Mark entire group read before getting _new headers" msgstr "Označi čitavu grupu pročitanom pre _dobavljanja novih zaglavlja" #: pan/gui/prefs-ui.cc:962 msgid "E_xpand all threads when entering group" msgstr "_Raširi sve teme prilikom ulaska u grupu" #: pan/gui/prefs-ui.cc:967 msgid "Articles" msgstr "Članci" #: pan/gui/prefs-ui.cc:969 msgid "Mark downloaded articles read" msgstr "Označi preuzete članke pročitanim" #: pan/gui/prefs-ui.cc:971 msgid "Space selects next article rather than next unread" msgstr "Razmak bira novi članak umesto sledećeg nepročitanog" #: pan/gui/prefs-ui.cc:973 msgid "Expand threads upon selection" msgstr "Raširi teme iznad izbora" #: pan/gui/prefs-ui.cc:975 msgid "Always ask before deleting an article" msgstr "Uvek pitaj pre brisanja članka" #: pan/gui/prefs-ui.cc:977 msgid "Smooth scrolling" msgstr "Glatko klizanje" #: pan/gui/prefs-ui.cc:982 msgid "Article Cache" msgstr "Ostava članka" #: pan/gui/prefs-ui.cc:983 msgid "Clear article cache on shutdown" msgstr "Očisti ostavu prilikom isključivanja" #: pan/gui/prefs-ui.cc:986 msgid "Size of article cache (in MiB):" msgstr "Veličina ostave (u MiB):" #: pan/gui/prefs-ui.cc:991 msgid "File extension for cached articles: " msgstr "Proširenje datoteke za pričuvane članke: " #: pan/gui/prefs-ui.cc:996 msgid "Tabs" msgstr "Jezičci" #: pan/gui/prefs-ui.cc:1001 msgid "_Behavior" msgstr "Po_našanje" #: pan/gui/prefs-ui.cc:1001 msgid "Behavior" msgstr "Podešavanja ponašanja" #: pan/gui/prefs-ui.cc:1007 msgid "Task Pane" msgstr "Površ zadatka" #: pan/gui/prefs-ui.cc:1008 msgid "Show task pane popups" msgstr "Prikaži oblačiće površi zadataka" #: pan/gui/prefs-ui.cc:1010 msgid "Show Download Meter" msgstr "Prikaži merač preuzimanja" #: pan/gui/prefs-ui.cc:1014 msgid "_Panes" msgstr "_Površi" #: pan/gui/prefs-ui.cc:1014 msgid "Panes" msgstr "Površi" #: pan/gui/prefs-ui.cc:1020 msgid "Language Settings" msgstr "Podešavanje jezika" #. systray and notify popup #: pan/gui/prefs-ui.cc:1029 msgid "System Tray Behavior" msgstr "Ponašanje sistemske kasete" #: pan/gui/prefs-ui.cc:1031 msgid "Minimize to tray" msgstr "Spusti u sistemsku kasetu" #: pan/gui/prefs-ui.cc:1033 msgid "Start Pan minimized" msgstr "Pokreni Pana umanjenim" #: pan/gui/prefs-ui.cc:1036 msgid "Show notifications" msgstr "Prikaži obaveštenja" #. allow multiple instances (seperate, not communicating with dbus) #: pan/gui/prefs-ui.cc:1041 msgid "Startup Behavior" msgstr "Ponašanje pri pokretanju" #: pan/gui/prefs-ui.cc:1043 msgid "Allow multiple instances of Pan" msgstr "Dopusti više primeraka Pana" #: pan/gui/prefs-ui.cc:1048 msgid "Autosave Article Draft" msgstr "Samostalno čuvanje nacrta članka" #: pan/gui/prefs-ui.cc:1050 msgid "Minutes to autosave the current Article Draft: " msgstr "Vreme za samostalno čuvanje tekućeg nacrta članka: " #: pan/gui/prefs-ui.cc:1055 msgid "Autosave Articles" msgstr "Samostalno čuvanje članka" #: pan/gui/prefs-ui.cc:1057 msgid "Minutes to autosave newsrc files: " msgstr "Vreme za samostalno čuvanje datoteka „newsrc“: " #: pan/gui/prefs-ui.cc:1064 msgid "Password Storage" msgstr "Smeštanje lozinke" #: pan/gui/prefs-ui.cc:1065 msgid "Save passwords in password storage" msgstr "Sačuvaj lozinke u smeštaj za lozinke" #: pan/gui/prefs-ui.cc:1069 msgid "_Miscellaneous" msgstr "Ra_zno" #: pan/gui/prefs-ui.cc:1069 msgid "Miscellaneous" msgstr "Razna podešavanja" #: pan/gui/prefs-ui.cc:1074 msgid "Pane Layout" msgstr "Raspored površi" #: pan/gui/prefs-ui.cc:1093 msgid "1=Groups, 2=Headers, 3=Body" msgstr "1=Grupe, 2=Zaglavlja, 3=Razrada" #: pan/gui/prefs-ui.cc:1095 msgid "1=Groups, 2=Body, 3=Headers" msgstr "1=Grupe, 2=Razrada, 3=Zaglavlja" #: pan/gui/prefs-ui.cc:1097 msgid "1=Headers, 2=Groups, 3=Body" msgstr "1=Zaglavlja, 2=Grupe, 3=Razrada" #: pan/gui/prefs-ui.cc:1099 msgid "1=Headers, 2=Body, 3=Groups" msgstr "1=Zaglavlja, 2=Razrada, 3=Grupe" #: pan/gui/prefs-ui.cc:1101 msgid "1=Body, 2=Groups, 3=Headers" msgstr "1=Razrada, 2=Grupe, 3=Zaglavlja" #: pan/gui/prefs-ui.cc:1103 msgid "1=Body, 2=Headers, 3=Groups" msgstr "1=Razrada, 2=Zaglavlja, 3=Grupe" #: pan/gui/prefs-ui.cc:1107 msgid "Layout" msgstr "Podešavanja rasporeda" #: pan/gui/prefs-ui.cc:1112 msgid "Header Pane Columns" msgstr "Kolone površi zaglavlja" #: pan/gui/prefs-ui.cc:1116 msgid "_Headers" msgstr "Za_glavlja" #: pan/gui/prefs-ui.cc:1116 msgid "Headers" msgstr "Podešavanja zaglavlja" #: pan/gui/prefs-ui.cc:1122 #| msgid "" #| "This menu lets you configure Pan to take certain actions on your behalf " #| "automatically, based on an article's score." msgid "" "This menu lets you configure Pan to take certain actions on your behalf " "automatically, based on an article’s score." msgstr "" "Pomoću ovog izbornika možete da podesite da Pan sam obavi određene radnje po " "vašoj želji, na osnovu bodovanja članka." #: pan/gui/prefs-ui.cc:1127 msgid "Mark affected articles read" msgstr "Označi doticajne članke pročitanim" #: pan/gui/prefs-ui.cc:1136 msgid "_Delete articles scoring at: " msgstr "_Obriši članke sa učinkom: " #: pan/gui/prefs-ui.cc:1142 msgid "Mark articles read scoring at: " msgstr "Označi članke pročitanim sa učinkom od: " #: pan/gui/prefs-ui.cc:1148 msgid "_Cache articles scoring at: " msgstr "_Pričuvaj članke sa učinkom: " #: pan/gui/prefs-ui.cc:1154 msgid "Download attachments of articles scoring at: " msgstr "Preuzmi priloge članaka sa učinkom od: " #: pan/gui/prefs-ui.cc:1157 msgid "Actions" msgstr "Podešavanja radnji" #: pan/gui/prefs-ui.cc:1162 pan/gui/prefs-ui.cc:1183 msgid "Fonts" msgstr "Oblik slova" #: pan/gui/prefs-ui.cc:1164 msgid "Use custom font in Group Pane:" msgstr "Koristi proizvoljna slova u površi grupe:" #: pan/gui/prefs-ui.cc:1169 msgid "Use custom font in Header Pane:" msgstr "Koristi proizvoljna slova u površi zaglavlja:" #: pan/gui/prefs-ui.cc:1174 msgid "Use custom font in Body Pane:" msgstr "Koristi proizvoljna slova u površi razrade:" #: pan/gui/prefs-ui.cc:1179 msgid "Monospace font:" msgstr "Slova utvrđene širine:" #: pan/gui/prefs-ui.cc:1183 msgid "_Fonts" msgstr "_Slova" #: pan/gui/prefs-ui.cc:1192 msgid "Header Pane" msgstr "Površ zaglavlja" #: pan/gui/prefs-ui.cc:1195 pan/gui/prefs-ui.cc:1201 pan/gui/prefs-ui.cc:1207 #: pan/gui/prefs-ui.cc:1213 pan/gui/prefs-ui.cc:1219 pan/gui/prefs-ui.cc:1225 #: pan/gui/prefs-ui.cc:1234 pan/gui/prefs-ui.cc:1240 pan/gui/prefs-ui.cc:1246 #: pan/gui/prefs-ui.cc:1252 pan/gui/prefs-ui.cc:1258 pan/gui/prefs-ui.cc:1268 #: pan/gui/prefs-ui.cc:1278 msgid "Text:" msgstr "Tekst:" #: pan/gui/prefs-ui.cc:1197 pan/gui/prefs-ui.cc:1203 pan/gui/prefs-ui.cc:1209 #: pan/gui/prefs-ui.cc:1215 pan/gui/prefs-ui.cc:1221 pan/gui/prefs-ui.cc:1227 #: pan/gui/prefs-ui.cc:1236 pan/gui/prefs-ui.cc:1242 pan/gui/prefs-ui.cc:1248 #: pan/gui/prefs-ui.cc:1254 pan/gui/prefs-ui.cc:1260 pan/gui/prefs-ui.cc:1270 #: pan/gui/prefs-ui.cc:1280 msgid "Background:" msgstr "Pozadina:" #: pan/gui/prefs-ui.cc:1199 msgid "Scores of 9999 or more:" msgstr "Učinci od 9999 ili više:" #: pan/gui/prefs-ui.cc:1205 msgid "Scores from 5000 to 9998:" msgstr "Učinci od 5000 do 9998:" #: pan/gui/prefs-ui.cc:1211 msgid "Scores from 1 to 4999:" msgstr "Učinci od 1 do 4999:" #: pan/gui/prefs-ui.cc:1217 msgid "Scores from -9998 to -1:" msgstr "Učinci od -9998 do -1:" #: pan/gui/prefs-ui.cc:1223 msgid "Scores of -9999 or less:" msgstr "Učinci od -9999 ili manje:" #: pan/gui/prefs-ui.cc:1229 msgid "Collapsed thread with unread articles:" msgstr "Skupljena tema sa nepročitanim člancima:" #: pan/gui/prefs-ui.cc:1231 msgid "Body Pane" msgstr "Površ razrade" #: pan/gui/prefs-ui.cc:1238 msgid "First level of quoted text:" msgstr "Prvi nivo citiranog teksta:" #: pan/gui/prefs-ui.cc:1244 msgid "Second level of quoted text:" msgstr "Drugi nivo citiranog teksta:" #: pan/gui/prefs-ui.cc:1250 msgid "Third level of quoted text:" msgstr "Treći nivo citiranog teksta:" #. #: pan/gui/prefs-ui.cc:1256 msgid "URL:" msgstr "Adresa:" #. #: pan/gui/prefs-ui.cc:1262 msgid "Signature:" msgstr "Potpis:" #: pan/gui/prefs-ui.cc:1265 msgid "Group Pane" msgstr "Površ grupe" #. #: pan/gui/prefs-ui.cc:1272 msgid "Group Color:" msgstr "Boja grupe:" #: pan/gui/prefs-ui.cc:1276 msgid "Other Text" msgstr "Drugi tekst" #: pan/gui/prefs-ui.cc:1282 msgid "Text Color:" msgstr "Boja teksta:" #: pan/gui/prefs-ui.cc:1285 msgid "_Colors" msgstr "_Boje" #: pan/gui/prefs-ui.cc:1285 msgid "Colors" msgstr "Podešavanja boja" #: pan/gui/prefs-ui.cc:1290 msgid "Preferred Applications" msgstr "Omiljeni programi" #: pan/gui/prefs-ui.cc:1294 msgid "_Web browser:" msgstr "_Veb preglednik:" #: pan/gui/prefs-ui.cc:1297 msgid "_Mail reader:" msgstr "_Čitač pošte:" #: pan/gui/prefs-ui.cc:1299 msgid "_Text editor:" msgstr "_Uređivač teksta:" #: pan/gui/prefs-ui.cc:1301 msgid "_HTML previewer:" msgstr "_HTML pretpregledač:" #: pan/gui/prefs-ui.cc:1303 msgid "_Applications" msgstr "Pro_grami" #: pan/gui/prefs-ui.cc:1303 msgid "Applications" msgstr "Podešavanja programa" #: pan/gui/prefs-ui.cc:1308 pan/gui/task-pane.cc:552 msgid "Encoding" msgstr "Kodiranje" #: pan/gui/prefs-ui.cc:1312 msgid "Default bytes per file (for encoder): " msgstr "Osnovnih bajtova po datoteci (za kodera): " #: pan/gui/prefs-ui.cc:1317 msgid "_Upload" msgstr "_Otpremanje" #: pan/gui/prefs-ui.cc:1317 msgid "Upload" msgstr "Podešavanja otpremanja" #: pan/gui/prefs-ui.cc:1326 msgid "_Shortcuts" msgstr "Pre_čice" #: pan/gui/prefs-ui.cc:1326 msgid "Shortcuts" msgstr "Podešavanja prečica" #: pan/gui/profiles-dialog.cc:83 #| msgid "" #| "Please choose your email address according to your PGP key's user id." msgid "Please choose your email address according to your PGP key’s user id." msgstr "" "Izaberite adresu vaše el. pošte u skladu sa vašim korisničkim ib-om PGP " "ključa." #: pan/gui/profiles-dialog.cc:131 msgid "Posting Profile" msgstr "Profil objavljivanja" #: pan/gui/profiles-dialog.cc:143 msgid "Profile Information" msgstr "Podaci o profilu" #: pan/gui/profiles-dialog.cc:147 msgid "_Profile Name:" msgstr "Naziv _profila:" #: pan/gui/profiles-dialog.cc:150 msgid "Required Information" msgstr "Obavezni podaci" #: pan/gui/profiles-dialog.cc:154 msgid "_Full Name:" msgstr "_Ime i prezime:" #: pan/gui/profiles-dialog.cc:158 #| msgid "" #| "Your email address.\n" #| "Note that this has to match your PGP signature's address\n" #| "if you want your messages to be PGP-signed or encrypted correctly." msgid "" "Your email address.\n" "Note that this has to match your PGP signature’s address\n" "if you want your messages to be PGP-signed or encrypted correctly." msgstr "" "Adresa vaše el. pošte.\n" "Ovo treba da odgovara adresi vašeg PGP\n" "potpisa ako želite da vaše poruke budu PGP-potpisane ili ispravno šifrovane." #: pan/gui/profiles-dialog.cc:162 msgid "_Email Address:" msgstr "Adresa _el. pošte:" #: pan/gui/profiles-dialog.cc:164 msgid "_Post Articles via:" msgstr "_Objavi članke putem:" #: pan/gui/profiles-dialog.cc:167 msgid "Signature" msgstr "Potpis" #: pan/gui/profiles-dialog.cc:170 msgid "_Use a Signature" msgstr "_Koristi potpis" #: pan/gui/profiles-dialog.cc:174 msgid "Signature File" msgstr "Datoteka potpisa" #: pan/gui/profiles-dialog.cc:184 msgid "Text File" msgstr "Tekstualna datoteka" #: pan/gui/profiles-dialog.cc:186 msgid "Text" msgstr "Tekst" #: pan/gui/profiles-dialog.cc:188 msgid "Command" msgstr "Naredba" #: pan/gui/profiles-dialog.cc:191 msgid "PGP Signature" msgstr "PGP potpis" #: pan/gui/profiles-dialog.cc:196 msgid "Signature Type: " msgstr "Vrsta potpisa: " #: pan/gui/profiles-dialog.cc:226 msgid "X-Face (Avatar)" msgstr "H-lice (Avatar)" #: pan/gui/profiles-dialog.cc:229 #| msgid "" #| "You can add an avatar icon to your articles with a unique X-Face code.\n" #| "Add the code without the trailing \"X-Face:\" \n" #| " if it was generated by a helper program (for example http://www.dairiki." #| "org/xface/xface.php)." msgid "" "You can add an avatar icon to your articles with a unique X-Face code.\n" "Add the code without the trailing “X-Face:” \n" " if it was generated by a helper program (for example http://www.dairiki.org/" "xface/xface.php)." msgstr "" "Možete da dodate ikonicu avatara vašim člancima jedinstvenim kodom H-lica.\n" "Dodajte kod bez pratećeg „H-lice:“ \n" " ako je stvoren pomoćničkim programom (na primer " "„http://www.dairiki.org/xface/xface.php“)." #: pan/gui/profiles-dialog.cc:232 msgid "_X-Face:" msgstr "_H-lice:" #: pan/gui/profiles-dialog.cc:234 msgid "Optional Information" msgstr "Izborni podaci" #: pan/gui/profiles-dialog.cc:239 #| msgid "" #| "When posting to Usenet, your article's Message-ID contains a domain " #| "name.\n" #| "You can set a custom domain name here, or leave it blank to let Pan use " #| "the domain name from your email address." msgid "" "When posting to Usenet, your article’s Message-ID contains a domain name.\n" "You can set a custom domain name here, or leave it blank to let Pan use the " "domain name from your email address." msgstr "" "Kada šaljete na Juznet, IB poruke vašeg članka sadrži naziv domena.\n" "Ovde možete da podesite prilagođeni naziv domena, ili da ostavite praznim " "kako bi Pan koristio naziv domena iz adrese vaše el. pošte." #: pan/gui/profiles-dialog.cc:242 msgid "Message-ID _Domain Name:" msgstr "Naziv _domena IB-a poruke:" #: pan/gui/profiles-dialog.cc:246 #, c-format msgid "" "%i for Message-ID\n" "%a for Author and Address\n" "%n for Author name\n" "%d for Date" msgstr "" "%i za IB poruke\n" "%a za autora i adresu\n" "%n za ime autora\n" "%d za datum" #: pan/gui/profiles-dialog.cc:247 msgid "_Attribution:" msgstr "_Uvodni tekst:" #. Translators: Do not localize Reply-To and the quote marks in \"Your Name\". #: pan/gui/profiles-dialog.cc:272 #| msgid "" #| "Extra headers to be included in your articles, such as\n" #| "Reply-To: \"Your Name\"\n" #| "Organization: Your Organization\n" msgid "" "Extra headers to be included in your articles, such as\n" "Reply-To: \"Your Name\" \n" "Organization: Your Organization\n" msgstr "" "Dodatna zaglavlja koja će biti uključena u vaše članke, kao što je\n" "Odgovori: „Vaše ime“\n" "Udruženje: Vaše udruženje\n" #: pan/gui/profiles-dialog.cc:282 msgid "E_xtra Headers:" msgstr "_Dodatna zaglavlja:" #: pan/gui/profiles-dialog.cc:327 msgid "Invalid email address." msgstr "Neispravna adresa el. pošte." #: pan/gui/profiles-dialog.cc:328 msgid "Please use an address of the form joe@somewhere.org" msgstr "Koristite adresu u obliku „pera@nešto.org“" #: pan/gui/profiles-dialog.cc:483 msgid "New Profile" msgstr "Novi profil" #: pan/gui/profiles-dialog.cc:529 msgid "Posting Profiles" msgstr "Profili objavljivanja" #: pan/gui/profiles-dialog.cc:545 msgid "Profiles" msgstr "Profili" #: pan/gui/save-attach-ui.cc:46 #, c-format #| msgid "" #| "%g - group as one directory (alt.binaries.pictures.trains)\n" #| "%G - group as nested directory (/alt/binaries/pictures/trains)\n" #| "%s - Subject line excerpt\n" #| "%S - Subject line\n" #| "%n - Poster display name\n" #| "%e - Poster email address\n" #| "%d - Article timestamp\n" #| "\"/home/user/News/Pan/%g\" becomes\n" #| "\"/home/user/News/Pan/alt.binaries.pictures.trains\", and\n" #| "\"/home/user/News/Pan/%G\" becomes\n" #| "\"/home/user/News/Pan/alt/binaries/pictures/trains\"," msgid "" "%g — group as one directory (alt.binaries.pictures.trains)\n" "%G — group as nested directory (/alt/binaries/pictures/trains)\n" "%s — Subject line excerpt\n" "%S — Subject line\n" "%n — Poster display name\n" "%e — Poster email address\n" "%d — Article timestamp\n" "“/home/user/News/Pan/%g” becomes\n" "“/home/user/News/Pan/alt.binaries.pictures.trains”, and\n" "“/home/user/News/Pan/%G” becomes\n" "“/home/user/News/Pan/alt/binaries/pictures/trains”," msgstr "" "%g — grupa kao jedan direktorijum (alt.binaries.pictures.trains)\n" "%G — grupa kao ugneždeni direktorijum (/alt/binaries/pictures/trains)\n" "%s — Izvadak reda za temu\n" "%S — Red za temu\n" "%n — Prikazano ime objavljivača\n" "%e — Adresa el. pošte objavljivača\n" "%d — Vremenska oznaka članka\n" "„/home/user/News/Pan/%g“ postaje\n" "„/home/user/News/Pan/alt.binaries.pictures.trains“, a\n" "„/home/user/News/Pan/%G“ postaje\n" "„/home/user/News/Pan/alt/binaries/pictures/trains“," #: pan/gui/save-attach-ui.cc:198 pan/gui/save-ui.cc:218 msgid "Add to the queue sorted by date posted" msgstr "Doda u zakazano prema datumu objavljivanja" #: pan/gui/save-attach-ui.cc:199 pan/gui/save-ui.cc:219 msgid "Add to the front of the queue" msgstr "Dodaj pročelje zakazanog" #: pan/gui/save-attach-ui.cc:200 pan/gui/save-ui.cc:220 msgid "Add to the back of the queue" msgstr "Dodaj začelje zakazanog" #: pan/gui/save-attach-ui.cc:232 msgid "Pan: Save Attachments" msgstr "Pan: Sačuvaj priloge" #: pan/gui/save-attach-ui.cc:257 pan/gui/save-attach-ui.cc:275 #: pan/gui/save-ui.cc:272 pan/gui/save-ui.cc:290 msgid "_Location:" msgstr "_Mesto:" #: pan/gui/save-attach-ui.cc:261 pan/gui/save-ui.cc:276 msgid "Save Articles" msgstr "Sačuvajte članke" #: pan/gui/save-attach-ui.cc:278 pan/gui/save-ui.cc:293 #, c-format #| msgid "_Group's path: %s" msgid "_Group’s path: %s" msgstr "_Putanja grupe: %s" #: pan/gui/save-attach-ui.cc:289 pan/gui/save-ui.cc:308 msgid "_Priority:" msgstr "_Važnost:" #: pan/gui/save-ui.cc:46 #, c-format #| msgid "" #| "%g - group as one directory (alt.binaries.pictures.trains)\n" #| "%G - group as nested directory (/alt/binaries/pictures/trains)\n" #| "%s - subject line excerpt\n" #| "%S - subject line\n" #| "%n - Poster display name\n" #| "%e - Poster email address\n" #| "%d - Article timestamp\n" #| " \n" #| "\"/home/user/News/Pan/%g\" becomes\n" #| "\"/home/user/News/Pan/alt.binaries.pictures.trains\", and\n" #| "\"/home/user/News/Pan/%G\" becomes\n" #| "\"/home/user/News/Pan/alt/binaries/pictures/trains\"," msgid "" "%g — group as one directory (alt.binaries.pictures.trains)\n" "%G — group as nested directory (/alt/binaries/pictures/trains)\n" "%s — subject line excerpt\n" "%S — subject line\n" "%n — Poster display name\n" "%e — Poster email address\n" "%d — Article timestamp\n" " \n" "“/home/user/News/Pan/%g” becomes\n" "“/home/user/News/Pan/alt.binaries.pictures.trains”, and\n" "“/home/user/News/Pan/%G” becomes\n" "“/home/user/News/Pan/alt/binaries/pictures/trains”," msgstr "" "%g — grupa kao jedan direktorijum (alt.binaries.pictures.trains)\n" "%G — grupa kao ugneždeni direktorijum (/alt/binaries/pictures/trains)\n" "%s — izvadak reda za temu\n" "%S — red za temu\n" "%n — Prikazano ime objavljivača\n" "%e — Adresa el. pošte objavljivača\n" "%d — Vremenska oznaka članka\n" " \n" "„/home/user/News/Pan/%g“ postaje\n" "„/home/user/News/Pan/alt.binaries.pictures.trains“, a\n" "„/home/user/News/Pan/%G“ postaje\n" "„/home/user/News/Pan/alt/binaries/pictures/trains“," #: pan/gui/save-ui.cc:209 msgid "Save attachments" msgstr "Sačuvaj priloge" #: pan/gui/save-ui.cc:210 msgid "Save text" msgstr "Sačuvaj tekst" #: pan/gui/save-ui.cc:211 msgid "Save attachments and text" msgstr "Sačuvaj priloge i tekst" #: pan/gui/save-ui.cc:247 msgid "Pan: Save Articles" msgstr "Pan: Sačuvaj članke" #: pan/gui/save-ui.cc:304 msgid "_Action:" msgstr "_Radnja:" #: pan/gui/score-add-ui.cc:89 msgid "is more than" msgstr "je više od" #: pan/gui/score-add-ui.cc:90 msgid "is at most" msgstr "je barem" #: pan/gui/score-add-ui.cc:112 #| msgid "increase the article's score by" msgid "increase the article’s score by" msgstr "uvećaj učinak članka za" #: pan/gui/score-add-ui.cc:113 #| msgid "decrease the article's score by" msgid "decrease the article’s score by" msgstr "umanji učinak članka za" #: pan/gui/score-add-ui.cc:114 #| msgid "set the article's score to" msgid "set the article’s score to" msgstr "podesi učinak članka na" #: pan/gui/score-add-ui.cc:115 msgid "watch the article (set its score to 9999)" msgstr "prati članak (postavi mu učinak na 9999)" #: pan/gui/score-add-ui.cc:116 msgid "ignore the article (set its score to -9999)" msgstr "zanemari članak (postavi mu učinak na -9999)" #: pan/gui/score-add-ui.cc:141 msgid "References" msgstr "Upute" #: pan/gui/score-add-ui.cc:142 msgid "Line Count" msgstr "Broj redova" #: pan/gui/score-add-ui.cc:143 msgid "Byte Count" msgstr "Broj bajta" #: pan/gui/score-add-ui.cc:144 msgid "Crosspost Group Count" msgstr "Broj grupa unakrsnog objavljivanja" #: pan/gui/score-add-ui.cc:145 msgid "Age (in days)" msgstr "Starost (u danima)" #: pan/gui/score-add-ui.cc:167 msgid "for the next month" msgstr "za sledeći mesec" #: pan/gui/score-add-ui.cc:168 msgid "for the next six months" msgstr "za sledećih šest meseci" #: pan/gui/score-add-ui.cc:169 msgid "forever" msgstr "zauvek" #: pan/gui/score-add-ui.cc:194 msgid "contains" msgstr "sadrži" #: pan/gui/score-add-ui.cc:195 #| msgid "doesn't contain" msgid "doesn’t contain" msgstr "ne sadrži" #: pan/gui/score-add-ui.cc:196 msgid "is" msgstr "je" #: pan/gui/score-add-ui.cc:197 msgid "isn’t" msgstr "nije" #: pan/gui/score-add-ui.cc:198 msgid "starts with" msgstr "počinje sa" #: pan/gui/score-add-ui.cc:199 msgid "ends with" msgstr "završava se sa" #: pan/gui/score-add-ui.cc:200 msgid "matches regex" msgstr "odgovara regularnom izrazu" #: pan/gui/score-add-ui.cc:481 #| msgid "Another rule already sets this article's score." msgid "Another rule already sets this article’s score." msgstr "Drugo pravilo već podešava učinak ovog članka." #: pan/gui/score-add-ui.cc:482 msgid "You may want to go back or delete the old rule." msgstr "Možda želite da se vratite ili da obrišete staro pravilo." #: pan/gui/score-add-ui.cc:553 msgid "Add and Re_score" msgstr "Dodaj i ponovo izračunaj _učinak" #: pan/gui/score-add-ui.cc:604 pan/gui/score-add-ui.cc:624 msgid "New Scoring Rule" msgstr "Novo pravilo bodovanja" #: pan/gui/score-add-ui.cc:635 msgid "Group name" msgstr "Naziv grupe" #: pan/gui/score-add-ui.cc:642 msgid "and" msgstr "i" # shell:noshell-reason title #: pan/gui/score-view-ui.cc:56 msgid "Close and Re_score" msgstr "Zatvori i ponovo izračunaj _učinak" #: pan/gui/score-view-ui.cc:154 #, c-format #| msgid "File %s, Lines %d - %d" msgid "File %s, Lines %d-%d" msgstr "Datoteka „%s“, redova %d — %d" #: pan/gui/score-view-ui.cc:182 #| msgid "Pan: Article's Scores" msgid "Pan: Article’s Scores" msgstr "Pan: Učinci članka" #: pan/gui/score-view-ui.cc:208 msgid "Add" msgstr "Dodaj" #: pan/gui/score-view-ui.cc:213 msgid "New Score" msgstr "Novi učinak" #: pan/gui/score-view-ui.cc:218 msgid "Criteria" msgstr "Merilo" #: pan/gui/score-view-ui.cc:241 msgid "Add a New Scoring Rule" msgstr "Dodajte novo pravilo bodovanja" #: pan/gui/score-view-ui.cc:248 msgid "Remove the Selected Scoring Rule" msgstr "Uklonite izabrano pravilo bodovanja" #: pan/gui/server-ui.cc:272 #| msgid "Please specify the server's address." msgid "Please specify the server’s address." msgstr "Navedite adresu servera." #: pan/gui/server-ui.cc:318 msgid "Import SSL Certificate (PEM Format) From File" msgstr "Uvezite SSL uverenje (u PEM obliku) iz datoteke" #. create the dialog #: pan/gui/server-ui.cc:355 pan/gui/server-ui.cc:961 msgid "Add a Server" msgstr "Dodajte server" #: pan/gui/server-ui.cc:355 pan/gui/server-ui.cc:967 #| msgid "Edit a Server's Settings" msgid "Edit a Server’s Settings" msgstr "Uredite podešavanja servera" #: pan/gui/server-ui.cc:375 msgid "Location" msgstr "Mesto" #: pan/gui/server-ui.cc:379 #| msgid "The news server's actual address, e.g. \"news.mynewsserver.com\"" msgid "The news server’s actual address, e.g. “news.mynewsserver.com”." msgstr "Adresa servera diskusionih grupa, npr. „news.mojserver.cs“." #: pan/gui/server-ui.cc:380 msgid "_Address:" msgstr "_Adresa:" #: pan/gui/server-ui.cc:385 #| msgid "" #| "The news server's port number. Typically 119 for unencrypted and 563 for " #| "encrypted connections (SSL/TLS)." msgid "" "The news server’s port number. Typically 119 for unencrypted and 563 for " "encrypted connections (SSL/TLS)." msgstr "" "Priključnik servera diskusionih grupa. Obično je 119 za nešifrovane i 563 za " "šifrovane veze(SSL/TLS)." #: pan/gui/server-ui.cc:386 msgid "Por_t:" msgstr "_Priključnik:" #: pan/gui/server-ui.cc:389 msgid "Login (if Required)" msgstr "Prijava (ako je potrebna)" #: pan/gui/server-ui.cc:393 msgid "_Username:" msgstr "_Korisnik:" #: pan/gui/server-ui.cc:394 #| msgid "" #| "The username to give the server when asked. If your server doesn't " #| "require authentication, you can leave this blank." msgid "" "The username to give the server when asked. If your server doesn’t require " "authentication, you can leave this blank." msgstr "" "Korisničko ime koje se daje serveru kada zatraži. Ako vaš server ne zahteva " "potvrđivanje identiteta možete ostaviti praznim." #: pan/gui/server-ui.cc:398 msgid "_Password:" msgstr "_Lozinka:" #: pan/gui/server-ui.cc:399 #| msgid "" #| "The password to give the server when asked. If your server doesn't " #| "require authentication, you can leave this blank." msgid "" "The password to give the server when asked. If your server doesn’t require " "authentication, you can leave this blank." msgstr "" "Lozinka koja se daje serveru kada zatraži. Ako vaš server ne zahteva " "potvrđivanje identiteta možete ostaviti praznim." #: pan/gui/server-ui.cc:402 msgid "Settings" msgstr "Podešavanja" #: pan/gui/server-ui.cc:409 msgid "Connection _Limit:" msgstr "Ograničenje _veze:" #: pan/gui/server-ui.cc:413 msgid "After Two Weeks" msgstr "Nakon dve nedelje" #: pan/gui/server-ui.cc:414 msgid "After One Month" msgstr "Nakon jednog meseca" #: pan/gui/server-ui.cc:415 msgid "After Two Months" msgstr "Nakon dva meseca" #: pan/gui/server-ui.cc:416 msgid "After Three Months" msgstr "Nakon tri meseca" #: pan/gui/server-ui.cc:417 msgid "After Six Months" msgstr "Nakon šest meseci" #: pan/gui/server-ui.cc:418 msgid "Never Expire Old Articles" msgstr "Nikada" #: pan/gui/server-ui.cc:432 msgid "E_xpire Old Articles:" msgstr "Stari članci _zastarevaju:" #: pan/gui/server-ui.cc:436 msgid "Primary" msgstr "Glavni" #: pan/gui/server-ui.cc:437 msgid "Fallback" msgstr "Rezervni" #: pan/gui/server-ui.cc:451 msgid "Server Rank:" msgstr "Rang servera:" #: pan/gui/server-ui.cc:455 #| msgid "" #| "Fallback servers are used for articles that can't be found on the " #| "primaries. One common approach is to use free servers as primaries and " #| "subscription servers as fallbacks." msgid "" "Fallback servers are used for articles that can’t be found on the " "primaries. One common approach is to use free servers as primaries and " "subscription servers as fallbacks." msgstr "" "Rezervni serveri se koriste za članke koji ne mogu biti pronađeni na " "glavnima. Uobičajen pristup je da se kao glavni koriste slobodni serveri a " "serveri sa pretplatama kao rezervni." #: pan/gui/server-ui.cc:460 msgid "Disable Compression (N/A)" msgstr "Isključi sažimanje (N/D)" #: pan/gui/server-ui.cc:461 msgid "XZVER Compression (Astraweb)" msgstr "HZVER sažimanje (Astraweb)" #: pan/gui/server-ui.cc:462 msgid "GZIP Compression (Giganews etc.)" msgstr "GZIP sažimanje (Giganjuz itd.)" #: pan/gui/server-ui.cc:476 msgid "Header Compression:" msgstr "Sažimanje zaglavlja:" #: pan/gui/server-ui.cc:482 msgid "Security" msgstr "Bezbednost" #: pan/gui/server-ui.cc:487 msgid "Use Unsecure (Plaintext) Connections" msgstr "Koristi nesigurne veze (običan tekst)" #: pan/gui/server-ui.cc:488 msgid "Use Secure SSL Connections" msgstr "Koristi bezbedne SSL veze" #: pan/gui/server-ui.cc:503 msgid "TLS (SSL) Settings:" msgstr "Podešavanja TLS-a (SSL):" #: pan/gui/server-ui.cc:508 msgid "" "You can enable/disable secure SSL/TLS connections here. If you enable SSL/" "TLS, your data is encrypted and secure. It is encouraged to enable SSL/TLS " "for privacy reasons." msgstr "" "Ovde možete da uključite/isključite bezbedne SSL/TLS veze. Ako uključite SSL/" "TLS, vaši podaci su šifrovani i bezbedni. Savetuje vam se da uključite SSL/" "TLS iz ličnih razloga." #: pan/gui/server-ui.cc:513 #| msgid "Always trust this server's certificate" msgid "Always trust this server’s certificate" msgstr "Uvek veruj uverenju sa ovog servera" #: pan/gui/server-ui.cc:689 #, c-format #| msgid "Really delete \"%s\"?" msgid "Really delete “%s”?" msgstr "Da obrišem „%s“?" #: pan/gui/server-ui.cc:778 msgid "No information available." msgstr "Nema dostupnih podataka." #: pan/gui/server-ui.cc:788 #, c-format #| msgid "Server Certificate for '%s'" msgid "Server Certificate for “%s”" msgstr "Uverenje servera za „%s“" #: pan/gui/server-ui.cc:887 #, c-format #| msgid "Really delete certificate for \"%s\"?" msgid "Really delete certificate for “%s”?" msgstr "Da obrišem uverenje za „%s“?" #. dialog #: pan/gui/server-ui.cc:914 pan/gui/server-ui.cc:935 pan/gui/server-ui.cc:1033 msgid "Servers" msgstr "Serveri" #: pan/gui/server-ui.cc:974 msgid "Remove a Server" msgstr "Ukloni server" #. dialog #: pan/gui/server-ui.cc:1007 msgid "SSL Certificates" msgstr "SSL uverenja" #: pan/gui/server-ui.cc:1028 msgid "Certificates" msgstr "Uverenja" #: pan/gui/server-ui.cc:1059 msgid "Import Certificate" msgstr "Uvezi uverenje" #: pan/gui/server-ui.cc:1065 msgid "Inspect Certificate" msgstr "Ispitaj uverenje" #: pan/gui/server-ui.cc:1072 msgid "Remove Certificate" msgstr "Ukloni uverenje" #: pan/gui/task-pane.cc:121 #, c-format #| msgid "" #| "\n" #| "Upload\n" #| "\n" #| "Subject: \"%s\"\n" #| "From: %s\n" #| "Groups: %s\n" #| "Sourcefile: %s\n" msgid "" "\n" "Upload\n" "\n" "Subject: “%s”\n" "From: %s\n" "Groups: %s\n" "Sourcefile: %s\n" msgstr "" "\n" "Otpremi\n" "\n" "Tema: „%s“\n" "Šalje: %s\n" "Grupe: %s\n" "Izvor: %s\n" #: pan/gui/task-pane.cc:133 #, c-format #| msgid "" #| "\n" #| "Download\n" #| "\n" #| "Subject: \"%s\"\n" #| "From: %s\n" #| "Date: %s\n" #| "Groups: %s\n" #| "Save Path: %s\n" msgid "" "\n" "Download\n" "\n" "Subject: “%s”\n" "From: %s\n" "Date: %s\n" "Groups: %s\n" "Save Path: %s\n" msgstr "" "\n" "Preuzmi\n" "\n" "Tema: \"%s\"\n" "Šalje: %s\n" "Datum: %s\n" "Grupe: %s\n" "Putanja čuvanja: %s\n" #: pan/gui/task-pane.cc:135 msgid "unknown" msgstr "nepoznato" #: pan/gui/task-pane.cc:303 msgid "Choose New Destination for Selected Tasks" msgstr "Izaberite novo odredište za izabrane zadatke" #: pan/gui/task-pane.cc:457 #, c-format msgid "Pan: Tasks (%d Queued, %d Running, %d Stopped)" msgstr "Pan: Zadaci (zakazanih: %d, pokretnutih: %d, zaustavljenih: %d)" #: pan/gui/task-pane.cc:459 #, c-format msgid "Pan: Tasks (%d Queued, %d Running)" msgstr "Pan: Zadaci (zakazanih: %d, pokretnutih: %d)" #: pan/gui/task-pane.cc:461 msgid "Pan: Tasks" msgstr "Pan: Zadaci" #: pan/gui/task-pane.cc:486 #, c-format msgid "%lu selected, %s" msgstr "izabranih: %lu, %s" #: pan/gui/task-pane.cc:550 msgid "Running" msgstr "Radim" #: pan/gui/task-pane.cc:551 msgid "Decoding" msgstr "Dekodiram" #: pan/gui/task-pane.cc:553 msgid "Queued for Decode" msgstr "Zakazano za dekodiranje" #: pan/gui/task-pane.cc:554 msgid "Queued for Encode" msgstr "Zakazano za kodiranje" #: pan/gui/task-pane.cc:555 msgid "Queued" msgstr "Zakazano" #: pan/gui/task-pane.cc:556 msgid "Stopped" msgstr "Zaustavljeno" #: pan/gui/task-pane.cc:557 msgid "Removing" msgstr "Uklanjam" #: pan/gui/task-pane.cc:586 #, c-format msgid "%d%% Done" msgstr "Urađeno je %d%%" #: pan/gui/task-pane.cc:592 #, c-format #| msgid "%d:%02d:%02d Remaining (%d @ %lu KiB/s)" msgid "%d∶%02d∶%02d Remaining (%d @ %lu KiB/s)" msgstr "%d∶%02d∶%02d Preostaje (%d @ %lu KiB/s)" #: pan/gui/task-pane.cc:687 pan/gui/task-pane.cc:688 msgid "Move To Top" msgstr "Premestite na vrh" #: pan/gui/task-pane.cc:692 pan/gui/task-pane.cc:693 msgid "Move To Bottom" msgstr "Premestite na dno" #: pan/gui/task-pane.cc:697 pan/gui/task-pane.cc:698 msgid "Show Task Information" msgstr "Prikažite podatke o zadatku" #: pan/gui/task-pane.cc:702 pan/gui/task-pane.cc:703 msgid "Stop Task" msgstr "Zaustavite zadatak" #: pan/gui/task-pane.cc:707 pan/gui/task-pane.cc:708 msgid "Delete Task" msgstr "Obrišite zadatak" #: pan/gui/task-pane.cc:712 pan/gui/task-pane.cc:713 msgid "Restart Task" msgstr "Ponovo pokrenite zadatak" #: pan/gui/task-pane.cc:717 pan/gui/task-pane.cc:718 msgid "Change Download Destination" msgstr "Promeni odredište preuzimanja" #: pan/gui/task-pane.cc:1028 msgid "_Online" msgstr "_Poveži se" #: pan/gui/task-pane.cc:1045 msgid "Restart Tasks" msgstr "Ponovo pokrenite zadatke" #: pan/gui/task-pane.cc:1047 msgid "Stop Tasks" msgstr "Zaustavite zadatke" #: pan/gui/task-pane.cc:1049 msgid "Delete Tasks" msgstr "Obrišite zadatke" #: pan/gui/task-pane.cc:1055 msgid "Show popups" msgstr "Prikaži oblačiće" #: pan/gui/url.cc:123 #, c-format msgid "Error starting URL: %s (Command was: %s)" msgstr "Greška pokretanja adrese: %s (Naredba beše: %s)" #: pan/tasks/decoder.cc:117 #, c-format #| msgid "Couldn't save file \"%s\": %s" msgid "Couldn’t save file “%s”: %s" msgstr "Ne mogu da sačuvam datoteku „%s“: %s" #: pan/tasks/decoder.cc:139 pan/tasks/encoder.cc:136 msgid "Error initializing uulib" msgstr "Greška pokretanja „uulib“-a" #: pan/tasks/decoder.cc:154 pan/tasks/socket-impl-gio.cc:360 #: pan/tasks/socket-impl-openssl.cc:642 #, c-format msgid "Error reading from %s: %s" msgstr "Greška čitanja iz „%s“: %s" #: pan/tasks/decoder.cc:194 #, c-format #| msgid "Saved \"%s\"" msgid "Saved “%s”" msgstr "Sačuvao sam „%s“" #: pan/tasks/decoder.cc:201 #, c-format #| msgid "" #| "Error saving \"%s\":\n" #| "%s." msgid "" "Error saving “%s”:\n" "%s." msgstr "" "Greška čuvanja „%s“:\n" "%s." #: pan/tasks/decoder.cc:314 pan/tasks/task-article.cc:354 #, c-format msgid "Decoding %s" msgstr "Dekodiram „%s“" #: pan/tasks/encoder.cc:103 pan/tasks/encoder.cc:154 #, c-format msgid "Error loading %s from cache." msgstr "Greška učitavanja „%s“ iz ostave." #: pan/tasks/encoder.cc:176 #, c-format msgid "Error encoding %s: %s" msgstr "Greška kodiranja „%s“: %s" #: pan/tasks/encoder.cc:266 #, c-format msgid "Encoding %s" msgstr "Kodiram „%s“" #: pan/tasks/nntp.cc:150 #, c-format msgid "%s requires a username, but none is set." msgstr "„%s“ zahteva korisničko ime, ali ono nije podešeno." #: pan/tasks/nntp.cc:163 #, c-format msgid "%s requires a password, but none is set." msgstr "„%s“ zahteva lozinku, ali ona nije podešena." #: pan/tasks/nntp.cc:247 #, c-format #| msgid "Sending \"%s\" to %s returned an error: %s" msgid "Sending “%s” to %s returned an error: %s" msgstr "Slanje „%s“ na %s je dalo grešku: %s" #: pan/tasks/nntp.cc:270 #, c-format #| msgid "Sending \"%s\" to %s returned an unrecognized response: \"%s\"" msgid "Sending “%s” to %s returned an unrecognized response: “%s”" msgstr "Slanje „%s“ na %s je dalo nepoznat odgovor: \"%s\"" #: pan/tasks/nntp-pool.cc:235 #, c-format #| msgid "Unable to connect to \"%s\"" msgid "Unable to connect to “%s”" msgstr "Ne mogu da se povežem sa „%s“" #: pan/tasks/queue.cc:778 pan/tasks/queue.cc:806 pan/tasks/queue.cc:833 msgid "No space left on device." msgstr "Nema više mesta na uređaju." #: pan/tasks/socket-impl-gio.cc:173 pan/tasks/socket-impl-gio.cc:211 #: pan/tasks/socket-impl-openssl.cc:214 pan/tasks/socket-impl-openssl.cc:252 #, c-format #| msgid "Error connecting to \"%s\"" msgid "Error connecting to “%s”" msgstr "Greška povezivanja sa „%s“" #: pan/tasks/socket-impl-gio.cc:359 pan/tasks/socket-impl-openssl.cc:641 msgid "Unknown Error" msgstr "Nepoznata greška" #: pan/tasks/task-article.cc:62 pan/tasks/task-article.cc:160 #, c-format msgid "Saving %s" msgstr "Čuvam „%s“" #: pan/tasks/task-article.cc:64 #, c-format msgid "Reading %s" msgstr "Čitam „%s“" #: pan/tasks/task-article.cc:326 #, c-format #| msgid "" #| "Article \"%s\" is incomplete -- the news server(s) don't have part %s" msgid "Article “%s” is incomplete — the news server(s) don’t have part %s" msgstr "Članak „%s“ nije potpun — server nema deo „%s“" #: pan/tasks/task-groups.cc:41 #, c-format #| msgid "Getting group list from \"%s\"" msgid "Getting group list from “%s”" msgstr "Dobavljam spisak grupe sa „%s“" #: pan/tasks/task-groups.cc:134 #, c-format msgid "Fetched %lu Groups" msgstr "Dovukao sam %lu grupe" #: pan/tasks/task-post.cc:35 #, c-format #| msgid "Posting \"%s\"" msgid "Posting “%s”" msgstr "Objavljujem „%s“" #: pan/tasks/task-post.cc:80 #, c-format #| msgid "Posting of \"%s\" failed: %s" msgid "Posting of “%s” failed: %s" msgstr "Nije uspelo objavljivanje „%s“: %s" #: pan/tasks/task-post.cc:85 #, c-format #| msgid "Posting of \"%s\" successful: %s" msgid "Posting of “%s” successful: %s" msgstr "Objavljivanje „%s“ je uspelo: %s" #: pan/tasks/task-upload.cc:51 #, c-format msgid "Uploading %s" msgstr "Otpremam „%s“" #: pan/tasks/task-upload.cc:265 #, c-format #| msgid "Uploading %s - Part %d of %d" msgid "Uploading %s — Part %d of %d" msgstr "Otpremam „%s“ — %d. deo od %d" #: pan/tasks/task-upload.cc:267 #, c-format #| msgid "Uploading message body with subject \"%s\"" msgid "Uploading message body with subject “%s”" msgstr "Otpremam razradu poruke sa temom „%s“" #: pan/tasks/task-upload.cc:324 #, c-format msgid "Posting of file %s (part %d of %d) failed: No posts allowed by server." msgstr "" "Nije uspelo objavljivanje datoteke „%s“ (%d. deo od %d): Server ne dozvoljava " "objavljivanja." #: pan/tasks/task-upload.cc:332 #, c-format msgid "Posting of file %s (part %d of %d) failed: %s" msgstr "Nije uspelo objavljivanje datoteke „%s“ (%d. deo od %d): %s" #: pan/tasks/task-upload.cc:342 pan/tasks/task-upload.cc:349 #, c-format msgid "Posting of file %s (part %d of %d) successful: %s" msgstr "Uspelo je objavljivanje datoteke „%s“ (%d. deo od %d): %s" #: pan/tasks/task-upload.cc:359 #, c-format msgid "Posting of file %s successful: %s" msgstr "Objavljivanje datoteke „%s“ je uspelo: %s" #: pan/tasks/task-upload.cc:363 #, c-format msgid "" "Posting of file %s not completely successful: Check the log (right-click " "list item)." msgstr "" "Objavljivanje datoteke „%s“ nije u potpunosti uspelo: Proverite dnevnik " "(desnim tasterom miša na stavku spiska)." #: pan/tasks/task-upload.cc:380 #, c-format msgid "" "Posting of file %s not successful: Check the log (right-click list item)." msgstr "" "Objavljivanje datoteke „%s“ nije uspešno: Proverite dnevnik (desnim tasterom " "miša na stavku spiska)." #: pan/tasks/task-xover.cc:83 #, c-format #| msgid "Getting all headers for \"%s\"" msgid "Getting all headers for “%s”" msgstr "Dobavljam sva zaglavlja za „%s“" #: pan/tasks/task-xover.cc:86 #, c-format #| msgid "Getting new headers for \"%s\"" msgid "Getting new headers for “%s”" msgstr "Dobavljam nova zaglavlja za „%s“" #. SAMPLE #: pan/tasks/task-xover.cc:90 #, c-format #| msgid "Sampling headers for \"%s\"" msgid "Sampling headers for “%s”" msgstr "Uzorkujem zaglavlja za „%s“" #: pan/tasks/task-xover.cc:431 #, c-format msgid "%s (%lu parts, %lu articles)" msgstr "%s (br. delova: %lu, br. članaka: %lu)" #: pan/tasks/task-xover.cc:505 #, c-format #| msgid "Getting new headers for \"%s\" done." msgid "Getting new headers for “%s” done." msgstr "Dobavljanje novih zaglavlja za „%s“ je obavljeno." #: pan/tasks/task-xoverinfo.cc:78 #, c-format #| msgid "Getting header counts for \"%s\"" msgid "Getting header counts for “%s”" msgstr "Dobavljam broj zaglavlja za „%s“" #: pan/usenet-utils/filter-info.cc:217 #| msgid "article doesn't have attachments" msgid "article doesn’t have attachments" msgstr "članak nema priloge" #: pan/usenet-utils/filter-info.cc:221 msgid "the article has attachments" msgstr "članak ima priloge" #: pan/usenet-utils/filter-info.cc:225 #| msgid "the article isn't cached locally" msgid "the article isn’t cached locally" msgstr "članak nije pričuvan lokalno" #: pan/usenet-utils/filter-info.cc:229 msgid "the article is cached locally" msgstr "članak je pričuvan lokalno" #: pan/usenet-utils/filter-info.cc:233 #| msgid "the article wasn't posted by you" msgid "the article wasn’t posted by you" msgstr "članak niste vi objavili" #: pan/usenet-utils/filter-info.cc:237 msgid "the article was posted by you" msgstr "članak ste vi objavili" #: pan/usenet-utils/filter-info.cc:241 msgid "the article has been read" msgstr "članak je pročitan" #: pan/usenet-utils/filter-info.cc:245 #| msgid "the article hasn't been read" msgid "the article hasn’t been read" msgstr "članak nije pročitan" #: pan/usenet-utils/filter-info.cc:249 #, c-format msgid "the article is less than %ld bytes long" msgstr "dužina članka je manja od %ld bajta" #: pan/usenet-utils/filter-info.cc:254 #, c-format msgid "the article is at least %ld bytes long" msgstr "dužina članka je barem %ld bajta" #: pan/usenet-utils/filter-info.cc:259 #, c-format msgid "the article is less than %ld lines long" msgstr "dužina članka je manja od %ld reda" #: pan/usenet-utils/filter-info.cc:264 #, c-format msgid "the article is at least %ld lines long" msgstr "dužina članka je barem %ld reda" #: pan/usenet-utils/filter-info.cc:269 #, c-format msgid "the article is less than %ld days old" msgstr "članak je mlađi od %ld dana" #: pan/usenet-utils/filter-info.cc:274 #, c-format msgid "the article is at least %ld days old" msgstr "članak je star barem %ld dana" #: pan/usenet-utils/filter-info.cc:279 #, c-format msgid "the article was posted to less than %ld groups" msgstr "članak je objavljen na manje od %ld grupe" #: pan/usenet-utils/filter-info.cc:284 #, c-format msgid "the article was posted to at least %ld groups" msgstr "članak je objavljen barem na %ld grupe" #: pan/usenet-utils/filter-info.cc:289 #, c-format #| msgid "the article's score is less than %ld" msgid "the article’s score is less than %ld" msgstr "učinak članka je manji od %ld" #: pan/usenet-utils/filter-info.cc:294 #, c-format #| msgid "the article's score is %ld or higher" msgid "the article’s score is %ld or higher" msgstr "učinak članka je %ld ili veći" #: pan/usenet-utils/filter-info.cc:303 pan/usenet-utils/filter-info.cc:313 #, c-format #| msgid "%s doesn't contain \"%s\"" msgid "%s doesn’t contain “%s”" msgstr "„%s“ ne sadrži „%s“" #: pan/usenet-utils/filter-info.cc:304 pan/usenet-utils/filter-info.cc:314 #, c-format #| msgid "%s isn't \"%s\"" msgid "%s isn’t “%s”" msgstr "„%s“ nije „%s“" #: pan/usenet-utils/filter-info.cc:305 pan/usenet-utils/filter-info.cc:315 #, c-format #| msgid "%s doesn't begin with \"%s\"" msgid "%s doesn’t begin with “%s”" msgstr "„%s“ ne počinje sa „%s“" #: pan/usenet-utils/filter-info.cc:306 pan/usenet-utils/filter-info.cc:316 #, c-format #| msgid "%s doesn't end with \"%s\"" msgid "%s doesn’t end with “%s”" msgstr "„%s“ se ne završava sa „%s“" #: pan/usenet-utils/filter-info.cc:307 pan/usenet-utils/filter-info.cc:317 #, c-format #| msgid "%s doesn't match the regex \"%s\"" msgid "%s doesn’t match the regex “%s”" msgstr "„%s“ ne odgovara regularnom izrazu „%s“" #: pan/usenet-utils/filter-info.cc:329 #, c-format #| msgid "%s contains \"%s\"" msgid "%s contains “%s”" msgstr "„%s“ sadrži „%s“" #: pan/usenet-utils/filter-info.cc:330 #, c-format #| msgid "%s is \"%s\"" msgid "%s is “%s”" msgstr "„%s“ jeste „%s“" #: pan/usenet-utils/filter-info.cc:331 #, c-format #| msgid "%s begins with \"%s\"" msgid "%s begins with “%s”" msgstr "„%s“ počinje sa „%s“" #: pan/usenet-utils/filter-info.cc:332 #, c-format #| msgid "%s ends with \"%s\"" msgid "%s ends with “%s”" msgstr "„%s“ se završava sa „%s“" #: pan/usenet-utils/filter-info.cc:333 #, c-format #| msgid "%s matches the regex \"%s\"" msgid "%s matches the regex “%s”" msgstr "„%s“ odgovara regularnom izrazu „%s“" #: pan/usenet-utils/filter-info.cc:339 msgid "Any of these tests fail:" msgstr "Neka od ovih proba nije uspela:" #: pan/usenet-utils/filter-info.cc:346 msgid "All of these tests pass:" msgstr "Sve ove probe su prošle:" #: pan/usenet-utils/filter-info.cc:353 msgid "None of these tests pass:" msgstr "Nijedna od ovih proba nije prošla:" #: pan/usenet-utils/filter-info.cc:360 msgid "Any of these tests pass:" msgstr "Neka od ovih proba je prošla:" #: pan/usenet-utils/gnksa.cc:880 #, c-format #| msgid "No email address provided; generating message-id with domain \"%s\"" msgid "No email address provided; generating message-id with domain “%s”" msgstr "Niste dostavili adresu el. pošte; stvaram ib poruke sa domenom „%s“" #: pan/usenet-utils/message-check.cc:124 msgid "Warning: Reply seems to be top-posted." msgstr "Upozorenje: Izgleda da je odgovor objavljen poruke." #: pan/usenet-utils/message-check.cc:145 #| msgid "Warning: The signature marker should be \"-- \", not \"--\"." msgid "Warning: The signature marker should be “-- ”, not “--”." msgstr "Upozorenje: Razdvajač potpisa treba da bude „-- “ a ne „--“." #: pan/usenet-utils/message-check.cc:162 msgid "Warning: Signature prefix with no signature." msgstr "Upozorenje: Prefiks potpisa nema potpis." #: pan/usenet-utils/message-check.cc:167 msgid "Warning: Signature is more than 4 lines long." msgstr "Upozorenje: Potpis je duži od 4 reda." #: pan/usenet-utils/message-check.cc:172 msgid "Warning: Signature is more than 80 characters wide." msgstr "Upozorenje: Potpis je duži od 80 znakova." #: pan/usenet-utils/message-check.cc:198 #, c-format msgid "Warning: %d line is more than 80 characters wide." msgid_plural "Warning: %d lines are more than 80 characters wide." msgstr[0] "Upozorenje: %d red je duži od 80 znakova." msgstr[1] "Upozorenje: %d reda su duža od 80 znakova." msgstr[2] "Upozorenje: %d redova je duže od 80 znakova." msgstr[3] "Upozorenje: Jedan red je duži od 80 znakova." #: pan/usenet-utils/message-check.cc:223 msgid "Error: Message is empty." msgstr "Greška: Poruka je prazna." #: pan/usenet-utils/message-check.cc:258 msgid "Warning: The message is entirely quoted text!" msgstr "Upozorenje: Poruka je u potpunosti citirani tekst!" #: pan/usenet-utils/message-check.cc:259 msgid "Warning: The message is mostly quoted text." msgstr "Upozorenje: Poruka je većim delom citirani tekst." #: pan/usenet-utils/message-check.cc:309 msgid "Error: Message appears to have no new content." msgstr "Greška: Poruka izgleda kao da ne sadrži novi sadržaj." #: pan/usenet-utils/message-check.cc:344 pan/usenet-utils/message-check.cc:383 #, c-format #| msgid "" #| "Warning: The posting profile's server doesn't carry newsgroup\n" #| "\t\"%s\".\n" #| "\tIf the group name is correct, switch profiles in the \"From:\"\n" #| "\tline or edit the profile with \"Edit|Manage Posting Profiles\"." msgid "" "Warning: The posting profile’s server doesn’t carry newsgroup\n" "\t“%s”.\n" "\tIf the group name is correct, switch profiles in the “From:”\n" "\tline or edit the profile with “Edit → Manage Posting Profiles”." msgstr "" "Upozorenje: Server profila objavljivanja ne prenosi pričaonicu\n" "\t„%s“.\n" "\tAko je naziv grupe ispravan, promenite profile u redu „Šalje:“\n" "\tili uredite profil u izborniku „Uredi → Uredi profile objavljivanja“." #: pan/usenet-utils/message-check.cc:355 msgid "Warning: Following-Up to too many groups." msgstr "Upozorenje: Previše grupa za praćenje." #: pan/usenet-utils/message-check.cc:366 msgid "Error: No Subject specified." msgstr "Greška: Nije navedena tema." #: pan/usenet-utils/message-check.cc:395 #, c-format #| msgid "Warning: Group \"%s\" is read-only." msgid "Warning: Group “%s” is read-only." msgstr "Upozorenje: Grupa „%s“ je samo za čitanje." #: pan/usenet-utils/message-check.cc:404 msgid "Error: Posting to a very large number of groups." msgstr "Greška: Objavljujem na vrlo veliki broj grupa." # bug(slobo): verovatno izveštaj o dostavi #: pan/usenet-utils/message-check.cc:409 msgid "Warning: Posting to a large number of groups." msgstr "Upozorenje: Objavljujem na veliki broj grupa." #: pan/usenet-utils/message-check.cc:416 msgid "Warning: Crossposting without setting Followup-To header." msgstr "Upozorenje: Unakrsno objavljivanje bez podešavanja zaglavlja „Prati“." #: pan/usenet-utils/message-check.cc:441 msgid "Error: Bad email address." msgstr "Greška: Loša adresa el. pošte." #: pan/usenet-utils/message-check.cc:450 msgid "Warning: Most newsgroups frown upon HTML posts." msgstr "Upozorenje: Većina pričaonica iz HTML objava." #: pan/usenet-utils/message-check.cc:490 msgid "Error: No Recipients." msgstr "Greška: Nema primalaca." #: pan/usenet-utils/scorefile.cc:304 #, c-format #| msgid "" #| "Error reading score in %*.*s, line %d: expected 'Expires: MM/DD/YYYY' or " #| "'Expires: DD-MM-YYYY'." msgid "" "Error reading score in %*.*s, line %d: expected “Expires: MM/DD/YYYY” or " "“Expires: DD-MM-YYYY”." msgstr "" "Greška čitanja učinka u %*.*s, %d. red: očekivah „Ističe: MM/DD/GGGG“ ili " "„Ističe: DD-MM-GGGG“." #: pan/usenet-utils/scorefile.cc:307 #, c-format msgid "Expired old score from %*.*s, line %d" msgstr "Stari učinak je istekao od %*.*s, %d. red" #: pan/usenet-utils/scorefile.cc:380 #, c-format msgid "Error reading score in %*.*s, line %d: unexpected line." msgstr "Greška čitanja učinka u %*.*s, %d. red: neočekivani red." #: pan/usenet-utils/scorefile.cc:429 #, c-format #| msgid "Read %lu scoring rules in %lu sections from \"%s\"" msgid "Read %lu scoring rules in %lu sections from “%s”" msgstr "Čitam %lu pravila ocenjivanja u %lu odeljka iz „%s“" #: pan/usenet-utils/ssl-utils.h:189 #, c-format #| msgid "Error printing the server certificate for '%s'" msgid "Error printing the server certificate for “%s”" msgstr "Greška ispisivanja uverenja servera za „%s“" #: pan/usenet-utils/ssl-utils.h:205 #, c-format #| msgid "" #| "The current server '%s' sent this security certificate:\n" #| "\n" msgid "" "The current server “%s” sent this security certificate:\n" "\n" msgstr "" "Tekući server „%s“ je poslao ovo bezbednosno uverenje:\n" "\n" #: pan/usenet-utils/ssl-utils.h:206 #, c-format #| msgid "" #| "Certificate information for server '%s':\n" #| "\n" msgid "" "Certificate information for server “%s”:\n" "\n" msgstr "" "Podaci uverenja za server „%s“:\n" "\n" #: pan/usenet-utils/ssl-utils.h:208 #, c-format msgid "" "%sIssuer information:\n" "%s\n" "Valid until: %s\n" "\n" "Not valid before: %s\n" "\n" msgstr "" "%sPodaci o izdavaču:\n" "%s\n" "Važi do: %s\n" "\n" "Ne važi pre: %s\n" "\n" #: pan/usenet-utils/text-massager.cc:399 msgid "> [quoted text muted]" msgstr "> [citirani tekst utišan]" #: pan/usenet-utils/text-massager.cc:581 msgid "no_name" msgstr "bez_imena" #: pan/usenet-utils/text-massager.cc:582 msgid "no_mail" msgstr "nema_pošte" #~ msgid "_Save Articles..." #~ msgstr "_Sačuvaj članke..." #~ msgid "Save Articles..." #~ msgstr "Sačuvajte članke..." #~ msgid "Save Articles from Selected _NZB..." #~ msgstr "Sačuvaj članke iz izabranih _NZB-a..." #~ msgid "Save Articles to an NZB _File..." #~ msgstr "Sačuvaj članke u NZB _datoteku..." #~ msgid "_Import NZB Files..." #~ msgstr "_Uvezi NZB datoteke..." #~ msgid "isn't" #~ msgstr "nije" #~ msgid "GNOME Keyring" #~ msgstr "Gnomov privezak ključeva" #~ msgid "Store passwords in GNOME Keyring" #~ msgstr "Sačuvaj lozinke u Gnomovom privesku ključeva" #~ msgid "_1. Header Pane" #~ msgstr "_1. Površ zaglavlja" #~ msgid "_2. Search Pane" #~ msgstr "_2. Površ pretrage" #~ msgid "" #~ "Your copy of libpcre doesn't support UTF-8. UTF-8 regular expressions " #~ "may fail." #~ msgstr "" #~ "Vaš „libpcre“ primerak ne podržava UTF-8. UTF-8 regularni izrazi mogu " #~ "biti neuspešni." #~ msgid "Get New Headers for Subscribed Groups" #~ msgstr "Dobavite nova zaglavlja za praćene grupe" #~ msgid "Abbreviate _Names in Group Pane" #~ msgstr "Skrati _nazive u površi grupe" #~ msgid "Match Only Articles Posted by Me" #~ msgstr "Poklopi samo članke koje sam ja objavio" #~ msgid "%u Tasks Running, %u Tasks Total" #~ msgstr "Pokrenutih zadataka: %u, ukupno zadataka: %u" #~ msgid "Wrap the Article Body to 80 Columns" #~ msgstr "Preliomi razradu člana na 80 stubaca" #~ msgid "Use _Monospace Font in Body Pane" #~ msgstr "Koristi slova stalne _širine u površi razrade" #~ msgid "%d connections totaling %.1f KiB per second" #~ msgstr "%d veze sa ukupno %.1f KiB u sekundi" #~ msgid "" #~ "Used when email replies to your posts should go somewhere other than the " #~ "email address above. Because Reply-To: is relatively difficult for " #~ "spammers to harvest, it's polite give your email address here if you gave " #~ "an invalid email address above." #~ msgstr "" #~ "Koristi se kada odgovori na vašu poruku treba da budu poslati na neku " #~ "drugu adresu umesto na gore navedenu. Zato što je spamerima teže da " #~ "iskoriste polje „Odgovori“, a ipak bi bilo učtivo sa vaše strane da " #~ "prikažete pravu adresu u ovom polju ako ste gore naveli netačnu." #~ msgid "Could not decode article - file may be corrupt/incomplete" #~ msgstr "" #~ "Ne mogu da dekodiram poruku — datoteka je možda oštećna ili nepotpuna" #~ msgid "Checksum for `%s' part %d failed - file is corrupt" #~ msgstr "Provera zbira za „%s“ %d. deo nije uspela — datoteka je oštećna" #~ msgid "Checksum for `%s' failed - file may be corrupt" #~ msgstr "Provera zbira za „%s“ nije uspela — datoteka je možda oštećna" #~ msgid "" #~ "Unsupported data version (%d) for server properties. Are you running an " #~ "old version of Pan by accident?" #~ msgstr "" #~ "Nepodržano izdanje podataka (%d) za svojstva servera. Da li možda greškom " #~ "koristite staro izdanje PAN-a?" #~ msgid "" #~ "Unable to cancel article: Couldn't find matching article in folder `pan." #~ "sent'!" #~ msgstr "" #~ "Ne mogu da otkažem članak: Ne mogu da nađem odgovarajući članak u " #~ "fascikli „pan.sent“!" #~ msgid "" #~ "Unable to supersede article: Couldn't find matching article in folder " #~ "`pan.sent'!" #~ msgstr "" #~ "Ne mogu da nadomestim članak: Ne mogu da nađem odgovarajući članak u " #~ "fascikli „pan.sent“!" #~ msgid "" #~ "Type in a search string and press ENTER.\n" #~ "Wildcards are allowed." #~ msgstr "" #~ "Ukucajte u polje za pretragu i pritisnite UNESI.\n" #~ "Dozvoljena je upotreba džokerskih znakova." #~ msgid "/---" #~ msgstr "/---" #~ msgid "unknown@spammesenseless.com" #~ msgstr "nepoznato@spammesenseless.com" #~ msgid "Decoded \"%s\" from group \"%*.*s\", \"%s\"" #~ msgstr "Dekodirano „%s“ iz grupe „%*.*s“, „%s“" #~ msgid "" #~ "Skipped %d groups due to possible corruption in \"%s\" and \"%s\". You " #~ "may want to delete these files and get a new grouplist from your news " #~ "server." #~ msgstr "" #~ "Preskočih %d grupe zbog mogućeg oštećenja u „%s“ i „%s“. Verovatno želite " #~ "da obrišete ove datoteke i preuzmete novi spisak grupa sa servera." #~ msgid "Loaded %d groups for server \"%s\" in %.1f seconds (%.0f groups/sec)" #~ msgstr "Učitah %d grupe sa servera „%s“ za %.1f sekunde (%.0f grupe/sek.)" #~ msgid "Error saving list of groups to \"%s\" - is the disk full?" #~ msgstr "Greška čuvanja spiska grupa u „%s“ — da li je disk pun?" #~ msgid "Saved %d groups in \"%s\" in %.1f seconds (%.0f groups/sec)" #~ msgstr "Sačuvah %d grupe u „%s“ za %.1f sekunde (%.0f grupe/sek.)" #~ msgid "" #~ "Pan skipped %d corrupt headers from the local cache for group \"%*.*s\"." #~ msgstr "" #~ "Pan je preskočio %d oštećena zaglavlja iz lokalne ostave za grupu „%*.*s“." #~ msgid "You may want to empty this group and download fresh headers." #~ msgstr "Možda želite da ispraznite ovu grupu i preuzmete sveža zaglavlja." #~ msgid "Unable to save headers for group \"%*.*s\" - is the disk full?" #~ msgstr "Ne mogu da sačuvam zaglavlja za grupu „%*.*s“ — da li je disk pun?" #~ msgid "ERROR: Must have one author in From: line" #~ msgstr "GREŠKA: Mora da postoji autor u redu „Šalje:“" #~ msgid "Exported %d groups (%d subscribed) to \"%s\"" #~ msgstr "Izvezoh %d grupe (%d koje pratite) u „%s“" #~ msgid "" #~ "Pan %s Translations\n" #~ "%s\n" #~ "\n" #~ "Pan %s Code or Patches\n" #~ "%s\n" #~ "\n" #~ "Pan %s Suggestions and Testing\n" #~ "%s\n" #~ msgstr "" #~ "Lokalizacija izdanja %s\n" #~ "%s\n" #~ "\n" #~ "Kôd i/ili zakrpe izdanja %s\n" #~ "%s\n" #~ "\n" #~ "Predlozi i testiranje izdanja %s\n" #~ "%s\n" #~ msgid "Pan: Download Headers for group `%s'" #~ msgstr "Pan: Preuzimam zaglavlja za grupu „%s“" #~ msgid "How should you appear when posting articles?" #~ msgstr "Kako želite da budete prijavljeni kada šaljete članke?" #~ msgid "Short name for Pan to show, e.g. \"mynewsserver\"" #~ msgstr "Kratak naziv koji će Pan prikazivati, npr. „mojserver“" #~ msgid "Short _name for Pan to show:" #~ msgstr "Kratak _naziv za prikazivanje:" #~ msgid "" #~ "Thank you for trying Pan!\n" #~ " \n" #~ "If you are new to Usenet,\n" #~ "%s\n" #~ "is a starting point to see what Usenet is,\n" #~ "where to find a free news server,\n" #~ "and how to use Pan.\n" #~ " \n" #~ "Since this is your first time running Pan,\n" #~ "we'll need to gather some information.\n" #~ msgstr "" #~ "Hvala vam što isprobavate Pana!\n" #~ "\n" #~ "Ako po prvi put koristite Juznet,\n" #~ "%s je\n" #~ "pravo mesto za upoznavanje sa Juznetom,\n" #~ "za pronalaženje besplatnih servera vesti,\n" #~ "i za učenje rada sa Panom.\n" #~ "\n" #~ "Kako je ovo prvi put da ste pokrenuli Pana,\n" #~ "treba da unesete neke podatke.\n" #~ msgid "" #~ "You have successfully entered all of\n" #~ "the information required to set up Pan.\n" #~ "\n" #~ "To save these settings, click Save." #~ msgstr "" #~ "Uspešno ste uneli sve podatke\n" #~ "potrebne za podešavanje Pana.\n" #~ "\n" #~ "Da sačuvate ova podešavanja, pritisnite „Sačuvaj“." #~ msgid " (No conditions -- no articles will match)" #~ msgstr " (Bez uslova —> neće odgovarati nijedna poruka)" #~ msgid " (No conditions -- all articles will match)" #~ msgstr " (Bez uslova —> sve poruke će odgovarati)" #~ msgid "Any Of" #~ msgstr "Bilo koji uslov" #~ msgid "Article has at _least N lines:" #~ msgstr "Poruka ima najmanje N _linija:" #~ msgid "" #~ "This filter is still used by the following rules:\n" #~ "%s\n" #~ "Please remove this dependency first." #~ msgstr "" #~ "Ovaj propusnik se još uvek koristi pravilom:\n" #~ "%s\n" #~ "Prvo uklonite ovu zavisnost." #~ msgid "ALL OF:" #~ msgstr "SVAKA:" #~ msgid "ANY OF:" #~ msgstr "NEKA:" #~ msgid "Article has complete or incomplete attachments" #~ msgstr "Poruka sadrži potpune ili nepotpune priloge" #~ msgid "Article is %d or more bytes long" #~ msgstr "Poruka je veličine %d ili više bajta" #~ msgid "Article is crossposted to at least %d groups" #~ msgstr "Poruka je objavljena barem na %d grupe" #~ msgid "Article was posted in the last %d days" #~ msgstr "Poruka je objavljena u poslednja %d dana" #~ msgid "Article is %d or more lines long" #~ msgstr "Poruka je dužine %d ili više reda" #~ msgid "Article is unread or old" #~ msgstr "Poruka je nepročitana ili stara" #~ msgid "Xref" #~ msgstr "Huputa" #~ msgid "Score filter will match anything" #~ msgstr "Propusniku bodovanja će odgovarati bilo šta" #~ msgid "Score filter will match nothing" #~ msgstr "Propusniku bodovanja neće odgovarati ništa" #~ msgid "" #~ "Loaded %d score entries in %d sections in %.1f seconds (%.0f entries/sec)" #~ msgstr "" #~ "Učitah %d unosa bodovanja u %d odeljka za %.1f sekunde (%.0f unosa/sek.)" #~ msgid "Scored %d entries in %.1f seconds (%.0f articles/sec)" #~ msgstr "Bodovao sam %d poruke za %.1f sekunde (%.0f poruke/sek.)" #~ msgid "Scorefile entry removed -- old scorefile \"%s\" backed up as \"%s\"" #~ msgstr "" #~ "Stavka datoteke bodovanje je uklonjena —— od stare datoteke bodovanja „%s“ " #~ "napravljena je rezerva kao „%s“" #~ msgid "" #~ "We don't have a list of groups for \"%*.*s\".\n" #~ "Shall we download one?" #~ msgstr "" #~ "Nemamo spisak grupa na serveru „%*.*s“.\n" #~ "Da li da preuzmem jedan?" #~ msgid "" #~ "Type in a group search string and press ENTER. Wildcards are allowed." #~ msgstr "" #~ "Ukucajte u pretragu grupe i pritisnite UNESI. Dozvoljena je upoterba " #~ "džokerskih znakova." #~ msgid "/_File/_Manual Decode..." #~ msgstr "/_Datoteka/_Ručno dekodiranje..." #~ msgid "/_File/_Cancel Last Task" #~ msgstr "/_Datoteka/_Otkaži poslednji zadatak" #~ msgid "/Filte_r/Match Only _Cached Articles" #~ msgstr "/_Propusnik/Prikaži samo poruke u _ostavi" #~ msgid "/Filte_r/Match Only _Text Articles" #~ msgstr "/_Propusnik/Prikaži samo _tekstualne poruke" #~ msgid "/Filte_r/Match Only _Binary Attachment Articles" #~ msgstr "/_Propusnik/Prikaži samo poruke sa _binarnim prilozima" #~ msgid "/Filte_r/Match Only _My Articles" #~ msgstr "/_Propusnik/Prikaži samo _moje poruke" #~ msgid "/Filte_r/Match _Unread Articles" #~ msgstr "/_Propusnik/Prikaži _nepročitane poruke" #~ msgid "/_Go/---" #~ msgstr "/_Idi/---" #~ msgid "/_Servers/Get List of _All Groups" #~ msgstr "/_Serveri/Dobavi spisak _svih grupa" #~ msgid "/_Servers/Get List of _New Groups" #~ msgstr "/_Serveri/Dobavi spisak _novih grupa" #~ msgid "/_Newsgroups/Mark Group _Read" #~ msgstr "/_Pričaonice/Označi grupu _pročitanom" #~ msgid "/_Newsgroups/_Delete Group's Articles" #~ msgstr "/_Pričaonice/_Obriši poruke grupe" #~ msgid "/_Newsgroups/Get New _Headers" #~ msgstr "/_Pričaonice/Dobavi nova _zaglavlja" #~ msgid "/_Newsgroups/Get New Headers and _Bodies" #~ msgstr "/_Pričaonice/Dobavi nova zaglavlja i _razrade" #~ msgid "/_Newsgroups/More Download _Options..." #~ msgstr "/_Pričaonice/Još _opcija preuzimanja..." #~ msgid "/_Newsgroups/Refresh Article _Counts" #~ msgstr "/_Pričaonice/Osveži _broj članaka" #~ msgid "/_Newsgroups/Get New Headers in Subscribed _Groups" #~ msgstr "/_Pričaonice/Dobavi nova zaglavlja u praćenim _grupama" #~ msgid "/_Articles/Mark _Read" #~ msgstr "/_Poruke/Obeleži _pročitanom" #~ msgid "/_Articles/D_ownload Flagged" #~ msgstr "/_Poruke/Preuzmi _obeležene za preuzimanje" #~ msgid "/_Articles/U_nflag" #~ msgstr "/_Poruke/Ukloni _oznaku" #~ msgid "/_Articles/_Watch Thread" #~ msgstr "/_Poruke/Prati _raspravu" #~ msgid "/_Articles/_Ignore Thread" #~ msgstr "/_Poruke/_Zanemari rasprave" #~ msgid "/_Articles/_View Article's Scores" #~ msgstr "/_Poruke/Pregledaj _bodovanja poruke" #~ msgid "/_Articles/Supersed_e..." #~ msgstr "/_Poruke/_Smeni poruku..." #~ msgid "/_Post/_Post to Newsgroup..." #~ msgstr "/_Objava/_Objavi u pričaonici..." #~ msgid "/_Post/_Reply by Email..." #~ msgstr "/_Objava/Odgovori _el. poštom..." #~ msgid "/_Post/For_ward by Email..." #~ msgstr "/_Objava/Pre_usmeri el. poštom..." #~ msgid "/_Post/---" #~ msgstr "/_Objava/---" #~ msgid "" #~ "Your real name contained double quotes.\n" #~ "Converting into single quotes." #~ msgstr "" #~ "Vaše ime i prezime sadrži dvostruke znake navoda.\n" #~ "Pretvaram ih u jednostruke." #~ msgid "Post anyway, despite these problems?" #~ msgstr "Da ipak objavim, uprkos ovim problemima?" #~ msgid "Post anyway, despite this problem?" #~ msgstr "Da ipak objavim, uprkos ovom problemu?" #~ msgid "Mime (single-part posts only)" #~ msgstr "Mime (samo pojedinačne poruke)" #~ msgid " (%lu lines in 1 article)" #~ msgstr " (%lu reda u jednoj poruci)" #~ msgid "yEnc (30 percent smaller than UUEnc but less universal)" #~ msgstr "„yEnc“ (30 procenata je manji od „UUEnc“ ali manje univerzalan)" #~ msgid "\"Followup-To: poster\": sending email to author." #~ msgstr "„Prati: objavljivač“: šaljem poruku autoru el. poštom." #~ msgid "\"Followup-To:\" contains an email address: sending email to author." #~ msgstr "„Prati:“ sadrži adresu el. pošte: šaljem el. poštu autoru." #~ msgid "" #~ "ERROR: line %d, column %d uses a character not specified in charset \"%s" #~ "\" -- possibly change your charset in \"More Headers\" to \"%s\" instead?" #~ msgstr "" #~ "GREŠKA: %d. red, %d. stubac sadrži znak koji nije naveden u skupu znakova " #~ "„%s“. Da li želite da promenite skup znakova u „Više zaglavlja“ na „%s“?" #~ msgid "" #~ " --debug Turns on the most commonly-used options for a bug " #~ "report" #~ msgstr "" #~ " --debug Uključuje najčešće korišćene opcije za izveštaj o " #~ "greškama" #~ msgid "" #~ " --mute Debugging tool to send new posts to console, not the " #~ "server" #~ msgstr "" #~ " --mute Alat za pronalaženje grešaka koji šalje poruke u " #~ "konzolu, umesto na server" #~ msgid " --debug-cache Print debugging messages for the article cache" #~ msgstr " --debug-cache Ispisuje poruke pročišćavanja za ostavu poruka" #~ msgid "" #~ " --debug-sockets Print debugging messages when talking to the news " #~ "server" #~ msgstr "" #~ " --debug-sockets Ispisuje poruke pročišćavanja pri komunikaciji sa " #~ "serverom diskusionih grupa" #~ msgid "" #~ " --debug-queue Print debugging messages related to managing tasks" #~ msgstr "" #~ " --debug-queue Ispisuje poruke pročišćavanja u vezi sa dnevnikom " #~ "zadataka" #~ msgid "" #~ " --debug-decode Print debugging messages related to decoding " #~ "attachments" #~ msgstr "" #~ " --debug-decode Ispisuje poruke pročišćavanja u vezi sa dekodiranjem " #~ "priloga" #~ msgid " --debug-newsrc Print debugging messages related to .newsrc files" #~ msgstr "" #~ " --debug-newsrc Ispisuje poruke pročišćavanja u vezi sa „.newsrc“ " #~ "datotekama" #~ msgid "" #~ " --debug-gnksa Print debugging messages related to gnksa correctness" #~ msgstr "" #~ " --debug-gnksa Ispisuje poruke pročišćavanja u vezi sa „gnksa“ " #~ "ispravkama" #~ msgid "" #~ " --debug-trace Print debugging messages when entering/leaving " #~ "functions" #~ msgstr "" #~ " --debug-trace Ispisuje poruke pročišćavanja pri pokretanju/završavanju " #~ "funkcija" #~ msgid "" #~ " --debug-lock Print debugging messages related to threaded gui locks" #~ msgstr "" #~ " --debug-lock Ispisuje poruke pročišćavanja u vezi sa nizovima " #~ "zaključavanja grafičkog sučelja" #~ msgid "" #~ " --debug-object Print debugging messages related to refcounted objects" #~ msgstr "" #~ " --debug-object Ispisuje poruke pročišćavanja u vezi sa prebrojavanjem " #~ "objekata" #~ msgid "pan.sent" #~ msgstr "pan.sent" #~ msgid "Spellchecking disabled: gtkspell_init() failed with status %d" #~ msgstr "" #~ "Pravopisna provera je isključena: funkcija „gtkspell_init()“ nije uspela " #~ "sa stanjem %d" #~ msgid "" #~ "Some tasks were still queued the last time Pan exited. Do you want to " #~ "resume those tasks?" #~ msgstr "" #~ "Neki zadaci su ostali nedovršeni pri poslednjem napuštanju Pana. Da li " #~ "želite li da ih pokrenete?" #~ msgid "" #~ "%a - abbreviated weekday name\n" #~ "%A - full weekday name\n" #~ "%b - abbreviated month name\n" #~ "%B - full month name\n" #~ "%c - local date & time\n" #~ "%d - day of the month\n" #~ "%H - hour (24-hour clock)\n" #~ "%I - hour (12-hour clock)\n" #~ "%j - day of the year (001-366)\n" #~ "%m - month (01-12)\n" #~ "%M - minute (00-59)\n" #~ "%p - local equivalent of AM/PM\n" #~ "%S - second (00-61)\n" #~ "%x - local date\n" #~ "%X - local time\n" #~ "%y - two-digit year\n" #~ "%Y - four-digit year\n" #~ "%% - %" #~ msgstr "" #~ "%a — skraćeni naziv dana u sedmici\n" #~ "%A — pun naziv dana u sedmici\n" #~ "%b — skraćeni naziv meseca\n" #~ "%B — pun naziv meseca\n" #~ "%c — lokalno vreme i datum\n" #~ "%d — dan u mesecu\n" #~ "%H — sati (24-časovni zapis)\n" #~ "%I — sati (12-časovni zapis)\n" #~ "%j — dan u godini (001-366)\n" #~ "%m — mesec (01-12)\n" #~ "%M — minut (00-59)\n" #~ "%p — lokalni ekvivalent za PrP/PoP\n" #~ "%S — sekunde (00-59)\n" #~ "%x — lokalni datum\n" #~ "%X — lokalno vreme\n" #~ "%y — dvocifrena godina (GG)\n" #~ "%Y — četvorocifrena godina (GGGG)\n" #~ "%% — %" #~ msgid "Articles with a Score of 9999 or higher:" #~ msgstr "Poruke koje imaju 9999 i više bodova:" #~ msgid "Articles with a Score between 5000 and 9998:" #~ msgstr "Poruke koje imaju od 5000 do 9998 bodova:" #~ msgid "Articles with a Score of -9999 or lower:" #~ msgstr "Poruke koje imaju -9999 i manje bodova:" #~ msgid "When a Followup subject header changes, show as _new thread" #~ msgstr "Napravi _novu raspravu kada se promeni naziv praćene teme" #~ msgid "Show complete _multipart posts as a single article" #~ msgstr "Prikaži završene _višedelne poruke kao jednu celinu" #~ msgid "Download new headers from s_ubscribed groups when starting Pan" #~ msgstr "Preuzmi nova zaglavlja iz pra_ćenih grupa pri pokretanju Pana" #~ msgid "" #~ "Download new headers and bod_ies from subscribed groups when starting Pan" #~ msgstr "" #~ "Preuzmi nova zaglavlja i _razrade iz praćenih grupa pri pokretanju Pana" #~ msgid "" #~ "Scorefile _Editor:\n" #~ "(%t is filename, %n is line number)" #~ msgstr "" #~ "Uređivač datoteke _bodovanja:\n" #~ "(%t je naziv datoteke, %n je broj reda)" #~ msgid "" #~ "%s\n" #~ "\n" #~ "Matches: %u\n" #~ "Group: %s\n" #~ "Rule: %s" #~ msgstr "" #~ "%s\n" #~ "\n" #~ "Pronađeno: %u\n" #~ "Grupa: %s\n" #~ "Pravilo: %s" #~ msgid "_Watch thread (highlights the thread)" #~ msgstr "_Prati raspravu (istakni rasprave)" #~ msgid "Rule applies to all newsgroups" #~ msgstr "Pravilo važi za sve pričaonice" #~ msgid "(e.g., *anime*)" #~ msgstr "(npr. *anime*)" #~ msgid "" #~ "If enabled, this rule will be applied to headers when they are downloaded." #~ msgstr "" #~ "Ako je uključeno, ovo pravilo će se primeniti na zaglavlja pri samom " #~ "preuzimanju." #~ msgid "" #~ "Can't find filter \"%s\" needed by rule \"%s\", so no articles match." #~ msgstr "" #~ "Ne mogu da pronađem propusnik „%s“ potreban pravilu „%s“, tako da nema " #~ "rezultata." #~ msgid "Disconnecting one connection from `%s' after %d seconds idle" #~ msgstr "Prekidam vezu sa „%s“ nakon %d sekunde mirovanja" #~ msgid "Updating article counts for %u groups from server \"%s\"" #~ msgstr "Osvežavam broj poruka za %u grupe sa servera „%s“" #~ msgid "Updated counts for %u groups out of %u" #~ msgstr "Osvežen je broj poruka za %u grupe od %u" #~ msgid "[This is an email copy of a Usenet post to \"%s\"]" #~ msgstr "[Ovo je umnožak poruke vašeg objavljivanja na „%s“]" #~ msgid "Save Article can't access path \"%s\"" #~ msgstr "Ne mogu da pristupim putanji „%s“ za čuvanje poruke" #~ msgid "" #~ "Pan %s\n" #~ "Copyright (c) %d by Charles Kerr\n" #~ "\n" #~ "If you find a bug, please report it.\n" #~ "\n" #~ msgstr "" #~ "Pan %s\n" #~ "Autorska prava (c) %d Čarls Ker\n" #~ "\n" #~ "Ako naiđete na grešku, obavestite nas o tome.\n" #~ "\n" #~ msgid "" #~ "http://pan.rebelbase.com/ - Pan Homepage\n" #~ "http://pan.rebelbase.com/bugs/ - Report a Bug\n" #~ "http://pan.rebelbase.com/download/ - Upgrade\n" #~ "\n" #~ msgstr "" #~ "http://pan.rebelbase.com/ — Matična stranica Pana\n" #~ "http://pan.rebelbase.com/bugs/ — Prijava grešaka\n" #~ "http://pan.rebelbase.com/download/ — Nadogradnja\n" #~ "\n" pan-0.162/po/sv.po000066400000000000000000002765271475412772400137460ustar00rootroot00000000000000# Swedish messages for Pan. # Copyright © 2000-2024 Free Software Foundation, Inc. # Andreas Hyden , 2000. # Christian Rose , 2000, 2001, 2002, 2003, 2004. # Daniel Nylander , 2006, 2007, 2008, 2009, 2011. # Josef Andersson , 2016, 2018. # Anders Jonsson , 2017, 2021, 2022, 2023, 2024. # Luna Jernberg , 2022. # msgid "" msgstr "" "Project-Id-Version: pan\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/pan/issues/\n" "POT-Creation-Date: 2024-05-08 17:14+0000\n" "PO-Revision-Date: 2024-05-08 21:12+0200\n" "Last-Translator: Anders Jonsson \n" "Language-Team: Swedish \n" "Language: sv\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Poedit 3.4.2\n" "X-Project-Style: gnome\n" #. update the titlebar #: org.gnome.pan.desktop.in:3 org.gnome.pan.metainfo.xml.in:27 #: pan/gui/dl-headers-ui.cc:119 pan/gui/gui.cc:1040 pan/gui/gui.cc:1665 #: pan/gui/gui.cc:1985 pan/gui/score-add-ui.cc:600 msgid "Pan" msgstr "Pan" #: org.gnome.pan.desktop.in:4 msgid "Newsreader" msgstr "Diskussionsgruppsläsare" #: org.gnome.pan.desktop.in:5 org.gnome.pan.metainfo.xml.in:7 msgid "Read and post Usenet articles" msgstr "Läs och posta Usenet-artiklar" #. Translators: Search terms to find this application. Do NOT translate or localise the semicolons! The list MUST also end with a semicolon! #: org.gnome.pan.desktop.in:7 msgid "usenet;news;newsreader;newsgroup;article;yenc;nzb;" msgstr "" "usenet;newsreader;diskussionsgruppläsare;diskussionsgrupp;artikel;yenc,nzb;" #: org.gnome.pan.metainfo.xml.in:6 msgid "Pan Newsreader" msgstr "Pan diskussionsgruppsläsare" #: org.gnome.pan.metainfo.xml.in:9 msgid "" "Pan is a Usenet newsreader that is good at both text and binaries. It " "supports offline reading, scoring and killfiles, yEnc, NZB, PGP handling, " "multiple servers, and secure connections." msgstr "" "Pan är en läsare för Usenet-diskussionsgrupper som är bra på både text och " "binärer. Det stöder frånkopplad läsning, poängsättning och ignorerafiler, " "yEnc, NZB, PGP-hantering, multipla servrar och säkra anslutningar." #: org.gnome.pan.metainfo.xml.in:12 msgid "" "It is also the only Unix newsreader to get a perfect score on the Good Net-" "Keeping Seal of Approval evaluations." msgstr "" "Det är också den enda diskussionsgruppläsaren för Unix att få full poäng hos " "utvärderingarna hos Good Net-Keeping Seal of Approval." #: pan/data/article-cache.cc:144 pan/data/encode-cache.cc:62 #, c-format msgid "Error opening directory: \"%s\": %s" msgstr "Fel vid öppnande av katalogen: ”%s”: %s" #: pan/data/article-cache.cc:235 pan/data/article-cache.cc:244 #: pan/data-impl/data-io.cc:278 pan/data-impl/data-io.cc:310 #: pan/gui/post-ui.cc:1767 #, c-format msgid "Unable to save \"%s\" %s" msgstr "Kunde inte spara ”%s” %s" #: pan/data/article-cache.cc:362 #, c-format msgid "Error opening file \"%s\" %s" msgstr "Fel vid öppnande av filen ”%s” %s" #: pan/data/article-cache.cc:393 pan/data-impl/profiles.cc:175 #: pan/data-impl/server.cc:495 pan/general/file-util.cc:311 #: pan/gui/post-ui.cc:636 pan/gui/task-pane.cc:740 #, c-format msgid "Error reading file \"%s\": %s" msgstr "Fel vid läsning av filen ”%s”: %s" #: pan/data/cert-store.cc:261 #, c-format msgid "Error opening SSL certificate directory: \"%s\": %s" msgstr "Fel vid öppnande av SSL-certifikatkatalogen: ”%s”: %s" #: pan/data/cert-store.cc:292 #, c-format msgid "Successfully added %d SSL PEM certificate(s) to Certificate Store." msgstr "Lade till %d SSL PEM-certifikat till certifikatförrådet." #: pan/data/cert-store.cc:312 msgid "" "Error initializing Certificate Store. Check that the permissions for the " "folders ~/.pan2 and ~/.pan2/ssl_certs are set correctly. Fatal, exiting." msgstr "" "Fel vid initiering av certifikatförråd. Kontrollera att rättigheter för " "mapparna ~/.pan2 och ~/.pan2/ssl_certs är satta korrekt. Ödesdigert, " "avslutar." #: pan/data/cert-store.cc:361 #, c-format msgid "Could not export certificate for server: %s" msgstr "Kunde inte exportera certifikaten för servern: %s" #. load_group_descriptions (*_data_io); #: pan/data-impl/data-impl.cc:115 #, c-format msgid "Loaded data backend in %.1f seconds" msgstr "Läste in databakände på %.1f sekunder" #: pan/data-impl/data-impl.cc:151 msgid "Pan Newsreader's server passwords" msgstr "Pan nyhetsläsarens serverlösenord" #: pan/data-impl/groups.cc:102 #, c-format msgid "Skipping newsrc file for server \"%s\"" msgstr "Hoppar över newsrc-filen för servern ”%s”" #: pan/data-impl/headers.cc:618 #, c-format msgid "Expired %lu old articles from \"%s\"" msgstr "Tog bort %lu gamla artiklar från ”%s”" #: pan/data-impl/headers.cc:625 #, c-format msgid "" "Unsupported data version for %s headers: %d.\n" "Are you running an old version of Pan by accident?" msgstr "" "Dataversionen stöds inte för %s-rubriker: %d.\n" "Kör du en gammal version av Pan av misstag?" #: pan/data-impl/headers.cc:640 #, c-format msgid "Loaded %llu articles for \"%s\" in %.1f seconds (%.0f per second)" msgstr "" "Läste in %llu artiklar för ”%s” på %.1f sekunder (%.0f artiklar/sekund)" #: pan/data-impl/headers.cc:869 #, c-format msgid "" "Saved %lu parts, %lu articles in \"%s\" in %.1f seconds (%.0f articles/sec)" msgstr "" "Sparade %lu delar, %lu artiklar i ”%s” på %.1f sekunder (%.0f artiklar/" "sekund)" #: pan/data-impl/headers.cc:1202 #, c-format msgid "Added %lu articles to %s." msgstr "Lade till %lu artiklar till %s." #: pan/data-impl/server.cc:263 #, c-format msgid "Received no password from libsecret for server %s." msgstr "Erhöll inte något lösenord från libsecret för servern %s." #: pan/data-impl/xover.cc:241 #, c-format msgid "Error reading from %s: unknown group \"%s\"" msgstr "Fel vid läsning från %s: okänd grupp ”%s”" #: pan/general/editor-spawner.cc:66 #, c-format msgid "Error parsing \"external editor\" command line: %s (Command was: %s)" msgstr "" "Fel vid tolkning av ”external editor”-kommandorad: %s (Kommandot var: %s)" #: pan/general/editor-spawner.cc:110 #, c-format msgid "Error starting external editor: %s" msgstr "Fel vid start av den externa redigeraren: %s" #: pan/general/e-util.cc:164 msgid "%l:%M %p" msgstr "%H:%M" #: pan/general/e-util.cc:165 msgid "Today %l:%M %p" msgstr "I dag %H:%M" #: pan/general/e-util.cc:166 msgid "%a %l:%M %p" msgstr "%a %H:%M" #: pan/general/e-util.cc:167 msgid "%b %d %l:%M %p" msgstr "%d %b %H:%M" #: pan/general/e-util.cc:168 msgid "%b %d %Y" msgstr "%d %b %Y" #: pan/general/e-util.cc:200 msgid "?" msgstr "?" #: pan/general/text-match.cc:194 #, c-format msgid "Can't use regular expression \"%s\": %s" msgstr "Kan inte använda det reguljära uttrycket ”%s”: %s" #: pan/general/utf8-utils.cc:212 msgid "Couldn't determine article encoding. Non-UTF8 characters were removed." msgstr "Kunde inte fastställa artikelns kodning. Icke-UTF8-tecken togs bort." #: pan/gui/actions.cc:306 pan/gui/post-ui.cc:451 msgid "_File" msgstr "_Arkiv" #: pan/gui/actions.cc:307 pan/gui/post-ui.cc:452 msgid "_Edit" msgstr "R_edigera" #: pan/gui/actions.cc:308 pan/gui/prefs-ui.cc:1138 msgid "_Layout" msgstr "_Layout" #: pan/gui/actions.cc:309 msgid "_Group Pane" msgstr "_Gruppanel" #: pan/gui/actions.cc:310 msgid "_Header Pane" msgstr "_Rubrikpanel" #: pan/gui/actions.cc:311 msgid "_Body Pane" msgstr "Ar_tikelpanel" #: pan/gui/actions.cc:312 msgid "_View" msgstr "_Visa" #: pan/gui/actions.cc:313 msgid "Filte_r" msgstr "Filte_r" #: pan/gui/actions.cc:314 msgid "_Go" msgstr "_Gå" #: pan/gui/actions.cc:315 pan/gui/prefs-ui.cc:1188 msgid "_Actions" msgstr "_Åtgärder" #: pan/gui/actions.cc:316 msgid "_Articles" msgstr "Ar_tiklar" #: pan/gui/actions.cc:317 msgid "G_roups" msgstr "G_rupper" #: pan/gui/actions.cc:318 pan/gui/actions.cc:319 msgid "_Post" msgstr "_Posta" #: pan/gui/actions.cc:320 msgid "_Help" msgstr "_Hjälp" #: pan/gui/actions.cc:323 msgid "_Read Group" msgstr "_Läs grupp" #: pan/gui/actions.cc:324 msgid "Read Group" msgstr "Läs grupp" #: pan/gui/actions.cc:328 msgid "_Mark Selected Groups Read" msgstr "_Markera valda grupper som lästa" #: pan/gui/actions.cc:329 msgid "Mark Selected Groups Read" msgstr "Markera valda grupper som lästa" #: pan/gui/actions.cc:333 msgid "_Delete Selected Groups' Articles" msgstr "_Ta bort valda gruppers artiklar" #: pan/gui/actions.cc:334 msgid "Delete Selected Groups' Articles" msgstr "Ta bort valda gruppers artiklar" #: pan/gui/actions.cc:338 msgid "Get New _Headers in Selected Groups" msgstr "Hämta nya _rubriker i markerade grupper" #: pan/gui/actions.cc:339 msgid "Get New Headers in Selected Groups" msgstr "Hämta nya rubriker i markerade grupper" #: pan/gui/actions.cc:343 pan/gui/actions.cc:348 msgid "Get New _Headers in Subscribed Groups" msgstr "Hämta nya _rubriker i prenumererade grupper" #: pan/gui/actions.cc:344 pan/gui/actions.cc:349 msgid "Get New Headers in Subscribed Groups" msgstr "Hämta nya rubriker i prenumererade grupper" #: pan/gui/actions.cc:353 msgid "Get _Headers..." msgstr "Hämta _rubriker…" #: pan/gui/actions.cc:354 msgid "Get Headers..." msgstr "Hämta rubriker…" #: pan/gui/actions.cc:358 pan/gui/actions.cc:359 msgid "Refresh Group List" msgstr "Uppdatera grupplista" #: pan/gui/actions.cc:363 msgid "_Subscribe" msgstr "_Prenumerera" #: pan/gui/actions.cc:364 msgid "Subscribe" msgstr "Prenumerera" #: pan/gui/actions.cc:368 msgid "_Unsubscribe" msgstr "Sä_g upp prenumeration" #: pan/gui/actions.cc:369 msgid "Unsubscribe" msgstr "Säg upp prenumeration" #: pan/gui/actions.cc:373 msgid "_Save Articles..." msgstr "_Spara artiklar…" #: pan/gui/actions.cc:374 msgid "Save Articles..." msgstr "Spara artiklar…" #: pan/gui/actions.cc:378 msgid "Save Articles from Selected _NZB..." msgstr "Spara artiklar från vald _NZB…" #: pan/gui/actions.cc:379 msgid "Save Articles from Selected NZB" msgstr "Spara artiklar från vald NZB" #: pan/gui/actions.cc:383 msgid "Save Articles to an NZB _File..." msgstr "Spara artiklar till en NZB-_fil…" #: pan/gui/actions.cc:384 msgid "Save Articles to an NZB File" msgstr "Spara artiklar till en NZB-fil" #: pan/gui/actions.cc:388 pan/gui/actions.cc:389 msgid "Print" msgstr "Skriv ut" #: pan/gui/actions.cc:393 msgid "_Import NZB Files..." msgstr "_Importera NZB-filer…" #: pan/gui/actions.cc:398 msgid "_Cancel Last Task" msgstr "_Avbryt senaste uppgift" #: pan/gui/actions.cc:403 msgid "_Task Manager" msgstr "_Uppgiftshanterare" #: pan/gui/actions.cc:408 msgid "_Event Log" msgstr "_Händelselogg" #: pan/gui/actions.cc:413 msgid "_Quit" msgstr "_Avsluta" #: pan/gui/actions.cc:418 msgid "Select _All Articles" msgstr "Markera alla _artiklar" #: pan/gui/actions.cc:423 msgid "_Deselect All Articles" msgstr "Avmarkera a_lla artiklar" #: pan/gui/actions.cc:428 msgid "Add Su_bthreads to Selection" msgstr "Lägg till _undertrådar till markeringen" #: pan/gui/actions.cc:433 msgid "Add _Threads to Selection" msgstr "Lägg till _trådar till markeringen" #: pan/gui/actions.cc:438 msgid "Add _Similar Articles to Selection" msgstr "Lägg till _liknande artiklar till markeringen" #: pan/gui/actions.cc:443 msgid "Select Article _Body" msgstr "Markera artikelte_xt" #: pan/gui/actions.cc:448 msgid "Edit _Preferences" msgstr "Redigera _inställningar" #: pan/gui/actions.cc:453 msgid "Edit Selected _Group's Preferences" msgstr "Redigera inställningar för vald _grupp" #: pan/gui/actions.cc:458 msgid "Edit S_core File" msgstr "Redi_gera poängfil" #: pan/gui/actions.cc:463 pan/gui/post-ui.cc:468 msgid "Edit P_osting Profiles" msgstr "Redigera _postandeprofiler" #: pan/gui/actions.cc:468 msgid "Edit _News Servers" msgstr "Redigera _diskussionsgruppsservrar" #: pan/gui/actions.cc:473 msgid "Jump to _Group Tab" msgstr "Hoppa till _gruppflik" #: pan/gui/actions.cc:478 msgid "Jump to _Header Tab" msgstr "Hoppa till _rubrikflik" #: pan/gui/actions.cc:483 msgid "Jump to _Body Tab" msgstr "Hoppa till _artikeltextflik" #: pan/gui/actions.cc:488 msgid "_Rot13 Selected Text" msgstr "_Rotera markerad text 13 tecken" #: pan/gui/actions.cc:493 msgid "Clear _Header Pane" msgstr "Töm _rubrikpanel" #: pan/gui/actions.cc:498 msgid "Clear _Body Pane" msgstr "Töm ar_tikeltextpanel" #: pan/gui/actions.cc:503 msgid "Cache Article" msgstr "Cacha artikel" #: pan/gui/actions.cc:508 msgid "Read Article" msgstr "Läs artikel" #: pan/gui/actions.cc:513 msgid "Show Article Information" msgstr "Visa artikelinformation" #: pan/gui/actions.cc:518 msgid "Read _More" msgstr "Läs _mer" #: pan/gui/actions.cc:519 msgid "Read More" msgstr "Läs mer" #: pan/gui/actions.cc:523 msgid "Read _Back" msgstr "Läs _tillbaka" #: pan/gui/actions.cc:524 msgid "Read Back" msgstr "Läs tillbaka" #: pan/gui/actions.cc:528 msgid "Next _Unread Group" msgstr "Nästa _olästa grupp" #: pan/gui/actions.cc:533 msgid "Next _Group" msgstr "Nästa _grupp" #: pan/gui/actions.cc:538 msgid "Next _Unread Article" msgstr "Nästa _olästa artikel" #: pan/gui/actions.cc:539 msgid "Next Unread Article" msgstr "Nästa olästa artikel" #: pan/gui/actions.cc:543 msgid "Next _Article" msgstr "Nästa _artikel" #: pan/gui/actions.cc:544 msgid "Next Article" msgstr "Nästa artikel" #: pan/gui/actions.cc:548 msgid "Next _Watched Article" msgstr "Nästa _bevakade artikel" #: pan/gui/actions.cc:553 msgid "Next Unread _Thread" msgstr "Nästa olästa _tråd" #: pan/gui/actions.cc:554 msgid "Next Unread Thread" msgstr "Nästa olästa tråd" #: pan/gui/actions.cc:558 msgid "Next Threa_d" msgstr "Nästa trå_d" #: pan/gui/actions.cc:563 msgid "Pre_vious Article" msgstr "Fö_regående artikel" #: pan/gui/actions.cc:568 msgid "Previous _Thread" msgstr "Föregående _tråd" #: pan/gui/actions.cc:573 msgid "_Parent Article" msgstr "Öv_erordnad artikel" #: pan/gui/actions.cc:578 msgid "Ignore _Author" msgstr "Ignorera _författare" #: pan/gui/actions.cc:582 msgid "_Watch Thread" msgstr "_Bevaka tråd" #: pan/gui/actions.cc:587 msgid "_Ignore Thread" msgstr "_Ignorera tråd" #: pan/gui/actions.cc:592 pan/gui/actions.cc:593 msgid "_Toggle Flag On/Off for Thread" msgstr "_Växla flagga på/av för tråd" #: pan/gui/actions.cc:597 pan/gui/actions.cc:598 msgid "_Turn Flag Off for Thread" msgstr "_Slå av flagga för tråd" #: pan/gui/actions.cc:602 pan/gui/actions.cc:603 msgid "_Select All Flagged Threads" msgstr "Välj _alla flaggade trådar" #: pan/gui/actions.cc:607 pan/gui/actions.cc:608 msgid "_Go to Next Flagged Thread" msgstr "Gå till _nästa flaggade tråd" #: pan/gui/actions.cc:612 pan/gui/actions.cc:613 msgid "_Go to Last Flagged Thread" msgstr "Gå till _sist flaggad tråd" #: pan/gui/actions.cc:617 pan/gui/actions.cc:618 msgid "_Invert Selection" msgstr "_Invertera markering" #: pan/gui/actions.cc:622 msgid "Edit Article's Watch/Ignore/Score..." msgstr "Redigera bevakning/ignorera/poäng för artikeln…" #: pan/gui/actions.cc:627 msgid "Add a _Scoring Rule..." msgstr "Lägg till en _poängregel…" #: pan/gui/actions.cc:632 msgid "Cance_l Article..." msgstr "Avbry_t artikel…" #: pan/gui/actions.cc:637 msgid "_Supersede Article..." msgstr "_Ersätt artikel…" #: pan/gui/actions.cc:642 msgid "_Delete Article" msgstr "_Ta bort artikel" #: pan/gui/actions.cc:647 msgid "Clear Article Cache" msgstr "Töm artikelcache" #: pan/gui/actions.cc:652 msgid "_Mark Article as Read" msgstr "_Markera artikel som läst" #: pan/gui/actions.cc:657 msgid "Mark Article as _Unread" msgstr "Markera artikel som _oläst" #: pan/gui/actions.cc:663 msgid "_Mark Thread as Read" msgstr "_Markera tråd som läst" #: pan/gui/actions.cc:668 msgid "Mark Thread as _Unread" msgstr "Markera tråd som _oläst" #: pan/gui/actions.cc:673 msgid "_Post to Newsgroup" msgstr "_Posta till diskussionsgrupp" #: pan/gui/actions.cc:674 msgid "Post to Newsgroup" msgstr "Posta till diskussionsgrupp" #: pan/gui/actions.cc:678 msgid "_Followup to Newsgroup" msgstr "_Uppföljning till diskussionsgrupp" #: pan/gui/actions.cc:679 msgid "Followup to Newsgroup" msgstr "Uppföljning till diskussionsgrupp" #: pan/gui/actions.cc:683 msgid "_Reply to Author in Mail" msgstr "_Svara till författare via e-post" #: pan/gui/actions.cc:689 msgid "_Contents" msgstr "_Innehåll" #: pan/gui/actions.cc:695 msgid "_Pan Home Page" msgstr "Pans _webbsida" #: pan/gui/actions.cc:700 msgid "Give _Feedback or Report a Bug..." msgstr "Återkoppling eller rapportera ett _fel…" #: pan/gui/actions.cc:705 msgid "_About" msgstr "_Om" #: pan/gui/actions.cc:710 msgid "Edit _SSL Certificates" msgstr "Redigera _SSL-certifikat" #: pan/gui/actions.cc:725 msgid "_Thread Headers" msgstr "_Tråda rubriker" #: pan/gui/actions.cc:726 msgid "Wrap Article Body" msgstr "Radbryt artikeltexten" #: pan/gui/actions.cc:727 msgid "Show Article Signature" msgstr "Visa artikelsignatur" #: pan/gui/actions.cc:728 msgid "Mute _Quoted Text" msgstr "Tysta _citerad text" #: pan/gui/actions.cc:729 msgid "Show All _Headers in Body Pane" msgstr "Visa alla _rubriker i artikelpanelen" #: pan/gui/actions.cc:730 msgid "Show _Smilies as Graphics" msgstr "Visa _smilisar som grafik" #: pan/gui/actions.cc:731 msgid "Show *Bold*, __Underlined__, and /Italic/" msgstr "Visa *Fet*, __Understruken__, och /Kursiv/" #: pan/gui/actions.cc:732 msgid "Size Pictures to _Fit" msgstr "Anpassa _bildstorlek" #: pan/gui/actions.cc:733 msgid "Use _Monospace Font" msgstr "Använd typsnitt med fast _breddsteg" #: pan/gui/actions.cc:734 msgid "Set Focus to Images" msgstr "Ställ in fokus på bilder" #: pan/gui/actions.cc:735 msgid "Highlight _URLs" msgstr "Markera _URL:er" #: pan/gui/actions.cc:738 msgid "_Work Online" msgstr "Anslu_tet läge" #: pan/gui/actions.cc:739 msgid "_Tabbed Layout" msgstr "_Fliklayout" #: pan/gui/actions.cc:740 msgid "Show Group _Pane" msgstr "Visa grup_panel" #: pan/gui/actions.cc:741 msgid "Show Hea_der Pane" msgstr "Visa rubr_ikpanel" #: pan/gui/actions.cc:742 msgid "Show Bod_y Pane" msgstr "Visa artikelte_xtpanel" #: pan/gui/actions.cc:743 msgid "Show _Toolbar" msgstr "Visa _verktygsfält" #: pan/gui/actions.cc:744 msgid "Abbreviate Group Names" msgstr "Förkorta gruppnamn" #: pan/gui/actions.cc:746 msgid "Match Only _Read Articles" msgstr "Matcha endast _lästa artiklar" #: pan/gui/actions.cc:746 msgid "Match Only Read Articles" msgstr "Matcha endast lästa artiklar" #: pan/gui/actions.cc:747 msgid "Match Only _Unread Articles" msgstr "Matcha endast _olästa artiklar" #: pan/gui/actions.cc:747 msgid "Match Only Unread Articles" msgstr "Matcha endast olästa artiklar" #: pan/gui/actions.cc:748 msgid "Match Only _Cached Articles" msgstr "Matcha endast _cachade artiklar" #: pan/gui/actions.cc:748 msgid "Match Only Cached Articles" msgstr "Matcha endast cachade artiklar" #: pan/gui/actions.cc:749 msgid "Match Only _Complete Articles" msgstr "Matcha endast _fullständiga artiklar" #: pan/gui/actions.cc:749 msgid "Match Only Complete Articles" msgstr "Matcha endast fullständiga artiklar" #: pan/gui/actions.cc:750 msgid "Match Only _My Articles" msgstr "Matcha endast _mina artiklar" #: pan/gui/actions.cc:750 msgid "Match Only My Articles" msgstr "Matcha endast mina artiklar" #: pan/gui/actions.cc:751 msgid "Match Only _Watched Articles" msgstr "Matcha endast _bevakade artiklar" #: pan/gui/actions.cc:751 msgid "Match Only Watched Articles" msgstr "Matcha endast bevakade artiklar" #: pan/gui/actions.cc:753 msgid "Match Scores of 9999 (_Watched)" msgstr "Matcha poäng som är 9999 (_bevakad)" #: pan/gui/actions.cc:754 msgid "Match Scores of 5000...9998 (_High)" msgstr "Matcha poäng i intervallet 5000…9998 (_högt)" #: pan/gui/actions.cc:755 msgid "Match Scores of 1...4999 (Me_dium)" msgstr "Matcha poäng i intervallet 1…4999 (m_ellan)" #: pan/gui/actions.cc:756 msgid "Match Scores of 0 (_Normal)" msgstr "Matcha poäng som är 0 (_normalt)" #: pan/gui/actions.cc:757 msgid "Match Scores of -9998...-1 (_Low)" msgstr "Matcha poäng i intervallet -9998…-1 (_lågt)" #: pan/gui/actions.cc:758 msgid "Match Scores of -9999 (_Ignored)" msgstr "Matcha poäng som är -9999 (_ignorerade)" #: pan/gui/actions.cc:760 msgid "Enable/Disable All _Rules" msgstr "Aktivera/Inaktivera alla _regler" #: pan/gui/actions.cc:788 msgid "Show Matching _Articles" msgstr "Visa matchande _artiklar" #: pan/gui/actions.cc:789 msgid "Show Matching Articles' _Threads" msgstr "Visa matchande artiklars _trådar" #: pan/gui/actions.cc:790 msgid "Show Matching Articles' _Subthreads" msgstr "Visa matchande artiklars _undertrådar" #: pan/gui/body-pane.cc:1038 msgid "Unnamed File" msgstr "Ej namngiven fil" #: pan/gui/body-pane.cc:1119 pan/gui/gui.cc:1956 pan/gui/header-pane.cc:1309 #: pan/gui/header-pane.cc:1738 pan/gui/post-ui.cc:2641 pan/gui/prefs-ui.cc:887 #: pan/gui/score-add-ui.cc:139 pan/gui/task-pane.cc:795 msgid "Subject" msgstr "Ämne" #: pan/gui/body-pane.cc:1121 pan/gui/gui.cc:1956 msgid "From" msgstr "Från" #: pan/gui/body-pane.cc:1123 pan/gui/gui.cc:1957 pan/gui/header-pane.cc:1817 #: pan/gui/log-ui.cc:308 pan/gui/prefs-ui.cc:883 msgid "Date" msgstr "Datum" #: pan/gui/body-pane.cc:1130 msgid "Newsgroups" msgstr "Diskussionsgrupper" #: pan/gui/body-pane.cc:1137 pan/gui/body-pane.cc:1145 #: pan/gui/body-pane.cc:1152 msgid "User-Agent" msgstr "Användaragent" #: pan/gui/body-pane.cc:1158 msgid "Followup-To" msgstr "Uppföljning-till" #: pan/gui/body-pane.cc:1168 msgid "Reply-To" msgstr "Svara-till" #: pan/gui/body-pane.cc:1216 msgid " from " msgstr " från " #: pan/gui/body-pane.cc:1218 msgid " at " msgstr " den " #: pan/gui/body-pane.cc:1307 #, c-format msgid "" "This is a PGP-Signed message.\n" "\n" "Signer: %s ('%s')\n" "Valid until: %s\n" "Created on: %s" msgstr "" "Detta är ett PGP-signerat meddelande.\n" "\n" "Undertecknare: %s (”%s”)\n" "Giltig till: %s\n" "Skapad: %s" #: pan/gui/body-pane.cc:1312 msgid "always" msgstr "alltid" #: pan/gui/body-pane.cc:1532 msgid "Copy _URL" msgstr "Kopiera _url" #: pan/gui/body-pane.cc:1720 msgid "Save Attachment As..." msgstr "Spara bilaga som…" #: pan/gui/body-pane.cc:1723 msgid "Save All Attachments" msgstr "Spara alla bilagor" #: pan/gui/body-pane.cc:1794 msgid "Attachments:" msgstr "Bilagor:" #: pan/gui/body-pane.cc:1814 msgid "Text View" msgstr "Textvy" #: pan/gui/body-pane.cc:1823 msgid "HTML View" msgstr "HTML-vy" #: pan/gui/dl-headers-ui.cc:125 #, c-format msgid "%d Group" msgid_plural "%d Groups" msgstr[0] "%d grupp" msgstr[1] "%d grupper" #: pan/gui/dl-headers-ui.cc:148 msgid "Get the last N _days' headers: " msgstr "Hämta rubriker för de N senaste _dagarna: " #: pan/gui/dl-headers-ui.cc:156 msgid "Get _new headers" msgstr "Hämta _nya rubriker" #: pan/gui/dl-headers-ui.cc:160 msgid "Get _all headers" msgstr "Hämta _alla rubriker" #: pan/gui/dl-headers-ui.cc:164 msgid "Get the _latest N headers: " msgstr "Hämta de N _senaste rubrikerna: " #: pan/gui/e-action-combo-box.c:386 pan/gui/prefs-ui.cc:880 msgid "Action" msgstr "Åtgärd" #: pan/gui/e-action-combo-box.c:387 msgid "A GtkRadioAction" msgstr "En GtkRadioAction" #: pan/gui/e-charset.c:51 pan/gui/task-pane.cc:561 msgid "Unknown" msgstr "Okänd" #: pan/gui/e-charset.c:52 msgid "Arabic" msgstr "Arabisk" #: pan/gui/e-charset.c:53 msgid "Baltic" msgstr "Baltisk" #: pan/gui/e-charset.c:54 msgid "Central European" msgstr "Centraleuropeisk" #: pan/gui/e-charset.c:55 msgid "Chinese" msgstr "Kinesisk" #: pan/gui/e-charset.c:56 msgid "Cyrillic" msgstr "Kyrillisk" #: pan/gui/e-charset.c:57 msgid "Greek" msgstr "Grekisk" #: pan/gui/e-charset.c:58 msgid "Hebrew" msgstr "Hebreisk" #: pan/gui/e-charset.c:59 msgid "Japanese" msgstr "Japansk" #: pan/gui/e-charset.c:60 msgid "Korean" msgstr "Koreansk" #: pan/gui/e-charset.c:61 msgid "Thai" msgstr "Thailändsk" #: pan/gui/e-charset.c:62 msgid "Turkish" msgstr "Turkisk" #: pan/gui/e-charset.c:63 msgid "Unicode" msgstr "Unicode" #: pan/gui/e-charset.c:64 msgid "Western European" msgstr "Västeuropeisk" #: pan/gui/e-charset.c:65 msgid "Western European, New" msgstr "Västeuropeisk, ny" #: pan/gui/e-charset.c:84 pan/gui/e-charset.c:85 pan/gui/e-charset.c:86 msgid "Traditional" msgstr "Traditionell" #: pan/gui/e-charset.c:87 pan/gui/e-charset.c:88 pan/gui/e-charset.c:89 #: pan/gui/e-charset.c:90 msgid "Simplified" msgstr "Förenklad" #: pan/gui/e-charset.c:93 msgid "Ukrainian" msgstr "Ukrainsk" #: pan/gui/e-charset.c:96 msgid "Visual" msgstr "Visuell" #: pan/gui/e-charset-combo-box.c:95 pan/gui/gui.cc:2154 pan/gui/post-ui.cc:546 #: pan/gui/prefs-ui.cc:791 msgid "Character Encoding" msgstr "Teckenkodning" #: pan/gui/e-charset-combo-box.c:97 pan/gui/e-charset-dialog.c:51 #: pan/gui/score-add-ui.cc:606 pan/gui/task-pane.cc:309 msgid "Cancel" msgstr "Avbryt" #: pan/gui/e-charset-combo-box.c:98 pan/gui/e-charset-dialog.c:52 msgid "OK" msgstr "OK" #: pan/gui/e-charset-combo-box.c:119 msgid "Enter the character set to use" msgstr "Ange teckenuppsättning att använda" #: pan/gui/e-charset-combo-box.c:338 msgid "Other..." msgstr "Annan…" #: pan/gui/e-cte-dialog.c:76 msgid "Default Encoding" msgstr "Standardkodning" #: pan/gui/e-cte-dialog.c:78 msgid "7-Bit Encoding" msgstr "7-bitarskodning" #: pan/gui/e-cte-dialog.c:80 msgid "8-Bit Encoding" msgstr "8-bitarskodning" #: pan/gui/e-cte-dialog.c:82 msgid "Base64 Encoding" msgstr "Base64-kodning" #: pan/gui/e-cte-dialog.c:84 msgid "Quoted-Printable Encoding" msgstr "Citerad-utskrivbar kodning" #: pan/gui/group-pane.cc:331 msgid "Sent" msgstr "Skickat" #: pan/gui/group-pane.cc:332 msgid "Drafts" msgstr "Utkast" #: pan/gui/group-pane.cc:543 msgid "Group" msgstr "Grupp" #: pan/gui/group-pane.cc:544 msgid "Group (regex)" msgstr "Grupp (regex)" #: pan/gui/group-pane.cc:987 msgid "Local Folders" msgstr "Lokala mappar" #: pan/gui/group-pane.cc:988 msgid "Subscribed Groups" msgstr "Prenumererade grupper" #: pan/gui/group-pane.cc:989 msgid "Other Groups" msgstr "Övriga grupper" #: pan/gui/group-pane.cc:1029 pan/gui/score-view-ui.cc:156 msgid "Name" msgstr "Namn" #: pan/gui/group-prefs-dialog.cc:161 msgid "No Profiles defined in Edit|Posting Profiles." msgstr "Inga profiler har definierats i Redigera|Postandeprofiler." #: pan/gui/group-prefs-dialog.cc:264 msgid "Pan: Group Preferences" msgstr "Pan: Gruppinställningar" #: pan/gui/group-prefs-dialog.cc:279 msgid "Properties for Groups" msgstr "Egenskaper för grupper" #: pan/gui/group-prefs-dialog.cc:281 #, c-format msgid "Properties for %s" msgstr "Egenskaper för %s" #: pan/gui/group-prefs-dialog.cc:292 msgid "Character _encoding:" msgstr "Tecken_kodning:" #: pan/gui/group-prefs-dialog.cc:294 msgid "Directory for Saving Attachments" msgstr "Katalog för att spara bilagor" #: pan/gui/group-prefs-dialog.cc:302 msgid "Directory for _saving attachments:" msgstr "Katalog för att spa_ra bilagor:" #: pan/gui/group-prefs-dialog.cc:304 msgid "Posting _profile:" msgstr "Postande_profil:" #: pan/gui/group-prefs-dialog.cc:309 msgid "Spellchecker _language:" msgstr "Språk för stavningskontrol_l:" #: pan/gui/group-prefs-dialog.cc:312 msgid "Group color:" msgstr "Gruppfärg:" #: pan/gui/gui.cc:311 msgid "Open the Task Manager" msgstr "Öppna uppgiftshanteraren" #: pan/gui/gui.cc:334 msgid "Open the Event Log" msgstr "Öppna händelseloggen" #: pan/gui/gui.cc:610 msgid "Save NZB's Files" msgstr "Spara filer i NZB" #: pan/gui/gui.cc:637 msgid "Untitled.nzb" msgstr "Ej_namngiven.nzb" #: pan/gui/gui.cc:639 msgid "Save NZB File as..." msgstr "Spara NZB-fil som…" #: pan/gui/gui.cc:808 msgid "Import NZB Files" msgstr "Importera NZB-filer" #: pan/gui/gui.cc:816 pan/gui/post-ui.cc:3349 msgid "NZB Files" msgstr "NZB-filer" #: pan/gui/gui.cc:821 msgid "All Files" msgstr "Alla filer" #: pan/gui/gui.cc:1335 msgid "Unable to supersede article." msgstr "Kunde inte ersätta artikel." #: pan/gui/gui.cc:1336 pan/gui/gui.cc:1412 msgid "The article doesn't match any of your posting profiles." msgstr "Artikeln matchar inte någon av dina postandeprofiler." #: pan/gui/gui.cc:1385 msgid "Revise and send this article to replace the old one." msgstr "Granska och skicka den här artikeln för att ersätta den gamla." #: pan/gui/gui.cc:1386 pan/gui/gui.cc:1450 msgid "Be patient! It will take time for your changes to take effect." msgstr "Var god vänta! Det kan ta lite tid innan dina ändringar blir aktiva." #: pan/gui/gui.cc:1411 msgid "Unable to cancel article." msgstr "Kunde inte avbryta artikel." #: pan/gui/gui.cc:1449 msgid "Send this article to ask your server to cancel your other one." msgstr "" "Skicka den här artikeln för att fråga din server att avbryta den andra " "artikeln." #: pan/gui/gui.cc:1467 msgid "You have marked some articles for deletion." msgstr "Du har markerat en del artiklar för borttagning." #: pan/gui/gui.cc:1468 msgid "Are you sure you want to delete them?" msgstr "Är du säker på att du vill ta bort dem?" #: pan/gui/gui.cc:1494 msgid "Do you want to accept it permanently? (You can change this later.)" msgstr "Vill du acceptera den permanent? (Du kan ändra detta senare.)" #: pan/gui/gui.cc:1640 msgid "Unable to open help file." msgstr "Kunde inte öppna hjälpfil." #: pan/gui/gui.cc:1668 msgid "Copyright © 2002-2021 Charles Kerr and others" msgstr "Copyright © 2002-2021 Charles Kerr och andra" #: pan/gui/gui.cc:1673 msgid "translator-credits" msgstr "" "Josef Andersson \n" "Daniel Nylander \n" "Christian Rose\n" "Andreas Hyden\n" "Anders Jonsson \n" "Luna Jernberg \n" "\n" "Skicka synpunkter på översättningen till\n" "." #: pan/gui/gui.cc:1801 msgid "_1. Group Pane" msgstr "_1. Gruppanel" #: pan/gui/gui.cc:1802 msgid "_2. Header Pane" msgstr "_2. Rubrikpanel" #: pan/gui/gui.cc:1803 msgid "_3. Body Pane" msgstr "_3. Artikelpanel" #: pan/gui/gui.cc:1893 pan/gui/gui.cc:1908 msgid " Bytes" msgstr " Byte" #: pan/gui/gui.cc:1896 msgid " KB" msgstr " KB" #: pan/gui/gui.cc:1899 msgid " MB" msgstr " MB" #: pan/gui/gui.cc:1902 msgid " GB" msgstr " GB" #: pan/gui/gui.cc:1905 msgid " TB" msgstr " TB" #: pan/gui/gui.cc:1937 #, c-format msgid "This article is complete with %d part." msgid_plural "This article has all %d parts." msgstr[0] "Den här artikeln är komplett med %d del." msgstr[1] "Den här artikeln har alla %d delar." #: pan/gui/gui.cc:1939 #, c-format msgid "This article is missing %d part." msgid_plural "This article is missing %d of its %d parts:" msgstr[0] "Den här artikeln saknar %d del." msgstr[1] "Den här artikeln saknar %d av dess %d delar:" #: pan/gui/gui.cc:1957 pan/gui/header-pane.cc:1311 pan/gui/task-pane.cc:797 msgid "Message-ID" msgstr "Meddelande-ID" #: pan/gui/gui.cc:1958 pan/gui/header-pane.cc:1786 pan/gui/prefs-ui.cc:884 msgid "Lines" msgstr "Rader" #: pan/gui/gui.cc:1958 msgid "Size" msgstr "Storlek" #: pan/gui/gui.cc:1959 pan/gui/header-pane.cc:1802 pan/gui/prefs-ui.cc:882 msgid "Bytes" msgstr "Byte" #: pan/gui/gui.cc:2009 msgid "" "Error loading iconv library. Encoding certain character sets will not work " "in GUI." msgstr "" "Fel vid inläsning av iconv-biblioteket. Att koda vissa tecken kommer inte " "att fungera i GUI." #: pan/gui/gui.cc:2155 msgid "Body Pane Encoding" msgstr "Kodning för artikelpanel" #: pan/gui/gui.cc:2186 pan/gui/task-pane.cc:612 msgid "Offline" msgstr "Frånkopplad" #: pan/gui/gui.cc:2190 #, c-format msgid "Closing %d connection" msgid_plural "Closing %d connections" msgstr[0] "Stänger %d anslutning" msgstr[1] "Stänger %d anslutningar" #: pan/gui/gui.cc:2192 pan/gui/gui.cc:2222 msgid "No Connections" msgstr "Inga anslutningar" #: pan/gui/gui.cc:2196 msgid "Connecting" msgstr "Ansluter" #: pan/gui/gui.cc:2209 #, c-format msgid "%s: %d idle, %d active @ %.1f KiBps" msgstr "%s: %d overksamma, %d aktiva @ %.1f KiBps" #: pan/gui/gui.cc:2265 msgid "No Tasks" msgstr "Inga uppgifter" #: pan/gui/gui.cc:2267 pan/gui/prefs-ui.cc:1121 msgid "Tasks" msgstr "Uppgifter" #: pan/gui/gui.cc:2284 pan/gui/task-pane.cc:478 #, c-format msgid "%lu tasks, %s, %.1f KiBps, ETA %d:%02d:%02d" msgstr "%lu uppgifter, %s, %.1f KiBps, Klar om %d:%02d:%02d" #: pan/gui/gui.cc:2336 msgid "" "Pan is now offline. Please see \"File|Event Log\" and correct the problem, " "then use \"File|Work Online\" to continue." msgstr "" "Pan är nu i frånkopplat läge. Se ”Arkiv|Händelselogg” och rätta till " "problemet, använd sedan ”Arkiv|Anslutet läge” för att fortsätta." #: pan/gui/header-pane.cc:1307 pan/gui/task-pane.cc:793 msgid "Subject or Author" msgstr "Ämne eller författare" #: pan/gui/header-pane.cc:1308 pan/gui/task-pane.cc:794 msgid "Sub or Auth (regex)" msgstr "Ämne eller författare (regex)" #: pan/gui/header-pane.cc:1310 pan/gui/header-pane.cc:1770 #: pan/gui/prefs-ui.cc:881 pan/gui/score-add-ui.cc:140 pan/gui/task-pane.cc:796 msgid "Author" msgstr "Författare" #: pan/gui/header-pane.cc:1755 pan/gui/prefs-ui.cc:885 msgid "Score" msgstr "Poäng" #: pan/gui/log-ui.cc:105 msgid "Save Event List" msgstr "Spara händelselista" #: pan/gui/log-ui.cc:259 msgid "Pan: Events" msgstr "Pan: Händelser" #: pan/gui/log-ui.cc:318 msgid "Message" msgstr "Meddelande" #: pan/gui/pan.cc:336 msgid "Maximize" msgstr "Maximera" #: pan/gui/pan.cc:376 msgid "An error has occurred!" msgstr "Ett fel har uppstått!" #: pan/gui/pan.cc:389 msgid "New Articles!" msgstr "Nya artiklar!" #: pan/gui/pan.cc:390 msgid "" "There are new\n" "articles available." msgstr "" "Nya artiklar\n" "finns tillgängliga." #: pan/gui/pan.cc:470 msgid "" "Thank you for trying Pan!\n" " \n" "To start newsreading, first Add a Server." msgstr "" "Tack för att du provar Pan!\n" " \n" "Börja med att lägga till en server\n" "för att läsa diskussionsgrupper." #: pan/gui/pan.cc:552 msgid "" "General Options\n" " -h, --help Show this usage information and exit.\n" " -v, --version Print release version and exit.\n" " --verbose Be verbose (in non-GUI mode).\n" " --debug Run in debug mode. Use --debug twice for verbose " "debug.\n" " --debug-ssl Run in TLS (aka SSL) debug mode.\n" "\n" "URL Options\n" " headers:group.name Download new headers for the specified " "newsgroup.\n" " news:message-id When specified together with --no-gui, dump\n" " the message-id article to standard output.\n" "\n" "NZB Batch Options\n" " --nzb file1 file2 ... Process NZB files in non-GUI mode.\n" " -o path, --output=path Path to save attachments listed in the NZB " "file(s).\n" " --no-gui Only show console output, not the download " "queue.\n" msgstr "" "Allmänna flaggor\n" " -h, --help Visa den här användningssidan och avsluta.\n" " -v, --version Skriv ut version och avsluta.\n" " --verbose Var utförlig (i icke-GUI-läge).\n" " --debug Kör i felsökningsläge. (använd --debug två " "gånger\n" " för utförlig felsökning)\n" " --debug-ssl Kör i felsökningsläge för TLS (även kallat ssl).\n" "\n" "Url-flaggor\n" " headers:grupp.namn Hämta nya rubriker för angiven diskussionsgrupp.\n" " news:meddelande-id När angivet med flaggan --no-gui, dumpa\n" " meddelande-id-artikeln till standard ut.\n" "\n" "NZB-satsflaggor\n" " --nzb fil1 fil2 … Behandla nzb-filer utan att starta hela Pan.\n" " -o sökväg, --output=sökväg Sökväg för att spara bilagor listade i nzb-" "filerna.\n" " --no-gui Visa endast konsolutdata, inte hämtningskön.\n" #: pan/gui/pan.cc:885 msgid "Error: --no-gui used without nzb files or news:message-id." msgstr "Fel: --no-gui används utan nzb-filer eller news:meddelande-id." #: pan/gui/pan.cc:889 #, c-format msgid "Pan %s started" msgstr "Pan %s startade" #: pan/gui/pan.cc:909 msgid "Please configure Pan's news servers before using it as an nzb client." msgstr "" "Konfigurera Pans diskussionsgruppservrar innan den används som en nzb-klient." #: pan/gui/pan.cc:1029 msgid "Pan notification" msgstr "Pan-avisering" #: pan/gui/post-ui.cc:175 #, c-format msgid "Upload queue: %llu tasks, %ld KB (~ %.2f MB) total." msgstr "Sändningskö: %llu uppgifter, %ld KB (~ %.2f MB) totalt." #: pan/gui/post-ui.cc:281 pan/gui/post-ui.cc:312 #, c-format msgid "Error setting custom spellchecker: %s" msgstr "Fel vid inställning av stavningskontroll: %s" #: pan/gui/post-ui.cc:285 pan/gui/post-ui.cc:293 pan/gui/post-ui.cc:316 #: pan/gui/post-ui.cc:324 #, c-format msgid "Error setting spellchecker: %s" msgstr "Fel vid inställning av stavningskontroll: %s" #: pan/gui/post-ui.cc:453 msgid "_Profile" msgstr "_Profil" #: pan/gui/post-ui.cc:454 msgid "Set Editor" msgstr "Ställ in redigerare" #: pan/gui/post-ui.cc:456 msgid "_Send Article" msgstr "_Skicka artikel" #: pan/gui/post-ui.cc:456 msgid "Send Article Now" msgstr "Skicka artikel nu" #: pan/gui/post-ui.cc:457 msgid "_Send and Save Articles to NZB" msgstr "_Skicka och spara artiklar från denna NZB" #: pan/gui/post-ui.cc:457 msgid "Send and Save Articles to NZB" msgstr "Skicka och spara artiklar till NZB" #: pan/gui/post-ui.cc:458 msgid "Set Character _Encoding..." msgstr "Ställ in tecken_kodning…" #: pan/gui/post-ui.cc:459 msgid "Set Content _Transfer Encoding..." msgstr "Ställ in _överföringskodning för innehåll…" #: pan/gui/post-ui.cc:460 msgid "Sa_ve Draft" msgstr "Spa_ra utkast" #: pan/gui/post-ui.cc:460 msgid "Save as a Draft for Future Posting" msgstr "Spara som ett utkast för framtida postning" #: pan/gui/post-ui.cc:461 msgid "_Open Draft..." msgstr "_Öppna utkast…" #: pan/gui/post-ui.cc:461 msgid "Open an Article Draft" msgstr "Öppna ett artikelutkast" #: pan/gui/post-ui.cc:466 msgid "_Rot13" msgstr "_Rotera 13 tecken" #: pan/gui/post-ui.cc:466 msgid "Rot13 Selected Text" msgstr "Rotera markerad text 13 tecken" #: pan/gui/post-ui.cc:467 msgid "Run _Editor" msgstr "Kör r_edigerare" #: pan/gui/post-ui.cc:467 msgid "Run Editor" msgstr "Kör redigerare" #: pan/gui/post-ui.cc:469 msgid "Add _Files to Queue" msgstr "Lägg till _filer i kön" #: pan/gui/post-ui.cc:469 msgid "Add Files to Queue" msgstr "Lägg till filer i kön" #: pan/gui/post-ui.cc:484 pan/gui/post-ui.cc:485 msgid "Remove from Queue" msgstr "Ta bort från kö" #: pan/gui/post-ui.cc:489 pan/gui/post-ui.cc:490 msgid "Clear List" msgstr "Töm listan" #: pan/gui/post-ui.cc:494 pan/gui/post-ui.cc:495 msgid "Select Needed Parts" msgstr "Välj behövda delar" #: pan/gui/post-ui.cc:499 pan/gui/post-ui.cc:500 pan/gui/task-pane.cc:680 #: pan/gui/task-pane.cc:681 msgid "Move Up" msgstr "Flytta upp" #: pan/gui/post-ui.cc:504 pan/gui/post-ui.cc:505 pan/gui/task-pane.cc:685 #: pan/gui/task-pane.cc:686 msgid "Move Down" msgstr "Flytta ned" #: pan/gui/post-ui.cc:509 pan/gui/post-ui.cc:510 msgid "Move to Top" msgstr "Flytta överst" #: pan/gui/post-ui.cc:514 pan/gui/post-ui.cc:515 msgid "Move to Bottom" msgstr "Flytta nederst" #: pan/gui/post-ui.cc:522 msgid "_Wrap Text" msgstr "Radbr_yt text" #: pan/gui/post-ui.cc:522 msgid "Wrap Text" msgstr "Radbryt text" #: pan/gui/post-ui.cc:523 msgid "Always Run Editor" msgstr "Kör alltid redigerare" #: pan/gui/post-ui.cc:524 msgid "Remember Character Encoding for This Group" msgstr "Kom ihåg teckenkodning för den här gruppen" #: pan/gui/post-ui.cc:525 msgid "Thread Attached Replies" msgstr "Tråda bifogade svar" #: pan/gui/post-ui.cc:526 msgid "PGP-Encrypt the Article" msgstr "PGP-kryptera artikeln" #: pan/gui/post-ui.cc:527 msgid "PGP-Sign the Article" msgstr "PGP-signera artikeln" #: pan/gui/post-ui.cc:528 msgid "Check _Spelling" msgstr "Kontrollera _stavning" #: pan/gui/post-ui.cc:547 msgid "New Article's Encoding:" msgstr "Kodning för ny artikel:" #: pan/gui/post-ui.cc:557 msgid "Content Transfer Encoding" msgstr "Överföringskodning för innehåll" #: pan/gui/post-ui.cc:558 msgid "New Article's Content Transfer Encoding:" msgstr "Överföringskodning för ny artikel:" #: pan/gui/post-ui.cc:742 msgid "Your changes will be lost!" msgstr "Dina ändringar kommer att förloras!" #: pan/gui/post-ui.cc:743 msgid "Close this window and lose your changes?" msgstr "Stäng det här fönstret och förlora dina ändringar?" #: pan/gui/post-ui.cc:788 pan/gui/post-ui.cc:827 msgid "There were problems with this post." msgstr "Det inträffade problem med den här posten." #: pan/gui/post-ui.cc:790 pan/gui/post-ui.cc:829 pan/gui/post-ui.cc:894 msgid "Go Back" msgstr "Gå tillbaka" #: pan/gui/post-ui.cc:792 msgid "Continue Anyway" msgstr "Fortsätt ändå" #. Prompt the user #: pan/gui/post-ui.cc:821 #, c-format msgid "" "Message uses characters not specified in charset '%s' - possibly use '%s' " msgstr "" "Meddelandet använder tecken som inte angivits i teckenuppsättningen ”%s” — " "använd möjligen ”%s” " #: pan/gui/post-ui.cc:844 msgid "Go _Online" msgstr "Ansl_ut" #: pan/gui/post-ui.cc:893 msgid "The file queue is empty, so no files can be saved." msgstr "Filkön är tom, så inga filer kan sparas." #: pan/gui/post-ui.cc:1073 msgid "IO Error" msgstr "IO-fel" #: pan/gui/post-ui.cc:1073 msgid "No space left on device" msgstr "Inget utrymme kvar på enheten" #: pan/gui/post-ui.cc:1074 #, c-format msgid "Error copying message to %s folder. Reason: %s" msgstr "Fel vid kopiering av meddelande till %s-mappen. Orsak: %s" #: pan/gui/post-ui.cc:1080 #, c-format msgid "Error creating message in %s mail folder: Invalid article." msgstr "Fel vid skapande av meddelande i postmapp %s: ogiltig artikel." #: pan/gui/post-ui.cc:1102 msgid "" "No posting server is set for this posting profile.\n" "Please edit the profile via Edit|Manage Posting Profiles." msgstr "" "Ingen postningsserver är inställd för den här postandeprofilen.\n" "Redigera profilen via Redigera|Hantera postandeprofiler." #: pan/gui/post-ui.cc:1107 msgid "" "The selected posting server is currently disabled. Please choose an " "appropriate alternative." msgstr "Vald sändserver är inaktiverad. Välj ett passande alternativ." #: pan/gui/post-ui.cc:1149 msgid "Pan is Offline." msgstr "Pan är frånkopplad." #: pan/gui/post-ui.cc:1150 msgid "Go online to post the article?" msgstr "Anslut för att posta artikeln?" #: pan/gui/post-ui.cc:1199 #, c-format msgid "" "Error signing/encrypting your message. Perhaps you misspelled your email " "address (%s)?" msgstr "" "Fel vid kryptering/signering av ditt meddelande. Kanske du felstavade din e-" "postadress (%s)?" #: pan/gui/post-ui.cc:1349 msgid "Error opening temporary file" msgstr "Fel vid öppnande av temporär fil" #: pan/gui/post-ui.cc:1360 #, c-format msgid "Error creating temporary file: %s" msgstr "Fel vid skapande av temporär fil: %s" #: pan/gui/post-ui.cc:1368 #, c-format msgid "Error writing article to temporary file: %s" msgstr "Fel vid skrivande av artikel till temporär fil: %s" #: pan/gui/post-ui.cc:1441 msgid "Open Draft Article" msgstr "Öppna artikelutkast" #: pan/gui/post-ui.cc:1683 msgid "Save Draft Article" msgstr "Spara artikelutkast" #: pan/gui/post-ui.cc:1721 msgid "File already exists." msgstr "Filen finns redan." #: pan/gui/post-ui.cc:1722 msgid "Overwrite it?" msgstr "Skriv över den?" #: pan/gui/post-ui.cc:1931 #, c-format msgid "Couldn't parse signature command \"%s\": %s" msgstr "Kunde inte tolka signaturkommandot ”%s”: %s" #: pan/gui/post-ui.cc:1967 msgid "Couldn't convert signature to UTF-8." msgstr "Kunde inte konvertera signaturen till UTF-8." #: pan/gui/post-ui.cc:2479 msgid "F_rom" msgstr "F_rån" #: pan/gui/post-ui.cc:2496 msgid "_Subject" msgstr "_Ämne" #: pan/gui/post-ui.cc:2509 msgid "_Newsgroups" msgstr "_Diskussionsgrupper" #: pan/gui/post-ui.cc:2523 msgid "Mail _To" msgstr "E-post _till" #: pan/gui/post-ui.cc:2626 msgid "Delete from Queue" msgstr "Ta bort från kö" #: pan/gui/post-ui.cc:2639 msgid "No." msgstr "Nr." #: pan/gui/post-ui.cc:2643 pan/gui/post-ui.cc:2735 pan/gui/post-ui.cc:2776 msgid "Filename" msgstr "Filnamn" #: pan/gui/post-ui.cc:2645 msgid "Size (KB)" msgstr "Storlek (KB)" #: pan/gui/post-ui.cc:2743 msgid "The current filename" msgstr "Det aktuella filnamnet" #: pan/gui/post-ui.cc:2747 msgid "Subject Line" msgstr "Ämnesrad" #: pan/gui/post-ui.cc:2755 msgid "The current subject line" msgstr "Den aktuella ämnesraden" #: pan/gui/post-ui.cc:2769 msgid "No. " msgstr "Nr. " #: pan/gui/post-ui.cc:2773 msgid "Enable/Disable" msgstr "Aktivera/inaktivera" #: pan/gui/post-ui.cc:2807 msgid "Follo_wup-To" msgstr "_Uppföljning-till" #. i18n: "poster" is a key used by many newsreaders. probably safest to keep this key in english. #: pan/gui/post-ui.cc:2816 msgid "" "The newsgroups where replies to your message should go. This is only needed " "if it differs from the \"Newsgroups\" header.\n" "\n" "To direct all replies to your email address, use \"Followup-To: poster\"" msgstr "" "Diskussionsgrupperna dit svaren på dina meddelanden ska gå. Det här behövs " "endast om det skiljer sig från ”Diskussionsgrupper”-rubriken.\n" "\n" "För att dirigera alla svar till din e-postadress, använd ”Uppföljning-till: " "poster”" #: pan/gui/post-ui.cc:2823 msgid "_Reply-To" msgstr "_Svara-till" #: pan/gui/post-ui.cc:2831 msgid "" "The email account where mail replies to your posted message should go. This " "is only needed if it differs from the \"From\" header." msgstr "" "E-postkontot dit svar på ditt postade meddelande ska gå. Det här behövs " "endast om det skiljer sig från ”Från”-rubriken." #: pan/gui/post-ui.cc:2838 msgid "_Custom Headers" msgstr "_Anpassade rubriker" #: pan/gui/post-ui.cc:2862 msgid "Add \"_User-Agent\" header" msgstr "Lägg till ”_User-Agent”-rubrik" #: pan/gui/post-ui.cc:2869 msgid "Add \"Message-_ID\" header" msgstr "Lägg till ”Meddelande-_ID”-rubrik" #: pan/gui/post-ui.cc:2997 msgid "Select Parts" msgstr "Markera delar" #: pan/gui/post-ui.cc:3010 msgid "_Parts" msgstr "_Delar" #: pan/gui/post-ui.cc:3177 msgid "Post Article" msgstr "Posta artikel" #: pan/gui/post-ui.cc:3198 msgid "_Message" msgstr "_Meddelande" #: pan/gui/post-ui.cc:3199 msgid "More _Headers" msgstr "_Fler rubriker" #: pan/gui/post-ui.cc:3200 msgid "File _Queue" msgstr "Fil_kö" #: pan/gui/post-ui.cc:3231 pan/gui/profiles-dialog.cc:490 #, no-c-format msgid "On %d, %n wrote:" msgstr "Den %d skrev %n:" #: pan/gui/post-ui.cc:3260 msgid "Add files to queue" msgstr "Lägg till filer i kön" #: pan/gui/post-ui.cc:3336 msgid "Save Upload Queue as NZB File" msgstr "Spara sändfilkö som en NZB-fil" #: pan/gui/prefs.cc:366 #, c-format msgid "Couldn't parse %s color \"%s\"" msgstr "Kunde inte tolka %s färg ”%s”" #: pan/gui/prefs-ui.cc:139 msgid "Grab Key" msgstr "Ställ in tangent" #: pan/gui/prefs-ui.cc:145 #, c-format msgid "" "Press the combination of the keys\n" "you want to use for \"%s\"." msgstr "" "Tryck ned den kombination av tangenter\n" "du vill använda för ”%s”." #: pan/gui/prefs-ui.cc:182 msgid "Edit Shortcut" msgstr "Redigera genväg" #: pan/gui/prefs-ui.cc:243 msgid "Error: Shortcut key is invalid!" msgstr "Fel: Kortkommando är ogiltigt!" #: pan/gui/prefs-ui.cc:259 msgid "Error: Shortcut key already exists!" msgstr "Fel: Det finns redan ett kortkommando!" #: pan/gui/prefs-ui.cc:593 msgid "Show only icons" msgstr "Visa bara ikoner" #: pan/gui/prefs-ui.cc:594 msgid "Show only text" msgstr "Visa bara text" #: pan/gui/prefs-ui.cc:595 msgid "Show icons and text" msgstr "Visa ikoner och text" #: pan/gui/prefs-ui.cc:634 msgid "Use GNOME Preferences" msgstr "Använd inställningar från GNOME" #: pan/gui/prefs-ui.cc:635 msgid "Use KDE Preferences" msgstr "Använd inställningar från KDE" #: pan/gui/prefs-ui.cc:636 msgid "Use OS X Preferences" msgstr "Använd inställningar från OS X" #: pan/gui/prefs-ui.cc:637 msgid "Use Windows Preferences" msgstr "Använd inställningar från Windows" #: pan/gui/prefs-ui.cc:638 msgid "Custom Command:" msgstr "Anpassat kommando:" #: pan/gui/prefs-ui.cc:690 msgid "Disabled" msgstr "Inaktiverad" #: pan/gui/prefs-ui.cc:691 msgid "Only new (score == 0)" msgstr "Endast nya (poäng == 0)" #: pan/gui/prefs-ui.cc:692 msgid "9999 or more" msgstr "9999 eller mer" #: pan/gui/prefs-ui.cc:693 msgid "5000 to 9998" msgstr "5000 till 9998" #: pan/gui/prefs-ui.cc:694 msgid "1 to 4999" msgstr "1 till 4999" #: pan/gui/prefs-ui.cc:695 msgid "-9998 to -1" msgstr "-9998 till -1" #: pan/gui/prefs-ui.cc:696 msgid "-9999 or less" msgstr "-9999 eller lägre" #: pan/gui/prefs-ui.cc:760 #, c-format msgid "Select default global character set. Current setting: %s." msgstr "" "Välj global standardteckenuppsättning. Aktuell inställning: %s." #: pan/gui/prefs-ui.cc:792 msgid "Global Character Set Settings" msgstr "Inställningar för global teckenuppsättning" #: pan/gui/prefs-ui.cc:886 pan/gui/task-pane.cc:1067 msgid "State" msgstr "Tillstånd" #: pan/gui/prefs-ui.cc:920 msgid "Enabled" msgstr "Aktiverad" #: pan/gui/prefs-ui.cc:924 msgid "Column Name" msgstr "Kolumnnamn" #: pan/gui/prefs-ui.cc:962 msgid "Pan: Preferences" msgstr "Pan: Inställningar" #: pan/gui/prefs-ui.cc:977 msgid "Mouse" msgstr "Mus" #: pan/gui/prefs-ui.cc:979 msgid "Single-click activates, rather than selects, _groups" msgstr "Enkelklick aktiverar _grupper istället för välja dem" #: pan/gui/prefs-ui.cc:981 msgid "Single-click activates, rather than selects, _articles" msgstr "Enkelklick aktiverar _artiklar istället för välja dem" #: pan/gui/prefs-ui.cc:984 msgid "Groups" msgstr "Grupper" #: pan/gui/prefs-ui.cc:986 msgid "Get new headers in subscribed groups on _startup" msgstr "Hämta nya rubriker i prenumererade grupper vid _uppstart" #: pan/gui/prefs-ui.cc:988 msgid "Get new headers when _entering group" msgstr "Hämta nya rubriker när en _grupp gås in i" #: pan/gui/prefs-ui.cc:990 msgid "Mark entire group _read when leaving group" msgstr "Markera hela gruppen som _läst då en grupp lämnas" #: pan/gui/prefs-ui.cc:992 msgid "Mark entire group read before getting _new headers" msgstr "Markera hela gruppen som läst innan _nya rubriker hämtas" #: pan/gui/prefs-ui.cc:994 msgid "E_xpand all threads when entering group" msgstr "F_äll ut alla trådar när en grupp gås in i" #: pan/gui/prefs-ui.cc:999 msgid "Articles" msgstr "Artiklar" #: pan/gui/prefs-ui.cc:1001 msgid "Mark downloaded articles read" msgstr "Markera hämtade artiklar som lästa" #: pan/gui/prefs-ui.cc:1003 msgid "Space selects next article rather than next unread" msgstr "Blanksteg väljer nästa artikel istället för nästa olästa" #: pan/gui/prefs-ui.cc:1005 msgid "Expand threads upon selection" msgstr "Expandera trådar vid markering" #: pan/gui/prefs-ui.cc:1007 msgid "Always ask before deleting an article" msgstr "Fråga alltid innan borttagning av en artikel" #: pan/gui/prefs-ui.cc:1009 msgid "Smooth scrolling" msgstr "Mjuk rullning" #: pan/gui/prefs-ui.cc:1014 msgid "Article Cache" msgstr "Artikelcache" #: pan/gui/prefs-ui.cc:1015 msgid "Clear article cache on shutdown" msgstr "Töm artikelcache vid nerstängning" #: pan/gui/prefs-ui.cc:1018 msgid "Size of article cache (in MiB):" msgstr "Storlek på artikelcache (i MiB):" #: pan/gui/prefs-ui.cc:1022 msgid "File extension for cached articles: " msgstr "Filändelse för cachade artiklar: " #: pan/gui/prefs-ui.cc:1026 msgid "Tabs" msgstr "Flikar" #: pan/gui/prefs-ui.cc:1031 msgid "_Behavior" msgstr "_Beteende" #: pan/gui/prefs-ui.cc:1031 msgid "Behavior" msgstr "Beteende" #: pan/gui/prefs-ui.cc:1037 msgid "Task Pane" msgstr "Uppgiftpanel" #: pan/gui/prefs-ui.cc:1038 msgid "Show task pane popups" msgstr "Visa poppupper i uppgiftspanelen" #: pan/gui/prefs-ui.cc:1040 msgid "Show Download Meter" msgstr "Visa hämtningsindikator" #: pan/gui/prefs-ui.cc:1044 msgid "_Panes" msgstr "_Paneler" #: pan/gui/prefs-ui.cc:1044 msgid "Panes" msgstr "Paneler" #: pan/gui/prefs-ui.cc:1050 msgid "Language Settings" msgstr "Språkinställningar" #: pan/gui/prefs-ui.cc:1051 msgid "Font" msgstr "Typsnitt" #. systray and notify popup #: pan/gui/prefs-ui.cc:1058 msgid "System Tray Behavior" msgstr "Beteende i aktivitetsfältet" #: pan/gui/prefs-ui.cc:1060 msgid "Start Pan minimized" msgstr "Starta Pan minimerat" #: pan/gui/prefs-ui.cc:1063 msgid "Show notifications" msgstr "Visa aviseringar" #. allow multiple instances (seperate, not communicating with dbus) #: pan/gui/prefs-ui.cc:1068 msgid "Startup Behavior" msgstr "Uppstartsbeteende" #: pan/gui/prefs-ui.cc:1070 msgid "Allow multiple instances of Pan" msgstr "Tillåt flera instanser av Pan" #: pan/gui/prefs-ui.cc:1075 msgid "Autosave Article Draft" msgstr "Spara artikelutkast automatiskt" #: pan/gui/prefs-ui.cc:1077 msgid "Minutes to autosave the current Article Draft: " msgstr "Minuter till att automatiskt spara aktuellt artikelutkast: " #: pan/gui/prefs-ui.cc:1082 msgid "Autosave Articles" msgstr "Spara artiklar automatiskt" #: pan/gui/prefs-ui.cc:1084 msgid "Minutes to autosave newsrc files: " msgstr "Minuter till att automatiskt spara newsrc-filer: " #: pan/gui/prefs-ui.cc:1091 msgid "Password Storage" msgstr "Lösenordsförvaring" #: pan/gui/prefs-ui.cc:1093 msgid "Save passwords in password storage" msgstr "Spara lösenord i lösenordsförvaring" #: pan/gui/prefs-ui.cc:1100 msgid "_Miscellaneous" msgstr "_Övrigt" #: pan/gui/prefs-ui.cc:1100 msgid "Miscellaneous" msgstr "Övrigt" #: pan/gui/prefs-ui.cc:1105 msgid "Pane Layout" msgstr "Panellayout" #: pan/gui/prefs-ui.cc:1124 msgid "1=Groups, 2=Headers, 3=Body" msgstr "1=Grupper, 2=Rubriker, 3=Artikeltext" #: pan/gui/prefs-ui.cc:1126 msgid "1=Groups, 2=Body, 3=Headers" msgstr "1=Grupper, 2=Artikeltext, 3=Rubriker" #: pan/gui/prefs-ui.cc:1128 msgid "1=Headers, 2=Groups, 3=Body" msgstr "1=Rubriker, 2=Grupper, 3=Artikeltext" #: pan/gui/prefs-ui.cc:1130 msgid "1=Headers, 2=Body, 3=Groups" msgstr "1=Rubriker, 2=Artikeltext, 3=Grupper" #: pan/gui/prefs-ui.cc:1132 msgid "1=Body, 2=Groups, 3=Headers" msgstr "1=Artikeltext, 2=Grupper, 3=Rubriker" #: pan/gui/prefs-ui.cc:1134 msgid "1=Body, 2=Headers, 3=Groups" msgstr "1=Artikeltext, 2=Rubriker, 3=Grupper" #: pan/gui/prefs-ui.cc:1138 msgid "Layout" msgstr "Layout" #: pan/gui/prefs-ui.cc:1143 msgid "Header Pane Columns" msgstr "Kolumner för rubrikpanelen" #: pan/gui/prefs-ui.cc:1147 msgid "_Headers" msgstr "_Rubriker" #: pan/gui/prefs-ui.cc:1147 msgid "Headers" msgstr "Rubriker" #: pan/gui/prefs-ui.cc:1153 msgid "" "This menu lets you configure Pan to take certain actions on your behalf " "automatically, based on an article's score." msgstr "" "Denna meny låter dig konfigurera Pan till att utföra åtgärder åt dig " "automatiskt, baserat på en artikels poäng." #: pan/gui/prefs-ui.cc:1158 msgid "Mark affected articles read" msgstr "Markera berörda artiklar som lästa" #: pan/gui/prefs-ui.cc:1167 msgid "_Delete articles scoring at: " msgstr "_Ta bort artiklar med poäng: " #: pan/gui/prefs-ui.cc:1173 msgid "Mark articles read scoring at: " msgstr "Markera artiklar med följande poäng som lästa: " #: pan/gui/prefs-ui.cc:1179 msgid "_Cache articles scoring at: " msgstr "_Cacha artiklar om de har poäng: " #: pan/gui/prefs-ui.cc:1185 msgid "Download attachments of articles scoring at: " msgstr "Hämta bilagor för artiklar med poäng: " #: pan/gui/prefs-ui.cc:1188 msgid "Actions" msgstr "Åtgärder" #: pan/gui/prefs-ui.cc:1193 pan/gui/prefs-ui.cc:1214 msgid "Fonts" msgstr "Typsnitt" #: pan/gui/prefs-ui.cc:1195 msgid "Use custom font in Group Pane:" msgstr "Använd anpassat typsnitt i gruppanelen:" #: pan/gui/prefs-ui.cc:1200 msgid "Use custom font in Header Pane:" msgstr "Använd anpassat typsnitt i rubrikpanelen:" #: pan/gui/prefs-ui.cc:1205 msgid "Use custom font in Body Pane:" msgstr "Använd anpassat typsnitt i artikelpanelen:" #: pan/gui/prefs-ui.cc:1210 msgid "Monospace font:" msgstr "Typsnitt med fast breddsteg:" #: pan/gui/prefs-ui.cc:1214 msgid "_Fonts" msgstr "_Typsnitt" #: pan/gui/prefs-ui.cc:1223 msgid "Header Pane" msgstr "Rubrikpanel" #: pan/gui/prefs-ui.cc:1226 pan/gui/prefs-ui.cc:1232 pan/gui/prefs-ui.cc:1238 #: pan/gui/prefs-ui.cc:1244 pan/gui/prefs-ui.cc:1250 pan/gui/prefs-ui.cc:1256 #: pan/gui/prefs-ui.cc:1265 pan/gui/prefs-ui.cc:1271 pan/gui/prefs-ui.cc:1277 #: pan/gui/prefs-ui.cc:1283 pan/gui/prefs-ui.cc:1289 pan/gui/prefs-ui.cc:1299 #: pan/gui/prefs-ui.cc:1309 msgid "Text:" msgstr "Text:" #: pan/gui/prefs-ui.cc:1228 pan/gui/prefs-ui.cc:1234 pan/gui/prefs-ui.cc:1240 #: pan/gui/prefs-ui.cc:1246 pan/gui/prefs-ui.cc:1252 pan/gui/prefs-ui.cc:1258 #: pan/gui/prefs-ui.cc:1267 pan/gui/prefs-ui.cc:1273 pan/gui/prefs-ui.cc:1279 #: pan/gui/prefs-ui.cc:1285 pan/gui/prefs-ui.cc:1291 pan/gui/prefs-ui.cc:1301 #: pan/gui/prefs-ui.cc:1311 msgid "Background:" msgstr "Bakgrund:" #: pan/gui/prefs-ui.cc:1230 msgid "Scores of 9999 or more:" msgstr "Poäng som är 9999 eller högre:" #: pan/gui/prefs-ui.cc:1236 msgid "Scores from 5000 to 9998:" msgstr "Poäng från 5000 till 9998:" #: pan/gui/prefs-ui.cc:1242 msgid "Scores from 1 to 4999:" msgstr "Poäng från 1 till 4999:" #: pan/gui/prefs-ui.cc:1248 msgid "Scores from -9998 to -1:" msgstr "Poäng från -9998 till -1:" #: pan/gui/prefs-ui.cc:1254 msgid "Scores of -9999 or less:" msgstr "Poäng som är -9999 eller lägre:" #: pan/gui/prefs-ui.cc:1260 msgid "Collapsed thread with unread articles:" msgstr "Ihopfälld tråd med olästa artiklar:" #: pan/gui/prefs-ui.cc:1262 msgid "Body Pane" msgstr "Artikelpanel" #: pan/gui/prefs-ui.cc:1269 msgid "First level of quoted text:" msgstr "Första nivån av citerad text:" #: pan/gui/prefs-ui.cc:1275 msgid "Second level of quoted text:" msgstr "Andra nivån av citerad text:" #: pan/gui/prefs-ui.cc:1281 msgid "Third level of quoted text:" msgstr "Tredje nivån av citerad text:" #. #: pan/gui/prefs-ui.cc:1287 msgid "URL:" msgstr "URL:" #. #: pan/gui/prefs-ui.cc:1293 msgid "Signature:" msgstr "Signatur:" #: pan/gui/prefs-ui.cc:1296 msgid "Group Pane" msgstr "Gruppanel" #. #: pan/gui/prefs-ui.cc:1303 msgid "Group Color:" msgstr "Gruppfärg:" #: pan/gui/prefs-ui.cc:1307 msgid "Other Text" msgstr "Annan text" #: pan/gui/prefs-ui.cc:1313 msgid "Text Color:" msgstr "Textfärg:" #: pan/gui/prefs-ui.cc:1316 msgid "_Colors" msgstr "_Färger" #: pan/gui/prefs-ui.cc:1316 msgid "Colors" msgstr "Färger" #: pan/gui/prefs-ui.cc:1321 msgid "Preferred Applications" msgstr "Föredragna program" #: pan/gui/prefs-ui.cc:1325 msgid "_Web browser:" msgstr "_Webbläsare:" #: pan/gui/prefs-ui.cc:1328 msgid "_Gemini client:" msgstr "_Gemini-klient:" #: pan/gui/prefs-ui.cc:1331 msgid "_Mail reader:" msgstr "_E-postläsare:" #: pan/gui/prefs-ui.cc:1333 msgid "_Text editor:" msgstr "_Textredigerare:" #: pan/gui/prefs-ui.cc:1335 msgid "_HTML previewer:" msgstr "_HTML-förhandsvisare:" #: pan/gui/prefs-ui.cc:1337 msgid "_Applications" msgstr "_Program" #: pan/gui/prefs-ui.cc:1337 msgid "Applications" msgstr "Program" #: pan/gui/prefs-ui.cc:1342 pan/gui/task-pane.cc:555 msgid "Encoding" msgstr "Kodning" #: pan/gui/prefs-ui.cc:1346 msgid "Default bytes per file (for encoder): " msgstr "Standardbyte per fil (för kodare): " #: pan/gui/prefs-ui.cc:1351 msgid "_Upload" msgstr "_Skicka upp" #: pan/gui/prefs-ui.cc:1351 msgid "Upload" msgstr "Skicka upp" #: pan/gui/prefs-ui.cc:1360 msgid "_Shortcuts" msgstr "_Genvägar" #: pan/gui/prefs-ui.cc:1360 msgid "Shortcuts" msgstr "Genvägar" #: pan/gui/profiles-dialog.cc:83 msgid "Please choose your email address according to your PGP key's user id." msgstr "Välj din e-postadress utefter din PGP-nyckels användar-id." #: pan/gui/profiles-dialog.cc:131 msgid "Posting Profile" msgstr "Postandeprofil" #: pan/gui/profiles-dialog.cc:143 msgid "Profile Information" msgstr "Profilinformation" #: pan/gui/profiles-dialog.cc:147 msgid "_Profile Name:" msgstr "_Profilnamn:" #: pan/gui/profiles-dialog.cc:150 msgid "Required Information" msgstr "Nödvändig information" #: pan/gui/profiles-dialog.cc:154 msgid "_Full Name:" msgstr "_Fullständigt namn:" #: pan/gui/profiles-dialog.cc:158 msgid "" "Your email address.\n" "Note that this has to match your PGP signature's address\n" "if you want your messages to be PGP-signed or encrypted correctly." msgstr "" "Din e-postadress.\n" "Observera att detta måste matcha din PGP-signaturs adress\n" "om du vill att dina meddelanden ska PGP-signeras eller krypteras korrekt." #: pan/gui/profiles-dialog.cc:162 msgid "_Email Address:" msgstr "_E-postadress:" #: pan/gui/profiles-dialog.cc:164 msgid "_Post Articles via:" msgstr "_Posta artiklar via:" #: pan/gui/profiles-dialog.cc:167 msgid "Signature" msgstr "Signatur" #: pan/gui/profiles-dialog.cc:170 msgid "_Use a Signature" msgstr "_Använd en signatur" #: pan/gui/profiles-dialog.cc:174 msgid "Signature File" msgstr "Signaturfil" #: pan/gui/profiles-dialog.cc:184 msgid "Text File" msgstr "Textfil" #: pan/gui/profiles-dialog.cc:186 msgid "Text" msgstr "Text" #: pan/gui/profiles-dialog.cc:188 msgid "Command" msgstr "Kommando" #: pan/gui/profiles-dialog.cc:191 msgid "PGP Signature" msgstr "PGP-signatur" #: pan/gui/profiles-dialog.cc:196 msgid "Signature Type: " msgstr "Signaturtyp: " #: pan/gui/profiles-dialog.cc:227 msgid "Avatars" msgstr "Profilbilder" #: pan/gui/profiles-dialog.cc:230 msgid "" "You can add an avatar icon to your articles with a Base64-encoded PNG.\n" "Add the Base64-encoded picture without the trailing “Face:”." msgstr "" "Du kan lägga till en profilbild till dina artiklar med en Base64-kodad PNG.\n" "Lägg till den Base64-kodade bilden utan eftersläpande ”Face:”." #: pan/gui/profiles-dialog.cc:232 msgid "_Face:" msgstr "_Face:" #: pan/gui/profiles-dialog.cc:236 msgid "" "You can add an avatar icon to your articles with a unique X-Face code.\n" "Add the code without the trailing \"X-Face:\" \n" " if it was generated by a helper program (for example http://www.dairiki.org/" "xface/xface.php)." msgstr "" "Du kan lägga till en profilbild till dina artiklar med en unik X-" "ansikteskod.\n" "Lägg till koden utan eftersläpande ”X-Face:” \n" " om den generades av ett hjälpprogram (till exempel http://www.dairiki.org/" "xface/xface.php)." #: pan/gui/profiles-dialog.cc:239 msgid "_X-Face:" msgstr "_X-Face:" #: pan/gui/profiles-dialog.cc:241 msgid "Optional Information" msgstr "Valfri information" #: pan/gui/profiles-dialog.cc:246 msgid "" "When posting to Usenet, your article's Message-ID contains a domain name.\n" "You can set a custom domain name here, or leave it blank to let Pan use the " "domain name from your email address." msgstr "" "När du postar till Usenet kommer din artikels meddelande-ID att innehålla " "ett domännamn.\n" "Du kan ställa in ett anpassat domännamn här eller lämna det blankt för att " "låta Pan använda domännamnet från din e-postadress." #: pan/gui/profiles-dialog.cc:249 msgid "Message-ID _Domain Name:" msgstr "_Domännamn för meddelande-ID:" #: pan/gui/profiles-dialog.cc:253 #, c-format msgid "" "%i for Message-ID\n" "%a for Author and Address\n" "%n for Author name\n" "%d for Date" msgstr "" "%i för meddelande-ID\n" "%a för författare och adress\n" "%n för författarnamn\n" "%d för datum" #: pan/gui/profiles-dialog.cc:254 msgid "_Attribution:" msgstr "_Tillskrivning:" #. Translators: Do not localize Reply-To and the quote marks in \"Your Name\". #: pan/gui/profiles-dialog.cc:279 msgid "" "Extra headers to be included in your articles, such as\n" "Reply-To: \"Your Name\" \n" "Organization: Your Organization\n" msgstr "" "Extra rubriker som ska inkluderas i dina postningar, exempelvis\n" "Reply-To: ”Ditt namn” \n" "Organization: Din organisation\n" #: pan/gui/profiles-dialog.cc:289 msgid "E_xtra Headers:" msgstr "E_xtra rubriker:" #: pan/gui/profiles-dialog.cc:334 msgid "Invalid email address." msgstr "Ogiltig e-postadress." #: pan/gui/profiles-dialog.cc:335 msgid "Please use an address of the form joe@somewhere.org" msgstr "Använd en adress i formatet evert@någonstans.se" #: pan/gui/profiles-dialog.cc:491 msgid "New Profile" msgstr "Ny profil" #: pan/gui/profiles-dialog.cc:537 msgid "Posting Profiles" msgstr "Postandeprofiler" #: pan/gui/profiles-dialog.cc:553 msgid "Profiles" msgstr "Profiler" #: pan/gui/save-attach-ui.cc:44 #, c-format msgid "" "%g - group as one directory (alt.binaries.pictures.trains)\n" "%G - group as nested directory (/alt/binaries/pictures/trains)\n" "%s - Subject line excerpt\n" "%S - Subject line\n" "%n - Poster display name\n" "%e - Poster email address\n" "%d - Article timestamp\n" "\"/home/user/News/Pan/%g\" becomes\n" "\"/home/user/News/Pan/alt.binaries.pictures.trains\", and\n" "\"/home/user/News/Pan/%G\" becomes\n" "\"/home/user/News/Pan/alt/binaries/pictures/trains\"," msgstr "" "%g — grupp som en katalog (alt.binaries.pictures.trains)\n" "%G — grupp som nästlad katalog (/alt/binaries/pictures/trains)\n" "%s — utdrag från ämnesrad\n" "%S — ämnesrad\n" "%n — postarens visningsnamn\n" "%e — postarens e-postadress\n" "%d — artikelns tidsstämpel\n" "”/home/användare/News/Pan/%g” blir\n" "”/home/användare/News/Pan/alt.binaries.pictures.trains”, och\n" "”/home/användare/News/Pan/%G” blir\n" "”/home/användare/News/Pan/alt/binaries/pictures/trains”," #: pan/gui/save-attach-ui.cc:196 pan/gui/save-ui.cc:216 msgid "Add to the queue sorted by date posted" msgstr "Lägg till i kön sorterade efter postdatum" #: pan/gui/save-attach-ui.cc:197 pan/gui/save-ui.cc:217 msgid "Add to the front of the queue" msgstr "Lägg till främst i kön" #: pan/gui/save-attach-ui.cc:198 pan/gui/save-ui.cc:218 msgid "Add to the back of the queue" msgstr "Lägg till längst bak i kön" #: pan/gui/save-attach-ui.cc:230 msgid "Pan: Save Attachments" msgstr "Pan: spara bilagor" #: pan/gui/save-attach-ui.cc:255 pan/gui/save-attach-ui.cc:273 #: pan/gui/save-ui.cc:270 pan/gui/save-ui.cc:291 msgid "_Location:" msgstr "_Plats:" #: pan/gui/save-attach-ui.cc:259 pan/gui/save-ui.cc:274 msgid "Save Articles" msgstr "Spara artiklar" #: pan/gui/save-attach-ui.cc:276 pan/gui/save-ui.cc:294 #, c-format msgid "_Group's path: %s" msgstr "_Gruppens sökväg: %s" #: pan/gui/save-attach-ui.cc:287 pan/gui/save-ui.cc:309 msgid "_Priority:" msgstr "_Prioritet:" #: pan/gui/save-ui.cc:44 #, c-format msgid "" "%g - group as one directory (alt.binaries.pictures.trains)\n" "%G - group as nested directory (/alt/binaries/pictures/trains)\n" "%s - subject line excerpt\n" "%S - subject line\n" "%n - Poster display name\n" "%e - Poster email address\n" "%d - Article timestamp\n" " \n" "\"/home/user/News/Pan/%g\" becomes\n" "\"/home/user/News/Pan/alt.binaries.pictures.trains\", and\n" "\"/home/user/News/Pan/%G\" becomes\n" "\"/home/user/News/Pan/alt/binaries/pictures/trains\"," msgstr "" "%g — grupp som en katalog (alt.binaries.pictures.trains)\n" "%G — grupp som nästlad katalog (/alt/binaries/pictures/trains)\n" "%s — utdrag från ämnesrad\n" "%S — ämnesrad\n" "%n — postarens visningsnamn\n" "%e — postarens e-postadress\n" "%d — artikelns tidsstämpel\n" " \n" "”/home/användare/News/Pan/%g” blir\n" "”/home/användare/News/Pan/alt.binaries.pictures.trains”, och\n" "”/home/användare/News/Pan/%G” blir\n" "”/home/användare/News/Pan/alt/binaries/pictures/trains”," #: pan/gui/save-ui.cc:207 msgid "Save attachments" msgstr "Spara bilagor" #: pan/gui/save-ui.cc:208 msgid "Save text" msgstr "Spara text" #: pan/gui/save-ui.cc:209 msgid "Save attachments and text" msgstr "Spara bilagor och text" #: pan/gui/save-ui.cc:245 msgid "Pan: Save Articles" msgstr "Pan: Spara artiklar" #: pan/gui/save-ui.cc:305 msgid "_Action:" msgstr "_Åtgärd:" #: pan/gui/score-add-ui.cc:89 msgid "is more than" msgstr "är större än" #: pan/gui/score-add-ui.cc:90 msgid "is at most" msgstr "är som mest" #: pan/gui/score-add-ui.cc:112 msgid "increase the article's score by" msgstr "öka artikelns poäng med" #: pan/gui/score-add-ui.cc:113 msgid "decrease the article's score by" msgstr "sänk artikelns poäng med" #: pan/gui/score-add-ui.cc:114 msgid "set the article's score to" msgstr "ställ in artikelns poäng till" #: pan/gui/score-add-ui.cc:115 msgid "watch the article (set its score to 9999)" msgstr "bevaka artikeln (ställ in dess poäng till 9999)" #: pan/gui/score-add-ui.cc:116 msgid "ignore the article (set its score to -9999)" msgstr "ignorera artikeln (ställ in dess poäng till -9999)" #: pan/gui/score-add-ui.cc:141 msgid "References" msgstr "Referenser" #: pan/gui/score-add-ui.cc:142 msgid "Line Count" msgstr "Radantal" #: pan/gui/score-add-ui.cc:143 msgid "Byte Count" msgstr "Byteantal" #: pan/gui/score-add-ui.cc:144 msgid "Crosspost Group Count" msgstr "Antal korspostningsgrupper" #: pan/gui/score-add-ui.cc:145 msgid "Age (in days)" msgstr "Ålder (i dagar)" #: pan/gui/score-add-ui.cc:167 msgid "for the next month" msgstr "för nästa månad" #: pan/gui/score-add-ui.cc:168 msgid "for the next six months" msgstr "för de nästa sex månaderna" #: pan/gui/score-add-ui.cc:169 msgid "forever" msgstr "alltid" #: pan/gui/score-add-ui.cc:194 msgid "contains" msgstr "innehåller" #: pan/gui/score-add-ui.cc:195 msgid "doesn't contain" msgstr "innehåller inte" #: pan/gui/score-add-ui.cc:196 msgid "is" msgstr "är" #: pan/gui/score-add-ui.cc:197 msgid "isn't" msgstr "är inte" #: pan/gui/score-add-ui.cc:198 msgid "starts with" msgstr "börjar med" #: pan/gui/score-add-ui.cc:199 msgid "ends with" msgstr "slutar med" #: pan/gui/score-add-ui.cc:200 msgid "matches regex" msgstr "matchar det reguljära uttrycket" #: pan/gui/score-add-ui.cc:481 msgid "Another rule already sets this article's score." msgstr "En annan regel ställer redan in den här artikelns poäng." #: pan/gui/score-add-ui.cc:482 msgid "You may want to go back or delete the old rule." msgstr "Du kanske vill gå tillbaka eller ta bort den gamla regeln." #: pan/gui/score-add-ui.cc:484 msgid "Back" msgstr "Bakåt" #: pan/gui/score-add-ui.cc:485 pan/gui/task-pane.cc:1040 msgid "Delete" msgstr "Ta bort" #: pan/gui/score-add-ui.cc:486 pan/gui/score-add-ui.cc:607 #: pan/gui/score-view-ui.cc:207 msgid "Add" msgstr "Lägg till" #: pan/gui/score-add-ui.cc:553 msgid "Add and Re_score" msgstr "Lägg till och poängsätt på _nytt" #: pan/gui/score-add-ui.cc:602 pan/gui/score-add-ui.cc:622 msgid "New Scoring Rule" msgstr "Ny poängregel" #: pan/gui/score-add-ui.cc:633 msgid "Group name" msgstr "Gruppnamn" #: pan/gui/score-add-ui.cc:640 msgid "and" msgstr "och" #: pan/gui/score-view-ui.cc:55 msgid "Close and Re_score" msgstr "Stäng och poängsätt på _nytt" #: pan/gui/score-view-ui.cc:153 #, c-format msgid "File %s, Lines %d - %d" msgstr "Fil %s, Rader %d - %d" #: pan/gui/score-view-ui.cc:181 msgid "Pan: Article's Scores" msgstr "Pan: Artikelns poäng" #: pan/gui/score-view-ui.cc:212 msgid "New Score" msgstr "Ny poäng" #: pan/gui/score-view-ui.cc:217 msgid "Criteria" msgstr "Kriterium" #: pan/gui/score-view-ui.cc:240 msgid "Add a New Scoring Rule" msgstr "Lägg till en ny poängregel" #: pan/gui/score-view-ui.cc:247 msgid "Remove the Selected Scoring Rule" msgstr "Ta bort den markerade poängregeln" #: pan/gui/server-ui.cc:292 msgid "Please specify the server's address." msgstr "Ange serverns adress." #: pan/gui/server-ui.cc:344 msgid "Import SSL Certificate (PEM Format) From File" msgstr "Importera SSL-certifikat (PEM-format) från fil" #. create the dialog #: pan/gui/server-ui.cc:381 pan/gui/server-ui.cc:996 msgid "Add a Server" msgstr "Lägg till en server" #: pan/gui/server-ui.cc:381 pan/gui/server-ui.cc:1002 msgid "Edit a Server's Settings" msgstr "Redigera inställningarna för en server" #: pan/gui/server-ui.cc:401 msgid "Location" msgstr "Plats" #: pan/gui/server-ui.cc:405 msgid "The news server's actual address, e.g. \"news.mynewsserver.com\"." msgstr "" "Diskussionsgruppsserverns verkliga adress, t.ex. ”news." "mindiskussionsgruppsserver.se”." #: pan/gui/server-ui.cc:406 msgid "_Address:" msgstr "_Adress:" #: pan/gui/server-ui.cc:411 msgid "" "The news server's port number. Typically 119 for unencrypted and 563 for " "encrypted connections (SSL/TLS)." msgstr "" "Diskussionsgruppsserverns portnummer. Detta är vanligtvis 119 för " "okrypterade anslutningar och 563 för krypterade anslutningar (SSL/TLS)." #: pan/gui/server-ui.cc:412 msgid "Por_t:" msgstr "Por_t:" #: pan/gui/server-ui.cc:415 msgid "Login (if Required)" msgstr "Inloggning (om det krävs)" #: pan/gui/server-ui.cc:419 msgid "_Username:" msgstr "_Användarnamn:" #: pan/gui/server-ui.cc:420 msgid "" "The username to give the server when asked. If your server doesn't require " "authentication, you can leave this blank." msgstr "" "Användarnamnet att ge till servern när den frågar. Om din server inte " "kräver autentisering kan du lämna det här fältet tomt." #: pan/gui/server-ui.cc:424 msgid "_Password:" msgstr "_Lösenord:" #: pan/gui/server-ui.cc:425 msgid "" "The password to give the server when asked. If your server doesn't require " "authentication, you can leave this blank." msgstr "" "Lösenordet att ge till servern när den frågar. Om din server inte kräver " "autentisering kan du lämna det här fältet tomt." #: pan/gui/server-ui.cc:428 msgid "Settings" msgstr "Inställningar" #: pan/gui/server-ui.cc:435 msgid "Connection _Limit:" msgstr "Anslutnings_begränsning:" #: pan/gui/server-ui.cc:439 msgid "After Two Weeks" msgstr "Efter två veckor" #: pan/gui/server-ui.cc:440 msgid "After One Month" msgstr "Efter en månad" #: pan/gui/server-ui.cc:441 msgid "After Two Months" msgstr "Efter två månader" #: pan/gui/server-ui.cc:442 msgid "After Three Months" msgstr "Efter tre månader" #: pan/gui/server-ui.cc:443 msgid "After Six Months" msgstr "Efter sex månader" #: pan/gui/server-ui.cc:444 msgid "Never Expire Old Articles" msgstr "Ta aldrig bort gamla artiklar" #: pan/gui/server-ui.cc:458 msgid "E_xpire Old Articles:" msgstr "Ta bort ga_mla artiklar:" #: pan/gui/server-ui.cc:462 msgid "Primary" msgstr "Primär" #: pan/gui/server-ui.cc:463 msgid "Fallback" msgstr "Reserv" #: pan/gui/server-ui.cc:477 msgid "Server Rank:" msgstr "Serverrankning:" #: pan/gui/server-ui.cc:481 msgid "" "Fallback servers are used for articles that can't be found on the " "primaries. One common approach is to use free servers as primaries and " "subscription servers as fallbacks." msgstr "" "Reservservrar används för artiklar som inte kan hittas på de primära. Ett " "vanligt sätt är att använda fria servrar som primära och " "prenumerationsservrar som reserver." #: pan/gui/server-ui.cc:486 msgid "Disable Compression (N/A)" msgstr "Inaktivera komprimering (N/A)" #: pan/gui/server-ui.cc:487 msgid "XZVER Compression (Astraweb)" msgstr "XZVER-komprimering (Astraweb)" #: pan/gui/server-ui.cc:488 msgid "GZIP Compression (Giganews etc.)" msgstr "GZIP-komprimering (Giganews etc.)" #: pan/gui/server-ui.cc:502 msgid "Header Compression:" msgstr "Huvudkomprimering:" #: pan/gui/server-ui.cc:508 msgid "Security" msgstr "Säkerhet" #: pan/gui/server-ui.cc:513 msgid "Use Unsecure (Plaintext) Connections" msgstr "Använd osäkra anslutningar (klartext)" #: pan/gui/server-ui.cc:514 msgid "Use Secure SSL Connections" msgstr "Använd säkra SSL-anslutningar" #: pan/gui/server-ui.cc:529 msgid "TLS (SSL) Settings:" msgstr "TLS (SSL)-inställningar:" #: pan/gui/server-ui.cc:534 msgid "" "You can enable/disable secure SSL/TLS connections here. If you enable SSL/" "TLS, your data is encrypted and secure. It is encouraged to enable SSL/TLS " "for privacy reasons." msgstr "" "Du kan aktivera/inaktivera säkra SSL/TLS-anslutningar här. Om du aktiverar " "SSL/TLS är din data krypterad och säker. Av sekretesskäl uppmuntras du till " "att aktivera SSL/TLS." #: pan/gui/server-ui.cc:539 msgid "Always trust this server's certificate" msgstr "Lita alltid på denna servers certifikat" #: pan/gui/server-ui.cc:724 #, c-format msgid "Really delete \"%s\"?" msgstr "Verkligen ta bort ”%s”?" #: pan/gui/server-ui.cc:813 msgid "No information available." msgstr "Ingen information tillgänglig." #: pan/gui/server-ui.cc:823 #, c-format msgid "Server Certificate for '%s'" msgstr "Servercertifikat för ”%s”" #: pan/gui/server-ui.cc:922 #, c-format msgid "Really delete certificate for \"%s\"?" msgstr "Verkligen ta bort certifikatet för ”%s”?" #. dialog #: pan/gui/server-ui.cc:949 pan/gui/server-ui.cc:970 pan/gui/server-ui.cc:1068 msgid "Servers" msgstr "Servrar" #: pan/gui/server-ui.cc:1009 msgid "Remove a Server" msgstr "Ta bort en server" #. dialog #: pan/gui/server-ui.cc:1042 msgid "SSL Certificates" msgstr "SSL-certifikat" #: pan/gui/server-ui.cc:1063 msgid "Certificates" msgstr "Certifikat" #: pan/gui/server-ui.cc:1094 msgid "Import Certificate" msgstr "Importera certifikat" #: pan/gui/server-ui.cc:1100 msgid "Inspect Certificate" msgstr "Inspektera certifikat" #: pan/gui/server-ui.cc:1107 msgid "Remove Certificate" msgstr "Ta bort certifikat" #: pan/gui/task-pane.cc:124 #, c-format msgid "" "\n" "Upload\n" "\n" "Subject: \"%s\"\n" "From: %s\n" "Groups: %s\n" "Sourcefile: %s\n" msgstr "" "\n" "Skicka upp\n" "\n" "Ämne: ”%s”\n" "Från: %s\n" "Grupper: %s\n" "Källfil: %s\n" #: pan/gui/task-pane.cc:136 #, c-format msgid "" "\n" "Download\n" "\n" "Subject: \"%s\"\n" "From: %s\n" "Date: %s\n" "Groups: %s\n" "Save Path: %s\n" msgstr "" "\n" "Hämta\n" "\n" "Ämne: ”%s”\n" "Från: %s\n" "Datum: %s\n" "Grupper: %s\n" "Destination: %s\n" #: pan/gui/task-pane.cc:138 msgid "unknown" msgstr "okänd" #: pan/gui/task-pane.cc:306 msgid "Choose New Destination for Selected Tasks" msgstr "Välj ny destination för valda uppgifter" #: pan/gui/task-pane.cc:310 msgid "Save" msgstr "Spara" #: pan/gui/task-pane.cc:460 #, c-format msgid "Pan: Tasks (%d Queued, %d Running, %d Stopped)" msgstr "Pan: Uppgifter (%d kölagda, %d kör, %d stoppade)" #: pan/gui/task-pane.cc:462 #, c-format msgid "Pan: Tasks (%d Queued, %d Running)" msgstr "Pan: Uppgifter (%d kölagda, %d kör)" #: pan/gui/task-pane.cc:464 msgid "Pan: Tasks" msgstr "Pan: Uppgifter" #: pan/gui/task-pane.cc:489 #, c-format msgid "%lu selected, %s" msgstr "%lu markerade, %s" #: pan/gui/task-pane.cc:553 msgid "Running" msgstr "Kör" #: pan/gui/task-pane.cc:554 msgid "Decoding" msgstr "Avkodar" #: pan/gui/task-pane.cc:556 msgid "Queued for Decode" msgstr "Kölagd för avkodning" #: pan/gui/task-pane.cc:557 msgid "Queued for Encode" msgstr "Kölagd för kodning" #: pan/gui/task-pane.cc:558 msgid "Queued" msgstr "Kölagd" #: pan/gui/task-pane.cc:559 msgid "Stopped" msgstr "Stoppad" #: pan/gui/task-pane.cc:560 msgid "Removing" msgstr "Tar bort" #: pan/gui/task-pane.cc:589 #, c-format msgid "%d%% Done" msgstr "%d%% färdig" #: pan/gui/task-pane.cc:595 #, c-format msgid "%d:%02d:%02d Remaining (%d @ %lu KiB/s)" msgstr "%d:%02d:%02d återstår (%d @ %lu KiB/s)" #: pan/gui/task-pane.cc:690 pan/gui/task-pane.cc:691 msgid "Move To Top" msgstr "Flytta överst" #: pan/gui/task-pane.cc:695 pan/gui/task-pane.cc:696 msgid "Move To Bottom" msgstr "Flytta nederst" #: pan/gui/task-pane.cc:700 pan/gui/task-pane.cc:701 msgid "Show Task Information" msgstr "Visa uppgiftsinformation" #: pan/gui/task-pane.cc:705 pan/gui/task-pane.cc:706 msgid "Stop Task" msgstr "Stoppa uppgift" #: pan/gui/task-pane.cc:710 pan/gui/task-pane.cc:711 msgid "Delete Task" msgstr "Ta bort uppgift" #: pan/gui/task-pane.cc:715 pan/gui/task-pane.cc:716 msgid "Restart Task" msgstr "Starta om uppgift" #: pan/gui/task-pane.cc:720 pan/gui/task-pane.cc:721 msgid "Change Download Destination" msgstr "Ändra hämtningsdestination" #: pan/gui/task-pane.cc:1016 msgid "_Online" msgstr "_Ansluten" #: pan/gui/task-pane.cc:1026 msgid "Move up" msgstr "Flytta upp" #: pan/gui/task-pane.cc:1027 msgid "Move task up" msgstr "Flytta uppgift uppåt" #: pan/gui/task-pane.cc:1028 msgid "Move to top" msgstr "Flytta överst" #: pan/gui/task-pane.cc:1029 msgid "Move task to top of the download queue" msgstr "Flytta uppgift överst i hämtningskön" #: pan/gui/task-pane.cc:1031 msgid "Move down" msgstr "Flytta ned" #: pan/gui/task-pane.cc:1032 msgid "Move task down" msgstr "Flytta uppgift nedåt" #: pan/gui/task-pane.cc:1033 msgid "Move to bottom" msgstr "Flytta nederst" #: pan/gui/task-pane.cc:1034 msgid "Move task to the bottom of the download queue" msgstr "Flytta uppgift nederst i hämtningskön" #: pan/gui/task-pane.cc:1036 msgid "Restart" msgstr "Starta om" #: pan/gui/task-pane.cc:1037 msgid "Restart Tasks" msgstr "Starta om uppgifter" #: pan/gui/task-pane.cc:1038 msgid "Stop" msgstr "Stoppa" #: pan/gui/task-pane.cc:1039 msgid "Stop Tasks" msgstr "Stoppa uppgifter" #: pan/gui/task-pane.cc:1041 msgid "Delete Tasks" msgstr "Ta bort uppgifter" #: pan/gui/task-pane.cc:1043 msgid "Close" msgstr "Stäng" #: pan/gui/task-pane.cc:1047 msgid "Show popups" msgstr "Visa poppupper" #: pan/gui/url.cc:143 #, c-format msgid "Error starting URL: %s (Command was: %s)" msgstr "Fel vid start av url: %s (Kommandot var: %s)" #: pan/tasks/decoder.cc:124 #, c-format msgid "Couldn't save file \"%s\": %s" msgstr "Kunde inte spara filen ”%s”: %s" #: pan/tasks/decoder.cc:146 pan/tasks/encoder.cc:146 msgid "Error initializing uulib" msgstr "Fel vid initiering av uulib" #: pan/tasks/decoder.cc:166 pan/tasks/socket-impl-gio.cc:360 #: pan/tasks/socket-impl-openssl.cc:641 #, c-format msgid "Error reading from %s: %s" msgstr "Fel vid läsning från %s: %s" #: pan/tasks/decoder.cc:206 #, c-format msgid "Saved \"%s\"" msgstr "Sparade ”%s”" #: pan/tasks/decoder.cc:213 #, c-format msgid "" "Error saving \"%s\":\n" "%s." msgstr "" "Fel när ”%s” sparades:\n" "%s." #: pan/tasks/decoder.cc:326 pan/tasks/task-article.cc:351 #, c-format msgid "Decoding %s" msgstr "Avkodar %s" #: pan/tasks/encoder.cc:113 pan/tasks/encoder.cc:164 #, c-format msgid "Error loading %s from cache." msgstr "Fel vid läsning av %s från cache." #: pan/tasks/encoder.cc:186 #, c-format msgid "Error encoding %s: %s" msgstr "Fel vid kodning av ”%s”: %s" #: pan/tasks/encoder.cc:276 #, c-format msgid "Encoding %s" msgstr "Kodar %s" #: pan/tasks/nntp.cc:176 #, c-format msgid "%s requires a username, but none is set." msgstr "%s kräver ett användarnamn men inget är inställt." #: pan/tasks/nntp.cc:189 #, c-format msgid "%s requires a password, but none is set." msgstr "%s kräver ett lösenord men inget är inställt." #: pan/tasks/nntp.cc:275 #, c-format msgid "Sending \"%s\" to %s returned an error: %s" msgstr "Sändning av ”%s” till %s returnerade ett fel: %s" #: pan/tasks/nntp.cc:298 #, c-format msgid "Sending \"%s\" to %s returned an unrecognized response: \"%s\"" msgstr "Sändning av ”%s” till %s returnerade ett okänt svar: ”%s”" #: pan/tasks/nntp-pool.cc:241 #, c-format msgid "Unable to connect to \"%s\"" msgstr "Kunde inte ansluta till ”%s”" #: pan/tasks/queue.cc:778 pan/tasks/queue.cc:806 pan/tasks/queue.cc:833 msgid "No space left on device." msgstr "Inget utrymme kvar på enheten." #: pan/tasks/socket-impl-gio.cc:173 pan/tasks/socket-impl-gio.cc:211 #: pan/tasks/socket-impl-openssl.cc:213 pan/tasks/socket-impl-openssl.cc:251 #, c-format msgid "Error connecting to \"%s\"" msgstr "Fel vid anslutning till ”%s”" #: pan/tasks/socket-impl-gio.cc:359 pan/tasks/socket-impl-openssl.cc:640 msgid "Unknown Error" msgstr "Okänt fel" #: pan/tasks/task-article.cc:59 pan/tasks/task-article.cc:157 #, c-format msgid "Saving %s" msgstr "Sparar %s" #: pan/tasks/task-article.cc:61 #, c-format msgid "Reading %s" msgstr "Läser %s" #: pan/tasks/task-article.cc:323 #, c-format msgid "Article \"%s\" is incomplete -- the news server(s) don't have part %s" msgstr "Artikeln ”%s” är ofullständig — nyhetsservern hade inte delen %s" #: pan/tasks/task-groups.cc:41 #, c-format msgid "Getting group list from \"%s\"" msgstr "Hämtar grupplista från ”%s”" #: pan/tasks/task-groups.cc:134 #, c-format msgid "Fetched %lu Groups" msgstr "Hämtade %lu grupper" #: pan/tasks/task-post.cc:33 #, c-format msgid "Posting \"%s\"" msgstr "Postar ”%s”" #: pan/tasks/task-post.cc:74 #, c-format msgid "Posting of \"%s\" failed: %s" msgstr "Postande av ”%s” misslyckades: %s" #: pan/tasks/task-post.cc:79 #, c-format msgid "Posting of \"%s\" successful: %s" msgstr "Postande av ”%s” lyckades: %s" #: pan/tasks/task-upload.cc:55 #, c-format msgid "Uploading %s" msgstr "Skickar upp %s" #: pan/tasks/task-upload.cc:249 #, c-format msgid "Uploading %s - Part %d of %d" msgstr "Skickar %s - del %d av %d" #: pan/tasks/task-upload.cc:251 #, c-format msgid "Uploading message body with subject \"%s\"" msgstr "Skickar meddelande med ämne ”%s”" #: pan/tasks/task-upload.cc:308 #, c-format msgid "Posting of file %s (part %d of %d) failed: No posts allowed by server." msgstr "" "Misslyckades med postande av filen %s (del %d av %d): Inga postningar " "tillåts av servern." #: pan/tasks/task-upload.cc:317 #, c-format msgid "Posting of file %s (part %d of %d) failed: %s" msgstr "Misslyckades med postande av filen %s (del %d av %d):%s" #: pan/tasks/task-upload.cc:328 pan/tasks/task-upload.cc:335 #, c-format msgid "Posting of file %s (part %d of %d) successful: %s" msgstr "Lyckades med postande av filen %s (del %d av %d): %s" #: pan/tasks/task-upload.cc:345 #, c-format msgid "Posting of file %s successful: %s" msgstr "Lyckades med postande av filen %s: %s" #: pan/tasks/task-upload.cc:349 #, c-format msgid "" "Posting of file %s not completely successful: Check the log (right-click " "list item)." msgstr "" "Lyckades inte helt med att posta filen %s: kontrollera loggen (högerklicka " "listobjekt)." #: pan/tasks/task-upload.cc:368 #, c-format msgid "" "Posting of file %s not successful: Check the log (right-click list item)." msgstr "" "Lyckades inte att posta filen %s: kontrollera loggen (högerklicka " "listobjekt)." #: pan/tasks/task-xover.cc:82 #, c-format msgid "Getting all headers for \"%s\"" msgstr "Hämtar alla rubriker för ”%s”" #: pan/tasks/task-xover.cc:85 #, c-format msgid "Getting new headers for \"%s\"" msgstr "Hämtar nya rubriker för ”%s”" #. SAMPLE #: pan/tasks/task-xover.cc:89 #, c-format msgid "Sampling headers for \"%s\"" msgstr "Provar rubriker för ”%s”" #: pan/tasks/task-xover.cc:454 #, c-format msgid "%s (%lu parts, %lu articles)" msgstr "%s (%lu delar, %lu artiklar)" #: pan/tasks/task-xover.cc:528 #, c-format msgid "Getting new headers for \"%s\" done." msgstr "Hämtning av nya rubriker för ”%s” klar." #: pan/usenet-utils/filter-info.cc:215 msgid "article doesn't have attachments" msgstr "artikeln har inte bilagor" #: pan/usenet-utils/filter-info.cc:219 msgid "the article has attachments" msgstr "artikeln har bilagor" #: pan/usenet-utils/filter-info.cc:223 msgid "the article isn't cached locally" msgstr "artikeln är inte cachad lokalt" #: pan/usenet-utils/filter-info.cc:227 msgid "the article is cached locally" msgstr "artikeln är cachad lokalt" #: pan/usenet-utils/filter-info.cc:231 msgid "the article wasn't posted by you" msgstr "artikeln postades inte av dig" #: pan/usenet-utils/filter-info.cc:235 msgid "the article was posted by you" msgstr "artikeln postades av dig" #: pan/usenet-utils/filter-info.cc:239 msgid "the article has been read" msgstr "artikeln har blivit läst" #: pan/usenet-utils/filter-info.cc:243 msgid "the article hasn't been read" msgstr "artikeln har inte blivit läst" #: pan/usenet-utils/filter-info.cc:247 #, c-format msgid "the article is less than %ld bytes long" msgstr "artikeln är mindre än %ld byte lång" #: pan/usenet-utils/filter-info.cc:252 #, c-format msgid "the article is at least %ld bytes long" msgstr "artikeln är åtminstone %ld byte lång" #: pan/usenet-utils/filter-info.cc:257 #, c-format msgid "the article is less than %ld lines long" msgstr "artikeln är mindre än %ld rader lång" #: pan/usenet-utils/filter-info.cc:262 #, c-format msgid "the article is at least %ld lines long" msgstr "artikeln är åtminstone %ld rader lång" #: pan/usenet-utils/filter-info.cc:267 #, c-format msgid "the article is less than %ld days old" msgstr "artikeln är yngre än %ld dagar gammal" #: pan/usenet-utils/filter-info.cc:272 #, c-format msgid "the article is at least %ld days old" msgstr "artikeln är åtminstone %ld dagar gammal" #: pan/usenet-utils/filter-info.cc:277 #, c-format msgid "the article was posted to less than %ld groups" msgstr "artikeln blev postad till mindre än %ld grupper" #: pan/usenet-utils/filter-info.cc:282 #, c-format msgid "the article was posted to at least %ld groups" msgstr "artikeln blev postad till åtminstone %ld grupper" #: pan/usenet-utils/filter-info.cc:287 #, c-format msgid "the article's score is less than %ld" msgstr "artikelns poäng är mindre än %ld" #: pan/usenet-utils/filter-info.cc:292 #, c-format msgid "the article's score is %ld or higher" msgstr "artikelns poäng är %ld eller högre" #: pan/usenet-utils/filter-info.cc:301 pan/usenet-utils/filter-info.cc:311 #, c-format msgid "%s doesn't contain \"%s\"" msgstr "%s innehåller inte ”%s”" #: pan/usenet-utils/filter-info.cc:302 pan/usenet-utils/filter-info.cc:312 #, c-format msgid "%s isn't \"%s\"" msgstr "%s är inte ”%s”" #: pan/usenet-utils/filter-info.cc:303 pan/usenet-utils/filter-info.cc:313 #, c-format msgid "%s doesn't begin with \"%s\"" msgstr "%s börjar inte med ”%s”" #: pan/usenet-utils/filter-info.cc:304 pan/usenet-utils/filter-info.cc:314 #, c-format msgid "%s doesn't end with \"%s\"" msgstr "%s slutar inte med ”%s”" #: pan/usenet-utils/filter-info.cc:305 pan/usenet-utils/filter-info.cc:315 #, c-format msgid "%s doesn't match the regex \"%s\"" msgstr "%s matchar inte det reguljära uttrycket ”%s”" #: pan/usenet-utils/filter-info.cc:327 #, c-format msgid "%s contains \"%s\"" msgstr "%s innehåller ”%s”" #: pan/usenet-utils/filter-info.cc:328 #, c-format msgid "%s is \"%s\"" msgstr "%s är ”%s”" #: pan/usenet-utils/filter-info.cc:329 #, c-format msgid "%s begins with \"%s\"" msgstr "%s börjar med ”%s”" #: pan/usenet-utils/filter-info.cc:330 #, c-format msgid "%s ends with \"%s\"" msgstr "%s slutar med ”%s”" #: pan/usenet-utils/filter-info.cc:331 #, c-format msgid "%s matches the regex \"%s\"" msgstr "%s matchar det reguljära uttrycket ”%s”" #: pan/usenet-utils/filter-info.cc:337 msgid "Any of these tests fail:" msgstr "Något av dessa tester misslyckas:" #: pan/usenet-utils/filter-info.cc:344 msgid "All of these tests pass:" msgstr "Alla av dessa tester lyckas:" #: pan/usenet-utils/filter-info.cc:351 msgid "None of these tests pass:" msgstr "Inget av dessa tester lyckas:" #: pan/usenet-utils/filter-info.cc:358 msgid "Any of these tests pass:" msgstr "Något av dessa tester lyckas:" #: pan/usenet-utils/gnksa.cc:880 #, c-format msgid "No email address provided; generating message-id with domain \"%s\"" msgstr "Ingen e-postadress angiven; genererar meddelande-ID med domänen ”%s”" #: pan/usenet-utils/message-check.cc:122 msgid "Warning: Reply seems to be top-posted." msgstr "Varning: Svaret verkar ha postats överst." #: pan/usenet-utils/message-check.cc:143 msgid "Warning: The signature marker should be \"-- \", not \"--\"." msgstr "Varning: Signaturmarkören ska vara ”-- ”, inte ”--”." #: pan/usenet-utils/message-check.cc:160 msgid "Warning: Signature prefix with no signature." msgstr "Varning: Signaturprefix utan signatur." #: pan/usenet-utils/message-check.cc:165 msgid "Warning: Signature is more than 4 lines long." msgstr "Varning: Signaturen är mer än 4 rader lång." #: pan/usenet-utils/message-check.cc:170 msgid "Warning: Signature is more than 80 characters wide." msgstr "Varning: Signaturen är mer än 80 tecken bred." #: pan/usenet-utils/message-check.cc:196 #, c-format msgid "Warning: %d line is more than 80 characters wide." msgid_plural "Warning: %d lines are more than 80 characters wide." msgstr[0] "Varning: %d rad är fler än 80 tecken bred." msgstr[1] "Varning: %d rader är fler än 80 tecken breda." #: pan/usenet-utils/message-check.cc:221 msgid "Error: Message is empty." msgstr "Fel: Meddelandet är tomt." #: pan/usenet-utils/message-check.cc:256 msgid "Warning: The message is entirely quoted text!" msgstr "Varning: Meddelandet är endast citerad text!" #: pan/usenet-utils/message-check.cc:257 msgid "Warning: The message is mostly quoted text." msgstr "Varning: Meddelandet är till största delen citerad text." #: pan/usenet-utils/message-check.cc:307 msgid "Error: Message appears to have no new content." msgstr "Fel: Meddelandet verkar inte ha något nytt innehåll." #: pan/usenet-utils/message-check.cc:342 pan/usenet-utils/message-check.cc:381 #, c-format msgid "" "Warning: The posting profile's server doesn't carry newsgroup\n" "\t\"%s\".\n" "\tIf the group name is correct, switch profiles in the \"From:\"\n" "\tline or edit the profile with \"Edit|Manage Posting Profiles\"." msgstr "" "Varning: Servern för den postande profilen har inga nyhetsgrupper\n" "\t”%s”.\n" "\tOm gruppnamnet är korrekt, växla profiler på raden ”Från:”\n" "\teller redigera profilen med ”Redigera|Hantera postandeprofiler”." #: pan/usenet-utils/message-check.cc:353 msgid "Warning: Following-Up to too many groups." msgstr "Varning: Uppföljning på för många grupper." #: pan/usenet-utils/message-check.cc:364 msgid "Error: No Subject specified." msgstr "Fel: Inget ämne angivet." #: pan/usenet-utils/message-check.cc:393 #, c-format msgid "Warning: Group \"%s\" is read-only." msgstr "Varning: Gruppen ”%s” är skrivskyddad." #: pan/usenet-utils/message-check.cc:402 msgid "Error: Posting to a very large number of groups." msgstr "Fel: Postar till ett väldigt stort antal grupper." #: pan/usenet-utils/message-check.cc:407 msgid "Warning: Posting to a large number of groups." msgstr "Varning: Postar till ett stort antal grupper." #: pan/usenet-utils/message-check.cc:414 msgid "Warning: Crossposting without setting Followup-To header." msgstr "Varning: Korspostar utan att ställa in rubriken Uppföljning-till." #: pan/usenet-utils/message-check.cc:439 msgid "Error: Bad email address." msgstr "Fel: Felaktig e-postadress." #: pan/usenet-utils/message-check.cc:448 msgid "Warning: Most newsgroups frown upon HTML posts." msgstr "Varning: De flesta diskussionsgrupper tycker inte om HTML-postningar." #: pan/usenet-utils/message-check.cc:484 msgid "Error: No Recipients." msgstr "Fel: Inga mottagare." #: pan/usenet-utils/scorefile.cc:310 #, c-format msgid "Error reading score in %*.*s, line %d: unexpected line." msgstr "Fel vid läsning av poäng i %*.*s, rad %d: oväntad rad." #: pan/usenet-utils/scorefile.cc:442 #, c-format msgid "" "Error reading score in %*.*s, line %d: expected 'Expires: MM/DD/YYYY' or " "'Expires: DD-MM-YYYY'." msgstr "" "Fel vid läsning av poäng i %*.*s, rad %d: förväntade ”Expires: MM/DD/ÅÅÅÅ” " "eller ”Expires: DD-MM-ÅÅÅÅ”." #: pan/usenet-utils/scorefile.cc:452 #, c-format msgid "Expired old score from %*.*s, line %d" msgstr "Gammal poäng togs bort från %*.*s, rad %d" #: pan/usenet-utils/scorefile.cc:589 #, c-format msgid "Read %lu scoring rules in %lu sections from \"%s\"" msgstr "Läste %lu poängregler i %lu sektioner från ”%s”" #: pan/usenet-utils/ssl-utils.cc:172 #, c-format msgid "Error printing the server certificate for '%s'" msgstr "Fel vid utskrift av servercertifikatet för ”%s”" #: pan/usenet-utils/ssl-utils.cc:191 #, c-format msgid "" "The current server '%s' sent this security certificate:\n" "\n" msgstr "" "Aktuella servern ”%s” skickade detta säkerhetscertifikat:\n" "\n" #: pan/usenet-utils/ssl-utils.cc:197 #, c-format msgid "" "Certificate information for server '%s':\n" "\n" msgstr "" "Certifikatsinformationen för servern ”%s”:\n" "\n" #: pan/usenet-utils/ssl-utils.cc:202 #, c-format msgid "" "%sIssuer information:\n" "%s\n" "Valid until: %s\n" "\n" "Not valid before: %s\n" "\n" msgstr "" "%sUtfärdarinformation:\n" "%s\n" "Giltig till: %s\n" "\n" "Inte giltig före: %s\n" "\n" #: pan/usenet-utils/text-massager.cc:397 msgid "> [quoted text muted]" msgstr "> [citerad text tystad]" #: pan/usenet-utils/text-massager.cc:579 msgid "no_name" msgstr "inget_namn" #: pan/usenet-utils/text-massager.cc:580 msgid "no_mail" msgstr "ingen_e-post" #~ msgid "Toggle on/offline" #~ msgstr "Växla upp-/frånkopplad" #~ msgid "Minimize to tray" #~ msgstr "Minimera till aktivitetsfält" pan-0.162/po/tr.po000066400000000000000000003010111475412772400137140ustar00rootroot00000000000000# Turkish translation of Pan. # Copyright (C) 2000-2003 Free Software Foundation, Inc. # Copyright (C) 2004-2023 Pan'S COPYRIGHT HOLDER # This file is distributed under the same license as the Pan package. # # Fatih Demir , 2000. # Görkem Çetin , 2001. # Kaan Özdinçer , 2015. # Muhammet Kara , 2015, 2016. # Sabri Ünal , 2019, 2022, 2023. # Emin Tufan Çetin , 2022, 2023. # msgid "" msgstr "" "Project-Id-Version: pan\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/pan/issues/\n" "POT-Creation-Date: 2024-05-08 17:14+0000\n" "PO-Revision-Date: 2024-05-24 11:21+0300\n" "Last-Translator: Sabri Ünal \n" "Language-Team: Turkish \n" "Language: tr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Poedit 3.4.3\n" "X-POOTLE-MTIME: 1425031073.000000\n" #. update the titlebar #: org.gnome.pan.desktop.in:3 org.gnome.pan.metainfo.xml.in:27 #: pan/gui/dl-headers-ui.cc:119 pan/gui/gui.cc:1040 pan/gui/gui.cc:1665 #: pan/gui/gui.cc:1985 pan/gui/score-add-ui.cc:600 msgid "Pan" msgstr "Pan" #: org.gnome.pan.desktop.in:4 msgid "Newsreader" msgstr "Haber Okuyucu" #: org.gnome.pan.desktop.in:5 org.gnome.pan.metainfo.xml.in:7 msgid "Read and post Usenet articles" msgstr "Usenet makalelerini okuyun ve gönderin" #. Translators: Search terms to find this application. Do NOT translate or localise the semicolons! The list MUST also end with a semicolon! #: org.gnome.pan.desktop.in:7 msgid "usenet;news;newsreader;newsgroup;article;yenc;nzb;" msgstr "usenet;haberler;haber okuyucu;haber grubu;makale;yenc;nzb;" #: org.gnome.pan.metainfo.xml.in:6 msgid "Pan Newsreader" msgstr "Pan Haber Okuyucusu" #: org.gnome.pan.metainfo.xml.in:9 msgid "" "Pan is a Usenet newsreader that is good at both text and binaries. It " "supports offline reading, scoring and killfiles, yEnc, NZB, PGP handling, " "multiple servers, and secure connections." msgstr "" "Pan, hem metin hem de ikili dosyalar için güzel bir Usenet haber " "okuyucusudur. Çevrim dışı okuma, puanlama ve killfiles, yEnc, NZB, PGP " "kullanımı, çoklu sunucuları ve güvenli bağlantıları destekler." #: org.gnome.pan.metainfo.xml.in:12 msgid "" "It is also the only Unix newsreader to get a perfect score on the Good Net-" "Keeping Seal of Approval evaluations." msgstr "" "Aynı zamanda, Good Net-Keeping Seal değerlendirmelerinde mükemmel puan alan " "tek Unix haber okuyucusudur." #: pan/data/article-cache.cc:144 pan/data/encode-cache.cc:62 #, c-format msgid "Error opening directory: \"%s\": %s" msgstr "\"%s\" dizini açılırken hata oluştu: %s" #: pan/data/article-cache.cc:235 pan/data/article-cache.cc:244 #: pan/data-impl/data-io.cc:278 pan/data-impl/data-io.cc:310 #: pan/gui/post-ui.cc:1767 #, c-format msgid "Unable to save \"%s\" %s" msgstr "\"%s\" kaydedilemiyor %s" #: pan/data/article-cache.cc:362 #, c-format msgid "Error opening file \"%s\" %s" msgstr "\"%s\" dosyası açılırken hata oluştu %s" #: pan/data/article-cache.cc:393 pan/data-impl/profiles.cc:175 #: pan/data-impl/server.cc:495 pan/general/file-util.cc:311 #: pan/gui/post-ui.cc:636 pan/gui/task-pane.cc:740 #, c-format msgid "Error reading file \"%s\": %s" msgstr "\"%s\" dosyası okunurken hata oluştu: %s" #: pan/data/cert-store.cc:261 #, c-format msgid "Error opening SSL certificate directory: \"%s\": %s" msgstr "SSL sertifikası dizini açılırken hata oluştu: \"%s\": %s" #: pan/data/cert-store.cc:292 #, c-format msgid "Successfully added %d SSL PEM certificate(s) to Certificate Store." msgstr "" "%d SSL PEM sertifikası/sertifikaları, Sertifika Deposuna başarıyla eklendi." #: pan/data/cert-store.cc:312 msgid "" "Error initializing Certificate Store. Check that the permissions for the " "folders ~/.pan2 and ~/.pan2/ssl_certs are set correctly. Fatal, exiting." msgstr "" "Sertifika Deposu oluşuturmada hata oluştu. ~/.pan2 and ~/.pan2/ssl_certs " "dizinlerinin izinlerinin doğru olduğu kontrol edin. Ölümcül hata, çıkılıyor." #: pan/data/cert-store.cc:361 #, c-format msgid "Could not export certificate for server: %s" msgstr "Sunucu sertifikası dışa aktarılamadı: %s" #. load_group_descriptions (*_data_io); #: pan/data-impl/data-impl.cc:115 #, c-format msgid "Loaded data backend in %.1f seconds" msgstr "Veri arka yüzü %.1f saniyede yüklendi" #: pan/data-impl/data-impl.cc:151 msgid "Pan Newsreader's server passwords" msgstr "Pan Haber Okuyucusu’nun sunucu parolaları" #: pan/data-impl/groups.cc:102 #, c-format msgid "Skipping newsrc file for server \"%s\"" msgstr "\"%s\" sunucusu için newsrc dosyası atlanıyor" # Kaynak koda göre ilki makale sayısı, ikincisi makalenin ait olduğu grup. #: pan/data-impl/headers.cc:618 #, c-format msgid "Expired %lu old articles from \"%s\"" msgstr "%lu makalenin süresi doldu, \"%s\" grubundan" #: pan/data-impl/headers.cc:625 #, c-format msgid "" "Unsupported data version for %s headers: %d.\n" "Are you running an old version of Pan by accident?" msgstr "" "%s başlıkları için desteklenmeyen veri sürümü: %d\n" "Pan’ın eski bir sürümünü kullanıyor olabilirsiniz." #: pan/data-impl/headers.cc:640 #, c-format msgid "Loaded %llu articles for \"%s\" in %.1f seconds (%.0f per second)" msgstr "%llu makale, \"%s\" için, %.1f saniyede yüklendi (saniyede %.0f)" #: pan/data-impl/headers.cc:869 #, c-format msgid "" "Saved %lu parts, %lu articles in \"%s\" in %.1f seconds (%.0f articles/sec)" msgstr "" "%lu bölüm, %lu makale, \"%s\" içinde, %.1f saniyede kaydedildi (%.0f makale/" "saniye)" #: pan/data-impl/headers.cc:1202 #, c-format msgid "Added %lu articles to %s." msgstr "%lu makale şuraya eklendi: %s." #: pan/data-impl/server.cc:263 #, c-format msgid "Received no password from libsecret for server %s." msgstr "%s sunucusu için bir parola eklenmemiş gibi gözüküyor." #: pan/data-impl/xover.cc:241 #, c-format msgid "Error reading from %s: unknown group \"%s\"" msgstr "%s üzerinden okuma hatası oluştu: bilinmeyen grup \"%s\"" #: pan/general/editor-spawner.cc:66 #, c-format msgid "Error parsing \"external editor\" command line: %s (Command was: %s)" msgstr "" "\"Harici düzenleyici” komutu satırı ayrıştırmada hata oluştu: %s (Komut: %s)" #: pan/general/editor-spawner.cc:110 #, c-format msgid "Error starting external editor: %s" msgstr "Harici düzenleyici başlatılırken hata oluştu: %s" #: pan/general/e-util.cc:164 msgid "%l:%M %p" msgstr "%l:%M %p" #: pan/general/e-util.cc:165 msgid "Today %l:%M %p" msgstr "Bugün %l:%M %p" #: pan/general/e-util.cc:166 msgid "%a %l:%M %p" msgstr "%a %l:%M %p" #: pan/general/e-util.cc:167 msgid "%b %d %l:%M %p" msgstr "%b %d %l:%M %p" #: pan/general/e-util.cc:168 msgid "%b %d %Y" msgstr "%b %d %Y" #: pan/general/e-util.cc:200 msgid "?" msgstr "?" #: pan/general/text-match.cc:194 #, c-format msgid "Can't use regular expression \"%s\": %s" msgstr "\"%s\" düzenli ifadesi kullanılamaz: %s" #: pan/general/utf8-utils.cc:212 msgid "Couldn't determine article encoding. Non-UTF8 characters were removed." msgstr "Makalenin kodlaması belirlenemedi. UTF-8 olmayan karakterler silindi." #: pan/gui/actions.cc:306 pan/gui/post-ui.cc:451 msgid "_File" msgstr "_Dosya" #: pan/gui/actions.cc:307 pan/gui/post-ui.cc:452 msgid "_Edit" msgstr "_Düzenle" #: pan/gui/actions.cc:308 pan/gui/prefs-ui.cc:1138 msgid "_Layout" msgstr "_Yerleşim" #: pan/gui/actions.cc:309 msgid "_Group Pane" msgstr "_Grup Çerçevesi" #: pan/gui/actions.cc:310 msgid "_Header Pane" msgstr "_Başlık Çerçevesi" #: pan/gui/actions.cc:311 msgid "_Body Pane" msgstr "_Gövde Çerçevesi" #: pan/gui/actions.cc:312 msgid "_View" msgstr "_Görünüm" #: pan/gui/actions.cc:313 msgid "Filte_r" msgstr "_Süzgeç" #: pan/gui/actions.cc:314 msgid "_Go" msgstr "_Git" #: pan/gui/actions.cc:315 pan/gui/prefs-ui.cc:1188 msgid "_Actions" msgstr "_Eylemler" #: pan/gui/actions.cc:316 msgid "_Articles" msgstr "_Makaleler" #: pan/gui/actions.cc:317 msgid "G_roups" msgstr "G_ruplar" #: pan/gui/actions.cc:318 pan/gui/actions.cc:319 msgid "_Post" msgstr "Gön_der" #: pan/gui/actions.cc:320 msgid "_Help" msgstr "_Yardım" #: pan/gui/actions.cc:323 msgid "_Read Group" msgstr "_Okuma Grubu" #: pan/gui/actions.cc:324 msgid "Read Group" msgstr "Okuma Grubu" #: pan/gui/actions.cc:328 msgid "_Mark Selected Groups Read" msgstr "Seçili Grupları Okumayı _İşaretle" #: pan/gui/actions.cc:329 msgid "Mark Selected Groups Read" msgstr "Seçili Grupları Okumayı İşaretle" #: pan/gui/actions.cc:333 msgid "_Delete Selected Groups' Articles" msgstr "Seçili Grupların Makalelerini _Sil" #: pan/gui/actions.cc:334 msgid "Delete Selected Groups' Articles" msgstr "Seçili Grupların Makalelerini Sil" #: pan/gui/actions.cc:338 msgid "Get New _Headers in Selected Groups" msgstr "Seçili Gruplardaki Yeni _Başlıkları Getir" #: pan/gui/actions.cc:339 msgid "Get New Headers in Selected Groups" msgstr "Seçili Gruplardaki Yeni Başlıkları Getir" #: pan/gui/actions.cc:343 pan/gui/actions.cc:348 msgid "Get New _Headers in Subscribed Groups" msgstr "Abone Olunmuş Gruplardaki _Yeni Başlıkları Getir" #: pan/gui/actions.cc:344 pan/gui/actions.cc:349 msgid "Get New Headers in Subscribed Groups" msgstr "Abone Olunmuş Gruplardaki Yeni Başlıkları Getir" #: pan/gui/actions.cc:353 msgid "Get _Headers..." msgstr "_Başlıkları Getir..." #: pan/gui/actions.cc:354 msgid "Get Headers..." msgstr "Başlıkları Getir..." #: pan/gui/actions.cc:358 pan/gui/actions.cc:359 msgid "Refresh Group List" msgstr "Grup Listesini Tazele" #: pan/gui/actions.cc:363 msgid "_Subscribe" msgstr "_Abone Ol" #: pan/gui/actions.cc:364 msgid "Subscribe" msgstr "Abone Ol" #: pan/gui/actions.cc:368 msgid "_Unsubscribe" msgstr "Aboneliği _İptal Et" #: pan/gui/actions.cc:369 msgid "Unsubscribe" msgstr "Aboneliği İptal Et" #: pan/gui/actions.cc:373 msgid "_Save Articles..." msgstr "Makaleleri _Kaydet..." #: pan/gui/actions.cc:374 msgid "Save Articles..." msgstr "Makaleleri Kaydet..." #: pan/gui/actions.cc:378 msgid "Save Articles from Selected _NZB..." msgstr "Seçilmiş _NZB Makalelerini Kaydet..." #: pan/gui/actions.cc:379 msgid "Save Articles from Selected NZB" msgstr "Seçilmiş NZB Makalelerini Kaydet" #: pan/gui/actions.cc:383 msgid "Save Articles to an NZB _File..." msgstr "Makaleleri NZB _Dosyasına Kaydet..." #: pan/gui/actions.cc:384 msgid "Save Articles to an NZB File" msgstr "Makaleleri NZB Dosyasına Kaydet" #: pan/gui/actions.cc:388 pan/gui/actions.cc:389 msgid "Print" msgstr "Yazdır" #: pan/gui/actions.cc:393 msgid "_Import NZB Files..." msgstr "NZB Dosyalarını _İçe Aktar..." #: pan/gui/actions.cc:398 msgid "_Cancel Last Task" msgstr "Son Görevi İ_ptal Et" #: pan/gui/actions.cc:403 msgid "_Task Manager" msgstr "_Görev Yöneticisi" #: pan/gui/actions.cc:408 msgid "_Event Log" msgstr "_Olay Günlüğü" #: pan/gui/actions.cc:413 msgid "_Quit" msgstr "_Çık" #: pan/gui/actions.cc:418 msgid "Select _All Articles" msgstr "_Tüm Makaleleri Seç" #: pan/gui/actions.cc:423 msgid "_Deselect All Articles" msgstr "Tüm Seçile_nleri Kaldır" #: pan/gui/actions.cc:428 msgid "Add Su_bthreads to Selection" msgstr "Alt Konuları Seçi_me Ekle" #: pan/gui/actions.cc:433 msgid "Add _Threads to Selection" msgstr "Kon_uları Seçime Ekle" #: pan/gui/actions.cc:438 msgid "Add _Similar Articles to Selection" msgstr "_Benzer Makaleleri Seçime Ekle" #: pan/gui/actions.cc:443 msgid "Select Article _Body" msgstr "Makale G_övdesini Seç" #: pan/gui/actions.cc:448 msgid "Edit _Preferences" msgstr "_Tercihleri Düzenle" #: pan/gui/actions.cc:453 msgid "Edit Selected _Group's Preferences" msgstr "Seçili _Grupların Tercihlerini Düzenle" #: pan/gui/actions.cc:458 msgid "Edit S_core File" msgstr "_Puan Dosyasını Düzenle" #: pan/gui/actions.cc:463 pan/gui/post-ui.cc:468 msgid "Edit P_osting Profiles" msgstr "Yazma Pr_ofillerini Düzenle" #: pan/gui/actions.cc:468 msgid "Edit _News Servers" msgstr "_Haber Sunucularını Düzenle" #: pan/gui/actions.cc:473 msgid "Jump to _Group Tab" msgstr "_Grup Sekmesine Sıçra" #: pan/gui/actions.cc:478 msgid "Jump to _Header Tab" msgstr "_Başlık Sekmesine Sıçra" #: pan/gui/actions.cc:483 msgid "Jump to _Body Tab" msgstr "_Gövde Sekmesine Sıçra" #: pan/gui/actions.cc:488 msgid "_Rot13 Selected Text" msgstr "_Rot13 Seçili Metin" #: pan/gui/actions.cc:493 msgid "Clear _Header Pane" msgstr "_Başlık Çerçevesini Temizle" #: pan/gui/actions.cc:498 msgid "Clear _Body Pane" msgstr "_Gövde Çerçevesini Temizle" #: pan/gui/actions.cc:503 msgid "Cache Article" msgstr "Makaleyi Ön Bellekle" #: pan/gui/actions.cc:508 msgid "Read Article" msgstr "Makale Oku" #: pan/gui/actions.cc:513 msgid "Show Article Information" msgstr "Makale Bilgisini Göster" #: pan/gui/actions.cc:518 msgid "Read _More" msgstr "_Daha Fazla Oku" #: pan/gui/actions.cc:519 msgid "Read More" msgstr "Daha Fazla Oku" #: pan/gui/actions.cc:523 msgid "Read _Back" msgstr "Te_krar Oku" #: pan/gui/actions.cc:524 msgid "Read Back" msgstr "Tekrar Oku" #: pan/gui/actions.cc:528 msgid "Next _Unread Group" msgstr "Sonraki _Okunmamış Grup" #: pan/gui/actions.cc:533 msgid "Next _Group" msgstr "Sonraki _Grup" #: pan/gui/actions.cc:538 msgid "Next _Unread Article" msgstr "Sonraki _Okunmamış Makale" #: pan/gui/actions.cc:539 msgid "Next Unread Article" msgstr "Sonraki Okunmamış Makale" #: pan/gui/actions.cc:543 msgid "Next _Article" msgstr "Sonraki _Makale" #: pan/gui/actions.cc:544 msgid "Next Article" msgstr "Sonraki Makale" #: pan/gui/actions.cc:548 msgid "Next _Watched Article" msgstr "Sonraki _İzlenmiş Makale" #: pan/gui/actions.cc:553 msgid "Next Unread _Thread" msgstr "Sonraki Okunmamış _Konu" #: pan/gui/actions.cc:554 msgid "Next Unread Thread" msgstr "Sonraki Okunmamış Konu" #: pan/gui/actions.cc:558 msgid "Next Threa_d" msgstr "Sonraki Ko_nu" #: pan/gui/actions.cc:563 msgid "Pre_vious Article" msgstr "Önce_ki Makale" #: pan/gui/actions.cc:568 msgid "Previous _Thread" msgstr "Önceki _Konu" #: pan/gui/actions.cc:573 msgid "_Parent Article" msgstr "_Üst Makale" #: pan/gui/actions.cc:578 msgid "Ignore _Author" msgstr "_Yazarı Yok Say" #: pan/gui/actions.cc:582 msgid "_Watch Thread" msgstr "Konuyu _İzle" #: pan/gui/actions.cc:587 msgid "_Ignore Thread" msgstr "Konuyu _Yok Say" #: pan/gui/actions.cc:592 pan/gui/actions.cc:593 msgid "_Toggle Flag On/Off for Thread" msgstr "Konu için İşareti _Değiştir" #: pan/gui/actions.cc:597 pan/gui/actions.cc:598 msgid "_Turn Flag Off for Thread" msgstr "Konu için İşareti _Kapat" #: pan/gui/actions.cc:602 pan/gui/actions.cc:603 msgid "_Select All Flagged Threads" msgstr "Tüm İşaretli Konuları _Seç" #: pan/gui/actions.cc:607 pan/gui/actions.cc:608 msgid "_Go to Next Flagged Thread" msgstr "Sonraki İşaretli Konuya _Git" #: pan/gui/actions.cc:612 pan/gui/actions.cc:613 msgid "_Go to Last Flagged Thread" msgstr "Son İşaretli Konuya _Git" #: pan/gui/actions.cc:617 pan/gui/actions.cc:618 msgid "_Invert Selection" msgstr "Seçimi _Tersine Çevir" #: pan/gui/actions.cc:622 msgid "Edit Article's Watch/Ignore/Score..." msgstr "Makaleyi İzle/Yok Say/Puanla..." #: pan/gui/actions.cc:627 msgid "Add a _Scoring Rule..." msgstr "_Puanlama Kuralı Ekle..." #: pan/gui/actions.cc:632 msgid "Cance_l Article..." msgstr "Makaleyi İ_ptal Et..." #: pan/gui/actions.cc:637 msgid "_Supersede Article..." msgstr "Makalenin Yerini Deği_ştir..." #: pan/gui/actions.cc:642 msgid "_Delete Article" msgstr "Makaleyi _Sil" #: pan/gui/actions.cc:647 msgid "Clear Article Cache" msgstr "Makale Ön Belleğini Temizle" #: pan/gui/actions.cc:652 msgid "_Mark Article as Read" msgstr "Makaleyi Okunmuş Olarak _İşaretle" #: pan/gui/actions.cc:657 msgid "Mark Article as _Unread" msgstr "Makaleyi Okun_mamış Olarak İşaretle" #: pan/gui/actions.cc:663 msgid "_Mark Thread as Read" msgstr "Konuyu Okunmuş Olarak _İşaretle" #: pan/gui/actions.cc:668 msgid "Mark Thread as _Unread" msgstr "Konuyu Okun_mamış Olarak İşaretle" #: pan/gui/actions.cc:673 msgid "_Post to Newsgroup" msgstr "Haber Grubuna _Gönder" #: pan/gui/actions.cc:674 msgid "Post to Newsgroup" msgstr "Haber Grubuna Gönder" #: pan/gui/actions.cc:678 msgid "_Followup to Newsgroup" msgstr "Haber Grubunu _İzle" #: pan/gui/actions.cc:679 msgid "Followup to Newsgroup" msgstr "Haber Grubunu Takip Et" #: pan/gui/actions.cc:683 msgid "_Reply to Author in Mail" msgstr "Yazara Posta ile _Cevap Ver" #: pan/gui/actions.cc:689 msgid "_Contents" msgstr "İçe_rikler" #: pan/gui/actions.cc:695 msgid "_Pan Home Page" msgstr "_Pan Ana Sayfası" #: pan/gui/actions.cc:700 msgid "Give _Feedback or Report a Bug..." msgstr "Geri _Besleme Yap veya Hata Raporla..." #: pan/gui/actions.cc:705 msgid "_About" msgstr "_Hakkında" #: pan/gui/actions.cc:710 msgid "Edit _SSL Certificates" msgstr "_SSL Sertifikalarını Düzenle" #: pan/gui/actions.cc:725 msgid "_Thread Headers" msgstr "_Konu Başlıkları" #: pan/gui/actions.cc:726 msgid "Wrap Article Body" msgstr "Makale Gövdesini Sarmala" #: pan/gui/actions.cc:727 msgid "Show Article Signature" msgstr "Makale İmzasını Gönder" #: pan/gui/actions.cc:728 msgid "Mute _Quoted Text" msgstr "_Alıntılanmış Metni Kapat" #: pan/gui/actions.cc:729 msgid "Show All _Headers in Body Pane" msgstr "Gövde Çerçevesindeki Tüm _Başlıkları Göster" #: pan/gui/actions.cc:730 msgid "Show _Smilies as Graphics" msgstr "_Suratları Grafik olarak Göster" #: pan/gui/actions.cc:731 msgid "Show *Bold*, __Underlined__, and /Italic/" msgstr "*Kalın*, __Altı Çizili__ ve /Yatık/ Göster" #: pan/gui/actions.cc:732 msgid "Size Pictures to _Fit" msgstr "Resimleri Oturacak _Şekilde Boyutlandır" #: pan/gui/actions.cc:733 msgid "Use _Monospace Font" msgstr "_Monospace Yazı Tipini Kullan" #: pan/gui/actions.cc:734 msgid "Set Focus to Images" msgstr "Resimlere Odak Ayarla" #: pan/gui/actions.cc:735 msgid "Highlight _URLs" msgstr "_Adresleri Vurgula" #: pan/gui/actions.cc:738 msgid "_Work Online" msgstr "Çevrim _İçi Çalış" #: pan/gui/actions.cc:739 msgid "_Tabbed Layout" msgstr "_Sekmeli Yerleşim" #: pan/gui/actions.cc:740 msgid "Show Group _Pane" msgstr "Grup _Çerçevesini Göster" #: pan/gui/actions.cc:741 msgid "Show Hea_der Pane" msgstr "Ba_şlık Çerçevesini Göster" #: pan/gui/actions.cc:742 msgid "Show Bod_y Pane" msgstr "Gö_vde Çerçevesini Göster" #: pan/gui/actions.cc:743 msgid "Show _Toolbar" msgstr "_Araç Çubuğunu Göster" #: pan/gui/actions.cc:744 msgid "Abbreviate Group Names" msgstr "Kısaltılmış Grup Adları" #: pan/gui/actions.cc:746 msgid "Match Only _Read Articles" msgstr "Sadece _Okunmuş Makaleleri Göster" #: pan/gui/actions.cc:746 msgid "Match Only Read Articles" msgstr "Sadece Okunmuş Makaleleri Göster" #: pan/gui/actions.cc:747 msgid "Match Only _Unread Articles" msgstr "Sadece Okun_mamış Makaleleri Göster" #: pan/gui/actions.cc:747 msgid "Match Only Unread Articles" msgstr "Sadece Okunmamış Makaleleri Göster" #: pan/gui/actions.cc:748 msgid "Match Only _Cached Articles" msgstr "Sadece _Ön Bellekteki Makaleleri Göster" #: pan/gui/actions.cc:748 msgid "Match Only Cached Articles" msgstr "Sadece Ön Bellekteki Makaleleri Göster" #: pan/gui/actions.cc:749 msgid "Match Only _Complete Articles" msgstr "Sadece _Tamamlanmış Makaleleri Göster" #: pan/gui/actions.cc:749 msgid "Match Only Complete Articles" msgstr "Sadece Tamamlanmış Makaleleri Göster" #: pan/gui/actions.cc:750 msgid "Match Only _My Articles" msgstr "Sadece _Benim Makaleleri Göster" #: pan/gui/actions.cc:750 msgid "Match Only My Articles" msgstr "Sadece Benim Makaleleri Göster" #: pan/gui/actions.cc:751 msgid "Match Only _Watched Articles" msgstr "Sadece _İzlenmiş Makaleleri Göster" #: pan/gui/actions.cc:751 msgid "Match Only Watched Articles" msgstr "Sadece İzlenmiş Makaleleri Göster" #: pan/gui/actions.cc:753 msgid "Match Scores of 9999 (_Watched)" msgstr "9999 Puanlıları Göster (_İzlenmiş)" #: pan/gui/actions.cc:754 msgid "Match Scores of 5000...9998 (_High)" msgstr "5000...9998 Puanlıları Göster (_Yüksek)" #: pan/gui/actions.cc:755 msgid "Match Scores of 1...4999 (Me_dium)" msgstr "1...4999 Puanlıları Göster (_Orta)" #: pan/gui/actions.cc:756 msgid "Match Scores of 0 (_Normal)" msgstr "0 Puanlıları Göster (_Normal)" #: pan/gui/actions.cc:757 msgid "Match Scores of -9998...-1 (_Low)" msgstr "-9998...-1 Puanlıları Göster (_Düşük)" #: pan/gui/actions.cc:758 msgid "Match Scores of -9999 (_Ignored)" msgstr "-9999 Puanlıları Göster (_Yok Sayılmış)" #: pan/gui/actions.cc:760 msgid "Enable/Disable All _Rules" msgstr "Tüm _Kuralları Aç/Kapat" #: pan/gui/actions.cc:788 msgid "Show Matching _Articles" msgstr "Eşleşen _Makaleleri Göster" #: pan/gui/actions.cc:789 msgid "Show Matching Articles' _Threads" msgstr "Eşleşen Makalelerinin _Konularını Göster" #: pan/gui/actions.cc:790 msgid "Show Matching Articles' _Subthreads" msgstr "Eşleşen Makalelerinin _Alt Konularını Göster" #: pan/gui/body-pane.cc:1038 msgid "Unnamed File" msgstr "Adlandırılmamış Dosya" #: pan/gui/body-pane.cc:1119 pan/gui/gui.cc:1956 pan/gui/header-pane.cc:1309 #: pan/gui/header-pane.cc:1738 pan/gui/post-ui.cc:2641 pan/gui/prefs-ui.cc:887 #: pan/gui/score-add-ui.cc:139 pan/gui/task-pane.cc:795 msgid "Subject" msgstr "Konu" #: pan/gui/body-pane.cc:1121 pan/gui/gui.cc:1956 msgid "From" msgstr "Kimden" #: pan/gui/body-pane.cc:1123 pan/gui/gui.cc:1957 pan/gui/header-pane.cc:1817 #: pan/gui/log-ui.cc:308 pan/gui/prefs-ui.cc:883 msgid "Date" msgstr "Tarih" #: pan/gui/body-pane.cc:1130 msgid "Newsgroups" msgstr "Haber Grupları" #: pan/gui/body-pane.cc:1137 pan/gui/body-pane.cc:1145 #: pan/gui/body-pane.cc:1152 msgid "User-Agent" msgstr "User-Agent" #: pan/gui/body-pane.cc:1158 msgid "Followup-To" msgstr "Takip et" #: pan/gui/body-pane.cc:1168 msgid "Reply-To" msgstr "Yanıtla" #: pan/gui/body-pane.cc:1216 msgid " from " msgstr "kimden" #: pan/gui/body-pane.cc:1218 msgid " at " msgstr " konumunda " #: pan/gui/body-pane.cc:1307 #, c-format msgid "" "This is a PGP-Signed message.\n" "\n" "Signer: %s ('%s')\n" "Valid until: %s\n" "Created on: %s" msgstr "" "Bu bir PGP-İmzalı iletidir.\n" "\n" "İmzacı: %s ('%s')\n" "Geçerli Tarih: %s\n" "Oluşturma Tarihi: %s" #: pan/gui/body-pane.cc:1312 msgid "always" msgstr "her zaman" #: pan/gui/body-pane.cc:1532 msgid "Copy _URL" msgstr "_Adresi Kopyala" #: pan/gui/body-pane.cc:1720 msgid "Save Attachment As..." msgstr "Eklentiyi Farklı Kaydet..." #: pan/gui/body-pane.cc:1723 msgid "Save All Attachments" msgstr "Tüm Eklentileri Kaydet" #: pan/gui/body-pane.cc:1794 msgid "Attachments:" msgstr "Eklentiler:" #: pan/gui/body-pane.cc:1814 msgid "Text View" msgstr "Metin Görünümü" #: pan/gui/body-pane.cc:1823 msgid "HTML View" msgstr "HTML Görünümü" #: pan/gui/dl-headers-ui.cc:125 #, c-format msgid "%d Group" msgid_plural "%d Groups" msgstr[0] "%d Grup" #: pan/gui/dl-headers-ui.cc:148 msgid "Get the last N _days' headers: " msgstr "Son N _günün başlıklarını getir: " #: pan/gui/dl-headers-ui.cc:156 msgid "Get _new headers" msgstr "_Yeni başlıkları getir" #: pan/gui/dl-headers-ui.cc:160 msgid "Get _all headers" msgstr "_Tüm başlıkları getir" #: pan/gui/dl-headers-ui.cc:164 msgid "Get the _latest N headers: " msgstr "_Son N başlığı getir: " #: pan/gui/e-action-combo-box.c:386 pan/gui/prefs-ui.cc:880 msgid "Action" msgstr "Eylem" #: pan/gui/e-action-combo-box.c:387 msgid "A GtkRadioAction" msgstr "Bir GtkRadioAction" #: pan/gui/e-charset.c:51 pan/gui/task-pane.cc:561 msgid "Unknown" msgstr "Bilinmeyen" #: pan/gui/e-charset.c:52 msgid "Arabic" msgstr "Arapça" #: pan/gui/e-charset.c:53 msgid "Baltic" msgstr "Baltık" #: pan/gui/e-charset.c:54 msgid "Central European" msgstr "Orta Avrupa" #: pan/gui/e-charset.c:55 msgid "Chinese" msgstr "Çince" #: pan/gui/e-charset.c:56 msgid "Cyrillic" msgstr "Kiril" #: pan/gui/e-charset.c:57 msgid "Greek" msgstr "Yunanca" #: pan/gui/e-charset.c:58 msgid "Hebrew" msgstr "İbranice" #: pan/gui/e-charset.c:59 msgid "Japanese" msgstr "Japonca" #: pan/gui/e-charset.c:60 msgid "Korean" msgstr "Korece" #: pan/gui/e-charset.c:61 msgid "Thai" msgstr "Tayca" #: pan/gui/e-charset.c:62 msgid "Turkish" msgstr "Türkçe" #: pan/gui/e-charset.c:63 msgid "Unicode" msgstr "Unicode" #: pan/gui/e-charset.c:64 msgid "Western European" msgstr "Batı Avrupa" #: pan/gui/e-charset.c:65 msgid "Western European, New" msgstr "Batı Avrupa, Yeni" #: pan/gui/e-charset.c:84 pan/gui/e-charset.c:85 pan/gui/e-charset.c:86 msgid "Traditional" msgstr "Geleneksel" #: pan/gui/e-charset.c:87 pan/gui/e-charset.c:88 pan/gui/e-charset.c:89 #: pan/gui/e-charset.c:90 msgid "Simplified" msgstr "Basitleştirilmiş" #: pan/gui/e-charset.c:93 msgid "Ukrainian" msgstr "Ukraynaca" #: pan/gui/e-charset.c:96 msgid "Visual" msgstr "Görsel" #: pan/gui/e-charset-combo-box.c:95 pan/gui/gui.cc:2154 pan/gui/post-ui.cc:546 #: pan/gui/prefs-ui.cc:791 msgid "Character Encoding" msgstr "Karakter Kodlaması" #: pan/gui/e-charset-combo-box.c:97 pan/gui/e-charset-dialog.c:51 #: pan/gui/score-add-ui.cc:606 pan/gui/task-pane.cc:309 msgid "Cancel" msgstr "İptal" #: pan/gui/e-charset-combo-box.c:98 pan/gui/e-charset-dialog.c:52 msgid "OK" msgstr "Tamam" #: pan/gui/e-charset-combo-box.c:119 msgid "Enter the character set to use" msgstr "Kullanılacak karakter kümesini girin" #: pan/gui/e-charset-combo-box.c:338 msgid "Other..." msgstr "Diğer..." #: pan/gui/e-cte-dialog.c:76 msgid "Default Encoding" msgstr "Varsayılan Kodlama" #: pan/gui/e-cte-dialog.c:78 msgid "7-Bit Encoding" msgstr "7-Bit Kodlama" #: pan/gui/e-cte-dialog.c:80 msgid "8-Bit Encoding" msgstr "8-Bit Kodlama" #: pan/gui/e-cte-dialog.c:82 msgid "Base64 Encoding" msgstr "Base64 Kodlama" #: pan/gui/e-cte-dialog.c:84 msgid "Quoted-Printable Encoding" msgstr "Alıntılanmış-Yazdırılabilir Kodlama" #: pan/gui/group-pane.cc:331 msgid "Sent" msgstr "Gönderilmiş" #: pan/gui/group-pane.cc:332 msgid "Drafts" msgstr "Taslaklar" #: pan/gui/group-pane.cc:543 msgid "Group" msgstr "Grup" #: pan/gui/group-pane.cc:544 msgid "Group (regex)" msgstr "Grup (düzenli ifade)" #: pan/gui/group-pane.cc:987 msgid "Local Folders" msgstr "Yerel Klasörler" #: pan/gui/group-pane.cc:988 msgid "Subscribed Groups" msgstr "Abone Olunmuş Gruplar" #: pan/gui/group-pane.cc:989 msgid "Other Groups" msgstr "Diğer Gruplar" #: pan/gui/group-pane.cc:1029 pan/gui/score-view-ui.cc:156 msgid "Name" msgstr "Ad" #: pan/gui/group-prefs-dialog.cc:161 msgid "No Profiles defined in Edit|Posting Profiles." msgstr "Düzenle|Gönderi Profilleri’nde tanımlı bir Profil yok." #: pan/gui/group-prefs-dialog.cc:264 msgid "Pan: Group Preferences" msgstr "Pan: Grup Tercihleri" #: pan/gui/group-prefs-dialog.cc:279 msgid "Properties for Groups" msgstr "Gruplar için Özellikler" #: pan/gui/group-prefs-dialog.cc:281 #, c-format msgid "Properties for %s" msgstr "\"%s\" için Özellikler" #: pan/gui/group-prefs-dialog.cc:292 msgid "Character _encoding:" msgstr "Karakter _kodlaması:" #: pan/gui/group-prefs-dialog.cc:294 msgid "Directory for Saving Attachments" msgstr "Eklentileri Kaydetme için Dizin" #: pan/gui/group-prefs-dialog.cc:302 msgid "Directory for _saving attachments:" msgstr "Eklentileri _kaydetme için dizin:" #: pan/gui/group-prefs-dialog.cc:304 msgid "Posting _profile:" msgstr "Gönderme _profili:" #: pan/gui/group-prefs-dialog.cc:309 msgid "Spellchecker _language:" msgstr "Yazım denetimi _dili:" #: pan/gui/group-prefs-dialog.cc:312 msgid "Group color:" msgstr "Grup rengi:" #: pan/gui/gui.cc:311 msgid "Open the Task Manager" msgstr "Görev Yöneticisini Aç" #: pan/gui/gui.cc:334 msgid "Open the Event Log" msgstr "Eylem Günlüğünü Aç" #: pan/gui/gui.cc:610 msgid "Save NZB's Files" msgstr "NZB Dosyalarını Kaydet" #: pan/gui/gui.cc:637 msgid "Untitled.nzb" msgstr "Başlıksız.nzb" #: pan/gui/gui.cc:639 msgid "Save NZB File as..." msgstr "NZB Dosyasını Farklı Kaydet..." #: pan/gui/gui.cc:808 msgid "Import NZB Files" msgstr "NZB Dosyalarını İçe Aktar" #: pan/gui/gui.cc:816 pan/gui/post-ui.cc:3349 msgid "NZB Files" msgstr "NZB Dosyaları" #: pan/gui/gui.cc:821 msgid "All Files" msgstr "Tüm Dosyalar" #: pan/gui/gui.cc:1335 msgid "Unable to supersede article." msgstr "Makalenin yerine geçilemiyor." #: pan/gui/gui.cc:1336 pan/gui/gui.cc:1412 msgid "The article doesn't match any of your posting profiles." msgstr "Makale, herhangi bir gönderme profilinizle eşleşmiyor." #: pan/gui/gui.cc:1385 msgid "Revise and send this article to replace the old one." msgstr "Eskisi ile değiştirmek için makaleyi gözden geçir ve gönder." #: pan/gui/gui.cc:1386 pan/gui/gui.cc:1450 msgid "Be patient! It will take time for your changes to take effect." msgstr "Sabırlı olun! Değişikliklerinizin uygulanması biraz zaman alacak." #: pan/gui/gui.cc:1411 msgid "Unable to cancel article." msgstr "Makale iptal edilemiyor." #: pan/gui/gui.cc:1449 msgid "Send this article to ask your server to cancel your other one." msgstr "Bu makaleyi sunucuya diğerini iptal etmesini sorması için gönderin." #: pan/gui/gui.cc:1467 msgid "You have marked some articles for deletion." msgstr "Bazı makaleleri silmek için işaretlemişsiniz." #: pan/gui/gui.cc:1468 msgid "Are you sure you want to delete them?" msgstr "Onları silmek istediğinizden emin misiniz?" #: pan/gui/gui.cc:1494 msgid "Do you want to accept it permanently? (You can change this later.)" msgstr "" "Kalıcı olarak kabul etmek istiyor musunuz? (Daha sonra bunu " "değiştirebilirsiniz.)" #: pan/gui/gui.cc:1640 msgid "Unable to open help file." msgstr "Yardım dosyası açılamadı." #: pan/gui/gui.cc:1668 msgid "Copyright © 2002-2021 Charles Kerr and others" msgstr "Telif Hakkı © 2002-2022 Charles Kerr ve diğerleri" # Header bilgileriyle eşitlemeyi unutmayın #: pan/gui/gui.cc:1673 msgid "translator-credits" msgstr "" "Fatih Demir \n" "Görkem Çetin \n" "Kaan Özdinçer \n" "Muhammet Kara \n" "Sabri Ünal " #: pan/gui/gui.cc:1801 msgid "_1. Group Pane" msgstr "_1. Grup Çerçevesi" #: pan/gui/gui.cc:1802 msgid "_2. Header Pane" msgstr "_2. Başlık Çerçevesi" #: pan/gui/gui.cc:1803 msgid "_3. Body Pane" msgstr "_3. Gövde Çerçevesi" #: pan/gui/gui.cc:1893 pan/gui/gui.cc:1908 msgid " Bytes" msgstr " Bayt" #: pan/gui/gui.cc:1896 msgid " KB" msgstr " KB" #: pan/gui/gui.cc:1899 msgid " MB" msgstr " MB" #: pan/gui/gui.cc:1902 msgid " GB" msgstr " GB" #: pan/gui/gui.cc:1905 msgid " TB" msgstr " TB" #: pan/gui/gui.cc:1937 #, c-format msgid "This article is complete with %d part." msgid_plural "This article has all %d parts." msgstr[0] "Bu makale %d kısım ile tamamlandı." #: pan/gui/gui.cc:1939 #, c-format msgid "This article is missing %d part." msgid_plural "This article is missing %d of its %d parts:" msgstr[0] "Bu makalenin %d kısmı %d kadarı eksik." #: pan/gui/gui.cc:1957 pan/gui/header-pane.cc:1311 pan/gui/task-pane.cc:797 msgid "Message-ID" msgstr "İleti-Numarası" #: pan/gui/gui.cc:1958 pan/gui/header-pane.cc:1786 pan/gui/prefs-ui.cc:884 msgid "Lines" msgstr "Satırlar" #: pan/gui/gui.cc:1958 msgid "Size" msgstr "Boyut" #: pan/gui/gui.cc:1959 pan/gui/header-pane.cc:1802 pan/gui/prefs-ui.cc:882 msgid "Bytes" msgstr "Bayt" #: pan/gui/gui.cc:2009 msgid "" "Error loading iconv library. Encoding certain character sets will not work " "in GUI." msgstr "" "İconv kütüphanesi yüklenirken hata oluştu. Kodlama bulunan karakter kümeleri " "ile arayüzde çalışmayacak." #: pan/gui/gui.cc:2155 msgid "Body Pane Encoding" msgstr "Gövde Çerçevesi Kodlaması" #: pan/gui/gui.cc:2186 pan/gui/task-pane.cc:612 msgid "Offline" msgstr "Çevrim Dışı" #: pan/gui/gui.cc:2190 #, c-format msgid "Closing %d connection" msgid_plural "Closing %d connections" msgstr[0] "%d bağlantı kapatılıyor" #: pan/gui/gui.cc:2192 pan/gui/gui.cc:2222 msgid "No Connections" msgstr "Bağlantı Yok" #: pan/gui/gui.cc:2196 msgid "Connecting" msgstr "Bağlanılıyor" #: pan/gui/gui.cc:2209 #, c-format msgid "%s: %d idle, %d active @ %.1f KiBps" msgstr "%s: %d boşta, %d etkin @ %.1f KiBps" #: pan/gui/gui.cc:2265 msgid "No Tasks" msgstr "Görev Yok" #: pan/gui/gui.cc:2267 pan/gui/prefs-ui.cc:1121 msgid "Tasks" msgstr "Görevler" #: pan/gui/gui.cc:2284 pan/gui/task-pane.cc:478 #, c-format msgid "%lu tasks, %s, %.1f KiBps, ETA %d:%02d:%02d" msgstr "%lu görev, %s, %.1f KiBps, ETA %d:%02d:%02d" #: pan/gui/gui.cc:2336 msgid "" "Pan is now offline. Please see \"File|Event Log\" and correct the problem, " "then use \"File|Work Online\" to continue." msgstr "" "Pan şu anda çevrim dışı. Lütfen \"Dosya|Olay Günlüğü” ne göz atın ve sorunu " "çözün, sonra \"Dosya|Çevrim İçi Çalış” seçeneğini kullanarak devam edin." #: pan/gui/header-pane.cc:1307 pan/gui/task-pane.cc:793 msgid "Subject or Author" msgstr "Konu veya Yazar" #: pan/gui/header-pane.cc:1308 pan/gui/task-pane.cc:794 msgid "Sub or Auth (regex)" msgstr "Konu veya Yazar (düzenli ifade)" #: pan/gui/header-pane.cc:1310 pan/gui/header-pane.cc:1770 #: pan/gui/prefs-ui.cc:881 pan/gui/score-add-ui.cc:140 pan/gui/task-pane.cc:796 msgid "Author" msgstr "Yazar" #: pan/gui/header-pane.cc:1755 pan/gui/prefs-ui.cc:885 msgid "Score" msgstr "Puan" #: pan/gui/log-ui.cc:105 msgid "Save Event List" msgstr "Olay Listesini Kaydet" #: pan/gui/log-ui.cc:259 msgid "Pan: Events" msgstr "Pan: Olaylar" #: pan/gui/log-ui.cc:318 msgid "Message" msgstr "İleti" #: pan/gui/pan.cc:336 msgid "Maximize" msgstr "Ekranı Kapla" #: pan/gui/pan.cc:376 msgid "An error has occurred!" msgstr "Bir hata oluştu!" #: pan/gui/pan.cc:389 msgid "New Articles!" msgstr "Yeni Makaleler!" #: pan/gui/pan.cc:390 msgid "" "There are new\n" "articles available." msgstr "" "Yeni makaleler\n" "kullanılabilir durumda." #: pan/gui/pan.cc:470 msgid "" "Thank you for trying Pan!\n" " \n" "To start newsreading, first Add a Server." msgstr "" "Pan’ı denediğiniz için teşekkürler!\n" " \n" "Haberleri okumak için, öncelikle bir Sunucu Ekleyin." #: pan/gui/pan.cc:552 msgid "" "General Options\n" " -h, --help Show this usage information and exit.\n" " -v, --version Print release version and exit.\n" " --verbose Be verbose (in non-GUI mode).\n" " --debug Run in debug mode. Use --debug twice for verbose " "debug.\n" " --debug-ssl Run in TLS (aka SSL) debug mode.\n" "\n" "URL Options\n" " headers:group.name Download new headers for the specified " "newsgroup.\n" " news:message-id When specified together with --no-gui, dump\n" " the message-id article to standard output.\n" "\n" "NZB Batch Options\n" " --nzb file1 file2 ... Process NZB files in non-GUI mode.\n" " -o path, --output=path Path to save attachments listed in the NZB " "file(s).\n" " --no-gui Only show console output, not the download " "queue.\n" msgstr "" "Genel Seçenekler\n" " -h, --help Bu kullanım bilgisini göster ve çık.\n" " -v, --version Sürüm numarasını yazdır ve çık.\n" " --verbose Ayrıntılı göster (GUI olmayan kipte).\n" " --debug Hata ayıklama kipinde çalıştır. Hata ayıklamanın " "ayrıntılı olması için iki defa --debug kullanın.\n" " --debug-ssl TLS (yani SSL) hata ayıklama kipinde çalıştır.\n" "\n" "URL Seçenekleri\n" " başlıklar:grup.ad Belirtilen haber grubu için yeni başlıkları " "getir.\n" " --no-gui news:ileti-numarası, makaleyi standart çıktıya " "döker.\n" " the message-id article to standard output.\n" "\n" "NZB Toplu İşlem Seçenekleri\n" " --nzb dosya1 dosya2 ... Tüm NZB dosyalarını GUI olmayan kipte işler.\n" " -o yol, --output=yol NZB dosyalarında listelenmiş eklentilerin " "kaydedileceği yol.\n" " --no-gui Sadece terminale çıktı basar, kuyruğu indirmez.\n" #: pan/gui/pan.cc:885 msgid "Error: --no-gui used without nzb files or news:message-id." msgstr "" "Hata: --no-gui nzb dosyaları veya news:ileti-numarası olmadan kullanılır." #: pan/gui/pan.cc:889 #, c-format msgid "Pan %s started" msgstr "Pan %s başlatıldı" #: pan/gui/pan.cc:909 msgid "Please configure Pan's news servers before using it as an nzb client." msgstr "" "Lütfen Pan haber sunucularını, nzb istemcisi kullanmadan önce yapılandırın." #: pan/gui/pan.cc:1029 msgid "Pan notification" msgstr "Pan bildirimi" #: pan/gui/post-ui.cc:175 #, c-format msgid "Upload queue: %llu tasks, %ld KB (~ %.2f MB) total." msgstr "Karşıya yükleme kuyruğu %llu görev, %ld KB (~ %.2f MB) toplam." #: pan/gui/post-ui.cc:281 pan/gui/post-ui.cc:312 #, c-format msgid "Error setting custom spellchecker: %s" msgstr "Özel imla denetleyicisi ayar hatası: %s" #: pan/gui/post-ui.cc:285 pan/gui/post-ui.cc:293 pan/gui/post-ui.cc:316 #: pan/gui/post-ui.cc:324 #, c-format msgid "Error setting spellchecker: %s" msgstr "Özel imla denetleyicisi ayar hatası: %s" #: pan/gui/post-ui.cc:453 msgid "_Profile" msgstr "_Profil" #: pan/gui/post-ui.cc:454 msgid "Set Editor" msgstr "Düzenleyici Ayarla" #: pan/gui/post-ui.cc:456 msgid "_Send Article" msgstr "Makale _Gönder" #: pan/gui/post-ui.cc:456 msgid "Send Article Now" msgstr "Makaleyi Şimdi Gönder" #: pan/gui/post-ui.cc:457 msgid "_Send and Save Articles to NZB" msgstr "Makaleyi NZB’ye _Gönder ve Kaydet" #: pan/gui/post-ui.cc:457 msgid "Send and Save Articles to NZB" msgstr "Makaleyi NZB’ye Gönder ve Kaydet" #: pan/gui/post-ui.cc:458 msgid "Set Character _Encoding..." msgstr "Karakter _Kodlamasını Ayarla..." #: pan/gui/post-ui.cc:459 msgid "Set Content _Transfer Encoding..." msgstr "İçerik _Aktarım Kodlamasını Ayarla..." #: pan/gui/post-ui.cc:460 msgid "Sa_ve Draft" msgstr "Taslağı Ka_ydet" #: pan/gui/post-ui.cc:460 msgid "Save as a Draft for Future Posting" msgstr "Gelecekte Göndermek için Taslağı Farklı Kaydet" #: pan/gui/post-ui.cc:461 msgid "_Open Draft..." msgstr "Taslak _Aç..." #: pan/gui/post-ui.cc:461 msgid "Open an Article Draft" msgstr "Makale Taslağı Aç" #: pan/gui/post-ui.cc:466 msgid "_Rot13" msgstr "_Rot13" #: pan/gui/post-ui.cc:466 msgid "Rot13 Selected Text" msgstr "Rot13 Seçili Metin" #: pan/gui/post-ui.cc:467 msgid "Run _Editor" msgstr "_Düzenleyici Çalıştır" #: pan/gui/post-ui.cc:467 msgid "Run Editor" msgstr "Düzenleyici Çalıştır" #: pan/gui/post-ui.cc:469 msgid "Add _Files to Queue" msgstr "_Dosyaları Kuyruğa Ekle" #: pan/gui/post-ui.cc:469 msgid "Add Files to Queue" msgstr "Dosyaları Kuyruğa Ekle" #: pan/gui/post-ui.cc:484 pan/gui/post-ui.cc:485 msgid "Remove from Queue" msgstr "Kuyruktan Sil" #: pan/gui/post-ui.cc:489 pan/gui/post-ui.cc:490 msgid "Clear List" msgstr "Listeyi Temizle" #: pan/gui/post-ui.cc:494 pan/gui/post-ui.cc:495 msgid "Select Needed Parts" msgstr "Gerekli Kısımları Seç" #: pan/gui/post-ui.cc:499 pan/gui/post-ui.cc:500 pan/gui/task-pane.cc:680 #: pan/gui/task-pane.cc:681 msgid "Move Up" msgstr "Yukarı Taşı" #: pan/gui/post-ui.cc:504 pan/gui/post-ui.cc:505 pan/gui/task-pane.cc:685 #: pan/gui/task-pane.cc:686 msgid "Move Down" msgstr "Aşağı Taşı" #: pan/gui/post-ui.cc:509 pan/gui/post-ui.cc:510 msgid "Move to Top" msgstr "En Üste Taşı" #: pan/gui/post-ui.cc:514 pan/gui/post-ui.cc:515 msgid "Move to Bottom" msgstr "En Alta Taşı" #: pan/gui/post-ui.cc:522 msgid "_Wrap Text" msgstr "Metni _Kaydır" #: pan/gui/post-ui.cc:522 msgid "Wrap Text" msgstr "Metni Kaydır" #: pan/gui/post-ui.cc:523 msgid "Always Run Editor" msgstr "Her zaman Düzenleyici Çalıştır" #: pan/gui/post-ui.cc:524 msgid "Remember Character Encoding for This Group" msgstr "Bu Grup için Karakter Kodlamasını Hatırla" #: pan/gui/post-ui.cc:525 msgid "Thread Attached Replies" msgstr "Konu Eklentili Cevaplar" #: pan/gui/post-ui.cc:526 msgid "PGP-Encrypt the Article" msgstr "PGP Şifreli Makale" #: pan/gui/post-ui.cc:527 msgid "PGP-Sign the Article" msgstr "PGP İmzalı Makale" #: pan/gui/post-ui.cc:528 msgid "Check _Spelling" msgstr "_Yazım Denetimi" #: pan/gui/post-ui.cc:547 msgid "New Article's Encoding:" msgstr "Yeni Makalenin Kodlaması:" #: pan/gui/post-ui.cc:557 msgid "Content Transfer Encoding" msgstr "İçerik Aktarım Kodlaması" #: pan/gui/post-ui.cc:558 msgid "New Article's Content Transfer Encoding:" msgstr "Yeni Makalenin İçerik Aktarım Kodlaması:" #: pan/gui/post-ui.cc:742 msgid "Your changes will be lost!" msgstr "Tüm değişiklikleriniz kaybolacak!" #: pan/gui/post-ui.cc:743 msgid "Close this window and lose your changes?" msgstr "Pencereyi kapatmak ve değişikliklerinizi kaydetmek istiyor musunuz?" #: pan/gui/post-ui.cc:788 pan/gui/post-ui.cc:827 msgid "There were problems with this post." msgstr "Bu gönderide bazı sorunlar var." #: pan/gui/post-ui.cc:790 pan/gui/post-ui.cc:829 pan/gui/post-ui.cc:894 msgid "Go Back" msgstr "Geri Git" #: pan/gui/post-ui.cc:792 msgid "Continue Anyway" msgstr "Yinede Devam Et" #. Prompt the user #: pan/gui/post-ui.cc:821 #, c-format msgid "" "Message uses characters not specified in charset '%s' - possibly use '%s' " msgstr "" "İleti '%s' karakter kümesinde tanımlanmamış karakterler içeriyor - '%s' " "kullanılmış olabilir " #: pan/gui/post-ui.cc:844 msgid "Go _Online" msgstr "Çevrim İçi _Ol" #: pan/gui/post-ui.cc:893 msgid "The file queue is empty, so no files can be saved." msgstr "Dosya kuyruğu boş, hiçbir dosya kaydedilemez." #: pan/gui/post-ui.cc:1073 msgid "IO Error" msgstr "GÇ Hatası" #: pan/gui/post-ui.cc:1073 msgid "No space left on device" msgstr "Aygıtta boş alan kalmadı" #: pan/gui/post-ui.cc:1074 #, c-format msgid "Error copying message to %s folder. Reason: %s" msgstr "İleti %s klasörüne kopyalanırken hata oluştu. Sebep: %s" #: pan/gui/post-ui.cc:1080 #, c-format msgid "Error creating message in %s mail folder: Invalid article." msgstr "İleti %s posta klasöründe oluşturulurken hata oluştu: Geçersiz makale." #: pan/gui/post-ui.cc:1102 msgid "" "No posting server is set for this posting profile.\n" "Please edit the profile via Edit|Manage Posting Profiles." msgstr "" "Bu gönderme profili için bir gönderme sunucusu ayarlanmamış.\n" "Lütfen Düzenle|Gönderme Profillerini Yönet üzerinden profili düzenleyin." #: pan/gui/post-ui.cc:1107 msgid "" "The selected posting server is currently disabled. Please choose an " "appropriate alternative." msgstr "" "Seçili gönderme sunucusu şu anda kapalı. Lütfen uygun bir altertif sunucu " "seçin." #: pan/gui/post-ui.cc:1149 msgid "Pan is Offline." msgstr "Pan Çevrim Dışı." #: pan/gui/post-ui.cc:1150 msgid "Go online to post the article?" msgstr "Makale göndermek için çevrim içi olun?" #: pan/gui/post-ui.cc:1199 #, c-format msgid "" "Error signing/encrypting your message. Perhaps you misspelled your email " "address (%s)?" msgstr "" "İletinizde imzalama/şifreleme hatası oluştu. Eposta adresiniz (%s) yanlış " "olabilir mi?" #: pan/gui/post-ui.cc:1349 msgid "Error opening temporary file" msgstr "Geçici dosya açılırken hata oluştu" #: pan/gui/post-ui.cc:1360 #, c-format msgid "Error creating temporary file: %s" msgstr "Geçici dosya oluşturulurken hata: %s" #: pan/gui/post-ui.cc:1368 #, c-format msgid "Error writing article to temporary file: %s" msgstr "Makale geçici dosyaya yazılırken hata oluştu: %s" #: pan/gui/post-ui.cc:1441 msgid "Open Draft Article" msgstr "Taslak Makale Aç" #: pan/gui/post-ui.cc:1683 msgid "Save Draft Article" msgstr "Taslak Makaleyi Kaydet" #: pan/gui/post-ui.cc:1721 msgid "File already exists." msgstr "Klasör zaten var." #: pan/gui/post-ui.cc:1722 msgid "Overwrite it?" msgstr "Üzerine yazılsın mı?" #: pan/gui/post-ui.cc:1931 #, c-format msgid "Couldn't parse signature command \"%s\": %s" msgstr "İmza komutu \"%s\" ayrıştırılamadı: %s" #: pan/gui/post-ui.cc:1967 msgid "Couldn't convert signature to UTF-8." msgstr "İmza, UTF-8 olarak dönüştürülemedi." #: pan/gui/post-ui.cc:2479 msgid "F_rom" msgstr "Ki_mden" #: pan/gui/post-ui.cc:2496 msgid "_Subject" msgstr "_Konu" #: pan/gui/post-ui.cc:2509 msgid "_Newsgroups" msgstr "_Haber Grupları" #: pan/gui/post-ui.cc:2523 msgid "Mail _To" msgstr "K_ime" #: pan/gui/post-ui.cc:2626 msgid "Delete from Queue" msgstr "Kuyruktan Sil" #: pan/gui/post-ui.cc:2639 msgid "No." msgstr "No." #: pan/gui/post-ui.cc:2643 pan/gui/post-ui.cc:2735 pan/gui/post-ui.cc:2776 msgid "Filename" msgstr "Dosya Adı" #: pan/gui/post-ui.cc:2645 msgid "Size (KB)" msgstr "Boyut (KB)" #: pan/gui/post-ui.cc:2743 msgid "The current filename" msgstr "Mevcut dosya adı" #: pan/gui/post-ui.cc:2747 msgid "Subject Line" msgstr "Konu Satırı" #: pan/gui/post-ui.cc:2755 msgid "The current subject line" msgstr "Mevcut konu satırı" #: pan/gui/post-ui.cc:2769 msgid "No. " msgstr "No. " #: pan/gui/post-ui.cc:2773 msgid "Enable/Disable" msgstr "Aç/Kapat" #: pan/gui/post-ui.cc:2807 msgid "Follo_wup-To" msgstr "Takip A_dresi" #. i18n: "poster" is a key used by many newsreaders. probably safest to keep this key in english. #: pan/gui/post-ui.cc:2816 msgid "" "The newsgroups where replies to your message should go. This is only needed " "if it differs from the \"Newsgroups\" header.\n" "\n" "To direct all replies to your email address, use \"Followup-To: poster\"" msgstr "" "İletinize cevap veren haber sunucusuna erişilemedi. Böyle birşeye sadece " "\"Haber Grupları” başlığı farklı olduğunda gerek duyulur.\n" "\n" "Bütün cevapları kendi e-posta adresinize yönlendirmek için \"Cevapla: " "poster” seçeneğini kullanın" #: pan/gui/post-ui.cc:2823 msgid "_Reply-To" msgstr "_Yanıtla" #: pan/gui/post-ui.cc:2831 msgid "" "The email account where mail replies to your posted message should go. This " "is only needed if it differs from the \"From\" header." msgstr "" "Gönderilen iletinize posta yanıtlayan e-posta hesabı gitmelidir. Böyle " "birşeye sadece \"Kimden” başlığı farklı olduğunda gerek duyulur." #: pan/gui/post-ui.cc:2838 msgid "_Custom Headers" msgstr "_Özel Başlıklar" #: pan/gui/post-ui.cc:2862 msgid "Add \"_User-Agent\" header" msgstr "\"_User-Agent” başlığını ekle" #: pan/gui/post-ui.cc:2869 msgid "Add \"Message-_ID\" header" msgstr "\"Message-_ID” başlığını ekle" #: pan/gui/post-ui.cc:2997 msgid "Select Parts" msgstr "Bölümleri Seç" #: pan/gui/post-ui.cc:3010 msgid "_Parts" msgstr "_Bölümler" #: pan/gui/post-ui.cc:3177 msgid "Post Article" msgstr "Makale Gönder" #: pan/gui/post-ui.cc:3198 msgid "_Message" msgstr "_İleti" #: pan/gui/post-ui.cc:3199 msgid "More _Headers" msgstr "Daha Fazla _Başlık" #: pan/gui/post-ui.cc:3200 msgid "File _Queue" msgstr "Dosya _Kuyruğu" #: pan/gui/post-ui.cc:3231 pan/gui/profiles-dialog.cc:490 #, no-c-format msgid "On %d, %n wrote:" msgstr "%d tarihinde, %n dedi ki:" #: pan/gui/post-ui.cc:3260 msgid "Add files to queue" msgstr "Dosyaları kuyruğa ekle" #: pan/gui/post-ui.cc:3336 msgid "Save Upload Queue as NZB File" msgstr "Karşıya Yükleme Dosyasını NZB olarak Kaydet" #: pan/gui/prefs.cc:366 #, c-format msgid "Couldn't parse %s color \"%s\"" msgstr "%s rengi ayrıştırılamadı \"%s\"" #: pan/gui/prefs-ui.cc:139 msgid "Grab Key" msgstr "Tuşları Yakala" #: pan/gui/prefs-ui.cc:145 #, c-format msgid "" "Press the combination of the keys\n" "you want to use for \"%s\"." msgstr "" "\"%s\" kullanımı için\n" "tuşların birleşime basın." #: pan/gui/prefs-ui.cc:182 msgid "Edit Shortcut" msgstr "Kısayolu Düzenle" #: pan/gui/prefs-ui.cc:243 msgid "Error: Shortcut key is invalid!" msgstr "Hata: Kısayol tuşu geçersiz!" #: pan/gui/prefs-ui.cc:259 msgid "Error: Shortcut key already exists!" msgstr "Hata: Kısayol tuşu zaten mevcut!" #: pan/gui/prefs-ui.cc:593 msgid "Show only icons" msgstr "Sadece simgeleri göster" #: pan/gui/prefs-ui.cc:594 msgid "Show only text" msgstr "Sadece metni göster" #: pan/gui/prefs-ui.cc:595 msgid "Show icons and text" msgstr "Simgeleri ve metni göster" #: pan/gui/prefs-ui.cc:634 msgid "Use GNOME Preferences" msgstr "GNOME Tercihlerini Kullan" #: pan/gui/prefs-ui.cc:635 msgid "Use KDE Preferences" msgstr "KDE Tercihlerini Kullan" #: pan/gui/prefs-ui.cc:636 msgid "Use OS X Preferences" msgstr "OS X Tercihlerini Kullan" #: pan/gui/prefs-ui.cc:637 msgid "Use Windows Preferences" msgstr "Windows Tercihlerini Kullan" #: pan/gui/prefs-ui.cc:638 msgid "Custom Command:" msgstr "Özel Komut:" #: pan/gui/prefs-ui.cc:690 msgid "Disabled" msgstr "Kapalı" #: pan/gui/prefs-ui.cc:691 msgid "Only new (score == 0)" msgstr "Sadece yeni (puan == 0)" #: pan/gui/prefs-ui.cc:692 msgid "9999 or more" msgstr "9999 veya fazlası" #: pan/gui/prefs-ui.cc:693 msgid "5000 to 9998" msgstr "5000 9998 arası" #: pan/gui/prefs-ui.cc:694 msgid "1 to 4999" msgstr "1 4999 arası" #: pan/gui/prefs-ui.cc:695 msgid "-9998 to -1" msgstr "-9998 ile -1 arası" #: pan/gui/prefs-ui.cc:696 msgid "-9999 or less" msgstr "-9999 veya altı" #: pan/gui/prefs-ui.cc:760 #, c-format msgid "Select default global character set. Current setting: %s." msgstr "" "Varsayılan evrensel karakter kümesini seç. Mevcut ayar: %s." #: pan/gui/prefs-ui.cc:792 msgid "Global Character Set Settings" msgstr "Evrensel Karakter kümesi Ayarları" #: pan/gui/prefs-ui.cc:886 pan/gui/task-pane.cc:1067 msgid "State" msgstr "Durum" #: pan/gui/prefs-ui.cc:920 msgid "Enabled" msgstr "Etkin" #: pan/gui/prefs-ui.cc:924 msgid "Column Name" msgstr "Sütun Adı" #: pan/gui/prefs-ui.cc:962 msgid "Pan: Preferences" msgstr "Pan: Tercihler" #: pan/gui/prefs-ui.cc:977 msgid "Mouse" msgstr "Fare" #: pan/gui/prefs-ui.cc:979 msgid "Single-click activates, rather than selects, _groups" msgstr "Tek tıklama seçmek yerine etkinleştirir, _gruplar" #: pan/gui/prefs-ui.cc:981 msgid "Single-click activates, rather than selects, _articles" msgstr "Tek tıklama seçmek yerine etkinleştirir, _makaleler" #: pan/gui/prefs-ui.cc:984 msgid "Groups" msgstr "Gruplar" #: pan/gui/prefs-ui.cc:986 msgid "Get new headers in subscribed groups on _startup" msgstr "Abone olunmuş gruplardan, _başlangıçta, yeni başlıkları getir" #: pan/gui/prefs-ui.cc:988 msgid "Get new headers when _entering group" msgstr "Gruba _girerken yeni başlıkları getir" #: pan/gui/prefs-ui.cc:990 msgid "Mark entire group _read when leaving group" msgstr "Gruptan çıkarken tüm grubu _okunmuş olarak işaretle" #: pan/gui/prefs-ui.cc:992 msgid "Mark entire group read before getting _new headers" msgstr "Ye_ni başlıkları getirmeden önce tüm grubu okunmuş olarak işaretle" #: pan/gui/prefs-ui.cc:994 msgid "E_xpand all threads when entering group" msgstr "Gruba girerken tüm konuları geni_şlet" #: pan/gui/prefs-ui.cc:999 msgid "Articles" msgstr "Makaleler" #: pan/gui/prefs-ui.cc:1001 msgid "Mark downloaded articles read" msgstr "İndirilmiş makaleleri okunmuş olarak işaretle" #: pan/gui/prefs-ui.cc:1003 msgid "Space selects next article rather than next unread" msgstr "Boşluk tuşu, sonraki okunmamış yerine sonraki makaleyi seçer" #: pan/gui/prefs-ui.cc:1005 msgid "Expand threads upon selection" msgstr "Seçime göre konuları genişlet" #: pan/gui/prefs-ui.cc:1007 msgid "Always ask before deleting an article" msgstr "Bir makaleyi silmeden önce her zaman sor" #: pan/gui/prefs-ui.cc:1009 msgid "Smooth scrolling" msgstr "Yumuşak kaydırma" #: pan/gui/prefs-ui.cc:1014 msgid "Article Cache" msgstr "Makale Ön belleği" #: pan/gui/prefs-ui.cc:1015 msgid "Clear article cache on shutdown" msgstr "Kapanışta makale ön belleğini temizle" #: pan/gui/prefs-ui.cc:1018 msgid "Size of article cache (in MiB):" msgstr "Makale ön belleğinin boyutunu göster (MiB cinsinden)" #: pan/gui/prefs-ui.cc:1022 msgid "File extension for cached articles: " msgstr "Ön belleklenmiş makaleler için dosya uzantısı: " #: pan/gui/prefs-ui.cc:1026 msgid "Tabs" msgstr "Sekmeler" #: pan/gui/prefs-ui.cc:1031 msgid "_Behavior" msgstr "_Davranış" #: pan/gui/prefs-ui.cc:1031 msgid "Behavior" msgstr "Davranış" #: pan/gui/prefs-ui.cc:1037 msgid "Task Pane" msgstr "Görev Çerçevesi" #: pan/gui/prefs-ui.cc:1038 msgid "Show task pane popups" msgstr "Görev Çerçevesini açılan pencerelerde göster" #: pan/gui/prefs-ui.cc:1040 msgid "Show Download Meter" msgstr "İndirme Sayacını Göster" #: pan/gui/prefs-ui.cc:1044 msgid "_Panes" msgstr "_Çerçeveler" #: pan/gui/prefs-ui.cc:1044 msgid "Panes" msgstr "Çerçeveler" #: pan/gui/prefs-ui.cc:1050 msgid "Language Settings" msgstr "Dil Ayarları" #: pan/gui/prefs-ui.cc:1051 msgid "Font" msgstr "Yazı Tipi" #. systray and notify popup #: pan/gui/prefs-ui.cc:1058 msgid "System Tray Behavior" msgstr "Sistem Çekmecesi Davranışı" #: pan/gui/prefs-ui.cc:1060 msgid "Start Pan minimized" msgstr "Pan’ı simge durumunda başlat" #: pan/gui/prefs-ui.cc:1063 msgid "Show notifications" msgstr "Bildirimleri göster" #. allow multiple instances (seperate, not communicating with dbus) #: pan/gui/prefs-ui.cc:1068 msgid "Startup Behavior" msgstr "Başlangıç Davranışı" #: pan/gui/prefs-ui.cc:1070 msgid "Allow multiple instances of Pan" msgstr "Pan’ın çoklu çalışmasına izin ver" #: pan/gui/prefs-ui.cc:1075 msgid "Autosave Article Draft" msgstr "Taslak Makaleleri Otomatik Kaydet" #: pan/gui/prefs-ui.cc:1077 msgid "Minutes to autosave the current Article Draft: " msgstr "Taslak Makalelerin Otomatik Kaydedilmesi için gereken dakika: " #: pan/gui/prefs-ui.cc:1082 msgid "Autosave Articles" msgstr "Makaleleri Otomatik Kaydet" #: pan/gui/prefs-ui.cc:1084 msgid "Minutes to autosave newsrc files: " msgstr "newsrc dosyasının otomatik kaydedilmesi için gereken dakika: " #: pan/gui/prefs-ui.cc:1091 msgid "Password Storage" msgstr "Parola Deposu" #: pan/gui/prefs-ui.cc:1093 msgid "Save passwords in password storage" msgstr "Parolaları parola deposuna kaydet" #: pan/gui/prefs-ui.cc:1100 msgid "_Miscellaneous" msgstr "_Diğer" #: pan/gui/prefs-ui.cc:1100 msgid "Miscellaneous" msgstr "Diğer" #: pan/gui/prefs-ui.cc:1105 msgid "Pane Layout" msgstr "Çerçeve Yerleşimi" #: pan/gui/prefs-ui.cc:1124 msgid "1=Groups, 2=Headers, 3=Body" msgstr "1=Gruplar 2=Başlıklar 3=Gövde" #: pan/gui/prefs-ui.cc:1126 msgid "1=Groups, 2=Body, 3=Headers" msgstr "1=Gruplar 2=Gövde 3=Başlıklar" #: pan/gui/prefs-ui.cc:1128 msgid "1=Headers, 2=Groups, 3=Body" msgstr "1=Başlıklar 2=Gruplar 3=Gövde" #: pan/gui/prefs-ui.cc:1130 msgid "1=Headers, 2=Body, 3=Groups" msgstr "1=Başlıklar 2=Gövde 3=Gruplar" #: pan/gui/prefs-ui.cc:1132 msgid "1=Body, 2=Groups, 3=Headers" msgstr "1=Gövde 2=Gruplar 3=Başlıklar" #: pan/gui/prefs-ui.cc:1134 msgid "1=Body, 2=Headers, 3=Groups" msgstr "1=Gövde 2=Başlıklar 3=Gruplar" #: pan/gui/prefs-ui.cc:1138 msgid "Layout" msgstr "Düzen" #: pan/gui/prefs-ui.cc:1143 msgid "Header Pane Columns" msgstr "Başlık Çerçeve Sütunları" #: pan/gui/prefs-ui.cc:1147 msgid "_Headers" msgstr "_Başlıklar" #: pan/gui/prefs-ui.cc:1147 msgid "Headers" msgstr "Başlıklar" #: pan/gui/prefs-ui.cc:1153 msgid "" "This menu lets you configure Pan to take certain actions on your behalf " "automatically, based on an article's score." msgstr "" "Bu menü Pan’ı makalenin puanını baz alarak, sizin yerinize otomatik eylemler " "yapacak şekilde, yapılandırmanıza olanak tanır." #: pan/gui/prefs-ui.cc:1158 msgid "Mark affected articles read" msgstr "Etkilenmiş makaleleri okunmuş olarak işaretle" #: pan/gui/prefs-ui.cc:1167 msgid "_Delete articles scoring at: " msgstr "Şu puandaki makaleleri _sil: " #: pan/gui/prefs-ui.cc:1173 msgid "Mark articles read scoring at: " msgstr "Şu puandaki makaleleri okunmuş olarak işaretle: " #: pan/gui/prefs-ui.cc:1179 msgid "_Cache articles scoring at: " msgstr "Şu puandaki makaleleri _ön belleğe al: " #: pan/gui/prefs-ui.cc:1185 msgid "Download attachments of articles scoring at: " msgstr "Şu puandaki makalelerin eklerini indir: " #: pan/gui/prefs-ui.cc:1188 msgid "Actions" msgstr "Eylemler" #: pan/gui/prefs-ui.cc:1193 pan/gui/prefs-ui.cc:1214 msgid "Fonts" msgstr "Yazı Tipleri" #: pan/gui/prefs-ui.cc:1195 msgid "Use custom font in Group Pane:" msgstr "Grup çerçevesinde özel bir yazı tipi kullan:" #: pan/gui/prefs-ui.cc:1200 msgid "Use custom font in Header Pane:" msgstr "Başlık çerçevesinde özel bir yazı tipi kullan:" #: pan/gui/prefs-ui.cc:1205 msgid "Use custom font in Body Pane:" msgstr "Gövde çerçevesinde özel bir yazı tipi kullan:" #: pan/gui/prefs-ui.cc:1210 msgid "Monospace font:" msgstr "Monospace yazı tipi:" #: pan/gui/prefs-ui.cc:1214 msgid "_Fonts" msgstr "_Yazı Tipleri" #: pan/gui/prefs-ui.cc:1223 msgid "Header Pane" msgstr "Başlık Çerçevesi" #: pan/gui/prefs-ui.cc:1226 pan/gui/prefs-ui.cc:1232 pan/gui/prefs-ui.cc:1238 #: pan/gui/prefs-ui.cc:1244 pan/gui/prefs-ui.cc:1250 pan/gui/prefs-ui.cc:1256 #: pan/gui/prefs-ui.cc:1265 pan/gui/prefs-ui.cc:1271 pan/gui/prefs-ui.cc:1277 #: pan/gui/prefs-ui.cc:1283 pan/gui/prefs-ui.cc:1289 pan/gui/prefs-ui.cc:1299 #: pan/gui/prefs-ui.cc:1309 msgid "Text:" msgstr "Metin:" #: pan/gui/prefs-ui.cc:1228 pan/gui/prefs-ui.cc:1234 pan/gui/prefs-ui.cc:1240 #: pan/gui/prefs-ui.cc:1246 pan/gui/prefs-ui.cc:1252 pan/gui/prefs-ui.cc:1258 #: pan/gui/prefs-ui.cc:1267 pan/gui/prefs-ui.cc:1273 pan/gui/prefs-ui.cc:1279 #: pan/gui/prefs-ui.cc:1285 pan/gui/prefs-ui.cc:1291 pan/gui/prefs-ui.cc:1301 #: pan/gui/prefs-ui.cc:1311 msgid "Background:" msgstr "Arkaplan:" #: pan/gui/prefs-ui.cc:1230 msgid "Scores of 9999 or more:" msgstr "9999 puan veya fazlası:" #: pan/gui/prefs-ui.cc:1236 msgid "Scores from 5000 to 9998:" msgstr "5000 ile 9998 puan arası:" #: pan/gui/prefs-ui.cc:1242 msgid "Scores from 1 to 4999:" msgstr "1 ile 4999 puan arası:" #: pan/gui/prefs-ui.cc:1248 msgid "Scores from -9998 to -1:" msgstr "-9998 ile -1 puan arası:" #: pan/gui/prefs-ui.cc:1254 msgid "Scores of -9999 or less:" msgstr "-9999 puan veya azı:" #: pan/gui/prefs-ui.cc:1260 msgid "Collapsed thread with unread articles:" msgstr "Okunmamış makaleler ile daraltılmış konu:" #: pan/gui/prefs-ui.cc:1262 msgid "Body Pane" msgstr "Gövde Çerçevesi" #: pan/gui/prefs-ui.cc:1269 msgid "First level of quoted text:" msgstr "Alıntılanmış metnin ilk seviyesi:" #: pan/gui/prefs-ui.cc:1275 msgid "Second level of quoted text:" msgstr "Alıntılanmış metnin ikinci seviyesi:" #: pan/gui/prefs-ui.cc:1281 msgid "Third level of quoted text:" msgstr "Alıntılanmış metnin üçüncü seviyesi:" #. #: pan/gui/prefs-ui.cc:1287 msgid "URL:" msgstr "Adres:" #. #: pan/gui/prefs-ui.cc:1293 msgid "Signature:" msgstr "İmza:" #: pan/gui/prefs-ui.cc:1296 msgid "Group Pane" msgstr "Grup Çerçevesi" #. #: pan/gui/prefs-ui.cc:1303 msgid "Group Color:" msgstr "Grup Rengi:" #: pan/gui/prefs-ui.cc:1307 msgid "Other Text" msgstr "Diğer Metin" #: pan/gui/prefs-ui.cc:1313 msgid "Text Color:" msgstr "Metin Rengi:" #: pan/gui/prefs-ui.cc:1316 msgid "_Colors" msgstr "_Renkler" #: pan/gui/prefs-ui.cc:1316 msgid "Colors" msgstr "Renkler" #: pan/gui/prefs-ui.cc:1321 msgid "Preferred Applications" msgstr "Tercih Edilen Uygulamalar" #: pan/gui/prefs-ui.cc:1325 msgid "_Web browser:" msgstr "_Web tarayıcısı:" #: pan/gui/prefs-ui.cc:1328 msgid "_Gemini client:" msgstr "_Gemini istemcisi:" #: pan/gui/prefs-ui.cc:1331 msgid "_Mail reader:" msgstr "_Posta okucusu:" #: pan/gui/prefs-ui.cc:1333 msgid "_Text editor:" msgstr "_Metin düzenleyici:" #: pan/gui/prefs-ui.cc:1335 msgid "_HTML previewer:" msgstr "_HTML ön izleyicisi:" #: pan/gui/prefs-ui.cc:1337 msgid "_Applications" msgstr "_Uygulamalar" #: pan/gui/prefs-ui.cc:1337 msgid "Applications" msgstr "Uygulamalar" #: pan/gui/prefs-ui.cc:1342 pan/gui/task-pane.cc:555 msgid "Encoding" msgstr "Kodlama" #: pan/gui/prefs-ui.cc:1346 msgid "Default bytes per file (for encoder): " msgstr "Her dosya için varsayılan bayt (kodlayıcı için): " #: pan/gui/prefs-ui.cc:1351 msgid "_Upload" msgstr "_Karşıya Yükle" #: pan/gui/prefs-ui.cc:1351 msgid "Upload" msgstr "Karşıya Yükle" #: pan/gui/prefs-ui.cc:1360 msgid "_Shortcuts" msgstr "_Kısayollar" #: pan/gui/prefs-ui.cc:1360 msgid "Shortcuts" msgstr "Kısayollar" #: pan/gui/profiles-dialog.cc:83 msgid "Please choose your email address according to your PGP key's user id." msgstr "" "PGP anahtarınızın kullanıcı kimliği ile ilişkili olan e-posta adresinizi " "seçin." #: pan/gui/profiles-dialog.cc:131 msgid "Posting Profile" msgstr "Gönderme Profili" #: pan/gui/profiles-dialog.cc:143 msgid "Profile Information" msgstr "Profil Bilgisi" #: pan/gui/profiles-dialog.cc:147 msgid "_Profile Name:" msgstr "_Profil Adı:" #: pan/gui/profiles-dialog.cc:150 msgid "Required Information" msgstr "Gerekli Bilgiler" #: pan/gui/profiles-dialog.cc:154 msgid "_Full Name:" msgstr "_Tam Adı:" #: pan/gui/profiles-dialog.cc:158 msgid "" "Your email address.\n" "Note that this has to match your PGP signature's address\n" "if you want your messages to be PGP-signed or encrypted correctly." msgstr "" "E-posta adresiniz.\n" "Eğer iletinizin PGP imzalı ya da şifreli olmasını istiyorsanız\n" "bu adresin PGP imzanızdaki e-posta adresiyle eşleştiğinden emin olun." #: pan/gui/profiles-dialog.cc:162 msgid "_Email Address:" msgstr "_E-posta Adresi:" #: pan/gui/profiles-dialog.cc:164 msgid "_Post Articles via:" msgstr "Makaleleri şunun aracılığı ile _Gönder:" #: pan/gui/profiles-dialog.cc:167 msgid "Signature" msgstr "İmza" #: pan/gui/profiles-dialog.cc:170 msgid "_Use a Signature" msgstr "İmza _Kullan" #: pan/gui/profiles-dialog.cc:174 msgid "Signature File" msgstr "İmza Dosyası" #: pan/gui/profiles-dialog.cc:184 msgid "Text File" msgstr "Metin Dosyası" #: pan/gui/profiles-dialog.cc:186 msgid "Text" msgstr "Metin" #: pan/gui/profiles-dialog.cc:188 msgid "Command" msgstr "Komut" #: pan/gui/profiles-dialog.cc:191 msgid "PGP Signature" msgstr "PGP İmzası" #: pan/gui/profiles-dialog.cc:196 msgid "Signature Type: " msgstr "İmza Türü: " #: pan/gui/profiles-dialog.cc:227 msgid "Avatars" msgstr "Avatarlar" #: pan/gui/profiles-dialog.cc:230 msgid "" "You can add an avatar icon to your articles with a Base64-encoded PNG.\n" "Add the Base64-encoded picture without the trailing “Face:”." msgstr "" "Base64 kodlu PNG ile makalelerinize avatar simgesi ekleyebilirsiniz.\n" "Base64 ile kodlanmış resmi \"Face\" olmadan ekleyin." #: pan/gui/profiles-dialog.cc:232 msgid "_Face:" msgstr "_Yüz:" #: pan/gui/profiles-dialog.cc:236 msgid "" "You can add an avatar icon to your articles with a unique X-Face code.\n" "Add the code without the trailing \"X-Face:\" \n" " if it was generated by a helper program (for example http://www.dairiki.org/" "xface/xface.php)." msgstr "" "Tekil bir X-Face kodu ile makalelerinize bir avatar simgesi " "ekleyebilirsiniz.\n" "Eğer bu yardımcı bir program tarafından oluşturulduysa\n" " Kodu \"X-Face:\" ardına ekleyin (örneğin http://www.dairiki.org/" "xface/xface.php)" #: pan/gui/profiles-dialog.cc:239 msgid "_X-Face:" msgstr "_X-Face:" #: pan/gui/profiles-dialog.cc:241 msgid "Optional Information" msgstr "Seçimlik Bilgiler" #: pan/gui/profiles-dialog.cc:246 msgid "" "When posting to Usenet, your article's Message-ID contains a domain name.\n" "You can set a custom domain name here, or leave it blank to let Pan use the " "domain name from your email address." msgstr "" "Usenet’e gönderi yaparken, makalelerinizin İleti-Numarası bir alan adı " "içerir.\n" "Buraya özel bir alan adı koyabilirsiniz veya Pan’ın e-posta adresinizdeki " "alan adını kullanması için boş bırakabilirsiniz." #: pan/gui/profiles-dialog.cc:249 msgid "Message-ID _Domain Name:" msgstr "İleti-Numarası _Alan Adı:" #: pan/gui/profiles-dialog.cc:253 #, c-format msgid "" "%i for Message-ID\n" "%a for Author and Address\n" "%n for Author name\n" "%d for Date" msgstr "" "%i İleti-Numarası için\n" "%a Yazar ve Adres için\n" "%n Yazar Adı için\n" "%d Tarih için" #: pan/gui/profiles-dialog.cc:254 msgid "_Attribution:" msgstr "_Atıf:" #. Translators: Do not localize Reply-To and the quote marks in \"Your Name\". #: pan/gui/profiles-dialog.cc:279 msgid "" "Extra headers to be included in your articles, such as\n" "Reply-To: \"Your Name\" \n" "Organization: Your Organization\n" msgstr "" "Makalenize fazladan başlıklar ekleyebilirsiniz, şöyle ki;\n" "Reply-To: \"Adınız\"\n" "Organization: Kurumunuz\n" #: pan/gui/profiles-dialog.cc:289 msgid "E_xtra Headers:" msgstr "Fa_zladan Başlıklar:" #: pan/gui/profiles-dialog.cc:334 msgid "Invalid email address." msgstr "Geçersiz e-posta adresi." #: pan/gui/profiles-dialog.cc:335 msgid "Please use an address of the form joe@somewhere.org" msgstr "Lütfen ali@biryerler.com biçiminde bir adres kullanın" #: pan/gui/profiles-dialog.cc:491 msgid "New Profile" msgstr "Yeni Profil" #: pan/gui/profiles-dialog.cc:537 msgid "Posting Profiles" msgstr "Gönderme Profilleri" #: pan/gui/profiles-dialog.cc:553 msgid "Profiles" msgstr "Profiller" #: pan/gui/save-attach-ui.cc:44 #, c-format msgid "" "%g - group as one directory (alt.binaries.pictures.trains)\n" "%G - group as nested directory (/alt/binaries/pictures/trains)\n" "%s - Subject line excerpt\n" "%S - Subject line\n" "%n - Poster display name\n" "%e - Poster email address\n" "%d - Article timestamp\n" "\"/home/user/News/Pan/%g\" becomes\n" "\"/home/user/News/Pan/alt.binaries.pictures.trains\", and\n" "\"/home/user/News/Pan/%G\" becomes\n" "\"/home/user/News/Pan/alt/binaries/pictures/trains\"," msgstr "" "%g - bir dizin olarak grup (alt.ikililer.resimler.trenler)\n" "%G - iç içe dizinler olarak grup (/alt/ikililer/resimler/trenler)\n" "%s - Konu satırı alıntısı\n" "%S - Konu satırı\n" "%n - Gönderen görünür adı\n" "%e - Gönderen e-posta adresi\n" "%d - Makale zaman damgası\n" "\"/home/kullanici/News/Pan/%g”, \n" "\"/home/kullanici/News/Pan/alt.ikililer.resimler.trenler” olur ve\n" "\"/home/kullanici/News/Pan/%G”, \n" "\"/home/kullanici/News/Pan/alt/ikililer/resimler/trenler” olur," #: pan/gui/save-attach-ui.cc:196 pan/gui/save-ui.cc:216 msgid "Add to the queue sorted by date posted" msgstr "Gönderme tarihine göre sıralanmış olarak kuyruğa ekle" #: pan/gui/save-attach-ui.cc:197 pan/gui/save-ui.cc:217 msgid "Add to the front of the queue" msgstr "Kuyruğun başına ekle" #: pan/gui/save-attach-ui.cc:198 pan/gui/save-ui.cc:218 msgid "Add to the back of the queue" msgstr "Kuyruğun sonuna ekle" #: pan/gui/save-attach-ui.cc:230 msgid "Pan: Save Attachments" msgstr "Pan: Ekleri Kaydet" #: pan/gui/save-attach-ui.cc:255 pan/gui/save-attach-ui.cc:273 #: pan/gui/save-ui.cc:270 pan/gui/save-ui.cc:291 msgid "_Location:" msgstr "_Konum:" #: pan/gui/save-attach-ui.cc:259 pan/gui/save-ui.cc:274 msgid "Save Articles" msgstr "Makaleleri Kaydet" #: pan/gui/save-attach-ui.cc:276 pan/gui/save-ui.cc:294 #, c-format msgid "_Group's path: %s" msgstr "_Grupların yolu: %s" #: pan/gui/save-attach-ui.cc:287 pan/gui/save-ui.cc:309 msgid "_Priority:" msgstr "_Öncelik" #: pan/gui/save-ui.cc:44 #, c-format msgid "" "%g - group as one directory (alt.binaries.pictures.trains)\n" "%G - group as nested directory (/alt/binaries/pictures/trains)\n" "%s - subject line excerpt\n" "%S - subject line\n" "%n - Poster display name\n" "%e - Poster email address\n" "%d - Article timestamp\n" " \n" "\"/home/user/News/Pan/%g\" becomes\n" "\"/home/user/News/Pan/alt.binaries.pictures.trains\", and\n" "\"/home/user/News/Pan/%G\" becomes\n" "\"/home/user/News/Pan/alt/binaries/pictures/trains\"," msgstr "" "%g - bir dizin olarak grup (alt.ikililer.resimler.trenler)\n" "%G - iç içe dizinler (/alt/ikililer/resimler/trenler)\n" "%s - konu satırı alıntısı\n" "%S - konu satırı\n" "%n - Gönderen görünür adı\n" "%e - Gönderen e-posta adresi\n" "%d - Makale zaman damgası\n" " \n" "\"/home/kullanici/News/Pan/%g”,\n" "\"/home/kullanici/News/Pan/alt.ikililer.resimler.trenler” olur ve\n" "\"/home/kullanici/News/Pan/%G”, \n" "\"/home/kullanici/News/Pan/alt/ikililer/resimler/trenler” olur," #: pan/gui/save-ui.cc:207 msgid "Save attachments" msgstr "Ekleri Kaydet" #: pan/gui/save-ui.cc:208 msgid "Save text" msgstr "Metni kaydet" #: pan/gui/save-ui.cc:209 msgid "Save attachments and text" msgstr "Ekleri ve metni kaydet" #: pan/gui/save-ui.cc:245 msgid "Pan: Save Articles" msgstr "Pan: Makaleleri Kaydet" #: pan/gui/save-ui.cc:305 msgid "_Action:" msgstr "_Eylem:" #: pan/gui/score-add-ui.cc:89 msgid "is more than" msgstr "daha fazla" #: pan/gui/score-add-ui.cc:90 msgid "is at most" msgstr "en fazla" #: pan/gui/score-add-ui.cc:112 msgid "increase the article's score by" msgstr "Makalenin puanını arttır" #: pan/gui/score-add-ui.cc:113 msgid "decrease the article's score by" msgstr "Makalenin puanını azalt" #: pan/gui/score-add-ui.cc:114 msgid "set the article's score to" msgstr "Makalenin puanını ayarla" #: pan/gui/score-add-ui.cc:115 msgid "watch the article (set its score to 9999)" msgstr "makaleyi izle (puanını 9999 ayarla)" #: pan/gui/score-add-ui.cc:116 msgid "ignore the article (set its score to -9999)" msgstr "makaleyi yok say (puanını -9999 yapar)" #: pan/gui/score-add-ui.cc:141 msgid "References" msgstr "Kaynaklar" #: pan/gui/score-add-ui.cc:142 msgid "Line Count" msgstr "Satır Sayısı" #: pan/gui/score-add-ui.cc:143 msgid "Byte Count" msgstr "Bayt Sayısı" #: pan/gui/score-add-ui.cc:144 msgid "Crosspost Group Count" msgstr "Çapraz Gönderi Grup Sayısı" #: pan/gui/score-add-ui.cc:145 msgid "Age (in days)" msgstr "Yaş (gün)" #: pan/gui/score-add-ui.cc:167 msgid "for the next month" msgstr "sonraki ay için" #: pan/gui/score-add-ui.cc:168 msgid "for the next six months" msgstr "sonraki altı ay için" #: pan/gui/score-add-ui.cc:169 msgid "forever" msgstr "devamlı" #: pan/gui/score-add-ui.cc:194 msgid "contains" msgstr "içerir" #: pan/gui/score-add-ui.cc:195 msgid "doesn't contain" msgstr "içermez" #: pan/gui/score-add-ui.cc:196 msgid "is" msgstr "olan" #: pan/gui/score-add-ui.cc:197 msgid "isn't" msgstr "olmayan" #: pan/gui/score-add-ui.cc:198 msgid "starts with" msgstr "ile başlar" #: pan/gui/score-add-ui.cc:199 msgid "ends with" msgstr "ile biter" #: pan/gui/score-add-ui.cc:200 msgid "matches regex" msgstr "düzenli ifade ile eşleşir" #: pan/gui/score-add-ui.cc:481 msgid "Another rule already sets this article's score." msgstr "Başka bir kural zaten makalenin puanını ayarlıyor." #: pan/gui/score-add-ui.cc:482 msgid "You may want to go back or delete the old rule." msgstr "Geri dönmek ve eski kuralı silmek isteyebilirsiniz." #: pan/gui/score-add-ui.cc:484 msgid "Back" msgstr "Geri" #: pan/gui/score-add-ui.cc:485 pan/gui/task-pane.cc:1040 msgid "Delete" msgstr "Sil" #: pan/gui/score-add-ui.cc:486 pan/gui/score-add-ui.cc:607 #: pan/gui/score-view-ui.cc:207 msgid "Add" msgstr "Ekle" #: pan/gui/score-add-ui.cc:553 msgid "Add and Re_score" msgstr "Ekle ve Yeniden _Puanlandır" #: pan/gui/score-add-ui.cc:602 pan/gui/score-add-ui.cc:622 msgid "New Scoring Rule" msgstr "Yeni Puanlama Kuralı" #: pan/gui/score-add-ui.cc:633 msgid "Group name" msgstr "Grup adı" #: pan/gui/score-add-ui.cc:640 msgid "and" msgstr "ve" #: pan/gui/score-view-ui.cc:55 msgid "Close and Re_score" msgstr "Kapat ve Yeniden _Puanlandır" #: pan/gui/score-view-ui.cc:153 #, c-format msgid "File %s, Lines %d - %d" msgstr "Dosya %s, Satırlar %d - %d" #: pan/gui/score-view-ui.cc:181 msgid "Pan: Article's Scores" msgstr "Pan: Makale Puanları" #: pan/gui/score-view-ui.cc:212 msgid "New Score" msgstr "Yeni Puan" #: pan/gui/score-view-ui.cc:217 msgid "Criteria" msgstr "Kıstaslar" #: pan/gui/score-view-ui.cc:240 msgid "Add a New Scoring Rule" msgstr "Yeni bir Puanlama Kuralı Ekle" #: pan/gui/score-view-ui.cc:247 msgid "Remove the Selected Scoring Rule" msgstr "Seçili Puanlama Kuralını Kaldır" #: pan/gui/server-ui.cc:292 msgid "Please specify the server's address." msgstr "Lütfen sunucunun adresini belirtin." #: pan/gui/server-ui.cc:344 msgid "Import SSL Certificate (PEM Format) From File" msgstr "SSL Sertifikasını Dosyadan (PEM Biçimi) İçe Aktar" #. create the dialog #: pan/gui/server-ui.cc:381 pan/gui/server-ui.cc:996 msgid "Add a Server" msgstr "Bir Sunucu Ekle" #: pan/gui/server-ui.cc:381 pan/gui/server-ui.cc:1002 msgid "Edit a Server's Settings" msgstr "Sunucunun Ayarlarını Düzenle" #: pan/gui/server-ui.cc:401 msgid "Location" msgstr "Konum" #: pan/gui/server-ui.cc:405 msgid "The news server's actual address, e.g. \"news.mynewsserver.com\"." msgstr "Haber sunucusunun gerçek adresi, örn. \"haberler.yenisunucu.com”." #: pan/gui/server-ui.cc:406 msgid "_Address:" msgstr "_Adres:" #: pan/gui/server-ui.cc:411 msgid "" "The news server's port number. Typically 119 for unencrypted and 563 for " "encrypted connections (SSL/TLS)." msgstr "" "Haber sunucusunun bağlantı noktası. Genellikle şifresiz bağlantı için 119 ve " "şifreli bağlantı (SSL/TLS) için 563 kullanılır." #: pan/gui/server-ui.cc:412 msgid "Por_t:" msgstr "Bağlan_tı Noktası:" #: pan/gui/server-ui.cc:415 msgid "Login (if Required)" msgstr "Giriş (Gerekli ise)" #: pan/gui/server-ui.cc:419 msgid "_Username:" msgstr "_Kullanıcı adı:" #: pan/gui/server-ui.cc:420 msgid "" "The username to give the server when asked. If your server doesn't require " "authentication, you can leave this blank." msgstr "" "Sunucu sorduğunda verilecek kullanıcı adı. Eğer sunucunuzda kimlik doğrulama " "gerekmiyorsa, burayı boş bırakabilirsiniz." #: pan/gui/server-ui.cc:424 msgid "_Password:" msgstr "_Parola:" #: pan/gui/server-ui.cc:425 msgid "" "The password to give the server when asked. If your server doesn't require " "authentication, you can leave this blank." msgstr "" "Sunucu sorduğunda verilecek parola. Eğer sunucunuzda kimlik doğrulama " "gerekmiyorsa, burayı boş bırakabilirsiniz." #: pan/gui/server-ui.cc:428 msgid "Settings" msgstr "Ayarlar" #: pan/gui/server-ui.cc:435 msgid "Connection _Limit:" msgstr "Bağlantı _Sınırı:" #: pan/gui/server-ui.cc:439 msgid "After Two Weeks" msgstr "İki Hafta Sonra" #: pan/gui/server-ui.cc:440 msgid "After One Month" msgstr "Bir Ay Sonra" #: pan/gui/server-ui.cc:441 msgid "After Two Months" msgstr "İki Ay Sonra" #: pan/gui/server-ui.cc:442 msgid "After Three Months" msgstr "Üç Ay Sonra" #: pan/gui/server-ui.cc:443 msgid "After Six Months" msgstr "Altı Ay Sonra" #: pan/gui/server-ui.cc:444 msgid "Never Expire Old Articles" msgstr "Eski Makalelerin Asla Süresi Bitmesin" #: pan/gui/server-ui.cc:458 msgid "E_xpire Old Articles:" msgstr "Eski Makalelerin S_üresi Dolsun:" #: pan/gui/server-ui.cc:462 msgid "Primary" msgstr "Birincil" #: pan/gui/server-ui.cc:463 msgid "Fallback" msgstr "Yedek" #: pan/gui/server-ui.cc:477 msgid "Server Rank:" msgstr "Sunucu Derecesi:" #: pan/gui/server-ui.cc:481 msgid "" "Fallback servers are used for articles that can't be found on the " "primaries. One common approach is to use free servers as primaries and " "subscription servers as fallbacks." msgstr "" "Yedek sunucular, makalelerin birincil sunucularda bulunamadığı zamanlarda " "kullanılırlar. Yaygın yaklaşım, bedava sunucuları birincil olarak kullanmak " "ve ücretli sunucuları yedek olarak kullanmak şeklindedir." #: pan/gui/server-ui.cc:486 msgid "Disable Compression (N/A)" msgstr "Sıkıştırmayı Kapat (N/A)" #: pan/gui/server-ui.cc:487 msgid "XZVER Compression (Astraweb)" msgstr "XZVER Sıkıştırma (Astraweb)" #: pan/gui/server-ui.cc:488 msgid "GZIP Compression (Giganews etc.)" msgstr "GZIP Sıkıştırma (Giganews vs.)" #: pan/gui/server-ui.cc:502 msgid "Header Compression:" msgstr "Başlık Sıkıştırma:" #: pan/gui/server-ui.cc:508 msgid "Security" msgstr "Güvenlik" #: pan/gui/server-ui.cc:513 msgid "Use Unsecure (Plaintext) Connections" msgstr "Güvensiz (Düz metin) Bağlantılar Kullan" #: pan/gui/server-ui.cc:514 msgid "Use Secure SSL Connections" msgstr "Günveli SSL Bağlantılar Kullan" #: pan/gui/server-ui.cc:529 msgid "TLS (SSL) Settings:" msgstr "TLS (SSL) Ayarları:" #: pan/gui/server-ui.cc:534 msgid "" "You can enable/disable secure SSL/TLS connections here. If you enable SSL/" "TLS, your data is encrypted and secure. It is encouraged to enable SSL/TLS " "for privacy reasons." msgstr "" "Güvenli SSL/TLS bağlantılarını buradan aç/kapat yapabilirsiniz. SSL/TLS " "bağlantıyı etkinleştirirseniz, veriniz şifrelenir ve güvenlidir. Gizlilik " "sebepleri için bu şekilde bir iletişim desteklenmektedir." #: pan/gui/server-ui.cc:539 msgid "Always trust this server's certificate" msgstr "Her zaman bu sunucunun sertifikasına güven" #: pan/gui/server-ui.cc:724 #, c-format msgid "Really delete \"%s\"?" msgstr "\"%s\" gerçekten silinsin mi?" #: pan/gui/server-ui.cc:813 msgid "No information available." msgstr "Kullanılabilir bilgi yok." #: pan/gui/server-ui.cc:823 #, c-format msgid "Server Certificate for '%s'" msgstr "'%s' için Sunucu Sertifikası" #: pan/gui/server-ui.cc:922 #, c-format msgid "Really delete certificate for \"%s\"?" msgstr "\"%s\" için sertifika gerçekten silinsin mi?" #. dialog #: pan/gui/server-ui.cc:949 pan/gui/server-ui.cc:970 pan/gui/server-ui.cc:1068 msgid "Servers" msgstr "Sunucular" #: pan/gui/server-ui.cc:1009 msgid "Remove a Server" msgstr "Sunucuyu Kaldır" #. dialog #: pan/gui/server-ui.cc:1042 msgid "SSL Certificates" msgstr "SSL Sertifikaları" #: pan/gui/server-ui.cc:1063 msgid "Certificates" msgstr "Sertifikalar" #: pan/gui/server-ui.cc:1094 msgid "Import Certificate" msgstr "Sertifika İçe Aktar" #: pan/gui/server-ui.cc:1100 msgid "Inspect Certificate" msgstr "Sertifikayı İncele" #: pan/gui/server-ui.cc:1107 msgid "Remove Certificate" msgstr "Sertifikayı Sil" #: pan/gui/task-pane.cc:124 #, c-format msgid "" "\n" "Upload\n" "\n" "Subject: \"%s\"\n" "From: %s\n" "Groups: %s\n" "Sourcefile: %s\n" msgstr "" "\n" "Karşıya Yükle\n" "\n" "Konu: \"%s\"\n" "Kimden: %s\n" "Gruplar: %s\n" "Kaynak Dosya: %s\n" #: pan/gui/task-pane.cc:136 #, c-format msgid "" "\n" "Download\n" "\n" "Subject: \"%s\"\n" "From: %s\n" "Date: %s\n" "Groups: %s\n" "Save Path: %s\n" msgstr "" "\n" "İndir\n" "\n" "Konu: \"%s\"\n" "Kimden: %s\n" "Tarih: %s\n" "Gruplar: %s\n" "Kaydetme Yolu: %s\n" #: pan/gui/task-pane.cc:138 msgid "unknown" msgstr "bilinmeyen" #: pan/gui/task-pane.cc:306 msgid "Choose New Destination for Selected Tasks" msgstr "Seçili Görevler için Yeni Hedef Seç" #: pan/gui/task-pane.cc:310 msgid "Save" msgstr "Kaydet" #: pan/gui/task-pane.cc:460 #, c-format msgid "Pan: Tasks (%d Queued, %d Running, %d Stopped)" msgstr "Pan: Görevler (%d Kuyrukta, %d Çalışıyor, %d Durdurulmuş)" #: pan/gui/task-pane.cc:462 #, c-format msgid "Pan: Tasks (%d Queued, %d Running)" msgstr "Pan: Görevler (%d Kuyrukta, %d Çalışıyor)" #: pan/gui/task-pane.cc:464 msgid "Pan: Tasks" msgstr "Pan: Görevler" #: pan/gui/task-pane.cc:489 #, c-format msgid "%lu selected, %s" msgstr "%lu seçili, %s" #: pan/gui/task-pane.cc:553 msgid "Running" msgstr "Çalışıyor" #: pan/gui/task-pane.cc:554 msgid "Decoding" msgstr "Kod Çözülüyor" #: pan/gui/task-pane.cc:556 msgid "Queued for Decode" msgstr "Kod Çözme için Kuyrukta" #: pan/gui/task-pane.cc:557 msgid "Queued for Encode" msgstr "Kodlama için Kuyrukta" #: pan/gui/task-pane.cc:558 msgid "Queued" msgstr "Kuyrukta" #: pan/gui/task-pane.cc:559 msgid "Stopped" msgstr "Durdurulmuş" #: pan/gui/task-pane.cc:560 msgid "Removing" msgstr "Kaldırılıyor" #: pan/gui/task-pane.cc:589 #, c-format msgid "%d%% Done" msgstr "%d%% Bitti" #: pan/gui/task-pane.cc:595 #, c-format msgid "%d:%02d:%02d Remaining (%d @ %lu KiB/s)" msgstr "%d:%02d:%02d Kalan (%d @ %lu KiB/s)" #: pan/gui/task-pane.cc:690 pan/gui/task-pane.cc:691 msgid "Move To Top" msgstr "En Üste Taşı" #: pan/gui/task-pane.cc:695 pan/gui/task-pane.cc:696 msgid "Move To Bottom" msgstr "En Alta Taşı" #: pan/gui/task-pane.cc:700 pan/gui/task-pane.cc:701 msgid "Show Task Information" msgstr "Görev Bilgilerini Göster" #: pan/gui/task-pane.cc:705 pan/gui/task-pane.cc:706 msgid "Stop Task" msgstr "Görevi Durdur" #: pan/gui/task-pane.cc:710 pan/gui/task-pane.cc:711 msgid "Delete Task" msgstr "Görevi Sil" #: pan/gui/task-pane.cc:715 pan/gui/task-pane.cc:716 msgid "Restart Task" msgstr "Görevi Yeniden Başlat" #: pan/gui/task-pane.cc:720 pan/gui/task-pane.cc:721 msgid "Change Download Destination" msgstr "İndirmenin Yapılacağı Yeri Değiştir" #: pan/gui/task-pane.cc:1016 msgid "_Online" msgstr "Çevrim _İçi" #: pan/gui/task-pane.cc:1026 msgid "Move up" msgstr "Yukarı taşı" #: pan/gui/task-pane.cc:1027 msgid "Move task up" msgstr "Görevi yukarı taşı" #: pan/gui/task-pane.cc:1028 msgid "Move to top" msgstr "En üste taşı" #: pan/gui/task-pane.cc:1029 msgid "Move task to top of the download queue" msgstr "Görevi indirme kuyruğunun başına taşı" #: pan/gui/task-pane.cc:1031 msgid "Move down" msgstr "Aşağı taşı" #: pan/gui/task-pane.cc:1032 msgid "Move task down" msgstr "Görevi aşağı taşı" #: pan/gui/task-pane.cc:1033 msgid "Move to bottom" msgstr "En alta taşı" #: pan/gui/task-pane.cc:1034 msgid "Move task to the bottom of the download queue" msgstr "Görevi indirme kuyruğunun sonuna taşı" #: pan/gui/task-pane.cc:1036 msgid "Restart" msgstr "Yeniden Başlat" #: pan/gui/task-pane.cc:1037 msgid "Restart Tasks" msgstr "Görevleri Yeniden Başlat" #: pan/gui/task-pane.cc:1038 msgid "Stop" msgstr "Durdur" #: pan/gui/task-pane.cc:1039 msgid "Stop Tasks" msgstr "Görevleri Durdur" #: pan/gui/task-pane.cc:1041 msgid "Delete Tasks" msgstr "Görevleri Sil" #: pan/gui/task-pane.cc:1043 msgid "Close" msgstr "Kapat" #: pan/gui/task-pane.cc:1047 msgid "Show popups" msgstr "Bilgi percerelerini göster" #: pan/gui/url.cc:143 #, c-format msgid "Error starting URL: %s (Command was: %s)" msgstr "Adres başlatılırken Hata: %s (Komut: %s)" #: pan/tasks/decoder.cc:124 #, c-format msgid "Couldn't save file \"%s\": %s" msgstr "\"%s\" dosyası kaydedilemedi: %s" #: pan/tasks/decoder.cc:146 pan/tasks/encoder.cc:146 msgid "Error initializing uulib" msgstr "Uulib başlatılırken hata oluştu" #: pan/tasks/decoder.cc:166 pan/tasks/socket-impl-gio.cc:360 #: pan/tasks/socket-impl-openssl.cc:641 #, c-format msgid "Error reading from %s: %s" msgstr "%s üzerinden okunurken hata oluştu: %s" #: pan/tasks/decoder.cc:206 #, c-format msgid "Saved \"%s\"" msgstr "\"%s\" kaydedildi" #: pan/tasks/decoder.cc:213 #, c-format msgid "" "Error saving \"%s\":\n" "%s." msgstr "" "\"%s\" kaydedilirken hata oluştu: \n" "%s." #: pan/tasks/decoder.cc:326 pan/tasks/task-article.cc:351 #, c-format msgid "Decoding %s" msgstr "%s Kod Çözme" #: pan/tasks/encoder.cc:113 pan/tasks/encoder.cc:164 #, c-format msgid "Error loading %s from cache." msgstr "%s ön bellekten yüklenirken hata oluştu." #: pan/tasks/encoder.cc:186 #, c-format msgid "Error encoding %s: %s" msgstr "%s kodlama hatası: %s" #: pan/tasks/encoder.cc:276 #, c-format msgid "Encoding %s" msgstr "%s kodlama" #: pan/tasks/nntp.cc:176 #, c-format msgid "%s requires a username, but none is set." msgstr "%s bir kullanıcı adı ister ancak ayarlanmış bir tane yok." #: pan/tasks/nntp.cc:189 #, c-format msgid "%s requires a password, but none is set." msgstr "%s bir parola ister ancak ayarlanmış bir tane yok." #: pan/tasks/nntp.cc:275 #, c-format msgid "Sending \"%s\" to %s returned an error: %s" msgstr "\"%s\", %s ögesine gönderilirken hata oluştu: %s" #: pan/tasks/nntp.cc:298 #, c-format msgid "Sending \"%s\" to %s returned an unrecognized response: \"%s\"" msgstr "\"%s\", %s ögesine gönderilirken ve beklenmedik bir yanıt aldı: \"%s\"" #: pan/tasks/nntp-pool.cc:241 #, c-format msgid "Unable to connect to \"%s\"" msgstr "\"%s\" bağlantısı sağlanamadı" #: pan/tasks/queue.cc:778 pan/tasks/queue.cc:806 pan/tasks/queue.cc:833 msgid "No space left on device." msgstr "Aygıtta boş yer yok." #: pan/tasks/socket-impl-gio.cc:173 pan/tasks/socket-impl-gio.cc:211 #: pan/tasks/socket-impl-openssl.cc:213 pan/tasks/socket-impl-openssl.cc:251 #, c-format msgid "Error connecting to \"%s\"" msgstr "\"%s\" bağlantısında hata oluştu" #: pan/tasks/socket-impl-gio.cc:359 pan/tasks/socket-impl-openssl.cc:640 msgid "Unknown Error" msgstr "Bilinmeyen Hata" #: pan/tasks/task-article.cc:59 pan/tasks/task-article.cc:157 #, c-format msgid "Saving %s" msgstr "%s kaydediliyor " #: pan/tasks/task-article.cc:61 #, c-format msgid "Reading %s" msgstr "Okunuyor %s" #: pan/tasks/task-article.cc:323 #, c-format msgid "Article \"%s\" is incomplete -- the news server(s) don't have part %s" msgstr "" "\"%s\" makalesi eksik -- haber sunucusu/sunucuları %s kısmına sahip değil" #: pan/tasks/task-groups.cc:41 #, c-format msgid "Getting group list from \"%s\"" msgstr "Grup listesini \"%s\" üzerinden al" #: pan/tasks/task-groups.cc:134 #, c-format msgid "Fetched %lu Groups" msgstr "Getirilmiş %lu Grupları" #: pan/tasks/task-post.cc:33 #, c-format msgid "Posting \"%s\"" msgstr "\"%s\" gönderiliyor" #: pan/tasks/task-post.cc:74 #, c-format msgid "Posting of \"%s\" failed: %s" msgstr "\"%s\" gönderimi başarısız: %s" #: pan/tasks/task-post.cc:79 #, c-format msgid "Posting of \"%s\" successful: %s" msgstr "%s gönderimi başarılı: %s" #: pan/tasks/task-upload.cc:55 #, c-format msgid "Uploading %s" msgstr "%s karşıya yükleniyor" #: pan/tasks/task-upload.cc:249 #, c-format msgid "Uploading %s - Part %d of %d" msgstr "Karşıya Yükleniyor %s - Parça %d Toplam %d" #: pan/tasks/task-upload.cc:251 #, c-format msgid "Uploading message body with subject \"%s\"" msgstr "İleti gövdesi \"%s\" konusu ile karşıya yükleniyor" #: pan/tasks/task-upload.cc:308 #, c-format msgid "Posting of file %s (part %d of %d) failed: No posts allowed by server." msgstr "" "%s dosyasının gönderimi (parça %d toplam %d) başarısız: Sunucu tarafından " "gönderi kabul edilmiyor." #: pan/tasks/task-upload.cc:317 #, c-format msgid "Posting of file %s (part %d of %d) failed: %s" msgstr "%s dosyasının gönderimi (parça %d toplam %d) başarısız: %s" #: pan/tasks/task-upload.cc:328 pan/tasks/task-upload.cc:335 #, c-format msgid "Posting of file %s (part %d of %d) successful: %s" msgstr "%s dosyasının gönderimi (parça %d toplam %d) başarılı: %s" #: pan/tasks/task-upload.cc:345 #, c-format msgid "Posting of file %s successful: %s" msgstr "%s dosyasının gönderimi başarılı: %s" #: pan/tasks/task-upload.cc:349 #, c-format msgid "" "Posting of file %s not completely successful: Check the log (right-click " "list item)." msgstr "" "%s dosyasının gönderimi tamamen başarılı değil: Günlüğü kontrol edin (liste " "ögesine sağ tıklayarak)" #: pan/tasks/task-upload.cc:368 #, c-format msgid "" "Posting of file %s not successful: Check the log (right-click list item)." msgstr "" "%s dosyasının gönderimi başarısız: Günlüğü kontrol edin (liste öğesine sağ " "tıklayarak)" #: pan/tasks/task-xover.cc:82 #, c-format msgid "Getting all headers for \"%s\"" msgstr "\"%s\" için tüm başlıklar alınıyor" #: pan/tasks/task-xover.cc:85 #, c-format msgid "Getting new headers for \"%s\"" msgstr "\"%s\" için yeni başlıklar alınıyor" #. SAMPLE #: pan/tasks/task-xover.cc:89 #, c-format msgid "Sampling headers for \"%s\"" msgstr "\"%s\" için başlıklar şekillendiriliyor" #: pan/tasks/task-xover.cc:454 #, c-format msgid "%s (%lu parts, %lu articles)" msgstr "%s (%lu parça, %lu makale)" #: pan/tasks/task-xover.cc:528 #, c-format msgid "Getting new headers for \"%s\" done." msgstr "\"%s\" için yeni başlıklar alınıyor." #: pan/usenet-utils/filter-info.cc:215 msgid "article doesn't have attachments" msgstr "makale bir eklenti barındırmıyor" #: pan/usenet-utils/filter-info.cc:219 msgid "the article has attachments" msgstr "makalenin eklentileri var" #: pan/usenet-utils/filter-info.cc:223 msgid "the article isn't cached locally" msgstr "makale yerel ön belleğe alınmamış" #: pan/usenet-utils/filter-info.cc:227 msgid "the article is cached locally" msgstr "makale yerel ön belleğe alınmış" #: pan/usenet-utils/filter-info.cc:231 msgid "the article wasn't posted by you" msgstr "makale sizin tarafınızdan gönderilmemiş" #: pan/usenet-utils/filter-info.cc:235 msgid "the article was posted by you" msgstr "makale sizin tarafınızdan gönderilmiş" #: pan/usenet-utils/filter-info.cc:239 msgid "the article has been read" msgstr "makale okunmuş" #: pan/usenet-utils/filter-info.cc:243 msgid "the article hasn't been read" msgstr "makale okunmamış" #: pan/usenet-utils/filter-info.cc:247 #, c-format msgid "the article is less than %ld bytes long" msgstr "makale %ld bayttan daha kısa" #: pan/usenet-utils/filter-info.cc:252 #, c-format msgid "the article is at least %ld bytes long" msgstr "makale en az %ld bayt uzunluğunda" #: pan/usenet-utils/filter-info.cc:257 #, c-format msgid "the article is less than %ld lines long" msgstr "makale %ld satırdan daha kısa" #: pan/usenet-utils/filter-info.cc:262 #, c-format msgid "the article is at least %ld lines long" msgstr "makale en az %ld satır uzunluğunda" #: pan/usenet-utils/filter-info.cc:267 #, c-format msgid "the article is less than %ld days old" msgstr "makale %ld günden eski" #: pan/usenet-utils/filter-info.cc:272 #, c-format msgid "the article is at least %ld days old" msgstr "makale en az %ld gün eski" #: pan/usenet-utils/filter-info.cc:277 #, c-format msgid "the article was posted to less than %ld groups" msgstr "makale %ld sayısından az gruba gönderilmiş" #: pan/usenet-utils/filter-info.cc:282 #, c-format msgid "the article was posted to at least %ld groups" msgstr "makale en az %ld gruba gönderilmiş" #: pan/usenet-utils/filter-info.cc:287 #, c-format msgid "the article's score is less than %ld" msgstr "makalenin puanı %ld sayısından daha küçük" #: pan/usenet-utils/filter-info.cc:292 #, c-format msgid "the article's score is %ld or higher" msgstr "makalenin puanı %ld ya da daha yüksek" #: pan/usenet-utils/filter-info.cc:301 pan/usenet-utils/filter-info.cc:311 #, c-format msgid "%s doesn't contain \"%s\"" msgstr "%s, \"%s\" içermiyor" #: pan/usenet-utils/filter-info.cc:302 pan/usenet-utils/filter-info.cc:312 #, c-format msgid "%s isn't \"%s\"" msgstr "%s, \"%s\" değil" #: pan/usenet-utils/filter-info.cc:303 pan/usenet-utils/filter-info.cc:313 #, c-format msgid "%s doesn't begin with \"%s\"" msgstr "%s, \"%s\" ile başlamıyor" #: pan/usenet-utils/filter-info.cc:304 pan/usenet-utils/filter-info.cc:314 #, c-format msgid "%s doesn't end with \"%s\"" msgstr "%s, \"%s\" ile bitmiyor" #: pan/usenet-utils/filter-info.cc:305 pan/usenet-utils/filter-info.cc:315 #, c-format msgid "%s doesn't match the regex \"%s\"" msgstr "%s, \"%s\" düzenli ifadesi ile eşleşmiyor" #: pan/usenet-utils/filter-info.cc:327 #, c-format msgid "%s contains \"%s\"" msgstr "%s, \"%s\" içeriyor" #: pan/usenet-utils/filter-info.cc:328 #, c-format msgid "%s is \"%s\"" msgstr "%s, \"%s\"" #: pan/usenet-utils/filter-info.cc:329 #, c-format msgid "%s begins with \"%s\"" msgstr "%s, \"%s\" ile başlıyor" #: pan/usenet-utils/filter-info.cc:330 #, c-format msgid "%s ends with \"%s\"" msgstr "%s, \"%s\" ile bitiyor" #: pan/usenet-utils/filter-info.cc:331 #, c-format msgid "%s matches the regex \"%s\"" msgstr "%s, \"%s\" düzenli ifadesi ile eşleşiyor" #: pan/usenet-utils/filter-info.cc:337 msgid "Any of these tests fail:" msgstr "Bu testlerden herhangi biri başarısız:" #: pan/usenet-utils/filter-info.cc:344 msgid "All of these tests pass:" msgstr "Bu testlerin tümünden başarıyla geçildi:" #: pan/usenet-utils/filter-info.cc:351 msgid "None of these tests pass:" msgstr "Bu testlerin hiçbirinden geçilemedi:" #: pan/usenet-utils/filter-info.cc:358 msgid "Any of these tests pass:" msgstr "Bu testlerden herhangi biri geçildi:" #: pan/usenet-utils/gnksa.cc:880 #, c-format msgid "No email address provided; generating message-id with domain \"%s\"" msgstr "" "E-posta adresi belirtilmediğinden, ileti numarası \"%s\" alanadı ile " "oluşturuluyor" #: pan/usenet-utils/message-check.cc:122 msgid "Warning: Reply seems to be top-posted." msgstr "Uyarı: Cevap en üstte olacak şekilde gönderilmiş." #: pan/usenet-utils/message-check.cc:143 msgid "Warning: The signature marker should be \"-- \", not \"--\"." msgstr "Uyarı: İmza işareti \"-- \" olmalı, \"--\" değil." #: pan/usenet-utils/message-check.cc:160 msgid "Warning: Signature prefix with no signature." msgstr "Uyarı: İmza olmayan imza öneki." #: pan/usenet-utils/message-check.cc:165 msgid "Warning: Signature is more than 4 lines long." msgstr "Uyarı: İmza 4 satırdan uzun." #: pan/usenet-utils/message-check.cc:170 msgid "Warning: Signature is more than 80 characters wide." msgstr "Uyarı: İmza 80 karakter uzunluğundan büyük." #: pan/usenet-utils/message-check.cc:196 #, c-format msgid "Warning: %d line is more than 80 characters wide." msgid_plural "Warning: %d lines are more than 80 characters wide." msgstr[0] "Uyarı: %d satır 80 karakterden büyük." #: pan/usenet-utils/message-check.cc:221 msgid "Error: Message is empty." msgstr "Hata: İleti boş." #: pan/usenet-utils/message-check.cc:256 msgid "Warning: The message is entirely quoted text!" msgstr "Uyarı: İleti, tamamıyla alıntıdan ibaret!" #: pan/usenet-utils/message-check.cc:257 msgid "Warning: The message is mostly quoted text." msgstr "Uyarı: İleti, çoğunlukla alıntıdan ibaret." #: pan/usenet-utils/message-check.cc:307 msgid "Error: Message appears to have no new content." msgstr "Hata: İletinin bir içeriği yok gibi gözüküyor." #: pan/usenet-utils/message-check.cc:342 pan/usenet-utils/message-check.cc:381 #, c-format msgid "" "Warning: The posting profile's server doesn't carry newsgroup\n" "\t\"%s\".\n" "\tIf the group name is correct, switch profiles in the \"From:\"\n" "\tline or edit the profile with \"Edit|Manage Posting Profiles\"." msgstr "" "Uyarı: Gönderme profilinin sunucusu haber gurubu taşımıyor\n" "\t\"%s\".\n" "\tgrup adı doğru ise, Profildeki \"Kimden:” satırını değiştirin\n" "\tveya \"Düzenle|Gönderme Profillerini Yönet” ile düzenleyin." #: pan/usenet-utils/message-check.cc:353 msgid "Warning: Following-Up to too many groups." msgstr "Uyarı: Çok fazla grup takip ediliyor." #: pan/usenet-utils/message-check.cc:364 msgid "Error: No Subject specified." msgstr "Hata: Başlık belirtilmemiş." #: pan/usenet-utils/message-check.cc:393 #, c-format msgid "Warning: Group \"%s\" is read-only." msgstr "Uyarı: \"%s\" grubu, salt okunur." #: pan/usenet-utils/message-check.cc:402 msgid "Error: Posting to a very large number of groups." msgstr "Hata: Çok fazla sayıda gruba gönderme var." #: pan/usenet-utils/message-check.cc:407 msgid "Warning: Posting to a large number of groups." msgstr "Uyarı: Çok fazla sayıda gruba gönderme var." #: pan/usenet-utils/message-check.cc:414 msgid "Warning: Crossposting without setting Followup-To header." msgstr "Uyarı: Followup-To başlığı ayarı olmadan çapraz gönderi var." #: pan/usenet-utils/message-check.cc:439 msgid "Error: Bad email address." msgstr "Hata: Yanlış e-posta adresi." #: pan/usenet-utils/message-check.cc:448 msgid "Warning: Most newsgroups frown upon HTML posts." msgstr "Uyarı: Çok fazla haber grubu HTML gönderilerini onaylamıyor." #: pan/usenet-utils/message-check.cc:484 msgid "Error: No Recipients." msgstr "Hata: Alıcılar yok." #: pan/usenet-utils/scorefile.cc:310 #, c-format msgid "Error reading score in %*.*s, line %d: unexpected line." msgstr "%*.*s üzerinde puan okuma hatası, satır: %d: beklenmedik satır." #: pan/usenet-utils/scorefile.cc:442 #, c-format msgid "" "Error reading score in %*.*s, line %d: expected 'Expires: MM/DD/YYYY' or " "'Expires: DD-MM-YYYY'." msgstr "" "%*.*s puan okuma hatası, satır %d: beklenen 'Expires: MM/DD/YYYY' veya " "'Expires: DD-MM-YYYY'." #: pan/usenet-utils/scorefile.cc:452 #, c-format msgid "Expired old score from %*.*s, line %d" msgstr "%*.*s üzerinden zamanı dolmuş puan, satır %d" #: pan/usenet-utils/scorefile.cc:589 #, c-format msgid "Read %lu scoring rules in %lu sections from \"%s\"" msgstr "%lu ögesinde, %lu puanlama okuması, \"%s\" üzerinden" #: pan/usenet-utils/ssl-utils.cc:172 #, c-format msgid "Error printing the server certificate for '%s'" msgstr "'%s' için sunucu sertifikasının yazdırılma hatası" #: pan/usenet-utils/ssl-utils.cc:191 #, c-format msgid "" "The current server '%s' sent this security certificate:\n" "\n" msgstr "" "Mevcut sunucu '%s' bu güvenlik sertifikasını gönderdi:\n" "\n" #: pan/usenet-utils/ssl-utils.cc:197 #, c-format msgid "" "Certificate information for server '%s':\n" "\n" msgstr "" "'%s' sunucusu için sertifika bilgisi:\n" "\n" #: pan/usenet-utils/ssl-utils.cc:202 #, c-format msgid "" "%sIssuer information:\n" "%s\n" "Valid until: %s\n" "\n" "Not valid before: %s\n" "\n" msgstr "" "%sYayıncı bilgisi:\n" "%s\n" "Geçerli olduğu tarih: %s\n" "\n" "Şu tarihe kadar geçerli değil: %s\n" "\n" #: pan/usenet-utils/text-massager.cc:397 msgid "> [quoted text muted]" msgstr "> [alıntı yapılan metin gösterilmedi]" #: pan/usenet-utils/text-massager.cc:579 msgid "no_name" msgstr "no_name" #: pan/usenet-utils/text-massager.cc:580 msgid "no_mail" msgstr "no_mail" #~ msgid "Toggle on/offline" #~ msgstr "Değiştir aç/kapat" #~ msgid "Minimize to tray" #~ msgstr "Sistem çekmecesine küçült" pan-0.162/po/uk.po000066400000000000000000003552111475412772400137210ustar00rootroot00000000000000# Copyright (C) 2000 Free Software Foundation, Inc. # # Yuri Syrota , 2002. # Maxim Dzumanenko , 2003. # Yuri Chornoivan , 2020, 2021, 2022, 2023, 2024. msgid "" msgstr "" "Project-Id-Version: pan\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/pan/issues/\n" "POT-Creation-Date: 2024-05-08 17:14+0000\n" "PO-Revision-Date: 2024-05-09 19:44+0300\n" "Last-Translator: Yuri Chornoivan \n" "Language-Team: Ukrainian\n" "Language: uk\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=4; plural=n==1 ? 3 : n%10==1 && n%100!=11 ? 0 : n" "%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" "X-Generator: Lokalize 23.04.3\n" #. update the titlebar #: org.gnome.pan.desktop.in:3 org.gnome.pan.metainfo.xml.in:27 #: pan/gui/dl-headers-ui.cc:119 pan/gui/gui.cc:1040 pan/gui/gui.cc:1665 #: pan/gui/gui.cc:1985 pan/gui/score-add-ui.cc:600 msgid "Pan" msgstr "Pan" #: org.gnome.pan.desktop.in:4 msgid "Newsreader" msgstr "Перегляд новин" #: org.gnome.pan.desktop.in:5 org.gnome.pan.metainfo.xml.in:7 msgid "Read and post Usenet articles" msgstr "Читання і створення статей Usenet" #. Translators: Search terms to find this application. Do NOT translate or localise the semicolons! The list MUST also end with a semicolon! #: org.gnome.pan.desktop.in:7 msgid "usenet;news;newsreader;newsgroup;article;yenc;nzb;" msgstr "" "usenet;news;newsreader;newsgroup;article;yenc;nzb;юзнет;новини;читання;читач;" "група;стаття;єнц;ензетбі;" #: org.gnome.pan.metainfo.xml.in:6 msgid "Pan Newsreader" msgstr "Переглядач новин «Pan»" #: org.gnome.pan.metainfo.xml.in:9 msgid "" "Pan is a Usenet newsreader that is good at both text and binaries. It " "supports offline reading, scoring and killfiles, yEnc, NZB, PGP handling, " "multiple servers, and secure connections." msgstr "" "«Pan» — програма для читання новин Usenet, якою можна скористатися для " "роботи як з текстом, так і з двійковими даними. У програмі передбачено " "можливості читання статей в автономному режимі, оцінювання і фільтрування " "новин, обробки yEnc, NZB, PGP, роботи з декількома серверами та забезпечення " "захисту з'єднань." #: org.gnome.pan.metainfo.xml.in:12 msgid "" "It is also the only Unix newsreader to get a perfect score on the Good Net-" "Keeping Seal of Approval evaluations." msgstr "" "Крім того, це єдина програма для читання новин у Unix, яка отримала ідеальні " "оцінки від Good Net-Keeping Seal of Approval." #: pan/data/article-cache.cc:144 pan/data/encode-cache.cc:62 #, c-format msgid "Error opening directory: \"%s\": %s" msgstr "Помилка під час відкривання каталогу «%s»: %s" #: pan/data/article-cache.cc:235 pan/data/article-cache.cc:244 #: pan/data-impl/data-io.cc:278 pan/data-impl/data-io.cc:310 #: pan/gui/post-ui.cc:1767 #, c-format msgid "Unable to save \"%s\" %s" msgstr "Не вдалося зберегти «%s» %s" #: pan/data/article-cache.cc:362 #, c-format msgid "Error opening file \"%s\" %s" msgstr "Помилка при відкритті файла «%s» %s" #: pan/data/article-cache.cc:393 pan/data-impl/profiles.cc:175 #: pan/data-impl/server.cc:495 pan/general/file-util.cc:311 #: pan/gui/post-ui.cc:636 pan/gui/task-pane.cc:740 #, c-format msgid "Error reading file \"%s\": %s" msgstr "Помилка при читанні файла «%s»: %s" #: pan/data/cert-store.cc:261 #, c-format msgid "Error opening SSL certificate directory: \"%s\": %s" msgstr "Помилка під час спроби відкрити каталог сертифікатів SSL: «%s»: %s" #: pan/data/cert-store.cc:292 #, c-format msgid "Successfully added %d SSL PEM certificate(s) to Certificate Store." msgstr "До сховища сертифікатів успішно додано %d сертифікатів PEM SSL." #: pan/data/cert-store.cc:312 msgid "" "Error initializing Certificate Store. Check that the permissions for the " "folders ~/.pan2 and ~/.pan2/ssl_certs are set correctly. Fatal, exiting." msgstr "" "Помилка під час спроби ініціалізувати сховище сертифікатів. Перевірте, чи " "правильно встановлено права доступу до тек ~/.pan2 та ~/.pan2/ssl_certs. " "Критична помилка, завершуємо роботу." #: pan/data/cert-store.cc:361 #, c-format msgid "Could not export certificate for server: %s" msgstr "Не вдалося експортувати сертифікат для сервера: %s" #. load_group_descriptions (*_data_io); #: pan/data-impl/data-impl.cc:115 #, c-format msgid "Loaded data backend in %.1f seconds" msgstr "Завантажено модуль обробки даних за %.1f секунд" #: pan/data-impl/data-impl.cc:151 msgid "Pan Newsreader's server passwords" msgstr "Паролі до серверів переглядача новин «Pan»" #: pan/data-impl/groups.cc:102 #, c-format msgid "Skipping newsrc file for server \"%s\"" msgstr "Пропускаємо файл newsrc для сервера «%s»" #: pan/data-impl/headers.cc:618 #, c-format msgid "Expired %lu old articles from \"%s\"" msgstr "Застаріло %lu статей з «%s»" #: pan/data-impl/headers.cc:625 #, c-format msgid "" "Unsupported data version for %s headers: %d.\n" "Are you running an old version of Pan by accident?" msgstr "" "Не підтримувана версія даних для %s заголовків: %d.\n" "Чи не запустили ви випадково стару версію Pan?" #: pan/data-impl/headers.cc:640 #, c-format msgid "Loaded %llu articles for \"%s\" in %.1f seconds (%.0f per second)" msgstr "Завантажено %llu статей для «%s» за %.1f секунд (%.0f за секунду)" #: pan/data-impl/headers.cc:869 #, c-format msgid "" "Saved %lu parts, %lu articles in \"%s\" in %.1f seconds (%.0f articles/sec)" msgstr "Збережено %lu частин, %lu статей у «%s» у %.1f секунд (%.0f статей/с)" #: pan/data-impl/headers.cc:1202 #, c-format msgid "Added %lu articles to %s." msgstr "Додано %lu статей до %s." #: pan/data-impl/server.cc:263 #, c-format msgid "Received no password from libsecret for server %s." msgstr "Від libsecret не отримано жодного пароля для сервера %s." #: pan/data-impl/xover.cc:241 #, c-format msgid "Error reading from %s: unknown group \"%s\"" msgstr "Помилка під час читання з %s: невідома група «%s»" #: pan/general/editor-spawner.cc:66 #, c-format msgid "Error parsing \"external editor\" command line: %s (Command was: %s)" msgstr "" "Помилка під час обробки командного рядка «зовнішнього редактора»: %s " "(команда: %s)" #: pan/general/editor-spawner.cc:110 #, c-format msgid "Error starting external editor: %s" msgstr "Помилка запуску зовнішнього редактора: %s" #: pan/general/e-util.cc:164 msgid "%l:%M %p" msgstr "%H:%M" #: pan/general/e-util.cc:165 msgid "Today %l:%M %p" msgstr "Сьогодні %H:%M" #: pan/general/e-util.cc:166 msgid "%a %l:%M %p" msgstr "%a %H:%M" #: pan/general/e-util.cc:167 msgid "%b %d %l:%M %p" msgstr "%d %b %H:%M" #: pan/general/e-util.cc:168 msgid "%b %d %Y" msgstr "%d.%B.%Y" #: pan/general/e-util.cc:200 msgid "?" msgstr "?" #: pan/general/text-match.cc:194 #, c-format msgid "Can't use regular expression \"%s\": %s" msgstr "Неможливо використати формальний вираз «%s»: %s" #: pan/general/utf8-utils.cc:212 msgid "" "Couldn't determine article encoding. Non-UTF8 characters were removed." msgstr "" "Не вдалося визначити кодування статті. Символи, які не належать до UTF8, " "було вилучено." #: pan/gui/actions.cc:306 pan/gui/post-ui.cc:451 msgid "_File" msgstr "_Файл" #: pan/gui/actions.cc:307 pan/gui/post-ui.cc:452 msgid "_Edit" msgstr "З_міни" #: pan/gui/actions.cc:308 pan/gui/prefs-ui.cc:1138 msgid "_Layout" msgstr "_Компонування" #: pan/gui/actions.cc:309 msgid "_Group Pane" msgstr "Панель г_руп" #: pan/gui/actions.cc:310 msgid "_Header Pane" msgstr "Панель з_аголовків" #: pan/gui/actions.cc:311 msgid "_Body Pane" msgstr "Панель в_місту" #: pan/gui/actions.cc:312 msgid "_View" msgstr "П_ерегляд" #: pan/gui/actions.cc:313 msgid "Filte_r" msgstr "Фі_льтр" #: pan/gui/actions.cc:314 msgid "_Go" msgstr "Пере_хід" #: pan/gui/actions.cc:315 pan/gui/prefs-ui.cc:1188 msgid "_Actions" msgstr "Ді_ї" #: pan/gui/actions.cc:316 msgid "_Articles" msgstr "С_татті" #: pan/gui/actions.cc:317 msgid "G_roups" msgstr "Г_рупи" #: pan/gui/actions.cc:318 pan/gui/actions.cc:319 msgid "_Post" msgstr "_Надіслати" #: pan/gui/actions.cc:320 msgid "_Help" msgstr "_Довідка" #: pan/gui/actions.cc:323 msgid "_Read Group" msgstr "Ч_итати групу" #: pan/gui/actions.cc:324 msgid "Read Group" msgstr "Читати групу" #: pan/gui/actions.cc:328 msgid "_Mark Selected Groups Read" msgstr "Позна_чити вибрані групи як прочитані" #: pan/gui/actions.cc:329 msgid "Mark Selected Groups Read" msgstr "Позначити вибрані групи як прочитані" #: pan/gui/actions.cc:333 msgid "_Delete Selected Groups' Articles" msgstr "Ви_лучити статті з вибраних груп" #: pan/gui/actions.cc:334 msgid "Delete Selected Groups' Articles" msgstr "Вилучити статті з вибраних груп" #: pan/gui/actions.cc:338 msgid "Get New _Headers in Selected Groups" msgstr "Отримати нові заголовки у ви_браних групах" #: pan/gui/actions.cc:339 msgid "Get New Headers in Selected Groups" msgstr "Отримати нові заголовки у вибраних групах" #: pan/gui/actions.cc:343 pan/gui/actions.cc:348 msgid "Get New _Headers in Subscribed Groups" msgstr "Отримати нові за_головки у підписаних групах" #: pan/gui/actions.cc:344 pan/gui/actions.cc:349 msgid "Get New Headers in Subscribed Groups" msgstr "Отримати нові заголовки у підписаних групах" #: pan/gui/actions.cc:353 msgid "Get _Headers..." msgstr "Отри_мати заголовки…" #: pan/gui/actions.cc:354 msgid "Get Headers..." msgstr "Отримати заголовки…" #: pan/gui/actions.cc:358 pan/gui/actions.cc:359 msgid "Refresh Group List" msgstr "Оновити список груп" #: pan/gui/actions.cc:363 msgid "_Subscribe" msgstr "_Підписатися" #: pan/gui/actions.cc:364 msgid "Subscribe" msgstr "Підписатися" #: pan/gui/actions.cc:368 msgid "_Unsubscribe" msgstr "_Відписатися" #: pan/gui/actions.cc:369 msgid "Unsubscribe" msgstr "Відписатися" #: pan/gui/actions.cc:373 msgid "_Save Articles..." msgstr "З_берегти статті…" #: pan/gui/actions.cc:374 msgid "Save Articles..." msgstr "Зберегти статті…" #: pan/gui/actions.cc:378 msgid "Save Articles from Selected _NZB..." msgstr "Збереження статей з вибр_аного NZB..." #: pan/gui/actions.cc:379 msgid "Save Articles from Selected NZB" msgstr "Збереження статей з вибраного NZB" #: pan/gui/actions.cc:383 msgid "Save Articles to an NZB _File..." msgstr "Зберегти статті до _файла NZB…" #: pan/gui/actions.cc:384 msgid "Save Articles to an NZB File" msgstr "Збереження статей до файла NZB" #: pan/gui/actions.cc:388 pan/gui/actions.cc:389 msgid "Print" msgstr "Надрукувати" #: pan/gui/actions.cc:393 msgid "_Import NZB Files..." msgstr "_Імпортувати файли NZB…" #: pan/gui/actions.cc:398 msgid "_Cancel Last Task" msgstr "_Скасувати останнє завдання" #: pan/gui/actions.cc:403 msgid "_Task Manager" msgstr "_Менеджер завдань" #: pan/gui/actions.cc:408 msgid "_Event Log" msgstr "_Журнал подій" #: pan/gui/actions.cc:413 msgid "_Quit" msgstr "Ви_йти" #: pan/gui/actions.cc:418 msgid "Select _All Articles" msgstr "Виб_рати всі статті" #: pan/gui/actions.cc:423 msgid "_Deselect All Articles" msgstr "Скас_увати вибір всіх статей" #: pan/gui/actions.cc:428 msgid "Add Su_bthreads to Selection" msgstr "Додати в_кладені гілки до вибраного" #: pan/gui/actions.cc:433 msgid "Add _Threads to Selection" msgstr "Додати гі_лки до вибраного" #: pan/gui/actions.cc:438 msgid "Add _Similar Articles to Selection" msgstr "Додати поді_бні статті до вибраного" #: pan/gui/actions.cc:443 msgid "Select Article _Body" msgstr "Вибрати в_міст статті" #: pan/gui/actions.cc:448 msgid "Edit _Preferences" msgstr "Редагувати на_лаштування" #: pan/gui/actions.cc:453 msgid "Edit Selected _Group's Preferences" msgstr "Редагувати налаштування вибраної _групи" #: pan/gui/actions.cc:458 msgid "Edit S_core File" msgstr "Редагувати файл о_цінок" #: pan/gui/actions.cc:463 pan/gui/post-ui.cc:468 msgid "Edit P_osting Profiles" msgstr "Редагувати про_філі публікації" #: pan/gui/actions.cc:468 msgid "Edit _News Servers" msgstr "Редагувати сервери _новин" #: pan/gui/actions.cc:473 msgid "Jump to _Group Tab" msgstr "Перейти до вкладки _груп" #: pan/gui/actions.cc:478 msgid "Jump to _Header Tab" msgstr "Перейти до вкладки _заголовків" #: pan/gui/actions.cc:483 msgid "Jump to _Body Tab" msgstr "Перейти до вкладки _вмісту" #: pan/gui/actions.cc:488 msgid "_Rot13 Selected Text" msgstr "Зашифрувати позначений те_кст за допомогою rot13" #: pan/gui/actions.cc:493 msgid "Clear _Header Pane" msgstr "Спорожнити панель з_аголовків" #: pan/gui/actions.cc:498 msgid "Clear _Body Pane" msgstr "Спорожнити панель в_місту" #: pan/gui/actions.cc:503 msgid "Cache Article" msgstr "Кешувати статтю" #: pan/gui/actions.cc:508 msgid "Read Article" msgstr "Читати статтю" #: pan/gui/actions.cc:513 msgid "Show Article Information" msgstr "Показати відомості щодо статті" #: pan/gui/actions.cc:518 msgid "Read _More" msgstr "Читати _далі" #: pan/gui/actions.cc:519 msgid "Read More" msgstr "Читати далі" #: pan/gui/actions.cc:523 msgid "Read _Back" msgstr "Читати _назад" #: pan/gui/actions.cc:524 msgid "Read Back" msgstr "Читати назад" #: pan/gui/actions.cc:528 msgid "Next _Unread Group" msgstr "Наступна непрочитана г_рупа" #: pan/gui/actions.cc:533 msgid "Next _Group" msgstr "Н_аступна група" #: pan/gui/actions.cc:538 msgid "Next _Unread Article" msgstr "Наступна _непрочитана стаття" #: pan/gui/actions.cc:539 msgid "Next Unread Article" msgstr "Наступна непрочитана стаття" #: pan/gui/actions.cc:543 msgid "Next _Article" msgstr "Наступна с_таття" #: pan/gui/actions.cc:544 msgid "Next Article" msgstr "Наступна стаття" #: pan/gui/actions.cc:548 msgid "Next _Watched Article" msgstr "Наступна _очікувана стаття" #: pan/gui/actions.cc:553 msgid "Next Unread _Thread" msgstr "Наступна непрочитана _гілка" #: pan/gui/actions.cc:554 msgid "Next Unread Thread" msgstr "Наступна непрочитана гілка" #: pan/gui/actions.cc:558 msgid "Next Threa_d" msgstr "_Наступна гілка" #: pan/gui/actions.cc:563 msgid "Pre_vious Article" msgstr "П_опередня стаття" #: pan/gui/actions.cc:568 msgid "Previous _Thread" msgstr "_Попередня гілка" #: pan/gui/actions.cc:573 msgid "_Parent Article" msgstr "_Батьківська стаття" #: pan/gui/actions.cc:578 msgid "Ignore _Author" msgstr "_Ігнорувати автор" #: pan/gui/actions.cc:582 msgid "_Watch Thread" msgstr "Сп_остерігати за гілкою" #: pan/gui/actions.cc:587 msgid "_Ignore Thread" msgstr "І_гнорувати гілку" #: pan/gui/actions.cc:592 pan/gui/actions.cc:593 msgid "_Toggle Flag On/Off for Thread" msgstr "Пе_ремкнути позначення для гілки" #: pan/gui/actions.cc:597 pan/gui/actions.cc:598 msgid "_Turn Flag Off for Thread" msgstr "Ви_мкнути позначення гілки" #: pan/gui/actions.cc:602 pan/gui/actions.cc:603 msgid "_Select All Flagged Threads" msgstr "Ви_брати усі позначені гілки" #: pan/gui/actions.cc:607 pan/gui/actions.cc:608 msgid "_Go to Next Flagged Thread" msgstr "Пере_йти до наступної позначеної гілки" #: pan/gui/actions.cc:612 pan/gui/actions.cc:613 msgid "_Go to Last Flagged Thread" msgstr "Пере_йти до останньої позначеної гілки" #: pan/gui/actions.cc:617 pan/gui/actions.cc:618 msgid "_Invert Selection" msgstr "_Інвертувати позначення" #: pan/gui/actions.cc:622 msgid "Edit Article's Watch/Ignore/Score..." msgstr "Редагування стану очікування/ігнорування/рейтингу статті…" #: pan/gui/actions.cc:627 msgid "Add a _Scoring Rule..." msgstr "Додати правило о_цінювання…" #: pan/gui/actions.cc:632 msgid "Cance_l Article..." msgstr "С_касувати статтю…" #: pan/gui/actions.cc:637 msgid "_Supersede Article..." msgstr "П_ереписати статтю…" #: pan/gui/actions.cc:642 msgid "_Delete Article" msgstr "Ви_лучити статтю" #: pan/gui/actions.cc:647 msgid "Clear Article Cache" msgstr "Спорожнити кеш статей" #: pan/gui/actions.cc:652 msgid "_Mark Article as Read" msgstr "_Позначити статтю як прочитану" #: pan/gui/actions.cc:657 msgid "Mark Article as _Unread" msgstr "Позначити статтю як непро_читану" #: pan/gui/actions.cc:663 msgid "_Mark Thread as Read" msgstr "_Позначити гілку як прочитану" #: pan/gui/actions.cc:668 msgid "Mark Thread as _Unread" msgstr "Позначити гілку як _непрочитану" #: pan/gui/actions.cc:673 msgid "_Post to Newsgroup" msgstr "_Опублікувати у групі новин" #: pan/gui/actions.cc:674 msgid "Post to Newsgroup" msgstr "Опублікувати у групі новин" #: pan/gui/actions.cc:678 msgid "_Followup to Newsgroup" msgstr "_Відповідати до групи новин" #: pan/gui/actions.cc:679 msgid "Followup to Newsgroup" msgstr "Відповісти до групи новин" #: pan/gui/actions.cc:683 msgid "_Reply to Author in Mail" msgstr "_Відповісти авторові на пошту" #: pan/gui/actions.cc:689 msgid "_Contents" msgstr "_Зміст" #: pan/gui/actions.cc:695 msgid "_Pan Home Page" msgstr "До_машня сторінка Pan…" #: pan/gui/actions.cc:700 msgid "Give _Feedback or Report a Bug..." msgstr "Надіслати від_гук або віт щодо вади…" #: pan/gui/actions.cc:705 msgid "_About" msgstr "_Про програму" #: pan/gui/actions.cc:710 msgid "Edit _SSL Certificates" msgstr "Реда_гувати сертифікати SSL" #: pan/gui/actions.cc:725 msgid "_Thread Headers" msgstr "Заголовки _гілок" #: pan/gui/actions.cc:726 msgid "Wrap Article Body" msgstr "Переносити рядки у вмісті статті" #: pan/gui/actions.cc:727 msgid "Show Article Signature" msgstr "Показувати підпис статті" #: pan/gui/actions.cc:728 msgid "Mute _Quoted Text" msgstr "Прибирати _цитований текст" #: pan/gui/actions.cc:729 msgid "Show All _Headers in Body Pane" msgstr "Показувати всі загол_овки на панелі вмісту" #: pan/gui/actions.cc:730 msgid "Show _Smilies as Graphics" msgstr "Показувати см_айлики як графіку" #: pan/gui/actions.cc:731 msgid "Show *Bold*, __Underlined__, and /Italic/" msgstr "Показувати *жирний*, __підкреслений__ та /курсив/" #: pan/gui/actions.cc:732 msgid "Size Pictures to _Fit" msgstr "Підганяти розмір_и зображень" #: pan/gui/actions.cc:733 msgid "Use _Monospace Font" msgstr "_Моноширинний шрифт" #: pan/gui/actions.cc:734 msgid "Set Focus to Images" msgstr "Встановлювати фокус на зображення" #: pan/gui/actions.cc:735 msgid "Highlight _URLs" msgstr "Підсвічувати _адреси" #: pan/gui/actions.cc:738 msgid "_Work Online" msgstr "Пра_цювати у мережі" #: pan/gui/actions.cc:739 msgid "_Tabbed Layout" msgstr "Компонування із в_кладками" #: pan/gui/actions.cc:740 msgid "Show Group _Pane" msgstr "Показувати панель гр_уп" #: pan/gui/actions.cc:741 msgid "Show Hea_der Pane" msgstr "Показувати панель з_аголовків" #: pan/gui/actions.cc:742 msgid "Show Bod_y Pane" msgstr "Показувати панель в_місту" #: pan/gui/actions.cc:743 msgid "Show _Toolbar" msgstr "Показати панель _інструментів" #: pan/gui/actions.cc:744 msgid "Abbreviate Group Names" msgstr "Скорочувати назви на панелі груп" #: pan/gui/actions.cc:746 msgid "Match Only _Read Articles" msgstr "Відповідність лише про_читаних статей" #: pan/gui/actions.cc:746 msgid "Match Only Read Articles" msgstr "Відповідність лише прочитаним статтям" #: pan/gui/actions.cc:747 msgid "Match Only _Unread Articles" msgstr "Відповідність лише _непрочитаним статтям" #: pan/gui/actions.cc:747 msgid "Match Only Unread Articles" msgstr "Відповідність лише непрочитаним статтям" #: pan/gui/actions.cc:748 msgid "Match Only _Cached Articles" msgstr "Відповідність лише _кешованим статтям" #: pan/gui/actions.cc:748 msgid "Match Only Cached Articles" msgstr "Відповідність лише кешованим статтям" #: pan/gui/actions.cc:749 msgid "Match Only _Complete Articles" msgstr "Відповідність лише пов_ним статтям" #: pan/gui/actions.cc:749 msgid "Match Only Complete Articles" msgstr "Відповідність лише повним статтям" #: pan/gui/actions.cc:750 msgid "Match Only _My Articles" msgstr "Відповідність _лише вашим статтям" #: pan/gui/actions.cc:750 msgid "Match Only My Articles" msgstr "Відповідність лише вашим статтям" #: pan/gui/actions.cc:751 msgid "Match Only _Watched Articles" msgstr "Відповідність лише _очікуваним статтям" #: pan/gui/actions.cc:751 msgid "Match Only Watched Articles" msgstr "Перевіряти відповідність лише у очікуваних статтях" #: pan/gui/actions.cc:753 msgid "Match Scores of 9999 (_Watched)" msgstr "Відповідність рейтингу 9999 (с_постережувані)" #: pan/gui/actions.cc:754 msgid "Match Scores of 5000...9998 (_High)" msgstr "Відповідність рейтингу 5000…9998 (_високий)" #: pan/gui/actions.cc:755 msgid "Match Scores of 1...4999 (Me_dium)" msgstr "Відповідність рейтингу 1…4999 (с_ередній)" #: pan/gui/actions.cc:756 msgid "Match Scores of 0 (_Normal)" msgstr "Відповідність рейтингу 0 (з_вичайні)" #: pan/gui/actions.cc:757 msgid "Match Scores of -9998...-1 (_Low)" msgstr "Відповідність рейтингу -9998…-1 (_низький)" #: pan/gui/actions.cc:758 msgid "Match Scores of -9999 (_Ignored)" msgstr "Відповідність рейтингу -9999 (_ігноровані)" #: pan/gui/actions.cc:760 msgid "Enable/Disable All _Rules" msgstr "Увімкнути або вимкнути усі _правила" #: pan/gui/actions.cc:788 msgid "Show Matching _Articles" msgstr "Показувати відповідні с_татті" #: pan/gui/actions.cc:789 msgid "Show Matching Articles' _Threads" msgstr "Показувати _гілки відповідних статей" #: pan/gui/actions.cc:790 msgid "Show Matching Articles' _Subthreads" msgstr "Показувати п_ідгілки відповідних статей" #: pan/gui/body-pane.cc:1038 msgid "Unnamed File" msgstr "Файл без назви" #: pan/gui/body-pane.cc:1119 pan/gui/gui.cc:1956 pan/gui/header-pane.cc:1309 #: pan/gui/header-pane.cc:1738 pan/gui/post-ui.cc:2641 pan/gui/prefs-ui.cc:887 #: pan/gui/score-add-ui.cc:139 pan/gui/task-pane.cc:795 msgid "Subject" msgstr "Тема" #: pan/gui/body-pane.cc:1121 pan/gui/gui.cc:1956 msgid "From" msgstr "Від" #: pan/gui/body-pane.cc:1123 pan/gui/gui.cc:1957 pan/gui/header-pane.cc:1817 #: pan/gui/log-ui.cc:308 pan/gui/prefs-ui.cc:883 msgid "Date" msgstr "Дата" #: pan/gui/body-pane.cc:1130 msgid "Newsgroups" msgstr "Група новин" #: pan/gui/body-pane.cc:1137 pan/gui/body-pane.cc:1145 #: pan/gui/body-pane.cc:1152 msgid "User-Agent" msgstr "Програма перегляду" #: pan/gui/body-pane.cc:1158 msgid "Followup-To" msgstr "Відповідь до" #: pan/gui/body-pane.cc:1168 msgid "Reply-To" msgstr "Зворотна адреса" #: pan/gui/body-pane.cc:1216 msgid " from " msgstr " від " #: pan/gui/body-pane.cc:1218 msgid " at " msgstr " о " #: pan/gui/body-pane.cc:1307 #, c-format msgid "" "This is a PGP-Signed message.\n" "\n" "Signer: %s ('%s')\n" "Valid until: %s\n" "Created on: %s" msgstr "" "Це повідомлення підписано PGP.\n" "\n" "Підписувач: %s («%s»)\n" "Строк дії до: %s\n" "Створено: %s" #: pan/gui/body-pane.cc:1312 msgid "always" msgstr "завжди" #: pan/gui/body-pane.cc:1532 msgid "Copy _URL" msgstr "Копіювати _адресу" #: pan/gui/body-pane.cc:1720 msgid "Save Attachment As..." msgstr "Зберегти долучення як…" #: pan/gui/body-pane.cc:1723 msgid "Save All Attachments" msgstr "Зберегти всі долучення" #: pan/gui/body-pane.cc:1794 msgid "Attachments:" msgstr "Долучення:" #: pan/gui/body-pane.cc:1814 msgid "Text View" msgstr "Перегляд тексту" #: pan/gui/body-pane.cc:1823 msgid "HTML View" msgstr "Перегляд HTML" #: pan/gui/dl-headers-ui.cc:125 #, c-format msgid "%d Group" msgid_plural "%d Groups" msgstr[0] "%d група" msgstr[1] "%d групи" msgstr[2] "%d груп" msgstr[3] "%d група" #: pan/gui/dl-headers-ui.cc:148 msgid "Get the last N _days' headers: " msgstr "Отримувати заголовки останніх N дн_ів: " #: pan/gui/dl-headers-ui.cc:156 msgid "Get _new headers" msgstr "Отримувати _нові заголовки" #: pan/gui/dl-headers-ui.cc:160 msgid "Get _all headers" msgstr "Отримувати _всі заголовки" #: pan/gui/dl-headers-ui.cc:164 msgid "Get the _latest N headers: " msgstr "Отримувати _останні N заголовків: " #: pan/gui/e-action-combo-box.c:386 pan/gui/prefs-ui.cc:880 msgid "Action" msgstr "Дія" #: pan/gui/e-action-combo-box.c:387 msgid "A GtkRadioAction" msgstr "GtkRadioAction" #: pan/gui/e-charset.c:51 pan/gui/task-pane.cc:561 msgid "Unknown" msgstr "Невідомий" #: pan/gui/e-charset.c:52 msgid "Arabic" msgstr "Арабське" #: pan/gui/e-charset.c:53 msgid "Baltic" msgstr "Балтійське" #: pan/gui/e-charset.c:54 msgid "Central European" msgstr "Центральноєвропейське" #: pan/gui/e-charset.c:55 msgid "Chinese" msgstr "Китайське" #: pan/gui/e-charset.c:56 msgid "Cyrillic" msgstr "Кирилиця" #: pan/gui/e-charset.c:57 msgid "Greek" msgstr "Грецьке" #: pan/gui/e-charset.c:58 msgid "Hebrew" msgstr "Іврит" #: pan/gui/e-charset.c:59 msgid "Japanese" msgstr "Японська" #: pan/gui/e-charset.c:60 msgid "Korean" msgstr "Корейське" #: pan/gui/e-charset.c:61 msgid "Thai" msgstr "Тайське" #: pan/gui/e-charset.c:62 msgid "Turkish" msgstr "Турецьке" #: pan/gui/e-charset.c:63 msgid "Unicode" msgstr "Юнікод" #: pan/gui/e-charset.c:64 msgid "Western European" msgstr "Західноєвропейське" #: pan/gui/e-charset.c:65 msgid "Western European, New" msgstr "Західноєвропейське, нове" #: pan/gui/e-charset.c:84 pan/gui/e-charset.c:85 pan/gui/e-charset.c:86 msgid "Traditional" msgstr "Традиційна" #: pan/gui/e-charset.c:87 pan/gui/e-charset.c:88 pan/gui/e-charset.c:89 #: pan/gui/e-charset.c:90 msgid "Simplified" msgstr "Спрощена" #: pan/gui/e-charset.c:93 msgid "Ukrainian" msgstr "Українське" #: pan/gui/e-charset.c:96 msgid "Visual" msgstr "Візуальне" #: pan/gui/e-charset-combo-box.c:95 pan/gui/gui.cc:2154 pan/gui/post-ui.cc:546 #: pan/gui/prefs-ui.cc:791 msgid "Character Encoding" msgstr "Кодування символів" #: pan/gui/e-charset-combo-box.c:97 pan/gui/e-charset-dialog.c:51 #: pan/gui/score-add-ui.cc:606 pan/gui/task-pane.cc:309 msgid "Cancel" msgstr "Скасувати" #: pan/gui/e-charset-combo-box.c:98 pan/gui/e-charset-dialog.c:52 msgid "OK" msgstr "Гаразд" #: pan/gui/e-charset-combo-box.c:119 msgid "Enter the character set to use" msgstr "Введіть бажаний набір символів" #: pan/gui/e-charset-combo-box.c:338 msgid "Other..." msgstr "Інше…" #: pan/gui/e-cte-dialog.c:76 msgid "Default Encoding" msgstr "Типове кодування" #: pan/gui/e-cte-dialog.c:78 msgid "7-Bit Encoding" msgstr "7-бітове кодування" #: pan/gui/e-cte-dialog.c:80 msgid "8-Bit Encoding" msgstr "8-бітове кодування" #: pan/gui/e-cte-dialog.c:82 msgid "Base64 Encoding" msgstr "Кодування Base64" #: pan/gui/e-cte-dialog.c:84 msgid "Quoted-Printable Encoding" msgstr "Кодування із друкованими у лапках" #: pan/gui/group-pane.cc:331 msgid "Sent" msgstr "Надіслані" #: pan/gui/group-pane.cc:332 msgid "Drafts" msgstr "Чернетки" #: pan/gui/group-pane.cc:543 msgid "Group" msgstr "Групи" #: pan/gui/group-pane.cc:544 msgid "Group (regex)" msgstr "Група (форм. вираз)" #: pan/gui/group-pane.cc:987 msgid "Local Folders" msgstr "Локальні теки" #: pan/gui/group-pane.cc:988 msgid "Subscribed Groups" msgstr "Підписані групи" #: pan/gui/group-pane.cc:989 msgid "Other Groups" msgstr "Інші групи" #: pan/gui/group-pane.cc:1029 pan/gui/score-view-ui.cc:156 msgid "Name" msgstr "Назва" #: pan/gui/group-prefs-dialog.cc:161 msgid "No Profiles defined in Edit|Posting Profiles." msgstr "" "Не визначено жодного профілю, скористайтеся «Зміни → Профілі публікації»." #: pan/gui/group-prefs-dialog.cc:264 msgid "Pan: Group Preferences" msgstr "Pan: налаштування груп" #: pan/gui/group-prefs-dialog.cc:279 msgid "Properties for Groups" msgstr "Властивості групи" #: pan/gui/group-prefs-dialog.cc:281 #, c-format msgid "Properties for %s" msgstr "Властивості %s" #: pan/gui/group-prefs-dialog.cc:292 msgid "Character _encoding:" msgstr "_Кодування символів:" #: pan/gui/group-prefs-dialog.cc:294 msgid "Directory for Saving Attachments" msgstr "Каталог для збереження долучень" #: pan/gui/group-prefs-dialog.cc:302 msgid "Directory for _saving attachments:" msgstr "Каталог для з_береження долучень:" #: pan/gui/group-prefs-dialog.cc:304 msgid "Posting _profile:" msgstr "Про_філь публікації:" #: pan/gui/group-prefs-dialog.cc:309 msgid "Spellchecker _language:" msgstr "_Мова перевірки правопису:" #: pan/gui/group-prefs-dialog.cc:312 msgid "Group color:" msgstr "Колір групи:" #: pan/gui/gui.cc:311 msgid "Open the Task Manager" msgstr "Відкрити менеджер завдань" #: pan/gui/gui.cc:334 msgid "Open the Event Log" msgstr "Відкрити журнал подій" #: pan/gui/gui.cc:610 msgid "Save NZB's Files" msgstr "Збереження файлів NZB" #: pan/gui/gui.cc:637 msgid "Untitled.nzb" msgstr "Без_назви.nzb" #: pan/gui/gui.cc:639 msgid "Save NZB File as..." msgstr "Зберегти файл NZB як…" #: pan/gui/gui.cc:808 msgid "Import NZB Files" msgstr "Імпорт файлів NZB" #: pan/gui/gui.cc:816 pan/gui/post-ui.cc:3349 msgid "NZB Files" msgstr "файли NZB" #: pan/gui/gui.cc:821 msgid "All Files" msgstr "усі файли" #: pan/gui/gui.cc:1335 msgid "Unable to supersede article." msgstr "Не вдалося переписати статтю." #: pan/gui/gui.cc:1336 pan/gui/gui.cc:1412 msgid "The article doesn't match any of your posting profiles." msgstr "Стаття не відповідає жодному з ваших профілів публікації." #: pan/gui/gui.cc:1385 msgid "Revise and send this article to replace the old one." msgstr "Виправити цю статтю і надіслати для заміни старого варіанта." #: pan/gui/gui.cc:1386 pan/gui/gui.cc:1450 msgid "Be patient! It will take time for your changes to take effect." msgstr "Будьте обережні! Внесення змін потребуватиме певного часу." #: pan/gui/gui.cc:1411 msgid "Unable to cancel article." msgstr "Не вдалося скасувати статтю." #: pan/gui/gui.cc:1449 msgid "Send this article to ask your server to cancel your other one." msgstr "" "Надіслати цю статтю для того, щоб попросити сервер скасувати іншу вашу " "статтю." #: pan/gui/gui.cc:1467 msgid "You have marked some articles for deletion." msgstr "Ви позначили деякі статті на вилучення." #: pan/gui/gui.cc:1468 msgid "Are you sure you want to delete them?" msgstr "Чи ви впевнені, що хочете вилучити їх?" #: pan/gui/gui.cc:1494 msgid "Do you want to accept it permanently? (You can change this later.)" msgstr "Хочете прийняти його остаточно? (Пізніше це рішення можна змінити.)" #: pan/gui/gui.cc:1640 msgid "Unable to open help file." msgstr "Не можу відкрити файл довідки." #: pan/gui/gui.cc:1668 msgid "Copyright © 2002-2021 Charles Kerr and others" msgstr "© Charles Kerr та інші, 2002–2021" #: pan/gui/gui.cc:1673 msgid "translator-credits" msgstr "" "Юрій Сирота \n" "Максим Дзюманенко \n" "Юрій Чорноіван " #: pan/gui/gui.cc:1801 msgid "_1. Group Pane" msgstr "_1. Панель груп" #: pan/gui/gui.cc:1802 msgid "_2. Header Pane" msgstr "_2. Панель заголовків" #: pan/gui/gui.cc:1803 msgid "_3. Body Pane" msgstr "_3. Панель вмісту" #: pan/gui/gui.cc:1893 pan/gui/gui.cc:1908 msgid " Bytes" msgstr " байтів" #: pan/gui/gui.cc:1896 msgid " KB" msgstr " кБ" #: pan/gui/gui.cc:1899 msgid " MB" msgstr " МБ" #: pan/gui/gui.cc:1902 msgid " GB" msgstr " ГБ" #: pan/gui/gui.cc:1905 msgid " TB" msgstr " ТБ" #: pan/gui/gui.cc:1937 #, c-format msgid "This article is complete with %d part." msgid_plural "This article has all %d parts." msgstr[0] "Ця стаття складається з %d частини." msgstr[1] "Ця стаття складається з %d частин." msgstr[2] "Ця стаття складається з %d частин." msgstr[3] "Ця стаття складається з однієї частини." #: pan/gui/gui.cc:1939 #, c-format msgid "This article is missing %d part." msgid_plural "This article is missing %d of its %d parts:" msgstr[0] "У цій статті не вистачає %d з її %d частини." msgstr[1] "У цій статті не вистачає %d з її %d частин." msgstr[2] "У цій статті не вистачає %d з її %d частин." msgstr[3] "У цій статті не вистачає %d з її %d частини." #: pan/gui/gui.cc:1957 pan/gui/header-pane.cc:1311 pan/gui/task-pane.cc:797 msgid "Message-ID" msgstr "Ід. повідомлення" #: pan/gui/gui.cc:1958 pan/gui/header-pane.cc:1786 pan/gui/prefs-ui.cc:884 msgid "Lines" msgstr "Рядки" #: pan/gui/gui.cc:1958 msgid "Size" msgstr "Розмір" #: pan/gui/gui.cc:1959 pan/gui/header-pane.cc:1802 pan/gui/prefs-ui.cc:882 msgid "Bytes" msgstr "Байтів" #: pan/gui/gui.cc:2009 msgid "" "Error loading iconv library. Encoding certain character sets will not work " "in GUI." msgstr "" "Помилка під час завантаження бібліотеки iconv. Кодування певних наборів " "символів не працюватиму у графічному інтерфейсі." #: pan/gui/gui.cc:2155 msgid "Body Pane Encoding" msgstr "Кодування панелі вмісту" #: pan/gui/gui.cc:2186 pan/gui/task-pane.cc:612 msgid "Offline" msgstr "Від'єднатись" #: pan/gui/gui.cc:2190 #, c-format msgid "Closing %d connection" msgid_plural "Closing %d connections" msgstr[0] "Закриття %d з'єднання" msgstr[1] "Закриття %d з'єднань" msgstr[2] "Закриття %d з'єднань" msgstr[3] "Закриття одного з'єднання" #: pan/gui/gui.cc:2192 pan/gui/gui.cc:2222 msgid "No Connections" msgstr "Немає з'єднань" #: pan/gui/gui.cc:2196 msgid "Connecting" msgstr "З'єднання" #: pan/gui/gui.cc:2209 #, c-format msgid "%s: %d idle, %d active @ %.1f KiBps" msgstr "%s: %d бездіяльних, %d активних на %.1f КіБ/с" #: pan/gui/gui.cc:2265 msgid "No Tasks" msgstr "Немає завдань" #: pan/gui/gui.cc:2267 pan/gui/prefs-ui.cc:1121 msgid "Tasks" msgstr "Завдання" #: pan/gui/gui.cc:2284 pan/gui/task-pane.cc:478 #, c-format msgid "%lu tasks, %s, %.1f KiBps, ETA %d:%02d:%02d" msgstr "%lu завдань, %s, %.1f КіБ/с, лишилося %d∶%02d∶%02d" #: pan/gui/gui.cc:2336 msgid "" "Pan is now offline. Please see \"File|Event Log\" and correct the problem, " "then use \"File|Work Online\" to continue." msgstr "" "«Pan» працює у автономному режимі. Будь ласка, скористайтеся пунктом меню " "«File → Журнал подій» і виправте проблему, потім скористайтеся пунктом меню " "«Файл → Працювати автономно», щоб продовжити." #: pan/gui/header-pane.cc:1307 pan/gui/task-pane.cc:793 msgid "Subject or Author" msgstr "Тема або автор" #: pan/gui/header-pane.cc:1308 pan/gui/task-pane.cc:794 msgid "Sub or Auth (regex)" msgstr "Тема або автор (форм.вираз)" #: pan/gui/header-pane.cc:1310 pan/gui/header-pane.cc:1770 #: pan/gui/prefs-ui.cc:881 pan/gui/score-add-ui.cc:140 pan/gui/task-pane.cc:796 msgid "Author" msgstr "Автор" #: pan/gui/header-pane.cc:1755 pan/gui/prefs-ui.cc:885 msgid "Score" msgstr "Оцінка" #: pan/gui/log-ui.cc:105 msgid "Save Event List" msgstr "Зберегти список подій" #: pan/gui/log-ui.cc:259 msgid "Pan: Events" msgstr "Pan: події" #: pan/gui/log-ui.cc:318 msgid "Message" msgstr "Повідомлення" #: pan/gui/pan.cc:336 msgid "Maximize" msgstr "Максимізувати" #: pan/gui/pan.cc:376 msgid "An error has occurred!" msgstr "Сталася помилка!" #: pan/gui/pan.cc:389 msgid "New Articles!" msgstr "Нові статті!" #: pan/gui/pan.cc:390 msgid "" "There are new\n" "articles available." msgstr "" "З'явилися\n" "нові статті." #: pan/gui/pan.cc:470 msgid "" "Thank you for trying Pan!\n" " \n" "To start newsreading, first Add a Server." msgstr "" "Дякуємо за те, що спробували «Pan»!\n" " \n" "Щоб почати читання новин, додайте сервер." #: pan/gui/pan.cc:552 msgid "" "General Options\n" " -h, --help Show this usage information and exit.\n" " -v, --version Print release version and exit.\n" " --verbose Be verbose (in non-GUI mode).\n" " --debug Run in debug mode. Use --debug twice for verbose " "debug.\n" " --debug-ssl Run in TLS (aka SSL) debug mode.\n" "\n" "URL Options\n" " headers:group.name Download new headers for the specified " "newsgroup.\n" " news:message-id When specified together with --no-gui, dump\n" " the message-id article to standard output.\n" "\n" "NZB Batch Options\n" " --nzb file1 file2 ... Process NZB files in non-GUI mode.\n" " -o path, --output=path Path to save attachments listed in the NZB " "file(s).\n" " --no-gui Only show console output, not the download " "queue.\n" msgstr "" "Загальні параметри\n" " -h, --help показати ці дані щодо користування і вийти.\n" " -v, --version вивести дані щодо версії і вийти.\n" " --verbose докладний режим (у режимі без графічного " "інтерфейсу).\n" " --debug запустити у режимі діагностики. (скористайтеся " "подвійним --debug, щоб дізнатися подробиці)\n" " --debug-ssl запустити у режимі діагностики TLS (або SSL).\n" "\n" "\n" "Параметри адрес\n" " headers:назва.групи отримати нові заголовки у вказаній групі новин.\n" " news:ід_повідомлення якщо вказано разом із --no-gui, створити дамп\n" " статті з ідентифікатором повідомлення до\n" " стандартного виведення.\n" "\n" "Параметри пакетної обробки NZB\n" " --nzb файл1 файл2 … обробити файли NZB у режимі без графічного " "інтерфейсу.\n" " -o шлях, --output=шлях шлях для збереження долучень зі списку у файлах " "NZB.\n" " --no-gui показати лише виведення до консолі, не чергу " "отримання.\n" #: pan/gui/pan.cc:885 msgid "Error: --no-gui used without nzb files or news:message-id." msgstr "" "Помилка: --no-gui використано без визначення файлів nzb files або news:" "ід_повідомлення." #: pan/gui/pan.cc:889 #, c-format msgid "Pan %s started" msgstr "Запущено «Pan» %s" #: pan/gui/pan.cc:909 msgid "Please configure Pan's news servers before using it as an nzb client." msgstr "" "Будь ласка, налаштуйте сервери новин «Pan», перш ніж користуватися програмою " "як клієнтом nzb." #: pan/gui/pan.cc:1029 msgid "Pan notification" msgstr "Сповіщення «Pan»" #: pan/gui/post-ui.cc:175 #, c-format msgid "Upload queue: %llu tasks, %ld KB (~ %.2f MB) total." msgstr "Черга вивантаження: %llu завдання, загалом %ld кБ (~ %.2f МБ)." #: pan/gui/post-ui.cc:281 pan/gui/post-ui.cc:312 #, c-format msgid "Error setting custom spellchecker: %s" msgstr "Помилка встановлення нетипового засобу перевірки правопису: %s" #: pan/gui/post-ui.cc:285 pan/gui/post-ui.cc:293 pan/gui/post-ui.cc:316 #: pan/gui/post-ui.cc:324 #, c-format msgid "Error setting spellchecker: %s" msgstr "Помилка при встановленні засобу перевірки правопису: %s" #: pan/gui/post-ui.cc:453 msgid "_Profile" msgstr "_Профіль" #: pan/gui/post-ui.cc:454 msgid "Set Editor" msgstr "Встановити редактор" #: pan/gui/post-ui.cc:456 msgid "_Send Article" msgstr "_Надіслати статтю" #: pan/gui/post-ui.cc:456 msgid "Send Article Now" msgstr "Надіслати статтю зараз" #: pan/gui/post-ui.cc:457 msgid "_Send and Save Articles to NZB" msgstr "_Надіслати і зберегти статті до NZB" #: pan/gui/post-ui.cc:457 msgid "Send and Save Articles to NZB" msgstr "Надіслати і зберегти статті до NZB" #: pan/gui/post-ui.cc:458 msgid "Set Character _Encoding..." msgstr "Встановити _кодування символів…" #: pan/gui/post-ui.cc:459 msgid "Set Content _Transfer Encoding..." msgstr "Встановити кодування си_мволів для передавання…" #: pan/gui/post-ui.cc:460 msgid "Sa_ve Draft" msgstr "З_берегти чернетку" #: pan/gui/post-ui.cc:460 msgid "Save as a Draft for Future Posting" msgstr "Зберегти як чернетку для наступного надсилання" #: pan/gui/post-ui.cc:461 msgid "_Open Draft..." msgstr "_Відкрити чернетку…" #: pan/gui/post-ui.cc:461 msgid "Open an Article Draft" msgstr "Відкрити чернетку статті" #: pan/gui/post-ui.cc:466 msgid "_Rot13" msgstr "_Rot13" #: pan/gui/post-ui.cc:466 msgid "Rot13 Selected Text" msgstr "Зашифрувати вибраний текст за допомогою ROT13" #: pan/gui/post-ui.cc:467 msgid "Run _Editor" msgstr "Запустити _редактор" #: pan/gui/post-ui.cc:467 msgid "Run Editor" msgstr "Запустити редактор" #: pan/gui/post-ui.cc:469 msgid "Add _Files to Queue" msgstr "Додати _файли до черги" #: pan/gui/post-ui.cc:469 msgid "Add Files to Queue" msgstr "Додати файли до черги" #: pan/gui/post-ui.cc:484 pan/gui/post-ui.cc:485 msgid "Remove from Queue" msgstr "Вилучити з черги" #: pan/gui/post-ui.cc:489 pan/gui/post-ui.cc:490 msgid "Clear List" msgstr "Спорожнити список" #: pan/gui/post-ui.cc:494 pan/gui/post-ui.cc:495 msgid "Select Needed Parts" msgstr "Виберіть потрібні частини" #: pan/gui/post-ui.cc:499 pan/gui/post-ui.cc:500 pan/gui/task-pane.cc:680 #: pan/gui/task-pane.cc:681 msgid "Move Up" msgstr "Пересунути вище" #: pan/gui/post-ui.cc:504 pan/gui/post-ui.cc:505 pan/gui/task-pane.cc:685 #: pan/gui/task-pane.cc:686 msgid "Move Down" msgstr "Пересунути нижче" #: pan/gui/post-ui.cc:509 pan/gui/post-ui.cc:510 msgid "Move to Top" msgstr "Пересунути на початок" #: pan/gui/post-ui.cc:514 pan/gui/post-ui.cc:515 msgid "Move to Bottom" msgstr "Пересунути у кінець" #: pan/gui/post-ui.cc:522 msgid "_Wrap Text" msgstr "_Переносити текст" #: pan/gui/post-ui.cc:522 msgid "Wrap Text" msgstr "Переносити рядки тексту" #: pan/gui/post-ui.cc:523 msgid "Always Run Editor" msgstr "Завжди запускати редактор" #: pan/gui/post-ui.cc:524 msgid "Remember Character Encoding for This Group" msgstr "Запам'ятати кодування символів для цієї групи" #: pan/gui/post-ui.cc:525 msgid "Thread Attached Replies" msgstr "Долучені до гілки відповіді" #: pan/gui/post-ui.cc:526 msgid "PGP-Encrypt the Article" msgstr "Зашифрувати статтю PGP" #: pan/gui/post-ui.cc:527 msgid "PGP-Sign the Article" msgstr "Підписати статтю PGP" #: pan/gui/post-ui.cc:528 msgid "Check _Spelling" msgstr "Перевірка _правопису" #: pan/gui/post-ui.cc:547 msgid "New Article's Encoding:" msgstr "Кодування нової статті:" #: pan/gui/post-ui.cc:557 msgid "Content Transfer Encoding" msgstr "Кодування при передаванні даних" #: pan/gui/post-ui.cc:558 msgid "New Article's Content Transfer Encoding:" msgstr "Кодування при передаванні даних нової статті:" #: pan/gui/post-ui.cc:742 msgid "Your changes will be lost!" msgstr "Внесені вами зміни буде втрачено!" #: pan/gui/post-ui.cc:743 msgid "Close this window and lose your changes?" msgstr "Закрити це вікно і відкинути внесені зміни?" #: pan/gui/post-ui.cc:788 pan/gui/post-ui.cc:827 msgid "There were problems with this post." msgstr "Із цією публікацією виникли проблеми." #: pan/gui/post-ui.cc:790 pan/gui/post-ui.cc:829 pan/gui/post-ui.cc:894 msgid "Go Back" msgstr "Назад" #: pan/gui/post-ui.cc:792 msgid "Continue Anyway" msgstr "Однаково продовжити" #. Prompt the user #: pan/gui/post-ui.cc:821 #, c-format msgid "" "Message uses characters not specified in charset '%s' - possibly use '%s' " msgstr "" "У повідомленні використано символи, яких немає у кодуванні «%s» — ймовірно, " "слід скористатися «%s» " #: pan/gui/post-ui.cc:844 msgid "Go _Online" msgstr "Увійти до _мережі" #: pan/gui/post-ui.cc:893 msgid "The file queue is empty, so no files can be saved." msgstr "Черга файлів порожня, тому жодного файла не може бути збережено." #: pan/gui/post-ui.cc:1073 msgid "IO Error" msgstr "Помилка введення-виведення" #: pan/gui/post-ui.cc:1073 msgid "No space left on device" msgstr "На пристрої не лишилося вільного місця" #: pan/gui/post-ui.cc:1074 #, c-format msgid "Error copying message to %s folder. Reason: %s" msgstr "Помилка під час копіювання повідомлення до теки %s. Причина: %s" #: pan/gui/post-ui.cc:1080 #, c-format msgid "Error creating message in %s mail folder: Invalid article." msgstr "" "Помилка під час спроби створити повідомлення у поштовій теці %s: некоректна " "стаття." #: pan/gui/post-ui.cc:1102 msgid "" "No posting server is set for this posting profile.\n" "Please edit the profile via Edit|Manage Posting Profiles." msgstr "" "Не встановлено сервера публікації для цього профілю.\n" "Будь ласка, виконайте редагування профілю за допомогою пункту меню «Зміни → " "Профілі публікації»." #: pan/gui/post-ui.cc:1107 msgid "" "The selected posting server is currently disabled. Please choose an " "appropriate alternative." msgstr "" "Вибраний сервер публікації зараз вимкнено. Будь ласка, виберіть відповідну " "альтернативу." #: pan/gui/post-ui.cc:1149 msgid "Pan is Offline." msgstr "«Pan» не в мережі." #: pan/gui/post-ui.cc:1150 msgid "Go online to post the article?" msgstr "Вийти до мережі для публікації статті?" #: pan/gui/post-ui.cc:1199 #, c-format msgid "" "Error signing/encrypting your message. Perhaps you misspelled your email " "address (%s)?" msgstr "" "Помилка під час підписування або шифрування вашого повідомлення. Можливо, ви " "неправильно вписали вашу адресу електронної пошти (%s)?" #: pan/gui/post-ui.cc:1349 msgid "Error opening temporary file" msgstr "Помилка під час спроби відкрити тимчасовий файл" #: pan/gui/post-ui.cc:1360 #, c-format msgid "Error creating temporary file: %s" msgstr "Помилка під час створення тимчасового файла: %s" #: pan/gui/post-ui.cc:1368 #, c-format msgid "Error writing article to temporary file: %s" msgstr "Збій запису статті у тимчасовий файл: %s" #: pan/gui/post-ui.cc:1441 msgid "Open Draft Article" msgstr "Відкриття чернетки статті" #: pan/gui/post-ui.cc:1683 msgid "Save Draft Article" msgstr "Збереження чернетки статті" #: pan/gui/post-ui.cc:1721 msgid "File already exists." msgstr "Файл вже існує." #: pan/gui/post-ui.cc:1722 msgid "Overwrite it?" msgstr "Перезаписати її?" #: pan/gui/post-ui.cc:1931 #, c-format msgid "Couldn't parse signature command \"%s\": %s" msgstr "Не вдалося обробити команду підписування «%s»: %s" #: pan/gui/post-ui.cc:1967 msgid "Couldn't convert signature to UTF-8." msgstr "Не вдалося перетворити підпис до UTF-8." #: pan/gui/post-ui.cc:2479 msgid "F_rom" msgstr "_Від" #: pan/gui/post-ui.cc:2496 msgid "_Subject" msgstr "_Тема" #: pan/gui/post-ui.cc:2509 msgid "_Newsgroups" msgstr "_Групи новин" #: pan/gui/post-ui.cc:2523 msgid "Mail _To" msgstr "Надіслати _до" #: pan/gui/post-ui.cc:2626 msgid "Delete from Queue" msgstr "Вилучити з черги" #: pan/gui/post-ui.cc:2639 msgid "No." msgstr "№" #: pan/gui/post-ui.cc:2643 pan/gui/post-ui.cc:2735 pan/gui/post-ui.cc:2776 msgid "Filename" msgstr "Назва файла" #: pan/gui/post-ui.cc:2645 msgid "Size (KB)" msgstr "Розмір (кБ)" #: pan/gui/post-ui.cc:2743 msgid "The current filename" msgstr "Поточна назва файла" #: pan/gui/post-ui.cc:2747 msgid "Subject Line" msgstr "Рядок теми" #: pan/gui/post-ui.cc:2755 msgid "The current subject line" msgstr "Поточний рядок теми" #: pan/gui/post-ui.cc:2769 msgid "No. " msgstr "№ " #: pan/gui/post-ui.cc:2773 msgid "Enable/Disable" msgstr "Увімкнути/Вимкнути" #: pan/gui/post-ui.cc:2807 msgid "Follo_wup-To" msgstr "Відп_овідь до" #. i18n: "poster" is a key used by many newsreaders. probably safest to keep this key in english. #: pan/gui/post-ui.cc:2816 msgid "" "The newsgroups where replies to your message should go. This is only needed " "if it differs from the \"Newsgroups\" header.\n" "\n" "To direct all replies to your email address, use \"Followup-To: poster\"" msgstr "" "Групи новин, до яких слід надсилати відповіді на ваше повідомлення. Слід " "вказувати, лише якщо це значення відрізняється від заголовка «Групи " "новин». \n" "\n" "Щоб спрямувати усі відповіді на вашу адресу електронної пошти, скористайтеся " "заголовком «Followup-To: poster»." #: pan/gui/post-ui.cc:2823 msgid "_Reply-To" msgstr "_Відповідати" #: pan/gui/post-ui.cc:2831 msgid "" "The email account where mail replies to your posted message should go. This " "is only needed if it differs from the \"From\" header." msgstr "" "Поштова адреса, куди мають приходити відповіді на ваше повідомлення. Має " "бути вказано, лише якщо адреса відрізняється від поля заголовку «Від»." #: pan/gui/post-ui.cc:2838 msgid "_Custom Headers" msgstr "_Нетипові заголовки" #: pan/gui/post-ui.cc:2862 msgid "Add \"_User-Agent\" header" msgstr "Додавати за_головок «User-Agent»" #: pan/gui/post-ui.cc:2869 msgid "Add \"Message-_ID\" header" msgstr "Д_одавати заголовок «Message-ID»" #: pan/gui/post-ui.cc:2997 msgid "Select Parts" msgstr "Вибір частин" #: pan/gui/post-ui.cc:3010 msgid "_Parts" msgstr "_Частини" #: pan/gui/post-ui.cc:3177 msgid "Post Article" msgstr "Надіслати статтю" #: pan/gui/post-ui.cc:3198 msgid "_Message" msgstr "П_овідомлення" #: pan/gui/post-ui.cc:3199 msgid "More _Headers" msgstr "Більше за_головків" #: pan/gui/post-ui.cc:3200 msgid "File _Queue" msgstr "_Черга файлів" #: pan/gui/post-ui.cc:3231 pan/gui/profiles-dialog.cc:490 #, no-c-format msgid "On %d, %n wrote:" msgstr "У %d, %n написав:" #: pan/gui/post-ui.cc:3260 msgid "Add files to queue" msgstr "Додати файли до черги" #: pan/gui/post-ui.cc:3336 msgid "Save Upload Queue as NZB File" msgstr "Збереження черги вивантажень як файла NZB" #: pan/gui/prefs.cc:366 #, c-format msgid "Couldn't parse %s color \"%s\"" msgstr "Не вдалося обробити колір %s «%s»" #: pan/gui/prefs-ui.cc:139 msgid "Grab Key" msgstr "Захоплення комбінації" #: pan/gui/prefs-ui.cc:145 #, c-format msgid "" "Press the combination of the keys\n" "you want to use for \"%s\"." msgstr "" "Натисніть комбінацію клавіш,\n" "якою ви хочете скористатися для дії «%s»." #: pan/gui/prefs-ui.cc:182 msgid "Edit Shortcut" msgstr "Редагування скорочення" #: pan/gui/prefs-ui.cc:243 msgid "Error: Shortcut key is invalid!" msgstr "Помилка: комбінація клавіш скорочення є некоректною!" #: pan/gui/prefs-ui.cc:259 msgid "Error: Shortcut key already exists!" msgstr "Помилка: таке скорочення вже існує!" #: pan/gui/prefs-ui.cc:593 msgid "Show only icons" msgstr "Показати лише піктограми" #: pan/gui/prefs-ui.cc:594 msgid "Show only text" msgstr "Показувати лише текст" #: pan/gui/prefs-ui.cc:595 msgid "Show icons and text" msgstr "Показувати піктограми і текст" #: pan/gui/prefs-ui.cc:634 msgid "Use GNOME Preferences" msgstr "Скористатися налаштуваннями GNOME" #: pan/gui/prefs-ui.cc:635 msgid "Use KDE Preferences" msgstr "Скористатися налаштуваннями KDE" #: pan/gui/prefs-ui.cc:636 msgid "Use OS X Preferences" msgstr "Скористатися налаштуваннями OS X" #: pan/gui/prefs-ui.cc:637 msgid "Use Windows Preferences" msgstr "Скористатися налаштуваннями Windows" #: pan/gui/prefs-ui.cc:638 msgid "Custom Command:" msgstr "Нетипова команда:" #: pan/gui/prefs-ui.cc:690 msgid "Disabled" msgstr "Вимкнено" #: pan/gui/prefs-ui.cc:691 msgid "Only new (score == 0)" msgstr "Лише нові (рейтинг == 0)" #: pan/gui/prefs-ui.cc:692 msgid "9999 or more" msgstr "9999 або більше" #: pan/gui/prefs-ui.cc:693 msgid "5000 to 9998" msgstr "від 5000 до 9998" #: pan/gui/prefs-ui.cc:694 msgid "1 to 4999" msgstr "від 1 до 4999" #: pan/gui/prefs-ui.cc:695 msgid "-9998 to -1" msgstr "від -9998 до -1" #: pan/gui/prefs-ui.cc:696 msgid "-9999 or less" msgstr "-9999 або менше" #: pan/gui/prefs-ui.cc:760 #, c-format msgid "" "Select default global character set. Current setting: %s." msgstr "" "Виберіть типове загальне кодування символів. Поточне кодування: " "%s." #: pan/gui/prefs-ui.cc:792 msgid "Global Character Set Settings" msgstr "Загальні параметри кодування символів" #: pan/gui/prefs-ui.cc:886 pan/gui/task-pane.cc:1067 msgid "State" msgstr "Стан" #: pan/gui/prefs-ui.cc:920 msgid "Enabled" msgstr "Увімкнено" #: pan/gui/prefs-ui.cc:924 msgid "Column Name" msgstr "Назва стовпчика" #: pan/gui/prefs-ui.cc:962 msgid "Pan: Preferences" msgstr "Pan: налаштування" #: pan/gui/prefs-ui.cc:977 msgid "Mouse" msgstr "Миша" #: pan/gui/prefs-ui.cc:979 msgid "Single-click activates, rather than selects, _groups" msgstr "Одинарне клацання активує, а не позначає _групи" #: pan/gui/prefs-ui.cc:981 msgid "Single-click activates, rather than selects, _articles" msgstr "Одинарне клацання активує, а не позначає с_татті" #: pan/gui/prefs-ui.cc:984 msgid "Groups" msgstr "Групи" #: pan/gui/prefs-ui.cc:986 msgid "Get new headers in subscribed groups on _startup" msgstr "Отримувати нові заголовки у підписаних групах при _запуску" #: pan/gui/prefs-ui.cc:988 msgid "Get new headers when _entering group" msgstr "Отримувати нові заголовки при в_ході до групи" #: pan/gui/prefs-ui.cc:990 msgid "Mark entire group _read when leaving group" msgstr "Позначати усю групу п_рочитаною при полишенні групи" #: pan/gui/prefs-ui.cc:992 msgid "Mark entire group read before getting _new headers" msgstr "Позначати усю групу прочитаною до _отримання нових заголовків" #: pan/gui/prefs-ui.cc:994 msgid "E_xpand all threads when entering group" msgstr "Роз_гортати усі гілки при вході до групи" #: pan/gui/prefs-ui.cc:999 msgid "Articles" msgstr "Статті" #: pan/gui/prefs-ui.cc:1001 msgid "Mark downloaded articles read" msgstr "Позначати отримані статті як прочитані" #: pan/gui/prefs-ui.cc:1003 msgid "Space selects next article rather than next unread" msgstr "Пробіл вибирає наступну статтю, а не наступну непрочитану статтю" #: pan/gui/prefs-ui.cc:1005 msgid "Expand threads upon selection" msgstr "Розгортати гілки при позначенні" #: pan/gui/prefs-ui.cc:1007 msgid "Always ask before deleting an article" msgstr "Завжди питати перед вилученням статті" #: pan/gui/prefs-ui.cc:1009 msgid "Smooth scrolling" msgstr "Плавне гортання" #: pan/gui/prefs-ui.cc:1014 msgid "Article Cache" msgstr "Кеш статей" #: pan/gui/prefs-ui.cc:1015 msgid "Clear article cache on shutdown" msgstr "Спорожняти кеш статей при вимиканні" #: pan/gui/prefs-ui.cc:1018 msgid "Size of article cache (in MiB):" msgstr "Розмір кешу статей (у МіБ):" #: pan/gui/prefs-ui.cc:1022 msgid "File extension for cached articles: " msgstr "Суфікс назв файлів кешованих статей: " #: pan/gui/prefs-ui.cc:1026 msgid "Tabs" msgstr "Вкладки" #: pan/gui/prefs-ui.cc:1031 msgid "_Behavior" msgstr "По_ведінка" #: pan/gui/prefs-ui.cc:1031 msgid "Behavior" msgstr "Поведінка" #: pan/gui/prefs-ui.cc:1037 msgid "Task Pane" msgstr "Панель завдань" #: pan/gui/prefs-ui.cc:1038 msgid "Show task pane popups" msgstr "Показувати контекстні панелі панелі завдань" #: pan/gui/prefs-ui.cc:1040 msgid "Show Download Meter" msgstr "Показувати лічильник отримання даних" #: pan/gui/prefs-ui.cc:1044 msgid "_Panes" msgstr "П_анелі" #: pan/gui/prefs-ui.cc:1044 msgid "Panes" msgstr "Панелі" #: pan/gui/prefs-ui.cc:1050 msgid "Language Settings" msgstr "Параметри мови" #: pan/gui/prefs-ui.cc:1051 #| msgid "Fonts" msgid "Font" msgstr "Шрифт" #. systray and notify popup #: pan/gui/prefs-ui.cc:1058 msgid "System Tray Behavior" msgstr "Поведінка у системному лотку" #: pan/gui/prefs-ui.cc:1060 msgid "Start Pan minimized" msgstr "Запускати «Pan» мінімізованим" #: pan/gui/prefs-ui.cc:1063 msgid "Show notifications" msgstr "Показувати сповіщення" #. allow multiple instances (seperate, not communicating with dbus) #: pan/gui/prefs-ui.cc:1068 msgid "Startup Behavior" msgstr "Поведінка при запуску" #: pan/gui/prefs-ui.cc:1070 msgid "Allow multiple instances of Pan" msgstr "Дозволити запуск декількох екземплярів «Pan»" #: pan/gui/prefs-ui.cc:1075 msgid "Autosave Article Draft" msgstr "Автозбереження чернетки статті" #: pan/gui/prefs-ui.cc:1077 msgid "Minutes to autosave the current Article Draft: " msgstr "Інтервал автозбереження поточної чернетки статті: " #: pan/gui/prefs-ui.cc:1082 msgid "Autosave Articles" msgstr "Автозбереження статей" #: pan/gui/prefs-ui.cc:1084 msgid "Minutes to autosave newsrc files: " msgstr "Інтервал автозбереження newsrc у хвилинах: " #: pan/gui/prefs-ui.cc:1091 msgid "Password Storage" msgstr "Сховище паролів" #: pan/gui/prefs-ui.cc:1093 msgid "Save passwords in password storage" msgstr "Зберігати паролі у сховищі паролів" #: pan/gui/prefs-ui.cc:1100 msgid "_Miscellaneous" msgstr "_Інше" #: pan/gui/prefs-ui.cc:1100 msgid "Miscellaneous" msgstr "Інше" #: pan/gui/prefs-ui.cc:1105 msgid "Pane Layout" msgstr "Розташування панелей" #: pan/gui/prefs-ui.cc:1124 msgid "1=Groups, 2=Headers, 3=Body" msgstr "1=Групи, 2=Заголовки, 3=Вміст" #: pan/gui/prefs-ui.cc:1126 msgid "1=Groups, 2=Body, 3=Headers" msgstr "1=Групи, 2=Вміст, 3=Заголовки" #: pan/gui/prefs-ui.cc:1128 msgid "1=Headers, 2=Groups, 3=Body" msgstr "1=Заголовки, 2=Групи, 3=Вміст" #: pan/gui/prefs-ui.cc:1130 msgid "1=Headers, 2=Body, 3=Groups" msgstr "1=Заголовки, 2=Вміст, 3=Групи" #: pan/gui/prefs-ui.cc:1132 msgid "1=Body, 2=Groups, 3=Headers" msgstr "1=Вміст, 2=Групи, 3=Заголовки" #: pan/gui/prefs-ui.cc:1134 msgid "1=Body, 2=Headers, 3=Groups" msgstr "1=Вміст, 2=Заголовки, 3=Групи" #: pan/gui/prefs-ui.cc:1138 msgid "Layout" msgstr "Компонування" #: pan/gui/prefs-ui.cc:1143 msgid "Header Pane Columns" msgstr "Стовпчики панелі заголовків" #: pan/gui/prefs-ui.cc:1147 msgid "_Headers" msgstr "За_головки" #: pan/gui/prefs-ui.cc:1147 msgid "Headers" msgstr "Заголовки" #: pan/gui/prefs-ui.cc:1153 msgid "" "This menu lets you configure Pan to take certain actions on your behalf " "automatically, based on an article's score." msgstr "" "За допомогою цього меню ви можете налаштувати «Pan» на виконання певних дій " "від вашого імені автоматично, на основі рейтингу статті." #: pan/gui/prefs-ui.cc:1158 msgid "Mark affected articles read" msgstr "Позначити відповідні статті як прочитані" #: pan/gui/prefs-ui.cc:1167 msgid "_Delete articles scoring at: " msgstr "Ви_лучати статті з рейтингом: " #: pan/gui/prefs-ui.cc:1173 msgid "Mark articles read scoring at: " msgstr "Позначати як прочитані статті з рейтингом:" #: pan/gui/prefs-ui.cc:1179 msgid "_Cache articles scoring at: " msgstr "_Кешувати статті з рейтингом: " #: pan/gui/prefs-ui.cc:1185 msgid "Download attachments of articles scoring at: " msgstr "Отримувати долучення до статей із рейтингами: " #: pan/gui/prefs-ui.cc:1188 msgid "Actions" msgstr "Дії" #: pan/gui/prefs-ui.cc:1193 pan/gui/prefs-ui.cc:1214 msgid "Fonts" msgstr "Шрифти" #: pan/gui/prefs-ui.cc:1195 msgid "Use custom font in Group Pane:" msgstr "Власний шрифт у панелі групи:" #: pan/gui/prefs-ui.cc:1200 msgid "Use custom font in Header Pane:" msgstr "Власний шрифт у панелі заголовків:" #: pan/gui/prefs-ui.cc:1205 msgid "Use custom font in Body Pane:" msgstr "Власний шрифт у панелі вмісту:" #: pan/gui/prefs-ui.cc:1210 msgid "Monospace font:" msgstr "Моноширинний шрифт:" #: pan/gui/prefs-ui.cc:1214 msgid "_Fonts" msgstr "Ш_рифти" #: pan/gui/prefs-ui.cc:1223 msgid "Header Pane" msgstr "Панель заголовків" #: pan/gui/prefs-ui.cc:1226 pan/gui/prefs-ui.cc:1232 pan/gui/prefs-ui.cc:1238 #: pan/gui/prefs-ui.cc:1244 pan/gui/prefs-ui.cc:1250 pan/gui/prefs-ui.cc:1256 #: pan/gui/prefs-ui.cc:1265 pan/gui/prefs-ui.cc:1271 pan/gui/prefs-ui.cc:1277 #: pan/gui/prefs-ui.cc:1283 pan/gui/prefs-ui.cc:1289 pan/gui/prefs-ui.cc:1299 #: pan/gui/prefs-ui.cc:1309 msgid "Text:" msgstr "Текст:" #: pan/gui/prefs-ui.cc:1228 pan/gui/prefs-ui.cc:1234 pan/gui/prefs-ui.cc:1240 #: pan/gui/prefs-ui.cc:1246 pan/gui/prefs-ui.cc:1252 pan/gui/prefs-ui.cc:1258 #: pan/gui/prefs-ui.cc:1267 pan/gui/prefs-ui.cc:1273 pan/gui/prefs-ui.cc:1279 #: pan/gui/prefs-ui.cc:1285 pan/gui/prefs-ui.cc:1291 pan/gui/prefs-ui.cc:1301 #: pan/gui/prefs-ui.cc:1311 msgid "Background:" msgstr "Тло:" #: pan/gui/prefs-ui.cc:1230 msgid "Scores of 9999 or more:" msgstr "Рейтинги 9999 і більше:" #: pan/gui/prefs-ui.cc:1236 msgid "Scores from 5000 to 9998:" msgstr "Рейтинги від 5000 до 9998:" #: pan/gui/prefs-ui.cc:1242 msgid "Scores from 1 to 4999:" msgstr "Рейтинги від 1 до 4999:" #: pan/gui/prefs-ui.cc:1248 msgid "Scores from -9998 to -1:" msgstr "Рейтинги від -9998 до -1:" #: pan/gui/prefs-ui.cc:1254 msgid "Scores of -9999 or less:" msgstr "Рейтинги -9999 і менше:" #: pan/gui/prefs-ui.cc:1260 msgid "Collapsed thread with unread articles:" msgstr "Згорнута гілка із непрочитаними статтями:" #: pan/gui/prefs-ui.cc:1262 msgid "Body Pane" msgstr "Панель вмісту" #: pan/gui/prefs-ui.cc:1269 msgid "First level of quoted text:" msgstr "Перший рівень цитування тексту:" #: pan/gui/prefs-ui.cc:1275 msgid "Second level of quoted text:" msgstr "Другий рівень цитування тексту:" #: pan/gui/prefs-ui.cc:1281 msgid "Third level of quoted text:" msgstr "Третій рівень цитування тексту:" #. #: pan/gui/prefs-ui.cc:1287 msgid "URL:" msgstr "Адреса:" #. #: pan/gui/prefs-ui.cc:1293 msgid "Signature:" msgstr "Підпис:" #: pan/gui/prefs-ui.cc:1296 msgid "Group Pane" msgstr "Панель груп" #. #: pan/gui/prefs-ui.cc:1303 msgid "Group Color:" msgstr "Колір групи:" #: pan/gui/prefs-ui.cc:1307 msgid "Other Text" msgstr "Інший текст" #: pan/gui/prefs-ui.cc:1313 msgid "Text Color:" msgstr "Колір тексту:" #: pan/gui/prefs-ui.cc:1316 msgid "_Colors" msgstr "_Колір" #: pan/gui/prefs-ui.cc:1316 msgid "Colors" msgstr "Кольори" #: pan/gui/prefs-ui.cc:1321 msgid "Preferred Applications" msgstr "Бажані програми" #: pan/gui/prefs-ui.cc:1325 msgid "_Web browser:" msgstr "Переглядач _інтернету:" #: pan/gui/prefs-ui.cc:1328 msgid "_Gemini client:" msgstr "_Клієнт Gemini:" #: pan/gui/prefs-ui.cc:1331 msgid "_Mail reader:" msgstr "_Читання пошти:" #: pan/gui/prefs-ui.cc:1333 msgid "_Text editor:" msgstr "Редактор _тексту:" #: pan/gui/prefs-ui.cc:1335 msgid "_HTML previewer:" msgstr "П_опередній перегляд HTML:" #: pan/gui/prefs-ui.cc:1337 msgid "_Applications" msgstr "_Програми" #: pan/gui/prefs-ui.cc:1337 msgid "Applications" msgstr "Програми" #: pan/gui/prefs-ui.cc:1342 pan/gui/task-pane.cc:555 msgid "Encoding" msgstr "Кодування" #: pan/gui/prefs-ui.cc:1346 msgid "Default bytes per file (for encoder): " msgstr "Типова кількість байтів на файл (для кодувальника): " #: pan/gui/prefs-ui.cc:1351 msgid "_Upload" msgstr "_Вивантажити" #: pan/gui/prefs-ui.cc:1351 msgid "Upload" msgstr "Вивантажити" #: pan/gui/prefs-ui.cc:1360 msgid "_Shortcuts" msgstr "С_корочення" #: pan/gui/prefs-ui.cc:1360 msgid "Shortcuts" msgstr "Скорочення" #: pan/gui/profiles-dialog.cc:83 msgid "Please choose your email address according to your PGP key's user id." msgstr "" "Будь ласка, виберіть вашу адресу електронної пошти відповідно до " "ідентифікатора користувача ключа PGP." #: pan/gui/profiles-dialog.cc:131 msgid "Posting Profile" msgstr "Профіль публікації" #: pan/gui/profiles-dialog.cc:143 msgid "Profile Information" msgstr "Інформація про профіль" #: pan/gui/profiles-dialog.cc:147 msgid "_Profile Name:" msgstr "Назва п_рофілю:" #: pan/gui/profiles-dialog.cc:150 msgid "Required Information" msgstr "Обов'язкова інформація" #: pan/gui/profiles-dialog.cc:154 msgid "_Full Name:" msgstr "Повне _ім'я:" #: pan/gui/profiles-dialog.cc:158 msgid "" "Your email address.\n" "Note that this has to match your PGP signature's address\n" "if you want your messages to be PGP-signed or encrypted correctly." msgstr "" "Ваша адреса електронної пошти.\n" "Зауважте, що ця адреса має збігатися із адресою у вашому підписі PGP,\n" "якщо ви хочете, щоб ваші повідомлення було підписано PGP або зашифровано " "належним чином." #: pan/gui/profiles-dialog.cc:162 msgid "_Email Address:" msgstr "_Електронна адреса:" #: pan/gui/profiles-dialog.cc:164 msgid "_Post Articles via:" msgstr "_Публікувати статті через:" #: pan/gui/profiles-dialog.cc:167 msgid "Signature" msgstr "Підпис" #: pan/gui/profiles-dialog.cc:170 msgid "_Use a Signature" msgstr "С_користатися підписом" #: pan/gui/profiles-dialog.cc:174 msgid "Signature File" msgstr "Файл підпису" #: pan/gui/profiles-dialog.cc:184 msgid "Text File" msgstr "Текстовий файл" #: pan/gui/profiles-dialog.cc:186 msgid "Text" msgstr "Текст" #: pan/gui/profiles-dialog.cc:188 msgid "Command" msgstr "Команда" #: pan/gui/profiles-dialog.cc:191 msgid "PGP Signature" msgstr "Підпис PGP" #: pan/gui/profiles-dialog.cc:196 msgid "Signature Type: " msgstr "Тип підпису: " #: pan/gui/profiles-dialog.cc:227 msgid "Avatars" msgstr "Аватари" #: pan/gui/profiles-dialog.cc:230 msgid "" "You can add an avatar icon to your articles with a Base64-encoded PNG.\n" "Add the Base64-encoded picture without the trailing “Face:”." msgstr "" "Ви можете додати до ваших статей піктограму аватара, скориставшись PNG у " "кодуванні Base64.\n" "Додайте малюнок у кодуванні Base64 без «Face:»." #: pan/gui/profiles-dialog.cc:232 msgid "_Face:" msgstr "_Обличчя:" #: pan/gui/profiles-dialog.cc:236 msgid "" "You can add an avatar icon to your articles with a unique X-Face code.\n" "Add the code without the trailing \"X-Face:\" \n" " if it was generated by a helper program (for example http://www.dairiki.org/" "xface/xface.php)." msgstr "" "Ви можете додати піктограму-аватар до ваших статей за допомогою унікального " "коду X-Face.\n" "Додайте код без завершального «X-Face:», \n" "якщо його було створено у допоміжній програмі (наприклад http://www.dairiki." "org/xface/xface.php)." #: pan/gui/profiles-dialog.cc:239 msgid "_X-Face:" msgstr "_X-Face:" #: pan/gui/profiles-dialog.cc:241 msgid "Optional Information" msgstr "Додаткова інформація" #: pan/gui/profiles-dialog.cc:246 msgid "" "When posting to Usenet, your article's Message-ID contains a domain name.\n" "You can set a custom domain name here, or leave it blank to let Pan use the " "domain name from your email address." msgstr "" "При надсиланні до Usenet, ідентифікатор Message-ID вашої статті містить " "назву домену.\n" "Ви можете вказати тут нетипову назву домену або лишити це поле порожнім, щоб " "«Pan» використала назву домену з вашої електронної адреси." #: pan/gui/profiles-dialog.cc:249 msgid "Message-ID _Domain Name:" msgstr "Домен для ідентифікатора повідомлення:" #: pan/gui/profiles-dialog.cc:253 #, c-format msgid "" "%i for Message-ID\n" "%a for Author and Address\n" "%n for Author name\n" "%d for Date" msgstr "" "%i для Message-ID\n" "%a для Автора та Адреси\n" "%n для імені Адреси\n" "%d для дати" #: pan/gui/profiles-dialog.cc:254 msgid "_Attribution:" msgstr "Пі_дпис:" #. Translators: Do not localize Reply-To and the quote marks in \"Your Name\". #: pan/gui/profiles-dialog.cc:279 msgid "" "Extra headers to be included in your articles, such as\n" "Reply-To: \"Your Name\" \n" "Organization: Your Organization\n" msgstr "" "Додаткові заголовки, які слід включити до ваших статей, зокрема\n" "Reply-To: \"Ваше ім'я\" \n" "Organization: Ваша організація\n" #: pan/gui/profiles-dialog.cc:289 msgid "E_xtra Headers:" msgstr "Д_одаткові заголовки:" #: pan/gui/profiles-dialog.cc:334 msgid "Invalid email address." msgstr "Некоректна адреса електронної пошти." #: pan/gui/profiles-dialog.cc:335 msgid "Please use an address of the form joe@somewhere.org" msgstr "Будь ласка, скористайтеся адресою у форматі ivan@ivanenko.org" #: pan/gui/profiles-dialog.cc:491 msgid "New Profile" msgstr "Новий профіль" #: pan/gui/profiles-dialog.cc:537 msgid "Posting Profiles" msgstr "Профілі публікації" #: pan/gui/profiles-dialog.cc:553 msgid "Profiles" msgstr "Профілі" #: pan/gui/save-attach-ui.cc:44 #, c-format msgid "" "%g - group as one directory (alt.binaries.pictures.trains)\n" "%G - group as nested directory (/alt/binaries/pictures/trains)\n" "%s - Subject line excerpt\n" "%S - Subject line\n" "%n - Poster display name\n" "%e - Poster email address\n" "%d - Article timestamp\n" "\"/home/user/News/Pan/%g\" becomes\n" "\"/home/user/News/Pan/alt.binaries.pictures.trains\", and\n" "\"/home/user/News/Pan/%G\" becomes\n" "\"/home/user/News/Pan/alt/binaries/pictures/trains\"," msgstr "" "%g — група у одному каталозі (alt.binaries.pictures.trains)\n" "%G — група у вкладених каталогах (/alt/binaries/pictures/trains)\n" "%s — частина рядка теми\n" "%S — рядок теми\n" "%n — ім'я для показу автора\n" "%e — адреса електронної пошти автора\n" "%d — часова позначка статті\n" "\"/home/user/News/Pan/%g\" стає\n" "\"/home/user/News/Pan/alt.binaries.pictures.trains\", та\n" "\"/home/user/News/Pan/%G\" стає\n" "\"/home/user/News/Pan/alt/binaries/pictures/trains\"," #: pan/gui/save-attach-ui.cc:196 pan/gui/save-ui.cc:216 msgid "Add to the queue sorted by date posted" msgstr "Додати до черги з упорядкуванням за датою публікації" #: pan/gui/save-attach-ui.cc:197 pan/gui/save-ui.cc:217 msgid "Add to the front of the queue" msgstr "Додати на початок черги" #: pan/gui/save-attach-ui.cc:198 pan/gui/save-ui.cc:218 msgid "Add to the back of the queue" msgstr "Додати у кінець черги" #: pan/gui/save-attach-ui.cc:230 msgid "Pan: Save Attachments" msgstr "Pan: збереження долучень" #: pan/gui/save-attach-ui.cc:255 pan/gui/save-attach-ui.cc:273 #: pan/gui/save-ui.cc:270 pan/gui/save-ui.cc:291 msgid "_Location:" msgstr "_Розташування:" #: pan/gui/save-attach-ui.cc:259 pan/gui/save-ui.cc:274 msgid "Save Articles" msgstr "Зберегти статті" #: pan/gui/save-attach-ui.cc:276 pan/gui/save-ui.cc:294 #, c-format msgid "_Group's path: %s" msgstr "_Шлях групи: %s" #: pan/gui/save-attach-ui.cc:287 pan/gui/save-ui.cc:309 msgid "_Priority:" msgstr "_Пріоритет:" #: pan/gui/save-ui.cc:44 #, c-format msgid "" "%g - group as one directory (alt.binaries.pictures.trains)\n" "%G - group as nested directory (/alt/binaries/pictures/trains)\n" "%s - subject line excerpt\n" "%S - subject line\n" "%n - Poster display name\n" "%e - Poster email address\n" "%d - Article timestamp\n" " \n" "\"/home/user/News/Pan/%g\" becomes\n" "\"/home/user/News/Pan/alt.binaries.pictures.trains\", and\n" "\"/home/user/News/Pan/%G\" becomes\n" "\"/home/user/News/Pan/alt/binaries/pictures/trains\"," msgstr "" "%g — група у одному каталозі (alt.binaries.pictures.trains)\n" "%G — група у вкладених каталогах (/alt/binaries/pictures/trains)\n" "%s — частина рядка теми\n" "%S — рядок теми\n" "%n — ім'я для показу автора\n" "%e — адреса електронної пошти автора\n" "%d — часова позначка статті\n" " \n" "\"/home/user/News/Pan/%g\" стає\n" "\"/home/user/News/Pan/alt.binaries.pictures.trains\", та\n" "\"/home/user/News/Pan/%G\" стає\n" "\"/home/user/News/Pan/alt/binaries/pictures/trains\"," #: pan/gui/save-ui.cc:207 msgid "Save attachments" msgstr "Зберегти долучення" #: pan/gui/save-ui.cc:208 msgid "Save text" msgstr "Зберегти текст" #: pan/gui/save-ui.cc:209 msgid "Save attachments and text" msgstr "Зберегти долучення і текст" #: pan/gui/save-ui.cc:245 msgid "Pan: Save Articles" msgstr "Pan: збереження статей" #: pan/gui/save-ui.cc:305 msgid "_Action:" msgstr "_Дія:" #: pan/gui/score-add-ui.cc:89 msgid "is more than" msgstr "є більшим за" #: pan/gui/score-add-ui.cc:90 msgid "is at most" msgstr "є принаймні" #: pan/gui/score-add-ui.cc:112 msgid "increase the article's score by" msgstr "збільшити рейтинг статті на" #: pan/gui/score-add-ui.cc:113 msgid "decrease the article's score by" msgstr "зменшити рейтинг статті на" #: pan/gui/score-add-ui.cc:114 msgid "set the article's score to" msgstr "встановити рейтинг статті у" #: pan/gui/score-add-ui.cc:115 msgid "watch the article (set its score to 9999)" msgstr "очікувати статтю (встановити рейтинг у 9999)" #: pan/gui/score-add-ui.cc:116 msgid "ignore the article (set its score to -9999)" msgstr "ігнорувати статтю (встановити її оцінку у -9999)" #: pan/gui/score-add-ui.cc:141 msgid "References" msgstr "Посилання" #: pan/gui/score-add-ui.cc:142 msgid "Line Count" msgstr "Кількість рядків" #: pan/gui/score-add-ui.cc:143 msgid "Byte Count" msgstr "Кількість байтів" #: pan/gui/score-add-ui.cc:144 msgid "Crosspost Group Count" msgstr "Лічильник перехресного публікування у групах" #: pan/gui/score-add-ui.cc:145 msgid "Age (in days)" msgstr "Вік (у днях)" #: pan/gui/score-add-ui.cc:167 msgid "for the next month" msgstr "на наступний місяць" #: pan/gui/score-add-ui.cc:168 msgid "for the next six months" msgstr "на наступні шість місяців" #: pan/gui/score-add-ui.cc:169 msgid "forever" msgstr "назавжди" #: pan/gui/score-add-ui.cc:194 msgid "contains" msgstr "містить" #: pan/gui/score-add-ui.cc:195 msgid "doesn't contain" msgstr "не містить" #: pan/gui/score-add-ui.cc:196 msgid "is" msgstr "є" #: pan/gui/score-add-ui.cc:197 msgid "isn't" msgstr "не є" #: pan/gui/score-add-ui.cc:198 msgid "starts with" msgstr "починається з" #: pan/gui/score-add-ui.cc:199 msgid "ends with" msgstr "закінчується на" #: pan/gui/score-add-ui.cc:200 msgid "matches regex" msgstr "відповідає формальному виразу" #: pan/gui/score-add-ui.cc:481 msgid "Another rule already sets this article's score." msgstr "Для рейтингу цієї статті вже встановлено інше правило." #: pan/gui/score-add-ui.cc:482 msgid "You may want to go back or delete the old rule." msgstr "Вам варто повернутися або вилучити старе правило." #: pan/gui/score-add-ui.cc:484 msgid "Back" msgstr "Назад" #: pan/gui/score-add-ui.cc:485 pan/gui/task-pane.cc:1040 msgid "Delete" msgstr "Вилучити" #: pan/gui/score-add-ui.cc:486 pan/gui/score-add-ui.cc:607 #: pan/gui/score-view-ui.cc:207 msgid "Add" msgstr "Додати" #: pan/gui/score-add-ui.cc:553 msgid "Add and Re_score" msgstr "Додати та пере_обчислити" #: pan/gui/score-add-ui.cc:602 pan/gui/score-add-ui.cc:622 msgid "New Scoring Rule" msgstr "Нове правило оцінки" #: pan/gui/score-add-ui.cc:633 msgid "Group name" msgstr "Назва групи" #: pan/gui/score-add-ui.cc:640 msgid "and" msgstr "і" #: pan/gui/score-view-ui.cc:55 msgid "Close and Re_score" msgstr "Закрити та переобчислити" #: pan/gui/score-view-ui.cc:153 #, c-format msgid "File %s, Lines %d - %d" msgstr "Файл %s, рядки %d-%d" #: pan/gui/score-view-ui.cc:181 msgid "Pan: Article's Scores" msgstr "Pan: рейтинги статті" #: pan/gui/score-view-ui.cc:212 msgid "New Score" msgstr "Нова оцінка" #: pan/gui/score-view-ui.cc:217 msgid "Criteria" msgstr "Критерій" #: pan/gui/score-view-ui.cc:240 msgid "Add a New Scoring Rule" msgstr "Додати нове правило оцінки" #: pan/gui/score-view-ui.cc:247 msgid "Remove the Selected Scoring Rule" msgstr "Вилучити позначене правило оцінки" #: pan/gui/server-ui.cc:292 msgid "Please specify the server's address." msgstr "Будь ласка, вкажіть адресу сервера." #: pan/gui/server-ui.cc:344 msgid "Import SSL Certificate (PEM Format) From File" msgstr "Імпортувати сертифікат SSL (у форматі PEM) з файла" #. create the dialog #: pan/gui/server-ui.cc:381 pan/gui/server-ui.cc:996 msgid "Add a Server" msgstr "Додати сервер" #: pan/gui/server-ui.cc:381 pan/gui/server-ui.cc:1002 msgid "Edit a Server's Settings" msgstr "Редагувати параметри сервера" #: pan/gui/server-ui.cc:401 msgid "Location" msgstr "Розташування" #: pan/gui/server-ui.cc:405 msgid "The news server's actual address, e.g. \"news.mynewsserver.com\"." msgstr "Фактична адреса сервера новин, наприклад «news.mynewsserver.com»." #: pan/gui/server-ui.cc:406 msgid "_Address:" msgstr "_Адреса:" #: pan/gui/server-ui.cc:411 msgid "" "The news server's port number. Typically 119 for unencrypted and 563 for " "encrypted connections (SSL/TLS)." msgstr "" "Номер порту сервера. Типовим є 119 для нешифрованих і 563 для шифрованих " "з'єднань (SSL/TLS)." #: pan/gui/server-ui.cc:412 msgid "Por_t:" msgstr "Пор_т:" #: pan/gui/server-ui.cc:415 msgid "Login (if Required)" msgstr "Вхід (якщо потрібен)" #: pan/gui/server-ui.cc:419 msgid "_Username:" msgstr "_Користувач:" #: pan/gui/server-ui.cc:420 msgid "" "The username to give the server when asked. If your server doesn't require " "authentication, you can leave this blank." msgstr "" "Ім'я користувача, яке слід надати серверу, якщо надійде запит. Якщо для " "доступу до вашого сервера розпізнавання непотрібне, можете не заповнювати це " "поле." #: pan/gui/server-ui.cc:424 msgid "_Password:" msgstr "_Пароль:" #: pan/gui/server-ui.cc:425 msgid "" "The password to give the server when asked. If your server doesn't require " "authentication, you can leave this blank." msgstr "" "Пароль, який слід надати серверу, якщо надійде запит. Якщо для доступу до " "вашого сервера розпізнавання непотрібне, можете не заповнювати це поле." #: pan/gui/server-ui.cc:428 msgid "Settings" msgstr "Параметри" #: pan/gui/server-ui.cc:435 msgid "Connection _Limit:" msgstr "_Ліміт з'єднання:" #: pan/gui/server-ui.cc:439 msgid "After Two Weeks" msgstr "Після двох тижнів" #: pan/gui/server-ui.cc:440 msgid "After One Month" msgstr "Після одного місяця" #: pan/gui/server-ui.cc:441 msgid "After Two Months" msgstr "Після двох місяців" #: pan/gui/server-ui.cc:442 msgid "After Three Months" msgstr "Після трьох місяців" #: pan/gui/server-ui.cc:443 msgid "After Six Months" msgstr "Після шести місяців" #: pan/gui/server-ui.cc:444 msgid "Never Expire Old Articles" msgstr "Ніколи не вважати статті застарілими" #: pan/gui/server-ui.cc:458 msgid "E_xpire Old Articles:" msgstr "Зас_тарівання статей:" #: pan/gui/server-ui.cc:462 msgid "Primary" msgstr "Основний" #: pan/gui/server-ui.cc:463 msgid "Fallback" msgstr "Резервний" #: pan/gui/server-ui.cc:477 msgid "Server Rank:" msgstr "Ранг сервера:" #: pan/gui/server-ui.cc:481 msgid "" "Fallback servers are used for articles that can't be found on the " "primaries. One common approach is to use free servers as primaries and " "subscription servers as fallbacks." msgstr "" "Резервні сервери використовуються для статей, які не може бути знайдено на " "основних серверах. Одним із типових підходів є використання вільних серверів " "як основних і серверів підписки як резервних." #: pan/gui/server-ui.cc:486 msgid "Disable Compression (N/A)" msgstr "Вимкнути стискання (н/д)" #: pan/gui/server-ui.cc:487 msgid "XZVER Compression (Astraweb)" msgstr "Стискання XZVER (Astraweb)" #: pan/gui/server-ui.cc:488 msgid "GZIP Compression (Giganews etc.)" msgstr "Стискання GZIP (Giganews тощо)" #: pan/gui/server-ui.cc:502 msgid "Header Compression:" msgstr "Стискання заголовків:" #: pan/gui/server-ui.cc:508 msgid "Security" msgstr "Безпека" #: pan/gui/server-ui.cc:513 msgid "Use Unsecure (Plaintext) Connections" msgstr "Використовувати незахищені (звичайні текстові) з'єднання" #: pan/gui/server-ui.cc:514 msgid "Use Secure SSL Connections" msgstr "Використовувати захищені з'єднання SSL" #: pan/gui/server-ui.cc:529 msgid "TLS (SSL) Settings:" msgstr "Параметри TLS (SSL):" #: pan/gui/server-ui.cc:534 msgid "" "You can enable/disable secure SSL/TLS connections here. If you enable SSL/" "TLS, your data is encrypted and secure. It is encouraged to enable SSL/TLS " "for privacy reasons." msgstr "" "Тут ви можете увімкнути або вимкнути захищені з'єднання SSL/TLS. Якщо ви " "увімкнете SSL/TLS, ваші дані буде зашифровано і захищено. Вам варто " "увімкнути SSL/TLS з міркувань захисту конфіденційності." #: pan/gui/server-ui.cc:539 msgid "Always trust this server's certificate" msgstr "Завжди довіряти цьому сертифікату сервера" #: pan/gui/server-ui.cc:724 #, c-format msgid "Really delete \"%s\"?" msgstr "Справді вилучити «%s»?" #: pan/gui/server-ui.cc:813 msgid "No information available." msgstr "Інформація недоступна." #: pan/gui/server-ui.cc:823 #, c-format msgid "Server Certificate for '%s'" msgstr "Сертифікат сервера для «%s»" #: pan/gui/server-ui.cc:922 #, c-format msgid "Really delete certificate for \"%s\"?" msgstr "Справді вилучити сертифікат для «%s»?" #. dialog #: pan/gui/server-ui.cc:949 pan/gui/server-ui.cc:970 pan/gui/server-ui.cc:1068 msgid "Servers" msgstr "Сервери" #: pan/gui/server-ui.cc:1009 msgid "Remove a Server" msgstr "Вилучити сервер" #. dialog #: pan/gui/server-ui.cc:1042 msgid "SSL Certificates" msgstr "Сертифікати SSL" #: pan/gui/server-ui.cc:1063 msgid "Certificates" msgstr "Сертифікати" #: pan/gui/server-ui.cc:1094 msgid "Import Certificate" msgstr "Імпортувати сертифікат" #: pan/gui/server-ui.cc:1100 msgid "Inspect Certificate" msgstr "Ревізія сертифіката" #: pan/gui/server-ui.cc:1107 msgid "Remove Certificate" msgstr "Вилучити сертифікат" #: pan/gui/task-pane.cc:124 #, c-format msgid "" "\n" "Upload\n" "\n" "Subject: \"%s\"\n" "From: %s\n" "Groups: %s\n" "Sourcefile: %s\n" msgstr "" "\n" "Вивантаження\n" "\n" "Тема: «%s»\n" "Від: %s\n" "Групи: %s\n" "Початковий файл: %s\n" #: pan/gui/task-pane.cc:136 #, c-format msgid "" "\n" "Download\n" "\n" "Subject: \"%s\"\n" "From: %s\n" "Date: %s\n" "Groups: %s\n" "Save Path: %s\n" msgstr "" "\n" "Отримання\n" "\n" "Тема: «%s»\n" "Від: %s\n" "Дата: %s\n" "Групи: %s\n" "Шлях збереження: %s\n" #: pan/gui/task-pane.cc:138 msgid "unknown" msgstr "невідомо" #: pan/gui/task-pane.cc:306 msgid "Choose New Destination for Selected Tasks" msgstr "Виберіть нове призначення для вибраних завдань" #: pan/gui/task-pane.cc:310 msgid "Save" msgstr "Зберегти" #: pan/gui/task-pane.cc:460 #, c-format msgid "Pan: Tasks (%d Queued, %d Running, %d Stopped)" msgstr "Pan: завдання (%d у черзі, %d виконується, %d зупинено)" #: pan/gui/task-pane.cc:462 #, c-format msgid "Pan: Tasks (%d Queued, %d Running)" msgstr "Pan: завдання (%d у черзі, %d виконується)" #: pan/gui/task-pane.cc:464 msgid "Pan: Tasks" msgstr "Pan: завдання" #: pan/gui/task-pane.cc:489 #, c-format msgid "%lu selected, %s" msgstr "Вибраних %lu, %s" #: pan/gui/task-pane.cc:553 msgid "Running" msgstr "Виконується" #: pan/gui/task-pane.cc:554 msgid "Decoding" msgstr "Декодування" #: pan/gui/task-pane.cc:556 msgid "Queued for Decode" msgstr "Заплановано для декодування" #: pan/gui/task-pane.cc:557 msgid "Queued for Encode" msgstr "Заплановано для кодування" #: pan/gui/task-pane.cc:558 msgid "Queued" msgstr "Поставлено в чергу" #: pan/gui/task-pane.cc:559 msgid "Stopped" msgstr "Зупинено" #: pan/gui/task-pane.cc:560 msgid "Removing" msgstr "Вилучаємо" #: pan/gui/task-pane.cc:589 #, c-format msgid "%d%% Done" msgstr "Виконано на %d%%" #: pan/gui/task-pane.cc:595 #, c-format msgid "%d:%02d:%02d Remaining (%d @ %lu KiB/s)" msgstr "Лишилося %d∶%02d∶%02d (%d при %lu КіБ/с)" #: pan/gui/task-pane.cc:690 pan/gui/task-pane.cc:691 msgid "Move To Top" msgstr "Пересунути на початок" #: pan/gui/task-pane.cc:695 pan/gui/task-pane.cc:696 msgid "Move To Bottom" msgstr "Пересунути у кінець" #: pan/gui/task-pane.cc:700 pan/gui/task-pane.cc:701 msgid "Show Task Information" msgstr "Показати відомості щодо завдання" #: pan/gui/task-pane.cc:705 pan/gui/task-pane.cc:706 msgid "Stop Task" msgstr "Зупинити завдання" #: pan/gui/task-pane.cc:710 pan/gui/task-pane.cc:711 msgid "Delete Task" msgstr "Вилучити завдання" #: pan/gui/task-pane.cc:715 pan/gui/task-pane.cc:716 msgid "Restart Task" msgstr "Перезапустити завдання" #: pan/gui/task-pane.cc:720 pan/gui/task-pane.cc:721 msgid "Change Download Destination" msgstr "Змінити теку призначення отримання даних" #: pan/gui/task-pane.cc:1016 msgid "_Online" msgstr "_У мережі" #: pan/gui/task-pane.cc:1026 msgid "Move up" msgstr "Пересунути вище" #: pan/gui/task-pane.cc:1027 msgid "Move task up" msgstr "Пересунути завдання вище" #: pan/gui/task-pane.cc:1028 msgid "Move to top" msgstr "Пересунути вверх" #: pan/gui/task-pane.cc:1029 msgid "Move task to top of the download queue" msgstr "Пересунути завдання на початок черги отримання" #: pan/gui/task-pane.cc:1031 msgid "Move down" msgstr "Пересунути нижче" #: pan/gui/task-pane.cc:1032 msgid "Move task down" msgstr "Пересунути завдання нижче" #: pan/gui/task-pane.cc:1033 msgid "Move to bottom" msgstr "Пересунути вниз" #: pan/gui/task-pane.cc:1034 msgid "Move task to the bottom of the download queue" msgstr "Пересунути завдання у кінець черги отримання" #: pan/gui/task-pane.cc:1036 msgid "Restart" msgstr "Перезапустити" #: pan/gui/task-pane.cc:1037 msgid "Restart Tasks" msgstr "Перезапустити завдання" #: pan/gui/task-pane.cc:1038 msgid "Stop" msgstr "Зупинити" #: pan/gui/task-pane.cc:1039 msgid "Stop Tasks" msgstr "Зупинити завдання" #: pan/gui/task-pane.cc:1041 msgid "Delete Tasks" msgstr "Вилучити завдання" #: pan/gui/task-pane.cc:1043 msgid "Close" msgstr "Закрити" #: pan/gui/task-pane.cc:1047 msgid "Show popups" msgstr "Показувати контекстні підказки" #: pan/gui/url.cc:143 #, c-format msgid "Error starting URL: %s (Command was: %s)" msgstr "Помилкова початкова адреса: %s (команда: %s)" #: pan/tasks/decoder.cc:124 #, c-format msgid "Couldn't save file \"%s\": %s" msgstr "Не вдалося зберегти файл «%s»: %s" #: pan/tasks/decoder.cc:146 pan/tasks/encoder.cc:146 msgid "Error initializing uulib" msgstr "Помилка під час ініціалізації uulib" #: pan/tasks/decoder.cc:166 pan/tasks/socket-impl-gio.cc:360 #: pan/tasks/socket-impl-openssl.cc:641 #, c-format msgid "Error reading from %s: %s" msgstr "Помилка читання з %s: %s" #: pan/tasks/decoder.cc:206 #, c-format msgid "Saved \"%s\"" msgstr "Збережено «%s»" #: pan/tasks/decoder.cc:213 #, c-format msgid "" "Error saving \"%s\":\n" "%s." msgstr "" "Помилка під час збереження «%s»:\n" "%s." #: pan/tasks/decoder.cc:326 pan/tasks/task-article.cc:351 #, c-format msgid "Decoding %s" msgstr "Декодування %s" #: pan/tasks/encoder.cc:113 pan/tasks/encoder.cc:164 #, c-format msgid "Error loading %s from cache." msgstr "Помилка завантаження %s з кешу." #: pan/tasks/encoder.cc:186 #, c-format msgid "Error encoding %s: %s" msgstr "Помилка кодування %s: %s" #: pan/tasks/encoder.cc:276 #, c-format msgid "Encoding %s" msgstr "Кодування %s" #: pan/tasks/nntp.cc:176 #, c-format msgid "%s requires a username, but none is set." msgstr "%s потребує імені користувача, але таке не встановлено." #: pan/tasks/nntp.cc:189 #, c-format msgid "%s requires a password, but none is set." msgstr "%s потребує пароля, але такий не встановлено." #: pan/tasks/nntp.cc:275 #, c-format msgid "Sending \"%s\" to %s returned an error: %s" msgstr "" "У результаті надсилання «%s» до %s повернуто повідомлення про помилку: %s" #: pan/tasks/nntp.cc:298 #, c-format msgid "Sending \"%s\" to %s returned an unrecognized response: \"%s\"" msgstr "" "У результаті надсилання «%s» на %s повернуто нерозпізнану відповідь: «%s»" #: pan/tasks/nntp-pool.cc:241 #, c-format msgid "Unable to connect to \"%s\"" msgstr "Не вдалося встановити з'єднання із «%s»" #: pan/tasks/queue.cc:778 pan/tasks/queue.cc:806 pan/tasks/queue.cc:833 msgid "No space left on device." msgstr "На пристрої не лишилося вільного місця." #: pan/tasks/socket-impl-gio.cc:173 pan/tasks/socket-impl-gio.cc:211 #: pan/tasks/socket-impl-openssl.cc:213 pan/tasks/socket-impl-openssl.cc:251 #, c-format msgid "Error connecting to \"%s\"" msgstr "Помилка під час встановлення з'єднання з «%s»" #: pan/tasks/socket-impl-gio.cc:359 pan/tasks/socket-impl-openssl.cc:640 msgid "Unknown Error" msgstr "Невідома помилка" #: pan/tasks/task-article.cc:59 pan/tasks/task-article.cc:157 #, c-format msgid "Saving %s" msgstr "Зберігається «%s»" #: pan/tasks/task-article.cc:61 #, c-format msgid "Reading %s" msgstr "Читання %s" #: pan/tasks/task-article.cc:323 #, c-format msgid "Article \"%s\" is incomplete -- the news server(s) don't have part %s" msgstr "Стаття «%s» є неповною — на серверах новин немає частини %s" #: pan/tasks/task-groups.cc:41 #, c-format msgid "Getting group list from \"%s\"" msgstr "Отримуємо список груп від «%s»" #: pan/tasks/task-groups.cc:134 #, c-format msgid "Fetched %lu Groups" msgstr "Отримано %lu груп" #: pan/tasks/task-post.cc:33 #, c-format msgid "Posting \"%s\"" msgstr "Публікуємо «%s»" #: pan/tasks/task-post.cc:74 #, c-format msgid "Posting of \"%s\" failed: %s" msgstr "Не вдалося опублікувати «%s»: %s" #: pan/tasks/task-post.cc:79 #, c-format msgid "Posting of \"%s\" successful: %s" msgstr "Успішне опублікування «%s»: %s" #: pan/tasks/task-upload.cc:55 #, c-format msgid "Uploading %s" msgstr "Вивантажуємо %s" #: pan/tasks/task-upload.cc:249 #, c-format msgid "Uploading %s - Part %d of %d" msgstr "Вивантажуємо %s — частина %d з %d" #: pan/tasks/task-upload.cc:251 #, c-format msgid "Uploading message body with subject \"%s\"" msgstr "Вивантажуємо вміст повідомлення із темою «%s»" #: pan/tasks/task-upload.cc:308 #, c-format msgid "Posting of file %s (part %d of %d) failed: No posts allowed by server." msgstr "" "Не вдалося опублікувати файл %s (частина %d з %d): публікації заборонено " "сервером." #: pan/tasks/task-upload.cc:317 #, c-format msgid "Posting of file %s (part %d of %d) failed: %s" msgstr "Не вдалося опублікувати файл %s (частина %d з %d): %s" #: pan/tasks/task-upload.cc:328 pan/tasks/task-upload.cc:335 #, c-format msgid "Posting of file %s (part %d of %d) successful: %s" msgstr "Успішне опублікування файла %s (частина %d з %d): %s" #: pan/tasks/task-upload.cc:345 #, c-format msgid "Posting of file %s successful: %s" msgstr "Успішне опублікування файла %s: %s" #: pan/tasks/task-upload.cc:349 #, c-format msgid "" "Posting of file %s not completely successful: Check the log (right-click " "list item)." msgstr "" "Надсилання файла %s не є повністю успішним: ознайомтеся із журналом " "(клацніть правою кнопкою на пункті у списку)." #: pan/tasks/task-upload.cc:368 #, c-format msgid "" "Posting of file %s not successful: Check the log (right-click list item)." msgstr "" "Надсилання файла %s не є успішним: ознайомтеся із журналом (клацніть правою " "кнопкою на пункті у списку)." #: pan/tasks/task-xover.cc:82 #, c-format msgid "Getting all headers for \"%s\"" msgstr "Отримання всіх заголовків для «%s»" #: pan/tasks/task-xover.cc:85 #, c-format msgid "Getting new headers for \"%s\"" msgstr "Отримання нових заголовків для «%s»" #. SAMPLE #: pan/tasks/task-xover.cc:89 #, c-format msgid "Sampling headers for \"%s\"" msgstr "Дискретизація заголовків для «%s»" #: pan/tasks/task-xover.cc:454 #, c-format msgid "%s (%lu parts, %lu articles)" msgstr "%s (%lu частин, %lu статей)" #: pan/tasks/task-xover.cc:528 #, c-format msgid "Getting new headers for \"%s\" done." msgstr "Отримання нових заголовків для «%s» завершено." #: pan/usenet-utils/filter-info.cc:215 msgid "article doesn't have attachments" msgstr "стаття не має долучень" #: pan/usenet-utils/filter-info.cc:219 msgid "the article has attachments" msgstr "стаття має долучення" #: pan/usenet-utils/filter-info.cc:223 msgid "the article isn't cached locally" msgstr "статтю не кешовано локально" #: pan/usenet-utils/filter-info.cc:227 msgid "the article is cached locally" msgstr "статтю кешовано локально" #: pan/usenet-utils/filter-info.cc:231 msgid "the article wasn't posted by you" msgstr "статтю не опубліковано вами" #: pan/usenet-utils/filter-info.cc:235 msgid "the article was posted by you" msgstr "статтю опубліковано вами" #: pan/usenet-utils/filter-info.cc:239 msgid "the article has been read" msgstr "статтю прочитано" #: pan/usenet-utils/filter-info.cc:243 msgid "the article hasn't been read" msgstr "статтю не прочитано" #: pan/usenet-utils/filter-info.cc:247 #, c-format msgid "the article is less than %ld bytes long" msgstr "стаття є меншою за %ld байтів" #: pan/usenet-utils/filter-info.cc:252 #, c-format msgid "the article is at least %ld bytes long" msgstr "стаття є не меншою за %ld байтів" #: pan/usenet-utils/filter-info.cc:257 #, c-format msgid "the article is less than %ld lines long" msgstr "стаття є меншою за %ld рядків" #: pan/usenet-utils/filter-info.cc:262 #, c-format msgid "the article is at least %ld lines long" msgstr "стаття є не меншою за %ld рядків" #: pan/usenet-utils/filter-info.cc:267 #, c-format msgid "the article is less than %ld days old" msgstr "вік статті є меншим за %ld днів" #: pan/usenet-utils/filter-info.cc:272 #, c-format msgid "the article is at least %ld days old" msgstr "вік статті є не меншим за %ld днів" #: pan/usenet-utils/filter-info.cc:277 #, c-format msgid "the article was posted to less than %ld groups" msgstr "статтю було опубліковано у менше за %ld групах" #: pan/usenet-utils/filter-info.cc:282 #, c-format msgid "the article was posted to at least %ld groups" msgstr "статтю було опубліковано у принаймні %ld групах" #: pan/usenet-utils/filter-info.cc:287 #, c-format msgid "the article's score is less than %ld" msgstr "рейтинг статті менший за %ld" #: pan/usenet-utils/filter-info.cc:292 #, c-format msgid "the article's score is %ld or higher" msgstr "рейтинг статті %ld або вищий" #: pan/usenet-utils/filter-info.cc:301 pan/usenet-utils/filter-info.cc:311 #, c-format msgid "%s doesn't contain \"%s\"" msgstr "%s не містить «%s»" #: pan/usenet-utils/filter-info.cc:302 pan/usenet-utils/filter-info.cc:312 #, c-format msgid "%s isn't \"%s\"" msgstr "%s не є «%s»" #: pan/usenet-utils/filter-info.cc:303 pan/usenet-utils/filter-info.cc:313 #, c-format msgid "%s doesn't begin with \"%s\"" msgstr "%s не починається з «%s»" #: pan/usenet-utils/filter-info.cc:304 pan/usenet-utils/filter-info.cc:314 #, c-format msgid "%s doesn't end with \"%s\"" msgstr "%s не завершується на «%s»" #: pan/usenet-utils/filter-info.cc:305 pan/usenet-utils/filter-info.cc:315 #, c-format msgid "%s doesn't match the regex \"%s\"" msgstr "%s не відповідає формальному виразу «%s»" #: pan/usenet-utils/filter-info.cc:327 #, c-format msgid "%s contains \"%s\"" msgstr "%s містить «%s»" #: pan/usenet-utils/filter-info.cc:328 #, c-format msgid "%s is \"%s\"" msgstr "%s є «%s»" #: pan/usenet-utils/filter-info.cc:329 #, c-format msgid "%s begins with \"%s\"" msgstr "%s починається з «%s»" #: pan/usenet-utils/filter-info.cc:330 #, c-format msgid "%s ends with \"%s\"" msgstr "%s завершується на «%s»" #: pan/usenet-utils/filter-info.cc:331 #, c-format msgid "%s matches the regex \"%s\"" msgstr "%s відповідає формальному виразу «%s»" #: pan/usenet-utils/filter-info.cc:337 msgid "Any of these tests fail:" msgstr "Якусь із цих перевірок не пройдено:" #: pan/usenet-utils/filter-info.cc:344 msgid "All of these tests pass:" msgstr "Усі ці перевірки пройдено:" #: pan/usenet-utils/filter-info.cc:351 msgid "None of these tests pass:" msgstr "Жодну з цих перевірок не пройдено:" #: pan/usenet-utils/filter-info.cc:358 msgid "Any of these tests pass:" msgstr "Будь-яку з цих перевірок пройдено:" #: pan/usenet-utils/gnksa.cc:880 #, c-format msgid "No email address provided; generating message-id with domain \"%s\"" msgstr "" "Не вказано електронної адреси; ідентифікатор повідомлення генерується з " "домену «%s»" #: pan/usenet-utils/message-check.cc:122 msgid "Warning: Reply seems to be top-posted." msgstr "Попередження: схоже, що відповідь розташовано над дописом." #: pan/usenet-utils/message-check.cc:143 msgid "Warning: The signature marker should be \"-- \", not \"--\"." msgstr "Попередження: маркером підпису має бути «-- », а не «--»." #: pan/usenet-utils/message-check.cc:160 msgid "Warning: Signature prefix with no signature." msgstr "Попередження: префікс підпису без підпису." #: pan/usenet-utils/message-check.cc:165 msgid "Warning: Signature is more than 4 lines long." msgstr "Попередження: розмір підпису перевищує 4 рядки." #: pan/usenet-utils/message-check.cc:170 msgid "Warning: Signature is more than 80 characters wide." msgstr "Попередження: розмір підпису перевищує 80 символів у ширину." #: pan/usenet-utils/message-check.cc:196 #, c-format msgid "Warning: %d line is more than 80 characters wide." msgid_plural "Warning: %d lines are more than 80 characters wide." msgstr[0] "Попередження: %d рядок має ширину більше вісімдесяти символів." msgstr[1] "Попередження: %d рядки мають ширину більше вісімдесяти символів." msgstr[2] "Попередження: %d рядків мають ширину більше вісімдесяти символів." msgstr[3] "Попередження: один рядок має ширину більше вісімдесяти символів." #: pan/usenet-utils/message-check.cc:221 msgid "Error: Message is empty." msgstr "Помилка: повідомлення порожнє." #: pan/usenet-utils/message-check.cc:256 msgid "Warning: The message is entirely quoted text!" msgstr "Попередження: повідомлення містить лише процитований текст!" #: pan/usenet-utils/message-check.cc:257 msgid "Warning: The message is mostly quoted text." msgstr "Попередження: повідомлення головним чином містить процитований текст." #: pan/usenet-utils/message-check.cc:307 msgid "Error: Message appears to have no new content." msgstr "Помилка: Схоже, що повідомлення не має нового вмісту." #: pan/usenet-utils/message-check.cc:342 pan/usenet-utils/message-check.cc:381 #, c-format msgid "" "Warning: The posting profile's server doesn't carry newsgroup\n" "\t\"%s\".\n" "\tIf the group name is correct, switch profiles in the \"From:\"\n" "\tline or edit the profile with \"Edit|Manage Posting Profiles\"." msgstr "" "Попередження: сервер профілю для дописів не містить групи новин\n" "\t«%s».\n" "\tЯкщо назву групи вказано правильно, перемкніть профілі у рядку\n" "\t«Від:» або внесіть зміни до профілю за допомогою пункту «Зміни → Профілі " "публікації»." #: pan/usenet-utils/message-check.cc:353 msgid "Warning: Following-Up to too many groups." msgstr "Попередження: відповідь у надто велику кількість груп." #: pan/usenet-utils/message-check.cc:364 msgid "Error: No Subject specified." msgstr "Помилка: Не вказано теми." #: pan/usenet-utils/message-check.cc:393 #, c-format msgid "Warning: Group \"%s\" is read-only." msgstr "Попередження: групу «%s» призначено лише для читання." #: pan/usenet-utils/message-check.cc:402 msgid "Error: Posting to a very large number of groups." msgstr "Помилка: опублікування у дуже великій кількості груп." #: pan/usenet-utils/message-check.cc:407 msgid "Warning: Posting to a large number of groups." msgstr "Попередження: опублікування у великій кількості груп." #: pan/usenet-utils/message-check.cc:414 msgid "Warning: Crossposting without setting Followup-To header." msgstr "" "Попередження: перехресна публікація без встановлення заголовка «Followup-To»." #: pan/usenet-utils/message-check.cc:439 msgid "Error: Bad email address." msgstr "Помилка: некоректна адреса електронної пошти." #: pan/usenet-utils/message-check.cc:448 msgid "Warning: Most newsgroups frown upon HTML posts." msgstr "Попередження: у більшості груп новин не вітають публікації у HTML." #: pan/usenet-utils/message-check.cc:484 msgid "Error: No Recipients." msgstr "Помилка: немає отримувачів." #: pan/usenet-utils/scorefile.cc:310 #, c-format msgid "Error reading score in %*.*s, line %d: unexpected line." msgstr "" "Помилка під час читання рейтингу у %*.*s, рядок %d: неочікуваний рядок." #: pan/usenet-utils/scorefile.cc:442 #, c-format msgid "" "Error reading score in %*.*s, line %d: expected 'Expires: MM/DD/YYYY' or " "'Expires: DD-MM-YYYY'." msgstr "" "Помилка під час читання рейтингу у %*.*s, рядок %d: мало бути «Expires: ММ/" "ДД/РРРР» або «Expires: ДД-ММ-РРРР»" #: pan/usenet-utils/scorefile.cc:452 #, c-format msgid "Expired old score from %*.*s, line %d" msgstr "Застарілий рейтинг від %*.*s, рядок %d" #: pan/usenet-utils/scorefile.cc:589 #, c-format msgid "Read %lu scoring rules in %lu sections from \"%s\"" msgstr "Читання %lu правил оцінювання у %lu розділах з «%s»" #: pan/usenet-utils/ssl-utils.cc:172 #, c-format msgid "Error printing the server certificate for '%s'" msgstr "Помилка під час друку сертифіката сервера для «%s»" #: pan/usenet-utils/ssl-utils.cc:191 #, c-format msgid "" "The current server '%s' sent this security certificate:\n" "\n" msgstr "" "Поточним сервером «%s» надіслано цей сертифікат захисту:\n" "\n" #: pan/usenet-utils/ssl-utils.cc:197 #, c-format msgid "" "Certificate information for server '%s':\n" "\n" msgstr "" "Відомості щодо сертифікат з сервера «%s»:\n" "\n" #: pan/usenet-utils/ssl-utils.cc:202 #, c-format msgid "" "%sIssuer information:\n" "%s\n" "Valid until: %s\n" "\n" "Not valid before: %s\n" "\n" msgstr "" "%sІнформація щодо видавця:\n" "%s\n" "Граничний строк чинності: %s\n" "\n" "Набуття чинності: %s\n" "\n" #: pan/usenet-utils/text-massager.cc:397 msgid "> [quoted text muted]" msgstr "> [цитований текст вилучено]" #: pan/usenet-utils/text-massager.cc:579 msgid "no_name" msgstr "без_назви" #: pan/usenet-utils/text-massager.cc:580 msgid "no_mail" msgstr "без_пошти" #~ msgid "Toggle on/offline" #~ msgstr "У мережі/Автономний режим" #~ msgid "Minimize to tray" #~ msgstr "Мінімізувати до лотка" #, c-format #~ msgid "There seems to be no password set for server %s." #~ msgstr "Здається, для сервера %s не встановлено пароля." #~ msgid "GNOME Keyring denied access to the passwords." #~ msgstr "Зв'язка ключів GNOME заборонила доступ до паролів." #~ msgid "_Tip Jar..." #~ msgstr "_Набір підказок…" #, c-format #~ msgid "Getting header counts for \"%s\"" #~ msgstr "Отримуємо кількість заголовків для «%s»" #~ msgid "X-Face (Avatar)" #~ msgstr "X-Face (аватар)" #~ msgid "_Save Articles…" #~ msgstr "З_берегти статті…" #~ msgid "Save Articles…" #~ msgstr "Зберегти статті…" #~ msgid "Save Articles from Selected _NZB…" #~ msgstr "Збереження статей з вибр_аного NZB…" #~ msgid "Save Articles to an NZB _File…" #~ msgstr "Зберегти статті до _файла NZB…" #~ msgid "_Import NZB Files…" #~ msgstr "_Імпортувати файли NZB…" #~ msgid "isn’t" #~ msgstr "не є" #~ msgid "Posting of “%s” successful: %s" #~ msgstr "Успішне опублікування «%s»: %s" #~ msgid "the article isn’t cached locally" #~ msgstr "статтю не кешовано локально" #~ msgid "the article wasn’t posted by you" #~ msgstr "статтю опубліковано не вами" #~ msgid "the article hasn’t been read" #~ msgstr "статтю не прочитано" pan-0.162/po/vi.po000066400000000000000000002743741475412772400137320ustar00rootroot00000000000000# Vietnamese translation for pan2. # Copyright © 2007 Free Software Foundation, Inc. # Clytie Siddall , 2006-2007. # msgid "" msgstr "" "Project-Id-Version: pan2 HEAD\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-04-04 20:58+0200\n" "PO-Revision-Date: 2007-07-01 21:08+0930\n" "Last-Translator: Clytie Siddall \n" "Language-Team: Vietnamese \n" "Language: vi\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: LocFactoryEditor 1.6.4a6\n" #: ../pan.desktop.in.h:1 msgid "Pan Newsreader" msgstr "Bộ đọc tin tức Pan" #: ../pan.desktop.in.h:2 msgid "Read and Post Usenet Articles" msgstr "" #: ../pan/data/article-cache.cc:143 ../pan/data/encode-cache.cc:62 #, c-format msgid "Error opening directory: \"%s\": %s" msgstr "Gặp lỗi khi mở thư mục « %s »: %s" #: ../pan/data/article-cache.cc:231 ../pan/data/article-cache.cc:242 #: ../pan/data-impl/data-io.cc:187 ../pan/data-impl/data-io.cc:211 #: ../pan/gui/post-ui.cc:1639 #, c-format msgid "Unable to save \"%s\" %s" msgstr "Không thể lưu « %s » %s" #: ../pan/data/article-cache.cc:355 #, c-format msgid "Error opening file \"%s\" %s" msgstr "Gặp lỗi khi mở tập tin « %s » %s" #: ../pan/data/article-cache.cc:386 ../pan/data-impl/profiles.cc:174 #: ../pan/data-impl/server.cc:436 ../pan/general/file-util.cc:298 #: ../pan/gui/post-ui.cc:609 ../pan/gui/task-pane.cc:691 #, c-format msgid "Error reading file \"%s\": %s" msgstr "Gặp lỗi khi đọc tập tin « %s »: %s" #: ../pan/data/cert-store.cc:238 #, fuzzy, c-format msgid "Error opening SSL certificate directory: \"%s\": %s" msgstr "Gặp lỗi khi mở thư mục « %s »: %s" #: ../pan/data/cert-store.cc:270 #, c-format msgid "Succesfully added %d SSL PEM certificate(s) to Certificate Store." msgstr "" #. load_group_descriptions (*_data_io); #: ../pan/data-impl/data-impl.cc:109 #, c-format msgid "Loaded data backend in %.1f seconds" msgstr "Hậu phương dữ liệu đã được tải trong %.1f giây" #: ../pan/data-impl/data-impl.cc:140 msgid "Pan newsreader server passwords" msgstr "" #: ../pan/data-impl/groups.cc:94 #, c-format msgid "Skipping newsrc file for server \"%s\"" msgstr "" "Đang bỏ qua tập tin tài nguyên tin tức « newsrc » cho máy phục vụ « %s »" #: ../pan/data-impl/headers.cc:606 #, c-format msgid "Expired %lu old articles from \"%s\"" msgstr "Mới bỏ %lu bài đã hết hạn ra « %s »" #: ../pan/data-impl/headers.cc:613 #, c-format msgid "" "Unsupported data version for %s headers: %d.\n" "Are you running an old version of Pan by accident?" msgstr "" "Phiên bản dữ liệu không được hỗ trợ cho dòng đầu kiểu %s: %d.\n" "Có phải bạn tình nguyện cờ đang chạy một phiên bản cũ của Pan không?" #: ../pan/data-impl/headers.cc:628 #, c-format msgid "Loaded %lu articles for \"%s\" in %.1f seconds (%.0f per second)" msgstr "Mới tải %lu bài cho « %s » trong %.1f giây (%.0f bài/giây)" #: ../pan/data-impl/headers.cc:857 #, fuzzy, c-format msgid "" "Saved %lu parts, %lu articles in \"%s\" in %.1f seconds (%.0f articles/sec)" msgstr "Đã lưu %lu phần, %lu bài vào « %s » trong %.1f giây (%.0f bài/giây)" #: ../pan/data-impl/headers.cc:1173 #, c-format msgid "Added %lu articles to %s." msgstr "Mới thêm %lu bài vào %s." #: ../pan/data-impl/server.cc:234 #, c-format msgid "There seems to be no Password set for Server %s." msgstr "" #: ../pan/data-impl/server.cc:238 msgid "The Gnome keyring denied access to the Passwords." msgstr "" #: ../pan/data-impl/xover.cc:239 #, c-format msgid "Error reading from %s: unknown group \"%s\"" msgstr "Gặp lỗi khi đọc từ %s: nhóm lạ « %s »" #. build the locale strings #: ../pan/general/e-util.cc:213 msgid "%l:%M %p" msgstr "%l:%M %p" #: ../pan/general/e-util.cc:214 msgid "Today %l:%M %p" msgstr "Hôm nay %l:%M %p" #: ../pan/general/e-util.cc:215 msgid "%a %l:%M %p" msgstr "%a %l:%M %p" #: ../pan/general/e-util.cc:216 msgid "%b %d %l:%M %p" msgstr "%d %b %l:%M %p" #: ../pan/general/e-util.cc:217 msgid "%b %d %Y" msgstr "%d %b %Y" #: ../pan/general/e-util.cc:242 msgid "?" msgstr "?" #: ../pan/general/text-match.cc:193 #, c-format msgid "Can't use regular expression \"%s\": %s" msgstr "Không thể dùng biểu thức chính quy « %s »: %s" #: ../pan/general/utf8-utils.cc:213 msgid "Couldn't determine article encoding. Non-UTF8 characters were removed." msgstr "Không thể quyết định cách mã hoá bài nên các ký tự khác UTF8 bị gở bỏ." #: ../pan/gui/actions.cc:274 ../pan/gui/post-ui.cc:417 msgid "_File" msgstr "_Tập tin" #: ../pan/gui/actions.cc:275 ../pan/gui/post-ui.cc:418 msgid "_Edit" msgstr "_Sửa" #: ../pan/gui/actions.cc:276 ../pan/gui/prefs-ui.cc:1064 msgid "_Layout" msgstr "_Bố trị" #: ../pan/gui/actions.cc:277 msgid "_Group Pane" msgstr "Ô _nhóm" #: ../pan/gui/actions.cc:278 msgid "_Header Pane" msgstr "Ô _dòng đầu" #: ../pan/gui/actions.cc:279 msgid "_Body Pane" msgstr "Ô _thân" #: ../pan/gui/actions.cc:280 msgid "_View" msgstr "_Xem" #: ../pan/gui/actions.cc:281 msgid "Filte_r" msgstr "_Lọc" #: ../pan/gui/actions.cc:282 msgid "_Go" msgstr "_Tới" #: ../pan/gui/actions.cc:283 ../pan/gui/prefs-ui.cc:1091 msgid "_Actions" msgstr "_Hành động" #: ../pan/gui/actions.cc:284 msgid "_Articles" msgstr "_Bài" #: ../pan/gui/actions.cc:285 msgid "G_roups" msgstr "N_hóm" #: ../pan/gui/actions.cc:286 ../pan/gui/actions.cc:287 msgid "_Post" msgstr "_Gởi" #: ../pan/gui/actions.cc:288 msgid "_Help" msgstr "Trợ g_iúp" #: ../pan/gui/actions.cc:291 msgid "_Read Group" msgstr "Đọc _nhóm" #: ../pan/gui/actions.cc:292 #, fuzzy msgid "Read Group" msgstr "Đọc _nhóm" #: ../pan/gui/actions.cc:296 #, fuzzy msgid "_Mark Selected Groups Read" msgstr "Đánh dấu các nhóm đã chọn Đã đọ_c" #: ../pan/gui/actions.cc:297 #, fuzzy msgid "Mark Selected Groups Read" msgstr "Đánh dấu các nhóm đã chọn Đã đọ_c" #: ../pan/gui/actions.cc:301 msgid "_Delete Selected Groups' Articles" msgstr "_Xoá các bài của các nhóm đã chọn" #: ../pan/gui/actions.cc:302 #, fuzzy msgid "Delete Selected Groups' Articles" msgstr "_Xoá các bài của các nhóm đã chọn" #: ../pan/gui/actions.cc:306 msgid "Get New _Headers in Selected Groups" msgstr "Lấy các dòng đầu mới trong các n_hóm đã chọn" #: ../pan/gui/actions.cc:307 #, fuzzy msgid "Get New Headers in Selected Groups" msgstr "Lấy các dòng đầu mới trong các n_hóm đã chọn" #: ../pan/gui/actions.cc:311 ../pan/gui/actions.cc:316 msgid "Get New _Headers in Subscribed Groups" msgstr "Lấy các dòng đầu mới trong các n_hóm đã đăng ký" #: ../pan/gui/actions.cc:312 ../pan/gui/actions.cc:317 #, fuzzy msgid "Get New Headers in Subscribed Groups" msgstr "Lấy các dòng đầu mới trong các n_hóm đã đăng ký" #: ../pan/gui/actions.cc:321 msgid "Get _Headers..." msgstr "Lấ_y các dòng đầu..." #: ../pan/gui/actions.cc:322 #, fuzzy msgid "Get Headers..." msgstr "Lấ_y các dòng đầu..." #: ../pan/gui/actions.cc:326 ../pan/gui/actions.cc:327 msgid "Refresh Group List" msgstr "Cập nhật danh sách nhóm" #: ../pan/gui/actions.cc:331 msgid "_Subscribe" msgstr "Đăng _ký" #: ../pan/gui/actions.cc:332 #, fuzzy msgid "Subscribe" msgstr "Đăng _ký" #: ../pan/gui/actions.cc:336 msgid "_Unsubscribe" msgstr "_Hủy đăng ký" #: ../pan/gui/actions.cc:337 #, fuzzy msgid "Unsubscribe" msgstr "_Hủy đăng ký" #: ../pan/gui/actions.cc:341 msgid "_Save Articles..." msgstr "_Lưu các bài..." #: ../pan/gui/actions.cc:342 #, fuzzy msgid "Save Articles..." msgstr "_Lưu các bài..." #: ../pan/gui/actions.cc:346 #, fuzzy msgid "Save Articles from Selected _NZB..." msgstr "_Lưu các bài từ NZB này..." #: ../pan/gui/actions.cc:347 #, fuzzy msgid "Save Articles from Selected NZB" msgstr "_Lưu các bài từ NZB này..." #: ../pan/gui/actions.cc:351 #, fuzzy msgid "Save Articles to an NZB _File..." msgstr "_Lưu các bài từ NZB này..." #: ../pan/gui/actions.cc:352 #, fuzzy msgid "Save Articles to an NZB File" msgstr "_Lưu các bài từ NZB này..." #: ../pan/gui/actions.cc:356 ../pan/gui/actions.cc:357 msgid "Print" msgstr "" #: ../pan/gui/actions.cc:361 msgid "_Import NZB Files..." msgstr "Nhập tập t_in dạng NBZ..." #: ../pan/gui/actions.cc:366 msgid "_Cancel Last Task" msgstr "Thôi tác vụ _cuối cùng" #: ../pan/gui/actions.cc:371 msgid "_Task Manager" msgstr "Bộ Quản Lý _Tác Vụ" #: ../pan/gui/actions.cc:376 msgid "_Event Log" msgstr "_Bản ghi sự kiện" #: ../pan/gui/actions.cc:381 msgid "_Quit" msgstr "T_hoát" #: ../pan/gui/actions.cc:386 msgid "Select _All Articles" msgstr "Chọn _mọi bài" #: ../pan/gui/actions.cc:391 msgid "_Deselect All Articles" msgstr "_Hủy chọn mọi bài" #: ../pan/gui/actions.cc:396 msgid "Add Su_bthreads to Selection" msgstr "Thêm các nhánh c_on vài vùng chọn" #: ../pan/gui/actions.cc:401 msgid "Add _Threads to Selection" msgstr "_Thêm các nhánh vào vùng chọn" #: ../pan/gui/actions.cc:406 msgid "Add _Similar Articles to Selection" msgstr "Thêm các bài tương tự _vào vùng chọn" #: ../pan/gui/actions.cc:411 msgid "Select Article _Body" msgstr "Chọn thân _bài" #: ../pan/gui/actions.cc:416 msgid "Edit _Preferences" msgstr "Sửa tù_y thích" #: ../pan/gui/actions.cc:421 msgid "Edit Selected _Group's Preferences" msgstr "Sửa tùy thích của _nhóm đã chọn" #: ../pan/gui/actions.cc:426 ../pan/gui/post-ui.cc:434 msgid "Edit P_osting Profiles" msgstr "Sửa hồ sơ _gởi" #: ../pan/gui/actions.cc:431 msgid "Edit _News Servers" msgstr "Sửa máy phục vụ ti_n tức" #: ../pan/gui/actions.cc:436 msgid "Jump to _Group Tab" msgstr "Tới tab _nhóm" #: ../pan/gui/actions.cc:441 msgid "Jump to _Header Tab" msgstr "Tới Tab _dòng đầu" #: ../pan/gui/actions.cc:446 msgid "Jump to _Body Tab" msgstr "Tới Ta_b thân" #: ../pan/gui/actions.cc:451 msgid "_Rot13 Selected Text" msgstr "_Rot13 vùng chọn" #: ../pan/gui/actions.cc:456 msgid "Clear _Header Pane" msgstr "Xoá ô _dòng đầu" #: ../pan/gui/actions.cc:461 msgid "Clear _Body Pane" msgstr "X_oá ô thân" #: ../pan/gui/actions.cc:466 msgid "Cache Article" msgstr "Lưu tạm bài" #: ../pan/gui/actions.cc:471 msgid "Read Article" msgstr "Đọc bài" #: ../pan/gui/actions.cc:476 msgid "Show Article Information" msgstr "Hiện thông tin bài" #: ../pan/gui/actions.cc:481 msgid "Read _More" msgstr "Đọc thê_m" #: ../pan/gui/actions.cc:482 msgid "Read More" msgstr "Đọc thêm" #: ../pan/gui/actions.cc:486 msgid "Read _Back" msgstr "Đọc _lùi" #: ../pan/gui/actions.cc:487 msgid "Read Back" msgstr "Đọc lùi" #: ../pan/gui/actions.cc:491 msgid "Next _Unread Group" msgstr "Nhóm chưa đọc _kế" #: ../pan/gui/actions.cc:496 msgid "Next _Group" msgstr "_Nhóm kế" #: ../pan/gui/actions.cc:501 msgid "Next _Unread Article" msgstr "Bài chưa đọc _kế" #: ../pan/gui/actions.cc:502 msgid "Next Unread Article" msgstr "Bài chưa đọc kế" #: ../pan/gui/actions.cc:506 msgid "Next _Article" msgstr "_Bài kế" #: ../pan/gui/actions.cc:507 #, fuzzy msgid "Next Article" msgstr "_Bài kế" #: ../pan/gui/actions.cc:511 msgid "Next _Watched Article" msgstr "Bài đã th_eo dõi kế" #: ../pan/gui/actions.cc:516 msgid "Next Unread _Thread" msgstr "_Nhánh chưa đọc kế" #: ../pan/gui/actions.cc:517 msgid "Next Unread Thread" msgstr "Nhánh chưa đọc kế" #: ../pan/gui/actions.cc:521 msgid "Next Threa_d" msgstr "N_hánh kế" #: ../pan/gui/actions.cc:526 msgid "Pre_vious Article" msgstr "Bài t_rước" #: ../pan/gui/actions.cc:531 msgid "Previous _Thread" msgstr "Nhánh _trước" #: ../pan/gui/actions.cc:536 msgid "_Parent Article" msgstr "Bài ch_a" #: ../pan/gui/actions.cc:541 msgid "Ignore _Author" msgstr "Bỏ qu_a tác giả" #: ../pan/gui/actions.cc:545 msgid "_Watch Thread" msgstr "Th_eo dõi nhánh" #: ../pan/gui/actions.cc:550 msgid "_Ignore Thread" msgstr "_Bỏ qua nhánh" #: ../pan/gui/actions.cc:555 ../pan/gui/actions.cc:556 #, fuzzy msgid "_Toggle Flag On/Off for Thread" msgstr "Th_eo dõi nhánh" #: ../pan/gui/actions.cc:560 ../pan/gui/actions.cc:561 #, fuzzy msgid "_Turn Flag Off for Thread" msgstr "Th_eo dõi nhánh" #: ../pan/gui/actions.cc:565 ../pan/gui/actions.cc:566 #, fuzzy msgid "_Select All Flagged Threads" msgstr "Nhánh chưa đọc kế" #: ../pan/gui/actions.cc:570 ../pan/gui/actions.cc:571 #, fuzzy msgid "_Go to Next Flagged Thread" msgstr "Nhánh chưa đọc kế" #: ../pan/gui/actions.cc:575 ../pan/gui/actions.cc:576 #, fuzzy msgid "_Go to Last Flagged Thread" msgstr "Nhánh chưa đọc kế" #: ../pan/gui/actions.cc:580 ../pan/gui/actions.cc:581 #, fuzzy msgid "_Invert Selection" msgstr "_Thêm các nhánh vào vùng chọn" #: ../pan/gui/actions.cc:585 msgid "Edit Article's Watch/Ignore/Score..." msgstr "Sửa Theo dõi/Bỏ qua/Điểm của bài ..." #: ../pan/gui/actions.cc:590 #, fuzzy msgid "Add a _Scoring Rule..." msgstr "Thêm quy tắc _ghi điểm ..." #: ../pan/gui/actions.cc:595 msgid "Cance_l Article..." msgstr "_Thôi bài ..." #: ../pan/gui/actions.cc:600 msgid "_Supersede Article..." msgstr "Tha_y thế bài cũ ..." #: ../pan/gui/actions.cc:605 msgid "_Delete Article" msgstr "_Xoá bỏ bài" #: ../pan/gui/actions.cc:610 msgid "Clear Article Cache" msgstr "Xoá bộ nhớ tạm bài" #: ../pan/gui/actions.cc:615 msgid "_Mark Article as Read" msgstr "Đánh dấu bài Đã đọ_c" #: ../pan/gui/actions.cc:620 msgid "Mark Article as _Unread" msgstr "Đánh dấ_u bài Chưa đọc" #: ../pan/gui/actions.cc:626 #, fuzzy msgid "_Mark Thread as Read" msgstr "Đánh dấu bài Đã đọ_c" #: ../pan/gui/actions.cc:631 #, fuzzy msgid "Mark Thread as _Unread" msgstr "Đánh dấ_u bài Chưa đọc" #: ../pan/gui/actions.cc:636 msgid "_Post to Newsgroup" msgstr "_Gởi cho nhóm tin" #: ../pan/gui/actions.cc:637 msgid "Post to Newsgroup" msgstr "Gởi cho nhóm tin" #: ../pan/gui/actions.cc:641 msgid "_Followup to Newsgroup" msgstr "Tiế_p theo tới nhóm tin" #: ../pan/gui/actions.cc:642 msgid "Followup to Newsgroup" msgstr "Tiếp theo tới nhóm tin" #: ../pan/gui/actions.cc:646 msgid "_Reply to Author in Mail" msgstr "T_rả lời tác giả bằng thư" #: ../pan/gui/actions.cc:651 msgid "_Pan Home Page" msgstr "Trang chủ _Pan" #: ../pan/gui/actions.cc:656 msgid "Give _Feedback or Report a Bug..." msgstr "Gửi thông tin phản hồi hoặc Thông báo _lỗi ..." #: ../pan/gui/actions.cc:661 msgid "_Tip Jar..." msgstr "_Tăng tiền ..." #: ../pan/gui/actions.cc:666 msgid "_About" msgstr "_Giới thiệu" #: ../pan/gui/actions.cc:671 msgid "Edit _SSL Certificates" msgstr "" #: ../pan/gui/actions.cc:685 msgid "_Thread Headers" msgstr "Dòng đầu n_hánh" #: ../pan/gui/actions.cc:686 msgid "_Wrap Article Body" msgstr "N_gắt dòng trong thân" #: ../pan/gui/actions.cc:687 msgid "Mute _Quoted Text" msgstr "Câm trích _dẫn" #: ../pan/gui/actions.cc:688 msgid "Show All _Headers in Body Pane" msgstr "_Hiện mọi dòng đầu trong ô thân" #: ../pan/gui/actions.cc:689 msgid "Show _Smilies as Graphics" msgstr "Hiện hình _cười là đồ họa" #: ../pan/gui/actions.cc:690 msgid "Show *Bold*, __Underlined__, and /Italic/" msgstr "Hiện *Đậm*, __Gạch dưới__ và /Nghiêng/" #: ../pan/gui/actions.cc:691 msgid "Size Pictures to _Fit" msgstr "Chỉnh cỡ ảnh để _vừa" #: ../pan/gui/actions.cc:692 msgid "Use _Monospace Font" msgstr "Dùng _phông chữ đơn cách" #: ../pan/gui/actions.cc:693 msgid "Set Focus to Images" msgstr "Đặt tiêu điểm thành Ảnh" #: ../pan/gui/actions.cc:694 msgid "Highlight _URLs" msgstr "" #: ../pan/gui/actions.cc:697 msgid "_Work Online" msgstr "_Trực tuyến" #: ../pan/gui/actions.cc:698 msgid "_Tabbed Layout" msgstr "Bố trí theo _tab" #: ../pan/gui/actions.cc:699 msgid "Show Group _Pane" msgstr "Hiện ô nhó_m" #: ../pan/gui/actions.cc:700 msgid "Show Hea_der Pane" msgstr "Hiện ô _dòng đầu" #: ../pan/gui/actions.cc:701 msgid "Show Bod_y Pane" msgstr "H_iện ô thân" #: ../pan/gui/actions.cc:702 msgid "Show _Toolbar" msgstr "Hiện _thanh công cụ" #: ../pan/gui/actions.cc:703 msgid "Abbreviate Group Names" msgstr "Hiện tên nhóm tin tắt" #: ../pan/gui/actions.cc:705 msgid "Match Only _Unread Articles" msgstr "Khớp chỉ bài chư_a đọc" #: ../pan/gui/actions.cc:705 msgid "Match Only Unread Articles" msgstr "Khớp chỉ bài chưa đọc" #: ../pan/gui/actions.cc:706 msgid "Match Only _Cached Articles" msgstr "Khớp _chỉ bài đã lưu tạm" #: ../pan/gui/actions.cc:706 msgid "Match Only Cached Articles" msgstr "Khớp chỉ bài đã lưu tạm" #: ../pan/gui/actions.cc:707 msgid "Match Only _Complete Articles" msgstr "Khớp _chỉ bài hoàn toàn" #: ../pan/gui/actions.cc:707 msgid "Match Only Complete Articles" msgstr "Khớp chỉ bài hoàn toàn" #: ../pan/gui/actions.cc:708 msgid "Match Only _My Articles" msgstr "Khớp chỉ bài của _tôi" #: ../pan/gui/actions.cc:708 #, fuzzy msgid "Match Only My Articles" msgstr "Khớp chỉ bài của _tôi" #: ../pan/gui/actions.cc:709 msgid "Match Only _Watched Articles" msgstr "Khớp chỉ bài đã th_eo dõi" #: ../pan/gui/actions.cc:709 msgid "Match Only Watched Articles" msgstr "Khớp chỉ bài đã theo dõi" #: ../pan/gui/actions.cc:711 msgid "Match Scores of 9999 (_Watched)" msgstr "Khớp điểm 9999 (đã th_eo dõi)" #: ../pan/gui/actions.cc:712 msgid "Match Scores of 5000...9998 (_High)" msgstr "K_hớp điểm 5000...9998 (Cao)" #: ../pan/gui/actions.cc:713 msgid "Match Scores of 1...4999 (Me_dium)" msgstr "Khớp điểm 1-4999 (_Vừa)" #: ../pan/gui/actions.cc:714 msgid "Match Scores of 0 (_Normal)" msgstr "Khớp điểm 0 (chuẩ_n)" #: ../pan/gui/actions.cc:715 msgid "Match Scores of -9998...-1 (_Low)" msgstr "Khớp điểm -9998...-1 (Thấ_p)" #: ../pan/gui/actions.cc:716 msgid "Match Scores of -9999 (_Ignored)" msgstr "Khớp đ_iểm -9999 (Bị bỏ qua)" #: ../pan/gui/actions.cc:718 msgid "Enable/Disable All _Rules" msgstr "" #: ../pan/gui/actions.cc:744 msgid "Show Matching _Articles" msgstr "Hiện bài _khớp" #: ../pan/gui/actions.cc:745 msgid "Show Matching Articles' _Threads" msgstr "Hiện _nhánh của bài khớp" #: ../pan/gui/actions.cc:746 msgid "Show Matching Articles' _Subthreads" msgstr "Hiện nhánh _con của bài khớp" #: ../pan/gui/body-pane.cc:1011 #, fuzzy, c-format msgid "Unnamed File" msgstr "Tập tin chữ ký" #: ../pan/gui/body-pane.cc:1092 ../pan/gui/gui.cc:1864 #: ../pan/gui/header-pane.cc:1188 ../pan/gui/header-pane.cc:1617 #: ../pan/gui/post-ui.cc:2496 ../pan/gui/prefs-ui.cc:833 #: ../pan/gui/score-add-ui.cc:139 msgid "Subject" msgstr "Chủ đề" #: ../pan/gui/body-pane.cc:1094 ../pan/gui/gui.cc:1864 msgid "From" msgstr "Từ" #: ../pan/gui/body-pane.cc:1096 ../pan/gui/gui.cc:1865 #: ../pan/gui/header-pane.cc:1695 ../pan/gui/log-ui.cc:305 #: ../pan/gui/prefs-ui.cc:829 msgid "Date" msgstr "Ngày" #: ../pan/gui/body-pane.cc:1103 msgid "Newsgroups" msgstr "Nhóm tin" #: ../pan/gui/body-pane.cc:1108 msgid "Followup-To" msgstr "Tiếp theo tới" #: ../pan/gui/body-pane.cc:1118 msgid "Reply-To" msgstr "Trả lời" #: ../pan/gui/body-pane.cc:1160 msgid " from " msgstr " từ " #: ../pan/gui/body-pane.cc:1162 msgid " at " msgstr " tại " #: ../pan/gui/body-pane.cc:1264 #, c-format msgid "" "This is a PGP-Signed message.\n" "\n" "Signer : %s ('%s')\n" "Valid until : %s\n" "Created on : %s" msgstr "" #: ../pan/gui/body-pane.cc:1269 msgid "always" msgstr "" #: ../pan/gui/body-pane.cc:1485 msgid "Copy _URL" msgstr "Chép _URL" #: ../pan/gui/body-pane.cc:1680 #, fuzzy msgid "Save attachment as ...." msgstr "Lưu các đồ đính kèm" #: ../pan/gui/body-pane.cc:1683 #, fuzzy msgid "Save all attachments" msgstr "Lưu các đồ đính kèm" #. add a toolbar for attachments #: ../pan/gui/body-pane.cc:1753 #, fuzzy msgid "Attachments" msgstr "Lưu các đồ đính _kèm" # 48x48/emblems/emblem-plan.icon.in.h:1 # 48x48/emblems/emblem-plan.icon.in.h:1 # Name: don't translate / Tên: đừng dịch #. update the titlebar #: ../pan/gui/dl-headers-ui.cc:106 ../pan/gui/gui.cc:973 #: ../pan/gui/gui.cc:1592 ../pan/gui/gui.cc:1893 #: ../pan/gui/score-add-ui.cc:602 msgid "Pan" msgstr "Pan" #: ../pan/gui/dl-headers-ui.cc:112 #, fuzzy, c-format msgid "%d Group" msgid_plural "%d Groups" msgstr[0] "%d nhóm" #: ../pan/gui/dl-headers-ui.cc:135 msgid "Get the last N _days' headers: " msgstr "Lấy các _dòng đầu của N ngày qua: " #: ../pan/gui/dl-headers-ui.cc:143 msgid "Get _new headers" msgstr "Lấy các dò_ng đầu mới" #: ../pan/gui/dl-headers-ui.cc:147 msgid "Get _all headers" msgstr "Lấy _mọi dòng đầu" #: ../pan/gui/dl-headers-ui.cc:151 msgid "Get the _latest N headers: " msgstr "_Lấy các dòng đầu N mới nhất: " #: ../pan/gui/e-action-combo-box.c:388 ../pan/gui/prefs-ui.cc:826 msgid "Action" msgstr "Hành động" #: ../pan/gui/e-action-combo-box.c:389 msgid "A GtkRadioAction" msgstr "" #: ../pan/gui/e-charset.c:51 ../pan/gui/task-pane.cc:518 msgid "Unknown" msgstr "Không rõ" #: ../pan/gui/e-charset.c:52 msgid "Arabic" msgstr "" #: ../pan/gui/e-charset.c:53 msgid "Baltic" msgstr "Ban-tích" #: ../pan/gui/e-charset.c:54 msgid "Central European" msgstr "Vùng Trung Âu" #: ../pan/gui/e-charset.c:55 msgid "Chinese" msgstr "Hoa" #: ../pan/gui/e-charset.c:56 msgid "Cyrillic" msgstr "Ki-rin" #: ../pan/gui/e-charset.c:57 msgid "Greek" msgstr "Hy Lạp" #: ../pan/gui/e-charset.c:58 msgid "Hebrew" msgstr "Do Thái" #: ../pan/gui/e-charset.c:59 msgid "Japanese" msgstr "Nhật" #: ../pan/gui/e-charset.c:60 msgid "Korean" msgstr "Hàn" #: ../pan/gui/e-charset.c:61 msgid "Thai" msgstr "Thái" #: ../pan/gui/e-charset.c:62 msgid "Turkish" msgstr "Thổ Nhĩ Kỳ" #: ../pan/gui/e-charset.c:63 msgid "Unicode" msgstr "Unicode" #: ../pan/gui/e-charset.c:64 msgid "Western European" msgstr "Vùng Tây Âu" #: ../pan/gui/e-charset.c:65 msgid "Western European, New" msgstr "Vùng Tây Âu Mới" #: ../pan/gui/e-charset.c:84 ../pan/gui/e-charset.c:85 #: ../pan/gui/e-charset.c:86 msgid "Traditional" msgstr "Truyền thống" #: ../pan/gui/e-charset.c:87 ../pan/gui/e-charset.c:88 #: ../pan/gui/e-charset.c:89 ../pan/gui/e-charset.c:90 msgid "Simplified" msgstr "Phổ thông" #: ../pan/gui/e-charset.c:93 msgid "Ukrainian" msgstr "U-cợ-rainh" #: ../pan/gui/e-charset.c:96 msgid "Visual" msgstr "Trực quan" #: ../pan/gui/e-charset-combo-box.c:93 ../pan/gui/gui.cc:2058 #: ../pan/gui/post-ui.cc:519 ../pan/gui/prefs-ui.cc:737 msgid "Character Encoding" msgstr "Mã ký tự" #: ../pan/gui/e-charset-combo-box.c:117 msgid "Enter the character set to use" msgstr "Hãy nhập vào bộ ký tự cần dùng" #: ../pan/gui/e-charset-combo-box.c:336 msgid "Other..." msgstr "Khác..." #: ../pan/gui/e-cte-dialog.c:78 #, fuzzy msgid "Default encoding" msgstr "Đang giải mã" #: ../pan/gui/e-cte-dialog.c:80 #, fuzzy msgid "7Bit Encoding" msgstr "Đang giải mã" #: ../pan/gui/e-cte-dialog.c:82 #, fuzzy msgid "8Bit Encoding" msgstr "Đang giải mã" #: ../pan/gui/e-cte-dialog.c:84 #, fuzzy msgid "BASE64 Encoding" msgstr "Đang giải mã" #: ../pan/gui/e-cte-dialog.c:86 #, fuzzy msgid "Quoted-Printable Encoding" msgstr "Bảng mã ô thân" #: ../pan/gui/group-pane.cc:500 #, fuzzy msgid "Group" msgstr "Nhóm" #: ../pan/gui/group-pane.cc:501 #, fuzzy msgid "Group (regex)" msgstr "Tên nhóm" #: ../pan/gui/group-pane.cc:913 msgid "Subscribed Groups" msgstr "Nhóm đã đăng ký" #: ../pan/gui/group-pane.cc:914 msgid "Other Groups" msgstr "Nhóm khác" #: ../pan/gui/group-pane.cc:954 ../pan/gui/score-view-ui.cc:157 msgid "Name" msgstr "Tên" #: ../pan/gui/group-prefs-dialog.cc:156 msgid "No Profiles defined in Edit|Posting Profiles." msgstr "Không có hồ sơ nào được xác định trong « Sửa > Hồ sơ gởi »." #: ../pan/gui/group-prefs-dialog.cc:231 msgid "Pan: Group Preferences" msgstr "Pan: Tùy thích nhóm" #: ../pan/gui/group-prefs-dialog.cc:247 #, fuzzy, c-format msgid "Properties for Groups" msgstr "Tài sản cho %s" #: ../pan/gui/group-prefs-dialog.cc:249 #, c-format msgid "Properties for %s" msgstr "Tài sản cho %s" #: ../pan/gui/group-prefs-dialog.cc:257 msgid "Character _encoding:" msgstr "Mã _ký tự :" #: ../pan/gui/group-prefs-dialog.cc:259 msgid "Directory for Saving Attachments" msgstr "Thư mục nơi cần lưu đồ đính kèm" #: ../pan/gui/group-prefs-dialog.cc:269 msgid "Directory for _saving attachments:" msgstr "Thư mục nơi cần _lưu đồ đính kèm" #: ../pan/gui/group-prefs-dialog.cc:271 msgid "Posting _profile:" msgstr "_Hồ sơ gởi:" #: ../pan/gui/group-prefs-dialog.cc:277 msgid "Spellchecker _language:" msgstr "" #: ../pan/gui/gui.cc:273 msgid "Open the Task Manager" msgstr "Mở Bộ Quản lý Tác vụ" #: ../pan/gui/gui.cc:301 msgid "Open the Event Log" msgstr "Mở Bản Ghi Sự Kiện" #: ../pan/gui/gui.cc:561 msgid "Save NZB's Files" msgstr "Lưu các tập tin của NZB" #: ../pan/gui/gui.cc:588 msgid "Untitled.nzb" msgstr "" #: ../pan/gui/gui.cc:590 #, fuzzy msgid "Save NZB File as..." msgstr "Lưu các tập tin của NZB" #: ../pan/gui/gui.cc:757 msgid "Import NZB Files" msgstr "Nhập các tập tin NZB" #: ../pan/gui/gui.cc:765 ../pan/gui/post-ui.cc:3197 msgid "NZB Files" msgstr "Tập tin NZB" #: ../pan/gui/gui.cc:770 msgid "All Files" msgstr "Mọi tập tin" #: ../pan/gui/gui.cc:1258 msgid "Unable to supersede article." msgstr "Không thể thay thế bài cũ." #: ../pan/gui/gui.cc:1259 ../pan/gui/gui.cc:1333 msgid "The article doesn't match any of your posting profiles." msgstr "Bài này không khớp với hồ sơ gởi nào của bạn." #: ../pan/gui/gui.cc:1306 msgid "Revise and send this article to replace the old one." msgstr "Xem lại và gởi bài này để thay thế bài cũ." #: ../pan/gui/gui.cc:1307 ../pan/gui/gui.cc:1370 msgid "Be patient! It will take time for your changes to take effect." msgstr "Hãy đợi ... trong khi các thay đổi có tác dụng." #: ../pan/gui/gui.cc:1332 msgid "Unable to cancel article." msgstr "Không thể thôi bài." #: ../pan/gui/gui.cc:1369 msgid "Send this article to ask your server to cancel your other one." msgstr "Gởi bài này để yêu cầu máy phục vụ thôi bài khác." #: ../pan/gui/gui.cc:1387 #, fuzzy msgid "You marked some articles for deletion" msgstr "Thêm các bài tương tự _vào vùng chọn" #: ../pan/gui/gui.cc:1388 msgid "Are you sure you want to delete them?" msgstr "" #: ../pan/gui/gui.cc:1413 #, fuzzy msgid "Always trust" msgstr "Luôn chạy bộ sửa" #: ../pan/gui/gui.cc:1416 msgid "Do you want to accept it permanently (deletable afterwards) ?" msgstr "" #: ../pan/gui/gui.cc:1595 #, fuzzy msgid "Copyright \\u00A9 2002-2012 Charles Kerr and others" msgstr "Tác quyền © năm 2002-2007 của Charles Kerr" #: ../pan/gui/gui.cc:1600 msgid "translator-credits" msgstr "Nhóm Việt hoá GNOME (http://gnomevi.sourceforge.net)" #: ../pan/gui/gui.cc:1709 msgid "_1. Group Pane" msgstr "_1. Ô nhóm" #: ../pan/gui/gui.cc:1710 msgid "_2. Header Pane" msgstr "_2. Ô dòng đầu" #: ../pan/gui/gui.cc:1711 msgid "_3. Body Pane" msgstr "_3. Ô thân" #: ../pan/gui/gui.cc:1800 ../pan/gui/gui.cc:1815 #, fuzzy msgid " Bytes" msgstr "Byte" #: ../pan/gui/gui.cc:1803 msgid " KB" msgstr "" #: ../pan/gui/gui.cc:1806 msgid " MB" msgstr "" #: ../pan/gui/gui.cc:1809 msgid " GB" msgstr "" #: ../pan/gui/gui.cc:1812 msgid " TB" msgstr "" #: ../pan/gui/gui.cc:1844 #, fuzzy, c-format msgid "This article is complete with %d part." msgid_plural "This article has all %d parts." msgstr[0] "Bài này có tất cả các %d phần." #: ../pan/gui/gui.cc:1846 #, fuzzy, c-format msgid "This article is missing %d part." msgid_plural "This article is missing %d of its %d parts:" msgstr[0] "Bài này còn thiếu %d trên %d phần:" #: ../pan/gui/gui.cc:1865 ../pan/gui/header-pane.cc:1190 msgid "Message-ID" msgstr "ID thông điệp" #: ../pan/gui/gui.cc:1866 ../pan/gui/header-pane.cc:1665 #: ../pan/gui/prefs-ui.cc:830 msgid "Lines" msgstr "Đường" #: ../pan/gui/gui.cc:1866 msgid "Size" msgstr "" #: ../pan/gui/gui.cc:1867 ../pan/gui/header-pane.cc:1680 #: ../pan/gui/prefs-ui.cc:828 msgid "Bytes" msgstr "Byte" #: ../pan/gui/gui.cc:1917 msgid "" "Error loading iconv library. Some Charsets in the GUI will not be able to be " "encoded." msgstr "" #: ../pan/gui/gui.cc:2059 msgid "Body Pane Encoding" msgstr "Bảng mã ô thân" #: ../pan/gui/gui.cc:2090 ../pan/gui/task-pane.cc:569 #, c-format msgid "Offline" msgstr "Ngoại tuyến" #: ../pan/gui/gui.cc:2094 #, fuzzy, c-format msgid "Closing %d connection" msgid_plural "Closing %d connections" msgstr[0] "Đang đóng %d kết nối" #: ../pan/gui/gui.cc:2096 ../pan/gui/gui.cc:2126 #, c-format msgid "No Connections" msgstr "Không có kết nối" #: ../pan/gui/gui.cc:2100 #, c-format msgid "Connecting" msgstr "Đang kết nối" #: ../pan/gui/gui.cc:2113 #, c-format msgid "%s: %d idle, %d active @ %.1f KiBps" msgstr "%s: %d nghỉ, %d hoạt động @ %.1f KiBps" #: ../pan/gui/gui.cc:2169 #, c-format msgid "No Tasks" msgstr "Không có tác vụ" #: ../pan/gui/gui.cc:2171 ../pan/gui/prefs-ui.cc:1047 msgid "Tasks" msgstr "Tác vụ" #: ../pan/gui/gui.cc:2182 ../pan/gui/task-pane.cc:435 #, c-format msgid "%lu tasks, %s, %.1f KiBps, ETA %d:%02d:%02d" msgstr "%lu tác vụ, %s, %.1f KiBps, Giờ tới xấp xỉ %d:%02d:%02d" #: ../pan/gui/gui.cc:2234 msgid "" "Pan is now offline. Please see \"File|Event Log\" and correct the problem, " "then use \"File|Work Online\" to continue." msgstr "" "Pan hiện thời nằm ngoại tuyến. Hãy xem « Tập tin > Bản ghi sự kiện » và sửa " "lỗi này, rồi chọn « Tập tin > Trực tuyến » để tiếp tục." #: ../pan/gui/header-pane.cc:1186 msgid "Subject or Author" msgstr "Chủ đề hay Tác giả" #: ../pan/gui/header-pane.cc:1187 #, fuzzy msgid "Sub or Auth (regex)" msgstr "Chủ đề hay Tác giả" #: ../pan/gui/header-pane.cc:1189 ../pan/gui/header-pane.cc:1649 #: ../pan/gui/prefs-ui.cc:827 ../pan/gui/score-add-ui.cc:140 msgid "Author" msgstr "Tác giả" #: ../pan/gui/header-pane.cc:1634 ../pan/gui/prefs-ui.cc:831 msgid "Score" msgstr "Điểm" #: ../pan/gui/log-ui.cc:103 msgid "Save Event List" msgstr "Lưu danh sách sự kiện" #: ../pan/gui/log-ui.cc:256 msgid "Pan: Events" msgstr "Pan: Sự kiện" #: ../pan/gui/log-ui.cc:315 msgid "Message" msgstr "Thông điệp" #: ../pan/gui/pan.cc:330 msgid "Maximize" msgstr "" #: ../pan/gui/pan.cc:383 msgid "An Error has occurred!" msgstr "" #: ../pan/gui/pan.cc:397 #, fuzzy msgid "New Articles!" msgstr "_Bài kế" #: ../pan/gui/pan.cc:398 msgid "" "There are new\n" "articles available." msgstr "" #: ../pan/gui/pan.cc:465 msgid "Toggle on/offline" msgstr "" #: ../pan/gui/pan.cc:513 msgid "" "Thank you for trying Pan!\n" " \n" "To start newsreading, first Add a Server." msgstr "" "Cám ơn bạn thử ra Pan !\n" "\n" "Để bắt đầu đọc tin tức, trước tiên « Thêm máy phục vụ »." #: ../pan/gui/pan.cc:595 #, fuzzy msgid "" "General Options\n" " -h, --help Show this usage page.\n" " --verbose Be verbose (in non-GUI mode).\n" "\n" "URL Options\n" " --no-gui On news:message-id, dump the article to stdout.\n" "\n" "NZB Batch Options\n" " --nzb file1 file2 ... Process nzb files without launching all of Pan.\n" " -o path, --output=path Path to save attachments listed in the nzb " "files.\n" " --no-gui Only show console output, not the download " "queue.\n" msgstr "" "Tùy chọn chung\n" " -h, --help Hiện trợ giúp này\n" "\n" "Tùy chọn URL\n" " news:mã_bài Hiện bài này.\n" " news:tên_nhóm Hiện nhóm tin này.\n" " headers:tên_nhóm Tải về các dòng đầu mới cho nhóm tin này\n" " --no-gui Khi dùng « news:mã_bài », đổ bài ra thiết bị xuất " "chuẩn.\n" "\n" "Tùy chọn bó NZB\n" " --nzb tập tin1 tập tin2 ... Xử lý tập tin NZB, không cần khởi chạy toàn " "bộ Pan.\n" " -o đường_dẫn, --output=đường_dẫn\n" "\tĐường dẫn đến đó cần lưu đồ đính kèm được liệt kê trong tập tin NZB.\n" " --no-gui Chỉ hiện kết xuất bàn giao tiếp, không phải hàng " "đợi tải về.\n" #: ../pan/gui/pan.cc:867 msgid "Error: --no-gui used without nzb files or news:message-id." msgstr "" "Lỗi: đối số « -no-gui » được dùng khi không có tập tin dạng NZB hay « news:" "mã_bài »." #: ../pan/gui/pan.cc:871 #, c-format msgid "Pan %s started" msgstr "Pan %s đã khởi chạy" #: ../pan/gui/pan.cc:890 msgid "Please configure Pan's news servers before using it as an nzb client." msgstr "" "Hãy cấu hình các máy phục vụ tin tức của Pan trước khi sử dụng nó như là ứng " "dụng khách NZB." #: ../pan/gui/pan.cc:1009 msgid "Pan notification" msgstr "" #: ../pan/gui/post-ui.cc:186 #, c-format msgid "Upload Queue : %ld Tasks, %ld KB (~ %.2f MB) total ." msgstr "" #: ../pan/gui/post-ui.cc:286 #, fuzzy, c-format msgid "Error setting custom spellchecker: %s" msgstr "Gặp lỗi khi đặt bộ kiểm tra chính tả: %s" #: ../pan/gui/post-ui.cc:291 ../pan/gui/post-ui.cc:300 #, c-format msgid "Error setting spellchecker: %s" msgstr "Gặp lỗi khi đặt bộ kiểm tra chính tả: %s" #: ../pan/gui/post-ui.cc:419 msgid "_Profile" msgstr "_Hồ sơ" #: ../pan/gui/post-ui.cc:420 msgid "Set Editor" msgstr "Đặt bộ chỉnh sửa" #: ../pan/gui/post-ui.cc:422 msgid "_Send Article" msgstr "_Gởi bài" #: ../pan/gui/post-ui.cc:422 msgid "Send Article Now" msgstr "Gởi bài ngay" #: ../pan/gui/post-ui.cc:423 #, fuzzy msgid "_Send and Save Articles to NZB" msgstr "Pan: Lưu các bài" #: ../pan/gui/post-ui.cc:423 #, fuzzy msgid "Send and Save Articles to NZB" msgstr "Pan: Lưu các bài" #: ../pan/gui/post-ui.cc:424 msgid "Set Character _Encoding..." msgstr "Đặt bộ _ký tự..." #: ../pan/gui/post-ui.cc:425 #, fuzzy msgid "Set Content _Transfer Encoding..." msgstr "Đặt bộ _ký tự..." #: ../pan/gui/post-ui.cc:426 msgid "Sa_ve Draft" msgstr "Lư_u nháp" #: ../pan/gui/post-ui.cc:426 msgid "Save as a Draft for Future Posting" msgstr "Lưu dạng nháp để gởi sau" #: ../pan/gui/post-ui.cc:427 msgid "_Open Draft..." msgstr "_Mở nháp..." #: ../pan/gui/post-ui.cc:427 msgid "Open an Article Draft" msgstr "Mở nháp bài" # Literal: don't translate / Nghĩa chữ : đừng dịch #: ../pan/gui/post-ui.cc:432 msgid "_Rot13" msgstr "_Rot13" #: ../pan/gui/post-ui.cc:432 msgid "Rot13 Selected Text" msgstr "Rot13 vùng chọn" #: ../pan/gui/post-ui.cc:433 msgid "Run _Editor" msgstr "Chạy bộ chỉnh _sửa" #: ../pan/gui/post-ui.cc:433 #, fuzzy msgid "Run Editor" msgstr "Chạy bộ chỉnh _sửa" #: ../pan/gui/post-ui.cc:435 msgid "Add _Files to Queue" msgstr "" #: ../pan/gui/post-ui.cc:435 msgid "Add Files to Queue" msgstr "" #: ../pan/gui/post-ui.cc:450 ../pan/gui/post-ui.cc:451 #, fuzzy msgid "Remove from Queue" msgstr "Gỡ bỏ máy phục vụ" #: ../pan/gui/post-ui.cc:455 ../pan/gui/post-ui.cc:456 #, fuzzy msgid "Clear List" msgstr "Xoá bộ lọc" #: ../pan/gui/post-ui.cc:460 ../pan/gui/post-ui.cc:461 #, fuzzy msgid "Select Needed Parts" msgstr "Chọn _mọi bài" #: ../pan/gui/post-ui.cc:465 ../pan/gui/post-ui.cc:466 #: ../pan/gui/task-pane.cc:636 ../pan/gui/task-pane.cc:637 msgid "Move Up" msgstr "" #: ../pan/gui/post-ui.cc:470 ../pan/gui/post-ui.cc:471 #: ../pan/gui/task-pane.cc:641 ../pan/gui/task-pane.cc:642 msgid "Move Down" msgstr "" #: ../pan/gui/post-ui.cc:475 ../pan/gui/post-ui.cc:476 msgid "Move to Top" msgstr "" #: ../pan/gui/post-ui.cc:480 ../pan/gui/post-ui.cc:481 msgid "Move to Bottom" msgstr "" #: ../pan/gui/post-ui.cc:488 msgid "_Wrap Text" msgstr "_Ngắt dòng" #: ../pan/gui/post-ui.cc:488 #, fuzzy msgid "Wrap Text" msgstr "_Ngắt dòng" #: ../pan/gui/post-ui.cc:489 msgid "Always Run Editor" msgstr "Luôn chạy bộ sửa" #: ../pan/gui/post-ui.cc:490 msgid "Remember Character Encoding for this Group" msgstr "Nhớ bộ ký tự cho nhóm này" #: ../pan/gui/post-ui.cc:491 msgid "Thread Attached Replies" msgstr "" #: ../pan/gui/post-ui.cc:492 msgid "PGP-Encrypt the Message" msgstr "" #: ../pan/gui/post-ui.cc:493 msgid "PGP-Sign the Message" msgstr "" #: ../pan/gui/post-ui.cc:494 msgid "Check _Spelling" msgstr "Kiểm tra _chính tả" #: ../pan/gui/post-ui.cc:520 msgid "New Article's Encoding:" msgstr "Bộ ký tự của bài mới:" #: ../pan/gui/post-ui.cc:530 #, fuzzy msgid "Content Transfer Encoding" msgstr "Mã ký tự" #: ../pan/gui/post-ui.cc:531 #, fuzzy msgid "New Article's Content Transfer Encoding:" msgstr "Bộ ký tự của bài mới:" #: ../pan/gui/post-ui.cc:711 msgid "Your changes will be lost!" msgstr "Các thay đổi sẽ bị mất !" #: ../pan/gui/post-ui.cc:712 msgid "Close this window and lose your changes?" msgstr "Đóng cửa sổ này nên mất các thay đổi không?" #: ../pan/gui/post-ui.cc:757 ../pan/gui/post-ui.cc:796 msgid "There were problems with this post." msgstr "Gặp vấn đề với bài gởi này." #: ../pan/gui/post-ui.cc:759 ../pan/gui/post-ui.cc:798 #: ../pan/gui/post-ui.cc:861 msgid "Go Back" msgstr "Lùi" #: ../pan/gui/post-ui.cc:761 msgid "Post Anyway" msgstr "Vẫn gởi bài" #. Prompt the user #: ../pan/gui/post-ui.cc:790 #, c-format msgid "" "Message uses characters not specified in charset '%s' - possibly use '%s' " msgstr "" "Thông điệp dùng các ký tự không nằm trong bộ ký tự « %s » — có thể sử dụng « " "%s »" #: ../pan/gui/post-ui.cc:813 msgid "Go _Online" msgstr "T_rực tuyến" #: ../pan/gui/post-ui.cc:860 msgid "The file queue is empty, so no files can be saved." msgstr "" #: ../pan/gui/post-ui.cc:1019 msgid "" "No posting server is set for this posting profile.\n" "Please edit the profile via Edit|Manage Posting Profiles." msgstr "" "Chưa đặt máy phục vụ gởi bài cho hồ sơ gởi này.\n" "Hãy chỉnh sửa hồ sơ thông qua « Sửa > Quản lý các hồ sơ gởi »." #: ../pan/gui/post-ui.cc:1054 msgid "Pan is Offline." msgstr "Pan hiện thời ngoại tuyến." #: ../pan/gui/post-ui.cc:1055 msgid "Go online to post the article?" msgstr "Lên Mạng để gởi bài này không?" #: ../pan/gui/post-ui.cc:1102 #, c-format msgid "" "Error signing/encrypting your message. Perhaps you misspelled your email-" "address (%s) ?" msgstr "" #: ../pan/gui/post-ui.cc:1267 msgid "Error opening temporary file" msgstr "Gặp lỗi khi mở tập tin tạm thời" #: ../pan/gui/post-ui.cc:1279 #, c-format msgid "Error writing article to temporary file: %s" msgstr "Gặp lỗi khi ghi bài vào tập tin tạm thời : %s" #: ../pan/gui/post-ui.cc:1298 #, c-format msgid "Error parsing \"external editor\" command line: %s (Command was: %s)" msgstr "" "Gặp lỗi khi phân tách dòng lệnh « bộ chỉnh sửa bên ngoài »: %s (Lệnh là: %s)" #: ../pan/gui/post-ui.cc:1339 #, c-format msgid "Error starting external editor: %s" msgstr "Gặp lỗi khi khởi chạy bộ chỉnh sửa bên ngoài: %s" #: ../pan/gui/post-ui.cc:1395 msgid "Open Draft Article" msgstr "Mở bài nháp" #: ../pan/gui/post-ui.cc:1606 msgid "Save Draft Article" msgstr "Lưu bài nháp" #: ../pan/gui/post-ui.cc:1803 #, c-format msgid "Couldn't parse signature command \"%s\": %s" msgstr "Không thể phân tách lệnh chữ ký « %s »: %s" #: ../pan/gui/post-ui.cc:1839 msgid "Couldn't convert signature to UTF-8." msgstr "Không thể chuyển đổi chữ ký sang UTF-8." #: ../pan/gui/post-ui.cc:2334 msgid "F_rom" msgstr "_Từ" #: ../pan/gui/post-ui.cc:2352 msgid "_Subject" msgstr "_Chủ đề" #: ../pan/gui/post-ui.cc:2365 msgid "_Newsgroups" msgstr "_Nhóm tin" #: ../pan/gui/post-ui.cc:2379 msgid "Mail _To" msgstr "Gửi kèm _thư cho" #: ../pan/gui/post-ui.cc:2481 msgid "Delete from Queue" msgstr "" #: ../pan/gui/post-ui.cc:2494 msgid "No." msgstr "" #: ../pan/gui/post-ui.cc:2498 ../pan/gui/post-ui.cc:2592 #: ../pan/gui/post-ui.cc:2633 #, fuzzy msgid "Filename" msgstr "_Tập tin" #: ../pan/gui/post-ui.cc:2500 msgid "Size (kB)" msgstr "" #: ../pan/gui/post-ui.cc:2600 msgid "The current filename" msgstr "" #: ../pan/gui/post-ui.cc:2604 #, fuzzy msgid "Subject Line" msgstr "Chủ đề" #: ../pan/gui/post-ui.cc:2612 msgid "The current Subject Line" msgstr "" #: ../pan/gui/post-ui.cc:2626 msgid "No. " msgstr "" #: ../pan/gui/post-ui.cc:2630 msgid "Enable/Disable" msgstr "" #: ../pan/gui/post-ui.cc:2664 msgid "Follo_wup-To" msgstr "Tiếp th_eo tới" #. i18n: "poster" is a key used by many newsreaders. probably safest to keep this key in english. #: ../pan/gui/post-ui.cc:2673 msgid "" "The newsgroups where replies to your message should go. This is only needed " "if it differs from the \"Newsgroups\" header.\n" "\n" "To direct all replies to your email address, use \"Followup-To: poster\"" msgstr "" "Nhóm tin tới đó trả lời cho bài của bạn nên được gửi. Chỉ cần thiết nếu nó " "khác với dòng đầu « Newsgroups » (Nhóm tin).\n" "\n" "Để chuyển tiếp mọi trả lời cho địa chỉ thư điện tử của bạn, dùng « Followup-" "To: poster »." #: ../pan/gui/post-ui.cc:2679 msgid "_Reply-To" msgstr "T_rả lời cho" #: ../pan/gui/post-ui.cc:2687 msgid "" "The email account where mail replies to your posted message should go. This " "is only needed if it differs from the \"From\" header." msgstr "" "Tài khoản thư điện tử tới đó các thư trả lời cho bài của bạn nên được gửi. " "Chỉ cần thiết nếu nó khác với dòng đầu « From » (Từ:). " #: ../pan/gui/post-ui.cc:2693 msgid "_Custom Headers" msgstr "Dòng đầu tự _chọn" #: ../pan/gui/post-ui.cc:2717 msgid "Add \"_User-Agent\" header" msgstr "Thêm dòng đầu « _User-Agent »" #: ../pan/gui/post-ui.cc:2724 #, fuzzy msgid "Add \"Message-_Id\" header" msgstr "Thêm dòng đầu « Message-_Id »" #: ../pan/gui/post-ui.cc:2855 #, fuzzy msgid "Select Parts" msgstr "Chọn _mọi bài" #: ../pan/gui/post-ui.cc:2866 msgid "_Parts" msgstr "" #: ../pan/gui/post-ui.cc:3022 msgid "Post Article" msgstr "Gởi bài" #: ../pan/gui/post-ui.cc:3043 msgid "_Message" msgstr "_Thông điệp" #: ../pan/gui/post-ui.cc:3044 msgid "More _Headers" msgstr "Dòng đầu t_hêm" #: ../pan/gui/post-ui.cc:3045 msgid "File _Queue" msgstr "" #: ../pan/gui/post-ui.cc:3077 ../pan/gui/profiles-dialog.cc:478 #, no-c-format msgid "On %d, %n wrote:" msgstr "Vào %d, %n đã viết:" #: ../pan/gui/post-ui.cc:3106 msgid "Add files to queue" msgstr "" #: ../pan/gui/post-ui.cc:3184 msgid "Save Upload Queue as NZB File" msgstr "" #: ../pan/gui/prefs.cc:343 #, c-format msgid "Couldn't parse %s color \"%s\"" msgstr "Không thể phân tích màu %s « %s »" #: ../pan/gui/prefs-ui.cc:120 msgid "Grab Key" msgstr "" #: ../pan/gui/prefs-ui.cc:126 #, c-format msgid "" "Press the combination of the keys\n" "you want to use for \"%s\"." msgstr "" #: ../pan/gui/prefs-ui.cc:166 msgid "Edit Hotkey" msgstr "" #: ../pan/gui/prefs-ui.cc:228 msgid "Error: Shortkey is invalid!" msgstr "" #: ../pan/gui/prefs-ui.cc:244 msgid "Error: Shortkey already exists!" msgstr "" #: ../pan/gui/prefs-ui.cc:535 #, fuzzy msgid "Show only icons" msgstr "Hiện thông tin bài" #: ../pan/gui/prefs-ui.cc:536 #, fuzzy msgid "Show only text" msgstr "H_iện ô thân" #: ../pan/gui/prefs-ui.cc:537 #, fuzzy msgid "Show icons and text" msgstr "Lưu các đồ đính kèm và văn bản" #: ../pan/gui/prefs-ui.cc:576 msgid "Use GNOME Preferences" msgstr "Dùng tùy thích của GNOME" #: ../pan/gui/prefs-ui.cc:577 msgid "Use KDE Preferences" msgstr "Dùng tùy thích của KDE" #: ../pan/gui/prefs-ui.cc:578 msgid "Use OS X Preferences" msgstr "Dùng tùy thích của OSX" #: ../pan/gui/prefs-ui.cc:579 msgid "Use Windows Preferences" msgstr "Dùng tùy thích của Windows" #: ../pan/gui/prefs-ui.cc:580 msgid "Custom Command:" msgstr "Lệnh riêng:" #: ../pan/gui/prefs-ui.cc:632 #, fuzzy msgid "Disabled" msgstr "Đã bật" #: ../pan/gui/prefs-ui.cc:633 msgid "Only new (Score == 0)" msgstr "" #: ../pan/gui/prefs-ui.cc:634 #, fuzzy msgid "9999 or more" msgstr "Điểm ≥ 9999:" #: ../pan/gui/prefs-ui.cc:635 #, fuzzy msgid "5000 to 9998" msgstr "Điểm từ 5000 đến 9998:" #: ../pan/gui/prefs-ui.cc:636 msgid "1 to 4999" msgstr "" #: ../pan/gui/prefs-ui.cc:637 #, fuzzy msgid "-9998 to -1" msgstr "Điểm từ -9998 đến -1:" #: ../pan/gui/prefs-ui.cc:638 #, fuzzy msgid "-9999 or less" msgstr "Điểm ≤ -9999:" #: ../pan/gui/prefs-ui.cc:702 #, c-format msgid "Select default global charset. Current setting : %s ." msgstr "" #: ../pan/gui/prefs-ui.cc:738 msgid "Global Charset Settings" msgstr "" #: ../pan/gui/prefs-ui.cc:832 ../pan/gui/task-pane.cc:770 msgid "State" msgstr "Tình trạng" #: ../pan/gui/prefs-ui.cc:866 msgid "Enabled" msgstr "Đã bật" #: ../pan/gui/prefs-ui.cc:870 msgid "Column Name" msgstr "Tên cột" #: ../pan/gui/prefs-ui.cc:908 msgid "Pan: Preferences" msgstr "Pan: Tùy thích" #: ../pan/gui/prefs-ui.cc:923 msgid "Mouse" msgstr "Chuột" #: ../pan/gui/prefs-ui.cc:925 msgid "Single-click activates, rather than selects, _groups" msgstr "Nhấn-đơn kích hoạt _nhóm, hơn là chọn nó" #: ../pan/gui/prefs-ui.cc:927 msgid "Single-click activates, rather than selects, _articles" msgstr "Nhấn-đơn kích hoạt _bài, hơn là chọn nó" #: ../pan/gui/prefs-ui.cc:930 msgid "Groups" msgstr "Nhóm" #: ../pan/gui/prefs-ui.cc:932 msgid "Get new headers in subscribed groups on _startup" msgstr "Lấy các dòng đầu mới trong nhóm đã đăng ký khi khởi chạ_y" #: ../pan/gui/prefs-ui.cc:934 msgid "Get new headers when _entering group" msgstr "Lấy các dòng đầu mới khi _vào nhóm" #: ../pan/gui/prefs-ui.cc:936 msgid "Mark entire group _read when leaving group" msgstr "Đánh dấu mọi bài nhóm đã đọc khi _rời nhóm" #: ../pan/gui/prefs-ui.cc:938 msgid "Mark entire group read before getting _new headers" msgstr "Đá_nh dấu toàn bộ nhóm Đã đọc trước khi lấy dòng đầu mới" #: ../pan/gui/prefs-ui.cc:940 msgid "E_xpand all threads when entering group" msgstr "_Bung ra mọi nhánh khi vào nhóm" #: ../pan/gui/prefs-ui.cc:945 msgid "Articles" msgstr "Bài" #: ../pan/gui/prefs-ui.cc:947 msgid "Space selects next article rather than next unread" msgstr "Phím dài chọn bài kế tiếp, hơn là bài chưa đọc kế tiếp" #: ../pan/gui/prefs-ui.cc:949 #, fuzzy msgid "Expand threads upon selection" msgstr "_Thêm các nhánh vào vùng chọn" #: ../pan/gui/prefs-ui.cc:951 msgid "Always show article deletion confirmation dialog" msgstr "" #: ../pan/gui/prefs-ui.cc:953 msgid "Smooth scrolling" msgstr "Cuộn mịn" #: ../pan/gui/prefs-ui.cc:958 #, fuzzy msgid "Article Cache" msgstr "Xoá bộ nhớ tạm bài" #: ../pan/gui/prefs-ui.cc:959 msgid "Clear article cache on shutdown" msgstr "Xoá bộ nhớ tạm bài khi tắt" #: ../pan/gui/prefs-ui.cc:962 msgid "Size of article cache (in MiB) :" msgstr "" #: ../pan/gui/prefs-ui.cc:967 #, fuzzy msgid "File extension for Cached Articles: " msgstr "Bài đã th_eo dõi kế" #: ../pan/gui/prefs-ui.cc:972 msgid "Tabs" msgstr "" #: ../pan/gui/prefs-ui.cc:977 msgid "_Behavior" msgstr "Ứng _xử" #: ../pan/gui/prefs-ui.cc:977 #, fuzzy msgid "Behavior" msgstr "Ứng _xử" #: ../pan/gui/prefs-ui.cc:983 #, fuzzy msgid "Language Settings" msgstr "Thiết lập" #. systray and notify popup #: ../pan/gui/prefs-ui.cc:992 #, fuzzy msgid "System Tray Behavior" msgstr "Ứng _xử" #: ../pan/gui/prefs-ui.cc:994 msgid "Hide to system tray" msgstr "" #: ../pan/gui/prefs-ui.cc:996 msgid "Start Pan minimized" msgstr "" #: ../pan/gui/prefs-ui.cc:999 #, fuzzy msgid "Show notifications" msgstr "Hiện thông tin bài" #. allow multiple instances (seperate, not communicating with dbus) #: ../pan/gui/prefs-ui.cc:1004 #, fuzzy msgid "Startup Behavior" msgstr "Ứng _xử" #: ../pan/gui/prefs-ui.cc:1006 msgid "Allow multiple instances of Pan" msgstr "" #: ../pan/gui/prefs-ui.cc:1011 #, fuzzy msgid "Autosave Article Draft" msgstr "Mở nháp bài" #: ../pan/gui/prefs-ui.cc:1013 #, fuzzy msgid "Minutes to autosave the current Article Draft: " msgstr "Mở nháp bài" #: ../pan/gui/prefs-ui.cc:1018 #, fuzzy msgid "Autosave Articles" msgstr "Lưu các bài" #: ../pan/gui/prefs-ui.cc:1020 msgid "Minutes to autosave newsrc files: " msgstr "" #: ../pan/gui/prefs-ui.cc:1026 msgid "_Miscellaneous" msgstr "" #: ../pan/gui/prefs-ui.cc:1026 msgid "Miscellaneous" msgstr "" #: ../pan/gui/prefs-ui.cc:1031 msgid "Pane Layout" msgstr "Bố trí ô" #: ../pan/gui/prefs-ui.cc:1050 msgid "1=Groups, 2=Headers, 3=Body" msgstr "1=Nhóm, 2=Dòng đầu, 3=Thân" #: ../pan/gui/prefs-ui.cc:1052 msgid "1=Groups, 2=Body, 3=Headers" msgstr "1=Nhóm, 2=Thân, 3=Dòng đầu" #: ../pan/gui/prefs-ui.cc:1054 msgid "1=Headers, 2=Groups, 3=Body" msgstr "1=Dòng đầu, 2=Nhóm, 3=Thân" #: ../pan/gui/prefs-ui.cc:1056 msgid "1=Headers, 2=Body, 3=Groups" msgstr "1=Dòng đầu, 2=Thân, 3=Nhóm" #: ../pan/gui/prefs-ui.cc:1058 msgid "1=Body, 2=Groups, 3=Headers" msgstr "1=Thân, 2=Nhóm, 3=Dòng đầu" #: ../pan/gui/prefs-ui.cc:1060 msgid "1=Body, 2=Headers, 3=Groups" msgstr "1=Thân, 2=Dòng đầu, 3=Nhóm" #: ../pan/gui/prefs-ui.cc:1064 #, fuzzy msgid "Layout" msgstr "_Bố trị" #: ../pan/gui/prefs-ui.cc:1069 msgid "Header Pane Columns" msgstr "Cột ô dòng đầu" #: ../pan/gui/prefs-ui.cc:1073 msgid "_Headers" msgstr "_Dòng đầu" #: ../pan/gui/prefs-ui.cc:1073 #, fuzzy msgid "Headers" msgstr "_Dòng đầu" #: ../pan/gui/prefs-ui.cc:1079 msgid "" "This menu lets you configure Pan to take certain actions on your behalf " "automatically, based on a post's score." msgstr "" #: ../pan/gui/prefs-ui.cc:1082 msgid "_Delete posts scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1084 msgid "Mark posts _read scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1086 msgid "_Cache posts scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1088 msgid "Download _attachments of posts scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1091 #, fuzzy msgid "Actions" msgstr "_Hành động" #: ../pan/gui/prefs-ui.cc:1096 ../pan/gui/prefs-ui.cc:1117 msgid "Fonts" msgstr "Phông" #: ../pan/gui/prefs-ui.cc:1098 msgid "Use custom font in Group Pane:" msgstr "Dùng phông chữ riêng trong Ô Nhóm:" #: ../pan/gui/prefs-ui.cc:1103 msgid "Use custom font in Header Pane:" msgstr "Dùng phông chữ riêng trong Ô Dòng Đầu :" #: ../pan/gui/prefs-ui.cc:1108 msgid "Use custom font in Body Pane:" msgstr "Dùng phông chữ riêng trong Ô Thân:" #: ../pan/gui/prefs-ui.cc:1113 msgid "Monospace font:" msgstr "Phông chữ đơn cách:" #: ../pan/gui/prefs-ui.cc:1117 msgid "_Fonts" msgstr "_Phông" #: ../pan/gui/prefs-ui.cc:1122 msgid "Header Pane" msgstr "Ô Dòng Đầu" #: ../pan/gui/prefs-ui.cc:1125 ../pan/gui/prefs-ui.cc:1131 #: ../pan/gui/prefs-ui.cc:1137 ../pan/gui/prefs-ui.cc:1143 #: ../pan/gui/prefs-ui.cc:1149 ../pan/gui/prefs-ui.cc:1155 msgid "Text:" msgstr "Đoạn chữ :" #: ../pan/gui/prefs-ui.cc:1127 ../pan/gui/prefs-ui.cc:1133 #: ../pan/gui/prefs-ui.cc:1139 ../pan/gui/prefs-ui.cc:1145 #: ../pan/gui/prefs-ui.cc:1151 ../pan/gui/prefs-ui.cc:1157 msgid "Background:" msgstr "Nền:" #: ../pan/gui/prefs-ui.cc:1129 msgid "Scores of 9999 or more:" msgstr "Điểm ≥ 9999:" #: ../pan/gui/prefs-ui.cc:1135 msgid "Scores from 5000 to 9998:" msgstr "Điểm từ 5000 đến 9998:" #: ../pan/gui/prefs-ui.cc:1141 msgid "Scores from 1 to 4999:" msgstr "Điểm từ 1 đến 4999:" #: ../pan/gui/prefs-ui.cc:1147 msgid "Scores from -9998 to -1:" msgstr "Điểm từ -9998 đến -1:" #: ../pan/gui/prefs-ui.cc:1153 msgid "Scores of -9999 or less:" msgstr "Điểm ≤ -9999:" #: ../pan/gui/prefs-ui.cc:1159 msgid "Read collapsed thread:" msgstr "" #: ../pan/gui/prefs-ui.cc:1161 msgid "Body Pane" msgstr "Ô thân" #: ../pan/gui/prefs-ui.cc:1167 #, fuzzy msgid "Quoted text:" msgstr "Trích dẫn:" #: ../pan/gui/prefs-ui.cc:1168 msgid "URL:" msgstr "URL:" #: ../pan/gui/prefs-ui.cc:1169 msgid "Signature:" msgstr "Chữ ký:" #: ../pan/gui/prefs-ui.cc:1171 msgid "_Colors" msgstr "Màu sắ_c" #: ../pan/gui/prefs-ui.cc:1171 #, fuzzy msgid "Colors" msgstr "Màu sắ_c" #: ../pan/gui/prefs-ui.cc:1176 msgid "Preferred Applications" msgstr "Ứng dụng ưa thích" #: ../pan/gui/prefs-ui.cc:1180 #, fuzzy msgid "_Web browser:" msgstr "Bộ duyệt _Mạng:" #: ../pan/gui/prefs-ui.cc:1183 #, fuzzy msgid "_Mail reader:" msgstr "_Trình đọc thư :" #: ../pan/gui/prefs-ui.cc:1185 #, fuzzy msgid "_Text editor:" msgstr "Bộ sửa _văn bản:" #: ../pan/gui/prefs-ui.cc:1187 #, fuzzy msgid "_Applications" msgstr "Ứng _dụng" #: ../pan/gui/prefs-ui.cc:1187 #, fuzzy msgid "Applications" msgstr "Ứng _dụng" #: ../pan/gui/prefs-ui.cc:1192 ../pan/gui/task-pane.cc:512 #, fuzzy msgid "Encoding" msgstr "Đang giải mã" #: ../pan/gui/prefs-ui.cc:1196 msgid "Default bytes per file (for encoder): " msgstr "" #: ../pan/gui/prefs-ui.cc:1201 #, fuzzy msgid "_Upload" msgstr "Ứng _dụng" #: ../pan/gui/prefs-ui.cc:1201 msgid "Upload" msgstr "" #: ../pan/gui/prefs-ui.cc:1219 msgid "_Hotkeys" msgstr "" #: ../pan/gui/prefs-ui.cc:1219 msgid "Hotkeys" msgstr "" #: ../pan/gui/profiles-dialog.cc:83 msgid "Please choose your Email Address according to your PGP key's user id." msgstr "" #: ../pan/gui/profiles-dialog.cc:131 msgid "Posting Profile" msgstr "Hồ sơ gởi" #: ../pan/gui/profiles-dialog.cc:143 msgid "Profile Information" msgstr "Thông tin hồ sơ" #: ../pan/gui/profiles-dialog.cc:147 msgid "_Profile Name:" msgstr "Tên _Hồ sơ :" #: ../pan/gui/profiles-dialog.cc:150 msgid "Required Information" msgstr "Thông tin cần thiết" #: ../pan/gui/profiles-dialog.cc:154 msgid "_Full Name:" msgstr "_Họ tên:" #: ../pan/gui/profiles-dialog.cc:158 msgid "" "Your Email Address.\n" "Note that this has to match your PGP Signature's Address\n" "if you want to PGP-Sign or Encrypt your messages correctly." msgstr "" #: ../pan/gui/profiles-dialog.cc:162 msgid "_Email Address:" msgstr "Đị_a chỉ thư :" #: ../pan/gui/profiles-dialog.cc:164 msgid "_Post Articles via:" msgstr "Gởi bài _qua:" #: ../pan/gui/profiles-dialog.cc:167 msgid "Signature" msgstr "Chữ ký" #: ../pan/gui/profiles-dialog.cc:170 msgid "_Use a Signature" msgstr "Thêm chữ _ký" #: ../pan/gui/profiles-dialog.cc:174 msgid "Signature File" msgstr "Tập tin chữ ký" #: ../pan/gui/profiles-dialog.cc:184 msgid "Text File" msgstr "Tập tin văn bản" #: ../pan/gui/profiles-dialog.cc:186 msgid "Text" msgstr "Đoạn chữ" #: ../pan/gui/profiles-dialog.cc:188 msgid "Command" msgstr "Lệnh" #: ../pan/gui/profiles-dialog.cc:191 #, fuzzy msgid "PGP Signature" msgstr "Chữ ký" #: ../pan/gui/profiles-dialog.cc:196 #, fuzzy msgid "Signature Type : " msgstr "Kiể_u chữ ký:" #: ../pan/gui/profiles-dialog.cc:223 msgid "X-Face (Avatar)" msgstr "" #: ../pan/gui/profiles-dialog.cc:226 msgid "" "You can add an avatar icon to your articles with a unique X-Face code. \n" "Add the code without the trailing \"X-Face:\" \n" " if it was generated by a helper program (for example http://www.dairiki.org/" "xface/xface.php)." msgstr "" #: ../pan/gui/profiles-dialog.cc:229 msgid "_X-Face:" msgstr "" #: ../pan/gui/profiles-dialog.cc:231 msgid "Optional Information" msgstr "Thông tin tùy chọn" #: ../pan/gui/profiles-dialog.cc:236 #, fuzzy msgid "" "When posting to Usenet, your article's Message-ID contains a domain name. \n" "You can set a custom domain name here, or leave it blank to let Pan use the " "domain name from your email address." msgstr "" "Khi gửi bài cho USENET, mã nhận diện (Message-ID) của bài chứa tên miền. Ở " "đây thì bạn có thể đặt tên miền riêng, hoặc bỏ rỗng để cho Pan sử dung tên " "miền từ địa chỉ thư điện tử của bạn." #: ../pan/gui/profiles-dialog.cc:239 msgid "Message-ID _Domain Name:" msgstr "Tên miền « Message-I_D »:" #: ../pan/gui/profiles-dialog.cc:243 #, c-format msgid "" "%i for Message-ID\n" "%a for Author and Address\n" "%n for Author name\n" "%d for Date" msgstr "" "%i cho mã nhận diện thông điệp\n" "%a cho Tác giả và Địa chỉ\n" "%n cho tên Tác giả\n" "%d cho Ngày" #: ../pan/gui/profiles-dialog.cc:244 msgid "_Attribution:" msgstr "Quy r_a:" #: ../pan/gui/profiles-dialog.cc:268 #, fuzzy msgid "" "Extra headers to be included in your posts, such as\n" "Reply-To: \"Your Name\"\n" "Organization: Your Organization\n" msgstr "" "Các dòng đầu thêm cần gồm trong bài gởi của bạn, v.d.\n" "Reply-To: (Trả lời cho) \"Họ tên của bạn\" \n" "Organization: (Tổ chức) Tổ chức của bạn" #: ../pan/gui/profiles-dialog.cc:278 msgid "E_xtra Headers:" msgstr "Dòng đầu thê_m:" #: ../pan/gui/profiles-dialog.cc:323 msgid "Invalid email address." msgstr "Địa chỉ thư điện tử không hợp lệ." #: ../pan/gui/profiles-dialog.cc:324 msgid "Please use an address of the form joe@somewhere.org" msgstr "Hãy sử dụng một địa chỉ có dạng ." #: ../pan/gui/profiles-dialog.cc:479 msgid "New Profile" msgstr "Hồ sơ mới" #: ../pan/gui/profiles-dialog.cc:525 msgid "Posting Profiles" msgstr "Hồ sơ gởi" #: ../pan/gui/profiles-dialog.cc:541 msgid "Profiles" msgstr "Hồ sơ" #: ../pan/gui/save-attach-ui.cc:77 ../pan/gui/save-ui.cc:77 #, fuzzy, c-format msgid "" "%g - group as one directory (alt.binaries.pictures.trains)\n" "%G - group as nested directory (/alt/binaries/pictures/trains)\n" "%s - subject line excerpt\n" "%S - subject line\n" " \n" "\"/home/user/News/Pan/%g\" becomes\n" "\"/home/user/News/Pan/alt.binaries.pictures.trains\", and\n" "\"/home/user/News/Pan/%G\" becomes\n" "\"/home/user/News/Pan/alt/binaries/pictures/trains\"," msgstr "" "%g — nhóm lại cùng một thư mục (soc.culture.vietnamese)\n" "%G — nhóm lại dạng thư mục lồng nhau (/soc/culture/vietnamese)\n" " \n" " trở thành\n" ", và\n" " trở thành\n" "," #: ../pan/gui/save-attach-ui.cc:223 ../pan/gui/save-ui.cc:242 msgid "Add to the queue sorted by date posted" msgstr "Thêm vào đợi hàng được sắp xếp theo ngày gửi" #: ../pan/gui/save-attach-ui.cc:224 ../pan/gui/save-ui.cc:243 msgid "Add to the front of the queue" msgstr "Thêm vào đầu đợi hàng" #: ../pan/gui/save-attach-ui.cc:225 ../pan/gui/save-ui.cc:244 msgid "Add to the back of the queue" msgstr "Thêm vào cuối đợi hàng" #: ../pan/gui/save-attach-ui.cc:257 #, fuzzy msgid "Pan: Save Attachments" msgstr "Lưu các đồ đính _kèm" #: ../pan/gui/save-attach-ui.cc:282 ../pan/gui/save-attach-ui.cc:300 #: ../pan/gui/save-ui.cc:296 ../pan/gui/save-ui.cc:314 msgid "_Location:" msgstr "Đị_a điểm:" #: ../pan/gui/save-attach-ui.cc:286 ../pan/gui/save-ui.cc:300 msgid "Save Articles" msgstr "Lưu các bài" #: ../pan/gui/save-attach-ui.cc:303 ../pan/gui/save-ui.cc:317 #, c-format msgid "_Group's path: %s" msgstr "Đườn_g dẫn nhóm: %s" #: ../pan/gui/save-attach-ui.cc:314 ../pan/gui/save-ui.cc:332 msgid "_Priority:" msgstr "Ư_u tiên:" #: ../pan/gui/save-ui.cc:233 msgid "Save attachments" msgstr "Lưu các đồ đính kèm" #: ../pan/gui/save-ui.cc:234 msgid "Save text" msgstr "Lưu văn bản" #: ../pan/gui/save-ui.cc:235 msgid "Save attachments and text" msgstr "Lưu các đồ đính kèm và văn bản" #: ../pan/gui/save-ui.cc:271 msgid "Pan: Save Articles" msgstr "Pan: Lưu các bài" #: ../pan/gui/save-ui.cc:328 msgid "_Action:" msgstr "_Hành động:" #: ../pan/gui/score-add-ui.cc:89 msgid "is more than" msgstr "hơn" #: ../pan/gui/score-add-ui.cc:90 msgid "is at most" msgstr "nhiều nhất là" #: ../pan/gui/score-add-ui.cc:112 msgid "increase the article's score by" msgstr "tăng điểm của bài theo" #: ../pan/gui/score-add-ui.cc:113 msgid "decrease the article's score by" msgstr "giảm điểm của bài theo" #: ../pan/gui/score-add-ui.cc:114 msgid "set the article's score to" msgstr "đặt điểm của bài thành" #: ../pan/gui/score-add-ui.cc:115 msgid "watch the article (set its score to 9999)" msgstr "theo dõi bài (đặt điểm thành 9999)" #: ../pan/gui/score-add-ui.cc:116 msgid "ignore the article (set its score to -9999)" msgstr "bỏ qua bài (đặt điểm thành -9999)" #: ../pan/gui/score-add-ui.cc:141 msgid "References" msgstr "Tham chiếu" #: ../pan/gui/score-add-ui.cc:142 msgid "Line Count" msgstr "Tổng số dòng" #: ../pan/gui/score-add-ui.cc:143 msgid "Byte Count" msgstr "Tổng số byte" #: ../pan/gui/score-add-ui.cc:144 msgid "Crosspost Group Count" msgstr "Tổng số nhóm đã gởi chéo" #: ../pan/gui/score-add-ui.cc:145 msgid "Age (in days)" msgstr "Thời gian hoạt động (theo ngày)" #: ../pan/gui/score-add-ui.cc:167 msgid "for the next month" msgstr "trong tháng tới" #: ../pan/gui/score-add-ui.cc:168 msgid "for the next six months" msgstr "trong sáu tháng tới" #: ../pan/gui/score-add-ui.cc:169 msgid "forever" msgstr "luôn luôn" #: ../pan/gui/score-add-ui.cc:194 msgid "contains" msgstr "chứa" #: ../pan/gui/score-add-ui.cc:195 msgid "doesn't contain" msgstr "không chứa" #: ../pan/gui/score-add-ui.cc:196 msgid "is" msgstr "là" #: ../pan/gui/score-add-ui.cc:197 msgid "isn't" msgstr "không là" #: ../pan/gui/score-add-ui.cc:198 msgid "starts with" msgstr "bắt đầu với" #: ../pan/gui/score-add-ui.cc:199 msgid "ends with" msgstr "kết thúc với" #: ../pan/gui/score-add-ui.cc:200 msgid "matches regex" msgstr "khớp biểu thức chính quy" #: ../pan/gui/score-add-ui.cc:481 msgid "Another rule already sets this article's score." msgstr "Một quy tắc khác đã đặt điểm của bài này." #: ../pan/gui/score-add-ui.cc:482 msgid "You may want to go back or delete the old rule." msgstr "Bạn có thể muốn trả về để xoá bỏ quy tắc cũ." #: ../pan/gui/score-add-ui.cc:553 msgid "Add and Re_score" msgstr "Thêm và tái _ghi điểm" #: ../pan/gui/score-add-ui.cc:604 ../pan/gui/score-add-ui.cc:624 msgid "New Scoring Rule" msgstr "Quy tắc ghi điểm mới" #: ../pan/gui/score-add-ui.cc:635 msgid "If the group name" msgstr "nếu tên nhóm" #: ../pan/gui/score-add-ui.cc:642 msgid "And the article's" msgstr "Cũng điều của bài" #: ../pan/gui/score-view-ui.cc:56 msgid "Close and Re_score" msgstr "Đóng và tái _ghi điểm" #: ../pan/gui/score-view-ui.cc:154 #, c-format msgid "File %s, Lines %d - %d" msgstr "Tập tin %s, dòng %d - %d" #: ../pan/gui/score-view-ui.cc:182 msgid "Pan: Article's Scores" msgstr "Pan: điểm của bài" #: ../pan/gui/score-view-ui.cc:208 msgid "Add" msgstr "Thêm" #: ../pan/gui/score-view-ui.cc:213 msgid "New Score" msgstr "Điểm mới" #: ../pan/gui/score-view-ui.cc:218 msgid "Criteria" msgstr "Tiêu chí" #: ../pan/gui/score-view-ui.cc:241 msgid "Add a New Scoring Rule" msgstr "Thêm một quy tắc ghi điểm mới" #: ../pan/gui/score-view-ui.cc:248 msgid "Remove the Selected Scoring Rule" msgstr "Gỡ bỏ quy tắc ghi điểm đã chọn" #: ../pan/gui/server-ui.cc:221 msgid "Please specify the server's address." msgstr "Hãy xác định địa chỉ của máy phục vụ." #: ../pan/gui/server-ui.cc:264 msgid "Import SSL certificate (PEM format) from File" msgstr "" #. create the dialog #: ../pan/gui/server-ui.cc:290 ../pan/gui/server-ui.cc:869 msgid "Add a Server" msgstr "Thêm máy phục vụ" #: ../pan/gui/server-ui.cc:290 ../pan/gui/server-ui.cc:875 msgid "Edit a Server's Settings" msgstr "Sửa thiết lập máy phục vụ" #: ../pan/gui/server-ui.cc:310 msgid "Location" msgstr "Địa điểm" #: ../pan/gui/server-ui.cc:314 msgid "The news server's actual address, e.g. \"news.mynewsserver.com\"" msgstr "Địa chỉ thật của máy phục vụ tin tức, v.d. " #: ../pan/gui/server-ui.cc:315 msgid "_Address:" msgstr "Đị_a chỉ:" #: ../pan/gui/server-ui.cc:319 msgid "The news server's port number. Typically 119." msgstr "Số hiệu cổng của máy phục vụ tin tức: thường là 119." #: ../pan/gui/server-ui.cc:320 msgid "Por_t:" msgstr "_Cổng:" #: ../pan/gui/server-ui.cc:323 msgid "Login (if Required)" msgstr "Đăng nhập (nếu cần)" #: ../pan/gui/server-ui.cc:327 msgid "_Username:" msgstr "Tên _người dùng:" #: ../pan/gui/server-ui.cc:328 msgid "" "The username to give the server when asked. If your server doesn't require " "authentication, you can leave this blank." msgstr "" "Tên người dùng cần nhập vào máy phục vụ khi được nhắc. Nếu máy phục vụ không " "cần xác thực, bạn có thể bỏ trống trường này." #: ../pan/gui/server-ui.cc:332 msgid "_Password:" msgstr "_Mật khẩu :" #: ../pan/gui/server-ui.cc:333 msgid "" "The password to give the server when asked. If your server doesn't require " "authentication, you can leave this blank." msgstr "" "Mật khẩu cần nhập vào máy phục vụ khi được nhắc. Nếu máy phục vụ không cần " "xác thực, bạn có thể bỏ trống trường này." #: ../pan/gui/server-ui.cc:336 msgid "Settings" msgstr "Thiết lập" #: ../pan/gui/server-ui.cc:343 msgid "Connection _Limit:" msgstr "_Hạn chế kết nối" #: ../pan/gui/server-ui.cc:347 msgid "After Two Weeks" msgstr "Sau hai tuần" #: ../pan/gui/server-ui.cc:348 msgid "After One Month" msgstr "Sau một tháng" #: ../pan/gui/server-ui.cc:349 msgid "After Two Months" msgstr "Sau hai tháng" #: ../pan/gui/server-ui.cc:350 msgid "After Three Months" msgstr "Sau ba tháng" #: ../pan/gui/server-ui.cc:351 msgid "After Six Months" msgstr "Sau sáu tháng" #: ../pan/gui/server-ui.cc:352 msgid "Never Expire Old Articles" msgstr "Không bao giờ làm cho bài cũ hết hạn" #: ../pan/gui/server-ui.cc:366 msgid "E_xpire Old Articles:" msgstr "Làm ch_o bài cũ hết hạn:" #: ../pan/gui/server-ui.cc:370 msgid "Primary" msgstr "Chính" #: ../pan/gui/server-ui.cc:371 msgid "Fallback" msgstr "Phụ" #: ../pan/gui/server-ui.cc:385 msgid "Server Rank:" msgstr "Cấp máy phục vụ :" #: ../pan/gui/server-ui.cc:389 msgid "" "Fallback servers are used for articles that can't be found on the " "primaries. One common approach is to use free servers as primaries and " "subscription servers as fallbacks." msgstr "" "Máy phục vụ phụ được dùng cho các bài không tìm thấy trên các máy phục vụ " "chính. Một phương pháp thường dùng là sử dụng các máy phục vụ miễn phí là " "máy chính, chỉ dùng máy phục vụ cần đăng ký là máy phụ." #: ../pan/gui/server-ui.cc:396 msgid "Security" msgstr "" #: ../pan/gui/server-ui.cc:401 msgid "Use Plaintext (Unsecured) Connections" msgstr "" #: ../pan/gui/server-ui.cc:402 #, fuzzy msgid "Use Secure SSL Connections" msgstr "Không có kết nối" #: ../pan/gui/server-ui.cc:418 msgid "TLS (SSL) Options:" msgstr "" #: ../pan/gui/server-ui.cc:423 msgid "" "You can set the option for using/disabling secure SSL/TLS connections here. " "If you enable SSL/TLS, your data is encrypted and secure. It is encouraged " "to use this option for privacy reasons." msgstr "" #: ../pan/gui/server-ui.cc:428 msgid "Always trust this server's certificate" msgstr "" #: ../pan/gui/server-ui.cc:602 #, c-format msgid "Really delete \"%s\"?" msgstr "Bạn thật sự muốn xoá bỏ « %s » không ?" #: ../pan/gui/server-ui.cc:691 msgid "No information available." msgstr "" #: ../pan/gui/server-ui.cc:697 #, c-format msgid "Server Certificate for '%s'" msgstr "" #: ../pan/gui/server-ui.cc:795 #, fuzzy, c-format msgid "Really delete certificate for \"%s\"?" msgstr "Bạn thật sự muốn xoá bỏ « %s » không ?" #. dialog #: ../pan/gui/server-ui.cc:822 ../pan/gui/server-ui.cc:843 #: ../pan/gui/server-ui.cc:941 msgid "Servers" msgstr "Máy phục vụ" #: ../pan/gui/server-ui.cc:882 msgid "Remove a Server" msgstr "Gỡ bỏ máy phục vụ" #. dialog #: ../pan/gui/server-ui.cc:915 msgid "SSL Certificates" msgstr "" #: ../pan/gui/server-ui.cc:936 msgid "Certificates" msgstr "" #: ../pan/gui/server-ui.cc:967 msgid "Import Certificate" msgstr "" #: ../pan/gui/server-ui.cc:973 msgid "Inspect Certificate" msgstr "" #: ../pan/gui/server-ui.cc:980 #, fuzzy msgid "Remove Certificate" msgstr "Gỡ bỏ máy phục vụ" #: ../pan/gui/task-pane.cc:143 #, c-format msgid "" "\n" "Upload\n" "\n" "Subject: \"%s\"\n" "From: %s\n" "Groups: %s\n" "Sourcefile: %s\n" msgstr "" #: ../pan/gui/task-pane.cc:155 #, c-format msgid "" "\n" "Download\n" "\n" "Subject: \"%s\"\n" "From: %s\n" "Date: %s\n" "Groups: %s\n" "Save Path: %s\n" msgstr "" #: ../pan/gui/task-pane.cc:157 #, fuzzy msgid "unknown" msgstr "Không rõ" #: ../pan/gui/task-pane.cc:263 msgid "Choose new destination for selected Tasks" msgstr "" #: ../pan/gui/task-pane.cc:417 #, c-format msgid "Pan: Tasks (%d Queued, %d Running, %d Stopped)" msgstr "Pan: tác vụ (%d đợi, %d đang chạy, %d bị ngừng)" #: ../pan/gui/task-pane.cc:419 #, c-format msgid "Pan: Tasks (%d Queued, %d Running)" msgstr "Pan: tác vụ (%d đợi, %d đang chạy)" #: ../pan/gui/task-pane.cc:421 #, c-format msgid "Pan: Tasks" msgstr "Pan: tác vụ" #: ../pan/gui/task-pane.cc:446 #, c-format msgid "%lu selected, %s" msgstr "%lu đã chọn, %s" #: ../pan/gui/task-pane.cc:510 msgid "Running" msgstr "Đang chạy" #: ../pan/gui/task-pane.cc:511 msgid "Decoding" msgstr "Đang giải mã" #: ../pan/gui/task-pane.cc:513 msgid "Queued for Decode" msgstr "Đã thêm vào hàng đợi để giải mã" #: ../pan/gui/task-pane.cc:514 #, fuzzy msgid "Queued for Encode" msgstr "Đã thêm vào hàng đợi để giải mã" #: ../pan/gui/task-pane.cc:515 msgid "Queued" msgstr "Đợi" #: ../pan/gui/task-pane.cc:516 msgid "Stopped" msgstr "Bị ngừng" #: ../pan/gui/task-pane.cc:517 msgid "Removing" msgstr "Đang gỡ bỏ" #: ../pan/gui/task-pane.cc:546 #, c-format msgid "%d%% Done" msgstr "%d%% đã xong" #: ../pan/gui/task-pane.cc:552 #, c-format msgid "%d:%02d:%02d Remaining (%d @ %lu KiB/s)" msgstr "%d:%02d:%02d còn lại (%d @ %lu KiB/s)" #: ../pan/gui/task-pane.cc:646 ../pan/gui/task-pane.cc:647 msgid "Move To Top" msgstr "" #: ../pan/gui/task-pane.cc:651 ../pan/gui/task-pane.cc:652 msgid "Move To Bottom" msgstr "" #: ../pan/gui/task-pane.cc:656 ../pan/gui/task-pane.cc:657 #, fuzzy msgid "Stop Task" msgstr "Dừng các tác vụ" #: ../pan/gui/task-pane.cc:661 ../pan/gui/task-pane.cc:662 #, fuzzy msgid "Delete Task" msgstr "Xoá bỏ các tác vụ" #: ../pan/gui/task-pane.cc:666 ../pan/gui/task-pane.cc:667 #, fuzzy msgid "Restart Task" msgstr "Khởi chạy lại các tác vụ" #: ../pan/gui/task-pane.cc:671 ../pan/gui/task-pane.cc:672 msgid "Change Download Destination" msgstr "" #: ../pan/gui/task-pane.cc:729 msgid "_Online" msgstr "T_rực tuyến" #: ../pan/gui/task-pane.cc:746 msgid "Restart Tasks" msgstr "Khởi chạy lại các tác vụ" #: ../pan/gui/task-pane.cc:748 msgid "Stop Tasks" msgstr "Dừng các tác vụ" #: ../pan/gui/task-pane.cc:750 msgid "Delete Tasks" msgstr "Xoá bỏ các tác vụ" #: ../pan/gui/url.cc:123 #, c-format msgid "Error starting URL: %s (Command was: %s)" msgstr "Gặp lỗi khi khởi chạy địa chỉ URI: %s (lệnh là: %s)" #: ../pan/tasks/decoder.cc:115 #, c-format msgid "Couldn't save file \"%s\": %s" msgstr "Không thể lưu tập tin « %s »: %s" #: ../pan/tasks/decoder.cc:137 ../pan/tasks/encoder.cc:136 msgid "Error initializing uulib" msgstr "Gặp lỗi khi khởi tạo uulib" #: ../pan/tasks/decoder.cc:152 ../pan/tasks/socket-impl-gio.cc:352 #: ../pan/tasks/socket-impl-openssl.cc:634 #, c-format msgid "Error reading from %s: %s" msgstr "Gặp lỗi khi đọc từ %s: %s" #: ../pan/tasks/decoder.cc:192 #, c-format msgid "Saved \"%s\"" msgstr "Mới lưu « %s »" #: ../pan/tasks/decoder.cc:199 #, c-format msgid "" "Error saving \"%s\":\n" "%s." msgstr "" "Gặp lỗi khi lưu « %s »:\n" "%s." #: ../pan/tasks/decoder.cc:314 ../pan/tasks/task-article.cc:350 #, c-format msgid "Decoding %s" msgstr "Đang giải mã %s" #: ../pan/tasks/encoder.cc:102 ../pan/tasks/encoder.cc:155 #, fuzzy, c-format msgid "Error loading %s from cache." msgstr "Gặp lỗi khi đọc từ %s: %s" #: ../pan/tasks/encoder.cc:177 #, fuzzy, c-format msgid "Error encoding %s: %s" msgstr "Gặp lỗi khi đọc từ %s: %s" #: ../pan/tasks/encoder.cc:269 #, fuzzy, c-format msgid "Encoding %s" msgstr "Đang giải mã" #: ../pan/tasks/nntp.cc:126 #, c-format msgid "%s requires a username, but none is set." msgstr "%s cần thiết một tên người dùng, nhưng chưa đặt." #: ../pan/tasks/nntp.cc:139 #, c-format msgid "%s requires a password, but none is set." msgstr "%s cần thiết một mật khẩu, nhưng chưa đặt." #: ../pan/tasks/nntp.cc:205 #, c-format msgid "Sending \"%s\" to %s returned an error: %s" msgstr "Việc gửi « %s » cho %s đá trả lại lỗi: %s" #: ../pan/tasks/nntp.cc:228 #, c-format msgid "Sending \"%s\" to %s returned an unrecognized response: \"%s\"" msgstr "Việc gửi « %s » cho %s đá trả lại đáp ứng không nhận ra: « %s »" #: ../pan/tasks/nntp-pool.cc:222 #, c-format msgid "Unable to connect to \"%s\"" msgstr "Không thể kết nối tới « %s »" #: ../pan/tasks/socket-impl-gio.cc:173 ../pan/tasks/socket-impl-gio.cc:211 #: ../pan/tasks/socket-impl-openssl.cc:214 #: ../pan/tasks/socket-impl-openssl.cc:252 #, c-format msgid "Error connecting to \"%s\"" msgstr "Gặp lỗi khi kết nối tới « %s »" #: ../pan/tasks/socket-impl-gio.cc:351 ../pan/tasks/socket-impl-openssl.cc:633 msgid "Unknown Error" msgstr "Lỗi không rõ" #: ../pan/tasks/task-article.cc:61 ../pan/tasks/task-article.cc:156 #: ../pan/tasks/task-article.cc:159 #, c-format msgid "Saving %s" msgstr "Đang lưu %s" #: ../pan/tasks/task-article.cc:63 #, c-format msgid "Reading %s" msgstr "Đang đọc %s" #: ../pan/tasks/task-article.cc:322 #, c-format msgid "Article \"%s\" is incomplete -- the news server(s) don't have part %s" msgstr "" "Bài « %s » không hoàn thành — (các) máy phục vụ tin tức không có phần %s" #: ../pan/tasks/task-groups.cc:40 #, c-format msgid "Getting group list from \"%s\"" msgstr "Đang lấy danh sách nhóm từ « %s »" #: ../pan/tasks/task-groups.cc:122 #, c-format msgid "Fetched %lu Groups" msgstr "Mới lấy %lu nhóm" #: ../pan/tasks/task-post.cc:35 #, c-format msgid "Posting \"%s\"" msgstr "Đang gởi bài « %s »" #: ../pan/tasks/task-post.cc:76 #, fuzzy, c-format msgid "Posting of \"%s\" failed: %s" msgstr "Hồ sơ gởi" #: ../pan/tasks/task-post.cc:81 #, c-format msgid "Posting of \"%s\" succesful: %s" msgstr "" #: ../pan/tasks/task-upload.cc:51 #, fuzzy, c-format msgid "Uploading %s" msgstr "Đang đọc %s" #: ../pan/tasks/task-upload.cc:249 #, c-format msgid "Uploading %s - Part %d of %d" msgstr "" #: ../pan/tasks/task-upload.cc:251 #, c-format msgid "Uploading Message body with Subject \"%s\"" msgstr "" #: ../pan/tasks/task-upload.cc:308 #, c-format msgid "Posting of File %s (Part %d of %d) failed: No Posts allowed by server." msgstr "" #: ../pan/tasks/task-upload.cc:316 #, fuzzy, c-format msgid "Posting of File %s (Part %d of %d) failed: %s" msgstr "Hồ sơ gởi" #: ../pan/tasks/task-upload.cc:326 ../pan/tasks/task-upload.cc:333 #, c-format msgid "Posting of file %s (Part %d of %d) succesful: %s" msgstr "" #: ../pan/tasks/task-upload.cc:343 #, fuzzy, c-format msgid "Posting of file %s succesful: %s" msgstr "Hồ sơ gởi" #: ../pan/tasks/task-upload.cc:347 #, c-format msgid "" "Posting of file %s not completely successful: Check the log (right-click on " "list item) !" msgstr "" #: ../pan/tasks/task-upload.cc:364 #, c-format msgid "" "Posting of file %s not successful: Check the log (right-click on list item) !" msgstr "" #: ../pan/tasks/task-xover.cc:79 #, c-format msgid "Getting all headers for \"%s\"" msgstr "Đang lấy mọi dòng đầu « %s »" #: ../pan/tasks/task-xover.cc:81 #, c-format msgid "Getting new headers for \"%s\"" msgstr "Đang lấy các dòng đầu mới cho « %s »" #. SAMPLE #: ../pan/tasks/task-xover.cc:83 #, c-format msgid "Sampling headers for \"%s\"" msgstr "Đang lấy mẫu dòng đầu cho « %s »" #: ../pan/tasks/task-xover.cc:369 #, c-format msgid "%s (%lu parts, %lu articles)" msgstr "%s (%lu phần, %lu bài)" #: ../pan/tasks/task-xoverinfo.cc:78 #, fuzzy, c-format msgid "Getting header counts for \"%s\"" msgstr "Đang lấy mọi dòng đầu « %s »" #: ../pan/usenet-utils/filter-info.cc:163 msgid "article doesn't have attachments" msgstr "bài không có đồ đính kèm" #: ../pan/usenet-utils/filter-info.cc:167 msgid "the article has attachments" msgstr "bài này có đồ đính kèm" #: ../pan/usenet-utils/filter-info.cc:171 msgid "the article isn't cached locally" msgstr "bài không được lưu tạm cục bộ" #: ../pan/usenet-utils/filter-info.cc:175 msgid "the article is cached locally" msgstr "bài được lưu tạm cục bộ" #: ../pan/usenet-utils/filter-info.cc:179 msgid "the article wasn't posted by you" msgstr "bài không phải của tôi gở" #: ../pan/usenet-utils/filter-info.cc:183 msgid "the article was posted by you" msgstr "bài của tôi gởi" #: ../pan/usenet-utils/filter-info.cc:187 msgid "the article has been read" msgstr "bài đã được đọc" #: ../pan/usenet-utils/filter-info.cc:191 msgid "the article hasn't been read" msgstr "bài chưa được đọc" #: ../pan/usenet-utils/filter-info.cc:195 #, c-format msgid "the article is less than %ld bytes long" msgstr "bài dài nhỏ hơn %ld byte" #: ../pan/usenet-utils/filter-info.cc:200 #, c-format msgid "the article is at least %ld bytes long" msgstr "bài dài ít nhất %ld byte" #: ../pan/usenet-utils/filter-info.cc:205 #, c-format msgid "the article is less than %ld lines long" msgstr "bài dài ít hơn %ld dòng" #: ../pan/usenet-utils/filter-info.cc:210 #, c-format msgid "the article is at least %ld lines long" msgstr "bài dài ít nhất %ld dòng" #: ../pan/usenet-utils/filter-info.cc:215 #, c-format msgid "the article is less than %ld days old" msgstr "bài hoạt động trong ít hơn %ld ngày" #: ../pan/usenet-utils/filter-info.cc:220 #, c-format msgid "the article is at least %ld days old" msgstr "bài hoạt động trong ít nhất %ld ngày" #: ../pan/usenet-utils/filter-info.cc:225 #, c-format msgid "the article was posted to less than %ld groups" msgstr "bài được gởi chéo tới ít hơn %ld nhóm" #: ../pan/usenet-utils/filter-info.cc:230 #, c-format msgid "the article was posted to at least %ld groups" msgstr "bài được gởi chéo tới ít nhất %ld nhóm" #: ../pan/usenet-utils/filter-info.cc:235 #, c-format msgid "the article's score is less than %ld" msgstr "điểm bài dưới %ld" #: ../pan/usenet-utils/filter-info.cc:240 #, c-format msgid "the article's score is %ld or higher" msgstr "bài có điểm ít nhất %ld" #: ../pan/usenet-utils/filter-info.cc:249 #: ../pan/usenet-utils/filter-info.cc:259 #, c-format msgid "%s doesn't contain \"%s\"" msgstr "%s không chứa « %s »" #: ../pan/usenet-utils/filter-info.cc:250 #: ../pan/usenet-utils/filter-info.cc:260 #, c-format msgid "%s isn't \"%s\"" msgstr "%s: không phải là « %s »" #: ../pan/usenet-utils/filter-info.cc:251 #: ../pan/usenet-utils/filter-info.cc:261 #, c-format msgid "%s doesn't begin with \"%s\"" msgstr "%s không phải bắt đầu với « %s »" #: ../pan/usenet-utils/filter-info.cc:252 #: ../pan/usenet-utils/filter-info.cc:262 #, c-format msgid "%s doesn't end with \"%s\"" msgstr "%s không kết thúc với « %s »" #: ../pan/usenet-utils/filter-info.cc:253 #: ../pan/usenet-utils/filter-info.cc:263 #, c-format msgid "%s doesn't match the regex \"%s\"" msgstr "%s không khớp biểu thức chính quy « %s »" #: ../pan/usenet-utils/filter-info.cc:275 #, c-format msgid "%s contains \"%s\"" msgstr "%s chứa « %s »" #: ../pan/usenet-utils/filter-info.cc:276 #, c-format msgid "%s is \"%s\"" msgstr "%s là « %s »" #: ../pan/usenet-utils/filter-info.cc:277 #, c-format msgid "%s begins with \"%s\"" msgstr "%s bắt đầu với « %s »" #: ../pan/usenet-utils/filter-info.cc:278 #, c-format msgid "%s ends with \"%s\"" msgstr "%s kết thúc với « %s »" #: ../pan/usenet-utils/filter-info.cc:279 #, c-format msgid "%s matches the regex \"%s\"" msgstr "%s khớp biểu thức chính quy « %s »" #: ../pan/usenet-utils/filter-info.cc:285 msgid "Any of these tests fail:" msgstr "Sự thử nào thất bại:" #: ../pan/usenet-utils/filter-info.cc:292 msgid "All of these tests pass:" msgstr "Mọi sự thử là thành công:" #: ../pan/usenet-utils/filter-info.cc:299 msgid "None of these tests pass:" msgstr "Mọi sự thử thất bại:" #: ../pan/usenet-utils/filter-info.cc:306 msgid "Any of these tests pass:" msgstr "Sự thử nào là thành công:" #: ../pan/usenet-utils/gnksa.cc:878 #, c-format msgid "No email address provided; generating message-id with domain \"%s\"" msgstr "" "Chưa cung cấp địa chỉ thư điện tử nên đang phát sinh mã nhận diện thông điệp " "với miền « %s »" #: ../pan/usenet-utils/message-check.cc:124 msgid "Warning: Reply seems to be top-posted." msgstr "Cảnh báo : trả lời có vẻ nằm trên thân gốc." #: ../pan/usenet-utils/message-check.cc:145 msgid "Warning: The signature marker should be \"-- \", not \"--\"." msgstr "Cảnh báo : dấu bên chữ ký nên là «-- », không phải «--»." #: ../pan/usenet-utils/message-check.cc:162 msgid "Warning: Signature prefix with no signature." msgstr "Cảnh báo : có tiền tố chữ ký mà không có chữ ký." #: ../pan/usenet-utils/message-check.cc:167 msgid "Warning: Signature is more than 4 lines long." msgstr "Cảnh báo : chữ ký dài hơn 4 dòng." #: ../pan/usenet-utils/message-check.cc:172 msgid "Warning: Signature is more than 80 characters wide." msgstr "Cảnh báo : chữ ký rộng hơn 80 ký tự." #: ../pan/usenet-utils/message-check.cc:198 #, fuzzy, c-format msgid "Warning: %d line is more than 80 characters wide." msgid_plural "Warning: %d lines are more than 80 characters wide." msgstr[0] "Cảnh báo : có %d dòng rộng hơn 80 ký tự." #: ../pan/usenet-utils/message-check.cc:223 msgid "Error: Message is empty." msgstr "LỖI : thông điệp rỗng." #: ../pan/usenet-utils/message-check.cc:258 msgid "Warning: The message is entirely quoted text!" msgstr "Cảnh báo : thông điệp chỉ toàn là trích dẫn." #: ../pan/usenet-utils/message-check.cc:259 msgid "Warning: The message is mostly quoted text." msgstr "Cảnh báo : phần lớn thông điệp là trích dẫn." #: ../pan/usenet-utils/message-check.cc:309 msgid "Error: Message appears to have no new content." msgstr "LỖI: thông điệp có vẻ không có nội dung mới." #: ../pan/usenet-utils/message-check.cc:344 #: ../pan/usenet-utils/message-check.cc:383 #, c-format msgid "" "Warning: The posting profile's server doesn't carry newsgroup\n" "\t\"%s\".\n" "\tIf the group name is correct, switch profiles in the \"From:\"\n" "\tline or edit the profile with \"Edit|Manage Posting Profiles\"." msgstr "" "Cảnh báo : máy phục vụ của hồ sơ gửi không mang nhóm tin\n" "\t« %s ».\n" "\tNếu tên nhóm là đúng, hãy chuyển đổi hồ sơ trên\n" "\tdòng « Từ : », hoặc sửa hồ sơ bằng lệnh\n" "\t« Sửa/Quản lý hồ sơ gửi »." #: ../pan/usenet-utils/message-check.cc:355 msgid "Warning: Following-Up to too many groups." msgstr "Cảnh báo : đang Tiếp theo quá nhiều nhóm." #: ../pan/usenet-utils/message-check.cc:366 msgid "Error: No Subject specified." msgstr "LỖI : chưa nhập Chủ đề." #: ../pan/usenet-utils/message-check.cc:395 #, c-format msgid "Warning: Group \"%s\" is read-only." msgstr "Cảnh báo : nhóm « %s » là chỉ-đọc." #: ../pan/usenet-utils/message-check.cc:404 msgid "Error: Posting to a very large number of groups." msgstr "LỖI: đang gởi tới quá nhiều nhóm." #: ../pan/usenet-utils/message-check.cc:409 msgid "Warning: Posting to a large number of groups." msgstr "LỖI: đang gởi tới rất nhiều nhóm." #: ../pan/usenet-utils/message-check.cc:416 msgid "Warning: Crossposting without setting Followup-To header." msgstr "Cảnh báo : đang gởi chéo khi chưa đặt dòng đầu Tiếp theo." #: ../pan/usenet-utils/message-check.cc:441 msgid "Error: Bad email address." msgstr "Lỗi: địa chỉ thư điện tử sai." #: ../pan/usenet-utils/message-check.cc:450 msgid "Warning: Most newsgroups frown upon HTML posts." msgstr "Cảnh báo : phần lớn nhóm tin không thích bài dạng HTML." #: ../pan/usenet-utils/message-check.cc:486 msgid "Error: No Recipients." msgstr "Lỗi: chưa có người nhận." #: ../pan/usenet-utils/scorefile.cc:304 #, c-format msgid "" "Error reading score in %*.*s, line %d: expected 'Expires: MM/DD/YYYY' or " "'Expires: DD-MM-YYYY'." msgstr "" "Gặp lỗi khi đọc điểm trong %*.*s, dòng %d: ngờ dạng « Hết hạn: TT/Ng/NNNN » " "hay « Hết hạn: Ng-TT-NNNN »." #: ../pan/usenet-utils/scorefile.cc:307 #, c-format msgid "Expired old score from %*.*s, line %d" msgstr "Làm hết hạn điểm cũ từ %*.*s, dòng %d" #: ../pan/usenet-utils/scorefile.cc:380 #, c-format msgid "Error reading score in %*.*s, line %d: unexpected line." msgstr "Gặp lỗi khi đọc điểm trong %*.*s, dòng %d: dòng bất thường." #: ../pan/usenet-utils/scorefile.cc:428 #, c-format msgid "Read %lu scoring rules in %lu sections from \"%s\"" msgstr "Đã đọc %lu quy tắc ghi điểm trong %lu phần từ « %s »" #: ../pan/usenet-utils/ssl-utils.h:199 #, fuzzy, c-format msgid "Error printing the server certificate for '%s'" msgstr "Gặp lỗi khi tải thông tin về máy phục vụ tin tức: %s" #: ../pan/usenet-utils/ssl-utils.h:216 #, c-format msgid "" "The current server '%s' sent this security certificate :\n" "\n" msgstr "" #: ../pan/usenet-utils/ssl-utils.h:217 #, c-format msgid "" "Certificate information for server '%s' :\n" "\n" msgstr "" #: ../pan/usenet-utils/ssl-utils.h:219 #, c-format msgid "" "%sIssuer information:\n" "%s\n" "Valid until : %s\n" "\n" "Not valid before : %s\n" "\n" msgstr "" #: ../pan/usenet-utils/text-massager.cc:397 msgid "> [quoted text muted]" msgstr "> [trích dẫn bị câm]" #~ msgid "Read News from Usenet" #~ msgstr "Đọc tin tức từ Usenet" #, fuzzy #~ msgid "_Toggle Flag on for Thread" #~ msgstr "Th_eo dõi nhánh" #~ msgid "Attachment not shown: MIME type %s/%s; filename %s\n" #~ msgstr "Không hiển thị đồ đính kèm: kiểu MIME %s/%s; tên tập tin %s\n" #~ msgid "Attachment not shown: MIME type %s/%s\n" #~ msgstr "Không hiển thị đồ đính kèm: kiểu MIME %s/%s\n" #, fuzzy #~ msgid "Error!" #~ msgstr "Lỗi: %s" #~ msgid "" #~ "Spellchecker not found!\n" #~ " \n" #~ "Was this copy of Pan compiled with GtkSpell enabled?" #~ msgstr "" #~ "Không tìm thấy bộ kiểm tra chính tả !\n" #~ "\n" #~ "Bản sao Pan này đã được biên dịch với khả năng GtkSpell đã bật không?" #, fuzzy #~ msgid "Signer : " #~ msgstr "Chữ ký:" #~ msgid "_Signature:" #~ msgstr "Chữ _ký:" #~ msgid "Creating directory \"%s\"" #~ msgstr "Đang tạo thư mục « %s »" #~ msgid "Couldn't create directory \"%s\": %s" #~ msgstr "Không thể tạo thư mục « %s »: %s" #~ msgid "" #~ "Your copy of libpcre doesn't support UTF-8. UTF-8 regular expressions " #~ "may fail." #~ msgstr "" #~ "Bản sao « libpcre » trong hệ thống của bạn không hỗ trợ bộ ký tự UTF-8. " #~ "Như thế thì biểu thức chính quy bằng UTF-8 có thể bị lỗi." #~ msgid "Can't use regular expression \"%s\": %s at position %d" #~ msgstr "Không thể dùng biểu thức chính quy « %s »: %s tại vị trí %d" #~ msgid "Posting Article" #~ msgstr "Đang gởi bài" #~ msgid "Posting..." #~ msgstr "Đang gởi..." #~ msgid "Read Selected Group" #~ msgstr "Đọc nhóm đã chọn" #~ msgid "_Mark Group _Read" #~ msgstr "Đánh dấu nhóm Đã đọ_c" #~ msgid "_Delete Group's Articles" #~ msgstr "_Xoá bỏ các bài của nhóm" #~ msgid "Get New Headers for Selected Group" #~ msgstr "Lấy các dòng đầu mới cho nhóm đã chọn" #~ msgid "Get New Headers for Subscribed Groups" #~ msgstr "Lấy các dòng đầu mới cho các nhóm đã đăng ký" #~ msgid "Get Headers from Server" #~ msgstr "Lấy các dòng đầu từ máy phục vụ" #~ msgid "Get a new Group list from the Server" #~ msgstr "Lấy danh sách Nhóm mới từ máy phục vụ" #~ msgid "Subscribe to Selected Group" #~ msgstr "Đăng ký với nhóm đã chọn" #~ msgid "Unsubscribe from Selected Group" #~ msgstr "Hủy đăng ký khỏi nhóm đã chọn" #~ msgid "Save Selected Articles ..." #~ msgstr "Lấy các bài đã chọn ..." #~ msgid "Cancel Last Task" #~ msgstr "Thôi tác vụ cuối cùng" #~ msgid "Clear Header Pane" #~ msgstr "Xoá ô dòng đầu" #~ msgid "Clear Body Pane" #~ msgstr "Xoá ô thân" #~ msgid "Next Unread Group" #~ msgstr "Nhóm chưa đọc kế" #~ msgid "Next Group" #~ msgstr "Nhóm kế" #~ msgid "Next Thread" #~ msgstr "Nhánh kế" #~ msgid "Previous Article" #~ msgstr "Bài trước" #~ msgid "Previous Thread" #~ msgstr "Nhánh trước" #~ msgid "Parent Article" #~ msgstr "Bài cha" #~ msgid "Mark Article as Unread" #~ msgstr "Đánh dấu bài Chưa đọc" #~ msgid "Reply to Author in Mail" #~ msgstr "Trả lời tác giả bằng thư" #~ msgid "Abbreviate _Names in Group Pane" #~ msgstr "HIện tê_n tắt trong ô nhóm" #~ msgid "Match Only Articles Posted by Me" #~ msgstr "Khớp chỉ bài của tôi gởi" #~ msgid "Baltic (ISO-8859-4)" #~ msgstr "Ban-tích (ISO-8859-4)" #~ msgid "Baltic (ISO-8859-13)" #~ msgstr "Ban-tích (ISO-8859-13)" #~ msgid "Baltic (Windows-1257)" #~ msgstr "Ban-tích (Windows-1257)" #~ msgid "Central European (ISO-8859-2)" #~ msgstr "Vùng Trung Âu (ISO-8859-2)" #~ msgid "Central European (Windows-1250)" #~ msgstr "Vùng Trung Âu (Windows-1250)" #~ msgid "Chinese Simplified (gb2312)" #~ msgstr "Tiếng Trung giản thể (gb2312)" #~ msgid "Chinese Traditional (big5)" #~ msgstr "Tiếng Trung phồn thể (big5)" #~ msgid "Cyrillic (ISO-8859-5)" #~ msgstr "Ki-rin (ISO-8859-5)" #~ msgid "Cyrillic (Windows-1251)" #~ msgstr "Ki-rin (Windows-1251)" #~ msgid "Cyrillic (KOI8-R)" #~ msgstr "Ki-rin (KOI8-R)" #~ msgid "Cyrillic, Ukrainian (KOI8-U)" #~ msgstr "Ki-rin/U-cợ-rainh (KOI8-U)" #~ msgid "Greek (ISO-8859-7)" #~ msgstr "Hy Lạp (ISO-8859-7)" #~ msgid "Japanese (ISO-2022-jp)" #~ msgstr "Nhật (ISO-2022-jp)" #~ msgid "Korean (euc-kr)" #~ msgstr "Hàn Quốc (euc-kr)" #~ msgid "Turkish (ISO-8859-9)" #~ msgstr "Thổ Nhĩ Kỳ (ISO-8859-9)" #~ msgid "Western (ISO-8859-1)" #~ msgstr "Tây (ISO-8859-1)" #~ msgid "Western, New (ISO-8859-15)" #~ msgstr "Tây mới (ISO-8859-15)" #~ msgid "Western (Windows-1252)" #~ msgstr "Tây (Windows-1252)" #~ msgid "Unicode (UTF-8)" #~ msgstr "Unicode (UTF-8)" #~ msgid "Western" #~ msgstr "Phương Tây" #~ msgid "Pan: " #~ msgstr "Pan: " #~ msgid " (%lu)" #~ msgstr " (%lu)" #~ msgid "" #~ "Pan is now offline. Please ensure that space is available, then use File|" #~ "Work Online to continue." #~ msgstr "" #~ "Pan hiện thời nằm ngoại tuyến. Hãy đảm bảo có đủ chỗ rảnh, rồi chọn « Tập " #~ "tin > Trực tuyến » để tiếp tục." #~ msgid "Pan: %s" #~ msgstr "Pan: %s" #~ msgid "%u Tasks Running, %u Tasks Total" #~ msgstr "%u tác vụ đang chạy, tổng cộng %u" #~ msgid "Tasks: %u/%u" #~ msgstr "Tác vụ : %u/%u" #~ msgid "%lu B" #~ msgstr "%lu B" #~ msgid "%.1f KiB" #~ msgstr "%.1f KiB" #~ msgid "%.1f MiB" #~ msgstr "%.1f MiB" #~ msgid "%.1f GiB" #~ msgstr "%.1f GiB" #~ msgid "Error: nzb arguments used without nzb files." #~ msgstr "Lỗi: các đối số kiểu nzb đã được dùng khi không có tập tin NZB." #~ msgid "_Browse..." #~ msgstr "_Duyệt..." #~ msgid "Wrap _Now" #~ msgstr "_Ngắt ngay" #~ msgid "Wrap the Article Body to 80 Columns" #~ msgstr "Ngắt các dòng thân bài tại 80 cột" #~ msgid "_Close" #~ msgstr "Đón_g" #~ msgid "Close Window" #~ msgstr "Đóng cửa sổ" #~ msgid "Cu_t" #~ msgstr "Cắ_t" #~ msgid "Cut Text" #~ msgstr "Cắt đoạn chữ" #~ msgid "_Copy" #~ msgstr "_Chép" #~ msgid "Copy Text" #~ msgstr "Chép đoạn chữ" #~ msgid "_Paste" #~ msgstr "_Dán" #~ msgid "Paste Text" #~ msgstr "Dán đoạn chữ" #~ msgid "_Manage Editor List..." #~ msgstr "_Quản lý danh sách bộ chỉnh sửa..." #~ msgid "Manage Posting Pr_ofiles..." #~ msgstr "Quản lý các _hồ sơ gởi..." #~ msgid "Unicode, UTF-8" #~ msgstr "Unicode, UTF-8" #~ msgid "Error loading post.ui: \"%s\"" #~ msgstr "Lỗi tải post.ui: « %s »" #~ msgid "Manage Editor List" #~ msgstr "Quản lý danh sách bộ chỉnh sửa" #~ msgid "Editors" #~ msgstr "Bộ chỉnh sửa" #~ msgid "Couldn't read signature file \"%s\": %s" #~ msgstr "Không thể đọc tập tin chữ ký « %s »: %s" #~ msgid "One header per line, in the form HeaderName: Value" #~ msgstr "Một dòng đầu trên mỗi dòng, dạng « Tên dòng đầu: giá trị »" #~ msgid "Add a New Profile" #~ msgstr "Thêm hồ sơ mới" #~ msgid "Edit the selected profile" #~ msgstr "Sửa hồ sơ đã chọn" #~ msgid "Remove the selected profile" #~ msgstr "Gở bỏ hồ sơ đã chọn" #~ msgid "Path" #~ msgstr "Đường dẫn" #~ msgid "C_ustom path:" #~ msgstr "Đường dẫn _riêng:" #~ msgid "Save Files to Path" #~ msgstr "Lưu các tập tin vào đường dẫn" #~ msgid "_Path:" #~ msgstr "Đường _dẫn:" #~ msgid "the next week" #~ msgstr "tuần tới" #~ msgid "Pan: New Scoring Rule" #~ msgstr "Pan: quy tắc ghi điểm mới" #~ msgid "Then" #~ msgstr "Rồi" #~ msgid "For" #~ msgstr "Cho" #~ msgid "Name: \"%s\"" #~ msgstr "Tên: « %s »" #~ msgid "Pan: Add a Server" #~ msgstr "Pan: thêm máy phục vụ" #~ msgid "Pan: Edit a Server's Settings" #~ msgstr "Pan: sửa thiết lập máy phục vụ" #~ msgid "Pan: Servers" #~ msgstr "Pan: máy phục vụ" #~ msgid "%.2f KiB" #~ msgstr "%.2f KiB" #~ msgid "%.2f MiB" #~ msgstr "%.2f MiB" #~ msgid "%.2f GiB" #~ msgstr "%.2f GiB" #~ msgid "Status" #~ msgstr "Trạng thái" #~ msgid "Unable to set group: %s" #~ msgstr "Không thể đặt nhóm: %s" #~ msgid "Couldn't load \"%s\": %s" #~ msgstr "Không thể tải « %s »: %s" #~ msgid "" #~ "Error saving \"%s\":\n" #~ "%s. %s" #~ msgstr "" #~ "Gặp lỗi khi lưu « %s »:\n" #~ "%s. %s" #~ msgid "Warning: Unknown group \"%s\"." #~ msgstr "Cảnh báo : không biết nhóm « %s »." pan-0.162/po/zh_CN.po000066400000000000000000005471351475412772400143130ustar00rootroot00000000000000# Simplified Chinese translation of pan2 # Copyright (C) 2001, 2002, 2010 Free Software Foundation, Inc. # This file is distributed under the same license as pan2 package. # zipeco , 2002. # Yinghua Wang , 2010 # msgid "" msgstr "" "Project-Id-Version: pan2 master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/pan/issues/\n" "POT-Creation-Date: 2024-11-05 17:58+0000\n" "PO-Revision-Date: 2023-08-08 14:27-0400\n" "Last-Translator: Yinghua Wang \n" "Language-Team: Chinese (simplified) \n" "Language: zh_CN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Poedit 2.4.3\n" #. update the titlebar #: org.gnome.pan.desktop.in:3 org.gnome.pan.metainfo.xml.in:27 #: pan/gui/dl-headers-ui.cc:119 pan/gui/gui.cc:1041 pan/gui/gui.cc:1666 #: pan/gui/gui.cc:1995 pan/gui/score-add-ui.cc:600 msgid "Pan" msgstr "Pan" # pan/prefs.c:1816 #: org.gnome.pan.desktop.in:4 msgid "Newsreader" msgstr "新闻阅读器" #: org.gnome.pan.desktop.in:5 org.gnome.pan.metainfo.xml.in:7 msgid "Read and post Usenet articles" msgstr "阅读和发布 Usenet 文章" #. Translators: Search terms to find this application. Do NOT translate or localise the semicolons! The list MUST also end with a semicolon! #: org.gnome.pan.desktop.in:7 msgid "usenet;news;newsreader;newsgroup;article;yenc;nzb;" msgstr "usenet;news;newsreader;newsgroup;article;yenc;nzb;新闻组;文章;" # pan/prefs.c:1816 #: org.gnome.pan.metainfo.xml.in:6 msgid "Pan Newsreader" msgstr "Pan 新闻阅读器" #: org.gnome.pan.metainfo.xml.in:9 msgid "" "Pan is a Usenet newsreader that is good at both text and binaries. It " "supports offline reading, scoring and killfiles, yEnc, NZB, PGP handling, " "multiple servers, and secure connections." msgstr "" #: org.gnome.pan.metainfo.xml.in:12 msgid "" "It is also the only Unix newsreader to get a perfect score on the Good Net-" "Keeping Seal of Approval evaluations." msgstr "" # pan/base/acache.c:197 #: pan/data/article-cache.cc:144 pan/data/encode-cache.cc:62 #, c-format msgid "Error opening directory: \"%s\": %s" msgstr "打开文件夹出错:“%s”:%s" # pan/nntp.c:481 pan/nntp.c:785 #: pan/data/article-cache.cc:235 pan/data/article-cache.cc:244 #: pan/data-impl/data-io.cc:278 pan/data-impl/data-io.cc:310 #: pan/gui/post-ui.cc:1697 #, c-format msgid "Unable to save \"%s\" %s" msgstr "无法保存“%s” %s" # pan/base/acache.c:197 #: pan/data/article-cache.cc:362 #, c-format msgid "Error opening file \"%s\" %s" msgstr "打开文件“%s”出错 %s" # pan/base/acache.c:197 #: pan/data/article-cache.cc:393 pan/data-impl/profiles.cc:175 #: pan/data-impl/server.cc:478 pan/general/file-util.cc:311 #: pan/gui/post-ui.cc:566 pan/gui/task-pane.cc:740 #, c-format msgid "Error reading file \"%s\": %s" msgstr "读文件出错“%s”: %s。" # pan/base/acache.c:197 #: pan/data/cert-store.cc:259 #, c-format msgid "Error opening SSL certificate directory: \"%s\": %s" msgstr "打开 SSL 证书目录出错:“%s”:%s" #: pan/data/cert-store.cc:290 #, c-format msgid "Successfully added %d SSL PEM certificate(s) to Certificate Store." msgstr "" #: pan/data/cert-store.cc:310 msgid "" "Error initializing Certificate Store. Check that the permissions for the " "folders ~/.pan2 and ~/.pan2/ssl_certs are set correctly. Fatal, exiting." msgstr "" #: pan/data/cert-store.cc:359 #, c-format msgid "Could not export certificate for server: %s" msgstr "" #. load_group_descriptions (*_data_io); #: pan/data-impl/data-impl.cc:119 #, c-format msgid "Loaded data backend in %.1f seconds" msgstr "已载入数据后台程序,用时 %.1f 秒" #: pan/data-impl/data-impl.cc:155 msgid "Pan Newsreader's server passwords" msgstr "" # pan/task-grouplist.c:471 #: pan/data-impl/groups.cc:104 #, c-format msgid "Skipping newsrc file for server \"%s\"" msgstr "跳过服务器“%s”的 newsrc 文件" # pan/article-actions.c:567 #: pan/data-impl/headers.cc:713 #, fuzzy, c-format msgid "Expired %lu old articles from \"%s\"" msgstr "从“%2$s”中删除了 %1$lu 篇旧文章" # pan/base/file-headers.c:215 #: pan/data-impl/headers.cc:722 #, c-format msgid "" "Unsupported data version for %s headers: %d.\n" "Are you running an old version of Pan by accident?" msgstr "" "%s 标题中有未被支持的数据版本: %d。\n" "您意外地运行着老版本的Pan么?" #: pan/data-impl/headers.cc:740 #, fuzzy, c-format #| msgid "Loaded %lu articles for \"%s\" in %.1f seconds (%.0f per second)" msgid "Loaded %llu articles for \"%s\" in %.1f seconds (%.0f per second)" msgstr "加载了“%2$s”组的%1$lu篇文章,用时%3$.1f秒(%4$.0f篇/秒)" # pan/base/file-headers.c:732 #: pan/data-impl/headers.cc:1009 #, fuzzy, c-format msgid "" "Saved %lu parts, %lu articles in \"%s\" in %.1f seconds (%.0f articles/sec)" msgstr "保存了“%3$s”中的%1$lu部分,%2$lu篇文章,用时%4$.1f秒(%5$.0f篇/秒)" # pan/article-actions.c:567 #: pan/data-impl/headers.cc:1399 #, c-format msgid "Added %lu articles to %s." msgstr "已添加 %lu 篇文章到 %s。" #: pan/data-impl/server.cc:250 #, c-format msgid "Received no password from libsecret for server %s." msgstr "" # pan/pan.c:121 #: pan/data-impl/xover.cc:241 #, c-format msgid "Error reading from %s: unknown group \"%s\"" msgstr "从 %s 读取出错:未知的组“%s”" #: pan/general/e-util.cc:164 msgid "%l:%M %p" msgstr "%H:%M" #: pan/general/e-util.cc:165 msgid "Today %l:%M %p" msgstr "今天 %H:%M" #: pan/general/e-util.cc:166 msgid "%a %l:%M %p" msgstr "%A %H:%M" #: pan/general/e-util.cc:167 msgid "%b %d %l:%M %p" msgstr "%m月%d日 %H:%M" #: pan/general/e-util.cc:168 msgid "%b %d %Y" msgstr "%Y年%m月%d日" #: pan/general/e-util.cc:200 msgid "?" msgstr "?" # pan/filters/filter-phrase.c:81 #: pan/general/text-match.cc:194 #, c-format msgid "Can't use regular expression \"%s\": %s" msgstr "无法使用正则表达式“%s”:%s" #: pan/general/utf8-utils.cc:212 msgid "Couldn't determine article encoding. Non-UTF8 characters were removed." msgstr "无法确定文章的编码。非 UTF8 的字符被移除。" # pan/dialogs/dialog-log-viewer.c:134 pan/gui.c:1925 pan/message-window.c:294 #: pan/gui/actions.cc:306 pan/gui/post-ui.cc:381 msgid "_File" msgstr "文件(_F)" # pan/gui.c:1938 pan/message-window.c:299 pan/message-window.c:316 #: pan/gui/actions.cc:307 pan/gui/post-ui.cc:382 msgid "_Edit" msgstr "编辑(_E)" # pan/prefs.c:2345 #: pan/gui/actions.cc:308 pan/gui/prefs-ui.cc:1157 msgid "_Layout" msgstr "布局(_L)" # pan/prefs.c:2191 #: pan/gui/actions.cc:309 msgid "_Group Pane" msgstr "组列表窗格(_G)" #: pan/gui/actions.cc:310 msgid "_Header Pane" msgstr "标题窗格(_H)" # pan/prefs.c:2193 #: pan/gui/actions.cc:311 msgid "_Body Pane" msgstr "信体窗格(_B)" # pan/gui.c:1959 #: pan/gui/actions.cc:312 msgid "_View" msgstr "查看(_V)" # pan/gui.c:2065 #: pan/gui/actions.cc:313 msgid "Filte_r" msgstr "过滤器(_R)" # pan/gui.c:1996 #: pan/gui/actions.cc:314 msgid "_Go" msgstr "转到(_G)" # pan/rules/rule-edit-ui.c:814 #: pan/gui/actions.cc:315 pan/gui/prefs-ui.cc:1207 msgid "_Actions" msgstr "操作(_A)" # pan/gui.c:2016 #: pan/gui/actions.cc:316 msgid "_Articles" msgstr "文章(_A)" # pan/grouplist.c:643 pan/grouplist.c:680 pan/gui-notebook.c:58 #: pan/gui/actions.cc:317 msgid "G_roups" msgstr "组(_R)" # pan/gui.c:2100 #: pan/gui/actions.cc:318 pan/gui/actions.cc:319 msgid "_Post" msgstr "投递(_P)" # pan/gui.c:2109 #: pan/gui/actions.cc:320 msgid "_Help" msgstr "帮助(_H)" # pan/prefs.c:2383 pan/prefs.c:2396 #: pan/gui/actions.cc:323 msgid "_Read Group" msgstr "阅读组(_R)" # pan/prefs.c:2383 pan/prefs.c:2396 #: pan/gui/actions.cc:324 msgid "Read Group" msgstr "阅读组" # pan/grouplist.c:57 #: pan/gui/actions.cc:328 msgid "_Mark Selected Groups Read" msgstr "标记选择的组为已读(_M)" # pan/grouplist.c:57 #: pan/gui/actions.cc:329 msgid "Mark Selected Groups Read" msgstr "标记选择的组为已读" #: pan/gui/actions.cc:333 msgid "_Delete Selected Groups' Articles" msgstr "删除所选组内的文章(_D)" #: pan/gui/actions.cc:334 msgid "Delete Selected Groups' Articles" msgstr "删除所选组内的文章" #: pan/gui/actions.cc:338 msgid "Get New _Headers in Selected Groups" msgstr "获取所选择组内的新文章标题(_H)" #: pan/gui/actions.cc:339 msgid "Get New Headers in Selected Groups" msgstr "获取选择组内的新文章标题" #: pan/gui/actions.cc:343 pan/gui/actions.cc:348 msgid "Get New _Headers in Subscribed Groups" msgstr "获取订阅组内的新文章标题(_H)" #: pan/gui/actions.cc:344 pan/gui/actions.cc:349 msgid "Get New Headers in Subscribed Groups" msgstr "获取订阅组内的新文章标题" # pan/dialogs/dialog-headers.c:168 #: pan/gui/actions.cc:353 msgid "Get _Headers..." msgstr "获取标题(_H)..." # pan/dialogs/dialog-headers.c:168 #: pan/gui/actions.cc:354 msgid "Get Headers..." msgstr "获取新的标题..." # pan/articlelist.c:3311 #: pan/gui/actions.cc:358 pan/gui/actions.cc:359 msgid "Refresh Group List" msgstr "刷新组列表”" # pan/grouplist.c:67 #: pan/gui/actions.cc:363 msgid "_Subscribe" msgstr "订阅(_S)" # pan/grouplist.c:67 #: pan/gui/actions.cc:364 msgid "Subscribe" msgstr "订阅" # pan/grouplist.c:68 #: pan/gui/actions.cc:368 msgid "_Unsubscribe" msgstr "退订(_U)" # pan/grouplist.c:68 #: pan/gui/actions.cc:369 msgid "Unsubscribe" msgstr "退订" # pan/articlelist.c:3146 #: pan/gui/actions.cc:373 msgid "_Save Articles..." msgstr "保存文章(_S)..." # pan/articlelist.c:3146 #: pan/gui/actions.cc:374 msgid "Save Articles..." msgstr "保存文章..." # pan/articlelist.c:3146 #: pan/gui/actions.cc:378 #, fuzzy msgid "Save Articles from Selected _NZB..." msgstr "保存来自此 NZB 的文章(_S)..." # pan/rules/rule-edit-ui.c:164 #: pan/gui/actions.cc:379 #, fuzzy msgid "Save Articles from Selected NZB" msgstr "保存来自此 NZB 的文章" # pan/articlelist.c:3146 #: pan/gui/actions.cc:383 #, fuzzy msgid "Save Articles to an NZB _File..." msgstr "保存来自此 NZB 的文章(_S)..." # pan/rules/rule-edit-ui.c:164 #: pan/gui/actions.cc:384 msgid "Save Articles to an NZB File" msgstr "保存文章为 NZB 文件" # pan/print.c:166 #: pan/gui/actions.cc:388 pan/gui/actions.cc:389 msgid "Print" msgstr "打印" #: pan/gui/actions.cc:393 msgid "_Import NZB Files..." msgstr "导入 NZB 文件(_I)..." # pan/task-manager.c:787 #: pan/gui/actions.cc:398 msgid "_Cancel Last Task" msgstr "取消上一个任务(_C)" # pan/gui.c:1961 #: pan/gui/actions.cc:403 msgid "_Task Manager" msgstr "任务管理器(_T)" # pan/gui.c:684 #: pan/gui/actions.cc:408 msgid "_Event Log" msgstr "事件日志(_E)" # pan/gui.c:1938 pan/message-window.c:299 pan/message-window.c:316 #: pan/gui/actions.cc:413 msgid "_Quit" msgstr "退出(_Q)" # pan/gui.c:1943 #: pan/gui/actions.cc:418 msgid "Select _All Articles" msgstr "选择全部文章(_A)" # pan/gui.c:1946 #: pan/gui/actions.cc:423 msgid "_Deselect All Articles" msgstr "取消选择全部文章(_D)" # pan/gui.c:1945 #: pan/gui/actions.cc:428 msgid "Add Su_bthreads to Selection" msgstr "添加子话题到选中内容(_B)" # pan/gui.c:1945 #: pan/gui/actions.cc:433 msgid "Add _Threads to Selection" msgstr "添加话题到选择(_T)" # pan/gui.c:1945 #: pan/gui/actions.cc:438 msgid "Add _Similar Articles to Selection" msgstr "添加相似话题到选择(_S)" # pan/gui.c:1948 #: pan/gui/actions.cc:443 msgid "Select Article _Body" msgstr "选择文章正文(_B)" # pan/gui.c:1957 #: pan/gui/actions.cc:448 msgid "Edit _Preferences" msgstr "编辑首选项(_P)" # pan/gui.c:1957 #: pan/gui/actions.cc:453 msgid "Edit Selected _Group's Preferences" msgstr "编辑选择组的首选项(_G)" # pan/identities/identity-edit-ui.c:242 #: pan/gui/actions.cc:458 #, fuzzy #| msgid "Signature File" msgid "Edit S_core File" msgstr "签名文件" # pan/gui.c:1931 #: pan/gui/actions.cc:463 pan/gui/post-ui.cc:398 msgid "Edit P_osting Profiles" msgstr "编辑投递配置文件(_O)" # pan/gui.c:1957 #: pan/gui/actions.cc:468 msgid "Edit _News Servers" msgstr "编辑新闻服务器(_N)" # pan/gui.c:1965 #: pan/gui/actions.cc:473 msgid "Jump to _Group Tab" msgstr "跳到组标签(_G)" # pan/gui.c:1966 #: pan/gui/actions.cc:478 msgid "Jump to _Header Tab" msgstr "跳到标题标签(_H)" # pan/gui.c:1977 #: pan/gui/actions.cc:483 msgid "Jump to _Body Tab" msgstr "跳到正文标签(_B)" # pan/message-window.c:433 #: pan/gui/actions.cc:488 #, fuzzy msgid "_Rot13 Selected Text" msgstr "_Rot13 选中文本" #: pan/gui/actions.cc:493 msgid "Clear _Header Pane" msgstr "清空标题窗格(_H)" # pan/prefs.c:2193 #: pan/gui/actions.cc:498 msgid "Clear _Body Pane" msgstr "清空正文窗格(_B)" # pan/article-actions.c:171 #: pan/gui/actions.cc:503 msgid "Cache Article" msgstr "缓存文章" # pan/task-headers.c:431 #: pan/gui/actions.cc:508 msgid "Read Article" msgstr "阅读文章" # pan/identities/identity-edit-ui.c:123 #: pan/gui/actions.cc:513 msgid "Show Article Information" msgstr "显示文章信息" # pan/filter-edit-ui.c:861 pan/rules/rule-edit-ui.c:154 #: pan/gui/actions.cc:518 msgid "Read _More" msgstr "阅读更多(_M)" # pan/filter-edit-ui.c:861 pan/rules/rule-edit-ui.c:154 #: pan/gui/actions.cc:519 msgid "Read More" msgstr "阅读更多" #: pan/gui/actions.cc:523 msgid "Read _Back" msgstr "后退阅读(_B)" # pan/filter-edit-ui.c:861 pan/rules/rule-edit-ui.c:154 #: pan/gui/actions.cc:524 msgid "Read Back" msgstr "后退阅读" # pan/gui.c:2062 #: pan/gui/actions.cc:528 msgid "Next _Unread Group" msgstr "下一个未阅读的组(_U)" # pan/gui.c:2063 #: pan/gui/actions.cc:533 msgid "Next _Group" msgstr "下一个组(_G)" #: pan/gui/actions.cc:538 msgid "Next _Unread Article" msgstr "下一篇未读的文章(_U)" #: pan/gui/actions.cc:539 msgid "Next Unread Article" msgstr "阅读下一篇未读的文章" #: pan/gui/actions.cc:543 msgid "Next _Article" msgstr "下一篇文章(_A)" #: pan/gui/actions.cc:544 msgid "Next Article" msgstr "下一篇文章" # pan/article-toolbar.c:712 #: pan/gui/actions.cc:548 msgid "Next _Watched Article" msgstr "下一关注的文章(_W)" #: pan/gui/actions.cc:553 msgid "Next Unread _Thread" msgstr "下一个未阅读的话题(_T)" #: pan/gui/actions.cc:554 msgid "Next Unread Thread" msgstr "阅读下一个未阅读的话题" #: pan/gui/actions.cc:558 msgid "Next Threa_d" msgstr "下一个话题(_D)" # pan/gui.c:2056 #: pan/gui/actions.cc:563 msgid "Pre_vious Article" msgstr "上一篇文章(_V)" #: pan/gui/actions.cc:568 msgid "Previous _Thread" msgstr "上一个话题(_T)" #: pan/gui/actions.cc:573 msgid "_Parent Article" msgstr "上一级文章(_P)" # pan/prefs.c:2070 #: pan/gui/actions.cc:578 msgid "Ignore _Author" msgstr "忽略作者(_A)" # pan/prefs.c:2072 #: pan/gui/actions.cc:582 msgid "_Watch Thread" msgstr "关注话题(_W)" # pan/prefs.c:2070 #: pan/gui/actions.cc:587 msgid "_Ignore Thread" msgstr "忽略话题(_I)" # pan/prefs.c:2072 #: pan/gui/actions.cc:592 pan/gui/actions.cc:593 #, fuzzy msgid "_Toggle Flag On/Off for Thread" msgstr "关注话题(_W)" # pan/prefs.c:2072 #: pan/gui/actions.cc:597 pan/gui/actions.cc:598 #, fuzzy msgid "_Turn Flag Off for Thread" msgstr "关注话题(_W)" #: pan/gui/actions.cc:602 pan/gui/actions.cc:603 #, fuzzy msgid "_Select All Flagged Threads" msgstr "阅读下一个未阅读的话题" #: pan/gui/actions.cc:607 pan/gui/actions.cc:608 #, fuzzy msgid "_Go to Next Flagged Thread" msgstr "阅读下一个未阅读的话题" #: pan/gui/actions.cc:612 pan/gui/actions.cc:613 #, fuzzy msgid "_Go to Last Flagged Thread" msgstr "阅读下一个未阅读的话题" # pan/gui.c:1945 #: pan/gui/actions.cc:617 pan/gui/actions.cc:618 #, fuzzy msgid "_Invert Selection" msgstr "添加话题到选择(_T)" #: pan/gui/actions.cc:622 msgid "Edit Article's Watch/Ignore/Score..." msgstr "编辑文章的关注/忽略/评分..." # pan/filter-ui.c:395 #: pan/gui/actions.cc:627 msgid "Add a _Scoring Rule..." msgstr "添加一个评分规则(_S)..." # pan/article-actions.c:171 #: pan/gui/actions.cc:632 msgid "Cance_l Article..." msgstr "取消文章(_L)..." # pan/articlelist.c:3146 #: pan/gui/actions.cc:637 #, fuzzy msgid "_Supersede Article..." msgstr "取代文章(_S)..." # pan/rules/rule-edit-ui.c:191 #: pan/gui/actions.cc:642 msgid "_Delete Article" msgstr "删除文章(_D)" # pan/prefs.c:2772 #: pan/gui/actions.cc:647 msgid "Clear Article Cache" msgstr "清空文章缓存" # pan/filters/filter-read.c:51 #: pan/gui/actions.cc:652 msgid "_Mark Article as Read" msgstr "将文章标记为已读(_M)" # pan/filters/filter-read.c:50 #: pan/gui/actions.cc:657 msgid "Mark Article as _Unread" msgstr "将文件标记为未读(_U)" # pan/filters/filter-read.c:51 #: pan/gui/actions.cc:663 #, fuzzy msgid "_Mark Thread as Read" msgstr "将文章标记为已读(_M)" # pan/filters/filter-read.c:50 #: pan/gui/actions.cc:668 #, fuzzy msgid "Mark Thread as _Unread" msgstr "将文件标记为未读(_U)" # pan/gui.c:2102 #: pan/gui/actions.cc:673 msgid "_Post to Newsgroup" msgstr "投递到新闻组(_)" # pan/gui.c:2102 #: pan/gui/actions.cc:674 msgid "Post to Newsgroup" msgstr "投递到新闻组" # pan/gui.c:2103 #: pan/gui/actions.cc:678 #, fuzzy msgid "_Followup to Newsgroup" msgstr "跟随新闻组(_F)" # pan/gui.c:2103 #: pan/gui/actions.cc:679 #, fuzzy msgid "Followup to Newsgroup" msgstr "跟贴到新闻组" # pan/article-toolbar.c:872 pan/articlelist.c:935 pan/filter-edit-ui.c:753 # pan/prefs.c:1809 pan/task-save.c:651 #: pan/gui/actions.cc:683 msgid "_Reply to Author in Mail" msgstr "给作者回复邮件(_R)" #: pan/gui/actions.cc:689 msgid "_Contents" msgstr "" # pan/gui.c:2111 #: pan/gui/actions.cc:695 msgid "_Pan Home Page" msgstr "Pan主页(_H)" # pan/gui.c:2115 #: pan/gui/actions.cc:700 msgid "Give _Feedback or Report a Bug..." msgstr "反馈或报告缺陷(_F)..." # pan/dialogs/pan-about.c:163 #: pan/gui/actions.cc:705 msgid "_About" msgstr "关于(_A)" #: pan/gui/actions.cc:710 msgid "Edit _SSL Certificates" msgstr "编辑 _SSL 证书" # pan/message-window.c:1193 #: pan/gui/actions.cc:725 msgid "_Thread Headers" msgstr "话题标题(_T)" # pan/gui.c:1976 #: pan/gui/actions.cc:726 #, fuzzy #| msgid "_Wrap Article Body" msgid "Wrap Article Body" msgstr "文章正文自动换行(_W)" # pan/identities/identity-edit-ui.c:123 #: pan/gui/actions.cc:727 #, fuzzy #| msgid "Show Article Information" msgid "Show Article Signature" msgstr "显示文章信息" # pan/gui.c:1977 #: pan/gui/actions.cc:728 msgid "Mute _Quoted Text" msgstr "屏蔽引用的文字(_Q)" # pan/gui.c:1978 #: pan/gui/actions.cc:729 msgid "Show All _Headers in Body Pane" msgstr "在正文窗格中显示全部标题(_H)" #: pan/gui/actions.cc:730 msgid "Show _Smilies as Graphics" msgstr "将笑脸显示为图片(_S)" #: pan/gui/actions.cc:731 msgid "Show *Bold*, __Underlined__, and /Italic/" msgstr "显示 *加粗*,__下划线__,和 /倾斜/" #: pan/gui/actions.cc:732 msgid "Size Pictures to _Fit" msgstr "图片要适应的尺寸(_F)" # pan/gui.c:1979 #: pan/gui/actions.cc:733 msgid "Use _Monospace Font" msgstr "使用等宽字体(_M)" #: pan/gui/actions.cc:734 msgid "Set Focus to Images" msgstr "将焦点设置于图像" #: pan/gui/actions.cc:735 msgid "Highlight _URLs" msgstr "高亮显示 _URL" # pan/dialogs/dialog-log-viewer.c:138 #: pan/gui/actions.cc:738 msgid "_Work Online" msgstr "在线工作(_W)" #: pan/gui/actions.cc:739 msgid "_Tabbed Layout" msgstr "标签式布局(_T)" # pan/gui.c:1969 #: pan/gui/actions.cc:740 msgid "Show Group _Pane" msgstr "显示组窗格(_P)" # pan/gui.c:1970 #: pan/gui/actions.cc:741 msgid "Show Hea_der Pane" msgstr "显示标题窗格(_D)" # pan/gui.c:1969 #: pan/gui/actions.cc:742 msgid "Show Bod_y Pane" msgstr "显示正文窗格(_Y)" #: pan/gui/actions.cc:743 msgid "Show _Toolbar" msgstr "显示工具栏(_T)" # pan/gui.c:1973 #: pan/gui/actions.cc:744 msgid "Abbreviate Group Names" msgstr "缩写组名" # pan/gui.c:2079 #: pan/gui/actions.cc:746 #, fuzzy #| msgid "Match Only _Unread Articles" msgid "Match Only _Read Articles" msgstr "只匹配未读文章(_U)" # pan/gui.c:2079 #: pan/gui/actions.cc:746 #, fuzzy #| msgid "Match Only Unread Articles" msgid "Match Only Read Articles" msgstr "只匹配未读的文章" # pan/gui.c:2079 #: pan/gui/actions.cc:747 msgid "Match Only _Unread Articles" msgstr "只匹配未读文章(_U)" # pan/gui.c:2079 #: pan/gui/actions.cc:747 msgid "Match Only Unread Articles" msgstr "只匹配未读的文章" # pan/article-toolbar.c:712 #: pan/gui/actions.cc:748 msgid "Match Only _Cached Articles" msgstr "只匹配缓存的文章(_C)" # pan/article-toolbar.c:712 #: pan/gui/actions.cc:748 msgid "Match Only Cached Articles" msgstr "只匹配缓存的文章" # pan/filter-edit-ui.c:841 #: pan/gui/actions.cc:749 msgid "Match Only _Complete Articles" msgstr "只匹配完整的文章(_C)" # pan/filter-edit-ui.c:841 #: pan/gui/actions.cc:749 msgid "Match Only Complete Articles" msgstr "只匹配完整的文章" # pan/article-toolbar.c:709 #: pan/gui/actions.cc:750 msgid "Match Only _My Articles" msgstr "只匹配我的文章(_M)" # pan/article-toolbar.c:709 #: pan/gui/actions.cc:750 msgid "Match Only My Articles" msgstr "只匹配我的文章" # pan/article-toolbar.c:712 #: pan/gui/actions.cc:751 msgid "Match Only _Watched Articles" msgstr "仅匹配要关注文章(_W)" # pan/article-toolbar.c:712 #: pan/gui/actions.cc:751 msgid "Match Only Watched Articles" msgstr "仅匹配要关注的文章" #: pan/gui/actions.cc:753 msgid "Match Scores of 9999 (_Watched)" msgstr "匹配评分为 9999 的文章(关注的)" #: pan/gui/actions.cc:754 msgid "Match Scores of 5000...9998 (_High)" msgstr "匹配评分 5000...9998 的文章(高)(_H)" #: pan/gui/actions.cc:755 msgid "Match Scores of 1...4999 (Me_dium)" msgstr "匹配评分 1...4999 的文章(中)(_D)" #: pan/gui/actions.cc:756 msgid "Match Scores of 0 (_Normal)" msgstr "匹配评分为 0 的文章(普通)(_N)" #: pan/gui/actions.cc:757 msgid "Match Scores of -9998...-1 (_Low)" msgstr "匹配评分 -9998...-1 的文章(低)(_L)" #: pan/gui/actions.cc:758 msgid "Match Scores of -9999 (_Ignored)" msgstr "匹配评分为 -9999 的文章(忽略的)(_I)" #: pan/gui/actions.cc:760 msgid "Enable/Disable All _Rules" msgstr "启用/禁用所有过滤规则(_R)" # pan/article-toolbar.c:666 #: pan/gui/actions.cc:788 msgid "Show Matching _Articles" msgstr "显示匹配的文章(_A)" # pan/article-toolbar.c:666 #: pan/gui/actions.cc:789 msgid "Show Matching Articles' _Threads" msgstr "显示匹配文章的话题(_T)" # pan/article-toolbar.c:674 #: pan/gui/actions.cc:790 msgid "Show Matching Articles' _Subthreads" msgstr "显示匹配文章的子话题(_S)" # pan/identities/identity-edit-ui.c:242 #: pan/gui/body-pane.cc:1041 msgid "Unnamed File" msgstr "未命名文件" # pan/article-toolbar.c:871 pan/articlelist.c:933 pan/filter-edit-ui.c:748 # pan/prefs.c:1817 pan/task-save.c:649 #: pan/gui/body-pane.cc:1122 pan/gui/gui.cc:1966 pan/gui/header-pane.cc:1306 #: pan/gui/header-pane.cc:1737 pan/gui/post-ui.cc:2575 pan/gui/prefs-ui.cc:896 #: pan/gui/score-add-ui.cc:139 pan/gui/task-pane.cc:795 msgid "Subject" msgstr "主题" # pan/message-window.c:1136 #: pan/gui/body-pane.cc:1124 pan/gui/gui.cc:1966 msgid "From" msgstr "来源" # pan/articlelist.c:936 pan/prefs.c:1810 pan/task-save.c:652 #: pan/gui/body-pane.cc:1126 pan/gui/gui.cc:1967 pan/gui/header-pane.cc:1816 #: pan/gui/log-ui.cc:308 pan/gui/prefs-ui.cc:892 msgid "Date" msgstr "日期" # pan/rules/rule-edit-ui.c:808 #: pan/gui/body-pane.cc:1133 msgid "Newsgroups" msgstr "新闻组" #: pan/gui/body-pane.cc:1140 pan/gui/body-pane.cc:1148 #: pan/gui/body-pane.cc:1155 msgid "User-Agent" msgstr "用户代理" #: pan/gui/body-pane.cc:1161 #, fuzzy msgid "Followup-To" msgstr "跟随" # pan/gui-headers.c:282 #: pan/gui/body-pane.cc:1171 msgid "Reply-To" msgstr "回复给" #: pan/gui/body-pane.cc:1219 msgid " from " msgstr "从" #: pan/gui/body-pane.cc:1221 msgid " at " msgstr "于" #: pan/gui/body-pane.cc:1308 #, c-format msgid "" "This is a PGP-Signed message.\n" "\n" "Signer: %s ('%s')\n" "Valid until: %s\n" "Created on: %s" msgstr "" #: pan/gui/body-pane.cc:1313 msgid "always" msgstr "" #: pan/gui/body-pane.cc:1532 msgid "Copy _URL" msgstr "复制 _URL" # pan/rules/rule-edit-ui.c:164 #: pan/gui/body-pane.cc:1719 #, fuzzy msgid "Save Attachment As..." msgstr "保存附件于:" # pan/rules/rule-edit-ui.c:164 #: pan/gui/body-pane.cc:1722 #, fuzzy msgid "Save All Attachments" msgstr "保存附件" # pan/filter-edit-ui.c:836 pan/message-window.c:1195 pan/save-ui.c:398 #: pan/gui/body-pane.cc:1795 #, fuzzy #| msgid "Attachments" msgid "Attachments:" msgstr "附件" #: pan/gui/body-pane.cc:1816 #, fuzzy #| msgid "Text File" msgid "Text View" msgstr "文本文件" #: pan/gui/body-pane.cc:1825 msgid "HTML View" msgstr "" # pan/grouplist.c:643 pan/grouplist.c:680 pan/gui-notebook.c:58 #: pan/gui/dl-headers-ui.cc:125 #, fuzzy, c-format msgid "%d Group" msgid_plural "%d Groups" msgstr[0] "%d 个组" # pan/dialogs/dialog-headers.c:168 #: pan/gui/dl-headers-ui.cc:148 msgid "Get the last N _days' headers: " msgstr "下载最近 N 天的新闻标题(_D):" # pan/dialogs/dialog-headers.c:168 #: pan/gui/dl-headers-ui.cc:156 msgid "Get _new headers" msgstr "获取新标题(_N)" # pan/nntp.c:860 #: pan/gui/dl-headers-ui.cc:160 msgid "Get _all headers" msgstr "获取所有标题(_A)" # pan/dialogs/dialog-headers.c:168 #: pan/gui/dl-headers-ui.cc:164 msgid "Get the _latest N headers: " msgstr "获取最近的 N 条标题(_L):" # pan/rules/rule-edit-ui.c:814 #: pan/gui/e-action-combo-box.c:386 pan/gui/prefs-ui.cc:889 msgid "Action" msgstr "操作" #: pan/gui/e-action-combo-box.c:387 #, fuzzy msgid "A GtkRadioAction" msgstr "一个 GtkRadioAction" # pan/base/base-prefs.c:36 #: pan/gui/e-charset.c:51 pan/gui/task-pane.cc:561 msgid "Unknown" msgstr "未知" #: pan/gui/e-charset.c:52 msgid "Arabic" msgstr "阿拉伯文" #: pan/gui/e-charset.c:53 msgid "Baltic" msgstr "波罗的文" #: pan/gui/e-charset.c:54 msgid "Central European" msgstr "中欧" # pan/articlelist.c:934 pan/task-save.c:650 #: pan/gui/e-charset.c:55 msgid "Chinese" msgstr "中文" #: pan/gui/e-charset.c:56 msgid "Cyrillic" msgstr "古斯拉夫文" # pan/message-window.c:128 #: pan/gui/e-charset.c:57 msgid "Greek" msgstr "希腊文" #: pan/gui/e-charset.c:58 msgid "Hebrew" msgstr "希伯来文" # pan/message-window.c:131 #: pan/gui/e-charset.c:59 msgid "Japanese" msgstr "日文" # pan/message-window.c:132 #: pan/gui/e-charset.c:60 msgid "Korean" msgstr "朝鲜文" #: pan/gui/e-charset.c:61 msgid "Thai" msgstr "泰文" # pan/message-window.c:144 #: pan/gui/e-charset.c:62 msgid "Turkish" msgstr "土耳其文" #: pan/gui/e-charset.c:63 msgid "Unicode" msgstr "Unicode" #: pan/gui/e-charset.c:64 msgid "Western European" msgstr "西欧" #: pan/gui/e-charset.c:65 #, fuzzy msgid "Western European, New" msgstr "西欧,新" # pan/message-window.c:120 #: pan/gui/e-charset.c:84 pan/gui/e-charset.c:85 pan/gui/e-charset.c:86 msgid "Traditional" msgstr "繁体" # pan/message-window.c:119 #: pan/gui/e-charset.c:87 pan/gui/e-charset.c:88 pan/gui/e-charset.c:89 #: pan/gui/e-charset.c:90 msgid "Simplified" msgstr "简体" # pan/message-window.c:145 #: pan/gui/e-charset.c:93 msgid "Ukrainian" msgstr "乌克兰文" #: pan/gui/e-charset.c:96 msgid "Visual" msgstr "可视化" #: pan/gui/e-charset-combo-box.c:95 pan/gui/gui.cc:2164 pan/gui/post-ui.cc:476 #: pan/gui/prefs-ui.cc:800 msgid "Character Encoding" msgstr "字符编码" #: pan/gui/e-charset-combo-box.c:97 pan/gui/e-charset-dialog.c:51 #: pan/gui/score-add-ui.cc:606 pan/gui/task-pane.cc:309 msgid "Cancel" msgstr "取消" #: pan/gui/e-charset-combo-box.c:98 pan/gui/e-charset-dialog.c:52 msgid "OK" msgstr "" #: pan/gui/e-charset-combo-box.c:119 msgid "Enter the character set to use" msgstr "输入要使用的字符集" #: pan/gui/e-charset-combo-box.c:339 msgid "Other..." msgstr "其他..." # pan/base/decode.c:369 #: pan/gui/e-cte-dialog.c:77 msgid "Default Encoding" msgstr "默认编码" # pan/base/decode.c:369 #: pan/gui/e-cte-dialog.c:79 msgid "7-Bit Encoding" msgstr "7 比特编码" # pan/base/decode.c:369 #: pan/gui/e-cte-dialog.c:81 msgid "8-Bit Encoding" msgstr "8 比特编码" # pan/base/decode.c:369 #: pan/gui/e-cte-dialog.c:83 msgid "Base64 Encoding" msgstr "Base64 编码" # pan/prefs.c:2193 #: pan/gui/e-cte-dialog.c:85 #, fuzzy msgid "Quoted-Printable Encoding" msgstr "正文窗格编码" #: pan/gui/editor-spawner.cc:66 #, c-format msgid "Error parsing \"external editor\" command line: %s (Command was: %s)" msgstr "解析“外部编辑器”命令行出错:%s(命令为:%s)" # pan/message-window.c:440 #: pan/gui/editor-spawner.cc:110 #, c-format msgid "Error starting external editor: %s" msgstr "启动外部编辑器编辑出错:“%s”" #. Local folders #: pan/gui/group-pane.cc:330 msgid "Sent" msgstr "" #: pan/gui/group-pane.cc:330 msgid "Drafts" msgstr "" # pan/grouplist.c:643 pan/grouplist.c:680 pan/gui-notebook.c:58 #: pan/gui/group-pane.cc:540 #, fuzzy msgid "Group" msgstr "组" # pan/prefs.c:2191 #: pan/gui/group-pane.cc:540 #, fuzzy msgid "Group (regex)" msgstr "组名" #: pan/gui/group-pane.cc:985 msgid "Local Folders" msgstr "" # pan/rules/rule-edit-ui.c:622 #: pan/gui/group-pane.cc:986 msgid "Subscribed Groups" msgstr "已订阅的新闻组" # pan/grouplist.c:532 pan/grouplist.c:937 #: pan/gui/group-pane.cc:987 msgid "Other Groups" msgstr "其他组" # pan/prefs.c:2912 #: pan/gui/group-pane.cc:1028 pan/gui/score-view-ui.cc:156 msgid "Name" msgstr "名称" # pan/gui.c:1931 #: pan/gui/group-prefs-dialog.cc:161 msgid "No Profiles defined in Edit|Posting Profiles." msgstr "在编辑|投递配置文件中没有定义配置文件。" # pan/prefs.c:3024 #: pan/gui/group-prefs-dialog.cc:264 msgid "Pan: Group Preferences" msgstr "Pan:组首选项" # pan/dialogs/dialog-group-props.c:173 #: pan/gui/group-prefs-dialog.cc:279 #, fuzzy msgid "Properties for Groups" msgstr "%s 的属性" # pan/dialogs/dialog-group-props.c:173 #: pan/gui/group-prefs-dialog.cc:281 #, c-format msgid "Properties for %s" msgstr "%s 的属性" #: pan/gui/group-prefs-dialog.cc:292 msgid "Character _encoding:" msgstr "字符编码(_E):" # pan/dialogs/dialog-group-props.c:128 #: pan/gui/group-prefs-dialog.cc:294 msgid "Directory for Saving Attachments" msgstr "用于保存附件的文件夹" # pan/dialogs/dialog-group-props.c:128 #: pan/gui/group-prefs-dialog.cc:302 msgid "Directory for _saving attachments:" msgstr "用于保存附件的文件夹(_S):" # pan/identities/identity-ui.c:436 #: pan/gui/group-prefs-dialog.cc:304 msgid "Posting _profile:" msgstr "Pan:配置文件(_P):" #: pan/gui/group-prefs-dialog.cc:309 msgid "Spellchecker _language:" msgstr "" #: pan/gui/group-prefs-dialog.cc:312 msgid "Group color:" msgstr "" # pan/gui.c:652 #: pan/gui/gui.cc:312 msgid "Open the Task Manager" msgstr "打开任务管理器" # pan/gui.c:684 #: pan/gui/gui.cc:335 msgid "Open the Event Log" msgstr "打开事件日志" #: pan/gui/gui.cc:611 msgid "Save NZB's Files" msgstr "保存 NZB 文件" #: pan/gui/gui.cc:638 msgid "Untitled.nzb" msgstr "" #: pan/gui/gui.cc:640 #, fuzzy msgid "Save NZB File as..." msgstr "保存 NZB 文件" # pan/newsrc-ui.c:73 #: pan/gui/gui.cc:809 msgid "Import NZB Files" msgstr "导入 NZB 文件" # pan/filter-ui.c:373 pan/rules/rule-edit-ui.c:811 #: pan/gui/gui.cc:817 pan/gui/post-ui.cc:3288 msgid "NZB Files" msgstr "NZB 文件" # pan/filter-ui.c:373 pan/rules/rule-edit-ui.c:811 #: pan/gui/gui.cc:822 msgid "All Files" msgstr "所有文件" # pan/articlelist.c:3146 #: pan/gui/gui.cc:1336 #, fuzzy msgid "Unable to supersede article." msgstr "无法替换文章。" #: pan/gui/gui.cc:1337 pan/gui/gui.cc:1413 msgid "The article doesn't match any of your posting profiles." msgstr "该文章不匹配任何一个投递配置文件。" #: pan/gui/gui.cc:1386 msgid "Revise and send this article to replace the old one." msgstr "修订并发送该文章以替换旧的那篇。" #: pan/gui/gui.cc:1387 pan/gui/gui.cc:1451 msgid "Be patient! It will take time for your changes to take effect." msgstr "不要着急!您的更改生效需要一段时间。" # pan/article-actions.c:171 #: pan/gui/gui.cc:1412 msgid "Unable to cancel article." msgstr "无法取消文章。" #: pan/gui/gui.cc:1450 msgid "Send this article to ask your server to cancel your other one." msgstr "发送此文章来让您的服务器取消您的另一篇文章。" # pan/gui.c:1945 #: pan/gui/gui.cc:1468 #, fuzzy msgid "You have marked some articles for deletion." msgstr "添加相似话题到选择(_S)" # pan/group-action.c:282 #: pan/gui/gui.cc:1469 #, fuzzy msgid "Are you sure you want to delete them?" msgstr "您确定要删除这些%d组/文件夹及其文章么?" #: pan/gui/gui.cc:1495 msgid "Do you want to accept it permanently? (You can change this later.)" msgstr "" # pan/article-actions.c:171 #: pan/gui/gui.cc:1641 msgid "Unable to open help file." msgstr "无法打开帮助文件。" # pan/dialogs/dialog-about.c:53 #: pan/gui/gui.cc:1678 msgid "Copyright © 2002-2021 Charles Kerr and others" msgstr "版权所有 © 2002-2021 Charles Kerr 等" #: pan/gui/gui.cc:1683 msgid "translator-credits" msgstr "" "zipeco \n" "Yinghua Wang " # pan/prefs.c:2191 #: pan/gui/gui.cc:1811 msgid "_1. Group Pane" msgstr "_1. 组窗格" #: pan/gui/gui.cc:1812 msgid "_2. Header Pane" msgstr "_2. 标题窗格" # pan/prefs.c:2193 #: pan/gui/gui.cc:1813 msgid "_3. Body Pane" msgstr "_3. 正文窗格" #: pan/gui/gui.cc:1903 pan/gui/gui.cc:1918 #, fuzzy msgid " Bytes" msgstr "字节" #: pan/gui/gui.cc:1906 msgid " KB" msgstr "" #: pan/gui/gui.cc:1909 msgid " MB" msgstr "" #: pan/gui/gui.cc:1912 msgid " GB" msgstr "" #: pan/gui/gui.cc:1915 msgid " TB" msgstr "" # pan/filters/filter-binary.c:77 #: pan/gui/gui.cc:1947 #, fuzzy, c-format msgid "This article is complete with %d part." msgid_plural "This article has all %d parts." msgstr[0] "该文章具备所有的 %d 个部分。" #: pan/gui/gui.cc:1949 #, fuzzy, c-format msgid "This article is missing %d part." msgid_plural "This article is missing %d of its %d parts:" msgstr[0] "此文章 %2$d 个部分中缺少 %1$d 个部分:" # pan/article-toolbar.c:873 pan/filter-edit-ui.c:758 #: pan/gui/gui.cc:1967 pan/gui/header-pane.cc:1308 pan/gui/task-pane.cc:797 msgid "Message-ID" msgstr "信息标识" # pan/articlelist.c:934 pan/task-save.c:650 #: pan/gui/gui.cc:1968 pan/gui/header-pane.cc:1785 pan/gui/prefs-ui.cc:893 msgid "Lines" msgstr "行数" #: pan/gui/gui.cc:1968 msgid "Size" msgstr "" #: pan/gui/gui.cc:1969 pan/gui/header-pane.cc:1801 pan/gui/prefs-ui.cc:891 msgid "Bytes" msgstr "字节" #: pan/gui/gui.cc:2019 msgid "" "Error loading iconv library. Encoding certain character sets will not work " "in GUI." msgstr "" # pan/prefs.c:2193 #: pan/gui/gui.cc:2165 msgid "Body Pane Encoding" msgstr "正文窗格编码" # pan/gui.c:1620 pan/task-manager.c:426 #: pan/gui/gui.cc:2196 pan/gui/task-pane.cc:612 msgid "Offline" msgstr "离线" # pan/gui.c:1621 #: pan/gui/gui.cc:2200 #, fuzzy, c-format msgid "Closing %d connection" msgid_plural "Closing %d connections" msgstr[0] "正在关闭 %d 连接" # pan/gui.c:1621 #: pan/gui/gui.cc:2202 pan/gui/gui.cc:2232 msgid "No Connections" msgstr "没有连接" # pan/gui.c:1615 pan/task-manager.c:418 #: pan/gui/gui.cc:2206 msgid "Connecting" msgstr "正在连接" #: pan/gui/gui.cc:2219 #, c-format msgid "%s: %d idle, %d active @ %.1f KiBps" msgstr "%s:%d 空闲,%d 活动 速度 %.1f KB/S" # pan/gui.c:1719 #: pan/gui/gui.cc:2275 msgid "No Tasks" msgstr "没有任务" # pan/gui.c:1719 #: pan/gui/gui.cc:2277 pan/gui/prefs-ui.cc:1140 msgid "Tasks" msgstr "任务" #: pan/gui/gui.cc:2294 pan/gui/task-pane.cc:478 #, c-format msgid "%lu tasks, %s, %.1f KiBps, ETA %d:%02d:%02d" msgstr "%lu 项任务,%s,%.1f KB/S,ETA %d:%02d:%02d" #: pan/gui/gui.cc:2346 msgid "" "Pan is now offline. Please see \"File|Event Log\" and correct the problem, " "then use \"File|Work Online\" to continue." msgstr "" "Pan 已离线。请查看“文件|事件日志”并修正问题,然后使用“文件|在线工作”继续。" #: pan/gui/header-pane.cc:1304 pan/gui/task-pane.cc:793 msgid "Subject or Author" msgstr "主题或作者" #: pan/gui/header-pane.cc:1305 pan/gui/task-pane.cc:794 #, fuzzy msgid "Sub or Auth (regex)" msgstr "主题或作者" # pan/article-toolbar.c:872 pan/articlelist.c:935 pan/filter-edit-ui.c:753 # pan/prefs.c:1809 pan/task-save.c:651 #: pan/gui/header-pane.cc:1307 pan/gui/header-pane.cc:1769 #: pan/gui/prefs-ui.cc:890 pan/gui/score-add-ui.cc:140 pan/gui/task-pane.cc:796 msgid "Author" msgstr "作者" #: pan/gui/header-pane.cc:1754 pan/gui/prefs-ui.cc:894 msgid "Score" msgstr "评分" #: pan/gui/log-ui.cc:105 msgid "Save Event List" msgstr "保存事件列表" # pan/prefs.c:2812 #: pan/gui/log-ui.cc:259 msgid "Pan: Events" msgstr "Pan:事件" # pan/gui-notebook.c:60 pan/message-window.c:1191 #: pan/gui/log-ui.cc:318 msgid "Message" msgstr "信息" #: pan/gui/pan.cc:306 msgid "Maximize" msgstr "最大化" #: pan/gui/pan.cc:346 msgid "An error has occurred!" msgstr "出现了错误!" #: pan/gui/pan.cc:359 msgid "New Articles!" msgstr "有新文章!" #: pan/gui/pan.cc:360 msgid "" "There are new\n" "articles available." msgstr "" #: pan/gui/pan.cc:435 msgid "" "Thank you for trying Pan!\n" " \n" "To start newsreading, first Add a Server." msgstr "" "感谢您试用 Pan!\n" " \n" "要开始新闻阅读,请先添加一个服务器。" #: pan/gui/pan.cc:517 #, fuzzy msgid "" "General Options\n" " -h, --help Show this usage information and exit.\n" " -v, --version Print release version and exit.\n" " --verbose Be verbose (in non-GUI mode).\n" " --debug Run in debug mode. Use --debug twice for verbose " "debug.\n" " --debug-ssl Run in TLS (aka SSL) debug mode.\n" "\n" "URL Options\n" " headers:group.name Download new headers for the specified " "newsgroup.\n" " news:message-id When specified together with --no-gui, dump\n" " the message-id article to standard output.\n" "\n" "NZB Batch Options\n" " --nzb file1 file2 ... Process NZB files in non-GUI mode.\n" " -o path, --output=path Path to save attachments listed in the NZB " "file(s).\n" " --no-gui Only show console output, not the download " "queue.\n" msgstr "" "常规选项\n" " -h, --help 显示此用法页面\n" "\n" "URL 选项\n" " news:message-id 显示特定文章。\n" " news:group.name 显示特定新闻组。\n" " headers:group.name 下载指定新闻组的新标题。\n" " --no-gui 对news:message-id,将该文章打印到标准输出。\n" "\n" "NZB 批处理选项\n" " --nzb 文件1 文件2 ... 处理 nzb 文件而不必完全启动 Pan。\n" " -o 路径,--output=路径 要保存 nzb 文件中所列附件的路径。\n" " --no-gui 只显示控制台输出,不下载队列。\n" " " #: pan/gui/pan.cc:852 #, fuzzy msgid "Error: --no-gui used without nzb files or news:message-id." msgstr "错误:使用了 --no-gui 选项但没有 nzb 文件或 news:message-id。" # pan/pan.c:176 #: pan/gui/pan.cc:856 #, c-format msgid "Pan %s started" msgstr "Pan %s 已启动" #: pan/gui/pan.cc:876 msgid "Please configure Pan's news servers before using it as an nzb client." msgstr "在将 Pan作为 nzb 客户端使用之前,请先配置 Pan 的新闻服务器。" #: pan/gui/pan.cc:996 msgid "Pan notification" msgstr "" #: pan/gui/post-ui.cc:174 #, c-format msgid "Upload queue: %llu tasks, %ld KB (~ %.2f MB) total." msgstr "" # pan/identities/identity-ui.c:449 #: pan/gui/post-ui.cc:383 msgid "_Profile" msgstr "配置文件(_P)" # pan/message-window.c:440 #: pan/gui/post-ui.cc:384 msgid "Set Editor" msgstr "设置编辑器" #: pan/gui/post-ui.cc:386 msgid "_Send Article" msgstr "发送文章(_S)" # pan/message-window.c:399 #: pan/gui/post-ui.cc:386 msgid "Send Article Now" msgstr "现在发送文章" # pan/rules/rule-edit-ui.c:164 #: pan/gui/post-ui.cc:387 #, fuzzy msgid "_Send and Save Articles to NZB" msgstr "保存来自此 NZB 的文章" # pan/articlelist.c:3146 #: pan/gui/post-ui.cc:387 #, fuzzy msgid "Send and Save Articles to NZB" msgstr "Pan:保存文章" #: pan/gui/post-ui.cc:388 msgid "Set Character _Encoding..." msgstr "设置字符编码(_E)..." #: pan/gui/post-ui.cc:389 #, fuzzy msgid "Set Content _Transfer Encoding..." msgstr "设置字符编码..." # pan/save-ui.c:351 #: pan/gui/post-ui.cc:390 msgid "Sa_ve Draft" msgstr "保存文章草稿(_V)" #: pan/gui/post-ui.cc:390 msgid "Save as a Draft for Future Posting" msgstr "保存为草稿以备以后投递" # pan/articlelist.c:3143 #: pan/gui/post-ui.cc:391 msgid "_Open Draft..." msgstr "打开草稿(_O)..." # pan/articlelist.c:3143 #: pan/gui/post-ui.cc:391 msgid "Open an Article Draft" msgstr "打开一篇文章的草稿" # pan/message-window.c:433 #: pan/gui/post-ui.cc:396 #, fuzzy msgid "_Rot13" msgstr "_Rot13" # pan/message-window.c:433 #: pan/gui/post-ui.cc:396 msgid "Rot13 Selected Text" msgstr "Rot13 选择的文本" # pan/message-window.c:440 #: pan/gui/post-ui.cc:397 msgid "Run _Editor" msgstr "运行编辑器(_E)" # pan/message-window.c:440 #: pan/gui/post-ui.cc:397 msgid "Run Editor" msgstr "运行编辑器" #: pan/gui/post-ui.cc:399 msgid "Add _Files to Queue" msgstr "" #: pan/gui/post-ui.cc:399 msgid "Add Files to Queue" msgstr "" # pan/dialogs/dialog-newuser.c:686 pan/prefs.c:2584 #: pan/gui/post-ui.cc:414 pan/gui/post-ui.cc:415 #, fuzzy msgid "Remove from Queue" msgstr "移除一个服务器" # pan/rules/rule-edit-ui.c:486 #: pan/gui/post-ui.cc:419 pan/gui/post-ui.cc:420 msgid "Clear List" msgstr "清空列表" # pan/prefs.c:2263 #: pan/gui/post-ui.cc:424 pan/gui/post-ui.cc:425 #, fuzzy msgid "Select Needed Parts" msgstr "选择的布局:" #: pan/gui/post-ui.cc:429 pan/gui/post-ui.cc:430 pan/gui/task-pane.cc:680 #: pan/gui/task-pane.cc:681 msgid "Move Up" msgstr "" #: pan/gui/post-ui.cc:434 pan/gui/post-ui.cc:435 pan/gui/task-pane.cc:685 #: pan/gui/task-pane.cc:686 msgid "Move Down" msgstr "" #: pan/gui/post-ui.cc:439 pan/gui/post-ui.cc:440 msgid "Move to Top" msgstr "" # pan/task-manager.c:747 #: pan/gui/post-ui.cc:444 pan/gui/post-ui.cc:445 #, fuzzy msgid "Move to Bottom" msgstr "选定的任务移动到底部" # pan/message-window.c:424 #: pan/gui/post-ui.cc:452 msgid "_Wrap Text" msgstr "文本自动换行(_W)" # pan/message-window.c:424 #: pan/gui/post-ui.cc:452 msgid "Wrap Text" msgstr "文本自动换行" # pan/message-window.c:440 #: pan/gui/post-ui.cc:453 msgid "Always Run Editor" msgstr "总是运行编辑器" #: pan/gui/post-ui.cc:454 #, fuzzy #| msgid "Remember Character Encoding for this Group" msgid "Remember Character Encoding for This Group" msgstr "记住此组的字符编码设置" # pan/filters/filter-thread.c:71 #: pan/gui/post-ui.cc:455 #, fuzzy msgid "Thread Attached Replies" msgstr "话题已被跟踪或被忽略" # pan/prefs.c:1486 #: pan/gui/post-ui.cc:456 #, fuzzy msgid "PGP-Encrypt the Article" msgstr "产生消息号(_G)" # pan/prefs.c:1486 #: pan/gui/post-ui.cc:457 #, fuzzy msgid "PGP-Sign the Article" msgstr "产生消息号(_G)" #: pan/gui/post-ui.cc:458 msgid "Check _Spelling" msgstr "检查拼写(_S)" # pan/save-ui.c:280 #: pan/gui/post-ui.cc:477 msgid "New Article's Encoding:" msgstr "新文章的编码:" #: pan/gui/post-ui.cc:487 #, fuzzy msgid "Content Transfer Encoding" msgstr "字符编码" # pan/save-ui.c:280 #: pan/gui/post-ui.cc:488 #, fuzzy msgid "New Article's Content Transfer Encoding:" msgstr "新文章的编码:" #: pan/gui/post-ui.cc:672 msgid "Your changes will be lost!" msgstr "您的更改将丢失!" #: pan/gui/post-ui.cc:673 msgid "Close this window and lose your changes?" msgstr "关闭此窗口并放弃您的更改?" #: pan/gui/post-ui.cc:718 pan/gui/post-ui.cc:757 msgid "There were problems with this post." msgstr "这份投递有问题。" #: pan/gui/post-ui.cc:720 pan/gui/post-ui.cc:759 pan/gui/post-ui.cc:824 msgid "Go Back" msgstr "返回" #: pan/gui/post-ui.cc:722 msgid "Continue Anyway" msgstr "仍然继续" #. Prompt the user #: pan/gui/post-ui.cc:751 #, c-format msgid "" "Message uses characters not specified in charset '%s' - possibly use '%s' " msgstr "消息使用的字符在字符集 '%s' 中没有指定 - 可能使用的是 '%s'" #: pan/gui/post-ui.cc:774 msgid "Go _Online" msgstr "转为在线(_O)" #: pan/gui/post-ui.cc:823 msgid "The file queue is empty, so no files can be saved." msgstr "" # pan/filters/filter-aggregate.c:72 pan/filters/filter-binary.c:79 # pan/filters/filter-phrase.c:104 pan/filters/filter-saved.c:79 # pan/filters/filter-thread.c:75 pan/prefs.c:2194 pan/task-headers.c:447 #: pan/gui/post-ui.cc:1003 msgid "IO Error" msgstr "输入输出错误" #: pan/gui/post-ui.cc:1003 msgid "No space left on device" msgstr "设备上无剩余空间" #: pan/gui/post-ui.cc:1004 #, c-format msgid "Error copying message to %s folder. Reason: %s" msgstr "" #: pan/gui/post-ui.cc:1010 #, c-format msgid "Error creating message in %s mail folder: Invalid article." msgstr "" #: pan/gui/post-ui.cc:1032 msgid "" "No posting server is set for this posting profile.\n" "Please edit the profile via Edit|Manage Posting Profiles." msgstr "" "该投递配置文件没有设置投递服务器。\n" "请通过“编辑|管理投递配置文件”编辑该配置文件。" #: pan/gui/post-ui.cc:1037 msgid "" "The selected posting server is currently disabled. Please choose an " "appropriate alternative." msgstr "" # pan/gui.c:1620 pan/task-manager.c:426 #: pan/gui/post-ui.cc:1079 msgid "Pan is Offline." msgstr "Pan 已经离线。" #: pan/gui/post-ui.cc:1080 msgid "Go online to post the article?" msgstr "上线以投递该文章?" #: pan/gui/post-ui.cc:1129 #, c-format msgid "" "Error signing/encrypting your message. Perhaps you misspelled your email " "address (%s)?" msgstr "" # pan/base/newsrc-port.c:105 #: pan/gui/post-ui.cc:1279 msgid "Error opening temporary file" msgstr "打开临时文件时出错" # pan/base/newsrc-port.c:105 #: pan/gui/post-ui.cc:1290 #, fuzzy, c-format #| msgid "Error opening temporary file" msgid "Error creating temporary file: %s" msgstr "打开临时文件时出错" #: pan/gui/post-ui.cc:1298 #, c-format msgid "Error writing article to temporary file: %s" msgstr "写入文章到临时文件时出错:“%s”" # pan/articlelist.c:3143 #: pan/gui/post-ui.cc:1371 msgid "Open Draft Article" msgstr "打开草稿文章" # pan/save-ui.c:351 #: pan/gui/post-ui.cc:1613 msgid "Save Draft Article" msgstr "保存草稿文章" # pan/group-ui.c:154 #: pan/gui/post-ui.cc:1651 msgid "File already exists." msgstr "文件已经存在。" #: pan/gui/post-ui.cc:1652 msgid "Overwrite it?" msgstr "" # pan/base/util-file.c:224 #: pan/gui/post-ui.cc:1861 #, c-format msgid "Couldn't parse signature command \"%s\": %s" msgstr "无法解析签名命令“%s”:%s" # pan/base/util-file.c:224 #: pan/gui/post-ui.cc:1897 msgid "Couldn't convert signature to UTF-8." msgstr "无法将签名转换为 UTF-8 编码。" # pan/message-window.c:1136 #: pan/gui/post-ui.cc:2409 msgid "F_rom" msgstr "来自(_R)" # pan/article-toolbar.c:871 pan/articlelist.c:933 pan/filter-edit-ui.c:748 # pan/prefs.c:1817 pan/task-save.c:649 #: pan/gui/post-ui.cc:2427 msgid "_Subject" msgstr "主题(_S)" # pan/rules/rule-edit-ui.c:808 #: pan/gui/post-ui.cc:2441 msgid "_Newsgroups" msgstr "新闻组(_N)" # pan/message-window.c:1169 #: pan/gui/post-ui.cc:2456 msgid "Mail _To" msgstr "发信给(_T)" #: pan/gui/post-ui.cc:2560 msgid "Delete from Queue" msgstr "从队列中删除" #: pan/gui/post-ui.cc:2573 msgid "No." msgstr "" # pan/message-window.c:848 #: pan/gui/post-ui.cc:2577 pan/gui/post-ui.cc:2669 pan/gui/post-ui.cc:2714 msgid "Filename" msgstr "文件名" #: pan/gui/post-ui.cc:2579 msgid "Size (KB)" msgstr "" # pan/save-ui.c:411 #: pan/gui/post-ui.cc:2679 #, fuzzy msgid "The current filename" msgstr "使用加密的文件名" # pan/article-toolbar.c:871 pan/articlelist.c:933 pan/filter-edit-ui.c:748 # pan/prefs.c:1817 pan/task-save.c:649 #: pan/gui/post-ui.cc:2683 #, fuzzy msgid "Subject Line" msgstr "主题" # pan/save-ui.c:411 #: pan/gui/post-ui.cc:2693 #, fuzzy msgid "The current subject line" msgstr "使用加密的文件名" #: pan/gui/post-ui.cc:2707 msgid "No. " msgstr "" #: pan/gui/post-ui.cc:2711 msgid "Enable/Disable" msgstr "" #: pan/gui/post-ui.cc:2745 #, fuzzy msgid "Follo_wup-To" msgstr "跟随(_W)" # pan/message-window.c:998 #. i18n: "poster" is a key used by many newsreaders. probably safest to keep this key in english. #: pan/gui/post-ui.cc:2755 msgid "" "The newsgroups where replies to your message should go. This is only needed " "if it differs from the \"Newsgroups\" header.\n" "\n" "To direct all replies to your email address, use \"Followup-To: poster\"" msgstr "" "您的信息回复发往的新闻组。只有它与“新闻组”标题不同时才需要设置。\n" "\n" "要将所有的回复定向到您的电子邮件地址,使用“Followup-To: poster”" # pan/gui-headers.c:282 #: pan/gui/post-ui.cc:2762 msgid "_Reply-To" msgstr "回复给(_R)" # pan/message-window.c:1018 #: pan/gui/post-ui.cc:2771 #, fuzzy #| msgid "" #| "The email account where mail replies to your posted message should go. " #| "This is only needed if it differs from the \"From\" header." msgid "" "The email account where mail replies to your posted message should go. This " "is only needed if it differs from the \"From\" header." msgstr "" "回复您投递信息的邮件应发往的电子邮件帐户。只有与“来自”标题不同时才需要设置。" # pan/identities/identity-edit-ui.c:415 pan/identities/identity-edit-ui.c:547 # pan/message-window.c:1097 #: pan/gui/post-ui.cc:2778 msgid "_Custom Headers" msgstr "自定义标题(_C)" # pan/message-window.c:1089 #: pan/gui/post-ui.cc:2803 msgid "Add \"_User-Agent\" header" msgstr "添加“用户代理”标题" # pan/save-ui.c:364 #: pan/gui/post-ui.cc:2810 #, fuzzy msgid "Add \"Message-_ID\" header" msgstr "添加“消息标识”标题" # pan/pan-font-picker.c:52 #: pan/gui/post-ui.cc:2938 #, fuzzy msgid "Select Parts" msgstr "选择字体" #: pan/gui/post-ui.cc:2951 msgid "_Parts" msgstr "" # pan/articlelist.c:3455 #: pan/gui/post-ui.cc:3116 msgid "Post Article" msgstr "投递文章" # pan/gui-notebook.c:60 pan/message-window.c:1191 #: pan/gui/post-ui.cc:3137 msgid "_Message" msgstr "信息(_M)" # pan/message-window.c:1193 #: pan/gui/post-ui.cc:3138 msgid "More _Headers" msgstr "更多的标题(_H)" #: pan/gui/post-ui.cc:3139 msgid "File _Queue" msgstr "" # pan/identities/identity-edit-ui.c:311 pan/identities/identity.c:48 #: pan/gui/post-ui.cc:3170 pan/gui/profiles-dialog.cc:491 #, no-c-format msgid "On %d, %n wrote:" msgstr "%n 在 %d 写道:" #: pan/gui/post-ui.cc:3199 msgid "Add files to queue" msgstr "" #: pan/gui/post-ui.cc:3275 msgid "Save Upload Queue as NZB File" msgstr "" # pan/task-body.c:227 #: pan/gui/prefs.cc:368 #, c-format msgid "Couldn't parse %s color \"%s\"" msgstr "无法解析 %s 颜色“%s”" #: pan/gui/prefs-ui.cc:140 msgid "Grab Key" msgstr "" #: pan/gui/prefs-ui.cc:146 #, c-format msgid "" "Press the combination of the keys\n" "you want to use for \"%s\"." msgstr "" # pan/filter-ui.c:399 pan/identities/identity-ui.c:482 # pan/rules/rule-ui.c:513 #: pan/gui/prefs-ui.cc:183 #, fuzzy msgid "Edit Shortcut" msgstr "编辑" # pan/group-ui.c:154 #: pan/gui/prefs-ui.cc:244 #, fuzzy msgid "Error: Shortcut key is invalid!" msgstr "文件夹“%s”已经存在。" # pan/group-ui.c:154 #: pan/gui/prefs-ui.cc:260 #, fuzzy msgid "Error: Shortcut key already exists!" msgstr "文件夹“%s”已经存在。" #: pan/gui/prefs-ui.cc:601 #, fuzzy msgid "Show only icons" msgstr "仅现实我所张贴的" #: pan/gui/prefs-ui.cc:602 #, fuzzy msgid "Show only text" msgstr "仅现实我所张贴的" # pan/rules/rule-edit-ui.c:164 #: pan/gui/prefs-ui.cc:603 msgid "Show icons and text" msgstr "显示图标和字体" # pan/prefs.c:3024 #: pan/gui/prefs-ui.cc:642 msgid "Use GNOME Preferences" msgstr "使用 GNOME 首选设置" # pan/prefs.c:3024 #: pan/gui/prefs-ui.cc:643 msgid "Use KDE Preferences" msgstr "使用 KDE 首选设置" # pan/prefs.c:3024 #: pan/gui/prefs-ui.cc:644 msgid "Use OS X Preferences" msgstr "使用 OS X 首选设置" # pan/prefs.c:3024 #: pan/gui/prefs-ui.cc:645 msgid "Use Windows Preferences" msgstr "使用 Windows 首选设置" # pan/print.c:180 #: pan/gui/prefs-ui.cc:646 msgid "Custom Command:" msgstr "自定义命令:" # pan/task-manager.c:412 #: pan/gui/prefs-ui.cc:698 #, fuzzy msgid "Disabled" msgstr "已启用" #: pan/gui/prefs-ui.cc:699 msgid "Only new (score == 0)" msgstr "" #: pan/gui/prefs-ui.cc:700 #, fuzzy msgid "9999 or more" msgstr "评分为 999 或更高:" #: pan/gui/prefs-ui.cc:701 #, fuzzy msgid "5000 to 9998" msgstr "评分从 5000 到 9998:" #: pan/gui/prefs-ui.cc:702 msgid "1 to 4999" msgstr "" #: pan/gui/prefs-ui.cc:703 #, fuzzy msgid "-9998 to -1" msgstr "评分从 -9998 到 -1:" #: pan/gui/prefs-ui.cc:704 #, fuzzy msgid "-9999 or less" msgstr "评分为 -9999 或更低:" #: pan/gui/prefs-ui.cc:770 #, c-format msgid "Select default global character set. Current setting: %s." msgstr "" #: pan/gui/prefs-ui.cc:801 msgid "Global Character Set Settings" msgstr "" # pan/task-manager.c:794 #: pan/gui/prefs-ui.cc:895 pan/gui/task-pane.cc:1067 msgid "State" msgstr "状态" # pan/task-manager.c:412 #: pan/gui/prefs-ui.cc:929 msgid "Enabled" msgstr "已启用" # pan/prefs.c:2191 #: pan/gui/prefs-ui.cc:933 msgid "Column Name" msgstr "列名称" # pan/prefs.c:3024 #: pan/gui/prefs-ui.cc:981 msgid "Pan: Preferences" msgstr "Pan:参数设置" #: pan/gui/prefs-ui.cc:996 msgid "Mouse" msgstr "鼠标" #: pan/gui/prefs-ui.cc:998 msgid "Single-click activates, rather than selects, _groups" msgstr "单击激活而不是选中组(_G)" #: pan/gui/prefs-ui.cc:1000 msgid "Single-click activates, rather than selects, _articles" msgstr "单击激活而不是选中文章(_A)" # pan/grouplist.c:643 pan/grouplist.c:680 pan/gui-notebook.c:58 #: pan/gui/prefs-ui.cc:1003 msgid "Groups" msgstr "组" #: pan/gui/prefs-ui.cc:1005 msgid "Get new headers in subscribed groups on _startup" msgstr "在启动时获取订阅组的新文章标题(_s)" #: pan/gui/prefs-ui.cc:1007 msgid "Get new headers when _entering group" msgstr "在进入组时获取新文章标题(_E)" #: pan/gui/prefs-ui.cc:1009 msgid "Mark entire group _read when leaving group" msgstr "在离开组时标记整个组为已读(_R)" #: pan/gui/prefs-ui.cc:1011 msgid "Mark entire group read before getting _new headers" msgstr "在获取新标题前标记整个组为已读(_N)" #: pan/gui/prefs-ui.cc:1013 msgid "E_xpand all threads when entering group" msgstr "在进入组时展开所有话题(_X)" # pan/gui.c:2016 #: pan/gui/prefs-ui.cc:1018 msgid "Articles" msgstr "文章" # pan/filters/filter-read.c:50 #: pan/gui/prefs-ui.cc:1020 #, fuzzy msgid "Mark downloaded articles read" msgstr "未读文章" #: pan/gui/prefs-ui.cc:1022 msgid "Space selects next article rather than next unread" msgstr "用空格键选择下一篇文章而非下一篇未读文章" # pan/gui.c:1945 #: pan/gui/prefs-ui.cc:1024 #, fuzzy msgid "Expand threads upon selection" msgstr "添加话题到选择(_T)" #: pan/gui/prefs-ui.cc:1026 msgid "Always ask before deleting an article" msgstr "" # pan/prefs.c:1957 #: pan/gui/prefs-ui.cc:1028 msgid "Smooth scrolling" msgstr "平滑滚动" # pan/prefs.c:2772 #: pan/gui/prefs-ui.cc:1033 #, fuzzy msgid "Article Cache" msgstr "清空文章缓存" #: pan/gui/prefs-ui.cc:1034 msgid "Clear article cache on shutdown" msgstr "关闭时清空文章缓存" #: pan/gui/prefs-ui.cc:1037 msgid "Size of article cache (in MiB):" msgstr "" # pan/gui.c:2080 #: pan/gui/prefs-ui.cc:1041 #, fuzzy msgid "File extension for cached articles: " msgstr "/过滤器(_R)/匹配读过的文章" #: pan/gui/prefs-ui.cc:1045 msgid "Tabs" msgstr "" #: pan/gui/prefs-ui.cc:1050 msgid "_Behavior" msgstr "行为(_B)" #: pan/gui/prefs-ui.cc:1050 #, fuzzy msgid "Behavior" msgstr "行为(_B)" # pan/gui.c:1961 #: pan/gui/prefs-ui.cc:1056 #, fuzzy #| msgid "_Task Manager" msgid "Task Pane" msgstr "任务管理器(_T)" #: pan/gui/prefs-ui.cc:1057 msgid "Show task pane popups" msgstr "" #: pan/gui/prefs-ui.cc:1059 #, fuzzy msgid "Show Download Meter" msgstr "仅现实我所张贴的" # pan/prefs.c:2193 #: pan/gui/prefs-ui.cc:1063 #, fuzzy #| msgid "_Body Pane" msgid "_Panes" msgstr "信体窗格(_B)" # pan/message-window.c:131 #: pan/gui/prefs-ui.cc:1063 #, fuzzy #| msgid "Japanese" msgid "Panes" msgstr "日文" # pan/base/decode.c:369 #: pan/gui/prefs-ui.cc:1069 #, fuzzy msgid "Language Settings" msgstr "设置" # pan/prefs.c:1888 pan/prefs.c:2057 pan/prefs.c:2422 #: pan/gui/prefs-ui.cc:1070 #, fuzzy #| msgid "Fonts" msgid "Font" msgstr "字体" #: pan/gui/prefs-ui.cc:1078 #, fuzzy msgid "System Tray Behavior" msgstr "行为(_B)" # pan/identities/identity-edit-ui.c:123 #: pan/gui/prefs-ui.cc:1080 #, fuzzy msgid "Show notifications" msgstr "显示文章信息" #. allow multiple instances (seperate, not communicating with dbus) #: pan/gui/prefs-ui.cc:1085 #, fuzzy msgid "Startup Behavior" msgstr "行为(_B)" #: pan/gui/prefs-ui.cc:1087 msgid "Allow multiple instances of Pan" msgstr "" # pan/articlelist.c:3143 #: pan/gui/prefs-ui.cc:1092 #, fuzzy msgid "Autosave Article Draft" msgstr "打开一篇文章的草稿" # pan/articlelist.c:3143 #: pan/gui/prefs-ui.cc:1094 #, fuzzy msgid "Minutes to autosave the current Article Draft: " msgstr "打开一篇文章的草稿" # pan/articlelist.c:3146 #: pan/gui/prefs-ui.cc:1100 #, fuzzy msgid "Autosave Articles" msgstr "保存文章" #: pan/gui/prefs-ui.cc:1102 msgid "Minutes to autosave newsrc files: " msgstr "" # pan/dialogs/dialog-newuser.c:518 #: pan/gui/prefs-ui.cc:1110 #, fuzzy #| msgid "Password:" msgid "Password Storage" msgstr "密码:" #: pan/gui/prefs-ui.cc:1112 msgid "Save passwords in password storage" msgstr "" #: pan/gui/prefs-ui.cc:1119 msgid "_Miscellaneous" msgstr "" #: pan/gui/prefs-ui.cc:1119 msgid "Miscellaneous" msgstr "" # pan/prefs.c:3057 #: pan/gui/prefs-ui.cc:1124 msgid "Pane Layout" msgstr "窗格布局" #: pan/gui/prefs-ui.cc:1143 msgid "1=Groups, 2=Headers, 3=Body" msgstr "1=组,2=标题,3=正文" #: pan/gui/prefs-ui.cc:1145 msgid "1=Groups, 2=Body, 3=Headers" msgstr "1=组,2=正文,3=标题" #: pan/gui/prefs-ui.cc:1147 msgid "1=Headers, 2=Groups, 3=Body" msgstr "1=标题,2=组,3=正文" #: pan/gui/prefs-ui.cc:1149 msgid "1=Headers, 2=Body, 3=Groups" msgstr "1=标题,2=正文,3=组" #: pan/gui/prefs-ui.cc:1151 msgid "1=Body, 2=Groups, 3=Headers" msgstr "1=正文,2=组,3=标题" #: pan/gui/prefs-ui.cc:1153 msgid "1=Body, 2=Headers, 3=Groups" msgstr "1=正文,2=标题,3=组" # pan/prefs.c:2345 #: pan/gui/prefs-ui.cc:1157 #, fuzzy msgid "Layout" msgstr "布局(_L)" #: pan/gui/prefs-ui.cc:1162 msgid "Header Pane Columns" msgstr "标题窗格列" # pan/message-window.c:1193 #: pan/gui/prefs-ui.cc:1166 msgid "_Headers" msgstr "标题(_H)" # pan/message-window.c:1193 #: pan/gui/prefs-ui.cc:1166 #, fuzzy msgid "Headers" msgstr "标题(_H)" #: pan/gui/prefs-ui.cc:1172 msgid "" "This menu lets you configure Pan to take certain actions on your behalf " "automatically, based on an article's score." msgstr "" # pan/filters/filter-read.c:50 #: pan/gui/prefs-ui.cc:1177 #, fuzzy msgid "Mark affected articles read" msgstr "未读文章" # pan/save-ui.c:418 #: pan/gui/prefs-ui.cc:1186 #, fuzzy #| msgid "set the article's score to" msgid "_Delete articles scoring at: " msgstr "将文章评分设为" # pan/filters/filter-read.c:50 #: pan/gui/prefs-ui.cc:1192 #, fuzzy msgid "Mark articles read scoring at: " msgstr "未读文章" # pan/save-ui.c:418 #: pan/gui/prefs-ui.cc:1198 #, fuzzy #| msgid "set the article's score to" msgid "_Cache articles scoring at: " msgstr "将文章评分设为" #: pan/gui/prefs-ui.cc:1204 msgid "Download attachments of articles scoring at: " msgstr "" # pan/rules/rule-edit-ui.c:814 #: pan/gui/prefs-ui.cc:1207 #, fuzzy msgid "Actions" msgstr "操作(_A)" # pan/prefs.c:1888 pan/prefs.c:2057 pan/prefs.c:2422 #: pan/gui/prefs-ui.cc:1212 pan/gui/prefs-ui.cc:1233 msgid "Fonts" msgstr "字体" # pan/save-ui.c:379 pan/save-ui.c:426 #: pan/gui/prefs-ui.cc:1214 msgid "Use custom font in Group Pane:" msgstr "组窗格使用自定义字体:" # pan/save-ui.c:379 pan/save-ui.c:426 #: pan/gui/prefs-ui.cc:1219 msgid "Use custom font in Header Pane:" msgstr "标题窗格使用自定义字体:" # pan/save-ui.c:379 pan/save-ui.c:426 #: pan/gui/prefs-ui.cc:1224 msgid "Use custom font in Body Pane:" msgstr "正文窗格使用自定义字体:" #: pan/gui/prefs-ui.cc:1229 msgid "Monospace font:" msgstr "等宽字体:" # pan/prefs.c:1888 pan/prefs.c:2057 pan/prefs.c:2422 #: pan/gui/prefs-ui.cc:1233 msgid "_Fonts" msgstr "字体(_F)" #: pan/gui/prefs-ui.cc:1242 msgid "Header Pane" msgstr "标题窗格" # pan/prefs.c:1917 #: pan/gui/prefs-ui.cc:1245 pan/gui/prefs-ui.cc:1251 pan/gui/prefs-ui.cc:1257 #: pan/gui/prefs-ui.cc:1263 pan/gui/prefs-ui.cc:1269 pan/gui/prefs-ui.cc:1275 #: pan/gui/prefs-ui.cc:1284 pan/gui/prefs-ui.cc:1290 pan/gui/prefs-ui.cc:1296 #: pan/gui/prefs-ui.cc:1302 pan/gui/prefs-ui.cc:1308 pan/gui/prefs-ui.cc:1318 #: pan/gui/prefs-ui.cc:1328 msgid "Text:" msgstr "文本:" # pan/prefs.c:1898 #: pan/gui/prefs-ui.cc:1247 pan/gui/prefs-ui.cc:1253 pan/gui/prefs-ui.cc:1259 #: pan/gui/prefs-ui.cc:1265 pan/gui/prefs-ui.cc:1271 pan/gui/prefs-ui.cc:1277 #: pan/gui/prefs-ui.cc:1286 pan/gui/prefs-ui.cc:1292 pan/gui/prefs-ui.cc:1298 #: pan/gui/prefs-ui.cc:1304 pan/gui/prefs-ui.cc:1310 pan/gui/prefs-ui.cc:1320 #: pan/gui/prefs-ui.cc:1330 msgid "Background:" msgstr "背景:" #: pan/gui/prefs-ui.cc:1249 msgid "Scores of 9999 or more:" msgstr "评分为 999 或更高:" #: pan/gui/prefs-ui.cc:1255 msgid "Scores from 5000 to 9998:" msgstr "评分从 5000 到 9998:" #: pan/gui/prefs-ui.cc:1261 msgid "Scores from 1 to 4999:" msgstr "评分从 1 到 4999:" #: pan/gui/prefs-ui.cc:1267 msgid "Scores from -9998 to -1:" msgstr "评分从 -9998 到 -1:" #: pan/gui/prefs-ui.cc:1273 msgid "Scores of -9999 or less:" msgstr "评分为 -9999 或更低:" #: pan/gui/prefs-ui.cc:1279 msgid "Collapsed thread with unread articles:" msgstr "" # pan/prefs.c:2193 #: pan/gui/prefs-ui.cc:1281 msgid "Body Pane" msgstr "正文窗格" #: pan/gui/prefs-ui.cc:1288 msgid "First level of quoted text:" msgstr "" #: pan/gui/prefs-ui.cc:1294 msgid "Second level of quoted text:" msgstr "" #: pan/gui/prefs-ui.cc:1300 msgid "Third level of quoted text:" msgstr "" # pan/prefs.c:1919 #. #: pan/gui/prefs-ui.cc:1306 msgid "URL:" msgstr "URL:" #. #: pan/gui/prefs-ui.cc:1312 msgid "Signature:" msgstr "签名:" # pan/prefs.c:2191 #: pan/gui/prefs-ui.cc:1315 #, fuzzy #| msgid "_Group Pane" msgid "Group Pane" msgstr "组列表窗格(_G)" #. #: pan/gui/prefs-ui.cc:1322 msgid "Group Color:" msgstr "" # pan/message-window.c:424 #: pan/gui/prefs-ui.cc:1326 #, fuzzy msgid "Other Text" msgstr "文字换行" # pan/pan-color-picker.c:55 #: pan/gui/prefs-ui.cc:1332 #, fuzzy #| msgid "Select Color" msgid "Text Color:" msgstr "选择颜色" # pan/prefs.c:1921 pan/prefs.c:2074 #: pan/gui/prefs-ui.cc:1335 msgid "_Colors" msgstr "颜色(_C)" # pan/prefs.c:1921 pan/prefs.c:2074 #: pan/gui/prefs-ui.cc:1335 #, fuzzy msgid "Colors" msgstr "颜色" #: pan/gui/prefs-ui.cc:1340 msgid "Preferred Applications" msgstr "首选应用程序" # pan/pan-file-entry.c:66 #: pan/gui/prefs-ui.cc:1344 msgid "_Web browser:" msgstr "网络浏览器(_W)" #: pan/gui/prefs-ui.cc:1347 msgid "_Gemini client:" msgstr "" # pan/prefs.c:2812 #: pan/gui/prefs-ui.cc:1350 msgid "_Mail reader:" msgstr "邮件阅读器(_M)" # pan/message-window.c:440 #: pan/gui/prefs-ui.cc:1352 msgid "_Text editor:" msgstr "文本编辑器(_T)" #: pan/gui/prefs-ui.cc:1354 msgid "_HTML previewer:" msgstr "_ HTML 预览工具:" #: pan/gui/prefs-ui.cc:1356 msgid "_Applications" msgstr "应用程序(_A)" #: pan/gui/prefs-ui.cc:1356 msgid "Applications" msgstr "应用程序" # pan/base/decode.c:369 #: pan/gui/prefs-ui.cc:1361 pan/gui/task-pane.cc:555 msgid "Encoding" msgstr "编码" #: pan/gui/prefs-ui.cc:1365 msgid "Default bytes per file (for encoder): " msgstr "" #: pan/gui/prefs-ui.cc:1371 msgid "_Upload" msgstr "上传(_U)" #: pan/gui/prefs-ui.cc:1371 msgid "Upload" msgstr "上传" #: pan/gui/prefs-ui.cc:1380 msgid "_Shortcuts" msgstr "" #: pan/gui/prefs-ui.cc:1380 msgid "Shortcuts" msgstr "" #: pan/gui/profiles-dialog.cc:83 msgid "Please choose your email address according to your PGP key's user id." msgstr "" # pan/identities/identity-ui.c:436 #: pan/gui/profiles-dialog.cc:131 msgid "Posting Profile" msgstr "投递配置文件" # pan/identities/identity-edit-ui.c:123 #: pan/gui/profiles-dialog.cc:143 msgid "Profile Information" msgstr "配置文件信息" # pan/dialogs/dialog-newuser.c:693 pan/identities/identity-edit-ui.c:133 # pan/prefs.c:1340 #: pan/gui/profiles-dialog.cc:147 msgid "_Profile Name:" msgstr "配置文件名称(_P):" # pan/identities/identity-edit-ui.c:155 #: pan/gui/profiles-dialog.cc:150 msgid "Required Information" msgstr "必要的信息" # pan/rules/rule-edit-ui.c:789 #: pan/gui/profiles-dialog.cc:154 msgid "_Full Name:" msgstr "全名(_F):" #: pan/gui/profiles-dialog.cc:158 msgid "" "Your email address.\n" "Note that this has to match your PGP signature's address\n" "if you want your messages to be PGP-signed or encrypted correctly." msgstr "" # pan/dialogs/dialog-newuser.c:349 #: pan/gui/profiles-dialog.cc:162 msgid "_Email Address:" msgstr "电子邮件地址(_E):" # pan/filter-edit-ui.c:742 #: pan/gui/profiles-dialog.cc:164 msgid "_Post Articles via:" msgstr "投递文章经由(_P):" # pan/identities/identity-edit-ui.c:242 #: pan/gui/profiles-dialog.cc:167 msgid "Signature" msgstr "签名" #: pan/gui/profiles-dialog.cc:170 msgid "_Use a Signature" msgstr "使用签名(_U)" # pan/identities/identity-edit-ui.c:242 #: pan/gui/profiles-dialog.cc:174 msgid "Signature File" msgstr "签名文件" #: pan/gui/profiles-dialog.cc:184 msgid "Text File" msgstr "文本文件" # pan/prefs.c:1917 #: pan/gui/profiles-dialog.cc:186 msgid "Text" msgstr "文本" # pan/print.c:180 #: pan/gui/profiles-dialog.cc:188 msgid "Command" msgstr "命令" # pan/identities/identity-edit-ui.c:242 #: pan/gui/profiles-dialog.cc:191 msgid "PGP Signature" msgstr "PGP 签名" #: pan/gui/profiles-dialog.cc:196 #, fuzzy msgid "Signature Type: " msgstr "签名类型(_T):" #: pan/gui/profiles-dialog.cc:228 msgid "Avatars" msgstr "" #: pan/gui/profiles-dialog.cc:231 msgid "" "You can add an avatar icon to your articles with a Base64-encoded PNG.\n" "Add the Base64-encoded picture without the trailing “Face:”." msgstr "" #: pan/gui/profiles-dialog.cc:233 msgid "_Face:" msgstr "" #: pan/gui/profiles-dialog.cc:237 msgid "" "You can add an avatar icon to your articles with a unique X-Face code.\n" "Add the code without the trailing \"X-Face:\" \n" " if it was generated by a helper program (for example http://www.dairiki.org/" "xface/xface.php)." msgstr "" #: pan/gui/profiles-dialog.cc:240 msgid "_X-Face:" msgstr "" # pan/identities/identity-edit-ui.c:186 #: pan/gui/profiles-dialog.cc:242 msgid "Optional Information" msgstr "可选信息" #: pan/gui/profiles-dialog.cc:247 #, fuzzy msgid "" "When posting to Usenet, your article's Message-ID contains a domain name.\n" "You can set a custom domain name here, or leave it blank to let Pan use the " "domain name from your email address." msgstr "" "在投递到 Usenet 时,您文章的消息标识中包括了一个域名。您可以在此自定义域名," "或者留空,让 Pan 使用您电子邮箱的域名。" # pan/article-find.c:375 #: pan/gui/profiles-dialog.cc:250 msgid "Message-ID _Domain Name:" msgstr "信息标识域名(_D):" #: pan/gui/profiles-dialog.cc:254 #, c-format msgid "" "%i for Message-ID\n" "%a for Author and Address\n" "%n for Author name\n" "%d for Date" msgstr "" "%i 对应信息标识\n" "%a 对应作者和地址\n" "%n 对应作者姓名\n" "%d 对应日期" # pan/identities/identity-edit-ui.c:228 #: pan/gui/profiles-dialog.cc:255 msgid "_Attribution:" msgstr "属性(_A):" #. Translators: Do not localize Reply-To and the quote marks in \"Your Name\". #: pan/gui/profiles-dialog.cc:280 #, fuzzy msgid "" "Extra headers to be included in your articles, such as\n" "Reply-To: \"Your Name\" \n" "Organization: Your Organization\n" msgstr "" "在您的投递中要包含的外部标题,如\n" "回复:“您的名字” \n" "组织:您的组织名称" # pan/message-window.c:1193 #: pan/gui/profiles-dialog.cc:290 msgid "E_xtra Headers:" msgstr "外部标题(_X):" # pan/dialogs/dialog-newuser.c:349 #: pan/gui/profiles-dialog.cc:335 msgid "Invalid email address." msgstr "无效的电子邮件地址" #: pan/gui/profiles-dialog.cc:336 msgid "Please use an address of the form joe@somewhere.org" msgstr "请使用 joe@somewhere.org 形式的地址" # pan/identities/identity-ui.c:314 #: pan/gui/profiles-dialog.cc:492 msgid "New Profile" msgstr "新建配置文件" # pan/gui.c:1931 #: pan/gui/profiles-dialog.cc:538 msgid "Posting Profiles" msgstr "投递配置文件" # pan/identities/identity-ui.c:449 #: pan/gui/profiles-dialog.cc:554 msgid "Profiles" msgstr "配置文件" #: pan/gui/save-attach-ui.cc:44 #, fuzzy, c-format msgid "" "%g - group as one directory (alt.binaries.pictures.trains)\n" "%G - group as nested directory (/alt/binaries/pictures/trains)\n" "%s - Subject line excerpt\n" "%S - Subject line\n" "%n - Poster display name\n" "%e - Poster email address\n" "%d - Article timestamp\n" "\"/home/user/News/Pan/%g\" becomes\n" "\"/home/user/News/Pan/alt.binaries.pictures.trains\", and\n" "\"/home/user/News/Pan/%G\" becomes\n" "\"/home/user/News/Pan/alt/binaries/pictures/trains\"," msgstr "" "%g - 把组作为一个文件夹 (alt.binaries.pictures.trains)\n" "%G - 把组作为一个嵌套的文件夹 (/alt/binaries/pictures/trains)\n" " \n" "\"/home/user/News/Pan/%g\" 变成\n" "\"/home/user/News/Pan/alt.binaries.pictures.trains\", 并且\n" "\"/home/user/News/Pan/%G\" 变成\n" "\"/home/user/News/Pan/alt/binaries/pictures/trains\"," #: pan/gui/save-attach-ui.cc:196 pan/gui/save-ui.cc:216 msgid "Add to the queue sorted by date posted" msgstr "添加到按投递日期排列的队列中" # pan/save-ui.c:452 #: pan/gui/save-attach-ui.cc:197 pan/gui/save-ui.cc:217 msgid "Add to the front of the queue" msgstr "添加到队列的前面" # pan/save-ui.c:459 #: pan/gui/save-attach-ui.cc:198 pan/gui/save-ui.cc:218 msgid "Add to the back of the queue" msgstr "添加到队列的后面" # pan/rules/rule-edit-ui.c:164 #: pan/gui/save-attach-ui.cc:230 #, fuzzy msgid "Pan: Save Attachments" msgstr "保存附件于:" # pan/save-ui.c:292 #: pan/gui/save-attach-ui.cc:255 pan/gui/save-attach-ui.cc:273 #: pan/gui/save-ui.cc:270 pan/gui/save-ui.cc:291 msgid "_Location:" msgstr "位置(_L):" # pan/articlelist.c:3146 #: pan/gui/save-attach-ui.cc:259 pan/gui/save-ui.cc:274 msgid "Save Articles" msgstr "保存文章" #: pan/gui/save-attach-ui.cc:276 pan/gui/save-ui.cc:294 #, c-format msgid "_Group's path: %s" msgstr "组路径(_G):%s" # pan/dialogs/dialog-newuser.c:493 pan/prefs.c:2802 #: pan/gui/save-attach-ui.cc:287 pan/gui/save-ui.cc:309 msgid "_Priority:" msgstr "优先级(_P):" #: pan/gui/save-ui.cc:44 #, fuzzy, c-format msgid "" "%g - group as one directory (alt.binaries.pictures.trains)\n" "%G - group as nested directory (/alt/binaries/pictures/trains)\n" "%s - subject line excerpt\n" "%S - subject line\n" "%n - Poster display name\n" "%e - Poster email address\n" "%d - Article timestamp\n" " \n" "\"/home/user/News/Pan/%g\" becomes\n" "\"/home/user/News/Pan/alt.binaries.pictures.trains\", and\n" "\"/home/user/News/Pan/%G\" becomes\n" "\"/home/user/News/Pan/alt/binaries/pictures/trains\"," msgstr "" "%g - 把组作为一个文件夹 (alt.binaries.pictures.trains)\n" "%G - 把组作为一个嵌套的文件夹 (/alt/binaries/pictures/trains)\n" " \n" "\"/home/user/News/Pan/%g\" 变成\n" "\"/home/user/News/Pan/alt.binaries.pictures.trains\", 并且\n" "\"/home/user/News/Pan/%G\" 变成\n" "\"/home/user/News/Pan/alt/binaries/pictures/trains\"," # pan/rules/rule-edit-ui.c:164 #: pan/gui/save-ui.cc:207 msgid "Save attachments" msgstr "保存附件" # pan/message-window.c:424 #: pan/gui/save-ui.cc:208 msgid "Save text" msgstr "保存文本" # pan/rules/rule-edit-ui.c:164 #: pan/gui/save-ui.cc:209 msgid "Save attachments and text" msgstr "保存附件和文本" # pan/articlelist.c:3146 #: pan/gui/save-ui.cc:245 msgid "Pan: Save Articles" msgstr "Pan:保存文章" # pan/rules/rule-edit-ui.c:814 #: pan/gui/save-ui.cc:305 msgid "_Action:" msgstr "操作(_A):" #: pan/gui/score-add-ui.cc:89 msgid "is more than" msgstr "多于" #: pan/gui/score-add-ui.cc:90 msgid "is at most" msgstr "最多" # pan/gui.c:1976 #: pan/gui/score-add-ui.cc:112 msgid "increase the article's score by" msgstr "增加文章评分" # pan/gui.c:1976 #: pan/gui/score-add-ui.cc:113 msgid "decrease the article's score by" msgstr "减少文章评分" # pan/save-ui.c:418 #: pan/gui/score-add-ui.cc:114 msgid "set the article's score to" msgstr "将文章评分设为" # pan/save-ui.c:418 #: pan/gui/score-add-ui.cc:115 msgid "watch the article (set its score to 9999)" msgstr "关注此文章(将评分设为 9999)" #: pan/gui/score-add-ui.cc:116 msgid "ignore the article (set its score to -9999)" msgstr "忽略该文章(将它的评分设为 -9999)" # pan/gui-headers.c:271 #: pan/gui/score-add-ui.cc:141 msgid "References" msgstr "参考" #: pan/gui/score-add-ui.cc:142 msgid "Line Count" msgstr "行数统计" #: pan/gui/score-add-ui.cc:143 msgid "Byte Count" msgstr "字节数统计" #: pan/gui/score-add-ui.cc:144 #, fuzzy msgid "Crosspost Group Count" msgstr "交叉投递组统计" #: pan/gui/score-add-ui.cc:145 #, fuzzy msgid "Age (in days)" msgstr "新旧(以天计)" #: pan/gui/score-add-ui.cc:167 msgid "for the next month" msgstr "下个月" #: pan/gui/score-add-ui.cc:168 msgid "for the next six months" msgstr "以后六个月" # pan/task-manager.c:775 pan/task-manager.c:796 #: pan/gui/score-add-ui.cc:169 msgid "forever" msgstr "永远" # pan/gui.c:1615 pan/task-manager.c:418 #: pan/gui/score-add-ui.cc:194 msgid "contains" msgstr "包含" #: pan/gui/score-add-ui.cc:195 msgid "doesn't contain" msgstr "不包含" # pan/prefs.c:1461 #: pan/gui/score-add-ui.cc:196 msgid "is" msgstr "是" #: pan/gui/score-add-ui.cc:197 msgid "isn't" msgstr "不是" #: pan/gui/score-add-ui.cc:198 msgid "starts with" msgstr "开始于" #: pan/gui/score-add-ui.cc:199 msgid "ends with" msgstr "结束于" #: pan/gui/score-add-ui.cc:200 msgid "matches regex" msgstr "匹配正则表达式" # pan/gui.c:1976 #: pan/gui/score-add-ui.cc:481 msgid "Another rule already sets this article's score." msgstr "另一规则已经设置了此文章的评分。" #: pan/gui/score-add-ui.cc:482 msgid "You may want to go back or delete the old rule." msgstr "您可以返回或删除这条旧规则。" #: pan/gui/score-add-ui.cc:484 msgid "Back" msgstr "后退" # pan/prefs.c:2949 #: pan/gui/score-add-ui.cc:485 pan/gui/task-pane.cc:1040 msgid "Delete" msgstr "删除" # pan/filter-ui.c:393 pan/identities/identity-ui.c:469 # pan/rules/rule-ui.c:507 #: pan/gui/score-add-ui.cc:486 pan/gui/score-add-ui.cc:607 #: pan/gui/score-view-ui.cc:207 msgid "Add" msgstr "添加" # pan/filter-ui.c:395 #: pan/gui/score-add-ui.cc:553 msgid "Add and Re_score" msgstr "添加并重新评分(_S)" # pan/rules/rule-edit-ui.c:818 #: pan/gui/score-add-ui.cc:602 pan/gui/score-add-ui.cc:622 msgid "New Scoring Rule" msgstr "新建评分规则" # pan/prefs.c:2191 #: pan/gui/score-add-ui.cc:633 #, fuzzy msgid "Group name" msgstr "组窗格字体" #: pan/gui/score-add-ui.cc:640 #, fuzzy #| msgid "Pan" msgid "and" msgstr "Pan" #: pan/gui/score-view-ui.cc:55 msgid "Close and Re_score" msgstr "关闭并重新评分(_S)" #: pan/gui/score-view-ui.cc:153 #, c-format msgid "File %s, Lines %d - %d" msgstr "%s 文件,第 %d - %d 行" # pan/save-ui.c:280 #: pan/gui/score-view-ui.cc:181 msgid "Pan: Article's Scores" msgstr "Pan:文章的评分" # pan/dialogs/dialog-newuser.c:686 pan/prefs.c:2584 #: pan/gui/score-view-ui.cc:212 msgid "New Score" msgstr "新评分" #: pan/gui/score-view-ui.cc:217 msgid "Criteria" msgstr "标准" # pan/filter-ui.c:395 #: pan/gui/score-view-ui.cc:240 msgid "Add a New Scoring Rule" msgstr "添加一个新的评分规则" # pan/identities/identity-ui.c:491 #: pan/gui/score-view-ui.cc:247 msgid "Remove the Selected Scoring Rule" msgstr "移除选择的评分规则" #: pan/gui/server-ui.cc:292 msgid "Please specify the server's address." msgstr "请指定服务器的地址。" #: pan/gui/server-ui.cc:344 msgid "Import SSL Certificate (PEM Format) From File" msgstr "" # pan/filter-ui.c:395 #. create the dialog #: pan/gui/server-ui.cc:381 pan/gui/server-ui.cc:998 msgid "Add a Server" msgstr "添加一个服务器" #: pan/gui/server-ui.cc:381 pan/gui/server-ui.cc:1004 msgid "Edit a Server's Settings" msgstr "编辑服务器设置" # pan/save-ui.c:292 #: pan/gui/server-ui.cc:401 msgid "Location" msgstr "位置" #: pan/gui/server-ui.cc:405 #, fuzzy #| msgid "The news server's actual address, e.g. \"news.mynewsserver.com\"" msgid "The news server's actual address, e.g. \"news.mynewsserver.com\"." msgstr "新闻服务器的实际地址,如“news.mynewsserver.com”" # pan/prefs.c:2913 #: pan/gui/server-ui.cc:406 msgid "_Address:" msgstr "地址(_A):" #: pan/gui/server-ui.cc:411 #, fuzzy #| msgid "The news server's port number. Typically 119." msgid "" "The news server's port number. Typically 119 for unencrypted and 563 for " "encrypted connections (SSL/TLS)." msgstr "新闻服务器的端口号,类型情况为 119。" # pan/dialogs/dialog-newuser.c:493 pan/prefs.c:2802 #: pan/gui/server-ui.cc:412 msgid "Por_t:" msgstr "端口(_T):" #: pan/gui/server-ui.cc:415 msgid "Login (if Required)" msgstr "登录(若要求)" # pan/prefs.c:1420 #: pan/gui/server-ui.cc:419 msgid "_Username:" msgstr "用户名(_U):" #: pan/gui/server-ui.cc:420 msgid "" "The username to give the server when asked. If your server doesn't require " "authentication, you can leave this blank." msgstr "在服务器询问时发送的用户名。如果服务器不要求身份认证,您可以不填。" # pan/dialogs/dialog-newuser.c:518 #: pan/gui/server-ui.cc:424 msgid "_Password:" msgstr "密码(_P):" #: pan/gui/server-ui.cc:425 msgid "" "The password to give the server when asked. If your server doesn't require " "authentication, you can leave this blank." msgstr "在服务器询问时发送的密码。如果服务器不要求身份认证,您可以不填。" # pan/base/decode.c:369 #: pan/gui/server-ui.cc:428 msgid "Settings" msgstr "设置" # pan/gui.c:1615 pan/task-manager.c:418 #: pan/gui/server-ui.cc:435 msgid "Connection _Limit:" msgstr "连接限制(_L):" #: pan/gui/server-ui.cc:439 msgid "After Two Weeks" msgstr "两周后" #: pan/gui/server-ui.cc:440 msgid "After One Month" msgstr "一个月后" #: pan/gui/server-ui.cc:441 msgid "After Two Months" msgstr "两个月后" #: pan/gui/server-ui.cc:442 msgid "After Three Months" msgstr "三个月后" #: pan/gui/server-ui.cc:443 msgid "After Six Months" msgstr "六个月后" #: pan/gui/server-ui.cc:444 #, fuzzy msgid "Never Expire Old Articles" msgstr "从不标记旧文章过期" #: pan/gui/server-ui.cc:458 #, fuzzy msgid "E_xpire Old Articles:" msgstr "标记旧文章过期(_X):" # pan/save-ui.c:446 #: pan/gui/server-ui.cc:462 msgid "Primary" msgstr "主" #: pan/gui/server-ui.cc:463 #, fuzzy msgid "Fallback" msgstr "后备" # pan/prefs.c:1376 #: pan/gui/server-ui.cc:477 msgid "Server Rank:" msgstr "服务器排名:" #: pan/gui/server-ui.cc:482 msgid "" "Fallback servers are used for articles that can't be found on the " "primaries. One common approach is to use free servers as primaries and " "subscription servers as fallbacks." msgstr "" "后备服务器用于在主服务器上找不到的文章。一种常见做法是使用免费服务器作为主服" "务器,订阅服务器作为后备。" #: pan/gui/server-ui.cc:487 msgid "Disable Compression (N/A)" msgstr "" #: pan/gui/server-ui.cc:488 msgid "XZVER Compression (Astraweb)" msgstr "" #: pan/gui/server-ui.cc:489 msgid "GZIP Compression (Giganews etc.)" msgstr "" # pan/filter-edit-ui.c:769 #: pan/gui/server-ui.cc:503 #, fuzzy #| msgid "Regular Expression" msgid "Header Compression:" msgstr "正则表达式" #: pan/gui/server-ui.cc:509 msgid "Security" msgstr "" # pan/task-manager.c:775 #: pan/gui/server-ui.cc:514 #, fuzzy msgid "Use Unsecure (Plaintext) Connections" msgstr "设置每个服务器连接数的限制" # pan/task-manager.c:775 #: pan/gui/server-ui.cc:515 #, fuzzy msgid "Use Secure SSL Connections" msgstr "设置每个服务器连接数的限制" #: pan/gui/server-ui.cc:530 msgid "TLS (SSL) Settings:" msgstr "" #: pan/gui/server-ui.cc:536 msgid "" "You can enable/disable secure SSL/TLS connections here. If you enable SSL/" "TLS, your data is encrypted and secure. It is encouraged to enable SSL/TLS " "for privacy reasons." msgstr "" #: pan/gui/server-ui.cc:541 msgid "Always trust this server's certificate" msgstr "" #: pan/gui/server-ui.cc:726 #, c-format msgid "Really delete \"%s\"?" msgstr "真的要删除“%s”?" #: pan/gui/server-ui.cc:815 msgid "No information available." msgstr "" #: pan/gui/server-ui.cc:825 #, c-format msgid "Server Certificate for '%s'" msgstr "" #: pan/gui/server-ui.cc:924 #, fuzzy, c-format msgid "Really delete certificate for \"%s\"?" msgstr "真的要删除“%s”?" # pan/task-manager.c:775 pan/task-manager.c:796 #. dialog #: pan/gui/server-ui.cc:951 pan/gui/server-ui.cc:972 pan/gui/server-ui.cc:1070 msgid "Servers" msgstr "服务器" # pan/dialogs/dialog-newuser.c:686 pan/prefs.c:2584 #: pan/gui/server-ui.cc:1011 msgid "Remove a Server" msgstr "移除一个服务器" #. dialog #: pan/gui/server-ui.cc:1044 msgid "SSL Certificates" msgstr "SSL 证书" #: pan/gui/server-ui.cc:1065 msgid "Certificates" msgstr "证书" #: pan/gui/server-ui.cc:1096 msgid "Import Certificate" msgstr "导入证书" #: pan/gui/server-ui.cc:1102 msgid "Inspect Certificate" msgstr "检查证书" # pan/dialogs/dialog-newuser.c:686 pan/prefs.c:2584 #: pan/gui/server-ui.cc:1109 msgid "Remove Certificate" msgstr "移除证书" #: pan/gui/task-pane.cc:124 #, c-format msgid "" "\n" "Upload\n" "\n" "Subject: \"%s\"\n" "From: %s\n" "Groups: %s\n" "Sourcefile: %s\n" msgstr "" #: pan/gui/task-pane.cc:136 #, c-format msgid "" "\n" "Download\n" "\n" "Subject: \"%s\"\n" "From: %s\n" "Date: %s\n" "Groups: %s\n" "Save Path: %s\n" msgstr "" # pan/base/base-prefs.c:36 #: pan/gui/task-pane.cc:138 msgid "unknown" msgstr "未知" #: pan/gui/task-pane.cc:306 #, fuzzy msgid "Choose New Destination for Selected Tasks" msgstr "获得全部所选择组内的新文章标题" # pan/filter-edit-ui.c:786 #: pan/gui/task-pane.cc:310 #, fuzzy #| msgid "Saved" msgid "Save" msgstr "保存的" # pan/task-manager.c:614 #: pan/gui/task-pane.cc:460 #, c-format msgid "Pan: Tasks (%d Queued, %d Running, %d Stopped)" msgstr "Pan:任务(%d 排队,%d 运行,%d 停止)" # pan/task-manager.c:616 #: pan/gui/task-pane.cc:462 #, c-format msgid "Pan: Tasks (%d Queued, %d Running)" msgstr "Pan:任务(%d 排队,%d 运行)" # pan/task-manager.c:870 #: pan/gui/task-pane.cc:464 msgid "Pan: Tasks" msgstr "Pan:任务" #: pan/gui/task-pane.cc:489 #, c-format msgid "%lu selected, %s" msgstr "%lu 已选择,%s" # pan/task-manager.c:409 #: pan/gui/task-pane.cc:553 msgid "Running" msgstr "正在运行" # pan/base/decode.c:369 #: pan/gui/task-pane.cc:554 msgid "Decoding" msgstr "正在解码" # pan/filter-edit-ui.c:791 #: pan/gui/task-pane.cc:556 msgid "Queued for Decode" msgstr "排队等待解码" # pan/filter-edit-ui.c:791 #: pan/gui/task-pane.cc:557 #, fuzzy msgid "Queued for Encode" msgstr "排队等待解码" # pan/task-manager.c:406 #: pan/gui/task-pane.cc:558 msgid "Queued" msgstr "在队列中" #: pan/gui/task-pane.cc:559 msgid "Stopped" msgstr "已停止" # pan/filter-ui.c:406 pan/identities/identity-ui.c:489 # pan/rules/rule-ui.c:520 #: pan/gui/task-pane.cc:560 msgid "Removing" msgstr "正在移除" # pan/task-manager.c:795 #: pan/gui/task-pane.cc:589 #, c-format msgid "%d%% Done" msgstr "%d%% 完成" #: pan/gui/task-pane.cc:595 #, c-format msgid "%d:%02d:%02d Remaining (%d @ %lu KiB/s)" msgstr "剩余 %d:%02d:%02d(%d 速度 %lu KB/s)" # pan/task-manager.c:747 #: pan/gui/task-pane.cc:690 pan/gui/task-pane.cc:691 #, fuzzy msgid "Move To Top" msgstr "选定的任务移动到底部" # pan/task-manager.c:747 #: pan/gui/task-pane.cc:695 pan/gui/task-pane.cc:696 #, fuzzy msgid "Move To Bottom" msgstr "选定的任务移动到底部" # pan/identities/identity-edit-ui.c:123 #: pan/gui/task-pane.cc:700 pan/gui/task-pane.cc:701 #, fuzzy #| msgid "Show Article Information" msgid "Show Task Information" msgstr "显示文章信息" # pan/gui.c:1719 #: pan/gui/task-pane.cc:705 pan/gui/task-pane.cc:706 #, fuzzy msgid "Stop Task" msgstr "停止任务" # pan/rules/rule-manager.c:108 #: pan/gui/task-pane.cc:710 pan/gui/task-pane.cc:711 #, fuzzy msgid "Delete Task" msgstr "删除任务" #: pan/gui/task-pane.cc:715 pan/gui/task-pane.cc:716 #, fuzzy msgid "Restart Task" msgstr "重启任务" #: pan/gui/task-pane.cc:720 pan/gui/task-pane.cc:721 msgid "Change Download Destination" msgstr "" #: pan/gui/task-pane.cc:1016 msgid "_Online" msgstr "在线(_O)" # pan/task-manager.c:747 #: pan/gui/task-pane.cc:1026 #, fuzzy msgid "Move up" msgstr "选定的任务移动到底部" # pan/task-manager.c:732 #: pan/gui/task-pane.cc:1027 #, fuzzy #| msgid "Move Selected Task(s) Up" msgid "Move task up" msgstr "选定的任务向上移动" # pan/task-manager.c:747 #: pan/gui/task-pane.cc:1028 #, fuzzy msgid "Move to top" msgstr "选定的任务移动到底部" #: pan/gui/task-pane.cc:1029 msgid "Move task to top of the download queue" msgstr "" # pan/task-manager.c:747 #: pan/gui/task-pane.cc:1031 #, fuzzy msgid "Move down" msgstr "选定的任务移动到底部" # pan/task-manager.c:743 #: pan/gui/task-pane.cc:1032 #, fuzzy #| msgid "Move Selected Task(s) Down" msgid "Move task down" msgstr "选定的任务向下移动" # pan/task-manager.c:747 #: pan/gui/task-pane.cc:1033 #, fuzzy msgid "Move to bottom" msgstr "选定的任务移动到底部" # pan/save-ui.c:452 #: pan/gui/task-pane.cc:1034 #, fuzzy #| msgid "Add to the front of the queue" msgid "Move task to the bottom of the download queue" msgstr "添加到队列的前面" #: pan/gui/task-pane.cc:1036 #, fuzzy msgid "Restart" msgstr "重启任务" #: pan/gui/task-pane.cc:1037 msgid "Restart Tasks" msgstr "重启任务" #: pan/gui/task-pane.cc:1038 #, fuzzy #| msgid "Stopped" msgid "Stop" msgstr "已停止" # pan/gui.c:1719 #: pan/gui/task-pane.cc:1039 msgid "Stop Tasks" msgstr "停止任务" # pan/rules/rule-manager.c:108 #: pan/gui/task-pane.cc:1041 msgid "Delete Tasks" msgstr "删除任务" # pan/prefs.c:1921 pan/prefs.c:2074 #: pan/gui/task-pane.cc:1043 #, fuzzy msgid "Close" msgstr "颜色" #: pan/gui/task-pane.cc:1047 msgid "Show popups" msgstr "" #: pan/gui/url.cc:143 #, c-format msgid "Error starting URL: %s (Command was: %s)" msgstr "启动 URL 失败:%s (命令为:%s)" # pan/base/util-file.c:224 #: pan/tasks/decoder.cc:124 #, c-format msgid "Couldn't save file \"%s\": %s" msgstr "无法保存“%s”文件:%s" #: pan/tasks/decoder.cc:146 pan/tasks/encoder.cc:146 msgid "Error initializing uulib" msgstr "初始化 uulib 出错" # pan/pan.c:121 #: pan/tasks/decoder.cc:166 pan/tasks/socket-impl-gio.cc:360 #: pan/tasks/socket-impl-openssl.cc:641 #, c-format msgid "Error reading from %s: %s" msgstr "从 %s 读取出错:%s" # pan/base/decode.c:458 #: pan/tasks/decoder.cc:206 #, c-format msgid "Saved \"%s\"" msgstr "已保存“%s”" # pan/base/acache.c:197 #: pan/tasks/decoder.cc:213 #, c-format msgid "" "Error saving \"%s\":\n" "%s." msgstr "" "保存“%s”出错:\n" "%s。" # pan/base/decode.c:369 #: pan/tasks/decoder.cc:326 pan/tasks/task-article.cc:351 #, c-format msgid "Decoding %s" msgstr "正在解码 %s" # pan/pan.c:121 #: pan/tasks/encoder.cc:113 pan/tasks/encoder.cc:164 #, fuzzy, c-format msgid "Error loading %s from cache." msgstr "从 %s 读取出错:%s" # pan/base/acache.c:197 #: pan/tasks/encoder.cc:186 #, fuzzy, c-format msgid "Error encoding %s: %s" msgstr "读文件出错“%s”: %s。" # pan/base/decode.c:369 #: pan/tasks/encoder.cc:276 #, fuzzy, c-format msgid "Encoding %s" msgstr "正在解码" #: pan/tasks/nntp.cc:176 #, c-format msgid "%s requires a username, but none is set." msgstr "%s 要求一个用户名,但没有设置。" # pan/dialogs/dialog-newuser.c:507 #: pan/tasks/nntp.cc:189 #, c-format msgid "%s requires a password, but none is set." msgstr "%s 要求一个密码,但没有设置。" #: pan/tasks/nntp.cc:275 #, c-format msgid "Sending \"%s\" to %s returned an error: %s" msgstr "发送“%s”给 %s 时返回一个错误:%s" #: pan/tasks/nntp.cc:298 #, c-format msgid "Sending \"%s\" to %s returned an unrecognized response: \"%s\"" msgstr "发送“%s”给 %s 时返回一个未识别的响应:%s”" # pan/smtp.c:451 #: pan/tasks/nntp-pool.cc:241 #, c-format msgid "Unable to connect to \"%s\"" msgstr "不能连接到“%s”" #: pan/tasks/queue.cc:778 pan/tasks/queue.cc:806 pan/tasks/queue.cc:833 msgid "No space left on device." msgstr "" # pan/base/acache.c:197 #: pan/tasks/socket-impl-gio.cc:173 pan/tasks/socket-impl-gio.cc:211 #: pan/tasks/socket-impl-openssl.cc:213 pan/tasks/socket-impl-openssl.cc:251 #, c-format msgid "Error connecting to \"%s\"" msgstr "连接“%s”出错" # pan/base/base-prefs.c:36 #: pan/tasks/socket-impl-gio.cc:359 pan/tasks/socket-impl-openssl.cc:640 msgid "Unknown Error" msgstr "未知错误" # pan/task-save.c:102 #: pan/tasks/task-article.cc:59 pan/tasks/task-article.cc:157 #, c-format msgid "Saving %s" msgstr "正在保存 %s" # pan/filter-edit-ui.c:861 pan/rules/rule-edit-ui.c:154 #: pan/tasks/task-article.cc:61 #, c-format msgid "Reading %s" msgstr "阅读 %s" #: pan/tasks/task-article.cc:323 #, c-format msgid "Article \"%s\" is incomplete -- the news server(s) don't have part %s" msgstr "文章“%s”不完整 -- 新闻服务器没有 %s 部分" # pan/task-grouplist.c:423 #: pan/tasks/task-groups.cc:41 #, c-format msgid "Getting group list from \"%s\"" msgstr "正在从 %s 获取组列表" # pan/task-headers.c:304 #: pan/tasks/task-groups.cc:134 #, c-format msgid "Fetched %lu Groups" msgstr "获取了 %lu 个组" # pan/base/decode.c:369 #: pan/tasks/task-post.cc:33 #, c-format msgid "Posting \"%s\"" msgstr "正在投递“%s”" # pan/nntp.c:627 #: pan/tasks/task-post.cc:74 #, fuzzy, c-format msgid "Posting of \"%s\" failed: %s" msgstr "获得文章“%s”内容失败:%s" # pan/nntp.c:627 #: pan/tasks/task-post.cc:79 #, fuzzy, c-format msgid "Posting of \"%s\" successful: %s" msgstr "获得文章“%s”内容失败:%s" # pan/filter-edit-ui.c:861 pan/rules/rule-edit-ui.c:154 #: pan/tasks/task-upload.cc:55 #, fuzzy, c-format msgid "Uploading %s" msgstr "阅读 %s" #: pan/tasks/task-upload.cc:249 #, c-format msgid "Uploading %s - Part %d of %d" msgstr "" #: pan/tasks/task-upload.cc:251 #, c-format msgid "Uploading message body with subject \"%s\"" msgstr "" # pan/nntp.c:627 #: pan/tasks/task-upload.cc:308 #, fuzzy, c-format msgid "Posting of file %s (part %d of %d) failed: No posts allowed by server." msgstr "获得文章“%s”内容失败:%s" # pan/nntp.c:627 #: pan/tasks/task-upload.cc:317 #, fuzzy, c-format msgid "Posting of file %s (part %d of %d) failed: %s" msgstr "获得文章“%s”内容失败:%s" # pan/nntp.c:627 #: pan/tasks/task-upload.cc:328 pan/tasks/task-upload.cc:335 #, fuzzy, c-format msgid "Posting of file %s (part %d of %d) successful: %s" msgstr "获得文章“%s”内容失败:%s" # pan/nntp.c:627 #: pan/tasks/task-upload.cc:345 #, fuzzy, c-format msgid "Posting of file %s successful: %s" msgstr "获得文章“%s”内容失败:%s" #: pan/tasks/task-upload.cc:349 #, c-format msgid "" "Posting of file %s not completely successful: Check the log (right-click " "list item)." msgstr "" #: pan/tasks/task-upload.cc:368 #, c-format msgid "" "Posting of file %s not successful: Check the log (right-click list item)." msgstr "" # pan/task-grouplist.c:423 #: pan/tasks/task-xover.cc:82 #, c-format msgid "Getting all headers for \"%s\"" msgstr "正在获取“%s”的所有标题" # pan/task-grouplist.c:423 #: pan/tasks/task-xover.cc:85 #, c-format msgid "Getting new headers for \"%s\"" msgstr "正在为“%s”获取新标题" #. SAMPLE #: pan/tasks/task-xover.cc:89 #, c-format msgid "Sampling headers for \"%s\"" msgstr "为“%s”获取标题" # pan/message-window.c:709 pan/message-window.c:727 pan/message-window.c:742 #: pan/tasks/task-xover.cc:454 #, c-format msgid "%s (%lu parts, %lu articles)" msgstr "%s (%lu 个部分,%lu 篇文章)" # pan/task-grouplist.c:423 #: pan/tasks/task-xover.cc:528 #, fuzzy, c-format #| msgid "Getting new headers for \"%s\"" msgid "Getting new headers for \"%s\" done." msgstr "正在为“%s”获取新标题" # pan/filters/filter-binary.c:63 #: pan/usenet-utils/filter-info.cc:215 msgid "article doesn't have attachments" msgstr "该文章没有附件" # pan/filters/filter-binary.c:77 #: pan/usenet-utils/filter-info.cc:219 msgid "the article has attachments" msgstr "该文章包含附件" # pan/filters/filter-cached.c:52 #: pan/usenet-utils/filter-info.cc:223 msgid "the article isn't cached locally" msgstr "该文章没有在本地缓存" # pan/filters/filter-cached.c:54 #: pan/usenet-utils/filter-info.cc:227 msgid "the article is cached locally" msgstr "该文章已在本地缓存" # pan/filters/filter-mine.c:50 #: pan/usenet-utils/filter-info.cc:231 msgid "the article wasn't posted by you" msgstr "该文章不是您投递的" # pan/filters/filter-mine.c:51 #: pan/usenet-utils/filter-info.cc:235 msgid "the article was posted by you" msgstr "该文章是您投递的" # pan/filter-edit-ui.c:780 #: pan/usenet-utils/filter-info.cc:239 msgid "the article has been read" msgstr "该文章已阅读" # pan/filter-edit-ui.c:780 #: pan/usenet-utils/filter-info.cc:243 msgid "the article hasn't been read" msgstr "该文章尚未阅读" # pan/filters/filter-linecount.c:54 #: pan/usenet-utils/filter-info.cc:247 #, c-format msgid "the article is less than %ld bytes long" msgstr "该文章长度少于 %ld 字节" # pan/filter-edit-ui.c:905 #: pan/usenet-utils/filter-info.cc:252 #, c-format msgid "the article is at least %ld bytes long" msgstr "该文章长度至少有 %ld 字节" # pan/filters/filter-linecount.c:54 #: pan/usenet-utils/filter-info.cc:257 #, c-format msgid "the article is less than %ld lines long" msgstr "该文章长度少于 %ld 行" # pan/filters/filter-linecount.c:54 #: pan/usenet-utils/filter-info.cc:262 #, c-format msgid "the article is at least %ld lines long" msgstr "该文章长度至少有 %ld 行" # pan/filters/filter-date.c:58 #: pan/usenet-utils/filter-info.cc:267 #, c-format msgid "the article is less than %ld days old" msgstr "该文章不超过 %ld 天" # pan/filter-edit-ui.c:905 #: pan/usenet-utils/filter-info.cc:272 #, c-format msgid "the article is at least %ld days old" msgstr "该文章至少已有 %ld 天" # pan/filters/filter-crosspost.c:54 #: pan/usenet-utils/filter-info.cc:277 #, c-format msgid "the article was posted to less than %ld groups" msgstr "该文章已投递的组不超过 %ld 个" # pan/filter-edit-ui.c:895 #: pan/usenet-utils/filter-info.cc:282 #, c-format msgid "the article was posted to at least %ld groups" msgstr "该文章至少投递到了 %ld 个组" # pan/filters/filter-score.c:54 #: pan/usenet-utils/filter-info.cc:287 #, c-format msgid "the article's score is less than %ld" msgstr "该文章的评分少于 %ld" # pan/filters/filter-score.c:56 #: pan/usenet-utils/filter-info.cc:292 #, c-format msgid "the article's score is %ld or higher" msgstr "该文章的评分为 %ld 或者更高" #: pan/usenet-utils/filter-info.cc:301 pan/usenet-utils/filter-info.cc:311 #, c-format msgid "%s doesn't contain \"%s\"" msgstr "%s 不包含“%s”" #: pan/usenet-utils/filter-info.cc:302 pan/usenet-utils/filter-info.cc:312 #, c-format msgid "%s isn't \"%s\"" msgstr "%s 不是“%s”" #: pan/usenet-utils/filter-info.cc:303 pan/usenet-utils/filter-info.cc:313 #, c-format msgid "%s doesn't begin with \"%s\"" msgstr "%s 不是以“%s”开始" #: pan/usenet-utils/filter-info.cc:304 pan/usenet-utils/filter-info.cc:314 #, c-format msgid "%s doesn't end with \"%s\"" msgstr "%s 不是以“%s”结束" # pan/filters/filter-phrase.c:71 #: pan/usenet-utils/filter-info.cc:305 pan/usenet-utils/filter-info.cc:315 #, c-format msgid "%s doesn't match the regex \"%s\"" msgstr "%s 不匹配正则表达式“%s”" # pan/gui.c:1615 pan/task-manager.c:418 #: pan/usenet-utils/filter-info.cc:327 #, c-format msgid "%s contains \"%s\"" msgstr "%s 包含“%s”" #: pan/usenet-utils/filter-info.cc:328 #, c-format msgid "%s is \"%s\"" msgstr "%s 是“%s”" #: pan/usenet-utils/filter-info.cc:329 #, c-format msgid "%s begins with \"%s\"" msgstr "%s 以“%s”开始" #: pan/usenet-utils/filter-info.cc:330 #, c-format msgid "%s ends with \"%s\"" msgstr "%s 以“%s”结束" # pan/filters/filter-phrase.c:73 #: pan/usenet-utils/filter-info.cc:331 #, c-format msgid "%s matches the regex \"%s\"" msgstr "%s 匹配正则表达式“%s”" #: pan/usenet-utils/filter-info.cc:337 msgid "Any of these tests fail:" msgstr "这些测试中的任何一个失败:" #: pan/usenet-utils/filter-info.cc:344 msgid "All of these tests pass:" msgstr "这些测试全部通过:" #: pan/usenet-utils/filter-info.cc:351 msgid "None of these tests pass:" msgstr "这些测试全未通过:" #: pan/usenet-utils/filter-info.cc:358 msgid "Any of these tests pass:" msgstr "这些测试中的任何一个通过:" # pan/base/gnksa.c:957 #: pan/usenet-utils/gnksa.cc:880 #, c-format msgid "No email address provided; generating message-id with domain \"%s\"" msgstr "没有提供电子邮件地址;正在用域名“%s”创建消息号" #: pan/usenet-utils/message-check.cc:122 #, fuzzy msgid "Warning: Reply seems to be top-posted." msgstr "警告:回复似乎为热门投递。" #: pan/usenet-utils/message-check.cc:143 msgid "Warning: The signature marker should be \"-- \", not \"--\"." msgstr "警告:签名标记应为“-- ”,而非“--”。" # pan/base/message-check.c:97 #: pan/usenet-utils/message-check.cc:160 msgid "Warning: Signature prefix with no signature." msgstr "警告:签名前缀没有跟签名。" # pan/base/message-check.c:104 #: pan/usenet-utils/message-check.cc:165 msgid "Warning: Signature is more than 4 lines long." msgstr "警告:签名长度超过了4行。" # pan/base/message-check.c:104 #: pan/usenet-utils/message-check.cc:170 msgid "Warning: Signature is more than 80 characters wide." msgstr "警告:签名宽度超过了80个字符。" # pan/base/message-check.c:144 #: pan/usenet-utils/message-check.cc:196 #, fuzzy, c-format msgid "Warning: %d line is more than 80 characters wide." msgid_plural "Warning: %d lines are more than 80 characters wide." msgstr[0] "警告:有 %d 行宽度超过了80个字符。" # pan/base/message-check.c:179 #: pan/usenet-utils/message-check.cc:221 msgid "Error: Message is empty." msgstr "错误:信息是空的。" # pan/base/message-check.c:228 #: pan/usenet-utils/message-check.cc:256 msgid "Warning: The message is entirely quoted text!" msgstr "警告:该信息全是引用的文本!" # pan/base/message-check.c:229 #: pan/usenet-utils/message-check.cc:257 msgid "Warning: The message is mostly quoted text." msgstr "警告:该信息大部分是引用的文本。" # pan/base/message-check.c:320 #: pan/usenet-utils/message-check.cc:307 msgid "Error: Message appears to have no new content." msgstr "错误:似乎信息里没有新的内容。" #: pan/usenet-utils/message-check.cc:342 pan/usenet-utils/message-check.cc:381 #, c-format msgid "" "Warning: The posting profile's server doesn't carry newsgroup\n" "\t\"%s\".\n" "\tIf the group name is correct, switch profiles in the \"From:\"\n" "\tline or edit the profile with \"Edit|Manage Posting Profiles\"." msgstr "" "警告:该投递配置文件的服务器不提供新闻组\n" "\t\"%s\"。\n" "\t如果该组名称是正确的,请在“来自:”\n" "\t行中切换配置文件,或通过“编辑|管理投递配置文件”编辑配置文件。" # pan/base/message-check.c:378 #: pan/usenet-utils/message-check.cc:353 msgid "Warning: Following-Up to too many groups." msgstr "警告:跟随的组太多。" # pan/base/message-check.c:394 #: pan/usenet-utils/message-check.cc:364 msgid "Error: No Subject specified." msgstr "错误:没有指定主题。" # pan/base/message-check.c:428 #: pan/usenet-utils/message-check.cc:393 #, c-format msgid "Warning: Group \"%s\" is read-only." msgstr "警告:组“%s”是只读的。" # pan/base/message-check.c:443 #: pan/usenet-utils/message-check.cc:402 msgid "Error: Posting to a very large number of groups." msgstr "错误:要投递的组过多。" # pan/base/message-check.c:450 #: pan/usenet-utils/message-check.cc:407 msgid "Warning: Posting to a large number of groups." msgstr "警告:要投递的组过多。" # pan/base/message-check.c:459 #: pan/usenet-utils/message-check.cc:414 #, fuzzy msgid "Warning: Crossposting without setting Followup-To header." msgstr "警告:交叉投递而没有设置跟随标题。" # pan/dialogs/dialog-newuser.c:349 #: pan/usenet-utils/message-check.cc:439 msgid "Error: Bad email address." msgstr "错误:电子邮件地址有误。" #: pan/usenet-utils/message-check.cc:448 msgid "Warning: Most newsgroups frown upon HTML posts." msgstr "警告:绝大多数新闻组不愿接受 HTML 投递。" # pan/base/message-check.c:394 #: pan/usenet-utils/message-check.cc:484 msgid "Error: No Recipients." msgstr "错误:没有接收方。" #: pan/usenet-utils/scorefile.cc:310 #, c-format msgid "Error reading score in %*.*s, line %d: unexpected line." msgstr "读取 %*.*s 第 %d 行中的评分出错:异常的行。" #: pan/usenet-utils/scorefile.cc:442 #, c-format msgid "" "Error reading score in %*.*s, line %d: expected 'Expires: MM/DD/YYYY' or " "'Expires: DD-MM-YYYY'." msgstr "" "读取 %*.*s 中的评分出错,第 %d 行:应为 'Expires: MM/DD/YYYY' 或 'Expires: " "DD-MM-YYYY'." #: pan/usenet-utils/scorefile.cc:452 #, fuzzy, c-format msgid "Expired old score from %*.*s, line %d" msgstr "废弃了 %*.*s 第 %d 行中的旧评分" #: pan/usenet-utils/scorefile.cc:589 #, c-format msgid "Read %lu scoring rules in %lu sections from \"%s\"" msgstr "读取来自“%3$s”第 %2$lu 节中的 %1$lu 条评分规则" # pan/base/newsrc-port.c:105 #: pan/usenet-utils/ssl-utils.cc:172 #, fuzzy, c-format msgid "Error printing the server certificate for '%s'" msgstr "读被编辑文件时出错:“%s”" #: pan/usenet-utils/ssl-utils.cc:191 #, c-format msgid "" "The current server '%s' sent this security certificate:\n" "\n" msgstr "" #: pan/usenet-utils/ssl-utils.cc:197 #, c-format msgid "" "Certificate information for server '%s':\n" "\n" msgstr "" #: pan/usenet-utils/ssl-utils.cc:202 #, c-format msgid "" "%sIssuer information:\n" "%s\n" "Valid until: %s\n" "\n" "Not valid before: %s\n" "\n" msgstr "" # pan/base/util-wrap.c:294 #: pan/usenet-utils/text-massager.cc:397 msgid "> [quoted text muted]" msgstr "> [引用的文本被屏蔽]" #: pan/usenet-utils/text-massager.cc:579 msgid "no_name" msgstr "" # pan/dialogs/dialog-newuser.c:679 #: pan/usenet-utils/text-massager.cc:580 #, fuzzy #| msgid "Email" msgid "no_mail" msgstr "电子邮件地址" # pan/message-window.c:440 #, fuzzy, c-format #~ msgid "Error setting custom spellchecker: %s" #~ msgstr "设置拼写检查器出错:%s" # pan/message-window.c:440 #, c-format #~ msgid "Error setting spellchecker: %s" #~ msgstr "设置拼写检查器出错:%s" #~ msgid "_Tip Jar..." #~ msgstr "捐助(_T)..." # pan/message-window.c:440 #, fuzzy #~ msgid "Always trust" #~ msgstr "总是运行编辑器" # pan/rules/rule-edit-ui.c:478 #, fuzzy #~ msgid "Edit Hotkey" #~ msgstr "编辑过滤器" # pan/prefs.c:1913 #, fuzzy #~ msgid "Quoted text:" #~ msgstr "引用的文本:" #~ msgid "If the group name" #~ msgstr "若该组名称" # pan/message-window.c:898 #~ msgid "And the article's" #~ msgstr "及文章的" # pan/task-grouplist.c:423 #, fuzzy, c-format #~ msgid "Getting header counts for \"%s\"" #~ msgstr "正在获取“%s”的所有标题" #~ msgid "Read News from Usenet" #~ msgstr "阅读来自 Usenet 的新闻" # pan/prefs.c:2072 #, fuzzy #~ msgid "_Toggle Flag on for Thread" #~ msgstr "关注话题(_W)" #~ msgid "Attachment not shown: MIME type %s/%s; filename %s\n" #~ msgstr "附件未显示:MIME 类型 %s/%s;文件名 %s\n" #~ msgid "Attachment not shown: MIME type %s/%s\n" #~ msgstr "附件未显示:MIME 类型 %s/%s\n" # pan/sockets.c:403 #, fuzzy #~ msgid "An error has occured. Maximize Pan to investigate." #~ msgstr "写入服务器时产生错误。" #~ msgid "" #~ "Spellchecker not found!\n" #~ " \n" #~ "Was this copy of Pan compiled with GtkSpell enabled?" #~ msgstr "" #~ "找不到拼写检查器!\n" #~ " \n" #~ "这份 Pan 软件编译了 GtkSpell 支持吗?" #, fuzzy #~ msgid "Signer : " #~ msgstr "签名:" # pan/prefs.c:1984 pan/prefs.c:2130 pan/prefs.c:2439 #, fuzzy #~ msgid "Encoding Options" #~ msgstr "选项" #~ msgid "_Signature:" #~ msgstr "签名(_S):" # pan/articlelist.c:3455 #~ msgid "Posting Article" #~ msgstr "投递文章" # pan/gui.c:2100 #~ msgid "Posting..." #~ msgstr "正在投递..." # pan/base/file-headers.c:423 pan/base/file-headers.c:542 #, fuzzy #~ msgid "Creating directory \"%s\"" #~ msgstr "不能创建目录“%s”" # pan/base/util-file.c:224 #~ msgid "Couldn't create directory \"%s\": %s" #~ msgstr "不能创建目录“%s”:%s" # pan/filters/filter-phrase.c:81 #, fuzzy #~ msgid "Can't use regular expression \"%s\": %s at position %d" #~ msgstr "作者与正则表达式“%s”相符" # pan/grouplist.c:643 pan/grouplist.c:680 pan/gui-notebook.c:58 #, fuzzy #~ msgid "_Groups" #~ msgstr "组" # pan/gui.c:2062 #, fuzzy #~ msgid "Read Selected Group" #~ msgstr "阅读下一个未阅读的组" # pan/grouplist.c:57 #, fuzzy #~ msgid "_Mark Group _Read" #~ msgstr "/标记组为已读(_R)" #, fuzzy #~ msgid "_Delete Group's Articles" #~ msgstr "删除组内全部文章(_D)" #, fuzzy #~ msgid "Get New Headers for Subscribed Groups" #~ msgstr "获得全部所订阅组内的新文章标题" # pan/task-grouplist.c:394 #, fuzzy #~ msgid "Get Headers from Server" #~ msgstr "从服务器“%2$s”找到%1$d个组" # pan/task-grouplist.c:483 #, fuzzy #~ msgid "Get a new Group list from the Server" #~ msgstr "从服务器“%2$s”中找到%1$d个新组" # pan/rules/rule-edit-ui.c:622 #, fuzzy #~ msgid "Subscribe to Selected Groups" #~ msgstr "已订阅的新闻组" # pan/rules/rule-edit-ui.c:622 #, fuzzy #~ msgid "Unsubscribe from Selected Groups" #~ msgstr "已订阅的新闻组" # pan/articlelist.c:3147 #, fuzzy #~ msgid "Save Selected Articles..." #~ msgstr "保存文章附件" # pan/task-manager.c:787 #~ msgid "Cancel Last Task" #~ msgstr "终止上一个任务" #, fuzzy #~ msgid "Clear Header Pane" #~ msgstr "标题窗格" # pan/prefs.c:2193 #, fuzzy #~ msgid "Clear Body Pane" #~ msgstr "信体窗格" #, fuzzy #~ msgid "Download _Selected Article" #~ msgstr "获取选中的文章" #, fuzzy #~ msgid "Download Selected Article" #~ msgstr "获取选中的文章" #, fuzzy #~ msgid "Read _Selected Article" #~ msgstr "获取选中的文章" # pan/gui.c:2062 #, fuzzy #~ msgid "Next Unread Group" #~ msgstr "/转到(_G)/下一个未阅读的组(_G)" # pan/gui.c:2063 #, fuzzy #~ msgid "Next Group" #~ msgstr "/转到(_G)/下一个组(_E)" # pan/article-toolbar.c:712 #, fuzzy #~ msgid "Next Watched Article" #~ msgstr "仅显示要跟踪的文章" #, fuzzy #~ msgid "Next Thread" #~ msgstr "/转到(_G)/下一条话题(_D)" # pan/gui.c:2056 #, fuzzy #~ msgid "Previous Article" #~ msgstr "//转到(_G)/前一篇文章(_V)" #, fuzzy #~ msgid "Previous Thread" #~ msgstr "/转到(_G)/前一条话题(_U)" #, fuzzy #~ msgid "Parent Article" #~ msgstr "/转到(_G)/上一级文章(_P)" # pan/article-toolbar.c:872 pan/articlelist.c:935 pan/filter-edit-ui.c:753 # pan/prefs.c:1809 pan/task-save.c:651 #, fuzzy #~ msgid "_Plonk Author" #~ msgstr "作者" # pan/filters/filter-read.c:51 #, fuzzy #~ msgid "Mark Article as Read" #~ msgstr "已读文章" # pan/article-toolbar.c:872 pan/articlelist.c:935 pan/filter-edit-ui.c:753 # pan/prefs.c:1809 pan/task-save.c:651 #, fuzzy #~ msgid "Reply to Author" #~ msgstr "作者" # pan/gui.c:2117 #, fuzzy #~ msgid "_About..." #~ msgstr "/帮助(_H)/关于(_A)..." # pan/gui.c:1973 #, fuzzy #~ msgid "Abbreviate _Names in Group Pane" #~ msgstr "/查看(_V)/在组窗格中缩写名字(_N)" # pan/filters/filter-mine.c:51 #, fuzzy #~ msgid "Match Only Articles Posted by Me" #~ msgstr "自己张贴的文章" #, fuzzy #~ msgid "Central European (ISO-8859-2)" #~ msgstr "中欧" #, fuzzy #~ msgid "Central European (Windows-1250)" #~ msgstr "中欧" # pan/message-window.c:119 #, fuzzy #~ msgid "Chinese Simplified (gb2312)" #~ msgstr "简体中文" # pan/message-window.c:120 #, fuzzy #~ msgid "Chinese Traditional (big5)" #~ msgstr "繁体中文" #, fuzzy #~ msgid "Cyrillic (KOI8-R)" #~ msgstr "古斯拉夫语" # pan/message-window.c:145 #, fuzzy #~ msgid "Cyrillic, Ukrainian (KOI8-U)" #~ msgstr "古斯拉夫语,乌克兰语" #, fuzzy #~ msgid "Western, New (ISO-8859-15)" #~ msgstr "西方,新" #, fuzzy #~ msgid "Unicode (UTF-8)" #~ msgstr "Unicode, UTF-8" #, fuzzy #~ msgid "Pan: " #~ msgstr "Pan " #, fuzzy #~ msgid "Pan: %s" #~ msgstr "Pan " # pan/gui.c:1722 #~ msgid "Tasks: %u/%u" #~ msgstr "任务:%u/%u" # pan/gui.c:1723 #~ msgid "%u Tasks Running, %u Tasks Total" #~ msgstr "%u个任务正在运行,总共%u个任务" # pan/gui.c:1976 #, fuzzy #~ msgid "Wrap the Article Body to 80 Columns" #~ msgstr "/查看(_V)/填充(自动换行)文章主体(_W)" #, fuzzy #~ msgid "Close Window" #~ msgstr "关闭日志窗口。" # pan/prefs.c:1917 #, fuzzy #~ msgid "Cut Text" #~ msgstr "引用的文本3" # pan/identities/identity-ui.c:475 #, fuzzy #~ msgid "_Copy" #~ msgstr "复制自(_C)" # pan/message-window.c:424 #, fuzzy #~ msgid "Copy Text" #~ msgstr "文字换行" # pan/gui.c:2100 #, fuzzy #~ msgid "_Paste" #~ msgstr "/张贴(_P)" # pan/gui.c:1931 #, fuzzy #~ msgid "Manage Posting Pr_ofiles..." #~ msgstr "/工具(_T)/张贴选项(_P)..." #~ msgid "Western" #~ msgstr "西方" # pan/pan.c:121 #, fuzzy #~ msgid "Error loading post.ui: \"%s\"" #~ msgstr "读套接字错。" # pan/identities/identity-ui.c:471 #, fuzzy #~ msgid "Add a New Profile" #~ msgstr "添加新Profile" # pan/identities/identity-ui.c:484 #~ msgid "Edit the selected profile" #~ msgstr "编辑选中的Profile" # pan/identities/identity-ui.c:491 #~ msgid "Remove the selected profile" #~ msgstr "删除选中的Profile" #, fuzzy #~ msgid "Threads" #~ msgstr "/转到(_G)/下一条话题(_D)" # pan/message-window.c:890 #, fuzzy #~ msgid "Path" #~ msgstr "局部" # pan/gui.c:2100 #, fuzzy #~ msgid "_Path:" #~ msgstr "/张贴(_P)" # pan/rules/rule-edit-ui.c:775 #, fuzzy #~ msgid "Pan: New Scoring Rule" #~ msgstr "Pan:编辑规则" # pan/dialogs/dialog-about.c:89 #, fuzzy #~ msgid "Then" #~ msgstr "感谢" # pan/grouplist.c:533 pan/grouplist.c:938 #, fuzzy #~ msgid "For" #~ msgstr "文件夹" # pan/base/decode.c:458 #, fuzzy #~ msgid "Name: \"%s\"" #~ msgstr "保存的“%s”" # pan/prefs.c:1309 #, fuzzy #~ msgid "Pan: Add a Server" #~ msgstr "Pan:编辑服务器" # pan/prefs.c:1309 #, fuzzy #~ msgid "Pan: Edit a Server's Settings" #~ msgstr "Pan:编辑服务器" # pan/prefs.c:2812 #~ msgid "Pan: Servers" #~ msgstr "Pan:服务器" # pan/dialogs/pan-about.c:93 #, fuzzy #~ msgid "to %s" #~ msgstr "关于%s" # pan/task-manager.c:794 #~ msgid "Status" #~ msgstr "状态" # pan/nntp.c:481 pan/nntp.c:785 #, fuzzy #~ msgid "Unable to set group: %s" #~ msgstr "不能设置组“%s”:%s" # pan/base/util-file.c:224 #, fuzzy #~ msgid "Couldn't load \"%s\": %s" #~ msgstr "不能创建目录“%s”:%s" # pan/base/acache.c:197 #, fuzzy #~ msgid "" #~ "Error saving \"%s\":\n" #~ "%s. %s" #~ msgstr "读文件出错“%s”: %s。" # pan/base/message-check.c:369 pan/base/message-check.c:422 #, fuzzy #~ msgid "Warning: Unknown group \"%s\"." #~ msgstr "警告:未知的组:“%s”。" # pan/gui.c:2100 #, fuzzy #~ msgid "_Posting" #~ msgstr "张贴" # pan/articlelist.c:3455 #, fuzzy #~ msgid "Post New Article" #~ msgstr "正在排序文章" # pan/gui.c:2103 #, fuzzy #~ msgid "Follow-up to Article" #~ msgstr "随贴到新闻组" # pan/filter-edit-ui.c:742 #, fuzzy #~ msgid "_Post Article" #~ msgstr "文章(_A)" # pan/message-send.c:345 #, fuzzy #~ msgid "Post this Article Now" #~ msgstr "正在张贴文章“%s”" # pan/base/message-check.c:581 #, fuzzy #~ msgid "Error: No Newsgroups specified." #~ msgstr "错误:没有制定收信人。" # pan/prefs.c:1812 #~ msgid "Message-Id" #~ msgstr "消息号" # msgstr "%3$.1f秒内在“%2$s”中保存了%1$d篇文章(%4$.0f篇/秒)" # pan/base/file-headers.c:732 #, fuzzy #~ msgid "Saved newsrc files in %.1f seconds" #~ msgstr "用时%3$.1f秒在“%2$s”中保存了%1$d篇文章(%4$.0f篇/秒)" # pan/gui.c:1611 #, fuzzy #~ msgid "%d connections totaling %.1f KiB per second" #~ msgstr "%d个连接,总共%.1f KB/s" # pan/message-window.c:1013 #, fuzzy #~ msgid "_Reply-To Header:" #~ msgstr "回复标题:" # pan/dialogs/dialog-newuser.c:314 pan/identities/identity-edit-ui.c:218 # pan/message-window.c:1032 #, fuzzy #~ msgid "Or_ganization Header:" #~ msgstr "单位标题:" # pan/gui.c:2029 #, fuzzy #~ msgid "Automatic Downloads" #~ msgstr "/文章(_A)/下载(_L)" # pan/base/decode.c:86 pan/task-save.c:294 #~ msgid "UNKNOWN" #~ msgstr "未知" # pan/base/decode.c:403 #, fuzzy #~ msgid "Decode can't access directory \"%s\"" #~ msgstr "解码时不能访问路径“%s”" # pan/base/decode.c:443 #~ msgid "Could not decode article - file may be corrupt/incomplete" #~ msgstr "不能解码文章-文件可能有冲突或不完整" # pan/base/decode.c:465 #~ msgid "Checksum for `%s' part %d failed - file is corrupt" #~ msgstr "“%s”的%d部分校验和错误-文件有冲突" # pan/base/decode.c:469 #~ msgid "Checksum for `%s' failed - file may be corrupt" #~ msgstr "“%s”的校验和错误-文件可能有冲突" # pan/prefs.c:2072 #, fuzzy #~ msgid "_Watch Subthread" #~ msgstr "/跟踪话题(_W)" # pan/prefs.c:1900 #, fuzzy #~ msgid "Header Pane background:" #~ msgstr "使用预设背景" # pan/message-window.c:898 #, fuzzy #~ msgid "Unread articles:" #~ msgstr "每篇文章的行数:" # pan/base/file-grouplist.c:272 #, fuzzy #~ msgid "" #~ "Unsupported data version (%d) for server properties. Are you running an " #~ "old version of Pan by accident?" #~ msgstr "" #~ "“%2$s”数据文件有不被支持的数据版本%1$d。\n" #~ "您意外地运行着老版本的Pan么?" # pan/base/util-file.c:224 #, fuzzy #~ msgid "Couldn't create temporary file: %s" #~ msgstr "不能创建临时文件:%s" # pan/base/util-file.c:435 #~ msgid "Error renaming \"%s\" as \"%s\": %s." #~ msgstr "重命名“%s”为“%s”时失败: %s。" # pan/base/util-file.c:435 #, fuzzy #~ msgid "Can't backup \"%s\" as \"%s\": %s" #~ msgstr "重命名“%s”为“%s”时失败: %s。" # pan/rules/rule-xml.c:265 #~ msgid "Can't write to \"%s\": %s" #~ msgstr "无法将规则写入到“%s”:%s" #~ msgid "Body" #~ msgstr "信体" # pan/base/group.c:903 #, fuzzy #~ msgid "Open a Draft Article from Disk" #~ msgstr "从“%2$s”中终止%1$u篇文章" # pan/article-toolbar.c:871 pan/articlelist.c:933 pan/filter-edit-ui.c:748 # pan/prefs.c:1817 pan/task-save.c:649 #, fuzzy #~ msgid "subject" #~ msgstr "主题" # pan/article-toolbar.c:872 pan/articlelist.c:935 pan/filter-edit-ui.c:753 # pan/prefs.c:1809 pan/task-save.c:651 #, fuzzy #~ msgid "author" #~ msgstr "作者" # pan/message-window.c:1048 #, fuzzy #~ msgid "Change" #~ msgstr "字符集" # pan/gui.c:1615 pan/task-manager.c:418 #, fuzzy #~ msgid "Connections" #~ msgstr "连接" # pan/rules/rule-edit-ui.c:814 #, fuzzy #~ msgid "Active" #~ msgstr "操作" # pan/article-actions.c:158 #~ msgid "Article %s (%s) canceled" #~ msgstr "取消了文章 %s (%s)" # pan/article-actions.c:197 #~ msgid "" #~ "Unable to cancel article: Couldn't find matching article in folder `pan." #~ "sent'!" #~ msgstr "无法取消文章:无法在文件夹“pan.sent”中找到匹配的文章!" # pan/article-actions.c:231 #~ msgid "" #~ "Unable to supersede article: Couldn't find matching article in folder " #~ "`pan.sent'!" #~ msgstr "无法暂停写作:无法在文件夹“pan.sent”中找到匹配的文章!" # pan/article-filter-ui.c:176 #~ msgid "" #~ "Addresses and Subjects can be changed before being added\n" #~ "to the Spam/Bozo filters.\n" #~ "\n" #~ "For example, a subject of `-->MAKE MONEY FAST<--' will\n" #~ "likely find more spam if shortened to just `MAKE MONEY FAST'.\n" #~ "\n" #~ "Likewise, \"Dudley Dursley\" ' could\n" #~ "be shortened to `' or even `<*@spambot.com>'.\n" #~ "\n" #~ "Wildcards are supported and comparisons are case-insensitive.\n" #~ "For more complex pattern matching, enable the regular expression\n" #~ "button. http://pan.rebelbase.com/regexp.txt for a tutorial.\n" #~ msgstr "" #~ "在把地址和主题加入到垃圾邮件过滤器之前可以修改。\n" #~ "\n" #~ "比如, 简化主题“-->MAKE MONEY FAST<--”为“MAKE MONEY FAST”可以截获更多的垃圾" #~ "邮件。\n" #~ "\n" #~ "同样,“Dudley Dursley ”可以简化为“”, 甚至更短如“<*@spambot.com>”。\n" #~ "\n" #~ "支持通配符,比对时不区分大小写。\n" #~ "需要更复杂过滤类型, 选中规则表达式按钮。教程见http://pan.rebelbase.com/" #~ "regexp.txt。\n" # ,fuzzy on Filter Out # pan/article-filter-ui.c:218 #~ msgid "Pan: Filter Out Articles" #~ msgstr "Pan:过滤文章" # pan/article-filter-ui.c:237 #~ msgid "Add Author to Bozo Filter" #~ msgstr "将作者添加到Bozo过滤器" # pan/article-filter-ui.c:253 #~ msgid "Add Author to Spam Filter" #~ msgstr "将作者添加到垃圾邮件过滤器" # pan/article-filter-ui.c:269 #~ msgid "Add Subject to Spam Filter" #~ msgstr "将主题添加到垃圾邮件过滤器" # pan/article-find.c:324 #~ msgid "Pan: Find Message" #~ msgstr "Pan:查找信息" # pan/article-find.c:396 #~ msgid "Unread Only" #~ msgstr "只包含未读的" # pan/article-find.c:410 #~ msgid "Case Sensitive" #~ msgstr "区分大小写" # pan/grouplist.c:687 #~ msgid "Find:" #~ msgstr "查找:" # pan/grouplist.c:696 #~ msgid "" #~ "Type in a search string and press ENTER.\n" #~ "Wildcards are allowed." #~ msgstr "键入字符串并按回车键开始在组中搜索。允许使用通配符。" #~ msgid "You must download the article before you can cancel it." #~ msgstr "您必须在下载文章后才能取消它。" #~ msgid "You must download the article before you can supersede it." #~ msgstr "您必须在下载文章后才能取代它。" # pan/articlelist.c:3144 pan/articlelist.c:3148 pan/articlelist.c:3154 # pan/grouplist.c:58 pan/grouplist.c:63 pan/grouplist.c:66 pan/grouplist.c:69 # pan/grouplist.c:71 #~ msgid "/---" #~ msgstr "/---" # pan/articlelist.c:3147 #~ msgid "/Save Article A_ttachments" #~ msgstr "/保存文章的附件(_T)" # pan/articlelist.c:3149 #~ msgid "/D_ownload Flagged" #~ msgstr "/下载被标记的文章(_O)" # pan/articlelist.c:3150 #~ msgid "/_Flag" #~ msgstr "/做标记(_F)" # pan/articlelist.c:3152 #~ msgid "/_Unflag" #~ msgstr "/取消标记(_U)" #~ msgid "/Add to Bo_zo or Spam Filter..." #~ msgstr "加入Bozo或者垃圾邮件过滤器(_Z)..." #~ msgid "/_Copy to Folder" #~ msgstr "/复制到文件夹(_C)" # pan/articlelist.c:3155 #~ msgid "/_Delete" #~ msgstr "/删除(_D)" # pan/articlelist.c:3492 #~ msgid "Loading group \"%s\"" #~ msgstr "正在加载组“%s”" # pan/articlelist.c:3463 #~ msgid "Filtering Articles" #~ msgstr "正在过滤文章" # pan/articlelist.c:3468 #~ msgid "Updating Header Pane..." #~ msgstr "正在更新标题窗格..." # pan/base/acache.c:361 #~ msgid "Error saving article \"%s\" (is %s full?)" #~ msgstr "保存文章出错“%s”(%s满了?)" # msgstr "文章缓存区里有%2$d个文件,占用%1$.1f MB" # pan/base/acache.c:230 #~ msgid "Directory \"%s\" contains %.1f MB in %d files" #~ msgstr "目录“%s”共占用%.1f MB,有%d个文件" #~ msgid "Don't know what to do with header \"%s\"" #~ msgstr "不能处理头“%s”" # pan/base/article.c:1301 #~ msgid "Couldn't parse a Message-ID from the raw message!" #~ msgstr "从原始信息中不能解析出信息号! " # pan/base/article.c:1305 #~ msgid "Unparseable Subject" #~ msgstr "无法解析的主题" # pan/base/util-file.c:325 #~ msgid "unknown@spammesenseless.com" #~ msgstr "unknown@spammesenseless.com" # pan/base/decode.c:431 #~ msgid "Decode unable to create file \"%s\" %s" #~ msgstr "解码时不能创建文件“%s” %s" # pan/base/acache.c:361 #~ msgid "Error saving file \"%s\" - is the disk full?" #~ msgstr "保存文章“%s”出错-磁盘满了?" # pan/base/decode.c:481 #~ msgid "Decoded \"%s\" from group \"%s\", \"%s\"" #~ msgstr "从组“%2$s”解码得到“%1$s”, “%3$s”" # pan/base/file-grouplist.c:266 #~ msgid "Loading %u of %d groups" #~ msgstr "正在加载%2$d个组的第%1$u个" #~ msgid "" #~ "Skipped %d groups due to possible corruption in \"%s\" and \"%s\". You " #~ "may want to delete these files and get a new grouplist from your news " #~ "server." #~ msgstr "" #~ "在“%2$s”和“%3$s”中跳过了%1$d个组。 您可能希望删除这些文件并从新的服务器获" #~ "取新的组列表。" #~ msgid "Loaded %d groups for server \"%s\" in %.1f seconds (%.0f groups/sec)" #~ msgstr "用时%3$.1f秒为“%2$s”服务器加载了%1$d个组(%4$.0f组/秒)" # pan/base/file-grouplist.c:450 #~ msgid "Saved %d of %u groups" #~ msgstr "保存了%2$u个组中的%1$d个" # pan/base/acache.c:361 #~ msgid "Error saving list of groups to \"%s\" - is the disk full?" #~ msgstr "保存组列表到“%s”出错-磁盘满了?" # msgstr "%3$.1f秒内从服务器“%2$s”保存了%1$d个组(%4$.0f个/秒)" # pan/base/file-grouplist.c:560 #~ msgid "Saved %d groups in \"%s\" in %.1f seconds (%.0f groups/sec)" #~ msgstr "用时%3$.1f秒在“%2$s”服务器中保存了%1$d个组(%4$.0f组/秒)" # pan/base/file-headers.c:187 #~ msgid "Loaded %d of %d articles" #~ msgstr "加载了%2$d篇文章中的%1$d篇" # pan/base/file-headers.c:201 #~ msgid "" #~ "Pan skipped %d corrupt headers from the local cache for group \"%s\"." #~ msgstr "" #~ "Pan从组%2$s的本地缓存中跳过了%1$d个标题被破坏的文章。\n" #~ "您可以清空这个组而下载新的标题。" # pan/base/file-headers.c:201 #~ msgid "You may want to empty this group and download fresh headers." #~ msgstr "" #~ "Pan从组%2$s的本地缓存中跳过了%1$d个标题被破坏的文章。\n" #~ "您可以清空这个组而下载新的标题。" # pan/base/file-headers.c:435 pan/base/file-headers.c:554 # pan/base/file-headers.c:566 #~ msgid "The group will not be saved -- can't create file \"%s\"" #~ msgstr "组将不能保存--不能创建文件“%s”" #~ msgid "Unable to save headers for group \"%s\" - is the disk full?" #~ msgstr "不能保存组“%s”的头信息--检查磁盘是否已满?" # pan/base/group.c:1013 #~ msgid "(No Group)" #~ msgstr "(没有组)" #~ msgid "" #~ "ERROR: message uses characters not specified in charset '%s' - possibly " #~ "use '%s' instead?" #~ msgstr "错误:消息中使用了字符集“%s”没有定义的字符 - 可以用“%s”代替么?" # pan/base/message-check.c:434 #~ msgid "" #~ "INFORMATION: Please be aware that posts to \"%s\" will not appear until " #~ "approved by the group's moderator." #~ msgstr "提示:请注意,在组的管理者未审定之前,张贴到“%s”的文章将不被显示。" # pan/base/message-check.c:487 #~ msgid "ERROR: invalid address \"%s\"" #~ msgstr "错误:无效的地址“%s”" # pan/base/message-check.c:570 #~ msgid "ERROR: Must have one author in From: line" #~ msgstr "错误:在“发信人”栏中必须有一位作者" # pan/base/newsrc-port.c:173 #~ msgid "Imported %d groups (%d new) from \"%s\"" #~ msgstr "从“%3$s”中导入%1$d个组(%2$d个新组)" # pan/base/newsrc-port.c:221 #~ msgid "Couldn't create file \"%s\" to export newsrc file %s" #~ msgstr "导出newsrc文件%2$s时,不能创建文件“%1$s”" # pan/base/newsrc-port.c:270 #~ msgid "Exported %d groups (%d subscribed) to \"%s\"" #~ msgstr "导出%d个组(%d个是订阅的)到“%s”" # pan/base/pan-config.c:529 #~ msgid "Imported %d lines from Gnome config file" #~ msgstr "从~/.gnome/Pan导入%d行" # pan/base/pan-config.c:567 #~ msgid "%s does not appear to be a valid datafile" #~ msgstr "%s似乎不是一个有效的数据文件" # pan/base/util-file.c:242 #~ msgid "Unable to access or create directory \"%s\"" #~ msgstr "不能创建目录“%s”" # pan/base/util-file.c:405 pan/base/util-file.c:410 #~ msgid "Can't open file \"%s\"" #~ msgstr "不能打开文件“%s”" # pan/dialogs/dialog-about.c:52 #~ msgid "A newsreader for GNOME" #~ msgstr "GNOME下的新闻阅读器" # pan/dialogs/dialog-about.c:60 #~ msgid "Programmer" #~ msgstr "程序员" # pan/dialogs/dialog-about.c:62 #~ msgid "Programmer & Documentation" #~ msgstr "编程和文档" # pan/dialogs/dialog-about.c:64 #~ msgid "Project Originator, Programmer" #~ msgstr "项目创始人,程序员" # pan/dialogs/dialog-about.c:66 #~ msgid "Programmer, 0.6 - 0.7" #~ msgstr "编程, 0.6 - 0.7" #~ msgid "" #~ "Pan %s Translations\n" #~ "%s\n" #~ "\n" #~ "Pan %s Code or Patches\n" #~ "%s\n" #~ "\n" #~ "Pan %s Suggestions and Testing\n" #~ "%s\n" #~ "\n" #~ "Contributors to previous versions are listed at\n" #~ "http://pan.rebelbase.com/CREDITS" #~ msgstr "" #~ "Pan %s 翻译\n" #~ "%s\n" #~ "\n" #~ "Pan %s 编程或改进\n" #~ "%s\n" #~ "\n" #~ "Pan %s 建议和测试\n" #~ "%s\n" #~ "\n" #~ "对先前版本做贡献者的名单列在\n" #~ "http://pan.rebelbase.com/CREDITS" #~ msgid "Default charset:" #~ msgstr "预设字符集:" # pan/dialogs/dialog-headers.c:155 #~ msgid "Pan: Download Headers for group `%s'" #~ msgstr "Pan: 从组“%s”中下载标题" # pan/dialogs/dialog-headers.c:168 #~ msgid "Pan: Download Headers" #~ msgstr "Pan:下载标题" # pan/dialogs/dialog-headers.c:168 #~ msgid "Download new headers" #~ msgstr "下载新的标题" # pan/dialogs/dialog-headers.c:173 #~ msgid "Download all Headers" #~ msgstr "下载全部标题" # pan/dialogs/dialog-headers.c:197 #~ msgid "Download Article Bodies too" #~ msgstr "同时下载文章主体" # pan/dialogs/dialog-log-viewer.c:101 #~ msgid "Save the log to a file" #~ msgstr "保存此日志到文件" # pan/dialogs/dialog-log-viewer.c:135 #~ msgid "/_File/_Save..." #~ msgstr "/文件(_F)/保存(_S)..." # pan/dialogs/dialog-log-viewer.c:136 #~ msgid "/_File/Clea_r" #~ msgstr "/文件(_F)/清除(_R)" # pan/dialogs/dialog-log-viewer.c:137 pan/gui.c:1926 pan/gui.c:1930 # pan/gui.c:1932 pan/message-window.c:297 pan/message-window.c:312 # pan/message-window.c:314 #~ msgid "/_File/---" #~ msgstr "/文件(_F)/---" # pan/dialogs/dialog-log-viewer.c:138 #~ msgid "/_File/_Close" #~ msgstr "/文件(_F)/关闭(_C)" # pan/gui.c:684 #~ msgid "Pan: Status Log" #~ msgstr "Pan:状态日志" # pan/dialogs/dialog-log-viewer.c:282 pan/dialogs/dialog-log-viewer.c:286 #~ msgid "Clear the log window" #~ msgstr "清除日志窗口。" # pan/dialogs/dialog-log-viewer.c:298 #~ msgid "Time" #~ msgstr "时间" # pan/dialogs/dialog-log-viewer.c:299 #~ msgid "Log Entry" #~ msgstr "日志入口" # pan/dialogs/dialog-newuser.c:290 #~ msgid "" #~ "When you post a message to a newsgroup, your display name will appear in " #~ "the From field. Type your name in as you would like it to appear." #~ msgstr "" #~ "当您向新闻组张贴消息时,您的名字将显示在“自”栏。如果您希望显示,请键入您的" #~ "名字。" # pan/dialogs/dialog-newuser.c:296 #~ msgid "Display Name:" #~ msgstr "显示名称:" # pan/dialogs/dialog-newuser.c:304 #~ msgid "For example: John Doe" #~ msgstr "例如:John Doe" # pan/dialogs/dialog-newuser.c:308 #~ msgid "" #~ "If you belong to an organization and would like for your organization's " #~ "name to appear with your posts, type in your organization name below. " #~ "This information is optional, you may leave it blank." #~ msgstr "" #~ "如果您属于一个组织,并且乐于在您的消息中显示组织的名称,请在下面键入组织名" #~ "称。此信息是可选的,您可以空着它。" # pan/dialogs/dialog-newuser.c:314 pan/identities/identity-edit-ui.c:218 # pan/message-window.c:1032 #~ msgid "Organization:" #~ msgstr "单位:" # pan/dialogs/dialog-newuser.c:343 #~ msgid "" #~ "People can reply to your posts by sending you an email message at the " #~ "following address." #~ msgstr "其它人回复您张贴的消息时,向如下地址发送电子邮件。" # pan/dialogs/dialog-newuser.c:358 #~ msgid "For example: user@host.com" #~ msgstr "例如: user@host.com" # pan/dialogs/dialog-newuser.c:362 #~ msgid "" #~ "Please enter the name of the mail server to use when sending email " #~ "messages." #~ msgstr "请输入发送电子邮件消息时使用的邮件服务器名称。" # pan/dialogs/dialog-newuser.c:368 #~ msgid "SMTP Server:" #~ msgstr "SMTP服务器:" # pan/dialogs/dialog-newuser.c:380 #~ msgid "SMTP Port:" #~ msgstr "SMTP端口:" # pan/dialogs/dialog-newuser.c:453 #~ msgid "default" #~ msgstr "预设" # pan/dialogs/dialog-newuser.c:474 #~ msgid "Type the name of your Internet news server." #~ msgstr "键入您使用的互联网新闻服务器的名称。" # pan/dialogs/dialog-newuser.c:480 #~ msgid "News (NNTP) server:" #~ msgstr "新闻 (NNTP)服务器:" # pan/dialogs/dialog-newuser.c:501 #~ msgid "" #~ "If you must log on to your news (NNTP) server, then select the check box " #~ "below." #~ msgstr "如果您必须登录您的新闻(NNTP)服务器,那么请选择下面的检查框。" # pan/dialogs/dialog-newuser.c:511 #~ msgid "Account name:" #~ msgstr "账户名称:" # pan/dialogs/dialog-newuser.c:547 #~ msgid "" #~ "Type in the name you would like Pan to show when referring to this " #~ "profile you have just setup. You can name the profile anything you want " #~ "to." #~ msgstr "" #~ "键入您刚建立的Pan使用此Profile时要显示的名称。您可以任意命名此Profile。" # pan/dialogs/dialog-newuser.c:553 #~ msgid "Profile name:" #~ msgstr "Profile名称:" # pan/dialogs/dialog-newuser.c:563 #~ msgid "For example: UUNET Server" #~ msgstr "例如:UUNET服务器" # pan/dialogs/dialog-newuser.c:634 #~ msgid "Pan Setup Wizard" #~ msgstr "Pan安装向导" # pan/dialogs/dialog-newuser.c:660 #~ msgid "Thank you for trying Pan!" #~ msgstr "感谢您试用Pan!" # pan/dialogs/dialog-newuser.c:667 #~ msgid "" #~ "Thank you for trying Pan!\n" #~ " \n" #~ "If you are new to Usenet,\n" #~ "http://pan.rebelbase.com/intro.php\n" #~ "is a starting point to see what Usenet is,\n" #~ "where to find a free news server,\n" #~ "and how to use Pan.\n" #~ " \n" #~ "Since this is your first time running Pan,\n" #~ " we'll need to gather some information.\n" #~ msgstr "" #~ "感谢您使用Pan!\n" #~ " \n" #~ "如果您刚接触Usenet,\n" #~ "http://pan.rebelbase.com/intro.php\n" #~ "提供了什么是Usenet,\n" #~ "到那里寻找免费的新闻服务器,\n" #~ "以及如何使用Pan等信息。\n" #~ " \n" #~ "这是您第一次运行Pan,\n" #~ "我们需要收集一些信息.\n" # pan/filter-edit-ui.c:861 pan/rules/rule-edit-ui.c:154 #~ msgid "Ready!" #~ msgstr "准备好了!" # pan/dialogs/dialog-newuser.c:700 #~ msgid "" #~ "You have successfully entered all of\n" #~ "the information required to set up Pan.\n" #~ "\n" #~ "To save these settings, click Save." #~ msgstr "" #~ "您已经成功地输入了建立Pan所需要的全部信息。\n" #~ "\n" #~ "要保存这些设定,点击'保存'。" # pan/dialogs/pan-about.c:182 #~ msgid "License" #~ msgstr "许可" # pan/dialogs/pan-about.c:270 #~ msgid "Authors" #~ msgstr "作者" # pan/dialogs/pan-about.c:290 #~ msgid "Thanks to" #~ msgstr "致谢" # pan/filter-edit-ui.c:181 pan/rules/rule-edit-ui.c:356 #~ msgid " (No conditions -- no articles will match)" #~ msgstr " (没设条件 -- 不会有匹配的文章" # pan/filter-edit-ui.c:183 pan/rules/rule-edit-ui.c:358 #~ msgid " (No conditions -- all articles will match)" #~ msgstr " (没有条件 --所有文章均将为匹配的" # pan/filter-edit-ui.c:656 #~ msgid "Pan: Edit Filter" #~ msgstr "Pan:编辑过滤器" # pan/filter-edit-ui.c:670 #~ msgid "Filter name: " #~ msgstr "过滤器名称:" # pan/filter-edit-ui.c:677 #~ msgid "Show in Filter Menu" #~ msgstr "在过滤器菜单中显示" # pan/filter-edit-ui.c:701 #~ msgid "Move the selected line up one line" #~ msgstr "选定的行向上移动一行" # pan/filter-edit-ui.c:705 #~ msgid "Move the selected line down one line" #~ msgstr "选定的行向下移动一行" # pan/filter-edit-ui.c:706 #~ msgid "Negate" #~ msgstr "放弃" # pan/filter-edit-ui.c:709 #~ msgid "Negate the selected line" #~ msgstr "放弃选定的行" # pan/filter-edit-ui.c:710 #~ msgid "AND" #~ msgstr "与" # pan/filter-edit-ui.c:713 #~ msgid "OR" #~ msgstr "或" # pan/filter-edit-ui.c:719 #~ msgid "Delete the selected line" #~ msgstr "删除选中的行" # pan/filter-edit-ui.c:727 #~ msgid "Add New Line to the Filter" #~ msgstr "给过滤器添加新的规则行" # pan/filter-edit-ui.c:731 #~ msgid "New Filter Line" #~ msgstr "新建过滤器规则行" # pan/filter-edit-ui.c:764 #~ msgid "contains the phrase" #~ msgstr "包含表达式" # pan/filter-edit-ui.c:770 #~ msgid "" #~ "See http://pan.rebelbase.com/regexp.txt for a tutorial on how to use " #~ "regular expressions. If regular expressions are turned off, a simple " #~ "case-insensitive wildcard match is used." #~ msgstr "" #~ "如何使用正则表达式的教程请参见http://pan.rebelbase.com/regexp.txt。如果关" #~ "闭了正则表达式,则使用简单的区分大小写的通配符规则。" # pan/filter-edit-ui.c:774 #~ msgid "(%s for user-specified text)" #~ msgstr "(%s为用户制定的文本)" # pan/filter-edit-ui.c:796 #~ msgid "Neither Saved nor Queued" #~ msgstr "既没有保存也没有排队的" # pan/filter-edit-ui.c:805 #~ msgid "Article _thread is" #~ msgstr "文章的话题是(_T)" # pan/filter-edit-ui.c:811 #~ msgid "Watched" #~ msgstr "跟踪的" # pan/filter-edit-ui.c:816 #~ msgid "Ignored" #~ msgstr "忽略的" # pan/filter-edit-ui.c:821 #~ msgid "Neither Watched nor Ignored" #~ msgstr "即不是跟踪的也不是忽略的" # pan/filter-edit-ui.c:830 #~ msgid "Article h_as" #~ msgstr "文章被(_A)" # pan/filter-edit-ui.c:841 #~ msgid "Incomplete Attachments" #~ msgstr "不完整的附件" # pan/filter-edit-ui.c:846 #~ msgid "No Attachments" #~ msgstr "没有附件" # pan/filter-edit-ui.c:855 #~ msgid "Article _is" #~ msgstr "文章是(_I)" # pan/filter-edit-ui.c:866 #~ msgid "New" #~ msgstr "新建" # pan/grouplist.c:644 pan/rules/rule-edit-ui.c:156 #~ msgid "Unread" #~ msgstr "未读" # pan/prefs.c:3055 #~ msgid "Cached" #~ msgstr "被缓存" # pan/filter-edit-ui.c:876 #~ msgid "Posted by Me" #~ msgstr "自己张贴的" # pan/filter-edit-ui.c:885 #~ msgid "Article has at _least N lines:" #~ msgstr "文章至少于有N行:(_L)" # pan/filter-edit-ui.c:915 #~ msgid "Article _score is at least" #~ msgstr "文章的分值至少是(_S)" # pan/filter-ui.c:199 #~ msgid "" #~ "This filter is still used by the following rules:\n" #~ "%s\n" #~ "Please remove this dependency first." #~ msgstr "" #~ "该过滤器仍被如下的规则使用:\n" #~ "%s\n" #~ "请先移除该依赖关系。" # pan/filter-ui.c:360 #~ msgid "Pan: Filters" #~ msgstr "Pan:过滤器" # pan/filter-ui.c:373 pan/rules/rule-edit-ui.c:811 #~ msgid "Filters" #~ msgstr "过滤器" # pan/filter-ui.c:401 #~ msgid "Edit the selected filter" #~ msgstr "编辑选中的过滤器" # pan/filter-ui.c:408 #~ msgid "Remove the selected filter" #~ msgstr "移除选定的过滤器" # pan/filters/filter-aggregate.c:62 #~ msgid "NONE OF:" #~ msgstr "没有一个:" # pan/filters/filter-aggregate.c:64 #~ msgid "ALL OF:" #~ msgstr "所有:" # pan/filters/filter-aggregate.c:68 #~ msgid "NOT ANY OF:" #~ msgstr "不是任何一个:" # pan/filters/filter-aggregate.c:70 #~ msgid "ANY OF:" #~ msgstr "任何一个:" # pan/filters/filter-binary.c:65 #~ msgid "Article has complete attachments" #~ msgstr "文章包括完整的附件" # pan/filters/filter-binary.c:69 #~ msgid "Article does not have incomplete attachments" #~ msgstr "文章不包括不完整的附件" # pan/filters/filter-binary.c:71 #~ msgid "Article has incomplete attachments" #~ msgstr "文章包括不完整的附件" # pan/filters/filter-binary.c:75 #~ msgid "Article has complete or incomplete attachments" #~ msgstr "文章包括完整的及不完整的附件" # pan/filters/filter-crosspost.c:56 #~ msgid "Article is crossposted to at least %d groups" #~ msgstr "文章至少已在%d个组中张贴" # pan/filters/filter-date.c:56 #~ msgid "Article was posted in the last %d days" #~ msgstr "文章在前%d天已被张贴" # pan/filters/filter-linecount.c:56 #~ msgid "Article is %d or more lines long" #~ msgstr "文章长度为%d行或者更长" # pan/filters/filter-manager.c:106 #~ msgid "Spam" #~ msgstr "垃圾邮件" # pan/filters/filter-read.c:50 #~ msgid "Article is unread or old" #~ msgstr "未读或过时文章" # pan/filters/filter-new.c:56 #~ msgid "Article is new" #~ msgstr "新文章" # pan/filters/filter-read.c:50 #~ msgid "Article is new or read" #~ msgstr "新文章或读过的" # pan/filters/filter-read.c:50 #~ msgid "Article is new or unread" #~ msgstr "新的或未读文章" # pan/filters/filter-phrase.c:79 #~ msgid "Subject doesn't match the regular expression \"%s\"" #~ msgstr "主题与正则表达式“%s”不符" # pan/filters/filter-phrase.c:81 #~ msgid "Subject matches the regular expression \"%s\"" #~ msgstr "主题与正则表达式“%s”相符" # pan/filters/filter-phrase.c:79 #~ msgid "Author doesn't match regular expression \"%s\"" #~ msgstr "作者与正则表达式“%s”不符" # pan/filters/filter-phrase.c:85 #~ msgid "Author doesn't match phrase \"%s\"" #~ msgstr "作者与字串“%s”不符" # pan/filters/filter-phrase.c:87 #~ msgid "Author matches phrase \"%s\"" #~ msgstr "作者与字串“%s”相符" # pan/filters/filter-phrase.c:93 #~ msgid "Message-ID doesn't match regular expression \"%s\"" #~ msgstr "消息号与正则表达式“%s”不符" # pan/filters/filter-phrase.c:95 #~ msgid "Message-ID matches regular expression \"%s\"" #~ msgstr "消息号与正则表达式“%s”相符" # pan/filters/filter-phrase.c:99 #~ msgid "Message-ID doesn't match phrase \"%s\"" #~ msgstr "消息号与字串“%s”不符" # pan/filters/filter-phrase.c:101 #~ msgid "Message-ID matches phrase \"%s\"" #~ msgstr "消息号与字串“%s”相符" # pan/filters/filter-saved.c:63 #~ msgid "Article has not been saved or decoded" #~ msgstr "文章未被保存或解码" # pan/filters/filter-saved.c:65 #~ msgid "Article has been saved or decoded" #~ msgstr "文章已被保存或解码" # pan/filters/filter-saved.c:69 #~ msgid "Article is not queued for saving or decoding" #~ msgstr "文章未排入保存或解码的队列" # pan/filters/filter-saved.c:71 #~ msgid "Article is queued for saving or decoding" #~ msgstr "文章已排入保存或解码的队列" # pan/filters/filter-saved.c:75 #~ msgid "Article is either saved or queued for saving" #~ msgstr "文章未被保存也没有排入保存队列" # pan/filters/filter-saved.c:77 #~ msgid "Article is neither saved nor queued for saving" #~ msgstr "文章未被保存也没有排入保存队列" # pan/filters/filter-thread.c:59 #~ msgid "Thread isn't watched" #~ msgstr "话题未被跟踪" # pan/filters/filter-thread.c:61 #~ msgid "Thread is watched" #~ msgstr "话题已被跟踪" # pan/filters/filter-thread.c:65 #~ msgid "Thread isn't ignored" #~ msgstr "话题未被忽略" # pan/filters/filter-thread.c:67 #~ msgid "Thread is ignored" #~ msgstr "话题已被忽略" # pan/filters/filter-thread.c:73 #~ msgid "Thread is neither watched nor ignored" #~ msgstr "话题即未被跟踪也未被忽略" # pan/filters/filter-xml.c:532 #~ msgid "Wrote filters to \"%s\"" #~ msgstr "写过滤器到“%s”" # pan/group-ui.c:145 #~ msgid "Invalid folder name: \"%s\"" #~ msgstr "不合法的文件夹名称:“%s”" # pan/group-ui.c:161 #~ msgid "Please don't begin folders with \"pan.\"; it confuses me." #~ msgstr "请不要以“pan.”作为文件夹的开始位置;否则会搞乱程序本身。" # pan/group-ui.c:186 #~ msgid "Create New Folder" #~ msgstr "创建一个新的文件夹" # pan/group-ui.c:193 #~ msgid "New Folder Name:" #~ msgstr "新文件夹名称:" #~ msgid "/Get New Headers and _Bodies" #~ msgstr "/获取新的标题和信体(_B)" # pan/grouplist.c:64 #~ msgid "/More Download _Options..." #~ msgstr "/更多的下载选项(_O)..." # pan/grouplist.c:65 #~ msgid "/Refresh Article _Counts" #~ msgstr "/刷新文章计数器(_C)" # pan/gui.c:2011 #~ msgid "/Group _Properties..." #~ msgstr "/组参数(_P)..." # pan/grouplist.c:135 #~ msgid " (Moderated)" #~ msgstr " (监管的)" # pan/grouplist.c:141 #~ msgid " (Read-Only)" #~ msgstr " (只读)" # pan/grouplist.c:530 pan/grouplist.c:936 #~ msgid "All Groups" #~ msgstr "全部组" # pan/grouplist.c:531 #~ msgid "Subscribed" #~ msgstr "已订阅的" # pan/grouplist.c:645 #~ msgid "Total" #~ msgstr "全部" # pan/grouplist.c:646 pan/task-manager.c:798 #~ msgid "Description" #~ msgstr "描述" # pan/grouplist.c:696 #~ msgid "" #~ "Type in a group search string and press ENTER. Wildcards are allowed." #~ msgstr "键入字符串并按回车键开始在组中搜索。允许使用通配符。" # pan/grouplist.c:1028 #~ msgid "" #~ "We don't have a list of groups for \"%s\".\n" #~ "Shall we get download it?" #~ msgstr "" #~ "我们没有服务器“%s”的讨论组列表。\n" #~ "需要下载么?" # pan/gui-headers.c:134 #~ msgid "" #~ msgstr "<更多>" # pan/prefs.c:1816 #~ msgid "X-Newsreader" #~ msgstr "X-新闻阅读器" # pan/dialogs/dialog-newuser.c:679 #~ msgid "X-Mailer" #~ msgstr "X-电子邮件地址" # pan/smtp.c:445 #~ msgid "Connecting to news server" #~ msgstr "正在连接新闻服务器" # pan/gui.c:1652 #~ msgid "News server connection count: %d" #~ msgstr "新闻服务器连接数:%d" # pan/gui.c:1720 #~ msgid "The Task Manager is Empty" #~ msgstr "任务管理器没有任务" # pan/gui.c:2100 #~ msgid "Post" #~ msgstr "张贴" #~ msgid "Get" #~ msgstr "获取" #~ msgid "Mine" #~ msgstr "我的" # pan/filter-edit-ui.c:866 #~ msgid "Net" #~ msgstr "网络" # pan/gui.c:1928 #~ msgid "/_File/_Save Article As..." #~ msgstr "/文件(_F)/另存文章为(_S)..." # pan/gui.c:1929 #~ msgid "/_File/Save Article A_ttachments" #~ msgstr "/文件(_F)/保存文章附件(_T)" # pan/gui.c:2045 #~ msgid "/_File/_Delete Last Task" #~ msgstr "/文件(_F)/删除上一个任务(_D)" # pan/gui.c:1931 #~ msgid "/_File/_Print Article..." #~ msgstr "/文件(_F)/打印文章(_P)..." # pan/gui.c:1933 #~ msgid "/_File/_New Folder..." #~ msgstr "/文件(_F)/新建文件夹(_N)..." # pan/gui.c:1934 #~ msgid "/_File/Delete _Folder..." #~ msgstr "/文件(_F)/删除文件夹(_F)..." # pan/gui.c:1935 #~ msgid "/_File/_Edit Article in Folder" #~ msgstr "/文件(_F)/编辑文件夹中的文章(_E)" # pan/gui.c:1936 #~ msgid "/_File/E_xit" #~ msgstr "/文件(_F)/退出(_X)" # pan/gui.c:1938 pan/message-window.c:299 pan/message-window.c:316 #~ msgid "/_Edit" #~ msgstr "/编辑(_E)" # pan/gui.c:1940 #~ msgid "/_Edit/Select all" #~ msgstr "/编辑(_E)/选择全部" # pan/gui.c:1941 #~ msgid "/_Edit/Deselect all" #~ msgstr "/编辑(_E)/取消对全部的选择" # pan/gui.c:1939 pan/gui.c:1942 pan/gui.c:1947 pan/gui.c:1949 pan/gui.c:1952 # pan/message-window.c:303 pan/message-window.c:320 pan/message-window.c:323 #~ msgid "/_Edit/---" #~ msgstr "/编辑(_E)/---" # pan/gui.c:1940 #~ msgid "/_Edit/Select all _Groups" #~ msgstr "/编辑(_E)/选择全部组(_G)" # pan/gui.c:1945 #~ msgid "/_Edit/Add S_ubscribed to Selection" #~ msgstr "/编辑(_E)/添加订阅到选中内容(_U)" # pan/gui.c:1941 #~ msgid "/_Edit/Deselect all G_roups" #~ msgstr "/编辑(_E)/取消对全部组的选择(_R)" # pan/gui.c:1950 #~ msgid "/_Edit/_Find..." #~ msgstr "/编辑(_E)/查找(_F)..." # pan/gui.c:1950 #~ msgid "/_Edit/Find _Next" #~ msgstr "/编辑(_E)/查找下一个(_N)" # pan/gui.c:1960 pan/gui.c:1963 pan/gui.c:1968 pan/gui.c:1972 pan/gui.c:1980 #~ msgid "/_View/---" #~ msgstr "/查看(_V)/---" # pan/gui.c:1974 #~ msgid "/_View/Thr_ead Header Pane" #~ msgstr "/查看(_V)/索引标题窗格(_E)" # pan/message-window.c:304 pan/message-window.c:321 #~ msgid "/_View/_Rot13 Selected Text" #~ msgstr "/查看(_V)/Rot13选中文本(_R)" # pan/gui.c:1981 #~ msgid "/_View/E_xpand Selected Threads" #~ msgstr "/查看(_V)/扩展选中的话题(_X)" # pan/gui.c:1983 #~ msgid "/_View/C_ollapse Selected Threads" #~ msgstr "/查看(_V)/放弃选中的话题" # pan/gui.c:2066 pan/gui.c:2077 pan/gui.c:2081 pan/gui.c:2085 pan/gui.c:2089 # pan/gui.c:2092 pan/gui.c:2095 #~ msgid "/Filte_r/---" #~ msgstr "/过滤器(_R)/---" # pan/article-toolbar.c:683 #~ msgid "/Filte_r/Show Matching Articles and References" #~ msgstr "/过滤器(_R)/显示匹配的文章及其参考" # pan/article-toolbar.c:692 #~ msgid "/Filte_r/Show Threads with Matching Articles" #~ msgstr "/过滤器(_R)/显示匹配文章的话题" # pan/gui.c:2078 #~ msgid "/Filte_r/Match _New Articles" #~ msgstr "/过滤器(_R)/匹配新的文章(_N)" # pan/gui.c:2090 #~ msgid "/Filte_r/Match Articles which are _Cached" #~ msgstr "/过滤器(_R)/匹配在本地缓存过的文章(_C)" # pan/gui.c:2091 #~ msgid "/Filte_r/Match Articles which are not Cache_d" #~ msgstr "/过滤器(_R)/匹配没在本地缓存过的文章(_D)" # pan/gui.c:2082 #~ msgid "/Filte_r/Match Articles with Complete _Attachments" #~ msgstr "/过滤器(_R)/匹配包括完整附件的文章(_A)" # pan/gui.c:2083 #~ msgid "/Filte_r/Match Articles with I_ncomplete Attachments" #~ msgstr "/过滤器(_R)/匹配包括不完整附件的文章(_N)" # pan/gui.c:2084 #~ msgid "/Filte_r/Match Articles with No A_ttachments" #~ msgstr "/过滤器(_R)/匹配不包含附件文章(_T)" # pan/gui.c:2093 #~ msgid "/Filte_r/Match Articles Written by _Me" #~ msgstr "/过滤器(_R)/匹配自己张贴的文章(_M)" # pan/gui.c:2094 #~ msgid "/Filte_r/Match Articles Written by _Other People" #~ msgstr "/过滤器(_R)/匹配其他人张贴的文章(_O)" # pan/gui.c:2096 #~ msgid "/Filte_r/Match _Watched Threads" #~ msgstr "/过滤器(_R)/匹配被跟踪的话题(_W)" # pan/gui.c:2097 #~ msgid "/Filte_r/Match _Ignored Threads" #~ msgstr "/过滤器(_R)/匹配被忽略的话题(_I)" # pan/gui.c:2098 #~ msgid "/Filte_r/Match Threads N_either Watched nor Ignored" #~ msgstr "/过滤器(_R)/匹配既未被跟踪也未被忽略的话题(_E)" # pan/articlelist.c:3143 #~ msgid "/_Go/Read More" #~ msgstr "/转到(_G)/阅读更多" # pan/gui.c:1997 pan/gui.c:1999 pan/gui.c:2004 pan/gui.c:2007 pan/gui.c:2010 # pan/gui.c:2012 #~ msgid "/_Go/---" #~ msgstr "/转到(_G)/---" #~ msgid "/_Go/_Next Unread Article" #~ msgstr "/转到(_G)/下一篇未读的文章(_N)" # pan/gui.c:2056 #~ msgid "/_Go/Previous Article _Read" #~ msgstr "/转到(_G)/读过的前一篇文章(_R)" #~ msgid "/_Go/T_op of Thread" #~ msgstr "/转到(_G)/初始话题(_O)" # pan/gui.c:1986 #~ msgid "/_Servers" #~ msgstr "/服务器(_S)" # pan/gui.c:1988 #~ msgid "/_Servers/Select _Server" #~ msgstr "/服务器(_S)/选择服务器(_S)" # pan/gui.c:1987 pan/gui.c:1989 pan/gui.c:1992 #~ msgid "/_Servers/---" #~ msgstr "/服务器(_S)/---" # pan/gui.c:1990 #~ msgid "/_Servers/Get List of _All Groups..." #~ msgstr "/服务器(_S)/获取全部组的列表(_A)..." # pan/gui.c:1991 #~ msgid "/_Servers/Get List of _New Groups..." #~ msgstr "/服务器(_S)/获取新组的列表(_N)..." # pan/gui.c:1998 #~ msgid "/_Newsgroups/Mark Group _Read" #~ msgstr "/新闻组(_N)/标记组为已读(_R)" # pan/gui.c:2002 #~ msgid "/_Newsgroups/_Delete Group's Articles" #~ msgstr "/新闻组(_N)/删除组内文章(_D)" # pan/gui.c:1997 pan/gui.c:1999 pan/gui.c:2004 pan/gui.c:2007 pan/gui.c:2010 # pan/gui.c:2012 #~ msgid "/_Newsgroups/---" #~ msgstr "/新闻组(_N)/---" # pan/gui.c:2001 #~ msgid "/_Newsgroups/Get New _Headers" #~ msgstr "/新闻组(_N)/获得新文章标题(_H)" # pan/gui.c:2001 #~ msgid "/_Newsgroups/Get New Headers and _Bodies" #~ msgstr "/新闻组(_N)/获得新文章标题及内容(_B)" # pan/gui.c:2005 #~ msgid "/_Newsgroups/More Download _Options..." #~ msgstr "/新闻组(_N)/更多的下载选项(_O)..." # pan/gui.c:2006 #~ msgid "/_Newsgroups/Refresh Article _Counts" #~ msgstr "/新闻组(_N)/刷新文章计数器(_C)" # pan/gui.c:2008 #~ msgid "/_Newsgroups/_Subscribe" #~ msgstr "/新闻组(_N)/订阅(_S)" # pan/gui.c:2009 #~ msgid "/_Newsgroups/_Unsubscribe" #~ msgstr "/新闻组(_N)/退订(_U)" # pan/gui.c:2011 #~ msgid "/_Newsgroups/Group _Properties..." #~ msgstr "/新闻组(_N)/组参数(_P)..." # pan/gui.c:2014 #~ msgid "/_Newsgroups/Dele_te Group" #~ msgstr "/新闻组(_N)/删除组(_T)" # pan/gui.c:2018 #~ msgid "/_Articles/Mark _Read" #~ msgstr "/文章(_A)/标记为已读(_R)" # pan/gui.c:2020 #~ msgid "/_Articles/Mark _Unread" #~ msgstr "/文章(_A)/标记为未读(_U)" # pan/gui.c:2017 pan/gui.c:2022 pan/gui.c:2028 pan/gui.c:2031 pan/gui.c:2035 # pan/gui.c:2040 pan/gui.c:2043 #~ msgid "/_Articles/---" #~ msgstr "/文章(_A)/---" # pan/gui.c:2023 #~ msgid "/_Articles/D_ownload Flagged" #~ msgstr "/文章(_A)/下载标记的(_O)" # pan/gui.c:2024 #~ msgid "/_Articles/_Flag" #~ msgstr "/文章(_A)/标记(_F)" # pan/gui.c:2026 #~ msgid "/_Articles/U_nflag" #~ msgstr "/文章(_A)/取消标记(N)" # pan/gui.c:2032 #~ msgid "/_Articles/_Watch Thread" #~ msgstr "/文章(_A)/跟踪话题(_W)" # pan/gui.c:2033 #~ msgid "/_Articles/_Ignore Thread" #~ msgstr "/文章(_A)/忽略话题(_I)" # pan/gui.c:2034 #~ msgid "/_Articles/Add to Bo_zo or Spam Filter..." #~ msgstr "/文章(_A)/加入Bo_zo或者垃圾邮件过滤器..." # pan/gui.c:2041 #~ msgid "/_Articles/_Cancel..." #~ msgstr "/文章(_A)/取消(_C)..." # pan/gui.c:2042 #~ msgid "/_Articles/_Supersede..." #~ msgstr "/文章(_A)/延期(_S)..." # pan/gui.c:2044 #~ msgid "/_Articles/_Delete" #~ msgstr "/文章(_A)/删除(_D)" # pan/gui.c:2102 #~ msgid "/_Post/_Post to Newsgroup" #~ msgstr "/张贴(_P)/张贴到新闻组(_P)" # pan/gui.c:2104 #~ msgid "/_Post/_Reply by Email" #~ msgstr "/张贴(_P)/用电子邮件回复(_R)" # pan/gui.c:2105 #~ msgid "/_Post/Followup _and Reply" #~ msgstr "/张贴(_P)/跟贴回复(_A)" # pan/gui.c:2106 #~ msgid "/_Post/For_ward Article by Email" #~ msgstr "/张贴(_P)/用电子邮件转发文章(_W)" # pan/gui.c:2101 #~ msgid "/_Post/---" #~ msgstr "/张贴(_P)/---" # pan/gui.c:2107 #~ msgid "/_Post/Send Pending _Messages" #~ msgstr "/张贴(_P)/发送未决的消息(_M)" # pan/gui.c:2100 #~ msgid "/_Tools" #~ msgstr "/工具(_T)" # pan/gui.c:2101 #~ msgid "/_Tools/---" #~ msgstr "/工具(_T)/---" # pan/gui.c:2072 #~ msgid "/_Tools/Custom _Filters..." #~ msgstr "/工具(_T)/自定义过滤器(_F).../" # pan/gui.c:1954 #~ msgid "/_Tools/_Rules..." #~ msgstr "/工具(_T)/规则(_R)..." # pan/gui.c:1954 #~ msgid "/_Tools/_Servers..." #~ msgstr "/工具(_T)/服务器(_S)..." # pan/gui.c:1962 #~ msgid "/_Tools/_Log Viewer..." #~ msgstr "/工具(_T)/日志阅览器(_L)..." # pan/gui.c:2109 #~ msgid "/_Help" #~ msgstr "/帮助(_H)" # pan/gui.c:2112 #~ msgid "/_Help/Online Users` _Manual..." #~ msgstr "/帮助(_H)/在线用户手册(_M)..." # pan/gui.c:2110 pan/gui.c:2113 pan/gui.c:2116 #~ msgid "/_Help/---" #~ msgstr "/帮助(_H)/---" # pan/gui.c:2114 #~ msgid "/_Help/_Feedback..." #~ msgstr "/帮助(_H)/反馈(_F)..." # pan/identities/identity-edit-ui.c:144 #~ msgid "Make this the default profile for news" #~ msgstr "将它作为新闻服务的缺省 profile" # pan/identities/identity-edit-ui.c:150 #~ msgid "Make this the default profile for mail" #~ msgstr "将它作为邮件服务的缺省 profile" # pan/identities/identity-edit-ui.c:165 #~ msgid "Full user name:" #~ msgstr "用户全名:" # pan/identities/identity-edit-ui.c:530 #~ msgid "Pan: Edit Profile" #~ msgstr "Pan:编辑Profile" # pan/identities/identity-edit-ui.c:544 #~ msgid "User Profile" #~ msgstr "用户Profile" # pan/identities/identity-edit-ui.c:584 #~ msgid "" #~ "Your real name contained double quotes.\n" #~ "Converting into single quotes." #~ msgstr "" #~ "您的真实名字里包含双引号。\n" #~ "转换为单引号。" # pan/identities/identity-ui.c:208 #~ msgid "You need at least one profile" #~ msgstr "您需要至少一个Profile" # pan/identities/identity-ui.c:249 pan/identities/identity-ui.c:346 #~ msgid "Incomplete Profile." #~ msgstr "不完整的Profile。" # pan/identities/identity-ui.c:477 #~ msgid "Use the selected profile to create a new profile" #~ msgstr "用选中的 profile 创建新的 profile" # pan/identities/identity-xml.c:286 #~ msgid "Wrote profiles to \"%s\"" #~ msgstr "把Profile写入到“%s”" # pan/message-check-ui.c:92 #~ msgid "Post anyway, despite these problems?" #~ msgstr "尽管存在这些问题, 仍然张贴?" # pan/message-check-ui.c:93 #~ msgid "Post anyway, despite this problem?" #~ msgstr "尽管存在这个问题, 仍然张贴?" # pan/message-window.c:295 #~ msgid "/_File/_Save Changes" #~ msgstr "/文件(_F)/保存变动(_S)" # pan/message-window.c:296 pan/message-window.c:313 #~ msgid "/_File/Save _As..." #~ msgstr "/文件(_F)/另存为(_A)..." # pan/message-window.c:300 pan/message-window.c:317 #~ msgid "/_Edit/Cu_t" #~ msgstr "/编辑(_E)/剪切(_T)" # pan/message-window.c:301 pan/message-window.c:318 #~ msgid "/_Edit/_Copy" #~ msgstr "/编辑(_E)/拷贝(_C)" # pan/message-window.c:302 pan/message-window.c:319 #~ msgid "/_Edit/_Paste" #~ msgstr "/编辑(_E)/粘贴(_P)" # pan/message-window.c:304 pan/message-window.c:321 #~ msgid "/_Edit/_Rot13 Selected Text" #~ msgstr "/编辑(_E)/Rot13选中文本(_R)" # pan/message-window.c:305 pan/message-window.c:322 #~ msgid "/_Edit/Edit with E_xternal Editor" #~ msgstr "/编辑(_E)/使用外部编辑器编辑(_X)" # pan/message-window.c:310 #~ msgid "/_File/Send Now" #~ msgstr "/文件(_F)/现在发送" # pan/message-window.c:311 #~ msgid "/_File/Send Later" #~ msgstr "/文件(_F)/迟后发送" # pan/message-window.c:296 pan/message-window.c:313 #~ msgid "/_File/Save As..." #~ msgstr "/文件(_F)/另存为..." # pan/message-window.c:406 #~ msgid "Send Later" #~ msgstr "迟后发送" # pan/message-window.c:415 #~ msgid "Rewrap" #~ msgstr "重新换行" # pan/message-window.c:424 #~ msgid "Turn line wrap on/off" #~ msgstr "打开/关闭消息主体文字换行的开关" # pan/message-window.c:440 #~ msgid "Edit with an External Editor" #~ msgstr "使用外部编辑器编辑" # pan/message-window.c:926 #~ msgid "Mime (single-part posts only)" #~ msgstr "Mime (仅对包含一个部分的张贴有效)" # pan/message-window.c:707 pan/message-window.c:725 pan/message-window.c:740 #~ msgid " (%lu lines in 1 article)" #~ msgstr " (一篇文章中包含%lu行)" # pan/message-window.c:920 #~ msgid "UUEncoded (universally accepted)" #~ msgstr "UU编码的(最好的通用性)" # pan/message-window.c:923 #~ msgid "yEnc (30 percent smaller than UUEnc but less universal)" #~ msgstr "yEnc (比UU编码体积减小30%,但通用性略低)" # pan/message-window.c:782 #~ msgid "Select the file to attach." #~ msgstr "选择要作为附件的文件。" # pan/message-window.c:839 #~ msgid "Files to Attach" #~ msgstr "作为附件的文件" # pan/message-window.c:849 #~ msgid "Kilobytes" #~ msgstr "千比特" # pan/message-window.c:874 #~ msgid "Add a File to the Attachment List" #~ msgstr "在附件列表中添加文件" # pan/message-window.c:883 #~ msgid "Remove a File from the Attachment List" #~ msgstr "从附件列表中移除文件" # pan/message-window.c:912 #~ msgid "Estimated Article Size" #~ msgstr "估计的文章大小" # pan/dialogs/dialog-newuser.c:314 pan/identities/identity-edit-ui.c:218 # pan/message-window.c:1032 #~ msgid "Organization" #~ msgstr "单位" # pan/message-window.c:1037 #~ msgid "The organization you're associated with." #~ msgstr "您所属的单位。" # pan/message-window.c:1919 #~ msgid "\"Followup-To: poster\": sending email to author." #~ msgstr "“Followup-To: 张贴人”: 正在给作者发送电子邮件。" # pan/message-window.c:1942 #~ msgid "\"Followup-To:\" contains an email address: sending email to author." #~ msgstr "“Followup-To: ”包含一个电子邮件地址:正在给作者发送电子邮件。" # pan/message-window.c:2075 #~ msgid "New Message" #~ msgstr "新信息" # pan/message-window.c:2766 #~ msgid "Save message to file" #~ msgstr "保存消息到文件" #~ msgid "The command line was: %s" #~ msgstr "命令行内容为:“%s”" # pan/nntp.c:193 #~ msgid "QUIT failed: %s" #~ msgstr "退出失败:%s" # pan/nntp.c:224 #~ msgid "Handshake: %s" #~ msgstr "握手:%s" # pan/nntp.c:226 #~ msgid "NNTP handshake failed: %s" #~ msgstr "NNTP握手失败:%s" # pan/nntp.c:227 #~ msgid "Handshake failed: %s" #~ msgstr "握手失败:%s" # pan/nntp.c:272 #~ msgid "Authentication failed: bad handshake for SPA password" #~ msgstr "授权失败:SPA密码不对" # pan/nntp.c:284 #~ msgid "Bad SPA handshake: %s" #~ msgstr "失败的SPA握手:%s" # pan/nntp.c:292 pan/nntp.c:395 #~ msgid "Authentication failed: need a password" #~ msgstr "授权失败:需要密码" # pan/nntp.c:313 pan/nntp.c:387 pan/nntp.c:404 #~ msgid "Authentication failed: %s" #~ msgstr "授权失败:%s" # pan/nntp.c:353 #~ msgid "Unsupported authentication mechanism: %s" #~ msgstr "不支持的授权方式:%s" # pan/nntp.c:367 #~ msgid "No supported authentication mechanism" #~ msgstr "没有可支持的授权方式" # pan/nntp.c:447 #~ msgid "MODE READER check failed: %s" #~ msgstr "阅读模式检查失败:%s" # pan/nntp.c:520 #~ msgid "Posting failed. Server said: %s" #~ msgstr "张贴失败。服务器提示:%s" # pan/nntp.c:527 #~ msgid "Posting complete. Server said: %s" #~ msgstr "张贴完成。服务器提示:%s" # pan/nntp.c:553 #~ msgid "\"stay connected\" sent to %s" #~ msgstr "“保持连接”发送到%s" # pan/nntp.c:850 #~ msgid "No articles found for group \"%s\"" #~ msgstr "没有发现组“%s”的文章" # pan/nntp.c:860 #~ msgid "Getting header list failed: %s" #~ msgstr "获取标题列表失败:%s" # pan/nntp.c:967 #~ msgid "Corrupt header skipped: %s" #~ msgstr "被破坏的标题跳过:%s" # pan/nntp.c:1134 #~ msgid "Getting %d of %d" #~ msgstr "正在获取%2$d的%1$d" # pan/pan-font-picker.c:71 #~ msgid "Font Family" #~ msgstr "字体集" #~ msgid "" #~ "\n" #~ "\n" #~ " --version Prints Pan's version number\n" #~ " --help Prints this message and exits\n" #~ " --debug Turns on the most commonly-useful options for a bug " #~ "report\n" #~ "\n" #~ " --mute Debugging tool to send new posts to console, not the " #~ "server\n" #~ " --debug-cache Print debugging messages for the article cache\n" #~ " --debug-sockets Print debugging messages when talking to the news " #~ "server\n" #~ " --debug-queue Print debugging messages related to managing tasks\n" #~ " --debug-decode Print debugging messages related to decoding " #~ "attachments\n" #~ " --debug-newsrc Print debugging messages related to .newsrc files\n" #~ " --debug-gnksa Print debugging messages related to gnksa correctness\n" #~ " --debug-trace Print debugging messages when entering/leaving " #~ "functions\n" #~ " --debug-lock Print debugging messages related to threaded gui " #~ "locks\n" #~ " --debug-object Print debugging messages related to refcounted " #~ "objects\n" #~ "\n" #~ msgstr "" #~ "\n" #~ "\n" #~ " --version 显示Pan的版本号\n" #~ " --help 显示本帮助并退出\n" #~ " --debug 打开最常用选项以方便找错report\n" #~ "\n" #~ " --mute 发送新文章到控制台而非到服务器的调试工具\n" #~ " --debug-cache 显示有关文章缓存的调试信息\n" #~ " --debug-sockets 显示有关与新闻服务器对话的调试信息\n" #~ " --debug-queue 显示有关任务管理的调试信息\n" #~ " --debug-decode 显示有关解码附件的调试信息\n" #~ " --debug-newsrc 显示有关 .newsrc 文件的调试信息\n" #~ " --debug-gnksa 显示有关 gnksa 修正的调试信息\n" #~ " --debug-trace 显示有关进入/离开功能的调试信息\n" #~ " --debug-lock 显示有关 gui 线程锁定的调试信息\n" #~ " --debug-object 显示有关 refcounted objects 的调试信息\n" #~ "\n" # pan/pan.c:122 #~ msgid "Error writing to socket." #~ msgstr "写套接字错。" # pan/pan.c:123 #~ msgid "pan.sent" #~ msgstr "pan.发送" # pan/pan.c:124 #~ msgid "pan.sendlater" #~ msgstr "pan.迟后发送" #~ msgid "Spellchecking disabled: gtkspell_init() failed with status %d" #~ msgstr "拼写检查是被禁止的:gtkspell_init()失败,其状态为 %d" #~ msgid "" #~ "Pan appears to have crashed or been killed the last time it was run. Do " #~ "you want to revert to the last session's task list?" #~ msgstr "Pan在上次运行时崩溃或者是被终止。您希望回复到上次时的任务列表么?" # pan/group-ui.c:104 #~ msgid "Restored %d tasks from \"%s\"" #~ msgstr "从“%2$s”中恢复个 %1$d 任务" # pan/prefs.c:296 #~ msgid "" #~ "%a - abbreviated weekday name\n" #~ "%A - full weekday name\n" #~ "%b - abbreviated month name\n" #~ "%B - full month name\n" #~ "%c - local date & time\n" #~ "%d - day of the month\n" #~ "%H - hour (24-hour clock)\n" #~ "%I - hour (12-hour clock)\n" #~ "%j - day of the year (001-366)\n" #~ "%m - month (01-12)\n" #~ "%M - minute (00-59)\n" #~ "%p - local equivalent of AM/PM\n" #~ "%S - second (00-61)\n" #~ "%x - local date\n" #~ "%X - local time\n" #~ "%y - two-digit year\n" #~ "%Y - four-digit year\n" #~ "%% - %" #~ msgstr "" #~ "%a - 日简称\n" #~ "%A - 日简称\n" #~ "%b - 月简称\n" #~ "%B - 月简称\n" #~ "%c - 当地日期 & 时间\n" #~ "%d - 月中的日\n" #~ "%H - 小时 (24-小时)\n" #~ "%I - 小时 (12-小时)\n" #~ "%j - 年中的日(001-366)\n" #~ "%m - 月 (01-12)\n" #~ "%M - 分钟 (00-59)\n" #~ "%p - 当地AM/PM的对等叫法\n" #~ "%S - 秒 (00-61)\n" #~ "%x - 当地日期\n" #~ "%X - 当地时间\n" #~ "%y - 两位数年\n" #~ "%Y - 四位数年\n" #~ "%% - %" # pan/prefs.c:1647 #~ msgid "Editor (%t will be replaced with filename)" #~ msgstr "外部编辑器 (%t将被文件名代替)" # pan/prefs.c:1679 #~ msgid "Web Browser (%s will be replaced with URL)" #~ msgstr "外部网页浏览器 (%s将被URL代替)" # pan/prefs.c:2528 #~ msgid "Maximum total number of connections:" #~ msgstr "最大连接总数:" # pan/prefs.c:2539 #~ msgid "Maximum number of task retries before giving up:" #~ msgstr "放弃前任务再试的最大数" # pan/prefs.c:2675 #~ msgid "Download Directory:" #~ msgstr "下载目录:" # pan/prefs.c:2680 #~ msgid "Download Directory" #~ msgstr "下载目录" # pan/prefs.c:1607 #~ msgid "Automatically remove failed tasks from the task manager" #~ msgstr "从任务管理器中自动移除失败的任务" # pan/prefs.c:1984 pan/prefs.c:2130 pan/prefs.c:2439 #~ msgid "Other Options" #~ msgstr "其他选项" #~ msgid "Download new headers from subscribed groups when starting Pan" #~ msgstr "启动 Pan 时从订阅的组下载新的标题" #~ msgid "" #~ "Download new headers and bodies from subscribed groups when starting Pan" #~ msgstr "启动 Pan 时从订阅的组下载新的标题和内容" # pan/prefs.c:1838 #~ msgid "Headers to Show" #~ msgstr "要显示的标题" # pan/prefs.c:1884 #~ msgid "Message Body" #~ msgstr "消息主体" # pan/prefs.c:1886 #~ msgid "Message Body (Monospace)" #~ msgstr "消息主体(单间隔)" # pan/prefs.c:1906 #~ msgid "Body Foreground" #~ msgstr "信体前景" # pan/prefs.c:1908 #~ msgid "Use default foreground" #~ msgstr "使用预设前景" # pan/prefs.c:1915 #~ msgid "Quoted Text 2" #~ msgstr "引用的文本2" # pan/prefs.c:1933 #~ msgid "Characters which denote quoted text:" #~ msgstr "表明为引用文字的标志" # pan/prefs.c:2053 #~ msgid "Old Articles with no New Replies" #~ msgstr "没有新的回复的旧的文章" # pan/prefs.c:2055 #~ msgid "New Articles / Articles with New Replies" #~ msgstr "新的文章/包含新回复的文章" # pan/prefs.c:2066 #~ msgid "Unread Articles / Articles with Unread Replies" #~ msgstr "未阅读的文章/包含未阅读回复的文章" # pan/prefs.c:2068 #~ msgid "Read Articles with no Unread Replies" #~ msgstr "阅读不包含未阅读回复的文章" # pan/prefs.c:2087 #~ msgid "When a Followup subject header changes, show as new thread" #~ msgstr "当跟贴改变主题时,显示为新的话题" # pan/prefs.c:2094 #~ msgid "Expand all threads by default" #~ msgstr "默认扩展全部话题" # pan/article-toolbar.c:726 #~ msgid "Show complete multipart posts as a single article" #~ msgstr "将完整的多部文章显示为单一文章" # pan/prefs.c:1943 pan/prefs.c:2116 #~ msgid "Date format:" #~ msgstr "日期格式:" # pan/prefs.c:2298 #~ msgid "Assigned panes: " #~ msgstr "指定的窗格:" # pan/prefs.c:2433 #~ msgid "Download New Headers when Loading a Group" #~ msgstr "当加载组时下载新的标题" # pan/prefs.c:2709 #~ msgid "%d files deleted." #~ msgstr "删除了个文件 %d 。" #~ msgid "The cache stores articles locally for offline reading." #~ msgstr "用于离线阅读而在本地保存文章的缓存。" #~ msgid "Maximum Cache Size (Megs):" #~ msgstr "最大缓存容量(兆):" # pan/prefs.c:2756 #~ msgid "Clear Cache Now" #~ msgstr "现在清空缓冲" # pan/prefs.c:2766 #~ msgid "Clear Cache when exiting Pan" #~ msgstr "当退出Pan时清除缓冲区" # pan/prefs.c:2913 #~ msgid "Address" #~ msgstr "地址" # pan/dialogs/dialog-newuser.c:493 pan/prefs.c:2802 #~ msgid "Port" #~ msgstr "端口" # pan/prefs.c:3055 #~ msgid "Cache" #~ msgstr "缓存" # pan/prefs.c:3058 #~ msgid "Display - Group Pane" #~ msgstr "显示 - 组窗格" # pan/prefs.c:3061 #~ msgid "Display - Header Pane" #~ msgstr "显示 - 标题窗格" # pan/prefs.c:3061 #~ msgid "Display - Body Pane" #~ msgstr "显示 - 信体窗格" # pan/prefs.c:3061 #~ msgid "Display - Headers" #~ msgstr "显示 - 标题" # pan/prefs.c:3062 #~ msgid "General" #~ msgstr "摘要" # pan/print.c:236 #~ msgid "You haven't loaded an article to print." #~ msgstr "您没有加载要打印的文章。" # pan/queue.c:848 #~ msgid "Unable to connect to server %s:%d\n" #~ msgstr "不能连接到服务器%s:%d\n" # pan/queue.c:850 #~ msgid "No server address specified in the Preferences" #~ msgstr "在选项中没有制定服务器地址" # pan/queue.c:953 #~ msgid "Connect Failure" #~ msgstr "联机失败" # pan/queue.c:1053 #~ msgid "Sending 'stay connected' request" #~ msgstr "发送“保持联机”请求" # pan/queue.c:1059 #~ msgid "Disconnecting" #~ msgstr "正在断开连接" # pan/queue.c:1140 #~ msgid "Closing connection %p after %d seconds idle" #~ msgstr "空闲%2$d秒后关闭连接%1$p" # pan/rules/rule-action.c:233 #~ msgid "" #~ "%s\n" #~ "\n" #~ "Matches: %u\n" #~ "Group: %s\n" #~ "Rule: %s" #~ msgstr "" #~ "%s\n" #~ "\n" #~ "匹配:%u\n" #~ "组:%s\n" #~ "规则:%s" # pan/rules/rule-edit-ui.c:151 #~ msgid "Mark as" #~ msgstr "标记为" # pan/rules/rule-edit-ui.c:171 #~ msgid "_Flag body for download" #~ msgstr "标记要下载的信体(_F)" # pan/rules/rule-edit-ui.c:176 #~ msgid "_Retrieve Body" #~ msgstr "重新得到信体(_R)" # pan/rules/rule-edit-ui.c:181 #~ msgid "_Watch thread (highlights the thread)" #~ msgstr "跟踪话题_W(加亮话题)" # pan/rules/rule-edit-ui.c:186 #~ msgid "_Ignore thread (hides the thread by default)" #~ msgstr "忽略话题(缺省为隐藏话题)(_I)" # pan/rules/rule-edit-ui.c:592 #~ msgid "Rule applies to all newsgroups" #~ msgstr "规则应用到所有新闻组" # pan/rules/rule-edit-ui.c:598 #~ msgid "Wildcard group specification:" #~ msgstr "通配符组指定:" # pan/rules/rule-edit-ui.c:601 #~ msgid "(e.g., *anime*)" #~ msgstr "(例如,*anime*)" # pan/rules/rule-edit-ui.c:606 #~ msgid "Rule applies to specific newsgroups:" #~ msgstr "规则应用到指定的新闻组:" # pan/rules/rule-edit-ui.c:636 #~ msgid "Rule applies to:" #~ msgstr "规则应用到:" #~ msgid "Apply to Incoming" #~ msgstr "应用到引入内容" # pan/rules/rule-edit-ui.c:798 #~ msgid "" #~ "If enabled, this rule will be applied to headers when they are downloaded." #~ msgstr "如果选中,当标题被下载时,此规则将起作用。" # pan/rules/rule-manager.c:107 #~ msgid "Delete Articles by Bozos" #~ msgstr "删除Bozos的文章" # pan/rules/rule-ui.c:341 #~ msgid "Applying rule to selected groups" #~ msgstr "正在将规则应用到选中的组" # pan/rules/rule-ui.c:370 #~ msgid "Applying rule \"%s\" to group \"%s\"" #~ msgstr "正在将规则“%s”应用到组“%s”" # pan/rules/rule-ui.c:472 #~ msgid "Pan: Rules" #~ msgstr "Pan:规则" # pan/rules/rule-ui.c:485 #~ msgid "Rules" #~ msgstr "规则" # pan/rules/rule-ui.c:486 #~ msgid "Hit Ratio" #~ msgstr "命中率" # pan/rules/rule-ui.c:527 #~ msgid "" #~ "Apply to\n" #~ "Selected\n" #~ "Groups" #~ msgstr "" #~ "应用到\n" #~ "选中的\n" #~ "组" # pan/rules/rule-ui.c:534 #~ msgid "" #~ "Apply to\n" #~ "Subscribed\n" #~ "Groups" #~ msgstr "" #~ "应用到\n" #~ "已订阅\n" #~ "组" # pan/rules/rule-xml.c:260 #~ msgid "Wrote rules to \"%s\"" #~ msgstr "将规则写入到“%s”" # pan/rules/rule.c:285 #~ msgid "" #~ "Can't find filter \"%s\" needed by rule \"%s\", so no articles match." #~ msgstr "无法找到规则“%2$s”所需要的过滤器“%1$s”,所以没有匹配的文章。" # pan/rules/rule.c:295 #~ msgid "%u articles match rule %s" #~ msgstr "匹配规则 %2$s 的文章有 %1$u 个" # pan/articlelist.c:3147 #~ msgid "Save Article _Attachments" #~ msgstr "保存文章附件(_A)" # pan/prefs.c:3056 #~ msgid "_Directory:" #~ msgstr "目录(_D)" # pan/save-ui.c:318 #~ msgid "Save Files in Directory" #~ msgstr "保存文件在目录中" # pan/save-ui.c:452 #~ msgid "Add to the _top of the Task Manager's List" #~ msgstr "添加任务到任务管理器的前面(_T)" # pan/smtp.c:80 #~ msgid "Got unexpected response from mail server: expected %d; got %s" #~ msgstr "从邮件服务器得到未预料的响应:期望的为%d,得到的是%s" # pan/smtp.c:237 #~ msgid "Sending mail" #~ msgstr "正在发送邮件" # pan/smtp.c:294 #~ msgid "No known recipients" #~ msgstr "没有已知的收件人" # pan/smtp.c:379 #~ msgid "Mail sent!" #~ msgstr "邮件已经送出!" # pan/smtp.c:397 #~ msgid "Handshaking with mail server" #~ msgstr "正在与邮件服务器握手" # pan/smtp.c:445 #~ msgid "Connecting to mail server" #~ msgstr "正在连接邮件服务器" # pan/smtp.c:459 #~ msgid "Mail server not ready" #~ msgstr "邮件服务器没有准备好" # pan/prefs.c:2912 #~ msgid "_Name:" #~ msgstr "名称(_N):" # pan/prefs.c:1400 #~ msgid "Authorization" #~ msgstr "授权" # pan/prefs.c:2593 #~ msgid "_Reserve a connection for reading articles" #~ msgstr "保留一个连接以阅读文章(_R)" # pan/dialogs/dialog-newuser.c:507 #~ msgid "Server requires authori_zation" #~ msgstr "服务器要求认证(_Z)" # pan/prefs.c:2863 #~ msgid "Us_e .newsrc file" #~ msgstr "使用.newsrc文件" # pan/message-window.c:848 #~ msgid "_Filename:" #~ msgstr "文件名(_F):" # pan/newsrc-ui.c:82 #~ msgid "Select .newsrc File" #~ msgstr "选择.newsrc文件" # pan/filter-ui.c:401 #~ msgid "Edit the selected server" #~ msgstr "编辑选中的服务器" # pan/filter-ui.c:408 #~ msgid "Remove the selected server" #~ msgstr "移除选定的服务器" # pan/sockets.c:148 #~ msgid "Can't resolve %s: %s" #~ msgstr "不能解析%s:%s" # pan/sockets.c:158 #~ msgid "Can't connect to %s: %s" #~ msgstr "不能连接到%s:%s" # pan/sockets.c:166 #~ msgid "Connection to %s, port %d failed: %s" #~ msgstr "连接到%s,端口%d失败:%s" # pan/sockets.c:179 #~ msgid "New connection %p for %s, port %d, sockfd %d" #~ msgstr "对%2$s的新连接%1$p,端口%3$d,套接字文件描述符%4$d" # pan/sockets.c:250 #~ msgid "Timed out waiting to read from the server." #~ msgstr "从服务器读时等待超时。" # pan/sockets.c:267 #~ msgid "Lost connection to server" #~ msgstr "丢失到服务器的连接" # pan/sockets.c:274 #~ msgid "Error: reading from socket returned %d." #~ msgstr "错误:从套接字读时返回%d。" # pan/sockets.c:321 #~ msgid "socket [%p] failed its read" #~ msgstr "套接字[%p]读失败" # pan/sockets.c:394 #~ msgid "Timed out waiting for the go-ahead to write to the server" #~ msgstr "等待继续信号以写入服务器时超时" # pan/task-bodies.c:177 #~ msgid "Downloading %d articles" #~ msgstr "正在下载%d篇文章" # pan/task-group-count.c:130 #~ msgid "Updating article counts for %u groups from server \"%s\"" #~ msgstr "正在更新服务器“%2$s”组%1$u的文章计数器" # pan/task-group-count.c:159 #~ msgid "Updated counts for %u groups out of %u" #~ msgstr "更新全部%2$u组中的%1$u个组的计数器" # pan/task-group-count.c:177 #~ msgid "Unable to update counts for group \"%s\"" #~ msgstr "不能更新组“%s”的计数器" # pan/task-grouplist.c:394 #~ msgid "Getting all groups from server \"%s\"" #~ msgstr "正在从服务器“%s”中获取所有的组" # pan/task-grouplist.c:394 #~ msgid "Got %s groups from server \"%s\"" #~ msgstr "从服务器“%2$s”找到%1$s个组" # pan/task-grouplist.c:190 #~ msgid "Adding groups to server \"%s\"" #~ msgstr "正在添加组到服务器“%s”" # pan/task-grouplist.c:329 #~ msgid "List Newsgroups failed: %s" #~ msgstr "列表新闻服务器是失败: %s" # pan/task-grouplist.c:364 #~ msgid "Got %s descriptions from server \"%s\"" #~ msgstr "从服务器“%2$s”中找到%1$s个描述" # pan/task-grouplist.c:443 #~ msgid "New groups retrieval failed: %s" #~ msgstr "新组恢复失败: %s" # pan/task-headers.c:418 #~ msgid "No new articles in group \"%s\"" #~ msgstr "组“%s”中没有新的文章" # pan/task-headers.c:424 #~ msgid "New %lu of %lu" #~ msgstr "全部%2$lu个中新的%1$lu个" # pan/task-headers.c:434 #~ msgid "Sampling %lu of %lu" #~ msgstr "正在获取全部%2$lu个中的第%1$lu个" # pan/task-headers.c:440 #~ msgid "All %lu of %lu" #~ msgstr "全部%2$lu个中的第%1$lu个" # pan/task-manager.c:403 #~ msgid "Not Queued" #~ msgstr "没有在队列中" # pan/task-manager.c:415 #~ msgid "Aborting" #~ msgstr "异常终止" # pan/task-manager.c:421 #~ msgid "???" #~ msgstr "???" # pan/task-manager.c:430 #~ msgid "%s (%d tries)" #~ msgstr "%s (%d次尝试)" # pan/task-manager.c:618 #~ msgid "Pan %s Task Manager" #~ msgstr "Pan%s任务管理器" # pan/task-manager.c:736 #~ msgid "Move Selected Task(s) to Top" #~ msgstr "移动选定的任务到顶部" # pan/task-manager.c:754 #~ msgid "Restart selected stopped/failed Task(s)" #~ msgstr "重新启动被选中的被停止的/失败的任务" # pan/task-manager.c:732 #~ msgid "Stop Selected Task(s)" #~ msgstr "停止选定的任务" # pan/task-manager.c:782 #~ msgid "Delete Selected Task(s)" #~ msgstr "删除选中的任务" #~ msgid "Time Remaining" #~ msgstr "剩余时间" # pan/message-send.c:462 #~ msgid "[This is an email copy of a Usenet post to \"%s\"]" #~ msgstr "[这是张贴在“%s”用户组的电子邮件备份]" # pan/message-send.c:471 #~ msgid "Email \"%s\" sent." #~ msgstr "电子邮件“%s”已经发出。" # pan/message-send.c:476 #~ msgid "Email \"%s\" not sent." #~ msgstr "电子邮件“%s”没有发出。" # pan/filters/filter-mine.c:51 #~ msgid "Article \"%s\" posted." #~ msgstr "文章“%s”已被张贴。" # pan/filters/filter-mine.c:50 #~ msgid "Article \"%s\" not posted." #~ msgstr "文章“%s”没被张贴。" # pan/message-send.c:343 #~ msgid "Posting and mailing article \"%s\"" #~ msgstr "正在张贴文章“%s”" # pan/message-send.c:347 #~ msgid "Mailing article \"%s\"" #~ msgstr "正在邮寄文章“%s”" # pan/message-send.c:395 #~ msgid "Email send failed.\n" #~ msgstr "电子邮件发送失败。\n" # pan/message-send.c:397 #~ msgid "Usenet posting failed.\n" #~ msgstr "用户组张贴失败。\n" #~ msgid "Check Tools|Log Viewer for more information.\n" #~ msgstr "检查工具|日志浏览器以获取更多信息。\n" # pan/message-send.c:401 #~ msgid "Your message was saved in the folder \"pan.sendlater\"" #~ msgstr "您的消息保存在文件夹“pan.sendlater”中" # pan/task-save.c:418 #~ msgid "Unable to save \"%s\": the article(s) couldn't be downloaded." #~ msgstr "不能保存“%s”:文章不能被下载。" # pan/base/decode.c:403 #~ msgid "Save Article can't access path \"%s\"" #~ msgstr "保存文章时不能访问路径“%s”" # pan/base/file-headers.c:423 pan/base/file-headers.c:542 #~ msgid "Can't create file \"%s\" %s" #~ msgstr "不能创建目录“%s”%s" # pan/task-save.c:482 #~ msgid "Saved article body to \"%s\"" #~ msgstr "文章主体保存到“%s”" #~ msgid "Could not open \"%s\" for writing: %s\n" #~ msgstr "不能打开文件“%s”来写入: %s\n" # pan/gui.c:640 #~ msgid "Open the Connection Manager" #~ msgstr "打开连接管理器" # pan/gui.c:1993 #~ msgid "/_Servers/_Import .newsrc..." #~ msgstr "/服务器(_S)/导入.newsrc(_I)..." # pan/gui.c:1994 #~ msgid "/_Servers/_Export .newsrc..." #~ msgstr "/服务器(_S)/导出.newsrc(_E)..." # pan/gui.c:1956 #~ msgid "/_Tools/_Online Settings..." #~ msgstr "/工具(_T)/在线状态设定(_O)..." # pan/filter-ui.c:393 pan/identities/identity-ui.c:469 # pan/rules/rule-ui.c:507 #~ msgid "Add _New" #~ msgstr "添加新的(_N)" # pan/filter-ui.c:406 pan/identities/identity-ui.c:489 # pan/rules/rule-ui.c:520 #~ msgid "_Remove" #~ msgstr "移除(_R)" # pan/newsrc-ui.c:127 #~ msgid "Pan: Export .newsrc File" #~ msgstr "Pan:导出.newsrc文件" # pan/newsrc-ui.c:136 #~ msgid "Select .newsrc file to write:" #~ msgstr "选择写.newsrc文件:" # pan/prefs.c:1197 pan/prefs.c:1241 #~ msgid "Not Named" #~ msgstr "没有命名" # pan/prefs.c:1198 pan/prefs.c:1242 #~ msgid "No Address" #~ msgstr "没有地址" # pan/prefs.c:1332 #~ msgid "Server Information" #~ msgstr "服务器信息" # pan/prefs.c:1360 #~ msgid "Server address:" #~ msgstr "服务器地址:" # pan/prefs.c:1408 #~ msgid "My server requires my user name and password" #~ msgstr "我的服务器要求输入我的用户名和密码" # pan/prefs.c:1468 #~ msgid "Idle Seconds Before Timeout:" #~ msgstr "时间到前的空闲秒数:" # pan/prefs.c:1950 pan/prefs.c:2123 #~ msgid "Help" #~ msgstr "帮助" #~ msgid "Wrap text at column" #~ msgstr "在栏中自动换行" # pan/prefs.c:2587 #~ msgid "" #~ "Maximum\n" #~ "Connections" #~ msgstr "" #~ "最大\n" #~ "连接数" # pan/prefs.c:2639 #~ msgid "Reserve" #~ msgstr "保留" # pan/prefs.c:3024 #~ msgid "Per-Server Preferences" #~ msgstr "每个服务器参数" # pan/prefs.c:2846 #~ msgid "" #~ "Newsreaders use .newsrc files to remember which articles\n" #~ "you've read and which groups you're subscribed to. Automatically\n" #~ "importing/exporting .newsrc files lets you share them between Pan and " #~ "other newsreaders." #~ msgstr "" #~ "新闻阅读程序使用 .newsrc 文件以记录您阅读过的文章和订阅的组。\n" #~ "自动导入/导出 .newsrc 文件以您在 Pan 和其他新闻阅读程序间共享," # pan/prefs.c:2853 #~ msgid "Import/Export .newsrc files automatically" #~ msgstr "自动导入/导出 .newsrc 文件" # pan/prefs.c:2876 #~ msgid "read/write subscribed groups only" #~ msgstr "只读/写订阅的组" # pan/prefs.c:2881 #~ msgid "" #~ "Many users prefer to save memory and disk space by only keeping " #~ "subscribed groups in their .newsrc file." #~ msgstr "大多数用户愿意只在.newsrc文件中保存订阅的组,以节省内存和硬盘空间。" # pan/prefs.c:2893 pan/prefs.c:3063 #~ msgid ".Newsrc Files" #~ msgstr ".Newsrc文件" # pan/prefs.c:2937 #~ msgid "New..." #~ msgstr "新建..." # pan/prefs.c:2943 #~ msgid "Edit..." #~ msgstr "编辑..." # pan/prefs.c:3065 #~ msgid "Servers - News" #~ msgstr "服务器-新闻" # pan/prefs.c:3066 #~ msgid "Servers - Mail" #~ msgstr "服务器-邮件" # pan/save-ui.c:333 #~ msgid "Add \"/%s\" to path" #~ msgstr "添加“/%s”到路径中" # pan/save-ui.c:357 #~ msgid "Don't save article text" #~ msgstr "不保存文章文本" # pan/save-ui.c:371 #~ msgid "Use subject header" #~ msgstr "使用主题标题" # pan/save-ui.c:383 pan/save-ui.c:430 #~ msgid "Specify filename" #~ msgstr "指定文件名" # pan/save-ui.c:404 #~ msgid "Don't save attachments" #~ msgstr "不保存附件" pan-0.162/po/zh_TW.po000066400000000000000000004154551475412772400143440ustar00rootroot00000000000000# Traditional Chinese translation for pan. # Copyright (C) 2004 Free Software Foundation, Inc. # This file is distributed under the same license as the pan package. # Chao-Hsiung Liao , 2004. # msgid "" msgstr "" "Project-Id-Version: pan 0.14.2.91\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-04-04 20:58+0200\n" "PO-Revision-Date: 2004-09-09 06:17+0800\n" "Last-Translator: Chao-Hsiung Liao \n" "Language-Team: Chinese (traditional) \n" "Language: zh_TW\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.0.2\n" #: ../pan.desktop.in.h:1 msgid "Pan Newsreader" msgstr "Pan 新聞閱讀器" #: ../pan.desktop.in.h:2 #, fuzzy msgid "Read and Post Usenet Articles" msgstr "閱讀下封未讀文章" #: ../pan/data/article-cache.cc:143 ../pan/data/encode-cache.cc:62 #, fuzzy, c-format msgid "Error opening directory: \"%s\": %s" msgstr "開啟目錄“%s”時發生錯誤:%s)" #: ../pan/data/article-cache.cc:231 ../pan/data/article-cache.cc:242 #: ../pan/data-impl/data-io.cc:187 ../pan/data-impl/data-io.cc:211 #: ../pan/gui/post-ui.cc:1639 #, fuzzy, c-format msgid "Unable to save \"%s\" %s" msgstr "無法取得群組“%*.*s”:%s" #: ../pan/data/article-cache.cc:355 #, fuzzy, c-format msgid "Error opening file \"%s\" %s" msgstr "開啟檔案“%s”時發生錯誤:%s" #: ../pan/data/article-cache.cc:386 ../pan/data-impl/profiles.cc:174 #: ../pan/data-impl/server.cc:436 ../pan/general/file-util.cc:298 #: ../pan/gui/post-ui.cc:609 ../pan/gui/task-pane.cc:691 #, c-format msgid "Error reading file \"%s\": %s" msgstr "讀取檔案“%s”時發生錯誤:%s" #: ../pan/data/cert-store.cc:238 #, fuzzy, c-format msgid "Error opening SSL certificate directory: \"%s\": %s" msgstr "開啟目錄“%s”時發生錯誤:%s)" #: ../pan/data/cert-store.cc:270 #, c-format msgid "Succesfully added %d SSL PEM certificate(s) to Certificate Store." msgstr "" #. load_group_descriptions (*_data_io); #: ../pan/data-impl/data-impl.cc:109 #, c-format msgid "Loaded data backend in %.1f seconds" msgstr "" #: ../pan/data-impl/data-impl.cc:140 msgid "Pan newsreader server passwords" msgstr "" #: ../pan/data-impl/groups.cc:94 #, fuzzy, c-format msgid "Skipping newsrc file for server \"%s\"" msgstr "取得 %d 個新群組於伺服器“%s”" #: ../pan/data-impl/headers.cc:606 #, fuzzy, c-format msgid "Expired %lu old articles from \"%s\"" msgstr "設定 %u 篇文章過期於“%s”中" #: ../pan/data-impl/headers.cc:613 #, c-format msgid "" "Unsupported data version for %s headers: %d.\n" "Are you running an old version of Pan by accident?" msgstr "" "不支援 %s 的資料版本,標頭:%d。\n" "您是否執行了舊版本的 Pan?" #: ../pan/data-impl/headers.cc:628 #, fuzzy, c-format msgid "Loaded %lu articles for \"%s\" in %.1f seconds (%.0f per second)" msgstr "載入 %u 篇文章於群組“%s”,費時 %.1f 秒 (%.0f 文章/秒)" #: ../pan/data-impl/headers.cc:857 #, fuzzy, c-format msgid "" "Saved %lu parts, %lu articles in \"%s\" in %.1f seconds (%.0f articles/sec)" msgstr "儲存 %d 篇文章於“%s”,費時 %.1f 秒(%.0f 文章/秒)" #: ../pan/data-impl/headers.cc:1173 #, fuzzy, c-format msgid "Added %lu articles to %s." msgstr "設定 %u 篇文章過期於“%s”中" #: ../pan/data-impl/server.cc:234 #, c-format msgid "There seems to be no Password set for Server %s." msgstr "" #: ../pan/data-impl/server.cc:238 msgid "The Gnome keyring denied access to the Passwords." msgstr "" #: ../pan/data-impl/xover.cc:239 #, fuzzy, c-format msgid "Error reading from %s: unknown group \"%s\"" msgstr "讀取通訊埠錯誤:%s" #. build the locale strings #: ../pan/general/e-util.cc:213 msgid "%l:%M %p" msgstr "" #: ../pan/general/e-util.cc:214 msgid "Today %l:%M %p" msgstr "" #: ../pan/general/e-util.cc:215 msgid "%a %l:%M %p" msgstr "" #: ../pan/general/e-util.cc:216 msgid "%b %d %l:%M %p" msgstr "" #: ../pan/general/e-util.cc:217 msgid "%b %d %Y" msgstr "" #: ../pan/general/e-util.cc:242 msgid "?" msgstr "" #: ../pan/general/text-match.cc:193 #, c-format msgid "Can't use regular expression \"%s\": %s" msgstr "不能使用正規表示式“%s”:%s" #: ../pan/general/utf8-utils.cc:213 msgid "Couldn't determine article encoding. Non-UTF8 characters were removed." msgstr "" #: ../pan/gui/actions.cc:274 ../pan/gui/post-ui.cc:417 #, fuzzy msgid "_File" msgstr "/檔案(_F)" #: ../pan/gui/actions.cc:275 ../pan/gui/post-ui.cc:418 #, fuzzy msgid "_Edit" msgstr "/編輯(_E)" #: ../pan/gui/actions.cc:276 ../pan/gui/prefs-ui.cc:1064 #, fuzzy msgid "_Layout" msgstr "窗格布局(_L)" #: ../pan/gui/actions.cc:277 #, fuzzy msgid "_Group Pane" msgstr "群組窗格" #: ../pan/gui/actions.cc:278 #, fuzzy msgid "_Header Pane" msgstr "標頭窗格" #: ../pan/gui/actions.cc:279 #, fuzzy msgid "_Body Pane" msgstr "內文窗格" #: ../pan/gui/actions.cc:280 #, fuzzy msgid "_View" msgstr "/檢視(_V)" #: ../pan/gui/actions.cc:281 #, fuzzy msgid "Filte_r" msgstr "/過濾器(_R)" #: ../pan/gui/actions.cc:282 #, fuzzy msgid "_Go" msgstr "/移至(_G)" #: ../pan/gui/actions.cc:283 ../pan/gui/prefs-ui.cc:1091 #, fuzzy msgid "_Actions" msgstr "動作" #: ../pan/gui/actions.cc:284 #, fuzzy msgid "_Articles" msgstr "/文章(_A)" #: ../pan/gui/actions.cc:285 #, fuzzy msgid "G_roups" msgstr "群組" #: ../pan/gui/actions.cc:286 ../pan/gui/actions.cc:287 msgid "_Post" msgstr "張貼(_P)" #: ../pan/gui/actions.cc:288 msgid "_Help" msgstr "說明(_H)" #: ../pan/gui/actions.cc:291 #, fuzzy msgid "_Read Group" msgstr "/刪除群組(_T)" #: ../pan/gui/actions.cc:292 #, fuzzy msgid "Read Group" msgstr "/刪除群組(_T)" #: ../pan/gui/actions.cc:296 #, fuzzy msgid "_Mark Selected Groups Read" msgstr "/將群組標記為已讀(_R)" #: ../pan/gui/actions.cc:297 #, fuzzy msgid "Mark Selected Groups Read" msgstr "/將群組標記為已讀(_R)" #: ../pan/gui/actions.cc:301 #, fuzzy msgid "_Delete Selected Groups' Articles" msgstr "/刪除群組的文章(_D)" #: ../pan/gui/actions.cc:302 #, fuzzy msgid "Delete Selected Groups' Articles" msgstr "/刪除群組的文章(_D)" #: ../pan/gui/actions.cc:306 #, fuzzy msgid "Get New _Headers in Selected Groups" msgstr "取得已選擇群組的新標頭" #: ../pan/gui/actions.cc:307 #, fuzzy msgid "Get New Headers in Selected Groups" msgstr "取得已選擇群組的新標頭" #: ../pan/gui/actions.cc:311 ../pan/gui/actions.cc:316 #, fuzzy msgid "Get New _Headers in Subscribed Groups" msgstr "取得已訂閱群組的新標頭" #: ../pan/gui/actions.cc:312 ../pan/gui/actions.cc:317 #, fuzzy msgid "Get New Headers in Subscribed Groups" msgstr "/取得訂閱群組中的新標頭" #: ../pan/gui/actions.cc:321 #, fuzzy msgid "Get _Headers..." msgstr "/取得新標頭(_H)" #: ../pan/gui/actions.cc:322 #, fuzzy msgid "Get Headers..." msgstr "/取得新標頭(_H)" #: ../pan/gui/actions.cc:326 ../pan/gui/actions.cc:327 #, fuzzy msgid "Refresh Group List" msgstr "重新整理群組“%s”" #: ../pan/gui/actions.cc:331 #, fuzzy msgid "_Subscribe" msgstr "/訂閱(_S)" #: ../pan/gui/actions.cc:332 #, fuzzy msgid "Subscribe" msgstr "/訂閱(_S)" #: ../pan/gui/actions.cc:336 #, fuzzy msgid "_Unsubscribe" msgstr "/取消訂閱(_U)" #: ../pan/gui/actions.cc:337 #, fuzzy msgid "Unsubscribe" msgstr "/取消訂閱(_U)" #: ../pan/gui/actions.cc:341 #, fuzzy msgid "_Save Articles..." msgstr "/另存附加檔案為(_S)..." #: ../pan/gui/actions.cc:342 #, fuzzy msgid "Save Articles..." msgstr "/另存附加檔案為(_S)..." #: ../pan/gui/actions.cc:346 #, fuzzy msgid "Save Articles from Selected _NZB..." msgstr "/另存附加檔案為(_S)..." #: ../pan/gui/actions.cc:347 #, fuzzy msgid "Save Articles from Selected NZB" msgstr "儲存附加檔案" #: ../pan/gui/actions.cc:351 #, fuzzy msgid "Save Articles to an NZB _File..." msgstr "/另存附加檔案為(_S)..." #: ../pan/gui/actions.cc:352 #, fuzzy msgid "Save Articles to an NZB File" msgstr "儲存紀錄檔至檔案" #: ../pan/gui/actions.cc:356 ../pan/gui/actions.cc:357 #, fuzzy msgid "Print" msgstr "Pan: 列印" #: ../pan/gui/actions.cc:361 msgid "_Import NZB Files..." msgstr "" #: ../pan/gui/actions.cc:366 #, fuzzy msgid "_Cancel Last Task" msgstr "取消上次工作" #: ../pan/gui/actions.cc:371 #, fuzzy msgid "_Task Manager" msgstr "/工具(_T)/工作管理程式(_T)..." #: ../pan/gui/actions.cc:376 #, fuzzy msgid "_Event Log" msgstr "開啟狀態紀錄" #: ../pan/gui/actions.cc:381 #, fuzzy msgid "_Quit" msgstr "/編輯(_E)" #: ../pan/gui/actions.cc:386 #, fuzzy msgid "Select _All Articles" msgstr "/編輯(_E)/選擇全部文章(_A)" #: ../pan/gui/actions.cc:391 #, fuzzy msgid "_Deselect All Articles" msgstr "/編輯(_E)/取消選擇所有文章(_L)" #: ../pan/gui/actions.cc:396 #, fuzzy msgid "Add Su_bthreads to Selection" msgstr "/編輯(_E)/將次相關主題加入選擇區(_S)" #: ../pan/gui/actions.cc:401 #, fuzzy msgid "Add _Threads to Selection" msgstr "/編輯(_E)/將相關主題加入選擇區(_T)" #: ../pan/gui/actions.cc:406 #, fuzzy msgid "Add _Similar Articles to Selection" msgstr "/編輯(_E)/將相關主題加入選擇區(_T)" #: ../pan/gui/actions.cc:411 #, fuzzy msgid "Select Article _Body" msgstr "/編輯(_E)/" #: ../pan/gui/actions.cc:416 #, fuzzy msgid "Edit _Preferences" msgstr "/編輯(_E)/偏好(_P)..." #: ../pan/gui/actions.cc:421 #, fuzzy msgid "Edit Selected _Group's Preferences" msgstr "/編輯(_E)/偏好(_P)..." #: ../pan/gui/actions.cc:426 ../pan/gui/post-ui.cc:434 #, fuzzy msgid "Edit P_osting Profiles" msgstr "/工具(_T)/張貼規畫檔案(_P)..." #: ../pan/gui/actions.cc:431 #, fuzzy msgid "Edit _News Servers" msgstr "/工具(_T)/新聞伺服器(_S)..." #: ../pan/gui/actions.cc:436 #, fuzzy msgid "Jump to _Group Tab" msgstr "/檢視(_V)/移至群組分頁(_G)" #: ../pan/gui/actions.cc:441 #, fuzzy msgid "Jump to _Header Tab" msgstr "/檢視(_V)/移至標頭分頁(_H)" #: ../pan/gui/actions.cc:446 #, fuzzy msgid "Jump to _Body Tab" msgstr "/檢視(_V)/移至內文分頁(_B)" #: ../pan/gui/actions.cc:451 #, fuzzy msgid "_Rot13 Selected Text" msgstr "Rot13 選定的文字" #: ../pan/gui/actions.cc:456 #, fuzzy msgid "Clear _Header Pane" msgstr "標頭窗格" #: ../pan/gui/actions.cc:461 #, fuzzy msgid "Clear _Body Pane" msgstr "內文窗格" #: ../pan/gui/actions.cc:466 #, fuzzy msgid "Cache Article" msgstr "正在取消文章" #: ../pan/gui/actions.cc:471 #, fuzzy msgid "Read Article" msgstr "取樣 %d 篇文章" #: ../pan/gui/actions.cc:476 #, fuzzy msgid "Show Article Information" msgstr "規畫檔案資訊" #: ../pan/gui/actions.cc:481 #, fuzzy msgid "Read _More" msgstr "閱讀更多" #: ../pan/gui/actions.cc:482 msgid "Read More" msgstr "閱讀更多" #: ../pan/gui/actions.cc:486 msgid "Read _Back" msgstr "" #: ../pan/gui/actions.cc:487 #, fuzzy msgid "Read Back" msgstr "/移至(_G)/閱讀下一篇" #: ../pan/gui/actions.cc:491 #, fuzzy msgid "Next _Unread Group" msgstr "/移至(_G)/下個未讀群組(_G)" #: ../pan/gui/actions.cc:496 #, fuzzy msgid "Next _Group" msgstr "/移至(_G)/下個群組(_E)" #: ../pan/gui/actions.cc:501 #, fuzzy msgid "Next _Unread Article" msgstr "/移至(_G)/下篇未讀文章(_U)" #: ../pan/gui/actions.cc:502 #, fuzzy msgid "Next Unread Article" msgstr "閱讀下封未讀文章" #: ../pan/gui/actions.cc:506 #, fuzzy msgid "Next _Article" msgstr "/移至(_G)/下篇文章(_A)" #: ../pan/gui/actions.cc:507 #, fuzzy msgid "Next Article" msgstr "/移至(_G)/下篇文章(_A)" #: ../pan/gui/actions.cc:511 #, fuzzy msgid "Next _Watched Article" msgstr "/移至(_G)/下篇監控文章(_W)" #: ../pan/gui/actions.cc:516 #, fuzzy msgid "Next Unread _Thread" msgstr "/移至(_G)/下篇未讀相關主題(_T)" #: ../pan/gui/actions.cc:517 #, fuzzy msgid "Next Unread Thread" msgstr "閱讀下封未讀相關主題" #: ../pan/gui/actions.cc:521 #, fuzzy msgid "Next Threa_d" msgstr "/移至(_G)/下篇相關主題(_D)" #: ../pan/gui/actions.cc:526 #, fuzzy msgid "Pre_vious Article" msgstr "/移至(_G)/前一篇文章(_V)" #: ../pan/gui/actions.cc:531 #, fuzzy msgid "Previous _Thread" msgstr "/移至(_G)/前一篇相關主題" #: ../pan/gui/actions.cc:536 #, fuzzy msgid "_Parent Article" msgstr "/移至(_G)/上層文章(_P)" #: ../pan/gui/actions.cc:541 #, fuzzy msgid "Ignore _Author" msgstr "/忽略相關主題(_I)" #: ../pan/gui/actions.cc:545 #, fuzzy msgid "_Watch Thread" msgstr "/觀看相關主題(_W)" #: ../pan/gui/actions.cc:550 #, fuzzy msgid "_Ignore Thread" msgstr "/忽略相關主題(_I)" #: ../pan/gui/actions.cc:555 ../pan/gui/actions.cc:556 #, fuzzy msgid "_Toggle Flag On/Off for Thread" msgstr "/觀看相關主題(_W)" #: ../pan/gui/actions.cc:560 ../pan/gui/actions.cc:561 #, fuzzy msgid "_Turn Flag Off for Thread" msgstr "/觀看相關主題(_W)" #: ../pan/gui/actions.cc:565 ../pan/gui/actions.cc:566 #, fuzzy msgid "_Select All Flagged Threads" msgstr "/移至(_G)/下篇新的相關主題(_E)" #: ../pan/gui/actions.cc:570 ../pan/gui/actions.cc:571 #, fuzzy msgid "_Go to Next Flagged Thread" msgstr "/移至(_G)/下篇新的相關主題(_E)" #: ../pan/gui/actions.cc:575 ../pan/gui/actions.cc:576 #, fuzzy msgid "_Go to Last Flagged Thread" msgstr "/移至(_G)/下篇新的相關主題(_E)" #: ../pan/gui/actions.cc:580 ../pan/gui/actions.cc:581 #, fuzzy msgid "_Invert Selection" msgstr "將選定的行倒轉" #: ../pan/gui/actions.cc:585 #, fuzzy msgid "Edit Article's Watch/Ignore/Score..." msgstr "/文章(_A)/建立分數(_C)..." #: ../pan/gui/actions.cc:590 #, fuzzy msgid "Add a _Scoring Rule..." msgstr "加入新的分數" #: ../pan/gui/actions.cc:595 #, fuzzy msgid "Cance_l Article..." msgstr "正在取消文章" #: ../pan/gui/actions.cc:600 #, fuzzy msgid "_Supersede Article..." msgstr "/檔案(_F)/列印文章(_P)..." #: ../pan/gui/actions.cc:605 #, fuzzy msgid "_Delete Article" msgstr "刪除文章(_D)" #: ../pan/gui/actions.cc:610 #, fuzzy msgid "Clear Article Cache" msgstr "文章快取" #: ../pan/gui/actions.cc:615 #, fuzzy msgid "_Mark Article as Read" msgstr "文章是已讀" #: ../pan/gui/actions.cc:620 #, fuzzy msgid "Mark Article as _Unread" msgstr "文章是未讀" #: ../pan/gui/actions.cc:626 #, fuzzy msgid "_Mark Thread as Read" msgstr "文章是已讀" #: ../pan/gui/actions.cc:631 #, fuzzy msgid "Mark Thread as _Unread" msgstr "文章是未讀" #: ../pan/gui/actions.cc:636 #, fuzzy msgid "_Post to Newsgroup" msgstr "張貼到新聞群組" #: ../pan/gui/actions.cc:637 msgid "Post to Newsgroup" msgstr "張貼到新聞群組" #: ../pan/gui/actions.cc:641 #, fuzzy msgid "_Followup to Newsgroup" msgstr "/張貼(_P)/追蹤新聞群組(_F)..." #: ../pan/gui/actions.cc:642 #, fuzzy msgid "Followup to Newsgroup" msgstr "/張貼(_P)/追蹤新聞群組(_F)..." #: ../pan/gui/actions.cc:646 #, fuzzy msgid "_Reply to Author in Mail" msgstr "/文章(_A)/阻擋作者(_P)" #: ../pan/gui/actions.cc:651 #, fuzzy msgid "_Pan Home Page" msgstr "/說明(_H)/Pan 首頁(_H)..." #: ../pan/gui/actions.cc:656 #, fuzzy msgid "Give _Feedback or Report a Bug..." msgstr "/說明(_H)/回報 _Bug..." #: ../pan/gui/actions.cc:661 msgid "_Tip Jar..." msgstr "" #: ../pan/gui/actions.cc:666 #, fuzzy msgid "_About" msgstr "關於" #: ../pan/gui/actions.cc:671 msgid "Edit _SSL Certificates" msgstr "" #: ../pan/gui/actions.cc:685 #, fuzzy msgid "_Thread Headers" msgstr "更多標頭" #: ../pan/gui/actions.cc:686 #, fuzzy msgid "_Wrap Article Body" msgstr "/檢視(_V)/文章內文折行(_W)" #: ../pan/gui/actions.cc:687 #, fuzzy msgid "Mute _Quoted Text" msgstr "/檢視(_V)/靜音引用文字(_Q)" #: ../pan/gui/actions.cc:688 #, fuzzy msgid "Show All _Headers in Body Pane" msgstr "/檢視(_V)/顯示內文窗格內所有標頭(_H)" #: ../pan/gui/actions.cc:689 #, fuzzy msgid "Show _Smilies as Graphics" msgstr "顯示警告(_L):" #: ../pan/gui/actions.cc:690 msgid "Show *Bold*, __Underlined__, and /Italic/" msgstr "" #: ../pan/gui/actions.cc:691 msgid "Size Pictures to _Fit" msgstr "" #: ../pan/gui/actions.cc:692 #, fuzzy msgid "Use _Monospace Font" msgstr "等寬字型(_E):" #: ../pan/gui/actions.cc:693 msgid "Set Focus to Images" msgstr "" #: ../pan/gui/actions.cc:694 msgid "Highlight _URLs" msgstr "" #: ../pan/gui/actions.cc:697 #, fuzzy msgid "_Work Online" msgstr "/檔案(_F)/線上工作(_L)" #: ../pan/gui/actions.cc:698 #, fuzzy msgid "_Tabbed Layout" msgstr "/檢視(_V)/分頁式布局(_T)" #: ../pan/gui/actions.cc:699 #, fuzzy msgid "Show Group _Pane" msgstr "/檢視(_V)/顯示群組窗格(_P)" #: ../pan/gui/actions.cc:700 #, fuzzy msgid "Show Hea_der Pane" msgstr "/檢視(_V)/顯示標頭窗格(_D)" #: ../pan/gui/actions.cc:701 #, fuzzy msgid "Show Bod_y Pane" msgstr "/檢視(_V)/顯示內文窗格(_Y)" #: ../pan/gui/actions.cc:702 msgid "Show _Toolbar" msgstr "" #: ../pan/gui/actions.cc:703 #, fuzzy msgid "Abbreviate Group Names" msgstr "/檢視(_V)/群組窗格中的縮寫名稱(_N)" #: ../pan/gui/actions.cc:705 #, fuzzy msgid "Match Only _Unread Articles" msgstr "只比對新文章" #: ../pan/gui/actions.cc:705 #, fuzzy msgid "Match Only Unread Articles" msgstr "只比對新文章" #: ../pan/gui/actions.cc:706 #, fuzzy msgid "Match Only _Cached Articles" msgstr "只比對快取中的文章" #: ../pan/gui/actions.cc:706 #, fuzzy msgid "Match Only Cached Articles" msgstr "只比對快取中的文章" #: ../pan/gui/actions.cc:707 #, fuzzy msgid "Match Only _Complete Articles" msgstr "只比對完整的附加檔案" #: ../pan/gui/actions.cc:707 #, fuzzy msgid "Match Only Complete Articles" msgstr "只比對完整的附加檔案" #: ../pan/gui/actions.cc:708 #, fuzzy msgid "Match Only _My Articles" msgstr "只比對我的文章" #: ../pan/gui/actions.cc:708 #, fuzzy msgid "Match Only My Articles" msgstr "只比對我的文章" #: ../pan/gui/actions.cc:709 #, fuzzy msgid "Match Only _Watched Articles" msgstr "只比對監控的文章" #: ../pan/gui/actions.cc:709 msgid "Match Only Watched Articles" msgstr "只比對監控的文章" #: ../pan/gui/actions.cc:711 #, fuzzy msgid "Match Scores of 9999 (_Watched)" msgstr "/過濾器(_R)/比對分數為 9999 者(已監控)" #: ../pan/gui/actions.cc:712 #, fuzzy msgid "Match Scores of 5000...9998 (_High)" msgstr "/過濾器(_R)/比對分數在 5000...9998 之間者(高)" #: ../pan/gui/actions.cc:713 #, fuzzy msgid "Match Scores of 1...4999 (Me_dium)" msgstr "/過濾器(_R)/比對分數在 1...4999 之間者(中)" #: ../pan/gui/actions.cc:714 #, fuzzy msgid "Match Scores of 0 (_Normal)" msgstr "/過濾器(_R)/比對分數為 0 者(一般)" #: ../pan/gui/actions.cc:715 #, fuzzy msgid "Match Scores of -9998...-1 (_Low)" msgstr "/過濾器(_R)/比對分數在 -9998...-1 之間者(低)" #: ../pan/gui/actions.cc:716 #, fuzzy msgid "Match Scores of -9999 (_Ignored)" msgstr "/過濾器(_R)/比對分數為 -9999 者(忽略)" #: ../pan/gui/actions.cc:718 msgid "Enable/Disable All _Rules" msgstr "" #: ../pan/gui/actions.cc:744 #, fuzzy msgid "Show Matching _Articles" msgstr "/過濾器(_R)/顯示符合的文章" #: ../pan/gui/actions.cc:745 #, fuzzy msgid "Show Matching Articles' _Threads" msgstr "/過濾器(_R)/顯示符合的相關主題" #: ../pan/gui/actions.cc:746 #, fuzzy msgid "Show Matching Articles' _Subthreads" msgstr "/過濾器(_R)/顯示符合的次相關主題" #: ../pan/gui/body-pane.cc:1011 #, fuzzy, c-format msgid "Unnamed File" msgstr "選擇簽名檔" #: ../pan/gui/body-pane.cc:1092 ../pan/gui/gui.cc:1864 #: ../pan/gui/header-pane.cc:1188 ../pan/gui/header-pane.cc:1617 #: ../pan/gui/post-ui.cc:2496 ../pan/gui/prefs-ui.cc:833 #: ../pan/gui/score-add-ui.cc:139 msgid "Subject" msgstr "主旨" #: ../pan/gui/body-pane.cc:1094 ../pan/gui/gui.cc:1864 #, fuzzy msgid "From" msgstr "寄件人" #: ../pan/gui/body-pane.cc:1096 ../pan/gui/gui.cc:1865 #: ../pan/gui/header-pane.cc:1695 ../pan/gui/log-ui.cc:305 #: ../pan/gui/prefs-ui.cc:829 msgid "Date" msgstr "日期" #: ../pan/gui/body-pane.cc:1103 msgid "Newsgroups" msgstr "新聞群組" #: ../pan/gui/body-pane.cc:1108 #, fuzzy msgid "Followup-To" msgstr "追蹤" #: ../pan/gui/body-pane.cc:1118 msgid "Reply-To" msgstr "回覆到" #: ../pan/gui/body-pane.cc:1160 msgid " from " msgstr "" #: ../pan/gui/body-pane.cc:1162 msgid " at " msgstr "" #: ../pan/gui/body-pane.cc:1264 #, c-format msgid "" "This is a PGP-Signed message.\n" "\n" "Signer : %s ('%s')\n" "Valid until : %s\n" "Created on : %s" msgstr "" #: ../pan/gui/body-pane.cc:1269 msgid "always" msgstr "" #: ../pan/gui/body-pane.cc:1485 msgid "Copy _URL" msgstr "" #: ../pan/gui/body-pane.cc:1680 #, fuzzy msgid "Save attachment as ...." msgstr "另存附加檔案為..." #: ../pan/gui/body-pane.cc:1683 #, fuzzy msgid "Save all attachments" msgstr "儲存附加檔案" #. add a toolbar for attachments #: ../pan/gui/body-pane.cc:1753 msgid "Attachments" msgstr "附加檔案" #. update the titlebar #: ../pan/gui/dl-headers-ui.cc:106 ../pan/gui/gui.cc:973 #: ../pan/gui/gui.cc:1592 ../pan/gui/gui.cc:1893 #: ../pan/gui/score-add-ui.cc:602 msgid "Pan" msgstr "" #: ../pan/gui/dl-headers-ui.cc:112 #, fuzzy, c-format msgid "%d Group" msgid_plural "%d Groups" msgstr[0] "群組" msgstr[1] "群組" #: ../pan/gui/dl-headers-ui.cc:135 #, fuzzy msgid "Get the last N _days' headers: " msgstr "下載最近的標頭(_R):" #: ../pan/gui/dl-headers-ui.cc:143 #, fuzzy msgid "Get _new headers" msgstr "/取得新標頭(_H)" #: ../pan/gui/dl-headers-ui.cc:147 #, fuzzy msgid "Get _all headers" msgstr "下載所有標頭(_A)" #: ../pan/gui/dl-headers-ui.cc:151 #, fuzzy msgid "Get the _latest N headers: " msgstr "下載最近的標頭(_R):" #: ../pan/gui/e-action-combo-box.c:388 ../pan/gui/prefs-ui.cc:826 #, fuzzy msgid "Action" msgstr "動作" #: ../pan/gui/e-action-combo-box.c:389 msgid "A GtkRadioAction" msgstr "" #: ../pan/gui/e-charset.c:51 ../pan/gui/task-pane.cc:518 msgid "Unknown" msgstr "未知" #: ../pan/gui/e-charset.c:52 msgid "Arabic" msgstr "" #: ../pan/gui/e-charset.c:53 msgid "Baltic" msgstr "粗斜體" #: ../pan/gui/e-charset.c:54 msgid "Central European" msgstr "中歐" #: ../pan/gui/e-charset.c:55 #, fuzzy msgid "Chinese" msgstr "行" #: ../pan/gui/e-charset.c:56 msgid "Cyrillic" msgstr "斯拉夫語" #: ../pan/gui/e-charset.c:57 msgid "Greek" msgstr "希臘語" #: ../pan/gui/e-charset.c:58 msgid "Hebrew" msgstr "" #: ../pan/gui/e-charset.c:59 msgid "Japanese" msgstr "日語" #: ../pan/gui/e-charset.c:60 msgid "Korean" msgstr "韓語" #: ../pan/gui/e-charset.c:61 msgid "Thai" msgstr "" #: ../pan/gui/e-charset.c:62 msgid "Turkish" msgstr "土耳其語" #: ../pan/gui/e-charset.c:63 #, fuzzy msgid "Unicode" msgstr "Unicode, UTF-8" #: ../pan/gui/e-charset.c:64 #, fuzzy msgid "Western European" msgstr "中歐" #: ../pan/gui/e-charset.c:65 #, fuzzy msgid "Western European, New" msgstr "西歐,新式" #: ../pan/gui/e-charset.c:84 ../pan/gui/e-charset.c:85 #: ../pan/gui/e-charset.c:86 #, fuzzy msgid "Traditional" msgstr "繁體中文" #: ../pan/gui/e-charset.c:87 ../pan/gui/e-charset.c:88 #: ../pan/gui/e-charset.c:89 ../pan/gui/e-charset.c:90 #, fuzzy msgid "Simplified" msgstr "簡體中文" #: ../pan/gui/e-charset.c:93 #, fuzzy msgid "Ukrainian" msgstr "斯拉夫語,烏克蘭" #: ../pan/gui/e-charset.c:96 msgid "Visual" msgstr "" #: ../pan/gui/e-charset-combo-box.c:93 ../pan/gui/gui.cc:2058 #: ../pan/gui/post-ui.cc:519 ../pan/gui/prefs-ui.cc:737 #, fuzzy msgid "Character Encoding" msgstr "字元集(_H):" #: ../pan/gui/e-charset-combo-box.c:117 msgid "Enter the character set to use" msgstr "" #: ../pan/gui/e-charset-combo-box.c:336 msgid "Other..." msgstr "" #: ../pan/gui/e-cte-dialog.c:78 #, fuzzy msgid "Default encoding" msgstr "正在解碼“%s”" #: ../pan/gui/e-cte-dialog.c:80 #, fuzzy msgid "7Bit Encoding" msgstr "字元集(_H):" #: ../pan/gui/e-cte-dialog.c:82 #, fuzzy msgid "8Bit Encoding" msgstr "字元集(_H):" #: ../pan/gui/e-cte-dialog.c:84 #, fuzzy msgid "BASE64 Encoding" msgstr "字元集(_H):" #: ../pan/gui/e-cte-dialog.c:86 #, fuzzy msgid "Quoted-Printable Encoding" msgstr "內文窗格(_Y)" #: ../pan/gui/group-pane.cc:500 msgid "Group" msgstr "群組" #: ../pan/gui/group-pane.cc:501 #, fuzzy msgid "Group (regex)" msgstr "群組屬性" #: ../pan/gui/group-pane.cc:913 #, fuzzy msgid "Subscribed Groups" msgstr "訂閱的新聞群組" #: ../pan/gui/group-pane.cc:914 #, fuzzy msgid "Other Groups" msgstr "新增群組" #: ../pan/gui/group-pane.cc:954 ../pan/gui/score-view-ui.cc:157 #, fuzzy msgid "Name" msgstr "名稱(_N):" #: ../pan/gui/group-prefs-dialog.cc:156 #, fuzzy msgid "No Profiles defined in Edit|Posting Profiles." msgstr "/工具(_T)/張貼規畫檔案(_P)..." #: ../pan/gui/group-prefs-dialog.cc:231 #, fuzzy msgid "Pan: Group Preferences" msgstr "Pan 偏好設定" #: ../pan/gui/group-prefs-dialog.cc:247 #, fuzzy, c-format msgid "Properties for Groups" msgstr "“%s”屬性" #: ../pan/gui/group-prefs-dialog.cc:249 #, fuzzy, c-format msgid "Properties for %s" msgstr "“%s”屬性" #: ../pan/gui/group-prefs-dialog.cc:257 #, fuzzy msgid "Character _encoding:" msgstr "字元集(_H):" #: ../pan/gui/group-prefs-dialog.cc:259 #, fuzzy msgid "Directory for Saving Attachments" msgstr "用來儲存附加檔案的目錄" #: ../pan/gui/group-prefs-dialog.cc:269 #, fuzzy msgid "Directory for _saving attachments:" msgstr "用來儲存附加檔案的目錄" #: ../pan/gui/group-prefs-dialog.cc:271 #, fuzzy msgid "Posting _profile:" msgstr "Pan: 規畫檔案" #: ../pan/gui/group-prefs-dialog.cc:277 msgid "Spellchecker _language:" msgstr "" #: ../pan/gui/gui.cc:273 msgid "Open the Task Manager" msgstr "開啟工作管理程式" #: ../pan/gui/gui.cc:301 #, fuzzy msgid "Open the Event Log" msgstr "開啟狀態紀錄" #: ../pan/gui/gui.cc:561 msgid "Save NZB's Files" msgstr "" #: ../pan/gui/gui.cc:588 msgid "Untitled.nzb" msgstr "" #: ../pan/gui/gui.cc:590 #, fuzzy msgid "Save NZB File as..." msgstr "/另存附加檔案為(_S)..." #: ../pan/gui/gui.cc:757 msgid "Import NZB Files" msgstr "" #: ../pan/gui/gui.cc:765 ../pan/gui/post-ui.cc:3197 #, fuzzy msgid "NZB Files" msgstr "檔案" #: ../pan/gui/gui.cc:770 #, fuzzy msgid "All Files" msgstr "檔案" #: ../pan/gui/gui.cc:1258 #, fuzzy msgid "Unable to supersede article." msgstr "/檔案(_F)/列印文章(_P)..." #: ../pan/gui/gui.cc:1259 ../pan/gui/gui.cc:1333 msgid "The article doesn't match any of your posting profiles." msgstr "" #: ../pan/gui/gui.cc:1306 msgid "Revise and send this article to replace the old one." msgstr "" #: ../pan/gui/gui.cc:1307 ../pan/gui/gui.cc:1370 msgid "Be patient! It will take time for your changes to take effect." msgstr "" #: ../pan/gui/gui.cc:1332 #, fuzzy msgid "Unable to cancel article." msgstr "無法建立相關主題:%s" #: ../pan/gui/gui.cc:1369 msgid "Send this article to ask your server to cancel your other one." msgstr "" #: ../pan/gui/gui.cc:1387 msgid "You marked some articles for deletion" msgstr "" #: ../pan/gui/gui.cc:1388 #, fuzzy msgid "Are you sure you want to delete them?" msgstr "您確定要刪除這 %d 個群組/資料夾與它們的文章?" #: ../pan/gui/gui.cc:1413 #, fuzzy msgid "Always trust" msgstr "編輯器" #: ../pan/gui/gui.cc:1416 msgid "Do you want to accept it permanently (deletable afterwards) ?" msgstr "" #: ../pan/gui/gui.cc:1595 #, fuzzy msgid "Copyright \\u00A9 2002-2012 Charles Kerr and others" msgstr "版權所有 (C) 2003 Charles Kerr" #: ../pan/gui/gui.cc:1600 msgid "translator-credits" msgstr "" #: ../pan/gui/gui.cc:1709 #, fuzzy msgid "_1. Group Pane" msgstr "群組窗格" #: ../pan/gui/gui.cc:1710 #, fuzzy msgid "_2. Header Pane" msgstr "標頭窗格" #: ../pan/gui/gui.cc:1711 #, fuzzy msgid "_3. Body Pane" msgstr "內文窗格" #: ../pan/gui/gui.cc:1800 ../pan/gui/gui.cc:1815 msgid " Bytes" msgstr "" #: ../pan/gui/gui.cc:1803 msgid " KB" msgstr "" #: ../pan/gui/gui.cc:1806 msgid " MB" msgstr "" #: ../pan/gui/gui.cc:1809 msgid " GB" msgstr "" #: ../pan/gui/gui.cc:1812 msgid " TB" msgstr "" #: ../pan/gui/gui.cc:1844 #, fuzzy, c-format msgid "This article is complete with %d part." msgid_plural "This article has all %d parts." msgstr[0] "文章沒有附加檔案" msgstr[1] "文章沒有附加檔案" #: ../pan/gui/gui.cc:1846 #, fuzzy, c-format msgid "This article is missing %d part." msgid_plural "This article is missing %d of its %d parts:" msgstr[0] "文章沒有附加檔案" msgstr[1] "文章沒有附加檔案" #: ../pan/gui/gui.cc:1865 ../pan/gui/header-pane.cc:1190 #, fuzzy msgid "Message-ID" msgstr "郵件-ID(_M):" #: ../pan/gui/gui.cc:1866 ../pan/gui/header-pane.cc:1665 #: ../pan/gui/prefs-ui.cc:830 msgid "Lines" msgstr "行" #: ../pan/gui/gui.cc:1866 msgid "Size" msgstr "" #: ../pan/gui/gui.cc:1867 ../pan/gui/header-pane.cc:1680 #: ../pan/gui/prefs-ui.cc:828 msgid "Bytes" msgstr "" #: ../pan/gui/gui.cc:1917 msgid "" "Error loading iconv library. Some Charsets in the GUI will not be able to be " "encoded." msgstr "" #: ../pan/gui/gui.cc:2059 #, fuzzy msgid "Body Pane Encoding" msgstr "內文窗格(_Y)" #: ../pan/gui/gui.cc:2090 ../pan/gui/task-pane.cc:569 #, c-format msgid "Offline" msgstr "離線" #: ../pan/gui/gui.cc:2094 #, fuzzy, c-format msgid "Closing %d connection" msgid_plural "Closing %d connections" msgstr[0] "正在關閉 %d 連線" msgstr[1] "正在關閉 %d 連線" #: ../pan/gui/gui.cc:2096 ../pan/gui/gui.cc:2126 #, c-format msgid "No Connections" msgstr "無連線" #: ../pan/gui/gui.cc:2100 #, c-format msgid "Connecting" msgstr "連線中" #: ../pan/gui/gui.cc:2113 #, c-format msgid "%s: %d idle, %d active @ %.1f KiBps" msgstr "" #: ../pan/gui/gui.cc:2169 #, c-format msgid "No Tasks" msgstr "無工作" #: ../pan/gui/gui.cc:2171 ../pan/gui/prefs-ui.cc:1047 msgid "Tasks" msgstr "工作" #: ../pan/gui/gui.cc:2182 ../pan/gui/task-pane.cc:435 #, c-format msgid "%lu tasks, %s, %.1f KiBps, ETA %d:%02d:%02d" msgstr "" #: ../pan/gui/gui.cc:2234 msgid "" "Pan is now offline. Please see \"File|Event Log\" and correct the problem, " "then use \"File|Work Online\" to continue." msgstr "" #: ../pan/gui/header-pane.cc:1186 msgid "Subject or Author" msgstr "" #: ../pan/gui/header-pane.cc:1187 msgid "Sub or Auth (regex)" msgstr "" #: ../pan/gui/header-pane.cc:1189 ../pan/gui/header-pane.cc:1649 #: ../pan/gui/prefs-ui.cc:827 ../pan/gui/score-add-ui.cc:140 msgid "Author" msgstr "作者" #: ../pan/gui/header-pane.cc:1634 ../pan/gui/prefs-ui.cc:831 msgid "Score" msgstr "分數" #: ../pan/gui/log-ui.cc:103 msgid "Save Event List" msgstr "" #: ../pan/gui/log-ui.cc:256 #, fuzzy msgid "Pan: Events" msgstr "Pan: 伺服器" #: ../pan/gui/log-ui.cc:315 msgid "Message" msgstr "郵件" #: ../pan/gui/pan.cc:330 msgid "Maximize" msgstr "" #: ../pan/gui/pan.cc:383 msgid "An Error has occurred!" msgstr "" #: ../pan/gui/pan.cc:397 #, fuzzy msgid "New Articles!" msgstr "/移至(_G)/下篇文章(_A)" #: ../pan/gui/pan.cc:398 msgid "" "There are new\n" "articles available." msgstr "" #: ../pan/gui/pan.cc:465 msgid "Toggle on/offline" msgstr "" #: ../pan/gui/pan.cc:513 msgid "" "Thank you for trying Pan!\n" " \n" "To start newsreading, first Add a Server." msgstr "" #: ../pan/gui/pan.cc:595 msgid "" "General Options\n" " -h, --help Show this usage page.\n" " --verbose Be verbose (in non-GUI mode).\n" "\n" "URL Options\n" " --no-gui On news:message-id, dump the article to stdout.\n" "\n" "NZB Batch Options\n" " --nzb file1 file2 ... Process nzb files without launching all of Pan.\n" " -o path, --output=path Path to save attachments listed in the nzb " "files.\n" " --no-gui Only show console output, not the download " "queue.\n" msgstr "" #: ../pan/gui/pan.cc:867 msgid "Error: --no-gui used without nzb files or news:message-id." msgstr "" #: ../pan/gui/pan.cc:871 #, fuzzy, c-format msgid "Pan %s started" msgstr "Pan %s 啟動" #: ../pan/gui/pan.cc:890 msgid "Please configure Pan's news servers before using it as an nzb client." msgstr "" #: ../pan/gui/pan.cc:1009 msgid "Pan notification" msgstr "" #: ../pan/gui/post-ui.cc:186 #, c-format msgid "Upload Queue : %ld Tasks, %ld KB (~ %.2f MB) total ." msgstr "" #: ../pan/gui/post-ui.cc:286 #, fuzzy, c-format msgid "Error setting custom spellchecker: %s" msgstr "寫入通訊埠錯誤:%s" #: ../pan/gui/post-ui.cc:291 ../pan/gui/post-ui.cc:300 #, fuzzy, c-format msgid "Error setting spellchecker: %s" msgstr "寫入通訊埠錯誤:%s" #: ../pan/gui/post-ui.cc:419 #, fuzzy msgid "_Profile" msgstr "規畫檔案" #: ../pan/gui/post-ui.cc:420 #, fuzzy msgid "Set Editor" msgstr "編輯器" #: ../pan/gui/post-ui.cc:422 #, fuzzy msgid "_Send Article" msgstr "/移至(_G)/上層文章(_P)" #: ../pan/gui/post-ui.cc:422 #, fuzzy msgid "Send Article Now" msgstr "立即傳送" #: ../pan/gui/post-ui.cc:423 #, fuzzy msgid "_Send and Save Articles to NZB" msgstr "Pan: 另存為" #: ../pan/gui/post-ui.cc:423 #, fuzzy msgid "Send and Save Articles to NZB" msgstr "Pan: 另存為" #: ../pan/gui/post-ui.cc:424 #, fuzzy msgid "Set Character _Encoding..." msgstr "字元集(_H):" #: ../pan/gui/post-ui.cc:425 #, fuzzy msgid "Set Content _Transfer Encoding..." msgstr "字元集(_H):" #: ../pan/gui/post-ui.cc:426 #, fuzzy msgid "Sa_ve Draft" msgstr "儲存文章" #: ../pan/gui/post-ui.cc:426 msgid "Save as a Draft for Future Posting" msgstr "" #: ../pan/gui/post-ui.cc:427 #, fuzzy msgid "_Open Draft..." msgstr "/閱讀文章(_R)" #: ../pan/gui/post-ui.cc:427 #, fuzzy msgid "Open an Article Draft" msgstr "/閱讀文章(_R)" #: ../pan/gui/post-ui.cc:432 #, fuzzy msgid "_Rot13" msgstr "Rot13" #: ../pan/gui/post-ui.cc:432 msgid "Rot13 Selected Text" msgstr "Rot13 選定的文字" #: ../pan/gui/post-ui.cc:433 #, fuzzy msgid "Run _Editor" msgstr "編輯器" #: ../pan/gui/post-ui.cc:433 #, fuzzy msgid "Run Editor" msgstr "編輯器" #: ../pan/gui/post-ui.cc:435 msgid "Add _Files to Queue" msgstr "" #: ../pan/gui/post-ui.cc:435 msgid "Add Files to Queue" msgstr "" #: ../pan/gui/post-ui.cc:450 ../pan/gui/post-ui.cc:451 #, fuzzy msgid "Remove from Queue" msgstr "新聞伺服器" #: ../pan/gui/post-ui.cc:455 ../pan/gui/post-ui.cc:456 #, fuzzy msgid "Clear List" msgstr "選擇過濾器:" #: ../pan/gui/post-ui.cc:460 ../pan/gui/post-ui.cc:461 #, fuzzy msgid "Select Needed Parts" msgstr "選擇字型" #: ../pan/gui/post-ui.cc:465 ../pan/gui/post-ui.cc:466 #: ../pan/gui/task-pane.cc:636 ../pan/gui/task-pane.cc:637 msgid "Move Up" msgstr "" #: ../pan/gui/post-ui.cc:470 ../pan/gui/post-ui.cc:471 #: ../pan/gui/task-pane.cc:641 ../pan/gui/task-pane.cc:642 msgid "Move Down" msgstr "" #: ../pan/gui/post-ui.cc:475 ../pan/gui/post-ui.cc:476 msgid "Move to Top" msgstr "" #: ../pan/gui/post-ui.cc:480 ../pan/gui/post-ui.cc:481 #, fuzzy msgid "Move to Bottom" msgstr "將選擇的工作移到底部" #: ../pan/gui/post-ui.cc:488 #, fuzzy msgid "_Wrap Text" msgstr "文字折行" #: ../pan/gui/post-ui.cc:488 #, fuzzy msgid "Wrap Text" msgstr "文字折行" #: ../pan/gui/post-ui.cc:489 #, fuzzy msgid "Always Run Editor" msgstr "編輯器" #: ../pan/gui/post-ui.cc:490 #, fuzzy msgid "Remember Character Encoding for this Group" msgstr "字元集(_H):" #: ../pan/gui/post-ui.cc:491 msgid "Thread Attached Replies" msgstr "" #: ../pan/gui/post-ui.cc:492 msgid "PGP-Encrypt the Message" msgstr "" #: ../pan/gui/post-ui.cc:493 msgid "PGP-Sign the Message" msgstr "" #: ../pan/gui/post-ui.cc:494 msgid "Check _Spelling" msgstr "" #: ../pan/gui/post-ui.cc:520 #, fuzzy msgid "New Article's Encoding:" msgstr "/檢視文章的分數(_V)" #: ../pan/gui/post-ui.cc:530 #, fuzzy msgid "Content Transfer Encoding" msgstr "字元集(_H):" #: ../pan/gui/post-ui.cc:531 #, fuzzy msgid "New Article's Content Transfer Encoding:" msgstr "/檢視文章的分數(_V)" #: ../pan/gui/post-ui.cc:711 msgid "Your changes will be lost!" msgstr "" #: ../pan/gui/post-ui.cc:712 msgid "Close this window and lose your changes?" msgstr "" #: ../pan/gui/post-ui.cc:757 ../pan/gui/post-ui.cc:796 msgid "There were problems with this post." msgstr "" #: ../pan/gui/post-ui.cc:759 ../pan/gui/post-ui.cc:798 #: ../pan/gui/post-ui.cc:861 #, fuzzy msgid "Go Back" msgstr "/移至(_G)/閱讀下一篇" #: ../pan/gui/post-ui.cc:761 msgid "Post Anyway" msgstr "" #. Prompt the user #: ../pan/gui/post-ui.cc:790 #, fuzzy, c-format msgid "" "Message uses characters not specified in charset '%s' - possibly use '%s' " msgstr "郵件使用了字元集“%s”中未指定的字元 - 是否使用“%s”來代替?" #: ../pan/gui/post-ui.cc:813 #, fuzzy msgid "Go _Online" msgstr "Pan 已上線" #: ../pan/gui/post-ui.cc:860 msgid "The file queue is empty, so no files can be saved." msgstr "" #: ../pan/gui/post-ui.cc:1019 msgid "" "No posting server is set for this posting profile.\n" "Please edit the profile via Edit|Manage Posting Profiles." msgstr "" #: ../pan/gui/post-ui.cc:1054 #, fuzzy msgid "Pan is Offline." msgstr "Pan 已離線" #: ../pan/gui/post-ui.cc:1055 msgid "Go online to post the article?" msgstr "" #: ../pan/gui/post-ui.cc:1102 #, c-format msgid "" "Error signing/encrypting your message. Perhaps you misspelled your email-" "address (%s) ?" msgstr "" #: ../pan/gui/post-ui.cc:1267 #, fuzzy msgid "Error opening temporary file" msgstr "開啟暫存檔案時發生錯誤:“%s”" #: ../pan/gui/post-ui.cc:1279 #, c-format msgid "Error writing article to temporary file: %s" msgstr "寫入文章至暫存檔案時發生錯誤:%s" #: ../pan/gui/post-ui.cc:1298 #, fuzzy, c-format msgid "Error parsing \"external editor\" command line: %s (Command was: %s)" msgstr "分析“外部編輯器”命令列時發生錯誤:%s" #: ../pan/gui/post-ui.cc:1339 #, c-format msgid "Error starting external editor: %s" msgstr "啟動外部編輯器時發生錯誤:%s" #: ../pan/gui/post-ui.cc:1395 #, fuzzy msgid "Open Draft Article" msgstr "/閱讀文章(_R)" #: ../pan/gui/post-ui.cc:1606 #, fuzzy msgid "Save Draft Article" msgstr "儲存文章" #: ../pan/gui/post-ui.cc:1803 #, fuzzy, c-format msgid "Couldn't parse signature command \"%s\": %s" msgstr "無法讀取簽名檔案“%s”:%s" #: ../pan/gui/post-ui.cc:1839 #, fuzzy msgid "Couldn't convert signature to UTF-8." msgstr "無法將簽名檔“%s”轉換為 UTF-8。簽名檔必須為“%s”" #: ../pan/gui/post-ui.cc:2334 #, fuzzy msgid "F_rom" msgstr "寄件人" #: ../pan/gui/post-ui.cc:2352 #, fuzzy msgid "_Subject" msgstr "主旨(_S):" #: ../pan/gui/post-ui.cc:2365 #, fuzzy msgid "_Newsgroups" msgstr "/新聞群組(_N)" #: ../pan/gui/post-ui.cc:2379 #, fuzzy msgid "Mail _To" msgstr "寄給" #: ../pan/gui/post-ui.cc:2481 msgid "Delete from Queue" msgstr "" #: ../pan/gui/post-ui.cc:2494 msgid "No." msgstr "" #: ../pan/gui/post-ui.cc:2498 ../pan/gui/post-ui.cc:2592 #: ../pan/gui/post-ui.cc:2633 msgid "Filename" msgstr "檔案名稱" #: ../pan/gui/post-ui.cc:2500 msgid "Size (kB)" msgstr "" #: ../pan/gui/post-ui.cc:2600 msgid "The current filename" msgstr "" #: ../pan/gui/post-ui.cc:2604 #, fuzzy msgid "Subject Line" msgstr "主旨" #: ../pan/gui/post-ui.cc:2612 msgid "The current Subject Line" msgstr "" #: ../pan/gui/post-ui.cc:2626 msgid "No. " msgstr "" #: ../pan/gui/post-ui.cc:2630 msgid "Enable/Disable" msgstr "" #: ../pan/gui/post-ui.cc:2664 #, fuzzy msgid "Follo_wup-To" msgstr "追蹤" #. i18n: "poster" is a key used by many newsreaders. probably safest to keep this key in english. #: ../pan/gui/post-ui.cc:2673 #, fuzzy msgid "" "The newsgroups where replies to your message should go. This is only needed " "if it differs from the \"Newsgroups\" header.\n" "\n" "To direct all replies to your email address, use \"Followup-To: poster\"" msgstr "" "回覆您的郵件應該寄到哪個新聞群組。只有當它與“張貼到群組”標頭不同時才需要。\n" "要直接回覆到您的電子郵件位址,請使用“追蹤:張貼者”" #: ../pan/gui/post-ui.cc:2679 #, fuzzy msgid "_Reply-To" msgstr "回覆到" #: ../pan/gui/post-ui.cc:2687 msgid "" "The email account where mail replies to your posted message should go. This " "is only needed if it differs from the \"From\" header." msgstr "" "回覆您的郵件應該寄到哪個電子郵件帳號。只有當它與“寄件人”標頭不同時才需要。" #: ../pan/gui/post-ui.cc:2693 #, fuzzy msgid "_Custom Headers" msgstr "自訂標頭" #: ../pan/gui/post-ui.cc:2717 #, fuzzy msgid "Add \"_User-Agent\" header" msgstr "加入“User-Agent”標頭" #: ../pan/gui/post-ui.cc:2724 #, fuzzy msgid "Add \"Message-_Id\" header" msgstr "加入“Message-Id”標頭" #: ../pan/gui/post-ui.cc:2855 #, fuzzy msgid "Select Parts" msgstr "選擇字型" #: ../pan/gui/post-ui.cc:2866 msgid "_Parts" msgstr "" #: ../pan/gui/post-ui.cc:3022 #, fuzzy msgid "Post Article" msgstr "文章(_A)" #: ../pan/gui/post-ui.cc:3043 #, fuzzy msgid "_Message" msgstr "郵件" #: ../pan/gui/post-ui.cc:3044 #, fuzzy msgid "More _Headers" msgstr "更多標頭" #: ../pan/gui/post-ui.cc:3045 #, fuzzy msgid "File _Queue" msgstr "/檔案(_F)/離開(_Q)" #: ../pan/gui/post-ui.cc:3077 ../pan/gui/profiles-dialog.cc:478 #, no-c-format msgid "On %d, %n wrote:" msgstr "於 %d,%n 寫道:" #: ../pan/gui/post-ui.cc:3106 msgid "Add files to queue" msgstr "" #: ../pan/gui/post-ui.cc:3184 msgid "Save Upload Queue as NZB File" msgstr "" #: ../pan/gui/prefs.cc:343 #, fuzzy, c-format msgid "Couldn't parse %s color \"%s\"" msgstr "無法分析加簽指令“%s”" #: ../pan/gui/prefs-ui.cc:120 msgid "Grab Key" msgstr "" #: ../pan/gui/prefs-ui.cc:126 #, c-format msgid "" "Press the combination of the keys\n" "you want to use for \"%s\"." msgstr "" #: ../pan/gui/prefs-ui.cc:166 #, fuzzy msgid "Edit Hotkey" msgstr "編輯過濾器" #: ../pan/gui/prefs-ui.cc:228 msgid "Error: Shortkey is invalid!" msgstr "" #: ../pan/gui/prefs-ui.cc:244 #, fuzzy msgid "Error: Shortkey already exists!" msgstr "以此為名的伺服器已存在。" #: ../pan/gui/prefs-ui.cc:535 #, fuzzy msgid "Show only icons" msgstr "規畫檔案資訊" #: ../pan/gui/prefs-ui.cc:536 #, fuzzy msgid "Show only text" msgstr "/檢視(_V)/顯示內文窗格(_Y)" #: ../pan/gui/prefs-ui.cc:537 #, fuzzy msgid "Show icons and text" msgstr "儲存附加檔案於目錄(_T):" #: ../pan/gui/prefs-ui.cc:576 #, fuzzy msgid "Use GNOME Preferences" msgstr "Pan 偏好設定" #: ../pan/gui/prefs-ui.cc:577 #, fuzzy msgid "Use KDE Preferences" msgstr "參考" #: ../pan/gui/prefs-ui.cc:578 #, fuzzy msgid "Use OS X Preferences" msgstr "參考" #: ../pan/gui/prefs-ui.cc:579 #, fuzzy msgid "Use Windows Preferences" msgstr "Pan 偏好設定" #: ../pan/gui/prefs-ui.cc:580 #, fuzzy msgid "Custom Command:" msgstr "列印指令:" #: ../pan/gui/prefs-ui.cc:632 msgid "Disabled" msgstr "" #: ../pan/gui/prefs-ui.cc:633 msgid "Only new (Score == 0)" msgstr "" #: ../pan/gui/prefs-ui.cc:634 #, fuzzy msgid "9999 or more" msgstr "/過濾器(_R)/比對分數為 -9999 者(忽略)" #: ../pan/gui/prefs-ui.cc:635 msgid "5000 to 9998" msgstr "" #: ../pan/gui/prefs-ui.cc:636 msgid "1 to 4999" msgstr "" #: ../pan/gui/prefs-ui.cc:637 msgid "-9998 to -1" msgstr "" #: ../pan/gui/prefs-ui.cc:638 #, fuzzy msgid "-9999 or less" msgstr "/過濾器(_R)/比對分數為 -9999 者(忽略)" #: ../pan/gui/prefs-ui.cc:702 #, c-format msgid "Select default global charset. Current setting : %s ." msgstr "" #: ../pan/gui/prefs-ui.cc:738 msgid "Global Charset Settings" msgstr "" #: ../pan/gui/prefs-ui.cc:832 ../pan/gui/task-pane.cc:770 #, fuzzy msgid "State" msgstr "狀態" #: ../pan/gui/prefs-ui.cc:866 msgid "Enabled" msgstr "" #: ../pan/gui/prefs-ui.cc:870 #, fuzzy msgid "Column Name" msgstr "欄" #: ../pan/gui/prefs-ui.cc:908 #, fuzzy msgid "Pan: Preferences" msgstr "Pan 偏好設定" #: ../pan/gui/prefs-ui.cc:923 msgid "Mouse" msgstr "滑鼠" #: ../pan/gui/prefs-ui.cc:925 #, fuzzy msgid "Single-click activates, rather than selects, _groups" msgstr "單擊選擇,而非載入,群組(_K)" #: ../pan/gui/prefs-ui.cc:927 #, fuzzy msgid "Single-click activates, rather than selects, _articles" msgstr "單擊選擇,而非載入,標頭(_R)" #: ../pan/gui/prefs-ui.cc:930 #, fuzzy msgid "Groups" msgstr "群組" #: ../pan/gui/prefs-ui.cc:932 #, fuzzy msgid "Get new headers in subscribed groups on _startup" msgstr "取得已訂閱群組的新標頭" #: ../pan/gui/prefs-ui.cc:934 #, fuzzy msgid "Get new headers when _entering group" msgstr "當進入群組時下載新標頭(_G)" #: ../pan/gui/prefs-ui.cc:936 #, fuzzy msgid "Mark entire group _read when leaving group" msgstr "當離開某群組時將群組中的文章標記為已讀(_M)" #: ../pan/gui/prefs-ui.cc:938 #, fuzzy msgid "Mark entire group read before getting _new headers" msgstr "當離開某群組時將群組中的文章標記為已讀(_M)" #: ../pan/gui/prefs-ui.cc:940 #, fuzzy msgid "E_xpand all threads when entering group" msgstr "當進入群組時下載新標頭(_G)" #: ../pan/gui/prefs-ui.cc:945 #, fuzzy msgid "Articles" msgstr "/文章(_A)" #: ../pan/gui/prefs-ui.cc:947 msgid "Space selects next article rather than next unread" msgstr "" #: ../pan/gui/prefs-ui.cc:949 #, fuzzy msgid "Expand threads upon selection" msgstr "/編輯(_E)/將相關主題加入選擇區(_T)" #: ../pan/gui/prefs-ui.cc:951 msgid "Always show article deletion confirmation dialog" msgstr "" #: ../pan/gui/prefs-ui.cc:953 #, fuzzy msgid "Smooth scrolling" msgstr "平滑捲動於速度:" #: ../pan/gui/prefs-ui.cc:958 #, fuzzy msgid "Article Cache" msgstr "文章快取" #: ../pan/gui/prefs-ui.cc:959 msgid "Clear article cache on shutdown" msgstr "" #: ../pan/gui/prefs-ui.cc:962 msgid "Size of article cache (in MiB) :" msgstr "" #: ../pan/gui/prefs-ui.cc:967 #, fuzzy msgid "File extension for Cached Articles: " msgstr "/過濾器(_R)/比對已讀的文章(_R)" #: ../pan/gui/prefs-ui.cc:972 msgid "Tabs" msgstr "" #: ../pan/gui/prefs-ui.cc:977 #, fuzzy msgid "_Behavior" msgstr "行為(_V)" #: ../pan/gui/prefs-ui.cc:977 #, fuzzy msgid "Behavior" msgstr "行為(_V)" #: ../pan/gui/prefs-ui.cc:983 #, fuzzy msgid "Language Settings" msgstr "正在取得“%s”" #. systray and notify popup #: ../pan/gui/prefs-ui.cc:992 #, fuzzy msgid "System Tray Behavior" msgstr "行為(_V)" #: ../pan/gui/prefs-ui.cc:994 msgid "Hide to system tray" msgstr "" #: ../pan/gui/prefs-ui.cc:996 msgid "Start Pan minimized" msgstr "" #: ../pan/gui/prefs-ui.cc:999 #, fuzzy msgid "Show notifications" msgstr "規畫檔案資訊" #. allow multiple instances (seperate, not communicating with dbus) #: ../pan/gui/prefs-ui.cc:1004 #, fuzzy msgid "Startup Behavior" msgstr "行為(_V)" #: ../pan/gui/prefs-ui.cc:1006 msgid "Allow multiple instances of Pan" msgstr "" #: ../pan/gui/prefs-ui.cc:1011 #, fuzzy msgid "Autosave Article Draft" msgstr "/閱讀文章(_R)" #: ../pan/gui/prefs-ui.cc:1013 #, fuzzy msgid "Minutes to autosave the current Article Draft: " msgstr "/閱讀文章(_R)" #: ../pan/gui/prefs-ui.cc:1018 #, fuzzy msgid "Autosave Articles" msgstr "/另存附加檔案為(_S)..." #: ../pan/gui/prefs-ui.cc:1020 msgid "Minutes to autosave newsrc files: " msgstr "" #: ../pan/gui/prefs-ui.cc:1026 msgid "_Miscellaneous" msgstr "" #: ../pan/gui/prefs-ui.cc:1026 msgid "Miscellaneous" msgstr "" #: ../pan/gui/prefs-ui.cc:1031 msgid "Pane Layout" msgstr "窗格布局" #: ../pan/gui/prefs-ui.cc:1050 msgid "1=Groups, 2=Headers, 3=Body" msgstr "" #: ../pan/gui/prefs-ui.cc:1052 msgid "1=Groups, 2=Body, 3=Headers" msgstr "" #: ../pan/gui/prefs-ui.cc:1054 msgid "1=Headers, 2=Groups, 3=Body" msgstr "" #: ../pan/gui/prefs-ui.cc:1056 msgid "1=Headers, 2=Body, 3=Groups" msgstr "" #: ../pan/gui/prefs-ui.cc:1058 msgid "1=Body, 2=Groups, 3=Headers" msgstr "" #: ../pan/gui/prefs-ui.cc:1060 msgid "1=Body, 2=Headers, 3=Groups" msgstr "" #: ../pan/gui/prefs-ui.cc:1064 #, fuzzy msgid "Layout" msgstr "窗格布局(_L)" #: ../pan/gui/prefs-ui.cc:1069 #, fuzzy msgid "Header Pane Columns" msgstr "標頭窗格" #: ../pan/gui/prefs-ui.cc:1073 #, fuzzy msgid "_Headers" msgstr "標頭" #: ../pan/gui/prefs-ui.cc:1073 #, fuzzy msgid "Headers" msgstr "標頭" #: ../pan/gui/prefs-ui.cc:1079 msgid "" "This menu lets you configure Pan to take certain actions on your behalf " "automatically, based on a post's score." msgstr "" #: ../pan/gui/prefs-ui.cc:1082 msgid "_Delete posts scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1084 msgid "Mark posts _read scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1086 msgid "_Cache posts scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1088 msgid "Download _attachments of posts scoring at: " msgstr "" #: ../pan/gui/prefs-ui.cc:1091 #, fuzzy msgid "Actions" msgstr "動作" #: ../pan/gui/prefs-ui.cc:1096 ../pan/gui/prefs-ui.cc:1117 msgid "Fonts" msgstr "字型" #: ../pan/gui/prefs-ui.cc:1098 msgid "Use custom font in Group Pane:" msgstr "在群組窗格中使用自訂字型:" #: ../pan/gui/prefs-ui.cc:1103 msgid "Use custom font in Header Pane:" msgstr "在標頭窗格中使用自訂字型:" #: ../pan/gui/prefs-ui.cc:1108 msgid "Use custom font in Body Pane:" msgstr "在內文窗格中使用自訂字型:" #: ../pan/gui/prefs-ui.cc:1113 #, fuzzy msgid "Monospace font:" msgstr "等寬字型(_E):" #: ../pan/gui/prefs-ui.cc:1117 #, fuzzy msgid "_Fonts" msgstr "字型" #: ../pan/gui/prefs-ui.cc:1122 #, fuzzy msgid "Header Pane" msgstr "標頭窗格" #: ../pan/gui/prefs-ui.cc:1125 ../pan/gui/prefs-ui.cc:1131 #: ../pan/gui/prefs-ui.cc:1137 ../pan/gui/prefs-ui.cc:1143 #: ../pan/gui/prefs-ui.cc:1149 ../pan/gui/prefs-ui.cc:1155 msgid "Text:" msgstr "文字:" #: ../pan/gui/prefs-ui.cc:1127 ../pan/gui/prefs-ui.cc:1133 #: ../pan/gui/prefs-ui.cc:1139 ../pan/gui/prefs-ui.cc:1145 #: ../pan/gui/prefs-ui.cc:1151 ../pan/gui/prefs-ui.cc:1157 msgid "Background:" msgstr "背景:" #: ../pan/gui/prefs-ui.cc:1129 #, fuzzy msgid "Scores of 9999 or more:" msgstr "/過濾器(_R)/比對分數為 -9999 者(忽略)" #: ../pan/gui/prefs-ui.cc:1135 msgid "Scores from 5000 to 9998:" msgstr "" #: ../pan/gui/prefs-ui.cc:1141 msgid "Scores from 1 to 4999:" msgstr "" #: ../pan/gui/prefs-ui.cc:1147 msgid "Scores from -9998 to -1:" msgstr "" #: ../pan/gui/prefs-ui.cc:1153 #, fuzzy msgid "Scores of -9999 or less:" msgstr "/過濾器(_R)/比對分數為 -9999 者(忽略)" #: ../pan/gui/prefs-ui.cc:1159 msgid "Read collapsed thread:" msgstr "" #: ../pan/gui/prefs-ui.cc:1161 #, fuzzy msgid "Body Pane" msgstr "內文窗格(_Y)" #: ../pan/gui/prefs-ui.cc:1167 #, fuzzy msgid "Quoted text:" msgstr "/檢視(_V)/靜音引用文字(_Q)" #: ../pan/gui/prefs-ui.cc:1168 #, fuzzy msgid "URL:" msgstr "URLs:" #: ../pan/gui/prefs-ui.cc:1169 #, fuzzy msgid "Signature:" msgstr "簽名檔(_S):" #: ../pan/gui/prefs-ui.cc:1171 #, fuzzy msgid "_Colors" msgstr "色彩" #: ../pan/gui/prefs-ui.cc:1171 #, fuzzy msgid "Colors" msgstr "色彩" #: ../pan/gui/prefs-ui.cc:1176 #, fuzzy msgid "Preferred Applications" msgstr "應用程式" #: ../pan/gui/prefs-ui.cc:1180 #, fuzzy msgid "_Web browser:" msgstr "網頁瀏覽器(%s 為 URL):" #: ../pan/gui/prefs-ui.cc:1183 #, fuzzy msgid "_Mail reader:" msgstr "郵件伺服器" #: ../pan/gui/prefs-ui.cc:1185 #, fuzzy msgid "_Text editor:" msgstr "編輯器" #: ../pan/gui/prefs-ui.cc:1187 #, fuzzy msgid "_Applications" msgstr "應用程式" #: ../pan/gui/prefs-ui.cc:1187 #, fuzzy msgid "Applications" msgstr "應用程式" #: ../pan/gui/prefs-ui.cc:1192 ../pan/gui/task-pane.cc:512 #, fuzzy msgid "Encoding" msgstr "字元集(_H):" #: ../pan/gui/prefs-ui.cc:1196 msgid "Default bytes per file (for encoder): " msgstr "" #: ../pan/gui/prefs-ui.cc:1201 #, fuzzy msgid "_Upload" msgstr "應用程式" #: ../pan/gui/prefs-ui.cc:1201 msgid "Upload" msgstr "" #: ../pan/gui/prefs-ui.cc:1219 msgid "_Hotkeys" msgstr "" #: ../pan/gui/prefs-ui.cc:1219 msgid "Hotkeys" msgstr "" #: ../pan/gui/profiles-dialog.cc:83 msgid "Please choose your Email Address according to your PGP key's user id." msgstr "" #: ../pan/gui/profiles-dialog.cc:131 #, fuzzy msgid "Posting Profile" msgstr "Pan: 規畫檔案" #: ../pan/gui/profiles-dialog.cc:143 msgid "Profile Information" msgstr "規畫檔案資訊" #: ../pan/gui/profiles-dialog.cc:147 msgid "_Profile Name:" msgstr "規畫檔案名稱(_P):" #: ../pan/gui/profiles-dialog.cc:150 msgid "Required Information" msgstr "需要的資訊" #: ../pan/gui/profiles-dialog.cc:154 msgid "_Full Name:" msgstr "全名(_F):" #: ../pan/gui/profiles-dialog.cc:158 msgid "" "Your Email Address.\n" "Note that this has to match your PGP Signature's Address\n" "if you want to PGP-Sign or Encrypt your messages correctly." msgstr "" #: ../pan/gui/profiles-dialog.cc:162 msgid "_Email Address:" msgstr "電子郵件位址(_E):" #: ../pan/gui/profiles-dialog.cc:164 #, fuzzy msgid "_Post Articles via:" msgstr "文章(_A)" #: ../pan/gui/profiles-dialog.cc:167 #, fuzzy msgid "Signature" msgstr "簽名檔(_S):" #: ../pan/gui/profiles-dialog.cc:170 #, fuzzy msgid "_Use a Signature" msgstr "簽名檔(_S):" #: ../pan/gui/profiles-dialog.cc:174 #, fuzzy msgid "Signature File" msgstr "選擇簽名檔" #: ../pan/gui/profiles-dialog.cc:184 #, fuzzy msgid "Text File" msgstr "/移至(_G)/下篇文章(_A)" #: ../pan/gui/profiles-dialog.cc:186 #, fuzzy msgid "Text" msgstr "文字:" #: ../pan/gui/profiles-dialog.cc:188 #, fuzzy msgid "Command" msgstr "列印指令:" #: ../pan/gui/profiles-dialog.cc:191 #, fuzzy msgid "PGP Signature" msgstr "簽名檔(_S):" #: ../pan/gui/profiles-dialog.cc:196 #, fuzzy msgid "Signature Type : " msgstr "簽名檔(_S):" #: ../pan/gui/profiles-dialog.cc:223 msgid "X-Face (Avatar)" msgstr "" #: ../pan/gui/profiles-dialog.cc:226 msgid "" "You can add an avatar icon to your articles with a unique X-Face code. \n" "Add the code without the trailing \"X-Face:\" \n" " if it was generated by a helper program (for example http://www.dairiki.org/" "xface/xface.php)." msgstr "" #: ../pan/gui/profiles-dialog.cc:229 msgid "_X-Face:" msgstr "" #: ../pan/gui/profiles-dialog.cc:231 msgid "Optional Information" msgstr "選擇性資訊" #: ../pan/gui/profiles-dialog.cc:236 #, fuzzy msgid "" "When posting to Usenet, your article's Message-ID contains a domain name. \n" "You can set a custom domain name here, or leave it blank to let Pan use the " "domain name from your email address." msgstr "" "當張貼到 Usenet 時,您文章的郵件-ID會包含網域名稱。您可以在這裡設定自訂的網域" "名稱,或保持空白讓 Pan使用您電子郵件位址的網域名稱。" #: ../pan/gui/profiles-dialog.cc:239 msgid "Message-ID _Domain Name:" msgstr "郵件-ID 網域名稱(_D):" #: ../pan/gui/profiles-dialog.cc:243 #, c-format msgid "" "%i for Message-ID\n" "%a for Author and Address\n" "%n for Author name\n" "%d for Date" msgstr "" "%i 為郵件-ID\n" "%a 為作者與地址\n" "%n 為作者名稱\n" "%d 為日期" #: ../pan/gui/profiles-dialog.cc:244 msgid "_Attribution:" msgstr "屬性(_A):" #: ../pan/gui/profiles-dialog.cc:268 msgid "" "Extra headers to be included in your posts, such as\n" "Reply-To: \"Your Name\"\n" "Organization: Your Organization\n" msgstr "" #: ../pan/gui/profiles-dialog.cc:278 #, fuzzy msgid "E_xtra Headers:" msgstr "額外的標頭" #: ../pan/gui/profiles-dialog.cc:323 #, fuzzy msgid "Invalid email address." msgstr "無效的位址“%s”" #: ../pan/gui/profiles-dialog.cc:324 msgid "Please use an address of the form joe@somewhere.org" msgstr "" #: ../pan/gui/profiles-dialog.cc:479 msgid "New Profile" msgstr "新增規畫檔案" #: ../pan/gui/profiles-dialog.cc:525 #, fuzzy msgid "Posting Profiles" msgstr "/工具(_T)/張貼規畫檔案(_P)..." #: ../pan/gui/profiles-dialog.cc:541 #, fuzzy msgid "Profiles" msgstr "規畫檔案" #: ../pan/gui/save-attach-ui.cc:77 ../pan/gui/save-ui.cc:77 #, fuzzy, c-format msgid "" "%g - group as one directory (alt.binaries.pictures.trains)\n" "%G - group as nested directory (/alt/binaries/pictures/trains)\n" "%s - subject line excerpt\n" "%S - subject line\n" " \n" "\"/home/user/News/Pan/%g\" becomes\n" "\"/home/user/News/Pan/alt.binaries.pictures.trains\", and\n" "\"/home/user/News/Pan/%G\" becomes\n" "\"/home/user/News/Pan/alt/binaries/pictures/trains\"," msgstr "" "%g - 群組為單一目錄 (alt.binaries.pictures.trains)\n" "%G - 群組為巢狀目錄 (/alt/binaries/pictures/trains)\n" " \n" "\"/home/user/News/Pan/%g\" 變成\n" "\"/home/user/News/Pan/alt.binaries.pictures.trains\",而\n" "\"/home/user/News/Pan/%G\" 變成\n" "\"/home/user/News/Pan/alt/binaries/pictures/trains\"," #: ../pan/gui/save-attach-ui.cc:223 ../pan/gui/save-ui.cc:242 msgid "Add to the queue sorted by date posted" msgstr "" #: ../pan/gui/save-attach-ui.cc:224 ../pan/gui/save-ui.cc:243 #, fuzzy msgid "Add to the front of the queue" msgstr "加入到工作管理程式清單的底部(_O)" #: ../pan/gui/save-attach-ui.cc:225 ../pan/gui/save-ui.cc:244 #, fuzzy msgid "Add to the back of the queue" msgstr "加入到工作管理程式清單的底部(_O)" #: ../pan/gui/save-attach-ui.cc:257 #, fuzzy msgid "Pan: Save Attachments" msgstr "儲存附加檔案(_A)" #: ../pan/gui/save-attach-ui.cc:282 ../pan/gui/save-attach-ui.cc:300 #: ../pan/gui/save-ui.cc:296 ../pan/gui/save-ui.cc:314 #, fuzzy msgid "_Location:" msgstr "動作" #: ../pan/gui/save-attach-ui.cc:286 ../pan/gui/save-ui.cc:300 #, fuzzy msgid "Save Articles" msgstr "/另存附加檔案為(_S)..." #: ../pan/gui/save-attach-ui.cc:303 ../pan/gui/save-ui.cc:317 #, c-format msgid "_Group's path: %s" msgstr "" #: ../pan/gui/save-attach-ui.cc:314 ../pan/gui/save-ui.cc:332 msgid "_Priority:" msgstr "" #: ../pan/gui/save-ui.cc:233 #, fuzzy msgid "Save attachments" msgstr "儲存附加檔案" #: ../pan/gui/save-ui.cc:234 #, fuzzy msgid "Save text" msgstr "儲存文字(_X)" #: ../pan/gui/save-ui.cc:235 #, fuzzy msgid "Save attachments and text" msgstr "儲存附加檔案於目錄(_T):" #: ../pan/gui/save-ui.cc:271 #, fuzzy msgid "Pan: Save Articles" msgstr "Pan: 另存為" #: ../pan/gui/save-ui.cc:328 #, fuzzy msgid "_Action:" msgstr "動作" #: ../pan/gui/score-add-ui.cc:89 msgid "is more than" msgstr "" #: ../pan/gui/score-add-ui.cc:90 msgid "is at most" msgstr "" #: ../pan/gui/score-add-ui.cc:112 #, fuzzy msgid "increase the article's score by" msgstr "/檢視(_V)/文章內文折行(_W)" #: ../pan/gui/score-add-ui.cc:113 #, fuzzy msgid "decrease the article's score by" msgstr "/檢視(_V)/文章內文折行(_W)" #: ../pan/gui/score-add-ui.cc:114 #, fuzzy msgid "set the article's score to" msgstr "設定分數為" #: ../pan/gui/score-add-ui.cc:115 #, fuzzy msgid "watch the article (set its score to 9999)" msgstr "監控(設定分數為 9999)(_W)" #: ../pan/gui/score-add-ui.cc:116 #, fuzzy msgid "ignore the article (set its score to -9999)" msgstr "忽略(設定分數為 -9999)(_I)" #: ../pan/gui/score-add-ui.cc:141 #, fuzzy msgid "References" msgstr "參照(_R):" #: ../pan/gui/score-add-ui.cc:142 #, fuzzy msgid "Line Count" msgstr "第 %d 行,第 %d 欄" #: ../pan/gui/score-add-ui.cc:143 msgid "Byte Count" msgstr "" #: ../pan/gui/score-add-ui.cc:144 msgid "Crosspost Group Count" msgstr "" #: ../pan/gui/score-add-ui.cc:145 msgid "Age (in days)" msgstr "" #: ../pan/gui/score-add-ui.cc:167 msgid "for the next month" msgstr "" #: ../pan/gui/score-add-ui.cc:168 msgid "for the next six months" msgstr "" #: ../pan/gui/score-add-ui.cc:169 #, fuzzy msgid "forever" msgstr "伺服器" #: ../pan/gui/score-add-ui.cc:194 msgid "contains" msgstr "包含" #: ../pan/gui/score-add-ui.cc:195 #, fuzzy msgid "doesn't contain" msgstr "不包含" #: ../pan/gui/score-add-ui.cc:196 msgid "is" msgstr "是" #: ../pan/gui/score-add-ui.cc:197 #, fuzzy msgid "isn't" msgstr "不是" #: ../pan/gui/score-add-ui.cc:198 msgid "starts with" msgstr "開頭為" #: ../pan/gui/score-add-ui.cc:199 msgid "ends with" msgstr "結尾為" #: ../pan/gui/score-add-ui.cc:200 #, fuzzy msgid "matches regex" msgstr "符合正規表示式" #: ../pan/gui/score-add-ui.cc:481 #, fuzzy msgid "Another rule already sets this article's score." msgstr "/檢視(_V)/文章內文折行(_W)" #: ../pan/gui/score-add-ui.cc:482 msgid "You may want to go back or delete the old rule." msgstr "" #: ../pan/gui/score-add-ui.cc:553 msgid "Add and Re_score" msgstr "加入並重新評分(_S)" #: ../pan/gui/score-add-ui.cc:604 ../pan/gui/score-add-ui.cc:624 #, fuzzy msgid "New Scoring Rule" msgstr "新分數" #: ../pan/gui/score-add-ui.cc:635 msgid "If the group name" msgstr "" #: ../pan/gui/score-add-ui.cc:642 #, fuzzy msgid "And the article's" msgstr "每篇文章行數:" #: ../pan/gui/score-view-ui.cc:56 msgid "Close and Re_score" msgstr "關閉並重新評分(_S)" #: ../pan/gui/score-view-ui.cc:154 #, fuzzy, c-format msgid "File %s, Lines %d - %d" msgstr "分數檔案 %s,行 %d: %s (%s)" #: ../pan/gui/score-view-ui.cc:182 #, fuzzy msgid "Pan: Article's Scores" msgstr "Pan: 檢視文章分數" #: ../pan/gui/score-view-ui.cc:208 #, fuzzy msgid "Add" msgstr "加入" #: ../pan/gui/score-view-ui.cc:213 msgid "New Score" msgstr "新分數" #: ../pan/gui/score-view-ui.cc:218 msgid "Criteria" msgstr "條件" #: ../pan/gui/score-view-ui.cc:241 #, fuzzy msgid "Add a New Scoring Rule" msgstr "加入新的分數" #: ../pan/gui/score-view-ui.cc:248 #, fuzzy msgid "Remove the Selected Scoring Rule" msgstr "移除選擇的分數" #: ../pan/gui/server-ui.cc:221 msgid "Please specify the server's address." msgstr "" #: ../pan/gui/server-ui.cc:264 msgid "Import SSL certificate (PEM format) from File" msgstr "" #. create the dialog #: ../pan/gui/server-ui.cc:290 ../pan/gui/server-ui.cc:869 #, fuzzy msgid "Add a Server" msgstr "加入新伺服器" #: ../pan/gui/server-ui.cc:290 ../pan/gui/server-ui.cc:875 #, fuzzy msgid "Edit a Server's Settings" msgstr "其他設定" #: ../pan/gui/server-ui.cc:310 #, fuzzy msgid "Location" msgstr "動作" #: ../pan/gui/server-ui.cc:314 msgid "The news server's actual address, e.g. \"news.mynewsserver.com\"" msgstr "新聞伺服器的實際位址,例如“news.mynewsserver.com”" #: ../pan/gui/server-ui.cc:315 msgid "_Address:" msgstr "位址(_A):" #: ../pan/gui/server-ui.cc:319 #, fuzzy msgid "The news server's port number. Typically 119." msgstr "新聞伺服器的連接埠。這通常是 119。" #: ../pan/gui/server-ui.cc:320 msgid "Por_t:" msgstr "連接埠(_T):" #: ../pan/gui/server-ui.cc:323 msgid "Login (if Required)" msgstr "" #: ../pan/gui/server-ui.cc:327 msgid "_Username:" msgstr "使用者名稱(_U):" #: ../pan/gui/server-ui.cc:328 msgid "" "The username to give the server when asked. If your server doesn't require " "authentication, you can leave this blank." msgstr "" #: ../pan/gui/server-ui.cc:332 msgid "_Password:" msgstr "密碼(_P):" #: ../pan/gui/server-ui.cc:333 msgid "" "The password to give the server when asked. If your server doesn't require " "authentication, you can leave this blank." msgstr "" #: ../pan/gui/server-ui.cc:336 #, fuzzy msgid "Settings" msgstr "正在取得“%s”" #: ../pan/gui/server-ui.cc:343 msgid "Connection _Limit:" msgstr "連線限制(_L):" #: ../pan/gui/server-ui.cc:347 msgid "After Two Weeks" msgstr "" #: ../pan/gui/server-ui.cc:348 msgid "After One Month" msgstr "" #: ../pan/gui/server-ui.cc:349 msgid "After Two Months" msgstr "" #: ../pan/gui/server-ui.cc:350 msgid "After Three Months" msgstr "" #: ../pan/gui/server-ui.cc:351 msgid "After Six Months" msgstr "" #: ../pan/gui/server-ui.cc:352 #, fuzzy msgid "Never Expire Old Articles" msgstr "永不逾期(_V)" #: ../pan/gui/server-ui.cc:366 msgid "E_xpire Old Articles:" msgstr "" #: ../pan/gui/server-ui.cc:370 #, fuzzy msgid "Primary" msgstr "優先權" #: ../pan/gui/server-ui.cc:371 msgid "Fallback" msgstr "" #: ../pan/gui/server-ui.cc:385 #, fuzzy msgid "Server Rank:" msgstr "伺服器" #: ../pan/gui/server-ui.cc:389 msgid "" "Fallback servers are used for articles that can't be found on the " "primaries. One common approach is to use free servers as primaries and " "subscription servers as fallbacks." msgstr "" #: ../pan/gui/server-ui.cc:396 msgid "Security" msgstr "" #: ../pan/gui/server-ui.cc:401 msgid "Use Plaintext (Unsecured) Connections" msgstr "" #: ../pan/gui/server-ui.cc:402 #, fuzzy msgid "Use Secure SSL Connections" msgstr "無連線" #: ../pan/gui/server-ui.cc:418 msgid "TLS (SSL) Options:" msgstr "" #: ../pan/gui/server-ui.cc:423 msgid "" "You can set the option for using/disabling secure SSL/TLS connections here. " "If you enable SSL/TLS, your data is encrypted and secure. It is encouraged " "to use this option for privacy reasons." msgstr "" #: ../pan/gui/server-ui.cc:428 msgid "Always trust this server's certificate" msgstr "" #: ../pan/gui/server-ui.cc:602 #, c-format msgid "Really delete \"%s\"?" msgstr "" #: ../pan/gui/server-ui.cc:691 msgid "No information available." msgstr "" #: ../pan/gui/server-ui.cc:697 #, c-format msgid "Server Certificate for '%s'" msgstr "" #: ../pan/gui/server-ui.cc:795 #, c-format msgid "Really delete certificate for \"%s\"?" msgstr "" #. dialog #: ../pan/gui/server-ui.cc:822 ../pan/gui/server-ui.cc:843 #: ../pan/gui/server-ui.cc:941 msgid "Servers" msgstr "伺服器" #: ../pan/gui/server-ui.cc:882 #, fuzzy msgid "Remove a Server" msgstr "新聞伺服器" #. dialog #: ../pan/gui/server-ui.cc:915 msgid "SSL Certificates" msgstr "" #: ../pan/gui/server-ui.cc:936 msgid "Certificates" msgstr "" #: ../pan/gui/server-ui.cc:967 msgid "Import Certificate" msgstr "" #: ../pan/gui/server-ui.cc:973 msgid "Inspect Certificate" msgstr "" #: ../pan/gui/server-ui.cc:980 #, fuzzy msgid "Remove Certificate" msgstr "新聞伺服器" #: ../pan/gui/task-pane.cc:143 #, c-format msgid "" "\n" "Upload\n" "\n" "Subject: \"%s\"\n" "From: %s\n" "Groups: %s\n" "Sourcefile: %s\n" msgstr "" #: ../pan/gui/task-pane.cc:155 #, c-format msgid "" "\n" "Download\n" "\n" "Subject: \"%s\"\n" "From: %s\n" "Date: %s\n" "Groups: %s\n" "Save Path: %s\n" msgstr "" #: ../pan/gui/task-pane.cc:157 #, fuzzy msgid "unknown" msgstr "未知" #: ../pan/gui/task-pane.cc:263 msgid "Choose new destination for selected Tasks" msgstr "" #: ../pan/gui/task-pane.cc:417 #, fuzzy, c-format msgid "Pan: Tasks (%d Queued, %d Running, %d Stopped)" msgstr "Pan %s 工作管理程式(%d 個佇列, %d 個執行中, %d 個已停止)" #: ../pan/gui/task-pane.cc:419 #, fuzzy, c-format msgid "Pan: Tasks (%d Queued, %d Running)" msgstr "Pan %s 工作管理程式(%d 個佇列, %d 個執行中)" #: ../pan/gui/task-pane.cc:421 #, fuzzy, c-format msgid "Pan: Tasks" msgstr "Pan: 工作管理程式" #: ../pan/gui/task-pane.cc:446 #, fuzzy, c-format msgid "%lu selected, %s" msgstr "(%u 已選定)" #: ../pan/gui/task-pane.cc:510 msgid "Running" msgstr "執行中" #: ../pan/gui/task-pane.cc:511 #, fuzzy msgid "Decoding" msgstr "正在解碼“%s”" #: ../pan/gui/task-pane.cc:513 msgid "Queued for Decode" msgstr "" #: ../pan/gui/task-pane.cc:514 msgid "Queued for Encode" msgstr "" #: ../pan/gui/task-pane.cc:515 msgid "Queued" msgstr "已佇列" #: ../pan/gui/task-pane.cc:516 msgid "Stopped" msgstr "已停止" #: ../pan/gui/task-pane.cc:517 msgid "Removing" msgstr "移除中" #: ../pan/gui/task-pane.cc:546 #, fuzzy, c-format msgid "%d%% Done" msgstr "% 完成" #: ../pan/gui/task-pane.cc:552 #, fuzzy, c-format msgid "%d:%02d:%02d Remaining (%d @ %lu KiB/s)" msgstr "%d:%02d:%02d (%.2f KB/s)" #: ../pan/gui/task-pane.cc:646 ../pan/gui/task-pane.cc:647 #, fuzzy msgid "Move To Top" msgstr "將選擇的工作移到底部" #: ../pan/gui/task-pane.cc:651 ../pan/gui/task-pane.cc:652 #, fuzzy msgid "Move To Bottom" msgstr "將選擇的工作移到底部" #: ../pan/gui/task-pane.cc:656 ../pan/gui/task-pane.cc:657 #, fuzzy msgid "Stop Task" msgstr "無工作" #: ../pan/gui/task-pane.cc:661 ../pan/gui/task-pane.cc:662 #, fuzzy msgid "Delete Task" msgstr "刪除垃圾郵件" #: ../pan/gui/task-pane.cc:666 ../pan/gui/task-pane.cc:667 #, fuzzy msgid "Restart Task" msgstr "重新啟動選擇的工作" #: ../pan/gui/task-pane.cc:671 ../pan/gui/task-pane.cc:672 msgid "Change Download Destination" msgstr "" #: ../pan/gui/task-pane.cc:729 #, fuzzy msgid "_Online" msgstr "Pan 已上線" #: ../pan/gui/task-pane.cc:746 #, fuzzy msgid "Restart Tasks" msgstr "重新啟動選擇的工作" #: ../pan/gui/task-pane.cc:748 #, fuzzy msgid "Stop Tasks" msgstr "無工作" #: ../pan/gui/task-pane.cc:750 #, fuzzy msgid "Delete Tasks" msgstr "刪除垃圾郵件" #: ../pan/gui/url.cc:123 #, fuzzy, c-format msgid "Error starting URL: %s (Command was: %s)" msgstr "分析“網頁伺服器”命令列時發生錯誤:%s" #: ../pan/tasks/decoder.cc:115 #, fuzzy, c-format msgid "Couldn't save file \"%s\": %s" msgstr "無法讀取簽名檔案“%s”:%s" #: ../pan/tasks/decoder.cc:137 ../pan/tasks/encoder.cc:136 msgid "Error initializing uulib" msgstr "" #: ../pan/tasks/decoder.cc:152 ../pan/tasks/socket-impl-gio.cc:352 #: ../pan/tasks/socket-impl-openssl.cc:634 #, fuzzy, c-format msgid "Error reading from %s: %s" msgstr "讀取通訊埠錯誤:%s" #: ../pan/tasks/decoder.cc:192 #, c-format msgid "Saved \"%s\"" msgstr "儲存“%s”" #: ../pan/tasks/decoder.cc:199 #, fuzzy, c-format msgid "" "Error saving \"%s\":\n" "%s." msgstr "讀取檔案“%s”時發生錯誤:%s" #: ../pan/tasks/decoder.cc:314 ../pan/tasks/task-article.cc:350 #, fuzzy, c-format msgid "Decoding %s" msgstr "正在解碼“%s”" #: ../pan/tasks/encoder.cc:102 ../pan/tasks/encoder.cc:155 #, fuzzy, c-format msgid "Error loading %s from cache." msgstr "讀取通訊端時發生錯誤。" #: ../pan/tasks/encoder.cc:177 #, fuzzy, c-format msgid "Error encoding %s: %s" msgstr "讀取檔案“%s”時發生錯誤:%s" #: ../pan/tasks/encoder.cc:269 #, fuzzy, c-format msgid "Encoding %s" msgstr "字元集(_H):" #: ../pan/tasks/nntp.cc:126 #, c-format msgid "%s requires a username, but none is set." msgstr "" #: ../pan/tasks/nntp.cc:139 #, c-format msgid "%s requires a password, but none is set." msgstr "" #: ../pan/tasks/nntp.cc:205 #, c-format msgid "Sending \"%s\" to %s returned an error: %s" msgstr "" #: ../pan/tasks/nntp.cc:228 #, c-format msgid "Sending \"%s\" to %s returned an unrecognized response: \"%s\"" msgstr "" #: ../pan/tasks/nntp-pool.cc:222 #, fuzzy, c-format msgid "Unable to connect to \"%s\"" msgstr "無法連線到郵件伺服器“%*.*s”" #: ../pan/tasks/socket-impl-gio.cc:173 ../pan/tasks/socket-impl-gio.cc:211 #: ../pan/tasks/socket-impl-openssl.cc:214 #: ../pan/tasks/socket-impl-openssl.cc:252 #, fuzzy, c-format msgid "Error connecting to \"%s\"" msgstr "讀取檔案“%s”時發生錯誤:%s" #: ../pan/tasks/socket-impl-gio.cc:351 ../pan/tasks/socket-impl-openssl.cc:633 #, fuzzy msgid "Unknown Error" msgstr "未知" #: ../pan/tasks/task-article.cc:61 ../pan/tasks/task-article.cc:156 #: ../pan/tasks/task-article.cc:159 #, fuzzy, c-format msgid "Saving %s" msgstr "儲存“%s”" #: ../pan/tasks/task-article.cc:63 #, fuzzy, c-format msgid "Reading %s" msgstr "正在閱讀" #: ../pan/tasks/task-article.cc:322 #, c-format msgid "Article \"%s\" is incomplete -- the news server(s) don't have part %s" msgstr "" #: ../pan/tasks/task-groups.cc:40 #, fuzzy, c-format msgid "Getting group list from \"%s\"" msgstr "從伺服器“%s”取得新群組" #: ../pan/tasks/task-groups.cc:122 #, fuzzy, c-format msgid "Fetched %lu Groups" msgstr "取回 %u 個標頭用於“%s”" #: ../pan/tasks/task-post.cc:35 #, fuzzy, c-format msgid "Posting \"%s\"" msgstr "正在取得“%s”" #: ../pan/tasks/task-post.cc:76 #, fuzzy, c-format msgid "Posting of \"%s\" failed: %s" msgstr "取得文章“%s”內文失敗:%s" #: ../pan/tasks/task-post.cc:81 #, c-format msgid "Posting of \"%s\" succesful: %s" msgstr "" #: ../pan/tasks/task-upload.cc:51 #, fuzzy, c-format msgid "Uploading %s" msgstr "正在閱讀" #: ../pan/tasks/task-upload.cc:249 #, c-format msgid "Uploading %s - Part %d of %d" msgstr "" #: ../pan/tasks/task-upload.cc:251 #, c-format msgid "Uploading Message body with Subject \"%s\"" msgstr "" #: ../pan/tasks/task-upload.cc:308 #, c-format msgid "Posting of File %s (Part %d of %d) failed: No Posts allowed by server." msgstr "" #: ../pan/tasks/task-upload.cc:316 #, fuzzy, c-format msgid "Posting of File %s (Part %d of %d) failed: %s" msgstr "取得文章“%s”內文失敗:%s" #: ../pan/tasks/task-upload.cc:326 ../pan/tasks/task-upload.cc:333 #, c-format msgid "Posting of file %s (Part %d of %d) succesful: %s" msgstr "" #: ../pan/tasks/task-upload.cc:343 #, fuzzy, c-format msgid "Posting of file %s succesful: %s" msgstr "取得文章“%s”內文失敗:%s" #: ../pan/tasks/task-upload.cc:347 #, c-format msgid "" "Posting of file %s not completely successful: Check the log (right-click on " "list item) !" msgstr "" #: ../pan/tasks/task-upload.cc:364 #, c-format msgid "" "Posting of file %s not successful: Check the log (right-click on list item) !" msgstr "" #: ../pan/tasks/task-xover.cc:79 #, c-format msgid "Getting all headers for \"%s\"" msgstr "取得“%s”的所有標頭" #: ../pan/tasks/task-xover.cc:81 #, c-format msgid "Getting new headers for \"%s\"" msgstr "取得“%s”的新標頭" #. SAMPLE #: ../pan/tasks/task-xover.cc:83 #, c-format msgid "Sampling headers for \"%s\"" msgstr "取樣“%s”的標頭" #: ../pan/tasks/task-xover.cc:369 #, fuzzy, c-format msgid "%s (%lu parts, %lu articles)" msgstr " (%lu 行於 %lu 文章)" #: ../pan/tasks/task-xoverinfo.cc:78 #, fuzzy, c-format msgid "Getting header counts for \"%s\"" msgstr "取得“%s”的所有標頭" #: ../pan/usenet-utils/filter-info.cc:163 #, fuzzy msgid "article doesn't have attachments" msgstr "文章沒有完整的附加檔案" #: ../pan/usenet-utils/filter-info.cc:167 #, fuzzy msgid "the article has attachments" msgstr "文章沒有附加檔案" #: ../pan/usenet-utils/filter-info.cc:171 #, fuzzy msgid "the article isn't cached locally" msgstr "文章內文沒有本地端快取" #: ../pan/usenet-utils/filter-info.cc:175 #, fuzzy msgid "the article is cached locally" msgstr "文章內文有本地端快取" #: ../pan/usenet-utils/filter-info.cc:179 #, fuzzy msgid "the article wasn't posted by you" msgstr "文章並非由我張貼" #: ../pan/usenet-utils/filter-info.cc:183 #, fuzzy msgid "the article was posted by you" msgstr "文章是由我張貼" #: ../pan/usenet-utils/filter-info.cc:187 #, fuzzy msgid "the article has been read" msgstr "文章是未讀" #: ../pan/usenet-utils/filter-info.cc:191 #, fuzzy msgid "the article hasn't been read" msgstr "文章是未讀" #: ../pan/usenet-utils/filter-info.cc:195 #, fuzzy, c-format msgid "the article is less than %ld bytes long" msgstr "文章長度小於 %d 位元組" #: ../pan/usenet-utils/filter-info.cc:200 #, fuzzy, c-format msgid "the article is at least %ld bytes long" msgstr "文章長度小於 %d 位元組" #: ../pan/usenet-utils/filter-info.cc:205 #, fuzzy, c-format msgid "the article is less than %ld lines long" msgstr "文章長度少於 %d 行" #: ../pan/usenet-utils/filter-info.cc:210 #, fuzzy, c-format msgid "the article is at least %ld lines long" msgstr "文章長度少於 %d 行" #: ../pan/usenet-utils/filter-info.cc:215 #, fuzzy, c-format msgid "the article is less than %ld days old" msgstr "文章早於 %d 天" #: ../pan/usenet-utils/filter-info.cc:220 #, fuzzy, c-format msgid "the article is at least %ld days old" msgstr "文章最少 N 天前(_O)" #: ../pan/usenet-utils/filter-info.cc:225 #, fuzzy, c-format msgid "the article was posted to less than %ld groups" msgstr "文章交叉張貼少於 %d 個群組" #: ../pan/usenet-utils/filter-info.cc:230 #, fuzzy, c-format msgid "the article was posted to at least %ld groups" msgstr "文章最少張貼到 N 個群組(_P):" #: ../pan/usenet-utils/filter-info.cc:235 #, fuzzy, c-format msgid "the article's score is less than %ld" msgstr "設定分數為" #: ../pan/usenet-utils/filter-info.cc:240 #, fuzzy, c-format msgid "the article's score is %ld or higher" msgstr "設定分數為" #: ../pan/usenet-utils/filter-info.cc:249 #: ../pan/usenet-utils/filter-info.cc:259 #, fuzzy, c-format msgid "%s doesn't contain \"%s\"" msgstr "不包含" #: ../pan/usenet-utils/filter-info.cc:250 #: ../pan/usenet-utils/filter-info.cc:260 #, c-format msgid "%s isn't \"%s\"" msgstr "" #: ../pan/usenet-utils/filter-info.cc:251 #: ../pan/usenet-utils/filter-info.cc:261 #, fuzzy, c-format msgid "%s doesn't begin with \"%s\"" msgstr "結尾不是" #: ../pan/usenet-utils/filter-info.cc:252 #: ../pan/usenet-utils/filter-info.cc:262 #, fuzzy, c-format msgid "%s doesn't end with \"%s\"" msgstr "結尾不是" #: ../pan/usenet-utils/filter-info.cc:253 #: ../pan/usenet-utils/filter-info.cc:263 #, c-format msgid "%s doesn't match the regex \"%s\"" msgstr "" #: ../pan/usenet-utils/filter-info.cc:275 #, fuzzy, c-format msgid "%s contains \"%s\"" msgstr "包含" #: ../pan/usenet-utils/filter-info.cc:276 #, c-format msgid "%s is \"%s\"" msgstr "" #: ../pan/usenet-utils/filter-info.cc:277 #, c-format msgid "%s begins with \"%s\"" msgstr "" #: ../pan/usenet-utils/filter-info.cc:278 #, fuzzy, c-format msgid "%s ends with \"%s\"" msgstr "結尾為" #: ../pan/usenet-utils/filter-info.cc:279 #, fuzzy, c-format msgid "%s matches the regex \"%s\"" msgstr "符合正規表示式" #: ../pan/usenet-utils/filter-info.cc:285 msgid "Any of these tests fail:" msgstr "" #: ../pan/usenet-utils/filter-info.cc:292 msgid "All of these tests pass:" msgstr "" #: ../pan/usenet-utils/filter-info.cc:299 msgid "None of these tests pass:" msgstr "" #: ../pan/usenet-utils/filter-info.cc:306 msgid "Any of these tests pass:" msgstr "" #: ../pan/usenet-utils/gnksa.cc:878 #, c-format msgid "No email address provided; generating message-id with domain \"%s\"" msgstr "沒有提供電子郵件位址:以網域“%s”產生郵件-id" #: ../pan/usenet-utils/message-check.cc:124 #, fuzzy msgid "Warning: Reply seems to be top-posted." msgstr "警告:回覆可能成為頂層張貼。" #: ../pan/usenet-utils/message-check.cc:145 #, fuzzy msgid "Warning: The signature marker should be \"-- \", not \"--\"." msgstr "警告:簽名檔的標記應該是“-- ”,而不是“--”。" #: ../pan/usenet-utils/message-check.cc:162 #, fuzzy msgid "Warning: Signature prefix with no signature." msgstr "警告:簽名檔前綴並非 signature。" #: ../pan/usenet-utils/message-check.cc:167 #, fuzzy msgid "Warning: Signature is more than 4 lines long." msgstr "警告:簽名檔超過 4 行" #: ../pan/usenet-utils/message-check.cc:172 #, fuzzy msgid "Warning: Signature is more than 80 characters wide." msgstr "警告:簽名檔寬度超過 80 個字元。" #: ../pan/usenet-utils/message-check.cc:198 #, fuzzy, c-format msgid "Warning: %d line is more than 80 characters wide." msgid_plural "Warning: %d lines are more than 80 characters wide." msgstr[0] "警告:簽名檔 %d 行寬度超過 80 個字元。" msgstr[1] "警告:簽名檔 %d 行寬度超過 80 個字元。" #: ../pan/usenet-utils/message-check.cc:223 #, fuzzy msgid "Error: Message is empty." msgstr "錯誤:郵件是空的。" #: ../pan/usenet-utils/message-check.cc:258 #, fuzzy msgid "Warning: The message is entirely quoted text!" msgstr "警告:郵件完全為引用的文字!" #: ../pan/usenet-utils/message-check.cc:259 #, fuzzy msgid "Warning: The message is mostly quoted text." msgstr "警告:郵件大部分是引用的文字!" #: ../pan/usenet-utils/message-check.cc:309 #, fuzzy msgid "Error: Message appears to have no new content." msgstr "錯誤:郵件似乎沒有新的內容。" #: ../pan/usenet-utils/message-check.cc:344 #: ../pan/usenet-utils/message-check.cc:383 #, c-format msgid "" "Warning: The posting profile's server doesn't carry newsgroup\n" "\t\"%s\".\n" "\tIf the group name is correct, switch profiles in the \"From:\"\n" "\tline or edit the profile with \"Edit|Manage Posting Profiles\"." msgstr "" #: ../pan/usenet-utils/message-check.cc:355 #, fuzzy msgid "Warning: Following-Up to too many groups." msgstr "警告:追蹤太多群組。" #: ../pan/usenet-utils/message-check.cc:366 #, fuzzy msgid "Error: No Subject specified." msgstr "錯誤:沒有指定主旨。" #: ../pan/usenet-utils/message-check.cc:395 #, fuzzy, c-format msgid "Warning: Group \"%s\" is read-only." msgstr "警告:群組“%*.*s”是唯讀的。" #: ../pan/usenet-utils/message-check.cc:404 #, fuzzy msgid "Error: Posting to a very large number of groups." msgstr "錯誤:正張貼到數量非常大的群組。" #: ../pan/usenet-utils/message-check.cc:409 #, fuzzy msgid "Warning: Posting to a large number of groups." msgstr "警告:正張貼到數量很大的群組。" #: ../pan/usenet-utils/message-check.cc:416 #, fuzzy msgid "Warning: Crossposting without setting Followup-To header." msgstr "警告:交叉張貼卻沒有設定追蹤。" #: ../pan/usenet-utils/message-check.cc:441 #, fuzzy msgid "Error: Bad email address." msgstr "電子郵件位址(_E):" #: ../pan/usenet-utils/message-check.cc:450 msgid "Warning: Most newsgroups frown upon HTML posts." msgstr "" #: ../pan/usenet-utils/message-check.cc:486 #, fuzzy msgid "Error: No Recipients." msgstr "錯誤:沒有指定主旨。" #: ../pan/usenet-utils/scorefile.cc:304 #, fuzzy, c-format msgid "" "Error reading score in %*.*s, line %d: expected 'Expires: MM/DD/YYYY' or " "'Expires: DD-MM-YYYY'." msgstr "預期“到期:MM/DD/YYYY”或“到期:DD-MM-YYYY”" #: ../pan/usenet-utils/scorefile.cc:307 #, c-format msgid "Expired old score from %*.*s, line %d" msgstr "" #: ../pan/usenet-utils/scorefile.cc:380 #, c-format msgid "Error reading score in %*.*s, line %d: unexpected line." msgstr "" #: ../pan/usenet-utils/scorefile.cc:428 #, c-format msgid "Read %lu scoring rules in %lu sections from \"%s\"" msgstr "" #: ../pan/usenet-utils/ssl-utils.h:199 #, fuzzy, c-format msgid "Error printing the server certificate for '%s'" msgstr "分析“網頁伺服器”命令列時發生錯誤:%s" #: ../pan/usenet-utils/ssl-utils.h:216 #, c-format msgid "" "The current server '%s' sent this security certificate :\n" "\n" msgstr "" #: ../pan/usenet-utils/ssl-utils.h:217 #, c-format msgid "" "Certificate information for server '%s' :\n" "\n" msgstr "" #: ../pan/usenet-utils/ssl-utils.h:219 #, c-format msgid "" "%sIssuer information:\n" "%s\n" "Valid until : %s\n" "\n" "Not valid before : %s\n" "\n" msgstr "" #: ../pan/usenet-utils/text-massager.cc:397 msgid "> [quoted text muted]" msgstr ">[引言文字靜音]" #~ msgid "Read News from Usenet" #~ msgstr "從 Usenet 讀取新聞" #, fuzzy #~ msgid "_Toggle Flag on for Thread" #~ msgstr "/觀看相關主題(_W)" #, fuzzy #~ msgid "Error!" #~ msgstr "錯誤" #, fuzzy #~ msgid "Signer : " #~ msgstr "簽名檔(_S):" #, fuzzy #~ msgid "_Signature:" #~ msgstr "簽名檔(_S):" #, fuzzy #~ msgid "Creating directory \"%s\"" #~ msgstr "開啟目錄“%s”時發生錯誤:%s)" #~ msgid "Couldn't create directory \"%s\": %s" #~ msgstr "無法建立目錄“%s”:%s" #, fuzzy #~ msgid "" #~ "Your copy of libpcre doesn't support UTF-8. UTF-8 regular expressions " #~ "may fail." #~ msgstr "您系統中的 libpcre 並不支援 UTF-8。 UTF-8 正規表示式可能會失敗。" #~ msgid "Can't use regular expression \"%s\": %s at position %d" #~ msgstr "不能使用正規表示式“%s”:%s 於地點 %d" #, fuzzy #~ msgid "_Groups" #~ msgstr "群組" #, fuzzy #~ msgid "Read Selected Group" #~ msgstr "閱讀下個未讀群組" #, fuzzy #~ msgid "_Mark Group _Read" #~ msgstr "/將群組標記為已讀(_R)" #, fuzzy #~ msgid "_Delete Group's Articles" #~ msgstr "/刪除群組的文章(_D)" #, fuzzy #~ msgid "Get New Headers for Selected Groups" #~ msgstr "取得已選擇群組的新標頭" #, fuzzy #~ msgid "Get New Headers for Subscribed Groups" #~ msgstr "取得已訂閱群組的新標頭" #, fuzzy #~ msgid "Get Headers from Server" #~ msgstr "取得 %d 個群組於伺服器“%s”" #, fuzzy #~ msgid "Get a new Group list from the Server" #~ msgstr "取得 %d 個新群組於伺服器“%s”" #, fuzzy #~ msgid "Subscribe to Selected Groups" #~ msgstr "訂閱的新聞群組" #, fuzzy #~ msgid "Unsubscribe from Selected Groups" #~ msgstr "訂閱的新聞群組" #, fuzzy #~ msgid "Save Selected Articles..." #~ msgstr "取得已選定的文章" #~ msgid "Cancel Last Task" #~ msgstr "取消上次工作" #, fuzzy #~ msgid "Clear Header Pane" #~ msgstr "標頭窗格" #, fuzzy #~ msgid "Clear Body Pane" #~ msgstr "內文窗格(_Y)" #, fuzzy #~ msgid "Download _Selected Article" #~ msgstr "正在下載 1 篇文章" #, fuzzy #~ msgid "Download Selected Article" #~ msgstr "正在下載 1 篇文章" #, fuzzy #~ msgid "Read _Selected Article" #~ msgstr "閱讀下封未讀文章" #, fuzzy #~ msgid "Next Unread Group" #~ msgstr "/移至(_G)/下個未讀群組(_G)" #, fuzzy #~ msgid "Next Group" #~ msgstr "/移至(_G)/下個群組(_E)" #, fuzzy #~ msgid "Next Watched Article" #~ msgstr "/移至(_G)/下篇監控文章(_W)" #, fuzzy #~ msgid "Next Thread" #~ msgstr "/移至(_G)/下篇相關主題(_D)" #, fuzzy #~ msgid "Previous Article" #~ msgstr "/移至(_G)/前一篇文章(_V)" #, fuzzy #~ msgid "Previous Thread" #~ msgstr "/移至(_G)/前一篇相關主題" #, fuzzy #~ msgid "Parent Article" #~ msgstr "/移至(_G)/上層文章(_P)" #, fuzzy #~ msgid "_Plonk Author" #~ msgstr "/文章(_A)/阻擋作者(_P)" #, fuzzy #~ msgid "Mark Article as Read" #~ msgstr "文章是已讀" #, fuzzy #~ msgid "Mark Article as Unread" #~ msgstr "文章是未讀" #, fuzzy #~ msgid "Reply to Author" #~ msgstr "/文章(_A)/阻擋作者(_P)" #, fuzzy #~ msgid "_About..." #~ msgstr "/說明(_H)/關於(_A)..." #, fuzzy #~ msgid "Abbreviate _Names in Group Pane" #~ msgstr "/檢視(_V)/群組窗格中的縮寫名稱(_N)" #, fuzzy #~ msgid "Match Only Articles Posted by Me" #~ msgstr "只比對我的文章" #, fuzzy #~ msgid "Central European (ISO-8859-2)" #~ msgstr "中歐" #, fuzzy #~ msgid "Central European (Windows-1250)" #~ msgstr "中歐" #, fuzzy #~ msgid "Chinese Simplified (gb2312)" #~ msgstr "簡體中文" #, fuzzy #~ msgid "Chinese Traditional (big5)" #~ msgstr "繁體中文" #, fuzzy #~ msgid "Cyrillic (KOI8-R)" #~ msgstr "斯拉夫語" #, fuzzy #~ msgid "Cyrillic, Ukrainian (KOI8-U)" #~ msgstr "斯拉夫語,烏克蘭" #, fuzzy #~ msgid "Western, New (ISO-8859-15)" #~ msgstr "西歐,新式" #, fuzzy #~ msgid "Unicode (UTF-8)" #~ msgstr "Unicode, UTF-8" #, fuzzy #~ msgid "Pan: " #~ msgstr "Pan: 規則" #, fuzzy #~ msgid "Group Name" #~ msgstr "群組窗格" #, fuzzy #~ msgid "Pan: %s" #~ msgstr "Pan: 規則" #~ msgid "Tasks: %u/%u" #~ msgstr "工作: %u/%u" #~ msgid "%u Tasks Running, %u Tasks Total" #~ msgstr "%u 項工作執行中,全部 %u 項工作" #, fuzzy #~ msgid "Wrap the Article Body to 80 Columns" #~ msgstr "/檢視(_V)/文章內文折行(_W)" #, fuzzy #~ msgid "_Close" #~ msgstr "色彩" #, fuzzy #~ msgid "Close Window" #~ msgstr "關閉紀錄視窗" #, fuzzy #~ msgid "Cut Text" #~ msgstr "引用的文字:" #, fuzzy #~ msgid "Copy Text" #~ msgstr "文字折行" #, fuzzy #~ msgid "_Paste" #~ msgstr "張貼(_P)" #, fuzzy #~ msgid "Paste Text" #~ msgstr "儲存文字(_X)" #, fuzzy #~ msgid "Manage Posting Pr_ofiles..." #~ msgstr "/工具(_T)/張貼規畫檔案(_P)..." #~ msgid "Western" #~ msgstr "西歐" #, fuzzy #~ msgid "Error loading post.ui: \"%s\"" #~ msgstr "讀取通訊埠錯誤:%s" #, fuzzy #~ msgid "Editors" #~ msgstr "編輯器" #, fuzzy #~ msgid "Posting Article" #~ msgstr "張貼文章“%s”" #, fuzzy #~ msgid "Add a New Profile" #~ msgstr "加入新規畫檔案" #~ msgid "Edit the selected profile" #~ msgstr "編輯選定的規畫檔案" #~ msgid "Remove the selected profile" #~ msgstr "移除選定的規畫檔案" #, fuzzy #~ msgid "Threads" #~ msgstr "已讀相關主題(_R):" #, fuzzy #~ msgid "Path" #~ msgstr "組件" #, fuzzy #~ msgid "_Path:" #~ msgstr "張貼(_P)" #, fuzzy #~ msgid "Group Management" #~ msgstr "群組窗格" #, fuzzy #~ msgid "Pan: New Scoring Rule" #~ msgstr "Pan: 編輯規則" #, fuzzy #~ msgid "Then" #~ msgstr "感謝" #, fuzzy #~ msgid "For" #~ msgstr "資料夾" #, fuzzy #~ msgid "Name: \"%s\"" #~ msgstr "儲存“%s”" #, fuzzy #~ msgid "Pan: Add a Server" #~ msgstr "Pan: 編輯伺服器" #, fuzzy #~ msgid "Pan: Edit a Server's Settings" #~ msgstr "Pan: 編輯伺服器" #~ msgid "Pan: Servers" #~ msgstr "Pan: 伺服器" #, fuzzy #~ msgid "to %s" #~ msgstr "關於 %s" #~ msgid "Status" #~ msgstr "狀態" #, fuzzy #~ msgid "Unable to set group: %s" #~ msgstr "無法取得群組“%*.*s”:%s" #, fuzzy #~ msgid "Making a new connection to %*.*s" #~ msgstr "新的連線 %p 於 %*.*s,連接埠 %d" #, fuzzy #~ msgid "Couldn't load \"%s\": %s" #~ msgstr "無法建立目錄“%s”:%s" #, fuzzy #~ msgid "" #~ "Error saving \"%s\":\n" #~ "%s. %s" #~ msgstr "讀取檔案“%s”時發生錯誤:%s" #, fuzzy #~ msgid "Warning: Unknown group \"%s\"." #~ msgstr "警告:未知的群組:“%*.*s”" #, fuzzy #~ msgid "_Posting" #~ msgstr "張貼(_P)" #, fuzzy #~ msgid "Post New Article" #~ msgstr "文章(_A)" #, fuzzy #~ msgid "Follow-up to Article" #~ msgstr "追蹤新聞群組" #, fuzzy #~ msgid "_Post Article" #~ msgstr "文章(_A)" #, fuzzy #~ msgid "Post this Article Now" #~ msgstr "張貼文章“%s”" #, fuzzy #~ msgid "Error: No Newsgroups specified." #~ msgstr "錯誤:沒有指定收件者。" #, fuzzy #~ msgid "Message-Id" #~ msgstr "郵件-ID" #, fuzzy #~ msgid "Saved newsrc files in %.1f seconds" #~ msgstr "儲存 %d 篇文章於“%s”,費時 %.1f 秒(%.0f 文章/秒)" #, fuzzy #~ msgid "Use _Monospace Font in Body Pane" #~ msgstr "/檢視(_V)/內文窗格中單一寬度字型(_M)" #, fuzzy #~ msgid "%d connections totaling %.1f KiB per second" #~ msgstr "%d 連線總計 %.1f KB 每秒" #~ msgid "" #~ "Used when email replies to your posts should go somewhere other than the " #~ "email address above. Because Reply-To: is relatively difficult for " #~ "spammers to harvest, it's polite give your email address here if you gave " #~ "an invalid email address above." #~ msgstr "" #~ "使用於當以電子郵件回覆您張貼文章時要寄到不同於上列電子郵件位址。因為 回覆" #~ "到: 對垃圾郵件發送者而言是較難收集的,如果您在上面提供了無效的電子郵件, " #~ "在此可輸入您的電子郵件。" #~ msgid "_Reply-To Header:" #~ msgstr "回覆到 標頭(_R):" #~ msgid "Or_ganization Header:" #~ msgstr "組織標頭(_G):" #, fuzzy #~ msgid "Attach this _Signature:" #~ msgstr "簽名檔:" #~ msgid "Automatic Downloads" #~ msgstr "自動下載" #, fuzzy #~ msgid "Save a_ttachments to path:" #~ msgstr "儲存附加檔案於:" #~ msgid "UNKNOWN" #~ msgstr "未知" #, fuzzy #~ msgid "Decode can't access directory \"%s\"" #~ msgstr "解碼不能存取路徑“%s”" #~ msgid "Could not decode article - file may be corrupt/incomplete" #~ msgstr "無法為文章解碼 - 檔案可能損毀/不完整" #~ msgid "Checksum for `%s' part %d failed - file is corrupt" #~ msgstr "“%s”的總和檢查碼中 %d 部分失敗 - 檔案已損毀" #~ msgid "Checksum for `%s' failed - file may be corrupt" #~ msgstr "“%s”的總和檢查碼失敗 - 檔案可能損毀" #, fuzzy #~ msgid "Use custom colors in _Header Pane" #~ msgstr "在標頭窗格中使用自訂字型:" #, fuzzy #~ msgid "Header Pane background:" #~ msgstr "標頭窗格分數" #, fuzzy #~ msgid "Unread articles:" #~ msgstr "未讀相關主題(_U):" #, fuzzy #~ msgid "" #~ "Unsupported data version (%d) for server properties. Are you running an " #~ "old version of Pan by accident?" #~ msgstr "" #~ "不支援的資料版本 %d 於“%s”資料檔案。\n" #~ "您是否執行了舊版本的 Pan?" #, fuzzy #~ msgid "Couldn't create temporary file: %s" #~ msgstr "無法建立暫存檔案:%s" #~ msgid "Error renaming \"%s\" as \"%s\": %s." #~ msgstr "將“%s”更名為“%s”時錯誤:%s。" #~ msgid "Can't backup \"%s\" as \"%s\": %s" #~ msgstr "不能將“%s”備份為“%s”:%s" #~ msgid "Can't write to \"%s\": %s" #~ msgstr "不能寫入“%s”:%s" #~ msgid "Body" #~ msgstr "內文" #, fuzzy #~ msgid "Open a Draft Article from Disk" #~ msgstr "設定 %u 篇文章過期於“%s”中" #, fuzzy #~ msgid "subject" #~ msgstr "主旨" #, fuzzy #~ msgid "author" #~ msgstr "作者" #~ msgid "Change" #~ msgstr "改變" #~ msgid "Connections" #~ msgstr "連線" #, fuzzy #~ msgid "Active" #~ msgstr "動作" #~ msgid "" #~ "Unable to cancel article: Couldn't find matching article in folder `pan." #~ "sent'!" #~ msgstr "無法取消文章:無法在資料夾“pan.sent”找到符合的文章!" #~ msgid "" #~ "Unable to supersede article: Couldn't find matching article in folder " #~ "`pan.sent'!" #~ msgstr "無法替換文章:無法在資料夾“pan.sent”找到符合的文章!" #~ msgid "You must download the article before you can cancel it." #~ msgstr "在您取消文章之前必須先下載它。" #~ msgid "You must download the article before you can supersede it." #~ msgstr "在您替換文章之前必須先下載它。" #~ msgid "Pan: Find Article" #~ msgstr "Pan: 尋找文章" #~ msgid "_Author:" #~ msgstr "作者(_A):" #~ msgid "Case Sensiti_ve" #~ msgstr "區分大小寫(_V)" #~ msgid "_Unread Only" #~ msgstr "只有未讀的(_U)" #~ msgid "Fin_d:" #~ msgstr "尋找(_D):" #~ msgid "" #~ "Type in a search string and press ENTER.\n" #~ "Wildcards are allowed." #~ msgstr "" #~ "輸入搜尋字串並按下 ENTER。\n" #~ "可以使用萬用字元。" #~ msgid "/---" #~ msgstr "/---" #~ msgid "/Save A_ttachments" #~ msgstr "/儲存附加檔案(_T)" #~ msgid "/_Manual Decode..." #~ msgstr "/手動解碼(_M)..." #~ msgid "/D_ownload Flagged" #~ msgstr "/下載具旗標的(_O)" #~ msgid "/_Flag" #~ msgstr "/旗標(_F)" #~ msgid "/_Unflag" #~ msgstr "/解除旗標(_U)" #~ msgid "/_Create Score" #~ msgstr "/建立分數(_C)" #~ msgid "/Add S_et to Selection" #~ msgstr "/在選擇區加入設定(_E)" #~ msgid "/_Copy to Folder" #~ msgstr "/複製到資料夾(_C)" #~ msgid "/_Delete" #~ msgstr "/刪除(_D)" #~ msgid "Scoring Articles" #~ msgstr "正在為文章排序" #~ msgid "Filtering Articles" #~ msgstr "正在過濾文章" #~ msgid "Updating Header Pane..." #~ msgstr "正在更新標頭窗格..." #~ msgid "Loading group \"%s\"" #~ msgstr "讀取群組“%s”" #~ msgid "Flushing article cache... " #~ msgstr "清理文章快取..." #~ msgid "%d files erased." #~ msgstr "%d 個檔案已抹除。" #~ msgid "Error saving article \"%s\" (is %s full?)" #~ msgstr "儲存文章“%s”時發生錯誤(%s 是否已滿?)" #~ msgid "Directory \"%s\" contains %.1f MB in %d files" #~ msgstr "目錄“%s”包含 %.1f MB 於 %d 個檔案" #~ msgid "Unparseable Subject" #~ msgstr "無法解析的主旨" #~ msgid "Couldn't parse a Message-ID from the raw message!" #~ msgstr "無法自原始郵件中解析郵件-ID!" #~ msgid "unknown@spammesenseless.com" #~ msgstr "unknown@spammesenseless.com" #~ msgid "Can't create file \"%s\" %s" #~ msgstr "不能建立檔案“%s”%s" #~ msgid "Error saving file \"%s\" - is the disk full?" #~ msgstr "儲存檔案“%s”時發生錯誤 - 磁碟是否已滿?" #~ msgid "Decoded \"%s\" from group \"%*.*s\", \"%s\"" #~ msgstr "解碼“%s”於群組“%*.*s”,“%s”" #~ msgid "Loading %u of %d groups" #~ msgstr "載入 %u 於 %d 群組" #~ msgid "" #~ "Skipped %d groups due to possible corruption in \"%s\" and \"%s\". You " #~ "may want to delete these files and get a new grouplist from your news " #~ "server." #~ msgstr "" #~ "忽略 %d 群組,因為“%s”與“%s”可能損毀。您可能要 刪除這些檔案並從您的新聞伺" #~ "服器取得新的群組清單。" #~ msgid "Loaded %d groups for server \"%s\" in %.1f seconds (%.0f groups/sec)" #~ msgstr "載入 %d 於伺服器“%s”,費時 %.1f 秒(%.0f 群組/秒)" #~ msgid "Saved %d of %u groups" #~ msgstr "儲存 %d / %u 群組" #~ msgid "Error saving list of groups to \"%s\" - is the disk full?" #~ msgstr "儲存群組清單為“%s”時發生錯誤 - 磁碟是否已滿?" #~ msgid "Saved %d groups in \"%s\" in %.1f seconds (%.0f groups/sec)" #~ msgstr "儲存 %d 群組於“%s”,費時 %.1f 秒(%.0f 群組/秒)" #~ msgid "Loaded %d of %d articles" #~ msgstr "載入 %d / %d 文章" #~ msgid "" #~ "Pan skipped %d corrupt headers from the local cache for group \"%*.*s\"." #~ msgstr "Pan 忽略了 %d 損毀的標頭於群組“%*.*s”的本地快取中。" #~ msgid "You may want to empty this group and download fresh headers." #~ msgstr "您可能會想清空這個群組並下載最新的標頭。" #~ msgid "The group will not be saved -- can't create file \"%s\"" #~ msgstr "此群組將不會被儲存 -- 不能建立檔案“%s”" #~ msgid "Unable to save headers for group \"%*.*s\" - is the disk full?" #~ msgstr "無法儲存群組“%*.*s”的標頭 - 磁碟是否已滿?" #~ msgid "(No Group)" #~ msgstr "(沒有群組)" #~ msgid "ERROR: invalid address \"%s\"" #~ msgstr "錯誤:無效的位址“%s”" #~ msgid "ERROR: Must have one author in From: line" #~ msgstr "錯誤:在寄件者:此行必須填寫作者" #~ msgid "Imported %d groups (%d new) from \"%s\"" #~ msgstr "匯入 %d 個群組(%d 個新群組)於“%s”" #~ msgid "Exported %d groups (%d subscribed) to \"%s\"" #~ msgstr "匯出 %d 個群組(%d 個已訂閱)至“%s”" #~ msgid "Imported %d lines from Gnome config file" #~ msgstr "從 Gnome 設定檔案匯入 %d 行" #~ msgid "%s does not appear to be a valid datafile" #~ msgstr "%s 似乎不是有效的資料檔案" #~ msgid "Error converting string \"%*s\" to utf8: %d - %s" #~ msgstr "轉換“%*s”至 utf8 時錯誤:%d - %s" #~ msgid "No name specified!" #~ msgstr "沒有指定名稱!" #~ msgid "Server is corrupt" #~ msgstr "伺服器損毀" #~ msgid "A newsreader for GNOME" #~ msgstr "GNOME 的新聞閱讀器" #~ msgid "Programmer" #~ msgstr "程式設計者" #~ msgid "Project Originator, Programmer" #~ msgstr "計畫原作者,程式設計者" #~ msgid "Programmer, 0.6 - 0.7" #~ msgstr "程式設計者,0.6 - 0.7" #~ msgid "" #~ "Pan %s Translations\n" #~ "%s\n" #~ "\n" #~ "Pan %s Code or Patches\n" #~ "%s\n" #~ "\n" #~ "Pan %s Suggestions and Testing\n" #~ "%s\n" #~ msgstr "" #~ "Pan %s 翻譯者\n" #~ "%s\n" #~ "\n" #~ "Pan %s 撰碼或修正\n" #~ "%s\n" #~ "\n" #~ "Pan %s 建議與修正\n" #~ "%s\n" #~ msgid "_Directory for saving articles:" #~ msgstr "儲存文章的目錄(_D):" #~ msgid "Default charse_t:" #~ msgstr "預設字集(_T):" #~ msgid "Pan: Download Headers for group `%s'" #~ msgstr "Pan: 下載群組“%s”的標頭" #~ msgid "Pan: Download Headers" #~ msgstr "Pan: 下載標頭" #~ msgid "Download _new headers" #~ msgstr "下載新標頭(_N)" #~ msgid "_Download bodies too" #~ msgstr "同時下載內文(_D)" #~ msgid "How should you appear when posting articles?" #~ msgstr "當您張貼文章時要如何顯?" #~ msgid "Your _Name:" #~ msgstr "您的名稱(_N):" #~ msgid "Email _Address:" #~ msgstr "電子郵件位址(_A):" #~ msgid "_Organization:" #~ msgstr "組織(_O):" #~ msgid "default" #~ msgstr "預設" #~ msgid "What mail server should Pan use?" #~ msgstr "Pan 應該使用哪個郵件伺服器?" #~ msgid "What news server should Pan use?" #~ msgstr "Pan 應該使用哪個新聞伺服器?" #~ msgid "Short name for Pan to show, e.g. \"mynewsserver\"" #~ msgstr "給 Pan 顯示用的簡短名稱。例如“mynewsserver”" #~ msgid "Short _name for Pan to show:" #~ msgstr "給 Pan 顯示用的簡短名稱(_N):" #~ msgid "Login" #~ msgstr "登入" #~ msgid "Server requires authori_zation" #~ msgstr "伺服器需要授權(_Z)" #~ msgid "Pan Setup Wizard" #~ msgstr "Pan 設定精靈" #~ msgid "Thank you for trying Pan!" #~ msgstr "謝謝您嘗試 Pan!" #~ msgid "" #~ "Thank you for trying Pan!\n" #~ " \n" #~ "If you are new to Usenet,\n" #~ "%s\n" #~ "is a starting point to see what Usenet is,\n" #~ "where to find a free news server,\n" #~ "and how to use Pan.\n" #~ " \n" #~ "Since this is your first time running Pan,\n" #~ "we'll need to gather some information.\n" #~ msgstr "" #~ "謝謝您嘗試 Pan!\n" #~ " \n" #~ "如果您對 Usenet 還不熟,\n" #~ "%s\n" #~ "是個了解 Usenet 是什麼、到哪裡找\n" #~ "免費的新聞伺服器,與如何使用 Pan \n" #~ "的好起點。\n" #~ " \n" #~ "因為這是您第一次執行 Pan,\n" #~ "我們需要收集一些資訊。\n" #~ msgid "About You" #~ msgstr "關於您" #~ msgid "News Server" #~ msgstr "新聞伺服器" #~ msgid "Ready!" #~ msgstr "完成!" #~ msgid "" #~ "You have successfully entered all of\n" #~ "the information required to set up Pan.\n" #~ "\n" #~ "To save these settings, click Save." #~ msgstr "" #~ "您已經成功的輸入所有\n" #~ "設定 Pan 需要的資訊。\n" #~ "\n" #~ "要儲存這些設定值,請按儲存。" #~ msgid "License" #~ msgstr "授權" #~ msgid "Authors" #~ msgstr "作者" #~ msgid "Thanks to" #~ msgstr "感謝" #~ msgid " (No conditions -- no articles will match)" #~ msgstr " (沒有條件 -- 不會監控任何文章)" #~ msgid " (No conditions -- all articles will match)" #~ msgstr " (沒有條件 -- 監控全部文章)" #~ msgid "Pan: Edit Filter" #~ msgstr "Pan: 編輯過濾器" #~ msgid "Filter name: " #~ msgstr "過濾器名稱:" #~ msgid "Show in Filter Menu" #~ msgstr "顯示過濾器選單" #~ msgid "Move the selected line up one line" #~ msgstr "將選定的行上移一行" #~ msgid "Move the selected line down one line" #~ msgstr "將選定的行下移一行" #~ msgid "Invert" #~ msgstr "倒轉" #~ msgid "All Of" #~ msgstr "所有" #~ msgid "Any Of" #~ msgstr "任一" #~ msgid "Delete the selected line" #~ msgstr "刪除選定的行" #~ msgid "Add New Line to the Filter" #~ msgstr "加入新的一行到過濾器" #~ msgid "New Filter Line" #~ msgstr "新增過濾器行" #~ msgid "does not start with" #~ msgstr "開頭不是" #~ msgid "does not match regular expression" #~ msgstr "不符合正規表示式" #~ msgid "Article h_as" #~ msgstr "文章有(_A)" #~ msgid "Incomplete Attachments" #~ msgstr "不完整的附加檔案" #~ msgid "No Attachments" #~ msgstr "沒有附加檔案" #~ msgid "Article _is" #~ msgstr "文章是(_I)" #~ msgid "New" #~ msgstr "新增" #~ msgid "Unread" #~ msgstr "未讀" #~ msgid "Read" #~ msgstr "已讀" #~ msgid "Cached" #~ msgstr "已快取" #~ msgid "Posted by Me" #~ msgstr "由我張貼" #~ msgid "Article has at _least N lines:" #~ msgstr "文章最少有 N 行:" #~ msgid "Article _score is at least" #~ msgstr "文章分數最少有(_S)" #~ msgid "Watched" #~ msgstr "已監控" #~ msgid "High" #~ msgstr "高" #~ msgid "Medium" #~ msgstr "中" #~ msgid "Zero" #~ msgstr "零" #~ msgid "Low" #~ msgstr "低" #~ msgid "Ignored" #~ msgstr "忽略" #~ msgid "" #~ "This filter is still used by the following rules:\n" #~ "%s\n" #~ "Please remove this dependency first." #~ msgstr "" #~ "此過濾器仍然使用下列規則:\n" #~ "%s\n" #~ "請先移除這個相依性。" #~ msgid "Pan: Filters" #~ msgstr "Pan: 過濾器" #~ msgid "Filters" #~ msgstr "過濾器" #~ msgid "Add a new filter" #~ msgstr "加入新的過濾器" #~ msgid "Edit the selected filter" #~ msgstr "編輯選定的過濾器" #~ msgid "Remove the selected filter" #~ msgstr "移除選定的過濾器" #~ msgid "NONE OF:" #~ msgstr "沒有任一項:" #~ msgid "ALL OF:" #~ msgstr "所有的:" #~ msgid "ANY OF:" #~ msgstr "任一:" #~ msgid "Article has complete attachments" #~ msgstr "文章有完整的附加檔案" #~ msgid "Article does not have incomplete attachments" #~ msgstr "文章沒有不完整的附加檔案" #~ msgid "Article has incomplete attachments" #~ msgstr "文章有不完整的附加檔案" #~ msgid "Article has complete or incomplete attachments" #~ msgstr "文章有完整或不完整的附加檔案" #~ msgid "Article is %d or more bytes long" #~ msgstr "文章長度大於 %d 位元組" #~ msgid "Article is crossposted to at least %d groups" #~ msgstr "文章至少交叉張貼於 %d 個群組" #~ msgid "Article was posted in the last %d days" #~ msgstr "文章張貼於 %d 天內" #~ msgid "Article is %d or more lines long" #~ msgstr "文章長度多於 %d 行" #~ msgid "Article is unread or old" #~ msgstr "文章為未讀或舊的" #~ msgid "Article is new" #~ msgstr "文章是新的" #~ msgid "Article is new or read" #~ msgstr "文章為新的或已讀" #~ msgid "Article is new or unread" #~ msgstr "文章為新的或未讀" #~ msgid "Xref" #~ msgstr "Xref" #~ msgid "watched" #~ msgstr "已監控" #~ msgid "high" #~ msgstr "高" #~ msgid "medium" #~ msgstr "中" #~ msgid "zero" #~ msgstr "零" #~ msgid "low" #~ msgstr "低" #~ msgid "ignored" #~ msgstr "忽略的" #~ msgid "Score filter will match anything" #~ msgstr "分數過濾器會比對任何" #~ msgid "Score filter will match nothing" #~ msgstr "分數過濾器不會比對" #~ msgid "Article score one of: " #~ msgstr "文章分數其中之一:" #~ msgid "Wrote filters to \"%s\"" #~ msgstr "寫入過濾器到“%s”" #~ msgid "Can't use regular expression \"%s\" from file \"%s\", line %d: %s" #~ msgstr "不能使用正規表示式“%s”自檔案“%s”,行 %d: %s" #~ msgid "expired old score" #~ msgstr "過期的舊分數" #~ msgid "skipping unsupported criteria" #~ msgstr "忽略不支援的條件" #~ msgid "unexpected line." #~ msgstr "沒有預期的行。" #~ msgid "Error reading file: " #~ msgstr "讀取檔案時錯誤:" #~ msgid "skipping score because it has no criteria" #~ msgstr "忽略不具條件的分數" #~ msgid "" #~ "Loaded %d score entries in %d sections in %.1f seconds (%.0f entries/sec)" #~ msgstr "載入 %d 分數項目於 %d 節區,費時 %.1f 秒(%.0f 項目/秒)" #~ msgid "Error score to file \"%s\": %s" #~ msgstr "錯誤的分數至檔案“%s”:%s" #~ msgid "Scored %d entries in %.1f seconds (%.0f articles/sec)" #~ msgstr "具分數的 %d 項目,費時 %.1f 秒(%.0f 文章/秒)" #~ msgid "Error removing scorefile entry: %s" #~ msgstr "移除分數檔案項目時發生錯誤:%s" #~ msgid "Scorefile entry removed -- old scorefile \"%s\" backed up as \"%s\"" #~ msgstr "分數檔案項目已移除 -- 舊的分數檔案“%s”已備份為“%s”" #~ msgid "Folder \"%*.*s\" already exists." #~ msgstr "資料夾“%*.*s”已經存在。" #~ msgid "Please don't begin folders with \"pan.\"; it confuses me." #~ msgstr "請不要以“pan.”為資料夾開頭;那會使程式混淆。" #~ msgid "Create New Folder" #~ msgstr "建立新資料夾" #~ msgid "New Folder Name:" #~ msgstr "新資料夾名稱:" #~ msgid "/Get New Headers and _Bodies" #~ msgstr "/取得新標頭與內文(_B)" #~ msgid "/More Download _Options..." #~ msgstr "/更多下載選項(_O)..." #~ msgid "/Refresh Article _Counts" #~ msgstr "/重新整理文章計數(_C)" #~ msgid "/Group _Properties..." #~ msgstr "/群組屬性(_P)..." #~ msgid " (Moderated)" #~ msgstr "(管制的)" #~ msgid " (Read-Only)" #~ msgstr "(唯讀)" #~ msgid "Subscribed" #~ msgstr "已訂閱" #~ msgid "All Groups" #~ msgstr "所有群組" #~ msgid "" #~ "We don't have a list of groups for \"%*.*s\".\n" #~ "Shall we download one?" #~ msgstr "" #~ "我們沒有“%*.*s”的群組清單。\n" #~ "是否要下載一個?" #~ msgid "Total" #~ msgstr "總計" #~ msgid "Description" #~ msgstr "描述" #~ msgid "F_ind:" #~ msgstr "尋找(_I):" #~ msgid "" #~ "Type in a group search string and press ENTER. Wildcards are allowed." #~ msgstr "輸入群組搜尋字串並按下 ENTER。可以使用萬用字元。" #~ msgid "" #~ msgstr "<更多>" #~ msgid "X-Newsreader" #~ msgstr "X-新聞閱讀器" #~ msgid "X-Mailer" #~ msgstr "X-郵件程式" #~ msgid "User-Agent" #~ msgstr "使用者-代理程式" #~ msgid "News server connection count: %d" #~ msgstr "新聞伺服哭連線計數: %d" #~ msgid "The Task Manager is Empty" #~ msgstr "工作管理程式是空的" #~ msgid "Connection" #~ msgstr "連線" #~ msgid "Post" #~ msgstr "張貼" #~ msgid "Get" #~ msgstr "取得" #~ msgid "Mine" #~ msgstr "我的" #~ msgid "Net" #~ msgstr "淨" #~ msgid "/_File/Save A_ttachments" #~ msgstr "/檔案(_F)/儲存附加檔案(_T)" #~ msgid "/_File/_Save Attachments As..." #~ msgstr "/檔案(_F)/另存附加檔案為(_S)..." #~ msgid "/_File/_Manual Decode..." #~ msgstr "/檔案(_F)/手動解碼(_M)..." #~ msgid "/_File/---" #~ msgstr "/檔案(_F)/---" #~ msgid "/_File/_Cancel Last Task" #~ msgstr "/檔案(_F)/取消上次工作(_C)" #~ msgid "/_File/_New Folder..." #~ msgstr "/檔案(_F)/新增資料夾(_N)..." #~ msgid "/_File/Delete _Folder..." #~ msgstr "/檔案(_F)/刪除資料夾(_F)..." #~ msgid "/_File/_Edit Article in Folder" #~ msgstr "/檔案(_F)/編輯資料夾中的文章(_E)" #~ msgid "/_File/E_xit" #~ msgstr "/檔案(_F)/離開(_X)" #~ msgid "/_Edit/Select all" #~ msgstr "/編輯(_E)/選擇全部" #~ msgid "/_Edit/Deselect all" #~ msgstr "/編輯(_E)/取消選擇全部" #~ msgid "/_Edit/---" #~ msgstr "/編輯(_E)/---" #~ msgid "/_Edit/Select all _Groups" #~ msgstr "/編輯(_E)/選擇所有群組(_G)" #~ msgid "/_Edit/Add S_ubscribed to Selection" #~ msgstr "/編輯(_E)/將已訂閱加入選擇區(_U)" #~ msgid "/_Edit/Deselect all G_roups" #~ msgstr "/編輯(_E)/取消選擇所有群組(_R)" #~ msgid "/_Edit/Add S_et to Selection" #~ msgstr "/編輯(_E)/將設定加入選擇區(_E)" #~ msgid "/_Edit/_Find..." #~ msgstr "/編輯(_E)/尋找(_F)..." #~ msgid "/_Edit/Find _Next" #~ msgstr "/編輯(_E)/尋找下一個(_N)" #~ msgid "/_View/---" #~ msgstr "/檢視(_V)/---" #~ msgid "/_View/Thr_ead Header Pane" #~ msgstr "/檢視(_V)/相關主題標頭窗格(_E)" #~ msgid "/_View/_Rot13 Selected Text" #~ msgstr "/檢視(_V)/_Rot 13 選定的文字" #~ msgid "/_View/E_xpand Selected Threads" #~ msgstr "/檢視(_V)/展開選定的相關主題(_X)" #~ msgid "/_View/C_ollapse Selected Threads" #~ msgstr "/檢視(_V)/收摺選定的相關主題(_O)" #~ msgid "/Filte_r/---" #~ msgstr "/過濾器(_R)/---" #~ msgid "/Filte_r/Match Only _Cached Articles" #~ msgstr "/過濾器(_R)/只比對快取的文章(_C)" #~ msgid "/Filte_r/Match Only _Text Articles" #~ msgstr "/過濾器(_R)/只比對純文字文章(_T)" #~ msgid "/Filte_r/Match Only _Binary Attachment Articles" #~ msgstr "/過濾器(_R)/只比對具附近加檔案的文章(_B)" #~ msgid "/Filte_r/Match Only _My Articles" #~ msgstr "/過濾器(_R)/只比對我的文章(_M)" #~ msgid "/Filte_r/Match _New Articles" #~ msgstr "/過濾器(_R)/比對新的文章(_N)" #~ msgid "/Filte_r/Match _Unread Articles" #~ msgstr "/過濾器(_R)/比對未讀的文章(_U)" #~ msgid "/_Go/Read More" #~ msgstr "/移至(_G)/閱讀上一篇" #~ msgid "/_Go/---" #~ msgstr "/移至(_G)/---" #~ msgid "/_Go/Next _New Article" #~ msgstr "/移至(_G)/下篇新文章(_N)" #~ msgid "/_Go/Previous Article _Read" #~ msgstr "/移至(_G)/前一篇已讀文章(_R)" #~ msgid "/_Servers" #~ msgstr "/伺服器(_S)" #~ msgid "/_Servers/Get List of _All Groups" #~ msgstr "/伺服器(_S)/取得所有群組清單(_A)" #~ msgid "/_Servers/Get List of _New Groups" #~ msgstr "/伺服器(_S)/取得新群組的清單(_N)" #~ msgid "/_Servers/---" #~ msgstr "/伺服器(_S)/---" #~ msgid "/_Newsgroups/Mark Group _Read" #~ msgstr "/新聞群組(_N)/將群組標記為已讀(_R)" #~ msgid "/_Newsgroups/_Delete Group's Articles" #~ msgstr "/新聞群組(_N)/刪除群組的文章(_D)" #~ msgid "/_Newsgroups/---" #~ msgstr "/新聞群組(_N)/---" #~ msgid "/_Newsgroups/Get New _Headers" #~ msgstr "/新聞群組(_N)/取得新標頭(_H)" #~ msgid "/_Newsgroups/Get New Headers and _Bodies" #~ msgstr "/新聞群組(_N)/取得新標頭與內文(_B)" #~ msgid "/_Newsgroups/More Download _Options..." #~ msgstr "/新聞群組(_N)/更多下載選項(_O)..." #~ msgid "/_Newsgroups/Refresh Article _Counts" #~ msgstr "/新聞群組(_N)/重新整理文章計數(_C)" #~ msgid "/_Newsgroups/Get New Headers in Subscribed _Groups" #~ msgstr "/新聞群組(_N)/取得訂閱群組中的新標頭(_N)" #~ msgid "/_Newsgroups/_Subscribe" #~ msgstr "/新聞群組(_N)/訂閱(_S)" #~ msgid "/_Newsgroups/_Unsubscribe" #~ msgstr "/新聞群組(_N)/取消訂閱(_U)" #~ msgid "/_Newsgroups/Group _Properties..." #~ msgstr "/新聞群組(_N)/群組屬性(_P)..." #~ msgid "/_Newsgroups/Dele_te Group" #~ msgstr "/新聞群組(_N)/刪除群組(_T)" #~ msgid "/_Articles/Mark _Read" #~ msgstr "/文章(_A)/標記為已讀(_R)" #~ msgid "/_Articles/Mark _Unread" #~ msgstr "/文章(_A)/標記為未讀(_U)" #~ msgid "/_Articles/---" #~ msgstr "/文章(_A)/---" #~ msgid "/_Articles/D_ownload Flagged" #~ msgstr "/文章(_A)/下載具旗標者(_O)" #~ msgid "/_Articles/_Flag" #~ msgstr "/文章(_A)/加上旗標(_F)" #~ msgid "/_Articles/U_nflag" #~ msgstr "/文章(_A)/取消旗標(_N)" #~ msgid "/_Articles/Down_load" #~ msgstr "/文章(_A)/下載(_L)" #~ msgid "/_Articles/_Watch Thread" #~ msgstr "/文章(_A)/監控相關主題(_W)" #~ msgid "/_Articles/_Ignore Thread" #~ msgstr "/文章(_A)/忽略相關主題(_I)" #~ msgid "/_Articles/_View Article's Scores" #~ msgstr "/文章(_A)/檢視文章的分數(_V)" #~ msgid "/_Articles/Cancel..." #~ msgstr "/文章(_A)/取消..." #~ msgid "/_Articles/Supersed_e..." #~ msgstr "/文章(_A)/替換(_E)..." #~ msgid "/_Articles/_Delete" #~ msgstr "/文章(_A)/刪除(_D)" #~ msgid "/_Post" #~ msgstr "/張貼(_P)" #~ msgid "/_Post/_Post to Newsgroup..." #~ msgstr "/張貼(_P)/張貼至新聞群組(_P)..." #~ msgid "/_Post/_Reply by Email..." #~ msgstr "/張貼(_P)/以電子郵件回覆(_R)" #~ msgid "/_Post/For_ward by Email..." #~ msgstr "/張貼(_P)/以電子郵件轉寄(_W)..." #~ msgid "/_Post/---" #~ msgstr "/張貼(_P)/---" #~ msgid "/_Post/Send Pending _Messages" #~ msgstr "/張貼(_P)/傳送暫止訊息(_M)" #~ msgid "/_Tools" #~ msgstr "/工具(_T)" #~ msgid "/_Tools/---" #~ msgstr "/工具(_T)/---" #~ msgid "/_Tools/Custom _Filters..." #~ msgstr "/工具(_T)/自訂過濾器(_F)..." #~ msgid "/_Tools/_Rules..." #~ msgstr "/工具(_T)/規則(_R)..." #~ msgid "/_Tools/_Edit Scorefile..." #~ msgstr "/工具(_T)/編輯分數檔案(_E)..." #~ msgid "/_Tools/_Log Viewer..." #~ msgstr "/工具(_T)/紀錄檔檢視器(_L)..." #~ msgid "/_Help" #~ msgstr "/說明(_H)" #~ msgid "/_Help/---" #~ msgstr "/說明(_H)/---" #~ msgid "The default charset set for articles posted with this profile" #~ msgstr "以此規畫檔案張貼文章的預設字元集" #~ msgid "Pan: Edit Profile" #~ msgstr "Pan: 編輯規畫檔案" #~ msgid "_User Profile" #~ msgstr "使用者規畫檔案(_U)" #~ msgid "Cus_tom Headers" #~ msgstr "自訂標頭(_T)" #~ msgid "You must specify a username or disable authorization." #~ msgstr "您必須指定使用者名稱或停用授權。" #~ msgid "" #~ "Your real name contained double quotes.\n" #~ "Converting into single quotes." #~ msgstr "" #~ "您的真實姓名包含雙引號。\n" #~ "正將它轉換為單引號。" #~ msgid "You need at least one profile" #~ msgstr "您至少需要一個規畫檔案" #~ msgid "Use the selected profile to create a new profile" #~ msgstr "使用選定的規畫檔案來建立新的規畫檔案" #~ msgid "Wrote profiles to \"%s\"" #~ msgstr "將規畫檔案寫入“%s”" #~ msgid "/_File/_Save..." #~ msgstr "/檔案(_F)/儲存(_S)..." #~ msgid "/_File/Clea_r" #~ msgstr "/檔案(_F)/清除(_R)" #~ msgid "/_File/_Close" #~ msgstr "/檔案(_F)/關閉(_C)" #~ msgid "Pan: Status Log" #~ msgstr "Pan: 狀態紀錄" #~ msgid "Clear the log window" #~ msgstr "清除紀錄視窗" #~ msgid "Time" #~ msgstr "時間" #~ msgid "Log Entry" #~ msgstr "紀錄檔項目" #~ msgid "Post anyway, despite these problems?" #~ msgstr "無論如何都要張貼,忽略這些問題?" #~ msgid "Post anyway, despite this problem?" #~ msgstr "無論如何都要張貼,忽略這個問題?" #~ msgid "/_File/_Save Changes" #~ msgstr "/檔案(_F)/儲存變更(_S)" #~ msgid "/_File/Save _As..." #~ msgstr "/檔案(_F)/另存為(_A)..." #~ msgid "/_Edit/Cu_t" #~ msgstr "/編輯(_E)/剪下(_T)" #~ msgid "/_Edit/_Copy" #~ msgstr "/編輯(_E)/複製(_C)" #~ msgid "/_Edit/_Paste" #~ msgstr "/編輯(_E)/貼上(_P)" #~ msgid "/_Edit/_Rot13 Selected Text" #~ msgstr "/編輯(_E)/_Rot13 選定的文字" #~ msgid "/_Edit/Edit with E_xternal Editor" #~ msgstr "/編輯(_E)/以外部編輯器編輯(_X)" #~ msgid "/_File/Send Now" #~ msgstr "/編輯(_E)/立即傳送" #~ msgid "/_File/Send Later" #~ msgstr "/編輯(_E)/稍後傳送" #~ msgid "Send Later" #~ msgstr "稍後傳送" #~ msgid "Rewrap" #~ msgstr "重新折行" #~ msgid "Turn line wrap on/off" #~ msgstr "開啟/關閉折行" #~ msgid "Edit with an External Editor" #~ msgstr "以外部編輯器編輯" #~ msgid "Mime (single-part posts only)" #~ msgstr "Mime (僅單獨部分張貼)" #~ msgid " (%lu lines in 1 article)" #~ msgstr " (%lu 行於 1 文章)" #~ msgid "UUEncoded (universally accepted)" #~ msgstr "UUEncoded (世界各地通用)" #~ msgid "yEnc (30 percent smaller than UUEnc but less universal)" #~ msgstr "yEnc (比 UUEnc 小 30% 但較不普遍)" #~ msgid "Select the file to attach." #~ msgstr "選擇要附加的檔案。" #~ msgid "Files to Attach" #~ msgstr "要附加的檔案" #~ msgid "Kilobytes" #~ msgstr "千位元組" #~ msgid "Add a File to the Attachment List" #~ msgstr "將檔案加入附加檔案清單" #~ msgid "Remove a File from the Attachment List" #~ msgstr "將檔案自附加檔案清單移除" #~ msgid "Estimated Article Size" #~ msgstr "估計的文章大小" #~ msgid "Organization" #~ msgstr "Organization" #~ msgid "The organization you're associated with." #~ msgstr "您所屬的機關團體。" #~ msgid "Charset" #~ msgstr "字元集" #~ msgid "" #~ "Could not convert \"%s\" to UTF-8. Article may not display correctly." #~ msgstr "無法將“%s”轉換為 UTF-8。文章可能無法正確顯示。" #~ msgid "\"Followup-To: poster\": sending email to author." #~ msgstr "“追蹤:張貼者”:傳送電子郵件給作者。" #~ msgid "\"Followup-To:\" contains an email address: sending email to author." #~ msgstr "“追蹤:”包含電子郵件位址:傳送電子郵件給作者。" #~ msgid "New Message" #~ msgstr "新郵件" #~ msgid "" #~ "ERROR: line %d, column %d uses a character not specified in charset \"%s" #~ "\" -- possibly change your charset in \"More Headers\" to \"%s\" instead?" #~ msgstr "" #~ "錯誤:行 %d, 欄 %d 使用了字元集“%s”中未指定的字元-- 可能得改變您在“更多標" #~ "頭”中的字元集為“%s”來代替?" #~ msgid "Save message to file" #~ msgstr "儲存郵件為檔案" #~ msgid "The command line was: %s" #~ msgstr "該命令列為:%s" #~ msgid "NNTP handshake failed: %s" #~ msgstr "NNTP 協調失敗:%s" #~ msgid "Handshake failed: %s" #~ msgstr "協調失敗:%s" #~ msgid "Handshake: %s" #~ msgstr "協調:%s" #~ msgid "Authentication failed: bad handshake for SPA password" #~ msgstr "驗證失敗:SPA 密碼協調錯誤" #~ msgid "Bad SPA handshake: %s" #~ msgstr "SPA 協調錯誤:%s" #~ msgid "Authentication failed: need a password" #~ msgstr "驗證失敗:需要密碼" #~ msgid "Authentication failed: %s" #~ msgstr "驗證失敗:%s" #~ msgid "%*.*s handshake failed: %s" #~ msgstr "%*.*s 協調失敗:%s" #~ msgid "No supported authentication mechanism" #~ msgstr "不支援的驗證機制" #~ msgid "No password found!" #~ msgstr "找不到密碼!" #~ msgid "MODE READER check failed: %s" #~ msgstr "MODE READER 檢查失敗: %s" #~ msgid "Posting failed. Server said: %s" #~ msgstr "張貼失敗。伺服器訊息:%s" #~ msgid "Posting complete. Server said: %s" #~ msgstr "張貼完成。伺服器訊息:%s" #~ msgid "\"stay connected\" sent to %*.*s" #~ msgstr "“保持連線”已傳給 %*.*s" #~ msgid "Getting header list failed: %s" #~ msgstr "取得標頭清單失敗:%s" #~ msgid "Corrupt header skipped: %s" #~ msgstr "略過損毀的標頭:%s" #~ msgid "Getting %d of %d" #~ msgstr "正在取得 %d 之 %d" #~ msgid "Select Color" #~ msgstr "選擇色彩" #~ msgid "_Browse..." #~ msgstr "瀏覽(_B)..." #~ msgid "Font Family" #~ msgstr "字族" #~ msgid " --version Prints Pan's version number" #~ msgstr " --version 印出 Pan 的版本號碼" #~ msgid " --help Prints this message and exits" #~ msgstr " --help 印出此訊息並離開" #~ msgid "" #~ " --debug Turns on the most commonly-used options for a bug " #~ "report" #~ msgstr " --debug 打開錯誤報告最常使用的選項" #~ msgid "" #~ " --mute Debugging tool to send new posts to console, not the " #~ "server" #~ msgstr " --mute 除錯工具會將新的訊息貼到主控台,而非伺服器" #~ msgid " --debug-cache Print debugging messages for the article cache" #~ msgstr " --debug-cache 印出文章快取的除錯訊息" #~ msgid "" #~ " --debug-sockets Print debugging messages when talking to the news " #~ "server" #~ msgstr " --debug-sockets 當與新聞伺服器交涉時印出除錯訊息" #~ msgid "" #~ " --debug-queue Print debugging messages related to managing tasks" #~ msgstr " --debug-queue 印出管理工作的相關訊息" #~ msgid "" #~ " --debug-decode Print debugging messages related to decoding " #~ "attachments" #~ msgstr " --debug-decode 印出解碼附加檔案的相關除錯訊息" #~ msgid " --debug-newsrc Print debugging messages related to .newsrc files" #~ msgstr " --debug-newsrc 印出 .newsrc 檔案的相關除錯訊息" #~ msgid "" #~ " --debug-gnksa Print debugging messages related to gnksa correctness" #~ msgstr " --debug-gnksa 印出 gnksa 校正的相關除錯訊息" #~ msgid "" #~ " --debug-trace Print debugging messages when entering/leaving " #~ "functions" #~ msgstr " --debug-trace 當進/出某項功能時印出除錯訊息" #~ msgid "" #~ " --debug-lock Print debugging messages related to threaded gui locks" #~ msgstr " --debug-lock 印出相關主題 GUI 鎖定的相關除錯訊息" #~ msgid "" #~ " --debug-object Print debugging messages related to refcounted objects" #~ msgstr " --debug-object 印出 refcount 物件的相關除錯訊息" #~ msgid "Error writing to socket." #~ msgstr "寫入通訊端時發生錯誤。" #~ msgid "pan.sent" #~ msgstr "pan.sent" #~ msgid "pan.sendlater" #~ msgstr "pan.sendlater" #~ msgid "Spellchecking disabled: gtkspell_init() failed with status %d" #~ msgstr "拼字檢查已停用: gtkspell_init() 失敗,狀態為 %d" #~ msgid "Restored %d tasks from last session" #~ msgstr "自上次工作階段回存 %d 工作" #~ msgid "" #~ "Some tasks were still queued the last time Pan exited. Do you want to " #~ "resume those tasks?" #~ msgstr "上次離開 Pan 時仍有一些工作在佇列中。您想要繼續這些工作嗎?" #~ msgid "_Resume" #~ msgstr "繼續(_R)" #~ msgid "" #~ "%a - abbreviated weekday name\n" #~ "%A - full weekday name\n" #~ "%b - abbreviated month name\n" #~ "%B - full month name\n" #~ "%c - local date & time\n" #~ "%d - day of the month\n" #~ "%H - hour (24-hour clock)\n" #~ "%I - hour (12-hour clock)\n" #~ "%j - day of the year (001-366)\n" #~ "%m - month (01-12)\n" #~ "%M - minute (00-59)\n" #~ "%p - local equivalent of AM/PM\n" #~ "%S - second (00-61)\n" #~ "%x - local date\n" #~ "%X - local time\n" #~ "%y - two-digit year\n" #~ "%Y - four-digit year\n" #~ "%% - %" #~ msgstr "" #~ "%a - 縮寫的工作日名稱\n" #~ "%A - 完整工作日名稱\n" #~ "%b - 縮寫的月份名稱\n" #~ "%B - 完整月份名稱\n" #~ "%c - 本地端日期 & 時間\n" #~ "%d - 一個月的第幾天\n" #~ "%H - 小時(24 小時制)\n" #~ "%I - 小時(12 小時制)\n" #~ "%j - 一年的第幾天 (001-366)\n" #~ "%m - 月份(01-12)\n" #~ "%M - 分鐘(00-59)\n" #~ "%p - 本地的 AM/PM 表示\n" #~ "%S - 秒鐘(00-61)\n" #~ "%x - 本地日期\n" #~ "%X - 本地時間\n" #~ "%y - 兩位數年份\n" #~ "%Y - 四位數年份\n" #~ "%% - %" #~ msgid "Color the \"sub_ject\" column" #~ msgstr "以色彩表示“主旨”欄位(_J)" #~ msgid "Articles with a Score of 9999 or higher:" #~ msgstr "分數在 9999 以上的文章:" #~ msgid "Articles with a Score between 5000 and 9998:" #~ msgstr "分數在 5000 到 9998 間的文章:" #~ msgid "Articles with a Score between 1 and 4999:" #~ msgstr "分數在 1 到 4999 間的文章:" #~ msgid "Articles with a Score between -9998 and -1:" #~ msgstr "分數在 -9998 到 -1 間的文章:" #~ msgid "Articles with a Score of -9999 or lower:" #~ msgstr "分數在 -9999 以下的文章:" #~ msgid "_1:" #~ msgstr "_1:" #~ msgid "_2:" #~ msgstr "_2:" #~ msgid "_3:" #~ msgstr "_3:" #~ msgid "Pane Order" #~ msgstr "窗格順序" #~ msgid "Action State" #~ msgstr "動作狀態" #~ msgid "Article State" #~ msgstr "文章狀態" #~ msgid "Column Layout" #~ msgstr "欄位布局" #~ msgid "When a Followup subject header changes, show as _new thread" #~ msgstr "當追蹤的主旨標頭改變時,顯示為新的相關主題(_N)" #~ msgid "E_xpand all threads by default" #~ msgstr "預設展開所有相關主題(_X)" #~ msgid "Show complete _multipart posts as a single article" #~ msgstr "將完整的多部分張貼顯示為單一文章(_M)" #~ msgid "Date Forma_t:" #~ msgstr "日期格式(_T):" #~ msgid "Show \"%s\" header" #~ msgstr "顯示“%s”標頭" #~ msgid "Newsreader" #~ msgstr "新聞閱讀器" #~ msgid "Characters denoting _quoted text:" #~ msgstr "表示引用文字的字元(_Q):" #~ msgid "Download new headers from s_ubscribed groups when starting Pan" #~ msgstr "當啟動 Pan 時自訂閱的群組下載新標頭(_U)" #~ msgid "" #~ "Download new headers and bod_ies from subscribed groups when starting Pan" #~ msgstr "當啟動 Pan 時自訂閱的群組下載新標頭與內文(_I)" #~ msgid "Download Directory" #~ msgstr "下載目錄" #~ msgid "Automatically remove _failed tasks from the task manager" #~ msgstr "自動將失敗的工作從工作管理程式中移除(_F)" #~ msgid "_Erase cache when exiting Pan" #~ msgstr "當離開 Pan 時清除快取(_E)" #~ msgid "Ma_ximum Cache Size (Megs):" #~ msgstr "最大快取大小(MB)(_X):" #~ msgid "_Editor (%t is filename):" #~ msgstr "編輯器(%t 為檔案名稱):" #~ msgid "" #~ "Scorefile _Editor:\n" #~ "(%t is filename, %n is line number)" #~ msgstr "" #~ "分數檔編輯器(_E):\n" #~ "(%t 為檔案名稱,%n 為行數)" #~ msgid "Scorefile" #~ msgstr "分數檔" #~ msgid "Score_file" #~ msgstr "分數檔(_F)" #~ msgid "Sending Mail" #~ msgstr "傳送郵件" #~ msgid "Mail Server Add_ress:" #~ msgstr "郵件伺服器位址(_R):" #~ msgid "Mail Server Por_t:" #~ msgstr "郵件伺服器連接埠(_T):" #~ msgid "Hea_der Pane" #~ msgstr "標頭窗格(_D)" #~ msgid "A_pps & Mail" #~ msgstr "程式 & 郵件(_P)" #~ msgid "You haven't loaded an article to print." #~ msgstr "您尚未載入文章至列印。" #~ msgid "" #~ "%s\n" #~ "\n" #~ "Matches: %u\n" #~ "Group: %s\n" #~ "Rule: %s" #~ msgstr "" #~ "%s\n" #~ "\n" #~ "符合: %u\n" #~ "群組: %s\n" #~ "規則: %s" #~ msgid "Mark as" #~ msgstr "標記為" #~ msgid "_Flag body for download" #~ msgstr "於內文加上下載旗標(_F)" #~ msgid "_Retrieve Body" #~ msgstr "接收內文(_R)" #~ msgid "_Watch thread (highlights the thread)" #~ msgstr "監控相關主題(高亮度顯示相關主題)" #~ msgid "_Ignore thread (hides the thread by default)" #~ msgstr "忽略相關主題(預設隱藏相關主題)(_I)" #~ msgid "Rule applies to all newsgroups" #~ msgstr "套用到所有新聞群組的規則" #~ msgid "Wildcard group specification:" #~ msgstr "指定萬用字元群組:" #~ msgid "(e.g., *anime*)" #~ msgstr "(e.g., *anime*)" #~ msgid "Rule applies to specific newsgroups:" #~ msgstr "套用到指定新聞群組的規則:" #~ msgid "Rule applies to:" #~ msgstr "規則套用到:" #~ msgid "Rule Name:" #~ msgstr "規則名稱:" #~ msgid "Apply to Incoming" #~ msgstr "套用到內送郵件" #~ msgid "" #~ "If enabled, this rule will be applied to headers when they are downloaded." #~ msgstr "如果啟用,這個規則會套用到已下載的標頭。" #~ msgid "New Rule" #~ msgstr "新增規則" #~ msgid "Delete Articles by Bozos" #~ msgstr "依 Bozos 刪除文章" #~ msgid "Applying rule to selected groups" #~ msgstr "套用規則到選定的群組" #~ msgid "Applying rule \"%s\" to group \"%s\"" #~ msgstr "套用規則“%s”到群組“%s”" #~ msgid "Rules" #~ msgstr "規則" #~ msgid "Hit Ratio" #~ msgstr "點閱率" #~ msgid "" #~ "Apply to\n" #~ "Selected\n" #~ "Groups" #~ msgstr "" #~ "套用到\n" #~ "選擇的\n" #~ "群組" #~ msgid "" #~ "Apply to\n" #~ "Subscribed\n" #~ "Groups" #~ msgstr "" #~ "套用到\n" #~ "訂閱的\n" #~ "群組" #~ msgid "Wrote rules to \"%s\"" #~ msgstr "寫入規則到“%s”" #~ msgid "" #~ "Can't find filter \"%s\" needed by rule \"%s\", so no articles match." #~ msgstr "找不到過濾器“%s”以配合規則“%s”,因此沒有文章符合。" #~ msgid "%u articles match rule %s" #~ msgstr "%u 文章符合規則 %s" #~ msgid "Pan: Manual Decode" #~ msgstr "Pan: 手動解碼" #~ msgid "Save Files in Directory" #~ msgstr "儲存檔案於目錄" #~ msgid "_Directory:" #~ msgstr "目錄(_D):" #~ msgid "Add to the _top of the Task Manager's List" #~ msgstr "加入到工作管理程式清單的頂端(_T)" #~ msgid "Criterion \"%s\" is selected, but empty." #~ msgstr "已選擇條件“%s”,但卻是空的。" #~ msgid "No criteria are selected." #~ msgstr "尚未選擇條件。" #~ msgid "Pan: Add to Scorefile" #~ msgstr "Pan: 加入分數檔案" #~ msgid "Su_bject:" #~ msgstr "主旨(_B):" #~ msgid "A_uthor:" #~ msgstr "作者(_U):" #~ msgid "_Lines:" #~ msgstr "行(_L):" #~ msgid "at least N lines long" #~ msgstr "最少 N 行長" #~ msgid "less than N lines long" #~ msgstr "少於 N 行長" #~ msgid "Chan_ge Score:" #~ msgstr "改變分數(_G):" #~ msgid "subtract" #~ msgstr "減去" #~ msgid "Expire in N _days:" #~ msgstr "在 N 天過期(_D):" #~ msgid "Edit the selected score" #~ msgstr "編輯選擇的分數" #~ msgid "You must specify an address." #~ msgstr "您必須指定一個位址。" #~ msgid "You must specify a password or disable authorization." #~ msgstr "您必須指定密碼或停用授權。" #~ msgid "You must specify a .newsrc filename or disable newsrc support." #~ msgstr "您必須指定 .newsrc 檔案名稱或停用 newsrc 支援。" #~ msgid "Newsrc" #~ msgstr "Newsrc" #~ msgid "Us_e .newsrc file" #~ msgstr "使用 .newsrc 檔案(_E)" #~ msgid "Select .newsrc File" #~ msgstr "選擇 .newsrc 檔案" #~ msgid "_Filename:" #~ msgstr "檔案名稱(_F):" #~ msgid "Edit the selected server" #~ msgstr "編輯選擇的伺服器" #~ msgid "Remove the selected server" #~ msgstr "移除選擇的伺服器" #~ msgid "Got unexpected response from mail server: expected %d; got %s" #~ msgstr "自郵件伺服器取得未預期的回應:預期為 %d ;卻取得 %s" #~ msgid "Sending mail" #~ msgstr "傳送郵件" #~ msgid "No known recipients" #~ msgstr "沒有已知的收件者" #~ msgid "Mail sent!" #~ msgstr "郵件已送出!" #~ msgid "Handshaking with mail server" #~ msgstr "與郵件伺服器協調" #~ msgid "Connecting to mail server" #~ msgstr "連線到郵件伺服器" #~ msgid "Mail server not ready" #~ msgstr "郵件伺服器還沒準備好" #~ msgid "Sending Keepalive" #~ msgstr "傳送保持連線" #~ msgid "Disconnecting Idle" #~ msgstr "閒置斷線" #~ msgid "Disconnecting one connection from `%s' after %d seconds idle" #~ msgstr "將來自“%s”的連線經過 %d 秒閒置後斷線" #~ msgid "Connection to %*.*s, port %d failed: %s" #~ msgstr "連線到 %*.*s,連接埠 %d 失敗:%s" #~ msgid "Downloading %d" #~ msgstr "正在下載 %d" #~ msgid "\"%s\"" #~ msgstr "“%s”" #~ msgid "Downloading %u articles" #~ msgstr "正在下載 %u 篇文章" #~ msgid "Article %s (%s) canceled" #~ msgstr "文章 %s(%s) 已取消" #~ msgid "Updating article counts for %u groups from server \"%s\"" #~ msgstr "更新 %u 群組計數的文章於伺服器“%s”" #~ msgid "Updated counts for %u groups out of %u" #~ msgstr "更新計數於群組 %u 之 %u" #~ msgid "Unable to update counts for group \"%s\"" #~ msgstr "無法更新群組“%s”的計數" #~ msgid "Getting all groups from server \"%s\"" #~ msgstr "取得來自伺服器“%s”的所有群組" #~ msgid "Adding groups to server \"%s\"" #~ msgstr "加入群組到伺服器“%s”" #~ msgid "List Newsgroups failed: %s" #~ msgstr "列出新聞群組失敗:%s" #~ msgid "Got %d descriptions from server \"%s\"" #~ msgstr "取得 %d 個描述於伺服器“%s”" #~ msgid "New groups retrieval failed: %s" #~ msgstr "取回新群組失敗:%s" #~ msgid "No new articles in group \"%s\"" #~ msgstr "在群組“%s”中沒有新文章" #~ msgid "New %lu of %lu" #~ msgstr "新 %lu 之 %lu" #~ msgid "Sampling %lu of %lu" #~ msgstr "取樣 %lu 之 %lu" #~ msgid "All %lu of %lu" #~ msgstr "所有 %lu 之 %lu" #~ msgid "Not Queued" #~ msgstr "尚未佇列" #~ msgid "Stopping" #~ msgstr "停止中" #~ msgid "Pan %s Task Manager" #~ msgstr "Pan %s 工作管理程式" #~ msgid "Move Selected Task(s) Up" #~ msgstr "將選擇的工作上移" #~ msgid "Move Selected Task(s) to Top" #~ msgstr "將選擇的工作移到頂端" #~ msgid "Move Selected Task(s) Down" #~ msgstr "將選擇的工作下移" #~ msgid "Stop Selected Task(s)" #~ msgstr "停止選擇的工作" #~ msgid "Delete Selected Task(s)" #~ msgstr "刪除選擇的工作" #~ msgid "Time Remaining" #~ msgstr "時間剩餘" #~ msgid "[This is an email copy of a Usenet post to \"%s\"]" #~ msgstr "[這是 Usenet 張貼到“%s”的郵件備份]" #~ msgid "Email \"%s\" sent." #~ msgstr "電子郵件“%s”已送出。" #~ msgid "Email \"%s\" not sent." #~ msgstr "電子郵件“%s”未送出。" #~ msgid "Article \"%s\" posted." #~ msgstr "文章“%s”已張貼。" #~ msgid "Article \"%s\" not posted." #~ msgstr "文章“%s”未張貼。" #~ msgid "Posting and mailing article \"%s\"" #~ msgstr "張貼並郵寄文章“%s”" #~ msgid "Mailing article \"%s\"" #~ msgstr "郵寄文章“%s”" #~ msgid "Email send failed. " #~ msgstr "電子郵件傳送失敗。" #~ msgid "Usenet posting failed. " #~ msgstr "Usenet 張貼失敗。" #~ msgid "Check Tools|Log Viewer for more information. " #~ msgstr "檢查工具|紀錄檔檢視器以獲得進一步資訊。" #~ msgid "Your message was saved in the folder \"pan.sendlater\"" #~ msgstr "您的郵件被儲存在資料夾“pan.sendlater”" #~ msgid "Saving `%s'" #~ msgstr "儲存“%s”" #~ msgid "Saving Attachments" #~ msgstr "儲存附加檔案" #~ msgid "Save Article can't access path \"%s\"" #~ msgstr "儲存文章無法存取路徑“%s”" #~ msgid "Saved article body to \"%s\"" #~ msgstr "儲存文章內文至“%s”" #~ msgid "" #~ "Pan %s\n" #~ "Copyright (c) %d by Charles Kerr\n" #~ "\n" #~ "If you find a bug, please report it.\n" #~ "\n" #~ msgstr "" #~ "Pan %s\n" #~ "版權所有 (c) %d Charles Kerr\n" #~ "\n" #~ "如果您發現錯誤,請回報它。\n" #~ "\n" #~ msgid "" #~ "http://pan.rebelbase.com/ - Pan Homepage\n" #~ "http://pan.rebelbase.com/bugs/ - Report a Bug\n" #~ "http://pan.rebelbase.com/download/ - Upgrade\n" #~ "\n" #~ msgstr "" #~ "http://pan.rebelbase.com/ - Pan 首頁\n" #~ "http://pan.rebelbase.com/bugs/ - 回報錯誤\n" #~ "http://pan.rebelbase.com/download/ - 升級\n" #~ "\n" #~ msgid "" #~ "This program is free software; you can redistribute it\n" #~ "and/or modify it under the terms of the GNU General Public\n" #~ "License as published by the Free Software Foundation;\n" #~ "version 2 of the License.\n" #~ "\n" #~ "This program is distributed in the hope that it will be\n" #~ "useful, but WITHOUT ANY WARRANTY; without even the implied\n" #~ "warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\n" #~ "PURPOSE. See the GNU General Public License for more\n" #~ "details.\n" #~ "\n" #~ "The GNU Public License can be found from the menu above\n" #~ "in Help|About|License." #~ msgstr "" #~ "這個程式是自由軟體;在自由軟體基金會\n" #~ "所公布的 GNU 通用公共許可證(第二版\n" #~ "授權)的條款下您可以重新散佈並且/或\n" #~ "修改它。\n" #~ "\n" #~ "散布這個程式是希望它有用,但是並沒有\n" #~ "任何擔保;不論是明確的,還是隱含的,\n" #~ "包括但不限於可銷售和適合特定用途的\n" #~ "隱含保證。請參閱 GNU 通用公共許可證\n" #~ "以獲得詳細資訊。\n" #~ "\n" #~ "GNU 通用公共許可證可以在上面選單中的\n" #~ "說明|關於|許可證找到。" #~ msgid "Error starting external browser: %s" #~ msgstr "啟動外部瀏覽器時發生錯誤:%s" #~ msgid "Error starting external scorefile editor: %s" #~ msgstr "啟動外部分數檔編輯器時發生錯誤:%s" pan-0.162/uulib/000077500000000000000000000000001475412772400134355ustar00rootroot00000000000000pan-0.162/uulib/CMakeLists.txt000066400000000000000000000007161475412772400162010ustar00rootroot00000000000000# collect up the source files file(GLOB SRC_FILES "*.c") add_library(uulib STATIC ${SRC_FILES}) target_include_directories(uulib PRIVATE ".") target_compile_definitions(uulib PUBLIC "PROTOTYPES") target_link_libraries(uulib PUBLIC PkgConfig::GLIB) # see https://cmake.org/cmake/help/latest/module/FindZLIB.html if(ZLIB_FOUND) target_include_directories(uulib PUBLIC ${ZLIB_INCLUDE_DIRS}) target_link_libraries(uulib PUBLIC ${ZLIB_LIBRARIES}) endif() pan-0.162/uulib/crc32.c000066400000000000000000001052101475412772400145140ustar00rootroot00000000000000// adapted from zlib 1.2.3 by putting it on a piece of wood // and banging a few nails throught it /* crc32.c -- compute the CRC-32 of a data stream * Copyright (C) 1995-2005 Mark Adler * For conditions of distribution and use, see copyright notice in zlib.h * * Thanks to Rodney Brown for his contribution of faster * CRC methods: exclusive-oring 32 bits of data at a time, and pre-computing * tables for updating the shift register in one step with three exclusive-ors * instead of four steps with four exclusive-ors. This results in about a * factor of two increase in speed on a Power PC G4 (PPC7455) using gcc -O3. */ #define FAR /* @(#) $Id$ */ #define local static /* Find a four-byte integer type for crc32_little() and crc32_big(). */ #ifndef NOBYFOUR # include # define BYFOUR # if (UINT_MAX == 0xffffffffUL) typedef unsigned int u4; # else # if (ULONG_MAX == 0xffffffffUL) typedef unsigned long u4; # else # if (USHRT_MAX == 0xffffffffUL) typedef unsigned short u4; # else # undef BYFOUR /* can't find a four-byte integer type! */ # endif # endif # endif #endif /* !NOBYFOUR */ /* Definitions for doing the crc four data bytes at a time. */ #ifdef BYFOUR # define REV(w) (((w)>>24)+(((w)>>8)&0xff00)+ \ (((w)&0xff00)<<8)+(((w)&0xff)<<24)) local unsigned long crc32_little (unsigned long, const unsigned char FAR *, unsigned); local unsigned long crc32_big (unsigned long, const unsigned char FAR *, unsigned); # define TBLS 8 #else # define TBLS 1 #endif /* BYFOUR */ static const unsigned long FAR crc_table[TBLS][256] = { { 0x00000000UL, 0x77073096UL, 0xee0e612cUL, 0x990951baUL, 0x076dc419UL, 0x706af48fUL, 0xe963a535UL, 0x9e6495a3UL, 0x0edb8832UL, 0x79dcb8a4UL, 0xe0d5e91eUL, 0x97d2d988UL, 0x09b64c2bUL, 0x7eb17cbdUL, 0xe7b82d07UL, 0x90bf1d91UL, 0x1db71064UL, 0x6ab020f2UL, 0xf3b97148UL, 0x84be41deUL, 0x1adad47dUL, 0x6ddde4ebUL, 0xf4d4b551UL, 0x83d385c7UL, 0x136c9856UL, 0x646ba8c0UL, 0xfd62f97aUL, 0x8a65c9ecUL, 0x14015c4fUL, 0x63066cd9UL, 0xfa0f3d63UL, 0x8d080df5UL, 0x3b6e20c8UL, 0x4c69105eUL, 0xd56041e4UL, 0xa2677172UL, 0x3c03e4d1UL, 0x4b04d447UL, 0xd20d85fdUL, 0xa50ab56bUL, 0x35b5a8faUL, 0x42b2986cUL, 0xdbbbc9d6UL, 0xacbcf940UL, 0x32d86ce3UL, 0x45df5c75UL, 0xdcd60dcfUL, 0xabd13d59UL, 0x26d930acUL, 0x51de003aUL, 0xc8d75180UL, 0xbfd06116UL, 0x21b4f4b5UL, 0x56b3c423UL, 0xcfba9599UL, 0xb8bda50fUL, 0x2802b89eUL, 0x5f058808UL, 0xc60cd9b2UL, 0xb10be924UL, 0x2f6f7c87UL, 0x58684c11UL, 0xc1611dabUL, 0xb6662d3dUL, 0x76dc4190UL, 0x01db7106UL, 0x98d220bcUL, 0xefd5102aUL, 0x71b18589UL, 0x06b6b51fUL, 0x9fbfe4a5UL, 0xe8b8d433UL, 0x7807c9a2UL, 0x0f00f934UL, 0x9609a88eUL, 0xe10e9818UL, 0x7f6a0dbbUL, 0x086d3d2dUL, 0x91646c97UL, 0xe6635c01UL, 0x6b6b51f4UL, 0x1c6c6162UL, 0x856530d8UL, 0xf262004eUL, 0x6c0695edUL, 0x1b01a57bUL, 0x8208f4c1UL, 0xf50fc457UL, 0x65b0d9c6UL, 0x12b7e950UL, 0x8bbeb8eaUL, 0xfcb9887cUL, 0x62dd1ddfUL, 0x15da2d49UL, 0x8cd37cf3UL, 0xfbd44c65UL, 0x4db26158UL, 0x3ab551ceUL, 0xa3bc0074UL, 0xd4bb30e2UL, 0x4adfa541UL, 0x3dd895d7UL, 0xa4d1c46dUL, 0xd3d6f4fbUL, 0x4369e96aUL, 0x346ed9fcUL, 0xad678846UL, 0xda60b8d0UL, 0x44042d73UL, 0x33031de5UL, 0xaa0a4c5fUL, 0xdd0d7cc9UL, 0x5005713cUL, 0x270241aaUL, 0xbe0b1010UL, 0xc90c2086UL, 0x5768b525UL, 0x206f85b3UL, 0xb966d409UL, 0xce61e49fUL, 0x5edef90eUL, 0x29d9c998UL, 0xb0d09822UL, 0xc7d7a8b4UL, 0x59b33d17UL, 0x2eb40d81UL, 0xb7bd5c3bUL, 0xc0ba6cadUL, 0xedb88320UL, 0x9abfb3b6UL, 0x03b6e20cUL, 0x74b1d29aUL, 0xead54739UL, 0x9dd277afUL, 0x04db2615UL, 0x73dc1683UL, 0xe3630b12UL, 0x94643b84UL, 0x0d6d6a3eUL, 0x7a6a5aa8UL, 0xe40ecf0bUL, 0x9309ff9dUL, 0x0a00ae27UL, 0x7d079eb1UL, 0xf00f9344UL, 0x8708a3d2UL, 0x1e01f268UL, 0x6906c2feUL, 0xf762575dUL, 0x806567cbUL, 0x196c3671UL, 0x6e6b06e7UL, 0xfed41b76UL, 0x89d32be0UL, 0x10da7a5aUL, 0x67dd4accUL, 0xf9b9df6fUL, 0x8ebeeff9UL, 0x17b7be43UL, 0x60b08ed5UL, 0xd6d6a3e8UL, 0xa1d1937eUL, 0x38d8c2c4UL, 0x4fdff252UL, 0xd1bb67f1UL, 0xa6bc5767UL, 0x3fb506ddUL, 0x48b2364bUL, 0xd80d2bdaUL, 0xaf0a1b4cUL, 0x36034af6UL, 0x41047a60UL, 0xdf60efc3UL, 0xa867df55UL, 0x316e8eefUL, 0x4669be79UL, 0xcb61b38cUL, 0xbc66831aUL, 0x256fd2a0UL, 0x5268e236UL, 0xcc0c7795UL, 0xbb0b4703UL, 0x220216b9UL, 0x5505262fUL, 0xc5ba3bbeUL, 0xb2bd0b28UL, 0x2bb45a92UL, 0x5cb36a04UL, 0xc2d7ffa7UL, 0xb5d0cf31UL, 0x2cd99e8bUL, 0x5bdeae1dUL, 0x9b64c2b0UL, 0xec63f226UL, 0x756aa39cUL, 0x026d930aUL, 0x9c0906a9UL, 0xeb0e363fUL, 0x72076785UL, 0x05005713UL, 0x95bf4a82UL, 0xe2b87a14UL, 0x7bb12baeUL, 0x0cb61b38UL, 0x92d28e9bUL, 0xe5d5be0dUL, 0x7cdcefb7UL, 0x0bdbdf21UL, 0x86d3d2d4UL, 0xf1d4e242UL, 0x68ddb3f8UL, 0x1fda836eUL, 0x81be16cdUL, 0xf6b9265bUL, 0x6fb077e1UL, 0x18b74777UL, 0x88085ae6UL, 0xff0f6a70UL, 0x66063bcaUL, 0x11010b5cUL, 0x8f659effUL, 0xf862ae69UL, 0x616bffd3UL, 0x166ccf45UL, 0xa00ae278UL, 0xd70dd2eeUL, 0x4e048354UL, 0x3903b3c2UL, 0xa7672661UL, 0xd06016f7UL, 0x4969474dUL, 0x3e6e77dbUL, 0xaed16a4aUL, 0xd9d65adcUL, 0x40df0b66UL, 0x37d83bf0UL, 0xa9bcae53UL, 0xdebb9ec5UL, 0x47b2cf7fUL, 0x30b5ffe9UL, 0xbdbdf21cUL, 0xcabac28aUL, 0x53b39330UL, 0x24b4a3a6UL, 0xbad03605UL, 0xcdd70693UL, 0x54de5729UL, 0x23d967bfUL, 0xb3667a2eUL, 0xc4614ab8UL, 0x5d681b02UL, 0x2a6f2b94UL, 0xb40bbe37UL, 0xc30c8ea1UL, 0x5a05df1bUL, 0x2d02ef8dUL #ifdef BYFOUR }, { 0x00000000UL, 0x191b3141UL, 0x32366282UL, 0x2b2d53c3UL, 0x646cc504UL, 0x7d77f445UL, 0x565aa786UL, 0x4f4196c7UL, 0xc8d98a08UL, 0xd1c2bb49UL, 0xfaefe88aUL, 0xe3f4d9cbUL, 0xacb54f0cUL, 0xb5ae7e4dUL, 0x9e832d8eUL, 0x87981ccfUL, 0x4ac21251UL, 0x53d92310UL, 0x78f470d3UL, 0x61ef4192UL, 0x2eaed755UL, 0x37b5e614UL, 0x1c98b5d7UL, 0x05838496UL, 0x821b9859UL, 0x9b00a918UL, 0xb02dfadbUL, 0xa936cb9aUL, 0xe6775d5dUL, 0xff6c6c1cUL, 0xd4413fdfUL, 0xcd5a0e9eUL, 0x958424a2UL, 0x8c9f15e3UL, 0xa7b24620UL, 0xbea97761UL, 0xf1e8e1a6UL, 0xe8f3d0e7UL, 0xc3de8324UL, 0xdac5b265UL, 0x5d5daeaaUL, 0x44469febUL, 0x6f6bcc28UL, 0x7670fd69UL, 0x39316baeUL, 0x202a5aefUL, 0x0b07092cUL, 0x121c386dUL, 0xdf4636f3UL, 0xc65d07b2UL, 0xed705471UL, 0xf46b6530UL, 0xbb2af3f7UL, 0xa231c2b6UL, 0x891c9175UL, 0x9007a034UL, 0x179fbcfbUL, 0x0e848dbaUL, 0x25a9de79UL, 0x3cb2ef38UL, 0x73f379ffUL, 0x6ae848beUL, 0x41c51b7dUL, 0x58de2a3cUL, 0xf0794f05UL, 0xe9627e44UL, 0xc24f2d87UL, 0xdb541cc6UL, 0x94158a01UL, 0x8d0ebb40UL, 0xa623e883UL, 0xbf38d9c2UL, 0x38a0c50dUL, 0x21bbf44cUL, 0x0a96a78fUL, 0x138d96ceUL, 0x5ccc0009UL, 0x45d73148UL, 0x6efa628bUL, 0x77e153caUL, 0xbabb5d54UL, 0xa3a06c15UL, 0x888d3fd6UL, 0x91960e97UL, 0xded79850UL, 0xc7cca911UL, 0xece1fad2UL, 0xf5facb93UL, 0x7262d75cUL, 0x6b79e61dUL, 0x4054b5deUL, 0x594f849fUL, 0x160e1258UL, 0x0f152319UL, 0x243870daUL, 0x3d23419bUL, 0x65fd6ba7UL, 0x7ce65ae6UL, 0x57cb0925UL, 0x4ed03864UL, 0x0191aea3UL, 0x188a9fe2UL, 0x33a7cc21UL, 0x2abcfd60UL, 0xad24e1afUL, 0xb43fd0eeUL, 0x9f12832dUL, 0x8609b26cUL, 0xc94824abUL, 0xd05315eaUL, 0xfb7e4629UL, 0xe2657768UL, 0x2f3f79f6UL, 0x362448b7UL, 0x1d091b74UL, 0x04122a35UL, 0x4b53bcf2UL, 0x52488db3UL, 0x7965de70UL, 0x607eef31UL, 0xe7e6f3feUL, 0xfefdc2bfUL, 0xd5d0917cUL, 0xcccba03dUL, 0x838a36faUL, 0x9a9107bbUL, 0xb1bc5478UL, 0xa8a76539UL, 0x3b83984bUL, 0x2298a90aUL, 0x09b5fac9UL, 0x10aecb88UL, 0x5fef5d4fUL, 0x46f46c0eUL, 0x6dd93fcdUL, 0x74c20e8cUL, 0xf35a1243UL, 0xea412302UL, 0xc16c70c1UL, 0xd8774180UL, 0x9736d747UL, 0x8e2de606UL, 0xa500b5c5UL, 0xbc1b8484UL, 0x71418a1aUL, 0x685abb5bUL, 0x4377e898UL, 0x5a6cd9d9UL, 0x152d4f1eUL, 0x0c367e5fUL, 0x271b2d9cUL, 0x3e001cddUL, 0xb9980012UL, 0xa0833153UL, 0x8bae6290UL, 0x92b553d1UL, 0xddf4c516UL, 0xc4eff457UL, 0xefc2a794UL, 0xf6d996d5UL, 0xae07bce9UL, 0xb71c8da8UL, 0x9c31de6bUL, 0x852aef2aUL, 0xca6b79edUL, 0xd37048acUL, 0xf85d1b6fUL, 0xe1462a2eUL, 0x66de36e1UL, 0x7fc507a0UL, 0x54e85463UL, 0x4df36522UL, 0x02b2f3e5UL, 0x1ba9c2a4UL, 0x30849167UL, 0x299fa026UL, 0xe4c5aeb8UL, 0xfdde9ff9UL, 0xd6f3cc3aUL, 0xcfe8fd7bUL, 0x80a96bbcUL, 0x99b25afdUL, 0xb29f093eUL, 0xab84387fUL, 0x2c1c24b0UL, 0x350715f1UL, 0x1e2a4632UL, 0x07317773UL, 0x4870e1b4UL, 0x516bd0f5UL, 0x7a468336UL, 0x635db277UL, 0xcbfad74eUL, 0xd2e1e60fUL, 0xf9ccb5ccUL, 0xe0d7848dUL, 0xaf96124aUL, 0xb68d230bUL, 0x9da070c8UL, 0x84bb4189UL, 0x03235d46UL, 0x1a386c07UL, 0x31153fc4UL, 0x280e0e85UL, 0x674f9842UL, 0x7e54a903UL, 0x5579fac0UL, 0x4c62cb81UL, 0x8138c51fUL, 0x9823f45eUL, 0xb30ea79dUL, 0xaa1596dcUL, 0xe554001bUL, 0xfc4f315aUL, 0xd7626299UL, 0xce7953d8UL, 0x49e14f17UL, 0x50fa7e56UL, 0x7bd72d95UL, 0x62cc1cd4UL, 0x2d8d8a13UL, 0x3496bb52UL, 0x1fbbe891UL, 0x06a0d9d0UL, 0x5e7ef3ecUL, 0x4765c2adUL, 0x6c48916eUL, 0x7553a02fUL, 0x3a1236e8UL, 0x230907a9UL, 0x0824546aUL, 0x113f652bUL, 0x96a779e4UL, 0x8fbc48a5UL, 0xa4911b66UL, 0xbd8a2a27UL, 0xf2cbbce0UL, 0xebd08da1UL, 0xc0fdde62UL, 0xd9e6ef23UL, 0x14bce1bdUL, 0x0da7d0fcUL, 0x268a833fUL, 0x3f91b27eUL, 0x70d024b9UL, 0x69cb15f8UL, 0x42e6463bUL, 0x5bfd777aUL, 0xdc656bb5UL, 0xc57e5af4UL, 0xee530937UL, 0xf7483876UL, 0xb809aeb1UL, 0xa1129ff0UL, 0x8a3fcc33UL, 0x9324fd72UL }, { 0x00000000UL, 0x01c26a37UL, 0x0384d46eUL, 0x0246be59UL, 0x0709a8dcUL, 0x06cbc2ebUL, 0x048d7cb2UL, 0x054f1685UL, 0x0e1351b8UL, 0x0fd13b8fUL, 0x0d9785d6UL, 0x0c55efe1UL, 0x091af964UL, 0x08d89353UL, 0x0a9e2d0aUL, 0x0b5c473dUL, 0x1c26a370UL, 0x1de4c947UL, 0x1fa2771eUL, 0x1e601d29UL, 0x1b2f0bacUL, 0x1aed619bUL, 0x18abdfc2UL, 0x1969b5f5UL, 0x1235f2c8UL, 0x13f798ffUL, 0x11b126a6UL, 0x10734c91UL, 0x153c5a14UL, 0x14fe3023UL, 0x16b88e7aUL, 0x177ae44dUL, 0x384d46e0UL, 0x398f2cd7UL, 0x3bc9928eUL, 0x3a0bf8b9UL, 0x3f44ee3cUL, 0x3e86840bUL, 0x3cc03a52UL, 0x3d025065UL, 0x365e1758UL, 0x379c7d6fUL, 0x35dac336UL, 0x3418a901UL, 0x3157bf84UL, 0x3095d5b3UL, 0x32d36beaUL, 0x331101ddUL, 0x246be590UL, 0x25a98fa7UL, 0x27ef31feUL, 0x262d5bc9UL, 0x23624d4cUL, 0x22a0277bUL, 0x20e69922UL, 0x2124f315UL, 0x2a78b428UL, 0x2bbade1fUL, 0x29fc6046UL, 0x283e0a71UL, 0x2d711cf4UL, 0x2cb376c3UL, 0x2ef5c89aUL, 0x2f37a2adUL, 0x709a8dc0UL, 0x7158e7f7UL, 0x731e59aeUL, 0x72dc3399UL, 0x7793251cUL, 0x76514f2bUL, 0x7417f172UL, 0x75d59b45UL, 0x7e89dc78UL, 0x7f4bb64fUL, 0x7d0d0816UL, 0x7ccf6221UL, 0x798074a4UL, 0x78421e93UL, 0x7a04a0caUL, 0x7bc6cafdUL, 0x6cbc2eb0UL, 0x6d7e4487UL, 0x6f38fadeUL, 0x6efa90e9UL, 0x6bb5866cUL, 0x6a77ec5bUL, 0x68315202UL, 0x69f33835UL, 0x62af7f08UL, 0x636d153fUL, 0x612bab66UL, 0x60e9c151UL, 0x65a6d7d4UL, 0x6464bde3UL, 0x662203baUL, 0x67e0698dUL, 0x48d7cb20UL, 0x4915a117UL, 0x4b531f4eUL, 0x4a917579UL, 0x4fde63fcUL, 0x4e1c09cbUL, 0x4c5ab792UL, 0x4d98dda5UL, 0x46c49a98UL, 0x4706f0afUL, 0x45404ef6UL, 0x448224c1UL, 0x41cd3244UL, 0x400f5873UL, 0x4249e62aUL, 0x438b8c1dUL, 0x54f16850UL, 0x55330267UL, 0x5775bc3eUL, 0x56b7d609UL, 0x53f8c08cUL, 0x523aaabbUL, 0x507c14e2UL, 0x51be7ed5UL, 0x5ae239e8UL, 0x5b2053dfUL, 0x5966ed86UL, 0x58a487b1UL, 0x5deb9134UL, 0x5c29fb03UL, 0x5e6f455aUL, 0x5fad2f6dUL, 0xe1351b80UL, 0xe0f771b7UL, 0xe2b1cfeeUL, 0xe373a5d9UL, 0xe63cb35cUL, 0xe7fed96bUL, 0xe5b86732UL, 0xe47a0d05UL, 0xef264a38UL, 0xeee4200fUL, 0xeca29e56UL, 0xed60f461UL, 0xe82fe2e4UL, 0xe9ed88d3UL, 0xebab368aUL, 0xea695cbdUL, 0xfd13b8f0UL, 0xfcd1d2c7UL, 0xfe976c9eUL, 0xff5506a9UL, 0xfa1a102cUL, 0xfbd87a1bUL, 0xf99ec442UL, 0xf85cae75UL, 0xf300e948UL, 0xf2c2837fUL, 0xf0843d26UL, 0xf1465711UL, 0xf4094194UL, 0xf5cb2ba3UL, 0xf78d95faUL, 0xf64fffcdUL, 0xd9785d60UL, 0xd8ba3757UL, 0xdafc890eUL, 0xdb3ee339UL, 0xde71f5bcUL, 0xdfb39f8bUL, 0xddf521d2UL, 0xdc374be5UL, 0xd76b0cd8UL, 0xd6a966efUL, 0xd4efd8b6UL, 0xd52db281UL, 0xd062a404UL, 0xd1a0ce33UL, 0xd3e6706aUL, 0xd2241a5dUL, 0xc55efe10UL, 0xc49c9427UL, 0xc6da2a7eUL, 0xc7184049UL, 0xc25756ccUL, 0xc3953cfbUL, 0xc1d382a2UL, 0xc011e895UL, 0xcb4dafa8UL, 0xca8fc59fUL, 0xc8c97bc6UL, 0xc90b11f1UL, 0xcc440774UL, 0xcd866d43UL, 0xcfc0d31aUL, 0xce02b92dUL, 0x91af9640UL, 0x906dfc77UL, 0x922b422eUL, 0x93e92819UL, 0x96a63e9cUL, 0x976454abUL, 0x9522eaf2UL, 0x94e080c5UL, 0x9fbcc7f8UL, 0x9e7eadcfUL, 0x9c381396UL, 0x9dfa79a1UL, 0x98b56f24UL, 0x99770513UL, 0x9b31bb4aUL, 0x9af3d17dUL, 0x8d893530UL, 0x8c4b5f07UL, 0x8e0de15eUL, 0x8fcf8b69UL, 0x8a809decUL, 0x8b42f7dbUL, 0x89044982UL, 0x88c623b5UL, 0x839a6488UL, 0x82580ebfUL, 0x801eb0e6UL, 0x81dcdad1UL, 0x8493cc54UL, 0x8551a663UL, 0x8717183aUL, 0x86d5720dUL, 0xa9e2d0a0UL, 0xa820ba97UL, 0xaa6604ceUL, 0xaba46ef9UL, 0xaeeb787cUL, 0xaf29124bUL, 0xad6fac12UL, 0xacadc625UL, 0xa7f18118UL, 0xa633eb2fUL, 0xa4755576UL, 0xa5b73f41UL, 0xa0f829c4UL, 0xa13a43f3UL, 0xa37cfdaaUL, 0xa2be979dUL, 0xb5c473d0UL, 0xb40619e7UL, 0xb640a7beUL, 0xb782cd89UL, 0xb2cddb0cUL, 0xb30fb13bUL, 0xb1490f62UL, 0xb08b6555UL, 0xbbd72268UL, 0xba15485fUL, 0xb853f606UL, 0xb9919c31UL, 0xbcde8ab4UL, 0xbd1ce083UL, 0xbf5a5edaUL, 0xbe9834edUL }, { 0x00000000UL, 0xb8bc6765UL, 0xaa09c88bUL, 0x12b5afeeUL, 0x8f629757UL, 0x37def032UL, 0x256b5fdcUL, 0x9dd738b9UL, 0xc5b428efUL, 0x7d084f8aUL, 0x6fbde064UL, 0xd7018701UL, 0x4ad6bfb8UL, 0xf26ad8ddUL, 0xe0df7733UL, 0x58631056UL, 0x5019579fUL, 0xe8a530faUL, 0xfa109f14UL, 0x42acf871UL, 0xdf7bc0c8UL, 0x67c7a7adUL, 0x75720843UL, 0xcdce6f26UL, 0x95ad7f70UL, 0x2d111815UL, 0x3fa4b7fbUL, 0x8718d09eUL, 0x1acfe827UL, 0xa2738f42UL, 0xb0c620acUL, 0x087a47c9UL, 0xa032af3eUL, 0x188ec85bUL, 0x0a3b67b5UL, 0xb28700d0UL, 0x2f503869UL, 0x97ec5f0cUL, 0x8559f0e2UL, 0x3de59787UL, 0x658687d1UL, 0xdd3ae0b4UL, 0xcf8f4f5aUL, 0x7733283fUL, 0xeae41086UL, 0x525877e3UL, 0x40edd80dUL, 0xf851bf68UL, 0xf02bf8a1UL, 0x48979fc4UL, 0x5a22302aUL, 0xe29e574fUL, 0x7f496ff6UL, 0xc7f50893UL, 0xd540a77dUL, 0x6dfcc018UL, 0x359fd04eUL, 0x8d23b72bUL, 0x9f9618c5UL, 0x272a7fa0UL, 0xbafd4719UL, 0x0241207cUL, 0x10f48f92UL, 0xa848e8f7UL, 0x9b14583dUL, 0x23a83f58UL, 0x311d90b6UL, 0x89a1f7d3UL, 0x1476cf6aUL, 0xaccaa80fUL, 0xbe7f07e1UL, 0x06c36084UL, 0x5ea070d2UL, 0xe61c17b7UL, 0xf4a9b859UL, 0x4c15df3cUL, 0xd1c2e785UL, 0x697e80e0UL, 0x7bcb2f0eUL, 0xc377486bUL, 0xcb0d0fa2UL, 0x73b168c7UL, 0x6104c729UL, 0xd9b8a04cUL, 0x446f98f5UL, 0xfcd3ff90UL, 0xee66507eUL, 0x56da371bUL, 0x0eb9274dUL, 0xb6054028UL, 0xa4b0efc6UL, 0x1c0c88a3UL, 0x81dbb01aUL, 0x3967d77fUL, 0x2bd27891UL, 0x936e1ff4UL, 0x3b26f703UL, 0x839a9066UL, 0x912f3f88UL, 0x299358edUL, 0xb4446054UL, 0x0cf80731UL, 0x1e4da8dfUL, 0xa6f1cfbaUL, 0xfe92dfecUL, 0x462eb889UL, 0x549b1767UL, 0xec277002UL, 0x71f048bbUL, 0xc94c2fdeUL, 0xdbf98030UL, 0x6345e755UL, 0x6b3fa09cUL, 0xd383c7f9UL, 0xc1366817UL, 0x798a0f72UL, 0xe45d37cbUL, 0x5ce150aeUL, 0x4e54ff40UL, 0xf6e89825UL, 0xae8b8873UL, 0x1637ef16UL, 0x048240f8UL, 0xbc3e279dUL, 0x21e91f24UL, 0x99557841UL, 0x8be0d7afUL, 0x335cb0caUL, 0xed59b63bUL, 0x55e5d15eUL, 0x47507eb0UL, 0xffec19d5UL, 0x623b216cUL, 0xda874609UL, 0xc832e9e7UL, 0x708e8e82UL, 0x28ed9ed4UL, 0x9051f9b1UL, 0x82e4565fUL, 0x3a58313aUL, 0xa78f0983UL, 0x1f336ee6UL, 0x0d86c108UL, 0xb53aa66dUL, 0xbd40e1a4UL, 0x05fc86c1UL, 0x1749292fUL, 0xaff54e4aUL, 0x322276f3UL, 0x8a9e1196UL, 0x982bbe78UL, 0x2097d91dUL, 0x78f4c94bUL, 0xc048ae2eUL, 0xd2fd01c0UL, 0x6a4166a5UL, 0xf7965e1cUL, 0x4f2a3979UL, 0x5d9f9697UL, 0xe523f1f2UL, 0x4d6b1905UL, 0xf5d77e60UL, 0xe762d18eUL, 0x5fdeb6ebUL, 0xc2098e52UL, 0x7ab5e937UL, 0x680046d9UL, 0xd0bc21bcUL, 0x88df31eaUL, 0x3063568fUL, 0x22d6f961UL, 0x9a6a9e04UL, 0x07bda6bdUL, 0xbf01c1d8UL, 0xadb46e36UL, 0x15080953UL, 0x1d724e9aUL, 0xa5ce29ffUL, 0xb77b8611UL, 0x0fc7e174UL, 0x9210d9cdUL, 0x2aacbea8UL, 0x38191146UL, 0x80a57623UL, 0xd8c66675UL, 0x607a0110UL, 0x72cfaefeUL, 0xca73c99bUL, 0x57a4f122UL, 0xef189647UL, 0xfdad39a9UL, 0x45115eccUL, 0x764dee06UL, 0xcef18963UL, 0xdc44268dUL, 0x64f841e8UL, 0xf92f7951UL, 0x41931e34UL, 0x5326b1daUL, 0xeb9ad6bfUL, 0xb3f9c6e9UL, 0x0b45a18cUL, 0x19f00e62UL, 0xa14c6907UL, 0x3c9b51beUL, 0x842736dbUL, 0x96929935UL, 0x2e2efe50UL, 0x2654b999UL, 0x9ee8defcUL, 0x8c5d7112UL, 0x34e11677UL, 0xa9362eceUL, 0x118a49abUL, 0x033fe645UL, 0xbb838120UL, 0xe3e09176UL, 0x5b5cf613UL, 0x49e959fdUL, 0xf1553e98UL, 0x6c820621UL, 0xd43e6144UL, 0xc68bceaaUL, 0x7e37a9cfUL, 0xd67f4138UL, 0x6ec3265dUL, 0x7c7689b3UL, 0xc4caeed6UL, 0x591dd66fUL, 0xe1a1b10aUL, 0xf3141ee4UL, 0x4ba87981UL, 0x13cb69d7UL, 0xab770eb2UL, 0xb9c2a15cUL, 0x017ec639UL, 0x9ca9fe80UL, 0x241599e5UL, 0x36a0360bUL, 0x8e1c516eUL, 0x866616a7UL, 0x3eda71c2UL, 0x2c6fde2cUL, 0x94d3b949UL, 0x090481f0UL, 0xb1b8e695UL, 0xa30d497bUL, 0x1bb12e1eUL, 0x43d23e48UL, 0xfb6e592dUL, 0xe9dbf6c3UL, 0x516791a6UL, 0xccb0a91fUL, 0x740cce7aUL, 0x66b96194UL, 0xde0506f1UL }, { 0x00000000UL, 0x96300777UL, 0x2c610eeeUL, 0xba510999UL, 0x19c46d07UL, 0x8ff46a70UL, 0x35a563e9UL, 0xa395649eUL, 0x3288db0eUL, 0xa4b8dc79UL, 0x1ee9d5e0UL, 0x88d9d297UL, 0x2b4cb609UL, 0xbd7cb17eUL, 0x072db8e7UL, 0x911dbf90UL, 0x6410b71dUL, 0xf220b06aUL, 0x4871b9f3UL, 0xde41be84UL, 0x7dd4da1aUL, 0xebe4dd6dUL, 0x51b5d4f4UL, 0xc785d383UL, 0x56986c13UL, 0xc0a86b64UL, 0x7af962fdUL, 0xecc9658aUL, 0x4f5c0114UL, 0xd96c0663UL, 0x633d0ffaUL, 0xf50d088dUL, 0xc8206e3bUL, 0x5e10694cUL, 0xe44160d5UL, 0x727167a2UL, 0xd1e4033cUL, 0x47d4044bUL, 0xfd850dd2UL, 0x6bb50aa5UL, 0xfaa8b535UL, 0x6c98b242UL, 0xd6c9bbdbUL, 0x40f9bcacUL, 0xe36cd832UL, 0x755cdf45UL, 0xcf0dd6dcUL, 0x593dd1abUL, 0xac30d926UL, 0x3a00de51UL, 0x8051d7c8UL, 0x1661d0bfUL, 0xb5f4b421UL, 0x23c4b356UL, 0x9995bacfUL, 0x0fa5bdb8UL, 0x9eb80228UL, 0x0888055fUL, 0xb2d90cc6UL, 0x24e90bb1UL, 0x877c6f2fUL, 0x114c6858UL, 0xab1d61c1UL, 0x3d2d66b6UL, 0x9041dc76UL, 0x0671db01UL, 0xbc20d298UL, 0x2a10d5efUL, 0x8985b171UL, 0x1fb5b606UL, 0xa5e4bf9fUL, 0x33d4b8e8UL, 0xa2c90778UL, 0x34f9000fUL, 0x8ea80996UL, 0x18980ee1UL, 0xbb0d6a7fUL, 0x2d3d6d08UL, 0x976c6491UL, 0x015c63e6UL, 0xf4516b6bUL, 0x62616c1cUL, 0xd8306585UL, 0x4e0062f2UL, 0xed95066cUL, 0x7ba5011bUL, 0xc1f40882UL, 0x57c40ff5UL, 0xc6d9b065UL, 0x50e9b712UL, 0xeab8be8bUL, 0x7c88b9fcUL, 0xdf1ddd62UL, 0x492dda15UL, 0xf37cd38cUL, 0x654cd4fbUL, 0x5861b24dUL, 0xce51b53aUL, 0x7400bca3UL, 0xe230bbd4UL, 0x41a5df4aUL, 0xd795d83dUL, 0x6dc4d1a4UL, 0xfbf4d6d3UL, 0x6ae96943UL, 0xfcd96e34UL, 0x468867adUL, 0xd0b860daUL, 0x732d0444UL, 0xe51d0333UL, 0x5f4c0aaaUL, 0xc97c0dddUL, 0x3c710550UL, 0xaa410227UL, 0x10100bbeUL, 0x86200cc9UL, 0x25b56857UL, 0xb3856f20UL, 0x09d466b9UL, 0x9fe461ceUL, 0x0ef9de5eUL, 0x98c9d929UL, 0x2298d0b0UL, 0xb4a8d7c7UL, 0x173db359UL, 0x810db42eUL, 0x3b5cbdb7UL, 0xad6cbac0UL, 0x2083b8edUL, 0xb6b3bf9aUL, 0x0ce2b603UL, 0x9ad2b174UL, 0x3947d5eaUL, 0xaf77d29dUL, 0x1526db04UL, 0x8316dc73UL, 0x120b63e3UL, 0x843b6494UL, 0x3e6a6d0dUL, 0xa85a6a7aUL, 0x0bcf0ee4UL, 0x9dff0993UL, 0x27ae000aUL, 0xb19e077dUL, 0x44930ff0UL, 0xd2a30887UL, 0x68f2011eUL, 0xfec20669UL, 0x5d5762f7UL, 0xcb676580UL, 0x71366c19UL, 0xe7066b6eUL, 0x761bd4feUL, 0xe02bd389UL, 0x5a7ada10UL, 0xcc4add67UL, 0x6fdfb9f9UL, 0xf9efbe8eUL, 0x43beb717UL, 0xd58eb060UL, 0xe8a3d6d6UL, 0x7e93d1a1UL, 0xc4c2d838UL, 0x52f2df4fUL, 0xf167bbd1UL, 0x6757bca6UL, 0xdd06b53fUL, 0x4b36b248UL, 0xda2b0dd8UL, 0x4c1b0aafUL, 0xf64a0336UL, 0x607a0441UL, 0xc3ef60dfUL, 0x55df67a8UL, 0xef8e6e31UL, 0x79be6946UL, 0x8cb361cbUL, 0x1a8366bcUL, 0xa0d26f25UL, 0x36e26852UL, 0x95770cccUL, 0x03470bbbUL, 0xb9160222UL, 0x2f260555UL, 0xbe3bbac5UL, 0x280bbdb2UL, 0x925ab42bUL, 0x046ab35cUL, 0xa7ffd7c2UL, 0x31cfd0b5UL, 0x8b9ed92cUL, 0x1daede5bUL, 0xb0c2649bUL, 0x26f263ecUL, 0x9ca36a75UL, 0x0a936d02UL, 0xa906099cUL, 0x3f360eebUL, 0x85670772UL, 0x13570005UL, 0x824abf95UL, 0x147ab8e2UL, 0xae2bb17bUL, 0x381bb60cUL, 0x9b8ed292UL, 0x0dbed5e5UL, 0xb7efdc7cUL, 0x21dfdb0bUL, 0xd4d2d386UL, 0x42e2d4f1UL, 0xf8b3dd68UL, 0x6e83da1fUL, 0xcd16be81UL, 0x5b26b9f6UL, 0xe177b06fUL, 0x7747b718UL, 0xe65a0888UL, 0x706a0fffUL, 0xca3b0666UL, 0x5c0b0111UL, 0xff9e658fUL, 0x69ae62f8UL, 0xd3ff6b61UL, 0x45cf6c16UL, 0x78e20aa0UL, 0xeed20dd7UL, 0x5483044eUL, 0xc2b30339UL, 0x612667a7UL, 0xf71660d0UL, 0x4d476949UL, 0xdb776e3eUL, 0x4a6ad1aeUL, 0xdc5ad6d9UL, 0x660bdf40UL, 0xf03bd837UL, 0x53aebca9UL, 0xc59ebbdeUL, 0x7fcfb247UL, 0xe9ffb530UL, 0x1cf2bdbdUL, 0x8ac2bacaUL, 0x3093b353UL, 0xa6a3b424UL, 0x0536d0baUL, 0x9306d7cdUL, 0x2957de54UL, 0xbf67d923UL, 0x2e7a66b3UL, 0xb84a61c4UL, 0x021b685dUL, 0x942b6f2aUL, 0x37be0bb4UL, 0xa18e0cc3UL, 0x1bdf055aUL, 0x8def022dUL }, { 0x00000000UL, 0x41311b19UL, 0x82623632UL, 0xc3532d2bUL, 0x04c56c64UL, 0x45f4777dUL, 0x86a75a56UL, 0xc796414fUL, 0x088ad9c8UL, 0x49bbc2d1UL, 0x8ae8effaUL, 0xcbd9f4e3UL, 0x0c4fb5acUL, 0x4d7eaeb5UL, 0x8e2d839eUL, 0xcf1c9887UL, 0x5112c24aUL, 0x1023d953UL, 0xd370f478UL, 0x9241ef61UL, 0x55d7ae2eUL, 0x14e6b537UL, 0xd7b5981cUL, 0x96848305UL, 0x59981b82UL, 0x18a9009bUL, 0xdbfa2db0UL, 0x9acb36a9UL, 0x5d5d77e6UL, 0x1c6c6cffUL, 0xdf3f41d4UL, 0x9e0e5acdUL, 0xa2248495UL, 0xe3159f8cUL, 0x2046b2a7UL, 0x6177a9beUL, 0xa6e1e8f1UL, 0xe7d0f3e8UL, 0x2483dec3UL, 0x65b2c5daUL, 0xaaae5d5dUL, 0xeb9f4644UL, 0x28cc6b6fUL, 0x69fd7076UL, 0xae6b3139UL, 0xef5a2a20UL, 0x2c09070bUL, 0x6d381c12UL, 0xf33646dfUL, 0xb2075dc6UL, 0x715470edUL, 0x30656bf4UL, 0xf7f32abbUL, 0xb6c231a2UL, 0x75911c89UL, 0x34a00790UL, 0xfbbc9f17UL, 0xba8d840eUL, 0x79dea925UL, 0x38efb23cUL, 0xff79f373UL, 0xbe48e86aUL, 0x7d1bc541UL, 0x3c2ade58UL, 0x054f79f0UL, 0x447e62e9UL, 0x872d4fc2UL, 0xc61c54dbUL, 0x018a1594UL, 0x40bb0e8dUL, 0x83e823a6UL, 0xc2d938bfUL, 0x0dc5a038UL, 0x4cf4bb21UL, 0x8fa7960aUL, 0xce968d13UL, 0x0900cc5cUL, 0x4831d745UL, 0x8b62fa6eUL, 0xca53e177UL, 0x545dbbbaUL, 0x156ca0a3UL, 0xd63f8d88UL, 0x970e9691UL, 0x5098d7deUL, 0x11a9ccc7UL, 0xd2fae1ecUL, 0x93cbfaf5UL, 0x5cd76272UL, 0x1de6796bUL, 0xdeb55440UL, 0x9f844f59UL, 0x58120e16UL, 0x1923150fUL, 0xda703824UL, 0x9b41233dUL, 0xa76bfd65UL, 0xe65ae67cUL, 0x2509cb57UL, 0x6438d04eUL, 0xa3ae9101UL, 0xe29f8a18UL, 0x21cca733UL, 0x60fdbc2aUL, 0xafe124adUL, 0xeed03fb4UL, 0x2d83129fUL, 0x6cb20986UL, 0xab2448c9UL, 0xea1553d0UL, 0x29467efbUL, 0x687765e2UL, 0xf6793f2fUL, 0xb7482436UL, 0x741b091dUL, 0x352a1204UL, 0xf2bc534bUL, 0xb38d4852UL, 0x70de6579UL, 0x31ef7e60UL, 0xfef3e6e7UL, 0xbfc2fdfeUL, 0x7c91d0d5UL, 0x3da0cbccUL, 0xfa368a83UL, 0xbb07919aUL, 0x7854bcb1UL, 0x3965a7a8UL, 0x4b98833bUL, 0x0aa99822UL, 0xc9fab509UL, 0x88cbae10UL, 0x4f5def5fUL, 0x0e6cf446UL, 0xcd3fd96dUL, 0x8c0ec274UL, 0x43125af3UL, 0x022341eaUL, 0xc1706cc1UL, 0x804177d8UL, 0x47d73697UL, 0x06e62d8eUL, 0xc5b500a5UL, 0x84841bbcUL, 0x1a8a4171UL, 0x5bbb5a68UL, 0x98e87743UL, 0xd9d96c5aUL, 0x1e4f2d15UL, 0x5f7e360cUL, 0x9c2d1b27UL, 0xdd1c003eUL, 0x120098b9UL, 0x533183a0UL, 0x9062ae8bUL, 0xd153b592UL, 0x16c5f4ddUL, 0x57f4efc4UL, 0x94a7c2efUL, 0xd596d9f6UL, 0xe9bc07aeUL, 0xa88d1cb7UL, 0x6bde319cUL, 0x2aef2a85UL, 0xed796bcaUL, 0xac4870d3UL, 0x6f1b5df8UL, 0x2e2a46e1UL, 0xe136de66UL, 0xa007c57fUL, 0x6354e854UL, 0x2265f34dUL, 0xe5f3b202UL, 0xa4c2a91bUL, 0x67918430UL, 0x26a09f29UL, 0xb8aec5e4UL, 0xf99fdefdUL, 0x3accf3d6UL, 0x7bfde8cfUL, 0xbc6ba980UL, 0xfd5ab299UL, 0x3e099fb2UL, 0x7f3884abUL, 0xb0241c2cUL, 0xf1150735UL, 0x32462a1eUL, 0x73773107UL, 0xb4e17048UL, 0xf5d06b51UL, 0x3683467aUL, 0x77b25d63UL, 0x4ed7facbUL, 0x0fe6e1d2UL, 0xccb5ccf9UL, 0x8d84d7e0UL, 0x4a1296afUL, 0x0b238db6UL, 0xc870a09dUL, 0x8941bb84UL, 0x465d2303UL, 0x076c381aUL, 0xc43f1531UL, 0x850e0e28UL, 0x42984f67UL, 0x03a9547eUL, 0xc0fa7955UL, 0x81cb624cUL, 0x1fc53881UL, 0x5ef42398UL, 0x9da70eb3UL, 0xdc9615aaUL, 0x1b0054e5UL, 0x5a314ffcUL, 0x996262d7UL, 0xd85379ceUL, 0x174fe149UL, 0x567efa50UL, 0x952dd77bUL, 0xd41ccc62UL, 0x138a8d2dUL, 0x52bb9634UL, 0x91e8bb1fUL, 0xd0d9a006UL, 0xecf37e5eUL, 0xadc26547UL, 0x6e91486cUL, 0x2fa05375UL, 0xe836123aUL, 0xa9070923UL, 0x6a542408UL, 0x2b653f11UL, 0xe479a796UL, 0xa548bc8fUL, 0x661b91a4UL, 0x272a8abdUL, 0xe0bccbf2UL, 0xa18dd0ebUL, 0x62defdc0UL, 0x23efe6d9UL, 0xbde1bc14UL, 0xfcd0a70dUL, 0x3f838a26UL, 0x7eb2913fUL, 0xb924d070UL, 0xf815cb69UL, 0x3b46e642UL, 0x7a77fd5bUL, 0xb56b65dcUL, 0xf45a7ec5UL, 0x370953eeUL, 0x763848f7UL, 0xb1ae09b8UL, 0xf09f12a1UL, 0x33cc3f8aUL, 0x72fd2493UL }, { 0x00000000UL, 0x376ac201UL, 0x6ed48403UL, 0x59be4602UL, 0xdca80907UL, 0xebc2cb06UL, 0xb27c8d04UL, 0x85164f05UL, 0xb851130eUL, 0x8f3bd10fUL, 0xd685970dUL, 0xe1ef550cUL, 0x64f91a09UL, 0x5393d808UL, 0x0a2d9e0aUL, 0x3d475c0bUL, 0x70a3261cUL, 0x47c9e41dUL, 0x1e77a21fUL, 0x291d601eUL, 0xac0b2f1bUL, 0x9b61ed1aUL, 0xc2dfab18UL, 0xf5b56919UL, 0xc8f23512UL, 0xff98f713UL, 0xa626b111UL, 0x914c7310UL, 0x145a3c15UL, 0x2330fe14UL, 0x7a8eb816UL, 0x4de47a17UL, 0xe0464d38UL, 0xd72c8f39UL, 0x8e92c93bUL, 0xb9f80b3aUL, 0x3cee443fUL, 0x0b84863eUL, 0x523ac03cUL, 0x6550023dUL, 0x58175e36UL, 0x6f7d9c37UL, 0x36c3da35UL, 0x01a91834UL, 0x84bf5731UL, 0xb3d59530UL, 0xea6bd332UL, 0xdd011133UL, 0x90e56b24UL, 0xa78fa925UL, 0xfe31ef27UL, 0xc95b2d26UL, 0x4c4d6223UL, 0x7b27a022UL, 0x2299e620UL, 0x15f32421UL, 0x28b4782aUL, 0x1fdeba2bUL, 0x4660fc29UL, 0x710a3e28UL, 0xf41c712dUL, 0xc376b32cUL, 0x9ac8f52eUL, 0xada2372fUL, 0xc08d9a70UL, 0xf7e75871UL, 0xae591e73UL, 0x9933dc72UL, 0x1c259377UL, 0x2b4f5176UL, 0x72f11774UL, 0x459bd575UL, 0x78dc897eUL, 0x4fb64b7fUL, 0x16080d7dUL, 0x2162cf7cUL, 0xa4748079UL, 0x931e4278UL, 0xcaa0047aUL, 0xfdcac67bUL, 0xb02ebc6cUL, 0x87447e6dUL, 0xdefa386fUL, 0xe990fa6eUL, 0x6c86b56bUL, 0x5bec776aUL, 0x02523168UL, 0x3538f369UL, 0x087faf62UL, 0x3f156d63UL, 0x66ab2b61UL, 0x51c1e960UL, 0xd4d7a665UL, 0xe3bd6464UL, 0xba032266UL, 0x8d69e067UL, 0x20cbd748UL, 0x17a11549UL, 0x4e1f534bUL, 0x7975914aUL, 0xfc63de4fUL, 0xcb091c4eUL, 0x92b75a4cUL, 0xa5dd984dUL, 0x989ac446UL, 0xaff00647UL, 0xf64e4045UL, 0xc1248244UL, 0x4432cd41UL, 0x73580f40UL, 0x2ae64942UL, 0x1d8c8b43UL, 0x5068f154UL, 0x67023355UL, 0x3ebc7557UL, 0x09d6b756UL, 0x8cc0f853UL, 0xbbaa3a52UL, 0xe2147c50UL, 0xd57ebe51UL, 0xe839e25aUL, 0xdf53205bUL, 0x86ed6659UL, 0xb187a458UL, 0x3491eb5dUL, 0x03fb295cUL, 0x5a456f5eUL, 0x6d2fad5fUL, 0x801b35e1UL, 0xb771f7e0UL, 0xeecfb1e2UL, 0xd9a573e3UL, 0x5cb33ce6UL, 0x6bd9fee7UL, 0x3267b8e5UL, 0x050d7ae4UL, 0x384a26efUL, 0x0f20e4eeUL, 0x569ea2ecUL, 0x61f460edUL, 0xe4e22fe8UL, 0xd388ede9UL, 0x8a36abebUL, 0xbd5c69eaUL, 0xf0b813fdUL, 0xc7d2d1fcUL, 0x9e6c97feUL, 0xa90655ffUL, 0x2c101afaUL, 0x1b7ad8fbUL, 0x42c49ef9UL, 0x75ae5cf8UL, 0x48e900f3UL, 0x7f83c2f2UL, 0x263d84f0UL, 0x115746f1UL, 0x944109f4UL, 0xa32bcbf5UL, 0xfa958df7UL, 0xcdff4ff6UL, 0x605d78d9UL, 0x5737bad8UL, 0x0e89fcdaUL, 0x39e33edbUL, 0xbcf571deUL, 0x8b9fb3dfUL, 0xd221f5ddUL, 0xe54b37dcUL, 0xd80c6bd7UL, 0xef66a9d6UL, 0xb6d8efd4UL, 0x81b22dd5UL, 0x04a462d0UL, 0x33cea0d1UL, 0x6a70e6d3UL, 0x5d1a24d2UL, 0x10fe5ec5UL, 0x27949cc4UL, 0x7e2adac6UL, 0x494018c7UL, 0xcc5657c2UL, 0xfb3c95c3UL, 0xa282d3c1UL, 0x95e811c0UL, 0xa8af4dcbUL, 0x9fc58fcaUL, 0xc67bc9c8UL, 0xf1110bc9UL, 0x740744ccUL, 0x436d86cdUL, 0x1ad3c0cfUL, 0x2db902ceUL, 0x4096af91UL, 0x77fc6d90UL, 0x2e422b92UL, 0x1928e993UL, 0x9c3ea696UL, 0xab546497UL, 0xf2ea2295UL, 0xc580e094UL, 0xf8c7bc9fUL, 0xcfad7e9eUL, 0x9613389cUL, 0xa179fa9dUL, 0x246fb598UL, 0x13057799UL, 0x4abb319bUL, 0x7dd1f39aUL, 0x3035898dUL, 0x075f4b8cUL, 0x5ee10d8eUL, 0x698bcf8fUL, 0xec9d808aUL, 0xdbf7428bUL, 0x82490489UL, 0xb523c688UL, 0x88649a83UL, 0xbf0e5882UL, 0xe6b01e80UL, 0xd1dadc81UL, 0x54cc9384UL, 0x63a65185UL, 0x3a181787UL, 0x0d72d586UL, 0xa0d0e2a9UL, 0x97ba20a8UL, 0xce0466aaUL, 0xf96ea4abUL, 0x7c78ebaeUL, 0x4b1229afUL, 0x12ac6fadUL, 0x25c6adacUL, 0x1881f1a7UL, 0x2feb33a6UL, 0x765575a4UL, 0x413fb7a5UL, 0xc429f8a0UL, 0xf3433aa1UL, 0xaafd7ca3UL, 0x9d97bea2UL, 0xd073c4b5UL, 0xe71906b4UL, 0xbea740b6UL, 0x89cd82b7UL, 0x0cdbcdb2UL, 0x3bb10fb3UL, 0x620f49b1UL, 0x55658bb0UL, 0x6822d7bbUL, 0x5f4815baUL, 0x06f653b8UL, 0x319c91b9UL, 0xb48adebcUL, 0x83e01cbdUL, 0xda5e5abfUL, 0xed3498beUL }, { 0x00000000UL, 0x6567bcb8UL, 0x8bc809aaUL, 0xeeafb512UL, 0x5797628fUL, 0x32f0de37UL, 0xdc5f6b25UL, 0xb938d79dUL, 0xef28b4c5UL, 0x8a4f087dUL, 0x64e0bd6fUL, 0x018701d7UL, 0xb8bfd64aUL, 0xddd86af2UL, 0x3377dfe0UL, 0x56106358UL, 0x9f571950UL, 0xfa30a5e8UL, 0x149f10faUL, 0x71f8ac42UL, 0xc8c07bdfUL, 0xada7c767UL, 0x43087275UL, 0x266fcecdUL, 0x707fad95UL, 0x1518112dUL, 0xfbb7a43fUL, 0x9ed01887UL, 0x27e8cf1aUL, 0x428f73a2UL, 0xac20c6b0UL, 0xc9477a08UL, 0x3eaf32a0UL, 0x5bc88e18UL, 0xb5673b0aUL, 0xd00087b2UL, 0x6938502fUL, 0x0c5fec97UL, 0xe2f05985UL, 0x8797e53dUL, 0xd1878665UL, 0xb4e03addUL, 0x5a4f8fcfUL, 0x3f283377UL, 0x8610e4eaUL, 0xe3775852UL, 0x0dd8ed40UL, 0x68bf51f8UL, 0xa1f82bf0UL, 0xc49f9748UL, 0x2a30225aUL, 0x4f579ee2UL, 0xf66f497fUL, 0x9308f5c7UL, 0x7da740d5UL, 0x18c0fc6dUL, 0x4ed09f35UL, 0x2bb7238dUL, 0xc518969fUL, 0xa07f2a27UL, 0x1947fdbaUL, 0x7c204102UL, 0x928ff410UL, 0xf7e848a8UL, 0x3d58149bUL, 0x583fa823UL, 0xb6901d31UL, 0xd3f7a189UL, 0x6acf7614UL, 0x0fa8caacUL, 0xe1077fbeUL, 0x8460c306UL, 0xd270a05eUL, 0xb7171ce6UL, 0x59b8a9f4UL, 0x3cdf154cUL, 0x85e7c2d1UL, 0xe0807e69UL, 0x0e2fcb7bUL, 0x6b4877c3UL, 0xa20f0dcbUL, 0xc768b173UL, 0x29c70461UL, 0x4ca0b8d9UL, 0xf5986f44UL, 0x90ffd3fcUL, 0x7e5066eeUL, 0x1b37da56UL, 0x4d27b90eUL, 0x284005b6UL, 0xc6efb0a4UL, 0xa3880c1cUL, 0x1ab0db81UL, 0x7fd76739UL, 0x9178d22bUL, 0xf41f6e93UL, 0x03f7263bUL, 0x66909a83UL, 0x883f2f91UL, 0xed589329UL, 0x546044b4UL, 0x3107f80cUL, 0xdfa84d1eUL, 0xbacff1a6UL, 0xecdf92feUL, 0x89b82e46UL, 0x67179b54UL, 0x027027ecUL, 0xbb48f071UL, 0xde2f4cc9UL, 0x3080f9dbUL, 0x55e74563UL, 0x9ca03f6bUL, 0xf9c783d3UL, 0x176836c1UL, 0x720f8a79UL, 0xcb375de4UL, 0xae50e15cUL, 0x40ff544eUL, 0x2598e8f6UL, 0x73888baeUL, 0x16ef3716UL, 0xf8408204UL, 0x9d273ebcUL, 0x241fe921UL, 0x41785599UL, 0xafd7e08bUL, 0xcab05c33UL, 0x3bb659edUL, 0x5ed1e555UL, 0xb07e5047UL, 0xd519ecffUL, 0x6c213b62UL, 0x094687daUL, 0xe7e932c8UL, 0x828e8e70UL, 0xd49eed28UL, 0xb1f95190UL, 0x5f56e482UL, 0x3a31583aUL, 0x83098fa7UL, 0xe66e331fUL, 0x08c1860dUL, 0x6da63ab5UL, 0xa4e140bdUL, 0xc186fc05UL, 0x2f294917UL, 0x4a4ef5afUL, 0xf3762232UL, 0x96119e8aUL, 0x78be2b98UL, 0x1dd99720UL, 0x4bc9f478UL, 0x2eae48c0UL, 0xc001fdd2UL, 0xa566416aUL, 0x1c5e96f7UL, 0x79392a4fUL, 0x97969f5dUL, 0xf2f123e5UL, 0x05196b4dUL, 0x607ed7f5UL, 0x8ed162e7UL, 0xebb6de5fUL, 0x528e09c2UL, 0x37e9b57aUL, 0xd9460068UL, 0xbc21bcd0UL, 0xea31df88UL, 0x8f566330UL, 0x61f9d622UL, 0x049e6a9aUL, 0xbda6bd07UL, 0xd8c101bfUL, 0x366eb4adUL, 0x53090815UL, 0x9a4e721dUL, 0xff29cea5UL, 0x11867bb7UL, 0x74e1c70fUL, 0xcdd91092UL, 0xa8beac2aUL, 0x46111938UL, 0x2376a580UL, 0x7566c6d8UL, 0x10017a60UL, 0xfeaecf72UL, 0x9bc973caUL, 0x22f1a457UL, 0x479618efUL, 0xa939adfdUL, 0xcc5e1145UL, 0x06ee4d76UL, 0x6389f1ceUL, 0x8d2644dcUL, 0xe841f864UL, 0x51792ff9UL, 0x341e9341UL, 0xdab12653UL, 0xbfd69aebUL, 0xe9c6f9b3UL, 0x8ca1450bUL, 0x620ef019UL, 0x07694ca1UL, 0xbe519b3cUL, 0xdb362784UL, 0x35999296UL, 0x50fe2e2eUL, 0x99b95426UL, 0xfcdee89eUL, 0x12715d8cUL, 0x7716e134UL, 0xce2e36a9UL, 0xab498a11UL, 0x45e63f03UL, 0x208183bbUL, 0x7691e0e3UL, 0x13f65c5bUL, 0xfd59e949UL, 0x983e55f1UL, 0x2106826cUL, 0x44613ed4UL, 0xaace8bc6UL, 0xcfa9377eUL, 0x38417fd6UL, 0x5d26c36eUL, 0xb389767cUL, 0xd6eecac4UL, 0x6fd61d59UL, 0x0ab1a1e1UL, 0xe41e14f3UL, 0x8179a84bUL, 0xd769cb13UL, 0xb20e77abUL, 0x5ca1c2b9UL, 0x39c67e01UL, 0x80fea99cUL, 0xe5991524UL, 0x0b36a036UL, 0x6e511c8eUL, 0xa7166686UL, 0xc271da3eUL, 0x2cde6f2cUL, 0x49b9d394UL, 0xf0810409UL, 0x95e6b8b1UL, 0x7b490da3UL, 0x1e2eb11bUL, 0x483ed243UL, 0x2d596efbUL, 0xc3f6dbe9UL, 0xa6916751UL, 0x1fa9b0ccUL, 0x7ace0c74UL, 0x9461b966UL, 0xf10605deUL #endif } }; #include /* for NULL */ #include "crc32.h" /* ========================================================================= */ #define DO1 crc = crc_table[0][((int)crc ^ (*buf++)) & 0xff] ^ (crc >> 8) #define DO8 DO1; DO1; DO1; DO1; DO1; DO1; DO1; DO1 /* ========================================================================= */ unsigned long crc32(unsigned long crc, const unsigned char * buf, unsigned int len) { if (buf == NULL) return 0UL; #ifdef DYNAMIC_CRC_TABLE if (crc_table_empty) make_crc_table(); #endif /* DYNAMIC_CRC_TABLE */ #ifdef BYFOUR if (sizeof(void *) == sizeof(ptrdiff_t)) { u4 endian; endian = 1; if (*((unsigned char *)(&endian))) return crc32_little(crc, buf, len); else return crc32_big(crc, buf, len); } #endif /* BYFOUR */ crc = crc ^ 0xffffffffUL; while (len >= 8) { DO8; len -= 8; } if (len) do { DO1; } while (--len); return crc ^ 0xffffffffUL; } #ifdef BYFOUR /* ========================================================================= */ #define DOLIT4 c ^= *buf4++; \ c = crc_table[3][c & 0xff] ^ crc_table[2][(c >> 8) & 0xff] ^ \ crc_table[1][(c >> 16) & 0xff] ^ crc_table[0][c >> 24] #define DOLIT32 DOLIT4; DOLIT4; DOLIT4; DOLIT4; DOLIT4; DOLIT4; DOLIT4; DOLIT4 /* ========================================================================= */ local unsigned long crc32_little(crc, buf, len) unsigned long crc; const unsigned char FAR *buf; unsigned len; { register u4 c; register const u4 FAR *buf4; c = (u4)crc; c = ~c; while (len && ((ptrdiff_t)buf & 3)) { c = crc_table[0][(c ^ *buf++) & 0xff] ^ (c >> 8); len--; } buf4 = (const u4 FAR *)(const void FAR *)buf; while (len >= 32) { DOLIT32; len -= 32; } while (len >= 4) { DOLIT4; len -= 4; } buf = (const unsigned char FAR *)buf4; if (len) do { c = crc_table[0][(c ^ *buf++) & 0xff] ^ (c >> 8); } while (--len); c = ~c; return (unsigned long)c; } /* ========================================================================= */ #define DOBIG4 c ^= *++buf4; \ c = crc_table[4][c & 0xff] ^ crc_table[5][(c >> 8) & 0xff] ^ \ crc_table[6][(c >> 16) & 0xff] ^ crc_table[7][c >> 24] #define DOBIG32 DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4 /* ========================================================================= */ local unsigned long crc32_big(crc, buf, len) unsigned long crc; const unsigned char FAR *buf; unsigned len; { register u4 c; register const u4 FAR *buf4; c = REV((u4)crc); c = ~c; while (len && ((ptrdiff_t)buf & 3)) { c = crc_table[4][(c >> 24) ^ *buf++] ^ (c << 8); len--; } buf4 = (const u4 FAR *)(const void FAR *)buf; buf4--; while (len >= 32) { DOBIG32; len -= 32; } while (len >= 4) { DOBIG4; len -= 4; } buf4++; buf = (const unsigned char FAR *)buf4; if (len) do { c = crc_table[4][(c >> 24) ^ *buf++] ^ (c << 8); } while (--len); c = ~c; return (unsigned long)(REV(c)); } #endif /* BYFOUR */ pan-0.162/uulib/crc32.h000066400000000000000000000004471475412772400145270ustar00rootroot00000000000000#ifndef __CRC32_H__ #define __CRC32_H__ #ifndef _ANSI_ARGS_ #ifdef PROTOTYPES #define _ANSI_ARGS_(c) c #else #define _ANSI_ARGS_(c) () #endif #endif #ifdef __cplusplus extern "C" { #endif typedef unsigned long crc32_t; #undef Z_NULL #define Z_NULL nullptr #ifdef __cplusplus } #endif #endif pan-0.162/uulib/fptools.c000066400000000000000000000205401475412772400152700ustar00rootroot00000000000000/* * fptools.c, some helper functions for getcgi.c and uu(en|de)view * * Distributed under the terms of the GNU General Public License. * Use and be happy. */ #ifdef HAVE_CONFIG_H #include "config.h" #endif #ifdef SYSTEM_WINDLL #include #endif #ifdef SYSTEM_OS2 #include #endif /* * This file provides replacements for some handy functions that aren't * available on all systems, like most of the functions. They * should behave exactly as their counterparts. There are also extensions * that aren't portable at all (like strirstr etc.). * The proper behaviour in a configure script is as follows: * AC_CHECK_FUNC(strrchr,AC_DEFINE(strrchr,_FP_strrchr)) * This way, the (probably less efficient) replacements will only be used * where it is not provided by the default libraries. Be aware that this * does not work with replacements that just shadow wrong behaviour (like * _FP_free) or provide extended functionality (_FP_gets). * The above is not used in the uuenview/uudeview configuration script, * since both only use the replacement functions in non-performance-cri- * tical sections (except for _FP_tempnam and _FP_strerror, where some * functionality of the original would be lost). */ #include #include #include #include #ifdef HAVE_MALLOC_H #include #endif #ifdef HAVE_UNISTD_H #include #endif #ifdef HAVE_MEMORY_H #include #endif #include #if 0 #ifdef SYSTEM_WINDLL BOOL _export WINAPI DllEntryPoint (HINSTANCE hInstance, DWORD seginfo, LPVOID lpCmdLine) { /* Don't do anything, so just return true */ return TRUE; } #endif #endif char * fptools_id = "$Id$"; /* * some versions of free can't handle a NULL pointer properly * (ANSI says, free ignores a NULL pointer, but some machines * prefer to SIGSEGV on it) */ void TOOLEXPORT _FP_free (void *ptr) { if (ptr) free (ptr); } /* * This is non-standard, so I'm defining my own */ char * TOOLEXPORT _FP_strdup (char *string) { char *result; if (string == NULL) return NULL; if ((result = (char *) malloc (strlen (string) + 1)) == NULL) return NULL; strcpy (result, string); return result; } /* * limited-length string copy. this function behaves differently from * the original in that the dest string is always terminated with a * NULL character. */ char * TOOLEXPORT _FP_strncpy (char *dest, char *src, int length) { char *odest=dest; if (src == NULL || dest == NULL || length-- <= 0) return dest; while (length-- && *src) *dest++ = *src++; *dest++ = '\0'; return odest; } /* * duplicate a memory area */ void * TOOLEXPORT _FP_memdup (void *ptr, int len) { void *result; if (ptr == NULL) return NULL; if ((result = malloc (len)) == NULL) return NULL; memcpy (result, ptr, len); return result; } /* * case-insensitive compare */ int TOOLEXPORT _FP_stricmp (char *str1, char *str2) { if (str1==NULL || str2==NULL) return -1; while (*str1) { if (tolower(*str1) != tolower(*str2)) break; str1++; str2++; } return (tolower (*str1) - tolower (*str2)); } int TOOLEXPORT _FP_strnicmp (char *str1, char *str2, int count) { if (str1==NULL || str2==NULL) return -1; while (*str1 && count) { if (tolower(*str1) != tolower(*str2)) break; str1++; str2++; count--; } return count ? (tolower (*str1) - tolower (*str2)) : 0; } /* * autoconf says this function might be a compatibility problem */ char * TOOLEXPORT _FP_strstr (char *str1, char *str2) { char *ptr1, *ptr2; if (str1==NULL) return NULL; if (str2==NULL) return str1; while (*(ptr1=str1)) { for (ptr2=str2; *ptr1 && *ptr2 && *ptr1==*ptr2; ptr1++, ptr2++) /* empty loop */ ; if (*ptr2 == '\0') return str1; str1++; } return NULL; } char * TOOLEXPORT _FP_strpbrk (char *str, char *accept) { char *ptr; if (str == NULL) return NULL; if (accept == NULL || *accept == '\0') return str; for (; *str; str++) for (ptr=accept; *ptr; ptr++) if (*str == *ptr) return str; return NULL; } /* * autoconf also complains about this one */ char * TOOLEXPORT _FP_strtok (char *str1, char *str2) { static char *optr; char *ptr; if (str2 == NULL) return NULL; if (str1) { optr = str1; } else { if (*optr == '\0') return NULL; } while (*optr && strchr (str2, *optr)) /* look for beginning of token */ optr++; if (*optr == '\0') /* no token found */ return NULL; ptr = optr; while (*optr && strchr (str2, *optr) == NULL) /* look for end of token */ optr++; if (*optr) { *optr++ = '\0'; } return ptr; } /* * case insensitive strstr. */ char * TOOLEXPORT _FP_stristr (char *str1, char *str2) { char *ptr1, *ptr2; if (str1==NULL) return NULL; if (str2==NULL) return str1; while (*(ptr1=str1)) { for (ptr2=str2; *ptr1 && *ptr2 && tolower(*ptr1)==tolower(*ptr2); ptr1++, ptr2++) /* empty loop */ ; if (*ptr2 == '\0') return str1; str1++; } return NULL; } /* * Nice fake of the real (non-standard) one */ char * TOOLEXPORT _FP_strrstr (char *ptr, char *str) { char *found=NULL, *new, *iter=ptr; if (ptr==NULL || str==NULL) return NULL; if (*str == '\0') return ptr; while ((new = _FP_strstr (iter, str)) != NULL) { found = new; iter = new + 1; } return found; } char * TOOLEXPORT _FP_strirstr (char *ptr, char *str) { char *found=NULL, *iter=ptr, *new; if (ptr==NULL || str==NULL) return NULL; if (*str == '\0') return ptr; while ((new = _FP_stristr (iter, str)) != NULL) { found = new; iter = new + 1; } return found; } /* * convert whole string to case */ char * TOOLEXPORT _FP_stoupper (char *input) { char *iter = input; if (input == NULL) return NULL; while (*iter) { *iter = toupper (*iter); iter++; } return input; } char * TOOLEXPORT _FP_stolower (char *input) { char *iter = input; if (input == NULL) return NULL; while (*iter) { *iter = tolower (*iter); iter++; } return input; } /* * string matching with wildcards */ int TOOLEXPORT _FP_strmatch (char *string, char *pattern) { char *p1 = string, *p2 = pattern; if (pattern==NULL || string==NULL) return 0; while (*p1 && *p2) { if (*p2 == '?') { p1++; p2++; } else if (*p2 == '*') { if (*++p2 == '\0') return 1; while (*p1 && *p1 != *p2) p1++; } else if (*p1 == *p2) { p1++; p2++; } else return 0; } if (*p1 || *p2) return 0; return 1; } char * TOOLEXPORT _FP_strrchr (char *string, int tc) { char *ptr; if (string == NULL || !*string) return NULL; ptr = string + strlen (string) - 1; while (ptr != string && *ptr != tc) ptr--; if (*ptr == tc) return ptr; return NULL; } /* * strip directory information from a filename. Works only on DOS and * Unix systems so far ... */ char * TOOLEXPORT _FP_cutdir (char *filename) { char *ptr; if (filename == NULL) return NULL; if ((ptr = _FP_strrchr (filename, '/')) != NULL) ptr++; else if ((ptr = _FP_strrchr (filename, '\\')) != NULL) ptr++; else ptr = filename; return ptr; } /* * My own fgets function. It handles all kinds of line terminators * properly: LF (Unix), CRLF (DOS) and CR (Mac). In all cases, the * terminator is replaced by a single LF * * Pan change: sysprof says this function is standard uulib's biggest * hotspot, and with the per-char fgetc and feof it's easy to see why. * Pan doesn't run on OS 9 anyway, so don't bother with that. * Looking for CRLF and LF will get us Unix, OS X, and Windows. * In all cases, the terminator is replaced by a single LF. */ char * TOOLEXPORT _FP_fgets (char *buf, int n, FILE *stream) { int len; if (!fgets (buf, n, stream)) return NULL; // unless the string is so full we don't even have room for a \n, // ensure that buf ends in \n, rather than nothing or \r\n. buf[n-1] = '\0'; // ensure zero termination len = strlen (buf); if (len && buf[len-1]=='\n') --len; if (len && buf[len-1]=='\r') --len; if (len<=n-2) memcpy (buf+len, "\n", 2); return buf; } /* * A replacement strerror function that just returns the error code */ char * TOOLEXPORT _FP_strerror (int errcode) { static char number[8]; sprintf (number, "%03d", errcode); return number; } pan-0.162/uulib/fptools.h000066400000000000000000000034331475412772400152770ustar00rootroot00000000000000/* * fptools.c, some helper functions for getcgi.c and uu(en|de)view * * Distributed under the terms of the GNU General Public License. * Use and be happy. */ /* * Some handy, nonstandard functions. Note that the original may * be both faster and better. ``better'', if your compiler allows * cleaner use of such functions by proper use of ``const''. * * $Id$ */ #ifndef __FPTOOLS_H__ #define __FPTOOLS_H__ #ifndef _ANSI_ARGS_ #ifdef PROTOTYPES #define _ANSI_ARGS_(c) c #else #define _ANSI_ARGS_(c) () #endif #endif #ifndef TOOLEXPORT #define TOOLEXPORT #endif #ifdef __cplusplus extern "C" { #endif void TOOLEXPORT _FP_free _ANSI_ARGS_((void *)); char * TOOLEXPORT _FP_strdup _ANSI_ARGS_((char *)); char * TOOLEXPORT _FP_strncpy _ANSI_ARGS_((char *, char *, int)); void * TOOLEXPORT _FP_memdup _ANSI_ARGS_((void *, int)); int TOOLEXPORT _FP_stricmp _ANSI_ARGS_((char *, char *)); int TOOLEXPORT _FP_strnicmp _ANSI_ARGS_((char *, char *, int)); char * TOOLEXPORT _FP_strrstr _ANSI_ARGS_((char *, char *)); char * TOOLEXPORT _FP_stoupper _ANSI_ARGS_((char *)); char * TOOLEXPORT _FP_stolower _ANSI_ARGS_((char *)); int TOOLEXPORT _FP_strmatch _ANSI_ARGS_((char *, char *)); char * TOOLEXPORT _FP_strstr _ANSI_ARGS_((char *, char *)); char * TOOLEXPORT _FP_stristr _ANSI_ARGS_((char *, char *)); char * TOOLEXPORT _FP_strirstr _ANSI_ARGS_((char *, char *)); char * TOOLEXPORT _FP_strrchr _ANSI_ARGS_((char *, int)); char * TOOLEXPORT _FP_fgets _ANSI_ARGS_((char *, int, FILE *)); char * TOOLEXPORT _FP_strpbrk _ANSI_ARGS_((char *, char *)); char * TOOLEXPORT _FP_strtok _ANSI_ARGS_((char *, char *)); char * TOOLEXPORT _FP_cutdir _ANSI_ARGS_((char *)); char * TOOLEXPORT _FP_strerror _ANSI_ARGS_((int)); char * TOOLEXPORT _FP_tempnam _ANSI_ARGS_((char *, char *)); #ifdef __cplusplus } #endif #endif pan-0.162/uulib/uucheck.c000066400000000000000000001120671475412772400152370ustar00rootroot00000000000000/* * This file is part of uudeview, the simple and friendly multi-part multi- * file uudecoder program (c) 1994-2001 by Frank Pilhofer. The author may * be contacted at fp@fpx.de * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ #ifdef HAVE_CONFIG_H #include "config.h" #endif #ifdef SYSTEM_WINDLL #include #endif #ifdef SYSTEM_OS2 #include #endif /* * uucheck.c * * Various checking and processing of one input part **/ #include #include #include #include #ifdef HAVE_MALLOC_H #include #endif #ifdef HAVE_UNISTD_H #include #endif #ifdef HAVE_MEMORY_H #include #endif #include #include #include #include char * uucheck_id = "$Id$"; /* * Arbitrary number. This is the maximum number of part numbers we * store for our have-parts and missing-parts lists */ #define MAXPLIST 256 /* * forward declarations of local functions */ static char * UUGetFileName _ANSI_ARGS_((char *, char *, char *)); static int UUGetPartNo _ANSI_ARGS_((char *, char **, char **)); /* * State of Scanner function and PreProcessPart */ int lastvalid, lastenc, nofnum; char *uucheck_lastname; char *uucheck_tempname; static int lastpart = 0; static char *nofname = "UNKNOWN"; /* * special characters we allow an unquoted filename to have */ static char *fnchars = "._-~!"; /* * special characters we forbid a quoted filename to have */ static char *fnqchars = "/:\\\""; /* * Policy for extracting a part number from the subject line. * usually, look for part numbers in () brackets first, then in [] */ static char *brackchr[] = { "()[]", "[]()" }; /* * Extract a filename from the subject line. We need anything to identify * the name of the program for sorting. If a nice filename cannot be found, * the subject line itself is used * ptonum is, if not NULL, a pointer to the part number in the subject line, * so that it won't be used as filename. **/ static char * UUGetFileName (char *subject, char *ptonum, char *ptonend) { char *ptr = subject, *iter, *result, *part; int count, length=0, alflag=0; /* * If this file has no subject line, assume it is the next part of the * previous file (this is done in UUPreProcessPart) **/ if (subject == NULL) return NULL; /* * If the subject starts with 'Re', it is ignored * REPosts or RETries are not ignored! **/ if (uu_ignreply && (subject[0] == 'R' || subject[0] == 'r') && (subject[1] == 'E' || subject[1] == 'e') && (subject[2] == ':' || subject[2] == ' ')) { return NULL; } /* * Ignore a "Repost" prefix of the subject line. We don't want to get * a file named "Repost" :-) **/ if (_FP_strnicmp (subject, "repost", 6) == 0) subject += 6; if (_FP_strnicmp (subject, "re:", 3) == 0) subject += 3; while (*subject == ' ' || *subject == ':') subject++; part = _FP_stristr (subject, "part"); if (part == subject) { subject += 4; while (*subject == ' ') subject++; } /* * Try try to find a file name between quotes. * With yEnc this format is compulsory. */ ptr = subject; while ((iter = strchr (ptr, '"')) != NULL) { /* Don't overlap the sequence number */ if (ptonum && ptonend && iter >= ptonum && iter <= ptonend) { ptr = iter + 1; continue; } iter++; if (strchr (iter, '"') == NULL) { ptr = iter + 1; continue; } while (isspace (*iter)) iter++; count = length = alflag = 0; while (iter[count] && (strchr (fnqchars, iter[count])==NULL)) { if (isalpha (iter[count])) alflag++; count++; } if (count<4 || alflag==0) { ptr = iter + 1; continue; } /* Don't overlap the sequence number */ if (ptonum && ptonend && iter+count >= ptonum && iter+count <= ptonend) { ptr = iter + 1; continue; } length = count; while (isspace (iter[count])) count++; if (iter[count] == '"') { ptr = iter; break; } length = 0; ptr = iter + 1; } /* * If the file was encoded by uuenview, then the filename is enclosed * in [brackets]. But check what's inside these bracket's, try not to * fall for something other than a filename */ if (length == 0) { ptr = subject; while ((iter = strchr (ptr, '[')) != NULL) { if (strchr (iter, ']') == NULL) { ptr = iter + 1; continue; } iter++; while (isspace (*iter)) iter++; count = length = alflag = 0; while (iter[count] && (isalnum (iter[count]) || iter[count] == ' ' || strchr (fnchars, iter[count])!=NULL)) { if (isalpha (iter[count])) alflag++; count++; } if (count<4 || alflag==0) { ptr = iter + 1; continue; } length = count; while (isspace (iter[count])) count++; if (iter[count] == ']') { ptr = iter; break; } length = 0; ptr = iter + 1; } } /* * new filename detection routine, fists mostly for files by ftp-by-email * servers that create subject lines with ftp.host.address:/full/path/file * on them. We look for slashes and take the filename from after the last * one ... or at least we try to. */ if (length == 0) { ptr = subject; while ((iter = strchr (ptr, '/')) != NULL) { if (iter >= ptonum && iter <= ptonend) { ptr = iter + 1; continue; } count = length = 0; iter++; while (iter[count] && (isalnum(iter[count])||strchr(fnchars, iter[count])!=NULL)) count++; if (iter[count] == ' ' && length > 4) { length = count; break; } ptr = iter + ((count)?count:1); } } /* * Look for two alphanumeric strings separated by a '.' * (That's most likely a filename) **/ if (length == 0) { ptr = subject; while (*ptr && *ptr != 0x0a && *ptr != 0x0d && ptr != part) { iter = ptr; count = length = alflag = 0; if (_FP_strnicmp (ptr, "ftp", 3) == 0) { /* hey, that's an ftp address */ while (isalpha (*ptr) || isdigit (*ptr) || *ptr == '.') ptr++; continue; } while ((isalnum(*iter)||strchr(fnchars, *iter)!=NULL|| *iter=='/') && *iter && iter != ptonum && *iter != '.') { if (isalpha (*iter)) alflag = 1; count++; iter++; } if (*iter == '\0' || iter == ptonum) { if (iter == ptonum) ptr = ptonend; else ptr = iter; length = 0; continue; } if (*iter++ != '.' || count > 32 || alflag == 0) { ptr = iter; length = 0; continue; } if (_FP_strnicmp (iter, "edu", 3) == 0 || _FP_strnicmp (iter, "gov", 3) == 0) { /* hey, that's an ftp address */ while (isalpha (*iter) || isdigit (*iter) || *iter == '.') iter++; ptr = iter; length = 0; continue; } length += count + 1; count = 0; while ((isalnum(iter[count])||strchr(fnchars, iter[count])!=NULL|| iter[count]=='/') && iter[count] && iter[count] != '.') count++; if (iter[count]==':' && iter[count+1]=='/') { /* looks like stuff from a mail server */ ptr = iter + 1; length = 0; continue; } if (count > 8 || iter == ptonum) { ptr = iter; length = 0; continue; } if (iter[count] != '.') { length += count; break; } while (iter[count] && (isalnum(iter[count])||strchr(fnchars, iter[count])!=NULL|| iter[count]=='/')) count++; if (iter[count]==':' && iter[count+1]=='/') { /* looks like stuff from a mail server */ ptr = iter + 1; length = 0; continue; } if (count < 12 && iter != ptonum) { length += count; break; } ptr = iter; length = 0; } } if (length == 0) { /* No filename found, use subject line for ident */ ptr = subject; while (*ptr && !isalpha (*ptr)) ptr++; while ((isalnum(ptr[length])||strchr(fnchars,ptr[length])!=NULL|| ptr[length] == '/') && ptr[length] && ptr+length!=part && ptr+length!=ptonum) length++; if (length) { if (ptr[length] == '\0' || ptr[length] == 0x0a || ptr[length] == 0x0d) { length--; /* * I used to cut off digits from the end of the string, but * let's try to live without. We want to distinguish * DUTCH951 from DUTCH952 * * while ((ptr[length] == ' ' || isdigit (ptr[length])) && length > 0) * length--; */ } else { length--; while (ptr[length] == ' ' && length > 0) length--; } length++; } } if (length == 0) { /* Still found nothing? We need *something*! */ ptr = nofname; length = strlen (nofname); } if ((result = (char *) malloc (length + 1)) == NULL) { UUMessage (uucheck_id, __LINE__, UUMSG_ERROR, uustring (S_OUT_OF_MEMORY), length+1); return NULL; } memcpy (result, ptr, length); result[length] = '\0'; return result; } /* * Extract the Part Number from the subject line. * We look first for numbers in (#/#)'s, then for numbers in [#/#]'s * and then for digits that are not part of a string. * If we cannot find anything, assume it is the next part of the * previous file. * If we find a part number, we put a pointer to it in *where. This is * done so that the UUGetFileName function doesn't accidentally use the * part number as the file name. *whend points to the end of this part * number. **/ static int UUGetPartNo (char *subject, char **where, char **whend) { char *ptr = subject, *iter, *delim, bdel[2]=" "; int count, length=0, bpc; *where = NULL; bdel[0] = ' '; *whend = NULL; bdel[1] = '\0'; iter = NULL; delim = ""; if (subject == NULL) return -1; if (uu_ignreply && (subject[0] == 'R' || subject[0] == 'r') && /* Ignore replies, but not */ (subject[1] == 'E' || subject[1] == 'e') && /* reposts */ (subject[2] == ':' || subject[2] == ' ')) return -2; /* * First try numbers in () or [] (or vice versa, according to bracket * policy) */ for (bpc=0, length=0; brackchr[uu_bracket_policy][bpc]; bpc+=2) { ptr = subject; while ((iter = strchr (ptr, brackchr[uu_bracket_policy][bpc])) != NULL) { count = length = 0; iter++; while (*iter == ' ' || *iter == '#') iter++; if (!isdigit (*iter)) { ptr = iter; continue; } while (isdigit (iter[count])) count++; length = count; if (iter[count] == '\0' || iter[count+1] == '\0') { iter += count; length = 0; break; } if (iter[count] == brackchr[uu_bracket_policy][bpc+1]) { *where = iter; bdel[0] = brackchr[uu_bracket_policy][bpc+1]; delim = bdel; break; } while (iter[count] == ' ' || iter[count] == '#' || iter[count] == '/' || iter[count] == '\\') count++; if (_FP_strnicmp (iter + count, "of", 2) == 0) count += 2; while (iter[count] == ' ') count++; while (isdigit (iter[count])) count++; while (iter[count] == ' ') count++; if (iter[count] == brackchr[uu_bracket_policy][bpc+1]) { *where = iter; bdel[0] = brackchr[uu_bracket_policy][bpc+1]; delim = bdel; break; } length = 0; ptr = iter; } if (length) break; } /* * look for the string "part " followed by a number */ if (length == 0) { if ((iter = _FP_stristr (subject, "part ")) != NULL) { iter += 5; while (isspace (*iter) || *iter == '.' || *iter == '-') iter++; while (isdigit (iter[length])) length++; if (length == 0) { if (_FP_strnicmp (iter, "one", 3) == 0) length = 1; else if (_FP_strnicmp (iter, "two", 3) == 0) length = 2; else if (_FP_strnicmp (iter, "three", 5) == 0) length = 3; else if (_FP_strnicmp (iter, "four", 4) == 0) length = 4; else if (_FP_strnicmp (iter, "five", 4) == 0) length = 5; else if (_FP_strnicmp (iter, "six", 3) == 0) length = 6; else if (_FP_strnicmp (iter, "seven", 5) == 0) length = 7; else if (_FP_strnicmp (iter, "eight", 5) == 0) length = 8; else if (_FP_strnicmp (iter, "nine", 4) == 0) length = 9; else if (_FP_strnicmp (iter, "ten", 3) == 0) length = 10; if (length && (*whend = strchr (iter, ' '))) { *where = iter; return length; } else length = 0; } else { *where = iter; delim = "of"; } } } /* * look for the string "part" followed by a number */ if (length == 0) { if ((iter = _FP_stristr (subject, "part")) != NULL) { iter += 4; while (isspace (*iter) || *iter == '.' || *iter == '-') iter++; while (isdigit (iter[length])) length++; if (length == 0) { if (_FP_strnicmp (iter, "one", 3) == 0) length = 1; else if (_FP_strnicmp (iter, "two", 3) == 0) length = 2; else if (_FP_strnicmp (iter, "three", 5) == 0) length = 3; else if (_FP_strnicmp (iter, "four", 4) == 0) length = 4; else if (_FP_strnicmp (iter, "five", 4) == 0) length = 5; else if (_FP_strnicmp (iter, "six", 3) == 0) length = 6; else if (_FP_strnicmp (iter, "seven", 5) == 0) length = 7; else if (_FP_strnicmp (iter, "eight", 5) == 0) length = 8; else if (_FP_strnicmp (iter, "nine", 4) == 0) length = 9; else if (_FP_strnicmp (iter, "ten", 3) == 0) length = 10; if (length && (*whend = strchr (iter, ' '))) { *where = iter; return length; } else length = 0; } else { *where = iter; delim = "of"; } } } /* * look for [0-9]* "of" [0-9]* */ if (length == 0) { if ((iter = _FP_strirstr (subject, "of")) != NULL) { while (iter>subject && isspace (*(iter-1))) iter--; if (isdigit(*(iter-1))) { while (iter>subject && isdigit (*(iter-1))) iter--; if (!isdigit (*iter) && !isalpha (*iter) && *iter != '.') iter++; ptr = iter; while (isdigit (*ptr)) { ptr++; length++; } *where = iter; delim = "of"; } } } /* * look for whitespace-separated (or '/'-separated) digits */ if (length == 0) { ptr = subject; while (*ptr && length==0) { while (*ptr && !isdigit (*ptr)) ptr++; if (isdigit (*ptr) && (ptr==subject || *ptr==' ' || *ptr=='/')) { while (isdigit (ptr[length])) length++; if (ptr[length]!='\0' && ptr[length]!=' ' && ptr[length]!='/') { ptr += length; length = 0; } else { iter = ptr; bdel[0] = ptr[length]; delim = bdel; } } else { while (isdigit (*ptr)) ptr++; } } } /* * look for _any_ digits -- currently disabled, because it also fell * for "part numbers" in file names */ #if 0 if (length == 0) { count = strlen(subject) - 1; ptr = subject; while (count > 0) { if (!isdigit(ptr[count])||isalpha(ptr[count+1])||ptr[count+1] == '.') { count--; continue; } length = 0; while (count >= 0 && isdigit (ptr[count])) { count--; length++; } if (count>=0 && ((isalpha (ptr[count]) && (ptr[count] != 's' || ptr[count+1] != 't') && (ptr[count] != 'n' || ptr[count+1] != 'd')) || ptr[count] == '/' || ptr[count] == '.' || ptr[count] == '-' || ptr[count] == '_')) { length = 0; continue; } count++; iter = ptr + count; if (length > 4) { length = 0; continue; } *where = iter; delim = "of"; break; } } #endif /* * look for part numbering as string */ if (length == 0) { /* * some people use the strangest things, including spelling mistakes :-) */ if ((iter = _FP_stristr (subject, "first")) != NULL) length = 1; else if ((iter = _FP_stristr (subject, "second")) != NULL) length = 2; else if ((iter = _FP_stristr (subject, "third")) != NULL) length = 3; else if ((iter = _FP_stristr (subject, "forth")) != NULL) length = 4; else if ((iter = _FP_stristr (subject, "fourth")) != NULL) length = 4; else if ((iter = _FP_stristr (subject, "fifth")) != NULL) length = 5; else if ((iter = _FP_stristr (subject, "sixth")) != NULL) length = 6; else if ((iter = _FP_stristr (subject, "seventh")) != NULL) length = 7; else if ((iter = _FP_stristr (subject, "eigth")) != NULL) length = 8; else if ((iter = _FP_stristr (subject, "nineth")) != NULL) length = 9; else if ((iter = _FP_stristr (subject, "ninth")) != NULL) length = 9; else if ((iter = _FP_stristr (subject, "tenth")) != NULL) length = 10; else iter = NULL; if (length && iter && (*whend = strchr (iter, ' '))) { *where = iter; return length; } else length = 0; } if (iter == NULL || length == 0) /* should be equivalent */ return -1; *where = iter; if (delim && delim[0]) { if ((*whend=_FP_stristr (iter, delim)) != NULL && (*whend - *where) < 12) { ptr = (*whend += strlen (delim)); while (*ptr == ' ') ptr++; if (isdigit (*ptr)) { *whend = ptr; while (isdigit (**whend)) *whend += 1; } } else { *whend = iter + length; } } else { *whend = iter + length; } return atoi (iter); } /* * Obtain and process some information about the data. **/ uufile * UUPreProcessPart (fileread *data, int *ret) { char *where, *whend, temp[80], *ptr, *p2; uufile *result; if ((result = (uufile *) malloc (sizeof (uufile))) == NULL) { UUMessage (uucheck_id, __LINE__, UUMSG_ERROR, uustring (S_OUT_OF_MEMORY), sizeof (uufile)); *ret = UURET_NOMEM; return NULL; } memset (result, 0, sizeof (uufile)); if (data->partno) { where = whend = NULL; result->partno = data->partno; } else if (uu_dumbness) { result->partno = -1; where = whend = NULL; } else if ((result->partno=UUGetPartNo(data->subject,&where,&whend)) == -2) { *ret = UURET_NODATA; UUkillfile (result); return NULL; } if (data->filename != NULL) { if ((result->filename = _FP_strdup (data->filename)) == NULL) { UUMessage (uucheck_id, __LINE__, UUMSG_ERROR, uustring (S_OUT_OF_MEMORY), strlen (data->filename)+1); *ret = UURET_NOMEM; UUkillfile (result); return NULL; } } else result->filename = NULL; if (uu_dumbness <= 1) result->subfname = UUGetFileName (data->subject, where, whend); else result->subfname = NULL; result->mimeid = _FP_strdup (data->mimeid); result->mimetype = _FP_strdup (data->mimetype); if (result->partno == -1 && (data->uudet == PT_ENCODED || data->uudet == QP_ENCODED)) result->partno = 1; if (data->flags & FL_SINGLE) { /* * Don't touch this part. But it should really have a filename */ if (result->filename == NULL) { sprintf (temp, "%s.%03d", nofname, ++nofnum); result->filename = _FP_strdup (temp); } if (result->subfname == NULL) result->subfname = _FP_strdup (result->filename); if (result->filename == NULL || result->subfname == NULL) { UUMessage (uucheck_id, __LINE__, UUMSG_ERROR, uustring (S_OUT_OF_MEMORY), (result->filename==NULL)? (strlen(temp)+1):(strlen(result->filename)+1)); *ret = UURET_NOMEM; UUkillfile(result); return NULL; } if (result->partno == -1) result->partno = 1; } else if (result->subfname == NULL && data->uudet && (data->begin || result->partno == 1 || (!uu_dumbness && result->partno == -1 && (data->subject != NULL || result->filename != NULL)))) { /* * If it's the first part of something and has some valid data, but * no subject or anything, initialize lastvalid */ /* * in this case, it really _should_ have a filename somewhere */ if (result->filename != NULL && *result->filename) result->subfname = _FP_strdup (result->filename); else { /* if not, escape to UNKNOWN. We need to fill subfname */ sprintf (temp, "%s.%03d", nofname, ++nofnum); result->subfname = _FP_strdup (temp); } /* * in case the strdup failed */ if (result->subfname == NULL) { UUMessage (uucheck_id, __LINE__, UUMSG_ERROR, uustring (S_OUT_OF_MEMORY), (result->filename)? (strlen(result->filename)+1):(strlen(temp)+1)); *ret = UURET_NOMEM; UUkillfile (result); return NULL; } /* * if it's also got an 'end', or is the last part in a MIME-Mail, * then don't set lastvalid */ if (!data->end && (!data->partno || data->partno != data->maxpno)) { /* * initialize lastvalid */ lastvalid = 1; lastenc = data->uudet; lastpart = result->partno = 1; _FP_strncpy (uucheck_lastname, result->subfname, 256); } else result->partno = 1; } else if (result->subfname == NULL && data->uudet && data->mimeid) { /* * if it's got a file name, use it. Else use the mime-id for identifying * this part, and hope there's no other files encoded in the same message * under the same id. */ if (result->filename) result->subfname = _FP_strdup (result->filename); else result->subfname = _FP_strdup (result->mimeid); } else if (result->subfname == NULL && data->uudet) { /* * ff we have lastvalid, use it. Make an exception for * Base64-encoded files. */ if (data->uudet == B64ENCODED) { /* * Assume it's the first part. I wonder why it's got no part number? */ if (result->filename != NULL && *result->filename) result->subfname = _FP_strdup (result->filename); else { /* if not, escape to UNKNOWN. We need to fill subfname */ sprintf (temp, "%s.%03d", nofname, ++nofnum); result->subfname = _FP_strdup (temp); } if (result->subfname == NULL) { UUMessage (uucheck_id, __LINE__, UUMSG_ERROR, uustring (S_OUT_OF_MEMORY), (result->filename)? (strlen(result->filename)+1):(strlen(temp)+1)); *ret = UURET_NOMEM; UUkillfile (result); return NULL; } lastvalid = 0; } else if (lastvalid && data->uudet == lastenc && result->partno == -1) { result->subfname = _FP_strdup (uucheck_lastname); result->partno = ++lastpart; /* * if it's the last part, invalidate lastvalid */ if (data->end || (data->partno && data->partno == data->maxpno)) lastvalid = 0; } else if (data->partno != -1 && result->filename) { result->subfname = _FP_strdup (result->filename); } else { /* * it's got no info, it's got no begin, and we don't know anything * about this part. Let's forget all about it. */ *ret = UURET_NODATA; UUkillfile (result); return NULL; } } else if (result->subfname == NULL && result->partno == -1) { /* * This, too, is a part without any useful information that we * should forget about. */ *ret = UURET_NODATA; UUkillfile (result); return NULL; } else if (result->subfname == NULL) { /* * This is a part without useful subject name, a valid part number * but no encoded data. It *could* be the zeroeth part of something, * but we don't care here. Just forget it. */ *ret = UURET_NODATA; UUkillfile (result); return NULL; } /* * now, handle some cases where we have a useful subject but no * useful part number */ if (result->partno == -1 && data->begin) { /* * hmm, this is reason enough to initialize lastvalid, at least * if we have no end */ if (!data->end) { _FP_strncpy (uucheck_lastname, result->subfname, 256); result->partno = lastpart = 1; lastenc = data->uudet; lastvalid = 1; } else result->partno = 1; } else if (result->partno == -1 && data->uudet) { if (lastvalid && _FP_stricmp (uucheck_lastname, result->subfname) == 0) { /* * if the subject filename is the same as last time, use part no * of lastvalid. If at end, invalidate lastvalid */ result->partno = ++lastpart; if (data->end) lastvalid = 0; } else { /* * data but no part no. It's something UUInsertPartToList() should * handle */ goto skipcheck; } } else if (result->partno == -1) { /* * it's got no data, so why should we need this one anyway? */ *ret = UURET_NODATA; UUkillfile (result); return NULL; } /* * at this point, the part should have a valid subfname and a valid * part number. If it doesn't, then fail. */ if (result->subfname == NULL || result->partno == -1) { *ret = UURET_NODATA; UUkillfile (result); return NULL; } skipcheck: if (result->filename) { if (*(ptr = _FP_cutdir (result->filename))) { p2 = _FP_strdup (ptr); _FP_free (result->filename); result->filename = p2; } } result->data = data; result->NEXT = NULL; *ret = UURET_OK; return result; } /* * Insert one part of a file into the global list **/ int UUInsertPartToList (uufile *data) { uulist *iter = UUGlobalFileList, *unew; uufile *fiter, *last; /* * Part belongs together, if * (1) The MIME-IDs match, or * (2) The file name received from the subject lines match, and * (a) Not both parts have a begin line * (b) Not both parts have an end line * (c) Both parts don't have different MIME-IDs * (d) Both parts don't encode different files * (e) The other part wants to stay alone (FL_SINGLE) */ /* * check if this part wants to be left alone. If so, don't bother * to do all the checks */ while (iter) { if (data->data->flags & FL_SINGLE) { /* this space intentionally left blank */ } else if ((data->mimeid && iter->mimeid && strcmp (data->mimeid, iter->mimeid) == 0) || (_FP_stricmp (data->subfname, iter->subfname) == 0 && !(iter->begin && data->data->begin) && !(iter->end && data->data->end) && !(data->mimeid && iter->mimeid && strcmp (data->mimeid, iter->mimeid) != 0) && !(data->filename && iter->filename && strcmp (data->filename, iter->filename) != 0) && !(iter->flags & FL_SINGLE))) { /* * Don't insert a part that is already there. * * Also don't add a part beyond the "end" marker (unless we * have a mimeid, which screws up the marker). */ for (fiter=iter->thisfile; fiter; fiter=fiter->NEXT) { if (data->partno == fiter->partno) goto goahead; if (!iter->mimeid) { if (data->partno > fiter->partno && fiter->data->end) { goto goahead; } } } if (iter->filename == NULL && data->filename != NULL) { if ((iter->filename = _FP_strdup (data->filename)) == NULL) return UURET_NOMEM; } /* * special case when we might have tagged a part as Base64 when the * file was really XX */ if (data->data->uudet == B64ENCODED && iter->uudet == XX_ENCODED && iter->begin) { data->data->uudet = XX_ENCODED; } else if (data->data->uudet == XX_ENCODED && data->data->begin && iter->uudet == B64ENCODED) { iter->uudet = XX_ENCODED; fiter = iter->thisfile; while (fiter) { fiter->data->uudet = XX_ENCODED; fiter = fiter->NEXT; } } /* * If this is from a Message/Partial, we believe only the * iter->uudet from the first part */ if (data->data->flags & FL_PARTIAL) { if (data->partno == 1) { iter->uudet = data->data->uudet; iter->flags = data->data->flags; } } else { if (data->data->uudet) iter->uudet = data->data->uudet; if (data->data->flags) iter->flags = data->data->flags; } if (iter->mode == 0 && data->data->mode != 0) iter->mode = data->data->mode; if (data->data->begin) iter->begin = (data->partno)?data->partno:1; if (data->data->end) iter->end = (data->partno)?data->partno:1; if (data->mimetype) { _FP_free (iter->mimetype); iter->mimetype = _FP_strdup (data->mimetype); } /* * insert part at the beginning */ if (data->partno != -1 && data->partno < iter->thisfile->partno) { iter->state = UUFILE_READ; data->NEXT = iter->thisfile; iter->thisfile = data; return UURET_OK; } /* * insert part somewhere else */ iter->state = UUFILE_READ; /* prepare for re-checking */ fiter = iter->thisfile; last = NULL; while (fiter) { /* * if we find the same part no again, check which one looks better */ if (data->partno == fiter->partno) { if (fiter->data->subject == NULL) return UURET_NODATA; else if (_FP_stristr (fiter->data->subject, "repost") != NULL && _FP_stristr (data->data->subject, "repost") == NULL) return UURET_NODATA; else if (fiter->data->uudet && !data->data->uudet) return UURET_NODATA; else { /* * replace */ data->NEXT = fiter->NEXT; fiter->NEXT = NULL; UUkillfile (fiter); if (last == NULL) iter->thisfile = data; else last->NEXT = data; return UURET_OK; } } /* * if at the end of the part list, add it */ if (fiter->NEXT == NULL || (data->partno != -1 && data->partno < fiter->NEXT->partno)) { data->NEXT = fiter->NEXT; fiter->NEXT = data; if (data->partno == -1) data->partno = fiter->partno + 1; return UURET_OK; } last = fiter; fiter = fiter->NEXT; } return UURET_OK; /* Shouldn't get here */ } goahead: /* * we need iter below */ if (iter->NEXT == NULL) break; iter = iter->NEXT; } /* * handle new entry */ if (data->partno == -1) { /* * if it's got no part no, and it's MIME mail, then assume this is * part no. 1. If it's not MIME, then we can't handle it; if it * had a 'begin', it'd have got a part number assigned by * UUPreProcessPart(). */ if (data->data->uudet == B64ENCODED || data->data->uudet == BH_ENCODED) data->partno = 1; else return UURET_NODATA; } if ((unew = (uulist *) malloc (sizeof (uulist))) == NULL) { return UURET_NOMEM; } if ((unew->subfname = _FP_strdup (data->subfname)) == NULL) { _FP_free (unew); return UURET_NOMEM; } if (data->filename != NULL) { if ((unew->filename = _FP_strdup (data->filename)) == NULL) { _FP_free (unew->subfname); _FP_free (unew); return UURET_NOMEM; } } else unew->filename = NULL; if (data->mimeid != NULL) { if ((unew->mimeid = _FP_strdup (data->mimeid)) == NULL) { _FP_free (unew->subfname); _FP_free (unew->filename); _FP_free (unew); return UURET_NOMEM; } } else unew->mimeid = NULL; if (data->mimetype != NULL) { if ((unew->mimetype = _FP_strdup (data->mimetype)) == NULL) { _FP_free (unew->mimeid); _FP_free (unew->subfname); _FP_free (unew->filename); _FP_free (unew); return UURET_NOMEM; } } else unew->mimetype = NULL; unew->state = UUFILE_READ; unew->binfile = NULL; unew->thisfile = data; unew->mode = data->data->mode; unew->uudet = data->data->uudet; unew->flags = data->data->flags; unew->begin = (data->data->begin) ? ((data->partno)?data->partno:1) : 0; unew->end = (data->data->end) ? ((data->partno)?data->partno:1) : 0; unew->misparts = NULL; unew->haveparts = NULL; unew->NEXT = NULL; if (iter == NULL) UUGlobalFileList = unew; else iter->NEXT = unew; return UURET_OK; } /* * At this point, all files are read in and stored in the * "UUGlobalFileList". Do some checking. All parts there? **/ uulist * UUCheckGlobalList (void) { int misparts[MAXPLIST], haveparts[MAXPLIST]; int miscount, havecount, count, flag, part; uulist *liter=UUGlobalFileList, *prev; uufile *fiter; long thesize; while (liter) { miscount = 0; thesize = 0; if (liter->state & UUFILE_OK) { liter = liter->NEXT; continue; } else if ((liter->uudet == QP_ENCODED || liter->uudet == PT_ENCODED) && (liter->flags & FL_SINGLE)) { if ((liter->flags&FL_PROPER)==0) liter->size = -1; else liter->size = liter->thisfile->data->length; liter->state = UUFILE_OK; continue; } else if ((fiter = liter->thisfile) == NULL) { liter->state = UUFILE_NODATA; liter = liter->NEXT; continue; } /* * Re-Check this file */ flag = 0; miscount = 0; havecount = 0; thesize = 0; liter->state = UUFILE_READ; /* * search encoded data */ while (fiter && !fiter->data->uudet) { if (havecountpartno; } fiter = fiter->NEXT; } if (fiter == NULL) { liter->state = UUFILE_NODATA; liter = liter->NEXT; continue; } if (havecountpartno; } if ((part = fiter->partno) > 1) { if (!fiter->data->begin) { for (count=1; count < part && miscount < MAXPLIST; count++) { misparts[miscount++] = count; } } } /* * don't care if so many parts are missing */ if (miscount >= MAXPLIST) { liter->state = UUFILE_MISPART; liter = liter->NEXT; continue; } if (liter->uudet == B64ENCODED || liter->uudet == QP_ENCODED || liter->uudet == PT_ENCODED) flag |= 3; /* Don't need begin or end with Base64 or plain text*/ if (fiter->data->begin) flag |= 1; if (fiter->data->end) flag |= 2; if (fiter->data->uudet) flag |= 4; /* * guess size of part */ switch (fiter->data->uudet) { case UU_ENCODED: case XX_ENCODED: thesize += 3*fiter->data->length/4; thesize -= 3*fiter->data->length/124; /* substract 2 of 62 chars */ break; case B64ENCODED: thesize += 3*fiter->data->length/4; thesize -= fiter->data->length/52; /* substract 2 of 78 chars */ break; case QP_ENCODED: case PT_ENCODED: thesize += fiter->data->length; break; } fiter = fiter->NEXT; while (fiter != NULL) { for (count=part+1; countpartno && miscountpartno; if (havecountdata->begin) flag |= 1; if (fiter->data->end) flag |= 2; if (fiter->data->uudet) flag |= 4; switch (fiter->data->uudet) { case UU_ENCODED: case XX_ENCODED: thesize += 3*fiter->data->length/4; thesize -= 3*fiter->data->length/124; /* substract 2 of 62 chars */ break; case B64ENCODED: thesize += 3*fiter->data->length/4; thesize -= fiter->data->length/52; /* substract 2 of 78 chars */ break; case QP_ENCODED: case PT_ENCODED: thesize += fiter->data->length; break; } if (fiter->data->end) break; fiter = fiter->NEXT; } /* * if in fast mode, we don't notice an 'end'. So if its uu or xx * encoded, there's a begin line and encoded data, assume it's * there. */ if (uu_fast_scanning && (flag & 0x01) && (flag & 0x04) && (liter->uudet == UU_ENCODED || liter->uudet == XX_ENCODED)) flag |= 2; /* * Set the parts we have and/or missing */ _FP_free (liter->haveparts); _FP_free (liter->misparts); liter->haveparts = NULL; liter->misparts = NULL; if (havecount) { if ((liter->haveparts=(int*)malloc((havecount+1)*sizeof(int)))!=NULL) { memcpy (liter->haveparts, haveparts, havecount*sizeof(int)); liter->haveparts[havecount] = 0; } } if (miscount) { if ((liter->misparts=(int*)malloc((miscount+1)*sizeof(int)))!=NULL) { memcpy (liter->misparts, misparts, miscount*sizeof(int)); liter->misparts[miscount] = 0; } liter->state |= UUFILE_MISPART; } /* * Finalize checking */ if ((flag & 4) == 0) liter->state |= UUFILE_NODATA; if ((flag & 1) == 0) liter->state |= UUFILE_NOBEGIN; if ((flag & 2) == 0) liter->state |= UUFILE_NOEND; if ((flag & 7) == 7 && miscount==0) { liter->state = UUFILE_OK; } if ((uu_fast_scanning && (liter->flags&FL_PROPER)==0) || thesize<=0) liter->size = -1; else liter->size = thesize; if (liter->state==UUFILE_OK && (liter->filename==NULL || liter->filename[0]=='\0')) { /* * Emergency backup if the file does not have a filename */ _FP_free (liter->filename); if (liter->subfname && liter->subfname[0] && _FP_strpbrk (liter->subfname, "()[];: ") == NULL) liter->filename = _FP_strdup (liter->subfname); else { sprintf (uucheck_tempname, "%s.%03d", nofname, ++nofnum); liter->filename = _FP_strdup (uucheck_tempname); } } liter = liter->NEXT; } /* * Sets back (PREV) links */ liter = UUGlobalFileList; prev = NULL; while (liter) { liter->PREV = prev; prev = liter; liter = liter->NEXT; } return UUGlobalFileList; } pan-0.162/uulib/uudeview.h000066400000000000000000000226101475412772400154440ustar00rootroot00000000000000/* * This file is part of uudeview, the simple and friendly multi-part multi- * file uudecoder program (c) 1994-2001 by Frank Pilhofer. The author may * be contacted at fp@fpx.de * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ #ifndef __UUDEVIEW_H__ #define __UUDEVIEW_H__ /* * This include file features all the definitions that should * be externally visible. This isn't much. * * $Id$ */ #ifndef _ANSI_ARGS_ #ifdef PROTOTYPES #define _ANSI_ARGS_(c) c #else #define _ANSI_ARGS_(c) () #endif #endif /* * Message Types */ #define UUMSG_MESSAGE (0) /* just a message, nothing important */ #define UUMSG_NOTE (1) /* something that should be noticed */ #define UUMSG_WARNING (2) /* important msg, processing continues */ #define UUMSG_ERROR (3) /* processing has been terminated */ #define UUMSG_FATAL (4) /* decoder cannot process further requests */ #define UUMSG_PANIC (5) /* recovery impossible, app must terminate */ /* * Return Values */ #define UURET_OK (0) /* everything went fine */ #define UURET_IOERR (1) /* I/O Error - examine errno */ #define UURET_NOMEM (2) /* not enough memory */ #define UURET_ILLVAL (3) /* illegal value for operation */ #define UURET_NODATA (4) /* decoder didn't find any data */ #define UURET_NOEND (5) /* encoded data wasn't ended properly */ #define UURET_UNSUP (6) /* unsupported function (encoding) */ #define UURET_EXISTS (7) /* file exists (decoding) */ #define UURET_CONT (8) /* continue -- special from ScanPart */ #define UURET_CANCEL (9) /* operation canceled */ /* * File states, may be OR'ed */ #define UUFILE_READ (0) /* Read in, but not further processed */ #define UUFILE_MISPART (1) /* Missing Part(s) detected */ #define UUFILE_NOBEGIN (2) /* No 'begin' found */ #define UUFILE_NOEND (4) /* No 'end' found */ #define UUFILE_NODATA (8) /* File does not contain valid uudata */ #define UUFILE_OK (16) /* All Parts found, ready to decode */ #define UUFILE_ERROR (32) /* Error while decoding */ #define UUFILE_DECODED (64) /* Successfully decoded */ #define UUFILE_TMPFILE (128) /* Temporary decoded file exists */ /* * Encoding Types */ #define UU_ENCODED (1) /* UUencoded data */ #define B64ENCODED (2) /* Mime-Base64 data */ #define XX_ENCODED (3) /* XXencoded data */ #define BH_ENCODED (4) /* Binhex encoded */ #define PT_ENCODED (5) /* Plain-Text encoded (MIME) */ #define QP_ENCODED (6) /* Quoted-Printable (MIME) */ #define YENC_ENCODED (7) /* yEnc encoded */ /* * Option indices for GetOption / SetOption */ #define UUOPT_VERSION (0) /* version number MAJOR.MINORplPATCH (ro) */ #define UUOPT_FAST (1) /* assumes only one part per file */ #define UUOPT_DUMBNESS (2) /* switch off the program's intelligence */ #define UUOPT_BRACKPOL (3) /* give numbers in [] higher precendence */ #define UUOPT_VERBOSE (4) /* generate informative messages */ #define UUOPT_DESPERATE (5) /* try to decode incomplete files */ #define UUOPT_IGNREPLY (6) /* ignore RE:plies (off by default) */ #define UUOPT_OVERWRITE (7) /* whether it's OK to overwrite ex. files */ #define UUOPT_SAVEPATH (8) /* prefix to save-files on disk */ #define UUOPT_IGNMODE (9) /* ignore the original file mode */ #define UUOPT_DEBUG (10) /* print messages with FILE/LINE info */ #define UUOPT_ERRNO (14) /* get last error code for UURET_IOERR (ro) */ #define UUOPT_PROGRESS (15) /* retrieve progress information */ #define UUOPT_USETEXT (16) /* handle text messages */ #define UUOPT_PREAMB (17) /* handle Mime preambles/epilogues */ #define UUOPT_TINYB64 (18) /* detect short B64 outside of Mime */ #define UUOPT_ENCEXT (19) /* extension for single-part encoded files */ #define UUOPT_REMOVE (20) /* remove input files after decoding */ #define UUOPT_MOREMIME (21) /* strict MIME adherence */ /* * Code for the "action" in the progress structure */ #define UUACT_IDLE (0) /* we don't do anything */ #define UUACT_SCANNING (1) /* scanning an input file */ #define UUACT_DECODING (2) /* decoding into a temp file */ #define UUACT_COPYING (3) /* copying temp to target */ #define UUACT_ENCODING (4) /* encoding a file */ /* * forward definition */ struct _uufile; /* * Structure for holding the list of files that have been found * uufile items are inserted into this list with UUInsertPartToList * After inserting a bunch of files, UUCheckGlobalList must be called * to update the states. */ typedef struct _uulist { short state; /* Status as described by the macros above */ short mode; /* file mode as found on begin line */ int begin; /* part number where begin was detected */ int end; /* part number where end was detected */ short uudet; /* Encoding type (see macros above) */ int flags; /* flags, especially for single-part files */ long size; /* approximate size of resulting file */ char *filename; /* malloc'ed file name */ char *subfname; /* malloc'ed ID from subject line */ char *mimeid; /* malloc'ed MIME-ID, if available */ char *mimetype; /* malloc'ed Content-Type, if available */ char *binfile; /* name of temp file, if already decoded */ struct _uufile *thisfile; /* linked list of this file's parts */ int *haveparts; /* the parts we have (max. 256 are listed) */ int *misparts; /* list of missing parts (max. 256) */ struct _uulist *NEXT; /* next item of the list */ struct _uulist *PREV; /* previous item of the list */ } uulist; /* * The "progress" structure which is passed to the Busy Callback */ typedef struct { int action; /* see UUACT_* definitions above */ char curfile[2048];/* the file we are working on, incl. path */ int partno; /* part we're currently decoding */ int numparts; /* total number of parts of this file */ long fsize; /* size of the current file */ int percent; /* % of _current part_ */ long foffset; /* file offset -- internal use only */ long totsize; /* file total size -- internal use only */ } uuprogress; /* * Externally visible Functions */ #ifndef UUEXPORT #define UUEXPORT #endif #ifdef __cplusplus extern "C" { #endif int UUEXPORT UUInitialize _ANSI_ARGS_((void)); int UUEXPORT UUGetOption _ANSI_ARGS_((int, int *, char *, int)); int UUEXPORT UUSetOption _ANSI_ARGS_((int, int, char *)); char * UUEXPORT UUstrerror _ANSI_ARGS_((int)); int UUEXPORT UUSetMsgCallback _ANSI_ARGS_((void *, void (*) (void *, char *, int))); int UUEXPORT UUSetBusyCallback _ANSI_ARGS_((void *, int (*) (void *, uuprogress *), long)); int UUEXPORT UUSetFileCallback _ANSI_ARGS_((void *, int (*) (void *, char *, char *, int))); int UUEXPORT UUSetFNameFilter _ANSI_ARGS_((void *, char * (*) (void *, char *))); char * UUEXPORT UUFNameFilter _ANSI_ARGS_((char *)); int UUEXPORT UULoadFile _ANSI_ARGS_((char *, char *, int)); int UUEXPORT UULoadFileWithPartNo _ANSI_ARGS_((char *, char *, int, int, const char *)); uulist *UUEXPORT UUGetFileListItem _ANSI_ARGS_((int)); int UUEXPORT UURenameFile _ANSI_ARGS_((uulist *, char *)); int UUEXPORT UUDecodeToTemp _ANSI_ARGS_((uulist *)); int UUEXPORT UURemoveTemp _ANSI_ARGS_((uulist *)); int UUEXPORT UUDecodeFile _ANSI_ARGS_((uulist *, char *)); int UUEXPORT UUInfoFile _ANSI_ARGS_((uulist *, void *, int (*) (void *, char *))); int UUEXPORT UUSmerge _ANSI_ARGS_((int)); int UUEXPORT UUCleanUp _ANSI_ARGS_((void)); int UUEXPORT UUQuickDecode _ANSI_ARGS_((FILE *, FILE *, char *, long)); int UUEXPORT UUEncodeMulti _ANSI_ARGS_((FILE *, FILE *, char *, int, char *, char *, int)); int UUEXPORT UUEncodePartial _ANSI_ARGS_((FILE *, FILE *, char *, int, char *, char *, int, int, long, unsigned long*)); int UUEXPORT UUEncodePartial_byFSize _ANSI_ARGS_((FILE *, FILE *, char *, int, char *, char *, int, int, long, unsigned long*)); int UUEXPORT UUEncodeToStream _ANSI_ARGS_((FILE *, FILE *, char *, int, char *, int)); int UUEXPORT UUEncodeToFile _ANSI_ARGS_((FILE *, char *, int, char *, char *, long)); int UUEXPORT UUE_PrepSingle _ANSI_ARGS_((FILE *, FILE *, char *, int, char *, int, char *, char *, char *, int)); int UUEXPORT UUE_PrepPartial _ANSI_ARGS_((FILE *, FILE *, char *, int, char *, int, int, long, long, char *, char *, char *, int)); int UUEXPORT UUE_PrepSingleExt _ANSI_ARGS_((FILE *, FILE *, char *, int, char *, int, char *, char *, char *, char *, int)); int UUEXPORT UUE_PrepPartialExt _ANSI_ARGS_((FILE *, FILE *, char *, int, char *, int, int, long, long, char *, char *, char *, char *, int)); #ifdef __cplusplus } #endif #endif pan-0.162/uulib/uuencode.c000066400000000000000000002300041475412772400154070ustar00rootroot00000000000000/* * This file is part of uudeview, the simple and friendly multi-part multi- * file uudecoder program (c) 1994-2001 by Frank Pilhofer. The author may * be contacted at fp@fpx.de * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ #ifdef HAVE_CONFIG_H #include "config.h" #endif #ifdef SYSTEM_WINDLL #include #endif #ifdef SYSTEM_OS2 #include #endif #include #include #include #include #include #include #include #include #ifdef HAVE_UNISTD_H #include #endif #ifdef HAVE_ERRNO_H #include #endif #include #include #include #include #include #include /* for braindead systems */ #ifndef SEEK_SET #ifdef L_BEGIN #define SEEK_SET L_BEGIN #else #define SEEK_SET 0 #endif #endif char * uuencode_id = "$Id: uuencode.c,v 1.22 2002/04/02 10:04:52 fp Exp $"; #if 0 /* * the End-Of-Line string. MIME enforces CRLF, so that's what we use. Some * implementations of uudecode will complain about a missing end line, since * they look for "end^J" but find "end^J^M". We don't care - especially be- * cause they still decode the file properly despite this complaint. */ #ifndef EOLSTRING #define EOLSTRING "\015\012" #endif #else /* * Argh. Some delivery software (inews) has problems with the CRLF * line termination. Let's try native EOL and see if we run into * any problems. * This involves opening output files in text mode instead of binary */ #ifndef EOLSTRING #define EOLSTRING "\n" #endif #endif /* * ========================================================================= * User-configurable settings end here. Don't spy below unless you know what * you're doing. * ========================================================================= */ /* * Define End-Of-Line sequence */ #ifdef EOLSTRING static unsigned char *eolstring = (unsigned char *) EOLSTRING; #else static unsigned char *eolstring = (unsigned char *) "\012"; #endif /* * Content-Transfer-Encoding types for non-MIME encodings */ #define CTE_UUENC "x-uuencode" #define CTE_XXENC "x-xxencode" #define CTE_BINHEX "x-binhex" #define CTE_YENC "x-yenc" #define CTE_TYPE(y) (((y)==B64ENCODED) ? "Base64" : \ ((y)==UU_ENCODED) ? CTE_UUENC : \ ((y)==XX_ENCODED) ? CTE_XXENC : \ ((y)==PT_ENCODED) ? "8bit" : \ ((y)==QP_ENCODED) ? "quoted-printable" : \ ((y)==BH_ENCODED) ? CTE_BINHEX : \ ((y)==YENC_ENCODED) ? CTE_YENC : "x-oops") /* * encoding tables */ unsigned char UUEncodeTable[64] = { '`', '!', '"', '#', '$', '%', '&', '\'', '(', ')', '*', '+', ',', '-', '.', '/', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', ':', ';', '<', '=', '>', '?', '@', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '[', '\\',']', '^', '_' }; unsigned char B64EncodeTable[64] = { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '+', '/' }; unsigned char XXEncodeTable[64] = { '+', '-', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z' }; unsigned char BHEncodeTable[64] = { '!', '"', '#', '$', '%', '&', '\'', '(', ')', '*', '+', ',', '-', '0', '1', '2', '3', '4', '5', '6', '8', '9', '@', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'X', 'Y', 'Z', '[', '`', 'a', 'b', 'c', 'd', 'e', 'f', 'h', 'i', 'j', 'k', 'l', 'm', 'p', 'q', 'r' }; unsigned char HexEncodeTable[16] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' }; typedef struct { char *extension; char *mimetype; } mimemap; /* * This table maps a file's extension into a Content-Type. The current * official list can be downloaded as * ftp://ftp.isi.edu/in-notes/iana/assignments/media-type * I haven't listed any text types since it doesn't make sense to encode * them. Everything not on the list gets mapped to application/octet-stream */ static mimemap mimetable[] = { { "gif", "image/gif" }, /* Grafics Interchange Format */ { "jpg", "image/jpeg" }, /* JFIF encoded files */ { "jpeg", "image/jpeg" }, { "tif", "image/tiff" }, /* Tag Image File Format */ { "tiff", "image/tiff" }, { "cgm", "image/cgm" }, /* Computer Graphics Metafile */ { "au", "audio/basic" }, /* 8kHz ulaw audio data */ { "mov", "video/quicktime" }, /* Apple Quicktime */ { "qt", "video/quicktime" }, /* Also infrequently used */ { "mpeg", "video/mpeg" }, /* Motion Picture Expert Group */ { "mpg", "video/mpeg" }, { "mp2", "video/mpeg" }, /* dito, MPEG-2 encoded files */ { "mp3", "audio/mpeg" }, /* dito, MPEG-3 encoded files */ { "ps", "application/postscript" }, /* Postscript Language */ { "zip", "application/zip" }, /* ZIP archive */ { "doc", "application/msword"},/* assume Microsoft Word */ { NULL, NULL } }; /* * the order of the following two tables must match the * Encoding Types definition in uudeview.h */ /* * encoded bytes per line */ static int bpl[8] = { 0, 45, 57, 45, 45, 0, 0, 128 }; /* * tables */ static unsigned char *etables[5] = { NULL, UUEncodeTable, B64EncodeTable, XXEncodeTable, BHEncodeTable }; /* * variables to malloc upon initialization */ char *uuestr_itemp; char *uuestr_otemp; /* * Encode one part of the data stream */ static int UUEncodeStream (FILE *outfile, FILE *infile, int encoding, long linperfile, crc32_t *crc, crc32_t *pcrc) { unsigned char *itemp = (char *) uuestr_itemp; unsigned char *otemp = (char *) uuestr_otemp; unsigned char *optr, *table, *tptr; int index, count; long line=0; size_t llen; if (outfile==NULL || infile==NULL || (encoding!=UU_ENCODED&&encoding!=XX_ENCODED&&encoding!=B64ENCODED&& encoding!=PT_ENCODED&&encoding!=QP_ENCODED&&encoding!=YENC_ENCODED)) { UUMessage (uuencode_id, __LINE__, UUMSG_ERROR, uustring (S_PARM_CHECK), "UUEncodeStream()"); return UURET_ILLVAL; } /* * Special handling for plain text and quoted printable. Text is * read line oriented. */ if (encoding == PT_ENCODED || encoding == QP_ENCODED) { while (!feof (infile) && (linperfile <= 0 || line < linperfile)) { if (_FP_fgets (itemp, 255, infile) == NULL) { break; } itemp[255] = '\0'; count = strlen (itemp); llen = 0; optr = otemp; /* * Busy Callback */ if (UUBUSYPOLL(ftell(infile)-progress.foffset,progress.fsize)) { UUMessage (uuencode_id, __LINE__, UUMSG_NOTE, uustring (S_ENCODE_CANCEL)); return UURET_CANCEL; } if (encoding == PT_ENCODED) { /* * If there is a line feed, replace by eolstring */ if (count > 0 && itemp[count-1] == '\n') { itemp[--count] = '\0'; if (fwrite (itemp, 1, count, outfile) != count || fwrite ((char *) eolstring, 1, strlen(eolstring), outfile) != strlen (eolstring)) { return UURET_IOERR; } } else { if (fwrite (itemp, 1, count, outfile) != llen) { return UURET_IOERR; } } } else if (encoding == QP_ENCODED) { for (index=0; index> 4]; *optr++ = HexEncodeTable[itemp[index] & 0x0f]; llen += 3; } else if ((itemp[index] >= 33 && itemp[index] <= 60) || (itemp[index] >= 62 && itemp[index] <= 126) || itemp[index] == 9 || itemp[index] == 32) { *optr++ = itemp[index]; llen++; } else if (itemp[index] == '\n') { /* * If the last character before EOL was a space or tab, * we must encode it. If llen > 74, there's no space to do * that, so generate a soft line break instead. */ if (index>0 && (itemp[index-1] == 9 || itemp[index-1] == 32)) { *(optr-1) = '='; if (llen <= 74) { *optr++ = HexEncodeTable[itemp[index-1] >> 4]; *optr++ = HexEncodeTable[itemp[index-1] & 0x0f]; llen += 2; } } if (fwrite (otemp, 1, llen, outfile) != llen || fwrite ((char *) eolstring, 1, strlen(eolstring), outfile) != strlen (eolstring)) { return UURET_IOERR; } /* * Fix the soft line break condition from above */ if (index>0 && (itemp[index-1] == 9 || itemp[index-1] == 32) && *(optr-1) == '=') { otemp[0] = '='; otemp[1] = HexEncodeTable[itemp[index-1] >> 4]; otemp[2] = HexEncodeTable[itemp[index-1] & 0x0f]; if (fwrite (otemp, 1, 3, outfile) != 3 || fwrite ((char *) eolstring, 1, strlen(eolstring), outfile) != strlen (eolstring)) { return UURET_IOERR; } } optr = otemp; llen = 0; } else { *optr++ = '='; *optr++ = HexEncodeTable[itemp[index] >> 4]; *optr++ = HexEncodeTable[itemp[index] & 0x0f]; llen += 3; } /* * Lines must be shorter than 76 characters (not counting CRLF). * If the line grows longer than that, we must include a soft * line break. */ if (itemp[index+1] != 0 && itemp[index+1] != '\n' && (llen >= 75 || (!((itemp[index+1] >= 33 && itemp[index+1] <= 60) || (itemp[index+1] >= 62 && itemp[index+1] <= 126)) && llen >= 73))) { *optr++ = '='; llen++; if (fwrite (otemp, 1, llen, outfile) != llen || fwrite ((char *) eolstring, 1, strlen(eolstring), outfile) != strlen (eolstring)) { return UURET_IOERR; } optr = otemp; llen = 0; } } } line++; } return UURET_OK; } /* * Special handling for yEnc */ if (encoding == YENC_ENCODED) { llen = 0; optr = otemp; while (!feof (infile) && (linperfile <= 0 || line < linperfile)) { if ((count = fread (itemp, 1, 128, infile)) != 128) { if (count == 0) { break; } else if (ferror (infile)) { return UURET_IOERR; } } if (pcrc) *pcrc = crc32(*pcrc, itemp, count); if (crc) *crc = crc32(*crc, itemp, count); line++; /* * Busy Callback */ if (UUBUSYPOLL(ftell(infile)-progress.foffset,progress.fsize)) { UUMessage (uuencode_id, __LINE__, UUMSG_NOTE, uustring (S_ENCODE_CANCEL)); return UURET_CANCEL; } for (index=0; index 127) { if (fwrite (otemp, 1, llen, outfile) != llen || fwrite ((char *) eolstring, 1, strlen(eolstring), outfile) != strlen (eolstring)) { return UURET_IOERR; } llen = 0; optr = otemp; } switch ((char) ((int) itemp[index] + 42)) { case '\0': // case '\t': yEnc 1.3 draft case '\n': case '\r': case '=': case '\033': *optr++ = '='; *optr++ = (char) ((int) itemp[index] + 42 + 64); llen += 2; break; case '.': if (llen == 0) { *optr++ = '='; *optr++ = (char) ((int) itemp[index] + 42 + 64); llen += 2; } else { *optr++ = (char) ((int) itemp[index] + 42); llen++; } break; default: *optr++ = (char) ((int) itemp[index] + 42); llen++; break; } } } /* * write last line */ if (llen) { if (fwrite (otemp, 1, llen, outfile) != llen || fwrite ((char *) eolstring, 1, strlen(eolstring), outfile) != strlen (eolstring)) { return UURET_IOERR; } } return UURET_OK; } /* * Handling for binary encodings */ /* * select charset */ table = etables[encoding]; if (table==NULL || bpl[encoding]==0) { UUMessage (uuencode_id, __LINE__, UUMSG_ERROR, uustring (S_PARM_CHECK), "UUEncodeStream()"); return UURET_ILLVAL; } while (!feof (infile) && (linperfile <= 0 || line < linperfile)) { if ((count = fread (itemp, 1, bpl[encoding], infile)) != bpl[encoding]) { if (count == 0) break; else if (ferror (infile)) return UURET_IOERR; } optr = otemp; llen = 0; /* * Busy Callback */ if (UUBUSYPOLL(ftell(infile)-progress.foffset,progress.fsize)) { UUMessage (uuencode_id, __LINE__, UUMSG_NOTE, uustring (S_ENCODE_CANCEL)); return UURET_CANCEL; } /* * for UU and XX, encode the number of bytes as first character */ if (encoding == UU_ENCODED || encoding == XX_ENCODED) { *optr++ = table[count]; llen++; } /* * Main encoding */ for (index=0; index<=count-3; index+=3, llen+=4) { *optr++ = table[itemp[index] >> 2]; *optr++ = table[((itemp[index ] & 0x03) << 4)|(itemp[index+1] >> 4)]; *optr++ = table[((itemp[index+1] & 0x0f) << 2)|(itemp[index+2] >> 6)]; *optr++ = table[ itemp[index+2] & 0x3f]; } /* * Special handling for incomplete lines */ if (index != count) { if (encoding == B64ENCODED) { if (count - index == 2) { *optr++ = table[itemp[index] >> 2]; *optr++ = table[((itemp[index ] & 0x03) << 4) | ((itemp[index+1] & 0xf0) >> 4)]; *optr++ = table[((itemp[index+1] & 0x0f) << 2)]; *optr++ = '='; } else if (count - index == 1) { *optr++ = table[ itemp[index] >> 2]; *optr++ = table[(itemp[index] & 0x03) << 4]; *optr++ = '='; *optr++ = '='; } llen += 4; } else if (encoding == UU_ENCODED || encoding == XX_ENCODED) { if (count - index == 2) { *optr++ = table[itemp[index] >> 2]; *optr++ = table[((itemp[index ] & 0x03) << 4) | ( itemp[index+1] >> 4)]; *optr++ = table[((itemp[index+1] & 0x0f) << 2)]; *optr++ = table[0]; } else if (count - index == 1) { *optr++ = table[ itemp[index] >> 2]; *optr++ = table[(itemp[index] & 0x03) << 4]; *optr++ = table[0]; *optr++ = table[0]; } llen += 4; } } /* * end of line */ tptr = eolstring; while (*tptr) *optr++ = *tptr++; *optr++ = '\0'; llen += strlen ((char *) eolstring); if (fwrite (otemp, 1, llen, outfile) != llen) return UURET_IOERR; line++; } return UURET_OK; } static int UUEncodeStream_byFSize (FILE *outfile, FILE *infile, int encoding, long bpf, crc32_t *crc, crc32_t *pcrc) { unsigned char *itemp = (char *) uuestr_itemp; unsigned char *otemp = (char *) uuestr_otemp; unsigned char *optr, *table, *tptr; int index, count; long offset=0; long line = 0; size_t llen; if (outfile==NULL || infile==NULL || (encoding!=UU_ENCODED&&encoding!=XX_ENCODED&&encoding!=B64ENCODED&& encoding!=PT_ENCODED&&encoding!=QP_ENCODED&&encoding!=YENC_ENCODED)) { return UURET_ILLVAL; } /* * Special handling for plain text and quoted printable. Text is * read line oriented. */ long rest = bpf; long current = 0; ///FIXME if (encoding == PT_ENCODED || encoding == QP_ENCODED) { while (!feof (infile) && rest > 0 ) { current = rest > 255 ? 255 : rest; if ((count = fread (itemp, sizeof(unsigned char), current, infile)) != 255) { if (count == 0) break; else if (ferror (infile)) return UURET_IOERR; } rest -= count; itemp[count] = '\0'; llen = 0; optr = otemp; /* * Busy Callback */ if (UUBUSYPOLL(ftell(infile)-progress.foffset,progress.fsize)) return UURET_CANCEL; if (encoding == PT_ENCODED) { size_t res; if ((res=fwrite (itemp, sizeof(unsigned char), count, outfile)) != count) return UURET_IOERR; } else if (encoding == QP_ENCODED) { for (index=0; index> 4]; *optr++ = HexEncodeTable[itemp[index] & 0x0f]; llen += 3; } else if ((itemp[index] >= 33 && itemp[index] <= 60) || (itemp[index] >= 62 && itemp[index] <= 126) || itemp[index] == 9 || itemp[index] == 32) { *optr++ = itemp[index]; llen++; } else if (itemp[index] == '\n') { /* * If the last character before EOL was a space or tab, * we must encode it. If llen > 74, there's no space to do * that, so generate a soft line break instead. */ if (index>0 && (itemp[index-1] == 9 || itemp[index-1] == 32)) { *(optr-1) = '='; if (llen <= 74) { *optr++ = HexEncodeTable[itemp[index-1] >> 4]; *optr++ = HexEncodeTable[itemp[index-1] & 0x0f]; llen += 2; } } if (fwrite (otemp, 1, llen, outfile) != llen || fwrite ((char *) eolstring, 1, strlen(eolstring), outfile) != strlen (eolstring)) { return UURET_IOERR; } /* * Fix the soft line break condition from above */ if (index>0 && (itemp[index-1] == 9 || itemp[index-1] == 32) && *(optr-1) == '=') { otemp[0] = '='; otemp[1] = HexEncodeTable[itemp[index-1] >> 4]; otemp[2] = HexEncodeTable[itemp[index-1] & 0x0f]; if (fwrite (otemp, 1, 3, outfile) != 3 || fwrite ((char *) eolstring, 1, strlen(eolstring), outfile) != strlen (eolstring)) { return UURET_IOERR; } } optr = otemp; llen = 0; } else { *optr++ = '='; *optr++ = HexEncodeTable[itemp[index] >> 4]; *optr++ = HexEncodeTable[itemp[index] & 0x0f]; llen += 3; } /* * Lines must be shorter than 76 characters (not counting CRLF). * If the line grows longer than that, we must include a soft * line break. */ if (itemp[index+1] != 0 && itemp[index+1] != '\n' && (llen >= 75 || (!((itemp[index+1] >= 33 && itemp[index+1] <= 60) || (itemp[index+1] >= 62 && itemp[index+1] <= 126)) && llen >= 73))) { *optr++ = '='; llen++; if (fwrite (otemp, 1, llen, outfile) != llen || fwrite ((char *) eolstring, 1, strlen(eolstring), outfile) != strlen (eolstring)) { return UURET_IOERR; } optr = otemp; llen = 0; } } } line++; } return UURET_OK; } /* * Special handling for yEnc */ if (encoding == YENC_ENCODED) { llen = 0; optr = otemp; long rest = bpf; long current = 0; while (rest > 0) { current = rest > 128 ? 128 : rest; if ((count = fread (itemp, sizeof(unsigned char), current, infile)) != 128) { if (count == 0) { break; } else if (ferror (infile)) { return UURET_IOERR; } } if (pcrc) *pcrc = crc32(*pcrc, itemp, count); if (crc) *crc = crc32(*crc, itemp, count); line++; /* * Busy Callback */ if (UUBUSYPOLL(ftell(infile)-progress.foffset,progress.fsize)) { UUMessage (uuencode_id, __LINE__, UUMSG_NOTE, uustring (S_ENCODE_CANCEL)); return UURET_CANCEL; } for (index=0; index 127 ) { if (fwrite (otemp, sizeof(unsigned char), llen, outfile) != llen || fwrite ((char *) eolstring, sizeof(unsigned char), strlen(eolstring), outfile) != strlen (eolstring)) { return UURET_IOERR; } llen = 0; optr = otemp; } char tmp = (char) ((int) itemp[index] + 42); switch ((char) ((int) itemp[index] + 42)) { case '\0': // case '\t': yEnc 1.3 draft case '\n': case '\r': case '=': case '\033': *optr++ = '='; *optr++ = (char) ((int) itemp[index] + 42 + 64); llen += 2; break; case '.': if (llen == 0) { *optr++ = '='; *optr++ = (char) ((int) itemp[index] + 42 + 64); llen += 2; } else { *optr++ = (char) ((int) itemp[index] + 42); llen++; } break; default: *optr++ = (char) ((int) itemp[index] + 42); llen++; break; } } rest -= count; } /* * write last line */ if (llen) { if (fwrite (otemp, 1, llen, outfile) != llen || fwrite ((char *) eolstring, 1, strlen(eolstring), outfile) != strlen (eolstring)) { return UURET_IOERR; } } return UURET_OK; } /* * Handling for binary encodings */ /* * select charset */ table = etables[encoding]; if (table==NULL || bpl[encoding]==0) { return UURET_ILLVAL; } while (!feof (infile) && rest > 0) { current = rest > bpl[encoding] ? bpl[encoding] : rest; if ((count = fread (itemp, 1, current, infile)) != bpl[encoding]) { if (count == 0) break; else if (ferror (infile)) return UURET_IOERR; } rest -= count; optr = otemp; llen = 0; /* * Busy Callback */ if (UUBUSYPOLL(ftell(infile)-progress.foffset,progress.fsize)) { UUMessage (uuencode_id, __LINE__, UUMSG_NOTE, uustring (S_ENCODE_CANCEL)); return UURET_CANCEL; } /* * for UU and XX, encode the number of bytes as first character */ if (encoding == UU_ENCODED || encoding == XX_ENCODED) { *optr++ = table[count]; llen++; } /* * Main encoding */ for (index=0; index<=count-3; index+=3, llen+=4) { *optr++ = table[itemp[index] >> 2]; *optr++ = table[((itemp[index ] & 0x03) << 4)|(itemp[index+1] >> 4)]; *optr++ = table[((itemp[index+1] & 0x0f) << 2)|(itemp[index+2] >> 6)]; *optr++ = table[ itemp[index+2] & 0x3f]; } /* * Special handling for incomplete lines */ if (index != count) { if (encoding == B64ENCODED) { if (count - index == 2) { *optr++ = table[itemp[index] >> 2]; *optr++ = table[((itemp[index ] & 0x03) << 4) | ((itemp[index+1] & 0xf0) >> 4)]; *optr++ = table[((itemp[index+1] & 0x0f) << 2)]; *optr++ = '='; } else if (count - index == 1) { *optr++ = table[ itemp[index] >> 2]; *optr++ = table[(itemp[index] & 0x03) << 4]; *optr++ = '='; *optr++ = '='; } llen += 4; } else if (encoding == UU_ENCODED || encoding == XX_ENCODED) { if (count - index == 2) { *optr++ = table[itemp[index] >> 2]; *optr++ = table[((itemp[index ] & 0x03) << 4) | ( itemp[index+1] >> 4)]; *optr++ = table[((itemp[index+1] & 0x0f) << 2)]; *optr++ = table[0]; } else if (count - index == 1) { *optr++ = table[ itemp[index] >> 2]; *optr++ = table[(itemp[index] & 0x03) << 4]; *optr++ = table[0]; *optr++ = table[0]; } llen += 4; } } /* * end of line */ tptr = eolstring; while (*tptr) *optr++ = *tptr++; *optr++ = '\0'; llen += strlen ((char *) eolstring); if (fwrite (otemp, 1, llen, outfile) != llen) return UURET_IOERR; line++; } return UURET_OK; } /* * Encode as MIME multipart/mixed sub-message. */ int UUEXPORT UUEncodeMulti (FILE *outfile, FILE *infile, char *infname, int encoding, char *outfname, char *mimetype, int filemode) { mimemap *miter=mimetable; struct stat finfo; int res, themode; FILE *theifile; char *ptr; crc32_t crc; crc32_t *crcptr=NULL; if (outfile==NULL || (infile == NULL && infname==NULL) || (outfname==NULL && infname==NULL) || (encoding!=UU_ENCODED&&encoding!=XX_ENCODED&&encoding!=B64ENCODED&& encoding!=PT_ENCODED&&encoding!=QP_ENCODED&&encoding!=YENC_ENCODED)) { UUMessage (uuencode_id, __LINE__, UUMSG_ERROR, uustring (S_PARM_CHECK), "UUEncodeMulti()"); return UURET_ILLVAL; } progress.action = 0; if (infile==NULL) { if (stat (infname, &finfo) == -1) { UUMessage (uuencode_id, __LINE__, UUMSG_ERROR, uustring (S_NOT_STAT_FILE), infname, strerror (uu_errno=errno)); return UURET_IOERR; } if ((theifile = fopen (infname, "rb")) == NULL) { UUMessage (uuencode_id, __LINE__, UUMSG_ERROR, uustring (S_NOT_OPEN_FILE), infname, strerror (uu_errno=errno)); return UURET_IOERR; } themode = (filemode) ? filemode : ((int) finfo.st_mode & 0777); progress.fsize = (long) finfo.st_size; } else { if (fstat (fileno (infile), &finfo) != 0) { themode = (filemode)?filemode:0644; progress.fsize = -1; } else { themode = (int) finfo.st_mode & 0777; progress.fsize = (long) finfo.st_size; } theifile = infile; } if (progress.fsize < 0) progress.fsize = -1; _FP_strncpy (progress.curfile, (outfname)?outfname:infname, 2048); progress.partno = 1; progress.numparts = 1; progress.percent = 0; progress.foffset = 0; progress.action = UUACT_ENCODING; /* * If not given from outside, select an appropriate Content-Type by * looking at the file's extension. If it is unknown, default to * Application/Octet-Stream */ if (mimetype == NULL) { if ((ptr = _FP_strrchr ((outfname)?outfname:infname, '.'))) { while (miter->extension && _FP_stricmp (ptr+1, miter->extension) != 0) miter++; mimetype = miter->mimetype; } } if (mimetype == NULL && (encoding == PT_ENCODED || encoding == QP_ENCODED)) { mimetype = "text/plain"; } /* * print sub-header */ if (encoding != YENC_ENCODED) { fprintf (outfile, "Content-Type: %s%s", (mimetype)?mimetype:"Application/Octet-Stream", eolstring); fprintf (outfile, "Content-Transfer-Encoding: %s%s", CTE_TYPE(encoding), eolstring); fprintf (outfile, "Content-Disposition: attachment; filename=\"%s\"%s", UUFNameFilter ((outfname)?outfname:infname), eolstring); fprintf (outfile, "%s", eolstring); } if (encoding == UU_ENCODED || encoding == XX_ENCODED) { fprintf (outfile, "begin %o %s%s", (themode) ? themode : 0644, UUFNameFilter ((outfname)?outfname:infname), eolstring); } else if (encoding == YENC_ENCODED) { crc = crc32(0L, Z_NULL, 0); crcptr = &crc; if (progress.fsize == -1) { fprintf (outfile, "=ybegin line=128 name=%s%s", UUFNameFilter ((outfname)?outfname:infname), eolstring); } else { fprintf (outfile, "=ybegin line=128 size=%ld name=%s%s", progress.fsize, UUFNameFilter ((outfname)?outfname:infname), eolstring); } } if ((res = UUEncodeStream (outfile, theifile, encoding, 0, crcptr, NULL)) != UURET_OK) { if (res != UURET_CANCEL) { UUMessage (uuencode_id, __LINE__, UUMSG_ERROR, uustring (S_ERR_ENCODING), UUFNameFilter ((infname)?infname:outfname), (res==UURET_IOERR)?strerror(uu_errno):UUstrerror(res)); } progress.action = 0; return res; } if (encoding == UU_ENCODED || encoding == XX_ENCODED) { fprintf (outfile, "%c%s", (encoding==UU_ENCODED) ? UUEncodeTable[0] : XXEncodeTable[0], eolstring); fprintf (outfile, "end%s", eolstring); } else if (encoding == YENC_ENCODED) { if (progress.fsize == -1) { fprintf (outfile, "=yend crc32=%08lx%s", crc, eolstring); } else { fprintf (outfile, "=yend size=%ld crc32=%08lx%s", progress.fsize, crc, eolstring); } } /* * empty line at end does no harm */ fprintf (outfile, "%s", eolstring); if (infile==NULL) fclose (theifile); progress.action = 0; return UURET_OK; } /* * Encode as MIME message/partial */ int UUEXPORT UUEncodePartial (FILE *outfile, FILE *infile, char *infname, int encoding, char *outfname, char *mimetype, int filemode, int partno, long linperfile, unsigned long* crcptr) { mimemap *miter=mimetable; static FILE *theifile; static int numparts; int themode; struct stat finfo; long thesize; char *ptr; int res; crc32_t pcrc; crc32_t *pcrcptr=NULL; if ((outfname==NULL&&infname==NULL) || partno<=0 || (infile == NULL&&infname==NULL) || outfile==NULL || (encoding!=UU_ENCODED&&encoding!=XX_ENCODED&&encoding!=B64ENCODED&& encoding!=PT_ENCODED&&encoding!=QP_ENCODED&&encoding!=YENC_ENCODED)) { // UUMessage (uuencode_id, __LINE__, UUMSG_ERROR, // uustring (S_PARM_CHECK), "UUEncodePartial()"); return UURET_ILLVAL; } /* * The first part needs a set of headers */ progress.action = 0; if (partno == 1) { *crcptr = crc32(0L, Z_NULL, 0); if (infile==NULL) { if (stat (infname, &finfo) == -1) { UUMessage (uuencode_id, __LINE__, UUMSG_ERROR, uustring (S_NOT_STAT_FILE), infname, strerror (uu_errno=errno)); return UURET_IOERR; } if ((theifile = fopen (infname, "rb")) == NULL) { UUMessage (uuencode_id, __LINE__, UUMSG_ERROR, uustring (S_NOT_OPEN_FILE), infname, strerror (uu_errno=errno)); return UURET_IOERR; } if (linperfile <= 0) numparts = 1; else numparts = (int) (((long)finfo.st_size+(linperfile*bpl[encoding]-1))/ (linperfile*bpl[encoding])); themode = (filemode) ? filemode : ((int) finfo.st_mode & 0777); thesize = (long) finfo.st_size; } else { if (fstat (fileno (infile), &finfo) != 0) { UUMessage (uuencode_id, __LINE__, UUMSG_WARNING, uustring (S_STAT_ONE_PART)); numparts = 1; themode = (filemode)?filemode:0644; thesize = -1; } else { if (linperfile <= 0) numparts = 1; else numparts = (int) (((long)finfo.st_size+(linperfile*bpl[encoding]-1))/ (linperfile*bpl[encoding])); themode = (int) finfo.st_mode & 0777; thesize = (long) finfo.st_size; } theifile = infile; } _FP_strncpy (progress.curfile, (outfname)?outfname:infname, 2048); progress.totsize = (thesize>=0) ? thesize : -1; progress.partno = 1; progress.numparts = numparts; progress.percent = 0; progress.foffset = 0; /* * If not given from outside, select an appropriate Content-Type by * looking at the file's extension. If it is unknown, default to * Application/Octet-Stream */ if (mimetype == NULL) { if ((ptr = _FP_strrchr ((outfname)?outfname:infname, '.'))) { while (miter->extension && _FP_stricmp (ptr+1, miter->extension) != 0) miter++; mimetype = miter->mimetype; } } if (mimetype == NULL && (encoding==PT_ENCODED || encoding==QP_ENCODED)) { mimetype = "text/plain"; } /* * print sub-header */ if (encoding != YENC_ENCODED) { fprintf (outfile, "MIME-Version: 1.0%s", eolstring); fprintf (outfile, "Content-Type: %s%s", (mimetype)?mimetype:"Application/Octet-Stream", eolstring); fprintf (outfile, "Content-Transfer-Encoding: %s%s", CTE_TYPE(encoding), eolstring); fprintf (outfile, "Content-Disposition: attachment; filename=\"%s\"%s", UUFNameFilter ((outfname)?outfname:infname), eolstring); } fprintf (outfile, "%s", eolstring); /* * for the first part of UU or XX messages, print a begin line */ if (encoding == UU_ENCODED || encoding == XX_ENCODED) { fprintf (outfile, "begin %o %s%s", (themode) ? themode : ((filemode)?filemode:0644), UUFNameFilter ((outfname)?outfname:infname), eolstring); } } if (encoding == YENC_ENCODED) { pcrc = crc32(0L, Z_NULL, 0); pcrcptr = &pcrc; if (numparts != 1) { if (progress.totsize == -1) { fprintf (outfile, "=ybegin part=%d line=128 name=%s%s", partno, UUFNameFilter ((outfname)?outfname:infname), eolstring); } else { fprintf (outfile, "=ybegin part=%d line=128 size=%ld name=%s%s", partno, progress.totsize, UUFNameFilter ((outfname)?outfname:infname), eolstring); } fprintf (outfile, "=ypart begin=%ld end=%ld%s", (partno-1)*linperfile*128+1, (partno*linperfile*128) < progress.totsize ? (partno*linperfile*128) : progress.totsize, eolstring); } else { if (progress.totsize == -1) { fprintf (outfile, "=ybegin line=128 name=%s%s", UUFNameFilter ((outfname)?outfname:infname), eolstring); } else { fprintf (outfile, "=ybegin line=128 size=%ld name=%s%s", progress.totsize, UUFNameFilter ((outfname)?outfname:infname), eolstring); } } } /* * update progress information */ progress.partno = partno; progress.percent = 0; progress.foffset = ftell (theifile); if (progress.totsize <= 0) progress.fsize = -1; else if (linperfile <= 0) progress.fsize = progress.totsize; else if (progress.foffset+linperfile*bpl[encoding] > progress.totsize) progress.fsize = progress.totsize - progress.foffset; else progress.fsize = linperfile*bpl[encoding]; progress.action = UUACT_ENCODING; if ((res = UUEncodeStream (outfile, theifile, encoding, linperfile, crcptr, pcrcptr)) != UURET_OK) { if (infile==NULL) fclose (theifile); if (res != UURET_CANCEL) { UUMessage (uuencode_id, __LINE__, UUMSG_ERROR, uustring (S_ERR_ENCODING), UUFNameFilter ((outfname)?outfname:infname), (res==UURET_IOERR)?strerror(uu_errno):UUstrerror (res)); } progress.action = 0; return res; } /* * print end line */ if (feof (theifile) && (encoding == UU_ENCODED || encoding == XX_ENCODED)) { fprintf (outfile, "%c%s", (encoding==UU_ENCODED) ? UUEncodeTable[0] : XXEncodeTable[0], eolstring); fprintf (outfile, "end%s", eolstring); } else if (encoding == YENC_ENCODED) { if (numparts != 1) { fprintf (outfile, "=yend size=%ld part=%d pcrc32=%08lx", (partno*linperfile*128) < progress.totsize ? linperfile*128 : (progress.totsize-(partno-1)*linperfile*128), partno, pcrc); } else { fprintf (outfile, "=yend size=%ld", progress.totsize); } if (feof (theifile)) fprintf (outfile, " crc32=%08lx", *crcptr); fprintf (outfile, "%s", eolstring); } /* * empty line at end does no harm */ if (encoding != PT_ENCODED && encoding != QP_ENCODED) { fprintf (outfile, "%s", eolstring); } if (infile==NULL) { if (res != UURET_OK) { progress.action = 0; fclose (theifile); return res; } if (feof (theifile)) { progress.action = 0; fclose (theifile); return UURET_OK; } return UURET_CONT; } /* * leave progress.action as-is */ return UURET_OK; } int UUEXPORT UUEncodePartial_byFSize (FILE *outfile, FILE *infile, char *infname, int encoding, char *outfname, char *mimetype, int filemode, int partno, long bpf, unsigned long* crcptr) { mimemap *miter=mimetable; static FILE *theifile; int themode, numparts; struct stat finfo; long thesize; char *ptr; int res; crc32_t pcrc; crc32_t *pcrcptr=NULL; if ((outfname==NULL&&infname==NULL) || partno<=0 || (infile == NULL&&infname==NULL) || outfile==NULL || (encoding!=UU_ENCODED&&encoding!=XX_ENCODED&&encoding!=B64ENCODED&& encoding!=PT_ENCODED&&encoding!=QP_ENCODED&&encoding!=YENC_ENCODED)) { return UURET_ILLVAL; } /* * The first part needs a set of headers */ progress.action = 0; if (partno == 1) { *crcptr = crc32(0L, Z_NULL, 0); if (infile==NULL) { if (stat (infname, &finfo) == -1) { UUMessage (uuencode_id, __LINE__, UUMSG_ERROR, uustring (S_NOT_STAT_FILE), infname, strerror (uu_errno=errno)); return UURET_IOERR; } if ((theifile = fopen (infname, "rb")) == NULL) { UUMessage (uuencode_id, __LINE__, UUMSG_ERROR, uustring (S_NOT_OPEN_FILE), infname, strerror (uu_errno=errno)); return UURET_IOERR; } if (finfo.st_size <= bpf) numparts = 1; else numparts = (int) (ceil((double)finfo.st_size / (double)bpf)); themode = (filemode) ? filemode : ((int) finfo.st_mode & 0777); thesize = (long) finfo.st_size; } else { if (fstat (fileno (infile), &finfo) != 0) { UUMessage (uuencode_id, __LINE__, UUMSG_WARNING, uustring (S_STAT_ONE_PART)); numparts = 1; themode = (filemode)?filemode:0644; thesize = -1; } else { themode = (int) finfo.st_mode & 0777; thesize = (long) finfo.st_size; if (finfo.st_size <= bpf) numparts = 1; else numparts = (int) (ceill(thesize / bpf)); } theifile = infile; } _FP_strncpy (progress.curfile, (outfname)?outfname:infname, 2048); progress.totsize = (thesize>=0) ? thesize : -1; progress.partno = 1; progress.numparts = numparts; progress.percent = 0; progress.foffset = 0; /* * If not given from outside, select an appropriate Content-Type by * looking at the file's extension. If it is unknown, default to * Application/Octet-Stream */ if (mimetype == NULL) { if ((ptr = _FP_strrchr ((outfname)?outfname:infname, '.'))) { while (miter->extension && _FP_stricmp (ptr+1, miter->extension) != 0) miter++; mimetype = miter->mimetype; } } if (mimetype == NULL && (encoding==PT_ENCODED || encoding==QP_ENCODED)) { mimetype = "text/plain"; } /* * print sub-header */ // if (encoding != YENC_ENCODED) // { // fprintf (outfile, "MIME-Version: 1.0%s", eolstring); // fprintf (outfile, "Content-Type: Message/Partial; number=%d; total=%d;%s", // partno, numparts, eolstring); // fprintf (outfile, "Content-Transfer-Encoding: %s%s", // CTE_TYPE(encoding), eolstring); // fprintf (outfile, "Content-Disposition: attachment; filename=\"%s\"%s", // UUFNameFilter ((outfname)?outfname:infname), eolstring); // } // fprintf (outfile, "%s", eolstring); /* * for the first part of UU or XX messages, print a begin line */ if (encoding == UU_ENCODED || encoding == XX_ENCODED) { fprintf (outfile, "begin %o %s%s", (themode) ? themode : ((filemode)?filemode:0644), UUFNameFilter ((outfname)?outfname:infname), eolstring); } } if (encoding == YENC_ENCODED) { pcrc = crc32(0L, Z_NULL, 0); pcrcptr = &pcrc; if (numparts != 1) { if (progress.totsize == -1) { fprintf (outfile, "=ybegin part=%d line=128 name=%s%s", partno, UUFNameFilter ((outfname)?outfname:infname), eolstring); } else { fprintf (outfile, "=ybegin part=%d line=128 size=%ld name=%s%s", partno, progress.totsize, UUFNameFilter ((outfname)?outfname:infname), eolstring); } fprintf (outfile, "=ypart begin=%ld end=%ld%s", (partno-1)*bpf+1, (partno*bpf) < progress.totsize ? (partno*bpf) : progress.totsize, eolstring); } else { if (progress.totsize == -1) { fprintf (outfile, "=ybegin line=128 name=%s%s", UUFNameFilter ((outfname)?outfname:infname), eolstring); } else { fprintf (outfile, "=ybegin line=128 size=%ld name=%s%s", progress.totsize, UUFNameFilter ((outfname)?outfname:infname), eolstring); } } } /* * update progress information */ progress.partno = partno; progress.percent = 0; progress.foffset = ftell (theifile); if (progress.totsize <= 0) progress.fsize = -1; else if (bpf <= 0) progress.fsize = progress.totsize; else if (progress.foffset+ bpf > progress.totsize) progress.fsize = progress.totsize - progress.foffset; else progress.fsize = bpf; progress.action = UUACT_ENCODING; if ((res = UUEncodeStream_byFSize (outfile, theifile, encoding, bpf, crcptr, pcrcptr)) != UURET_OK) { if (infile==NULL) fclose (theifile); if (res != UURET_CANCEL) { UUMessage (uuencode_id, __LINE__, UUMSG_ERROR, uustring (S_ERR_ENCODING), UUFNameFilter ((outfname)?outfname:infname), (res==UURET_IOERR)?strerror(uu_errno):UUstrerror (res)); } progress.action = 0; return res; } /* * print end line */ if (feof (theifile) && (encoding == UU_ENCODED || encoding == XX_ENCODED)) { fprintf (outfile, "%c%s", (encoding==UU_ENCODED) ? UUEncodeTable[0] : XXEncodeTable[0], eolstring); fprintf (outfile, "end%s", eolstring); } else if (encoding == YENC_ENCODED) { if (numparts != 1) { fprintf (outfile, "=yend size=%ld part=%d pcrc32=%08lx", (partno*bpf) < progress.totsize ? bpf : (progress.totsize-(partno-1)*bpf), partno, pcrc); } else { fprintf (outfile, "=yend size=%ld", progress.totsize); } if (feof (theifile)) fprintf (outfile, " crc32=%08lx", *crcptr); fprintf (outfile, "%s", eolstring); } /* * empty line at end does no harm */ if (encoding != PT_ENCODED && encoding != QP_ENCODED) { fprintf (outfile, "%s", eolstring); } if (infile==NULL) { if (res != UURET_OK) { progress.action = 0; fclose (theifile); return res; } if (feof (theifile)) { progress.action = 0; fclose (theifile); return UURET_OK; } return UURET_CONT; } /* * leave progress.action as-is */ return UURET_OK; } /* * send output to a stream, don't do any headers at all */ int UUEXPORT UUEncodeToStream (FILE *outfile, FILE *infile, char *infname, int encoding, char *outfname, int filemode) { struct stat finfo; FILE *theifile; int themode; int res; crc32_t crc; crc32_t *crcptr=NULL; if (outfile==NULL || (infile == NULL&&infname==NULL) || (outfname==NULL&&infname==NULL) || (encoding!=UU_ENCODED&&encoding!=XX_ENCODED&&encoding!=B64ENCODED&& encoding!=PT_ENCODED&&encoding!=QP_ENCODED&&encoding!=YENC_ENCODED)) { UUMessage (uuencode_id, __LINE__, UUMSG_ERROR, uustring (S_PARM_CHECK), "UUEncodeToStream()"); return UURET_ILLVAL; } progress.action = 0; if (infile==NULL) { if (stat (infname, &finfo) == -1) { UUMessage (uuencode_id, __LINE__, UUMSG_ERROR, uustring (S_NOT_STAT_FILE), infname, strerror (uu_errno=errno)); return UURET_IOERR; } if ((theifile = fopen (infname, "rb")) == NULL) { UUMessage (uuencode_id, __LINE__, UUMSG_ERROR, uustring (S_NOT_OPEN_FILE), infname, strerror (uu_errno=errno)); return UURET_IOERR; } themode = (filemode) ? filemode : ((int) finfo.st_mode & 0777); progress.fsize = (long) finfo.st_size; } else { if (fstat (fileno (infile), &finfo) == -1) { /* gotta live with it */ themode = 0644; progress.fsize = -1; } else { themode = (filemode) ? filemode : ((int) finfo.st_mode & 0777); progress.fsize = (long) finfo.st_size; } theifile = infile; } if (progress.fsize < 0) progress.fsize = -1; _FP_strncpy (progress.curfile, (outfname)?outfname:infname, 2048); progress.partno = 1; progress.numparts = 1; progress.percent = 0; progress.foffset = 0; progress.action = UUACT_ENCODING; if (encoding == UU_ENCODED || encoding == XX_ENCODED) { fprintf (outfile, "begin %o %s%s", (themode) ? themode : 0644, UUFNameFilter ((outfname)?outfname:infname), eolstring); } else if (encoding == YENC_ENCODED) { crc = crc32(0L, Z_NULL, 0); crcptr = &crc; if (progress.fsize == -1) { fprintf (outfile, "=ybegin line=128 name=%s%s", UUFNameFilter ((outfname)?outfname:infname), eolstring); } else { fprintf (outfile, "=ybegin line=128 size=%ld name=%s%s", progress.fsize, UUFNameFilter ((outfname)?outfname:infname), eolstring); } } if ((res = UUEncodeStream (outfile, theifile, encoding, 0, crcptr, NULL)) != UURET_OK) { if (res != UURET_CANCEL) { UUMessage (uuencode_id, __LINE__, UUMSG_ERROR, uustring (S_ERR_ENCODING), UUFNameFilter ((infname)?infname:outfname), (res==UURET_IOERR)?strerror(uu_errno):UUstrerror (res)); } progress.action = 0; return res; } if (encoding == UU_ENCODED || encoding == XX_ENCODED) { fprintf (outfile, "%c%s", (encoding==UU_ENCODED) ? UUEncodeTable[0] : XXEncodeTable[0], eolstring); fprintf (outfile, "end%s", eolstring); } else if (encoding == YENC_ENCODED) { if (progress.fsize == -1) { fprintf (outfile, "=yend crc32=%08lx%s", crc, eolstring); } else { fprintf (outfile, "=yend size=%ld crc32=%08lx%s", progress.fsize, crc, eolstring); } } /* * empty line at end does no harm */ fprintf (outfile, "%s", eolstring); if (infile==NULL) fclose (theifile); progress.action = 0; return UURET_OK; } /* * Encode to files on disk, don't generate any headers */ int UUEXPORT UUEncodeToFile (FILE *infile, char *infname, int encoding, char *outfname, char *diskname, long linperfile) { int part, numparts, len, filemode, res; char *oname=NULL, *optr, *ptr; FILE *theifile, *outfile; struct stat finfo; crc32_t pcrc, crc; crc32_t *pcrcptr=NULL, *crcptr=NULL; if ((diskname==NULL&&infname==NULL) || (outfname==NULL&&infname==NULL) || (infile==NULL&&infname==NULL) || (encoding!=UU_ENCODED&&encoding!=XX_ENCODED&&encoding!=B64ENCODED&& encoding!=PT_ENCODED&&encoding!=QP_ENCODED&&encoding!=YENC_ENCODED)) { UUMessage (uuencode_id, __LINE__, UUMSG_ERROR, uustring (S_PARM_CHECK), "UUEncodeToFile()"); return UURET_ILLVAL; } if (diskname) { if ((ptr = strchr (diskname, '/')) == NULL) ptr = strchr (diskname, '\\'); if (ptr) { len = strlen (diskname) + ((uuencodeext)?strlen(uuencodeext):3) + 5; if ((oname = malloc (len)) == NULL) { UUMessage (uuencode_id, __LINE__, UUMSG_ERROR, uustring (S_OUT_OF_MEMORY), len); return UURET_NOMEM; } sprintf (oname, "%s", diskname); } else { len = ((uusavepath)?strlen(uusavepath):0) + strlen (diskname) + ((uuencodeext)?strlen(uuencodeext):0) + 5; if ((oname = malloc (len)) == NULL) { UUMessage (uuencode_id, __LINE__, UUMSG_ERROR, uustring (S_OUT_OF_MEMORY), len); return UURET_NOMEM; } sprintf (oname, "%s%s", (uusavepath)?uusavepath:"", diskname); } } else { len = ((uusavepath) ? strlen (uusavepath) : 0) + strlen(UUFNameFilter(infname)) + ((uuencodeext)?strlen(uuencodeext):0) + 5; if ((oname = malloc (len)) == NULL) { UUMessage (uuencode_id, __LINE__, UUMSG_ERROR, uustring (S_OUT_OF_MEMORY), len); return UURET_NOMEM; } optr = UUFNameFilter (infname); sprintf (oname, "%s%s", (uusavepath)?uusavepath:"", (*optr=='.')?optr+1:optr); } /* * optr points after the last dot, so that we can print the part number * there. */ optr = _FP_strrchr (oname, '.'); if (optr==NULL || strchr (optr, '/')!=NULL || strchr (optr, '\\')!=NULL) { optr = oname + strlen (oname); *optr++ = '.'; } else if (optr==oname || *(optr-1)=='/' || *(optr-1)=='\\') { optr = oname + strlen (oname); *optr++ = '.'; } else optr++; progress.action = 0; if (infile==NULL) { if (stat (infname, &finfo) == -1) { UUMessage (uuencode_id, __LINE__, UUMSG_ERROR, uustring (S_NOT_STAT_FILE), infname, strerror (uu_errno=errno)); _FP_free (oname); return UURET_IOERR; } if ((theifile = fopen (infname, "rb")) == NULL) { UUMessage (uuencode_id, __LINE__, UUMSG_ERROR, uustring (S_NOT_OPEN_FILE), infname, strerror (uu_errno=errno)); _FP_free (oname); return UURET_IOERR; } if (linperfile <= 0) numparts = 1; else numparts = (int) (((long)finfo.st_size + (linperfile*bpl[encoding]-1)) / (linperfile*bpl[encoding])); filemode = (int) finfo.st_mode & 0777; progress.totsize = (long) finfo.st_size; } else { if (fstat (fileno (infile), &finfo) == -1) { /* gotta live with it */ filemode = 0644; numparts = -1; progress.totsize = -1; } else { if (linperfile <= 0) numparts = 1; else numparts = (int) (((long)finfo.st_size+(linperfile*bpl[encoding]-1))/ (linperfile*bpl[encoding])); filemode = (int) finfo.st_mode & 0777; progress.totsize = -1; } theifile = infile; } _FP_strncpy (progress.curfile, (outfname)?outfname:infname, 2048); progress.totsize = (progress.totsize<0) ? -1 : progress.totsize; progress.numparts = numparts; for (part=1; !feof (theifile); part++) { /* * Attach extension */ if (progress.numparts==1 && progress.totsize!=-1 && uuencodeext!=NULL) strcpy (optr, uuencodeext); else sprintf (optr, "%03d", part); /* * check if target file exists */ if (!uu_overwrite) { if (stat (oname, &finfo) == 0) { UUMessage (uuencode_id, __LINE__, UUMSG_ERROR, uustring (S_TARGET_EXISTS), oname); if (infile==NULL) fclose (theifile); progress.action = 0; free (oname); return UURET_EXISTS; } } /* * update progress information */ progress.action = 0; progress.partno = part; progress.percent = 0; progress.foffset = ftell (theifile); if (progress.totsize == -1) progress.fsize = -1; else if (linperfile <= 0) progress.fsize = progress.totsize; else if (progress.foffset+linperfile*bpl[encoding] > progress.totsize) progress.fsize = progress.totsize - progress.foffset; else progress.fsize = linperfile*bpl[encoding]; progress.action = UUACT_ENCODING; if ((outfile = fopen (oname, "w")) == NULL) { UUMessage (uuencode_id, __LINE__, UUMSG_ERROR, uustring (S_NOT_OPEN_TARGET), oname, strerror (uu_errno = errno)); if (infile==NULL) fclose (theifile); progress.action = 0; free (oname); return UURET_IOERR; } if (encoding != YENC_ENCODED) { fprintf (outfile, "%s", eolstring); fprintf (outfile, "_=_ %s", eolstring); if (numparts == -1) fprintf (outfile, "_=_ Part %03d of file %s%s", part, UUFNameFilter ((outfname)?outfname:infname), eolstring); else fprintf (outfile, "_=_ Part %03d of %03d of file %s%s", part, numparts, UUFNameFilter ((outfname)?outfname:infname), eolstring); fprintf (outfile, "_=_ %s", eolstring); fprintf (outfile, "%s", eolstring); } if (part==1 && (encoding == UU_ENCODED || encoding == XX_ENCODED)) { fprintf (outfile, "begin %o %s%s", (filemode)?filemode : 0644, UUFNameFilter ((outfname)?outfname:infname), eolstring); } else if (encoding == YENC_ENCODED) { if (!crcptr) { crc = crc32(0L, Z_NULL, 0); crcptr = &crc; } pcrc = crc32(0L, Z_NULL, 0); pcrcptr = &pcrc; if (numparts != 1) { if (progress.totsize == -1) { fprintf (outfile, "=ybegin part=%d line=128 name=%s%s", part, UUFNameFilter ((outfname)?outfname:infname), eolstring); } else { fprintf (outfile, "=ybegin part=%d line=128 size=%ld name=%s%s", part, progress.totsize, UUFNameFilter ((outfname)?outfname:infname), eolstring); } fprintf (outfile, "=ypart begin=%ld end=%ld%s", (part-1)*linperfile*128+1, (part*linperfile*128) < progress.totsize ? (part*linperfile*128) : progress.totsize, eolstring); } else { if (progress.totsize == -1) { fprintf (outfile, "=ybegin line=128 name=%s%s", UUFNameFilter ((outfname)?outfname:infname), eolstring); } else { fprintf (outfile, "=ybegin line=128 size=%ld name=%s%s", progress.totsize, UUFNameFilter ((outfname)?outfname:infname), eolstring); } } } if ((res = UUEncodeStream (outfile, theifile, encoding, linperfile, crcptr, pcrcptr)) != UURET_OK) { if (res != UURET_CANCEL) { UUMessage (uuencode_id, __LINE__, UUMSG_ERROR, uustring (S_ERR_ENCODING), UUFNameFilter ((infname)?infname:outfname), (res==UURET_IOERR)?strerror(uu_errno):UUstrerror (res)); } if (infile==NULL) fclose (theifile); progress.action = 0; fclose (outfile); unlink (oname); _FP_free (oname); return res; } if (feof (theifile) && (encoding == UU_ENCODED || encoding == XX_ENCODED)) { fprintf (outfile, "%c%s", (encoding==UU_ENCODED) ? UUEncodeTable[0] : XXEncodeTable[0], eolstring); fprintf (outfile, "end%s", eolstring); } else if (encoding == YENC_ENCODED) { if (numparts != 1) { fprintf (outfile, "=yend size=%ld part=%d pcrc32=%08lx", (part*linperfile*128) < progress.totsize ? linperfile*128 : (progress.totsize-(part-1)*linperfile*128), part, pcrc); } else { fprintf (outfile, "=yend size=%ld", progress.totsize); } if (feof (theifile)) fprintf (outfile, " crc32=%08lx", crc); fprintf (outfile, "%s", eolstring); } /* * empty line at end does no harm */ fprintf (outfile, "%s", eolstring); fclose (outfile); } if (infile==NULL) fclose (theifile); progress.action = 0; _FP_free (oname); return UURET_OK; } /* * Encode a MIME Mail message or Newsgroup posting and send to a * stream. Still needs a somewhat smart MDA, since we only gene- * rate a minimum set of headers. */ int UUEXPORT UUE_PrepSingle (FILE *outfile, FILE *infile, char *infname, int encoding, char *outfname, int filemode, char *destination, char *from, char *subject, int isemail) { return UUE_PrepSingleExt (outfile, infile, infname, encoding, outfname, filemode, destination, from, subject, NULL, isemail); } int UUEXPORT UUE_PrepSingleExt (FILE *outfile, FILE *infile, char *infname, int encoding, char *outfname, int filemode, char *destination, char *from, char *subject, char *replyto, int isemail) { mimemap *miter=mimetable; char *subline, *oname; char *mimetype, *ptr; int res, len; if ((outfname==NULL&&infname==NULL) || (infile==NULL&&infname==NULL) || (encoding!=UU_ENCODED&&encoding!=XX_ENCODED&&encoding!=B64ENCODED&& encoding!=PT_ENCODED&&encoding!=QP_ENCODED&&encoding!=YENC_ENCODED)) { UUMessage (uuencode_id, __LINE__, UUMSG_ERROR, uustring (S_PARM_CHECK), "UUE_PrepSingle()"); return UURET_ILLVAL; } oname = UUFNameFilter ((outfname)?outfname:infname); len = ((subject)?strlen(subject):0) + strlen(oname) + 40; if ((ptr = _FP_strrchr (oname, '.'))) { while (miter->extension && _FP_stricmp (ptr+1, miter->extension) != 0) miter++; mimetype = miter->mimetype; } else mimetype = NULL; if (mimetype == NULL && (encoding == PT_ENCODED || encoding == QP_ENCODED)) { mimetype = "text/plain"; } if ((subline = (char *) malloc (len)) == NULL) { UUMessage (uuencode_id, __LINE__, UUMSG_ERROR, uustring (S_OUT_OF_MEMORY), len); return UURET_NOMEM; } if (encoding == YENC_ENCODED) { if (subject) sprintf (subline, "- %s - %s (001/001)", oname, subject); else sprintf (subline, "- %s - (001/001)", oname); } else { if (subject) sprintf (subline, "%s (001/001) - [ %s ]", subject, oname); else sprintf (subline, "[ %s ] (001/001)", oname); } if (from) { fprintf (outfile, "From: %s%s", from, eolstring); } if (destination) { fprintf (outfile, "%s: %s%s", (isemail)?"To":"Newsgroups", destination, eolstring); } fprintf (outfile, "Subject: %s%s", subline, eolstring); if (replyto) { fprintf (outfile, "Reply-To: %s%s", replyto, eolstring); } if (encoding != YENC_ENCODED) { fprintf (outfile, "MIME-Version: 1.0%s", eolstring); fprintf (outfile, "Content-Type: %s; name=\"%s\"%s", (mimetype)?mimetype:"Application/Octet-Stream", UUFNameFilter ((outfname)?outfname:infname), eolstring); fprintf (outfile, "Content-Transfer-Encoding: %s%s", CTE_TYPE(encoding), eolstring); } fprintf (outfile, "%s", eolstring); res = UUEncodeToStream (outfile, infile, infname, encoding, outfname, filemode); _FP_free (subline); return res; } int UUEXPORT UUE_PrepPartial (FILE *outfile, FILE *infile, char *infname, int encoding, char *outfname, int filemode, int partno, long linperfile, long filesize, char *destination, char *from, char *subject, int isemail) { return UUE_PrepPartialExt (outfile, infile, infname, encoding, outfname, filemode, partno, linperfile, filesize, destination, from, subject, NULL, isemail); } int UUEXPORT UUE_PrepPartialExt (FILE *outfile, FILE *infile, char *infname, int encoding, char *outfname, int filemode, int partno, long linperfile, long filesize, char *destination, char *from, char *subject, char *replyto, int isemail) { static int numparts, themode; static char mimeid[64]; static FILE *theifile; struct stat finfo; char *subline, *oname; long thesize; int res, len; static crc32_t crc; crc32_t *crcptr=NULL; if ((outfname==NULL&&infname==NULL) || (infile==NULL&&infname==NULL) || (encoding!=UU_ENCODED&&encoding!=XX_ENCODED&&encoding!=B64ENCODED&& encoding!=PT_ENCODED&&encoding!=QP_ENCODED&&encoding!=YENC_ENCODED)) { UUMessage (uuencode_id, __LINE__, UUMSG_ERROR, uustring (S_PARM_CHECK), "UUE_PrepPartial()"); return UURET_ILLVAL; } oname = UUFNameFilter ((outfname)?outfname:infname); len = ((subject)?strlen(subject):0) + strlen (oname) + 40; /* * if first part, get information about the file */ if (partno == 1) { if (infile==NULL) { if (stat (infname, &finfo) == -1) { UUMessage (uuencode_id, __LINE__, UUMSG_ERROR, uustring (S_NOT_STAT_FILE), infname, strerror (uu_errno=errno)); return UURET_IOERR; } if ((theifile = fopen (infname, "rb")) == NULL) { UUMessage (uuencode_id, __LINE__, UUMSG_ERROR, uustring (S_NOT_OPEN_FILE), infname, strerror (uu_errno=errno)); return UURET_IOERR; } if (linperfile <= 0) numparts = 1; else numparts = (int) (((long)finfo.st_size+(linperfile*bpl[encoding]-1))/ (linperfile*bpl[encoding])); themode = (filemode) ? filemode : ((int) finfo.st_mode & 0777); thesize = (long) finfo.st_size; } else { if (fstat (fileno (infile), &finfo) != 0) { if (filesize <= 0) { UUMessage (uuencode_id, __LINE__, UUMSG_WARNING, uustring (S_STAT_ONE_PART)); numparts = 1; themode = (filemode)?filemode:0644; thesize = -1; } else { if (linperfile <= 0) numparts = 1; else numparts = (int) ((filesize+(linperfile*bpl[encoding]-1))/ (linperfile*bpl[encoding])); themode = (filemode)?filemode:0644; thesize = filesize; } } else { if (linperfile <= 0) numparts = 1; else numparts = (int) (((long)finfo.st_size+(linperfile*bpl[encoding]-1))/ (linperfile*bpl[encoding])); filemode = (int) finfo.st_mode & 0777; thesize = (long) finfo.st_size; } theifile = infile; } /* * if there's one part only, don't use Message/Partial */ if (numparts == 1) { if (infile==NULL) fclose (theifile); return UUE_PrepSingleExt (outfile, infile, infname, encoding, outfname, filemode, destination, from, subject, replyto, isemail); } /* * we also need a unique ID */ sprintf (mimeid, "UUDV-%ld.%ld.%s", (long) time(NULL), thesize, (strlen(oname)>16)?"oops":oname); } if ((subline = (char *) malloc (len)) == NULL) { UUMessage (uuencode_id, __LINE__, UUMSG_ERROR, uustring (S_OUT_OF_MEMORY), len); if (infile==NULL) fclose (theifile); return UURET_NOMEM; } if (encoding == YENC_ENCODED) { if (partno == 1) crc = crc32(0L, Z_NULL, 0); crcptr = &crc; if (subject) sprintf (subline, "- %s - %s (%03d/%03d)", oname, subject, partno, numparts); else sprintf (subline, "- %s - (%03d/%03d)", oname, partno, numparts); } else { if (subject) sprintf (subline, "%s (%03d/%03d) - [ %s ]", subject, partno, numparts, oname); else sprintf (subline, "[ %s ] (%03d/%03d)", oname, partno, numparts); } if (from) { fprintf (outfile, "From: %s%s", from, eolstring); } if (destination) { fprintf (outfile, "%s: %s%s", (isemail)?"To":"Newsgroups", destination, eolstring); } fprintf (outfile, "Subject: %s%s", subline, eolstring); if (replyto) { fprintf (outfile, "Reply-To: %s%s", replyto, eolstring); } if (encoding != YENC_ENCODED) { fprintf (outfile, "MIME-Version: 1.0%s", eolstring); fprintf (outfile, "Content-Type: Message/Partial; number=%d; total=%d;%s", partno, numparts, eolstring); fprintf (outfile, "\tid=\"%s\"%s", mimeid, eolstring); } fprintf (outfile, "%s", eolstring); res = UUEncodePartial (outfile, theifile, infname, encoding, (outfname)?outfname:infname, NULL, themode, partno, linperfile, crcptr); _FP_free (subline); if (infile==NULL) { if (res != UURET_OK) { fclose (theifile); return res; } if (feof (theifile)) { fclose (theifile); return UURET_OK; } return UURET_CONT; } return res; } pan-0.162/uulib/uuint.h000066400000000000000000000234101475412772400147520ustar00rootroot00000000000000/* * This file is part of uudeview, the simple and friendly multi-part multi- * file uudecoder program (c) 1994-2001 by Frank Pilhofer. The author may * be contacted at fp@fpx.de * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ #ifndef __UUINT_H__ #define __UUINT_H__ /* * This file describes the internal structures, variables and definitions * of UUDeview. It should not be included from other packages. Subject to * change without notice. Do not depend on anything here. * * $Id$ */ #ifndef _ANSI_ARGS_ #ifdef PROTOTYPES #define _ANSI_ARGS_(c) c #else #define _ANSI_ARGS_(c) () #endif #endif /* * Busy Polls will be made after processing ... lines */ #define BUSY_LINE_TICKS 50 /* * States of MIME scanner */ #define MS_HEADERS 1 /* still inside of headers */ #define MS_BODY 2 /* body of `simple' messages */ #define MS_PREAMBLE 3 /* preamble of Multipart/Mixed */ #define MS_SUBPART 4 /* within one of the Multiparts */ #define MS_EPILOGUE 5 /* epilogue of Multipart/Mixed */ /* * Number of subsequent encoded lines we require to believe this * is valid data. */ #define ELC_COUNT 4 /* * Flags a part may have. FL_PROPER means that we are sure about the file's * encoding, beginning and end, and don't have to use special care when de- * coding. */ #define FL_NONE 0 /* no flag, just plain normal */ #define FL_SINGLE 1 /* standalone MSG, do not mix */ #define FL_PARTIAL 2 /* from Message/Partial */ #define FL_PROPER 4 /* proper MIME part */ #define FL_TOEND 8 /* part continues to EOF */ /* * Auxiliary macro: compute the percentage of a against b. * The obvious answer is (100*a)/b, but this overflows for large a. * a/(b/100) is better; we use a/((b/100)+1) so that we don't divide * by zero for b<100 and the result doesn't become larger than 100% */ #define UUPERCENT(a,b) ((int) ((unsigned long)(a) / \ (((unsigned long)(b)/100)+1))) /* * Make the Busy Callback easier. The macro returns true if the BusyCallback * wants us to terminate. */ extern unsigned long uuyctr; #define UUBUSYPOLL(a,b) (((++uuyctr%BUSY_LINE_TICKS)==0) ? (progress.percent=UUPERCENT((a),(b)),UUBusyPoll()):0) /* * How many lines of headers do we need to believe another mail * header is approaching? Use more restrictive values for MIME * mails, less restrictive for Freestyle */ typedef struct { int restart; /* restarting after a MIME body (not subpart) */ int afterdata; /* after we had useful data in freestyle mode */ int afternl; /* after an empty line in freestyle mode */ } headercount; extern headercount hlcount; /* * Information from the headers of a message. Each instance must * have its very own copy of the strings. If `mimevers' is NULL, * then this message does not comply to the MIME standard. */ typedef struct _headers { char *from; /* From: */ char *subject; /* Subject: */ char *rcpt; /* To: */ char *date; /* Date: */ char *mimevers; /* MIME-Version: */ char *ctype; /* Content-Type: */ char *ctenc; /* Content-Transfer-Encoding: */ char *fname; /* Potential Filename from Content-Type Parameter */ char *boundary; /* MIME-Boundary from Content-Type Parameter */ char *mimeid; /* MIME-Id for Message/Partial */ int partno; /* part number for Message/Partial */ int numparts; /* number of parts for Message/Partial */ } headers; /* * Scanner state */ typedef struct _scanstate { int isfolder; /* if we think this is a valid email folder */ int ismime; /* if we are within a valid MIME message */ int mimestate; /* state of MIME scanner */ int mimeenc; /* encoding of this MIME file */ char *source; /* source filename */ headers envelope; /* mail envelope headers */ } scanstate; /* * Structure that holds the information for a single file / part of * a file. If a subject line is encountered, it is copied to subject; * if a begin is found, the mode and name of the file is extracted. * flags are set if 'begin' or 'end' is detected and 'uudet' if valid * uuencoded data is found. If the file contains a 'From:' line with * a '@' in it (indicating an origin email address), it is preserved * in 'origin'. **/ typedef struct _fileread { char *subject; /* Whole subject line */ char *filename; /* Only filled in if begin detected */ char *origin; /* Whole 'From:' line */ char *mimeid; /* the ID for Mime-encoded files */ char *mimetype; /* Content-Type */ short mode; /* Mode of File (from 'begin') */ int begin; /* begin detected */ int end; /* end detected */ int flags; /* associated flags */ short uudet; /* valid encoded data. value indicates encoding */ short partno; /* Mime-files have a part number within */ short maxpno; /* ... plus the total number of parts */ char *sfname; /* Associated source file */ long startpos; /* ftell() position where data starts */ long length; /* length of data */ } fileread; /* * Structure for holding one part of a file, with some more information * about it. The UUPreProcessPart() function takes one a fileread structure * and produces this uufile structure. * Linked List, ordered by partno. **/ typedef struct _uufile { char *filename; char *subfname; char *mimeid; char *mimetype; short partno; fileread *data; struct _uufile *NEXT; } uufile; extern void *uu_MsgCBArg; extern void *uu_BusyCBArg; extern void *uu_FileCBArg; extern void *uu_FFCBArg; /* * variables */ extern int uu_fast_scanning; extern int uu_bracket_policy; extern int uu_verbose; extern int uu_desperate; extern int uu_ignreply; extern int uu_debug; extern int uu_errno; extern int uu_dumbness; extern int uu_overwrite; extern int uu_ignmode; extern int uu_headercount; extern int uu_usepreamble; extern int uu_handletext; extern int uu_tinyb64; extern int uu_remove_input; extern int uu_more_mime; extern char *uusavepath; extern char *uuencodeext; /* * Encoding/Decoding tables */ extern unsigned char UUEncodeTable[]; extern unsigned char XXEncodeTable[]; extern unsigned char B64EncodeTable[]; extern unsigned char BHEncodeTable[]; /* * String tables from uustring.c */ extern char *msgnames[]; extern char *codenames[]; extern char *uuretcodes[]; extern uulist *UUGlobalFileList; /* * State of MIME variables and current progress */ extern int nofnum, mssdepth; extern int mimseqno, lastvalid; extern int lastenc; extern scanstate multistack[]; extern headers localenv; extern scanstate sstate; extern uuprogress progress; /* * mallocable areas */ extern char *uugen_fnbuffer, *uugen_inbuffer; extern char *uucheck_lastname, *uucheck_tempname; extern char *uuestr_itemp, *uuestr_otemp; extern char *uulib_msgstring, *uuncdl_fulline; extern char *uuncdp_oline, *uuscan_shlline, *uuscan_shlline2; extern char *uuscan_pvvalue, *uuscan_phtext; extern char *uuscan_sdline, *uuscan_sdbhds1; extern char *uuscan_sdbhds2; extern char *uuscan_spline; extern char *uuutil_bhwtmp; extern char *uunconc_UUxlat, *uunconc_UUxlen; extern char *uunconc_B64xlat, *uunconc_XXxlat; extern char *uunconc_BHxlat, *uunconc_save; #define UUSCAN_SPLINE_LEN 4096 #define UUSCAN_SDLINE_LEN 4096 #define UUGEN_FNBUFFER_LEN 4096 #ifdef __cplusplus extern "C" { #endif extern void (*uu_MsgCallback) _ANSI_ARGS_((void *, char *, int)); extern int (*uu_BusyCallback) _ANSI_ARGS_((void *, uuprogress *)); extern int (*uu_FileCallback) _ANSI_ARGS_((void *, char *, char *, int)); extern char * (*uu_FNameFilter) _ANSI_ARGS_((void *, char *)); /* * Functions from uulib.c that aren't defined in * Be careful about the definition with variable arguments. */ int UUMessage _ANSI_ARGS_((char *, int, int, char *, ...)); int UUBusyPoll _ANSI_ARGS_((void)); /* * Functions from uucheck.c */ uufile * UUPreProcessPart _ANSI_ARGS_((fileread *, int *)); int UUInsertPartToList _ANSI_ARGS_((uufile *)); uulist * UUCheckGlobalList _ANSI_ARGS_((void)); /* * Functions from uuutil.c */ void UUkillfread _ANSI_ARGS_((fileread *)); void UUkillfile _ANSI_ARGS_((uufile *)); void UUkilllist _ANSI_ARGS_((uulist *)); void UUkillheaders _ANSI_ARGS_((headers *)); fileread * ScanPart _ANSI_ARGS_((FILE *, char *, int *)); int UUbhdecomp _ANSI_ARGS_((char *, char *, char *, int *, size_t, size_t, size_t *)); size_t UUbhwrite _ANSI_ARGS_((char *, size_t, size_t, FILE *)); /* * Functions from uunconc.c */ int UURepairData _ANSI_ARGS_((FILE *, char *, int, int *)); void UUInitConc _ANSI_ARGS_((void)); int UUValidData _ANSI_ARGS_((char *, int, int *)); size_t UUDecodeLine _ANSI_ARGS_((char *, char *, int)); int UUDecodeField _ANSI_ARGS_((char *, char *, int)); int UUDecodePart _ANSI_ARGS_((FILE *, FILE *, int *, long, int, int, char *)); int UUDecode _ANSI_ARGS_((uulist *)); /* * Message retrieval from uustring.c */ char * uustring _ANSI_ARGS_((int)); /* * From uuscan.c */ int UUScanHeader _ANSI_ARGS_((FILE *, headers *)); #ifdef __cplusplus } #endif #endif pan-0.162/uulib/uulib.c000066400000000000000000000732061475412772400147310ustar00rootroot00000000000000/* * This file is part of uudeview, the simple and friendly multi-part multi- * file uudecoder program (c) 1994-2001 by Frank Pilhofer. The author may * be contacted at fp@fpx.de * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ /* * This file implements the externally visible functions, as declared * in uudeview.h, and some internal interfacing functions */ #ifdef HAVE_CONFIG_H #include "config.h" #endif #ifdef SYSTEM_WINDLL #include #endif #ifdef SYSTEM_OS2 #include #endif #include #include #include #ifdef HAVE_FCNTL_H #include #endif #include #include #include #ifdef HAVE_UNISTD_H #include #endif #ifdef HAVE_SYS_TIME_H # include #endif #include #ifdef HAVE_ERRNO_H #include #endif /* to get open() in Windows */ #ifdef HAVE_IO_H #include #endif #include #include #include #include char * uulib_id = "$Id$"; #ifdef SYSTEM_WINDLL BOOL _export WINAPI DllEntryPoint (HINSTANCE hInstance, DWORD seginfo, LPVOID lpCmdLine) { /* Don't do anything, so just return true */ return TRUE; } #endif /* * In DOS, we must open the file binary, O_BINARY is defined there */ #ifndef O_BINARY #define O_BINARY 0 #endif /* for braindead systems */ #ifndef SEEK_SET #ifdef L_BEGIN #define SEEK_SET L_BEGIN #else #define SEEK_SET 0 #endif #endif /* * Callback functions and their opaque arguments */ void (*uu_MsgCallback) _ANSI_ARGS_((void *, char *, int)) = NULL; int (*uu_BusyCallback) _ANSI_ARGS_((void *, uuprogress *)) = NULL; int (*uu_FileCallback) _ANSI_ARGS_((void *, char *, char *, int)) = NULL; char * (*uu_FNameFilter) _ANSI_ARGS_((void *, char *)) = NULL; void *uu_MsgCBArg = NULL; void *uu_BusyCBArg = NULL; void *uu_FileCBArg = NULL; void *uu_FFCBArg = NULL; /* * Global variables */ int uu_fast_scanning = 0; /* assumes at most 1 part per file */ int uu_bracket_policy = 0; /* gives part numbers in [] higher priority */ int uu_verbose = 1; /* enables/disables messages¬es */ int uu_desperate = 0; /* desperate mode */ int uu_ignreply = 0; /* ignore replies */ int uu_debug = 0; /* debugging mode (print __FILE__/__LINE__) */ int uu_errno = 0; /* the errno that caused this UURET_IOERR */ int uu_dumbness = 0; /* switch off the program's intelligence */ int uu_overwrite = 1; /* whether it's ok to overwrite ex. files */ int uu_ignmode = 0; /* ignore the original file mode */ int uu_handletext = 0; /* do we want text/plain messages */ int uu_usepreamble = 0; /* do we want Mime preambles/epilogues */ int uu_tinyb64 = 0; /* detect short B64 outside of MIME */ int uu_remove_input = 0; /* remove input files after decoding */ int uu_more_mime = 0; /* strictly adhere to MIME headers */ headercount hlcount = { 3, /* restarting after a MIME body */ 2, /* after useful data in freestyle mode */ 1 /* after useful data and an empty line */ }; /* * version string */ char uulibversion[256] = "0.5pl20"; /* * prefix to the files on disk, usually a path name to save files to */ char *uusavepath; /* * extension to use when encoding single-part files */ char *uuencodeext; /* * areas to malloc */ char *uulib_msgstring; char *uugen_inbuffer; char *uugen_fnbuffer; /* * The Global List of Files */ uulist *UUGlobalFileList = NULL; /* * time values for BusyCallback. msecs is MILLIsecs here */ static long uu_busy_msecs = 0; /* call callback function each msecs */ static long uu_last_secs = 0; /* secs of last call to callback */ static long uu_last_usecs = 0; /* usecs of last call to callback */ /* * progress information */ uuprogress progress; /* * Linked list of files we want to delete after decoding */ typedef struct _itbd { char *fname; struct _itbd *NEXT; } itbd; static itbd * ftodel = NULL; /* * for the busy poll */ unsigned long uuyctr; /* * Areas to allocate. Instead of using static memory areas, we malloc() * the memory in UUInitialize() and release them in UUCleanUp to prevent * blowing up of the binary size * This is a table with the pointers to allocate and required sizes. * They are guaranteed to be never NULL. */ typedef struct { char **ptr; size_t size; } allomap; static allomap toallocate[] = { { &uugen_fnbuffer, UUGEN_FNBUFFER_LEN }, /* generic filename buffer */ { &uugen_inbuffer, 1024 }, /* generic input data buffer */ { &uucheck_lastname, 256 }, /* from uucheck.c */ { &uucheck_tempname, 256 }, { &uuestr_itemp, 256 }, /* from uuencode.c:UUEncodeStream() */ { &uuestr_otemp, 1024 }, { &uulib_msgstring, 1024 }, /* from uulib.c:UUMessage() */ { &uuncdl_fulline, 300 }, /* from uunconc.c:UUDecodeLine() */ { &uuncdp_oline, 1200 }, /* from uunconc.c:UUDecodePart() */ { &uunconc_UUxlat, 256 * sizeof (int) }, /* from uunconc.c:toplevel */ { &uunconc_UUxlen, 64 * sizeof (int) }, { &uunconc_B64xlat, 256 * sizeof (int) }, { &uunconc_XXxlat, 256 * sizeof (int) }, { &uunconc_BHxlat, 256 * sizeof (int) }, { &uunconc_save, 3*300 }, /* from uunconc.c:decoding buffer */ { &uuscan_shlline, 1024 }, /* from uuscan.c:ScanHeaderLine() */ { &uuscan_shlline2, 1024 }, /* from uuscan.c:ScanHeaderLine() */ { &uuscan_pvvalue, 4096 }, /* from uuscan.c:ParseValue() */ { &uuscan_phtext, 4096 }, /* from uuscan.c:ParseHeader() */ { &uuscan_sdline, UUSCAN_SDLINE_LEN }, /* from uuscan.c:ScanData() */ { &uuscan_sdbhds1, 300 }, { &uuscan_sdbhds2, 300 }, { &uuscan_spline, UUSCAN_SPLINE_LEN }, /* from uuscan.c:ScanPart() */ { &uuutil_bhwtmp, 300 }, /* from uuutil.c:UUbhwrite() */ { NULL, 0 } }; /* * Handle the printing of messages. Works like printf. */ int UUMessage (char *file, int line, int level, char *format, ...) { char *msgptr; va_list ap; va_start (ap, format); if (uu_debug) { sprintf (uulib_msgstring, "%s(%d): %s", file, line, msgnames[level]); msgptr = uulib_msgstring + strlen (uulib_msgstring); } else { sprintf (uulib_msgstring, "%s", msgnames[level]); msgptr = uulib_msgstring + strlen (uulib_msgstring); } if (uu_MsgCallback && (level>UUMSG_NOTE || uu_verbose)) { vsprintf (msgptr, format, ap); (*uu_MsgCallback) (uu_MsgCBArg, uulib_msgstring, level); } va_end (ap); return UURET_OK; } /* * Call the Busy Callback from time to time. This function must be * polled from the Busy loops. */ int UUBusyPoll (void) { #ifdef HAVE_GETTIMEOFDAY struct timeval tv; long msecs; if (uu_BusyCallback) { (void) gettimeofday (&tv, NULL); msecs = 1000*(tv.tv_sec-uu_last_secs)+(tv.tv_usec-uu_last_usecs)/1000; if (uu_last_secs==0 || msecs > uu_busy_msecs) { uu_last_secs = tv.tv_sec; uu_last_usecs = tv.tv_usec; return (*uu_BusyCallback) (uu_BusyCBArg, &progress); } } #else time_t now = time (NULL); long msecs; if (uu_BusyCallback) { if (uu_busy_msecs <= 0) { msecs = 1; } else { msecs = 1000 * (now - uu_last_secs); } if (uu_last_secs==0 || msecs > uu_busy_msecs) { uu_last_secs = now; uu_last_usecs = 0; return (*uu_BusyCallback) (uu_BusyCBArg, &progress); } } #endif return 0; } /* * Initialization function */ int UUEXPORT UUInitialize (void) { allomap *aiter; progress.action = 0; progress.curfile[0] = '\0'; ftodel = NULL; uusavepath = NULL; uuencodeext = NULL; mssdepth = 0; memset (&localenv, 0, sizeof (headers)); memset (&sstate, 0, sizeof (scanstate)); nofnum = 0; mimseqno = 0; lastvalid = 0; lastenc = 0; uuyctr = 0; /* * Allocate areas */ for (aiter=toallocate; aiter->ptr; aiter++) *(aiter->ptr) = NULL; for (aiter=toallocate; aiter->ptr; aiter++) { if ((*(aiter->ptr) = (char *) malloc (aiter->size)) == NULL) { /* * oops. we may not print a message here, because we need these * areas (uulib_msgstring) in UUMessage() */ for (aiter=toallocate; aiter->ptr; aiter++) { _FP_free (*(aiter->ptr)); } return UURET_NOMEM; } } /* * Must be called after areas have been malloced */ UUInitConc (); return UURET_OK; } /* * Set and get Options */ int UUEXPORT UUGetOption (int option, int *ivalue, char *cvalue, int clength) { int result; switch (option) { case UUOPT_VERSION: _FP_strncpy (cvalue, uulibversion, clength); result = 0; break; case UUOPT_FAST: if (ivalue) *ivalue = uu_fast_scanning; result = uu_fast_scanning; break; case UUOPT_DUMBNESS: if (ivalue) *ivalue = uu_dumbness; result = uu_dumbness; break; case UUOPT_BRACKPOL: if (ivalue) *ivalue = uu_bracket_policy; result = uu_bracket_policy; break; case UUOPT_VERBOSE: if (ivalue) *ivalue = uu_verbose; result = uu_verbose; break; case UUOPT_DESPERATE: if (ivalue) *ivalue = uu_desperate; result = uu_desperate; break; case UUOPT_IGNREPLY: if (ivalue) *ivalue = uu_ignreply; result = uu_ignreply; break; case UUOPT_DEBUG: if (ivalue) *ivalue = uu_debug; result = uu_debug; break; case UUOPT_ERRNO: if (ivalue) *ivalue = uu_errno; result = uu_errno; break; case UUOPT_OVERWRITE: if (ivalue) *ivalue = uu_overwrite; result = uu_overwrite; break; case UUOPT_SAVEPATH: _FP_strncpy (cvalue, uusavepath, clength); result = 0; break; case UUOPT_PROGRESS: if (clength==sizeof(uuprogress)) { memcpy (cvalue, &progress, sizeof (uuprogress)); result = 0; } else result = -1; break; case UUOPT_IGNMODE: if (ivalue) *ivalue = uu_ignmode; result = uu_ignmode; break; case UUOPT_USETEXT: if (ivalue) *ivalue = uu_handletext; result = uu_handletext; break; case UUOPT_PREAMB: if (ivalue) *ivalue = uu_usepreamble; result = uu_usepreamble; break; case UUOPT_TINYB64: if (ivalue) *ivalue = uu_tinyb64; result = uu_tinyb64; break; case UUOPT_ENCEXT: _FP_strncpy (cvalue, uuencodeext, clength); result = 0; break; case UUOPT_REMOVE: if (ivalue) *ivalue = uu_remove_input; result = uu_remove_input; break; case UUOPT_MOREMIME: if (ivalue) *ivalue = uu_more_mime; result = uu_more_mime; break; default: return -1; } return result; } int UUEXPORT UUSetOption (int option, int ivalue, char *cvalue) { switch (option) { case UUOPT_FAST: uu_fast_scanning = ivalue; break; case UUOPT_DUMBNESS: uu_dumbness = ivalue; break; case UUOPT_BRACKPOL: uu_bracket_policy = ivalue; break; case UUOPT_VERBOSE: uu_verbose = ivalue; break; case UUOPT_DESPERATE: uu_desperate = ivalue; break; case UUOPT_IGNREPLY: uu_ignreply = ivalue; break; case UUOPT_DEBUG: uu_debug = ivalue; break; case UUOPT_OVERWRITE: uu_overwrite = ivalue; break; case UUOPT_SAVEPATH: _FP_free (uusavepath); uusavepath = _FP_strdup (cvalue); break; case UUOPT_IGNMODE: uu_ignmode = ivalue; break; case UUOPT_USETEXT: uu_handletext = ivalue; break; case UUOPT_PREAMB: uu_usepreamble = ivalue; break; case UUOPT_TINYB64: uu_tinyb64 = ivalue; break; case UUOPT_ENCEXT: _FP_free (uuencodeext); uuencodeext = _FP_strdup (cvalue); break; case UUOPT_REMOVE: uu_remove_input = ivalue; break; case UUOPT_MOREMIME: uu_more_mime = ivalue; break; default: return UURET_ILLVAL; } return UURET_OK; } char * UUEXPORT UUstrerror (int code) { return uuretcodes[code]; } /* * Set the various Callback functions */ int UUEXPORT UUSetMsgCallback (void *opaque, void (*func) _ANSI_ARGS_((void *, char *, int))) { uu_MsgCallback = func; uu_MsgCBArg = opaque; return UURET_OK; } int UUEXPORT UUSetBusyCallback (void *opaque, int (*func) _ANSI_ARGS_((void *, uuprogress *)), long msecs) { uu_BusyCallback = func; uu_BusyCBArg = opaque; uu_busy_msecs = msecs; return UURET_OK; } int UUEXPORT UUSetFileCallback (void *opaque, int (*func) _ANSI_ARGS_((void *, char *, char *, int))) { uu_FileCallback = func; uu_FileCBArg = opaque; return UURET_OK; } int UUEXPORT UUSetFNameFilter (void *opaque, char * (*func) _ANSI_ARGS_((void *, char *))) { uu_FNameFilter = func; uu_FFCBArg = opaque; return UURET_OK; } /* * Return a pointer to the nth element of the GlobalFileList * zero-based, returns NULL if item is too large. */ uulist * UUEXPORT UUGetFileListItem (int item) { uulist *iter=UUGlobalFileList; if (item < 0) return NULL; while (item && iter) { iter = iter->NEXT; item--; } return iter; } /* * call the current filter */ char * UUEXPORT UUFNameFilter (char *fname) { if (uu_FNameFilter) return (*uu_FNameFilter) (uu_FFCBArg, fname); return fname; } /* * Load a File. We call ScanPart repeatedly until at EOF and * add the parts to UUGlobalFileList */ int UUEXPORT UULoadFile (char *filename, char *fileid, int delflag) { return UULoadFileWithPartNo(filename, fileid, delflag, -1, NULL); } int UUEXPORT UULoadFileWithPartNo (char *filename, char *fileid, int delflag, int partno, const char *global_subject) { int res, sr, count=0; struct stat finfo; fileread *loaded; uufile *fload; itbd *killem; FILE *datei; int overridden_subject; if ((datei = fopen (filename, "rb")) == NULL) { UUMessage (uulib_id, __LINE__, UUMSG_ERROR, uustring (S_NOT_OPEN_SOURCE), filename, strerror (uu_errno = errno)); return UURET_IOERR; } if (fstat (fileno(datei), &finfo) == -1) { UUMessage (uulib_id, __LINE__, UUMSG_ERROR, uustring (S_NOT_STAT_FILE), filename, strerror (uu_errno = errno)); fclose (datei); return UURET_IOERR; } /* * schedule for destruction */ if (delflag && fileid==NULL) { if ((killem = (itbd *) malloc (sizeof (itbd))) == NULL) { UUMessage (uulib_id, __LINE__, UUMSG_WARNING, uustring (S_OUT_OF_MEMORY), sizeof (itbd)); } else if ((killem->fname = _FP_strdup (filename)) == NULL) { UUMessage (uulib_id, __LINE__, UUMSG_WARNING, uustring (S_OUT_OF_MEMORY), strlen(filename)+1); _FP_free (killem); } else { killem->NEXT = ftodel; ftodel = killem; } } progress.action = 0; progress.partno = 0; progress.numparts = 1; progress.fsize = (long) ((finfo.st_size>0)?finfo.st_size:-1); progress.percent = 0; progress.foffset = 0; _FP_strncpy (progress.curfile, (strlen(filename)>255)? (filename+strlen(filename)-255):filename, 256); progress.action = UUACT_SCANNING; if (fileid == NULL) fileid = filename; while (!feof (datei) && !ferror (datei)) { /* * Peek file, or some systems won't detect EOF */ res = fgetc (datei); if (feof (datei) || ferror (datei)) break; else ungetc (res, datei); if ((loaded = ScanPart (datei, fileid, &sr)) == NULL) { if (sr != UURET_NODATA && sr != UURET_OK && sr != UURET_CONT) { UUkillfread (loaded); if (sr != UURET_CANCEL) { UUMessage (uulib_id, __LINE__, UUMSG_ERROR, uustring (S_READ_ERROR), filename, strerror (uu_errno)); } UUCheckGlobalList (); progress.action = 0; fclose (datei); return sr; } continue; } if (ferror (datei)) { UUMessage (uulib_id, __LINE__, UUMSG_ERROR, uustring (S_READ_ERROR), filename, strerror (uu_errno = errno)); UUCheckGlobalList (); progress.action = 0; fclose (datei); return UURET_IOERR; } if (partno != -1) loaded->partno = partno; if ((loaded->uudet == QP_ENCODED || loaded->uudet == PT_ENCODED) && (loaded->filename == NULL || *(loaded->filename) == '\0') && !uu_handletext && (loaded->flags&FL_PARTIAL)==0) { /* * Don't want text */ UUkillfread (loaded); continue; } if ((loaded->subject == NULL || *(loaded->subject) == '\0') && (loaded->mimeid == NULL || *(loaded->mimeid) == '\0') && (loaded->filename== NULL || *(loaded->filename)== '\0') && (loaded->uudet == 0)) { /* * no useful data here */ UUkillfread (loaded); if (uu_fast_scanning && sr != UURET_CONT) break; continue; } if (partno != -1 && global_subject && loaded->uudet == YENC_ENCODED && /* only yEnc has a filename in each part */ (loaded->subject && loaded->filename && strstr(loaded->subject, loaded->filename) == NULL)) { /* * Sometimes articles derived from an NZB file have corrupt Subject: lines. * That also makes that UUInsertPartToList() fails to combine files properly. * We detect this situation by checking if the filename from the * part can be found in the Subject: header. */ _FP_free(loaded->subject); loaded->subject = _FP_strdup((char *)global_subject); overridden_subject = 1; } else { overridden_subject = 0; } if ((fload = UUPreProcessPart (loaded, &res)) == NULL) { /* * no useful data found */ if (res != UURET_NODATA) { UUMessage (uulib_id, __LINE__, UUMSG_ERROR, uustring (S_READ_ERROR), filename, (res==UURET_IOERR)?strerror(uu_errno):UUstrerror(res)); } UUkillfread (loaded); if (uu_fast_scanning && sr != UURET_CONT) break; continue; } if (overridden_subject) { /* * If the yEnc file gives a different file name than the subject, * this is a security risk. * * Override the part file name with the one derived from the global subject. */ _FP_free(fload->filename); fload->filename = _FP_strdup(fload->subfname); } if ((loaded->subject && *(loaded->subject)) || (loaded->mimeid && *(loaded->mimeid)) || (loaded->filename&& *(loaded->filename))|| (loaded->uudet)) { UUMessage (uulib_id, __LINE__, UUMSG_MESSAGE, uustring (S_LOADED_PART), filename, (loaded->subject) ? loaded->subject : "", (fload->subfname) ? fload->subfname : "", (loaded->filename) ? loaded->filename : "", fload->partno, (loaded->begin) ? "begin" : "", (loaded->end) ? "end" : "", codenames[loaded->uudet]); } if ((res = UUInsertPartToList (fload))) { /* * couldn't use the data */ UUkillfile (fload); if (res != UURET_NODATA) { UUCheckGlobalList (); progress.action = 0; fclose (datei); return res; } if (uu_fast_scanning && sr != UURET_CONT) break; continue; } /* * if in fast mode, we don't look any further, because we're told * that each source file holds at most one encoded part */ if (uu_fast_scanning && sr != UURET_CONT) break; if (loaded->uudet) count++; } if (ferror (datei)) { UUMessage (uulib_id, __LINE__, UUMSG_ERROR, uustring (S_READ_ERROR), filename, strerror (uu_errno = errno)); UUCheckGlobalList (); progress.action = 0; fclose (datei); return UURET_IOERR; } fclose (datei); if (!uu_fast_scanning && count==0) { UUMessage (uulib_id, __LINE__, UUMSG_NOTE, uustring (S_NO_DATA_FOUND), filename); } progress.action = 0; UUCheckGlobalList (); return UURET_OK; } /* * decode to a temporary file. this is well handled by uudecode() */ int UUEXPORT UUDecodeToTemp (uulist *thefile) { return UUDecode (thefile); } /* * decode file first to temp file, then copy it to a final location */ int UUEXPORT UUDecodeFile (uulist *thefile, char *destname) { FILE *target, *source; struct stat finfo; int fildes, res; size_t bytes; if (thefile == NULL) return UURET_ILLVAL; if ((res = UUDecode (thefile)) != UURET_OK) if (res != UURET_NOEND || !uu_desperate) return res; if (thefile->binfile == NULL) { UUMessage (uulib_id, __LINE__, UUMSG_ERROR, uustring (S_NO_BIN_FILE)); return UURET_IOERR; } if ((source = fopen (thefile->binfile, "rb")) == NULL) { UUMessage (uulib_id, __LINE__, UUMSG_ERROR, uustring (S_NOT_OPEN_FILE), thefile->binfile, strerror (uu_errno = errno)); return UURET_IOERR; } /* * for system security, strip setuid/setgid bits from mode */ if ((thefile->mode & 0777) != thefile->mode) { UUMessage (uulib_id, __LINE__, UUMSG_NOTE, uustring (S_STRIPPED_SETUID), destname, (int)thefile->mode); thefile->mode &= 0777; } /* * Determine the name of the target file according to the rules: * * IF (destname!=NULL) THEN filename=destname; * ELSE * filename = thefile->filename * IF (FilenameFilter!=NULL) THEN filename=FilenameFilter(filename); * filename = SaveFilePath + filename * END */ if (destname) strcpy (uugen_fnbuffer, destname); else { sprintf (uugen_fnbuffer, "%s%s", (uusavepath)?uusavepath:"", UUFNameFilter ((thefile->filename)? thefile->filename:"unknown.xxx")); } /* * if we don't want to overwrite existing files, check if it's there */ if (!uu_overwrite) { if (stat (uugen_fnbuffer, &finfo) == 0) { UUMessage (uulib_id, __LINE__, UUMSG_ERROR, uustring (S_TARGET_EXISTS), uugen_fnbuffer); fclose (source); return UURET_EXISTS; } } if (fstat (fileno(source), &finfo) == -1) { UUMessage (uulib_id, __LINE__, UUMSG_ERROR, uustring (S_NOT_STAT_FILE), thefile->binfile, strerror (uu_errno = errno)); fclose (source); return UURET_IOERR; } progress.action = 0; _FP_strncpy (progress.curfile, (strlen(uugen_fnbuffer)>255)? (uugen_fnbuffer+strlen(uugen_fnbuffer)-255):uugen_fnbuffer, 256); progress.partno = 0; progress.numparts = 1; progress.fsize = (long) ((finfo.st_size)?finfo.st_size:-1); progress.foffset = 0; progress.percent = 0; progress.action = UUACT_COPYING; if ((fildes = open (uugen_fnbuffer, O_WRONLY | O_CREAT | O_BINARY | O_TRUNC, (uu_ignmode)?0666:thefile->mode)) == -1) { progress.action = 0; UUMessage (uulib_id, __LINE__, UUMSG_ERROR, uustring (S_NOT_OPEN_TARGET), uugen_fnbuffer, strerror (uu_errno = errno)); fclose (source); return UURET_IOERR; } if ((target = fdopen (fildes, "wb")) == NULL) { progress.action = 0; UUMessage (uulib_id, __LINE__, UUMSG_ERROR, uustring (S_IO_ERR_TARGET), uugen_fnbuffer, strerror (uu_errno = errno)); fclose (source); close (fildes); return UURET_IOERR; } while (!feof (source)) { if (UUBUSYPOLL(ftell(source),progress.fsize)) { UUMessage (uulib_id, __LINE__, UUMSG_NOTE, uustring (S_DECODE_CANCEL)); fclose (source); fclose (target); unlink (uugen_fnbuffer); return UURET_CANCEL; } bytes = fread (uugen_inbuffer, 1, 1024, source); if (ferror (source) || (bytes == 0 && !feof (source))) { progress.action = 0; UUMessage (uulib_id, __LINE__, UUMSG_ERROR, uustring (S_READ_ERROR), thefile->binfile, strerror (uu_errno = errno)); fclose (source); fclose (target); unlink (uugen_fnbuffer); return UURET_IOERR; } if (fwrite (uugen_inbuffer, 1, bytes, target) != bytes) { progress.action = 0; UUMessage (uulib_id, __LINE__, UUMSG_ERROR, uustring (S_WR_ERR_TARGET), uugen_fnbuffer, strerror (uu_errno = errno)); fclose (source); fclose (target); unlink (uugen_fnbuffer); return UURET_IOERR; } } fclose (source); if (fclose (target)) { UUMessage (uulib_id, __LINE__, UUMSG_ERROR, uustring (S_WR_ERR_TARGET), uugen_fnbuffer, strerror (uu_errno = errno)); unlink (uugen_fnbuffer); return UURET_IOERR; } /* * after a successful decoding run, we delete the temporary file */ if (unlink (thefile->binfile)) { UUMessage (uulib_id, __LINE__, UUMSG_WARNING, uustring (S_TMP_NOT_REMOVED), thefile->binfile, strerror (uu_errno = errno)); } _FP_free (thefile->binfile); thefile->binfile = NULL; thefile->state &= ~UUFILE_TMPFILE; thefile->state |= UUFILE_DECODED; progress.action = 0; return UURET_OK; } /* * Calls a function repeatedly with all the info we have for a file * If the function returns non-zero, we break and don't send any more */ int UUEXPORT UUInfoFile (uulist *thefile, void *opaque, int (*func) _ANSI_ARGS_((void *, char *))) { int errflag=0, res, bhflag=0, dd; long maxpos; FILE *inpfile; /* * We might need to ask our callback function to download the file */ if (uu_FileCallback) { if ((res = (*uu_FileCallback) (uu_FileCBArg, thefile->thisfile->data->sfname, uugen_fnbuffer, 1)) != UURET_OK) return res; if ((inpfile = fopen (uugen_fnbuffer, "rb")) == NULL) { (*uu_FileCallback) (uu_FileCBArg, thefile->thisfile->data->sfname, uugen_fnbuffer, 0); UUMessage (uulib_id, __LINE__, UUMSG_ERROR, uustring (S_NOT_OPEN_FILE), uugen_fnbuffer, strerror (uu_errno = errno)); return UURET_IOERR; } } else { if ((inpfile = fopen (thefile->thisfile->data->sfname, "rb")) == NULL) { UUMessage (uulib_id, __LINE__, UUMSG_ERROR, uustring (S_NOT_OPEN_FILE), thefile->thisfile->data->sfname, strerror (uu_errno=errno)); return UURET_IOERR; } _FP_strncpy (uugen_fnbuffer, thefile->thisfile->data->sfname, 1024); } /* * seek to beginning of info */ fseek (inpfile, thefile->thisfile->data->startpos, SEEK_SET); maxpos = thefile->thisfile->data->startpos + thefile->thisfile->data->length; while (!feof (inpfile) && (uu_fast_scanning || ftell(inpfile) < maxpos)) { if (_FP_fgets (uugen_inbuffer, 511, inpfile) == NULL) break; uugen_inbuffer[511] = '\0'; if (ferror (inpfile)) break; dd = UUValidData (uugen_inbuffer, 0, &bhflag); if (thefile->uudet == B64ENCODED && dd == B64ENCODED) break; else if (thefile->uudet == BH_ENCODED && bhflag) break; else if ((thefile->uudet == UU_ENCODED || thefile->uudet == XX_ENCODED) && strncmp (uugen_inbuffer, "begin ", 6) == 0) break; else if (thefile->uudet == YENC_ENCODED && strncmp (uugen_inbuffer, "=ybegin ", 8) == 0) break; if ((*func) (opaque, uugen_inbuffer)) break; } if (ferror (inpfile)) { UUMessage (uulib_id, __LINE__, UUMSG_ERROR, uustring (S_READ_ERROR), uugen_fnbuffer, strerror (uu_errno = errno)); errflag = 1; } fclose (inpfile); if (uu_FileCallback) (*uu_FileCallback) (uu_FileCBArg, thefile->thisfile->data->sfname, uugen_fnbuffer, 0); if (errflag) return UURET_IOERR; return UURET_OK; } int UUEXPORT UURenameFile (uulist *thefile, char *newname) { char *oldname; if (thefile == NULL) return UURET_ILLVAL; oldname = thefile->filename; if ((thefile->filename = _FP_strdup (newname)) == NULL) { UUMessage (uulib_id, __LINE__, UUMSG_ERROR, uustring (S_NOT_RENAME), oldname, newname); thefile->filename = oldname; return UURET_NOMEM; } _FP_free (oldname); return UURET_OK; } int UUEXPORT UURemoveTemp (uulist *thefile) { if (thefile == NULL) return UURET_ILLVAL; if (thefile->binfile) { if (unlink (thefile->binfile)) { UUMessage (uulib_id, __LINE__, UUMSG_WARNING, uustring (S_TMP_NOT_REMOVED), thefile->binfile, strerror (uu_errno = errno)); } _FP_free (thefile->binfile); thefile->binfile = NULL; thefile->state &= ~UUFILE_TMPFILE; } return UURET_OK; } int UUEXPORT UUCleanUp (void) { itbd *iter=ftodel, *ptr; uulist *liter; uufile *fiter; allomap *aiter; /* * delete temporary input files (such as the copy of stdin) */ while (iter) { if (unlink (iter->fname)) { UUMessage (uulib_id, __LINE__, UUMSG_WARNING, uustring (S_TMP_NOT_REMOVED), iter->fname, strerror (uu_errno = errno)); } _FP_free (iter->fname); ptr = iter; iter = iter->NEXT; _FP_free (ptr); } ftodel = NULL; /* * Delete input files after successful decoding */ if (uu_remove_input) { liter = UUGlobalFileList; while (liter) { if (liter->state & UUFILE_DECODED) { fiter = liter->thisfile; while (fiter) { if (fiter->data && fiter->data->sfname) { /* * Error code ignored. We might want to delete a file multiple * times */ unlink (fiter->data->sfname); } fiter = fiter->NEXT; } } liter = liter->NEXT; } } UUkilllist (UUGlobalFileList); UUGlobalFileList = NULL; _FP_free (uusavepath); _FP_free (uuencodeext); _FP_free (sstate.source); uusavepath = NULL; uuencodeext = NULL; UUkillheaders (&localenv); UUkillheaders (&sstate.envelope); memset (&localenv, 0, sizeof (headers)); memset (&sstate, 0, sizeof (scanstate)); while (mssdepth) { mssdepth--; UUkillheaders (&(multistack[mssdepth].envelope)); _FP_free (multistack[mssdepth].source); } /* * clean up the malloc'ed stuff */ for (aiter=toallocate; aiter->ptr; aiter++) { _FP_free (*(aiter->ptr)); *(aiter->ptr) = NULL; } return UURET_OK; } pan-0.162/uulib/uunconc.c000066400000000000000000001241421475412772400152570ustar00rootroot00000000000000/* * This file is part of uudeview, the simple and friendly multi-part multi- * file uudecoder program (c) 1994-2001 by Frank Pilhofer. The author may * be contacted at fp@fpx.de * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ /* * These are the functions that are responsible for decoding. The * original idea is from a freeware utility called "uunconc", and * few lines of this code may still bear a remote resemblance to * its code. If you are the author or know him, contact me. * This program could only decode one multi-part, uuencoded file * where the parts were in order. Base64, XX and BinHex decoding, * support for multi-files and part-ordering covered by myself. **/ #ifdef HAVE_CONFIG_H #include "config.h" #endif #include #ifdef SYSTEM_WINDLL #include #endif #ifdef SYSTEM_OS2 #include #endif #include #include #include #include #ifdef HAVE_UNISTD_H #include #endif #ifdef HAVE_ERRNO_H #include #endif #include #include #include #include #include #include char * uunconc_id = "$Id$"; /* for braindead systems */ #ifndef SEEK_SET #ifdef L_BEGIN #define SEEK_SET L_BEGIN #else #define SEEK_SET 0 #endif #endif /* * decoder states */ #define BEGIN (1) #define DATA (2) #define END (3) #define DONE (4) /* * mallocable areas */ char *uunconc_UUxlat; char *uunconc_UUxlen; char *uunconc_B64xlat; char *uunconc_XXxlat; char *uunconc_BHxlat; char *uunconc_save; /* * decoding translation tables and line length table */ static int * UUxlen; /* initialized in UUInitConc() */ static int * UUxlat; /* from the malloc'ed areas above */ static int * B64xlat; static int * XXxlat; static int * BHxlat; /* * buffer for decoding */ static char *save[3]; /* * mallocable areas */ char *uuncdl_fulline; char *uuncdp_oline; /* * Return information for QuickDecode */ static int uulboundary; /* * To prevent warnings when using a char as index into an array */ #define ACAST(s) ((int)(unsigned char)(s)) /* * Initialize decoding tables */ void UUInitConc (void) { int i, j; /* * Update pointers */ UUxlen = (int *) uunconc_UUxlen; UUxlat = (int *) uunconc_UUxlat; B64xlat = (int *) uunconc_B64xlat; XXxlat = (int *) uunconc_XXxlat; BHxlat = (int *) uunconc_BHxlat; save[0] = uunconc_save; save[1] = uunconc_save + 256; save[2] = uunconc_save + 512; /* prepare decoding translation table */ for(i = 0; i < 256; i++) UUxlat[i] = B64xlat[i] = XXxlat[i] = BHxlat[i] = -1; /* * At some time I received a file which used lowercase characters for * uuencoding. This shouldn't be, but let's accept it. Must take special * care that this doesn't break xxdecoding. This is giving me quite a * headache. If this one file hadn't been a Pocahontas picture, I might * have ignored it for good. */ for (i = ' ', j = 0; i < ' ' + 64; i++, j++) UUxlat[i] /* = UUxlat[i+64] */ = j; for (i = '`', j = 0; i < '`' + 32; i++, j++) UUxlat[i] = j; /* add special cases */ UUxlat['`'] = UUxlat[' ']; UUxlat['~'] = UUxlat['^']; /* prepare line length table */ UUxlen[0] = 1; for(i = 1, j = 5; i <= 61; i += 3, j += 4) UUxlen[i] = UUxlen[i+1] = UUxlen[i+2] = j; /* prepare other tables */ for (i=0; i<64; i++) { B64xlat[ACAST(B64EncodeTable[i])] = i; XXxlat [ACAST(XXEncodeTable [i])] = i; BHxlat [ACAST(BHEncodeTable [i])] = i; } } /* * Workaround for Netscape */ /* * Determines whether Netscape may have broken up a data line (by * inserting a newline). This only seems to happen after ") > ptr) return 2; } ptr = string + len; while (len && (*(ptr-1)=='\015' || *(ptr-1)=='\012')) { ptr--; len--; } if (len<3) return 0; if (*--ptr == ' ') ptr--; ptr--; if (_FP_strnicmp (ptr, "",4)). If the first expression * becomes true, the costly function isn't called :-) * * Since '<', '>', '&' might even be replaced by their html equivalents * in href strings, I'm now using two passes, the first one for & + co, * the second one for hrefs. */ static int UUNetscapeCollapse (char *string) { char *p1=string, *p2=string; int res = 0; if (string==NULL) return 0; /* * First pass */ while (*p1) { if (*p1 == '&') { if (_FP_strnicmp (p1, "&", 5) == 0) { p1+=5; *p2++='&'; res=1; } else if (_FP_strnicmp (p1, "<", 4) == 0) { p1+=4; *p2++='<'; res=1; } else if (_FP_strnicmp (p1, ">", 4) == 0) { p1+=4; *p2++='>'; res=1; } else *p2++ = *p1++; } else *p2++ = *p1++; } *p2 = '\0'; /* * Second pass */ p1 = p2 = string; while (*p1) { if (*p1 == '<') { if ((_FP_strnicmp (p1, "") != 0 || _FP_strstr (p1, "") != 0)) { while (*p1 && *p1!='>') p1++; if (*p1=='\0' || *(p1+1)!='<') return 0; p1++; while (*p1 && (*p1!='<' || _FP_strnicmp(p1,"",4)!=0)) { *p2++ = *p1++; } if (_FP_strnicmp(p1,"",4) != 0) return 0; p1+=4; res=1; } else *p2++ = *p1++; } else *p2++ = *p1++; } *p2 = '\0'; return res; } /* * The second parameter is 0 if we are still searching for encoded data, * otherwise it indicates the encoding we're using right now. If we're * still in the searching stage, we must be a little more strict in * deciding for or against encoding; there's too much plain text looking * like encoded data :-( */ int UUValidData (char *ptr, int encoding, int *bhflag) { int i=0, j, len=0, suspicious=0, flag=0; char *s = ptr; if ((s == NULL) || (*s == '\0')) { return 0; /* bad string */ } if (encoding == YENC_ENCODED) return YENC_ENCODED; while (*s && *s!='\012' && *s!='\015') { s++; len++; i++; } if (i == 0) return 0; switch (encoding) { case UU_ENCODED: goto _t_UU; case XX_ENCODED: goto _t_XX; case B64ENCODED: goto _t_B64; case BH_ENCODED: goto _t_Binhex; case YENC_ENCODED: return YENC_ENCODED; } _t_Binhex: /* Binhex Test */ len = i; s = ptr; /* * bhflag notes the state we're in. Within the data, it's 1. If we're * still looking for the initial :, it's 0 */ if (*bhflag == 0 && *s != ':') { if (encoding==BH_ENCODED) return 0; goto _t_B64; } else if (*bhflag == 0 /* *s == ':' */) { s++; len--; } while (len && BHxlat[ACAST(*s)] != -1) { len--; s++; } /* allow space characters at the end of the line if we are sure */ /* that this is Binhex encoded data or the line was long enough */ flag = (*s == ':') ? 0 : 1; if (*s == ':' && len>0) { s++; len--; } if (((i>=60 && len<=10) || encoding) && *s==' ') { while (len && *s==' ') { s++; len--; } } /* * BinHex data shall have exactly 64 characters (except the last * line). We ignore everything with less than 40 characters to * be flexible */ if (len != 0 || (flag && i < 40)) { if (encoding==BH_ENCODED) return 0; goto _t_B64; } *bhflag = flag; return BH_ENCODED; _t_B64: /* Base64 Test */ len = i; s = ptr; /* * Face it: there _are_ Base64 lines that are not a multiple of four * in length :-( * * if (len%4) * goto _t_UU; */ while (len--) { if (*s < 0 || (B64xlat[ACAST(*s)] == -1 && *s != '=')) { /* allow space characters at the end of the line if we are sure */ /* that this is Base64 encoded data or the line was long enough */ if (((i>=60 && len<=10) || encoding) && *s++==' ') { while (*s==' ' && len) s++; if (len==0) return B64ENCODED; } if (encoding==B64ENCODED) return 0; goto _t_UU; } else if (*s == '=') { /* special case at end */ /* if we know this is B64encoded, allow spaces at end of line */ s++; if (*s=='=' && len>=1) { len--; s++; } if (encoding && len && *s==' ') { while (len && *s==' ') { s++; len--; } } if (len != 0) { if (encoding==B64ENCODED) return 0; goto _t_UU; } return B64ENCODED; } s++; } return B64ENCODED; _t_UU: len = i; s = ptr; if (UUxlat[ACAST(*s)] == -1) { /* uutest */ if (encoding==UU_ENCODED) return 0; goto _t_XX; } j = UUxlen[UUxlat[ACAST(*s)]]; if (len-1 == j) /* remove trailing character */ len--; if (len != j) { switch (UUxlat[ACAST(*s)]%3) { case 1: if (j-2 == len) j-=2; break; case 2: if (j-1 == len) j-=1; break; } } /* * some encoders are broken with respect to encoding the last line of * a file and produce extraoneous characters beyond the expected EOL * So were not too picky here about the last line, as long as it's longer * than necessary and shorter than the maximum * this tolerance broke the xxdecoding, because xxencoded data was * detected as being uuencoded :( so don't accept 'h' as first character * also, if the first character is lowercase, don't accept the line to * have space characters. the only encoder I've heard of which uses * lowercase characters at least accepts the special case of encoding * 0 as `. The strchr() shouldn't be too expensive here as it's only * evaluated if the first character is lowercase, which really shouldn't * be in uuencoded text. */ if (len != j && ((ptr[0] == '-' && ptr[1] == '-' && strstr(ptr,"part")!=NULL) || !(*ptr != 'M' && *ptr != 'h' && len > j && len <= UUxlen[UUxlat['M']]))) { if (encoding==UU_ENCODED) return 0; goto _t_XX; /* bad length */ } if (len != j || islower (*ptr)) { /* * if we are not in a 'uuencoded' state, don't allow the line to have * space characters at all. if we know we _are_ decoding uuencoded * data, the rest of the line, beyond the length of encoded data, may * have spaces. */ if (encoding != UU_ENCODED) if (strchr (ptr, ' ') != NULL) goto _t_XX; /* suspicious = 1; we're careful here REMOVED 0.4.15 __FP__ */ len = j; } while (len--) { if (*s < 0 || UUxlat[ACAST(*s++)] < 0) { if (encoding==UU_ENCODED) return 0; goto _t_XX; /* bad code character */ } if (*s == ' ' && suspicious) { if (encoding==UU_ENCODED) return 0; goto _t_XX; /* this line looks _too_ suspicious */ } } return UU_ENCODED; /* data is valid */ _t_XX: /* XX Test */ len = i; s = ptr; if (XXxlat[ACAST(*s)] == -1) return 0; j = UUxlen[XXxlat[ACAST(*s)]]; /* Same line length table as UUencoding */ if (len-1 == j) /* remove trailing character */ len--; if (len != j) switch (UUxlat[ACAST(*s)]%3) { case 1: if (j-2 == len) j-=2; break; case 2: if (j-1 == len) j-=1; break; } /* * some encoders are broken with respect to encoding the last line of * a file and produce extraoneous characters beyond the expected EOL * So were not too picky here about the last line, as long as it's longer * than necessary and shorter than the maximum */ if (len != j && !(*ptr != 'h' && len > j && len <= UUxlen[UUxlat['h']])) return 0; /* bad length */ while(len--) { if(*s < 0 || XXxlat[ACAST(*s++)] < 0) { return 0; /* bad code character */ } } return XX_ENCODED; /* data is valid */ } /* * This function may be called upon a line that does not look like * valid encoding on first sight, but might be erroneously encoded * data from Netscape, Lynx or MS Exchange. We might need to read * a new line from the stream, which is why we need the FILE. * Returns the type of encoded data if successful or 0 otherwise. */ int UURepairData (FILE *datei, char *line, int encoding, int *bhflag) { int nflag, vflag=0, safety=42; char *ptr; nflag = UUBrokenByNetscape (line); while (vflag == 0 && nflag && safety--) { if (nflag == 1) { /* need next line to repair */ if (strlen (line) > 250) break; ptr = line + strlen (line); while (ptr>line && (*(ptr-1)=='\015' || *(ptr-1)=='\012')) ptr--; if (_FP_fgets (ptr, 255-(ptr-line), datei) == NULL) break; } else { /* don't need next line to repair */ } if (UUNetscapeCollapse (line)) { if ((vflag = UUValidData (line, encoding, bhflag)) == 0) nflag = UUBrokenByNetscape (line); } else nflag = 0; } /* * Sometimes, a line is garbled even without it being split into * the next line. Then we try this in our despair */ if (vflag == 0) { if (UUNetscapeCollapse (line)) vflag = UUValidData (line, encoding, bhflag); } /* * If this line looks uuencoded, but the line is one character short * of a valid line, it was probably broken by MS Exchange. According * to my test cases, there is at most one space character missing; * there are never two spaces together. * If adding a space character helps making this line uuencoded, do * it! */ if (vflag == 0) { ptr = line + strlen(line); while (ptr>line && (*(ptr-1)=='\012' || *(ptr-1)=='\015')) { ptr--; } *ptr++ = ' '; *ptr-- = '\0'; if ((vflag = UUValidData (line, encoding, bhflag)) != UU_ENCODED) { *ptr = '\0'; vflag = 0; } } return vflag; } /* * Decode a single encoded line using method */ size_t UUDecodeLine (char *s, char *d, int method) { int i, j, c, cc, count=0, z1, z2, z3, z4; static int leftover=0; int *table; /* * for re-initialization */ if (s == NULL || d == NULL) { leftover = 0; return 0; } /* * To shut up gcc -Wall */ z1 = z2 = z3 = z4 = 0; if (method == UU_ENCODED || method == XX_ENCODED) { if (method == UU_ENCODED) table = UUxlat; else table = XXxlat; i = table [ACAST(*s++)]; j = UUxlen[i] - 1; while(j > 0) { c = table[ACAST(*s++)] << 2; cc = table[ACAST(*s++)]; c |= (cc >> 4); if(i-- > 0) d[count++] = c; cc <<= 4; c = table[ACAST(*s++)]; cc |= (c >> 2); if(i-- > 0) d[count++] = cc; c <<= 6; c |= table[ACAST(*s++)]; if(i-- > 0) d[count++] = c; j -= 4; } } else if (method == B64ENCODED) { if (leftover) { strcpy (uuncdl_fulline+leftover, s); leftover = 0; s = uuncdl_fulline; } while ((z1 = B64xlat[ACAST(*s)]) != -1) { if ((z2 = B64xlat[ACAST(*(s+1))]) == -1) break; if ((z3 = B64xlat[ACAST(*(s+2))]) == -1) break; if ((z4 = B64xlat[ACAST(*(s+3))]) == -1) break; d[count++] = (z1 << 2) | (z2 >> 4); d[count++] = (z2 << 4) | (z3 >> 2); d[count++] = (z3 << 6) | (z4); s += 4; } if (z1 != -1 && z2 != -1 && *(s+2) == '=') { d[count++] = (z1 << 2) | (z2 >> 4); s+=2; } else if (z1 != -1 && z2 != -1 && z3 != -1 && *(s+3) == '=') { d[count++] = (z1 << 2) | (z2 >> 4); d[count++] = (z2 << 4) | (z3 >> 2); s+=3; } while (B64xlat[ACAST(*s)] != -1) uuncdl_fulline[leftover++] = *s++; } else if (method == BH_ENCODED) { if (leftover) { strcpy (uuncdl_fulline+leftover, s); leftover = 0; s = uuncdl_fulline; } else if (*s == ':') s++; while ((z1 = BHxlat[ACAST(*s)]) != -1) { if ((z2 = BHxlat[ACAST(*(s+1))]) == -1) break; if ((z3 = BHxlat[ACAST(*(s+2))]) == -1) break; if ((z4 = BHxlat[ACAST(*(s+3))]) == -1) break; d[count++] = (z1 << 2) | (z2 >> 4); d[count++] = (z2 << 4) | (z3 >> 2); d[count++] = (z3 << 6) | (z4); s += 4; } if (z1 != -1 && z2 != -1 && *(s+2) == ':') { d[count++] = (z1 << 2) | (z2 >> 4); s+=2; } else if (z1 != -1 && z2 != -1 && z3 != -1 && *(s+3) == ':') { d[count++] = (z1 << 2) | (z2 >> 4); d[count++] = (z2 << 4) | (z3 >> 2); s+=3; } while (BHxlat[ACAST(*s)] != -1) uuncdl_fulline[leftover++] = *s++; } else if (method == YENC_ENCODED) { while (*s) { if (*s == '=') { if (*++s != '\0') { d[count++] = (char) ((int) *s - 64 - 42); s++; } } else if (*s == '\n' || *s == '\r') { s++; /* ignore */ } else { d[count++] = (char) ((int) *s++ - 42); } } } return count; } /* * ``Decode'' Quoted-Printable text */ static int UUDecodeQP (FILE *datain, FILE *dataout, int *state, long maxpos, int method, int flags, char *boundary) { char *line=uugen_inbuffer, *p1, *p2; int val; uulboundary = -1; while (!feof (datain) && (ftell(datain)line && (*(ptr-1) == '\012' || *(ptr-1) == '\015')) ptr--; /* * If the part ends directly after this line, the data does not end * with a linebreak. Or, as the docs put it, "the CRLF preceding the * encapsulation line is conceptually attached to the boundary. * So if the part ends here, don't print a line break" */ if ((*ptr == '\012' || *ptr == '\015') && (ftell(datain)> 4); d[count++] = (z2 << 4) | (z3 >> 2); d[count++] = (z3 << 6) | (z4); s+=4; } if (z1 != -1 && z2 != -1 && *(s+2) == '=') { d[count++] = (z1 << 2) | (z2 >> 4); s+=2; } else if (z1 != -1 && z2 != -1 && z3 != -1 && *(s+3) == '=') { d[count++] = (z1 << 2) | (z2 >> 4); d[count++] = (z2 << 4) | (z3 >> 2); s+=3; } } else if (method == QP_ENCODED) { while (*s && (*s != '?' || *(s+1) != '=')) { while (*s && *s != '=' && (*s != '?' || *(s+1) != '=')) { d[count++] = *s++; } if (*s == '=') { if (isxdigit (*(s+1)) && isxdigit (*(s+2))) { d[count] = (isdigit (*(s+1)) ? (*(s+1)-'0') : (tolower (*(s+1))-'a'+10)) << 4; d[count] |= (isdigit (*(s+2)) ? (*(s+2)-'0') : (tolower (*(s+2))-'a'+10)); count++; s+=3; } else if (*(s+1) == '\012' || *(s+1) == '\015') { s+=2; } else { d[count++] = *s++; } } } } else { return -1; } d[count] = '\0'; return count; } int UUDecodePart (FILE *datain, FILE *dataout, int *state, long maxpos, int method, int flags, char *boundary) { char *line = uugen_fnbuffer; int line_len = UUGEN_FNBUFFER_LEN; char *oline=uuncdp_oline; int warning=0, vlc=0, lc[2], hadct=0; int tc=0, tf=0, vflag, haddata=0, haddh=0; long yefilesize=0, yepartends=0; crc32_t yepartcrc=crc32(0L, Z_NULL, 0); static crc32_t yefilecrc=0; static int bhflag=0; size_t count=0; size_t yepartsize=0; char *ptr; if (datain == NULL || dataout == NULL) { yefilecrc = crc32(0L, Z_NULL, 0); bhflag = 0; return UURET_OK; } /* * Use specialized functions for QP_ENCODED and PT_ENCODED plaintext */ if (method == QP_ENCODED) return UUDecodeQP (datain, dataout, state, maxpos, method, flags, boundary); else if (method == PT_ENCODED) return UUDecodePT (datain, dataout, state, maxpos, method, flags, boundary); lc[0] = lc[1] = 0; vflag = 0; uulboundary = -1; if (method == YENC_ENCODED) { *state = BEGIN; } while (!feof (datain) && *state != DONE && (ftell(datain) 5) tf = tc = 0; vlc = 0; continue; } /* * Busy Polls */ if (UUBUSYPOLL(ftell(datain)-progress.foffset,progress.fsize)) { UUMessage (uunconc_id, __LINE__, UUMSG_NOTE, uustring (S_DECODE_CANCEL)); return UURET_CANCEL; } /* * try to make sense of data */ line[255] = '\0'; /* For Safety of string functions */ count = 0; if (boundary && line[0]=='-' && line[1]=='-' && strncmp (line+2, boundary, strlen (boundary)) == 0) { if (line[strlen(boundary)+2]=='-') uulboundary = 1; else uulboundary = 0; return UURET_OK; } /* * Use this pseudo-handling only if !FL_PROPER */ if ((flags&FL_PROPER) == 0) { if (strncmp (line, "BEGIN", 5) == 0 && _FP_strstr (line, "CUT HERE") && !tf) { /* I hate these lines */ tc = tf = vlc = 0; continue; } /* MIME body boundary */ if (line[0] == '-' && line[1] == '-' && method == B64ENCODED) { if ((haddata || tc) && (haddh || hadct)) { *state = DONE; vlc = 0; lc[0] = lc[1] = 0; continue; } hadct = 0; haddh = 1; continue; } if (_FP_strnicmp (line, "Content-Type", 12) == 0) hadct = 1; } if (*state == BEGIN) { if ((method == UU_ENCODED || method == XX_ENCODED) && (strncmp (line, "begin ", 6) == 0 || _FP_strnicmp (line, "
begin ", 11) == 0)) { /* for LYNX */
	*state = DATA;
	continue;
      }
      else if (method == BH_ENCODED && line[0] == ':') {
	if (UUValidData (line, BH_ENCODED, &bhflag) == BH_ENCODED) {
	  bhflag = 0;
	  *state = DATA;
	}
	else
	  continue;
      }
      else if (method == YENC_ENCODED &&
	       strncmp (line, "=ybegin ", 8) == 0 &&
	       _FP_strstr (line, " name=") != NULL) {
	*state = DATA;

	if ((ptr = _FP_strstr (line, " size=")) != NULL) {
	  ptr += 6;
	  yefilesize = atoi (ptr);
	}
	else {
	  yefilesize = -1;
	}

	if (_FP_strstr (line, " part=") != NULL) {
	  if (_FP_fgets (line, line_len, datain) == NULL) {
	    break;
	  }

	  if ((ptr = _FP_strstr (line, " end=")) == NULL) {
	    break;
	  }

	  yepartends = atoi (ptr + 5);
	}
	tf = 1;
	continue;
      }
      else {
	continue;
      }

      tc = tf = vlc = 0;
      lc[0] = lc[1] = 0;
    }
    else if ((*state == END) &&
	     (method == UU_ENCODED || method == XX_ENCODED)) {
      if (strncmp (line, "end", 3) == 0) {
	*state = DONE;
	break;
      }
    }

    if (*state == DATA && method == YENC_ENCODED &&
	strncmp (line, "=yend ", 6) == 0) {
      if ((ptr = _FP_strstr (line, " pcrc32=")) != NULL) {
	crc32_t pcrc32 = strtoul (ptr + 8, NULL, 16);
	if (pcrc32 != yepartcrc) {
	  UUMessage (uunconc_id, __LINE__, UUMSG_WARNING,
		     uustring (S_PCRC_MISMATCH), progress.curfile, progress.partno);
	}
      }
      if ((ptr = _FP_strstr (line, " crc32=")) != NULL)
      {
	crc32_t fcrc32 = strtoul (ptr + 7, NULL, 16);
	if (fcrc32 != yefilecrc) {
	  UUMessage (uunconc_id, __LINE__, UUMSG_WARNING,
		     uustring (S_CRC_MISMATCH), progress.curfile);
	}
      }
      if ((ptr = _FP_strstr (line, " size=")) != NULL)
      {
	size_t size = atol(ptr + 6);
	if (size != yepartsize && yefilesize != -1) {
	  if (size != yefilesize)
	    UUMessage (uunconc_id, __LINE__, UUMSG_WARNING,
		       uustring (S_PSIZE_MISMATCH), progress.curfile,
		       progress.partno, yepartsize, size);
	  else
	    UUMessage (uunconc_id, __LINE__, UUMSG_WARNING,
		       uustring (S_SIZE_MISMATCH), progress.curfile,
		       yepartsize, size);
	}
      }
      if (yepartends == 0 || yepartends >= yefilesize) {
	*state = DONE;
      }
      break;
    }

    if (*state == DATA || *state == END) {
      if (method==B64ENCODED && line[0]=='-' && line[1]=='-' && tc) {
	break;
      }

      if ((vflag = UUValidData (line, (tf)?method:0, &bhflag)) == 0)
	vflag = UURepairData (datain, line, (tf)?method:0, &bhflag);

      /*
       * correct XX/UUencoded lines that were declared Base64
       */

      if ((method == XX_ENCODED || method == UU_ENCODED) &&
	  vflag == B64ENCODED) {
	if (UUValidData (line, method, &bhflag) == method)
	  vflag = method;
      }

      if (vflag == method) {
	if (tf) {
	  count  = UUDecodeLine (line, oline, method);
	  if (method == YENC_ENCODED) {
	    if (yepartends)
	      yepartcrc = crc32(yepartcrc, (unsigned char*)oline, count);
	    yefilecrc = crc32(yefilecrc, (unsigned char*)oline, count);
	    yepartsize += count;
	  }
	  vlc++; lc[1]++;
	}
	else if (tc == 3) {
	  count  = UUDecodeLine (save[0], oline,         method);
	  count += UUDecodeLine (save[1], oline + count, method);
	  count += UUDecodeLine (save[2], oline + count, method);
	  count += UUDecodeLine (line,    oline + count, method);
	  tf     = 1;
	  tc     = 0;

	  /*
	   * complain if we had one or two invalid lines amidst of
	   * correctly encoded data. This usually means that the
	   * file is in error
	   */

	  if (lc[1] > 10 && (lc[0] >= 1 && lc[0] <= 2) && !warning) {
	    UUMessage (uunconc_id, __LINE__, UUMSG_WARNING,
		       uustring (S_DATA_SUSPICIOUS));
	    warning=1;
	  }
	  lc[0] = 0;
	  lc[1] = 3;
	}
	else {
	  _FP_strncpy (save[tc++], line, 256);
	}

	if (method == UU_ENCODED)
	  *state = (line[0] == 'M') ? DATA : END;
	else if (method == XX_ENCODED)
	  *state = (line[0] == 'h') ? DATA : END;
	else if (method == B64ENCODED)
	  *state = (strchr (line, '=') == NULL) ? DATA : DONE;
	else if (method == BH_ENCODED)
	  *state = (!line[0] || strchr(line+1,':')==NULL)?DATA:DONE;
      }
      else {
	vlc = tf = tc = 0;
	haddh = 0;
	lc[0]++;
      }
    }
    else if (*state != DONE) {
      return UURET_NOEND;
    }

    if (count) {
      if (method == BH_ENCODED) {
	if (UUbhwrite (oline, 1, count, dataout) != count) {
	  UUMessage (uunconc_id, __LINE__, UUMSG_ERROR,
		     uustring (S_WR_ERR_TEMP),
		     strerror (uu_errno = errno));
	  return UURET_IOERR;
	}
      }
      else if (fwrite (oline, 1, count, dataout) != count) {
	UUMessage (uunconc_id, __LINE__, UUMSG_ERROR,
		   uustring (S_WR_ERR_TEMP),
		   strerror (uu_errno = errno));
	return UURET_IOERR;
      }
      haddata++;
      count = 0;
    }
  }

  if (*state  == DONE ||
      (*state == DATA && method == B64ENCODED &&
       vflag == B64ENCODED && (flags&FL_PROPER || haddh))) {
    for (tf=0; tfthisfile == NULL)
    return UURET_ILLVAL;

  if (data->state & UUFILE_TMPFILE)
    return UURET_OK;

  if (data->state & UUFILE_NODATA)
    return UURET_NODATA;

  if (data->state & UUFILE_NOBEGIN) {
    if (!uu_desperate)
      return UURET_NODATA;
    UUMessage (uunconc_id, __LINE__, UUMSG_WARNING,
               uustring(S_DATA_SUSPICIOUS));
  }

  if (data->uudet == PT_ENCODED)
    mode = "wt";	/* open text files in text mode */
  else
    mode = "wb";	/* otherwise in binary          */


  template = g_build_filename (g_get_tmp_dir(), "uuXXXXXX", NULL);
  data->binfile = strdup (template);
  fd = g_mkstemp (data->binfile);
  g_free (template);

  if (fd == -1) {
    UUMessage (uunconc_id, __LINE__, UUMSG_ERROR,
	       uustring (S_NO_TEMP_NAME));
    _FP_free (data->binfile);
    data->binfile = NULL;
    uu_errno = errno;
    return UURET_NOMEM;
  }

  if ((dataout = fdopen (fd, mode)) == NULL) {
    /*
     * we couldn't create a temporary file. Usually this means that TMP
     * and TEMP aren't set
     */
    UUMessage (uunconc_id, __LINE__, UUMSG_ERROR,
	       uustring (S_WR_ERR_TARGET),
	       data->binfile, strerror (uu_errno = errno));
    _FP_free (data->binfile);
    data->binfile = NULL;
    uu_errno = errno;
    return UURET_IOERR;
  }
  /*
   * we don't have begin lines in Base64 or plain text files.
   */
  if (data->uudet == B64ENCODED || data->uudet == QP_ENCODED ||
      data->uudet == PT_ENCODED)
    state = DATA;

  /*
   * If we know that the file does not have a begin, we simulate
   * it in desperate mode
   */

  if ((data->state & UUFILE_NOBEGIN) && uu_desperate) {
    UUMessage (uunconc_id, __LINE__, UUMSG_WARNING, uustring(S_DATA_SUSPICIOUS));
    state = DATA;
  }

  (void) UUDecodeLine (NULL, NULL, 0);                   /* init */
  (void) UUbhwrite    (NULL, 0, 0, NULL);                /* dito */
  (void) UUDecodePart (NULL, NULL, NULL, 0, 0, 0, NULL); /* yep  */

  /*
   * initialize progress information
   */
  progress.action = 0;
  if (data->filename != NULL) {
    _FP_strncpy (progress.curfile,
		 (strlen(data->filename)>2047)?
		 (data->filename+strlen(data->filename)-2047):data->filename,
		 2048);
  }
  else {
    _FP_strncpy (progress.curfile,
		 (strlen(data->binfile)>2047)?
		 (data->binfile+strlen(data->binfile)-2047):data->binfile,
		 2048);
  }
  progress.partno   =  0;
  progress.numparts =  0;
  progress.fsize    = -1;
  progress.percent  =  0;
  progress.action   =  UUACT_DECODING;

  iter = data->thisfile;
  while (iter) {
    progress.numparts = (iter->partno)?iter->partno:1;
    iter = iter->NEXT;
  }

  /*
   * let's rock!
   */

  iter = data->thisfile;
  while (iter) {

    if (part==-1 && iter->partno!=1)
       UUMessage (uunconc_id, __LINE__, UUMSG_WARNING, "Missing everything before part #%d", iter->partno);
    if (part!=-1 && iter->partno!=part+1) {
      if (!uu_desperate)
        break;
      UUMessage (uunconc_id, __LINE__, UUMSG_ERROR,
                 uustring(S_PART_MISSING), part);
    }
    part = iter->partno;

    if (iter->data->sfname == NULL) {
      iter = iter->NEXT;
      continue;
    }

    /*
     * call our FileCallback to retrieve the file
     */

    if (uu_FileCallback) {
      if ((res = (*uu_FileCallback) (uu_FileCBArg, iter->data->sfname,
				     uugen_fnbuffer, 1)) != UURET_OK)
	break;
      if ((datain = fopen (uugen_fnbuffer, "rb")) == NULL) {
	(*uu_FileCallback) (uu_FileCBArg, iter->data->sfname,
			    uugen_fnbuffer, 0);
	UUMessage (uunconc_id, __LINE__, UUMSG_ERROR,
		   uustring (S_NOT_OPEN_FILE),
		   uugen_fnbuffer, strerror (uu_errno = errno));
	res = UURET_IOERR;
	break;
      }
    }
    else {
      if ((datain = fopen (iter->data->sfname, "rb")) == NULL) {
	UUMessage (uunconc_id, __LINE__, UUMSG_ERROR,
		   uustring (S_NOT_OPEN_FILE),
		   iter->data->sfname, strerror (uu_errno = errno));
	res = UURET_IOERR;
	break;
      }
      _FP_strncpy (uugen_fnbuffer, iter->data->sfname, 1024);
    }

    progress.partno  = part;
    progress.fsize   = (iter->data->length)?iter->data->length:-1;
    progress.percent = 0;
    progress.foffset = iter->data->startpos;

    fseek              (datain, iter->data->startpos, SEEK_SET);
    res = UUDecodePart (datain, dataout, &state,
			iter->data->startpos+iter->data->length,
			data->uudet, iter->data->flags, NULL);
    fclose             (datain);

    if (uu_FileCallback)
      (*uu_FileCallback) (uu_FileCBArg, iter->data->sfname, uugen_fnbuffer, 0);

    if (state == DONE || res != UURET_OK)
      break;

    iter = iter->NEXT;
  }

  if (state == DATA &&
      (data->uudet == B64ENCODED || data->uudet == QP_ENCODED ||
       data->uudet == PT_ENCODED))
    state = DONE; /* assume we're done */

  if (fclose (dataout)) {
    UUMessage (uunconc_id, __LINE__, UUMSG_ERROR,
	       uustring (S_WR_ERR_TEMP),
	       strerror (uu_errno = errno));
    res = UURET_IOERR;
  }

  if (res != UURET_OK || (state != DONE && !uu_desperate)) {
    unlink (data->binfile);
    _FP_free (data->binfile);
    data->binfile = NULL;
    data->state  &= ~UUFILE_TMPFILE;
    data->state  |=  UUFILE_ERROR;

    if (res == UURET_OK && state != DONE)
      res = UURET_NOEND;
  }
  else if (res != UURET_OK) {
    data->state &= ~UUFILE_DECODED;
    data->state |=  UUFILE_ERROR | UUFILE_TMPFILE;
  }
  else {
    data->state &= ~UUFILE_ERROR;
    data->state |=  UUFILE_TMPFILE;
  }

  /*
   * If this was a BinHex file, we must extract its data or resource fork
   */

  if (data->uudet == BH_ENCODED && data->binfile)
  {
    char * template = g_build_filename (g_get_tmp_dir(), "uuXXXXXX", NULL);
    ntmp = strdup (template);
    fd = g_mkstemp (ntmp);
    g_free (template);

    if (fd == -1) {
      UUMessage (uunconc_id, __LINE__, UUMSG_ERROR,
		 uustring (S_NO_TEMP_NAME));
      progress.action = 0;
      free (ntmp);
      return UURET_NOMEM;
    }
    if ((datain = fdopen (fd, "rb")) == NULL) {
      UUMessage (uunconc_id, __LINE__, UUMSG_ERROR,
		 uustring (S_NOT_OPEN_FILE),
		 data->binfile, strerror (uu_errno = errno));
      progress.action = 0;
      free (ntmp);
      return UURET_IOERR;
    }
    if ((dataout = fopen (ntmp, "wb")) == NULL) {
      UUMessage (uunconc_id, __LINE__, UUMSG_ERROR,
		 uustring (S_NOT_OPEN_TARGET),
		 ntmp, strerror (uu_errno = errno));
      progress.action = 0;
      fclose (datain);
      free   (ntmp);
      return UURET_IOERR;
    }
    /*
     * read fork lengths. remember they're in Motorola format
     */
    r[0] = fgetc (datain);
    hb   = (int) r[0] + 22;
    fseek (datain, (int) r[0] + 12, SEEK_SET);
    size_t res = fread (r, 1, 8, datain);

    dsize = (((long) 1 << 24) * (long) r[0]) +
            (((long) 1 << 16) * (long) r[1]) +
            (((long) 1 <<  8) * (long) r[2]) +
            (                   (long) r[3]);
    rsize = (((long) 1 << 24) * (long) r[4]) +
	    (((long) 1 << 16) * (long) r[5]) +
	    (((long) 1 <<  8) * (long) r[6]) +
	    (                   (long) r[7]);

    UUMessage (uunconc_id, __LINE__, UUMSG_MESSAGE,
	       uustring (S_BINHEX_SIZES),
	       dsize, rsize);

    if (dsize == 0) {
      fseek  (datain, dsize + hb + 2, SEEK_SET);
      numbytes = rsize;
    }
    else if (rsize == 0) {
      fseek  (datain, hb, SEEK_SET);
      numbytes = dsize;
    }
    else {
      /* we should let the user have the choice here */
      UUMessage (uunconc_id, __LINE__, UUMSG_NOTE,
		 uustring (S_BINHEX_BOTH));
      fseek  (datain, hb, SEEK_SET);
      numbytes = dsize;
    }

    progress.action   = 0;
    progress.partno   = 0;
    progress.numparts = 1;
    progress.fsize    = (numbytes)?numbytes:-1;
    progress.foffset  = hb;
    progress.percent  = 0;
    progress.action   = UUACT_COPYING;

    /*
     * copy the chosen fork
     */

    while (!feof (datain) && numbytes) {
      if (UUBUSYPOLL(ftell(datain)-progress.foffset,progress.fsize)) {
	UUMessage (uunconc_id, __LINE__, UUMSG_NOTE,
		   uustring (S_DECODE_CANCEL));
	fclose (datain);
	fclose (dataout);
	unlink (ntmp);
	free   (ntmp);
	return UURET_CANCEL;
      }

      bytes = fread (uugen_inbuffer, 1,
		     (size_t) ((numbytes>1024)?1024:numbytes), datain);

      if (ferror (datain) || (bytes == 0 && !feof (datain))) {
	progress.action = 0;
	UUMessage (uunconc_id, __LINE__, UUMSG_ERROR,
		   uustring (S_SOURCE_READ_ERR),
		   data->binfile, strerror (uu_errno = errno));
	fclose (datain);
	fclose (dataout);
	unlink (ntmp);
	free   (ntmp);
	return UURET_IOERR;
      }
      if (fwrite (uugen_inbuffer, 1, bytes, dataout) != bytes) {
	progress.action = 0;
	UUMessage (uunconc_id, __LINE__, UUMSG_ERROR,
		   uustring (S_WR_ERR_TARGET),
		   ntmp, strerror (uu_errno = errno));
	fclose (datain);
	fclose (dataout);
	unlink (ntmp);
	free   (ntmp);
	return UURET_IOERR;
      }
      numbytes -= bytes;
    }

    if (numbytes) {
      UUMessage (uunconc_id, __LINE__, UUMSG_WARNING,
		 uustring (S_SHORT_BINHEX),
		 (data->filename)?data->filename:
		 (data->subfname)?data->subfname:"???",
		 numbytes);
    }

    /*
     * replace temp file
     */

    fclose (datain);
    if (fclose (dataout)) {
      UUMessage (uunconc_id, __LINE__, UUMSG_ERROR,
		 uustring (S_WR_ERR_TARGET),
		 ntmp, strerror (uu_errno = errno));
      unlink (ntmp);
      free   (ntmp);
      return UURET_IOERR;
    }

    if (unlink (data->binfile)) {
      UUMessage (uunconc_id, __LINE__, UUMSG_WARNING,
		 uustring (S_TMP_NOT_REMOVED),
		 data->binfile, strerror (uu_errno = errno));
    }

    free (data->binfile);
    data->binfile = ntmp;
  }

  progress.action = 0;
  return res;
}

/*
 * QuickDecode for proper MIME attachments. We expect the pointer to
 * be on the first header line.
 */

int
UUQuickDecode (FILE *datain, FILE *dataout, char *boundary, long maxpos)
{
  int state=BEGIN, encoding=-1;
  headers myenv;

  /*
   * Read header and find out about encoding.
   */

  memset (&myenv, 0, sizeof (headers));
  UUScanHeader (datain, &myenv);

  if (_FP_stristr (myenv.ctenc, "uu") != NULL)
    encoding = UU_ENCODED;
  else if (_FP_stristr (myenv.ctenc, "xx") != NULL)
    encoding = XX_ENCODED;
  else if (_FP_stricmp (myenv.ctenc, "base64") == 0)
    encoding = B64ENCODED;
  else if (_FP_stricmp (myenv.ctenc, "quoted-printable") == 0)
    encoding = QP_ENCODED;
  else
    encoding = PT_ENCODED;

  UUkillheaders (&myenv);

  /*
   * okay, so decode this one
   */

  (void) UUDecodePart (NULL, NULL, NULL, 0, 0, 0, NULL); /* init  */
  return UUDecodePart (datain, dataout, &state, maxpos,
		       encoding, FL_PROPER|FL_TOEND,
		       boundary);
}
pan-0.162/uulib/uuscan.c000066400000000000000000002523531475412772400151110ustar00rootroot00000000000000/*
 * This file is part of uudeview, the simple and friendly multi-part multi-
 * file uudecoder  program  (c) 1994-2001 by Frank Pilhofer. The author may
 * be contacted at fp@fpx.de
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 */

/*
 * These are very central functions of UUDeview. Here, we scan a file
 * and decide whether it contains encoded data or not. ScanPart() must
 * be called repeatedly on the same file until feof(file). Each time,
 * it returns information about the next part found within.
 */

#ifdef HAVE_CONFIG_H
#include "config.h"
#endif

#ifdef SYSTEM_WINDLL
#include 
#endif
#ifdef SYSTEM_OS2
#include 
#endif

#include 
#include 

#include 
#include 
#ifdef HAVE_MALLOC_H
#include 
#endif
#ifdef HAVE_UNISTD_H
#include 
#endif
#ifdef HAVE_MEMORY_H
#include 
#endif
#ifdef HAVE_ERRNO_H
#include 
#endif

#include 
#include 
#include 
#include 

char * uuscan_id = "$Id$";

/*
 * Header fields we recognize as such. See RFC822. We add "From ",
 * the usual marker for a beginning of a new message, and a couple
 * of usual MDA, News and MIME headers.
 * We make a distinction of MIME headers as we need the difference
 * to scan the bodies from partial multipart messages.
 *
 * Change for Pan: sysprof says this is another uulib hotspot.
 * I've converted these to lowercase and sorted them so that
 * IsKnownHeader can pass a lowercase buf to bsearch rather than
 * having to do a stricmp against each header.
 */
static char *knownmsgheaders[] = {
  "bcc:", "cc:", "comments:", "date:", "delivery-date:",
  "from ", "from:", "in-reply-to:", "keywords:", "lines:",
  "message-id:", "newsgroups:", "nntp-posting-host:",
  "organization:", "path:", "posted-date:", "precedence:",
  "received-date:", "received:", "references:", "reply-to:",
  "resent-bcc:", "resent-date:", "resent-from:", "resent-message-id:",
  "resent-reply-to:", "resent-sender:", "resent-to:", "return-path:",
  "sender:", "subject:", "to:"
};

static char *knownmimeheaders[] = {
  "content-description:", "content-disposition:", "content-length:",
  "content-transfer-encoding:", "content-type:", "mime-version:"
};

/*
 * for MIME (plaintext) parts without filename
 */
int mimseqno;

/*
 * how many lines do we read when checking for headers
 */
#define WAITHEADER	10

/*
 * The stack for encapsulated Multipart messages
 */
#define MSMAXDEPTH	3

int       mssdepth = 0;
scanstate multistack[MSMAXDEPTH+1];

/*
 * The state and the local envelope
 */
headers   localenv;
scanstate sstate;

/*
 * mallocable areas
 */

char *uuscan_shlline;
char *uuscan_shlline2;
char *uuscan_pvvalue;
char *uuscan_phtext;
char *uuscan_sdline;
char *uuscan_sdbhds1;
char *uuscan_sdbhds2;
char *uuscan_spline;

/*
 * Macro: print cancellation message in UUScanPart
 */

#define SPCANCEL()	{UUMessage(uuscan_id,__LINE__,UUMSG_NOTE,uustring(S_SCAN_CANCEL));*errcode=UURET_CANCEL;goto ScanPartEmergency;}

/*
 * Is line empty? A line is empty if it is composed of whitespace.
 */

static int
IsLineEmpty (char *data)
{
  if (data == NULL) return 0;
  while (*data && isspace (*data)) data++;
  return ((*data)?0:1);
}

/*
 * Is this a header line? A header line has alphanumeric characters
 * followed by a colon.
 */

static int
IsHeaderLine (char *data)
{
  if (data == NULL) return 0;
  if (*data == ':') return 0;
  while (*data && (isalnum (*data) || *data=='-')) data++;
  return (*data == ':') ? 1 : 0;
}

/*
 * Scans a potentially folded header line from the input file. If
 * initial is non-NULL, it is the first line of the header, useful
 * if the calling function just coincidentally noticed that this is
 * a header.
 * RFC0822 does not specify a maximum length for headers, but we
 * truncate everything beyond an insane value of 1024 characters.
 */

static char *
ScanHeaderLine (FILE *datei, char *initial)
{
  char *ptr=uuscan_shlline;
  char *ptr2, *p1, *p2, *p3;
  int llength;
  long curpos;
  int hadcr;

  if (initial) {
    _FP_strncpy (uuscan_shlline, initial, 1024);
  }
  else {
    /* read first line */
    if (feof (datei) || ferror (datei))
      return NULL;
    if (_FP_fgets (uuscan_shlline, 1023, datei) == NULL)
      return NULL;
    uuscan_shlline[1023] = '\0';
  }

  llength = strlen (uuscan_shlline);
  hadcr   = 0;

  /* strip whitespace at end */
  ptr = uuscan_shlline + llength;
  while (llength && isspace(*(ptr-1))) {
    if (*(ptr-1) == '\012' || *(ptr-1) == '\015')
      hadcr = 1;
    ptr--; llength--;
  }
  if (llength == 0) {
    uuscan_shlline[0] = '\0';
    return uuscan_shlline;
  }

  while (!feof (datei)) {
    int c = fgetc (datei);
    if (feof (datei))
      break;

    /*
     * If the line didn't have a CR, it was longer than 256 characters
     * and is continued anyway.
     */

    if (hadcr==1 && c != ' ' && c != '\t') {
      /* no LWSP-char, header line does not continue */
      ungetc (c, datei);
      break;
    }
    while (!feof (datei) && (c == ' ' || c == '\t'))
      c = fgetc (datei);

    if (!feof (datei))
      ungetc (c, datei);	/* push back for fgets() */

    /* insert a single LWSP */
    if (hadcr==1 && llength < 1023) {
      *ptr++ = ' ';
      llength++;
    }
    *ptr = '\0'; /* make lint happier */

    if (feof (datei))
      break;

    /* read next line */
    curpos = ftell (datei);
    if (_FP_fgets (uugen_inbuffer, 255, datei) == NULL)
      break;
    uugen_inbuffer[255] = '\0';

    if (IsLineEmpty (uugen_inbuffer)) { /* oops */
      fseek (datei, curpos, SEEK_SET);
      break;
    }

    _FP_strncpy (ptr, uugen_inbuffer, 1024-llength);

    /*
     * see if line was terminated with CR. Otherwise, it continues ...
     */
    c = strlen (ptr);
    if (c>0 && (ptr[c-1] == '\012' || ptr[c-1] == '\015'))
      hadcr = 1;
    else
      hadcr = 0;

    /*
     * strip whitespace
     */

    ptr     += c;
    llength += c;
    while (llength && isspace(*(ptr-1))) {
      ptr--; llength--;
    }
  }

  *ptr = '\0';

  if (llength == 0)
    return NULL;

  /*
   * Now that we've read the header line, we can RFC 1522-decode it
   */

  ptr = uuscan_shlline;
  ptr2 = uuscan_shlline2;

  while (*ptr) {
    /*
     * Look for =? magic
     */

    if (*ptr == '=' && *(ptr+1) == '?') {
      /*
       * Let p1 point to the charset, look for next question mark
       */

      p1 = p2 = ptr+2;

      while (*p2 && *p2 != '?') {
	p2++;
      }

      if (*p2 == '?' &&
	  (*(p2+1) == 'q' || *(p2+1) == 'Q' ||
	   *(p2+1) == 'b' || *(p2+1) == 'B') &&
	  *(p2+2) == '?') {
	/*
	 * Let p2 point to the encoding, look for ?= magic
	 */

	p2++;
	p3=p2+2;

	while (*p3 && (*p3 != '?' || *(p3+1) != '=')) {
	  p3++;
	}

	if (*p3 == '?' && *(p3+1) == '=') {
          char c = -1;
	  /*
	   * Alright, we've found an RFC 1522 header field
	   */
	  if (*p2 == 'q' || *p2 == 'Q') {
	    c = UUDecodeField (p2+2, ptr2, QP_ENCODED);
	  }
	  else if (*p2 == 'b' || *p2 == 'B') {
	    c = UUDecodeField (p2+2, ptr2, B64ENCODED);
	  }
	  if (c >= 0) {
	    ptr2 += c;
	    ptr = p3+2;
	    continue;
	  }
	}
      }
    }

    *ptr2++ = *ptr++;
  }

  *ptr2 = 0;

  return uuscan_shlline2;
}

/*
 * Extract the value from a MIME attribute=value pair. This function
 * receives a pointer to the attribute.
 */
static char *
ParseValue (char *attribute)
{
  char *ptr=uuscan_pvvalue;
  int length=0;

  if (attribute == NULL)
    return NULL;

  while ((isalnum(*attribute) || *attribute=='_') && *attribute != '=')
    attribute++;

  while (isspace(*attribute))
    attribute++;

  if (*attribute == '=') {
    attribute++;
    while (isspace (*attribute))
      attribute++;
  }
  else
    return NULL;

  if (*attribute == '"') {
    /* quoted-string */
    attribute++;
    while (*attribute && *attribute != '"' && length < 255) {
      *ptr++ = *attribute++;
      length++;
    }
    *ptr = '\0';
  }
  else {
    /* tspecials from RFC1521 */
    /*
     * Note - exclude '[', ']' and ';' on popular request; these are
     * used in some Content-Type fields by the Klez virus, and people
     * who feed their virus scanners with the output of UUDeview would
     * like to catch it!
     */

    while (*attribute && !isspace (*attribute) &&
	   *attribute != '(' && *attribute != ')' &&
	   *attribute != '<' && *attribute != '>' &&
	   *attribute != '@' && *attribute != ',' &&
	   /* *attribute != ';' && */ *attribute != ':' &&
	   *attribute != '\\' &&*attribute != '"' &&
	   *attribute != '/' && /* *attribute != '[' &&
	   *attribute != ']' && */ *attribute != '?' &&
	   *attribute != '=' && length < 255) {
      *ptr++ = *attribute++;
      length++;
    }

    *ptr = '\0';
  }
  return uuscan_pvvalue;
}

/*
 * Extract the information we need from header fields
 */

static headers *
ParseHeader (headers *theheaders, char *line)
{
  char **variable=NULL;
  char *value, *ptr, *thenew;
  int delimit, length;

  if (line == NULL)
    return theheaders;

  if (_FP_strnicmp (line, "From:", 5) == 0) {
    if (theheaders->from) return theheaders;
    variable = &theheaders->from;
    value    = line+5;
    delimit  = 0;
  }
  else if (_FP_strnicmp (line, "Subject:", 8) == 0) {
    if (theheaders->subject) return theheaders;
    variable = &theheaders->subject;
    value    = line+8;
    delimit  = 0;
  }
  else if (_FP_strnicmp (line, "To:", 3) == 0) {
    if (theheaders->rcpt) return theheaders;
    variable = &theheaders->rcpt;
    value    = line+3;
    delimit  = 0;
  }
  else if (_FP_strnicmp (line, "Date:", 5) == 0) {
    if (theheaders->date) return theheaders;
    variable = &theheaders->date;
    value    = line+5;
    delimit  = 0;
  }
  else if (_FP_strnicmp (line, "Mime-Version:", 13) == 0) {
    if (theheaders->mimevers) return theheaders;
    variable = &theheaders->mimevers;
    value    = line+13;
    delimit  = 0;
  }
  else if (_FP_strnicmp (line, "Content-Type:", 13) == 0) {
    if (theheaders->ctype) return theheaders;
    variable = &theheaders->ctype;
    value    = line+13;
    delimit  = ';';

    /* we can probably extract more information */
    if ((ptr = _FP_stristr (line, "boundary")) != NULL) {
      if ((thenew = ParseValue (ptr))) {
	if (theheaders->boundary) free (theheaders->boundary);
	theheaders->boundary = _FP_strdup (thenew);
      }
    }
    if ((ptr = _FP_stristr (line, "name")) != NULL) {
      if ((thenew = ParseValue (ptr))) {
	if (theheaders->fname) free (theheaders->fname);
	theheaders->fname = _FP_strdup (thenew);
      }
    }
    if ((ptr = _FP_stristr (line, "id")) != NULL) {
      if ((thenew = ParseValue (ptr))) {
	if (theheaders->mimeid) free (theheaders->mimeid);
	theheaders->mimeid = _FP_strdup (thenew);
      }
    }
    if ((ptr = _FP_stristr (line, "number")) != NULL) {
      if ((thenew = ParseValue (ptr))) {
	theheaders->partno = atoi (thenew);
      }
    }
    if ((ptr = _FP_stristr (line, "total")) != NULL) {
      if ((thenew = ParseValue (ptr))) {
	theheaders->numparts = atoi (thenew);
      }
    }
  }
  else if (_FP_strnicmp (line, "Content-Transfer-Encoding:", 26) == 0) {
    if (theheaders->ctenc) return theheaders;
    variable = &theheaders->ctenc;
    value    = line+26;
    delimit  = ';';
  }
  else if (_FP_strnicmp (line, "Content-Disposition:", 20) == 0) {
    /*
     * Some encoders mention the original filename as parameter to
     * Content-Type, others as parameter to Content-Disposition. We
     * do prefer the first solution, but accept this situation, too.
     * !!Read RFC1806
     */
    if ((ptr = _FP_stristr (line, "name")) != NULL) {
      if (theheaders->fname == NULL && (thenew=ParseValue(ptr)) != NULL) {
	theheaders->fname = _FP_strdup (thenew);
      }
    }
    return theheaders;
  }
  else {
    /*
     * nothing interesting
     */
    return theheaders;
  }

  /*
   * okay, so extract the actual data
   */
  if (variable) {
    length = 0;
    ptr = uuscan_phtext;

    while (isspace (*value))
      value++;
    while (*value && (delimit==0 || *value!=delimit) &&
	   *value != '\012' && *value != '\015' && length < 255) {
      *ptr++ = *value++;
      length++;
    }
    while (length && isspace(*(ptr-1))) {
      ptr--; length--;
    }
    *ptr = '\0';

    if ((*variable = _FP_strdup (uuscan_phtext)) == NULL)
      return NULL;
  }

  return theheaders;
}

static int bsearch_strcmp (const void * v1, const void * v2)
{
  const char * s1 = *(const char**) v1;
  const char * s2 = *(const char**) v2;
  return strcmp (s1, s2);
}

/*
 * is this a header line we know about?
 */

static int
IsKnownHeader (char *line)
{
  static const int n_msg = sizeof(knownmsgheaders) / sizeof(knownmsgheaders[0]);
  static const int n_mime = sizeof(knownmimeheaders) / sizeof(knownmimeheaders[0]);
  static const int max_width = 25; // content-transfer-encoding

  int retval = 0;
  if (line && *line)
  {
    const char * pch = strchr (line, ' ');
    const int len = pch ? pch-line : strlen(line);
    if (len <= max_width)
    {
      // buf holds a lowercase version of `line'
      char buf[32], *pch, *end;
      for (pch=buf, end=line+len; line!=end; )
        *pch++ = tolower (*line++);
      *pch = '\0';
      pch = buf;

      // search for that in knownmsgheaders
      if (bsearch (&pch, knownmsgheaders, n_msg, sizeof(char*), bsearch_strcmp) != NULL)
        retval = 1;

      // search for that in knownmimeheaders
      else if (bsearch (&pch, knownmimeheaders, n_mime, sizeof(char*), bsearch_strcmp) != NULL)
        retval = 2;
    }
  }

  return retval;
}

/*
 * Scan a header
 */

int
UUScanHeader (FILE *datei, headers *envelope)
{
  char *ptr;

  while (!feof (datei)) {
    if ((ptr = ScanHeaderLine (datei, NULL)) == NULL)
      break;
    if (*ptr == '\0' || *ptr == '\012' || *ptr == '\015')
      break;
    ParseHeader (envelope, ptr);
  }
  return 0;
}

/*
 * Scan something for encoded data and fill the fileread* structure.
 * If boundary is non-NULL, we stop after having read it. If Check-
 * Headers != 0, we also stop after we've found uu_headercount recog-
 * nized header lines.
 * If we have a boundary, then we also don't accept Base64; MIME mails
 * really should handle this properly.
 * We return -1 if something went wrong, 0 if everything is normal,
 * 1 if we found a new header and 2 if we found a boundary.
 * In MIME message bodies (not multiparts), we also disable our reduced
 * MIME handling.
 */

static int
ScanData (FILE *datei, char *fname, int *errcode,
	  char *boundary, int ismime, int checkheaders,
	  fileread *result)
{
  char *line=uuscan_sdline;
  int line_len = UUSCAN_SDLINE_LEN;
  char *bhds1=uuscan_sdbhds1, *bhds2=uuscan_sdbhds2;
  static char *ptr, *p2, *p3=NULL, *bhdsp, bhl;
  int islen[10], isb64[10], isuue[10], isxxe[10], isbhx[10], iscnt;
  int cbb64, cbuue, cbxxe, cbbhx;
  int bhflag=0, vflag, haddh=0, hadct=0;
  int bhrpc=0, bhnf=0, c, hcount, lcount, blen=0;
  int encoding=0, dflag=0, ctline=42;
  int dontcare=0, hadnl=0;
  long preheaders=0, oldposition;
  long yefilesize=0, yepartends=0;
  size_t dcc, bhopc;
  int oldcheckheaders = 0;

  *errcode = UURET_OK;
  (void) UUDecodeLine (NULL, NULL, 0);          /* init */
  bhdsp = bhds2;

  if (datei == NULL || feof (datei))
    return -1;

  result->startpos = ftell (datei);
  hcount = lcount  = 0;

  for (iscnt=0; iscnt<10; iscnt++) {
    isb64[iscnt] = isuue[iscnt] = isxxe[iscnt] = isbhx[iscnt] = 0;
    islen[iscnt] = -1;
  }

  iscnt = 0;

  if (boundary)
    blen = strlen (boundary);

  while (!feof (datei)) {
    oldposition = ftell (datei);
    if (_FP_fgets (line, line_len, datei) == NULL)
      break;
    if (ferror (datei))
      break;

    /*
     * Make Busy Polls
     */

    if (UUBUSYPOLL(ftell(datei),progress.fsize)) {
      UUMessage (uuscan_id, __LINE__, UUMSG_NOTE,
		 uustring (S_SCAN_CANCEL));
      *errcode = UURET_CANCEL;
      break;
    }

    if (IsLineEmpty (line)) { /* line empty? */
      hcount = 0;
      hadnl  = 1;
      continue;               /* then ignore */
    }

    if (checkheaders) {
      if (IsKnownHeader (line)) {
	(void) ScanHeaderLine (datei, line);

	if (hcount == 0) {
	  preheaders = oldposition;
	  lcount     = 0;
	}
	hcount++;
	lcount++;

	/*
	 * check for the various restart counters
	 */

	if ((hcount >= hlcount.restart) ||
	    (hcount >= hlcount.afterdata && ismime == 0) ||
	    (hcount >= hlcount.afterdata && result->uudet) ||
	    (hcount >= hlcount.afternl   && result->uudet && hadnl)) {
	  /*
	   * Hey, a new header starts here
	   */
	  fseek (datei, preheaders, SEEK_SET);
	  break;
	}
	/* continue; */
      }
      else if (lcount > WAITHEADER) {
	hcount = 0;
	lcount = 0;
	dontcare=0;
      }
      else if (hcount) {
	lcount++;
	dontcare=1;
      }
      else {
	dontcare=0;
      }
    }
    else {
      dontcare=0;
    }

    if (boundary != NULL &&
	line[0] == '-' && line[1] == '-' &&
	strncmp (line+2, boundary, blen) == 0) {
      fseek (datei, oldposition, SEEK_SET);
      break;
    }
    if (boundary != NULL && line[0] == 'C' && line[1] == 'o' &&
	_FP_strnicmp (line, "Content-Type:", 13) == 0) {
      ptr = ScanHeaderLine (datei, line);
      p2  = (ptr)?_FP_stristr(ptr,"boundary"):NULL;
      p3  = (p2)?ParseValue(p2):NULL;

      if (p3 && strcmp (p3, boundary) == 0) {
	fseek (datei, oldposition, SEEK_SET);
	break;
      }
      else {
	p3 = NULL;
      }
    }

    if (strncmp      (line, "begin ",       6) == 0 ||
	_FP_strnicmp (line, "
begin ", 11) == 0) {
      if ((result->begin || result->end ||
	   result->uudet == B64ENCODED ||
	   result->uudet == BH_ENCODED) && !uu_more_mime) {
	fseek (datei, oldposition, SEEK_SET);
	break;
      }

      if (*line == '<')
	ptr = line + 10;
      else
	ptr = line + 5;

      while (*ptr == ' ') ptr++;
      while (isdigit (*ptr))
	result->mode = result->mode * 8 + *ptr++ - '0';
      while (*ptr == ' ') ptr++;

      /*
       * We may have picked up a filename from a uuenview-style header
       */
      _FP_free (result->filename);
      result->filename = _FP_strdup (ptr);
      result->begin    = 1;

      while (isspace (result->filename[strlen(result->filename)-1]))
	result->filename[strlen(result->filename)-1] = '\0';

      continue;
    }

    if ((strncmp (line, "end", 3) == 0) &&
	result->uudet != BH_ENCODED &&
	result->uudet != YENC_ENCODED) {
      if (result->uudet == B64ENCODED && result->begin)
	result->uudet = XX_ENCODED;

      if (result->uudet != B64ENCODED) {
	result->end = 1;
	if (dflag && encoding)
	  result->uudet = encoding;
	continue;
      }
    }

    hadnl = 0;

    /*
     * Detect a UUDeview-Style header
     */

    if (_FP_strnicmp (line, "_=_ Part ", 9) == 0 &&
	result->uudet != YENC_ENCODED) {
      if (result->uudet) {
	fseek (datei, oldposition, SEEK_SET);
	break;
      }
      result->partno = atoi (line + 8);
      if ((ptr = _FP_stristr (line, "of file ")) != NULL) {
	ptr += 8;
	while (isspace (*ptr)) ptr++;
	p2 = ptr;
	while (isalnum(*p2) ||
	       *p2 == '.' || *p2=='_' || *p2 == '-' ||
	       *p2 == '!' || *p2=='@' || *p2 == '$')
	  p2++;
	c = *p2; *p2 = '\0';
	if (p2 != ptr && result->filename == NULL)
	  result->filename = _FP_strdup (ptr);
	else if (p2 - ptr > 5 && strchr (ptr, '.') != NULL) {
	  /*
	   * This file name looks good, too. Let's use it
	   */
	  _FP_free (result->filename);
	  result->filename = _FP_strdup (ptr);
	}
	*p2 = c;
      }
    }

    /*
     * Some reduced MIME handling. Only use if boundary == NULL. Also
     * accept the "X-Orcl-Content-Type" used by some braindead program.
     */
    if (boundary == NULL && !ismime && !uu_more_mime &&
	result->uudet != YENC_ENCODED) {
      if (_FP_strnicmp (line, "Content-Type", 12) == 0 ||
	  _FP_strnicmp (line, "X-Orcl-Content-Type", 19) == 0) {
	/*
	 * We use Content-Type to mark a new attachment and split the file.
	 * However, we do not split if we haven't found anything encoded yet.
	 */
	if (result->uudet) {
	  fseek (datei, oldposition, SEEK_SET);
	  break;
	}
	if ((ptr = strchr (line, ':')) != NULL) {
	  ptr++;
	  while (isspace (*ptr)) ptr++; p2 = ptr;
	  while (!isspace (*p2) && *p2 != ';') p2++;
	  c = *p2; *p2 = '\0';
	  if (p2 != ptr) {
	    _FP_free (result->mimetype);
	    result->mimetype = _FP_strdup (ptr);
	  }
	  *p2 = c;
	}
	ctline=0;
	hadct=1;
      }
      if ((ptr = _FP_stristr (line, "number=")) && ctline<4) {
	ptr += 7; if (*ptr == '"') ptr++;
	result->partno = atoi (ptr);
      }
      if ((ptr = _FP_stristr (line, "total=")) && ctline<4) {
	ptr += 6; if (*ptr == '"') ptr++;
	result->maxpno = atoi (ptr);
      }
      if ((ptr = _FP_stristr (line, "name=")) && ctline<4) {
	ptr += 5;
	while (isspace (*ptr)) ptr++;
	if (*ptr == '"' && *(ptr+1) && (p2 = strchr (ptr+2, '"')) != NULL) {
	  c = *p2; *p2 = '\0';
	  _FP_free (result->filename);
	  result->filename = _FP_strdup (ptr+1);
	  *p2 = c;
	}
	else if (*ptr=='\''&&*(ptr+1)&&(p2 = strchr(ptr+2, '\'')) != NULL) {
	  c = *p2; *p2 = '\0';
	  _FP_free (result->filename);
	  result->filename = _FP_strdup (ptr+1);
	  *p2 = c;
	}
	else {
	  p2 = ptr;
	  while (isalnum(*p2) ||
		 *p2 == '.' || *p2=='_' || *p2 == '-' ||
		 *p2 == '!' || *p2=='@' || *p2 == '$')
	    p2++;
	  c = *p2; *p2 = '\0';
	  if (p2 != ptr && result->filename == NULL)
	    result->filename = _FP_strdup (ptr);
	  else if (p2 - ptr > 5 && strchr (ptr, '.') != NULL) {
	    /*
	     * This file name looks good, too. Let's use it
	     */
	    _FP_free (result->filename);
	    result->filename = _FP_strdup (ptr);
	  }
	  *p2 = c;
	}
      }
      if ((ptr = _FP_stristr (line, "id=")) && ctline<4) {
	p2 = ptr += 3;
	if (*p2 == '"') {
	  p2 = strchr (++ptr, '"');
	}
	else {
	  while (*p2 && isprint(*p2) && !isspace(*p2) && *p2 != ';')
	    p2++;
	}
	if (p2 && *p2 && p2!=ptr) {
	  c = *p2; *p2 = '\0';
	  if (result->mimeid)
	    _FP_free (result->mimeid);
	  result->mimeid = _FP_strdup (ptr);
	  *p2 = c;
	}
      }

      /*
       * Handling for very short Base64 files.
       */
      if (uu_tinyb64 && !ismime && !uu_more_mime) {
	if (line[0] == '-' && line[1] == '-') {
	  if (dflag && (encoding==B64ENCODED || result->uudet==B64ENCODED)) {
	    if (encoding==B64ENCODED && result->uudet==0 && (haddh||hadct)) {
	      result->uudet = encoding;
	      encoding = dflag = 0;
	    }
	    haddh = 1;
	    continue;
	  }
	  hadct = 0;
	}
      }
    } /* end of reduced MIME handling */

    /*
     * If we're in "freestyle" mode, have not encountered anything
     * interesting yet, and stumble upon something that looks like
     * a boundary, followed by a Content-* line, try to use it.
     */

    if (boundary == NULL && !ismime && !uu_more_mime && dflag <= 1 &&
	line[0] == '-' && line[1] == '-' && strlen(line+2)>10 &&
	(((ptr = _FP_strrstr (line+2, "--")) == NULL) ||
	 (*(ptr+2) != '\012' && *(ptr+2) != '\015')) &&
	_FP_strstr (line+2, "_=_") != NULL) {
      if (_FP_fgets (line, line_len, datei) == NULL) {
	break;
      }
      if (_FP_strnicmp (line, "Content-", 8) == 0) {
	/*
	 * Okay, let's do it. This breaks out of ScanData. ScanPart will
	 * recognize the boundary on the next call and use it.
	 */
	fseek (datei, oldposition, SEEK_SET);
	break;
      }
    }

    /*
     * Detection for yEnc encoding
     */

    if (strncmp (line, "=ybegin ", 8) == 0 &&
	_FP_strstr (line, " name=") != NULL) {
      if ((result->begin || result->end || result->uudet) && !uu_more_mime) {
	fseek (datei, oldposition, SEEK_SET);
	break;
      }

      /*
       * name continues to the end of the line
       */

      _FP_free (result->filename);
      ptr = _FP_strstr (line, " name=") + 6;
      result->filename = _FP_strdup (ptr);

      while (isspace (result->filename[strlen(result->filename)-1]))
	result->filename[strlen(result->filename)-1] = '\0';

      /*
       * Determine size
       */

      if ((ptr = _FP_strstr (line, " size=")) != NULL) {
	ptr += 6;
	yefilesize = atoi (ptr);
      }
      else {
	yefilesize = -1;
      }

      /*
       * check for multipart file and read =ypart line
       */

      if ((ptr = _FP_strstr (line, " part=")) != NULL) {
	result->partno = atoi (ptr + 6);

	if (result->partno == 1) {
	  result->begin = 1;
	}

	if (_FP_fgets (line, line_len, datei) == NULL) {
	  break;
	}

	if (strncmp (line, "=ypart ", 7) != 0) {
	  break;
	}

	if ((ptr = _FP_strstr (line, " end=")) == NULL) {
	  break;
	}

	yepartends = atoi (ptr + 5);
      }
      else {
	result->partno = 1;
	result->begin = 1;
      }

      /* don't scan for headers inside a yenc block */
      oldcheckheaders = checkheaders;
      checkheaders = 0;

      /*
       * Don't want auto-detection
       */
      result->uudet = YENC_ENCODED;
      continue;
    }

    if (strncmp (line, "=yend ", 6) == 0 &&
	result->uudet == YENC_ENCODED) {
      if (yepartends == 0 || yepartends >= yefilesize) {
	result->end = 1;
      }
#if 0
      if (!uu_more_mime)
	break;
#endif

      /* restore the checkheaders state we had before =ybegin */
      checkheaders = oldcheckheaders;
      continue;
    }

    /*
     * if we haven't yet found anything encoded, try to find something
     */

    if (!(result->uudet)) {
      /*
       * Netscape-Repair code is the same as in uunconc.c
       */

      if ((vflag = UUValidData (line, 0, &bhflag)) == 0 && !ismime)
	vflag = UURepairData (datei, line, 0, &bhflag);

      /*
       * Check data against all possible encodings
       */

      islen[iscnt%10] = strlen(line);
      isb64[iscnt%10] = (UUValidData (line, B64ENCODED, &bhflag)==B64ENCODED);
      isuue[iscnt%10] = (UUValidData (line, UU_ENCODED, &bhflag)==UU_ENCODED);
      isxxe[iscnt%10] = (UUValidData (line, XX_ENCODED, &bhflag)==XX_ENCODED);
      isbhx[iscnt%10] = (UUValidData (line, BH_ENCODED, &bhflag)==BH_ENCODED);

      /*
       * If we've got a first valid encoded line, we get suspicious if
       * it's shorter than, say, 40 characters.
       */

      if (vflag == B64ENCODED &&
	  (dflag == 0 || encoding != B64ENCODED) &&
	  strlen (line) < 40 && !result->begin && !uu_tinyb64) {
	isb64[iscnt%10] = 0;
	vflag = 0;
      }

      if ((vflag == UU_ENCODED || vflag == XX_ENCODED) &&
	      (dflag == 0 || encoding != vflag) &&
	      strlen (line) < 40 && !result->begin) {
	isuue[iscnt%10] = isxxe[iscnt%10] = 0;
	vflag = 0;
      }

      iscnt++;

      /*
       * Ah, so we got an encoded line? How interesting!
       */

      if (vflag) {
	/*
	 * For BinHex data, we can use the initial colon ':' as begin
	 * and the terminating colon as ':'.
	 * If (vflag && !bhflag), this is the last line,
	 */
	if (vflag == BH_ENCODED) {
	  if (line[0] == ':' && result->end) {
	    fseek (datei, oldposition, SEEK_SET);
	    break;
	  }
	  if (line[0] == ':')
	    result->begin = 1;
	  if (bhflag == 0) {
	    result->uudet = BH_ENCODED;
	    result->end   = 1;
	  }
	}
	/*
	 * For BinHex files, the file name is encoded in the first encoded
	 * data bytes. We try to extract it here
	 */
	if (vflag == BH_ENCODED && bhnf == 0 && result->filename == NULL) {
	  if (bhdsp == bhds2 ||
	      ((bhdsp-bhds2) <= (int) bhds2[0] &&
	       (bhdsp-bhds2) <  256)) {
	    dcc = UUDecodeLine (line, bhds1, BH_ENCODED);
	    UUbhdecomp (bhds1, bhdsp, &bhl, &bhrpc,
			dcc, 256-(bhdsp-bhds2), &bhopc);
	    bhdsp += bhopc;
	  }
	  if ((bhdsp-bhds2) > (int) bhds2[0] && bhds2[0]>0 &&
	      result->filename==NULL) {
	    memcpy (bhds1, bhds2+1, (int) bhds2[0]);
	    bhds1[(int)bhds2[0]]='\0';
	    result->filename = _FP_strdup (bhds1);
	    bhnf             = 1;
	  }
	  else if (bhdsp-bhds2 >= 256 && bhds2[0]>0) {
	    memcpy (bhds1, bhds2+1, 255);
	    bhds1[255]       = '\0';
	    result->filename = _FP_strdup (bhds1);
	    bhnf             = 1;
	  }
	  else if (bhds2[0] <= 0)
	    bhnf = 1;
	}

	/*
	 * We accept an encoding if it has been true for four consecutive
	 * lines. Check the is arrays to avoid mistaking one encoding
	 * for the other. Uuencoded data is rather easily mistaken for
	 * Base 64. If the data matches more than one encoding, we need to
	 * scan further.
	 *
	 * Since text can also rather easily be mistaken for UUencoded
	 * data if it just happens to have 4 lines in a row that have the
	 * correct first character for the length of the line, we also add
	 * a check that the first 3 lines must be the same length, and the
	 * 4th line must be less than or equal to that length. (since
	 * uuencoders use the same length for all lines except the last,
	 * this shouldn't increase the minimum size of UUdata we can
	 * detect, as it would if we tested all 4 lines for being the same
	 * length.)  - Matthew Mueller, 20030109
	 */

	if (iscnt > 3) {
	  cbb64 = (isb64[(iscnt-1)%10] && isb64[(iscnt-2)%10] &&
		   isb64[(iscnt-3)%10] && isb64[(iscnt-4)%10]);
	  cbuue = (isuue[(iscnt-1)%10] && isuue[(iscnt-2)%10] &&
		   isuue[(iscnt-3)%10] && isuue[(iscnt-4)%10] &&
		   islen[(iscnt-1)%10] <= islen[(iscnt-2)%10] &&
		   islen[(iscnt-2)%10] == islen[(iscnt-3)%10] &&
		   islen[(iscnt-3)%10] == islen[(iscnt-4)%10]);
	  cbxxe = (isxxe[(iscnt-1)%10] && isxxe[(iscnt-2)%10] &&
		   isxxe[(iscnt-3)%10] && isxxe[(iscnt-4)%10] &&
		   islen[(iscnt-1)%10] <= islen[(iscnt-2)%10] &&
		   islen[(iscnt-2)%10] == islen[(iscnt-3)%10] &&
		   islen[(iscnt-3)%10] == islen[(iscnt-4)%10]);
	  cbbhx = (isbhx[(iscnt-1)%10] && isbhx[(iscnt-2)%10] &&
		   isbhx[(iscnt-3)%10] && isbhx[(iscnt-4)%10]);
	}
	else {
	  cbb64 = cbuue = cbxxe = cbbhx = 0;
	}

	if (cbb64 && !cbuue && !cbxxe && !cbbhx) {
	  result->uudet = B64ENCODED;
	}
	else if (!cbb64 && cbuue && !cbxxe && !cbbhx) {
	  result->uudet = UU_ENCODED;
	}
	else if (!cbb64 && !cbuue && cbxxe && !cbbhx) {
	  result->uudet = XX_ENCODED;
	}
	else if (!cbb64 && !cbuue && !cbxxe && cbbhx) {
	  result->uudet = BH_ENCODED;
	}

	if (result->uudet) {
          encoding = dflag = 0;

	  /*
	   * If we're in fast mode, we're told we don't have to look
	   * for anything below, so we can as well break out of every-
	   * thing
	   * We cannot fast-scan if we have a boundary to look after.
	   */

	  if (uu_fast_scanning && boundary == NULL)
	    break;

	  /*
	   * Skip the encoded data. We simply wait for a boundary, for
	   * a header or for an empty line. But we also try to pick up
	   * an "end"
	   */

	  hcount = lcount = 0;

	  while (!feof (datei)) {
	    /*
	     * Make Busy Polls
	     */
	    if (UUBUSYPOLL(ftell(datei),progress.fsize)) {
	      UUMessage (uuscan_id, __LINE__, UUMSG_NOTE,
			 uustring (S_SCAN_CANCEL));
	      *errcode = UURET_CANCEL;
	      break;
	    }

	    oldposition = ftell (datei);
	    if (_FP_fgets (line, line_len, datei) == NULL)
	      break;
	    if (ferror (datei))
	      break;

	    /*
	     * Stop scanning at an empty line or a MIME-boundary.
	     */
	    if (IsLineEmpty (line))
	      break;
	    if (boundary && line[0] == '-' && line[1] == '-' &&
		strncmp (line+2, boundary, blen) == 0) {
	      fseek (datei, oldposition, SEEK_SET);
	      break;
	    }
	    else if (line[0] == 'e' && (result->uudet == UU_ENCODED ||
					result->uudet == XX_ENCODED)) {
	      if (strncmp (line, "end", 3) == 0) {
		result->end = 1;
		break;
	      }
	    }
	    else if (line[0] == 'b') {
	      if (strncmp (line, "begin ", 6) == 0) {
		fseek (datei, oldposition, SEEK_SET);
		break;
	      }
	    }

	    if (checkheaders) {
	      if (IsKnownHeader (line)) {
		(void) ScanHeaderLine (datei, line);
		if (hcount == 0)
		  preheaders = oldposition;
		hcount++;
		lcount++;
		if ((hcount >= hlcount.restart) ||
		    (hcount >= hlcount.afterdata && result->uudet)) {
		  /*
		   * Hey, a new header starts here
		   */
		  fseek (datei, preheaders, SEEK_SET);
		  break;
		}
	      }
	      else if (lcount > WAITHEADER) {
		hcount = 0;
		lcount = 0;
	      }
	      else if (hcount) {
		lcount++;
	      }
	    }
	    if (result->uudet == BH_ENCODED) {
	      /* pick up ``EOF'' for BinHex files. Slow :-< */
	      if (line[0] && strchr (line+1, ':') != NULL) {
		result->end = 1;
		bhflag      = 0;
		break;
	      }
	    }
	  }

	  if (ferror (datei) || *errcode == UURET_CANCEL)
	    break;

	  if (line[0] == '-' && line[1] == '-')
	    haddh = 1;

	  /*
	   * Okay, got everything we need. If we had headers or a
	   * boundary, we break out of the outer loop immediately.
	   */

	  if (IsKnownHeader (line) ||
	      (boundary && line[0] == '-' && line[1] == '-' &&
	       strncmp (line+2, boundary, blen) == 0)) {
	    break;
	  }

	  /*
	   * Otherwise, we wait until finding something more interesting
	   * in the outer loop
	   */

	  continue;
	}

	/*
	 * Select the encoding with the best "history"
	 */

	cbb64 = isb64[(iscnt-1)%10];
	cbuue = isuue[(iscnt-1)%10];
	cbxxe = isxxe[(iscnt-1)%10];
	cbbhx = isbhx[(iscnt-1)%10];
	dflag = 0;

	if (cbb64 || cbuue || cbxxe || cbbhx) {
	  for (dflag=2; dflagbegin) {
	  encoding = UU_ENCODED;
	}
	else if (!encoding && cbxxe && result->begin) {
	  encoding = XX_ENCODED;
	}
	else if (!encoding && cbb64) {
	  encoding = B64ENCODED;
	}
	else if (!encoding && cbuue) {
	  encoding = UU_ENCODED;
	}
	else if (!encoding && cbxxe) {
	  encoding = XX_ENCODED;
	}
	else if (!encoding && cbbhx) {
	  encoding = BH_ENCODED;
	}
      }
      else if (!dontcare) {
	encoding = 0;
        dflag = 0;
	haddh = 0;
      }
    } /* if (!uudet) */
    /*
     * End of scanning loop
     */
  } /* while (!feof (datei)) */

  if (feof (datei))
    oldposition = ftell (datei);

  if (dflag && encoding == B64ENCODED && haddh)
    result->uudet = B64ENCODED;
  else if (dflag && encoding == BH_ENCODED)
    result->uudet = BH_ENCODED;

  /* Base64 doesn't have begin or end, so it was probably XX */
  if (result->uudet == B64ENCODED && result->begin && result->end)
    result->uudet = XX_ENCODED;

  /* Base64 doesn't have begin or end */
  if (result->uudet == B64ENCODED)
    result->begin = result->end = 0;

  /* Base64 and BinHex don't have a file mode */
  if (result->uudet == B64ENCODED || result->uudet == BH_ENCODED ||
      result->uudet == YENC_ENCODED)
    result->mode  = 6*64+4*8+4;

  /*
   * When strict MIME adherance is set, throw out suspicious attachments
   */

  if (uu_more_mime) {
    /*
     * In a MIME message, Base64 should be appropriately tagged
     */

    if (result->uudet == B64ENCODED) {
      result->uudet = 0;
    }

    /*
     * Do not accept incomplete UU or XX encoded messages
     */

    if ((result->uudet != 0 && result->uudet != B64ENCODED) &&
	(!result->begin || !result->end)) {
      result->uudet = 0;
    }
  }

  /*
   * In fast mode, this length will yield a false value. We don't care.
   * This must be checked for in uunconc(), where we usually stop decoding
   * after reaching startpos+length
   */

  if (uu_fast_scanning)
    result->length = progress.fsize-result->startpos;
  else
    result->length = ftell(datei)-result->startpos;

  if (ferror (datei)) {
    *errcode = UURET_IOERR;
    uu_errno = errno;
    return -1;
  }
  if (*errcode != UURET_OK) {
    return -1;
  }

  if (boundary && line[0] == '-' && line[1] == '-' &&
      strncmp (line+2, boundary, blen) == 0)
    return 2;
  else if (boundary && p3 &&
	   line[0] == 'C' && line[1] == 'o' &&
	   _FP_strnicmp (line, "Content-Type:", 13) == 0 &&
	   strcmp (p3, boundary) == 0)
    return 2;
  else if (IsKnownHeader (line))
    return 1;

  return 0;
}

/*
 * This is the main scanning function.
 */

fileread *
ScanPart (FILE *datei, char *fname, int *errcode)
{
  int ecount, hcount, lcount;
  int bhflag, begflag, vflag, blen=0, res;
  long preheaders, prevpos=0, preenc, before;
  char *line=uuscan_spline;
  const int line_len = UUSCAN_SPLINE_LEN;
  fileread *result;
  char *ptr1, *ptr2;

  (void) UUDecodeLine (NULL, NULL, 0);          /* init */
  if (datei == NULL || feof (datei)) {
    *errcode = UURET_OK;
    return NULL;
  }

  *errcode = UURET_OK;

  if ((result = (fileread *) malloc (sizeof (fileread))) == NULL) {
    *errcode = UURET_NOMEM;
    return NULL;
  }
  memset (result, 0, sizeof (fileread));
  result->startpos = ftell (datei);
  preheaders       = result->startpos;
  before           = result->startpos;

  /* if this is a new file, reset our scanning state */
  if (sstate.source == NULL || strcmp (fname, sstate.source) != 0) {
    sstate.isfolder  = 1;		/* assume yes            */
    sstate.ismime    = 0;		/* wait for MIME-Version */
    sstate.mimestate = MS_HEADERS;	/* assume headers follow */
    /* mimseqno      = 1; */

    while (mssdepth) {
      mssdepth--;
      UUkillheaders (&(multistack[mssdepth].envelope));
      _FP_free (multistack[mssdepth].source);
    }

    UUkillheaders (&sstate.envelope);
    memset (&sstate.envelope, 0, sizeof (headers));

    _FP_free (sstate.source);
    if ((sstate.source = _FP_strdup (fname)) == NULL) {
      *errcode = UURET_NOMEM;
      _FP_free (result);
      return NULL;
    }

    /* ignore empty lines at the beginning of a file */
    preheaders = ftell (datei);
    while (!feof (datei)) {
      if (UUBUSYPOLL(ftell(datei),progress.fsize)) SPCANCEL();
      if (_FP_fgets (line, line_len, datei) == NULL)
	break;
      if (!IsLineEmpty (line)) {
	fseek (datei, preheaders, SEEK_SET);
	break;
      }
      preheaders = ftell (datei);
    }
  }

  if (ferror(datei) || feof(datei)) {
    _FP_free (result);
    return NULL;
  }

  /*
   * If we are confident that this is a mail folder and are at the
   * beginning of the file, expecting to read some headers, scan
   * the envelope.
   */

  if (sstate.isfolder && sstate.mimestate == MS_HEADERS) {
    hcount = 0;
    lcount = 0;
    UUkillheaders (&sstate.envelope);

    /*
     * clean up leftovers from invalid messages
     */

    while (mssdepth) {
      mssdepth--;
      UUkillheaders (&(multistack[mssdepth].envelope));
      _FP_free (multistack[mssdepth].source);
    }

    prevpos = ftell (datei);
    if (_FP_fgets (line, line_len, datei) == NULL) {
      _FP_free (result);
      return NULL;
    }

    /*
     * Special handling for AOL folder files, which start off with a boundary.
     * We recognize them by a valid boundary line as the first line of a file.
     * Note that the rest of the scanning code becomes suspicious if a boun-
     * dary does never appear in a file -- this should save us from grave
     * false detection errors
     */

    if (!feof (datei) && line[0] == '-' && line[1] == '-' && line[2]) {
      while (line[strlen(line)-1] == '\012' ||
	     line[strlen(line)-1] == '\015') {
	line[strlen(line)-1] = '\0';
      }

      sstate.ismime            = 1;
      sstate.envelope.mimevers = _FP_strdup ("1.0");
      sstate.envelope.boundary = _FP_strdup (line+2);
      sstate.envelope.ctype    = _FP_strdup ("multipart/mixed");
      sstate.mimestate         = MS_SUBPART;

      *errcode = UURET_CONT;
      _FP_free (result);
      return NULL;
    }

    /*
     * Normal behavior: look for a RFC 822 header
     */

    while (!feof (datei) && !IsLineEmpty (line)) {
      if (IsKnownHeader (line))
	hcount++;
      if (UUBUSYPOLL(ftell(datei),progress.fsize)) SPCANCEL();
      if (IsHeaderLine (line)) {
	ptr1 = ScanHeaderLine (datei, line);
	if (ParseHeader (&sstate.envelope, ptr1) == NULL) {
	  *errcode = UURET_NOMEM;
	  _FP_free (result);
	  return NULL;
	}
      }
      /*
       * if we've read too many lines without finding headers, then
       * this probably isn't a mail folder after all
       */
      lcount++;
      if (lcount > WAITHEADER && hcount < hlcount.afternl) {
	fseek (datei, prevpos, SEEK_SET);
	line[0] = '\0';
	break;
      }

      if (_FP_fgets (line, line_len, datei) == NULL)
	break;
    }

    /* skip empty lines */
    prevpos = ftell (datei);
    if (IsLineEmpty (line)) {
      while (!feof (datei)) {
	if (_FP_fgets (line, line_len, datei) == NULL)
	  break;
	if (UUBUSYPOLL(ftell(datei),progress.fsize)) SPCANCEL();
	if (!IsLineEmpty (line)) {
	  fseek (datei, prevpos, SEEK_SET);
	  break;
	}
	prevpos = ftell (datei);
      }
    }

    /*
     * If we don't have all valid MIME headers yet, but the following
     * line is a MIME header, accept it anyway.
     */

    if (!uu_more_mime &&
	sstate.envelope.mimevers == NULL &&
	sstate.envelope.ctype    == NULL &&
	sstate.envelope.ctenc    == NULL &&
	IsKnownHeader (line)) {
      /*
       * see above
       */
      if (_FP_fgets (line, line_len, datei) == NULL) {
	line[0] = '\012';
	line[1] = '\0';
      }

      while (!feof (datei) && !IsLineEmpty (line)) {
	if (IsKnownHeader (line))
	  hcount++;
	if (UUBUSYPOLL(ftell(datei),progress.fsize)) SPCANCEL();
	ptr1 = ScanHeaderLine (datei, line);
	if (ParseHeader (&sstate.envelope, ptr1) == NULL) {
	  *errcode = UURET_NOMEM;
	  _FP_free (result);
	  return NULL;
	}
	if (_FP_fgets (line, line_len, datei) == NULL)
	  break;
      }
      /* skip empty lines */
      prevpos = ftell (datei);
      while (!feof (datei)) {
	if (_FP_fgets (line, line_len, datei) == NULL)
	  break;
	if (UUBUSYPOLL(ftell(datei),progress.fsize)) SPCANCEL();
	if (!IsLineEmpty (line)) {
	  fseek (datei, prevpos, SEEK_SET);
	  break;
	}
	prevpos = ftell (datei);
      }
    }

    /*
     * A partial multipart message probably has only a Content-Type
     * header but nothing else. In this case, at least simulate a
     * MIME message
     * if mimevers is not set but there are other well-known MIME
     * headers, don't be too picky about it.
     */
    if (sstate.envelope.ctype && sstate.envelope.mimevers==NULL  &&
	_FP_stristr (sstate.envelope.ctype, "multipart") != NULL &&
	sstate.envelope.boundary != NULL) {
      sstate.envelope.mimevers = _FP_strdup ("1.0");
      hcount = hlcount.afternl;
    }
    else if (sstate.envelope.mimevers==NULL && sstate.envelope.ctype &&
	     sstate.envelope.fname && sstate.envelope.ctenc) {
      sstate.envelope.mimevers = _FP_strdup ("1.0");
      hcount = hlcount.afternl;
    }

    if (sstate.envelope.mimevers != NULL) {
      /* this is a MIME file. check the Content-Type */
      sstate.ismime = 1;
      if (_FP_stristr (sstate.envelope.ctype, "multipart") != NULL) {
	if (sstate.envelope.boundary == NULL) {
	  UUMessage (uuscan_id, __LINE__, UUMSG_WARNING,
		     uustring (S_MIME_NO_BOUNDARY));
	  sstate.mimestate = MS_BODY;
	  _FP_free (sstate.envelope.ctype);
	  sstate.envelope.ctype = _FP_strdup ("text/plain");
	}
	else {
	  sstate.mimestate = MS_PREAMBLE;
	}
      }
      else {
	sstate.mimestate = MS_BODY;	/* just a `simple' message */
      }
    }
    else {
      /* not a folder after all */
      fseek (datei, prevpos, SEEK_SET);
      sstate.isfolder = 0;
      sstate.ismime   = 0;
    }
  }

  if (feof (datei) || ferror (datei)) { /* oops */
    _FP_free (result);
    return NULL;
  }

  /*
   * Handle MIME stuff
   */

  /*
   * Read Preamble. This must be ended by a sstate.envelope.boundary line.
   * If uu_usepreamble is set, we produce a result from this one
   */

  if (sstate.ismime && sstate.mimestate == MS_PREAMBLE) {
    result->startpos = ftell (datei);	/* remember start of preamble */
    prevpos          = ftell (datei);
    preheaders       = ftell (datei);

    blen   = strlen (sstate.envelope.boundary);
    lcount = 0;

    while (!feof (datei)) {
      if (_FP_fgets (line, line_len, datei) == NULL)
	break;
      if (UUBUSYPOLL(ftell(datei),progress.fsize)) SPCANCEL();
      if (line[0] == '-' && line[1] == '-' &&
	  strncmp (line+2, sstate.envelope.boundary, blen) == 0)
	break;
      if (!IsLineEmpty (line))
	lcount++;

      prevpos = ftell (datei);
    }
    if (feof (datei) || ferror (datei)) {
      UUMessage (uuscan_id, __LINE__, UUMSG_WARNING,
		 uustring (S_MIME_B_NOT_FOUND));
      /*
       * restart and try again; don't restart if uu_fast_scanning
       */
      sstate.isfolder  = 0;
      sstate.ismime    = 0;
      sstate.mimestate = MS_BODY;

      if (!uu_fast_scanning) {
	*errcode = UURET_CONT;
	fseek (datei, preheaders, SEEK_SET);
      }
      _FP_free (result);
      return NULL;
    }
    if (line[0] == '-' && line[1] == '-' &&
	strncmp (line+2, sstate.envelope.boundary, blen) == 0) {
      ptr1 = line + 2 + blen;
      if (*ptr1 == '-' && *(ptr1+1) == '-') {
	/* Empty Multipart Message. Duh. */
	sstate.mimestate = MS_EPILOGUE;
      }
      else {
	sstate.mimestate = MS_SUBPART;
      }
    }
    else { /* shouldn't happen */
      UUMessage (uuscan_id, __LINE__, UUMSG_WARNING,
		 uustring (S_MIME_B_NOT_FOUND));
      /*
       * restart and try again; don't restart if uu_fast_scanning
       */
      sstate.isfolder  = 0;
      sstate.ismime    = 0;
      sstate.mimestate = MS_BODY;

      if (!uu_fast_scanning) {
	*errcode = UURET_CONT;
	fseek (datei, preheaders, SEEK_SET);
      }
      _FP_free (result);
      return NULL;
    }
    /* produce result if uu_usepreamble is set */
    if (uu_usepreamble && lcount) {
      sprintf (line, "%04d.txt", ++mimseqno);
      result->subject  = _FP_strdup (sstate.envelope.subject);
      result->filename = _FP_strdup (line);
      result->origin   = _FP_strdup (sstate.envelope.from);
      result->mimeid   = _FP_strdup (sstate.envelope.mimeid);
      result->mimetype = _FP_strdup ("text/plain");
      result->mode     = 0644;
      result->uudet    = PT_ENCODED;	/* plain text */
      result->sfname   = _FP_strdup (fname);
      result->flags    = FL_SINGLE | FL_PROPER;
      /* result->startpos set from above */
      result->length   = prevpos - result->startpos;
      result->partno   = 1;

      /* MIME message, let's continue */
      *errcode = UURET_CONT;

      if ((sstate.envelope.subject != NULL && result->subject == NULL) ||
	  result->filename == NULL || result->sfname == NULL) {
	*errcode = UURET_NOMEM;
      }

      return result;
    }
    /* MIME message, let's continue */
    if (*errcode == UURET_OK)
      *errcode = UURET_CONT;

    /* otherwise, just return NULL */
    _FP_free (result);
    return NULL;
  }

  /*
   * Read Epilogue, the plain text after the last boundary.
   * This can either end with new headers from the next message of a
   * mail folder or with a `parent' boundary if we are inside an
   * encapsulated Multipart message. Oh yes, and of course the file
   * may also simply end :-)
   * Another possibility is that we might find plain encoded data
   * without encapsulating message. We're not _too_ flexible here,
   * we won't detect Base64, and require a proper `begin' line for
   * uuencoding and xxencoding
   * If uu_usepreamble is set, we produce a result from this one
   */

  if (sstate.ismime && sstate.mimestate == MS_EPILOGUE) {
    result->startpos = ftell (datei);	/* remember start of epilogue */
    prevpos          = ftell (datei);
    preheaders       = ftell (datei);
    preenc           = ftell (datei);
    hcount = lcount  = 0;
    ecount = bhflag  = 0;
    begflag = vflag  = 0;
    res = 0;

    /*
     * If we are in the outermost message and uu_fast_scanning, we
     * know (or assume) that no more messages will follow, so there's
     * no need to scan the rest.
     */
    if (uu_fast_scanning && mssdepth == 0) {
      /*
       * check if the epilogue is empty
       */
      while (!feof (datei) && !ferror (datei) && lcount<10 && res==0) {
	if (_FP_fgets (line, line_len, datei) == NULL)
	  break;
	if (!IsLineEmpty (line))
	  res++;
	lcount++;
      }
      if (uu_usepreamble && res) {
	sprintf (line, "%04d.txt", ++mimseqno);
	result->subject  = _FP_strdup (sstate.envelope.subject);
	result->filename = _FP_strdup (line);
	result->origin   = _FP_strdup (sstate.envelope.from);
	result->mimeid   = _FP_strdup (sstate.envelope.mimeid);
	result->mimetype = _FP_strdup ("text/plain");
	result->mode     = 0644;
	result->uudet    = PT_ENCODED;	/* plain text */
	result->sfname   = _FP_strdup (fname);
	result->flags    = FL_SINGLE | FL_PROPER | FL_TOEND;
	result->partno   = 1;
	/* result->startpos set from above */
	result->length   = progress.fsize - result->startpos;

	if ((sstate.envelope.subject != NULL && result->subject == NULL) ||
	    result->filename == NULL || result->sfname == NULL) {
	  *errcode = UURET_NOMEM;
	}

	return result;
      }
      _FP_free (result);
      return NULL;
    }

    if (mssdepth > 0)
      blen = strlen (multistack[mssdepth-1].envelope.boundary);

    while (!feof (datei)) {
      if (_FP_fgets (line, line_len, datei) == NULL)
	break;
      if (UUBUSYPOLL(ftell(datei),progress.fsize)) SPCANCEL();
      /* check for parent boundary */
      if (mssdepth > 0 && line[0] == '-' && line[1] == '-' &&
	  strncmp (line+2,
		   multistack[mssdepth-1].envelope.boundary, blen) == 0)
	break;

      /* check for next headers only at outermost level */
      if (mssdepth == 0 && IsKnownHeader (line)) {
	(void) ScanHeaderLine (datei, line);
	if (hcount == 0) {
	  preheaders = prevpos;
	  lcount     = 0;
	}
	hcount++;
	lcount++;

	if (hcount >= hlcount.restart) {
	  /* okay, new headers */
	  break;
	}
      }
      else if (lcount > WAITHEADER) {
	hcount = 0;
	lcount = 0;
      }
      else if (hcount) {
	lcount++;
      }
      else {
	hcount = lcount = 0;
      }

      /* check for begin and encoded data only at outermost level */
      if (mssdepth == 0 && !uu_more_mime) {
	if (strncmp      (line, "begin ",       6) == 0 ||
	    _FP_strnicmp (line, "
begin ", 11) == 0) {
	  preenc  = prevpos;
	  begflag = 1;
	}
	else if (strncmp (line, "end", 3) == 0 && begflag) {
	  ecount = ELC_COUNT;
	  break;
	}
	else if ((vflag = UUValidData (line, 0, &bhflag)) != 0) {
	  if (vflag == BH_ENCODED && bhflag == 0) {
	    /* very short BinHex file follows */
	    preenc = prevpos;
	    break;
	  }
	  /* remember that XX can easily be mistaken as Base64 */
	  if ((vflag == UU_ENCODED || vflag == XX_ENCODED ||
	       vflag == B64ENCODED) && begflag) {
	    if (++ecount >= ELC_COUNT)
	      break;
	  }
	  else {
	    begflag = 0;
	    ecount  = 0;
	  }
	}
	else {
	  begflag = 0;
	  ecount  = 0;
	}
      }

      if (!IsLineEmpty (line))
	res++;

      prevpos = ftell (datei);
    }

    if (mssdepth > 0 &&	line[0] == '-' && line[1] == '-' &&
	strncmp (line+2,
		 multistack[mssdepth-1].envelope.boundary, blen) == 0) {
      /* restore previous state */
      mssdepth--;
      UUkillheaders (&sstate.envelope);
      _FP_free  (sstate.source);
      memcpy (&sstate, &(multistack[mssdepth]), sizeof (scanstate));

      ptr1 = line + 2 + strlen (sstate.envelope.boundary);

      if (*ptr1 == '-' && *(ptr1+1) == '-') {
	sstate.mimestate = MS_EPILOGUE;
      }
      else {
	sstate.mimestate = MS_SUBPART;
      }
      result->length = prevpos - result->startpos;
      *errcode = UURET_CONT;
    }
    else if (mssdepth > 0) {
      UUMessage (uuscan_id, __LINE__, UUMSG_WARNING,
		 uustring (S_MIME_B_NOT_FOUND));
      /*
       * restart and try again; don't restart if uu_fast_scanning
       */
      sstate.isfolder  = 0;
      sstate.ismime    = 0;
      sstate.mimestate = MS_BODY;

      while (mssdepth) {
	mssdepth--;
	UUkillheaders (&(multistack[mssdepth].envelope));
	_FP_free (multistack[mssdepth].source);
      }

      if (!uu_fast_scanning) {
	*errcode = UURET_CONT;
	fseek (datei, preheaders, SEEK_SET);
      }
      _FP_free (result);
      return NULL;
    }
    else if (IsKnownHeader (line)) {
      /* new message follows */
      sstate.isfolder  = 1;
      sstate.ismime    = 0;
      sstate.mimestate = MS_HEADERS;
      result->length   = preheaders - result->startpos;
      fseek (datei, preheaders, SEEK_SET);
    }
    else if (ecount >= ELC_COUNT) {
      /* new plain encoding */
      sstate.isfolder  = 0;
      sstate.ismime    = 0;
      sstate.mimestate = MS_BODY;
      result->length   = preenc - result->startpos;
      fseek (datei, preenc, SEEK_SET);
    }

    /* produce result if uu_usepreamble is set */
    if (uu_usepreamble && res) {
      sprintf (line, "%04d.txt", ++mimseqno);
      result->subject  = _FP_strdup (sstate.envelope.subject);
      result->filename = _FP_strdup (line);
      result->origin   = _FP_strdup (sstate.envelope.from);
      result->mimeid   = _FP_strdup (sstate.envelope.mimeid);
      result->mimetype = _FP_strdup ("text/plain");
      result->mode     = 0644;
      result->uudet    = PT_ENCODED;	/* plain text */
      result->sfname   = _FP_strdup (fname);
      result->flags    = FL_SINGLE | FL_PROPER;
      result->partno   = 1;
      /* result->startpos set from above */
      /* result->length set from above */

      if ((sstate.envelope.subject != NULL && result->subject == NULL) ||
	  result->filename == NULL || result->sfname == NULL) {
	*errcode = UURET_NOMEM;
      }

      return result;
    }
    /* otherwise, just return NULL */
    _FP_free (result);
    return NULL;
  }

  /*
   * Scan a new part from a Multipart message. Check for a new local
   * envelope (which defaults to `Content-Type: text/plain') and
   * evaluate its Content-Type and Content-Transfer-Encoding. If this
   * is another Multipart/something, push the current state onto our
   * stack and dive into the new environment, starting with another
   * preamble.
   */

  if (sstate.ismime && sstate.mimestate == MS_SUBPART) {
    memset (&localenv, 0, sizeof (headers));
    result->startpos = ftell (datei);
    prevpos = ftell (datei);
    hcount  = 0;
    lcount  = 0;

    /*
     * Duplicate some data from outer envelope
     */

    localenv.mimevers = _FP_strdup (sstate.envelope.mimevers);
    localenv.from     = _FP_strdup (sstate.envelope.from);
    localenv.subject  = _FP_strdup (sstate.envelope.subject);
    localenv.rcpt     = _FP_strdup (sstate.envelope.rcpt);
    localenv.date     = _FP_strdup (sstate.envelope.date);

    if ((sstate.envelope.mimevers != NULL && localenv.mimevers == NULL) ||
	(sstate.envelope.from     != NULL && localenv.from     == NULL) ||
	(sstate.envelope.subject  != NULL && localenv.subject  == NULL) ||
	(sstate.envelope.rcpt     != NULL && localenv.rcpt     == NULL) ||
	(sstate.envelope.date     != NULL && localenv.date     == NULL)) {

      while (mssdepth) {
	mssdepth--;
	UUkillheaders (&(multistack[mssdepth].envelope));
	_FP_free (multistack[mssdepth].source);
      }
      sstate.isfolder = 0;
      sstate.ismime   = 0;

      UUkillheaders (&localenv);
      *errcode = UURET_NOMEM;
      _FP_free (result);
      return NULL;
    }

    /* Scan subheader. But what if there is no subheader? */
    hcount = 0;
    lcount = 0;
    preheaders = prevpos;

    if (_FP_fgets (line, line_len, datei) == NULL) {
      sstate.isfolder = 0;
      sstate.ismime   = 0;
      while (mssdepth) {
	mssdepth--;
	UUkillheaders (&(multistack[mssdepth].envelope));
	_FP_free (multistack[mssdepth].source);
      }
      UUkillheaders (&localenv);
      _FP_free (result);
      return NULL;
    }

    while (!feof (datei) && !IsLineEmpty (line)) {
      if (IsKnownHeader (line))
	hcount++;
      if (UUBUSYPOLL(ftell(datei),progress.fsize)) SPCANCEL();
      if (lcount > WAITHEADER && hcount == 0) {
	fseek (datei, preheaders, SEEK_SET);
	prevpos = preheaders;
	break;
      }
      ptr1 = ScanHeaderLine (datei, line);
      if (ParseHeader (&localenv, ptr1) == NULL)
	*errcode = UURET_NOMEM;

      if (line[0] == '-' && line[1] == '-')
	break;

      prevpos = ftell (datei);

      if (_FP_fgets (line, line_len, datei) == NULL)
	break;
      lcount++;
    }
    if (line[0] == '-' && line[1] == '-') {
      /*
       * this shouldn't happen, there must always be an empty line,
       * but let's accept it anyway. Just skip back to before the
       * boundary, so that it gets handled below
       */
      fseek (datei, prevpos, SEEK_SET);
    }

    if (_FP_stristr (localenv.ctype, "multipart") != NULL) {
      /* oh no, not again */
      if (mssdepth >= MSMAXDEPTH) {
	/* Argh, what an isane message. Treat as plain text */
	UUMessage (uuscan_id, __LINE__, UUMSG_WARNING,
		   uustring (S_MIME_MULTI_DEPTH));
      }
      else if (localenv.boundary == NULL) {
	UUMessage (uuscan_id, __LINE__, UUMSG_WARNING,
		   uustring (S_MIME_NO_BOUNDARY));
      }
      else {
	memcpy (&multistack[mssdepth], &sstate, sizeof (scanstate));
	memcpy (&sstate.envelope,    &localenv, sizeof (headers));
	memset (&localenv, 0, sizeof (headers));
	sstate.mimestate = MS_PREAMBLE;
	if ((sstate.source = _FP_strdup (sstate.source)) == NULL)
	  *errcode = UURET_NOMEM;

	if (*errcode == UURET_OK)
	  *errcode = UURET_CONT;

	mssdepth++;
	/* need a restart */
	_FP_free (result);
	return NULL;
      }
    }

    /*
     * So this subpart is either plain text or something else. Check
     * the Content-Type and Content-Transfer-Encoding. If the latter
     * is a defined value, we know what to do and just copy everything
     * up to the boundary.
     * If Content-Transfer-Encoding is unknown or missing, look at the
     * Content-Type. If it's "text/plain" or undefined, we subject the
     * message to our encoding detection. Otherwise, treat as plain
     * text.
     * This is done because users might `attach' a uuencoded file, which
     * would then be correctly typed as `text/plain'.
     */

    if (_FP_stristr (localenv.ctenc, "base64") != NULL)
      result->uudet = B64ENCODED;
    else if (_FP_stristr (localenv.ctenc, "x-uue") != NULL) {
      result->uudet = UU_ENCODED;
      result->begin = result->end = 1;
    }
    else if (_FP_stristr (localenv.ctenc, "x-yenc") != NULL) {
      result->uudet = YENC_ENCODED;
      result->begin = result->end = 1;
    }
    else if (_FP_stristr (localenv.ctenc, "quoted-printable") != NULL)
      result->uudet = QP_ENCODED;
    else if (_FP_stristr (localenv.ctenc, "7bit") != NULL ||
	     _FP_stristr (localenv.ctenc, "8bit") != NULL)
      result->uudet = PT_ENCODED;
    else if (_FP_stristr (localenv.ctype, "multipart") != NULL ||
	     _FP_stristr (localenv.ctype, "message")   != NULL)
      result->uudet = PT_ENCODED;

    /*
     * If we're switched to MIME-only mode, handle as text
     */

    if (uu_more_mime >= 2 && !result->uudet) {
      result->uudet = PT_ENCODED;
    }

    if (result->uudet) {
      /*
       * Oh-kay, go ahead. Just read and wait for the boundary
       */
      result->startpos = ftell (datei);
      prevpos          = ftell (datei);
      blen = strlen (sstate.envelope.boundary);
      lcount = 0;

      while (!feof (datei)) {
	if (_FP_fgets (line, line_len, datei) == NULL) {
	  line[0] = '\0';
	  break;
	}
	if (UUBUSYPOLL(ftell(datei),progress.fsize)) SPCANCEL();
	if (line[0] == '-' && line[1] == '-' &&
	    strncmp (line+2, sstate.envelope.boundary, blen) == 0)
	  break;
	/*
	 * I've had a report of someone who tried to decode a huge file
	 * that had an early truncated multipart message and later another
	 * multipart message with the *same* boundary. Consequently, all
	 * some hundred messages inbetween were ignored ...
	 * This check here doesn't cover folded header lines, but we don't
	 * want to slow down scanning too much. We just check for
	 * Content-Type: multipart/... boundary="same-boundary"
	 */
	if (line[0] == 'C' && line[1] == 'o' &&
	    _FP_strnicmp (line, "Content-Type:", 13) == 0) {
	  ptr1 = ScanHeaderLine (datei, line);
	  ptr2 = (ptr1)?_FP_stristr(ptr1,"boundary"):NULL;
	  ptr1 = (ptr2)?ParseValue(ptr2):NULL;
	  if (ptr1 && strcmp (ptr1, sstate.envelope.boundary) == 0)
	    break;
	  for (res=0; ptr1 && resstartpos, SEEK_SET);

	UUkillfread (result);
	if ((result = (fileread *) malloc (sizeof (fileread))) == NULL) {
	  *errcode = UURET_NOMEM;
	  sstate.isfolder = 0;
	  sstate.ismime   = 0;
	  UUkillheaders (&localenv);
	  return NULL;
	}
	memset (result, 0, sizeof (fileread));

	if ((res = ScanData (datei, fname, errcode, NULL, 1, 1, result))==-1) {
	  /* oops, something went wrong */
	  sstate.isfolder = 0;
	  sstate.ismime   = 0;
	  UUkillfread   (result);
	  UUkillheaders (&localenv);
	  return NULL;
	}
	if (res == 1) {
	  /*
	   * new headers found
	   */
	  sstate.isfolder  = 1;
	  sstate.ismime    = 0;
	  sstate.mimestate = MS_HEADERS;
	}
	else {
	  sstate.isfolder  = 0;
	  sstate.ismime    = 0;
	}
      }
      /* produce result if uu_handletext is set */
      /* or if the file is explicitely named */
      if (result->uudet == B64ENCODED || lcount) {
	if (localenv.fname) {
	  _FP_free (result->filename);
	  if ((result->filename = _FP_strdup (localenv.fname)) == NULL)
	    *errcode = UURET_NOMEM;
	}
	else if ((result->uudet==QP_ENCODED||result->uudet==PT_ENCODED) &&
		 result->filename == NULL && uu_handletext) {
	  sprintf (line, "%04d.txt", ++mimseqno);
	  if ((result->filename = _FP_strdup (line)) == NULL)
	    *errcode = UURET_NOMEM;
	}
	result->subject  = _FP_strdup (localenv.subject);
	result->origin   = _FP_strdup (localenv.from);
	result->mimeid   = _FP_strdup (localenv.mimeid);
	result->mimetype = _FP_strdup (localenv.ctype);
	result->mode     = 0644;
	result->sfname   = _FP_strdup (fname);
	result->flags    = FL_SINGLE | FL_PROPER;
	result->partno   = 1;
	/* result->uudet determined above */
	/* result->startpos set from above */
	result->length   = prevpos - result->startpos;

	if ((localenv.subject != NULL && result->subject == NULL) ||
	    result->filename == NULL  || result->sfname == NULL) {
	  *errcode = UURET_NOMEM;
	}
      }
      else {
	/* don't produce a result */
	_FP_free (result);
	result = NULL;
      }
      if (*errcode == UURET_OK)
	*errcode = UURET_CONT;
      /*
       * destroy local envelope
       */
      UUkillheaders (&localenv);
      return result;
    }

    /*
     * we're in a subpart, but the local headers don't give us any
     * clue about what's to find here. So look for encoded data by
     * ourselves.
     */

    if ((res = ScanData (datei, fname, errcode,
			 sstate.envelope.boundary,
			 1, 0, result)) == -1) {
      /* oops, something went wrong */
      sstate.isfolder = 0;
      sstate.ismime   = 0;
      UUkillfread   (result);
      UUkillheaders (&localenv);
      return NULL;
    }
    /*
     * we should really be at a boundary here, but check again
     */
    blen    = strlen (sstate.envelope.boundary);
    prevpos = ftell  (datei);

    while (!feof (datei)) {
      if (_FP_fgets (line, line_len, datei) == NULL) {
	line[0] = '\0';
	break;
      }
      if (UUBUSYPOLL(ftell(datei),progress.fsize)) SPCANCEL();
      if (line[0] == '-' && line[1] == '-' &&
	  strncmp (line+2, sstate.envelope.boundary, blen) == 0)
	break;
      if (line[0] == 'C' && line[1] == 'o' &&
	  _FP_strnicmp (line, "Content-Type:", 13) == 0) {
	ptr1 = ScanHeaderLine (datei, line);
	ptr2 = (ptr1)?_FP_stristr(ptr1,"boundary"):NULL;
	ptr1 = (ptr2)?ParseValue(ptr2):NULL;
	if (ptr1 && strcmp (ptr1, sstate.envelope.boundary) == 0)
	  break;
      }
      prevpos = ftell (datei);
    }
    /*
     * check if this was the last subpart
     */
    if (line[0] == '-' && line[1] == '-' &&
	strncmp (line+2, sstate.envelope.boundary, blen) == 0) {
      ptr1 = line + 2 + blen;
      if (*ptr1 == '-' && *(ptr1+1) == '-')
	sstate.mimestate = MS_EPILOGUE;
      else
	sstate.mimestate = MS_SUBPART;
    }
    else {
      UUMessage (uuscan_id, __LINE__, UUMSG_WARNING,
		 uustring (S_MIME_B_NOT_FOUND));

      while (mssdepth) {
	mssdepth--;
	UUkillheaders (&(multistack[mssdepth].envelope));
	_FP_free (multistack[mssdepth].source);
      }

      if (uu_fast_scanning) {
	UUkillheaders (&localenv);
	sstate.isfolder  = 0;
	sstate.ismime    = 0;
	sstate.mimestate = MS_BODY;
	_FP_free (result);
	return NULL;
      }

      /*
       * Retry, listening to headers this time
       */
      fseek (datei, result->startpos, SEEK_SET);

      UUkillfread (result);
      if ((result = (fileread *) malloc (sizeof (fileread))) == NULL) {
	*errcode = UURET_NOMEM;
	sstate.isfolder = 0;
	sstate.ismime   = 0;
	UUkillheaders (&localenv);
	return NULL;
      }
      memset (result, 0, sizeof (fileread));

      if ((res = ScanData (datei, fname, errcode, NULL, 1, 1, result))==-1) {
	/* oops, something went wrong */
	sstate.isfolder = 0;
	sstate.ismime   = 0;
	UUkillfread   (result);
	UUkillheaders (&localenv);
	return NULL;
      }
      if (res == 1) {
	/*
	 * new headers found
	 */
	sstate.isfolder  = 1;
	sstate.ismime    = 0;
	sstate.mimestate = MS_HEADERS;
      }
      else {
	sstate.isfolder  = 0;
	sstate.ismime    = 0;
      }
    }

    /*
     * If this file has been nicely MIME so far, then be very suspicious
     * if ScanData reports anything else. So do a double check, and if
     * it doesn't hold up, handle as plain text instead.
     */

    if (strcmp (localenv.mimevers, "1.0") == 0 &&
	_FP_stristr (localenv.ctype, "text") != NULL &&
	sstate.ismime && sstate.mimestate == MS_SUBPART &&
	!uu_desperate) {
      if (result->uudet == UU_ENCODED && !(result->begin || result->end)) {
	result->uudet = 0;
      }
    }

    /*
     * produce result
     */

    if (result->uudet == 0) {
      result->uudet = PT_ENCODED; /* plain text */
    }

    if (localenv.fname) {
      _FP_free (result->filename);
      if ((result->filename = _FP_strdup (localenv.fname)) == NULL)
	*errcode = UURET_NOMEM;
    }
    else if ((result->uudet==QP_ENCODED || result->uudet==PT_ENCODED) &&
	     result->filename==NULL && uu_handletext) {
      sprintf (line, "%04d.txt", ++mimseqno);
      if ((result->filename = _FP_strdup (line)) == NULL)
	*errcode = UURET_NOMEM;
    }
    else {
      /* assign a filename lateron */
    }
    if (result->mimetype) _FP_free (result->mimetype);
    if (result->uudet) {
      if (_FP_stristr (localenv.ctype, "text") != NULL &&
	  result->uudet != QP_ENCODED && result->uudet != PT_ENCODED)
	result->mimetype = NULL; /* better don't set it */
      else
	result->mimetype = _FP_strdup (localenv.ctype);
    }
    if (result->origin) _FP_free  (result->origin);
    result->origin  = _FP_strdup  (localenv.from);

    if (result->subject) _FP_free (result->subject);
    result->subject = _FP_strdup  (localenv.subject);

    if (result->sfname == NULL)
      if ((result->sfname = _FP_strdup (fname)) == NULL)
	*errcode = UURET_NOMEM;

    result->length = prevpos - result->startpos;
    result->flags  = FL_SINGLE | FL_PROPER;
    result->partno = 1;

    if (result->mode == 0)
      result->mode = 0644;

    /*
     * the other fields should already be set appropriately
     */

    if (*errcode == UURET_OK)
      *errcode = UURET_CONT;

    /*
     * kill local envelope
     */
    UUkillheaders (&localenv);

    return result;
  }

  /*
   * All right, so we're not in a Multipart message. Phew, took quite
   * long to figure this out. But this might still be a MIME message
   * body. And if it's a message/partial, we need more special handling
   */

  if (sstate.isfolder && sstate.ismime && sstate.mimestate == MS_BODY &&
      _FP_stristr (sstate.envelope.ctype, "message") != NULL &&
      _FP_stristr (sstate.envelope.ctype, "partial") != NULL) {

    result->startpos = ftell (datei);

    if (sstate.envelope.partno == 1) {
      /* read local envelope */
      UUkillheaders (&localenv);
      memset (&localenv, 0, sizeof (headers));

      /* skip over blank lines first */
      prevpos = ftell (datei);
      while (!feof (datei)) {
	if (_FP_fgets (line, line_len, datei) == NULL)
	  break;
	if (UUBUSYPOLL(ftell(datei),progress.fsize)) SPCANCEL();
	if (!IsLineEmpty (line))
	  break;
	prevpos = ftell (datei);
      }
      /* Next, read header. But what if there is no subheader? */
      hcount = 0;
      lcount = 0;
      preheaders = prevpos;

      while (!feof (datei) && !IsLineEmpty (line)) {
	if (IsKnownHeader (line))
	  hcount++;
	if (UUBUSYPOLL(ftell(datei),progress.fsize)) SPCANCEL();
	if (lcount > WAITHEADER && hcount == 0) {
	  fseek (datei, preheaders, SEEK_SET);
	  break;
	}
	ptr1 = ScanHeaderLine (datei, line);
	if (ParseHeader (&localenv, ptr1) == NULL)
	  *errcode = UURET_NOMEM;

	if (_FP_fgets (line, line_len, datei) == NULL)
	  break;
	lcount++;
      }
      prevpos = ftell (datei);
      /*
       * Examine local header. We're mostly interested in the Content-Type
       * and the Content-Transfer-Encoding.
       */
      if (_FP_stristr (localenv.ctype, "multipart") != NULL) {
	UUMessage (uuscan_id, __LINE__, UUMSG_WARNING,
		   uustring (S_MIME_PART_MULTI));
      }
      if (localenv.subject)
	result->subject  = _FP_strdup (localenv.subject);
      else
	result->subject  = _FP_strdup (sstate.envelope.subject);

      if (localenv.from)
	result->origin   = _FP_strdup (localenv.from);
      else
	result->origin   = _FP_strdup (sstate.envelope.from);

      if (localenv.ctype)
	result->mimetype = _FP_strdup (localenv.ctype);
      else
	result->mimetype = _FP_strdup ("text/plain");

      if (_FP_stristr (localenv.ctenc, "quoted-printable") != NULL)
	result->uudet = QP_ENCODED;
      else if (_FP_stristr (localenv.ctenc, "base64") != NULL)
	result->uudet = B64ENCODED;
      else if (_FP_stristr (localenv.ctenc, "x-uue") != NULL) {
	result->uudet = UU_ENCODED;
	result->begin = result->end = 1;
      }
      else if (_FP_stristr (localenv.ctenc, "x-yenc") != NULL) {
	result->uudet = YENC_ENCODED;
	result->begin = result->end = 1;
      }
      else if (_FP_stristr (localenv.ctenc, "7bit") != NULL ||
	       _FP_stristr (localenv.ctenc, "8bit") != NULL)
	result->uudet = PT_ENCODED;
      else if (_FP_stristr (localenv.ctype, "multipart") != NULL ||
	       _FP_stristr (localenv.ctype, "message")   != NULL)
	result->uudet = PT_ENCODED;

      /*
       * If we're switched to MIME-only mode, handle as text
       */

      if (uu_more_mime >= 2 && !result->uudet) {
	result->uudet = PT_ENCODED;
      }
    }
    else {
      memset (&localenv, 0, sizeof (headers));
    }

    /*
     * If this is Quoted-Printable or Plain Text, just try looking
     * for the next message header. If uu_fast_scanning, and the
     * encoding is known, there's no need to look below. Otherwise,
     * we check the type of encoding first.
     * The encoding type is determined on the first part; in all
     * others, we also don't read on.
     * If we have a partial multipart message, scan for headers, but
     * do not react on standard MIME headers, as they are probably
     * from the subparts. However, we're stuck if there's an embedded
     * message/rfc822 :-(
     * If it is a "trivial" (non-embedded) message/rfc822, skip over
     * the message header and then start looking for the next header.
     */
    if (uu_fast_scanning && (result->uudet!=0||sstate.envelope.partno!=1)) {
      /* do nothing */
      res = 0;
    }
    else if (result->uudet != 0) {
      hcount = lcount = 0;
      prevpos = ftell (datei);

      if (_FP_stristr (localenv.ctype, "message") != NULL &&
	  _FP_stristr (localenv.ctype, "rfc822")  != NULL) {
	/*
	 * skip over empty lines and local header
	 */
	preheaders = ftell (datei);
	while (!feof (datei)) {
	  if (_FP_fgets (line, line_len, datei) == NULL)
	    break;
	  if (!IsLineEmpty (line)) {
	    break;
	  }
	}

	while (!feof (datei) && !IsLineEmpty (line)) {
	  if (IsKnownHeader (line))
	    hcount++;
	  lcount++;
	  if (lcount > WAITHEADER && hcount < hlcount.afternl)
	    break;

	  if (_FP_fgets (line, line_len, datei) == NULL)
	    break;
	}
	if (hcount < hlcount.afternl)
	  fseek (datei, preheaders, SEEK_SET);
	hcount = lcount = 0;
      }

      /*
       * look for next header
       */

      while (!feof (datei)) {
	if (_FP_fgets (line, line_len, datei) == NULL)
	  break;
	if (UUBUSYPOLL(ftell(datei),progress.fsize)) SPCANCEL();
	if (ferror (datei))
	  break;

	if ((vflag = IsKnownHeader (line))) {
	  (void) ScanHeaderLine (datei, line);

	  if (result->uudet != PT_ENCODED || vflag == 1) {
	    if (hcount == 0)
	      preheaders = prevpos;
	    hcount++;
	    lcount++;
	    if (hcount >= hlcount.restart) {
	      /*
	       * Hey, a new header starts here
	       */
	      fseek (datei, preheaders, SEEK_SET);
	      prevpos = preheaders;
	      break;
	    }
	  }
	}
	else if (lcount > WAITHEADER) {
	  hcount = 0;
	  lcount = 0;
	}
	else if (hcount) {
	  lcount++;
	}
	prevpos = ftell (datei);
      }
      res = 1;
    }
    else {
      /*
       * Otherwise, let's see what we can find ourself. No
       * boundary (NULL) but MIME, and respect new headers.
       */
      if ((res = ScanData (datei, fname, errcode, NULL, 1, 1, result)) == -1) {
	/* oops, something went wrong */
	sstate.isfolder = 0;
	sstate.ismime   = 0;
	UUkillfread   (result);
	UUkillheaders (&localenv);
	return NULL;
      }
      if (result->uudet == 0 && uu_handletext)
	result->uudet = PT_ENCODED;

      prevpos = ftell (datei);
    }
    /*
     * produce result
     */
    if (localenv.fname) {
      _FP_free (result->filename);
      if ((result->filename = _FP_strdup (localenv.fname)) == NULL)
	*errcode = UURET_NOMEM;
    }
    else if (sstate.envelope.fname) {
      _FP_free (result->filename);
      if ((result->filename = _FP_strdup (sstate.envelope.fname)) == NULL)
	*errcode = UURET_NOMEM;
    }
    else if ((result->uudet==QP_ENCODED || result->uudet==PT_ENCODED) &&
	     result->filename == NULL) {
      sprintf (line, "%04d.txt", ++mimseqno);
      if ((result->filename = _FP_strdup (line)) == NULL)
	*errcode = UURET_NOMEM;
    }
    else {
      /* assign a filename lateron */
    }
    if (result->subject == NULL) {
      if (sstate.envelope.subject)
	result->subject = _FP_strdup (sstate.envelope.subject);
    }
    result->partno = sstate.envelope.partno;
    result->maxpno = sstate.envelope.numparts;
    result->flags  = FL_PARTIAL |
      ((res==1 || uu_fast_scanning) ? FL_PROPER : 0) |
	((uu_fast_scanning) ? FL_TOEND : 0);
    result->mimeid = _FP_strdup (sstate.envelope.mimeid);
    if (result->partno == 1)
      result->begin = 1;

    if (uu_fast_scanning)
      result->length = progress.fsize - result->startpos;
    else
      result->length = prevpos - result->startpos;

    if (result->sfname == NULL)
      result->sfname = _FP_strdup (fname);

    if (result->mode == 0)
      result->mode = 0644;

    /*
     * the other fields should already be set appropriately
     */

    if (res == 1) {
      /*
       * new headers found
       */
      sstate.isfolder  = 1;
      sstate.ismime    = 0;
      sstate.mimestate = MS_HEADERS;

      UUkillheaders (&sstate.envelope);
      memset (&sstate.envelope, 0, sizeof (headers));
    }
    else {
      /*
       * otherwise, this can't be a mail folder
       */
      sstate.isfolder  = 0;
      sstate.ismime    = 0;
    }
    /*
     * kill local envelope
     */
    UUkillheaders (&localenv);
    return result;
  }

  /*
   * If this is a MIME body, honor a Content-Type different than
   * text/plain or a proper Content-Transfer-Encoding.
   * We also go in here if we have an assigned filename - this means
   * that we've had a Content-Disposition field, and we should probably
   * decode a plain-text segment with a filename.
   */

  if (sstate.isfolder && sstate.ismime &&
      sstate.mimestate == MS_BODY &&
      (_FP_stristr (sstate.envelope.ctenc, "quoted-printable") != NULL ||
       _FP_stristr (sstate.envelope.ctenc, "base64")           != NULL ||
       _FP_stristr (sstate.envelope.ctenc, "x-uue")            != NULL ||
       _FP_stristr (sstate.envelope.ctenc, "x-yenc")           != NULL ||
       _FP_stristr (sstate.envelope.ctype, "message")          != NULL ||
       sstate.envelope.fname != NULL)) {

    if (sstate.envelope.subject)
      result->subject = _FP_strdup (sstate.envelope.subject);
    if (sstate.envelope.from)
      result->origin  = _FP_strdup (sstate.envelope.from);

    if (sstate.envelope.ctype)
      result->mimetype = _FP_strdup (sstate.envelope.ctype);
    else
      result->mimetype = _FP_strdup ("text/plain");

    if (_FP_stristr (sstate.envelope.ctenc, "quoted-printable") != NULL)
      result->uudet = QP_ENCODED;
    else if (_FP_stristr (sstate.envelope.ctenc, "base64") != NULL)
      result->uudet = B64ENCODED;
    else if (_FP_stristr (sstate.envelope.ctenc, "x-uue") != NULL) {
      result->uudet = UU_ENCODED;
      result->begin = result->end = 1;
    }
    else if (_FP_stristr (sstate.envelope.ctenc, "x-yenc") != NULL) {
      result->uudet = YENC_ENCODED;
    }
    else if (_FP_stristr (sstate.envelope.ctenc, "7bit") != NULL ||
	     _FP_stristr (sstate.envelope.ctenc, "8bit") != NULL)
      result->uudet = PT_ENCODED;
    else if (_FP_stristr (sstate.envelope.ctype, "multipart") != NULL ||
	     _FP_stristr (sstate.envelope.ctype, "message")   != NULL ||
	     sstate.envelope.fname != NULL)
      result->uudet = PT_ENCODED;

    /*
     * If we're switched to MIME-only mode, handle as text
     */

    if (uu_more_mime >= 2 && !result->uudet) {
      result->uudet = PT_ENCODED;
    }

    result->startpos = prevpos = ftell (datei);

    /*
     * If this is Quoted-Printable or Plain Text, just try looking
     * for the next message header. If uu_fast_scanning, we know
     * there won't be more headers.
     * If it is a "trivial" (non-embedded) message/rfc822, skip over
     * the message header and then start looking for the next header.
     */
    if (result->uudet != 0 && uu_fast_scanning) {
      /* do nothing */
      res = 0;
    }
    else if (result->uudet != 0) {
      hcount = lcount = 0;
      prevpos = ftell (datei);

      if (_FP_stristr (sstate.envelope.ctype, "message") != NULL &&
	  _FP_stristr (sstate.envelope.ctype, "rfc822")  != NULL) {
	/*
	 * skip over empty lines and local header
	 */
	preheaders = ftell (datei);
	while (!feof (datei)) {
	  if (_FP_fgets (line, line_len, datei) == NULL)
	    break;
	  if (!IsLineEmpty (line)) {
	    break;
	  }
	}

	while (!feof (datei) && !IsLineEmpty (line)) {
	  if (IsKnownHeader (line))
	    hcount++;
	  lcount++;
	  if (lcount > WAITHEADER && hcount < hlcount.afternl)
	    break;

	  if (_FP_fgets (line, line_len, datei) == NULL)
	    break;
	}
	if (hcount < hlcount.afternl)
	  fseek (datei, preheaders, SEEK_SET);
	hcount = lcount = 0;
      }

      /*
       * look for next header
       */

      while (!feof (datei)) {
	if (_FP_fgets (line, line_len, datei) == NULL)
	  break;
	if (UUBUSYPOLL(ftell(datei),progress.fsize)) SPCANCEL();
	if (ferror (datei))
	  break;

	if (IsKnownHeader (line)) {
	  (void) ScanHeaderLine (datei, line);
	  if (hcount == 0)
	    preheaders = prevpos;
	  hcount++;
	  lcount++;
	  if (hcount >= hlcount.restart) {
	    /*
	     * Hey, a new header starts here
	     */
	    fseek (datei, preheaders, SEEK_SET);
	    prevpos = preheaders;
	    break;
	  }
	}
	else if (lcount > WAITHEADER) {
	  hcount = 0;
	  lcount = 0;
	}
	else if (hcount) {
	  lcount++;
	}
	prevpos = ftell (datei);
      }
      res = 1;
    }
    else {
      /*
       * Otherwise, let's see what we can find ourself. No
       * boundary (NULL) but MIME, and respect new headers.
       */
      if ((res = ScanData (datei, fname, errcode, NULL, 1, 1, result)) == -1) {
	/* oops, something went wrong */
	sstate.isfolder = 0;
	sstate.ismime   = 0;
	UUkillfread   (result);
	return NULL;
      }
      if (result->uudet == 0 && uu_handletext) {
	result->startpos = before;	/* display headers */
	result->uudet = PT_ENCODED;
      }

      prevpos = ftell (datei);
    }
    /*
     * produce result
     */
    if (sstate.envelope.fname) {
      _FP_free (result->filename);
      if ((result->filename = _FP_strdup (sstate.envelope.fname)) == NULL)
	*errcode = UURET_NOMEM;
    }
    else if ((result->uudet==QP_ENCODED||result->uudet==PT_ENCODED) &&
	     result->filename == NULL) {
      sprintf (line, "%04d.txt", ++mimseqno);
      if ((result->filename = _FP_strdup (line)) == NULL)
	*errcode = UURET_NOMEM;
    }
    else {
      /* assign a filename lateron */
    }
    if (result->subject == NULL) {
      if (sstate.envelope.subject)
	result->subject = _FP_strdup (sstate.envelope.subject);
    }
    result->flags  = ((res==1||uu_fast_scanning)?FL_PROPER:0) |
      ((uu_fast_scanning) ? FL_TOEND : 0);
    result->mimeid = _FP_strdup (sstate.envelope.mimeid);

    if (uu_fast_scanning)
      result->length = progress.fsize - result->startpos;
    else
      result->length = prevpos - result->startpos;

    if (result->sfname == NULL)
      result->sfname = _FP_strdup (fname);

    if (result->mode == 0)
      result->mode = 0644;

    /*
     * the other fields should already be set appropriately
     */

    if (res == 1) {
      /*
       * new headers found
       */
      sstate.isfolder  = 1;
      sstate.ismime    = 0;
      sstate.mimestate = MS_HEADERS;

      UUkillheaders (&sstate.envelope);
      memset (&sstate.envelope, 0, sizeof (headers));
    }
    else {
      /*
       * otherwise, this can't be a mail folder
       */
      sstate.isfolder  = 0;
      sstate.ismime    = 0;
    }

    return result;
  }

  /*
   * Some files have reduced headers, and what should be a multipart
   * message is missing the proper Content-Type. If the first thing
   * we find after a couple of empty lines is a boundary, try it!
   * But make sure that this is indeed intended as being a boundary.
   *
   * Only accept it if there was indeed no Content-Type header line
   * and if the following line is a proper Content-Type header. BTW,
   * we know that sstate.envelope.boundary is NULL, or we wouldn't
   * be here!
   */

  if ((sstate.envelope.ctype == NULL ||
       _FP_stristr (sstate.envelope.ctype, "multipart") != NULL) &&
      !uu_more_mime) {
    prevpos = ftell (datei);
    while (!feof (datei)) {
      if (_FP_fgets (line, line_len, datei) == NULL) {
	line[0] = '\0';
	break;
      }
      if (UUBUSYPOLL(ftell(datei),progress.fsize)) SPCANCEL();
      if (!IsLineEmpty (line))
	break;
    }
    if (line[0] == '-' && line[1] == '-' &&
	!IsLineEmpty (line+2) && !feof (datei)) {
      ptr1 = _FP_strrstr (line+2, "--");
      ptr2 = ScanHeaderLine (datei, NULL);
      if ((ptr1 == NULL || (*(ptr1+2) != '\012' && *(ptr1+2) != '\015')) &&
	  ptr2 && _FP_strnicmp (ptr2, "Content-", 8) == 0) {
	/*
	 * hmm, okay, let's do it!
	 */
	sstate.isfolder  = 1;
	sstate.ismime    = 1;
	sstate.mimestate = MS_PREAMBLE;
	/*
	 * get boundary
	 */
	ptr1 = line+2;
	while (*ptr1 && !isspace(*ptr1))
	  ptr1++;
	*ptr1 = '\0';

	sstate.envelope.mimevers = _FP_strdup ("1.0");
	sstate.envelope.boundary = _FP_strdup (line+2);

	/*
	 * need restart
	 */

	fseek (datei, prevpos, SEEK_SET);

	_FP_free (result);
	return NULL;
      }
    }
    fseek (datei, prevpos, SEEK_SET);
  }

  /*
   * Hmm, we're not in a ''special'' state, so it's more or less
   * Freestyle time. Anyway, if this seems to be a Mime message,
   * don't allow the minimal Base64 handling.
   */

  if (sstate.envelope.subject)
    result->subject = _FP_strdup (sstate.envelope.subject);
  if (sstate.envelope.from)
    result->origin  = _FP_strdup (sstate.envelope.from);

  if (sstate.envelope.ctype)
    result->mimetype = _FP_strdup (sstate.envelope.ctype);

  if ((res=ScanData (datei, fname, errcode, NULL,
		     sstate.ismime, 1, result))==-1) {
    /* oops, something went wrong */
    sstate.isfolder = 0;
    sstate.ismime   = 0;
    UUkillfread   (result);
    return NULL;
  }

  /*
   * produce result
   */

  if (result->uudet == 0 && uu_handletext) {
    result->startpos = before;	/* display headers */
    result->uudet  = PT_ENCODED;
    result->partno = 1;
  }

  if (result->uudet == YENC_ENCODED && result->filename != NULL) {
    /*
     * prevent replacing the filename found on the =ybegin line
     */
  }
  else if (sstate.envelope.fname) {
    _FP_free (result->filename);
    if ((result->filename = _FP_strdup (sstate.envelope.fname)) == NULL)
      *errcode = UURET_NOMEM;
  }
  else if ((result->uudet==QP_ENCODED||result->uudet==PT_ENCODED) &&
	   result->filename == NULL) {
    sprintf (line, "%04d.txt", ++mimseqno);
    if ((result->filename = _FP_strdup (line)) == NULL)
      *errcode = UURET_NOMEM;
  }
  else {
    /* assign a filename lateron */
  }

  if (result->subject == NULL) {
    if (sstate.envelope.subject)
      result->subject = _FP_strdup (sstate.envelope.subject);
  }

  result->flags  = (result->uudet==PT_ENCODED)?FL_SINGLE:0;
  result->mimeid = _FP_strdup (sstate.envelope.mimeid);
  result->length = ftell (datei) - result->startpos;

  if (result->mode == 0)
    result->mode = 0644;

  if (result->sfname == NULL)
    result->sfname = _FP_strdup (fname);

  if (res == 1) {
    /*
     * new headers found
     */
    sstate.isfolder  = 1;
    sstate.ismime    = 0;
    sstate.mimestate = MS_HEADERS;

    UUkillheaders (&sstate.envelope);
    memset (&sstate.envelope, 0, sizeof (headers));
  }
  else {
    /*
     * otherwise, this can't be a mail folder
     */
    sstate.isfolder  = 0;
    sstate.ismime    = 0;
  }

  return result;

  /*
   * Emergency handling. Set errcode before jumping here.
   */
 ScanPartEmergency:
  UUkillfread   (result);
  UUkillheaders (&localenv);

  while (mssdepth) {
    mssdepth--;
    UUkillheaders (&(multistack[mssdepth].envelope));
    _FP_free (multistack[mssdepth].source);
  }

  return NULL;
}

pan-0.162/uulib/uustring.c000066400000000000000000000121741475412772400154660ustar00rootroot00000000000000/*
 * This file is part of uudeview, the simple and friendly multi-part multi-
 * file uudecoder  program  (c) 1994-2001 by Frank Pilhofer. The author may
 * be contacted at fp@fpx.de
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 */

/*
 * Strings used in the library for easier translation etc.
 */

#ifdef HAVE_CONFIG_H
#include "config.h"
#endif

#ifdef SYSTEM_WINDLL
#include 
#endif
#ifdef SYSTEM_OS2
#include 
#endif

#include 
#include 

#include 
#include 
#ifdef HAVE_MALLOC_H
#include 
#endif
#ifdef HAVE_UNISTD_H
#include 
#endif
#ifdef HAVE_MEMORY_H
#include 
#endif

#include 
#include 
#include 

char * uustring_id = "$Id$";

typedef struct {
  int code;
  char * msg;
} stringmap;

/*
 * Map of messages. This table is not exported, the messages must
 * be retrieved via the below uustring() function.
 */

static stringmap messages[] = {
  /* I/O related errors/messages. Last parameter is strerror() */
  { S_NOT_OPEN_SOURCE,  "Could not open source file %s: %s" },
  { S_NOT_OPEN_TARGET,  "Could not open target file %s for writing: %s" },
  { S_NOT_OPEN_FILE,    "Could not open file %s: %s" },
  { S_NOT_STAT_FILE,    "Could not stat file %s: %s" },
  { S_SOURCE_READ_ERR,  "Read error on source file: %s" },
  { S_READ_ERROR,       "Error reading from %s: %s" },
  { S_IO_ERR_TARGET,    "I/O error on target file %s: %s" },
  { S_WR_ERR_TARGET,    "Write error on target file %s: %s" },
  { S_WR_ERR_TEMP,      "Write error on temp file: %s" },
  { S_TMP_NOT_REMOVED,  "Could not remove temp file %s: %s (ignored)" },

  /* some other problems */
  { S_OUT_OF_MEMORY,    "Out of memory allocating %d bytes" },
  { S_TARGET_EXISTS,    "Target file %s exists and overwriting is not allowed" },
  { S_NOT_RENAME,       "Could not change name of %s to %s" },
  { S_ERR_ENCODING,     "Error while encoding %s: %s" },
  { S_STAT_ONE_PART,    "Could not stat input, encoding to one part only" },
  { S_PARM_CHECK,       "Parameter check failed in %s" },
  { S_SHORT_BINHEX,     "BinHex encoded file %s ended prematurely (%ld bytes left)" },
  { S_DECODE_CANCEL,    "Decode operation canceled" },
  { S_ENCODE_CANCEL,    "Encode operation canceled" },
  { S_SCAN_CANCEL,      "Scanning canceled" },
  { S_SIZE_MISMATCH,    "%s: Decoded size (%ld) does not match expected size (%ld)" },
  { S_PSIZE_MISMATCH,   "%s part %d: Decoded size (%ld) does not match expected size (%ld)" },
  { S_PART_MISSING,     "%Part %d missing.  Decoded file probably corrupt." },
  { S_CRC_MISMATCH,     "CRC32 mismatch in %s. Decoded file probably corrupt." },
  { S_PCRC_MISMATCH,    "PCRC32 mismatch in %s part %d. Decoded file probably corrupt." },

  /* informational messages */
  { S_LOADED_PART,      "Loaded from %s: '%s' (%s): %s part %d %s %s %s" },
  { S_NO_DATA_FOUND,    "No encoded data found in %s" },
  { S_NO_BIN_FILE,      "Oops, could not find decoded file?" },
  { S_STRIPPED_SETUID,  "Stripped setuid/setgid bits from target file %s mode %d" },
  { S_DATA_SUSPICIOUS,  "Data looks suspicious. Decoded file might be corrupt." },
  { S_NO_TEMP_NAME,     "Could not get name for temporary file" },
  { S_BINHEX_SIZES,     "BinHex file: data/resource fork sizes %ld/%ld" },
  { S_BINHEX_BOTH,      "BinHex file: both forks non-empty, decoding data fork" },
  { S_SMERGE_MERGED,    "Parts of '%s' merged with parts of '%s' (%d)" },

  /* MIME-related messages */
  { S_MIME_NO_BOUNDARY, "Multipart message without boundary ignored" },
  { S_MIME_B_NOT_FOUND, "Boundary expected on Multipart message but found EOF" },
  { S_MIME_MULTI_DEPTH, "Multipart message nested too deep" },
  { S_MIME_PART_MULTI,  "Handling partial multipart message as plain text" },

  { 0, "" }
};

/*
 * description of the return values UURET_*
 */

char *uuretcodes[] = {
  "OK",
  "File I/O Error",
  "Not Enough Memory",
  "Illegal Value",
  "No Data found",
  "Unexpected End of File",
  "Unsupported function",
  "File exists",
  "Continue -- no error",	/* only to be seen internally */
  "Operation Canceled"
};

/*
 * Names of encoding types
 */

char *codenames[8] = {
  "", "UUdata", "Base64", "XXdata", "Binhex", "Text", "Text", "yEnc"
};

/*
 * Message types
 */

char *msgnames[6] = {
  "", "Note: ", "Warning: ", "ERROR: ", "FATAL ERROR: ", "PANIC: "
};

/*
 * Retrieve one of the messages. We never return NULL
 * but instead escape to "oops".
 */

char *
uustring (int codeno)
{
  static char * faileddef = "oops";
  stringmap *ptr = messages;

  while (ptr->code) {
    if (ptr->code == codeno)
      return ptr->msg;
    ptr++;
  }

  UUMessage (uustring_id, __LINE__, UUMSG_ERROR,
	     "Could not retrieve string no %d",
	     codeno);

  return faileddef;
}
pan-0.162/uulib/uustring.h000066400000000000000000000024541475412772400154730ustar00rootroot00000000000000/* extracted from Id: uustring.c,v 1.8 2002/03/11 09:15:47 fp Exp  */
#define S_NOT_OPEN_SOURCE      1
#define S_NOT_OPEN_TARGET      2
#define S_NOT_OPEN_FILE        3
#define S_NOT_STAT_FILE        4
#define S_SOURCE_READ_ERR      5
#define S_READ_ERROR           6
#define S_IO_ERR_TARGET        7
#define S_WR_ERR_TARGET        8
#define S_WR_ERR_TEMP          9
#define S_TMP_NOT_REMOVED     10
#define S_OUT_OF_MEMORY       11
#define S_TARGET_EXISTS       12
#define S_NOT_RENAME          13
#define S_ERR_ENCODING        14
#define S_STAT_ONE_PART       15
#define S_PARM_CHECK          16
#define S_SHORT_BINHEX        17
#define S_DECODE_CANCEL       18
#define S_ENCODE_CANCEL       19
#define S_SCAN_CANCEL         20
#define S_SIZE_MISMATCH       21
#define S_PSIZE_MISMATCH      22
#define S_CRC_MISMATCH        23
#define S_PCRC_MISMATCH       24
#define S_LOADED_PART         25
#define S_NO_DATA_FOUND       26
#define S_NO_BIN_FILE         27
#define S_STRIPPED_SETUID     28
#define S_DATA_SUSPICIOUS     29
#define S_NO_TEMP_NAME        30
#define S_BINHEX_SIZES        31
#define S_BINHEX_BOTH         32
#define S_SMERGE_MERGED       33
#define S_MIME_NO_BOUNDARY    34
#define S_MIME_B_NOT_FOUND    35
#define S_MIME_MULTI_DEPTH    36
#define S_MIME_PART_MULTI     37
#define S_PART_MISSING        38
pan-0.162/uulib/uuutil.c000066400000000000000000000232201475412772400151270ustar00rootroot00000000000000/*
 * This file is part of uudeview, the simple and friendly multi-part multi-
 * file uudecoder  program  (c) 1994-2001 by Frank Pilhofer. The author may
 * be contacted at fp@fpx.de
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 */

/*
 * certain utilitarian functions that didn't fit anywhere else
 */

#ifdef HAVE_CONFIG_H
#include "config.h"
#endif

#ifdef SYSTEM_WINDLL
#include 
#endif
#ifdef SYSTEM_OS2
#include 
#endif

#include 
#include 

#include 
#include 
#ifdef HAVE_MALLOC_H
#include 
#endif
#ifdef HAVE_UNISTD_H
#include 
#endif
#ifdef HAVE_MEMORY_H
#include 
#endif
#ifdef HAVE_ERRNO_H
#include 
#endif

#include 
#include 
#include 
#include 

char * uuutil_id = "$Id$";

/*
 * Parts with different known extensions will not be merged by SPMS.
 * if first character is '@', it is synonymous to the previous one.
 */

static char *knownexts[] = {
  "mpg", "@mpeg", "avi", "mov",
  "gif", "jpg", "@jpeg", "tif",
  "voc", "wav", "@wave", "au",
  "zip", "arj", "tar",
  NULL
};

/*
 * forward declarations of local functions
 */

static int	UUSMPKnownExt		_ANSI_ARGS_((char *filename));
static uulist *	UU_smparts_r		_ANSI_ARGS_((uulist *, int));

/*
 * mallocable areas
 */

char *uuutil_bhwtmp;

/*
 * free some memory
 **/

void
UUkillfread (fileread *data)
{
  if (data != NULL) {
    _FP_free (data->subject);
    _FP_free (data->filename);
    _FP_free (data->origin);
    _FP_free (data->mimeid);
    _FP_free (data->mimetype);
    _FP_free (data->sfname);
    _FP_free (data);
  }
}

void
UUkillfile (uufile *data)
{
  uufile *next;

  while (data) {
    _FP_free    (data->filename);
    _FP_free    (data->subfname);
    _FP_free    (data->mimeid);
    _FP_free    (data->mimetype);
    UUkillfread (data->data);

    next = data->NEXT;
    _FP_free  (data);
    data = next;
  }
}

void
UUkilllist (uulist *data)
{
  uulist *next;

  while (data) {
    if (data->binfile != NULL)
      if (unlink (data->binfile))
	UUMessage (uuutil_id, __LINE__, UUMSG_WARNING,
		   uustring (S_TMP_NOT_REMOVED),
		   data->binfile, strerror (errno));

    _FP_free   (data->filename);
    _FP_free   (data->subfname);
    _FP_free   (data->mimeid);
    _FP_free   (data->mimetype);
    _FP_free   (data->binfile);
    UUkillfile (data->thisfile);
    _FP_free   (data->haveparts);
    _FP_free   (data->misparts);

    next = data->NEXT;
    _FP_free (data);
    data = next;
  }
}

/*
 * this kill function is an exception in that it doesn't kill data itself
 */

void
UUkillheaders (headers *data)
{
  if (data != NULL) {
    _FP_free (data->from);
    _FP_free (data->subject);
    _FP_free (data->rcpt);
    _FP_free (data->date);
    _FP_free (data->mimevers);
    _FP_free (data->ctype);
    _FP_free (data->ctenc);
    _FP_free (data->fname);
    _FP_free (data->boundary);
    _FP_free (data->mimeid);
    memset   (data, 0, sizeof (headers));
  }
}

/*
 * checks for various well-known extensions. if two parts have different
 * known extensions, we won't merge them.
 */

static int
UUSMPKnownExt (char *filename)
{
  char **eiter = knownexts, *ptr=_FP_strrchr(filename, '.');
  int count=0, where=0;

  if (ptr == NULL)
    return -1;
  ptr++;

  while (*eiter) {
    if (_FP_stricmp (ptr, (**eiter=='@')?*eiter+1:*eiter) == 0)
      return where;
    else
      eiter++;

    if (*eiter == NULL)
      break;

    if (**eiter=='@')
      count++;
    else
      where = ++count;
  }
  return -1;
}

/*
 * de-compress a binhex RLE stream
 * the data read from in is uncompressed, and at most maxcount bytes
 * (or octets, as they say) are copied to out. Because an uncompression
 * might not be completed because of this maximum number of bytes. There-
 * for, the leftover character and repetition count is saved. If a marker
 * has been read but not the repetition count, *rpc is set to -256.
 *
 * the function returns the number of bytes eaten from in. If opc is not
 * NULL, the total number of characters stored in out is saved there
 *
 * with repetition counts, remember that we've already transferred *one*
 * occurence
 */

int
UUbhdecomp (char *in, char *out, char *last, int *rpc,
	    size_t inc, size_t max, size_t *opc)
{
  size_t count, used=0, dummy;
  char marker = '\220' /* '\x90' */;

  if (opc == NULL)
    opc = &dummy;
  else
    *opc = 0;

  if (*rpc == -256) {
    if (inc == 0)
      return 0;
    *rpc = (int) (unsigned char) *in++; used++;

    if (*rpc == 0) {
      *last = *out++ = marker;
      max--; *opc+=1;
    }
    else
      *rpc-=1;
  }

  if (*rpc) {
    count = (max > (size_t) *rpc) ? (size_t) *rpc : max;

    memset (out, *last, count);

    out  += count;
    *opc += count;
    max  -= count;
    *rpc -= count;
  }

  while (used < inc && max) {
    if (*in == marker) {
      used++; in++;
      if (used == inc) {
	*rpc = -256;
	return used;
      }
      *rpc = (int) (unsigned char) *in++; used++;

      if (*rpc == 0) {
	*last = *out++ = marker;
	max--; *opc+=1;
	continue;
      }
      else
	*rpc -= 1;

      count = (max > (size_t) *rpc) ? (size_t) *rpc : max;
      memset (out, *last, count);

      out  += count;
      *opc += count;
      max  -= count;
      *rpc -= count;
    }
    else {
      *last = *out++ = *in++;
      used++; *opc+=1; max--;
    }
  }

  return used;
}

/*
 * write to binhex file
 */

size_t
UUbhwrite (char *ptr, size_t sel, size_t nel, FILE *file)
{
  char *tmpstring=uuutil_bhwtmp;
  static int rpc = 0;
  static char lc;
  int count, tc=0;
  size_t opc;

  if (ptr == NULL) { /* init */
    rpc = 0;
    return 0;
  }

  while (nel || (rpc != 0 && rpc != -256)) {
    count = UUbhdecomp (ptr, tmpstring, &lc, &rpc,
			nel, 256, &opc);
    if (fwrite (tmpstring, 1, opc, file) != opc)
      return 0;
    if (ferror (file))
      return 0;
    nel -= count;
    ptr += count;
    tc  += count;
  }

  return tc;
}

static uulist *
UU_smparts_r (uulist *addit, int pass)
{
  uulist *iter = UUGlobalFileList;
  uufile *fiter, *dest, *temp;
  int count, flag, a, b;

  while (iter) {
    if ((iter->state & UUFILE_OK) || iter->uudet == 0) {
      iter = iter->NEXT;
      continue;
    }
    if (iter == addit) {
      iter = iter->NEXT;
      continue;
    }
    if ((iter->begin && addit->begin) || (iter->end && addit->end) ||
	(iter->uudet != addit->uudet)) {
      iter = iter->NEXT;
      continue;
    }
    if ((a = UUSMPKnownExt (addit->subfname)) != -1 &&
        (b = UUSMPKnownExt (iter->subfname))  != -1)
      if (a != b) {
        iter = iter->NEXT;
        continue;
      }

    flag  = count = 0;
    fiter = iter->thisfile;
    temp  = addit->thisfile;
    dest  = NULL;

    while (temp) {
      if (!(temp->data->uudet)) {
	temp = temp->NEXT;
	continue;
      }

      while (fiter && fiter->partno < temp->partno) {
        dest  = fiter;
        fiter = fiter->NEXT;
      }
      if (fiter && fiter->partno == temp->partno) {
        flag = 0;
        break;
      }
      else {
	flag   = 1;
        count += ((dest)  ? temp->partno - dest->partno - 1 : 0) +
                 ((fiter) ? fiter->partno - temp->partno - 1 : 0);
      }

      temp = temp->NEXT;
    }
    if (flag == 0 ||
        (pass == 0 && count > 0) ||
        (pass == 1 && count > 5)) {
      iter = iter->NEXT;
      continue;
    }

    dest  = iter->thisfile;
    fiter = addit->thisfile;

    if (iter->filename == NULL && addit->filename != NULL)
      iter->filename = _FP_strdup (addit->filename);

    if (addit->begin) iter->begin = 1;
    if (addit->end)   iter->end   = 1;

    if (addit->mode != 0 && iter->mode == 0)
      iter->mode = addit->mode;

    while (fiter) {
      flag = 0;

      if (fiter->partno == iter->thisfile->partno ||
	  (dest->NEXT != NULL && fiter->partno == dest->NEXT->partno)) {
	temp           = fiter->NEXT;
	fiter->NEXT    = NULL;

	UUkillfile (fiter);

	addit->thisfile= temp;
	fiter          = temp;
	continue;
      }
      if (fiter->partno < iter->thisfile->partno) {
	temp           = fiter->NEXT;
	fiter->NEXT    = iter->thisfile;
	iter->thisfile = fiter;
	dest           = fiter;
	addit->thisfile= temp;
	fiter          = temp;
      }
      else if (dest->NEXT == NULL || fiter->partno < dest->NEXT->partno) {
	temp           = fiter->NEXT;
	fiter->NEXT    = dest->NEXT;
	dest->NEXT     = fiter;
	addit->thisfile= temp;
	fiter          = temp;
      }
      else {
	dest = dest->NEXT;
      }
    }
    break;
  }
  return iter;
}

int UUEXPORT
UUSmerge (int pass)
{
  uulist *iter = UUGlobalFileList, *last=NULL, *res, *temp;
  int flag = 0;

  while (iter) {
    if ((iter->state & UUFILE_OK) || iter->uudet == 0) {
      last = iter;
      iter = iter->NEXT;
      continue;
    }
    if ((res = UU_smparts_r (iter, pass)) != NULL) {
      UUMessage (uuutil_id, __LINE__, UUMSG_MESSAGE,
		 uustring (S_SMERGE_MERGED),
		 (iter->subfname) ? iter->subfname : "",
		 (res->subfname)  ? res->subfname  : "", pass);

      temp       = iter->NEXT;
      iter->NEXT = NULL;
      UUkilllist (iter);

      flag++;

      if (last == NULL) {
	UUGlobalFileList = temp;
	iter             = temp;
      }
      else {
	last->NEXT       = temp;
	iter             = temp;
      }

      continue;
    }
    last = iter;
    iter = iter->NEXT;
  }

  /*
   * check again
   */

  UUCheckGlobalList ();

  return flag;
}

pan-0.162/wininstall.py000066400000000000000000000427361475412772400150670ustar00rootroot00000000000000#!python3
""" wininstall

Usage:
    wininstall [--build_dir ] 
    wininstall (-h|--help)

Options:
    -h, --help                  Show help and exit
    --build_dir=     Build directory [default: std-build]

This script provides a way of creating a standalone pan for windows.

Once you have built and tested pan, run this with a target folder, and all
needed files and quite possibly some unneeded ones will be copied there, and
that can be run standalone or used to generate an installer.

AWFUL WARNINGS:

This isn't going to be very stable and needs checking every new version of pan
or every update of a package.

Unfortunately may packages come with executables and libraries, and there's no
indication of what part of the package is a utility and what part is runtime
that other packages may use (see gettext in particular). This means I can't
actually use the dependencies you can get from pacman as you'd end up installing
way too much.

"""
from __future__ import annotations

import glob
import os
import re
import shutil
import subprocess
import sys
from docopt import docopt

class Copier:
    """A class that copies files and logs the results."""

    def __init__(self, target_dir: str):
        """Construct Copier class

        Args:
            target_dir: place to copy files
        """
        self._copied_files = set()
        self._dlls = set()
        self._installed_packages = set()
        self._target_dir = target_dir

    def copy_and_check_dlls(
        self,
        source: str,
        target_dir: str = None,
        *,
        verbose: bool = True
    ):
        """Copy file and work out what dlls we need to copy later

        The required dlls are stored away for later.

        Args:
            source: File to copy
            target_dir: Where to copy it!
            verbose: print message if set
        """
        if source in self._copied_files:
            return

        if target_dir is None:
            target_dir = self._target_dir

        if verbose:
            print(f"Copying {source} to {target_dir}")

        shutil.copy2(source, target_dir)
        self._copied_files.add(source)

        if source in self._dlls:
            # We've copied a dll someone refers to. We can remove it from
            # the list of dlls to install
            self._dlls.remove(source)
            return

        if os.path.splitext(source)[1] not in (".dll", ".exe"):
            return

        # Get all the dlls we need in the root
        output = subprocess.run(
            [ "ldd", source ], capture_output=True, text=True, check=True
        )
        prefix = os.environ['MSYSTEM'].lower()
        for line in output.stdout.splitlines():
            dll = re.search(r'(/' + prefix + r'/.*\.dll)', line)
            if dll:
                dll = self.convert_name_to_windows(dll.group())
                if dll not in self._copied_files:
                    self._dlls.add(dll)

    @staticmethod
    def convert_name_to_windows(file: str) -> str:
        """Converts /mingw name to windows name.

        Args:
            file: filename starting with /mingw..

        Returns:
            filename starting with c:/....
        """
        return file.replace(
            f'/{os.environ["MSYSTEM"].lower()}',
            os.environ["MSYSTEM_PREFIX"],
            1
        )

    def copy_package(
        self,
        name: str,
        *,
        library: str = None,
        include: list(str) = None,
        exclude: list(str) = None,
        files: list(str) = None,
        verbose: bool = False,
        recopy: bool = False
    ):
        """Copies a package to target directory.

        This gets a list of files installed with the package and copies them to
        the target directory

        Some directories are included/excluded by default. These may be
        overridden by specifiying include and exclude

        It's done like this because all of these packages seem to come with
        loads of extraneous stuff, and it's not awfully clear what is or isn't
        needed for a standalone executable

        NB Those parameters should be any iterable or sequence?

        Args:
            name: Package name
            library: Actual name of library if different to package name
            include: directories to include
            exclude: directories to exclude
            files: files to include
            verbose: print filenames when copied
            recopy: allow the library to be installed a 2nd time.
        """
        if library is None:
            library = name

        package = f"{os.environ['MINGW_PACKAGE_PREFIX']}-{name}"
        print(f"Installing {package} in {self._target_dir}")
        output = subprocess.run(
            [ "pacman", "-Q", "-l", package ],
            capture_output=True,
            text=True,
            check=True
        )

        # Default directories to copy
        # Possibly you could include anything in "lib/{package}*"?
        dirs = set((
            "etc",
            f"lib/{library}",
            f"share/{library}",
            f"share/{name}",
            "share/icons",
            "share/glib-2.0/schemas",
            "share/licenses",
            "share/locale",
            "share/themes",
            "share/xml"
        ))
        # Extras
        if include is not None:
            if isinstance(include, str):
                dirs.add(include)
            else:
                dirs |= set(include)

        # Turn into filenames
        dirs = set(
            os.path.join(os.environ["MSYSTEM_PREFIX"], dir) + "/"
                for dir in dirs
        )

        # List of files to copy
        if files is None:
            files = ()
        elif isinstance(files, str):
            files = (files, )
        # Turn into filenames
        files = set(
            os.path.join(os.environ["MSYSTEM_PREFIX"], file)
                for file in files
        )

        # List of directories to exclude
        if exclude is None:
            exclude=()
        elif isinstance(exclude, str):
            exclude = (exclude, )
        # Turn into filenames
        exclude = set(
            os.path.join(os.environ["MSYSTEM_PREFIX"], dir) + "/"
                for dir in exclude
        )

        for line in output.stdout.splitlines():
            file = self.convert_name_to_windows(line.split()[-1])

            if os.path.isdir(file) or file.endswith(".a"):
                # Ignore directories and .a files for distribution
                continue

            if file in self._dlls:
                # This is a needed dll. This goes direct to target directory
                self.copy_and_check_dlls(
                    file, self._target_dir, verbose=verbose
                )
                continue

            # FIXME This could be simplified
            copy = False

            if file in files:
                copy = True
            else:
                if not any((file.startswith(dir) for dir in exclude)):
                    copy = any((file.startswith(dir) for dir in dirs))

            if copy:
                outdir = os.path.join(
                    self._target_dir,
                    os.path.dirname(
                        file[len(os.environ["MSYSTEM_PREFIX"]) + 1:]
                    )
                )
                os.makedirs(outdir, exist_ok=True)
                self.copy_and_check_dlls(file, outdir, verbose=verbose)
            else:
                if verbose:
                    print("ignored " + file)

        if not recopy:
            self._installed_packages.add(name)


    def _get_packages_containing(self, paths: list(str)) -> set(str):
        """ Get all the packages which lay claim to specified paths.

        Arguments:
            paths: Any iterable or a string

        Returns:
            The packages laying claim to those files or directories.

            Packages already installed are filtered out.
        """
        if isinstance(paths, str):
            paths = (paths, )

        output = subprocess.run(
            [ "pacman", "-Q", "-o" ] + list(paths),
            capture_output=True,
            text=True,
            check=True
        )

        packages = set()
        for line in output.stdout.splitlines():
            # Each line is of form
            #  is owned by  
            package = line.split()[-2].replace(
                os.environ["MINGW_PACKAGE_PREFIX"] + "-", ""
            )
            packages.add(package)

        return packages

    def get_packages_containing(self, paths: list(str)) -> set(str):
        """Get all the packages required for the dlls we need to load.

        Returns:
            Packages needed
        """
        packages = self._get_packages_containing(paths)
        return set(
            [
                package for package in packages
                    if not package in self._installed_packages
            ]
        )

    def get_needed_packages(self) -> set(str):
        """Get all the packages required for the dlls we need to load.

        Returns:
            Packages needed

        A Note: This isn't recursive, so on installing packages, it's possible
        that it may be necessary to install other packages.
        """
        if len(self._dlls) == 0:
            return set()

        packages = self._get_packages_containing(self._dlls)
        for package in packages:
            # Umm. Maybe we shouldn't care and reinstall at least the dll
            # from the package.
            if package in self._installed_packages:
                print(f"Need {package} from one of {self._dlls} which is already installed")
                exit(1)
        return packages


def read_configure(build_dir: str) -> dict[str, str]:
    dbus = False
    gmime_crypto = False
    spellcheck = False
    gtk_version = 3
# webkit?
    tls_support = False
    popup_notifications = False
    password_storage = False
# yelp-tools ?
    manual = False

    # These are in the order output by configure
    with open(os.path.join(build_dir, "config.h")) as config:
        for line in config.readlines():
            line = line.rstrip()
            words = line.split()
            if (len(words) != 3 or words[0] != '#define'
                or words[2] != '1'):
                continue
            if words[1] == 'HAVE_DBUS':
                dbus = True # better to say multiple pans?
            elif words[1] == 'HAVE_GMIME_CRYPTO':
                gmime_crypto = True
            elif words[1] == 'HAVE_GTKSPELL':
                spellcheck = True
            elif words[1] == 'HAVE_GTK':
                gtk_version = 3
            # webkit?
            elif words[1] == 'HAVE_GNUTLS':
                tls_support = True
            elif words[1] == 'HAVE_LIBNOTIFY':
                popup_notifications = True
            elif words[1] == 'HAVE_GKR':
                password_storage = True
            elif words[1] == 'HAVE_MANUAL':
                manual = True

    return {
        "dbus": dbus,
        "gmime_crypto": gmime_crypto,
        "spellcheck": spellcheck,
        "gtk_version": gtk_version,
        # webkit?
        "tls_support": tls_support,
        "popup_notifications": popup_notifications,
        "password_storage": password_storage,
        "manual": manual
    }


def main():
    args = docopt(__doc__, options_first=True)
    print(args)

    target_dir = args[""]
    if os.path.exists(target_dir) and not os.path.isdir(target_dir):
        raise RuntimeError(f"{target_dir} is not a directory")
    os.makedirs(target_dir, exist_ok=True)

    build_dir = args["--build_dir"]
    config = read_configure(build_dir)
    print(config)
    # TODO Copy appropriate readmes
#EXTRA_DIST = \
# COPYING-DOCS \
# README.org \
# README.windows \
# org.gnome.pan.desktop.in \
# org.gnome.pan.metainfo.xml.in \
# pan-git.version \
# $(man_MANS) \
# $(NULL)

# NEWS

    # Copy executable to target dir
    copier = Copier(target_dir)

    copier.copy_and_check_dlls(os.path.join(build_dir, "pan/gui/pan.exe"))

    # Now we copy all the pan .gmo files in the po directory to the right
    # place in /locale//LC_MESSAGES/pan.mo.
    # This may or may not be correct for windows, as the existing install
    # appears to set up registry keys.
    print("Copying pan locale files")
    locale_dir = os.path.join(target_dir, 'share', 'locale')
    for gmo in glob.glob("po/*.gmo"):
        name = os.path.basename(gmo)
        lang = os.path.splitext(name)[0]
        dest_dir = os.path.join(locale_dir, lang, "LC_MESSAGES")
        os.makedirs(dest_dir, exist_ok=True)
        shutil.copy2(gmo, os.path.join(dest_dir, 'pan.mo'))

    # We need this to run shells
    copier.copy_and_check_dlls(
        os.path.join(
            os.environ["MSYSTEM_PREFIX"], "bin/gspawn-win64-helper.exe"
        )
    )

    # We also need to copy the icons. Just moving the .png ones for now
    print("Copying icons")
    dest_dir = os.path.join(target_dir, 'pan', 'icons')
    os.makedirs(dest_dir, exist_ok=True)
    for file in glob.iglob(os.path.join("pan", "icons", "*.png")):
        if os.path.isfile(file):
            shutil.copy2(file, dest_dir)

    # Arguably we could look at the dlls we now have and load up all the
    # packages they come from and the dependent packages. However, the actual
    # packages for most of these contain a bunch of executables and libraries,
    # which might drag in other packages and we don't really want to install
    # those.
    pixbuf_lib = "gdk-pixbuf-2.0"

    while len(packages := copier.get_needed_packages()) != 0:

        for package in sorted(packages):
            if package == "aspell":
                copier.copy_package(package, library="aspell-0.60")
            elif package == "enchant":
                copier.copy_package(package, library="enchant-2")
                copier.copy_package(
                    "hunspell-en", library="hunspell", include="share/doc"
                )
                # Should we include myspell in the above? seems to work OK
                # without it
                copier.copy_package("iso-codes")
            elif package == "gdk-pixbuf2":
                copier.copy_package(package, library=pixbuf_lib)
                # Copy any other packages that install in the pixbuf library
                for package in copier.get_packages_containing(
                    os.path.join(
                        os.environ["MSYSTEM_PREFIX"], "lib", pixbuf_lib
                    )
                ):
                    copier.copy_package(
                        package, library=pixbuf_lib, recopy=True
                    )
            elif package == "gettext":
                # FIXME don't copy the gettext-tools locale files
                # This would be a whole lot easier if gettext tools and gettext
                # runtime were separate packages.
                copier.copy_package(
                    package,
                    library="None",
                    exclude=(f"share/{package}", "share/licenses"),
                    files=f"share/licenses/{package}/gettext-runtime/intl/COPYING.LIB"
                )
            elif package == "gtk2":
                copier.copy_package(package, library="gtk-2.0/2.10.0")
            elif package == "gtk3":
                copier.copy_package(package, library="gtk-3.0")
                copier.copy_package("adwaita-icon-theme")

                with open(
                    os.path.join(target_dir, 'etc', 'gtk-3.0', 'settings.ini'),
                    'w'
                ) as settings:
                    print("""
[Settings]
gtk-theme-name=win32

gtk-menu-images = true
gtk-overlay-scrolling = false
""", file=settings)

            elif package == "graphite2":
                copier.copy_package(package, exclude=f"share/{package}")
            elif package == "icu":
                copier.copy_package(
                    package,
                    library="None",
                    exclude=f"share/{package}",
                    files=f"share/{package}/69.1/LICENSE"
                )
            elif package == "libgpg-error":
                copier.copy_package(package, exclude=f"share/{package}")
            elif package == "libjpeg-turbo":
                # This includes source code in some pretty odd places
                copier.copy_package(
                    package,
                    exclude=f"share/licenses/{package}/simd"
                )
            else:
                copier.copy_package(package)

    # ---- gdk-pixbuf2 cleanup
    # Knowing where the loader cache file exists is not ideal, but it needs to
    # exist and I'm not entirely convinced about copying the generated one.
    loader_path = os.path.join(target_dir, 'lib', pixbuf_lib, '2.10.0')
    output = subprocess.run(
        [ "gdk-pixbuf-query-loaders.exe" ],
        env=dict(
            os.environ,
            GDK_PIXBUF_MODULEDIR=os.path.join(loader_path, "loaders")
        ),
        capture_output=True,
        text=True,
        check=True
    )

    # replace all the paths with windows paths relative to target
    with open(os.path.join(loader_path, 'loaders.cache'), 'w') as cache:
        for line in output.stdout.splitlines():
            if target_dir in line:
                line = line.replace(target_dir + "/", "")
                line = line.replace("/", r"\\")
            print(line, file=cache)

    # ---- glib2 cleanup
    # setting schemas - must be run after all packages installed.
    output = subprocess.run(
        [
            "glib-compile-schemas.exe",
            os.path.join(target_dir, 'share', 'glib-2.0', 'schemas')
        ],
        check=True
    )

if __name__ == "__main__":
    main()